22604-80001 A SC 0122 BILL OF MATERIAL PACKAGE             H0101 FTN,B PROGRAM EDIX C C C C THIS PROGRAM CREATES A FILE WHICH CONTAINS THE C REPORT LAYOUT IN ALL OF THE 6 VERSIONS (EXPLOSION C IMPLOSION). C THE SUBROUTINE "STAMP" (SEE RETRIEVAL PROGRAM) C READS THIS RECORD AND ACCORDING WITH THE TYPE C OF LINE (HEADING OR DETAILED LINE) PRINTS C THOSE RECORDS OVERLAPPING THE CONTENT OF THE FILE C "PARTI" WHICH IS THE -DATA BASE- RETRIEVED. C C C :PR,EDIX,L.U.,N L.U.=1 DEFAULT C N=0 APPENDS OR MODIFY RECORD C N=1 CREATES AND LOADS FILE C N=2 LIST FILE C C FORMATS OF RECORDS IN INPUT C C #1 NUMBER OF LINE (FREE FIELD) C #2 STARTING COLUMN,LENGHT OF STRING (FREE F.) C #3 STRING TO STORE (21 CHARACTER MAX) C C SEQUENCE OF INPUT C #1/#2/#3/#2/#3/#2/..... C #2=0 LINE COMPLETED THEN STORE AND RETURN TO #1/... C #1=0 E.O.J. C C C CC DIMENSION ISTR(21),ILINE(122),IBLK(122) 1,NSTA(3),IBT(128),IBU(2560) 2,IPAR(5) C DATA NSTA/2HST,2HAM,1HP/,IBLK/122*1H / 1,LU/1/ C CALL RMPAR(IPAR) C IF(IPAR.NE.0)LU=IPAR(1) C CALL MOVE(IBLK,1,122,ILINE,1) C C C CALL EXEC(24,1,IBT,128,IBU,1,20,IERR) IF(IERR.NE.0)GO TO 901 IF(IPAR(2).EQ.0.OR.IPAR(2).EQ.2)GO TO 110 CALL EXEC(24,2,NSTA,-1,30,122,0.,IERR) IF(IERR.NE.0)GO TO 901 110 CALL EXEC(24,4,NSTA,-1,1,0,1,IERR) IF(IERR.NE.0)GO TO 901 C C C IF(IPAR(2).EQ.2)GO TO 40 30 CONTINUE IF(LU.NE.1)GO TO 31 WRITE(1,100) 100 FORMAT(" LINE ? _") 31 CONTINUE READ(LU,*)IRIG IF(IRIG.EQ.0)GO TO 1000 C 20 CONTINUE IF(LU.NE.1)GO TO 21 WRITE(1,200) 200 FORMAT(" ? _") 21 CONTINUE READ(LU,*)ICOL,ILUN IF(ICOL.EQ.0)GO TO 10  READ(LU,300)(ISTR(J),J=1,ILUN) 300 FORMAT(122A1) C CALL MOVE(ISTR,1,ILUN,ILINE,ICOL) C GO TO 20 C C C 10 CONTINUE IERR=ISTOR(NSTA,0,IRIG,ILINE) IF(IERR.NE.0)GO TO 901 CALL MOVE(IBLK,1,122,ILINE,1) CALL EXEC(24,14,IERR) IF(IERR.NE.0)GO TO 901 GO TO 30 C 40 CONTINUE CALL EXEC(24,14,IERR) WRITE(1,400) 400 FORMAT(" FIRST/LAST LINE TO PRINT") 41 CONTINUE READ(LU,*)IFST,ILST C C C IF(IFST.EQ.0)GO TO 1000 DO 500 J=IFST,ILST IERR=IRETR(NSTA,0,J,ILINE) IF(IERR.NE.0)GO TO 901 WRITE(6,300)(ILINE(JK),JK=1,122) 500 CONTINUE C C C GO TO 1000 901 WRITE(1,9001)IERR 9001 FORMAT(" EFMP ERROR- "I5) C C C 1000 END PROGRAM CR00 C C THIS PROGRAM CREATES FILES WITH ITEMIZED RECORDS C DESCRIBED ON A FILE DIRFI C C C :PR,CR00,L.U. L.U.=7 DEFAULT C C FORMAT OF RECORDS IN INPUT C #1 FILE NAME-#OF RECORD (3A2,I5) C #2 TYPE OF ITEM-ITEM NAME (I5,7A2) C SEQUENCE TO LOAD C C #1,#2,#2,...,#2 TYPE OF ITEM=0 TO END DIRECTORY ENTRY C TO EXIT #1 FILE NAME=/E C C C C C DIMENSION IDFN(3),IOPFT(128),ITRB(1280),IFN(3),IBUF(8) 1,ISTB(10) 1,IPAR(5) DATA IDFN/2HDI,2HRF,1HI/ C C DEFINE & OPEN DIRFI C ON ANY AVAILABLE PACK (IPC = -1) C CALL RMPAR(IPAR) IF(IPAR(1).EQ.0)IPAR(1)=7 LUS=IPAR(1) 4000 CONTINUE READ(LUS,102)(IFN(J),J=1,3),NR 102 FORMAT(3A2,I5) IF(IFN(1).EQ.2H/E)GO TO 3000 WRITE(1,1009)(IFN(J),J=1,3) 1009 FORMAT(" CREATION FILE = ",3A2) 2007 CONTINUE IPC=-1 CALL EXEC(24,1,IOPFT,128,ITRB,2,10,IERR) CALL EXEC(24,4,IDFN,IPC,1,0,1,IERR) IF(IERR.NE.0)GOTO 191 C IFLAG=0 CALL EXEC(24,10,1,IFN,IPC,IDU,ISTB,IERR) IF(IERR.EQ.0)GOTO 181 IF(IERR.EQ.6)GOTO 141  IF(IERR.EQ.3)GOTO 141 GOTO 191 141 CONTINUE IRN=1 112 CALL EXEC(24,6,IDFN,IRN,IBUF,IERR) IF(IERR.NE.0)GOTO 191 IF(IBUF(4))110,110,111 111 IRN=IBUF(4) GOTO 112 110 I=1 LR=0 120 CONTINUE C C TYPE : -N = N ASCII CHARACTERS C 1 = INTEGER C 2 = FLOATING POINT C 3 = DOUBLE PRECISION C 0 TO END RECORD C READ(LUS,2005)(IBUF(KJ),KJ=1,8) 2005 FORMAT(I5,7A2) IF(IBUF(1).LT.4)GOTO 123 WRITE(1,802) 802 FORMAT("TYPE ERROR") GOTO 120 123 CONTINUE IL=IBUF(1) IF(IL)121,200,122 121 IL=(1-IL)/2 122 LR=LR+IL IFLAG=1 IF(LR.GT.128)GOTO 211 C C UP TO 14 ASCII CHARACTERS C 109 FORMAT(40A2) CALL EXEC(24,8,IDFN,0,IBUF,IERR) IF(IERR.NE.0)GOTO191 I=I+1 GOTO 120 211 WRITE(1,299) 299 FORMAT(" RECORD TOO BIG - FILE NOT CREATED") C C RECORD LENGTH EXCEEDS 128 WORDS : THE FILE IS NOT CREATED C GOTO 199 200 DO 132 J=1,8 132 IBUF(J)=0 CALL EXEC(24,8,IDFN,0,IBUF,IERR) IF(IFLAG.EQ.0)GOTO 171 IF(IERR.NE.0)GOTO 191 DO 131 J=1,3 131 IBUF(J)=IFN(J) IBUF(4)=IRN+I IBUF(5)=I-1 CALL EXEC(24,8,IDFN,IRN,IBUF,IERR) CALL EXEC(24,2,IFN,IPC,NR,LR,0.,IERR) IF(IERR.NE.0)GOTO 191 GOTO 199 181 CONTINUE WRITE(1,190) 190 FORMAT("DUPLICATE FILE NAME") GOTO 199 171 WRITE(1,177) 177 FORMAT(" RECORD SIZE = 0 - FILE NOT CREATED") GOTO 199 191 WRITE(1,192)IERR 192 FORMAT(" ERROR "I2) GO TO 199 C C ERROR # OF EFMP C 199 CONTINUE CALL EXEC(24,14,IERR) GO TO 4000 3000 CONTINUE END PROGRAM SE00 C C THIS PROGRAM CREATES THE DIRECTORY FILE DIRFI C C :PR,SE00,M,N C M= EXPECTED AVERAGE # OF ITEM PER RECORD C N= MAXIMUM # OF FILES FORECAST C M=40 N=20 DEFAUHLT VALUE C C DIMENSION IDFN(3),IOPFT(128),ITRB(1280),IFN(3),IBUF(8) 1,IPAR(5) 1,NPRG(3) DATA IDFN/2HDI,2HRF,1HI/ 1,NPRG/2HCR,2H00,1H / C CALL RMPAR(IPAR) C IPC=-1 CALL EXEC(24,1,IOPFT,128,ITRB,2,10,IERR) IPR=IPAR(1) MNF=IPAR(2) IF(IPR.EQ.0)IPR=40 IF(MNF.EQ.0)MNF=20 NR=(1+IPR)*MNF NR=(NR+15)/16*16 C TO MAKE DIRFI EXACTLY N SECTORS LONG CALL EXEC(24,2,IDFN,IPC,NR,8,0.,IERR) IF(IERR.EQ.2)GOTO 301 CALL EXEC(24,4,IDFN,IPC,1,0,1,IERR) IF(IERR.NE.0)GOTO 191 DO 222 I =1,8 222 IBUF(I)=0 CALL EXEC (24,8,IDFN,1,IBUF,IERR) IF(IERR.NE.0)GOTO 191 WRITE(1,203)NR 203 FORMAT("DIRFI CREATED - "I5" RECORDS LONG") GOTO 199 301 WRITE(1,309) 309 FORMAT("DIRFI ALREADY PRESENT !") GOTO 199 191 WRITE(1,192)IERR 192 FORMAT(" ERROR "I2) C C ERROR # OF EFMP C 199 CONTINUE CALL EXEC(24,14,IERR) WRITE(1,3000) 3000 FORMAT(" TO CREATE AN IEFMP FILE ENTRY IN -DIRFI- TYPE GO,L.U.") PAUSE CALL RMPAR(IPAR) IF(IPAR(1).EQ.0)GO TO 4000 CALL EXEC(10,NPRG,IPAR) 4000 CONTINUE END PROGRAM MAINS C C C C :PR,MAINS,L.U.,N L.U.=1 DEFAULT C N=0 APPENDS NEW RECORDS C N=1 RESET AND LOAD NEW INFORMATION C C C FORMAT OF RECORD IN INPUT C C (ASSEMBLY'S KEY)(COMPONENT'S KEY)(QUANTITY PER ASSY.) C ( 8A2 )( 8A2 )( I5 ) C C C DIMENSION NPART(3),NSTRU(3),LINKA(7),IDFN(3) 1,IBUF(40),IBT(128),IBU(2560) 2,ITEM(7) 3,IDES(40) 4,KEND(8),KEYY(16),KEY2(8),KKEY(16) 5,KVEY(16) 6,KPA(5) 7,NPRG(3) DATA NPART/2HPA,2HRT,1HI/,NSTRU/2HST,2HRU,1HT/ 1,LINKA/2HAL,2HIN,1HK,4*1H / 2,IDFN/2HDI,2HRF,1HI/ 3,ITEM/2HAK,2HEY,5*1H / 4,KEND/8*1H / 5,NPRG/LX2HLI,2HVM,1H / C C CALL RMPAR(KPA) CALL EXEC(24,1,IBT,128,IBU,2,10,IERR) C C OPEN C CALL EXEC(24,4,IDFN,-1,1,0,2,IERR) CALL EXEC(24,4,NPART,-1,1,0,1,IERR) CALL EXEC(24,4,NSTRU,-1,0,0,2,IERR) C C DEFINE FILE INDEXED C IER=INDEX(NPART,ITEM,8) IF(IER.NE.0)GO TO 950 C C C LU=KPA(1) IFLAG=0 CALL MOVE(KEND,1,8,KVEY,1) CALL MOVE(KEND,1,8,KVEY,9) IF(LU.NE.1)GO TO 8044 WRITE(1,9000) 9000 FORMAT(" READY ") 8044 CONTINUE READ(LU,9650)(KEYY(J),J=1,16),ICOE 9650 FORMAT(16A2,I5) IF(KEYY(1).EQ.2H/E)GO TO 9999 CALL MOVE(KEYY,9,16,KEY2,1) C C C IF(KPA.NE.1)GO TO 10 CALL EXEC(24,9,NSTRU,-1,0,IERR) IF(IERR.NE.0)GO TO 901 C C CHECK PARENT SEQUENCE C 10 CONTINUE IF(ICMP(KEYY,1,8,KVEY,1,1))8000,8000,7000 7000 CONTINUE C C CHECK SON SEQUENCE C IF(ICMP(KEYY,9,16,KVEY,9,2))8001,7001,7001 7001 CONTINUE C C CHECK VALIDITY KEY1 C NR=KEY(NPART,KEYY) IF(NR.LT.0)GO TO 8002 C C CHECK ASSEMBLY ALREADY STORED C IERR=IRETR(NPART,LINKA,NR,IDES) IF(IERR.NE.0)GO TO 901 IF(IDES(1).NE.2H/E)GO TO 8003 20 CONTINUE C C VALIDITY KEY2 C NR=KEY(NPART,KEY2) IF(NR.LT.0)GO TO 8004 C C VALIDITY LINKAGE C IF(ICMP(KEY2,1,8,KVEY,9,3))7002,8005,7002 7002 CONTINUE CALL MOVE(KEY2,1,8,KVEY,9) C C FIRST LINK ? IFLAG=0 C IF(IFLAG.NE.0)GO TO 30 C C ELAB FIRST STRUCTURE LINKAGE C NR=KEY(NPART,KEYY) IF(NR.LE.0)GO TO 8002 C C ASSY. CHAIN START C IERR=ISTOR(NPART,LINKA,NR,KEY2) IF(IERR.NE.0)GO TO 901 GO TO 40 30 CONTINUE C C LOAD STRUT C CALL LOAD(KKEY,IBCOE,KEY2,IFLAG) WRITE(6,9652)(KKEY(JP),JP=1,16),IBCOE 40 CONTINUE C C WAIT FOR NEW LINKAGE C  CALL MOVE(KEYY,1,16,KKEY,1) IBCOE=ICOE IFLAG=1 CALL MOVE(KEYY,1,8,KVEY,1) 8045 CONTINUE READ(LU,9650)(KEYY(J),J=1,16),ICOE IF(KEYY(1).EQ.2H/E)GO TO 9596 C C NEW PARENT ? C CALL MOVE(KEYY,9,16,KEY2,1) IF(ICMP(KEYY,1,8,KVEY,1,1))50,51,50 51 CONTINUE C C CHECK KEY2 SEQUENCE C IF(ICMP(KEYY,9,16,KVEY,9,2))8001,8001,20 50 CONTINUE IFLAG=0 C C LOAD LAST LINKAGE C CALL LOAD(KKEY,IBCOE,KEY2,IFLAG) WRITE(6,9651)(KKEY(JP),JP=1,16),IBCOE 9651 FORMAT(X,16A2,I5,/,/,/) CALL MOVE(KEND,1,8,KVEY,9) GO TO 10 950 WRITE(1,9500) 9500 FORMAT(" ERROR IN INDEXED FILE") GO TO 9999 8000 WRITE(1,8888)(KEYY(J),J=1,8),(KVEY(J),J=1,8) 8888 FORMAT(" ERROR IN SEQUENCE ",16A2) STOP 8001 WRITE(1,8888)(KEYY(J),J=9,16),(KVEY(J),J=9,16) STOP 8002 WRITE(1,8222)(KEYY(J),J=1,8) 8222 FORMAT(" P/N UNKNOWN "8A2) STOP 8003 WRITE(1,8333)(KEYY(J),J=1,16) 8333 FORMAT(" ASSY.ALREADY LOADED "16A2) STOP 8004 WRITE(1,8222)(KEY2(J),J=1,8) STOP 8005 WRITE(1,8555)(KEYY(J),J=1,16) 8555 FORMAT(" DOUBLE LINK "16A2) STOP 901 WRITE(1,9001)IERR 9001 FORMAT(" ERROR # "I5) GO TO 9999 9596 IFLAG=0 CALL LOAD(KKEY,IBCOE,KEY2,IFLAG) WRITE(6,9652)(KKEY(JP),JP=1,16),IBCOE 9652 FORMAT(X,16A2,I5) C C IF(KPA(2).EQ.1)GO TO 9999 C C APPENDS IS MADE SORT FILE THAN COMPUTE NEW LLC C ITEM(1)=2HBK ITEM(3)=2H2 CALL SO007(NSTRU,ITEM) ITEM(3)=2H1 CALL SO007(NSTRU,ITEM) CALL EXEC(10,NPRG) 9999 END PROGRAM CARIC C C C C C :PR,CARIC,L.U.,N L.U.=1 DEFAULT C N=0 APPENDS NEW RECORDS C N=1 RESET AND LOAD NEW INFO. C N=2 LIST FILE C C C FORMAT RECORD IN INPUT C C (ITEM #)(DESCRIPTION)(DRAWING #)(MAKE OR BUY CODE)(UNIT OF C MEASURE)(ITEM COST)(MINIMUM QTY. TO REORDER) C SEE STATEMENT # 81 -- 10 FORMAT ----- C DIMENSION IBUF(128),NFILE(3),IBT(128),IBU(2560) 1,KAKEY(8) 2,IPAR(5) 3,ITNAM(7) C EQUIVALENCE (IBUF(30),ACOS) C DATA NFILE/2HPA,2HRT,1HI/ 1,IPAR(1)/0/ 2,ITNAM/2HAK,2HEY,5*2H / C C CALL RMPAR(IPAR) DO 33 N=1,26 33 IBUF(N)=0 C CALL EXEC(24,1,IBT,128,IBU,1,20,IERR) C CALL EXEC(24,4,NFILE,-1,0,0,1,IERR) IF(IPAR(2).EQ.2)GO TO 30 IF(IPAR(2).EQ.0)GO TO 55 CALL EXEC(24,9,NFILE,-1,0,IERR) I=0 JK=1 GO TO 56 55 CONTINUE I=IHRA(NFILE) JK=I+1 56 CONTINUE LU=IPAR(1) IF(IPAR(1).EQ.0)LU=1 20 CONTINUE READ(LU,10)(IBUF(J),J=2,29),ACOS,IBUF(32) IBUF(33)=2H/E IBUF(41)=2H/E IBUF(49)=2H/E IBUF(1)=1 C C C CHECK SEQUENCE C IF(IBUF(2).EQ.2H/E)GO TO 30 C C LOAD C I=I+1 IERR=ISTOR(NFILE,0,I,IBUF) IF(IERR)60,70,60 C 60 WRITE(1,80) PAUSE 1 70 CONTINUE GO TO 20 C C FORMATI C 77 FORMAT(" -EOJ-") 80 FORMAT(" ERROR IN WRITING") 91 FORMAT(" ERROR IN READING") 90 FORMAT(" ERROR IN SEQUENCE") 95 FORMAT(5X,8A2,X,12A2,X,6A2,X,A2,X,A2,X,F10.3,X,I5) 88 FORMAT(" RECORD LOADED"I5) 10 FORMAT(28A2,F10.3,I5) C C 30 CONTINUE JK=1 C C IHR=IHRA(NFILE) WRITE(1,88)IHR C DO 99 L=JK,IHR C IERR=IRETR(NFILE,0,L,IBUF) IF(IERR)110,120,110 C 110 WRITE(1,91) PAUSE 3 120 CONTINUE C WRITE(6,95)(IBUF(J),J=2,29),ACOS,IBUF(32) C 99 CONTINUE IF(IPAR(2).EQ.2)GO TO 1000 C CALL SO007(NFILE,ITNAM) C GO TO 1000 901 CONTINUE WRITE(1,9001)IERR 9001 FORMAT(" ERROR "I4) 1000 CONTINUE END PROGRAL LIVM C C C DIMENSION NPART(3),ITEM(7),NSTRU(3),IBEM(7) 1,IBUT(256) 1,IPAR(80),IST(40) 2,IAR(24,7),ICON(56) 3,KBEY(16),KEA(16) 4,KEY1(8),KAEY(8),LAINK(8),IAMP(8),ITTA(8) 5,KEY2(8),KLINK(8),KREY(8),KEND(8),LOOP(8) 4,IBT(128),IBU(2560) 5,IDFN(3) C C C C EQUIVALENCE (IPAR(2),KAEY),(IPAR(33),LAINK) 1,(IPAR(41),IAMP),(IPAR(49),ITTA),(IPAR(59),IRA) 2,(IPAR(60),LAV),(IPAR(1),IAT) 3,(IST(2),KBEY),(IST(2),KEY1),(IST(10),KEY2) 4,(IST(19),KLINK) C C DATA ITEM/2HAK,2HEY,5*1H /,IBEM/2HBK,2HEY,1H1,4*1H / 1,NPART/2HPA,2HRT,1HI/,NSTRU/2HST,2HRU,1HT/ 2,IDFN/2HDI,2HRF,1HI/ 3,KEND/2H/E,7*1H / C C C DEFINE C CALL EXEC(24,1,IBUT,256,IBU,2,10,IERR) IF(IERR.NE.0)PAUSE 1 C C OPEN C CALL EXEC(24,4,IDFN,-1,1,0,2,IERR) CALL EXEC(24,4,NPART,-1,1,0,1,IERR) CALL EXEC(24,4,NSTRU,-1,1,0,2,IERR) C C C C C INIZIALIZE AND DEFINE FILE INDEXED C IER=INDEX(NPART,ITEM,8) IF(IER.NE.0)GO TO 950 IER=INDEX(NSTRU,IBEM,16) IF(IER.NE.0)GO TO 960 C C UPDATE RACN CONTROL RECORD C IACN=IRAC(NSTRU) C C C --------------- G O --------------------- C C ISTR=IHRA(NPART) DO 20 JNUM=1,ISTR DO 2 J=1,40 2 IPAR(J)=0 IERR=IRETR(NPART,0,JNUM,IPAR) IF(IERR.EQ.21)GO TO 9111 IF(IERR.NE.0)GO TO 901 C C TEST IF THE PART IS ACTIVE C IF(IAT.EQ.0)GO TO 20 C C RESET AR(,)AND INIZIALIZE LEVELS C DO 30 J=1,7 DO 30 I=1,3 CALL MUVE(KEND,1,8,IAR,I,J) 30 CONTINUE LIV=0 C C STORE KEY1 IN AR(1,3) E INIZIALIZZ. C LIV=LIV+1 CALL MUVE(KAEY,1,8,IAR,3,LIV,1) IER=JNUM C C TEST WHERE-USED CHAIN C IF(IAMP(1).NE.2H/E)GO TO 20 CALL MEMOR(NPART,LIV,IACN,IER) C C TEST ASSEMBLY CHAIN C IF(LAINK(1).NE.2H/E)GO TO 40 CALL MEMOR(N640PART,LIV,IACN,IER) GO TO 20 C C INDENTED EXPLOSION C 40 LIV=LIV+1 CALL MOVE(KAEY,1,8,KEA,1) CALL MOVE(LAINK,1,8,KEA,9) C C CHASE C 50 CONTINUE IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 960 CALL MOVE(KLINK,1,8,KEA,9) CALL MOVE(KEY2,1,8,KREY,1) IER=ICHAI(NPART,KREY,IPAR) IF(IER.EQ.-1)GO TO 20 CALL MUVE(IAR,3,1,ICON,0,1,2) LUV=1 60 CONTINUE CALL MUVE(IAR,3,LUV,LOOP,0,1,2) IF(ICMP(LOOP,1,8,KAEY,1,0))790,970,790 790 CONTINUE LUV=LUV+1 IF(LUV.NE.LIV)GO TO 60 IF(LUV.EQ.8)GO TO 980 CALL MUVE(KAEY,1,8,IAR,3,LUV,1) CALL MEMOR(NPART,LIV,IACN,IER) C C TEST CHAIN WHERE GO C IF(LAINK(1).EQ.2H/E)GO TO 70 CALL MUVE(KEA,1,16,IAR,1,LIV,1) GO TO 40 70 CONTINUE IF(KLINK(1).NE.2H/E)GO TO 50 80 CONTINUE LIV=LIV-1 IF(LIV.EQ.1)GO TO 20 CALL MUVE(IAR,1,LIV,KEA,0,1,2) CALL MUVE(IAR,2,LIV,KEA,0,2,2) CALL MOVE(KEA,9,16,KLINK,1) IF(KLINK(1).EQ.2H/E)GO TO 80 GO TO 50 20 CONTINUE GO TO 9111 C C 950 WRITE(1,9500)IER 9500 FORMAT(" ERRORE FILE INDEXED "I5) STOP 960 WRITE(1,9500)IER STOP 970 WRITE(1,9700) 9700 FORMAT(" ERROR CONTINUITY") WRITE(6,9701)IAR 9701 FORMAT(X,24A2) STOP 980 WRITE(1,9880) 9880 FORMAT(" MORE THAN 7 LEVELS ") STOP 901 WRITE(1,9001)IERR 9001 FORMAT(" IERR ="I5) 9111 CONTINUE C C END Ͳ6   22604-80002 A SC 0122 BILL OF MATERIAL PACKAGE             H0101  PROGRAM RETR C C :PR,RETR,L.U. L.U.=1 DEFAULT C C FORMAT OF RECORDS IN INPUT C #1 (TYPE OF RETRIEVAL)(ITEM NUMBER)(QUANTITY TO RETRIEV) C (A2) (8A2) (F10.5) C TYPE OF RETR = /E TO E.O.J. C C C EL - SINGLE LEVEL EXPLOSION IL - SINGLE LEVEL IMPLOSION C C ES - INDENTED EXPLOSION IS - INDENTED IMPLOSION C C ER - SUMMARIZED EXPLOSION IR - SUMMARIZED IMPLOSION C C C DIMENSION KEA(16) 1,IDES(12),IDIS(6),KBEY(16) 2,KAEY(8),IPAR(80),IST(40),ITIP(6),IAR(24,7) 3,LINK(8),IMP(8),KLINK(8),KIMP(8) 4,KEY1(8),KEND(8),KREY(8),IAT(8),AR(7,3) 3,NPART(3),NSTRU(3),IDFN(3),IBT(128),IBU(2560) 4,IPR(5) C C C C EQUIVALENCE (IPAR(2),KAEY),(IPAR(10),IDES) 1,(IPAR(22),IDIS),(IPAR(28),IAAP) 2,(IPAR(29),IAUM),(IPAR(30),ACOS) 3,(IPAR(32),LOT),(IPAR(33),LINK) 4,(IPAR(41),IMP),(IPAR(49),IAT) 5,(IPAR(57),AQI),(IPAR(59),IACN) 6,(IPAR(60),LAV),(IST(2),KBEY) 7,(IST(18),ICOE),(IST(19),KLINK) 8,(IST(27),KIMP) DATA KEND/2H/E,7*1H / 1,IBOM/0/ C C C DATA ITIP/2HEL,2HES,2HER,2HIL,2HIS,2HIR/ 1,NPART/2HPA,2HRT,1HI/,NSTRU/2HST,2HRU,1HT/ 2,IDFN/2HDI,2HRF,1HI/ CALL RMPAR(IPR) C C C C DEFINE & OPEN C CALL EXEC(24,1,IBT,128,IBU,2,10,IERR) C CALL EXEC(24,4,IDFN,-1,1,0,2,IERR) CALL EXEC(24,4,NPART,-1,1,0,1,IERR) CALL EXEC(24,4,NSTRU,-1,1,0,2,IERR) C IF(IPR(1).EQ.0)IPR(1)=1 LU=IPR(1) C 60 CONTINUE IF(IBOM.EQ.0)GO TO 611 IF(J.NE.3)GO TO 612 CALL TOTAS(TOTT,TOTP,TOTA) TOTT=0. TOTP=0. TOTA=0. GO TO 611 612 CONTINUE CALL STAMP(J,LIV,IPAR,QUANT,3) 611 CONTINUE IF(LU.NE.1)GO TO 1000 WRITE(1,8000) 8000 FORMAT(" READY ") 1000 CONTINUE READ(LU,8001)IT,(KEY1(JK),JK=1,8),QUANT iZ 8001 FORMAT(9A2,F10.5) IBOM=1 C C IF(IT.EQ.2H/E)GO TO 8888 C C TYPE RETRIEVAL C DO 10 J=1,6 IF(ITIP(J).EQ.IT)GO TO 20 10 CONTINUE WRITE(1,8002) 8002 FORMAT(" ERROR CODE - TYPE ...") GO TO 1000 20 CONTINUE C C SUMMARIZED RETRIEVAL ? C IF(J.NE.3.AND.J.NE.6)GO TO 90 C C C C UPDATE RACN TO SUMMARIZE C IRA=IRAC(NSTRU) C C C 90 CONTINUE C C RESET AR(,) AND INIZIALIZE LOW-LEVEL CODE C C SAVE QTY. TO RETRIEV C WRITE(6,9000) 9000 FORMAT("1") C QQ=QUANT NRIG=0 DO 30 JK=1,7 DO 30 I=1,3 CALL MUVE(KEND,1,8,IAR,I,JK,1) 30 CONTINUE C LIV=0 C C PRINT HEADING LINE C CALL MOVE(KEY1,1,8,KREY,1) IER=ICHAI(NPART,KREY,IPAR) IF(IER.EQ.-1)GO TO 920 IF(J.NE.3)GO TO 61 TOT=QUANT*ACOS IF(IAAP.EQ.2HAC)GO TO 71 TOTP=TOTP+TOT GO TO 72 71 TOTA=TOTA+TOT 72 TOTT=TOTT+TOT 61 CALL STAMP(J,LIV,IPAR,QUANT,1) C C C CHAIN WHERE GO C IF(J.GT.3)GO TO 50 IF(LINK(1).EQ.2H/E)GO TO 60 GO TO 70 50 CONTINUE IF(IMP(1).EQ.2H/E)GO TO 60 70 CONTINUE C C--------- NEW ASSY. OR NEW "WHERE-USED" C IF(J.EQ.3.OR.J.EQ.6)GO TO 80 LIV=LIV+1 80 CONTINUE IF(J.GT.3)GO TO 989 CALL MOVE(LINK,1,8,KEA,9) CALL MOVE(KAEY,1,8,KEA,1) GO TO 100 989 CONTINUE CALL MOVE(IMP,1,8,KEA,1) CALL MOVE(KAEY,1,8,KEA,9) 100 CONTINUE C C CHAIN STRUT. C IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 900 C C C IF(J.LE.3)GO TO 110 120 CONTINUE C C C IMPLOSION C CALL MOVE(KBEY,1,8,KREY,1) CALL MOVE(KIMP,1,8,KEA,1) GO TO 130 110 CONTINUE C C EXPLOSION C CALL MOVE(KBEY,9,16,KREY,1) CALL MOVE(KLINK,1,8,KEA,9) 130 CONTINUE IER=ICHAI(NP0ART,KREY,IPAR) IF(IER.EQ.-1)GO TO 920 C C COMPUTE QTY. C QSTA=QQ*ICOE C C LOAD ACTIVITY TABLE C IF(J.NE.3.AND.J.NE.6)GO TO 200 IF(IRA.NE.IACN)GO TO 210 AQI=AQI+QSTA GO TO 400 210 CONTINUE AQI=QSTA IF(J.EQ.6)LAV=6-LAV CALL MUVE(IAR,1,LAV,IAT,0,1,2) CALL MUVE(KAEY,1,8,IAR,1,LAV,1) 400 CONTINUE C C UPDATE PART NUMBER'S RACN AND QTY. C IX=IROC(IER,IRA,AQI,IAT) IF(IX.NE.0) GO TO 940 GO TO 300 C C C DECODE LEVEL C 200 CONTINUE C C PRINT AS ITS LEVEL C CALL STAMP(J,LIV,IPAR,QSTA,2) C C CHAIN WHERE GO C 300 CONTINUE IF(J.NE.2.AND.J.NE.5)GO TO 500 IF(J.EQ.2)GO TO 600 IF(IMP(1).EQ.2H/E)GO TO 500 GO TO 700 600 CONTINUE IF(LINK(1).EQ.2H/E)GO TO 500 700 CONTINUE C C LOAD LEVEL TABLE C IF(LIV.EQ.7)GO TO 930 AR(LIV,3)=QQ CALL MUVE(KEA,1,8,IAR,1,LIV,1) CALL MUVE(KEA,9,16,IAR,2,LIV,1) QQ=QSTA GO TO 70 C C END OF CHAIN C 500 CONTINUE IF(J.LT.4)GO TO 404 IF(KIMP(1).EQ.2H/E)GO TO 555 GO TO 100 404 CONTINUE IF(KLINK(1).EQ.2H/E)GO TO 555 GO TO 100 C C READ ACTIVITY CHAIN C 555 CONTINUE IF(J.NE.3.AND.J.NE.6)GO TO 510 LIV=0 520 LIV=LIV+1 IF(LIV.EQ.8)GO TO 60 CALL MUVE(IAR,1,LIV,KREY,0,1,2) IF(KREY(1).EQ.2H/E)GO TO 520 IER=ICHAI(NPART,KREY,IPAR) IF(IER.EQ.-1)GO TO 920 QSTA=AQI QQ=AQI IF(J.EQ.6)GO TO 556 TOT=QSTA*ACOS IF(IAAP.EQ.2HAC)TOTA=TOTA+TOT IF(IAAP.NE.2HAC)TOTP=TOTP+TOT TOTT=TOTT+TOT 556 CONTINUE C C PRINT DETAILLED LINE C CALL STAMP(J,LIV,IPAR,QSTA,2) C C C CALL MUVE(IAT,1,8,IAR,1,LIV,1) IF(J.EQ.3)GO TO 610 IF(J.EQ.6)GO TO 620 GO TO 70 610 CONTINUE IF(LINK(1).NE.2H/E)GO TO 70  GO TO 555 620 CONTINUE IF(IMP(1).NE.2H/E)GO TO 70 GO TO 555 C C READ LEVEL TABLE C 510 CONTINUE LIV=LIV-1 IF(LIV.EQ.0)GO TO 9999 CALL MUVE(IAR,1,LIV,KEA,0,1,2) CALL MUVE(IAR,2,LIV,KEA,0,2,2) IF(J.NE.4.AND.J.NE.5)GO TO 99 IF(J.NE.1.AND.J.NE.2)GO TO 98 GO TO 97 99 CONTINUE CALL MOVE(KEA,9,16,KLINK,1) IF(KLINK(1).EQ.2H/E)GO TO 555 97 CONTINUE QQ=AR(LIV,3) GO TO 100 98 CONTINUE CALL MOVE(KEA,1,8,KIMP,1) IF(KIMP(1).EQ.2H/E)GO TO 555 GO TO 97 C C C 900 WRITE(1,9090)(KEA(KJ),KJ=1,16) 9090 FORMAT(" RECORD IN STRUCTURE TREE ",16A2," DESABLE") GO TO 60 901 WRITE(1,9091)IERR 9091 FORMAT(" EFMP ERROR="I5) GO TO 60 920 WRITE(1,9020)(KREY(KJ),KJ=1,8) 9020 FORMAT(" ITEM MASTER RECORD "8A2" DESABLE") GO TO 60 930 WRITE(1,9030) 9030 FORMAT(" MORE THAN 7 LEVELS") GO TO 60 940 WRITE(1,9040)IX 9040 FORMAT(" ERROR IN UPDATING PART NUMB. MASTER FILE"I5) C C C 9999 GO TO 60 8888 END PROGRAM MAINT C C C C :PR,MAINT,L.U. L.U.=1 DEFAULT C C THIS PROGRAM PROVIDES THE MAINTENANCE OF THE C PRODUCT STRUCTURE FILE C THESE OPERATIONS ARE ALLOWED : C C DELETE A LINK IN THE PRODUCT STRUCTURE TREE C ADD " " " " " " " C CHANGE THE QUANTITY OF THE COMPONENT PER ASSEMBLY C C C FORMAT OF RECORDS IN INPUT C C DE(ASSEMBLY'S KEY)(COMPONENT'S KEY) C AD( " )( " )(QUANTITY PER ASSY.) C CH( " )( " )( " ) C (A2)( 8A2 )( 8A2 )( I5 ) C C /E TO E.O.J. C DIMENSION NPART(3),NSTRU(3),IDFN(3) 1,IBT(128),IBU(2560),IPAR(80),IST(80) 2,IPR(5) 3,ITIP(3),KEA(16),NLIV(3) 4,KKEY1(8),KKEY2(8),KLINK(8) 5,KIMP(8),KALIN(8),KAIMP(8) 6,KEY1(8),KEY2(8),IMP(8),LINK(8) 3,NPLU(3) 4,NPRG(3) C EQUIVALENCE (IST(2),KKEY1),(IST(10),KKEY2) 1,(IST(18),KCOE),(IST(19),KLINK),(IST(27),KIMP) 2,(IST(1),KT) 3,(IPAR(33),KALIN),(IPAR(41),KAIMP),(IPAR(60),KLV) C DATA NPART/2HPA,2HRT,1HI/,NSTRU/2HST,2HRU,1HT/ 1,IDFN/2HDI,2HRF,1HI/,ITIP/2HDE,2HAD,2HCH/ 2,NLIV/2HLI,2HVM,1H / 3,NPLU/2HFC,2H-T,1H)/ 4,NPRG/2HMA,2HIN,1HS/ C CALL RMPAR(IPR) C C--------- DEFINE C CALL EXEC(24,1,IBT,128,IBU,2,10,IERR) C C----------OPEN C CALL EXEC(24,4,NPART,-1,1,0,1,IERR) CALL EXEC(24,4,NSTRU,-1,1,0,2,IERR) CALL EXEC(24,4,IDFN,-1,1,0,1,IERR) IF(IPR(1).EQ.0)IPR(1)=1 LU=IPR(1) C C C 60 CONTINUE C IF(LU.NE.1)GO TO 6000 WRITE(1,9000) 9000 FORMAT(" READY ") 6000 CONTINUE READ(LU,9001)IT,(KEY1(J),J=1,8),(KEY2(J),J=1,8),KOE 9001 FORMAT(17A2,I5) IF(IT.EQ.2H/E)GO TO 9999 DO 10 J=1,3 IF(ITIP(J).EQ.IT)GO TO 20 10 CONTINUE GO TO 60 C 20 GO TO(30,40,50),J C C------------- D E L E T E ----------------------- C 30 CONTINUE IFLAG=0 CALL MOVE(KEY1,1,8,KEA,1) CALL MOVE(KEY2,1,8,KEA,9) C C---------CHAIN STRUT C IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 902 C C---------------SAVE BLINK.BIMP,IER C CALL MOVE(KIMP,1,8,IMP,1) CALL MOVE(KLINK,1,8,LINK,1) IO=IER IER=ICHAI(NPART,KEY2,IPAR) IF(IER.EQ.-1)GO TO 903 C C UPDATE AIMP E BIMP C IF(KAIMP.EQ.2H/E)GO TO 80 IF(NCOMP(KAIMP,1,8,KEY1,1))81,82,81 82 CONTINUE CALL MOVE(IMP,1,8,KAIMP,1) IERR=ISTOR(NPART,0,IER,IPAR) IF(IERR.NE.0)GO TO 901 GO TO 80 81 CONTINUE CALL MOVE(KIMP,1,8,IMP,1) CALL MOVE(KAIMP,1,8,KEA,1) 85 CONTINUE IERR=ICHAI(NSTRU,KEA,IST) IF(IERR.EQ.-1)GO TO 903 IF(NCOMP(KIMP,1,8,KEY1,1))84,83,84 83 CONTINUE CALL MOVE(IMP,1,8,KIMP,1) IERR=ISTOR(NSTRU,0,IERR,IST) IF(IERR.NE.0)GO TO 901 GO TO 80 84 CONTINUE CALL MOVE(KIMP,1,8,KEA,1) GO TO 85 C C TEST MULT. DELETE 80 CONTINUE CALL MOVE(KEY1,1,8,KEA,1) CALL MOVE(KEY2,1,8,KEA,9) IER=ICHAI(NPART,KEY2,IPAR) IF(IER.EQ.-1)GO TO 903 IF(KALIN(1).NE.2H/E)IFLAG=1 C C---------------TEST FIRST COMPONENT C IER=ICHAI(NPART,KEY1,IPAR) IF(IER.EQ.-1)GO TO 903 IF(NCOMP(KALIN,1,8,KEY2,1))100,111,100 111 CONTINUE CALL MOVE(LINK,1,8,KALIN,1) KT=0 C C-----------------UPDATE ALINK C IERR=ISTOR(NPART,0,IER,IPAR) IF(IERR.NE.0)GO TO 901 200 CONTINUE C C-----------------DELETE RECORD STRUT C IERR=ISTOR(NSTRU,0,IO,IST) IF(IERR.NE.0)GO TO 901 IF(IFLAG.EQ.0)GO TO 60 GO TO 300 C C-----------------UPDATE ASSY. SEQUENCE C 100 CONTINUE CALL MOVE(KALIN,1,8,KEA,9) 110 CONTINUE IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 902 C C-----------TEST BLINK=KEY2 C IF(NCOMP(KLINK,1,8,KEY2,1))401,400,401 401 CONTINUE CALL MOVE(KLINK,1,8,KEA,9) IF(KEA(9).EQ.2H/E)GO TO 900 GO TO 110 400 CONTINUE CALL MOVE(LINK,1,8,KLINK,1) IERR=ISTOR(NSTRU,0,IER,IST) IF(IERR.NE.0)GO TO 901 IERR=IRETR(NSTRU,0,IO,IST) IF(IERR.NE.0)GO TO 901 KT=0 GO TO 200 C C------------------- MULTIPLE DELETE--------------------- C 300 CONTINUE CALL EXEC(10,NLIV) GO TO 9999 C C-------------------------- A D D - S T R U T T --------- C 40 CONTINUE IHR=IHRA(NSTRU) C C--------- TEST VALIDITY KEY1,KEY2 C IER=ICHAI(NPART,KEY2,IPAR) IF(IER.EQ.-1) GO TO 903 IO=IER CALL MOVE(KAIMP,1,8,IMP,1) CALL MOVE(KEY1,1,8,KAIMP,1) IERR=ISTOR(NPART,0,IO,IPAR) IF(IERR.NE.0)GO TO 901 LIV=KLV IER=ICHAI(NPART,KEY1,IPAR) IF(IER.EQ.-1)GO TO 903 C C TEST NEW ASSY. C IF(KALIN.EQ.2H/E)GO TO 9996 C C C IF(LIV-KLV)601,601,600 601 CONTINUE C C UPDATE ALV IN KEY2 RECORD AND AIMP C MAX=KLV+1 IERR=IRETR(NPART,0,IO,IPAR) IF(IERR.NE.0)GO TO 901 KLV=MAX IERR=ISTOR(NPART,0,IO,IPAR) IF(IERR.NE.0)GO TO 901 C C-------------RESET IPAR PER KEY1 C IERR=IRETR(NPART,0,IER,IPAR) IF(IERR.NE.0)GO TO 901 C C--------- RE-BUILD ASSEMBLY SEQUENCE C 600 CONTINUE IF(NCOMP(KALIN,1,8,KEY2,1))6300,904,6310 6310 CALL MOVE(KALIN,1,8,LINK,1) CALL MOVE(KEY2,1,8,KALIN,1) IERR=ISTOR(NPART,0,IER,IPAR) IF(IERR.NE.0)GO TO 901 CALL MOVE(KEY1,1,8,KEA,1) CALL MOVE(LINK,1,8,KEA,9) IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 902 C C--------- STORE NEW LINK C 6400 CONTINUE IO=IER+1 CALL COPFI(NSTRU,NPLU,IO,1) CALL MOVE(KEY1,1,8,KKEY1,1) CALL MOVE(KEY2,1,8,KKEY2,1) KCOE=KOE CALL MOVE(LINK,1,8,KLINK,1) KT=1 CALL MOVE(IMP,1,8,KIMP,1) IERR=ISTOR(NSTRU,0,IO,IST) IF(IERR.NE.0)GO TO 901 CALL COPFI(NPLU,NSTRU,1,2) GO TO 60 6300 CONTINUE CALL MOVE(KEY1,1,8,KEA,1) CALL MOVE(KALIN,1,8,KEA,9) 6500 CONTINUE IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 902 CALL MOVE(KLINK,1,8,LINK,1) IF(KLINK(1).EQ.2H/E)GO TO 6510 IF(NCOMP(KLINK,1,8,KEY2,1))6520,904,6530 6520 CONTINUE CALL MOVE(KLINK,1,8,KEA,9) GO TO 6500 C---------------------------- 6530 CONTINUE CALL MOVE(KLINK,1,8,LINK,1) CALL MOVE(KEY2,1,8,KLINK,1) IERR=ISTOR(NSTRU,0,IER,IST) IF(IERR.NE.0)GO TO 901 GO TO 6400 C--------------------------- 6510 CONTINUE CALL MOVE(KEY2,1,8,KLINK,1) IERR=ISTOR(NSTRU,0,IER,IST) IF(IERR.NE.0)GO TO 901 GO TO 6400 C-------------------------- C C------------------------CHANGE KOE ------------------------ C 50 CONTINUE CALL MOVE(KEY1,1,8,KEA,1) CALL MOVE(KEY2,1,8,KEA,9) IER=ICHAI(NSTRU,KEA,IST) IF(IER.EQ.-1)GO TO 902 KCOE=KOE IERR=ISTOR(NSTRU,0,IER,IST) IF(IERR.NE.0)GO TO 901 GO TO 60 C C C C 900 WRITE(1,9090) 9090 FORMAT(" ERROR IN ASSEMBLY SEQUENCE IS POSSIBLE") GO TO 9999 901 WRITE(1,9091)IERR 9091 FORMAT(" EFMP ERROR="I5) GO TO 9999 902 WRITE(1,9092)(KEA(KJ),KJ=1,16) 9092 FORMAT(" RECORD IN PRODUCT STRUCTURE TREE "16A2" DESABLE") GO TO 9999 903 WRITE(1,9093)(IPAR(KJ),KJ=2,9) 9093 FORMAT(" ITEM MASTER RECORD "8A2" DESABLE") GO TO 9999 904 WRITE(1,9094) 9094 FORMAT(" LINK ALREADY STORED ") GO TO 9999 9996 WRITE(1,9096) 9096 FORMAT(" THIS IS A NEW ASSEMBLY",/ 1," CALL PRODUCT STRUCTURE LOAD PROGRAM - MAINS -",/ 2," CHANGE FORMAT RECORD IN INPUT DELETING THE FIRST TWO",/ 3," CONTROL CHARACTER") 9999 CONTINUE END PROGRAM MANP C C C C :PR,MANP,L.U.,N,M,I L.U.=1 DEFAULT C N=2 LIST FILE FROM M TO I C M=I=0 LIST ALL RECORDS C C THIS PROGRAM PROVIDES THE MAINTENANCE OF THE C PART NUMBER MASTER FILE C THESE OPERATIONS ARE ALLOWED : C C DELETE PART NUMBER C CHANGE " " INFORMATION C ADD " " C C C FORMAT OF RECORD IN INPUT : C C DE(PART NUMBER) C CH(PART NUMBER ..... SEE FORMAT 9001) C AD( " " " " " " ) C C /E TO E.O.J. C C DIMENSION NPART(3),NSTRU(3),IDFN(3) 1,IBT(128),IBU(2560),IPAR(80),IST(80) 2,IPR(5) 3,ITIP(3),KEA(16),NLIV(3) 4,KKEY1(8),KKEY2(8),KLINK(8) 5,KIMP(8),KALIN(8),KAIMP(8) 6,KEY1(8),KEY2(8),IMP(8),LINK(8) 7,NPLU(3) 8,NPRG(7) C EQUIVALENCE (IST(2),KKEY1),(IST(10),KKEY2) 1,(IST(18),KCOE),(IST(19),KLINK),(IST(27),KIMP) 2,(IST(1),KT) 3,(IPAR(33),KALIN),(IPAR(41),KAIMP) 4,(IPAR(30),ACA) C DATA NPART/2HPA,2HRT,1HI/,NSTRU/2HST,2HRU,1HT/ 1,ITIP/2HDE,2HAD,2HCH/,NPRG/2HAK,2HEY,5*1H / 2,IDFN/2HDI,2HRF,1HI/ C C C CALL RMPAR(IPR) C C DEFINE C CALL EXEC(24,1,IBT,128,IBU,2,10,IERR) C C C CALL EXEC(24,4,NPART,-1,1,0,1,IERR) CALL EXEC(24,4,IDFN,-1,1,0,2,IERR) C C C IF(IPR.EQ.0)IPR(1)=1 LU=IPR(1) IF(IPAR(2).NE.0)GO TO 70 IFLAG=0 C C C 60 CONTINUE IF(LU.NE.1)GO TO 6000 WRITE(1,9000) 9000 FORMAT(" READY") 6000 CONTINUE READ(LU,9001)IT,(KEY1(J),J=1,8),(IST(J),J=1,20),ACOS,IST(21) 9001 FORMAT(29A2,F10.3,I5) IF(IT.EQ.2H/E)GO TO 9999 DO 10 J=1,3 IF(ITIP(J).EQ.IT)GO TO 20 10 CONTINUE GO TO 60 C C C 20 GO TO (30,40,50),J C C D E L E T E C 30 CONTINUE C C TEST IF ASSY. OR COMPONENT C IER=ICHAI(NPART,KEY1,IPAR) IF(IER.EQ.-1)GO TO 903 IF(KALIN.NE.2H/E)GO TO 904 IF(KAIMP.NE.2H/E)GO TO 905 CALL DELET(NPART,IER) GO TO 60 C C C H A N G E C 50 CONTINUE IER=ICHAI(NPART,KEY1,IPAR) IF(IER.EQ.-1)GO TO 903 CALL MOVE(IST,1,20,IPAR,10) ACA=ACOS IPAR(32)=IST(21) IERR=ISTOR(NPART,0,IER,IPAR) IF(IERR.NE.0)GO TO 901 GO TO 60 C C A D D C 40 CONTINUE IFLAG=1 I=IHRA(NPART) IPAR(33)=2H/E IPAR(41)=2H/E IPAR(49)=2H/E IPAR(1)=1 I=I+1 CALL MOVE(IST,1,20,IPAR,10) CALL MOVE(KEY1,1,8,IPAR,2) ACA=ACOS IPAR(32)=IST(21) IERR=ISTOR(NPART,0,I,IPAR) IF(IERR.NE.0)GO TO 901 GO TO 60 C C L I S T C 70 CONTINUE IHR=IHRA(NPART) IF(IPAR(3).EQ.0)IPAR(3)=1 IF(IPAR(4).EQ.0)IPAR(4)=IHR IFST=IPAR(3) ILST=IPAR(4) H<:6 DO 700 L=IFST,ILST IERR=IRETR(NPART,0,L,IPAR) IF(IERR.NE.0)GO TO 901 WRITE(6,7000)(IPAR(K),K=2,29),ACA,IPAR(32) 7000 FORMAT(5X,8A2,X,12A2,X,6A2,X,A2,X,A2,X,F10.3,X,I5) 700 CONTINUE GO TO 60 C C C C 901 WRITE(1,9091)IERR 9091 FORMAT(" EFMP ERROR ",I5) GO TO 9999 903 WRITE(1,9093)(IPAR(KJ),KJ=2,9) 9093 FORMAT(" ITEM MASTER RECORD DESABLE ",8A2) GO TO 9999 904 WRITE(1,9004)(KEY1(J),J=1,8),(KALIN(J),J=1,8) 9004 FORMAT(X,8A2," IS AN ASSEMBLY",/ 1,10X,"DELETE THE CHAIN WITH ",8A2) GO TO 9999 905 WRITE(1,9005)(KEY1(J),J=1,8),(KAIMP(J),J=1,8) 9005 FORMAT(X,8A2," IS A COMPONENT - HIS FATHER IS ",8A2) 9999 CONTINUE IF(IFLAG.EQ.0)GO TO 8888 CALL SO007(NPART,NPRG) 8888 CONTINUE END END$ 4<  22604-80003 A SC 0122 BILL OF MATERIAL PACKAGE             H0101 FTN,B SUBROUTINE COPFI(NAME,NAMED,IO,JK) DIMENSION NAME(1),NAMED(1) 1,IBUF(128) C C REPACK C CALL EXEC(24,11,-1,IERR) IHR=IHRA(NAME,IPC,LEN,LOR) IF(JK.EQ.2)GO TO 200 CALL EXEC(24,2,NAMED,IPC,LEN,LOR,0,IERR) IF(IERR.NE.0)GO TO 900 CALL EXEC(24,4,NAMED,IPC,1,0,1,IERR) IF(IERR.NE.0)GO TO 900 200 CONTINUE DO 12 NR=IO,IHR IERR=IRETR(NAME,0,NR,IBUF) IF(IERR.NE.0)GO TO 900 IERR=ISTOR(NAMED,0,0,IBUF) IF(IERR.NE.0)GO TO 900 12 CONTINUE IF(JK.EQ.1)GO TO 100 CALL EXEC(24,5,NAME,0,IERR) IF(IERR.NE.0)GO TO 900 CALL EXEC(24,3,NAME,IPC,0,IERR) CALL EXEC(24,11,-1,IERR) 100 RETURN 900 WRITE(1,9)IERR 9 FORMAT(" ERROR IN COPFI "I2) STOP END FUNCTION KEY(NFILE,ICOND) C C DIMENSION IBUF(8),NFILE(1) 1,ICOND(1),IDFN(3),IBO(128) C C DATA IDFN/2HDI,2HRF,1HI/ C C NR=IFIND(NFILE) IF(NR.EQ.0)GO TO 90 C C CALL EXEC(24,6,IDFN,NR,IBUF,IERR) IF(IERR.NE.0)GO TO 100 C C NWCON=IBUF(6) NPIT=IBUF(7) IHR=IHRA(NFILE) C C NT=NTENT(IHR) INF=1 ISUP=IHR IF(NT-1)400,400,235 235 ISUP=IHR-1 DO 333 I=1,NT MED=(INF+ISUP)/2 N=MED CALL EXEC(24,6,NFILE,N,IBO,IERR) IF(IERR.NE.0)GO TO 100 C C DO 180 J=1,NPIT K=NWCON+J-1 IF(IBO(K)-ICOND(J))12,180,13 180 CONTINUE C C GO TO 190 12 INF=MED GO TO 333 13 ISUP=MED 333 CONTINUE C C C 400 CONTINUE IF(INF.GT.1)INF=INF-1 IF(ISUP.LT.IHR)ISUP=ISUP+1 DO 444 I=INF,ISUP N=I CALL EXEC(24,6,NFILE,I,IBO,IERR) IF(IERR.NE.0)GO TO 100 DO 1180 J=1,NPIT K=NWCON+J-1 IF(IBO(K)-ICOND(J))444,1180,444 1180 CONTINUE GO TO 190 444 CONTINUE GO TO 200 190 CONTINUE KEY=N RETURN 100 CONTINUE WRITE(1,101)IERR 101 FORMAT(" ERRORE"I3) 90 KEY=-1 RETURN 200 KEY=-3 RETURN C C -1 FILE NON IN DIRETTORIO O ERRORE EFMP C -3 NESSUN RECORD SODDISFA LA CONDIZIONE C END FUNCTION ICMP(IB1,J,JL,IB2,K,I) DIMENSION IB1(1),IB2(1) II=K-1 DO 4444 I1=J,JL II=II+1 IF(IB1(I1)-IB2(II))11,4444,13 4444 CONTINUE GO TO 12 11 ICMP=-1 RETURN 12 ICMP=0 RETURN 13 ICMP=1 RETURN END SUBROUTINE MUVE(KEND,IS,IE,IAM,N,LV,K) DIMENSION KEND(16),IAM(16) GO TO(10,20),K 10 CONTINUE IF(N.NE.1)GO TO 1 JJ=1+24*(LV-1) GO TO 2 1 JJ=8*(N-1)+1+24*(LV-1) 2 CONTINUE CALL MOVE(KEND,IS,IE,IAM,JJ) GO TO 300 20 CONTINUE IF(IS.NE.1)GO TO 100 JJ=1+24*(IE-1) GO TO 200 100 JJ=8*(IS-1)+1+24*(IE-1) 200 JB=JJ+7 I=1 IF(LV-1)400,500,400 400 I=8*(LV-1)+1 500 CALL MOVE(KEND,JJ,JB,IAM,I) 300 CONTINUE RETURN END FUNCTION IROC(IER,IRAN,AQI,IAT) DIMENSION NPART(3),IBUF(80) 1,IDFN(3),NSTRU(3) 2,IAT(8) EQUIVALENCE (IBUF(57),AQII) DATA NPART/2HPA,2HRT,1HI/ 1,IDFN/2HDI,2HRF,1HI/,NSTRU/2HST,2HRU,1HT/ IERR=IRETR(NPART,0,IER,IBUF) IF(IERR.NE.0)GO TO 901 AQII=AQI IBUF(59)=IRAN CALL MOVE(IAT,1,8,IBUF,49) IERR=ISTOR(NPART,0,IER,IBUF) IF(IERR.NE.0)GO TO 901 IROC=0 CALL EXEC(24,14,IERR) IF(IERR.NE.0)GO TO 901 CALL EXEC(24,4,IDFN,-1,1,0,2,IERR) CALL EXEC(24,4,NPART,-1,1,0,1,IERR) CALL EXEC(24,4,NSTRU,-1,1,0,2,IERR) RETURN 901 IROC=IERR RETURN END FUNCTION IRAC(NSTRU) C C C DIMENSION NSTRU(1),IDFN(3),IBUF(8) DATA IDFN/2HDI,2HRF,1HI/ C C C NR=IFIND(NSTRU) IF(NR.EQ.0)GO TO 90 C C C CALL EXEC(24,6,IDFN,NR,IBUF,IERR) IF(IERR.NE.0)GO TO 100 C C  C IF(IBUF(6).EQ.99)GO TO 110 IBUF(8)=IBUF(8)+1 C C C CALL EXEC(24,8,IDFN,NR,IBUF,IERR) IF(IERR.NE.0)GO TO 100 IRAC=IBUF(8) RETURN C C C 90 WRITE(1,990)NR 990 FORMAT(" FILE NOT IN DIRFI ") STOP 100 WRITE(1,1000)IERR 1000 FORMAT(" ERRORE "I5) STOP 110 WRITE(1,1100)IBUF(6) 1100 FORMAT(" RACN ="I5" RUN LOW-LEVEL CODE PROGRAM LIVM") STOP END SUBROUTINE MEMOR(NPART,LIV,RACN,IER) INTEGER RACN,ARACN,ALV DIMENSION IBL(80) 1,NPART(1) C C C IERR=IRETR(NPART,0,IER,IBL) IF(IERR.NE.0)GO TO 901 ARACN=IBL(59) ALV=IBL(60) MAX=LIV-1 IF(RACN.NE.ARACN)GO TO 10 IF(MAX.LE.ALV)GO TO 20 10 CONTINUE C C--------- UPDATE RACN AND LOW-LEVEL CODE C IBL(59)=RACN IBL(60)=MAX IERR=ISTOR(NPART,0,IER,IBL) IF(IERR.NE.0)GO TO 901 C C----------- C 20 CONTINUE RETURN 901 WRITE(1,9001)IERR 9001 FORMAT(" ERRORE "I5) STOP END SUBROUTINE MOVE(IBUF,IST,IA,IBR,IDA) DIMENSION IBUF(1),IBR(1) I=IDA-1 DO 1 J=IST,IA I=I+1 IBR(I)=IBUF(J) 1 CONTINUE RETURN END SUBROUTINE SO007(NAMEF,ITNAM) C C THIS PROGRAM SORTS IEFMP FILES IN ASCENDING ORDER C OF A SPECIFIED INTEGER OR ASCII ITEM C DIMENSION IBT(128),IBU(1280),IBUF(128) 1,NAME2(6),NAME(3) 2,NAME1(3),NAMT1(3),NAMT2(3) 3,ISTB(10) 4,ITNAM(7),IDFN(3) 5,ITEM(2000),IPOS(2000) 6,NAMEF(3) EQUIVALENCE (IPC,ISTB),(LEN,ISTB(6)),(LOR,ISTB(7)) 1,(IHRA,ISTB(10)) 2,(NAME2(4),NAME) DATA NAMT1/2H/T,2HF1,1H /,NAMT2/2H/T,2HF2,1H / 1,IDFN/2HDI,2HRF,1HI/ C C REPACK C CALL EXEC(24,11,-1,IERR) IF(IERR.NE.0)GO TO 902 LU=1 CALL EXEC(24,1,IBT,128,IBU,2,5,IERR) CALL EXEC(24,4,IDFN,-1,1,0,1,IERR) DO 101 J=1,3 101 NAME(J)=NAMEF(6VJ) 2000 FORMAT(36A2) CALL EXEC(24,10,1,NAME,-1,IDU,ISTB,IERR) IF(IERR.NE.0)GOTO 901 IF(IHRA.GT.2000)GOTO 901 DO 230 I=1,3 NAME1(I)=NAME(I) 230 NAME2(I)=NAMT1(I) C C C C C C NI=NITEM(NAME,ITNAM,NW) LAB=NI+2 GOTO (210,901,220,901)LAB 210 NP=(1-NI)/2 GOTO 221 220 NP=1 221 CONTINUE C C CALL EXEC(24,4,NAME,IPC,1,0,2,IERR) CALL EXEC(24,2,NAMT1,IPC,LEN,LOR,0,IERR) CALL EXEC(24,4,NAMT1,IPC,1,0,1,IERR) IF(NP.LE.1)GOTO 300 CALL EXEC(24,2,NAMT2,IPC,LEN,LOR,0,IERR) CALL EXEC(24,4,NAMT2,IPC,1,0,2,IERR) C 300 CONTINUE C DO 333 I=1,NP IF(I.EQ.1)GOTO 390 NAME1(1)=NAMT1(1) NAME1(3)=NAMT1(3) IDISP=I-I/2*2 IPAR=1-IDISP NAME1(2)=2HF1+IDISP NAME2(2)=2HF1+IPAR 390 CONTINUE NWO=NW+NP-I DO 311 J=1,IHRA CALL EXEC(24,6,NAME1,J,IBUF,IERR) IF(IERR)901,301,901 301 ITEM(J)=IBUF(NWO) 311 CONTINUE CALL SORT(ITEM,IPOS,IHRA) DO 322 J=1,IHRA K=IPOS(J) CALL EXEC(24,6,NAME1,K,IBUF,IERR) CALL EXEC(24,8,NAME2,J,IBUF,IERR) 322 CONTINUE 333 CONTINUE IF(NP.EQ.1)GOTO 399 CALL EXEC(24,5,NAME1,0,IERR) CALL EXEC(24,3,NAME1,IPC,0,IERR) 399 CONTINUE CALL EXEC(24,5,NAME2,0,IERR) CALL EXEC(24,5,NAME,0,IERR) IF (IERR.NE.0)GOTO 901 CALL EXEC(24,3,NAME,IPC,0,IERR) IF(IERR.NE.0)GOTO 901 CALL EXEC(24,13,NAME2,IPC,0,IERR) IF(IERR.NE.0)GOTO 400 GOTO 990 400 WRITE(1,4001)NAME2 4001 FORMAT("NAME CHANGE "6A2" NOT PERFORMED") GOTO 990 901 WRITE(1,2010)IERR 2010 FORMAT("ERROR "I2" : OPERATION ABORTED") GO TO 990 902 WRITE(1,2020) 2020 FORMAT(" REPACK ABORTED ERROR =",I5) 990 CONTINUE CALL EXEC(24,11,-1,IERR) CALL EXEC(24,14,IERR) END SUBROUTINE TOTAS(TOT,TOTA,TOTT) DIMENSION ITE(122),NSTA(3) DATA NSTA/2HST,2HAM,1HP/ IERR=IRETR(NSTA,0,10,ITE) IF(IERR.NE.0)GO TO 901 WRITE(6,1)(ITE(JK),JK=1,122) 1 FORMAT(122A1) DO 10 J=22,25 IERR=IRETR(NSTA,0,J,ITE) IF(IERR.NE.0)GO TO 901 IF(J.NE.24)GO TO 11 WRITE(6,110)TOT,TOTA,TOTT 110 FORMAT(1H*,17X,F10.2,3X,F10.2,3X,F10.2) 11 WRITE(6,1)(ITE(JK),JK=1,122) 10 CONTINUE RETURN 901 WRITE(1,9001)IERR 9001 FORMAT(" ERROR "I4) STOP END SUBROUTINE STAMP(J,LIV,IPAR,QSTA,KK) C C C KK=1 HEADING LINE C KK=1 DETAILED LINE C KK=3 LINE TO CLOSE C DIMENSION ITE(122),IPAR(1),NSTA(3) 1,IPOS(20) C DATA NSTA/2HST,2HAM,1HP/ 1,IPOS/1,2,2,3,9,9,10,12,13,14,15,16,17,18,19,20,21/ CALL EXEC(24,4,NSTA,-1,1,0,2,IERR) IF(IERR.EQ.25)GO TO 700 IF(IERR.NE.0)GO TO 901 C 700 CONTINUE GO TO (400,500,600),KK C 400 CONTINUE IPOS(4)=J+2 IF(J-3)800,800,802 802 IPOS(8)=12 GO TO 801 800 IPOS(8)=11 801 CONTINUE DO 10 KJ=1,17 I=IPOS(KJ) 11 IERR=IRETR(NSTA,0,I,ITE) IF(IERR.NE.0)GO TO 901 IF(I.EQ.14)GO TO 13 GO TO 14 13 CONTINUE WRITE(6,130)(IPAR(JK),JK=2,27),QSTA 130 FORMAT(1H*,46X,8A2,5X,12A2,3X,6A2,3X,F10.3) 14 CONTINUE WRITE(6,140)(ITE(JK),JK=1,122) 140 FORMAT(122A1) 10 CONTINUE RETURN C C C 500 CONTINUE IF(J.EQ.3.OR.J.EQ.6)GO TO 91 GO TO (91,92,93,94,95,96),LIV 91 WRITE(6,9100)(IPAR(JK),JK=2,9) GO TO 100 92 WRITE(6,9200)(IPAR(JK),JK=2,9) GO TO 100 93 WRITE(6,9300)(IPAR(JK),JK=2,9) GO TO 100 94 WRITE(6,9400)(IPAR(JK),JK=2,9) GO TO 100 95 WRITE(6,9500)(IPAR(JK),JK=2,9) GO TO 100 96 WRITE(6,9600)(IPAR(JK),JK=2,9) 100 WRITE(6,1000)(IPAR(JK),JK=10,27),IPAR(29),IPAR(28),IPAR(32) 1,QSTA 9100 FORMAT(1H*,3X,8A2) 9200 FORMAT(1H*,7X,8A2) 9300 FORMAT(1H*,11X,8A2) 9400 FORMAT(1H*,15X,8A2) 9500 FORMAT(1H*,19X,8A2) 9600 FORMAT(1H*,23X,8A2) 1000 FORMAT(1H*,45X,12A2,4X,6A2,4X,A2,5X,A2,3X,I4,3X,F8.2) IERR=IRETR(NSTA,0,21,ITE) IF(IERR.NE.0)GO TO 901 WRITE(6,140)(ITE(JK),JK=1,122) RETURN C C C 600 CONTINUE IERR=IRETR(NSTA,0,10,ITE) IF(IERR.NE.0)GO TO 901 WRITE(6,140)(ITE(JK),JK=1,122) RETURN 901 WRITE(1,9001)IERR 9001 FORMAT(" ERROR - STAMP "I5) STOP END SUBROUTINE LOAD(KKEY,IBCOE,KEY2,IFLAG) DIMENSION NPART(3),NSTRU(3),IMPA(7) 1,IBUF(80),KKEY(1),KKEY2(8) 2,KIMP(8),KEY2(1),KEND(8) DATA IMPA/2HAI,2HMP,5*1H / 1,NPART/2HPA,2HRT,1HI/ 2,NSTRU/2HST,2HRU,1HT/ 1,KEND/2H/E,7*1H / C C C DO 30 J=1,80 IBUF(J)=0 30 CONTINUE CALL MOVE(KKEY,9,16,KKEY2,1) NR=KEY(NPART,KKEY2) IF(NR.LE.0)GO TO 902 IERR=IRETR(NPART,IMPA,NR,KIMP) IERR=ISTOR(NPART,IMPA,NR,KKEY) IF(IERR.NE.0)GO TO 901 CALL MOVE(KKEY,1,16,IBUF,2) CALL MOVE(KIMP,1,8,IBUF,27) IBUF(18)=IBCOE IF(IFLAG)1,2,1 1 CALL MOVE(KEY2,1,8,IBUF,19) GO TO 10 2 CALL MOVE(KEND,1,2,IBUF,19) 10 CONTINUE IBUF(1)=1 IERR=ISTOR(NSTRU,0,0,IBUF) IF(IERR.NE.0)GO TO 901 GO TO 900 901 WRITE(1,9001)IERR 9001 FORMAT(" ERRORE "I5) STOP 902 WRITE(1,9002)(KKEY2(J),J=1,8) 9002 FORMAT(X,8A2," UNDEFINED ") STOP 900 RETURN END FUNCTION INDEX(NFILE,ITEM,NIN) C C DIMENSION IBUF(8),NFILE(1) 1,ITEM(1),IDFN(3) C C C DATA IDFN/2HDI,2HRF,1HI/ C C NI=NITEM(NFILE,ITEM,NWORD) IF(NI)10,90,11 10 NI=(1-NI)/2 11 NR=IFIND(NFILE) IF(NR.EQ.0)GO TO 90 C C CALL EXEC(24,6,IDFN,NR,IBUF,IERR) IF(IERR.NE.0)GO TO 100 C C IBUF(6)=NWORD IBUF(7)=NIN C C CALL EXEC(24,8,IDFN,NR,IBUF,IERR) IF(IERR.NE.0) GO TO 100 C 100 CONTINUE INDEX=IERRu RETURN C C 90 IERR=-1 GO TO 100 END SUBROUTINE DELET(NAMEF,NR) C C THIS PROGRAM DELETES RECORDS FROM EFMP FILES C DIMENSION IBT(128),IBU(2560),IBUF(128) 1,NAME2(6),NAME(3) 2,NAMEF(3) 3,ISTB(10) EQUIVALENCE (IPC,ISTB),(LEN,ISTB(6)),(LOR,ISTB(7)) 1,(IHRA,ISTB(10)) 2,(NAME2(4),NAME) DATA NAME2/2H/T,2HF1,1H / CALL EXEC(24,1,IBT,128,IBU,2,10,IERR) CALL EXEC(24,11,-1,IERR) DO 101 J=1,3 101 NAME(J)=NAMEF(J) CALL EXEC(24,10,1,NAME,-1,IDU,ISTB,IERR) IF(IERR.NE.0)GOTO 901 IF(NR.GT.IHRA)GO TO 901 IF(NR.EQ.IHRA)GO TO 301 CALL EXEC(24,3,NAME2,IPC,0,IERR) CALL EXEC(24,2,NAME2,IPC,LEN,LOR,0,IERR) CALL EXEC(24,4,NAME2,IPC,1,0,1,IERR) CALL EXEC(24,4,NAME ,IPC,1,0,2,IERR) IL=0 ILO=0 DO 311 I =1,IHRA CALL EXEC(24,6,NAME,0,IBUF,IERR) IF(IERR.NE.0)GOTO 901 IF(I.EQ.NR)GO TO 311 ILO=ILO+1 CALL EXEC(24,8,NAME2,ILO,IBUF,IERR) IF(IERR.NE.0)GOTO 901 311 CONTINUE CALL EXEC(24,5,NAME2,0,IERR) CALL EXEC(24,5,NAME,0,IERR) IF (IERR.NE.0)GOTO 901 CALL EXEC(24,3,NAME,IPC,0,IERR) IF(IERR.NE.0)GOTO 901 CALL EXEC(24,13,NAME2,IPC,0,IERR) IF(IERR.NE.0)GOTO 400 GOTO 990 400 WRITE(1,4001)NAME2 4001 FORMAT("NAME CHANGE "6A2" NOT PERFORMED") GOTO 990 901 WRITE(1,2010)IERR 2010 FORMAT("ERROR "I2" : OPERATION ABORTED") 990 CONTINUE CALL EXEC(24,14,IERR) CALL EXEC(24,11,-1,IERR) RETURN 301 NR=NR-1 CALL EXEC(24,9,NAMEF,-1,NR,IERR) IF(IERR.NE.0)GO TO 901 RETURN END FUNCTION ICHAI(NPART,IREY,IPAR) C DIMENSION IPAR(1) C DIMENSION NPART(1),IREY(16) C C ICHAI ON RETURN=# RECORD C IPAR = BUFFER ADDRES FOR DATA RETRIEVED C ICHAI=-1 RECORD DESABLE C C C C------- C------- IER=KEY(NPART,IREY) { IF(IER.LE.0)GO TO 10 C C--------- TEST RECORD ENABLE C IERR=IRETR(NPART,0,IER,IPAR) IF(IERR.NE.0)GO TO 901 ICHAI=IER IF(IPAR(1).EQ.0)ICHAI=-1 C-------------- C GO TO 20 10 CONTINUE ICHAI=-1 L=16 IF(NPART(1).EQ.2HPA)L=8 WRITE(1,30)(NPART(JK),JK=1,3),(IREY(JK),JK=1,L) 30 FORMAT(" ERROR FILE "2A2,A1," KEY # "16A2) 20 CONTINUE RETURN 901 WRITE(1,9001)IERR 9001 FORMAT(" SUBR.ICHAI - EFMP ERROR= "I5) STOP END END$ FTN,B SUBROUTINE SORT(ITEM,IPOS,NTOT) C C ITEM = BUFFER ADDRESS OF ITEMS TO BE SORTED C NTOT = NUMBER " " " C IPOS = BUFFER ADDRESS FOR SORT ANSWER C SORT GIVES IN IPOS THE INDEXES OF ITEM IN ITEM'S C ASCENDING ORDER C DIMENSION ITEM(1),IPOS(1) IPOS(1)=1 DO 600 N=2,NTOT NT =NTENT(N) INF=1 ISUP=N-1 IF(NT)400,400,300 300 DO 333 I=1,NT MED=(INF+ISUP)/2 K=IPOS(MED) IF(ITEM(N).GE.ITEM(K))301,302 301 INF=MED GOTO 333 302 ISUP=MED 333 CONTINUE 400 NB=ISUP DO 444 I=INF,ISUP K=IPOS(NB) IF(ITEM(N).GE.ITEM(K))GOTO 450 444 NB=NB-1 450 ISTAN=NB+1 LIM=N-ISTAN DO 500 I=1,LIM K=N-I 500 IPOS(K+1)=IPOS(K) IPOS (ISTAN)=N 600 CONTINUE RETURN END FUNCTION IFIND(IFN) C C IFIND = # OF THE RECORD OF DIRFI CONTAINING THE FILE NAME C SPECIFIED IN IFN C C IFIND = 0 MEANS FILE NAME NOT FOUND C DIMENSION IFN(3),IBUF(8),IDFN(3) DATA IDFN/2HDI,2HRF,1HI/ IR=1 100 CALL EXEC(24,6,IDFN,IR,IBUF,IERR) IFIND=IR IR=IBUF(4) IF(IR)199,199,102 102 DO 110 I=1,3 IF(IBUF(I).EQ.IFN(I))110,100 110 CONTINUE GOTO 200 199 IFIND=0 200 CONTINUE RETURN END C FUNCTION NITEM(IFN,ITNAM,NWORD) C C NITEM = TYPE OF THE ITEM SPECIFIED IN ITN~AM OF THE FILE C SPECIFIED IN IFN C NWORD (ON RETURN) = POSITION OF THE ITEM IN THE RECORD C C NITEM = 0 MEANS ITEM NOT FOUND C DIMENSION INTB(8),IFN(1),ITNAM(1),IDFN(3) DATA IDFN/2HDI,2HRF,1HI/ NR=IFIND(IFN) CALL EXEC(24,6,IDFN,NR,INTB,IERR) IK=INTB(5) NWORD=1 DO 301 I=1,IK CALL EXEC(24,6,IDFN,0,INTB,IERR) IL=INTB(1) IF(IL.GT.0)GOTO 310 IL=(1-IL)/2 310 NITEM=INTB(1) DO 302 J=2,8 IF(ITNAM(J-1).EQ.INTB(J))302,305 302 CONTINUE RETURN 305 CONTINUE NWORD=NWORD+IL 301 CONTINUE NITEM=0 END FUNCTION ISTOR(NFILE,ITNAM,NR,IDATA) C C ISTOR STORES ITEMS IN IEFMP FILES C NFILE = FILE NAME C ITNAM = ITEM NAME (=0 TO STORE 1 RECORD) C NR = RECORD # (=0 FOR NEXT RECORD) C IDATA = BUFFER ADDRESS FOR DATA TO BE STORED C C ISTOR ON RETURN = EFMP ERROR--- ISTOR =-1 ITEM OR FILE ABSENT C " " = -2 NR<0 C DIMENSION IBUF(128),NFILE(1),ITNAM(7),IDATA(1) IF(NR.LT.0)GOTO 80 IF(ITNAM(1).EQ.0)GOTO 60 NI = NITEM(NFILE,ITNAM,NWORD) IF(NI)10,90,11 10 NI=(1-NI)/2 11 CONTINUE DO 20 I=1,128 20 IBUF(I)=0 CALL EXEC(24,6,NFILE,NR,IBUF,IERR) IF(IERR.NE.0)GOTO 30 IF(NR.EQ.0)NR=-1 30 CONTINUE DO 40 I=1,NI J=I+NWORD-1 40 IBUF(J)=IDATA(I) CALL EXEC(24,8,NFILE,NR,IBUF,IERR) IF(NR.EQ.-1)NR=0 50 ISTOR=IERR RETURN 60 CALL EXEC(24,8,NFILE,NR,IDATA,IERR) GOTO 50 80 ISTOR=-2 RETURN 90 ISTOR=-1 END C C C FUNCTION IRETR(NFILE,ITNAM,NR,IDES) C C IRETR RETRIEVES ITEMS FROM IEFMP FILES C C NFILE,ITNAM,NR LIKE IN ISTOR C IDES = BUFFER ADDRES FOR DATA TO BE RETRIEVED C C IRETR ON RETURN LIKE ISTOR C DIMENSION IBUF (128),NFILE(3),ITNAM(7),IDES(1) IF(NR.LT.0)GOTO 80 IF(ITNAM(1).EQ.0)GOTO 60 <:6 NI=NITEM(NFILE,ITNAM,NWORD) IF(NI)10,90,11 10 NI=(1-NI)/2 11 CONTINUE CALL EXEC(24,6,NFILE,NR,IBUF,IERR) IF(IERR.NE.0)GOTO 50 DO 20 I=1,NI J=I+NWORD-1 20 IDES(I)=IBUF(J) 50 IRETR=IERR RETURN 60 CALL EXEC(24,6,NFILE,NR,IDES,IERR) GOTO 50 80 IRETR=-2 RETURN 90 IRETR=-1 END C C FUNCTION IHRA(NAME,IPC,LEN,LOR) C C IHRA FINDS THE HIGHEST RECORD ACCESSED IN THE FILE C DEFINED IN NAME C C IPC (ON RETURN) = PACK # C LEN " " = LENGTH OF THE FILE C LOR " " = RECORD LENGTH C DIMENSION NAME (3),ISTB(10) CALL EXEC(24,10,1,NAME,-1,IDU,ISTB,IERR) IHRA=ISTB(10) IPC=ISTB(1) LEN=ISTB(6) LOR=ISTB(7) IF(IERR.NE.0)IHRA=-IERR END END$ ASMB,R,L,B NAM NTENT,7 ENT NTENT EXT .ENTR N NOP NTENT NOP JSB .ENTR DEF N CLA LDB N,I BRS,BRS SZB,RSS JMP NTENT,I LOOP RBL SSB,RSS JMP COUNT CMA,INA ADA =D15 JMP NTENT,I COUNT INA JMP LOOP END Z<  22604-80004 A SC 0122 BILL OF MATERIAL PACKAGE             H0101 PARTI 1000 1AT -16AKEY -24ADES -12ADIS -2AAP -2AUM 2ACOS 1ALOT -16ALINK -16AIMP -16AATT 2AQI 1ARACN 1ALV 1CHAIN 0 STRUT 2000 1BT -16BKEY1 -16BKEY2 1BCOE -16BLINK -16BIMP 1SPARE 0 /E 1 3,21 --------------------- 23,21 --------------------- 43,21 --------------------- 63,21 --------------------- 83,21 --------------------- 103,17 ----------------- 0 2 2,1 ! 120,1 ! 0 3 2,1 ! 39,12 1 L E V E L 61,17 E X P L O S I O N 120,1 ! 0 4 2,1 ! 39,15 I N D E N T E D 61,17 E X P L O S I O N 120,1 ! 0 5 2,1 ! 37,19 S U M M A R I Z E D 61,17 E X P L O S I O N 120,1 ! 0 6 2,1 ! 39,12 1 L E V E L 61,17 I M P L O S I O N 120,1 ! 0 7 2,1 ! 39,15 I N D E N T E D 61,17 I M P L O S I O N 120,1 ! 0 8 2,1 ! 37,19 S U M M A R I Z E D 61,17 I M P L O S I O N 120,1 ! 0 9 2,1 ! 120,1 ! 0 10 2,21 !-------------------- 22,21 --------------------- 42,21 --------------------- 62,21 --------------------- 82,21 --------------------- 102,20 ------------------! 0 11 2,3 ! 1 44,13 ! ASSEMBLY 65,18 ! DESCRIPTION 92,16 ! DRAWING ! 110,11 QUANTITY ! 0 12 2,3 ! 1 44,19 ! COMPONENT 65,18 ! DESCRIPTION 92,16 ! DRAWING ! 110,11 QUANTITY ! 0 13 2,7 ! * 2 22,15 A S S E M B L Y 44,21 !-------------------- 65,21 !-------------------- 86,21 ------!-------------- 107,17 !------------! 0 14 2,11 ! * * 3 44,1 ! 65,1 ! 92,1 ! 107,1 ! 120,1 ! 0 15 2,15 ! * * * 4 23,19 C O M P O N E N T S 44,21 !-------------------- 65,21 !-------------------- 86,21 ------!-------------- 107,14 !------------! 0 16 2,21 ! * * * * 5 44,21 !-------------------- 65,21 --------------------- 86,21 ------------------S--- 107,21 -------------! 0 17 2,21 ! * LEVELS * 24,21 6 44,1 ! 72,1 ! 87,21 ! UNIT ! MAKE !MINIM! 120,1 ! 0 18 2,21 ! * * 24,21 * 7 44,1 ! 52,21 DESCRIPTION 72,21 ! DRAWING !MEASU 93,21 R! BUY !REORD! 110,11 QUANTITY ! 0 19 2,21 ! * * * * * 24,21 * * 44,1 ! 72,1 ! 87,1 ! 94,1 ! 101,1 ! 107,1 ! 120,1 ! 0 20 2,21 !-------------------- 23,21 --------------------- 44,21 !-------------------- 65,21 -------!------------- 86,21 -!------!------!----- 107,14 !------------! 0 21 2,1 ! 44,1 ! 72,1 ! 87,1 ! 94,1 ! 101,1 ! 107,1 ! 120,1 ! 0 22 2,1 ! 15,1 ! 30,1 ! 46,1 ! 60,1 ! 0 23 2,1 ! 15,1 ! 20,20 TOTAL 30,20 ! TOTAL TO MAKE 46,20 ! TOTAL TO BUY! 0 24 2,20 ! C O S T S 15,1 ! 30,1 ! 46,1 ! 60,1 ! 0 25 2,21 --------------------- 15,21 !-------------------- 30,21 !-------------------- 46,15 !-------------------- 0 0 1,25 0 A DESCRIPTION ASSY "A" AABC01 PRNB 5000. 100 A3348 CONTROL BOX PPS024 PRNB 300. 100 A3349 CONTROL BOX - PROBE PPS025 PRNB 320. 100 A3414 CLAMP WITH NUT PPS026 PRNB 10. 100 A3418 RUBBER TUBE 1 INCH PPS027 PRNB 15. 100 A3425 TANK COVER ASSEMBLY APS00A1 PRNB 150. 100 A3425-9 TANK COVER ASSEMBLY APS040 PRNB 150. 100 A3444 STANPIPE PPS0042 PRNB 27. 100 B DESCRIPTION ASSY "B" AABC02 PRNB 200. 100 B3418 RUBBER TUBE -3/4 INCH PAB001X PRNB 7. 100 C DESCRIPTION ASSY "C" AABC03 PRNB 500. 100 C3418 RUBBER TUBE - 1/2 INCH CJD01153 ACNB 15. 100 D DESCRIPTION ASSY "D" AABC04 PRNB 5001. 100 E DESCRIPTION ASSY "E" AABC05 PRNB 600. 100 G DESCRIPTION ASSY "G" AABC06 PRNB 600. 100 K DESCRIPTION ASSY "K" AABC07 PRNB 600. 100 02892 LOCK CLIP PAS221 ACNB 10. 100 03010 PLATE FMB-0141 ACNB 10. 100 03011 THROW-OFF COLLAR PCL025 ACNB 10. 100 03012 SPRING PLC021 PRNB 10. 100 03021 VALVE PVT0063 ACNB 28. 100 03023 DISCHARGE FERRULE FL-11376 ACNB 300. 100 03024 SHELL PX00010 ACNB 15. 100 03025 PUMP HOUSING A3800007 ACNB 100. 100 03370 MOTOR PX00020 ACNB 1000. 100 03385 WRENCH PX00030 PRNB 150. 100 03398 CORD BRACKET PX00040 PRNB 5. 100 03410 BRACKET FC-6911 PRNB 6. 100 03416 BOLT FC-7009 PRNB 10. 100 03417 BOLT FL-11636 PRNB 10. 100 03419 HINGE PIN PX-00050 ACNB 10. 100 03421 HINGE ARM PX-00070 ACNB 100. 100 03421-9 HINGE ARM PX0070 ACNB 100. 100 03422 LEVER ARM FC-6918 ACNB 100. 100 03422-9 LEVER ARM FC-6918 PRNB 100. 100 03423 TREADLE PX00080 PRNB 100. 100 03423-9 TREADLE PX00090 PRNB 10. 100 03424 TREADLE ASSEMBLY AX00100 PRNB 11. 100 03424-8 TREADLE ASSEMBLY AX00110 PRNB 15. 100 03424-9 TREADLE ASSEMBLY AX00120 PRNB 10. 100 03425 COVER  FC-6910 PRNB 10. 100 03425-1 COVER FC-6910 PRNB 10. 100 03426 TUBE FL-11624 ACNB 15. 100 03428 STAND PX00130 ACNB 15. 100 03428-8 STAND PB-6388 ACNB 20. 100 03428-9 STAND PX00140 ACNB 20. 100 03443 MOTOR SUPPORT PX00150 ACNB 20. 100 03578 TREADLE SPACER PX00160 PRNB 20. 100 3584 PIN FS-308 ACNB 15. 100 03587 HINGE WASHER PX-00170 ACNB 10. 100 03590 WHEEL - 16 IN. DIA. PX-00180 ACNB 100. 100 03592 PIN FL-11489 ACNB 50. 100 03593 PIN FL-11459 ACNB 50. 100 03594 LUG FL-11487 ACNB 50. 100 03595 LUG SUBASSEMBLY AX00190 PRNB 100. 100 03640 HINGE WASHER PX00200 PRNB 100. 100 03901 SET SCREW PX00210 PRNB 2. 100 03902 PUMP SHAFT PIN FS-308 PRNB 2. 100 03903 INPELLER PX00220 PRNB 2. 100 03904A PUMP SHAFT ASSEMBLY AL-11401 PRNB 10. 100 03904C PUMP SHAFT FL-11401 PRNB 10. 100 03905 WEARING COLLAR PX00230 ACNB 10. 100 03906 DRIVING COLLAR PX00240 ACNB 10. 100 03907 SEAL PX00250 PRNB 10. 100 03912 ADAPTER PLATE PX00260 PRNB 10. 100 03925 RING PX00270 PRNB 100. 100 04632 WASHER PX00280 ACNB 25. 100 05290 FERRULE PX00290 ACNB 25. 100 05~303 GASKET PX00300 ACNB 25. 100 05325 CONNECTION PX00310 ACNB 25. 100 06014 NUT PX000320 ACNB 25. 100 07243 NUT PX00330 ACNB 25. 100 080463 FERRULE ADAPTER MED12025 PRNB 10. 100 1 DESCRIPTION PART "1" PABC08 PRNB 10. 100 11 DESCRIPTION PART "11" AABC14 PRNB 100. 100 12 DESCRIPTION PART "12" AABC15 PRNB 100. 100 2 DESCRIPTION PART "2" PABC09 PRNB 100. 100 2700000-01 COMPRESSOR PX00350 ACNB 1000. 100 2700000-02 COMPRESSOR PX00360 ACNB 1000. 100 2700001-01 ADAPTER PLATE GASKET PX00370 PRNB 10. 100 2700002-01 ADAPTER PLATE PX00380 PRNB 10. 100 2700003-20 PUMP ASSEMBLY AX00390 PRNB 10. 100 2700004-01 HANDLE F8300006 ACNB 10. 100 2700004-02 HANDLE F8300006 ACNB 10. 100 270005-A PUMPING UNIT AX00400 ACNB 10. 100 2700005-M PUMPING UNIT AX00410 ACNB 10. 100 2700006-00 TANK TOP F8300004 PRNB 10. 100 2700006-01 TANK TOP F8300004 PRNB 10. 100 2700006-02 TANK TOP F8300004 PRNB 10. 100 2700006-20 TANK A8300004 ACNB 10. 100 2700006-21 TANK A8300004 ACNB 10. 100 2700006-22 TANK A8300004 ACNB 10. 100 2700006-23 TANK A8300004 ACNB 10. 100 2700006-24 TANK A8300004 ACNB 10. 100 2700006-25 TANK A8300004 ACNB 10. 100 2700006-80 TANK BOTTOM F8300004 ACNB 10. 100 2700006-82 TANK BOTTOM F8300004 ACNB 10. 100 2700006-83 TANK BOTTOM F8300004 ACNB 10. 100 2700006-85 TANK BOTTOM F8300004 ACNB 10. 100 2700007-A1 BASE AX00420 ACNB 10. 100 2700007-A2 BASE AX00430 PRNB 10. 100 2700007-20 FRAME PX00440 PRNB 10. 100 2700007-22 FRAME PX00450 PRNB 10. 100 2700007-27 FRAME PX00460 PRNB 10. 100 3415-1 SPRAY NOZZLE PX00470 PRNB 10. 100 3415-2 SPRAY NOZZLE PX00480 PRNB 10. 100 3415-3 SPRAY NOZZLE PX00490 PRNB 10. 100 4 DESCRIPTION PART "4" PABC10 PRNB 10. 100 6 DESCRIPTION PART "6" PABC11 PRNB 10. 100 7 DESCRIPTION PART "7" PABC12 PRNB 10. 100 74955 BRACKET NUT PX00500 PRNB 10. 100 77583 BRACKET WASHER PX00510 PRNB 10. 100 77683 SCREW PX00520 PRNB 10. 100 78053 WHEEL NUT PX00530 PRNB 10. 100 79098 SCREW PX00540 PRNB 10. 100 8 DESCRIPTION PART "8" PABC13 PRNB 10. 100 86813 NUT PX00550 PRNB 10. 100 89182 HANDLE SCREW PX00560 PRNB 10. 100 89214 HINGE NUT PX00570 PRNB 10. 100 98908 WASHER PX00580 PRNB 10. 100 9900001A PAINT SPRAY UNIT AX00590 PRNB 10. 100 9900001M PAINT SPRAY UNIT AX00600 PRNB 10. 100 9900002A PAINT SPRAY UNIT AX00610 PRNB 10. 100 9900002M PAINT SPRAY UNIT AX00620 PRNB 10. 100 9900003A PAINT SPRAY UNIT AX00630 PRNB 10. 100 9900003M PAINT SPRAY UNIT AX00640 PRNB 10. 100 /E 03025 03023 1 03025 05290 1 03424 03421 1 03424 03422 2 03424 03592 2 03424 03593 2 03424-8 03422-9 2 03424-8 03423-9 1 03424-8 03592 3 03424-9 03593 2 03904A 03902 1 03904A 03904C 1 2700003-20 02892 1 2700003-20 03010 1 2700003-20 03011 1 2700003-20 03012 1 2700003-20 03025 1 2700003-20 03370 1 2700003-20 03903 1 2700003-20 03904A 1 2700003-20 03905 1 2700003-20 03906 1 2700003-20 03907 1 2700003-20 03912 1 2700003-20 03925 1 2700003-20 04632 2 2700003-20 77683 2 2700003-20 79098 4 2700003-20 A3414 1 2700005-M 2700000-02 1 2700005-M 2700001-01 1 2700005-M 2700002-01 1 2700005-M 2700003-20 1 2700005-M A3348 1 2700006-20 03426 1 2700006-20 2700006-00 1 2700006-20 2700006-80 1 2700006-21 03426 1 2700006-21 2700006-80 1 2700006-22 03426 1 2700006-22 2700006-02 1 2700006-22 2700006-82 1 2700006-23 03426 1 2700006-23 2700006-00 1 2700006-23 2700006-83 1 2700006-24 03426 # 1 2700006-24 2700006-01 1 2700006-24 2700006-83 1 2700006-25 03426 1 2700006-25 2700006-02 1 2700006-25 2700006-85 1 2700007-A1 03416 2 2700007-A1 03417 2 2700007-A1 03590 2 2700007-A1 04632 2 2700007-A1 2700004-01 1 2700007-A1 2700007-20 1 2700007-A1 78053 2 2700007-A1 86813 7 2700007-A1 89182 4 2700007-A1 98908 7 2700007-A2 03416 2 2700007-A2 03417 2 2700007-A2 03590 2 2700007-A2 04632 2 2700007-A2 2700004-02 1 2700007-A2 2700007-22 1 2700007-A2 78053 2 2700007-A2 86813 7 2700007-A2 89182 4 2700007-A2 98908 7 9900001A 03021 1 9900001A 03385 1 9900001A 03398 2 9900001A 03410 1 9900001A 03419 2 9900001A 03424 1 9900001A 03428 1 9900001A 03443 1 9900001A 03578 2 9900001A 03587 1 9900001A 03640 2 9900001A 04632 1 9900001A 05303 1 9900001A 05325 1 9900001A 06014 3 9900001A 07243 1 9900001A 2700006-20 1 9900001A 2700007-A1 1 9900001A 3415-1 1 9900001A 74955 1 9900001A 77583 4 9900001A 77683 2 9900001A 89214 2 9900001A A3418 1 9900001A A3425 1 9900001A B3418 ǡ 1 9900001M 03021 1 9900001M 03385 1 9900001M 03398 2 9900001M 03410 1 9900001M 03419 2 9900001M 03424 1 9900001M 03428 1 9900001M 03443 1 9900001M 03578 2 9900001M 03587 1 9900001M 03640 2 9900001M 04632 1 9900001M 05303 1 9900001M 05325 1 9900001M 06014 3 9900001M 07243 1 9900001M 2700005-M 1 9900001M 2700006-23 1 9900001M 2700007-A1 1 9900001M 3415-1 1 9900001M 74955 1 9900001M 77583 4 9900001M 77683 4 9900001M 89214 2 9900001M A3425 1 9900001M A3444 1 9900001M B3418 2 9900002A 03021 1 9900002A 03385 1 9900002A 03398 2 9900002A 03410 1 9900002A 03419 2 9900002A 03424-9 1 9900002A 03428-9 1 9900002A 03443 1 9900002A 03578 2 9900002A 03587 1 9900002A 03640 2 9900002A 04632 1 9900002A 05303 1 9900002A 05325 1 9900002A 06014 3 9900002A 07243 1 9900002A 2700006-21 1 9900002A 2700007-A1 1 9900002A 3415-2 1 9900002A 74955 1 9900002A 77583 4 9900002A 77683 4 9900002A 89214 2 9900002A A3418 u<:61 9900002A A3425 1 9900002A A3444 1 9900002A B3418 1 A3425 03425 1 A3425 03595 2 A3425-9 03595 2 /E 0 /E v1<  22606-80001 1437 SC 0122 01RTE DISC PROGRAM PATCH UTILITY             H0101 FASMBج̬ 00SP̬̬MϬԬ 00NAMŠPMD(390 NAMPMD390 .A.U0 .B.U Ԡ.N Ԡ ԠPU ԠMPA MSGԠ000 Ԡ05 Ԡ030 Ԡ00 Ԡ06505 Ԡ030 MSGԠ000 Ԡ05 Ԡ030 Ԡ0 Ԡ0500 Ԡ050 Ԡ053 Ԡ056 Ԡ05056 MSG3Ԡ005 Ԡ0005 Ԡ003 Ԡ05 Ԡ000 Ԡ055 Ԡ00 Ԡ005 Ԡ050 Ԡ03 Ԡ0500 Ԡ065 Ԡ05 Ԡ0605 MSGԠ000 Ԡ063 Ԡ0555 Ԡ0535 Ԡ0005 Ԡ000 Ԡ05 Ԡ0 Ԡ0006 Ԡ05 Ԡ060 Ԡ0505 Ԡ060 Ԡ05 Ԡ05305 Ԡ000 Ԡ00 Ԡ0505 Ԡ0553 MSG5Ԡ003 Ԡ060 Ԡ060 Ԡ030533 Ԡ0056 Ԡ00 Ԡ035 Ԡ0005 Ԡ003 Ԡ05 Ԡ0505 Ԡ000 Ԡ005 Ԡ000 Ԡ05 Ԡ055 Ԡ050 Ԡ006 Ԡ00 Ԡ0 Ԡ050 Ԡ06 MSG6Ԡ0005 Ԡ0005 Ԡ005 Ԡ0500 Ԡ005 Ԡ00 Ԡ05505 Ԡ05 Ԡ05 Ԡ0006 Ԡ00 Ԡ055 Ԡ05056 MSGԠ0003 Ԡ055 Ԡ0650 Ԡ00 Ԡ0300 MSGԠ006 Ԡ00 Ԡ06505 Ԡ065 5Ԡ053 Ԡ000 Ԡ0053 Ԡ00 Ԡ0355 Ԡ0300 MSG9Ԡ050 Ԡ050 Ԡ006 Ԡ05 Ԡ000 Ԡ053 Ԡ00 Ԡ0505 Ԡ0556 BUƠBSS0 SBUƠBSS6 .Ԡ00000 .Ԡ00000 .3Ԡ000006 ɠBSS .Ԡ .Ԡ .9DƠBU .0Ԡ0000 .Ԡ3 .Ԡ0000 NGBSS MBSS KYB̠BSS .3Ԡ0065 DPҠBSS .5Ԡ0000 .6Ԡ0000 .Ԡ00005 .Ԡ00006 .9Ԡ000 YPŠBSS .0Ԡ00000 .Ԡ00000 UBSS SԠBSS .Ԡ00003 .5Ԡ000003 NSPKBSS .6Ԡ0055 AKBSS AKBSS .Ԡ000 SԠBSS BUNDBSS .Ԡ00006 .9DƠSBU .30Ԡ00003 .3Ԡ00000 .3Ԡ000005 .33Ԡ660 GBSS P0BSS ñBSS ADDҠBSS .3Ԡ0005 .36Ԡ00005 .39Ԡ0000 .0Ԡ0000 .Ԡ000053 .Ԡ000055 .3Ԡ0003 SԠBSS ADDBSS .5BSS PϠBSS ԠBSS ؠBSS .9Ԡ ̠BSS .50Ԡ000060 .5Ԡ0 ԠBSS .5Ԡ00656 ϠBSS .55Ԡ0 ADDҠBSS .56Ԡ0000 AKVBSS DAABSS àBSS .6Ԡ00005 .63Ԡ00000 .66Ԡ6 .6Ԡ65 .0Ԡ5 .Ԡ .Ԡ00006 .5Ԡ0 .6Ԡ0 003! 00!ŠPGAMҠŠPGAMPAHNG. 005! 006!HSPGAMASPAHSϠBŠPADNŠDS- 00!SDNԠPGAMS(GUNDANDBAKGUND. 00! 009!HŠPGAMϠBŠPAHDMUSԠɠSԠNHҠUҠ3. 00!ϠUS:NPMDPN 0! 0!PN0ҠPNUԠƠMMANDPANANS 03!0ϠNHBԠPANANS 0! 05!NҠPGAM(ҠSGMNԩNAMŬANDN 06!HŠMMYBASŠҠHŠMDUŠϠB 0!PAHDASHŠSԠMMAND: 0!MH6 ~4P+dD ~p@),d ~tdD ~P@DthmXq,a`l>;`^`t`otZdfdgɴZdh̴ dt`A,tPB,`B;<`a~t`B<t ~F,& ~ }d }T ~,,t ~< ~d@Nt,t`-tt*t*;`cZd,Id,`J4t+,`IPJ4t+`IPJ,-,D ,+AZ ,| d;`]6t dTU,I dt,TU,I$Gtt*d,ܴZdIG`0l<,   -<`a ߶d,TU,Id ,,ENTER FILE NAME(S) OR /EddtZt< |H?P,,d;`^Z,#t3dPtlH-,< ,< =,#,<<<<3,;`_lZ?P0,?,?P-,CPP.,AP/,DP0,dH@/  ZtGdGl* ;`^a=,[Z,$l,$Z`-tdPtd,:ZP-,tdtl X|<`a[t EtdtdǶtdt`5l<i2X,t t, v ",}d,n;`^;|,ctl|dt ?t2 lH- <3,l ,d2lP,,P ,P-,P.:`^%,P/,P0,Ƕd?, dF, d>GdtdtǶdt ,SLOAD TAPE ,;`\% |||dtZ,n[Z,l,ttޢ,nl|dt ;`[^Զ<,b<<< ,Ԣd,dTb;P0,ddT,ˬ;`[,QZd,,,dZȶd[d\=dtt,,df<`^p ,dgP,=Th,dBLZ=,=ʢ,(,:`^(<,d,,PP*,0Ztt`-tVd,,,E2;`^F,O ,S4t,SP-,TP,,,B<,dVZt`tdNt`tl=L ,/|d <),n;`\kqtZ,@d>,q<<H<u< vvZdut)v<),t<``RZ,=;P.,P/,ZP0,,=0.dtG }d },dCG`0l;`]"<<,t9,d, `tdtdt -dl ,P*,`|t;:`^vʶ,dG, lH- ;@%,H4|lLC|,H.|lH0| ,,d@5, ;`\l\,|+ <+,dld7tttZtd::4Kt+.+!dGliW<`Z`WPdFlsWPdtl|dt`.tdt4dtdtt t<  S,{;`Z<@ ,D4tdt P  z< t dtd(l dtݠd(<`^O8t`0tdt,idѴPt,?;P0,?ZT,?d΢t| P:`YXBV  z t d(l dܶl( dt(dݶtdt,?dtdtdl;`Z^o dtdlܢ `.tdt,Pd,dGl<,dEl<  ;`]LZ -d,lZd,dl 1`mPq,dl 1`Pl`ot`Pl`TN<`h,d"lO 1 1LOADR BTERMINATEDLOADR COMPLETENO PROGRAMS LOADED|dtd;`\qζt(Ѭtt9t4l9 ,dt7d(t6dFtZt:d9,d6l( d7<`\l: td6t( I t*dtdt3<<ٶt;<t<=t=;`\w"P4Sh.h-|d:,<3,5,<,5Zdl: tdP0, dtl,'d;`\"DDtl,-Pd < ,2 <,.dRttd7l #d:,>dFlW<``> 4d 2P,,Zd@1t l|d ,]d@4;P1Z,[P2,]dt ;`_~-^P (D  | `.t - 5B 1<4 <l`#tdR <`\ P<, N Idжt Sdtdt;T, V< S SdRtttd  d;``* ld6t4l 5!<  | T|, T}, "T~, T , l45!t , <=4<`^s1 Z |4< , o ddU< d d/tdt d,Z T}  dt, d ;`\e < d < d= < <d,T~,   dt, , dBGdFl:`^ ƴP<,d:Z P- 4Jt+ .+Z d  , Pt5|6L Z, d  , ;`d6 t7|8,d G`IPJ, , d ZG`IPJ, , 1819 BP BND (L,U)? PROG BND (L,U)<`d) ? t |`IPJ4t+`IPJ,  -B,3 ,+A , | tմPdttt;`^ ,ttdtttl Z;<|׶TS, [T|, Wl H  H#  tl <`\& JZ , Rd@-TѬ <Ѷ| b, 3tɶ b, `d, ` b, 3 k, *< b k<`_ֳ fttt, edt |ҠZ; y; y<, pP, 2l  H|Ҭ y , ;`_ d, hdh||լ k hdh@dZ@ dԶ< d, , d: ;`aP Z, d9, d8, dp4LZ H|3dPH|2 l , d3@PH d2Q, <`\ Ŷ,d5l|2HZ||>t5d2t=t<Nt? dT; Ԣd: d?T, d<`\ú Ptl<L=, T, < , dTϬ Ԣd=@T> <=l,d:,d9;`] ,d5%Z, dDt=t<Nt?DMt>tZ, d2D=t5P,<4;`\IZd=Dt5%d=tڬdt l<|@ l@ <@< <5,*%:`m.6  @| * /EW$DBP1DEBUG$DBP2$MEMR:`m%lcDBKPTEXEC jRELOCATING LOADER tNAME/ENTRY ADDR ,()09! op`Q @+0.*'d :`mr2:`mr^&`\t`S\>01020304050607080910111213141516NOQ0   22608-80001 C SC 4622 HP 2000F BASIC FOR DOS-M/DOS III             H0146 ASMB,R,L,X NAM BASIC,3 SPC 2 ENT SCHEQ,SCHIQ,LCDLP ENT SCHIN,SCHLB ENT GETCR,S14SC,ABCHK ENT BLANK,MLINK,MLINB,INF ENT CW0 ENT CW2,OUTCH ENT ATERM,ABFLG ENT PRISF ENT #LDFG SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EPRFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT4,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,ZZ(23),IHB,ZZZ(43) COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT,FLSTS(4) SPC 2 SPC 2 EXT STDAT EXT EXEC,SYNTX,CMPLE,LISTB EXT PBUFF,LWAUS,LW200 EXT EOST EXT SAIR EXT DLOOK 7IEXT FSCHB EXT PUNCH,XPNCH EXT TAPER EXT OUTST,LTYPR SPC 2 HB DEF ERSEC+5 A EQU 0 B EQU 1 B177 OCT 177 BKS OCT 160023 MNEG OCT 100000 GTC OCT 40000 RBP OCT 140000 SBP OCT 120000 ALI OCT 160014 B377 OCT 377 IWT OCT 160003 UNR OCT 160002 UIR OCT 160001 STE OCT 20000 TAPEF EQU .+8 TERR EQU .+1 .140 OCT 140 .72B OCT 72 FLSTA DEF FLSTS SPC 2 SCHIQ NOP INPUT A LINE SCHIN EQU SCHIQ JSB S14SC JMP SCHIQ,I ISZ SCHIQ JMP SCHIQ,I SPC 2 LCDLP NOP DUMMY FILE "LAST-CHANGE- JMP LCDLP,I DATE" UPDATER SPC 2 SCHLB NOP DUMMY LIBRARY CALL PROCESSOR LDA SCHLB,I ISZ SCHLB STA SEG JSB EXEC DEF *+3 DEF .+8 SEG NOP JMP SCHLB,I SPC 5 START LDA B,I SZA,RSS JMP STRT STA INCWA IOR =B100 STA CW0 STA CW2 IOR =B400 STA INCW IOR =B20000 STA INCWR STRT LDA PINA RAL STA PINA LDA HB GET HOLD BUFFER ADDR. STA IHB AND SAVE LDA BEND SET INP. BUF. END ADDD. RAL STA BEND LDA LBBEG SET LP BUFFER ADDR. RAL INA STA LBBEG LDA LBEND RAL STA LBEND LDA FLSTA STA DFILT LDB .ADM SET CONSTANTS IN COMMON LDA =D-26 L1 STA B,I INA INB CPB .END RSS JMP L1 JSB EXEC GET START TIME DEF *+3 DEF .+11 DEF STIME JSB STDAT LDA LW200 NEGATE LW200 CMA,INA STA LW200 LDA MANE SET POINTER TO TTY TABLE STA MAIN LDA PBUFF SET USER PROGRAM POINTER STA SPROG STA PBPTR LDA FSCHB STA FSCHA LDA SAIR SET ERROR LINKS LDB SA L2 STA B,I INB CPB SAEND RSS <JMP L2 CLA INITIALIZE FLAGS STA MSFLG STA PFLAG STA SFLAG STA UFLAG STA DFLAG STA CDFLG STA ARYAD STA GFLAG STA CHRCT STA PRIST STA DRFLG OTA 1 LDA DA STA DCLC1 STA DCLC2 LDA NAMEA SET NAME POINTER STA LNAME JSB DLOOK INITIALIZE DIRECTORY SPC 1 CLA DISABLE LDB B111 COLON JSB EXEC CHECK DEF *+2 DEF .-19 SPC 1 JSB EXEC PRINT "READY" DEF *+5 DEF .+2 DEF CW0 DEF RDY DEF .-8 SPC 1 JMP RESET SPC 2 B111 OCT 111 CW0 OCT 101 .ADM DEF .-26 .END DEF .+52 SA DEF SYNTQ+1 SAEND DEF MAXCR DA DEF DCLC2 RDY ASC 2,READ OCT 54415 OCT 5012 SPC 5 GSTAT NOP JSB EXEC GET TTY STATUS DEF *+5 DEF .+13 DEF INCWA DEF STATS DEF TLOG JMP GSTAT,I SPC 2 XINST JMP 225B,I CLTTY NOP CLEAR PENDING INPUT ON TTY LDA XINST JSB EXEC DEF *+2 DEF .-22 LDA 121B ADA INCWA ADA .-1 LDA A,I ADA .-1 MPY .+17 ADA 117B ADA .+2 LDA A,I AND =B77 IOR OTAB STA OTAA AND =B77 IOR STFB STA STFA CLA,INA OTAA OTA 0 FORCE INTERRUPT ON TTY STFA STF 0 STF 0 STC 5 JMP CLTTY,I OTAB OTA 0 STFB STF 0 SPC 2 RESET CLA STA ABFLG JSB LININ JMP CR SPC 2 AIDPT NOP AIDTL NOP MD132 DEC -132 LINT NOP INCW OCT 501 INCWR OCT 20501 INCWA OCT 1 LININ NOP READ A LINE FROM TTY STA LINT (A#0 => "ENTER") LDA PINA RESET INPUT BUFFER POINTER STA PNTR RAR CLB CLEAR BUFFER L9 STB A,I INA CPA BEND2 RSS !JMP L9 LDA #LDFG GET "LOAD" FLAG SZA,RSS "LOAD"? JMP LINI7 NO JSB EXEC YES. READ RECORD FROM LOAD DEVICE DEF *+5 DEF .+1 DEF #LDFG AIDBA DEF LPBUF DEF MD132 SPC 1 SZB EOF? JMP LINI6 NO STB #LDFG YES. CLEAR "LOAD" FLAG JMP SCH31 SPC 1 LINI6 STB AIDTL SAVE RECORD LENGTH LDA AIDBA GET BUFFER ADDR. RAL FORM BYTE ADDR. STA AIDPT AND SAVE JMP GCHR SPC 1 LINI7 LDA INCW LDB LINT SZB "ENTER"? LDA INCWR YES. STA CW1 NO. SET INPUT CONTROL WORD GCHR LDA #LDFG GET "LOAD" FLAG SZA,RSS "LOAD"? JMP GCHR7 NO LDA AIDTL YES. ALL OF RECORD SZA PROCESSED? JMP *+4 LDA .+15B YES. FAKE CR STA TEMP JMP L85 SPC 1 LDB AIDPT GET BUF. POINTER CLE,ERB FORM FLAG,ADDR. LDA B,I GET WORD SEZ,RSS RIGHT/LEFT? ALF,ALF LEFT ELB BUMP POINTER INB STB AIDPT LDB AIDTL DECR. COUNTER ADB .-1 STB AIDTL JMP L81 SPC 1 GCHR7 JSB EXEC READ A CHARACTER DEF *+5 DEF .+1 DEF CW1 DEF BIN DEF .-1 LDA LINT "ENTER"? SZA,RSS JMP L8 NO L7 JSB GSTAT YES.GET TTY STATS SPC 1 JSB EXEC NO. GET CURRENT TIME DEF *+3 DEF .+11 DEF TIME1 SPC 1 CLA LDB TIME1+3 GET CURRENT HOURS CPB TIME0+3 = INITIAL HOURS? RSS YES. RELATIVE CUR. MIN. =0 LDA =D60 NO. RELATIVE CUR. MIN. = 60 ADA TIME1+2 FORM REL. CUR. MINS. MPY =D60 MAKE SECONDS ADA TIME1+1 FORM CUR. REL. SECS. ADA TIME0+4 GET CUR. TIME - INITIAL TIME LDB STATS +n SSB,RSS JMP L75 ADA S14T ADD ALLOWABLE WAIT SSA TOO LONG? JMP L7 NO. GO CHECK TTY AGAIN STA LPTMP JSB CLTTY ISZ LININ YES. JMP LININ,I TIMEOUT RETURN SPC 1 L75 STA RTIME L8 LDA BIN GET CHARACTER ALF,ALF L81 AND B177 STA TEMP SAVE SZA,RSS =NULL? JMP GCHR YES. IGNORE IT CPA .+23B IS IT X-OFF? JMP GCHR YES. IGNORE IT CPA .+12B IS IT A LINEFEED? JMP GCHR YES. IGNORE IT. CPA .+30B IS IT CNTL/X? JMP DELL YES. DELETE LINE CPA .+32B IS IT CNTL/Z? JMP ETAPE YES. END-OF-TAPE CPA .+20B IS IT CNTL/P? LDA .72B YES. MAKE IT =":" CPA =B137 IS IT A BACKARROW? JMP DELC YES. DELETE A CHAR. CPA .+21B NO. IS IT CNTL/Q JMP CNTLQ YES. CPA .+27B NO. IS IT CNTL/W? JMP CNTLW YES L85 LDB PNTR NO. PLACE CHAR. IN BUFFER CPB BEND END OF BUFFER? JMP L87 YES. IGNORE CHAR. UNLESS CR L86 CLE,ERB NO. PLACE CHAR. IN BUF. SEZ,RSS ALF,ALF IOR B,I STA B,I ELB INB INCR. CHAR. POINTER STB PNTR LDA TEMP GET CHAR. CPA .+15B CARRIAGE RETURN? RSS YES JMP GCHR NO. GET ANOTHER CHAR. STA LPTMP LDA PINA RESET POINTER STA PNTR JMP LININ,I RETURN SPC 1 L87 CPA .+15B CR? JMP L86 YES JMP GCHR NO SPC 1 CNTLQ LDB PRIST GET LP INDICATOR SZB,RSS LP ASSIGNED? JMP GCHR NO STB PRISF YES. SET IGNORE LP FLAG JMP GCHR SPC 2 CNTLW CLA CLEAR IGNORE LP FLAG STA PRISF JMP GCHR PRISF OCT 0 SPC 2 SPC 2 DELL JSB EXEC PRINT BACKSLASH DEF *+5 DEF .+2 DEF INCWA DEF DCON DEF .-1 JMP LININ+2 SPC 2 ETAPE LDA MAIN,I AND TAPEF SZA,RSS TAPE MODE? JMP L85 NO. ACCEPT CHAR. LDA TAPEF YES CMA AND MAIN,I CLEAR TAPE MODE FLAG BIT STA MAIN,I LDA =B500 RESET TTY INPUT IOR INCWA STA INCW LDA MAIN,I AND TERR SZA TAPE ERRORS? JMP TAPER YES. LDA .+12B NO. JSB OUTCH PRINT LF JMP LININ+2 SPC 2 DELC LDB PNTR GET BUFFER POINTER CPB PINA AT START OF BUF.? JMP GCHR YES. CAN'T DELETE ANYMORE ADB .-1 NO. DECREMENT CHAR. POINTER STB PNTR LDA B377 CLEAR CHAR. IN BUFFER CLE,ERB SEZ ALF,ALF AND B,I STA B,I JMP GCHR GET ANOTHER CHAR. SPC 2 CR CLA SET FLAG FOR COMMAND INTERP. STA SCHP JSB SCOM EXAMINE LINE JMP SCH30 EMPTY LINE JMP SYNTX FIRST CHAR. A DIGIT JMP EHERR INVALID COMMAND JMP SCH11 COMMAND IS OK SPC 2 SCH30 LDA MAIN,I AND TAPEF SZA TAPE MODE? JMP SCHEQ YES SCH31 LDA .+12B NO. OUTPUT A LINEFEED. JSB OUTCH JMP SCHEQ TRY AGAIN SPC 2 EHERR JSB EXEC PRINT "???" DEF *+5 DEF .+2 DEF INCWA DEF QM DEF .-4 JMP SCHEQ TRY AGAIN SPC 2 MCOM6 DEF COM6-1 MCOM3 DEF COM3-1 SCH11 LDA #LDFG GET LOAD FLAG SZA,RSS LOAD? JMP SC115 NO CLA YES STA #LDFG SC115 CMB,INB ADB MCOM3 SSB JMP SCH12 CMB,INB ADB MCOM6 ADB MNEG JMP B,I EXECUTE COMMAND SPC 2 LPAD DEF * OCT 5114 LF-L ASC 3,P FREE OCT 6412 CR-LF SCHEQ LDA PRIST GET LP INDICATOR CLB CLEAR "LIST" STB LFG2 FLAG SZA,RSS ASSIGNED? JMP RESET NO  LDA LFLAG YES. GET LPR FLAG SZA LPR BEING TERMINATED? JMP SCHQ2 YES STA PRIST RELEASE LP STA PRISF LDA LPAD AND PRINT MESSAGE STA LT1 CLB LDA .-5 JSB OUTST JMP RESET SCHQ2 CLA RESET LPR FLAG STA LFLAG JMP RESET SPC 2 SCH12 CMB STB SCOM ADB SCOM ADB SCOM ADB MCOM6 INB STB SEGAD STB LCHCR RESET LIB. LAST CHAR. FLAG SPC 1 JSB SCHLB SEGAD NOP SPC 2 OUTCH NOP OUTPUT A CHAR. TO TTY LDB ABFLG SZB,RSS ARE ABORTS ALLOWED? JMP OUTC2 NO LIB 1 SSB JMP ATERM OUTC2 LDB PRISF GET IGNORE LP FLAG SZB IGNORE LP? JMP OUTTY YES. LDB MAIN IS LP INB ASSIGNED? CPB PRIST JMP LPOUT YES * TTY OUTPUT AFTER "LPR" OUTTY ALF,ALF STA TEMP JSB EXEC DEF *+5 DEF .+2 DEF CW2 DEF TEMP DEF .-1 JMP OUTCH,I LPOUT LDB LPTMP IS LP OUTPUT TEMPORARILY SSB SUSPENDED? JMP OUTTY YES. PRINT ON TTY CPA .+23B NO.IS CHAR. "X-OFF"? JMP LPOT0 YES CPA .+15B NO. IS IT CR? JMP LPCR YES CPA .+12B NO. IS IT LF? JMP LPLF YES CPA .+14B NO. IS IT TOF? JMP LPTOF YES STA B NO. SAVE IT IN B AND .140 IS IT A SZA CONTROL CPA .140 CHARACTER? JMP OUTCH,I LDA B NO. RESTORE CHAR. LPOT STA LPTMP SAVE FOR LP SUSPEND CHECK LDB LBPNT GET LP BUFFER POINTER CPB LBEND BUFFER FULL? JMP LPEND YES CLE,ERB NO. SHIFT CAR. BIT TO E SEZ,RSS RIGHT OR LEFT HALF? ALF,ALF LEFT IOR B,I RIGHT.MERGE PREVIOUS CHAR. STA B,I PUT IN BUFFFER )& ELB INB INCR. LP BUFFER POINTER STB LBPNT ISZ LPCNT INCR. LP CHAR. COUNT JMP OUTCH,I SPC 1 LPEND LDA SSPAC SET FOR SINGLE SPACE IOR LPBUF STA LPBUF LDA LPCNT SET CHAR. COUNT FOR OUTPUT CMA STA LPCNT JSB EXEC DEF *+5 DEF .+2 DEF .+6 DEF LPBUF DEF LPCNT CLA RESET CHAR. COUNT STA LPCNT LDB LBBEG RESET LP BUFFER POINTER STB LBPNT CLE,ERB OUTL0 STA B,I CLEAR LP BUFFER INB CPB LBEN2 DONE? RSS YES JMP OUTL0 NO LDA LPTMP YES. GET OVERFLOW FLAG SSA,RSS BUFFER OVERFLOW? JMP LPOT YES. PUT IN BUFFER CLA NO.RESET FLAG STA LPTMP JMP OUTCH,I SPC 1 LPCR LDA LFG2 GET LIST FLAG SZA LIST? JMP OUTCH,I YES. IGNORE CR CCA NO. SET NO STA LPTMP OVERFLOW LDA NSPAC GET "SUPPRESS SPACING" CHAR. JMP LPEND+1 SPC 1 LPLF CCA SET NO OVERFLOW STA LPTMP JMP LPEND SPC 1 LPTOF JSB TOFRM TP OF FORM JMP OUTCH,I SPC 1 LPOT0 CPA LPTMP WAS LAST CHAR. ALSO "X/OFF" JMP LPOT1 YES. STA LPTMP NO. JMP OUTCH,I LPOT1 CCA SET TEMP. LP OUTPUT STA LPTMP SUSPEND FLAG JMP OUTCH,I SPC 2 SSPAC OCT 20000 NSPAC OCT 25000 LPTMP OCT 0 LPBUF BSS 66 LBEND DEF * LBBEG DEF LPBUF LBEN2 DEF LBEND LBPNT NOP CW2 OCT 101 LPCNT NOP SPC 2 #SCR LDA PBUFF SCRATCH STA PBPTR RESET USER PROG. POINTER JMP SCH31 SPC 2 LIST CLA,INA STA ABFLG STA LFG2 SET LIST FLAG JMP LISTB LFG2 NOP SPC 1 CMPLB JMP CMPLE RUN SPC 2 PUNCB CLA,INA STA ABFLG JMP PUNCH SPC 1 XPNCB CLA,INA STA ABFLG JMP XPNCH e SPC 2 #TAP LDA =B105 STA INCW LDA MAIN,I IOR TAPEF STA MAIN,I JMP SCH31 SPC 2 #KEY JMP SCH31 SPC 2 TOFRM NOP JSB EXEC OUTPUT TOF DEF *+4 DEF .+3 DEF B1106 DEF .-1 JMP TOFRM,I SPC 2 B1106 OCT 1106 #LPR JSB TOFRM TOP OF FORM TO LPR LDA .+12B JSB OUTCH LDA MAIN INA STA PRIST STA LFLAG SET LPR FLAG CLB STB LPCNT CLEAR LP CHAR. COUNT STB PRISF CLEAR IGNORE LP FLAG LDA LBBEG RESET LP BUFFER POINTER STA LBPNT CLE,ERA LPR0 STB A,I CLEAR LP BUFFER INA CPA LBEN2 DONE? JMP SCHEQ YEC JMP LPR0 NO SPC 2 #LDFG OCT 0 #LOD JSB SCHAR GET 1ST DIGIT OF LU # JMP #LOD0 CR AND .+17B CONVERT TO BINARY STA #LDFG AND SAVE JSB SCHAR GET 2ND DIGIT JMP #LOD1 CR. ONLY ONE DIGIT AND .+17B CONVERT TO BINARY STA TLOG AND SAVE LDA #LDFG GET 1ST DIGIT MPY .+10 MULT. BY 10 ADA TLOG ADD 2ND DIGIT RSS #LOD0 LDA .+5 DEFAULT TO LU #5 STA #LDFG AND SAVE #LOD1 LDA #LDFG GET LU # IOR =B700 SET EOT STA TLOG STATUS FOR PT SPC 1 JSB EXEC DEF *+3 DEF .+3 DEF TLOG SPC 1 JMP SCHEQ SPC 2 LFLAG OCT 0 STATS NOP TLOG NOP PINA DEF BUF BUF BSS 50 BEND DEF *-1 BEND2 DEF BEND PNTR NOP CW1 OCT 501 BIN NOP SCNT NOP M60B OCT -60 M41B OCT -41 M133B OCT -133 M96 OCT -140 DCON OCT 56000 SCHP NOP QM OCT 5077 ASC 1,?? M32 DEC -32 B140 OCT 140 SCOM1 DEF COM1 SCOM5 DEF COM5-1 COM1 OCT 44121 SCRATCH OCT 46017 TAPE OCT 24230 KEY OCT 26761 LPRINTER OCT 26700 LOAD COM2 OCT 43215 RUN OCT 26422 LIST OCT 37215 PUNCH } OCT 56764 XPUNCH COM3 OCT 44025 SAVE OCT 14223 GET OCT 3404 BYE OCT 32014 NAME OCT 5100 CSAVE OCT 757 APPEND OCT 42215 RENUMBER OCT 26215 LENGTH OCT 6213 DELETE OCT 46414 TIME OCT 24413 KILL OCT 4023 CATALOG OCT 34744 OPEN COM5 DEF #SCR DEF #TAP DEF #KEY DEF #LPR DEF #LOD COM4 EQU COM5 DEF CMPLB DEF LIST DEF PUNCB DEF XPNCB COM6 ASC 3,SAVE ASC 3,GETB ASC 3,BYE ASC 3,NAME ASC 3,CSAVE ASC 3,APPEN ASC 3,RENUM ASC 3,LENGT ASC 3,DELET ASC 3,TIME ASC 3,KILL ASC 3,CATAL ASC 3,OPEN SPC 2 * SCOM SCANS A COMMAND INPUT BUFFER TO DETERMINE WHAT * THE COMMAND IS. THE CALLING SEQUENCE TO SCOM IS: * * JSB SCOM * * * * * * SCOM ASSUMES THAT BEFORE IT IS CALLED, SBHED AND * SCHL ARE INITIALIZED AS REQUIRED BY SCHAR,, AND * SCHP=0 FOR NORMAL USERS AND OCT40 FOR CONSOLE. SPC 1 SCOM NOP ENTRY POINT. LDB .-3 INITIALIZE CHAR. COUNT TO -3 STB SCNT JSB SCHAR GET A CHARACTER. JMP SCOM,I NOT THERE-BLANK LINE. ISZ SCOM BUMP SCOM TO POINT AT DIGIT RET. ADA M60B TEST FOR FIRST CHAR A DIGIT. SSA AUTOMATIC FAILURE IF ISZ SCOM < ASC0 ADA .-10 SSA,RSS IF <=ASC9, RETURN TO P+2 IF A JMP SCOME DIGIT, P+3 IF NOT LDA BKS JSB S14SC JMP SCOM,I SCOME ISZ SCOM ADA M41B TEST FOR LETTER. SCOMB SSA,RSS JMP SCOM,I NOT ALETTER. ADA .+32B SSA JMP SCOM,I NOT A LETTER. IOR SCHP ISZ SCNT TEST FOR 3 LETTERS IN. ALF,SLA,RAL NO--ROTA7TE FOR NEXT ONE. JMP SCOMA YES--GO TO SEARCH TABLE. STA SCHP JSB SCHAR GET NEXT CHARACTER JMP SCOM,I FAIL. ADA M133B JMP SCOMB * SEARCH COMMAND TABLE * SCOMA LDB SCOM1 B=>TABLE SCOMD CPA 1,I JMP SCOMC COMMAND FOUND CPB SCOM5 JMP SCOM,I ILLEGAL COMMAND INB JMP SCOMD SCOMC ISZ SCOM RETURN O.K. STB SCHP SAVE ADDRESS OF COMMAND. JSB SCHAR SCAN JMP *+4 FOR CR CPA .+55B OR DASH. RSS JMP *-4 LDB SCHP JMP SCOM,I * SCHAR FETCHES THE NEXT CHARACTER FROM A BUFFER. BUFFER * POINTERS FOR SCHAR ARE INITIALIZED AS FOLLOWS: * SBHED=> FIRST CHARACTER IF TTY35; =0 OTHERWISE * SCHL,I=> END OF TTY35 BUFFER * * SCHAR CALLING SEQUENCE: * * JSB SCHAR * RETURN HERE IF CR * RETURN HERE IF ANY OTHER CHARACTER SPC 1 SCHAR NOP SCHR1 LDA GTC JSB S14SC CPA .+40B BLANK? JMP SCHR1 YES. IGNORE IT CPA .+15B NO, CARRIAGE RETURN? JMP SCHR2 YES ADA M96 CHECK FOR CODES SSA,RSS GREATER THAN 140. ADA M32 CODE IS LOWER CASE, MAKE UPPER. ADA B140 RESTORE ASCII CODES. ISZ SCHAR NO--EXIT JMP SCHAR,I TO (P+2) SCHR2 EQU * LDA BKS JSB S14SC JMP SCHAR,I SPC 2 GETCR NOP GET A CHAR. FROM TTY #GTCR LDA GTC JSB S14SC CPA BLANK BLANK? JMP #GTCR YES. IGNORE IT CPA .+15B NO. CR? JMP GETCR,I YES. RETURN TO P+1 LDB A B=A ISZ GETCR JMP GETCR,I RET. TO P+2 SPC 5 ABCHK NOP DUMMY ABORT CHECK LDB MAIN JMP ABCHK,I SPC 2 ABFLG OCT 0 SPC 1 ATERM LDA B AND INF OTA 1 LDA ATA STA LT1 CLB STB ABFLG LDA .-4 JSB OUTST LDA MAIN,I AND TERR SZA JM}P TAPER JMP SCHEQ ATA DEF * OCT 6412 ASC 2,STOP OCT 6412 SPC 5 S14T NOP S14SC NOP DUMMY FRONT-END ROUTINE STA S14T AND =B170000 CPA STE JMP XSTE LDA S14T AND =B160037 CPA ALI JMP XALI CPA SBP JMP XSBP CPA RBP JMP XRBP CPA BKS JMP XBKS CPA GTC JMP XGTC CPA IWT JMP XIWT CPA UNR JMP XUNR CPA UIR JMP XUIR HLT SPC 2 XGTC LDB PNTR GET A CHAR. FROM INP. BUF. CLE,ERB LDA 1,I ELB,SLB RSS ALF,ALF AND B377 INB STB PNTR JMP S14SC,I SPC 2 XBKS CCB BACKSPACE IN BUFFER ADB PNTR STB PNTR JMP S14SC,I SPC 2 XALI JMP S14SC,I ALLOW INPUT SPC 2 XSBP LDA PNTR SAVE CURRENT BUF. POINTER STA TEMPS JMP S14SC,I SPC 2 XRBP LDA TEMPS RESTORE BUF. POINTER STA PNTR JMP S14SC,I TEMPS NOP SPC 2 XUNR JMP S14SC,I SPC 2 XIWT CLA INPUT WAIT JSB LININ JMP S14SC,I SPC 2 XUIR JMP S14SC,I USER IS RUNNING SPC 2 XSTE LDA S14T START TIMING ENTER AND B377 CMA,INA STA S14T SAVE ALLOWABLE WAIT JSB EXEC GET INITIAL TIME DEF *+3 DEF .+11 DEF TIME0 SPC 1 LDA TIME0+2 FORM REL. INITIAL TIME MPY =D60 ADA TIME0+1 CMA,INA STA TIME0+4 & SAVE CLA,INA JSB LININ ENTER LINE JMP S14SC,I OK ISZ S14SC TIMEOUT RETURN JMP S14SC,I SPC 2 TIME0 BSS 5 TIME1 BSS 5 ?LINK EQU 15B BLANK OCT 40 MANE DEF TTY MLINK DEF *+1 DEF TTY+?LINK MLINB EQU MLINK+1 INF OCT 77777 TTY OCT 0 NAME EQU TTY+5 RTIME EQU TTY+15 REP 18 OCT 0 NAMEA DEF NAME-1 END START wNLHHNASMB,R,L,X NAM DATA,7 SPC 2 ENT PBUFF,LWAUS,LW200,LW97,STDAT SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG SPC 2    EXT EXEC SPC 2 A EQU 0 B EQU 1 PBUFF NOP LW200 NOP LW97 NOP LWAUS NOP SPC 2 STDAT NOP JSB EXEC READ IN LONGEST SEGMENT DEF *+4 DEF .+18 DEF SNAME DEF LTEMP SPC 1 ADB .+3 LDA B,I STA PBUFF SET START OF PROG. AREA POINTER LDA 100B GET LWA OF MEMORY STA LWAUS ADA =D-97 STA LW97 ADA =D-103 STA LW200 JMP STDAT,I RETURN SPC 1 SNAME ASC 3,RENUM END Is ASMB,R,L,X HED SYNTAX PROCESSOR COMMON ROUTINE NAM SYNP0,7 SPC 2 ENT SYNTX,ACCST ENT EOST,DCOM0 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3) COM CDFLG,ARYAD,GFLAG COM SIGN SPC 2 EXT PBUFF,TAPER,SINIT,DCMPL,SERR7,GETCR EXT BCKSP,BLDIN,FNDPS,DELPR,LW200,TBSRH,STTYP EXT ASNS,USINS,REMS,LWAUS,RSTRS,MATS,FILES EXT CHANS,ENTRS EXT OUTCR,SCHEQ,S14SC,FSC,SYMCK,ASSOB EXT RSTOP,VAROP,COMMB,LTR,FN,STROP EXT LPCK,RPCK,SBPUD,CHRST,PRGIN,OF EXT AEND,FILRF,MCREL,RELOB,ATHEN,TO,ASTEP EXT NUMCK,GETST,RECRF,USTCK,SEMIB,PFSRH EXT #LDFG SPC 2 .105 OCT 105 ALI OCT 160014 CFLAG EQU .+2 TERR EQU .+1 STBAS DEF SYNTB-42B,I TAPEF EQU .+8 TOOP OCT 76000 MNEG OCT 100000 B73 OCT 73 FLGBT EQU MNEG * * ** CLEAN UP FOR NEW PROGRAM ** * * CLNUP LDA CFLAG SET CMA PROGRAM AND MAIN,I MODE TO STA MAIN,I 'UNCOMPILED' LDB PBUFF INSURE CORRECT STB SPROG START-OF--PROGRAM SETTING CLB INITIALIZE STB SYMTB ERROR FLAG JMP SYNT1 ** ** *** DELETE A PROGRAM STATEMENT *** ** ** * * THE STATEMENT REFERENCED BY THE SEQUENCE NUMBER IN * (B) IS DELETED. EXIT TO EXECUTIVE. * DELST LDA PBPTR LOAD SEARCH TERMINATION POINTER JSB FNDPS SEARCH FOR STATEMENT JMP ACCS5 NOT JMP ACCS5 FOUND CLA INB (B),I = STATEMENT LENGTH LDB 1,I LOAD LENGTH OF OLD STATEMENT JSB DELPR DELETE JMP ACCS5 STATEMENT * * ******************************* **** *** *** CHECK SYNTAX OF> STATEMENT *** **** *** * ******************************* * * PBPTR POINTS TO THE LAST WORD +1 OF THE PREVIOUS PROGRAM AND * THUS ALSO POINTS TO THE FIRST WORD OF AVAILABLE USER SPACE, * WHERE THE NEW STATEMENT WILL BE TRANSLATED. WHEN AN ERROR * OCCURS UNDER 'TAPE' MODE, THE USER'S TERR BIT IN THE FIRST WORD * OF HIS TTY TABLE IS SET AND HIS COPY OF ERRCT IS BUMPED. IF AN * OUT-OF-STORAGE ERROR OCCURS IN 'TAPE' MODE, SYMTB IS SET TO 1 * AND ALL SUBSEQUENT PROGRAM MATERIAL IS REJECTED. IF UPON ENTRY * THE PRIOR PROGRAM IS NULL, ALL FLAGS ARE SET TO NULL; IF THE * PRIOR PROGRAM IS NOT NULL, IT IS PLACED IN 'SOURCE' MODE. SYNTAX * WILL REJECT ADDITIONAL STATEMENTS IF FEWER THAN 200 WORDS OF * USER SPACE ARE AVAILABLE BUT WILL ACCEPT STATEMENT DELETIONS IF * IN 'KEY' MODE. * SYNTX LDB PBPTR NULL CPB PBUFF PROGRAM? JMP CLNUP YES LDA TERR NO, ERROR AND MAIN,I FLAG SZA,RSS SET? JMP SYNT1 NO CLA YES, ERRORS CPA ERRCT IMBEDDED IN CODE? JMP TAPER NO. ***** SYNT1 JSB SINIT YES, PREPARE PROGRAM JSB DCMPL FOR SYNTAX CLB SET LINE NUMBER STB PBPTR,I TO ZERO LDA PBPTR SET SYNTAX POINTER TO FIRST STA SBPTR AVAILABLE WORD OF USER SPACE STA SBUFA SAVE POINTER TO SYNTAX BUFFER ADA .105 AND TO STA SSTAK SYNTAX STACK STA SYNTQ INB DOES 'OUT OF STORAGE' CPB SYMTB ERROR EXIST? JMP SERR7 YES JSB GETCR NO, EMPTY RECORD? JMP ACCS5 YES JSB BCKSP NO * * ** DETERMINE SEQUENCE NUMBER ** * * * * A RECORD CONSISTING ONLY OF A SEQUENCE NUMBER WILL CAUSE THE * DELETION OF A PREVIOUSLY ACCEPTED STATEMENT REFERENCED BY THAT * SEQUENCE NUMBER. * JSB BLDIN RECORD STVbB SBPTR,I SEQUENCE ISZ SBPTR NUMBER CPA .+15B NULL STATEMENT? JMP DELST YES ISZ SBPTR NO, SKIP STATEMENT LENGTH WORD STA SBPTR,I SAVE FIRST CHARACTER LDA PBPTR ACCEPTABLE AMOUNT ADA LW200 OF USER SPACE SSA,RSS REMAINING? JSB SERRS,I NO * * ** DETERMINE STATEMENT TYPE ** * * LDA .+7 SET MAXIMUM STA MAXCR SYMBOL LENGTH LDA STTYP STATEMENT-TYPE NAMES LDB .-25 -(NUMBER OF STATEMENT TYPES) JSB TBSRH FIND STATEMENT TYPE LDA LETOP NO, ASSUME 'IMPLIED' LET LDB .-9 DISALLOW STB MSFLG MULTIPLE STORE LDB .+3 SET MAXCR TO MOST STB MAXCR COMMON VALUE CLB TURN OFF STB PFLAG 'PARAMETER' MODE ALF,ALF RAR AND B177 STA SFLAG TURN OFF STRING AND STORE MODES STA DFLAG TURN ON 'SUBSCRIPT' MODE ADA STBAS BRANCH TO JMP 0,I SYNTAX ROUTINE SKP ** ** *** STATEMENT SYNTAX ENTRY POINTS *** ** ** SYNTB DEF ASNS ASSIGN DEF USINS USING DEF IMAGS IMAGE DEF COMS COM DEF LETS LET DEF DIMS DIM DEF DEFS DEF DEF REMS REM DEF GOTOS GOTO DEF IFS IF DEF FORS FOR DEF NEXTS NEXT DEF GOTOS GOSUB DEF ENDS RETURN DEF ENDS END DEF ENDS STOP DEF DATAS DATA DEF INPTS INPUT DEF READS READ DEF PRINS PRINT DEF RSTRS RESTORE DEF MATS MAT DEF FILES FILES DEF CHANS CHAIN DEF ENTRS ENTER DEF LET0 'IMPLIED' LET ** ** *** ACCEPT A STATEMENT *** **P ** * * A CORRECT STATEMENT IS ADDED TO THE PROGRAM BUFFER. * IF ITS SEQUENCE NUMBER IS THE HIGHEST SO FAR, ONLY * THE END-OF-PROGRAM POINTER REQUIRES CHANGE, SINCE THE * STATEMENT IS TRANSLATED IMMEDIATELY BELOW THE PREVIOUS * PROGRAM. OTHERWISE THE NEW STATEMENT IS INSERTED INTO * THE PROGRAM IN PROPER SEQUENTIAL POSITION. IF ITS * SEQUENCE NUMBER COINCIDES WITH THAT OF A PREVIOUS * PROGRAM STATEMENT, IT REPLACES IT, WITH SPACE MADE OR * DELETED IN THE PROGRAM AS NECESSARY. EXIT TO EXEC. * IF STATEMENT LENGTH = 0 THE STATEMENT WAS REJECTED DUE TO * A STORAGE OVERFLOW IN TAPE MODE. IF IN KEYBOARD MODE AND * SYMTB = 4 AT LEAST ONE OVER/UNDERFLOW OCCURRED WHILE ANALYZING * THE STATEMENT SO EMIT THE ERROR; OTHERWISE ECHO A LINE FEED. * IF IN TAPE MODE MOVE THE START-OF-RECORD POINTER TO THE START * OF THE NEXT BUFFER AND IF IT IS COMPLETED SYNTAX IT NOW, ELSE * EXIT TO EXEC. * ACCST LDB SBUFA INB LDA SBUFA COMPUTE CMA,INA STATEMENT ADA SBPTR LENGTH SZA,RSS UNPROCESSED STATEMENT? JMP ACCS6 YES STA 1,I NO, STORE LENGTH IN STATEMENT STA TEMP+2 SAVE IT LDA PBPTR FIND STATEMENT'S LDB SBUFA,I SEQUENTIAL JSB FNDPS POSITION JMP ACCS4 APPEND STATEMENT TO PROGRAM JMP ACCS2 INSERT STATEMENT INTO PROGRAM INB REPLACE PRIOR STATEMENT LDA 1,I COMPARE LENGTH CMA,INA OF NEW STATEMENT ADA TEMP+2 WITH THAT OF OLD SZA,RSS EQUAL? JMP ACCS1 YES SSA,RSS NO, LONGER? JMP ACCS2+1 YES LDA TEMP+2 NO, SHORTER LDB 1,I LOAD LENGTH OF OLD STATEMENT JSB DELPR DELETE EXTRA LENGTH ACCS1 LDB SBUFA LOAD FIRST SOURCE ADDRESS LDA 1,I TRANSFER STA TEMP+1,I A WORD ISZ TEMP+1 ADVANCE DESTINATION INB AND SOURCE ADDRESSES  CPB SBPTR DONE? JMP ACCS5 YES JMP ACCS1+1 NO ACCS2 LDA TEMP+2 LOAD SPACE REQUIREMENT ADA SBUFA UPDATE POINTER STA SBUFA TO NEW STATEMENT ADA TEMP+2 RESET LDB SBPTR END OF STATEMENT STA SBPTR POINTER STA TEMP+2 INITIALIZE DESTINATION ADDRESS CMA USER ADA LWAUS SPACE SSA OVERFLOW? JSB SERRS,I YES LDA SBUFA NO, UPDATE POINTER STA PBPTR TO END-OF-PROGRAM ACCS3 CPB TEMP+1 EVERYTHING MOVED? JMP ACCS1 YES CCA NO, BACK UP ADA TEMP+2 SOURCE AND STA TEMP+2 DESTINATION ADB .-1 ADDRESSES LDA 1,I TRANSFER STA TEMP+2,I A WORD JMP ACCS3 ACCS4 LDA SBPTR RESET POINTER TO STA PBPTR LAST WORD+1 OF PROGRAM ACCS5 LDA TAPEF TAPE AND MAIN,I SZA MODE? JMP ACCS6 YES LDB SYMTB NO STA SYMTB RESET UNDER/OVERFLOW FLAG CPB .+4 UNDER/OVERFLOW ERROR(S)? JSB RERRS+32,I YES LDA #LDFG GET LOAD FLAG SZA LOAD? JMP SCHEQ YES LDA .+12B NO, JSB OUTCR OUTPUT A JMP SCHEQ LINE FEED ACCS6 LDB MAIN ALLOW INB LDA 1,I MORE IOR ALI JSB S14SC INPUT JMP SCHEQ SPC 2 LETOP OCT 73000 .58 DEC 58 B177 OCT 177 B777 OCT 777 M73 DEC -73 SBP OCT 120000 OPMSK OCT 77000 RBP OCT 140000 OFOP OCT 174003 FBP EQU SBP DCOM0 DEF COMS0 * *** ** ** SYNTAX ** *** ** * LET0 LDA LETOP FAKE STA SBPTR,I A JSB BCKSP 'LET' LETS LDB SBPTR ENABLE A STB SFLAG STRING VARIABLE ISZ MSFLG TURN ON 'MULTIPLE STORE' MODE JSB FSC ANALYZE FORMULA ISZ SFsRLAG STRING VARIABLE FOUND? JMP LET1 NO JSB SYMCK YES, (B) IS LEFT AT -1 DEF ASSOB DEMAND ASSIGNMENT OPERATOR JSB SERRS+3,I NOT FOUND JSB RSTOP RECORD A STRING OPERAND JMP EOST DEMAND END OF STATEMENT LET1 ISZ SFLAG DID A STORE OCCUR? JSB SERRS+3,I NO ** ** *** CHECK FOR END OF STATEMENT *** ** ** EOST CPA .+15B END OF STATEMENT? JMP ACCST YES JSB SERRS+4,I NO * *** ** ** SYNTAX ** *** ** * DIMS CLA FLAG AS DIM STATEMENT * *** ** ** SYNTAX ** *** ** * COMS STA CDFLG FLAG AS COM STATEMENT STB DFLAG TURN ON 'DIM' MODE ( (B)=0 ) LDA SBPTR ENABLE STRING STA SFLAG VARIABLE JSB VAROP SEEK VARIABLE OPERAND JSB SERRS+5,I IMPROPER SUBSCRIPT COMS0 JMP COMS1 ARRAY OR STRING FOUND CLB SIMPLE VARIABLE CPB CDFLG 'DIM'? JSB SERRS+5,I YES--ERROR COMS1 CPA .+15B NO, CARRIAGE RETURN FOLLOWS? JMP ACCST YES CCB NO JSB SYMCK COMMA? DEF COMMB JSB SERRS+6,I NO JMP COMS+2 YES * *** ** ** SYNTAX ** *** ** * DEFS JSB LTR FIRST TWO JSB SERRS+7,I ALF,ALF CHARACTERS IOR TEMP+1 CPA FN 'FN' ? RSS YES JSB SERRS+7,I NO JSB LTR FOLLOWED BY A LETTER? JSB SERRS+7,I NO LDA TEMP+1 YES, LDB .58 RECORD JSB STROP FUNCTION LDA TEMP+2 RETRIEVE FOLLOWING CHARACTER JSB LPCK DEMAND LEFT PARENTHESIS IOR FLGBT SET FLAG FOR STA SBPTR,I FORMAL PARAMETER JSB VAROP DEMAND A SIMPLE VARIABLE H, NOP NONE JSB SERRS+8,I FOUND JSB RPCK DEMAND A RIGHT PARENTHESIS CCB ASSIGNMENT JSB SYMCK OPERATOR DEF ASSOB NEXT? JSB SERRS+3,I NO LDA .-2 YES, ADA SBPTR ISOLATE LDA 0,I AND SAVE AND B777 FORMAL STA PFLAG PARAMETER JSB FSC FETCH DEFINING FORMULA JSB SBPUD RECORD END-OF-FORMULA OPERATOR JMP EOST DEMAND END OF STATEMENT * *** ** ** SYNTAX ** *** ** * IMAGS LDB SBPTR SAVE CURRENT STB ARYAD BUFFER POINTER CLB LDA .+15B SET DELIMETER JSB CHRST RECORD STRING CONSTANT NOP LDA TEMP+1 LENGTH ADA M73 SSA,RSS >72? JSB SERRS+31,I YES LDA ARYAD,I NO, ADA TEMP+1 RECORD STA ARYAD,I LENGTH JMP ACCST * *** ** ** & SYNTAX ** *** ** * GOTOS LDA SBP SAVE LDB MAIN INB BUFFER IOR 1,I JSB S14SC POINTER CCA SET INTCK MODE TO STA GFLAG 'EXIT ON ERROR' JSB PRGIN SEEK SEQUENCE NUMBER JMP GOTO3 FOUND CCB NOT FOUND GOTO1 ADB SBPTR BACK UP STB SBPTR SYNTAX POINTER LDA SBPTR,I ERASE AND OPMSK 'INTEGER FOLLOWS' STA SBPTR,I FLAG LDA RBP RESTORE LDB MAIN INB BUFFER IOR 1,I JSB S14SC POINTER JSB FSC SEEK FORMULA CPA .+15B END-OF-RECORD? JSB SERRS+9,I YES ALF,ALF NO, DO STA TEMP+1 NEXT JSB GETCR TWO JSB SERRS+9,I CHARACTERS IOR TEMP+1 FORM  CPA OF 'OF' ? RSS YES JSB SERRS+9,I NO LDA OFOP RECORD STA SBPTR,I 'OF' AND JSB SBPUD ADVANCE POINTER GOTO2 JSB BLDIN DEMAND A SEQUENCE NUMBER STB SBPTR,I RECORD IT JSB SBPUD CPA .+44 COMMA NEXT? JMP GOTO2 YES JMP EOST NO, DEMAND END OF STATEMENT GOTO3 CPA .+15B END OF STATEMENT? JMP GOTO4 YES STA GFLAG NO, RE-ENABLE BAD INTEGER ERROR LDB .-2 JMP GOTO1 GOTO4 LDA FBP FREE LDB MAIN INB SAVED IOR 1,I JSB S14SC BUFFER SPACE JMP ACCST ACCEPT STATEMENT * *** ** ** SYNTAX ** *** ** * IFS ISZ SBPTR FETCH NEXT JSB GETCR CHARACTER JSB SERRS+31,I NONE FOUND STA SBPTR,I FOUND, SAVE IT LDA AEND LOOK CCB FOR JSB TBSRH 'END' JMP IF0 NOT FOUND JSB FILRF FOUND, GET FILE REFERENCE JSB SERRS+32,I NONE FOUND JMP IF1+1 FOUND IF0 JSB BCKSP RESTORE CCB TO ADB SBPTR ENTRY STB SBPTR STATUS STB SFLAG ENABLE STRING VARIABLE JSB FSC SEEK DECISION FORMULA ISZ SFLAG STRING VARIABLE FOUND? JMP IF1+1 NO STA TEMP+1 YES, SAVE NEXT CHARACTER LDB .-3 MAXCR = 3 FROM FSC STA SBPTR,I MULTICHARACTER LDA MCREL RELATIONAL JSB TBSRH OPERATOR? RSS NO JMP IF1 YES LDA TEMP+1 RETRIEVE CHARACTER LDB .-4 SINGLE CHARACTER JSB SYMCK RELATIONAL DEF RELOB OPERATOR? JSB SERRS+16,I NO IF1 JSB RSTOP YES, RECORD A STRING OPERAND STA SBPTR,I SAVE NEXT CHARACTER ISZ MAXCR BUMP LIMIT TO FOUR CHARACTERS LDA ATHEN LOOK HBCCB FOR JSB TBSRH 'THEN' JSB SERRS+10,I NOT FOUND JSB PRGIN DEMAND A SEQUENCE NUMBER JMP EOST DEMAND END OF STATEMENT * *** ** ** SYNTAX ** *** ** * FORS JSB VAROP SEEK A SIMPLE VARIABLE NOP NONE JSB SERRS+8,I FOUND CCB DEMAND AN JSB SYMCK ASSIGNMENT DEF ASSOB OPERATOR? JSB SERRS+3,I NOT FOUND JSB FSC RECORD INITIALIZATION FORMULA ALF,ALF DO STA TEMP+1 NEXT JSB GETCR TWO JSB SERRS+11,I CHARACTERS IOR TEMP+1 FORM CPA TO 'TO' ? RSS YES JSB SERRS+11,I NO LDA TOOP RECORD STA SBPTR,I 'TO' JSB FSC RECORD LIMIT FORMULA CPA .+15B END OF STATEMENT? JMP ACCST YES STA SBPTR,I NO, IS NEXT ISZ MAXCR LDA ASTEP SYMBOL CCB JSB TBSRH 'STEP' ? JSB SERRS+12,I NO JSB FSC YES, RECORD STEP SIZE JMP EOST DEMAND END OF STATEMENT * *** ** ** SYNTAX ** *** ** * NEXTS JSB VAROP SEEK SIMPLE VARIABLE NOP NOT JSB SERRS+8,I FOUND JMP EOST DEMAND END OF STATEMENT * *** ** ** , , ** ** AND SYNTAX ** *** ** * ENDS ISZ SBPTR RECORD NULL OPERAND JSB GETCR END OF STATEMENT? JMP ACCST YES JSB SERRS+4,I NO * *** ** ** SYNTAX ** *** ** * DATAS JSB SBPUD CLA INITIALIZE STA SIGN SIGN JSB GETCR REQUEST A CHARACTER JSB SERRS+13,I END-=OF-INPUT CONDITION CLB,INB CPA .+43 '+' ? JMP DATA4 YES CCB NO CPA .+45 '-' ? JMP DATA4 YES DATA1 JSB NUMCK NO, NUMBER? JMP DATA3 NO JSB SERRS+14,I BAD EXPONENT LDB .-3 NUMBER, ADB SBPTR MARK LDA 1,I PREVIOUS IOR FLGBT OPERATOR AS STA 1,I 'NUMBER FOLLOWS' LDA TEMP+1 RETRIEVE FOLLOWING CHARACTER DATA2 CCB COMMA JSB SYMCK DEF COMMB NEXT? JMP EOST NO, DEMAND END OF STATEMENT JMP DATAS YES DATA3 CPB SIGN SIGN FOUND? ( (B) = 0 ) RSS NO JSB SERRS+15,I YES JSB GETST DEMAND A STRING CONSTANT JMP DATA2 DATA4 STB SIGN RECORD SIGN JSB GETCR JSB SERRS+15,I END-OF-INPUT CONDITION JMP DATA1 * *** ** ** SYNTAX ** *** ** * READS JSB RECRF READ FROM FILE? JMP READ1 NO CPA .+15B YES, PSUEDO-RESTORE? JMP ACCST YES CPA B73 NO, ';' ? JMP INPTS YES JSB SERRS+6,I NO READ1 JSB BCKSP SKP * *** ** ** SYNTAX ** *** ** * INPTS LDB SBPTR ENABLE STRING STB SFLAG VARIABLE JSB VAROP SEEK VARIABLE OPERAND JSB SERRS+17,I NONE FOUND NOP CCB JSB SYMCK COMMA? DEF COMMB JMP EOST NO, DEMAND END OF STATEMENT JMP INPTS YES * *** ** ** SYNTAX ** *** ** * PRINS JSB SBPUD ADVANCE SYNTAX BUFFER POINTER JSB GETCR FETCH NEXT CHARACTER JMP ACCST NONE FOUND JSB USTCK CHECK FOR USING STATEMENT JMP PRN01 NONE FOUND CPA .+15B END OF STATEMENT? JMP ACCST YES CCB NO, JSB SYMCK SEMI-COLON DEF SEMIB FOLLOWS JSB SERRS+34,I NO PRN10 JSB SBPUD ADVANCE SYNTAX BUFFER POINTER JSB GETCR FETCH NEXT CHARACTER JSB SERRS+6,I NONE FOUND STA SBPTR,I SAVE CHARACTER JSB PFSRH SEARCH FOR PRINT FUNCTION JMP PRN11 FOUND STB SFLAG ENABLE STRING VARIABLE JSB FSC LOOK FOR FORMULA PRN11 CPA .+15B CARRIAGE RETURN FOLLOWS? JMP ACCST YES CCB NO, JSB SYMCK COMMA? DEF COMMB JSB SERRS+6,I NO, ERROR JMP PRN10 YES PRN01 JSB RECRF WRITE ONTO FILE? JMP PRIN0-1 NO CCB YES, SET STB FILRF 'FILE' FLAG CPA .+15B NULL WRITE? JMP ACCST YES CPA B73 NO, ';' ? JMP PRIN0 YES JSB SERRS+6,I NO JSB BCKSP PRIN0 JSB SBPUD ADVANCE SYNTAX BUFFER POINTER JSB GETCR MORE STATEMENT? JMP PRIN7 NO CCB YES, ENABLE STB PFLAG FORMULA AND TAB CPA .+42B " ? RSS YES JMP PRIN3 NO PRIN1 JSB GETST RECORD A STRING CONSTANT CPA .+15B END OF STATEMENT? JMP ACCST YES CCB NO STB PFLAG PRIN2 CPA .+42B " ? JMP PRIN1 YES LDB .-2 NO JSB SYMCK COMMA OR DEF COMMB SEMICOLON? CLB,RSS NO JMP PRIN0 YES STB SBPTR,I ZERO NEXT WORD JSB SBPUD PRIN3 ISZ PFLAG FORMULA OR TAB PERMITTED? JSB SERRS+6,I NO STA SBPTR,I YES CCB 'FILE' ISZ FILRF MODE? JMP PRIN4 NO STB FILRF YES, SET FLAG AGAIN LDA AEND JSB TBSRH 'END' ? JMP PRIN5 NO JSB SBPUD YES JSB GETCR FETCH NEXT JMP ACCST CHARACTER JMP PRIN2 PRIN4 JSB PFSRH SEARCH FOR PRINT FUNCTION {HFB JMP PRIN6 FOUND JMP PRIN8 NOT FOUND PRIN5 JSB BCKSP BACKUP CCB TO POINT ADB SBPTR FOLLOWING STB SBPTR LAST OPERATOR PRIN8 STB SFLAG ENABLE STRING VARIABLE JSB FSC RECORD FORMULA PRIN6 CPA .+15B END OF STATEMENT? JMP ACCST YES JMP PRIN2 NO PRIN7 ISZ FILRF 'FILE' MODE? JMP ACCST NO JSB SERRS+2,I YES * END HASMB,R,L,X HED COMPILE NAM COMP0,7 SPC 2 ENT CMPLE,CM10B,CMPL7 ENT CMPL0 ENT ASBFA ENT CMP00 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM ZZ(8),ASINP COM YY(204),ERSEC(77),DRFLG SPC 2 EXT PBUFF,EXIT3,SINIT,GETCR,BCKSP,BLDIN,FNDPS EXT S14SC,RSTPT,MLINB,PRNST,DCMPL,SSYMT EXT ASYMT,SCHLB,CUSP,LWAUS,XEC,ALCOM,EXEC EXT PRNS1,PRNS2,PRNSB,PRNSC EXT CSAV2 SPC 2 A EQU 0 UNABT EQU .+16 CFLAG EQU .+2 ?LINK EQU 15B UIR OCT 160001 COMOP OCT 45000 FOROP OCT 54000 NXTOP OCT 55000 DEFOP OCT 50000 DIMOP OCT 47000 ENDOP OCT 60000 .5000 DEC 5000 A.10 DEF .+10 M256 DEC -256 B377 OCT 377 .72 DEC 72 FILEN ASC 3,FILES SPC 2 ERSCA DEF ERSEC ERS32 DEF ERSEC+32 ASBFA DEF ERSEC+60 * COMPILED': VARIABLE OPERANDS ARE POINTERS TO A SYMBOL TABLE AND * STATEMENT REFERENCES ARE REPLACED BY ABSOLUTE POINTERS. * SYMTB = SPTR IMPLIES THE PROGRAM IS 'COMPILED': THE SYMBOL TABLE * ENTRIES CONTAIN POINTERS TO A VALUE TABLE OR IN THE CASE OF * FUNCTIONS TO THE DEFINING FORMULA, AND A TABLE IS BUILT * CONTAINING INFORMATION FOR EACH FILE IN THE PROGRAM. BEFORE * BUILDING THE SYMBOL TABLE, THE INTERPRETER'S PROGRAM COUNTER * IS SET TO THE STATEMENT REFERENCED BY THE 'RUN' COMMAND (THE * LOWEST NUMBERED STATEMENT IS THE DEFAULT CHOICE). * ^WCMPLE LDB PBUFF NULL CPB PBPTR PROGRAM? JMP EXIT3 CLB,INB INITIALIZE STB PRGCT PROGRAM COUNTER JSB SINIT SIMPLE JSB GETCR 'RUN' ? JMP CMP15 YES JSB BCKSP NO JSB BLDIN DEMAND AN INTEGER STB PRGCT SAVE STARTING STATEMENT NUMBER CPA .+15B END OF RECORD? RSS YES JSB RERRS+12,I NO CMP15 LDA MAIN,I IOR UNABT ALLOW STA MAIN,I ABORTS LDB PBUFF CPB SPROG NO, COM STORAGE ALLOCATED? JSB ALCOM NO--DO IT LDA SYMTB GET SYMBOL TABLE POINTER SZA,RSS IS PROGRAM COMPILED ? LDA PBPTR NO, USE PBPTR LDB PRGCT GET STARTING STATEMENT NUMBER JSB FNDPS SEEK REFERENCED STATEMENT JMP EXIT3 NOP SET STB PRGCT PROGRAM COUNTER CMP14 LDA MAIN TELL 2114 INA LDA 0,I THAT USER IOR UIR JSB S14SC CMPL0 LDA SYMTB PROGRAM SZA,RSS UNCOMPILED? JMP CMP00 YES CPA SPTR NO, COMPILED? RSS YES JMP CMP16 NO, MUST BE SEMI-COMPILED LDB ASINP SZB,RSS ASSIGN STATEMENT SEEN? JMP VALUE NO JSB RSTPT YES, FAKE SEMI-COMPILED PROGRAM LDA SYMTB STA SPTR JMP CMP18 CMP16 EQU * STA SPTR JMP CMP17 CMP00 STA FILTB LDA CFLAG SET LDB MLINB ADB .-?LINK PROGRAM MODE IOR 1,I STA 1,I TO 'COMPILED' SKP ** ** *** BUILD THE SYMBOL TABLE *** ** ** * * THE PROGRAM IS EXAMINED STATEMENT BY STATEMENT. ALL * VARIABLE OPERANDS ARE REPLACED BY POINTERS (RELATIVE * TO THE START OF THE SYMBOL TABLE) TO TWO WORD ENTRIES. * SYMBOL TABLE ENTRIES KEEP THE SYMBOL IN THE FIRST WORD * AND INFORMATION IN THE SECOND. FOR FUNCTIONS THE  * SECOND WORD CONTAINS A POINTER TO THE DEFINING FORMULA * (0 BEFORE FINDING THE ). FOR SIMPLE * VARIABLES THE SECOND WORD IS USED TO FORM A LINKED LIST * OF UNMATCHED FOR-VARIABLES (OTHERWISE IT IS 0) WITH * FLINK POINTING TO THE INNERMOST NESTED FOR-VARIABLE. * IF THE SIMPLE VARIABLE APPEARS IN A * THE SECOND WORD IS SET TO -1. FOR ARRAY AND STRING * VARIABLES THE SECOND WORD IS 0 UNLESS THE VARIABLE * APPEARS IN A , IN WHICH CASE IT * POINTS TO THE DIMENSIONS IN THE CODE, OR IT APPEARS * IN A , IN WHICH CASE IT IS THE * NEGATION OF A POINTER TO THE DIMENSIONS. * PROGRAM INTEGERS ARE REPLACED BY A POINTER TO THE * STATEMENT THEY REFERENCE. ON EXIT TO VALUE OR DCMPL, * SPTR POINTS TO THE FIRST WORD NOT PROCESSED. * LDB PBPTR CREATE POINTER STB SYMTB TO SYMBOL TABLE * * COUNT NUMBER OF STATEMENTS IN PROGRAM * CLA,INA INITIALIZE STATEMENT COUNTER LDB SPROG CMP01 INB MOVE TO ADB 1,I NEXT ADB .-1 STATEMENT CPB PBPTR DONE? JMP CMP02 YES INA NO--BUMP COUNTER JMP CMP01 CMP02 CLB DIVIDE # OF STATEMENTS DIV .+32 INTO 32 PARTS CMB SET B=-1-# OF OVERSIZE GROUPS, SZA,RSS BUT IF <32 STATEMENTS USE -# INB INA SET A TO SIZE OF LARGER GROUP STA STCT1 SET COUNTER STB STCT2 LDB ERSCA SET POINTER TO TABLE STB NUMPT SKP * * BUILD A TABLE OF 64 WORDS. THE FIRST 32 CONTAIN THE SEQUENCE * NUMBERS OF STATEMNTS WHICH DIVIDE THE PROGRAM INTO 32 ALMOST * EQUAL PARTS. THE SECOND 32 WORDS ARE THE ABSOLUTE ADDRESSES * OF THESE STATEMENTS * LDA SPROG CMP03 ADB .+32 STA 1,I SET ABSOLUTE ADDRESS INTO TABLE LDB 0,I SET SEQUENCE # INTO TABLE STB NUMPT,I ISZ NUMPT BUMP POINTERS ISZ STCT2 TESTN FOR ANY MORE CLB,RSS OVERSIZE GROUPS CCB COMPUTE SIZE OF NEXT GROUP ADB STCT1 STB STCT1 CMB STB STCT3 LDB NUMPT TEST FOR DONE CPB ERS32 JMP CMP04 ISZ STCT3 COMPUTE FIRST STATEMENT INA,RSS IN NEXT GROUP JMP CMP03 ADA 0,I ADA .-1 JMP *-5 * CMP04 CLA,INA STA FLINK SET FOR-QUEUE TO EMPTY JSB PRNST INITIALIZE DEF CMP11 COMPILATION SEZ,RSS WAS FLAG BIT SET? JMP CMPL3 NO * * ** PROCESS NON-VARIABLE OPERAND ** * * ADA .-4 PROGRAM SSA,RSS INTEGER? JMP PRNS2 NO, MUST BE A PARAMETER CMPL1 ISZ SPTR YES, MOVE LDB SPTR TO NEXT WORD CPB NSPTR STATEMENT FINISHED? JMP CMP11 YES LDB ERSCA BEGIN SEARCH FOR REFERNECED STMT CMP05 LDA 1,I FIRST STATEMENT =>SOUGHT STATE.? CMA ADA SPTR,I SSA,INA JMP CMP06 FOUND ONE INB CPB ERS32 TEST FOR DONE RSS JMP CMP05 ADB .+31 LDA SYMTB STATEMENT IS IN LAST GROUP JMP CMP07 CMP06 ADB .+32 B=> FIRST STATEMNT IN GROUP SZA,RSS TEST FOR FOUND JMP CMP09 CPB ERS32 TEST FOR NOT THERE JMP CMPL2 ERROR LDA 1,I SET A=> FIRST WORD BEYOND GROUP ADB .-1 CMP07 LDB 1,I STA STCT1 SAVE END TEST LDA SPTR,I GET SEQUENCE NUMBER CMP08 INB BUMP STATEMENT POINTER ADB 1,I ADB .-1 CPB STCT1 TEST FOR DONE JMP CMPL2 LABEL NOT FOUND--ERROR CPA 1,I TEST FOR FOUND JMP CMP09+1 JMP CMP08 CMP09 LDB 1,I STB SPTR,I FOUND--REPLACE INTEFER ISZ INFST IN 'USING' STATEMENT? JMP CMPL1 NO JMP PRNS2 YES CMPL2 JSB DCMPL DECOMPILE  JSB RERRS,I NON-EXISTENT STATEMENT NUMBER * * ** PROCESS VARIABLE OPERAND ** * * CMPL3 STA STMP1 SAVE SYMBOL AND .+17B CPA .+17B FUNCTION? JMP CMPL6 YES SZA,RSS NO, STRING VARIABLE? JMP CMPL9-3 YES ADA .-4 NO, SSA ARRAY? JMP CMPL9 YES JSB SSYMT NO, COMPILE ISZ SPTR SIMPLE VARIABLE CPB COMOP 'COM'? JMP CMP41 YES CPB FOROP NO, FOR-VARIABLE OF 'FOR'? JMP CMPL4 YES CPB NXTOP NO, FOR-VARIABLE OF 'NEXT' ? RSS YES JMP PRNSB NO LDB FLINK SSB MAKE CMB,INB POSITIVE CPB STMP2 MATCH LATEST ? JMP *+3 YES JSB DCMPL NO, DECOMPILE JSB RERRS+1,I NEXT NOT PRECEDED BY PROPER FOR LDB FLINK LDA STMP2,I REMOVE STA FLINK VARIABLE SSB WAS VARIABLE IN COMMON? CCB,RSS NO CLB NO STB STMP2,I RESET AS SIMPLE VARIABLE JMP PRNSB CMPL4 LDA STMP2,I LOAD SECOND WORD OF TABLE ENTRY SZA ALREADY IN FOR-QUEUE? INA,SZA,RSS COMMON VARIABLE JMP CMPL5 JSB DCMPL DECOMPILE JSB RERRS+2,I NESTED "FOR'S" WITH SAME VARIABLE CMPL5 LDB STMP2 LDA STMP2,I WAS VARIABLE SSA IN COMMON? CMB,INB YES LDA FLINK ADD STA STMP2,I TO STB FLINK FOR-QUEUE ISZ STYPE DESTROY STATEMENT TYPE JMP PRNSB CMP41 LDA STMP2 LDB A,I GET POINTER SZB ALREADY IN COMMON? JMP CMP10+1 CCB FLAG VARIABLE AS STB A,I CONTAINED IN COMMON JMP PRNSB CMPL6 JSB SSYMT COMPILE FUNCTION NAME CPB DEFOP FUNCTION DEFINITION? RSS YES JMP PRNS=2 NO LDB STMP2,I PREVIOUSLY SZB DEFINED? JMP CMPL8 YES LDA STMP2 NO ISZ STYPE DESTROY STATEMENT TYPE CMPL7 LDB SPTR ADVANCE ADB .+3 PROGRAM STB SPTR POINTER STB 0,I SAVE JMP PRNSB CMPL8 ISZ SPTR JSB DCMPL DECOMPILE JSB RERRS+3,I FUNCTION DEFINED TWICE JSB SSYMT COMPILE STRING VARIABLE ISZ STMP1 SET TO 'SINGLY SUBSCRIPTED' RSS PROCESS POSSIBLE DECLARATION CMPL9 JSB ASYMT COMPILE ARRAY VARIABLE CCE SET 'COM' FLAG CPB COMOP 'COM'? JMP CMP91 YES CPB DIMOP NO, 'DIM'? CLE,RSS YES--SET 'DIM' FLAG JMP PRNS2 CMP91 LDB STMP2,I WAS VARIABLE SZB PREVIOUSLY DIMENSIONED? JMP CMP10 YES LDB SPTR NO, SAVE POINTER ADB .+2 TO DIMENSIONS SEZ DIMENSIONED IN 'COM' ? CMB,INB YES--FLAG IT STB STMP2,I NO LDB SPTR RESTORE ADB .+2 POINTER LDA STMP1 RETRIEVE SYMBOL SLA,RSS ADVANCE ADB .+2 POINTER ADB .+2 PAST STB SPTR ONE OR TWO JMP PRNSC CMP10 ISZ SPTR JSB DCMPL DECOMPILE JSB RERRS+4,I VARIABLE DEFINED TWICE * * ** PROCESS END OF STATEMENT ** * * CMP11 CPB SYMTB END OF PROGRAM? RSS YES JMP PRNS1 NO STB SPTR INSURE CORRECT SETTING FOR SPTR LDA STYPE LAST STATEMENT CPA ENDOP AN 'END' ? JMP CMP12 YES JSB DCMPL NO, DECOMPILE JSB RERRS+5,I MISSING 'END' CMP12 CLA,INA CPA FLINK ALL FORS MATCHED? JMP *+3 YES JSB DCMPL DECOMPILE JSB RERRS+6,I 'FOR' WITHOUT 'NEXT' CMP17 EQU * CLA STA VLFLG MUST RUN VALUE. LDB PBPTR SET POINTER TO STB FILTB END OF SYMBOL TABLE. LDA DRFLG CHECK FOR CSAVE SSA,RSS JMP CMP18 AND .+1 STA DRFLG JMP CSAV2 * * FILCT = -5 AT THIS POINT UNLESS THE PROGRAM CONTAINS A * . THE CALL TO SCHLB,I LEAVES VALTB = * FILTB+7*(NUMBER OF FILES REQUESTED). IF NO * APPEARS, VALTB = FILTB. * CMP18 EQU * LDA FILCT ANY ? JMP CMP13 NO JSB EXEC DEF *+4 DEF .+8 DEF FILEN DEF *-3 JSB RERRS+13,I BAD FORMAT OR ILLEGAL NAME JSB RERRS+14,I MISSING OR PROTECTED FILE JSB RERRS+10,I OUT OF STORAGE JMP VALUE+2 SUCCESSFUL REQUEST CMP13 LDB FILTB SET VALUE TABLE STB VALTB POINTER. JMP VALUE+2 CM10B EQU CMP10-5 ** ** *** BUILD THE VALUE TABLE *** ** ** * * IF NO VALUE TABLE EXISTS, ONE IS BUILT FROM THE SYMBOL * TABLE AND INITIALIZED; IF IT ALREADY EXISTS, IT IS * INITIALIZED. IN BUILDING THE VALUE TABLE, EACH ENTRY * IN THE SYMBOL TABLE IS CHECKED: FOR FUNCTIONS THE * EXISTENCE OF A DEFINING FORMULA IS CHECKED; FOR SIMPLE * VARIABLES TWO WORDS ARE ALLOCATED AND SET TO 'UNDEFINED' * AND A POINTER TO THEM IS PLACED IN THE SECOND WORD OF * THE SYMBOL TABLE ENTRY; FOR ARRAYS FOUR WORDS ARE * ALLOCATED FOR THE DECLARED AND DYNAMIC DIMENSIONS, * THE DIMENSIONS ARE INITIALIZED EITHER FROM A * IN THE PROGRAM OR THE DEFAULT * DIMENSIONS, ARRAY SPACE IS ALLOCATED AT TWO WORDS PER * ARRAY ELEMENT CONTIGUOUS WITH THE DIMENSIONS, THE * ELEMENTS ARE INITIALIZED TO 'UNDEFINED,' AND A * POINTER TO THE FIRST ELEMENT IS PLACED IN THE SECOND * WORD OF THE SYMBOL TABLE ENTRY; FOR STRINGS FOLLOW THE * PATTERN FOR ARRAYS WITH ONE WORD HOLDING THE PHYSICAL * DIMENSION IN BITS 15-8 AND THE DYNAMIC DIMENSION IN * BITS 7-0 (DIMENSION HERE MEANS LENGTH AS NUMBER OF * CHARACTERS), STRING SPACE IS ALLOCATED ONE WORD PER * TWO CHARACTERS, AND THE DYNAMIC LENGTH IS INITIALIZED * TO ZERO. FOR "DON'T KNOW" ARRAY ENTRIES, THE SECOND * WORD OF THE SYMBOL TABLE ENTRY IS COPIED FROM THE * ASSOCIATED SINGLY OR DOUBLY SUBSCRIPTED ENTRY (OR * EXIT TO ERROR IF NONE EXISTS). * FOR VARIABLES WHICH HAVE BEEN DECLARED IN A , STORAGE IS ALLOCATED IN THE COMMON AREA * WHICH RESIDES AHEAD OF THE PROGRAM. FOR ARRAYS AND * STRINGS, THIS AREA IS LEFT UNDISTURBED IF THE DIMENSIONS * DECLARED IN THE MATCH THOSE FOUND IN * THE COMMON AREA, AND THE DYNAMIC DIMENSIONS ARE CONSISTENT * IF A VALUE TABLE ALREADY EXISTS, VARIABLES IN COMMON ARE * LEFT UNTOUCHED, VALUES OF SIMPLE VARIABLES AND ARRAY * ELEMENTS ARE SET TO 'UNDEFINED' AND DYNAMIC ARRAY * DIMENSIONS ARE SET TO DECLARED DIMENSIONS; THE DYNAMIC * LENGTHS OF STRINGS ARE SET TO ZERO. EXIT TO XEC IF * PROCESSING IS SATISFACTORILY COMPLETED. * VALUE LDB FCORE INSURE CORRECT STB PBPTR SETTING FOR PBPTR LDB PBUFF INITIALIZE STB COMPT COMMON POINTER LDB SYMTB SET (B) TO RSS SYMBOL TABLE VALU1 INB SYMBOL TABLE CPB FILTB EXHAUSTED? JMP VAL99 YES LDA 1,I NO, LOAD SYMBOL INB POINT (B) TO VALUE TABLE POINTER SZA,RSS NULL SYMBOL? JMP VAL14 YES AND .+17B NO CPA .+17B FUNCTION? JMP VALU4 YES SZA,RSS NO, STRING VARIABLE? JMP VAL15 YES ADA .-4 NO, SSA ARRAY? JMP VALU5 YES * * ** INITIALIZE SIMPLE VARIABLE ** * * LDA VLFLG SIMPLE VARIABLE SZA,RSS STORAGE ALLOCATED? JMP VALU3 NO LDA 1,I YES CMA,INA VARIABLE ADA 1 IN SSA,RSS CO$MMON? JMP VALU1 YES LDA 1,I NO VALU2 STA VTMP1 SAVE POINTER TO VALUE CCA SET STA VTMP1,I VALUE TO JMP VALU1 UNDEFINED VALU3 LDA 1,I VARIABLE SSA IN COMMON? JMP VAL31 YES LDA .+2 NO--ALLOCATE JSB CUSP STORAGE STA PBPTR FOR VALUE ADA .-2 PUT VALUE POINTER STA 1,I INTO SYMBOL TABLE JMP VALU2 VAL31 LDA COMPT ALLOCATE STORAGE STA 1,I IN COMMON ADA .+2 UPDATE COMMON STA COMPT POINTER JMP VALU1 * * ** CHECK FUNCTION ** * * VALU4 LDA 1,I WAS FUNCTION SZA DEFINED? JMP VALU1 YES JSB DCMPL NO, DECOMPILE JSB RERRS+7,I UNDEFINED FUNCTION * * ** INITIALIZE ARRAY ** * * VALU5 CPA .-1 IS ARRAY TYPE "DON'T KNOW" ? JMP VAL13 YES STB VTMP1 NO, SAVE POINTER TO SYMBOL TABLE INA SAVE INFORMATION ON STA VTMP2 NUMBER OF DIMENSIONS LDA VLFLG STORAGE SZA ALLOCATED? JMP VAL12 YES LDA 1,I NO SSA IN COMMON? JMP VAL51 YES LDB VTMP1,I NO, LOAD POINTER TO DIMENSIONS LDA PBPTR SET POINTER TO STA VTMP3 DIMENSION ENTRY LDA .+4 ALLOCATE JSB CUSP SPACE STA PBPTR FOR ENTRY STA VTMP1,I SYMBOL TABLE POINTER TO ARRAY SZB,RSS DEFAULT DIMENSIONS? JMP VAL11 YES LDA 1,I NO, LOAD ROW DIMENSION ADB .+2 BUMP POINTER VALU6 ISZ VTMP2 TWO DIMENSIONAL? CLB,INB,RSS NO, SET COLUMN DIMENSION TO 1 LDB 1,I YES, LOAD COLUMN DIMENSION STA VTMP3,I PUT ISZ VTMP3 DECLARED DIMENSIONS STB VTMP3,I IN VALUE TABLE VALU7 ISZ VTMP3 PUT STA VTMP3,I DYNAMIC DIMENSIONS ISZ VTMP3 IN STB VTMP3,I VALUE TABLE MPY VTMP3,I COMPUTE NUMBER OF ARRAY ELEMENTS SZB,RSS TOO SSA LARGE? JMP VAL10 YES STA VTMP4 SAVE POSITIVE CMA,INA AND NEGATIVE STA VTMP2 COUNT LDB VTMP3 HAS INB ARRAY BEEN CPB PBPTR ALLOCATED? JMP VALU9 NO VALU8 CCA INITIALIZE STA 1,I ARRAY ELEMENT ADB .+2 TO 'UNDEFINED' ISZ VTMP2 DONE? JMP VALU8 NO LDB VTMP1 YES JMP VALU1 VALU9 EQU * ADA .5000 ARRAY SSA TOO LARGE? JMP VAL10 YES LDA VTMP4 NO ALS ALLOCATE JSB CUSP SPACE STA PBPTR FOR ARRAY JMP VALU8 VAL10 JSB DCMPL DECOMPILE JSB RERRS+8,I ARRAY TOO LARGE VAL11 LDA .+10 LOAD (A) WITH 10 LDB A.10 LOAD (B) WITH JMP VALU6 ADDRESS OF 10 VAL12 LDA 1,I IS ARRAY CMA,INA ADA 1 IN COMMON? SSA,RSS JMP VALU1 YES LDA VTMP1,I NO--LOAD ADA .-4 STA VTMP3 DECLARED LDA VTMP3,I ISZ VTMP3 DIMENSIONS LDB VTMP3,I JMP VALU7 VAL51 LDB VTMP1,I SET CMB,INB DIMENSION STB VTMP5 POINTER STB VTMP1,I POSITIVE LDA COMPT SET STA VTMP3 POINTER ADA .+4 IN SYMBOL STA VTMP1,I TABLE LDA 1,I PHYSICAL ROW DIMENSION CPA VTMP3,I SAME AS DECLARED DIMENSION? RSS YES JMP VAL52 NO ADB .+2 B=> SECOND DIMENSION LDA VTMP2 TWO CPA .-2 DIMENSIONAL? CLB,INB,RSS NO--SET COLUMN DIMENSION TO 1 LDB 1,I YES--LOAD COLUMN DIMENSION ISZ VTMP3 PHYSICAL COLUMN DDIMENSION CPB VTMP3,I SAME AS DECLARED DIMENSION RSS YES JMP VAL52 NO LDA COMPT,I COMPUTE SIZE OF MPY VTMP3,I ARRAY AS DECLARED SZB,RSS TOO SSA LARGE? JMP VAL52 YES STA VTMP4 NO--SAVE SIZE ADA .5000 TOO SSA LARGE? JMP VAL52 YES ISZ VTMP3 NO LDA VTMP3,I COMPUTE SIZE ISZ VTMP3 AS SPECIFIED BY MPY VTMP3,I DYNAMIC DIMENSIONS SZB,RSS TOO SSA LARGE? JMP VAL52 YES CMA,INA,SZA,RSS JMP VAL52 CHEESE IT! DYNAMIC DIM = 0 ADA VTMP4 DYNAMIC SIZE SSA > DECLARED SIZE JMP VAL52 YES LDA VTMP1,I = COMPT+4 ADA VTMP4 ADA VTMP4 UPDATE STA COMPT COMMON POINTER LDB VTMP1 RESTORE (B) JMP VALU1 VAL52 LDB VTMP5 => ROW DIMENSION LDA 1,I ADB .+2 => COLUMN DIMENSION ISZ VTMP2 TWO-DIMENSIONAL? CLB,INB,RSS NO--LOAD DEFAULT DIMENSION LDB 1,I PUT STA COMPT,I DECLARED ISZ COMPT DIMENSIONS IN STB COMPT,I COMMON AREA ISZ COMPT PUT STA COMPT,I DYNAMIC ISZ COMPT DIMENSIONS IN STB COMPT,I COMMON AREA MPY COMPT,I COMPUTE NUMBER OF ARRAY ELEMENTS SZB,RSS TOO SSA LARGE? JMP VAL10 YES CMA,INA NO--SAVE COMPLEMENT STA VTMP2 OF NUMBER OF ELEMENTS CMA,INA ARRAY ADA .5000 TOO SSA LARGE? JMP VAL10 YES ISZ COMPT NO LDB COMPT INITIALIZE CCA ALL VAL53 STA 1,I ELEMENTS ADB .+2 TO ISZ VTMP2 UNDEFINED JMP VAL53 STB COMPT UPDATE COMMON POINTER LDB VTMP1 RESTORE (B) i1JMP VALU1 VAL13 LDA VLFLG STORAGE SZA ALLOCATED? JMP VALU1 YES LDA 1,I NO, GET LDA 0,I AND STORE STA 1,I POINTER TO JMP VALU1 VALUE TABLE VAL14 JSB DCMPL DECOMPILE JSB RERRS+9,I NUMBER OF DIMENSIONS NOT KNOWN SKP * * ** INITIALIZE STRING VARIABLE ** * * VAL15 STB VTMP1 SAVE (B) LDA VLFLG STORAGE SZA ALLOCATED? JMP VAL17 YES LDA 1,I NO SSA IN COMMON? JMP VAL18 YES LDB VTMP1,I NO, SAVE LENGTH POINTER LDA PBPTR SET POINTER TO STA VTMP3 LENGTH ENTRY INA MORE CPA LWAUS USER SPACE? JSB RERRS+10,I NO STA PBPTR YES, SET POINTER TO STRING STA VTMP1,I INTO SYMBOL TABLE ENTRY SZB,RSS DEFAULT LENGTH? CLA,INA,RSS YES, SET (A) = 1 LDA 1,I NO, LOAD DECLARED LENGTH ALF,ALF STORE PHYSICAL LENGTH STA VTMP3,I ALONG WITH ZERO ALF,ALF LOGICAL LENGTH INA ALLOCATE ARS SPACE JSB CUSP FOR STA PBPTR STRING VAL16 LDB VTMP1 RESTORE JMP VALU1 (B) VAL17 LDA 1,I CMA,INA STRING ADA 1 IN SSA,RSS COMMON? JMP VALU1 YES CCB NO--RESET ADB VTMP1,I LDA 1,I LOGICAL LENGTH AND M256 STA 1,I TO ZERO JMP VAL16 VAL18 CMA,INA SET POINTER POSITIVE STA VTMP3 => DIMENSION INFORMATION LDA COMPT SET VALUE INA POINTER IN STA 1,I SYMBOL TABLE LDA COMPT,I EXTRACT PHYSICAL ALF,ALF LENGTH FROM AND B377 COMMON AREA CPA VTMP3,I SAME AS DECLARED LENGTH? RSS YES |nNLH JMP VAL20 NO LDA COMPT,I LOGICAL AND B377 CMA,INA LENGTH <= ADA VTMP3,I SSA PHYSICAL LENGTH? JMP VAL20 NO LDA VTMP3,I LOAD PHYSICAL LENGTH JMP VAL19 VAL20 LDA VTMP3,I RESET PHYSICAL LENGTH TO ALF,ALF DECLARED LENGTH AND STA COMPT,I LOGICAL LENGTH TO ZERO ALF,ALF VAL19 INA UPDATE ARS INA COMMON ADA COMPT STA COMPT POINTER JMP VALU1 VAL99 EQU * LDA VLFLG HAS STORAGE SZA BEEN ALLOCATED? JMP VAL98 YES LDA USESN NO, ANY 'PRINT SZA,RSS USING' STATEMENTS? JMP VAL98 NO LDA PBPTR YES, STA IFSS ALLOCATE LDA .72 SPACE FOR JSB CUSP FORMAT STA PBPTR STACK VAL98 EQU * CLA,INA SAY STORAGE STA VLFLG ALLOCATED LDA PBPTR POINTER TO END STA FCORE OF FIXED TABLES JMP XEC END ENASMB,R,L,X HED LIST ROUTINES NAM LIST0,7 SPC 2 ENT LISTB,LCALL,OUTST ENT PUNCH,XPNCH ENT OUTCR,SINIT,BCKSP,MOVER SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT4,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT SPC 2 EXT PBUFF,GETCR,BLDIN,FNDPS EXT OUTIN,STLCK,FOPBS,NUMOT,ATAB,MCBOP,SCHEQ EXT BLANK,ACCST,S14SC EXT CW0,OUTCH,CW2 SPC 2 B120 OCT 120 M71B OCT -71 M72B OCT -72 OPMSK OCT 77000 LETOP OCT 73000 D62 OCT -62 B63 OCT 63 B177 OCT 177 OPDMK OCT 100777 PDFFL OCT 100017 B100 OCT 100 F OCT 106 N OCT 116 DIMOP OCT 47000 COMOP OCT 45000 USEOP OCT 43000 REMOP OCT 51000 FILOP OCT 70000 IMGOP OCT 44000 B377 OCT 377 MNEG OCT ?100000 CFLAG EQU .+2 BIT15 EQU MNEG .140 OCT 140 BKS OCT 160023 B104 OCT 104 B101 OCT 101 * * HED LIST ROUTINES * ********************** **** *** *** LIST THE PROGRAM *** **** *** * ********************** * * * * 'LIST' CONVERTS THE CURRENT USER PROGRAM TO A STANDARD ASCII * FORMAT AND PRINTS IT ON THE TELETYPE ONE LINE PER PROGRAM * STATEMENT. 'PUNCH' ADDS A LEADER AND TRAILER TO THE ASCII * PROGRAM DUMP. LISTING BEGINS WITH THE FIRST PROGRAM STATEMENT * UNLESS DIRECTED OTHERWISE BY THE 'LIST' OR 'PUNCH' COMMAND. * LT1 IS THE PROGRAM POSITION POINTER. LT2 IS THE STATEMENT * LENGTH COUNTER. * XPNCH CLA,INA SET TO 'XPUNCH' MODE JMP PUNCH+1 PUNCH CCA LDB B104 JMP LIST+2 LIST CLA SET TO 'LIST' MODE LISTB EQU LIST LDB CW0 STB CW2 STA LT0 SAVE MODE CLA SET FOR STA LT8 NO PAGINATION LDB PBUFF NULL CPB PBPTR PROGRAM? JMP LIS16 YES CLB,INB NO, SET FIRST STATEMENT NUMBER STB LT3 JSB SINIT PREPARE PROGRAM FOR LISTING LDB PBPTR LDA CFLAG SAVE AND MAIN,I PROGRAM STA LT5 MODE * * ** DETERMINE FIRST STATEMENT TO BE LISTED ** * * SZA SAVE POINTER TO LDB SYMTB LAST WORD +1 STB LT6 OF PROGRAM LDB BIT15 GET LARGE SEQUENCE NUMBER STB LT7 SET ENDING SEQUENCE NUMBER JSB GETCR STARTING LINE NUMBER? JMP LISCQ NO CLB CPA .+54B CHECK FOR COMMA JMP LISCM FIRST STATEMENT NUMBER OMITTED. CPA B120 PAGINATION? JMP LISCP YES JSB BCKSP BACK UP FOR FIRST STATEMENT NUMBER JSB BLDIN FETCH INTEGER CPA .+15B CHECK FOR CARRIAGE RETURN JMP LISCR YES, END OF COMMAND CPA .+54B COMMA FOLLOWS? RSS YES JSB RERRS+12,I LISCM EQU * STB LT3 SAVE STARTING SEQUENCE NUMBER JSB GETCR GET THE NEXT CHARACTER JSB RERRS+12,I CPA B120 CHECK FOR P JMP LISCP PAGINATION JSB BCKSP BACK UP FOR SECOND STATEMENT # JSB BLDIN GET INTEGER CMB STB LT7 SAVE ENDING SEQUENCE NUMBER CPA .+15B END OF RECORD? JMP LISCQ YES JSB GETCR NO, GET NEXT CHARACTER JSB RERRS+12,I CPA B120 PAGINATION? RSS YES JSB RERRS+12,I NO LISCP EQU * LDA M71B SET LINE COUNTER STA LT8 JSB GETCR TEST FOR END OF LINE RSS JSB RERRS+12,I LISCQ EQU * LDB LT3 GET BACK STARTING SEQUENCE NUMBER LISCR EQU * LDA LT6 SEEK JSB FNDPS STATEMENT JMP LIS16 ALL LINE NUMBERS < GIVEN INTEGER NOP SAVE DESIRED STB LT3 STARTING POINT LDA .+12B OUTPUT A JSB OUTCR LINE FEED * * ** OUTPUT PROGRAM NAME ** * * LDA LNAME STA LT1 INA NULL LDA 0,I SZA,RSS NAME? JMP LISCU YES CLB NO STB LT2 OUTPUT LDA .-3 PROGRAM JSB OUTST NAME LDA .+15B OUTPUT JSB OUTCR CARRIAGE RETURN LISCU EQU * LDA .+12B AND JSB OUTCR DOUBLE LDA .+12B LINE JSB OUTCR FEED * * ** OUTPUT LEADER IF 'PUNCH' ** * * CLA 'LIST' CPA LT0 MODE? JMP LIST2-2 YES LDA M72B NO, STA DIGCT OUTPUT CLA FEED JSB OUTCR FRAMES ISZ DIGCT FOR JMP *-3  LEADER LDB LT3 SET POINTER TO STB LT1 STARTING POINT * * ** MAIN LIST LOOP ** * * LIST2 LDB LT1 PROGRAM CPB LT6 EXHAUSTED? JMP LIS15 YES LDB LT1,I GET LINE NUMBER ADB LT7 CHECK FOR END OF LISTING SSB,RSS SKIP IF NOT DONE YET JMP LIS15 STOP LISTING HERE * ISZ LT8 CHECK FOR NEW PAGE JMP LISPM NOT YET LDA .-8 STA LT8 LISPF EQU * LDA .+12B OUTPUT A JSB OUTCR BUNCH OF ISZ LT8 LINE FEEDS JMP LISPF LDA M72B RESET LINE COUNTER STA LT8 LISPM EQU * * LDB LT1,I NO, OUTPUT JSB OUTIN LINE NUMBER LDA .+40B OUTPUT JSB OUTCR BLANK ISZ LT1 CHECK LDA LT1,I STATEMENT JSB STLCK LENGTH LDA LT1,I LENGTH CMA,INA COUNTER INA FOR STA LT2 STATEMENT JMP LIST3 LDB LT1,I OUTPUT JSB OUTIN BOUND LIST3 ISZ LT1 MORE OF ISZ LT2 STATEMENT? JMP LIST4 YES CLA,INA CPA LT0 XPUNCH? RSS YES JMP *+3 NO LDA .+23B OUTPUT JSB OUTCR X-OFF LDA .+15B NO, JSB OUTCR OUTPUT A LDA .+12B CARRIAGE RETURN JSB OUTCR AND LINE FEED JMP LIST2 * * ** IDENTIFY OPERATOR ** * * LIST4 LDA LT1,I EXTRACT AND OPMSK OPERATOR SZA,RSS NULL OPERATOR? JMP LIST5 YES CPA LETOP NO, 'IMPLIED' LET? JMP LIST5-2 YES, OUTPUT A BLANK ALF,ALF NO, ADA D62 SINGLE-CHARACTER SSA,RSS OPERATOR? JMP LIS12 NO ADA B63 YES, ADA FOPBS EXTRACT / LDA 0,I ASCII ALF,ALF CODE AND B177 CPA .+42B " ? JMP LIS14 YES RSS NO LDA .+40B LOAD A BLANK JSB OUTCR * * ** IDENTIFY OPERAND ** * * LIST5 LDA LT1,I EXTRACT AND OPDMK OPERAND STA LT3 SSA FLAG BIT SET? JMP LIST9 YES CLB NO, NULL CPB LT3 OPERAND? JMP LIST3 YES CPB LT5 NO, 'COMPILED' ? JMP LIST0 NO ADA .-1 YES ALS LOAD ADA SYMTB ACTUAL LDA 0,I SYMBOL STA LT3 SAVE SYMBOL * * ** LIST SYMBOLIC OPERAND ** * * LIST0 AND PDFFL ISOLATE TYPE PART CPA .+17B FUNCTION? JMP LIST8 YES LIST6 LDA LT3 NO, RAR,RAR RAR,RAR AND .+37B ASCII FOR ADA B100 LETTER JSB OUTCR OUTPUT LETTER LDA LT3 AND .+17B CPA .+17B FUNCTION? JMP LIST3 YES SZA,RSS NO, STRING VARIABLE? JMP LIST7 YES ADA .-5 NO SSA DIGIT? JMP LIST3 NO ADA .+60B YES, JSB OUTCR OUTPUT IT JMP LIST3 LIST7 LDA .+44B LOAD ASCII '$' JMP *-3 LIST8 LDA F OUTPUT JSB OUTCR LDA N 'FN' JSB OUTCR JMP LIST6 * * ** LIST CONSTANT OPERAND OR PARAMETER ** * * LIST9 ELA,CLE,ERA CLEAR FLAG BIT SZA CONSTANT? JMP LIS10 NO STA CHRCT YES, SET STA SIGN FOR NO SIGN ISZ LT1 LOAD ISZ LT2 DLD LT1,I CONSTANT ISZ LT1 ISZ LT2 CLE,SSA NEGATIVE NUMBER? CCE YES, ENABLE SIGN JSB NU֬MOT OUTPUT THE CONSTANT JMP LIST3 LIS10 AND .+17B ISOLATE TYPE PART LCALL EQU LIS10-1 CPA .+3 PROGRAM INTEGER? JMP LIS11 YES CPA .+17B NO, PRE-DEFINED FUNCTION? RSS YES JMP LIST6 NO, MUST BE A PARAMETER SYMBOL LDA LT3 OUTPUT ALF,RAL LDB ATAB FUNCTION JSB MCOUT JMP LIST3 SYMBOL LIS11 ISZ LT1 ISZ LT2 LDA LT4 RESTORE OPERATOR CPA DIMOP ? JMP LIST3-2 YES CPA COMOP NO, 'COM'? JMP LIST3-2 YES LDA LT5 NO LDB LT1,I LOAD PROSPECTIVE INTEGER SZA PROGRAM 'COMPILED' ? LDB 1,I YES JSB OUTIN OUTPUT INTEGER ISZ LT1 MORE ISZ LT2 STATEMENT? RSS YES JMP LIST3+3 NO LDA LT4 LISTING CPA USEOP 'USING' ? JMP LIST4 YES LDA .+54B EMIT JSB OUTCR A COMMA JMP LIS11+7 * * ** LIST MULTICHARACTER OPERATOR ** * * LIS12 LDA .+40B OUTPUT JSB OUTCR A BLANK LDA LT1,I OUTPUT LDB MCBOP MULTICHARACTER JSB MCOUT OPERATOR LDA .+40B LDB LT4 WAS IT CPB REMOP A 'REM' ? JMP LIS13 YES CPB FILOP NO, 'FILES' ? JMP LIS13-1 YES CPB IMGOP NO, 'IMAGE'? JMP LIS18 YES JSB OUTCR NO, OUTPUT A BLANK JMP LIST5 LIS18 CLB LDA LT2 INA,SZA JSB OUTST OUTPUT IMAGE STRING JMP LIST3 JSB OUTCR OUTPUT A BLANK LIS13 CCB OUTPUT LDA LT2 THE JSB OUTST REMARK JMP LIST3 * * ** OUTPUT TRAILER IF 'PUNCH' ** * * LIS15 EQU * CLA 'LIST' CPA LT0  MODE? JMP SCHEQ LDA .+32B JSB OUTCR LDA M72B NO, STA DIGCT OUTPUT CLA FEED JSB OUTCR FRAMES ISZ DIGCT FOR JMP *-3 TRAILER LDA CW0 STA CW2 * LIS16 LDA .+12B ECHO JSB OUTCR LINE JMP SCHEQ * * ** LIST A STRING CONSTANT ** * * LIS14 JSB OUTCR OUTPUT " LDA LT1,I COMPUTE AND B377 WORDS SZA,RSS JMP LIS17 CMA,INA OF ARS STRING CLB OUTPUT JSB OUTST STRING LIS17 LDA .+42B JSB OUTCR YES, OUTPUT IT JMP LIST3 ** ** *** LIST A MULTICHARACTER SYMBOL *** ** ** * * UPON ENTRY (A) HOLDS A WORD CONTAINING A SYMBOL CODE AND (B) * HOLDS A POINTER TO THE PRINT NAME TABLE. THE SYMBOL IS FOUND * IN THE TABLE AND ITS ASCII FORM OUTPUT. * MCOUT NOP #MCOT AND OPMSK SAVE STA LT4 SYMBOL MCOT1 LDA 1,I DESIRED AND OPMSK TABLE CPA LT4 ENTRY? JMP MCOT2 YES LDA 1,I NO, AND .+7 COMPUTE ADA .+3 ADDRESS ARS OF NEXT ADB 0 ENTRY JMP MCOT1 MCOT2 LDA 1,I COMPUTE AND .+7 COUNT CMA,INA OF ARS ASCII STA LT3 WORDS STB OUTST SAVE ASCII SYMBOL ADDRESS MCOT3 ISZ OUTST MOVE TO NEXT WORD OF SYMBOL LDA OUTST,I OUTPUT ALF,ALF HIGH JSB OUTCR LDA OUTST,I OUTPUT AND B377 LOW CHARACTER SZA IF NOT JSB OUTCR NULL ISZ LT3 MORE SYMBOL? JMP MCOT3 YES JMP MCOUT,I NO ** ** *** LIST A STRING *** ** ** * * UPON ENTRY (A) HOLDS A NEGATIVE WORD COUNT OF THE STRING. IF * (B) # 0 THE STRING BEGINS WITH THE LOW HALF OF (LT1),I ; IF * (B) = 0 IT BEGINS WITH THE HIGH HALF OF THE WORD FOLLOWING * (LT1),I . A TRAILING NULL CHARACTER WILL NOT BE PRINTED. * OUTST NOP #OTST STA LT4 SAVE STRING WORD COUNT SZB 'REM' ? JMP OTST2 YES OTST1 ISZ LT1 NO, MOVE TO ISZ LT2 NEXT PROGRAM WORD LDA LT1,I OUTPUT ALF,ALF HIGH JSB OUTCR OTST2 LDA LT1,I OUTPUT AND B377 LOW CHARACTER SZA IF NOT JSB OUTCR NULL ISZ LT4 MORE STRING? JMP OTST1 YES JMP OUTST,I NO SPC 2 BCKSP NOP LDA BKS JSB S14SC JMP BCKSP,I SPC 5 ** ** *** OUTPUT A CHARACTER *** ** ** * * OUTPUT THE CHARACTER IN (A). NON-PRINTING CHARACTERS DO NOT * COUNT AGAINST THE 72 CHARACTERS PER LINE. A CARRIAGE RETURN * ('CONTROL O' IN A STRING OR AN END-OF-LINE, FOR EXAMPLE) * RESETS THE PRINT POSITION TO 0. * OUTCR NOP AND B177 #OTCR STA OCTMP SAVE CHARACTER CPA B177 CHECK FOR JMP OTCRA RUBOUT AND .140 NON-PRINTING SZA CHARACTER? ISZ CHRCT NO, COUNT IT OTCRA EQU * CLB LDA OCTMP RETRIEVE CHARACTER CPA .+15B CARRIAGE RETURN? STB CHRCT YES, ZERO CHARACTER COUNT JSB OUTCH JMP OUTCR,I ** ** *** MOVE BLOCK TO LOWER CORE *** ** ** * * UPON ENTRY (B) POINTS TO THE LAST WORD +1 TO BE MOVED AND * (A) POINTS TO THE FIRST WORD TO BE MOVED. DEST POINTS TO THE * FIRST WORD OF THE DESTINATION SPACE. * MOVER NOP #MOVE STB MVEND SAVE POINTER TO LAST WORD +1 LDB 0,I TRANSFER STB DEST,I WORD ISZ DEST K~640BUMP INA POINTERS CPA MVEND DONE? JMP MOVER,I YES JMP #MOVE+1 NO JSB S14SC JMP BCKSP,I SPC 5 ** ** *** INITIALIZE FOR PROGRAM MODIFICATION *** ** ** SINIT NOP #SINI LDA .+40B TURN ON STA BLANK BLANK SUPPRESSION STA GFLAG TURN OFF INTEGER ERROR-SUPPRESS JMP SINIT,I END p6ASMB,R,L,X NAM ERR9,7 SPC 2 ENT SAIR,SERR7,ERSTS,SERRB ENT SERR,WERRA,FERRA SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EPRFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT4,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,ZZ(67) COM SOURC,TAP0,TAP1 COM STIME(5) SPC 2 SPC 2 EXT OUTST,SCHIQ,GETCR,EXEC,OUTCR,OUTIN EXT OUTCL,FRMAT,LCDLP,SCHEQ,ABCHK,EDABR,S14SC EXT BCKSP,ACCST EXT #LDFG SPC 2 A EQU 0 B EQU 1 TOOP OCT 76000 INF OCT 77777 IWT OCT 160003 B377 OCT 377 UNR OCT 160002 B2000 OCT 2000 B1000 OCT 1000 SAIR DEF SERR PGMSK EQU TOOP TEMPZ NOP ADMSK OCT 1777 RERRA ABS SERRS-RERRS SERRA DEF SERRS TAPEF EQU .+8 FERRA ABS RERRS-FERRS WERRA ABS FERRS-WERRS UNABT EQU .+16 CHNFG EQU B1000 ?TNUM EQU 1 TERR EQU .+1 D128 DEC 128 .103 OCT 103 SECTR EQU 116B NSECT NOP TRAK OCT 0 SECT NOP TRAK2 NOP SECT2 NOP ** ** *** OUTPUT AN ERROR MESSAGE *** ** ** * * ERRORS ARE IDENTIFIED, THE APPROPRIATE SECTOR OF DRUM LOADED, * AND THE MESSAGE PRINTED. IF A SYNTAX ERROR AND IN 'TAPE' * MODE, THE ERROR IS EMBEDDED IN THE PROGRAM AS A PSUEDO- * STATEMENT AND THE ERROR FLAGS ADJUSTED AS APPROPRIATE. IF A * SYNTAX ERROR AND IN 'KEY' MODE, 'ERROR' IS PRINTED AND INPUT * REQUESTED. THE ERROR MESSAGE IS PRINTED IF THE REPLY IS OTHER * THAN A SIMPLE CARRIAGE RETURN. IF THE LENGTH WORD OF THE ERROR * MESSAGE IS POSITIVE THE CURRENT LINE NUMBER IS APPENDED. * SERR NOP #SERR CCA ADA SERR LDB A,I GET JSB SERRS(+N),I INSTRUCTION AND PGMSK GET PAGE ADDR. STA TEMPZ AND SAVE LDA B AND B2000 GET BASE/CURRENT PAGE BIT SZA CURRENT PAGE? JMP SERR0 YES LDA B NO. GET JSB AND ADMSK GET ADDR. OF BP LINK LDA A,I GET LINK JMP SERRY SPC 1 SERR0 LDA B GET JSB INSTRUCTION AND ADMSK GET REL. ADDR. IN PAGE ADA TEMPZ FORM ACTUAL ADDR. LDB A,I GET LINK WORD SSB,RSS B(15)=1 =>NOT ON SAME PAGE ASSERRS JMP SERRZ =0 => ON SAME PAGE AS SERRS LDA B GET LINK WORD SERRY AND INF REMOVE INDIRECT BIT SERRZ CMA,INA CALCULATE ADA SERRA ERROR CMA,INA NUMBER STA LT3 ADA RERRA STA LT5 SYNTAX SSA,RSS ERROR? JMP SERR1 NO LDA TAPEF YES. TAPE AND MAIN,I SZA MODE? JMP SERR6 YES CLB STB LT2 OUTPUT LDA ASCER 'ERROR' STA LT1 AND LDA .-3 WAIT JSB OUTST FOR LDA #LDFG GET LOAD FLAG SZA,RSS LOAD? JMP SERZZ NO LDA .+15B YES. OUTPUT A JSB OUTCR CR JMP SERR1 SERZZ LDA IWT JSB SCHIQ JSB GETCR CR ONLY? JMP SERR4 YES * ** PRINT THE MESSAGE ** * SERR1 JSB ERSTS JMP ERR2S SPC 1 ERSTS NOP LDA TRAK GET START TRACK # OF ERROR SEG. SZA =0? JMP ERSTS,I NO. CONTINUE JSB EXEC YES. GET START T/S OF ERROR SEG. DEF *+4 DEF .+18 DEF ERS DEF NSECT SPC 1 STA TRAK AND B377 STA SECT LDA TRAK ALF,ALF AND B377 STA TRAK ADB .+2 GET START ADDR. OF ERROR SEG. LDA B,I STA ERAD JMP ERSTS,I SPC 1 ERR2S CLB STB LT6 SERRB LDA LT5 SSA,RSS EXECUTION ERROR? JMP SERR5 YES CLA NO, OUTPUT JSB OUTCR A NULL. LDA .-7 STA LT1 OUTPUT LDA .+40B JSB OUTCR 7 ISZ LT1 JMP *-3 BLANKS. SERR2 LDA LT3 COMPUTE ARS,ARS GET REL. SECTOR # ARS ADA SECT ADD START SECTOR CLB DIV SECTR DIVIDE BY # SECTORS/TRACK ADA TRAK STA TRAK2 STB SECT2 SPC 1 JSB EXEC GET PROPER SECTOR DEF *+7 DEF .-1 DEF .103 ERAD NOP DEF D128 DEF TRAK2 DEF SECT2 SPC 1 LDA LT3 AND .+7 ALF ADA ERAD STA LT1 ADDRESS CCB LDA 0,I SSA LINE NUMBER? JMP *+3 NO STB LT6 YES, SET FLAG CMA,INA CLB OUTPUT STB LT2 ERROR JSB OUTST MESSAGE ISZ LT6 LINE NUMBER FLAG SET? JMP SERR3 NO LDA LINEA YES STA LT1 PRINT CLB LDA .-5 " IN LINE " JSB OUTST LDB .LNUM OUTPUT JSB OUTIN LINE NUMBER SERR3 LDA LT5 'BAD ADA FERRA STA LT5 ADA WERRA INPUT' SZA,RSS ERROR JMP SERR8 YES LDA .+15B OUTPUT JSB OUTCR CARRIAGE RETURN SERR4 LDA .+12B OUTPUT JSB OUTCR LINE FEED LDA LT5 RUN SSA ERROR? JMP SER13 YES ADA WERRA NO, WARNING SSA ONLY? JMP SERR9 NO, FORMAT ERROR CLA YES SERR8 STA CHRCT JMP SERR,I SERR9 CLB LDA IFSTR CONVERT CLE,ERA ERB STA LT1 SAVE POINTER LDA NCH SAVE CMA,INA NUMBER OF STA NCH CHARACTERS SZB START WITH RIGHT BYTE? JMP SER11 YES SER10 EQU * LDA LT1,I FETCH ALF,ALF LEFT AND B377 CHAR JSB OUTCR OUTPUT IT ISZ NCH FINISHED ALL CHARS? RSS NO JMP SER12 YES SER11 EQU * LDA LT1,I FETCH RIGHT AND B377 CHARACTER JSB OUTCR OUTPUT IT ISZ LT1 BUMP POINTER ISZ NCH FINISHED ALL CHARS? JMP SER10 NO SER12 EQU * JSB OUTCL OUTPUT CR-LF SER13 EQU * LDA MAIN,I DISALLOW IOR UNABT STA MAIN,I ABORTS LDA FCNTR STA FRMAT JSB LCDLP UPDATE LAST CHANGE DATE JMP SCHEQ * SERR5 LDA LT5 ADA FERRA WARNING ADA WERRA ERROR? SSA,RSS JMP SER5A YES LDA MAIN NO, DOES USER INA HAVE LP? CPA PRIST RSS JMP SER5A NO LDA .+23B YES. JSB OUTCR RELEASE IT LDA .+23B JSB OUTCR CLA STA PRIST SER5A LDA .+15B OUTPUT JSB OUTCR CARRIAGE RETURN LDA .+12B ;AND JSB OUTCR LINE FEED CLA BLOCK STA DCLC1,I CLOCK JSB ABCHK LDA DCLC2,I UNBLOCK STA DCLC1,I CLOCK LDA LT5 WARNING ADA FERRA ADA WERRA SSA,RSS ERROR? JMP SERR2 YES LDA CHNFG NO CMA AND 1,I CLEAR STA 1,I CHAIN FLAG INB LDA 1,I TELL 2114 IOR UNR THAT USER IS JSB S14SC LDA .+4 CLEAR PBFLG AND CBFLG ADB .-?TNUM JSB EDABR BITS. JMP SERR2 SERR6 LDB PBPTR ADB .+2 STORE LDA LT3 ERROR STA 1,I NUMBER INB SET POINTER TO STB SBPTR LAST WORD +1 OF ERROR SZA,RSS 'OUT OF STORAGE' ERROR? ISZ SYMTB YES LDA MAIN,I FIRST IOR TERR CPA MAIN,I ERROR? JMP *+4 NO STA MAIN,I YES--SET FLAG CLA CLEAR STA ERRCT ERROR COUNTER ISZ ERRCT COUNT ERROR JSB BCKSP SEEK SERR7 JSB GETCR CARRIAGE RETURN JMP ACCST JMP *-2 * ASCER DEF ERR-1 ERR OCT 5105 ASC 2,RROR LINEA DEF * ASC 4, IN LINE OCT 20000 ERS ASC 3,ERSEG END ASMB,R,L,X NAM LSUB,7 SPC 2 ENT LTYPR,LTYPE,LCHAR,LLEND,MOVEW,MOVEB,ILFER ENT DLOOK,SEMIC ENT LIBER SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT SPC 2 EXT OUTCH,S14SC,SCHEQ EXT PBUFF EXT EXEC,MLINB SPC 2 A EQU 0 B EQU 1 SPC 2 LOUT EQU OUTCH ?ABP2 DEF CRLF CRLF OCT 6412 M96 OCT -140 M32 DEC -32 .140 OCT 140 GTC OCT 40000 LIBSC EQU LTEMP+8 LIBSP EQU LTEMP+9 LIBPB EQU LTEMP+13 ?LINK EQU 15B CFLAG EQU .+2 SECTR EQU 116B * LTYPR NOP OUTPUT -A CHARS TO USER'S TTY; STA LTYP1 B POINTS TO BUFFER. STB LTYP2 LTYP3 LDA LTYP2,I GET FIRST ALF,ALF CHARACTER OF WORD JSB LOUT OUT. ISZ LTYP1 ANY MORE? RSS YES JMP LTYPR,I NO. LDA LTYP2,I SEND 2ND JSB LOUT CHAR. ISZ LTYP2 BUMP POINTER. ISZ LTYP1 ANY MORE? JMP LTYP3 YES JMP LTYPR,I LTYPE NOP SAME AS LTYPR BUT WITH CRLF. JSB LTYPR LDA .-2 LDB ?ABP2 JSB LTYPR JMP LTYPE,I * LCHAR NOP GET NEXT INPUT CHAR.--SKIP RETURN LDA LCHCR GET CARRIAGE RETURN FLAG CPA .+15B PREVIOUS RETURN? JMP LCHAR,I YES LCHR1 LDA GTC JSB S14SC STA LCHCR SET CARRIAGE RETURN FLAG CPA .+40B BLANK? LCHR2 JMP LCHR1 YES, IGNORE IT CPA .+15B NO, CARRIAGE RETURN JMP LCHAR,I YES--EXIT ADA M96 SSA,RSS LOWER CASE? ADA M32 YES, CONVERT ADA .140 NO ISZ LCHAR NO--EXIT JMP LCHAR,I TO (P+2) LLEND LDA .+12B JSB LOUT JMP SCHEQ * MOVEB NOP MOVE BACKWARD -B WORDS FROM SSB,INB,RSS MOVES TO MOVED. JMP MOVEB,I LDA MOVES,I STA MOVED,I CCA UPDATE POINTERS. ADA MOVED STA MOVED CCA ADA MOVES STA MOVES JMP MOVEB+1 * MOVEW NOP MOVES -B WORDS FROM MOVES,I TO SSB,INB,RSS MOVEDHY,I JMP MOVEW,I LDA MOVES,I GET A WORD STA MOVED,I STORE IT. ISZ MOVES BUMP ISZ MOVED POINTERS. JMP MOVEW+1 NO. * LFRDF DEF *+1 OCT 5111 ASC 7,LLEGAL FORMAT ILFER LDA .-15 OTHERWISE PRINT IT ON LDB LFRDF USER TELETYPE. LIBER JSB LTYPE LDA PRIST SZA,RSS JMP SCHEQ JMP LLEND SPC 2 DLOOK NOP LDA DRFLG GET DIRECTORY FLAG SZA FIRST ENTRY? JMP DSRCH NO. SEARCH DIRECTORY JSB EXEC YES INITIALIZE DIRECTORY DEF *+4 DEF .+18 DEF FILA DEF NSECT LDB NSECT GET # SECTORS IN $FILS SZB,RSS DOES $FILS EXIST? JMP DLOOK,I NO. RETURN STA DTRAK YES. SAVE START. TRACK/SECTOR AND =B377 STA DSECT LDA DTRAK ALF,ALF AND =B377 STA DTRAK JSB RDIRC JMP DLOK1 SPC 1 RDIRC NOP JSB EXEC READ IN DIRECTORY DEF *+7 DEF .-1 DEF .103 DEF DIREC DEF D256 DEF DTRAK DEF DSECT JMP RDIRC,I SPC 1 DLOK1 EQU * LDA DIREC GET FIRST WORD OF DIRECT. CPA =A$F ="$F"? RSS YES CONTINUE JMP DLOOK,I NO. RETURN LDA DIREC+3 GET # SECTORS FROM DIRECT. CPA NSECT = # SHOWN BY SYSTEM? ISZ DRFLG YES. SET DIRECTORY FLAG JMP DLOOK,I NO. RETURN SPC 2 DSRCH LDB DIRAD CLA,INA STA DCNT DSR0 CPA DIREC+5 JMP DSR9 ISZ DCNT LDA LTEMP CPA B,I JMP DSR2 ADB .+8 DSR1 LDA DCNT JMP DSR0 DSR2 LDA LTEMP+1 INB CPA B,I JMP DSR4 ADB .+7 JMP DSR1 DSR4 LDA LTEMP+2 INB CPA B,I JMP DSR3 ADB .+6 JMP DSR1 DSR3 INB LDA B,I STB DTEMP ADA DSECT CLB DIV SECTR ADA DTRAK ALF,ALF ADA B LDB DTEMP INB JMP DLOOK,I SPC 1 DSR9 ISZ DLOOK JMP DLOOK,I FILA ASC 3,$FILS NSECT NOP .103 OCT 103 D256 DEC 256 DIRAD DEF DIREC+8 * * CHECK IF THE PROGRAM WHICH HAS JUST BEEN LOADED FROM THE USER * LIBRARY IS SEMI-COMPILED, AND SET THE NECESSARY COMPILER * VARIABLES. LIBSC, LIBSP, AND LIBPB ARE PASSED TO THIS ROUTINE * FROM THE LIBRARY ROUTINE WHICH CALLS IT (CHAIN, GET, OR HELLO) * SEMIC NOP LDA LIBSC SSA SEMI-COMPILED? JMP SEMI1 YES CLA NO--CLEAR OUT-OF- STA SYMTB STORAGE FLAG LDA LIBPB SET LENGTH STA PBPTR POINTER LDB MLINB SET ADB .-?LINK UNCOMPILED LDA CFLAG BIT CMA AND 1,I JMP SEMI3 SEMI1 LDA LIBPB SET ADA .-7 LENGTH STA PBPTR POINTER STA FILTB LDB 0,I SET END-OF- ADB PBUFF STB SYMTB PROGRAM POINTER INA SET STB FILCT COUNTER LDB DFILT POINTER TO STB FILPT LDB .-4 4 POSSIBLE SEMI2 INA STORE LDB 0,I POINTER ADB PBUFF STB FILPT,I TO ISZ SPTR ALL 4 DONE? JMP SEMI2 NO INA SAVE LDB 0,I 'USING STB USESN SEEN' FLAG LDB MLINB SET ADB .-?LINK COMPILED LDA 1,I BIT IOR CFLAG SEMI3 STA 1,I SET STB MAIN MAIN LDB LIBSP SET START-OF- STB SPROG PROGRAM POINTER JMP SEMIC,I END `ASMB,R,L,X HED EXECUTION SUBROUTINES NAM XEC5,7 SPC 2 ENT PSTR,STSTR,FSCH,OPCHK,FINCA,FENCA,FCUCA ENT FORMX,FOR10 ENT FSCHB SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1 COM ZZ(79),TEMP3 SPC 2 EXT INF,#FSB,GETCR EXT TRSTB,CUSP,LWAUS EXT TRSTB,FOPBS,PDFBS,ARINV,SBFIX,CUSP,TRSTR,#FAD EXT #FMP,#FDV,#IFIX,.LOG,.EXP SPC 2 FSCHB DEF FSCH OPDMK OCT 100777 LBOP OCT 12000 D66 OCT -66 HALF DEC 0.5 OPMSK OCT 77000 BINO1 NOP BINO2 NOP JMP BINOP,I B377 OCT 377 .73 DEC 73 M256 DEC -256 M96 DEC -96 M32 DEC -32 .140 OCT 140 MNEG OCT 100000 A EQU 0 B EQU 1 BIT15 EQU MNEG *** INSURE VALID POWERING *** ** ** * * INSURES THAT A^B HAS ACCEPTABLE ARGUMENTS. A=B=0 IS A NON- * RECOVERABLE ERROR. A=0 AND B<0 PRINTS A WARNING MESSAGE AND *  RETURNS THE MAXIMUM POSITIVE NUMBER AS THE RESULT. * PCHK NOP #PCHK STB BINO1 LOAD HIGH PART LDB BINO2,I OF POWER SZA BASE ZERO? JMP PCHK1 NO SZB,RSS YES, POWER ZERO? JSB RERRS+29,I YES SSB,RSS NO, POWER POSITIVE? JMP FALSE YES JSB WERRS+2,I NO LDA INF USE POSITIVE LDB .-2 INFINITY JMP FOR14 FOR RESULT PCHK1 SZB,RSS POWER ZERO? JMP TRUE YES, TAKE RESULT AS 1.0 JMP PCHK,I NO SKP ** ** *** COMPARE TOP OPERANDS OF STACK *** ** ** * * ON EXIT (A) IS NEGATIVE IF THE TOP OPERAND OF THE * STACK IS GREATER THAN THE NEXT-TO-TOP OPERAND, * POSITIVE IF IT IS LESS, AND ZERO IF THEY ARE EQUAL. * COMPR NOP #CMPR LDA OPDST,I STRING SSA ARGUMENTS? JMP COMP1 YES JSB BINOP NO, COMPARE JSB #FSB NUMERICAL JMP COMPR,I OPERANDS COMP1 LDA .-2 PREPARE JSB PSTR COMPARISON STA TEMP4 STRING STB TPRME LDA TNULL SAVE SPECIFIED STA CP0 LENGTH LDA .-2 PREPARE JSB PSTR TEST STRING STB CP1 SAVE ACTUAL LENGTH ISZ TMPST RESERVE SPACE ISZ TMPST FOR RESULT COMP2 ISZ CP0 MORE SPECIFIED STRING? JMP COMP3 YES CLB NO, LOAD A JMP COMP4 NULL CHARACTER COMP3 JSB FSCH LOAD NEXT LDA .+40B COMPARISON LDB 0 CHARACTER COMP4 ISZ TNULL MORE SPECIFIED TEST STRING? JMP COMP6 YES CLA NO, LOAD NULL CHARACTER COMP5 CMB,INB COMPARE ADA 1 CHARACTERS SZA,RSS EXIT ON NOT EQUAL SZB,RSS OR BOTH NULL JMP COMPR,I CHARACTERS JMP COMP2 COMP6 LDA CP1 MORE ACTUAL INA,SZA TESTj STRING? JMP COMP7 YES LDA .+40B NO, LOAD A BLANK JMP COMP5 COMP7 STA CP1 LDA TEMP5 EXTRACT CLE,ERA LDA 0,I NEXT SEZ,RSS ALF,ALF TEST AND B377 ISZ TEMP5 CHARACTER JMP COMP5 SKP ** ** *** PREPARE STRING OPERAND ** ** ** * * THE STRING ADDRESS ON TOP OF THE OPERAND STACK IS COMBINED * WITH THE SUBSCRIPTS IN A PSUEDO-ENTRY ON THE TEMPORARY STACK * TO FORM A STRING OPERAND. (A) = -2 UPON ENTRY FOR A SOURCE * STRING; (A) = -1 FOR A DESTINATION STRING. THE ADDRESS OF * THE FIRST CHARACTER OF THE STRING OPERAND IS LEFT IN TEMP5; * FOR SOURCE STRINGS (A) = TEMP5 UPON EXIT. THE REQUESTED * STRING LENGTH (IN CHARACTERS) IS LEFT IN TNULL; FOR SOURCE * STRINGS THE ACTUAL STRING LENGTH (WHICH MAY BE LESS THAN THE * REQUESTED LENGTH) IS IN (B) UPON EXIT. THE FOLLOWING * CONDITIONS EXIT TO ERROR: NEGATIVE STRING LENGTH, REQUESTED * DESTINATION STRING WOULD EXCEED PHYSICAL STRING BOUNDARY, OR * REQUESTED DESTINATION STRING WOULD PRODUCE A STRING QUANTITY * WITH TWO UNCONNECTED PARTS. THE LOGICAL LENGTH OF A * DESTINATION STRING IS ADJUSTED AS NEEDED. * PSTR NOP #PSTR STA PS0 SAVE MODE FLAG JSB OPCHK UNSTACK OPERAND STB PS1 SET FLAG POSITIVE RBL SAVE ADDRESS OF FIRST STB TEMP5 CHARACTER OF STRING RBR SAVE ADB .-1 POINTER TO STB TEMP6 STRING LENGTH LDB TMPST LOAD ADB .+2 START-OF-STRING LDA 1,I DESIGNATOR STA MPT SAVE IT ADA TEMP5 RECORD CHARACTER ADDRESS STA TEMP5 OF START-OF-STRING STA SBPTR SAVE ADDRESS INB LOAD LDA 1,I END-OF-STRING DESIGNATOR INA,SZA SPECIFIED? JMP PSTR2 YES CCA NO CPA PS0 'SOURCE' Mz ODE? JMP PSTR1 NO LDA TEMP6,I YES, LOAD STRING'S AND B377 LOGICAL LENGTH JMP PSTR2 PSTR1 STA PS1 SET FLAG TO -1 LDA TPRME COMPUTE CMA END-OF-STRING ADA MPT DESIGNATOR PSTR2 STA NQT SAVE IT CMA IS LENGTH ADA MPT OF SPECIFIED STRING SSA,RSS NEGATIVE? JSB RERRS+18,I YES STA TNULL ADA .73 >72? SSA JSB RERRS+20,I LDA TEMP6,I DOES AND B377 START-OF-STRING CMA CHARACTER ISZ PS0 RELATE TO INA PREVIOUS ADA MPT VALUE SSA,RSS OF STRING? JMP PSTR3 NO LDA TEMP6,I YES, EXTRACT ISZ PS0 END-OF- ALF,ALF PERMITTED-STRING AND B377 DESIGNATOR CMA COMPUTE DIFFERENCE FROM ADA NQT END OF SPECIFIED STRING -1 CLB,INB 'SOURCE' CPB PS0 MODE? JMP PSTR5 NO LDB TNULL YES, SPECIFIED SOURCE STRING INA CONTAINED WITHIN SSA,RSS DEFINED SOURCE STRING? ADB 0 NO, CORRECT LENGTH JMP PSTR4 OF ACTUAL SOURCE STRING PSTR3 ISZ PS0 'SOURCE' MODE? JSB RERRS+19,I NO CCB YES, SET ACTUAL LENGTH TO 0 PSTR4 LDA TEMP5 LOAD START-OF-STRING JMP PSTR,I CHARACTER ADDRESS PSTR5 SSA,RSS PHYSICAL STORAGE OVERFLOW? JSB RERRS+20,I YES ISZ PS1 END-OF-STRING SPECIFIED? JMP PSTR7 YES PSTR6 LDA TEMP6,I NO, AND M256 RESET IOR NQT LOGICAL LENGTH STA TEMP6,I OF STRING JMP PSTR,I PSTR7 LDA TEMP6,I IS NEW AND B377 DESTINATION CMA STRING ADA NQT LONGER SSA,RSS THAN OLD? JMP PSTR6 YES \ JMP PSTR,I NO ** ** *** STACK STRING CONSTANT *** ** ** * * SEE NOTE AT FOR13 OF ROUTINE FORMX * STSTR NOP #STST ISZ OPDST STACK ISZ OPDST NEGATIVE LDA TEMP1 OF CMA STRING STA OPDST,I ADDRESS LDA TEMP1,I COMPUTE AND B377 STRING CCB LENGTH ADB 0 -1 ADA .+3 UPDATE ARS INTRA-STATEMENT ADA TEMP1 POINTER STA TEMP1 PAST STRING JSB RSCHK CREATE TEMPORARY CLA RECORD DST TMPST,I (0,(B) ) JMP STSTR,I ** ** *** FETCH SOURCE CHARACTER *** ** ** * * CHARACTER ADDRESS IN TEMP4, SOURCE CHARACTER COUNT * IN TPRME (IN 1'S COMPLEMENT). EXIT TO (P+1) ON NO * MORE CHARACTERS (TPRME = -1) ELSE EXIT TO (P+2) WITH * NEXT CHARACTER IN (A). * FSCH NOP #FSCH LDA TPRME MORE INA,SZA,RSS CHARACTERS? JMP FSCH,I NO STA TPRME YES, UPDATE CHARACTER COUNT LDA TEMP4 LOAD CHARACTER CLE,ERA ADDRESS LDA 0,I EXTRACT SEZ,RSS NEXT ALF,ALF CHARACTER AND B377 ISZ TEMP4 UPDATE CHARACTER ADDRESS ISZ FSCH JMP FSCH,I ** ** *** FETCH SOURCE CHARACTER (UPPER CASE) *** ** ** * * SAME AS FSCH, EXCEPT LOWER CASE CHARACTERS ARE CONVERTED TO * UPPER CASE. USED BY CHAIN AND ASSIGN STATEMENTS. * FCUCA DEF FCUC FCUC NOP #FCUC LDA TPRME MORE INA,SZA,RSS CHARACTERS? JMP FCUC,I NO STA TPRME YES, UPDATE CHARACTER COUNT LDA TEMP4 LOAD CHARACTER CLE,ERA ADDRESS LDA A,I EXTRACT SEZ,RSS NEXT ALF,ALF CHARACTER Zk AND B377 ADA M96 SSA,RSS LOWER CASE ADA M32 NO ADA .140 YES ISZ TEMP4 UPDATE CHARACTER ADDRESS ISZ FCUC JMP FCUC,I ** ** *** FETCH INPUT CHARACTER *** ** ** * * EXITS NORMALLY TO (P+2) WITH NEXT INPUT CHARACTER IN (A). * IF THE CHARACTER IS A " OR THE INPUT RECORD IS EMPTY, * EXIT TO TRSTR,I (THE ONLY CALLER WHO CAN ENCOUNTER THIS * CONDITION). * FINCA DEF FINCH FINCH NOP #FINC ISZ FINCH JSB GETCR FETCH NEXT CHARACTER JMP TRSTB LDA B ALLOW LOWER CASE CPA .+42B " ? JMP TRSTB JMP FINCH,I NO SKP ** ** *** FETCH ENTER CHARACTER *** ** ** * * SAME AS FINCH EXCEPT IT DOES NOT CHECH FOR A QUOTE * FENCA DEF FENCH FENCH NOP #FENC ISZ FENCH JSB GETCR FETCH NEXT CHARACTER JMP TRSTB LDA B ALLOW LOWER CASE JMP FENCH,I CHARACTER FOUND ** ** *** FETCH TOP OF STACK *** ** ** * * EXIT WITH TOP OPERAND IN (A) AND (B) AFTER UNSTACKING * IT. CREATE EMPTY SPACE ON TEMPORARY STACK FOR FUTURE * INTERMEDIATE RESULT. * STTOP NOP #STTP JSB OPCHK UNSTACK OPERAND JSB RSCHK CREATE SPACE FOR TEMPORARY DLD 1,I LOAD TOP OPERAND JMP STTOP,I ** ** *** EXECUTE A BINARY OPERATOR *** ** ** * * ON ENTRY (P+1) CONTAINS A SUBROUTINE CALL FOR A BINARY * OPERATION. THE TOP TWO OPERANDS ON THE STACK ARE * UNSTACKED AND VERIFIED AS NOT BEING 'UNDEFINED.' THE * APPROPRIATE SUBROUTINE IS CALLED WITH THE TOP ARGUMENT'S * ADDRESS IN BINO2 AND THE NEXT-TO-TOP ARGUMENT'S VALUE IN * (A) AND (B). EXIT IS TO (P+2) WITH THE RESULT IN (A) * AND (B). BINOP NOP #BNOP LDA BINOP,I SAVE STA BINO1 SUBROUTINE ISZ BINOP ̔ CALL JSB OPCHK SAVE ADDRESS OF STB BINO2 TOP OPERAND JSB STTOP FETCH NEXT OPERAND JMP BINO1 EXECUTE SUBROUTINE ** ** *** VERIFY LEGITIMACY OF OPERAND *** ** ** * * THE VALUE REFERENCED BY THE TOP OF THE OPERAND STACK * IS CHECKED. EXIT TO ERROR IF VALUE IS 'UNDEFINED.' * ELSE REMOVE OPERAND ADDRESS FROM STACK AND REMOVE VALUE * FROM TOP OF TEMPORARY STACK, IF IT IS THERE. EXIT * WITH OPERAND ADDRESS IN (B). * OPCHK NOP #OPCK LDB OPDST,I STRING SSB OPERAND? JMP OPCH3-1 YES LDA 1,I NO, HIGH PART OF RAL,RAL IS INA OPERAND RAR,SLA NORMALIZED? JMP OPCH1 YES CPA BIT15 WAS FIRST WORD ZERO INB,RSS YES JSB RERRS+23,I NO--ERROR LDA 1,I SECOND SZA WORD ZERO? JSB RERRS+23,I NO--ERROR ADB .-1 YES--RESTORE OPERAND ADDRESS OPCH1 CPB TMPST TEMPORARY? JMP OPCH3 YES OPCH2 LDA OPDST NO, ADA .-2 UNSTACK STA OPDST OPERAND JMP OPCHK,I ADDRESS CMB,INB SET ADDRESS TRUE OPCH3 LDA TMPST UNSTACK ADA .-2 TEMPORARY STA TMPST OPERAND JMP OPCH2 ** ** *** ALLOCATE AN ENTRY ON THE TEMPORARY STACK *** ** ** * * (B) IS UNCHANGED UPON EXIT. ON STACK OVERFLOW, * THE OPERATOR AND OPERAND STACKS ARE MOVED TO HIGHER * CORE TO MAKE ROOM FOR FIVE MORE TEMPORARY ENTRIES. * RSCHK NOP #RSCK LDA TMPST ADVANCE ADA .+2 POINTER TO STA TMPST NEXT ENTRY INA STACK CPA OPTRQ OVERFLOW? RSS YES JMP RSCHK,I NO STB RT0 SAVE (B) LDB PBPTR LOAD SOURCE ADDRESS LDA .+10  ALLOCATE SPACE FOR JSB CUSP FIVE MORE STA PBPTR TEMPORARIES STA RT1 SAVE DESTINATION ADDRESS RSCH1 LDA 1,I TRANSFER STA RT1,I A WORD CPB TMPST DONE? JMP RSCH2 YES CCA NO, DECREMENT ADA RT1 DESTINATION STA RT1 AND SOURCE ADB .-1 ADDRESSES JMP RSCH1 RSCH2 LDA OPDST CORRECT ADA .+10 STA OPDST STACK LDA OPTRQ ADA .+10 POINTERS STA OPTRQ LDB RT0 RESTORE (B) JMP RSCHK,I ** ** *** PUSH DOWN OPERATOR STACK *** ** ** * * ALLOCATE AN ENTRY ON THE OPERATOR STACK. (A) IS * NOT CHANGED. * PSHST NOP #PSHS LDB PBPTR ADVANCE ADB .+2 STACK POINTER CMB USER ADB LWAUS SPACE SSB OVERFLOW? JSB RERRS+10,I YES ISZ PBPTR NO, ALLOCATE ISZ PBPTR STORAGE JMP PSHST,I ** ** *** EVALUATE A FORMULA *** ** ** * * ENTER WITH TEMP1 POINTING TO THE FIRST OPERAND OF THE * FORMULA. OPERATORS AND THE ADDRESSES OF OPERANDS ARE * STACKED SEPARATELY. OPERAND ADDRESSES ARE STACKED AS * SOON AS THE OPERAND IS SCANNED. AN OPERATOR IS NOT * STACKED WHILE THE OPERATOR ON TOP OF THE STACK HAS EQUAL * OR HIGHER PRECEDENCE, INSTEAD THE LATTER IS UNSTACKED * AND EXECUTED; THUS AN OPERATOR FORCES EXECUTION OF THOSE * PREVIOUSLY STACKED, DOWN TO THE LATEST ONE STACKED WHICH * HAS A LOWER PRECEDENCE. THE OPERATOR STACK IS INITIALIZED * WITH AN END-OF-FORMULA (LOWEST PRECEDENCE) OPERATOR. THE * ACTION OF OPERATORS IS IN GENERAL TO COMBINE THE TOP TWO * OPERANDS STACKED . THE ADDRESS OF THE PARTIAL RESULT THUS * OBTAINED REPLACES THE ADDRESSES OF ITS CONSTITUENT OPERANDS * ON THE STACK (VALUES OF PARTIAL RESULTS ARE KEPT ON THE * TEMPORARY STACK). UPON EXIT TEMP1 POINTS TO THE FIRST PROGRAM * WORD WHOSE OPERATOR DOES NOT MANIPULATE THE STACK (THIS * MAY BE AN END-OF-FORMULA, 'THEN', 'OF', ETC.). * FORMX NOP #FORM JSB PSHST STACK CLB BEGINNING-OF-FORMULA STB PBPTR,I OPERATOR * * ** PROCESS NEXT OPERAND ** * * FORM1 LDA TEMP1,I EXTRACT ISZ TEMP1 NEXT AND OPDMK OPERAND SZA,RSS NULL OPERAND? JMP FORM2 YES ISZ OPDST NO, BUMP POINTER ISZ OPDST TO OPERAND STACK SSA VARIABLE OPERAND? JMP FORM6 NO * * ** STACK NON-FUNCTION VARIABLE OPERAND ADDRESS ** * * * * THE ADDRESSES STACKED ARE AS FOLLOWS: FOR SIMPLE VARIABLES, * A POINTER TO THE VALUE; FOR ARRAYS, THE BASE ADDRESS; FOR * STRING VARIABLES, THE NEGATION OF THE BASE ADDRESS. * ADA .-1 COMPUTE ALS POINTERS ADA SYMTB TO SYMBOL LDB 0 TABLE INB ENTRY LDA 0,I PROGRAMMER- AND .+17B DEFINED CPA .+17B FUNCTION? JMP FORM8 YES LDB 1,I NO, LOAD VALUE POINTER SZA STRING VARIABLE? JMP FORM2-1 NO LDA TEMP1 YES, END CPA PRGCT OF FORMULA? JMP FORM0 YES LDA TEMP1,I NO, AND OPMSK FOLLOWED BY CPA LBOP SUBSCRIPT? JMP FORM2-2 YES FORM0 STB TEMP4 NO JSB RSCHK CREATE TEMPORARY CLA RECORD CCB DST TMPST,I (0,-1) LDB TEMP4 RETRIEVE AND CMB,INB NEGATE STRING ADDRESS STB OPDST,I STACK ADDRESS * * ** PROCESS NEXT OPERATOR ** * * FORM2 LDA TEMP1 FORMULA CPA PRGCT H EXHAUSTED? JMP FORM3 YES LDA TEMP1,I NO, AND OPMSK EXTRACT ALF,ALF NEXT LDB 0 OPERATOR CPA .+2 STRING CONSTANT? JMP FOR13 YES ADA .-20B NO, NON-FORMULA SSA OPERATOR? CLB YES ADA D66 NO, NON-FORMULA SSA,RSS OPERATOR? FORM3 CLB YES CLA NO SZB,RSS END-OF-FORMULA? JMP *+4 YES ADB FOPBS NO, LOAD OPERATOR LDA 1,I INFORMATION WORD AND B377 SAVE STA TEMP2 PRIORITY XOR 1,I SAVE ARS INTERNAL STA TEMP3 NAME * * ** STACK PRESENT OR EXECUTE PREVIOUS OPERATOR ** * * FORM4 LDA PBPTR,I DOES OPERATOR AND B377 ON TOP CMA OF STACK ADA TEMP2 HAVE HIGHER SSA PRIORITY? JMP FORM5 YES LDA TEMP2 NO CPA .+13B CORRECT CLA,INA STACK PRIORITY IOR TEMP3 ADD NAME JSB PSHST STACK STA PBPTR,I OPERATOR JMP FORM1 FORM5 LDA PBPTR,I POP LDB .-2 OPERATOR ADB PBPTR FROM TOP STB PBPTR OF STACK ALF,ALF BRANCH AND B377 TO ADA ARBAS APPROPRIATE JMP 0,I ROUTINE * * ** STACK CONSTANT OR PARAMETER ADDRESS ** * * * * FOR NUMERICAL CONSTANTS STACK A POINTER TO THE VALUE * EMBEDDED IN THE PROGRAM, FOR PARAMETERS STACK THE * PARAMETER ADDRESS. * FORM6 ELA,CLE,ERA ERASE FLAG BIT SZA CONSTANT? JMP FORM7 NO LDB TEMP1 YES, ISZ TEMP1 STACK ISZ TEMP1 ADDRESS JMP FORM2-1 ` FORM7 STA TEMP2 PRE- AND .+17B DEFINED CPA .+17B FUNCTION? JMP *+3 YES LDB OPTRQ,I NO, STACK JMP FORM2-1 PARAMETER ADDRESS * * FOR FUNCTIONS RECURSION ON FORMX EVALUATES THE PARAMETER * AND, FOR PROGRAMMER DEFINED FUNCTIONS, THE VALUE. * FUNCTION VALUES ARE LEFT ON THE TEMPORARY STACK AND A * POINTER THERETO IS PLACED ON THE OPERAND STACK. * 'LEN' IS HANDLED IN A SPECIAL WAY. * * * ** EVALUATE PRE-DEFINED FUNCTION ** * * XOR TEMP2 IDENTIFY ALF,ALF ALF FUNCTION CPA .+15B 'LEN' ? JMP FOR12 YES ADA PDFBS NO, STACK JSB PSHST POINTER TO STA PBPTR,I ENTRY POINT LDA FORMX SAVE FORMX STA OPDST,I RETURN ADDRESS JSB FORMX EVALUATE ARGUMENT JSB STTOP BRANCH TO STA TEMPZ SUBROUTINE LDA PBPTR,I STA TEMPY LDA TEMPZ JMP TEMPY,I TEMPZ NOP TEMPY NOP SKP * * ** EVALUATE PROGRAMMER-DEFINED FUNCTION ** * * FORM8 LDA 1,I LOAD ADDRESS OF FORMULA JSB PSHST SAVE VALUE OF LDB TMPST CURRENT POINTER TO STB PBPTR,I TEMPORARY STACK JSB PSHST SAVE ADDRESS OF STA PBPTR,I DEFINING FORMULA LDA FORMX SAVE FORMX STA OPDST,I RETURN ADDRESS JSB FORMX EVALUATE ARGUMENT LDA OPDST,I SWAP LDB OPTRQ,I OLD AND NEW STB OPDST,I ARGUMENT STA OPTRQ,I ADDRESSES CPA TMPST PROTECT PARAMETER JSB RSCHK ON TEMPORARY STACK LDA TEMP1 SWAP ADDRESSES LDB PBPTR,I OF CURRENT STB TEMP1 AND FUNCTION STA PBPTR,I FORMULAS JSB FORMX EVALUATE FUNCTION LDB OPDST,I POP LDuA .-2 OPERAND ADA OPDST STACK, STA OPDST SAVING LDA OPDST,I RESULT ADDRESS STA OPTRQ,I AND ADDRESS OF STB OPDST,I OLD PARAMETER LDA PBPTR,I RESTORE STA TEMP1 FORMULA POINTER LDA PBPTR POP ADA .-2 OPERATOR STA PBPTR STACK LDA PBPTR,I RESTORE ORIGINAL STA TMPST TEMPORARY STACK POINTER JSB STTOP LOAD FUNCTION RESULT * * ** RECORD RESULT OF FUNCTION ** * * * * PRE-DEFINED FUNCTIONS RETURN TO THIS POINT WITH THEIR * RESULT IN (A) AND (B). * FOR10 DST TMPST,I SAVE RESULT LDA OPDST,I RESTORE FORMX STA FORMX RETURN ADDRESS LDA TMPST RECORD LOCATION STA OPDST,I OF RESULT LDB PBPTR POP ADB .-2 FUNCTION STB PBPTR ADDRESS ISZ TEMP1 OF RESULT ISZ TEMP1 ON TOP OF JMP FORM2 OPERAND STACK * * ** EVALUATE 'LEN' ** * * FOR12 JSB RSCHK CREATE SPACE ON TEMPORARY STACK LDA TEMP1,I FIND AND OPDMK STRING'S ADA .-1 SYMBOL ALS TABLE ADA SYMTB ENTRY INA LOAD ADDRESS LDA 0,I OF STRING ADA .-1 EXTRACT LDA 0,I STRING AND B377 LENGTH EXT FLOAT JSB FLOAT STACK DST TMPST,I STRING LENGTH LDA TMPST STACK ADDRESS STA OPDST,I OF RESULT JMP FOR12-3 * * ** PROCESS STRING CONSTANT ** * * * * WHEN STRING CONSTANTS ARE STACKED, AN APPROPRIATE * ENTRY IS PLACED ON THE TEMPORARY STACK SO THAT ALL * STRING OPERANDS HAVE THE SAME FORM: A NEGATED BASE * ADDRESS ON THE OPERAND STACK AND A TWO WORD ErNTRY ON * THE TEMPORARY STACK CONTAINING THE START-OF-STRING * AND END-OF-STRING DESIGNATORS BIASED BY -1 (DEFAULT * START-OF-STRING DESIGNATORS HAVE A STACK VALUE OF 0, * DEFAULT END-OF-STRING DESIGNATORS HAVE A STACK VALUE * OF -1). IN THE CASE OF SUBSCRIPTED STRING VARIABLES, * THE TEMPORARY IS CREATED WHEN THE ']' IS SCANNED; THE * ENTRY FOR NON-SUBSCRIPTED STRING OPERANDS IS CREATED * WHEN THEY ARE SCANNED. * FOR13 CLA,INA PRINT STATEMENT CPA EOL STRING CONSTANT? JSB STSTR NO, STACK STRING CONSTANT JMP FORM3 EXECUTE END-OF-FORMULA SKP * * ** RECORD RESULT OF OPERATION ** * * * * OPERATORS CREATING INTERMEDIATE RESULTS RETURN TO HERE. * FOR14 ISZ OPDST STACK ISZ OPDST TEMPORARY DST TMPST,I RESULT LDA TMPST SAVE STA OPDST,I ADDRESS ON JMP FORM4 OPERAND STACK * * ** EXIT FORMULA EVALUATOR ** * * * * THIS WORD IS ACTUALLY PART OF THE FORMULA OPERATOR JUMP * TABLE. THE WORDS BETWEEN IT AND FOJT CORRESPOND TO * OPERATORS WHICH ARE NOT EXECUTED, SO CODE IS INSERTED HERE * TO UTILIZE THIS SPACE. * DEF FORMX,I ** ** *** SET LOGICAL VALUES *** ** ** FALSE CLA LOAD CLB ZERO JMP FOR14 TRUE LDA HALF LOAD LDB .+2 1.0 JMP FOR14 ** ** *** EXECUTE UNARY - *** ** ** EUMIN JSB STTOP UNSTACK AND LOAD TOP OF STACK JSB ARINV NEGATE IT JMP FOR14 STORE IT ** ** *** FORMULA OPERATOR JUMP TABLE *** ** ** FOJT DEF ELBRC [ DEF FORM1 ( DEF FORM4 UNARY + DEF EUMIN UNARY - DEF ESCMA SUBSCRIPT COMMA DEF ESTR $^ ASSIGNMENT OPERATOR DEF EFAD + DEF EFSB - DEF EFMP * DEF EFDV / DEF EPWR ^ DEF EGTRT > DEF ELST < DEF ENEQL # DEF EEQL = NOP UNUSED DEF EAND AND DEF EIOR OR DEF EMIN MIN DEF EMAX MAX DEF ENEQL <> DEF EGORE >= DEF ELORE <= DEF ENOT NOT ARBAS DEF FOJT-12B,I ** ** *** EXECUTE LEFT BRACKET *** ** ** * * LOAD A DEFAULT SECOND SUBSCRIPT AND ENTER THE CODE FOR * A SUBSCRIPT COMMA. * ELBRC LDA OPDST LOAD ADA .-2 -1 LDA 0,I FOR A CCB STRING, SSA,RSS 0 CLB FOR JMP ESCM1 AN ARRAY ** ** *** EXECUTE SUBSCRIPT COMMA *** ** ** * * BOTH SUBSCRIPTS ARE ROUNDED TO INTEGERS AND TESTED TO BE * POSITIVE. FOR STRINGS, THE TWO INTEGERS ARE SAVED ON THE * TEMPORARY STACK AS A PSUEDO-ENTRY LATER USED BY PSTR. FOR * ARRAYS, THE SUBSCRIPTS ARE CHECKED AND IF WITHIN THE CURRENT * BOUNDS THEY ARE COMBINED WITH THE BASE ADDRESS OF THE ARRAY. * THE ARRAY ELEMENT ADDRESS THEN REPLACES THE BASE ADDRESS ON * THE OPERAND STACK. UNSUITABLE SUBSCRIPTS EXIT TO THE ERROR * ROUTINE. * ESCMA JSB OPCHK UNSTACK DLD 1,I SECOND SUBSCRIPT JSB SBFIX ROUND TO INTEGER JSB RERRS+17,I UNSUITABLE RESULT LDA PBPTR UNSTACK ADA .-2 THE STA PBPTR '[' ESCM1 STB TEMP4 SAVE RESULT JSB STTOP POP FIRST SUBSCRIPT JSB SBFIX ROUND TO INTEGER JSB RERRS+17,I UNSUITABLE RESULT STB TMPST,I STORE IN TEMPORARY STACK LDA OPDST,I STRING SSA,RSS VARIABLE? JMP ESCM2 NO, ARRAY VARIABLE LDA TM;PST YES, INA SAVE LDB TEMP4 SECOND SUBSCRIPT IN STB 0,I TEMPORARY STACK JMP FORM1 ESCM2 ADA .-2 LOAD COLUMN DLD 0,I AND ROW BOUNDS CMA,INA IS SPECIFIED ADA TMPST,I ROW SSA,RSS LEGAL? JSB RERRS+17,I NO STB TEMP5 YES CMB,INB IS SPECIFIED ADB TEMP4 COLUMN SSB,RSS LEGAL? JSB RERRS+17,I NO LDA TMPST,I YES, COMPUTE ROW MPY TEMP5 DISPLACEMENT ADA TEMP4 ADD COLUMN DISPLACEMENT ALS DOUBLE FOR CORE WORDS ADA OPDST,I STORE ACTUAL STA OPDST,I ELEMENT ADDRESS LDA TMPST POP UNUSED ADA .-2 TEMPORARY STA TMPST STACK JMP FORM1 ENTRY ** ** *** EXECUTE STORE *** ** ** * * IN ORDER TO ALLOW MULTIPLE ASSIGNMENT STATEMENTS, NO * ASSIGNMENT CAN TAKE PLACE UNTIL THE RIGHT-HAND FORMULA * IS EVALUATED; I.E. ONLY AN END-OF-FORMULA OPERATOR CAN * FORCE AN ASSIGNMENT OPERATOR OFF OF THE STACK. ASSIGNMENTS * MAY BE NUMERICAL TO NUMERICAL TYPE OPERAND, IN WHICH CASE * THE ASSIGNED QUANTITY IS SAVED FOR POSSIBLE ADDITIONAL * ASSIGNMENTS; OR STRING TO STRING OPERAND. IN THE LATTER * CASE AN INTERMEDIATE STRING IS NECESSARY IF THE HEAD OF * THE DESTINATION STRING LIES IN THE TAIL OF THE ACTUAL * SOURCE STRING. * ESTR LDB TEMP2 NEXT OPERATOR AN SZB END-OF-FORMULA? JMP ESTR5 NO CPB TEMP3 YES, FIRST STORE OF FORMULA? JMP ESTR2 YES ESTR1 LDA OPDST,I NO, SET STA TEMP6 DESTINATION ADDRESS DLD TEMP3,I TRANSFER DST TEMP6,I THE NUMBER LDA OPDST UNSTACK ADA .-2 DESTINATION STA OPDST OPERAND JMP FORM4 ESTR2 LDA OPDST,I STRING SSA OPERANDS? JMP ESTR3 YES JSB YOPCHK NO, UNSTACK SOURCE STB TEMP3 AND SAVE VALUE ADDRESS JMP ESTR1 ESTR3 LDA .-2 PREPARE JSB PSTR SOURCE STA TEMP4 STRING STB TPRME CCA PREPARE JSB PSTR DESTINATION STRING LDB PBPTR SAVE CORE STB EST1 POINTER LDA TEMP4 TRANSFER CMA TO ADA TEMP5 HIGHER SSA CORE? JMP ESTR4 NO ADA TPRME YES, ADA .+2 OVERLAPPING SSA,RSS TRANSFER? JMP ESTR4 NO LDA TEMP5 YES, SAVE STA EST2 DESTINATION ADDRESS INB SET DESTINATION RBL ADDR. TO START STB TEMP5 OF FREE CORE LDA TNULL SAVE TRANSFER STA EST3 LENGTH CMA,INA ALLOCATE ARS SPACE FOR JSB CUSP INTERMEDIATE STA PBPTR STRING LDA FSCHA JSB TRSTR TRANSFER STRING TO FREE CORE LDA EST3 RESTORE TRANSFER STA TNULL LENGTH STA TPRME RESET ACTUAL SOURCE LENGTH LDA EST1 SET SOURCE INA ADDRESS TO RAL INTERMEDIATE STA TEMP4 STRING LDA EST2 RESTORE ORIGINAL STA TEMP5 DESTINATION STRING ESTR4 LDA FSCHA JSB TRSTR COMPLETE TRANSFER LDA EST1 RESTORE FREE STA PBPTR CORE POINTER JMP FORM5 EXECUTE END-OF-FORMULA ESTR5 ISZ PBPTR DEFER ISZ PBPTR EXECUTION LDA BASSO STA PBPTR,I JMP FORM4+6 * BASSO OCT 7402 ** ** *** EXECUTE + *** ** ** EFAD JSB BINOP JSB #FAD JMP FOR14 ** ** *** EXECUTE - *** ** ** EFSB JSB BINOP JSB #FSB JMP FOR14 ** ** *** EXECUTE * *** ** ** EFMP JSB BINOP JSB #FWMP JMP FOR14 ** ** *** EXECUTE / *** ** ** EFDV JSB BINOP JSB #FDV JMP FOR14 ** ** *** EXECUTE ^ *** ** ** * * ** REAL POWER ** * * * * EXIT TO ERROR IF BASE IS NEGATIVE. ELSE COMPUTE * RESULT AS E^(POWER*LN(BASE)). * EPWR LDB OPDST,I LOAD DLD 1,I POWER JSB #IFIX INTEGER? JMP *+3 NO SOS YES, 16-BIT? JMP IPWR YES JSB BINOP NO, UNSTACK RSS ARGUMENTS JSB PCHK CHECK ARGUMENTS SSA NEGATIVE BASE? JSB RERRS+30,I YES LDB BINO1 NO, LOAD BASE ADDRESS JSB .LOG TAKE NATUAL LOG JSB #FMP MULTIPLY DEF BINO2,I BY POWER JSB .EXP EXPONENTIATE JMP FOR14 * * ** INTEGER POWER ** * * * * MULTIPLY BASE REPEATEDLY, USING POWERS-OF-TWO METHOD * TO SPEED PROCESS. IF POWER IS NEGATIVE, TAKE RECIPROCAL * FOR FINAL RESULT. * IPWR STB TT1 SAVE SIGN SSB FORM ABSOLUTE CMB,INB VALUE OF POWER STB TT2 SAVE IT JSB BINOP UNSTACK RSS ARGUMENTS JSB PCHK CHECK ARGUMENTS LDB BINO1 STORE STA BINO1 STB BINO2 BASE LDA HALF INITIALIZE STA TT3 RESULT LDA .+2 TO STA TT4 1.0 IPWR1 LDB TT2 DIVIDE POWER SLB,BRS BY 2 JMP IPWR4 ODD POWER STB TT2 EVEN POWER IPWR2 SZB ZERO? JMP IPWR5 NO LDA TT1 YES SSA POSITIVE POWER? JMP IPWR3 NO LDA TT3 YES, RETURN LDB TT4 WITH JMP FOR14 RESULT IPWR3 LDA HALF TAKE LDB .+2 RECIPROCAL JSB #FDV FOR DEF TT3 FINAL 8 JMP FOR14 RESULT IPWR4 STB TT2 SAVE POWER LDA BINO1 LOAD LDB BINO2 BASE JSB #FMP MULTIPLY BY DEF TT3 RESULT SO FAR STA TT3 SAVE NEW STB TT4 PARTIAL LDB TT2 RESULT JMP IPWR2 IPWR5 LDA BINO1 SQUARE LDB BINO2 JSB #FMP BASE DEF BINO1 STA BINO1 RECORD STB BINO2 NEW JMP IPWR1 BASE SKP ** ** *** EXECUTE > *** ** ** EGTRT JSB COMPR COMPARE OPERANDS SSA < ? JMP FALSE YES JMP ENEQL+1 NO ** ** *** EXECUTE < *** ** ** ELST JSB COMPR COMPARE OPERANDS CMA,RSS REVERSE COMPARISON SENSE ** ** *** EXECUTE >= *** ** ** EGORE JSB COMPR COMPARE OPERANDS SSA < ? JMP FALSE YES JMP TRUE NO ** ** *** EXECUTE = *** ** ** EEQL JSB COMPR COMPARE OPERANDS SZA = ? JMP FALSE NO JMP TRUE YES ** ** *** EXECUTE <= *** ** ** ELORE JSB COMPR COMPARE OPERANDS SSA >= ? JMP TRUE NO JMP EEQL+1 YES ** ** *** EXECUTE # OR <> *** ** ** ENEQL JSB COMPR COMPARE OPERANDS SZA # ? JMP TRUE NO JMP FALSE YES ** ** *** EXECUTE 'MAX' *** ** ** EMAX JSB BINOP SUBTRACT THE JSB #FSB TOP TWO OPERANDS SSA,RSS TOP OPERAND LARGER? JMP ARG1 NO ARG2 DLD BINO2,I YES, RETRIEVE JMP FOR14 ITS VALUE ** ** *** EXECUTE 'MIN' *** ** ** EMIN JSB BINOP SUBTRACT THE JSB #FSB TOP TWO OPERANDS SSA,RSS TOP OPERAND LARGER? rpl JMP ARG2 NO ARG1 ISZ OPDST YES, ISZ OPDST RETRIEVE LDB OPDST,I VALUE OF DLD 1,I NEXT-TO-TOP JMP FOR14+2 OPERAND ** ** *** EXECUTE 'AND' *** ** ** EAND JSB BINOP UNSTACK RSS OPERANDS SZA,RSS TOP OPERAND ZERO? JMP FALSE YES LDA BINO2,I NO, CHECK JMP ENEQL+1 NEXT-TO-TOP OPERAND ** ** *** EXECUTE 'OR' *** ** ** EIOR JSB BINOP UNSTACK RSS OPERANDS SZA TOP OPERAND NON-ZERO? JMP TRUE YES LDA BINO2,I NO, CHECK JMP ENEQL+1 NEXT-TO-TOP OPERAND ** ** *** EXECUTE 'NOT' *** ** ** ENOT JSB STTOP LOAD TOP OPERAND JMP EEQL+1 GO TO CHECK ** ** END |RrASMB,R,L,X NAM ERR1,7 SPC 2 ENT TAPER SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,BS1,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 SPC 2 EXT PBUFF,MOVER,LWAUS,SERR,WERRA,FERRA EXT SERRB,SCHLB,ERSTS EXT ABFLG SPC 2 TERR EQU .+>1 OPMSK OCT 77000 * * WHILE READING A PROGRAM IN 'TAPE' MODE, ERRONEOUS STATEMENTS * ARE REPLACED WITH ERROR PSUEDO-STATEMENTS. THESE ARE THREE * WORD 'STATEMENTS': THE STATEMENT NUMBER, THE LENGTH (ALWAYS * 3), AND THE ERROR NUMBER. SINCE BITS 15-9 ARE CLEAR IN WORD * THREE, ERRORS HAVE A STATEMENT TYPE OF 0. ERRCT HOLDS A * COUNT OF THE EMBEDDED ERRORS AND THE USER'S BIT OF TERR IS * SET IF ANY EMBEDDED ERRORS EXIST. ADDITIONALLY, THE 'OUT-OF- * STORAGE' ERROR SETS SYMTB = 1 TO ASSIST SYNTAX. ALL STATEMENTS * WITH A SEQUENCE NUMBER OF ZERO WILL BE COLLAPSED INTO A SINGLE * ERROR AND UNDER/OVERFLOWS IN NUMERICAL CONSTANTS ARE NOT * REPORTED. * ** ** *** OUTPUT TAPE MODE ERRORS *** ** ** * * UPON ENTRY ALL EMBEDDED ERRORS ARE STRIPPED FROM THE PROGRAM * AND STORED BELOW IT AS TWO-WORD QUANTITIES (THE LENGTH WORD * IS DROPPED). FOLLOWING THIS THE ERRORS ARE PRINTED ONE BY * ONE WITH LINE NUMBERS. AFTER PRINTING ALL ERRORS (OR, IF THE * USER ABORTS THE ERROR PRINTING, AFTER THE USER TYPES THE NEXT * LINE) EVERYTHING IS CLEANED UP AND A MESSAGE PRINTED TO SAY * THE LAST RECEIVED INPUT HAS BEEN IGNORED. * TAPER CLA FIRST CPA ERRCT ENTRY? JMP TAPE5 NO STA SYMTB YES, RESET 'OUT OF STORAGE' FLAG LDA PBPTR INITIALIZE STA SPTR JSB ERSTS LDB PBUFF PROGRAM STB DEST STB SOURC POINTERS * * ** STRIP OUT EMBEDDED ERRORS ** * * TAPE1 INB SET (B) LDA 1 TO FIRST WORD ADB 1,I OF NEXT ADB .-1 PROGRAM STATEMENT INA IS THE LDA 0,I CURRENT STATEMENT AND OPMSK OF TYPE SZA 'ERROR' ? JMP TAPE1 NO LDA SOURC YES, LOAD SOURCE ADDRESS STB SOURC SET SOURCE TO NEW VALUE q ADB .-3 JUXTAPOSED CPA 1 ERRORS? JMP TAPE2 YES, NO MOVE NEEDED CPA DEST NO, FIRST ERROR ENCOUNTERED? JMP TAPE6 YES JSB MOVER NO, DELETE PRIOR ERROR(S) TAPE2 LDB PBPTR ENOUGH STB TAP0 INB USER SPACE CPB LWAUS JMP TAPE7 TO TRANSFER INB CPB LWAUS ERROR? JMP TAPE7 NO STB PBPTR YES, APPEND TWO WORDS LDB 0,I TRANSFER STB TAP0,I LINE NUMBER ISZ TAP0 ADA .+2 TRANSFER LDB 0,I ERROR STB TAP0,I NUMBER LDB SOURC RETRIEVE POINTER TO STATEMENT CCA DECREMENT ADA ERRCT ERROR STA ERRCT COUNTER SZA ALL ERRORS DELETED? JMP TAPE1 NO CPB SPTR YES, PROGRAM REMAINING? JMP TAPE3 NO LDA SOURC YES, SLIDE UP LDB SPTR OVER LAST JSB MOVER ERROR(S) * * ** OUTPUT ERROR MESSAGES ** * * TAPE3 CLA,INA STA ABFLG LDA RETAD SET STA SERR RETURN ADDRESS LDA WERRA FAKE ADA FERRA CMA,INA 'WARNING ONLY' STA LT5 ERROR MODE TAPE4 CCB FORCE STB LT6 LINE NUMBER LDB SPTR,I MAKE LINE NUMBER OF STB .LNUM CURRENT ERROR ACCESSIBLE ISZ SPTR LOAD LDA SPTR,I ERROR NUMBER STA LT3 SAVE. JMP SERRB SPC 1 RETAD DEF *+1 LDA FERRA RESTORE CMA,INA 'WARNING ADA LT5 ONLY' STA LT5 MODE ISZ SPTR MORE LDA SPTR CPA PBPTR ERRORS? RSS NO JMP TAPE4 YES TAPE5 LDA DEST CORRECT POINTER TO STA PBPTR LAST WORD +1 OF PROGRAM LDA TERR TURN CMA ERROR Q AND MAIN,I FLAG STA MAIN,I OFF JSB RERRS+33,I EMIT PARTING SHOT * TAPE6 STB DEST SET DESTINATION POINTER LDA 1 TO FIRST ERROR ENCOUNTERED JMP TAPE2 TAPE7 STA TAP1 SAVE SOURCE ADDRESS CMA,INA COMPUTE SIZE OF AREA ADA DEST TO BE RECLAIMED STA TAP0 AND SAVE IT ADA SPTR RESET POINTER TO STA SPTR LAST WORD +1 OF PROGRAM LDB SOURC SET POINTER TO ADB TAP0 NEXT STATEMENT STB SOURC TO NEW VALUE LDA TAP1 RETRIEVE SOURCE ADDRESS LDB PBPTR RECLAIM JSB MOVER SPACE LDB DEST SET NEW POINTER TO STB PBPTR PROTECTED AREA LDA SOURC COMPUTE POINTER TO ADA .-3 CURRENT ERROR STATEMENT STA DEST SET NEW DESTINATION POINTER JMP TAPE2+1 END DASMB,R,L,X HED DECOMPILE ROUTINE NAM MISC1,7 SPC 2 ENT DCMPL,PRNS1,PRNS2,PRNSB,PRNSC,PRNST SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM SPC 2 EXT MLINB,PBUFF,MOVER,ABCHK,CM10B,CMPL7 SPC 2 OPMSK OCT 77000 DIMOP OCT 47000 COMOP OCT 45000 REMOP OCT 51000 DATOP OCT 62000 IMGOP OCT 44000 FILOP OCT 70000 MATOP OCT 67000 PRTOP OCT 65000 USEOP OCT 43000 B1000 OCT 1000 B EQU 1 CFLAG EQU .+2 ?LINK EQU 15B ** ** *** DECOMPILE ALL OR PART OF PROGRAM *** ** ** * * IF CFLAG[I] = 0 PROGRAM IS IN SOURCE, EXIT IMMEDIATELY; * ELSE SET CFLAG[I] = 0 AND DECOMPILE PROGRAM. SPTR POINTS * INITIALLY TO LAST WORD+1 OF COMPILED PROGRAM. ABSOLUTE * ADDRESSES ARE REPLACED BY THE SEQUENCE NUMBERS TO WHICH * THEY POINT. VARIABLE OPERAND POINTERS ARE REPLACED BY * THEIR SYMBOL. PBPTR IS SET TO LAST WORD+1 OF PROGRAM. * DCMPL NOP #DCMP LDA CFLAG PROGRAM LDB MLINB ADB .-?LINK AND 1,I COMPILED? SZA,RSS JMP DCMP4 NO XOR 1,I SET PROGRAM MODE STA 1,I TO 'UNCOMPILED' LDA PBPTR NULL CPA PBUFF PROGRAM? JMP DCMP3+2 YES LDA SPTR SPTR=0 TO FLAG SZA,RSS SEMI-COMPILED ? LDA SYMTB YES--RESET IT TO CORRECT VALUE STA SPTR SET TERMINATION STA FILTB ADDRESS JSB PRNST INITIALIZE DEF PRNS1 DECOMPILATX&ION CLB,SEZ,RSS WAS FLAG BIT SET? JMP DCMP2 NO * * ** PROCESS NON-VARIABLE OPERAND ** * * ADA .-4 PROGRAM SSA,RSS INTEGER? JMP PRNS2 NO DCMP1 ISZ SPTR YES, MOVE TO LDB SPTR NEXT WORD CPB FILTB DONE? JMP DCMP3 YES CPB NSPTR NO, STATEMENT DONE? JMP PRNS1+1 YES LDA SPTR,I NO, REPLACE LDA 0,I ABSOLUTE ADDRESS STA SPTR,I WITH SEQUENCE NUMBER ISZ INFST IN ? JMP DCMP1 NO JMP PRNS2 YES * * ** PROCESS VARIABLE OPERAND ** * * DCMP2 ADA .-1 COMPUTE CLE,ELA STA 1 ADB SYMTB ADDRESS LDA SPTR,I EXTRACT AND OPMSK OPERATOR IOR 1,I REPLACE OPERATOR- STA SPTR,I OPERAND PAIR IN CODE LDB STYPE CPB DIMOP 'DIM' ? JMP DCMP6 YES CPB COMOP NO, 'COM'? RSS YES JMP PRNS2 NO DCMP6 LDB SPTR INB CPB FILTB DONE? JMP DCMP3 YES INB NO AND .+17B STRING ADA .-4 SIMPLE SSA,RSS VARIABLE? JMP PRNS2 YES ADA .+4 NO, STRING SZA,RSS VARIABLE? INA YES, SET TO SINGLE SUBSCRIPT MODE JMP CM10B DCMP3 LDA SYMTB SET ACTIVE USER AREA POINTER STA PBPTR TO LAST WORD+1 OF PROGRAM CLA ZERO STA SYMTB POINTER DCMP4 STA DCLC1,I BLOCK CLOCK LDB PBUFF CPB SPROG COMMON ALLOCATED? JMP DCMP5 NO CPB PBPTR YES, NULL PROGRAM? JMP DCMP5 YES STB DEST NO LDA SPROG SET UP STB SPROG POINTERS LDB PBPTR FOR MOVE JSB MOVER REMOVE COMMON AREA LDB DEST RESET END-OF- STB PBPTR PROGRAM POINTER DCMP5 JSB ABCHK ABORT ATTEMPT DURING COMPILE? LDA DCLC2,I NO--UNBLOCK STA DCLC1,I CLOCK JMP DCMPL,I SKP ** ** *** PROCESS NEXT STATEMENT OF PROGRAM *** ** ** * * USED BY CMPLE AND DCMPL TO SCAN THROUGH THE PROGRAM. * A 'JSB PRNST' INITIALIZES THE SCAN: (P+1) IS A POINTER * TO THE CODE FOR HANDLING THE END-OF-STATEMENT CONDITION; * .LNUM HOLDS THE SEQUENCE NUMBER OF THE STATEMENT BEING * PROCESSED; SPTR POINTS TO THE WORD OF THE PROGRAM BEING * PROCESSED. PRNST HANDLES , , * STRING CONSTANTS, NULL OPERANDS, NUMERICAL CONSTANTS, AND * . OTHER CASES EXIT TO (P+2). PRNST IS * RE-ENTERED DIRECTLY, LEAVING THE INITIALIZED EXIT ADDRESSES * UNCHANGED THROUGHOUT PROCESSING OF THE PROGRAM. * PRNST NOP #PNST LDA PRNST,I SET POINTER TO STA STEND END-OF-STATEMENT ISZ PRNST PROCESSING ROUTINE LDA DFILT INITIALIZE POINTER TO STA FILPT TABLE CLA INITIALIZE STA COMSN COM FLAG STA USESN AND USING FLAG LDA .-5 INITIALIZE COUNTER LDB SPROG INITIAL PROGRAM POINTER PRNS1 STB SPTR SET PROGRAM POINTER TO STATEMENT LDA SPTR,I SAVE STATEMENT STA .LNUM SEQUENCE NUMBER ISZ SPTR COMPUTE ADB SPTR,I LENGTH STB NSPTR SAVE POINTER TO NEXT STATEMENT ISZ SPTR EXTRACT LDA SPTR,I STATEMENT AND OPMSK TYPE STA STYPE SAVE IT CPA COMOP 'COM' ? JMP *+3 YES STB COMSN NO--CLEAR COM FLAG. JMP PRNS4 LDB COMSN NON-COM SZB,RSS STATEMENT SEEN? JMP PRNS2+1 NO LDB SPTR YES, RESET ADB .-2  STATEMENT STB SPTR POINTER JSB DCMPL ERROR JSB RERRS+42,I 'COM' OUT OF ORDER PRNS4 CPA REMOP 'REM' ? JMP PRNS2+2 YES CPA DATOP NO, DATA? JMP PRNS2+2 YES CPA IMGOP NO, IMAGE? JMP PRNS2+2 YES CPA FILOP NO, ? RSS YES JMP PRNS5 NO LDB SPTR ADB .-2 ISZ FILCT TOO MANY ? JMP *+4 NO STB SPTR YES--RESET STATEMENT POINTER JSB DCMPL JSB RERRS+34,I EXTRA INB STB FILPT,I SAVE POINTER TO , * SIMPLE VARIABLES ARE COMPARED WITH THE PARAMETER AND * MATCHES ARE MARKED. * VAROP NOP #VROP JSB LTR LETTER? JMP VAROP,I NO, EXIT VIA (P+1) ISZ VAROP YES CPA .+50B '(' ? JMP VARO4 YES CPA BB133 NO, '[' ? JMP VARO4 YES CPA .+44B NO, '$' ? JMP VARO4 YES ISZ VAROP NO JSB DIGCK DIGIT NEXT? JMP VARO1 NO LDA TEMP+1 YES, LOAD LETTER, ADB .+48 RESTORE DIGIT, STB TEMP+1 ϵ AND RECORD JSB STROP SIMPLE VARIABLE JSB GETCR FETCH NOP AND SAVE STA TEMP+2 NEXT JMP VARO2 CHARACTER VARO4 JSB STRID RECORD ARRAY OR STRING VARIABLE JSB SBSCK FETCH THE SUBSCRIPT RSS NO SUBSCRIPT JMP VAROP,I EXIT VIA (P+2) LDB VAROP WAS VAROP CALLED FOR CPB DCOM0 DIM OR COM SYNTAX? JSB SERRS+5,I YES--ERROR JMP VAROP,I NO--EXIT VARO1 LDA TEMP+1 RETRIEVE LETTER, LDB .+57B SET 'NO DIGIT', JSB STROP AND RECORD LDA TEMP+2 SIMPLE VARIABLE VARO2 CLB INSIDE A CPB PFLAG 'DEF' STATEMENT? JMP VAROP,I NO, EXIT VIA (P+3) CCB YES, ADB SBPTR ISOLATE LDA 1,I LATEST AND B777 OPERAND CPA PFLAG IS IT THE PARAMETER? JMP *+3 YES VARO3 LDA TEMP+2 NO, RETRIEVE CHARACTER JMP VAROP,I AND EXIT VIA (P+3) LDA 1,I FLAG IOR FLGBT OPERAND STA 1,I AS JMP VARO3 PARAMETER ** ** *** PROCESS CHARACTER STRING *** ** ** * * UPON ENTRY (A) CONTAINS THE STRING DELIMITER AND (B) * INDICATES WHETHER THE FIRST CHARACTER IS TO BE STORED * IN THE LOWER HALF OF THE CURRENT BUFFER WORD ( (B) = 1) * OR THE UPPER HALF OF THE NEXT BUFFER WORD ( (B) = 0). * EXIT TO (P+1) ON EMPTYING THE INPUT STRING. EXIT TO * (P+2) ON FINDING THE STRING DELIMITER. BLANKS ARE NOT * STRIPPED OUT OF THE INPUT STRING IF (A) # 0 UPON ENTRY. UPON * EXIT SBPTR POINTS TO THE FIRST BUFFER WORD NOT CONTAINING PART OF * THE STRING WHILE TEMP+1 CONTAINS A COUNT OF THE STRING * CHARACTERS BIASED BY THE VALUE OF (B) UPON ENTRY. * CHRST NOP #CRST STB TEMP+1 SET CHARACTER FLAG AND COUNTER STA TEMP+2 NOTE TERMINATOR CHARACTER LDB .+10 IF (A) # 0 SZfdA STOP BLANK STB BLANK SUPPRESSION CHRS1 JSB GETCR FETCH CHARACTER JMP CHRS3+1 NONE FOUND LDA B ALLOW LOWER CASE CPA TEMP+2 TERMINATOR? JMP CHRS3 YES LDB TEMP+1 NO, COUNT CHARACTER SLB,INB AND SELECT WORD HALF JMP CHRS2 LOW HALF JSB SBPUD HIGH HALF, MOVE TO NEXT WORD ALF,SLA,ALF POSITION CHARACTER AND SKIP CHRS2 IOR SBPTR,I COMBINE WITH PREVIOUS CHARACTER STA SBPTR,I STB TEMP+1 SAVE FLAG/COUNTER JMP CHRS1 CHRS3 ISZ CHRST SET EXIT TO (P+2) JSB SBPUD ADVANCE POINTER LDB .+40B RESTORE BLANK STB BLANK SUPPRESSION JMP CHRST,I SKP ** ** *** DELETE SOME PROGRAM *** ** ** * * THAT PART OF THE PROGRAM REFERENCED BY CORE LOCATIONS * (TEMP+1)+(A) THROUGH (TEMP+1)+(B)-1 INCLUSIVE IS * DELETED BY SLIDING UP ALL OF THE PROGRAM FROM * (TEMP+1)+(B) TO (PBPTR)-1 (I.E., THE REST OF THE * PROGRAM FOLLOWING THE 'GAP'). PBPTR IS THEN * UPDATED TO POINT TO LAST WORD +1 OF THE PROGRAM. * DELPR NOP #DLPR ADA TEMP+1 COMPUTE INITIAL STA TEMP+2 DESTINATION ADDRESS ADB TEMP+1 COMPUTE INITIAL SOURCE ADDRESS DELP1 CPB PBPTR DONE? JMP DELP2 YES LDA 1,I NO, TRANSFER STA TEMP+2,I A WORD ISZ TEMP+2 BUMP INB POINTERS JMP DELP1 DELP2 LDA TEMP+2 UPDATE STA PBPTR END-OF-PROGRAM JMP DELPR,I POINTER ** ** *** FIND A STATEMENT'S SEQUENTIAL POSITION *** ** ** * * UPON ENTRY (A) POINTS TO THE LAST WORD+1 OF THE PROGRAM * AND (B) HOLDS A SEQUENCE NUMBER. IF (B) IS LARGER THAN * ANY SEQUENCE NUMBER IN THE PROGRAM, EXIT TO (P+1) WITH * (B) POINTING TO THE LAST WORD+1 OF THE PROGRAM. IF (B) * FALLS BETWEEN TWO S EQUENCE NUMBERS, EXIT TO (P+2) WITH * (B) POINTING TO THE STATEMENT WITH A LARGER SEQUENCE * NUMBER. IF A STATEMENT IN THE PROGRAM HAS THE SEQUENCE * NUMBER IN (B), EXIT TO (P+3) WITH (B) POINTING TO THIS * STATEMENT (IF IT IS AN EMBEDDED ERROR MESSAGE, STATEMENT * TYPE = 0, DECREMENT THE ERROR COUNT). IN ALL CASES TEMP+1 * = (B) UPON EXIT. * FNDPS NOP #FDPS STB TEMP+1 SAVE TEST SEQUENCE NUMBER STA TEMP+3 SAVE TERMINATION POINTER LDB SPROG START WITH FIRST WORD OF PROGRAM FNDP1 CPB TEMP+3 PROGRAM EXHAUSTED? JMP FNDP3+2 YES, EXIT TO (P+1) LDA 1,I NO, IS CMA,INA PROGRAM ADA TEMP+1 SEQUENCE NUMBER SZA,RSS THE SAME? JMP FNDP2 YES, EXIT TO (P+3) SSA NO, GREATER? JMP FNDP3+1 YES, EXIT TO (P+2) LDA B NO, CHECK INA STATEMENT LDA A,I LENGTH AND ADB A SET (B) TO JSB STLCK POINT TO NEXT JMP FNDP1 STATEMENT FNDP2 LDA 1 LOAD ADA .+2 STATEMENT LDA 0,I ERROR AND OPMSK SZA STATEMENT? JMP FNDP3 NO CCA YES, ADA ERRCT DECREMENT STA ERRCT ERROR COUNT SZA ONLY ERROR? JMP FNDP3 NO LDA TERR YES-- CMA SET FLAG AND MAIN,I TO SAY STA MAIN,I 'NO EMBEDDED ERRORS' FNDP3 ISZ FNDPS ISZ FNDPS STB TEMP+1 SAVE POINTER TO JMP FNDPS,I FINAL STATEMENT SEEN ** ** *** FETCH PARENTHESIZED FORMULA *** ** ** * * AN END-OF-FORMULA OPERATOR FOLLOWS THE FORMULA * GETPF NOP #GTPF LDB .+5 SAVE FSC JSB FRCUR LOCAL VARIABLES JSB SBPUD UPDATE POINTER JSB GETCR RECORD JSB SERRS+22,I LEFT JSB LPCK [PARENTHESIS JSB FSC DEMAND FORMULA JSB SBPUD RECORD END-OF-FORMULA OPERATOR JSB RPCK RECORD RIGHT PARENTHESIS JSB FPOP RESTORE FSC JMP GETPF,I LOCAL VARIABLES ** ** *** RECORD AN INTEGER *** ** ** * * PRGIN FLAGS THE PREVIOUS OPERATOR TO SAY 'INTEGER FOLLOWS'. * STORE THE INTEGER AND EXIT WITH IT IN (B) AND THE FOLLOWING * CHARACTER IN (A). * PRGIN NOP #PGIN LDA SBPTR,I SET IOR INTFL 'INTEGER FOLLOWS' STA SBPTR,I FLAG JSB SBPUD ADVANCE POINTER JSB BLDIN BUILD INTEGER STB SBPTR,I RECORD INTEGER JSB SBPUD ADVANCE POINTER PGINB JMP PRGIN,I END dYASMB,R,L,X HED SYNTAX PROCESSOR DATA NAM SYNP9,7 SPC 2 ENT QUOTE,COMMB,SEMIB,HATCB,UNMNC,UNPLC,RBOP ENT FN,TO,OF,RPARB,LBRAB,SCMMB,ASSOB,PLUSB ENT TIMEB,RELOB,MATFN,MATIO,LENCN,USTMA,ATHEN ENT ANOT,ATAB,AEND,ASTEP,MCBOS,MRELS,STTYP ENT PRDFS,NOT,USTMT,EOFOP,IOSTS,THEN,STEP,TAB ENT MATFS,MCBOP,PDFNS,MCREL ENT FOPBS SPC 2 ** ** *** SINGLE CHARACTER AND/OR FORMULA OPERATORS *** ** ** * * BITS 15-9 OF THE OCTAL WORD ARE THE OPERATOR CODE. * BITS 3-0 ARE THE PRECEDENCE FOR FORMULA OPERATORS. * THE ASCII WORD IS USED TO RECOGNIZE THE OPERATOR ON * INPUT AND TO PROVIDE THE PRINT NAME ON OUTPUT. THE * ORDERING OF THE TABLE FACILITATES SEARCHING. * BSS 2 QUOTE OCT 1000 STRING DELIMITER ASC 1," COMMA OCT 2000 COMMA ASC 1,, SEMI OCT 3000 SEMICOLON ASC 1,; HATCH OCT 4000 HATCH SIGN ASC 1,# UNMNC OCT 15000 UNPLC OCT 14000 RBOP OCT 11000 FN ASC 1,NF TO ASC 1,TO OF ASC 1,OF RPARN OCT 10001 RIGHT PARENTHESIS ASC 1,) OCT 11001 RIGHT BRACKET ASC 1,] LBRAC OCT 12013 LEFT BRACKET ASC 1,[ OCT 13013 LEFT PARENTHESIS ASC 1,( OCT 14011 UNARY PLUS ASC 1,+ OCT 15011 UNARY MINUS ASC 1,- SCMMA OCT 16002 SUBSCRIPT SEPARATOR ASC 1,, ASSOP OCT 17002 ASSIGNMENT OPERATOR ASC 1,= PLUS OCT 20007 ADDITION ASC 1,+ OCT 21007 SUBTRACTION ASC 1,- TIMES OCT 22010 MULTIPLICATION ASC 1,* OCT 23010 DIVISION ASC 1,/ OCT 24012 EXPONENTIATION ASC 1,^ RELOS OCT 25005 GREATER THAN ASC 1,> OCT 26005 LESS THAN ASC 1,< OCT 27005 UNEQUAL ASC 1,# OCT 30005 EQUAL ASC 1,= MATFN DEF MATFS MAKTIO DEF IOSTS OCT 32004 AND LENCN OCT 100337 OCT 33003 OR USTMA DEF USTMT OCT 34006 MINIMUM AEND DEF EOFOP OCT 35006 MAXIMUM ATHEN DEF THEN OCT 36005 UNEQUAL ANOT DEF NOT OCT 37005 GREATER THAN OR EQUAL ATAB DEF TAB OCT 40005 LESS TAAN OR EQUAL ASTEP DEF STEP OCT 41011 NOT FOPBS DEF QUOTE-2 COMMB EQU COMMA-1 SEMIB EQU SEMI-1 HATCB EQU HATCH-1 RPARB EQU RPARN-1 LBRAB EQU LBRAC-1 SCMMB EQU SCMMA-1 ASSOB EQU ASSOP-1 PLUSB EQU PLUS-1 TIMEB EQU TIMES-1 RELOB EQU RELOS-1 HED PRINT NAME TABLE ** ** *** PRINT NAME TABLE FOR MULTICHARACTER SYMBOLS *** ** ** * * BITS 15-9 OF THE 'OCT' WORD ARE THE BASIC OPERATOR * CODES OF THE SYMBOLS. BITS 2-0 ARE THE LENGTH IN * CHARACTERS OF THE SYMBOLS. THE ASCII VERSION (PRINT * NAME) FOLLOWS. * * * ** MULTICHARACTER BINARY OPERATORS ** * * MCBOS OCT 32003 AND ASC 1,AN OCT 42000 OCT 33002 OR ASC 1,OR OCT 34003 MIN ASC 1,MI OCT 47000 OCT 35003 MAX ASC 1,MA OCT 54000 MRELS OCT 36002 UNEQUAL ASC 1,<> OCT 37002 GREATER THAN OR EQUAL ASC 1,>= OCT 40002 LESS THAN OR EQUAL ASC 1,<= * * ** MULTICHARACTER UNARY OPERATOR ** * * NOT OCT 41003 ASC 1,NO OCT 52000 * * ** STATEMENT TYPES ** * * STYPS OCT 42006 ASSIGN ASC 3,ASSIGN USTMT OCT 43005 USING ASC 2,USIN OCT 43400 OCT 44005 IMAGE ASC 2,IMAG OCT 42400 OCT 45003 COM ASC 1,CO OCT 46400 OCT 46003 LET ASC 1,LE OCT 52000 V OCT 47003 DIM ASC 1,DI OCT 46400 OCT 50003 DEF ASC 1,DE OCT 43000 OCT 51003 REM ASC 1,RE OCT 46400 OCT 52004 GOTO ASC 2,GOTO OCT 53002 IF ASC 1,IF OCT 54003 FOR ASC 1,FO OCT 51000 OCT 55004 NEXT ASC 2,NEXT OCT 56005 GOSUB ASC 2,GOSU OCT 41000 OCT 57006 RETURN ASC 3,RETURN EOFOP OCT 60003 END ASC 1,EN OCT 42000 OCT 61004 STOP ASC 2,STOP OCT 62004 DATA ASC 2,DATA IOSTS OCT 63005 INPUT ASC 2,INPU OCT 52000 OCT 64004 READ ASC 2,READ OCT 65005 PRINT ASC 2,PRIN OCT 52000 OCT 66007 RESTORE ASC 3,RESTOR OCT 42400 OCT 67003 MAT ASC 1,MA OCT 52000 OCT 70005 FILES ASC 2,FILE OCT 51400 OCT 71005 CHAIN ASC 2,CHAI OCT 47000 OCT 72005 ENTER ASC 2,ENTE OCT 51000 OCT 73001 'IMPLIED' LET OCT 0 * * ** MISCELLANEOUS OPERATORS ** * * OCT 74002 OF ASC 1,OF THEN OCT 75004 ASC 2,THEN OCT 76002 TO ASC 1,TO STEP OCT 77004 ASC 2,STEP * * ** PREDEFINED FUNCTIONS. BITS 13-9 ARE USED ** ** FOR INTERNAL IDENTIFICATION ** * * TAB OCT 1003 TAB ASC 1,TA OCT 41000 OCT 2003 LIN ASC 1,LI OCT 47000 OCT 3003 SPA ASC 1,SP OCT 40400 PRDFS OCT 4003 TAN ASC 1,TA OCT 47000 OCT 5003 ATN ASC 1,AT OCT 47000 OCT 6003 EXP ASC 1,EX OCT 50000 OCT 7003 LOG ASC 1,LO OC<T 43400 OCT 10003 ABS ASC 1,AB OCT 51400 OCT 11003 SQR ASC 1,SQ OCT 51000 OCT 12003 INT ASC 1,IN OCT 52000 OCT 13003 RND ASC 1,RN OCT 42000 OCT 14003 SGN ASC 1,SG OCT 47000 OCT 15003 LEN ASC 1,LE OCT 47000 OCT 16003 TYP ASC 1,TY OCT 50000 OCT 17003 TIM ASC 1,TI OCT 46400 OCT 20003 SIN ASC 1,SI OCT 47000 OCT 21003 COS ASC 1,CO OCT 51400 OCT 22003 BRK ASC 1,BR OCT 45400 * * ** MATRIX FUNCTIONS ** * * MATFS OCT 24003 ZER ASC 1,ZE OCT 51000 OCT 25003 CON ASC 1,CO OCT 47000 999999 OCT 26003 IDN 9999 ASC 1,ID OCT 47000 OCT 27003 INV ASC 1,IN OCT 53000 OCT 30003 TRN ASC 1,TR OCT 47000 STTYP DEF STYPS MCBOP DEF MCBOS MCREL DEF MRELS PDFNS DEF PRDFS END ASMB,R,L,X HED STATENENT SYNTAX PROCESSORS NAM SYNP3,7 SPC 2 ENT MATS,RSTRS,FILES,REMS,CHANS,USINS,ASNS ENT ENTRS SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN SPC 2 EXT LTR,MATIO,RECRF,BCKSP,TBSRH,EOST,LPCK,RPCK EXT GETPF,TIMEB,PLUSB,PRGIN,CHRST,RSTOP,FSC EXT ARRID,SBSCK,ACCST,SYMCK,COMMB,SBPUD,GETCR EXT USTCK,SEMIB,PFSRH,FILRF,STROP,ASSOB,MATFN EXT VAROP EXT LETCK,HATCB SPC 2 LETOP OCT 73000 PRTOP OCT 65000 INPOP OCT 63000 B73 OCT 73 B777 OCT 777 D577 OCT -577 MULOP OCT 22000 PDFFL OCT 100017 * *** ** ** SYNTAX ** *** ** * MATS JSB LTR FIRST TWO JSB SERRS+18,I CHARACTERS JSB LETCK LETTERS? JMP MATS3 NO ISZ SBPTR YES, ALF,ALF RETRIEVE IOR TEMP+1 FIRST CHARACTER STA SBPTR,I LOOK LDA .+5 FOR STA MAXCR 'INPUT', LDA MATIO 'READ', LDB .-3 OR JSB TBSRH 'PRINT' JSB SERRS+18,I NONE FOUND CPA PRTOP IS IT 'PRINT'? JMP MATS2 YES CPA INPOP NO, 'INPUT' ? JMP MATS1-2 YES JSB RECRF NO, READ FROM FILE? JMP MATS1-3 NO CPA B73 YES, ';' ? JMP MATS1-2 YES JSB SERRS+6,I NO JSB BCKSP CLA,INA TURN ON STA DFLAG 'MATRIX SUBSCRIPT' MODE MATS1 JSB ARRID RECORD AN ARRAY JSB SBSCK RECORD SUBSCRIPT NOP IF PRESENT CPA .+15B END OF STATEMENT? JMP ACCST YES CCB NO, DEMAND JSB SYMCK COMMA DEF COMMB JSB SERRS+6,I NOT FOUND JMP MATS1 MATS2 JSB vBSBPUD ADVANCE SYNTAX BUFFER POINTER JSB GETCR FETCH NEXT CHARACTER JSB SERRS+6,I NONE FOUND JSB USTCK CHECK FOR USING STATEMENT JMP MAT13 NONE FOUND CPA .+15B CARRIAGE RETURN ? JMP ACCST YES CCB SEMI- JSB SYMCK COLON DEF SEMIB FOLLOWS? JSB SERRS+34,I NO MAT12 JSB SBPUD ADVANCE SYNTAX BUFFER POINTER JSB GETCR FETCH NEXT CHARACTER JSB SERRS+6,I NONE FOUND STA SBPTR,I SAVE CHARACTER JSB PFSRH SEARCH FOR PRINT FUNCTION RSS FOUND JSB ARRID RECORD AN ARRAY CPA .+15B CARRIAGE RETURN FOLLOWS? JMP ACCST YES CCB NO, JSB SYMCK COMMA? DEF COMMB JSB SERRS+6,I NO, ERROR JMP MAT12 YES MAT13 JSB RECRF WRITE ON FILE? JMP MAT11 NO CPA B73 YES, ';' ? CCB,RSS YES JSB SERRS+6,I NO STB FILRF NOTE 'FILE' MODE MAT10 JSB ARRID RECORD AN ARRAY CPA .+15B END OF STATEMENT? JMP ACCST YES LDB .-2 NO, DEMAND JSB SYMCK COMMA OR DEF COMMB SEMICOLON JSB SERRS+6,I NOT FOUND JSB GETCR END OF STATEMENT? JMP *+3 YES MAT11 JSB BCKSP NO JMP MAT10 JSB SBPUD UPDATE POINTER ISZ FILRF 'FILE' MODE? JMP ACCST NO JSB SERRS+2,I YES MATS3 LDB SBPTR SAVE ADDRESS STB ARYAD OF ARRAY OPERAND LDA TEMP+1 RECORD STA SSTAK,I AND SAVE LDB .+46 THE ARRAY JSB STROP IDENTIFIER LDA TEMP+2 RETRIEVE CCB NEXT CHARACTER JSB SYMCK AND TEST FOR DEF ASSOB ASSIGNMENT OPERATOR JSB SERRS+3,I NOT FOUND JSB LTR LETTER NEXT? JMP MATS5 NO JSB LETCK YES, ANOTHER LETTER? JMP MATS6 NO ISZ SBPTR YES,  ALF,ALF CONCATENATE IOR TEMP+1 LETTERS STA SBPTR,I AND LDA MATFN SEARCH FOR LDB .-5 AN ARRAY JSB TBSRH FUNCTION JSB SERRS+7,I NONE FOUND ALF,ALF FOUND, ALF,RAR CONVERT IOR PDFFL TO OPERAND CCB COMBINE ADB SBPTR WITH IOR 1,I OPERATOR STA 1,I AND RECORD AND B777 'INV' ADA D577 OR SSA,RSS 'TRN' ? JMP MATS4 YES JSB GETCR NO, END OF STATEMENT? JMP ACCST YES CLB,INB NO, TURN ON STB DFLAG 'MATRIX SUBSCRIPT' MODE JSB SBSCK DEMAND SUBSCRIPT JSB SERRS+5,I NONE FOUND JMP EOST DEMAND END OF STATEMENT MATS4 SZA,RSS ALLOW INVERSION STA SSTAK,I INTO SELF JSB GETCR DEMAND JSB SERRS+22,I LEFT JSB LPCK PARENTHESIS JSB ARRID DEMAND ARRAY JSB RPCK DEMAND RIGHT PARENTHESIS LDB TEMP+1 SAME SOURCE AND CPB SSTAK,I DESTINATION ARRAYS? JSB SERRS+19,I YES JMP EOST NO, DEMAND END OF STATMENT MATS5 JSB BCKSP BACK UP AND JSB GETPF DEMAND PARENTHESIZED FORMULA CCB SEEK JSB SYMCK DEF TIMEB '*' JSB SERRS+20,I NOT FOUND JSB ARRID DEMAND ARRAY JMP EOST DEMAND END OF STATEMENT MATS6 LDA TEMP+1 RECORD LDB .+46 ARRAY JSB STROP OPERAND LDA TEMP+2 END OF CPA .+15B STATEMENT? JMP ACCST YES LDB .-3 NO, SEEK JSB SYMCK '+', '-', DEF PLUSB OR '*' JSB SERRS+21,I NOT FOUND CLB SET '*' FLAG TO FALSE CPA MULOP '*' ? JMP MATS9 YES MATS7 STB PFLAG NO JSB ARRID DEMAND ARRAY STA TEMP+2 SAVE CHARACTER ISZ PFLAG '*' ? JMP MATS8 NO LDA TEMP+1 YES, DOES ARRAY CPA SSTAK,I MATCH LEFT-HAND SIDE? JSB SERRS+19,I YES MATS8 LDA TEMP+2 NO, RETRIEVE CHARACTER JMP EOST DEMAND END OF STATEMENT MATS9 CCB SET '*' FLAG TO TRUE LDA TEMP+1 DOES ARRAY CPA SSTAK,I MATCH LEFT-HAND SIDE? JSB SERRS+19,I JMP MATS7 NO *** ** ** SYNTAX ** *** ** * RSTRS JSB GETCR END OF STATEMENT? JMP RSTR1 YES JSB BCKSP NO, DEMAND JSB PRGIN SEQUENCE NUMBER JMP EOST DEMAND END OF STATEMENT RSTR1 ISZ SBPTR RECORD DUMMY OPERAND JMP ACCST * *** ** ** SYNTAX ** *** ** * FILES CLA,RSS SUPPRESS BLANKS * *** ** ** SYNTAX ** *** ** * REMS LDA .+15B DUMMY STATEMENT TERMINATOR CLB,INB SET CHARACTER FLAG TO 'LOW HALF' JSB CHRST RECORD REMAINDER OF STATEMENT JMP ACCST AS A STRING *** ** ** SYNTAX ** *** ** * CHANS JSB RSTOP REQUEST STRING OPERAND CCB JSB SYMCK COMMA FOLLOWS? DEF COMMB A COMMA? JMP EOST NO, DEMAND END OF STRING CLB DISALLOW STB SFLAG STRING VARIABLES JSB FSC GET A FORMULA FOR LINE NO. JMP EOST DEMAND END OF STATEMENT * *** ** ** SYNTAX ** *** ** * ENTRS JSB GETCR FETCH FIRST CHARACTER JSB SERRS+35,I NONE FOUND ISZ SBPTR CCB JSB SYMCK FIRST CHARACTER A '#'? DEF HATCB JMP ENTR1 NO JSB VAROP YES, SEEK SIMPLE VARIABLE JSB SERRS+35,I NONE FOUND NOP V CPA .+15B CR FOLLOWS? JMP ACCST YES, ACCEPT STATMENT CCB NO JSB SYMCK COMMA? DEF COMMB JSB SERRS+6,I NO JMP ENTR2 ENTR1 EQU * JSB BCKSP BACKUP ONE CHARACTER CCB RESTORE ADB SBPTR BUFFER STB SBPTR POINTER ENTR2 EQU * JSB FSC DEMAND A FORMULA CCB JSB SYMCK COMMA FOLLOWS? DEF COMMB JSB SERRS+6,I NO JSB VAROP DEMAND A SIMPLE VARIABLE JSB SERRS+35,I NONE FOUND NOP CCB JSB SYMCK COMMA FOLLOWS? DEF COMMB JSB SERRS+6,I NO LDB SBPTR YES, ENABLE STB SFLAG STRING VARIABLE JSB VAROP SEEK VARIABLE OPERAND JSB SERRS+35,I NONE FOUND NOP JMP EOST DEMAND END OF STATEMENT * *** ** ** SYNTAX ** *** ** * USINS JSB SERRS+33,I USING ILLEGAL AS FIRST WORD * *** ** ** SYNTAX ** *** ** * ASNS JSB RSTOP CCB JSB SYMCK RECORD DEF COMMB A COMMA JSB SERRS+6,I NOT A COMMA LDB .+2 DISABLE STB SFLAG STRING VARIABLE JSB FSC RECORD FORMULA ASNS4 CCB JSB SYMCK RECORD DEF COMMB A COMMA JSB SERRS+6,I NOT A COMMA JSB VAROP SEEK A NUMERIC OPERAND JSB SERRS+35,I NONE FOUND NOP CCB JSB SYMCK COMMA DEF COMMB NEXT? RSS JSB RSTOP DEMAND A STRING OPERAND JMP EOST DEMAND END OF STATEMENT END ASMB,R,L,X HED SYNTAX PROCESSOR SUBROUTINES NAM SYNP4,7 SPC 2 ENT FSC,FRCUR,FPOP SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG SPC 2 EXT VAROP,LETCK,MCBOP,TBSRH,FN,PDFNS EXT LENCN,GETPF,GETCR,LPCK,LTR EXT STROP,RPCK,SBPUD,NUMCK EXT UNMNC,UNPLC,ANOT,SYMCK,RPARB,PLUSB,ASSOB EXT LWAUS SPC 2 OPMSK OCT 77000 PDFFL OCT 100017 D100 OCT -100 B133 OCT 133 MNEG OCT 100000 RPOP OCT 10000 EXPOP OCT 24000 FLGBT EQU MNEG LPOP OCT 13000 HED FORMULA SYNTAX CHECKER * *** ** ** SYNTAX CHECKER ** *** ** * * * FSC ANALYZES THE INPUT STRING UNDER THE ASSUMPTION * THAT A LEGITIMATE FORMULA IS THERE. EXIT TO ERROR ON * UNRECOGNIZABLE OR OBVIOUSLY INCORRECT INPUT. EXIT TO * (P+1) WHEN CONTINUED INPUT CANNOT BE A PART OF THE * FORMULA AND THE INPUT SCANNED SO FAR FORMS A COMPLETE * FORMULA IN ITSELF (I.E., ... A+B TO ... EXITS AFTER * THE 'B'). ON EXIT (A) HOLDS THE FIRST CHARACTER NOT * PARSED INTO THE FORMULA, (B) = 0, AND SBPTR,I = 0 * (END-OF-FORMULA OPERATOR). DURING THE FORMULA PARSE, * SSTAK,I HOLDS THE COUNT OF UNMATCHED LEFT PARENTHESES. * IF THE FIRST SYMBOL ENCOUNTERED IS A STRING VARIABLE, * EXIT TO ERROR IF IT IS NOT ENABLED ELSE RECORD THE * VARIABLE AND ANY FOLLOWING SUBSCRIPT AND EXIT TO (P+1) * WITH THE NEXT CHARACTER IN (A), (B) = -1, AND SFLAG = -1. * FSC NOP #FSC CLA SET LEFT PARENTHESIS STA SSTAK,I COUNT TO ZERO LDA .+3 SET MULTICHARACTER SEARCH STA MAXCR TO MAXIMUM OF 3 CHARACTERS FSC1 CCA ENABLE STA UFLAG UNARY OPERATORS * * ** LOOK FOR AN OPERAND ** * * FSC2 JSB VAROP $ SEEK VARIABLE OPERAND JMP FSC7 FIRST CHARACTER NOT A LETTER JMP FSC13-3 SUBSCRIPTED OR STRING VARIABLE JSB LETCK SIMPLE VARIABLE. LETTER NEXT? JMP FSC13 NO * * ** DOES 'AND', 'OR', 'MAX', OR 'MIN' FOLLOW ** ** A SIMPLE VARIABLE? ** * * LDB .-4 STA SBPTR,I SEARCH FOR LDA MCBOP 'AND', 'OR', JSB TBSRH 'MAX', AND 'MIN' RSS NONE FOUND JMP FSC6 FOUND * * ** SEE IF OPERAND IS A FUNCTION RATHER ** ** THAN A SIMPLE VARIABLE. ** * * LDA TEMP+2 ALF,ALF WERE IOR TEMP+1 TWO LETTERS CPA FN 'FN' ? JMP FSC4 YES STA SBPTR,I NO, LDA PDFNS PREDEFINED LDB .-15 JSB TBSRH JMP FSC11 NO ALF,ALF YES, ALF,RAR BUILD IOR PDFFL NAME FSC3 STA TEMP+1 SAVE FUNCTION CCB RETRIEVE ADB SBPTR PREVIOUS STB SBPTR OPERATOR- LDA 1,I OPERAND AND OPMSK REPLACE IOR TEMP+1 OPERAND STA SBPTR,I WITH FUNCTION LDA TEMP+1 CPA LENCN 'LEN' ? JMP FSC0 YES LDB .-9 NO, TURN OFF STB MSFLG 'MULTIPLE STORE' MODE JSB GETPF DEMAND PARENTHSIZED JMP FSC13 FORMULA FSC4 JSB GETCR DOES JSB SERRS+7,I LETTER JSB LETCK FOLLOW? JSB SERRS+7,I NO ADA D100 YES, ALF BUILD ADA .+17B FUNCTION JMP FSC3 NAME FSC0 ISZ SBPTR MOVE TO CORRECT PROGRAM WORD JSB GETCR RECORD JSB SERRS+22,I LEFT JSB LPCK PARENTHESIS JSB LTR LETTER NEXT? JSB SE!RRS+24,I NO CPA .+44B YES, FOLLOWED BY '$' ? RSS YES JSB SERRS+24,I NO LDA TEMP+1 RECORD LDB .+53B STRING JSB STROP VARIABLE JSB GETCR RECORD JSB SERRS+23,I RIGHT JSB RPCK PARENTHESIS JMP FSC8 * * ** CHECK FOR LEFT PARENTHESIS ** * * FSC5 LDA LPOP RECORD STA SBPTR,I A '(' ISZ SSTAK,I COUNT IT FSC6 LDB .-9 TURN OFF STB MSFLG 'MULTIPLE STORE' JMP FSC1 MODE FSC7 JSB SBPUD UPDATE POINTER CPA .+40 '(' ? JMP FSC5 YES CPA B133 NO, '[' ? JMP FSC5 YES * * ** CHECK FOR A NUMBER ** * * CLB SET '+' STB SIGN AS SIGN JSB NUMCK SEEK A NUMBER JMP FSC9 NOT FOUND JSB SERRS+14,I BAD EXPONENT LDB SBPTR RETRIEVE ADB .-3 PRECEDING LDA 1,I OPERATOR IOR FLGBT SET FLAG TO SAY STA 1,I NUMBER FOLLOWS LDA TEMP+1 RETRIEVE CHARACTER FSC8 LDB .-9 TURN OFF STB MSFLG 'MULTIPLE STORE' JMP FSC13 MODE * * ** CHECK FOR A UNARY OPERATOR ** * * FSC9 ISZ UFLAG UNARY OPERATORS PERMITTED? JSB SERRS+25,I NO LDB UNMNC YES LOAD UNARY MINUS OPCODE CPA .+43 '+' ? JMP *+4 YES CPA .+45 NO, '-' ? JMP *+3 YES JSB SERRS+25,I NO LDB UNPLC CONVERT (B) TO UNARY '+' OPCODE STB SBPTR,I RECORD UNARY OPERATOR FSC10 LDB .-9 TURN OFF STB MSFLG 'MULTIPLE STORE' JMP FSC2 MODE * * ** CHECK POSSIBILITY OF 'NOT' RATHER THAN ** ** A SIMPLE VARIABLE ** *  * FSC11 ISZ UFLAG 'NOT' PERMITTED? JMP FSC14-1 NO LDA SBPTR,I YES ALF,ALF STA SBPTR,I LDA ANOT SEEK CCB JSB TBSRH 'NOT' JMP FSC14-1 'NOT' NOT FOUND STA SBPTR,I FOUND CCB ERASE ADB SBPTR LDA 1,I SPURIOUS AND OPMSK STA 1,I OPERAND JMP FSC10 * * ** CHECK FOR RIGHT PARENTHESIS ** * * FSC12 LDB .-2 ')' JSB SYMCK OR DEF RPARB ']' ? JMP FSC14 NO LDA RPOP YES, STA SBPTR,I RECORD ')' LDA .+41 RETRIEVE ')' CCB MATCHING ADB SSTAK,I LEFT SSB PARENTHESIS? JMP FSC14 NO STB SSTAK,I YES JSB SBPUD UPDATE POINTER JSB GETCR FETCH NEXT JMP FSC14 CHARACTER JMP FSC13 * * ** CHECK FOR A BINARY OPERATOR ** * * CCB STRING VARIABLE CPB SFLAG JUST FOUND? JMP FSC,I YES FSC13 CPA .+15B NO, END OF STATEMENT? JMP FSC14 YES STA UFLAG NO, DISABLE UNARY OPERATORS STA TEMP+1 SAVE CHARACTER LDB .-7 SEARCH STA SBPTR,I FOR A LDA MCBOP MULTICHARACTER JSB TBSRH BINARY OPERATOR RSS NONE FOUND JMP FSC6 FOUND LDA TEMP+1 NO, RECOVER A CHARACTER LDB MSFLG SINGLE JSB SYMCK CHARACTER DEF PLUSB BINARY OPERATOR? JMP *+4 NO CPA EXPOP YES, '^' ? JMP FSC10 YES JMP FSC6 NO CCB ASSIGNMENT JSB SYMCK DEF ASSOB OPERATOR JMP FSC12 NO LDA .-2 YES, SET FLAG STA SFLAG TO SAY JMP FSC1  STORE OCCURRED SKP * * ** END OF FORMULA ** * * LDA TEMP+2 RETRIEVE CHARACTER FSC14 CLB RECORD STB SBPTR,I END-OF-FORMULA CPB SSTAK,I ALL LEFT PARENTHESES MATCHED? JMP FSC,I YES JSB SERRS+23,I NO ** ** *** SAVE LOCAL VARIABLES OF FSC *** ** ** * * SAVING MSFLG, UFLAG, VAROP, GETPF, AND FSC MAKES FSC A * RE-ENTRANT SUBROUTINE. THEY ARE SAVED ON THE SYNTAX * STACK BELOW THE ACTIVE SYNTAX BUFFER. ON ENTRY (B) * CONTAINS THE NUMBER OF WORDS TO BE SAVED. * FRCUR NOP #FRCR ISZ SSTAK SAVE PREVIOUS '(' COUNT ADB SSTAK SUFFICIENT CMB USER ADB LWAUS SPACE SSB LEFT? JSB SERRS,I NO LDB MSFLG YES, SAVE STB SSTAK,I 'MULTIPLE STORE' ISZ SSTAK FLAG LDB UFLAG SAVE STB SSTAK,I 'UNARY OPERATOR' ISZ SSTAK FLAG LDB VAROP SAVE STB SSTAK,I VAROP ISZ SSTAK RETURN ADDRESS LDB GETPF SAVE STB SSTAK,I GETPF ISZ SSTAK RETURN ADDRESS LDB FSC SAVE STB SSTAK,I FSC ISZ SSTAK RETURN ADDRESS CCA DISABLE ADA SFLAG SFLAG STA SFLAG VALUE JMP FRCUR,I ** ** *** RESTORE FSC LOCAL VARIABLES *** ** ** * * INVERSE OF FRCUR. (A) IS SAVED BUT (B) IS NOT. * FPOP NOP #FPOP STA TEMP+1 SAVE (A) LDB SSTAK RESET ADB .-6 SYNTAX STACK STB SSTAK POINTER INB RESTORE LDA 1,I 'MULTIPLE STORE' STA MSFLG FLAG INB RESTORE LDA 1,I 'UNARY OPERATOR' STA UFLAG FLAG INB RESTORE LDA 1,I 5$"VAROP STA VAROP RETURN ADDRESS INB DLD 1,I RESTORE GETPF STA GETPF RETURN ADDRESS AND STB FSC FSC RETURN ADDRESS ISZ SFLAG RESTORE SFLAG VALUE LDA TEMP+1 RESTORE (A) JMP FPOP,I END m$ASMB,R,L,X HED SYNTAX PROCESSOR SUBROUTINES NAM SYNP8,7 SPC 2 ENT DIGCK,LETCK,SYMCK,PFSRH,SBPUD,LPCK,STLCK SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 SPC 2 EXT ATAB,TBSRH,GETPF,BCKSP,LBRAB EXT FRMAT SPC 2 D72 OCT -72 D133 OCT -133 B177 OCT 177 OPMSK OCT 77000 PDFFL OCT 100017 LPOP OCT 13000 M103 DEC -103 B EQU 1 ** ** *** CHECK FOR A DIGIT *** ** ** * * ENTER WITH CHARACTER IN (A). IF NOT A DIGIT, EXIT * TO (P+1) WITH CHARACTER IN (A); ELSE EXIT TO (P+2) * WITH DIGIT (BINARY) IN (A) AND (B). * DIGCK NOP #DGCK LDB 0 ASCII ADB D72 72B OR SSB,RSS GREATER? JMP DIGCK,I YES ADB .+12B NO, ASCII 57B SSB OR LESS? JMP DIGCK,I YES LDA 1 NO, LOAD ISZ DIGCK DIGIT JMP DIGCK,I INTO (A) ** ** *** CHECK FOR A LETTER *** ** ** * * ENTER WITH CHARACTER IN (A). EXIT TO (P+2) IF A * LETTER, ELSE EXIT TO (P+1). (A) IS NOT CHANGED. * LETCK NOP #LTCK LDB 0 ASCII ADB D133 133B OR SSB,RSS GREATER? JMP LETCK,I YES ADB .+32B NO, ASCII 101B SSB,RSS OR GREATER? ISZ LETCK YES JMP LETCK,I NO ** ** *** CHECK FOR SINGLE-CHARACTER OPERATORS *** ** ** * * ENTER WITH CHARACTER IN (A) AND NUMBER OF ACCEPTABLE * OPERATORS IN (B) IN 2'S COMPLEMENT. (P+1)+2 POINTS * TO THE LIST OF ACCEPTABLE OPERATORS. ON A MATCH * EXIT TO (P+3) AFTER RECORDIihNG THE OPERATOR CODE, * WHICH REMAINS IN (A). ON NO MATCH EXIT TO (P+2) * WITH THE CHARACTER IN (A). * SYMCK NOP #SYCK STB COUNT SAVE COUNT OF POSSIBLE MATCHES ALF,ALF POSITION IOR .+32 CHARACTER LDB SYMCK,I LOAD CLE,ELB * EXT * RBR * LINK * LDB B,I * KLUGE * ISZ SYMCK STARTING SYMC1 ADB .+2 TABLE ENTRY CPA 1,I MATCH? JMP SYMC2 YES ISZ COUNT NO, POSSIBILITIES LEFT? JMP SYMC1 YES ALF,ALF NO, AND B177 RESTORE JMP SYMCK,I CHARACTER SYMC2 ADB .-1 FETCH LDA 1,I AND AND OPMSK STORE STA SBPTR,I OPERATOR ISZ SYMCK CODE JMP SYMCK,I SKP ** ** *** SEARCH FOR PRINT FUNCTIONS *** ** ** * * SEARCH THE INPUT STRING FOR A 'TAB', 'LIN' OR 'SPA' FUNCTION. * IF FOUND, RECORD IT AND EXIT TO (P+1). OTHERWISE RESTORE THE * INPUT STRING AND SYNTAX BUFFER POINTER AND EXIT TO (P+2). * PFSRH NOP #PFSH LDB .-3 3 POSSIBLE FUNCTIONS LDA ATAB SEARCH JSB TBSRH FOR THEM JMP PFSH1 NONE FOUND CCB BACKUP ADB SBPTR BUFFER STB SBPTR POINTER ALF,ALF CONSTRUCT ALF,RAR IOR B,I FUNCTION IOR PDFFL STA B,I OPERAND JSB GETPF FETCH PARENTHESIZED FORMULA JMP PFSRH,I PFSH1 JSB BCKSP BACKUP CCB TO POINT ADB SBPTR FOLLOWING STB SBPTR LAST OPERATOR ISZ PFSRH EXIT TO JMP PFSRH,I (P+2) ** ** *** ADVANCE SYNTAX BUFFER POINTER *** ** ** * * (A) AND (B) REMAIN AS UPON ENTRY * SBPUD NOP #SBPU STA SBT0 SAVE (A) ISZ SBPTR ADVANCE POINTER O LDA SBPTR BUFFER CPA SYNTQ OVERFLOW? JSB SERRS+31,I YES LDA SBT0 NO, RETRIEVE (A) JMP SBPUD,I ** ** *** DEMAND A LEFT PARENTHESIS *** ** ** * * INSIST CHARACTER IN (A) BE '(' OR '['. RECORD IT * AS A '('. * LPCK NOP #LPCK LDB .-2 '(' JSB SYMCK OR DEF LBRAB '[' ? JSB SERRS+22,I NO LDA LPOP YES, RECORD STA SBPTR,I A '(' JMP LPCK,I ** ** *** STATEMENT LENGTH CHECKER *** ** ** * * CHECK THAT (A) (THE STATEMENT LENGTH) IS BETWEEN 3 AND 105. * IF NOT, EXIT TO ERROR. STLCK NOP #SLCK ADA .-3 SSA JSB RERRS+49,I TOO SMALL ADA M103 SSA JMP STLCK,I OK JSB RERRS+49,I TOO BIG END ASMB,R,L,X HED SYNTAX PROCESSOR SUBROUTINES NAM SYNP5,7 SPC 2 ENT SBSCK,ARRID,STRID,RSTOP,GETST,USTCK SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG SPC 2 EXT SYMCK,LBRAB,FRCUR,FSC,SCMMB,PRGIN EXT SBPUD,RPARB,RBOP,GETCR,FPOP,COMMB,LTR EXT STROP,VAROP,CHRST,QUOTE,USTMA,TBSRH EXT BCKSP SPC 2 LBOP OCT 12000 M73 DEC -73 D1111 OCT -1111 SPC 2 HED SYNTAX SUBROUTINES SPC 2 ** ** *** SUBSCRIPT SYNTAX *** ** ** * * SBSCK ASSUMES A PRIOR ARRAY OPERAND REFERENCED THROUGH * THE POINTER ARYAD. ENTRY IS MADE WITH A CHARACTER IN * (A); EXIT TO (P+1) IF THIS CHARACTER IS NOT '(' OR '[', * OTHERWISE ANALYZE THE SUBSCRIPT WHICH MUST FOLLOW, * EXITING TO (P+2). SBSCK HANDLES BOTH SINGLE AND DOUBLE * SUBSCRIPTS. IF DFLAG=0 THE SUBSCRIPT IS FROM A * AND THE BOUNDS MUST BE POSITIVE * INTEGERS. IF DFLAG=1 THE SUBSCRIPT RE-DIMENSIONS A * MATRIX AND A COMMA SEPARATES THE TWO BOUNDS OF A * DOUBLE SUBSCRIPT AND AN END-OF-FORMULA OPERATOR * FOLLOWS THE LAST BOUND. OTHERWISE A 'SUBSCRIPT' * COMMA SEPARATES THE TWO PARTS OF A DOUBLE SUBSCRIPT * AND NO END-OF-FORMULA OPERATOR APPEARS. IN ALL CASES, * THE ARRAY OPERAND IS MARKED AS ONE- OR TWO-DIMENSIONAL. * IF THE SUBSCRIPT BELONGS TO A STRING VARIABLE IN A * , IT MUST HAVE ONE AND ONLY ONE BOUND * CONSISTING OF A POSITIVE INTEGER NOT LARGER THAN 72. * IN THIS CASE ARYAD HOLDS A DUMMY POINTER SINCE STRING * VARIABLES ARE NOT MARKED WITH DIMENSIONALITY. * SBSCK NOP #SBCK LDB .-2 '(' JSB SYMCK OR DEF LBRAB '[' ? JMP SBSCK,I NO, RETURN TO (P+1) ISZ SBSCK YES, SET RETURN TO (P+2) LDA ARYAD,I SET 4ADA .-2 ARRAY TO STA ARYAD,I SINGLE DIMENSION LDA LBOP RECORD STA SBPTR,I '[' ISZ DFLAG BUMP MAGIC FLAG CLB,INB DIM CPB DFLAG STATEMENT? JMP SBSC5 YES LDB .+7 NO, SAVE FSC JSB FRCUR LOCAL VARIABLES LDB SBSCK SAVE STB SSTAK,I RETURN ISZ SSTAK ADDRESS LDB ARYAD SAVE ARRAY STB SSTAK,I REFERENCE ISZ SSTAK RESERVE SPACE FOR '(' COUNT LDA .-9 TURN OFF 'STORE STA MSFLG ALLOWED' MODE JSB FSC DEMAND SUBSCRIPT CCB RESTORE ADB SSTAK STB SSTAK ARRAY LDB 1,I STB ARYAD REFERENCE LDB DFLAG 'MATRIX SUBSCRIPT' CPB .+2 MODE? JMP SBSC4 YES SBSC1 CCB NO, SEEK JSB SYMCK 'SUBSCRIPT' DEF SCMMB COMMA JMP SBSC3+1 NONE FOUND ISZ ARYAD,I SET ARRAY AS DOUBLY-SUBSCRIPTED CLB,INB DIM CPB DFLAG STATEMENT? JMP SBSC3 YES JSB FSC NO, DEMAND SECOND SUBSCRIPT RSS SBSC3 JSB PRGIN DEMAND SECOND BOUND CCB RESTORE ADB DFLAG ORIGINAL STB DFLAG DFLAG VALUE CPB .+1 'MATRIX SUBSCRIPT' MODE? JSB SBPUD YES LDB .-2 DEMAND JSB SYMCK ')' OR DEF RPARB '[' JSB SERRS+23,I NOT FOUND LDA RBOP RECORD STA SBPTR,I ']' JSB SBPUD UPDATE POINTER JSB GETCR FETCH NEXT NOP CHARACTER CLB DIM CPB DFLAG STATEMENT? JMP SBSCK,I YES CCB NO, ADB SSTAK RESTORE STB SSTAK THE LDB SSTAK,I RETURN STB SBSCK ADDRESS JSB FPOP RESTORE FSC JMP SBSCK,I LOCAL VARIABLES SBSC4 CCB JSB SYMCK ^COMMA? DEF COMMB JMP SBSC3+1 NO JMP SBSC1+4 YES SBSC5 JSB PRGIN DEMAND DECLARED BOUND ISZ SFLAG STRING VARIABLE? JMP SBSC1 NO ADB M73 YES, DOES BOUND SSB,RSS EXCEED 72? JSB SERRS+30,I YES JMP SBSC3+1 NO SKP ** ** *** RECORD ARRAY IDENTIFIER *** ** ** * * ARRAY IDENTIFIER LEFT IN TEMP+1, ARRAY OPERAND ADDRESS * PUT IN ARYAD. EXIT WITH FOLLOWING CHARACTER IN TEMP+2 * AND IN (A). * ARRID NOP #ARID JSB LTR FETCH IDENTIFIER JSB SERRS+26,I NONE FOUND LDB ARRID SET STB STRID EXIT JMP *+2 ** ** *** RECORD STRING IDENTIFIER *** ** ** * * STRING IDENTIFIER LEFT IN TEMP+1, SFLAG SET TO -1. * EXIT WITH FOLLOWING CHARACTER IN (A). EXIT TO ERROR * IF A STRING VARIABLE IS NOT PERMITTED IN THIS CONTEXT. * STRID NOP #STRI CPA .+44B '$' ? JMP STRI1 YES LDA SBPTR NO, SET POINTER TO STA ARYAD VARIABLE LOCATION LDA TEMP+1 RECORD LDB .+56B ARRAY JSB STROP VARIABLE LDA TEMP+2 RETRIEVE FOLLOWING JMP STRID,I CHARACTER STRI1 LDA SFLAG STRING VARIABLE CPA SBPTR PERMITTED? CCA,RSS YES JSB SERRS+27,I NO STA SFLAG SET FLAG TO 'STRING OCCURRED' LDA TEMP+1 RECORD LDB .+53B STRING JSB STROP VARIABLE LDA SSTAK SET POINTER TO DUMMY STA ARYAD VARIABLE LOCATION JSB GETCR FETCH NOP NEXT JMP STRID,I CHARACTER ** ** *** RECORD A STRING OPERAND *** ** ** * * DEMAND A STRING VARIABLE OR A STRING CONSTANT. EXIT * TO ERROR IF NEITHER IS FOUND, ELSE EXIT WITH THE NEXT * CHARACTER IN (A). * RSTOP NOP #RSTO LDA SBPTR SEEK STA SFLAG STRING JSB VAROP OPERAND JMP RSTO1 1ST CHARACTER NOT A LETTER ISZ SFLAG STRING VARIABLE? JSB SERRS+28,I NO JMP RSTOP,I YES RSTO1 JSB SBPUD DEMAND A JSB GETST STRING JMP RSTOP,I CONSTANT ** ** *** FETCH A STRING CONSTANT *** ** ** * * EXIT TO ERROR IF (A) # " UPON ENTRY. ELSE SAVE CURRENT * BUFFER POINTER AND PACK THE INPUT STRING INTO THE BUFFER * FOLLOWING THE INITIAL BUFFER WORD. EXIT TO ERROR IF NO * CLOSING " IS FOUND. RECORD THE OPENING " ALONG WITH A * COUNT OF THE STRING CHARACTERS AND EXIT WITH THE NEXT * CHARACTER IN (A). EXIT TO ERROR IF STRING EXCEEDS * 72 CHARACTERS. * GETST NOP #GTST LDB SBPTR SAVE SYNTAX STB ARYAD BUFFER POINTER CPA .+42B " ? CLB,RSS YES, SET (B) = 0 JSB SERRS+28,I NO JSB CHRST RECORD STRING CONSTANT JSB SERRS+29,I NO CLOSING QUOTE LDA QUOTE RECORD CHARACTER COUNT ADA TEMP+1 ALONG WITH STA ARYAD,I OPENING QUOTE ADA D1111 MORE THAN 72 SSA,RSS CHARACTERS? JSB SERRS+30,I YES JSB GETCR NO, FETCH NOP NEXT JMP GETST,I CHARACTER ** ** *** CHECK FOR USING STATEMENT *** ** ** * * SCAN THE INPUT STRING FOR A USING OPERATOR. IF NONE FOUND, EXIT * TO (P+1) WITH THE INPUT STRING AND SYNTAX BUFFER AS UPON ENTRY. * OTHERWISE, CHECK FOR A LEGAL OPERATOR FOLLOWING THE 'USING' AND * EXIT TO (P+2) AFTER SAVING IT IN THE SYNTAX BUFFER, WITH (A) * = THE NEXT CHARACTER. USTCK NOP #USCK STA SBPTR,I (A) = NEXT CHARACTER LDA .+5 5 CHARACTERS STA MAXCR ALLOWED CCB LOOK LDA USTMA LOOK JSB TBSRH 'USING' JMP USCK3 NOT FOUND ,* ISZ USTCK JSB LTR NEXT CHARACTER LETTER? JMP USCK1 NO CPA .+44B YES, '$' FOLLOWS? RSS YES JSB SERRS+34,I NO LDB SBPTR ENABLE STRING STB SFLAG VARIABLE JSB STRID STORE STRING JSB SBSCK NOP JMP USTCK,I USCK1 CPA .+42B QUOTE? JMP USCK2 YES JSB BCKSP SEARCH CCB FOR STB GFLAG STATEMENT JSB PRGIN NUMBER JMP USTCK,I FOUND ONE JSB SERRS+34,I NOT FOUND, ERROR USCK2 JSB SBPUD ADVANCE BUFFER POINTER JSB GETST RECORD STRING CONTSTANT JMP USTCK,I USCK3 CCB RESTORE ADB SBPTR BUFFER STB SBPTR POINTER LDA .+3 RESET FOR STA MAXCR 3 CHARACTERS JSB BCKSP RESTORE INPUT STRING JMP USTCK,I END jASMB,R,L,X HED SYNTAX/RUN SUBROUTINE NAM SPRP0,7 SPC 2 ENT NUMCK,MBY10,DBY10,NORML,ARINV ENT CHOUF,#PACK SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1 SPC 2 EXT DIGCK,GETCR,SBPUD,INF SPC 2 E OCT 105 B177 OCT 177 B200 OCT 200 M256 DEC -256 B377 OCT 377 BN377 OCT 177400 MNEG OCT 100000 OCT 376 TENTH OCT 63146 BB776 OCT 776 ?STAT EQU 14B ?ID EQU 4 TAPEF EQU .+8 SPC 5 ARINV NOP #ARIN DST C1 CLA CLB FSB C1 JMP ARINV,I HED ASCII TO BINARY NUMBER CONVERSION ** ** *** HANDLE OVERFLOW *** ** ** * * (A) CONTAINS THE HIGH MANTISSA UPON ENTRY. (A) AND * (B) CONTAIN THE LARGEST REPRESENTABLE NUMBER OF * APPROPRIATE SIGN, PACKED, UPON EXIT. * OVFLW NOP #OVFL LDB .-2 SSA LDB BB776 IOR INF SSA LDA MNEG JMP OVFLW,I ** ** *** CHECK OVER/UNDERFLOWS *** ** ** * * EXIT TO (P+1) IF STATUS IS NOT SYNTAX. ELSE EXIT TO (P+2), * SETTING SYMTB = 4 IF IN KEYBOARD MODE. THESE ERRORS ARE NOT * REPORTED IF IN TAPE MODE. * CHOUF NOP #CHOU LDA LNAME COMPUTE ADA .+?STAT-?ID LDB 0,I STATUS CPB .+4 SYNTAX? RSS YES JMP CHOU1 NO LDA TAPEF TAPE AND MAIN,I SZA,RSS MODE? STB SYMTB NO ISZ CHOUF JMP CHOUF,I CHOU1 ISZ ENOUF ARE WE EXECUTING ENTER STATE? RSS NO ISZ CHOUF YES--SUPPRESS ERROR JMP CHOUF,I ** ** *** LOOK FOR A NUMBER *** ** ** * * NUMCK LOOKS FOR AN UNSIGNED NUMBER, SIGN MUST BE SET * BY THE CALLER (SIGN = -1 FOR NEGATIVE, ELSE POSITIVE). * (A) CONTAINS A CHARACTER UPON ENTRY; IF IT IS NEITHER * A DIGIT NOR A DECIMAL POINT, EXIT IS TO (P+1) WITH * (A) UNCHANGED AND (B) = 0. EXIT IS TO ERROR ON FINDING * AN EXPONENT PART OF INCORRECT FORMAT. ZERO REPLACES AN * UNDERFLOW; THE LARGEST REPRESENTABLE NUMBER OF THE * APPROPRIATE SIGN REPLACES AN OVERFLOW. AFTER STORING A * FLOATING POINT NUMBER IN M AND M+1 (WHERE SBPTR,I = M) * EXIT IS TO (P+2) WITH THE NEXT INPUT STRING CHARACTER * IN (A) AND TEMP+1. * NUMCK NOP #NMCK CLB ZERO STB EXP ALL STB MANT1 COMPONENTS STB MANT2 OF THE STB EXPON NUMBER STB TEMP+1 SET 'NUMBER FLAG' FALSE CCB SET 'DECIMAL POINT' STB DPFLG FLAG FALSE NUMC1 CPA .+56B DECIMAL POINT? ISZ DPFLG YES JMP NUMC2 NO CLA ZERO POST-DECIMAL STA EXPON DIGIT JMP NUMC4+1 COUNTER NUMC2 JSB DIGCK DIGIT? JMP NUMC7 NO  ISZ EXPON YES, COUNT DIGIT AND .+37B ALF,ALF ALF,RAR STA TEMP+2 AND SAVE IT JSB MBY10 MULTIPLY PREVIOUS NUMBER BY 10 LDB EXP ZERO SZB,RSS EXPONENT? JMP NUMC6 YES ADB .-4 NO, CMB SAVE LDA TEMP+2 SHIFT STB TEMP+2 COUNT CLB CLEAR LOWER MANTISSA NUMC3 ISZ TEMP+2 ALL SHIFTS DONE? JMP NUMC5 NO CLE YES, ADD IN ADB MANT2 LOW PART CLO OF NUMBER SEZ OVERFLOW FROM (B)? INA YES ADA MANT1 ADD IN HIGH PART OF MANTISSA SOS OVERFLOW? JMP NUMC4 NO CLE,ERA YES, CORRECT ERB MANTISSA ISZ EXP AND BUMP NOP EXPONENT NUMC4 JSB NORML NORMALIZE THE NUMBER ISZ TEMP+1 SET 'NUMBER FLAG' TRUE JSB GETCR FETCH CHARACTER JMP NUM12-1 NONE FOUND JMP NUMC1 NUMC5 CLE,ERA SHIFT ERB DIGIT JMP NUMC3 RIGHT NUMC6 LDA .+4 SET STA EXP EXPONENT LDA TEMP+2 LOAD CLB NUMBER JMP NUMC4 NUMC7 CLB SET EXPONENT STB TEMP+2 SIGN TO '+' CPB TEMP+1 DIGIT OR DECIMAL POINT FOUND? JMP NUMCK,I NO CPA E 'E' ? RSS YES JMP NUM12 NO JSB GETCR FETCH CHARACTER JMP NUM16 NONE FOUND CPA .+53B '+' ? JMP NUMC8 YES CPA .+55B NO, '-' ? CCA,RSS YES JMP NUMC9 NO STA TEMP+2 SET EXPONENT SIGN TO '-' NUMC8 JSB GETCR FETCH CHARACTER JMP NUM16 NONE FOUND NUMC9 JSB DIGCK DIGIT? JMP NUM16 NO STA TEMP+1 YES, SAVE IT JSB GETCR JMP NUM11 JSB DIGCK DIGIT? JMP NUM11 NO LDA TEMP+1 YES, MULTIPLY STB TEMP+1 PREVIOUS DIGIT MPY .+10 BY 10 ADA TEMP+1 ADD IN NEW DIGIT STA TEMP+1 SAVE EXPONENT JSB GETCR JMP NUM11 JSB DIGCK THIRD DIGIT? RSS NO JMP NUM16 YES NUM11 LDB TEMP+1 LOAD EXPONENT ISZ TEMP+2 POSITIVE? CMB,INB YES, COMPLEMENT IT RSS NO CLB NUM12 STA TEMP+1 SAVE CHARACTER ISZ DPFLG DECIMAL POINT FOUND? ADB EXPON YES, CORRECT EXPONENT SZB,RSS NO, ZERO EXPONENT? JMP NUM14 YES SSB NO, POSITIVE EXPONENT? JMP NUM13 YES CMB,INB NO, SET STB EXPON COUNTER JSB DBY10 DIVIDE NUMBER BY 10 ISZ EXPON DONE? JMP *-2 NO JMP NUM14 YES NUM13 STB EXPON SET COUNTER JSB MBY10 MULTIPLY NUMBER BY 10 ISZ EXPON DONE? JMP *-2 NO NUM14 LDA MANT1 LOAD LDB MANT2 MANTISSA ISZ SIGN POSITIVE? JMP NUM15 YES CMA NO, COMPLEMENT CMB,INB,SZB,RSS THE INA NUMBER NUM15 JSB #PACK NORMALIZE AND PACK STA SBPTR,I STORE JSB SBPUD NUMBER IN STB SBPTR,I DESTINATION JSB SBPUD ADDRESS LDA TEMP+1 RETRIEVE CHARACTER ISZ NUMCK NUM16 ISZ NUMCK JMP NUMCK,I ** ** *** MULTIPLY UNPACKED NUMBER BY 10 *** ** ** * * THE FLOATING POINT NUMBER IN MANT1, MANT2, AND EXP * IS MULTIPLIED BY 10. * MBY10 NOP #MB10 LDA MANT1 LOAD HIGH MANTISSA SZA,RSS ZERO NUMBER? JMP MBY10,I YES LDB EXP NO, ADB .+3 MULTIPLY STB EXP BY 8 LDB MANT2 LOAD LOW MANTISSA CLE,ERA DIVIDE ERB BY CLE,ERA 4 ERB,CLE ADB MANT2 =ADD INTO SEZ BOTH REGISTERS INA PRODUCING ADA MANT1 1.25 * MANTISSA SSA,RSS CORRECT JMP MBY01 CLE,ERA ON ERB ISZ EXP OVERFLOW NOP MBY01 STA MANT1 STORE STB MANT2 MANTISSA JMP MBY10,I SKP ** ** *** NORMALIZE UNPACKED NUMBER *** ** ** * * ENTER WITH NUMBER IN (A), (B), AND EXP. EXIT WITH * NORMALIZED NUMBER IN MANT1, MANT2, AND EXP (MANTISSA * IS LEFT IN (A) AND (B) AS WELL). * NORML NOP #NRML STA NT0 SET CLA LEFT-SHIFT STA TEMP+2 COUNTER LDA NT0 TO ZERO SZA,RSS IF NUMBER SZB IS ZERO, JMP NORM2+1 CLEAR STA EXP EVERYTHING STA MANT1 STORE NORM1 STB MANT2 MANTISSA JMP NORML,I NORM2 ISZ TEMP+2 COUNT A LEFT SHIFT CLE,ELB ROTATE (A) ELA AND (B) LEFT SEZ,SSA,RSS TWO HIGHEST BITS 0? JMP NORM2 YES, POSITIVE UNNORMALIZED SEZ,SSA NO, TWO HIGHEST BITS 1? JMP NORM2 YES, NEGATIVE UNNORMALIZED ERA NO, NORMALIZE ERB,CLE MANTISSA STA MANT1 COMPUTE LDA TEMP+2 CMA,INA CORRECTED ADA EXP STA EXP EXPONENT LDA MANT1 JMP NORM1 ** ** *** NORMALIZE AND PACK NUMBER *** ** ** * * NUMBER IN (A), (B), AND EXP ON ENTRY. ON EXIT (A) * AND (B) CONTAIN THE NORMALIZED, ROUNDED, AND PACKED * NUMBER. UNDERFLOW BECOMES A ZERO, OVERFLOW BECOMES * THE LARGEST REPRESNTABLE NUMBER OF APPROPRIATE SIGN. * #PACK NOP JSB NORML NORMALIZE NUMBER CLE,SZA,RSS ZERO? JMP #PACK,I YES ADB B177 NO, ROUND SSA,RSS POSITIVE? INB 0; YES, FINISH ROUND CLO SEZ ON OVERFLOW FROM (B) CLE,INA CORRECT (A) SOS OVERFLOW? ( (A)=100000, (B)=0 ) RAL TWO HIGH BITS SSA,SLA,RSS BOTH 1? ( IF (A) WAS 140000 ) JMP PACK1 NO CCE YES ARS,SLA,ALS SET (A) = 100000 AND SKIP PACK1 RAR UNDOES RAL ABOVE STA TEMP+2 SAVE (A) LDA 1 AND BN377 STA 1 LDA EXP DECREMENT SEZ EXPONENT ADA .-1 ON (E) # 0 SOC INCREMENT INA EXPONENT ON OVERFLOW ADA B200 EXPONENT SSA UNDERFLOW? JMP PACK3 YES ADA M256 NO, EXPONENT SSA,RSS OVERFLOW? JMP PACK4 YES ADA B200 NO, RESTORE EXPONENT RAL POSITION AND B377 EXPONENT AND ADB 0 ADD LOW MANTISSA LDA TEMP+2 RETRIEVE HIGH MANTISSA CPA MNEG RSS NEGATIVE JMP #PACK,I CPB MNEG+1 OVERFLOW? JMP PACK4 YES JMP #PACK,I NO PACK3 JSB CHOUF CHECK STATUS JSB WERRS+6,I CLA ZERO RESULT CLB ON UNDERFLOW JMP #PACK,I PACK4 JSB CHOUF CHECK STATUS JSB WERRS+5,I LDA TEMP+2 RETRIEVE HIGH MANTISSA JSB OVFLW JMP #PACK,I ** ** *** DIVIDE UNPACKED NUMBER BY 10 *** ** ** * * INVERSE OF MBY10 * DBY10 NOP #DB10 LDA MANT1 RETURN SZA,RSS ON JMP DBY10,I ZERO LDB .-2 ADD EXPONENT ADB EXP OF 1/10 TO STB EXP THAT OF NUMBER LDA MANT2 JUSTIFY CLE,ERA LOWER MANTISSA MPY TENTH MULTIPLY BY 1/10 CLE,ELA SHIFT ELB,CLE BACK ADA 1 ADD IN EQUIVALENT OF SEZ T*($LOWER MANTISSA* CLE,INB TENTH*2^(-16) STB MANT2 AND ROUND TO 16 BITS LDA MANT1 DO MPY TENTH SAME TO ADA 1 HIGH MANTISSA ADA MANT2 PERFORM EFFECTIVE SEZ SUM OF DOUBLE-LENGTH INB PRODUCTS STA SWPTP LDA 1 LDB SWPTP JSB NORML NORMALIZE JMP DBY10,I RESULT SWPTP NOP END b*ASMB,R,L,X HED EXECUTION PROCESSOR (COMMOM) NAM XEC0,7 SPC 2 ENT XEC,EXIT,EXIT3 ENT XEC1,XECB,EXIT1,XEC1A SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM ZZ(7) COM PRIST,FBASE,RQ3 SPC 2 EXT ABCHK,OUTCR,OUTST,CUSP,SETPT,SETDP,STLCK EXT MLINB,FRMAT,LCDLP,S14SC,EDABR,WRBUF,SCHEQ EXT XECBR EXT ATERM,ABFLG EXT OUTCH,PRISF SPC 2 A EQU 0 B EQU 1 B400 OCT 400 B1000 OCT 1000 CHNFG EQU B1000 MNEG OCT 100000 BIT15 EQU MNEG DFCHK EQU B400 ?ID EQU 4 ?LINK EQU 15B UNABT EQU .+16 HFLAG EQU .+4 FTEL EQU 15 OPMSK OCT 77000 M2000 OCT 176000 A000 OCT 2000 UNR OCT 160002 .58 DEC 58 HED MAIN EXECUTION LOOP * * ************************* **** *** *** EXECUTE THE PROGRAM *** **** *** * ************************* * * * THE CORE-RESIDENT FILE BUFFERS FOLLOW THE VALUE TABLE: ONE * RECORD-SIZED BLOCK OF CORE IS ALLOCATED FOR EACH FILE REQUESTED * IN THE . FIVE STACKS EXIST DURING EXECUTION: * SINCE STACK POINTERS ARE ASSUMED TO REFERENCE THE TOPMOST * ENTRY IN THEIR STACK THEY ARE INITIALLY SET ONE ENTRY BELOW * THE PHYSICAL START OF THE STACK; THUS THE FIRST ENTRY ADVANCES * A STACK POINTER TvO THE FIRST WORD OF ITS STACK SPACE. GOSUBS * QUEUE THEIR RETURN ADDRESSES IN THE RETURN STACK, WHICH HAS A * FIXED LENGTH OF NINE WORDS ALLOCATED IMMEDIATELY FOLLOWING * THE FILE BUFFERS. THE FOR-STACK (SIX-WORD ENTRIES) CONTAINS * ALL INFORMATION PERTAINING TO ACTIVE FOR-NEXT LOOPS; INITIALLY * EMPTY, ITS CORE SPACE IS ALLOCATED DYNAMICALLY AS NEEDED. THE * TEMPORARY STACK HOLDS INTERMEDIATE RESULTS DURING FORMULA * EVALUATION; IT IS INITIALIZED TO HOLD TEN TEMPORARIES AND * EXPANDS DYNAMICALLY AS NECESSARY. THE OPERAND AND OPERATOR * STACKS FOLLOW WITH THEIR ONE-WORD ENTRIES OCCUPYING ALTERNATE * LOCATIONS, EXPANDING INTO FREE USER SPACE ON A DEMAND BASIS. * THE TOP OF THE OPERATOR STACK, ALWAYS AT LEAST ONE WORD AHEAD * OF THE OPERAND STACK, IS PBPTR SO THAT ALL ACTIVE USER SPACE * IS KEPT WITHIN THE SWAP REGION. SINCE ALL STACKS EXCEPT THE * RETURN STACK EXPAND DYNAMICALLY, STATIC AND DYNAMIC NESTING * OF FORMULAS AND FOR-NEXT LOOPS IS FREELY PERMITTED UP TO * THE EXHAUSTION OF USER SPACE. * ** ** *** INITIALIZE EXECUTION *** ** ** * * PRINT THE PROGRAM NAME. INITIALIZE FILE STATUS INFORMATION * IN THE FILE TABLE AND NOTIFY USER OF ANY REQUESTED FILES * WHICH ARE READ-ONLY. ALLOCATE A 64 WORD BUFFER FOR EACH FILE. * ALLOCATE RUN-TIME STACKS, INITIALIZE POINTERS TO THE DATA BLOCK, * AND MOVE TO A FRESH TELETYPE LINE. * XEC1A DEF XEC1 XEC CLA BLOCK STA DCLC1,I CLOCK JSB ABCHK LDA DCLC2,I NO--UNBLOCK STA DCLC1,I CLOCK LDA MAIN,I AND CHNFG STA TEMP2 SAVE CHAIN FLAG SZA,RSS WAS THIS PROGRAM CHAINED TO? JMP XEC01 NO XOR MAIN,I CLEAR STA MAIN,I CHAIN FLAG JMP XEC0 DON'T PRINT NAME XEC01 LDA .+12B ECHO JSB OUTCR LINE FEED CLA,INA STA ABFLG LDA LNAME STA LT1 INA NULL LDA 0,I z SZA,RSS NAME? JMP XEC0 YES CLB NO STB LT2 OUTPUT LDA .-3 PROGRAM JSB OUTST NAME XEC0 CLA ZERO STA FCNTR FILE COUNTER STA RTNST AND MESSAGE FLAG STA ENOUF TURN OFF OVER/UNDERFLOW STA ASINP SET NO ASSIGN PROCESSED LDB FILTB LOAD ADDRESS OF FILE TABLE XEC2 CPB VALTB DONE? JMP XEC4 YES ISZ FCNTR NO, COUNT FILE XEC3 LDA BIT15 NO ADB .+4 SET NULL STA B,I RECORD ADDRESS ADB .-3 GET RECORD LDA B,I SIZE AND ALR,RAR CLEAR BITS 14 AND 15 STA B,I AND STICK BACK IN FILE TABLE ADB .+7 ALLOCATE JSB CUSP BUFFER FOR STA PBPTR THE FILE STA 1,I SET INB 'RECORD FULL' STA 1,I CONDITION INB SET CLA 'NO EOF EXIT' STA 1,I CONDITION ADB .+4 POINT TO MASK STA 1,I CLEAR PROTECT MASK INB POINT TO NEXT ENTRY JMP XEC2 XEC4 LDA FCNTR ARE THERE SZA,RSS ANY FILES? JMP XEC9 NO LDA DFCHK YES, SET IOR MAIN,I FILES BIT IN STA MAIN,I TTY TABLE XEC9 LDA TEMP2 SZA WAS THIS PROGRAM CHAINED TO? JMP XEC8 YES LDA .+15B NO, OUTPUT A JSB OUTCR CARRIAGE RETURN LDA .+12B AND JSB OUTCR TWO LDA .+12B LINE FEEDS JSB OUTCR XEC8 LDB PBPTR ADB .-1 SET POINTERS TO STB RTRNQ TOP AND BOTTOM STB RTNST OF RETURN STACK ADB .+4 SET STB FORQ EXECUTION JSB SETPT POINTERS LDB SPROG SET POINTERS TO JSB SETDP FIRST * * ** EXECUTE STATEMENT * J* * * * * SAVE SEQUENCE NUMBER FOR POSSIBLE USE BY ERROR ROUTINE. * ADVANCE PROGRAM COUNTER TO NEXT STATEMENT AND BRANCH TO * CODE FOR EXECUTION OF CURRENT STATEMENT. * XEC1 LDB PRGCT SAVE CURRENT XECB EQU XEC1+1 LDA 1,I SEQUENCE STA .LNUM NUMBER LDA B INA CHECK LDA A,I STATEMENT JSB STLCK LENGTH LDA 1 COMPUTE INA ADDRESS ADB 0,I OF NEXT STB PRGCT STATEMENT INA SET INTRA- STA TEMP1 STATEMENT POINTER LIB 1 SSB,RSS JMP XECC LDA MAIN,I AND B30M CPA PBFLG RSS JMP ATERM XECC LDA TEMP1,I AND OPMSK BRANCH ALF,ALF ADDRESS RAR FOR CURRENT ADA XECBR STATEMENT TYPE STA FILE# SET 'NO FILE' FLAG JMP 0,I BRANCH TO APPROPRIATE ROUTINE B30M OCT 30000 PBFLG OCT 10000 * *** ** ** COMPLETE EXECUTION ** *** ** * EXIT EQU * LDA MAIN,I INHIBIT IOR UNABT STA MAIN,I ABORTS LDA FCNTR SET COUNTER TO CMA 1'S COMPLEMENT OF STA FCNTR NUMBER OF FILES INA SAVE 2'S COMPLEMENT FOR STA FRMAT LCD'S FILE COUNT LDA FCORE LOAD FIRST BUFFER ADDRESS LDB FILTB LOAD POINTER TO ADB .+5 FIRST DISC ADDRESS (LOW WORD) EXIT0 ISZ FCNTR MORE FILES? JMP EXIT2 YES EXIT3 CLB OUTPUT STB DCLC1,I JSB ABCHK LDA DCLC2,I STA DCLC1,I LDA EXIT1 STA LT1 COMPLETION LDA MAIN,I AND HFLAG SZA MESSAGE UNLESS CCA,RSS $HELLO PROGRAM LDA .-4 LDB MAIN DOES USER INB HAVE LP? CPB PRIST RSS  JMP EXIT4 NO. LDA .+12B JSB OUTCH LDA EXT1A YES. STA LT1 RELEASE IT AND LDA .-10 PRINT MESSAGE CLB STB PRIST STB PRISF EXIT4 CLB STB LT2 JSB OUTST LDA MAIN TELL 2114 INA LDA 0,I THAT USER IS IOR UNR JSB S14SC LDA .+4 CLEAR PBFLG AND CBFLG LDB MAIN JSB EDABR BITS. JMP SCHEQ EXT1A DEF * OCT 11423 OCT 6412 ASC 3,LP FRE EXT1 EQU * OCT 42412 OCT 6412 ASC 2,DONE OCT 6412 EXIT2 STB FBASE WRITE STA RQ3 OUT JSB WRBUF RECORD LDB FBASE GET RECORD ADB .+FTEL-4 SIZE OF NEXT FILE LDA 1,I ALR,RAR CLEAR BITS 14 AND 15 CMA,INA ADB .+7 GET END OF FILE BUFFER ADA 1,I COMPUTE FILE BUFFER STARTING ADDRESS ADB .-3 POINT B TO FIRST DISC ADDRESS JMP EXIT0 EXIT1 DEF EXT1 END @ASMB,R,L,X HED COMPILE/DECOMPILE SUBROUTINES NAM CDS0,7 SPC 2 ENT ALCOM,CUSP,SSYMT,ASYMT,RSTPT SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG COM ZZ(146),STPTR SPC 2 EXT LWAUS,DCMPL,PBUFF SPC 2 OPMSK OCT 77000 COMOP OCT 45000 SCOMM OCT 16000 .100 DEC 100 DIMOP OCT 47000 OPDMK OCT 100777 SPC 2 APTR1 DEF SYMT6 APTR2 DEF SYMT7 ** ** *** ALLOCATE COM STORAGE *** ** ** * * THE BEGINNING OF THE PROGRAM IS SCANNED FOR . THE * AMOUNT OF COM STORAGE NEEDED IS COMPUTED. A POINTER (SPROG) TO * THE START OF THE PROGRAM IS CREATED AND THE PROGRAM IS SHIFTED TO * HIGHER CORE TO ALLOW FOR THE COM STORAGE. * ALCOM NOP #ALCO CLB SAY NO COMMON STB DEST ALLOCATED YET. LDB PBUFF STB STPTR POINTER TO FIRST STATEMENT ALCO1 LDA STPTR,I SAVE STATEMENT STA .LNUM NUMBER ISZ STPTR ADB STPTR,I STB NSPTR POINTER TO NEXT STATEMENT ISZ STPTR LDA STPTR,I EXTRACT AND OPMSK OPERATOR CPA COMOP COM STATEMENT? JMP ALCO2 YES ALCO6 LDA DEST GET TOTAL COMMON ALLOCATED SZA,RSS EXIT IF THERE WERE JMP ALCOM,I NO COM STATEMENTS ADA PBUFF PROGRAM BEGINNING MOVES BY ST_.A SPROG AMOUNT OF COMMON ALLOCATED. CCB POINTER TO FIRST ADB PBPTR WORD TO BE MOVED LDA 1 POINTER TO ADA DEST FIRST DESTINATION STA DEST LOCATION INA RESET END OF STA PBPTR PROGRAM POINTER. ALCO0 LDA 1,I MOVE A STA DEST,I WORD CPB PBUFF DONE? JMP ALCOM,I EXIT ADB .-1 NO--BUMP CCA ADA DEST POINTERS STA DEST JMP ALCO0 AND LOOP ALCO2 LDA STPTR,I EXTRACT AND .+17B OPERAND SZA STRING? JMP ALCO3 NO ISZ STPTR YES-- ISZ STPTR EXTRACT LDA STPTR,I LENGTH INA COMPUTE ARS STORAGE INA REQUIRED ISZ STPTR BUMP PAST RIGHT BRACKET JMP ALCO7+1 ALCO3 ADA .-4 SSA SIMPLE VARIABLE? JMP ALCO4 NO CLA,INA YES-- ALLOW TWO WORDS JMP ALCO7 ALCO4 ISZ STPTR MUST BE ARRAY ISZ STPTR LDB STPTR,I EXTRACT LENGTH ISZ STPTR LDA STPTR,I GET NEXT AND OPMSK OPERATOR CPA SCOMM SUBSCRIPT COMMA? JMP *+3 YES LDA 1 NO JMP ALCO5+1 LDA 1 COMPUTE ISZ STPTR ARRAY MPY STPTR,I SIZE SZB TOO BIG? JMP CUS1A,I YES ALCO5 ISZ STPTR BUMP PAST CLE,ELA SEZ,SSA,RSS TOO BIG? SLA,ERA NO JMP CUS1A,I YES ADA .+2 ALLOW 4 WORDS FOR DIMENSIONS ALCO7 ALS DOUBLE EVERYTHING ADA DEST UPDATE STA DEST POINTER ADA .100 JSB CUSP CHECK FOR STORAGE OVERFLOW ISZ STPTR LDB STPTR CPB NSPTR END OF STATEMENT RSS YES JMP ALCO2 NO CPB PBPTR END OF PROGRAM? JMP ALCO6 YES JMP ALCO1 NO * CUS1A DEF CU?SP1 ** ** *** INSURE SPACE FOR NEW ENTRY *** ** ** * * A CHECK IS MADE THAT THE UNUSED USER SPACE IS AT * LEAST AS LARGE AS THE NUMBER OF WORDS SPECIFIED BY * (A). EXIT TO ERROR IF NOT SO. (B) IS NOT CHANGED. * ON NORMAL EXIT (A) CONTAINS ITS ENTRY VALUE + (PBPTR). * CUSP NOP #CUSP ADA PBPTR AT LEAST STA CU1 (A) WORDS CMA OF AVAILABLE ADA LWAUS USER SSA,RSS SPACE? JMP *+3 YES CUSP1 JSB DCMPL NO, DECOMPILE JSB RERRS+10,I OUT OF STORAGE LDA CU1 RETURN WITH NEW JMP CUSP,I VALUE OF PBPTR ** ** *** 'COMPILE' A SYMBOL *** ** ** * * ENTER WITH A SYMBOLIC NAME IN STMP1 AND SEARCH THE * SYMBOL TABLE FOR A MATCHING ENTRY. IF NO ENTRY IS * FOUND, APPEND A NEW TWO WORD ENTRY WITH THE SYMBOL * IN THE FIRST WORD AND 0 IN THE SECOND. THE SYMBOL IN * THE PROGRAM IS REPLACED WITH THE ORDINAL NUMBER OF * ITS SYMBOL TABLE ENTRY. EXIT WITH THE NEW PROGRAM * WORD IN (A), A POINTER TO THE SECOND WORD OF THE * TABLE ENTRY IN STMP2, AND THE STATEMENT TYPE IN (B). * SSYMT NOP #SSYM LDA .+4 INSURE SPACE JSB CUSP FOR NEW ENTRY LDA STMP1 RETRIEVE SYMBOL LDB SYMTB SYMT1 CPB PBPTR SYMBOL TABLE EXHAUSTED? JMP SYMT3 YES CPA 1,I NO, IS NEXT SYMBOL A MATCH? JMP SYMT5 YES ADB .+2 NO, MOVE JMP SYMT1 TO NEXT ENTRY * * ** HANDLE UNMATCHED ARRAY SYMBOL ** * * SYMT2 CPA STMP1 "DON'T KNOW" SYMBOL? RSS YES JMP SYMT3 NO, MAKE NORMAL TABLE ENTRY ISZ PBPTR ALLOCATE SPACE ISZ PBPTR FOR NEW ENTRY LDA STMP2 WAS A SINGLE OR DOUBLE INA,SZA SUBSCRIPTED ENTRY FOUND? JMP SYMT4 YEUS, INCLUDE POINTER IN ENTRY STA 1,I NO, SAVE SPACE FOR LATER ENTRY ADB .+2 WITH NUMBER OF DIMENSIONS * * ** CREATE A NEW TABLE ENTRY ** * * SYMT3 ISZ PBPTR ALLOCATE SPACE ISZ PBPTR FOR NEW ENTRY CLA INITIALIZE SYMT4 INB SECOND STA 1,I WORD ADB .-1 PUT SYMBOL LDA STMP1 IN FIRST STA 1,I WORD * * ** 'COMPILE' PROGRAM WORD ** * * SYMT5 INB COMPUTE STB STMP2 CMB RELATIVE ADB SYMTB CMB,INB ADDRESS BRS LDA SPTR,I REPLACE SYMBOL AND OPMSK IN PROGRAM IOR 1 WITH RELATIVE STA SPTR,I ADDRESS LDB STYPE LOAD STATEMENT TYPE JMP SSYMT,I SKP ** ** *** PROCESS ARRAY SYMBOL *** ** ** * * ENTER WITH AN ARRAY NAME IN STMP1. IF A MATCHING * SYMBOL TABLE ENTRY EXISTS, PROCEED AS IN SSYMT. ELSE IF * THE ARRAY IS SINGLY OR DOUBLY SUBSCRIPTED (LAST FOUR * BITS OF NAME ARE 0001 OR 0010): EXIT IS TO ERROR ON * FINDING A CONFLICTING ENTRY; ON FINDING ONLY A "DON'T * KNOW" ENTRY (LAST FOUR BITS 0011), PROCEED AS IN SSYMT, * PLACING THE APPROPRIATE ENTRY IN THE TWO WORDS ABOVE * THE "DON'T KNOW" ENTRY AND SETTING A POINTER TO ITS * SECOND WORD INTO THE SECOND WORD OF THE "DON'T KNOW" * ENTRY. IF THE SYMBOL IS AN UNMATCHED "DON'T KNOW" * ARRAY NAME, APPEND A SYMBOL TABLE ENTRY: IF A SINGLY * OR DOUBLY SUBSCRIPTED VERSION OF THE ARRAY HAS BEEN * PREVIOUSLY FOUND, PLACE A POINTER TO THE SECOND WORD * OF THE PREVIOUS ENTRY INTO THE SECOND WORD OF THE NEW * "DON'T KNOW" ENTRY; OTHERWISE LEAVE TWO WORDS ABOVE * THE NEW ENTRY. * ASYMT NOP #ASYM LDA ASYMT SET RETURN STA SSYMT ADDRESS CCA SET MATCH STA STMP2 FLAG FALSE LDA APTR1 INTIALIZE STA ASYMT SEARCH LOOP LDA .+4 INSURE SPACE JSB CUSP FOR NEW ENTRY LDB SYMTB LDA STMP1 RETRIEVE SYMBOL IOR .+3 SET ARRAY SYMBOL JMP SYMT7+3 TO "DON'T KNOW" SYMT6 ADA .-2 MATCH AS CPA 1,I 'SINGLE SUBSCRIPT'? JMP SYMT8 YES INA NO, MATCH AS CPA 1,I 'DOUBLE SUBSCRIPT'? JMP SYMT8 YES INA NO, MATCH AS SYMT7 CPA 1,I "DON'T KNOW"? JMP SYMT9 YES ADB .+2 NO, MORE SYMBOL CPB PBPTR TABLE ENTRIES? JMP SYMT2 NO JMP ASYMT,I YES SYMT8 CPA STMP1 DOES ENTRY MATCH SYMBOL? JMP SYMT5 YES IOR .+3 NO, IS SYMBOL OF CPA STMP1 TYPE "DON'T KNOW"? JMP *+3 YES JSB DCMPL NO, DECOMPILE JSB RERRS+11,I SUBSCRIPT CONFLICT STB STMP2 SAVE POINTER TO ENTRY LDB APTR2 CONTINUE SEARCH STB ASYMT FOR POSSIBLE LDB STMP2 "DON'T KNOW" JMP SYMT7+2 ENTRY SYMT9 CPA STMP1 DOES ENTRY MATCH SYMBOL? JMP SYMT5 YES INB NO, NEW ENTRY TO BE MADE LDA 1 SET POINTER TO ADB .-2 NEW ENTRY INTO STB 0,I "DON'T KNOW" ENTRY CLA MAKE NEW JMP SYMT4+1 ENTRY ** ** *** RESTORE SYMBOL TABLE POINTERS *** ** ** * * USED BY CSAVE TO RESTORE THE SYMBOL TABLE TO ITS APPEARAMCE * BEFORE VALUE HAS BEEN RUN, I.E. THE POINTERS TO DIM AND COM * STATEMENTS ARE PLACED IN THE SECOND WORD OF ARRAY AND STRING * ENTRIES IN THE SYMBOL TABLE, 'DON'T KNOW' ENTRIES ARE LINKED * TO THE CORRESPONDING KNOWN ONE AND THE SECOND WORD OF DEFAULT * ENTRIES IS SET TO ZERO. * RSTPT NOP #RSTP LDB SPROG INITIALIZE PROGRAM STB SPTR  POINTER CPB SYMTB FINISHED PROGRAM SCAN? JMP RSTP5 YES ISZ SPTR NO--COMPUTE ADB SPTR,I NEXT STATMENT STB NSPTR POINTER ISZ SPTR LDA SPTR,I EXTRACT AND OPMSK OPERATOR CPA COMOP 'COM'? JMP RSTP1+1 YES CPA DIMOP NO, 'DIM'? RSS YES JMP #RSTP+1 NO RSTP1 CLB STB DCFLG SET COM-DIM FLAG RSTP2 LDA SPTR,I COMPUTE AND OPDMK POINTER ADA .-1 INTO ALS SYMBOL ADA SYMTB TABLE STA STMP1 LDA 0,I EXTRACT AND .+17B SYMBOL ADA .-4 SIMPLE SSA VARIABLE? JMP RSTP4 NO CCA YES LDB STMP1 FLAG INB AS 'IN STA 1,I COMMON' LDB SPTR UPDATE RSTP3 INB STATEMENT STB SPTR POINTER CPB NSPTR END OF STATEMENT? JMP #RSTP+1 YES JMP RSTP2 NO RSTP4 LDB SPTR SET POINTER ADB .+2 TO DIMENSION LDA DCFLG SZA 'COM'? CMB,INB YES--COMPLEMENT POINTER LDA STMP1 STORE INA IN SYMBOL STB 0,I TABLE LDB SPTR FINISHED ADB .+4 CPB NSPTR STATEMENT? JMP #RSTP+1 YES ADB .-1 NO, TWO- LDA 1,I AND OPMSK DIMENSIONAL? CPA SCOMM ADB .+2 YES--BUMP PAST SECOND DIMENSION JMP RSTP3 NO * * SCAN SYMBOL TABLE FOR 'DON'T KNOW' ENTRIES AND * DEFAULT DIMENSION ENTRIES * RSTP5 LDB SYMTB INITIALIZE TABLE POINTER CPB FILTB FINISHED SYMBOL TABLE SCAN? JMP RSTP9 YES STB STMP1 NO--SAVE POINTER LDA 1,I DON'T AND .+17B KNOW STA RTEMP CPA .+3 ENTRY? JMP RSTP7 YES ADA .-3 NO, STRING *($SSA,RSS OR ARRAY? JMP RSTP6 NO INB YES LDA 1,I DEFAULT SSA,RSS STRING IN COMMON? JMP RST55 NO LDA RTEMP MAYBE SZA,RSS STRING IN COMMON? JMP RSTP6 YES LDA 1,I NO RST55 CMA,INA ADA SYMTB DIMENSIONS? SSA,RSS JMP RSTP6 NO CLA YES--STORE A ZERO STA 1,I IN SYMBOL TABLE RSTP6 LDB STMP1 BUMP TO ADB .+2 NEXT SYMBOL JMP RSTP5+1 * * PROCESS 'DON'T KNOW' ENTRY * RSTP7 STB STMP2 LDB SYMTB IS THERE CCA A MATCHING ADA STMP2,I TWO-DIMENSIONAL CPA 1,I ENTRY? JMP RSTP8 YES ADA .-1 NO, MATCHING ONE- CPA 1,I DIMENSIONAL ENTRY? JMP RSTP8 YES ADB .+2 NO--BUMP TO JMP RSTP7+2 NEXT SYMBOL RSTP8 INB LINK 'DON'T LDA STMP1 KNOW' ENTRY INA WITH MATCHING STB 0,I KNOWN ONE JMP RSTP6 RSTP9 CLA SET STORAGE STA VLFLG UNALLOCATED FLAG STB PBPTR RESET END-OF-PROGRAM POINTER JMP RSTPT,I RTEMP NOP END (X*ASMB,R,L,X HED EXECUTION SUBROUTINES NAM XEC7,7 SPC 2 ENT ENOUT,NUMOT,GETDG,OUTIN,EDELM,OUTLN SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT4,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT SPC 2 EXT OUTCR,ARINV,#IFIX,#FAD,#FLUN,MBY10,DBY10 EXT LCALL,NORML SPC 2 M1000 DEC -1000 .74 DEC 74 .58 DEC 58 .75 DEC 75 E OCT 105 HMASK OCT 174000 B377 OCT 377 MM74 DEC -74 LDVSR DEF DVSRS DVSRS DEC 10000 DEC 1000 DEC 100 DEC 10 NMBFA DEF NUMBF ** ** *** PRINT A NUMBER *** ** ** * * ENTER WITH A FLOATING POINT NUMBER IN (A) AND (B). PRINT THE * NUMBER AND APPEND BLANKS TO REACH THE PgRINT POSITION SPECIFIED * BY -EOPF ON RETURN FROM NUMOT. * ENOUT NOP #ENOT CCE ENABLE SIGN JSB NUMOT OUTPUT NUMBER JMP *+3 LDA .+40B OUTPUT JSB OUTCR A BLANK LDB EOPF FIELD ADB CHRCT SZB FULL? JMP *-5 NO JMP ENOUT,I YES * MINFX DEC -0.099999959 MAXFX DEC -999999.5 ** ** *** OUTPUT A NUMBER *** ** ** * * ENTER WITH A FLOATING POINT NUMBER IN (A) AND (B) AND (E) = 1 * IF A SIGN IS WANTED. DETERMINE THE FORM OF THE NUMBER AND * SET EOPF ACCORDINGLY. NON-INTEGERS ARE ROUNDED AFTER CONVERSION * TO DECIMAL. TRAILING ZEROS ARE SUPPRESSED ON NUMBERS WITHOUT * EXPONENTS (AND ON NUMBERS WITH EXPONENTS IF CALLED FROM 'LIST'). * NUMOT NOP #NMOT STA NUMBF SAVE HIGH MANTISSA SEZ,RSS SIGN? JMP NUMO1 NO SSA,RSS YES, NEGATIVE NUMBER? JMP *+5 NO JSB ARINV YES, NEGATE NUMBER STA NUMBF SAVE HIGH MANTISSA LDA .+55B LOAD '-' RSS LDA .+40B LOAD '+' STA SIGN SAVE SIGN LDA NUMBF RETRIEVE HIGH MANTISSA NUMO1 STB NUMBF+1 SAVE LOW MANTISSA JSB #IFIX INTEGER? JMP NUMO2 NO SOC YES, 16-BIT INTEGER? JMP NUMO2 NO * * ** OUTPUT AN INTEGER ** * * STB NUMBF SAVE INTEGER ADB M1000 LDA .+6 SSB,RSS 3 DIGIT INTEGER? ADA .+3 NO ADA CHRCT COMPUTE END-OF-FIELD CMA,INA SAVE STA EOPF IT ADA .74 ENOUGH SSA ROOM? JSB OUTLN NO LDA SIGN YES SZA SIGN? JSB OUTCR YES, OUTPUT IT LDB NUMBF NO JSB OUTIN OUTPUT THE INTEGER JMP NUMOT,I * * ** OUTPUT A FLOATING POINT NUMBER ** * 8 * NUMO2 LDA .-2 SET 'FIXED' STA FFLAG FLAG FALSE DLD NUMBF LOAD NUMBER JSB #FAD IS NUMBER DEF MAXFX LESS THAN SSA,RSS 999999.5 ? JMP NUMO3 NO DLD NUMBF YES, IS JSB #FAD NUMBER DEF MINFX LESS THAN SSA,RSS 0.09999995 ? ISZ FFLAG NO, SET 'FIXED' FLAG TRUE NUMO3 DLD NUMBF LOAD NUMBER STA MANT1 UNPACK JSB #FLUN STB MANT2 NUMBER STA EXP CLA INITIALIZE STA EXPON DECIMAL EXPONENT CPA EXP ZERO EXPONENT? JMP NUMO5 YES NUMO0 JSB MBY10 NO LDA EXP MULTIPLY CMA,SSA,INA,SZA NUMBER BY 10 JMP *+3 UNTIL IT IS ISZ EXPON GREATER JMP NUMO0 THAN 1 JSB DBY10 DIVIDE BY 10 LDA EXPON NUMO4 LDB EXP DIVIDE CMB,INB NUMBER SSB,RSS BY 10 JMP NUMO5 UNTIL STA EXPON IT IS JSB DBY10 LESS CCA THAN ADA EXPON 1 JMP NUMO4 NUMO5 CMA SET EXPONENT STA EXPON TO TRUE VALUE-1 LDB .-6 SET DIGIT STB DIGCT COUNTER LDB NMBFA SET BUFFER STB NMPTR POINTER * * ** CONVERT MANTISSA TO ASCII ** * * NUMO6 JSB GETDG STORE A ADA .+60B DECIMAL STA NMPTR,I DIGIT ISZ NMPTR ISZ DIGCT SIXTH DIGIT? JMP NUMO6 NO JSB GETDG YES, ADA .-5 NEXT DIGIT SSA >= 5 ? JMP NUMO9+1 NO * * ** ROUND ASCII MANTISSA ** * * LDB NMPTR NUMO7 ADB .-1 LOAD LAST LDA 1,I DIGIT INA INCR{EMENT IT CPA .58 WAS IT A 9? RSS YES JMP NUMO9 NO CPB NMBFA LEADING DIGIT? JMP NUMO8 YES LDA .+60B NO, OVERLAY STA 1,I A 0 JMP NUMO7 NUMO8 ISZ EXPON BUMP DECIMAL NOP EXPONENT AND LDA .+61B OVERLAY A 1 NUMO9 STA 1,I LDA EXPON IS NUMBER SSA,RSS LESS THAN 1 ? JMP NMO11 NO STA NMTMP YES LDA .+60B LDB NMPTR NMO10 ISZ NMTMP COUNT ZEROS NOP PLUS 1 ADB .-1 LAST CPA 1,I DIGIT 0? JMP NMO10 YES LDA NMTMP NO, ALL SIGNIFICANCE SSA IN SIX DIGITS? JMP NMO11 NO CCA YES, SET STA FFLAG 'FIXED' FLAG TRUE NMO11 LDB .+12 COMPUTE ISZ FFLAG FIELD ADB .+3 WIDTH ADB CHRCT SAVE CMB,INB END-OF-FIELD STB EOPF MARKER ADB .75 ENOUGH SSB ROOM? JSB OUTLN NO LDA SIGN YES SZA SIGN? JSB OUTCR YES, OUTPUT IT LDB .-7 SET OUTPUT STB DIGCT DIGIT COUNTER LDB NMPTR CCA FIXED CPA FFLAG FORMAT? JMP *+5 NO LDA EXPON YES, SET CMA INDICATOR TO STA NMTMP DECIMAL POINT JMP NMO16 STA NMTMP SET INDICATOR FOR DECIMAL POINT LDA LCALL CALLED CPA NUMOT FROM 'LIST' ? JMP NMO16 YES JMP NMO14 NO * * ** DELETE TRAILING ZEROS ** * * NMO12 LDA DIGCT AT RIGHT OF INA DECIMAL CPA NMTMP POINT? JMP *+6 NO STA DIGCT YES, DELETE ZERO NMO16 ADB .-1 LAST LDA 1,I DIGIT CPA .+60B 0? JMP NMO12 YES CCA  NO, FIXED CPA FFLAG FORMAT? JMP NMO14 NO LDA EXPON YES, LEADING SSA,RSS DECIMAL POINT? JMP NMO14 NO STA NMTMP YES, SET LEADING ZEROS COUNTER * * ** OUTPUT MANTISSA ** * * LDA .+56B OUTPUT A RSS DECIMAL POINT NMO13 LDA .+60B OUTPUT JSB OUTCR A ZERO ISZ NMTMP MORE LEADING ZEROS? JMP NMO13 YES ISZ DIGCT NO, COUNT DECIMAL POINT NMO14 LDB NMBFA SET STB NMPTR DIGIT POINTER JMP *+5 NMO15 ISZ NMTMP DECIMAL POINT NEXT? JMP *+3 NO LDA .+56B YES, LOAD IT JMP *+3 LDA NMPTR,I LOAD NEXT ISZ NMPTR DIGIT JSB OUTCR OUTPUT CHARACTER ISZ DIGCT MORE DIGITS? JMP NMO15 YES ISZ FFLAG NO, EXPONENT? JMP NUMOT,I NO * * ** OUTPUT THE EXPONENT ** * * LDA E JSB OUTCR OUTPUT AN 'E' LDA .+55B OUTPUT LDB EXPON SSB AN CMB,INB,RSS LDA .+53B EXPONENT STB EXPON JSB OUTCR SIGN LDA EXPON CLB COMPUTE DIV .+10 ADA .+60B EXPONENT'S ADB .+60B STB EXPON 10'S DIGIT JSB OUTCR OUTPUT IT LDA EXPON OUTPUT JSB OUTCR 1'S DIGIT JMP NUMOT,I ** ** *** GET DIGIT TO OUTPUT *** ** ** * * COMPUTE NEXT DECIMAL DIGIT AND RETURN WITH IT IN (A). * SUBTRACT IT OUT OF THE NUMBER. * GETDG NOP #GTDG JSB MBY10 MULTIPLY BY 10 LDB EXP GET EXPONENT IN (B) CMB,INB AS NEGATIVE AND HMASK RETAIN HIGH 5 BITS RAL NORMALIZE TO BIT 15 SSB,INB ROTATE INTEGER JMP *-2 INTO (A) AND B377 EXTRACT P STA FD0 DIGIT LDB EXP ROTATE CMB,INB RAR BACK SSB,INB JMP *-2 XOR MANT1 REMOVE LDB MANT2 DIGIT JSB NORML NORMALIZE REMAINDER LDA FD0 LOAD (A) WITH DIGIT JMP GETDG,I SKP ** ** *** OUTPUT AN INTEGER *** ** ** * * ENTER WITH A POSITIVE INTEGER IN (B). OUTPUT IT WITHOUT * LEADING ZEROS. * OUTIN NOP #OTIN LDA .-4 SET DIGIT STA DGCNT COUNTER LDA LDVSR SET DIVISOR STA OT1 ADDRESS CLA SUPPRESS STA OT4 ZEROS OUTI1 STB 0 CLB DIV OT1,I CURRENT DIVISOR STB OT3 SAVE THE REMAINDER CPA OT4 LEADING ZERO? JMP OUTI2 YES ADA .+60B NO, TURN OFF STA OT4 ZERO SUPPRESS JSB OUTCR OUTPUT DIGIT OUTI2 LDB OT3 RETRIEVE REMAINDER ISZ OT1 SET FOR NEXT DIVISOR ISZ DGCNT ALL DIVISORS USED? JMP OUTI1 NO LDA 1 YES ADA .+60B OUTPUT JSB OUTCR LAST DIGIT JMP OUTIN,I ** ** *** SPACE FOR A COMMA *** ** ** * * MOVE TO THE NEXT FIELD OF 15 ON THE PRINT LINE OR TO THE * NEXT LINE IF THE CURRENT ONE IS EXHAUSTED. * EDELM NOP #EDLM LDB CHRCT LOAD CURRENT CHARACTER COUNT SZB,RSS ZERO? JMP EDELM,I YES, AT START OF ZONE ADB .-15 NO, SUBTRACT ZONE WIDTH SSB,RSS NON-NEGATIVE RESULT? JMP #EDLM+1 YES STB EOL NO, SAVE COUNT LDA .+40B OUTPUT JSB OUTCR A BLANK ISZ EOL ZONE FULL? JMP *-3 NO LDB CHRCT YES, ADB MM74 PAST THE SSB,RSS END OF LINE? JSB OUTLN YES JMP EDELM,I NO SKP ** ** *** OUTPUT AN END-OF--R*($LINE *** ** ** OUTLN NOP #OTLN LDB EOPF RESET ADB CHRCT END-OF-FIELD STB EOPF MARKER LDA .+23B OUTPUT JSB OUTCR AN X-OFF LDA .+15B OUTPUT A JSB OUTCR CARRIAGE RETURN LDA .+12B AND A JSB OUTCR LINE FEED JMP OUTLN,I END *ASMB,R,L,X HED FORMATTER NAM FRMT1,7 SPC 2 ENT OUTCL,OUTBL,DSRCH,MCHAR,EVEXP ENT DTL1,ROUND,MTG1 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT SPC 2 EXT DIGCK,OUTCR,BLANK,FSCH,GETDG EXT MBY10,DBY10,FORMX,OPCHK,PSTR,VCHK EXT XEC1 SPC 2 B377 OCT 377 S OCT 123 E OCT 105 M73 DEC -73 ..73 DEC 73 .X OCT 130 .A OCT 101 D OCT 104 M46 DEC -46 .58 DEC 58 M96 DEC -9E6 M32 DEC -32 .140 OCT 140 OPDMK OCT 100777 A EQU 0 HED FORMATTER UTILITY ROUTINES ** ** *** MAKE A NUMBER LESS THAN 1 *** ** ** * * MULTIPLY AN UNPACKED FLOATING POINT * NUMBER IN MANT1, MANT2 AND EXP BY 10 UNTIL * IT IS GREATER THAN 1. THEN DIVIDE BY 10 * MTG1 NOP #MTG1 JSB MBY10 LDA EXP MULTIPLY CMA,SSA,INA,SZA NUMBER BY 10 JMP *+3 UNTIL IT IS ISZ EXPON GREATER JMP MTG1+1 THAN 1 JSB DBY10 DIVIDE BY 10 JMP MTG1,I * * DIVIDE AN UNPACKED FLOATING POINT NUMBER * IN MANT1, MANT2 AND EXP BY 10 UNTIL IT IS * LESS THAN 1 * DTL1 NOP #DTL1 LDA EXPON DTL10 LDB EXP DIVIDE CMB,INB NUMBER SSB,RSS BY 10 JMP DTL1,I UNTIL STA EXPON IT IS JSB DBY10 LESS CCA THAN ADA EXPON 1 JMP DTL10 SKP ** ** *** ROUND ASCII NUMBER *** ** ** * * NUMBER STORED ONE ASCII DIGIT PER WORD IN * HOLDING BUFFER. ROUTINE GETS NEXT DIGIT * AND ROUNDS IF IT IS >= 5. * IF THERE IS A CARRY TO AN EXTRA DIGIT AND NO * ROOM EXISTS, EXIT IS TO (P+1). OTHERWISE RETURN * TO (P+2). * ROUND NOP #RUND JSB GETDG GET NEXT DIGIT ADA .-5 IS IT >= 5 ? SSA JMP ROUND,I CCA DECREMENT HOLD ADA HBP BUFFER POINTER ROND1 LDB 0,I LOAD NEXT DIGIT INB INCREMENT IT CPB .58 WAS IT A 9 ? JMP *+3 YES STB 0,I NO, SAVE IT JMP ROUND,I AND RETURN LDB .+60B OVERLAY STB 0,I A 0 CPA IHB LEADING DIGIT ? JMP *+3 YES ADA .-1 NO, DECREMENT POINTER JMP ROND1 LDB .+61B OVERLAY A STB 0,I  ONE LDB .+60B LOAD STB HBP,I EXTRA ZERO LDB EFLAG FLOATING POINT SZB SPECIFICATION ? JMP ROND2 NO ISZ EXPON INCREMENT EXPONENT NOP JMP ROUND,I ROND2 CCB IS NBLK ADB NBLK LESS SSB THAN 1 ? ISZ ROUND NO, RETURN TO (P+2) STB NBLK YES, KEEP DECREMENTED VALUE JMP ROUND,I SKP ** ** *** OUTPUT BLANKS *** ** ** * * OUTPUTS THE NUMBER OF BLANKS SPECIFIED * BY THE NEGATIVE OF REPCT. THE STACK POINTER * IS INCREMENTED AND REPCT HAS THE VALUE ZERO * UPON EXIT. * OUTBL NOP #OTBL ISZ FSP INCREMENT STACK POINTER LDA BLANK OUTPUT A JSB OUTCR BLANK ISZ REPCT REPCT USED UP ? JMP *-3 JMP OUTBL,I * * OUTPUT X-OFF, CARRIAGE RETURN, LINEFEED * OUTCL NOP #OTCL EQU * LDA .+23B JSB OUTCR LDA .+15B JSB OUTCR LDA .+12B JSB OUTCR CLA STA CHRCT JMP OUTCL,I SKP ** ** *** SEARCH FOR A DELIMITING CHARACTER *** ** ** * * BEGINS SEARCH AT CHARACTER DP. WHEN A COMMA * OR SLASH IS FOUND, DP IS SET TO POINT TO THAT * CHARACTER. CHARACTERS ARE COUNTED AND IF THE * END OF THE STRING IS ENCOUNTERED BEFORE A * DELIMITER IS FOUND, A FLAG IS SET * DSRCH NOP #DSCH LDA DP SET STRING POINTER TO STA FST FIRST CHARACTER CLO DON'T IGNORE BLANKS SER1 JSB MCHAR GET STRING CHARACTER CPA .+54B IS IT A COMMA ? JMP DSRCH,I YES CPA .+57B NO, IS IT A SLASH ? JMP DSRCH,I YES CPA .+51B NO, IS IT A RIGHT PARENTHESIS ? JMP DSRCH,I YES ISZ DP NO,INCREMENT DELIMITER POINTER ISZ CC AND CHARACTER COUNTER LDA DP LDB CC CPB NCH ALL CHARACTERS USED ? JMP DSRCH,I YES JMP SER1 NO ** ** *** MASK OUT A CHARACTER *** ** ** * * GET NEXT CHARACTER FROM FORMAT STRING * ADDRESS OF CHARACTER IS IN (A). CHARACTER IS * RETURNED IN (A) * MCHAR NOP #MCHR CLE,ERA SHIFT ADDRESS RIGHT LDB 0,I LOAD WORD FROM STRING SEZ,RSS HIGH CHARACTER ? BLF,BLF YES, SWITCH POSITIONS LDA 1 NO AND B377 MASK OUT LOW CHARACTER SOS SHOULD BLANKS BE IGNORED ? JMP MCHAR,I CPA BLANK YES, IS CHARACTER A BLANK ? JMP MCHR1 YES ADA M96 NO SSA,RSS LOWER CASE? ADA M32 YES ADA .140 NO JMP MCHAR,I MCHR1 EQU * ISZ FST INCREMENT STRING POINTER LDA FST NEXT CHARACTER CPA DP A DELIMITER ? JMP MCHAR,I YES, RETURN JMP MCHAR+1 IGNORE THE BLANK ** ** *** EVALUATE EXPRESSION *** ** ** * * EXTRACT THE NEXT VARIABLE TO BE OUTPUT BY THE FORMATTER. IF * NONE FOUND, EXIT TO (P+1). IF A STRING IS FOUND, EXIT TO * (P+2) AFTER PREPARING THE STRING FOR OUTPUT. IF A NUMERIC * QUANTITY IS FOUND, EXIT TO (P+3) WITH THE NUMBER IF (A) AND (B). * EDSTA IS SET TO 0 IF THIS IS THE LAST VARIABLE IN THE STATEMENT. * EVEXP NOP #EVEP EQU * LDA FFLG MAT SSA PRINT? JMP EVEX5 YES EVEX0 LDB TEMP1 CPB PRGCT END OF STATEMENT? JMP EVEXP,I YES CCA TURN OFF STA EOL FUNCTION FLAG JSB FORMX EVALUATE FORMULA LDB OPDST,I IS IT A SSB STRING VARIABLE ? JMP EVEX3 YES JSB OPCHK NO, UNSTACK VALUE ADDRESS ISZ EOL A FUNCTION ? JMP EVEX0 LDA TEMP1 LAST VARIABLE? CPA PRGCT CLA YES  STA EDSTA NO DLD 1,I NO, LOAD NUMBER ISZ EVEXP RETURN TO (P+3) JMP EVEX4 EVEX3 LDA .-2 PREPARE JSB PSTR PRINT STA TEMP4 STRING STB TPRME LDB TEMP1 END OF CPB PRGCT STATEMENT? CLB YES STB EDSTA NO LDB TPRME EVEX4 EQU * ISZ EVEXP RETURN TO JMP EVEXP,I (P+2) EVEX5 ISZ ELCNT FINISHED CURRENT MATRIX? JMP EVEX7 NO EVEX6 LDB TEMP1 YES CPB PRGCT END OF STATEMENT? JMP EVEXP,I YES LDA TEMP1,I GET NEXT OPERAND AND OPDMK SZA,RSS NULL JMP EVEXP,I YES SSA NO, FUNCTION? JMP EVEX8 YES ALS NO, LOAD ADA SYMTB BASE ADDRESS ADA .-1 OF ARRAY LDB A,I ADB .-2 SAVE POINTER TO STB SBPTR DYNAMIC DIMENSIONS JSB VCHK VALIDATE ARRAY ELEMENTS LDA SBPTR,I SET POINTER ISZ SBPTR TO FIRST ELEMENT MPY SBPTR,I OF ARRAY ISZ SBPTR WHILE COMPUTING CMA,INA NUMBER OF STA ELCNT ELEMENTS ISZ TEMP1 BUMP TO NEXT OPERAND EVEX7 CCA LAST CPA ELCNT ELEMENT? RSS YES JMP EVEX9 NO LDA TEMP1 END OF CPA PRGCT STATEMENT? CLA YES EVEX9 EQU * STA EDSTA NO DLD SBPTR,I GET NUMBER ISZ SBPTR BUMP TO ISZ SBPTR NEXT ELEMENT ISZ EVEXP JMP EVEX4 EXIT EVEX8 CCA TURN OFF STA EOL FUNCTION FLAG JSB FORMX EVALUATE FUNCTION JSB OPCHK REMOVE ARGUMENT FROM TEMP STACK JMP EVEX6 GET NEXT OPERAND END ^$"$ASMB,R,L,X HED FORMATTER NAM FRMT0,7 SPC 2 ENT FRMAT SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT SPC 2 EXT DIGCK,#FLUN,OUTCR,BLANK,FSCH,GETDG EXT MBY10,DBY10,FORMX,OPCHK,PSTR,VCHK EXT XEC1 EXT OUTCL,OUTBL,DSRCH,MCHAR,EVEXP EXT DTL1,ROUND,MTG1 SPC 2 B377 OCT 377 S OCT 123 E OCT 105 M73 DEC -73 ..73 DEC 73 .X OCT 130 .A OCT 101 D OCT 104 M46 DEC -46 .5w8 DEC 58 M96 DEC -96 M32 DEC -32 .140 OCT 140 OPDMK OCT 100777 A EQU 0 SPC 2 * * THE ADDRESS OF THE FIRST WORD OF THE FORMAT * STRING IS IN (B) UPON ENTRY. THE FORMATTER * EXTRACTS THE NUMBER OF CHARACTERS IN THE STRING * AND THEN EXTRACTS THE FORMAT SPECIFICATIONS * ONE BY ONE. AS EACH SPECIFICATION IS EXTRACTED, * IT IS LOADED INTO A STACK, ONE CHARACTER PER * WORD AND CHECKED FOR SYNTAX ERRORS. THE * TYPE OF SPECIFICATION IS DETERMINED AT THIS * TIME AND THE SPECIFICATION IS THEN EXECUTED * FROM THE STACK. * FRMAT NOP #FRMT STB EC SAVE POINTER TO STRING INB MAKE INTO CLE,ELB CHARACTER POINTER ADB A ADD IN STARTING CHARACTER CMA,INA SAVE STARTING STA CC CHARACTER STB IFSTR SAVE IN FORMAT STRING ADDRESS STB DP AND DELIMITER POINTER LDB NCH MAYBE SZB JMP FM0 YES LDA EC,I NO, COMPUTE # AND B377 OF CHARACTERS ADA CC IN FORMAT STA NCH STRING SZA,RSS NULL STRING? JMP FMEND+1 YES, IGNORE IT FM0 CLA INITIALIZE STA CC CHARACTER COUNTER STA CONTR CONTROL CHARACTER STA EC EXPRESSION COUNTER STA CC1 START OF PARENTHESIS LEVEL 1 STA CC2 START OF PARENTHESIS LEVEL 2 STA PC1 REPETITION COUNT FOR LEVEL 1 STA PC2 REPETITION COUNT FOR LEVEL 2 STA SFLG STRING FLAG FMT2 JSB DSRCH DELIMITER SEARCH STO IGNORE BLANKS LDA FST GET THE JSB MCHAR FIRST CHARACTER CPA DP DELIMITER FOUND ? JMP FMEND YES CPA .+53B IS CHARACTER A PLUS ? JMP FMT1 YES CPA .+55B IS IT A MINUS ? JMP FMT1 YES CPA .+43B NO, IS IT A NUMBER SIGN RSS YES JMP FMT3 TjNO FMT1 LDB CC END OF CPB NCH STRING ? JSB FERRS,I YES, ERROR STA CONTR SAVE CARR. CONTROL CHARACTER ISZ FST INCREMENT STRING POINTER LDA FST STO IGNORE BLANKS JSB MCHAR GET NEXT CHARACTER CPA DP DELIMITER FOUND ? RSS YES JMP FMT01 NO, CHARACTER FOUND ? CLO GET LDA DP THE JSB MCHAR DELIMITER FMT01 CPA .+54B IS IT A COMMA ? RSS YES JSB FERRS+1,I NO, ERROR ISZ DP INCREMENT DELIMITER POINTER ISZ CC AND CHARACTER COUNTER LDB CC CPB NCH ALL CHARACTERS USED ? JSB FERRS,I YES, ERROR LDA DP NO JSB DSRCH FIND NEXT DELIMITING CHARACTER FMT3 CCA INITIALIZE STA DPFLG FIXED FLAG STA EFLAG FLOATING FLAG INA STA NUM1 PRE-DECIMAL POINT D COUNTER STA NUM2 POST-DECIMAL POINT D COUNTER STA SBD S BEFORE D COUNTER STA SAD S AFTER D COUNTER STA SNFLG SIGN FLAG STA NAD POST-DECIMAL ZERO COUNTER STA NBD PRE-DECIMAL POINT DIGIT COUNTER INA STA REPCT REPETITION COUNT LDA IFSS FORMAT STACK STA FSP POINTER LDA FST GET NON-DELIMITING STO CHARACTER JSB MCHAR IGNORING BLANKS CPA DP IS IT A DELIMITER ? JSB FERRS,I YES FMT4 CPA .+42B IS IT A QUOTE ? RSS YES JMP FMT0 NO LDB DP CMB,INB RESET ADB FST CHARACTER ADB CC COUNTER STB CC FMT16 ISZ FST INCREMENT STRING POINTER LDA CC ALL CPA NCH CHARACTERS USED ? JSB FERRS+2,I YES, ERROR ISZ CC INCREMENT CHARACTER COUNTER LDA FST CLO DON'T IGNOk RE BLANKS JSB MCHAR GET NEXT CHARACTER STA FSP,I LOAD CHARACTER ONTO STACK ISZ FSP INCREMENT STACK POINTER CPA .+42B IS IT A " ? RSS YES JMP FMT16 NO ISZ FST INCREMENT STRING POINTER ISZ CC AND CHARACTER COUNTER LDA CC ALL CPA NCH CHARACTERS USED ? JMP FMT46 YES LDA FST RESET STA DP DELIMITER JSB DSRCH POINTER LDA FST NEXT CHARACTER CPA DP A DELIMITER ? JMP FMT46 YES STO IGNORE BLANKS JSB MCHAR FETCH A FORMAT STRING CHARACTER LDA FST WOULD IT BE CPB DP A DELIMITER ? JMP FMT46 YES JSB FERRS+1,I NO, ERROR FMT0 CPA S IS IT AN S ? JMP FMT14 YES CPA .+56B IS IT A . ? JMP FMT9 YES CPA E IS IT AN E? JMP FMT13 YES JSB DIGCK IS IT A DIGIT ? JMP FMT6 NO STA REPCT YES, STORE IN REPCT ISZ FST INCREMENT STRING POINTER LDA FST NEXT CHARACTER CPA DP A DELIMITER ? JSB FERRS+3,I YES, ERROR STO IGNORE BLANKS JSB MCHAR GET NEXT CHARACTER CPA DP IS IT A DELIMITER ? JSB FERRS+3,I JSB DIGCK IS IT A DIGIT ? JMP FMT5 NO LDA REPCT YES, STB REPCT MULTIPLY PREVIOUS MPY .+12B DIGIT BY 10 ADA REPCT ADD IN ONES DIGIT STA REPCT ISZ FST INCREMENT STRING POINTER LDA FST NEXT CHARACTER CPA DP A DELIMITER ? JSB FERRS+3,I YES, ERROR STO IGNORE BLANKS JSB MCHAR GET NEXT CHARACTER CPA DP IS IT A DELIMITER ? JSB FERRS+3,I JSB DIGCK THIRD DIGIT ? RSS JSB FERRS+4,I YES, ERROR FMT5 LDB REPCT SZB,RSS O REPCT ZERO ? JSB FERRS+5,I YES ADB M73 NO. GREATER SSB,RSS THAN 72? JSB FERRS+4,I YES ADB ..73 RESTORE REPCT CMB,INB SET NUMBER FLAG STB FSP,I LOAD ONTO FORMAT STACK ISZ FSP INCREMENT STACK POINTER FMT6 CPA .X IS NEXT CHARACTER AN X ? JMP FMT8 YES CPA .A IS IT AN A ? JMP FMT10 YES CPA D IS IT A D ? RSS YES JMP FMT15 NO LDB DPFLG DPFLG = -1? SZB JMP FMT7 YES LDB NUM2 ADD REPCT TO ADB REPCT POST-DECIMAL STB NUM2 DIGIT COUNTER JMP FMT8 FMT7 LDB NUM1 ADD REPCT TO ADB REPCT PRE-DECIMAL STB NUM1 DIGIT COUNTER FMT8 CLB,INB REINITIALIZE STB REPCT REPCT STA FSP,I LOAD CHARACTER ONTO STACK ISZ FST INCREMENT STRING POINTER ISZ FSP AND STACK POINTER LDA FST NEXT CHARACTER CPA DP A DELIMITER ? JMP FMT08 YES STO IGNORE BLANKS JSB MCHAR GET NEXT CHARACTER CPA DP IS IT A DELIMITER ? RSS YES JMP FMT0 FMT08 LDB FSP STB EST SET END OF STACK MARK JMP FMT18 FMT9 ISZ DPFLG DPFLG = -1 ? JSB FERRS+6,I NO JMP FMT8+2 YES FMT10 LDB SFLG IS SFLG SZB,RSS FMT11 ISZ SFLG YES, INCREMENT IT JMP FMT8 NO FMT13 ISZ EFLAG EFLAG= -1? JSB FERRS+7,I NO JMP FMT8+2 YES FMT14 LDB NUM1 ADB NUM2 ANY D'S FOUND ? SZB,RSS ISZ SBD NO, INCREMENT BEFORE COUNTER LDB SBD ANY S'S BEFORE A D ? SZB,RSS ISZ SAD NO, INCREMENT AFTER COUNTER JMP FMT8+2 FMT15 CPA .+50B IS CHARACTER A ( ? JMP FMT95 YES JSB FERRS+8,I NO, ILLEGAL CHARACTER FMT18 LDA IFSS REINITIALIZE STA FSP B STACK POINTER CCA AND STA REPCT REPCT ADA SFLG SFLG = 1 ? SZA,RSS JMP FMT24 YES ADA .-2 SFLG = 3 ? SSA,RSS JMP FMT25 YES LDA NUM1 NO, ANY ADA NUM2 D'S SZA,RSS FOUND ? JMP FMT20 NO JSB EVEXP EVALUATE EXPRESSION JMP FMEND NONE FOUND JSB FERRS+9,I STING--ERROR STA MANT1 IF NUMBER STA NUMW1 SAVE HIGN MANTISSA JSB #FLUN UNPACK NUMBER STA EXP AND SAVE THE EXPONENT LDA MANT1 IS THE NUMBER NEGATIVE ? SSA,RSS JMP FMT31 NO LDA .+55B YES, SET SIGN TO MINUS STA SIGN AND CMB,CLE,INB COMPLEMENT LDA MANT1 CMA OVERFLOW FROM SEZ,RSS LOW MANTISSA ? JMP FMT31-3 NO INA YES, OVERFLOW FROM SOS HIGH MANTISSA ? JMP FMT31-3 NO CLE,ERA YES, SHIFT RIGHT ERB AND ISZ EXP BUMP EXPONENT NOP STA MANT1 STA NUMW1 SAVE HIGH MANTISSA JMP *+3 FMT31 LDA .+53B SET SIGN STA SIGN TO PLUS STB MANT2 STB NUMW2 SAVE LOW MANTISSA LDA EXP STA EXPW AND EXPONENT CLB,INB SET EXPRESSION STB EC FOUND FLAG LDA IHB HOLDING BUFFER STA HBP POINTER LDA EFLAG EFLAG SZA,RSS SET ? JMP FMT62 YES LDA DPFLG DPFLG SZA,RSS SET JMP FMT45 YES JMP FMT30 NO ** ** *** OUTPUT A LITERAL STRING *** ** ** FMT46 LDA IFSS RESET STA FSP STACK POINTER LDA FSP,I TOP OF STACK CPA .+42B A " ? JMP FMT90 YES, DONE WITH THIS SPEC CPA .+16B IS IT A PSEUіDO-LINEFEED ? LDA .+12B YES, MAKE IT A LINEFEED CPA .+17B IS IT A PSEUDO CARRIAGE RETURN ? RSS YES JMP FMT47 NO LDA .+23B OUTPUT AN X-OFF JSB OUTCR LDA .+15B OUTPUT A JSB OUTCR CARRIAGE RETURN CLA AND A NULL. FMT47 EQU * JSB OUTCR NO, OUTPUT THE CHARACTER ISZ FSP INCREMENT STACK POINTER JMP FMT46+2 NO ** ** *** OUTPUT A BLANK SPECIFICATION *** ** ** FMT20 LDA FSP,I LOAD TOP OF STACK SSA,RSS IS IT A NUMBER ? JMP FMT21 NO STA REPCT YES, STORE NUMBER IN REPCT ISZ FSP INCREMENT STACK POINTER LDA FSP,I LOAD NEW TOP OF STACK FMT21 CPA .X IS IT AN X ? RSS YES JSB FERRS+8,I NO, ERROR JSB OUTBL CCA REINITIALIZE STA REPCT REPCT LDA FSP END CPA EST OF STACK JMP FMT90 YES LDA FSP,I LOAD NEW TOP OF STACK JMP FMT20 ** ** *** OUTPUT A STRING *** ** ** FMT24 EQU * JSB EVEXP EVALUATE NEXT EXPRESSION JMP FMEND NONE FOUND FMT25 EQU * CLB,INB,RSS SET THE EXPRESSION JSB FERRS+14,I STB EC FOUND FLAG LDA FSP,I LOAD TOP OF STACK SSA,RSS IS IT A NUMBER ? JMP FMT26 NO STA REPCT YES ISZ FSP INCREMENT STACK POINTER LDA FSP,I LOAD NEW TOP OF STACK FMT26 CPA .X IS IT AN X ? RSS YES JMP FMT27 NO JSB OUTBL JMP FMT28 FMT27 CPA .A IS IT AN A ? RSS YES JSB FERRS+9,I NO, ERROR ISZ FSP INCREMENT STACK POINTER FMT05 EQU * JSB FSCH FETCH STRING CHARACTER LDA BLANK NO, FETCH A BLANK CPA .+16B IS IT A PSEUDO-LINEFEED ? ) LDA .+12B YES, MAKE IT A LINEFEED CPA .+17B IS IT A PSEUDO CARRIAGE RETURN ? RSS YES JMP FMT29 NO LDA .+23B OUTPUT AN X-OFF JSB OUTCR LDA .+15B OUTPUT A JSB OUTCR CARRIAGE RETURN CLA AND A NULL. FMT29 EQU * JSB OUTCR OUTPUT CHARACTER ISZ REPCT REPCT USED UP ? JMP FMT05 NO FMT28 CCA REINITIALIZE STA REPCT REPCT LDA FSP END OF CPA EST STACK ? JMP FMT90 JMP FMT25 NO ** ** *** PREPARE AN INTEGER FOR OUTPUT *** ** ** FMT30 CLA INITIALIZE PRE-DECIMAL POINT STA EXPON DIGIT COUNTER CCA ADA EXP EXPONENT ZERO OR NEGATIVE ? SSA,RSS JMP FMT32 NO LDA .+60B YES, LOAD A STA HBP,I ZERO ISZ HBP INCREMENT BUFFER POINTER CCA NUMBER OF BUFFER WORDS STA NHBW IS ONE JMP FMT33 FMT32 JSB DTL1 STA EXPON SAVE NUMBER STA NHBW OF DIGITS JSB GETDG GET DIGIT ADA .+60B CONVERT TO ASCII STA HBP,I STORE IN HOLD BUFFER ISZ HBP ALL DIGITS ISZ EXPON FOUND ? JMP FMT32+3 NO FMT33 LDA NUM1 COMPUTE NUMBER OF ADA NHBW LEADING BLANKS LDB SBD ANY S'S ADB SAD FOUND ? SZB JMP FMT43 YES LDB SIGN NO, NUMBER POSITIVE ? CPB .+53B JMP FMT43 YES ADA .-1 NO, SAVE ROOM CLB,INB FOR STB SNFLG PRINTING SIGN FMT43 SSA NUMBER OF BLANKS NEGATIVE ? JMP FMT80 YES STA NBLK NO JSB ROUND ROUND NUMBER IN BUFFER RSS JMP FMT80 NO ROOM FOR CARRY FROM ROUND LDB IHB REINITIALIZE STB HBP HOLD BUFFER POINTEgR ** ** *** OUTPUT NUMBER FROM HOLDING BUFFER *** ** ** FMT34 LDA FSP,I LOAD TOP OF FORMAT STACK CPA S IS IT AN S ? RSS YES JMP FMT36 NO ISZ FSP INCREMENT STACK POINTER LDA SNFLG SZA SNFLG = 0 ? JMP FMT59 NO, IGNORE THE S LDB SBD YES, ANY S'S BEFORE A D ? SZB JMP FMT35 YES LDA SIGN NO, OUTPUT SIGN JSB OUTCR IMMEDIATELY LDA .+2 SET SNFLG TO 2 STA SNFLG JMP FMT59 FMT35 CCB STB SNFLG SET SNFLG TO -1 JMP FMT34 FMT36 SSA,RSS TOP OF STACK A NUMBER ? JMP FMT06 NO STA REPCT YES, STORE IN REPCT ISZ FSP INCREMENT STACK POINTER LDA FSP,I LOAD NEW TOP OF STACK FMT06 CPA .X IS TOP AN X ? RSS YES JMP FMT37 NO JSB OUTBL CCA REINITIALIZE STA REPCT REPCT JMP FMT59 FMT37 CPA D TOP OF STACK A D ? RSS YES JMP FMT57 NO ISZ FSP INCREMENT STACK POINTER CCA ADA NBLK NUMBER OF BLANKS > 0 ? SSA JMP FMT07 NO LDA BLANK YES, OUTPUT A JSB OUTCR BLANK CCB DECREMENT ADB NBLK BLANK STB NBLK COUNT JMP FMT40 FMT07 LDA NBLK NUMBER OF BLANKS SSA LESS THAN ZERO ? JMP FMT56 YES CCA NO, DECREMENT STA NBLK BLANK COUNT CCB CPB SNFLG SNFLG = - 1 ? JMP FMT02 YES ADB SNFLG SNFLG = 1 ? SZB,RSS JMP FMT40 YES JMP FMT58 NO FMT56 CCB ADB SNFLG SNFLG = 1 ? SZB JMP FMT58 NO FMT02 LDA SIGN YES, OUTPUT JSB OUTCR SIGN AND LDA .+2 SET SNFLG STA JSNFLG TO 2 FMT58 LDA IHB END ADA .+46 OF CPA HBP BUFFER ? JMP FMT59 LDA HBP,I OUTPUT A JSB OUTCR DIGIT ISZ HBP INCREMENT HOLD BUFFER POINTER LDA EFLAG IS THIS A SZA FLOATING POINT SPECIFICATION ? JMP FMT40 NO CLA,INA YES, HAS THE DECIMAL POINT CPA DPFLG BEEN FOUND YET ? JMP FMT40 YES CCA NO, DECREMENT ADA EXPON DECIMAL LDB IHB,I IS THE CPB .+60B NUMBER ZERO? CLA YES, ZERO EXPONENT STA EXPON EXPONENT FMT40 ISZ REPCT REPCT = O ? JMP FMT37+4 NO CCA YES,REINITIALIZE STA REPCT REPCT JMP FMT59 FMT57 LDB DPFLG FIXED POINT SZB SPECIFICATION ? JMP FMT42 NO CPA .+56B TOP OF STACK A DECIMAL POINT ? RSS YES JMP FMT42 NO ISZ FSP INCREMENT STACK POINTER LDB SNFLG SSB SNFLG = -1 ? JMP FM00 YES ADB .-1 NO, = 1 ? SZB JMP FM01 NO FM00 LDA SIGN YES, OUTPUT JSB OUTCR SIGN LDA .+2 SET SNFLG STA SNFLG TO 2 FM01 LDA .+56B OUTPUT JSB OUTCR DECIMAL POINT ISZ DPFLG INCREMENT FLAG TO SHOW D.P. FOUND FMT59 LDA FSP END OF CPA EST STACK JMP FMT90 YES JMP FMT34 NO FMT42 ISZ FSP INCREMENT STACK POINTER JSB OUTCR OUTPUT AN E FMT76 LDA FSP END OF CPA EST STACK ? JMP FMT78 YES LDA FSP,I NO,TOP OF SSA,RSS STACK A NUMBER ? JMP FM02 NO ISZ FSP YES, INCREMENT STACK POINTER STA REPCT STORE NUMBER LDA FSP,I GET NEW TOP OF STACK FM02 CPA .X IS IT AN X ? RSS YES JSB FERRS+7,I NO, ERROR JSB OUTBL CCA RESET STA REPCT REPCT JMP FMT76 FMT78 LDA .+55B OUTPUT LDB EXPON SSB AN CMB,INB,RSS LDA .+53B EXPONENT STB EXPON JSB OUTCR SIGN LDA EXPON CLB COMPUTE DIV .+12B ADA .+60B EXPONENT'S ADB .+60B STB EXPON 10'S DIGIT JSB OUTCR OUTPUT IT LDA EXPON JSB OUTCR OUTPUT 1'S DIGIT JMP FMT90 ** ** *** PREPARE FIXED POINT NUMBER *** ** ** FMT45 CLA SET PRE-DECIMAL POINT STA EXPON DIGIT COUNTER STA NAD ZERO COUNTER CPA EXP ZERO EXPONENT ? JMP FMT61+3 YES LDB EXP NO SSB EXPONENT NEGATIVE JMP FMT61 YES JSB DTL1 STA EXPON LOAD STA NBD PRE-DECIMAL POINT FM03 JSB GETDG DIGITS ADA .+60B STA HBP,I INTO ISZ HBP HOLD ISZ EXPON BUFFER JMP FM03 FMT50 LDB NUM2 ANY D'S AFTER SZB,RSS DECIMAL POINT ? JMP FMT51 NO LDA IHB END ADA .+46 OF CPA HBP BUFFER ? JMP FM04 YES LDB NAD LEADING CLA ZEROES SZB,RSS AFTER JMP *+4 DECIMAL ADB .-1 POINT STB NAD RSS YES JSB GETDG ADA .+60B LOAD STA HBP,I POST-DECIMAL POINT CCB DIGITS ADB NUM2 INTO STB NUM2 HOLD ISZ HBP BUFFER JMP FMT50+1 FM04 LDA NUM2 OUTPUT BLANKS CMA,INA TO STA REPCT FILL FIELD JSB OUTBL CCA REINITIALIZE STA REPCT REPCT ADA FSP CORRECT STA FSP ~ STACK POINTER FMT51 LDA NBD COMPUT NUMBER ADA NUM1 OF LEADING BLANKS LDB SBD ANY S'S ADB SAD FOUND ? SZB JMP FMT54 YES LDB SIGN NO, NUMBER CPB .+53B POSITIVE ? JMP FMT54 YES ADA .-1 NO, LEAVE ROOM FOR CLB,INB SIGN TO BE PRINTED AND STB SNFLG SET SNFLG TO 1 FMT54 SSA NUMBER OF BLANKS NEGATIVE ? JMP FMT80 YES STA NBLK NO, CCB NEXT DIGIT A ADB NAD LEADING ZERO ? SSB JSB ROUND NO, ROUND NUMBER RSS JMP FMT80 NO ROOM FOR CARRY FROM ROUND LDA IHB RESET HOLD STA HBP BUFFER POINTER JMP FMT34 GO OUTPUT THE NUMBER FMT61 JSB MTG1 LDA EXPON STA NAD LDB NUM1 ANY D'S FOUND SZB,RSS BEFORE THE DECIMAL POINT ? JMP FMT50 NO LDA NUM2 YES, ANY D'S FOUND SZA,RSS AFTER THE DECIMAL POINT ? JMP FMT55 NO CPB .+1 YES, ONLY ONE OF THEM ? RSS JMP FMT55 NO LDA SAD YES, ANY S'S FOUND ? ADA SBD SZA JMP FMT55 YES LDA SIGN NO, NUMBER CPA .+55B NEGATIVE ? JMP FMT50 YES FMT55 LDA .+60B NO, LOAD PRE-DECIMAL POINT STA HBP,I ZERO INTO BUFFER ISZ HBP CCA DECREASE NUMBER OF ADA NUM1 D'S AVAILABLE FOR SIGN STA NUM1 AND BLANKS BEFORE DECIMAL PT. JMP FMT50 ** ** *** PREPARE FLOATING POINT NUMBER *** ** ** FMT62 CLA INITIALIZE DECIMAL STA EXPON EXPONENT CPA EXP ZERO EXPONENT ? JMP *+3 YES JSB MTG1 JSB DTL1 CMA,INA SAVE DECIMAL EXPONENT STA EXPON LDA NUM1 GET ADA NUM2 TOTAL NUMBER  STA TOTDG OF DIGITS LDA SBD ADA SAD ANY S'S FOUND ? SZA JMP FMT67 YES LDA SIGN NO, NUMBER CPA .+53B POSITIVE ? JMP FMT67 YES CCB NO, LEAVE ROOM ADB NUM1 FOR SIGN SSB NONE ? JMP FMT80 YES STB NUM1 NO, DECREMENT CCA TOTAL NUMBER OF D'S ADA TOTDG AVAILABLE FOR SIGN STA TOTDG AND BLANKS BEFORE DEC. PT. SZA,RSS JMP FMT80 CLB,INB SET SNFLG STB SNFLG TO 1 FMT67 LDA NUM2 NUM2 CMA,INA > 7 ? LDB .+6 ADB 0 SSB JMP FMT70 YES LDA TOTDG YES, TOTAL NUMBER OF D'S ADA .-10B > 7 ? SSA JMP FMT68 NO LDB .-7 PREPARE TO GET STB DCTR SEVEN DIGITS INA NUMBER OF BLANKS STA NBLK BECOMES TOTDG - 7 JMP FMT72 FMT68 LDA TOTDG PREPARE TO GET CMA,INA STA DCTR TOTDG DIGITS CLB SET NUMBER OF BLANKS STB NBLK TO ZERO JMP FMT72 FMT70 LDB NUM1 ANY D'S BEFORE SZB DECIMAL POINT ? ADA .-1 YES, INCREMENT NUMBER OF DIGITS STA DCTR PREPARE TO GET NUM2 DIGITS SZB SET ADB .-1 BLANK STB NBLK COUNT LDA DCTR MORE THAN ADA .+46 FOURTY-SIX SSA,RSS DIGITS NEEDED ? JMP FMT72 NO STA REPCT YES, OUTPUT NECESSARY BLANKS JSB OUTBL ADA FSP CORRECT STA FSP STACK POINTER LDA M46 SET DCTR STA DCTR TO 46 FMT72 EQU * CCA REINITIALIZE STA REPCT REPCT JSB GETDG ADA .+60B CONVERT TO ASCII STA HBP,I STORE IN HOLD BUFFER ISZ HBP INCREMENT BUFFER POINTER ISZ DCTR ALL DIiGITS GOT ? JMP FMT72 NO JSB ROUND YES, ROUND THE NUMBER IN BUFFER RSS JMP FMT80 NO ROOM FOR CARRY FROM ROUND LDA IHB RESET STA HBP BUFFER POINTER JMP FMT34 ** ** *** HANDLE END OF SPECIFICATION *** ** ** FMT90 CLA STA SFLG STRING FLAG LDA CC ENF OF CPA NCH FORMAT STRING ? RSS YES JMP FMT92 NO FMT09 LDA CC1 YES, PARENTHESIS SZA BALANCED ? JSB FERRS+10,I NO, ERROR FMT91 LDB EC ANY EXPRESSIONS SZB,RSS USED ? JMP FMEND NO LDB EDSTA END OF SZB,RSS STATEMENT ? JMP FMEND YES CLA STA EC YES, CLEAR EC STA CC LDA IFSTR RESET STA DP DELIMITER POINTER JMP FMT2 FMT92 LDA DP GET THE CLO DELIMITING CHARACTER JSB MCHAR NOT IGNORING BLANKS CPA .+51B IS IT A RIGHT PARENTHESIS JMP FMT97 YES STA LCH NO, SAVE THE CHARACTER CPA .+54B IS IT A COMMA ? JMP FMT93+1 YES CPA .+57B IS IT A SLASH ? RSS YES JSB FERRS+1,I NO, ERROR EXIT FMT93 JSB OUTCL ISZ CC INCREMENT CHARACTER COUNTER LDA CC ALL CHARACTERS CPA NCH USED ? JMP FMT94 YES ISZ DP INCREMENT DELIMITER POINTER JSB DSRCH FIND NEXT DELIMITER STO IGNORE BLANKS LDA FST JSB MCHAR NEXT CHARACTER CPA DP IS IT A DELIMITER RSS YES JMP FM11 NO LDA CC ALL CHARACTERS CPA NCH USED ? JMP FMT94 YES LDA DP NO, GET DELIMITING CLO CHARACTER JSB MCHAR IGNORING BLANKS FM11 CPA .+54 IS IT A COMMA JSB FERRS,I YES, ERROR CPA .+57B NO, A SLASH JMP FMT94 YES CPA .+51B NO, A RIGHT PARENTHESIS ? JMP FMT97 YES JMP FMT3 FMT94 LDA LCH LAST CHARACTER CPA .+54B A COMMA ? JSB FERRS,I LDA CC NO, ALL CHARACTERS CPA NCH USED ? JMP FMT09 YES JMP FMT93 NO ** ** *** HANDLE GROUPS OF SPECIFICATIONS *** ** ** FMT95 CCA SECOND ADA FSP CHARACTER CPA IFSS IN STACK ? RSS JSB FERRS+11,I NO, ERROR LDA CC1 YES, FIRST LEVEL SZA OF PARENTHESIS ? JMP FMT96 NO ISZ FST INCREMENT STRING POINTER CCA FIND CHARACTER COUNT ADA IFSTR UP TO AND INCLUDING CMA LEFT ADA FST PARENTHESIS STA CC1 LDB REPCT STORE REPETITION STB PC1 COUNT JMP FMT3 PROCESS STRING FMT96 LDA CC2 SECOND LEVEL SZA OF PARENTHESIS JSB FERRS+12,I NO, ERROR ISZ FST CCA FIND CHARACTER COUNT ADA IFSTR UP TO AND CMA INCLUDING ADA FST LEFT STA CC2 PARENTHESIS LDB REPCT STORE REPETITION STB PC2 COUNT JMP FMT3 FMT97 LDA PC2 SECOND LEVEL OF SZA,RSS PARENTHESIS ? JMP FMT98 NO ADA .-1 YES, REPEAT IT STA PC2 SZA,RSS JMP FMT99 LDB CC2 RESET STB CC CHARACTER COUNTER ADB IFSTR STB DP AND STRING POINTER JSB DSRCH JMP FMT3 REPROCESS PARENTHESIZED STRING FMT99 CLA CLEAR SECOND STA CC2 LEVEL POINTER STA SFLG AND STRING FLAG ISZ CC INCREMENT 'CHARACTER COUNTER LDA CC ALL CHARACTERS CPA NCH USED ? JSB FERRS+1,I YES, ERROR ISZ DP NO, POINT TO DELIMITER JSB DSRCH FIND NEXT DELIMITER STO GET NEXT LDA FST NON-BLANK JSB MCHAR CHARACTER CPA DP IS IT A DELIMITER ? RSS YES JMP FMT92+3 MAYBE LDB CC ALL CPB NCH CHARACTERS USED ? JSB FERRS+10,I YES, ERROR JMP FMT92 NO, INVESTIGATE THE CHARACTER FMT98 LDA PC1 FIRST LEVEL SZA,RSS OF PARENTHESIS ? JSB FERRS+13,I NO, ERROR ADA .-1 YES, REPEAT IT STA PC1 SZA,RSS JMP FMT00 LDB CC1 RESET STB CC CHARACTER COUNTER ADB IFSTR STB DP JSB DSRCH JMP FMT3 REPROCESS PARENTHESIZED STRING FMT00 CLA CLEAR FIRST STA CC1 LEVEL POINTER STA SFLG AND STRING FLAG ISZ CC INCREMENT CHARACTER COUNTER ISZ DP POINT TO DELIMITER LDA CC ALL CPA NCH CHARACTERS USED ? JMP FMT91 YES JSB DSRCH NO, FIND NEXT DELIMITER STO GET NEXT LDA FST NON-BLANK JSB MCHAR CHARACTER CPA DP IS IT A DELIMITER ? RSS YES JMP FMT92+3 NO LDB CC ALL CPB NCH CHARACTERS USED ? JMP FMT91 YES JMP FMT92 NO, INVESTIGATE THE FOUND CHARACTER ** ** *** OUTPUT NUMBER IN DEFAULT FORMAT *** ** ** FMT80 LDA NUMW1 STA MANT1 LOAD LDB NUMW2 STB MANT2 SAVED LDA EXPW STA EXP NUMBER CLA CLEAR STA EXPON DECIMAL EXPONENT STA EFLAG SET FLOATING POINT FLAG CPA EXP ZERO EXPONENT ? JMP *+3 a YES JSB MTG1 JSB DTL1 CMA STA EXPON JSB OUTCL LDA IHB RESET HOLD STA HBP BUFFER POINTER LDA .-6 PREPARE TO GET STA TOTDG SIX DIGITS JSB GETDG GET ADA .+60B STA HBP,I SIX ISZ HBP ISZ TOTDG DIGITS JMP *-5 LDA .+2 SET NBLK TO STA NBLK WHERE IT WONT CAUSE TROUBLE JSB ROUND ROUND NUMBER IN HOLD BUFFER NOP LDA SIGN OUTPUT JSB OUTCR SIGN LDA IHB INITIALIZE STA HBP HOLD BUFFER POINTER LDA HBP,I OUTPUT JSB OUTCR DIGIT ISZ HBP INCREMENT HOLD BUFFER POINTER LDA .+56B OUTPUT JSB OUTCR DECIMAL POINT LDA .-5 PREPARE TO OUTPUT STA TOTDG FIVE DIGITS LDA HBP,I OUTPUT JSB OUTCR FIVE ISZ HBP DIGITS ISZ TOTDG JMP *-4 LDA E OUTPUT JSB OUTCR AN E LDA .+55B LDB EXPON OUTPUT SSB CMB,INB,RSS EXPONENT LDA .+53B STB EXPON SIGN JSB OUTCR LDA EXPON CLB GET BOTH EXPONENT DIGITS DIV .+12B ADA .+60B CONVERT BOTH ADB .+60B TO ASCII STB EXPON JSB OUTCR OUTPUT 10'S DIGIT LDA EXPON JSB OUTCR OUTPUT 1'S DIGIT JSB OUTCL JMP FMT90 FMEND LDA CONTR YES, CONTROL SZA CHARACTER FOUND ? JMP *+3 YES JSB OUTCL NO JMP XEC1 CPA .+53B IS CARRIAGE RSS CONTROL A + JMP FM10 NO LDA .+23B YES JSB OUTCR OUTPUT AN X-OFF LDA .+15B AND A JSB OUTCR CARRIAGE RETURN CLA AND A JSB OUTCR NULL. CLA STA CHRCT JMP XEC1 FM10 CPA .+55B IS IT A MINUS ? }ljf RSS YES JMP XEC1 LDA .+12B OUTPUT A JSB OUTCR LINEFEED JMP XEC1 END klASMB,R,L,X HED EXECUTION PROCESSORS NAM XEC8,7 SPC 2 ENT .CHEB,.IENT,.PWR2,EDABR ENT .LOG,.EXP ENT PDFBS SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT4,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2) COM ZZ(82),STIME(5) SPC 2 EXT INF,OUTLN,OUTCL,ARINV EXT #IFIX,#PACK,#FMP,#FSB,#FAD EXT #FLUN,#FDV,FOR10 EXT OUTCR,BLANK EXT EXEC,SBFIX,RQSTR,GTTYP,SETDP EXT TIMFN SPC 2 PDFBS DEF PDFTB-1,I PDFTB DEF ETAB DEF ELIN DEF ESPA DEF ETAN DEF EATN DEF EEXP DEF ELOG DEF EABS DEF ESQR DEF EINT DEF ERND DEF ESGN NOP DEF ETYP DEF ETIM DEF ESIN DEF ECOS DEF EBRK SPC 2 MMS~72 DEC -72 MNEG OCT 100000 .72 DEC 72 B400 OCT 400 M256 DEC -256 HALF DEC 0.5 B377 OCT 377 A EQU 0 BIT15 EQU MNEG FLGBT EQU MNEG B EQU 1 RPOP OCT 10000 PBFLG EQU RPOP B30M OCT 30000 HED LIBRARY FUNCTIONS * * * ** EXECUTE TAB(X) * * * * ETAB JSB .IENT INTEGERIZE ARGUMENT LDA INF ARG > 32767 CLB SET FLAG TO STB EOL 'TAB OCCURRED' LDB FFLG GET FORMAT FLAG SZB IN FORMATTER ? JMP ETAB2 YES LDB MM72 ADB A SSB,RSS JMP ETAB4-1 YES, GO TO NEXT LINE ETAB2 CMA,INA NO ADA CHRCT ANY BLANKS SSA,RSS REQUIRED? JMP ETAB4 NO STA LBTMP YES ETAB1 LDA .+40B OUTPUT JSB OUTCR A BLANK ISZ LBTMP DONE? JMP ETAB1 NO RSS YES JSB OUTLN ETAB4 LDA BIT15 SO OPCHK DOESN'T BARF JMP FOR10 * * ** EXECUTE SPA(X) * ESPA JSB .IENT INTEGERIZE ARGUMENT LDA INF ARG > 32767 CLB SET FUNCTION FLAG STB EOL TO EXECUTED SZA,RSS IS IT ZERO ? JMP ESPA4 YES SSA NO, NEGATIVE? JMP ESPA4 YES CMA,INA NO STA REPCT OUTPUT LDB FFLG SZB JMP ESPA1 NO ADA .72 LDB CHRCT SPACING PAST CMB,INB END OF LINE ? ADA 1 SSA JMP ESPA4-1 ESPA1 LDA BLANK JSB OUTCR ISZ REPCT JMP ESPA1 CCA RESET STA REPCT REPCT RSS JSB OUTLN ESPA4 LDA BIT15 SO OPCHK DOESN'T BARF JMP FOR10 * * * * ** EXECUTE LIN(X) * * * ELIN JSB .IENT INTEGERIZE ARGUMENT LDA B400 CLB SET FUNCTION FLAG STB EOL TO EXECUTED SSA,RSS  NO, NEGATIVE ? JMP ELIN1 NO ADA B400 SSA CLA ADA M256 STA REPCT LDA .+12B JSB OUTCR REPCT LINEFEEDS ISZ REPCT JMP *-3 CCA STA REPCT REINITIALIZE REPCT JMP ELIN2 YES ELIN1 ADA M256 SSA,RSS ARGUMENT > 2 56 ? CLA ADA B400 SZA JMP ELIN3 LDA .+15B JSB OUTCR CLA JSB OUTCR CLA STA CHRCT JMP ELIN2 YES ELIN3 CMA,INA STA REPCT OUTPUT JSB OUTCL CR-LF'S ISZ REPCT JMP *-2 CCA RESET STA REPCT REPCT ELIN2 LDA BIT15 SO OPCHK DOESN'T BARF JMP FOR10 SKP * * * ** COMPUTE ABS(X) * * * * EABS SSA ARGUMENT NEGATIVE? JSB ARINV YES, NEGATE IT JMP FOR10 * * * ** COMPUTE INT(X) * * * ENTER WITH NUMBER IN (A) AND (B). EXIT WITH FLOATING * POINT FORM OF ENTIER IN (A) AND (B). * EINT STB LBTMP SAVE (B) JSB #IFIX TAKE ENTIER JMP EINT1 ALL SIGNIFICANCE IN MANTISSA STB LBTMP SAVE (B) LDB .+31 CORRECT FOR STB EXP BINARY POINT BIAS LDB LBTMP RETRIEVE (B) JSB #PACK NORMALIZE AND PACK JMP FOR10 EINT1 LDA TEMP6 RETRIEVE LDB LBTMP NUMBER JMP FOR10 * * * ** EXECUTE TIM(X) * * * * ETIM JSB TIMFN EXT FLOAT JSB FLOAT JMP FOR10 * * * ** COMPUTE RND(X) * * * * * * THE RANDOM NUMBER FUNCTION COMPUTES A RANDOM NUMBER FROM THE * FORMULAS: * * X(N)=A*X(N-1)+C(MOD 2^30) (A=5^11,C=2^30*(1/2-1/SQR(12))) * RND =X/2^30 MIN (1-2^-23) * ERND EQU * SSA,RSS POSITIVE ARGUMENT? JMP ERND1 YES, USE PREVIOUS VALUE RBL,CLE,ERB NO, MAKE A ELA STA RNDX1  A NEW SEED STB RNDX2 ERND1 EQU * LDA RNDX1 COMPUTE FIRST MPY RNDA2 CROSS PRODUCT. STA RNDX1 SAVE (ONLY NEED LOW ORDER PART) LDA RNDX2 COMPUTE 2ND MPY RNDA1 CROSS PRODUCT. ADA RNDX1 ADD IN FIRST. ADA RNDC1 ADD IN HIGH PART OF C. STA RNDX1 SAVE TOTAL. (THIS IS HIGH PART). CLA,CLE SET EXP=0. STA EXP LDA RNDX2 COMPUTE LOW ORDER PRODUCT. MPY RNDA2 ADA RNDC2 ADD IN LOW PART OF C. SEZ ADD ANY CARRY INTO INB B. RAL,CLE,ERA E_A(15),A(15)_0. STA RNDX2 SAVE LOW ORDER RESULT. ELB SHIFT HIGH ORDER PART & ADD IN ADB RNDX1 PREVIOUS TOTAL. ELB,CLE,ERB CLEAR BIT 15 AND STORE. STB RNDX1 RAL SHIFT A ADJACENT TO B. STA SWPTP LDA 1 LDB SWPTP JSB #PACK PACK. CPB .+2 TEST FOR RESULT=1.0 RSS JMP FOR10 LDA INF SET RESULT TO 1-2^-23 LDB M256 JMP FOR10 SWPTP NOP * * RNDA1 DEC 1490 A DIV 2^15 RNDA2 DEC 3805 A MOD 2^15 RNDC1 OCT 16441 C DIV 2^15 RNDC2 OCT 7701 C MOD 2^15 * * * ** COMPUTE SGN(X) * * * * * * ENTER WITH ARGUMENT IN (A) AND (B). IF ARGUMENT IS * NEGATIVE RETURN -1.0, IF ZERO RETURN 0, IF POSITIVE * RETURN 1.0 . * ESGN CLB CLEAR LOW PART OF NUMBER SZA,RSS ZERO? JMP FOR10 SSA,RSS POSITIVE? LDB .+2 YES, LOAD EXPONENT FOR +1 LDA FLGBT NO, LOAD HIGH PART OF -1 SZB WAS ARGUMENT POSITIVE? RAR YES, SET RESULT TO +1 JMP FOR10 * * * ** COMPUTE TYP(X) * * * * * * UPON ENTRY (A) AND (B) HOLD A FILE NUMBER IN FLOATING POINT * FORM. FILE 0 REFERS TO THE S. IF THE FILE * NUMBER IS NEGATIVE RETURN 1.0, 2.0, 3.0, OR 4*+.0 IF THE NEXT * ITEM IN THE FILE IS A NUMBER, STRING, EMD-OF-FILE, OR END- * OF-RECORD RESPECTIVELY. IF THE FILE NUMBER IS POSITIVE RETURN * WITH THE VALUE CORRESPONDING TO THE FIRST ITEM FOUND OF ONE * OF THE FIRST THREE TYPES. * ETYP STB LBTMP SAVE (B) LDB FILE# SAVE VALUE STB PINTG OF FILE# SZA,RSS 'DATA' FILE? JMP ETYP3 YES CCB NO, IGNORE SSA END-OF-RECORDS CLB UNLESS ARGUMENT STB EORFL IS NEGATIVE LDB LBTMP RETRIEVE (B) SSA TAKE ABSOLUTE VALUE JSB ARINV OF ARGUMENT JSB SBFIX 15-BIT INTEGER? JSB RERRS+35,I NO STB FILE# YES LDA FILE# VALIDATE LDB .-2 JSB RQSTR FILE JSB GTTYP GET TYPE ETYP1 LDB PINTG RESTORE STB FILE# FILE# JSB FLOAT JMP FOR10 ETYP2 LDA .+3 LDB NXTDT OUT-OF-DATA CPB SYMTB CONDITION? JMP ETYP1 YES, (A) = 3 JSB SETDP NO, SEEK NEXT ETYP3 CCA MORE DATA IN CPA DCCNT CURRENT STATEMENT? JMP ETYP2 NO LDB NXTDT,I YES, LOAD TYPE WORD CLA,INA SET NUMBER SSB,RSS NUMBER? LDA .+2 NO, SET FOR STRING JMP ETYP1 ** ** *** COMPUTE CHEBYSHEV(X) *** ** ** .CHEB NOP #CHEB JSB #FMP DEF K2 DST X2TMP X2TMP = X*2 LDB .CHEB,I STB CTMP POINTER TO COEFFICIENT TABLE DLD 1,I DST DTMP DTMP = COEFF(N) CLA STA BTMP STA BTMP+1 B = 0 CHEB1 ISZ CTMP ISZ CTMP N = N-1 LDA CTMP,I SZA,RSS C(N) = 0? JMP CHEB2 YES DLD BTMP NO DST ATMP A = B DLD DTMP DST BTMP B = D JSB #FMP DEF X2TMP JSB #FSB DEF ATMP JSB #FAD _ DEF CTMP,I DST DTMP D = COEFF(N)-A+B*X2 JMP CHEB1 CHEB2 DLD DTMP JSB #FSB DEF ATMP JSB #FMP DEF HALF ISZ .CHEB ANS = (D-A)/2 JMP .CHEB,I SPC 1 SPC 1 ** ** *** LIBRARY ENTIER *** ** ** * * ENTER WITH NUMBER IN (A) AND (B). IF EXPONENT > 14 * THEN EXIT TO (P+1), ELSE EXIT TO (P+2) WITH THE * ENTIER OF THE ARGUMENT IN (A). * .IENT NOP #IENT STA LBTMP SAVE (A) LDA 1 EXTRACT AND B377 EXPONENT SLA,RAR NEGATIVE? JMP IENT1 YES ADA .-15 NO, LESS THAN SSA,RSS OR EQUAL TO 14? JMP .IENT,I NO IENT1 ISZ .IENT YES LDA LBTMP RESTORE (A) JSB #IFIX TAKE ENTIER NOP LDA 1 LOAD INTEGER JMP .IENT,I INTO (A) SPC 2 ** ** *** MULTIPLY BY A POWER OF 2 *** ** ** * * ENTER WITH NUMBER IN (A) AND (B). AUGMENT EXPONENT * BY THE VALUE POINTED TO BY (P+1) AND EXIT TO (P+2). * NO CHECK ON EXPONENT UNDERFLOW OR OVERFLOW. * .PWR2 NOP #PWR2 SZA,RSS ARGUMENT ZERO? JMP PWR2A YES, RETURN 0 STA X2TMP NO, SAVE HIGH PART OF MANTISSA JSB #FLUN STB X2TMP+1 SAVE LOW MANTISSA LDB .PWR2,I COMPUTE NEW ADA 1,I EXPONENT RAL POSITION AND B377 AND MASK IT STA 1 COMPUTE NEW LOW ADB X2TMP+1 PART OF NUMBER LDA X2TMP RETRIEVE HIGH MANTISSA PWR2A ISZ .PWR2 JMP .PWR2,I * * * ** COMPUTE COS(X) * * * * ECOS JSB #FAD COMPUTE DEF PIBY2 SIN(X+PI/2) * * * ** COMPUTE SIN(X) * * * * ESIN JSB #FMP DEF TOPI DST XTEMP X = 2*X/PI JSB #FAD DEF K1 JSB .PWR2 DEF .-2 JSB .IENT JSB RERRS+31,I EXPONENT EXCEEDS 14 JSB FLOAT JSB #FMP DEF MM4 JSB #FAD DEF XTEMP DST XTEMP X = X-4*ENTIER((X+1)/4) JSB #FSB DEF K1 SSA X<1? JMP ESIN1 YES DLD K2 NO JSB #FSB DEF XTEMP DST XTEMP X = 2-X ESIN1 DLD XTEMP JSB #FMP DEF XTEMP JSB .PWR2 DEF .+1 JSB #FSB DEF K1 JSB .CHEB DEF COEF2 JSB #FMP DEF XTEMP JMP FOR10 * TOPI DEC .636619772 2/PI MM4 DEC -4. COEF2 DEC 1.18496E-6 DEC -1.365875E-4 DEC 9.118016E-3 DEC -.2852615692 DEC 2.5525579248 OCT 0 * * * ** COMPUTE TAN(X) * * * * ETAN JSB #FMP DEF FOPI 4/PI DST XTEMP JSB #FAD DEF K1 JSB .PWR2 DEF .-2 JSB .IENT JSB RERRS+31,I JSB FLOAT JSB ARINV JSB .PWR2 DEF .+2 JSB #FAD DEF XTEMP DST XTEMP X = X-4*ENTIER((X+1)/4) JSB #FSB DEF K1 STA LBTMP SSA X<1? JMP ETAN2 YES DLD K2 NO JSB #FSB DEF XTEMP ETAN1 DST YTEMP Y = 2-X JSB #FMP DEF YTEMP JSB #FMP DEF K2 JSB #FSB DEF K1 JSB .CHEB DEF COEF0 JSB #FMP DEF YTEMP DST YTEMP Y = Y*CHEBY(2*Y^2 -1) LDA LBTMP SSA X<1? JMP ETAN3 YES DLD K1 NO JSB #FDV DEF YTEMP JMP FOR10 ETAN2 DLD XTEMP JMP ETAN1 Y = X ETAN3 DLD YTEMP JMP FOR10 * FOPI DEC 1.273239545 K1 DEC 1. K2 DEC 2. COEF0 DEC 1.4458E-8 DEC 2.013766E-7 DEC 2.804816E-6 DEC 3.906637E-5 DEC 5.4417038E-4 DEC 7.586101578E-3 DEC .10675392857 DEC 1.7701474227 OCT 0 * * * ** COMPUTE ATN(X) * * * ' * EATN DST XTEMP LDA 1 AND B377 STA LBTMP SZA SLA ABS(X) > 1? JMP EATN2 NO DLD K1 YES JSB #FDV DEF XTEMP U = 1/X EATN1 DST UTEMP JSB #FMP DEF UTEMP JSB #FMP DEF K2 JSB #FSB DEF K1 JSB .CHEB DEF COEF1 JSB #FMP DEF UTEMP DST YTEMP Y = U*CHEBY(2*U^2 -1) LDA LBTMP SZA SLA ABS(X) > 1? JMP EATN3 NO LDA XTEMP YES SSA X<0? JMP EATN4 YES DLD PIBY2 NO JMP EATN4+2 EATN2 DLD XTEMP JMP EATN1 U = X EATN3 DLD YTEMP JMP FOR10 EATN4 DLD MP2 JSB #FSB DEF YTEMP JMP FOR10 * PIBY2 DEC 1.5707963268 PI/2 MP2 DEC -1.5707963268 -PI/2 COEF1 DEC -1.33034E-8 DEC 8.64888E-8 DEC -56.99186E-8 DEC 3.821037E-6 DEC -2.6215196E-5 DEC 1.8574297E-4 DEC -1.381195004E-3 DEC .01113584206 DEC -.1058929245 DEC 1.762747174 OCT 0 * * * ** COMPUTE EXP(X) * * * * EEXP JSB .EXP JMP FOR10 .EXP NOP #EXP JSB #FMP DEF L2E DST XTEMP X = ARG*LOG2(E) JSB .IENT JMP .EXP2 STA LBTMP JSB FLOAT DST YTEMP Y = ENTIER(X) LDA LBTMP ADA M124 SSA,RSS X >= 124? JMP .EXP2 YES ADA .244 NO SSA X < -120? JMP .EXP1 YES DLD XTEMP NO JSB #FSB DEF YTEMP DST XTEMP X = X-ENTIER(X) JSB #FMP DEF XTEMP DST UTEMP U = X^2 JSB #FAD DEF AAAA DST YTEMP Y = X^2+AAAA DLD BBBB JSB #FDV DEF YTEMP DST YTEMP Y = BBBB/Y DLD CCCC JSB #FMP DEF UTEMP JSB #FAD DEF DDDD JSB #FSB DEF XTEMP JSB #FSB DEF YTEMP DST YTEMP Y = -X+DDDD+CCCC*X^2-Y DLD XTEMP JSB #FDV DEF YTEMP JSB #FAD DEF HALF ISZ LBTMP NOP JSB .PWR2 DEF LBTMP JMP .EXP,I ANS = (0.5+X/Y)*2^ENTIER(ARG*LE) .EXP1 CLA CLB JMP .EXP,I ANS = 0 .EXP2 LDA LBTMP LARGE ARGUMENT SSA NEGATIVE? JMP .EXP1 YES JSB WERRS+4,I NO LDA INF LDB .-2 ANS = POSITIVE INFINITY JMP .EXP,I * M124 DEC -124 .244 DEC 244 AAAA DEC 87.417497202 BBBB DEC 617.9722695 CCCC DEC .03465735903 DDDD DEC 9.9545957821 L2E DEC 1.4426950409 SKP * * * ** COMPUTE LOG(X) * * * * ELOG JSB .LOG JMP FOR10 .LOG NOP #LOG SZA,RSS NON-ZERO ARGUMENT? JMP .LOG1 NO SSA YES, POSITIVE ARGUMENT? JSB RERRS+27,I NO STA XTEMP JSB #FLUN STB XTEMP+1 AND FLOATED JSB FLOAT DST YTEMP SEPARATELY DLD XTEMP JSB #FAD DEF R22 DST UTEMP U = X+SQR(0.5) DLD XTEMP JSB #FSB DEF R22 JSB #FDV DEF UTEMP DST UTEMP U = (X-SQR(0.5))/U JSB #FMP DEF UTEMP JSB #FSB DEF CCC DST XTEMP DLD MB JSB #FDV DEF XTEMP JSB #FAD DEF AAA JSB #FMP DEF UTEMP JSB #FSB DEF HALF JSB #FAD DEF YTEMP JSB #FMP DEF LE2 ANS = LOG(2)* JMP .LOG,I (MANTISSA-0.5+U*(AAA+MB/X)) .LOG1 JSB WERRS+1,I LDA MNEG LDB B776 ANS = NEGATIVE INFINITY JMP .LOG,I * B776 OCT 776 R22 DEC .707106781 SQR(0.5) LE2 DEC .6931471806 LOG BASE E (2) AAA DEC 1.2920070987 MB DEC -2.6398577035 CCC DEC 1.6567626301 HED UTILITY ROUTINE * * ENTER WITH: * * (A)=1 IF PBFLG HAS TO BE SET. * * (A)=2 IF PBFLG HAS TO BE CLEAR3ED. * * (A)=4 IF PBFLG AND CBFLG HAVE TO BE CLEARED. * * (B)= POINTER TO ?FLAG * * EXIT WITH ORIGINAL CONTENTS IN B. * EDABR NOP #EDAB SLA,RSS BIT #0 SET? JMP *+4 LDA PBFLG YES. SET PBFLG IOR B,I JMP #EDB1 RAR,SLA NO. BIT #1 SET? LDA PBFLG YES. CLEAR PBFLG LDA B30M NO. CLEAR PBFLG & CBFLG CMA AND B,I #EDB1 STA B,I STORE ?FLAG WORD BACK JMP EDABR,I EXIT * * HED LIBRARY FUNCTIONS SKP TENTH OCT 63146 B63 OCT 63 B120 OCT 120 "P" D62 OCT -62 M71B OCT -71 BB776 OCT 776 F OCT 106 N OCT 116 * * * ** COMPUTE SQR(X) * * * * ESQR SZA,RSS X= 0? JMP FOR10 SSA NO, X < 0? JSB RERRS+28,I YES STA XTEMP NO JSB #FLUN SLA,ARS EXPONENT ODD? JMP ESQR2 YES ADA .-1 NO STA LBTMP EXPONENT/2 -1 STB XTEMP+1 MANTISSA SAVED LDA XTEMP JSB #FMP DEF SA2 JSB #FAD DEF SB2 Y = SB2+SA2*X ESQR1 DST YTEMP DLD XTEMP JSB #FDV DEF YTEMP JSB #FAD DEF YTEMP JSB .PWR2 DEF .-1 DST YTEMP Y = (Y+X/Y)/2 DLD XTEMP JSB #FDV DEF YTEMP JSB #FAD DEF YTEMP JSB .PWR2 DEF LBTMP JMP FOR10 ANS=(P+F/P)*2^ESQ0 ESQR2 STA LBTMP EXPONENT/2 ADB B377 STB XTEMP+1 MANTISSA/2 SAVED LDA XTEMP JSB #FMP DEF SA1 JSB #FAD DEF SB1 JMP ESQR1 Y = SB1+SA1*X * SA1 DEC .875 SA2 DEC .578125 SB1 DEC .27863 SB2 DEC .421875 * * * ** COMPUTE BRK(X) * * * * * * ENTER WITH ARGUMENT IN A AND B. * IF X=0, DISABLE ABORT CAPABILITY. * IF X>0, ENABLE ABORT CAPABILITY. * IF X<0, DO NOT DISABLE OR ENABLE BUT JUST * RETURN A VALUE. * * RETURN WITH: * * 1. 0B@< IF ABORT CAPABILITY WAS DISABLED PREVIOUS * TO EVALUATION. * * 2. +1 IF ABORT CAPABILITY WAS ENABLED PREVIOUS * TO EVALUATION. * EBRK STA XTEMP STORE HIGH PART OF ARGUMENT. LDA MAIN,I A= ?FLAG AND PBFLG CLB SZA,RSS PBFLG BIT SET? LDB .+2 NO. SET (B)=EXPONENT OF +1. LDA FLGBT YES. SET (A)=100000B. SZB,RSS WAS PBFLG SET? CLA YES. SET RETURN VALUE TO 0. RAR NO. SET RETURN VALUE TO +1. DST YTEMP SAVE. * LDB MAIN (B)=> ? FLAG LDA XTEMP RETRIEVE HIGH PART OF ARGUMENT. SZA ARGUMENT=0? JMP EBRK1 CLA,INA YES. SET PBFLG TO 1(=DISABLE JSB EDABR ABORT). JMP EBRK2 EBRK1 EQU * SSA NO. ARGUMENT >0 OR <0? JMP EBRK2 <0. DO NOTHING. LDA .+2 <0 SET PBFLG TO 0(=ENABLE JSB EDABR ABORT). EBRK2 EQU * DLD YTEMP RETURN WITH VALUE OF CONDITION JMP FOR10 END BASMB,R,L,X HED EXECUTION SUBROUTINES NAM XEC6,7 SPC 2 ENT SBFIX,#IFIX,RQSTR,FILST,GTTYP,WRBUF,TRSTR ENT #FAD,#FSB,OUCHK,#FMP,#FDV,#FLUN ENT TRSTB SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,BINO1 COM BINO2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1 SPC 2 EXT CHOUF,FDAT4,EXEC SPC 2 BIT14 OCT 40000 M256 DEC -256 SMSK OCT 77600 FTEL EQU 15 BIT15 OCT 100000 A EQU 0 B EQU 1 SECTR EQU 116B .103 OCT 103 EOR OCT -2 EOF OCT -1 B1000 OCT 1000 B377 OCT 377 RQ2 NOP RQ1 NOP RQ4 NOP RQ5 NOP FILT NOP DADRR NOP WRLEN NOP SPC 2 ** ** *** ROUND NUMBER TO INTEGER *** ** ** * * ENTER WITH NUMBER IN (A) AND (B). EXIT TO (P+2) IF * INTEGER FORM (ROUNDED AS NEEDED) IS POSITIVE AND NOT * LARGER THAN 15 BITS, ELSE EXIT TO (P+1). ON EXIT TO * (P+2), (B) HOLDS TH?E INTEGER BIASED BY -1. * SBFIX NOP #SBFX JSB #IFIX TRUNCATE NUMBER JMP SBFIX,I NUMBER TOO LARGE SZA INTEGER OVERFLOW? JMP SBFIX,I YES SEZ,RSS NO, ROUNDING BIT? ADB .-1 NO, BIAS INTEGER BY -1 SSB,RSS YES, POSITIVE RESULT? ISZ SBFIX YES JMP SBFIX,I NO SKP ** ** *** INTEGERIZE A NUMBER *** ** ** * * ENTER WITH A FLOATING POINT NUMBER IN (A) AND (B). * IF EXPONENT EXCEEDS 23, NUMBER HAS INTEGER SIGNIFICANCE; * EXIT TO (P+1). ALL OTHER CASES EXIT TO (P+2) WITH 32-BIT * INTEGER RIGHT JUSTIFIED IN (A) AND (B). ON EXIT (O) = 0 * IF NUMBER IS EXACTLY REPRESENTALE AS A 16-BIT INTEGER. * IF EXPONENT IS NEGATIVE, TRUNCATE TO 0 OR -1 APPROPRIATELY * AND LET (O) = 1. OTHERWISE RIGHT JUSTIFY INTEGER AND EXIT * WITH LAST BIT LOST IN (E). * #IFIX NOP STA TEMP6 SAVE (A) STO SET 'NOT ONE-WORD INTEGER' MODE JSB #FLUN UNPACK (B) SSA NEGATIVE EXPONENT? JMP IFIX3 YES ADA .-16 NO, EXPONENET SSA <= 15? CLO YES ADA .-8 NO, EXPONENT SSA,RSS <= 23? JMP #IFIX,I ADA .-8 YES, MOVE BINARY POINT TO END OF STA EXP (B) AND SAVE SHIFT COUNT LDA TEMP6 RETRIEVE (A) JMP IFIX2 IFIX1 CLE,SLA,ARS SHIFT (A) RIGHT CME SHIFT SLB,ERB (B) RIGHT STO LOST A 1 IFIX2 ISZ EXP ALL SHIFTS DONE? JMP IFIX1 NO ISZ #IFIX YES JMP #IFIX,I IFIX3 LDA TEMP6 RETRIEVE (A) CLE,SSA TRUNCATE CCA,RSS TO CLA,RSS -1 CCB,RSS OR CLB 0 JMP IFIX3-2 SKP ** ** *** REQUEST A RECORD *** ** ** * * UPON ENTRY (A) HOLDS A FILE NUMBER (PcOSITIVE FOR A READ * REQUEST, NEGATIVE FOR A WRITE REQUEST) AND (B) SPECIFIES * VALIDATION OF THE FILE'S EXISTENCE ( (B) = -2) OR THE FILE * RECORD TO BE PUT IN THE FILE BUFFER ( (B) = -1 REQUESTS * THE RECORD WHICH FOLLOWS THE ONE CURRENTLY IN THE BUFFER, * (B) >= 0 REQUESTS RECORD (B)+1 ). EXIT TO ERROR IF THE * FILE DOES NOT EXIST OR A WRITE REQUEST IS GIVEN FOR A * READ-ONLY FILE. EXIT TO THE END-OF-FILE CODE IF THE * REQUESTED RECORD DOES NOT EXIST. OTHERWI, THE DIRTY * BIT IS EXAMINED TO DETERMINE IF THE FILE BUFFER SHOULD * BE WRITTEN BACK TO DISC. * A READ REQUEST READS THE REQUESTED RECORD INTO THE BUFFER; * A WRITE REQUEST MERELY INITIALIZES THE BUFFER TO 'EMPTY'. * THE FILE TABLE IS UPDATED TO REFLECT THE CHANGES. * RQSTR NOP #RQST STB RQ2 SAVE RECORD REFERENCE CCB GET 1'S COMPLEMENT SSA OF FILE NUMBER AND CLB,RSS SET RQ1 = -1 FOR A CMA READ REQUEST OR 0 STB RQ1 FOR A WRITE REQUEST ADA FCNTR DOES REQUESTED CMA,SSA,RSS FILE EXIST? JSB RERRS+35,I NO ADA FCNTR YES MPY .+FTEL SET POINTER ADA FILTB TO FILE TABLE STA FBASE ENTRY LDA FBASE,I LOAD NUMBER OF RECORDS SZA,RSS DOES FILE EXIST? JSB RERRS+35,I LDB FBASE ADB .+4 STB FBASE CCB,CLE SSA READ-ONLY FILE? CPB RQ1 YES, READ REQUEST? ELA,CLE,SLA,ERA YES, CLEAR BIT 15 AND SKIP JSB RERRS+36,I NO LDB RQ2 FILE VALIDATION CPB .-2 ONLY? JMP RQST9 YES ISZ RQ2 NO, RECORD SPECIFIED? JMP RQST2 YES LDB FBASE,I NO, GET HIGH OLD RECORD ADDRESS CPB BIT15 NULL RECORD? JMP RQST6 YES ISZ FBASE NO, COMPUTE LDB FBASE,I RECORD'S ISZ FBASE DISTANCE ISZ FBASE FROM CMB 9 FIRST ADB FBASE,I RECORD CMB STB RQ5 LDA .-3 ADA FBASE STA B ADA .+2 LDA A,I CMA,INA ADA B,I MPY SECTR ADA RQ5 STA B LDA .-7 GET RECORD ADA FBASE COUNT BACK LDA A,I INTO A ELA,CLE,ERA CLEAR BIT 15 BRS NEW RECORD INB NUMBER JMP RQST7 RQST6 CLB NO RECORD IN CORE RQST2 ISZ FBASE ADJUST POINTER ISZ FBASE TO LOW WORD ISZ FBASE OF BASE ADDRESS RQST7 CMA,INA DOES ADA 1 RECORD SSA EXIST? JMP *+4 YES ISZ FBASE NO, CORRECT FBASE ISZ FBASE JMP FDAT4 RBL ADB FBASE,I LDA B CLB DIV SECTR STB RQ2 LDB FBASE ADB .-1 ADA B,I STA RQ4 LDB .-6 GET ADB FBASE NEGATIVE LDB B,I OF BUFFER BLR,RBR STB RQ5 SAVE IT CMB,INB ISZ FBASE SET POINTER ADB FBASE,I TO BEGINNING ISZ FBASE STB FBASE,I OF RECORD BUFFER STB RQ3 SAVE ADDRESS OF BUFFER STB RQ3BF LDB FBASE MOVE TO ADB .-4 STB FBASE ADDRESSES ADB .-1 LDB B,I RECORD CPB BIT15 IN CORE? JMP RQS15 NO, SKIP COMPARE AND WRITE CPA B RSS JMP RQS25 RQS20 LDA RQ2 CPA FBASE,I JMP RQST3 YES RQS25 JSB WRBUF RQS15 EQU * ISZ RQ1 READ REQUEST? JMP RQST4 NO JSB EXEC DEF *+7 DEF .-1 DEF .103 RQ3BF NOP DEF RQ5 DEF RQ4 DEF RQ2 JMP RQST5 RQST3 ISZ RQ1 WRITE REQUEST? RSS YES JMP RQS14 NO, GO FINISH UP RQST4 LDB EOR SCRATCH RECORD STB RQ3,I WITH END-OF-RECORD MARK  JMP RQS14 GO FINISH UP RQST5 LDB FBASE GET ADB .+9 PROTECT LDA B,I MASK SZA,RSS IS IT ZERO? JMP RQS14 YES, SKIP MASKING STA PMASK NO, SAVE MASK ADB .-6 ADJUST FBASE TO STB FBASE BUFFER LIMIT POINTER LDB RQ3 RQS11 CPB FBASE,I DONE ? JMP RQS13 YES LDA 1,I NO CPA EOR EOR ? JMP RQS13 CPA EOF EOF ? JMP RQS13 AND M256 CPA B1000 STRING ? JMP *+3 ADB .+2 SKIP TWO WORDS JMP RQS11 LDA 1,I YES AND B377 ADA .+3 ARS ADA 1 STA ATMP RQS12 INB MASK CPB ATMP JMP RQS11 STRING LDA 1,I XOR PMASK STA 1,I JMP RQS12 RQS13 LDA FBASE RESTORE ADA .-3 STA FBASE FBASE RQS14 EQU * LDA RQ2 STA FBASE,I NEW RECORD INTO FILE TABLE LDA RQ4 CCB ADB FBASE STB FBASE STA B,I RQST9 LDB FBASE MOVE POINTER ADB .+5 TO REFERENCE STB FBASE RECORD POINTER JMP RQSTR,I SKP ** ** *** STORE ITEM IN FILE *** ** ** * * UPON ENTRY (B) INDICATES WHAT IS TO BE WRITTEN ON THE FILE: * (B) = -1 WRITES AN END-OF-FILE MARK, (B) = -2 WRITES A TWO- * WORD FLOATING POINT NUMBER, (B) = -3 WRITES A STRING. IF * THE RECORD CANNOT ACCOMMODATE THE QUANTITY, A SERIAL WRITE * WILL PLACE IT IN THE FOLLOWING RECORD WHILE A RECORD WRITE * WILL EXIT TO THE END-OF-FILE CODE. * FILST NOP #FILS STB FILT SAVE REQUEST TYPE LDB FBASE GET ADB .+5 PROTECT LDB 1,I MASK STB PMASK CCB LOAD ADB FBASE ACTIVE AND LIMIT DLD 1,I RECORD POINTERS CPA 1 RECORD FULL? JMP FILS1 YES STB DADRR NO, SAVE ACTIVE POINTER ISZ FILT EOF REQUEST? JMP FILS2 NO CCA YES,OVERLAY PREVIOUS STA 1,I EOR OR EOF WITH EOF MARK FILS7 LDB FBASE MAKE POINTER TO SECOND WORD OF ADB .-8 FILE TABLE ENTRY. LDA B,I SET BUFFER IOR BIT15 DIRTY STA 1,I BIT. JMP FILST,I FILS2 ISZ FILT STRING? JMP FILS6 YES ADB .+2 NO FILS3 CMA,INA COMPARE PROSPECTIVE ADA 1 ACTIVE POINTER WITH CMA,INA END-OF-RECORD POINTER SSA OVERFLOW? JMP FILS0 YES STB FBASE,I NO, SAVE NEW ACTIVE POINTER SZA,RSS RECORD EXACTLY FULL? JMP FILS4 YES LDA EOR NO, FOLLOW ENTRY SPACE STA 1,I WITH EOR MARK FILS4 ISZ FILT STRING? JMP FILS5 NO LDA TNULL YES CMA COMPUTE AND IOR B1000 STORE STRING STA DADRR,I HEADER WORD LDA FSCHA TRANSFER JSB TRSTR STRING JMP FILS7 FILS5 DLD SBPTR,I TRANSFER XOR PMASK MASK STA SWPTP LDA 1 LDB SWPTP XOR PMASK DATA STA SWPTP LDA 1 LDB SWPTP DST DADRR,I NUMBER JMP FILS7 FILS6 INB COMPUTE RBL STB TEMP5 ADDRESS CMB,INB COMPUTE ADB TNULL RECORD CMB,INB SPACE CLE,ERB JMP FILS3 FILS0 LDA EOR INSURE EOR MARK STA DADRR,I ENDS PRESENT RECORD LDA .-2 RESTORE ADA FILT REQUEST STA FILT TYPE FILS1 CCB CPB RCRD# SERIAL WRITE? RSS YES JMP FDAT4 LDA FILE# REQUEST CMA RECORD JSB RQSTR TO WRITE JMP #FILS+1 ** ** *** GET NEXT FILE ITEM TYPE *** ** ** * * THE NEX0T ITEM IN THE FILE, NUMBER, STRING, END-OF-FILE, OR * END-OF-RECORD, IS IDENTIFIED AND UPON EXIT (A) =1,2,3, OR 4 * RESPECTIVELY. EORFL = -1 WILL IGNORE END-OF-RECORD'S AND * RETURN WITH THE FIRST OF THE OTHER ITEMS ENCOUNTERED. * GTTY1 LDA FILE# REQUEST JSB RQSTR NEXT RECORD JMP #GTTY GTTYP NOP #GTTY CCB LOAD ACTIVE ADB FBASE AND LIMIT DLD 1,I RECORD POINTERS CPA 1 PHYSICAL END OF RECORD? JMP GTTY3 YES LDA 1,I NO, LOAD WORD CLB,INB OF RECORD CPA EOR END-OF-RECORD? JMP GTTY3 YES CPA EOF NO, END-OF-FILE? JMP GTTY4 YES AND M256 NO CPA B1000 STRING? INB YES, (B) = 2 GTTY2 LDA 1 SET (A) = (B) JMP GTTYP,I GTTY3 LDB FBASE PHYSICAL ADB .-5 NULL RECORD LDA B,I CPA BIT15 IN CORE? JMP GTTY6 YES, SKIP COMPARE ADB .-2 NO. PHYSICAL CPA B,I END-OF-FILE? RSS MAYBE. CONTINUE CHECKING JMP GTTY6 NO INB PHYSICAL LDA B,I END ADB .+2 OF CPA B,I FILE? JMP GTTY5 YES GTTY6 EQU * CCB NO CPB EORFL EOR'S WANTED? JMP GTTY1 NO LDB .+2 YES, SET (B) = 4 GTTY4 ADB .+2 (B) = (B) + 2 JMP GTTY2 GTTY5 LDA .+3 (A) = 3 JMP GTTYP,I SWPTP NOP ** ** *** WRITE BUFFER TO DISC *** ** ** * * THE BUFFER OF THAT FILE CURRENTLY REFERENCED BY FBASE IS * WRITTEN TO ITS PLACE ON THE DISC, UNLESS NOTHING HAS BEEN * WRITTEN INTO THE BUFFER. * WRBUF NOP #WRBU LDB FBASE LOAD SECOND ADB .-4 WORD FROM LDA B,I FILE TABLE ELA ENTRY (RECORD LENGTH) SEZ,CLE,RSS HAS BIT 15 BEEN SET? JMP WRBUF,I NO { ERA YES, CLEAR IT STA B,I STORE IT BACK ADB .+3 GET HIGH CURRENT LDA B,I RECORD ADDRESS CPA BIT15 NULL RECORD? JMP WRBUF,I YES, DON'T WRITE RECORD OUT ADB .+10 GET LDA B,I PROTECT MASK SZA,RSS IS IT ZERO? JMP WRBU7 YES, SKIP STRING MASKING STA PMASK NO, SAVE MASK ADB .-6 ADJUST FBASE TO STB FBASE BUFFER LIMIT POINTER LDB RQ3 WRBU4 CPB FBASE,I DONE ? JMP WRBU6 LDA 1,I NO CPA EOR EOR ? JMP WRBU6 CPA EOF EOF ? JMP WRBU6 AND M256 CPA B1000 STRING ? JMP *+3 ADB .+2 SKIP TWO WORDS JMP WRBU4 LDA 1,I YES AND B377 ADA .+3 ARS ADA 1 STA ATMP WRBU5 INB CPB ATMP JMP WRBU4 LDA 1,I XOR PMASK STA 1,I JMP WRBU5 WRBU6 LDB FBASE ADB .-3 STB FBASE ADB .+9 => PMASK WORD WRBU7 ADB .-13 => WORDS/RECORD WORD LDA B,I IOR BIT14 SET FILE STA B,I DIRTY BIT ALR,RAR CLEAR DIRTY BITS AND STA WRLEN LDA RQ3 STA RQ3B ADB .+3 STB WRTRK INB STB WRSEC JSB EXEC DEF *+7 DEF .-2 DEF .103 RQ3B NOP DEF WRLEN WRTRK NOP WRSEC NOP JMP WRBUF,I ** ** *** TRANSFER A STRING *** ** ** * * THE NUMBER OF CHARACTERS SPECIFIED BY TNULL (IN 1'S * COMPLEMENT) IS TRANSFERRED FROM THE SOURCE STRING TO * A DESTINATION STRING BEGINNING WITH THE CHARACTER * ADDRESSED BY TEMP5. * TRSTR NOP #TRST STA TRFCH SAVE SUBROUTINE CALL ISZ TNULL MORE TRANSFER STRING? RSS YES TRSTB JMP TRSTR,I JSB TRFCH,I FETCH A SOURCE CHARACTER LDA .+40B NONE LEFT, LOAD A BLANK STW1A TRS0 SAVE IT LDB TEMP5 LOAD CLE,ERB DESTINATION LDA 1,I WORD SEZ,RSS SAVE ALF,ALF OTHER AND M256 CHARACTER IOR TRS0 COMBINE WITH SEZ,RSS NEW CHARACTER ALF,ALF AND STORE STA 1,I WORD ISZ TEMP5 INCREMENT DESTINATION ADDRESS JMP #TRST+1 HED ARITHMETIC SUBROUTINES ** *** ADD TWO FLOATING POINT NUMBERS ** #FAD NOP STA A1 SET POINTER TO 2ND ARGUMENT LDA #FAD,I STA A2 LDA A1 FAD A2,I ISZ #FAD SET RETURN ADDRESS SOC JSB OUCHK OVERFLOW OR UNDERFLOW! JMP #FAD,I RETURN ** *** SUBTRACT TWO FLOATING POINT NUMBERS ** #FSB NOP STA A1 SET POINTER TO 2ND ARGUMENT LDA #FSB,I STA A2 LDA A1 FSB A2,I ISZ #FSB SET RETURN ADDRESS SOC JSB OUCHK OVERFLOW OR UNDERFLOW! JMP #FSB,I RETURN ** *** DETERMINES IF OVERFLOW OR UNDERFLOW *** MESSAGE HAS TO BE GIVEN. ** OUCHK NOP #OUCK STA A1 SAVE REGISTERS. STB A2 SZA OVER- OR UNDERFLOW? JMP OUCK2 JSB CHOUF UNDERFLOW! CHECK STATUS. JSB WERRS+6,I OUCK1 EQU * LDA A1 RE-INSTATE REGISTERS. LDB A2 JMP OUCHK,I RETURN. OUCK2 EQU * JSB CHOUF OVERFLOW! CHECK STATUS. JSB WERRS+5,I JMP OUCK1 ** ** ** *** MULTIPLY TWO FLOATING POINT NUMBERS *** ** ** #FMP NOP STA A1 SET POINTER TO 2ND ARGUMENT LDA #FMP,I STA A2 LDA A1 FMP A2,I ISZ #FMP SET RETURN ADDRESS SOC JSB OUCHK OVERFLOW OR UNDERFLOW! JMP #FMP,I RETURN ** *** DIVIDE TWO FLOATING POINT NUMBERS ** #FDV NOP STA A1 SET POINTER TO 2ND ARGUMENT 8<:6 LDA #FDV,I STA A2 LDA A1 FDV A2,I ISZ #FDV SET RETURN ADDRESS SOC JSB OUCHK OVERFLOW OR UNDERFLOW! JMP #FDV,I RETUNR ** *** UNPACK LOW WORD OF NUMBER *** ** * * ENTER WITH LOW WORD OF FLOATING POINT NUMBER IN (B). * EXIT WITH EXPONENT IN (A) AND MANTISSA IN (B). * #FLUN NOP STB SWPTP LDA 1 ALF,ALF AND B377 STA 1 LDA SWPTP AND B377 BLF,BLF MANTISSA IN (B) SLA,RAR NEGATIVE EXPONENT? IOR SMSK YES, FILL IN LEADING BITS JMP #FLUN,I NO END }<ASMB,R,L,X HED EXECUTION PROCESSORS & MISC. SUBROUTINES NAM XEC3,7 SPC 2 ENT SETDP,VLFIL,FDATA,INCAL,FETCH,SETPT ENT XECBR ENT FDAT4 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ SPC 2 EXT SCHLB,EXIT3,CMPL0,SBFIX,RQSTR,INF EXT GTTYP,OUTCR,SCHIN,GETCR,BCKSP EXT EASN,XEC1,ELET,EGOTO,EIF,EFOR,ENEXT,EGOSB EXT ERTRN,EXIT,EINPT,EREAD,EPRIN,ERSTR EXT EENTR,ELET,OPCHK,LWAUS,EXIT,FORMX EXT EMAT,ECHAN SPC 2 OPMSK OCT 77000 DATOP OCT 62000 B4000 OCT 4000 PRTOP OCT 65000 B2000 OCT 2000 B377 OCT 377 M72 DEC -72 B77 OCT 77 IWT OCT 160003 ** ** *** SET POINTERS TO DATA STATEMENT *** ** ** * * STARTING WITH THE STATEMENT REFERENCED BY (B) UPON * ENTRY, FIND THE NEXT AND SET THE DATA * BLOCK POINTERS APPROPRIATELY. IF NO * IS FOUND, SET THE POINTERS TO THE 'OUT OF DATA' *  CONFIGURATION AND EXIT WITH (A) = -1. * SETDP NOP #STDP CPB SYMTB PROGRAM EXHAUSTED? JMP SETD2 YES, SET 'OUT OF DATA' CONDITION ADB .+2 NO, LDA 1,I STATEMENT ADB .-1 OF AND OPMSK TYPE CPA DATOP 'DATA'? JMP SETD1 YES ADB 1,I NO, COMPUTE ADB .-1 ADDRESS OF JMP #STDP NEXT STATEMENT SETD1 LDA 1,I LOAD STATEMENT LENGTH INB SET CMA,INA DATA INA,RSS COUNTER SETD2 CCA TO STA DCCNT 1-STATEMENT LENGTH STB NXTDT SET POINTER ONE WORD JMP SETDP,I ABOVE FIRST DATA CONSTANT ** ** *** VALIDATE A FILE REQUEST *** ** ** * * EXIT TO (P+2) IF (TEMP1)+1 DOES NOT BEGIN A FILE REFERENCE; * ELSE EVALUATE THE FILE REFERENCE AND VERIFY ITS CORRESPONDENCE * WITH A REQUESTED FILE. IF A RECORD REFERENCE IS ALSO PRESENT, * EVALUATE IT AND CALL FOR ITS SWAPPING INTO THE CORE BUFFER. * VLFIL NOP #VLFI LDB TEMP1 IS INB CPB PRGCT NEXT JMP VLFI0 LDA 1,I OPERATOR AND OPMSK CPA B4000 A '#' ? JMP VLFI1 YES VLFI0 ISZ VLFIL NO, EXIT JMP VLFIL,I TO (P+2) VLFI1 CCB SET LDA TEMP1,I VL0 = 0 AND OPMSK FOR CPA PRTOP 'PRINT', CLB ELSE STB VL0 VL0 = -1 ISZ TEMP1 EVALUATE JSB FETCH FILE REFERENCE JSB SBFIX 15-BIT INTEGER? JSB RERRS+35,I NO STB FILE# YES, SAVE IT LDA TEMP1,I NEXT AND OPMSK OPERATOR CPA B2000 A COMMA? JMP VLFI3 YES CCB NO, USE NULL RECORD VLFI2 STB RCRD# SSB NULL RECORD? LDB .-2 YES, DO NOT ADJUST FILE POINTER LDA FILE# W ISZ VL0 WRITE REQUEST? CMA YES JSB RQSTR VALIDATE FILE/RECORD REQUEST JMP VLFIL,I VLFI3 JSB FETCH EVALUATE RECORD REFERENCE JSB SBFIX 15-BIT INTEGER? LDB INF NO, LOAD IMPOSSIBLE RECORD JMP VLFI2 YES ** ** *** FETCH DATA ITEM *** ** ** * * UPON ENTRY (B) = 1 IF A NUMBER IS REQUESTED OR (B) = 2 IF A * STRING IS REQUESTED. FDATA FILLS THE REQUEST FROM A FILE IF * ONE IS REFERENCED BY THE CALLER, ELSE FROM THE DATA BLOCK. * TYPE MATCH IS CHECKED. NUMBERS RETURN IN (A) AND (B); STRINGS * ARE PREPARED AS SOURCE STRINGS. FDATA MOVES TO NEW FILE * RECORDS OR S AS NECESSARY. * FDATA NOP #FDAT LDA FILE# READ FROM SSA,RSS FILE? JMP FDAT3 YES ISZ DCCNT NO, DATA IN CURRENT STATEMENT? JMP FDAT1 YES STB TEMP5 NO, SAVE (B) LDB NXTDT MOVE TO NEXT JSB SETDP LDB TEMP5 RETRIEVE (B) ISZ DCCNT DATA FOUND? RSS YES JSB RERRS+21,I NO, OUT OF DATA FDAT1 ISZ DCCNT INCREMENT COUNTER LDA NXTDT,I CORRECT ISZ NXTDT RBR TYPE OF XOR 1 SSA DATA? JSB RERRS+22,I NO SSB,RSS YES, STRING? JMP FDAT2 YES DLD NXTDT,I NO, LOAD NUMBER ISZ NXTDT UPDATE ISZ NXTDT POINTER ISZ DCCNT JMP FDATA,I FDAT2 LDA NXTDT,I LOAD STRING LENGTH ISZ NXTDT SET LDB NXTDT START-OF-STRING RBL STB TEMP4 ADDRESS AND B377 SET CMA TRANSFER STRING STA TPRME LENGTH CMA,INA UPDATE ARS LDB 0 ADA NXTDT DATA STA NXTDT ADB DCCNT STB DCCNT POINTERS JMP FDATA,I FDAT3 LDA FBASE GET ADA .+5 LDA 0,NI PROTECT STA PMASK MASK STB TEMP5 SAVE DATA REQUEST TYPE LDB RCRD# GET TYPE STB EORFL OF NEXT ITEM JSB GTTYP IN FILE CPA TEMP5 MATCHING TYPES? JMP FDAT5 YES CPA .+4 NO, END-OF-RECORD? JMP FDAT4 YES CPA .+3 NO, END-OF-FILE? RSS YES JSB RERRS+22,I NO, TYPE MISMATCH FDAT4 ISZ FBASE LOAD LDB FBASE,I EOF/EOR ADDRESS SZB,RSS NULL? JSB RERRS+37,I YES, UNPROTECTED EOF/EOR STB PRGCT NO LDB FORST CLEAN UP JSB SETPT EXECUTION STACKS JMP XEC1 FDAT5 LDB FBASE,I LOAD DATA ADDRESS SLA,RSS STRING? JMP FDAT6 YES DLD 1,I NO, LOAD NUMBER XOR PMASK MASK STA SWPTP LDA 1 LDB SWPTP XOR PMASK DATA STA SWPTP LDA 1 LDB SWPTP ISZ FBASE,I ADJUST RECORD POINTER ISZ FBASE,I PAST DATA JMP FDATA,I FDAT6 LDA 1,I LOAD STRING HEADER INB SET RBL STB TEMP4 ADDRESS RBR AND B377 SET CMA TRANSFER STA TPRME LENGTH CMA,INA ADJUST ARS RECORD POINTER ADB 0 PAST STB FBASE,I STRING JMP FDATA,I SWPTP NOP SKP ** ** *** REQUEST AN INPUT RECORD *** ** ** * * SERVICES REQUESTS FOR TELETYPE INPUT. IF (A) = 0 EMIT A '?' * AND 'X-ON' ELSE EMIT A LINE FEED, TWO '?', AND AN 'X-ON'. * INCAL NOP #INCL STA ITEMP SAVE FLAG LDA MAIN DOES THIS USER INA HAVE THE CPA PRIST LINE PRINTER? JSB WERRS+9,I YES - RELEASE IT LDA ITEMP RESTORE FLAG SZA INITIAL REQUEST? JMP INCL2 NO LDA CHRCT YES ADA M72 LINE 1 SSA FULL? JMP INCL1 NO LDA .+15B YES, OUTPUT JSB OUTCR CARRIAGE RETURN LDA .+12B AND JSB OUTCR LINE FEED INCL1 LDA B77 OUTPUT JSB OUTCR '?' LDA .+21B OUTPUT JSB OUTCR AN X-ON CLA RESET STA CHRCT OUTPUT CHARACTER COUNTER STA IFCNT AND INPUT ITEM COUNTER LDA IWT JSB SCHIN JSB GETCR FIRST JMP INCL2 CHARACTER A CPA .+3 'CONTROL C' ? JMP EXIT JSB BCKSP NO, RETURN JMP INCAL,I TO CALLER INCL2 LDA .+12B OUTPUT A JSB OUTCR LINE FEED LDA B77 AND JSB OUTCR A '?' JMP INCL1 ** ** *** EXECUTION BRANCH TABLE *** ** ** XECBR DEF XECTB-42B,I XECTB DEF EASN ASSIGN DEF XEC1 USING DEF XEC1 IMAGE DEF XEC1 COM DEF ELET LET DEF XEC1 DIM DEF XEC1 DEF DEF XEC1 REM DEF EGOTO GOTO DEF EIF IF DEF EFOR FOR DEF ENEXT NEXT DEF EGOSB GOSUB DEF ERTRN RETURN DEF EXIT END DEF EXIT STOP DEF XEC1 DATA DEF EINPT INPUT DEF EREAD READ DEF EPRIN PRINT DEF ERSTR RESTORE DEF EMAT MAT DEF XEC1 FILES DEF ECHAN CHAIN DEF EENTR ENTER DEF ELET 'IMPLIED' LET ** ** *** FETCH FORMULA VALUE *** ** ** * * RETURN WITH THE RESULT IN (A) AND (B) * FETCH NOP #FTCH JSB FORMX EVALUATE FORMULA JSB OPCHK UNSTACK ADDRESS DLD 1,I LOAD RESULT JMP FETCH,I ** ** *** SET EXECUTION POINTERS *** ** ** * * SETS POIN^$"TERS TO THOSE STACKS WHOSE LOCATION MAY CHANGE * DURING EXECUTION, USUALLY DUE TO INITIATION OR COMPLETION * OF FOR-LOOPS. * SETPT NOP #STPT STB FORST SET TOP OF FOR-STACK ADB .+4 SET POINTER TO TOP STB TMPST OF TEMPORARY STACK ADB .+20 SET POINTER TO TOP STB OPDST OF OPERAND STACK ADB .+3 SET POINTER TO BOTTOM STB OPTRQ OF OPERATOR STACK CMB OUT ADB LWAUS OF SSB STORAGE? JSB RERRS+10,I YES LDB OPTRQ NO, SET POINTER TO TOP STB PBPTR OF OPERATOR STACK JMP SETPT,I END $ASMB,R,L,X HED MATRIX ROUTINES NAM MAT0,7 SPC 2 ENT EMAT,MIO7,VCHK SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 SPC 2 EXT EPRUS,VLFIL,XEC1,FDATA,FILST,EDELM EXT ENOUT,OUTLN,EIN12,XEC1A,#FMP,#FAD EXT FETCH,LW AUS,ARINV,#FDV,#FSB,SBFIX EXT EINPZ,EINP1 SPC 2 BS1 EQU SBPTR OPDMK OCT 100777 B77 OCT 77 D65 OCT -65 OPMSK OCT 77000 LBOP OCT 12000 B3000 OCT 3000 MULOP OCT 22000 MNEG OCT 100000 BIT15 EQU MNEG HED MATRIX EXECUTION MINP2 DEF EINPZ MINP1 DEF EINP1 * *** ** ** EXECUTE ** *** ** * MLP2A DEF MLOP2 MLP3A DEF MLOP3 MADDA DEF MADD MSUBA DEF MSUB SMULA DEF SMULT IDNA DEF IDN MCPYA DEF MCPY TOLC DEC +1E-6 F0.0A DEF F0.0 F0.0 DEC 0.0 F1.0A DEF F1.0 F1.0 DEC 1.0 * EMAT LDA TEMP1,I FIRST AND OPDMK OPERAND SZA NULL? JMP EMAT1 NO * * ** IDENTIFY MATRIX I/O ** * * ISZ TEMP1 CCA CHECK STA ELCNT FOR JSB EPRUS 'MAT PRINT USING' LDA TEMP1,I COMPUTE AND SAVE ALF,ALF RAR AND B77 INPUT = -2 ADA D65 READ = -1 STA MT1 PRINT = 0 SSA,INA,SZA SAVE FLAG STA MT0 IF 'INPUT' JSB VLFIL PROCESS ANY NOP FILE REQUEST MIO1 LDA TEMP1,I LOAD NEXT AND OPDMK IDENTIFIER SZA,RSS ZERO? JMP XEC1 * * ** PREPARE A MATRIX FOR I/O ** * * ALS LOAD ADA SYMTB BASE ADDRESS ADA .-1 OF ARRAY LDB 0,I ADB .-2 SAVE POINTER TO STB SBPTR DYNAMIC DIMENSIONS LDA TEMP1 LAST INA WORD OF CPA PRGCT STATEMENT? CLA YES LDA 0,I NO, LOAD (A) WITH AND OPMSK FOLLOWING OPERATOR LDB MT1 MAT SZB,RSS PRINT? JMP MIO2 YES CPA LBOP NO, '[' NEXT OPERATOR? JSB REDIM YES, REDIMENSION ARRAY LDA SBPTR,I SEJmT POINTER ISZ SBPTR TO FIRST ELEMENT MPY SBPTR,I OF ARRAY ISZ SBPTR WHILE COMPUTING CMA,INA NUMBER OF STA MCNT ELEMENTS CCA MAT CPA MT1 READ? JMP MIO9 YES * * ** INPUT VALUES FOR MATRIX ** * * ISZ MT0 FIRST MATRIX TO BE INPUT? RSS NO JMP MINP1,I YES ADA MT0 RETRIEVE JMP MINP2,I SAVED CHARACTER * * ** READ VALUES FOR MATRIX ** * * MIO9 CLB,INB FETCH JSB FDATA CONSTANT DST SBPTR,I STORE ISZ SBPTR ISZ SBPTR IT ISZ MCNT DONE? JMP MIO9 NO JMP MIO7 YES * MIO2 CPA B3000 ';' FOLLOWING ARRAY? CCB YES STB MCNT NO, TREAT AS COMMA LDB SBPTR VALIDATE JSB VCHK ARRAY ELEMENTS LDA SBPTR,I SAVE ISZ SBPTR COUNT CMA,INA OF STA MT0 ROWS LDA SBPTR,I ISZ SBPTR LDB FILE# WRITE ON SSB A FILE? JMP MIO3 NO * * ** WRITE MATRIX ON FILE ** * * MPY MT0 SET STA MCNT ELEMENT COUNTER MIO4 LDB .-2 WRITE ELEMENT JSB FILST TO FILE ISZ SBPTR MOVE TO ISZ SBPTR NEXT ELEMENT ISZ MCNT MATRIX DONE? JMP MIO4 NO JMP MIO7 YES SKP * * ** WRITE MATRIX ON TELETYPE ** * * MIO3 CMA,INA SAVE STA MT3 COLUMN COUNT MIO8 STA MT2 SET COLUMN COUNT JMP MIO6 MIO5 CLA CPA MCNT JSB EDELM MIO6 DLD SBPTR,I PRINT JSB ENOUT ELEMENT ISZ SBPTR MOVE TO ISZ SBPTR NEXT ELEMENT ISZ MT2 ROW DONE? JMP MIO5 NO JSB OUTLN YES, DOUBLE JSB OUTLN SPACE LDA MT3 ISZ MT0 MATRIX DONE? JMP MIO8 NO * * ** CHECK FOR MORE MATRICES ** * * MIO7 ISZ TEMP1 LDB TEMP1 STATEMENT CPB PRGCT FINISHED? JMP *+3 YES STA MT0 NO, SAVE (A) JMP MIO1 LDB .-2 MATRIX CPB MT1 INPUT? JMP EIN12 JMP XEC1 * * ** PREPARE MATRIX ASSIGNMENT ** * * EMAT1 LDB XEC1A SET MAIN LOOP TO STB MEXIT STATEMENT EXIT MODE ALS ADA SYMTB COMPUTE ADA .-1 POINTER LDB 0,I TO ADB .-2 DESTINATION STB BS1 MATRIX ISZ TEMP1 LDA TEMP1,I MATRIX SSA FUNCTION? JMP EMAT6 YES LDB MLP2A NO, SET OPERATION EMAT2 STB MOP JUMP TO 'REPLACE' MODE ISZ TEMP1 AND OPDMK SCALAR SZA,RSS MULTIPLICATION? JMP EMAT5 YES ALS NO ADA SYMTB COMPUTE ADA .-1 POINTER LDB 0,I TO FIRST ADB .-2 SOURCE STB BS2 MATRIX JSB VCHK VALIDATE ITS ELEMENTS LDA TEMP1 END OF CPA PRGCT STATEMENT? JMP EMAT3 YES LDA TEMP1,I NO AND OPDMK COMPUTE ALS ADA SYMTB POINTER TO ADA .-1 LDB 0,I SECOND ADB .-2 STB BS3 SOURCE MATRIX JSB VCHK VALIDATE ITS ELEMENTS LDA TEMP1,I AND OPMSK MATRIX CPA MULOP MULTIPLICATION? JMP EMAT4 YES ALF,RAR RAR * * ** SET UP MATRIX ADD, SUBTRACT, OR REPLACE ** * * LDB MADDA RECORD SSA 'MATRIX ADD' LDB MSUBA OR 'MATRIX SUBTRACT' STB MOP OPERATION JUMP LDB BS1 LDA 1,I ROW CPA BS3,I COMPATIBILITY? INB,RSS YES JSB RERRS+11,I NO ISZ BS3 LDB 1,I COLUMN CPB BS3,I COMPATIBILITY? RSS YES JSB RERRS+11,I NO ISZ BS3 EMAT3 LDA BS2,I ROW CPA BS1,I COMPATIBILITY? RSS YES JSB RERRS+11,I NO ISZ BS2 ISZ BS1 COMPUTE NUMBER MPY BS2,I OF MATRIX ELEMENTS LDB BS2,I COLUMN CPB BS1,I COMPATIBILITY? CMA,INA,RSS YES JSB RERRS+11,I NO STA MCNT SAVE 2'S COMPLEMENT OF SIZE ISZ BS2 ISZ BS1 SKP * * ** ASSIGN MATRIX VALUE ** * * * * MOP HOLDS A POINTER TO CODE WHICH COMPUTES ONE ELEMENT OF THE * DESTINATION MATRIX AND RETURNS IT IN (A) AND (B). MEXIT * HOLDS THE EXIT ADDRESS SET BY THE CALLER. * MLOOP DLD BS2,I LOAD ELEMENT OF SOURCE MATRIX JMP MOP,I JUMP TO OPERATION MLOP1 ISZ BS3 MOVE TO NEXT ELEMENT ISZ BS3 OF SECOND SOURCE MATRIX MLOP2 ISZ BS2 MOVE TO NEXT ELEMENT ISZ BS2 OF FIRST SOURCE MATRIX MLOP3 DST BS1,I RECORD ELEMENT ISZ BS1 OF DESTINATION MATRIX ISZ BS1 AND MOVE TO NEXT ELEMENT ISZ MCNT DONE? JMP MLOOP NO JMP MEXIT,I YES * * ** COMPUTE MATRIX PRODUCT ** * * EMAT4 LDA BS1,I DESTINATION MATRIX CPA BS2,I ROW COMPATIBILITY? CMA,INA,RSS YES JSB RERRS+11,I NO STA MMT0 SAVE ROW COUNTER ISZ BS1 ISZ BS2 LDA BS2,I INNER PRODUCT CPA BS3,I COMPATIBILITOY? CMA,INA,RSS YES JSB RERRS+11,I NO STA MMT1 SAVE INNER PRODUCT STA MMT2 COUNTERS ALS SAVE ROW STA MMT6 BACK UP AMOUNT MPY BS1,I SAVE COLUMN ADA .+2 BACK UP STA MMT7 AMOUNT ISZ BS3 LDA BS1,I DESTINATION MATRIX CPA BS3,I COLUMN COMPATIBILITY? CMA,INA,RSS YES JSB RERRS+11,I NO STA MMT3 SAVE COLUMN STA MMT4 COUNTERS CMA,INA SAVE COLUMN ALS ADVANCE STA MMT5 AMOUNT ISZ BS1 MOVE TO ISZ BS2 FIRST ELEMENT ISZ BS3 OF MATRICES LDB BS3 SAVE FIRST-ELEMENT ADDRESS STB MMT8 OF SECOND SOURCE MATRIX MPR1 DLD F0.0 INITIALIZE DESTINATION DST BS1,I ELEMENT TO ZERO MPR2 DLD BS2,I COMPUTE ISZ BS2 TERM ISZ BS2 OF JSB #FMP INNER DEF BS3,I PRODUCT JSB #FAD ADD IN PREVIOUS DEF BS1,I RUNNING SUM DST BS1,I SAVE RUNNING SUM LDB BS3 ADVANCE TO ADB MMT5 NEXT ROW OF STB BS3 SECOND SOURCE MATRIX ISZ MMT2 INNER PRODUCT COMPLETE? JMP MPR2 NO ISZ BS1 YES, MOVE TO NEXT ISZ BS1 DESTINATION ELEMENT LDB MMT1 RESET INNER PRODUCT STB MMT2 TERM COUNTER ISZ MMT4 ROW COMPLETE? JMP MPR3 NO LDB MMT3 YES, RESET STB MMT4 COLUMN COUNTER ISZ MMT0 DONE? JMP MPR4 NO JMP XEC1 MPR3 LDB BS2 BACK UP ADB MMT6 TO BEGINNING OF ROW OF STB BS2 FIRST SOURCE MATRIX LDB BS3 BACK UP TO BEGINNING ADB MMT7 OF NEXT COLUMN RSS OF SECOND SOURCE MATRIX MPR4 LDB MMT8 BACK UP TO FIRST ELEMENT STB BS3 JMP MPR1 * O * ** SET UP SCALAR MULTIPLICATION ** * * EMAT5 JSB FETCH COMPUTE AND DST SCALR SAVE SCALAR ISZ TEMP1 LOAD OPERATION JUMP ISZ TEMP1 PROCESS LDA TEMP1,I FOLLOWING LDB SMULA MATRIX JMP EMAT2 * EMAT6 ALF,ALF ALF AND .+37B MATRIX ADA .-27B FUNCTION STA ID0 TYPE SSA,RSS MATRIX INITIALIZATION? JMP EMAT8 NO * * ** SET UP MATRIX INITIALIZATION ** * * LDB TEMP1 INB CPB PRGCT REDIMENSIONING? RSS NO JSB REDIM YES INVL LDA BS1,I COMPUTE STA ID1 NUMBER ISZ BS1 OF ELEMENTS MPY BS1,I IN 2'S CMA,INA COMPLEMENT STA MCNT SAVE IT ISZ ID0 'IDN' ? JMP EMAT7 NO LDA BS1,I YES CPA ID1 SQUARE MATRIX? CMA,RSS YES JSB RERRS+24,I NO STA ID0 SET CCA DIAGONAL STA ID1 COUNTER LDA IDNA LOAD OPERATION JUMP JMP *+4 EMAT7 LDA MLP3A RECORD LDB F1.0A CORRECT CONSTANT: ISZ ID0 0.0 FOR 'ZER' LDB F0.0A 1.0 FOR 'CON' STB BS2 0.0 FOR 'IDN' STA MOP RECORD OPERATION JUMP JMP MLOOP-1 * EMAT8 ISZ TEMP1 COMPUTE LDA TEMP1,I AND OPDMK POINTER ALS ADA SYMTB TO ADA .-1 LDB 0,I SOURCE ADB .-2 STB BS2 MATRIX JSB VCHK VALIDATE IT LDB BS1,I LOAD DESTINATION ROW DIMENSION BLS SAVE COLUMN STB MMT3 ADVANCE AMOUNT BRS ISZ BS1 LDA BS1,I ARE COLUMNS OF DESTINATION CPA BS2,I AND ROWS OF SOURCE EQU'AL? CMA,INA,RSS YES JSB RERRS+11,I NO STA MMT1 SAVE DESTINATION MATRIX STA MMT2 COLUMN COUNTERS ISZ BS2 ARE ROWS OF DESTINATION AND CPB BS2,I COLUMNS OF SOURCE EQUAL? CMB,INB,RSS YES JSB RERRS+11,I NO STB MMT0 SAVE ROW COUNTER MPY MMT3 SAVE COLUMN BACK UP ISZ BS2 LDB ID0 SZB,RSS 'TRN' ? JMP INV NO ADA .+2 YES, SAVE COLUMN STA MMT4 BACK UP AMOUNT ISZ BS1 FOR SOURCE MATRIX JMP TRN TRN1 LDB MMT1 RESET STB MMT2 COUNTER LDB BS2 BACK UP TO ADB MMT4 FIRST ELEMENT STB BS2 OF NEXT COLUMN * * ** TRANSPOSE A MATRIX ** * * TRN DLD BS2,I TRANSFER DST BS1,I ELEMENT ISZ BS1 ISZ BS1 LDB BS2 ADVANCE TO ADB MMT3 NEXT ELEMENT STB BS2 OF COLUMN ISZ MMT2 COLUMN TRANSFERRED? JMP TRN NO ISZ MMT0 YES, DONE? JMP TRN1 NO JMP XEC1 * * ** INVERT A MATRIX ** * * INV LDB 0 SAVE 2'S COMPLEMENT ARS OF NUMBER OF STA MCNT ELEMENTS IN MATRIX LDA BS1 SAVE ADDRESS OF STA BS3 DESTINATION MATRIX LDA TMPST SET ADDRESS ADA .+2 OF FREE CORE STA BS1 AS BASE ADDRESS CMA,INA SUFFICIENT ADA LWAUS FREE CORE ADA 1 TO COPY CMA,SSA,RSS SOURCE MATRIX? JSB RERRS+10,I NO ADA LWAUS YES, INCLUDE IT STA PBPTR IN SWAP AREA CLB SET 'MAXIMUM ELEMENT' STB MAXE VALUE TO STB MAXE+1 ZERO LDA MCPYA SET UP TO STA MOP COPY MATRIX, LDA INV1 FIND MAXIMUM (ABSOLUTE B STA MEXIT VALUE) ELEMENT, JMP MLOOP AND RETURN INV1 DEF *+1 DLD MAXE COMPUTE JSB #FMP RELATIVE DEF TOLC TOLERANCE DST TOL CCA STA ID0 RESTORE ADA BS3 DESTINATION STA BS1 BASE ADDRESS CMA,INA COMPUTE DIFFERENCE ADA TMPST BETWEEN BASE ADDRESSES CMA,INA OF SOURCE (COPIED) STA BS3 AND DESTINATION LDA INV2 MATRICES STA MEXIT SET DESTINATION MATRIX JMP INVL TO IDENTITY AND RETURN INV2 DEF *+1 LDB TMPST SAVE ADB .+2 BASE ADDRESS LDA 1 OF SOURCE STB BS2 MATRIX ADB BS3 SAVE BASE ADDRESS OF STB BS1 DESTINATION MATRIX CLB SET PIVOT ELEMENT STB ID0 BIAS TO ZERO JMP INV4 INV3 LDA ID0 SET BIAS ADA .-2 FOR NEXT STA ID0 PIVOT ELEMENT LDA MMT0 INITIALIZE COUNTER TO STA MMT2 2'S COMPLEMENT OF COLUMNS LDA PIVEL UPDATE PIVOT ADA MMT3 ADDRESS ADA .+2 TO NEXT INV4 STA PIVEL DIAGONAL ELEMENT STA MMT4 INITIALIZE CLB PIVOT ELEMENT STB MAXE AS MAXIMUM STB MAXE+1 IN COLUMN LDB MMT1 SET COUNTER TO SEARCH STB MMT5 REMAINDER OF COLUMN INV5 STA MMT6 LOAD DLD MMT6,I ELEMENT SSA GET JSB ARINV ABSOLUTE DST SCALR VALUE JSB #FSB SUBTRACT DEF MAXE PREVIOUS MAXIMUM SZA RESULT SSA POSITIVE? JMP INV6 NO DLD SCALR YES, RECORD DST MAXE NEW MAXIMUM LDA MMT6 AND ITS STA MMT4 LOCATION INV6 LDA MMT6 MOVE TO NEXT ADA MMT3 ELEMENT OF COLUMN ISZ MMT5 COLUMN DONE? JMP INV5 NO LDB PIVEL YES ADB ID0 SET POINTERS STB MMT7 TO OLD ADB BS3 PIVOT ROWS OF STB MMT5 BOTH MATRICES STB ID1 LDA MMT4 NEED TO CPA PIVEL SWAP ROWS? JMP INV8 NO ADA ID0 YES, SET POINTERS STA MMT8 TO NEW ADA BS3 PIVOT ROWS OF STA MMT6 BOTH MATRICES INV7 DLD MMT5,I SWAP DST SCALR DLD MMT6,I ROW DST MMT5,I DLD SCALR ELEMENT DST MMT6,I DLD MMT7,I OF DST SCALR DLD MMT8,I EACH DST MMT7,I DLD SCALR MATRIX DST MMT8,I ISZ MMT5 BUMP ISZ MMT5 ISZ MMT6 ALL ISZ MMT6 ISZ MMT7 FOUR ISZ MMT7 ISZ MMT8 POINTERS ISZ MMT8 ISZ MMT2 ROW SWAPPED? JMP INV7 NO INV8 DLD MAXE YES JSB #FSB PIVOT EMELMENT DEF TOL SMALLER THAN SSA TOLERANCE? JSB RERRS+26,I YES DLD F1.0 NO JSB #FDV COMPUTE DEF PIVEL,I INVERSE OF DST MAXE PIVOT ELEMENT LDA MMT1 LAST INA,SZA,RSS PIVOT? JMP INV10 YES STA MMT5 NO, PREPARE LDA PIVEL TO SCALE STA MMT6 PIVOT ROW INV9 ISZ MMT6 MOVE TO NEXT ISZ MMT6 ELEMENT OF ROW DLD MMT6,I MULTIPLY JSB #FMP BY U/PIVOT DEF MAXE AND STORE DST MMT6,I NEW VALUE ISZ MMT5 ROW DONE? JMP INV9 NO INV10 LDA ID1 YES STA MMT6 LDA MMT0 SET STA MMT2 STA MMT5 COUNTERS INV11 DLD MMT6,I SCALE ELEMENTS OF SZA,RSS JMP INV12 PIVOT ROW JSB #FMP DEF MAXE OF DESTINATION DST MMT6,I INV12 ISZ MMT6 MATRIX ISZ MMT6 ISZ MMT5 ROW DONE? JMP INV11 NO LDB BS1 YES, SET POINTER TO STB VT0 DESTINATION ARRAY LDA BS2 SET POINTER CMA,INA TO PIVOT COLUMN ADA ID0 IN FIRST ROW CMA,INA OF SOURCE INV13 STA MMT8 MATRIX CPA PIVEL PIVOT ROW? JMP INV19 YES STA MMT7 NO DLD MMT7,I LOAD MULTIPLIER FOR PIVOT ROW SZA,RSS ZERO? JMP INV19 YES DST SCALR NO, SAVE MULTIPLIER LDA MMT1 LAST INA,SZA,RSS ROW? JMP INV15 YES STA MMT5 NO, SET POINTER TO LDA PIVEL PIVOT ELEMENT IN STA MMT6 SOURCE MATRIX INV14 ISZ MMT6 MOVE ISZ MMT6 TO ISZ MMT7 NEXT ISZ MMT7 COLUMN DLD SCALR COMPUTE JSB #FMP DEF MMT6,I DST MAXE TRANSFORMED DLD MMT7,I JSB #FSB DEF MAXE ELEMENT DST MMT7,I ISZ MMT5 ROW DONE? JMP INV14 NO INV15 LDA ID1 YES, SET POINTER TO PIVOT STA MMT6 ROW OF DESTINATION MATRIX LDA MMT0 SET STA MMT4 COUNTER INV16 DLD MMT6,I COMPUTE SZA,RSS JMP INV17 JSB #FMP DEF SCALR TRANSFORMED DST MAXE DLD VT0,I JSB #FSB DEF MAXE ELEMENT DST VT0,I INV17 ISZ VT0 MOVE ISZ VT0 TO ISZ MMT6 NEXT ISZ MMT6 COLUMN ISZ MMT4 ROW DONE? JMP INV16 NO INV18 LDA MMT8 YES, MOVE TO NEXT ADA MMT3 ROW IN SOURCE MATRIX ISZ MMT2 ALL ROWS TRANSFORMED? JMP INV13 NO ISZ MMT1 YES, MATRIX INVERTED? JMP INV3 NO LDA TMPST YES ADA .+23 RELEASE EXTRA STA PBPTR CORE JMP XEC1\ INV19 LDA VT0 ADVANCE TO ADA MMT3 NEXT ROW OF STA VT0 DESTINATION JMP INV18 MATRIX * * ** CODE TO COMPUTE AN ELEMENT ** * * MADD JSB #FAD ADD DEF BS3,I SOURCE JMP MLOP1 ELEMENTS * MSUB JSB #FSB SUBTRACT DEF BS3,I SOURCE JMP MLOP1 ELEMENTS * IDN ISZ ID1 DIAGONAL ELEMENT? JMP MLOP3 NO LDA ID0 YES, RESET STA ID1 DIAGONAL COUNTER DLD F1.0 LOAD JMP MLOP3 1.0 * SMULT JSB #FMP MULTIPLY DEF SCALR SOURCE ELEMENT JMP MLOP2 BY SCALAR * MCPY SSA GET JSB ARINV ABSOLUTE DST SCALR VALUE JSB #FSB SUBTRACT DEF MAXE PREVIOUS SZA MAXIMUM SSA POSITIVE RESULT? JMP MCPY1 NO DLD SCALR YES, RECORD DST MAXE NEW MAXIMUM MCPY1 DLD BS2,I RELOAD VALUE JMP MLP2A,I ** ** *** CHECK VALIDITY OF MATRIX *** ** ** * * ENTER WITH (B) POINTING TO THE DYNAMIC ARRAY DIMENSIONS. * COMPUTE THE NUMBER OF ELEMENTS AND CHECK EACH ONE. EXIT * TO ERROR IF ANY ELEMENT HAS VALUE 'UNDEFINED'. * VCHK NOP #VCHK LDA 1,I LOAD ROW DIMENSION INB STB VT0 MPY VT0,I MULTIPLY BY LDB VT0 COLUMN DIMENSION CMA SAVE 1'S COMPLEMENT STA VT0 OF MATRIX SIZE VCHK1 ISZ VT0 DONE? INB,RSS NO, MOVE TO NEXT ELEMENT JMP VCHK,I YES LDA 1,I RAL,RAL IS INA OPERAND RAR,SLA NORMALIZED? JMP VCHK2 YES CPA BIT15 MAYBE, WAS FIRST WORD ZERO? INB,RSS YES JSB RERRS+23,I NO--ERROR LDA 1,I SECOND SZA WORD ZNLHERO? JSB RERRS+23,I NO--ERROR JMP VCHK1 VCHK2 INB JMP VCHK1 SKP ** ** *** REDIMENSION A MATRIX *** ** ** * * UPON ENTRY (TEMP1)+1 POINTS TO THE REDIMENSION SUBSCRIPT IN * THE PROGRAM AND SBPTR POINTS TO THE CURRENT DYNAMIC DIMENSIONS * OF THE ARRAY. THE SUBSCRIPT BOUNDS ARE EVALUATED, ROUNDED, * AND RECORDED. IF THE NUMBER OF ELEMENTS IS WITHIN THE * PHYSICAL ARRAY ALLOWANCE, EXIT WITH TEMP1 POINTING TO THE * WORD FOLLOWING THE SUBSCRIPT AND SBPTR AS UPON ENTRY, ELSE * EXIT TO ERROR. * REDIM NOP #RDIM ISZ TEMP1 COMPUTE NEW JSB FETCH ROW DIMENSION JSB SBFIX 15 BIT INTEGER > 0? JSB RERRS+17,I NO INB YES, SAVE STB SBPTR,I TRUE VALUE STB RD0 IN ARRAY ISZ SBPTR ENTRY LDB TEMP1,I EXPLICIT NEW SZB,RSS COLUMN DIMENSION? JMP RDIM1 NO JSB FETCH YES, JSB SBFIX COMPUTE JSB RERRS+17,I IT RDIM1 INB SAVE TRUE VALUE STB SBPTR,I IN ARRAY ENTRY LDA RD0 COMPUTE MPY SBPTR,I NUMBER OF SZB,RSS ELEMENTS CMA,SSA,INA,RSS SPECIFIED JSB RERRS+25,I TOO MANY STA RD0 LDB SBPTR RESET ADB .-3 ARRAY POINTER LDA 1,I AND COMPUTE INB NUMBER OF STB SBPTR ELEMENTS MPY SBPTR,I AVAILABLE ISZ SBPTR FOR ARRAY ADA RD0 SUFFICIENT SSA PHYSICAL SPACE? JSB RERRS+25,I NO ISZ TEMP1 YES JMP REDIM,I END NASMB,R,L,X NAM TIMFN,7 SPC 2 ENT TIMFN SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77) SPC 2 EXT #IFIX   EXT SCHEQ EXT EXEC SPC 2 TIMFN NOP JSB #IFIX JSB RERRS+43,I SZA JSB RERRS+43,I LDA 1 AND .+3 CPA 1 RSS JSB RERRS+43,I ADA DTMTB JMP 0,I SPC 1 DTMTB DEF *+1,I DEF ETIM0 DEF ETIM1 DEF ETIM2 DEF ETIM3 SPC 1 ETIM0 JSB GTIM1 LDA ETIME+2 JMP TIMFN,I SPC 1 ETIM1 JSB GTIM1 LDA ETIME+3 JMP TIMFN,I SPC 1 ETIM2 LDA GTFLG SZA,RSS JSB GTIM2 LDA DAY JMP TIMFN,I SPC 2 ETIM3 LDA GTFLG SZA,RSS JSB GTIM2 LDA YEAR JMP TIMFN,I SPC 2 GTIM3 LDA DATE ALF,ALF AND =B17 MPY =D10 STA 1 LDA DATE AND =B17 ADA 1 MPY =D10 STA 1 LDA DATE+1 ALF,ALF AND =B17 ADA 1 STA DAY LDA DATE+2 ALF,ALF AND =B17 MPY =D10 STA 1 LDA DATE+2 AND =B17 ADA 1 STA YEAR JMP GTIM2,I SPC 2 GTIM1 NOP JSB EXEC DEF *+3 DEF .+11 DEF ETIME JMP GTIM1,I SPC 1 GTIM2 NOP ISZ GTFLG LDA 115B STA 1 AND =B377 STA DSECT LDA 1 ALF,ALF AND =B377 STA DTRAK JSB EXEC DEF *+7 DEF .-1 DEF B102 DEF ERSEC DEF D77 DEF DTRAK DEF DSECT JMP GTIM3 SPC 2 DAY NOP YEAR NOP GTFLG OCT 0 ETIME EQU LTEMP DATE EQU ERSEC+72 DSECT EQU LTEMP+5 DTRAK EQU LTEMP+6 B102 OCT 102 D77 DEC 77 END TIMFN R ASMB,R,L,X HED EXECUTION PROCESSORS NAM XEC2,7 SPC 2 ENT EPRIN,EPRUS,ERSTR,EENTR,EASN ENT ECHAN SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM ZZ(101),RSPTR SPC 2 EXT EDELM,FORMX,OPCHK,ENOUT,FILST,STSTR,PSTR EXT OUTLN,FSCH,OUTCR,GTTYP,FRMAT,SETDP EXT #IFIX,SCHIN,BLANK,BCKSP,NUMCK,ARINV,ASBFA EXT FCUCA,WRBUF,SCHLB,VLFIL,XEC1 EXT FETCH,GETCR,EXIT,FENCA,TRSTR EXT SBFIX,CMPL0,EXIT3,EXEC SPC 2 ASNIB ASC 3,ASSIG ECHAN JSB EXEC LOAD "CHAIN" SEGMENT RETAD DEF *+4 DEF .+8 DEF NCHAN DEF RETAD SPC 1 JSB RERRS+39,I JSB RERRS+40,I JSB RERRS+41,I JMP EXIT3 JMP CMPL0 SPC 2 NCHAN ASC 3,CHAIN SPC 2 OPDMK OCT 100777 OPMSK OCT 77000 B2000 OCT 2000 B3000 OCT 3000 B1000 OCT 1000 ENDOP OCT 60000 M74 DEC -74 MNEG OCT 100000 PRTOP OCT 65000 USEOP OCT 43000 IMGOP OCT 44000 B377 OCT 377 B4000 OCT 4000 STE OCT 20000 M256 DEC -256 DBLNK OCT 20040 RBP OCT 140000!` B EQU 1 BIT15 EQU MNEG ?RTIM EQU 17B FTEL EQU 15 * *** ** ** EXECUTE ** *** ** * EPRIN CLA,INA FLAG AS 'PRINT' JSB EPRUS CHECK FOR USING STATEMENT CLA FLAG AS STA FFLG NON-FORMATTED JSB VLFIL VALIDATE FILE REQUEST JMP EPR13 JMP EPRI2+1 NO FILE REQUEST FOUND EPRI1 LDA FILE# FILE SSA,RSS MODE? JMP EPRI2 YES CLA NO, EXECUTE COMMA CPA EOL UNLESS PRECEDED BY JSB EDELM A 'TAB' (EOL = 1) EPRI2 CCA,RSS TURN OFF 'END-OF-LINE' FLAG CLA TURN ON STA EOL 'END-OF-LINE' FLAG EPRI3 LDA TEMP1,I EXTRACT AND OPDMK NEXT OPERAND SZA NULL? JMP EPRI5 NO, BEGINS FORMULA ISZ TEMP1 YES EPRI4 LDB TEMP1 STATEMENT CPB PRGCT FINISHED? JMP EPR12 YES LDA TEMP1,I NO, EXTRACT AND OPMSK NEXT OPERATOR CPA B2000 COMMA? JMP EPRI1 YES CPA B3000 NO, SEMICOLON? JMP EPRI2 YES CPA B1000 NO, " ? JMP EPRI8 YES CPA ENDOP NO, 'END' ? JMP EPR11 YES SZA,RSS NO, NULL? JMP EPRI3 YES CCA NO, MUST BE FORMULA ADA TEMP1 RESET TO PRIOR STA TEMP1 NULL OPERAND EPRI5 CCA TURN OFF STA EOL 'TAB' FLAG JSB FORMX EVALUATE FORMULA LDB OPDST,I IS IT A SSB STRING VARIABLE? JMP EPRI8+1 YES JSB OPCHK NO, UNSTACK VALUE ADDRESS LDA FILE# TO BE WRITTEN SSA,RSS ON A FILE? JMP EPRI7 YES ISZ EOL NO, A 'TAB' ? JMP EPRI4 YES (EOL = 1 NOW) DLD 1,I NO, OUTPUT JSB ENOUT A NUMBER JMP EPRI4 EPRI7 STB SBPTR SAVE VALUE ADDRESS LDB }$.-2 WRITE NUMBER JSB FILST ON FILE JMP EPRI4 EPRI8 JSB STSTR STACK STRING CONSTANT LDA .-2 PREPARE JSB PSTR PRINT STA TEMP4 STRING STB TPRME LDB .-3 PRESET TO WRITE ON FILE LDA FILE# TO BE WRITTEN SSA,RSS ON A FILE? JMP EPRI7+2 YES CLA NO, TURN ON STA EOL 'END-OF-LINE' FLAG LDA TNULL ENOUGH CMA,INA SPACE ADA CHRCT ON ADA M74 CURRENT SSA,RSS LINE? JSB OUTLN NO JMP EPR10 YES EPRI9 JSB FSCH FETCH LDA .+40B CHARACTER CPA .+16B PSUEDO LINE FEED? LDA .+12B YES CPA .+17B PSUEDO CARRIAGE RETURN? RSS YES JMP EPR10-1 NO LDA .+15B OUTPUT JSB OUTCR CARRIAGE RETURN CLA AND A NULL JSB OUTCR OUTPUT CHARACTER EPR10 ISZ TNULL MORE STRING? JMP EPRI9 YES JMP EPRI4 NO EPR11 STA EORFL FILE JSB GTTYP CPA .+3 FULL? JMP EPRI4-1 YES CCB NO, WRITE JMP EPRI7+2 END-OF-FILE EPR12 ISZ EOL 'END-OF-LINE' FLAG SET? JSB OUTLN YES JMP XEC1 NO EPR13 ADB .-8 SET BUFFER LDA B,I DIR- IOR BIT15 TY STA B,I BIT LDB TEMP1 NULL CPB PRGCT PRINT? JMP XEC1 YES JMP EPRI2 NO * ** ** ** EXECUTE ** ** ** * * EXIT TO (P+1) IF NO USING OPERATOR FOUND, OTHERWISE PREPARE * FORMAT SPECIFICATION STRING AND CALL FORMATTED OUTPUT ROUTINE. * EPRUS NOP #EPRU STA FFLG SAVE FORMAT FLAG LDB TEMP1 LDA B,I CPA PRTOP NULL OPERAND? INB,RSS YES JMP EPRUS,I NO, CAN'T BE USILNG STATEMENT CPB PRGCT END OF STATEMENT? JMP EPRUS,I YES LDA B,I NO, 'USING' AND OPMSK OPERATOR CPA USEOP NEXT? RSS YES JMP EPRUS,I NO, EXIT XOR B,I GET OPERAND STB TEMP1 SAVE POINTER SSA,RSS INTEGER FOLLOWS? JMP EPRU1 NO INB LDB B,I GET ADDRESS OF IMAGE STATEMENT ADB .+2 => LENGTH WORD LDA B,I AND OPMSK GET OPERATOR CPA IMGOP IMAGE? RSS YES JSB RERRS+38,I NO, ERROR ISZ TEMP1 BUMP TO POINT ISZ TEMP1 TO FIRST OPERAND CLA STA NCH JSB FRMAT CALL FORMATTER EPRU1 SZA,RSS NULL OPERAND? JMP EPRU4 YES JSB FORMX NO, FETCH LDA .-2 STRING JSB PSTR OPERAND LDA TEMP6,I GET AND B377 LENGTH SZA,RSS NULL STRING? JMP XEC1 YES CMA,INA NO, SAVE STA STRLN -LENGTH LDB TMPST ADB .+2 LDA B,I GET FIRST SUBSCRIPT CMA,INA NEGATE IT INB ISZ B,I SECOND SUBSCRIPT EXIST? JMP EPRU2 YES CLA NO, SET STA NCH CHARACTER COUNT JMP EPRU3 EPRU2 ADA B,I COMPUTE DIFFERENCE SZA,RSS NULL STRING? JMP XEC1 YES SSA NO, NEGATIVE? JSB RERRS+44,I YES STA NCH NO, SAVE DIFFERENCE CCA ADA B,I SECOND ADA STRLN SUBSCRIPT SSA,RSS VALID? JSB RERRS+44,I NO EPRU3 ADB .-1 YES LDA B,I FIRST ADA STRLN SUBSCRIPT SSA,RSS VALID? JSB RERRS+44,I NO LDA B,I YES, LOAD IT LDB TEMP6 => FIRST WORD OF STRING JSB FRMAT CALL FORMATTER EPRU4 INB => 1ST WORD OF STRING LDA B,I UPDATE AND OPDM8K INA INTRA- ARS ADA TEMP1 STATEMENT ADA .+2 STA TEMP1 POINTER CLA STA NCH JSB FRMAT CALL FORMATTER * *** ** ** EXECUTE ** *** ** * ERSTR LDA TEMP1,I LOAD FLAG WORD ISZ TEMP1 ADVANCE STATEMENT POINTER LDB SPROG SET (B) TO START OF PROGRAM SSA 'LABELLED RESTORE' LDB TEMP1,I YES, RESET (B) TO STATEMENT JSB SETDP SET DATA POINTERS JMP XEC1 * *** ** ** EXECUTE ** *** *** * EENTR LDA TEMP1,I => FIRST OPERATOR AND OPDMK SZA IS '#' PRESENT? JMP EENT3 NO LDB TEMP1 INB LDA B,I GET NEXT OPERATOR AND OPMSK CPA B4000 '#'? RSS YES JMP EENT3 NO STB TEMP1 JSB FORMX EVALUATE ADDRESS LDB OPDST,I STB SBPTR => SYMBOL LDA OPDST UNSTACK ADA .-2 STA OPDST ADDRESS LDB MAIN INB => USERS TTY # IN TELETYPE TABLE LDA 1,I GET TTY # AND ALF,ALF RIGHT JUSTIFY EXT FLOAT JSB FLOAT STA SBPTR,I STORE ISZ SBPTR TTY STB SBPTR,I NUMBER LDA TEMP1 ENTER STATEMENT CPA PRGCT FINISHED? JMP XEC1 YES EENT3 JSB FETCH NO--FETCH ALLOWED TIME JSB #IFIX CONVERT NOP TO LDA 1 SECONDS AND B377 MASK TO 8 BITS SZA,RSS IF 0, SET INA TO 1 STA ATIM LDA MAIN DOES THIS USER INA HAVE THE CPA PRIST LINE PRINTER? JSB WERRS+9,I YES - RELEASE IT LDA .+21B OUTPUT JSB OUTCR AN X-ON LDA STE START IOR ATIM4 ENTER JSB SCHIN ENTRT EQU * JMP EENT6 INPUT ENTERED JSB FORMX TIMEOUT OCCURED LDB OPDST,I => RESPONSE STB SBPTR TIME LDA OPDST UNSTACK ADA .-2 STA OPDST ADDRESS LDA M256 SET JSB FLOAT STA SBPTR,I TIME ISZ SBPTR TO STB SBPTR,I -256 JMP *+1,I DEF EEN18 EENT6 EQU * CLB DON'T SUPPRESS STB BLANK BLANKS JSB GETCR FIRST NOP CHARACTER A LDB .+40B SUPPRESS STB BLANK BLANKS CPA .+3 CONTROL C? JMP EXIT JSB BCKSP NO JSB FORMX EVALUATE ADDRESS LDB OPDST,I STB SBPTR => RESPONSE TIME STB RSPTR LDA OPDST UNSTACK ADA .-2 STA OPDST ADDRESS LDB MAIN ADB .+?RTIM GET RESPONSE LDA 1,I TIME JSB FLOAT STA SBPTR,I STORE ISZ SBPTR IT STB SBPTR,I JSB FORMX EVALUATE ADDRESS LDB OPDST,I IS IT A SSB STRING VARIABLE? JMP EEN10 YES LDA OPDST NO, ADA .-2 UNSTACK STA OPDST ADDRESS STB SBPTR SAVE DESTINATION ADDRESS CLA SET SIGN STA SIGN TO POSITIVE JSB GETCR FETCH FIRST CHARACTER JMP EEN17 NONE FOUND--ERROR CCB TURN OFF STB ENOUF OVER/UNDERFLOW FLAG CPA .+55B '-'? JMP EENT7 YES CLB,INB NO CPA .+53B '+'? RSS YES JMP EENT8 NO EENT7 STB SIGN SET SIGN JSB GETCR GET NEXT CHARACTER JMP EEN17 NONE FOUND EENT8 JSB NUMCK NUMBER? NOP NO--ERROR JMP EEN17 BAD EXPONENT--ERROR ISZ ENOUF DID OVER/UNDERFLOW OCCUR? JMP EEN17 YES--ERROR EENT9 CPA .+15B NO, CARRIA|GE RETURN FOLLOWS? JMP EEN18 YES JMP EEN17 NO--ERROR EEN10 CMB EXTRACT LDA 1,I PHYSICAL ALF,ALF LENGTH OF AND B377 DESTINATION STRING CMA SET IT AS END ADA TMPST,I OF UNSPECIFIED STA TPRME DESTINATION STRING CCA PREPARE JSB PSTR DESTINATION STRING LDB TNULL SAVE LENGTH STB INTMP ALLOWANCE CLB TURN OFF STB BLANK BLANK SUPPRESSION LDA FENCA POINT TO ENTER CHAR ROUTINE JSB TRSTR TRANSFER STRING CLB ALL REQUESTED CPB TNULL CHARACTERS TRANSFERRED? JMP EEN14 YES CPB PS1 NO, TRANSFER LENGTH SPECIFIED? JMP EEN13 NO STA INTMP YES--SAVE (A) CCA FINISH STA TPRME ADA TNULL TRANSFER STA TNULL LDA FSCHA WITH BLANKS JSB TRSTR JMP EEN18 EEN13 LDB TEMP6,I SET LOGICAL ADB TNULL TO ACTUAL STB TEMP6,I STRING LENGTH JMP EEN18 EEN14 CPB PS1 LENGTH OF TRANSFER SPECIFIED? JMP EEN16 NO EEN15 JSB GETCR YES JMP EEN18 CARRIAGE RETURN JMP EEN15 LOOK FOR CARRIAGE RETURN EEN16 JSB GETCR END-OF-INPUT NEXT? JMP EEN18 YES LDA INTMP NO--DESTINATION STRING EXCEEDED STA TNULL RESTORE LDA SBPTR DESTINATION STRING STA TEMP5 PARAMETERS EEN17 LDA RSPTR,I TAKE ISZ RSPTR ARITHMETIC LDB RSPTR,I INVERSE OF JSB ARINV RESPONSE TIME STB RSPTR,I STORE CCB IN ADB RSPTR VALUE STA 1,I TABLE STB ENOUF CLEAR OVER/UNDERFLOW FLAG EEN18 CLA ZERO CHARACTER STA CHRCT COUNTER LDA .+40B RESTORE STA BLANK BLANK SUPPRESSION CLA OUTPUT4C A JSB OUTCR NULL. JMP XEC1 * *** ** ** EXECUTE ** *** ** * EASN EQU * LDA .-3 STA LT5 STA ASINP SET FLAG TO SAY ASSIGN OCCURRED LDB ASBFA LDA DBLNK EASN0 EQU * STA B,I BLANK OUT 3 WORDS INB ISZ LT5 JMP EASN0 CLA,INA ALLOW STRING STA EOL CONSTANT JSB FORMX EVALUATE STRING LDA .-2 JSB PSTR PREPARE STRING OPERAND STA TEMP4 SAVE SORCE POINTER CLA INITIALIZE TO STA ASTYP LOCAL LIBRARY CPB .-1 NULL STRING? JMP EAS02 YES STB TPRME LDB TEMP4 GET FIRST CLE,ERB LDA B,I CHARACTER SEZ,RSS ALF,ALF OF STRING AND B377 CPA .+44B '$'? JMP EAS01 YES CPA .+52B '*'? RSS YES JMP EAS00 NO EAS01 EQU * ISZ TEMP4 BUMP SOURCE POINTER ISZ TPRME BUMP LENGTH EAS00 EQU * LDA TPRME ADA .+7 SSA LENGTH > 6? CLA YES, SET TO 6 ADA .-7 NO STA TPRME STA TNULL LDA ASBFA POINTER TO STA ASBFP NAME BUFFER RAL STA TEMP5 DESTINATION STRING POINTER LDA FCUCA UPPER CASE CHARACTERS ONLY JSB TRSTR MOVE NAME EAS02 JSB FETCH EVALUATE NUMERIC OPERAND JSB SBFIX ROUND TO INTEGER LDB B1000 STB ORDNO SAVE SPECIFIED ORDINAL NUMBER JSB FORMX LEAVE NEXT VARIABLE ON TOP OF STACK LDA OPDST,I SAVE ADDRESS OF USER VARIABLE STA ATMP+1 LDA .+4 DEFAULT JSB FLOAT DST ATMP+1,I TO NON-EXISTENT FILE JSB OPCHK UNSTACK VALUE ADDRESS LDA ORDNO DOES CMA REQUESTED ADA FCNTR FILE CM7A,SSA,RSS EXIST? JMP XEC1 NO, DONE EASN1 CLB LDA ORDNO LOCATE MPY .+FTEL CORRECT ADA FILTB FCB ADA .+5 STA FBASE DISC ADDRESS AND SAVE IT ADA .+3 LDB 0,I GET CURRENT BUFFER ADDRESS ADA .-7 LDA 0,I ALR,RAR CLEAR BITS 15 AND 14 CMA,INA ADA 1 STA RQ3 JSB WRBUF WRITE OUT RECORD LDA FBASE RESTORE ADA .-5 FCB STA FBASE POINTER CLB STB 0,I INITIALIZE ADA .+14 STB 0,I INITIALIZE PROTECTMASK TO 0 STB RETCD INITIALIZE RETURN CODE JSB EXEC DEF *+4 DEF .+8 DEF ASNIB DEF *-3 EXT EXEC JMP EASN5 ASSIGNED FILE RECORD SIZE TOO LARGE JMP EASN4 FILE DOESN'T EXIST ISZ RETCD 'READ ONLY' - GROUP OR A000 ISZ RETCD 'READ ONLY' - IN USE EASN2 LDA TEMP1 CPA PRGCT END OF STATEMENT ? JMP EASN3 YES LDA 0,I TEST FOR A COMMA AND OPMSK CPA B2000 COMMA FOLLOWING? RSS JMP EASN3 NO CLA,INA ALLOW STA EOL STRING CONSTANT JSB FORMX YES, EVALUATE STRING OPERAND LDA .-2 PREPARE JSB PSTR SOURCE STA TEMP4 STRING STB TPRME LDA ASBFA STA ASBFP GET CHARACTER RAL STA TEMP5 PASSWORD BUFFER LDA .-3 STA LT5 LDB ASBFP LDA DBLNK STA 1,I FILL PASSWORD INB BUFFER WITH ISZ LT5 BLANKS JMP *-3 LDA .-7 SET LENGTH (IN CHARACTERS) STA TNULL OF PASSWORD BUFFER LDA FSCHA JSB TRSTR MOVE PASSWORD TO BUFFER LDA ASBFP INA DLD 0,I ADA ASBFP,I ADD WORD1 AND WORD2 XOR 1 EXCLUSIVE OR - WORD3 IOR RBP INCLUS(~<:6IVE OR BITS 14 AND 15 LDB FBASE ADB .+14 STA 1,I STORE PROTECTMASK IN FCB EASN3 LDA RETCD JSB FLOAT DST ATMP+1,I STORE IN USER VARIABLE JMP XEC1 DONE EASN4 LDA .+3 SET RETURN CODE FOR NON-EXISTENT FILE JMP EASN3+1 EASN5 LDA .+5 SET RETURN CODE FOR RECORD SIZE TOO BIG JMP EASN3+1 END v<ASMB,R,L,X HED EXECUTION PROCESSORS NAM XEC1,7 SPC 2 ENT ELET,EIF,EGOTO,EGOSB,EFOR,ENEXT,ERTRN ENT EINPT,EREAD,EIN12 ENT EINPZ,EINP1 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGHT,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,FSCHA,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM ZZ(4),TEMP6 SPC 2 EXT FORMX,VLFIL,FETCH,SBFIX,MOVER,SETPT,#FAD,#FSB EXT INCAL,GETCR,NUMCK,BLANK,OUTIN,OUTCR,BCKSP EXT FINCA,TRSTR,FDATA,PSTR,MIO7 EXT XEC1,XECB,SERR SPC 2 ENDOP OCT 60000 OPDMK OCT 100777 INTFL OCT 100003 B777 OCT 777 OPMSK OCT 77000 NXTOP OCT 55000 HALF DEC 0.5 B377 OCT 377 HED STATEMENT EXECUTION PROCESSORS * *** ** ** EXECUTE ** *** ** * ELET CLA,INA ALLOW STRING CONSTANT STA EOL IN FORMULA JSB FORMX EVALUATE JMP XEC1 FORMULA * *** ** ** EXECUTE ** *** ** * EIF1 ISZ TEMP1 EVALUATE JSB VLFIL FILE REQUEST ISZ FBASE TRANSFER ISZ TEMP1 EOF LABEL LDB TEMP1,I TO STB FBASE,I FILE TABLE|  JMP XEC1 EIF DLD TEMP1,I EOF CPB ENDOP SSA OPERATOR? CLA,INA,RSS NO JMP EIF1 YES STA EOL ALLOW STRING CONSTANT JSB FETCH EVALUATE DECISION FORMULA SZA,RSS RESULTANT 'TRUE' ? JMP XEC1 NO * *** ** ** EXECUTE ** *** ** * EGOTO CLB,RSS SET FLAG TO 'GOTO' MODE * *** ** ** EXECUTE ** *** ** * EGOSB CCB SET FLAG TO STB GTMP 'GOSUB' MODE LDB TEMP1 COMPUTE SIMPLE BRANCH INB 'ADDRESS' ADDRESS LDA TEMP1,I SIMPLE AND OPDMK BRANCH CPA INTFL STATEMENT? JMP EGOS1 YES JSB FETCH NO, COMPUTE JSB SBFIX BRANCH INDEX JMP XEC1 UNSUITABLE RESULT ADB TEMP1 COMPUTE INB 'ADDRESS' LDA 1 ADDRESS CMA WITHIN ADA PRGCT STATEMENT SSA RANGE? JMP XEC1 NO EGOS1 LDB 1,I YES, LOAD BRANCH ADDRESS ISZ GTMP ? JMP XECB YES LDA PRGCT NO, STACK ISZ RTNST RETURN STA RTNST,I ADDRESS LDA RTNST NESTING ADA .-10 10 CPA RTRNQ DEEP? JSB RERRS+15,I YES JMP XECB NO * *** ** ** EXECUTE ** *** ** * EFOR0 CPB FORST TOP ENTRY? JMP EFOR5+1 YES STA EFN0 NO, SAVE (A) STB DEST SET DESTINATION ADDRESS LDB FORST COMPUTE MOVE ADB .+6 TERMINATION ADDRESS LDA DEST COMPUTE ADA .+6 SOURCE ADDRESS JSB MOVER DELETE FOR-TABLE ENTRY LDA EFN0 RETRIEVE (A) JMP EFOR5 EFOR LDA TEMP1,I EXTRACT M<AND B777 AND SAVE THE STA FVT FOR-VARIABLE ALS COMPUTE ADA SYMTB ADDRESS ADA .-1 OF ITS LDA 0,I VALUE LDB FORST LOAD POINTER TO FOR-STACK EFOR1 CPB FORQ AT BOTTOM OF FOR-STACK? JMP EFOR2 YES CPA 1,I NO, ENTRY FOR THIS FOR-VARIABLE? JMP EFOR0 YES ADB .-6 NO, CHECK JMP EFOR1 LOWER ENTRY EFOR2 LDB FORST MOVE TO SPACE ADB .+6 FOR ENTRY JSB SETPT RESET EXECUTION POINTERS EFOR5 STA FORST,I SAVE ADDRESS OF VALUE IN ENTRY JSB FORMX INITIALIZE FOR-VARIABLE LDA FORST SAVE POINTERS TO INA ENTRY FOR STA EFN0 LIMIT VALUE ADA .+2 AND STA EFN1 STEP SIZE ADA .+2 SAVE ADDRESS OF LDB PRGCT FOLLOWING STATEMENT STB 0,I IN ENTRY JSB FETCH COMPUTE AND SAVE DST EFN0,I LIMIT VALUE LDA TEMP1 IMPLICIT CPA PRGCT STEP SIZE? JMP EFOR6 YES JSB FETCH NO, COMPUTE STEP SIZE EFOR3 DST EFN1,I AND SAVE VALUE CLB SET SIGN FLAG SSA TO -1 FOR CCB NEGATIVE STEP SIZE, STB EFN2 0 FOR POSITIVE STEP SIZE ISZ PRGCT LOAD LDB PRGCT TYPE WORD OF EFOR4 INB STATEMENT FOLLOWING LDA 1,I THE STA EFN3 SAVE IT ADB .-1 COMPUTE POINTER ADB 1,I TO ITS SUCCESSOR AND OPMSK ? RSS YES JMP EFOR4 NO XOR EFN3 SAME CPA FVT FOR-VARIABLE? RSS YES JMP EFOR4 NO ADB .-1 SET PROGRAM COUNTER STB PRGCT PAST LDB FORST,I LOAD DLD 1,I INITIAL VALUE OF ~JMP ENEX3 FOR-VARIABLE EFOR6 LDA HALF LOAD LDB .+2 DEFAULT JMP EFOR3 OF 1.0 * *** ** ** EXECUTE ** *** ** * ENEXT LDA TEMP1,I EXTRACT AND B777 FOR-VARIABLE ALS COMPUTE ADA SYMTB ADDRESS ADA .-1 OF ITS LDA 0,I VALUE LDB FORST LOAD POINTER TO FOR-STACK ENEX1 CPB FORQ BOTTOM OF STACK? JMP XEC1 YES, IGNORE STATEMENT CPA 1,I NO, MATCHING ENTRY? JMP ENEX2 YES ADB .-6 NO,CHECK JMP ENEX1 LOWER ENTRY ENEX2 STA EFN1 SAVE FOR-VARIABLE VALUE ADDRESS CPB FORST TOP ENTRY OF FOR-STACK? JMP *+3 YES JSB SETPT NO, RESET LDB FORST EXECUTION POINTERS INB SAVE ADDRESS STB EFN0 OF LIMIT VALUE ADB .+2 LDA .-2 SET SIGN FLAG TO SAY STA EFN2 POSITIVE STEP SIZE DLD 1,I LOAD STEP SIZE SSA POSITIVE? ISZ EFN2 NO, RESET SIGN FLAG JSB #FAD ADD STEP SIZE DEF EFN1,I TO VALUE OF FOR-VARIABLE DST EFN1,I SAVE NEW VALUE ENEX3 JSB #FSB SUBTRACT DEF EFN0,I LIMIT VALUE ISZ EFN2 IF STEP SIZE POSITIVE, ELA INVERT SIGN OF RESULT SSA LIMIT VALUE EXCEEDED? JMP ENEX4 YES LDA FORST NO, LOAD ADDRESS ADA .+5 OF STATEMENT LDB 0,I FOLLOWING THE JMP XECB ENEX4 LDB FORST REMOVE ADB .-6 ENTRY FROM JSB SETPT FOR-STACK JMP XEC1 SKIP PAST * *** ** ** EXECUTE ** *** ** * ERTRN LDA RTNST RETURN STACK CPA RTRNQ EMPTY? JSB RERRS+16,I YES LDB 0,I NO, POP ADA l.-1 RETURN ADDRESS STA RTNST FROM STACK JMP XECB * *** ** ** EXECUTE ** *** ** * EINPT CLA TURN OFF STA MCNT MATRIX INPUT COUNTER EINP1 STA INITF SAVE ADDRESS FLAG CLA REQUEST STA SYNTQ FIRST JSB INCAL INPUT RECORD EINP2 ISZ IFCNT COUNT INPUT QUANTITY CCA MATRIX CPA INITF INPUT? JMP EINP3 YES JSB FORMX NO, EVALUATE NEXT ADDRESS LDB OPDST,I IS IT A SSB STRING VARIABLE? JMP EIN13 YES LDA OPDST NO, ADA .-2 UNSTACK STA OPDST ADDRESS STB SBPTR SAVE DESTINATION ADDRESS EINP3 CLA SET SIGN STA SIGN TO POSITIVE STA INTMP FLAG REQUEST FOR NUMBER JMP EINP4 STB SIGN RESET SIGN TO POSITIVE JSB INCAL ISZ IFCNT FETCH EINP4 JSB GETCR FIRST JMP *-3 CHARACTER CCB TURN OFF STB SERR OVER/UNDERFLOW FLAG CPA .+45 '-' ? JMP EIN11 YES CLB,INB NO CPA .+43 '+' ? JMP EIN11 YES EINP5 JSB NUMCK NO, NUMBER? JMP EINP7 NO JMP EINP8 BAD EXPONENT EINP6 LDB .+40B TURN ON STB BLANK BLANK SUPPRESSION ISZ MCNT MATRIX COMPLETED? RSS NO JMP MIO7 EINP0 LDB TEMP1 EINPZ EQU EINP0+3 CPB PRGCT SATISFIED? JMP EIN12 YES ISZ SERR DID OVER/UNDERFLOW OCCUR? JMP EINP9 YES CPA .+15B NO, END OF INPUT RECORD? JMP EINP2-1 YES CPA .+54B NO, COMMA NEXT? JMP EIN10 YES EINP9 JSB WERRS,I NO LDB IFCNT OUTPUT NEXT INB ITEM JSB OUTIN NUMBER LDA .+15B OUTPUT JSB OUTCR / CARRIAGE RETURN JMP EINP2-1 EIN10 JSB GETCR END OF INPUT RECORD? JMP EINP9 YES JSB BCKSP NO JMP EINP2 EINP7 CPA .+42B " ? JMP EINP8 YES CPB SIGN NO, SIGN FOUND? JMP EINP4 NO, IGNORE CHARACTER EINP8 JSB WERRS,I YES LDB IFCNT OUTPUT JSB OUTIN ITEM NUMBER LDA .+15B OUTPUT JSB OUTCR CARRIAGE RETURN CLB NUMBER CPB INTMP REQUESTED? JMP EINP4-3 YES JMP EIN14 NO EIN11 STB SIGN SAVE SIGN JSB GETCR JMP EINP8 OUT-OF-DATA ERROR JMP EINP5 EIN12 CPA .+15B END OF RECORD? CLA,RSS YES JSB WERRS+7,I NO STA CHRCT ZERO CHARACTER COUNT LDA .+12B OUTPUT A JSB OUTCR LINE FEED JMP XEC1 EIN13 CMB EXTRACT LDA 1,I PHYSICAL ALF,ALF LENGTH OF AND B377 DESTINATION STRING CMA SET IT AS END ADA TMPST,I OF UNSPECIFIED STA TPRME DESTINATION STRING CCA PREPARE JSB PSTR DESTINATION STRING LDB TNULL SAVE LENGTH STB INTMP ALLOWANCE JMP *+3 EIN14 JSB INCAL ISZ IFCNT FETCH JSB GETCR FIRST JMP *-3 CHARACTER CCB TURN OFF STB SERR OVER/UNDERFLOW FLAG CPA .+42B " ? RSS YES JSB BCKSP NO, STRING BEGINS HERE EIN17 CLB TURN OFF STB BLANK BLANK SUPPRESSION LDA FINCA POINT TO INPUT BUFFER JSB TRSTR TRANSFER STRING CLB ALL REQUESTED CPB TNULL CHARACTERS TRANSFERRED? JMP EIN21 YES CPB PS1 NO, TRANSFER LENGTH SPECIFIED? JMP EIN20 NO STA INTMP YES, SAVE (A) CCA FINISH STA TPRME ADA TNULL TRANSFER STA TNUL8?L LDA FSCHA WITH BLANKS JSB TRSTR LDA INTMP RESTORE (A) EIN18 CPA .+15B TRANSFER ENDED BY END-OF-INPUT? JMP EINP6 YES EIN19 JSB GETCR NO, WAS A " NOP EXIT WITH JMP EINP6 NEXT CHARACTER EIN20 LDB TEMP6,I SET LOGICAL ADB TNULL TO ACTUAL STB TEMP6,I STRING LENGTH JMP EIN18 EIN21 CPB PS1 LENGTH OF TRANSFER SPECIFIED? JMP EIN15 NO EIN16 JSB GETCR YES JMP EINP6 IMPLIED CLOSING QUOTE CPA .+42B " ? JMP EIN19 YES JMP EIN16 NO, LOOK FOR " OR END-OF-INPUT EIN15 JSB GETCR END-OF-INPUT NEXT? JMP EINP6 YES CPA .+42B NO, CLOSING " ? JMP EIN19 YES LDA INTMP NO, DESTINATION STRING EXCEEDED STA TNULL RESTORE LDA SBPTR DESTINATION STRING STA TEMP5 PARAMETERS LDA .+40B SET TO STA BLANK SKIP BLANKS JMP EINP8 * *** ** ** EXECUTE ** *** ** * EREAD JSB VLFIL LOOK FOR FILE REQUEST JMP EREA1 FILE REQUEST FOUND JSB FORMX EVALUATE DESTINATION ADDRESS LDA OPDST,I STRING SSA VARIABLE? JMP EREA2 YES STA SBPTR NO, SAVE AND LDA OPDST UNSTACK ADA .-2 DESTINATION STA OPDST ADDRESS CLB,INB FETCH JSB FDATA NUMBER DST SBPTR,I STORE NUMBER EREA1 LDA TEMP1 END OF CPA PRGCT STATEMENT? JMP XEC1 YES JMP EREAD+2 NO EREA2 LDB .+2 PREPARE JSB FDATA SOURCE STRING CCA PREPARE JSB PSTR DESTINATION STRING LDA FSCHA JSB TRSTR TRANSFER STRING JMP EREA1 END .0.**0ASMB,R,L,X NAM BYE,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16) SPC 2 EXT EXEC,LCDLP EXT OUTCH,LTYPE EXT LCHAR SPC 2 BYE JSB EXEC GET END TIME    DEF *+3 DEF .+11 DEF ETIME LDA .+12B JSB OUTCH SPC 1 LDA STIME+3 GET START HOUR CMA,INA ADA ETIME+3 MPY =D60 STA 1 LDA STIME+2 CMA,INA ADA ETIME+2 ADA 1 CLB DIV =D100 STB ETIME ADA .+60B JSB OUTCH LDA ETIME CLB DIV .+10 STB ETIME ADA .+60B JSB OUTCH LDA ETIME ADA .+60B JSB OUTCH LDA .-25 LDB BYEM JSB LTYPE SPC 1 LDA .+1 ENABLE LDB B111 COLON JSB EXEC CHECK DEF *+2 DEF .-19 SPC 2 JSB EXEC DEF *+2 DEF .+6 SPC 2 ETIME EQU LTEMP BYEM DEF *+1 ASC 13, MINUTES OF TERMINAL TIME. B111 OCT 111 END BYE p, ASMB,R,L,X NAM LENGT,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,BS1,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16) SPC 2 EXT PBUFF,MLINB,OUTCH,LTYPE,SCHEQ SPC 2 LENGT LDA PBPTR GET END-OF-PROG. POINTER   CPA PBUFF NULL? JMP LEN1 YES. LDB MLINB NO. ADB .+?FLAG-?LINK LDA 1,I AND CFLAG SZA,RSS COMPILED? JMP LEN1 NO. LDA SYMTB YES.USE SOURCE PROG. POINTER RSS LEN1 LDA PBPTR COMPUTE LENGTH IN WORDS CMA ADA SPROG CMA SSA CLA STA LTEMP LDA .+12B JSB OUTCH LDA .-2 STA LTEMP+1 LDA LTEMP CLB DIV .100 STB LTEMP LEN2 CLB DIV .+10 STB LTEMP+2 ADA .+60B JSB OUTCH LDA LTEMP+2 ADA .+60B JSB OUTCH LDA LTEMP ISZ LTEMP+1 JMP LEN2 LDA .-6 LDB WORDA JSB LTYPE JMP SCHEQ SPC 2 ?FLAG EQU 0 ?LINK EQU 15B CFLAG EQU .+2 .100 DEC 100 WORDA DEF *+1 ASC 3, WORDS END LENGT :w ASMB,R,L,X NAM TIME,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED SPC 2 EXT OUTCH,LTYPE,LTYPR EXT EXEC EXT SCHEQ SPC 2 TI  ME JSB EXEC GET CURRENT TIME DEF *+3 DEF .+11 DEF ETIME LDA .-16 LDB TIM1 JSB LTYPR LDA STIME+3 GET START HOUR CMA,INA ADA ETIME+3 MPY =D60 STA 1 LDA STIME+2 CMA,INA ADA ETIME+2 ADA 1 CLB DIV =D100 STB ETIME ADA .+60B JSB OUTCH LDA ETIME CLB DIV .+10 STB ETIME ADA .+60B JSB OUTCH LDA ETIME ADA .+60B JSB OUTCH LDA .-9 LDB TIM3 JSB LTYPE JMP SCHEQ SPC 2 ETIME EQU LTEMP TIM1 DEF *+1 OCT 5103 ASC 7,ONSOLE TIME = TIM3 DEF *+1 ASC 5, MINUTES. END TIME k ASMB,R,L,X NAM DELET,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED SPC 2 EXT DCMPL,FNDPS,LTYPE,LCHAR,ILFER,LLEND EXT SCHEQ EXT GEwTCR EXT MOVEW SPC 2 M72B OCT -72 * THE DELETE COMMAND ALLOWS A USER TO DELETE A SECTION OF HIS * PROGRAM IN A SINGLE LINE. THE FORMAT IS: * DELETE-M,N * OR * DELETE-M * WITH THE FIRST FORMAT, ALL LINES FROM M THROUGH N ARE * DELETED. WITH THE SECOND, ALL LINES FROM M TO THE END OF * THE PROGRAM ARE DELETED. SPC 1 DELET JSB DELNM GET M. STA DELM LDA DEL99 CPB .+54B IF COMMA FOLLOWS, GO JSB DELNM GET N. STA DELN CPB .+15B NEXT CHAR MUST BE A CR. JMP DEL2 JMP ILFER * DEL2 CMA CHECK FOR M<=N ADA DELM SSA,RSS JMP ILFER * JSB DCMPL DECOMPILE IT. * LDA PBPTR LOCATE FIRST LDB DELM STATEMENT TO BE DELETED. JSB FNDPS RSS NOP STB MOVED * LDA PBPTR LOCATE FIRST STATEMENT LDB DELN NOT TO BE DELETED. STA MOVES CPB DEL99 JMP DEL3 INB JSB FNDPS RSS NOP STB MOVES * DEL3 LDB MOVES IF DEST=SOURCE, NOTHING DELETED. CPB MOVED JMP DEL4 CMB,INB OTHERWISE, MOVE UP. ADB PBPTR CMB,INB JSB MOVEW LDA MOVED SET NEW VALUE OF STA PBPTR PBPTR. JMP LLEND DEL4 LDA .-17 LDB NDELA JSB LTYPE JMP SCHEQ NDELA DEF *+1 OCT 5116 LF-N ASC 7,OTHING DELETED * * DELNM READS A NUMBER FROM THE USER'S BUFFER. IN CASE OF ERROR IT * GOES TO DEL1. OTHERWISE IT RETURNS WITH A=# AND B=NEXT CHAR. * DELNM NOP CLA INITIALIZE TO 0. DEL7 EQU * STA DELT JSB LCHAR NOP STA 1 SAVE IN B. ADA M72B TEST FOR DIGIT. SSA,RSS JMP DEL6 ADA .+10 SSA JMP DEL6 LDB DELT ADB DELMX SSB,RSS JMP ILFER LDB DELT MPY OLD VALUE BY 10. RBL,RBL ADB DELT RBK L ADA 1 ADD IN NEW. JMP DEL7 LOOP. * DEL6 LDA DELT GET VALUE SZA FAIL IF ZERO. JMP DELNM,I JMP ILFER * DELM EQU LTEMP DELN EQU LTEMP+1 DELT EQU LTEMP+2 DEL99 DEC 9999 DELMX DEC -1000 END DELET 5ASMB,R,L,X NAM RENUM,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77) SPC 2 EXT PBUFF,MLINB,SCHEQ,LLEND,LTYPE EXT LCHAR so SPC 2 ?LINK EQU 15B CFLAG EQU .+2 A EQU 0 B EQU 1 SPC 2 * THE RENUMBER ROUTINE IS CALLED BY A USER TO ASSIGN NEW * SEQUENCE NUMBERS TO ALL OR A PART OF A PROGRAM. THE FORMAT OF * THE COMMAND IS: * REN-M,N,P,Q * M IS THE NEW INITIAL SEQUENCE NUMBER * N IS THE NEW INCREMENT * P IS THE FIRST STATEMENT TO BE RENUMBERED * Q IS THE LAST STATEMENT TO BE RENUMBERED. * DEFAULT VALUES ARE ASSIGNED AS FOLLOWS: * M=10, N=10, P=FIRST STEATMENT, Q=LAST STATEMENT * SPC 2 GOGO EQU * LDB PBPTR CPB PBUFF NULL PROGRAM? JMP LLEND YES LDB MLINB COMPUTE ADB .-?LINK LDA CFLAG PROGRAM AND 1,I LDB PBPTR STATE AND STA RENC SZA END OF PROGRAM LDB SYMTB STB RENEN POINTER * * SET UP INITIAL SEQUENCE NUMBER AND INCREMENT * LDA SPROG STA RENBA INITIALIZE STB RENLA LDA .+10 DEFAULT STA RENM STA RENN VALUES JSB RENUM PARAMETER? JMP REN1 NO STB RENM YES, RECORD IT CPA .+15B END OF RECORD? JMP REN1 YES CPA .+54B NO, COMMA? JSB RENUM DEMAND SECOND JMP RENF1 NONE FOUND STB RENN RECORD IT CPA .+15B END OF RECORD? JMP REN1 YES CPA .+54B NO, COMMA? JSB RENUM YES, DEMAND THIRD JMP RENF1 NOT FOUND STB RENBA RECORD IT CPA .+15B END OF RECORD? JMP REN22 YES CPA .+54B NO, COMMA? JSB RENUM DEMAND FOURTH JMP RENF1 NONE FOUND STB RENLA RECORD IT CPA .+15B END OF RECORD? RSS JMP RENF1 NO, ERROR * * FIND THE LAST SEQUENCE NUMBER LESS THAN * OR EQUAL TO RENLA, AND SET RENLA TO POINT TO IT * LDB SPROG START WITH FIRST PROGRAM WORD STB RENL REN20 EQU * CPB RENEN PROGRAM EX[HAUSTED? JMP REN21 YES LDA B,I CURRENT SEQUENCE CMA,INA NUMBER GREATER ADA RENLA THAN RENLA? SSA JMP REN21 YES STB RENL NO, SAVE POINTER TO STATEMENT LDA B INA SET (B) TO ADB A,I NEXT PROGRAM JMP REN20 STATEMENT REN21 EQU * LDB RENL STB RENLA * * FIND THE FIRST SEQUENCE NUMBER GREATER THAN * OR EQUAL TO RENBA, AND SET RENBA TO POINT TO IT * REN22 EQU * LDA RENBA CMA,INA STA RENBA LDB SPROG START WITH FIRST WORD OF PROGRAM STB RENL REN23 EQU * CPB RENEN PROGRAM EXHAUSTED? JMP REN24 YES LDA B,I CURRENT SEQUENCE ADA RENBA NUMBER GREATER THAN SSA,RSS OR EQUAL TO RENBA? JMP REN24 YES LDA B NO, INA SET (B) STB RENL TO NEXT ADB A,I PROGRAM JMP REN23 STATEMENT REN24 EQU * CPB RENEN SEQ NBR BEYOND PROGRAM? JMP REN13 YES, SO FINISHED STB RENBA CPB SPROG 1ST STATEMENT JMP REN29 YES * * TEST FOR SEQUENCE NUMBER OVERLAP AT RENBA * LDA RENM LOAD NEW BA SEQ NBR CMA,INA GET OLD ADA RENL,I SEQUENCE NUMBER SSA,RSS OVERLAP? JMP RENF2 YES REN29 EQU * LDA RENBA RENLA CMA,INA GREATER ADA RENLA THAN OR SSA EUAL TO RENBA? JMP RENF1 NO, FAIL * * GET NUMBER OF STATEMENTS IN PROGRAM * REN1 EQU * CLA INITIALIZE STA RENNS COUNTER LDB SPROG REN27 EQU * CPB RENEN DONE? JMP REN2 YES LDA B ADVANCE INA TO ADB A,I NEXT ISZ RENNS STATEMENT JMP REN27 * * GET THE NUMBER OF STATEMENTS FROM RENBA TO RENLA P* REN2 EQU * CLA INITIALIZE STA RENL STATEMENT COUNTER LDB RENBA STARTING STATEMENT REN25 EQU * CPB RENLA PROGRAM EXHAUSTED? JMP REN26 YES LDA B NO INA SET (B) ADB A,I TO NEXT ISZ RENL PROGRAM JMP REN25 STATEMENT * * TEST FOR SEQUENCE NUMBER OVERLAP AT RENLA * REN26 EQU * LDA RENL COMPUTE LDB RENLA NEW CPB RENEN HIGHEST ADA .-1 SEQUENCE MPY RENN NUMBER SSA,RSS SZB JMP RENF2 OVERFLOW ADA RENM STA RENL SAVE IT ADA MAXSN IN SSA,RSS LEGAL RANGE? JMP RENF2 NO LDA RENLA YES CPA RENEN JMP REN3 LDB A MOVE INB POINTER TO ADA B,I NEXT STATEMENT CPA RENEN BEYOND PROGRAM? JMP REN3 YES, DON'T BOTHER ABOUT OVERLAP LDB A,I GET FOLLOWING CMB,INB OLD SEQ NBR ADB RENL TEST FOR OVERLAP SSB,RSS JMP RENF2 FAIL REN3 LDB RENC PROGRAM SZB COMPILED? JMP REN9 YES * LDA RENNS GET # OF STATEMENTS IN PROGRAM. DIV .+32 DIVIDE INTO 32 PARTS. CMB SET B=-1-#OF OVERSIZE GROUPS, SZA,RSS BUT IF <32 STATEMENTS USE -#. INB INA SET A TO SIZE OF LARGER GROUP. STA RENC1 SET COUNTER. STB RENC2 LDB ERSCA SET INITIAL POINTER TO ERSEC. STB RENSN * * NOW BUILD A TABLE IN ERSEC HAVING TH FOLLOWING STRUCTURE: * ERSEC(0:31) ARE SEQUENCE NOS. OF STATEMENTS WHICH DIVIDE * THE PROGRAM INTO 32 ALMOST EQUAL PARTS. ERSEC(32:63) ARE THE ABSO- * LUTE ADDRESSES OF THESE STATEMENTS. ERSEC(0) IS THE SEQ.NO. OF THE * FIRST STATEMENTS. * LDA SPROG REN15 ADB .+32 STA 1,I SET ABSOLUTE ADDRElSS INTO TABLE. LDB 0,I SET SEQUENCE # INTO TABLE. STB RENSN,I ISZ RENSN BUMP POINTERS. * ISZ RENC2 TEST FOR ANY MORE OVERSIZE CLB,RSS GROUPS. CCB COMPUTE SIZE OF NEXT GROUP. ADB RENC1 STB RENC1 CMB STB RENC3 * LDB RENSN TEST FOR DONE. CPB ERS32 JMP REN14 * ISZ RENC3 COMPUTE 1ST STATEMENT IN INA,RSS NEXT GROUP. JMP REN15 ADA 0,I ADA .-1 JMP *-5 * * SCAN THROUGH PROGRAM FOR SEQUENCE NUMBER REFERENCES. * FOR EACH ONE, DETERMINE ABSOLUTE ADDRESS OF THE LABEL * AND REPLACE IT WITH THAT ADDRESS. IF LABEL IS NONEXISTENT, * PLACE THE NEGATIVE LABEL IN TO INDICATE THIS FACT. * REN14 LDA SPROG INITIALIZE POINTERS STA RENQ FOR RENSK. ADA .-1 STA RENP * REN4 JSB RENSK GET NEXT STATEMENT REFERENCE. JMP REN9 NONE LEFT. * LDB ERSCA REN7 LDA 1,I FIRST STATEMENT >=SOUGHT STATE.? CMA ADA RENP,I SSA,INA JMP REN5 FOUND ONE. INB CPB ERS32 TEST FOR DONE. RSS JMP REN7 * ADB .+31 LDA PBPTR STATEMENT IS IN LAST GROUP. JMP REN6 REN5 ADB .+32 B=>FIRST STATEMENT IN GROUP. SZA,RSS TEST FOR FOUND. JMP REN18 CPB ERS32 TEST FOR NOT THERE. JMP REN17 LDA 1,I SET A=>FIRST WORD BEYOND GROUP. ADB .-1 AT FIRST WORD BEYOND GROUP. REN6 LDB 1,I STA RENC1 SAVE END TEST. LDA RENP,I GET SEQUENCE NUMBER. REN16 INB BUMP STATEMENT POINTER. ADB 1,I ADB .-1 CPB RENC1 TEST FOR DONE. JMP REN17 CPA 1,I TEST FOR FOUND. JMP REN8 JMP REN16 * REN18 LDB 1,I JMP *+3 REN17 LDB RENP,I SET BIT15 FOR ADB BIT15 UNDEFINED LABELS. REN8 STB RENP,I JMP REN4 * * NOW CHANGE ALL LABELS TO TyHEIR NEW VALUES. * REN9 EQU * LDA RENBA LDB RENM REN10 EQU * CPA RENLA DONE? JMP REN28 YES STB A,I NO, RECORD NEW SEQUENCE NUMBER ADB RENN INCREMENT TO NEXT LINE NUMBER INA MOVE ADA A,I TO ADA .-1 NEXT JMP REN10 STATEMENT REN28 EQU * CPA RENEN RSS STB A,I RECORD LAST SEQ NBR * * SCAN REFERENCES AGAIN. IF ABSOLUTE ADDRESS IS THERE, * REPLACE BY NEW LABEL. OTHERWISE REPLACE BY OLD LABEL. * REN11 LDA RENC IS PROGRAM SZA COMPILED? JMP REN13 YES LDA SPROG STA RENQ ADA .-1 STA RENP SEEK EMBEDDED REN12 JSB RENSK STATEMENT REFERENCES JMP REN13 NONE LEFT LDA RENP,I IF REFERENCE IS RAL,CLE,SLA,ERA NEGATIVE, CLEAR BIT 15. RSS OTHERWISE, REPLACE IT. LDA 0,I WITH THE NEW STA RENP,I LINE NUMBER JMP REN12 REN13 JMP LLEND RENF2 EQU * LDA LENT LDB REN0 JSB LTYPE JMP SCHEQ REN0 DEF *+1 OCT 5123 LF-S ASC 16,EQUENCE NUMBER OVERFLOW/OVERLAP * * RENUM SCANS INPUT BUFFER FOR A NUMBER. IF IT FINDS NOTHING * IT RETURNS WITHOUT SKIPPING.IF IT FINDS A LEGAL LABEL * (1-9999) IT RETURNS WITH IT IN B AND THE NEXT CHARACTER IN A, * AND SKIPS ON THE WAY BACK. IF IT FINDS AN ERROR IT GOES TO RENF. * RENUM NOP CLA INITIALIZE INTEGER STA RENL TO ZERO JSB LCHAR JMP RENUM,I NO RENU1 ADA M72B YES, IS IT SSA,RSS < ASCII 72 ? JMP RENU2 NO ADA .+10 YES, SSA > ASCII 57 ? JMP RENU2 NO LDB RENL YES, PREVIOUS ADB .1000 INTEGER SSB,RSS < 1000 ? JMP RENF1 NO LDB RENL YES RBL,RBL MULTIPLY ADB RENL BY RBL  10 ADA 1 ADD IN STA RENL NEW DIGIT JSB LCHAR JMP *+3 CHARACTER JMP RENU1 RENU2 ADA .+60B RESTORE ANY LEGAL CHARACTER LDB RENL ISZ RENUM SZB NON-ZERO INTEGER? JMP RENUM,I YES RENF1 LDA .-14 LDB RNE0 JSB LTYPE JMP SCHEQ RNE0 DEF *+1 OCT 5102 LF-B ASC 6,AD PARAMETER RENSK NOP ISZ RENP INCREMENT POINTER LDB RENQ ISZ RENR ? RSS NO JMP RENS2 YES CPB RENP STATEMENT FINISHED? JMP RENS2 YES RENS1 ISZ RENSK NO, RETURN WITH RENP JMP RENSK,I SET TO NEXT REFERENCE STB RENQ UPDATE TO NEXT STATEMENT RENS2 CPB PBPTR PROGRAM EXHAUSTED? JMP RENSK,I YES CLA CLEAR USING STA RENR FLAG ISZ RENQ LDB RENQ ISZ RENQ EXTRACT LDA RENQ,I STATEMENT AND OPMSK TYPE ADB 1,I SET (B) TO ADB .-1 NEXT STATEMENT CPA RESOP ? JMP RENS5 YES CPA GOTOP NO, ? JMP RENS3 YES CPA GOSOP NO, ? JMP RENS3 YES CPA IFOP NO, ? JMP RENS3-1 YES CPA MTOPR NO, ? RSS YES JMP RENS6 NO ISZ RENQ LDA RENQ,I GET NEXT AND OPMSK OPERATOR RENS6 EQU * CPA PRTOP ? RSS YES JMP RENS2-1 NO ISZ RENQ LDA RENQ,I GET NEXT AND OPMSK OPERATOR CPA USEOP LAST ENTRY LDA B,I CPA =A$F ="$F"? RSS YES. CHECK FOR "ILS " JMP CAT1 NO. CHECK NEXT LOWER ENTRY INB LDA B,I GET SECOND WORD OF NAME CPA =AIL ="IL"? JMP CAT2 YES. ADB .-9 JMP CAT1+1 CAT2 INB LDA B,I GET THIRD WORD OF NAME CPA =AS ="S "? JMP CAT3 YES. ADB .-10 NO. JMP CAT1+1 SPC 1 CAT3 ADB .+6 POINT TO NEXT ENTRY CAT10 CPB CATI POINTER => LAST WORD OF DIREC.? JMP CAT13 YES. DONE ADB .-1 STB CATP JMP CAT23 NO.OUTPUT FILENAME & INFO. SPC 1 * CAT13 LDA .+15B EMIT CRLF JSB LOUT JMP LLEND * CAT23 LDA .-3 2A SET UP COUNTER FOR STA CATC PRINTING NAME. CAT15 ISZ CATP BUMP P TO NEXT WORD. LDA CATP,I ALF,ALF GET LEFT CHAR. AND =B377 JSB LOUT PRINT IT. LDA CATP,I OUTPUT IT AND =B377 JSB LOUT ISZ CATC TEST FOR 6 CHARS OUT. JMP CAT15 LDA .+40B OUTPUT A BLANK. JSB LOUT LDB CATP ADB .+4 LDA B,I SSA,RSS SEMI-COMPILED? JMP CAT20 NO LDA ASCC YES, OUTPUT A "C" JMP CAT21 CAT20 LDB .+2 ADB CATP LDA B,I GET SECOND WORD OF NAME SSA FILE? JMP *+3 NO LDA ASCF YES, OUTPUT "F" RSS LDA .+40B NEITHER, OUTPUT " " CAT21 JSB LOUT LDA .+40B JSB LOUT LDA .+40B OUTPUT " " JSB LOUT LDA CATP BUMP TO PROGRAM LENGTH ADA .+2 STA CATP CLA INITIALIZE STA CATZS ZERO SUPPRESS FLAG * LDA CATP,I GET LENGTH SSA MAKE POSITIVE IF NECESSARY CMA,INA CLB DIV DVSRS DIVIDE IT BY 10000 JSB CAT24 OUTPUT THE FIRST CHARACTER DIV DVSRS+1 DIV BY 1000. JSB CAT24 OUTPUT THE SECOND DIGIT DIV DVSRS+2 DIV BY 100 JSB CAT24 OUTPUT THE THIRD DIGIT DIV .+10 JSB CAT24 OUTPUT THE FOURTH DIGIT ADA ASC00 JSB LOUT LDA .+40B OUTPUT A BLANK JSB LOUT LDA .+40B AND ANOTHER JSB LOUT LDA .+40B AND ANOTHER JSB LOUT * LDB CATP ADB .+4 STB CATP ISZ CATN END OF LINE? JMP CAT10 NO. * LDA .+15B OUTPUT CR. JSB LOUT LDA .-4 STA CATN LDA .+12B JSB LOUT LDB CATP JMP CAT10 CAT24 NOP STB CATLN SAVE REMAINDER SZA IS DIGIT ZERO? JMP CAT27 NO, GO PRINT IT LDB CATZS YES  SZB IS IT A LEADING ZERO? JMP CAT25 NO, GO PRINT IT LDA .+40B YES, SUPPRESS IT AND JMP CAT26 PRINT " " CAT27 STA CATZS NONZERO THE SUPPRESS FLAG CAT25 ADA ASC00 CONSTRUCT THE CHARACTER CAT26 JSB LOUT PUT OUT CHARACTER LDA CATLN GET REMAINDER CLB PREPARE FOR DIVIDE JMP CAT24,I RETURN * CATI EQU LTEMP+4 CATP EQU LTEMP+5 CATJ EQU LTEMP+6 CATN EQU LTEMP+7 CATC EQU LTEMP+10 CATLN EQU LTEMP+11 CATS EQU LTEMP+12 CATZS EQU LTEMP+13 ASCC OCT 103 ASCF OCT 106 CATTP DEF CATIT CATIT ASC 9, NAME LENGTH END CATAL }ASMB,R,L,X NAM KILL,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT SPC 2 EXT LCHAR,LIBER,DLOOK,LLEND,DCMPL,EXEC EXT OUTCH SPC 2 DLTEM DEF LTEMP ASCBB ASC 1, KILP EQU LTEMP+4 KILC EQU LTEMP+10 * THE KILL ROUTINE IS USED TO DELETE A PROGRAM FROM THE USER * LIBRARY. THE PROCESS IS AS FOLLOWS: * 1) CHECK FORMAT AND DETERMINE PROGRAM NAME. * 2) SEARCH DIRECTORY FOR ENTRY. * 3) OBTAIN LOCATION AND LENGTH. * 4) COLLAPSE DIRECTORY. * 5) UPDATE ADT AND IDT. SPC 1 KILL LDA DRFLG CHECK FOR $FILS SZA JMP KILL0 LDA .-22 LDB *+2 JMP LIBER DEF *+1 OCT 5044 ASC 10,FILS NOT INITIALIZED SPC 1 KILL0 LDA DLTEM STA KILP LDA .-3 SET UP COUNTER. STA KILC KIL1 JSB LCHAR GET LEFT CHAR. LDA .+40B BLANK IF NONE. ALF,ALF STA KILP,I JSB LCHAR GET RIGHT CHAR. LDA .+40B IOR KILP,I STA KILP,I ISZ KILP BUMP POINTER. ISZ KILC ANY MORE? JMP KIL1 YES. LDA LTEMP CPA ASCBB JMP KIL2 NO CHARS--ERROR. JSB LCHAR TEST FOR TOO MANY. JMP KIL3 O.K. * KIL2 LDB *+3 LDA .-13 JMP LIBER DEF *+1 OCT 5111 ASC 6,LLEGAL NAME * KIL3 EQU * JSB DELEN JMP KIL10 FOUND. * LDA .-14 LDB *+2 JMP LIBER DEF *+1 OCT 5116 ASC 6,O SUCH ENTRY KIL10 LDA LTEMP+11 FILE KILLED OR PROG.? SSA JMP LLEND PROGRAM JSB DCMPL FILE. JMP LLEND SPC 2 DELEN NOP JSB DLOOK SEARCH DIRECTORY JMP DLN0 FOUND ISZ DELEN NOT FOUND JMP DELEN,I SPC 1 DLN0 STA LTEMP+6 SAVE T/S STB DTEMP SAVE DIRECTORY POINTER LDA B,I GET FILE LNTH. STA LTEMP+11 AND SAVE SSA FILE OR PROG.? JMP DLN6 PROGRAM RAL FILE. GET # OF SECTORS DLN1 CMA,INA MAKE NEGATIVE STA LTEMP+5 AND SAVE LDA DCNT CPA DIREC+5 LAST ENTRY IN DIREC.? JMP DLN4 YES LDA B NO ADB .+4 B => NEXT ENTRY ADA .-4 STA DTEMP DTEMP => HOLE CCA STA LTEMP+14 DLN15 LDA .-3 SET COUNTER STA LTEMP+12 DLN2 LDA B,I SHIFT REMAINING DIREC. ENTRIES STA DTEMP,I INB ISZ DTEMP ISZ LTEMP+12 JMP DLN2 LDA B,I MODIFY REL. SECTOR # IN ENTRY ISZ LTEMP+14 RSS STA LTEMP+15 ADA LTEMP+5 STA DTEMP,I INB ISZ DTEMP LDA .-4 STA LTEMP+12 DLN3 LDA B,I STA DTEMP,I INB ISZ DTEMP ISZ LTEMP+12 JMP DLN3 ISZ DCNT LDA DCNT CPA DIREC+5 RSS JMP DLN15 SPC 1 LDA LTEMP+6 GET T/S OF HOLE AND =B377 STA LTEMP+7 SAVE SECTOR # LDA LTEMP+6 ALF,ALF AND =B377 STA LTEMP+6 SAVE TRACK # LDA LTEMP+5 GET NEG. SIZE OF HOLE CMA,INA MAKE POS. ADA LTEMP+7 ADD HOLE SECTOR # CLB DIV SECTR DIVIDE BY # SECTORS/TRACK STB LTEMP+9 SAVE SECTOR # ADA LTEMP+6 GET TRACK # STA LTEMP+8 AND SAVE LDA LTEMP+15 CMA,INA ADA DIREC+4 CMA STA DTEMP JSB WDIRC WEITR OUT DIREC. DLN9 JSB EXEC READ A FILE SECTOR DEF *+7 DEF .-1 DEF .103 DEF DIREC DEF D128 DEF LTEMP+8 DEF LTEMP+9 SPC 1 JSB EXEC WRITE FILE SECTPR TO HOLE DEF *+7 DEF .-2 DEF .103 DEF DIREC DEF D128 DEF LTEMP+6 DEF LTEMP+7 SPC 1 LDA LTEMP+7 GET HOLE SECTOR # INA CPA SECTR END OF TRACK? JMP DLN10 YES DLN95 STA LTEMP+7 NO LDA LTEMP+9 GET FILE SECTOR # INA CPA SECTR END OF TRACK? JMP DLN11 YES DLN96 STA LTEMP+9 NO ISZ DTEMP DONE? t JMP DLN9 NO JSB RDIRC YES. READ DIRECTORY SPC 1 DLN4 LDA DIREC+5 ADA .-1 STA DIREC+5 LDA LTEMP+5 ADA DIREC+4 STA DIREC+4 JSB WDIRC JMP DELEN,I SPC 1 DLN6 CMA,INA STA LTEMP+13 AND =B177 STA B LDA LTEMP+13 AND =B177600 ALF,ALF RAL SZB INA LDB DTEMP JMP DLN1 SPC 1 DLN10 CLA ISZ LTEMP+6 JMP DLN95 DLN11 CLA ISZ LTEMP+8 JMP DLN96 SPC 2 WDIRC NOP JSB EXEC DEF *+7 DEF .-2 DEF .103 DEF DIREC DEF D256 DEF DTRAK DEF DSECT JMP WDIRC,I SPC 1 RDIRC NOP JSB EXEC DEF *+7 DEF .-1 DEF .103 DEF DIREC DEF D256 DEF DTRAK DEF DSECT JMP RDIRC,I SPC 2 .103 OCT 103 D256 DEC 256 SECTR EQU 116B D128 DEC 128 B EQU 1 END KILL (OASMB,R,L,X NAM SAVE,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT SPC 2 sEXT MLINB,PBUFF,DCMPL,ALCOM,LIBER,MOVEW,DLOOK EXT LLEND EXT EXEC B EQU 1 ?ID EQU 4 ?LINK EQU 15B ASCBB ASC 1, CFLAG EQU .+2 SAVWD EQU LTEMP+8 SAVLN EQU LTEMP+11 SAVP EQU LTEMP+10 SAVI EQU LTEMP+4 .103 OCT 103 D256 DEC 256 SECTR EQU 116B SAVC EQU LTEMP+9 SAVDF EQU LTEMP+12 DLTEM DEF LTEMP HED SAVE * THE SAVE COMMAND IS USED TO SAVE PROGRAMS IN THE USER LIBRARY. * THE PROCEDURE IS AS FOLLOWS: * 1) CHECK THAT PROGRAM IS LISTABLE (OR ID=A000), HAS A NAME, * AND ISN'T NULL. * 2) DECOMPILE. * 3) CHECK FOR IDT OR ADT OVERFLOW. * 4) CHECK FOR DUPLICATELY NAMED PROGRAM. * 5) UPDATE DIRECTORY. * 6) UPDATE IDT AND ADT. * 7) MOVE PROGRAM TO LIBRARY AREA. * * STEP 5 IS WRITTEN AS AN OVERLAY, WHICH IS CALLED WHENEVER THE PAR- * TICULAR DIRECTORY TRACK NEEDED IS ALREADY FULL. ITS JOB IS TO GAR- * BAGE COLLECT THE DIRECTORY TRACKS. SPC 2 SAVE LDA DRFLG CHECK FOR $FILS SZA JMP SAV LDA .-22 LDB *+2 JMP LIBER DEF *+1 OCT 5044 ASC 10,FILS NOT INITIALIZED SPC 1 SAV LDB MLINB ADB .+?ID-?LINK ID LOCN. STB MOVES DLD MOVES,I A=ID,B=1ST WORD OF NAME. SZB TEST FOR NO PROGRAM NAME CPB ASCBB JMP SAV3 LDB PBPTR LDA .-11 CPB PBUFF JMP SAV4 * LDA MAIN,I AND CFLAG SAV0 SZA,RSS JMP SAV5 NOT COMPILED. * JSB DCMPL DECOMPILE IT. SAV5 LDB SPROG COMMON CPB PBUFF ALLOCATED? JSB ALCOM NO--DO IT SAV51 LDB PBPTR CMB,INB PROGRAM ADB SPROG LENGTH STB SAVWD SAVE IN CMB,INB INB BRS,BRS BRS,BRS BRS,BRS BRS INB STB SAVLN SECTORS LDB SPROG SAVE START-OF- STB SAVP PROGRAM POINTER STB BUFAD * LDA DIREC+3 CMA,INA ADA DIREC+4  ADA SAVLN SSA JMP SAV6 OK. LDB *+3 SAV9 LDA .-19 JMP LIBER DEF *+1 OCT 5114 LF-L ASC 9,IBRARY SPACE FULL * * SEARCH ADT FOR SPACE TO PUT THE PROGRAM. * SAV6 EQU * LDA DIREC+5 CPA .+32 RSS JMP SAV7 LDA .-14 LDB *+2 JMP LIBER DEF *+1 OCT 5104 ASC 6,IRECTORY FULL SPC 1 SAV12 LDA .-16 LDB *+2 PRINT "DUPLICATE ENTRY" JMP LIBER DEF *+1 OCT 5104 LF-D ASC 7,UPLICATE ENTRY * SAV7 EQU * ISZ MOVES LDA DLTEM MOVE ID/NAME ENTRY TO STA MOVED LTEMP(0:3). LDB .-3 JSB MOVEW * SAV11 EQU * JSB DLOOK JMP SAV12 ENTRY FOUND--ILLEGAL. * ISZ DIREC+5 INCR. LAST ENTRY INDEX IN DIREC. LDA DIREC+4 GET LAST SECTOR USED STA SAVI AND SAVE ADA SAVLN ADD # SECTORS IN CURRENT PROGRAM STA DIREC+4 AND SAVE LDA LTEMP GET FIRST WORD OF FILENAME STA B,I AND STORE IN DIREC. INB LDA LTEMP+1 STA B,I INB LDA LTEMP+2 STA B,I INB LDA SAVI GET PREVIOUS LAST USED SECTOR INA MAKE START OF NEW FILE STA B,I STORE IN DIREC. INB LDA SAVWD GET PROG. LENGTH STA B,I STORE IN DIREC. INB LDA PBUFF GET START ADDR. OF USER PROG. AREA CMA,INA ADA SAVP GET RELATIVE PROG. POINTER STA B,I STORE IN DIREC. INB CLA STA B,I INB STA B,I SPC 1 JSB EXEC WRITE OUT DIRECTORY DEF *+7 DEF .-2 DEF .103 DEF DIREC DEF D256 DEF DTRAK DEF DSECT SPC 1 LDA SAVI GET START SECTOR FOR FILE INA ADA DSECT ADD START SECTOR # OF $FILS CLB DIV SECTR DIVIDE BY # SECTORS/TRACK ADA DTRAoK ADD $FILS STA9T TRACK STA SAVC AND SAVE TRACK # STB SAVDF AND SECTOR # LDA SAVWD MAKE PROG. LENGTH POSITIVE CMA,INA STA SAVWD SPC 1 JSB EXEC WRITE PROGRAM TO $FILS DEF *+7 DEF .-2 DEF .103 BUFAD NOP DEF SAVWD DEF SAVC DEF SAVDF SPC 1 JMP LLEND SAV3 LDA .-16 SAV4 LDB *+2 JMP LIBER DEF *+1 OCT 5116 LF-N ASC 7,O PROGRAM NAME END SAVE ASMB,R,L,X NAM CSAVE,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT SPC 2  ENT CSAV2 SPC 2 EXT MLINB,PBUFF,DCMPL,ALCOM,LIBER,MOVEW,DLOOK EXT LLEND EXT EXEC EXT BLANK,CMP00,RSTPT,LWAUS SPC 2 B EQU 1 ?ID EQU 4 ?LINK EQU 15B ASCBB ASC 1, CFLAG EQU .+2 SAVWD EQU LTEMP+8 SAVLN EQU LTEMP+11 SAVP EQU LTEMP+10 SAVI EQU LTEMP+4 .103 OCT 103 D256 DEC 256 SECTR EQU 116B SAVC EQU LTEMP+9 SAVDF EQU LTEMP+12 DLTEM DEF LTEMP HED SAVE * THE SAVE COMMAND IS USED TO SAVE PROGRAMS IN THE USER LIBRARY. * THE PROCEDURE IS AS FOLLOWS: * 1) CHECK THAT PROGRAM IS LISTABLE (OR ID=A000), HAS A NAME, * AND ISN'T NULL. * 2) DECOMPILE. * 3) CHECK FOR IDT OR ADT OVERFLOW. * 4) CHECK FOR DUPLICATELY NAMED PROGRAM. * 5) UPDATE DIRECTORY. * 6) UPDATE IDT AND ADT. * 7) MOVE PROGRAM TO LIBRARY AREA. * * STEP 5 IS WRITTEN AS AN OVERLAY, WHICH IS CALLED WHENEVER THE PAR- * TICULAR DIRECTORY TRACK NEEDED IS ALREADY FULL. ITS JOB IS TO GAR- * BAGE COLLECT THE DIRECTORY TRACKS. SPC 2 CSAVE LDA DRFLG CHECK FOR $FILS SZA JMP SAV LDA .-22 LDB *+2 JMP LIBER DEF *+1 OCT 5044 ASC 10,FILS NOT INITIALIZED SPC 1 SAV LDB MLINB ADB .+?ID-?LINK ID LOCN. STB MOVES DLD MOVES,I A=ID,B=1ST WORD OF NAME. SZB TEST FOR NO PROGRAM NAME CPB ASCBB JMP SAV3 LDB PBPTR LDA .-11 CPB PBUFF JMP SAV4 * LDA MAIN,I AND CFLAG SZA COMPILED? JMP CSAV1 YES. LDB SPROG NO. COMMON ALLOCATED? CPB PBUFF JSB ALCOM NO. DO IT LDB SPROG SET PROGRAM STB PRGCT COUNTER LDA .+40B TURN ON BLANK STA BLANK SUPPRESSION LDA DRFLG ADA =B100000 STA DRFLG CLA CLEAR OUT-OF- STA SYMTB STORAGE FLAG JMP *+1,I GO COMPILE PROGRAM DEF CMP00 CSAV1 LDA SPTR SZA SEM I-COMPILED? JSB RSTPT RESTORE SYMBOL TABLE POINTER CSAV2 CLA FLAG AS STA SPTR SEMI-COMPILED LDB FILTB ADB .+7 CMB,INB ADB LWAUS SSB,RSS TOO BIG? JMP CSAV4 NO. LDA .-18 LDB *+2 JMP LIBER DEF *+1 OCT 5120 LF-P ASC 8,ROGRAM TOO LARGE CSAV4 LDB FILTB ADB .+7 CMB,INB PROGRAM ADB SPROG LENGTH STB SAVWD SAVE IN CMB,INB INB BRS,BRS BRS,BRS BRS,BRS BRS INB STB SAVLN SECTORS LDB SPROG SAVE START-OF- STB SAVP PROGRAM POINTER STB BUFAD * LDA DIREC+3 CMA,INA ADA DIREC+4 ADA SAVLN SSA JMP SAV6 OK. LDB *+3 SAV9 LDA .-19 JMP LIBER DEF *+1 OCT 5114 LF-L ASC 9,IBRARY SPACE FULL * * SEARCH ADT FOR SPACE TO PUT THE PROGRAM. * SAV6 EQU * LDA DIREC+5 CPA .+32 RSS JMP SAV7 LDA .-14 LDB *+2 JMP LIBER DEF *+1 OCT 5104 ASC 6,IRECTORY FULL SPC 1 SAV12 LDA .-16 LDB *+2 PRINT "DUPLICATE ENTRY" JMP LIBER DEF *+1 OCT 5104 LF-D ASC 7,UPLICATE ENTRY * SAV7 EQU * ISZ MOVES LDA DLTEM MOVE ID/NAME ENTRY TO STA MOVED LTEMP(0:3). LDB .-3 JSB MOVEW * SAV11 EQU * JSB DLOOK JMP SAV12 ENTRY FOUND--ILLEGAL. * ISZ DIREC+5 INCR. LAST ENTRY INDEX IN DIREC. LDA DIREC+4 GET LAST SECTOR USED STA SAVI AND SAVE ADA SAVLN ADD # SECTORS IN CURRENT PROGRAM STA DIREC+4 AND SAVE LDA LTEMP GET FIRST WORD OF FILENAME STA B,I AND STORE IN DIREC. INB LDA LTEMP+1 STA B,I INB LDA LTEMP+2 STA B,I INB LDA SAVI GET PRE#NVIOUS LAST USED SECTOR INA MAKE START OF NEW FILE STA B,I STORE IN DIREC. INB LDA SAVWD GET PROG. LENGTH STA B,I STORE IN DIREC. INB LDA PBUFF GET START ADDR. OF USER PROG. AREA CMA,INA ADA SAVP GET RELATIVE PROG. POINTER STA B,I STORE IN DIREC. INB LDA =B100000 STA B,I INB CLA STA B,I SPC 1 JSB EXEC WRITE OUT DIRECTORY DEF *+7 DEF .-2 DEF .103 DEF DIREC DEF D256 DEF DTRAK DEF DSECT SPC 1 LDA SAVI GET START SECTOR FOR FILE INA ADA DSECT ADD START SECTOR # OF $FILS CLB DIV SECTR DIVIDE BY # SECTORS/TRACK ADA DTRAK ADD $FILS STA9T TRACK STA SAVC AND SAVE TRACK # STB SAVDF AND SECTOR # LDA SAVWD MAKE PROG. LENGTH POSITIVE CMA,INA STA SAVWD LDA PBUFF CMA,INA STA DTEMP LDA FILTB => FIRST WD AFTER SYMBOL TABLE LDB SYMTB SAVE END-OF-PROGRAM POINTER ADB DTEMP STB 0,I INA LDB FILCT SAVE # OF STATEMENTS STB 0,I LDB DFILT STB FILPT LDB .-4 STB SPTR CSAV3 INA LDB FILPT,I ADB DTEMP STB 0,I ISZ FILPT ISZ SPTR JMP CSAV3 INA LDB USESN STB 0,I SPC 1 JSB EXEC WRITE PROGRAM TO $FILS DEF *+7 DEF .-2 DEF .103 BUFAD NOP DEF SAVWD DEF SAVC DEF SAVDF SPC 1 JMP LLEND SAV3 LDA .-16 SAV4 LDB *+2 JMP LIBER DEF *+1 OCT 5116 LF-N ASC 7,O PROGRAM NAME END CSAVE vdASMB,R,L,X NAM APPEN,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG SPC 2 EXT LCHAR,LWAUS,LIBER,LW97,MLINB,EXEC  EXT DLOOK,SEMIC,LLEND EXT PBUFF,DCMPL SPC 2 B EQU 1 DLTEM DEF LTEMP LIBSC EQU LTEMP+8 LIBPB EQU LTEMP+13 LIBSP EQU LTEMP+9 .103 OCT 103 ?LINK EQU 15B ?NAME EQU 5 APPEN LDA DRFLG SZA JMP GET0 LDA .-22 LDB *+2 JMP LIBER DEF *+1 OCT 5044 ASC 10,FILS NOT INITIALIZED GET0 LDA DLTEM STA GETP LDA .-3 SET UP COUNTER. STA GETC JSB LCHAR GET FIRST INPUT CHAR. JMP GET1 ERROR IF NONE. GET3 ALF,ALF SAVE CHARACTER IN TABLE. STA GETP,I JSB LCHAR GET RIGHT CHARACTER. LDA .+40B IF END CHANGE TO BLANK. IOR GETP,I STA GETP,I ISZ GETP BUMP POINTER. JSB LCHAR GET NEXT CHARACTER. LDA .+40B ISZ GETC DO WE WANT IT? JMP GET3 YES. CPA .+40B NO--A SHOULD NOW BE BLANK. JMP GET4 * GET1 LDA .-13 LDB *+2 JMP LIBER DEF *+1 OCT 5111 ASC 6,NVALID NAME * GET4 LDA SPROG SAVE END-OF- STA GETS COMMON POINTER JSB DLOOK SEARCH DIRECTORY FOR PROGRAM JMP GET9 * GET19 LDA .-16 LDB *+2 JMP LIBER DEF *+1 OCT 5116 ASC 7,O SUCH PROGRAM GET9 STA GETI SAVR T/S LDA 1,I TEST FOR FILE SSA JMP GET10 * LDA .-16 LDB *+2 JMP LIBER DEF *+1 OCT 5105 LF-E ASC 7,NTRY IS A FILE GET10 STA GETLN SAVE LENGTH ADB .+2 LDA 1,I SSA,RSS SEMI-COMPILED? JMP APP01 NO LDA .-22 LDB *+2 JMP LIBER DEF *+1 OCT 5123 LF-S ASC 10,EMI-COMPILED PROGRAM * APP01 ADB .-1 LDA 1,I SZA,RSS COMMON AREA? JMP APP02 NO. LDA .-23 LDB *+2 JMP LIBER DEF *+1 OCT 5116 LF-N ASC 11,O COMMON AREA ALLOWED APP02 JSB DCMPL * LDA GETLN $ TEST FOR PROGRAM TOO CMA,INA LARGE. ADA PBPTR LAST WORD+1 OF COMBINED PROGS. STA LIBPB CMA,INA COMPUTE NEGATIVE ADA LW97 TOTAL LENGTH SSA,RSS COMPARE WITH MAX ALLOWED. JMP APP1 O.K. LDA .-18 LDB *+2 JMP LIBER DEF *+1 OCT 5120 LF-P ASC 8,ROGRAM TOO LARGE APP1 LDA PBPTR STA MEMSA LDA GETLN CMA,INA STA GETLN LDA GETI ALF,ALF AND =B377 STA GETD LDA GETI AND =B377 STA GETI JSB EXEC APPEND PROGRAM DEF *+7 DEF .-1 DEF .103 MEMSA NOP DEF GETLN DEF GETD DEF GETI SPC 1 * * SCAN ORIGINAL PROGRAM TO DETERMINE LAST SEQUENCE NUMBER. * APP8 LDA SPROG SET A TO POINT AT LENGTH OF INA FIRST STATEMENT. LDB PBPTR SET B TO POINT AT LENGTH OF INB FIRST NEW PROGRAM. CPA 1 IF EQUAL, PROGRAM IS NULL, SO JMP APP2 IT'S OK. CMA,INA ADA B SSA,RSS IS SPROG>PBPTR? JMP APP5-2 NO LDA PBPTR YES, RESET SPROG STA SPROG JMP APP2 * LDA SPROG RESTORE INA (A) APP5 STA GETC ADA 0,I LINK TO NEXT ONE. CPA 1 IF SAVE AS B, APPS=>LAST STATE. RSS JMP APP5 OTHERWISE, LOOP. * CCA GET SEQUENCE # OF LAST STATE- ADA GETC LDA 0,I MAKE NEGATIVE AND SUBTRACT CMA,RSS ONE. APP2 CCA SET TO -1 (SEQNO=0) IF NO PROG. * * ADA PBPTR,I CHECK THAT FIRST SEQUENCE # IS SSA,RSS GREATER THAN LAST ONE OF OLD JMP APP3 PROGRAM. * LDA .-24 ERROR. LDB *+2 JMP LIBER DEF *+1 OCT 5123 LF-S ASC 11,EQUENCE NUMBER OVERLAP * APP3 LDA LIBPB SET NEW VALUE OF STA PBPTR PBPTR. D JMP LLEND * GETP EQU LTEMP+4 GETI EQU LTEMP+6 GETC EQU LTEMP+7 GETLN EQU LTEMP+10 GETS EQU LTEMP+11 GETD EQU LTEMP+12 * LTEMP+15 IS USED HERE ALSO END APPEN ASMB,R,L,X NAM CHAIN,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT SPC 2 u EXT OUTCH,FORMX,PSTR,FCUCA,TRSTR,FETCH,SBFIX EXT LWAUS,LW97,PBUFF,FNDPS,BLANK,DLOOK EXT MLINB,EXEC,SEMIC,WRBUF SPC 2 B EQU 1 FTEL EQU 15 ?ID EQU 4 ?LINK EQU 15B DFCHK OCT 400 DLTEM DEF LTEMP DVSRS DEC 10000 SCHLQ NOP LIBSC EQU LTEMP+8 LIBSP EQU LTEMP+9 LIBPB EQU LTEMP+13 .103 OCT 103 B377 OCT 377 UNABT EQU .+16 CHNFG OCT 1000 CHAIN LDA B,I STA SCHLQ LDA DRFLG SZA,RSS JMP CHAN7 HED CHAIN * THE CHAIN ROUTINE IS USED BY THE BASIC COMPILER TO PROCESS A CHAIN * STATEMENT DURING PHASE III. THE PURPOSE OF THIS ROUTINE IS TO * CHECK FOR THE REQUESTED PROGRAM ON THE USER'S PRIVATE LIBRARY OR * ON THE PUBLIC LIBRARY (IF THE NAME IS PRECEDED BY A DOLLAR SIGN) * OR ON THE GROUP LIBRARY (IF THE NAME IS PRECEDED BY A SNOWFLAKE). * IF THE PROGRAM IS FOUND IT IS LOADED AND COMPILATION IS BEGUN. LDA FCNTR SET COUNTER TO CMA 1'S COMPLEMENT OF STA FCNTR NUMBER OF FILES INA PUT 2'S COMPLEMENT INTO STA CHNP SAFE KEEPING FOR LCD LDA FCORE LOAD FIRST BUFFER ADDRESS LDB FILTB LOAD POINTER TO ADB .+5 FIRST DISC ADDRESS (LOW WORD) CHN01 ISZ FCNTR MORE FILES? RSS YES JMP CHAN0 NO--FINISHED DUMPING BUFFERS STB FBASE WRITE STA RQ3 OUT JSB WRBUF LDB FBASE ADB .+FTEL-4 LDA 1,I ALR,RAR CMA,INA ADB .+7 ADA 1,I ADB .-3 JMP CHN01 CHAN0 LDB MLINB ADB .+?ID-?LINK STB CHNI => USER ID ADB .-?ID CAN THERE BE LDA B,I FILES WHOSE AND DFCHK LCD'S NEED SZA,RSS UPDATING? JMP CHN17 NO LDA CHNP GET NEGATIVE FILE COUNT ADB .+?ID AND ID POINTER *** JSB LCDP,I *** RSS CHN17 LDA .-3 STA CHNP LDA TWOSP LDB DLTEM CHN00 EQU * STA B,I F NAME TO INB ISZ CHNP BLANKS JMP CHN00 CLA,INA ALLOW STRING STA EOL CONSTANT JSB FORMX EVALUATE STRING LDA .-2 PREPARE JSB PSTR STRING STA TEMP4 SAVE SOURCE POINTER CPB .-1 NULL STRING? JMP CHAN4 YES STB TPRME SAVE LENGTH LDB TEMP4 EXTRACT CLE,ERB LDA B,I FIRST SEZ,RSS ALF,ALF CHARACTER AND B377 CPA .+44B '$'? JMP CHAN2 YES CPA .+52B '*'? RSS YES JMP CHAN3 NO CHAN2 ISZ TEMP4 BUMP SOURCE POINTER ISZ TPRME BUMP LENGTH CHAN3 EQU * LDA TPRME ADA .+7 SSA LENGTH > 6? CLA YES, SET TO 6 ADA .-7 NO STA TPRME STA TNULL LDA DLTEM ALS STA TEMP5 DESTINATION POINTER LDA FCUCA UPPER CASE ONLY JSB TRSTR TRANSFER STRING CHAN4 EQU * CCB SET FLAG FOR NO LINE NUMBER LDA TEMP1 CPA PRGCT END OF STATEMENT? JMP CHAN5 YES JSB FETCH NO, GET LINE NUMBER JSB SBFIX ROUND TO INTEGER LDB DVSRS ILLEGAL LINE NUMBER INB READJUST CHAN5 EQU * STB PKCNT SAVE THE LINE NUMBER LDA SPROG STA INWRD JSB DLOOK RSS JMP CHAN7 PROGRAM NOT FOUND CHN14 ISZ SCHLQ PAST SECOND ERROR STA CHNPD SAVE T/S OF PROGRAM LDA 1,I SSA,RSS JMP CHAN7 ENTRY IS A FILE ISZ SCHLQ PAST THIRD ERROR STA CHNLN ADB .+2 => THIRD WORD OF NAME LDA 1,I SAVE SEMI- STA LIBSC COMPILED FLAG ADB .-1 LDA 1,I SAVE START-OF- ADA PBUFF STA LIBSP PROGRAM POINTER STA MEMSA LDA CHNLN CMA,INA COMPUTE FIRST ADA LIBSP UNUSED WtORD STA LIBPB CMA,INA COMPUTE NEGATIVE LDB LIBSC SSB,RSS SEMI-COMPILED? JMP CHN18 NO ADA LWAUS SSA,RSS JMP CHN11 OK JMP CHAN7 CHN18 EQU * ADA LW97 TOTAL LENGTH SSA,RSS COMPARE WITH MAX ALLOWED JMP CHN11 JMP CHAN7 PROGRAM TOO LARGE CHN11 EQU * ISZ SCHLQ PAST FOURTH ERROR LDA CHNPD AND =B377 STA CHNC LDA CHNPD ALF,ALF AND =B377 STA CHNPD LDA CHNLN CMA,INA STA CHNLN SPC 1 JSB EXEC READ IN PROGRAM DEF *+7 DEF .-1 DEF .103 MEMSA NOP DEF CHNLN DEF CHNPD DEF CHNC SPC 1 CHN13 ISZ CHNI LDB LTEMP STB CHNI,I STORE FIRST WORD OF NAME ISZ CHNI BUMP POINTER TO NEXT WORD DLD LTEMP+1 DST CHNI,I STORE IN TABLE JSB SEMIC LDB MAIN LDA 1,I DON'T ALLOW IOR UNABT ABORTS IOR CHNFG STA 1,I DURING COMPILE LDB SPROG NULL CPB PBPTR PROGRAM? JMP CHAN9 YES LDA SYMTB SZA,RSS UNCOMPILED? LDA PBPTR YES, USE PBPTR LDB PKCNT LINE NUMBER SSB SPECIFIED? JMP CHAN6 NO JSB FNDPS FIND REFERENCED STATEMNET JMP CHAN9 BAD LINE NUMBER NOP RSS CHAN6 EQU * LDB SPROG DEFAULT LINE NUMBER STB PRGCT SAVE FIRST STATEMENT ISZ SCHLQ CHAN8 EQU * LDA .+40B STA BLANK JMP SCHLQ,I CHAN9 LDA CHNFG CMA LDB MAIN AND B,I CLEAR CHAIN FLAG STA B,I JMP CHAN8 CHAN7 JMP SCHLQ,I CHNDP DEF CHNDI TWOSP ASC 1, PKCNT BSS 1 INWRD BSS 1 INCHR BSS 1 CHNP EQU LTEMP+4 CHNPD EQU LTEMP+5 CHNI EQU LTEMP+6 CHNC EQU LTEMP+7 CHNLN EQU LTEMP+10 CHND EQU LTEMP+12 CHNDI EQU LTEMP+14 * LTEMP+15 IS %USED HERE ALSO END CHAIN ASMB,R,L,X NAM OPEN,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT SPC 2 EXT LCHAR,OUTCH,ILFER,LIBER,DLOOK,EXEC EXT LLEND SPC 2 DLTEM DEF LTEMP M72B OCT -72 B400 OCT 400 .140 OCT 140 M64 DEC -64 OM193 DEC -193 B EQU 1 .103 OCT 103 D256 DEC 256 SECTR EQU 116B OPEDF EQU LTEMP+9 OPEP EQU LTEMP+10 OPEC EQU LTEMP+11 OPEF EQU LTEMP+8 OPEDT EQU LTEMP+12 OPEDS EQU LTEMP+13 * THE OPEN COMMAND IS A USER FUNCTION WHICH CAUSES THE SYSTEM TO * CREATE ROOM FOR A DATA FILE. THE FORMAT FOR THE COMMAND IS: * * OPEN - FILENAME, FILE LENGTH, RECORD SIZE * * THE FILENAME IS SUBJECT TO ALL THE RULES OF PROGRAM NAMES. THE * LENGTH IS A DECIMAL INTEGER FROM 1 TO 32767 INDICATING THE FILE * LENGTH IN RECORDS. RECORD SIZE IS A DECIMAL INTEGER FROM 64 TO * 256 INDICATING THE RECORD SIZE IN WORDS. SPC 2 OPEN LDA DRFLG GET DIRECTORY FLAG SZA SET? JMP OPE YES. CONTINUE LDA .-22 NO. ERROR LDB *+2 JMP LIBER DEF *+1 OCT 5044 ASC 10,FILS NOT INITIALIZED OPE LDA DLTEM SET POINTER FOR NAME ADA .-1 STA OPEP NAME. LDA .-3 SET UP COUNTER. STA OPEC CLA SET FLAG SAYING FIRST STA OPEF CHAR. OPE1 JSB OPER GET A CHARACTER. ALF,ALF STORE IN ISZ OPEP NAME AREA. STA OPEP,I JSB OPER GET RIGHT CHAR. IOR OPEP,I MERGE IN. STA OPEP,I ISZ OPEC TEST FOR ANY MORE. JMP OPE1 * JSB OPER NEXT CHARACTER MUST BE CPA .+40B BLANK. JMP OPE2 LDA .-14 LDB *+2 JMP LIBER DEF *+1 OCT 5116 LF-N ASC 6,AME TOO LONG * OPER NOP GET NEXT CHAR FOR NAME. LDA OPEF TEST TO SEND BACK BLANK. CPA .+40B JMP OPER,I OPER1 JSB LCHAR GET NEXT CHAR. JMP ILFER FAIL IF NONE. LDB 0 SAVE IN B. AND .140 SKIP CONTROL CHARS. SZA CPA .140 JMP OPQoER1 LDA OPEF GET 1ST CHAR. FLAG. SZA TEST FOR 1ST CHAR. JMP OPER2 NOT. CPB .+54B TEST FOR COMMA OR $ JMP ILFER CPB .+44B JMP OPE16 CPB .+52B TEST FOR * JMP OPE16 OPER3 LDA 1 RETURN CHAR IN B ISZ OPEF JMP OPER,I OPER2 CPB .+54B COMMA TEST RSS JMP OPER3 LDA .+40B STA OPEF JMP OPER,I * OPE16 LDA .-24 LDB *+2 JMP LIBER DEF *+1 OCT 5111 LF-I ASC 11,LLEGAL FIRST CHARACTER * * GET FILE LENGTH. * OPE2 CLA INITIALIZE # TO 0 STA OPEF JSB LCHAR GET A CHAR. JMP OPE51 DONE CPA .+54B IS IT A COMMA? JMP OPE50 YES, GO GET RECORD SIZE ADA M72B DIGIT TEST. SSA,RSS JMP ILFER ADA .+10 SSA JMP ILFER STA OPEC SAVE DIGIT. LDA OPEF JSB OPESB JMP OPE2+1 * * GET RECORD SIZE * OPE50 CLA INITIALIZE SIZE TO 0 STA OPEP JSB LCHAR GET A CHARACTER JMP OPE3 DONE ADA M72B DIGIT TEST SSA,RSS JMP ILFER ADA .+10 SSA JMP ILFER STA OPEC SAVE DIGIT LDA OPEP BUILD JSB OPESB JMP OPE50+1 GET NEXT DIGIT * OPE51 LDA B400 DEFAULT RECORD SIZE STA OPEP IS 256 WORDS OPE3 LDA OPEF TEST FOR LEGAL VALUE. SSA,RSS SZA,RSS JMP ILFER ERROR IF ZERO OR NEGATIVE RAL DOUBLE # OF RECORDS STA OPEF AND SAVE # OF SECTORS LDA OPEP GET RECORD SIZE ADA M64 SSA LESS THAN 64? JMP ILFER YES, AND THAT'S NOT PLAYING * BY THE RULES. ADA OM193 SSA,RSS GREATER THAN 256? JMP ILFER THAT'S EQUALLY A NO-NO * LDB DIREC+4 ADB OPEF CMB ADB DIREC+3 # SSB,RSS JMP OPE4 * LDB *+3 OPE7 LDA .-19 JMP LIBER DEF *+1 OCT 5114 LF-L ASC 9,IBRARY SPACE FULL OPE4 LDA DIREC+5 CPA .+32 RSS JMP OPE5 LDA .-15 LDB *+2 JMP LIBER DEF *+1 OCT 5104 ASC 7,IRECTORY FULL SPC 1 OPE5 JSB DLOOK SEARCH DIRECTORY JMP OPE8 ISZ DIREC+5 LDA DIREC+4 STA OPEDF ADA OPEF STA DIREC+4 LDA LTEMP STA B,I INB LDA LTEMP+1 STA B,I INB LDA LTEMP+2 STA B,I INB LDA OPEDF INA STA B,I INB LDA OPEF RAR STA B,I INB LDA OPEP STA B,I INB CLA STA B,I INB STA B,I SPC 1 JSB EXEC DEF *+7 DEF .-2 DEF .103 DEF DIREC DEF D256 DEF DTRAK DEF DSECT SPC 1 LDA OPEDF INA ADA DSECT CLB DIV SECTR ADA DTRAK STA OPEDT STB OPEDS SPC 1 LDA OPEF RAR CMA,INA STA OPEF SPC 1 OPE13 JSB EXEC DEF *+7 DEF .-2 DEF .103 DEF .-1 DEF .+1 DEF OPEDT DEF OPEDS ISZ OPEF RSS JMP LLEND LDA OPEDS ADA .+2 CLB DIV SECTR ADA OPEDT STA OPEDT STB OPEDS JMP OPE13 * OPESB NOP MPY .+10 BUILD NEW CLE NUMBER. ADA OPEC SEZ,SZB,RSS OVERFLOW CHECK. JMP OPESB,I EXIT JMP ILFER * OPE8 EQU * LDA .-16 LDB *+2 JMP LIBER DEF *+1 OCT 5104 ASC 7,UPLICATE ENTRY END OPEN &ASMB,R,L,X NAM FILES,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT,FLSTS(4) SPC w2 EXT DCMPL,DLOOK,LWAUS,OUTCH SPC 2 B377 OCT 377 B EQU 1 B177 OCT 177 M96 DEC -96 M32 DEC -32 .140 OCT 140 SCHLQ NOP B400 OCT 400 SECTR EQU 116B FTEL EQU 15 HED FILES * THE FILES ROUTINE IS USED BY THE BASIC COMPILER TO PROCESS FILES * STATEMENTS DURING PHASE II. THE PURPOSE OF THE ROUTINE IS TO PRO- * VIDE THE COMPILER WITH INFORMATION ABOUT THE REQUESTED FILES. THIS * INFORMATION CONSISTS OF THE FILE'S DISC ADDRESS AND DRUM * ADDRESS (IF ANY), ITS LENGTH, AND ITS RECORD SIZE. * THE COMPILER PASSES PARAMETERS TO THE FILES ROUTINE AS FOLLOWS: * * FILCT=-5+# OF FILES STATEMENTS * FILTB=>BEGINNING OF TABLE AREA FOR FILE INFO. * SCHLB,I=>FIRST POSSIBLE RETURN ADDRESS. * * THE CALLING SEQUENCE TO THE FILES ROUTINE IS AS FOLLOWS: * * JSB SCHLB,I * DEF FILIB * * * * SPC 2 FILES LDA B,I STA SCHLQ LDA DRFLG SZA JMP FLB ISZ SCHLQ JMP FLB8 FLB LDA FILBP STA FLBUF SAVE BUFFER POINTER. STA FLBFP LDA .-17 SET COUNTER FOR MAXIMUM NUMBER STA FLBC1 OF FILES ALLOWED. LDA FILCT GET COUNT - 5 OF FILES STATEMENTS ADA .+5 GET COUNT CMA,INA GET NEGATIVE STA FLBFC SAVE COUNT LDA DFILT GET POINTER TO FILES STA FLBFF STATEMENT TABLE FLBA EQU * LDB FLBFF,I GET POINTER TO FILES STATEMENTS CCA SET POINTER TO ADA 1,I LAST CHAR + 1 OF ADA 1 FILES STATEMENT. RAL STA FLBP INB INITIALIZE POINTER TO RBL STB FLBCP FILES STATEMENT. * FLB1 LDA .-3 SET FILC2 TO SAY 3 WORDS STA FLBC2 ALLOWED. CLA STA FLBCM CLEAR COMMA FLAG. JSB FLBCH GET FIRST CHAR. CPa/A .+44B TEST FOR DOLLAR SIGN. JMP FLB2 CPA .+52B TEST FOR SNOWFLAKE JMP FLB22 FLB5 CPA .+40B BETTER NOT BE A BLANK. JMP FLB8 FLB3 ALF,ALF POSITION ON LEFT STA FLBUF,I AND STORE IN BUFFER. JSB FLBCH GET RIGHT CHARACTER IOR FLBUF,I AND PACK IN. STA FLBUF,I ISZ FLBUF BUMP BUFFER POINTER. JSB FLBCH GET NEXT CHARACTER. ISZ FLBC2 TEST FOR END OF FILE NAME. JMP FLB3 * CPA .+40B IF END OF FILE NAME, CHAR MUST JMP FLB4 BE A BLANK. JMP FLB8 FLB2 JSB FLBCH JMP FLB5 FLB22 JSB FLBCH CPA .+40B IS IT BLANK? CLA,RSS YES, * IS PLACE HOLDER JMP FLB5 LDB .-7 CLEAR BUFFER STA FLBUF,I SINCE NO ISZ FLBUF FILE NOW INB,SZB JMP *-3 LDB B400 RESERVE 256 WORDS STB FLBUF,I IN CORE FOR FUTURE FILE INA JMP FLB26 * FLB4 LDA .+5 LEAVE ROOM FOR STORAGE FLB26 EQU * ADA FLBUF OF FILE INFORMATION STA FLBUF FROM THE DIRECTORY ISZ FLBC1 TEST FOR TOO MANY FILES. RSS JMP FLB8 LDA FLBCM TEST FOR ANY MORE REQUESTED. SZA JMP FLB1 YES IF COMMA WAS SEEN. ISZ FLBFF COUNT UP POINTER INTO TABLE ISZ FLBFC CHECK COUNTER JMP FLBA PROCESS ANOTHER FILES STATEMENT. * LDA FLBC1 SET FILC1 TO EQUAL ADA .+17 -# OF FILES REQUESTED CMA,INA STA FLBC1 STA FLBC2 * ISZ SCHLQ BUMP RETURN ADDRESS SINCE WE'VE LDA FLBFP NOW CHECKED FOR TYPE I ERRORS. STA FLBUF SET POINTER TO BUFFER AGAIN. * FLB6 LDB FLBUF,I GET FIRST WORD OF FILE NAME. SZB JMP FLB23 * FLB27 EQU * LDB FLBUF BUMP POINTER ADB .+8 TO NEXT TEMP STB FLBUF BUFFER ENTRY JMP FLB28 * FLB23 STB LTEMP ISZ FLBUF qFGET NEXT 2 WORDS ALSO. DLD FLBUF,I DST LTEMP+1 JSB DLOOK JMP FLB7 FOUND IT. * FLB8 JSB DCMPL JMP SCHLQ,I * FLB7 STA FLBFS ISZ FLBUF ISZ FLBUF CLA STA FLBUF,I LDA FLBFS ALF,ALF AND B377 ISZ FLBUF STA FLBUF,I ISZ FLBUF LDA FLBFS AND B377 STA FLBUF,I ISZ FLBUF DLD B,I SSA JMP FLB8 DST FLBUF,I ISZ FLBUF ISZ FLBUF * FLB28 EQU * ISZ FLBC1 TEST FOR ANY MORE FILES. JMP FLB6 FLB29 EQU * ISZ SCHLQ BUMP TO NEXT ERROR EXIT. LDA FLBC2 GET # OF FILES. STA FLBC1 CMA,INA MPY .+FTEL COMPUTE NEW VALUE OF PBPTR ADA PBPTR CMA ADA LWAUS TEST FOR OVERFLOW. SSA JMP FLB8 FAIL--PROGRAM TOO LARGE. * ISZ SCHLQ BUMP TO NORMAL RETURN ADDRESS. LDA FILTB STA VALTB LDB FLBFP GET BUFFER POINTER FLB16 EQU * ADB .+6 BUMP TO LENGTH WORD DLD B,I GET LENGTH WORD AND RECORD SIZE DST VALTB,I STORE THEM IN FILE TABLE ISZ VALTB BUMP FILE ISZ VALTB TABLE POINTER FLB20 LDB FLBFP NOT SANCTIFIED: GET ADDRESS ADB .+4 OF HIGH DISC ADDRESS STB FUSCH AND SAVE IT INB GET POINTER TO LOW DISC ADD WD. ADA .-1 RAL ADA B,I CLB DIV SECTR ADA FUSCH,I DST VALTB,I OF DISC ADDRESS LDA .+4 ADA VALTB STA VALTB DLD FUSCH,I BASE DISC ADDRESS DST VALTB,I INTO FILE TABLE ISZ VALTB ADJUST POINTER FLB21 LDA VALTB BUMP POINTERS. ADA .+4 STA VALTB LDB FLBFP,I MOVE STB VALTB,I ISZ FLBFP FILE ISZ VALTB DLD FLBFP,I NAME DST VALTB,I LDA VALTB INTO ADA .+FTEL-12 STA VALTB  TABLE LDB FLBFP ADB .+7 STB FLBFP ISZ FLBC2 TEST FOR ANY MORE. JMP FLB16 STA PBPTR ADVANCE PBPTR TO * FIRST UNUSED WORD * JMP SCHLQ,I * * FLBCH GETS THE NEXT CHARACTER OUT OF THE FILES * STATEMENT. IF FLBCM=1, IT ASSUMES A COMMA HAS BEEN * SEEN AND RETURNS A BLANK. OTHERWISE IF THE CHARAC- * TER IS A COMMA, IT SETS FLBCM AND RETURNS A BLANK. * IT ALSO RETURNS BLANKS AT THE END OF THE CODE. * FLBCH NOP LDA .+40B RETURN BLANK IF LDB FLBCM FLBCM IS SET. SZB JMP FLBCH,I LDB FLBCP GET CHAR. POINTER. INB OTHERWISE BUMP CPB FLBP IF END OF STATEMENT, JMP FLBCH,I RETURN A BLANK. STB FLBCP POINTER. CLE,ERB GET NEXT CHAR. LDA 1,I SEZ,RSS ALF,ALF ROTATE IF NECESSARY. AND B177 MASK. SZA,RSS SKIP 0'S. JMP FLBCH+1 ADA M96 SSA,RSS LOWER CASE? ADA M32 YES, MAKE INTO UPPER CASE ADA .140 NO CPA .+54B TEST FOR COMMA. RSS JMP FLBCH,I NOT A COMMA. ISZ FLBCM IF COMMA, SET FLAG AND GO JMP FLBCH+1 RETURN A BLANK. * FLBCM EQU LTEMP+1 FLBUF EQU LTEMP+6 FLBFP EQU LTEMP+7 FLBC1 EQU LTEMP+8 FLBC2 EQU LTEMP+9 FLBP EQU LTEMP+10 FLBCP EQU LTEMP+11 FLBFS EQU LTEMP+13 FLBFC EQU LTEMP+14 FLBFF EQU LTEMP+15 FILBP DEF FILBF FILBF BSS 131 FUSCH BSS 1 END FILES ASMB,R,L,X NAM ASSIG,5 SPC 2 COM PBPTR,NEG(26),.(52),MAIN,SPROG,SYMTB,ERRCT COM SBPTR,SBUFA,SSTAK,SYNTQ,SERRS(36),RERRS(50) COM FERRS(15),WERRS(10),MAXCR,MSFLG,PFLAG,SFLAG COM DFLAG,TEMP(3),CDFLG,ARYAD,GFLAG,SIGN,UFLAG COM PINTG(2),TABLE,LNGTH,SMBGN,SLENG,COUNT COM TBLPT,TSPTR,SBT0 COM EXP,MANT1,MANT2,EXPON,DPFLG,NT0,ENOUF COM LNAME,CHRCT,OCTMP,SPTR,FILTB,NSPTR,INFST COM DCLC1,DEST,DCLC2,STEND,DFILT,FILPT,COMSN COM MVEND COM STYPE,USESN,FILCT,.LNUM COM PRGCT,STCT1,STCT2,NUMPT,STCT3,FLINK COM STMP1,STMP2,VLFLG,VALTB,FCORE,COMPT,VTMP1 COM VTMP2,VTMP3,VTMP4,VTMP5,IFSS COM CU1,APTR,DCFLG,TEMP2,LT1,LT2,FCNTR,RTNST COM ASINP,RTRNQ,FORQ,TEMP1,FILE# COM INTMP,TMPST,TPRME,TNULL,PS1,DMY3,TEMP5 COM PRIST,FBASE,RQ3,EOL,GTMP,FORST,EFN0,FVT COM EFN1,EFN2,EFN3,MCNT,INITF,IFCNT,OPDST COM FFLG,TEMP4,EORFL,NCH,TEMP6,STRLN,ATIM,LT5 COM ASTYP,ASBFP,ORDNO,ATMP(2),RETCD COM DCCNT,NXTDT,VL0,RCRD#,PMASK,ITEMP COM OPTRQ,EST3,EST2,EST1,TT1,TT2,DMY1 COM DMY2,TT3,TT4,CP0,CP1,PS0,MPT,NQT,RT0 COM RT1,TRFCH,TRS0,A1,A2,C1,EOPF,NUMBF(6),FD0 COM OT1,OT2,OT3,LBTMP,REPCT,RNDX1,RNDX2 COM X2TMP(2),CTMP,DTMP(2),BTMP(2),XTEMP(2),YTEMP(2) COM UTEMP(2),LT0,LT8,LT3,LT6,LT7,LT4,DIGCT COM NMPTR,NMTMP,FFLAG,DGCNT COM IFSTR,EC,CC,DP,CONTR,CC1,CC2,PC1,PC2 COM SFLG,FST,EFLAG,NUM1,NUM2,SBD,SAD,SNFLG COM NAD,NBD,FSP,EST,NUMW1,NUMW2,EXPW COM IHB,HBP,NHBW,NBLK,TOTDG,DCTR COM EDSTA,LCH,ELCNT COM STPTR,RSPTR,TEMP3 COM MT1,MT0,MT3,MT2,MEXIT,DMY4,MOP,BS2,BS3 COM MMT0,MMT1,MMT2,MMT6(2),MMT7(2),MMT3,MMT4,MMT5 COM MMT8(2),SCALR(2),ID0,ID1,MAXE(2),TOL(2),PIVEL COM VT0,RD0 COM SOURC,TAP0,TAP1 COM STIME(5) COM LTEMP(16),LTYP1,LTYP2,LCHCR,MOVES,MOVED COM ERSEC(77),DRFLG,DIREC(256),DTEMP,DCNT COM DTRAK,DSECT,FLSTS(4) SPC m2 EXT LIBER,DLOOK,ABCHK SPC 2 B EQU 1 SCHLQ NOP FTEL EQU 15 B377 OCT 377 SECTR EQU 116B BIT15 OCT 100000 * THE ASSIGN ROUTINE IS USED BY THE BASIC STATEMENT EXECUTION PROCESSOR * (PHASE III) TO PROCESS AN ASSIGN STATEMENT. THE PURPOSE OF THE ROU- * TINE IS TO REPLACE THE INFORMATION CURRENTLY IN THE FILE CONTROL * BLOCK REFERENCED BY A SPECIFIED ORDINAL NUMBER WITH INFORMATION ABOUT * THE NEW FILE BEING ASSIGNED TO THAT ORDINAL NUMBER. INPUT PARAMETERS * TO THE ASSIGN ROUTINE ARE AS FOLLOWS: * * ASBFP: > TO BUFFER CONTAINING FILE NAME * ASNID: 0= USER LIBRARY, 1= SYSTEM LIBRARY, 2= GROUP LIBRARY * ORDNO: SPECIFIED ORDINAL NUMBER * FILTB: => FILE TABLE * * THE CALLING SEQUENCE TO THE ASSIGN ROUTINE IS AS FOLLOWS: * * JSB SCHLB,I * DEF ASNIB * * * * ASSIG LDA B,I STA SCHLQ LDA DRFLG SZA JMP ASSI LDA .-22 LDB *+2 JMP LIBER DEF *+1 OCT 5044 ASC 10,FILS NOT INITIALIZED ASSI LDA ASFBF STA ASBUF BUFFER POINTER * * ASN2 LDA ORDNO SAVE SPECIFIED STA ASORD ORDINAL NUMBER MPY .+FTEL SAVE POINTER ADA FILTB TO FILE TABLE STA ASFCB ENTRY INA LDB 0,I CLE,ELB CLE,ELB RBR,RBR STB ASSAV SAVE OLD RECORD SIZE ASN21 LDB ASBFP LDA 1,I FILE NAME STA LTEMP INB IN DLD 1,I DST LTEMP+1 JSB DLOOK JMP ASN4 GO CHECK IT OUT ASN24 ISZ SCHLQ JMP ASN14 ASN4 STA LTEMP+5 LDA B,I FOUND SSA JMP ASN24 NO, FAIL STA LTEMP+4 ASN25 INB LDA B,I RECORD SIZE STA ASBUF,I AND SAVE IT CMA,INA IS IT LARGER ADA ASSAV guTHAN THE ALLOCATED SSA BUFFER? JMP ASN14 ISZ SCHLQ NO ISZ ASBUF ASN5 LDA LTEMP+5 ALF,ALF AND B377 STA ASBUF,I ISZ ASBUF LDA LTEMP+5 AND B377 STA ASBUF,I ISZ ASBUF LDA LTEMP+4 STA ASBUF,I * ASN50 ISZ SCHLQ FILE EXISTS--BUMP RETURN ADDRESS * ISZ SCHLQ NO, BUMP TWICE ASN31 EQU * ISZ SCHLQ ASN32 EQU * LDB ASBUF LDA 1,I GET LENGTH WORD STA ASFCB,I AND STORE IT ISZ ASFCB ADB .-3 LDB 1,I GET NEW RECORD SIZE STB ASFCB,I AND STORE IT ISZ ASFCB ELA,CLE,ERA REMOVE BIT 15 FROM LENGTH LDB ASBUF ADB .-2 ADA .-1 RAL STB ASSCH INB ADA B,I CLB DIV SECTR ADA ASSCH DST ASFCB,I LDA ASFCB ADA .+4 STA ASFCB DLD ASSCH,I STORE BASE DISC ADDRESS DST ASFCB,I INTO FILE TABLE ISZ ASFCB ADJUST POINTER ASN13 LDA ASFCB SET ADA .-3 'NULL RECORD' LDB BIT15 CONDITION STB 0,I LDA ASBUF ADA .-3 LDB ASSAV CMB,INB COMPUTE DIFFERENCE BETWEEN ADB 0,I OLD AND NEW BUFFER SIZES ISZ ASFCB LDA ASFCB,I ADA 1 ADJUST BUFFER STA ASFCB,I ADDRESS ISZ ASFCB STA ASFCB,I SET 'RECORD FULL' CONDITION ISZ ASFCB CLA SET 'NO EOF EXIT' STA ASFCB,I CONDITION ISZ ASFCB LDA ASBFP MOVE LDB 0,I FILE NAME STB ASFCB,I TO INA FILE TABLE ISZ ASFCB DLD 0,I DST ASFCB,I * ASN14 EQU * JSB ABCHK JMP SCHLQ,I ASFCB EQU LTEMP+6 ASORD EQU LTEMP+7 ASNFS EQU LTEMP+8 ASSCH BSS 1 ASSAV BSS 1 ASBUF BSS 1 ASFBF DEF *+1 BSS 6 END ASSIG # 5V 22610-80001 1437 SC 0122 01CORE RESIDENT DOS-M DISC LOADER UTILITY             H0101 ( ASMBAB̬ HDDS-MMNSANDNGUANDAA HSABSUŠPGAMHNASSMBDPDUSANABSU BNAYAPŠHAԠSNPUԠϠ24K MEMORY STA P2N BECAUSE E IS DISTURBED CCE JMP *+3 P2N NOP CLE LDA P2N GET P+1 LDB P2N,I GET P+2+N STB P2N SET RETURN INA POINT TO ASCII BUFFER, P+2 STA ADRS1 INSERT IN IOC CALL CMB,INB B HAS -(P+2+N) ADA 1 A HAS -N ALS A HAS -2N SEZ PRINT 2N-1 CHARACTERS? INA YES STA SIZE INSERT IN IOC CALL JSB .IOC. PRINT IT OCT 20002 JMP *-2 ADRS1 NOP BUFFER ADDRESS SIZE NOP BUFFER LENGTH LDA .2 JSB STAT WAIT FOR UNIT 2 JMP P2N,I THEN RETURN SKP * KEYIN READ ASCII FROM KEYBOARD TO A BUFFER. GO TO THE * STOP ROUTINE IF THE FIRST CHARACTER IS A "^". SPC 1 KEYIN NOP JSB IBFR CLEAR THE BUFFER DEF TEMP DEC 36 FOR 72 CHARACTERS OCT 26054 FILL IT WITH ,, JSB .IOC. READ ASCII OCT 10401 JMP *-2 DEF TEMP DEC -72 CLA,INA JSB STAT WAIT FOR UNIT 1 LDA TEMP AND MSKLO MASK LOWER CHAR. & PARITY CPA UPARO UP ARROW? (^) JMP STOP YEA JMP KEYIN,I NO, RETURN SPC 1 UPARO OCT 57000 SPC 2 * IFBR INITIALIZE A BUFFER SPC 1 * CALL SEQ. JSB IBFR * DEF (BUFFER ADDRESS) * DEC (BUFFER LENGTH) * OCT (INITIALIZING WORD) SPC 1 IBFR NOP LDA IBFR,I GET BUFFER ADDRESS JSB MKDIR ASSURE DIRECT ADDRESS ISZ IBFR BUMP RETURN TO LENGTH LDB IBFR,I GET LENGTH ISZ IBFR BUMP AGAIN TO WORD CMB,INB SET COUNTER STB T3 LDB IBFR,I GET WORD ISZ IBFR BUMP AGAIN TO RETURN POINT STB 0,I STORE WORD INA INCREMENT ADDRESS ISZ T3 DONE? JMP *-3 NO JMP IBFR,I YES SKP * CRLF CARRIAGE RETURN & LINE FEED SPC 1 CRLF NOP JSB P2NM1 PRINT 3 CHARACTERS DEF *+3 OCT 6412 CR, LF, OCT 57400 & _ LDA .2 JSB STAT WAIT FOR UNIT 2 JMP CRLF,I SPC 2 * STAT WAIT UNTIL SPECIFIED UNIT IS AVAILABLE SPC 1 * CALL SEQ. LDA (UNIT REF. NUMBER) * JSB STAT SPC 1 STAT NOP IOR FUNCT STA *+2 JSB .IOC. NOP SSA JMP *-3 JMP STAT,I SPC 1 FUNCT OCT 40000 SPC 2 * * MKDIR MAKE DIRECT ADDRESS * * LDA ADDRESS (EITHER DIRECT OR INDIRECT) * JSB MKDIR * (RETURN) A=DIRECT ADDRESS * MKDIR NOP RSS LDA 0,I RAL,CLE,SLA,ERA JMP *-2 JMP MKDIR,I SKP * READN READ N NUMBERS ON UNIT 1 IN FREE-FIELD MODE. * STORE REAL NUMBERS IN THE SPECIFIED BUFFER * CHECK THAT ALL VALUES HAVE BEEN SPECIFIED *  UNLESS THE NUMBER OF ELEMENTS IS NEGATIVE. * (BUFFER WAS INITIALLY SET TO ALL 1'S) SPC 1 * CALL SEQ. LDA (NUMBER OF ELEMENTS) * JSB READN * DEF (BUFFER ADDRESS) * RETURN WITH THE FIRST VALUE IN A & B SPC 1 READN NOP CLB STB T5 CLEAR "OMIT INIT. CHECK" FLAG SSA,RSS OMIT INITIALLIZATION CHECK? JMP RED0 NO ISZ T5 YES, SET OMIT - FLAG CMA,INA MAKE NUMBER OF ELEMENTS + RED0 STA T1 STORE NUMBER OF ELEMENTS RED1 LDA READN,I GET BUFFER ADDRESS JSB MKDIR MAKE DIRECT ADDRESS STA T2 INITIALIZE ADDRESS POINTER STA T4 STORE ADDRESS JSB KEYIN READ ASCII TO TEMP BUFFER LDA T1 GET NUMBER OF ELEMENTS CMA,INA MAKE IT NEGATIVE STA T3 SET COUNTER CLA [ UNIT=0 FOR INTERNAL CONVERSION CLB,INB [ INPUT JSB .DIO. [ DECIMAL DEF TEMP [ ASCII BUFFER OCT 0 [ FREE FIELD DEF *+4 [ RETURN LDA T1 [ ELEMENTS LDB T2 [ ADDRESS JSB .RAR. [ PROCESS ARRAY LDA T5 SLA OMIT INITIALLIZATION CHECK? JMP RED3 YES RED2 DLD T2,I GET NUMBERS & CHECK IF ALL 1'S INA,SZA CHECK NUMBER IN A-REG JMP *+3 A OK INB,SZB,RSS CHECK NUMBER IN B-REG JMP RED4 A=B=ALL ONES, UNSPECIFIED VALUE! ISZ T2 A & B OK ISZ T2 BUMP ADDRESS POINTER ISZ T3 DONE? JMP RED2 NO, CHECK 2 MORE RED3 DLD T4,I GET FIRST VALUE READ ISZ READN BUMP RETURN JMP READN,I & RETURN RED4 JSB PWHAT PRINT "WHAT? _" JMP RED1 AND READ AGAIN SKP * P1I PRINT ONE INTEGER FROM THE A * REGISTER IN THE FORMAT SPECIFIED. SPC 1 * CALL SEQ. LDA X * JSB P1I * : DEF FMT SPC 1 P1I NOP STA T2 LDA P1I,I JSB MKDIR ASSURE DIRECT ADR FOR FMT STA *+5 ISZ P1I LDA .2 CLB JSB .DIO. NOP DEF P1I1 LDA T2 JSB .IOI. JSB .DTA. P1I1 JMP P1I,I SPC 2 * P1R PRINT ONE REAL NUMBER FROM A & B * REGISTER IN THE FORMAT SPECIFIED SPC 1 * CALL SEQ. DLD X * JSB P1R * DEF FMT SPC 1 P1R NOP DST T2 LDA P1R,I GET ADDRESS OF FORMAT SPECS JSB MKDIR ASSURE DIRECT ADDRESS STA *+5 INSERT IT IN FORMATTER CALL ISZ P1R BUMP RETURN LDA .2 [ FOR TELEPRINTER CLB [ FOR OUTPUT JSB .DIO. [ FOR DECIMAL NOP [ FORMAT SPEC ADDRESS DEF P1R1 [ RETURN DLD T2 [ GET NUMBER JSB .IOR. [ OUTPUT REAL NUMBER JSB .DTA. [ TERMINATION P1R1 JMP P1R,I RETURN SKP * ERROR PRINT "**ERROR _" SPC 1 ERROR NOP JSB P2N PRINT"CRLF, BELL, **ERROR _" DEF ER OCT 6412 ASC 4,**ERROR OCT 20137 ER JMP ERROR,I SPC 2 * WAIT WAIT FOR N MILLISECONDS, N IS IN THE A-REG SPC 1 * CALL SEQ. LDA (MILLISECONDS) * JSB WAIT SPC 1 WAIT NOP CLF 0 DISABLE INTERRUPT SYSTEM CMA,INA LDB M250 INB,SZB WAIT A MILLISECOND JMP *-1 INA,SZA JMP *-4 WAIT ANOTHER ONE STF 0 ENABLE INTERRUPT SYSTEM JMP WAIT,I SPC 2 * STOP PRINT "CRLF, STOP, RESTART? _" * Y GOES TO 2, N GOES TO TODS EXEC LOAD SPC 1 STOP JSB BLAST CLEAR ALL IO REQUESTS CLA JSB STAT WAIT FOR ALL IO OPS TO END JSB FINI RETURN INST. TO STANDBY ETC. JSB P2N DEF ST1 OCT 6412 CRLF $" ASC 7,STOP: RESTART? OCT 20137 (SPACE, BK ARROW) ST1 JSB REPLY READ REPLY DEF RSTT SLA,RSS RESTART? (Y=131,N=116 RECALL?) JMP ST2 NO, RETURN TO PRN 6 CCA YES, RESTART JMP 2 WITH ALL 1'S IN A-REG. * ST2 JSB EXEC TODS EXECUTIVE CALL TYPE 9 DEF *+3 [RETURN (PSEUDO) DEF RCODE [REQUEST CODE DEF PRN [PROGRAM # RCODE DEC 9 REQUEST CODE: 9 = LOAD & EXECUTE PRN DEC 6 SPC 1 RSTT OCT 177777 INITIALIZED TO ALL ONES SPC 2 BLAST NOP JSB .IOC. CLEAR ALL IO REQUESTS OCT 0 JMP BLAST,I SKP * BASE PAGE CONSTANTS * ORB MSKUP OCT 177 MSKLO OCT 77400 TEMP BSS 36 .2 DEC 2 M250 DEC -250 B100 OCT 100 T1 BSS 2 T2 BSS 2 T3 BSS 2 T4 BSS 2 T5 BSS 2 ORR TE1 EQU TEMP+1 TE2 EQU TEMP+2 TE3 EQU TEMP+3 TE4 EQU TEMP+4 TE5 EQU TEMP+5 TE6 EQU TEMP+6 TE7 EQU TEMP+7 TE8 EQU TEMP+8 TE9 EQU TEMP+9 TE10 EQU TEMP+10 TE11 EQU TEMP+11 TE12 EQU TEMP+12 TE13 EQU TEMP+13 TE14 EQU TEMP+14 TE15 EQU TEMP+15 TE16 EQU TEMP+16 TE17 EQU TEMP+17 TE18 EQU TEMP+18 TE19 EQU TEMP+19 TE20 EQU TEMP+20 TE21 EQU TEMP+21 TE22 EQU TEMP+22 TE23 EQU TEMP+23 TE24 EQU TEMP+24 TE25 EQU TEMP+25 TE26 EQU TEMP+26 TE27 EQU TEMP+27 TE28 EQU TEMP+28 TE29 EQU TEMP+29 TE30 EQU TEMP+30 TE31 EQU TEMP+31 TE32 EQU TEMP+32 TE33 EQU TEMP+33 TE34 EQU TEMP+34 TE35 EQU TEMP+35 SPC 1 END Yy$ < G 22622-80001 1503 SC 0222 BCS HP726/A CARD READER DRIVER             H0102 -ASMB,R,B,L,T NAM D7260 HED 7260A BCS SUBROUTINE DRIVER FOR 202C MODEMS * ****************************************** * * SPECIAL SUBROUTINE DRIVER FOR * * * 7260A IN BCS SYSTEM * * ****************************************** * * * THIS DRIVER IS BCS COMPATIBLE TO DRIVE THE 7260A OVER * 202C MOCEMS. IT USES THE 12587 CARD IN A HALF DUPLEX * MODE, WITHOUT REVERSE CHANNEL. * * * THE FORTRAN CALL FOR A DEMAND COMMAND IS: * * CALL CREAD(IRC,ISTAT,IBUFF,LEN) * * THE FORTRAN CALL FOR OTHER COMMANDS ARE: * * CALL CWRIT(IRC,ISTAT) * * * * IRC IS THE REQUEST CODE AS FOLLOWS: * * DEMAND: 1000XX * NON-IMAGE: 0100XX * RETRANSMIT: 0200XX * REJECT: 0300XX * STOP: 0400XX * BELL: 0500XX * * ( WHERE XX IS THE SELECT CODE OF THE 12587 CARD) * * * ISTAT IS THE ADDRESS OF THE RETURNED STATUS INFORMATION. * * IBUFF IS THE ADDRESS OF THE BUFFER INTO WHICH DATA IS PLACED. * * LEN IS THE ADDRESS OF THE BUFFER LENGTH. * SKP * * THE STATUS WORDS RETURNED ARE: * * * BUSY: 100000 * HOPPER FAILURE: 110000 * MODEM PROBLEM: 120000 * ERRONEOUS DATA: 130000 * CARD READER PROBLEM: 140000 * REJECT STATUS: RETURNED LEFT JUSTIFIED IN ISTAT * SUCCESS: 006000 * FAILURE: 005400 * * * * * * NOTE------- * WHEN ALL BITS OF THE SWITCH REGISTER LIGHTS UP, * DIAL UP REMOTE MODEM, AFTER INITIAL TONE LOWERS * OR DROPS, PRESS DATA BUTTON. BE SURE TO "HANG * UP" PHONE AFTER USE. * ******************************************k******************************** SKP EXT .ENTR ENT CREAD,CWRIT AG1 BSS 4 CREAD NOP JSB .ENTR GET PARAMETERS DEF AG1 LDA CREAD PASS EXIT STA EXIT ********************* ******PASS PARAMETERS ********************* LDA AG1 STA RC LDA AG1+1 STA ISTAT LDA AG1+2 STA RBUFF LDA AG1+3,I STA RLEN CLA STA IBUFF STA LEN JMP START AG2 BSS 2 CWRIT NOP JSB .ENTR GET PARAMETERS DEF AG2 LDA CWRIT PASS EXIT STA EXIT ********************* ******PASS PARAMETERS ********************* LDA AG2 STA RC LDA AG2+1 STA ISTAT CLA STA IBUFF STA LEN START LDB BUSY DRIVER BUSY? SLB,RSS JMP *+4 NO, CONTINUE LDB =B100000 YES STB ISTAT,I SET ISTAT = 100000 JMP EXIT,I RETURN LDA RC,I GET RC SSA REQUEST? JMP RD READ CLB WRITE STB STATE STATE = 0 AND =B070000 MASK WRITE REQUEST CPA =B010000 NON-IMAGE? JMP CASC YES CPA =B020000 RETRANSMIT? JMP CRET YES CPA =B030000 REJECT? JMP CREJ YES CPA =B040000 STOP? JMP CSTP YES CPA =B050000 BELL? JMP CBELL YES LDB =B104000 SET ISTAT TO ILLEGAL REQUEST STB ISTAT,I ISTAT = 104000 JMP WAIT RETURN CASC LDA ASC LOAD ADDRESS OF NON-IMAGE COMMAND STA IBUFF INTO IBUFF CLB,INB B = 1 STB STATE STATE = 1 JMP LENG CRET LDA RETR LOAD ADDRESS OF RETRANSMIT COMMAND STA IBUFF INTO IBUFF JMP LENG CREJ LDA REJ LOAD ADDRESS OF REJECT COMMAND STA IBUFF INTO IBUFF CLB,INB B = 1 STB RLEN RLEN = 1 JMP LENG CSTP LDA STP LOAD ADDRESS OF STOP COMMAND STA IBUFF INTO IBUFF CLB,INB B = 1 STB STATE STATE = 1 JMP LENG CBELL LDA BELL LOAD ADDRESS OF BELL COMMAND STA IBUFF INTO IBUFF CLB,INB B = 1 STB STATE STATE = 1 LENG LDB FOUR LOAD LENGTH OF BUFFER(4) STB LEN INTO LEN SKP JMP CONF ********************** ******COMMANDS ********************** READ DEF CMD0 ADDRESS OF DEMAND COMMAND CMD0 OCT 12,31,21,0 DEMAND COMMAND ASC DEF CMD1 ADDRESS OF NON-IMAGE COMMAND CMD1 OCT 12,24,21,0 NON-IMAGE COMMAND RETR DEF CMD2 ADDRESS OF RETRANSMIT COMMAND CMD2 OCT 12,10,21,0 RETRANSMIT COMMAND REJ DEF CMD3 ADDRESS OF REJECT COMMAND CMD3 OCT 12,13,21,0 REJECT COMMAND STP DEF CMD4 ADDRESS OF STOP COMMAND CMD4 OCT 12,11,21,0 STOP COMMAND BELL DEF CMD5 ADDRESS OF BELL COMMAND CMD5 OCT 12,7,21,0 BELL COMMAND FOUR OCT 4 LENGTH OF BUFFERS(4) ******************** ******TIMER ******************** TIMER NOP ARS DIVIDE BY 2 CMA,INA 2'S COMPLEMENT A LDB =D250 B=250 CMB,INB 2'S COMPLEMENT B INB,SZB COUNT DOWN B JMP *-1 INA,SZA COUNT DOWN A JMP *-5 JMP TIMER,I RETURN SKP ********************* ******CONFIGURE ********************* ORB .ICR DEF I.CR ADDRESS OF CONTINUATOR SECTION ICR JSB .ICR,I I/O BOARD TRAP CELL INSTRUCTION ORR CNFGR NOP LDA RC,I GET REQUEST CODE AND =B77 GET SELECT CODE LDB A LDA LIA+1 MERGE INTO 'LIA' IOR B STA LIA+1 LDA CLC+1 MERGE INTO 'CLC' IOR B STA CLC+1 LDA STC+1 MERGE INTO 'STC' IOR B STA STC+1 LDA OTA+1 MERGE INTO 'OTA' IOR B STA OTA+1 LDA ICR CONkFIGURE I/O BOARD'S TRAP CELL STA B,I WITH 'JSB' INSTRUCTION CLB STB ISTAT,I CLEAR ISTAT JMP CNFGR,I CONTINUE ********************* ******INSTRUCTION SUBROUTINES ********************* LIA NOP LIA 0 JMP LIA,I CLC NOP CLC 0 JMP CLC,I OTA NOP OTA 0 JMP OTA,I STC NOP STC 0,C JMP STC,I SKP ********************* ******WAIT ********************* WAIT LDA BUSY LOAD BUSY INTO A REG SLA BUSY JMP *-2 YES JMP EXIT,I NO, RETURN ********************* ******RESTORE REGISTERS ********************* RREGS NOP LDB EOSVE RESTORE ELB,BRS E CLO AND SLB O STO REGISTERS LDB BSAVE RESTORE B REG LDA ASAVE RESTORE A REG JMP RREGS,I RETURN ********************* RD CLB CLEAR B STB STATE STATE = 0 LDA READ LOAD ADDRESS OF DEMAND COMMAND STA IBUFF INTO IBUFF LDB FOUR LOAD LENGTH OF BUFFER(4) STB LEN INTO LEN CONF JSB CNFGR CONFIGURE INSTRUCTIONS JSB CLC DISABLE INTERRUPTS CLB,INB SET DRIVER TO STB BUSY BUSY LDB =B177777 B = 177777 OTB 01B SWITCH REGISTER = 177777 PRIME LDA ASEND GET SEND CONTROL WORD JSB OTA PRIME BOARD TO BE A SENDER LDA =D100 SET UP 100MS DELAY FOR CLEAR TO SEND SIGNAL JSB TIMER JSB LIA GET BOARD'S STATUS AND =B174000 MASK OFF TOP 5 BITS CPA MASK IS A = 114000? JMP *+4 YES, CONTINUE LDB =B120000 NO, SET ISTAT TO MODEM ERROR STB ISTAT,I ISTAT=120000 JMP PRIME+4 RECYCLE FOR CARRIER CLB OTB 01B CLEAR SWITCH REGISTER STB ISTAT,I  CLEAR ISTAT LDA IBUFF,I SEND CHARACTER JSB OTA TO REMOTE LDB LEN GET LENGTH CMB,INB TWO'S COMPLEMENT LENGTH STB COUNT STORE IN COUNT ISZ COUNT INCREMENT COUNT JMP *+1 CONTINUE LDB IBUFF INCREMENT INB IBUFF STB IBUFF JSB STC ENABLE INTERRUPT JMP WAIT RETURN SKP I.CR NOP JSB CLC DISABLE INTERRUPT STA ASAVE SAVE A REGISTER STB BSAVE SAVE B REGISTER ERA,CLE,ALS SAVE SOC E INA AND O STA EOSVE REGISTER LDA STATE GET STATE SLA READ? JMP OUTPT NO SSA YES, READ INPUT? JMP INPT YES, CONTINUE READ OUTPT LDA IBUFF,I OUTPUT CHARACTER JSB OTA TO REMOTE ISZ COUNT INCREMENT COUNT JMP *+9 CONTINUE LDB STATE GET STATE SLB,RSS READ? JMP STRD YES JSB CLC DISABLE INTERRUPT CLB CLEAR B REGISTER STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN ISZ IBUFF INCREMENT IBUFF JMP *+1 CONTINUE JSB RREGS RESTORE JSB STC ENABLE INTERRUPT JMP I.CR,I RETURN ****** STRD JSB LIA GET STATUS RAL,RAL ROTATE BUSY BIT INTO BIT 15 SSA BUSY? JMP STRD YES, RECYCLE LDB =B125252 LOAD B = 125252 OTB 01B SWITCH REG = 125252 LDA ARECV GET RECEIVE CONTROL WORD JSB OTA PRIME BOARD TO BE A RECEIVER LDB RBUFF LOAD READ BUFFER STB IBUFF INTO IBUFF LDB RLEN LOAD READ LENGTH STB LEN INTO LEN CMB,INB,SZB TWO'S COMPLEMENT LENGTH, 0? z JMP *+6 NO, CONTINUE JSB CLC YES, DISABLE INTERRUPT CLB CLEAR B STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN STB COUNT STORE IN COUNT LDA =D100 SET UP 100MS DELAY FOR CLEAR TO SEND SIGNAL JSB TIMER CLB CLEAR B STB CYCLE CLEAR CYCLE COUNT JSB LIA GET BOARD'S STATUS AND MASK MASK BITS 15,12,&11 CPA MASK IS A = 114000? JMP *+16 YES, CONTINUE LDB =B120000 NO, SET ISTAT TO MODEM ERROR STB ISTAT,I ISTAT = 120000 LDB CYCLE GET CYCLE COUNT INB ADD ONE STB CYCLE STORE CYCLE CPB =D670 2200MS? JMP *+4 YES, ERROR LDA =D5 NO JSB TIMER WAIT 5MS JMP *-13 RECYCLE JSB CLC DISABLE INTERRUPT CLB CLEAR B STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN CLB CLEAR B OTB 01B CLEAR SWITCH REG STB ISTAT,I CLEAR ISTAT STB DATA CLEAR DATA FLAG LDA =B100000 SET A15 STA STATE SET STATE = 100000, ANSWER JMP *+12 INPT JSB LIA GET STATUS AND =B174000 MASK OFF TOP 5 BITS CPA MASK A = 114000? JMP *+8 YES LDB =B120000 NO, LOAD B = 120000 STB ISTAT,I ISTAT = 120000, MODEM ERROR JSB CLC DISABLE INTERRUPT CLB CLEAR B STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN JSB LIA GET DATA AND =B177 MASK CHARACTER LDB DATA GET DATA FLAG SLB,RSS DATA? JMP LF NO CPA =B15 CR? JMP CR YES ALF,ALF LEFT JUSTIFY CHARACTER STA IBUFF,I STORE IN BUdFFER ISZ COUNT INCREMENT COUNT JMP *+6 CONTINUE JSB CLC DISABLE INTERRUPT, COUNT = 0 CLB CLEAR B REG STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN ISZ IBUFF INCREMENT IBUFF JMP *+1 CONTINUE JSB RREGS RESTORE JSB STC ENABLE INTERRUPT JMP I.CR,I RETURN SKP ****** CR CLA CLEAR A STA IBUFF,I CLEAR BUFFER LOCATION ISZ COUNT INCREMENT COUNTER JMP *+6 CONTINUE JSB CLC COUNT = 0, DISABLE INTERRUPT CLB CLEAR B STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN ISZ IBUFF INCREMENT BUFFER JMP CR CONTINUE CLEARING BUFFER JMP CR CONTINUE CLEARING BUFFER ******* LF CPA =B12 LF? JMP *+2 YES JMP STATS NO, CHECK FOR STATUS CONDITION CLB,INB B = 1 STB DATA SET DATA FLAG JSB RREGS RESTORE JSB STC ENABLE INTERRUPT JMP I.CR,I RETURN ****** STATS CPA =B15 CR? JMP *+5 YES STA TBUFF STORE IN TBUFF JSB RREGS RESTORE JSB STC ENABLE INTERRUPT JMP I.CR,I RETURN LDA TBUFF GET TBUFF CPA =B7 HOPPER FAILURE? JMP HOP YES CPA =B11 PICK FAIL? JMP CRFAI YES CPA =B37 NOT READY? JMP CRFAI YES CPA =B13 REJECT FAILURE JMP *+10 CONTINUE CPA =B14 REJECT SUCCESSFUL? JMP *+8 CONTINUE LDB =B130000 ERRONEOUS DATA STB ISTAT,I ISTAT = 130000 JSB CLC DISABLE INTERRUPT CLB STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN ALF,ALF LEFT JUSTIFY STATUS STA ISTAT,I STORE IN ISTAT b 0.*THE REJECT STATUS ISZ COUNT INCREMENT COUNTER JMP *+6 CONTINUE JSB CLC COUNT = 0, DISABLE INTERRUPT CLB STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN ISZ IBUFF INCREMENT IBUFF JMP CR CLEAR REST OF BUFFER JMP CR CLEAR REST OF BUFFER ***** HOP LDB =B110000 SET ISTAT TO HOPPER FAILURE STB ISTAT,I ISTAT = 110000 JMP *+3 CRFAI LDB =B140000 SET ISTAT TO CARD READER FAILURE STB ISTAT,I ISTAT = 140000 JSB CLC DISABLE INTERRUPT CLB STB BUSY CLEAR BUSY FLAG JSB RREGS RESTORE JMP I.CR,I RETURN SKP *********************** ******CONSTANTS *********************** A EQU 0 B EQU 1 RC OCT 0 ADDRESS OF REQUEST CODE ISTAT OCT 0 ADDRESS OF STATUS LOCATION IBUFF OCT 0 ADDRESS OF BUFFER LEN OCT 0 LENGTH OF BUFFER RBUFF OCT 0 ADDRESS OF READ BUFFER RLEN OCT 0 LENGTH OF READ BUFFER BUSY OCT 0 BUSY FLAG, B15=1=BUSY STATE OCT 0 1=NO ANS,0=REQUIRES ANS,100000= ANSWER MASK OCT 114000 MASK FOR CC AND CF ASEND OCT 160410 TRANSMIT CONTROL WORD ARECV OCT 140410 RECEIVE CONTROL WORD COUNT OCT 0 TWO'S COMPLEMENT OF CHARACTER COUNT ASAVE BSS 1 A REGISTER STORAGE BSAVE BSS 1 B REGISTER STORAGE EOSVE BSS 1 E AND O REGISTERS STORAGE EXIT BSS 1 RETURN ADDRESS DATA OCT 0 DATA FLAG, 1=DATA TBUFF OCT 0 TEMPORARY STATUS BUFFER CYCLE OCT 0 CYCLE COUNT SKP ********************** ********LITERALS ********************** END ϛ0FTN4,L,T,M PROGRAM CR DIMENSION IBUFF(80),ICMD(1) ISTAT=0 IASCI=10014B IRET=20014B IREJ=30014B IOFF=40014B IREAD=100014B IBEL=50014B WRITE(1,5) 5 FORMAT(" LENGTH OF BUFFER? _") READ(1,*) LEN WRITE(1,6) LEN 6 FORMAT(" LENGTH OF BUFFER IS " I4) 1 WRITE(1,10) 10 FORMAT(" INPUT 'AS','RT','RJ','OF','PK','RP','BE', OR '/E'" 1 //" ?_") READ(1,20)ICMD 20 FORMAT(A2) WRITE(1,90) ICMD 90 FORMAT(1X,A2," COMMAND") IF(ICMD.EQ.2H/E)GO TO 30 IF(ICMD.EQ.2HAS)GO TO 40 IF(ICMD.EQ.2HRT)GO TO 50 IF(ICMD.EQ.2HRJ)GO TO 60 IF(ICMD.EQ.2HOF)GO TO 70 IF(ICMD.EQ.2HPK)GO TO 80 IF(ICMD.EQ.2HRP)GO TO 120 IF(ICMD.EQ.2HBE)GO TO 150 GO TO 1 40 CALL CWRIT(IASCI,ISTAT) 110 WRITE(1,100)IBUFF,ISTAT 100 FORMAT(" IBUFF: " 80A1/ " ISTAT: " K7//) GO TO 1 50 CALL CWRIT(IRET,ISTAT) GO TO 110 60 CALL CWRIT(IREJ,ISTAT) GO TO 110 70 CALL CWRIT(IOFF,ISTAT) GO TO 110 80 CALL CREAD(IREAD,ISTAT,IBUFF,LEN) GO TO 110 120 WRITE(1,121) 121 FORMAT(1X,"HOW MANY CARDS? _") READ(1,*)IRP DO 130 I=1,IRP CALL CREAD(IREAD,ISTAT,IBUFF,LEN) WRITE(6,100)IBUFF,ISTAT 130 CONTINUE GO TO 1 150 CALL CWRIT(IBEL,ISTAT) GO TO 110 30 END END$  >M 22624-80001 A SC 0122 MICROCODED FAST FOURIER TRANSFORM W/AUTO RESCALING            H0101 $ORIGIN=1000 * FAST FOURIER TRANSFORM -- MICRO CODE * CALLING SEQUENCE: CALL MFFT(LEN,IMAG,IREAL,TABLE) * SHIFT SUBROUTINE FOR RESCALING ON OVERFLOW. SHFT T IOR A RSS NEG SFLG A LWF A R1 IOR RSS FLG SKIP IF BIT LOST IS 0 A INC A ELSE ROUND RESULT. RSB JMP Q BIN BINVERT ENTRY POINT. * SAVE P REGISTER IN CORE LOCATION 0. IOR M CW UNC FFT ENTRY POINT. IOR P IOR T * RETRIEVE ARRAY LENGTH. P IOR B JSB GETAD GET LENGTH ADDRESS. S1 IOR M RW READ LENGTH PARAMETER T IOR A SAVE LENGTH IN A. A IOR F R1 SAVE LEN/2 IN F. * RETRIEVE AND SAVE NECESSARY ADDRESSES FOR NEW ITERATION. ST1 CR IOR Q 300 SET UP Q AS A CORE CL IOR S1 177 POINTER AT 77700. Q S1 IOR Q JSB GETAD GET IMAG. ARRAY ADDR. JSB SAV AND SAVE IN CORE. JSB GETAD GET REAL ARRAY ADDR. JSB SAV AND SAVE IN CORE. JSB GETAD GET TABLE ADDRESS S1 IOR S3 AND SAVE IN S3. * INITIALIZE FOR NEW SET OF KERNALS. NKERN F IOR S1 S1 SUB P SET KERNAL COUNTER. *** KERNAL OPERATION. *** * INITIAL PRODUCTS. BKERN S3 IOR M RW READ SINE FUNCTION T IOR S4 AND SAVE IN S4 S4 IOR A AND IN A. Q RRS IOR M RW READ BX ADDRESS. T IOR S1 S1 IOR M RW GET VALUE OF BX. T SFLG S2 AND SAVE IN S2. JSB MULT BX * THETA X S3 INC S1 S1 IOR M RW READ COSINE FUNCTION T IOR S4 AND SAVE IN S4 S4 IOR A AND IN A. JSB MULT BX * THETA Y. Q CR ADD S1 7 S1 CFLG M RW READ BY ADDRESS. T IOR S1 S1 IOR M RW GET VALUE OF BY T SUB S2 AND NEGATE IN S2. S4 IOR A JSB MULT -BY * THETA Y. * CALCULATE REAL TERMS -- NEW AX AND BX. Q CR ADD Q 2 JSB CALC 2*(BX*THETA X-BY*THETA Y). Q CR ADD S1 3 JSB CLC NEW AX AND BX CALCLN. IOR RSS FLG SKIP IF NO OVERFLOW JMP OV ELSE RESCALE TERMS. * CALCULATE IMAGINARY TERMS -- NEW AY AND BY. S3 IOR M RW READ SINE FUNCTION T SUB S4 AND NEGATE IN S4 S4 IOR A AND IN A. JSB MULT BY * THETA X. Q CR SUB Q 2 JSB CALC 2*(BX*THETA Y+BY*THETA X) Q CR ADD S1 10 JSB CLC NEW AY AND BY CALCLN. IOR RSS FLG SKIP IF NO OVERFLOW JMP OV ELSE RESCALE TERMS. Q CR ADD S4 7 * STORE NEW A AND B TERMS AND UPDATE POINTERS FOR NEXT ELEMENT. JSB UP1 JSB UP S4 IOR A A CR SUB S4 4 Q CR ADD Q 3 JSB UP2 Q DEC Q JSB UP CR IOR Q 272 RESTORE CORE POINTER CL IOR S1 177 TO 77672. Q S1 IOR Q P INC P TBZ SKIP IF KERNAL CNTR 0 JMP BKERN *** END OF KERNAL OPERATION. *** * CHECK FOR END OF ITERATION. Q CR ADD A 5 A RRS IOR M R=W READ ENDIT ADDRESS. T IOR B AND SAVE IN B. A CR SUB A 2 A RRS IOR M RW READ BY ADDRESS. T IOR S1 AND SAVE IN S1. B S1 SUB RSS TBZ SKIP IF NOT END, ELSE JMP NEWIT START NEW ITERATION. * UPDATE DATA POINTERS FOR NEXT KERNAL. A INC B JSB EL Q RRS IOR M RW T IOR S1 Q INC B Q IOR A JSB EL S3 INC S1 INCREMENT TABLE ADDR. S1 INC S3 CNTR BY 2. JMP NKERN START NEW KERNAL. * TEST FOR END OF TRANSFORM NEWIT F IOR F R1 TBZ JMP STRT2 * END OF TRANSFORM -- CLEANUP AND RETURN. ***** OUR FENCE REGISTER IS SET AT 10000. ***** CHANGE THE NEXT STATEMENT TO SUIT YOUR OWN OPERATING SYSTEM. CL IOR F 20 RESTORE F REGISTER IOR M RW T IOR A EOP A CR ADD P 5 RESTORE P REGISTER. * INITIALIZE INDEXES FOR NEW ITERATION. STRT2 IOR M RW T IOR B JSB GETAD S1 IOR M RW T IOR A SAVE LEN IN A. JMP ST1 * * SUBROUTINES USED BY MFFT. * RETRIEVES PARAMETER ADDRESSES. GETAD B INC B B RRS IOR M RW GETAX T IOR S1 NEG RSB S1 IOR M RW JMP GETAX * MULTIPLY ALGORITHM (S4*S2, WHERE S4=A). MULT CLO B CNTR RPT B S2 MPY B R1 CTRI S4 IOR RSS NEG B S2 SUB B S2 IOR RSS NEG B S4 SUB B IOR FLG RSB * STORES RESULTS OF MULTIPLICATION IN CORE. Q DEC Q %H Q RRS IOR M CW UNC IOR B RRS IOR T Q DEC Q Q RRS IOR M CW UNC IOR A RRS IOR T RSB * SAVES DATA POINTERS IN CORE. SAV Q DEC Q A S1 ADD S3 Q RRS IOR M CW UNC IOR S3 IOR T Q DEC Q Q RRS IOR M CW UNC IOR S1 IOR T F S1 ADD S2 Q DEC Q Q RRS IOR M CW UNC IOR S2 IOR T RSB * INTERMEDIATE CALCULATION STEP. CALC Q RRS CLO M RW PERFORMS A T ADDO A RSS COUT INTEGER B INC B DOUBLE Q INC S1 PRECISION S1 IOR M RW ADDITION. B T ADD B Q IOR S1 F IOR S4 B IOR F A IOR Q F ARS F L1 MPY BY 2. F IOR B Q IOR A S1 IOR Q S4 IOR F A IOR RSS NEG B INC B RSB * CALCULATES AND STORES NEW A AND B TERMS. CLC S1 SFLG M RW T IOR S1 S1 CLO M RW NEW A TERM = T IOR S4 RESULT FROM CALC + B S4 ADDO S1 OLD A TERM. IOR RSS OVF RSB Q RRS IOR M CW UNC IOR S1 IOR T * STORE NEW BX OR BY S1 SUB A NEW B TERM = A S4 ADDO A 2 * OLD A TERM - A S4 ADDO S1 RSS OVF NEW A TERM. RSB Q INC A RSS OVF RSB A RRS IOR M CW UNC IOR S1 CFLG T RSB * RE-SCALE ON OVERFLOW. * SET UP ADDRESSES. [ OV CLO M RW RETRIEVE P REG. ADDR. T IOR B JSB GETAD GET LENGTH ADDRESS. S1 IOR M RW READ LENGTH PARAMETER T SUB S4 AND NEGATE IN S4. JSB GETAD GET IMAG. ARRAY ADDR. S1 IOR S2 AND SAVE IN S2. JSB GETAD GET REAL ARRAY ADDR. S4 IOR B -LEN IN B REGISTER. OVLP S1 CFLG M RW READ REAL TERM JSB SHFT AND SHIFT RIGHT. S1 IOR M CW UNC IOR A RRS IOR T RESTORE REAL TERM. S2 CFLG M RW READ IMAG. TERM. JSB SHFT AND SHIFT RIGHT. S2 IOR M CW UNC IOR A RRS IOR T RESTORE IMAG. TERM. * UPDATE COUNTERS. S1 INC A A IOR S1 S2 INC A A IOR S2 B INC B TBZ JMP OVLP CR IOR Q 272 CL IOR S1 177 Q S1 IOR Q JMP BKERN * UPDATE ARRAYS WITH NEW TERMS AND POINTERS FOR NEXT ELEMENT. UP S4 INC S1 S1 IOR S4 UP2 Q RRS IOR M RW T IOR S1 UP1 S4 IOR M RW T IOR S2 S2 IOR M CW UNC IOR S1 IOR T S2 INC S1 S4 IOR M CW UNC IOR S1 IOR T RSB * UPDATE DATA POINTERS FOR NEW KERNAL. EL B RRS IOR M CW UNC IOR S1 IOR T F S1 ADD S2 A RRS IOR M CW UNC IOR S2 IOR T RSB * MICRO BINVERSION ROUTINE * 7 FEB 73 R. A. KONING * * CALLING SEQUENCE * LDA - THE NUMBER TO BZE BINVERTED * LDB - NUMBER OF BITS TO REVERSE * MACRO OCT 105140 * THE ORIGINAL NUMBER IS RETAINED IN THE A REGISTER. * THE BINVERTED NUMBER IS RETURNED IN THE B REGISTER. BIN A IOR S4 LOOP Q IOR Q L1 LEFT SHIFT BINV. NO. A IOR RSS ODD IF BIT 0 SET IN A, Q INC Q SET BIT 0 OF BINV. NO. A IOR A R1 RIGHT SHIFT THE NO. B DEC B TBZ JMP LOOP S4 IOR A EOP RESTORE A REGISTER Q IOR B STORE BINV. NO. IN B. $END ASMB,L NAM BIN,7 ENT BIN EXT .ENTR PARS BSS 3 BIN NOP JSB .ENTR DEF PARS JMP START T1 BSS 1 T2 BSS 1 T3 BSS 1 T4 BSS 1 T5 BSS 1 NITS BSS 1 START LDA PARS,I CMA,INA STA T1 CCA LDB PARS,I LOOP ADA =D1 BRS SZB JMP LOOP STA NITS CLA SBIN STA T2 LDB NITS MACRO OCT 105140 CMA ADA 1 SSA JMP EBIN1 STB T3 LDA PARS+1 ADA 1 STA T4 LDA PARS+1 ADA T2 STA T5 LDA T4,I LDB T5,I STB T4,I STA T5,I LDA PARS+2 ADA T2 STA T4 LDA PARS+2 ADA T3 STA T5 LDA T4,I LDB T5,I STB T4,I STA T5,I EBIN1 LDA T2 INA ISZ T1 JMP SBIN JMP BIN,I END BIN END$ ASMB,L NAM MFFT,7 ENT MFFT MFFT NOP LDA MFFT ADA =D-1 LDB =B105160 STB 0,I JMP 0,I END MFFT END$ FTN4,L PROGRAM TEST C TEST PROGRAM TO TAKE FFT OF A SQUARE WAVE. REAL POWER(64) INTEGER IREAL(64),IMAG(64),TABLE(128) C GENERATE THETA TABLE NBITS=6 J=1 DO 1 I=1,64 K=I-1 CALL BINV(NBITS,K) W=(FLOAT(K)*3.14159265)/64. TABLE(L*($J)=COS(W)*32767. J=J+1 TABLE(J)=-SIN(W)*32767. 1 J=J+1 C GENERATE SQUARE WAVE IN REAL ARRAY, AND ZERO IMAG. ARRAY. LEN=64 DO 2 I=1,20 IREAL(I)=32767 2 IMAG(I)=0 DO 3 I=21,64 IREAL(I)=0 3 IMAG(I)=0 CALL MFFT(LEN,IMAG,IREAL,TABLE) CALL BIN(LEN,IMAG,IREAL) C COMPUTE POWER. DO 4 I=1,64 4 POWER(I)=FLOAT(IMAG(I))**2 + FLOAT(IREAL(I))**2 WRITE(6,101)(IMAG(I),I=1,64) 101 FORMAT(1H1"*** SQUARE WAVE ***"//1X"IMAGINARY ARRAY"// + 8(1X,8I9/)//) WRITE(6,102)(IREAL(I),I=1,64) 102 FORMAT(//1X"REAL ARRAY"//8(1X,8I9/)//) WRITE(6,103)(POWER(I),I=1,64) 103 FORMAT(//1X"POWER ARRAY"//8(1X,8F9.0/)) C TEST TO TAKE FFT OF A SINE WAVE. C GENERATE SINE WAVE IN REAL ARRAY, AND ZERO IMAG. ARRAY. W=9.*3.14159265/64. DO 5 I=1,64 IREAL(I)=SIN(FLOAT(I)*W)*32767. 5 IMAG(I)=0 CALL MFFT(LEN,IMAG,IREAL,TABLE) CALL BIN(LEN,IMAG,IREAL) C COMPUTE POWER. DO 6 I=1,64 6 POWER(I)=FLOAT(IMAG(I))**2 + FLOAT(IREAL(I))**2 WRITE(6,104)(IMAG(I),I=1,64) 104 FORMAT(1H1"*** SINE WAVE ***"//1X"IMAGINARY ARRAY"// + 8(1X,8I9/)//) WRITE(6,102)(IREAL(I),I=1,64) WRITE(6,103)(POWER(I),I=1,64) STOP END END$ ASMB,L NAM BINV,7 ENT BINV,MACRO EXT .ENTR PARS BSS 2 BINV NOP *PROGRAM TO PASS PARAMETERS TO BINVERSION ROUTINE. JSB .ENTR DEF PARS LDA PARS+1,I LDB PARS,I MACRO OCT 105140 STB PARS+1,I JMP BINV,I END BINV END$ v* ? K 22625-60001 A RC 0122 IBM 1130 FORTRAN TO HP 2100 FORTRAN TRANSLATOR            H0101  KINVST c@3INVST EXEC CHUD .ENTR.`[P &Ѐ|lH-=@qD|Zl0 cCHUD Mc@CHUD  9EXEC .ENTR;`b&PhqL6`o H3`2hHq Ph @#L6H3|/l0G/l1Gl2G`Kj3$l3G`HH   H  BlXdYX1`BXIS10 DISC c/@ 6FOPEN?DIO U?IIO ?RIO ?XIO ?IAY ?DTA ?RAY ?XAY ?ENTRDEFIN@?.ENTR.MOUV#FREA#FWRIINVSTERR0 EXEC ;`cl>d?,d:,\T,,H1, P d |;%:`c#&d,PlH-l; d  dP \Tt:<=t=?<``>F 11Pt?l>H|Tt:ttˬ@ t h-|tdUZtl>\T,,;`bΚfPT,jH1,a  t tP | d=4Pt,À6tdU@-Pd ,dh-<`\|,dh.,t|tд<dt<t<dt<`]wCZ<tдZ<dt<.t<,l,<`^;l,l,lڶ,l,l,˲d1Z6l ,l\,dlZ@,l<`]kZ@,dDtѶ,d,dZD,dDtdͶtdt<`^l|dtZtdDtҠ l@, |lLtdtcP `t PtJ, `tx ,t  ,t ;`\B$detbd`tt, 6eL`|\`#Z<##l5tf#,I<;`[oC@<cdTa,H<,=dtbdtЬclPtftg#,h;`\P[<<,aڬcdTa,f<߶,Zde|,t߀etbdt;`\:wdc dߠZDށN|DݶtdDbtdetbd`tt,Yd`T,l`qT;`aN,tdt|ڄfx$bެdݢ\,T٬,g xb޶d`T<`aZ`qTdPDNDl@t dbPeD tج`N<ޢT$ `Fv"նt<ݬ<`dkh`$_ d@*t,d݀ށet|ylx |< D N|ޠ;``Z @? OPERATION. SPC 1 SIX6 NOP EQR ASC 3,EQR M1774 OCT 177400 ASTER OCT 025000 LP1 OCT 021006 LP2 OCT 040006 TTY1 OCT 021002 TTY2 OCT 040002 SPC 1 LPRIN LDA LP1 CONFIG. IOC CALL LDB LP2 FOR LINE PRINTER CONF STA LOUT0 STB LOUT4 JMP LOUT6 TTY LDA TTY1 CONFIG. IOC CALL LDB TTY2 FOR TTY JMP CONF SKP * SUBROUTINE: -LOUTL- SPC 1 * CALLING SEQUENCE: (A) = ADDRESS OF BUFFER * (B) = NUMBER OF CHARACTERS SPC 1 * (P) JSB LOUTL * (P+1) -RETURN-, REGISTERS MEANINGLESS, * RETURN/LINE-FEED OUTPUT, * MESSAGE PRINTED. SPC 1 * PURPOSE: THIS ROUTINE CALLS FOR A SPACE * TO BE OUTPUT BEFORE THE MESSAGE OR * LINE IS OUTPUT. IT USES -LOUT- TO * PERFORM THE OUTPUT. SPC 1 LOUTL NOP STA LT1 SAVE (A) STB LT2 AND (B). LDA LINF OUTPUT CLB,INB LINE-FEED AND JSB LOUT R/LF FROM DRIVER. LDA LT1 RESTORE CALLER'S LDB LT2 A AND B. JSB LOUT PRINT MESSAGE. JMP LOUTL,I -RETURN- SPC 1 LINF DEF BLANK DEFINES ADDRESS OF : LT1 NOP LT2 NOP SKP * SUBROUTINE - (ENTRY POINT LIST) SPC 1 * CALLING SEQUENCE: * (A): =0, LIST UNDEFINED EXTERNAL SYMBOLS. * =1, LIST ENTRY POINT SYMBOLS AND * ABSOLUTE ADDRESSES FROM LST. SPC 1 * (P) JSB EPL * (P+1) (RETURN) A AND B DESTROYED SPC 1 * LIST UNDEFINED EXTERNAL SYMBOLS: EACH LST ENTR * IS EXAMINED FOR A ZERO ENTRY POINT ADDRESS. * EACH ENTRY WITH A ZERO ENT ADDRESS (WORD 4) * IS LISTED ON THE TTY OUT DEVICE. THE * LIST FORMAT IS: SPC 1 * *UNDEF * SYMB1 * SYMB2 * ----- * ETC. SPC 1 * LIST ALL ENTRY POINT SYMBOLS AND ADDRESSES: * EACH ENTRY IN THE LST IS OUTPUT TO THE * COMMENT OUT DEVICE IN THE FORMAT: SPC 1 * SYMB1 NNNNN (NNNNN= ABSOLUTE ADDRESS) * SYMB2 NNNNN * ----- * SYMBN NNNNN SPC 1 * AT THE END OF THE PRINTOUT, THE BOUNDS OF THE * COMMON AREA ARE LISTED IF AN AREA WAS * ALLOCATED: SPC 1 * *COM * LLLLL UUUUU SPC 1 * (LLLLL = COMMON ORIGIN, UUUUU = LWA COMMON) SPC 1 * THE LISTING OF THE BOUNDS OF THE LINKAGE * AREA IN BASE PAGE COMPLETES THE OUTPUT. * THE FORMAT IS: SPC 1 * *LINK * LLLLL UUUUU SPC 1 * (LLLLL= STARTING ADDRESS OF LINK AREA, * UUUUU= ENDING ADDRESS OF LINK AREA) SPC 1 * EPL USES THE SUBROUTINE -CONV- TO CONVERT THE * ABSOLUTE ADDRESSES TO ASCII FORMAT. SPC 2 EPL NOP ENTRY/EXIT POINT STA NBUF SAVE ENTRY PARAMETER. JSB LSTI -INITIALIZE LST PROCESSOR- EPL1 JSB LSTP SET LST ENTRY ADDRESSES JMP EPL4 END OF LST -- SPC 1 * PROCESS LST ENTRY SPC 1 LDA BLANK MAKE FIRST WORD STA LBUF OF LBUF TWO BLANKS LDA LST1,I MOVE FIRST 3 WORDS OF STA LBUF+1 LST ENTRY ( SYMBL ) LDA LST2,I TO STA LBUF+2 LBUF. LDA LST3,I MAKE 6TH CHARACTER IOR M.40 A BLANK STA LBUF+3 LDB LST4,I (B) = ENT. ADDRESS LDA NBUF (A) = ENTRY PARAMETER SZA IF ENT LIST REQUESTED JMP EPL2 GO TO CONVERT ADDRESS IN B. SZB IF ENT ADDR NOT = ZERO, THEN JMP EPL1 EXT DEFINED,GO CHECK NEXT ENTRY. LDB M.07 SET TO OUTPUT UNDEFINED LDA LBUFA EXT (6 CHAR. OUTPUT) JSB LOUTL WRITE SYMBOL, JMP EPL1 CONTINUE SCAN SPC 1 * ENTRY POINT LIST SPC 1 EPL2 LDA LBUFA SET -CONV- TO CONVERT ENT. ADA C.04 ADDRESS TO ASCII AND JSB CONV STORE IN LBUF+4 - LBUF+6 LDB C.14 YES, LOAD RECORD LENGTH OF 14. LDA LBUFA OUTPUT BUFFER JSB LOUT STARTING AT LBUF. JMP EPL1 PROCESS NEXT ENTRY IN LST. SPC 1 * COMMON ALLOCATION BOUNDS LIST SPC 1 EPL4 LDA NBUF IF LIST OF UNDEFINED EXTS SZA,RSS REQUESTED, THEN EXIT. JMP EPL,I LDB COMOR IF NO COMMON SZB,RSS ALLOCATED, THEN JMP EPL5 EXIT. SPC 1 * LIST COMMON BOUNDS SPC 1 LDA LBUFA CONVERT FWA (ORIGIN) JSB CONV OF COMMON. LDB ENDL CONVERT LWA JSB CONV OF COMMON. LDA CMMSG OUTPUT LDB C.05 MESSAGE JSB LOUTL *COM. LDA LBUFA OUTPUT LDB C.12 COMMON JSB LOUT BOUNDS. SPC 1 * BASE PAGE LINKAGE BOUNDS LIST SPC 1 EPL5 LDB LWABP CONVERT CPB M1777 EXIT IF NO LINK AREA JMP EPL,I ESTABLISHED IN LOADING. INB FWA OF LDA LBUFA PROGRAM JSB CONV LINK AREA. LDB M1777 CONVERT LWA OF JSB CONV LINK AREA. LDA LINKM OUTPUT LDB M.07 MESSAGE JSB LOUTL -*LINK-. LDA LBUFA OUTPUT LDB C.12 LINK AREA JSB LOUT BOUNDS. JMP EPL,I EXIT --. SPC 2 * CONSTANT AND STORAGE SECTION FOR -EPL- . SPC 1 MAPF OCT 000000 FLAG TO DESIGNATE WHETHER A * NAME AND BOUNDS LIST OR EPL LIST IS * TO BE GENERATED : SPC 1 * BIT 15 : =0, YES * =1, NO SPC 1 BLANK ASC 1, C.12 DEC 12 C.14 DEC 14 CM.3 DEC -3 M.60 OCT 000060 CMMSG DEF *+1 ASC 3, *COMMON LINKM DEF *+1 ASC 4, *LINKS SKP * SUBROUTINE: CONV (CONVERT 15-BIT BINARY NUMBER * TO 6-CHARACTER (LEADING BLANK) * ASCII FORM OF THE OCTAL * REPRESENTATION.) SPC 1 * CALLING SEQUENCE: SPC 1 * (A)-ADDRESS OF 3-WORD AREA FOR * STORING ASCII/OCTAL CHARACTERS * (B)-BINARY VALUE FOR CONVERSION SPC 1 * (P) JSB CONV * (P+1) (RETURN)-(A)=NEXT ADDRESS OF STORAGE * AREA,(B)-DESTROYED. SPC 2 CONV NOP ENTRY/EXIT POINT STA NBUF+3 SAVE STORAGE AREA ADDRESS RBL POSITION FIRST DIGIT TO B(15-13). LDA CM.3 SET CONVERT COUNTER STA NBUF+4 = -3. LDA M.40 MAKE FIRST CHARACTER A SPACE. CONV1 ALF,ALF ROTATE CHAR. TO UPPER POSITION STA NBUF+5 AND SAVE. BLF,RBR POSITION NEXT DIGIT TO B(02-00), LDA B PUT IN B AND AND M.07 ISOLATE DIGIT. IOR M.60 MAKE AN ASCII CHAR. (60 - 67). IOR NBUF+5 PACK IN UPPER CHARACTER STA NBUF+3,I AND STORE IN STORAGE AREA. ISZ NBUF+3 ADD 1 TO STORAGE AREA ADDRESS. BLF,RBR ROTATE NEXT DIGIT TO LOW B, LDA B ISOLATE CHAR AND M.07 IN LOW A, IOR M.60 MAKE AN ASCII CHAR. ISZ NBUF+4 INDEX CONVERT COUNTER JMP CONV1 NOT FINISHED. LDA NBUF+3 FINISHED, SET (A)= NEXT STORAGE JMP CONV,I AREA WORD ADDRESS AND EXIT. SKP * END CONDITION SECTION SPC 1 * THIS SECTION RECEIVES CONTROL AFTER AN END- * OF-TAPE CONDITION IS DETECTED BY THE INPUT * SECTION *LDRIN*. THE MESSAGE -LOAD- IS OUTPUT * TO THE COMMENT OUT DEVICE FOLLOWED BY A * COMPUTER HALT. THE SWITCH REGISTER IS TO * BE SET TO ONE OF THE FOLLOWING VALUES BY * THE OPERATOR BEFORE RESTART: SPC 1 * SR(02-00) MEANING * --------- ---------------------------- * 000 LOAD NEXT PROGRAM FROM INPUT * 001 END OF LOADING * 010 TERMINATE LOADING * 100 LOAD FROM PROGRAM LIBRARY YSPC 1 * SWITCH 15 IS ALSO USED TO SET THE MAP FLAG * FOR THE NEXT LOADING SEQUENCE: SPC 1 * BIT 15 = 0, PRODUCE LIST, = 1, DELETE SPC 1 * THE ACTION RESULTING FROM EACH SR DESIG- * NATION IS DETAILED IN THE COMMENTS BELOW. SPC 1 * PROGRAM EXECUTION IS INITIATED WITHIN THIS * SECTION STARTING AT THE LABEL *ENDC4*. SPC 1 * ** NOTE: THIS SECTION MUST BE THE LAST SECTION * IN THE LOADER BECAUSE OF DETERMINING * COMMON LWA AND FOR RELEASING THE AREA * OF MEMORY OCCUPIED BY THE LOADER. SPC 2 LDMSG DEF *+1 ASC 3,*LOAD RUNM DEF *+1 ASC 2,*RUN LSTM DEF *+1 ASC 2,*LST UNMSG DEF *+1 ASC 4, *UNDEF SPC 1 ENDC LDA RIC IGNORE END-OF-TAPE CONDITION SZA,RSS OCCURRING BEFORE THE FIRST JMP LDRIN RECORD HAS BEEN INPUT. LDA LIBFL IF END-OF-TAPE HAS OCCURRED SSA IN LOADING FROM LIBRARY, GO JMP REW.L TO LIST UNDEFINED EXTS. ENDC1 LDA LDMSG WRITE MESSAGE LDB C.05 -*LOAD- ON TTY JSB LOUTL OUT DEVICE. SPC 1 * FOLLOWING HALT IS FOR SWITCH REGISTER * SETTING BY OPERATOR. SPC 1 HLT 01B SPC 1 * EXAMINE SR CONTENTS UPON RESTART SPC 1 CLB CLEAR RIC TO PROVIDE FOR IGNORING STB RIC EOT BEFORE FIRST RECORD INPUT. STB LIBFL CLEAR LIB. LOAD FLAG LDA IN5 -INSURE STA IN.1 THAT LDA LBUFA STA ADDR. LDA IN6 INPUT CALLS WILL STA IN.2 REFERENCE LDA IN7 STANDARD INPUT STA IN.4 UNIT. LIA 01B GET SWITCH REGISTER STA MAPF SET MAPPING FLAG (BIT 15). AND M.07 ISOLATE SWITCHES 02-00 . SZA,RSS IF SR = 0, JMP LDRIN GO TO LOAD NEXT PROGRAM SLA IF SR = 1, GO TO CHECK JMP ENDC2 FOR UNDEFINED EXTS. LDB UEXFL LOPAD THE UNDEF. EXTS. FLAG. SZB,RSS ARE ANY EXT. SYMBOLS UNDEFINED? ARS,SLA IF SR = 2, TERMINATE ALL JMP ENDC3 LOADING SPC 1 * ASSUME SR = 4 AND SET TO LOAD FROM PROGRAM LIBRARY SPC 1 CCA SET LIBRARY LOAD FLAG STA LIBFL = -1. LDA LIB1 SET WORD 2 OF STA IN.1 EACH IOC CALL IN LDA LIB2 INPUT SECTION TO REFERENCE STA IN.2 PROGRAM LIBRARY IN SQT. LDA LIB3 STA IN.4 JSB .IOC. REWIND LIB. UNIT IF OCT 031403 MAG. TAPE. JMP ENDR6 - IGNORE REJECT IF NOT MT. LDA MT.RC LOAD THE MT BUFFER ADDRESS. STA ADDR. STORE THE INPUT BUFFER ADDRESS. SEOF JSB .IOC. SKIP FILE FORWARD TO POSITION OCT 031703 JMP SEOF OF FILE 2. MTBUS JSB .IOC. DELAY WITH OCT 040003 STATUS UNTIL RAL,SLA,ALF UNIT NOT BUSY JMP MTBUS ALF,SLA WAS AN "EOF" RECORD READ? JMP ENDR6 YES, GO CHECK UNDEFINED EXTS.. JMP SEOF CHECK NEXT RECORD. SPC 2 LIB1 OCT 010303 LIB2 OCT 040003 LIB3 OCT 031203 IN5 OCT 010305 IN6 OCT 040005 IN7 OCT 031205 SPC 1 * END OF LOADING ( SR = 1) SPC 1 ENDC2 LDA UEXFL IF NO UNDEFINED EXTS SZA THEN GO OUTPUT JMP ENDC3 ENTRY POINT LIST. LDA UNMSG LIST ALL LDB M.07 UNDEFINED JSB LOUTL EXTS IN CLA LST JSB EPL JMP ENDC1 REPEAT HALT AND SR SETTING. SPC 1 ENDPR NOP ENTRY POINT. LDA LSTM LOAD OUTPUT BUFFER ADDRESS. LDB C.04 LOAD: B=4. JSB LOUTL GO PRINT: "*LST". HLT 00B ALLOW FOR SELECTION OF LST PRINT. LIB 01B LOAD THE SENSE SWITCH REGISTER. CLA,INA ENTER: A=1. SSB,RSS IS THE LST TO BE LISTED? JSB EPL YES, GO PRINT THE LST. JMP ENDPR,I RETURN. SPC 2 ENDL DEF .DEF. SPC 1 * SECTION OF LOADER OR * LWA OF COMMON. SPC 1 ENDC3 CCA (A) = COMMON ORIGIN ADA COMOR GET ADDRESS OF WORD PRIOR TO COM.. SSA IF A=-1 (NO COMMON ALLOCATED) LDA ENDL SET A = LWA OF RELEASABLE MEMRY STA LWAM SET LWA AVAIL.MEMORY FOR EXECUTE LDA EXECP SET (A) = EXECUTION SZA POINT ADDR. IF NO ADDR. JMP OPT.7 PRESENT, OUTPUT DIAGNOSTIC. ENDC4 LDA ERR08 SET ASCII 08 FOR DIAGNOSTIC - JSB DIAG NO EXECUTION POINT ADDRESS. CLA ENTER: A=0. ENDC5 HLT 02B SZA,RSS WAS A VALID ADDRESS ENTERED? JMP ENDC4 NO, GO REPEAT THE DIAGNOSTIC. SPC 1 * EXECUTION POINT MAY BE CHANGED - NEW ADDRESS IN A SPC 1 STA EXECP SET EXECUTION POINT ADDRESS. SPC 1 * FOLLOWING WORD IS CLEARED IF THE ABSOLUTE * RECORD OUTPUT OPTION IS NOT SELECTED. * OTHERWISE THE ROUTINE -PLINK- IS ENTERED * WHICH PUNCHES THE LINKAGE AREAS AND IOC * AND THE I/O DRIVERS AS PART OF THE ABSOLUTE * TAPE. CONTROL IS NOT RETURNED. SPC 1 OPT.7 JMP PLINK SPC 1 * CHECK FOR -LST- TO BE PRINTED. SPC 1 JSB ENDPR GO PROCESS "LST" AND EJECT. SPC 2 * EXECUTION SECTION SPC 1 LDA RUNM OUTPUT MESSAGE. LDB C.04 - * RUN - JSB LOUTL HLT 00B HALT FOR EXECUTION SET-UP. JSB .IOC. C.03 OCT 000003 CLEAR REQUEST FOR "LIB" UNIT. SPC 1 * SET REGISTERS FOR ENTRY TO LOADED PROGRAMS SPC 1 LDA MEMRY (A) = ADDRESS OF MEMORY TABLE. LDB LSTA (B) = ADDRESS OF LST CLO CLEAR OVERFLOW, CLE JSB EXECP,I BEGIN EXECUTION SPC 1 * FOLLOWING HALT IS PROVIDED FOR A COMMON RETURN * FROM EXECUTION. SPC 1 .DEF. DEF *+1 SPC 1 HALT CLA .JSB. HLT 77B .106. JMP .JˉB@71B? JMP DSPAC YES, NOT NUMERIC ADA .+10 SSA,RSS <60B? JMP INVFN NO, NUMERIC CPB LPAR LEFT PARENTHESIS? JMP INVFN YES, SEE :DD DIRECTIVE * * CHECK FOR ENOUGH USER AVAILABLE SPACE TO ALLOCATE FILE * DSPAC LDB #SECT CHECK IF ENOUGH DISC SPACE ADB .-1 AVAILABLE FOR FILE LDA UDNTS NEXT T/S ON C.U.D AND .+17 ISOLATE SECTOR ADDRESS ADA B INCREMENT TO LAST SECTOR CLB OF REQUESTED SPACE DIV SECTR DIVIDE BY # SECT/TRACK STB %SECT SAVE SECTOR ADDRESS STA B SAVE QUOTIENT (TRACK INCREMENT) LDA UDNTS ALF,ALF ISOLATE TRACK ADDRESS AND .+17 ADA B ADD QUOTIENT STA %TRAK SAVE TRACK ADDRESS LDA JBINC CHECK IF THERE IS A JBIN ALF,ALF AND .+17 CMA,INA,SZA,RSS JMP *+4 NO JOB BINARY AREA LDB CUDSC YES THEN ARE WE ON SYS DISC? CPB SYSSC JMP *+4 YES JBIN DEFINES LAST TRACK LDA DISCO USE LAST TRACK ON SYSTEM AND .+19 CMA ADA %TRAK ADD REQUESTED LAST TRACK ADDR SSA,RSS STILL ON DISC? t= JMP NOSPC INSUFFICIENT SPACE ON DISC. * * GET DOS-M DIRECTORY TRACK NUMBER * LDA DISCL USER LABEL T/S ALF,ALF AND .+17 STA DTRK * * SEARCH DIRECTORY FOR LAST ENTRY * CLA,INA STA RSECT SET-UP RELATIVE SECTOR PNTR CCA STA R.C. AND READ REQUEST CODE JSB DISC READ SECTOR LDB FILE SET-UP FILE NAME POINTER STB TEMP ADB .+2 POINT TO LAST CHARACTER LDA B,I OF FILE NAME AND .+18 AND ISOLATE STA B,I RESTORE LDB BUFAD POINT TO FIRST WORD LDA B,I SZA,RSS JMP EODIR NXENT CPA TEMP,I COMPARE FILE NAME RSS FIRST 2 CHARACTERS JMP NOT1 NOT EQUAL INB ISZ TEMP LDA B,I CPA TEMP,I SECOND 2 CHARACTERS RSS JMP NOT2 NOT EQUAL INB ISZ TEMP LDA B,I AND .+18 CPA TEMP,I LAST CHARACTER JMP DFIND DUPLICATE FILE ON DIRECTORY JMP NOT3 NOT1 INB NOT2 INB NOT3 LDA FILE STA TEMP LDA B,I CHECK LENGTH OF ENTRY AND .+16 ADA .-6 ADB .+3 ASSUME 5 WORD ENTRY SSA 11 WORD ENTRY? ADB .+6 YES. LDA B,I PICK UP NEXT WORD CPA .-1 END OF SECTOR? JMP NXSCT YES. SZA END OF DIRECTORY? JMP NXENT NO. JMP EODIR * NXSCT ISZ RSECT JSB DISC LDB BUFAD LDA B,I JMP NXENT * * CHECK FOR SPACE ON CURRENT DIRECTORY SECTOR * EODIR LDA BUFAD CHECK FOR DIRECTORY SPACE ADA .+16 ADDRESS OF LAST WORD IN SECTR CMA ADA B CURRENT FREE WORD IN SECTR ADA .+5 PLUS 5 ADDITIONAL WORDS SSA - = ENOUGH WORDS THIS SECTR JMP THIS * * SEARCH FOR NEXT DIRECTORY SECTOR * LDA RSECT IS THERE ANOTHER SECTOR? INA X CMA,INA ADA SECTR SSA,RSS JMP NODIR NO DIRECTORY SPACE LEFT. CCA END THIS SECTOR STA B,I LDA .-2 SET-UP WRITE REQUEST STA R.C. JSB DISC WRITE UPDATED SECTR TO DIRECTORY ISZ RSECT POINT TO NEXT SECTOR LDB BUFAD POINT TO FIRST WORD * * ADD FILE ENTRY TO DIRECTORY * THIS LDA FILE,I FIRST 2 CHARACTERS OF FILE NAME STA B,I STORE IN SECTOR BUFFER ISZ FILE INB (1) LDA FILE,I SECOND 2 CHARACTERS OF FILE NAME STA B,I STORE IN SECTOR BUFFER ISZ FILE INB (2) LDA FILE,I LAST CHARACTER OF FILE NAME IOR FTYPE INCLUDE FILE TYPE STA B,I STORE IN SECTOR BUFFER INB (3) LDA UDNTS T/S ADDRESS OF NEW FILE STA B,I STORE IN SECTOR BUFFER INB (4) LDA #SECT SECTOR LENGTH OF NEW FILE STA B,I STORE IN SECTOR BUFFER INB (5) CLA TERMINATE DIRECTORY STA B,I STORE IN SECTOR BUFFER LDA .-2 SET-UP WRITE REQUEST STA R.C. JSB DISC WRITE UPDATED SECTOR TO DIRECTORY * * READ USER LABEL SECTOR (0) FROM DIRECTORY TRACK * CCA SET-UP READ REQUEST STA R.C. CLA SET-UP RELATIVE SECTOR PNTR STA RSECT JSB DISC READ USER LABEL SECTOR * * UPDATE NEXT TRACK/SECTOR AVAILABLE INDICATORS FOR THIS SUBCHNL * LDB %SECT UPDATE UDNTS ON LABEL CLE,INB INCREMENT SECTR ADDR BY 1 CPB SECTR CLB,CCE CROSSED TRACK BOUNDARY LDA %TRAK GET TRACK ADDRESS SEZ INCREMENT IF CROSS TRACK BOUNDARY INA ALF,ALF FORM T/S ADDRESS WORD ADA B LDB BUFAD SECTOR BUFFER ADDRESS ADB .+12 POINT TO WORD #65 STA B,I STORE NEW UDNTS LDB .UNT<S ADDRESS OF UDNTS IN CORE JSB EXSET UPDATE UDNTS LDB CUDSC SYS SUBCHNL = USER SUBCHNL? CPB SYSSC LDB SYNTS CPB SYNTS JSB EXSET UPDATE SYS NXT T/S IN CORE LDA .-2 SET-UP WRITE REQUEST STA R.C. JSB DISC WRITE UPDATED USER LABEL SECTOR * * ESTABLISH CONDITION CODE AND RETURN * CCA,RSS NORMAL COMPLETION INV#S CLA INVALID FILE LENGTH RSS INVFN CLA,INA INVALID FILE NAME RSS INVTP LDA .+2 INVALID FILE TYPE RSS NOSPC LDA .+3 INSUFFICIENT SPACE TO ALLOCATE RSS DFIND LDA .+4 DUPLICATE FILE NAME RSS NODIR LDA .+5 DIRECTORY OVERFLOW JMP IDFIN,I RETURN SKP * * * STORE DATA INTO PROTECTED AREA OF MEMORY * * * EXSET NOP JSB EXEC DEF *+2 DEF *+2 JMP EXSET,I DEC -19 * * * * DISC I/O TRANSFERS USING THE PRIVILEDGED EXEC CALL * * DISC NOP JSB EXEC DEF *+7 DEF R.C. DEF CNWD BUFAD DEF BUFR DEF BUFL DEF DTRK DEF RSECT JMP DISC,I SKP %SECT BSS 1 TEMP. SECTOR ADDRESS %TRAK BSS 1 TEMP. TRACK ADDRESS . EQU 53B BASE PAGE CONSTANT TABLE .UNTS DEF UDNTS ADDRESS OF UDNTS IN BASE PAGE B EQU 1 BUFL DEC 128 SECTOR BUFFERR LENGTH BUFR BSS 128 SECTOR BUFFER CUDSC EQU 161B CURRENT USER DISC SUBCHNL DISCL EQU 200B USER DIRECTORY TRACK T/S ADDRESS DISCO EQU 154B LAST TRACK ON SYSTEM(BIT0-10) JBINC EQU 102B CURRENT JOB BINARY T/S ADDRESS LPAR OCT 50 ( LEFT PARENTHESIS CHARACTER R.C. BSS 1 READ/WRITE REQUEST CODE RSECT BSS 1 REL. SECTOR WITHIN USER DIREC. TRACK SECTR EQU 116B # LOGICAL SECTORS / TRACK SYNTS DEF UDNTS+1 ADDR. OF SYS. NEXT T/S SYSSC EQU 155B SYSTEM DISC SUBCHANNEL TEMP BSS 1 TEMPORARY FILE NAME POINTER UDNTS EQU 157B NEXT T/S ON CURRENT USER DISC DTRK BSS 1 DIRECTORY TRACK FTYPE OCT 13 ASCII FILE TYPE CNWD DEC 2 END ASMB,L NAM BASPG,6 ENT BASPG EXT .ENTR ISYS NOP BASPG NOP JSB .ENTR DEF ISYS LDA SYSSC STA ISYS,I JMP BASPG,I * SYSSC EQU 155B END ASMB,L NAM IDCHK,7 ENT IDCHK EXT .ENTR ALLOT NOP WANT NOP IDCHK NOP JSB .ENTR DEF ALLOT LDA ALLOT,I GET DISC ALLOWED STA ALOTD SAVE ISZ ALLOT BUMP TO DISC USED LDA ALLOT,I AND GET IT ADA WANT,I ADD IN WHAT USER WANTS CMA,INA AND NEGATE TOTAL CLE SET UP FOR CHECK ADA ALOTD COMPARE WITH ALLOWED CLA SET UP FOR OK SEZ,RSS IS IT? INA NO IT'S NOT JMP IDCHK,I * ALOTD NOP * END FTN,L PROGRAM TESTD DIMENSION NAM(3),IR(3),IS(8),IS1(15) DATA NAM/2HFI,2HLE,2H1 / CALL TDFIL(NAM) DO 20 I=1,6 CALL TDRDS(1,I,L1,IR) CALL TDRDN(1,0,Q) CALL TDRDN(1,0,P) CALL TDRDS(1,0,L2,IS) CALL CODE READ(IS,1) IS1 1 FORMAT(15A1) IQ=Q WRITE(1,11) IR,IQ,P,(IS1(J),J=1,L2) 11 FORMAT(3A2,I4,F10.2,3X,15A1) 20 CONTINUE END $ FTN,L PROGRAM BACK DIMENSION NAM(3),IR(3),IS(8) DATA NAM/2HFI,2HLE,2H1 / DATA IR/2HH0,2H35,2H-A/ DATA IS/2HHP,2H35,2H C,2HAL,2HC / CALL TDFIL(NAM) CALL TDPRS(1,4,6,IR) CALL TDPRN(1,0,100.0) CALL TDPRN(1,0,135.5) CALL TDPRS(1,0,9,IS) CALL TDPST END $ 10 DIM R$[6],S$[15] 20 FILES F1 25 FOR I=1 TO 6 30 READ N,R$,Q,P,S$ 50 PRINT #1,N;R$,Q,P,S$ 55 NEXT I 65 PR$"INT 66 PRINT 70 FOR J=1 TO 6 80 READ #1,J;R$,Q,P,S$ 90 PRINT J;R$;Q;P;S$ 100 NEXT J 900 DATA 2,"A103-B",16,.05,"6BA WASHERS" 910 DATA 1,"A102-C",0,100.2,"COLOUR TUBE" 920 DATA 6,"W691-P",32,43.25,"20 WATT AMP" 930 DATA 5,"D427-F",108,2.66,"ELECTRIC KETTLE" 940 DATA 4,"C720-Z",122,1.75,"VINYL PAPER" 950 DATA 3,"A109-D",6,75.6,"MONITOR SPEAKER" 999 END U)$ N Y 22638-80001 1437 SC 0122 01SPECIAL PRIVILEGED RTE DVR FOR HP 2313             H0101 r ASMBҬB̬ NAMDV5 Ԡ$P5 NԠ.5.5P.5 HDPVGDDVҠNANSN A̠SASS Ԡ SB DƠ+5 DƠDŠHŠDŠSAҠAD DƠNNDNNDSHŠGA̠UNԣ DƠBUƠBUƠSADD.ƠPAMBK DƠBNHBNHSNGHƠBK MAԠƠPAMBKS DMŠNVAVN0'SƠMUSSDàؠ<55 BUҠU̯MPYAG(A̠'S0Ԡ0 3BUҠU̯MPYAG(A̠'S0Ԡ0 ADDSSƠBUҠDƠB 5ADDSSƠBUҠDƠB 6ƠSANSPҠBUҠDàM ƠADNGSPҠSANDàN HANƠSԠADNGҠSAN 9HANƠNDADNGҠSAN 0HANƠ3DADNGҠSAN à-MUSԠBŠAԠASԠ3HANS HANƠNHADNGҠSAN BUҠBBSSMN BUҠBBSSMN MAԠƠDHANSHŠSAMŠASSHNNPAG 3-ƠDASN̠ADMANUA̠ "B.DAAD-ASԠADDSSD"HBԠ0. SKP NSNPANƠDV. HŠDVҠSSHŠAGSNDSAND3 HNABUҠSU. HŠPGAMMUSԠAҠHSŠAGSASH DAASPSSD. ƠAGSNԠAҠHNHŠDVҠUS ϠUSŠABUҬHNDVҠSPSANDSS DƠPAMBKϠZ. HUSϠSPDVҠAVŠAGND 3S.PGKSҠDϠGϠZ ϠNDAŠDVҠHASNPUԠASԠBK. ƠPGSDSàSDNԠHŠ""MMANDMUS NԠBŠUSDϠSPHŠPG.HŠASN HSSHAԠHŠAQ5NGPGAMSNV ɯϠSUSPNDNHŠ33ANDSϠԠ̠NNU ϠANSҠDAANϠBUS(ANDPSSBYV HŠPƠHŠNԠPG.HAԠMSN. HŠANGPGAMMUSԠNVҠBŠADϠSAPU. .ŠԠMUSԠHAVŠPYANDNVҠGϠPA SUSPNDҠMMYSUSPNDANDNVҠɯϠSUSPNDNA BUҠN.ԠMMN. ASHSDVҠSSDϠZϠHNԠSPS HŠUSҠMUSԠSԠDBŠANHҠA SMADŠϠHSDVҬ.ŠAAYSSԠUPDA HŠSAԠƠHŠUSҠANGPGAM. SKP .5NP SASDŠSAVŠSԠD DA6 ANDB PABHKҠAD MPMAYBŠYS ԠANAN MP.5 MAYBŠDA5ɠHKDV SASSBUSY? MPKN BYS-UNϠA DADHBA̠'S. MP.5 KҠB SA5 K̠MPNGNGUŠSԠMŠNY SKP ANSҠPAAMS PAMDBԷɠGԠADDSSƠPAMBK SBBUAANDSAV. DABUAɠMAKŠSU ANDB3NԠANG SABUAɠANDSŠBAK DAD SAANMMDAŠUN DA5 SAS5SAVŠҠNNUAҠA NBGԠADDSS SBBUƱƠƠBUƱ AAGANDSAV. SABUƱƬɠMAKŠSUŠA. NBGԠADDSS SBBUƲƠƠBUƲAGANDSAV. SABUƲƬɠMAKŠSUŠA. NBSAV DAB SABUƱBU SADAA NBADDSSS. DAB SABUƲ NBADDSSƠƠSANBK DABɠGԠ MANANGA SANUMBKSAV SAMSSԠҠNNUA NBADDSSƠƠADNGS SBNUMHPҠSANS. NBADDSSƠSԠHAN SBHANSAN. SBHANSAVŠҠNNUAҠND SԠMMANDBSNHANADDSSS. DAHAN ANDB ҠB0000DGZŬUNPAD. SAHAN DANUMHɠG MANAƠHANSSS NAANDSAV SAUNԠҠND DBHANGԠSԠHANADDSS PNBNԠHANADDSS DABɠGԠHAN ANDBS ҠB30000DGZDPADBS SABɠANDSŠBAKNPAMBK. SZUNԠANYMŠHANS? MPPYS SADUMHSԠASԠHANASDUMMY SKP AUAŠMŠDVҠNԠUNNNG DANUMHɠMAK MANASUŠMŠHAN ADAD3HANSAN. SSASSYS. MPʠN. SANNԠSAVŠҠND. DANUMH AS ADANUMHɠƠHANSNSAN3'SƠMU ADADADD00SAԠ+60A+50ND MANANGA. ADABUAɠADDMŠBNSANS. SSAPSVŬK MPʠNGAŬϠASԬԠA. ADAD5 ҠB600AԠNԠPUSŬ'SƠMU. SAP.SAVŠMMANDϠPA SKP SUBSYSMNMAZ Ơ0 ñàS DAB000 AAS SñSàSì SñSàS SSSSS MP- òàS SAԠPAҠN00MUSS DAB6SAԠNԠPUS AAS SòSàSì SSSSS MP- \ MPNԠGԠSԠSAN ʠDA5 ANDB6 SA5 MP SKP HDNNUANSN P.5NP Ơ0NUPS SASAVASAV SBSAVBA AASKNG SàGSS NA SASAV AAҠϠSH SAANP.5NY SԠPAҠҠSANAԠ3ϠMUSSNVA NԠDAB60363ϠMUSAԠNԠPUS A3AS S3SàSì DAHANɠDGUNPADSԠADNG SS3SSS MP- AAS SôSàSì SZHANUPDAŠҠNDADNG. DANNԠSԠUPND SAUNԠҠP. DAHANɠDGPADNDADNG SSSSSàAԠҠDAAHH MP-SNϠGD. A5AS S5SàSì SZHAN MPP DAANP HANNP UNԠNP PDAHANɠGGZDPADHҠADNGS SS5SSS MP-AԠҠDAA BBSàGԠ A6AS S6SàSì SBDAAɠSAVŠDAA SZDAAUPDAŠҠNԠM SZHANUPDAŠADNG SZUNԠUPDAŠNDؠҠP MPP DADUMH SS6SSSàAԠҠADNGN- MP- BBSàGԠN-HADNG. AAS S÷SàSìàSAԠNHADNG. SBDAA SZDAA DAP.NנPDHANGŠNԠPUS. SSSSS MP-AԠҠNHADNG NPMSSNŠKK DBHANSԠҠN SBHANSAN B3BSàGԠ. AASàUPUԠNנPD. SøSàSìàAԠUN̠APD SSSSSàBYPA. MP- SBDAAɠSAVŠASԠADNGƠSAN. NPMAKŠSUŠŠMSS SZDAA1NŠK SKP DAB6PD00MUHANGŠNԠPUS A9AS S9SàSì SS9SSSàAԠUN̠NנMMAND MP-APDBYPA. DADUMHSԠϠADUMMY A0ASàHANSϠŠGԠAN Sñ0SàSìàNUPԠAԠNԠPUS. SZMSANYMŠSANSҠHSBU? MPԠYS NϬSϠSAPBUS DANUMBKSԠSANUN SAMSҠAHBU ASԠҠUSŠASAG SHSSHSANBŠANPҠSS MPDNŲMUSԠBŠANPSϠBUƲU BUƱSNנU DNűSABUƱƬɠSԠU̠AG DABUƲƬɠMAKŠSU SZASSBUƲSMPY. MPMPԲYS. AN.MNGҠ SABUAɠNDƠUN. MPA SHBUS MPԲDABUƲHANG SADAABUҠADDSS DANPK SASHSH MPԠANDԠUN. BUƲSNנU DNŲSABUƲƬɠMMNSASABV DABUƱƬ SZASS MPMPԱ A SABUA MPA SHBUS MPԱDABUƱ SADAA DASS SASH SKP ԠDAANASNYM SZA.5ҠP.5? MPԠM.5. P.5NY. DASAVϠS ϠGSS SAAAND SƠH DBSAVBMMY DAMP̠P SZAN MPƠ NDASAVAH SƠ0SAM Sà5SAŠASHNNUPԠAM MPP.5ɠANDUN. ƠDASAVAAV SƠ0NŠƠAND MPP.5ɠUN. B^ ԠSƠ0ԠBAK MP.5ɠ. AҠDASSS SASHSHϠBUƱ. DAS5ɠA ANDB6DVҠN SAS5ɠUSŠAG. 3àSàAҠN. MP SKP HDNGUANSN NGDAA SҠSDŠHS SAAAA SAAS SAA3AS SAAUSD SAA5 SAA6S SAAMS SAA SAA9H SAA0VAABS DAS ҠSD SASñ SASò SAS3 SASô SAS5 SAS6 SAS÷ SASø SAS9 SASñ0 DASS ҠSD SASS SASS SASS3 SASS SASS5 SASS6 SASS SASS SASS9 DAB ҠSD SAB SAB SAB3 DAS ҠSD SASñ DA ҠSD SAñ SAò SA3 DA$P5SԠUP SASDŬɠAP DANP SAK MPPAM SKP HDNSANSANDVAABS SDŠUP.5 BUAUS BUƱƠUS+ BUƲƠUS+ BUƱUS+3 BUƲUS+ NUMBKUS+5 NUMHUS+6 MSUS+ HANUS+ NNԠUS+9 P.US+0 SAVAUS+ SAVBUS+ SAVϠUS+3 ANUS+ DUMHUS+5 S5US+6 BU AU0 SàU0B AA0 SàSà0 SSSS0 NPNP SSSS SàSà0 BB0 àà0 5U66B 6U665B ԷU666B MP̠U0B .5U.5 ND ASMBҬB NAQM$P5 NԠ$P5 ԠP.5 $P5SBP.5 ND ND ASMBҬ NAMS NԠSA Ԡì.D..A..DA. AMPŠSԠPGAMҠSP.PV.DV SԠUƠ33NNND SAԠSBàSAԠ33 DƠ+5UNMMDAYMDV DƠD DƠNND DƠBUƠADDSSƠPAMBK DƠBU DABUƱƠHKBUƠU̠AG SZAA̠'SHNU MP+BUҠU MP-3NԠU̬SϠA. DABUƲƠASABVŠBUԠ SZABUҠ. MP+ MP-3 A̠DAANSϠDUMPADNGS. DVҠ̠SPBAUSŠBUƱƠSNԠAD DAD6 B SB.D. DƠM DƠND DAD000 DBBUA SB.A. SB.DA. ND̠SBà DƠ+ DƠSP SPDà6SPUS BUƠDà00000000MUSSBN BUƱƠԠ0BUҠAGSԠMPYGUPS. BUƲƠԠ0BUҠAGSԠMPYGUPS. DƠBBUҠADDSS DƠBBUҠADDSS Dà0000GUPSƠADNGSPҠBU. Dà55ADNGSPҠGUP Ԡ0HANN̠0 Ԡ Ԡ Ԡ33 Ԡ BBSS500500 BBSS500500 DŠDàADUS NNDDàUƠHP33 BU̠Dà00NGHƠPAMBKANDBUS BUADƠBADDSSƠDAAϠUPU MԠASà3(5KMAԠƠUPU NDSAԠSAԠADDSS z{0.**0 O \ 22641-80001 A SC 0122 TRIPLE WORD ROUTINES              H0101 ASMB,R,L,T,C * FJ00010 * FJ00020 * FJ00030 * ****************************** FJ00040 * * * FJ00050 * * CONVERTS RADIX 40 TO ASCII * FJ00060 * * * FJ00070 * ****************************** FJ00080 * FJ00090 * FJ00100 HED ****** THIS ROUTINE CONVERTS RADIX 40 TO ASCII ******* FJ00110 * FJ00120 * CALLING SEQUENCE FJ00130 * FJ00140 * JSB FJ FJ00150 * DEF RETURN POINT (*+4) FJ00160 * DEF SOURCE BUFFER (RADIX 40) FJ00170 * DEF RESULT BUFFER (ASCII) FJ00180 * DEF LENGTH (IN CHARS) FJ00190 * FJ00200 * FJ00230 * FJ00240 * TIMING IS 44+155N MICRO SECS WHERE N FJ00250 * FJ00260 * IS THE NUBER OF CHARS /3 $ FJ00270 * FJ00280 NAM FJ000,7 ENT FJ * FJ00290 FJ NOP **** ENTRY POINT. LDA FJ,I GET REYURN ADDR. ISZ FJ INCR LDB FJ,I GET SOURCE BUFF ADDR STB FG1 STORE FJ00350 ISZ FJ INCR LDB FJ,I GET RESULT BUFF ADDR STB FG2 STORE FJ00380 ISZ FJ INCR LDB FJ,I GET ADDR OF LENGTH LDB 1,I GET LENGTH FJ00410 CMB,INB MAKE -VE FJ00420 STB FG3 STORE FJ00430 STA FJ STORE RETURN ADDR CLA FJ00450 STA FG14 CLEAR RESULT FJ00460 STA FG11 CLEAR FLAG FJ00470 STA FG4 CLEAR ODD/EVEN FLAG FJ00480 FJ8 CLB CLEAR B REG. LDA FG1,I GET WORD. DIV =D40 DIV BY 40 FJ00520 ADB .FJ1 ADD ADDR TO REM. FJ00530 LDB 1,I GET ASCII FJ00540 STA FJ5 STORE RES FJ00550 JSB FJ4 STORE CHAR FJ00560 ISZ FG3 ALL DONE ? FJ00570 RSS NO SO SKIP FJ00580 FJZ JMP FJ,I RETURN. LDA FJ5 GET PREV RES FJ00600 CLB CLEAR  B REG FJ00610 DIV =D40 DIVIDE FJ00620 STA FJ5 STORE RES ADB .FJ1 ADD BUFF ADDR LDB 1,I GET CHAR FJ00650 JSB FJ4 STORE ISZ FG3 ALL DONE FJ00670 RSS NO SO SKIP FJ00680 JMP FJZ GO TO EXIT FJ00690 LDB FJ5 GET RES FJ00700 ADB .FJ1 ADD BUFF ADDR FJ00710 LDB 1,I GET CHAR FJ00720 JSB FJ4 STORE IT FJ00730 ISZ FG1 MOVE POINTER FJ00740 ISZ FG3 ALL DONE FJ00750 JMP FJ8 NO SO GO BACK FJ00760 JMP FJZ YES SO EXIT FJ00770 FJ4 NOP ENTRY POINT FJ00780 LDA FG4 GET ODD/EVEN FLAG FJ00790 SZA IS ODD CHAR FJ00800 JMP FJ9 NO PROCESS EVEN FJ00810 BLF,BLF ROTATE FJ00820 STB FG2,I STORE CHAR FJ00830 CCB SET B TO 1'S FJ00840 JMP FJ4A GO ON FJ00850 FJ9 LDA FG2,I GET PREV CHAR FJ00860 ADA 1 ADD THIS ONE FJ00870 =~ STA FG2,I STORE BOTH BACK FJ00880 ISZ FG2 INCR POINTER FJ00890 CLB CLEAR B FJ00900 FJ4A STB FG4 STORE AS ODD/EVEN FLAG FJ00910 JMP FJ4,I RETURN FJ00920 FG1 NOP G00010 FG2 NOP G00020 FG3 NOP G00030 FG4 NOP G00040 FG11 NOP G00050 FG14 NOP G00060 FG7 OCT 177 G00070 .FG1B DEF FG1B G00080 FG1B OCT 0,0,0,0,0,0,0,0 G00090 DEC 0,0,0,0,2,0,1,3 G00100 DEC 4,5,6,7,8,9,10,11 G00110 DEC 12,13,0,0,0,0,0,0 G00120 DEC 0,14,15,16,17,18,19,20 G00130 DEC 21,22,23,24,25,26,27,28 G00140 DEC 29,30,31,32,33,34,35,36 G00150 DEC 37,38,39 G00160 FJ5 NOP J00010 .FJ1 DEF FJ1 J00020 FJ1 OCT 40,56,54,57,60,61,62,63 J00030 OCT 64,65,66,67,70,71,101 J00040 OCT 102,103,104,105,106,107 J00050 OCT 110,111,112,113,114,115 J00060 OCT 116,117,120,121,122,123 J00070 OCT 124,125,126,127,130,131 J00080 OCT 132 J00090 END FJ lF P Z 22641-80002 A SC 0122 TRIPLE WORD ROUTINES              H0101 ASMB,R,L,T,C * FG00020 * ****************************** FG00030 * * * FG00040 * * CONVERTS ASCIT TO RADIX 40 * FG00050 * * * FG00060 * ****************************** FG00070 * * * FG00080 * * FJ OPERATES IN REV DIREC. * FG00090 * ****************************** FG00100 NAM FG000,7 ENT FG HED ******* ASCIT TO RADIX 40 CONVERTER ****** FG00110 FG NOP *** ENTRY POINT. * FG00150 * FG00160 * CALLING SEQUENCE FG00170 * JSB FG FG00180 * DEF RETURN POINT (*+4) FG00190 * DEF SOURC BUFFER (ASCII) FG00200 * DEF RESUT BUFFER (RADIX 40) FG00210 * DEF LENGTH (IN CHARS) FG00220 * FG00230 * FG00240 * FG00250 CLA CLEAR A REG FG00260 STA FG14 CLEAR RESULT FG00270 STA FG11 CLEAR FLAG FG00280 STA FG4 SET ODD/EVEN FLAG FG00290 * FG00300 * FG00310 * TIMING IS 44+8ON MICRO SECS WHERE N IS FG00320 * FG00330 * THE NUMBER OF CHARS FG00340 * FG00350 * FG00360 LDA FG,I GET RETURN ADDR. ISZ FG INCR. LDB FG,I GET SOURCE BUFF ADDR STB FG1 STORE IT FG00410 ISZ FG INCR LDB FG,I GET RESULT BUFF ADDR STB FG2 STORE IT FG00440 ISZ FG INCR LDB FG,I GET LENGTH IN CHARS LDB 1,I GET LENGTH FG00465 CMB,INB MAKE -VE FG00470 STB FG3 STORE IT FG00480 STA FG STORE RETURN ADDR SKP FG00500 FG15 LDA FG1,I GET 2 CHARS FG00510 LDB FG4 GET ODD/EVEN FLAG FG00520 SZB IS ODD CHAR FG00530 JMP FG5 NO, SO PROCESS EVEN FG00540 ALF,ALF ROTATE FG00550 CCB SET B TO ALL 1'S FG00560 JMP FG6 JUMP ON FG00570 FG5 CLB CLEAR B REG z FG00580 ISZ FG1 INCR POINTER FG00590 FG6 STB FG4 SET ODD/EVEN FLAG FG00600 AND FG7 MASK CHAR FG00610 JSB FG10 CONVERT FG00620 LDB FG11 GET FLAG. CPB =D2 IS IT 2 JMP FG13 YES MULT BY 1600 FG00650 CPB =D1 IS IT 1 ? JMP FG12 YES MULT BY 40 FG00670 STA FG14 STORE RES FG00680 ISZ FG11 INCR FLAG FG00690 FG16 ISZ FG3 ALL DONE? FG00700 JMP FG15 NO FG00710 LDB FG11 FG00720 SZB FG00730 STA FG2,I STORE RESULT FG00740 JMP FG,I RETURN. FG12 MPY =D40 MULT BY 40 FG00760 ADA FG14 ADD PREV FG00770 STA FG14 FG00780 ISZ FG11 INCR FLAG FG00790 JMP FG16 CHECK ALL DONE FG00800 FG13 MPY =D1600 MULT BY 1600 FG00810 ADA FG14 ADD PREV FG00820 STA FG2,I STORE IN RES BUFF FG00830 ISZ FG2 MOVE POINTER FG00840 CLB CLEAR B FG008~50 STB FG11 SET FLAG FG00860 JMP FG16 GO CHECH ALL DONE FG00870 SKP FG00880 FG10 NOP ENTRY POINT FG00890 ADA =B-40 SUBTRACT OCTAL 40 FG00900 SSA IS STILL +VE FG00910 JMP FG1A NO SO ERROR FG00920 ADA =B-73 SUBTRACT OCTAL 73 FG00930 SSA,RSS IS NOW -VE FG00940 JMP FG1A NO SO ERROR FG00950 ADA =B73 ADD OCTAL 73 FG00960 ADA .FG1B ADD BUFF ADDR FG00970 LDA 0,I GET BUFF WORD. AND FG7 MASK FG00990 FG1C JMP FG10,I RETURN FG01000 FG1A CLA CLEAR (CODE FOR SPACE) FG01010 JMP FG1C GO TO EXIT FG01020 SKP FG01030 FG1 NOP FG2 NOP FG3 NOP FG4 NOP FG11 NOP FG14 NOP FG7 OCT 177 .FG1B DEF FG1B FG1B OCT 0,0,0,0,0,0,0,0 DEC 0,0,0,0,2,0,1,3 DEC 4,5,6,7,8,9,10,11 DEC 12,13,0,0,0,0,0,0 DEC 0,14,15,16,17,18,19,20 DEC 21,22,23,24,25,26,27,28 DEC 29,30,31,32,33,34,35,36 DEC 37,38,39 FJ5 NOP .FJ1 DEF FJ1 FJ1 OCT 40,56,54,57,60,61,62,63 OCT 64,65,66,67,70,71,101 OCT 102,103,104,105,106,107 OCT 110,111,112,113,114,115 OCT 116,117,120,121,122,123 OCT 124,125,126,127,130,131 OCT 132 #g END FG  Q [ 22641-80003 A SC 0122 TRIPLE WORD ROUTINES              H0101 ASMB,R,T,L,B,C HED ROUTINE ATC - TRIPLE WORD INTEGER TO ASCII * * THIS ROUTINE CONVERTS A TRIPLE WORD INTEGER VALUE * TO 15 DIGIT ASCII FORMAT, TOGETHER WITH A DECIMAL * POINT PLACED WHERE REQUESTED BY THE FOURTH * PARAMETER. THE OUTPUT IS PLACED IN A BUFFER * RIGHT JUSTIFIED. * * THE PARAMETERS TO THIS ROUTINE ARE :- * * (1) THE SOURCE DATA ADDRESS. * * (2) OUTPUT BUFFER ADDRESS. * * (3) THE NO. OF DECIMAL DIGITS. * * (4) OUTPUT STATUS FLAG. * * = 1 IF MORE THAN 7 CHARS. * * = 100000 IF SOURCE DATA * * WAS NEGATIVE. * * = 100001 IF BOTH THESE * * CONDITIONS ARE TRUE. * * * * CALLING SEQUENCE * * JSB ATC * * DEF *+4 * * DEF SOURCE DATA * * DEF OUTPUT BUFFER * * DEF NUMBER OF DECIMAL DIGITS * * DEF STATUS FLAG * * * * ALL REGISTERS ARE UNDEFINED ON EXIT * * * * TIMING IS 200 + 98 PER CHARACTER AVERAGE * * CORE USAGE IS 275 * ********** ***** ***** ********** NAM ATC,7 ENT ATC TEMP2 NOP TOP NOP CHRCT NOP DIGIT COUNT N NOP NUMBER OF DECIMAL DIGITS N1 NOP NEG NOP NEGATIVE INTEGER FLAG SDATA BSS 3 WORKING AREA FOR INTEGER. AREG EQU 0 BREG EQU 1 ATC NOP CLA USING THE A REGISTER AS A COUNT W^ STA CHRCT CLEAR DIGIT COUNT STA NEG SET NEG TO ZERO STA TOP SET TOP TO INDICATE L.S. 8 BITS ISZ ATC TRANSFER THE SOURCE DATA TO ATC01 LDA ATC,I LDB AREG,I GET SOURCE DATA STB SDATA INA LDB AREG,I STB SDATA+1 INA LDB AREG,I STB SDATA+2 ISZ ATC LDB ATC,I STB TEMP2 ISZ ATC GET PARAMETER INDICATING NO OF LDA ATC,I DECIMAL DIGITS REQUIRED. LDA AREG,I STA N SLA,RSS ODD ? INA NO STA N1 N1 ALWAYS ODD LDA N SZA,RSS JMP ATC2G N IS ZERO SLA JMP ATC2D N IS ODD * ADA =D-14 N IS EVEN ATC2A SZA,RSS SET SPACES IN FIRST 14-N JMP ATC2B CHARACTERS LDB =A STB TEMP2,I ISZ TEMP2 ADA =D2 JMP ATC2A ATC2B LDB =A0. SET 0. IN NEXT WORD STB TEMP2,I ISZ TEMP2 LDA N CMA,INA ATC2C SZA,RSS JMP ATCA3 END OF INITIALIZATION ADA =D2 SET 00 IN NEXT N CHARACTERS LDB =A00 STB TEMP2,I ISZ TEMP2 JMP ATC2C * ATC2D ADA =D-13 N IS ODD ATC2E SZA,RSS JMP ATC2F LDB =A STB TEMP2,I SET UP SPACES ISZ TEMP2 ADA =D2 JMP ATC2E ATC2F LDB =B020060 SET UP 0.00 ETC STB TEMP2,I ISZ TEMP2 LDB =A.0 STB TEMP2,I ISZ TEMP2 LDA N CMA,INA INA JMP ATC2C * ATC2G LDA =D-7 SET 14 SPACWS LDB =A ATC2H STB TEMP2,I ISZ TEMP2 ISZ 0 JMP ATC2H LDA =A0. SET 0. NEXT STA TEMP2,I ISZ TEMP2 JMP ATCA3 * ATCA3 LDA TEMP2 ADA =D-1 STA TEMP2 CLE LDA SDATA SSA,RSS SKIP IF NEGATIVE JMP ATC33 LDA SDATA+2 CMA,CLE,INA STA SDATA+2 LDA SDATA+1 CMA,SEZ uCLE,INA STA SDATA+1 LDA SDATA CMA,SEZ INA STA SDATA CCA SET NEG TO -1 TO STA NEG INDICATE SIGN EXT ATD ATC33 JSB ATD DEF *+5 DEF SDATA DEF A10 DEF SDATA OCT 1 ADDRESS OF B-REG SZB IS REMAINDER ZERO ? JMP ATC09 NO LDA SDATA YES SZA JMP ATC09 LDA SDATA+1 SZA JMP ATC09 LDA SDATA+2 SZA,RSS QUOTIENT ZERO ? JMP ATC11 PERFORM END OF OPERATION * AT THIS POINT REGISTER B HOLDS THE REMAINDER * FROM THE DIVIDE WHICH MUST NOW BE CONVERTED * TO ASCII AND PUT IN THE OUTPUT BUFFER. * ATC09 LDA =B60 ADD THE ZONE BITS O THE ADB AREG REMAINDER IN B. LDA TEMP2,I AND =B177400 IOR 1 ALF,ALF NEW CHAR NOW IN MSB OF A STA TEMP2,I ISZ TOP ISZ CHRCT INCREMENT DIGIT COUNT LDB TOP IS THIS THE WORD WITH THE CPB N1 DECIMAL POINT? RSS JMP ATC19 ISZ TOP AND =B177400 PUT NUMBER IN TOP HALF IOR =B56 PUT IN DECIMAL POINT LDB N SLB EVEN # ? ALF,ALF NO,ROTATE STA TEMP2,I CCB ADB TEMP2 STB TEMP2 JMP ATC33 RETURN FOR NEXT DIGIT. ATC19 SLB IF TOP IS EVEN JMP ATC33 GET THE CCB NEXT ADB TEMP2 WORD IN BUFFER STB TEMP2 ATC10 JMP ATC33 * THE FOLLOWING CODE IS EXECUTED WHEN NO * REMAINDER WAS PRODUCED, AND CHECKS * THE CALCULATION IS FINISHED. * ATC11 LDB TOP DOES BUFFER NEED ROTATING SLB,RSS JMP ATC12 NO, SO GO TO END. LDA TEMP2,I ALF,ALF ROTATR LAST ENTRY STA TEMP2,I ATC12 ISZ ATC SET UP A ZERO ERROR INDICATOR CLA IN THE OUTPUT PARAMETER LDB CHRCT HAVE THERE BEEN MORE THAN ADB =D-8 SEVEN DIGITS? SSB,RSS INA ISZ NEG RSS SET BIT 15 IF ORIGINAL IOR =B100000 LDB ATC,I STA 1,I ATC13 ISZ ATC SET UP RETURN ADDRESS. JMP ATC,I RETURN TO CALLING PROCEDURE. A10 DEC 10 END ATC ASMB,R,L,T,C ATM00010 HED ROUTINE .TWC - TRIPLE WORD TWO'S COMPLEMENTER NAM .TWC,7 ENT .TWC A EQU 0 * * TEMPORARY STORE * TEMP BSS 2 .TWC NOP ATM01070 * ROUTINE WHICH ACCEPTS A TRIPLE WORD ATM01080 * INTEEER AND FORMS ITS 2'S COMPLEMENT. ATM01090 * ATM01100 * * CALLING SEQUENCE * * JSB .TWC * DEF VARIABLE TO BE COMPLEMENTED * ISZ .TWC GET ADDRESS OF INTEGER. ATM01110 LDA .TWC,I ATM01120 ADA =D2 ATM01124 STA TEMP SAVE ADDRESS IN TEMP (2) ATM01128 LDA A,I ATM01129 CLE ATM01130 CMA,INA FORM 2'S COMPLEMENT OF L.S. WORD ATM01140 STA TEMP,I ATM01150 LDA .TWC,I ATM01160 INA ATM01162 STA TEMP SAVE ADDRESS IN TEMP (1) ATM01164 LDA A,I ATM01166 CMA COMPLEMENT 2ND WORD.  ATM01170 SEZ ATM01180 CLE,INA ADD IN THE CARRY. ATM01190 STA TEMP,I ATM01200 LDA .TWC,I ATM01210 STA TEMP SAVE ADDRESS IN TEMP (0) ATM01213 LDA A,I ATM01215 CMA COMPLEMENT M.S. WORD. ATM01220 SEZ ATM01230 CLE,INA ADD ANY CARRY. ATM01240 STA TEMP,I ATM01250 ISZ .TWC GET RETURN ADDRESS ATM01260 JMP .TWC,I AND GO BACK. ATM01270 END  R \ 22641-80004 A SC 0122 TRIPLE WORD ROUTINES              H0101 ASMB,R,T,L,B,C HED ROUTINE ATF - CONVERT ASCII STRING TO TRIPLE WORD ***** ******* * ROUTINE ATF * * FUNCTION TO CONVERT AN ASCII NUMERIC CHARACTER * * STRING TO TRIPLE WORD INTEGER. THE STRING FORMAT * * WILL BE UP TO AN ALLOWABLE MAXIMUM OF 15 * * CHARACTERS, TERMINATED BY A SPACE OR CR. * * THE ERROR FLAG IS SET AS FOLLOWS :- * * =1 MORE THAN 15 DIGITS OR * * NON-NUMERIC CHARACTERS. * * =0 NO ERRORS * * * * PARAMETER ADDRESSES - * * 1. CHARACTER STRING * * 2. CHARACTE INDICATOR = 0 FIRST DIGIT IN MOST * * SIGNIFICANT HALF OF FIRST WORD * * = 1 FIRST DIGIT IN LEAST * * SIGNIFICANT HALF OF FIRST WORD * * 3. TRIPLE-WORD INTEGER RESULT . * * 4. ERROR FLAG * * * * TIMING IS 62 + 729 PER CHARACTER. * * CORE USAGE IS 155 * ***** ******* NAM ATF,7 EXT ATM TRIPLE WORD MULTIPLY ROUTINE EXT ATA TRIPLE WORD ADD ROUTINE ENT ATF EXT .ENTR I100 DEC 0,0,100 IEA NOP FLAG FOR ROUTINE ATM AND ATA . IRES BSS 3 RESULT FOR ROUTINE ATM . ITEN DEC 10 INTEG DEC 0,0,0 CONVERTED INTEGER. ICHAR NOP CHARACTER COUNT. IUL1 NOP CHARACTER INDICATOR . .IAD NOP SOURCE DATA ADDRESS . .IUL NOP CHARACTER INDICATOR ADDRESS. .IAR NOP RESULT DATA ADDRESS .IE NOP ERROR FLAG ADDRESS ATF NOP JSB .ENTR TRANSFER PARAMETER ADDRESSES . DEF .IAD CLB STB INTEG ZEROIZE CONVERTED INTEGER FIELD STB INTEG+1 LDA .IAR STORE STA .IARA RESULT ADDRESS. STB .IARA,I ZEROISE ISZ .IARA TRIPLE WORD STB .IARA,I RESULT ISZ .IARA FIELD . STB .IARA,I STB .IE,I CLEAR ERROR FLAG. LDA =D-16 SET CHARACTER STA ICHAR COUNT . LDA .IUL,I STORE CPA =D0 ENSURE THAT IUL HAS A JMP ATFA0 VALID VALUE CPA =D1 JMP ATFA0 LDA =D1 ATFA0 STA IUL1 STA IUL1 CHARACTER INDICATOR . ATFA LDA .IAR STORE RESULT STA .IARA ADDRESS. STA .IARD LDA .IAD,I LOAD NEXT SOURCE WORD . LDB IUL1 CHECK IF CHARACTER INDICATOR SZB ZERO. JMP ATFB AND =B177400 YES SO CHARACTER IS LH JUSTIFIED ALF,ALF ZEROISE RH HALF AND SHIFT TO RIGHT . JMP ATFC * ATFB AND =B377 CHARACTER RH JUSTIFIED SO * ZEROISE L.H.S. ATFC CPA =B000015 TERMINATE SCAN OF CHARACTER STRING JMP ATFE IF CHARACTER IS A CR CPA =B000040 OR A SPACE . JMP ATFE LDB ICHAR CHECK IF 15 CHARACTERS HAVE BEEN INB,SZB,RSS WITHOUT A TERMINATING SPACE OR JMP ATFG CR . STB ICHAR ADA =D-58 CHECK IF CHARACTER SSA,RSS GREATER THAN 9 JMP ATFG ADA =D10 CHECK IF CHARACTER SSA LESS THAN 0 JMP ATFG STA INTEG+2 SAVE CONVERTED INTEGER JSB ATM MULTIPLY DEF *+5 RESULT .IARA NOP BY 10 DEF ITEN DEF IRES DEF IEA LDA IEA SZA JMP ATFG LDA IRES MOVE STA .IARA,I THREE-WORD LDA IRES+1 PRODUCT ISZ .IARA INTO FINAL STA .IARA,I RESULT LDA IRES+2 ISZ .IARA STA .IARA,I JSB ATA ADD DEF *+4 .IARD NOP DEF INTEG INTEGER INTO DEF IEA FINAL RESULT FIELD LDA IEA  CHECK FOR SZA ERROR JMP ATFG * ATFD LDA IUL1 CHECK CHARACTER INDICATOR SZA ISZ .IAD INDICATOR NON-ZERO SO INCREMENT SOURCE ADDRESS XOR =B1 SWITCH IUL INDICATOR STA IUL1 CHARACTER INDICATOR JMP ATFA REPEAT FOR NEXT CHARACTER * ATFE JMP ATF,I * * ATFG ISZ .IE,I SET ERROR FLAG JMP ATF,I THEN RETURN. END ATF NJ S[ 22641-80005 A SC 0122 TRIPLE WORD ROUTINES              H0101 ASMB,R,T,L,B,C HED ROUTINE ATD - DIVIDE TRIPLE WORD ***** ******* * ROUTINE ATD * * FUNCTION TO DIVIDE A TRIPLE WORD INTEGER NUMBER * * BY A SINGLE WORD INTEGER * * PARAMETERS 1. TRIPLE WORD INTEGER DIVIDEND * * 2. SINGLE WORD INTEGER DIVISOR * * 3. TRIPLE WORD INTEGER QUOTIENT * * 4. SINGLE WORD REMAINDER * * (SET TO B100000 ON OVERFLOW * * TIMING IS 260 AVERAGE * CORE USAGE IS 144 ***** ******* NAM ATD,7 ENT ATD EXT .TWC COMPL NOP FLAG INDICATING SIGN OF RESULT SDATA BSS 3 .IAD BSS 3 TRIPLE WORD INTEGER ADDRESSES. .INT NOP SINGLE WORD INTEGER ADDRESS .IAR BSS 3 TRIPLE WORD RESULT ADDRESS .IE NOP REMAINDER AND OVERFLOW ADDRESS ATD NOP * * SET UP PARAMETER ADDRESSES * ISZ ATD LDA ATD,I GET TRIPLE WORD INT ADDRESS STA .IAD LDB 0,I STB SDATA INA STA .IAD+1 LDB 0,I STB SDATA+1 INA STA .IAD+2 LDB 0,I STB SDATA+2 ISZ ATD LDA ATD,I GET SINGLE WORD INT ADDRESS LDA 0,I STA .INT ISZ ATD LDA ATD,I GET TRIPLE WORD RESULT ADDRESS STA .IAR INA STA .IAR+1 INA STA .IAR+2 ISZ ATD LDA ATD,I GET REMAINDER FLAG STA .IE ISZ ATD GET RETURN ADDRESS * * MAIN PROGRAM FLOW .1. INITIALIZATIONS * CLA CLEAR A REGISTER, COMPL, STA COMPL AND ERROR FLAG. STA .IE,I * * MAIN ALGORITHM * CPA .INT TEST FOR ZERO DIVISOR RSS JMP ATD01 **NOT ZERO** ATD1 LDB =B100000 **ZERO** STB .IE,I SET BIT 15 IN IE JMP ATD05 EXIT ATD ATD01 LDB .IAD,I TEST FOR NEGATIVE DIVIDEND SSB,RSS JMP ATD03 LOOP ROUND IF POSITIVE DIVIDEND ISZ COMPL SET COMPL TO 1 TO IND SIGN JSB .TWC CALL 3-WORD 2'S COMPLEMENTER. DEF ATD03 DEF SDATA ATD03 LDB .INT TEST FOR NEGATIVE DIVISOR SSB,RSS JMP ATDA4 LOOP ROND IF POSITIVE DIVISOR CMB,INB TWO'S COMPL OF DIVISOR STB .INT LDA COMPL REVERSE THE COMPL FLAG XOR =B1 I.E. 1 TO 0 , 0 TO 1 STA COMPL * * DIVIDE THE MOST SIGN WORD * ATDA4 CPB =D1 RSS CHECK FOR UNARY DIVIDEND - THIS JMP ATDB4 IS A QUICK EXIT. LDA SDATA STA .IAR,I LDA SDATA+1 STA .IAR+1,I LDA SDATA+2 STA .IAR+2,I JMP ATDC4 ATDB4 CLB NON-UNARY DIVIDEND LDA SDATA DIV .INT DIVIDE M.S. WORD * * PLACE QUOTIENT IN MSW RESULT. * PLACE REMAINDER IN B REGISTER * STA .IAR,I STORE QUOTIENT CLO LDA SDATA+1 DIV .INT DIVIDE THIS COMBINATION * * STA .IAR+1,I STORE QUOTIENT IN WORD2 OF RESULT LDA SDATA+2 (THIRD WORD OF DIVIDEND) DIV .INT * * STA .IAR+2,I STORE QUOTIENT STB .IE,I SAVE THE REMAINDER * * COMPLEMENT RESULT IF NECESSARY * ATDC4 CLA CPA COMPL JMP ATD05 FLAG NOT SET LDA .IAR FLAG SET-COMPLEMENT STA ATD04 SET UP PARAMETER JSB .TWC (NOTE .TWC DOES NOT CHANGE DEF ATD05 THE B REGISTER) ATD04 NOP ATD05 JMP ATD,I EXIT ROUTINE END ATD ASMB,R,T,L,B,C HED ROUTINE ATM - TRIPLE LENGTH MULTIPLY * * THE FUNCTION OF THIS ROUTINE IS TO MULTIPLY A * * TRIPLE WORD INTEGER BY A SINGLE WORD INTEGER * * NUMBER. * * THERE ARE 4 PARAMETERS TO THIS ROUTINE :- * * (1) TRIPLE WORD INTEGER ADDRESS * * k 2 SINGIPLE WORD INTEGER ADDRESS * * (3) TRIPLE WORD RESULT ADDRESS * * (4) ERROR INDICATOR - * * 0 FOR NO OVERFLOW * * B100000 FOR OVERFLOW. * * * * TIMING IS 553 AVERAGE * CORE USAGE IS 256 ********** ***** ***** ********** NAM ATM,7 ENT ATM EXT ATA EXT .TWC OVIND OCT 100000 OVERFLOW INDICATOR .INDX DEF SDATA .SDTA NOP TEMP BSS 2 TEMP1 BSS 3 RESULT ADDRESS SDATA BSS 3 WORKING AREA FOR TRIPLE LENGTH INTEGER. A EQU 0 SLINT NOP SINGLE LENGTH INTEGER. WRK BSS 5 WORK AREA TO USE AS LOOP COUNT. ATM NOP LDA .INDX STA .SDTA CLA STA WRK STA WRK+1 STA WRK+2 LDA =D-3 ISZ ATM ADDRESS OF THE TRIPLE WORD INT. LDB ATM,I STB TEMP ATM01 LDB TEMP,I STB .SDTA,I ISZ TEMP ISZ .SDTA ISZ 0 INCREMENT A REGISTER. JMP ATM01 RETURN FOR NEXT WORD. ISZ ATM ADDRESS THE SINGLE WORD INTEGER. LDA ATM,I PICK UP THE INTEGER AND STORE LDA 0,I STA SLINT IN WORK AREA. LDB SDATA GET M.S. WORD OF TRIPLE INTEGER. CLE,SSA USING E REGISTER AS A FLAG FIND CME IF EITHER OR BOTH INTEGERS SSB ARE NEGATIVE AND HENCE THE CME SIGN OF THE RESULT. CLB,SEZ CMB SET B TO -1. STB WRK -1 INDICATES -VE RESULT,ZERO +VE SSA IF SINGLE LENGTH INTEGER IS -VE CMA,CLE,INA THEN FORM 2'S COMPLEMENT. STA SLINT LDB SDATA GET M.S. WORD OF TRIPLE INTEGER SSB,RSS TO SEE IF ITS NEGATIVE. JMP ATM02 TRIPLE IS +VE, SO PROCESS. JSB .TWC  CALL ROUTINE TO FORM 2'S COMPL. DEF *+2 DEF SDATA ATM02 ISZ ATM LDA ATM,I STA TEMP1 INA STA TEMP1+1 INA STA TEMP1+2 LDA SDATA+2 GET L.S. WORD OF TRIPLE AND JSB AMPY STA TEMP1+2,I STORE L.S. PART OF RESULT LDA SDATA+1 GET 2ND WORD OF INTEGER. STB WRK+3 STORE M.S. PART OF RESULT. JSB AMPY STA SDATA+2 STORE THE RESULT OF THE MULTIPLY STB SDATA+1 IN SDATA, STORE M.S. WORD OF CLA INTEGER AND CALL ATA TO ADD LDB SDATA THE CARRY FROM PREVIOUS STB TEMP1+1,I MULTIPLY STA SDATA SDATA WILL HOLD RESULT OF THE JSB ATA ADDITION. DEF *+4 DEF SDATA DEF WRK+1 DEF WRK+4 LDB SDATA+2 GET L.S. WORD OF RESULT AND PUT LDA TEMP1+1,I IT IN OUTPUT BUFFER STB TEMP1+1,I LDB SDATA+1 MOVE THE CARRY DOWN THE WORK STB SDATA+2 AREA TO FORM A TRIPLE WORD LDB SDATA INTEGER READY TO BE ADDED TO STB SDATA+1 RESULT OF NEXT MULTIPLY. CLB STB SDATA STB WRK+1 JSB AMPY STA WRK+3 STB WRK+2 JSB ATA DEF *+4 DEF SDATA DEF WRK+1 DEF WRK+4 LDB SDATA+2 STB TEMP1,I STORE L.S. PART OF RESULT LDB SDATA+1 TEST TO SEE IF THERE HAS BEEN SZB JMP ATM12 OVERFLOW LDB SDATA SZB JMP ATM12 LDB SDATA+2 SSB SKIP ON B POSITIVE JMP ATM12 JMP ATM25 ATM12 ISZ ATM ADDRESS OVERFLOW INDICATOR LDA OVIND AND SET UP THE VALUE. LDB ATM,I STA 1,I JMP ATM04 ATM25 LDB WRK GET SIGN INDICATOR SSB,RSS TEST IF RESULT IS +VE OR -VE. JMP ATM03 +VE SO GO TO END OF ROUTINE. LDA ATM,I GET ADDRESS OF RESULT STA ATM1 STORE ITS ADDRESS IN PAR. FIELD JSB .TWC CALL TWC TO FORM 2`'S COMPLEMENT DEF *+2 OF THE RESULT ATM1 NOP ATM03 ISZ ATM ADDRESS THE OVERFLOW INDICATOR CLA AND SET IT TO ZERO LDB ATM,I STA 1,I ATM04 ISZ ATM GET THE RETURN ADDRESS OF JMP ATM,I CALLING ROUTINE. AMPY NOP SSA,RSS JMP AMPY1 IF MULTIPLICAND IS NEGATIVE AND =B77777 TAKE OUT BIT 15 MPY SLINT AND SPLIT THE MULTIPLICATION STB TEMP STA TEMP+1 LDB SLINT CLA ASR 1 ADB TEMP CLE ADA TEMP+1 SEZ INB JMP AMPY,I AMPY1 MPY SLINT JMP AMPY,I END ATM k T ^ 22641-80006 A SC 0122 TRIPLE WORD ROUTINES              H0101 ASMB,R,T,L,B,C HED ROUTINE ATA - ADD TRIPLE WORDS NAM ATA,7 * * FUNCTION * ADD TRIPLE WORD INTEGERS - THE RESULT * IS HELD IN FIRST TRIPLE WORD INTEGER LOCATIONS * * PARAMETERS * IA1 TRIPLE WORD INTEGER 1 * IA2 TRIPLE WORD INTEGER 2 * IE RESULT FIELD * TIMING IS 97 * CORE USAGE IS 76 * ENT ATA .IA1 NOP X1 X1 NOP Y1 Y1 NOP Z1 Z1 .IA2 NOP X2 X2 NOP Y2 Y2 NOP Z2 Z2 .IE NOP M3 OCT 177775 MINUS 3 MINUS 3 A EQU 0 M2 OCT 177775 MINUS 2 MINUS 2 ATA NOP LDA ATA INA LDB A,I ADDRESS. GET AT1 ADDRESSES AND STB .IA1 PUT IN LOCAL VARIABLES. INB STB .IA1+1 INB STB .IA1+2 INA LDB A,I GET IA2 ADDRESSES. STB .IA2 INB STB .IA2+1 INB STB .IA2+2 INA LDB A,I GET IE ADDRESS. STB .IE INA GET CORRECT RETURN STA ATA ADDRESS CLA CLEAR RESULT FLAG (IE) STA .IE,I CLE CLO CLEAR OVERFLOW LDA .IA1,I GET FIRST WORD OF FIRST INTEGER. ADA .IA2,I ADD FIRST WORD OF 2CND INTEGER. SOS (X1+X2) JMP ATA01 NO OVERFLOW. ISZ .IE,I INCREMENT IE JMP ATA,I (OVERFLOW) ATA01 CLE LDB .IA1+2,I ADD THIRD WORDS OF THE INTEGERS. ADB .IA2+2,I STB .IA1+2,I STORE Z1+Z2 SEZ,CLE,RSS JMP ATA02 LDB .IA1+1,I ADD THE 2CND WORDS OF THE TWO ADB .IA2+1,I INTEGERS PLUS A CARRY. INB STB .IA1+1,I STORE Y1+Y2 JMP ATA03 ATA02 LDB .IA1+1,I ADB .IA2+1,I ADD THE WORDS IN THE CASE THERE STB .IA1+1,I IS NO CARRY(STORE VALUE Y1+Y2) ATA03 SEZ,CLE,RSS JMP ATA04 (NO CARRY)  CLO INA INCREMENT A REGISTER (X1+X2+1) SOS JMP ATA04 OVERFLOW NOT SET ISZ .IE,I OVERFLOW SET - IE SET TO 1 JMP ATA,I (ERROR EXIT) ATA04 STA .IA1,I STORE VALUE IN FIRST WORD. JMP ATA,I END ATA ASMB,R,T,L,B,C HED ROUTINE ATS - SUBTRACT TRIPLE WORDS ***** ******* * ROUTINE ATS * * FUNCTION - SUBTRACT TRIPLE WORD INTEGERS * * PARAMETERS- ADDRESSES OF * * 1. 1ST OPERAND AND RESULT * * 2. 2ND OPERAND * * 3. ERROR FLAG * * ROUTINE CALLED ATA TRIPLE WORD ADD * * TIMING IS 140 + .ENTR AVERAGE * CORE USAGE IS 53 ***** ******* NAM ATS,7 EXT .ENTR EXT ATA TRIPLE ADD ROUTINE ENT ATS .IA2D NOP 2ND OPERAND ADDRESS IA2A BSS 3 TWO'S COMPLEMENT OF IA2 . .IA1 NOP 1ST OPERAND AND RESULT ADDRESS . .IA2 NOP 2ND OPERAND ADDRESS. .IE NOP ERROR FLAG ADDRESS . ATS NOP JSB .ENTR TRANSFER PARAMETER ADDRESSES . DEF .IA1 LDA .IA2 SAVE 2ND OPERAND ADDRESS . STA .IA2D ISZ .IA2 FETCH 2ND WORD LDB .IA2,I OF 2ND OPERAND . ISZ .IA2 FETCH 3RD WORD LDA .IA2,I OF 2ND OPERAND . CLE CMA,INA FORM 2'S COMPLEMENT STA IA2A+2 AND STORE 3RD WORD. CMB FORM 1'S COMPLEMENT OF 2ND WORD . SEZ,CLE IF CARRY SEET INB INCREMENT 2ND WORD STB IA2A+1 AND STORE 2ND WORD. LDB .IA2D,I FETCH 1ST WORD CLO AND CMB FORM 1'S COMPLEMENT SEZ AND INB ADD 1 IF CARRY AGAIN SET . SOC CHECK FOR OVERFLLLOW . JMP ATSB STB IA2A STOR E 1ST WORD OF 2ND OPERAND . LDA .IA1 MOVE 1ST OPERAND ADDRESS. STA .IA1A LDA .IE MOVE ERROR FLAG ADDRESS . STA .IEA JSB ATA CALL TRIPE ADD ROUTINE . DEF *+4 .IA1A NOP DEF IA2A .IEA NOP JMP ATS,I RETURN. ATSB CLA,INA SET FLAG TO STA .IE,I JMP ATS,I END ATS { U] 22642-80001 1504 SC 0122 LANGUAGE PARSING              H0101 2ay Ay 1)A)Iq))8y 1)Ax xyA!Ayy Ax xy 1)AA)))y)) PROGRAM PARSE C C THIS PROGRAM READS A GRAMMAR, EXPRESSED IN PRODUCTION C NOTATION, THEN READS ONE OR MORE STRINGS OF 1-60 C CHARACTERS, TESTING EACH STRING TO DETERMINE IF IT IS C IN THE LANGUAGE GENERATED BY THE GRAMMAR. IF IT IS, C A SYNTAX TREE IS PRODUCED. C C C VARIABLE MEANING OR USE C -------- -------------- C C I POINTER TO THE PRESENT ALTERNATIVE. C IBL A BLANK. C IC,ICP CHARACTER POINTERS. C IDBUG MODE INDICATOR. A TRACE IS GIVEN WHEN C IDBUG IS NOT ZERO. C IDLR A DOLLAR SIGN. C IG THE CURRENT GOAL. C IMRK A ONE-DIMENSIONAL MARK BLOCK USED IN THE C TREE CLEANUP. C IN THE READ INPUT UNIT. C INV THE PRESENT ENVIRONMENT. C IOUT THE WRITE OUTPUT UNIT. C IROOT A POINTER TO THE ROOT OF THE SYNTAX TREE. C IRP THE ARRAY OF RIGHT PARTS IN THE DESCRIPTION C OF THE GRAMMAR. C IS AN ARRAY USED FOR INTERMEDIATE STORAGE, C ESPECIALLY IN THE CREATION OF A NEW C NODE FOR THE SYNTAX TREE. C ISLSH THE SYMBOL / . C IST THE INPUT STRING. C ISTK THE ENVIRONMENT STACK. C ITERM THE LAST TERMINAL SYMBOL IN THE FIRST C PRODUCTION. C ITMP POINTER TO THE TOP OF THE TREE. C ITOP POINTER TO THE LAST ENTRY IN THE STACK. C ITREE THE SYNTAX TREE. C ITRLN THE MAXIMUM NUMBER OF NODES PERMITTED C IN THE SYNTAX TREE. C ITRTP POINTER TO THE TOP OF THE TREE. C ITRWD THE NUMBER OF ENTRIES WHICH REPRESENT C ONE NODE OF THE SYNTAX TREE. C IX USED TO FILL THE FATHER FIELD IN A NEW C NODE OF THE SYNTAX TREE. C IXTR THE SYNTAX TREE EXPRESSED AS A C ONE-DIMENSIONAL ARRAY. H9C J POINTER TO THE CURRENT RIGHT PART ENTRY C UNDER CONSIDERATION. C K A COUNTER USED FOR VARIOUS PURPOSES C THROUGHOUT THE PROGRAM. C L AN ARRAY OF THE LENGTHS OF RIGHT PARTS C IN THE DESCRIPTION OF THE GRAMMAR. C LNTH THE NUMBER OF ENTRIES IN THE ENVIRONMENT C (THE DIMENSION OF INV). SPECIFIES HOW C MUCH SHOULD BE STACKED OR UNSTACKED AT C A GIVEN TIME. C LORP THE MAXIMUM NUMBER OF RIGHT PARTS IN ANY C INPUT PRODUCTION. C LP AN ARRAY OF LEFT PARTS IN THE DESCRIPTION C OF THE GRAMMAR. C MLN THE LENGTH OF THE MARK BLOCK, IMRK. C MRK AN ARRAY USED IN THE TREE CLEANUP. C THE TW0-DIMENSIONAL FORM OF IMRK. C NPRDS THE NUMBER OF PRODUCTIONS IN THE GRAMMAR. C THIS INCLUDES THE TERMINATING NULL C PRODUCTION. C NRP THE NUMERICAL REPRESENTATION OF IRP. C NTRLN THE LENGTH OF IXTR. C C C C METHOD. C C THIS PROGRAM USES THE METHOD OF TOP-DOWN SYNTAX C ANALYSIS TO ATTEMPT TO BUILD A SYNTAX TREE FOR THE C INPUT STRING. DESCRIPTIONS OF THIS METHOD MAY BE C FOUND IN THE PAPER BY CHEATHAM AND SATTLEY AND THE C BOOK BY KELLER AND WRIGHT. SOME OF THE PROGRAMMING C TECHNIQUES CAN BE FOUND IN BARRON'S BOOK. C C C INPUT. C C THE FIRST INPUT STATEMENT MUST BE A $ / IN A 3A1 C FORMAT TO SATISFY THE PROGRAM LITERAL CONSTANT C REQUIREMENTS. C C INPUT TO THIS PROGRAM IS SOME GRAMMAR, G, FOLLOWED C BY ONE OR MORE STRINGS WHICH WILL BE TESTED TO C DETERMINE WHETHER OR NOT THEY ARE IN THE LANGUAGE C L(G). C C THERE IS ONE INPUT STATEMENT FOR EACH PRODUCTION. C COLUMN ONE CONTAINS THE NONTERMINAL SYMBOL WHICH C IS THE LEFT PART OF THE PRODUCTION. COLUMN FIVE C CONTAINS THE LENGTH OF THE RIGHT PART OF THE C PRODUCTION. COLUMNS 7-12 CONTAIN THE RIGHT PART C OF THE PRODUCTION IN A 5A1 FORMAT. COLUMNS 15-24 C CONTAIN THE NUMERICAL REPRESENTATION OF THE RIGHT C PART IN A 5I2 FORMAT. THE LAST PRODUCTION IS A C NULL PRODUCTION FOR LATER TESTING PURPOSES. C C A STATEMENT PRECEDING THE GRAMMAR IS REQUIRED. C IT CONTAINS THE NUMBER OF PRODUCTIONS IN THE C GRAMMAR IN COLUMNS 1-2. THIS STATEMENT IS ALSO C USED TO REQUEST A PROGRAM TRACE. A TRACE IS C REQUESTED BY PLACING A 1 IN COLUMN 21. C C AN EXAMPLE OF THE INPUT FOR ONE TEST CASE FOLLOWS: C C COLUMNS 11111111112222222222333333333344444444445 C 12345678901234567890123456789012345678901234567890 C C $ / C 8 0 C Q 2 E; 0200 C E 3 T+E 040002 C E 1 T 04 C T 3 P*T 060004 C T 1 P 06 C P 3 (E) 000200 C P 1 V 00 C ? C V; C V+V; C V+V+V; C V+V+V+V+V+V+V+V+V+V; C V*(V+V)*(V+V); C (V+V)*(V+V)*V+(V*V+V); C (V+V)*V+V)*V+(V*V+V); C (V); C ((V)); C (((V))); C ((((V)))); C (((((V))))); C / C C STATEMENT ONE INDICATES THAT THERE ARE EIGHT C PRODUCTIONS IN THE GRAMMAR WHICH FOLLOWS. C STATEMENTS 2-8 DESCRIBE THE GRAMMAR. STATEMENT 9 C IS THE REQUIRED NULL PRODUCTION. STATEMENTS 10-16 C ARE THE STRINGS TO BE EXAMINED. STATEMENT 17 C (/ IN COLUMN 1) INDICATES THAT THERE ARE NO MORE C INPUT STRINGS. IF A TRACE WAS DESIRED A ONE WOULD C HAVE BEEN PLACED IN COLUMN 21 OF STATEMENT ONE. C EACH INPUT STRING IS LIMITED TO 60 CHARACTERS, C MUST START IN COLUMN ONE AND MUST NOT CONTAIN C EMBEDDED BLANKS. C C OUTPUT. C C THE FIRST SECTION OF OUTPUT IN ANY RUN OF THIS C PROGRAM IS A COPY OF THE GRAMMAR, G, IN TABULAR C FORM. THERE ARE AT LEAST TWO LINES OF OUTPUT C FOR EACH INPUT STRING. THE FIRST OF THESE LINES C ISڤ A COPY OF THE INPUT STRING AND THE SECOND C INDICATES WHETHER OR NOT IT IS VALID IN L(G). C IN ADDITION, A DESCRIPTION OF THE SYNTAX TREE C IS PRINTED FOR VALID STRINGS. C C TEST DATA AND (PARTIAL) VERIFICATION. C C THIS PROGRAM HAS BEEN TESTED WITH THE INPUT C DESCRIBED ABOVE AND FOUND TO BE WORKING. IT HAS C ALSO BEEN TESTED WITH THE DATA BELOW. C C IN THE ABOVE CASE THE P IN PARENTHESIS IS A C WORST CASE SEARCH. THE ADDITIONAL TIME REQUIRED C FOR THE SEARCH IS PROPORTIONAL TO N! WHERE N IS C THE NUMBER OF PARENTHESIS PAIRS. THE TIME C REQUIRED FOR THE WORST CASE SEARCH CAN BE DECRESED C SIGNIFICANTLY BY REWRITING THE GRAMMAR. THE C GRAMMAR REMAINS IN THIS FORM FOR DEMONSTRATION C PURPOSES. C C TO PERFORM A TRACE, THE FOLLOWING MAY BE USED: C C $ / C 8 1 C Q 2 E 0200 C E 3 T+E 040002 C E 1 T 04 C T 3 P*T 060004 C T 1 P 06 C P 3 (E) 000200 C P 1 V 00 C ? C V+V C / C C C REFERENCES. C C CHEATHAM, T.E. AND SATTLEY, KIRK. SYNTAX DIRECTED C COMPILING. PROCEEDINGS, 1964 SJCC. C BARRON, D.W. RECURSIVE TECHNIQUES IN PROGRAMMING. C NEW YORK. AMERICAN ELSEVIER PUBLISHING CO. C1968. C KELLER, ROY F. AND WRIGHT, CHARLES T. ALGEBRAIC C LANGUAGES AND THEIR TRANSLATORS. NEW YORK. C HOLT RINEHART AND WINSTON. C1970. C GRIES, DAVID. COMPILER CONSTRUCTION FOR DIGITAL C COMPUTERS. JOHN WILEY AND SONS INC NEW YORK C1971. C LEE, JOHN A.N. COMPUTER SEMANTICS. VAN NOSTRAND C REINHOLD COMPANY NEW YORK C1972. C C C C C C BASIC FLOW CHART. C C --------- C \PARSE/ C \ / C \ / C 1 ------------- ----------------- C 1 1 IC <- ICP 1<-----1 I <- 1 C V ------u------- ----------------- C ------------- 1 ^ C / INITIALIZE \ 1 1 C / POINTERS \ 1 1 C \ AND / / ----------------- C \ COUNTERS / / 1 I <- NRP(I,J) 1 C ------------- / ----------------- C ..... 1 / ^ C . A .----->1<---------/ / \ 1 C ..... V / \ 1 C --------------- / \ NO ----------------- C 1 IG <- LP(I) 1-----> NRP(I,J)=0? ----->1 ISTK <= INV 1 C --------------- \ / ----------------- C \ / C \ / C 1 YES C 1 C V C ---------------- C 1 ICP <- ICP+1 1 C ---------------- C 1 C 1 C V C / \ C / \ C ..... YES / IST(CP) \ C . C .<----- = IRP(I,J)? C ..... \ / C \ / C \ / C 1 NO C 1 C V C ---------------- C 1 ICP <- ICP-1 1 C ---------------- C 1 C 1<------------------ C V 1 C ---------------- 1 C 1 I <- I-1 1 1 C x ---------------- 1 C 1 1 C 1 1 C V 1 C / \ 1 C / \ 1 C / \ NO --------------- C IG=LP(I)? ------>1 INV <= ISTK 1 C \ / --------------- C \ / C \ / C 1 YES C 1 C V C ------------- C 1 ICP <- IC 1 C ------------- C 1 C 1 C V C ------------- C 1 I <- 1 1 C ------------- C ..... 1 C . D .----->1 C ..... V C / \ C / \ C ..... NO / \ C . A .<----- J>L(I)? C ..... \ / C \ / C \ / C 1 YES C 1 C V C / \ C / \ C / \ YES ---------------- C I=1? ----->1 VALID STRING 1 C \ / ---------------- C \ / 1 C \ / 1 C 1 q NO V C 1 ........ C V . STOP . C --------------- ........ C 1 INV <= ISTK 1 C --------------- C ..... 1 C . C .----->1 C ..... V C ..... --------------- C . D .<-----1 I <- I+1 1 C ..... --------------- C C C NOTE THE FOLLOWING ON STACK UNDERFLOW: C C ------------------ ........ C 1 INVALID STRING 1--------->. STOP . C ------------------ ........ C C C C C EXECUTABLE STATEMENTS BEGIN HERE: C C C SET UP STORAGE FOR TABLES AND POINTERS. C DIMENSION IXTR(200), IMRK(120) COMMON IST(80), ISTK(250), ITREE(40,5), LP(40) COMMON L(40), IRP(40,5), NRP(40,5), INV(5) COMMON IS(3), ITOP, LNTH, NPRDS, MRK(40,3) EQUIVALENCE (IG,INV(1)), (I,INV(2)) EQUIVALENCE (J,INV(3)), (IC,INV(4)) EQUIVALENCE (ITMP,INV(5)) EQUIVALENCE (IMRK(1),MRK(1,1)) EQUIVALENCE (ITREE(1,1),IXTR(1)) C C CHANGE THE FOLLOWING 2 STMTS FOR I/O. C IN = 5 IOUT = 6 C C IDBUG = 1, YIELDS A TRACE. C IDBUG = 0 C LORP = 3 IROOT = 2 ITRLN = 40 C C READ IN LITERALS. C READ (IN,117) IDLR, IBL, ISLSH C C SET UP DESCRIPTIVE CONSTANTS. C LNTH = 5 ITRWD = LORP + 2 NTRLN = ITRLN * ITRWD MLN = ITRLN * LORP C C SPACE DOWN FROM THE CONTROL RECORD. C WRITE (IOUT,116) C C READ THE TABLE WHICH DEFINES THE GRAMMAR. C READ (IN,100) NPRDS, IDBUG READ (IN,101) (LP(K),L(K),(IRP(K,M),M=1,LORP), 1 (NRP(K,M),M=1,LORP),K=1,NPRDS) C C ECHO CHECK. C WRITE (IOUT,107) WRITE (IOUT,105) (LP(K),L(K),(IRP(K,M),M=1,LORP), 1 (NRP(K,M),M=1,LORP),K=1,NPRDS) C C FIND THE LAST TERMINAL SYMBOL IN THE FIRST PRODUCTION. C J = 1 I = L(1) DO 90 K = 1,I IF (NRP(1,K)) 90,25,90 25 J = K 90 CONTINUE ITERM = IRP(1,J) C C GET THE STRING IN QUESTION. C 21 READ (IN,102) (IST(K1),K1=1,60) C C CHECK FOR TERMINATION. C IF (IST(1) - ISLSH) 22,23,22 C C FIND THE LAST SYMBOL IN THE INPUT STRING. C 22 DO 240 I = 1,60 J = I IF (IST(I) - ITERM) 240,36,240 240 CONTINUE C C ECHO CHECK. C 36 WRITE (IOUT,106) (IST(K),K=1,J) C C INITIALIZATION. C I = 1 J = 1 IC = 0 ICP = 0 ITRTP = 1 ITOP = 0 IG = IBL DO 10 K = 1,NTRLN 10 IXTR(K) = IDLR C C GET A NEW GOAL. C 1 IF (IDBUG) 99,98,99 99 WRITE (IOUT,108) IG,LP(I) 98 IG = LP(I) DO 20 K = 1,LORP IS(K) = IDLR IF (IRP(I,K) - IBL) 2,20,2 2 IS(K) = IRP(I,K) 20 CONTINUE C C SET UP A NEW NODE IN THE TREE STRUCTURE. C IF (IDBUG) 89,88,89 89 WRITE (IOUT,113) ITRTP,(ITREE(ITRTP,M),M=1,ITRWD) 88 IX = ITREE(ITRTP,1) ITRTP = ITRTP + 1 ITREE(ITRTP,1) = IG ITREE(ITRTP,2) = IX DO 30 K = 1,3 KX = K + 2 30 ITREE(ITRTP,KX) = IS(K) IF (IDBUG) 87,86,87 87 WRITE (IOUT,113) ITRTP,(ITREE(ITRTP,M),M=1,ITRWD) C C CHECK FOR A TERMINAL SYMBOL. C 86 CONTINUE 3 IF (NRP(I,J)) 4,5,4 C C IT WAS A NONTERMINAL SO STACK THE ENVIRONMENT C AND SET A NEW GOAL. C 4 IF (IDBUG) 97,96,97 97 WRITE (IOUT,109) INV 96 DO 40 K = 1,LNTH KX = ITOP + K 40 ISTK(KX) = INV(K) ITOP = ITOP + LNTH C C SET A NEW GOAL. C I = NRP(I,J) J = 1 IC = ICP ITMP = ITRTP GO TO 1 C C IT WAS A TERMINAL SO CHECK THE INPUT STRING. C 5 ICP = ICP + 1 IF (IDBUG) 95,94,95 95 WRITE (IOUT,111) IST(ICP), IRP(I,J) (94 IF (IST(ICP) - IRP(I,J)) 6,7,6 C C CHARACTERS DO NOT MATCH SO BACK UP. C 6 ICP = ICP - 1 C C GET ANOTHER ALTERNATIVE. C 8 I = I + 1 C C PRUNE THE TREE. C ITRTP = ITRTP - 1 IF (IDBUG) 85,84,85 85 WRITE (IOUT,114) ITRTP C C HAVE ALL ALTERNATIVES BEEN EXHAUSTED? C 84 IF (IG - LP(I)) 9,11,9 C C YES. GET ANOTHER PRODUCTION. C C CHECK FOR UNDERFLOW. C 9 IF (ITOP - LNTH) 12,13,13 C C POP STUFF OUT OF THE STACK. C 13 ITOP = ITOP - LNTH DO 50 K = 1,LNTH KX = ITOP + K 50 INV(K) = ISTK(KX) GO TO 8 C C ALL ALTERNATIVES HAVE NOT BEEN EXHAUSTED. C PRUNE THE TREE. C 11 ITRTP = ITMP IF (IDBUG) 83,82,83 83 WRITE (IOUT,114) ITRTP 82 ICP = IC J = 1 C C MAKE A NEW TREE ENTRY. C IX = ITREE(ITRTP,1) ITRTP = ITRTP + 1 ITREE(ITRTP,1) = IG ITREE(ITRTP,2) = IX DO 80 K = 1,LORP KX = K + 2 ITREE(ITRTP,KX) = IDLR IF (IRP(I,K) - IBL) 24,80,24 24 ITREE(ITRTP,KX) = IRP(I,K) 80 CONTINUE C C END OF TREE UPDATE. C C GO TO CHECK IF WE HAVE A COMPLETE PRODUCTION. C C DO WE HAVE AN ENTIRE PRODUCTION? C 19 IF (J - L(I)) 3,3,15 C C YES. GO BACK AND CHECK THE PRECEDING LEVEL. C C FIRST, IS THIS THE DISTINGUISHED SYMBOL? C 15 IF (I - 1) 17,17,16 C C NO. CHECK FOR STACK UNDERFLOW AND POP ITEMS C OUT OF THE STACK. C 16 IF (ITOP - LNTH) 12,18,18 18 ITOP = ITOP - LNTH DO 60 K = 1,LNTH KX = ITOP + K 60 INV(K) = ISTK(KX) IF (IDBUG) 93,92,93 93 WRITE (IOUT,112) INV C C CHECK NEXT ITEM IN THIS PRODUCTION. C 92 CONTINUE 7 J = J + 1 GO TO 19 C C WE HAVE ENCOUNTERED AN INVALID INPUT STRING. C 12 WRITE (IOUT,104) WRITE (IOUT,116) GO TO 21 C C WRAP IT UP HERE FOR VALID STRING. C C CLEANUP THE TREE. C 17 IR1 = IROOT #!+ 1 C C INITIALIZE THE MARKERS. C DO 210 K = 1,MLN 210 IMRK(K) = 0 C C FORWARD SEARCH. C DO 220 I = IR1,ITRTP C C SEARCH BACK. C K = I - 1 35 IF (K - IROOT) 220,32,32 32 DO 230 J = 3,ITRWD C C HAVE WE FOUND THE SON? C J2 = J - 2 IF (MRK(K,J2)) 230,33,230 C C MAKE THE ACTUAL CHECK HERE. C 33 IF (IDBUG) 79,78,79 79 WRITE (IOUT,115) I,J,K WRITE (IOUT,118) (ITREE(I,M),M=1,ITRWD), 1 (ITREE(K,M),M=1,ITRWD) 78 IF (ITREE(I,1) - ITREE(K,J)) 230,34,230 34 J2 = J - 2 MRK(I,J2) = 1 ITREE(I,2) = ITREE(K,1) GO TO 220 230 CONTINUE K = K - 1 GO TO 35 C C END OF TREE CLEANUP. C 220 CONTINUE WRITE (IOUT,103) WRITE (IOUT,119) WRITE (IOUT,120) ((ITREE(K,M),M=1,ITRWD),K=IROOT,ITRTP) GO TO 21 C C END OF DATA. C 23 WRITE (IOUT,110) STOP C C C FORMAT BLOCK * * * * * * * * * * * * * * * * * * * * * * * * * * * C C FORMAT STATEMENTS PRECEDED BY A C WILL PROVIDE SUITABLE C TRACE DATA BY REPLACING THE NORMAL STATEMENT AND ALSO C REPLACE THE VARIABLE IN THE FORMAT WITH THE PROPER C VALUE. C 100 FORMAT (I2,18X,I1) C101 FORMAT (A1,2X,I2,1X,(LORP)A1,5X,(LORP)I2) 101 FORMAT (A1,2X,I2,1X,3A1,5X,3I2) 102 FORMAT (60A1) 103 FORMAT (" VALID INPUT STRING.") 104 FORMAT (" INVALID INPUT STRING.") C105 FORMAT (6X,A1,4X,I2,4X,(LORP)A1,3X,(LORP)(I2,1X)) 105 FORMAT (6X,A1,4X,I2,4X,3A1,3X,I2,1X,I2,1X,I2) 106 FORMAT (1X,60A1) 107 FORMAT (6X,"LP L RP",8X,"NRP") 108 FORMAT (" OLD GOAL WAS ",A1," NEW GOAL IS ",A1) 109 FORMAT (" ENVIRONMENT",2X,A1,6(2X,I4)) 110 FORMAT (" NORMAL JOB TERMINATION.") 111 FORMAT (" INPUT CHARACTER IS ",A1, 1 " CHARACTER NEEDED IS ",A1) 112 FORMAT (" JUST POPPED. NEW ENVIRONMENT IS ",A1,6(2X,I4)) C113 FORMAT (" ENTRY ",I4," OF THE TREE IS ",(ITRWD)A1) 113 FORMAT (" ENTRY ",I4," OF THE TREEXB@< IS ",5A1) 114 FORMAT (" THE TREE WAS JUST PRUNED. THE TREE TOP IS NOW ", 1 I4) 115 FORMAT (" POINTERS AND LAST TREE ENTRY ",3I5) 116 FORMAT (" ") 117 FORMAT (3A1) 118 FORMAT (1X,5A1) 119 FORMAT (15X," TREE") 120 FORMAT (16X,5A1) END END$ B Vf 22644-80001 1532 SC 0122 RTE QUICK CORE SORT (QSORT)             H0101 ASMB,R,B,L,C NAM QSORT,7 ENT QSORT SUP * * QSORT PROVIDES A QUICKSORT IN CORE. * SORTS MAX OF 8191 ELEMENTS * * LINKAGE: * JSB QSORT * DEF RUNAD ADDR OF RUN IN CORE * DEF LRECL LEN OF RECORD * DEF RECNO # RECORDS IN RUN * DEF SRTOF OFFSET OF SORT FLD * DEF SRTLN LEN OF SORT FIELD * DEC 1 IF WANT 1ST BYTE OF SORTF IGNORED * (DEC 0 OTHERWISE) * (RETURN) * * * RECORDS R(1) THROUGH R(N) ARE REARRANGED IN PLACE. * AFTER SORTING, THEIR KEYS WILL BE IN ORDER, * K(1) LE ... LE K(N). THE SORT PROCEEDS BY MOVING * R(1) TO ITS FINAL POSITION, IN THE PROCESS SUBDIVIDING * THE FILE INTO 2 PARTITIONS. THE SAME TECHNIQUE * IS THEN APPLIED TO EACH OF THESE SUBFILES. * * THE SORT REQUIRES AN AUXILIARY STACK (LAD AND UAD) * OF LOG2 N ENTRIES FOR TEMPORARY STORAGE OF * SUBFILE LOWER AND UPPER BOUNDARY POINTERS. * HED QSORT INITIALIZATION QSORT NOP LDB PARMS GTPRM LDA QSORT,I STORE PARAMETERS FROM CALLING PG STA 1,I ISZ QSORT INB ISZ MIN6 JMP GTPRM LDA =D-6 STA MIN6 LDA LRECL,I CMA,INA STA MRCL1 NEG OF REC LEN STA MRCL2 LDA SRTLN,I CMA,INA STA MSTL1 NEG OF SORT FLD LEN STA MSTL2 SPC 3 Q1 LDA RECNO,I INITIALIZE STA R SET L=1 AND R= N JSB UPDAT (BOUNDARY POINTERS) STA RRECA CLA,INA STA M STA I1 STA L JSB UPDAT STA LRECA HED QSORT SORTING LOGIC Q2 THRU Q9 Q2 EQU * BEGIN NEW STAGE * PREPARE TO SORT THE SUBFILE R(L) TO R(R). LDA L IF LESS THAN 10 CMA,INA ELEMENTS IN THE SUBFILE ADA R GO TO Q8 CMA,INA TO PERFORM ADA =D10 STRAIGHT INSERTION SORT. SSA JMP Q2A R-L GT 10 LDA L CPA I1 RSS JMP ,Q8 LDB R CMB,INB ADA 1 SSA JMP Q2A JMP Q8 Q2A EQU * OTHERWISE SET I=L, J=R, LDA L TREC = RECORD AT MIDPOINT ADA R OF SUBFILE. ARS STA I2 JSB UPDAT STA I2REC LDA TRECA LDB I2REC JSB MOVE LDA L STA I JSB UPDAT STA IRECA LDA R STA J JSB UPDAT STA JRECA SKP Q3 EQU * COMPARE KEY(L) TO TKEY LDA LRECA (LOWER REC TO COMPARISON REC) LDB TRECA IF LOWER IS GREATER, JSB CLC EXCHANGE THE TWO RECORDS JMP Q4 VIA TEMPORARY STORAGE I2REC. JMP Q4 * LDA I2REC LDB LRECA JSB MOVE LDA LRECA LDB TRECA JSB MOVE LDA TRECA LDB I2REC JSB MOVE SPC 3 Q4 EQU * COMPARE K(R) TO TKEY LDA RRECA (UPPER REC TO COMPAREISON REC) LDB TRECA JSB CLC JMP RLESS JMP Q6 JMP Q6 * RLESS EQU * LDA I2REC IFF LESS THAN, LDB RRECA EXCHANGE THE TWO RECORDS JSB MOVE LDA RRECA LDB TRECA JSB MOVE LDA TRECA LDB I2REC JSB MOVE Q5 EQU * LDA LRECA AND COMPARE LOWER RECORD LDB TRECA TO COMPARISON RECORD. JSB CLC JMP Q6 JMP Q6 LDA I2REC IF LOWER IS GREATER, LDB LRECA EXCHAGE THE TWO. JSB MOVE LDA LRECA LDB TRECA JSB MOVE LDA TRECA LDB I2REC JSB MOVE SKP Q6 EQU * LDA J DECREMENT UPPER BOUNDARY ADA =D-1 STA J JSB UPDAT STA JRECA LDB TRECA COMPARE UPPER RECORD TO JSB CLC COMPARISON RECORD. JMP JLESS IF GREATER THAN, JMP JLESS REPEAT THE DECREMENT-COMPARE. JMP Q6 * INCREMENT LOWER BOUNDARU-Y. JLESS ISZ I LDA I JSB UPDAT STA IRECA COMPARE LOWER RECORD TO LDB TRECA COMPARISON RECORD. JSB CLC IF LESS THAN, REPEAT JMP JLESS INCREMENT-COMPARE. JMP Q7 ELSE GO TO Q7. SKP Q7 EQU * HAVE REACHED A POINT WHERE LDA I (1) AN EXCHANGE IS NECESSARY, OR CMA,INA (2) THE ORIGINAL RECORD HAS ADA J PARTITIONED THE FILE. SSA JMP YES7 LDA T2RCA IF THE LATTER, LDB JRECA PERFORM THE EXCHANGE JSB MOVE AND RETURN TO Q6. LDA JRECA LDB IRECA JSB MOVE LDA IRECA LDB T2RCA JSB MOVE JMP Q6 YES7 EQU * THE FILE HAS BEEN PARTITIONED LDA L SO THAT K(K) LE K(I) FOR SUBFILE CMA,INA R(L) ... R(K) ... R(I), AND ADA J K(I) LE K(K) FOR SUBFILE LDB I R(I) ... R(K) ... R(R). CMB,INB ADB R CMA,INA ADA 1 J-L LE R-I SSA,RSS JMP YES7B LDA L INSERT LOWER AND UPPER LDB LAD BOUNDARY POINTERS FOR THE ADB M LARGER SUBFILE ON TOP OF STACK STA 1,I LDA J LDB UAD ADB M STA 1,I LDA I AND RESET POINTERS STA L FOR SORTING OF THE OTHER SUBFILE JSB UPDAT STA LRECA NEX7 ISZ M JMP Q2 YES7B EQU * LDA I LDB LAD ADB M STA 1,I LDA R LDB UAD ADB M STA 1,I LDA J STA R JSB UPDAT STA RRECA JMP NEX7 SKP Q8 EQU * STRAIGHT INSERTION SORT ISZ L LDA L FOR L = L + 1 TO R, JSB UPDAT DO THE FOLLOWINT OPERATIONS. STA LRECA Q8LP1 EQU * LDA L CMA,INA ADA R SSA JMP Q9 LDA TRECA SET TREC = R(L), LDB LRECA JS(B MOVE LDA L I = L- 1, ADA =D-1 STA I JSB UPDAT STA IRECA LDB TRECA THEN SET R(I+1) = R(I) JSB CLC AND I = I+1 JMP NEXTI ZERO OR MORE TIMES JMP NEXTI UNTIL K(I) LE TKEY. MOVE2 LDA IRECA ADA LRECL,I LDB IRECA JSB MOVE LDA I ADA =D-1 STA I JSB UPDAT STA IRECA LDB TRECA JSB CLC JMP OK JMP OK JMP MOVE2 OK EQU * LDA IRECA ADA LRECL,I LDB TRECA JSB MOVE SPC 3 NEXTI EQU * ISZ L LDA L JSB UPDAT STA LRECA JMP Q8LP1 SKP Q9 EQU * TAKE OFF STACK LDA M IF STACK IS EMPTY, ADA =D-1 THEN SORTING IS FINISHED. STA M SZA,RSS JMP END SSA JMP END LDA LAD OTHERWISE REMOVE THE LAST ENTRY ADA M (L PRIME AND R PRIME) LDA 0,I STA L AND RESET L AND R ACCORDINGLY. JSB UPDAT STA LRECA LDA UAD ADA M LDA 0,I STA R JSB UPDAT STA RRECA JMP Q2 END JMP QSORT,I HED QSORT INTERNAL SUBROUTINES UPDAT NOP ADA =D-1 MPY LRECL,I ADA RUNAD JMP UPDAT,I SPC 3 MOVE NOP MOVE RECORD STA TOADD MOVE TO THIS ADDR STB FMADD MOVER LDA FMADD,I STA TOADD,I ISZ FMADD ISZ TOADD ISZ MRCL1 NEG OF RECROD LENGTH JMP MOVER LDA MRCL2 STA MRCL1 JMP MOVE,I SKP CLC NOP COMPARE KEYS A : B ADA SRTOF,I STA TOADD ADDR OF KEY A ADB SRTOF,I STB FMADD ADDR OF KEY B LDA NADA IGNORE 1ST BYTE? SZA,RSS JMP CLCSF NO - NORMAL PICKUP LDA TOADD,I AND =B377 LDB 0 LDA FMADD,I AND =B377 CMA,INA ADA 1 A - B JMP OFOKS CLCSF LDA FMADD,I CMA,INA ADA TOADD,I OFOKS EQU * SSA JMP RTN1 A LT B SZA JMP RTN3 A GT B ISZ TOADD ISZ FMADD ISZ MSTL1 SORT FLD LEN JMP CLCSF JMP RTN2 A EQ B RTN3 ISZ CLC RTN2 ISZ CLC RTN1 EQU * LDA MSTL2 STA MSTL1 JMP CLC,I HED QSORT CONSTANTS & VARIABLES PARMS DEF RUNAD RUNAD NOP LRECL NOP RECNO NOP SRTOF NOP SRTLN NOP NADA NOP SPC 3 MIN6 DEC -6 MIN14 DEC -14 D6 DEC 6 TRECA DEF REC REC BSS 64 T2RCA DEF T2RC T2RC BSS 64 MSTL1 NOP MSTL2 NOP MRCL1 NOP MRCL2 NOP TOADD NOP FMADD NOP LAD DEF * BSS 12 UAD DEF * BSS 12 I NOP IRECA NOP J NOP JRECA NOP R NOP RRECA NOP L NOP LRECA NOP I2 NOP I2REC NOP M NOP I1 NOP END ASMB,R,B,L,C NAM TESTQ,3 ENT TESTQ EXT EXEC,QSORT SUP TESTQ EQU * LDA 1,I STA IUNIT INB LDA 1,I STA OUNIT TREAD JSB EXEC READ INPOUT INTO ARRAY DEF *+5 DEF D1 DEF IUNIT BFAD DEF BUFFR DEF D40 LDA BFAD,I CPA =AEN END CARD JMP GOTIN LDA BFAD UPDATE INPUT ADDRESS ADA =D40 STA BFAD ISZ RECNT JMP TREAD GOTIN JSB QSORT DEF BUFFR DEF D40 DEF RECNT DEF D0 SORT OFFSET DEF D2 LENGTH DEC 0 FULL SORT JSB PRINT JSB QSORT DEF BUFFR DEF D40 LRECL DEF RECNT DEF D1 SORT OFFSET DEF D2 LENGTH DEC 1 SKIP 1ST BYTE JSB PRINT JSB EXEC DEF *+2 DEF D6 TERMINATE PGM SKP PRINT NOP LDA CCADD STA OUTBF LDA RECNT CMA,INA STA PRTCT PUTPT JSB EXEC DEF *+5 DEF D2 DEF OUNIT $" OUTBF DEF CC DEF D41 LDB OUTBF ADB =D40 STB OUTBF LDA =B40 STA 1,I ISZ PRTCT JMP PUTPT JMP PRINT,I RETURN CC ASC 1,1 BUFFR BSS 1041 PRTCT NOP RECNT NOP OUNIT NOP IUNIT NOP CCADD DEF CC D0 DEC 0 D1 DEC 1 D2 DEC 2 D6 DEC 6 D40 DEC 40 D41 DEC 41 END TESTQ 6$ W b 22644-80002 1532 SC 0122 RTE QUICK CORE SORT (QSORT)             H0101 001025 024002 003023 005021 022004 020006 007019 009017 018008 016010 014012 012014 011015 013013 015011 017009 019007 010016 008018 006020 004022 002024 021005 023003 025001 END { X^ 22645-80001 A SC 0122 2000E TSB PATCH UTILITY              H0101 #ASMB,A,B,L,C ORG 6000B HED 2000E TSB PATCH UTILITY REV. A (10/15/73) SUP * * START LDA PSLS READ IN POST SLEEP LOADR STA WORDL,I LDA APSL GET DISC ADDRESS OF IT LDB CLUT GET CORE ADDR FOR READ IN CCE ELB,RBR JSB DISCI,I DLD TITLE OUTPUT HEADR JSB TTYPE LDB REVC? LDA #REVC JSB TTYPE CLA JSB TTYPE LDA INBUF CPA YES IS THIS REV C JMP SETL LDA JCONF STA VJMP SET UP JMP FOR CNTRL C CONF LDA VLOCS NO,CONFIGURE APPROPRIATELY STA TEMP1 LDA N4 STA TEMP2 LDA N2 STA BLOC LDB LABEL STB TEMP LDA #SCL LDB DSCL HEADR JSB TTYPE OUTPUT THE HEADER ERRIN LDB TEMP LDA D8 JSB TTYPE CLA GET LABEL ADDR JSB TTYPE LDA IBUFA JSB OCTAL JMP ILINP NOT OCTAL LDB TEMP ADB D4 STB TEMP LDB TEMP1,I ISZ TEMP1 STA B,I ISZ BLOC NOP LDA BLOC SSA JMP NLABL SZA NEW HEADER? JMP NLABL NO LDA #LUTL YES LDB DLUTL JMP HEADR NLABL ISZ TEMP2 JMP ERRIN GO DO ANOTHER LABLE LDA LDRTT FINISHED WITH INPUT INA STA LDRT1 LDA COM3 CMA,INA STA COM3 START OF COM TABLE ADA COM6 CMA,INA STA CTLN COM TABLE LENGTH JMP SETL ILINP DLD OMSG ILLEGAL INPUT JSB TTYPE JMP ERRIN SETL LDA LDRTT,I GET DISC ADDR OF SYS SEG STA ASEG1 LDA LDRT1,I SYS SGE 2 DISC ADDR STA ASEG2 LDA LDRTK,I GET LOADER/UTILITY DISC ADDR STA ALUT LDA LDRLN,I GET LOADER / UTILITY LENGTH STA LLUT LDA JABRT  STA VJMP * RSTRT DLD PROM GIVE PROMPT JSB TTYPE AND CLA WAIT FOR REPLY JSB TTYPE LDA INBUF CHECK FIRST 2 CHARACTERS CLB SET B CPA SY =SY? JMP SYST YES, SET UP SYST INB NO, B=1 CPA SL =SL? JMP SLIB YES, SET UP SLIB INB NO, B=2 CPA LU =LU? JMP LUTY YES, SET UP LUTY INB NO, B=3 CPA SE =SE? JMP SEXT YES, SET UP SEXT DLD BADIN ERROR, INFORM OPERATOR JSB TTYPE JMP RSTRT * TITLE DEC 48 DEF *+1 OCT 06412,05012 CARRIAGE RETURN, LINE FEED, LINE FEED ASC 21, 2000E UTILITY ROUTINE (REV. A) OCT 5012 * PROM DEC 3 DEF *+1 OCT 6412,25040 CR-LF*-SPACE * BADIN DEC 22 DEF *+1 OCT 06412 CR-LF ASC 10,-ILLEGAL OPERATION YES ASC 1,YE #REVC DEC 26 REVC? DEF *+1 OCT 6412 ASC 12,IS THIS REV. C SOFTWARE? #SCL DEC 43 DSCL DEF *+1 OCT 6412 ASC 17,INPUT THE SYSTEM CORE LOC FOR EACH ASC 4, LABEL: #LUTL DEC 51 DLUTL DEF *+1 OCT 6412 ASC 19,INPUT THE LOADER/UTILITY CORE LOC FOR ASC 6,EACH LABEL: LABEL DEF *+1 OCT 6412 ASC 3,COM3= OCT 6412 ASC 3,COM6= OCT 6412 ASC 3,LDRTT= OCT 6412 ASC 3,LDRTK= OCT 6412 ASC 3,LDRLN= VLOCS DEF *+1 DEF COM3 DEF COM6 DEF LDRTT DEF LDRTK DEF LDRLN N2 DEC -2 N4 DEC -4 D4 DEC 4 D8 DEC 8 N10 DEC -10 * * ROUTINE TO SEARCH INBUF FOR A COMMA, SEARCHES * FROM CURRENT POINTER, IN A, TO END OF INBUF. * IF A COMMA IS FOUND RETURN+1 WITH A POINTING * TO CHARACTER FOLLOWING THE COMMA. IF NO COMMA * IS FOUND RETURN. * FCMA NOP STA GTץPAR SET POINTER JSB GETCR GET 2 CHARACTER JMP *+2 EITHER COMMA OR C/R JMP *-2 LOOP UNTIL COMMA OR C/R FOUND CPA COMMA COMMA? ISZ FCMA YES, SET RETURN LDA GTPAR IN ANY CASE, SET POINTER IN A JMP FCMA,I * * ROUTINE TO CONVERT A DECIMAL ASC NUMBER TO OCTAL. * ON ENTRY (A) POINTS TO INPUT BUFFER * BOCT NOP STA GTPAR SET POINTER JSB GETCR GET FIRST CHARACTER JMP BSYN C/R OR COMMA, ERROR ADA N60 SET BASE JSB CHKN IS 09? BOCT1 STA TEMP1 SAVE IT FOR AWHILE JSB GETCR GET NEXT CHARACTER JMP BOCT2 COMMA OR C/R, EXIT ADA N60 SET BASE STA TEMP2 MUST MOVE TEMP1 1 DECADE JSB CHKN IS 09? LDA TEMP1 MPY DB12 NEXT DECADE ADA TEMP2 ADD IN NEWEST NUMBER JMP BOCT1 AND GET NEXTT DIGIT * BOCT2 LDA TEMP1 ALL DONE, GET NUMBER ISZ BOCT SET NORMAL RETURN JMP BOCT,I AND EXIT * CHKN NOP LDB 0 GET NUMBER SSB IS IT +? JMP BOCT,I NO, ERROR ADB N10 YES,CHECK RANGE SSB,RSS IN RANGE? JMP BOCT,I NO, ERROR JMP CHKN,I ALL OK, CONTINUE * * COMMA OCT 054 N60 OCT -60 TEMP1 BSS 1 TEMP2 BSS 1 * * * PROCESS SYST COMMAND SYST STB PJMP SET PJMP=0 JMP GLOC GET PATCH LOCATIONS * * PROCESS SLIB COMMAND SLIB STB PJMP SET PJMP=1 LDA IBUFA INPUT BUFFER POINTER JSB FCMA INCREMENT PAST COMMA JMP BSYN NO COMMA, INFORM OPERATOR JSB OCTAL JMP BSYN NOT A NUMBER,ERROR STA CTADR OK, SAVE IT ADA NCTS CHECK COMMAND TABLE SSA ADDRESS JMP BSYN NOT IN RANGE ADA CTLN Ƈ CHECK LENGTH SSA,RSS JMP BSYN OUT OF RANGE JMP GLOC OK TO PATCH * * PROCESS LUTY COMMAND LUTY STB PJMP SET PJMP=2 JMP GLOC 2ND GET PATCH LOCATION/S * * PROCESS SEXT COMMAND SEXT STB PJMP SET PJMP=3 LDA IBUFA INPUT BUFFER POINTER JSB FCMA INCREMENT PAST 1ST COMMA JMP BSYN NO COMMA, RESTART JSB BOCT GET TRACK # JMP BSYN NOT A NUMBER, ERROR STA TRCK OK ADA N.203 IS IT IN RANGE SSA,RSS JMP TSBAD NO LDA GTPAR OK,SET POINTER ADA N1 RESET IT JSB FCMA AND INCREMENT PAST 2ND COMMA JMP BSYN NO, COMMA JSB BOCT OK GET SECTOR # JMP BSYN NO A NUMBER STA SECTR OK ADA N.48 BUT CHECK IT SSA,RSS FOR RANGE JMP TSBAD OUT OF RANGE JMP GLOC ALL OK, SO GET PATCH LOCATIONS * * BSYN DLD ILLSN COMMA WAS EXPECTED BUT NOT JSB TTYPE JMP RSTRT FOUND, SO INFORM OPERATOR ILLSN DEC 28 AND RESTART DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED ASC 13, -ILLEGAL SYNTAX/PARAMETER * * TSBAD CLA STA TRCK CLEAR TRACK & SECTOR STA SECTR DLD BTS GET MESSAGE JSB TTYPE JMP RSTRT AND RESTART * BTS DEC 31 DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED ASC 15,TRACK OR SECTOR# OUT OF RANGE * * N.203 DEC -203 N.48 DEC -48 * * PROMPT FOR LOCATION/S TO BE PATCHED GLOC DLD LMSG OUTPUT'LOC= ' JSB TTYPE CLA WAIT FOR REPLY JSB TTYPE LDA IBUFA POINTS TO START OF BUFFER JSB OCTAL GET FIRST LOCATION JMP OBAD STA SLOC STA BLOC SAVE IT STA LLOC LDA GTPA֎R GET POINTER ADA N1 RESET IT JSB FCMA AND INCREMENT PAST 2ND COMMA LDA IBUFA NO COMMA, ONLY 1 LOCATION JSB OCTAL OK, GET LAST LOCATION JMP OBAD STA LLOC ADA MTOP NOW SEE IF LLOC IS IN RANGE SSA,RSS JMP BADL OUT OF RANGE LDA SLOC OK BUT CHECK IF LLOC>BLOC CMA,INA ADA LLOC SSA JMP BADL BLOC>LLOC, ERROR LDB PJMP IS THIS A "SEXT" COMMAND CPB N.3 JMP SECHK YES, MAKE SURE LLOC>128 * ALL OK, START THE PATCH PROG PAT0 JSB DISCR READ THE DISC JMP BADL LDB PJMP OUTPUT THE CONTENTS LDA BLOC STA OLOC PRESENT OUTPUT WORD POINTER CPB N.3 DOES PJUMP=3? ADA BSEXT YES, SET UP FOR SEXT CPB B2 NO ADA BLUTY ADD LOADER OFFSET STA PLOC PRESENT PATCH WORD POINTER * PAT1 LDA OLOC LOCATION TO BE LDB LPT1 PUT INTO HERE JSB ASC AFTER CONVERTING TO ASC LDA PLOC,I NOW GET THE CONTENTS LDB LPT2 PUT INTO HERE AFTER JSB ASC CONVERTING TO ASC DLD PTBUF NOW OUTPUT THIS JSB TTYPE LOCATION AND ITS CONTENTS CCB CPB VRFY IS THIS A VERIFY JMP PAT2 YES, DO NOT ACCEPT PATCH * DLD GTBUF OUTPUT LOCATION PROMPT JSB TTYPE CLA NOW GET THE MODIFICATION, IF ANY JSB TTYPE AND LDA IBUFA CONVERT IT JSB OCTAL JMP BADO OCTAL BAD OR TERMINATE CCB SET THE PATCH FLAG STB PFLG STA PLOC,I OK, STORE IT * PAT2 LDA OLOC SET UP FOR NEXT WORD CPA LLOC IF ANY JMP PAT3 DONE CPA ELOC SEGMENTATION CHECK JMP PAT3 NEW SEGMENTP ISZ OLOC NOT DONE, INCREMENT ISZ PLOC LOCATION POINTERS AND JMP PAT1 CONTINUE * PAT3 CLB CPB PFLG WAS A PATCH ACTUALLY MADE? JMP *+2 NO,CONTINUE JSB DISCW MODIFY THE DISC LDA LLOC WAS THIS SEGMENTED? CMA,INA ADA ELOC SSA,RSS JMP PAT4 NOT SEGMENTED, CONTINUE LDA ELOC SEGMENTED, GET NEXT SEGMENT INA NO, SEGMENTED STA BLOC SO GET THE NEXT SEGMENT JMP PAT0 * PAT4 CLB CPB PFLG WAS A PATCJ MADE? JMP PAT5 NO CPB VRFY IN VERIFY MODE? JMP *+2 JMP PAT5 YES DLD VMSG NO, IS A VERIFY WANTED JSB TTYPE CLA JSB TTYPE GET REPLY LDA INBUF AND SEE WHAT WAS SAID CPA ANO JMP PAT5 CCB VERIFY WANTED STB VRFY SET VRFY=-1 LDA SLOC AND RESET BEGINING STA BLOC POINTER JMP PAT0 DO IT * PAT5 CLB ALL DONE STB VRFY AND EXIT STB PFLG JMP RSTRT * * CONSTANTS AND STUFF OF INPORTANCE TRCK OCT 0 TRACK# SECTR OCT 0 SECTOR# PJMP BSS 1 PFLG OCT 0 * SLOC OCT 0 ALWAYS POINTS TO START OF PATCH BLOC OCT 0 STARTING POINTER FOR DISC I/O OLOC OCT 0 PRESENT POINTER FOR OUTPUT PLOC OCT 0 PRESENT POINTER FOR PATCHING ELOC OCT 0 LOCATION THAT DISC READ TO LLOC OCT 0 ALWAYS POINTS TO END OF THE PATCH * ANO ASC 1,NO SY ASC 1,SY SL ASC 1,SL LU ASC 1,LU SE ASC 1,SE B2 OCT 2 ZERO OCT 0 BSEXT OCT 37300 BLUTY OCT 16000 N LOADER/UTILITY OFFSET * MTOP OCT -37700 * CTADR OCT 0 DISC COMMAND TABLE ADDRESS PTBUF DEC 18 DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED PT1 eASC 3,0 ADDRESS HERE OCT 020074 SPACEL PT2 ASC 3,177777 CONTENTS HERE OCT 037040 > * GTBUF DEC 2 DEF *+1 OCT 036440 = LPT1 DEF PT1 LPT2 DEF PT2 * LMSG DEC 7 DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED ASC 3,LOC= VRFY OCT 0 * * OBAD DLD OMSG JSB TTYPE JMP GLOC BADL DLD BLMSG BAD LOCATION/S TELL JSB TTYPE OPERATOR JMP GLOC AND ASK AGAIN * BLMSG DEC 23 DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED ASC 11,LOCATION OUT OF RANGE * BADO CPA ZERO WAS IT A CARRIAGE RETURN JMP PAT2 YES, CONTINUE DLD OMSG NO, BAD OCTAL INPUT JSB TTYPE JMP PAT1 WAS IT A CARRIAGE RETURN OMSG DEC 12 DEF *+1 OCT 06412 CR-LF ASC 5,USE OCTAL! * ABRT CLA SEE IF ANY PATCHES CPA PFLG HAVE BEEN MADE JMP PAT5 NO DLD AMSG MESSAGE JSB TTYPE WHAT HAS BEEN DONE? CLA JSB TTYPE GET REPLY LDA INBUF AND DETERMINE DIRECTION CPA ANO JMP PAT5 TERMINATE THIS DIRECTIVE JSB DISCW PUT WHAT WAS DONE ON THE DISC JMP PAT4 AND TERMINATE AMSG DEC 24 DEF *+1 OCT 06412 CR-LF ASC 11,WRITE TO DISC (YES/NO) * VMSG DEC 32 DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED ASC 15,DO YOU WANT TO VERIFY (YES/NO)? SECHK LDA LLOC GET LAST PATCH LOCATION ADA N128 SSA IS LLOC<128? JMP PAT0 YES, CONTINUE DLD SCTBD NO, INFORM OPERATOR JSB TTYPE JMP GLOC AND RE-PROMPT FOR LOCATIONS * SCTBD DEC 29 DEF *+1 OCT 06412 CARRIAGE RETURN, LINE FEED ASC 14,A SECTOR HAS ONLY 128 WORDS DUMMY!! * * SKP **************************************************** *** DISCR - READ AN AREA OF THE DISC *** *** *** *** EXIT: ELOC=PTR TO LAST LOC OF BUFFER *** *** ENTRY:ONE OR MORE OF FOLLOWING *** *** TRK= TRACK # *** *** SECTR= SECTOR # *** *** CTAD= COMMAND TABLE ADDR *** *** BLOC= BEGINNING LOC TO BE CHANGED *** *** PJMP= OFFSET FOR JUMP TABLE *** **************************************************** DISCR NOP LDA BLOC GET START LOC OF CHANGE LDB PJMP GET JUMP TABLE OFFSET ADB JMPT LDB B,I JMP B,I GO PROCESS REQUEST JMPT DEF *+1 DEF RSYS KEEP ORDERED DEF RSLIB DEF RLUTY DEF RSEXT * * SYSTEM SEGMENT * RSYS LDB LLOC ADB NBASE SSB JMP TLOC ADB N12K SSB JMP DISCR,I TLOC LDB #SYS ADA NBASE DRIVER SSA IS THIS A BASE PAGE CHANGE JMP BPAGE ADA NSEG1 IS THIS SEGMENT 1? SSA JMP DISCR,I ERROR- LOC OUT OF RANGE ADA NSEG2 SSA IS THIS SEGMENT 2? JMP SEGM1 SEGMENT 1 ADA SYLIB SSA,RSS LIBRARY AREA? JMP DISCR,I YES, OUT OF RANGE SEGM2 STB WORDL,I LDB SEG2 CORE READ IN AREA LDA ASEG2 DISC ADDR OF SEGMENT 2 JMP DDISC SEGM1 STB WORDL,I LDB SEG1 CORE READ IN AREA LDA ASEG1 DISC ADDR SEG 1 JMP DDISC * * BASE PAGE * BPAGE LDA BASE BASE PAGE DISC ADDR LDB NBASE STB WORDL,I CLB COR READ IN AREA JMP DDISC * * SYSTEM LIBRARY OVERLAY * RSLIB ADA NLIB TEST FOR LOC WITHIN SSA LIB OVERLAY RANGE JMP DISCR,I ADA #LIB SSA,RSS JMP DISCR,I OUT OF RANGE LDA #SYS STA WORDL,I LDB SEG2 CCE ELB,RBR LDA ASEG2 READ IN SYSTEM SEG 2 JSB DISCI,I LDA CTADR ADA COM3 ADA COM6 LDA A,I GET DISC ADDR OF LIB OVERLAY LDB #LIB FOR THIS LIB OVERLAY STB WORDL,I 256 WORD OVERLAY LDB LIB GET CORE ADDR FOR READ IN JMP DDISC * * LOADER/UTILITY * RLUTY LDB LLOC ADB LLUT ADB LOADC SSB,RSS JMP DISCR,I ADA NLUT SSA OF LOADER JMP DISCR,I OUT OF RANGE ADA EPSL SSA JMP PSLDR ADA LLUT ADA N1 SSA,RSS JMP DISCR,I LDB LLUT ADB N1 LDA ALUT ADDR OF LOADER /UTILITY STB WORDL,I SETUP WORD COUNT LDB LUT JMP DDISC PSLDR LDA PSLS STA WORDL,I LDA APSL LDB PSLUT JMP DDISC RSEXT LDA TRCK GET TRK# ALF,ALF ARS ADA SECTR FOR THE DISC ADDR LDB N128 STB WORDL,I READ 1 SECTOR LDB LIB * * DDISC CCE ELB,RBR SET READ BIT JSB DISCI,I LDA COREL,I RAL,ARS LDB WORDL,I CMB ADA B STA ELOC SET UP LAST LOC OF READ AREA ISZ DISCR FOR CALLER JMP DISCR,I **************************************************** ** DISCW - WRITE AREA PREVIOUSLY READ BACK TO *** *** DISC *** **************************************************** DISCW NOP LDB COREL,I RBL,BRS REMOVE READ BIT-SETUP FOR LDA DADRL,I JSB DISCI,I WRITE TO DISC JMP DISCW,I * * * LLUT BSS 1 LOADER UTILITY LENGTH ALUT BSS 1 ADDRESS ON DISC OF LOADER UTILITY LDRTT DEF VAR1 LDRT1 DEF VAR1+1 LDRTK DEF VAR2 LDRLN DEGF VAR3 N128 DEC -128 NBASE DEC -1024 N12K OCT -12000 PSLS EQU NBASE LOADC OCT -4001 * * SKP **************************************************** * THE FOLLOWING CONSTANTS ARE SET UP FOR REV C * * SOFTWARE. ANY OTHER REV WILL CAUSE SOME OR * * ALL OF THESE VALUES TO CHANGE. THIS IS * * TAKEN CARE OF BY OPERATOR INPUT AT THE START * * CONTENTS * VAR1 EQU 2045B DISC LOC OF SYS SEG 1 VAR2 EQU 2101B DISC LOC OF LOADR/UTIL VAR3 EQU 2051B LENGTH OF LOADR/UTIL #SYS DEC -6144 SYS SEGMENT SIZE BASE OCT 114 DISC ADDR OF SYS BASE PAGE VAR7 EQU 2002B START ADDR IN CORE OF LOADR VAR4 EQU 14000B SYS SEGMENT 1 START ADDR VAR5 EQU 30000B SYS SEGMENT 2 START ADDR VAR6 EQU 37300B LIB START ADDR #LIB DEC -256 LIB OVERLAY SIZE APSL OCT 1 DISC ADDR OF POST SLEEP LOASDER LOADR EQU 4000B COM3T EQU 35756B START OF COM3 TABLE COM6T EQU 36051B START OF COM6 TABLE CTLN OCT -63 LENGTH OF COM TABLE +1 * * *END POSSIBLE VARIABLE LOCATIONS * **************************************************** SEG1 DEF VAR4 SEG2 DEF VAR5 ASEG1 BSS 1 ASEG2 BSS 1 LIB DEF VAR6 NSEG1 ABS -VAR4+2000B NSEG2 ABS -VAR5+VAR4 NLIB ABS -VAR6 LUT ABS LOADR+16000B PSLUT ABS VAR7+16000B CLUT DEF VAR7 NLUT ABS -VAR7 SYLIB ABS -VAR6+VAR5 COM3 ABS -COM3T COM6 ABS COM6T NCTS EQU COM3 EPSL ABS VAR7-LOADR * * **************************************************** *** CONVERT 1 WORD TO 6 ASC CHARS *** **************************************************** ASC EQU * A=OCTAL VALUE NOP STB TEMP LDB N3 STB ASCT CLB,CLE RRL 1 JMP CHAR1 NCHAR CLB,CME RRL 3 SEZ JMP RCHAR CHAR1 BLF,BLF ADB ASC00 LCHAR {STB TEMP,I SEZ,RSS JMP NCHAR ISZ TEMP ISZ ASCT JMP NCHAR LDB ASCB JMP ASC,I RCHAR ADB TEMP,I JMP LCHAR * * ASC00 ASC 1,00 ASCT BSS 1 N3 DEC -3 TEMP BSS 1 ASCB DEF *+1 BSS 3 * * **************************************************** *** CONVERT X ASC CHARS TO 1 OCTAL WORD *** **************************************************** OCTAL NOP NOP STA GETPT LDA N7 STA TEMP3 CLA STA FLAG STA NUMB OXTC JSB GETCR JMP CRCHK ADA M70 SSA,INA,RSS JMP OCTAL,I ADA P7 SSA JMP OCTAL,I ISZ TEMP3 JMP N7CH CLA,INA JMP OCTAL,I N7CH ISZ FLAG LDB NUMB BLS,BLS RBL ADB A STB NUMB JMP OXTC CRCHK LDA FLAG ANY CHARS FOUND SZA,RSS JMP OCTAL,I LDA NUMB ISZ OCTAL JMP OCTAL,I * TEMP3 EQU ASC FLAG BSS 1 NUMB BSS 1 M70 OCT -70 N7 DEC -7 P7 DEC 7 WORDL DEF WORDC DADRL DEF DADDR COREL DEF CORE DISCI DEF DISCD * **************************************************** *** ASR-33 TTY DRIVER *** *** UPON ENTRY: A=#CHARS TO OUTPUT *** *** 0-INPUT *** *** B=FIRST WORD OF BUFFER ON *** *** OUTPUT *** *** LF,NULL,RUBOUT,X-OFF,ARE IGNORED BY INPUT. *** *** CR ENDS THE RECORD. A _ BACKSPACES ONE CHAR*** *** AND CNTRL X DELETES THE LINE OF INPUT. *** **************************************************** TTYPE EQU * NOP STA CCNTY SET CHAR COUNT SZA,RSS JMP TTY6 BLS STB BUFAD CHAR BUFFER PTR CCA SET FLAG AS OUTPUT STA TFLAG LDA B120K SEND BITS FOR PRINT ONLY OTA TTYSC TTY1 LDA CCNTY SZA,RSS OUTPUT Lc JMP TTYPE,I YES ADA NM1 STA CCNTY LDB BUFAD ISZ BUFAD CLE,ERB LDA 1,I LOAD WORD SEZ,RSS POSITION CHAR ALF,ALF AND DB177 IOR NB200 OTA TTYSC TTY2 STC TTYSC,C SFS TTYSC JMP *-1 LDA TFLAG SZA OUTPUT JMP TTY1 LIA TTYSC AND DB177 CPA DB12 LF JMP TTY2 CPA DB177 RUBOUT JMP TTY2 CPA SPACE SPACE JMP TTY2 SZA NULL CPA NB23 X-OFF JMP TTY2 CPA BKSPC JMP TTY4 CCB CPA DB30 EXIT ON CNTRL X JMP TTY5 CPA N.3 VJMP JMP ABRT STA TTYTM SAVE CHAR LDB CCNTY CPB D.72 BACKSPACE IF BUFFER IS FULL JSB BKSP LDB BUFAD ISZ BUFAD CLE,ERB SEZ,RSS ALF,SLA,ALF IOR 1,I STA 1,I ISZ CCNTY LDA TTYTM CPA NB15 CR? JMP TTYPE,I YES JMP TTY2 TTY4 JSB BKSP JMP TTY2 TTY5 STB TFLAG ADB TTYPE STB TTYPE OUTPUT LDA N.3 LDB RVRSA JMP TTYPE+1 TTY6 LDB IBUFA SETUP INPUT BUFFER PTRS STA GETPT STB BUFAD STA TFLAG LDA B160K JMP TTY2-1 SKP *****************************M********************** ** BACKSPACE ONE CHAR ** *****************************M********************** BKSP NOP LDB CCNTY SZB,RSS JMP BKSP,I ADB NM1 STB CCNTY CCB ADB BUFAD STB BUFAD CLE,ERB LDA 1,I AND HIMSK STA 1,I LDA TTYTM JMP BKSP,I * * JCONF JMP CONF JABRT JMP ABRT NM1 DEC -1 N1 EQU NM1 N.3 DEC 3 DB12 OCT 12 NB15 OCT 15 NB23 OCT 23 DB30 OCT 30 D.72 DEC 72 DB177 OCT 177 NB200 OCT 200 SP@ACE OCT 40 BKSPC OCT 137 B120K OCT 120000 PRINT ONLY TTY CONTROL BITS B160K OCT 160000 INPUT ONLY HIMSK OCT 177400 RVRSL OCT 56015,5000 \CRLF TTYSC EQU 10B CCNTY BSS 1 INBUF BSS 36 TTY INPUT BUFFER BUFAD BSS 1 TTY CHAR ADDRESS TFLAG BSS 1 TTY I/O MODE TTYTM BSS 1 IBUFA ABS INBUF+INBUF RVRSA DEF RVRSL * * **************************************************** ** GET A CHAR FROM THE TTY INPUT BUFFER ** **************************************************** GETCR EQU * NOP LDB GETPT ISZ GETPT CLE,ERB LDA B,I SEZ,RSS ALF,ALF AND M377 CPA BLANK JMP GETCR+1 IGNORE CPA CR JMP GETCR,I CPA COMMA JMP GETCR,I ISZ GETCR JMP GETCR,I * * CR OCT 15 CR GTPAR EQU * GETPT BSS 1 M377 OCT 377 BLANK EQU SPACE * ORG 10000B * **************************************************** *** 7900 DISC DRIVER *** *** UPON ENTRY: *** *** A=DISC ADDRESS ON SYS DISC *** *** B=CORE ADDRESS WITH BIT 15 *** *** 1-FOR TRANSFER TO CORE *** *** 0-FOR TRANSFER TO DISC *** *** WORDC=-# OF WORDS TO TRANSFER *** *** *** *** THIS DRIVER WORKS WITH SUBCH. 0 ONLY **************************************************** DISCD NOP DISC DRIVER STA DADDR SAVE DISC ADDR STB CORE SAVE CORE ADDR LDA WORDC SSB,RSS IS THIS A READ TO CORE AND MK128 ROUND TO A SECTOR STA WORDC LDA DADDR AND D.77 STA HD/SC HEAD AND SECTOR VALUE LDB HD/SC ADB HEAD2 SETUP FOR HEAD 2 (SUB 0) ADA M24 SSA,RSS ADB HEAD SETUP FOR HEAD 3 (SUB 0) SSA,RSS ADB M24  STB HD/SC LDA DADDR LSR 7 GET CYLINDER # AND D.377 SAVE TRK # STA TRK# LDB D.10 STB FAIL SET RETRY COUNTER LDA TRK# .DDR1 OTA DC STC DC,C LDA SEEK CLC CC OTA CC OUTPUT SEEK COMMAND STC CC,C SFS DC JMP *-1 LDA HD/SC OTA DC STC DC,C SFS CC WAIT FOR SEEK TO COMPLETE JMP *-1 LDA DMACW OTA 6 OUTPUT DMA CONTROL WORD CLC 2 LDB CORE OUTPUT BUFFER ADDRESS OTB 2 STC 2 LDB WORDC OUTPUT WORD COUNT OTB 2 JSB STAT CHECK DISC STATUS LDA READ. READ COMMAND LDB CORE SSB,RSS LDA WRITE CLC CC OTA CC OUTPUT READ/WRITE COMMAND SSB,RSS IF OUTPUT,PRESET STF DC DATA CHANNEL FLAG SSB IF INPUT, CLEAR STC DC,C STC 6,C START DMA STC CC,C START READ/WRITE OPERATION SFS CC WAIT FOR READ/WRITE TO COMPLETE JMP *-1 STF 6 TURN OFF DMA JSB STAT CLC DC CLC CC CLC 6,C JMP DISCD,I RETURN * * CHECK DISC STATUS * STAT NOP STC DC,C SET TO CHECK DRIVE 0 CLA OTA CC OUTPUT STATUS COMMAND CLC CC STC CC,C SFS DC JMP *-1 LIA DC CLC DC SLA,RSS ANY ERRORS JMP STAT,I NO ISZ FAIL TRIED 10 TIMES JMP .DDR1-1 NO TRY AGAIN DRV1 EQU * HLT 11B JMP *-1 * * * DC EQU 11B CC EQU 12B DB100 OCT 100 D.377 OCT 377 D.77 OCT 77 HEAD OCT 400 OFFSET FOR HEAD3 CONSTANT HEAD2 OCT 1000 MK128 DEC -128 D.10 DEC -10 M24 DEC -24 TRK# NOP DADDR NOP CORE NOP HD/SC NOP FAIL NOP WORDC ZXTNOP DMACW ABS 120000B+DC SEEK OCT 30000 READ. OCT 20000 WRITE OCT 10000 B EQU 1 A EQU 0 END Z Ym 22646-80001 B SC 0122 BCS ACTIVITY PROFILE GENERATOR (ACP)             H0101 a HED ACP, P-REGISTER ACTIVITY PROFILE FOR TIMING ANALYSIS. NAM ACP ENT ACP,ACPO EXT .ENTR,.PACK A EQU 0 B EQU 1 SUP ************************************************************************ * ACP, ACCUMULATES A SPECTRUM FROM THE P-REGISTER TO PROVIDE * AN ACTIVITY PROFILE FOR SYSTEM LEVEL TIMING ANALYSIS. THE * PHOTOREADER, PUNCH, TIMEBASE GENERATOR (TBG), OR LIKE DEVICE, * IS USED TO GENERATE AN INTERRUPT TRAIN. THE INTERRUPTS ARE * FIELDED BY I60 AND THE P-REGISTER VALUE AT THE TIME OF THE IN- * TERRUPT IS USED TO DEFINE A WORD IN THE USERS @BUFFER WHICH IS * TO BE INCREMENTED. THE CORE REGION OF INTEREST IS DEFINED BY * @PMIN (SMALLEST P OF INTEREST) AND @RHO (P RESOLUTION). THE * PROCESS STOPS WHEN ACPO IS INVOKED OR WHEN ONE OF THE ENTRIES * IN @BUFFER REACHES 32767 (077777B). THE @BUFFER IS AUTOMA- * TICALLY CLEARED WHEN ACP IS INVOKED. WHEN ACPO IS INVOKED, THE * TOTAL @SUM OF INTERRUPTS IS RETURNED IN FLOATINGPOINT FORMAT. ********************************************************************** * FORTRAN LINKAGE: CALL ACP(@PMIN,@RHO,@BUF,@LEN,@CHAN) * CALL ACPO(@SUM) *********************************************************************** * FOR EXAMPLE, THE FOLLOWING FORTRAN PROGRAM MIGHT BE USED TO * TIME THE SINE SUBROUTINE AND PRINT THE RESULTS TO A RESOLU- * TION @RHO=200B. THE TEST MIGHT THEN BE RE-RUN USING A NONZERO * OFFSET (EG @PMIN = ADDRESS OF SUBROUTINE SIN) AND A FINER P * RESOLUTION (EG @RHO = 2B). * * WHEN THIS EXAMPLE PROGRAM IS RUN, IT IS ASSUMED THAT THE USER * HAS AN INTERRUPTING DEVICE IN I/O @CHANNEL 10B (FOR EXAMPLE, A * PHOTOREADER WITH A 20 INCH "ENDLESS" TAPE LOOP IN IT). * THE UNIT6 PRINTOUT INCLUDES CORE LOCATION, USAGE PROBABILITY (%), * AND CUMULATIVE USAGE PROBABILITY (%). * *FTN,B,LA * DIMENSION IBUF(256) *C * CALL ACP(0B,200B,IBUF,256,10B) * DO 100 I=1,999 * 100 Y=SIN(X) * CALL ACPO(SUM) *C * DIST=0.0 ȭ* DO 300 I=1,256 * LOC =I*200B * DENS=100.*FLOAT(IBUF(I))/SUM * DIST=DIST+DENS * WRITE(6,200) LOC,DENS,DIST * 200 FORMAT(K8,"B",F6.2,"%",F6.2,"%") * 300 CONTINUE * END * END$ ************************************************************************ @PMIN DEF PMIN P-REG IGNORED IF P < @PMIN @RHO DEF RHO P-REG IGNORED IF P > @RHO*@LEN-1 @BUF DEF BUF,I DEF TO HISTOGRAM BUFFER @LEN DEF LEN LENGTH OF HISTOGRAM BUFFER @CHAN DEF CHAN SELECT CODE FOR PHOTOREADER ACP NOP JSB .ENTR DEF *-5-2 * M0 NOP DISABLE INTERRUPTS * LDA @PMIN,I SAVE PARAMETERS LOCALLY STA PMIN LDA @RHO,I STA RHO LDA @BUF STA BUF LDA @LEN,I STA LEN LDA @CHAN,I CONFIGURE I60 LINKAGE AND =B77 STA CHAN LDB A,I CPB LINK1 (SAVING OLD TRAPCELL IF REQD) RSS STB LINK2 LDB LINK1 STB A,I ADA =B103700 CONFIGURE I/O INSTRUCTIONS STA M2 STA M5 XOR =B004000 STA M0 STA M3 STA M4 XOR =B005100 STA M1 * LDA @LEN,I CMA,INA STA Z CLA LDB @BUF STA B,I CLEAR EACH @BUFFER WORD INB ISZ Z JMP *-3 * CLA CLEAR INTERRUPT COUNTERS STA LLSB STA LMSB STA HLSB STA HMSB STA NLSB STA NMSB STF 0 ENABLE INTERRUPT SYSTEM LDA TBG SET TBG, IF IT EXISTS, M1 OTA 00 FOR A 100 USEC INTERRUPT TRAIN. M2 STC 00,C TURN ON I60 JMP ACP,I AND EXIT. * TBG OCT 0 TIMEBASE GENERATOR CODEWORD Z BSS 1 ************************************************************************ * ACPO, TURNS OFF ACP AND RETURNS FLTPT @SUM OF INTERRUPTS. ************************************************************************ @SUM DEF *,I ACPO NOP JSB .ENTR DEF *-1-2 * E M3 NOP (CLC 00,C) LDA CHAN LDB LINK2 (RESTORE OLD TRAPCELL) SZB STB A,I * DLD ACPN GET INTERRUPT COUNT, JSB .PACK CONVERT TO FLTPT, OCT 17 DST @SUM,I STORE IN USERS PROGRAM, JMP ACPO,I AND RETURN. ************************************************************************ * I60, INTERRUPT ROUTINE MONITORS P-REGISTER AND PRODUCES A PHOTOREADER * INTERRUPT TRAIN. ************************************************************************ I60 NOP STA AREG SAVE A-REG STB BREG SAVE B-REG ERA,ALS SAVE E-REG AND O-REG SOC INA STA XREG * LDA PMIN PICKUP P-REGISTER FROM I60 CMA,INA AND SUBTRACT @PMIN ADA I60 SSA IS P TOO SMALL? JMP EXITL YES, IGNORE IT. LDB RHO NO, CONVERT TO SUBSCRIPT JSB DIV2 LDB A IS SUBSCRIPT TOO BIG? CMB ADB LEN SSB JMP EXITH YES, IGNORE IT ADA BUF NO, LOCATE APPROPRIATE BFFR ISZ A,I BUMP APPROPRIATE BFFR ELEMENT. LDA A,I CPA =B077777 IS VALUE MAXIMUM 15BIT? RSS JMP EXIT NO, CONTINUE. LDA M4 YES, DISABLE FURTHER ACTION. STA M5 JMP EXIT * EXITL ISZ LLSB COUNT 1 LOW RSS THEN EXIT ISZ LMSB RSS EXITH ISZ HLSB COUNT 1 HIGH RSS THEN EXIT ISZ HMSB NOP EXIT ISZ NLSB COUNT 1 NOMATTER WHAT RSS ISZ NMSB NOP LDA XREG RESTORE E-REG, O-REG CLO SLA,ELA STO LDA AREG RESTORE A-REG LDB BREG RESTORE B-REG RSS M4 CLC 00,C DE-RESONATE TBG (OPTIONALLY) M5 STC 00,C REENABLE INTERRUPTS, JMP I60,I AND EXIT AREG BSS 1 BREG BSS 1 XREG BSS 1 PMIN ABS 0 MINIMUM PREG RHO ABS 100B DELTA PREG LEN ABS 0 BUFFER LENGTH BUF DEF *,I BUFFER ADDRESS CHAN ABS 10B I/O CHANNEL * ACPN BSS 0 3 32-BIT ACCUMULATORS NLSB OCT 0 BITS 15-00, NBR OF INTERRUPTS NMSB OCT 0 BITS 31-16, ... LLSB OCT 0 BITS15-00,NBR P<@PMIN LMSB OCT 0 BITS31-16,... HLSB OCT 0 BITS15-00,NBR P>@RHO*@LEN-1 HMSB OCT 0 BITS 31-16,... ************************************************************************ * DIV2, FUNNY DIVIDE ROUTINE. DIVIDES A BY SMALLEST POWER OF 2 * WHICH IS NOT SMALLER THAN B. ROUNDS ALL FRACTIONS UP. * FOR EXAMPLE: 15/10=1, 16/10=1, 17/10=2. * NOTE: B MUST BE POSITIVE. ************************************************************************ DIV2 NOP ENTRY: LDA,LDB,JSB,STA BRS SZB,RSS JMP DIV2,I ARS JMP *-4 ORB LINK1 JSB I60 LINK2 OCT 0 "OLD" CONTENTS OF TRAPCELL UNS END FTN,B,L,A PROGRAM Y1111 DIMENSION IRPP(256,10),JRPP(256),IBUF(256) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C THIS PROGRAM IS THE SAME AS THE "MIXED INTEGER/FLOATING BENCHMARK" C DESCRIBED IN SYSTEMS ANALYSTS NOTE "SA GEN 22". THAT NOTE USES THE C RTE/DOS "TIME" SUBROUTINE (ESSENTIALLY AN ELECTRONIC STOPWATCH) TO C COMPARE HP, DEC, AND DATAGENERAL (NOVA) COMPUTERS. THIS ANALYSIS C USES UPL SUBROUTINE "ACP" TO PROVIDE CONSIDERABLY MORE DETAIL AND C INSIGHT. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C CAREFULLY INITIALIZE IRPP ARRAY FOR TEST L=1 DO 2 K=1,256 DO 2 J=1,10 IRPP(K,J)=L L=L+1 IF (L-192) 2,2,3 3 L=1 2 CONTINUE C C C CALL ACP, DO THE TIMING BENCHMARK, THEN CALL ACPO. PAUSE 1 IPMIN=0B IRHO=100B CALL ACP(IPMIN,IRHO,IBUF,256,10B) ILOOP=1 DO 20 I=1,ILOOP DO 25 J=1,10 DO 25 K=1,256 25 JRPP(K)=ALOG(FLOAT(IRPP(K,J)))*100. 20 CONTINUE CALL ACPO(SUM) PAUSE 2 C C C CONVERT TIMING DATA IN IBUF TO PROBABILITY DENSITY AND CUMULATIVE FRE- C QUENCY DISTRIBUTION FUNCTIONS USING MEMORY LOCATION AS THE INDEPEN- C DENT VARIABLE. THEN PRINT IT OUT IN NICE FORMAT. SUMX=0 DO 200 I=1,256 IF(IBUF(I))110,200,110 110 IP1=IPMIN+(I-1)*IRHO IP2=IP1+IRHO-1 X=FLOAT(IBUF(I)) SUMX=SUMX+X DENS=100.*(X/SUM) DIST=100.*(SUMX/SUM) WRITE(6,190) IP1,IP2,IBUF(I),DENS,DIST 190 FORMAT(K5,"-",K5,"B",I7,F6.1,"%",F6.1,"%") 200 CONTINUE RETURN END END$  Z d 22647-80001 A SC 0122 PATCH-MERGE ABSOLUTE BINARY TAPES             H0101 ZASMB,A,B,L ORG 2000B TTYSC EQU 23B TELETYPE S.C. PU EQU 16B PUNCH S.C. RDR EQU 13B PHOTOREADER S.C. * * UPON ENTRY (A) HOLDS THE NUMBER OF CHAR. TO BE OUTPUT OR * IS ZERO TO REQUEST INPUT. FOR OUTPUT REQUESTS (B) POINTS TO * THE FIRST WORD OF THE BUFFER. A LINE FEED, RUBOUT, NULL, OR * X-OFF IS IGNORED BY IMPUT. ON INPUT A CR ENDS THE * RECORD, A _ BACKSPACES ONE CHAR., AND AN ESC OR ALT-MODE * DELETES THE INPUT LINE. AT END OF INPUT CCNTY IS CHAR COUNT. * * TTY35 NOP STA CCNTY ST CHAR. COUNT SZA,RSS OUTPUT REQ? JMP TTY6 NO BLS YES:INITIALIZE STB BUFAD CHAR. POINTER CCA SET FLAG STA TFLAG AS OUTPUT LDA B120K SEND OUT CONTROL WORD OTA TTYSC FOR PRINT ONLY TTY1 LDA CCNTY ALL CHAR OUTPUT? SZA,RSS JMP TTY35,I YES ADA NM1 NO, CORRECT CHAR COUNT STA CCNTY LDB BUFAD COMPUTE ISZ BUFAD WORD-CHAR CLE,ERB ADX LDA 1,I LOAD WORD SEZ,RSS POSITION ALF,ALF CHAER AND DB177 GET CHAR ONLY IOR NB200 ADD IN BIT 7 OTA TTYSC TTY2 STC TTYSC,C JAZZ TTY!!! SFS TTYSC WAIT FOR POSITIVE REACTION JMP *-1 LDA TFLAG SZA OUTPUT? JMP TTY1 YES LIA TTYSC NO,EXTRACT CHAR. AND DB177 CPA DB12 LINEFEED? JMP TTY2 YES CPA DB177 NO: RUB? JMP TTY2 YES SZA NO:NULL? CPA NB23 OR X-OFF JMP TTY2 YES CPA BKSPC NO '_'? JMP TTY4 YES CCB NO CPA DB33 EXIT ON ESC OR ALT-MODE JMP TTY5 CPA ALTMD JMP TTY5 CPA DB176 JMP TTY5 STA TTYTM SAVE CHAR LDB CCNTY BACKSPACE CPB D.72 IF BUFFER FULL JSB BKSP LDB BUFAD COMPUTE NEXT BUFFER ADX qISZ BUFAD CLE,ERB SEZ,RSS POSITION AND FORM BUFFER WPRD ALF,SLA,ALF IOR 1,I STA 1,I STORE AND COUNT CHAR. ISZ CCNTY LDA TTYTM WAS IT A CR? CPA NB15 JMP STOP. JMP TTY2 NO TTY4 JSB BKSP BAXSPACE JMP TTY2 TTY5 STB TFLAG SET TO OUTPUT MODE ADB TTY35 SET RETURN TO INPUT CALL STB TTY35 LDA N.3 OUTPUT '/' AND LDB RVRSA CRLF JMP TTY35+1 TTY6 LDB IBUFA SET UP INPUT STB BADRA,I BUFFER STB BUFAD POINTERS STA TFLAG SET TO INPUT MODE LDA B160K OUTPUT CONTROL FOR INPUT JMP TTY2-1 STOP. LDA B120K PRINT ONLY OTA TTYSC OUTPUT CUNTROL JMP TTY35,I * * * BACKSPACE 1 CHAR. * * BKSP NOP LDB CCNTY DECREMENT CHAR COUNT IF NON-0 SZB,RSS JMP BKSP,I ADB NM1 STB CCNTY CCB BACKSPACE CHAR ADX ADB BUFAD STB BUFAD CLE,ERB INSURE NEXT CHAR WILL NOT BE MESSED UP LDA 1,I AND HIMSK STA 1,I LDA TTYTM RETRIVE CHAR FOR CALLS FROM BUFFER OV JMP BKSP,I * * N.3 DEC 3 CCNTY BSS 1 BUFAD BSS 1 TFLAG BSS 1 TTY I/O MODE B120K OCT 120000 PRINT MODE NM1 DEC -1 DB177 OCT 177 NB200 OCT 200 DB12 OCT 12 NB23 OCT 23 BKSPC OCT 137 DB33 OCT 33 ALTMD OCT 175 DB176 OCT 176 TTYTM BSS 1 D.72 DEC 72 NB15 OCT 15 RVRSA DEF RVSL RVSL OCT 56015,5000 CRLF IBUFA ABS INBUF+INBUF INBUF BSS 36 TTY BUFFER BADRA DEF BADDR BADDR BSS 1 B160K OCT 160000 TTY INPUT HIMSK OCT 177400 * * * * * ENTER W/ A CHAR. IN (A). IF IT IS A DIGIT, RTN TO * (P+2) W/THE BINARY DIGIT IN A AND B. OTHER WISE * RTN TO (P+1) W/CHAR IN A * DIGCK NOP LDB 0 ADB LD72 SSB,RSS JMP DIGCK,I ADB LB12 SSB JMP DIGCK,I LDA 1 ISZ DIGCK JMP DIGCK,I LD72 OCT -70 LB12 DEC 8 * * * * RETURN TO P+2 W/NEXT CHAR (NON BLANK) FORM INPUT RECORD IN A * RETURN TO P+1 IF CR ENCOUNTERED * GETCR NOP LDB BADDR LOAD CHAR POINTER ISZ BADDR ADVANCE IT CLE,ERB LOAD WORD ADJUSR AS NECESSARY LDA 1,I SEZ,RSS ALF,ALF AND LB377 CPA BLANK SPACE? JMP GETCR+1 YES IGNORE CPA LB15 NO:CR? JMP GETCR,I ISZ GETCR JMP GETCR,I LB377 OCT 377 BLANK OCT 40 LB15 OCT 15 * * * PUNCH IF E=1 PUNCH B(0:7) * IF E=0 PUNCH B(15:8),B(7:0) * PUNCH NOP CME SEZ ONLY 1 PUNCH BLF,BLF STB XM LDA XM PUN1 AND X377 CLEAR OUT TRASH OTA PU OUTPUT STC PU,C SFS PU JMP *-1 CLC PU SEZ,RSS ONLY 1 PUNCH JMP PUNCH,I YES LDA XM NO ALF,CLE,ALF SHIFT 1 MORE TIME JMP PUN1 XM BSS 1 X377 OCT 377 * * * READ 1CHAR FROM PR IF E=1 * 2 IF E=0 AND PACK INTO B. A NOT CHANGED * READ NOP CLB,CME READ1 STC RDR,C READ 1 CHAR SFS RDR JMP *-1 CLC RDR MIB RDR IOR INTO (B) SEZ,RSS READ SECOND CHAR? JMP READ,I BLF,CLE,BLF YES SHIFT 8 JMP READ1 * * * PUNCHES THE # OF FEED FRAMES SPECIFIED IN A * FEEDR NOP CMA,INA SET UP COUNTER STA TEP DMXQ CLB,CCE PUNCH NULL JSB PUNCH ISZ TEP JMP DMXQ JMP FEEDR,I TEP BSS 1 * * * PUNCHES OUT A BUFFER.# OF WORDS IN A.BUFFER ADX IN B * OPUN NOP CMA,INA STA CING NEG WORD COUNT STB PING POINTER OPO CLE LDB PING,I JSB PUNCH ISZ PING ISZ CING JMP OPO JMP OPUN,I CING NOP PING NOP * * * * READ A PAPER TAPE RECORD AND PUT IN BUFFER (BUM) * ON RETURN (A)=ADX OF RECORD * (B)=TOTAL # OF WORDS IN RECORD/IF 10 FEEDFRAME B=0 * RAR NOP LDA DM10 CCE PASS UP 10 FEED FRAMES JSB READ SZB JMP *+5 GOT ADX! ISZ 0 JMP RAR+2 TRY AGAIN CLB JMP RAR,I EOT STB COUNT BLF,BLF STB BUM STORE WORD COUNT CCE JSB READ LDB COUNT SET UP COUNTER INB TO INCLUDE CMB,INB ALL BUT CHECKSUM STB COUNT LDB BUMM SET UP POINTER INB STB OINT CLA CLEAR CHECKSUM OXR CLE READ BODY JSB READ STB OINT,I ADA 1 ISZ OINT ISZ COUNT MORE? JMP OXR YES CLE NO GET CHECKSUM JSB READ STB OINT,I STORE IT IN BUFFER CPA 1 JMP *+3 OK! HLT 11B BAD CHECKSUM START OVER JMP RAR+1 LDA BUM+1 ADX INTO A LDB BUM CAL. TOTAL WORD COUNT BLF,BLF ADB DX3 JMP RAR,I RETURN BUMM DEF BUM BUM BSS 257 BUFFER COUNT BSS 1 COUNT OINT BSS 1 POINTER DX3 DEC 3 DM10 DEC -10 * * * * INPUT OCTAL # AND PUT IN (A) ,IF NOT GOOD OCTAL * OUTPUT ERROR MSG AND ALLOW REENTRY.RTN (P+2) * NORMALLY ,RTN (P+1) IF INPUT CR ONLY. * INPUT NOP CLA STA KEEP CLEAR TEMP FOR INTEGER JSB TTY35 GET INPUT CLA,INA CPA CCNTY ONLY CR? RSS YES:SKIP ISZ INPUT NO:RTN P+2 INP1 JSB GETCR JMP XIT DONE W/INPUT JSB DIGCK JMP NODIG BAD POOP LDA KEEP ALF,RAR SHIFT OLD STUFF AND AB7 WIPE FIRST DIGIT IOR 1 INSERT DIGIT STA KEEP JMP INP1 NEXT! XIT JSB CRLF LDA KEEP JMP INPUT,I NODIG LDA XITPP LDB XITP JSB TTY35 JSB CRLF LDA INPUT ADA MXPI STA INPUT JMP INPUT+1 KEEP BSS 1 XITP DEF KXITP KXITP OCT 5117 ASC 8,CTAL DIGITS ONLY $XITPP DEC 18 AB7 OCT 177770 MXPI DEC -1 * * * OUTPUTS CRLF * CRLF NOP LDA MXPZ LDB BIZZ JSB TTY35 JMP CRLF,I MXPZ DEC 2 BIZZ DEF *+1 OCT 6412 "CRLF" * * * * OUTPUTS (A) AS A 6 DIGIT OCT # FOLLOWED BY 2 SPACES * * KOUT NOP LDB CTX SET UP COUNTER STB CT CLB STA TEMK SSA GET BIT 15 INB JSB KMKA PRINT BIT 15 LDA TEMK ADJ. OCT # RAL STA TEMK KOUT1 LDA TEMK GET INTEGER ALF,RAR ROTATE 3 STA TEMK STORE AND MX7B GET 1 DIGIT LDB 0 JSB KMKA PRINT ISZ CT DONE? JMP KOUT1 NO LDA KT2 YES: OUTPUT 2 SPACES LDB MTE JSB TTY35 JMP KOUT,I KMKA NOP ADB O60 CONVERT TO ASCII BLF,BLF STB OXTN CLA,INA SET UP FOR OUTPUTP LDB OXTNA JSB TTY35 OUTPUT JMP KMKA,I CT BSS 1 CTX DEC -5 TEMK BSS 1 O60 OCT 60 OXTN BSS 1 OXTNA DEF OXTN MX7B OCT 7 MTE DEF *+1 OCT 20040 KT2 DEC 2 * * * * *MAIN PROGRAM FOR PATCH MERGING * ORG 4000B MERGR JSB CRMF,I 'CRLF' LDA DEC10 'LIB ADX:' LDB GUM JSB TTY,I LDA DECE2 JSB FEK,I PUNCH LEADER CLA STA LIBPR SET LIB PROG. STATUS=0 STA EOT CLEAR EOT STATUS WORD STA LIBNU JSB IMPUT,I GET LIB ADX LDA OCTAL IF NULL INPUT ADX=77777B STA LIBSA JSB CRMF,I LDA DEC14 LDB MEXI4 JSB TTY,I ASK FOR INIT. LIB # JSB IMPUT,I CLA STA LIBCR JSB CRMF,I JSB CRMF,I LDA DEC14 LDB MEXI2 JSB TTY,I JSB CRMF,I JSB CRMF,I TRAIN JSB RAROK,I SZB,RSS 10 FF'S? JMP EOF YES STA TMC CCA STA EOT SET EOT MARK  LDA TMC RESTORE A REG. CPA LIBSA NO: = LIB S.A.? JMP YME YES SIC LDA 1 LDB BUMER JSB OPUC,I LDA DEC4 4 FF'S JSB FEK,I JMP TRAIN YME STB WDCK STORE WORD COUNT LDA LIBCR SZA,RSS RSS JMP OXWAD LDA LIBPR SZA JMP OXWAD JSB PATC JSB CRMF,I LDA DEC14 LDB MEXI3 JSB TTY,I JSB CRMF,I JSB CRMF,I OXWAD LDA LIBPR SZA LIB STATUS=0? JMP MKQ NO CCA YES: SET STATUS=1'S STA LIBPR LDB WDCK JMP SIC MKQ CLA STA LIBPR LDA LIBNU SZA LIB #=0? JMP ABLE NO GRAD LDA DEC14 YES LDB CAR JSB TTY,I JSB IMPUT,I GET LIB # JMP SETLI STA LIBNU JMP ABLE1 SETLI LDA OCTAL SET LIB .S.A.=77776 ADA DECM1 STA LIBSA STA LIBNU JMP ABLE ABLE1 JSB CRMF,I LDA LIBCR CMA,INA ADA LIBNU SSA,RSS JMP *+7 LDA DEC16 LDB MEXI JSB TTY,I JSB CRMF,I JSB CRMF,I JMP GRAD ABLE LDA LIBCR CPA LIBNU LIB #= LIB COUNT? JMP YES LDA LIBCR INC LIB COUNT INA STA LIBCR JMP OXWAD YES JSB PATC GET LIB PATCH CLA STA LIBNU SET LIB #=0 JMP ABLE+3 RETURN EOF LDA EOT SZA,RSS JMP TRAIN LDA LIBSA NO CPA OCTAL LIB S.A.=77777B? JSB PATC YES GET PATCHES LDA DECE2 NO JSB FEK,I TRAILER HLT 77B JMP MERGR * * * * GET A PATCH FROM THE TTY AND PUNCH IT * RETURN ON NULL RESPONSE TO S.A. QUESTION * PATC NOP JMP NXC PRGT JSB CRMF,I LDA BUTER STA AX1 LDA BUMER STA AX2 LDA DMG257 STA CNT3 XGON LDA AX2,I STA AX1,I ISZ AX1 ISZ AX2 ISZ CNT3 JMP XGON LDA D40 LDB N3M JSB TTY,I HLT 21B CLA ZERO OUT EOT CHECK STA AX1 MO3 JSB RAROK,I GET RECORD SZB FEED FRAMS? JMP ONDX3 NO:ONWARD LDA AX1 YES SZA,RSS EOT? JMP MO3 NO LDA BUTER DONE W/ PATCH RESTORE BUFFERS STA AX1 LDA BUMER STA AX2 LDA DM257 STA CNT3 XGON2 LDA AX1,I STA AX2,I ISZ AX1 ISZ AX2 ISZ CNT3 JMP XGON2 LDA D24 LDB N4M JSB TTY,I HLT 21B JMP PATC+1 RTN TO PATCH REQUEST ONDX3 CCA STA AX1 SET FOR EOT LDA 1 # OF WORDS LDB BUMER ADX JSB OPUC,I PUNCH RECORD LDA DEC4 JSB FEK,I 4 FF'S JMP MO3 NXC JSB CRMF,I LDA DEC14 LDB TTT JSB TTY,I JSB IMPUT,I GET S.A. JMP PATC,I ALL DONE STA BUT+1 STORE ADX STA ADX INIT AX STA XSUM INIT CHECKSUM LDA BUTER INIT BUFFER POINTER ADA DEC2 STA APOI CLA INIT WORD COUNT STA WDCT BBBB LDA ADX JSB KOUK,I OUTPUT ADX JSB IMPUT,I ASK FOR INPUT JMP PUNIT DONE STA APOI,I MORE DATA ADA XSUM STA XSUM ISZ WDCT ISZ ADX ISZ APOI JMP BBBB PUNIT LDA WDCT PUNCH BUFFER ALF,ALF SZA,RSS JMP PATC+1 STA BUT LDA XSUM STA APOI,I LDA WDCT ADA DEC3 LDB BUTER JSB OPUC,I LDA DEC4 JSB FEK,I JMP PATC+1 * * * N3M DEF *+1 ASC 20,MARK OLD TAPE INSERT NEW TAPE PRESS RUN. OCT 6412 D40 DEC 42 N4M DEF *+1 ASC 13,INSERT OLD TAPE PRESS RUN. OCT 6412 D24 DEC 28 XTX DEF *+1 ASC 2,PR: OCT 6412 DEC6 DEC 4 GCR DEF GETCR Y OCT 131 "Y" AX1 BSS 1 AX2 BSS 1 CNT3 BSS 1 DM257 DEC -257 TTT DEF *+1 ASC 7,PATCH S.A.: DEC10 DEC 10 TTY DEF TTY35 IMPUT DEF INPUT BUTER DEF *+1 BUT BSS 262 BUFFER ADX BSS 1 ADRESS APOI BSS 1 POINTER TO BUFFER XSUM BSS 1 CHECKSUM DEC2 DEC 2 WDCT BSS 1 WORD COUNT KOUK DEF KOUT DEC3 DEC 3 OPUC DEF OPUN DEC4 DEC 4 FEK DEF FEEDR GUM DEF *+1 ASC 5,LIB ADX: CRMF DEF CRLF DECE2 DEC 150 OCTAL OCT 77777 RAROK DEF RAR BUMER DEF BUM LIBSA BSS 1 LIB S.A. LIBCR BSS 1 LIB COUNTER CAR DEF *+1 ASC 7,OCTAL LIB#: DEC14 DEC 14 LIBNU BSS 1 LIB # WDCK BSS 1 WORD COUNT TEMP DECM1 DEC -1 MEXI DEF *+1 ASC 8,LIB # TOO SMALL DEC16 DEC 16 MEXI2 DEF *+1 ASC 7,*CORE PATCHES MEXI3 DEF *+1 ASC 7,*LIB PATCHES LIBPR BSS 1 LIB STATUS EOT OCT 0 TMC OCT 0 MEXI4 DEF *+1 ASC 7,INITAL LIB #: TERIM EQU *+2 * * INITIALIZATION ROUTINE * * * ORG 100B JMP *+1,I JMP TO INIL ROUTINE DEF INITA ORG TERIM INITA LIA 1 GET TTYSC AND XPX1 STA 1 PUT INTO B LDA TT1,I AND XPX2 IOR 1 STA TT1,I STA TT2,I STA TT3,I LDA TT4,I AND XPX2 IOR 1 STA TT4,I LDA TT5,I AND XPX2 IOR 1 STA TT5,I LDA TT6,I AND XPX2 IOR 1 STA TT6,I JSB CRMF,I PRSC LDA TT7 LDB TT8 JSB TTY,I JSB CRMF,I JSB IMPUT,I JMP PRSC AND XPX1 LDB TT9 STB TT10 STA 1 LDA TT10,I AND XPX2 IOR 1 STA TT10,I ISZ TT10 LDA TT10,I AND XPX2 IOR 1 STA TT10,I ISZ TT10 ISZ TT10 640 LDA TT10,I AND XPX2 IOR 1 STA TT10,I ISZ TT10 LDA TT10,I AND XPX2 IOR 1 STA TT10,I PUSC JSB CRMF,I LDA TT11 LDB TT12 JSB TTY,I JSB CRMF,I JSB IMPUT,I JMP PUSC AND XPX1 LDB TT13 STB TT10 STA 1 LDA TT10,I AND XPX2 IOR 1 STA TT10,I ISZ TT10 LDA TT10,I AND XPX2 IOR 1 STA TT10,I ISZ TT10 LDA TT10,I AND XPX2 IOR 1 STA TT10,I JMP 4000B XPX1 OCT 77 XPX2 OCT 177700 TT1 DEF TTY1-1 TT2 DEF TTY2-1 TT3 DEF STOP.+1 TT4 DEF TTY2 TT5 DEF TTY2+1 TT6 DEF TTY2+6 TT7 DEC 18 TT8 DEF *+1 ASC 9,PHOTOREADER SC? TT9 DEF READ1 TT10 BSS 1 TT11 DEC 10 TT12 DEF *+1 ASC 5,PUNCH SC? TT13 DEF PUN1+1 END 0>6 [ i 22649-80001 A SC 0122 MICROCODED INTEGER SORT             H0101 $ORIGIN=1006 JMP START * * MICROCODED SORT * SORTS AN INTEGER ARRAY INTO ASCENDING ORDER * * CALLING PROCEDURE:- * LDA NUMBER OF ELEMENTS(>0) * LDB ARRAY ADDRESS(NOT INDIRECT) * OCT 105140 * ON RETURN A=0,B UNCHANGED * * TO FOLLOW MICROCODE OPERATIONS SEE ATTATCHED * SIMULATION IN BASIC * * GLYN HARRIS--HP SLOUGH--SEPT 73 * $ORIGIN=1013 START IOR M CW UNC IOR P IOR T A IOR Q L110 CFLG A LWF A R1 TBZ INC P UNC JMP EXIT L140 P IOR S4 L150 B S4 ADD F F DEC S1 A S1 ADD S2 S1 IOR M RW T IOR S3 S2 IOR M RW T IOR F F S3 SUB NEG JMP L220 S1 IOR M CW UNC IOR F RRS IOR T S2 IOR M CW UNC IOR S3 IOR T A S4 SUB F F NOR F F INC S4 F IOR NEG JMP L150 L220 P INC P A NOR F F INC S1 Q S1 ADD F F P SUB NEG JMP L140 JMP L110 EXIT IOR M RW T IOR P EOP IOR $END ASMB,A,B,L * * ASSEMBLER TEST CASE FOR MICROCODED SORT * * GLYN HARRIS--HP SLOUGH--SEPT 73 * ORG 100B BEGIN CLC 0,C LDA M1000 SET COUNTER TO STA CNTR STORE 1000 LOCATIONS LDB ARAD GET ARRAY ADDRESS LDA P1000 FIRST NUMBER IN ARRAY=1000 NEXT STA 1,I STORE NUMBER ADA MIN1 REDUCE NUMBER BY 1 INB INCREMENT ADDRESS ISZ CNTR BUMP COUNTER AND CHECK FOR ZERO JMP NEXT LOOP UNTIL 1000 DONE HLT 1 PAUSE TO EXAMINE MEMN  ORY LDA P1000 LOAD A NUMBER OF ELEMENTS LDB ARAD LOAD B ARRAY ADDRESS OCT 105140 GO TO MICROCODE ROUTINE HLT 2 PAUSE TO REEXAMINE ARRAY JMP 100B REPEAT FROM BEGINNING M1000 DEC -1000 P1000 DEC 1000 CNTR NOP MIN1 DEC -1 ARAD OCT 200 ORG 200B BSS 1000 END 5 REM BASIC SIMULATION OF MICROCODED SORT 6 REM GLYN HARRIS--HP SLOUGH--SEPT 73 10 DIM D[200] 20 LET A=N=10 30 FOR I=1 TO N 40 LET D[I]=INT(RND(0)*50+.5) 50 NEXT I 60 PRINT 70 PRINT "RANDOM NUMBERS" 80 PRINT 90 GOSUB 310 100 LET Q=A 110 LET A=INT(A/2) 120 IF A=0 THEN 250 130 LET P=1 140 LET S4=P 150 IF D[S4+A]-D[S4] >= 0 THEN 220 160 LET T=D[S4] 170 LET D[S4]=D[S4+A] 180 LET D[S4+A]=T 190 LET S4=S4-A 200 IF S4<1 THEN 220 210 GOTO 150 220 LET P=P+1 230 IF P>Q-A THEN 110 240 GOTO 140 250 PRINT 260 PRINT "SORTED NUMBERS" 270 PRINT 280 GOSUB 310 290 PRINT 300 STOP 310 FOR I=1 TO N 320 FOR J=1 TO D[I] 330 PRINT "*"; 340 NEXT J 350 PRINT 360 NEXT I 370 RETURN 380 END ]o  \c 22653-80001 1500 SC 0122 READ TIME FROM HP 5666A CLOCK             H0101 ASMB,R,L,T,C CHRONOLOG READ ROUTINE HED <> NAM GTIME,7 ENT GTIME EXT .ENTR * * DECLARE SELECT CODE FOR CLOCK INTERFACE: CLK EQU 11B * * HARDWARE REQUIRED: * HP 5666A "CHRONOLOG" CLOCK WITH INTERFACE * * CALLING SEQUENCE: * * DIMENSION IBUFF("N") * . * . * CALL GTIME(IBUFF,LGTH) * OR * CALL GTIME(IBUFF) [5 WORDS READ] * * (WHERE LGTH IS SMALLER THAN OR EQUAL TO "N" * AND DOES NOT EXCEED 5) * * RETURNED VALUES: * * IBUFF(1) - MONTH * IBUFF(2) - DAY * IBUFF(3) - HOUR (0 TO 23) * IBUFF(4) - MINUTE * IBUFF(5) - SECOND * * LESS THAN 5 ITEMS MAY BE REQUESTED * * * THIS ROUTINE REQUIRES MEMORY PROTECT TO BE * TURNED OFF TO ALLOW THE I/O INSTRUCTIONS TO * BE EXECUTED IN SOME OPERATING SYSTEMS. * * * BUF NOP LGTH DEF D5 * GTIME NOP JSB .ENTR DEF BUF LDA LGTH,I SSA IF IT IS IN WORDS JMP *+3 ALS CONVERTS WORD COUNT CMA,INA TO NEGATIVE CHAR, COUNT STA BCNT SAVE BUFFER COUNTER ADA C10 BUFFER LENGTH SSA,RSS >10 JMP *+3 NO, SKIP LDA CM10 YES, SET BUFFER STA BCNT LENGTH = -10 CLA,INA INITIATE STROBE CODE AND U/F STA CODE FLAG STA ULFL AGAIN LDA CODE (A)=STROBE CODE CMA SET FOR "HOLD" AND STROBE W.1 OTA CLK OUTPUT COMMAND CMA CONVERT BACK TO STROBE AND RAL STA CODE SET NEXT STROBE CODE W.5 LIB CLK READ BCD CODE ELB,CLE,ERB OK, CLEAR STB TEMP ADB CM10 CODE>11B SSB,RSS CLB,RSS YES, SET CODE=0 LDB TEMP (B)=CODE LDA ULFL (A)=UPPER LOWER FLAG SLA,RSS IF ULFL=ODD,CODE IS IST DIGIT JMP *+7 LDA B (A)=(B)=CODE    ALF,RAR CODEX8 BLS CODEX2 ADB A (B)=CODEX10 STB BUF,I SAVE 1ST DIGIT JMP *+4 ADB BUF,I ADD THE 1ST AND 2ND DIGIT STB BUF,I SAVE IN BUFFER ISZ BUF INCREMENT BUFFER ADD ISZ ULFL UPDATE FLAG ISZ BCNT READING COMPLETE? JMP AGAIN NO, READ NEXT LDA BMAX W.6 OTA CLK CLEAR HOLD COMMAND WITHOUT STROBE LDA .D5 STA LGTH JMP GTIME,I * * CONSTANTS * A EQU 0 B EQU 1 BCNT NOP CODE NOP TEMP NOP ULFL NOP CM10 DEC -10 C10 DEC 10 BMAX OCT 77777 .D5 DEF D5 D5 DEC 5 END  ]d 22653-80002 1500 SC 0122 READ TIME FROM HP 5666A CLOCK             H0101 FTN,L PROGRAM TT DIMENSION IT(5) CALL GTIME(IT,5) WRITE(1,10)IT 10 FORMAT("TIME IS NOW "4(I2":")I2/) END O ^d 22654-80001 1500 SC 0122 EAU + FLOATING POINT EXTERNAL REF. OPTIM.             H0101 ASMB,L,C * * * PROGRAM XOPT * * * JOHN PHILLIPS * CHEMISTRY DEPARTMENT * UNIVERSITY OF ARIZONA * * TO OPTIMIZE THE MATH LIBRARY AND FORTRAN PROGRAMS BY REPLACING * ALL EAU, FLOATING POINT, AND USER DEFINED MICRO PROGRAM EXTERNAL * REFERENCES WITH THEIR PROPER HARDWARE OP CODES. * * PARAMETER: * IF BIT 0 IS SET THEN ALL EAU EXTERNALS ARE REPLACED. * IF BIT 1 IS SET THEN ALL FLOATING POINT EXTERNALS ARE REPLACED. * IF BIT 2 IS SET THEN USER SPECIFIED EXTERNALS ARE REPLACED. * NAM XOPT,3 EXT EXEC SUP GO LDA 1,I LOAD A PRARAMETER STA FLAGS SAVE IT INB LDB 1,I LOAD SECOND PARAMETER SZB CLB,INB,RSS READ FROM USER FILE CCB READ FROM JOB BINARY AREA STB INF SAVE IT LDB BATCH CPB SYSTY INPUT FROM SYSTEM TELETYPE? ADB B400 YES, SET ECHO FLAG STB IOU RAR,RAR CHECK BIT 2 SLA,RSS JMP GORA NO USER OP CODES LDB BATCH CPB SYSTY SYSTEM TELETYPE FOR INPUT? JMP UXMES YES, GO DO IT GOUX LDA M24 STA T SET MAXIMUM COUNT AT 20 LDA UNAMT STA T1 SET POINTER FOR EXTERNALS TABLE LDA UOPTA STA T2 SET POINTER FOR OP CODE TABLE GUXR JSB EXEC INPUT NAME,OP CODE DEF *+5 DEF B1 DEF IOU DEF BUF DEF M12 CMB STB T3 NUMBER OF CHARACTERS INPUT LDA BUF CPA SE END OF INPUT? JMP GORA YES, CONTINUE WITH REST OF PROGRAM LDA ABUF RAL MAKE BYTE POINTER STA T4 LDA M6 MAXIMUM COUNTER FOR EXTERNAL NAMES STA T5 GUXC JSB GCHAR GET CHARACTER FROM INPUT JMP UXERR ERROR IF END OF LINE CPA COMMA COMMA INPUT? JMP COMML LDB 0 LDA B177 SEZ STORE CHARACTER INTO EXTERNAL ALF,ALF NAMES TABLE AND T1,I SEZ,RSS BLF,BLF IOR 1 STA T1,I F SEZ ISZ T1 INCREMENT TABLE POINTER ISZ T5 MAXIMUM COUNT EXCEEDED? JMP GUXC NO, GO GET NEXT CHARACTER UXERR JSB MES ERROR MESSAGE DEF UXBMS JMP OFF COMML LDA T5 SSA,INA ISZ T1 INCREMENT TO NEXT NAME POSITION SSA,INA JMP COMML+1 CLA STA T2,I CLEAR OP CODE ACCUMULATOR GUXN JSB GCHAR GET A NUMBER JMP GUXOC END OF LINE ADA M70 SSA,RSS TEST DIGIT JMP UXERR ADA B10 SSA JMP UXERR LDB T2,I BLF,RBR ROTATE PREVIOUS DIGITS IOR 1 STA T2,I STORE NEW OP CODE LDA 1 AND B7 SZA CHECK FOR OVERFLOW JMP UXERR JMP GUXN GUXOC ISZ T2 INCREMENT OP CODE POINTER ISZ T TEST FOR END OF TABLES JMP GUXR GO GET NEXT ONE GORA LDA INF CHECK INPUT FLAG SSA,RSS JMP LEP INPUT USER FILE NAME LDA B2 STA INU SET FOR INPUT FROM JBIN LDA JBINS INPUT FROM JOB BINARY AREA SZA,RSS ANYTHING IN IT? JMP EJBIN JBIN EMPTY SO ERROR AND B377 ISOLATE SECTOR CMA,INA STA T1 SAVE IT LDA JBINS ALF,ALF AND B377 ISOLATE TRACK STA T2 LDA JBINC AND B377 ADA T1 STA NSECT LDA JBINC ALF,ALF AND B377 CMA,INA ADA T2 MPY SECTR ADA NSECT STA NSECT SZA,RSS JMP EJBIN LDA JBINS LDB B102 JSB EXEC RESET JOB BINARY POINTER DEF *+2 DEF M23 JMP LEK LEP LDA BB STA BUF INITIALIZE BUFFER FOR STA BUF+1 FILE NAME STA BUF+2 LDA BATCH LU# FOR INPUT DEVICE CPA SYSTY SAME AS SYSTEM TELETYPE JMP RMES YES, TYPE QUESTION GOR JSB EXEC INPUT FILE NAME DEF *+5 DEF B1 DEF IOU DEF BUF DEF B3 JSB EXEC cM SEARCH FOR FILE NAME DEF *+4 DEF B22 DEF BUF DEF NSECT LDB NSECT SZB,RSS IS FILE DEFINED? JMP BADUF LEK STA T1 AND B377 INITIAL SECTOR OF FILE STA SECTO LDA T1 ALF,ALF AND B377 STA TRACK INITIAL TRACK OF FILE LDA JBINS SZA ANYTHING IN JOB BINARY? JMP CJBIN YES, CONTINUE AT END OF IT LDA DISCO AND B377 LAST TRACK NUMBER ALF,ALF LDB B101 JSB EXEC SET INITIAL JOB BINARY ADDRESS DEF *+2 DEF M23 JSB EXEC DEF *+2 DEF M23 CJBIN LDA CBA STA FWRA SAVE STARTING ADDRESS OF THIS SECTOR JSB RUFW GET FIRST WORD OF RECORD SZA,RSS END OF SECTOR? JMP EOS STA T SAVE IT ALF,ALF AND B377 RECORD LENGTH CMA,INA,SZA,RSS JMP ERR STA LEN SAVE LENGTH OF RECORD JSB RUFW GET RECORD TYPE CODE STA T1 ALF,RAR AND B7 ADA RTYPE ADDRESS OF ROUTINE FOR THIS TYPE JMP 0,I RTYPE DEF *+1,I DEF ERR DEF NAM DEF IGN DEF DBL DEF EXT DEF IGN DEF ERR DEF ERR EOS CCA STA INCT SKIP REST OF THIS SECTOR LDA FWRA STA CBA JMP CJBIN * * * DBL * * ROUTINE TO PROCESS A DATA BLOCK RECORD * DBL LDA T1 AND B77 NUMBER OF WORDS IN BLOCK CMA,INA,SZA,RSS JMP ERR ERROR IF NONE STA T1 LDA NUMEX NUMBER OF EXTERNALS TO LOOK FOR SZA,RSS JMP IGN NO NEED TO CHECK IF NONE LDA CBA STA T SAVE POINTER TO CHECKSUM JSB RUFW CHECKSUM WORD JSB RUFW RELATIVE LOAD ADDRESS DBL1 LDA CBA STA T3 SAVE POINTER TO THIS WORD IN OUTPUT LDA M5 COUNTER STA T4 JSB RUFW LOAD MODE WORD DBL2 ALF,RAR STA T5 AND B7 CPA B4 EXTERNAL>? JMP DEXT YES, GO CHECK IT CPA B5 RELOCATABLE? JSB RUFW YES, SKIP AN EXTRA WORD JSB RUFW DBL3 ISZ T1 END OF RECORD YET? RSS JMP CJBIN YES, GO GET NEXT ONE LDA T5 ISZ T4 END OF THIS GROUP OF 5? JMP DBL2 NO JMP DBL1 YES DEXT JSB RUF GET EXTERNAL CODE STA T6 AND B377 LDB NUMEX NUMBER OF ID NUMBERS TO CHECK STB T2 LDB EXTP POINTER TO TABLE DEXT1 CPA 1,I COMPARE EXTERNAL ID NUMBERS JMP DEXTF THIS IS ONE OF THEM ADB B2 SKIP TO NEXT ONE ISZ T2 END OF TABLE YET? JMP DEXT1 NO, CONTINUE SEARCH LDA T6 JSB WJB OUTPUT UNMODIFIED EXTERNAL JMP DBL3 DEXTF INB POINT TO ABSOLUTE CODE LDA T6 CMA,INA ADA T,I CALCULATE NEW CHECKSUM ADA 1,I STA T,I LDA 1,I LOAD IT JSB WJB REPLACE EXTERNAL LDB T4 CMB CALCULATE TYPE CODE POSITION ADB ANDT LDA 1,I LDB T3,I OLD TYPE CODE WORD CMB,INB ADB T,I SUBTRACT IT FROM CHECKSUM AND T3,I SET TO TYPE ZERO STA T3,I ADB 0 ADD TO CHECKSUM STB T,I JMP DBL3 ANDT DEF *+1 OCT 177760 OCT 177616 OCT 176176 OCT 161776 OCT 17776 * * * EXT * * ROUTINE TO PROCESS EXTERNAL RECORDS * EXT LDA T1 AND B37 NUMBER OF ITEMS IN THIS RECORD CMA,INA STA T1 JSB RUFW CHECKSUM CLA STA T3 SET INITIAL CHECKSUM STA T SET INITIAL ITEM COUNT EXT1 LDA CBA STA T2 SAVE BEGINING OF THIS ITEM JSB RUFW STA T4 SAVE FIRST TWO CHARACTERS JSB RUFW STA T5 SAVE SECOND TWO CHARACTERS JSB RUFW STA T6 SAVE LAST CHARACTER CLA STA T7 SET INITIAL TABLE POSITION COUNTER LDB NAMTB NAME TABLE POINTER EXT2 LDA 1,I ; CPA T4 COMPARE EXTERNAL NAMES INB,RSS JMP EXT3 NOT EQUAL LDA 1,I CPA T5 INB,RSS JMP EXT3+1 NOT EQUAL LDA T6 AND U8B ISOLATE LAST CHARACTER IOR B40 CPA 1,I INB,RSS JMP EXT3+2 NOT EQUAL LDB T7 LOAD TABLE POSITION CODE ADB M4 IS THIS EAU OR FLOATING POINT LDA FLAGS SSB,RSS RAR ADB M6 OR USER DEFINED? SSB,RSS RAR SLA,RSS JMP EXT4 NO, SKIP IT LDA T2 STA CBA RESET BUFFER POINTER TO DELETE IT LDA T6 AND B377 GET EXTERNAL ID NUMBER STA IDT,I SAVE IT IN TABLE ISZ IDT LDB T7 POSITION COUNTER ADB OPTB INDEX INTO OP CODE TABLE LDA 1,I LOAD REPLACEMENT OP CODE STA IDT,I ISZ IDT INCREMENT TABLE POINTER CCA ADA NUMEX INCREMENT NUMBER OF EXTERNALS IN TABLE STA NUMEX JMP EXT5 EXT3 INB INB INB ISZ T7 INCREMENT POSITION POINTER LDA T7 CPA B36 END OF EXTERNALS TABLE? RSS YES JMP EXT2 NO, CONTINUE SEARCH EXT4 LDA T3 ADA T4 CALCULATE NEW CHECKSUM ADA T5 ADA T6 STA T3 ISZ T EXT5 ISZ T1 JMP EXT1 LDA T SZA,RSS ANY ITEMS LEFT IN EXT RECORD? JMP EXT6 NO, DELETE WHOLE RECORD ADA 0 MULTIPLY BY 3 ADA T ADA B3 ADD 3 FOR INITIAL WORDS IN RECORD ALF,ALF STA FWRA,I SET NEW RECORD LENGTH LDA T IOR BITF NUMBER OF ITEMS ISZ FWRA STA FWRA,I NEW SECOND WORD OF RECORD ADA T3 CALCULATE CHECKSUM ISZ FWRA STA FWRA,I JMP CJBIN EXT6 LDA FWRA STA CBA RESET BUFFER POINTER TO DELETE RECORD JMP CJBIN GO PROCESS NEXT ONE NAMTB DEF *+1 TABLE OF EXTERNAL NAMES ASC 3,.DLD ASC 3,.DST ASC 3,.M,PY ASC 3,.DIV ASC 3,.FAD ASC 3,.FSB ASC 3,.FMP ASC 3,.FDV ASC 3,IFIX ASC 3,FLOAT UNAM REP 20 ASC 3, OPTB DEF *+1 TABLE OF OP CODES OCT 104200 OCT 104400 OCT 100200 OCT 100400 OCT 105000 OCT 105020 OCT 105040 OCT 105060 OCT 105100 OCT 105120 UOPT BSS 20 EXTP DEF *+2 POINTER TO ID NUMBER STORAGE IDT DEF *+1 POINTER TO NEXT WORD IN TABLE BSS 30 ID NUMBER TABLE * * * NAM * * ROUTINE TO PROCESS NAM RECORDS * NAM LDA EXTP STA IDT RESET ID NUMBER TABLE CLA STA NUMEX ZERO ID NUMBERS LDA FWRA STA CBA LDA EBU CMA,INA CALCULATE NUMBER OF WORDS ADA CBA LEFT IN THIS SECTOR ADA B200 SZA CPA M200 JMP IGNN SSA,RSS ADA M200 STA T2 STORE LOOP COUNTER CSECL CLA JSB WJB CLEAR REST OF SECTOR ISZ T2 JMP CSECL IGNN LDA T JSB WJB LDA T1 JSB WJB IGN ISZ LEN IGNORE REST OF THIS RECORD ISZ LEN IGN1 JSB RUFW COPY A WORD TO OUTPUT BUFFER ISZ LEN COUNT WORDS JMP IGN1 JMP CJBIN GO DO NEXT ONE * * * GCHAR * * SUBROUTINE TO GET A CHARACTER FROM THE PARAMETERS INPUT * BUFFER. * GCHAR NOP ISZ T3 INCREMENT CHARACTER COUNTER RSS JMP GCHAR,I END OF LINE LDB T4 LOAD BYTE POINTER LDA UCB CLE,SLB,ERB ALF,ALF AND 1,I ISZ T4 INCREMENT BYTE POINTER SEZ,RSS ALF,ALF ISZ GCHAR JMP GCHAR,I * * * RUFW * * SUBROUTINE TO GET A WORD FROM THE INPUT FILE, WRITE IT TO THE OUTPUT * FILE, AND RETURN IT TO THE CALLING ROUTINE. * RUFW NOP JSB RUF GET A WORD JSB WJB WRITE IT TO OUTPUT FILE JMP RUFW,I * * * RUF * * SUBROUTINE TO GET A WORD FROM THE INPUT FILE, CHECKING FOR SEC$TOR * BOUNDARIES. * RUF NOP ISZ INCT INCREMENT INPUT COUNTER JMP RUFWG JUST LOAD IT THIS TIME LDA NSECT SZA,RSS ANY SECTORS LEFT? JMP DONE NO, END OF PROGRAM ADA M1 STA NSECT DECREMENT NUMBER OF SECTORS LEFT JSB EXEC READ IN NEXT SECTOR DEF *+7 DEF M1 DEF INU ABUF DEF BUF DEF B200 DEF TRACK DEF SECTO LDA M200 RESET COUNTER STA INCT LDA ABUF STA INPT RESET POINTER LDB INF LOAD TRACK DIRECTION FLAG LDA SECTO INA INCREMENT SECTOR NUMBER CPA SECTR END OF TRACK? CLA ADB TRACK INCREMENT OR DECREMENT SZA,RSS END OF TRACK? STB TRACK YES, STORE NEXT TRACK NUMBER STA SECTO STORE NEXT SECTOR NUMBER RUFWG LDA INPT,I LOAD A WORD ISZ INPT INCREMENT POINTER JMP RUF,I * * * WJB * * SUBROUTINE TO WRITE A WORD TO THE JOB BINARY BUFFER. * WJB NOP STA CBA,I STORE INTO BUFFER ISZ CBA INCREMENT POINTER STA WJBW SAVE WORD LDB FDT LOAD AREADY DUMPED FLAG LDA CBA CPA EBL END OF THE LOWER BUFFER? JMP DBU YES, SO DUMP UPPER BUFFER CPA EBU END OF THE UPPER BUFFER? JMP DBLO YES, SO DUMP LOWER BUFFER WJBR LDA WJBW JMP WJB,I DBLO LDA AOB STA CBA RESET BUFFER POINTER CMB,SSB,RSS SWITCH FLAG STATE JMP WJBR DON'T DO IT TWICE JMP DBU+2 GO DUMP SECTOR DBU CMB,SSB SWITCH FLAG STATE JMP WJBR SKIP OUTPUT STB FDT STORE FLAG FOR NEXT TIME LDA JBINC CPA SYNTS JOB BINARY ALL FULL? JMP NROOM AND B377 STA OSECT SECTOR FOR THIS OUTPUT LDA JBINC ALF,ALF AND B377 STA OTRAC TRACK FOR THIS OUTPUT JSB EXEC DEF *+7 DEF M2 WRITE TO JOB BINARY AREA DEF B2 CBA DEF OBUF DEF 0B200 DEF OTRAC DEF OSECT CCB ADB OTRAC LDA OSECT INA NEXT SECTOR CPA SECTR END OF TRACK? CLA,RSS YES, START NEXT TRACK INB NO, CONTINUE WITH THIS TRACK BLF,BLF IOR 1 COMBINE TRACK AND SECTOR LDB B102 ADDRESS OF JBINC JSB EXEC STORE NEXT TRACK/SECTOR ADDRESS DEF *+2 DEF M23 JMP WJBR WJBW NOP * * * DONE * * ROUTINE TO FINISH OUT LAST SECTOR AND TERMINATE PROGRAM. * DONE LDA M377 STA T1 DONE1 CLA JSB WJB ISZ T1 JMP DONE1 OFF JSB EXEC PROGRAM COMPLETION DEF *+2 DEF B6 * * * ERROR MESSAGES * NROOM JSB MES DEF NRMES JMP OFF RMES JSB MES DEF FNMES JMP GOR ERR JSB MES DEF BADMD JMP OFF BADUF JSB MES DEF BADMF JMP GORA UXMES JSB MES DEF UXNIN JMP GOUX EJBIN JSB MES DEF EJMES JMP OFF MES NOP LDB MES,I ADDRESS OF MESSAGE ISZ MES SET RETURN ADDRESS LDA 1,I LOAD LENGTH OF MESSAGE INB POINT TO FIRST CHARACTER STA MESL STORE MESSAGE LENGTH STB MESA STORE MESSAGE ADDRESS JSB EXEC TYPE MESSAGE ON SYSTEM TTY DEF *+5 DEF B2 DEF SYSTY MESA NOP DEF MESL JMP MES,I MESL NOP * * * CONSTANTS AND STORAGE SPACES * T BSS 1 T1 BSS 1 T2 BSS 1 T3 BSS 1 T4 BSS 1 T5 BSS 1 T6 BSS 1 T7 BSS 1 FLAGS BSS 1 IOU BSS 1 NSECT BSS 1 SECTO BSS 1 TRACK BSS 1 OSECT BSS 1 OTRAC BSS 1 FWRA BSS 1 LEN BSS 1 NUMEX BSS 1 INPT BSS 1 INF BSS 1 INCT OCT -1 FDT OCT 0 EBL DEF OBUF+128 EBU DEF OBUF+256 AOB DEF OBUF UNAMT DEF UNAM UOPTA DEF UOPT UCB OCT 77400 INU OCT 3 . EQU 53B M377 OCT -377 M200 OCT -200 M70 OCT -70 M24 OCT -24 M23 OCT -23 M12 OCT -12 M6 EQU .-6 M5 EQnn640U .-5 M4 EQU .-4 M2 EQU .-2 M1 EQU .-1 B1 EQU .+1 B2 EQU .+2 B3 EQU .+3 B4 EQU .+4 B5 EQU .+5 B6 EQU .+6 B7 EQU .+7 B10 EQU .+10B B22 OCT 22 B36 OCT 36 B37 EQU 71B B40 OCT 40 B77 EQU 72B B101 OCT 101 B102 OCT 102 B177 EQU 73B B200 OCT 200 B377 EQU 74B B400 OCT 400 BITF OCT 100000 U8B EQU 75B SE ASC 1,/E BB ASC 1, COMMA OCT 54 BATCH EQU 111B SYSTY EQU 112B JBINS EQU 101B JBINC EQU 102B SECTR EQU 116B DISCO EQU 154B SYNTS EQU 160B BADMF DEC -14 ASC 7,FILE UNDEFINED NRMES DEC -8 ASC 4,JBIN OVF FNMES DEC -14 ASC 7,TYPE FILE NAME BADMD DEC -14 ASC 7,ILLEGAL RECORD UXBMS DEC -5 ASC 3,ERROR UXNIN DEC -24 ASC 12,TYPE EXTERNALS, OP CODES EJMES DEC -10 ASC 5,JBIN EMPTY * * * BUFFERS * BUF BSS 128 OBUF BSS 256 END GO '6 _ m 22655-80001 1500 SC 0122 DESCRIPTION DIRECTORY FOR RTE FILE MAN.             H0101 FTN4,L PROGRAM DIRCT(3,90) DIMENSION IFIL(3),IT(32),NDIRC1(3),NDIRC2(3),NDIRC3(3) COMMON JDRTRK,ISCTR,ISCT,ITRK,LUCR,LU,LUOP,LUIN,LBUF(128), 1NFILS,IFRST,NMFIL(1000),LBLF(750),JSECTR,IPNT, 2LCODE,ICEL,MXFILS C C C C************************************************************** C * C THIS PROGRAM IS DESIGNED TO MAINTAIN A DISK FILE CONTAINING * C THE SYMBOLIC NAMES OF SELECTED USER FILES TOGETHER WITH AS * C MANY AS 64 CHARACTERS OF DESCRIPTIVE INFORMATION ON EACH FI-* C LE. IT MUST HAVE ACCESS TO A BINARY DATA FILE * C WHOSE LENGTH IN BLOCKS IS CALCULATED FROM THE FOLLOWING * C EXPRESSION: * C #SECTORS = (MXFILS*4 + 2)/64 + MXFILS/2 + 2 * C #BLOCKS = (#SECTORS(64 WORDS) + 1)/2 * C WHERE, MXFILS = THE MAXIMUM NUMBER OF ENTRIES ALLOWED. * C * C A LISTING OF THE EXECUTION DIRECTIVES IS GIVEN UPON CALLING * C THIS PROGRAM AND EACH TIME AN IMPROPER DIRECTIVE IS ISSUED. * C THE DIRECTORY FILE MAY BE CLEARED BY ISSUING THE INITIALIZE * C DIRECTIVE (%%). THIS DIRECTIVE IS NOT LISTED WITH THE * C OTHERS SINCE IT'S EFFECT IS NOT REVERSABLE AND SHOULD ONLY * C BE USED AFTER CAREFULL CONSIDERATION. THE PROGRAM IS SELF * C INITIALIZING THE FIRST TIME IT IS EXECUTED AFTER BEING * C INSTALLED ON A USER CARTRIDGE. IT MUST BE INSTALLED ON * C EACH CARTRIDGE FOR WHICH IT WILL MAINTAIN A DIRECTORY. * C A BACK UP DIRECTORY FILE MAY BE KEPT ON PAPER OR MAG TAPE * C BY USING THE DI DIRECTIVE AFTER ASSIGNING THE DESIRED LU. * C * C MAURICE C. COTE AUGUST 15, 1973 * C REVISION A. JANUARY 8, 1974 * C H.P. EASTERN SALES REGION LEXINGTON MASS. * C*rN************************************************************* C C C DATA NDIRC1/2HDI,2HRC,2H1 / DATA NDIRC2/2HDI,2HRC,2H2 / DATA NDIRC3/2HDI,2HRC,2H3 / C C GET THE LOGICAL UNITS AS PASSED FROM THE SCHEDULER. C PARAMETER 1 = CARTRIDGE LU DEFAULT = 2 C PARAMETER 2 = LIST DEVICE LU DEFAULT = 6 C PARAMETER 3 = OPERATORS CONSOLE LU DEFAULT = 1 C PARAMETER 4 = INPUT DEVICE LU DEFAULT = OPERATORS CONSOLE C CALL RMPAR(LUCR) C IF(LU .EQ.0) LU = 6 IF(LUCR.EQ.0) LUCR = 2 IF(LUOP.EQ.0) LUOP = 1 IF(LUIN.EQ.0) LUIN = LUOP C C C MXFILS = THE MAXIMUM NUMBER OF DIRECTORY ENTRIES. C IN ORDER TO CHANGE THIS MAXIMUM, IT IS ONLY NECESSARY C TO CHANGE THE VALUE OF MXFILS AND THE DIMENSION OF THE C VARIABLES NMFIL & LBLF IN THE COMMON DECLARATION. C THESE SHOULD BE DIMENSIONED TO 4*MXFILS & 3*MXFILS C RESPECTIVELY. C MXFILS = 250 C GO INITIALIZE THE PROGRAMS COMMON C 100 CALL LINK(NDIRC1) C C SAVE THE TAT ENTRY IF LU = 2 - ELSE SET ICEL = 0 C ITATA = IGET(1656B) + JDRTRK ICEL = 0 IF(LUCR.EQ.102B) ICEL = IGET(ITATA) C C C GET THE FILE NAMES IN THE DIRECTORY AND THE NUMBER OF ENTRIES C C WILL THIS READ CROSS A TRACK BOUNDARY ? C 200 L1 = MXFILS*4 + 2 L2 = -1 LSMAX = 95 - L1/64 IF(JSECTR.GT.LSMAX) GO TO 202 CALL EXEC(1,LUCR,NFILS,L1,JDRTRK,JSECTR) GO TO 205 C C SPLIT THE READ BETWEEN THE TWO TRACKS AS REQUIRED. C 202 L1 = (96 - JSECTR)*64 L2 = MXFILS*4 + 2 - L1 JP = L1 - 2 CALL EXEC(1,LUCR,NFILS,L1,JDRTRK,JSECTR) CALL EXEC(1,LUCR,NMFIL(JP),L2,JDRTRK + 1,0) C C OUTPUT A LIST OF THE PROGRAM DIRECTIVES. C 205 WRITE(LUOP,505) C C GO INITIALIZE THE DIRECTORY IF THIS IS THE FIRST EXECUTION C UPON INSTALLATION OF THE DIRECTORY. C IF(IFRST.EQ.125252B)210,6005 C C GET THE FUNCTION CODE C 210 WRITE(LUOPf#,510) C C SAVE THE NAME FILE ON DISK C IF(ICEL.NE.0) CALL IPUT(ITATA,77777B) CALL EXEC(2,LUCR,NFILS,L1,JDRTRK,JSECTR) C C TWO CALLS TO EXEC(2 REQUIRED IF CROSSING TRACK BOUNDARY. C IF(L2)220,215 C 215 IF(ICEL.NE.0) CALL IPUT(ITATA+1,77777B) CALL EXEC(2,LUCR,NMFIL(JP),L2,JDRTRK + 1,0) IF(ICEL.NE.0) CALL IPUT(ITATA+1,ICEL) 220 IF(ICEL.NE.0) CALL IPUT(ITATA,ICEL) READ(LUOP,515)LCODE C IF(LCODE.EQ.2HDI) CALL LINK(NDIRC2) IF(LCODE.EQ.2HLI) CALL LINK(NDIRC2) IF(LCODE.EQ.2HPU) CALL LINK(NDIRC2) IF(LCODE.EQ.2HUP) CALL LINK(NDIRC2) IF(LCODE.EQ.2HEN) CALL LINK(NDIRC3) IF(LCODE.EQ.2H%%) CALL LINK(NDIRC2) IF(LCODE.EQ.2HLU) CALL LINK(NDIRC2) IF(LCODE.EQ.2HOF) GO TO 9000 IF(LCODE.EQ.2H?? ) GO TO 205 IF(LCODE.EQ.2HCR) GO TO 300 GO TO 210 C C GET A NEW CARTRIDGE LU NUMBER C 300 WRITE(LUOP,520) READ(LUOP,*)LUCR GO TO 100 C C THIS SECTION FOR THE INITIAL INITIALIZATION. C 6005 NFILS = -1 CALL LINK(NDIRC2) GO TO 210 C C C THIS SECTION WILL RETURN AFTER TOOTING THE CONSOLE HORN C C 9000 WRITE(LUOP,580) C C C C FORMAT SECTION C C C 505 FORMAT(/26X,"USER FILE DIRECTORY"//"COMMANDS ARE :"/, 1"(LI)ST - LIST A GIVEN ENTRY"/, 2"(UP)DATE - LIST ALL FILE NAMES NOT IN THE DIRECTORY"/ 3"(DI)RECTORY - LIST ALL ENTRIES IN THE DIRECTORY"/ 4"(PU)RGE - REMOVE ALL UNUSED ENTRIES FROM THE DIRECTORY"/ 6"(LU) - RESET THE LIST & INPUT LU"/ X"(??) - LIST ALL EXECUTION OPTIONS"/ X"(CR) - CHANGE CARTRIDGE LOGICAL UNIT"/ 5"(EN)TER - ENTER A FILE NAME IN THE DIRECTORY"/ 6"(OF)F - RETURN TO THE SYSTEM EXEC"/) 510 FORMAT(/"NEXT _") 515 FORMAT(A2) 520 FORMAT(/"CARTRIDGE LU _") 580 FORMAT("") C C C END SUBROUTINE GETB COMMON JDRTRK,ISCTR,ISCT,ITRK,LUCR,LU(3),LBUF(128), [ 1NFILS,IFRST,NMFIL(1000),LBLF(750),JSECTR C ITRK = JDRTRK + (ISCTR + JSECTR)/96 ISCT = MOD((ISCTR + JSECTR),96) CALL EXEC(1,LUCR,LBUF,128,ITRK,ISCT) END END$ ASMB,R,L NAM IGET,7 ENT IGET IGET NOP DLD IGET,I SWP LDA 0,I LDA 0,I JMP 1,I END ASMB,R,L NAM LINK,7 ENT LINK,RETRN EXT EXEC,.ENTR NAMAD BSS 1 LINK NOP JSB .ENTR GET SEGMENT NAME DEF NAMAD ADDRESS LDA NAMAD STA CALLP STORE IN SEQUENCE BELOW JSB EXEC PROGRAM SEGMENTLOADING DEF *+3 DEF RCODE SEQUENCE CALLP NOP JMP * * RETRN NOP JMP LINK,I RETURN TO MAIN PROGRAM * RCODE DEC 8 END FTN4,L PROGRAM DIRC1(5,99) DIMENSION IFIL(3),IT(32) COMMON JDRTRK,ISCTR,ISCT,ITRK,LUCR,LU,LUOP,LUIN,LBUF(128), 1NFILS,IFRST,NMFIL(1000),LBLF(750),JSECTR,IPNT, 2LCODE,ICEL,MXFILS C C FIND THE NUMBER OF TRACKS ON THE SYSTEM AND THE FIRST C DIRECTORY TRACK - THEN READ IT. C JOFST = 17 IOFST = 14 IDRTRK = IGET(1756B) - 1 CALL EXEC(1,102B,LBUF,128,IDRTRK,0) C C IS THE DIRECTORY REQUEST FOR THE SYSTEM CARTRIDGE OR C FOR A PERIPHERAL PACK/DISK ? C IF(LUCR.EQ.2) GO TO 35 C C IS THE REQUESTED LOGICAL UNIT MOUNTED ? C DO 20 I=1,125,4 IF(LUCR.EQ.LBUF(I)) GO TO 30 C C QUIT IF THE WORD = 0 C IF(LBUF(I).EQ.0) GO TO 25 20 CONTINUE C C CANT' FIND THE SPECIFIED LU !! C 25 WRITE(LUOP,605) STOP C C GET THE FIRST DIRECTORY TRACK FOR THIS LOGICAL CARTRIDGE. C 30 IDRTRK = LBUF(I+1) IOFST = 0 C C NOW, LOAD THE NAMES FROM THE DIRECTORY INTO ARRAY AND C LOCATE THE DIRECTORY DATA FILE C 35 IPNT = 1 LUCR = LUCR + 100B JDRTRK = -1 40 CALL EXEC(1,LUCR,LBUF,128,IDRTRK,IOFST) C DO 55 J=JOFST,113,16 C C IFMD THE FIRST WORD OF THE NAME = -1 THEN THIS ENTRY HAS BEEN C DELETED. C IF(LBUF(J).EQ.-1) GO TO 55 C C IF THE FIRST WORD OF THE NAME = 0 THEN THIS IS THE END C OF THE DIRECTORY. C IF(LBUF(J).EQ.0) GO TO 100 C C QUIT IF TOO MANY FILES FOR THIS SIZE DIRECTORY C IF(IPNT.EQ.(MXFILS*3 + 1)) GO TO 300 C C NEITHER OF THE ABOVE CASES SO, SAVE THIS NAME. C DO 45 I=0,2 LBLF(IPNT) = LBUF(J+I) 45 IPNT = IPNT + 1 C C IS THIS FILE NAME ? C IF(LBUF(J).NE.2HDI) GO TO 55 IF(LBUF(J+1).NE.2HRC) GO TO 55 IF(LBUF(J+2).NE.2HT$) GO TO 55 C C YES THEN SAVE IT'S TRACK AND SECTOR. C JDRTRK = LBUF(J+4) JSECTR = LBUF(J+5) NSECTS = LBUF(J+6) 55 CONTINUE C C INCREMENT THE SECTOR NUMBER BY 14 - C WRAP AROUND IF SECTOR # >96 OR C DECREMENT TRACK # IF SECTOR # = 96. C JOFST = 1 IOFST = IOFST + 14 IF(IOFST.GE.96) IOFST = IOFST - 96 IF(IOFST.EQ.0) IDRTRK = IDRTRK -1 GO TO 40 C C SAVE THE FILE NAME BUFFER LENGTH IN WORDS. C 100 IPNT = IPNT - 1 C C HAS A DIRECTORY FILE BEEN FOUND ? C AND IS AT LEAST SECTORS (/2 BLOCKS) LONG ? C N = (MXFILS*4 + 2)/64 + MXFILS/2 + 2 IF(JDRTRK.EQ.-1) GO TO 110 IF(NSECTS.LT.N) 120,200 C C DIRECTORY FILE ERROR !! C 110 WRITE(LUOP,500) STOP C 120 N = (N + 1)/2 WRITE(LUOP,510)N STOP 200 CALL RETRN C C DETERMINE CAUSE OF FAILURE - IF DIRCTD FOUND, C CONTINUE THE PROGRAM ELSE QUIT. C 300 WRITE(LUOP,505) C IF(JDRTRK)110,100 C C C C 500 FORMAT(/"FILE NOT FOUND"/) 505 FORMAT(/"MORE THAN 250 FILE NAMES IN FMGR DIRECTORY"/) 510 FORMAT(/" MUST BE",I4," BLOCKS"/) 605 FORMAT(/"CARTRIDGE NOT MOUNTED THIS LU"/) C C END END$ FTN4,L PROGRAM DIRC2(5,99) DIMENSION IFIL(3),IT(32) COMMON JDRTRK,ISCTd-R,ISCT,ITRK,LUCR,LU,LUOP,LUIN,LBUF(128), 1NFILS,IFRST,NMFIL(1000),LBLF(750),JSECTR,IPNT, 2LCODE,ICEL,MXFILS C IF(NFILS.EQ.-1) GO TO 6000 IF(LCODE.EQ.2HLI) GO TO 2000 IF(LCODE.EQ.2HPU) GO TO 3000 IF(LCODE.EQ.2HUP) GO TO 4000 IF(LCODE.EQ.2H%%) GO TO 6000 IF(LCODE.EQ.2HLU) GO TO 7000 C C C C THIS IS THE DIRECTORY LIST SECTION C C C DONT ATTEMPT A DIRECTORY LISTING IF NONE AVAILABLE C 1000 IF(NFILS.EQ.0) CALL RETRN C DO 1100 I=1,NFILS*4,4 C C THIS ENTRY IS DELETED IF LESS THAN 0 C IF(NMFIL(I))1100,1010 C C GET THE RELATIVE SECTOR AND OFFSET FROM WORD 4 OF FILE NAME C 1010 ISCTR = IAND(NMFIL(I + 3),377B) CALL GETB IOFF = NMFIL(I + 3)/256 C C USE PROPER FORMAT IF LU = 6 (LINE PRINTER) C IF(LU.EQ.6) GO TO 1030 WRITE(LU,520)(NMFIL(J),J=I,I + 2),(LBUF(J),J=IOFF,IOFF + 31) GO TO 1100 1030 WRITE(LU,521)(NMFIL(J),J=I,I + 2),(LBUF(J),J=IOFF,IOFF + 31) 1100 CONTINUE C C WRITE A :: C WRITE(LU,590) CALL RETRN C C C THIS IS THE LIST OF INDIVIDUAL ENTRIES SECTION C 2000 WRITE(LUOP,525) READ(LUOP,530)IFIL C DO 2100 I=1,NFILS*4 + 1,4 DO 2050 J=1,3 C IF(IFIL(J).NE.NMFIL(J + I - 1)) GO TO 2100 C 2050 CONTINUE GO TO 2200 2100 CONTINUE C 2110 WRITE(LUOP,535) IFIL CALL RETRN C 2200 ISCTR = IAND(NMFIL(I + 3),377B) CALL GETB IOFF = NMFIL(I + 3)/256 WRITE(LUOP,540)(LBUF(J),J=IOFF,IOFF + 31) CALL RETRN C C C THIS SECTION WILL PURGE ALL ENTRIES OF DELETED FILES FROM THE C DIRECTORY. C C 3000 DO 3500 I=1,NFILS*4,4 DO 3100 J=1,IPNT,3 C IF(NMFIL(I).NE.LBLF(J)) GO TO 3100 C IF(NMFIL(I + 1).NE.LBLF(J + 1)) GO TO 3100 C IF(NMFIL(I + 2).EQ.LBLF(J + 2)) GO TO 3500 C 3100 CONTINUE C NMFIL(I) = -1 3500 CONTINUE CALL RETRN C C C THIS SECTION WILL LIST ALL USER FILE LABELS WHICH ARE NOT C ENTEREOD IN THE DIRECTORY. C C 4000 WRITE(LU,545) DO 4500 I=1,IPNT,3 DO 4100 J=1,NFILS*4,4 C IF(LBLF(I).NE.NMFIL(J)) GO TO 4100 C IF(LBLF(I + 1).NE.NMFIL(J + 1)) GO TO 4100 C IF(LBLF(I + 2).EQ.NMFIL(J + 2)) GO TO 4500 C 4100 CONTINUE C WRITE(LU,550)(LBLF(J),J=I,I + 2) C 4500 CONTINUE WRITE(LU,555) CALL RETRN C C C INITIALIZATION SECTION C 6000 NFILS = 0 IFRST = 125252B C C CLEAR ANY EXISTING FILE NAMES C DO 6010 J=1,MXFILS*4,4 6010 NMFIL(J) = 0 CALL RETRN C C THIS SECTION WILL ALLOW THE LIST LU TO BE CHANGED C 7000 WRITE(LUOP,585) READ(LUOP,*)LU,LUIN CALL RETRN C C 520 FORMAT(3A2/32A2) 521 FORMAT(1H0,3A2/X,32A2) 525 FORMAT(/"FILE NAME _") 530 FORMAT(3A2) 535 FORMAT(/3A2," NOT IN THE DIRECTORY") 540 FORMAT(X,32A2/) 545 FORMAT(X/" NON-DIRECTORY FILE NAMES INCLUDE:") 550 FORMAT(X,3A2) 555 FORMAT(X/" * END OF LIST *") 585 FORMAT("LIST & INPUT DEVICE LOGICAL UNIT = _") 590 FORMAT(2H::) END END$ FTN4,L PROGRAM DIRC3(5,99) DIMENSION IFIL(3),IT(32) COMMON JDRTRK,ISCTR,ISCT,ITRK,LUCR,LU,LUOP,LUIN,LBUF(128), 1NFILS,IFRST,NMFIL(1000),LBLF(750),JSECTR,IPNT, 2LCODE,ICEL,MXFILS C C THIS SECTION WILL ENTER NEW ENTRIES IN THE DIRECTORY C 5000 WRITE(LUOP,525) READ(LUIN,530) IFIL C C QUIT IF FILE NAME = :: C IF(IFIL.EQ.2H::) GO TO 5400 C C GET THE FILE DESCRIPTION NOW C WRITE(LUOP,565) READ(LUIN,575)IT C C CHECK FOR DUPLICATE DIRECTORY ENTRY C DO 5100 JP=1,NFILS*4,4 C DO 5050 J=1,3 C IF(IFIL(J).NE.NMFIL(JP + J - 1)) GO TO 5100 C 5050 CONTINUE C WRITE(LUOP,570) IFIL READ(LUOP,515)LBL C IF(LBL.NE.2HYE)5000,5205 C 5100 CONTINUE C C LOOK FOR THE FIRST AVAILABLE NAME FILE SLOT C DO 5210 JP=1,NFILS*4,4 IF(NMFIL(JP))5205,5210 C C GET THE DISK SECTOR AND OFFSET ADDLRESS FROM THE FOURTH ENTRY C 5205 IWD = NMFIL(JP + 3)/256 ISCTR = IAND(NMFIL(JP + 3),377B) GO TO 5300 C 5210 CONTINUE C C NO OLD SLOTS AVAILABLE - START A NEW ONE IF LESS THAN . C NFILS = NFILS + 1 C IF(NFILS.GT.MXFILS)5215,5220 C 5215 WRITE(LUOP,560) CALL RETRN C C CALCULATE THE STARTING WORD OFFSET FOR THIS BLOCK C (4 ENTRIES PER BLOCK). C 5220 IWD = MOD(NFILS - 1,4)*32 + 1 JP = (NFILS - 1)*4 + 1 NADFIL = (MXFILS*4 + 2)/64 + 2 C C BE SURE TO START ON AN EVEN SECTOR NUMBER (BLOCK BOUNDARY) C IF(IAND(NADFIL,1).EQ.1) NADFIL = NADFIL + 1 C C SECTORS 0 TO NADFIL ARE RESERVED FOR THE NAME & ADDRESS FILE. C C CALCULATE THE TOTAL SECTOR OFFSET FROM THE START OF THE C DIRECTORY FILE. C ISCTR = NADFIL + 2*((NFILS - 1)/4) C C READ THE PROPER SECTOR & TRACK FROM THE DISK FILE. C 5300 CALL GETB C C PUT THE DESCRIPTIVE INFO IN THIS BUFFER STARTING C AT THE PROPER WORD OFFSET. C DO 5310 I=1,32 LBUF(IWD) = IT(I) 5310 IWD = IWD + 1 C C PUT IT BACK NOW C IF(ICEL.NE.0) CALL IPUT((IGET(1656B)+ ITRK),77777B) CALL EXEC(2,LUCR,LBUF,128,ITRK,ISCT) IF(ICEL.NE.0) CALL IPUT((IGET(1656B)+ ITRK),ICEL) C C NOW SAVE THE FILE NAME IN THE ARRAY. C DO 5320 I=1,3 NMFIL(JP) = IFIL(I) 5320 JP = JP + 1 NMFIL(JP) = (IWD - 32)*256 + ISCTR C C REPEAT INPUT SEQUENCE UNTIL FILE NAME = :: C GO TO 5000 C C NOW ALPHABETIZE THAT DIRECTORY FILE NAME IF NFILS > 1 C 5400 IF(NFILS .EQ. 1) CALL RETRN C DO 5600 N=1,NFILS - 1 NN = NFILS - N C DO 5600 I=0,NN - 1 C C COMPARE THESE TWO ADJACENT LABELS FOR ALPHABETIC ORDER C DO 5500 J=1,3 J1 = I*4 +J J2 = J1 + 4 C C ARE THE CHARACTERS THE SAME AS, HIGHER OR LOWER ON THE SCALE ? C IF(NMFIL(J1) - NMFIL(J2))5600,5500,5550 C C THEY ARE THE SAME - CHECK THE NEXT 640 TWO C 5500 CONTINUE GO TO 5600 C C SWAP THESE TWO FILE NAMES AND DECSRIPTION FILE ADDRESS C 5550 DO 5555 J=1,4 J1 = I*4 + J J2 = J1 + 4 LBL = NMFIL(J2) NMFIL(J2) = NMFIL(J1) 5555 NMFIL(J1) = LBL C C NOW GO ON THROUGH THE LIST C 5600 CONTINUE CALL RETRN C 515 FORMAT(A2) 525 FORMAT(/"FILE NAME _") 530 FORMAT(3A2) 560 FORMAT(/"TOO MANY FILES") 565 FORMAT(/"DESCRIPTION :") 570 FORMAT(/3A2,X,"DUPLICATE ENTRY"/" OK? _") 575 FORMAT(32A2) END END$ K6 ` n 22657-80001 1500 SC 0122 DEMO THROUGHPUT RATE OF HP 2100 W/7900A DISC             H0101 ASMB,A,B,L,T ORG 100B SUP CLC 0,C CLA STA P# REP 10B JSB LINF LDA DMAIN GET DMA INPUT CWORD IOR INPUD SET FOR INPUT DEVICE STA DMAIN SAVE BACK LDA DMAOT GET DMA OUPUT CWORD IOR DCD SET FOR DISC STA DMAOT SAVE LDA DISIN GET DMA INPUT CWORD IOR DCD SET FOR DISC STA DISIN SAVE LDA FSECT CMA,INA ADA D48 STA #SECT MPY D128 STA B ADB OUBU1 ADB N1 STB ENBU1 LDB A ADB OUBU2 ADB N1 STB ENBU2 CMA,INA STA DCONT INA STA INWCN LDA FSECT ADA N3 SSA ADA D23 STA BSECT JSB PDATA * * * END OF INITIAL CONFIGURATION SECTION * * JMP START * * * SWR EQU 1 A EQU 0 B EQU 1 * * INPUT EQU 25B DC EQU 17B CC EQU 20B * LP EQU 24B * * * D48 DEC 48 INPUD DEF INPUT DCD DEF DC * * MLENT OCT 200 MAXIMUM # OF TRACKS FTRAC OCT 0 STARTING TRACK FSECT OCT 1 OFSET OCT 7 SECTOR OFSET #SECT DEC 48 # OF SECTOR PER TRACK BSECT NOP * * * * START CLA SET "ACQUISITION FLAG" OTA SWR CLC 0,C JSB LINF JSB LINF JSB LINF ISZ P# LDA D10 STA DIVIS JSB PRINT DEF PASS# LDA P# JSB CONVT JSB LINF JSB LINF LDA DMAIN OTA 6 INITIALIZE DMA1 CLC 2 FOR LDA INBU1 INPUT OTA 2 FROM STC 2 HIGH LDA INWCN SPEED OTA 2 SYNCRONOUS LDA FTRAC STA TRACK SET TRACK INDEX LDA FSECT STA SECTR SET SECTOR INDEX LDA MLENT GET MAXIMUM # OF TRACK CMA,INA SET AS STA TCOUN NEGATIVE TRACK COUNT * * * *********SEEK STvARTING TRACK AN SECTOR******** * * CLC CC CLC DC LDA TRACK OTA DC STC DC,C LDA SEEK OTA CC STC CC,C SFS DC JMP *-1 LDA BSECT OTA DC STC DC,C SFS CC JMP *-1 * * * *********START INPUT DEVICE AND DMA1****** * * STC INPUT,C STC 6,C CLC CC CLC DC STC DC,C LDA WRITE OTA CC STC CC,C SFS DC JMP *-1 CLC DC,C JMP FTIME SKIP OVER NEW TRACK AND SECTOR ELABORATION * * * * ***************AT THIS POINT: * DMA1 IS WORKING FOR INPUT * DISC HAS FINISHED OF WRITING * SO DMA2 IS NOW FREE AND WILL * BE REINITIALIZED FOR INPUT * A SEEK TO NEXT CYLINDER AND A * SECTOR GIVEN BY CURRENT STARTING SECTOR * ADD TO THE GIVEN OFSET,ALL THIS MODULO 24, * IS GOING TO START TOO,UNLESS LAST TRACK * HAS ALREADY BEEN WRITTEN * * ENDM2 ISZ TCOUN LAST TRACK? RSS NO-SKIP JMP FINIS YES-GO TO ERROR CHECKOUT SECTION ISZ TRACK NO-POINT TO NEXT TRACK LDA SECTR GET CURRENT STARTING SECTOR ADA OFSET ADD OFSET STA B SAVE IT AS POSSIBLE NEW STARTING SECTOR ADA N24 BUT,IF GREATER THEN 24 SSA USE THE REST STB A NO-LESS THEN 24-SOUSE SAVED VALUE STA SECTR AS STARTING SECTOR FTIME LDA DMAIN INTIALIZE DMA2 FOR INPUT OTA 7 CLC 3 LDA INBU2 OTA 3 STC 3 LDA INWCN OTA 3 CLC DC CLC CC LDA TRACK OTA DC STC DC,C LDA SEEK OTA CC STC CC,C SFS DC JMP *-1 LDA SECTR OTA DC STC DC,C SFC CC JMP *+3 SFS 6 JMP *-3 * * * *****PRCEDING SEEK HAS BEEN COMPLETED * SO STOP DMA1 AND START DMA2 * STF 6 STC 7,C SFS CC JMP *-1 * * *******NOW ASSIGN DMA1 TO DISC AND START WRITE * * LIA 2 STA BUF1 SET W COUNT RESIDUE AS FIRST WORD * OF USER BUFFER LDA DMAOT OTA 6 CLC 2 LDA OUBU1 OTA 2 STC 2 LDA DCONT OTA 2 CLC DC CLC CC STC DC STF DC STC 6,C LDA WRITE OTA CC NOP STC CC,C SFS CC JMP *-1 STF 6 LIA 2 GET WORD COUNT SZA,RSS IF NOT ZERO JMP ENDM1 YES---ZERO ADA ENBU1 LDB A,I CLC DC CLC CC THEN EOC FOUND-SO WRITE REMAINDER LDA TRACK AND ADDDRES FROM BEGINNING OTA DC STC DC,C LDA ADDRS OTA CC STC CC,C SFS DC JMP *-1 LDA FSECT OTA DC STC DC,C SFS CC JMP *-1 CLC DC CLC DC NOW ADDRES IS COMPLETE- STC DC,C OTB DC STC 6,C LDA INIT OTA CC NOP STC CC,C SFS CC JMP *-1 * * * * *********************AT THIS POINT: * DMA2 IS WORKING FOR INPUT * DISC HAS FINISHED OF WRITING * SO DMA1 IS NOW FREE AND WILL BEE * REEINIT FOR INPUT * IF NOT LAST TRACK,A NEW SEEK * WILL START TOO * * ENDM1 ISZ TCOUN LAST TRACK DONE? RSS NO-SKIP JMP FINIS ISZ TRACK POINT TO NEXT TRACK LDA SECTR COMPUTE NEW SECTOR ADA OFSET STA B ADA N24 SSA STB A STA SECTR LDA DMAIN OTA 6 CLC 2 LDA INBU1 OTA 2 STC 2 LDA INWCN OTA 2 CLC DC CLC CC LDA TRACK OTA DC STC DC,C LDA SEEK & OTA CC STC CC,C SFS DC JMP *-1 LDA SECTR OTA DC STC DC,C SFC CC JMP *+3 SFS 7 JMP *-3 * * ********SEEK COMPLETE * STOP DMA2 AND START DMA1 * * * STF 7 STC 6,C SFS CC JMP *-1 * * *****NOW USE DMA2 FOR DISC * * LIA 3 STA OUBU2,I LDA DMAOT OTA 7 CLC 3 LDA OUBU2 OTA 3 STC 3 LDA DCONT OTA 3 CLC DC CLC CC STC DC STF DC STC 7,C LDA WRITE OTA CC NOP STC CC,C SFS CC JMP *-1 STF 7 LIA 3 SZA,RSS JMP ENDM2 ADA ENBU2 LDB A,I CLC DC CLC CC LDA TRACK OTA DC STC DC,C LDA ADDRS OTA CC STC CC,C SFS DC JMP *-1 LDA FSECT OTA DC STC DC,C SFS CC JMP *-1 CLC CC CLC DC STC DC,C OTB DC STC 7,C LDA INIT OTA CC NOP STC CC,C SFS CC JMP *-1 JMP ENDM2 * * * * * FINIS CLC 0,C STC INPUT,C LDA MLENT CMA,INA STA TCOUN LDB FTRAC STB TRACK CLA STA FWORD LDA FSECT STA SECTR CPL0 STA SA CLA STA FLAG LDA SA JSB READR CLA,INA STA WCN LDA BUF1 CMA,INA ADA INWCN STA COUNT CMA,INA STA WC LDA OUBU1 INA STA CBUFR CPL LIB SWR SSB JMP START SLB JMP OK NOP LDB IND2 OTB SWR LDA CBUFR,I CPA FWORD JMP OK STA SA LDA FLAG SZA,RSS JSB HEAD CLA,INA STA FLAG LDA SA LDB FWORD JSB OCTAL LDA WCN LDB WC JSB DECIM CLB DIV D128 '2 JSB DECIM ADA SECTR STA SAVE ADA N48 SSA LDA SAVE JSB DECI1 JSB LINF OK ISZ FWORD ISZ WCN ISZ COUNT RSS JMP NEW ISZ CBUFR JMP CPL NEW LDB IND2 OTB SWR ISZ TCOUN RSS JMP START LDA FLAG SZA,RSS JSB HEAD1 LDA SECTR ADA OFSET STA B ADA N24 SSA STB A STA SECTR ISZ TRACK LDB TRACK JMP CPL0 * * * HEAD1 NOP JSB PRINT DEF TRAC# LDA TRACK LDB D10 STB DIVIS JSB CONVT JSB PRINT DEF SPACE JSB PRINT DEF WCOUN LDA WC JSB CONVT JSB LINF JMP HEAD1,I * * READR NOP CLC DC,C CLC CC,C OTB DC STC DC,C LDB SEEK OTB CC STC CC,C SFS DC JMP *-1 OTA DC STC DC,C LDA DISIN OTA 6 LDA DINBU CLC 2 OTA 2 STC 2 LDA DCONT OTA 2 SFS CC JMP *-1 CLC DC CLC CC LDA READ OTA CC STC DC,C STC 6,C STC CC,C SFS CC JMP *-1 LIA 2 SZA,RSS JMP READR,I STF 6 CLC DC CLC CC LDB TRACK OTB DC STC DC,C LDB ADDRS OTB CC STC CC,C SFS DC JMP *-1 LDA FSECT OTA DC STC DC,C SFS DC JMP *-1 CLC CC CLC DC LDA READ OTA CC STC DC,C STC 6,C STC CC,C SFS CC JMP *-1 JMP READR,I * * OCTAL NOP STA SAVEA STB SAVEB LDB B10 STB DIVIS JSB CONVT LDA SAVEB JSB CONVT JSB PRINT DEF SPACE LDA SAVEA LDB SAVEB JMP OCTAL,I * * DECIM NOP STA SAVEA STB SAVEB LDB D10  STB DIVIS JSB CONVT LDA SAVEB JSB CONVT JSB PRINT DEF SPACE LDA SAVEA LDB SAVEB JMP DECIM,I * * DECI1 NOP STA SAVEA STB SAVEB JSB CONVT LDA SAVEA LDB SAVEB JMP DECI1,I * * T# NOP LDB D10 STB DIVIS LDA TRACK JSB CONVT JMP T#,I * * CONVT NOP CLB DIV DIVIS STB NUMB3 CLB DIV DIVIS STA TEMP LDA B ALF,ALF IOR NUMB3 IOR GETNB STA NUMB3 LDA TEMP CLB DIV DIVIS STB NUMB2 CLB DIV DIVIS STA TEMP LDA B ALF,ALF IOR NUMB2 IOR GETNB STA NUMB2 LDA TEMP CLB DIV DIVIS ALF,ALF IOR B IOR GETNB STA NUMB1 JSB PRINT DEF NUMB1 JMP CONVT,I * * HEAD NOP STA SAVEA STB SAVEB JSB PRINT DEF WRONG JSB PRINT DEF RIGHT JSB PRINT DEF SPACE JSB PRINT DEF WORD# JSB PRINT DEF WCOUN JSB PRINT DEF SPACE JSB PRINT DEF RSECT JSB PRINT DEF WOFSE JSB PRINT DEF SPACE JSB PRINT DEF ASECT JSB PRINT DEF SPACE JSB PRINT DEF TRAC# JSB T# JSB LINF LDA SAVEA LDB SAVEB JMP HEAD,I * * PRINT NOP LDA N4 STA W# LDB PRINT,I PRILO LDA B,I ALF,ALF AND MASK JSB OUT LDA B,I AND MASK JSB OUT INB ISZ W# JMP PRILO ISZ PRINT JMP PRINT,I * * LINF NOP LDA ELIN JSB OUT JMP LINF,I * * OUT NOP OTA LP STC LP,C SFS LP JMP *-1 JMP OUT,I * * * PDATA NOP LDA D10 STA DIVIS JSB PRINT DEF FTRAK LDA FTRAC JSB DECI1 JSB PRINT DEF SPACE JSB PRINT DEF FSEC LDA FSECT JSB DECI1 JSB PRINT DEF SPACE JSB PRINT DEF #TRAC LDA MLENT JSB DECI1 JSB PRINT DEF SPACE JSB PRINT DEF #SEC LDA #SECT JSB DECI1 JSB LINF JSB PRINT DEF SOFST LDA OFSET JSB DECI1 JSB PRINT DEF SPACE JSB PRINT DEF MWCON LDA DCONT CMA JSB DECI1 JSB LINF JSB LINF JSB LINF JMP PDATA,I * * * D23 DEC 23 N3 DEC -3 DMAIN OCT 20000 DMAOT OCT 120000 DISIN OCT 120000 D128 DEC 128 DCONT NOP INWCN NOP INBU1 DEF BUF1+1,I INBU2 DEF BUF2+1,I TRACK NOP SECTR NOP COUNT NOP FWORD NOP TCOUN NOP SEEK OCT 30000 WRITE OCT 10000 READ OCT 20000 ADDRS OCT 130000 INIT OCT 110000 N24 DEC -24 OUBU1 DEF BUF1 OUBU2 DEF BUF2 CBUFR NOP IND2 OCT 77776 N48 DEC -48 DINBU DEF BUF1,I SAVEA NOP SAVEB NOP SAVE NOP TEMP NOP B10 OCT 10 D10 DEC 10 DIVIS OCT 0 GETNB OCT 30060 N4 DEC -4 W# NOP MASK OCT 177 ELIN OCT 100001 ENBU1 DEF BUF2-1 ENBU2 DEF EBU-1 N1 DEC -1 SA NOP FLAG NOP P# NOP * * * WRONG ASC 4,WRONG RIGHT ASC 4,RIGHT WORD# ASC 4,WORD# WCOUN ASC 4,WCOUN RSECT ASC 4,RSECT ASECT ASC 4,ASECT WOFSE ASC 4,WOFSE TRAC# ASC 4,TRAC# FTRAK ASC 4,FTRAK SOFST ASC 4,SOFST #TRAC ASC 4,#TRAC #SEC ASC 4,#SEC FSEC ASC 4,FSEC MWCON ASC 4,MWCON PASS# ASC 4,PASS# SPACE REP 4 OCT 20040 NUMB1 NOP NUMB2 NOP NUMB3 NOP OCT 20040 WC NOP WCN NOP * BUF1 BSS 7000 BUF2 BSS 7000 * ORG * EBU EQU * * * END ASMB,A,B,L ORG 100B START CLC 0,C CLF DEV CLA STC DEV,C SFS DEV JMP *-1 CLF DEV STF 0 LOOP OTA DEV OTA 01 STC DEV 0.*INA JMP LOOP * DEV EQU 13B * ORG DEV JMP START END u0 a n 22658-80001 1505 SC 0522 RTE/DOS FORTRAN IV COMPILER             H0105 2ASMB,R,L HED FTN4--16K VERSION--MAIN PROGRAM NAM FTN4,3 MAIN PROGRAM * * * * * THIS FORTRAN IV COMPILER RUNS UNDER DOS(16K), * DOS-M(16K),AND RTE(24K) OPERATING SYSTEMS. * THE RELOCATABLE BINARY CODE IS LOADABLE AND * EXECUTABLE UNDER THE BCS SYSTEM AS WELL AS * THE ABOVE MENTIONED OPERATING SYSTEMS. * * MINIMUM OF 10K CORE FOR USER AREA IS REQUIRED. * WITH 10K-USER AREA, THE USER WILL HAVE APPROX- * IMATELY 512 WORDS (DECIMAL) FOR SYMBOL TABLE * FOR COMPILATION. * * * * * ENT .AT. ENT .INT. ENT AA00 ENT AI00 ENT CILN ENT CLIDI ENT CLNM ENT CR00 ENT CRTST ENT DAF00 ENT DAT00 ENT DCEFG ENT DIM00 ENT DIU00 ENT DPOVF ENT DTAFG ENT DUMCK ENT EEIN ENT EFG ENT EOFF ENT ER00 ENT ERCM ENT ERF ENT ESC00 ENT EXN00 ENT EXTF ENT FA00 ENT FER00 ENT FID00 ENT FID04 ENT FNS02 ENT FNSEE ENT GNA00 ENT GPE00 ENT ICH00 ENT IDL00 ENT IDN00 ENT IDNID ENT II00 ENT IIV00 ENT INM00 ENT INTST ENT ISY00 ENT MAIN RETURN FROM F4.0 ENT MFL ENT MPN00 ENT MOVE ENT MPY ENT NSUBT ENT NWI00 ENT OA00 ENT OAI00 ENT OC00 ENT ODF00 ENT OLR00 ENT OMR00 ENT OPF ENT OPSY ENT OZ00 ENT P1ASC ENT PASS1 RETURN ENTRY FROM PASS 2 ENT PBUF ENT RP00 ENT RPL ENT SCC00 ENT SFF ENT SLF ENT SPF ENT SOA00 ENT SSB00 ENT STRF. ENT T0SV ENT T1II ENT TCTST ENT TP00 ENT TS00 ENT TV00 ENT UC00 * * EXT COMPR EXT CPXPR EXT DATAP H EXT DBLPR EXT DEF00 EXT DIMPR EXT EE00 EXT ENDLT EXT EQUPR EXT EXEC EXT EXTPR EXT FUNPR EXT GAD00 EXT GIM00 EXT INTPR EXT LOGPR EXT NEXTL EXT PROG EXT PU200 EXT RCOM EXT REAPR EXT SUBPR * * * * * A EQU 0 A-REGISTER B EQU 1 B-REGISTER * * BUFFR EQU * SREAD BUFFER(12 WDS+116 OVERLAY) NOP BSS 11 * * * 24 WORD OVERLAY * * * * * CALLING SEQUENCE: * JSB .OPSY * RESULT IN A REGISTER : * 0 = DOS * 1 = IOMEC/DOS * -2 = RTE * .OPSY NOP LDA 40B SZA,RSS LOC 40 = 0 ? JMP RTE YES. MUST BE RTE. ADA 67B SZA (40) + (67) = 0 ? JMP RTE NO. MUST BE RTE. STB TEMPB SAVE B JSB EXEC YES. DOS OR IOMEC DOS ? DEF *+5 DEF K13 'DEF RCODE' DEF K2 'DEF DISKU' DEF STATS DEF TLOG LDA STATS (A) = STATUS AND MASK MASK OFF ALL BUT BIT 8 OF TYPE SZA IF ZERO, TYPE = 30, SO DOS CLA,INA ELSE, TYPE = 31, SO IOMEC/DOS LDB TEMPB RESTORE B JMP .OPSY,I RTE LDA KM2 INDICATES RTE JMP .OPSY,I STATS NOP TEMPB NOP * * * 18 WORD OVERLAY * * FTEST NOP INITIALIZES RTE,DOS,OR DOSM STUF LDA FIRST FIRST TIME? SZA JMP FTEST,I NO. LDA OPSY 0 = DOS, 1 = IOMEC/DOS, -2 = RTE SSA JMP FTEST,I RTE CCB DOS OR IOMEC/DOS STB M1OR1 SET M1OR1 =-1 SLA,RSS JMP FTEST,I DOS LDB K128 IOMEC/DOS. BUFFER SIZE = 128 STB PSIZE CMB,INB STB MSIZE LDB K3 STB .2OR3 LOGICAL UNIT=3 JMP FTEST,I * * * 74 WORMD OVERLAY * * TLOG NOP TRANSMISSION LOG K56 DEC 56 KK43 OCT 37400 CMET1 NOP PARAMETER LIST POINTER CMET2 NOP PARAMETER COUNT DPL DEF DPOOL ADDR OF DATA POOL .DPL DEF FEDP ADDR OF FIX-EXT TABLE * CME22 STA .LOGO,I SET COMPILE-LOAD-GO FLAG JMP CME03 * * * * ********************* * * COMPILER ENTRANCE * * ********************* * * FTN4 EQU * (B)=PAR LIST FROM 'ON FTN4' * LDA K5 5=STANDARD INPUT DEVICE STA I.LUI,I LOG UNIT # OF INP DEV=5 LDA K6 6=STANDARD LIST DEVICE STA I.LID,I LOGICAL UNIT # OF LIST DEVICE LDA K4 4=STANDARD PUNCH DEVICE STA I.LUP,I LOGICAL UNIT # OF PUNCH DEVICE LDA K56 STA LINEP LINES PER PAGE ON LISTING CMA,INA ADA K2 STA NLINE -(# OF LINES REMIANED IN PAGE) CLA STA .LOGO,I RESET COMPILE-LOAD-GO FILE FLAG LDA PARLI LOC. OF 'ON FTN4' PARAMETER TBL STA CMET1 LDA K5 CMA,INA (A)=-5 STA CMET2 CME00 LDA B,I PARAMETER FROM 'ON FTN4' STATMNT SZA,RSS JMP CME01+1 PARAMETER=0 CPA K99 JMP CME22 COMPILE-LOAD-GO FILE CME01 STA CMET1,I STORE INTO 'ON FTN4' PARAM TBL INB ISZ CMET1 BUMP PARAMETER TABLE PTR BY 1 ISZ CMET2 ALL 5 PARAMETERS PROCESSED ? JMP CME00 NOT YET CME03 JSB .OPSY TO FIND OUT OPERATING SYSTEM STA OPSY (POS IF DOS/IOMEC,NEG IF RTE) LDB 100B SSA SKIP IF DOS/IOMEC LDB 1777B RTE STB DO LAST AVAILABLE CELL LOCATION LDA DPL ADDR OF DATA POOL STA DP DATA POOL START LOCATION LDA .DPL ADDR OF FIX-EXT-TABLE STA I.DP,I FIX-EXT-TABLE START LOC. LDA I.LUI,I LOG UNIT # OF INPUT DEVICE CPA K2 DISK? RSS YES JMP CME30 NO LDB 124B  LDA OPSY OPERATING SYSTEM SSA SKIP IF DOS/IOMEC LDB 1767B RTE LDA K5 SZB,RSS JMP EOFF NO SOURCE TRACK ASSIGNED CME30 JSB FTEST INITIALIZE IF FIRST TIME JSB EXEC _. DEF *+5 . DEF K13 . REQUEST FOR STATUS DEF LULID . ON LIST DEVICE DEF LUNLD DEF TLOG _. LDA LUNLD CURRENT STATUS AND KK43 =B37400 STA LUNLD LOGICAL UNIT # OF LIST DEVICE CLA STA CRDCT CARD COUNT=0 STA .CCW. INITIALIZE FORTRAN CONTROL WORD JSB NEWPG A NEW PROGRAM JSB EJECT TO TOP OF PAGE AND PRINT HEADER JSB IC00 FORCED A CARD READ IN * * ******************************* * * END OF SREAD BUFFER OVERLAY * * ******************************* * * PBUF EQU * 64 WORD DISK BUFFER; * * OF THIS TOTAL, 58 WORDS ARE * OVERLAY OF THE FOLLOWING CODE * CLB STB FTNF RESET 'FTN' FLAG CCA STA EQUF EQUF=-1 JSB IDN00 INPUT DO NOT ASSIGN JSB IDNID MOVE NID TO IDI LDA IDI CPA KK32 'FT' JMP CME04 CME02 CLA,INA FTN4 CONTROL CARD MISSING JMP EOFF TO TYPE 'END,FTN4' * CME04 LDA NID+2 CPA B116 'N' JMP CME06 JMP CME02 FTN CONTROL CARD MISSING JSB ICH00 INPUT A CHAR. CME06 LDB TC CPB B15 'C/R' JMP PPNM DONE WITH FTN CARD,TO PROG NAME CPB B54 ',' RSS JMP CME08 ERROR IN FTN CARD JSB ICH00 INPUT CHARACTER LDB A SAVE CHARACTER IN (B) LDA .CCW. (A)=FORTRAL CONTROL WORD CPB O102 'B' JMP CME14 TO SET PUNCH TAPE BIT IN .CCW. CPB B114 'L' JMP CME16 TO SET SOURCE LISTING BIT CPB B101 'A' JMP CME18 TO SET ASSEM & TABLE LISTNG BITS CPB B115 'M' JMP CME20 TO SET MIXED & TABLE LISTNG BITS CPB B124 'T' JMP CME10 TO SET TABLE LISTING BIT CPB B103 'C' JMP CME21 TO SET CROSS REFERENCE BIT CPB B15 'C/R' JMP PPNM CME08 LDA K2 JMP EOFF ERROR IN FTN CONTROL CARD CME10 IOR B10 .. SET TABLE LISTNG BIT IN .CCW. CME12 STA .CCW. .. JMP CME06-1 CME14 IOR KK01 SET PUNCH TAPE BIT IN .CCW. JMP CME12 CME16 IOR B1 SET SOURCE LISTING BIT IN .CCW. JMP CME12 CME18 IOR B4 SET ASSEMBLY LISTING BIT IN.CCW. JMP CME10 TO SET TABLE LISTING BIT CME20 IOR B2 SET MIXED LISTING BIT IN .CCW. JMP CME18 TO SET 'A' ANT 'T' CME21 IOR O20 SET CROSS REFERENCE BIT JMP CME12 * O102 OCT 102 O20 OCT 20 B1 OCT 1 B114 OCT 114 'L' B101 OCT 101 'A' B103 OCT 103 'C' B124 OCT 124 'T' B115 OCT 115 'M' B116 OCT 116 'N' K128 DEC 128 * * *********************** * * END OF PBUF OVERLAY * * *********************** * * NLTEM NOP THIS MUST FOLLOW THE PBUF******** K2 DEC 2 K13 DEC 13 K.33 DEC 33 K99 DEC 99 B54 OCT 54 K5 DEC 5 K6 DEC 6 FTNF OCT 1 SET TO EXPECT 'FTN' CARD ASCI. DEF ASCII I.LID DEF LULID * * *********************************** * * TO TOP OF PAGE AND PRINT HEADER * * *********************************** EJECT NOP LDA LINEP # OF LINES PER PAGE CMA,INA LDB A ADA K5 SSA,RSS 5 .LT. LINEP LDB K99 IF LINEP .LE.5 ,PRINT AS 1 PAGE STB NLINE -(# OF LINES REMAINED IN PAGE) LDA B1100 FUNCTION CODE=B11 (LST LI SPACNG) ADA I.LID,I LOG UNIT OF LIST DEVICE STA EJCON EJECT A PAGE CONWD JSB EXEC _. DEF *+4 . DEF K3 . EJECT A PAGE DEF EJCON .  DEF KM7 _. JSB HED00 PRINT HEADER JMP EJECT,I EXIT * * HED00 NOP LDA PGNUM PAGE # JSB ASCI.,I CONVERT TO ASCII STB PNOXX,I MOVE PAGE # TO HEADER LINE STA PNOYY,I ISZ PGNUM BUMP PAGE # BY 1 LDB K.33 PRINT OUT 33 WORDS. LDA LHDR LOC. OF HEADER JSB PSL0.,I PRINT OUT THE HEADER JSB SK200 SKIP TWO LINES JMP HED00,I EXIT * PNOXX DEF HEADL+4 PNOYY DEF HEADL+5 PSL0. DEF PSL00 * SK200 NOP JSB EXEC TO SKIP 2 LINES DEF *+4 DEF K3 DEF EJCON DEF K2 ISZ NLINE ISZ NLINE JMP SK200,I EXIT * * SLIN. DEF SLINE I.DP DEF .DP LHDR DEF HEADL-3 B400 OCT 400 .LOGO DEF LOGO I.LUP DEF LUPUD .NSEC DEF NSECT HDLOC DEF HEADL+7 HDSLO DEF HDSAV HDSAV BSS 3 SAVE HEADER PROGRAM NAME PNMSV NOP SAVE HEADER PAGE NUMBER * * * ************************* * * COMPILE A NEW PROGRAM * * ************************* NEWPG NOP CLA RESET SLINE FOR XREF STA SLIN.,I TO 0. LDA KM3 STA MCNT LDA HDLOC MOVE FROM LOC. LDB HDSLO MOVE TO LOC. JSB MOVE SAVE HEADER LINE LDA PGNUM STA PNMSV JSB EXEC . DEF *+3 . DEF K8 . BRING IN SPECIFICATIONS SEG. DEF *+1 . ASC 3,F4.0 _. ATK00 NOP * * ALLOCATE A TRACK * JSB EXEC TRANSFER CONTROL TO RTE DEF *+6 POINT OF RETURN FROM RTE DEF K4 REQUEST CODE DEF K1 NO. OF CONTIGUOUS TRACKS REQUIRED TKN. DEF TKN START TRACK NO. I.DIS DEF DISC LOGICAL UNIT NO. I.SEC DEF SECN NO. OF SECTORS/TRACK LDA TKN.,I TRACK # ALLOCATED JMP ATK00,I EXIT MAIN JSB ATK00 ALLOCATE A TRACK STA STKNO STARTING TRACK # LDA I.DIS,I LOGICAL UNIT # STA LUN1T LOG UNIT # OF 1ST TR4ACK LDA I.SEC,I # OF SECTORS/TRACK STA .NSEC,I # OF SECTORS/TRACK LDA I.LUI,I L.U. OF INPUT DEVICE CPA K2 JMP *+3 IOR B400 SET ECHO BIT FOR TTY STA I.LUI,I L.U. OF INP DEVICE LDA CRD1 LOC. OF 1ST CARD BUFFER STA CRDPT INITIALIZE CRD PTR TO CRD1 CLA STA T0.ST,I SET T0STF=0 STA NEQG.,I SET # OF EQUIV GP.=0 STA OPF SET NOT TO OUTPUT STA NINFG RESET NO INPUT FLAG STA NOCRD # OF CARDS IN BUFFERS LDA K.73 (A)=73 STA CC SET CC=73 STA T0SV SET COLUMN COUNTER SAVED=73 STA NMENT SET NAM/ENT RCDS NOT YET OUTPUT STA CLSW SET TO SCAN JMP NEWPG,I EXIT * T0.ST DEF T0STF NEQG. DEF NEQUG NINFG NOP NO INPUT FLAG K.73 DEC 73 D$ ASC 1,D$ I.IA0 DEF IA00 PAS2F NOP RETURN FROM PASS 2 FLAG * PASS1 JSB NEWPG BRING IN E.E. CLB IF RETURN FROM PASS 2, CPB PAS2F STB CRDCT SET CARD COUNTER = 0. LDB LINEP # OF LINES PER PAGE CMB,INB ADB K2 STB NLINE -(# OF LINES REMAINED IN PAGE) JSB IC00 FORCE IN A CARD CLA,INA STA CC SET CC=1 STA NINFG SET NO INPUT FLAG LDA K2 JSB I.IA0,I INPUT 2 CHARS. LDA .PACK CPA EN 'EN' RSS YES JMP MAIN4 NO LDA K2 JSB I.IA0,I INPUT 2 CHARS. LDA .PACK CPA D$ 'D$' JMP MAIN3 MAIN4 CLA CPA PAS2F RETURN FROM PASS 2 RSS YES JMP *+3 NO STA CRDCT SET # OF CARDS TO 0 JSB HED00 PRINT HEADER CLA STA PAS2F RESET PASS2 FLAG STA NINFG RESET NO INPUT FLAG INA STA CC SET CC=1 JMP PPNM POSSIBLE PROGRAM NAME NOCRD NOP # OF CARDS IN BUFFERS B1100 OCT 1100 EN ASC 1,EN PARLI DEF LUIND ~2'ON FTN4' PARAMETER LIST PTR I.LUI EQU PARLI KK32 ASC 1,FT ASC 1,N. 'FTN. ' IN THAT ORDER ASC 1, MFLC DEF KK32 PBUF0 DEF PBUF I.NWR DEF NWR KK34 OCT 10400 17*256+0 INITB DEF .AT. INIT. TO 0 AREA BEGIN ADDR. INITE DEF STRF+1 INIT. TO 0 AREA (END ADDR. +1) INIT7 DEF PBUF+7 INIT PART OF PBUF TO 0 INITP DEF PBUF+64 END OF PBUF+1 * * * ************************* * * POSSIBLE PROGRAM NAME * * ************************* PPNM EQU * LDA KK34 17*256+0 STA I.NWR,I # OF WDS IN CURRENT RECORD LDB PBUF0 STA B,I RECORD LENGTH=17 WORDS INB LDA REA =B20000 STA B,I RECORD IDENT=001 (NAM RECORD) ADB K5 CCA C-GEN-CODE, SIZE=2**15-1 STA B,I SIZE OF MAIN PROGRAM LDA MFLC MOVE FROM LOC. JSB MPN0.,I MOVE 'FTN. ' TO PBUF,ERBF,HEADL LDB INITB _. LDA INITE . INITIALIZE THE FOLLOWING TO 0 JSB INI00 INITIALIZE TO 0 LDB INIT7 LDA INITP JSB INI00 INITIALIZE PBUF+7 ON TO 0 * * ************************** * * FORTRAN INITIALIZATION * * ************************** * LDA NLINE STA NLTEM LDA PPNK2 END OF COMMON TABLE LDB PPNK1 LOC. OF .TBL JSB INI00 INITIALIZE .TBL TABLE TO 0 LDA NLTEM STA NLINE LDA K3 STA PBUF+9 MAIN PROGRAM INDICATOR LDA K99 STA PBUF+10 PRIORITY SET TO 99 * * *********************************************** * * INITIALIZE E-BIT IN FIX-EXTERNAL TABLE TO 0 * * *********************************************** LDA I.DP,I (A)=.DP STA .A .A=BASE LOC. OF FIX-EXT-TABLE INE02 JSB GNA00 GET NEXT ASSIGNMENT POINTER LDA FIXF.,I IS IT IN FIX-EXT-TABLE ? SSA,RSS YES JMP INE04 NO LDA .A,I AND KK44 =B177767 STA .A,I m SET E-BIT TO 0 LDB .A YES, SET AF(.A)=0 INB CLA STA B,I JMP INE02 FIXF. DEF FIXF KK44 OCT 77767 .LSTF DEF LSTF I.S1B DEF STK1B * INE04 EQU * JSB CLIDI IDI_--0 LDA KM7 STA MCNT TO MOVE 7 WORDS LDA PPNK3 MOVED FROM LOC LDB PPNK4 MOVED TO LOC JSB MOVE INITIALIZE TEMP CELL START LOCS. LDA DP DATA POOL START LOCATION INA STA LO END OF ASSI TABLE LOC. +1 STA STK2B STA STK2T STK2T=STK2B=LO STA .LSTF,I LSTF NON-0 (EXPECT 1ST STATEMNT) STA LSTP LDA DO LAST AVAILABLE MEMORY LOCATION STA E E=DO STA D D=DO STA I.S1B,I STA STK1T STK1T=STK1B=D CCA STA EQUF EQUF=-1 STA .EXID,I EXTID=-1 ISZ IDI IDI=IDI+1 LDA INT IM=INT JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN ITEM JMP STIN.,I TO STATEMENT INPUT * * * STIN. DEF STINP MPN0. DEF MPN00 .EXID DEF EXTID PPNK1 DEF SBF NMENT NOP NAM/ENT RCDS OUTPUT FLG (0=OUTED) PPNK2 DEF COMEN LOC OF END OF COMMON TABLE PPNK3 DEF KK36 PPNK4 DEF .INT. * * * ******************* * * INITIALIZE TO 0 * * ******************* INI00 NOP CMA,INA . PBUF+7 TO PBUF+16 ADA B STA T1PPN . MFL,SFF,SBF,SXF,SPF,TCF,IFF CLA . .A,XST,D1,RPL,.AT.,SFG,EFG, PPNM2 STA B,I . FCOM,L,T,TYPF,EXTF INB . & .TBL TABLE ISZ T1PPN . JMP PPNM2 _. JMP INI00,I EXIT * * * * * * SPC 2 * KM2 DEC -2 MASK EQU B400 MASKS ALL BUT BIT 8 OF TYPE CODE * * * * **************** * * INPUT COLUMN * * **************** IC00 NOP LDA CC CPA K.73 JMP IC10 CC=73 IC02 LDA CC CC=0 ? SZA JMP ICO18 NO LDA B15 (A)=C/R IC04 ISZ CC CC=CC+1 IC06 STA TC TC=C/R, /, OR CHAR. FROM CARD OR EQU BUFFER JMP IC00,I EXIT IC10 LDA NINFG NO INPUT FLAG SET? SZA,RSS YES JMP IC11 NO LDA B57 '/' JMP IC06 IC11 LDA EQVR.,I EQVER=0? SZA YES JMP *+6 NO CPA CLSW CODE GEN.? JMP *+4 CLA CPA LIF.I,I LOG IF FLAG SET? JMP IC12 NO JSB MCI00 MOVE CARD FROM CRDPT TO CI JMP IC135 IC12 LDA .CI. STA RBFAD CARD IMAGE BUFFER LOC. LDA KM40 STA T0IC . LDB .CI. . LDA LINO-1 . 2 BLANKS STA B,I . INB . ISZ T0IC . JMP *-3 .. *READS SOURCE FROM DISK (IF LUN= 2) OR OTHER DEVICE *CALLING SEQUENCE FOR %READ: JSB %READ * DEF *+5 * DEF LUNIN LUN FOR INPUT * DEF BUFFR FWA OF READ-BUFFER * DEF RLEN -(NO OF CHARS) * EOF RETURN * NORMAL RETURN *RETURNS WITH: (B) = NO.OF CHARS. IC13 EQU * LDA I.LUI,I LUN OF INPUT DEVICE CPA K2 LUN = 2 JMP READ1 YES JSB EXEC READ FROM OTHER THAN DISK DEF *+5 DEF M1OR1 CODE = 1 OR -1 FOR READ DEF LUIND LOG. UNIT OF INPUT DEVICE .CI. DEF CI RLGTH EQU * ADDR OF ASKED-FOR RECD LENGTH DEF KM80 =-80 CHARACTERS JMP IC132 A RECORD HAS BEEN INPUT READ1 LDA FIRST SZA FIRST TIME ? JMP *+3 NO ISZ FIRST SET NE.0 JSB %JFIL READ IN FIRST SECTOR JSB GETWD GET RECORD HEAD ALF,ALF (A)= NO OF WORDS LDB 0 SZA,RSS END OF TAPE ? JMP IC132 A RECORD HAS BEEN INPUT SSA EOF ? JMP EOF END OF FILE CMA,INA -( NO OF WORDS IN RECORD) RBL STB ALGTH RECORD LGTH IN CHARS LDB RLGTH,I ASKED-FOR RECORD-LENGTH (-) BRS CONVERT TO -(WORD COUNT) STA RCOUN SET CURRENT-RECORD COUNT STB ACOUN SET ASKED-FOR RECORD COUNT JSB GETWD GET WORD FROM DISK STA RBFAD,I WORD TO USER-S BUFFER ISZ RBFAD BUMP BUFFER ADDR ISZ ACOUN BUMP COUNT RSS JMP READ2 READY,FINISH UP ISZ RCOUN BUMP RECORD COUNT JMP *-7 CONTINUE LDB ALGTH RETURN ACTUAL RECORD-LENGTH JMP *+5 READ2 ISZ RCOUN SKIP TO END OF RECORD JMP *+5 LDB RLGTH,I READY, RETURN ASKED-FOR REC.LGTH CMB,INB POS LGTH LDA CODE RETURN CODE-WORD IN A JMP IC132 A RECORD HAS BEEN INPUT JSB GETWD GET NEXT WORD JMP READ2 AND SKIP B1755 OCT 1755 KM80 DEC -80 EOF LDA K6 JMP EOFF GETWD NOP LDA BFRAD,I ISZ BFRAD ISZ BCOUN BUMP BUFFER COUNTER JMP GETWD,I EXIT ISZ SECTR BUMP SECTOR NO. LDB OPSY SSB JMP RTECD STA SAVE LDB SECTR CPB 116B END OF TRACK? CLB,RSS YES,SECTOR = 0 JMP GETW1+1 STB SECTR SECTOR NO = 0 ISZ TRACK BUMP TRACK NO. JSB EXEC DEF *+5 DEF KM16 CODE = -16 FOR STATUS DEF K1 1 TRACK DEF TRACK STARTING TRACK DEF TRACK NEXT GOOD TRACK JMP GETW1+1 RTECD LDB B1755 ADB RLUN =1757B FOR SYST, 1760B FOR AUX. LDB 1,I CPB SECTR END OF TRACK? CLB,RSS YES, SECTOR NO.= 0 JMP GETW1 STA CODE SAVE CODE-WORD STB SECTR SECTOR NO =0 LDA KM8 STA N LDA CODE CLE,ELA SHIFT UPPER 8 BITS OF ELB,CLE A INTO B, OR LSL 8 ISZ N JMP *-3 ALF,ALF STA TRACK SET TRACK NO STB RLUN SET LUN JSB READS READ SECTOR JMP GETWD+1 GET RECORD WORD GETW1 STA SAVE JSB READS READ NEXT SECTOR LDA SAVE JMP GETWD,I READS NOP LDA BFWA STA BFRAD BUFFER-POINTER= FWA BUFFER LDA MSIZE -64 OR -128 STA BCOUN BUFFER COUNTER JSB EXEC READ SECTOR DEF *+7 DEF M1OR1 CODE = 1 OR -1 FOR READ DEF RLUN LUN BFWA DEF BUFFR FWA OF READ-BUFFER DEF PSIZE 64 OR 128 WORDS DEF TRACK TRACK NO. DEF SECTR SECTOR NO. JMP READS,I EXIT KM40 DEC -40 KM8 DEC -8 * OPSY,FIRST,M1OR1,PSIZE,MSIZE,.2OR3 MUST BE IN SEQUENCE * * OPSY BSS 1 OPERATING SYSTEM FIRST OCT 0 FIRST TIME FLAG M1OR1 DEC 1 SET FOR RTE, MAY CHANGE PSIZE DEC 64 MSIZE DEC -64 .2OR3 DEC 2 * * *%RDSC READS A SECTOR *CALLING SEQUENCE: LDA CODE * LDB SECTR SECTOR NO. * JSB %RDSC * RETURN (A)= LAST WORD IN SECTOR %RDSC NOP STB SECTR SECTOR NO. LDB KM8 STB N CLB CLE,ELA ELB,CLE LSL 8 ISZ N JMP *-3 ALF,ALF STA TRACK LDA OPSY SSA JMP *+3 CPB K3 CMB,INB STB RLUN JSB READS READ SECTOR LDB OPSY LDA BUFFR+63 LAST WORD IN 64 WORD SECTOR SLB LDA BUFFR+127 LAST WORD IN 128 WORD SECTOR JMP %RDSC,I *%JFIL GETS SOURCE-FILE CODEWDRD FROM BASE PAGE, FORMS A WORD= *LUN,TRACK AND CALLS %RDIN WITH IT. %JFIL NOP LDA KM8 STA N LDA OPSY CLE,SSA JMP RTEFL RTE LDB 124B DOS OR IOMEC/DOS LDA .2OR3 LUN = 2 OR 3 JSB RRL RRL 8 BLF,BLF JMP CONTU RTEFL LDB 1767B SOURCE-FILE CODE WORD CLA CLE,ELB RRL 1 ELA  ADA .2OR3 JSB RRL SHIFT TRACK NO INTO A STA CODE SAVE LUN, TRACK NO. CLB CONTU JSB %RDSC READ SECTOR JMP %JFIL,I EXIT RRL NOP PERFORMS RRL N CLE,SSA IF MSB = 0, E=0 CCE ELSE E=1 ELB SHIFT E INTO B ELA SHIFT E INTO A ISZ N JMP RRL+1 JMP RRL,I SKP IC132 EQU * SZB,RSS IF 0 LENGTH RECORD, JMP IC13 YES, READ AGAIN. SLB NO, (B)=# OF CHARS INPUT INB BRS (B)=# OF WORDS IN SOURCE IMAGE STB NWICI # OF WDS IN CARD IMAGE LDA B ADB KM40 SZB,RSS JMP IC135 ALL 40 WORDS USED STB T0IC (B)=# OF WORDS TO BE BLANKED ADA .CI. (A)=1ST WORD LOC TO BE BLANKED LDB LINO-1 2 BLANKS STB A,I INA ISZ T0IC ALL DONE ? JMP *-3 NOT YET IC135 LDA CI YES AND .KK07 (A)HI=1ST CHAR. OF CARD BUFFER CPA KK08 IS IT A 'C' ? JMP IC136 YES, A COMMENT CARD CPA KK09 IS IT A '$' ? JMP IC21 YES, E.O.J. LDA FTNF FTN OR PROG FLAG SET ? SZA NO JMP IC141 YES CPA EQVE.,I EQUIV GROUP HAS ERROR? RSS NO JMP IC139 YES CPA SID.F,I RSS JMP IC139 CPA CLSW SCAN ? JMP IC139 NO, CODE GEN. LDA LIF.I,I LOG IF FLAG SET? SZA NO JMP IC139 YES LDB NOCRD ADB KM21 SSB JMP *+3 ISZ NOCRD JMP IC139 JSB MTC00 MOVE CI TO CRDPT IC139 LDA CI+2 AND B377 (A)LO=CI(6) CLB CPA B.60 =B60 JMP IC138 CI(6)=0 CPA B40 RSS JMP IC142 THIS IS A CONTINUATION CARD IC138 STB EQVE.,I SET EQVER=0 IC14 STB CC SET COLUMN COUNT JMP IC02 IC141 JSB PSI00 PRINT CI CLB JMP IC14 IC136 LDA I$EN1,I 'END' OCCURRED? SZA,RSS SKIP IF YES JMP IC137 NO STA PAS2F SET RETURN FROM PASS 2 FLAG JSB HED00 PRINT HEADER CLA STA CRDCT SET CARD COUNT TO 0 IC137 JSB PSI00 PRINT COMMENT CARD CLA STA I$EN1,I RESET 'END' FLAG JMP IC12 TO INPUT ANOTHER CARD .KK07 OCT 177400 KK08 OCT 41400 'C' IN HIGH ORDER BITS KK09 OCT 22000 '$' IN HIGH ORDER BITS IC142 LDA EQVE.,I EQUIV. GROUP HAS ERROR? SZA NO JMP IC146 YES CPA CLSW SCAN? JMP IC145 CODE GEN LDB KM21 ADB NOCRD # OF CARDS IN BUFFER SSB JMP IC144 JSB PSI00 PRINT SOURCE LDA K87 JSB ER00 MORE THAN 19 CONTINUATION CARDS IC146 CLA CPA CLSW SCAN? RSS NO,CODE GEN, JMP IC143 YES IC145 EQU * CPA SID.F,I STID FLAG SET? RSS NO JMP IC143 YES, IGNORE SOU00 CPA NMENT NAM/ENT OUTPUT YET ? JSB SOU0.,I YES, TO OUTPUT SOURCE IC143 LDB K7 JMP IC14 IC144 LDA LIF.I,I LOG IF FLAG SET? SZA,RSS YES JSB PSI00 NO,PRINT CI JMP IC143 KM21 DEC -21 * * TO PICK UP THE CHARACTER FROM CARD OR EQU BUFFER IC18 CCB ADB CC BRS (B)=(CC-1)/2 LDA EQUF IS IT IN EQUIVALENCE BUFFER SSA,RSS JMP IC26 YES, TO PICK UP CHAR. FROM EQU BUFFER ADB .CI. (B)=LOC. OF WORD CONTAINING CHAR. LDA B,I (A)=WORD CONTAINING CHAR. IC20 LDB CC SLB ALF,ALF CC ODD, (A)LO=LEFT CHAR. AND B377 JMP IC04 * * * SID.F DEF SIDFG SOU0. DEF SOU00 LIF.I DEF LIFF B.60 OCT 60 KM41 DEC -41 K87 DEC 87 I.PAK DEF ..PAK K67 DEC 67 * * * IC21 EQU * LDA I$EN1,I 'END' OCCURRED? SZA,RSS YES JMP IC211 |NO MAIN3 EQU * LDA KM3 STA MCNT . LDA HDSLO . RESTORE HEADER LINE LDB HDLOC . JSB MOVE _. LDA PNMSV STA PGNUM RESTORE PAGE NUMBER JSB HED00 PRINT HEADER IC211 JSB PSI00 PRINT '$' CARD IC22 LDA K67 LDB I$EN1,I $ENDF SET ? SZB,RSS (B) NON-0 MEANS 'END' OCCURRED EOFF EQU * JSB ERCM '$' OCCURS BEFORE 'END' JSB EXEC _. DEF *+5 . DEF K2 . TYPE OUT DEF K1 . '$END FTN4' DEF BFLO . DEF K5 _. JSB EXEC _. DEF *+3 . RELEASE ALL TRACKS DEF K5 . DEF KM1 _. JSB EXEC _. DEF *+2 . TERMINATE AND RETURN FTN4 DEF K6 _. TO THE DORMANT LIST JMP *-3 * I$EN1 DEF $ENDF BFLO ASC 5,$END,FTN4 * * * * * IC26 CCA ADA EQUF (A)=EQUF-1 LDB CC SLB,RSS STA EQUF CC EVEN ADA E ADDR OF END OF EQUIV TABLE LDA A,I JMP IC20 * * CRDPT DEF SCBUF CURRENT CARD PTR CRD1 DEF SCBUF 1ST CARD LOC. LINOL DEF LINO * ASC 1, TWO BLANKS LINO ASC 2,0001 SOURCE LINE # ASC 1, TWO BLANKS CI BSS 40 CARD INPUT BUFFER (BSS 40) * NWICI NOP # OF WORDS IN CARD IMAGE ACOUN NOP ASKED-FOR RECD COUNT RCOUN NOP CURRENT-RECORD COUNT ALGTH NOP RECD LGTH TRACK NOP CURRENT TRACK # SECTR NOP CURRENT SECTOR # BCOUN NOP SECTOR-BUFFER COUNTER SAVE NOP TEMP STORAGE RLUN NOP LUN OF CURRENT TRACK CODE NOP N NOP COUNTER RBFAD NOP ADDR. OF READ-BUFFER EJCON NOP EJECT CONTROL WORD T1PPN NOP -(# OF WDS TO BE INITIALI TO 0) BFRAD NOP POINTER FOR INTERNAL BUFFER T0IC NOP SAVE COUNT FOR BLANKING CI BUFF * * * EQVR. DEF EQVER EQUIV GROUP ERROR FLAG * * ********************** * * PRINT SOURCE IMAGE * * ********************** PSI00 NOP ISZ CRDCT LDA CRDCT CARD COUNT JSB ASCI.,I CONVERT TO ASCII STB LINO 1ST 2 DIGITS OF LINE # STA LINO+1 LAST 2 DIGITS OF LINE # LDB NWICI # OF WORDS IN IMAGE ADB K3 LDA LINOL LOC OF LINE # JSB PSL0.,I JMP PSI00,I EXIT * * CRDCT NOP CARD COUNT FOR SOURCE PROGRAM * * ************************* * * MOVE CARD FROM CI TO CRDPT * * ****************************** MTC00 NOP LDA KM41 STA MCNT LDA .CI. MOVE FROM LOC. LDB CRDPT MOVE TO LOC. JSB MOVE MOVE CI TO CURRENT CRD PTR JSB LNTA GET ADDRESS IN LINE NO. TABLE LDA CRDCT INA STA B,I STORE LINE NO. IN TABLE LDA CRDPT ADA K.41 STA CRDPT BUMP CRDPT TO PT TO NEXT CARD ISZ NOCRD # OF CARDS IN BUF BUMP BY 1 JMP MTC00,I EXIT * K.41 DEC 41 * * * * * * * * ****************************** * * MOVE CARD FROM CRDPT TO CI * * ****************************** MCI00 NOP LDA KM41 STA MCNT LDA CRDPT MOVE FROM LOC. LDB .CI. MOVE TO LOC. JSB MOVE MOVE CRDPT TO CI JSB LNTA GET ADDRESS IN LINE NO. TABLE LDA B,I STA CILN CILN = CURRENT LINE NUMBER LDA CRDPT ADA K.41 STA CRDPT CRDPT PTS TO NEXT CARD BUFFER JMP MCI00,I EXIT * * * ************************************ * * MOVE -MCNT WORDS FROM (A) TO (B) * ************************************ * ENTRY: (A)=1ST WORD ADDR FROM WHICH WORDS ARE MOVED * (B)=1ST WORD ADDR TO WHICH WORDS ARE MOVED MOVE NOP STA MOVT1 FROM ADDR MOVE1 LDA MOVT1,I STA B,I ISZ MOVT1 INB ISZ MCNT ALL WORDS MOVED? JMP MOVE1 NO JMP MOVE,I YES, EXIT MOVT1 NOP 'FROM' ADDR POINTER * * * * * * ** NOTE: THE FOLLOWING MUST BE IN THIS ORDER: * KK36,KK37,KK38,NOP,KK39,KK40,KK45 KK36 OCT -1000 KK37 OCT -2000 KK38 OCT -3000 NOP KK39 OCT -5000 KK40 OCT -6000 KK45 OCT -7000 * * I.CI. DEF CI EQVE. DEF EQVER * * * ******************************** * * LINE NUMBER TABLE ADDRESS * * ******************************** * * LNTA NOP CLB SET CARD COUNTER TO 0 LDA CRD1 ADDRESS OF FIRST BUFFER IN SCBUF CMA,INA ADA CRDPT SUBTRACT IT FROM CURRENT CARD ADDR. LNTA1 SZA,RSS 0? JMP LNTA2 YES - CARD COUNT DETERMINED. INB NO - INCREMENT CARD COUNTER. ADA KM41 SUBTRACT OFF 41 SUCCESSIVELY JMP LNTA1 CHECK AGAIN FOR 0. LNTA2 ADB DEFCL ADD ADDRESS OF LINE NO. TABLE JMP LNTA,I RETURN TABLE ADDRESS IN (B). * * DEFCL DEF CRDLN FWA OF CARD LINE NUMBER TABLE CRDLN BSS 21 LINE NUMBERS FOR 21 CARDS IN BUF CILN NOP CURRENT CI BUFFER LINE NUMBER. * * * ***************************************** * * CROSS REFERENCE INFORMATION OUTPUT * * ***************************************** * * CROUT NOP LDA R011 STA R R=011 JSB OW00 TERMINATE PREVIOUS RECORD. LDA KM34 STA NWRDS NWRDS= -(COUNT OF WORDS TO OUTPUT) LDA DEFCR (A)= STARTING ADDRESS OF CRBUF STA LWORD LWORD= LOCATION OF WORD TO OUTPUT CR01 LDA LWORD,I CR BUFFER WORD TO BE OUTPUT CLB STB R R=0 FOR SOURCE OUTPUT INB STB SFG SET SOURCE FLAG JSB OW00 OUTPUT WORD CLB STB SFG RESET SOURCE FLAG. ISZ LWORD BUMP FFER POINTER ISZ NWRDS ENTIRE CR BUFFEROUTPUT? JMP CR01 NOT YET LDA R011 IiSTA R JSB OW00 TERMINATE CROSS REFERENCE RECORD LDA KM32 REINITIALIZE NUMBER OF WORDS STA NWRDS LDA DEFCR REINTIALIZE STARTING ADDRESS OF PAIRS INA STA LWORD JMP CROUT,I * KM32 DEC -32 NWRDS DEC -32 LWORD DEF CRBUF+1 LOCATION OF NEXT WORD TO OUTPUT DEFCR DEF CRBUF FWA OF CROSS REFERECNE BUFFER. KM34 DEC -34 * * * *********************************** * * CROSS REFERENCE BUFFER * * *********************************** * * * THIS BUFFER IS USED TO WRITE CROSS REFERENCE PAIRS * TO THE INTERMEDIATE CODE STRING. THE RECORD GOES * OUT AS SOURCE CODE. IN ORDER THAT PASS 2 WILL NOT * TREAT IT AS A SOURCE LINE, THE FIRST WORD OF THE * RECORD IS ALWAYS 'C'. THIS COMBINATION DOES NOT * OCCUR FOR ACTUAL SOURCE LINES OUTPUT (M OPTION ON * CONTROL STATEMENT) BECAUSE COMMENT LINES ARE NOT * WRITTEN TO THE DISC. * * * CROSS REFERENCE PAIRS HAVE THE FORM: * * WORD 1: ASSIGNMENT TABLE ADDRESS OF IDENTIFIER * WORD 2: SOURCE LINE NUMBER OF OCCURENCE * * BOTH WORDS ARE IN BINARY. THERE ARE 16 PAIRS PER * RECORD EXCEPT (POSSIBLY) THE LAST ONE FOR A PROGRAM. * THE WORD FOLLOWING THE LAST PAIR IS 0. THIS IS USUALLY * WORD 34 OF THE RECORD * * * CRBUF ASC 1,C INDICATOR TO PASS 2. BSS 32 16 PAIRS NOP END OF RECORD INDICATOR * * * * **************************** * * CROSS REFERENCE PAIRS * * **************************** * * * ON ENTRY, .A CONTAINS ASSIGNMENT TABLE POINTER ADDRESS * OF IDENTIFIER AND * CILN CONTAINS THE LINE NUMBER WHERE IT WAS * FOUND (EXCEPT FOR THE RIGHT-MOST ELEMENT * IN A LINE. THIS ROUTINE WILL FIND ITS * CORR*ECT LINE NUMBER. * * CR00 EQU * CRP00 NOP LDA .CCW. IS 'C' SET FOR AND K16 CROSS REFERENCE? SZA,RSS YES. JMP CRP00,I NO- DON'T BUILD CROSS REF. PAIR. LDA .A STA LWORD,I OUTPUT ASSIGN. TABLE PTR PART OF PAIR ISZ LWORD BUMP POINTER TO BUFFER ISZ NWRDS BUMP COUNTER LDA CILN CURRENT LINE NUMBER CPA T1II SAME AS LINE NUMBER BEFORE INPUT? RSS YES, LINE NO. IS CORRECT. LDA T1II NO- USE PREVIOUS LINE NUMBER. STA LWORD,I OUTPUT LINE NO. PART OF PAIR. ISZ LWORD BUMP BUFFER POINTER ISZ NWRDS BUMP WORD COUNT JMP CRP00,I EXIT IF BUFFER NOT YET FULL JSB CROUT BUFFER FULL, OUTPUT IT AND JMP CRP00,I REINITIALIZE BUFFER PTR AND COUNT. * * * * * * ***************** * * SOURCE OUTPUT * * ***************** SOU00 NOP LDA .CCW. AND K2 M-BIT(MIXED) SET ? SZA,RSS YES JMP SOUEX SOURCE OUTPUT EXIT LDA R011 STA R.I,I R=011 JSB OW00.,I TERMINATE PREVIOUS RECORD LDA NWICI CMA,INA STA ICK1 (A)=-(COUNT OF WORDS TO BE OUTP) LDB I.CI. STB ICK2 IC133 LDA ICK2,I SOURCE WORD TO BE OUTPUT * ***************** * * OUTPUT SOURCE * CLB STB R R=0 INB STB SFG SET SOURCE FLAG JSB OW00.,I OUTPUT WORD CLB STB SFG RESET SOURCE FLAG * ***************** ISZ ICK2 BUMP CARD BUFFER POINTER ISZ ICK1 ALL SOURCE WORDS EXHAUSTED? JMP IC133 NOT YET LDA R011 TERMINATE SOURCE RECORD STA R.I,I R=011 JSB OW00.,I OUTPUT WORD SOUEX JMP SOU00,I EXIT * ICK1 NOP -(# OF WDS REMAINED TO BE OUTPUT ICK2 NOP PTR TO CARD BUFFER OW00. DEF OW00 R.I DEF R * * * * *  ****************** * * UNINPUT COLUMN * * ****************** UC00 NOP CCA ADA CC STA CC CC=CC-1 JMP UC00,I EXIT * SPC 3 KM7 DEC -7 BM32 OCT -32 BM12 OCT -12 BM60 OCT -60 I.IC0 DEF IC00 * * ******************* * * INPUT CHARACTER * * ******************* ICH00 NOP JSB I.IC0,I INPUT COLUMN CPA B40 IS CHARACTER A BLANK ? JMP ICH00+1 YES JSB PACK PACK CHAR. INTO .PACK LDA TC STA DFL SAVE CHAR. IN DFL STA NFL SAVE CHAR. IN NFL ADA BM60 SSA JMP ICH02 TC .LT. 0 ADA BM12 SSA JMP ICH04 TC IS A DIGIT ADA KM7 SSA JMP ICH02 TC NON-DIGIT, NON-ALPHABET ADA BM32 SSA JMP ICH06 TC IS AN ALPHABET ICH02 LDA TC (A)=CHAR. JUST INPUT JMP ICH00,I EXIT ICH04 CLA STA NFL TC IS A DIGIT ICH06 CLA STA DFL TC IS ALPHANUMERIC JMP ICH02 * * * * SKP * * * ************************** * * EXAMINE NEXT CHARACTER * * ************************** EXN00 NOP JSB ICH00 INPUT CHARACTER JSB UC00 UNINPUT COLUMN LDA NFL 0 IF CHAR. A DIGIT, ELSE NOT JMP EXN00,I * * * ************** * * INPUT ITEM * * ************** II00 NOP LDA EQUF IF EQUIV. GROUP BEING SCANNED, SSA SKIP STRIPPING BLANKS JSB EXN00 STRIP OFF BLANKS PRECEDING ITEM LDA CILN SAVE CURRENT LINE NUMBER STA T1II JSB IDN00 INPUT DNA SZA,RSS IM=0, POSSIBLE ERROR JMP II00,I JSB AI00 ASSIGN ITEM STA T2II SAVE IM LDA NT SZA IS NAME TAG = 0? JMP IIEX NO - CONSTANT INPUT 8  LDA EQUF IF EQUIVALENCE GROUP BEING SCANNED? SSA,RSS JMP IIEX YES - IDENTIFIER ALREADY COUNTED. LDA NOCRF NO CROSS REF FOR THIS ITEM? SZA JMP IIEX YES - ITEM ALREADY COUNTED. JSB CRP00 BUILD CROSS REFERENCE PAIR IIEX LDA T2II RESTORE IM TO (A) JMP II00,I EXIT * T1II NOP T2II NOP K18 DEC 18 NOCRF NOP NO CROSS REF FLAG (IF NOT = 0) * * ************** * * INPUT NAME * * ************** INM00 NOP JSB IOP00 INPUT OPERAND LDA K18 LDB NT IS OPERAND A NAME ? SZB JSB ERCM NO, OPERAND NOT A NAME LDA IM YES, (A)=IM OF THE OPERAND JMP INM00,I EXIT * * * *********************** * * INPUT DO NOT ASSIGN * * *********************** * IDN00 NOP CLA STA BFLAG CLEAR 'B' FLAG STA T2IDN T2=0 INDICATING REAL PART IDN02 JSB CLID CLEAR ID TO ZERO JSB CLIDI CLEAR IDI STA T1IDN T1=0 STA T3IDN T3=0 STA IU IU=0 (ITEM USAGE) STA NT NT=0 (NAME TAG) STA OVFL OVFL=0 INDICATING NO OVERFLOW IDN04 CLA STA IM IM=0 (ITEM MODE) IDN06 STA PCNT SET PACK COUNT TO 0 JSB IDS00 INPUT DIGIT STRING LDA IM SZA JMP IDN18 DIGITS FOLLOWING . HAS JUST BEEN INPUT STA DCT SET NO. OF DIGITS IN STRING TO 0 LDA REA STA IM SET IM TO REAL LDA TC XOR B56 IS TERMINATING CHAR. A '.' ? SZA,RSS JMP IDN06 YES LDA NT NO SZA IS THERE DIGIT STRING IN FRONT? JMP IDN30 YES LDA T3IDN PRECEDED BY + OR - ? SZA JMP IDN12 YES LDA DFL IS TC A LETTER ?  SZA JMP IDN16 NO LDA BM117 YES ADA TC IS TC =I,J,K,L,M,N ? SSA,RSS JMP IDN08 NO, TC .GT. N ADA K.6 SSA JMP IDN08 NO, TC .LT. I LDA INT YES, SET IM TO INTEGER STA IM IDN08 JSB CLNM TO CLEAR NID BUFFER TO BLANKS LDA KM6 STA T4IDN SET CHAR. COUNT TO -6 LDB IDNK1 LOC. OF 1ST WORD OF NID BUFFER STB T5IDN IDN10 LDB T5IDN NID BUFFER PTR LDA TC STORE CHAR. INTO NID BUFFER STA B,I JSB ICH00 INPUT A CHAR. LDA DFL IS IT ALPHANUMERIC ? SZA JMP IDN46 NO ISZ T5IDN INCREMENT NID BUFFER POINTER ISZ T4IDN 6 CHARS INPUT ? JMP IDN10 NO JMP IDN46 YES * KM6 DEC -6 BM117 OCT -117 OVFL OCT 0 OVERFLOW COUNTER PCNT OCT 0 PACK CHARACTER COUNT K.6 DEC 6 DCT NOP DIGIT COUNT * IDN12 STA TC STORE DELIMETER OPERATOR JSB UC00 UNINPUT COLUMN IDN14 CLA STA IM IM=0, POSSIBLE ERROR (MISSING OPERAND) JMP IDN48 * IDN16 LDA TC STA T3IDN SAVE TERMINATING OPERATOR CPA B53 JMP IDN04 TC=+ CPA B55 JMP IDN04 TC=- JMP IDN14 POSSIBLE ERROR (MISSING OPERAND) * B53 OCT 53 B55 OCT 55 BM105 OCT -105 K10 DEC 10 * IDN18 LDA DCT DIGIT COUNT =0 ? SZA JMP IDN30 NO CPA NT IS IT A CONSTANT? JMP IDN42 NO, IT IS A NAME LDA DFL TERMINATOR ALPHAMERIC ? SZA YES JMP IDN54 NO LDA TC ADA BM105 TC=E ? SZA,RSS JMP IDN26 YES INA,SZA TC=D? JMP IDN28 NO IDN20 LDA DBL YES, SET IM=DOUBLE STA IM IDN22 LDA $CLSW INITIAL SCAN SZA NO JMP IDN50 YES CPA BFLAG RSS JMP IDN76 'B' FLAG SET JSB ICH00 INPUT A CHAR IDN24 EQU * STA T0IDN SIGN OF EXPONENT CPA B55 RSS CPA B53 JSB ICH00 INPUT CHARACTOR LDA NFL IS CHAR. A DIGIT ? SZA,RSS JMP IDN52 YES LDA K11 NO,ERROR (EXP NON DIGIT) JSB ER00 TYPE OUT ERROR,SCAN NEXT STATEMENT K11 DEC 11 * * IDN26 JSB ICH00 INPUT A CHAR. CPA B121 TC=Q ? JMP IDN28 YES JMP IDN24 NO IDN28 JSB ILG0.,I INPUT LOGICAL JMP IDN32 * ILG0. DEF ILG00 B121 OCT 121 B105 OCT 105 'E' B110 OCT 110 'H' O104 OCT 104 'D' * IDN30 LDA TC CPA B105 TC=E ? JMP IDN22 YES CPA O104 TC='D' ? JMP IDN20 YES LDA DCT DIGIT COUNT 0 ? SZA JMP IDN76 NO IDN32 LDA INT STA IM SET IM=INTEGER LDA TC CPA B110 TC=H ? JMP IDN72 YES IDN31 EQU * LDA ID+2 STA IDI LDB BFLAG 'B' SET ? SZB NO JMP IDN33 YES, OCTAL NUMBER SSA,RSS JMP IDN35 IDI .GE. 0 LDB T3IDN SIGN OF NUMBER CPB B55 '-' ? JMP IDN37 IDN34 LDA K12 JSB ER00 INTEGER CONSTANT EXCEEDS MAX SIZ K12 DEC 12 IDN35 EQU * LDA ID IOR ID+1 SZA JMP IDN34 INTEGER TOO LARGE IDN33 EQU * LDA T3IDN OPERATOR=-? CPA B55 RSS YES JMP IDN48 NO LDA ID+2 CMA,INA STA IDI JMP IDN48 IDN37 CPA KK01 =B100000 JMP IDN48 YES JMP IDN34 NO, ERROR * K15 DEC 15 * IDN42 LDA K15 LDB T3IDN SZB JSB ERCM ERROR,ILLEGAL OPERATOR-OPERAND SEQUENCE \P JSB ILG0.,I INPUT LOGICAL CLB CPA KK10 TC='FA' ? JMP IDN44 YES LDB KK01 =B100000 CPA KK11 TC='TR' ? RSS YES JMP IDN14 TC .NE. 'FA' NOR 'TR' (POSSIBLE ERROR) IDN44 STB ID ID=0 (FALSE) OR =-0 (TRUE) LDA LOG JSB ESC00 ESTABLISH CONSTANT JSB ICH00 INPUT CHAR. IDN46 JSB IDID MOVE ID TO IDI JSB FOP00 FINISH OPERATOR IDN48 LDA K8 LDB T2IDN SZB JSB ERCM PRINT ERROR COMMENT, ILL. IMAGINARY PART IDN50 CLA STA I.SXF,I SXF=0 LDA IM JMP IDN00,I EXIT KK10 ASC 1,FA KK11 ASC 1,TR KK12 OCT 40000 I.SXF DEF SXF MPY00 DEF MPY * IDN52 LDA T1IDN V LDB K10 . JSB MPY00,I . LDA TC . T1=10*T1+TC ADA BM60 . ADA B . STA T1IDN V JSB ID00 INPUT DIGIT SZA,RSS JMP IDN52 LOOP TO COMPUTE EXPONENT BASE 10 IN T1 IDN54 LDA CLSW CODE GEN.? SZA YES JMP IDN50 NO, SCAN LDA ID IOR ID+1 IOR ID+2 SZA,RSS JMP IDN64 MANTISSA IS 0 LDA T1IDN LDB T0IDN IS SIGN OF EXP '-' 0 CPB B55 CMA,INA YES, 2'S COMPLEMENT T1 ADA OVFL OVERFLOW COUNTER LDB DCT DIGIT COUNT CMB,INB ADB A STB T1IDN T1=T1+OVFL-DCT LDA K47 STA T0IDN T0=47 (NO. OF BITS FOR D-NUMBER) IDN56 LDA ID ... AND KK12 =B40000 . SZA JMP IDN58 . TO NORMALIZE ID JSB LSID1 LEFT SHIFT ID BY 1 . & ADJUST EXP BASE CCA ADA T0IDN T0=T0-1 STA T0IDN . JMP IDN56 ..C IDN58 LDA T1IDN  SSA JMP IDN68 EXP BASE 10 .LT. 0 SZA JMP IDN70 EXP BASE 10 .GT. 0 JSB CLIDI CLEAR IDI TO 0 LDB B200 ROUND FACTOR LDA IM IS IT A REAL NUMBER ? XOR REA SZA,RSS STB IDI+1 YES SZA STB IDI+2 NO, IT IS DOUBLE JSB IDADD ID=ID+IDI TO -OUND LDA IM CPA DBL DOUBLE PRECISION UMBER? JMP *+6 YES LDA ID+1 NO,REAL NUMBER AND KK07 =B177400 STA ID+1 CLA JMP *+3 LDA ID+2 AND KK07 =B177400 STA ID+2 LDA T3IDN IS THE MANTI NEG. ? XOR B55 SZA JMP IDN61 * * ID = -ID * LDA ID METHOD: CMA (1) ID+2 .NE. 0 STA ID 1'S COMPLEMENT ID, ID+1 LDA ID+1 2'S COMPLEMENT ID+2 CMA LDB ID+2 (2) ID+2=0, ID+1 .NE. 0 CMB,INB,SZB 1'S COMPLEMENT ID STB ID+2 2'S COMPLEMENT ID+1 SZB,RSS INA,SZA (3) ID+2=ID+1=0 STA ID+1 2'S COMPLEMENT ID SZB JMP IDN61 SZA,RSS ISZ ID IDN61 EQU * LDA T0IDN .. RAL . FORM 8-BIT EXP (BASE 2) IN (B) AND B377 . LDB A SAVE EXP IN (B) LDA IM CPA REA IS IT A REAL CONSTANT ? JMP IDN60 YES LDA ID+2 NO, IT IS DOUBLE AND KK07 =B177400 IOR B MERGE IN EXP FOR DOUBLE JMP IDN62 IDN60 LDA ID+1 AND KK07 =B177400 IOR B MERGE IN EXP FOR REAL STA ID+1 CLA IDN62 STA ID+2 LDB T0IDN E P BASE SSB CMB,INB FORM ITS ABS. VALUE ADB BM200 SSB JMP IDN64 NO. WITHIN RANGE LDB T0IDN # DEFINITELY OUT OF RANGE SSB JSB CLID SET ID=0, UNDERFLOW LDA K14 JSB ERCM OVERFLOW OR UNDER FLOW IDN64 LDA I.SXF,I COMPLEX #? SZA,RSS JMP IDN46 NO LDA T2IDN IS IT REAL PART ? SZA SKIP IF YES JMP IDN66 NO, IMAGINAR PART LDA TC XOR B54 TC=',' ? SZA JMP IDN46 NO LDA ID .. LDB ID+1 . STA IDB . SAVE REAL PART IN IDB STB IDB+1 .. CCA STA T2IDN SET T2 FOR IMAGINARY PART JMP IDN02 TO INPUT IMAGINARY PART * K14 DEC 14 BM200 OCT -200 KK07 OCT 177400 CPX.K OCT 50000 IM=CPX * IDN66 LDA CPX.K STA IM SET IM TO COMPLEX LDA ID .. LDB ID+1 . IMAGINARY PART IN (ID+2,ID+3) STA IDI+2 STB IDI+3 LDA IDB .. LDB IDB+1 . REAL PART IN (ID,ID+1) WITH STA IDI . EXPS IN ID+3 & &D+1 R SPECT V&L0 STB IDI+1 JSB RP00 )-INPUT OPERATOR JMP IDN50 * IDN68 ISZ T1IDN T1=T1+1 (EX POW&R -F NOP LDA KM43 =-43 STA CT DIVIDE LOOP COUNT JSB RSID1 ARITH. RIGHT SHIFT ID BY 1 JSB RSID1 IDDB1 JSB LSID1 ARITH. LEFT SHIFT ID BY 1 LDA ID ADA KK29 =-10B5 SSA,RSS STA ID SSA,RSS ISZ ID+2 QUOTIENT BIT ISZ CT DIVIDE LOOP COUNTER JMP IDDB1 JSB LSID1 ARITH. LEFT SHIFT ID BY 1 LDA ID AND KK30 =B7777 TO REMOVE DIVIDEND BITS STA ID JMP IDN56 TO NORMALIZE && * KK29 OCT 154000 -10B5 KK30 OCT 7777 IDN70 CCA ADA T1IDN T1=T1-1 (EXP POWER OF 10) STA T1IDN LDA T0IDN ADA K4 T0=T0+4 (EXP POW - OF 2 STA T0IDN * * ID = ID*10 AT B4 * JSB RSID1 ARITH RIGHT SHIFT ID BY 1 STB IDI .. STA *IDI+1 . LDA ID+2 . IDI=ID=ID/2 STA IDI+2 .. JSB RSID1 JSB RSID1 ID=ID/8 JSB IDADD ID=ID+IDI=(5/8)*ID JMP IDN56 TO NORMALIZE ID * K20 DEC 20 KM3 DEC -3 SIDF. DEF SIDFG * IDN72 LDB ID+2 STB IDI (B)=# OF HOLL. CHARS * * INPUT HOLLERITH CONSTANT * LDA K20 SZB,RSS JSB ER00 EMPTY HOLLERITH STRING LDA CLSW CODE GEN.? SZA YES JMP *+8 NO LDA SIDF.,I STID FLAG SET? SZA NO JMP *+5 YES ADB KM3 LDA K65 SSB,RSS JSB ERCM HOLLERITH COUNT .GT. 2 JSB THS00 TEST HOLLERITH STRING CCA ADA IDI STA IDI IDI=IDI-1 SZA,RSS JMP IHC04 IDI WAS 1 JSB THS00 TEST HOLLERITH STRING IHC02 CCA ADA IDI STA IDI IDI=IDI-1 SZA,RSS JMP IHC06 JSB I.IC0,I INPUT COLUMN CPA B15 JMP THS02 HOLLERITH STRING TERMINTED JMP IHC02 IHC04 LDA B40 (A)=BLANK CHARACTER JSB TP00 TERMINATE PACK IHC06 EQU * LDA .PACK FIRST 1 OR 2 HOLLER&TH CHARS. STA IDI JSB ICH00 INPUT A CHAR. JMP IDN48-1 * K65 DEC 65 * IDN76 LDA IM CPA INT JMP IDN31 IM=INT LDA K16 LDB BFLAG 'B' FLAG SET? SZB NO JSB ER00 ILLEGAL OCTAL JMP IDN54 * * INPUT DNA LOCAL DATA K16 DEC 16 IDNK1 DEF NID LOC. OF 1ST WORD OF NID BUFFER ID BSS 3 ID FIELD IDB BSS 2 HOLDS REAL PART OF COMPLEX NUMBER T0IDN BSS 1 1. SIGN OF EXP, 2. EXP (POWER OF 2) T1IDN BSS 1 EXP. (POWER OF 10) T2IDN BSS 1 REAL(=0) OR IMAGINARY(NON-0) OF A CMPLX T3IDN BSS 1 1.TERMINATING OPERATOR, 2.SIGN OF MANTISSA T4IDN BSS 1 X NID BUFFER CHAR. COUNT T5IDN BSS 1 NID BUFFER POINTER CT BSS 1 DIVIDE LOOP COUNTER KM43 DEC -43 BFLAG NOP * * * * * TEST HOLLERITH STRING THS00 NOP JSB I.IC0,I INPUT COLUMN JSB PACK PACK CHAR. INTO .PACK CPA B15 'C/R' RSS HOLLERITH STRING TERMINTED JMP THS00,I THS02 LDB CLSW ADB SIDF.,I (B)=CLSW + SIDFG SZB,RSS JSB ER00 HOLLERITH STRING TERMINATED JMP IDN50 EXIT IDN00 WITH TC=C/R SKP * * * * **************************** * *ARITH RIGHT SHIFT ID BY 1 * * **************************** * RSID1 NOP LDB ID+1 LDA ID+2 JSB ASR00 ARITH. RIGHT SHIFT (B,A) 1 STA ID+2 LDB ID LDA ID+1 JSB ASR00 ARITH. RIGHT SHIFT (B,A) 1 STB ID STA ID+1 JMP RSID1,I * SPC 2 * * *************************** * *ARITH LEFT SHIFT ID BY 1 * * *************************** * LSID1 NOP LDB ID LDA ID+1 * * ARITH. LEFT SHIFT (B,A) 1 (ASL 1) * CLE,ELA ELB,RBL ERB STB ID LDB ID+1 LDA ID+2 * * LOGICAL SHIFT (B,A) LEFT 1 (LSL 1 ) * CLE,ELA ELB STB ID+1 STA ID+2 JMP LSID1,I * * SPC 2 SKP * * ***************** * * ID = ID + IDI * * ***************** IDADD NOP CLE LDB ID+2 ADB IDI+2 STB ID+2 CLB,SEZ,CLE INB ADB ID+1 ADB IDI+1 STB ID+1 CLB,SEZ INB ADB ID ADB IDI STB ID JMP IDADD,I * SPC 4 * * * * * * * * * *************** * * INPUT DIGIT * * *************** ID00 NOP JSB ICH00 INPUT CHARACTER LDA NFL IF CHAR. A DIGIT,NFL=0, ELSE NOT JMP IDo00,I * SPC 4 * * ************************ * * INPUT (A) CHARACTERS * * ************************ * ENTRY: (A)=NUMBER OF CHARACTERS TO BE INPUT * EXIT IF (A) CHARACTERS ARE INPUT OR A DELIMETER ENCOUNTERED IA00 NOP STA T0IA NUMBER OF CHARS. TO BE INPUT SZA,RSS JMP IAEX IA02 LDA T0IA ADA KM1 DECREMENT T0 BY 1 STA T0IA SSA (A) CHARS BEEN INPUT ? JMP IAEX YES, EXIT JSB ICH00 NO, INPUT A CHAR. LDA DFL IS CHAR. A DELIMETER ? SZA IAEX JMP IA00,I YES,EXIT JMP IA02 T0IA OCT 0 * SPC 3 SKP * * * ***************** * * INPUT OPERAND * * ***************** IOP00 NOP JSB II00 INPUT ITEM SZA JMP IOP00,I (A)=IM OF THE OPERAND LDA K17 JSB ER00 DELIMETER ENCOUNTERED WHEN OPERAND EXPECTED K17 DEC 17 * SPC 3 SPC 3 * * **************** * * INPUT SYMBOL * * **************** ISY00 NOP CLA,INA STA NTF SET NO-TAG FLAG JSB INM00 INPUT NAME JMP ISY00,I EXIT * * * NTF OCT 0 NO TAG FLAG * * *********************************** * * INPUT INTEGER VARIABLE/CONSTANT * * *********************************** IVC00 NOP JSB IOP00 INPUT OPERAND JSB TV00 TAG VARIABLE JSB INTST INTEGER TEST CLA JMP IVC00,I * * * ************************** * * INPUT INTEGER VARIABLE * * ************************** IIV00 NOP JSB IVC00 INPUT INTEGER VAR/CON JSB NCNT.,I NON-CONSTANT TEST JMP IIV00,I * NCNT. DEF NCONT B56 OCT 56 * * ***************** * * INPUT LOGICAL * * ***************** * TO INPUT THE LOGICAL OR RELA TIONAL OPERATOR FOLLOWING * EXIT: (A)=TC= THE FIRST TWO LETTERS OF THE OPERATOR ILG00 NOP LDA CLSW SZA JMP ILG00,I STATEMENT SCAN STAGES LDA PCNT PACK COUNT CMA,INA ADA K2 (A)=2-PCNT JSB IA0.I,I INPUT (A) CHARS. LDA .PACK STA T0ILG STORE THE FIRST TWO CHARACTERS LDA SIDF.,I STATEMENT ID FLAG SET? SZA NO JMP *+4 YES LDA TC CPA B15 C/R? JMP *+6 YES, ERROR 28 FOR ILLEGAL '.' LDA K4 JSB IA0.I,I INPUT 4 CHARS. LDA SIDF.,I STATEMENT ID FLAG SET? SZA NO JMP ILG00,I YES,EXIT LDA B56 '.' JSB TCTST TC MUST BE ='.' LDA T0ILG STA TC TC=THE FIRST 2 LETTERS OF THE OPERATOR JMP ILG00,I T0ILG OCT 0 TEMP CELL SAVING FIRST TWO CHARACTERS IA0.I DEF IA00 * * * ******************* * * FINISH OPERATOR * * ******************* * ENTRY: TC=DELIMETER OPERATOR * EXIT: IF ENTRY TC IS '.', TC WILL BE SET TO CONTAIN * THE 1ST TWO LETTERS OF THE LOGICAL OR RELATIONAL * OPERATOR, ELSE TC IS UNCHANGED. FOP00 NOP LDA TC TC='.' ? CPA B56 CLA,RSS JMP FOP00,I NO, EXIT STA PCNT SET PACK COUNT TO 0 JSB ILG00 INPUT LOGICAL JMP FOP00,I EXIT * * * ******************** * * )-INPUT OPERATOR * * ******************** RP00 NOP LDA B51 TC MUST BE ')' JSB TCTST TC-TEST JSB ICH00 INPUT CHARACTER JSB FOP00 FINISH OPERATOR JMP RP00,I EXIT B51 OCT 51 * * * * * * * ***************** * * CLEAR ID TO 0 * * ***************** CLID NOP CLA STA ID STA ID+1 STA ID+2 JMP CLID,I * * * ****************** * * MOVE ID TO IDI * * ****************** IDID NOP LDA ID STA IDI LDA ID+1 STA IDI+1 LDA ID+2 STA IDI+2 JMP IDID,I * * * *********************** * * CLEAR NID TO BLANKS * * *********************** CLNM NOP LDA B40 STA NID STA NID+1 STA NID+2 STA NID+3 STA NID+4 STA NID+5 JMP CLNM,I * * * * B17 OCT 17 * KK13 OCT 74000 * * * ********************** * * INPUT DIGIT STRING * * ********************** * EXIT: DCT=NUMBER OF DIGITS IN STRING * ID,ID+1,ID+2 =DIGIT STRING IN BINARY IDS00 NOP CLA STA DCT INITIALIZE DIGIT COUNT TO 0 STA T1IDS BINARIZED OCTAL STRING STA T2IDS NON-VALID OCTAL FLAG JSB ID00 INPUT CHARACTER SZA NEXT CHARACTER A DIGIT JMP IDS10 1ST CHAR. NON-DIGIT LDA TC STA T3IDS 1ST DIGIT IN ASCII JMP IDS03 IDS02 JSB ID00 INPUT DIGIT SZA JMP IDS08 NON-DIGIT IDS03 LDA ID AND KK13 IS IT POSSIBLE THAT ID WILL OVFL? SZA NO JMP IDS06 YES JSB LSID1 ID=2*ID JSB IDID IDI=ID JSB LSID1 JSB LSID1 ID=8*ID JSB IDADD ID=ID+IDI JSB CLIDI CLEAR IDI TO 0 LDA TC DIGIT JUST INPUT AND B17 BINARIZE TC STA IDI+2 JSB IDADD ID=ID+IDI LDA TC ADA BM70 SSA,RSS ISZ T2IDS DIGIT .GT. 7 ADA B10 LDB T1IDS BINARIZED OCTAL STRING BLF,RBR IOR B STA T1IDS T1=T1*2**3+TC IDS04 ISZ DCT INCREMENT NUMBER OF DIGITS BY 1 LDA IM ITEM MODE JSB ESC00 SET NT=1, IU=VAR/CON, IM=(A) JMP IDS02 IDS06 ISZ OVFL INCREMENT OVERFLOW COUNTER BY 1 JMP IDS04 IDS08 LDA TC WAS DIGIT STRING AN OCTAL STRING CPA B102 JMP IDS12 YES IDS10 LDA DCT NUMBER OF DIGITS IN STRING JMP IDS00,I EXIT * BM70 OCT -70 B102 OCT 102 'B' * IDS12 ISZ BFLAG SET 'B' FLAG LDB INT LDA IM SZA,RSS STB IM SET IM=INT IF IT WAS 0 LDA T2IDS ANY NON-VALID OCTAL SZA NO JMP IDS16 YES LDA DCT ADA KM6 SSA JMP IDS14 DCT .LT. 6 SZA,RSS JMP IDS18 DCT =6 JMP IDS19 MORE THAN 6 DIGITS IDS14 JSB CLID CLEAR ID TO 0 LDA T1IDS OCTAL STRING STA ID+2 IDS15 JSB ICH00 INPUT CHAR. JSB FOP00 FINISH OPERATOR JMP IDS10 IDS16 LDA K21 JMP IDS20 IDS17 EQU * JSB CLID CLEAR ID JMP IDS15 IDS18 LDA T3IDS 1ST OCTAL DIGIT IN ASCII AND B17 ARS SZA,RSS JMP IDS14 T3 .LE. 1 IDS19 LDA K16 IDS20 LDB CLSW ADB SIDFG SZB,RSS SKIP IF SCAN OR STMNT ID. JSB ERCM ILLEGAL OCTAL # JMP IDS17 * T1IDS NOP OCTAL STRING T2IDS NOP NON-VALID OCTAL FLAG T3IDS NOP 1ST OCTAL DIGIT IN ASCII K21 DEC 21 B100 OCT 100 * * * * * * * ************************** * * INPUT STATEMENT NUMBER * * ************************** ISN00 NOP JSB CLNM CLEAR NID TO BLANKS LDA B100 '@' STA NID LDA KM6 STA T1ISN T1=-6 LDA ISNK1 STA T2ISN T2=ADDR(NID) JSB EXN00 STRIP OFF PRECEDING BLANKS LDA CILN SAVE CURRENT LINE NUMBER STA T1II ISN02 JSB ID00 INPUT DIGIT SZA IS IT A DIGIT ? JMP ISN08 NO, NON-DIGIT CHAR IN STMNT NO. LDA TC LEADING 0 ? CPA B60 JMP ISN02 YES ISN04 ISZ T1ISN 5 DIGITS INPUT ? ( JMP ISN06 NO ISN05 EQU * LDA K.32 (A)=32 JSB ER00 YES, ERROR K.32 DEC 32 B60 OCT 60 ISN06 LDB T2ISN LDA TC STA B,I STORE DIGIT INTO NID BUFFER ISZ T2ISN T2=T2+1 LDA CC CPA K.6 JMP ISN09 CC=6 JSB ID00 INPUT DIGIT SZA,RSS IS IT A DIGIT ? JMP ISN04 YES STA NTF SET NO TAG FLAG LDA TC CPA B54 ',' JMP ISN07 CPA B15 'C/R' JMP ISN07 LDB CC CMB,INB ADB K.6 SSB,RSS CC .GT. 6 JMP ISN05 CC .LE. 6 JSB UC00 UNINPUT COLUMN ISN07 EQU * CLA STA IU IU=0 STA NT NT=0 STA IM IM=0 JSB AI00 ASSIGN ITEM JSB CRP00 BUILD CROSS FREFERENCE PAIR LDA IM RESTORE IM TO (A) JMP ISN00,I EXIT ISN08 LDA K31 JSB ER00 NON-DIGIT CHAR. IN STNMT NO. K31 DEC 31 ISN09 ISZ CC SET CC=7 JMP ISN07 * T1ISN BSS 1 COUNT FOR NO. OF DIGITS T2ISN BSS 1 NID BUFFER POINTER ISNK1 DEF NID+1 * * * * * * * * **************************************** * * MOVE PROGRAM NAME TO PBUF,ERBF,HEADL * * **************************************** MPN00 NOP STA T1MPN SAVE MOVE FROM LOC. LDB KM3 STB MCNT LDB HDLP7 JSB MOVE MOVE NAME TO EEADL+7,8,9 LDB KM3 STB MCNT LDA T1MPN MOVE FROM LOC. LDB PBFP3 MOVE TO LOC. JSB MOVE MOVE NAME TO PBUF+3,4,5 LDB KM3 STB MCNT LDA T1MPN LDB ERBP1 JSB MOVE MOVE NAME TO ERBF+1,2,3 JMP MPN00,I EXIT * * * HDLP7 DEF HEADL+7 PBFP3 DEF PBUF+3 ERBP1 DEF ERBF+1 T1MPN NOP MOVE FROM LOC. PBF17 DEF PBUF+17 PBF23 DEF PBUF+23 B3400 OCT 3400 OS00. DEF OS00 * * * ******************* * * FORM ENT RECORD * * # ******************* FER00 NOP LDA NMEN.,I NAM/ENT RECORD OUTPUT YET? SZA,RSS NO JMP FER00,I YES, EXIT LDA B3400 =B3400 (RECORD LENGTH=7) LDB PBF17 STA B,I INB LDA FERK1 =B40001 (IDENT=010, # OF ENT=1) STA B,I INB INB LDA KM3 STA MCNT LDA PBFP3 JSB MOVE MOVE PBUF+3,4,5 TO PBUF+20,21,22 CLA STA FERK2 STA NMEN.,I LDB PBF23 STA B,I PBUF+23=0 INB STA B,I PBUF+24=0 JSB STS00 SAVE TRACK & SECTOR # JSB OS00.,I OUTPUT SECTOR LDA CRDPT CURRENT CARD OTR STA T1FER LAST CARD PTR LDA CRD.1 1ST CARD LOC. STA CRDPT FER01 EQU * CPA T1FER TWO POINTERS MATCHED? JMP FER04 YES, TO OUTPUT LAST SOURCE JSB I.MCI,I MOVE CARD AT CRDPT TO CI LDA CIP2,I (A)=CI(2) AND B377 CPA B60 JMP *+4 CI(6)=0 CPA B40 RSS JMP FER02 LDA FERK2 SZA JMP FER04 INA STA FERK2 FER02 EQU * JSB SOU00 OUTPUT SOURCE LDA CRDPT CURRENT CARD PTR JMP FER01 FER04 EQU * LDA SBF MAIN PROGRAM ? SZA YES, TO OUTPUT 'CLRIO' JMP FER00,I EXIT * **************** * * OUTPUT CLRIO * * **************** JSB OLR00 OUTPUT LOAD LOC=RPL CLA JSB OAI00 OUTPUT 'NOP' LDA JSB LDB OCLK1 ASSIGNMENT PTR OF 'CLRIO' JSB SOA00 OUTPUT 'JSB .A' CLA CLB,INB JSB OZ00 OUTPUT 'DEF *+1' JSB SSB00 SET UP STRING BACK JMP LOCATION JMP FER00,I EXIT * OCLK1 DEF FEDP+252B '.A OF CLRIO' JSB OCT 16000 * * NMEN. DEF NMENT I.MCI DEF MCI00 FERK1 OCT 40001 FERK2 NOP T1FER NOP LAST CARD PTR CIP2 DEF CI+2 CRD.1 DEF SCBUF * * * * * SPC 4 * * **************************************** * * ARITH. RIGHT SHIFT (B,A) 1 (ASR 1) * * **************************************** ASR00 NOP CLE,SLB,BRS CCE ERA JMP ASR00,I * * * ********************* * * PACK (A) TO .PACK * * ********************* * TRANSFER .PACK TO THE OBJECT OUTPUT BUFFER * OR THE EQUIVALENCE BUFFER PACK NOP LDB A LDA .PACK CURRENT CONTENTS OF .PACK ALF,ALF (A)HI=CHAR. TO BE PACKED INTO THE AND KK07 #B177400 IOR B STA .PACK ISZ PCNT INCREMENT PACK COUNT BY 1 CCA ADA OPF STA OPF OUTPUT .PACK ? SZA JMP PACK2 NO, NOT YET LDB K2 STB OPF CPA SLF STATEMENT LEVEL SET TO PROC JMP PACK4 YES LDA EQVER ERROR IN EQUIV GROUP? SZA NO JMP PACK2 YES, DO NOT OUTPUT ASCII CHARACYER LDA .PACK * *********************** * * OUTPUT ASCII STRING * LDB R010 R=2 FOR ASCII DATA STB R JSB OW00 OUTPUT WORD * *********************** * PACK2 LDA .PACK AND B377 (A)=CHAR. JUST PACKED JMP PACK,I EXIT R010 OCT 40000 ASCII INFORMATION PACK4 CCA ADA E STA E E=E-1 CPA LO COMPARE WITH END OF ASSIGNMENT TABLE JMP PACK6 THEY OVERLAP CMA,INA ADA LO SSA,RSS JMP DPOVF DATA POOL FULL * PACK6 LDA SLINE IS PREVIOUS SOURCE LINE NO. SAME CPA CILN AS CURRENT LINE NO.? JMP PACK8 YES- SKIP SPECIAL XREF PROCESS. SSA IS SLINE<0 TO INDICATE OUT OF JMP PACK8 TABLE SPACE IN F4.0? YES, SKIP. * LDA NEXTL IF NEXTL=ENDLT, WE ARE OUT OF CPA ENDLT TABLE SPACE IN F4.0. XREF MUST RSS BE DISCONTINUED FOR EQUIVALENCE. JMP PACK7 NO- SET UP XREF INFO IN TABLE. CCA YES- SET SLINE=-1 AS A FLAG. STA SLINE JMP PACK8 AND CONTINUE WITH PACK. * PACK7 LDB CILN CURRENT LINE NO. STB A,I STORE IT IN TABLE IN F4.0. STB SLINE INA BUMP POINTER TO TABLE. LDB E EQUIVALENCE TABLE POINTER STB A,I STORE IT IN TABLE IN F4.0. INA UPDATE NEXTL FOR NEXT LINE STA NEXTL OF EQUIVALENCE STATEMENTS. * PACK8 LDA .PACK 2 CHARACTERS TO BE PACKED IN LDB E MAKE SURE (B)=E. STA B,I STORE INTO THE EQUIVALENCE BUFFER JMP PACK2 DPOVF LDA K3 (A)=3 JSB ER00 PRINT 'DATA POOL OVERFLOW' ERROR SLF NOP STATEMENT LEVEL FLAG SLINE NOP MUST BE 0 INITIALLY. * * * ****************** * * TERMINATE PACK * * ****************** * INPUT: (A)=CHARACTER TO BE PACKED TP00 NOP JSB PACK PACK BLANK INTO .PACK CLA STA OPF RESET OUTPUT PACK FLAG JMP TP00,I B20 OCT 20 KK02 OCT 70000 TO EXTRACT IM FIELD KK03 OCT 7000 TO EXTRACT AT FIELD KK04 OCT 600 TO EXTRACT IU FIELD KK05 OCT 140 TO EXTRACT NC FIELD I.NC DEF NC * * ***************** * * FETCH ASSIGNS * * ***************** FA00 NOP LDB .A LDA B,I AND KK01 STA NT NT=NT(.A) LDA B,I AND KK02 STA IM IM=IM(.A) LDA B,I AND KK03 STA AT AT=AT(.A) LDA B,I AND KK04 STA IU IU=IU(.A) LDA B,I AND KK05 STA I.NC,I NC=NC(.A) LDA B,I AND B20 STA I.R,I .R=R(.A) LDA B,I AND B10 STA .E .E=E(.A) LDA B,I AND B7 STA NW NW=NW(.A) INB LDA B,I (A)=GF(.A) STA X5 STA AF JSB NWE00 NO. OF WORDS FOR ASSIGNMNT ENTRY ADB KM2 STB D0 D0=NO. OF WDS FOR THIS ITEM MODE BLS ADB D0 ADB KM2 ADB DP STB X0 X0=DP+(3*D0-2) LDA IU SZA JMP FA04 FA02 LDA AF (A)=AF FAEX JMP FA00,I EXIT * I.R DEF .R I.ND DEF ND X0 BSS 1 ASSIGN TABLE POINTER FOR D0 .. X5 BSS 1 ASSIGN TABLE POINTER FOR ARRAY . IBADR DEF BADDR * DIMENSION ENTRY.. FA04 CPA ARR RSS JMP FA02 NON-ARRAY LDB X5 (B)=ADDR OF SUBSCRIPT INFO ENTRY LDA B,I AND B10 STA .E .E=E(X5) LDA B,I AND KK02 ALF STA I.ND,I ND=IM(X5), (# OF DIMENSIONS) CMA,INA STA J ADB K2 LDA B,I STA IBADR,I POINTS TO BASE ADDR OF ARRAY INB CLA STA D2 INITIALIZE DIMENSIONS 2 & 3 TO 0 STA D3 LDA B,I STA T1FA,I ASSIGN TABLE POINTER FOR D1 INB LDA B,I STA I.X2,I ASSIGN TABLE POINTER FOR D2 INB LDA B,I STA I.X3,I ASSIGN TABLE POINTER FOR D3 LDA T2FA D TABLE ADDR STA T4FA LDB T1FA X TABLE ADDR STB T3FA FA06 LDB B,I LDA B,I AND KK02 XOR DUM SZA,RSS JMP *+3 AT(XJ)=DUM ADB K2 LDA B,I STA T4FA,I DJ= 0 (IF DUM) OR ID(XJ) ISZ T4FA BUMP D TABLE POINTER ISZ T3FA BUMP X TABLE POINTER LDB T3FA ISZ J NO. OF DIM EXHAUSTED ? JMP FA06 NO LDB X5 INB LDA B,I (A)=GF(X5) STA AF JMP FAEX TO EXIT T1FA DEF X1 START LOC OF X-TABLE T2FA DEF D1 START LOC OF D-TABLE T3FA BSS 1 X-TABLE POINTER T4FA BSS 1 D-TABLE POINTER .E BSS 1 HOLDS E(.A) I.X2 DEF X2 I.X3 DEF X3 * * ****************** * * CLEAR IDI TO 0 * * ****************** CLIDI NOP CLA STA IDI STA IDI+1 STA IDI+2 STA IDI+3 JMP CLIDI,I * * * ******************* * * MOVE NID TO IDI * * ******************* IDNID NOP LDA NID ALF,ALF IOR NID+1 STA IDI LDA NID+2 ALF,ALF IOR NID+3 STA IDI+1 LDA NID+4 ALF,ALF IOR NID+5 STA IDI+2 JMP IDNID,I * I..DP DEF .DP AF12. DEF AF12 * * * * * * *************** * * ASSIGN ITEM * * *************** AI00 NOP CLA STA TSUBF RESET 'SUB' FLAG STA AF12.,I INITIALIZE AF12 TO 0 LDA I..DP,I (A)=.DP STA .A .A=BASE LOC. OF FIX-EXT-TABLE LDA NT IS ITEM A NAME ? SZA,RSS NO JSB IDNID YES, IDI=NID LDA IM IS IT A 2-WORD STRING-BACK ENTRY? CPA KK12. =B40000 JMP AI24 YES AI02 JSB GNA00 GET NEXT ASSIGNMENT POINTER SSA,RSS JMP AI12 END OF ASSIGNMENT TBL REACHED LDB .A LDA B,I (A)=1ST WORD OF ASSIGNMENT ENTRY AND B7 ADA K.M3 SSA JMP AI02 1 OR 2-WORD ENTRIES CMA STA NW NW=-(NO. OF WORDS IN ID FIELD) LDA B,I (A)=1ST WORD OF ASSIGNMENT ENTRY XOR NT SSA JMP AI02 NT .NE. NT(.A) ADB K2 LDA .BIDI 1ST WORD LOC OF IDI STA T1AI LDA FIXF IN FIX-ENT-TABLE ? SSA NO JMP AI11 YES AI05 LDA T1AI,I CPA B,I RSS JMP AI02 ID FIELD NOT MATCHED AI051 EQU * INB ISZ T1AI ISZ NW FULL IF MATCHED ? JMP AI05 LDA NT YES SZA,RSS IS ITEM A CONSTANT ? JMP AI28 LDA .A,I AND KK02 =B70000 XOR IM SZA JMP AI02 IM .NE. IM(.A) LDA .A,I n AND B600 (A)=IU(.A) CPA IU SZA,RSS JMP AI02 IU .NE. IU(.A), OR = BUT IU=0 AI06 EQU * JSB FA00 FETCH ASSIGN LDA TSUBF 'SUB' FLAG SET ? SZA NO JMP AI10 YES LDA NTF.I,I NO TAG FLAG SET ? SZA NO JMP AI08 YES, DO NOT TAG ITEM LDA IU IU FLAGGED ? SZA NO JMP AI09 TO CHECK FOR DUMMY ITEM LDA SPF CURRENT STATEMENT LEVEL CPA K4 RSS EXECUTABLE STATEMENT JMP *+4 LDA AT CPA DUM JMP AI07 AT=DUM CLA CPA SPF SPECIFICATION STATEMENT? JMP AI08 YES AI07 EQU * LDA TC TC=( ? CPA B50 JMP AI13 YES, SUBPROGRAM JSB TV00 NO, TAG VARIABLE AI08 CLB STB NTF.I,I RESET NO TAG FLAG STB I.AT.,I RESET SUBSCRIPT INFORMATION LDA IM IM FROM FA00 JMP AI00,I EXIT .BIDI DEF IDI B50 OCT 50 * AI09 EQU * CPA ARR JMP AI08 DO NOT RE-TYPE DUMMY ARRAY CPA SUB JMP AI08 DO NOT RE-TYPE DUMMY SUB LDA AT CPA REL AT=REL? JMP AI08 YES LDA IM CPA KK12. IM=4? JMP AI08 YES LDA IDI SSA JMP AI08 TEMP CELL JMP AI07 TO TAG ITEM AS 'SUB' IF TC=( * * * NTF.I DEF NTF K.M3 DEC -3 KK12. OCT 40000 I.AT. DEF .AT. KK46 OCT 100200 KK47 OCT 77577 AF12 NOP SAVE AF12(.A) B600 OCT 600 STRF. NOP STRING BACK LOCATION EFG NOP E-FLAG(SET IF SUBSCRIPT DUMMY) * * * AI11 LDA B,I 1ST TWO CHARS AND KK46 =B100200 STA AF12 SAVE IN AF12(.A) LDA B,I AND KK47 =B77577 CPA T1AI,I JMP AI051 1ST 2 CHARS. MATCHED JMP AI02 THEY DON'T MATCH AI13 LDA DCEFG DIM,COM FLAG SET? SZA NO JMP AI08 YES, DIM,COM OR EQUIV. AI10 JSB TS00 TAG SUBPROGRAM JMP AI08 DCEFG NOP DIM,COM FLAG AI12 LDA I.AT.,I CPA DIM =B6000 JMP AI26 SUBSCRIPT INFORMATION LDA NT IS IT A NAME ? SZA,RSS NO, IT IS A CONSTANT JMP AI40 YES JSB NWE00 (B)=NO. WDS FOR ASSIGNMENT ENTRY AI14 STB NW NO. OF WORDS IN THIS ENTRY LDA LO ADA B STA LO LO=NEW ORIGIN FOR OPERATOR STACK STA STK2B BEGIN ADDR OF OPERATOR STACK LDA STK2T STA J ADA B STA STK2T LAST WORD LOC OF OPERATOR STACK LDA L CMA,INA ADA NW LDB NW SSA LDB L CMB,INB STB T3AI -(# OF WDS TO BE MOVED) LDA STK1T END OF OPERAND STACK LDB SPF SPECIFICATION LEVEL ? SZB,RSS NO LDA E YES, (A)=END OF EQUIVALENCE TBLE CMA,INA ADA STK2T SSA,RSS JMP DPOVF DATA POOL OVERFLOW AI16 LDA J LDB A,I ADA NW STB A,I (J+NW)=(J) CCA ADA J STA J J=J-1 ISZ T3AI JMP AI16 LDB .A CLA .. STA AF . LDA IU . AF=0 IF IU=SUB CPA SUB . ELSE AF=.A RSS STB AF .. LDA I.AT.,I CPA DIM =B6000 RSS LDA STRAB . STA AT .. LDA NT NAME TAG IOR IM ITEM MODE IOR AT ADDRESS TYPE IOR IU ITEM USAGE IOR EFG E FLAG IOR NW NO. OF WORDS IN THIS ASSI ENTRY STA B,I 1ST WORD IN ASSIGNMENT ENTRY INB LDA AF ADDRESS FIELD STA B,I 2ND WORD IN ASSIGNMENT ENTRY INB LDA BIDI 1ST WORD LOC OF IDI STA T1AI LDA AT CPA STRAB JMP *+4 INB LDA .M3 (A)=-3 RSS LDA KM2 ADA NW k CMA,INA STA NW NW=-(NO. OF WORDS IN ID FIELD) SZA,RSS JMP AI22 AI20 LDA T1AI,I STA B,I . INB . MOVE IDI BUFFER TO ID(.A) ISZ T1AI . ISZ NW . JMP AI20 .. AI22 CLA STA EFG RESET E-FLAG JMP AI06 AI24 LDA STK2B STA .A .A=NEXT ASSIGNMENT ENTRY LOC. LDB K2 2 WORDS FOR THIS STRING-BACK ITM JMP AI14 AI26 LDB IM NO. OF SUBSCRIPTS BLF ADB K3 JMP AI14 AI27 LDA T1AI,I CPA TWOBS 2 BLANKS JMP AI30 YES JMP AI02 NO SKP * TWOBS ASC 1, .M3 DEC -3 BIDI DEF IDI EXTF NOP EXTERNAL STATEMENT FLAG DIM OCT 6000 AT=6 (DIMENSION IFORMATION ENTRY). AIK1 DEF IDI+1 AIK2 DEF IDI+2 J BSS 1 TEMP INDEX STRAB OCT 2000 AT=2 (STR-ABS) UNDEFINED I.TYF DEF TYPF * AI28 LDA T1AI CPA AIK1 JMP AI27 CPA AIK2 JMP AI27 AI30 LDA FIXF IS IT IN FIX EXTERNAL TABLE ? SSA,RSS JMP AI06 NO LDB .A STB T4AI .A INB STB T5AI .A+1 INB STB T6AI .A+2 LDB DCEFG SZB NO JMP AI33 YES, TO ASSIGN TO DATA POOL LDB EQUF IN EQUIV GROUP ? SSB,RSS NO JMP AI33 YES LDA I.TYF,I TYPE STATEMENT FLAG SZA JMP AI36 IT IS A TYPE STATEMENT LDA TC TC=( CPA B50 JMP AI38 LDA T5AI,I (A)=AF(.A) SZA JMP AI48 CPA EXTF EXT FLAG SET? RSS NO JMP AI32 EXT FLAG SET LDA T4AI,I AND B10 (A)=E(.A) SZA JMP AI34 E(.A) .NE. 0 AI31 EQU * LDA T6AI,I AND KK47 =B77577 IOR KK01 STA T6AI,I SET AF12(.A)=2 JMP AI02 AI33 LDA T6AI,I AND KK46 =B100200 CPA SUB AF12=B200 JMP AI39 YE S, APPEAR IN TYPE AI35 LDA T4AI,I AND B10 (A)=E(.A) SZA,RSS JMP AI31 LDA K25 JSB ER00 AI39 LDA T4AI,I AND KK02 MASK OUT IM FIELD STA IM JMP AI35 B140 OCT 140 B43 OCT 43 B44 OCT 44 B45 OCT 45 B.100 OCT 100 AI32 EQU * LDA B10 IOR T4AI,I STA T4AI,I SET E(.A)=1 AI34 LDA AF12 AF12(.A)=0 ? SSA YES JMP AI02 LDA T4AI,I AND B140 (A)=NC(.A) CPA B40 LDA B44 $ CPA B.100 LDA B43 # CPA B140 LDA B45 % SZA,RSS JMP AI06 NO NAME CHANGE NEEDED STA NID CHANGE 1ST CHAR OF NAME ACCORDINGLY JSB IDNID MOVE NID TO IDI JMP AI37 TO CONTINUE SEARCH WITH NEW NAME AI36 LDA T6AI,I AND KK47 =B77577 IOR SUB STA T6AI,I LDA T4AI,I AND KK02 ITEM MODE FIELD CPA I.MFL,I MODE FLAG OF TYPE STATEMENT JMP AI34 MODES MATCHED LDA T6AI,I IOR KK01 =B100000 STA T6AI,I SET AF12(.A)=B100200 LDA T4AI,I AND B10 (A)=E(.A) AI37 LDB SUB SZA STB IU E(.A)=1,SO SET IU=SUB JMP AI02 TO SEARCH ASSIGNMENT TABLE AGAIN AI38 LDA T4AI,I IOR B10 SET E(.A)=1 (SAME AS DEFIN EXT) STA T4AI,I LDA AF12 CPA KK46 =B100200 JMP AI49 AF12=B100200 CPA KK01 RSS AF12(.A)=2 JMP AI06 AF12(.A)=2 LDA K33 JSB ER00 IMPROPER USE OF SUBR NAME I.MFL DEF MFL K33 DEC 33 BNID DEF NID 1ST WORD LOC OF NID AI40 LDA BNID STA T1AI T1=1ST WORD ADDR OF NID CLB,INB (B)=1 LDA K.M6 (A)=-6 STA T2AI AI42 LDA T1AI,I CPA B40 JMP AI44 CHAR IS A BLANK ISZ T1AI ISZ T2AI JMP AI46 AI44 BRS ADB K2 (B)=NO. OF WORDS FOR ASSI ENTRY JMP AI14 AI46 INB JMP AI42 AI48 EQU * LDA T4AI,I AND B10 MASK OUT E(.A) SZA JMP AI34 E(.A)=1 JMP AI02 E(.A)=0 AI49 STA TSUBF SET TAG 'SUB' FLAG JMP AI37 * T1AI BSS 1 TEMP CELL T2AI BSS 1 TEMP CELL T3AI BSS 1 T4AI NOP .A T5AI NOP .A+1 T6AI NOP .A+2 TSUBF NOP TAG 'SUB' FLAG K.M6 DEC -6 * * * * ***************************************** * * (B)=NO. OF WORDS FOR ASSIGNMENT ENTRY * * ***************************************** NWE00 NOP LDB B3 LDA IM CPA REA IM=2 ? INB YES,REAL CONSTANT CPA DBL IM=6 ? ADB B2 YES,DOUBLE PRECISION CONSTANT CPA K.CPX IM=5 ? ADB B3 YES,COMPLEX JMP NWE00,I EXIT K.CPX OCT 50000 IM=CPX * * * * ******************************* * * GET NEXT ASSIGNMENT POINTER * * ******************************* * * ENTRY: .A=CURRENT POINTER TO ASSIGNMENT TABLE ENTRY * EXIT : .A=POINTER TO NEXT ENTRY IN THE ASSIGNMENT TABLE * (A)=.A-STK2B (.GE. 0 MEANS TOP OF ASSIGNMENT TABLE REACHED * FIXF=.A-DP (.LT. 0 MEANS IN FIX EXT. TABLE, * .GE. 0 MEANS IN ASSIGNMENT TABLE). GNA00 NOP LDB .A LDA B,I AND B7 (A)=NW(.A) ADB A STB .A .A=.A+NW(.A) LDA DP CMA,INA ADA B STA FIXF FIXF=.A-DP LDA STK2B CMA,INA ADA .A (A)=.A-STK2B JMP GNA00,I EXIT * FIXF BSS 1 FIX EXT TBL FLAG * * * * * * * ******************* * * DEFINE LOCATION * * ******************* * TO DEFINE: * AF(.A)=RPL (PRESENT LOCATION COUNTER) * AT(.A)=REL DL00 NOP LDA REL JSB DAT00 DEFINE AT LDA RPL JSB DAF00 DEFINE AF  JMP DL00,I * * * ************************ * * FETCH ID AND ASSIGNS * * ************************ FID00 NOP JSB CLNM CLEAR NID TO BLANKS JSB NW00 NW=(A)=-(NO. OF WDS IN NAME) SSA,RSS JMP FID04 NO ID FIELD (DUMMY 1 OR 2 WD) LDA BNID LOC. OF 1ST WD OF NID BUFFER STA T1FID JSB B.AP2 (B)=(.A)+2 FID02 LDA B,I ALF,ALF AND B377 STA T1FID,I STORE 1ST CHAR INTO NID BUFFER ISZ T1FID BUMP NID BUFFER LOC BY 1 LDA B,I AND B377 STA T1FID,I STORE 2ND CHAR INTO NID BUFFER ISZ T1FID BUMP NID BUFFER LOC BY 1 INB BUMP ID FIELD LOC BY 1 ISZ NW ID FIELD EXHAUSTED ? JMP FID02 NO, CONTINUE FID04 JSB FA00 FETCH ASSIGNS JMP FID00,I EXIT T1FID BSS 1 NID BUFFER POINTER * * * ****************** * * FETCH CONSTANT * * ****************** FC00 NOP JSB CLIDI CLEAR IDI BUFFER TO 0 JSB NW00 (A)=-(NO. OF WORDS IN ID FIELD) SSA,RSS JMP FCEX DUMMY 1 OR 2 WORD ENTRY LDA BIDI LOC. OF 1ST WORD OF IDI BUFFER STA T1FC JSB B.AP2 (B)=(.A)+2 FC02 LDA B,I STA T1FC,I STORE ID FIELD INTO IDI BUFFER ISZ T1FC BUMP IDI BUFFER PTR BY 1 INB BUMP ID FIELD LOC BY 1 ISZ NW ID FIELD EXHAUSTED ? JMP FC02 NO FCEX JMP FC00,I YES,EXIT T1FC BSS 1 IDI BUFFER POINTER * * * * * * ******************************** * * (A)=-(NO. OF WORDS IN ID(.A) * * ******************************** NW00 NOP LDB .A LDA B,I AND B7 ADA KM2 CMA,INA STA NW (A)=NW=-(NO. OF WORDS IN ID(.A) JMP NW00,I * * * ************** * * (B)=(.A)+2 * * ************** B.AP2 NOP LDB .A ADB K2 JMP B.AP2,I * * * *  ************************************ * * D0: NUMBER OF ELEMENTS FOR ARRAY * * ************************************ * EXIT: (A)=# OF ELEMENTS IN ARRAY NEA00 NOP LDA IU CPA ARR CLA,INA,RSS JMP NEAEX NON-ARRAY, TO EXIT STA D0 D0=1 LDA IM CPA K.CPX IM=CPX? ISZ D0 YES, D0=2 JSB NWI00 D0=D0*D1*D2*D3 NEAEX JMP NEA00,I EXIT * K.68 DEC 68 KM9 DEC -9 ASFNL DEF ASFNM LOC OF CURRENT ASF NAME ASFN NOP K.75 DEC 75 * * * ****************** * * TAG SUBPROGRAM * * ****************** TS00 NOP LDA IU CPA VAR JMP TS06 IU=VAR CPA SUB JMP TS04 JSB NUTST NO USAGE TEST LDA KM3 STA MCNT LDA ASFNL STA ASFN LDB BIDI TS05 LDA B,I CPA ASFN,I RSS JMP TS07 NOT MATCHED INB ISZ ASFN ISZ MCNT JMP TS05 TO COMPARE NEXT 2 CHARACATERS LDA SUB STA ASFNL,I RESET ASFNM JSB DIU00 SET IU=SUB LDA K.75 JSB ER00 RECURSION TS07 LDA KM9 STA MCNT LDB BAD9T STB BAD9P TS09 LDB BAD9P,I ADB K2 LDA B,I AND KK47 =77577B CPA IDI RSS JMP TS08 NOT MATCHED INB LDA B,I CPA IDI+1 RSS JMP TS08 NOT MATCHED LDA BAD9P,I LDA A,I SLA,RSS JMP TS11 INB LDA B,I CPA IDI+2 RSS JMP TS08 NOT MATCHED TS11 LDB BAD9P,I NAME MATCHED LDA B,I AND KK02 IM FIELD CPA IM RSS IM FIELDS MATCHED JMP TS08 NOT MATCHED STB .A JSB FA00 FETCH ASSIGNS JMP TS00,I TS08 ISZ BAD9P ISZ MCNT JMP TS09 CONTINUE SEARCH TS01 EQU * LDB NID+5 CPB B40 JMP *+3 LDA K.68 (A)=68 Җ JSB ERCM SUBROUTINE NAME WITH 6 CHARS LDA SUB STA IU IU=SUB JSB DIU00 DEFINE IU JSB DUMCK DUMMY CHECK SZA,RSS JMP TS02 IT IS DUMMY JSB FA00 FETCH ASSIGN LDA TSUBF TAG-SUBR FLAG SET ? SZA NO JMP *+4 YES LDA AT CPA REL JMP TS00,I EXIT, SUB ALREADY DEFINED CLA LDB .A INB STA B,I AF(.A)=0 TSEX JMP TS00,I EXIT TS02 LDA K86 LDB SPF CPB K3 JSB ERCM DUMMY ARG SUBSCRIPTED IN ASF JMP TSEX TO EXIT TS04 LDA TSUBF SZA,RSS JMP TS01 LDA .A,I AND B600 CPA SUB JMP TSEX JMP TS01 TS06 LDA AT CPA DUM JMP TS01 LDA K33 JSB ER00 VARIABLE RENAMED AS SUBROUTINE * K86 DEC 86 * BAD9P NOP BAD 9 TABLE PTR * * $************** * * BAD 9 TABLE * * *************** BAD9T DEF *+1 DEF D.BLE DEF C.PLX DEF F.LOT DEF S.NGL DEF R.EAL DEF E.RR0 DEF E.XEC DEF C.RIO DEF I.FIX * * * * * * * *********** * * TC TEST * * *********** * ENTRY: (A)=CORRECT TERMINATING CHAR. TCTST NOP CPA TC JMP TCTST,I TC=(A),EXIT LDA K28 JSB ER00 IMPROPER TERMINATING CHARACTER K28 DEC 28 * * * ********************* * * NON-CONSTANT TEST * * ********************* NCONT NOP LDA NT SZA,RSS JMP NCONT,I EXIT, ITEM NOT A CONSTANT LDA K24 JSB ER00 CONSTANT MUST NOT BE PRESENT K24 DEC 24 * * * * *********************** * * NON-SUBROUTINE TEST * * *********************** NSUBT NOP LDA K25 LDB IU CPB SUB JSB ER00 SUBPROGRAM NAME NOT ALLOWED JMP NSUBT,I EXIT K25 DEC 25 * * * * *  **************** * * INTEGER TEST * * **************** INTST NOP LDA IM IM=INTEGER ? CPA INT JMP INTST,I YES,EXIT LDA K26 NO JSB ER00 ITEM NOT AN INTEGER K26 DEC 26 K.22 DEC 22 * * * ***************** * * NO USAGE TEST * * ***************** NUTST NOP LDA IU IS ITEM NAME ALREADY USED ? SZA,RSS JMP NUTST,I NO, EXIT LDA K.22 YES,NAME ALREADY BEING USED JSB ER00 * * * *************** * * DUMMY CHECK * * *************** DUMCK NOP LDA KK14 (A)=-DUM ADA AT (A)=AT-DUM JMP DUMCK,I KK14 OCT 173000 * * * * * *********** * * SAVE CC * * *********** SCC00 NOP LDA CC SAVE COLUMN COUNTER STA T0SV CLA,INA STA CLSW SET TO INITIAL SCAN, NEW CARD NOT BE INPUT JMP SCC00,I EXIT * T0SV OCT 0 SAVE CC * * K27 DEC 27 * * * ******************* * * STATEMENT INPUT * * ******************* STINP JSB SCC00 TO SET CLSW .NE.0 FOR SCAN CLA STA STRF CLEAR STRING-BACK FLAG STA .A SET ASSIGNMENT TABLE PTR TO 0 STA I.MFL,I CLEAR MODE FLAG JSB EXN00 EXAMINE NEXT CHAR. SZA,RSS STATEMENT NUMBER EXISTS ? JSB ISN00 YES, INPUT STATEMENT NUMBER LDA .A STA LSTN LAST STATEMENT NUMBER FLAG SZA,RSS JMP STIN0 CURRENT CARD WITH NO STATEMENT LDB AT CPB REL JMP STIN4 DOUBLY DEFINED STATEMENT # STIN0 EQU * LDA I.IFF,I IF FLAG SET ? SZA NO XOR LSTN YES JSB IFT00 IFF TEST LDB CC IS COLUMN PTR POINTS TO 7 ? ADB KM7 SSB JMP STIN6 JSB EXN00 EXAM. NEXT CHAR. LDA TC IS TC A C/R ? CPA B15 j CLA,RSS JMP STSN1 NO, TO SCAN THE STATEMENT CPA LSTN STATEMENT # ON CARD? JMP STINP+1 NO, IT IS A BLANK CARD ISZ CC SET CC=1 LDA K29 YES, STATEMENT NO. ON BLANK CARD JSB ERCM JMP STINP TO INPUT NEXT CARD STIN4 JSB PSI0.,I PRINT CI LDA K27 JSB ERCM DOUBLY DEFINED STATEMENT # ERROR CLA,INA STA NPRF SET NO PRINT FLAG JMP STIN0 STIN6 JSB PSI0.,I PRINT CI LDA CC CPA K1 JMP *+3 LDA K.10 ERROR TYPE=10 JSB ER00 PRINT ILLEGAL STATEMENT MESSAGE LDA .CI.B CARD IMAGE BUFFER LDB NWICI # OF WORDS IN CURRENT CARD JSB PSL00 PRINT SOURCE JMP *-5 .CI.B DEF CI NPRF NOP NO PRINT FLAG EQ.ER DEF EQVER K29 DEC 29 LSTN BSS 1 LAST STATEMENT NUMBER FLAG K.10 DEC 10 .JMP OCT 26000 'JMP' I.IFF DEF IFF * * * ************ * * IFF TEST * * ************ * TO OUTPUT THE OBJECT CODE FOR AN UNCONDITIONAL GO TO * ENTRY: IF (A)=0, NO OBJECT CODE OUTPUT * IF (A) NON-ZERO, OUTPUT JMP 1-IFF * IFF=ASSIGNMENT TABLE POINTER OF JUMPED-TO STATEMENT IFT00 NOP SZA,RSS JMP IFT02 NO OBJECT OUTPUT LDA .JMP 'JMP' LDB KK01 =B100000 ADB I.IFF,I ASSIGNMENT TABLE PTR JSB OMR00 OUTPUT MR LDA T1IF.,I IM OF IF EXPRESSION CPA LOG JMP IFT02 CLA STA LSTP RESET LAST OPERATION FLAG IFT02 CLA STA T1IF.,I RESET LOG IF E.E. IM STA I.IFF,I RESET IF FLAG JMP IFT00,I EXIT * T1IF. DEF T1IFL NME.N DEF NMENT PSI0. DEF PSI00 SOU.I DEF SOU00 EN. ASC 1,EN D$. ASC 1,D$ IC21. DEF IC22 DSLH ASC 1,D/ * * ****************** * * STATEMENT SCAN * * ****************** * SCANS THE FIRST CARD OF ALL STATEMENTS DETERMINING IF THE * STATEMENT TYPE IS A REPLACEMf?ENT STATEMENT, A DO STATEMENT * (= FOLLOWED BY ,),OR ARITHMETIC STATEMENT FUNCTION(= AND * THE OPERAND TERMINATED BY '(' AND WAS NOT AN ARRAY). * STSN1 LDA EQ.ER,I EQUIV GROUP HAS ERROR? SZA,RSS YES JMP *+5 NO LDA NOCRD # OF CARDS IN BUFFER CPA K1 RSS JMP STSCN WITH CONTINUATION CARDS LDB NPRF NO PRINT FLAG SET? SZB,RSS YES JSB PSI0.,I NO, PRINT CI CLA STA NPRF RESET NO PRINT FLAG CPA NME.N,I NAM/ENT OUTPUT YET? JSB SOU.I,I OUTPUT SOURCE STSCN JSB SCC00 SAVE CC LDA K2 STA NINFG SET NO INPUT FLAG JSB IA00.,I INPUT 2 CHARS LDA .PACK CPA EN. RSS JMP STSCC LDA K2 JSB IA00.,I INPUT 2 CHARS LDA .PACK CPA D$. JMP IC21.,I 'TO IC22' CPA DSLH ='D/'? JMP STSE.,I END STATEMENT STSCC LDA T0SV STA CC RESTORE CC CLA STA NINFG RESET NO INPUT FLAG STA I$EN3,I RESET 'END' OCCURRED FLAG CLA,INA (A)=1 STA T1STS SET T1=1 STSC1 JSB ICH00 INPUT CHARACTER STSC2 LDA TC CPA B51 TC=) ? JMP STSC6 YES CPA B50 TC=( ? JMP STSC8 YES CPA B54 TC=, ? JMP STSC9 YES CPA B15 TC=C/R ? JMP STSCB CPA B57 / JMP STSC7 CPA B.42 TC='"' ? JMP STSC7 YES XOR B.75 TC='=' ? SZA JMP STSC1 NO STA T2STS SET T2=0 JSB FER00 NO,OUTPUT IT STSC3 JSB IDN00 INPUT DNA LDA TC CPA B54 TC=, ? JMP STSC5 YES CPA B15 TC=C/R ? JMP STSCA CPA B50 TC=( ? ISZ T2STS T2=T2+1 CLB CPA B51 TC=) ? CCB YES, T2=T2-1 ADB T2STS STB T2STS JMP STSC3 TO CHECK NEXT ITEM STSC4 LDA T1STS SZA JMP .ASST,I ASSIGNMENT STATEMENT STSC0 EQU * CLB,INB SET NO CROSS REF FLAG STB NOCR.,I SO THERE IS NO DUPLICATION. JSB ISY00 INPUT SYMBOL CLB RESET NO CROSS REF FLAG TO 0. STB NOCR.,I JSB MCC00 MOVE 1ST CARD TO CI LDA IU CPA ARR IS ITEM AN ARRAY ? JMP .ASST,I ASSIGNMENT STATEMENT JMP STFPR STATEMENT FUNCTION .ASST DEF ASST LOC. OF ASSIGNMENT I$EN3 DEF $ENDF NOCR. DEF NOCRF NO CROSS REF FLAG (IF NOT = 0) B.42 OCT 42 '"' B.75 OCT 75 '=' STSE. DEF STSEN * STSC5 LDA T2STS '(' COUNT =0 ? SZA JMP STSC3 NO JSB ICH00 INPUT CHAR. CPA B15 'C/R' ? RSS YES JMP *-3 NO JSB MCC00 MOVE 1ST CARD TO CI JMP DOPR.,I TO DO PROCESSOR DOPR. DEF DOPR * STSC6 JSB ICH00 INPUT CHAR. CPA B15 C/R? JMP STSCB YES LDA DFL IS TC A DELIMETER ? SZA JMP STSC2 YES STSC7 LDA TC CPA B15 C/R? JMP STSCB YES JSB ICH00 INPUT A CHAR. JMP STSC7 STSCB JSB MCC00 MOVE CRDPT TO CI JMP STID GO TO STATEMENT IDENTIFICATION CLID. DEF CLID STSC8 CCA ADA T1STS STA T1STS T1=T1-1 STSC9 LDA T1STS '(' EXISTED ? SZA JMP STSC7 TO IDENTIFY STATEMENT TYPE JSB CLID.,I CLEAR ID TO 0 JSB IDS00 INPUT DIGIT STRING SZA,RSS DIGITS EXISTED ? JMP STSC2 NO JMP STSC6+1 YES STSCA JSB MCC00 MOVE 1ST CARD TO CI JMP STSC4 * T1STS BSS 1 '(' FLAG (=0 IF '(' EXISTED ) T2STS BSS 1 '(' COUNT AFTER = CR1ST DEF SCBUF 1ST CARD BUFFER LOC. LIFF. DEF LIFF * * * * **************************** * * MOVE 1ST CARD BACK TO CI * * **************************** MCC00 NOP LDA LIFF.,I LOG IF FLAG SET? SZA NO 9 JMP MCC04 YES LDA CR1ST 1ST CARD BUFF LOC. STA CRDPT SET CRD PTR TO PT TO 1ST CARD JSB MCI0.,I MOVE CARD FROM CRDPT TO CI LDA K7 STA CC SET CC=7 MCC02 CLA STA CLSW SET TO CODE GEN. STA SIDFG RESET STID FLAG JMP MCC00,I MCC04 STA CRDPT JSB MCI0.,I MOVE CARD FROM CRDPT TO CI LDA LFCC.,I STA CC RESTORE CC JMP MCC02 LFCC. DEF LIFCC LOG IF STATEMENT CC SAVED MCI0. DEF MCI00 SIDFG NOP STID FLAG IA00. DEF IA00 * * **************************** * * STATEMENT IDENTIFICATION * * **************************** * STID CLA STA CLSW SET TO CODE GEN. STA T4SID # OF '(' INA STA SIDFG SET STID FLAG JSB IDN00 INPUT DNA LDA DFL LETTER? SZA YES JMP STID5+1 STID0 JSB MCC00 MOVE 1ST CARD TO CI LDA K2 JSB IA00.,I INPUT 2 CHARS. LDA .PACK STA STNM SAVE THE 1ST TWO CHARS. JSB ICH00 INPUT A CHAR. STA ..PAK SAVE THE CRHAR. JSB ICH00 .PACK CONTAINS LAST 2 CHARS. LDA STNM CPA IFLOC 'IF' RSS JMP STID1 LDA ..PAK THE THIRD CHAR. CPA B50 '(' JMP STIDF TO 'IF PROCESSOR' STID1 LDB PRTAB STB T3SID T3=START ADDR OF PROCESSOR TBL STID2 LDA B,I INB LDB B,I CPA STNM RSS 1ST & 2ND CHARS. MATCHED JMP STID3 CPB .PACK JMP STID4 3RD & 4TH CHARS. ALSO MATCHED STID3 LDB T3SID ADB K4 STB T3SID T3=T3+4 CMB,INB ADB PRTBE LDA K.10 (A)=10 SSB JSB ER00 ILLEGAL STATEMENT LDB T3SID JMP STID2 TO TRY NEXT ENTRY FOR MATCH STNM BSS 1 STATEMENT NAME (SET TO FIRST * 2 LETTERS OF STATEMENT NAME) ..PAK NOP 2ND TWO CHARS. OF PROCESSOHR NAME K1 DEC 1 K.20 DEC 20 STIK1 DEF IFLOC FNS0. DEF FNS00 SPSW. DEF SPSW T0IA. NOP -(# OF CHARS TO BE INPUT) STIDF LDA STIK1 LOC OF 'IF( ' PROCESSOR STA T3SID JSB UC00 CC=CC-1 STID4 LDB T3SID LOC. OF MATCHED PROCESSOR ADB K2 LDA B,I STA SPSW.,I STATEMENT PROCESSOR SWITCH STA T2SID T2=PROCESSOR ENTRY POINT INB LDA B,I ALF,ALF AND B377 STA T1SID T1=NUMBER OF CHARS REMAINING LDA B,I AND B377 (A)=STATEMENT TYPE HIERACHY CPA K4 JMP STIDM CURRENT STATEMENT IS EXECUTABLE CPA K1 RSS JMP STIDK JSB FER00 OUTPUT NAM/ENT RECORD IF NEEDED CLA,INA STIDK EQU * JSB FNS0.,I 1ST NON-SPEC CHECK LDA T1SID NO. OF CHARACTERS REMAINING SZA,RSS JMP STIDE NO MORE CHARS. TO BE INPUT CMA,INA STA T0IA. -(# OF CHARS TO BE INPUT) JSB ICH00 INPUT CHARACTER ISZ T0IA. ALL DONE? JMP *-2 NOT YET STIDE EQU * LDA T2SID CPA PRTAB+3 JMP STID7 FUNCTION CPA PRTAB+7 JMP STID7 SUBROUTINE CPA PRTBE-2 JMP STID7 PROGRAM LDA T3SID LOC. OF MATCHED PROCESSOR CMA,INA ADA TYPL1 SSA,RSS JMP STID8 TYPL1 .GT. T3SID ADA K.20 SSA SKIP IF TYPL2 .LT. T3SID STID8 EQU * JSB FER00 NO, OUTPUT IT STID7 EQU * JMP T2SID,I STID5 JSB IDN00 INPUT DNA LDA TC CPA B15 'C/R' JMP STID0 CPA B.42 TC='"'? JMP STID0 YES CPA B50 '(' ISZ T4SID CPA B51 ')' CCA,RSS JMP STID5 ADA T4SID STA T4SID SZA JMP STID5 JSB EXN00 EXAMINE NEXT CHAR LDA TC CPA B.75. '=' RSS JMP STID0 JSB MCC0.,I MOVE 1ST CARD BACK TO CI JMP STSC0 TO STATMNT SCAN LDA T4SID SZA,RSS JMP STID0 # OF '(' IS 0 LDA CC CPA K..73 73 ? JMP STID0 END OF CARD JMP STID5 STIDM JSB FER00 OUTPUT NAM/ENT IF NECESSARY LDA K4 JMP STIDK MCC0. DEF MCC00 * * ENLOC DEF ENDSH STSEN LDA ENLOC 'END' LOCATION STA T3SID JMP STID4 B.75. OCT 75 '=' T1SID BSS 1 NUMBER OF CHARS REMAINING T2SID BSS 1 PROCESSOR ENTRY POINT T3SID BSS 1 PROCESSOR ENTRY-POINTS TBL PTR T4SID BSS 1 # OF '('S TYPL1 DEF TYPLB K..73 DEC 73 * * * **************** * * TAG VARIABLE * * **************** TV00 NOP LDA IU CPA VAR RSS JSB NUTST NO USAGE TEST LDA VAR JSB DIU00 DEFINE IU JMP TV00,I EXIT * * * ************* * * DEFINE IM * * ************* * ENTRY: (A)=NEW ITEM MODE DIM00 NOP STA IM IM=(A) LDA .A,I AND KK15 =B107777 IOR IM STA .A,I IM(.A)=IM JMP DIM00,I KK15 OCT 107777 * * * ************* * * DEFINE IU * * ************* * ENTRY: (A)=NEW IU DIU00 NOP STA IU IU=(A) LDA .A,I AND KK16 =B177177 IOR IU STA .A,I IU(.A)=IU JMP DIU00,I KK16 OCT 177177 * * * ************* * * DEFINE AT * * ************* * ENTRY: (A)=NEW AT(.A) DAT00 NOP STA AT AT=(A) LDA .A,I AND KK17 =B170777 IOR AT STA .A,I JMP DAT00,I KK17 OCT 170777 * * * * * ************* * * DEFINE AF * * ************* * ENTRY: (A)=NEW AF DAF00 NOP STA AF AF=(A) LDB .A LDA B,I AND B600 INB CPA ARR JMP DAF04 IU(.A)=ARR DAF02 LDA AF STA B,I JMP DAF00,I DAF04 LDNB B,I (B)=GF(.A) INB JMP DAF02 * * * * * * * * * ********************** * * ESTABLISH CONSTANT * * ********************** * INPUT: (A)=MODE OF ITEM ESC00 NOP STA IM LDA KK01 =B100000 STA NT NT=1 FOR CONSTANT LDA VAR STA IU SET IU=VAR JMP ESC00,I EXIT * MPY0. DEF MPY * * * ******************************** * * D0: NUMBER OF WORDS FOR ITEM * * ******************************** NWI00 NOP LDA IU CPA ARR RSS JMP NWIEX TO EXIT LDA D3 SZA,RSS JMP NWI06 D3=0 LDB D2 JSB MPY0.,I NWI02 LDA D1 JSB MPY0.,I NWI04 LDA D0 JSB MPY0.,I STB D0 D0=NO. OF WORDS IN ARRAY SSB JMP RPLOV RPL OVERFLOW NWIEX JMP NWI00,I EXIT NWI06 LDB D2 SZB JMP NWI02 LDB D1 JMP NWI04 RPLOV LDA K84 JMP EOFF.,I RPL OVERFLOW EOFF. DEF EOFF K84 DEC 84 SKP * * ******************************** * * PROCESSOR ENTRY-POINTS TABLE * * ******************************** * * 4 WORDS PER TABLE ENTRY WITH THE FOLLOWING FORMAT: * 15 8 7 0 * LOC+0: * CHAR1 * CHAR2 * * LOC+1: * CHAR3 * CHAR4 * * LOC+2: * PROCESSOR ENTRY LOC.* * LOC+3: * T1 * (A) * * * WHERE: CHAR'S ARE THE 1ST 4 CHARS OF THE PROCESSOR * T1=NUMBER OF CHARACTERS REMAINING * (A)=STATEMENT TYPE HIERARCHY * PRTAB DEF *+1 ASC 2,FUNC FUNCTION DEF FUNPR OCT 2000 T1=4 , (A)=0 * ASC 2,SUBR SUBROUTINE DEF SUBPR OCT 3000 T1=6 , (A)=0 * ASC 2,DIME DIMENSION DEF DIMPR OCT 2400 T1=5 , (A)=0 * ASC 2,GOTO GO TO DEF GOTOP OCT 4 T1=0 , (A)=4 * ASC 2,CALL CALL DEF CALLP OCT 4 T1=0 , (A)=4 * ASC 2,RETU RETURN DEF RTNPR OCT 1004 T1=2 , (A)=4 * ASC 2,CONT CONTINUE DEF CONPR OCT 2404 T1=5 , (A)=4 * ASC 2,FORM FORMAT DEF FMTPR OCT 1001 T1=2 , (A)=1 * IFLOC EQU * ASC 2,IFF( IF( DEF IFLPR OCT 4 T1=0 , (A)=4 * ASC 2,WRIT WRITE DEF WRIPR OCT 404 T1=1 , (A)=4 * ASC 2,READ READ DEF READP OCT 4 T1=0 , (A)=4 * ASC 2,BACK BACKSPACE DEF BKSPR OCT 2404 T1=5 , (A)=4 * ASC 2,ENDF END FILE DEF ENFPR OCT 1404 T1=3 , (A)=4 * ASC 2,REWI T1=2 , (A)=4 DEF REWPR OCT 1004 T1=2 , (A)=4 * ENDSH ASC 2,END/ END DEF ENDPR OCT 1 T1=0 , (A)=1 * ASC 2,STOP STOP DEF STOPP OCT 4 T1=0 , (A)=4 * ASC 2,PAUS PAUSE DEF PAUPR OCT 404 T1=1 , (A)=4 * TYPLB EQU *-1 ASC 2,INTE INTEGER DEF INTPR OCT 1400 T1=3 , (A)=0 * ASC 2,REAL REAL DEF REAPR OCT 0 T1=0 , (A)=0 * ASC 2,DOUB DOUBLE PRECISION DEF DBLPR OCT 5400 T1=11, (A)=0 * ASC 2,COMP COMPLEX DEF CPXPR OCT 1400 T1=3 , (A)=0 * ASC 2,LOGI LOGICAL DEF LOGPR OCT 1400 T1=3 , (A)=0 * ASC 2,EXTE EXTERNAL DEF EXTPR OCT 2000 T1=4 , (A)=0 * ASC 2,COMM COMMON DEF COMPR OCT 1000 T1=2 , (A)=0 * ASC 2,EQUI EQUIVALENCE DEF EQUPR OCT 3400 T1=7 , (A)=0 * ASC 2,ASSI ASSIGN DEF ASSIP OCT 1004 T1=2 , (A)=4 * ASC 2,DATA DATA DEF DATAP OCT 2 T1=0 , (A)=2 * ASC 2,PROG PROGRAM DEF PROG OCT 1400 T1=3 , (A)=0 * PRTBE DEF *-1 * * * .CRD1 DEF SCBUF * * ********* * * JUMP * * ********* JUMP EQU * CLA STA LSTP RESET LAST OPERATION FLAG * * ************************* * * ILLEGAL DO TERMINATOR * * ************************* ILTRM EQU * CLA,INA STA LSTF SET LAST STMNT FLAG(IL. DO TERM) * * ************ * * C/R TEST * * ************ CRTST EQU * CLA STA DCEFG RESET DIM,COM,& EQUIV FLAG LDA B15 C/R JSB TCTST TC TEST LDA .CRD1 STA CRDPT SET CRD PTR TO 1ST CARD LOC JSB MTC0.,I MOVE CI TO 1ST CARD CLA,INA STA CC CC=1 STA NCRD.,I # OF CARDS IN BUFF=1 STA CLSW SET TO SCAN * * * STATEMENT TERMINATION MUST FOLLOW * * * ************************* * * STATEMENT TERMINATION * * ************************* STERM EQU * LDA STRF ANY THING TO BE STRUNG ? SZA NO JMP STER3 YES STER1 LDA LSTN LAST STATEMENT WITH A NUMBER ? SZA NO JMP STER4-1 YES STER2 STA LSTF REST LAST STATEMENT FLAG STA .LIFF,I RESET LOG IF FLAG JMP STIP,I TO INPUT A NEW STATEMENT STER3 LDA .IFF.,I IF FLAG JSB I.IFT,I TO GENERATE DELAYED JUMP'S LDB STRF .. INB . LDA RPL . STORE RPL INTO THE AF FIELD STA B,I .. OF STRF JMP STER1 LDB D LOC OF LAST DO ENTRY IN DO TABLE STER4 STB I SAVE DO TABLE POINTER CLA CPB DO END OF DO TABLE SEARCH ? JMP STER2 YES LDA LSTN IS THIS STMNT NO. A DO TERMINAT? CPA B,I JMP STER6 YES STA LSTF SET LAST STMNT FLAG (ILL.DO TERM.) STER5 LDB I ADB K.5 JMP STER4 * STIP DEF STINP .LIFF DEF LIFF .IFF. DEF IFF NCRD. DEF NOCRD v MTC0. DEF MTC00 I.IFT DEF IFT00 K.5 DEC 5 I BSS 1 SUPPLEMENTARY INDEX K30 DEC 30 STER6 LDB LSTF LAST STMNT FLAG SET ? LDA K30 SZB NO JSB ER00 YES, ILL. DO TERMINATING STMNT LDB D INB LDA B,I STA I.M3,I M3 INB LDA B,I STA CNTR.,I INDEX I INB LDA B,I STA I.M2,I M2 INB LDA B,I STA JMPAD 1ST STATEMENT OF LOOP ADDR. JSB DT00.,I DO TERMINATING LDA D ADA K.5 STA D D=D+5 TO ELIMINATE DO ENTRY JMP STER5 CONTINUE SEARCH * * CNTR. DEF CONTR PTR TO IMPLIED DO CONTR. VAR JMPAD BSS 1 POINTER TO BEGIN OF IMP. DO BODY I.M2 DEF M2 I.M3 DEF M3 $ENDF NOP K.1 DEC 1 .M4 DEC -4 DT00. DEF DT00 DO TERMINATING ROUTINE I.DFG DEF DTAFG * * * ********************************* * * FIRST NON-SPECIFICATION CHECK * * ********************************* * INPUT: (A)=STATEMENT TYPE HIERACHY FNS00 NOP CLB STB $ENDF RESET '$'-END FLAG STA SLF STATEMENT LEVEL FLAG ADA KM3 SSA JMP FNSEE LDA SPF SZA,RSS JMP FNSEE LDA EEIN SZA JMP FNSEE INA STA EEIN JSB EXEC DEF *+3 DEF K8 DEF *+1 ASC 3,F4.1 FNSEE LDA SLF CPA K.1 JMP FNS16 SLF=1 CPA SPF SPECIFICATION FLAG JMP FNS12 SLF EQUALS CURRENT STMNT LEVEL CMA,INA ADA SPF (A)=SPF-SLF SSA,RSS JMP FNS10 SPF .GT. SLF, STMNT OUT OF ORDER LDA SPF SZA,RSS JMP RCOM TO RELATE COMMON ITEMS FNS02 LDA SLF STA SPF SAVE CURRENT STMNT LEVEL IN SPF ADA .M4 -4 SZA JMP FNS08 SLF .NE. 4 CPA I.DFG,I 'DATA' EXISTS JMP FNS08 NO LDA STRF. YES INA LDB RPL L STB A,I FNS08 LDA LSTN LAST STATEMENT NUMBER STA .A SZA,RSS FNSEX JMP FNS00,I EXIT LDA SLF CPA K.1 JMP *+7 FORMAT STATEMENT LDA K77 LDB SPF STATEMENT LEVEL FLAG CMB,INB ADB K3 (B)=3-SPF SSB,RSS JMP FNS15 3 .GE. SPF LDA .A,I AND KK03. AT FIELD OF STATEMENT # CPA REL JMP FNSEX JSB DL00 SET AF(.A)=RPL, AT(.A)=REL JMP FNSEX TO EXIT KK03. OCT 7000 K77 DEC 77 K34 DEC 34 FNS10 LDA K34 JSB ER00 STATEMENT OUT OF ORDER FNS12 LDA LSTP LAST OPERATION FLAG ADA LSTN LAST STATEMENT NUMBER FLAG CLB,INB STB LSTP FNS14 SZA JMP FNS08 LDA K35 FNS15 EQU * NO PATCH TO THIS STATEMENT JSB ERCM NO PATH TO THIS STATEMENT JMP FNSEX TO EXIT K35 DEC 35 FNS16 LDA TC CPA B57 '/'? JMP FNS08 END STATEMENT LDA TWPE IM=4 JSB ESC00 TO SET IM=4 JSB AI00 ASSIGN ITEM LDA ..JMP 'JMP' JSB OA00 'JMP' 1*.A LDA .A STA STRF SET STRING-BACK FLAG LDA LSTN LAST STATEMENT # FLAG JMP FNS14 ..JMP OCT 26000 'JMP' * * * * * ***************** * * (A,B)=(A)*(B) * * ***************** * EXIT: (A)=MOST SIGNIFICANT PORTION OF PRODUCT * (B)=LEAST SIGNIFICANT PART OF PRODUCT MPY NOP STA MPYT1 SAVE MULTIPLICAND LDA KM16 SET COUNTER TO -16 STA MPYT2 CLA CLEAR INITIAL PRODUCT CLE,SLB TEST MULTIPLIER BIT ADA MPYT1 ADD IN MULTIPLECAND IF BIT SET ERA LONG SHIFT ERB RIGHT ISZ MPYT2 TEST COUNTER JMP *-5 LOOP JMP MPY,I RETURN * KM16 DEC -16 MPYT1 NOP MPYT2 NOP * * * * * * ****************** * * ASSIGN ADDRESS * *  ****************** * TO ASSIGN STORAGE TO A SINGLE VARIABLE OR ARRAY * INPUT: .A=POINTS AT THE CANDIDATE FOR STORAGE ASSIGNMENT * OUTPUT: STORAGE IS ASSIGNED FOR THE ELEMENT(IF NOT YET * ASSIGNED) POINTED AT BY .A * EACH ELEMENT HAS ITS AT SET TO REL AND ITS AF SET * TO THE ELEMENTS RELATIVE LOCATION WITHIN THE OBJECT * OUTPUT & RPL BUMPED BY SIZE OF THE ELEMENT OR ARRAY. B2000 OCT 2000 AA00 NOP LDA NT A NAME ? SZA YES AAEX JMP AA00,I LDA AT CPA B2000 STRAB RSS NOT YET ASSIGNED JMP AAEX ALREADY ASSIGNED LDA IU CPA VAR JMP AA02 IU=VAR CPA ARR RSS IU=ARR JMP AAEX NEITHER VAR NOR ARRAY AA02 JSB DL00 DEFINE LOCATION LDA RPL ADA D0 SIZE OF ELEMENT STA RPL RPL=RPL+D0 SSA JMP RPLOV RPL OVERFLOW JMP AAEX TO EXIT * I.SLF DEF SLF JMP OCT 26000 * * * * *********************************** * * SET UP STRING BACK JMP LOCATION * * *********************************** SSB00 NOP LDA TWPE IM=4 JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN ITEM LDA .A STA STRF. SAVE STRING BACK LOCATION LDA JMP JSB OA00 OUTPUT 'JMP .A' LDA RPL STA LJMP.,I STRING-BACK JMP LOCATION JMP SSB00,I EXIT LJMP. DEF LJMP * * * * * *********** * * , -TEST * * *********** COMAT NOP LDA B54 ',' JSB TCTST TC-TEST JMP COMAT,I EXIT * KK70. SSA * * * * ******************* * * IF ( PROCESSOR * * ******************* IFLPR LDA KM7 (A)=-7 JSB EE00 EXPRESSION EVALUATOR STA T1IFL IM OF EVALUATED VALUE LDA B51 ')' JSB TCTST TC-TEST JSB EXN00 EXAM57INE NEXT CHARACTER SZA JMP IFLP6 STATEMENT TO FOLLOW LDA KK70. 'SSA' JSB OAI00 OUTPUT ABSOLUTE INSTRUCTION JSB ISN00 INPUT STATEMENT NO. LDA JMP 'JMP' JSB OA00 OUTPUT OA JSB COMAT , TEST JSB ISN00 INPUT STATEMENT NO. LDA TC CPA B54 ',' JMP IFLP3 TC=, IFLP2 LDA .A STA IFF.I,I IFF=.A JMP I.JUM,I 'TO JUMP' IFLP3 LDA T1IFL IM OF EVALUATED VALUE CPA LOG RSS JMP IFLP4 LDA K61 JSB ERCM LOG IF WITH 3 BRANCHES IFLP4 LDA KK71 'SZA,RSS' JSB OAI00 OUTPUT ABS. INSTRUCTION LDA JMP 'JMP' JSB OA00 OUTPUT OA JSB ISN00 INPUT STATEMENT NO. JMP IFLP2 * IFF.I DEF IFF I.JUM DEF JUMP KK71 SZA,RSS KK62. SSA,RSS * K52 DEC 52 K61 DEC 61 B75 EQU K61 K62 DEC 62 IFLP6 EQU * LDA K62 LDB T1IFL IM OLF EVALUATED VALUE CPB LOG RSS JSB ERCM ARIF IF WITH STATEMENT TO FOLLOW LDA K52 LDB STRF STRING FLAG SET ? SZB NO JSB ER00 LOGICAL IF WITHIN LOGICAL IF LDA KK62. 'SSA,RSS' JSB OAI00 OUTPUT ABS INSTRUCTION LDA TWPE IM=4 JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN ITEM LDA JMP 'JMP' JSB OA00 OUTPUT 'JMP .A' LDA .A STA STRF SET STRING FLAG JSB EXN00 EXAMINE NEXT CHARACTER CLA STA MFL RESET MODE FLAG LDA CC STA LIFCC SAVE CC LDA CRDPT ADA K.M41 STA LIFF LOC OF CARD IN BUFF JMP STSCN TO STATEMENT SCAN T1IFL NOP IM OF EVALUATED VALUE LIFF NOP LOG IF FLAG LIFCC NOP CC SAVED IN LOG IF K.M41 DEC -41 JMPI OCT 126000 'JMP,I' * * * ******************* * * GO TO PROCESSOR * * ******************4* GOTOP JSB EXN00 EXAMINE NEXT CHARACTER SZA CHAR. A DIGIT? JMP GOTO2 NO JSB ISN00 INPUT STATEMENT NUMBER LDA .A STA IFF.I,I IFF=.A JMP ILTR.,I ILLEGAL TERMINATOR CHECK ILTR. DEF ILTRM GOTO2 LDA DFL CHAR. A LETTER ? SZA YES JMP GOTO4 NO JSB IIV00 INPUT INTEGER VARIABLE LDA JMPI JSB OA00 OUTPUT 'JMP,I, .A' LDA TC CPA B54 ',' RSS JMP *+3 JSB IBL00 INPUT BRANCH LIST JSB ICH00 INPUT CHAR CLA GOTO3 STA L LDA LO STA STK2B STA STK2T JMP I.JUM,I 'TO JUMP' GOTO4 JSB IBL00 INPUT BRANCH LIST JSB ICH00 INPUT A CHARACTER CPA B54 TC=,? RSS JSB UC00 UNINPUT COLUMN LDA KM5 JSB EE00 EXPRESSION EVALUATOR STA T1GOT SAVE .A OF VAR OR TEMP CELL LDA JSB 'JSB' LDB .GOTO ADDR OF .GOTO JSB ODF00 'JSB .GOTO' CLA LDB T1IBL # OF STATEMENTS ADB K2 JSB OZ00 'DEF RPL+N+2' CLA LDB T1GOT .A OF VAR OR TEMP CELL JSB SOA00 'DEF .A OF VAR OR TEMP CELL' LDA LO STA I I=D GOTO6 ISZ I LDA I,I STA .A .A=(I) SZA,RSS JMP GOTO3 CLA JSB OA00 OUTPUT 'DEF .A' JMP GOTO6 T1GOT NOP .GOTO DEF .TBL+49 COMPUTED GO TO KM5 DEC -5 * * * * ********************* * * INPUT BRANCH LIST * * ********************* IBL00 NOP CLA STA T1IBL T1=0 JSB ICH00 INPUT CHAR. LDA B50 '(' JSB TCTST TC-TEST IBL02 JSB ISN00 INPUT STATEMENT NUMBER LDA .A JSB PU200 STORE STMENT NO. .A IN STACK ISZ T1IBL INCREMENT NUMBER OF STMNT NOS. LDA TC CPA B54 ',' JMP IBL02 TC=, CLA JSB PU200 ENTER 0 INTO STACK JSB RP00 )-INPUT OPERATOR JMP IBL00,I EXIT T1IBL BSS 1 NUMBER OF STATEMENT NUMBERS * B104 OCT 104 'D' K50 DEC 50 B.117 OCT 117 'O' FNS.0 DEF FNS00 K48 DEC 48 * * **************** * * DO PROCESSOR * * **************** DOPR JSB ICH00 INPUT CHARACTER CPA B104 'D' JMP DOPR4 TC=D LDA K48 JSB ERCM DO MISSPELLED DOPR4 JSB ICH00 INPUT CHARACTER CPA B.117 'O' JMP DOPR6 LDA K48 JSB ERCM DO MISSPELLED DOPR6 EQU * LDA K4 JSB FNS.0,I 1ST NON-SPEC CHECK LDA K50 LDB T1IFL IM OF LOG IF E.E. IM CPB LOG JSB ERCM DO IN LOG IF STATEMENT CLA STA T1IFL RESET LOG IF E.E. FLAG JSB ISN00 INPUT STATEMENT NUMBER LDA K23 _. LDB AT . NON-REL TEST CPB REL . JSB ER00 _. LDA .A STA DOSN DO STATEMENT NUMBER PTR SAVED JSB IIV00 INPUT INTEGER VARIABLE LDB D DOPR5 CPB DO LAST AVAILABLE CELL JMP DOPR7 ADB K2 LDA B,I CPA .A JMP *+3 ADB K3 JMP DOPR5 LDA K51 JSB ER00 NESTED DO WITH SAME CONTR VAR K23 DEC 23 K51 DEC 51 DOSN BSS 1 DO STATEMENT NUMBER SAVED DOPR7 EQU * LDA B75 '=' JSB TCTST TC TEST LDA D ADA KM5 JSB DPO00 D=D-5 LDB D LDA DOSN STA B,I (D)=.A OF STATEMENT NUMBER ADB K2 LDA .A STA B,I (D+2)=.A OF INDEX VARIABLE LDA KM2 JSB EE00 EXPRESSION EVALUATOR JSB COMAT , TEST LDA KM4 JSB EE00 EXPRESSION EVALUATOR JSB ATD00 ALLOCATE TEMP CELL TO DO LOOP LDB D ADB K3 STA B,I (D+3)=.A OF TERMINATING INDEX LDA TC CPA B15 C/R JMP DOPR9 TC=C/R LDA KM4 JSB EE00 EXPRESSION EVALUATOR JSB ATD00 ALLOCATE TEMP CELL TO DO LOOP DOPR8 LDB D INB STA B,I (D+1)=.A OF INCREMENTING INDEX ADB K3 LDA RPL STA B,I (D+4)=RPL JMP ILTR.,I TO ILLEGAL TERMINATOR DOPR9 LDA DP INA (A)=.A OF THE INTEGER 1 JMP DOPR8 * KM4 DEC -4 * * * * * *************************************** * * ALLOCATE TEMP CELL TO DO EXPRESSION * * *************************************** * ENTRY: (A)=.A POINTER OF INT CONST/INT VAR/TEMP CELL * ATD00 NOP LDB .A ADB K2 (B)=.A+2 LDB B,I SSB,RSS JMP ATDEX NOT INT TEMP CELL CCB ADB .INT. STB .INT. .INT.=.INT.-1 ATDEX JMP ATD00,I EXIT * * * * * * *************************** * * DATA POOL OVERFLOW TEST * * *************************** * INPUT: (A)=VALUE OF NEW D DPO00 NOP STA D D=(A) CMA,INA ADA LO ADA L (A)=LO+L-D SSA,RSS JMP DPOVF LO+L.GE.D, DATA POOL OVERFLOW JMP DPO00,I EXIT * * * * ST.RF NOP * * ****************** * * READ PROCESSOR * * ****************** READP EQU * CLA JMP RWP02 * * ******************* * * WRITE PROCESSOR * * ******************* WRIPR EQU * CLA,INA RWP02 STA IOF SET I/O FLAG (0=READ,1=WRITE) CLA STA ST.RF STA LREQ JSB ICH00 INPUT CHARACTER LDA B50 '(' JSB TCTST TC-TEST JSB IOP00 INPUT OPERAND LDA IU CPA ARR IU=ARR? RSS YES JSB TV00 NO,TAG VAR/CON JSB FA00 FETCH ASSIGN JSB INTST INTEGER TST LDA LDA 'LDA' JSB OA00 OUTPUT 'LDA .A' LDA KK64 'CLB' LDB IOF I/O FLAG (0=READ, 1=WRITE) SZB,RSS LDA KK65 'CLB,INB' JSB OAI00 OUTPUT ABSOLUTE INSTRUCTION LDB .BIO. LDA TC CPA B54 ',' JMP RWP03 FORMATTED JSB ODF00 OUTPUT 'JSB .BIO.' LDA TC CPA B51 ')' RSS JMP IOL53 ILLEGAL DELIMITER JSB ICH00 INPUT CHAR. LDA IOF STA LREQ JMP RWP07 * * LDA OCT 62000 I.IVC DEF IVC00 IOF BSS 1 INPUT=0, OUTPUT=1 FLAG. KK64 CLB KK65 CLB,INB .BIO. DEF .TBL+29 BINARY ENTRY TO FRMTR * RWP04 EQU * LDB IOF OUTPUT? LDA K64 SZB NO JSB ER00 FREE FIELD OUTPUT NOT ALLOWED ISZ CC JSB ICH00 INPUT CHARACTER CLA,INA STA LREQ LIST REQUIRED CLA JSB OAD00 OUTPUT ABS. DATA RWP06 JSB RP00 )-INPUT OPERATOR LDA TWPE IM=4 JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN ITEM CLA JSB OA00 OUTPUT 'DEF .A' LDA .A STA ST.RF RWP07 EQU * LDA TC CPA B15 'C/R' JMP RWP01 JSB UC00 UNINPUT COLUMN CLA STA I.LCH,I LCHAR=0 INITIALLY. JSB I.IOL,I I/O LIST PROCESSOR RWP08 LDB .DTA. (B)=LOC. OF .DTA. LDA IOF I/O FLAG (0=READ, U=WRITE) SZA JSB ODF00 OUTPUT DOT FUNCTION LDB ST.RF SZB,RSS JMP *+4 INB LDA RPL STA B,I AF(.A)=RPL JMP CRTST TO C/R TEST * I.IOL DEF IOL00 I.LCH DEF LCHAR .DTA. DEF .TBL+36 K64 DEC 64 K63 DEC 63 * RWP01 LDB LREQ SET IF LIST REQUIRED LDA K63 SZB JSB ER00 ERROR JMP RWP08 * .DIO. DEF .TBL+28 FORMATTED ENTRY TO FRMTR * RWP03 EQU * LDB .DIO. (B)=LOC. OF .DIO. JSB ODF00 OUTPUT DOT FUNCTION JSB EXN00 EXAMINE NEXT CHARACTER SZA JMP RWP14 NOT FORMAT STATEMENT NO. *JSB ISN00 INPUT STATEMENT NO. ISZ CC RWP12 LDA K4 ADD-ON=1 JSB OA00 OUTPUT 'DEF .A' JMP RWP06 RWP14 LDA TC CPA B52 '*' JMP RWP04 FREE FIELD INPUT JSB INM00 INPUT NAME CLA LDB IU CPB ARR JMP RWP12+1 IU=ARRAY LDA K47 JSB ER00 FMT SPEC NON-ARRAY,*,OR STMNT # LREQ NOP LIST REQUIRED IF NON-0 B52 OCT 52 * SKP * * ******************* * * PAUSE PROCESSOR * * ******************* PAUPR EQU * CLA,INA (A)=1 LDB .PAUS (B)=LOC. OF '.PAUS' JMP PAST2 .PAUS DEF .TBL+37 PAUSE .STOP DEF .TBL+38 STOP B.M70 OCT -70 * * ****************** * * STOP PROCESSOR * * ****************** STOPP CLA (A)=0 LDB .STOP (B)=LOC. OF '.STOP' PAST2 STA T1PAS STB T2PAS CLA STA T3PAS # OF OCTAL DIGITS STA IDI BINARY OCTAL DIGIT STRING PAST3 JSB ICH00 INPUT CHAR. LDA NFL SZA JMP PAST4 NON-DIGIT LDA TC ADA B.M70 SSA,RSS JMP PAST9 DIGIT .GT. 7 ADA B10 LDB IDI BLF,RBR IOR B STA IDI IDI=IDI+TC (BINARIZED) ISZ T3PAS # OF OCTAL DIGITS JMP PAST3 PAST4 EQU * LDA K69 LDB T3PAS ADB KM5 SSB,RSS SKIP IF .LT. 4 DIGITS JSB ERCM MORE THAN 4 DIGITS JSB AUN00 ASSIGN UNIT NO. LDB T2PAS LOC. OF '.PAUS' OR '.STOP' JSB ODF00 OUTPUT DOT FUNCTION PAST8 EQU * CLB,INB STB LSTP LAST OPERATION FLAG JMP ILTR.,I TO ILLEGAL TERMINATOR * PAST9 LDA K.21 JSB ERCM INVALID OCTAL DIGITS JSB CLIDI INI=0 JMP PAST4 * * T1PAS BSS 1 T2PAS BSS 1 T3PAS NOP # OF OCTAL DIGITS K69 DEC 69 K.21 DEC 21 O100 OCT 100 * * * * * **********************4 * * END FILE PROCESSOR * * ********************** ENFPR LDA O100 X=1 FOR END-FILE JMP EBR02 * * ************************ * * BACK SPACE PROCESSOR * * ************************ BKSPR LDA B200 X=2 FOR BACK-SPACE JMP EBR02 O400 OCT 400 * * ******************** * * REWIND PROCESSOR * * ******************** REWPR LDA O400 X=4 FOR REWIND EBR02 STA T1EBR SAVE X JSB I.IVC,I INPUT INTEGER VAR/CON LDA LDA JSB OA00 'LDA .A' LDA T1EBR (X) ADA LOG +30000B STA IDI IDI=30XYY LDA INT JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN ITEM LDA ADA JSB OA00 'ADA .A' LDB .TAPE LOC. OF '.TAPE' JSB ODF00 OUTPUT DOT FUNCTION JMP CRTST C/R TEST T1EBR BSS 1 SAVE X .TAPE DEF .TBL+39 FOR REWIND,BACKSPACE,OR END FILE * ********************************* * * MEMORY REFERENCE INSTRUCTIONS * * ********************************* * INSTRUCTION CODE + NON PAGE-0 BIT SET ADA OCT 42000 STA OCT 72000 * * * * ********************** * * ASSIGN UNIT NUMBER * * ********************** AUN00 NOP LDA IDI SZA,RSS JMP AUN04 LDA INT JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN ITEM LDA LDA 'LDA' JSB OA00 OUTPUT 'LDA .A' JMP AUN00,I EXIT AUN04 LDA CLA JSB OAI00 OUTPUT 'CLA' JMP AUN00,I * CLA CLA * * * * K79 DEC 79 O117 EQU K79 * * ******************** * * FORMAT PROCESSOR * * ******************** FMTPR LDA K2 STA OPF SET OUTPUT FLAG JSB ICH00 INPUT CHARACTER CPA B50 '(' JMP *+3 LDA K79 JSB ERCM FORMAT NOT START WITH '(' LDA LSTN SZA,RSS JMP FMTP1   INA LDB A,I SZB,RSS LDB RPL ADB KM1 STB A,I AF OF ST#= RPL-1 FMTP1 CLA STA PRMF 'PRIME' FLAG FMTP2 JSB .CLID,I CLEAR ID TO 0 JSB IDS00 INPUT DIGIT STRING LDA ID+2 STA IDI IDI=ID LDA TC CPA B.110 'H' JMP FMTP9 CPA O42 '"' JMP FMTP6 CPA B15 C/R RSS JMP FMTP2 LDA .PACK ALF,ALF AND B377 CPA B51 ')' JMP *+3 LDA K80 FMTP3 EQU * JSB ERCM FORMAT NOT ENDED BY ')' CLA STA OPF RESET OUTPUT FLAG JMP CRTST TO 'C/R' TEST & STERM .CLID DEF CLID B.110 OCT 110 'H' K80 DEC 80 O42 OCT 42 '"' K..20 DEC 20 FMTP4 JSB IC00 INPUT COLUMN JSB PACK CPA B15 JMP FMTP3 HOLLERTH STRING TERMINTED LDA PRMF SZA JMP FMTP8 CCA ADA IDI STA IDI IDI=IDI-1 SZA JMP FMTP4 HOL. STRING NOT YET EXHAUSTED JMP FMTP2 STRING EXHAUSTED FMTP6 ISZ PRMF SET PRIME FLAG JMP FMTP4 FMTP8 LDA TC CPA B42 '"' JMP FMTP1 TC='"' JMP FMTP4 FMTP9 LDB IDI SZB JMP FMTP4 IDI NON-0 LDA K..20 (A)=20 CPB I.DCT,I DCT=# OF DIGITS RSS DCT=0 JSB ER00 EMPTY DIGIT STRING, IDI=0.NE.DCT ISZ IDI BOTH IDI=DCT=0, SET IDI=1 JMP FMTP4 * B42 OCT 42 '"' PRMF NOP PRIME FLAG I.DCT DEF DCT * * * * ******************** * * RETURN PROCESSOR * * ******************** RTNPR JSB ICH00 INPUT A CHAR. LDB SBF SUBPROGRAM FLAG SET ? STB .A SZB,RSS YES JMP RTNP7 NO, RETURN IN MAIN PROGRAM JSB RTN00 RETURN HANDLER JMP RTNP1 RTNP7 JSB PTM00 PROGRAM TERMINATION EXEC CALL LDA K7 JSB ERCM RTNP1 LDA LI.FF,I  LOG IF FLAG SET? SZA NO JMP PAST8 TO SET LSTP TO NON-0 JMP JUMP.,I 'TO JUMP' JUMP. DEF JUMP LI.FF DEF LIFF * * ****** RETURN HANDLER RTN00 NOP LDA SFF.I,I (A)=SFF SZA,RSS NO,IT IS A FUNCTION JMP RTNP8 YES RTNP2 CPA K.1 SFF=1 JMP RTNP4 YES, 1ST RETURN IN FUNCTION LDA .JMPK 'JMP' LDB SFF.I,I (B)=SFF JSB OMR00 OUTPUT 'JMP SFF' JMP RTNEX * .JMPK OCT 26000 .KK02 OCT 70000 .DFER DEF .TBL+24 DOUBLE PRECISION TRANSFER .CFER DEF .TBL+25 COMPLEX TRANSFER * RTNP4 LDA RPL STA SFF.I,I SFF=RPL LDB SBF LDA B,I AND .KK02 =B70000 CPA INT JMP RTNP6 IM(SBF)=INT CPA LOG JMP RTNP6 IM(SBF)=LOG CPA REA JMP RTNP5 IM=REA LDB .CFER COMPLEX XFER ROUTINE CPA DBL IM=DBL ? LDB .DFER YES, (B)=LOC OF DOUBLE XFER JSB ODF00 OUTPUT DOT FUNCTION LDA KK01 '0,I' LDB FDCAL 1ST ARG. LOC OF COMPLEX OR DBL JSB OMR00 OUTPUT MEMORY REFERENCE JMP *+3 RTNP5 LDB .DLD LOC. OF DOUBLE LOAD ROUTINE JSB ODF00 OUTPUT DOT FUNCTION LDB SBF STB .A .A=SBF CLA,RSS (A)=0 TO OUTPUT 'DEF .A' RTNP6 LDA LDA 'LDA' JSB OA00 OUTPUT OA RTNP8 EQU * LDA .JMPI 'JMP,I' LDB RETLO RETURN 'NOP' LOC. JSB OMR00 'JMP RETLO,I' RTNEX JMP RTN00,I EXIT * .JMPI OCT 126000 'JMP,I' FDCAL NOP 1ST ARG LOC OF CMPLX OR DBL FUNC .DLD DEF .TBL+7 DOUBLE LOAD * * * ********************** * * CONTINUE PROCESSOR * * ********************** CONPR LDA LSTP LAST OPERATION FLAG ADA LSTN LAST STATEMENT NUMBER FLAG STA LSTP LSTP=LSTP+LSTN CLA STA LSTFI,I JMP CRTST C/R TEST LSTFI DEF LSTF * * * * **************KB****** * * ASSIGN PROCESSOR * * ******************** ASSIP LDA LDA 'LDA' LDB K2 JSB OZ00 OUTPUT 'LDA *+2' LDA KK66 'RSS' JSB OAI00 OUTPUT ABSOLUTE INSTRUCTION JSB ISN00 INPUT STATEMENT NUMBER ISZ CC CLA 'DEF' JSB OA00 OUTPUT OA (DEF) LDA O124 'T' JSB TCTST TC-TEST JSB ICH00 INPUT CHARACTER LDA O117 'O' JSB TCTST TC-TEST JSB IIV00 INPUT INTEGER VARIABLE LDA K37 LDB AT CPB DUM JSB ERCM ILLEGAL UASAGE OF DUMMY VARIABLE LDA STA 'STA' JSB OA00 OUTPUT OA (STA) JMP CRTST C/R TEST * KK66 RSS * O124 OCT 124 'T' K..68 DEC 68 K37 DEC 37 * * ****************** * * CALL PROCESSOR * * ****************** * CALLP EQU * JSB ISY00 INPUT SYMBOL LDA K..68 (A)=68 LDB B40 CPB NID+5 RSS JSB ERCM PROGRAM NAME MORE THAN 5 CHARS. LDB B40 STB NID+5 JSB IDNID MOVE NID TO IDI LDA IDI CPA ERBF1,I RSS JMP CALL5 LDA IDI+1 CPA ERBF2,I RSS JMP CALL5 LDB IDI+2 LDA K75 CPB ERBF3,I JSB ER00 PROG NAME = CALLED NAME CALL5 EQU * LDA IU CPA SUB RSS JSB TS00 TAG SUBPROGRAM CCA CALL2 JSB EE00 EXPRESSION EVALUATOR JMP CRTST K75 DEC 75 ERBF1 DEF ERBF+1 ERBF2 DEF ERBF+2 ERBF3 DEF ERBF+3 * * * ********************************** * * ASSIGNMENT STATEMENT PROCESSOR * * ********************************** ASST LDA K4 JSB .FNS0,I 1ST NON-SPEC CHECK JSB II00 INPUT ITEM JSB NCON.,I NON-CONSTANT TEST JSB NSUBT NON-SUBPROGRAM TEST LDA .KM6 (A)=-6 JMP CALL2 NCON. DEF NCONT .FNS0 DEF FNS00 .KM6 DEC -6 v* * *********************** * * FIX-EXT-TABLE CHECK * * *********************** * FXC00 NOP LDA .A CMA,INA ADA DP SSA IN FIX-EXT TABLE JMP FXC00,I EXIT LDB .A ADB K2 LDA B,I AND .KK47 =B77577 IOR KK102 STA B,I SET AF12(.A)=1 JSB AI00 ASSIGN ITEM JMP FXC00,I EXIT KK102 OCT 100200 * ASFNM BSS 3 CURRENT ASF NAME * * ******************************** * * STATEMENT FUNCTION PROCESSOR * * ******************************** STFPR LDA K3 JSB .FNS0,I 1ST NON-SPEC CHECK JSB ISY00 INPUT SYMBOL JSB FXC00 FIX-EXT-TABLE CHECK LDA IDI _. STA ASFNM . LDA IDI+1 . STA ASFNM+1 . SET UP ASF NAME LDA IDI+2 . STA ASFNM+2 _. LDA IM STA T1STF SAVE IM OF S.F. NAME STA DTA.I,I SET 'ASF' FLAG LDA .A STA T0STF SAVE ASSI PTR OF S.F. NAME CLA JSB DIU00 IU=0 JSB IDL00 INPUT DUMMY LIST LDA T0STF RESTORE ASSI PTR OF S.F. NAME STA .A JSB DL00 AF(.A)=RPL, AT(.A)=REL LDA RPL STA T2STF SAVE LOC. OF S.F. NOP JSB .GPE0,I GENERATE PROGRAM ENTRANCE LDA B..75 '=' JSB TCTST TC-TEST CLA LDB T1STF STB IM RESTORE IM OF S.F. NAME JSB EE00 EXPRESSION EVALUATOR STFP2 LDB D _. ADB K3 . LDA B,I . RESTORE ASSI PTR STA .A _. ADB KM1 _. LDA B,I . RESTORE IU JSB .DIU0,I _. LDB D _. INB . LDA B,I . RESTORE AT JSB DAT00 _. LDA D,I V LDB .A . INB . STA B,I V RESTORE AF LDA D ADA K4 STA D D=D+4 CPA DO END OF DO TBL REyACHED ? RSS JMP STFP2 NOT YET LDA T0STF STA .A .A=ASSI PTR OF STMENT FUNC NAME LDA .JMPI 'JMP,I' JSB OA00 OUTPUT OA JSB FA00 FETCH ASSIGNS LDB IU SZB JMP STFP4 JSB TS00 TAG SUBPROGRAM STFP3 EQU * LDA T2STF JSB DAF00 SET S.F. NOP LOC INTO A.F. OF S.F. CLA STA ASFNM RESET ASF NAME JMP CRTST C/R TEST STFP4 CPB VAR RSS JMP STFP5 LDA K.25 JSB ERCM VARIABLE USED AS SUBROUTINE LDA SUB JSB DIU00 SET IU=SUB JMP STFP3 STFP5 LDA K75 JSB ERCM RECURSION JMP STFP3 * K.25 DEC 25 T0STF BSS 1 SAVE ASSI PTR OF STMNT FUNC NAME T1STF NOP T2STF NOP B..75 OCT 75 .KK47 OCT 77577 .LJMP DEF LJMP DTA.I DEF DTAFG .GPE0 DEF GPE00 .DIU0 DEF DIU00 * * * * * ***************** * * END PROCESSOR * * ***************** * ASSIGN ADDRESSES TO CONSTANTS * OUTPUT END RECORD FOR LOADER * CALL IN 2ND PASS AND TRANSFER CONTROL TO IT ASCNO ASC 1,NO K78 DEC 78 ENDPR EQU * LDB DEFCR IF LWORD IS POINTING TO INB BEGINNING OF CROSS REF. CPB LWORD BUFFER, DON'T OUTPUT ANOTHER JMP DTCK0 BUFFER LOAD. CLB STB LWORD,I SET END OF BUFFER+1 TO 0 JSB CROUT OUTPUT LAST CROSS REF BUFFER DTCK0 LDB D LOC OF LAST DO ENTRY IN DO TABLE DTCK1 STB T2STF SAVE DO TABLE PTR CPB DO END OF DO TABLE SEARCH ? JMP DTCK5 YES LDA LSTN IS THIS STATEMENT # A DO TERM? CPA B,I JMP DTCK3 YES LDB T2STF T2STF=T2STF+5 TO CONTINUE SEARCH ADB K..5 JMP DTCK1 DTCK3 LDA K.30 (A)=30 JSB ERCM ILLEGAL DO TERMINATOR DTCK5 EQU * LDB LSTN SZB JSB DL00 DEFINE AF=RPL FOR ST# LOC. LDB RPL CPB .LJMP,I STRING-BACK JMP LOC. s JMP ENDP1 LDB SPF CPB K4 JMP ENDP0 CURRENT STATEMENT EXECUTABLE LDB DTA.I,I DATA/ASF FLAG SET? SZB,RSS JMP ENDP0 NO LDA K78 JSB ERCM YES, ASF/DATA STATEMENTS ONLY LDA STRF. STRING BACK LOCATION INA LDB RPL STB A,I ENDP0 EQU * LDA NLINE ADA K2 SSA,RSS (A)=2-(# OF LINES REMAINED) JMP ENDPC EJECT PAGE, PRINT HEADER. JSB SKIP2,I SKIP TWO LINES ENDPB LDA SBF SUBPROGRAM FLAG SET? STA .A SZA,RSS YES JMP ENDP8 NO, NOT A SUBROUTINE OR FUNCTION JSB RTN00 RETURN HANDLER JSB FA00 FETCH ASSIGNS LDA IU LDB SFF.I,I IS IT A FUNCITON? SZB NO, IT IS A SUBROUTINE XOR VAR LDB A LDA K46 SZB JSB ERCM FUNCTION NAME NOT USED OR * SUBROUTINE NAME USED ENDP3 LDA DP INA STA .A .A=DATA POOL START ADDRESS ENDP4 JSB GNA00 GET NEXT .A SSA,RSS JMP ENDP6 END OF ASSIGNMENT TABLE JSB FID00 FETCH ID & ASSIGNS LDA NW # OF WORDS IN ENTRY ADA ...M3 (A)=(A)-3 SSA JMP ENDP4 1 OR 2-WORD ENTRIES LDA NT SZA JMP ENDP5 CONSTANT CPA IU JMP ENDP9 IU=0, STATEMENT # JMP ENDP7 * ENDPC STA T2PS.,I ZERO TOP-OF-PAGE FLAG THEN JSB EJEC.,I EJECT PAGE, PRINT HEADER. NOTE: JMP ENDPB T2PSL MUST BE NON-NEGATIVE ONLY * SFF.I DEF SFF EJEC. DEF EJECT SKIP2 DEF SK200 ...M3 DEC -3 K.30 DEC 30 K..5 DEC 5 K46 DEC 46 K66 DEC 66 ENDP1 LDA K66 JSB ERCM PROGRAM/FUNCTION WITHOUT BODY CCA ADA RPL STA RPL RPL=RPL-1 JSB OLR00 OUTPUT L.L.=RPL JMP ENDP0 ENDP5 LDA NT SZA,RSS JMP ENDP4 NT=0 (NON-CONSTANT) LDA IU CPA VAR RSS JMP ENDP4 NON VARIABLE/CONSTNAT LDA AT CPA REL JMP ENDP4 AT=REL JSB OLR00 OUTPUT L.A.=RPL JSB DL00 AT=REL, AF(.A)=RPL JSB FC00.,I FETCH CONSTANT JSB OC0.I,I OUTPUT CONSTANT JMP ENDP4 * OC0.I DEF OC00 OS0.I DEF OS00 OW0.I DEF OW00 R..I DEF R FC00. DEF FC00 .BAD. DEF .TBL+50 PSEUDO 'BAD' FUNCTION R111 OCT 160000 END OF PROGRAM DATA RECORDS II.DP DEF .DP * ENDP6 EQU * JSB OLR00 OUTPUT LOAD LO.PRPL LDA DP INA STA .A JSB DL00 DEFINE LOCATION CLA,INA JSB OAD00 OUTPUT INTEGER 1 LDB .BAD. LDA ERF.I,I # OF ERRORS IN COMPILATION SZA JSB ODF00 'JSB .BAD.' LDA R111 END OF DBL RECORDS MARK STA R..I,I R=111 JSB OW0.I,I OUTPUT WORD JSB STS00 JSB OS0.I,I OUTPUT THE LAST SECTOR CCA OUTPUT PROGRAM SIZE ADA RPL IN DECIMAL. JSB TTHOU PRODUCE TEN-THOUSANDS DIGIT STB PRSIZ+7 STORE IT IN OUTPUT LINE. JSB ASCII CONVERT REST OF PROG SIZE STB PRSIZ+8 TO ASCII AND STORE IT IN STA PRSIZ+9 OUTPUT LINE. LDA CSIZE OUTPUT COMMON SIZE IN DECIMAL. JSB TTHOU PRODUCE TEN-THOUSANDS DIGIT. STB CMSIZ+7 AND STORE IT IN OUTPUT LINE. JSB ASCII CONVERT REST OF COM SIZE STB CMSIZ+8 TO ASCII AND STORE IT IN STA CMSIZ+9 OUTPUT LINE. LDA NERR-1 2 BLANKS STA NERR+1 LDA ASCNO ASCII 'NO' STA NERR+2 LDA ERF.I,I # OF ERRORS SZA NO ERROR JSB ASCII CONVERT TO 4 DIGIT ASCII LDB K27. STB I.FPN,I SET FORCE-PRINT FLAG LDA ENDK4 LOC OF MESSAGE JSB PSL.0,I PRINT IT OUT ISZ I$EN2,I SET $ENDF FLAG * * * TO RESET AF12 TO 0 IN FIX-EXT-TABLE * LDA II.DP,I (A)=.DP STA .A .A=BASE LOC OF FIX-EXT-TBL SWAP0 JSB GNA00 GET NEXTl .A LDA .FIXF,I IS IT IN FIX TBL ? SSA,RSS YES JMP SWAP1 NO LDB .A ADB K2 LDA B,I (A)=1ST TWO CHARS. AND .KK47 =B77577 STA B,I JMP SWAP0 SWAP1 EQU * CLB ZERO STB T2PS.,I TOP OF PAGE FLAG. LDB NLINE SSB,RSS SKIP IF NEGATIVE CLB MAKE IT NEG. ADB KM7 STB NLINE JSB EXEC TO EJECT A PAGE DEF *+4 DEF K3 DEF EJCON DEF NLINE LDA LINEP # OF LINES/PAGE CMA,INA STA NLINE -(# OF LINES REMAINED IN PAGE) * * ************************************************ * * BRING IN 2ND PASS AND TRANSFER CONTROL TO IT * * ************************************************ * JSB EXEC _. DEF *+3 . DEF K8 . BRING IN PASS 2 DEF *+1 ASC 3,F4.2 _. * T2PS. DEF T2PSL * TTHOU NOP PRODUCE TEN-THOUSANDS DIGIT. CLB INTIALLY 0. NERP0 ADA KM1TT SUBTRACT 10,000. SSA IF POSITIVE, JMP NERP1 NO-DONE. INB INCREMENT 10,000 COUNTER. JMP NERP0 SUBTRACT AGAIN. NERP1 ADB B2.60 ADD 'BLANK-0' IN ASCII ADA K1TT RESTORE BINARY VALUE FOR JMP TTHOU,I FURTHER CONVERSION AND EXIT. * K27. DEC 27 KM1TT DEC -10000 K1TT DEC 10000 B2.60 OCT 20060 ASCII 'BLANK-0' * * PSL.0 DEF PSL00 I.FPN DEF FPRIN ERF.I DEF ERF I$EN2 DEF $ENDF .FIXF DEF FIXF I.AA0 DEF AA00 * * * ENDP7 JSB I.AA0,I ASSIGN ADDR TO VARIABLES JMP ENDP4 * * * * PROGRAM TERMINATION EXEC CALL * * PTM00 NOP LDB ENDK1 LOC OF EXEC LDA K.JSB 'JSB' JSB SOA00 OUTPUT 'JSB .EXEC' CLA LDB K2 JSB OZ00 OUTPUT 'DEF *+2' LDA K..6 (A)=6 STA IDI LDA INT JSB ESC00 ESTABLISH CONSTANT JSB AI00 ASSIGN 6 TO )GDATA POOL CLA JSB OA00 'DEF =6' JMP PTM00,I * K.JSB OCT 16000 'JSB' O.100 OCT 100 K..6 DEC 6 ENDP8 JSB PTM00 PROG TERMINATION EXEC CALL JMP ENDP3 ENDP9 LDA AT CPA REL JMP ENDP4 CPA DUM JMP ENDP4 LDA .A CPA SBF JMP ENDPA SUBROUTINE NAME JSB IDNID MOVE NID TO IDI LDA NID CPA O.100 RSS JMP ENDP4 LDA IDI STA UNLAB LDA IDI+1 STA UNLAB+1 LDA IDI+2 STA UNLAB+2 LDA ENDK3 LOC OF MESSAGE LDB K9 STB I.FPN,I SET FORCE-PRINT FLAG JSB PSL.0,I PRINT OUT UNDEFINED MESSAGE ISZ ERF.I,I ERF=ERF+1 NOP JMP ENDP4 K9 DEC 9 ENDPA LDA VAR JSB .DIU0,I IU=VAR. JSB DL00 DEFINE LOC. LDA RPL ADA D0 STA RPL RPL=D0+EPL SSA JMP RPLOV RPL OVERFLOW JMP ENDP4 * * ENDK1 DEF FEDP+246B '.A OF EXEC' KM100 DEC -100 K100 DEC 100 KM1T DEC -1000 K1000 DEC 1000 ASC 1, NERR ASC 7,** NO ERRORS* PRSIZ ASC 10, PROGRAM = CMSIZ ASC 10, COMMON = ENDK4 DEF NERR ASC 1, UNLAB ASC 9, UNDEFINED ENDK3 DEF UNLAB * * * * * * * ******************************** * * CONVERT TO FOUR ASCII DIGITS * * ******************************** ASCII NOP P1ASC EQU ASCII CLB NERP2 ADA KM1T (A)=(A)-1000 SSA JMP NERP4 ISZ B (B)=(B)+1 JMP NERP2 NERP4 ADB B..60 (B)=1000TH DIGIT BLF,BLF STB NERR+1 ADA K1000 CLB NERP6 ADA KM100 (A)=(A)-100 SSA JMP NERP7 ISZ B (B)=(B)+1 JMP NERP6 NERP7 ADB B..60 (B)=100TH DIGIT ADB NERR+1 STB NERR+1 ADA K100 JSB PD00.,I PACK DIGITS TO ASCII STA NERR+2 LDB NERR+1 1ST TWO DIGITS JMP ASCII,I EXIT B..60 OCT 609 PD00. DEF PD00 * * * SKP * * ******************** * * INPUT DUMMY LIST * * ******************** * TO PROCESS A LIST DUMMY ARGUMENTS FOR: * STATEMENT FUNCTIONS * SUBROUTINES * & FUNCTIONS * ALL NAMES IN THE LIST ARE ENTERED INTO THE ASSIGNMENT * TABLE WITH: * IU=0 * AT=DUM * AF=RPL * FOR STATEMENT FUNCTIONS, THE OLD ASSIGNMENTS ARE SAVED * SO THAT THEY CAN BE RESTORED AFTER THE STATEMENT * FUNCTION IS PROCESSED. IDL00 NOP LDA B50 '(' JSB TCTST TC TEST CLA STA .ARGF,I SET # OF ARG=0 LDA RPL STA SRPL SAVE REL PROGRAM LOCATION LDA IM IM=CPX OR DBL ? CPA CPX RSS CPA DBL ISZ RPL YES, BUMP RPL BY 1 LDA RPL SSA JMP RPLOV RPL OVERFLOW IDL02 JSB ISY00 INPUT SYMBOL JSB FXC00 IN FIX-EXT TABLE CHECK LDA NT SZA JMP *+5 LDA K76 LDB AT CPB DUM JSB ERCM DOUBLY DEFINED DUMMY VARIABLES LDA K74 LDB .A CPB T0STF ASF MAME IN ITS DUMMY LIST JSB ERCM ASF NAME IN ITS DUMMY LIST LDA D ADA ..M4 JSB DPO.0,I D=D-4 LDB D LDA .A INA LDA A,I STA B,I (D)=AF(.A) INB LDA AT STA B,I (D+1)=AT(.A) INB LDA IU STA B,I (D+2)=IU(.A) INB LDA .A STA B,I (D+3)=.A CLA JSB .DIU0,I DEFINE IU(.A)=0 ISZ .ARGF,I ARGF=ARGF+1 LDA RPL JSB DAF00 DEFINE AF(.A)=RPL LDA DUM JSB DAT00 DEFINE AT(.A)=DUM ISZ RPL RPL=RPL+1 LDA RPL SSA JMP RPLOV RPL OVERFLOW LDA TC CPA B54 ',' JMP IDL02 TC=, JSB RP00 )-INPUT OPERATOR JMP IDL00,I EXIT DPO.0 DEF DPO00 ..M4 DEC -4 .ARGF DEF ARGF K74 DEC 74 K76 DEC 76 LDADD OCT 0 LOAD ADDRESS- A T POINTER OR RPL RECL OCT 0 RECORD LENGTH O75 OCT 75 '=' I.IOF DEF IOF * * * ******************************** * * I/O STATEMENT LIST PROCESSOR * * ******************************** * IOL00 NOP READ() OR WRITE() CLA STA L NUMBER SYNTAX ENTRIES STACKED STA LDADD LAST LOAD ADDRESS WORD IN A.T. STA RECL RECORD LENGTH OF LAST RECORD LDA RPL STA SRPL SAVE RPL TO COMPUTE RECORD SIZES IOL01 JSB II00 INPUT NEXT ITEM IN LIST IOL51 LDB TC SAVE TERMINATING CHAR IN B SZA,RSS IS ITEM MODE 0? JMP IOL10 YES, DELIMITER WAS JUST INPUT CPB O75 NO, IS TC AN '=' ? JMP IOL24 YES, PROCESS IMPLIED TO CONTROL IOL52 CLA NO, CHECK WHETHER READ OR CPA I.IOF,I WRITE IS BEING PROCESSED JSB NCON.,I IF INPUT, MUST BE VARIABLE JSB NSUBT SUBPROG NAME IS ILLEGAL LDA .A (A)=A.T. PTR TO VAR OR ARRAY NAME LDB IU SZB,RSS IF IU = 0, JMP IOL15 ILLEGAL USAGE OF NAME CPB ARR IS NAME IN LIST AN ARRAY? RSS YES JMP IOL02 NO, CONTINUE PROCESSING. LDB TC CPB B50 IS ARRAY NAME SUBSCRIPTED? RSS YES JMP IOL02 NO, CONTINUE PROCESSING. LDA BM3 CALL EXP. EVAL. TO GET ARRAY JSB EE00 ELEMENT ADDRESS AND SAVE A.T. PTR IOL02 STA T0IOL TO IT IN T0IOL. STA .A RESTORE .A AND LDA LCHAR PRECEEDING CHARACTER CPA B51 CANNOT BE ')' JMP IOL53 ERROR 53 LDA TC STA LCHAR UPDATE LCHAR JSB GIM00 GET ITEM MODE OF ITEM IN LIST. STA T1IOL SAVE ITEM MODE IN T1IOL LDA IU STA T2IOL SAVE ITEM USAGE IN T2IOL CPA ARR IS ITEM AN ARRAY NAME? RSS YES k JMP IOL05 NO, CONTINUE PROCESSING LDA I.E,I (A)=.E SZA IF .E IS 0, ALL DIMENSIONS CONST. JMP IOL03 NO,GENERATE ARRAY SIZE CALC. CODE JSB NEA0.,I GET # OF ELEMENTS IN ARRAY STB T3IOL SAVE IT IN T3IOL JMP IOL05 CONTINUE PROCESSING I.E DEF .E BM3 OCT -3 I..D2 DEF D2 I.D3 DEF D3 CPX OCT 50000 IM=5, COMPLEX I.X1 DEF X1 I..X2 DEF X2 I..X3 DEF X3 NEA0. DEF NEA00 LCHAR NOP LCHAR=0 AT BEGINNING OF I/O LIST K.LDA OCT 62000 IOL03 LDA K.LDA 'LDA' LDB I.X1,I X1 JSB SOA00 OUTPUT LDA FIRST DIMENSION. LDA I..D2,I 2ND DIMENSION SZA,RSS IF D2 # 0, MPY BY SECOND DIM. JMP IOL04 IF D2 = 0, SKIP MPY. LDB .MPY JSB ODF00 OUTPUT JSB .MPY LDB I..X2,I X2 JSB DEF00 OUTPUT DEF DIMENSION 2 LDA I.D3,I D3 SZA,RSS IF D3 # 0, MPY BY THIRD DIM. JMP IOL04 IF D3 = 0, SKIP MPY. LDB .MPY JSB ODF00 OUTPUT JSB.MPY LDB I..X3,I X3 JSB DEF00 OUTPUT DEF DIMENSION 3 IOL04 LDA KK83 (A) = 'ALS' LDB T1IOL CPB CPX IF ITEM MODE IS COMPLEX JSB OAI00 OUTPUT 'ALS' TO MULT. BY 2. LDA STA LDB B3 JSB OZ00 OUTPUT STA *+3 CLA STA T3IOL SET T3IOL SO 'NOP' WILL BE OUTPUT. IOL05 LDA T1IOL CPA CPX IF COMPLEX ITEM IN I/O LIST, JMP IOL07 OUTPUT JSB .RAY. LDB T2IOL NO CPB ARR IF ENTIRE ARRAY BEING OUTPUT JMP IOL06 SELECT ARRAY ENTRY POINT IN FMTR CPA INT NO, SELECT SINGLE ELEMENT ENTRY LDB .IIO. CPA LOG LDB .IIO. CPA DBL LDB .XIO. CPA REA LDB .RIO. JMP IOL08 * KK83 ALS .MPY DEF .TBL+5 FIX-POINT MPY .XIO. DEF .TBL+30 DOUBLE PREC. DATA I/O FOR FRMTR .RIO. DEF .TBL+31 REAL DATA I/O FOR FRMTR .IIO. DEF .TBL+32 INTEGER I/O FOR FRMTR .XAY. DEF .TBL+33 DOUBLE ARRAY I/O FOR FRMTR .RAY. DEF .TBL+34 REAL ARRAY I/O FOR FRMTR .IAY. DEF .TBL+35 INTEGER ARRAY I/O FOR FRMTR * IOL06 CPA INT SELECT ARRAY ENTRY POINT TO FMTR LDB .IAY. CPA LOG LDB .IAY. CPA DBL LDB .XAY. CPA REA IOL07 LDB .RAY. IOL08 JSB ODF00 OUTPUT JSB TO ROUTINE FOR I/O LDB T0IOL JSB DEF00 OUTPUT DEF ELEMENT LDA T3IOL SIZE WORD IF NEEDED LDB T2IOL CPB ARR IF IU = ARRAY, JMP IOL09 OUTPUT SIZE WORD LDA B2 LDB T1IOL CPB CPX IF IM=CPX, IOL09 JSB OAD00 OUTPUT SIZE WORD OF OCT 2 JMP IOL11 FINISH PROCESSING DELIMITER IOL10 CPB B50 PROCESS DELIMITER AND CONTINUE. JMP IOL12 LDA LCHAR CPA B51 IF PREVIOUS TC = ')' JMP IOL91 CONTINUE SZA,RSS IF START OF LIST JMP IOL92 CONTINUE JMP IOL53 OTHERWISE SYNTAX ERROR IOL91 STB LCHAR IOL11 LDB TC ON ENTRY AFTER PROCESSING ELEMENT, CPB B51 IS TC =')'? JMP IOL13 YES, NEW RECORD AND MATCH PARENS. CPB B54 NO,IS TC = ','? JMP IOL01 YES,SCAN NEXT ITEM IN LIST. IOL92 CPB B15 IS TC = CARRAIGE RETURN? JMP IOL27 YES, FIX UP LOAD ADDRESS POINTERS IOL53 LDA K53 NO, CONSTRUCTION ERROR: JSB ER00 ILLEGAL DELIMITER K53 DEC 53 .SXF. DEF SXF IOL12 STA .SXF.,I SET TO NON-0 AS A FLAG, STB T0IOL SAVE TC = '(' IN T0IOL AND JSB II00 INPUT NEXT ITEM IN LIST. LDB NT (B)= NAME TAG OF NEXT ITEM CPA CPX IS ITS ITEM MODE COMPLEX? SZB,RSS AND IS IT A CONSTANT? RSS NO - IT IS NOT A COMPLEX CONSTANT JMP IOL52 YES - COMPLEX CONSTANT IN LIST. STA T1IOL SAVE ITEM MODE OF NEXT ITEM. LDA .A STA T2IOL SAVE .A IN CASE IM#0. LDA TC LDB T0IOL STA T0IOL SAVE TC JUST INPUT AND{ STB TC RESTORE TC ='(' LDA LCHAR IF '(' PRECEEDED BY ')' CPA B51 JMP IOL53 ERROR 53 STB LCHAR JSB NR00 START A NEW RECORD FOR THE '(' LDB T0IOL STB TC RESTORE NEXT TC. LDA T2IOL STA .A RESTORE .A TO NEXT ITEM IF NEEDED LDA T1IOL SZA,RSS IF IM OF NEXT ITEM IS ZERO JMP IOL10 CONTINUE WITHOUT SCANNING AGAIN. JSB FA00 OTHERWISE FETCH ITS ASSIGNS LDA IM LOAD ITS ITEM MODE JMP IOL51 AND CONTINUE WITHOUT FURTHER SCAN IOL13 JSB NR00 START NEW RECORD FOR ')' CCA (A)= -1 ADA STK2T (A)= STK2T-1 (START MATCH HERE) LDB BM2 SEARCH DOWN THE STACK JSB MP00 FROM STK2T-1 TO MATCH WITH '(' JMP IOL01 CONTINUE PROCESSING I/O LIST. IOL15 LDA K22 ERROR 22 - JSB ER00 ILLEGAL USAGE OF NAME K22 DEC 22 * * PROCESS IMPLIED DO CONTROL INFO. * IOL24 LDA LCHAR SYNTAX CHAR BEFORE INDEX = CPA B54 IF NOT A COMMA, RSS JMP IOL53 ERROR 53 JSB INTST CONTR. VAR. MUST BE INTEGER JSB NCON.,I CONTR. VAR. MUST NOT BE CONSTANT JSB TV00 MUST BE VARIABLE LDB D (B) POINTS TO FIRST DO TABLE WORD. IOL23 CPB DO IF ENTIRE DO TABLE CHECKED, JMP IOL26 CONTINUE PROCESSING IMPLIED DO. ADB K2 POINTS TO CONTROL VARIABLE WORD LDA B,I IN DO TABLE. LOAD A.T. POINTER CPA .A TO IT. IF SAME AS IMPLIED DO JMP IOL32 CONTROL VARIABLE, ERROR 51. ADB K3 OTHERWISE LOOK AT NEXT JMP IOL23 DO TABLE ENTRY. IOL26 LDA .A PROCESS IMPLIED DO CONTROL INFO STA CONTR SAVE POINTER TO CONTROL VAR. JSB NR00 START NEW RECORD FOR INITIAL. CODE LDA CONTR RESTORE .A TO POINT TO CONTR VAR STA .A LDA BM2 JSB EE00 GENERATE INIT. CODE FOR I=M1 LDh8A B54 ',' JSB TCTST COMMA TEST FOR I=M1, LDA BM4 EVALUATE TERMINAL PARAMETER AND STA I.T4I,I SET T4IOL FLAG JSB EE00 LEAVE POINTER TO IT IN A. STA M2 STORE POINTER IN M2 STA .A A.T. POINTER TO PARAMETER JSB ATD0.,I SAVE TEMP FOR STEP-SIZE PARAM. CLA STA I.T4I,I RESTORE T4IOL FLAG LDA .1 ASSUME STEPSIZE IS 1 LDB B54 CPB TC IS TC A COMMA? RSS YES JMP IOL25 LDA BM4 EVALUATE STEP SIZE PARAMETER STA I.T4I,I SET T4IOL FLAG JSB EE00 CALL EXPRESSION EVALUATOR IOL25 STA M3 SAVE POINTER TO STEP-SIZE IN M3 STA .A A.T. POINTER TO PARAMETER JSB ATD0.,I SAVE TEMP FOR TERM. PARAMETER CLA STA I.T4I,I RESTORE T4IOL FLAG LDA B51 STA LCHAR I/O LIST CHAR = ')' JSB TCTST MAKE SURE TC = ')' JSB NR00 THE SYNTAX FROM I/O STATEMENT LDA STK2T ADA BM1 LOOK FOR MATCHING PARENTHIS LDB BM2 (THAT STARTS DO BODY) - LOOKING JSB MP00 DOWN THE STACK FROM STK2T-1. LDA A,I IOR KK01 STORE IN JMPAD .A,I POINTING TO STA I.JAD,I BEGINNING OF IMPLIED DO BODY JSB DT00 OUTPUT DO TERMINATION CODE JMP IOL01 CONTINUE PROCESSING IO LIST * ATD0. DEF ATD00 M2 NOP M3 NOP I.JAD DEF JMPAD BM4 OCT -4 CONTR NOP PTR TO IMPLIED DO CONTR. VAR .1 DEF DPOOL+1 '.A OF 1' I.T4I DEF T4IOL * * IOL27 LDA STK2B FIX UP LOAD ADDRESS A.T. POINTERS ADA BM1 INITIALIZE STACK POINTER TO STA T0IOL STK2B -1 IOL28 LDA T0IOL MOVE STACK POINTER TO POINT TO ADA B2 NEXT SYNTAX ELEMENT STACKED. STA T0IOL LDB STK2T CMB,INB ADB A (B) _ STACK POINTER - STACK TOP SSB,RSS HAS STACK TOP BEEN PASSED? JMP IOL33 YES, DONE WITH PROCESSING LIST ɥ LDB A,I NO, CONTINUE TO FIX UP LOAD ADD. CPB B50 IS SYNTAX A LEFT PAREN? JMP IOL29 YES, FIND MATCHING RIGHT PAREN CPB B51 NO, IS SYNTAX A RIGHT PAREN ? JMP IOL31 YES, FILL IN LOAD ADD FOR RECORD. JMP IOL28 NO,MUST BE DO CONTR VAR,SKIP IT IOL29 LDB B2 SEARCH UP THE STACK FOR MATCHING JSB MP00 RIGHT PARENTHESIS. ADA BM3 POINTS TO SYNTAX ELEM. BEFORE ). STA T1IOL LDB A,I IS PREVIOUS SYNTAX ELEMENT AN SSB,RSS IMPLIED DO CONTROL VARIABLE? JMP IOL31 NO, FIX UP LOAD ADD. FOR'(' REC. INA INSERT LOAD ADDRESS FOR RECORD JSB ILA00 CONTAINING DO INITIALIZATION. LDA T1IOL,I (A) = .A,I TO DO CONTROL VAR. LDB T1IOL (B) = STK2 WORD WHICH CONTAINS(A) IOL30 ADB BM2 NEXT SYNTAX BELOW(B) IN STK2 CPB T0IOL IS NEXT SYNTAX THE ( OF DO BODY? JMP IOL31 YES, INSERT LOAD ADDRESS FOR BODY CPA B,I NO, IS IT IDENTICAL TO CONT. VAR? JMP IOL32 YES, ERROR-REPEATED CONT. VAR. JMP IOL30 NO, LOOK AT NEXT SYNTAX IN STK2. IOL31 LDA T0IOL ADDRESS OF WORD IN STACK2 INA CONTAINING POINTER TO LOAD ADD. JSB ILA00 INSERT LOAD ADDRESS INTO A.T. JMP IOL28 CONTINUE FIXING UP LOAD ADDRS. K.51 DEC 51 IOL32 LDA K.51 JSB ER00 REPEATED IN IMPLIED DO NEST. IOL33 CLA SET NUMBER OF ELEMENTS STACKED STA L ON STACK 2 TO 0. LDB STK2B STB STK2T JMP IOL00,I DONE PROCESSING I/O LIST. * T0IOL NOP T1IOL NOP T2IOL NOP T3IOL NOP * * *********************** * * INSERT LOAD ADDRESS * * *********************** * ILA00 NOP INSERT LOAD ADDRESS INTO A.T. LDA A,I (A) = ADDRESS OF WORD IN ASSIGN. INA TABLE TO CONTAIN LOAD ADDRESS LDB LRPL COMPUTE LOAD ADDRESS FOR RECORD ADB RECL BY ADDING LEa-NGTH OF PREVIOUS STB LRPL RECORD TO PREVIOUS LOAD ADDRESS LDB A,I TAKE RECORD LENGTH OF NEW RECORD STB RECL FROM ASSIGN.TAB. AND PLACE IN LDB LRPL RECL FOR USE NEXT TIME. STB A,I INSERT LOAD ADDRESS INTO A. T. JMP ILA00,I EXIT LRPL BSS 1 SAVE RPL AT START OF I/O LIST * * ************** * * NEW RECORD * * ************** * NR00 NOP COMPLETE INFO FOR PREVIOUS LDA SRPL RECORD (FIND RECORD LENGTH) CMA,INA AND START NEW RECORD. ADA RPL STA LDADD,I STORE RECORD SIZE IN ASSIGN TABLE LDA RPL ENTRY FOR LOAD ADD. FOR RECORD LDB LDADD IF LDADD = 0, SZB,RSS NO, CONTINUE STA LRPL YES, SAVE RPL AT START OF FIRST STA SRPL SAVE BEGINNING OF NEW RECORD. JSB PIO00 LDA .A INA SAVE POINTER TO WORD IN ASSIGN STA LDADD TABLE TO HOLD NEXT LOAD ADDRESS. LDB KK01 JSB OLA0.,I OUTPUT LOAD ADDRESS AS AN JMP NR00,I ASSIGNMENT TABLE POINTER OLA0. DEF OLA00 * * ***************************** * * PLACE I/O SYNTAX ON STACK * * ***************************** * PIO00 NOP PLACE I/O LIST SYNTAX (, I, ) ON STK LDA TC CPA B50 IS SYNTAX A LEFT PAREN? JMP PIO01 YES, STACK IT. CPA B51 NO, IS SYNTAX A RIGHT PAREN? JMP PIO01 YES, STACK IT. LDA .A NO, STACK POINTER TO CONTROL VAR IOR KK01 (A) _ .A,I. .A POINTS TO CONT VAR PIO01 JSB PU200 STACK SYNTAX OF I/O LIST ON STK2 LDA TWPE LOAD IM=4 FOR TWO WORD PSEVDO ENT JSB ESC00 ESTABLISH DUMMY A.T.ENTRY JSB AI00 AND ASSIGN IT TO TABLE LDA .A STACK ON TOP OF I/O LIST JSB PU200 SYNTAX,THE A.T. POINTER TO THIS JMP PIO00,I ENTRY(FOR LOAD ADDRESS OF RECORD * * ********************* * * MATC4H PARENTHESES * * ********************* * MP00 NOP MATCH PAREN IN STACK 2 STA T0MP LOCATION OF PAREN TO BE MATCHED STB T1MP SEARCH UP STK IS +2, DOWN IS -2 CLB INITIALIZE PAREN COUNTER MP01 LDA T0MP WORD 1 OF 2 WORD STACK 2 ENTRY LDA A,I CONTENTS OF STACK WORD (SYNTAX) CPA B50 IS SYNTAX '('? INB YES, COUNT=COUNT+1 CPA B51 NO, IS SYNTAX ')'? ADB BM1 YES, COUNT = COUNT -1 SZB,RSS IS COUNT = 0? JMP MP03 YES, FINISH UP LDA T0MP NO, ADA T1MP UPDATE POINTER IN STACK TO STA T0MP POINT TO NEXT SYNTAX ELEMENT CMA,INA ADA STK2B (A) _ STK2B - POINTER SSA,RSS HAS BOTTOM OF STACK BEEN PASSED? JMP MP02 YES, MISMATCHED PARENS ERROR. LDA T0MP NO, CMA,INA ADA STK2T (A) _ STK2T - POINTER SSA,RSS HAS TOP OF STACK BEEN PASSED? JMP MP01 NO, CONTINUE SEARCH MP02 LDA K9 YES, MISMATCHED PARENS ERROR JSB ER00 NO RETURN MP03 LDA T0MP RETURN POINTER TO STK WORD +1 INA (POINTS TO WORD FOR A.T. POINTER JMP MP00,I FOR LOAD ADDRESS STARTING RECORD * T0MP BSS 1 T1MP BSS 1 LDA.K OCT 62000 STA.K OCT 72000 * * ****************************** * * OUTPUT DO TERMINATION CODE * * ****************************** * DT00 NOP TERM. CODE FOR I=M1,M2,M3 LDA LDA.K 'LDA' LDB CONTR LDA I JSB SOA00 LDB M3.I,I 'ADA M3' JSB GAD00 LDA STA.K 'STA' LDB CONTR STA I JSB SOA00 LDA KK60 CMA,INA JSB OAI00 LDB M2.I,I 'ADA M2' JSB GAD00 LDB M3.I,I (B)=M3 LDA B,I CHECK NAME TAG OF .A (STEP-SIZE) SSA,RSS JMP DT01 IF VARIABLE STEP-SIZE STB .A JSB FC00.,I IF CONSTANT STEP-SIZE  LDA IDI (A) _ CONSTANT M3 KK62 EQU * SSA,RSS JMP DT02 IF POSITIVE (INCREMENT) LDA KK81 IF NEGATIVE(DECREMENT) SZA JSB OAI00 OUTPUT ABSOLUTE INSTRUCTION LDA KK70 SSA JMP DT03 DT01 LDA LDB LDB M3 (IF VARIABLE STEP-SIZE) JSB SOA00 LDA KK61 SSB (IF VARIABLE STEP-SIZE) JSB OAI00 LDA KK60 CMA,INA (IF VARIABLE STEP-SIZE) JSB OAI00 DT02 LDA KK62 SSA,RSS (VAR. OR POS. STEP-SIZE) DT03 JSB OAI00 LDA K.JMP 'JMP' LDB JMPA.,I JSB OMR00 JMP DT00,I * * M2.I DEF M2 M3.I DEF M3 JMPA. DEF JMPAD K.JMP OCT 26000 'JMP' LDB OCT 66000 'LDB' KK60 CMA,INA KK61 SSB * KK70 SSA KK81 SZA * * * ******************************************* * * OUTPUT ASSIGNMENT TABLE POINTER OPERAND * * ******************************************* * OA00 NOP STA T0OA TEMP CELL TO HOLD OPCODE WORD LDA DOTFF DOT FUNCTION ? SZA JMP OA04 YES, .A POINTS TO DOT FUNC. TABLE JSB FA00 NO, .A POINTS TO ASSIGN. TABLE JSB .DUMK,I FETCH ASSIGNS AND DO DUMMY CHECK SZA IS OPERAND TAGGED DUMMY? JMP OA01 NO, CONTINUE PROCESSING. LDA T0OA YES, SET INDIRECT BIT (#15) IOR KK01 ON IN THE FIRST WORD INST. OA005 LDB AF SET (B) = AF AND JMP OA02 OUTPUT INSTRUCTION. .DUMK DEF DUMCK OA01 LDA IU CPA SUB IS OPERAND AN EXTERNAL NAME JMP OA03 YES, GEN. EXT. REF. INSTRUCTION LDA T0OA LOAD FIRST WORD OF INSTRUCTION. LDB AT IS OPERAND CPB COM. IN COMMON ? ADA B2 YES, SET BIT 2 OF FIRST WORD ON. LDB IM DOES OPERAND HOLD CPB ADDR ARRAY ELEMENT ADDRESS IOR KK01 YES, SET INDIRECT BIT ON. LDB IU IS OPERAND CPB ARR AN ARRAY NAME? JMP OAS005 YES, OUTPUT INSTR. WITH RPL OA015 LDB KK01 NO, OUTPUT THE ADB .A INSTRUCTION WITH (B) _ .A,I OA02 JSB OMR00 JMP OAEX RETURN ADDR OCT 70000 IM=7 ADDRESS OA03 LDA .A IF IU IS SUB, GEN. EXT. REF. INA INSTRUCTION. (A) POINTS TO AF FOR LDB AF .A, AND (B) = AF FOR .A JMP OA05 OA04 LDA .A (A) _ POINTER TO DOT FUNCTION LDB A,I EXT ID. FOR DOT FUNC. (OR 0) OA05 SZB IF B = O, NO EXT. ID. HAS YET JMP OA06 BEEN ASSIGNED FOR FUNC. LDB EXTID ASSIGN NEXT ID TO FUNCTION. STB A,I ADB BM1 UPDATE NEXT EXTERNAL ID NO. STB EXTID INB RESTORE PRESENT EXTERNAL ID. OA06 LDA T0OA (A) _ FIRST WORD OF INSTR. SSB,RSS IS EXT. ID. NEGATIVE? JMP OA015 NO, SUBPROG IS STATEMENT FUNC. CMB,INB YES, SET POSTIVE IOR B (A) _ FIRST WORD + SECOND WORD LDB R100 STB R SET R FOR EXTERNAL REF. INST. JSB OW00 OUTPUT ONE WORD EXT. REF. INST. OAEX JMP OA00,I RETURN. * EXTID OCT -1 -EXT ID FOR NEXT REF EXT NAME COM. OCT 4000 AT=COM T0OA BSS 1 R100 OCT 100000 EXTERNAL REFERENCE * * *********************** * * STORE AND OUTPUT OA * * *********************** * SOA00 NOP STB .A JSB OA00 JMP SOA00,I DOTFF NOP DOT FUNCTION FLAG .JSBK OCT 16000 * * *********************** * * OUTPUT DOT FUNCTION * * *********************** * ODF00 NOP STB .A SAVE POINTER TO FUNC TABLE IN .A STB DOTFF LDA .JSBK 'JSB' JSB OA00 OUTPUT INSTRUCTION CLB STB DOTFF JMP ODF00,I RETURN * * ************************ * * OUTPUT ABSOLUTE DATA * * ************************ * OAD00 NOP LDB R000 R=0 FOR ABSOLUTE DATA (OCT WORD) STB R ' JSB OW00 OUTPUT THE INSTRUCTION JMP OAD00,I RETURN * * * ****************** * * MASK CONSTANTS * * ****************** * KK00 OCT 0 .. RMTB EQU KK00 . OCT 160000 . OCT 176000 . R-MASK TABLE OCT 177600 . OCT 177760 .. * * * * ******************************* * * OUTPUT ABSOLUTE INSTRUCTION * * ******************************* * OAI00 NOP LDB R110 R=6 INDICATOR FOR SECOND PASS STB R (SO SECOND PASS LOOKS UP JSB OW00 MNEUMONIC OP CODE FOR INSTR.) JMP OAI00,I OUTPUT INSTR. AND RETURN. R110 OCT 140000 ABSOLUTE INSTRUCTION * * *************************************** * * OUTPUT MEMORY REFERENCE INSTRUCTION * * *************************************** * OMR00 NOP STB T0OMR SAVE 2ND WORD OF INSTRUCTION LDB R101 R=5 FOR MEMORY REFERENCE INST. STB R LDB T0OMR RESTORE 2ND WORD OF INSTRUCTION JSB OW00 OUTPUT INSTRUCTION JMP OMR00,I RETURN * R101 OCT 120000 MEMORY REFERENCE T0OMR BSS 1 * * *********************** * * OUTPUT LOAD ADDRESS * * *********************** * OLA00 NOP LDA R001 INDICATES FOR OW00 ROUTINE STA R THAT NEW REC. STARTS WITH LDA RPL LOAD ADDRESS IN (A). SZB IF LOAD ADD. IS RPL, OUTPUT IT. LDA .A OTHERWISE SET LOAD ADD..A,I IOR B ORS 0 OR 100000 INTO LOAD ADD IN A JSB OW00 OUTPUT LOAD ADDRESS JMP OLA00,I RETURN * * OUTPUT LOAD ADDRESS=RPL * OLR00 NOP CLB JSB OLA00 OUTPUT LOAD ADDRESS JMP OLR00,I * * * *************** * * OUTPUT ZREL * * *************** * OZ00 NOP OUTPUT COMMAND OF FORM 'OP *+C' ADB RPL (B) _ RPL+C JSB OMR00 OUTPUT INSTRo'. (A) HAS OP IN IT JMP OZ00,I EXIT * * * * SKP * * * ***************************** * * GENERATE PROGRAM ENTRANCE * * ***************************** GPE00 NOP OUTPUT CODE TO START MAIN OR SUBPROGRAM JSB OLR00 OUTPUT LOAD ADDRESS=RPL LDB SBF STB .A LDA RPL SZB JSB DAF00 AF(SUBP NAME)=RPL CLA JSB OAI00 OUTPUT 'NOP' LDB .ENTR GENERATE ENTRY CODE: JSB ODF00 GENERATE 'JSB .ENTR' CLA (A) _ 0 FOR DEF LDB SRPL JSB OMR00 OUTPUT DEF *-N-2 JMP GPE00,I EXIT .ENTR DEF .TBL+27 TRANSFER ACTUAL PARAMETERS * * * ******************* * * OUTPUT CONSTANT * * ******************* * OC00 NOP OUTPUT INT,REA,LOG,CPX, OR DBL LDA D0 CONSTANT. CMA,INA STA T0OC HOLDS NEG. OF NO. WORDS IN CONS. LDA IDIB 1ST LOC OF IDI STA T1OC HOLDS ADDR.OF NEXT WORD TO OUT. OC01 LDA T1OC,I LOAD PART OF CONSTANT TO BE OUT. JSB OAD00 OUTPUT WORD ISZ T1OC ADDRESS OF NEXT WORD TO OUTPUT ISZ T0OC NUMBER OF WORDS LEFT TO OUTPUT JMP OC01 IF > O, OUTPUT MORE WORDS. JMP OC00,I IF = O, DONE OUTPUTTING CONST. * T0OC BSS 1 T1OC BSS 1 IDIB DEF IDI * * * * * * * * * * ****************************************** * * GLOBAL VARIABLES,BUFFERS,AND CONSTANTS * * ****************************************** * * * * * DFL OCT 0 DELIMETER FLAG--SET(=1) IF TC A DELIMETER LSTP BSS 1 LAST OPERATION FLAG NFL OCT 0 NUMERIC FLAG (0 IF TC IS A DIGIT) R BSS 1 OBJECT CODE RECORD TYPE * INT OCT 10000 IM=1 INTEGER REA OCT 20000 IM=2 REAL LOG OCT 30000 IM=3 LOGICAL TWPE OCT 40000 IM=4, TWO-WORD PSEUDO ENTRY DBL OCT 60000  IM=6 DOUBLE * SUB OCT 200 IU=1 (SUBROUTINE) VAR OCT 400 IU=2 (VARIABLE OR CONSTANT) ARR OCT 600 IU=3 (ARRAY) * REL OCT 1000 AT=1 (RELATIVE LOC WITHIN PROG) DUM OCT 5000 AT=5 (RELATIVE WITHIN DUMMY LOC) * * * * ********************* * * DECIMAL CONSTANTS * * ********************* K3 DEC 3 K4 DEC 4 K7 DEC 7 K8 DEC 8 K32 DEC 32 K47 DEC 47 * KM1 DEC -1 * * * NOTE: THE FOLLOWING MUCT BE IN ORDER: * .INT., .REA., .LOG., NOP, .CPX., .DBL., .ADD. * * .INT. OCT -1000 TEMP CELL LOC FOR INTEGER .REA. OCT -2000 TEMP CELL LOC FOR REAL .LOG. OCT -3000 TEMP CELL LOC FOR LOGICAL NOP .CPX. OCT -5000 TEMP CELL LOC FOR COMPLEX .DBL. OCT -6000 TEMP CELL LOC FOR DOUBLE .ADD. OCT -7000 TEMP CELL FOR ARRAY ADDRESS * * * SFG OCT 0 SOURCE FLAG KM50 DEC -50 KM59 DEC -59 TKN BSS 1 TRACK NO. * * *************** * * OUTPUT WORD * * *************** * INPUT: (A)=WORD TO BE OUTPUT * (B)=2ND WORD IF MR * R =RELOCATION INDICATOR IN HIGH ORDER * SFG=SOURCE FLAG (1=SOURCE, 0=DATA) OW00 NOP STA T0OW SAVE (A) STB T1OW SAVE (B) LDA R CPA R011 IS THIS TERMINATING SOURCE RECO? JMP OW40 YES CPA R001 IS THIS A NEW LOAD LOC ? JMP OW30 YES OW02 LDA PBPT PBUF WORD PTR ADA KM50 SSA,RSS PBPT .LT. 50 JMP OW10 OW04 LDA NWR NO. OF WORDS IN RECORD SZA JMP OW32 OLD RECORD LDA SFG SOURCE ? SZA JMP OW34 YES LDA KM59 -59 ADA PBPT PBUF WORD PTR SSA DOES THIS SECTOR STILL HAVE ROOM? JMP OW14 YES OW06 CLA LDB PBPT ADB OWK1 (B)=A(PBUF)+PBPT STA B,I STORE END OF SECTOR MARK OW07 JSB STS00 SAVE TRACK & SECTOR # JSB OS00 OUTPUT SECTOR LDA SFG SOURCE? SZA JMP OW35 YES JMP OW14 NO OW10 LDA ISECN INCREMENT TO SECTOR NO. INA CPA SECN NO. OF SECTORS PER TRACK RSS YES, LAST SECTOR OF TRACK JMP OW04 NO JSB STS00 SAVE TRACK & SECTOR #S. JSB ATK0.,I ALLOCATE A TRACK STA PBF61,I LDA SECN # OF SECTORS PER TRACK STA PBF62,I LDA DISC LOGICAL UNIT # STA PBF63,I CLA LDB PBPT ADB OWK1 'DEF PBUF' STA B,I JSB OS00 OUTPUT SECTOR STA ISECN ISECN=0 JMP OW07+2 PBF61 DEF PBUF+61 PBF62 DEF PBUF+62 PBF63 DEF PBUF+63 ATK0. DEF ATK00 OW14 CLA,INA STA NWR NWR=1 LDB PBPT PBUF WORD POINTER STB RLPT RECORD LENGTH POINTER INB ADB OWK1 LDA LLO LOAD LOCATION STA B,I PBUF(PBPT+1)=LLO INB LDA ADON ADD-ON STA B,I PBUF(PBPT+2)=ADON LDA PBPT ADA K3 STA PBPT PBPT=PBPT+3 ADA OWK1 STA RPTR RECORD R1,R2,R3,R4,R5 LOCATION CLA STA RNO R NUMBER ISZ PBPT PBPT=PBPT+1 LDA NWR ADA K3 STA NWR NWR=NWR+3 LDA R CPA R001 RECORD TYPE=NEW LOAD LOCATION? OWEX JMP OW00,I YES, EXIT OW16 LDA RNO RECORD NO. ALS ADA RNO (A)=3*RNO LDB R RECORD TYPE CMA,INA STA T4OW T4=-(NO. OF SHIFTS OF R) SZA,RSS JMP OW19 OW18 EQU * * * LOGICAL SHIFT (B,A) RIGHT 1 (LSR 1 ) * CLE,ERB ERA ISZ T4OW SHIFT COMPLETE ? JMP OW18 NO OW19 BSS 0 LDA RNO ADA OWK2 LDA A,I (A)=RMTB(RNO) AND RPTR,I IOR B (B)=SHIFTED R STA RPTR,I ISZ RNO RNO=RNO+1 LDA .KM5 (A)=-5 ADA RNO SSA JMP OW36 RNO .LT. 5 CLA STA RNO RNO=0 LDB OWK1 ADB PBPT LDA T0OW STA B,I PBUF(PBPT)=ENTRY (A) ISZ PBPT PBPT=PBPT+1 LDA R CPA R101 MEMORY REFERENCE ? JMP OW28 YES OW20 ISZ NWR LDA PBPT ADA OWK1 STA RPTR RECORD R1R2R3R4R5 LOCATION CLB STB A,I (RPTR)=0 ISZ PBPT PBPT=PBPT+1 LDA PBPT CMA,INA ADA K58 SSA JMP OW44 PBPT .GT. 58 ISZ NWR NWR=NWR+1 OW22 ISZ RPL RPL=RPL+1 LDA RPL SSA JMP RPLOV RPL OVERFLOW ISZ ADON ADON=ADON+1 OW24 LDA KM64 ADA PBPT PBUF WORD PTR SSA JMP OWEX PBPT .LT. 64 JSB STS00 SAVE TRACK & SECTOR # JSB OS00 OUTPUT SECTOR JMP OWEX EXIT .KM5 DEC -5 K58 DEC 58 B72 EQU K58 OW28 INB LDA T1OW STA B,I STORE ENTRY (B) ISZ PBPT PBPT=PBPT+1 ISZ NWR NWR=NWR+1 JMP OW20 OW30 LDA T0OW STA LLO NEW LOAD LOCATION CLA STA ADON ADON=0 CPA NWR # OF WORDS IN PREVIOUS RECORD JMP OW02 LDA RNO # OF R'S SZA JMP OW31 CCA ADA NWR STA NWR NWR=NWR-1 CCA ADA PBPT STA PBPT PBPT=PBPT-1 OW31 EQU * JSB SNW00 STORE # OF WORDS IN RECORD JMP OW02 OW32 LDA SFG SOURCE INFORMATION? SZA JMP OW36 YES LDA PBPT PBUF WORD PTR CPA K.63 =63 ? RSS JMP OW16 LDA R CPA R101 MEMORY REFENCE? JMP OW06 JMP OW16 NO K.63 DEC 63 KK31 OCT 100001 ADON BSS 1 ADD-ON TO LOAD LOCATION KM62 DEC -62 KM64 DEC -64 OW34 LDA KM62 ADA PBPT PBUF WORD PTR SSA,RSS JMP OW06 PBPT .GE. 62 OW35 EQU * LDA KK31 =B100001 STA NWR NO. OF SOURCE WORDS IN RECORD LDA PBPT STA RLPT SAVE LOC. FOR STORING NWR ISZ PBPT PBPT=PBPT+1 OW36 LDB OWK1 ADB PBPT LDA T0OW ENTRY (A) STA B,I PBUF(PBPT)=T0 ISZ PBPT PBPT=PBPT+1 ISZ NWR NWR=NWR+1 LDA SFG SOURCE INFORMATION ? SZA NO JMP OW24 YES LDA R CPA R101 MEMORY REFERENCE ? CLA,RSS JMP OW22 STA R R=0 LDA T1OW STA T0OW T0=T1 JMP OW36 OW40 JSB SNW00 STORE # WDS IN CURRENT SOURCE R JMP OW24 OW44 LDA K.64 (A)=64 STA PBPT JMP OW22 K.64 DEC 64 * * ******************************* * * SAVE TRACK & SECTOR NUMBERS * * ******************************* STS00 NOP LDA TKN TRACK NO. STA T2OW LDA ISECN INCREMENT TO SECTOR NO. STA T3OW CLA JMP STS00,I * T0OW BSS 1 SAVE ENTRY (A) T1OW BSS 1 SAVE ENTRY (B) T2OW BSS 1 SAVE TRACK NO. T3OW BSS 1 SAVE SECTOR NO. T4OW BSS 1 -(NO. OF SHIFTS OF R) OWK2 DEF RMTB LOC. OF R-MASK TABLE RPTR BSS 1 RECORD R1R2R3R4R5 LOCATION LLO BSS 1 LOAD LOCATION ICK1. DEF ICK1 NWRD. DEF NWRDS -(# OF CROSS REF WDS LEFT) * * * ***************** * * OUTPUT SECTOR * * ***************** * INPUT: T2=TRACK NO. * T3=SECTOR NO. OS00 NOP LDA SFG SOURCE ? SZA,RSS YES JMP OS05 NO CCA CPA ICK1.,I -(# OF SOURCE WDS REM. BE OUTPT) JMP OS03 YES, THE LAST ONE CPA NWRD.,I -(# OF CROSS REF WDS LEFT) JMP OS03 YES, THE LAST ONE. LDA NWR SZA,RSS JMP OS03 IOR R010 STA NWR OS03 EQU * JSB SNW00 STORE # WDS IN CURRENT RECORD OS04 EQU * LDA DISC LOG. UNIT # ADA B500 STA CONWD JSB EXEC DEF *+7 DEF K2 DEF CONWD OWK1 DEF PBUF LOC. OF OUTPUT BUFFER TO DISC. DEF K64 BUFFER LENGTH DEF T2OW TRACK # DEF T3OW SECTOR # CLA STA PBPT PBPT=0 ISZ ISECN ISECN=ISECN+1 JMP OS00,I EXIT OS05 CPA NWR (A)=0 JMP OS04 NWR=0 JMP OS03 * B500 OCT 500 CONWD OCT 502 WRITE TO DISC IN BINARY * * * * *************************** * * STORE # WORDS IN RECORD * * *************************** SNW00 NOP LDB RLPT RECORD LENGTH PTR ADB OWK1 A(PBUF) LDA NWR NO. OF WORDS IN RECORD STA B,I PBUF(RLPT)=NWR AND B377 ADA RLPT STA RLPT CLA STA NWR NWR=0 STA RNO RNO=0 JMP SNW00,I EXIT * * * * * * ********************* * * PRINT SOURCE LINE * * ********************* * ENTRY: (A)=BUFFER LOCATION (FOR TTY) ((A)=(A)-1 OTHERWISE) * (B)=NO. OF WORDS TO BE PRINTED (FOR TTY) (ELSE ISZ (B)) PSL00 NOP ISZ T2PSL IF T2PSL=-1, SKIP TO TOP OF PAGE JMP PSL03 OTHERWISE, CONTINUE. STA T3PSL SAVE A AND B STB T4PSL REGISTERS. LDA PSL00 SAVE THIS ROUTINE'S STA T1PSL RETURN ADDRESS JSB EJCT.,I GO TO TOP, PRINT HEADERS. LDA T1PSL RESTORE THIS ROUTINE'S STA PSL00 RETURN ADDRESS. LDA T3PSL RESTORE A AND B LDB T4PSL REGISTERS. * PSL03 STB PBFL STORE NO. OF WORDS TO BE PRINTED. LDB LUNLD LOG. UNIT # OF LIST DEVICE SZB,RSS JMP PSL01 TTY OUTPUT ISZ PBFL INCREMENT # WDS BE PRINTED BY 1 ADA KM1 (A)=(A)-1 (PRINT LOC FOR PRINTER) LDB KK06 2 BLANKS STB A,I PSL01 STA PSL04 STORE BUFF LOC INTO EXEC CALL LDA FPRIN IS FORCE-PRINT FgLAG SET ? SZA,RSS YES, PRINT IT OUT JMP PSL05 NO PSL02 JSB EXEC DEF *+5 DEF K2 REQUEST CODE=PRINT DEF LULID PRINT AND WAIT UNTIL FINISHED. PSL04 NOP BUFFER LOCATION DEF PBFL BUFFER LENGTH ISZ NLINE # OF LINES REMAINED IN PAGE JMP PSLEX EXIT CCA SET T2PSL=-1 AS FLAG TO CAUSE STA T2PSL PAGE EJECT FOR NEXT PRINT LINE. PSLEX JMP PSL00,I EXIT EJCT. DEF EJECT T1PSL NOP TO SAVE RETURN LOC. T2PSL NOP MUST BE 0 AT START OF COMPILE. T3PSL NOP T4PSL NOP * * PBFL NOP # OF WDS TO BE PRINTED * * PSL05 LDA FTNF.,I 'FTN' FLAG SET ? SZA JMP PSL02 TO PRINT OUT 'FTN' CARDS LDA .CCW. FTN CONTROL WORD SLA JMP PSL02 .CCW.(L)=1, PRINT IT OUT ANYWAY JMP PSLEX FORGET IT, EXIT * FTNF. DEF FTNF .EOFF DEF EOFF * * * * ********************** * * CATASTROPHIC ERROR * * ********************** * TO PRINT ERROR MESSAGE & SCAN NEXT STATEMENT * INPUT: (A)=ERROR TYPE ER00 NOP STA ERTYP (A)=ERROR TYPE CPA K3 DATA POOL OVERFLOW ? JMP .EOFF,I YES, TO TERMINATE JOB CLB LDA CC ADA KM74 CC .LT. 74 ? SSA NO JMP ER05 YES STB CC SET CC=0 INB STB FPRIN SET FORCE-PRINT FLAG LDB LPAR ( LOC OF GROUP CMB LDA E CMA,INA ADA RPAR SSA (A)=RPAR-E JMP ER09 BEYOND LAST GROUP ADB RPAR ) LOC OF GROUP ER08 EQU * STB MCNT =-(LPAR-RPAR+1) CMB,INB STB NWEQG =LPAR-RPAR+1 ADB KM40 SSB JMP *+5 LDA KM40 STA MCNT CMA,INA STA NWEQG CUT THE GROUP LENGTH TO 40 WORDS LDB LPAR '(' LOC OF GROUP LDA .CI.B LOC OF CI STA MTOCI INITIALIZE MOVE TO LOCATIO2XN ER01 LDA B,I STA MTOCI,I ISZ MTOCI NEXT MOVE-TO LOC ADB KM1 NEXT MOVE-FROM LOC ISZ MCNT ALL DONE? JMP ER01 NOT YET LDB NWEQG # OF WORDS IN GROUP LDA .CI.B LOC OF GROUP JSB PSL00 PRINT OUT GROUP ER05 EQU * LDA ERTYP (A)=ERROR TYPE CPA K.84 RPL OVERFLOW ? JMP .EOFF,I YES, TO TERMINATE JOB JSB ERCM PRINT OUT ERROR COMMENT LDA CC FROM EQUIVALENCE GROUP SZA YES JMP ER02 STA I.NEQ,I NEQUG=0 CCB STB EQUF EQUF=-1 STB EQVER SET EQUIV GROUP ERROR FLAG CLB,INB STB CC LDA B15 C/R STA TC ER02 LDA TC CPA B15 C/R JMP ER06 END OF STATEMENT REACHED JSB ICH00 INPUT CHAR. JMP ER02 SCAN TO END OF CURRENT STATEMENT ER06 CLA STA LIFF RESET LOG IF FLAG STA OPF RESET OUTPUT PACK FLAG STA FPRIN RESET FORCE-PRINT FLAG STA SAVEL CLEAR SAVE L STA T T=0 (NO. OF WORDS ON STACK 1) STA L L=0 (NO. OF WORDS ON STACK 2) LDA DO STA D D=DO TO DELETE CURRENT DO TABLE LDA STK2B RESTORE POINTER TO STACK 2 TOP STA STK2T LDA EQVER SZA,RSS JMP CRTST TO C/R TEST & STERM CLA,INA STA CC CC=1 LDA CRD1. STA CRDPT JSB MCI.0,I MOVE 1ST CARD TO CI JMP STI.N,I TO STINP ER09 ADB E JMP ER08 * * NWEQG NOP # OF WORDS IN EQUIV GROUP MTOCI NOP MOVE TO CI BUFFER POINTER EQVER NOP EQUIV GROUP ERROR FLAG STI.N DEF STINP I.NEQ DEF NEQUG K.84 DEC 84 ERTYP NOP ERROR TYPE KM74 DEC -74 CRD1. DEF SCBUF * * * ***************** * * ERROR COMMENT * * ***************** * TO PRINT ERROR COMMENT & CONTINUE SCANNING CURRENT SOURCE * INPUT: (A)=ERROR  TYPE * CC=THE # OF THE COLUMN JUST BEYOND WHERE * THE ERROR WAS DETECTED. * ERCM NOP ISZ ERF SET ERROR FLAG NOP STA PSL00 SAVE ERROR TYPE LDA PSL00 (A)=ERROR TYPE JSB PD00 PACK DIGITS STA ERBF+9 ERROR TYPE STA LSTP SET LAST OPERATION FLAG STA FPRIN SET FORCE-PRINT FLAG LDB CC CPB K...1 CLA,RSS CCA ADA CC (A)=CC-1 SSA CLA LDB CC CPB K...1 JMP ERCM8 ERROR OCCURRED IN COL.1 ERCM1 EQU * JSB PD00 PACK DIGITS STA ERBF+21 ERROR COLUMN LDA CC SZA,RSS JMP ERCM3 LDA .CI.I CARD IMAGE BUFFER LDB NWICI NO. OF WORDS IN CURRENT CARD JSB PSL00 PRINT IT OUT ERCM3 EQU * LDA ECC1F IS ERR ON CC=1 SET? SZA NO JSB MCI.0,I YES, MOVE CARD AT CRDPT TO CI LDA ERCK1 LOC. OF ERROR MESSAGE BUFFER LDB K..22 22 WORDS OO BE PRINTED JSB PSL00 PRINT ERROR MESSAGE CLA STA ECC1F RESET ERR ON CC=1 FLAG STA FPRIN RESET FORCE-PRINT FLAG JMP ERCM,I EXIT K...1 DEC 1 K..22 DEC 22 K.31 DEC 31 * ERCM8 LDB PSL00 ERROR TYPE CPB K.31 ST. # STARTS WITH NON-DIGIT JMP ERCM1 LDA CRDPT CURRENT CARD PTR CPA CRD2 JMP ERCM9 ADA KM82 STA ECC1F SET ERR ON CC=1 FLAG STA CRDPT CRDPT=CRDPT-82 JSB MCI.0,I MOVE CARD AT CRDPT TO CI LDA NWICI # OF WDS IN CARD IMAGE ALS (A)=(A)*2 JMP ERCM1 ERCM9 LDA ASC72 STA ERBF+21 JMP ERCM3 NO, CARD ALREADY PRINTED * ASC72 ASC 1,72 CRD2 DEF SCBUF+41 KM82 DEC -82 .CI.I DEF CI MCI.0 DEF MCI00 ECC1F NOP ERROR ON CC=1 FLAG ERCK1 DEF ERBF LOC. OF ERROR MESSAGE KK06 ASC 1, TWO BLANKS ERBF ASC 5,** ** ASC 17, ERROR DETECTED AT COLUMN 6 * * * * KM10 DEC -10 * * * *************** * * PACK DIGITS * * *************** * ENTRY: (A)=TWO DIGIT DECIMAL NUMBER BINARIZED * EXIT: (A)=ASCII EQUIVALENT OF ENTRY (A) PD00 NOP CLB PD02 ADA KM10 (A)=(A)-10 SSA JMP PD04 ISZ B (B)=(B)+1 JMP PD02 PD04 ADA B72 (A)=UNIT DIGIT IN ASCII ADB B.60. (B)=TEN'S DIGIT IN ASCII BLF,BLF IOR B (A)=TEN'S DIGIT MERGED WITH UNITS DIGIT JMP PD00,I EXIT B.60. OCT 60 * * * * * * * ******************* * * OCTAL CONSTANTS * * ******************* B2 EQU K2 B3 EQU K3 B4 EQU K4 B7 EQU K7 B10 EQU K8 B15 EQU K13 B40 EQU K32 B57 EQU K47 B200 EQU SUB =B200 B377 OCT 377 * BM1 EQU KM1 BM2 EQU KM2 * * * * * * * * * ***************************************** * * OBJECT CODE RECORD TYPE FROM 1ST PASS * * ***************************************** R000 EQU KK00 ABSOLUTE DATA R001 EQU REA LOAD LOC. INDICATOR R011 EQU DBL TERMINATE SOURCE RECORD * * * * * * ************************************* * * NON-MEMORY REFERENCE INSTRUCTIONS * * ************************************* KK01 OCT 100000 DEF A,I * * * * * * * * ******************* * * INITIALIZE TO 0 * * ******************* .AT. OCT 0 SUBSCRIPT INFORMATION FLAG DTAFG NOP 0=NO 'DATA', ELSE 'DATA' EXISTS EEIN NOP = 1 IF EE SEGMENT IN CORE. ERF OCT 0 ERROR FLAG (# OF TIMES ER00 CALLED) FPRIN NOP FORCE-PRINT FLAG(.NE.0 TO FORCP) IFF BSS 1 IF FLAG ISECN OCT 0 INCREMENT TO SECTOR NO. LJMP NOP JUMP LOCATION MFL BSS 1 MODE FLAG NWR BSS 1 NO. OF WORDS IN RECORD OPF OCT 0 OUTPUT PACK FLAG PBPT BSS 1 , PBUF WORD POINTER RLPT OCT 0 RECORD LENGTH POINTER RNO BSS 1 R NUMBER RPL BSS 1 RELATIVE PROGRAM LOCATION SFF BSS 1 SUBROUTINE/FUNCTION FLAG (SET IF * A FUNCTION) SPF OCT 0 SPECIFICATION FLAG (SET TO * CURRENT STATEMENT LEVEL) STRF NOP STRING BACK LOCATION * * * * * * * * * * * * * * * EFTN4 EQU * END OF FTN4 C EQU EFTN4 START LOCATION OF SEGMENT * BSS 25 IN SEGMENT .CCW. EQU C COMPILER CONTROL WORD DP EQU C+1 DATA POOL START LOCATION .DP EQU C+2 FIX EXTERNAL LO EQU C+3 END OF ASSIGNMENT TABLE +1 LUIND EQU C+4 LOGICAL UNIT OF INPUT DEVICE LULID EQU C+5 LOGICAL UNIT OF LIST DEVICE LUPUD EQU C+6 LOGICAL UNIT OF PUNCH DEVICE LINEP EQU C+7 LINES PER PAGE ON LISTING LOGO EQU C+8 LOAD & GO FLAG (NON-0 MEANS L&G) LUNLD EQU C+9 LOG. UNIT # OF LIST DEV (0=TTY) STKNO EQU C+10 STARTING TRACK NUMBER LTKNO EQU C+11 LAST TRACK NUMBER USED LUN1T EQU C+12 LOGICAL UNIT NUMBER OF 1ST TRACK NSECT EQU C+13 NO. OF SECTORS IN EACH COMP TRCK DISC EQU C+14 DISC LOG UNIT # OF LAST TRACK SECN EQU C+15 # OF SECTOR/TRACK OF LAST TRACK SBF EQU C+16 SUBPR FLAG(0=MAIN,ELSE SUBPROG.) L EQU C+17 NUMBER OF WORDS ON STACK 2 SXF EQU C+18 COMPLEX CONSTANT FLAG T EQU C+19 NO. WORDS ON STACK 1 TYPF EQU C+20 TYPE STATEMENT FLAG NLINE EQU C+21 -(# LINES REMAINED IN PAGE) CSIZE EQU C+22 COMMON SIZE MCNT EQU C+23 -(# WDS REMAINED TO BE MOVED) T4IOL EQU C+24 * * ******************** * * .EXTERNAL TABLE * * ******************** .TBL EQU C+25 * BSS 51 IN SEGMENTS COMEN EQU .TBL+51 LOCATION OF END OF COMMON AREA * CMN EQU .TBL+51 * BSS 99 IN SEGMENTS .A EQU CMN+0 ASSIGNMENT TABLE POINTER ACC EQU CM/N+1 ACCUMULATOR .AF EQU CMN+2 BADDR EQU CMN+3 CC EQU CMN+4 CARD COLUMN COUNTER--SOURCE LINE COLUMN POINTER D EQU CMN+5 DO TABLE POINTER(LOC OF LAST DO) IDI EQU CMN+7 BSS 4ID FIELD CONTAINING THE CONSTANTS IM EQU CMN+11 ITEM MODE IU EQU CMN+12 ITEM USAGE NC EQU CMN+13 NAME CHANGE FLAG NID EQU CMN+14 BSS 6 NAME ID FIELD ND EQU CMN+20 NUMBER OF DIMENSIONS NT EQU CMN+21 NAME TAG RESLT EQU CMN+22 RETLO EQU CMN+23 SUBPROGRAM OR FUNCTION RETURN LOCATION S1LOC EQU CMN+24 SAVEL EQU CMN+25 NO. WORDS ON STK2 ON ENTRY TO EE SRPL EQU CMN+26 SAVE RPL AT BEGINNING OF RECORD STK1B EQU CMN+27 BEGIN ADDR OF OPERAND STACK STK1N EQU CMN+28 POINTER TO NEXT TO TOP STK1 ENT. STK1T EQU CMN+29 END ADDR OF OPERAND STACK STK2B EQU CMN+30 BEGIN ADDR OF OPERATOR STACK STK2T EQU CMN+31 END ADDR OF OPERATOR STACK TACC EQU CMN+32 TYPE OF ACCUMULATOR (IM=1,2,3) TC EQU CMN+33 TERMINATING CHARACTER TYPEX EQU CMN+34 TYPE OF INPUT EXP. TO EXP. EVAL. * * NOTE-- X1,X2,AND X3 MUST BE IN ORDER X1 EQU CMN+35 ASSIGN TABLE POINTER FOR D1 . X2 EQU CMN+36 ASSIGN TABLE POINTER FOR D2 . X3 EQU CMN+37 ASSIGN TABLE POINTER FOR D3 . NTYPE EQU CMN+38 TTYPE EQU CMN+39 .R EQU CMN+40 HOLDS R(.A) 'JSB ERR0' FLAG NW EQU CMN+41 # OF WORDS IN ASSIGNMENT ENTRY AF EQU CMN+42 ADDRESS FIELD AT EQU CMN+43 ADDRESS TYPE NEQUG EQU CMN+44 # OF EQUIVALENCE GROUPS ARGF EQU CMN+47 NO. OF ARGUMENTS IN A SUBPROGRAM LPAR EQU CMN+48 ( LOC. OF GROUP RPAR EQU CMN+49 ) LOC. OF GROUP LSTF EQU CMN+50 LAST STATEMENT FLAG SPSW EQU CMN+51 STATEMENT PROCESSOR SWITCH (SET * TO CURRENT STATEMENT PROCESSOR S.LOC) D0 EQU CMN+52 NO. WORDS PER ENTRY (BASED ON IM) * NOTE-- D1,D2,AND D3 MUST BE IN ORDER D1 EQU CMN+53 DIMENSION 1 D2 EQU CMN+54 DIMENSION 2 D3 EQU CMN+55 DIMENSION 3 EQUF EQU CMN+56 9XVR EQUIVALENCE FLAG (NEG. IF NOT PROCESSING EQUIV) E EQU CMN+58 EQUIVALENCE TABLE POINTER .PACK EQU CMN+59 FIRST 2 CHARS IN HOLLERITH STRING CLSW EQU CMN+60 COLUMN LIMIT SWITCH (DON'T READ NEW CRD IF SET) DO EQU CMN+61 POINTER TO START OF DO TABLE * HEADL EQU CMN+67 CMN+63 TO CMN+97 (PAGE HEADER) * * PAGE HEADER LINE * * * 1. FOUR WORDS OF BLANKS (CMN+63-66) * 2. TEN WORDS OF PROGRAM INFORMATION (CMN+67-76) * 3. TWELVE WORDS OF FIXED COMPILER INFORMATION (CMN+77-88) * 4. EIGHT WORDS OF VARIABLE COMPILER INFORMATION (CMN+89-96) * 5. ONE WORD OF BLANKS FOR TTY 2ND PASS LOGIC (CMN+97) * * * ASC 4, * ASC 10, PAGE 0001 * ASC 12, (FTN4--RELEASE 24177 * ASC 8,B--MARCH, 1971) * SEE NOTE BELOW * ASC 1, * * * THE 8 WORD ASCII STRING ABOVE IS CHANGED WITH EACH COMPILER * RELEASE. THE MONTH MUST ALWAYS BE HELD TO 6 CHARACTERS OR * LESS. THE STRING MUST ALWAYS BE 8 WORDS LONG. * * PGNUM EQU CMN+98 * * * * * * ****************** * * 21 CARD BUFFER * * ****************** * EACH CARD BUFFER CONSISTS OF 41 WORDS, * THE 1ST 40 WORDS CONTAIN THE CARD IMAGE, * AND THE 41ST WORD CONTAINS THE # OF WORDS * IN THE CARD * SCBUF EQU C+3542B END OF F4.0 AND F4.1 * FEDP EQU SCBUF+861 (41*21=861) * DPOOL EQU FEDP+320B DATA POOL BASE LOC. * * D.BLE EQU FEDP+5 C.PLX EQU FEDP+105B F.LOT EQU FEDP+221B S.NGL EQU FEDP+232B R.EAL EQU FEDP+236B E.RR0 EQU FEDP+242B E.XEC EQU FEDP+246B C.RIO EQU FEDP+252B I.FIX EQU FEDP+307B * * * END FTN4 SqXASMB,R,L,C NAM F4.0,5 SPECIFICATION STATEMENTS * * * ENT COMPR ENT CPXPR ENT DATAP ENT DBLPR ENT DIMPR EXT EEIN ENT ENDLT ENT EQUPR ENT EXTPR ENT FUNPR ENT INTPR ENT LOGPR ENT NEXTL ENT PROG ENT RCOM ENT REAPR ENT SUBPR * * EXT .AT. EXT .INT. EXT AA00 EXT AI00 EXT CILN EXT CLNM EXT CR00 EXT CRTST EXT DAF00 EXT DAT00 EXT DCEFG EXT DIM00 EXT DIU00 EXT DPOVF EXT DTAFG EXT DUMCK EXT EFG EXT EOFF EXT ER00 EXT ERCM EXT ERF EXT ESC00 EXT EXEC EXT EXN00 EXT EXTF EXT FA00 EXT FER00 EXT FNS02 EXT GNA00 EXT GPE00 EXT ICH00 EXT IDL00 EXT IDN00 EXT IDNID EXT IIV00 EXT INM00 EXT INTST EXT ISY00 EXT MAIN EXT MFL EXT MPN00 EXT MPY EXT NSUBT EXT NWI00 EXT OC00 EXT OLR00 EXT OMR00 EXT OPF EXT OZ00 EXT PBUF EXT RP00 EXT RPL EXT SCC00 EXT SFF EXT SLF EXT SOA00 EXT SPF EXT SSB00 EXT STRF. EXT T0SV EXT T1II EXT TCTST EXT TP00 EXT TS00 EXT TV00 EXT UC00 * * A EQU 0 A-REGISTER B EQU 1 B-REGISTER * * C EQU * BSS 25 .CCW. EQU C COMPILER CONTROL WORD DP EQU C+1 DATA POOL START LOCATION .DP EQU C+2 FIX EXTERNAL LO EQU C+3 END OF ASSIGNMENT TABLE +1 LUIND EQU C+4 LOGICAL UNIT OF INPUT DEVICE LULID EQU C+5 LOGICAL UNIT OF LIST DEVICE LUPUD EQU C+6 LOGICAL UNIT OF PUNCH DEVICE LINEP EQU C+7 LINES PER PAGE ON LISTING LOGO EQU C+8 LOAD & GO FLAG (NON-0 MEANS L&G) LUNLD EQ\4U C+9 LOG. UNIT # OF LIST DEV (0=TTY) STKNO EQU C+10 STARTING TRACK NUMBER LTKNO EQU C+11 LAST TRACK NUMBER USED LUN1T EQU C+12 LOGICAL UNIT NUMBER OF 1ST TRACK NSECT EQU C+13 NO. OF SECTORS IN EACH COMP TRCK DISC EQU C+14 DISC LOG UNIT # OF LAST TRACK SECN EQU C+15 # OF SECTOR/TRACK OF LAST TRACK SBF EQU C+16 SUBPR FLAG(0=MAIN,ELSE SUBPROG.) L EQU C+17 NUMBER OF WORDS ON STACK 2 SXF EQU C+18 COMPLEX CONSTANT FLAG T EQU C+19 NO. WORDS ON STACK 1 TYPF EQU C+20 TYPE STATEMENT FLAG NLINE EQU C+21 -(# LINES REMAINED IN PAGE) CSIZE EQU C+22 COMMON SIZE MCNT EQU C+23 -(# WDS REMAINED TO BE MOVED) T4IOL EQU C+24 * * ******************* * * .EXTERNAL TABLE * * ******************* * .TBL EQU C+25 BSS 51 COMEN EQU .TBL+51 LOCATION OF END OF COMMON AREA * CMN EQU .TBL+51 BSS 63 .A EQU CMN+0 ASSIGNMENT TABLE POINTER ACC EQU CMN+1 ACCUMULATOR .AF EQU CMN+2 BADDR EQU CMN+3 CC EQU CMN+4 CARD COLUMN COUNTER--SOURCE LINE COLUMN POINTER D EQU CMN+5 DO TABLE POINTER(LOC OF LAST DO) IDI EQU CMN+7 BSS 4ID FIELD CONTAINING THE CONSTANTS IM EQU CMN+11 ITEM MODE IU EQU CMN+12 ITEM USAGE NC EQU CMN+13 NAME CHANGE FLAG NID EQU CMN+14 BSS 6 NAME ID FIELD ND EQU CMN+20 NUMBER OF DIMENSIONS NT EQU CMN+21 NAME TAG RESLT EQU CMN+22 RETLO EQU CMN+23 SUBPROGRAM OR FUNCTION RETURN LOCATION S1LOC EQU CMN+24 SAVEL EQU CMN+25 NO. WORDS ON STK2 ON ENTRY TO EE SRPL EQU CMN+26 SAVE RPL AT BEGINNING OF RECORD STK1B EQU CMN+27 BEGIN ADDR OF OPERAND STACK STK1N EQU CMN+28 POINTER TO NEXT TO TOP STK1 ENT. STK1T EQU CMN+29 END ADDR OF OPERAND STACK STK2B EQU CMN+30 BEGIN ADDR OF OPERATOR STACK STK2T EQU CMN+31 END ADDR OF OPERATOR STACK TACC EQU CMN+32 TYPE OF ACCUMULATOR (IM=1,2,3) TC EQU CMN+33 TERMINATING CHARACTER 1mTYPEX EQU CMN+34 TYPE OF INPUT EXP. TO EXP. EVAL. * * NOTE-- X1,X2,AND X3 MUST BE IN ORDER X1 EQU CMN+35 ASSIGN TABLE POINTER FOR D1 . X2 EQU CMN+36 ASSIGN TABLE POINTER FOR D2 . X3 EQU CMN+37 ASSIGN TABLE POINTER FOR D3 . NTYPE EQU CMN+38 TTYPE EQU CMN+39 .R EQU CMN+40 HOLDS R(.A) 'JSB ERR0' FLAG NW EQU CMN+41 # OF WORDS IN ASSIGNMENT ENTRY AF EQU CMN+42 ADDRESS FIELD AT EQU CMN+43 ADDRESS TYPE NEQUG EQU CMN+44 # OF EQUIVALENCE GROUPS ARGF EQU CMN+47 NO. OF ARGUMENTS IN A SUBPROGRAM LPAR EQU CMN+48 ( LOC. OF GROUP RPAR EQU CMN+49 ) LOC. OF GROUP LSTF EQU CMN+50 LAST STATEMENT FLAG SPSW EQU CMN+51 STATEMENT PROCESSOR SWITCH (SET * TO CURRENT STATEMENT PROCESSOR S.LOC) D0 EQU CMN+52 NO. WORDS PER ENTRY (BASED ON IM) * NOTE-- D1,D2,AND D3 MUST BE IN ORDER D1 EQU CMN+53 DIMENSION 1 D2 EQU CMN+54 DIMENSION 2 D3 EQU CMN+55 DIMENSION 3 EQUF EQU CMN+56 EQUIVALENCE FLAG (NEG. IF NOT PROCESSING EQUIV) E EQU CMN+58 EQUIVALENCE TABLE POINTER .PACK EQU CMN+59 FIRST 2 CHARS IN HOLLERITH STRING CLSW EQU CMN+60 COLUMN LIMIT SWITCH (DON'T READ NEW CRD IF SET) DO EQU CMN+61 POINTER TO START OF DO TABLE * * * PAGE HEADER LINE * * 1. FOUR WORDS OF BLANKS (CMN+63-66) * 2. TEN WORDS OF PROGRAM INFORMATION (CMN+67-76) * 3. TWELVE WORDS OF FIXED COMPILER INFORMATION (CMN+77-88) * 4. EIGHT WORDS OF VARIABLE COMPILER INFORMATION (CMN+89-96) * 5. ONE WORD OF BLANKS FOR TTY 2ND PASS LOGIC (CMN+97) * * ASC 4, HEADL ASC 10, PAGE 0001 ASC 12, FTN4/XREF - VERSION ASC 8,1 - AUGUST, 1973 ASC 1, * * * THE 8 WORD ASCII STRING ABOVE IS CHANGED WITH EACH COMPILER * RELEASE. THE MONTH MUST ALWAYS BE HELD TO 6 CHARACTERS OR * LESS. THE STRING MUST ALWAYS BE 8 WORDS LONG. * PGNUM OCT 1 (CMN+82)= * * F4.0 EQU * * LDA PBADD ELA,CLE,ERA LDA A,I ADA K9 STA PROK1 ADA K8 STA T2PRO JMP MAIN * K8 DEC 8 K9 DEC 9 PBADD DEF PBUF PROK1 NOP T2PRO NOP * * *********************** * * DEFINE BASE ADDRESS * * *********************** * ENTRY: (A)=POINTER TO BASE ADDR. OF ARRAY * .A=PTR TO ARRAY NAME DBA00 NOP LDB .A INB LDB B,I ADB K2 STA B,I BADDR(.A)=(A) JMP DBA00,I EXIT * * ************** * * FETCH LINK * * ************** FL00 NOP LDB .A LDA B,I AND KK04 CPA ARR JMP FL04 IU(.A)=ARR FL02 INB LDA B,I STA NXL NXL=GF(B) JMP FL00,I EXIT FL04 INB LDB B,I (B)=GF(.A) JMP FL02 * NXL BSS 1 NEXT LINK LOCATION KK04 OCT 600 TO EXTRACT IU FIELD * * ************** * * LINK FIELD * * ************** LF00 NOP STA T1LF JSB FL00 FETCH LINK LDA T1LF STA B,I GF(B)=T1 LDA NXL (A)=NEXT LINK LOC JMP LF00,I EXIT T1LF BSS 1 * * ***************** * * , OR C/R TEST * * ***************** CCRT CLB LDA TC CPA B54 ',' JMP CCRT2 TC=, STB EXTF CLEAR EXTERNAL FLAG JMP CRTST C/R TEST CCRT2 STB LSTF LAST STATEMENT FLAG CLEARED TO 0 JMP SPSW,I RETURN TO APPROPRIATE PROCESSOR * B54 OCT 54 * * * * ****************** * * EXCHANGE LINKS * * ****************** * EXCHANGE AF(.A) & AF(F) EL00 NOP LDA .A STA T1EL JSB FL00.,I FETCH LINK LDB F STB .A JSB I.LF0,I LINK FIELD LDB T1EL STB .A JSB I.LF0,I LINK FIELD JMP EL00,I EXIT T1EL BSS 1 F BSS 1 OLD LINK I.LF0 DEF LF00 FL00. XDEF FL00 * * *********************************** * * NON-DUMMY & NON-SUBPROGRAM TEST * * *********************************** NDS00 NOP JSB NSUBT NON-SUBPROGRAM TEST JSB DUMCK DUMMY CHECK SZA JMP NDS00,I EXIT LDA K37 JSB ER00 ILLEGAL USE OF DUMMY VARIABLE K37 DEC 37 * * * ************ * * EXTERNAL * * ************ EXTPR CLA,INA STA EXTF SET EXT FLAG JSB INM00 INPUT NAME JSB TS00 TAG SUBPROGRAM JMP CCRT , OR C/R TEST * * * *********** * * INTEGER * * *********** INTPR LDA INT JMP TYP02 INT OCT 10000 IM=1, INTEGER * ******** * * REAL * * ******** REAPR LDA REA JMP TYP02 REA OCT 20000 IM=2, REAL * ******************** * * DOUBLE PRECISION * * ******************** DBLPR LDA DBL JMP TYP02 DBL OCT 60000 IM=6, DOUBLD PRECISION * *********** * * COMPLEX * * *********** CPXPR LDA KKCPX JMP TYP02 KKCPX OCT 50000 IM=CPX LOG OCT 30000 IM=3, LOGICAL * *********** * * LOGICAL * * *********** LOGPR LDA LOG TYP02 STA MFL MFL SET TO THE MODE TYPED LDA LSTF LAST STATEMENT FLAG SZA JMP TYP06 1ST STATEMENT OF PROGRAM CLA,INA STA TYF.I,I SET TYPE FLAG JSB FER00 NO, OUTPUT IT JSB INM00 INPUT NAME TYP03 EQU * LDA .A CPA SBF RSS JMP TYP05 TYPE NAME NOT SAME AS FUN/SUB LDA .A,I AND KK02. =B70000 CPA MFL JMP TYP05 RETYPE IM THE SAME LDA K83 JSB ERCM FUN/SUB NAME RETYPE DIFFERENTLY JMP TYP06-3 TYP05 EQU * LDA MFL JSB DIM00 DEFINE IM JSB FA00 FETCH ASSIGN LDB IU LDA VAR SZB,RSS JMP TYP09 TYP0a8 EQU * CLA STA TYF.I,I RESET TYPE FLAG JMP INDIM TO INPUT DIMENSION TYP06 EQU * JSB EXN00 STRIP OFF PRECEEDING BLANKS AND LDA CILN SAVE CURRENT LINE NUMBER. STA T1II JSB IDN00 INPUT DNA LDA TC CPA B117 'O' RSS JMP TYP07 NON-FUNCTION TYPE ISZ CC CC=CC+1 JMP FUNPR FUNCTION PROCESSOR TYP07 CLA,INA STA TYF.I,I SET TYPE FLAG LDA IM SZA JSB AI00 ASSIGN ITEM SZA JMP *+3 LDA K.17 JSB ER00 ILLEGAL OPERAND LDA .A STA TYP.A SAVE .A LDA K.18 LDB NT SZB,RSS JMP TYP10 JSB ERCM OPERAND NOT A NAME. RSS TYP10 JSB CR00 OUTPUT CROSS REF. PAIR. JSB FER00 OUTPUT NAM/ENT IF NEEDED LDA TYP.A STA .A RESTORE .A JMP TYP03 TYP09 LDB AT CPB STRAB JMP TYP08 JSB DIU0.,I SET IU=VAR/CON JMP TYP08 * VAR OCT 400 IU=2, VARIABLE OR CONSTANT STRAB OCT 2000 AT=2, STR-ABS - UNDEFINED TYP.A NOP SAVE .A KK02. OCT 70000 DIU0. DEF DIU00 TYF.I DEF TYPF K83 DEC 83 K.17 DEC 17 K.18 DEC 18 B117 OCT 117 'O' * * ******************* * * INPUT DIMENSION * * ******************* INDIM LDA TC CPA B50 '(' JMP DIM04 DIM02 LDA EXLF EXCHANGE LINK FLAG SET ? SZA,RSS JMP CCRT NO, TO ', OR C/R TEST' CLA STA EXLF RESET EXCHANGE LINK FLAG JSB EL00 EXCHANGE LINK JMP CCRT , OR C/R TEST EXLF NOP EXCHANGE LINK FLAG ARR OCT 600 IU=3, ARRAY * * ************* * * DIMENSION * * ************* DIMPR CLA,INA STA DCEFG SET DIM FLAG JSB INM00 INPUT NAME DIM04 JSB DUMCK DUMMY CHECK CLB SZA CCB STB T0DIM T0=0 IF DUMMY, ELSE =-1 @ LDA AF STA T1DIM T1=AF LDA F STA T2DIM T2=F, SAVE F LDA .A STA F F=.A JSB NSUBT NON-SUBPROGRAM TEAST LDA IU CPA ARR RSS JMP *+3 LDA K54 JSB ER00 ARRAY NAME DEFINED TWICE LDA K42 LDB TC CPB B50 '(' RSS JSB ER00 ARRAY WITHOUT DECLARATOR LDA T0DIM JSB ISP00 INPUT SUBSCRIPT LDA S1 .. STA IDI . LDA S2 . MOVE S-TABLE TO IDI STA IDI+1 . LDA S3 . STA IDI+2 .. LDA NS NO. OF SUBSCRIPTS RAR,RAR RAR,RAR (A)=NS*2**12 JSB ESC00 TO SET IM=NS LDA B6000 (A)=DIM STA .AT. SUBSCRIPT INFORMATION FLAG SET CLA STA IU IU=0 JSB AI00 ASSIGN ITEM JSB EL00 EXCHANGE LINK LDB F STB .A .A=F LDA ARR JSB DIU0.,I DEFINE IU=ARR LDA T1DIM JSB DBA00 DEFINE BASE ADDR LDA T2DIM STA F RESTORE F JMP DIM02 T0DIM BSS 1 SET T0 0(DUMMY) OR -1 T1DIM BSS 1 SAVE AF T2DIM BSS 1 SAVE F K54 DEC 54 NS BSS 1 NUMBER OF SUBSCRIPTS S1 BSS 1 SUBSCRIPT NUMBER 1 .. S2 BSS 1 SUBSCRIPT NUMBER 2 . S TABLE S3 BSS 1 SUBSCRIPT NUMBER 3 .. B6000 OCT 6000 * * * ********************** * * INPUT LIST ELEMENT * * ********************** * TO INPUT AN ITEM THAT CAN BE CONTAINED WITHIN A LIST * AND INSURE THAT THE ITEM HAS NOT BEEN TYPED AS DUMMY * OR SUBPROGRAM ILD00 NOP JSB NDS00 NON-DUMMY & NON-SUBPROGRAM TEST LDA IU CPA ARR JMP ILE04 IU=ARR JSB TV00 TAG VARIABLE CLB ILE02 STB S1 JMP ILD00,I EXIT K38 DEC 38 ILE04 JSB ISP00 INPUT SUBSCRIPTS JSB FA00 FETCH ASSIGNS LDA K38  LDB NS NO. OF SUBSCRIPTS CMB,INB (B)=-(B) ADB I..ND,I # OF DIMENSIONS SSB JSB ER00 MORE SUBSCRIPTS THAN DIMENSIONS LDA S3 LDB I.D2,I 2ND DIMENSION JSB MPY ADB S2 LDA I.D1,I 1ST DIMENSION JSB MPY ADB S1 LDA D0 JSB MPY JMP ILE02 I.D1 DEF D1 I.D2 DEF D2 I..ND DEF ND * * ******************* * * INPUT SUBSCRIPT * * ******************* * TO INPUT THE SUBSCRIPT LIST FROM THE OPENING ( TO THE * CLOSING ). * ENTRY: (A)=0 IF DIMENSIONS DUMMY * (A) .GT. 0 IF DIMENSION CONSTANT INTEGER * (A) .LT. 0 IF DIMENSION INTEGER OR VARIABLE * * EXIT: NS=NO. OF SUBSCRIPTS * S-TABLE=POINTERS INTO THE ASSIGNMENT TABLE * OR THE CONSTANTS THEMSELVES ISP00 NOP STA T0ISP SAVE (A) CLA STA EFG CLEAR E-FLAG STA S1 STA S2 SUBSCRIPT 2 =0 STA S3 SUBSCRIPT 3 =0 STA NS NO. OF SUBSCRIPTS =0 LDA TC LDB EQUF SSB IN EQUIV. GROUP JMP *+5 CPA B54 ',' JMP ISP00,I EXIT CPA B51 ')' JMP ISP00,I EXIT CPA B50 '(' JMP ISP02 LDA K82 JSB ER00 ARR NAME IN GP NOT FOL BY (,,,) K82 DEC 82 ISP02 LDA T0ISP RESTORE (A) SZA JMP ISP06 JSB EXN00 EXAMINE NEXT CHARACTER SZA,RSS JMP ISP06 CHARACTER IS A DIGIT JSB IIV00 INPUT INTEGER VARIABLE LDA AT CPA DUM JMP ISP04 LDA K39 NON-DUMMY DIMENSION VARIABLE JSB ER00 NAME USED WITH DUMMY ARRAY NAME K39 DEC 39 DUM OCT 5000 AT=5, RELATIVE WITHIN DUMMY LOC K19 DEC 19 ISP04 CLA,INA STA EFG SET E-FLAG LDB STK2B LDA L # OF ITEMS IN STACK SZA JMP ISP20 ISP05 EQU * LDA .A PTtR OF DUMMY JSB PU200 STORE INTO STACK LDA INT JSB ATC00 ALLOCATE TEMP CELL LDA .A PTR OF TEMP CELL JSB PU200 STORE INTO STACK CCA ADA .INT. TO RELEASE TEMP CELL STA .INT. .INT.=.INT.-1 JMP ISP10 ISP06 EQU * * * * INPUT INTEGER * JSB IDN00 INPUT DNA JSB INTST INTEGER TEST LDA K19 LDB NT IS IT A CONSTANT ? SZB,RSS JSB ER00 NO * LDA T0ISP RESTORE ENTRY (A) SZA,RSS JMP ISP08 T0=0 SSA,RSS JMP ISP16 T0 .GT. 0 ISP08 JSB AI00 ASSIGN ITEM ISP10 LDA .A ISP12 LDB T1ISP ADDRESS OF S1 ADB NS NO. OF SUBSCRIPT STA B,I S(NS+1)=(A) ISZ NS NS=NS+1 LDA NS CPA K3 JMP ISP14 N3=3 LDA TC CPA B54 TC=',' ? JMP ISP02 YES ISP14 JSB RP00 )-INPUT OPERATOR JMP ISP00,I EXIT ISP16 LDA IDI INTEGER JUST INPUT ADA KM1 (A)=IDI-1 JMP ISP12 ISP20 INB LDA B,I CPA .A JMP ISP22 MATCHED INB CPB STK2T JMP ISP05 END OF STACK JMP ISP20 TRY NEXT ENTRY ISP22 INB LDA B,I .A OF TEMP CELL JMP ISP12 * T0ISP BSS 1 SAVE ENTRY (A) VALUE T1ISP DEF S1 K3 DEC 3 KM1 DEC -1 B57 OCT 57 * * * SKP * * ************************ * * ALLOCATE A TEMP CELL * * ************************ * ATC00 NOP ON ENTRANCE TO THIS SUBROUTINE, STA IM (A)=IM OF TEMP CELL NEEDED ALF MAKE IM A SMALL INTEGER ADA TEMPS (A)_ ADDRESS OF TEMP CELL NAME WORD CCB (B)_ -1 ADB A,I (B)_ TEMP CELL NAME -1 STB A,I TEMP CELL NAME UPDATED, NEXT NAME STB T0ATC SAVE TEMP CELL NAME CLA STA NT NAME TAG = 0 (VARIABLE) LDA BVAR STA IU ITEM USAGE = VARIABLE JSB CLNM CLEAR NAME TO BLANKS LDA T0ATC AND B377 STA NID+1 NID+1=SECOND HALF OF NAME LDA T0ATC ALF,ALF AND B377 STA NID NID=FIRST HALF OF NAME JSB AI00 ASSIGN NAME TO A.T. LDA .A (A)_ ASSIGN TAB PTR TO TEMP CELL LDB .A (B) _ ASSIGN TAB PTR TO TEMP CELL JMP ATC00,I RETURN * T0ATC BSS 1 * * * TEMP CELL NAME TABLE HAS ONLY A LOCATION FOR * INTEGER TEMP CELL NAMES IN THIS SEGMENT * BECAUSE THAT IS ALL THAT IS USED. * TEMP CELL NAMES FOR DUMMY DIMENSIONS * ARE -1, -2, -3, ETC. RATHER THAN -1001, * -1002, -1003, ETC. FOR INTEGER VARIABLE * TEMPORARIES USED IN EXPRESSION EVALUATION. * IN THE LISTING OF THE OBJECT PROGRAM THEY * LOOK LIKE REGULAR INTEGER TEMPORARIES AND * ANY INTEGER TEMPORARIES THAT ARE NEEDED START * WITH NAMES -100N, WHERE N = NUMBER OF DUMMY * DIMENSION TEMP CELLS NEEDED - 1. * TEMPS DEF * ADDR OF TEMP CELL NAME TABLE - 1 T.INT NOP TEMP CELL NAME FOR DUMMY DIMS. * * **************** * * PUSH STACK 2 * * **************** * * * STACK 2 IS THE OPERATOR STACK. IT IS IN LOWER CORE THAN * IS STACK 1, JUST ABOVE THE ASSIGNMENT TABLE, AND GROWS * TOWARD HIGH CORE. THIS ROUTINE IS ENTERED WITH (A) = * WORD TO BE STACKED. * * PU200 NOP PUSH STACK 2 TO STACK OPERATORS ISZ L L=L+1 LDB STK2B ADB L STB STK2T CPB STK1T IF TOP TWO POINTERS SAME, JMP DPOVF DATA POOL OVERFLOW. STA STK2T,I STACK OPERATOR JMP PU200,I RETURN * SKP * * * ******************** * * COMMON PROCESSOR * * ******************** COMPR CLA,INA STA DCEFG SET COMMON FLAG JSB ICH00 INPUT A CHAR. ` CPA B57 '/' JMP COM04 TC=/ JSB UC00 UNINPUT COLUMN COM02 LDA COMK1 ADDR OF COM06 STA SPSW SET STATEMENT PROCR SW TO COM06 LDA FCOM FIRST COMMON ASSI PTR SET ? SZA JMP COM06 YES JSB INM00 INPUT NAME LDA .A STA F F=.A STA FCOM FCOM=1ST COMMON ASSI PTR JMP COM08 COM04 JSB ICH00 INPUT CHARACTER CPA B57 '/' JMP COM02 TC=/ LDA K4 JSB ER00 LABEL COMMON NOT ALLOWED K4 DEC 4 COM06 EQU * TO PROCESS NAME IN COMMON BLOCK LDA LCOM LAST COMMON ASSIGNMENT POINTER STA F JSB INM00 INPUT NAME COM08 LDA .A STA LCOM LAST COMMON ASSIGNMENT POINTER JSB NDS00 NON-DUMMY & NON-SUBPROGRAM TEST * * NON-COMMON TEST * LDA K36 LDB AT CPB COM JSB ER00 ILLEGAL USE OF COMMON NAME LDA COM JSB DAT00 DEFINE AT=COM CLA,INA STA EXLF SET FLAG TO EXCHANGE LINK JMP INDIM TO INPUT DIMENSION * COMK1 DEF COM06 LOC. TO PROC NAME IN COMMON BLCK LCOM BSS 1 LAST COMMON ASSIGNMENT POINTER K36 DEC 36 COM OCT 4000 AT=4 (COMMON) K2 DEC 2 B15 OCT 15 * * * ************************* * * EQUIVALENCE PROCESSOR * * ************************* K70 DEC 70 EQUPR JSB EXN00 EXAMINE NEXT CHAR. LDB TC CPB B50 '(' JMP EQU01 LDA K70 JSB ER00 1ST CHAR. OF GROUP NOT '(' EQU01 EQU * LDA K2 STA OPF SET OUTPUT .PACK FLAG TO 2 EQU02 JSB ICH00 INPUT CHARACTER CPA B15 JMP EQU08 TC=C/R CPA B54 RSS JMP EQU02 JSB ICH00 INPUT CHARACTER CPA B50 JMP *+4 CPA B15 JMP EQU01-2 JMP EQU02 LDA OPF CPA K2 JMP EQU06 OPF=2 EQU04 ISZ NEQUG NEQUG=NEQUG+1 LDA TC  CPA B15 C/R JMP EQU05 TC=C/R JSB UC00 UNINPUT COLUMN JMP EQU01 A NEW GROUP EQU05 JMP CRTST TO C/R TEST * KK24 ASC 1,, EQU06 LDA KK24 ', ' STA E,I STORE INTO EQUIVALENCE TABLE JMP EQU04 KK25 ASC 1,), EQU08 LDA KK25 '),' LDB OPF CPB K2 JMP EQU09 OPF=2 LDA B54 ',' STA .PACK LDA B40 BLANK CHARACTER JSB TP00 TERMINATE PACK JMP EQU04 EQU09 CLB STB OPF RESET OUTPUT FLAG JMP EQU06+1 * * FCOM NOP 1SF COMMON ASSIGN PTR. I.NXL DEF NXL B40 OCT 40 * * ******************************* * * INPUT LIST ELEMENT AND SIZE * * ******************************* ILS00 NOP * INPUT LIST ELEMENT FOR DATA STATEMENT * * LDA XRFLG IS CROSS REF PAIR TO BE GENERATED SZA,RSS YES. JMP ILS03 NO- SKIP NEXT BLOCK OF CODE. * CCA COMPUTE CURRENT ADDRESS WHERE ADA EQUF WE ARE SCANNING ADA E IN EQUIVALENCE TABLE. CMA,INA MAKE IT NEGATIVE AND SAVE STA ETADD IN ETADD. CCB (B) POINTS TO LOCATION WORD ADB NEXTL OF LAST ENTRY IN LLTAB. * ILS01 LDA ETADD COMPUTE LOC IN LLTAB-ETADD. ADA B,I SSA,RSS IF ETADD<=LOC (LOC-ETADD>=0) JMP ILS02 LINE NUMBER FOR SYMBOL FOUND. ADB KM2 LOOK AT NEXT ENTRY IN TABLE JMP ILS01 * ILS02 ADB KM1 LINE LOCATION IN TABLE LDA B,I (A)=LINE NO. STA CILN SAVE IT IN CILN AND STA T1II IN T1II. * JSB ISY00 INPUT SYMBOL. JSB CR00 CREATE CROSS REFERENCE PAIR. RSS END OF XREF SPECIAL PROCESSING. * ILS03 JSB ISY00 INPUT SYMBOL. JSB ILD00 INPUT LIST ELEMENT FOR DATA JSB NWI00 D0: # WDS FOR ITEM JMP ILS00,I EXIT * ETADD NOP XRFLG NOP SAVE1 NOP SAVE2 NOP * SCC0. DEF SCC00 * * * * *********************** * * RELATE COMMON ITEMS * * *********************** T0RCO BSS 1 SIZE OF COMMONS RCOM EQU * LDA FCOM FIRST COMMON ASSIGNMENT POINTER STA I.NXL,I NEXT LINK STA .A .A=FCOM SZA,RSS JMP GREQU (A)=0, NO COMMON IN THIS PROGRAM CLA STA T0RCO SIZE OF COMMON=0 RCOM2 JSB FA00 FETCH ASSIGN JSB NWI00 D0: # WDS FOR ITEM JSB FL00.,I FETCH LINK LDA T0RCO JSB DAF00 DEFINE AF=T0 LDA IU CPA ARR RSS JMP RCOM3 LDA RPL JSB DBA00 DEFINE BASE ADDR. LDB T0RCO LDA K2 JSB OMR00 OUTPUT 'DEF T0,C' RCOM3 EQU * LDA T0RCO ADA D0 STA T0RCO T0=T0+D0 LDA IU SZA,RSS JSB TV00 TAG VARIABLE LDA I.NXL,I NXL STA .A .A=NEXT LINK CPA FCOM RSS JMP RCOM2 LDA T0RCO STA CSIZ.,I SIZE OF COMMON CLA STA FCOM * * * * ********************* * * GROUP EQUIVALENCE * * ********************* GREQU EQU * LDA CILN SAVE CURRENT LINE NO. STA SAVE1 LDA T1II SAVE THIS LINE NO. ALSO. STA SAVE2 JSB SCC0.,I SAVE CC LDA NEQUG NO. OF EQUIVALENCE GROUPS SZA,RSS JMP GRE27 TO ASSIGN SPECIFICATION LDB E LDA B,I AND KK07. =B177400 CPA KK26 ',' LEFT JUSTIFIED JMP GRE24 LDA KK28 ),C/R GRE02 STA B,I STORE INTO EQUIVALENCE TABLE ADB KM1 STB E E=E-1 LDA KK27 STA B,I STORE INTO EQUIVALENCE TABLE GRE04 JSB SEC00 EQUF=DO-E , CC=121 CLA STA COMF RESET COMMON FLAG STA XRFLG TURN OFF CROSS REFERENCE. GRE06 JSB ICH00 INPUT CHARACTER LDA K70 LDB TC CPB B50 V '(' RSS JSB ER00 1ST CHAR OF GROUP NOT '(' JSB LRP00 (A)=E+EQUF-1 STA LPAR.,I '(' LOCATION LDA EQUF EQUIV TABLE PTR FLAG STA SEQUF SAVE EQUF GRE08 JSB ILS00 INPUT LIST ELEMENT & SIZE LDA AT CPA COM JMP GRE18 AT=COM GRE09 LDA TC CPA B54 ',' JMP GRE08 TC=, JSB RP00 )-INPUT OPERATOR CPA B54 JMP GRE12 TC=, CPA B15 JMP GRE10 TC=C/R GRE07 EQU * LDA K81 JSB ER00 ILL. TERM. FOR AN EQUIV. GROUP * * GRE97 LDA NEQUG NO. OF EQUIV GROUPS SZA,RSS JMP GRE27 JSB SEC00 EQUF=DO-E, CC=121 CLA,INA STA XRFLG TURN ON CROSS REFERENCE GRE98 JSB ICH00 INPUT '(' OF EQUIV GROUP GRE99 JSB ILS00 INPUT NEXT NAME IN GROUP LDA TC IF TC=',' CPA B54 JMP GRE99 INPUT NEXT NAME IN GROUP. JSB RP00 ELSE INPUT ')' OF GROUP END. CPA B54 IF MORE FOLLOWS, JMP GRE98 LOOK AT NEXT GROUP. CLA TURN OFF CROSS REFERENCE. STA XRFLG LDA SAVE1 RESTORE LINE NO. TO CILN. STA CILN LDA SAVE2 RESTORE LINE NO TO T1II. STA T1II JMP GRE26 CONTINUE NORMAL PROCESSING. * * KK07. OCT 177400 CSIZ. DEF CSIZE K81 DEC 81 K120 DEC 120 KK26 OCT 26000 ',' LEFT JUSTIFIED KK27 OCT 6415 C/R,C/R KK28 OCT 24415 '),C/R' GRE10 LDA COMF ANY COMMON IN GROUP ? SZA,RSS YES JMP GRE97 NO. GRE12 JSB LRP00 (A)=E+EQUF-1 STA RPAR '(' LOCATION LDA COMF ANY COMMON IN GROUP SZA,RSS YES JMP GRE06 NO LDA SEQUF STA EQUF RESTORE EQUF LDA K120 STA CC CC=121 STA XRFLG TURN ON CROSS REFERENCE. GRE14 JSB ILS00 INPUT LIST ELEMENT & SIZE LDA AT CPA COM JMP GRE20 AT=COM LDA S1 REL LOC OF 2TND ELE OF 2ND ARRAY CMA,INA ADA T0GRE STA T1GRE T1=T0-D0 SSA JMP GRE22 COMMON BASE .LT. 0 JSB DAF00 DEFINE AF LDA COM JSB DAT00 DEFINE AT=COM LDA IU CPA ARR JMP *+3 IU=ARR JSB TV00 TAG VARIABLE JMP GRE15 LDA RPL JSB DBA00 DEFINE BASE ADDR. LDB T1GRE LDA K2 JSB OMR00 'DEF T1,C' GRE15 EQU * LDA D0 SIZE OF 2ND ARRAY ADA T1GRE BASE OF 2ND ARRAY LDB A SAVE IN (B) CMA,INA ADA CSIZ.,I (A)=CSIZE-(D0+T1) SSA STB CSIZ.,I NEW COMMON SIZE GRE16 LDA TC CPA B54 ',' JMP GRE14 TC=, JSB RP00 )-INPUT OPERATOR JSB BEG0.,I BLANK EQUIVALENCE GROUP SZA,RSS (A)=# OF EQUIV GROUPS LEFT JMP GRE27 TO ASSIGN SPECIFICATION JMP GRE04 BEG0. DEF BEG00 GRE18 CLA,INA STA COMF SET COMMON FLAG LDA S1 ADA AF STA T0GRE T0=S1+AF JMP GRE09 GRE20 LDA S1 CMA,INA ADA T0GRE CPA AF JMP GRE16 T0-S1=AF LDA K40 JSB ER00 IMPOSSIBLE GROUP K40 DEC 40 K41 DEC 41 B50 EQU K40 B51 EQU K41 GRE22 LDA K41 JSB ER00 COMMON BASE .LT. 0 GRE24 LDA KK27 C/R,C/R JMP GRE02 GRE26 LDA NEQUG NO. OF EQUIV. GROUPS SZA JMP GRE28 GRE27 EQU * CCA STA EQUF SET EQUF=-1 LDA T0SV _. STA CC . RESTORE CC CLA . STA CLSW _. STA XRFLG TURN OFF CROSS REFERENCE. LDA SAVE1 RESTORE CURRENT LINE NO. STA CILN LDA SAVE2 RESTORE THIS LINE NO. TOO STA T1II JMP ASPEC ASSIGN SPECIFICATION COMF NOP COMMON FLAG (0=NO COMMON IN GRP) LPAR. DEF LPAR I.M DEF M SVRP. DEF SVRPL GRE28 JSB SEC00 EQUF=DO-E,CC=121 JSB OLR00 OUTPUT LOAD ADDRESS=1RPL LDA RPL STA SVRP.,I SAVE RPL CLA STA I.M,I # OF .A PTRS IN EQUIV STACK TBL STA LLIM LOWER LIMIT CCA ADA E (A)=E-1 STA P BASE LOC. OF EQUV STACK TABLE JSB ICH00 INPUT CHARACTER CPA B50 '(' RSS JMP GRE06+1 EQUIV. GRP NOT START WITH '(' JSB LRP00 (A)=E+EQUF-1 STA LPAR.,I '(' LOCATION JSB ILS00 INPUT LIST ELEMENT & SIZE LDA S1 STA T1GRE T1=S1 LDA .A STA F F=.A LDA D0 STA ULIM UPPER LIMIT CLA JSB SEP00 SEARCH EQU PTR STACK CLA JSB DAF00 DEFINE AF=0 LDA TC CPA B54 ',' CLA,RSS JMP GRE07 TOO MANY CHARS IN AN OPERAND STA COMF RESET COMMON FLAG GRE30 EQU * JSB ILS00 INPUT LIST ELEMENT & SIZE LDA D0 SIZE OF LIST ELEMENT STA T4GRE T4=D0 CLA JSB SEP00 SEARCH EQU PTR STACK SZA,RSS JMP GRE32 CLA,INA STA COMF SET COMMON FLAG LDA S1 CPA T1GRE JMP GRE32 T1=S1 LDA K40 JSB ER00 SAME NAME WITH DIFFERENT DISPL. NBAS BSS 1 NEW BASE OF EQUV GROUP T0GRE BSS 1 T1GRE BSS 1 T2GRE BSS 1 T3GRE BSS 1 T4GRE BSS 1 GRE32 LDA .A STA T2GRE LDA F STA .A JSB FA00 FETCH ASSIGN LDB S1 (A)=AF(F) CMB,INB ADA B ADA T1GRE STA NBAS NEW BASE LDB T2GRE RESTORE .A STB .A JSB DAF00 DEFINE AF=NBAS LDB A (A)=(B)=NBAS CMA,INA ADA LLIM IS LLIM .LT. NBAS SSA,RSS STB LLIM YES, SET LLIM=NBAS ADB T4GRE (B)=NBAS+D0(.A) LDA B CMA,INA ADA ULIM IS ULIM .LT. NBAS+D0 SSA NO STB ULIM YES, SET ULIM=NBAS+D0 LDA TC CPA B54 ',' JMxP GRE30 TC=, JSB RP00 )-INPUT OPERATOR LDA TC CPA B54 ',' JMP GRE34 CPA B15 C/R JMP GRE34 JMP GRE07 ILLEGAL GROUP SEPARATOR GRE34 JSB LRP00 (A)=E+EQUF-1 STA RPAR '(' LOCATION JSB BEG0.,I BLANK EQUIVALENCE GROUP LDA NEQUG NO. OF EQUIVALENCE GROUPS SZA,RSS JMP GRE46 GRE36 LDA TC CPA B15 JMP GRE44 TC=C/R GRE38 JSB ICH00 INPUT CHARACTER CPA B50 '(' RSS JMP GRE06+1 GROUP NOT START WITH '(' JSB LRP00 (A)=E+EQUF-1 STA LPAR.,I '(' LOCATION LDA CC STA T3GRE T3=CC LDA EQUF STA EPTR SAVE EQUF GRE40 JSB ILS00 INPUT LIST ELEMENT & SIZE CLA,INA JSB SEP00 SEARCH EQU PTR SZA,RSS JMP GRE42 NOT IN EQU PTR TABLE STA F SAVE POINTER IN F STA COMF SET COMMON FLAG LDA S1 STA T1GRE T1=S1 LDA T3GRE STA CC RESTORE CC LDA EPTR STA EQUF RESTORE EQUF JMP GRE30 EPTR NOP SAVE EQUF GRE42 LDA TC CPA B54 ',' JMP GRE40 TC=, JSB RP00 )-INPUT OPERATOR JMP GRE36 GRE44 LDA COMF COMMON FLAG SET ? SZA,RSS JMP GRE46 NO CLA STA COMF RESET COMMON FLAG LDA NEQUG NO. OF EQUIV GROUPS SZA,RSS JMP GRE46 EMPTY JSB SEC00 EQUF=DO-E, CC=121 JMP GRE38 GRE46 LDA LLIM CMA,INA ADA ULIM ADA RPL STA RPL RPL=RPL+ULIM-LLIM SSA JMP RPLOV RPL OVERFLOW LDB KM2 ADB E (B)=E-2 GRE48 STB P LDA M NO. OF PTRS IN STACK TABLE SZA,RSS JMP GRE26 LDA P,I PICK UP THE PTR & STORE IT IN .A STA .A JSB FA00 (A)=AF(.A) LDB LLIM CMB,INB ADA B ADA SVRPL ADD RPL SAVED  STA T1GRE JSB DAF00 AF(.A)=AF(.A)-LLIM+SVRPL LDA IU CPA ARR RSS JMP GRE49 JSB OLR00 OUTPUT LOAD ADDRESS=RPL LDA RPL JSB DBA00 DEFINE BASE ADDR CLA LDB T1GRE JSB OMR00 'DEF BASE ADDR OF ARRAY' GRE49 EQU * LDA REL JSB DAT00 AT=REL CCA ADA M STA M M=M-1 CCB ADB P P=P-1 JMP GRE48 * * DATA & TEMP CELLS FOR GROUP EQUIVALENCE SEQUF BSS 1 SAVE EQUF SVRPL BSS 1 SAVE RPL M BSS 1 NO. OF .A PTRS IN EQUV STACK TBL P BSS 1 BASE LOC OF EQUV STACK TABLE LLIM BSS 1 LOWER LIMIT OF EQUV GROUP ULIM BSS 1 UPPER LIMIT OF EQUV GROUP REL OCT 1000 AT=1, RELATIVE WITHIN PROGRAM * KM2 DEC -2 K84 DEC 84 RPLOV LDA K84 RPL OVERFLOW JMP EOFF TO TERMINATE JOB B377 OCT 377 CMAB ASC 1,, BL2B ASC 1, * * * *************************** * * BLANK EQUIVALENCE GROUP * * *************************** * BLANK THE AREA RPAR TO LPAR BEG00 NOP LDB RPAR ')' LOCATION LDA B,I CPA CMAB ', ' ADB KM1 BEG02 LDA BL2B 2 BLANKS INB STA B,I LDA B CMA ADA LPAR '(' LOCATION SSA,RSS JMP BEG02 (B) .LE. LPAR LDA TC CPA B15 JMP BEG06 TC=C/R BEG04 CCA ADA NEQUG STA NEQUG NEQUG=NEQUG-1 JMP BEG00,I EXIT BEG06 LDA KK27. C/R,C/R STA LPAR,I BEG08 LDA LPAR CPA DO JMP BEG00,I END OF MEMORY REACHED ISZ LPAR LDA LPAR,I CPA BL2B 2 BLANKS JMP BEG08 AND B377 LDB KK28 ),C/R CPA B54 ',' STB LPAR,I LDB KK27. C/R,C/R LDA LPAR,I CPA CMAB ', ' STB LPAR,I JMP BEG04 * KK27. OCT 6415 C/R,C/R * * ************************************ * * SEARCH EQUIVALENCE POINTER STACK * * ************************************ * ENTRY: (A)=0 ENTER TO STACK IF NOT ALREADY IN TABLE * (A)=1 NEVER ENTER THE STACK * EXIT: (A)=0 IF NO MATCH, ELSE (A)=PTR OF ENTRY IN ASSI TABLE SEP00 NOP STA T0SEP SAVE ENTRY (A) LDA M NO. OF ITEMS IN STACK SZA,RSS JMP SEP04 EMPTY CMA,INA STA T1SEP T1=-M LDB KM2 ADB E (B)=E-2 SEP02 LDA B,I CPA .A JMP SEP08 MATCHED ADB KM1 (B)=NEXT STACK LOCATION ISZ T1SEP STACK EXHAUSTED ? JMP SEP02 NO SEP04 LDB T0SEP TO ENTER INTO STACK ? SZB YES JMP SEP06 NO, TO EXIT CCA ADA P STA P P=P-1 LDB LO LAST WD LOC OF ASSI TBLE +1 CMB,INB ADB A SSA P .GE. LO JMP DPOVF DATA POOL OVERFLOW LDA .A STA P,I STORE .A INTO STACK ISZ M M=M+1 SEP06 CLA SEPEX JMP SEP00,I EXIT SEP08 LDA .A JMP SEPEX TO EXIT T0SEP BSS 1 T1SEP BSS 1 * * * ************************ * * ASSIGN SPECIFICATION * * ************************ * TO ASSIGN STORAGE TO THE REMAINDER OF THE VARIABLES * & ARRAYS MENTIONED IN THE SPECIFICATION STATEMENTS ASPEC EQU * LDA DP DATA POOL BASE ADDR. STA .A .A=DP ASPE4 JSB GNA00 GET NEXT .A SSA,RSS JMP ASPE6 END OF ASSIGNMENT TABLE JSB FA00 FETCH ASSIGNS LDA AT CPA REL JMP ASPE4 CPA K.COM COMMON ? JMP ASPE4 LDA IU CPA ARR RSS IU=ARRAY JMP ASPE4 IU=VAR, DON'T ASSIGN UNTIL 'END' LDA AT CPA DUM JMP ASPE4 LDA RPL JSB DBA00 DEFINE BASE ADDR. JSB OLR00 OUTPUT LOAD ADDRESS=RPL CLB,INB CLA JSB OZ00  OUTPUT 'DEF *+1' JSB NWI00 D0=# OF WDS FOR ITEM JSB AA00 ASSIGN ADDRESS JMP ASPE4 ASPE6 LDA STRF. LDB SLF STATEMENT LEVEL FLAG CMB,INB ADB K3 SSB,RSS JMP FNS.2 LDB ERF ANY ERROR? SZB NO JMP ASPE2 YES ASPE0 EQU * INA LDB RPL STB A,I ASPE7 EQU * JSB OLR00 OUTPUT LOAD ADDRESS=RPL LDA L ASPE8 SZA JMP ASPE3 LDA LO END OF ASSI TABLE LOC STA STK2B STA STK2T FNS.2 LDA SLF ADA ..M3 SSA JMP FNS02 X-FER CONTROL TO 1ST NON-SPEC. CHECK CLA,INA STA SPF STA EEIN JSB EXEC DEF *+3 DEF K8 DEF *+1 ASC 3,F4.1 K.COM OCT 4000 IM=4, COMMON ASPE3 ISZ STK2B LDB STK2B,I LDA LDA 'LDA' JSB SOA00 OUTPUT 'LDA DUMMY,I' ISZ STK2B LDB STK2B,I LDA K.STA 'STA' JSB SOA00 OUTPUT 'STA TEMP-CELL' LDA L ADA KM2 STA L JMP ASPE8 ASPE2 CPB K..1 1 ? RSS ONLY 1 ERROR JMP ASPE7 MORE THAN 1 ERROR LDB BAD9F ONE OF BAD 8 AS SUB/FUN NAME ? SZB,RSS YES JMP ASPE7 NO CLB STB BAD9F RESET BAD 9 FLAG JMP ASPE0 * K..1 DEC 1 BAD9F NOP BAD 9 FLAG LDA OCT 62000 K.STA OCT 72000 * SKP * * ***************** * * SET EQUF & CC * * ***************** SEC00 NOP LDA E CMA,INA ADA DO STA EQUF EQUF=DO-E LDA K121 STA CC CC=121 JMP SEC00,I EXIT * K121 DEC 121 KM7 OCT -7 * * ************************** * * (A)='(' OR ')' ADDRESS * * ************************** LRP00 NOP CCA ADA EQUF ADA E (A)=E+EQUF-1 LDB A ADB KM7 STB RPAR FOR ERROR PRINT-OUT PURPOSES 9E JMP LRP00,I * * * * MNP08 LDA K85 JSB ERCM TROUBLE LIB. ROUT AS PROG NAME ISZ BAD9F SET BAD 9 FLAG JMP BAD9C,I EXIT * K85 DEC 85 * * * THE 9 TROUBLESOME LIBRARY ROUTINES IN FIX-EXT-TABLE T9TLR DEF *+1 ASC 3,DBLE ASC 3,CMPLX ASC 3,FLOAT ASC 3,SNGL ASC 3,REAL ASC 3,ERR0 ASC 3,EXEC ASC 3,CLRIO ASC 3,IFIX * * * K7 DEC 7 KM9 DEC -9 K68 DEC 68 B.IDI DEF IDI * * * * ********************** * * ONE OF BAD 9 CHECK * * ********************** BAD9C NOP * * ************************** * * MOVE NID TO PBUF+3,4,5 * LDB B40 CPB NID+5 JMP *+4 STB NID+5 LDA K68 JSB ERCM JSB IDNID MOVE NID TO IDI LDA B.IDI JSB MPN00 MOVE PROG NAME TO PBUF,ERBF,HEAD * ************************** * LDA KM9 STA MCNT MCNT=-9 LDB T9TLR BASE ADDR. OF 9 TROUBLESOME ROUTINES MNP01 LDA IDI CPA B,I RSS JMP MNP02 1ST & 2ND CHARS NOT MATCHED INB LDA IDI+1 CPA B,I RSS JMP MNP04 3RD & 4TH CHARS NOT MATCHED INB LDA IDI+2 CPA B,I JMP MNP08 ALL MATCHED JMP MNP05 MNP02 INB MNP04 INB MNP05 INB ISZ MCNT ALL 9 ITEMS CHECKED ? JMP MNP01 NOT YET JMP BAD9C,I EXIT * * * * * K43 DEC 43 * * * ********************** * * FUNCTION PROCESSOR * * ********************** FUNPR CLA,INA STA SFF SFF=1 * * ************************ * * SUBROUTINE PROCESSOR * * ************************ SUBPR LDB LSTF.,I 1ST STATEMENT ? SZB NO JMP *+3 YES NFSTM LDA K43 JSB ER00 PROG/SUBR/FUNCTION NOT 1ST STATM LDA K7 STA PROK1,I SUBR/FUNC = TYPE 7 JSB INM00 INPUT NAME JSB BAD9C TO CHECK THE BAD9 TABLE LDB .A STB SBF SET SUBPROGRAM FLAG CLA * * DEFINE GF * LDB .A INB STA B,I GF(.A)=(A) JSB FER00 OUTPUT NAM & ENT RECORDS LDA MFL MODE FLAG SET? SZA NO JSB DIM00 DEFINE IM LDA TC CPA B15 JMP SUBP6 TC=C/R JSB IDL0.,I INPUT DUMMY LIST SUBP4 EQU * LDA RPL STA RETLO RETURN LOCATION JSB GPE0.,I GENERATE PAROGRAM ENTRANCE JSB SSB00 SET UP STRING BACK JMP LOC. LDA DO STA D D=DO JMP CRTST C/R TEST K42 DEC 42 SUBP6 LDB SFF FUNCTION? LDA K42 SZB JSB ER00 A FUNCTION WITH NO ARGUMENT LIST CLA STA ARGF NO. OF ARGUMENTS =0 LDA RPL STA SRPL SAVE RPL JMP SUBP4 * IDL0. DEF IDL00 GPE0. DEF GPE00 GENERATE PROG ENTRANCE ROUTINE * * * LSTF. DEF LSTF * OR STATEMENT FUNCTION * * ******************************* * * PROGRAM STATEMENT PROCESSOR * * ******************************* PROG EQU * LDA LSTF.,I 1ST STATEMENT? SZA,RSS YES JMP NFSTM NO, ERROR LDA K3 STA PROK1,I PBUF+9=3 JSB EXN00 EXAMINE NEXT CHAR. LDA TC CPA B15 'C/R' RSS JMP PROG4 CLA,INA STA CC CC=1 JMP PROG6 * PROG4 EQU * JSB IDN00 TO INPUT PROGRAM NAME SZA SKIP IF IM=0 JSB BAD9C TO CHECK THE BAD9 TABLE LDA TC CPA B50 '(' JMP PROG7 TC=( CPA B54 ',' JMP PROG7 TC=, PROG6 EQU * JSB FER00 FORM ENT RECORD JMP CRTST C/R TEST * PROG7 LDA PROK1 ADDR OF PBUF+9 STA T1PRO SAVE PBUF POINTER PROG8 JSB EXN00 EXAMINE NEXT CHARACTER SZA,RSS JMP PROG2 PROG9 LDA TC CPA B54 ',' RSS JMP PROG3 ISZ T1PRO JSB ICH00 PROGA EQU * LDB T2PRO LOC OF PBUF+17 CPB T1PRO JMP PROG3 JMP PROG8 PROG2 JSB IDN00 INPUT DO NOT ASSIGN LDA IDI DIGIT STRING JUST INPUT STA T1PRO,I STORE INTO PBUF ISZ T1PRO BUMP PBUF POINTER LDA TC CPA B54 ',' JMP PROGA JMP PROG9 * T1PRO BSS 1 TO SAVE PBUF POINTER PROG3 CPA B15 C/R JMP PROG6 JSB ICH00 INPUT A CHAR. JMP PROG6 * * K71 DEC 71 K72 DEC 72 I.COM OCT 4000 AT=COM I.ILD DEF ILD00 * * ****************** * * * DATA PROCESSOR * * ****************** DATAP CLA STA CLSW STA T2DAT T2=0 CCA STA DTAFG SET 'DATA' FLAG ADA D STA II II=D-1 (END OF DO TABLE) DATA0 EQU * JSB ISY00 INPUT SYMBOL LDB AT LDA K72 CPB I.COM AT=COM ? JSB ER00 LDA K71 CPB DUM JSB ER00 DUMMY USED IN DATA LIST LDA IU CPA ARR JMP DAT10 DATA1 EQU * JSB I.ILD,I INPUT LIST ELEMENT FOR DATA JSB AA00 ASSIGN ADDRESS LDA AF BASE ADDR OF ARRAY OR ELEMENT ADA S1.I,I S1(DISPLMENT OF ARRAY ELEM OR 0) STA II,I [II]=AF+S1 DATA2 CCB (B)=-1 ADB II (B)=II-1 LDA .A STA B,I [II-1]=.A ADB KM1 LDA D0 NUMBER OF WORDS PER ITEM STA B,I [II-2]=D0 ADB KM1 STB II II=II-3 STB G D=END OF DATA TABLE LDA TC CPA B54 JMP DATA0 TC=',' LDA RPL STA T1DAT SAVE RPL LDA B57 '/' JSB TCTST TC-TEST CLA STA KBAR KBAR=0 LDA D ADA K2 STA II II=D+2 LDA KBAR SZA JMP DATA6 DATA4 JSB IDN00 INPUT DO NOT ASSnIGN SZA JMP DATA5 IM .NE. 0 INA STA SXF.I,I SET COMPLEX FLAG LDA B50 '(' JSB TCTST TC-TEST JMP DATA4 ..M3 DEC -3 SXF.I DEF SXF K44 DEC 44 S1.I DEF S1 DATA5 LDA K44 LDB NT SZB,RSS JMP ERDAT+1 NAME IN CONSTANT LIST LDA IM STA T0DAT IM OF DATA ELEMENT LDA KBAR SZA,RSS JMP DAT04 KBAR=0 DATA6 LDA T2DAT ANYTHING REMAINED BE OUTPUT? SZA NO, TO PICK UP NEXT DATA ELEMENT JMP DATA7 YES, TO FINISH CURRENT ARRAY LDA II ADA ..M3 STA II II=II-3 CPA G RSS JMP DAT11 DAT21 EQU * LDA B57 '/' JSB TCTST TC-TEST LDA T1DAT STA RPL RESTORE RPL JSB ICH00 INPUT CHARACTER CPA B54 IS TC=',' ? JMP DATAP YES JSB OLR00 OUTPUT LOAD ADDRESS=RPL JMP CRTST C/R TEST DAT11 LDB II LDA B,I STA RPL RESTORE RPL ADB KM1 LDA B,I STA .A ASSIGNMENT PTR OF DATA ELEMENT ADB KM1 LDA B,I STA T2DAT SIZE OF ARRAY OR VARIABLE JSB FA00 FETCH ASSIGN LDB IM STB T3DAT CPB T0DAT RSS JMP ERDAT MODE ERROR JSB OLR00 OUTPUT LOAD ADDRESS=RPL DATA7 LDB T3DAT CPB T0DAT RSS JMP ERDAT MODE ERROR JSB OC00 OUTPUT CONSTANT LDA D0 CMA,INA ADA T2DAT STA T2DAT T2=T2-D0 (# WDS REMAINING ) CCB ADB KBAR STB KBAR KBAR=KBAR-1 SZB JMP DATA6 LDA II CPA G JMP DAT21 LDA TC CPA B54 JMP DATA4 JMP DAT21 DATA9 LDA TC CPA B50 '(' JMP DATA1 LDA AF LOC OF ARRAY BASE JMP DATA2-1 (II)=AF B52 OCT 52 DAT04 LDA TC CPA B52 '*' JMP DAT08 TC=* CLA,INA STA KBAR KBAR=1 JMP DATA6 DAT08 LDA IDI STA KBAR KBAR=IDI JSB INTST INTEGER TEST JMP DATA4 ERDAT LDA K73 LDB T1DAT STB RPL RESTORE RPL JSB ER00 K73 DEC 73 DAT10 LDA AT CPA REL JMP DAT17 LDA RPL JSB DBA00 DEFINE BASE ADDR=RPL JSB OLR00 LOAD LOC.=RPL CLA CLB,INB JSB OZ00 'DEF *+1' DAT17 EQU * JSB NWI00 D0=# WDS FOR ITEM JSB AA00 ASSIGN ADDR. JMP DATA9 * * T0DAT NOP SAVE IM OF DATA ELEMENT T1DAT NOP SAVE RPL T2DAT NOP SAVE # WORDS FOR DATA ELEMENT T3DAT NOP IM OF LIST ELEMENT II NOP DATA TABLE INDEX G BSS 1 POINTER TO END OF TBL BY DATA PROCESSOR KBAR BSS 1 REPEAT INDICATOR IN DATA PROCESSOR * * * ORIGIN THE INPUT BUFFERS AND FIXED EXTERNAL * TABLE AT THE END OF F4.1. THE FOLLOWING * BSS DOES THIS. THE FOLLOWING AREA * IS USED FOR A TABLE OF * LINE NUMBERS AND EQUIVALENCE TABLE LOCATIONS * FOR CREATING CROSS REFERENCE INFORMATION FOR * EQUIVALENCE STATEMENTS. * NEXTL DEF LLTAB FIRST WORD IN LINE/LOCATION TABLE ENDLT DEF SCBUF END OF LINE/LOCATION TABLE+1. * LLTAB BSS 275 LINE/LOCATION TABLE * * SKP * * ****************** * * 21 CARD BUFFER * * ****************** * EACH CARD BUFFER CONSISTS OF 41 WORDS, * THE 1ST 40 WORDS CONTAIN THE CARD IMAGE, * AND THE 41ST WORD CONTAINS THE # OF WORDS * IN THE CARD. SCBUF BEGINS IMMEDIATELY * AFTER F4.1 AND THE ADDRESS ASSIGNED TO * IT BELOW MUST BE ONE LARGER THAN THE * SIZE OF F4.1. IF SEGMENT F4.0'S CODE * MUST BE INCREASED, DECREASE THE SIZE OF * THE ABOVE BSS. IF SEGMENT F4.0'S CODE IS * DECREASED, INCREASE THE SIZE OF THE BSS * ABOVE. IF SEGMENT F4.1 INCREAܹSES IN * SIZE, INCREASE THE SIZE OF THE BSS ABOVE. * * SCBUF BSS 861 21 CARD SOURCE BUFFER * * * * * ********************** * * FIX EXTERNAL TABLE * * ********************** * * ..DP. EQU * OCT 1 NW=1 * OCT 62204 IM=DBL, NC=00 , R=0, NW=4 OCT 0 ASC 2,DABS * OCT 62204 IM=DBL, NC=00 , R=0, NW=4 OCT 0 ASC 2,DBLE * OCT 62204 IM=DBL, NC=00 , R=0, NW=4 OCT 0 ASC 2,DCOS * OCT 62205 IM=DBL, NC=00 , R=0, NW=5 OCT 0 ASC 3,DMAX1 * OCT 62205 IM=DBL, NC=00 , R=0, NW=5 OCT 0 ASC 3,DMIN1 * OCT 62204 IM=DBL, NC=00 , R=0, NW=4 OCT 0 ASC 2,DMOD * OCT 62205 IM=DBL, NC=00 , R=0, NW=5 OCT 0 ASC 3,DSIGN * OCT 62204 IM=DBL, NC=00 , R=0, NW=4 OCT 0 ASC 2,DSIN * OCT 62205 IM=DBL, NC=00 , R=0, NW=5 OCT 0 ASC 3,DATAN * OCT 62205 IM=DBL, NC=00 , R=0, NW=5 OCT 0 ASC 3,DATN2 * OCT 62264 IM=DBL, NC=01($), R=1, NW=4 OCT 0 ASC 2,DEXP * OCT 62264 IM=DBL, NC=01($), R=1, NW=4 OCT 0 ASC 2,DLOG * OCT 62265 IM=DBL, NC=01($), R=1, NW=5 OCT 0 ASC 3,DLOGT * OCT 62265 IM=DBL, NC=01($), R=1, NW=5 OCT 0 ASC 3,DSQRT * OCT 62205 IM=DBL, NC=00 , R=0, NW=5 OCT 0 ASC 3,DDINT * OCT 52205 IM=CPX, NC=00 , R=0, NW=5 OCT 0 ASC 3,CMPLX * OCT 52205 IM=CPX, NC=00 , R=0, NW=5 OCT 0 ASC 3,CONJG * OCT 52205 IM=CPX, NC=00 , R=0, NW=5 OCT 0 ASC 3,CSQRT * OCT 52324 IM=CPX, NC=10(#), R=1, NW=4 OCT 0 ASC 2,CCOS * OCT 52324 IM=CPX, NC=10(#), R=1, NW=4 OCT 0 ASC 2,CEXP * OCT 5232O4 IM=CPX, NC=10(#), R=1, NW=4 OCT 0 ASC 2,CLOG * OCT 52324 IM=CPX, NC=10(#), R=1, NW=4 OCT 0 ASC 2,CSIN * OCT 22364 IM=REA, NC=11(%), R=1, NW=4 OCT 0 ASC 2,SIN * OCT 22364 IM=REA, NC=11(%), R=1, NW=4 OCT 0 ASC 2,COS * OCT 22364 IM=REA, NC=11(%), R=1, NW=4 OCT 0 ASC 2,EXP * OCT 22364 IM=REA, NC=11(%), R=1, NW=4 OCT 0 ASC 2,TAN * OCT 22364 IM=REA, NC=11(%), R=1, NW=4 OCT 0 ASC 2,SQRT * OCT 22364 IM=REA, NC=11(%), R=1, NW=4 OCT 0 ASC 2,ALOG * OCT 22344 IM=REA, NC=11(%), R=0, NW=4 OCT 0 ASC 2,TANH * OCT 22345 IM=REA, NC=11(%), R=0, NW=5 OCT 0 ASC 3,ALOGT * OCT 22344 IM=REA, NC=11(%), R=0, NW=4 OCT 0 ASC 2,ATAN * OCT 22344 IM=REA, NC=11(%), R=0, NW=4 OCT 0 ASC 2,ABS * OCT 22344 IM=REA, NC=11(%), R=0, NW=4 OCT 0 ASC 2,AINT * OCT 22345 IM=REA, NC=11(%), R=0, NW=5 OCT 0 ASC 3,FLOAT * OCT 22344 IM=REA, NC=11(%), R=0, NW=4 OCT 0 ASC 2,SIGN * OCT 22204 IM=REA, NC=00 , R=0, NW=4 OCT 0 ASC 2,SNGL * OCT 22204 IM=REA, NC=00 , R=0, NW=4 OCT 0 ASC 2,REAL * OCT 22204 IM#REA, NC#00 , R#0, NW#4 OCT 0 ASC 2,ERR0 * OCT 22204 IM=REA, NC=00 , R=0, NW=4 OCT 0 ASC 2,EXEC * OCT 22205 IM=REA, NC=00 , R=0, NW=5 OCT 0 ASC 3,CLRIO * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 2,IOR * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 2,IAND * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 2,NOT * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASӯC 2,ISSW * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 2,IABS * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 2,INT * OCT 12344 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 2,IFIX * OCT 12345 IM=INT, NC=11(%), R=0, NW=4 OCT 0 ASC 3,ISIGN * * * * * ************************* * * DATA POOL STARTS HERE * * ************************* .DP. EQU * * * OCT 1 NW=1 * * * BSS 25 MINIMUM SYMBOL TABLE SIZE * * END F4.0 6ASMB,R,L,C HED FTN4--16K VERSION--EXPRESSION EVALUATOR NAM F4.1,5 EXPRESSION EVALUATOR * * * ENT DEF00 ENT EE00 ENT GAD00 ENT GIM00 ENT PU200 * EXT .INT. EXT AI00 EXT CLIDI EXT CLNM EXT DAF00 EXT DIM00 EXT DPOVF EXT ER00 EXT ESC00 EXT EXN00 EXT FA00 EXT FNSEE EXT II00 EXT MOVE EXT NSUBT EXT OA00 EXT OAI00 EXT ODF00 EXT OMR00 EXT OZ00 EXT SOA00 * A EQU 0 A-REGISTER B EQU 1 B-REGISTER * * C EQU * BSS 25 .DP EQU C+2 FIX-EXT BASE ADDR. L EQU C+17 NUMBER OF WORDS ON STACK 2 SXF EQU C+18 COMPLEX CONSTANT FLAG T EQU C+19 NO. WORDS ON STACK 1 MCNT EQU C+23 -(# OF WDS TO BE MOVED) T4IOL EQU C+24 .TBL EQU * BSS 51 * CMN EQU * BSS 99 .A EQU CMN+0 ASSIGNMENT TABLE POINTER ACC EQU CMN+1 ACCUMULATOR .AF EQU CMN+2 BADDR EQU CMN+3 CC EQU CMN+4 CARD COLUMN COUNTER--SOURCE LINE COLUMN POINTER D EQU CMN+5 DO TABLE POINTER(LOC OF LAST DO) IDI EQU CMN+7 BSS 4ID FIELD CONTAINING THE CONSTANTS IM EQU CMN+11 ITEM MODE IU EQU CMN+12 ITEM USAGE NC EQU CMN+13 NAME CHANGE FLAG NID EQU CMN+14 BSS 6 NAME ID FIELD ND EQU CMN+20 NUMBER OF DIMENSIONS NT EQU CMN+21 NAME TAG RESLT EQU CMN+22 S1LOC EQU CMN+24 SAVEL EQU CMN+25 NO. WORDS ON STK2 ON ENTRY TO EE SRPL EQU CMN+26 SAVE RPL AT BEGINNING OF RECORD STK1B EQU CMN+27 BEGIN ADDR OF OPERAND STACK STK1N EQU CMN+28 POINTER TO NEXT TO TOP STK1 ENT. STK1T EQU CMN+29 END ADDR OF OPERAND STACK STK2B EQU CMN+30 BEGIN ADDR OF OPERATOR STACK STK2T EQU CMN+31 END ADDR OF OPERATOR STACK TACC EQU CMN+32 TYPE OF ACCUMULATOR (IM=1,2,3) TC EQU CMN+33 TERMINATING CHARACTER TYPEX EQU CMN+34 TYPE OF INPUT EXP. TO $yEXP. EVAL. X1 EQU CMN+35 ASSIGN TABLE POINTER FOR D1 . X2 EQU CMN+36 ASSIGN TABLE POINTER FOR D2 . NTYPE EQU CMN+38 TTYPE EQU CMN+39 .R EQU CMN+40 HOLDS R(.A) 'JSB ERR0' FLAG HEADL EQU CMN+67 CMN+63 TO CMN+97 (PAGE HEADER) * * PAGE HEADER LINE * * * 1. FOUR WORDS OF BLANKS (CMN+63-66) * 2. TEN WORDS OF PROGRAM INFORMATION (CMN+67-76) * 3. TWELVE WORDS OF FIXED COMPILER INFORMATION (CMN+77-88) * 4. EIGHT WORDS OF VARIABLE COMPILER INFORMATION (CMN+89-96) * 5. ONE WORD OF BLANKS FOR TTY 2ND PASS LOGIC (CMN+97) * * * ASC 4, * ASC 10, PAGE 0001 * ASC 12, (FTN4--RELEASE 24177 * ASC 8,B--APRIL, 1971) * SEE NOTE BELOW * ASC 1, * * * THE 8 WORD ASCII STRING ABOVE IS CHANGED WITH EACH COMPILER * RELEASE. THE MONTH MUST ALWAYS BE HELD TO 6 CHARACTERS OR * LESS. THE STRING MUST ALWAYS BE 8 WORDS LONG. * * PGNUM EQU CMN+98 * TABT DEF .IAND TABNO DEC -12 * F4.1 EQU * * LDA TABT,I ADD FIXED EXTERNAL TABLE BASE ADA .DP ADDRESS TO DISPLACEMENTS IN STA TABT,I TABLE ABOVE AND REINSERT IN TABL ISZ TABT ISZ TABNO JMP F4.1 JMP FNSEE RETURN TO MAIN PROGRAM EQFLG NOP EQUALS FLAG L.INT DEF .INT. LT.IN DEF T.INT SKP * * ************************ * * EXPRESSION EVALUATOR * * ************************ * * THIS SUBROUTINE IS ENTERED WITH THE A REGISTER * CONTAINING THE TYPE OF INPUT EXPRESSION * * (A)= 0, STATEMENT FUNCTION. * (A)=-1, SUBROUTINE CALL STATEMENT. * (A)=-2, DO INITIAL PARAMETER. * (A)=-3, ARRAY ELEMENT IN I/O LIST. * (A)=-4, DO STATEMENT TERMINAL OR STEP-SIZE PARAMETER. * (A)=-5, COMPUTED GO TO INDEX EXPRESSION. * (A)=-6, ASSIGNMENT STATEMENT. * (A)=-7, IF EXPRESSION. * * * INITIALIZATION SECTIBgON * EE00 NOP STA TYPEX SAVE TYPE OF INPUT EXPRESSION LDA L SAVE NO.OF WORDS ON OPERATOR STA SAVEL STACK ON ENTRY (USUALLY 0) LDA D INITIALIZE STACK 1 (OPERAND STA STK1B STACK ) BOUNDS TO LAST WORD STA STK1T OF DO TABLE OR LAST WORD OF STA STK1N DATA POOL. CLA STA T NO. OF WORDS ON STACK 1 STA ACC ACC =0 STA TACC TACC =0 STA EQFLG EQFEG =0 (NO'='OP. ALLOWED) CCA STA OPCOD INITIALIZE OPCOD TO -1. STA PRIOR INITIALIZE PRIORITY TO -1. STA LASTC SET PREVIOUS TC TO -1 AS A FLAG. * * INITIALIZE TEMP CELL BASE NAMES * LDA KM7 STA MCNT TO MOVE 7 WORDS LDA L.INT FROM LOC. ELA,CLE,ERA LDA A,I LDB LT.IN TO LOC. JSB MOVE MOVE .INT. TO T.INT ETC. * * ENTRY SECTION * LDB TYPEX (B) = TYPE OF INPUT EXPRESSION. CCA CPB KM2 IF INPUT EXPRESSION IS DO INITIAL STA EQFLG SET EQFLG = -1. CPB KM6 IF INPUT EXPRESSION IS ASSIGN ST. STA EQFLG SET EQFLG = -1. LDA IM SAVE IM OF POSSIBLE STATEMENT STA T1EE FUNCTION NAME IN T1EE. LDA SRPL SAVE RPL AT BEGINNING OF POSSIBLE STA T2EE STATEMENT FUNCTION CODE LDA INT CPB KM5 IF INPUT EXPRESSION IS GO TO IND RSS CPB KM4 IF INPUT EXPRESSION IS DO PARAM, JSB ATC00 ALLOCATE INTEGER TEMP FOR STB T3EE POSSIBLE USE AND SAVE A.T.PTR. LDB TYPEX CPB KM7 IF INPUT EXPRESSION IS AN IF, JMP EE11 GO STACK '(' AND CONTINUE PROC. CPB KM6 IF INPUT EXP. IS ASSIGNMENT STATE, JMP EE035 PROCESS ITEMS ALREADY SCANNED CPB KM2 SAME AS ABOVE FOR DO INIT. PARAM. JMP EE035 CPB KM3 SAME AS ABOVE FOR ARRAY ELEMENT JMP EE035 IN I/O LIST. CPB KM1 IF A SUBROUTINE CALL RSS JMP EE030 LDA TC CPA B50 IS TC A LEFT PARENTHESIS? JMP EE035 YES - PROCESS WITH ARG LIST. LDA JSB 'JSB' JSB OA00 CLA CLB,INB OUTPUT DEF *+1 JSB OZ00 JMP EEEX EXIT * KM6 DEC -6 * * * EXPRESSION EVALUATOR MAIN BODY * * * EE03 LDB TC SAVE CURRENT TC AS STB LASTC PREVIOUS TC. EE030 JSB EXN00 EXAMINE NEXT CHARACTER. LDB TC CPB B53 IF IT IS A '+' JMP EE031 SEE IF IT IS A UNARY PLUS CPB B55 IF IT IS A '-', RSS SEE IF IT IS A UNARY MINUS JMP EE034 IF NEITHER, INPUT ITEM AND CONT. EE031 LDA LASTC A '+' OR '-' IS THE NEXT CHAR. CPA B75 IF LAST TC WAS AN '=' JMP EE032 THEN '+' OR '-' IS UNARY CPA B50 IF LAST TC WAS A '(', JMP EE032 THEN '+' OR '-' IS UNARY. CPA B54 IF LAST TC WAS A COMMA, JMP EE032 THEN '+' OR '-' IS UNARY. SSA IF NEGATIVE, BEGINNING OF EXPR., JMP EE032 THEN '+' OR '-' IS UNARY. LDA KM6 STA TKM6 COUNTER FOR 6 REL.OPS. LDB RELOP ADDRESS OF ASCII FOR 1ST ONE EE131 LDA B,I (A)=RELATIONAL OPERATOR CPA LASTC IF LASTC IS REL OP JMP EE032 THEN '+' OR '-' IS UNARY ADB K3 POINT TO NEXT REL OP ISZ TKM6 DONE LOOKING AT ALL OF THEM? JMP EE131 NO, CONTINUE. ISZ CC IF NONE OF ABOVE, IT IS A BINARY CLA '+' OR '-'. INCREMENT CC PAST IT STA IM IM=0 FOR BINARY + OR - JMP EE035 SET IM IN A TO 0 AND PROCESS IT. EE032 JSB II00 INPUT OPERATOR OR SIGNED CONSTANT SZA IF IM#0, THEN IT IS A SIGNED JMP EE035 CONSTANT. GO PROCESS IT. LDB TC MUST BE + OR - A VARIABLE. CPB B53 IF A '+', IGNORE IT JMP EE03+1 SAVE IT AS LAST TC AjND CONTINUE EE033 LDB B40 CHANGE TC = UNARY - TO STB TC TC = BLANK AND CONTINUE. JMP EE14 PROCESS UNARY '-' DIRECTLY. * B40 OCT 40 LASTC NOP TKM6 NOP COUNTER RELOP DEF LT. * EE034 JSB II00 INPUT NEXT ITEM IN EXPRESSION EE035 LDB TC (B)= TERMINATING CHARACTER. SZA,RSS IS IM=O? JMP EE08 YES, THERE IS NO OPERAND TO STACK LDA LASTC IF CHARACTER PRECEEDING CPA B51 NAME OR CONSTANT IS ')'. JMP EE16 ERROR 53 - MISSING OPERATOR CPB NO IF CURRENT TC IS .NOT., JMP EE16 MISSING OPERATOR. LDA .A NO, OPERAND MUST BE STACKED CPB B50 IS TC A '(' JMP EE04 YES, MAKE SURE IU=SUB OR ARR LDB IU SZB,RSS IS ITEM USAGE 0 ? JMP EE045 YES-ERROR-ILLEGAL USE OF NAME LDB TC NO-RESTORE B=TC JSB PU100 NO, STACK OPERAND DIRECTLY JMP EE09 FIND OUT WHAT OP OR DELIM IS. * B50 OCT 50 B53 OCT 53 B54 OCT 54 B55 OCT 55 * EE04 LDB IU CPB ARR IU = ARRAY? JMP EE05 YES, '(' IS VALID. STACK. CPB K.SUB IU=SUB? JMP EE05 YES, '(' IS VALID. STACK. EE045 LDA K49 NO,ILLEGAL USAGE OF NAME JSB ER00 * K49 DEC 49 KK42 OCT 11001 CODE=22, PRIORITY=1 (LEFT BRAKT) K.SUB OCT 200 NO ASC 1,NO * EE05 IOR KK01 (A)= .A,I JSB PU100 STACK OPERAND LDA KK42 STACK '(' AS CODE=22, PRIOR=1. EE06 JSB PU200 STACK OPERATOR JMP EE03 INPUT NEXT ELEMENT EE08 CPB B50 IS TC = '('? JMP EE11 YES, IT MUST START A SUB EXPRES. EE09 LDA IM IF IM OF PRESENT ITEM IS 0, SZA JMP EE095 NO - PROCESS OPERAND-TC COMBINATION. LDA LASTC YES - PREVIOUS CHARACTER IN THIS CPB NO IF PRESENT OPERATOR IS .NOT. JMP EE096 CPA B51 2 ADJACENT SPECIAL CHARACTER RSS COMBINATION MUST BE A ')' OR JMP EE16 ERROR 53 - MISSING OPERAND. EE095 CPB B51 JMP EE12 YES CPB B54 NO, IS TC = ',' JMP EE12 YES CPB B15 NO, IS TC = 'C/R' JMP EE115 YES JMP EE13 IM#0,FIND WHAT TC IS. EE096 CPA NO IF PREVIOUS OPERATOR IS .NOT., JMP EE16 ERROR 53 - ADJACENT OPERATORS JMP EE14 PROCESS DIRECTLY * B75 OCT 75 KK41 OCT 10401 CODE=21, PRIORITY=1 (LEFT PAREN) * EE11 STB SXF SET TO NON-ZERO AS A FLAG JSB II00 INPUT NEXT ITEM LDB NT (B)= ITS NAME TAG CPA CPX IF ITS ITEM MODE IS COMPLEX AND SZB,RSS IT IS A CONSTANT RSS NO - CONTINUE JMP EE035 YES - A COMPLEX CONSTANT WAS INPUT. LDA KK41 STACK '(' AS CODE=21,PRIOR=1. JSB PU200 STACK THE '(' LDA LASTC IF PREVIOUS TC IS A ')' CPA B51 JMP EE16 ERROR 53 - MISSING OPERATOR. LDA B50 STA LASTC SET PREVIOUS TC TO '('. LDA IM IF IM OF ITEM JUST INPUT. SZA IF IT IS 0, JMP EE035 NO - CONTINUE IN NORMAL WAY. LDB TC YES - SEE IF CHAR INPUT IS CPB B53 UNARY +, THEN JMP EE03+1 IGNORE IT AND INPUT NEXT ITEM. CPB B55 UNARY -, THEN JMP EE033 PROCESS AS UNARY MINUS JMP EE035 OTHERWISE PROCESS CURRENT ITEM * B2 OCT 2 ARR OCT 600 IU=3 (ARRAY) * EE115 CLA,RSS EE12 LDA B2 SET CURRENT PRIORITY OF DELIMTER STA I.CPR,I TO 2 AND CURRENT OPCOD=0, THEN CLA GO GENERATE CODE USING TC LATER STA I.CCO,I TO'REMEMBER' WHAT DELIMITER JMP EE40 WAS SCANNED. * I.CPR DEF CPRIO I.CCO DEF CCODE B52 OCT 52 * EE13 CPB B52 IS TC = '*'? RSS YES, SEE IF OPERATOR IS '**' JMP EE14 NO, LOOK UP OP IN TABLE JSB EXN00 EXAMINE NEXT CHARACTER LDA B5g?2 CPA TC IS NEXT CHARACTER AN '*'? JMP *+3 YES, MUST BE EXPONENT OPERATION STA TC NO, RESTORE TC = '*' AND CONTINUE JMP EE14 LDA DSTAR CHANGE TC TO '**' STA TC ISZ CC SHOVE CC PAST SECOND '*' EE14 CLA (A) WILL BE CODE FOR OPERATOR LDB OPTBL T0EE WILL CONTAIN POINTER TO INB EE15 STB T0EE NEXT OP. TABLE ENTRY TO CHECK. INA OP. CODE FOR NEXT OP. IN TABLE LDB B,I (B) _ OPERATOR FROM TABLE CPB TC IS TC = NEXT OPERATOR? JMP EE17 YES, PROCESS IT. CPA K16 HAS ENTIRE TABLE BEEN CHECKED? JMP EE16 YES, ERROR- ILLEGAL OP OR DELIMITER. LDB T0EE NO, LOOK AT NEXT OPERATOR IN ADB K3 THE TABLE JMP EE15 EE16 LDA K53 ERROR, ILLEGAL OP OR DELIMITER. JSB ER00 * K53 DEC 53 K16 DEC 16 KM2 DEC -2 B15 OCT 15 B51 OCT 51 * EE17 CPB B75 IS OPERATOR AN '='? RSS YES, MAKE SURE IT IS LEGAL. JMP EE18 NO, PROCESS IT ISZ EQFLG IS '=' ALLOWED AND NONE SEEN YET? JMP EE16 NO,'=' IS ILLEGAL IN PRESENT EXP EE18 ISZ T0EE YES, OPERATOR IS LEGAL, PROCESS. LDB T0EE,I (B) _ PRIORITY OF OPERATOR STA CCODE SAVE OPCOD OF CURRENT OP. STB CPRIO SAVE PRIORITY OF CURRENT OP. ALF,ALF IOR B (A) _ CODE, PRIORITY CMB,INB CHECK OP PRIORITY AGAINST TOP OP ADB PRIOR SSB,RSS IS PRIORITY > TOP OP. PRIORITY? JMP EE20 NO, GENERATE CODE JMP EE06 YES, STACK OP, INPUT NEXT ITEM * K10 DEC 10 CCODE NOP CURRENT OPERATOR CODE CPRIO NOP CURRENT OPERATOR PRIORITY OPTBL DEF TABLE-1 OPERATOR TABLE * * * WORDS TO HOLD BASE NAMES OF TEMP CELLS * DURING EXPRESSION EVALUATOR EXECUTION * * T.INT BSS 1 T.REA BSS 1 T.LOG BSS 1 NOP T.CPX BSS 1 T.DBL BSS 1 T.ADtBD BSS 1 K.4 DEC 4 * EE20 LDA OPCOD NEXT OPERATOR CODE CPA B21 IF '(' JMP EE44 ERROR - MISMATCHED PARENS. CPA B22 IF '<' JMP EE44 ERROR - MISMATCHED PARENS. LDB K2 ASSUME NO. OF OPERANDS IS TWO. CPA K.4 IS OPERATION A UNARY MINUS? ADB KM1 YES - NO. OF OPERANDS IS 1. CPA K10 IS OPERATION A UNARY .NOT.? ADB KM1 YES - NO. OF OPERANDS IS 1. STB PNUM SAVE NO. OF OPERANDS. CPB K1 IF PNUM=1,ONLY 1 OPERAND JMP EE21 CHECK ONLY STK1T,I. LDB STK1N,I IF NEXT-TO-TOP OPERAND IS SZB,RSS IN REGISTERS, JMP EE21 CHECK TOP OPERAND DIRECTLY. STB .A OTHERWISE MAKE SURE NEXT TO TOP JSB FA00 OPERAND IS NOT A SUBPROGRAM JSB NSUBT NAME. IF IT IS, ERROR 25. EE21 LDB STK1T,I IF TOP OPERAND IS IN REGISTERS SZB,RSS JMP EE22 CONTINUE - GENERATE CODE. STB .A OTHERWISE MAKE SURE JSB FA00 TOP OPERAND IS NOT JSB NSUBT SUBPROGRAM NAME. IF IT IS, ERROR. EE22 LDA OPCOD ALS ADA OPCOD ADA OPTBL (A) = OPTBL + 3*OPCOD LDA A,I (A) = ADDRESS OF CODE GENERATOR. JSB A,I JUMP TO CODE GENERATOR JSB I.PO1,I POP OPERANDS OFF STACK 1. LDA RESLT JSB PU100 PUSH RESULT ON OPERAND STACK 1. JSB I.PO2,I POP OPERATR OFF STACK 2. EE40 LDA CPRIO CMA,INA ADA PRIOR (A) = PRIOR - CPRIO SSA,RSS IF (A) <0, STOP CODE GENERATION. JMP EE20 IF (A) >=0, CONTINUE GEN. CODE LDA CCODE SZA,RSS IF CCODE = 0 JMP EE41 THEN CURRENT OP IS ')',',' OR C/R ALF,ALF NO, STACK OPERATOR AND CONTINUE IOR CPRIO (A) = CCODE,CPRIO JMP EE06 GO STACK OPERATOR AND CONTINUE * B21 OCT 21 B22 OCT 22 * EE41 LDA TC CPA B.15 IF DELIMITER IS CARRIAGE RETURN, ! JMP EE60 GO TO END OF EXPRESSION EVAL. CPA B.51 IF DELIMITER IS ')', JMP EE43 GO HANDLE IT. LDA OPCOD NO, MUST BE ',' CPA B22 IF TOP OPERATOR IS '<'. JMP EE03 CONTINUE SCAN OF EXPRESSION. LDB TYPEX FIND OUT TYPE OF INPUT EXPR. CPB KM4 DO TERM OR STEP-SIZE PARAMETER JMP EE42 YES CPB KM2 DO INITIAL PARAMETER JMP EE42 YES JMP EE16 NO, ILLEGAL USAGE OF COMMA. EE42 SSA IF OPCOD < 0, JMP EE60 END OF INPUT EXPRESSION. JMP EE20 FINISH GENERATING CODE EE43 LDA OPCOD CPA B21 IS TOP OPERATOR '('? JMP EE45 YES CPA B22 IS TOP OPERATOR '<'? JMP EE46 YES LDA I.T4I,I I/O LIST PROCESSOR FLAG SET? SZA NO JMP EE60 EE44 LDA K9 JSB ER00 ERROR - MISMATCHED PARENTHESIS. * B.51 OCT 51 B.15 OCT 15 I.T4I DEF T4IOL KM4 DEC -4 I.PO1 DEF PO100 I.PO2 DEF PO200 K1 DEC 1 * EE45 JSB I.PO2,I POP OFF '(' LDA OPCOD SSA,RSS IF (A) <0, OPERATOR STACK EMPTY JMP EE03 NO, CONTINUE EXPRESSION SCAN LDA KM7 YES, CPA TYPEX IF INPUT EXPRESSION IS AN 'IF' JMP EE605 END OF IF STATEMENT EXPRESSION JMP EE03 NO, CONTINUE STATEMENT SCAN. * KK35 OCT 77777 KM7 DEC -7 * EE46 CLB,INB STB PNUM AT LEAST THE SUBPROG NAME ON STACK LDB STK1T EE47 STB S1LOC INITIALIZE LOCATION OF SUB NAME LDA B,I (A) = STACK CONTENTS SSA IF (A) <0, JMP EE48 NAME OF SUBPROG ON STACK FOUND. ISZ PNUM INCREMENT NUMBER OF OPERANDS INB POINTS TO NEXT STACK 1 ENTRY JMP EE47 CONTINUE SEARCH. EE48 AND KK35 WIPE OFF SIGN BIT. STA B,I REPLACE ON STACK. STA .A SET .A TO POINT TO NAME JSB FA00 FETCH ASSIGNS FOR SUB OR ARR. LDA IU d CPA B600 IF NAME IS ARRAY JMP *+3 YES, JSB JTS00 NO, GEN. CALL TO SUBPROG. RSS JSB AEA00 GEN. ARRAY ELEMENT ADD CALC. JSB I.PO1,I POP OPERANDS OFF STACK 1. LDA RESLT JSB PU100 PUSH RESULT ON STACK 1 JSB I.PO2,I POP '<' OFF OPERATOR STACK 2. LDA PRIOR IS TOP OPERATOR PRIORITY SSA,RSS -1? (THEN OPERATOR STK IS EMPTY) JMP EE03 NO, CONTINUE PROCESSING. LDA TYPEX YES CPA KM3 IF ARRAY ELEMENT IN I/O LIST JMP EE71 YES, WRAP IT UP. CPA KM1 IF CALL STATEMENT JMP EE71 FINISH UP JMP EE03 NO, CONTINUE PROCESSING. B600 OCT 600 * EE60 LDB TYPEX (B) = TYPE OF INPUT EXPRESSION. CPB KM6 IF ASSIGNMENT STATEMENT, JMP EEEX FINISHED. CPB KM2 IF DO INITIAL PARAMENTR, JMP EEEX FINSIHED. * EE605 LDB STK1T,I IF RESULT IS IN REGISTERS, SZB,RSS JMP EE70 YES - CONTINUE STB .A NO - IF RESULT IS AN JSB FA00 EXTERNAL NAME, FLAG AS JSB NSUBT ERROR 25. OTHERWISE CONTINUE. EE70 LDB TYPEX TYPE OF INPUT EXPRESSION CPB KM7 IF IF EXPRESSION, JMP EE61 PROCESS SEPARATELY. CPB KM4 IF DO TERMINAL OR STEP PARAMETER, JMP EE63 PROCESS SEPARATELY. CPB KM5 IF GO TO INDEX EXPRESSION, JMP EE63 PROCESS WITH DO TERM OR STEP PAR JMP EE67 STATEMENT FUNCTION. EE71 JSB II00 INPUT TERMINATING CHARACTER SZA IF IM=0, JMP EE16 NO, MISSING DELIMITER. LDA STK1T,I RETURN A.T. PTR TO ADDRESS TEMP JMP EEEX TO ARRAY ELEMENT ADDRESS CELL. KM5 DEC -5 EE61 LDB STK1T,I (B) = IF EXPRESSION RESULT. SZB IS RESULT IN REGISTERS? JMP EE62 NO. LDA TACC TYPE OF REGISTER CPA ADDR IF ADDRESS RSS JMP EEEX NO,EXIT LDA KK73 YES, JSB OAI00 OUTPUT LDA A,I LDA .AF (A)= TYPE OF ARRAY JMP EEEX EXIT EE62 LDA LDA JSB SOA00 OUTPUT LDA FIRST WORD OF RESULT. JSB GT100 GET RESULT TYPE. CPA CPX IF COMPLEX, RSS YES JMP EEEX NO, FINISHED. LDA K58 ERROR 58 JSB ER00 COMPLEX EXPRESSION IS ILLEGAL EE63 LDB STK1T,I RESULT OF PARAM OR INDEX EXPRESSION. SZB IF RESULT IN REGISTERS, JMP EE64 NO, CONTINUE. LDA TACC YES, CPA ADDR IF ADDRESS IN REGISTER, JSB LD00 LOAD IN ARRAY ELEMENT. EE64 JSB GT100 GET RESULT TYPE CPA LOG IF LOGICAL, JMP AO02 ERROR - ILLEGAL LOGICAL CONVERSION. CPA INT IF INTEGER, RSS YES JMP EE65 NO. LDA STK1T,I (A) = 0 OR A.T. PTR TO RESULT SZA IF 0, CONTINUE PROCESSING. JMP EEEX IF NON 0, DONE. VAR OR CONST. RES JMP EE66 EE65 STA STYPE SET SOURCE TYPE OF CONVERSION. LDA INT OBJECT TYPE OF CONV. IS INTEGER LDB STK1T POINTER TO CONVERSION SOURCE. JSB CON00 CONVERT TO INTEGER EE66 LDA STA LDB T3EE JSB SOA00 OUTPUT STA IN FIRST INT. TEMP CELL LDA T3EE RETURN WITH (A) = A.T. PTR. TO JMP EEEX TEMP CELL INTO WHICH STORE MADE. EE67 JSB GT100 GET TYPE OF RESULT CPA T1EE IF RESULT IS OF SAME TYPE AS S.F. JMP EE68 CONTINUE PROCESSING. CPA LOG NO, IF RESULT IS LOGICAL, JMP AO02 ERROR - LOGICAL CONVERSION. STA STYPE SET SOURCE TYPE OF CONVERSION. LDA T1EE OBJECT TYPE OF CONVERSION. CPA LOG IF LOGICAL S.F. NAME, JMP AO02 ERROR, LOGICAL CONVERSION ILLEGAL. LDB STK1T POINTS TO SOURCE OF CONVERSION JSB CON00 GENERATE CONVERSION CODE. EE68 LDB STK1T,I JSB LD00 LOAD RESULT IF POSSIBLE p  LDA T1EE (A)= TYPE OF S.F. NAME. CPA INT IF INTEGER, JMP EE69 CPA LOG IF LOGICAL, JMP EE69 CPA REA OR REAL, JMP EE69 SAVE TEMP CELLS AND EXIT. LDB .DFER IN CASE DBL S.F. CPA CPX LDB .CFER IF COMPLEX S.F. JSB ODF00 OUTPUT JSB .DFER, OR JSB .CFER LDA KK01 LDB T2EE JSB OMR00 OUTPUT DEF SRPL,I OF HEAD OF SF CLA LDB STK1T,I JSB SOA00 OUTPUT DEF TEMP CELL OF SOURCE EE69 LDA KM7 STA MCNT LDA LTI.N FROM LOC. LDB LI.NT TO LOC. ELB,CLE,ERB LDB B,I JSB MOVE SAVE ALLOCATED TEMP CELLS EEEX JMP EE00,I * LI.NT DEF .INT. LTI.N DEF T.INT T0EE BSS 1 T1EE NOP T2EE NOP T3EE NOP * PRIOR NOP TOP OPERATOR PRIORITY OPCOD NOP TOP OPERATOR CODE PNUM NOP NUMBER OF OPERANDS TO BE POPPED SKP * * CODE GENERATION ROUTINES * * * * ******************** * * ASSIGN OPERATION * * ******************** * AO00 NOP JSB GT200 GET ITEM MODES OF TOP TWO OPER. CPA NTYPE IS TTYPE = NTYPE ? JMP AO01 YES, GENERATE LOAD AND STORE. CPA LOG IF LOGICAL, JMP AO02 ERROR STA STYPE STYPE _ TTYPE (SOURCE TYPE) LDA NTYPE (A) _ OBJECT TYPE OF CONVERSION CPA LOG IF LOGICAL, JMP AO02 ERROR LDB STK1T (B) _ POINTER TO STACK ENTRY JSB CON00 GENERATE CONVERSION CODE. AO01 JSB SCG00 LOAD SOURCE VARIABLE LDA STK1N,I A.T. POINTER OF STORING VAR. LDB STK1T,I A.T. POINTER OF LOADING VAR. JSB ST00 IF IT IS DOUBLE OR COMPLEX. STORE JMP AO00,I RETURN. AO02 LDA K55 JSB ER00 ERROR - CONV. OF LOGICAL ILLEGAL K55 DEC 55 * * ******* * * ADD * * ******* * ADD00 NOP ADD TWO TOP OPERANDS. # JSB PO00 MATCH TYPES, COMMUTE IF NON INT. JSB CCO00 CHECK IF INT COMMUTE WOULD HELP JSB SCG00 START CODE GENERATION (LOAD) LDA TTYPE CPA INT IF INTEGER, JMP ADD01 HANDLE IT SEPARATELY. CPA REA NO, SELECT ADD ROUTINE NAME. LDB .FAD CPA DBL LDB .XADD CPA CPX LDB .CADD JSB FCS00 COMPLETE CALLING SEQUENCE. JMP ADD00,I * .FAD DEF .TBL+2 FLOATING ADD .XADD DEF .TBL+16 DOUBLE PRECISION ADD .CADD DEF .TBL+20 COMPLEX ADD * ADD01 LDB STK1N,I JSB GAD00 OUTPUT INTEGER ADD JMP ADD00,I RETURN. * K9 DEC 9 KM1 DEC -1 * * ************ * * SUBTRACT * * ************ * SUB00 NOP SUBTRACT TOP FROM NEXT TO TOP OP JSB PO00 MATCH TYPES, COMMUTE IF NON INT. LDA TTYPE CPA REA IF REAL OPERANDS JSB CO00 COMMUTE THEM JSB SCG00 START CODE GENERATION (LOAD) LDA TTYPE CPA INT JMP SUB01 HANDLE INTEGER SEPARATELY. CPA REA NO, SELECT SUBTRACT ROUTINE NAME LDB .FSB CPA DBL LDB .XSUB CPA CPX LDB .CSUB JSB FCS00 COMPLETE CALLING SEQUENCE JMP SUB00,I * .FSB DEF .TBL+3 FLOATING SUB .XSUB DEF .TBL+17 DOUBLE PRECISION SUB .CSUB DEF .TBL+21 COMPLEX SUB * SUB01 LDA KK60 JSB OAI00 OUTPUT 'CMA,INA' LDB STK1N,I JSB GAD00 OUTPUT ADD NEXT-TO-TOP OPERAND JMP SUB00,I RETURN. * KM3 DEC -3 K58 DEC 58 KK60 CMA,INA * * ********** * * NEGATE * * ********** * NEG00 NOP GEN. CODE FOR UNARY MINUS. JSB GT100 GET TOP OPERAND TYPE. CPA LOG IS TOP OPERAND LOGICAL? JMP PO01 YES, ERROR - ARITH. OP. REQUIRED JSB SCG00 NO, START CODE GENERATION (LOAD) LDA TTYPE CPA INT IS OPERAND INTEGER? JMP NEG01 YES, HANDLE SEPARATELY. CPA REA NO, SELECT NEGATION ROUTINE NAME. JMP NEG02 YES, HANDLE SEPARATELY JSB FA00 GET ITEM MODE OF OPERAND LDA IM CPA ADDR IF IT IS AN ADDRESS TEMP CELL, JMP NEG03 TRANSFER ARRAY ELEMENT TO TEMP. LDA .A IF NOT, SEE IF IT IS A TEMP CELL ADA K2 OF TYPE DBL OR CPX RATHER THAN LDA A,I A SIMPLE VARIABLE. SSA IF TEMP CELL, JMP NEG04 GENERATE JSB ..DCM OR ..CCM NEG03 LDA TTYPE JSB ATC00 ALLOCATE DBL OR CPX TEMP CELL. LDB STK1T,I SOURCE OF JSB .DFER OR .CFER STA STK1T,I SAVE TEMP DESTINATION ON STACK JSB ST00 GENERATE JSB .DFER OR .CFER NEG04 LDB ..DCM IN CASE DBL OPERAND LDA TTYPE (A)= TYPE OF OPERAND CPA CPX LDB ..CCM JSB ODF00 GENERATE JSB .ROUTINE LDB STK1T,I OTHERWISE GENERATE DEF OPERAND STB RESLT CHANGE RESULT FROM REG. TO VAR. JSB DEF00 GENERATE DEF. JMP NEG00,I RETURN * ..DCM DEF .TBL+41 DOUBLE PRECISION NEGATION ..CCM DEF .TBL+42 COMPLEX NEGATION ..FCM DEF .TBL+4 COMPLEMENT FLOATING IN (A,B) * NEG01 LDA KK60 JSB OAI00 OUTPUT CMA,INA FOR INTEGER NEG. JMP NEG00,I RETURN NEG02 LDB ..FCM GENERATE JSB ..FCM FOR JSB ODF00 REAL NEGATION. JMP NEG00,I RETURN * JSB OCT 16000 K3 DEC 3 * * ************ * * MULTIPLY * * ************ * MPY00 NOP MULTIPLY TOP OPERANDS JSB PO00 MATCH TYPES,COMMUTE IF NONINT. JSB CCO00 CHECK IF INT COMMUTE WOULD HELP JSB SCG00 START CODE GENERATION (LOAD) LDA TTYPE CPA INT SELECT MPY ROUTINE NAME LDB .MPY CPA REA LDB .FMP CPA DBL LDB .XMPY CPA CPX LDB .CMPY JSB FCS00 COMPLETE CALLING SEQUENCE. JMP MPY00,I RETURN * .MPY DEF .TBL+5 FIX-POINT MPY .FMP DEF Gl.TBL FLOATING MPY .XMPY DEF .TBL+18 DOUBLE PRECISION MPY .CMPY DEF .TBL+22 COMPLEX MPY * * *********** * * DIVIDE * * *********** * DIV00 NOP DIVIDE NEXT-TO-TOP BY TOP OPRAND JSB PO00 MATCH TYPES, COMMUTE IF NON INT. LDA TTYPE CPA INT IF INT OR REAL OPERANDS RSS CPA REA JSB CO00 FORCE COMMUTATION JSB SCG00 START CODE GENERATION (LOAD) LDA TTYPE CPA INT IF INTEGER, JMP DIV01 HANDLE SEPARATELY CPA REA NO, SELECT DIVIDE ROUTINE NAME LDB .FDV CPA DBL LDB .XDIV CPA CPX LDB .CDIV JSB FCS00 COMPLETE CALLING SEQUENCE. JMP DIV00,I RETURN. * .FDV DEF .TBL+1 FLOATING DIV .XDIV DEF .TBL+19 DOUBLE PRECISION DIV .CDIV DEF .TBL+23 COMPLEX DIV .DIV DEF .TBL+6 FIX-POINT DIV * DIV01 LDA KK64 JSB OAI00 OUTPUT 'CLB' LDA KK70 JSB OAI00 OUTPUT 'SSA' LDA KK75 JSB OAI00 OUTPUT 'CMB' LDB .DIV JSB FCS00 OUTPUT JSB .DIV, DEF VARIABLE JMP DIV00,I RETURN. * KK64 CLB KK70 SSA KK75 CMB * * * ****************** * * EXPONENTIATION * * ****************** * EXP00 NOP JSB CO00 COMMUTE OPERANDS JSB SEO00 STORE TOP OP IF IN REGISTERS JSB GT200 GET TYPES OF TOP 2 OPERANDS LDA NTYPE (A) _ TYPE OF POWER LDB TTYPE (B)_ TYPE OF BASE CPB INT IS BASE INTEGER? JMP EXP02 YES CPB CPX NO, IS BASE COMPLEX? JMP EXP03 YES CPB REA NO, IS BASE REAL? JMP EXP04 YES CPB DBL NO, IS BASE DOUBLE? JMP EXP05 YES EXP01 LDA K45 NO - ERROR - ILLEGAL EXPONENT. JSB ER00 * K45 DEC 45 KK01 OCT 100000 DEF A,I * EXP02 CLB CPA INT IS POWER INTEGER? LDB .ITOI YES JMP EXP06 * .ITOI DEF .TBL+13 I**I * EXP03 CLB CPA INT IS POWER INTEGER? LDB .CTOI YES JMP EXP06 * .CTOI DEF .TBL+43 C**I .RTOI DEF .TBL+14 R**I .RTOR DEF .TBL+15 R**R * EXP04 CLB CPA INT IS POWER INTEGER? LDB .RTOI YES CPA REA IS POWER REAL? LDB .RTOR YES CPA DBL IS POWER DOUBLE? LDB .RTOD YES JMP EXP06 * .RTOD DEF .TBL+10 R**D .DTOI DEF .TBL+9 D**I .DTOR DEF .TBL+11 D**R .DTOD DEF .TBL+12 D**D * EXP05 CLB CPA INT IS POWER INTEGER? LDB .DTOI YES CPA REA IS POWER REAL? LDB .DTOR YES CPA DBL IS POWER DOUBLE? LDB .DTOD YES EXP06 SZB,RSS IF (B) IS STILL 0,NO NAME WAS JMP EXP01 SELECTED - ERROR - ILLEGAL EXP. JSB ODF00 GENERATE JSB .ROUTINE LDA TTYPE CPA CPX IF COMPLEX, JMP EXP07 YES - ALLOCATE TEMP FOR DEF RESULT CPA DBL IF DOUBLE, JMP EXP07 YES, SAME AS ABOVE. LDA NTYPE NO CPA DBL IF DOUBLE, JMP EXP07 YES, SAME AS ABOVE CLA STA RESLT RESULT WILL BE IN REGISTERS JMP EXP08 GENERATE REMAINDER OF CALL. SEQ. EXP07 JSB ATC00 ALLOCATE TEMP FOR DEF RESULT. STB RESLT SAVE .A AS RESLT JSB DEF00 GENERATE DEF RESULT. EXP08 LDB STK1T,I JSB DEF00 GENERATE DEF BASE. LDB STK1N,I JSB DEF00 GENERATE DEF POWER. LDA JSB LDB .ERR0 JSB SOA00 GENERATE JSB ERR0 JMP EXP00,I RETURN. * * * ******************* * * LOGICAL OR, AND * * ******************* * L.OR EQU * .OR. TOP OPERANDS L.AND NOP .AND. TOP OPERANDS JSB CCO00 COMMUTE OPERANDS IF HELPFUL JSB GT200 GET TYPES OF TOP TWO OPERANDS. CPA NTYPE ARE BOTH OPERANDS OF SAME TYPE? RSS YES JMP NOT01 NO - ERROR - NEED BOTH LOG OPS. CPA LOG ARE THEY LOGICAL? RSS YES, PROCESS. JMP NOT01 NO - ERROR - NEED BOTH LOG OPS. JSB SCG00 START CODE GENERATION (LOAD) LDB OPCOD CPB K8 IS OPERATION .OR.? LDA IOR YES CPB K9 IS OPERATION .AND.? LDA AND YES LDB STK1N,I LOAD OPERAND. JSB SOA00 OUTPUT 'IOR L' OR 'AND L' JMP L.AND,I RETURN. * AND OCT 12000 * * *************** * * LOGICAL NOT * * *************** * L.NOT NOP .NOT. TOP OPERAND. JSB GT100 GET TYPE OF TOP OPERAND CPA LOG IS TYPE LOGICAL? JMP NOT02 YES, GENERATE CODE. NOT01 LDA K56 NO, ERROR -OPERATOR REQUIRES JSB ER00 LOGICAL OPERAND. K56 DEC 56 NOT02 JSB SCG00 START CODE GENERATION(LOAD) LDA KK76 JSB OAI00 OUTPUT CMA JMP L.NOT,I RETURN. * * ************************* * * RELATIONAL LESS THAN * * ************************* * R.LT NOP OUTPUT CODE FOR R1 .LT. R2 JSB SUB00 OUTPUT CODE FOR R1 - R2 LDA TTYPE CPA CPX JMP R.LT1 OPERATION ILLEGAL FOR CPX ARGS JSB LDT00 LOAD FIRST WORD OF DBL RESULT JSB SLR00 SET RESLT=0, TYPE OF REG.=LOG. JMP R.LT,I RETURN. R.LT1 LDA K58 ERROR - COMPLEX ILLEGAL FOR JSB ER00 .LT.,.LE.,.GT.,.GE. K8 DEC 8 CPX OCT 50000 IM=5 COMPLEX * * **************************** * * RELATIONAL LESS OR EQUAL * * **************************** * R.LE NOP OUTPUT CODE FOR R1 .LE. R2 JSB CO00 COMMUTE OPERANDS JSB R.GE GEN. SAME CODE AS FOR R1 .GE. R2 JMP R.LE,I RETURN. * * ********************* * * RELATIONAL EQUALS * * ********************* * R.EQ NOP OUTPUT CODE FOR R1 .EQ. R2`6. JSB BEN00 OUT. CODE THAT IS SAME FOR EQ,NE LDA TTYPE CPA INT IF INTEGER OPERANDS, JMP R.EQ2 HANDLE SEPARATELY. CPA LOG IF LOGICAL OPERANDS, JMP R.EQ1 YES LDA KK77 NO, OUTPUT 'CLA,RSS' JSB OAI00 OUTPUT INST. R.EQ1 LDA KK76 JSB OAI00 OUTPUT 'CMA' JMP R.EQ3 R.EQ2 LDA KK78 OUTPUT 'CCA,RSS' JSB OAI00 LDA KK79 OUTPUT 'CLA' JSB OAI00 R.EQ3 JSB SLR00 SET RESLT=0 AND REG. TYPE =LOG. JMP R.EQ,I RETURN. * KK73 LDA A,I KK77 CLA,RSS KK78 CCA,RSS IOR OCT 32000 * * ************************ * * RELATIONAL NOT EQUAL * * ************************ * R.NE NOP OUTPUT CODE FOR R1 .NE. R2 JSB BEN00 OUT. CODE THAT IS SAME FOR EQ,NE LDA TTYPE CPA LOG ARE OPERANDS LOGICAL? JMP R.NE2 YES, DONE. CPA INT ARE OPERANDS INTEGER? RSS YES JMP R.NE1 LDA KK77 OUTPUT 'CLA,RSS' JSB OAI00 R.NE1 LDA KK80 OUTPUT 'CCA' JSB OAI00 R.NE2 JSB SLR00 SET RESLT=0, TYPE OF REG. = LOG. JMP R.NE,I RETURN * KK80 CCA LDA OCT 62000 * * *************************** * * RELATIONAL GREATER THAN * * *************************** * R.GT NOP OUTPUT CODE FOR R1 .GT. R2. JSB CO00 COMMUTE OPERANDS JSB R.LT OUT. SAME CODE AS FOR R1.LT.R2 JMP R.GT,I RETURN * * ****************************** * * RELATIONAL GREATER OR EQUAL * * ****************************** * R.GE NOP OUTPUT CODE FOR R1 .GE. R2 JSB R.LT OUT. SAME CODE AS FOR R1.LT.R2 LDA KK76 JSB OAI00 OUTPUT 'CMA' JMP R.GE,I RETURN. * K2 DEC 2 * * ******************* * * BASE OF EQ, NE * * ******************* * BEN00 NOP OUT. FIRST PART OF EQ, NE CODE. JSB GT200 GET TYPES OF TOP 2 OPERANDS. CPA NTYPE RSS JMP BEN01 IF TYPES NOT SAME, NOT LOG OR INT CPA INT IF INTEGER OPERANDS JMP BEN03 CPA LOG IF LOGICAL OPERANDS JMP BEN03 BEN01 JSB SUB00 OUTPUT CODE FOR R1 - R2 JSB LDT00 LOAD FIRST WORD CPX OR DBL TEMP LDA TTYPE CPA CPX IF COMPLEX RSS JMP BEN02 NO LDA IOR OUTPUT 'IOR TEMP +2' IOR K8 LDB RESLT JSB SOA00 BEN02 LDA KK81 OUTPUT 'SZA' JSB OAI00 JMP BEN00,I RETURN. * KK76 CMA KK81 SZA STA OCT 72000 .CFER DEF .TBL+25 COMPLEX TRANSER .DFER DEF .TBL+24 DOUBLE PRECISION TRANSFER * BEN03 JSB CCO00 CHECK TO SEE IF COMMUTE HELPS JSB SCG00 START CODE GENERATION (LOAD) LDB TTYPE CPB INT IF INTEGER OPERANDS, LDA CPA OUTPUT 'CPA OPERAND' CPB LOG IF LOGICAL OPERANDS, LDA XOR OUTPUT 'XOR OPERAND' LDB STK1N,I OPERAND IS NEXT-TO-TOP ON STK1 JSB SOA00 OUTPUT INSTRUCTION JMP BEN00,I RETURN * B140 OCT 140 XOR OCT 22000 CPA OCT 52000 LOG OCT 30000 IM=3 LOGICAL I.NC DEF NC I.R DEF .R SKP * * ********************** * * JUMP TO SUBPROGRAM * * ********************** * JTS00 NOP LDA IM SAVE IM OF SUBPROG NAME STA T0JTS LDA I.R,I (A)=.R STA T1JTS SAVE .R FOR SUBPROG NAME LDA I.NC,I (A)=NC CPA B140 IF NC ='%', SPECIAL CALLING JMP JTS03 SEQUENCE. HANDLE SEPARATELY. JSB SEO00 MAKE SURE ALL REGISTERS ARE STORED LDA JSB LDB S1LOC,I JSB SOA00 OUTPUT JSB TO SUBPROG NAME CLA LDB TYPEX (B) _ TYPE OF INPUT EXPRESSION. CPB KM1 IF IT IS A SUBROUTINE CALL STATE JMP JTS01 PROCESS LIKE INT., LOG. OR REA. LDB T0JTS CPB DBL  IF FUNCTION IS DBL, JMP JTS02 YES CPB CPX IF FUNCTION IS CPX, JMP JTS02 YES JTS01 LDB PNUM NO - MUST BE INT LOG REA OR SUBR JSB OZ00 OUTPUT DEF *+N+1 JMP JTS07 OUTPUT ARGUMENT DEFS * KK79 CLA * JTS02 LDB PNUM CALLS TO DBL OR CPX FUNCTIONS INB JSB OZ00 OUTPUT DEF *+N+2 LDA T0JTS JSB ATC00 ALLOCATE DBL OR CPX RESULT TEMP STB RESLT SAVE POINTER TO FUNCTION RESULT JSB DEF00 OUTPUT DEF RESULT JMP JTS08 OUTPUT ARGUMENT DEFS. JTS03 LDA T2JTS SEE IF CALL IS TO SIGN,ISIGN, LDB A,I IOR OR IAND CPB .NOT IF NONE OF THESE JMP JTS09 PROCESS CALL BY VALUE. CPB S1LOC,I IF IT IS ONE OF THEM, JMP JTS35 GENERATE SPECIAL CALL SEQUENCE INA JMP JTS03+1 CONTINUE CHECKING. JTS35 JSB SEO00 MAKE SURE ARGUMENTS ARE STORED LDA JSB LDB S1LOC,I OUTPUT JSB SOA00 JSB ISIGN, SIGN,IAND OR IOR LDA PNUM CPA K3 IS THERE EXACTLY TWO ARGUMENTS? JMP JTS07 YES - OUTPUT THEIR DEFS. JTS04 LDA K59 NO - ERROR - INCORRECT NO. OF ARGS. JSB ER00 K59 DEC 59 JTS06 LDA K60 NO - ERROR - ARGUMENT MODE ERROR JSB ER00 K60 DEC 60 JTS07 CLA STA RESLT RESULT WILL BE IN REGISTERS JTS08 LDB S1LOC OUTPUT ARGUMENT DEFS ADB KM1 STB S1LOC POINTS TO NEXT ARG IN STACK LDB B,I (B) _ A.T. POINTER TO ARG. JSB DEF00 OUTPUT DEF ARGUMENT LDB S1LOC CPB STK1T IS ENTIRE ARG LIST OUTPUT? JMP JTS11 YES, FINISH UP. JMP JTS08+1 NO, OUTPUT NEXT ARGUMENT DEF. JTS09 LDA PNUM PROCESS CALL BY VALUE CALL. SEQ. CPA K2 IS THERE EXACTLY ONE ARG.? RSS YES JMP JTS04 NO - ERROR - INCORRECT NO. OF ARGS JSB GT100 GET ARGUMENT TYPE. CPA INT ARGUMENT MUST BE INTEGER JMP JTS10 Y CPA REA OR REAL; RSS JMP JTS06 OTHERWISE, ARG. MODE ERROR. JTS10 JSB SCG00 OUTPUT LOAD ARGUMENT LDA JSB LDB S1LOC,I CPB .NOT IF IT IS 'NOT' FUNCTION JMP JTS13 GENERATE IN-LINE CODING JSB SOA00 OUTPUT JSB FUNCTION JTS11 LDB .ERR0 IN CASE NEEDED. LDA T1JTS .R FOR FUNCTION NAME SZA,RSS JMP JTS12 IF 0, FINISH UP LDA JSB IF NOT 0, JSB SOA00 OUTPUT JSB ERR0 JTS12 LDB T0JTS STB TTYPE TTYPE = TYPE OF FUNTION RESULT JMP JTS00,I JTS13 LDA KK76 CODE IN-LINE FOR 'NOT' JSB OAI00 FUNCTION IS 'CMA'. JMP JTS12 FINISH UP. * T0JTS NOP T1JTS NOP T2JTS DEF .IAND * REA OCT 20000 IM=2 REAL DBL OCT 60000 IM=6 DOUBLE ADDR OCT 70000 IM=7 ADDRESS * * THE ORDER OF .IAND,.IOR,..SIG,SIG..,AND .NOT MUST BE THIS * * * ************************* * * ARRAY ELEMENT ADDRESS * * ************************* * IBADR DEF BADDR AEA00 NOP LDA IM STA T5AEA SAVE ARRAY IM LDA IBADR,I STA T1AEA SAVE ARRAY BASE ADDRESS WORD LDA X1 STA T2AEA SAVE POINTER TO FIRST DIMENSION LDA X2 STA T3AEA SAVE POINTER TO SECOND DIM. LDA PNUM CMA,INA ADA I.ND,I (A)=(A)+ND INA (A) = ND+1-PNUM SSA,RSS IF (A) < 0 JMP AEA01 NO LDA K38 YES - ERROR - MORE SUBSCRIPTS JSB ER00 THAN DIMENSIONS * I.ND DEF ND K38 DEC 38 K25 DEC 25 SUB OCT 200 IU=1 (SUBROUTINE) * AEA01 LDB STK1T LOCATION OF FIRST SUBSCRIPT, STB T4AEA SAVE IT. AEA15 LDB B,I (B) = FIRST SUBSCRIPT SZB,RSS IF SUBSCRIPT IS IN REGISTERS, JMP AEA17 CONTINUE STB .A OTHERWISE MAKE SURE IT IS JSB FA00 NOT A SUBPROGRAM NAME. LDA K25 LDB IU E CPB SUB JSB ER00 LDB T4AEA,I (B) = SUBSCRIPT POINTER AEA17 JSB FT00 GET ITS TYPE CPA INT IS IT INTEGER? JMP AEA18 YES CPA LOG IF LOGICAL SUBSCRIPT, JMP AO02 ERROR - LOGICAL CONV. ILLEGAL STA STYPE SOURCE TYPE OF CONVERSION LDA INT OBJECT TYPE OF CONVERSION LDB T4AEA LOCATION OF CONVERSION SOURCE JSB CON00 CONVERT IT TO INTEGER AEA18 ISZ T4AEA POINTS TO NEXT SUBSCRIPT LDB T4AEA CPB S1LOC HAVE ALL SUBSCRIPTS BEEN CHECKED? RSS YES, CONTINUE PROCESSING JMP AEA15 NO, CONTINUE CHECKING SUBSCRIPTS. LDA PNUM CPA K.2 IF 2, THIS IS A VECTOR CALCULATI JMP AEA03 JSB SEO00 STORE REGISTERS IF FULL. CLA,INA IF IM=INTEGER OR LOGICAL, LDB T5AEA ARRAY TYPE CPB REA IF IM=REA, LDA K.2 CPB DBL IF IM=DBL, LDA K.3 CPB CPX IF IM=COMPLEX LDA K4 STA IDI LDA INT INTEGER CONSTANT JSB ESC00 JSB AI00 LDA LDB JSB OA00 OUTPUT LDB 1,2,3,OR 4 LDA KK79 (A) = 'CLA' IF 2 DIM. LDB PNUM CPB K4 IF 3 DIM., LDA KK82 (A) = 'CLA,INA' JSB OAI00 OUTPUT 'CLA' OR 'CLA,INA' LDB ..MAP JSB ODF00 OUTPUT JSB ..MAP CLA LDB T1AEA JSB OMR00 OUTPUT DEF BASE ADDRESS LDB S1LOC AEA02 ADB K.M1 STB S1LOC POINTS TO STACK LOC FOR NEXT SUB LDB B,I JSB DEF00 OUTPUT DEF 2 OR 3 SUBSCRIPTS LDB S1LOC CPB STK1T ARE ALL DEF SUBSCRIPTS OUTPUT RSS YES JMP AEA02 NO, OUTPUT NEXT ONE LDB T2AEA JSB DEF00 OUTPUT DEF FIRST DIMENSION LDB T3AEA LDA PNUM CPA K4 IF 3 DIMENSIONAL JSB DEF00 OUTPUT DEF SECOND DIMENSION JMP AEA06 FINSIH UP * K4 DEC 4 K.3 DEC 3 K.M1 DEC -1 ..MAP DEF .TBL+26 ARRAY ELEMENT ADDRESS CALCULATE. KK82 CLA,INA LDB OCT 66000 * AEA03 JSB SCG00 HANDLE VECTOR ADDRESS CALCULATION LDA INT JSB ESC00 ESTABLISH INTEGER CONSTANT OF -1 CCA STA IDI JSB AI00 ASSIGN IT TO TABLE LDA ADA JSB OA00 GENERATE ADA -1 LDB T5AEA CPB INT IF INTEGER VECTOR JMP AEA05 YES CPB LOG OR LOGICAL JMP AEA05 YES CPB REA OR REAL LDA KK83 OUTPUT 'ALS' CPB DBL OR DOUBLE JMP AEA04 CPB CPX OR COMPLEX LDA KK84 OUTPUT 'ALS,ALS' JSB OAI00 JMP AEA05 * KK83 ALS KK84 ALS,ALS K.M3 DEC -3 I.MPY DEF .TBL+5 FIXED POINT MULTIPLY * AEA04 LDB I.MPY OUTPUT JSB .MPY JSB ODF00 LDA INT JSB ESC00 ESTABLISH INTEGER CONSTANT LDA K.3 OF 3 AND ASSIGN IT TO TABLE. STA IDI JSB AI00 LDB .A .A POINTS TO CONSTANT 3 JSB DEF00 OUTPUT DEF 3 AEA05 LDA ADA LDB T1AEA JSB OMR00 GENERATE ADA BASE OF VECTOR AEA06 LDB ADDR STB TTYPE STB TACC CLA STA ACC SET AS FLAG STA RESLT LDB T5AEA STB .AF SET IM OF ARRAY INTO .AF LDB TYPEX IS ARRAY ELEMENT IN I/O LIST? CPB K.M3 JMP AEA07 YES, SAVE ADDRESS IN TEMP CELL. LDB T5AEA NO, (B)=IM OF ARRAY CPB CPX IF COMPLEX ARRAY OR JMP AEA07 YES CPB DBL IF DOUBLE ARRAY RSS YES JMP AEA00,I RETURN. AEA07 JSB GST00 SAVE ADDRESS IN TEMP CELL STA RESLT SAVE POINTER TO TEMP CELL JMP AEA00,I RETURN. * T1AEA NOP T2AEA NOP T3AEA NOP T4AEA NOP T5AEA NOP * ADA OCT 42000 INT OCT 10000 IM=1 INTEGER * SKP * * **************** * * GENERATE ADD * * **************** * GAD00 NOP LDA ADA JSB SOA00 OUTPUT ADA (B) JMP GAD00,I * * ************************* * * LOAD TEMP FIRST WORD * * ************************* * LDT00 NOP LOAD TEMP FIRST WORD IF CPX,DBL LDB TTYPE CPB DBL IF OPERAND DOUBLE OR JMP LDT01 CPB CPX IF OPERAND COMPLEX, RSS JMP LDT00,I NO, RETURN, LDT01 LDB RESLT GENERATE 'LDA TEMP' TO GET LDA LDA ITS FIRST WORD IN A REGISTER JSB SOA00 JMP LDT00,I RETURN * * ********************** * * SET LOGICAL RESULT * * ********************** * SLR00 NOP CLA SO REGISTER RESULT WILL BE STACKED STA RESLT LDB LOG REGISTER TYPE LOGICAL STB TTYPE JMP SLR00,I RETURN * * ************************* * * START CODE GENERATION * * ************************* * SCG00 NOP CLA STA RESLT RESLT=0 IF OPERATION RESULT IS LDB STK1T,I JSB LD00 LOAD TOP OPERAND JMP SCG00,I RETURN. * * *************************************************** * * DISPLACEMENTS FROM BASE OF FIXED EXTERNAL TABLE * * *************************************************** * * * THE ORDER OF .IAND,.IOR,..SIG,SIG..,AND .NOT MUST BE THIS * .IAND OCT 263 IAND FUNCTION .IOR OCT 257 IOR FUNCTION ..SIG OCT 226 SIGN FUNCTION SIG.. OCT 313 ISIGN FUNCTION .NOT OCT 267 NOT FUNCTION .ERR0 OCT 242 ERROR SUBROUTINE ERR0 .IFIX OCT 307 IFIX CONVERSION FUNCTION .DBLE OCT 5 DBLE CONVERSION FUNCTION .MPLX OCT 105 CMPLX CONVERSION FUNCTION .LOAT OCT 221 FLOAT CONVERSION FUNCTION .REAL OCT 236 REAL CONVERSION FUNCTION .SNGL OCT 232 SNGL CONVERSION FUNCTION * * * * ******************** * * PREPARE OPERANDS * * ******************** I.MAT DEF MAT00 * ?nPO00 NOP SET UP OPERANDS FOR OBJ CODE GEN JSB I.MAT,I MATCH OPERAND TYPES,GEN CONV COD LDA TTYPE CPA LOG IF OPERANDS LOGICAL,ERROR. JMP PO01 CPA INT IF INTEGER, JMP PO00,I EXIT. CPA REA IF REAL, JMP PO00,I EXIT. JSB CO00 COMMUTE IF DBL OR CPX JMP PO00,I EXIT. PO01 LDA K57 ERROR - OPERATOR REQUIRES ARITH. JSB ER00 OPERANDS. K57 DEC 57 * * *************************** * * FINISH CALLING SEQUENCE * * *************************** * FCS00 NOP JSB ODF00 OUTPUT JSB .ROUTINE LDA TTYPE CPA REA IF OPERATION IS WITH REAL OPS, JMP FCS01 SKIP DEF TEMP, DEF OPERAND 1. CPA INT IF OPERATION IS INT MPY, DIV JMP FCS01 OUTPUT 'DEF J' JSB ATC00 ALLOCATE TEMP FOR DBL OR CPX STB RESLT CHANGE RESULT FROM 0 TO TEMP PTR JSB DEF00 OUTPUT DEF TEMP. LDB STK1T,I JSB DEF00 DEF TOP OPERAND. FCS01 LDB STK1N,I JSB DEF00 DEF NEXT-TO-TOP OPERAND. JMP FCS00,I RETURN. * * ***************** * * GENERATE LOAD * * ***************** * LD00 NOP (B) = A.T. POINTER TO LOADING VAR. SZB IS (B)=0? JMP LD02 NO - OPERAND NOT ALREADY IN REGISTER LDA TACC CPA ADDR IS ADDRESS IN ACCUMULATOR? RSS JMP LD015 NO LDA .AF CPA REA IF REAL ARRAY RSS JMP LD005 LDB .DLD OUTPUT JSB .DLD JSB ODF00 LDA .KK01 DEF A,I JSB OAI00 JMP LD007 LD005 LDA KK73 IF INT OR LOG, JSB OAI00 OUTPUT LDA A,I LD007 LDA .AF SET TACC=IM OF REGISTERS LD01 STA TACC SET TACC = IM OF REGISTER(S) LD015 CLA STA ACC ACC=0 SINCE OPERAND NOW IN REGISTER JMP LD00,I RETURN, OPERAND IN REGISTER(S). * .KK01 OCT 100000 .DLD DEF .TBL+7 DOUBLE LOAD * LD02 STB T0LD SAVE .A TO LOADING DATUM LDB ACC SZB IS REGISTER EMPTY? JSB GST00 NO, STORE IT IN TEMP. LDB T0LD STB .A RESTORE .A JSB GIM00 GET ITEM MODE OF LOADING DATUM. CPA INT IF INTEGER, JMP LD03 OUTPUT LDA I CPA LOG IF LOGICAL, JMP LD03 OUTPUT LDA L CPA REA IF REAL, JMP LD04 OUTPUT DLD R JMP LD00,I NOT ANY, NOT LOADABLE. EXIT. LD03 LDA LDA JSB OA00 OUTPUT LDA OPERATION. JMP LD05 LD04 LDB .DLD JSB ODF00 OUTPUT JSB .DLD LDB T0LD JSB DEF00 OUTPUT DEF R LD05 JSB GIM00 JMP LD01 SET ACC=0 AND RETURN. * T0LD BSS 1 * * ****************** * * GENERATE STORE * * ****************** * ST00 NOP ASSUME IM OF SOURE, DEST SAME. STA .A STA T0ST SAVE A.T. PTR TO STORE DEST. STB T1ST SAVE A.T. PTR TO CPX,DBL SOURCE. JSB GIM00 GET IM OF DEST OF STORE STA T2ST SAVE IM OF DEST OF STORE CPA INT IF INTEGER, OR JMP ST01 CPA K.LOG IF LOGICAL JMP ST01 OUTPUT 'STA' INSTRUCTION. CPA REA IF REAL, LDB .DST CPA CPX IF COMPLEX TRANSFER, OR LDB .CFER CPA DBL IF DOUBLE TRANSFER LDB DFER. .DFER JSB ODF00 GNERATE JSB .ROUTINE LDB T0ST JSB DEF00 GENERATE DEF DESTINATION JMP ST02 * K.LOG OCT 30000 DFER. DEF .TBL+24 D.P. TRANSFER K.STA OCT 72000 'STA' .DST DEF .TBL+8 DOUBLE STORE * ST01 LDA K.STA 'STA' JSB OA00 OUTPUT 'STA' INSTRUCTION ST02 LDB T0ST POINTER TO TEMP CELL. STB ACC,I IF ACC#0, STORE T0ST ON STACK 1 CLA SINCE REGISTERS EMPTY, STA ACC RESET ACC AND TACC =0. STA TACC LDA T2ST IS IM OF DESTINATION CPA CPX COMMPLEX? JMP ST03 YES CPA DBL DOUBLE? JMP ST03 YES JMP ST00,I RETURN ST03 LDB T1ST JSB DEF00 GENERATE DEF SOURCE OF DBL OR CPX JMP ST00,I * T0ST NOP T1ST NOP T2ST NOP * * ************************** * * GENERATE STORE IN TEMP * * ************************** * GST00 NOP FOR STORING A AND A-B INTO TEMPS LDA TACC TYPE OF TEMP CELL NEEDED. JSB ATC00 ALLOCATE TEMP CELL LDB TACC CPB ADDR IS ADDRESS BEING STORED IN TEMP? JMP GST01 YES JSB ST00 NO, STORE INT, LOG OR REAL JMP GST02 GST01 LDA INT TEMPORARILY MAKE IM OF TEMP. INT STA TACC AND SET TACC = INT. JSB DIM00 LDA .A STORE REGISTER CONTAINING JSB ST00 ADDRESS IN TEMP CELL. LDA ADDR JSB DIM00 CHANGE ITS IM BACK TO ADDRESS. LDA .AF INSERT IM OF ITEM BEING ADDRESSED JSB DAF00 INTO AF OF TEMP CELL A.T. ENTRY. GST02 LDA .A LEAVE .A OF TEMP CELL IN A REG. JMP GST00,I RETURN * * **************** * * GENERATE DEF * * **************** * DEF00 NOP OPERAND ASSUMED NOT TO BE IN REG CLA JSB SOA00 OUTPUT THE DEF JMP DEF00,I RETURN. * * *********************** * * MATCH OPERAND TYPES * * *********************** * MAT00 NOP JSB GT200 GET TYPES OF TWO TOP OPERANDS CPA NTYPE ARE TYPES ALREADY THE SAME? JMP MAT00,I YES, RETURN. CPA K.LOG IF LOGICAL, JMP AO02 ERROR - LOG. CONV. ILLEGAL LDB NTYPE LOAD TYPE OF NEXT-TO-TOP OPERAND CPB K.LOG IF LOGICAL, JMP AO02 ERROR - LOG. CONV. ILLEGAL CPA INT IS TTYPE = INT? JMP MAT01 YES,THEN NTYPE > TTYPE. CPB INT IS NTYPE = INT? JMP MAT02 YES,THEN TTYPE > NTYPE. CPA REA IS TTYPE4 = REA? JMP MAT01 YES,THEN NTYPE > TTYPE. CPB REA IS NTYPE = REA? JMP MAT02 YES, THEN TTYPE > NTYPE. CPA CPX IS TTYPE = CPX? JMP MAT02 YES, THEN TTYPE > NTYPE = DBL. MAT01 STA STYPE NO,THEN NTYPE=CPX > TTYPE=DBL. STB A CONVERT TTYPE OPERAND TO NTYPE STB TTYPE MAKE TTYPE = NTYPE LDB STK1T TOP OPERAND TO BE CONVERTED JMP MAT03 CALL CONVERSION SUBROUTINE. MAT02 STB STYPE CONVERT NTYPE OPERAND TO TTYPE STA NTYPE MAKE TTYPE = NTYPE LDB STK1N NEXT-TO-TOP OPERAND TO BE CONV. MAT03 JSB CON00 GENERATE CONVERSION CODE JMP MAT00,I RETURN * STYPE BSS 1 * * **************************** * * GENERATE CONVERSION CODE * * **************************** * CON00 NOP ON ENTRY, STA OTYPE (A)=TYPE TO BE CONVERTED TO AND STB T4CON (B)=POINT. TO STK ENT CONT ELEM. LDB B,I (B)=POINT. TO A.T. ENT OF ELEM. STB T0CON WHICH IS TO BE CONVERTED. CLB T3CON IS 0 IF RESULT OF CONVER. STB T3CON IS LEFT IN REGISTERS (ASSUME) CPA DBL IS OBJECT OF TYPE DOUBLE? JMP CON01 YES CPA CPX NO, IS OBJECT OF TYPE COMPLEX RSS YES JMP CON02 NO - DON'T ALLOCATE TEMP CELL CON01 JSB ATC00 ALLOCATE TEMP CELL TO HOLD STB T3CON RESULT OF CONV., SAVE IT CON02 LDA STYPE (A)= SOURCE TYPE OF CONVERSION. LDB OTYPE (B) = OBJECT TYPE OF CONVERSION CPA REA IS SOURCE REAL? CPB INT YES, IS OBJECT INTEGER? JMP CON03 SOURCE NOT REAL OR ABOVE 2 TRUE LDA T0CON JSB SEO00 STORE REAL IF IN REGISTERS STA T0CON IF STORE DONE, UPDATE PTR TO ELEMENT JMP CON04 CON03 LDB T0CON LOAD CONVERSION SOURCE JSB I.LD0,I IF POSSIBLE AND NEEDED. CON04 CLB B=0 AS FLAG UNTIL NAME SELECTED STB T1CON T1CON FOR DEF *+1+T1CON LDA STYPE (A)= TYPE OF SOURCE OF CONVER. CPA INT IS SOURCE TYPE INTEGER? JMP CON05 YES, CPA CPX NO, IS SOURCE TYPE COMPLEX JMP CON06 YES CPA DBL NO, IS SOURCE TYPE DOUBLE PREC.? JMP CON07 YES LDA OTYPE NO, IT MUST BE REAL. CPA INT IS OBJECT TYPE INTEGER? LDB I.IFX,I YES, (B)=.IFIX CPA DBL NO, IS OBJECT TYPE DOUBLE? LDB .DBLE YES CPA CPX NO,IS IT COMPLEX? LDB I.MPX,I YES, (B)=.MPLX JMP CON08 GENERATE REST OF CALLING SEQ. CON05 LDA OTYPE CPA REA OBJECT REAL? LDB I.LOA,I YES, (B)=.LOAT CPA CPX OBJECT COMPLEX? LDB .ICPX YES CPA DBL OBJECT DOUBLE? LDB .IDBL YES JMP CON08 GENERATE REST OF CALLING SEQ. * I.LD0 DEF LD00 I.LOA DEF .LOAT I.IFX DEF .IFIX I.MPX DEF .MPLX .ICPX DEF .TBL+45 CONVERT INTEGER TO COMPLEX .IDBL DEF .TBL+44 CONVERT INTEGER TO DOUBLE .CINT DEF .TBL+48 CONVERT COMPLEX TO INTEGER * CON06 LDA OTYPE CPA INT OBJECT INTEGER? LDB .CINT YES CPA DBL OBJECT DOUBLE? LDB .CDBL YES CPA REA OBJECT REAL? LDB I.REA,I YES, (B)=.REAL JMP CON08 GENERATE REST OF CALLING SEQ. * I.REA DEF .REAL I.SNG DEF .SNGL .JSB. OCT 16000 K.2 DEC 2 .CDBL DEF .TBL+40 CONVERT COMPLEX TO DOUBLE .DINT DEF .TBL+47 CONVERT DOUBLE TO INTEGER .DCPX DEF .TBL+46 CONVERT DOUBLE TO COMPLEX * CON07 LDA OTYPE CPA INT OBJECT INTEGER? LDB .DINT YES CPA CPX OBJECT COMPLEX? LDB .DCPX YES CPA REA OBJECT REAL? LDB I.SNG,I (B)=.SNGL CON08 STB T2CON SAVE NAME SELECTED LDA K.2 IF DEF *+N+1 IS NEEDED, CPB I.REA,I .REAL ? JMP CON09 DEF *+2 CPB I.SNG,I .SNGL ? JMP CON09 DEF *+2 INA CPB .DeBLE JMP CON09 DEF *+3 INA CPB I.MPX,I .MPLX ? JMP CON09 DEF *+4 CPB I.LOA,I .LOAT ? JMP CON09+1 CPB I.IFX,I .IFIX ? JMP CON09+1 JMP CON11 CON09 STA T1CON LDA .JSB. 'JSB' JSB SOA00 OUTPUT NO-DOT CONV. ROUTINE RSS CON11 JSB ODF00 OUTPUT DOT CONV. ROUTINE CLA LDB T1CON SZB IF B#0, DEF *+N+1 IS NEEDED. JSB OZ00 LDB T3CON SZB IF B#0, DEF RESULT IS NEEDED. JSB DEF00 LDA STYPE CPA INT JMP CON10 YES, CALLING SEQ. IS COMPLETE LDA T2CON CPA I.IFX,I .IFIX ? JMP CON10 YES, CALLING SEQUENCE IS COMPLETE LDB T0CON JSB DEF00 GENERATE DEF OF SOURCE LDA T2CON CPA I.MPX,I .MPLX ? RSS YES, GENERATE DEF 0 JMP CON10 LDA REA JSB ESC00 ESTABLISH REAL CONSTANT JSB CLIDI CONSTANT IS 0. JSB AI00 ASSIGN 0 CONSTANT TO A.T. LDB .A POINTER TO A.T. ENTRY FOR CONST. JSB DEF00 GENERATE DEF 0 CON10 LDA T3CON UPDATE POINTER IN OPERAND STA T4CON,I STACK TO POINT TO CONV. RESULT. SZA A=0 IF RESULT IS IN REGISTER(S) JMP CON00,I RETURN LDA T4CON STA ACC UPDATE ACC LDA OTYPE STA TACC UPDATE TACC JMP CON00,I RETURN * T0CON BSS 1 T1CON BSS 1 T2CON BSS 1 T3CON BSS 1 T4CON BSS 1 OTYPE BSS 1 * * * ****************** * * CHECK COMMUTE * * ****************** * CCO00 NOP CALLED IF COMM. NOT REQUIRED LDA ACC BUT MAY BE ADVANTAGEOUS TO GET SZA,RSS REGISTER OPERAND ON TOP OF STACK JMP CCO00,I RETURN IF NOTHING IN REGISTERS. CPA STK1T IF TOP OPERAND IS ALREADY IN REG. JMP CCO00,I RETURN. JSB CO00 ELSE COMMUTE OPERANDS AND JMP CCO00,I RETURN. * Q* ******************** * * COMMUTE OPERANDS * * ******************** * CO00 NOP CALLED WHEN COMM. IS REQUIRED. LDA ACC SZA,RSS IF NO OPERAND IS IN REGISTERS, JMP CO01 GO COMMUTE TOP 2 OPERANDS CPA STK1N IF NEXT-TO-TOP OPERAND IN REG, JMP CO02 GO CHANGE ACC TO STK1T. JSB GST00 NO, STORE TOP OPERAND BEFORE COMM. CO01 LDA STK1T,I (A)_TOP OPERAND ON STACK 1. LDB STK1N,I (B)_ NEXT-TO-TOP OPERAND ON STACK STB STK1T,I TOP OPERAND _ (B) STA STK1N,I NEXT-TO-TOP OPERAND _ (A) JMP CO00,I RETURN CO02 LDA STK1T UPDATE ACC TO STK1T SINCE STA ACC COMMUTATION PUTS REGISTER OPER. JMP CO01 ON TOP OF STACK. * * ************************ * * STORE EITHER OPERAND * * ************************ * SEO00 NOP STORE EITHER OF TOP 2 OPERANDS. LDB ACC IF ACC # 0 THEN SOME OPERAND SZB IS IN REGISTERS JSB GST00 STORE THE OPERAND IN A TEMP CELL JMP SEO00,I RETURN. REGISTERS NOW EMPTY. * * ********************************* * * GET TYPES OF TOP TWO OPERANDS * * ********************************* * GT200 NOP GET IM OF TWO TOP OPERANDS LDB STK1N,I JSB FT00 GET IM OF NEXT TO TOP OPERAND STA NTYPE AND SAVE IT IN NTYPE. JSB GT100 GET IM OF TOP OPERAND. JMP GT200,I RETURN * * *************************** * * GET TYPE OF TOP OPERAND * * *************************** * GT100 NOP LDB STK1T,I JSB FT00 GET IM OF TOP OPERAND STA TTYPE AND SAVE IT IN TTYPE JMP GT100,I RETURN * * ************* * * FIND TYPE * * ************* * FT00 NOP ENTERED WITH (B) = A.T. PTR. STB .A LDA TACC THIS IS IM IF OPER. IN REGISTERS CPA ADDR IS TACC = ADDR? i LDA .AF YES, REPLACE TACC WITH .AF SZB (B)=0 IF TOP OPERAND IN REGISTERS JSB GIM00 FETCH ITEM MODE OF CELL. STA IM SAVE IM OF TOP OPERAND IN TYPE. JMP FT00,I RETURN * * ***************** * * GET ITEM MODE * * ***************** * GIM00 NOP IF IM=ADDR FOR .A, CHANGE IT. JSB FA00 FETCH ASSIGNS LDB IM (B) _ IM OF .A CPB ADDR IF IM=ADDRESS, STA IM YES, SET IM=AF .A LDA IM MAKE SURE UPDATED IM IS IN (A) JMP GIM00,I RETURN * VAR OCT 400 IU=2 (VARIABLE OR CONSTANT) TEMPS DEF T.INT-1 * B377 OCT 377 * * ************************ * * ALLOCATE A TEMP CELL * * ************************ * ATC00 NOP ON ENTRANCE TO THIS SUBROUTINE, STA IM (A)=IM OF TEMP CELL NEEDED ALF MAKE IM A SMALL INTEGER ADA TEMPS (A)_ ADDRESS OF TEMP CELL NAME WORD CCB (B)_ -1 ADB A,I (B)_ TEMP CELL NAME -1 STB A,I TEMP CELL NAME UPDATED, NEXT NAME STB T0ATC SAVE TEMP CELL NAME CLA STA NT NAME TAG = 0 (VARIABLE) LDA VAR STA IU ITEM USAGE = VARIABLE JSB CLNM CLEAR NAME TO BLANKS LDA T0ATC AND B377 STA NID+1 NID+1=SECOND HALF OF NAME LDA T0ATC ALF,ALF AND B377 STA NID NID=FIRST HALF OF NAME JSB AI00 ASSIGN NAME TO A.T. LDA .A (A)_ ASSIGN TAB PTR TO TEMP CELL LDB .A (B) _ ASSIGN TAB PTR TO TEMP CELL JMP ATC00,I RETURN * T0ATC BSS 1 * * * ****************************** * * SEPARATE CODE AND PRIORITY * * ****************************** * SCP00 NOP LDA STK2T,I (A) _ TOP WORD IN OPERATOR STACK AND B377 STA PRIOR PRIOR _ PRIORITY OF TOP OPERATOR LDA STK2T,I ALF,ALF 6 AND B377 STA OPCOD OPCOD _ CODE OF TOP OPERATOR JMP SCP00,I RETURN * * **************** * * PUSH STACK 1 * * **************** * * * STACK 1 IS THE OPERAND STACK. IT IS IN HIGH CORE, JUST * BELOW THE DO TABLE, AND GROWS TOWARD LOW CORE. THIS * ROUTINE IS ENTERED WITH (A) = WORD TO BE STACKED. * (A) = .A GENERALLY EXCEPT THAT * (A) = .A,I FOR SUB OR ARRAY WITH (LIST) * (A) = 0 IF OPERAND IS IN REGISTER(S). * * IF (A) = 0, THEN TTYPE = IM OF REGISTERS * * (A) AND (B) ARE NOT DESTROYED BY THIS SUBROUTINE * PU100 NOP PUSH STACK 1 TO STACK OPERANDS. STB T0PU1 SAVE B REGISTER. CCB ADB I.T,I STB I.T,I T=T-1 ADB I.S1B,I STK1B STB STK1T NEW PTR TO TOP OPERAND ON STK1. CPB STK2T IF 2 TOP POINTERS THE SAME, JMP DPOVF DATA POOL OVERFLOW SZA,RSS IF (A)=0, OPERAND IS IN REGISTERS, STB ACC SO SET ACC TO POINT TO STACK ENTRY. INB STB STK1N NEW PTR TO NEXT-TO-TOP OPERAND. STA STK1T,I STORE OPERAND ON STACK. LDB TTYPE SZA,RSS IF (A)=0, OPERAND IS IN REGISTERS, STB TACC SO SET TACC = TYPE OF REG. CONTENT LDB ACC CMB,INB ADB STK1N (B)= STK1N-ACC. SSB IF (B) < 0, REG. CONTENTS BELOW JSB GST00 STK1N, SO GENERATE STORE IN TEMP LDB T0PU1 RESTORE B REGISTER. JMP PU100,I RETURN * I.T DEF T I.S1B DEF STK1B T0PU1 NOP * * *************** * * POP STACK 1 * * *************** * PO100 NOP TO UNSTACK AND DISCARD OPERANDS. LDB I.T,I (B)=T ADB PNUM ADD NO. OF ENTRIES TO BE POPPED STB I.T,I FROM STACK TO T. ADB I.S1B,I STK1B STB STK1T NEW PTR TO TOP OPERAND ON STK1. INB STB STK1N NEW PTR TO NEXT-TO-TOP OPERAND. o CLB IN CASE REGISTER OPERAND WAS STB ACC POPPED FROM STACK, SET ACC AND STB TACC TACC TO 0. JMP PO100,I RETURN. * * **************** * * PUSH STACK 2 * * **************** * * * STACK 2 IS THE OPERATOR STACK. IT IS IN LOWER CORE THAN * IS STACK 1, JUST ABOVE THE ASSIGNMENT TABLE, AND GROWS * TOWARD HIGH CORE. THIS ROUTINE IS ENTERED WITH (A) = * WORD TO BE STACKED. * * PU200 NOP PUSH STACK 2 TO STACK OPERATORS ISZ L L=L+1 LDB STK2B ADB L STB STK2T CPB STK1T IF TOP TWO POINTERS SAME, JMP DPOVF DATA POOL OVERFLOW. STA STK2T,I STACK OPERATOR JSB SCP00 UPDATE OPCOD, PRIOR OF TOP OP. JMP PU200,I RETURN * * *************** * * POP STACK 2 * * *************** * PO200 NOP TO UNSTACK AND DISACARD OPERATORS CCB ADB L STB L L=L-1 ADB STK2B STB STK2T NEW PTR TO TOP OPERATOR CCB STB PRIOR REINITIALIZE OPCODE AND PRIOR TO 0. STB OPCOD LDB L CPB I.SVL,I IS OPERATOR STACK EMPTY? RSS YES,EXIT JSB SCP00 NO, UPDATE OPCOD, PRIOR OF TOP OP. JMP PO200,I RETURN. I.SVL DEF SAVEL * * * OPERATOR TABLE - 3 WORD ENTRIES * * WORD 1: THE OPERATOR * WORD 2: ITS PRIORITY * WORD 3: ADDRESS OF ROUTINE TO GENERATE ITS CODE * * TABLE OCT 75 =, OCT 0 PRIORITY=0, CODE=1 DEF AO00 * OCT 53 +, OCT 7 PRIORITY=7, CODE=2 DEF ADD00 * OCT 55 -, OCT 7 PRIORITY=7, CODE=3 DEF SUB00 * OCT 40 UNARY - (BLANK) OCT 10 PRIORITY=8, CODE=4 DEF NEG00 * OCT 52 *, OCT 11 PRIORITY=9, CODE=5 DEF MPY00 * OCT 57 j/, OCT 11 PRIORITY=9, CODE=6 DEF DIV00 * DSTAR ASC 1,** **, OCT 12 PRIORITY=10, CODE=7 DEF EXP00 * ASC 1,OR LOGICAL OR, OCT 3 PRIORITY=3, CODE=8 DEF L.OR * ASC 1,AN LOGICAL AND OCT 4 PRIORITY=4, CODE=9 DEF L.AND * ASC 1,NO LOGICAL NOT, OCT 5 PRIORITY=5, CODE=10 DEF L.NOT * LT. ASC 1,LT RELATIONAL LESS THAN, OCT 6 PRIORITY=6, CODE=11 DEF R.LT * ASC 1,LE RELATIONAL LESS OR EQUAL TO, OCT 6 PRIORITY=6, CODE=12 DEF R.LE * ASC 1,EQ RELATIONAL EQUAL, OCT 6 PRIORITY=6, CODE=13 DEF R.EQ * ASC 1,NE RELATIONAL NOT EQUAL, OCT 6 PRIORITY=6, CODE=14 DEF R.NE * ASC 1,GE RELATIONAL GREATER OR EQUAL TO, OCT 6 PRIORITY=6, CODE=15 DEF R.GE * ASC 1,GT RELATIONAL GREATER THAN, OCT 6 PRIORITY=6, CODE=16 DEF R.GT * * * A 21 CARD BUFFER BEGINS IMMEDIATELY AFTER THE * END OF THIS SEGMENT. IT IS FOLLOWED BY THE FIXED * SYMBOL TABLE, AND THAT IS FOLLOWED BY THE DYNAMIC * SYMBOL TABLE. THESE AREAS ARE ORIGINED AT THE END * OF SEGMENT F4.1 BY APPROPRIATE CODE IN SEGMENT F4.0. * IF SEGMENT F4.1 INCREASES OR DECREASES IN SIZE, THE * BSS LABELED 'LLTAB' AT THE END OF SEGMENT F4.0 * SHOULD BE INCREASED OR DECREASED, RESPECTIVELY. * SEE THE END OF SEGMENT F4.0 FOR MORE INFORMATION. * * END F4.1 @hASMB,R,L,C HED FTN4--16K VERSION--PASS 2 NAM F4.2,5 PASS 2 * * * * * * * * EXT EXEC EXT GNA00 EXT FID00 EXT MOVE EXT OPSY EXT PASS1 EXT P1ASC * * * A EQU 0 B EQU 1 * * C EQU * BSS 25 .CCW. EQU C COMPILER CONTROL WORD DP EQU C+1 DATA POOL START LOCATION .DP EQU C+2 FIX-EXT BASE ADDR. LO EQU C+3 LULID EQU C+5 LOGICAL UNIT OF LIST DEVICE LUPUD EQU C+6 LOGICAL UNIT OF PUNCH DEVICE LINEP EQU C+7 LINES PER PAGE ON LISTING LOGO EQU C+8 LOAD & GO FLAG (NON-0 MEANS L&G) LUNLD EQU C+9 L.U. OF LIST DEV (0=TTY,ELSE LP) STKNO EQU C+10 STARTING TRACK NUMBER LUN1T EQU C+12 LOGICAL UNIT NUMBER OF 1ST TRACK NSECT EQU C+13 NO. OF SECTORS IN EACH COMP TRCK SBF EQU C+16 SUBPR FLAG(0=MAIN,ELSE SUBPROG.) NLINE EQU C+21 -(# OF LINES REMAINED IN PAGE) CSIZE EQU C+22 COMMON SIZE MCNT EQU C+23 -(# WDS REMAINED TO BE MOVED) .TBL EQU * BSS 51 CMN EQU * BSS 99 * .A EQU CMN+0 ASSIGNMENT TABLE POINTER .TRK EQU CMN+1 CROSS REF 1ST TRACK (FOR F4.3) IM EQU CMN+11 ITEM MODE IU EQU CMN+12 ITEM USAGE NID EQU CMN+14 BSS 6 NAME ID FIELD ND EQU CMN+20 NUMBER OF DIMENSIONS RETLO EQU CMN+23 SUBPROGRAM OR FUNCTION RETURN LOCATION .DISC EQU CMN+32 NO. SECTORS/1ST TRACK (FOR F4.3) * (WITH BINARY WRITE BIT SET) .SECT EQU CMN+34 NO. SECTORS/1ST TRACK (FOR F4.3) BUFNO EQU CMN+38 NO. HALF-BUFFERS FOR CROSS REF. NW EQU CMN+41 NUMBER OF WORDS IN A.T.ENTRY AF EQU CMN+42 ADDRESS FIELD OF A.T. ENTRY. AT EQU CMN+43 ADDRESS TYPE OF A.T. ENTRY. * * * HEADL EQU CMN+67 CMN+63 TO CMN+97 (PAGE HEADER) * * PAGE HEADER LINE * * * 1. FOUR WORDS OF BLANKS (CMN+63-66) * 2. TEN WORDS OF PROGRAM INFORMATION (CMN+67-76) * 3. TWELVE WORDS OF FIXED COMPILERm INFORMATION (CMN+77-88) * 4. EIGHT WORDS OF VARIABLE COMPILER INFORMATION (CMN+89-96) * 5. ONE WORD OF BLANKS FOR TTY 2ND PASS LOGIC (CMN+97) * * * ASC 4, * ASC 10, PAGE 0001 * ASC 12, (FTN4--RELEASE 24177 * ASC 8,B--APRIL, 1971) * SEE NOTE BELOW * ASC 1, * * * THE 8 WORD ASCII STRING ABOVE IS CHANGED WITH EACH COMPILER * RELEASE. THE MONTH MUST ALWAYS BE HELD TO 6 CHARACTERS OR * LESS. THE STRING MUST ALWAYS BE 8 WORDS LONG. * * PGNUM EQU CMN+98 * WBP17 DEF WBUF+17 LEADC OCT 1004 K17 DEC 17 * F4.2 EQU * * CRSEC EQU F4.2 CROSS REF. BUFFER OVERLAY * LDA .CCW. CROSS REF REQUIRED? AND K16 SZA,RSS JMP F4.20 NO - CONTINUE JSB ATK00 YES - ALLOCATE FIRST TRACK FOR CR LDA TRACK STA .TRK SAVE FIRST TRACK NUMBER LDA DISC STA .DISC SAVE FIRST DISC NUMBER LDA SECTR STA .SECT SAVE # SECTORS ON 1ST TRACK * F4.20 CLA STA BUFNO SET # HALF-BUFFERS OF CR TO 0 LDA .CCW. PUNCHED TAPE REQUIRED? SSA,RSS YES JMP SWAP4 LDA LUPUD ADA B1000 STA LEADC JSB EXEC DEF *+3 DEF K3 GENERATE TAPE LEADER DEF LEADC SWAP4 EQU * LDA LUN1T FIX IOC CONTROL WORDS FOR BINARY IOR B100 STA LDISC CONTROL WORD FOR DISC INPUT LDA LUPUD IOR B100 STA LPUNC CONTROL WORD FOR PUNCHED OUTPUT * * ********************* * * OUTPUT NAM RECORD * * ********************* * LDA STKNO DEFINE DRAC STA DTRAC * * * READ INTERMEDIATE CODE * JSB EXEC DEF *+7 DEF K1 REQUEST CODE FOR READ DEF LDISC DEF WBUF DEF RBUFL DEF DTRAC DEF DSECT * ISZ DSECT INCREMENT SECTOR NO. TO 1. LDA LINEP # OF LINES PER PAGE CMA,âINA STA NLINE NLINE=-(# OF LINES REMAINING) LDA CSIZE STORE CSIZE STA WBUF+8 LDB WBP17 'DEF WBUF+17' TO COMPUTE CHECKSUM STB WLOC JSB CHKSM LDA K17 DEFINE LOUT STA LOUT ALF,ALF STA WBUF RECORD LENGTH GOES IN 1ST WORD JSB .WRIT OUTPUTS NAM RECORD * * ********************* * * OUTPUT ENT RECORD * * ********************* * LDA WLOC TRANSFER ENT TO START OF WBUFFER STA B ADA K7 (A)=(A)+7 STA PTR LDA DWBUF 'DEF WBUF' STA ASSLC JSB .TRAN,I TRANS LDB SBF IS THIS A SUBPROGRAM? SZB,RSS JMP OE1 NO, CONTINUE LDB RETLO INSERT SUBPROGRAM ENTRY LOCATION STB WBUF+6 INTO ENT RECORD OE1 EQU * LDA ASSLC SET CHKSM PARAMETERS STA WLOC JSB CHKSM LDA K7 (A)=7 STA LOUT JSB .WRIT OUTPUT ENT * * ************************ * * OUTPUT EXT RECORD(S) * * ************************ * LDA WBP59 'DEF WBUF+59' STA EWBUF JSB SET LDA .DTBL SET CWA STA CWA LDA MK51 STA CTR1 LDA ADEXT SET PTEXT STA PTEXT LPTBL LDB CWA,I ENTRY NEGATIVE? SSB,RSS JMP ADVPT CMB,INB MAKE POSITIVE LDA MK3 STA CTR2 CONTU ISZ WLOC LOAD EXT ENTRY LDA PTEXT,I STA WLOC,I ISZ PTEXT ISZ CTR2 JMP CONTU AND KK774 ADA B ISZ WORD STA WLOC,I JMP ADVCT APPEND IDENTIFIER * * .TRAN DEF TRANS WBP59 DEF WBUF+59 .DTBL DEF .TBL START OF .TBL ADEXT DEF EXTST BASE LOC. OF EXTST ASSLC NOP ASSBF PTR B100 OCT 100 B1000 OCT 1000 CTR1 NOP COUNTER FOR .TBL TABLE CTR2 NOP COUNTER FOR EXT ENTRY EWBUF NOP LAST ADDR OF WBUFFER MK3 DEC -3 MK51 DEC -51 PThEXT NOP EXT POINTER KK774 OCT 177400 K7 DEC 7 B3 OCT 3 CWA NOP CURRENT WORD ADDR. IN TABLES * * ADVPT LDA PTEXT SET PTEXT TO NEXT ENTRY ADA B3 STA PTEXT ADVCT LDA WLOC CPA EWBUF JSB CLOSE ISZ CWA ISZ CTR1 JMP LPTBL LDA .DP SET CWA FOR FIXED EXT INA STA CWA CKLO LDA CWA C CPA LO JMP FINAL CPA DP CWA=DP? ISZ CWA SET CWA FOR DATA POOL LDA CWA,I COMPUTE SNE AND K7 ADA CWA STA SNE LDA CWA,I COMPUTE ITEM USAGE AND K600 CPA K200 JMP CPTID NXENT LDA SNE GO TO NEXT ENTRY STA CWA JMP CKLO * * K200 OCT 200 K600 OCT 600 SNE NOP START NEXT ENTRY * * CPTID ISZ CWA COMPUTE ID LDB CWA,I SSB,RSS JMP NXENT CMB,INB LDA WLOC SET ID POINTER ADA B3 STA TEMP LDSYM ISZ CWA LDA CWA NEXT ENTRY? CPA SNE JMP APPID ISZ WLOC WLOC ADV IS LATE LDA CWA,I LOAD SYMBOLS STA WLOC,I JMP LDSYM APPID ISZ WORD LDA TEMP,I AND KK774 ADA B STA TEMP,I LDA TEMP STA WLOC LDA WLOC WBUF FILLED? CPA EWBUF JSB CLOSE JMP CKLO * * * * CLOSE NOP LDA WORD 1ST WORD SZA,RSS JMP .DBL. RAL ADA WORD ADA B3 STA LOUT ALF,ALF LDB DWBUF 'DEF WBUF' STA B,I INB 2ND WORD LDA LOUT ADA DWBUF 'DEF WBUF' STA TEMP2 LDA KK10. =B100000 ADA WORD STA B,I ADB K..2 (B)=(B)+2 RETN ADA B,I INB CPB TEMP2 RSS JMP RETN STA WBUF+2 3RD WORD JSB .WRIT JSB SET IN JMP CLOSE,I * WBP2 DEF WBUF+2 WBP60 DEF WBUF+60 WORD NOP NUMBER OS:F ENTRIES K..2 DEC 2 KK10. OCT 100000 * * * FINAL JSB CLOSE JMP .DBL. * * * SET NOP LDA WBP2 'DEF WBUF+2' STA WLOC CLA SET WORD STA WORD LDA HEADL 2 BLANKS LDB WBP60 'DEF WBUF+60' STB TEMP LDB DWBUF 'DEF WBUF' CLEAR STA B,I INB CPB TEMP JMP SET,I JMP CLEAR * * * * * ******************** * * COMPUTE CHECKSUM * * ******************** * CHKSM NOP LDB DWBUF 'DEF WBUF' INB LDA B,I ADB K..2 (B)=(B)+2 MORE ADA B,I INB CPB WLOC RSS JMP MORE STA WBUF+2 JMP CHKSM,I * * ********************************************* * * TO PROCESS DBL RECORDS * * ********************************************* * * .DBL. LDA CON1 DEFINE CONTROL WORD ADA LULID STA CON1 * LDA LUN1T FIX IOC CONTROL WORDS FOR BINARY IOR B100 STA LDISC LDA LUPUD IOR B100 STA LPUNC LDA STKNO INITIALIZE STARTING TRACK NO. STA DTRAC * * ** SECTOR, RECORD INFORMATION,AND SOURCE RECORD ROUTINE ** * JSB SETUP LDA DWBUF 'DEF WBUF' ADA B3 STA WBUF1 LDB DLBUF SET SLBUF LDA .CCW. LISTING SOURCE? AND K18 'M' OR 'C' SZA,RSS ADB B3 NO, ALTER SLBUF STB SLBUF CLB STB TEMP4 TEMP4=0 LDA .CCW. IF NOT LISTING ASSEMBLY CODE, AND K4 DON'T LIST HEADER SZA JSB HEAD PRINTS HEADING; SKIPS 2 LINES READ JSB .READ READ NEXT SECTOR INTO READ BUFF LDA DRBUF 'DEF RBUF' STA RLOC SET RLOC = DRBUF ADA B.100 (A)=(A)+100B CLB SET RBUF END+1 TO 0 STB A,I EXAM1 LDA RLOC,I EXAMINE FIRST WORD OF RECORD SZA WORD=0?,IE SECTOR END?  JMP COMPR LDA DSECT YES,LAST SECTOR IN TRACK? INA CPA .NSEC,I JMP EXAM2 ISZ DSECT NO: ADVANCE DSECT JMP READ GO TO READ EXAM2 LDA DRBUF 'DEF RBUF' ADA K61 STA RBUF1 LDA RBUF1,I STA DTRAC ISZ RBUF1 LDA RBUF1,I STA .NSEC,I ISZ RBUF1 LDA RBUF1,I IOR B.100 STA LDISC CLA STA DSECT SET DSECT JMP READ * * .NSEC DEF NSECT B.100 OCT 100 RBUF1 NOP DRBUF DEF RBUF BASE ADDRESS OF READ K61 DEC 61 TEMP4 BSS 1 MARKS WHEN SOURCE REC SPLIT O1777 OCT 1777 * * COMPR LDA RLOC,I COMPUTE NREC AND O1777 =B1777 LDB KM5 ADB A LOUT GTR THAN 4 THEN B NON NEG ADA RLOC STA NREC STA PTR SET PTR FOR SOURCE LDA RLOC,I SOURCE RECORD? SSA JMP SOURC SSB,RSS IGNORE DATA RECORD? JMP DPREP NO; GO TO DATA PREP ROUTN LDA NREC ADV TO NEXT RECORD STA RLOC JMP EXAM1 RETURN TO RECORD EXAM START SOURC RAL STA DI1 LDB DLBUF INB LDA TEMP4 0 IF FIRST TIME THRU SZA,RSS STB ASSLC YES; SET ASSLC =DLBUF+1 CLB STB TEMP4 TEMP4=0 LDB RLOC SET B INB JSB TRANS TRANSFER SOURCE RECORD STB RLOC SET NEXT RECORD START LDA DI1 SOURCE RECORD ENDEDX SSA ISZ TEMP4 TEMP4=1 IF DI1 IS ON SSA JMP EXAM1 LDA .CCW. OUTPUT SOURCE? AND K2 =D2 SZA,RSS JMP CR05 'C' ONLY BIT SET (MAYBE) LDA DLBUF INA LDA A,I FIRST WORD OF SOURCE LINE CPA CBLNK IS FIRST WORD 'C '? RSS YES - IT IS A CROSS REF BUFFER JMP CR06 NO - LIST SOURCE LINE CR05 LDA .CCW. AND K16 LISTING CROSS REFERENCE SZA JSB CR00 YES - MOVE CROSS REF BUF7FER JMP EXAM1 CONTINUE - CR06 JSB LIST LIST SOURCE LINE JMP EXAM1 CONTINUE CBLNK ASC 1,C 'C' INDICATOR FOR CROSS REF BUF * * CON1 OCT 1100 KM5 DEC -5 DSECT NOP DISK SECTOR NO. DTRAC NOP TRACK # DWBUF DEF WBUF BASE ADDRESS OF WRITE LDISC NOP NREC NOP ADDR OF NEXT RECORD IN RBUF RBUFL DEC 64 RBUF LENGTH KK100 OCT 100000 * * *************************************** * * ALLOCATE TRACK FOR CROSS REFERENCE * * *************************************** * ATK00 NOP JSB EXEC DEF *+6 DEF K4 ALLOCATE 1 TRACK DEF K1 DEF TRACK TRACK NUMBER DEF DISC LOGICAL UNIT NUMBER OF DISC DEF SECTR NUMBER OF SECTORS/TRACK LDA DISC IOR B100 SET BINARY WRITE BIT STA DISC JMP ATK00,I EXIT * TRACK NOP DISC NOP SECTR NOP * * ************************************ * * CROSS REFERENCE BUFFER MOVE * * ************************************ * CR00 NOP OUTPUT CROSS REF BUFFERS LDA KM32 MOVE 32 WORDS STA MCNT CLB LDA BUFNO CURRENT HALF-BUFFER NUMBER SLA IF ODD, 2ND HALF OF BUFFER ADB B40 ADD 32 TO BUFFER ADDRESS ADB DEFCR MOVE CR BUFFER TO THIS ADDRESS LDA DLBUF FROM SOURCE LIST BUFFER+2 ADA K2 (IGNORE 2 BLANKS AND 'C ') JSB MOVE LDA BUFNO SLA IF ODD HALF-BUFFER, JMP CR01 OUTPUT IT. LDA CSECT IF EVEN HALF-BUFFER, INA IS CURRENT SECTOR THE LAST ONE? CPA SECTR FOR THE TRACK? RSS JMP CREX NO - EXIT. ISZ BUFNO BUMP HALF BUFFER NO. LDA TRACK YES - SAVE TRACK STA T2CR LDA DISC SAVE DISC LOGICAL UNIT NO. STA T1CR JSB ATK00 ALLOCATE A TRACK AND SAVE =PLDB DEFCR TRACK SWITCHING INFORMATION. ADB B40 LDA TRACK NEXT TRACK STA B,I INB LDA DISC NEXT TRACK'S LOGICAL UNIT NO. STA B,I INB LDA SECTR STA B,I SAVE NO. SECTORS/TRACK JSB EXEC DEF *+7 DEF K2 WRITE LAST SECTOR DEF T1CR LOGICAL UNIT NUMBER DEF CRSEC FROM CRSEC DEF K64 64 WORDS DEF T2CR TRACK DEF CSECT SECTOR NUMBER CLA STA CSECT RESET SECTOR NUMBER TO 0. RSS CR01 JSB CROUT WRITE OUT BUFFER OF INFO. CREX ISZ BUFNO INCREMENT HALF-BUFFER NUMBER JMP CR00,I EXIT. * * DEFCR DEF CRSEC ADDRESS OF CROSS REF BUFFER CSECT OCT 0 NEXT SECTOR TO FILL KM32 DEC -32 K64 DEC 64 T1CR NOP T2CR NOP * * * ********************************** * * CROSS REFERENCE BUFFER OUTPUT * * ********************************** * CROUT NOP JSB EXEC DEF *+7 DEF K2 OUTPUT 1 SECTOR DEF DISC TO THIS DISC DEF CRSEC FROM CRSEC DEF K64 ALWAYS ONLY 64 WORDS DEF TRACK TO CURRENT TRACK DEF CSECT AND SECTOR ISZ CSECT INCREMENT SECTOR NUMBER JMP CROUT,I AND EXIT. * * * ************************** * * READ INTERMEDIATE CODE * * ************************** * .READ NOP JSB EXEC DEF *+7 DEF K1 DEF LDISC DEF RBUF DEF RBUFL DEF DTRAC DEF DSECT JMP .READ,I * K1 DEC 1 * * * * * * * ************************** * * TRANSFER BLOCK ROUTINE * * ************************** * TRANS NOP TRNS1 LDA B,I STA ASSLC,I INB ISZ ASSLC CPB PTR JMP TRANS,I JMP TRNS1 * * * * * * ** PREPARATION FOR DATA WORKING SEGMENT ROUTINE ** * DPREP pISZ RLOC LDA RLOC,I COMPUTE NEW STORAGE ADDRESS IN A RAL,CLE,SLA,ERA SKIPS IF FLAG, REMOVES JMP ADJST ADVRP ISZ RLOC ADA RLOC,I ADD ON TO ADDRESS LDB ASA B CONTAINS OLD ASA STA ASA ASA UPDATED CPB A JMP CYCL2 CONTINUE STORING DATA FIELDS CMB,INB ADA B SET A= A-B STA TEMP2 SZB SKIP OUTPUT JSB TERM.,I CLOSE RECORD, OUTPUT IT JSB CLR1 CLEARS LIST BUFFER TO BLANK LDA TEMP2 SSA BRANCH TO PROPER LIST LOAD JMP MINUS LDB DSYM1 LOAD 'BSS' ADB K7 JSB ACOD2 LDB TEMP2 LOAD BSS OPERAND REST LDA ASSLC JSB ASCI2 ISZ ASSLC ADJUST ASSLC ISZ ASSLC LDA ASSLC,I MAKE LAST DIGIT A BLANK AND B157 =B177757 STA ASSLC,I ISZ ASSLC LDA K19 STA LOUT SDT LOUT LDA .CCW. PRINT LISTING IF BIT A SET AND K4 SZA JSB LIST OUT PUT LIST JMP CYCL MINUS LDB DSYM1 LOAD "ORG " ADB K9 JSB ACOD2 LDB ASA LOAD ORG OPERAND JMP REST LOGIC CONTINUES AT REST * * K9 DEC 9 K19 DEC 19 K58 DEC 58 KK160 OCT 160000 RCYC NOP PHASE OF READ INDICATOR CYCLE RIIND NOP DATA INDICATOR FOR READ RSIND NOP DATA INDICATOR STRING FOR READ K.5 DEC 5 TERM. DEF TERM * * CYCL2 SZB OUTPUT ASA IF START OF 1ST RECORD JMP CYCL1 CYCL LDA ASA STORE ASA OF NEXT RECORD STA WBUF1,I CYCL1 CCA STA RCYC PNREC ISZ RLOC ADVANCE READ PTR LDA RLOC READ PTR AT START OF NEXT REC? CPA NREC JMP EXAM1 YES; GO TO BEGINNING SEGMENT ISZ RCYC NO; TIME TO READ NEXT IND STRNG? JMP RIND LDA RLOC,I STORE IND STRING STA RSIND LDA KM5 =D-5, SET READ CYCLE TO 1ST TIME STA RCYC ISZ RLOC YES; ADVANCE PTR TO NEXT RSIND j LDA RLOC GO TO BEGINNING ROUTINE IF PTR CPA NREC AT START OF NEXT RECORD JMP EXAM1 RIND LDB RSIND STORE LEFTMOST IND LDA RSIND AND KK160 =B160000 ALF,RAR STA RIIND BLF,RBR ROTATE RSIND LEFT TO NEXT IND STB RSIND CPA K7 END OF DATA IND? JMP END GO TO END ROUTINE LDB WLOC SET B TO WLOC + LGTH NEXT WORD -1 CPA K.5 INB HANDLES WORD LGTH=2 LDA DWBUF SET A TO MINUS WBUF END ADA K58 CMB,INB SKIP IF A EQU,GRT B ADB A SSB JSB TERM.,I YES SO OUTPUT AND CONT ISZ WLOC JSB CLR1 * * * * * * ** ALTER DATA WORD AND STORE ROUTINE ** * CLA STA WIIND STA CX CLEAR CX LDA RLOC,I READ AND STORE DATA STA WLOC,I STA TEMP1 STORE OBJECT LISTING LDB RIIND CHANNEL PROGRAM BASED ON IND SZB,RSS ASSEMBLY LISTING AND WIIND JMP R0 SPECIAL FOR EACH IND VALUE CPB K2 =D2 JMP R2 CPB K6 =D6 JMP R6 AND KK100 =B100000, CALCULATE DI1 STA DI1 LDA RLOC,I CALCULATE CODE AND KK076 =B76000 STA CODE CPB K4 JMP R4 STB WIIND SET WIIND=5 ADA DI1 STA TEMP1 STORE PARTIAL OBJECT LISTING LDA RLOC,I CALCULATE CX AND B14 =B14 RAR,RAR STA CX LDA RLOC,I CALCULATE MR AND K3 STA I.MR,I MR=(A) ADA TEMP1 STA WLOC,I CLB SET DI2=0 STB DI2 ISZ RLOC ADV READ PTR LDB RLOC,I LOAD DATA WORD RBL,CLE,SLB,ERB =0? CLEAR FLAG JMP INDRT STB OPADD CODE0 LDA KK051 SET QUALIFIER='R ' (=B51040) STA LBUF+11 ADB CX LDA CODE CODE =0? SZA,RSS JMP DF ISZ WLOC ADVANCE WRITE PTR STB WLOC,I S!TORE ALTERED 2ND WORD MRTST LDB I.MR,I CHECK MR SZB,RSS JMP R5 LDB KK041 SET QUALIFIER ='C ' (=B41440) STB LBUF+11 JMP R5 DF ADB DI1 COMPLETE ADDRESS STB WLOC,I STB TEMP1 OBJECT LISTING LDB I.MR,I COMPUTE WIIND INB STB WIIND JMP MRTST INDRT ISZ DI2 SET DI2=1 WHEN FLAG =1 STB OPADD INB LDB B,I JMP CODE0 ADJST INA LDA A,I JMP ADVRP * I.MR DEF MR ASA NOP ACTUAL STORAGE ADDR. K6 DEC 6 B14 OCT 14 KM7 DEC -7 B157 OCT 177757 K4 DEC 4 B2000 OCT 2000 KK041 OCT 41440 KK051 OCT 51040 KK076 OCT 76000 KK120 OCT 120000 CODE NOP OP CODE OPADD NOP OPERAND ADDR / BASE ADDR OP ENTR TRAIL OCT 1004 DSYM1 DEF SYMT1 MEMORY REF. INSTRUCTIONS * * * * SETUP NOP LDA KM5 =D-5 STA I.WCY,I WCYC=-5 LDB DWBUF 'DEF WBUF' ADB K4 STB WLOC STB STOWS CLA STA .NINS,I NINST=0 JMP SETUP,I I.LUP DEF LUPUD O1000 OCT 1000 .LOGO DEF LOGO .NINS DEF NINST I.WCY DEF WCYC WIIND NOP WRIT. DEF WRIT% * * * ************************* * * FINISH DBL PROCESSING * * ************************* * END JSB TERM.,I * * ************************ * * CONSTRUCT END RECORD * * ************************ * * LDB W1 'DEF WBUF' STB W2 INSERT INTO %WRIT CALL FOR LOGO LDA B2000 END RECORD LENGTH = 4. STA B,I SET LENGTH INTO FIRST WORD. CLA CPA SBF IF SBF=0, MAIN PROGRAM. INA SET TRANSFER ADDRESS INDICATOR. ADA KK120 RECORD IDENT = 101 IN BITS 15-13 INB STA B,I SET INTO SECOND WORD. INB THIS IS ALSO CHECKSUM. STA B,I SET IT INTO THIRD WORD. CLA INB LAST WORD, WHETHER TRANSFER ADDR STA B,{I OR NOT, IS 0. SET IT IN WORD 4. LDA .CCW. (A)= COMPILER CONTROL WORD SSA,RSS IF NEGATIVE, JMP LGCK1 NO - SEE IF LOAD AND GO SET. LDA I.LUP,I YES, PUNCH END RECORD, TRAILER. IOR B.100 SET BIT IN CONTROL WORD FOR STA LPUNC BINARY OUTPUT. JSB EXEC DEF *+5 DEF K2 WRITE DEF LPUNC IN BINARY ON PUNCH DEVICE W1 DEF WBUF STARTING AT WRITE BUFFR LOCATION DEF K4 FOR A TOTAL OF FOUR WORDS. * * ***************** * * PUNCH TRAILER * * ***************** * LDA I.LUP,I (A)=LUPUD ADA O1000 SET BIT IN CONTROL WORD FOR STA TRAIL TRAILER OUTPUT REQUEST JSB EXEC AND OUTPUT THE TRAILER. DEF *+3 DEF K3 REQUEST CODE=3 FOR TRAILER OUTPUT DEF TRAIL * * ***************************************** * * OUTPUT END RECORD TO LOAD AND GO FILE * * ***************************************** * LGCK1 LDA .LOGO,I LOAD AND GO FLAG. SZA,RSS IF 0, NO LOAD AND GO FILE. JMP SYMBL GO TO SYMBOL TABLE OUTPUT ROUTINE JSB WRIT.,I WRITE OUT END RECORD TO DEF *+3 LOAD AND GO FILE. W2 NOP DEF K4 JSB WRIF% * SKP * * ******************************* * * SYMBOL TABLE OUTPUT ROUTINE * * ******************************* * * * SYMBOL TABLE PROGRAM * OUTPUTS TABLE OF LOCATIONS * FOR VARIABLES,ARRAYS,AND * STATEMENT NUMBERS * SYMBL LDA .CCW. PRINT TABLE IF T OPTION SET. AND K8 SZA,RSS JMP SWB.,I NO, FINISH UP PASS 2 LDB LINEP IF AT TOP OF PAGE ALREADY, CMB,INB CPB NLINE JMP SLOOP CONTINUE ADB K3 OR IF HEADER ONLY HAS BEEN CPB NLINE ON TOP OF PAGE, JMP SLOOP DON'T EJECT PAGE.  LDB NLINE NUMBER OF LINES REMAINING ADB KM7 STB NLINE NUMBER OF LINES TO TOP OF PAGE. JSB EXEC GO TO TOP OF NEXT PAGE. DEF *+4 DEF K3 DEF CON1 DEF NLINE SLOOP LDA DLBUF RESET BEGINNING OF LIST BUFFER STA SLBUF JSB NEWPG PUT OUT HEADER LINES ON 1ST PAGE LOOPO LDA .DP (OUTER LOOP) STA .A START OF SYMBOL TABLE STA SAV.A SAVE AS A FLAG. * * ************** * * INNER LOOP * * ************** * LOOPI JSB GNA00 GET NEXT SYMBOL TABLE ENTRY. SSA,RSS IF TOP OF S.T. REACHED, JMP LOOPE END OF LOOP THRU ASSIGN. TABLE LDA .A,I SSA IF ITEM IS MARKED OUT, A CONSTANT JMP LOOPI OR DIM. INFO., SKIP IT. JSB FID00 OTHERWISE, GET SYMBOL ID, TAGS. LDA NW NUMBER OF WORDS FOR ENTRY. CPA K2 IF TWO, JMP LOOP GET NEXT ENTRY. CPA K1 IF ONE, JMP LOOP GET NEXT ENTRY. LDA .A ADA K2 LDA A,I IF THIS IS A TEMP CELL ENTRY SSA JMP LOOP SKIP IT. LDA NID IF A STATEMENT NUMBER CPA B.100 RSS JMP LOOP6 LDA AT IF AT = 2000, UNDEFINED STATE. CPA B2000 JMP LOOP SKIP IT JMP LOOP0 OTHERWISE PROCESS IT LOOP6 LDA IU SZA,RSS IF IU = 0, SKIP THIS ITEM JMP LOOP CPA SUB IF IU = SUBROUTINE, RSS LOOK AT ITEM MORE CLOSELY JMP LOOP0 OTHERWISE, PROCESS ITEM LDA AF SZA IF ADDRESS FIELD IS NON ZERO, JMP LOOP0 PROCESS ITEM LDA AT CPA DUM OTHERWISE, IF IT IS DUMMY JMP LOOP0 PROCESS ITEM LOOP LDA .A,I SET NAME TAG OF ITEM TO 1 IOR KK01 TO MARK IT OFF. IT WON'T BE STA .A,I LOOKED AT AGAIN. JMP LOOPI CONTINUE TO LOOK FOR PRINT ITEM. LOOPE LDA SAV.A IF NO ITXEM FOUND FOR CPA .DP PRINTING IN THIS LOOP JMP SWB.,I DONE. RELEASE TRACKS, RETURN. STA .A SET .A TO SAV.A JSB FID00 GET SYMBOL ID, TAGS FOR PRINT JMP PLINE PRINT A SYMBOL TABLE LINE. LOOP0 LDA SAV.A IF THIS IS FIRST PRINTABLE CPA .DP ITME FOUND IN A LOOP THRU A.T., RSS THEN SET UP AS AN INITIAL SYMBOL JMP LOOPC LOOPR LDA .A FOR COMPARISON. STA SAV.A LDA KM6 MOVE 6 WORDS FROM STA MCNT NAME ID TO SAVE AREA LDA BNID THIS IS ALPHABETICALLY THE LDB BSNID LOWEST NAME YET JSB MOVE JMP LOOPI * * SAV.A NOP THE LOWEST S.T. ENTRY SO FAR. BNID DEF NID BASE OF NAME ID ARRAY TBNID NOP TEMPORARY STORAGE BSNID DEF SNID BASE OF SAVE NAME ID ARRAY SNID BSS 6 6 WORDS TO SAVE NAME ID. * * LOOPC LDA BNID STA TBNID A DESTROYABLE COPY OF BNID. LDB BSNID LOOPD LDA B,I CHARACTER FROM SNID CMA,INA ADA TBNID,I CHARACTER FROM NID SZA,RSS IF 0, JMP LOOPF SAME CHAR, CHECK NEXT ONE. SSA IF JMP LOOPR NEGATIVE, CURRENT CHAR SMALLER JMP LOOPI IF POSITIVE, CURRENT LARGER. LOOPF INB COMPARE NEXT TWO ISZ TBNID TWO CHARACTERS JMP LOOPD PLINE LDA LOOP4 SZA,RSS IF LOOP4 IS NON-ZERO, JMP LOOP5 JSB EJECT START A NEW PAGE JSB NEWPG CLA STA LOOP4 RESET FLAG LOOP5 JSB CLR1 CLEAR OUT LIST BUFFER * * TRANSFER NAME TO LINE. * LDA .A ADA NW STA PTR POINTS TO NEXT A.T. ENTRY LDA NAME STA ASSLC NAME FIELD OF LINE. LDB .A ADB K2 JSB TRANS TRANSFER NAME TO LINE. * * TRANSFER ADDRESS TO LINE. * LDB AF SSB CMB,INB LDA ADDR ADDRESS FIELD OF LINE. JSB ASCI.,I CONVERT TO ASCII AND STORE. * * RELOCATION INDICATOR TO LINE * LDA A.R ASSUME PROGRAM RELOCATABLE. LDB AT CPB COM IF COMMON, LDA A.C SET INDICATOR TO 'C'. LDB IU CPB SUB RSS JMP LOOP1 NOT A SUBPROGRAM LDB AF SSB LDA A.X EXTERNAL SUBPROGRAM. LOOP1 STA LBUF+8 * * TYPE TO LINE * LDA IU1 ITEM USAGE = STATEMENT NUMBER. LDB NID CPB B.100 JMP LOOP3 IF YES, SKIP TYPE AND LOCATION. LDA IM1 LDB IM CPB CPX LDA IM2 CPB INT LDA IM3 CPB LOG LDA IM4 CPB REA LDA IM5 LDB K.M8 STB MCNT LDB TYPE TYPE FIELD OF LINE JSB MOVE * * LOCATION TO LINE * LDA LO4 ASSUME 'LOCAL' LDB LBUF+8 CPB A.X IF EXTERNAL INDICATOR, LDA LO1 CHANGE TO 'EXTERNAL' LDB AT CPB COM IF COMMON, LDA LO2 CHANGE TO 'COMMON' CPB DUM IF DUMMY, LDA LO3 CHANGE TO 'DUMMY'. LDB KM4 STB MCNT LDB LOCAT LOCATION FIELD OF LINE JSB MOVE * * USAGE TO LINE * LDB IU CPB SUB RSS JMP LOOP2 NOT SUBPROGRAM LDA IU2 ASSUME STATEMENT FUNCTION LDB LBUF+8 CPB A.X IF EXTERNAL LDA IU3 CHANGE TO SUBPROGRAM. LDB AT CPB DUM OR IF DUMMY, LDA IU3 CHANGE TO SUBPROGRAM. JMP LOOP3 LOOP2 LDA IU4 CPB VAR IF VARIABLE. JMP LOOP3 LDB ND NUMBER OF DIMENSIONS CPB K1 LDA IU5 1 DIM CPB K2 LDA IU6 2 DIM CPB K3 LDA IU7 3 DIM LOOP3 LDB KM9 STB MCNT LDB USAGE USAGE FIELD OF LINE JSB MOVE * * OUTPUT LINE * LDA DLBUF STA DEF LDA K35 LDB TYPE,I IF TYPE IS BLANK CPB KK.BB  2 BLANKS LDA K18 PRINT ONLY 18 WORDS STA LENTH JSB LISTA LIST LINE AND SKIP 1 LINE. LDA .A,I MARK ITEM OFF IOR KK01 SO IT WON'T BE LOOKED AT AGAIN. STA .A,I JMP LOOPO FIND NEXT ITEM TO PRINT. * KK01 OCT 100000 KK.BB OCT 20040 SWB. DEF SWB LOOP4 NOP FLAG WORD LENTH NOP A.R ASC 1,R A.C ASC 1,C A.X ASC 1,X INT OCT 10000 REA OCT 20000 LOG OCT 30000 CPX OCT 50000 SUB OCT 200 VAR OCT 400 K.M8 DEC -8 COM OCT 4000 DUM OCT 5000 KM4 DEC -4 KM9 DEC -9 K8 DEC 8 K18 DEC 18 K35 DEC 35 * * LABLE DEF *+1 ASC 7, SYMBOL TABLE HEADR DEF *+1 ASC 1, ASC 4,NAME ASC 5,ADDRESS ASC 11,USAGE ASC 10,TYPE ASC 4,LOCATION IU1 DEF *+1 ASC 9,STATEMENT NUMBER IU2 DEF *+1 ASC 9,STATEMENT FUNCTION IU3 DEF *+1 ASC 9,SUBPROGRAM IU4 DEF *+1 ASC 9,VARIABLE IU5 DEF *+1 ASC 9,ARRAY(*) IU6 DEF *+1 ASC 9,ARRAY(*,*) IU7 DEF *+1 ASC 9,ARRAY(*,*,*) IM1 DEF *+1 ASC 8,DOUBLE PRECISION IM2 DEF *+1 ASC 8,COMPLEX IM3 DEF *+1 ASC 8,INTEGER IM4 DEF *+1 ASC 8,LOGICAL IM5 DEF *+1 ASC 8,REAL LO1 DEF *+1 ASC 4,EXTERNAL LO2 DEF *+1 ASC 4,COMMON LO3 DEF *+1 ASC 4,DUMMY LO4 DEF *+1 ASC 4,LOCAL * * * NAME DEF LBUF+1 ADDR DEF LBUF+5 USAGE DEF LBUF+10 TYPE DEF LBUF+21 LOCAT DEF LBUF+31 ASCI. DEF ASCII * * ******************************* * * OUTPUT SYMBOL TABLE LISTING * * ******************************* * * NEW PAGE * NEWPG NOP LDB LINEP RESTORE LINE COUNT. CMB,INB ADB K3 IF NLINE=-LINEP+3, CPB NLINE AT TOP OF PAGE ALREADY, JMP NEWP1 GO PRINT 'SYMBOL TABLE' ADB KM3 NO- RESTORE (B)=-LINEP STB NLINE LDA PGNUM CONVERT PAGEß # TO DECIMAL JSB P1ASC ASCII STRING STB HEADL+4 1ST 2 DIGITS STA HEADL+5 2ND 2 DIGITS ISZ PGNUM INCREMENT PAGE # LDA STHD STA DEF HEADER LINE LDA K34 OUTPUT 34 WORDS OF PAGE HEADER. STA LENTH JSB LISTB JSB SKIP2 SKIP 2 LINES NEWP1 EQU * LDA LABLE OUTPUT 7 WORDS OF 'SYMBOL TABLE' STA DEF LDA K7 STA LENTH JSB LISTB JSB SKIP2 SKIP 2 LINES LDA HEADR OUTPUT 35 WORDS OF TABLE HEADER STA DEF LINE. LDA K35 STA LENTH JSB LISTB JSB SKIP2 SKIP 2 LINES LDA NLINE ADA K9 INCREMENT LINE COUNT BY 9. STA NLINE JMP NEWPG,I * KM3 DEC -3 * * LISTA NOP JSB LISTB PRINT THE LINE ISZ NLINE JMP LISTD SKIP 1 LINE LISTC LDA LINEP IF PAGE IS FULL, RESET LINE COUNT CMA,INA STA NLINE STA LOOP4 SET NEW PAGE FLAG JMP LISTA,I LISTD JSB EXEC DEF *+4 DEF K3 DEF CON1 DEF K1 ISZ NLINE JMP LISTA,I JMP LISTC * * * LISTB NOP LDA LUNLD SZA JMP OUTPT ISZ DEF CCA _. ADA LENTH .IF TTY OUTPUT, BUMP ADDR. BY 1 STA LENTH _. AND PRINT 1 LINE LESS. OUTPT JSB EXEC DEF *+5 DEF K2 DEF LULID DEF NOP DEF LENTH JMP LISTB,I * * SKIP 2 LINES * SKIP2 NOP JSB EXEC DEF *+4 DEF K3 DEF CON1 DEF K2 JMP SKIP2,I * * * * ********************************** * * TO TOP OF PAGE IF LINE PRINTER * * * OR SPACE 6 LINES IF TTY * * ********************************** * EJECT NOP JSB EXEC SKIP TO NEXT PAGE IF LINE PTR; DEF *+4 SKIP DOWN 6 LINES IF TTY DEF K3 DEF CON1 DEF KM6 CLA,INA STA LOUT  JMP EJECT,I * SABL1 NOP SHIFTS B INTO A ONE BIT CLE,ELB ELA JMP SABL1,I SABL3 NOP SHIFTS B INTO A 3 BITS JSB SABL1 JSB SABL1 JSB SABL1 JMP SABL3,I SABL7 NOP LOADS 2ND HALF OF OCTAL PAIR AND ALF,RAL CONVERTS DATA IN A TO ASCII JSB SABL3 ADA KK300 STA TEMP,I STORES ASCII ISZ TEMP JMP SABL7,I * * SWB EQU * LDA .CCW. AND K8 IF THERE WAS ANY PASS 2 LISTINGS SZA,RSS THEN SKIP TO THE TOP OF PAGE. JMP SWBA OTHERWISE, FINISH UP SEGMENT LDB NLINE ADB K.M7 STB NLINE -(# OF LINES REMAINED IN PAGE) JSB EXEC DEF *+4 DEF K3 TO TOP OF GPAGE DEF CON1 DEF NLINE * SWBA CLB SET 0 AT END OF CROSS REF. LDA BUFNO # OF CROSS REF HALF BUFFERS. SZA,RSS IF BUFNO=0, NO CROSS REF (OR JMP SWBX NO SYMBOLS). RETURN TO PASS 1. SLA ADB B40 IF ODD BUFFER NEXT ADB DEFCR ACTUAL BUFFER ADDRESS CLA STA B,I SET 0 TO MARK END JSB CROUT OUTPUT LAST BUFFER LOAD. JSB EXEC DEF *+3 DEF K8 DEF *+1 ASC 3,F4.3 F4.3 PRODUCES CROSS REF LISTING * * * * ********************** * * RELEASE ALL TRACKS * * ********************** * SWBX JSB EXEC _. DEF *+3 . TO RELEASE ALL DEF K5 . PROGRAM TRACKS DEF KM1 _. JMP PASS1 RETURN TO PASS 1 * * * *************************** * * VARIABLES AND CONSTANTS * * *************************** * CX NOP COMPLEX FLAG DI1 NOP BIT 15 WORD 1 DI2 NOP BIT 15 WORD 2 K3 DEC 3 B7 OCT 7 K2 DEC 2 K.M7 DEC -7 K5 DEC 5 KM6 DEC -6 KK300 OCT 30060 KKBB OCT 20040 ASST1 NOP RLOC NOP SLBUF NOP ADDR OȼF 1ST WORD IN LIST OUTPUT TEMP2 NOP WBUF1 OCT 3 PTR TO LOAD LOC WORD OF DBL REC DLBUF DEF LBUF BASE ADDRESS OF LIST BUFFER LPUNC OCT 104 TEMP NOP * * * * * ** TERMINAL WRITE INDICATOR ROUTINE ** TERM NOP LDB I.WSI,I (B)=WSIND ROTIN BLF,RBR ROTATE WSIND LEFT ONE IND ISZ WCYC JMP ROTIN RBL COMPLETE PREPARATION OF WSIND STB STOWS,I LDA WLOC CPA STOWS CORRCTION FOR SPECIAL CASE JMP CDBL ISZ WLOC * * * * * ** COMPLETE DBL RECORD ** * CDBL LDA DWBUF COMPUTE RECORD LENGTH STA WBUF1 SAVE BUFFER STARTING ADDRESS CMA,INA ADA WLOC STA LOUT STORE FOR OUTPUT ROUTINE ALF,ALF MAKE 1ST DBL WORD STA WBUF1,I LDA NINST MAKE 2ND DBL WORD ADA KK601 =B60100 ISZ WBUF1 STA WBUF1,I LDB WBUF1 (B)=ADDRESS OF 2ND WORD OF RECD ADB K2 (B)=ADDRESS OF 4TH WORD OF RECD CONBI ADA B,I INB CPB WLOC JMP STRBI JMP CONBI STRBI ISZ WBUF1 STA WBUF1,I JSB .WRIT OUTPUT DBL RECORD JSB SETUP INITIALIZE VALUES LDA I.ASA,I RECORD IN NEW DBL RELOCATABLE ISZ WBUF1 STA WBUF1,I JMP TERM,I * KK601 OCT 60100 I.WSI DEF WSIND * * * *********************** * * OUTPUT LIST ROUTINE * * *********************** LIST NOP LDA SLBUF A CONTAINS START OF PRINTING CMA ADA ASSLC LDB LUNLD SZB SUB 1 FROM LENGTH FOR TTY INA STA LOUT LOUT=LENGTH OF PRINTING JSB LIST1 OUTPUT LBUFFER ISZ NLINE PAGE FILLED JMP LIST,I NO, EXIT LDA LINEP CMA,INA STA NLINE * JSB EJECT POSITION PRINTER ON NEXT PAGE JSB EXEC SKIP TO NEXT PAGE IF LINE PTR; DEF *+4 SKIP DOWN 6 LINES IF TTY DEF B3 Oe DEF CON1 DEF KM6 JSB HEAD PRINTS HEADING; SKIPS 2 LINES JMP LIST,I EXIT LIST1 NOP LDB SLBUF LDA LUNLD SZA,RSS ADV START FOR NO CONTROL WORD INB STB TEMP1 JSB EXEC DEF *+5 DEF K2 DEF LULID TEMP1 NOP DEF LOUT JMP LIST1,I * * * * * * * STHD DEF HEADL-4 START ADDRESS OF PAGE HEADING * * * * * HEAD NOP PRINTS HEADING; SKIPS 2 LINES JSB CLR1 CLEAR LBUFFER LDB SLBUF SAVE SLBUF STB PTR LDB STHD NEW START ADDR FOR LISTING PAGE STB SLBUF LDA PGNUM CONVERT PAGE # TO JSB P1ASC DECIMAL ASCII STRING STB HEADL+4 1ST 2 DIGITS STA HEADL+5 2ND 2 DIGITS ISZ PGNUM INCREMENT PAGE # LDA K34 OUTPUT 34 WORDS OF PAGE HEADER. STA LOUT JSB LIST1 OUTPUT HEADING LDB PTR STB SLBUF RESTORE SLBUF JSB EXEC SKIP 2 LINES AFTER PRINTING DEF *+4 HEADER LINE. DEF B3 DEF CON1 DEF K2 LDB NLINE BUMP LINE COUNT BY 3 ADB K3 TO ACCOUNT FOR HEADER STB NLINE AND 2 BLANK LINES. JMP HEAD,I K34 DEC 34 * SKP * * ******************************* * * PREPARE LIST BUFFER ROUTINE * * ******************************* * CLR1 NOP LDA KKBB LDB SLBUF SBBB STA B,I INB ADVANCE POINTER CPB LAST BUFFER ENDED? JMP CLR1,I JMP SBBB NO; CONTINUE * LAST DEF LBUF+41 PTR TO NEXT AFTER LAST OF LBUF * * * * * ** ASSEMBLY BUFFER CONSTRUCTION ROUTINE ** * R0 LDB DSYM1 YES; LOAD "OCT " INTO ASSBF JSB ACOD2 LDB WLOC,I CONVERT DATA WORD TO ASCII, LOAD LDA ASSLC JSB ASCII ISZ ASSLC ISZ ASSLC ISZ ASSLC JMP PRINT R2 STA LBUF+17 LOAD DATA WORD INTO ASSBF \  LDB DSYM1 YES; LOAD "ASC 1," INTO ASSBF ADB K2 =D2 JSB ACOD2 ISZ ASSLC JMP PRINT R6 JSB ACOD1 FIND, LOAD SYMBOL STRING JMP PRINT R4 STB I.WII,I SET WIIND =4 LDB KK054 SET QUALIFIER ='X ' (=B54040) STB LBUF+11 SZA,RSS JMP DEF1 BRANCH IF CODE=0 JSB ACOD1 CONVERT AND STORE CODE BAK1 LDA RLOC,I AND B1777 =B1777 CMA,INA COMPLEMENT EXTN STA EXTN LDB BLTBL SEARCH EXTERNAL TABLE FOR MATCH CONSR CPA B,I JMP FOND1 INB CPB E.TBL END OF .TBL REACHED? JMP GT.DP JMP CONSR * * B1777 OCT 1777 BLTBL DEF .TBL BASE LOCATION OF .TBL E.TBL DEF CMN END OF .TBL + 1. EXTN NOP EXTERNAL ID # KK054 OCT 54040 * * GT.DP LDB .DP FIXTB INB SEARCH FIX EXTERNAL TABLE FIXT1 LDA B,I COMPUTE NEXT ENTRY LOC IN PTR AND B7 =B7 ADA B STA PTR INB LDA B,I ID=EXTN? CPA EXTN JMP FOND2 LDB PTR NO; ALL TABLE CHECKED? CPB C+3 JMP FOND2 CPB DP JMP FIXTB YES; SAME ROUTINE NOW CHECKS JMP FIXT1 DATA POOL FOND2 INB TRSYM JSB TRAN.,I TRANSFER STRING JMP .TTI1,I .TTI1 DEF TTDI1 FOND1 LDA BLTBL COMPUTE LOCATION IN EXTERNAL CMA,INA SYMBOL TABLE OF ENTRY ADA B STA B ADA B ADA B ADA I.ADE,I (A)=(A)+ADEXT STA B ADA K3 STA PTR JMP TRSYM R5 LDA CODE YES; CODE =0? SZA,RSS JMP LDEF JSB ACOD1 LOAD ASSEMBLY CODE INTO ASSBF LDA WLOC,I JOIN OCTAL CODE AND OPERAND IN A AND B1777 =B1777 ADA TEMP1 STA TEMP1 STORE OBJECT LISTING JMP SOS LDEF LDB DSYM1 YES; LOAD ASSBF WITH "DEF " ADB K5 =D5 JSB ACOD2 JMP SOS * * I.ADE DEF ADEXT ASSBF DEF LBUF+14 * 2* DEF1 LDB DSYM1 LOAD "DEF " ADB K5 JSB ACOD2 JMP BAK1 SKP * ** ASSEMBLY INSTRUCTION CODE ROUTINE ** * ACOD1 NOP LDB MRINS GET STARTING ADDRESS MATCH CPA B,I INPUT MATCHES TABLE ENTRY? JMP RLE INB NO; GO TO NEXT ADDRESS JMP MATCH CONTINUE CHECK RLE LDA MRINS COMPUTE LOC WITHIN TABLE CMA,INA ADB A ADB B ADB DSYM2 COMPUTE LOC OF SYMBOL ENTRY INIT LDA ASSBF INITIALIZE ASSLC PTR STA ASSLC TSW LDA B,I TRANSFER SYMBOL WORD TO ASSBF ELA,CLE,ERA REMOVE ANY FLAG STA ASSLC,I LDA B,I INB ADVANCE TRANSFER LOCATIONS ISZ ASSLC SSA END OF ENTRY? JMP ACOD1,I YES; RETURN TO MAIN PROGRAM JMP TSW * * DSYM2 DEF SYMT2 NON-MEMORY REF. INSTRUCTIONS MRINS DEF MLITB BASE ADDR OF MACHINE INSTRUCTION PTR NOP POINTER * * ACOD2 NOP LDA ACOD2 STORE RETURN ADDRESS IN ACOD2 STA ACOD1 JMP INIT SKP * ** SUPPLY OPERAND SYMBOL ROUTINE ** * SOS LDB DI2 BIT 15 2ND WORD =1 SZB,RSS JMP BRCH0 LDA OPADD,I YES; READ BASE WORD OF ENTRY SSA VARIABLE IS A CONSTANT JMP SWTCH AND B.7 RETAIN, STORE LAST 3 BITS LDB OPADD ADB A STB PTR CPA K.2 LAST 3 BITS= 010 ? JMP SWTCH YES; STORE IN OPADD OPERAND ADDR LDB OPADD NO; READ 3RD WORD OF ENTRY ADB K.2 LDA B,I SSA,RSS JMP LSASS LDB A CMB,INB 2'S COMPLEMENT WORD LDA ASSLC JSB ASCI2 CONVERT TO ASCII FIGURES, STORE LDA OPADD,I DETERMINE MODE CODE OF ADDRESS ALF AND B.7 =B7 ADA DMODT LOCATE IN TABLE MODE SYMBOL LDA A,I STA LBUF+16 STORE JMP UPASS * * B.7 OCT 7 K.1 DEC 1 K.2 DEC 2 TRAN. DEF TRAN.S DMODT DEF MODT BASE LOC. OF MODT (MODE OF TEMP) MR NOP MRI AND ASCII PARAMETER KK025 OCT 25053 KK200 OCT 20060 KK250 OCT 25055 KK400 OCT 40000 * * SWTCH ISZ OPADD IN OPADD LDA OPADD,I STA OPADD LDA CX CPA K.1 READ/WRITE FORMAT? ISZ OPADD YES, BUMP FMT LOC. BY 1 CNVT LDB OPADD STORE ASCII ADDR SHIFTED LFT ONE LDA ASSLC JSB ASCI2 UPASS ISZ ASSLC ISZ ASSLC LDA ASSLC,I AND B.157 =B177757 STA ASSLC,I MAKE END ZERO A BLANK LDB TEMP3 STB ASSLC JMP MR00 B.157 OCT 177757 BRCH0 LDA MR SKIP * OPERAND LOGIC IF COMMON SZA LOCATION JMP CNVT LDA I.ASA,I COMPUTE DISTANCE BETWEEN OPERAND CMA,INA AND LOAD ADDRESSES ADA OPADD LDB KK025 =B25053, STAR & PROPER SIGN SSA LDB KK250 =B25055 STB ASSLC,I SSA MAKE DISTANCE ABSOLUTE CMA,INA STA B AND KK777 =B177770, DISTANCE LESS THAN 7? SZA JMP CNVT ADB KK200 =B20060, YES,STORE IN NEXT LOC BLF,BLF DISTANCE AND BLANK ISZ ASSLC STB ASSLC,I LDA B ISZ ASSLC JMP TTDI1 LSASS AND K.774 =B177400 CPA KK400 =B40000 CHECK FOR LEADING @ JMP SWTCH JSB TRAN.,I TRANSFER SYMBOLS JMP TTDI1 MR00 LDB MR MR00 ROUTINE ADDS COMMON SYMBOL SZB,RSS JMP TTDI1 CCB ADB ASSLC B=ASSLC-1 LDA B,I ADA B43 SET RIGHT HALF LAST WORD TO "C" STA B,I TTDI1 LDB DI1 PROGRAM PASSES TO OK UNLESS BOTH SZB DI1 AND CX ARE ZERO, THEN JMP OK TO PRINT LDB CX CPB K.1 CLB STB CX SZB,RSS JMP PRINT OK AND B377 A CONTAINS LATEST WRD IN OPND * STRING; MASK RIGHT HALF CPA B40 i JMP BROKN LDA KK254 LOAD "+2" LDB CX SZB,RSS ADA B427 LOAD ",I" STASS STA ASSLC,I ISZ ASSLC JMP PRINT BROKN CCB ADB ASSLC STB TEMP2 LDA B,I ADA B13 LOAD "+2" LDB CX SZB,RSS INA LOAD ",I" STA TEMP2,I LDA KK310 LOAD "+2" LDB CX SZB,RSS ADA KK134 LOAD ",I" JMP STASS * OBJST DEF LBUF+8 KK777 OCT 177770 KK134 OCT 13400 KK254 OCT 25462 KK310 OCT 31040 NINST NOP # OF INSTRUCTIONS IN DBL STOWS NOP STORG LOC OF NEXT WSIND WCYC NOP I.WII DEF WIIND WLOC NOP WRITE LOCATION POINTER B43 OCT 43 B13 OCT 13 B40 OCT 40 B377 OCT 377 B427 OCT 427 K.774 OCT 177400 I.ASA DEF ASA K.4 DEC 4 KK167 OCT 167777 K.M5 DEC -5 SKP * ** PREPARE,LOAD,AND PRINT LIST BUFFER ROUTINE ** * PRINT LDB TEMP1 LDA OBJST JSB ASCII TRANSLATE OBJECT CODE INTO ASCII LDB I.ASA,I (B)=ASA LDA DLBUF ADA K.4 JSB ASCII TRANSLATE ADDRESS INTO ASCII LDA LBUF+4 SET LEADING CHARACTER TO - AND KK167 =B167777 STA LBUF+4 LDA .CCW. PRINT LISTING IF BIT A SET AND K.4 SZA JSB LIST OUTPUT LIST BUFFER * * * * * ** WRITE INDICATOR ROUTINE ** * ISZ NINST INCREMENT NINST ISZ I.ASA,I INCREMENT ASA LDA WSIND ROTATE WSIND LEFT 1 IND ALF,RAR STORE AT RIGHT WIIND AND KK777 =B177770 ADA I.WII,I (A)=(A)+WIIND STA WSIND ISZ WCYC BRANCH ONCE-IN-5 JMP .PNRE,I 'TO PNREC' LDA K.M5 RESET WCYC=-5 STA WCYC LDA WSIND ROTATE WSIND LEFT 1 RAL STA STOWS,I ISZ WLOC LDB WLOC STB STOWS JMP .PNRE,I .PNRE DEF PNREC WSIND NOP SKP * ** DATA TO ASCII CONVERSION ROUTINE ** =* * CALLING SEQUENCE: LDB (DATA WORD) * LDA (ADDRESS AT START OF * STORAGE) * JSB ASCII ASCII NOP STA TEMP3 CLA JSB I.SL1,I SABL1 JSB BULK JMP ASCII,I ASCI2 NOP STA TEMP3 CLA JSB I.SL1,I SABL1 JSB I.SL3,I SABL3 JSB BULK JMP ASCI2,I BULK NOP JSB I.SL7,I SABL7 LDA KM2 =D-2 STA ASST1 ASCI1 CLA JSB I.SL3,I SABL3 JSB I.SL7,I SABL7 ISZ ASST1 JMP ASCI1 JMP BULK,I KM2 DEC -2 TEMP3 EQU TEMP LOUT OCT 0 LENGTH OF CONTENTS OUTPUTED LOGO. DEF LOGO I.SL7 DEF SABL7 I.SL3 DEF SABL3 I.SL1 DEF SABL1 * * * * ******************************************* * * PUNCH TAPE / OUTPUT TO LOAD AND GO FILE * * ******************************************* * .WRIT NOP LDA .CCW. SSA,RSS JMP LGCHK JSB EXEC OUTPUT ONTO REQUESTED PUNCH UNIT DEF *+5 DEF K2 REQUEST CODE FOR WRITE DEF LPUNC DEF WBUF DEF LOUT LGCHK LDA LOGO.,I (A)=LOGO SZA,RSS JMP ENDWT JSB WRIT% OUTPUT TO DISK FOR LOGO DEF *+3 DEF WBUF DEF LOUT ENDWT JMP .WRIT,I * * * *************************** * * VARIABLES AND CONSTANTS * * *************************** * BLNKS ASC 1, LBUF EQU BLNKS BSS 40 LIST BUFFER * * * * * * * * * *%WRIT WRITES RELOCATABLE RECORDS ON DISK. TRACKS ARE ASSUMED *CONSECUTIVE, CURRENT SECTOR NO. IS ASSUMED AVAILABLE IN BASE *PAGE. RECORD-FORMAT IS AS IN BCS. *CALLING SEQUENCE: * JSB %WRIT * DEF *+3 * DEF BUFFR FWA OF WRITE-BUFFER * DEF RLEN NO OF WORDS * WROVF CCA LDB % B101 ADDR OF JBINS= 101B JSB EXEC SET JBINS=-1 DEF *+2 DEF .M19 -19 JSB EXEC DEF *+5 DEF M2OR2 DEF K1 LUN=1 FOR SYSTEM TTY DEF OVMES FWA OF MESSAGE DEF KM8 -8 FOR 8 CHARS. JMP WRIF%,I EXIT OVMES ASC 4,JBIN OVF B101 OCT 101 B177 OCT 177 KM8 DEC -8 .WRIN NOP LDA OPSY 0=DOS, 1=IOMEC/DOS, -2=RTE SSA JMP RTEIN LDA KM8 STA NN LDA 102B JBINC CLB SZA,RSS ANY JBIN TRACKS ? JMP WROVF NO,OVERFLOW ERROR CLE,ELA ELB,CLE LSL 8 - SHIFT TRACK NO INTO B ISZ NN JMP *-3 ALF,ALF (A) = SECTOR NO STB TRAK JMP DOSC1 RTEIN LDA 1766B LGOC= CURRENT LOAD/GO CODEWORD LDB M2OR2 SSA INB STB WLUN LUN=2 IF SIGN=0, =3 OTHERWISE ALF,ALF RAL AND B377 STA TRAK SET TRACK NO. LDA 1766B LGOC= CURRENT LOAD/GO CODE-WORD AND B177 DOSC1 STA SECT SET SECTOR NO. LDA MSIZ STA BCUN SECTOR-BUFFER COUNT = -64 LDA BFWAA STA BRAD SET SECTOR BUFFER ADDR = FWA BFR JMP .WRIN,I *%WRIF OUTPUTS THE WRITE-BUFFER TO THE CURRENT SECTOR *ON DISK, UPDATES THE CURRENT SECTOR NO. *%WRIF IS USUALLY CALLED AT THE END OF EACH SUBPROGRAM OUTPUT. WRIF% NOP LDA OPSY 0=DOS, 1=IOMEC/DOS, -2=RTE SSA JMP RTEIF LDA 101B JBINS CPA KM1 NO JBIN LEFT ? JMP WRIF%,I YES,EXIT. RTEIF CLA STA BRAD,I 0 FOR END OF SUBPROGRAM LDA BRAD CPA BFWAA JMP WRIF%,I JSB EXEC WRITE SECTOR DEF *+7 DEF M2OR2 CODE FOR WRITE CDOS DEF WLUN LUN BFWAA DEF BUFR FWA OF BUFFER DEF PSIZ 64 OR 128 WORDS DEF TRAK TRACK NO. DEF SECT SECTOR NO. LDA OPSY 0=DOS, 1=IOMEC/DOS, -2=RTE SSA JMP RTEFC LDA KM8 STA NN LDA 102B LGOC WORD INA ISZ SECT BUMP SECTOR LDB SECT CPB 116B NO OF SECTORS IN TRACK CLB,RSS JMP WRIF2 CLE,SSA CCE ELB RRL 8 - TRACK NO TO B ELA ISZ NN JMP *-5 WRIF1 ADB KM1 STB TRAK NEW TRACK NO. JSB EXEC STATUS REQUEST DEF *+5 DEF K16 CODE = 16 DEF K1 1 TRACK DEF TRAK SRTARTING TRACK NO. DEF STRAK ACTUAL GOOD TRACK RETURNED LDA STRAK SZA,RSS OVERFLOW ? JMP WROVF YES LDB KM8 STB NN LDB TRAK CPB STRAK GOOD TRACK ? CLA,RSS JMP WRIF1 NO, TRY NEXT LOWER TRACK CPB RTRAK WORK TRACK ? JMP WROVF YES,OVERFLOW CLE,ERB ERA RRR 8 - TRACK TO UPPER A ISZ NN JMP *-3 WRIF2 LDB .B102 ADDR OF JBINC JSB EXEC SET JFILC = TRACK,O (AT 125B) DEF *+2 DEF .M19 -19 RTEFC JSB .WRIN RE-INITIALIZE FOR NEXT WRITE JMP WRIF%,I EXIT KM1 DEC -1 RTRAK EQU 267B .B102 OCT 102 EXIT BSS 1 RETURN ADDR STRAK BSS 1 TEMP FOR NEXT GOOD TRACK PSIZ DEC 64 MSIZ DEC -64 .M19 DEC -19 M2OR2 DEC 2 NN BSS 1 WLUN BSS 1 LUN TRAK BSS 1 CURRENT TRACK NO. SECT BSS 1 CURRENT SECTOR NO. BRAD BSS 1 CURRENT ADDR IN WRITE-BUFFER K16 DEC 16 B55 OCT 55 K128 DEC 128 IFLAG OCT 0 =0 FIRST TIME,=1 OTHERWISE WRIT% NOP LDA WRIT%,I STA EXIT SET RETURN ADR STA WRIF% ALSO FOR WROVF LDA IFLAG SZA FIRST TIME ? JMP RTECK LDA OPSY 0=DOS, 1=IOMEC/DOS, -2=RTE SSA JMP CWRIN RTE LDB KM2 STB M2OR2 LDB B55 STB CDOS SLA,RSS JMP CWRIN DOS LDB K128 IOMEC/DOS. BUFFER SIZE = 128 STB PSIZ CMB,INB STB MSIZ CWRIN JSB .WRIN ISZ IFLAG RESET FLAG RTECK LDA OPSY 0=DOS, 1=IOMEC/DOS, -2=RTE SSA JMP WRIT1 RTE DOST LDA 101B JBINS CPA KM1 NO JBIN LEFT ? JMP EXIT,I YES,EXIT WRIT1 ISZ WRIT% LDA WRIT% LDA 0,I RAL,CLE,SLA,ERA TEST I-BIT AND CLEAR JMP *-2 STA WBFAD SOURCE-BUFFER FWA ISZ WRIT% LDA WRIT%,I LDA 0,I CMA,INA STA COUNT SET COUNT WMOVE LDA WBFAD,I STA BRAD,I MOVE WORD ISZ BRAD POINTERS ISZ BCUN BUMP SECTOR-BUFFER COUNT RSS JSB WRIF% END OF BUFFER, WRITE SECTOR ISZ WBFAD BUMP ISZ COUNT BUMP COUNTER JMP WMOVE CONTINUE TRANSFER JMP EXIT,I READY, EXIT BUFR BSS 128 WRITE-BUFFER * BCUN BSS 1 COUNT FOR WRITE-BUFFER WBFAD BSS 1 CURRENT SOURCE-BUFFER ADDR COUNT BSS 1 TRANSFER COUNT * * * * 2ND PASS TABLES & BUFFERS * * ** MACHINE LANGUAGE INSTRUCTION TABLE ** MLITB EQU * OCT 042000,062000,066000,072000,012000,032000 * OCT 022000,052000,026000,016000,100000,177777 OCT 003004,177777,006020,002021,177777,003027 OCT 177777,177777,177777,177777,006400,006404 OCT 177777,002020,002003,177777,160000,177777 OCT 007000,003000,002401,177777,003401,177777 OCT 002400,003400,002002,002404,177777,001000 OCT 001020,177777,002001,000000 * ** ASSENBLY INSTRUCTION SYMBOL TABLE ** * SYMT1 EQU * OCT 047503,152040,040523,041440,130454,042105 OCT 143040,041123,151440,047522,143440 SYMT2 EQU * OCT 040504,140440,046104,140440,046104 OCT 141040,051524,140440,040516,142040,044517 OCT 151040,054117,151040,041520,140440,045115 OCT 150040,045123,141040,042105,043040 ASC 1,0, OCT 144440,041515,040454,044516,140440,051523 OCT 141040,051523,040454,051123,151440,041515 OCT 040454,051523,040454,044516,040454,051532 OCT 040454,051123,151440,041514,141040,041514 OCT 041054,044516,141040,051523,140440,051532 OCT 040454,051123,151440,046104,040440 ASC 1,0, OCT 144440,041515,141040,041515,140440,041514 OCT 040454,051123,151440,041503,040454,051123 OCT 151440,041514,140440,041503,140440,051532 OCT 140440,041514,040454,044516,140440,040514 OCT 151440,040514,051454,040514,151440 OCT 51123,151440,47117,150040 * ** EXTERNAL FUNCTION SYMBOL TABLE ** * EXTST EQU * ASC 18,.FMP .FDV .FAD .FSB ..FCM .MPY ASC 18,.DIV .DLD .DST .DTOI .RTOD .DTOR ASC 18,.DTOD .ITOI .RTOI .RTOR .XADD .XSUB ASC 18,.XMPY .XDIV .CADD .CSUB .CMPY .CDIV ASC 18,.DFER .CFER ..MAP .ENTR .DIO. .BIO. ASC 18,.XIO. .RIO. .IIO. .XAY. .RAY. .IAY. ASC 18,.DTA. .PAUS .STOP .TAPE .CDBL ..DCM ASC 18,..CCM .CTOI .IDBL .ICPX .DCPX .DINT ASC 9,.CINT .GOTO .BAD. * * ** MODE OF TEMP CELL TABLE ** * MODT EQU * NOP ASC 7,I.R.L. C.D.A. OCT 20040 WBUF EQU * BSS 60 WRITE BUFFER * RBUF EQU * BSS 128 READ BUFFER * * * * SEGMENT F4.2 CODE CAN EXTEND TO THE END OF THE * 21 CARD BUFFER WHICH PRECEDES THE FIXED SYMBOL * TABLE. THE 'BSS' BELOW AND THE 'NOP' WHICH * FOLLOWS IT EXTENDS THIS SEGMENT TO THAT POINT. * THEY ARE NOT NECESSARY, BUT ARE INCLUDED * TO SHOW THE MAXIMUM PERMISSIBLE SIZE OF THIS * SEGMENT WITHOUT CHANGING THE ENDS OF THE * OTHER SEGMENTS. IF CODE IS ADDED TO THIS SEGMENT, * DECREASE THE FOLLOWING BSS. IF MORE ROOM IS * NEEDED, ADJUST THE ENDS OF THE OTHER SEGMENTS * ALSO. * * COMMENT: THIS SEGMENT IS ALL FILLED UP. * MORE CODE CANNOT BE ADDED WITHOUT * ADJUSTINjG ENDS OF OTHER SEGMENTS. * BSS 0 * NOP * * * * END F4.2 +ASMB,R,L,C HED FTN4--16K VERSION--CROSS REFERENCE GENERATOR NAM F4.3,5 EXT EXEC EXT FID00 EXT FID04 EXT MOVE EXT P1ASC EXT PASS1 * * A EQU 0 B EQU 1 * * C EQU * * BSS 25 FIRST PART OF COMMUNICATION AREA * LO EQU C+3 END OF ASSIGNMENT TABLE + 1 LULID EQU C+5 LOGICAL UNIT OF LIST DEVICE LINEP EQU C+7 LINES PER PAGE ON LISTING LUNLD EQU C+9 L.U. OF LIST DEV (0=TTY,ELSE LP) NLINE EQU C+21 -(# OF LINES LEFT ON PAGE) MCNT EQU C+23 -(# OF WORDS LEFT TO BE MOVED) * .TBL EQU * BSS 51 SECND PART OF COMMUNICATION AREA * CMN EQU * BSS 99 THIRD PART OF COMMUNICATION AREA * .A EQU CMN+0 ASSIGNMENT TABLE POINTER TRACK EQU CMN+1 CROSS REFERENCE FIRST TRACK NID EQU CMN+14 BSS 6 - NAME ID FIELD DISC EQU CMN+32 LU OF 1ST TRACK, BINARY BIT ON. SECTR EQU CMN+34 NUMBER SECTORS ON 1ST TRACK DO EQU CMN+61 POINTER TO END OF MEMORY. * HEADL EQU CMN+67 CMN+63 TO CMN+97 IS PAGE HEADER. * * PAGE HEADER LINE * * * 1. FOUR WORDS OF BLANKS (CMN+63-66) * 2. TEN WORDS OF PROGRAM INFORMATION (CMN+67-76) * 3. TWELVE WORDS OF FIXED COMPILER INFO. (CMN+77-88) * 4. EIGHT WORDS OF VARIABLE COMPILER INFO. (CMN+89-96) * 5. ONE WORD OF BLANKS FOR TTY 2ND PASS LOGIC (CMN+97) * * * ASC 4, * ASC 10, PAGE 0001 * ASC 12, (FTN4--RELEASE 24177 * ASC 8,B--APRIL,1971) * SEE NOTE BELOW * ASC 1, * * * THE 8 WORD ASCII STRING ABOVE IS CHANGED WITH EACH * COMPILER RELEASE. THE MONTH MUST ALWAYS BE HELD TO * 6 CHARACTERS OR LESS. THE STRING MUST ALWAYS BE 8 * WORDS LONG. * * PGNUM EQU CMN+98 PAGE NUMBER IN BINARY. * SKP * * ************************** * * SEGMENT INITIALIZATION * * ************************** * F4.3 LDA LULID SSET UP EJECT CONTROL WORD ADA B1100 STA CONWD JSB SET SET DISC PARAMS. FOR 1ST TRACK * * IF THE MEMORY AREA BETWEEN THE END OF THE * ASSIGNMENT TABLE AND THE END OF MEMORY * IS LARGER THAN THE TABLE AREA AT THE * END OF THIS SEGMENT, THEN THAT MEMORY AREA * IS USED FOR STORING CROSS REFERENCE * PAIRS. IN THIS CASE, THE TABLE AREA * AT THE END OF THIS SEGMENT IS NOT USED. * THE NET EFFECT IS TO ENABLE CROSS REFERENCE * FOR LARGER PROGRAMS AND TO SPEED UP THE * PRODUCTION OF THIS LIST IN SYSTEMS HAVING * A LOT OF CORE. * * THE CODE BELOW USES FOUR ADDRESSES: * PLIST AND ULIST ARE DEFINED AT THE * END OF THIS SEGMENT; * LO = END OF ASSIGNMENT TABLE + 1 AND * DO = END OF MEMORY. * * IF DO - LO > ULIST - PLIST, THEN * SET PLIST _ LO AND ULIST _ DO. * * LDA LO CMA,INA ADA DO (A) = DO-LO * LDB PLIST CMB,INB ADB ULIST (B) = ULIST-PLIST * CMA,INA ADA B (A) = (ULIST-PLIST)-(DO-LO) * SSA,RSS IS RESULT LESS THAN 0? JMP LBL00 NO- USE PLIST AND ULIST. LDA LO YES- USE LO AND DO. STA PLIST PLIST _ LO LDA DO STA ULIST ULIST _ DO * LBL00 CCA ADA ULIST STA NEXTU SET NEXTU = ULIST - 1 CLA,INA ADA PLIST STA NEXTP SET NEXTP = PLIST + 1 * LBL01 CMA,INA ADA NEXTU IF NEXTU-NEXTP<128 THEN IT IS ADA KM128 NECESSARY TO OVERLAY FURTHER SSA,RSS SECTOR READING OR ABORT XREF. JMP LBL02 NO- CONTINUE READING IN SEQUENCE LDA PLIST CMA,INA ADA NEXTU ADA KM130 IF NEXTU-PLIST<130, OUT OF CORE. SSA JMP ABORT ABORT CROSS REFERENCE. LDA NEXTP NO- BACKUP 64 WORDS IN PLIST ADA KM64 AND OVERLAY NEXT SECTO6R READ STA NEXTP ON TOP OF A PREVIOUS ONE. STA OVLAY SET ADDRESS WHERE OVERLAYS BEGIN. JMP LBL01 SEE IF THERE IS NOW ENOUGH ROOM. * LBL02 JSB READ READ NEXT SECTOR * LBL03 LDB NEXTU (NEXTU)+1 IS THE ADDRESS OF INB TOP A.T. POINTER IN ULIST. CPB ULIST IF NEXTU=ULIST, A.T. POINTER RSS IN NEXTP IS NOT IN LIST; JMP LBL05 LDA NEXTP,I ADD IT TO TOP OF ULIST. STA NEXTU,I INA POINTS TO AF OF (NEXTP). CLB,INB SET ADDRESS FIELD TO 1 TO STB A,I INITIALIZE COUNT OF REFS. CCA BUMP NEXTU FOR ADDITION OF ADA NEXTU NEXT ELEMENT TO ULIST. STA NEXTU * LBL04 ISZ NEXTP BUMP NEXTP BY 2 TO HAVE IT ISZ NEXTP POINT TO A.T. POINTER OF NEXT ISZ PCOUN PAIR. THEN BUMP PAIR COUNT. JMP LBL03 IF #0, LOOK UP (NEXTP) IN ULIST. LDA NEXTP IF 0, ADJUST NEXTP BY THE ADA WCOUN NUMBER OF WORDS IN WCOUN. STA NEXTP JMP LBL01 GO READ NEXT SECTOR. * LBL05 LDA NEXTP,I (A) = A.T. POINTER IN CR PAIR. SZA,RSS JMP LBL06 IF 0, ULIST COMPLETE. SORT IT. CPA B,I IF (NEXTP)=ELEMENT IN ULIST, RSS STOP SEARCH. JMP LBL03+1 IF NOT EQUAL, CONTINUE SEARCH. INA POINTS TO AF OF (NEXTP) ISZ A,I BUMP REFERENCE COUNT BY 1, JMP LBL04 AND GO ON TO NEXT PAIR. * * SKP * * ************************* * * ABORT CROSS REFERENCE * * ************************* * ABORT JSB EXEC AT TOP OF PAGE ALREADY, JUST DEF *+5 PRINT ERROR MESSAGE. DEF K2 DEF LULID LIST DEVICE LOGICAL UNIT NO. DEF ERMSG ERROR MESSAGE ADDRESS DEF MSGLN ERROR MESSAGE LENGTH * * ************************************** * * RELEASE ALL TRACKS, RETURN TO FTN4 * * **************************************o * RETRN JSB EJECT GO TO TOP OF PAGE JSB EXEC RELEASE ALL TRACKS AND DEF *+3 DEF K5 DEF KM1 JMP PASS1 RETURN TO PASS 1 * * SUP ERMSG ASC 10, PROGRAM TOO LARGE - ASC 12, CROSS REFERENCE ABORTED * MSGLN DEC 22 * NEXTU NOP NEXTP NOP * B1100 OCT 1100 K2 DEC 2 K3 DEC 3 K5 DEC 5 KM1 DEC -1 KM7 DEC -7 KM64 DEC -64 KM128 DEC -128 KM130 DEC -130 SKP * * ************************ * * EJECT TO TOP OF PAGE * * ************************ * EJECT NOP LDB NLINE NOTE: PLINE DOES NOT GO TO TOP ADB KM7 OF PAGE UNLESS PRINTING IS TO BE STB NLINE DONE. THUS IT IS NECESSARY TO JSB EXEC GO TO TOP OF PAGE WHEN XREF IS DEF *+4 COMPLETE. ADDING -7 TO DEF K3 NLINE IS FOR SPACING ON DEF CONWD TELETYPE. NEGATIVE MEANS TOP DEF NLINE OF FORM ON PRINTER. JMP EJECT,I RETURN. * CONWD NOP * * *********************** * * SET DISC PARAMETERS * * *********************** * SET NOP DISC PARAMETERS ARE INITIALIZED LDA DISC FROM COMMON VALUES PASSED BY STA CDISC SEGMENT F4.2. LDA TRACK CDISC = CURRENT DISC LOG. UNIT STA CTRAK CTRAK = CURRENT DISC TRACK NO. LDA SECTR CSECT = CURRENT SECTOR NO. STA NSECT NSECT = NO. SECTORS PER TRACK CLA STA CSECT JMP SET,I * CSECT NOP NSECT NOP CDISC NOP CTRAK NOP SKP * * *************** * * INTER-PHASE * * *************** * LBL06 STB XFLAG SET FLAG TO NON-ZERO FOR PHASE 2 LDB FID04 SAVE THE JSB FA00 IN FID00 IN STB SAVE MAIN PROGRAM FOR LATER STA FID04 RESTORATION. THEN NOP FID04. ISZ NEXTU BUMP NEXTU BY 1 SO THAT IT LDA NEXTU POINTS TO TOP ELEMENT IN ULIST. STA TLIST INITIALIZE TLIST TO THIS NEXTU. * LBL07 CCB ADB ULIST IF TLIST POINTS TO THE LAST CPB TLIST ELEMENT IN ULIST, SORT COMPLETE; JMP LBL13 GO TO OUTPUT CROSS REF LIST. LDA TLIST NATPT IS THE LOC IN PLIST OF STA NATPT THE ALPHABETICALLY SMALLEST LDB A,I SYMBOL. INITIALIZE NATPT TO TOP STB .A OF LIST AND PUT A.T. POINTER IN INA TOP OF LIST INTO .A. COMPR IS STA COMPR FOR COMPARISON. JSB FID00 FETCH NAME OF TOP ELEMENT IN LDA KM6 LIST AND TRANSFER IT TO SNID STA MCNT TO BE USED FOR COMPARISON. SNID LDA BNID ALWAYS HOLDS ALPHABETICALLY LDB BSNID SMALLEST NAME SO FAR AND IS JSB MOVE COMPARED TO NAME IN NID. * LDA COMPR SET .A TO A.T. POINTER IN THE LBL08 LDA A,I COMPARISON ELEMENT OF PLIST STA .A JSB FID00 GET ITS NAME INTO NID. LDA BNID SET UP A DESTROYABLE COPY OF STA TBNID BNID FOR USE AS A POINTER. LDB BSNID ADDRESS OF SMALLEST SYMBOL. * LBL09 LDA B,I A CHARACTER FROM SNID CMA,INA ADA TBNID,I CHARACTER FROM NID SZA,RSS IF 0, SAME CHARACTER; JMP LBL10 CHECK NEXT ONE. SSA IF JMP LBL11 NEGATIVE, CURRENT CHAR SMALLER JMP LBL12 IF POSITIVE, CURRENT LARGER. LBL10 INB COMPARE NEXT TWO CHARACTERS. ISZ TBNID JMP LBL09 * LBL11 LDA COMPR SET NEW SMALLEST ELEMENT LOC. STA NATPT INTO NATPT. LDA KM6 STA MCNT LDA BNID SAVE CURRENT SYMBOL AS LDB BSNID SMALLEST SO FAR. JSB MOVE LBL12 ISZ COMPR BUMP COMPARISON LOC BY 1 LDA COMPR CPA ULIST IF COMPARISON LOC. = END OF LIST, RSS THE NEXT SYMBOL IS IN NATPT. JMP LBL08 NO- COMPARE AGAINST NEXT SYMBOL. LDA NATPT,I EXCHANGE THE CONTENTS OF NATPT LDB TLIST,I AND TLIST SO THAT THE A.T. STA TLIST,I POINTER OF THE NEXT SYMBOL STB NATPT,I IN ALPHABETICAL SEQUENCE GOES ISZ TLIST TO THE TOP OF THE LIST JMP LBL07 * * BNID DEF NID BSNID DEF SNID SNID BSS 6 TBNID NOP SAVE NOP TLIST NOP NATPT NOP COMPR NOP KM6 DEC -6 SKP * * ************* * * PHASE TWO * * ************* * LBL13 LDA NEXTU RESET TLIST TO POINT TO STA TLIST TOP OF PLIST. JSB PHEAD PRINT HEADER INFORMATION. * LBL14 LDA DISC INITIALIZE LOCATION OF CROSS STA CDISC REFERENCE INFORMATION ON DISC BY LDA TRACK USING VALUES FROM COMMON STA CTRAK DEFINING THE FIRST TRACK. LDA SECTR STA NSECT CLA SET SECTOR NUMBER ON TRACK TO 0. STA CSECT SET NEWCR=0 TO INDICATE FIRST STA NEWCR LINE OF XREF FOR A SYMBOL. LDA PLIST SET NEXTP INA TO POINT TO TOP OF STA NEXTP LIST OF CROSS REFERENCE PAIRS. LDA TLIST,I GET NEXT A.T. POINTER IN STA NXTAT SEQUENCE AND SAVE IT IN NXTAT. INA POINTS TO AF OF NXTAT. LDA A,I GET REF COUNT OUT OF AF CMA,INA PART OF A.T. ENTRY AND STA COUNT NEGATE TO SET COUNTER. ISZ TLIST POINT TLIST TO NEXT ULIST ENTRY. * LBL15 JSB READ GET NEXT SECTOR OF XREF PAIRS. * LBL16 LDA NEXTP,I (A)=NEXT A.T. POINTER TO CHECK CPA NXTAT IF IT IS THE SAME AS THE CURRENT JMP LBL19 ULIST ELEMENT, ADD LINE NO. ISZ NEXTP BUMP NEXTP BY TWO TO POINT TO LBL17 ISZ NEXTP NEXT PAIR IN PLIST. ISZ PCOUN BUMP PAIR COUNT. JMP LBL16 COMPARE AGAINST NEXT PAIR. LDA NEXTP IF PCOUN=0, ADJUST NEXTP, ADA WCOUN GET NEXT SECTOR OF PAIRS STA NEXTP JMP LBL15 AND CONTINUE. * LBL18 JSB PLINE PRINT LAST LINE OF XREF LIST LDA TLIST FOR CURRENT SYMBOL (LINE MAY CPA ULIST SBE PARTIALLY FILLED). RSS IF TLIST=ULIST, DONE. JMP LBL14 NO- PROCESS NEXT ULIST ITEM. LDA SAVE RESTORE JSB FA00 TO ITS STA FID04 LOCATION IN FID00. JMP RETRN RETURN FROM SEGMENT TO MAIN PROG * LBL19 LDA NREFS IF NO. OF REFS IN LINE IS 8, CPA K8 LINE IS FULL. PRINT IT AND JSB PLINE START NEW ONE. LDA NREFS MULTIPLY NUMBER OF REFS ON LINE ALS,ALS BY FOUR AND ADD LOCATION OF ADA XRLOC START OF REFERENCES IN LINE TO STA RFLOC GET LOCATION IN LINE OF NEXT REF ISZ NREFS INCREMENT NO. OF REFS COUNTER ISZ NEXTP POINT TO LINE NO. IN XREF PAIR LDA NEXTP,I (A)=LINE NO. IN BINARY JSB P1ASC CONVERT IT TO ASCII STB RFLOC,I STORE FIRST 2 DIGITS THEN ISZ RFLOC STA RFLOC,I 2ND TWO IN LINE AND THEN ISZ COUNT IF MORE REFS LEFT FOR SYMBOL, JMP LBL17 CONTINUE WITH NEXT XREF PAIR. JMP LBL18 ELSE OUTPUT CURRENT LINE. * NEWCR NOP NXTAT NOP XRLOC DEF LINE+6 RFLOC NOP COUNT NOP * SKP * * ************** * * PRINT LINE * * ************** * PLINE NOP LDA NLINE IF NLINE=0, NO LINES LEFT ON SZA PAGE; JMP PL00 JSB EJECT EJECT TO TOP OF PAGE AND JSB PHEAD PRINT HEADER INFORMATION. PL00 LDA NEWCR IF NEWCR=0, THIS IS THE FIRST SZA LINE FOR A NEW SYMBOL; JMP PL01 LDA NXTAT THE SYMBOL MUST BE PRINTED WITH STA .A LINE. SET UP .A FOR SYMBOL; JSB FID00 GET NAME OF SYMBOL INTO NID, LDB BNID THEN PACK 2 CHARACTERS PER LDA B,I WORD AND TRANSFER NAME TO FIRST ALF,ALF THREE WORDS OF LINE BUFFER. INB IOR B,I STA LINE+1 INB LDA B,I ALF,ALF INB IOR B,I STA LINE+2 INB LDA B,I ALF,ALF INB  IOR B,I STA LINE+3 SYMBOL NOW TRANSFERRED TO LINE. * PL01 CCA IS NOT REPEATED FOR NEXT LINES. ADA NREFS COMPUTE LENGTH OF PORTION OF ALS,ALS LINE BUFFER TO BE PRINTED (ONLY ADA K8 OUT TO END OF CROSS-REF INFO.) STA PRLEN SET LENGTH FOR EXEC CALL AND LDA BLINE SET BUFFER ADDRESS FOR EXEC CALL STA BUFAD * JSB LIST PRINT LINE * ISZ NLINE INCREMENT LINE COUNT AND RSS IF NOT 0 ALREADY, JMP LP02 JSB SKIP1 SKIP 1 LINE AND ISZ NLINE BUMP LINE COUNT AGAIN. NOP NO ACTION HERE. * LP02 CLA SET NUMBER OF REFS IN LINE STA NREFS TO 0. LDA NEWCR IF NEWCR=0, THE NAME MUST BE SZA BLANKED OUT OF LINE SO IT JMP PLINE,I WON'T BE PRINTED AGAIN AND LDA BLNKS NEWCR SET #0. OTHERWISE STA LINE+1 STA LINE+2 EXIT DIRECTLY. STA LINE+3 STA NEWCR JMP PLINE,I * K8 DEC 8 BLINE DEF LINE ADDRESS OF LINE BUFFER * * LINE SET-UP: * * * 2 BLANKS (LINE PRINTER ONLY) * 6 CHAR NAME (FIRST LINE FOR SYMBOL) OR 6 BLANKS (OTHER LINES) * 4 BLANKS AND 4 DIGIT REFERENCE (REPEATED UP TO 8 TIMES) * * MAX # CHARS/LINE: 70(TTY), 72(LINE PRINTER) * * LINE IS INITIALIZED TO 72 BLANKS * LINE ASC 18, ASC 18, ASC 18, ASC 18, * BLNKS EQU LINE NREFS NOP MUST BE 0 INITIALLY SKP * * ************* * * LIST LINE * * ************* * LIST NOP LDA LUNLD IF LUNLD=0, LISTING ON TTY. SZA JMP LIST1 ISZ BUFAD IN THIS CASE, BUMP PRINT CCA ADDRESS BY 1 AS WELL AS ADA PRLEN DECREASING BUFFER LENGTH BY 1 STA PRLEN TO AVOID PRINTING LEADING BLANKS * LIST1 JSB EXEC PRINT LINE DEF *+5 DEF K2 DEF LULID LIST DEVICE LOGICAL UNIT BUFAD NO,P BUFFER ADDRESS DEF PRLEN BUFFER LENGTH JMP LIST,I EXIT. * PRLEN NOP * * *************** * * SKIP 1 LINE * * *************** * SKIP1 NOP JSB EXEC EXEC CALL TO DEF *+4 DEF K3 DEF CONWD SKIP LINES DEF K1 (SET FOR SKIPPING 1 LINE) JMP SKIP1,I * * ********************** * * PRINT HEADER LINES * * ********************** * PHEAD NOP LDA PGNUM CONVERT PAGE NUMBER TO DECIMAL JSB P1ASC ASCII STRING STB HEADL+4 1ST TWO DIGITS STA HEADL+5 2ND TWO DIGITS ISZ PGNUM INCREMENT PAGE NUMBER LDA STHD STA BUFAD HEADER LINE ADDRESS LDA K34 OUTPUT 34 WORDS OF PAGE HEADER STA PRLEN JSB LIST OUTPUT LINE. JSB SKIP2 SKIP 2 LINES. LDA LABLE STA BUFAD 'CROSS REFERENCE LIST' HEADING LDA K11 STA PRLEN JSB LIST OUTPUT LINE (11 WORDS LONG) JSB SKIP2 SKIP 2 LINES LDA HEADR STA BUFAD 'SYMBOL REFERENCES' HEADING JSB LIST OUTPUT LINE (11 WORDS LONG) JSB SKIP2 SKIP 2 LINES LDB LINEP CMB,INB RESET LINE COUNT AND ACCOUNT FOR ADB K9 9 LINES OUPUT IN THIS ROUTINE STB NLINE JMP PHEAD,I EXIT. * * **************** * * SKIP 2 LINES * * **************** * SKIP2 NOP JSB EXEC CONTROL REQUEST TO SKIP 2 LINES DEF *+4 ON LIST DEVICE. DEF K3 DEF CONWD DEF K2 JMP SKIP2,I * * STHD DEF HEADL-4 * LABLE DEF *+1 ASC 11, CROSS REFERENCE LIST * HEADR DEF *+1 ASC 11, SYMBOL REFERENCES * K9 DEC 9 K11 DEC 11 K32 DEC 32 K34 DEC 34 SKP * * **************************************** * * READ CROSS REFERENCE PAIRS FROM DISC * * **************************************** * * ON ENTRY, THE FOLLOWING VARIABLES ARE SET UP: * * NEXTP = NEXT PAIR LOCATION. THE 64 WORD SECTOR * IS READ INTO THIS AREA OF THE LIST OF * CROSS REFERENCE PAIRS. THE 64 WORDS * WILL TAKE UP THE AREA ADDRESSED BY * NEXTP+0 TO NEXTP+63. AT LEAST 128 WORDS MUST * REMAIN BETWEEN PLIST AND NEXTU, THE * LOCATION OF THE NEXT UNIQUE ASSIGNMENT * TABLE POINTER IN THE LIST OF THOSE POINTERS. * IF NOT, A MESSAGE IS PRINTED ELSEWHERE IN * THIS SEGMENT AND THE CROSS REF. IS ABORTED. * * CDISC = CURRENT DISC LOGICAL UNIT NUMBER * CTRAK = CURRENT TRACK NUMBER ON CDISC * CSECT = CURRENT SECTOR NUMBER ON CTRAK. CSECT RUNS * FROM 0 TO NSECT-1. IT IS SET TO 0 WHEN THE * READING OF A NEW TRACK IS BEGUN, AND IS * INCREMENTED IN THIS ROUTINE WHEN EACH * SECTOR IS READ. * NSECT = NUMBER OF SECTORS PER TRACK ON CDISC * * NOTE: * * * CDISC, CTRAK AND NSECT ARE INITIALIZED FROM THE VALUES * IN COMMON (PASSED FROM F4.2) WHICH DEFINE THE LOCATION * OF THE FIRST TRACK OF CROSS REFERENCE INFORMATION. * * WHEN THE LAST SECTOR OF A TRACK IS READ, THIS ROUTINE * SETS NEW VALUES FOR THESE VARIABLES TO DEFINE THE * LOCATION OF THE NEXT TRACK OF CROSS REFERENCE INFORMATION. * THE NEW VALUES FOR THESE VARIABLES (I.E. TRACK * SWITCHING INFORMATION) ARE FOUND IN WORDS 32, 33 * AND 34 OF THE LAST SECTOR OF THE CURRENT TRACK * (WORDS IN A SECTOR ARE NUMBERED FROM 0 TO 63). * ONLY THE FIRST HALF OF THE LAST SECTOR CONTAINS * CROSS REFERENCE INFORMATION. * * NOTE: * * * THIS ROUTINE IS USED IN BOTH PHASES OF THIS SEGMENT. * IN PHASE 1, WHEN THE LIST OF UNIQUE ASSIGNMENT * TABLE POINTERS IS BEING CONSTRUCTED (XFLAG=0), * THE SECTOR IS ALWAYS READ FROM THE DISC. IN PHASE 2, * WHEN THE CROSS REFERENCE LIST IS BEING OUTPUT (XFLAGcZ#0), * THE SECTOR IS READ ONLY IF IT IS NOT ALREADY IN CORE. * THE SECTOR IS NOT IN CORE WHEN NEXTP = OVLAY. OVLAY * IS THE ADDRESS WHERE THE SECTOR OVERLAY AREA BEGINS. * * ON EXIT, THE FOLLOWING VARIABLES ARE SET UP: * * * PCOUN = PAIR COUNT. THIS IS THE NUMBER OF CROSS * REFERENCE PAIRS IN THE SECTOR. IT IS SET * NEGATIVE FOR LATER USE AS A COUNTER. PCOUN * ALWAYS HAS A VALUE OF -64 EXCEPT WHEN THE * LAST SECTOR OF A TRACK IS READ, IN WHICH * CASE IT IS -32 (ONLY FIRST HALF OF THAT * SECTOR CONTAINS CROSS REFERENCE PAIRS) * * WCOUN = WORD COUNT. THIS IS A COUNT OF THE NUMBER * OF WORDS THAT NEXTP MUST BE ADJUSTED BEFORE * THIS ROUTINE IS CALLED THE NEXT TIME. USUALLY * WCOUN IS SET TO 0. HOWEVER, WCOUN IS SET * NON-ZERO IN ANY OF THE FOLLOWING CASES: * * WCOUN = 32 IF LAST SECTOR OF A TRACK WAS * READ AND IT DID NOT OVERLAY A * PREVIOUS SECTOR. * * WCOUN = -32 IF LAST SECTOR DID OVERLAY * A PREVIOUS SECTOR. * * WCOUN = -64 IF SECTOR READ WAS NOT THE LAST * ONE IN A TRACK BUT IF IT DID * OVERLAY A PREVIOUS SECTOR. * * * * * READ NOP LDA XFLAG IF THIS FLAG IS 0, THE UNIQUE SZA,RSS A.T. POINTER IS BEING BUILT JMP READ1 IN PHASE 2. MUST READ SECTOR; LDA NEXTP OTHERWISE PHASE 2 IS EXECUTING CPA OVLAY MUST READ SECTOR ONLY IF THE RSS OVERLAY AREA IS BEING READ INTO. JMP READ2 NOT AN OVERLAY, ALREADY IN CORE. READ1 JSB EXEC READ A SECTOR (FIRST 64 WORDS DEF *+7 OF A 128 WORD SECTOR) OF CROSS DEF K1 REFERENCE PAIRS INTO THE LIST DEF CDISC OF SUCH PAIRS IN CORE. DEF NEXTP,I DEF K64 DEF CTRAK DEF CSECT  READ2 LDB CSECT IF CSECT+1 = NSECT, THIS IS THE INB LAST SECTOR OF THE TRACK. STB CSECT INCREMENT SECTOR NUMBER. CPB NSECT RSS JMP READ3 NO - SET COUNTS AND EXIT LDB NEXTP YES, UPDATE TRACK SWITCHING ADB K32 INFORMATION FOR NEXT READ LDA B,I STA CTRAK NEXT TRACK INB LDA B,I STA CDISC LOGICAL UNIT OF NEXT TRACK INB LDA B,I STA NSECT NUMBER OF SECTORS ON NEXT TRACK. CLA STA CSECT SET NEXT SECTOR NUMBER TO 0. LDA KM16 SINCE ONLY FIRST HALF OF LAST STA PCOUN TRACK HAS CROSS REF. PAIRS, SET LDA K32 PCOUN = -16 LDB OVLAY IF OVERLAY AREA WAS READ INTO, CPB NEXTP ADJUSTMENT TO NEXTP NEXT TIME CMA,INA SHOULD BE -32 WORDS. OTHERWISE STA WCOUN ADJUSTMENT IS 32 WORDS FORWARD. JMP READ,I EXIT READ3 LDA KM32 A FULL SECTOR WAS READ. STA PCOUN PCOUN=-32 INDICATES 32 PAIRS CLA OF CROSS REF INFO. LDB OVLAY IF OVERLAYS ARE BEING DONE, CPB NEXTP BACKUP NEXTP 64 WORDS NEXT LDA KM64 TIME. OTHERWISE NO ADJUSTMENT STA WCOUN IS NECESSARY. JMP READ,I EXIT. * * XFLAG NOP MUST BE 0 INITIALLY. OVLAY NOP MUST BE 0 INITIALLY. PCOUN NOP WCOUN NOP K1 DEC 1 K64 DEC 64 KM16 DEC -16 KM32 DEC -32 * * * THE CROSS REFERENCE PAIRS ARE KEPT IN * THE FOLLOWING TABLE (AND ALSO ON DISC, IF * THIS AREA IS NOT LARGE ENOUGH FOR A PARTICULAR * PROGRAM'S CROSS REFERENCE INFORMATION). THE * BSS IS SET TO A VALUE WHICH WILL PERMIT * THE VARIABLE 'ULIST' TO IMMEDIATELY PRECEDE * THE FIXED SYMBOL TABLE. IF THIS SEGMENT'S * CODE IS INCREASED OR DECREASED, THIS BSS SHOULD * BE DECREASED OR INCREASED, RESPECTIVELY. CHANGES * IN THE SIZES OF OTHER SEGMENNLHTS MAY ALSO * AFFECT THIS BSS. SEE NOTES AT THE ENDS OF * THE OTHER SEGMENTS FOR AN EXPLANATION. * * PLIST DEF * * BSS 2021 CROSS REF. TABLE AREA. * ULIST DEF * * END F4.3 CN f= 22659-80001 A SC 0122 IBM O.S. CROSS MICROASSEM FOR HP2100 COMPUTER             H0101 baa@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ aa@@@kK~}~Mkk]k~k}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ aa@K~}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@`@@@`@MKK@]@\a@@@@@@@@@@@ @z@@M]@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M@M]]@@M@M]]^@@@@@@@@@@@@@ @@@M@M]]@@M@M]]^@@@@@@@@@@@@@@@ @@@MM\k\]@@M]k@M]k@M]k@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@M]]@@M@M]]^@@@@@@@@@@@@@@@@@ @@@M@M]k@M]]@@M@M]]^@@@@@@@@@@@@ @@@M@M]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M@M]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M@M]k@M]]^@@@@@@@@@@@@@@@@@@@@@@@ z@@MM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@M@@@@@@@@@@@@@@@kkkkkkkkkk@@@@@@@ @@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@Mz]kMz]kMz]@]@@@Mk]k@@@@@@@@@@ @@@@@@@@Mz]@@@M]@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@Mz]@@@M]@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@Mk]@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@Mk]@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M@kkkkkkk@@@@@@@@@@ @@@@@@@@kkkkkk@@@@@@@@ @@@@@@@@kkkk@]@M]k@@@@@@@@ @@@@@@@@M]@@M}}]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mz]@@@@@@@@@@@@@@@@@M]k@@M]@@M}@}]k@@@@@@@@@ @@@@@@@M]k@Mz]@M]@@k@@@@@@@@@@@@@@@@@@@ @@@@@@M@Mz]k@@]@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mzkz]@@M]@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@`@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@M@Mzkz]@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}@}k}@}k}@}]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mzkz]@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@M}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}@}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}@}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}@}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@}k}@}k}@}k}@}]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mzkz]@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@M}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kkkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@oG@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ }@}k}@}@k}@}k}@}]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mzkz]@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}@}k}@}k}@}]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mzkz]@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@M}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}@}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ }@}k}@}k}@}k}@}]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@Mzkz]@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@M}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}k}}k}}k}@}k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ }@}k}@}k}@}k}@}]@@@@@@]@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@@@@K@\a@@ zM]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @~@@@@MM]_~]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@@@K@\a@@@@@@@ z@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @~@@@@MM]~}@}]^@@@@@@@@@@@@@@@@@@@@@@@@@@@ ^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@K@\a@@@@@@@ zM]@@M@M]]^@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@~@@@@MM]n~}}@P@M]L~}}]^@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@~\N@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@@K@\a@@@@@@ zM]M@M]]^@@@@@@@@@@@@@@@@@@@@@@@@@@ @Mkkkk]@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~^@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @~@@@@`^@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@~aM\\]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@~`\\\^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@~\N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@@@K@\a@@@@@@ zMk]@M@M]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@~@@`^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@~M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M}@@@@@\\\\}kk}\\\\}]MkM]k]^@@@@@@@@@@ @@@@@@@@@@@@@M]@MM]kM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M}@@@}]M]^@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ M]~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ M]~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ M]~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@\a@@@@@@@@@@@@@@@@@@@@ @a\@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@K@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@K@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@K@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@K@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@K@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @Mk]@@Mk]k@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@M]@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @M]~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@9M]~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@a\@@@@@@@@[@\a^@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M}~}]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~`Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~`^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@n@O@L@O@n@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@nN@O@Mk]L@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ v@M]~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@a\@@@@@@@@[@\a^@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M}~}]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@z~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@~@@@@MM]_~}@}]^@@@@@@@@@@@@ @@@@@@@@@@@@@@@~OOM]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~OO}@@@@@}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~}@}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M}k}]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@_@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]~}}@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@' @@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @M]~}}@@~^@@a\@@@[@\a@@@@@@@@@@@@@@@ @@M]~}}@@~}}^@a\@@@[@\a@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@z@@@@a\@@@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M}@@@}]M]^@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]MM]kM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~}@}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@a@@@@@K@\a@@@@@@@ z^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]^@@@M]@@^@@@@@@@@@@@@@@ @a\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]@@MM]]M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@M]~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@_~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@@M]~^@M]~^@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]~NM]NM]^@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~N\MN]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M]@@MMkk]kM]]M@M]]^@@@@@ @@@@@@@@@@@@@@@@~@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@M]@@MMM]kk]k@@@@@@@@@@@@@ @@@@@@@@@@@@@@@MM]kk]]MM]kM]]^@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@M]~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@K@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ zM]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M}@\\}kk}@@@}kk}\\}]MM]kkM]kk@@@@ @@@@@@M]kkM]]^~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@@`K@\a@@@@@@@@@@@ zMkkk]M@M]]^@@@@@@@@@@@@ @Mk]@@Mk]^@@@@M]^@@@@@@@@@@@@@@@@@@@@@@ @M\k\]@@M]^@@Mkk]@@@M]^@@@@@@@@@@@@@@ @@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@~@@@@ML~]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@@@@ML@P@MN]~MkN]]^@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@~@P@~@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@~@@~`^@~^@@@@@@@@@@@@@@@@@@@@@@ @~`^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@K@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@ zM]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@̫@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M}@\\}kk}@@@}kk}\\}]MM]k@@@@@@@@ @@@@@@@@kM]kkM]kkM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@`K@\a@@@@ zMk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @Mk]@@Mk]k@M]@@@Mkkk@@@@@@@ kk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @n@P@L@@@@M]^@@@^@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@@@@a\@@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@@@@a\@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@O@@~@@@@~}}^@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@@~}}^@@@l@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@@@@a\@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@L@@P@@@n@@@~}}^@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@P@@@n@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@P@@@@@@M]^@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@P@@_@@M]@@@M]^@@@@@@@@@@@ @@@@@@@@@@@@P@_@M@O@@]@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@M]^@@M]^@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@@@@a\@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M~@P@@@]@O@@M~@P@@@]@O@@@@@@@@@@@@@@@ @@@@@@@@@@M~@P@@@@@@@@]@@O@M~@P@@@]@@@@@@@@@@@@@ @@@@@@@@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@@@@a\@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@@ُ6M]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@~@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@_M@O@~]@P@@@@@@M]^@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@@@@a\@@@@@@@\a^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@L@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@_~@@P@@@@@@@@@M]^@@@@ @@@@@@@@@@@@@@@MM_~]@P@@M_~]]@P@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@MM~]@O@@M~]@O@@M~]@O@@M~@]@O@@M~@]]@@@@@@@ @@@@@@@@@@@@@@@P@@@@@@@@M]^@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@MM~]@O@@M~]]@P@@@@M]^@@ @@@@@@@@@@@@@@@@~@@@@~}}^@@~}}^@@@@@@ @@@@@@@@@@@@@@@@~@@~}}^@~}}^@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@kkk~^@~`^@@@@@@@@@@@@@@@@@@@ Mk\]~M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ k~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@M]@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~`^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @M]@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M_]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]MM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@z@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]@@M]@MM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]@_~@}\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]~}[}@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@L@@@@@M}@}]M]^@@@@@@@@@@@@@ @@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@L@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M]@_~}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@a\@@@\a@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~Mkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@M_MMkN]]]@@@@^@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @n@ݙ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@a\@@@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M}@@@@@\\\\\@}kk}\\\\}]MkM]k]^@@ @@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@MMM]kMM]]kM]@@~@@`]]@@ MM]k@@@@@@@M]kM]kM]k}}kM]@@@@@@@@]^@@@@@@@@@@@@@@@@@ @@@@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ kk~}}^@@~^@k~^@@@@@@@@@@@@@@@@@ @@@@@@@@M_]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M]@@M]MM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~^@@@@@@@k@k@kk@@@@@@@@@@@@@@ @@@@@k@@@@@@@@kkkk@@@@@@@@@@@ @@@@@k@@@@@@@@kk~}}^@@@@@@@@@@@@@@@@@@ @@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]~}\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@Mk]MM]kM]kM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]~}[}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@a\@@@@@`@@@@@@\a@@@@@@ @@@@@@@@@@@M]~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@a\@@@@@@@@@@@\a@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@M}~}]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~MM]k]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@M]~}}@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@Mk]MM]kM]kM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@a\@@@@@@@\a@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@@~@@@@@aN\MMk]]^@@@@@@ @@@@@@@@@@M]~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@Mkkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@~@@@M]@N@@\^@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~Mkkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@~@@@M]@N@@\^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~Mkkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@PQ@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@M]@@@~@@@M]@N@@^@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@~`^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@~@@@M]@N@@\^@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@Mkkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@~@@@M]@N@@\^@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@a\@@@@@@@@@@@\a@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@M]~}\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@^@@@@@@@a\@@@@@@@@\a@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@M]~}N}@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@NNM]^@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@M]~}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@~N`M]^@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@M]~}@}@@~^@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@Mn@O@@L]@@@M]^@@@ @@@@@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@~@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@~Mk`kk]^@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@L@@@M]^@@@@@@@@@@@wv @@@@@@@@@@@@@@@@@@@@~M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@~@@@M]@~@MM]k]@@ @@@@@@@@@@@@@@@N@^@@@@@@@@@@M]@~@M]@N@^@@ @@@@@@@@@@@@@@@M]@@@~@@@@M]@N@Mk]^@@@@@@@@@@@@ @@@@@@@@@@@@@@@k~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ML]@O@@@Mn@P@@@L]@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@MM]]@~@MM]]@@@@@@ @@@@@@@@@@@@@@@@@@@@P@@@@@@@@@@@@@@}}^@ @@@@@@@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@M]@@~@@M]@N@MM]k]^@@@@@@ @@@@@@@@@@@@@@@k@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@a\@@@@@@@@@\a@@@@@@@ @@@@@@@@@@@@@@@~@@@@Mkkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@M]@@~@@@@@M]@N@\^@@@@@@@@@@@@@@@@@E@@ @@@@@@@@@@@@@@@@~@@@Mkkk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@Mk]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@M]@@@@@@~@M]@N@^@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@MkMN]kMMM]k]]k@@@@@@ @@@@@@@@@@@MM]]k]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@MM]kM]kM]k}}kM]k}}kM]k}}k@@@@@@@@@@@ @@@@@@@@@@M]@kM]]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@~@N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~NM]NM]^@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~N^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@~@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@~@@@@@M}\\@\\}]M]^@@@@@@@@@@@@@@@ @@@@@@@M}@\\}kk}@@\\}]MkM]k]^@@@@@@@@@ @@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @a\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@~`^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@j@@@@@@@@@@ @@@@@@@M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@L@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~}}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M}@\\@[\\}]M]^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@~}[}^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ z@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ a\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ aaK@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ aaK@@~k~M~k~k~]@@@@@@@@@@@@@@@@@@@@@@@@ aaK@@~k~Mk]k~M~k~k@@@@@@@@@@@@@@@ aa@~]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ aaK@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ѻ@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@`@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@ka@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@e@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@`@~@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ a\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ш g 22659-80002 A SC 0422 IBM O.S. CROSS MICROASSEM FOR HP2100 COMPUTER             H0104 f@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@k@@@@@@@@@@ \@@@@@@@@@k@@@@@@K@@@@@@@@@@@ \@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@k@@@@@@@ \@@@@@@@@@@@@@`k@@@@K@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@}}@@o@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@`@}@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@^@@@}}@@M@``]@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@@ \@@@@@@@@@k@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@k@@K@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@}}@@@@K@@@ \@@@@@@@@@@@@@@@@z@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@k@@@k@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@K}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@K}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@MkM]]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}}@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@k@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@kkk@K@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@ \@@@@@@@@@@M@@@@@@@@@@@@@@@@@ \@@@@@@@@@]@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M@@]@@M@@@@@@@@@@@ \@@@@@@@@@@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@k@@@@k@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@L8@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@k@@k@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@K@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@Mk]k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@Mk]k@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k}}@@@@@@@@@@#@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@Mk]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@Mk]k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@Mk]k@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@Mk]kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k$M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@ \@@@@@@@@@@@@@@z@M]@@@@@@@@@@@@@ \@@@@@@@@k@@@k@@M]@@@@@@@@@@ \@@@@@@@@@@K@@@@@M]@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@M]@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@`@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@`@@@@M@]@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@`@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@k@@k@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@M}}@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@?@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@MkM]]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/_@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~M]@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@``@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@j@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@^@@@}}@@@@K@@@@@@@@@@@ \@@@@@@@@@@@@`@@@K@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@@@@@M]@@@@@@@@@ \@@@@@@@@@@z@@@@@@@@@@@@@@@@@ \@@@@@@@@@`@K@@@@@@`@@@@@@@ \@@@@@@@@@@M]@@@@@@@@}}@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@ \@@@@@@@@@@@@@@@@@K@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@M@@@]@@@@ȕQ@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@K@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@K@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}k@@@@@@@@@@@@ \@@@@@@@@@@@@@@@}}@@@K@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@k@k@k@@k@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@z@@@@@k@}}@M@]@@}}@@@@@@@@@ \@@@@@@@@@@@@@@@@M@]@@@k@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@M]@@@@k@@M]@}}@@@@ \@@@@@@@@@@@@@@@@@@@@M@@@@]@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@k@@M]@}}@@@@@@ \@@@@@@@@@@@@@@@@@@@@k@@@}}@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@M@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@k@@@@ \@@@@@@@@@@@@@@@@@@@@@@]@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@K@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@K@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@}}K@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@M@@@@\@@]@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k~}@@@@}@@@@@@@@@ @@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@k@@k@@k@@@@@@@ \@@@@@@@@@@@k@@@`@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@NM]k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@NM]k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@x@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@NM]k~}\\\\\\}@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@NM]k~}\\\\\\}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@NM]k~}@}@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@NM]k~}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@@@@@@@@@k@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@6b@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@NM]k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@NM]k~}@@@}@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L @@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]kM]@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@@@@@@@@@@@@@ \@@@@@@@@@@}}@@@M@]k@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@a@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@q@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@M@@@]@@@@@@ \@@@@@@@@@M@@@]@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@M@@]@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@">@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@a@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@>@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@M@a]@}@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@M@@kkkkk@]@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k}}@@@@@@@@@@@@k@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k}}@@@@@@@@@@@@@`@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k}}@@@@@@@@@@@k@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@a@@`@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k~}\\\\}@@@@@@@}@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k~}\\\\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k~}\\\\\\@@@@@@}@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@mmmmmmmmmmmmmmmmmmmmmmmmmmmmm@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@`K@@@@@@@@@@@@@@ \@@@@@@@@@@@`K@@@@@@@@@@@@ \@@@@@@@@@@@@@@@`@K@@@@ \@@@@@@@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@k@@@@@@M@@]k@@@@@@ \@@@@@@@@@@@@k@@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@a@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@]@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@M@]@@@@@@@@@}}@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@`]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@M]@`}@@@@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@@@@@ \@@@@@@@@M}}k}}k}}]@@@k@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@Mu@@@}}@@}}@@@@@@@@ \@@@@@@@@k@@@@@}}@@K@@@@@@@ \@@@@@@@@@}}@@}}@k@@@@@@@@@@@@@@@@ \@@@@@@@@@@@}}K@}}@@@@@@@@@@@@@@ \@@@@@@@@@}}@k@@@@@}}@@}}@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@}}@M@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@M@@]K@@@@@@@@@@ \@@@@@@@@@@K@@@@@k@M@@@@@ \@@@@@@@@@@]k@k@@@@@@@@@@@ \@@@@@@@@@@kM@k@@@@]@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@k@@@}}@@@@O@@@@@@@@ \@@@@@@@@@@}}@@@@@k@@K@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@q@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@k@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@.Q@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@M@k@@@@@@@@@@@@@ \@@@@@@@@]K@@@@@@@@@}}@@@@@@@@@@@@@ \@@@@@@@@@@@@@k@@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}k@@@@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!A @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@}}@@}}k@@@@@@@@@@@@@ \@@@@@@@@@k@@@@k@@@@k@@@@@@@@@@@ \@@@@@@@@@@@@@K@@M@@@@@@@@@@@@@@@@@ \@@@@@@@@}}k@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@k@@@@}}]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+q@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@`@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@L@k@@n\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@}}@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@k@@`@K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@}M}k@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@K@@@@@@@@@@@@ \@@@@@@@@K@@@k@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@K@@@k@@k@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@k@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@K@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@K@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}M}@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}]}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}]}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@}]}@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@K@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@k@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]kM]@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@k@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@{9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@k@@@@@@@@@@@@@ \@@@@@@@@@M@@@k@]K@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@k@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@}}@@k@@@@k@@K@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x0@ @@@@@@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@k@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@Nk}}@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@Nk}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@Nk}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@M@`]@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@M@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@k@@@@K@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@k@@@@@@@@@ \@@@@@@@@@@@@@@@G@K@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@K@K@K@@K@K@K@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@e@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@`@@@@@@@@@@@@@@@@ \@@@@@@@@@``@@@@@@K@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@M@@]@K@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@K@@@@@@@@@@@ \@@@@@@@@@@M]@@MM]@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@~k@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@k@@@k@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@@@@@@ \@'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@M@]@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@g-@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@k@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@k@@@@@@@@@ \@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@M}@@@}@@]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@Mk]@@@@@@@@c@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@Mk]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@}}@@@@@@@@@@@@@@@@ @@@@@@@@@@@@NM]kM]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@`@Mkk]@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@@@@@ \@@@@@@@@k@َ\@@@@@@@@M~kk@]@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@@}}@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@M@@@@@@@@@@@@ \@@@@@@@@@@@@@@k@@@}}K]@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@@K@}@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@  \@@@@@@@@@@@@@@@@@@M]@`@@M]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@a@@M]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@k@@@@@@ \@@@@@@@@@@@@M]@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@ \@@@@@@@@@@@@@@@@}}k@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@a@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mkkk]@@&0K@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@ @@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@@}@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@`@@@@@@@@@@@@@@@@@@@@@@@@>@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@`@K@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@Mkk]@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@M@@]@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@`@@@@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@T@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@`@}@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@`@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@`@@K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@k@@@K@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@@]@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@~@kkkkkkkk@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@~@kkkkkk@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@99@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@9 @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@@@}@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@k@@@@@@`@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@a@@}@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@a@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M@@@@@@@@]@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}k}K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@kkkkkkk@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@}@@}@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@r@@@@@`@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@aK@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@N@@@@@@@@@@@@@@@@M`]@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@N@@@@@@@@@@@@@@@@@@@k@@@@@@@ @@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@}@@@@@@@@@@@@@@@@@@@Mkkkk@]@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ߍ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@k@K@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@MN]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@a@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@a@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@}}@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}@@@@@@@@@@@@@@@@a@@@@@@@@ @@@@@@@}}@@@@@@@@@@@@@@@@a@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}N}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}}@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@@@@@@@@@@@@@@@KK@}@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@@@@@@@@@@}@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}kkk}@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@}@@@@@@@@@@@@@@@@@١}@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@M@]@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@@@}@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@}@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@@@mmmmmmmmmm@@@@@@@@mmmmmmmmmmm}@@@@@@@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@@\@ @@@@@@@@@@@@@@@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@@@@@@@@ @@@@@@@}@@@@@@@@@@@@@@@@@@@@@@M]}@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M]@@@@@@@@@z@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@O@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@K@@@@K@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@k@@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@K@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@K@@@`@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@K@@K@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M]@@@a@a@k@@K@@ \@@@@@@@@a@@@@@a@@K@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@}@a@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@`k@K@`K@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@}@a@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@}@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@`k@K`k`kK@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@``@@@M@@]@@@@@ \@@@@@@@@@@@@@@@@@@}}@@@@@@ \@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@~k~k~k~k@@@@@@@@@@@@@@\@ @@@@@@@@@@@@@@@~k~k~k~k~@@@@@@@@@@@@ @@@@@@@~k~k~Mk]k~k@@@@@\@ @@@@@@@@@@@@@@@~k~k~k~@@@@@@@@@@@@@@@@@@@@ @@@@@@~k~k~k~k@@@@@@@@@@\@ @@@@@@@@@@@@@@@~k~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@~k~k~k~k@@@@@@@@@@@@\@ @@@@@@@@@@@@@@@~k~k~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@Kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@HG@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@I@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:" @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@\\@@M@@@kk@@]@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@k@k@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@\\@@M@@@kk@@]@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@K@@@@@k@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@k@K@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@k@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@\\@@M@@@@k@@@]@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@k@M@]@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@M@]@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@z@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@\\@@M`@k@@]@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@^@@@@@`K@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1+@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@M]@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@^@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@MP@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@@@@@@ @k@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@}}@~@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@<@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@M@@]@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@k@k@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@a@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k}}@@@@@@@@@@@a@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kN@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@`@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@~^@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@M]@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@kM]@@@@@@@@@@@@@@@~@N@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@`@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@`@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@}}@@@@@@@@@@@@@@@@@@@`@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@}@}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@u@@@@@@@@@@@@@@@@@@@ @@@@k@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}}@@M]@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@M]@@@@@k@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@K@@@@@k@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@a@@@@@@@@@@@@@@ \@@@@@@@@K@M@@@@@@@@@@@@@@@@ \@@@@@@@@@@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kMk]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@Mk]k~}}@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@Mk]kM]@@@@@@@@@@@@@M]@@M]@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@`K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@}}@@@@@@@K@@@@M@@@@@@ \@@@@@@@@@@]@@@@@@@@@@@@@ \@@@@@@@@}}K@@@@@@@@@@K@@@@@@ \@@@@@@@@@@@@k@@}}@@@@@@@@ \@@@@@@@@@@K@@@@@k@@@@K@@@@@@@@ \@@@@@@@@k@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@^@@@@@@K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@^@@@@@@@@@@@K@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}N}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}M}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ !@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k@@@@@@@@@@K@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k~}\\\\\\@@@}@@@@@@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@M@ONO`]@@L@MNO`]@@n\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@k@@}\}@M@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@k@}}@@@@@K@@@@@@@@@@@@@@@ \@@@@@@@@@k@@@@@k@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@K@M@@]@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@k@@@@@@~}}k@@@@@K@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@~}}k@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@M@@@@@@@@@`]@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@ѡ@@@@@@@@@ @@@@@@@@@@@@M]k}N}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@M]k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}k}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@}}@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k}\}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}N}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@y@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@M]k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@`{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@n@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@L@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k~}}@@0@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@@@@@@@@@@@@ \@@@@@@@@}}]K@@@@@@@k@@}}@@@@@@@@ \@@@@@@@@@K@@k@@@@}}@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}}@@@@@@@@@@@@@@@`@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@}@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@}}@M@@@@@@ \@@@@@@@@@]@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@`@@@M@@@@@@@@@@ \@@@@@@@@@@@N@@]k@@@@@@@@@@@@@@@@ \@@@@@@@@@M@@@@@]@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@`@@M@]K@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@K@Mkkk]K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@k@@@@@@@@@@@@ \@@@@@@@@@@@@@@@k@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@K@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@K@@@@@@@@@@@@ \@@@@@@@@k@k@k@@@K@@@@@@@@@@ \@@@@@@@@@@@@`@@}}K@@@@@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@@}Wt@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@ \@@@@@@@@@M]@k@@@@@@@@@@@@@@@@@ \@@@@@@@@@@K@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@K@@@@@@@@@@@@ @@@@@@@@@@@Mk]kNM]@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@``@}@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@M@@]@@@@@@@@@@@@@@ \@@@@@@@@@@@@@K@@@@@@@ \@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@kkk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@kMk]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@``}@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@``@}@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@@@@@@@@@@@ \@@@@@@@@@@@K@@@@@@@k@@@@@@@@@ \@@@@@@@@@@`@@@K@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@MN@@`]K@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}N}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@``@}@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@Ɏ@@}}@@@@@@@@@@ \@@@@@@@@@@@@@@@@@K@@@@@@@@@@ \@@@@@@@@@@@@@@@@`@@@@@@@@ \@@@@@@@@@@K@@}}@@K@@@@@@K@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}N}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@M]k}}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@k~}}@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@kM]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@k}`}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@}}@@@}}@@@@@@ \@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@M@@]@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@٤yM]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M@]@@@@@@@@K@@@@@ \@@@@@@@@@@@@@@k@@`@@@@@@ \@@@@@@@@k@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@@@K@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@Ai@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@}}k@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@}}@@@@@@K@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M\]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ;0@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@z@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@k@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@M@]@@@@@@@@K@@@@@ \@@@@@@@@@@@@@@k@@`@@@@@@ \@@@@@@@@k@k@@@@@@@@@@@@@@@ \@@@@@@@@@@@k@@@@K@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@Zu@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@k@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@M]k@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@}@`@@@`@@@}@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@}}k@@@@@@@@@@@@ \@@@@@@@@K@@@@@@@@@@@@@@@@@ \@@@@@@@@@@}}@@@@@@K@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@M\]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8F    X   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GGGGGG hV  ل k 22660-80001 1442 SC 0122 01CHESS              H0101  ASMBҬ NAMUŬ NԠU Ԡ.PAM SPà HSSANAG̠AABŠPDUŠDSGND ϠPMHŠMVŠUNUDBYHŠMN-H HSSGAM. SPà ANGSUN: DNŠANNA̠PDU PDUŠU(ABìDŬƬGNGҠŬƬGH NGҠAAYABìDDŻ SPà HŠA: U(MVMBPVA̬DPHƬB׬MAA̩ SPà UŠNPNY SB.PAM Ԡ0000 Ԡ0 SPà MVԠ0 MԠ0 BԠ0 PVA̠Ԡ0 DPԠԠ0 ƠԠ0 BנԠ0 MA̠Ԡ0 SPà DAMV ADAD3 DA0 SAMV DAM ADAD3 DA0 SAM DAB ADAD3 DA0 SAB DAPVA ADAD3 DA0 SAPVA SPà DDMVɠMVŠHŠUNԠMV DSԠMɠϠMASKPSN. ANDBMASKҠDSNAN SAHŠSUAŠPŠMVD. ADABADDAAYADDSS. SADSԠSAVŠ. SZDPԬɠNMNԠHŠDPH. SPà DAMVɠGԠHŠMVŠDBAK. ҠPSNҠSUŠSUA ANDBMASK SAHŠSUAŠPŠMVDM. ADABADDAAYADDSS. SAGSAVŠ. SPà DBMGԠHŠASԠMVŠD NB SB.ADDSAVŠHSADDSSNKAA DAɠGԠHŠSNDD. ANDBMASKҠAPUŠNG. SAAPԠSAVŠ. SZASSANYAPUŠNHSMV? MPNAPNϬGϠϠUDA. SPà A SASS MPNNNϬԠSN'. SPà DADSԬɠGԠHŠPŠAPUD. SAPŠSAVŠ. DAGɠMVŠHŠP SADSԬɠMGϠDS. DAAPԠGԠHŠAPUŠN SASSNPASSAN? MPUPDNϬNNU SPà DAƬɠNPASSANԠAPU MANA SAPŠƠPŠS DBDSԠNGAVŬ SSASSƠPSVŬ ADBD-0SUBAԠ0. SSAHN ADBD0ADD0ϠPSN ASԠHŠPSN SAɠϠZϬMVNGHŠP. SPà UPDDAPŠGԠHŠMVDP ADAD6ADUSԠҠPSNA̠VAU ADAPVA̠ADDAAYSA. DA0ɠPŠVAU DBB׬ɠHK SSBSS MANA ADAMA̬ɠADDHŠDMAA SAMA̬ɠUPDAŠMAA. SPà NNDAAPԠNϠNMA̠APU. AҬA SASS MPNPϠNϠPMN SPà PANPMN. SPà DAMV A̬A ANDB3 ADAD DBƬ SSB MANA SADSԬ SPà DAD00GԠVAU DBƬɠHSŠMV? SSBSSƠHŬ MANAHNSUBA. SPà DBDSԬɠGԠHŠP ADBD6ADD6 ADBPVA̠MSANGADDSS. DBɠGԠMAA̠VAU. ADAADDϠPMN. DBB׬ɠGԠHůBAKNDA SSBSSƠHŬ MANAHNSUBA. ADAMA̬ SAMA̬ SPà NPϠDAAP ANDB0 SZASS MPNAS SPà ASŠPSSNG SPà DAG SADSԬ DAH MANA ADAH SSA MPSD SPà KNGSDŠASŠPSSNG SPà DBG ADBD3 DA ADBD- SA ADՂBD A SA MPNAS SPà UNSDŠASNG SPà SDŠDBG ADBD- DA ADBD3 SA ADBD-3 A SA MPNAS SPà NAPDAG SADSԬ NASA SAG DAƬ MANA SAƬ SSA MPAS SPà BAKAS'S SPà DA.ADD AƬA A ANDB3 DBD-3 ADA SSASS MPDN SPà DAB ADAD95 DA0 PAD-6 MPHK DA.ADD ҠB60 SA.ADD MPDN SPà HKDAB ADAD9 DA0 PAD- MPN DA.ADD ҠB0 SA.ADD MPDN SPà ASDA.ADDɠHŠASNGGHS AƬA AƬA ANDB3 DBD-3 ADA SSASS MPDN DAB ADAD5 DA0 PAD6 MPS DA.ADD ҠB300 SA.ADD MPDN SPà HŠASS SPà SDAB ADAD DA0 PAD MPDN DA.ADDɠNϬKNԠH. ҠB00SԠ"KGN"B. SA.ADD SPà HŠKNGSSD. SPà DABHKHŠKNG'S ADADKSUA DA0ɠGԠHŠPŠƠANY PADSԠAK? MPDN SPà DA.ADDɠNϬKSGN. ҠB00SԠ"KGN"B. SA.ADD MPDN SPà NԠDAB ADAD9 DA0 PAD- MPDN DA.ADD ҠB0 SA.ADD DNŠMPUŬ SKP A̠NSANSANDSAG SPà  HŠԠ0 HŠԠ0 .ADDԠ0 GԠ0 DSԠԠ0 APԠԠ0 PŠԠ0 SPà ND ASMBҬ NAMHS NԠSAVŬ Ԡ.N SPà HSUNŠSAVSABADPSNBYSNGH NNSƠHŠBADAAYNAAYPSN. SPà ANGSUN: SԠUPNA̠NŠASS PDUŠSAV(ABìDŬƩ NGҠABìDŬƻDŻ SPà HŠA: SAV(M۱ݬB۲ݬMAA̬DPH SPà3 MԠ0 B.Ԡ0 MA̠Ԡ0 DPHԠ0 SPà SAVŠNP SB.N DƠM DADPH MPYD ADAP.ADD SABUA DDM DSԠBUA SZBUA SZBUA DAMA̬ SABUA SZBUA SPà DAD- SA NMDAB.ɠGԠHŠUNԠP SABUA SZB. SZBUA SZ MPNM MPSAVŬ HDPDUŠ HSUNŠSSHŠSUANϠHŠASԠSAVD PSNBYUNNGHŠMNSƠPSNϠB. SPà ANGSUN: SԠUPANNA̠NŠASS PDUŠ(ABìDŬƬG NGҠABìDŬƬGDŻ SPà HŠA: (M۱ݬB۲ݬƬMAA̬DPH SPà3 MԠ0 BԠ0 ƠԠ0 M̠Ԡ0 DPԠԠ0 SPà ϠNP SB.N DƠM SPà DAƬ MANA SAƬ A ADADPԬ SADPԬ MPYD ADAP.ADD SABUA DDBUA DSԠM SZBUA SZBUA DABUA SAM̬ SZBUA SPà DAD- SA NNDABUA SAB SZBUA SZB SZ MPNN MPϬ oSPà ɠԠ0 BUAԠ0 P.ADDDƠ+ BUƠBSS05 SPà ND ASMBҬ NAMSBƬ NԠSB Ԡ.N SPà DNP SԠNP NNP VA̠NP SPà HSSANAG̯ANAABŠSUBUNŠHH ̠SԠABԠDNADPAҠADNGϠHŠVAU ANSDNANVA. SPà HŠVAABSHAVŠHŠNGSGNAN DHŠDSNANADDSS SԠHŠSANGBԠƠHŠD NNGHƠBԠD VA̠VAUŠϠBŠNUDDND SPà3 SBƠNPNY SB.NҠNKHŠPAAMS DƠD DANɠGԠHŠBԠNGH ADAABŠADDSANGADDSS DA0ɠGԠDSDMASK SAMASKSAVŠҠAҠUS DASԬɠGԠSANGBԠAN ANDB0HKҠABG SAAG SPà SBNS SBSAP DDD .SPSP S.Ҡ ANDMASK ҠVA̬ɠNUDŠHŠDAA SP.SP .NS̠ϠSANGPSN DSԠD MPSBƬ SPà NSԠNPNY DASԬ ANDB SA SA̲ Ҡ SA.NS ҠB000 SAS. MPNSԬ SPà SAPNPNY DAAG DB̲ SZA MP.SAP SA.SP SASP. SZB MP.N SAS. SA.NS .NMPSAP .SAPDA.SP. SZBSS A SA.SP SASP. MPSAP SPà .SP.SP AGNP ̠Ԡ0000 ̲NP MASKԠ0 ABŠDƠ Ԡ60600 Ԡ00600000006000 Ԡ000000060000000000000 SPà ND ASMBҬ NAMBƬ NԠB Ԡ.N SPà DNP GNP NNP SPà HSSANAG̯ANAABŠSUBUNŠ AԠABԠDMADPA. SPà HŠPAAMSHAVŠHŠNGMANNG. DADDSSƠSԠDƠPA GSANGBԠAN NNGHƠBԠD SPà3 BƠNPNY SB.NҠNKH DƠDPAAMS DANɠGԠHŠBԠNGH ADAABŠADDSANGADDSS DA0ɠGԠHŠMASKDSD. SAMASKSAVŠ. SPà DAGɠGԠHŠSANGPSN ANDB0MASKҠABGND SAAG SPà DAGɠGԠԠBAK ANDBNDN.ƠBS SASAVŠ ҠҠNUDŠHŠNSUN SAS.PUԠNSUN SPà DAAGGԠHŠAG SZA MP.SAP SA.SP SZB MPAD SAS. .SAPDA.SP. SZBSS A SA.SP SPà ADDDD .SPSP S.ҠPSN ANDMASKMASKҠDSDBS. MPBƬɠUN SPà .SP.SP AGNP ҠԠ000 MASKNP ABŠDƠ Ԡ33 Ԡ333 SPà ND ASMBҬ̬ NAMZϬ NԠZϬBANKZ BU SPà PUPS: HSSANAG̠MPABŠUNŠHHSS ZSҠASɠBANKSHUHUԠANAAY.ԠS MSԠUSU̠HNPADASϠHŠBAY "ND"UNŠUDNDϠSנPGAMUN SPà NGH: HSUNŠUS56DMA̠(0A̩DS. SPà ANGSUN: ANNA̠PDUŠDAANSMADŠNH 2ANGPGAMNHŠNGMANN: PDUŠZ(AYNGҠAAYAYDŻ PDUŠZ(AҩAAYAһDŻ PDUŠBANK(AYNGҠAAYAYDŻ PDUŠUNSNVKDNH NMA̠MANN. SPà3 ZϠNPNYPN ZϠUZ DAZϠGԠANDSAVŠH SAMPSAKPN. ASԠϠZϠHŠAAY. SAD MPKGϠGԠSZŠANDADDSS. SPà BANKNPNYPN. DABANKGԠANDSAVŠH SAMPSAKPN. DABNKSSԠϠBANK SADHŠAAY. SPà KDAMPɠGԠANDSAVŠH A̬ŬSAA DA0 SANUNADDSS SZMPBUMPHŠSAKPN. SBGADGϠGԠHŠAAYPAAMS. DADADHŠDϠBŠUSD. SPà SҠSABɠPUԠԠNHŠAAY. NBBUMPHŠADDSS. SZBU̠DN? MPSҠNϬDϠԠAGAN. MPNɠYSUNϠA. SPà GADNPNY DAMPɠGԠHŠAAYSAK SAABŠABŠADDSS. DAABŬɠGԠN.ƠNDS. BƠAAYSA̬ SSAB BHSŬB SBMDŠҠMDŠAG. SSASSŠHŠNUMB MANANGAVŠAND SANԠSԠHŠUN. SZABŠSԠϠPNԠϠSZ DAABŬɠƠSԠDMNSN SZABŠBUMPPNҠAGAN. SPà NԠSZABŠBUMPHŠPN SZNԠƠNԠNHDG MPMUԠMUPYHŠDMNSNS. SPà MANAMAKŠHŠSUԠNGAV. DBMDŠƠHŠAAYASA̬ |G0.*SZBSSHN ASDUBŬAND SABU̠SAVŠHŠNGH. DBABŬɠGԠHŠSAANԠADDSS. MPGADɠANDUN. SPà MUԠMPYABŬɠMUPYHŠ SZABŠDMNSNSҠABS(SZũ. MPNԠҠNԠDMNSN. SKP NSANSANDSAG SPà BNKSԠ000 DԠ0 MPԠ0 NԠ0 BU̠Ԡ0 ABŠԠ0 MDŠԠ0 NԠԠ0 SPà ND .0 l y 22660-80002 1442 SC 0122 02CHESS              H0101  HPA̬̬"HSS" BGN MMNԠMN-H-NBYMGGYUNŠ9 MDDANNADANDADAPDҠASSUSŠBYNHANDҬ Ԡ9.MDDANDANNADBYMGGYB9. ANSADϠSA̠BYPAU̠DANZGMAY93. HSSPSNA̠ANAYSSADDDBYKNPKUNŠ93. ADAPDϠHPAG̠BYDDUSԠANDKNPKSPԬ93 HSPGAM̠PAYHSSBYGNANGA"BSԠMV" MAMNMAؠGAMŠ.HŠMHDUSDSBUŠ. AHUGHAPHA-BAPUNNGSUZDNϠHUSSA MBDDDNHŠPGAM. VYMVŠSPSNDBYA3-BԠMPUҠD.AN BSƠHŠDDNŠGAMŠSUANSAND̠MANNSAN ASNGGHS.NGNA̠HŠDSƠAMVŠDHAVŠH ҠAHMVŠUNSSHANGD.ҠAMPŬBS0-3DN SGNGANŠSPDB. <0-BADPSNMVDϬ <-BADPSNMVDM <-PMNPŠVAUŬ <6-NPASSANԠAPUŬ <-NMA̠PŠAPUŬ <-UNŠƠAPMN <9-UNŠƠASNG <0-BAKASNGGHS <-HŠASNGGHS <3-PŠAPUD <-DNSPAYҠHϠMADŠHŠMVŬ(׬0B <-HSSHŠSԠMVŠƠAGUP (UŠƠASũ <3-SUSSSƠHSMVŠHAVŠBNNSDD. HŠBADPSNANSSDNA0-DAAY.DS -3-3...9-9PSNԠHŠ6SUASƠH HSSBAD.HŠMANDҠƠHŠAAYMSABUҠAUND HŠBADHAԠNDASHAԠAMVŠHASAKNAPŠƠH GAMŠBAD.HŠDSƠHŠAAY̠HDANNGҠM -6Ϡ.HŠNUMBSHAVŠHŠNGSGNAN. 0-MANSHŠSUAŠSMPY -Ҡ-MANSHŠSUAŠSUPDBYAl+PAN -Ҡ-MANSHŠSUAŠSUPDBYAKNGHԬ -3Ҡ3-MANSHŠSUAŠSUPDBYABSHP -Ҡ-MANSHŠSUAŠSUPDBYAK -5Ҡ5-MANSHŠSUAŠSUPDBYAUN -6Ҡ6-MANSHŠSUAŠSUPDBYAKNG -MANSHŠSUAŠSƠHŠBAD. ƠAPŠSNDADPSVŠDNSHŬ NGAVŠBAK.HŠVҠSHUDBŠVSUAZDASSHN. 0 00 --------------------------------- 90!-!-!-3!-5!-6!-3!-!-! --------------------------------- 0!-!-!-!-!-!-!-!-! --------------------------------- 0!0!0!0!0!0!0!0!0! --------------------------------- 60!0!0!0!0!0!0!0!0! --------------------------------- 50!0!0!0!0!0!0!0!0! --------------------------------- 0!0!0!0!0!0!0!0!0! --------------------------------- 30!!!!!!!!! --------------------------------- 0!!!3!5!6!3!!! --------------------------------- 0 0 03569 ϠAҠHŠPGAMNGUANҠVAUSNVNMNS SUHASBSDS-MìHANGŠHŠNԠD. UAŠY:KBD:SU:6 UAŠSZ:50MAMUMSZŠƠŠAAY UAŠMDPH:3MAMUMNUMBҠƠSAHVS NGҠHPNSBAKPNSɬʑB׬ԬƬSDPH MAA̬PҬAPSMVŬMD0MD0AԬ ̬PŬSUAŬHŬHŻ NGҠYUHKMYHK NGҠAAYPVA۱:6ݬAB-:9ݬUS۱:0ݬA۱:0ݬ PSNVA0:00ݬ0:SZŬ:ݻ NGҠAAYB0:9: 3563 0000000000000000 0000000000000000 -----------3-5-6-3-- NGҠAAY0:9: 00000000000000000000 003300035530 0660035530 0355300660 03553000330 NGҠAAYPVA0:: -5000-900-500-330-330-000003303305009005000 NGҠAAYMMVMASKPVAҬN۱:ݻ NGҠAAYPS0:6:"""P""N""B""Ҡ""Ѡ""K" AB̠NMVŬDNŻ PDUŠBANK(ANGҠAAYADŻ PDUŠZ(ANGҠAAYADŻ PDUŠB(ABéVAUŠBûNGҠABûDŻ PDUŠSB(ABìDVAUŠBìD NGҠABìDDŻ PDUŠSAV(ABìDNGҠABìDDŻ PDUŠ(ABìDũNGҠABìDŻDŻ PDUŠU(ABìDŬƬGHNGҠŬƬGH NGҠAAYABìDDŻ MA SM("SԠMVS""MV"6"M"""5"VAU" SK(ɴ3(6ɴ HKMA("HKMAŪ" DASH(6ج"---------------------------------" HK("HK" ND("DϠYUND?_" MDM("MDGAM"3"N"3"MB"3"KNG""MD" "MV""P""ҙM""""N'"3"Y""HAS" 3"BNUS"3"A" SH(A3ɴ(K6 N(35A(ɴ5(35 PNA("PNNGANA.""MV""P""M""" "N'"3"BNUS" S("H:(B׽-_" HAD("HPHSSVSNA063""DUMPSAVAAB:" 5ج"S0-MVŠS"5ج"Sױ-BMNDŠDUMP" 5ج"Sײ-U̠DUMP" YUN("YUҠUN:MSUA?_" S(5(56(K6 ("GA!YAGAN" Ʊ("PŠVAUS:""PN3BҬ5Ѭ6K" "PSVŽHŬNGAVŽBAK""YPŠSUAŽ0ϠND" S("SUAŽ?_"P("PŽ?_" YUN("ϠSUA?_" UPUԠBAD(Ҡ:Ϡ0DUSݩ PDUŠY BGNMAԠƱ(566(K6 UPUԠ̱(ƬB׬DPHPҬMAA̬PҬݬ PҬݬN۲ݬN۱ݬM۲ݬM۱ݩ (SUƱ̱ NDƠY PDUŠBUMP BGNP:P+ƠPҾSZŠHN BGN(YSKPҩGϠDN NDNDƠBUMP PDUŠYPB BGNҠ:90SP-0UN̠0D BGN(SUDASHBANK(US US۲:A((\0Ҡ60Ҡ60 US۲0:"!" Ҡ:ϠD BGNUS۲(+:ƠB+<0HN"!"SŠ"!" US۲(++:PSABS(B+ݩ ND(SU(0ABAD ND(SUDASH (SU("0"ج(3ɱҠ:ϠDݩ NDƠYPB PDUŠPUSHM BGNAB̠NҬUNNGҠGϬҬG BANPDUŠHK(ɩNGҠɻ BGNAB̠һNGҠMPBAK NGҠAAYMASK۱:ݻ MP:B(M۱ݬ0SB(M۱ݬ05 MASK۱:MASK۱ݻMASK۲:MASK۲ݻ BAK:Pһ:-ƻG:UŻGϠNһ UN:G:HK:ASŻ Ҡ:BAK+ϠPҠD ƠB(ʬݬ0ɠHN BGNHK:UŻGϠҠND ::-ƻP:BAKMASK۱:MASK۱ݻ MASK۲:MASK۲ݻSB(M۱ݬ0MP NDƠHK PDUŠAS(AAA3AA5A6 VAUŠAAA3AA5A6 NGҠAAA3AA5A6 BGNNGҠɻAB̠AS Ҡ:A3ϠADϠƠBݣ0HNGϠAS Ҡ:AϠADϠƠHK(ɩHNGϠASBUMP PҬ:MASK۱ݠҠA5޷ҠA6 PҬ:MASK۲ݠҠ0 AS:NDƠAS PDUŠAS(ABABA3B3A VAUŠABABA3B3A NGҠABABA3B3A BGNƠB(M۱ݬAB<3HN BGNƠB(M۱ݬAB0HN AS(AA+A+A+AA+ ƠB(M۱ݬA3B30HN AS(A-AA-3A-AA- NDNDƠAS̻ MMNԠƠPSSBŠMAKŠKNGҠKNGHԠMVŻ PDUŠKNGN(AAA3AA5A6AA VAUŠAAA3AA5A6AA NGҠAAA3AA5A6AA Ҡ:SP-UN̠D BGNAB̠KNNGҠDSԻ ASŠɠBGN DS:+ADS:+ADS:+A3DS:+A DS:+A5DS:+A6DS:+ADS:+A ND:BDSݻƠԽHNGϠKN :ƠGϽHN-ԠSŠԻ <0HNGϠKNBUMP ƠԽ0HNGUAҠMVŠSŠAAPU PҬ:MASK۱ݠҠDSԻ PҬ:MASK۲ݠ (ƠԽ0HN0SŠ(ҠԪ޸ KN:NDƠKNGN ƠPSSBŠMAKŠHŠBSHPKҠUNMVŻ PDUŠBPKN(NUMAAA3AA5A6AA VAUŠNUMAAA3AA5A6AA NGҠNUMAAA3AA5A6AA Ҡ:NUMSP-UN̠0D BGNNGҠDSԻAB̠Bѻ ASŠ+BGN S:AS:AS:A3S:A S:A5S:A6S:AS:A NDDS:һ HŠUŠDϠBGN DS:DS+S:BDSݻƠԽHNGϠBѻ :ƠGϽHN-ԠSŠԻ Ơ<0HNGϠBѻ BUMPPҬ:MASK۲ݻ PҬ:MASK۱ݠҠDSԻ Ơԣ0HNBGNPҬ: MASK۲ݠҠҠԪ޸ GϠB NDND B:NDƠBPKN PDUŠPAN(DVAUŠDNGҠD BGNNGҠԲAB̠PAN Բ:BDݻƠԲHNGϠPAN Բ:ƠGϽHN-ԲSŠԲ ƠԲ0HN BGNBUMPPҬ:MASK۱ݠҠD PҬ:MASK۲ݠҠҠԲ޸ NDS Ơ(BD-ݽ-ƩAND(D-ԽB(M۱ݬ0AND(D+Խ B(M۱ݬHN BGNBUMPPҬ:MASK۱ݠҠD PҬ:MASK۲ݠҠ03 ND PAN:NDƠPANû PDUŠPM(BPҩNGҠBPһ BGNNGҠɬʻ Ҡ:B+ϠPҠD BGNɬ:ɬݠҠ Ҡ:Ϡ3D BGNP:P+PҬ:ɬݻ ASŠʠBGN PҬ:ɬݠҠ0000 E PҬ:ɬݠҠ00000 PҬ:ɬݠҠ0000 NDNDND NDƠPMϻ AUA̠BGNNNGƠPUSHMV G:ASŻ N:G:Ơƾ0HNSŠ0 MASK۲:M۲ݠAND360MASK۱:0 SB(MASK۱ݬGϩ NSDҠA̠PSSBŠSUAS ҠSUA:Ϡ9D BGNNGҠPûAB̠NSUAŻ :SUAŻP:BSUAݻ ƠPý0ҠPýHNGϠNSUAŻ P:ƠGϾ0HNPàSŠ-Pû ƠP<0HNGϠNSUAŻ MASK۱:(MASK۱ݠAND0ҠҪ޷ NSDҠPSSBŠMVS ASŠPàBGN BGNPANϠMVŻ NGҠUPB :ƠGϾ0HN0SŠ-0 UP:+ԻB:Pһ NSDҠPANAPUS PAN(UP-PAN(UP+ƠBUPݽ0HN BGNBUMPPҬ:MASK۱ݠҠUP PҬ:MASK۲ݻ ƠGϾ0HN BGN Ơ(<39AND(B+0ݽ0HN BGNBUMP PҬ:(MASK۱ݠҠ(+0 PҬ:MASK۲ NDNDS ƠҾ0ANDB-0ݽ0HN BGNBUMP PҬ:MASK۱ݠҠ-0 PҬ:MASK۲ NDND PMŠAPAN ƠUP90ҠUP<30HNPM(BPҩ NDƠPANSN KNGN(---9-9KNGHԠMVS BPKN(3--990000BSHPMVS BPKN(3-0-00000KMVS BPKN(-0-0--99UNMVS KNGN(-0-0--99KNGMVS ND NSUA:ND ƠGHNGϠUN MASK۱:MASK۱ݠAND0 ƠGϾ0ԻsHNAS(35S AS(0095 PҬ:PҬݠҠ0000 NDƠPUSHM PDUŠADM BGNAB̠HŬUMPUԬMVһ NGҠGDSԬ5 P:DPH:0PUSHM MV: MV۱:MV۲:0YPB 5:0 (YYUNAD(KBDGƠG0HNGϠDNŻ (YYUNAD(KBDDSԩ Ơ(ABS(BGݩAND((DSԾ90Ҡ(DS<9HN BGN (Y("PAN?_"AD(KBD5 5:5- NDSB(MV۱ݬ0DSԩSB(MV۱ݬG SB(MV۱ݬ5 Ҡ:0ϠPҠDϠƠMV۱ݽɬݠHN BGNMV۱:ɬݻMV۲:ɬݻGϠH ND(Y̩GϠMVһ H:P:0SAV(M۱ݬB۲ݬMAA̬DPH U(MVMBPVA̬DPHƬB׬MAA̩PUSHM (SU("YUMVDM"ɲ"Ϡ"ɲGDSԩ Ҡ:0ϠPҠD ƠBB(ɬݬ0ݽ-6BנHN BGN(YHK(YNDũ AD(KBD(AHũƠHŽ"Y"HNGϠDNŻ NDҠ:0ϠPҠD ƠBB(ɬݬ0ݽ-6BנHN BGN(SUHK(YNDũ AD(KBDHũƠHŽHNGϠDNŻ GϠUMPU NDYUHK:0 UMPU:ƠYUHKHN BGNP:0(M۱ݬB۲ݬƬMAA̬DPH GϠMV NDMYHK:P:0:-ƻPUSHM Ҡ:0ϠPҠDϠƠABS(BB(ɬݬ0ݩ6 HNBGN(SUHKMYHK:ND :- NDƠADM MMN HŠPSNA̠ANAYSSUNSHAԠנNAN A̠ƠHŠHSSSPàHUSSUSDNHSAG̠VSN ƠGGY'SMN-HPGAM.HŠNDҠHSŠHUSS S-D.SԠԠDUSHŠMNSSAYҠHŠBU ŠGAMŠŠSAHPNƠHŠPGAM(HŠAA ANAYSSPHASũϠNDAMV.ԠDSHSBYP-SNG HŠMVSAԠHŠPV̠(DPHSϠHAԠHŠMVŠHHHAS HŠBSԠSUPA̠PSNA̠SŠSNSDDS. SNDYԠASMN-HϠGԠHUGHHŠPNNGAND MDGAMSHUԠHAVNGAHPSSPSNA̠DSADVANAGŠDU ϠSMDŠSAHAPABY(NY3PSDP. HŠPNNG HŠPNNGSDNDϠBŠHŠSԠGHԠMVS.HŠMS MPANԠHUSàNHŠPNNGVAUANSUPAN HŠNҠ(SŠPDUŠNN.AHSUAŠNHŠBADS GHDHADSABYVAUŠANGNGM0PNSҠH NSϠPNSҠHŠNҠ(SŠAAYé.AHMV PSNSANԠGANҠSSƠNAY.ҠAMPŬN-KB3 UDYDAGANƠ5PNSNNAY.HSSMUPD BYHŠPYAҠҠHŠPŠϠMV:PNB3ҽ ѽANDK-.HUSN-KB3UDHAVŠANA̠SŠƠ0PNS ҠNAY.NŠHAԠHŠKNGSNUAGDϠMVŠAAY MHŠNҠNHŠPNNGSNŠSN-PSMA SNGAV.HSHUSàANŠDASAVYASNAB PNNGHAPDDVPMN. AHMVŠSGVNANA̠PSNA̠SŠƠHŠNAY MPUSHŠVAUŠƠAHƠHŠNGHUSSHH APPSϠ.SŠPDUŠPNB. PANMKϠK:30PNS PANMK3ϠK:PNS PANMѲϠѴ:0PNS PANM3ϠѴ:PNS Ϡ-Ϡ30PNS Ϡ-Ϡ-Ϡ0PNS N-3-5PNS PŠϠK3Ҡ3BKNGAPAN-50 PŠMVNGMKNGSDŠPNS PAYNGPƠDNŠ-50PNS APUŠHPANADNҠ5PNS J<:6APUŠHPANAAYMNҠ-5PNS PANAPUŠADNGϠMUP SADPANS-0PNS NGPANADVANŠ-0PNS APUŠUNSUPPDNҠPAN50PNS APUŠSUPPDNҠPAN-5PNS MDDŠGAMŠ HŠMDDŠGAMŠBGNSHHŠNNHMVŠANDNNUS UN̠NŠSDŠHASSSHAN950PNSHƠMAA. UDNGHŠKNG(AHSDŠHAS00NHŠNA̠PSN (SŠPDUŠMDGAMũ.HŠNҠN̠HUSàSS USDBUԠHŠPYASAŠSGHYAD:P3N B3ҽѽANDK.SNŠMSԠPSHAVŠUNDHҠBS SUASBYHŠMDDŠGAMŬHSAҠHASSSNGUNŠHAN < m| 22660-80003 1442 SC 0122 03CHESS              H0101  NHŠPNNG.AHMVŠSDDHAMBYM(S PDUŠMBũHHSHŠNUMBҠƠPNAYGA̠MVS AVAABŠAҠHŠMVŠSMAD.MVMNԠƠAPŠNϠH PPNN'SKNGDSADDNHŠSAMŠAYASHŠN N̠HUSìANDHŠNԠGANSAGANMUPDBYH PYҠHAԠPŠ(SŠPDUŠKNH.HSHUS ASNAYSUSNAKNG-SDŠAAK. HŠPANHUSSAŠHŠSAMŠASNHŠPNNGP HAԠADVANSƠNGPANSGԠ-5NSADƠ-0.ASNG VAUSAŠHŠSAMŠASNHŠPNNG.ƠHSAHADN MAA̬PŠAPUSGԠ0PNSM.MVNGAP HHBKSHŠKBPҠBPSADDH5PNS. NGҠPDUŠNN(ɩNGҠɻ BGNNGҠNƬAԬBŻ A:B(ɬݬ0B:B(ɬݬ N:A-Bݻ NN:NƪPVAABS(BBݩ NDƠNN PDUŠSԻ BGNNGҠɬMPAGAB̠P UPUԠSK(ɬB(ɬݬB(ɬݬ0 P:AG:ASŻҠ:ϠP-D BGNƠPSNVAݾPSNVA+ݠHN BGNMP:ɬݻɬ:+ݻ +:MPMP:ɬݻ ɬ:+ݻ+:MP MP:PSNVAݻPSNVA:PSNVA+ݻ PSNVA+:MPAG:U NDND ƠAGHNGϠPƠ(KYSANDHN BGN(SUSMҠ:ϠPҠD (SUSKSKPSNVAݩ NDNDƠSԻ BANPDUŠMDGAMŻ BGNNGҠɬʬPV HPNS:BAKPNS:0MDGAM:ASŻ Ҡ:ϠDϠҠ:0SP0ZUN̠90D BGNPV:B+ݻ ƠPV0HNHPNS:HPNS+PVAPV+6ݻ ƠPV<0HNBAKPNS:BAKPNS-PVAPV+6 NDHPNS:HPNS-5000 BAKPNS:BAKPNS-5000 ƠHPNSҠBAKPNSHN BGN(YHKMAũGϠDNŠND Ơ(HPNS950Ҡ(BAKPNS950HN MDGAM:UŻƠ(KYSANDHN (SU(5"HPNSVS"5"BAKPNS" HPNSBAKPNS NDƠMDGAMŻ NGҠPDUŠMB(ɩNGҠɻ BGNNGҠMPNGҠAAYMV۱:ݻ MV۱:ɬݻMV۲:ɬݻMP:Pһ SAV(M۱ݬB۲ݬMAA̬DPH U(MVMBPVA̬DPHƬB׬MAA̩PUSHM MB:P-MPP:MP (M۱ݬB۲ݬƬMAA̬DPH NDƠMBŻ NGҠPDUŠKNGH(ɩNGҠɻ BGNNGҠ׬UMN׬UMNPPKNGʻ AB̠PҠ:Ϡ9D ƠBݽ-ƪ6HNPPKNG:ʻ :PPKNG\0UMN:PPKNGMD0 KNGH:0UMN:B(ɬݬ0MD0 :B(ɬݬ0\0 ƠMVŠBNGSPŠSUAŠAAYBNUS0 AAYBNUSAND3AAYBNUS Ҡ:Ϡ3D BGNƠ<+ʠAND׾- AND((UMNUMN+ʩҠ(UMNUMN-ʩ HNKNGH:(ƠʽHN0SŠƠʽHNSŠ Ơ((׽+ʩҠ(׽-ʩAND ((UMN * LDB * RAM COMPB * DEF COUNT (COUNT MAY BE CHANGED IF COMPB GETS INTERRUPTED) * RETURN: IF EQUAL THEN A:=0; B:=B+COUNT; * ELSE A:=A BYTE - B BYTE OF 1ST NONEQUAL BYTE; * AND B:=B+NR OF BYTES TESTED; (B=LAST BYTE+1) * COMPB Q JSB S1 GETQX S1:=CNT ADR; Q:=CNT; * NOTE: S3=B IOR IR UGH, OTHERWISE JSB LDXIR COMPL A JSB B LDCH GET A CHAR B IOR S2 S2:= B TEMP S3 IOR B B:= B STRING A JSB S3 LDCH GET B CHAR A NOR A A:=-B CHAR - 1; A S3 INC A RSS TBZ A:=A CHAR - B CHAR Q DEC Q RSS TBZ IF CNT=0 OR A<>0 JMP DONE THEN DONE S2 IOR A Q CJMP S3 INTRX IF INTERRUPT ...; B JMP S3 COMPL S3:=B TEMP; LOOP; * * * * * * STCH - STORE BYTE * * LDA * LDB * RAM STCH * RETURNS: B:=B+1; * STCH B LWF S4 R1 GET WORD ADDR S4 CFLG M RW FLG GET DATA CR IOR IR 27 IF LEFT THEN ALF,ALF; A CR AND S3 377 CLEAN NEW DATA T IOR Q SRG2 Q 9 IOR Q SRG2 Q CL AND Q 377 CLEAN OLD DATA Q S3 IOR Q SRG2 Q IOR S3 SRG2 B INC B SET FOR RETURN F S4 DEC M CW NMPV STORE DATA AWAY IOR S3 RSB T RETURN IF SUBRUTINE IOR RSS EOP EXIT; * * * LDCH - LOAD BYTE * * LDB * RAM LDCH * RETURNS BYTE IN A; B:=B+1; * LDCH B LWF S4 R1 S4:=WORD ADR. S4 CFLG M RW FLG GET DATA CR IOR IR 27 IF LEFT THEN ALF,ALF B INC B BUMP BYTE ADR; T IOR A SRG2 A IOR A SRG2 A CR AND A 377 CLEAN DATA RSB IR RETURN FROM SUB IOR RSS EOP EXIT; * * * * * * * * * * * * * * * * * * * SCAN - SCAN A BYTE STRING FOR A PARTICULAR BYTE * * LDA * LDB * RAM SCAN * DEF COUNT (MAY GET CHANGED IF SCAN IS INTERRUPTED) * RETURN: A:=-1 IF TEST BYTE NOT ENCOUNTERED; B:=B+COUNT+1; * A:=COUNT-NR. TESTED IF FOUND; B:=B+NR. OF TESTED BYTES; * NOTE: IF BYTE IS FOUND THEN B=BYTE ADDRESS OF BYTE + 1; * SCAN Q JSB S1 GETQX S2:=BYTE; Q:=CNT; * SCANL JSB IR LDCH A:=NEW BYTE; Q DEC Q NEG DONE? A S2 XOR RSS TBZ NO; MATCH? Q JMP A DONE DONE OR MATCH; Q CJMP S3 INTRX IF INTERRUPT ... ; JMP SCANL LOOP; * * * * * * * MOVB - MOVE A BYTE STRING * * LDA * LDB * RAM MOVB * DEF COUNT (NOTE: COUNT MAY GET CHANGED IF INTERRUPTED) * RETURNS: A:=A+COUNT; B:=B+COUNT; * MOVB Q RRS IOR M RW S1:=-CNT-1 ק T NOR S1 JMP MOVBT TEST FOR ZERO MOVBL A JSB B LDXIR GET BYTE B IOR Q S2:=FROM ADR + 1; S2 IOR B B:=FROM ADR Q JSB S2 STCH STORE BYTE S2 IOR A A:=FROM ADDR B CJMP S2 MOVBI JMP IF INTERRUPT MOVBT S1 INC Q RSS NEG DONE? Q JMP S1 MOVBL NO, MOVE ANOTHER P INC P EOP INC TO RETURN, ECIT MOVBI S1 NOR S3 STORE PRESENT COUNT JSB GETQD GET COUNT ADR. Q JMP S1 INTRX * * * * * * * * * $ORIGIN=1240 * * MOVE - MOVE A BUFFER OF WORDS. SAME GENERAL CALLING SEQUENCE AS MOVB. * A=FROM ADDRESS; B:=TO ADDRESS; Q OR DEF COUNT HAS LENGTH OF BUFFER; * IN INTERRUPT MODE THE CORE VALUE OF COUNT MAY GET CHANGED. * MOVE Q JSB S1 GETQX S1:=CNTR ADR; Q:=CNT; * (NOTE: S3=B) MOVEL A RRS IOR M RW START READ OF DATA A INC A BUMB IN PTR B INC B BUMB OUT PTR T IOR S4 S4:=DATA Q DEC Q NEG DEC CNTR, DONE? F S3 DEC M CW NMPV NOT DONE; START WRIT JMP DONE MEM PROT. OR DONE. S4 IOR T RSS FLG STORE; IF INTR SKIP B JMP S3 MOVEL IF NOT INTERR. 2MICS Q CJMP S3 INTRX IF INTERRUP. B JMP S3 MOVEL MOVE MORE DATA * INTRX F S1 DEC M CW NMPV STORE COUNT IOR S3 IOR T DECP P IOR Q EOP P:=P-1; Q DEC P DONE P INC P RSS EOP * * * * $ORIGIN=1367 * * GETQ1 P INC P GETQD P IOR M RW START READ IOR CNTR ONLY 16 INDIRECTS GETQL T IOR Q B NEG INDIRECT? RSB NO, RETURN GETQX Q RRS IOR M RW CTRI YES,START READ, JMP GETQL IF <16 THEN GO AGAIN T SOV Q ELSE STOP & SET OVF RSB ADN RETURN * $END ASMB,R,L NAM CHECK,3 ENT CHECK EXT EXEC * * RAM DEFINITIONS * MOVEN EQU 250B MOVE EQU 251B LDCH EQU 252B STCH EQU 253B MOVB EQU 254B SCAN EQU 255B COMPB EQU 256B * CHECK EQU * NOP * * THIS CLF 0 MAY BE REMOVED TO CHECK INTERRUPTABILITY * CLF 0 LDA BUFA1 ALS STA BUFA1 LDB BUFA2 BLS STB BUFA2 ARS BRS RAM MOVE MOVE BUFF1 INTO BUFF2 DEF D4 ONLY 4 WORDS LDA BUFA1 LDB BUFA2 RAM COMPB COMPARE BUFF1 WITH BUFF2 DEF D8 ONLY 8 BYTES SZA HLT 2 MEMORY PROTECT IF NO CLF 0 LDB BUFA3 BLS STB BUFA3 INB RAM LDCH GET "C" FROM BUFF3 LDB BUFA2 RAM SCAN FIND "C" IN BUFF2 DEF D9 LOOK AT 9 BYTES MAXIMUM SSA HLT 33B CCA A=-1 ADB 0 BYTE ADRS OF "C" IN BUFF2 LDA BUFA3 RAM MOVB BUFF3 INTO BUFF2 START AT "C" DEF D3 ONLY 3 BYTES FROM BUFF3 "ACT" JSB EXEC PRINT BUFF2 DEF *+5 DEF D2 DEF CONWD DEF BUFF2 DEF DM9 NOP JSB EXEC DEF *+2 DEF D6 BUFA1 DEF BUFF1 BUFA2 DEF BUFF2 BUFA3 DEF BUFF3 DM9 DEC -9 D9 DEC 9 D8 DEC 8 D6 DEC 6 D4 DEC 4 D3 DEC 3 D2 DEC 2 CONWD OCT 1 BUFF1 ASC 9,XXCATITXX BUFF2 ASC 9,THEWORLD! ("XXCATITX!" AFTER MOVE WORDS) BUFF3 ASC 5,ACTIX END CHECK [O q { 22664-80001 A SC 0122 RTE CONVERSATIONAL SUPER EDITOR             H0101 MASMB,R,B,L HED ** RTE CONVERSATIONAL EDITOR ** JDR NAM EDIT,3,98 ENT EDIT EXT EXEC,OPEN,PRINT,LUN,TRACK,IFMGR,CLOSE EXT %READ,READF,IFMTR,NUM,WRITF EXT %JFIL,%RDSC,$LIBR,$LIBX,ALPHA EXT %WRIN,%WRIS,%WEOF,LOCF,PURGE,CREAT SUP * EDIT IS A RTE CONVERSATIONAL SUPER EDITOR. SPC 1 * THE EDIT COMMANDS MAY BE ENTERED IN NON SEQUENTIAL ORDER FROM * ANY LOGICAL UNIT DEVICE, LS TRACK OR A FILE MANAGER PACKAGE * (FMP) FILE. SPC 1 * THE SOURCE TO BE EDITED MAY BE APPENDED FROM ANY INPUT LOGICAL * UNIT, LS TRACK OR A FMP FILE. SPC 1 * SOURCES OR PORTIONS OF SOURCES MAY BE MERGED WITH THE EDIT * FILE AND LINES MAY BE DELETED, INSERTED, MOVED OR REPLACED * IN THE EDIT FILE IN NON SEQUENTIAL ORDER. SPC 1 * CHARACTER STRINGS MAY BE EDITED WITHIN A SINGLE LINE, A GROUP * OF LINES OR WITHIN THE ENTIRE EDIT FILE. SPC 1 * THE EDIT FILE OR ANY PORTION OF IT MAY BE LISTED WITH LINE * NUMBERS ON ANY LOGICAL UNIT OR FMP FILE. SPC 1 * THE EDIT FILE OR ANY PORTION OF IT MAY BE OUTPUTED TO ANY LOGICAL * UNIT, LS TRACK OR FMP FILE. SPC 1 * A TAPE LABEL MAY BE GENERATED ON ANY PUNCH DEVICE. SPC 2 * JAMES D. REED * HUGHES AIRCRAFT CO. * P. 0. BOX 11337 * TUCSON, ARIZONA 85734 * TEL 602 294-5211 SPC 1 * 10/29/73 SPC 2 HED ** RTE EDITOR INITIALIZATION ** JDR * GET INPUT PARAMETERS & PROCESS THEM SPC 1 EDIT NOP LDA BREG,I TRANSFER STA LINK,I INPUT PARAMETERS ISZ LINK TO LDCB BUFFER INB INDEX PARAMETER POINTER ISZ CNTR1 ALL PARAMETERS IN? JMP EDIT+1 NO - LOOP LDA LDCB1 GET COMMAND DEVICE PARAMETER SZA,RSS PARAMETER SPECIFIED? JMP INIT1 NO - DEFAULT TO SYSTEM DEVICE JSB KEYS YES - CHECK DEF KYBD SPECIFIED LOGICAL UNIT DEF CMND FOR A KYBD TYPE DEVICE INIT1 LDA LDCB1+1 GET OPERATOR TTY LUN PAczRAMETER SZA,RSS PARAMETER SPECIFIED? JMP INIT2 NO - DEFAULT TO SYSTEM DEVICE IOR ECHO YES - OR ECHO BIT STA TTY AND SAVE NEW OPERATOR LUN INIT2 LDA LDCB1+2 GET LIST LINE LENGTH PARAMETER SZA IF NOT GIVEN DEFAULT TO 36 STA MLENG SET NEW LINE LENGTH SPC 1 * IDENTIFY PROGRAM SPC 1 LDA D1 PRINT ON TTY LDB TTY MESSAGE 1 JSB PRINT SPC 1 * OPEN EDITOR WORK FILE SPC 1 LDA WFILE WORK FILE NAME ADDRESS LDB WDCB WORK FILE DCB ADDRESS JSB FOPEN OPEN WORK FILE SSA ANY ERROR? JMP E. YES - ABORT HED ** RTE EDITOR COMMAND DIRECTIVE PROCESSOR ** JDR * THE DIRECTIVE COMMAND PROCESSOR INPUTS A COMMAND LINE * AND CHECKS THE 1ST TWO CHARACTERS FOR A PROPER COMMAND ID. * IF ID LEGAL THE GO TO PROPER ROUTINE ELSE PRINT ERROR MESSAGE * AND RETURN COMMAND INPUT TO OPERATOR LOGICAL UNIT. SPC 1 .D1 ISZ CLINE INCREMENT CMND LINE COUNTER - 0? JMP .D4 NO - INPUT NEXT LINE .D2 LDA TTY YES - RESET COMMAND LUN STA CMND TO OPERATOR LUN LDA CFMP WAS INPUT FROM SZA,RSS A FMP FILE? JMP .D3 NO - NO NEED TO CLOSE IT CLB 0 TO CLOSE STB CLOSE BLOCK RELEASE LDA CDCB YES - CLOSE LDB BLOK IT AND JSB FCLOS RESET .D3 CLA THE STA CFMP FMP FLAG INA SET STA KYBD KYBD FLAG & STA CLINE LINE COUNTER TO 1 .D4 CLA RESET STA SLASH SLASH FLAG STA BLOCK CLOSE BLOCK RELEASE LDA D3 & CMND STA NCHAR CHARACTER POINTER LDA LFMP WAS THE LAST INPUT LINE SZA,RSS FROM AN FMP FILE? JMP .D5 NO - SKIP CLOSE LDA LDCB YES - CLOSE LDB BLOK THE LINE INPUT JSB FCLOS FILE AND I CLA RESET THE STA LFMP FLAG SPC 1 * INPUT THE COMMAND LINE SPC 1 .D5 LDA KYBD KYBD SZA,RSS FLAG SET? JMP *+4 NO - CONTINUE LDA D2 YES - PRINT LDB CMND A JSB PRINT ? LDA CMND TRANSFER COMMAND LOGICAL UNIT STA LNLU TO LINE LUN LDA CFMP MAKE LDB CDCB CALL JSB READL TO DEF CFILE READL DEF CBUF FOR INPUT LDA IERR INPUT SSA ERROR? JMP .D2 YES - START OVER LDA NWDS NO - END SSA,RSS OF TAPE? JMP .D6 NO - PROCESS DIRECTIVE LDA D3 YES - OUTPUT LDB TTY EOF JSB PRINT MESSAGE & JMP .D2 START OVER SPC 1 * ECHO COMMAND IF NOT KYBD SPC 1 .D6 LDA KYBD KYBD SZA FLAG SET? JMP .D7 YES - BRANCH TO ROUTINE LDA CBUFD NO - PRINT LDB TTYD DIRECTIVE JSB OUT ON TTY LUN SPC 1 * BRANCH TO PROPER DIRECTIVE ROUTINE SPC 1 .D7 LDA CBUF GET 1ST WORD OF DIRECTIVE CPA /A JMP A. CPA /C JMP C. CPA /D JMP D. CPA /E JMP E. CPA /G JMP G. CPA /I JMP I. CPA /L JMP L. CPA /M JMP M. CPA /N JMP N. CPA /O JMP O. CPA /R JMP R. CPA /S JMP S. SPC 1 * OOPS - BAD DIRECTIVE SPC 1 .D8 LDA D4 OUTPUT LDB TTY BAD DIRECTIVE JSB PRINT MESSAGE & JMP .D2 START OVER HED ** RTE EDITOR /A - APPEND COMMAND ** JDR * ROUTINE TO APPEND LINES INTO THE WORK FILE. SPC 1 * COMMAND SYNTAX * /A,LU,X,Y,I,Z SPC 1 * APPEND INTO WORK FILE FROM LOGICAL UNIT OR FILE STARTING AT * LINE X TO AND INCLUDING LINE Y WITH INSERT INCREMENTS I * AFTER LINE Z IN WORK FILE. * DEFAULTS ARE: * Y = + = EOF * I = INCREMENT 1ST PART OF LINE BY 1, THEN 2ND PART BY 500, * THEN 25, THEN 1. * Z = + = LAST LINE IN WORK FILE SPC 1 A. CLA,INA SET - STA SLINE SLINE = 1 STA EOF1 EOF = TRUE LDA D10K & STA ISERT INSERT = 10K SPC 1 * GET INPUT LUN OR FILE NAME SPC 1 JSB DVICE GET INPUT DEVICE OR FILE NAME LDA LFMP FMP FILE SZA OR LUN? JMP A.10 FMP FILE JSB LS? LUN - CHECK FOR LS OR KYBD DVICE JMP A.30 GET STARTING LINE NUMBER A.10 JSB FTYPE OPEN SOURCE FILE SPC 1 * GET STARTING LINE NUMBER OF APPEND SOURCE SPC 1 A.30 JSB LNUMB GET STARTING LINE NUMBER SSA END OF LINE? JMP A.80 YES - DEFAULT REST OF PARAMETERS SZA DIRECTIVE ERROR? JMP .D8 YES - OUTPUT ERROR MESSAGE SZB A PLUS SIGN? JMP .D8 YES - ERROR - OUTPUT MESSAGE LDA TBUF AOKAY SAVE STARTING LINE STA SLINE AND JSB POSIT POSITION FILE SPC 1 * GET ENDING LINE NUMBER OF APPEND SOURCE SPC 1 JSB LNUMB GET ENDING LINE NUMBER SSA END OF LINE? JMP A.80 YES - DEFAULT REST OF PARAMETERS SZA DIRECTIVE ERROR? JMP .D8 YES - PRINT ERROR MESSAGE SZB A PLUS SIGN? JMP A.60 YES - GET LINE # TO APPEND AFTER LDA TBUF NO - SET UP LINE COUNTER CMA,INA LINES = ADA M1 STARTING LINE ADA SLINE - ENDING LINE - 1 SSA,RSS COUNT >= 0? JMP .D8 YES - DIRECTIVE ERROR STA LINES NO - SAVE LINE COUNT CLA RESET EOF STA EOF1 FLAG SPC 1 * GET LINE NUMBER IN WORKING FILE TO APPEND AFTER SPC 1 A.60 JSB LNUMB GET APPEND AFTER LINE NUMBER SSA  END OF DIRECTIVE LINE? JMP A.80 YES - DEFAULT TO LAST LINE SZA DIRECTIVE ERROR? JMP .D8 YES - OUTPUT ERROR MESSAGE DLD TBUF NO - APPEND AFTER USER DST WL11 SUPPLIED JMP A.100 LINE. A.80 DLD WL15 APPEND AFTER DST WL11 LAST LINE SPC 1 * POSITION WORK FILE SPC 1 A.100 JSB WFIND POSITION WORK FILE SZA WAS EXACT LINE FOUND JMP A.101 NO - DLD WL11 YES - USE LINE AS CURRENT INSERT JMP A.102 SKIP A.101 DLD TBUF USE USER SUPPLIED LINE AS A.102 DST WL13 CURRENT INSERT LINE # SPC 1 * GET LINE NUMBER INCREMENT SPC 1 JSB LNUMB GET LINE NUMBER INCREMENT SSA END OF LINE JMP A.110 YES - DEFAULT LINE # INCREMENT SZA DIRECTIVE ERROR JMP .D8 YES - OUTPUT ERROR MESSAGE SZB A PLUS SIGN? JMP .D8 YES - ERROR - OUTPUT MESSAGE LDA TBUF SET LINE NUMBER STA ISERT INCREMENT SPC 1 * APPEND LINES SPC 1 A.110 JSB INSRT APPEND LINES SZA ANY ERRORS JMP .D2 YES - FETCH NEW DIRECTIVE LDA LFMP NO SZA WAS INPUT FROM FMP FILE? JMP A.120 YES - CONTINUE LDA LNLU NO CPA D2 INPUT FROM LS TRACKS? JSB LSREL YES - RELEASE TRACKS SPC 1 * CLEAR SAVED FLAG AND FETCH NEXT DIRECTIVE SPC 1 A.120 CLA CLEAR THE STA SAVED SAVED FLAG & GET THE JMP .D1 NEXT DIRECTIVE HED ** RTE EDITOR /C - CHARACTER STRING REPLACE CMND ** JDR * ROUTINE TO REPLACE CHARACTER STRINGS IN THE WORK FILE. SPC 1 * COMMAND SYNTAX * /C,X,Y "STRING A" "STRING B" * OR * /C,X,Y 'STRING A' 'STRING B' SPC 1 * REPLACE CHARACTER STRING A WITH CHARACTER STRING B IN LINES * X THRU & INCLUDING Y. * DEFAULTS ARE: * Y = X * * NOTE: STRING A MAY CONTAINqw 1 TO 80 CHARACTERS. STRING B MAY * CONTAIN 0 TO 80 CHARACTERS. SPC 1 C. JSB LNUMB GET STARTING LINE NUMBER SSA END OF DIRECTIVE LINE? JMP .D8 YES - DIRECTIVE ERROR SZA A VALID LINE NUMBER? JMP .D8 NO - DIRECTIVE ERROR DLD TBUF YES - LINE # DST WL11 TO WL11 & WL12 SPC 1 * GET LAST LINE TO BE INCLUDED SPC 1 CLA RESET MORE THAN 1 STA FLAG LINE FLAG JSB SCANR GET NEXT PORTION OF DIRECTIVE LDA IERR DIRECTIVE SZA ERROR? JMP .D8 YES - OUTPUT MESSAGE LDA TYPE NO - GET TYPE OF SCAN SZA,RSS END OF DIRECTIVE LINE? JMP .D8 YES - DIRECTIVE ERROR SSA DO WE HAVE A NUMBER? JMP C.20 MAYBE, IF IT IS A PLUS DLD TBUF YES - SAVE LAST LINE DST LAST1 NO. AND SET MORE THAN 1 JMP C.30 LINE FLAG C.20 LDA NCHAR COULD LAST LINE SSA BE A PLUS? JMP C.40 NO - POSITION WORK FILE SZA,RSS MAYBE - IS NCHAR POSITIVE? JMP C.40 NO - POSITION WORK FILE LDA TBUF YES - IS CPA PLUS CHARACTER A PLUS? RSS YES - SKIP JMP .D8 NO - DIRECTIVE ERROR DLD WL15 SET LAST LINE TO LAST LINE DST LAST1 IN WORK FILE C.30 CLA,INA SET MORE THAN 1 STA FLAG LINE FLAG JSB MLINE IF LAST >= 1ST, RETURN P+1 SPC 1 * POSITION WORK FILE TO 1ST LINE SPC 1 C.40 JSB WFIND POSITION WORK FILE SZA,RSS WAS REQUESTED LINE FOUND? JMP C.60 YES - CONTINUE LDA FLAG NO - IS MORE THAN 1 SZA,RSS LINE FLAG SET? JMP IN180 NO - POSITION ERROR DLD WL12 YES - IS NEXT LINE ADA BREG # SZA,RSS A ZERO JMP IN180 YES - ERROR DLD WL12 NO - POSITION DST WL11 WORK FILE JSB WFIND D TO IT. C.60 LDA WL32 GET CURRENT RECORD POSITION SZA,RSS ZERO? LDA WL41 YES - CURRENT RECORD AT WL41 STA RCORD SAVE CURRENT RECORD POSITION SPC 1 * GET CHARACTER STRINGS IF WE DON'T HAVE THEM SPC 1 LDA NCHAR DO WE HAVE THE SSA CHARACTER STRINGS? JMP C.65 YES - CONTINUE SZA,RSS MAYBE - CHAR COUNT = 0? JMP C.65 YES - WE HAVE THEM - CONTINUE JSB SCANR NO - GET THEM LDA IERR ANY ERROR SZA DURING SCAN? JMP .D8 YES - OUTPUT ERROR MESSAGE C.65 LDA TYPE NO - IS TYPE SSA,SZA,RSS NEGATIVE & NON ZERO? JMP .D8 NO - DIRECTIVE ERROR CMA,INA YES - MAKE TYPE POSITIVE AND STA TYPE SAVE AS OLD STRING CHAR COUNT LDA NCHAR GET NUMBER OF CHARACTERS IN NEW SZA,RSS STRING. ZERO? JMP C.90 YES - UPPACK LINE SSA,RSS NO - NEGATIVE? JMP .D8 NO - DIRECTIVE ERROR CMA,INA YES - MAKE CHARACTER STA NCHAR COUNT POSITIVE SPC 1 * UNPACK THE WORK FILE LINE SPC 1 C.90 LDA WBF5D SET POINTERS TO: STA PNTR1 WORK FILE LDA CBUFD LINE BUFFER AND STA PNTR2 CBUF FOR UNPACKED LINE LDA M40 -40 TO STA CNTR1 CNTR1 C.91 LDA PNTR1,I SPLIT CLB WORD 1ST CHAR RRR 8 TO LOW A & 2ND BLF,BLF TO LOW B STA PNTR2,I SAVE CHARACTERS ISZ PNTR2 IN STB PNTR2,I CBUF ISZ PNTR1 INDEX ISZ PNTR2 POINTERS ISZ CNTR1 LINE UNPACKED? JMP C.91 NO - LOOP SPC 1 * CHECK LINE FOR A MATCH SPC 1 CLA ZERO STA CNTR1 COUNTERS STA CNTR2 1 & 2 C.100 LDB CNTR1 WORK LINE CHARACTER NUMBER LDA CBUFD ADDRESS OF UNPACKED WORK LINE ADA BREG ADD CHARACTER POSITION LDA AREG,I GET CHARACTER . CPA B377 END OF CHARACTERS IN LINE? JMP C.120 YES - REPACK THE LINE CPA TBUF NO - 1ST CHARACTER A MATCH? JMP C.150 YES - CHECK REST OF STRING C.110 INB NO - INDEX CHARACTER POSITION CPB D80 80 CHARACTERS CHECKED? RSS YES - REPACK THE LINE JMP C.100+1 NO - CONTINUE SEARCH SPC 1 * CHECK TO SEE IF ANY CHARACTERS WERE REPLACED SPC 1 C.120 LDA CNTR1 CNTR1 STILL SZA,RSS ZERO? JMP C.140 YES - GET NEXT LINE SPC 1 * FINISH TRANSFERRING THE LINE TO THE NEW BUFFER SPC 1 C.125 LDA CBUFD GET NEXT ADA CNTR1 CHARACTER FROM LDA AREG,I WORK LINE LDB LDCB PUT CHARACTER ADB CNTR2 INTO NEW STA BREG,I BUFFER ISZ CNTR2 INCREMENT CNTR2 LDB CNTR2 IS CNTR2 ADB M80 = SSB TO 80? JMP C.130 NO - CPA B377 YES - WAS LAST CHAR THE EOL? RSS YES - CONTINUE JMP C.190 NO - TOO MANY CHARACTERS SSB,RSS IF CNTR2 > 80 JMP C.136 THEN REPACK THE LINE C.130 ISZ CNTR1 INCREMENT THE OLD WORK LINE LDA CNTR1 CHARACTER POSITION COUNTER CPA D80 ALL CHARACTERS TRANSFER? RSS YES - FILL REST OF LINE JMP C.125 NO - CONTINUE LDB B377 LOW B = ALL ONE'S C.131 LDA LDCB PUT 377B ADA CNTR2 IN NEW WORK STB AREG,I LINE BUFFER ISZ CNTR2 REST OF LDA CNTR2 BUFFER CPA D80 FILLED? RSS YES - REPACK LINE JMP C.131 NO - CONTINUE SPC 1 * REPACK NEW LINE INTO WORK FILE LINE BUFFER SPC 1 C.136 LDA LDCB SET POINTERS STA PNTR1 TO NEW LINE BUFFER LDA WBF5D AND STA PNTR2 TO WORK FILE LINE BUFFER LDA M40 -40 TO STA CNTR1 CNTR1 C.137 LDA PNTR1,I REPACK 1 CHAR/ ISZ PNTR1 WORD TO LDB PNTR1,I 2 CHARS#/WORD CPA B377 END OF LINE BITS IN A? JMP *+3 YES - ALLOW EOL IN B CPB B377 NO - IF END OF LINE IN B, CHANGE LDB SSPAC TO SPACE FOR EVEN CHAR. COUNT ALF,ALF & STORE IN IOR BREG WORK FILE STA PNTR2,I LINE BUFFER ISZ PNTR1 INDEX BUFFER ISZ PNTR2 POINTERS ISZ CNTR1 LINE REPACKED? JMP C.137 NO - CONTINUE SPC 1 * RESET SAVED FLAG SPC 1 CLA 0 TO STA SAVED SAVED FLAG SPC 1 * REWRITE THE LINE TO THE WORK FILE SPC 1 LDA RCORD GET RECORD # OF THE LINE JSB WRIWF WRITE THE LINE SSA ANY ERRORS? JMP .D2 YES - ABORT SPC 1 * IF MORE THAN ONE LINE IS TO BE SCANNED GET THE NEXT LINE SPC 1 C.140 LDA FLAG MORE SZA,RSS THAN 1 LINE? JMP .D1 NO - FETCH THE NEXT DIRECTIVE DLD WBUF1 IF THIS WAS CPA WL15 THE RSS LAST LINE JMP *+3 IN THE WORK FILE CPB WL25 THEN FETCH JMP .D1 THE NEXT DIRECTIVE ELSE LDA WBUF4 GET THE RECORD # OF THE NEXT LINE JSB REDWF GET THE NEXT LINE SSA ANY READ ERRORS? JMP .D2 YES - ABORT SPC 1 * CHECK TO SEE IF THIS LINE IS TO BE INCLUDED SPC 1 DLD LAST1 IF CMA,INA ((WBUF1 > LAST1) ADA WBUF1 OR SSA (WBUF1 = LAST1 JMP C.90 AND SZA WBUF2 > LAST2)) JMP .D1 THEN CMB,INB FETCH ADB WBUF2 NEXT SSB DIRECTIVE JMP C.90 ELSE SZB SCAN JMP .D1 THIS JMP C.90 LINE SPC 1 * CHECK REST OF STRING FOR A MATCH SPC 1 C.150 CLA 0 TO STA CNTR3 CNTR3 STB PNTR1 SAVE CHAR POSITION OF WORK LINE C.151 LDA CBUFD GET A ADA PNTR1 CHARACTER ADA CNTR3 FROM THE D LDA AREG,I WORK FILE LINE LDB TBUFD DOES THIS ADB CNTR3 CHARACTER MATCH THE CPA BREG,I ONE IN THE OLD STRING? JMP *+3 YES - CHECK IF THIS IS EOS LDB PNTR1 NO - RESTART JMP C.110 SCAN ISZ CNTR3 INCREMENT OLD STRING COUNTER LDA CNTR3 ENTIRE OLD STRING CPA TYPE CHECKED FOR A MATCH? RSS YES - TRANSFER LINE UP TO OLD JMP C.151 NO - CONTINUE CHECK SPC 1 LDA PNTR1 SETUP LAST CHARACTER # TO STA PNTR2 BE TRANSFERRED CMA,INA CHARACTERS ADA CNTR1 TO BE SSA,RSS TRANSFERRED? JMP C.165 NO - UPDATE OLD LINE CHAR POS PR LDA CNTR1 YES - SET UP STARTING STA PNTR3 CHAR POSIT POINTER C.155 LDA CBUFD GET A CHARACTER ADA PNTR3 TO BE LDA AREG,I TRANSFERRED LDB LDCB TRANSFER THE ADB CNTR2 CHARACTER TO THE STA BREG,I NEW LINE BUFFER ISZ CNTR2 INDEX CNTR2 LDA CNTR2 CNTR2 CPA D80 = 80? JMP C.190 YES - ERROR TOO MANY CHARS ISZ PNTR3 NO - LDA PNTR3 MORE CHARACTERS CPA PNTR2 TO BE TRANSFERRED? RSS NO JMP C.155 YES - CONTINUE SPC 1 * UPDATE OLD LINE CHARACTER POSITION SCAN START POINTER SPC 1 C.165 LDA PNTR1 START OF THIS MATCH CHAR POSIT ADA TYPE + NUMBER OF CHARS IN OLD STRING STA CNTR1 = NEXT SCAN CHAR. POSITION SPC 1 * TRANSFER NEW STRING INTO NEW LINE BUFFER SPC 1 LDA NCHAR ANYCHARACTERS SZA,RSS IN NEW STRING? JMP C.100 NO - START NEXT SCAN LDA NCHAR YES - SET UP CMA,INA NEW STRING STA CNTR3 CHARACTER COUNTER LDA LBUFD SET UP A STA PNTR1 POINTER TO THE NEW STRING C.168 LDA LDCB TRANSFER A NEW ADA CNTR2 STRING CHARACTER TO LDB PNTR1,I THE NEW STB AREG,I L<INE BUFFER ISZ CNTR2 NEW LINE LDA CNTR2 MORE THAN CPA D80 80 CHARACTERS? JMP C.190 YES - ERROR, TOO MANY CHARACTERS ISZ PNTR1 NO - INDEX NEW STRING POINTER ISZ CNTR3 NEW STRING TRANSFERRED? JMP C.168 NO - CONTINUE JMP C.100 YES - SCAN REST OF OLD LINE SPC 1 * TOO MANY CHARACTERS ERROR EXIT SPC 1 C.190 JSB IFMTR CONVERT DEF *+4 LINE DEF WBUF1 NUMBER DEF D4 TO DEF LDCB1 ASCII JSB IFMTR I4 DEF *+4 FORMAT DEF WBUF2 AND SAVE DEF D4 IN LDCB DEF LDCB1+3 BUFFER LDA B55 AN STA LDCB1+2 ASCII DASH LDA LFIL4 & AN ASCII STA LDCB1+5 SPACE BACKARROW TO LDCB LDA D6 6 STA NWDS TO NWDS LDA LDCB OUTPUT THE LDB TTYD LINE NUMBER JSB OUT TO THE OPERATOR LDA D21 OUTPUT "TOO MANY CHARACTERS" LDB TTY ERROR JSB PRINT MESSAGE JMP C.140 GO TO THE NEXT LINE HED ** RTE EDITOR /D - DELETE COMMAND ** JDR * ROUTINE TO DELETE A LINE OR GROUP LINES SPC 1 * COMMAND SYNTAX * /D,X,Y SPC 1 * DELETE LINE(S) FROM AND INCLUDING LINE X TO AND INCLUDING * LINE Y. * DEFAULTS ARE: * Y = X SPC 1 D. CLA CLEAR THE STA RFLAG REPLACE FLAG D.5 CLA CLEAR THE MORE STA FLAG THAN 1 LINE FLAG STA FIRST AND NEW 1ST LINE FLAG SPC 1 * GET 1ST LINE NUMBER TO BE DELETED SPC 1 JSB LNUMB GET THE LINE NUMBER SSA END OF DIRECTIVE LINE? JMP .D8 YES - ERROR SZA VALID LINE NUMBER? JMP .D8 NO - ERROR DLD TBUF SAVE THE DST WL11 REQUESTED DST LAST1 LINE NUMBER SPC 1 * GET THE LAST LINE TO BE DELETED SPC 1 JSB LNUMB GET THE LINE NUMBER SSA END OF DrHFBIRECTIVE LINE? JMP D.50 YES - POSITION FILE SZA VALID LINE NUMBER? JMP .D8 NO - ERROR ISZ FLAG YES - SET MORE THAN 1 LINE FLAG DLD TBUF SAVE THE DST LAST1 LINE NUMBER JSB MLINE IF LAST >= 1ST, THEN RETURN P+1 SPC 1 * POSITION WORK FILE TO 1ST LINE TO BE DELETED SPC 1 D.50 JSB WFIND POSITION FILE SZA,RSS REQUESTED LINE FOUND JMP D.70 YES - CONTINUE LDA RFLAG NO - REPLACE SZA OPERATION? JMP WF90 YES - OUTPUT POSIT ERROR MESSAGE  = 0? JMP .D8 NO - DIRECTIVE ERROR SZA,RSS YES - NCHAR > 0? JMP .D8 NO - DIRECTIVE ERROR DLD TBUF TRANSFER DST LFILE  PROGRAM LDA TBUF+2 NAME STA LFILE+2 TO LFILE BUFFER SPC 1 * PROGRAM TO BE SCHEDULED - GET PARAMETERS SPC 1 ISZ LFMP SET LFMP FLAG FOR PROG SCHEDULE LDA LBUFD SET UP POINTER STA CNTR2 TO LBUF FOR PARAMETER LDA M5 STORAGE AND A STA CNTR3 -5 COUNTER E.30 JSB LNUMB GET A PARAMETER SSA END OF LINE JMP E.40 YES - ZERO REST OF PARAMETERS SZA NO - VALID NUMBER? JMP .D8 NO - DIRECTIVE ERROR LDA TBUF YES - SAVE STA CNTR2,I PARAMETER ISZ CNTR2 INDEX POINTER ISZ CNTR3 ALL PARAMETERS IN? JMP E.30 NO - GET NEXT ONE JMP E.50 YES - CLOSE FMP WORK FILE E.40 CLA 0 TO A STA CNTR2,I ZERO REMAINING ISZ CNTR2 PARAMETERS ISZ CNTR3 DONE? JMP *-3 NO - LOOP SPC 1 * CLOSE FMP EDITOR WORK FILE SPC 1 E.50 LDA WDCB LDB BLOK JSB FCLOS SPC 1 * IF PROGRAM IS TO BE SCHEDULED, SCHEDULE IT SPC 1 LDA LFMP PROGRAM TO SZA,RSS BE SCHEDULED? JMP E.60 NO - TERMINATE JSB EXEC YES - DEF *+8 SCHEDULE DEF D10 PROGRAM DEF LFILE WITH DEF LBUF 5 DEF LBUF+1 PARAMETERS DEF LBUF+2 DEF LBUF+3 DEF LBUF+4 SPC 1 * OUTPUT END MESSAGE & TERMINATE SPC 1 E.60 LDA D19 OUTPUT LDB TTY END EDITOR JSB PRINT MESSAGE JSB EXEC TERMINATE DEF *+2 DEF D6 JMP *-3 EDITOR HED ** RTE EDITOR /G - LABEL GENERATE COMMAND ** JDR * ROUTINE TO GENERATE AN ALPHA/NUMERIC TAPE LABEL SPC 1 * COMMAND SYNTAX * /G,LU SPC 1 * GENERATE A LABEL ON LOGICAL UNIT NUMBER LU SPC 1 G. JSB DVICE GET LUN LDA LFMP IS INPUT SZA A LUN? JMP .D8 NO - DIRECTIVE ERROR LDA L.45-1 YES - GET LEGAL LIST ADDRESS G.05 LDB AREG,I GET A LUN FROM LIST CPB LNLU DO WE HAVE A MATCH? JMP G.10 YES - INPUT LABEL INA NO - INDEX POINTER SZB END OF LIST? JMP G.05 NO - TRY NEXT ONE JMP L.45A YES - ILLEGAL LUN SPC 1 * INPUT THE LABEL SPC 1 G.10 STB PNTR3 SAVE LABEL OUTPUT LUN LDA KYBD KEYBOARD SZA,RSS INPUT? JMP G.15 NO - INPUT LABEL LDA D20 YES - OUTPUT LDB CMND TYPE LABEL JSB PRINT MESSAGE G.15 LDA CMND TRANSFER COMMAND LUN STA LNLU TO LNLU LDA CFMP INPUT LDB CDCB LABEL JSB READL FROM DEF CFILE COMMAND DEF TBUF DEVICE LDA IERR ANY SSA ERROR? JMP .D8 YES - OUTPUT ERROR MESSAGE LDA NWDS NO - GET WORD COUNT SSA EOF? JMP .D1 YES - GET NEXT DIRECTIVE ADA TBUFD NO - TERMINATE LABEL CLB BUFFER WITH STB AREG,I A ZERO SPC 1 * PUNCH LABEL SPC 1 JSB ALPHA OUTPUT DEF *+3 LABEL TO DEF TBUF LUN DEF PNTR3 AND JMP .D1 FETCH NEXT DIRECTIVE HED ** RTE EDITOR /I - INSERT LINE(S) COMMAND ** JDR * ROUTINE TO INSERT LINE(S) INTO THE EDITOR WORK FILE. SPC 1 * COMMAND SYNTAX * /I,Z,I,LU,X,Y SPC 1 * INSERT AFTER LINE Z LINES WITH INCREMENT I FROM DEVICE LU * BEGINING AT LINE X TO AND INCLUDING LINE Y. * DEFAULTS ARE: * I = 100 * LU = COMMAND INPUT DEVICE * X = 1ST LINE * Y = UNTIL EOF IS REACHED SPC 1 I. LDA D100 100 STA ISERT TO INSERT INCREMENT SPC 1 * GET LINE NUMBER OF WORK FILE TO INSERT AFTER SPC 1 JSB LNUMB GET LINE NUMBER SSA END OF DIRECTIVE LINE? JMP .D8 YES - DIRECTIVE ERROR SZA VALID LINE NUMBE-R? JMP .D8 NO - DIRECTIVE ERROR DLD TBUF YES - PUT LINE DST WL11 IN WL ARRAY I.05 JSB WFIND POSITION WORK FILE DLD TBUF SET UP CURRENT DST WL13 INSERT LINE NUMBER SPC 1 * INITIALIZE INSERT FLAGS SPC 1 ISZ SLASH SET SLASH OPTION ISZ EOF1 AND EOF FLAGS LDA CMND COMMAND LUN TO STA LNLU LINE INPUT LNLU LDA KYBD TRANSFER THE STA LKYBD KEYBOARD FLAG LDA CFMP COMMAND INPUT SZA,RSS FROM FMP FILE? JMP I.10 NO - GET INSERT LINE INCREMENT STA LFMP YES - TRANSFER FMP FLAG LDA CFILD - OPEN LDB LDCB COMMAND FILE JSB FOPEN TO LINE FMP DCB SSA ANY OPEN ERRORS JMP .D2 YES - FETCH NEXT DIRECTIVE SPC 1 * GET INSERT LINE INCREMENT SPC 1 I.10 JSB LNUMB GET INSERT LINE INCREMENT SSA END OF DIRECTIVE? JMP I.30 YES - INSERT LINES SZA NO - DIRECTIVE ERROR? JMP .D8 YES - OUTPUT ERROR MESSAGE SZB NO - LINE # OR PLUS? JMP .D8 PLUS - DIRECTIVE ERROR LDA TBUF NUMBER - SET INSERT STA ISERT INCREMENT SPC 1 * GET INPUT LU OR FILE NAME SPC 1 JSB SCANR GET INPUT DEVICE LDA IERR ANY SZA ERROR? JMP .D8 YES - OUTPUT ERROR MESSAGE STA LFMP CLEAR THE FMP FLAG LDA TYPE END OF SZA,RSS DIRECTIVE? JMP I.30 YES - INSERT LINES LDB NCHAR NO - CHARACTER SSB STRING JMP .D8 YES - DIRECTIVE ERROR SSA NO - LUN OR FILE NAME JMP I.12 FILE - OPEN IT LDA TBUF LUN - GET IT STA LNLU SET UP JSB LS? INPUT LOGICAL UNIT JMP I.15 GET STARTING LINE NUMBER SPC 1 * OPEN FMP LINE SPC 1 I.12 JSB FTYPE OPEN SOURCE FILZzE CLA CLEAR THE STA LKYBD KYBD FLAG ISZ LFMP NO - SET THE FMP FLAG SPC 1 * GET STARTING RECORD OF INSERT FILE SPC 1 I.15 JSB LNUMB GET STARTING RECORD # SSA END OF DIRECTIVE? JMP I.30 YES - DEFAULT TO 1 SZA DIRECTIVE ERROR? JMP .D8 YES - OUTPUT MESSAGE SZB A PLUS SIGN? JMP .D8 YES - ERROR LDA TBUF RECORD # TO A STA SLINE SAVE STARTING RECORD # JSB POSIT POSITION INSERT FILE SPC 1 * GET LAST LINE OF INSERT FILE SPC 1 JSB LNUMB GET LAST RECORD NUMBER SSA END OF DIRECTIVE? JMP I.30 YES - DEFAULT TO EOF SZA DIRECTIVE ERROR? JMP .D8 YES - OUTPUT MESSAGE SZB A PLUS SIGN? JMP I.30 YES - DEFAULT TO EOF LDA TBUF GET ENDING RECORD # CMA,INA TOTAL INSERT ADA M1 RECORDS ADA SLINE = STA LINES START - LAST - 1 CLA CLEAR STA EOF1 EOF FLAG SPC 1 * INSERT LINES SPC 1 I.30 LDA LKYBD KEYBOARD FLAG SZA,RSS SET? JMP I.32 NO - INSERT LINES LDA D1 YES STA NWDS OUTPUT LDA .! AN LDB LNLUD ! JSB OUT MARK I.32 JSB FIXUM IF FROM FMP DEF CDCB+1 FILE TRANSFER DEF LDCB1 CDCB TO LDCB JSB INSRT INSERT LINES SZA ANY ERROR? JMP .D2 YES - FETCH NEXT DIRECTIVE JSB FIXUM NO - IF INPUT WAS FROM SAME DEF LDCB1 FMP FILE AS DIRECTIVE, TRANSFER DEF CDCB+1 LDCB TO CDCB JMP A.120 CLEAR SAVED FLAG HED ** RTE EDITOR /L - LIST SOURCE ** JDR * /L,LU,X,Y SPC 1 * LIST SOURCE ON LOGICAL UNIT OR FILE LU BEGINNING AT LINE X TO * AND INCLUDING LINE Y SPC 1 * DEFAULTS ARE: * X = 1ST LINE * Y = X IF X IS GIVEN ELSEN = + = LAST LINE SPC 1 L. CLA,INA SET LINE STA LNUM NUMBER FLAG L.10 DLD WL14 SET START TO DST WL11 1ST LINE & DLD WL15 END TO LAST DST LAST1 LINE SPC 1 * GET OUTPUT LOGICAL UNIT NUMBER OR FILE NAME SPC 1 JSB DVICE GET DEVICE LUN OR FILE NAME LDA LFMP OUTPUT TO SZA,RSS FMP FILE? JMP L.45 NO - INITIALIZE LUN SPC 1 * FMP FILE - SEE IF IT EXSISTS SPC 1 JSB OPEN ATTEMP DEF *+5 TO DEF LDCB1 OPEN DEF IERR THE DEF LFILE FILE DEF D1 NON-EXCLUSIVELY LDA IERR GET ERROR CODE CPA M6 DOES FILE EXSIST? JMP L.50 NO - CONTINUE CPA D4 YES - FILE TYPE 4? JMP L.30 YES - ASK IF OKAY TO REWRITE CPA D3 ALLOW A JMP L.30 TYPE 3 ALSO L.25 LDA D11 OUTPUT FILE EXSIST BUT LDB TTY NOT TYPE FOUR JSB PRINT MESSAGE. JMP .D2 FETCH NEXT DIRECTIVE SPC 1 * TYPE 4 FILE EXSIST SEE IF IT IS OKAY TO USE IT. SPC 1 L.30 LDA D12 ASK LDB TTY JSB PRINT IF LDA LFILD LDB D4 IT STB NWDS LDB TTYD IS JSB OUT LDA D13 OKAY TO LDB TTY JSB PRINT REWRITE JSB YESNO IS REPLY A YES OR A NO? JMP .D2 NO - FETCH NEXT DIRECTIVE SPC 1 * PURGE OLD FILE SPC 1 JSB PURGE MAKE DEF *+4 CALL DEF LDCB1 TO DEF IERR FMP DEF LFILE PURGE JSB IFMGR CHECK DEF *+5 FOR DEF IERR ERRORS DEF D10 & DEF TTY PRINT ERROR DEF LFILE MESSAGE SSA ANYERRORS? JMP .D2 YES - FETCH NEW DIRECTIVE JMP L.50 NO - CONTINUE SPC 1 * MAKE SURE LUN GIVEN IS LEGAL SPC 1 DEF LEGAL SET UP POINTER TO LEGA/uL OUTPUT L.45 LDA *-1 LOGICAL UNIT LIST LDB AREG,I GET LOGICAL UNIT FROM LIST CPB LNLU LEGAL LOGICAL UNIT? JMP L.46 YES - CHECK FOR LS OR LIST INA NO - INDEX POINTER SZB END OF LIST? JMP L.45+1 NO - CHECK NEXT ONE IN LIST L.45A LDA D22 YES - LDB TTY OUTPUT ERROR JSB PRINT MESSAGE AND JMP .D2 FETCH NEXT DIRECTIVE SPC 1 * IS LUN POINTING TO LS TRACKS? SPC 1 L.46 LDA LNLU GET LOGICAL UNIT CPA D2 IS IT EQUAL TO 2 RSS YES - GET LS TRACKS JMP L.47 NO - CHECK FOR LUN OF 6 (LIST) JSB %WRIN REQUEST A LS TRACK JMP L.140 DISC FULL - PRINT MESSAGE STA RTRK1 SET TRACK NO. 1 STA RTRKC = CURRENT TRACK ALF,ALF GET LOGICAL AND B377 UNIT NUMBER AND ADA B60 ADD ASCII CONSTANT STA LUN PUT IT IN PRINT ROUTINE LDA RTRK1 GET TRACK # AND B377 AND STA TAK SAVE IT JSB IFMTR CONVERT DEF *+4 TRACK DEF TAK NUMBER DEF D3 TO DEF TRACK ASCII LDA D17 PRINT LDB TTY LUN & JSB PRINT TRACK NUMBER JSB SETLS SET LS TRACK INTO BASE PAGE JMP L.50 CONTINUE WITH /L DIRECTIVE SPC 1 * IS LUN POINTING TO THE LIST DEVICE? SPC 1 L.47 CPA D6 IS LUN THE LIST DEVICE? RSS YES - OUTPUT A PAGE EJECT JMP L.48 NO - OUTPUT LEADER JSB EJECT OUTPUT A PAGE EJECT JMP L.50 & CONTINUE WITH /L DIRECTIVE L.48 JSB LEADR OUTPUT LEADER SPC 1 * GET STARTING LINE NUMBER SPC 1 L.50 JSB LNUMB GET STARTING LINE NUMBER SSA END OF LINE? JMP L.60 YES - FINISH LIST INITIALIZATION SZA NO - DIRECTIVE ERROR? JMP .D8 YES - ERROR MESSAGE DLD TBUF NO - SET DST WL11 UP CLINE DST LAST1 LINE NUMBERS SPC 1 * GET ENDING LINE NUMBER SPC 1 JSB LNUMB GET ENDING LINE NUMBER SSA END OF LINE? JMP L.60 YES - FINISH LIST INITIALIZATION SZA NO - DIRECTIVE ERROR? JMP .D8 YES - PRINT ERROR MESSAGE DLD TBUF NO - SET UP LAST DST LAST1 LINE NUMBERS SPC 1 * MAKE SURE LAST LINE >= 1ST LINE SPC 1 JSB MLINE RETURN P+1 IF LAST >= 1ST SPC 1 * CHECK FOR EMPTY WORK FILE SPC 1 L.60 LDA WLAST IS WORK SZA FILE EMPTY? JMP L.62 NO - POSITION FILE LDA D6 YES - PRINT FILE LDB TTY EMPTY MESSAGE JSB PRINT & JMP .D2 FETCH NEXT DIRECTIVE SPC 1 * POSITION WORK FILE SPC 1 L.62 JSB WFIND POSITION WORK FILE SZA,RSS REQUEST LINE FOUND? JMP L.64 YES - CHECK IF THIS IS TO A FMP DLD WL12 NO - POSITION DST WL11 TO NEXT HIGHER JMP L.62 LINE SPC 1 * IF OUTPUT IS TO A FMP FILE, CREATE THE FILE SPC 1 L.64 LDA LFMP OUTPUT SZA,RSS TO A FMP FILE? JMP L.80 NO - OUTPUT THE 1ST LINE JSB CREAT CREATE DEF *+6 A DEF LDCB1 TYPE 4 DEF IERR FILE DEF LFILE USING THE REST DEF M1 OF THE DEF D4 DISC JSB IFMGR CHECK FOR DEF *+5 AND DEF IERR PRINT DEF D3 ANY DEF TTY CREATE DEF LFILE ERRORS SSA ANY ERRORS? JMP .D2 YES - FETCH NEXT DIRECTIVE ARS NO - SAVE STA BLOCK BLOCK COUNT SPC 1 * CONVERT LINE NUMBERS TO ASCII SPC 1 L.80 JSB IFMTR CONVERT DEF *+4 1ST PART DEF WBUF1 OF DEF D4 LINE DEF TBUF NUMBER JSB IFMTR CONVERT DEF *+4 2ND PART DEF WBUF2 OF  DEF D4 LINE DEF TBUF+3 NUMBER LDA TBUF+3 ADD LDB B55 IN LSL 8 - (DASH) STB TBUF+2 AND ALF,ALF PACK STA BREG - (DASH) LDA TBUF+4 AND LSL 8 2ND PART OF LINE STB TBUF+3 NUMBER IOR SSPAC WITH 1ST STA TBUF+4 PART OF LINE NUMBER SPC 1 * TRANSFER LINE TO OUTPUT BUFFER & FORM WORD COUNT SPC 1 CLA 0 TO STA NWDS WORD COUNTER LDA M40 -40 TO STA CNTR1 COUNTER LDA TBF6D SET UP POINTERS STA PNTR2 TO OUTPUT BUFFER LDA WBF5D AND STA PNTR1 WORK FILE BUFFERS L.82 LDA PNTR1,I GET A WORD FROM WORK FILE CPA M1 END OF LINE? JMP L.84 YES - LINE TRANSFER COMPLETE STA PNTR2,I NO - STORE WORD IN OUTPUT BUFFER ISZ NWDS INDEX WORD COUNTER, ISZ PNTR1 WORK FILE POINTER, ISZ PNTR2 AND OUTPUT BUFFER POINTER ISZ CNTR1 80 CHARACTERS TRANSFERRED? JMP L.82 NO - CONTINUE TRANSFER SPC 1 * INITIALIZE OUTPUT POINTERS (EITHER WITH OR WITHOUT LINE NOS.) SPC 1 L.84 LDA TBF6D SET UP POINTER WITHOUT STA PNTR1 LINE NUMBERS LDB LNUM DOES OUTPUT INCLUDE SZB,RSS LINE NUMBERS? JMP L.86 NO - OUTPUT THE LINE LDA TBUFD YES - SET POINTER STA PNTR1 TO 1ST WORD OF OUTPUT BUFFER LDA NWDS & ADD ADA D5 5 TO WORD STA BREG COUNT & SAVE IN B CMA,INA GREATER ADA MLENG THEN MAXIUM SSA LENGTH FOR LIST DEVICE? LDB MLENG YES - TRUNCATE TO MAXIUM LENGTH STB NWDS SAVE WORD COUNT SPC 1 * BRANCH TO PROPER OUTPUT ROUTINE SPC 1 L.86 LDA LFMP OUTPUT TO SZA FMP FILE? JMP L.150 YES - USE FMP WRITF LDA LNLU NO- OUTPUT CPA D2 TO LS TRACKS JMP L.130 YES NHFB- USE %WRIS SPC 1 * OUTPUT TO A LOGICAL UNIT DEVICE SPC 1 LDA PNTR1 USE LDB LNLUD STANDARD JSB OUT EXEC I/O CALL JMP L.160 CHECK FOR ANOTHER LINE SPC 1 * OUTPUT TO LS TRACKS SPC 1 L.130 LDA NWDS CONVERT WORDS ALS TO CMA,INA - CHARACTERS & STA NWDS SAVE JSB %WRIS MAKE DEF *+4 CALL DEF PNTR1,I TO DEF NWDS %WRIS JMP L.132 ERROR RETURN STA RTRKC NORMAL RETURN - UPDATE CURRENT REH s 22664-80003 A SC 0122 RTE CONVERSATIONAL SUPER EDITOR             H0101 M JMP L.160 TRACK & CHECK FOR ANOTHER LINE SPC 1 L.132 JSB LSREL DISC FULL - RELEASE TRACKS LDA D16 OUTPUT LS LDB TTY TRACK ERROR JSB PRINT MESSAGE L.140 LDA D15 OUTPUT SOURCE LDB TTY NOT TRANSFERRED TO FILE JSB PRINT MESSAGE JMP .D2 FETCH NEXT DIRECTIVE SPC 1 * OUTPUT TO FMP FILE SPC 1 L.150 JSB WRITF CALL FMP DEF *+5 WRITF DEF LDCB,I TO DEF IERR WRITE DEF PNTR1,I LINE INTO DEF NWDS FILE JSB IFMGR CHECK FOR DEF *+5 & DEF IERR PRINT DEF D13 ANY DEF TTY ERRORS DEF LFILE ENCOUNTERED SSA,RSS ANY ERRORS L.152 JMP L.160 NO - CHECK FOR ANOTHER LINE JSB PURGE YES - DEF * PURGE DEF LDCB,I FILE DEF IERR & DEF LFILE PRINT FILE NOT JMP L.140 TRANSFERRED MESSAGE SPC 1 * ANYMORE LINES? SPC 1 L.160 DLD WBUF1 WAS THIS CPA WL15 THE RSS LAST JMP L.162 LINE IN THE CPB WL25 WORK FILE? JMP L.170 YES - THEN WE MUST BE DONE L.162 LDA WBUF4 NO - READ NEXT LINE JSB REDWF FROM WORK FILE SSA ANY ERRORS JMP L.140 YES - ABORT OUTPUT DIRECTIVE DLD LAST1 NO - GET LAST LINE NUMBER CMA,INA IF ((LINE 1 < LAST1) OR ADA WBUF1 ((LINE 1 = LAST1) AND SSA ( LINE 2 <= LAST2))) JMP L.80 THEN SZA OUTPUT JMP L.170 THIS CMB,INB LINE ADB WBUF2 ELSE SSB WE JMP L.80 ARE SZB,RSS DONE JMP L.80 SPC 1 * OUTPUT COMPLETE - TERMINATE OUTPUT UNIT PROPERLY SPC 1 L.170 LDA LFMP WAS OUTPUT SZA TO AN FMP FILE? JMP L.180 YES - GO TO FMP TERMINATION LDA LNLU NO - GET LUN CPA D2 LS TRACKS? JMP L.172 YES - WRITE EOF ON LS TRACKS CPA D6 NO - LUN = 6 (LIST)? JMP L.176 YES - DO A DOUBLE PAGE EJECT SPC 1 * STANDARD LUN - OUTPUT TRAILER SPC 1 JSB LEADR OUTPUT TRAILER JMP L.200 SET SAVED FLAG - MAYBE SPC 1 * LS TRACKS - WRITE END OF FILE SPC 1 L.172 JSB %WEOF WRITE EOF JMP L.200 SET SAVED FLAG - MAYBE SPC 1 * LIST DEVICE - DO A DOUBLE PAGE EJECT SPC 1 L.176 JSB EJECT TWO FORM JSB EJECT FEEDS & JMP .D1 FETCH NEXT DIRECTIVE SPC 1 * FMP FILE - WRITE AN EOF & RELEASE UNUSED BLOCKS SPC 1 L.180 JSB WRITF WRITE DEF *+5 AN DEF LDCB,I EOF DEF IERR IN DEF WBUF1 FMP DEF M1 FILE JSB LOCF GET DEF *+5 CURRENT DEF LDCB,I POSITION DEF IERR OF DEF PNTR1 FMP DEF PNTR2 FILE LDA IERR ANY SSA ERROR? JMP L.152 YES - PURGE & PRINT WARNING LDA PNTR2 NO - CMA,INA CALCULATE ADA M1 BLOCKS ADA BLOCK TO STA BLOCK RELEASE LDA LDCB CLOSE LDB BLOK FILE & RELEASE JSB FCLOS UNUSED BLOCKS LDA IERR ANY SSA CLOSE ERROR JMP L.140 YES - ABORT SPC 1 * SET SAVED FLAG IN OUTPUT DID NOT INCLUDE LINE NUMBERS SPC 1 L.200 CLA,INA 1 TO A REG LDB LNUM IS LINE NUMBER SZB,RSS FLAG SET? STA SAVED NO - SET SAVED FLAG JMP .D1 FETCH NEXT DIRECTIVE HED ** RTE EDITOR /M - MOVE COMMAND ** JDR * ROUTINE TO MOVE LINES WITHIN THE WORK FILE. SPC 1 * COMMAND SYNTAX * /M,Z,X,Y,I SPC 1 * MOVE AFTER LINE Z, LINES X THRU AND INCLUDING Y WITH * INCREMENTS OF I. * DEFAULTS ARE: * Y = X * I = 100 SPC 1 M. LDA D100 100 TO STA ISERT INSERT INCREMENgT LDA WLAST IS WORK FILE SZA,RSS EMPTY? JMP WF0 YES - OUTPUT ERROR MESSAGE CLA NO - CLEAR STA FLAG FLAG SPC 1 * GET "MOVE AFTER" LINE # & SAVE POINTERS SPC 1 JSB LNUMB GET LINE NUMBER SSA END OF DIRECTIVE? JMP .D8 YES - OUTPUT ERROR MESSAGE SZA VALID LINE NUMBER? JMP .D8 NO - OUTPUT ERROR MESSAGE DLD TBUF YES - SAVE AS CURRENT M.10 DST WL11 LINE # & POSITION DST WL13 TO LINE # JSB WFIND POSITION WORK FILE DLD WL11 SAVE LINE DST LBUF POINTERS DLD WL31 IN DST LBUF+2 LBUF DLD WL12 SAVE NEXT LINE DST LBUF+4 & RECORD DLD WL32 POINTERS DST LBUF+6 IN LBUF SPC 1 * GET LINE # OF 1ST LINE TO BE MOVED SPC 1 JSB LNUMB GET 1ST LINE # TO BE MOVED SSA END OF DIRECTIVE? JMP .D8 YES - OUTPUT ERROR MESSAGE SZA VALID LINE #? JMP .D8 NO - OUTPUT ERROR MESSAGE DLD TBUF YES - POSITION M.30 DST WL11 WORK FILE JSB WFIND TO LINE SZA,RSS EXACT LINE FOUND? JMP M.50 YES - SET LAST LINE TO THIS LINE ISZ FLAG NO - SET FLAG DLD WL12 AND POSITION JMP M.30 TO NEXT LINE M.50 DLD WL11 SET LAST LINE DST LAST1 = 1ST LINE LDA WL32 SAVE RECORD SZA,RSS # OF LDA WL41 THIS LINE STA START AT START DLD WL11 SAVE DST LBUF+11 POINTERS OF DLD WL31 1ST LINE TO DST LBUF+13 BE MOVED SPC 1 * GET LINE # OF LAST LINE TO BE MOVED SPC 1 JSB LNUMB GET LAST LINE # TO BE MOVED SSA END OF DIRECTIVE? JMP M.75 YES - MAKE SURE LINES WILL FIT SZA VALID LINE #? JMP .D8 NO - OUTPUT ERROR MESSAGE DLD TBUF YES - POSITION DST WL11 WORK FILE JSB WFIND TO IT DLD WL11 SAVE LINE DST LAST1 # IN LAST1 & LAST2 JSB MLINE IF LAST >= 1ST, THEN RETURN P+1 CLA CLEAR THE STA FLAG POSITION FLAG SPC 1 * GET THE LINE INCREMENT SPC 1 JSB LNUMB GET THE LINE INCREMENT SSA END OF DIRECTIVE? JMP M.75 YES - MAKE SURE LINES WILL FIT SZA VALID NUMBER? JMP .D8 NO - OUTPUT ERROR MESSAGE SZB A PLUS SIGN? JMP .D8 YES - DIRECTIVE ERROR LDA TBUF SAVE INCREMENT STA ISERT NUMBER SPC 1 * MAKE SURE LINES WILL FIT BEFORE THEY ARE MOVED SPC 1 M.75 LDA FLAG LINE POSITION SZA FLAG SET? JMP WF90 YES - ERROR - OUTPUT MESSAGE DLD LBUF IF MOVE CPA WL15 IS AFTER RSS LAST LINE, JMP *+3 SKIP CPB WL25 LINE FIT JMP M.120 TEST DLD WL13 GET CURRENT DST LBUF+8 LINE NUMBER LDA START GET RECORD # OF 1ST LINE M.80 JSB REDWF READ LINE INTO WORK BUFFER SSA ANY ERRORS JMP WF90 YES - OUTPUT POSITION ERROR MESS. DLD LBUF+8 INCREMENT ADB ISERT 2ND PART STB LBUF+9 OF LINE # ADB M10K BY 1, SSB IF GREATER JMP M.90 THAN 9999, CLB SET TO ZERO ADA 1 AND INCREMENT DST LBUF+8 1ST PART M.90 CMA,INA IF ADA LBUF+4 ((LBUF(9) < LBUF(5)) SSA OR JMP M.100 ((LBUF(9) = LBUF(5)) SZA AND JMP M.100 (LBUF(10) < LBUF(6)))) CMB,INB THEN ADB LBUF+5 CHECK SSB,RSS NEXT LINE ELSE OUTPUT LINES JMP IN50 WILL NOT FIT MESSAGE M.100 DLD WBUF1 WAS CPA LAST1 THIS RSS THE JMP *+3 LAST CPB LAST2 LINE JMP 5M.120 TO BE LDA WBUF4 MOVED? JMP M.80 NO - SEE IF NEXT 1 WILL FIT SPC 1 * LINES WILL FIT - MOVE THEM SPC 1 M.120 CLA RESET THE STA FIRST NEW 1ST & LAST STA LAST LINE FLAGS STA EOF1 CLEAR LAST LINE TO BE MOVE FLAG LDA START GET RECORD # OF 1ST LINE M.130 JSB REDWF GET LINE IN WORK BUFFER SSA ANY ERRORS JMP IN180 YES - OUTPUT ERROR MESSAGE DLD WBUF1 GET LINE NUMBER CPA WL14 IF WE ARE RSS MOVING JMP *+3 1ST CPB WL24 LINE SET NEW ISZ FIRST 1ST LINE FLAG CPA WL15 IF WE ARE RSS MOVING JMP *+3 LAST CPB WL25 LINE SET NEW ISZ LAST LAST LINE FLAG CPA LAST1 IF THIS RSS IS THE JMP *+3 LAST LINE CPB LAST2 TO BE MOVED, ISZ EOF1 SET THE LAST MOVE LINE FLAG DLD WL13 GET THE CURRENT LINE NUMBER ADB ISERT ADD INCREMENT STB WL23 TO 2ND PART ADB M10K IF 2ND PART > SSB 9999 THEN JMP *+5 ADD 1 CLB TO 1ST STB WL23 PART & SET ADA D1 2ND PART STA WL13 TO ZERO DLD WL13 PUT NEW LINE # DST WBUF1 IN LINE TO BE MOVED LDA RCORD REWRITE JSB WRIWF LINE INTO WORK FILE SSA ANY ERRORS JMP IN180 YES - OUTPUT ERROR MESSAGE LDA EOF1 WAS THIS THE LAST SZA LINE TO BE MOVED? JMP M.150 YES - UPDATE FILE POINTERS LDA WBUF4 NO - MOVE JMP M.130 NEXT LINE SPC 1 * UPDATE WORK FILE LINE POINTERS SPC 1 M.150 LDA RCORD SAVE RECORD STA PNTR1 NUMBER OF LAST LINE MOVED SPC 1 * UPDATE LINE FOLLOWING LAST LINE MOVED SPC 1 LDA LAST DID MOVED LINES SZA INCLUDE THE LAST LINE? JMP M.! 160 YES - NO LINE TO UPDATE LDA WBUF4 NO - GET THE LINE JSB REDWF IN THE WORK BUFFER SSA ANY ERRORS? JMP IN180 YES - OUTPUT ERROR MESSAGE LDA LBUF+13 GET PRECEEDING LINE TO 1ST MOVED LDB FIRST LINE. IF LINES MOVED INCLUDED SZB THE 1ST LINE, THEN SET THE PRE- LDA RCORD CEDING RECORD POINTER TO STA WBUF3 THIS RECORD. SZB,RSS NEW 1ST LINE? JMP M.155 NO - REWRITE LINE INTO WORK FILE DLD WBUF1 YES - UPDATE DST WL14 1ST DLD WBUF3 LINE DST WL34 POINTERS M.155 LDA RCORD REWRITE RECORD JSB WRIWF INTO WORK FILE SSA ANY ERRORS? JMP IN180 YES - OUTPUT ERROR MESSAGE SPC 1 * UPDATE LINE PRECEEDING THE 1ST LINE THAT WAS MOVED SPC 1 M.160 LDA RCORD GET THE LAST LINE RECORD # LDB FIRST DID MOVED LINES INCLUDE SZB,RSS THE 1ST LINE? JMP M.161 NO - UPDATE THE LINE STA WBUF3 NEW 1ST LINE - DLD WBUF1 UPDATE THE DST WL14 1ST LINE DLD WBUF3 RECORD DST WL34 POINTERS AND JMP M.162 REWRITE THE LINE IN THE WORK FILE M.161 STA PNTR2 SAVE THE RECORD # OF THE LAST LINE LDA LBUF+13 GET THE PRECEEDING LINE JSB REDWF OF THE 1ST LINE MOVED SSA ANY ERRORS? JMP IN180 YES - OUTPUT ERROR MESSAGE LDA PNTR2 IF MOVED LINES DID LDB LAST NOT INCLUDE LAST LINE THEN THE SZB NEXT RECORD IS THE LINE FOLLOWING LDA RCORD LAST MOVED LINE ELSE IT IS THIS STA WBUF4 RECORD # SZB,RSS NEW LAST LINE? JMP M.162 NO - REWRITE LINE INTO WORK FILE DLD WBUF1 YES - UPDATE DST WL15 LAST DLD WBUF3 LINE DST WL35 POINTERS M.162 LDA RCORD WRITE LINE BACK JSB WRIWF INTO THE WORK FILE SSA ANY ERRORS? JMP IN180 YES - OUTPUT ERROR MESSAGE SPC 1 * UPDATE REMAINING POINTERS AS IF THIS WERE AN INSERT SPC 1 DLD LBUF RESTORE DST WL11 THE DLD LBUF+2 "MOVE AFTER" DST WL31 LINE DLD LBUF+4 AND DST WL12 ITS DLD LBUF+6 FOLLOWING DST WL32 LINE IN THE WL-- ARRAY LDA M.180 PUT RETURN ADDRESS IN STA INSRT INSERT ENTRY/EXIT POINT JMP IN85A FINISH UPDATING POINTERS M.180 DEF A.120 ** RETURN POINT TO SET SAVED FLAG HED ** RTE EDITOR /N - RESEQUENCE LINE NOS CMND ** JDR * ROUTINE TO RESEQUENCE LINE NUMBERS IN THE EDITOR WORK FILE. * I.E. 1ST LINE = 1-0, 2ND = 2-0, 3RD = 3-0, ETC., TO MATCH * LINE NUMBERS PRODUCED BY THE ASSEMBLER AND COMPILERS. SPC 1 * COMMAND SYNTAX * /N SPC 1 N. LDA WLAST IF WORK FILE IS SZA,RSS EMPTY, THEN OUTPUT JMP WF0 WORK FILE EMPTY ERROR MESSAGE SPC 1 * INITIALIZE 1ST LINE COUNT, END FLAG & 1ST LINE POINTERS SPC 1 CLB CLEAR STB SLINE THE LINE COUNTER, STB FLAG THE DONE FLAG CLA,INA AND THE 1ST LINE DST WL14 POINTER TO 1-0 SPC 1 * REQUENCE THE LINES SPC 1 LDA WL34 GET THE 1ST RECORD NUMBER N.10 JSB REDWF READ THE RECORD SSA ANY ERRORS? JMP IN180 YES - OUTPUT ERROR MESSAGE ISZ SLINE NO - INCREMENT LINE # DLD WBUF1 IF THIS CPA WL15 IS THE RSS LAST LINE JMP *+3 SET THE CPB WL25 DONE ISZ FLAG FLAG LDA SLINE REPLACE CLB THE LINE DST WBUF1 NUMBER LDA RCORD REWRITE THE JSB WRIWF RECORD IN THE WORK FILE SSA ANY ERRORS? JMP IN180 YES - OUTPUT ERROR MESSAGE LDA WBUF4 GET THE NEXT RECORD NUMBER LDB FLAG ALL NUMBERS SZB,RSS RESEQUENCED? JMP N.10 9 NO - CONTINUE SPC 1 * UPDATE THE LAST LINE NUMBER POINTER SPC 1 DLD WBUF1 LAST RESEQUENCE LINE DST WL15 NUMBER TO WL15 & WL25 JMP .D1 FETCH NEXT DIRECTIVE HED ** RTE EDITOR /O - OUTPUT COMMAND ** JDR * ROUTINE TO OUTPUT THE WORK FILE WITHOUT LINE NUMBERS. SPC 1 * COMMAND SYNTAX * /O,LU,X,Y SPC 1 * OUTPUT OF LOGICAL UNIT LU OR TO FILE LU LINES X TO AND * INCLUDING LINE Y. * DEFAULTS ARE: * Y = X SPC 1 O. CLA RESET STA LNUM THE LINE NUMBER FLAG JMP L.10 OUTPUT THE LINES HED ** RTE EDITOR /R - REPLACE COMMAND ** JDR * ROUTINE TO REPLACE A LINE(S) IN THE WORK FILE. SPC 1 * COMMAND SYNTAX * /R,X,Y,I,LU,J,K SPC 1 * REPLACE LINE(S) X TO AND INCLUDING LINE Y WITH LINES HAVING * INCREMENT I FROM FILE LU STARTING AT LINE J TO AND INCLUDING * LINE K. * DEFAULTS ARE: * Y = X * I = VALUE TO INCREMENT LINES BY 1 THEN 2ND PART BY 500 * THEN BY 20 * LU = COMMAND LUN OR * J = 1ST RECORD * K = EOF OR EOT SPC 1 R. LDA D10K SET INSERT STA ISERT INCREMENT TO 10000 STA RFLAG SET REPLACE FLAG JMP D.5 REPLACE LINES HED ** RTE EDITOR /S - SELECT COMMAND DEVICE ** JDR * ROUTINE TO SELECT A EW COMMAND INPUT DEVICE OR FILE. SPC 1 * COMMAND SYNTAX * /S,LU,X,Y SPC 1 * SELECT DEVICE OR FILE LU TO INPUT EDIT COMMANDS BEGINNING * AT LINE X TO AND INCLUDING LINE Y. * DEFAULTS ARE: * X = 1 = 1ST RECORD * Y = EOT OR EOF SPC 1 S. LDA D1 SET COMMAND STA CLINE LINE COUNT TO 1 * GET INPUT LUN OR FILE SPC 1 JSB DVICE GET INPUT DEVICE LDA LFMP TRANSFER FMP FLAG STA CFMP TO COMMAND FMP FLAG SZA INPUT FROM FMP FILE? JMP S.10 YES - OPEN FILE JSB LS? NO - SETUP LUN DEVICE LDA LNLU TRANSFER LUN STA CMND TO "CMND AND LDA LKYBD KYBD FLAG STA KYBD TO COMMAND KYBD FLAG JMP S.40 GET STARTING LINE NUMBER SPC 1 * OPEN COMMAND FMP FILE SPC 1 S.10 JSB FTYPE OPEN COMMAND FILE CLA CLEAR THE STA KYBD KYBD FLAG DLD LFILE TRANSFER DST CFILE FILE LDA LFILE+2 NAME TO STA CFILE+2 CFILE BUFFER LDA LFILD OPEN FILE LDB CDCB TO CDCB JSB FOPEN FOR POSITIONING SSA ANY ERRORS? JMP .D2 YES - FETCH NEXT DIRECTIVE SPC 1 * GET STARTING RECORD NUMBER SPC 1 S.40 JSB LNUMB GET STARTING LINE NUMBER SSA END OF DIRECTIVE JMP .D1 YES - INPUT 1ST DIRECTIVE SZA NO - ANY ERRORS JMP .D8 YES - OUTPUT ERROR MESSAGE SZB NO - A PLUS SIGN? JMP .D8 YES - OUTPUT ERROR MESSAGE LDA TBUF NO - SAVE STARTING STA SLINE RECORD # JSB POSIT POSITION INPUT FILE JSB FIXUM IF FMP FILE DEF LDCB1 TRANSFER FILE POSITION DEF CDCB+1 TO CDCB SPC 1 * GET ENDING RECORD NUMBER & FORM RECORD COUNT SPC 1 JSB LNUMB GET ENDING LINE RECORD # SSA END OF DIRECTIVE LINE? JMP .D1 YES - INPUT 1ST DIRECTIVE SZA NO - ANY ERRORS? JMP .D8 YES - OUTPUT ERROR MESSAGE SZB NO - A PLUS SIGN? JMP .D1 YES - INPUT UNTIL EOF LDA TBUF NO - GET ENDING RECORD # CMA,INA FORM ADA M2 NEGATIVE ADA SLINE LINE STA CLINE COUNT JMP .D1 INPUT DIRECTIVES HED ** RTE EDITOR DVICE SUBROUTINE ** JDR * SUBROUTINE TO FETCH A DEVICE LOGICAL UNIT NUMBER OR A * FILE NAME SPC 1 * CALL SEQUENCE * DIRECTIVE LINE IN CBUF * NCHAR = 1ST CHARACTER WHERE SCAN IS TO START IN CBUF * JSB DVICE * RETURN * LFMP = 1 & FILE NAME IN LFI}LE * LFMP = 0 & LUN IN LNLU * ELSE GO TO BAD DIRECTIVE BRANCH SPC 1 DVICE NOP CLA ZERO STA LFMP LFMP FLAG JSB SCANR SCAN COMMAND LINE LDA IERR ERROR SZA DURING SCAN? JMP .D8 YES - BAD DIRECTIVE LDA TYPE END SZA,RSS OF LINE? JMP D8 YES - BAD DIRECTIVE SSA,RSS NO - JMP DV1 TYPE & LDA NCHAR CHARACTER COUNT SSA LESS THAN 0? JMP .D8 YES - BAD DIRECTIVE SPC 1 * MUST BE EITHER LOGICAL UNIT OR FILE NAME - WHICH IS IT SPC 1 DV1 LDA TYPE FILE SSA NAME? JMP DV2 YES - TRANSFER IT TO LFILE LDA TBUF NO - STORE STA LNLU LOGICAL UNIT NO. AT LNLU JMP DVICE,I & RETURN SPC 1 * TRANSFER FILE NAME & SET LFMP FLAG SPC 1 DV2 DLD TBUF STORE DST LFILE FILE LDA TBUF+2 NAME IN STA LFILE+2 LFILE ISZ LFMP SET LFMP FLAG JMP DVICE,I RETURN HED ** RTE EDITOR EJECT SUBROUTINE ** JDR * SUBROUTINE TO FORM FEED THE LIST DEVICE SPC 1 * CALL SEQUENCE * JSB EJECT * RETURN SPC 1 EJECT NOP JSB EXEC MAKE DEF *+4 EXEC DEF D3 I/O DEF PAGE CONTROL DEF M1 CALL JMP EJECT,I RETURN HED ** RTE EDITOR FCLOS SUBROUTINE ** JDR * SUBROUTE TO CLOSE A FILE MANAGER FILE SPC 1 * CALLING SEQUENCE * A = ADDRESS OF FMP DCB * B = ADDRESS OF NUMBER OF BLOCKS TO RELEASE * JSB FCLOS * RETURN SPC 1 FCLOS NOP STA FOC1 STB FOC2 JSB CLOSE DEF *+4 FOC1 NOP DEF IERR FOC2 NOP JMP FCLOS,I HED ** RTE EDITOR FIXUM SUBROUTINE ** JDR * SUBROUTINE TO UPDATE THE DCB'S FOR THE COMMAND FILE AND * LINE FILE IF BOTH FILES ARE THE SAME. SPC 1 * CALL SEQUENCE * JSB FIXUM * DEF XDCB * DEF YDCB * RETURN * IF THE DCB'S ARE FOR THE SAME FILE, THE YDCB IS * SET EQUAL TO THE XDCB ELSE XDCB & YDCB UNCHANGED SPC 1 FIXUM NOP LDA FIXUM,I SET UP STA PNTR1 POINTER ISZ FIXUM FOR LDA FIXUM,I THE TWO STA PNTR2 DCB'S ISZ FIXUM INDEX TO RETURN ADDRESS LDA M10 -10 STA CNTR1 TO CNTR1 SPC 1 * COMPARE THE TWO DCB'S TO SEE IF THEY ARE OPEN TO THE SAME FILE SPC 1 LDA PNTR1,I THESE CPA PNTR2,I WORDS EQUAL? RSS YES - CONTINUE JMP FIXUM,I NO - RETURN ISZ PNTR1 INDEX THE ISZ PNTR2 DCB POINTERS ISZ CNTR1 ALL 10 WORDS COMPARED? JMP *-7 NO - LOOP SPC 1 * BOTH POINT TO THE SAME FILE - UPDATE THE 2ND WITH THE 1ST SPC 1 LDA M134 -134 STA CNTR1 TO CNTR1 LDA PNTR1,I TRANSFER STA PNTR2,I A WORD ISZ PNTR1 INDEX THE ISZ PNTR2 POINTERS ISZ CNTR1 DONE? JMP *-5 NO - LOOP JMP FIXUM,I YES - RETURN HED ** RTE EDITOR FOPEN SUBROUTINE ** JDR * SUBROUTINE TO OPEN A FILE MANAGER FILE SPC 1 * CALLING SEQUENCE * A = ADDRESS OF FILE NAME * B = ADDRESS OF FMP DCB * JSB FOPEN * RETURN * A = ERROR CODE SPC 1 FOPEN NOP STA FOP2 STORE FILE NAME & STB FOP1 DCB ADDRESSES IN OPEN CALL JSB OPEN MAKE DEF *+5 FMP FOP1 NOP NON-EXCLUSIVE DEF IERR UPDATE FOP2 NOP OPEN DEF D3 CALL JSB IFMGR CHECK DEF *+5 FOR DEF IERR FMP DEF D8 OPEN DEF TTY ERROR & DEF FOP2,I PRINT ERROR JMP FOPEN,I RETURN HED ** RTE EDITOR FTYPE SUBROUTINE ** JDR * SUBROUTINE TO OPEN A SOURCE FILE TO THE LDCB SPC 1 * CALLING SEQUENCE * JSB FTYPE * qHFBNORMAL RETURN - FILE OPEN TO LDCB * * ERROR RETURNS * 1. TO .D2 IF FILE IS NOT A TYPE 3 OR 4. * 2. TO .D8 IF THERE IS AN OPEN ERROR. SPC 1 FTYPE NOP LDA LFILD OPEN LDB LDCB FILE TO JSB FOPEN LDCB SSA OPEN ERROR? JMP .D8 YES - DIRECTIVE ERROR CPA D3 TYPE 3? JMP FTYPE,I YES - RETURN CPA D4 TYPE 4? JMP FTYPE,I YES - RETURN JMP L.25 NO - OUTPUT FILE TYPE ERROR MESS. HED ** RTE EDITOR INSRT SUBROUTINE ** JDR :9H t 22664-80004 A SC 0122 RTE CONVERSATIONAL SUPER EDITOR             H0101 M* SUBROUTINE TO INSERT LINES INTO THE EDITOR WORKING FILE SPC 1 * CALL SEQUENCE * ALL POINTERS IN ARRAY WL-- * JSB INSRT * RETURN * A = -1 POINTERS NOT UPDATED OR LINES DID NOT FIT * A = 0 LINES INSERTED * A = 1 PREMATURE EOF ON INPUT - LINES NOT INSERTED SPC 1 INSRT NOP LDA WLAST INITIALIZE WORK INA FILE WRITE RECORD STA START POINTER SPC 1 * GET LINE TO BE INSERTED SPC 1 IN30 LDA LFMP MAKE LDB LDCB CALL JSB READL TO DEF LFILE READL TO DEF WBUF5 READ A LINE LDA IERR ANY SSA READ ERRORS? JMP IN190 YES - EXIT A = -1 LDA NWDS NO - SSA,RSS EOF ENCOUNTERED? JMP IN35 NO - CONTINUE LDA EOF1 YES - EOF SZA FLAG SET? JMP IN85 YES - OKAY - UPDATE POINTERS LDA D8 NO - OUTPUT PREMATURE LDB TTY EOF ERROR JSB PRINT MESSAGE CLA,INA SET A = 1 & JMP INSRT,I RETURN SPC 1 * CALCULATE LINE NUMBER SPC 1 IN35 LDA WL13 GET 1ST PART OF LAST INSERT LINE LDB ISERT IS INSERT SZB,RSS INCREMENT ZERO? JMP IN40 YES - INCREMENT 1ST PART ADB WL23 NO - ADD LAST INSERT 2ND PART STB WBUF2 AND SAVE IN WBUF ADB M10K IS 2ND PART > SSB 9999? JMP IN45 NO - STORE 1ST PART IN WBUF IN40 INA YES - INCREMENT 1ST PART CLB AND ZERO STB WBUF2 2ND PART IN45 STA WBUF1 1ST PART TO WBUF SPC 1 * MAKE SURE THIS LINE WILL FIT SPC 1 LDA WL12 IS THIS INSERT ADA WL22 AFTER THE SZA,RSS LAST LINE? JMP IN60 YES - PROCEED WITH INSERT DLD WL12 NO - IS 1ST PART OF THIS LINE LT CMA,INA THE 1ST PART OF LINE ADA WBUF1 FOLLOWING SSA ' THIS INSERT? JMP IN60 YES - PROCEED WITH INSERT SZA NO - ARE THEY EQUAL? JMP IN46 NO - LINE WILL NOT FIT CMB,INB YES - IS NOT 2ND PART OF THIS ADB WBUF2 INSERT LESS THAN THE 2ND PART SSB OF THE LINE FOLLOWING INSERT? JMP IN60 YES - PROCEED WITH INSERT SPC 1 * LINE WILL NOT FIT - TRY TO ADJUST ISERT SO THAT IT WILL SPC 1 IN46 LDA ISERT DIVIDE INSERT MPY D1 INCREMENT DIV D20 BY 20 STA ISERT SAVE NEW INSERT INCREMENT SZA INSERT INCREMENT = 0? JMP IN35 NO - RECALCULATE THE LINE NUMBER IN50 LDA D9 YES - LINES WILL LDB TTY NOT FIT OUTPUT ERROR JSB PRINT MESSAGE AND TAKE A = -1 JMP IN190 ERROR EXIT SPC 1 * SET PRECEDING & FOLLOWING RECORD POINTERS SPC 1 IN60 LDA WLAST GET LAST RECORD OF WORK FILE LDB START IF LAST RECORD EQUALS START OF ADB M1 THIS RECORD -1 SET WBUF3 = CPB WLAST TO WLAST + 1 ELSE INA WBUF3 STA WBUF3 = WLAST ISZ WLAST INCREMENT LAST RECORD POINTER LDA WLAST SET NEXT RECORD POINTER OF THIS INA LINE TO LAST STA WBUF4 + 1 SPC 1 * WRITE LINE INTO WORK FILE SPC 1 LDA WLAST MAKE JSB WRIWF CALL TO WRIWF SSA ANY WRITE ERRORS JMP IN190 YES - EXIT WITH A = -1 SPC 1 * UPDATE CURRENT INSERT POINTERS SPC 1 DLD WBUF1 TRANSFER DST WL13 1ST FOUR WORDS DLD WBUF3 OF WBUF TO DST WL33 WLX3 ARRAY SPC 1 * ANYMORE LINES SPC 1 LDA EOF1 INSERT TO SZA END OF FILE? JMP IN30 YES - CONTINUE INSERTING ISZ LINES NO - INSERT LINE CNTR ZERO? JMP IN30 NO - CONTINUE INSERTING SPC 1 * UPDATE ARRAY WL-- & EDITOR WOR[K FILE POINTERS SPC 1 IN85 LDA WLAST SET POINTER TO STA PNTR1 LAST RECORD NUMBER IN85A CLA CLEAR NEW FIRST & STA FIRST LAST LINE STA LAST FLAGS LDA WL34 IF RECORD POINTER TO 1ST LINE SZA,RSS EQUALS 0 THEN SET ISZ FIRST THE NEW FIRST LINE FLAG LDA PNTR1 GET THE LAST LINE INSERTED JSB REDWF INTO THE WORK FILE SSA ANYREAD ERRORS? JMP IN180 YES - ERROR EXIT DLD WL14 GET 1ST LINE POINTERS CMA,INA IF WBUF1 < ADA WBUF1 WL14 SSA OR JMP IN86 (WBUF1 = WL14 SZA AND JMP IN87 WBUF2 < WL24) CMB,INB THEN ADB WBUF2 SET NEW SSB 1ST LINE IN86 ISZ FIRST FLAG IN87 DLD WBUF1 IF CMA,INA WBUF1 > WL15 ADA WL15 OR SSA (WBUF1 = WL15 JMP IN88 AND SZA WBUF2 > WL25) JMP IN89 THEN CMB,INB SET ADB WL25 THE SSB NEW LAST IN88 ISZ LAST FLAG SPC 1 * UPDATE THE LAST INSERTED LINE'S POINTERS SPC 1 IN89 LDA WL41 IF NOT A NEW FIRST LINE LDB FIRST THE NEXT LINE POINTER SZB = THE LINE FOLLOWING THIS LDA WL34 INSERT ELSE IT EQUALS THE STA WBUF4 OLD 1ST LINE LDA LAST IS THIS A SZA,RSS NEW LAST LINE? JMP IN100 NO - CONTINUE LDA PNTR1 YES - SET NEXT LINE STA WBUF4 POINTER TO THIS RECORD DLD WBUF1 & DST WL15 UPDATE THE LAST LINE DLD WBUF3 POINTERS IN DST WL35 THE WL ARRAY IN100 LDA PNTR1 WRITE THE LAST INSERTED JSB WRIWF LINE BACK INTO THE WORK FILE SSA ANY ERRORS? JMP IN180 YES - ABORT INSERT SPC 1 * UPDATE THE LINE FOLLOWING THIS INSERT  SPC 1 LDA WL41 RECORD # IS IN WL41 LDB FIRST UNLESS THIS INSERT SZB INCLUDES A NEW LDA WL34 1ST LINE THEN IT IS IN WL34 LDB lAST IF THIS INSERT INCLUDES A NEW SZB LAST LINE THEN THERE IS NO LINE JMP IN115 FOLLOWING THIS INSERT JSB REDWF GET LINE TO UPDATE SSA ANY READ ERRORS JMP IN180 YES - ABORT LDB PNTR1 NO - SET PRECEDING RECORD STB WBUF3 POINTER TO LAST RECORD OF LDA RCORD THIS INSERT & JSB WRIWF REWRITE LINE INTO WORK FILE SSA ANY ERRORS? JMP IN180 YES - ABORT SPC 1 * UPDATE LINE PRECEDING THIS INSERT SPC 1 IN115 LDA FIRST IF THIS INSERT INCLUDED A NEW SZA 1ST LINE, THERE IS NO LINE JMP IN125 PRECEDING THIS INSERT LDA WL32 GET PRECEDING LINE RECORD # SZA,RSS ZERO? LDA WL41 YES - RECORD # IS OLD LAST LINE JSB REDWF LINE SSA ANY READ ERRORS? JMP IN180 YES - ABORT LDA START SET NEXT RECORD POINTER STA WBUF4 TO 1ST RECORD OF THIS INSERT LDA RCORD REWRITE THE RECORD JSB WRIWF BACK INTO THE WORK FILE SSA ANY ERRORS? JMP IN180 YES - ABORT SPC 1 * UPDATE THE POINTERS OF THE 1ST LINE OF THIS INSERT SPC 1 IN125 LDA START GET 1ST LINE JSB REDWF OF INSERT SSA ANY READ ERRORS? JMP IN180 YES - ABORT LDA WL32 PRECEDING RECORD = SZA,RSS ZERO? LDA WL41 YES - SET TO OLD LAST LINE STA WBUF3 TO WL32 LDA FIRST DID THIS INSERT INCLUDE SZA,RSS A NEW FIRST LINE? JMP IN140 NO - REWRITE THE LINE LDA START YES - SET PRECEEDING RECORD STA WBUF3 POINTER TO THIS RECORD DLD WBUF1 UPDATE NEW 1ST DST WL14 LINE POINTERS DLD WBUF3 IN DST WL34 ARRAY WL IN140 LDA START REWRITE RECORD JSB WRIWF INTO THE WORK FILE SSA ANY ERRORS? JMP IN180 YES - ABORT CLA NO - JMP INSRT,I RETURN SPC 1 * ERROR EXIT - POINTERS NOT UPDATED SPC 1 IN180 LDA D10 OUTPUT LDB TTY ERROR JSB PRINT MESSAGE IN190 CCA SET A TO -1 JMP INSRT,I RETURN HED ** RTE EDITOR - KEYS SUBROUTINE ** JDR * SUBROUTINE USED TO SET THE ECHO BIT AND KEYBOARD FLAG * FOR TTY & KYBD/CRT TYPE DEVICES. SPC 1 * ENTER WITH LOGICAL UNIT IN A REG. * JSB KEYS * DEF LOCATION TO STORE FLAG * DEF LOCATION TO STORE LOGICAL UNIT SPC 1 KEYS NOP LDB KEYS,I SAVE STB PNTR2 ADDRESSES ISZ KEYS OF LDB KEYS,I KYBD FLAG & STB PNTR3 LUN ISZ KEYS INDEX TO RETURN ADDRESS LDB KYBDS INTIALIZE POINTER TO KEYBOARD STB PNTR1 DEVICES' LIST CLB RESET KYBD STB PNTR2,I FLAG KEYS1 LDB PNTR1,I GET A LOGICAL UNIT IN KYBD LIST ISZ PNTR1 INDEX POINTER SZB,RSS END OF LIST JMP KEYS2 YES - STORE LOGICAL UNIT CPB AREG NO - DOES THIS LUN MATCH? RSS YES - SET FLAG & ECHO BIT JMP KEYS1 NO - TRY NEXT ONE CLB,INB SET THE STB PNTR2,I KYBD FLAG IOR ECHO OR IN THE ECHO BIT KEYS2 STA PNTR3,I STORE LUN JMP KEYS,I RETURN HED ** RTE EDITOR LEADR SUBROUTINE ** JDR * SUBROUTINE TO PUNCH LEADER ON A LOGICAL UNIT SPC 1 * CALL SEQUENCE * JSB LEADR * RETURN SPC 1 LEADR NOP LDA LNUM LINE NUMBER SZA FLAG SET? JMP LEADR,I YES - SKIP LEADER REQUEST LDA LNLU FORM LEADER IOR B1000 REQUEST CONTROL STA IERR WORD JSB EXEC MAKE EXEC DEF *+3 I/O DEF D3 CONTROL s DEF IERR CALL JMP LEADR,I RETURN HED ** RTE EDITOR LNUMB SUBROUTINE ** JDR * SUBROUTINE TO FETCH A NUMBER OR A LINE NUMBER FROM THE * COMMAND DIRECTIVE LINE. SPC 1 * CALL SEQUENCE * COMMAND DIRECTIVE IN CBUF ARRAY * NCHAR = 1ST CHARACTER TO BEGIN SCAN * JSB LNUMB * RETURN * A = 1 ERROR! SCAN DID NOT CONTAIN A VALID LINE NUMBER * A = 0 LINE NUMBER IN TBUF1 & TBUF2 * A = -1 END OF DIRECTIVE LINE ENCOUNTERED * B = 0 NUMBER WAS NOT A PLUS SIGN * B = 1 NUMBER WAS A PLUS SIGN - TBUF1 & TBUF2 = LAST LINE # SPC 1 LNUMB NOP JSB SCANR SCAN DIRECTIVE LINE LDA IERR ANY ERRORS SZA ENCOUNTERED IN SCAN? JMP LNUM2 YES - TAKE ERROR EXIT LDA TYPE NO - END OF SZA,RSS DIRECTIVE LINE? JMP LNUM1 YES - TAKE EOL EXIT SSA POSSIBLE PLUS SIGN JMP LNUM3 YES - CHECK IT OUT LNUM0 CLB NO - NUMBER CLA,RSS IN TBUF1 & TBUF2 LNUM1 CCA EOL EXIT A = -1 RSS SKIP ERROR EXIT LNUM2 CLA,INA ERROR EXIT A = 1 JMP LNUMB,I RETURN SPC 1 * CHECK DIRECTIVE FOR A PLUS SIGN SPC 1 LNUM3 LDA TBUF A PLUS SIGN CPA PLUS IN DIRECTIVE? RSS YES - CONTINUE JMP LNUM2 NO - TAKE ERROR EXIT DLD WL15 PUT LAST LINE NUMBER DST TBUF IN TBUF1 & TBUF2 CLB,INB SET B = 1 JMP LNUM0 AND RETURN HED ** RTE EDITOR LS? SUBROUTINE ** * SUBROUTINE TO CHECK LUN INPUT DEVICE FOR LUN 2 (LS TRACKS) * IF LS TRACKS THEN INTIALIZE AND IF DECLARED RETURN ELSE PRINT * LS TRACKS EMPTY AND RETURN FOR NEW DIRECTIVE. * IF NOT LS TRACKS THEN OR IN ECHO BIT IF A KYBD TYPE DEVICE. SPC 1 * CALL SEQUENCE * LUN STORED AT LOCATION LNLU * JSB LS? * RETURN (NORMAL) SPC 1 LS? NOP LDA LNLU LUN CPA D2 = 2? JMP LS?1 YES - LS TRACKS  JSB KEYS NO - IF LUN IS A KYBD DEVICE THEN DEF LKYBD OR ECHO BIT AND SET KYBD DEF LNLU FLAG JMP LS?,I RETURN SPC 1 * MAKE SURE LS TRACKS HAVE BEEN DECLARED SPC 1 LS?1 LDA SFCUN ARE LS TRACKS SZA DECLARED? JMP LS?2 YES - INITIALIZED LDA D24 NO - PRINT LDB TTY LS TRACKS JSB PRINT EMPTY MESSAGE & JMP .D2 FETCH NEXT DIRECTIVE SPC 1 * INITIALIZE LS TRACKS SPC 1 LS?2 CLB CLEAR THE STB LKYBD KYBD FLAG LSL 1 FORM LUN-TRACK ADB D2 NUMBER AND LSL 8 SET READ STB RTRK1 TRACK NO. 1 STB RTRKC = CURRENT TRACK JSB %JFIL INITIALIZE FOR 1ST READ JMP LS?,I AND RETURN HED ** RTE EDITOR LSREL SUBROUTINE ** JDR * SUBROUTINE TO RELEASE THE LS TRACKS. SPC 1 * CALL SEQUENCE * 1ST TRACK & LUN IN RTRK1 * LAST TRACK & LUN IN RTRKC * JSB LSREL * RETURN SPC 1 LSREL NOP LDA RTRK1 GET LUN-TRACK NUMBER CLB SPLIT LSL 8 LUN - TRACK ALF,ALF NUMBERS & SAVE STB LUNDK LUN AND STA TAK TRACK JSB EXEC CALL EXEC DEF *+5 TO DEF D5 RELEASE DEF D1 1 TRACK DEF TAK TRACK # DEF LUNDK LUN # LDA RTRK1 ALL TRACKS CPA RTRKC RELEASED? JMP LSRL1 YES - FINISH UP LDB SECT2 NO - GET SYSTEM DISK SECTORS ALF,ALF LUN TO LOW A SLA SYSTEM DISC? INB NO - B1760 IS LOC OF AUX DISC ALF,ALF RESET A LDB BREG,I GET # OF SECTORS/TRACK ADB M1 ADD -1 TO GET LAST SECTOR JSB %RDSC READ LAST SECTOR OF TRACK STA RTRK1 PUT NEXT TRACK IN RTRK1 JMP LSREL+1 AND RELEASE IT. SPC 1 * CLEAR LS TRACK BASE PAGE WORD SPC 1 LSRL1 CLA STA RTRK1 ZERO 1ST~8 TRACK # JSB SETLS CLEAR BASE PAGE LS WORD & JMP LSREL,I RETURN HED ** RTE EDITOR MLINE SUBROUTINE ** JDR * SUBROUNTINE TO DETERMINE IF THE LAST LINE IS >= * TO THE 1ST LINE NUMBER SPC 1 * CALL SEQUENCE * 1ST LINE # IN WL11 & WL21 * LAST LINE # IN LAST1 & LAST2 * JSB MLINE * RETURN IF LAST >= 1ST ELSE GO TO BAD DIRECTIVE BRANCH SPC 1 MLINE NOP DLD WL11 GET 1ST LINE # CMA,INA MAKE PART 1 NEGATIVE ADA LAST1 & ADD IT TO PART 1 OF 1ST SSA 1ST < LAST? JMP .D8 NO - BAD DIRECTIVE SZA ARE 1ST PART EQUAL? JMP *+5 NO - 1ST < LAST RETURN CMB,INB MAKE 2ND PART OF 1ST NEGATIVE ADB LAST2 ADD TO 2ND PART OF 1ST SSB 1ST < LAST? JMP .D8 NO - BAD DIRECTIVE JMP MLINE,I & RETURN HED ** RTE EDITOR OUT SUBROUTINE ** JDR * SUBROUTE TO OUTPUT NWDS VIA AN EXEC CALL SPC 1 * CALLING SEQUENCE * A = BUFFER ADDRESS * B = LOGICAL UNIT NUMBER * JSB OUT * RETURN SPC 1 OUT NOP STA *+6 PUT BUFFER AND STB *+4 LUN ADDRESSES IN CALL JSB EXEC MAKE DEF *+5 OUTPUT DEF D2 REQUEST NOP TO NOP EXEC DEF NWDS FOR NWDS OUT JMP OUT,I RETURN HED ** RTE EDITOR POSNT SUBROUTINE ** JDR * SUBROUTINE TO POSITION AN INPUT LOGICAL UNIT OR FMP FILE * FORWARD X RECORDS. SPC 1 * CALLING SEQUENCE * A = RECORD NUMBER OF FIRST RECORD TO BE READ * JSB POSIT * RETURN - NORMAL * IF EOF OR READ ERROR RETURN IS TO NEW COMMAND DIRECTIVE AFTER * THE APPROPRIATE DIAGNOSTIC MESSAGE HAS BEEN PRINTED. SPC 1 POSIT NOP CMA,INA MAKE RECORD NUMBER NEGATIVE & INA INCREMENT BY ONE SSA,RSS ARE THERE ANY RECORDS TO SKIP? JMP POSIT,I NO, RETURN STA CNTR1 YES - SET UP A COUNTER SPC 1 * POSITION INPUT SPC 1 P01 LDA LFMP MAKE CALL LDB LDCB TO READL JSB READL TO READ DEF LFILE ONE DEF WBUF5 RECORD LDA IERR WAS THERE SZA A FMP ERROR JMP .D2 YES - GET NEW DIRECTIVE LDA NWDS NO - END OF SSA FILE ENCOUNTERED? JMP P02 YES - PRINT ERROR MESSAGE ISZ CNTR1 INCREMENT COUNTER - DONE? JMP P01 NO - SPACE FORWARD ANOTHER ONE JMP POSIT,I YES - RETURN SPC 1 * EOF ENCOUNTERED DURING POSITION - OUTPUT ERROR MESSAGE * AND RETURN FOR NEW DIRECTIVE SPC 1 P02 LDA D8 PRINT EOF ON INPUT LDB TTY ERROR MESSAGE JSB PRINT AND JMP .D2 FETCH NEW DIRECTIVE HED ** RTE EDITOR READL SUBROUTINE ** JDR * SUBROUTINE TO INPUT A LINE AND TRANSFER IT TO A SPECIFIED * BUFFER. SPC 1 * CALLING SEQUENCE: * A = FMP FLAG * B = FMP DCB ADDRESS * JSB READL * DEF FMP FILE NAME * DEF BUFFER ADDRESS * RETURN - IERR NEGATIVE IF ERROR ON FMP READ * NWDS = WORDS READ OR -1 IF EOF ENCOUNTERED SPC 1 READL NOP STB REDF1 STORE DCB ADDRESS IN FMP CALL LDB READL,I GET FMP FILE NAME STB REDF3 & STORE IN FMP ERROR CHECK CALL ISZ READL GET BUFFER ADDRESS LDB READL,I AND STORE IN STB READ1 INPUT STB READ4 ROUTINES & STB REDF2 FMP CALL ISZ READL INDEX TO RETURN ADDRESS SZA INPUT FROM LUN OR FMP? JMP REDF FMP - GO MAKE FMP CALL STA IERR LUN - CLEAR ERROR FLAG LDA LNLU GET LUN CPA D2 SOURCE ON LS TRACKS? RSS YES - USE %READ JMP RKYBD YES - INPUT VIA EXEC CALL JSB %READ NO - USE % READ DEF *+5 RETURN ADDRESS DEF LNLU LOGICAL UNIT READ1 NOP BUFFER ADDR׹ESS DEF M80 MAXIUM 80 CHARACTERS JMP READ3 EOF RETURN POINT STA RTRKC UPDATE CURRENT TRACK FOR AN LS JMP READ5 CONVERT CHARACTERS TO WORDS READ3 CCB YES - SET STB NWDS NWDS TO -1 JMP READL,I & RETURN SPC 1 * LUN DEVICE INPUT SPC 1 RKYBD JSB EXEC USE EXEC DEF *+5 INPUT CALL DEF D1 TO INPUT DEF LNLU FROM READ4 NOP LUN DEF M80 DEVICE SZB,RSS ZERO TRANSMISSION LENGTH? JMP READ3 YES - EXIT WITH NWDS = -1 AND B40 NO - SZA END OF TAPE BIT SET? JMP READ3 YES - EXIT WITH NWDS = -1 JMP READ5 NO - CONVERT CHARS TO WORDS SPC 1 * FMP FILE INPUT SPC 1 REDF JSB READF FMP CALL DEF *+6 RETURN ADDRESS REDF1 NOP DCB ADDRESS DEF IERR ERROR RETURN REDF2 NOP BUFFER ADDRESS DEF D40 MAX 40 WORDS DEF NWDS NUMBER OF WORDS READ JSB IFMGR CHECK DEF *+5 ERROR DEF IERR CODE DEF D11 & PRINT DEF TTY IF THERE REDF3 NOP WAS A ERROR SSA ANY ERRORS? JMP READ3 YES - SET NWDS = - 1 & RETURN LDA NWDS NO - EOF SSA ENCOUNTERED? JMP READL,I YES - RETURN JMP READ6 NO - FILL REST OF BUFFER WITH -1 SPC 1 * CONVERT CHARACTERS TO WORDS SPC 1 READ5 SLB IF CHAR COUNT IS INB ODD, ADD 1 BRS DIVIDE BY 2 STB NWDS AND SAVE WORD COUNT SPC 1 * FILL REMAINDER OF BUFFER WITH -1'S SPC 1 READ6 LDA NWDS SET UP ADA READ1 A POINTER STA PNTR1 TO THE BUFFER CCB -1 TO B LDA NWDS GET NEGATE OF REMAING ADA M40 BUFFER WORD COUNT SSA,RSS ZERO OR POSITIVE JMP READ7 YES - HCHECK FOR SLASH OPTION STB PNTR1,I NO - STORE A -1 IN THE BUFFER ISZ PNTR1 INDEX BUFFER POINTER INA INCREMENT A JMP *-5 LOOP SPC 1 * CHECK FOR SLASH OPTION SPC 1 READ7 LDA SLASH SLASH OPTION SZA,RSS FLAG SET? JMP READL,I NO - RETURN LDA READ1,I YES - GET 1ST WORD OF BUFFER CPA / IS IT A SLASH? JMP READ3 YES - SET EOF CPA !/ NO - IS IT A !/ ? LDA / YES - GET A /SPACE STA READ1,I PUT CHARACTER INTO BUFFER JMP READL,I & RETURN HED ** RTE EDITOR REDWF SUBROUTINE ** JDR * SUBROUTINE TO READ A RECORD FROM THE EDITOR WORK * FILE INTO THE WORK BUFFER, WBUF. SPC 1 * CALL SEQUENCE * A = RECORD NUMBER TO BE READ * JSB REDWF * RETURN A = FMP READ STATUS SPC 1 REDWF NOP STA RCORD SAVE RECORD NUMBER JSB READF MAKE DEF *+7 CALL DEF WDCB1 TO DEF IERR FMP DEF WBUF1 READF DEF D44 TO DEF LEN READ DEF RCORD RECORD JSB IFMGR MAKE DEF *+5 CALL DEF IERR TO DEF D11 IFMGR DEF TTY TO CHECK DEF WFILE+1 FOR READ ERRORS JMP REDWF,I RETURN HED ** RTE EDITOR SCANR SUBROUTINE ** JDR * SCANR SCANS THE INPUT FOR A STRING OF CHARACTERS CONTAINED * BETWEEN TWO DELIMITERS, THE STRING IS CHECK FOR A LINE NUMBER, * FILE NAME OR A CHARACTER STRING. SPC 1 * CALL SEQUENCE * LINE TO BE SCANNED IN CBUF * NCHAR = STARTING CHARACTER POSITION OF SCAN * JSB SCANR * RETURN * A. TYPE = 1 - NUMBER ENCOUNTERED * 1. CONTENTS OF CBUF UNCHANGED * 2. TBUF(1) = 1ST PART OF LINE NUMBER OR LINE * INCREMENT * 3. TBUF(2) = 2ND PART OF LINE NUMBER * 4. NCHAR = POSITION OF CURRENT DELIMITER * B. TYPE = 0 - END OF LINE * 1. CONTHFBENTS OF CBUF UNCHANGED * 2. TBUF'S 1ST THREE WORDS FILLED WITH SPACES * 3. NCHAR MEANINGLESS * C. TYPE = -1 & NCHAR > 0 - FILE NAME ENCOUNTERED * 1. CONTENTS OF CBUF UNCHANGED * 2. TBUF CONTAINS FILE NAME IN 1ST THREE WORDS * 3. NCHAR = POSITION OF CURRENT DELIMITER * D. TYPE < 0 & NCHAR < 0 - CHARACTER STRINGS FOUND * 1.LBUF = UNPACKED NEW STRING * 2.TBUF = UNPACKED OLD STRING * 3.CBUF UNCHANGED * 4.TYPE = NUMBER OF CHARACTERS IN OLD STRING * 5.NCHAR = NUMBER OF CHARACTERS IN NEW STRING 5H u 22664-80005 A SC 0122 RTE CONVERSATIONAL SUPER EDITOR             H0101 M* * IERR = 0 NO ERROR * IERR = 1 ERROR ENCOUNTERED IN COMMAND LINE SPC 1 SCANR NOP LDA M40 SET UP A STA CNTR1 -40 COUNTER LDA TBUFD PUT TBUF'S STA PNTR1 ADDRESS IN POINTER1 LDB SPACE ASCII SPACE SPACE TO B STB PNTR1,I FILL ISZ PNTR1 TBUF ISZ CNTR1 WITH JMP *-3 40 SPACES SPC 1 * CALCULATE CURRENT WORD POSITION SAVE SPC 1 LDA NCHAR GET CHARACTER POSITION ADA M1 SUBTRACT 1 ARS AND DIVIDE BY 2 ADA CBUFD ADD CBUF ADDRESS STA PNTR1 AND SAVE AS POINTER 1 SPC 1 * CLEAR ALL FLAGS AND SET MAXIUM SCAN COUNTER SPC 1 CLA CLEAR THE STA TYPE TYPE, STA IERR ERROR STA DFLAG DELIMITER STA PART2 LINE # 2 AND STA CFLAG CHARACTER IN FLAGS LDA M81 MAX. CHARS/LINE = -80 ADA NCHAR ADA CURRENT CHARACTER POSITION STA MAXCH AND SAVE AS MAXIUM SCAN COUNTER LDA TBUFD SET OUTPUT STA PNTR2 POINTERS STA PNTR3 TO TBUF SPC 1 * START SCAN - NOTE: 1ST CHARACTER MUST BE A DELIMITER SPC 1 SR1 JSB CHAR GET A CHARACTER IN A CPA QUOTE IS IT A QUOTE? JMP SR2 YES - DELIMITER OR CHAR. STRING? CPA APSTP IS IT A ' ? JMP SR2 YES - DELIMITER OR CHAR. STRING? CPA SSPAC IS IT A SPACE JMP SR3 YES - DELIMITER FOUND CPA COMMA IS IT A COMMA? JMP SR3 YES - DELIMITER FOUND CPA B177 END OF LINE? JMP SR3 YES - PROCESS AS DELIMITER CPA DASH IS IT A DASH? JMP SR5 YES - SECOND PART OF A LINE # LDB DFLAG IS DELIMITER SZB,RSS FLAG SET? JMP SR12 NO - ERROR JSB PCHAR YES - PACK CHARACTER JMP SR1 GET NEXT CHARACTER SR2 LDB CFLAG ANY SZB CHARACTERS JMP SR4 YES - PROCESS THEM JMP SR6 NO - PROCESS CHARACTER STRINGS SPC 1 * ROUTINE TO FETCH A CHARACTER FROM CBUF SPC 1 CHAR NOP ISZ MAXCH ANYMORE CHARACTERS? RSS YES - GET IT JMP SR12 NO - ERROR LDA PNTR1,I GET WORD FROM CBUF LDB NCHAR IS CHARACTER SLB IN HIGH HALF? ALF,ALF YES - ROTATE TO LOW AND B177 MASK OFF HIGH HALF OF WORD SLB,RSS IF CHAR WAS IN LOW, ISZ PNTR1 UPDATE CBUF POINTER ISZ NCHAR INCREMENT CHARACTER POSITION JMP CHAR,I RETURN WITH CHARACTER IN A SPC 1 * ROUTINE TO PACK A CHARACTER IN TBUF SPC 1 PCHAR NOP STA TEMP SAVE CHARACTER TO BE PACKED LDA PNTR2,I GET WORD FROM TBUF LDB CFLAG GET CHARACTER FLAG SLB,RSS DO WE PUT CHAR IN HIGH? ALF,ALF YES - ROTATE WORD AND HIGH SAVE HIGH CONTENTS AND IOR TEMP OR IN CURRENT CHARACTER SLB,RSS IF THIS IS A HIGH WORD CHARACTER ALF,ALF ROTATE WORD TO ORGINAL POSITION STA PNTR2,I PUT WORD BACK INTO TBUF SLB THIS LOCATION FILLED? ISZ PNTR2 YES - UPDATE POINTER ISZ CFLAG INCREMENT CHARACTER FLAG JMP PCHAR,I RETURN SPC 1 * PROCESS DELIMITER SPC 1 SR3 LDB DFLAG IS THE DE- SZB LIMITER FLAG SET? JMP SR4 YES - MUST BE 2ND DELIMITER CPA B177 NO - END OF LINE? JMP SR13 YES - SET END OF LINE FLAG ISZ DFLAG NO - SET FLAG AND JMP SR1 GET NEXT CHARACTER SPC 1 * PROCESS LINE NUMBER OR FILE NAME SPC 1 SR4 LDB CFLAG ANY SZB CHARACTERS? JMP *+4 YES - PROCESS THEM CPA B177 NO - END OF LINE? JMP SR13 YES - SET EOL FLAG JMP SR1 NO - GET NEXT CHARACTER LDA PNTR3 GET ADDRESS OF TBUF JSB NUM? SEE IF IT IS A NUMBER LDA NERR GET NUMBER CONVERSION ERR RETURN SZA,RSS ERROR? INA NO - SET TYPE = 1 STA TYPE UPDATE SCAN TYPE ISZ PNTR3 INDEX TBUF POINTER CLB SET B = 0 SSA,RSS IF NOT A FILE NAME, SET NXT WORD STB PNTR3,I IN TBUF = 0 LDB PART2 ARE WE PROCESSING SZB,RSS A TWO PART LINE NUMBER? JMP SR11 NO - EXIT SSA YES - THEN WE MUST HAVE A NUMB JMP SR12 NOT A NUMBER - ERROR JMP SR11 A NUMBER EXIT SPC 1 * PROCESS A TWO PART LINE NUMBER SPC 1 SR5 LDA TBUFD GET ADDRESS OF 1ST ASCII STRING JSB NUM? CONVERT IT TO AN INTEGER LDA NERR WAS THERE SZA AN ERROR? JMP SR12 YES - ERROR EXIT ISZ PNTR3 NO - INDEX TBUF POINTER LDA M3 SET UP A STA CNTR1 -3 COUNTER LDA PNTR3 GET NEW ADDRESS STA PNTR2 OF TBUF LDB SPACE ASCII SPACE-SPACE TO B STB AREG,I FILL THE INA NEXT THREE ISZ CNTR1 LOCATIONS WITH JMP *-3 SPACES ISZ PART2 SET PART TWO FLAG CLA RESET CHARACTER STA CFLAG FLAG JMP SR1 GET PART TWO OF LINE NUMBER SPC 1 * CHARACTER STRING PROCESSING SECTION SPC 1 SR6 STA CDLIM SAVE CHARACTER STRING DELIMITER LDA TBUFD SET POINTER TO STORE OLD STRING STA PNTR2 IN TBUF CLA ZERO STA CNTR1 CNTR1 JSB GETUM GET 1ST (OLD) STRING LDA CNTR1 GET OLD STRING COUNT, CMA,INA MAKE IT NEGATIVE STA TYPE AND STORE IN TYPE ISZ PART2 SET FLAG TO INDICATE NEW STRING LDA LBUFD SET POINTER STA PNTR2 TO LBUF CLA ZERO STA CNTR1 CNTR1 STA DFLAG & DELIMITER FLAG JSB GETUM GET 2ND (NEW) STRING - LDA CNTR1 GET CHARACTER CMA,INA COUNT, MAKE IT NEGATIVE STA NCHAR AND STORE IN NCHAR CLA CLEAR THE STA IERR ERROR FLAG JMP SCANR,I & RETURN SPC 1 * CHARACTER STRING SCANNER SPC 1 GETUM NOP SR7 JSB CHAR GET A CHARACTER FROM CBUF CPA B177 END OF LINE JMP SR12 YES - ERROR CPA CDLIM IS IT A CHARACTER STRING DELIMIT? JMP SR8 YES - CHECK TO SEE WHERE WE ARE STA PNTR2,I NO - PUT CHARACTER IN BUFFER ISZ CNTR1 INCREMENT CHARACTER COUNTER ISZ PNTR2 AND BUFFER POINTER JMP SR7 GET NEXT CHARACTER SR8 LDA PART2 IS THIS SZA THE OLD STRING? JMP SR9 NO - MUST BE NEW LDA CNTR1 YES - GET CHARACTER COUNT SZA ANY CHARACTERS JMP GETUM,I YES - RETURN JMP SR12 NO - ERROR SR9 LDA DFLAG IS THIS THE START SZA OF THE NEW STRING? JMP GETUM,I NO - THE END - RETURN ISZ DFLAG YES - SET THE DELIMIT FLAG LDA CNTR1 GET CURRENT CHAR COUNT CMA,INA AND RESET ADA PNTR2 THE BUFFER STA PNTR2 POINTER CLA ZERO STA CNTR1 CNTR1 JMP SR7 GET THE NEW STRING SPC 1 * CALL TO CONVERT AN ASCII STRING TO AN INTEGER SPC 1 NUM? NOP STA SR10 PUT BUFFER ADDRESS IN CALL JSB NUM MAKE DEF *+3 CALL SR10 NOP TO DEF NERR NUM JMP NUM?,I RETURN SPC 1 * ERROR AND NORMAL EXIT RETURN SPC 1 SR11 CLA,RSS IERR = 0, NO ERROR SR12 CLA,INA IERR = 1, ERROR STA IERR SAVE ERROR STATUS CCA DECREMENT ADA NCHAR CHARACTER STA NCHAR POINTER JMP SCANR,I RETURN SPC 1 * END OF LINE EXIT SPC 1 SR13 CLA SET TYPE STA TYPE & IERR JMP SR12+1 = 0$ HED ** RTE EDITOR SETLS SUBROUTINE ** JDR * SUBROUTINE TO SET THE BASE PAGE LS TRACK WORD ** JDR SPC 1 * CALL SEQUENCE * TRACK & LUN IN RTRK1 * JSB SETLS * RETURN SPC 1 SETLS NOP JSB $LIBR TURN MEMORY NOP PROTECT OFF LDA RTRK1 GET LUN-TRACK LSL 7 REFORMAT IT AND STA SFCUN STORE IN BASE PAGE JSB $LIBX TURN MEMORY DEF SETLS PROTECT ON HED ** RTE EDITOR WFIND SUBROUTINE ** JDR * SUBROUTINE TO FIND A SPECIFIED LINE NUMBER IN THE EDITOR * WORK FILE AND TO UPDATE THE WORK FILE POINTERS IN THE * WL-- ARRAY. SPC 1 * CALL SEQUENCE * SET WL11 & WL21 EQUAL TO THE LINE NUMBER TO BE LOCATED * JSB WFIND * RETURN (NORMAL) - LINE IN WBUF BUFFER * A = 0 - REQUESTED LINE FOUND * A = 1 - REQUESTED LINE NOT FOUND - CLOSET LOWER LINE * NUMBER IN WBUF & POINTERS IN ARRAY WL-- * RETURN - ERROR * PRINT ERROR MESSAGE & THEN REQUEST NEW DIRECTIVE SPC 1 WFIND NOP SPC 1 * IF REQUEST IS TO LAST LINE & FILE IS EMPTY RETURN SPC 1 LDA WL11 REQUEST ADA WL21 TO LAST ADA WLAST LINE IN AN SZA,RSS EMPTY FILE? JMP WFIND,I YES - RETURN LDA WLAST NO - IS THE SZA FILE EMPTY? JMP WF1 NO - CONTINUE WF0 LDA D6 YES - OUTPUT LDB TTY ERROR JSB PRINT MESSAGE & JMP D2 FETCH NEW DIRECTIVE SPC 1 * INITIALIZE THE RECORD POINTER SPC 1 WF1 CLA CLEAR THE STA LINE LINE FOUND FLAG DLD WL11 GET THE REQUESTED LINE CPA WL15 IS RSS IT JMP WF2 THE CPB WL25 LAST RSS LINE JMP WF2 ? LDA WL45 YES - POSITION JMP WF40 THE FILE WF2 CMA,INA NO - IS 1ST PART > LAST e ADA WBUF1 LINE SSA ACCESSED? JMP WF3 YES - START AT CURRENT LINE SZA MAYBE - ARE 1ST PARTS EQUAL? JMP WF2.0 NO - START AT 1ST LINE CMB,INB YES - IS 2ND PART > LAST ADB WBUF2 LINE SSB ACCESSED? JMP WF3 YES - START AT CURRENT LINE SZB,RSS NO - EQUAL? JMP WF3 YES - START AT -1 CURRENT LINE WF2.0 LDA WL34 1ST LINE RECORD NUMBER RSS SKIP WF3 LDA WBUF3 CURRENT LINE RECORD NUMBER SPC 1 * FIND THE SPECIFIED LINE NUMBER SPC 1 WF40 JSB REDWF READ A LINE FROM THE WORK FILE SSA ANY READ ERRORS? JMP WF90 YES - TAKE FMP ERROR MESS. EXIT DLD WBUF1 NO - CPA WL11 IS RSS THIS THE JMP *+3 REQUESTED CPB WL21 LINE? JMP WF80 YES - UPDATE THE POINTERS CPA WL15 NO - IS THIS RSS THE LAST JMP *+3 LINE IN THE CPB WL25 WORK FILE? JMP WF90 YES - TAKE FMP ERROR MESS. EXIT CMA,INA NO - ADA WL11 1ST PART OF LINE NUMBER GREATER SSA THAN REQUESTED LINE? JMP WF44 YES - WE PASSED THE LINE SZA NO - IS IT EQUAL? JMP WF42 NO - READ NEXT LINE CMB,INB YES - COMPARE SECOND PARTS ADB WL21 IS 2ND PART OF LINE NUMBER SSB GREATER THAN REQUESTED LINE? JMP WF44 YES - WE PASSED THE LINE WF42 LDA WBUF4 NO - GET NEXT LINE RECORD POINT JMP WF40 ER & READ THE LINE. SPC 1 * PASSED THE LINE - SET WLX,2 POINTERS AND BACKUP 1 LINE SPC 1 WF44 ISZ LINE SET THE LINE INDICATOR FLAG WF45 DLD WBUF1 UPDATE DST WL12 "LINE FOLLOWING" DLD WBUF3 LINE DST WL32 POINTERS LDA WBUF3 GET THE JSB REDWF PREVIOUS LINE AGAIN mSSA ANYREAD ERRORS JMP WF90 YES - TAKE FMP ERROR MESS. EXIT DLD WBUF1 NO - UPDATE DST WL11 THE CURRENT DLD WBUF3 LINE DST WL31 POINTERS LDA LINE GET THE FOUND LINE STATUS JMP WFIND,I & RETURN SPC 1 * EXACT LINE FOUND - IS THIS THE LAST LINE IN THE WORK FILE? SPC 1 WF80 DLD WBUF1 IS THIS CPA WL15 THE RSS LAST LINE JMP *+3 IN THE CPB WL25 WORK JMP WF85 FILE LDA WBUF4 NO - GET THE NEXT JSB REDWF LINE SSA ANY READ ERRORS? JMP WF90 YES - TAKE FMP ERROR EXIT JMP WF45 NO - UPDATE THE POINTERS SPC 1 * LAST LINE - UPDATE CURRENT LINE POINTERS & ZERO NEXT LINE POINTERS SPC 1 WF85 DLD WBUF3 UPDATE THE CURRENT DST WL31 LINE POINTERS CLA ZERO CLB THE DST WL12 NEXT LINE DST WL32 POINTERS JMP WFIND,I RETURN SPC 1 * FMP REAR ERROR IN WORK FILE EXIT SPC 1 WF90 LDA D7 OUTPUT LDB TTY ERROR JSB PRINT MESSAGE JMP .D2 FETCH NEXT DIRECTIVE HED ** RTE EDITOR WRIWF SUBROUTE ** * SUBROUTINE TO WRITE THE WBUF BUFFER INTO THE EDITOR WORK FILE SPC 1 * CALL SEQUENCE * A = RECORD NUMBER TO BE WRITTEN * JSB WRIWF * RETURN - A = WRITE ERROR STATUS SPC 1 WRIWF NOP STA RCORD SAVE RECORD NUMBER JSB WRITF MAKE DEF *+6 CALL DEF WDCB1 TO DEF IERR WRITF DEF WBUF1 TO DEF D44 WRITE DEF RCORD WBUF JSB IFMGR MAKE DEF *+5 CALL DEF IERR TO DEF D13 IFMGR DEF TTY TO REPORT DEF WFILE+1 ANY ERRORS JMP WRIWF,I RETURN HED ** RTE EDITOR YESNO SUBROUTINE ** JDR * SUBROUTINEd= TO INPUT A YES OR NO REPLY SPC 1 * CALL SEQUENCE * JSB YESNO * P+1 RETURN IF REPLY IS NO * P+2 RETURN IF REPLY IS YES SPC 1 YESNO NOP JSB EXEC CALL DEF *+5 EXEC DEF D1 TO DEF TTY INPUT DEF IERR 1 DEF D1 WORD LDA IERR GET REPLY CPA NO IS IT A NO? JMP YESNO,I YES - RETURN CPA YES IS IT A YES? JMP *+5 YES - EXIT P+2 LDA D14 NO - LDB TTY OUTPUT ANSWER MUST JSB PRINT BE A YES OR NO MESSAGE JMP YESNO+1 INPUT REPLY AGAIN ISZ YESNO INCREMENT TO P+2 JMP YESNO,I & RETURN HED ** RTE EDITOR CONSTANTS & STORAGE ALLOCATION ** JDR AREG EQU 0 A REGISTER BREG EQU 1 B REGISTER SFCUN EQU 1767B BASE PAGE LS TRACK POINTER SPC 1 .! DEF *+1 ASC 1,! / ASC 1,/ /A ASC 1,/A /C ASC 1,/C /D ASC 1,/D /E ASC 1,/E /G ASC 1,/G /I ASC 1,/I /L ASC 1,/L /M ASC 1,/M /N ASC 1,/N /O ASC 1,/O /R ASC 1,/R /S ASC 1,/S !/ ASC 1,!/ SPC 1 APSTP OCT 47 SPC 1 B40 OCT 40 B55 OCT 55 B60 OCT 60 B177 OCT 177 B377 OCT 377 B1000 OCT 1000 BLOK DEF *+1 BLOCK NOP NUMBER OF BLOCKS TO RELEASE SPC 1 CBUFD DEF *+1 CBUF BSS 80 COMMAND LINE BUFFER CDCB DEF *+1 BSS 144 COMMAND FMP DCB CDLIM NOP CURRENT STRING DELIMITER CFILD DEF CFILE CFILE BSS 3 COMMAND FMP FILE NAME CFLAG NOP SCAN CHARACTER FLAG CFMP NOP COMMANDS IN FMP FILE FLAG CLINE DEC 1 COMMAND LINE NUMBER COUNTER CMND OCT 401 COMMAND INPUT LOGICAL UNIT # CNTR1 DEC -3 GENERAL CNTR2 NOP UTILITY CNTR3 NOP COUNTERS COMMA OCT 54 ASCII COMMA SPC 1 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D5 DEC 5 D6 DEC 6 D7 DEC 7 D8 DEC 8 D9 DEC 9 D10 DEC 10 &D11 DEC 11 D12 DEC 12 D13 DEC 13 D14 DEC 14 D15 DEC 15 D16 DEC 16 D17 DEC 17 D18 DEC 18 D19 DEC 19 D20 DEC 20 D21 DEC 21 D22 DEC 22 D24 DEC 24 D40 DEC 40 D44 DEC 44 D80 DEC 80 D100 DEC 100 D10K DEC 10000 DASH OCT 55 ASCII DASH DFLAG NOP SCAN DELIMITER FLAG SPC 1 ECHO OCT 400 EOF1 NOP END OF FILE/ END SPC 1 FIRST NOP NEW 1ST LINE FLAG FLAG NOP UTILITY FLAG SPC 1 HIGH OCT 177400 HIGH WORD MASK SPC 1 IERR NOP UTILITY ERROR WORD ISERT NOP INSERT LINE INCREMENY SPC 1 KYBD DEC 1 KYBD INPUT ECHO FLAG KYBDS DEF *+1 DEC 1,0 LIST OF KYBD DEVICES IN SYSTEM SPC 1 LAST NOP NEW LAST LINE FLAG LAST1 NOP LAST LINE NUMBER OF WORK FILE TO LAST2 NOP BE INCLUDED IN CURRENT OPERATION LBUFD DEF LBUF LBUF BSS 80 LINE INPUT BUFFER LDCB DEF *+1 LDCB1 BSS 144 LINE FMP WDCB LEGAL DEC 1,2,4,6,0 LEGAL OUTPUT DEVICES LEN NOP FMP READF RETURN READ COUNT LINE NOP FOUND LINE FLAG LINES NOP INPUT LINE COUNT LFILD DEF LFILE LFILE BSS 3 LINE INPUT FMP FILE NAME LFIL4 OCT 20137 SPACE BACKARROW LFMP NOP LINE INPUT FROM FMP FILE FLAG LINK DEF LDCB1 POINTER TO LDCB LKYBD NOP LINE INPUT KYBD ECHO FLAG LNLU NOP LNLUD DEF LNLU LNUM NOP LUNDK NOP LS TRACK LUN SPC 1 M1 DEC -1 M2 DEC -2 M3 DEC -3 M5 DEC -5 M6 DEC -6 M10 DEC -10 M20 DEC -20 M40 DEC -40 M80 DEC -80 M81 DEC -81 M134 DEC -134 M10K DEC -10000 MAXCH NOP SCAN MAXIUM CHARACTER COUNTER MLENG DEC 36 MAX LIST WORD OUTPUT COUNT SPC 1 NCHAR NOP COMMAND LINE CHARACTER POINTER NERR NOP NUM ERROR RETURN NWDS NOP INPUT CHAR/WORD COUNT NO ASC 1,NO SPC 1 PAGE OCT 1106 LIST OUTPUT DEVICE PAGE COMMAND PART2 NOP SCAN LINE # PART 2 FLAG PLUS ASC 1,+ PNTR1 NOP UTILITY PNTR2 NOP BUFFER PNTR3 NOP POINTERS SPC 1 QUOTE OCT 42 ASCII QUOTE SPC 1 RCORD NOP CURRENT WORK FILE RECORD NUMBER RFLAG NOP REPLACE OPERATION FLAG RTRK1 NOP 1ST LS TRACK RTRKC NOP CURRENT LS TRACK SPC 1 SAVED DEC 1 WORK FILE SAVED FLAG SECT2 OCT 1757 NUMBER OF SECTORS ON SYSTEM DISC SLASH NOP SLASH OPTION FLAG SLINE NOP STARTING INPUT LINE SPACE ASC 1, ASCII DOUBLE SPACE SSPAC OCT 40 ASCII SINGLE SPACE START NOP FIRST INSERT RECORD NUMBER SPC 1 TAK NOP LS TRACK # TBF6D DEF TBUF+5 TBUFD DEF *+1 TBUF BSS 80 TEMPORARY BUFFER TEMP NOP TEMPORARY STORAGE TTYD DEF *+1 TTY OCT 401 OPERATOR KYBD/OUTPUT LOGICALUNIT TYPE NOP SCAN ID SPC 1 * WORK FILE LINE BUFFER WBF5D DEF WBUF5 WBUF1 NOP 1ST PART OF LINE NUMBER WBUF2 NOP 2ND PART OF LINE NUMBER WBUF3 NOP PRECEDING LINE RECORD NUMBER WBUF4 NOP NEXT LINE RECORD NUMBER WBUF5 BSS 40 CHARACTERS IN LINE (MAX 80) WDCB DEF *+1 WDCB1 BSS 144 WORK FILE FMP DCB WFILE DEF *+1 ASC 3,EDITOR WORK FILE FMP NAME WLAST NOP LAST RECORD IN WORK FILE SPC 1 * WORK FILE LINE POINTERS * CURRENT REFERENCED LINE WLDEF DEF WL11 WL11 NOP 1ST PART OF LINE NUMBER WL21 NOP 2ND PART OF LINE NUMBER WL31 NOP PRECEDING LINE RECORD NUMBER WL41 NOP NEXT LINE RECORD NUMBER * LINE FOLLOWING CURRENT REFERENCED LINE WL12 NOP WL22 NOP WL32 NOP WL42 NOP * CURRENT INSERT LINE WL13 NOP WL23 NOP WL33 NOP WL43 NOP * FIRST LINE IN WORK FILE WL14 NOP WL24 NOP WL34 NOP WL44 NOP * LAST LINE IN WORK FILE WL15 NOP WL25 NOP WL35 NOP WL45 NOP SPC 1 YES ASC 1,YE SPC 1 END EDIT B@<80 CHA ASC 4,RACTERS. SPC 1 FMT22 DEC 14 ASC 14,ILLEGAL OUTPUT LOGICAL UNIT! SPC 1 FMT23 DEC 16 ASC 16,COMMAND FILES MUST BE >= TYPE 3 SPC 1 SPC 1 FMT24 DEC 8 ASC 8,LS TRACKS EMPTY! END ASMB,R,B,L HED ** RTE ALPHA/NUMERIC TAPE LABEL GENERATOR ** JDR NAM ALPHA,7 ENT ALPHA EXT .ENTR,EXEC SPC 1 * SUBROUTINE TO PUNCH A LABEL ON A PAPER TAPE SPC 1 * FORTRAN CALL: * CALL ALPHA (IBUFR,LU) * WHERE: * IBUFR = 36 WORD BUFFER CONTAINING THE LABEL * NOTE: UNUSED WORDS MUST = 0 * LU = LOGICAL UNIT OF DEVICE TO PUNCH LABEL SPC 1 PNTR NOP POINTER TO BUFFER DPUN NOP ADDRESS OF PUNCH LOGICAL UNIT _ SPC 1 ALPHA NOP JSB .ENTR GET ADDRESS DEF PNTR OF PARAMETERS SPC 1 * SET UP PUNCH LOGICAL UNIT SPC 1 LDA DPUN,I GET PUNCH LOGICAL UNIT AND IOR PUN1 OR IN PUNCH CONTROL WORD STA PUN SAVE CONFIGURED CONTROL WORD LDA DPUN,I GET PUNCH LOGICAL UNIT AGAIN AND IOR LEAD1 OR IN LEADER CONTROL WORD STA LEADR SAVE CONFIGURED CONTROL WORD SPC 1 * SET UP WORD COUNT SPC 1 LDA PNTR PUT BUFFER ADDRESS STA TEMP1 IN TEMP1 LDA N36 SET UP A MAX WORD STA CHARS COUNT OF -36 CLA SET COUNT TO ZERO S1 LDB TEMP1,I GET A BUFFER WORD SZB,RSS IS IT ZERO? JMP S2 YES - END OF LABEL INA NO - INCREMENT WORD COUNT ISZ TEMP1 & BUFFER POINTER ISZ CHARS END OF BUFFER? JMP S1 NO - CHECCK NEXT WORD S2 ALS DOUBLE WORD COUNT CMA,INA MAKE WORD COUNT NEGATIVE STA WORDS AND SAVE IT SPC 1 * FIND CHARACTER IN TABLE AND PUNCH IT SPC 1 CLB SET CHARACTER POSITION FLAG LOOP STB CHARS RESTORE CHAR POSITION LDA PNTR,I GET A WORD FROM THE BUFFER SLB,RSS CHARACTER IN LOWER OR UPPER HALF? ALF,ALF UPPER ROTATE TO LOWER AND M177 MASK OFF UPPER HALF OF WORD RAL MULTIPLY BY 2 STA TEMP1 SAVE TEMPORARILY RAL MULTIPLY BY 2 AGAIN (A REG = 4X) ADA TEMP1 ADD 1ST RESULT (A REG = 6X) ADA TBORG INITIALIZE ASCII TABLE STA TEMP1 SAVE A REGISTER & ADA MAXCH TEST FOR ILLEGAL CHARACTER. SSA,RSS ILLEGAL CHARACTER? JMP NXTCH YES, TEST NEXT CHARACTER. LDA TEMP1 NO, RESTORE A REGISTER ADA TABLE ADD "TABLE" TO IT AND STA BITS SAVE ADDRESS OF BIT PATTERN JSB SHIFT SHIFT BIT PATTERN LDA .BIT RESET PUNCH OUTPUT STA INDEX POINTER SPC 1 * PUNCH CHARACTER ON TAPE SPC 1 NXTBT JSB EXEC ASK EXEC TO PUNCH 1 WORD DEF *+5 RETURN POINT DEF WCODE WRITE CODE DEF PUN OUTPUT CONTROL WORD INDEX DEF BIT BIT PATTERN ADDRESS DEF N1 BUFFER WORD COUNT SPC 1 * CHECK FOR END OF BIT PATTERN SPC 1 LDB INDEX,I GET BIT PATTERN SZB,RSS ALL BITS PUNCHED? JMP NXTCH YES, CHECK NEXT CHARACTER ISZ INDEX NO, INCREMENT POINTER JMP NXTBT PUNCH NEXT ROW OF BITS SPC 1 * FETCH NEXT CHARACTER SPC 1 NXTCH ISZ WORDS ANYMORE? JMP *+2 YES - CONTINUE JMP PLEAD NO - PUNCH SOME LEADER LDB CHARS GET CHARACTER POSITION FLAG INB INCREMENT FLAG SLB,RSS YES, EVEN OR ODD? ISZ PNTR EVEN - UPDATE BUFFER POINTER JMP LOOP FETCH NEXT CHARACTER SPC 1 * LABEL PUNCHED - GENERATE SOME LEADER SPC 1 PLEAD JSB EXEC ASK EXEC TO PUNCH LEADER DEF *+3 RETURN POINT DEF LCODE LEADER CODE DEF LEADR LEADER CONTROL WORD SPC 1 * RETURN TO CALLING PROGRAM SPC 1 JMP ALPHA,I SPC 1 * BIT SHIFT ROUTINE SPC 1 SHIFT NOP LDB .BIT RESET BUFFER STB BIT. POINTER LDB M6 SET B TO -6 LOOP2 LDA BITS,I GET BIT PATTERN & ALF,RAR ROTATE 3 PLACES LEFT ALF,ALF PUT BIT PATTERN IN HIGH HALF STA BIT.,I STORE IT IN BUFFER ISZ BIT. INCREMENT BUFFER & BIT ISZ BITS PATTERN POINTERS ISZ B DONE SHIFTING? JMP LOOP2 NO, LOOP JMP SHIFT,I YES - PUNCH IT SPC 1 * CONSTANTS & STORAGE ALLOCATION SPC 1 B EQU 1 B REGISTER SPC 1 LEAD1 OCT 1000 LEADER CONTROL WORD PUN1 OCT 2100 PUNCH OUTPUT CONTROL WORD LCODE OCT 3 RTE LEADER CODE WCODE OCT 2 RTE WRITE CODE SPC 1 BITS NOP BIT PATTERN ADDRESS .BIT DEF BIT POINTERS TO BIT BIT. DEF BIT SHIFT BUFFER BIT BSS 6 SPC 1 B3 OCT 370 BITS 0-2 MASK M177 OCT 177 ASCII CHARACTER MASK MAXCH OCT -573 2'S COMPLEMENT OF HIGHEST ADDRESS TBORG OCT -300 CONSTANT TO CSLCULATE ASCII ADDS. SPC 1 M6 DEC -6 N1 DEC -1 N36 DEC -36 SPC 1 CHARS NOP CHARACTER POSITION FLAG TEMP1 NOP TEMPORARY STORAGE WORDS NOP WORD COUNTER PUN NOP CONFIGURED PUNCH CONTROL WORD LEADR NOP CONFIGURED LEADER CONTROL WORD SPC 1 * ALPHA/NUMERIC CHARACTER BIT TABLE SPC 1 TABLE DEF *+1 SUP * B040 OCT 400,4000,400,400,400,0 SPACE * B041 OCT 27,0,0,0,0,0 ! * B042 OCT 4,2,5,2,1,0 " * B043 OCT 12,37,12,37,12,0 # * B044 OCT 26,37,37,15,0,0 $ * B045 OCT 23,13,4,32,31,0 % * B046 OCT 4,14,37,14,4,0 & * B047 OCT 2,1,0,0,0,0 ' * B050 OCT 16,21,0,0,0,0 ( * B051 OCT 21,16,0,0,0,0 ) * B052 OCT 25,16,37,16,25,0 * * B053 OCT 4,4,37,4,4,0 + * B054 OCT 20,10,0,0,0,0 , * B055 OCT 4,4,4,4,0,0 - * B056 OCT 20,0,0,0,0,0 . * B057 OCT 20,10,4,2,1,0 / * B060 OCT 16,31,23,16,0,0 0 * B061 OCT 22,37,20,0,0,0 1 * B062 OCT 22,31,25,22,0,0 2 * B063 OCT 21,25,25,12,0,0 3 * B064 OCT 10,14,12,37,0,0 4 * B065 OCT 27,25,25,11,0,0 5 * B066 OCT 16,25,25,11,0,0 6 * B067 OCT 21,11,5,3,0,0 7 * B070 OCT 12,25,25,12,0,0 8 * B071 OCT 22,25,25,16,0,0 9 * B072 OCT 12,0,0,0,0,0 : * B073 OCT 20,12,0,0,0,0 ; * B074 OCT 4,12,21,0,0,0 < * B075 OCT 12,12,12,12,12,0 = * B076 OCT 21,12,4,0,0,0 > * B077 OCT 1,25,2,0,0,0 ? * B100 OCT 0,0,0,0,0,0 N.A. * B101 OCT 36,11,11,36,0,0 A * B102 OCT 37,25,25,12,0,0 B * B103 OCT 16,21,21,12,0,0 C * B104 OCT 37,21,21,16,0,0 D * B105 OCT 37,25,25,21,0,0 E * B106 OCT 37,5,5,1,0,0 F * B107 OCT 16,21,31,32,0,0 G * B110 OCT 37,4,4,37,0,0 H * B111 OCT 21,37,21,0,0,0 I * B112 OCT 10,20,21,17,1,0 J * B113 OCT 37,10,12,21,0,0 K * B114 OCT 37,20,20,20,0,0 L * B115 OCT 37,2,4,2,37,0 M * B116 OCT 37,2,4,10,37,0 N * B117 OCT 16,21,21,16,0,0 O * B120 OCT 37,5,5,2,0,0 P * B121 OCT 16,21,31,36,0,0 Q * B122 OCT 37,5,15,22,0,0 R * B123 OCT 22,25,25,11,0,0 S * B124 OCT 1,1,37,1,1,0 T * B125 OCT 17,20,20,17,0,0 U * B126 OCT 7,10,20,10,7,0 V * B127 OCT 17,20,16,20,17,0 W * B130 OCT 21,12,4,12,21,0 X * B131 OCT 1,2,34,2,1,0 Y * B132 OCT 21,31,25,23,21,0 Z * B133 OCT 37,21,21,21,0,0 [ * B134 OCT 1,2,4,10,20,0 \ * B135 OCT 21,21,21,37,0,0 ] * B136 OCT 4,2,37,2,4,0 ^ * B137 OCT 4,16,25,4,4,0 _ * SPC 1 END FTN,L,B SUBROUTINE NUM(IBUFR,IERR) C C SUBROUTINE TO CONVERT ASCII NUMERALS TO AN INTEGER C C CALLING SEQUENCE: C C CALL NUM (IBUFR,IERR) C C WHERE: C IBUFR = 3 WORD BUFFER WITH 2 ASCII CHARACTERS PER WORD. C NO LEADING BLANKS C C IERR = ERROR PARAMETER C IERR = 0 CONVERSION WAS DONE C IERR = 1 ILLEGAL CHARACTER ENCOUNTERED OR C NUMBER OUT OF RANGE. C C IF NO ERROR - THE RESULTING INTERGER IS PLACED IN THE 1ST C WORD OF THE BUFFER (IBUFR(1)). C C IF ERROR - THE BUFFER IS NOT CHANGED. C C NOTE: IF 1ST CHARACTER IN IBUFR = A * AND REMAINING CHARACTERS C ARE DIGITS THAN RETURN NUMBER AS A NEGATIVE NUMBER. INTEGER IBUFR(1) C C INITIALIZE VARIABLES C NDGTS = -5 IERR = 0 K = 1 NUMB = 0 C C CHECK FOR A * C IF (IAND(IBUFR(1),77400B) . EQ. 25000B) K = 2 C C START CONVERSION C x J = 1 DO 40 I=K,6 IF (IAND(I,1) .EQ. 0) GO TO 10 NUMX = IAND(IRSHF(IBUFR(J),8),177B) GO TO 15 10 NUMX = IAND(IBUFR(J),177B) J = J + 1 C CHECK FOR A BLANK (SPACE) OR LOWER ASCII CHARACTER 15 IF (NUMX - 40B)60,50,17 C CHECK FOR ASCII NUMBER 17 NUMX = NUMX - 60B IF ((NUMX .GT. 9) .OR. (NUMX .LT. 0)) GO TO 60 NDGTS = NDGTS + 1 IF (NDGTS .NE. 0 ) GO TO 30 IF (NUMB-3276)30,20,60 20 IF (NUMX .GT. 7) GO TO 60 C FORM THE INTEGER BY MULTIPLICATION 30 NUMB = NUMB * 10 + NUMX 40 CONTINUE C C CHECK FOR NEGATIVE NUMBER C 50 IF (K .EQ. 2) NUMB = -NUMB IBUFR(1) = NUMB RETURN C C ERROR C 60 IERR = -1 C END END$ ASMB,R,B,L HED ** FILE MANAGER ERROR PROCESSOR ** JDR NAM IFMGR,7 ENT IFMGR EXT EXEC,.ENTR SPC 1 * THIS FUNCTION CHECKS FOR FILE MANAGER ERRORS. IF THE ERROR * CODE IS < 0, THE ERROR MESSAGE IS PRINTED ON THE LOCAL TTY. * * IF ID IS >= 0, THE ERROR CODE IS RETURNED AS THE FUNCTION * VALUE. * * IF ID IS < 0 AND THE ERROR CODE IS < 0, THEN THE PROGRAM IS * ABORTED. SPC 1 * FORTRAN USEAGE EXAMPLE: * IF (IFMGR (IERR,ID,LTTY,NAME)100,200 SPC 1 * ASSEMBLY CALL SEQUENCE * JSB IFMGR * DEF *+4 * DEF IERR * DEF ID * DEF LTTY * DEF NAME * ON RETURN A = IERR SPC 1 * WHERE: * IERR = ERROR PARAMETER RETURNED FROM FILE MANAGER CALL. * ID = CALL IDENTITY CODE (NEGATIVE TO ABORT IF ERROR EXSISTS) * AS FOLLOWS. * 1 = APOSN * 2 = CLOSE * 3 = CREAT * 4 = FCONT * 5 = FSTAT * 6 = LOCF * 7 = NAMF * 8 = OPEN * 9 = POSNT * 10 = PURGE * 11 = READF * 12 = RWNDF * 13 = WRITF * LTTY = LOGICAL UNIT NUMBER OF DEVICE TO LIST ERROR SPC 2 * PARAMETER ADDRESSES SPC 1 IERR NOP ERROR CODE ID NOP FILE MANAGER CALL ID LTTY NOP LOGICAL UNIT TO OUTPUT ERROR MESS NAME NOP NAME OF FILE FILE MANAGER FILE ADDS. SPC 1 * ENTRY POINT SPC 1 IFMGR NOP JSB .ENTR USE .ENTR TO GET DEF IERR ADDRESSES OF PARAMETERS LDA IERR,I GET ERROR CODE SSA,RSS FILE MANAGER ERROR? JMP IFMGR,I NO, RETURN TO USER SPC 1 * ERROR! CONVERT ERROR TO ASCII AND PUT IT INTO OUTPUT BUFFER SPC 1 MPY M1 MULTIPLY ERROR BY -1 & THEN DIV .10 DIVIDE BY TEN TO GET TENS DIGIT. STA ERROR SAVE TEMPORARILY MPY .10 MULTIPLY BY 10 AND DIVIDE BY DIV .1 1 TO GET TENS VALUE ONLY ADA IERR,I ADD ERROR CODE, RESULT = - UNITS CMA,INA MAKE UNITS POSITIVE LDB ERROR GET TENS DIGIT BLF,BLF ROTATE IT TO HIGH HALF OF WORD IOR B OR IT WITH UNITS IOR ASC00 OR IN ASCII CONSTANT STA ERROR PUT ASCII ERROR CODE IN MESS BUF SPC 1 * ADD CALL ID AND FILE NAME TO BUFFER SPC 1 LDA ID,I GET ID CODE SSA IS IT NEGATIVE? CMA,INA YES - MAKE POSITIVE STA B IS CODE ADB M14 GREATER SSB,RSS THAN 13? CLA YES - OUTPUT $$$$$ FOR ID STA B SAVE ERROR CODE ALS MULTIPLY BY 2 AND ADA B ADD IT TO ITSELF (X3) ADA CALL ADD BUFR STARTING ADDS TO OFFSET LDB EMES SET POINTER TO STB PNTR ID NAME CLB SET FLAG TO INDICATE NAME STB FLAG BUFFER HAS TO BE TRANSFERRED. NFILE LDB M3 SET COUNTER TO STB CNTR TRANSFER 3 WORDS LOOP LDB A,I GET ID WORD & PUT IT STB PNTR,I IN ERROR MESSAGE BUFFER INA INDEX ID AND ISZ PNTR ERROR MESSAGE POINTERS ISZ CNTR TRANSFER COMPLETE? JMP LOOP NO - TRANSFER NEXT WORD LDB 9KFLAG SZB NAME ARRAY TRANSFERRED? JMP OUT YES - OUTPUT MESSAGE ISZ FLAG NO - SET FLAG TO SAY YES LDA NAME GET ADDRESS OF ARRAY IN A LDB NAMEB PUT OUTPUT BUFFER STB PNTR ADDRESS IN B JMP NFILE TRANSFER FILE NAME SPC 1 * OUTPUT ERROR MESSAGE SPC 1 OUT JSB EXEC DEF *+5 DEF WRITE DEF LTTY,I EMES DEF ERMES DEF M32 SPC 1 * CHECK FOR ABORT PROGRAM SPC 1 LDA IERR,I PUT ERROR CODE IN CASE WE RETURN LDB ID,I GET ID CODE SSB,RSS DO WE ABORT? JMP IFMGR,I NO - RETURN SPC 1 * ABORT PROGRAM SPC 1 JSB EXEC WRITE DEF *+5 "PROGRAM ABORTED!" DEF WRITE ON DEF LTTY,I THE DEF ABORT LOCAL DEF M16 TTY JSB EXEC ASK DEF *+2 RTE TO DEF .6 TERMINATE PROGRAM JMP *-3 JUST IN CASE RTE DOES NOT LISTEN SPC 1 * CONSTANTS, STORAGE ALLOCATION, AND MESSAGES SPC 1 A EQU 0 A REGISTER B EQU 1 B REGISTER SPC 1 * CONSTANTS SPC 1 .1 DEC 1 .6 DEC 6 .10 DEC 10 M1 DEC -1 M3 DEC -3 M14 DEC -14 M16 DEC -16 M32 DEC -32 SPC 1 * MISC. CONSTANTS SPC 1 ASC00 ASC 1,00 WRITE DEC 2 SPC 1 * NOP'S SPC 1 CNTR NOP UTILITY COUNTER FLAG NOP ID/NAME TRANSFER FLAG PNTR NOP TRANSFER POINTER TO MESSAGE BUFFR SPC 1 * FILE MANAGER CALLS SPC 1 CALL DEF *+1 SUP 1 SPC 1 ASC 3,$$$$$ ID1 ASC 3,APOSN ID2 ASC 3,CLOSE ID3 ASC 3,CREAT ID4 ASC 3,FCONT ID5 ASC 3,FSTAT ID6 ASC 3,LOCF ID7 ASC 3,NAMF ID8 ASC 3,OPEN ID9 ASC 3,POSNT ID10 ASC 3,PURGE ID11 ASC 3,READF ID12 ASC 3,RWNDF ID13 ASC 3,WRITF SPC 1 * ERROR MESSAGE SPC 1 ERMES BSS 3 ASC 4,ERROR - ERROR NOP cTRN ASC 5, IN FILE NAM. BSS 3 NAMEB DEF NAM. SPC 1 * ABORT PROGRAM MESSAGE SPC 1 ABORT ASC 8,PROGRAM ABORTED! SPC 1 END ASMB,R,L,B,T HED IRSHF *********************************** * * IRSHF * * MODEL NO. 25111D * * P.N. 25111-80029 S.P. 1028 * *********************************** NAM IRSHF,7 * ***** * * IRSHF IS A FORTRAN CALLABLE FUNCTION SUBROUTINE WHICH * WILL SHIFT RIGHT A GIVEN WORD A SPECIFIED NUMBER OF * PLACES. * * FORMAT: J=IRSHF(ARG,N) * * WHERE ARG IS THE NAME OF THE WORD TO BE SHIFTED * AND N IS THE NUMBER OF PLACES TO SHIFT THE WORD. * ***** * ENT IRSHF EXT .ENTR ARG BSS 2 * * IRSHF BSS 1 JSB .ENTR DEF ARG * ***** * * * GET THE NUMBER OF PLACES TO SHIFT THE WORD AND USE * IT AS A COUNTER IN THE B-REGISTER. * ***** * LDB ARG+1,I CMB,INB * ***** * * PICK UP THE WORD TO BE SHIFTED AND BEGIN SHIFTING. * ***** * LDA ARG,I RAR CLE,ERA SHIFT THE BITS. * * INCREMENT THE SHIFT COUNT AND CHECK TO SEE IF * DONE SHIFTING. * INB,SZB * * NOT DONE SO SHIFT AGAIN. * JMP RAR * * RETURN. * JMP IRSHF,I * END zT w 22665-80001 A SC 0322 TCS ORDER PROCESSING DEMONSTRATION             H0103 jFTN4,L,T PROGRAM INIT C-----DEMONSTRATION PROGRAM INITIALIZER DIMENSION IN(34),IBUF(128),IFILE1(3),IFILE2(3),IFILE3(3),IFILE4(3) *,IFILE5(3) DIMENSION K(40) DATA IFILE1 /2HCU,2HST,2H / DATA IFILE2 /2HVE,2HND,2H / DATA IFILE3 /2HPR,2HOD,2H / DATA IFILE4 /2HSP,2HOL,2H / DATA IFILE5 /2HUN,2HIT,2H / IEND = 2H/E ICNT = 0 L = 1 C-----GENERATE PROGRAM NAME CALL CODE WRITE (K,1) 1 FORMAT ("DEMONSTRATION PROGRAM INITIALIZER") CALL EXEC (2,1,K,17) C-----LOAD FILES (CUSTOMER,VENDOR,PRODUCT) CALL CODE WRITE (K,2) 2 FORMAT ("PHASE 1 - FILE INITIALIZATION ") CALL EXEC (2,1,K,15) DO 10 I = 1,128 IBUF(I) = 60B 10 CONTINUE DO 20 I = 1,34 20 IN(I) = 60B C-----LOAD CUSTOMER FILE 30 READ (8,40) (IN(I),I=1,34) 40 FORMAT (I3,30A2,6X,2I5,I1) IF (IN(34) .NE. 1) GO TO 60 DO 50 I = 1,33 50 IBUF(I) = IN(I) ISECT = IN(1) CALL EXEC (15,2,IBUF,128,IFILE1,ISECT) GO TO 30 60 DO 70 I = 1,128 70 IBUF(I) = 60B DO 80 I = 1,34 80 IN(I) = 60B C-----LOAD VENDOR FILE 90 READ (8,100) (IN(I),I=1,33) 100 FORMAT (I3,30A2,I5,11X,I1) IF (IN(33) .NE. 2) GO TO 120 DO 110 I = 1,32 110 IBUF(I) = IN(I) ISECT = IN(1) CALL EXEC (15,2,IBUF,128,IFILE2,ISECT) GO TO 90 120 DO 130 I = 1,128 130 IBUF(I) = 60B DO 140 I = 1,33 140 IN(I) = 60B C-----LOAD PRODUCT FILE 150 READ (8,160) (IN(I),I=1,21) 160 FORMAT (I3,15A2,4I5,26X,I1) IF (IN(21) .NE. 3) GO TO 180 DO 170 I = 1,20 170 IBUF(I) = IN(I) ISECT = IN(1) CALL EXEC (15,2,IBUF,128,IFILE3,ISECT) GO TO 150 C-----INITIALIZE SPOOLING FILE 180 CALL CODE WRITE (K,185) 185 FORMAT ("FILE INITIALIZATION IS NOW TAKING PLACE") CALL EXEC (2,1,K,20) DO 190 I = 1,128 190 IBUF(I) = 0 ISECT = -1 DO 200 J = 1,500 H   ISECT = ISECT + 1 200 CALL EXEC (15,2,IBUF,128,IFILE4,ISECT) CALL CODE WRITE (K,210) 210 FORMAT ("FILES LOADED") CALL EXEC (2,1,K,6) C-----SPECIFY LOGICAL UNITS CALL CODE WRITE (K,220) 220 FORMAT ("PHASE 2 - LOGICAL UNIT SPECIFICATION") CALL EXEC (2,1,K,18) DO 230 J = 1,128 230 IBUF(J) = 0 235 CALL CODE WRITE (K,240) 240 FORMAT ("ENTER LOGICAL UNIT OR /E") CALL EXEC (2,1,K,12) CALL EXEC (1,401B,K,1) IF (K(1) .EQ. IEND) GO TO 250 L = L + 1 CALL CODE READ (K,*) INUM IBUF(L) = INUM ICNT = ICNT + 1 GO TO 235 250 L = 1 IBUF(L) = ICNT ISECT = 0 CALL EXEC (15,2,IBUF,128,IFILE5,ISECT) CALL CODE WRITE (K,260) 260 FORMAT ("LOGICAL UNITS SPECIFIED ") CALL EXEC (2,1,K,12) CALL CODE WRITE (K,270) 270 FORMAT ("INITIALIZATION COMPLETE ") CALL EXEC (2,1,K,12) STOP END END$ 2 FTN4,L,T PROGRAM DEMO(3) C-----TERMINAL CONTROL SYSTEM DEMO PROGRAM COMMON IT(40,25),ID(128,5),IL(40,10),IS(15,12),IX,IA,IB,IC,ISEC COMMON INUM,IUNIT(10) DIMENSION IFI(15) DIMENSION IN(9) DIMENSION IPQ(270),ISD(33) DIMENSION K(40) DATA IFI/2HCU,2HST,2H ,2HVE,2HND,2H ,2HPR,2HOD,2H ,2HSP,2HOL,2H * ,2HUN,2HIT,2H / DATA IN/2HSE,2HG1,2H ,2HSE,2HG2,2H ,2HSE,2HG3,2H / C-----INITIALIZE SPOOL INDEX ISEC = 0 CALL CODE WRITE (K,600) 600 FORMAT ("*************************************************** ") CALL EXEC (2,1,K,26) CALL CODE WRITE (K,610) 610 FORMAT ("* * ") CALL EXEC (2,1,K,26) CALL CODE WRITE (K,300) 300 FORMAT ("* TERMINAL CONTROL SYSTEM DEMONSTRATION PROGRAM * ") CALL EXEC (2,1,K,26) CALL CODE WRITE (K,320) 320 FORMAT ("* VERSION 1 09/18/73 * ") CALL EXEC (2,1,K,26) CALL CODE WRITE (K,610) CALL EXEC (2,1,K,26) CALL CODE WRITE (K,600) CALL EXEC (2,1,K,26) C-----INITIALIZE BUFFER (TERMINAL) CALL BINIT (IT,25,40,1) C-----INITIALIZE BUFFER (DISK) CALL BINIT (ID,5,128,2) C-----INITIALIZE BUFFER (LINE PRINTER) CALL BINIT (IL,10,66,3) C-----INITIALIZE BUFFER (DATA STACKS) CALL BINIT (IS,12,15,4) C-----INITIALIZE TCS CALL TCS (82,IPQ,30,KK,IN,3,ISD) C-----OPEN FILES DO 73 J = 1,5 73 CALL TCS (84,IFI(((J-1)*3)+1),J) C-----OBTAIN LOGICAL UNIT TABLE RECORD CALL GBUF (J,2) CALL TCS (14,3,ID(1,J),128,5,ISEC,I) CALL TCS (79,ISTAT,I,ILU,ILOG) IPTR = ID(1,J) JPTR = 2 DO 510 KK = 1,IPTR IUNIT(KK) = ID(JPTR,J) 510 JPTR = JPTR + 1 CALL PBUF (J,2) C-----OBTAIN TERMINAL BUFFER AND DISPLAY PROMPT CALL GBUF (I,1) CALL CODE WRITE (K,100) 100 FORMAT ("INPUT CODE FOR REQUIRED OPERATION (OE,GR,IN)") DO 10 J = 1,40 IT(J,I) = K(J) IF (J .LT. 23) GO TO 10 IT(J,I) = 20040B 10 CONTINUE ASSIGN 25 TO IRET DO 20 J = 1,IPTR KI = IUNIT(J) 20 CALL TCS (2,20000B+KI,IT(1,I),22,J,IRET) C-----SUSPEND L = 0 CALL TCS (53) C-----TERMINAL STATUS CHECK 25 CALL TCS (79,ISTAT,IP,ILU,ILOG) C-----OBTAIN TERMINAL BUFFER AND REQUEST INPUT L = L+1 IF (L .EQ. 4) GO TO 50 38 CALL GBUF (II,1) IF (II .NE. -1) GO TO 55 C-----PAUSE UNTIL TERMINAL AVAILABLE CALL TCS (1,77B,1,1,ILU) CALL TCS (79,ISTAT,ILU,ILR,ILOG) GO TO 38 C-----TERMINAL AVAILABLE 50 II = I 55 CALL TCS (1,400B+ILU,IT(1,II),40,II) C-----CHECK FOR COMPLETED INPUT AND DETERMINE SEGMENT 91 CALL TCS (79,ISTAT,ILZ,ILU,ILOG) JL = 0 JLA = 2HOE JLB = 2HGR JLC = 2HIN IF (IT(1,ILZ) .EQ. JLA) GO TO 70 IF (IT(1,ILZ) .EQ. JLB) GO TO 71 IF (IT(1,ILZ) .EQ. JLC) GO TO 72 GO TO 74 72 JL = JL+1 71 JL = JL+1 70 JL = JL+1 74 IF (JL .EQ. 0) GO TO 200 C-----OBTAIN DATA STACK AND INSERT INFO REQUIRED BY SEGMENT 90 CALL GBUF (N,4) IS (1,N) = ILZ IS (2,N) = ILU C-----PLACE STACK NUMBER IN COMMON FOR SEGMENT IX = N C-----CALL SEGMENT TO PROCESS TERMINAL REQUESTS CALL TCS (8,JL) 99 CALL TCS (79,ISTAT) IF (ISTAT .NE. 0) GO TO 250 C-----GENERATE TERMINAL PROMPT IST = IS(1,IX) DO 190 J = 1,40 IT(J,IST) = K(J) IF (J .LT. 23) GO TO 190 IT(J,IST) = 20040B 190 CONTINUE C-----RELEASE DATA STACK AND OUTPUT MESSAGE IZ = IS(2,IX) CALL PBUF (IX,4) 195 CALL TCS (2,IZ,IT(1,IST),22,IST) C-----OBTAIN TERMINAL BUFFER AND REQUEST INPUT CALL TCS (79,ISTAT,IST,ILS,ILOG) CALL TCS (1,400B+ILS,IT(1,IST),40,IST) GO TO 91 C-----INVALID OPERATION / RE-PROMPT 200 IST = ILZ IZ = ILU DO 210 J = 1,40 IT(J,IST) = K(nJ) IF (J .LT. 23) GO TO 210 IT(J,IST) = 20040B 210 CONTINUE GO TO 195 C-----SEGMENT MISSING / JOB ABORTED 250 IST = IS(1,IX) CALL CODE WRITE (K,260) 260 FORMAT ("SEGMENT MISSING-JOB ABORTED") DO 270 J = 1,40 IT(J,IST) = K(J) IF (J .LT. 15) GO TO 270 IT(J,IST) = 20040B 270 CONTINUE IZ = IS(2,IX) CALL PBUF(IX,4) CALL TCS (2,IZ,IT(1,IST),14,IST) STOP END PROGRAM SEG1(5) C-----ORDER ENTRY SEGMENT COMMON IT(40,25),ID(128,5),IL(40,10),IS(15,12),IX,IA,IB,IC,ISEC COMMON INUM,IUNIT(10) DIMENSION K(40),IEND(1) DATA IEND/2H/E/ C-----OBTAIN STACK POINTER I = IX C-----FORMAT MESSAGE 913 CALL CODE WRITE (K,100) 100 FORMAT ("INPUT CUSTOMER NUMBER") DO 10 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 12) GO TO 10 IT(J,IS(1,I)) = 20040B 10 CONTINUE C-----OUTPUT MESSAGE AND PASS STACK POINTER TO TCS CALL TCS (2,IS(2,I),IT(1,IS(1,I)),11,I) C-----RESTORE STACK POINTER (REQUEST INITIATED) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----REQUEST CUSTOMER NUMBER AND PASS STACK POINTER TO TCS CALL TCS (1,400B+ILU,IT(1,IS(1,I)),40,I) C-----RESTORE STACK POINTER (REQUEST COMPLETED) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----TEST FOR EXIT CHARACTER (/E) IF (IT(1,IS(1,I)) .NE. IEND) GO TO 973 C-----RETURN TO MAIN PROGRAM IX = I CALL TCS (54) C-----CONVERT TO INTEGER / DISC ADDRESS(CUSTOMER FILE) 973 DO 50 J = 1,3 50 K(J) = IT(J,IS(1,I)) CALL CODE READ (K,*) JC C-----PLACE DISC ADDRESS IN STACK IS(3,I) = JC C-----OBTAIN DISC BUFFER 15 CALL GBUF (J,2) IF (J .NE. -1) GO TO 20 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 15 C-----PLACE BUFFER NUMBER IN STACK 20 IS(5,I) = J C-----REQUEST CUSTOMER RECORD AND PASS STACK POINTER TO TCS CALL TCS (14,3,ID(1,IS(5,I)),128,1,IS(3,I),I) C-----RESTORE STACK POINTER (REQUEST INITIATED) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----RELEASE DISC BUFFER CALL PBUF (IS(5,I),2) C-----CREDIT CHECK IF (ID(33,IS(5,I)) .LT. ID(32,IS(5,I))) GO TO 300 C-----CUSTOMER CANNOT BUY CALL CODE WRITE (K,210) 210 FORMAT ("CUSTOMER CANNOT BUY") DO 220 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 11) GO TO 220 IT(J,IS(1,I)) = 20040B 220 CONTINUE C-----OUTPUT MESSAGE CALL TCS (2,IS(2,I),IT(1,IS(1,I)),10,I) C-----RESTORE STACK POINTER (REQUEST COMPLETED) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 913 C-----CUSTOMER CAN BUY 300 CALL CODE WRITE (K,310) 310 FORMAT ("INPUT PRODUCT NUMBER") DO 320 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 11) GO TO 320 IT(J,IS(1,I)) = 20040B 320 CONTINUE C-----OUTPUT MESSAGE CALL TCS (2,IS(2,I),IT(1,IS(1,I)),10,I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----REQUEST PRODUCT NUMBER CALL TCS (1,400B+IS(2,I),IT(1,IS(1,I)),40,I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----TEST FOR EXIT CHARACTER (/E) IF (IT(1,IS(1,I)) .NE. IEND) GO TO 972 C-----PLACE ORDER ON INVOICE SPOOL DISC FILE / TAPE BACKUP FILE IS(6,I) = IS(2,I) IS(7,I) = IS(3,I) IS(8,I) = 0 IS(9,I) = 0 IS(10,I) = 1 CALL TCS (15,3,IS(6,I),5,4,ISEC,I) CALL TCS (79,ISTAT,I,ILU,ILOG) ISEC = ISEC + 1 CALL TCS (2,8,IS(6,I),5,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 913 C-----CONVERT TO INTEGER / DISC ADDRESS(PRODUCT FILE) 972 DO 60 J = 1,3 60 K(J) = IT(J,IS(1,I)) CALL CODE READ (K,*) JP C-----PLACE DISC ADDRESS IN STACK IS(4,I) = JP C-----REQUEST QUANTITY CALL CODE WRITE (K,600) 600 FORMAT ("QTY?") DO 610 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 3) GO TO 610 IT (J,IS(1,I)) = 20040B 610 CONTINUE C-----OUTPUT MESSAGE CALL TCS (2,IS(2,I),IT(1,IS(1,I)),2,I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----REQUEST INPUT CALL TCS (1,400B+IS(2,I),IT(1,IS(1,I)),5,I) C-----CONVERT TO INTEGER CALL TCS (79,ISTAT,I,ILU,ILOG) DO 620 J = 1,5 620 K(J) = IT(J,IS(1,I)) CALL CODE READ (K,*) JQ C-----PLACE QUANTITY IN DATA STACK IS(11,I) = JQ C-----CHECK FOR TERMINAL CONFLICT 874 IF (IA .NE. 1) GO TO 875 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 874 875 IA = 1 C-----OBTAIN DISC BUFFER 977 CALL GBUF (J,2) IF (J .NE. -1) GO TO 978 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 977 C-----PLACE DISC BUFFER NUMBER IN DATA STACK 978 IS(5,I) = J C-----OBTAIN PRODUCT RECORD (WITH LOCK) CALL TCS (14,100003B,ID(1,IS(5,I)),128,3,IS(4,I),I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----UPDATE PRODUCT RECORD ID(17,IS(5,I)) = ID(17,IS(5,I)) - IS(11,I) ID(20,IS(5,I)) = ID(20,IS(5,I)) + IS(11,I) C-----COMPUTE SELLING PRICE X QUANTITY IS(9,I) = ID(18,IS(5,I)) * IS(11,I) C-----REPLACE PRODUCT RECORD CALL TCS (15,3,ID(1,IS(5,I)),128,3,IS(4,I),I) C-----RESTORE STACK MARKER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----UNLOCK DISC CALL TCS (52,3) C-----RELEASE DISC BUFFER CALL PBUF (IS(5,I),2) C-----PLACE ORDER ON INVOICE SPOOL DISC FILE / TAPE BACKUP FILE IS(6,I) = IS(2,I) IS(7,I) = IS(3,I) IS(8,I) = IS(4,I) IS(10,I) = 0 CALL TCS (15,3,IS(6,I),5,4,ISEC,I) CALL TCS (79,ISTAT,I,ILU,ILOG) ISEC = ISEC + 1 CALL TCS (2,8,IS(6,I),5,I) CALL TCS (79,ISTAT,I,ILU,ILOG) IA = 0 GO TO 300 9999 CALL DEMO END PROGRAM SEG2(5) C-----GOODS RECEIVING SEGMENT COMMON IT(40,25),ID(128,5),IL(40,10),IS(15,12),IX,IA,IB,IC,ISEC COMMON INUM,IUNIT(10) DIMENSION K(40),IEND(1) DATA  IEND/2H/E/ C-----OBTAIN STACK POINTER I = IX C-----FORMAT MESSAGE 87 CALL CODE WRITE (K,100) 100 FORMAT ("INPUT VENDOR NUMBER ") DO 10 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 11) GO TO 10 IT(J,IS(1,I)) = 20040B 10 CONTINUE C-----OUTPUT MESSAGE AND PASS STACK POINTER TO TCS CALL TCS (2,IS(2,I),IT(1,IS(1,I)),10,I) C-----RESTORE STACK POINTER (REQUEST INITIATED) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----REQUEST VENDOR NUMBER AND PASS STACK POINTER TO TCS CALL TCS (1,400B+ILU,IT(1,IS(1,I)),40,I) C-----RESTORE STACK POINTER (REQUEST COMPLETED) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----TEST FOR EXIT CHARACTER (/E) IF (IT(1,IS(1,I)) .NE. IEND) GO TO 92 C-----RETURN TO MAIN PROGRAM IX = I CALL TCS (54) C-----CONVERT TO INTEGER / DISC ADDRESS (VENDOR FILE) 92 DO 50 J = 1,3 50 K(J) = IT(J,IS(1,I)) CALL CODE READ (K,*) JV C-----PLACE DISC ADDRESS IN STACK IS(3,I) = JV C-----INITIALIZE AMOUNT OWED TO VENDOR IS(7,I) = 0 C-----GENERATE PROMPT (PRODUCT NUMBER) 991 CALL CODE WRITE (K,110) 110 FORMAT ("INPUT PRODUCT NUMBER") DO 20 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 11) GO TO 20 IT(J,IS(1,I)) = 20040B 20 CONTINUE CALL TCS (2,IS(2,I),IT(1,IS(1,I)),10,I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----REQUEST INPUT CALL TCS (1,400B+IS(2,I),IT(1,IS(1,I)),3,I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----TEST FOR EXIT CHARACTER (/E) IF (IT(1,IS(1,I)) .NE. IEND) GO TO 137 C-----CHECK FOR TERMINAL CONFLICT 143 IF (IB .NE. 1) GO TO 144 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 143 144 IB = 1 C-----OBTAIN DISC BUFFER 147 CALL GBUF (J,2) IF (J .NE. -1) GO TO 146 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 147 C-----PLACE BUFFER NUMBER IN STACK 1046 IS(5,I) = J C-----OBTAIN VENDOR RECORD (WITH LOCK) CALL TCS (14,100003B,ID(1,IS(5,I)),128,2,IS(3,I),I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----UPDATE VENDOR RECORD ID(32,IS(5,I)) = ID(32,IS(5,I)) + IS(7,I) C-----REPLACE VENDOR RECORD CALL TCS (15,3,ID(1,IS(5,I)),128,2,IS(3,I),I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----UNLOCK DISC CALL TCS (52,3) IB = 0 C-----RELEASE DISC BUFFER CALL PBUF (IS(5,I),2) IS(7,I) = 0 GO TO 87 C-----CONVERT TO INTEGER / DISC ADDRESS (PRODUCT FILE) 137 DO 70 J = 1,3 70 K(J) = IT(J,IS(1,I)) CALL CODE READ (K,*) JP C-----PLACE DISC ADDRESS IN STACK IS(4,I) = JP C-----REQUEST QUANTITY CALL CODE WRITE (K,120) 120 FORMAT ("QTY?") DO 30 J = 1,40 IT(J,IS(1,I)) = K(J) IF (J .LT. 3) GO TO 30 IT(J,IS(1,I)) = 20040B 30 CONTINUE C-----OUTPUT MESSAGE CALL TCS (2,IS(2,I),IT(1,IS(1,I)),2,I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----REQUEST INPUT CALL TCS (1,400B+IS(2,I),IT(1,IS(1,I)),5,I) C-----CONVERT TO INTEGER CALL TCS (79,ISTAT,I,ILU,ILOG) DO 40 J = 1,5 40 K(J) = IT(J,IS(1,I)) CALL CODE READ (K,*) JQ C-----PLACE QUANTITY IN STACK IS(6,I) = JQ C-----CHECK FOR TERMINAL CONFLICT 149 IF (IB .NE. 1) GO TO 148 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 149 148 IB = 1 C-----OBTAIN DISC BUFFER 157 CALL GBUF (J,2) IF (J .NE. -1) GO TO 156 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 157 C-----PLACE BUFFER NUMBER IN STACK 156 IS(5,I) = J C-----OBTAIN PRODUCT RECORD (WITH LOCK) CALL TCS (14,100003B,ID(1,IS(5,I)),128,3,IS(4,I),I) C-----RESTORE STACK POINTER CALL TCS (79,ISTAT,I,ILU,ILOG) C-----COMPUTE PRODUCT COST X QUANTITY IS(7,I) = IS(7,I) + (IS(6,I) * ID(19,IS(5,I))) ID(17,IS(5,I)) = ID(17,IS(5,I)) + IS(6,I&) C-----REPLACE PRODUCT RECORD CALL TCS (15,3,ID(1,IS(5,I)),128,3,IS(4,I),I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----UNLOCK DISC CALL TCS (52,3) IB = 0 C-----RELEASE DISC BUFFER CALL PBUF (IS(5,I),2) GO TO 991 9999 CALL DEMO END PROGRAM SEG3(5) C-----INVOICING SEGMENT COMMON IT(40,25),ID(128,5),IL(40,10),IS(15,12),IX,IA,IB,IC,ISEC COMMON INUM,IUNIT(10) DIMENSION K(40) I = IX C-----CHECK FOR TERMINAL CONFLICT 10 IF (IC .NE. 1) GO TO 970 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 10 970 IC = 1 C-----OBTAIN OUTPUT BUFFER 977 CALL GBUF (J,3) IF (J .NE. -1) GO TO 978 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 977 C-----PLACE BUFFER NUMBER IN DATA STACK 978 IS(3,I) = J C-----OBTAIN DISC BUFFER 133 CALL GBUF (J,2) IF (J .NE. -1) GO TO 135 CALL TCS (1,77B,1,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) GO TO 133 C-----PLACE BUFFER NUMBER IN STACK 135 IS(4,I) = J INUM = 0 C-----GENERATE INVOICE HEADING (WITH LOCK) CALL TCS (3,101106B,-1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) CALL CODE WRITE (K,200) 200 FORMAT ("INVOICES FOR TERMINAL NUMBER") DO 220 J = 1,40 220 IL(J,IS(3,I)) = 20040B KK = 5 DO 230 J = 1,14 IL(KK,IS(3,I)) = K(J) 230 KK = KK + 1 CALL CODE WRITE (K,240) IS(2,I) 240 FORMAT (I2) IL(20,IS(3,I)) = K(1) CALL TCS (2,6,IL(1,IS(3,I)),40,I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----SKIP TWO SPACES CALL TCS (3,1106B,2,I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----OBTAIN INVOICE SPOOLING RECORD 580 IS(10,I) = 0 599 CALL TCS (14,3,ID(1,IS(4,I)),128,4,INUM,I) CALL TCS (79,ISTAT,I,ILU,ILOG) INUM = INUM + 1 IS(11,I) = ID(1,IS(4,I)) IS(12,I) = ID(2,IS(4,I)) IS(13,I) = ID(3,IS(4,I)) IS(14,I) = ID(4,IS(4,I)) IS(1S5,I) = ID(5,IS(4,I)) C-----END OF FILE TEST IF (IS(11,I) .NE. 0) GO TO 600 CALL PBUF (IS(3,I),3) CALL PBUF (IS(4,I),2) C-----UNLOCK LINE PRINTER CALL TCS (52,6) IC = 0 C-----RETURN TO MAIN PROGRAM IX = I CALL TCS (54) C-----TEST FOR TERMINAL / RECORD EQUALITY 600 IF (IS(11,I) .NE. IS(2,I)) GO TO 599 C-----FIRST PRODUCT TEST IF (IS(10,I) .NE. 0) GO TO 620 C-----OBTAIN CUSTOMER RECORD CALL TCS (14,3,ID(1,IS(4,I)),128,1,IS(12,I),I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----FORMAT AND OUTPUT CUSTOMER LINE DO 605 J = 1,40 605 IL(J,IS(3,I)) = 20040B DO 610 J = 2,10 610 IL(J,IS(3,I)) = ID(J,IS(4,I)) IS(9,I) = 0 CALL TCS (2,6,IL(1,IS(3,I)),40,I) CALL TCS (79,ISTAT,I,ILU,ILOG) DO 625 J = 1,40 625 IL(J,IS(3,I)) = 20040B C-----SKIP ONE SPACE CALL TCS (3,1106B,1,I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----SET FIRST PRODUCT INDICATOR IS(10,I) = 1 C-----TEST FOR END OF ORDER MARK 620 IF (IS(15,I) .NE. 1) GO TO 650 C-----FORMAT AND OUTPUT TOTAL LINE ANUM = IS(9,I) ANUM = ANUM / 100 CALL CODE WRITE (K,690) ANUM 690 FORMAT (F8.2) K(1) = 2H $ KK = 20 DO 700 J = 1,4 IL(KK,IS(3,I)) = K(J) 700 KK = KK + 1 CALL TCS (2,6,IL(1,IS(3,I)),40,I) CALL TCS (79,ISTAT,I,ILU,ILOG) DO 630 J = 1,40 630 IL(J,IS(3,I)) = 20040B GO TO 580 C-----OBTAIN PRODUCT RECORD 650 CALL TCS (14,3,ID(1,IS(4,I)),128,3,IS(13,I),I) CALL TCS (79,ISTAT,I,ILU,ILOG) C-----FORMAT AND OUTPUT ORDER DETAIL CALL CODE WRITE (K,710) ID(1,IS(4,I)) 710 FORMAT (I4) DO 750 J = 1,2 750 IL(J,IS(3,I)) = K(J) IL(3,IS(3,I)) = 20040B KK = 4 DO 660 J = 2,16 IL(KK,IS(3,I)) = ID(J,IS(4,I)) 660 KK = KK + 1 IL(18,IS(3,I)) = 20040B ANUM = IS(14,I) ANUM = ANUM / 100 CALL CODE WRITE (K,665) ANUM 665 FORMAT (F8.2D<:6) K(1) = 2H $ KK = 20 DO 680 J = 1,4 IL(KK,IS(3,I)) = K(J) 680 KK = KK + 1 IS(9,I) = IS(9,I) + IS(14,I) CALL TCS (2,6,IL(1,IS(3,I)),40,I) CALL TCS (79,ISTAT,I,ILU,ILOG) DO 670 J = 1,40 670 IL(J,IS(3,I)) = 20040B GO TO 599 9999 CALL DEMO END END$ /<001WOODLAND LIQUORS 200 ZAMBIA CIRCLE WOODLAND CAL 10000 1 002POE'S BOTTLE SHOP 4389 PUTNEY BLVD FALLON NEV 05000 1 003TONY'S WINE CELLAR260 WOOMERA ST POMONA CAL 10000 1 004AURORA LIQUORS 22 BYZANTINE AVE OXBOW LAKE UTAH 10000 1 005LIBATION EMPORIUM 31068 SANTA CRUZ AVE OLYMPIA WASH 08000 1 006THE GROG SHOP 29 BAYVIEW LANE MONTEREY CAL 10000 1 007CHUCK'S CELLAR 3200 VERDE FLAGSTAFF ARIZ 05000 1 008OASIS LIQUORS 25 WILSHIRE BLVD HOLLYWOOD CAL 10000 1 009MAGOO'S LOFT 83256 CHUTNEY APTOS CAL 04000 1 010MARAKESH LIQUORS 30 WESTVIEW ST PACIFICA CAL 06000 1 001SEBASTIANI 300 CASTILLE BLVD NAPA CAL 2 002BERINGER 10 VALLEY CIRCLE SONOMA CAL 2 003HANS KORBEL 832 MOUNTAIN ROAD NAPA CAL 2 004SAN MARTIN 60 AVE DE LAS PULGAS SAN MARTIN CAL 2 005PAUL MASSON 51 PIERCE RD SARATOGA CAL 2 006MIRASSOU 843 VISTA ST SAN JOSE CAL 2 007GALLO 914 BUMBLEBERRY SONOMA CAL 2 008CHARLES KRUG 5000 GRAPEWOOD AVE NAPA CAL 2 009ALMADEN 69 PINOLE SAN JOSE CAL 2 010OLYMPIA 211 WHITEFISH OLYMPIA WASH 2 011HAMM'S 822 PEBBLESTONE FOND DU LAC WISC 2 012SCHLITZ 503 FIREWATER LAKEPORT WISC 2 013WORLD IMPORTS 6149 SUTTER SAN FRANCISCO CAL 2 014ADOLPH COORS 529 ALTO LANE GOLDEN COL  2 015ANHAUSER BUSCH 388 RIVERVIEW ST LOUIS MIS 2 001SEBASTIANI BURGUNDY 090000021000150 3 002SEBASTIANI WHITE 040000020000170 3 003SEBASTIANI ZINFANDEL 080000026000200 3 004BERINGER BRUT 050000040000250 3 005BERINGER JOHN RIES 020000035000300 3 006H KORNEL SEC 070000060000450 3 007H KORNEL PINK CHAMPAGNE 100000055000330 3 008SAN MARTIN CAB SAUV 085000025000190 3 009SAN MARTIN CHARDONNAY 095000021000190 3 010SAN MARTIN GAMAY 084000020500160 3 011SAN MARTIN GREEN HUNGARIAN 090000023800125 3 012MASSON PINK CHAMPAGNE 150000032500259 3 013MASSON SPARKLING ROSE 080000025000189 3 014MASSON CAB SAUV 200000027000196 3 015MASSON GAMAY 076000025000178 3 016MASSON GREY REISLING 031900023000162 3 017MIRASSOU GAMAY 021000020300126 3 018MIRASSOU WHITE 018000019000095 3 019GALLO BURGUNDY 022000017000102 3 020GALLO RHINE 031000012500069 3 021GALLO CLARET 090000014000078 3 022KRUG CHENIN BLANC 180000028000185 3 023KRUG GAMAY BEAUJOLOIS 110000026900199  3 024ALMADEN ROSE GRENACHE 018000018400108 3 025ALMADEN PETITE SIRAH 007000020900129 3 026ALMADEN CHABLIS 009000021000165 3 027OLYMPIA KEG 15 GAL 005000100000803 3 028OLYMPIA 6 PK 12 OZ 010000017000099 3 029HAMM'S 6 PK 12 OZ 009000018000087 3 030SCHLITZ 6 PK 12 OZ 012000019000056 3 031DOS EQUIS 6 PK 12 OZ 009000024000171 3 032LOWENBRAU DK KEG 15 GAL 005000023000157 3 033ASAI 6 PK 12 OZ 003000026000164 3 034COORS 6 PK 12 OZ 020000017000082 3 035BUSCH BAVARIAN 6 PK 12 OZ 009000018500094 3  z 22667-80001 1500 SC 0122 SERIAL DEVICE TIMING STUDY PROGRAM             H0101 aASMB,R,L,B *** DEVICE TIMING STUDY *** HED DEVICE TIMING STUDY NAM TIMEX,7 * * THIS ROUTINE COUNTS THE NUMBER OF INSTRUCTIONS BETWEEN * A 'STC' COMMAND AND THE DEVICES READY FLAG, I.E. THE * NUMBER OF INSTRUCTIONS WHICH CAN BE EXECUTED BETWEEN EACH * BYTE(OR OTHERWIDE) TRANSFER OR THE DEVICES RESPONSE TIME * * THE MAXIMUM SAMPLE SIZE = 4352 DECIMAL = 6000 OCTAL * * ENT START EXT .DIO.,.DTA.,.IOI.,ENDIO,.IOC. START NOP JSB .IOC. INPUT DEVICE S.C. & # SAMPLES OCT 20001 JMP *-2 FORGET REJECT. DEF MESG DEC -52 JSB ENDIO DEF *+1 LDA =D1 CLB,INB JSB .DIO. OCT 0 DEF EOL1 JSB .IOI. STA BSTR IOR .STC. MASK IN SELECT CODE STA LP1+1 LDA BSTR IOR .SFS. MASK IN CODE FOR SFS INST. STA LP2P LDA BSTR IOR .CLC. STA CLEAR JSB .IOI. GET SAMPLE SIZE EOL1 CMA,INA STA HMANY STA COUNT CLF 0 TURN INT. SYSTEM OFF TEMPORAIRLY. LDA MYCTR STA BSTR LP1 CLB LPCTR STC 13B,C LP2P SFS 13B JMP LP2 STB BSTR,I SAVE NO. HOLES ISZ BSTR ISZ HMANY JMP LP1 NEXT CLEAR CLC 13B STF 0 TURN INT. SYSTEM BACK ON. DONE LDA UNIT OUTPUT DATA CLB JSB .DIO. DEF FMT DEF EOL LDA MYCTR STA BSTR LDA COUNT STA HMANY NEXT LDA BSTR,I ALS,ALS ADB =D7 ADD OVERHEAD TIME. JSB .IOI. ISZ BSTR ISZ HMANY JMP NEXT JSB .DTA. GET LAST ELEMENT OUT! EOL JSB ENDIO DEF *+1 HLT 77B JMP START LP2 INB NO FLAG YET - ADD ANOTHER INST. JMP LP2P MYCTR DEF SAVE BSTR BSS 1 COUNT BSS 1 UNIT OCT 6 .CLC. OCT 106700 CODE FOR 'CLC' .STC. OCT 103700 CODE FOT 'STC 0' .SFS. OCT 102300 CODE FOR 'SFS 0' FMT ASC 2,(I7) MESG ASC 19,INPUT DEVICE S.C. & NUM~  BER OF SAMPLES( ASC 7,FREE-FIELD) _ HMANY BSS 1 ORG *+1633B MOVE VALUE INPUT BUFFER TO PAGE 2 SAVE BSS 6000B RESERVE 4 PAGES FOR INPUT VALUES END START   { 22668-80001 1432 SC 0122 01RTE LIBRARY SPEED IMPROVEMENTS             H0101 j ASMBҬ NAMDUM NԠ$BҬ$B $BҠNP SAMPA DA$BҬ SZ$B SZA MPN SZPV MP NҠADAD SBMPB B SBMP DB$B ADBD-3 DB SB0 DBMP B DBMPB ҠDAMPA MP$BҬ $BؠNP SAMPA SBMPB B SBMP DA$Bج DBPV SZBSS MPN ADBD- SBPV DA0 MP NؠADAD DA0 SZ$B ADA$Bج ؠSA$B DAMPA DBMP B DBMPB MP$Bج MPANP MPBNP MPŠNP PVԠ0 ND ASMBҬ NAM.ZP6 NԠ.ZB Ԡ$BҬ$B .ZBNP SB$B NP SAMPA SBMPB DA.ZB SAAD DB.ZB ADBD- DA.SS SA ADBD- DA.SS SA DBAD SA SB$B DƠ+ DƠ+ DAMPA DBMPB SZ.ZB SB$B DƠ.ZB MPBBSS MPABSS .SSSS ADԠBSS ND 'P | 22670-80001 A SC 0122 MICROPROGRAMMED INDEX REGISTER INSTRUCTION             H0101 tH$ORIGIN=1400 $SUPPRESS $EXTERNALS=IND 366,LD* 164,JSB 150,ADD 144 $EXTERNALS=ST* 134,IOR 130,JMP 124,XOR 120 $EXTERNALS=CP* 114,AND 110,ISZ 170 * * INDEXED 2100 INSTRUCTIONS * * * * * JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP ERROR JMP BREG JMP REG3 JMP LOAD3 JMP ERROR JMP ERROR * * * $ORIGIN=1420 * TABLE MUST BEGIN ON A BOUNDARY WITH LAST 4 BITS = 0 * TABLE JMP LD* 105260 JMP LD* 105261 - INCREMENT JMP ST* 105262 JMP ST* 105263 - INCREMENT JMP ADD 105264 JMP ADD 105265 - INCREMENT JMP IOR 105266 JMP IOR 105267 - INCREMENT JMP AND 105270 JMP AND 105271 - INCREMENT JMP XOR 105272 JMP XOR 105273 - INCREMENT JMP CP* 105274 JMP CP* 105275 - INCREMENT **WARNING** JMP ISZ 105276 JMP ISZ 105277 - INCREMENT **WARNING** * * * THE ABOVE TABLE MAY BE CHANGED TO SELECT ANY EIGHT MEMORY * REFERENCE INSTRUCTIONS INCLUDING JMP & JSB . * * ANY INSTRUCTION USING A/B WILL USE THE A-REGISTER SINCE * THIS ROUTINE CLEARS BIT 11 OF THE INSTRUCTION REGISTER * * CP* & ISZ ARE LEGAL AS LONG AS YOU REALIZE THE POSSIBILITY * THAT WHEN USING THEM WITH AUTO INCREMENT YOU MAY GET A SKIP * FRO2M EITHER THE INDEX ROLLING OVER TO 0, OR THE INSTRUCTION * BEING SATISFIED ! WORST CASE WOULD GIVE A DOUBLE SKIP !!! * * THE WARNING MESSAGES FROM THE MICROASSEMBLER CAUSED BY THE * JMP'S TO TABLE ARE NORMAL FOR THIS ROUTINE AND THEREFORE * HAVE BEEN SUPPRESSED. * * * * * * * * BREG ADR IOR S3 CLEAR BIT 11 FOR "A" REFERENCE P IOR M RW READ "DEF" AFTER "RAM" S3 IOR IR RSS ODD INCREMENT BIT SET ? JMP INCRE YES ! AAB COND IOR S1 RSS NEG NO ! IS IT INDIRECT ? JSB IND YES ! PROCESS FOR INDIRECT P INC P YES & NO !! BUMP "P" PAST "DEF" B S1 ADD S4 AAB ADD POST INDEX AND CHECK FOR A/B S4 IOR S1 STUFF INTO S1 S3 JMP TABLE JUMP WITH "OR-TIE" OF S-BUS * * * * * INCRE AAB COND IOR S1 RSS NEG IS IT INDIRECT ? JSB IND YES ! P INC P YES & NO ! BUMP PAST "DEF" B S1 ADD S4 AAB ADD POST INDEX & CHECK FOR A/B S4 IOR S1 STUFF INTO S1 B INC B RSS TBZ INCREMENT "B" & TEST FOR SKIP (0) P INC P BUMP "P" AGAIN IF INDEX = 0 S3 JMP TABLE JMP WITH "OR-TIE" * * * * * REG3 ADR IOR S3 CLEAR BIT 11 FOR "A" REFERENCE P IOR M RW FETCH DEF CONTENTS S3 IOR IR RSS ODD INCREMENT BIT SET ? JMP INCR3 AAB COND IOR S1 RSS NEG IS IT INDIRECT ? JSB IND P INC P BUMP PAST DEF S1 IOR S4 MOVE OUT OF WAY CR IOR S1 3 BUILD CONSTANT = 3 S1 IOR M RW FETCH CONTENTS OF CORE LOCATION "3" T IOR Q GOT VALUE OF "3" Q S4 ADD S1 AyAB ADD POST INDEX & CHECK FOR A/B S3 JMP TABLE "OR-TIE" JMP * * * * * INCR3 AAB COND IOR S1 RSS NEG INDIRECT ? JSB IND P INC P BUMP PAST DEF S1 IOR S4 MOVE OUT OF WAY CR IOR S1 3 POINT TO CORE LOCATION "3" S1 IOR M RW FETCH "3" T IOR Q GOT VALUE OF "3" Q INC S2 BUMP CONTENTS OF "3" S1 IOR M CW UNC WRITE BACK "3" _ "3"+1 IOR ALWAYS SKIPPED ! S2 IOR T RSS TBZ STORE "3"+1 INTO "3" SKIP IF # 0 P INC P BUMP P AGAIN DUE TO ROLLOVER Q S4 ADD S1 AAB ADD POST INDEX & CHECK FOR A/B S3 JMP TABLE OR-TIE JMP * * * * * LOAD3 P IOR M RW READ DEF AFTER RAM P INC P BUMP "P" PAST "DEF" AAB COND IOR S1 RSS NEG IS IT INDIRECT ? JSB IND YES! PROCESS FOR INDIRECT S1 IOR M RW EITHER!! GET VALUE CR IOR S4 3 BUILD CONSTANT = "3" AAB COND IOR S2 GOT VALUE ! S4 IOR M CW UNC ADDRESS CORE "3" FOR WRITE IOR ALWAYS SKIPPED S2 IOR T EOP STORE VALUE IN "3" & EXIT IOR BYE, BYE !! * * * * ERROR IOR EOP IOR BAIL OUT DUE TO ILLEGAL ENTRY OR UNIMPLEMENTED INSTRUCTION * * $END * * * LDX EQU 260B LDXI EQU 261B STX EQU 262B STXI EQU 263B ADX EQU 264B ADXI EQU 265B ORX EQU 266B ORXI EQU 267B ANX EQU 270B ANXI EQU 271B XOX EQU 272B XOXI EQU 273B CPX EQU 274B CPXI EQU 275B ISX EQU 276B ISXI EQU 277B LD3 EQU 300B LD3I EQU 301B ST3 EQU 302B ST3I EQ`WU 303B AD3 EQU 304B AD3I EQU 305B OR3 EQU 306B OR3I EQU 307B AN3 EQU 310B AN3I EQU 311B XO3 EQU 312B XO3I EQU 313B CP3 EQU 314B CP3I EQU 315B IS3 EQU 316B IS3I EQU 317B LOAD3 EQU 320B * * * * ASMB,R,B,L,T NAM TEST ENT TEST,MACRO * * * * LDX EQU 260B LDXI EQU 261B STX EQU 262B STXI EQU 263B ADX EQU 264B ADXI EQU 265B ORX EQU 266B ORXI EQU 267B ANX EQU 270B ANXI EQU 271B XOX EQU 272B XOXI EQU 273B CPX EQU 274B CPXI EQU 275B ISX EQU 276B ISXI EQU 277B LD3 EQU 300B LD3I EQU 301B ST3 EQU 302B ST3I EQU 303B AD3 EQU 304B AD3I EQU 305B OR3 EQU 306B OR3I EQU 307B AN3 EQU 310B AN3I EQU 311B XO3 EQU 312B XO3I EQU 313B CP3 EQU 314B CP3I EQU 315B IS3 EQU 316B IS3I EQU 317B LOAD3 EQU 320B * * * * TEST NOP LDB =D2 HLT 02B MACRO RAM LDX DEF TABLE HLT 31B HLT 32B JMP TEST,I TABLE DEC 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 DEC -1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13 DEC -14,-15,-16 END FTN,L PROGRAM INDEX DIMENSION IBUFF(100) DO 10 I=1,100 10 IBUFF(I)=I CALL MICRO (IBUFF(1),IANS) WRITE(6,1) IANS 1 FORMAT(" IANS=" I7) END END$ ASMB,R,L NAM MICRO ENT MICRO EXT .ENTR * * * LDX EQU 260B LDXI EQU 261B STX EQU 262B STXI EQU 263B ADX EQU 264B ADXI EQU 265B ORX EQU 266B ORXI EQU 267B ANX EQU 270B ANXI EQU 271B XOX EQU 272B XOXI EQU 273B CPX EQU 274B CPXI EQU 275B ISX EQU 276B ISXI EQU 277B LD3 EQU 300B LD3I EQU 301B ST3 EQU 302B ST3I EQU 303B AD3 EQU 304B AD3I EQU 305B OR3 EQU 306B OR3I EQU 307B AN3 EQU 310B AN3I EQU 311B XO3 EQU 312B XO3I EQU 313B CP3 EQU 314B CP3I EQU 315B IS3 EQU 316B IS3I EQU 317B LOAD3 EQU 320B * * * * PARM1 BSS 1 PARM2 BSS 1 MICRO NOP JSB .ENTR DEF PARM1 LDB =Du-100 * AUTO INCREMENT WITH SKIP * LDA PARM1 ADA =D100 POINT TO END OF BUFFER SINCE "B" = -100 STA LOOP+1 CLA LOOP RAM ADXI AUTO-INCREMENT OF "B" NOP JMP LOOP STA PARM2,I JMP MICRO,I COUNT BSS 1 END  } 22673-80001 1432 SC 0122 01MICROCODED BIT MANI- PULATIONS             H0101 Gc $GN006 $ŽB.S $NPUNH SUBUNŠϠSԬAҬҠSԠANYBԠNA SPD6-BԠD. HADA.KNNGNVMBҠ593 SPŠNSN. SNVGNA PNàPNMNԠPϠG SBGADSԠPAAMҠADD SҠSADDҠƠN. SҠM PNàP ԠGS3BZVAUŠƠN. SGSG(N.N.0. SBGADGԠNDPAAM.ADD. SҠBADDҠƠD. SҠM PNàP ԠҠSVAUŠƠD. SBGADGԠ3DPAAM.ADD. SҠM PNàP ԠҠѠVAUŠƠSH. ѠDà ѠDàѠBZSԠSHAND MPԠMPϠAүSԬ SҠASŠSԠBԠN. SԠBԠN. S3ҠNҠPԠSԠPAԠMDŠ AƠA̱ɠSHԠBԠNϠG ҠSSSGS0ƠAҬS NàSSƠBԠS. SҠMנUNàUNSԠSU ҠPϠPAAMҠN SҠԠANDUN. SԠҠAҠBԠN. ԠBҠSSAVŠDADD. NàAGNAZŠMASK. MP+5DNԠAŠƠN..0 ҠGB0NAZ BS3SUBSUNҠAND SҠNҠPԠSԠPԠMDŠ AҠA̱ɠAŠMASK. ѠNàSSBZSԠSH ASSGS(_  SNGBԠN ANҠAGANG ASANDSBԠN. SҠMנUNàUND ҠPϠMMYAND SҠԠUN. SUBUNŠϠVŠPAAMҠADDSSS. GADPҠM GAؠԠҠSNG SB SҠM MPGA $ND ASMB̬ NAMBP NԠBP BPNP DABP ADAD- DBB050 SB0 MP0 NDBP ND$ N PGAMS àPGAMϠSԠUNNSƠBPSUBUN à N0 ʽ DϠ0ɽ6 D (00DN 00MA("D"6"BԠϠAҠ"ɲ A̠BP(ND0 (0D 0MA("ADD"6 ʽʪ0B 0NN+3 N0 DϠ0ɽ6 D0 (0N 0MA("BԠƠZϠDϠBŠSԠ"ɲ A̠BP(ND (03D 03MA("D"6 0NN+3 D06B (0D 0MA("DϠBŠSD"6 DϠ30ɽ05 N A̠BP(ND 30(05ɬN 05MA("BԠ"ɲ5"SUԠ"ɱ SP ND ND$   ~ 22677-80001 1505 SC 0122 DOS-III UTILITY              H0101 hASMB,L,C HED *****INTERCONNECT BOOT***** ******************************************************************************** * KLBOT IS A MODIFIED VERSION OF THE PROGRAM OVRLY. * IT ENABLES A USER TO LOAD THE F/E PROCESSOR OF A * TIME-SHARE-BASIC SYSTEM WITH AN ABSOLUTE DOS DISC FILE * (ESP. ABS. PROG. FILES UNDER BCS) * THE FILE MUST BE NAMED $OVLX, WHERE X IS ANY INTEGER * BETWEEN AND INCLUDING 0 AND 9. * TO EXECUTE THE PROGRAM: * 1. START BBL IN F/E, * 2. :PR,KLBOT,X,1; WHERE X IS THE OVERLAY NUMBER. ******************************************************************************** NAM KLBOT,3 EXT EXEC,RMPAR ENT KLBOT A EQU 0 B EQU 1 KLBOT NOP JSB RMPAR GET PARAMETERS DEF *+2 DEF PARAM LDA PARAM+1 STA ABS INDICATE ABS OR PATCH LDA PARAM AND =B17 MASK OVERLAY SELECTION(0-17) ADA =B60 CONVERT TO ASCII ALF,ALF STA NAME+2 JSB EXEC SEARCH FOR OVERLAY FILE DEF O1 DEF SRCH DEF NAME DEF NSECT O1 EQU * LDA NSECT SZA,RSS FIND JMP ERR1 NO CMA YES STA NSECT SAVE NO. OF SECTORS CLA STA RSECT SET REL. SECTOR TO 0 LDA ABS SZA ABS LOAD JMP O6 YES O4 EQU * JSB READD READ NEXT SECTOR JMP EXIT LAST ONE O2 EQU * LDA BUFR SZA,RSS POINTER ZERO JMP EXIT YES-DONE CMA,INA NO STA ITEM SAVE NO. OF ENTRIES ADA MAX STA FLAG INDICATE FULL OR PARTIAL RECORD LDA BSTRT STA PNTR SET POINTER O3 EQU * LDB PNTR,I PICKUP ADDRESS ISZ PNTR LDA PNTR,I PICKUP DATA ISZ PNTR JSB EXEC STORE IT IN CORE DEF *+2 DEF CRITE ISZ ITEM  ALL ITEMS THIS SECTOR JMP O3 NO LDA FLAG SZA PROCESSED A FULL RECORD JMP EXIT NO-NO NEED TO LOOK FURTHER JMP O4 EXIT EQU * CLF 0 TURN OFF INTRPT OTA CLA SEND FEED FRAMES OTA C2 TO HALT F/E LOADER STC C2,C ISZ ISZ A JMP CHKFL JMP DONE CHKFL SFS C2 JMP ISZ JMP OTA DONE STF 0 TURN ON INTRPT EXIT2 EQU * JSB EXEC DEF *+2 DEF *+1 DEC 6 ERR1 EQU * JSB EXEC OUTPUT UNDEFINED MSG DEF O5 DEF WRITE DEF TYPE DEF NAME DEF MSGL O5 EQU * JMP EXIT O6 EQU * JSB FETCH GET WORD COUNT JSB OUT ALF,ALF SZA,RSS NON-ZERO JMP EXIT NO-END OF LOAD CMA,INA STA ITEM JSB FETCH GET ADDRESS JSB OUT STA ADDR STA CKSM O7 EQU * JSB FETCH GET DATA JSB OUT STA B ADB CKSM ACCUMULATE CHECKSUM STB CKSM ISZ ADDR INCR ADDRESS ISZ ITEM DONE JMP O7 NO JSB FETCH YES-GET CHECKSUM JSB OUT CPA CKSM MATCH JMP O6 YES JSB EXEC NO-PUTPUT ERROR MSG DEF O8 DEF WRITE DEF TYPE DEF ERMSG DEF MSGL2 O8 EQU * JMP EXIT ERMSG ASC 7,CHECKSUM ERROR ABS NOP CKSM NOP SCNT NOP MSGL2 DEC -14 * ADDR NOP *************** OUT NOP SEND A WORD ACROSS INTERCONNECT. CLF 0 STA OUTA ALF,ALF AND =B377 OTA C2 STC C2,C SFS C2 JMP *-1 LDA OUTA AND =B377 OTA C2 STC C2,C SFS C2 JMP *-1 LDA OUTA STF 0 JMP OUT,I * * OUTA NOP C2 EQU 11B * * FETCH EQU * NOP LDA SCNT SZA READ NECESSARY JMP *+3 NO8 JSB READD READ NEXT SECTOR JMP EXIT END OF THE LINE LDA PNTR,I ISZ PNTR ISZ SCNT NOP JMP FETCH,I * * READD EQU * NOP ISZ NSECT LAST SECTOR JMP *+2 NO JMP READX YES-RETURN+1 JSB EXEC READ 1 SECTOR DEF READ1 DEF READ DEF DISK READ2 DEF BUFR DEF BUFL DEF NAME DEF RSECT READ1 EQU * LDA READ2 STA PNTR SET PNTR TO TOP OF SECTOR LDA =D-128 STA SCNT SET SECTOR COUNT ISZ RSECT BUMP RELATIVE SECTOR ISZ READD RETURN+2 READX EQU * JMP READD,I * MAX DEC 63 FLAG NOP NAME EQU * ASC 3,$OVL ASC 5, UNDEFINED MSGL DEC -16 PARAM BSS 5 NSECT EQU PARAM+1 RSECT EQU PARAM+2 ITEM EQU PARAM+3 PNTR EQU PARAM+4 * BUFR BSS 128 BSTRT DEF BUFR+1 BUFL DEC 128 SRCH DEC 18 READ DEC 14 DISK OCT 102 CRITE DEC -19 WRITE DEC 2 TYPE OCT 401 END KLBOT END$ Y  22679-80001 1506 SC 0122 CURVE FITTING--WEIGHTED AVERAGING             H0101 FTN,L,T PROGRAM FIT COMMON AB(2000),ER(2000),NTPS READ (5) NTPS,(AB(I),ER(I),I=1,NTPS) C THE FOLLOWING CODE ORDERS THE X,Y DATA (AB,ER) BY INCREASING X (AB) AMIN=70000. DO 30 I=1,NTPS DO 11 J=I,NTPS IF(AB(J)-AMIN) 10,11,11 10 AMIN=AB(J) IWHER=J 11 CONTINUE AB(IWHER)=AB(I) AB(I)=AMIN AMIN=ER(IWHER) ER(IWHER)=ER(I) ER(I)=AMIN 30 AMIN=70000. DO 20 I=1,NTPS IX=(AB(I)+100.)*9999./3800. IY=(ER(I)+320.)*9999./500. WRITE(7) 0,1,IX,IY 20 CONTINUE NTP0=NTPS C THE FOLLOWING CODE CHECKS THE DATA AND REMOVES OBVIOUSLY WRONG DATA C ER CAN BE FROM +400 TO -400, AB FROM 0 TO 3650 C BOTH ARE 10 TIMES ACTUAL VALUES FOR ACCURACY PURPOSES (NOTE WRITTEN INFO) WRITE(6,1189) 1189 FORMAT(" OBVIOUSLY WRONG DATA REMOVED",/," ANGLE ERROR") DO 40 I=1,NTPS IF(ER(I)+400.) 38,32,32 32 IF(ER(I)-400.) 33,33,38 33 IF(AB(I))38,34,34 34 IF(AB(I)-3650.) 40,40,38 38 WRITE(6,1190) AB(I),ER(I) DO 39 J=I,NTPS 1190 FORMAT(2F10.1) AB(J)=AB(J+1) 39 ER(J)=ER(J+1) NTPS=NTPS-1 I=I-1 40 CONTINUE XST=NTP0 NTP1=NTPS C THE FOLLOWING CODE KEEPS TRACK OF THE % OF DATA ELIMINATED XFN=NTPS PGON1=(XST-XFN)/XST*100. C C THE FOLLOWING CALL TO FIT2 FOCUSES THE DATA AND PLOTS IT CALL FIT2(AVE1,AVE2,DELT1,DELT2) XFN=NTPS AVE1=AVE1*.1 AVE2=AVE2*.1 PGONE=(XST-XFN)/XST*100. WRITE(6,100) NTP0,NTP1,NTPS,PGON1,PGONE,AVE1,AVE2,DELT1,DELT2 100 FORMAT(" ORIGINAL PASS 1 PASS 2",/ * " NUMBER OF SAMPLES ",3I10,/, * " PERCENT GOOD DATA ",10X,2F10.2,/, * " AVERAGE RESIDUAL ",10X,2F10.3,/, * " WORST CASE IN SET ",10X,2F10.3) NTPS=0 RETURN END SUBROUTINE FIT2(AVE1,AVE,DELT1,DELT2) C AVE1 IS THE AVERAGE RESIDUAL FROM THE FIRST PASS AT FOCUS C AV<E IS THE AVERAGE RESIDUAL FROM THE SECOND PASS AT FOCUS C DELT1 IS THE WORST RESIDUAL FROM THE FIRST PASS C DELT2 IS THE WORST RESIDUAL FROM THE SECOND PASS DIMENSION ORIG(2000) COMMON AB(2000),ER(2000),NTPS IY=10 CALL FOCUS(NTPS,ER,IY,AVE1,ORIG,DELT1) AVE=AVE1*2.5 C 2.5 TIMES THE AVERAGE RESIDUAL WILL NOW BE USED TO ELIMINATE DATA WRITE(6,1410) 1410 FORMAT(////" DATA REMOVED BETWEEN PASS ONE AND TWO",//, *" BEARING DATA FIT DIFFERENCE (10X REAL VALUES)") DO 42 I=1,NTPS DIF=ABS(ORIG(I)-ER(I)) IF(DIF-AVE)42,42,41 41 CONTINUE WRITE(6,411) AB(I),ORIG(I),ER(I),DIF 411 FORMAT(4F10.1) DO 415 J=I,NTPS AB(J)=AB(J+1) ORIG(J)=ORIG(J+1) 415 ER(J)=ER(J+1) NTPS=NTPS-1 I=I-1 42 CONTINUE C NOTICE THAT THE CALLING SEQUENCE HAS BEEN CHANGED! C THE NEXT FOCUS WILL BE ON THE ORIGINAL DATA STORED IN ORIG NOW. CALL FOCUS(NTPS,ORIG,IY,AVE,ER,DELT2) C THE FOLLOWING CODE PLOTS THE FITTED DATA ON A H.P.7210A 50 CONX=100. CONY=320. IPC=0 DO 55 I=1,NTPS C 2.63 AND 20. ARE SCALE FACTORS FOR THE PLOTTER IX=(AB(I)+CONX)*2.63 IY=(ORIG(I)+CONY)*20. WRITE(7) IPC,1,IX,IY 55 IPC=1 C THE FOLLOWING CODE PRINTS ANGLES AND ERRORS FOR FURTHER PROCESSING WRITE(6,156) 156 FORMAT("1 ANGLE ERROR WARNING") DO 56 I=1,74 ANG=(I-1)*50 DO 57 J=1,NTPS IF(ANG-AB(J)) 58,57,57 57 CONTINUE 58 ANG=ANG*.1 EROLD=ERROR ERROR=ORIG(J)*.1+.05 ERDIF=ERROR-EROLD IF(ERDIF+3.) 356,256,256 356 WRITE(6,157) ANG,ERROR,ERDIF GO TO 56 256 WRITE(6,157) ANG,ERROR EROLD=ERROR 56 CONTINUE 157 FORMAT(F7.0,F7.1,F9.1) 60 RETURN END SUBROUTINE FOCUS(NDATA,DATA,NFOC,AVE,ORIG,DELT1) C NDATA IS THE NUMBER OF DATA POINTS TO BE FIT C DATA IS THE DATA ARRAY C NFOC IS THE NUMBER OF TIMES THE DATA IS TO BE AVERAGED C AVE IS THE AVERA GE RESIDUAL ( DIFFERENCE BETWEEN ORIGINAL & FIT) C ORIG IS THE ORIGINAL DATA (STORED TO CALCULATE RESIDUALS) C DELT1 IS THE WORST RESIDUAL DIMENSION DATA(1),ORIG(1) DO 20 I=1,NDATA 20 ORIG(I)=DATA(I) C THE FOLLOWING CODE (TO STATEMENT 30) IS THE ACTUAL FOCUSING DO 30 I=1,NFOC D1=DATA(1) DATA(1)=(D1*2.+DATA(2))*.33333 NDM1=NDATA-1 DO 25 J=2,NDM1 D2=D1 D1=DATA(J) 25 DATA(J)=(D2+DATA(J)*2.+DATA(J+1))*.25 30 DATA(NDATA)=(D2+DATA(NDATA)*2.)*.33333 AVE=0. DELT1=.0 C CALCULATE RUNNING ERROR FOR AVERAGE ERROR DO 250 I=1,NDATA DIF=ABS(DATA(I)-ORIG(I)) AVE=AVE+DIF IF(DIF-DELT1) 250,250,245 245 DELT1=DIF 250 CONTINUE X=NDATA AVE=AVE/X DELT1=DELT1*.1 RETURN END END$ ӫ  22680-80001 1505 SC 0122 MICROPROGRAM SOURCE FORMATTER             H0101 WFTN,L PROGRAM MICPP C C C THIS PROGRAM, CALLED MICPP (MICROPROGRAM PRE-PROCESSOR), C FUNCTIONS TO ALLOW A MICROPROGRAMMER TO CREATE SOURCE C MICROPROGRAMS IN "FREE-FIELD FORMAT." FREE FIELD INPUT IS C CONVERTED TO FIXED FIELD, PUNCHED PAPER TAPE OUTPUT. C INPUT IS ACCEPTED FROM RECORD ORIENTED DEVICES SUCH AS C TELETYPE, CARD READER, OR PAPER TAPE READER. THE LOGICAL C UNIT NUMBER OF THE INPUT DEVICE IS INPUT TO THE PROGRAM C THROUGH THE SYSTEM CONSOLE, ONCE EXECUTION HAS BEGUN. C C C THE FOLLOWING CONVENTIONS ARE TO BE FOLLOWED: C C 1. A "," DELINEATES FIELDS. TO SKIP A FIELD, TYPE A COMMA. C C 2. "*" AND "$" IN COLUMN 1 ALLOW THE ENTIRE LINE TO PASS C THROUGH WITHOUT PROCESSING. C C 3. A "#" IN COLUMN 1 INDICATES THE END OF SOURCE INPUT. C C 4. A "#" IN ANY COLUMN OTHER THAN 1 TERMINATES THE LINE. C IF IT IS NOT USED, EACH OUTPUT LINE WILL BE FILLED WITH C BLANKS TO A TOTAL OF 80 CHARACTERS. C C 5. A HIGH-SPEED PUNCH IS ASSUMED TO BE PRESENT AS LOGICAL C UNIT # 4. C C 6. THE PROGRAM IS WRITTEN IN FORTRAN IV AND REQUIRES A C DOS ENVIRONMENT OF 16K WORDS CORE. C C C C *** NOTE *** C C WHEN CONSTANTS OR JUMP ADDRESSES ARE INSERTED IN THE C BEGINNING OF THE SPECIAL FIELD, THEY MAY BE AS MANY AS C 5 CHARACTERS IN LENGTH. AS FAR AS MICPP IS CONCERNED, C THE SKIP FIELD IS STILL PRESENT, AND MUST BE LEFT BLANK C BY INSERTING A COMMA AT THIS POINT. THE COMMENT FIELD C MAY BE USED AFTER THIS COMMA AS NORMAL. C C C DIMENSION IA(80),IB(80) WRITE(1,1) 1 FORMAT("SOURCE L.U.?") READ(1,*) LS CALL EXEC (3,1004B) WRITE(1,4) 4 FORMAT("INPUT") C C 2 CALL INPUT (IA,80,LS) C C NAP=80 N=80 IFLG=0 C C CALL PRCSS (IA,N,IB,IFLG,NAP)  C C IF (IFLG .EQ. 1) GO TO 99 WRITE(4,3) (IB(I),I=1,NAP) 3 FORMAT(80R1) GO TO 2 C C 99 CALL EXEC (3,1004B) STOP END SUBROUTINE INPUT (IA,N,LS) C C C THIS SUBROUTINE DOES NOTHING MORE THAN READ ONE RECORD C OF DATA FROM THE SOURCE LOGICAL INPUT UNIT. C C DIMENSION IA(1) 1 READ(LS,5) (IA(I),I=1,N) 5 FORMAT(80R1) RETURN END SUBROUTINE PRCSS (IA,N,IB,IFLG,NAP) C C C THIS SUBROUTINE TAKES THE FREE-FIELD SOURCE INPUT AND C CONVERTS IT TO FIXED-FIELD OUTPUT SUITABLE FOR INPUT TO C THE MICROASSEMBLER. THERE IS ONE WARNING ERROR MESSAGE -- C "TOO MANY FIELDS". IF TOO MANY FIELD TERMINATORS (COMMAS) C ARE PROCESSED FOR ONE RECORD OF INPUT, PROCESSING OF THE C RECORD IS SUSPENDED AT THAT POINT. THE RECORD UP TO THAT C POINT HAS BEEN OUTPUT TO THE PAPER TAPE PUNCH, THOUGH. C C SOME OF THE KEY CHARACTERS THAT ARE CONTINUALLY BEING C SCANNED FOR ARE: C C 43 OCTAL = # C C 44 OCTAL = $ C C 52 OCTAL = * C C 54 OCTAL = , C C C DIMENSION IA(1),IB(1),ICNTR(8) C DATA ICNTR(1)/6/,ICNTR(2)/4/,ICNTR(3)/5/,ICNTR(4)/5/, X ICNTR(5)/5/,ICNTR(6)/5/,ICNTR(7)/5/,ICNTR(8)/55/ C IF (IA(1) .EQ. 43B) GO TO 400 IF (IA(1).EQ.44B.OR.IA(1).EQ.52B) GO TO 200 C J=0 K=1 L=1 C C DO 100 I=1,N IF (IA(I) .EQ. 43 B) GO TO 500 IF (IA(I) .EQ. 54B) GO TO 50 IB(K)=IA(I) K=K+1 J=J+1 GO TO 100 C 50 DO 60 M=K,K+ICNTR(L)-J-1 60 IB(M)=40B C K=K+ICNTR(L)-J J=0 L=L+1 IF (L.GE.9) GO TO 300 100 CONTINUE RETURN C C 200 DO 250 I=1,N 250 IB(I)=IA(I) RETURN C C 300 WRITE(1,1) 1 FORMAT("ERROR --- TOO MANY FIELDS") RETURN C C 400 IFLG=1 RETURN C C 500 NAP=K-1 RETUHRN C C END END$ $FILE=RICK $ORIGIN=1006 * * BLOCK MOVE PROGRAM -- LAB # 2 * ,,P,IOR,Q,,,GET NO. WORDS ADDR TO Q ,Q,RRS,IOR,M,RW,,INITIATE READ ,,T,IOR,Q,,,PUT NO. WORDS INTO Q LOOP ,A,RRS,IOR,M,RW,,GET FIRST WORD ,,T,IOR,S4,,,PUT INTO S4 ,A,,INC,A,,,INCR ADDR OF FROM BUFFER ,B,RRS,IOR,M,CW,UNC,INITIATE WRITE ,,,IOR,,,,NOP ,,S4,IOR,T,,,PUT S4 INOT TO BUFFER ,B,,INC,B,,,INCR ADDR OF TO BUFFER ,Q,,INC,Q,,TBZ,INCR NO. WORDS; TEST FOR 0 ,,,JMP,,LOOP,,NO; LOOP ,,P,INC,P,,EOP,YES; INCR P AND LEAVE ,,,IOR ,,,JMP,,LOOP5 $END $FILE=RICK $ORIGIN=1006 * * BLOCK MOVE PROGRAM -- LAB # 2 * P IOR Q GET NO. WORDS ADDR TO Q Q RRS IOR M RW INITIATE READ T IOR Q PUT NO. WORDS INTO Q LOOP A RRS IOR M RW GET FIRST WORD T IOR S4 PUT INTO S4 A INC A INCR ADDR OF FROM BUFFER B RRS IOR M CW UNC INITIATE WRITE IOR NOP S4 IOR T PUT S4 INOT TO BUFFER B INC B INCR ADDR OF TO BUFFER Q INC Q TBZ INCR NO. WORDS; TEST FOR 0 JMP LOOP NO; LOOP  P INC P EOP YES; INCR P AND LEAVE IOR JMP LOOP5 $END   22681-18010 1505 SC 2122 COMPREHENSIVE ACHIEVEMENT MONITORING CAMATOR             H0121 gFTN4,L PROGRAM CAM REAL PNUMB,NUMB,TK4,MIC1(900) INTEGER CT,SCHL,CRSE,SKOL,CORS,PREIN,POSI,FORM,RNGE,CPT,CFORM,QN, 1 TK1,TK2,TMC,TNMB,CSGN,DROP,SNB,SBNB,BLANK,TK3,TK5,RANGE,OUT,PRT INTEGER TITLE(24),OPT(4),DSC1(3),DSC2(3),IBUF(64),TNAM(6), 1 SNUM(10),SGP(2),KEY(6,46),MUC(50,2),MIC2(900),MOC(300,2), 1MCC(300,2),MFC(50,2),MTNC(15,2),ITNA(15,5),ITNB(15),MSPC(50,2), 1 NAME(12),ITIMS(5),IUOC(300),NXTPR(3),TK6,CHN1(3),CHN3(3) INTEGER ICCC(50,2),ITCPT(50),CCPT COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE, 1CHN1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT, 1ICON DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC2(1),DSC2(2),DSC2(3)/2HDI,2HSK,2HA / WRITE(1,8) 8 FORMAT(3HCAM) ICON=0 INCD=11 INTP=10 ITTY=6 PRT=6 BLANK=2H ICODE=23 CHN1(1)=2HSU CHN1(2)=2HB1 CHN1(3)=2H CHN3(1)=2HSU CHN3(2)=2HB3 CHN3(3)=2H ICHN1=1 ICHN3=3 IRCDE=11 KSCR=0 KLEN=3 LEN=32 ISEC=0 READ(INCD,1)CT,SCHL,CRSE,NEWF IF(CT.EQ.5) GOTO 100 READ(INTP)(IBUF(I),I=1,32) CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(LEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+1 SKOL=IBUF(1) CORS=IBUF(2) DO 101 I=1,24 101 TITLE(I)=IBUF(I+2) PREIN=IBUF(27) POSI=IBUF(28) DO 103 I=1,4 103 OPT(I)=IBUF(I+28) GOTO 111 100 IF(NEWF.GT.0) GOTO 102 READ(INTP)SKOL,CORS,(TITLE(I),I=1,24),PREIN,POSI,(OPT(I),I=1,4) GOTO 104 102 SKOL=SCHL CORS=CRSE 104 READ(INCD,2)CT,SCHL,CRSE,(TITLE(I),I=1,24),PREIN,POSI,(OPT(I),I=1 1,4) IF(SKOL.NE.SCHL)GOTO 106 IF(CORS.NE.CRSE)GOTO 106 IF(CT.EQ.5)GOTO 108 WRITE(ITTY,4)CT STOP 106 WRITE(ITTY,3) o STOP 108 IBUF(1)=SKOL IBUF(2)=CORS DO 109 I=1,24 109 IBUF(I+2)=TITLE(I) IBUF(27)=PREIN IBUF(28)=POSI DO 110 I=1,4 110 IBUF(I+28)=OPT(I) CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(LEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+1 READ(INCD,1)CT,SCHL,CRSE GOTO 111 1 FORMAT(I2,A2,I3,2X,I1) 2 FORMAT(I2,A2,I3,3X,24A2,8X,2(I4,1X),4I1) 3 FORMAT(71H -330- SCHOOL AND COURSE CODES DO NOT AGREE WITH THE C 1OURSE DATA FILE) 4 FORMAT(18H -340- CART TYPE,I3,13H SHOULD BE 05) C ** ANSWER KEY SEGMENT ** 111 LENN=2 LEN=276 IF(NEWF.NE.0)GOTO 300 READ(INTP)NMUT,((MUC(I,J),I=1,50),J=1,2) READ(INTP)NMOB,((MOC(I,J),I=1,300),J=1,2),(IUOC(I),I=1,300) READ(INTP)NMIT,(MIC1(I),I=1,900),(MIC2(I),I=1,900) READ(INTP)NMCT,((MCC(I,J),I=1,300),J=1,2) READ(INTP)NMFM,((MFC(I,J),I=1,50),J=1,2) GOTO 112 300 DO 302 I=1,50 DO 302 J=1,2 302 MUC(I,J)=0 MUC(1,1)=10000 MUC(1,2)=1 NMUT=1 DO 304 I=1,300 DO 304 J=1,2 304 MOC(I,J)=0 MOC(1,1)=10000 MOC(1,2)=1 NMOB=1 DO 306 I=1,300 306 IUOC(I)=0 DO 308 I=1,900 MIC1(I)=0 308 MIC2(I)=0 MIC1(1)=10000.00E2 MIC2(1)=1 NMIT=1 DO 310 I=1,300 DO 310 J=1,2 310 MCC(I,J)=0 MCC(1,1)=10000 MCC(1,2)=1 NMCT=1 DO 312 I=1,50 DO 312 J=1,2 312 MFC(I,J)=0 MFC(1,1)=10000 MFC(1,2)=1 NMFM=1 GOTO 116 112 IF(NMFM.EQ.1)GOTO 116 DO 114 I=2,NMFM ISECA=(I-2)*4 READ(INTP)(IBUF(K),K=1,2),((KEY(L,M),L=1,6),M=1,46) CALL DRMW(LENN,ISECA,DSC2,IBUF) ISECA=ISECA+1 CALL DRMW(LEN,ISECA,DSC2,KEY) 114 CONTINUE 116 IF(CT.NE.10)GOTO 187 120 READ(INCD,5)CT,SCHL,CRSE,FORM,NQT IF(CT.EQ.10)GOTO 126 WRITE(ITTY,6)CT STOP 126 CALL CFIND(MFC,NMFM,FORM,MREP,CPT,50) . IF(MREP.NE.0) GOTO 132 IF(NMFM.LE.49)GOTO 130 WRITE(ITTY,7) STOP 130 CALL CADD(MFC,NMFM,FORM,CPT,50) MFMN=NMFM GOTO 134 132 MFMN=MREP 134 DO 136 J=1,46 DO 136 I=1,6 136 KEY(I,J)=0 NQ=NQT DO 184 L=1,NQT READ(INCD,10)CT,SCHL,CRSE,CFORM,QN,TK1,TK2,TK3,TK4,TK6 ITK33=TK3 140 IF(CT.EQ.11)GOTO 142 WRITE(ITTY,11)CT STOP 142 IF(QN.EQ.L)GOTO 144 WRITE(ITTY,12) STOP 144 IF(CFORM.EQ.FORM)GOTO 146 WRITE(ITTY,13) STOP 146 IF(OPT(1).EQ.0)GOTO 147 TK5=TK2 GOTO 148 147 TK5=TK3 148 CALL CFIND(MUC,NMUT,TK2,MREP,CPT,50) IF(MREP.EQ.0)GOTO 150 TK2=MREP GOTO 155 150 IF(NMUT.LE.49)GOTO 152 WRITE(ITTY,14) STOP 152 CALL CADD(MUC,NMUT,TK2,CPT,50) TK2=NMUT 155 CALL CFIND(MOC,NMOB,TK3,MREP,CPT,300) IF(MREP.EQ.0) GOTO 158 TK3=MREP GOTO 163 158 IF(NMOB.LE.299)GOTO 160 WRITE(ITTY,15) STOP 160 CALL CADD(MOC,NMOB,TK3,CPT,300) IUOC(NMOB)=TK3 TK3=NMOB 163 TK44=ITK33*100. TK4=TK44+TK4 CALL IFIND(MIC1,MIC2,NMIT,TK4,MREP,CPT) IF(MREP.EQ.0)GOTO 166 TK4=MREP GOTO 172 166 IF(NMIT.LE.899)GOTO 168 WRITE(ITTY,16) STOP 168 CALL IADD(MIC1,MIC2,NMIT,TK4,CPT) TK4=NMIT 172 CALL CFIND(MCC,NMCT,TK5,MREP,CPT,300) IF(MREP.EQ.0)GOTO 176 TK5=MREP GOTO 182 176 IF(NMCT.LE.299)GOTO 178 WRITE(ITTY,17) STOP 178 CALL CADD(MCC,NMCT,TK5,CPT,300) TK5=NMCT 182 KEY(1,L)=TK1 KEY(2,L)=TK2 KEY(3,L)=TK3 KEY(4,L)=TK4 KEY(5,L)=TK5 KEY(6,L)=TK6 184 CONTINUE ISECA=(MFMN-2)*4 IBUF(1)=NQT IBUF(2)=RNGE CALL DRMW(LENN,ISECA,DSC2,IBUF) ISECA=ISECA+1 CALL DRMW(LEN,ISECA,DSC2,KEY) READ(INCD,5)CT,SCHL,CRSE,FORM,NQT IF(CT.EQ.10)GOTO 126 187 LEN=100 LENN=5 IBUF(1)=NMUT  IBUF(2)=NMOB IBUF(3)=NMIT IBUF(4)=NMCT IBUF(5)=NMFM CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(LENN,ISEC,DSC1,IBUF) ISEC=ISEC+1 CALL DRMW(LEN,ISEC,DSC1,MUC) ISEC=ISEC+1 LEN=600 CALL DRMW(LEN,ISEC,DSC1,MOC) ISEC=ISEC+5 LEN=300 CALL DRMW(LEN,ISEC,DSC1,IUOC) ISEC=ISEC+3 LEN=1800 CALL DRMW(LEN,ISEC,DSC1,MIC1) ISEC=ISEC+15 LEN=900 CALL DRMW(LEN,ISEC,DSC1,MIC2) ISEC=ISEC+8 LEN=600 CALL DRMW(LEN,ISEC,DSC1,MCC) ISEC=ISEC+5 LEN=100 CALL DRMW(LEN,ISEC,DSC1,MFC) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+1 LEN=276 IF(NMFM.EQ.1)GOTO 201 LENN=2 DO 200 I=2,NMFM ISECA=(I-2)*4 CALL DRMR(LENN,ISECA,DSC2,IBUF) ISECA=ISECA+1 CALL DRMR(LEN,ISECA,DSC2,KEY) CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(LENN,ISEC,DSC1,IBUF) ISEC=ISEC+1 CALL DRMW(LEN,ISEC,DSC1,KEY) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+3 200 CONTINUE 201 NXTPR(1)=2HCA NXTPR(2)=2HM1 NXTPR(3)=2H IRCDE=8 CALL EXEC(IRCDE,NXTPR) 5 FORMAT(I2,A2,I3,5X,I3,2X,I2) 6 FORMAT(19H -1014- CARD TYPE,I3,13H SHOULD BE 10) 7 FORMAT(51H -1060- 49 TEST FORMS ARE IN THE COURSE DATA FILE) 10 FORMAT(I2,A2,I3,5X,I3,2X,I2,I1,2I4,F2.0,I1) 11 FORMAT(19H -1102- CARD TYPE,I3,13H SHOULD BE 11) 12 FORMAT(30H -1104- 11 CARD OUT OF ORDER) 13 FORMAT(49H -1106- FORM NUMBER ON THE 11 CARD IS INCORRECT) 14 FORMAT(53H -1130- 49 UNIT NUMBERS ARE IN THE COURSE DATA FILE) 15 FORMAT(59H -1180- 299 OBJECTIVE NUMBERS ARE IN THE COURSE DATA F 1ILE) 16 FORMAT(54H -1230- 899 ITEM NUMBERS ARE IN THE COURSE DATA FILE) 17 FORMAT(58H -1280- 299 CONTRACT NUMBERS ARE IN THE COURSE DATA FI 1LE) END SUBROUTINE IFIND(MIC1,MIC2,NMIT,ITEM,MREP,CPT) REAL MIC1(900),ITEM INTEGER UPT,CPT,CPTN,MIC2(900) UPT=NMIT LPT=0 CPT=(UPT+LPT+1)/2 45 IF(ITEM.GT.MIC1(CPT))GOTO 50 UPT=CPT GOTO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT)GOTO 70 CPT=CPTN GOTO 45 70 IF(ITEM.EQ.MIC1(CPT))GOTO 90 MREP=0 RETURN 90 MREP=MIC2(CPT) RETURN END SUBROUTINE IADD(MIC1,MIC2,NMIT,ITEM,CPT) REAL ITEM,MIC1(900) INTEGER CPT,MIC2(900) DO 75 K=CPT,NMIT KK=NMIT+CPT-K MIC1(KK+1)=MIC1(KK) 75 MIC2(KK+1)=MIC2(KK) NMIT=NMIT+1 MIC1(CPT)=ITEM MIC2(CPT)=NMIT RETURN END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE CADD(TMC,NMV,VALUE,CPT,N) INTEGER TMC(N,2) INTEGER CPT,VALUE DO 75 K=CPT,NMV KK=NMV+CPT-K TMC(KK+1,1)=TMC(KK,1) 75 TMC(KK+1,2)=TMC(KK,2) NMV=NMV+1 TMC(CPT,1)=VALUE TMC(CPT,2)=NMV RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) IRCDE=15 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END END$ FTN4,L PROGRAM CAM1 REAL BUF(8),PNUMB,NUMB,TK4,MIC1(900) INTEGER CT,SCHL,CRSE,SKOL,CORS,PREIN,POSI,FORM,RNGE,CPT,CFORM,QN, 1 TK1,TK2,TK3,TK5,TK6,TMC,TNMB,CSGN,DROP,SNB,SBNB,BLANK,RANGE,PRT, 1 INCD,INTP,ITTY,ICODE,CHN1(3),CHN3(3),ICHN1,ICHN3 INTEGER TITLE(24),OPT(4),DSC1(3),DSC2(3),DSC3(3),IBUF(128),TNAM(5) 1,SNUM(10),SGP(2),KEY(6,46),MUC(50,2),MIC2(900),MOC(300,2),IUOC(300 1),MCC(300,2),MFC(50,2),MTNC(15,2),ITNA(15,5),ITNB(15),MSPC(50,2), 1NAME(12),NXTPR(3),ICCC(50,2),ITCPT(50),CCPT,DSC14(3),ICD(18,7) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE, 1CHN1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT, 1ICON DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC2(1),DSC2(2),DSC2(3)/2HDI,2HSK,2HA / DATA DSC3(1),DSC3(2),DSC3(3)/2HDI,2HSK,2H1 / DATA DSC14(1),DSC14(2),DSC14(3)/2HCA,2HRD,2HS / C **STUDENT GROUP PARAMETER SEGMENT ** WRITE(1,1) 1 FORMAT(4HCAM1) ISECB=0 IF(ICON.EQ.2)GOTO 508 IF(ICON.EQ.3)GOTO 501 400 IF(NEWF.EQ.0)GOTO 406 NMTN=1 DO 402 I=1,15 DO 402 J=1,2 402 MTNC(I,J)=0 MTNC(1,1)=100 MTNC(1,2)=1 NMSP=1 DO 404 I=1,50 DO 404 J=1,2 404 MSPC(I,J)=0 MSPC(1,1)=20000 MSPC(1,2)=1 GOTO 410 406 READ(INTP)NMTN,((MTNC(I,J),I=1,15),J=1,2),NMSP,((MSPC(K,L),K=1,50) 1,L=1,2) IF(NMTN.EQ.1)GOTO 410 DO 408 K=2,NMTN 408 READ(INTP)(ITNB(K)),(ITNA(K,J),J=1,5) 410 IF(CT.NE.15)GOTO 444 IF(SKOL.NE.SCHL)GOTO 412 IF(CORS.EQ.CRSE)GOTO 416 412 WRITE(ITTY,3) STOP 416 READ(INCD,19)CT,SCHL,CRSE,TNMB,(TNAM(I),I=1,5),(SNUM(J),J=1,10) IF(CT.NE.15)GOTO 444 IF(SKOL.NE.SCHL)GOTO 418 IF(CORS.EQ.CRSE)GOTO 420 418 WRITE(ITTY,3) STOP 420 IF(TNMB.NE.0)GOTO 422 TNMB=10000 GOTO 436 422 CALL CfFIND(MTNC,NMTN,TNMB,MREP,CPT,15) IF(MREP.NE.0)GOTO 430 IF(NMTN.LE.14)GOTO 426 WRITE(ITTY,20) STOP 426 CALL CADD(MTNC,NMTN,TNMB,CPT,15) MREP=NMTN 430 ITNB(MREP)=TNMB DO 432 I=1,5 432 ITNA(MREP,I)=TNAM(I) TNMB=TNMB*100 436 DO 440 I=1,10 IF(SNUM(I).EQ.0)GOTO 440 CSGN=TNMB+SNUM(I) CALL CFIND(MSPC,NMSP,CSGN,MREP,CPT,50) IF(MREP.NE.0)GOTO 440 IF(NMSP.LE.49)GOTO 438 WRITE(ITTY,21) STOP 438 CALL CADD(MSPC,NMSP,CSGN,CPT,50) 440 CONTINUE GOTO 416 444 ISEC=240 LEN=30 KLEN=2 IBUF(1)=NMTN IBUF(2)=NMSP CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISEC,DSC1,IBUF) ISEC=ISEC+1 CALL DRMW(LEN,ISEC,DSC1,MTNC) ISEC=ISEC+1 LEN=100 CALL DRMW(LEN,ISEC,DSC1,MSPC) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+1 IF(NMTN.EQ.1)GOTO 500 DO 446 K=2,NMTN KLEN=6 IBUF(1)=ITNB(K) DO 445 I=1,5 445 IBUF(I+1)=ITNA(K,I) CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) 446 ISEC=ISEC+1 GOTO 500 19 FORMAT(I2,A2,I3,6X,I2,5X,5A2,10(3X,I2)) 20 FORMAT(56H -2065- 14 TEACHER NUMBERS ARE IN THE COURSE DATA FILE 1) 21 FORMAT(65H -2125- 50 STUDENT GROUP PARAMETERS ARE IN THE COURSE 1DATA FILE) C ** STUDENT IDENTIFICATION SEGMENT ** 500 NXTPR(1)=2HSR NXTPR(2)=2HT2 NXTPR(3)=2H0 CALL EXEC(8,NXTPR) 501 K1=1 K2=1 502 NUMB=10000.05E2 DROP=0 DO 504 I=1,12 504 NAME(I)=BLANK SGP(1)=0 SGP(2)=0 KLEN=K2*2 BUF(K2)=NUMB CALL DRMW(KLEN,ISECB,DSC3,BUF) ISECB=ISECB+1 IBUF(K1)=DROP DO 506 I=1,12 506 IBUF(K1+I)=NAME(I) IBUF(K1+13)=SGP(1) IBUF(K1+14)=SGP(2) LEN=K1+14 CALL DRMW(LEN,ISECB,DSC3,IBUF) ISECB=ISECB+1 GOTO 544 508 K1=1 K2=1 fICON=0 ISECB=0 PNUMB=0 JLEN=126 KSCR=0 L7=7 516 L7=L7+1 IF(L7.NE.8)GOTO 517 CALL DRMR(JLEN,KSCR,DSC14,ICD) KSCR=KSCR+1 L7=1 517 IF(ICD(1,L7).EQ.999)GOTO 502 NUMB=FLOAT(ICD(1,L7))*1000.+FLOAT(ICD(2,L7)) DROP=ICD(3,L7) DO 518 J6=1,12 518 NAME(J6)=ICD(J6+3,L7) TNMB=ICD(16,L7) SNB=ICD(17,L7) SBNB=ICD(18,L7) 520 IF(PNUMB.LT.NUMB)GOTO 526 WRITE(ITTY,24)NUMB GOTO 516 526 PNUMB=NUMB IF(TNMB.EQ.0)GOTO 528 SGP(1)=TNMB*100+SNB GOTO 530 528 SGP(1)=0 530 IF(SBNB.EQ.0)GOTO 532 SGP(2)=10000+SBNB GOTO 534 532 SGP(2)=0 534 DO 538 L=1,2 IF(SGP(L).EQ.0)GOTO 538 CALL CFIND(MSPC,NMSP,SGP(L),MREP,CPT,50) IF(MREP.EQ.0)GOTO 536 SGP(L)=MREP GOTO 538 536 WRITE(ITTY,25)SGP(L),NUMB SGP(L)=0 538 CONTINUE BUF(K2)=NUMB IBUF(K1)=DROP DO 540 I=1,12 540 IBUF(I+K1)=NAME(I) IBUF(K1+13)=SGP(1) IBUF(K1+14)=SGP(2) IF(K2.EQ.8)GOTO 542 K2=K2+1 K1=K1+15 GOTO 516 542 LEN=K1+14 KLEN=K2*2 CALL DRMW(KLEN,ISECB,DSC3,BUF) ISECB=ISECB+1 CALL DRMW(LEN,ISECB,DSC3,IBUF) K1=1 K2=1 ISECB=ISECB+1 GOTO 516 544 ICON=0 NXTPR(1)=2HCA NXTPR(2)=2HM2 NXTPR(3)=2H IRCDE=8 CALL EXEC(IRCDE,NXTPR) 3 FORMAT(71H -330- SCHOOL AND COURSE CODES DO NOT AGREE WITH THE C 1OURSE DATA FILE) 23 FORMAT(I2,A2,I3,F6.0,10X,I1,12A2,5X,I2,3X,I2,8X,I2) 24 FORMAT(43H -2320- 20 CARD OUT OF ORDER FOR STUDENT ,F6.0) 25 FORMAT(31H -2375- INVALID STUDENT GROUP,I6, 1 12H FOR STUDENT,F6.0) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE CADD(TMC,NMV,VALUE,CPT,N) INTEGER TMC(N,2) INTEGER CPT,VALUE DO 75 K=CPT,NMV KK=NMV+CPT-K TMC(KK+1,1)=TMC(KK,1) 75 TMC(KK+1,2)=TMC(KK,2) NMV=NMV+1 TMC(CPT,1)=VALUE TMC(CPT,2)=NMV RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) DIMENSION NAME(3) IRCDE=15 ICNWD=2 CALL EXEC(18,NAME,NSECT) IF(NSECT.NE.0)GOTO 200 WRITE(1,100)(NAME(I),I=1,3) 100 FORMAT(4HFILE,1X,3A2,14H WAS NOT FOUND) STOP 200 NSCK=(LEN/128)+ISEC IF((ISEC.GE.0).AND.(NSCK.LE.NSECT))GOTO 205 WRITE(1,101)ISEC,(NAME(I),I=1,3) 101 FORMAT(16HILLEGAL SECTOR #,I5,17H IN DRW FOR FILE ,3A2) STOP 205 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) DIMENSION NAME(3) IRCDE=14 ICNWD=2 CALL EXEC(18,NAME,NSECT) IF(NSECT.NE.0)GOTO210 WRITE(1,110)(NAME(I),I=1,3) 110 FORMAT(4HFILE,1X,3A2,14H WAS NOT FOUND) STOP 210 NSCK=(LEN/128)+ISEC IF((ISEC.GE.0).AND.(NSCK.LE.NSECT))GOTO 215 WRITE(1,111)ISEC,(NAME(I),I=1,3) 111 FORMAT(16HILLEGAL SECTOR #,I5,17H IN DRR FOR FILE ,3A2) STOP 215 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END END$ EjFTN4,L PROGRAM SRT20 C C THE VARIABLE LIMIT SHOULD BE SET TO THE MAXIMUM NUMBER C OF CARDS TO BE SORTED + 1. THE FILE CARDS IS ASSUMED TO C BE ABLE TO HOLD THIS MANY CARDS. (EACH SECTOR HOLDS 7 CARDS.) C C THE INTEGER ARRAY INAME HOLDS THE NAME OF THE PROGRAM TO C WHICH CONTROL IS TO BE RETURNED. C C AN ERROR IN THE COURSE CODE CAUSES THAT CARD CONTAINING THE C ERROR TO BE IGNORED. C C READING OF CARDS NEVER TERMINATES UNTIL A DIFFERENT CARD TYPE C IS READ. C C IF A CARD LIMIT ERROR OCCURS ALL SUCCEDING CARDS ARE READ UNTIL C A DIFFERENT CARD TYPE IS SENSED. C INTEGER ICARDS(18,7,2),ISENS(2),IFILE(3),INUM(2000),INAME(3) INTEGER CT,SCHL,CRSE,SKOL,CORS,PREIN,POSI,CPT,BLANK,PRT,CHN1(3), 1CHN3(3),TITLE(24),OPT(4),MCC(300,2),IUOC(300),MOC(300,2), 1MFC(50,2),MTNC(15,2),ITNA(15,5),MSPC(50,2),ICCC(50,2), 1ITCPT(50),CCPT REAL ANUM(2000) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE, 1 CHN1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA 1,ICCC,ITCPT,CCPT,ICON C C ALL CONSECUTIVE 20 CARDS ARE READ AND STORED HERE C LIMIT=1000 IFILE(1)=2HCA IFILE(2)=2HRD IFILE(3)=1HS INAME(1)=2HCA INAME(2)=2HM1 INAME(3)=1H IF(CT.EQ.20)GOTO 5 ICON=3 GOTO 600 5 ISECT=0 ICDS=1 10 ISCDS=1 20 READ(INCD,1000)CT,SCHL,CRSE,(ICARDS(I,ISCDS,1),I=1,18) IF(CT.NE.20) GOTO 25 IF(ICDS.EQ.LIMIT) GOTO 510 ANUM(ICDS)=FLOAT(ICARDS(1,ISCDS,1))*1000. 1+FLOAT(ICARDS(2,ISCDS,1)) INUM(ICDS)=ISECT*10+ISCDS ICDS=ICDS+1 ISCDS=ISCDS+1 IF(ISCDS.NE.8) GOTO 20 CALL EXEC(15,2,ICARDS,126,IFILE,ISECT) ISECT=ISECT+1 GOTO 10 C C THE CARDS ARE SORTED HERE C 25 ICARDS(1,ISCDS,1)=999 ICARDS(2,ISCDS,1)=999 CALL EXEC(15,2,ICARDS,126,IFILE,ISECT) IF(ICDS.NE.2)GOTO 26 ICON=2 GOTO 600 26 ISENS(1)=-1 DO 27 ID=1,ICDS-2 IF(ANUM(ID).LE.ANUM(ID+1)) GOTO 27 ERP=ANUM(ID+1) ANUM(ID+1)=ANUM(ID) ANUM(ID)=ERP ISENS(1)=INUM(ID+1) INUM(ID+1)=INUM(ID) INUM(ID)=ISENS(1) 27 CONTINUE IF(ISENS(1).NE.-1) GOTO 26 C C CARDS ARE PHYSICALLY REARRANGED HERE C ICDS=ICDS-1 ICRDS=1 ISECT=0 ISENS(2)=-1 40 ISCDS=1 50 IF(INUM(ICRDS).NE.ISECT*10+ISCDS) GOTO 80 60 IF(ICRDS.EQ.ICDS) GOTO 9999 ICRDS=ICRDS+1 IF(ISCDS.NE.7) GOTO 70 ISECT=ISECT+1 GOTO 40 70 ISCDS=ISCDS+1 GOTO 50 80 ID=ICRDS 83 ISCTR=IFIX(AINT(FLOAT(INUM(ID))/10.)) ICARD=INUM(ID)-ISCTR*10 IF(ISCTR*10+ICARD-ISECT*10-ISCDS) 85,60,90 85 ID=ISCTR*7+ICARD GOTO 83 90 IF(ISCTR.NE.ISENS(1)) GOTO 120 95 IBF1=1 IBF2=1 100 DO 110 I=1,18 ID=ICARDS(I,ICARD,IBF2) ICARDS(I,ICARD,IBF2)=ICARDS(I,ISCDS,IBF1) 110 ICARDS(I,ISCDS,IBF1)=ID GOTO 60 120 IF(ISCTR.EQ.ISENS(2)) GOTO 130 IF(ISENS(2).NE.-1) 1CALL EXEC(15,2,ICARDS(1,1,2),126,IFILE,ISENS(2)) CALL EXEC(14,2,ICARDS(1,1,2),126,IFILE,ISCTR) ISENS(2)=ISCTR 130 IF(ISECT.NE.ISCTR) GOTO 140 IBF1=2 IBF2=2 GOTO 100 140 IF(ISECT.EQ.ISENS(1)) GOTO 150 IF(ISENS(1).NE.-1) 1CALL EXEC(15,2,ICARDS,126,IFILE,ISENS(1)) CALL EXEC(14,2,ICARDS,126,IFILE,ISECT) ISENS(1)=ISECT 150 IBF1=1 IBF2=2 GOTO 100 500 WRITE(ITTY,1010)CT GOTO 20 510 WRITE(ITTY,1020) 520 READ(INCD,1030)ICDC IF(ICDC.NE.CT) GOTO 25 GOTO 520 1000 FORMAT(I2,A2,3I3,10X,I1,12A2,5X,I2,3X,I2,8X,I2) 1010 FORMAT(35HCOURSE CODE MISMATCH. CARD TYPE IS ,I2) 1020 FORMAT(" CARD LIMIT. FOLLOWING CARDS IGNORED.") 1030 FORMAT(I2) 9999 IF(ISENS(1).NE.-1) 1CALL EXEC(15,2,ICARDS,126,IFILE,ISENS(1)) IF(ISE; NS(2).NE.-1) 1CALL EXEC(15,2,ICARDS(1,1,2),126,IFILE,ISENS(2)) ICON=2 600 CALL EXEC(8,INAME) END END$ oFTN4,L PROGRAM CAM2 REAL PNUMB,NUMB,RNUMB(20),BUFF(60) INTEGER CCPT,SNB,TNMB,CT,SCHL,CRSE,SKOL,CORS,CSGN,CPT,TDATE,BLANK, 1 PREIN,POSI,PRT,CHN3(3),CHN1(3),TITLE(24),OPT(4),MFC(50,2) INTEGER IBUF(128),MCC(300,2),MSPC(50,2),ICCC(50,2),ITCPT(50), 1 DSC1(3),DSC4(3),DSC5(3),CONT(5),CDATE(5),DATE(5,3),TSCC(50,50), 1 TSCD(50,50),RCONT(20),RDATE(20),MOC(300,2),IUOC(300),MTNC(15,2), 1ITNA(15,5),NXTPR(3),ICD(25,5),DSC14(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN 11,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC4(1),DSC4(2),DSC4(3)/2HDI,2HSK,2H6 / DATA DSC5(1),DSC5(2),DSC5(3)/2HDI,2HSK,2HC / DATA DSC14(1),DSC14(2),DSC14(3)/2HCA,2HRD,2HS / WRITE(1,1) 1 FORMAT(4HCAM2) ISECC=0 K1=1 DO 100 I=1,50 DO 100 J=1,2 100 ICCC(I,J)=0 CCPT=0 DO 102 I=1,50 102 ITCPT(I)=0 DO 103 I=1,50 DO 103 J=1,50 TSCC(I,J)=0 103 TSCD(I,J)=0 DO 105 I=1,20 RNUMB(I)=0 RCONT(I)=0 105 RDATE(I)=0 NSENT=1 IF(ICON.EQ.2)GOTO 106 IF(ICON.EQ.3)GOTO 104 NXTPR(1)=2HSR NXTPR(2)=2HT2 NXTPR(3)=2H5 CALL EXEC(8,NXTPR) 104 RNUMB(NSENT)=10000.05E2 LEN=120 DO 108 I=1,20 BUFF(I)=RNUMB(I) BUFF(I+20)=RCONT(I) 108 BUFF(I+40)=RDATE(I) CALL DRMW(LEN,ISECC,DSC4,BUFF) KSCR=0 ISECC=0 LEN=100 DO 111 I=2,NMSP DO 107 J=1,50 IBUF(J)=TSCC(J,I) 107 IBUF(J+50)=TSCD(J,I) CALL DRMW(LEN,KSCR,DSC5,IBUF) 111 KSCR=KSCR+1 GOTO 146 106 ICON=0 JLEN=125 KSSS=0 L7=5 PNUMB=0 114 L7=L7+1 IF(L7.NE.6)GOTO 116 CALL DRMR(JLEN,KSSS,DSC14,ICD) KSSS=KSSS+1 L7=1 116 IF(ICD(1,L7).EQ.999)GOTO 1M04 NUMB=FLOAT(ICD(1,L7))*1000.+FLOAT(ICD(2,L7)) TNMB=ICD(3,L7) SNB=ICD(4,L7) NENT=ICD(5,L7) DO 117 L5=1,5 CONT(L5)=ICD(L5*4+2,L7) DATE(L5,1)=ICD(L5*4+3,L7) DATE(L5,2)=ICD(L5*4+4,L7) 117 DATE(L5,3)=ICD(L5*4+5,L7) 118 IF(PNUMB.LE.NUMB)GOTO 120 IF(NUMB.EQ.0)GOTO 120 WRITE(ITTY,28)NUMB GOTO 114 120 PNUMB=NUMB IF((NENT.GE.1).AND.(NENT.LE.5))GOTO 122 WRITE(ITTY,29)NUMB,TNMB,SNB GO TO 114 122 DO 124 L=1,NENT CALL CFIND(MCC,NMCT,CONT(L),MREP,CPT,300) IF(MREP.EQ.0)WRITE(ITTY,30)CONT(L),NUMB,TNMB,SNB CONT(L)=MREP CALL DATES(DATE(L,1),DATE(L,2),DATE(L,3),TDATE) IF(TDATE.NE.0)GOTO 124 WRITE(ITTY,31)DATE(L,1),DATE(L,2),DATE(L,3),NUMB,TNMB,SNB 124 CDATE(L)=TDATE IF(NUMB.LE.0)GOTO 130 DO 126 L=1,NENT IF(CONT(L).LE.0)GOTO 126 IF(CDATE(L).LE.0)GOTO 126 RNUMB(NSENT)=NUMB RCONT(NSENT)=CONT(L) RDATE(NSENT)=CDATE(L) NSENT=NSENT+1 IF(NSENT.LE.20)GOTO 126 NSENT=1 LEN=120 DO 125 I=1,20 BUFF(I)=RNUMB(I) BUFF(I+20)=RCONT(I) 125 BUFF(I+40)=RDATE(I) CALL DRMW(LEN,ISECC,DSC4,BUFF) ISECC=ISECC+1 126 CONTINUE GOTO 114 130 IF(TNMB+SNB.NE.0)GOTO 136 DO 134 L=1,NENT IF(CONT(L).LE.0)GOTO 134 IF(CDATE(L).LE.0)GOTO 134 CCPT=CCPT+1 IF(CCPT.LE.50)GOTO 132 WRITE(ITTY,32) STOP 132 ICCC(CCPT,1)=CONT(L) ICCC(CCPT,2)=CDATE(L) 134 CONTINUE GOTO 114 136 CSGN=TNMB*100+SNB CALL CFIND(MSPC,NMSP,CSGN,MREP,CPT,50) IF(MREP.NE.0)GOTO 142 WRITE(ITTY,33)TNMB,SNB GO TO 114 142 DO 144 L=1,NENT IF(CONT(L).LE.0)GOTO 144 IF(CDATE(L).LE.0)GOTO 144 ITCPT(MREP)=ITCPT(MREP)+1 TEMP=ITCPT(MREP) IF(TEMP.LE.50)GOTO 145 WRITE(ITTY,60) STOP 145 TSCC(TEMP,MREP)=CONT(L) TSCD(TEMP,MREP)=CDATE(L) 144 'CONTINUE GOTO 114 146 ICON=0 NXTPR(1)=2HCA NXTPR(2)=2HM3 NXTPR(3)=2H ICON=0 IRCDE=8 CALL EXEC(IRCDE,NXTPR) 3 FORMAT(71H -330- SCHOOL AND COURSE CODES DO NOT AGREE WITH THE C 1OURSE DATA FILE) 27 FORMAT(I2,A2,I3,F6.0,2I2,2X,I1,5(I4,1X,3I2,1X)) 28 FORMAT(42H -2739- 25 CARD OUT OF ORDER FOR STUDENT,1X,F6.0) 29 FORMAT(43H -2740- INVALID VALUE OF NENT FOR NUMB = ,F6.0/10X, 1 11H TEACHER = ,I3,11H SECTION = ,I3) 30 FORMAT(33H -2772- INVALID CONTRACT NUMBER,I4,12H FOR NUMB - , 1 F6.0/10X,11H TEACHER = ,I2,11H AND SECT. ,I2) 31 FORMAT(23H -2775- INVALID DATE ,3I2,29H ON CONT COMP CARD FOR NO 1. = ,F6.0/10X,11H TEACHER = ,I2,8H SECT = ,I2) 32 FORMAT(62H -2920- MORE THAN 50 COURSE CONTRACT COMPLETIONS BEING 1 ADDED) 33 FORMAT(18H -2962- TEACHER ,I3,13H AND SECTION ,I3,39H IS NOT A V 1ALID STUDENT GROUP PARAMETER) 60 FORMAT(73H -2965- THE INDEX POINTER TEMP IS GREATER THAN 50 FOR 1OBJ. SORT ROUTINE) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) IRCDE=15 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DATES(MONTH,DAY,YEAR,KDAT) INTEGER DAT(3),YR(10),MO(12),TDAT,YEAR,DAY YR(1)=0 YR(2)=365 YR(3)=730 YR(4)=1096 YR(5)=1461 YR(6)=1826 YR(7!7)=2191 YR(8)=2557 YR(9)=2922 YR(10)=3287 MO(1)=0 MO(2)=31 MO(3)=59 MO(4)=90 MO(5)=120 MO(6)=151 MO(7)=181 MO(8)=212 MO(9)=243 MO(10)=273 MO(11)=304 MO(12)=334 IF(YEAR.GE.70)GOTO 100 KDAT=0 RETURN 100 IDAT=70 DO 200 K=1,10 KK=K JDAT=IDAT+KK IF(YEAR.LT.JDAT)GOTO 300 200 CONTINUE KDAT=0 RETURN 300 IF(MONTH.GT.0)GOTO 310 KDAT=0 RETURN 310 DO 400 L=2,13 LL=L IF(MONTH.LT.LL)GOTO 500 400 CONTINUE KDAT=0 RETURN 500 IF(DAY.EQ.0)GOTO 600 IF(DAY.GT.31)GOTO 600 KDAT=YR(KK)+MO(LL-1)+DAY RETURN 600 KDAT=0 RETURN END END$ FTN4,L PROGRAM SRT25 C C THE VARIABLE LIMIT SHOULD BE SET TO THE MAXIMUM NUMBER C OF CARDS TO BE SORTED + 1. THE FILE CARDS IS ASSUMED TO C BE ABLE TO HOLD THIS MANY CARDS. (EACH SECTOR HOLDS 5 CARDS) C C THE INTEGER ARRAY INAME HOLDS THE NAME OF THE PROGRAM TO C WHICH CONTROL IS TO BE RETURNED. C C AN ERROR IN THE COURSE CODE CAUSES THAT CARD CONTAINING THE C ERROR TO BE IGNORED. C C READING OF CARDS NEVER TERMINATES UNTIL A DIFFERENT CARD TYPE C IS READ. C C IF A CARD LIMIT ERROR OCCURS ALL SUCCEDING CARDS ARE READ UNTIL C A DIFFERENT CARD TYPE IS SENSED. C INTEGER ICARDS(25,5,2),ISENS(2),IFILE(3),INUM(2000),INAME(3) INTEGER CT,SCHL,CRSE,SKOL,CORS,PREIN,POSI,CPT,BLANK,PRT,CHN1(3), 1CHN3(3),TITLE(24),OPT(4),MCC(300,2),IUOC(300),MOC(300,2), 1MFC(50,2),MTNC(15,2),ITNA(15,5),MSPC(50,2),ICCC(50,2), 1ITCPT(50),CCPT DOUBLE PRECISION ANUM(2000),ERP,MILION,THOU COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE, 1 CHN1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA 1,ICCC,ITCPT,CCPT,ICON C C ALL CONSECUTIVE 20 CARDS ARE READ AND STORED HERE C LIMIT=2000 MILION=1000000. THOU=1000. IFILE(1)=2HCA IFILE(2)=2HRD IFILE(3)=1HS INAME(1)=2HCA INAME(2)=2HM2 INAME(3)=1H IF(CT.EQ.25)GOTO 5 ICON=3 GOTO 600 5 ISECT=0 ICDS=1 10 ISCDS=1 20 READ(INCD,1000)CT,SCHL,CRSE,(ICARDS(I,ISCDS,1),I=1,25) IF(CT.NE.25) GOTO 25 IF(SCHL.NE.SKOL) GOTO 500 IF(CRSE.NE.CORS) GOTO 500 IF(ICDS.EQ.LIMIT) GOTO 510 ANUM(ICDS)=DBLE(FLOAT(ICARDS(3,ISCDS,1)))*MILION 1+DBLE(FLOAT(ICARDS(1,ISCDS,1)))*THOU+DBLE(FLOAT(ICARDS(2,ISCDS,1)) 1) INUM(ICDS)=ISECT*10+ISCDS ICDS=ICDS+1 ISCDS=ISCDS+1 IF(ISCDS.NE.6) GOTO 20 CALL EXEC(15,2,ICARDS,125,IFILE,ISECT) ISECT=ISECT+1 GOTO 10 C C THE CARDS ARE SORTED HERE C 25 ICARDS(1,ISCDS,1)=999 ICARDS(2,ISCDS,1)=999 CALL EXEC(15,2,ICARDS,125,IFILE,ISECT) IF(ICDS.NE.2)GOTO 26 ICON=2 GOTO 600 26 ISENS(1)=-1 DO 27 ID=1,ICDS-2 IF(ANUM(ID).LE.ANUM(ID+1)) GOTO 27 ERP=ANUM(ID+1) ANUM(ID+1)=ANUM(ID) ANUM(ID)=ERP ISENS(1)=INUM(ID+1) INUM(ID+1)=INUM(ID) INUM(ID)=ISENS(1) 27 CONTINUE IF(ISENS(1).NE.-1) GOTO 26 C C CARDS ARE PHYSICALLY REARRANGED HERE C ICDS=ICDS-1 ICRDS=1 ISECT=0 ISENS(2)=-1 40 ISCDS=1 50 IF(INUM(ICRDS).NE.ISECT*10+ISCDS) GOTO 80 60 IF(ICRDS.EQ.ICDS) GOTO 9999 ICRDS=ICRDS+1 IF(ISCDS.NE.5) GOTO 70 ISECT=ISECT+1 GOTO 40 70 ISCDS=ISCDS+1 GOTO 50 80 ID=ICRDS 83 ISCTR=IFIX(AINT(FLOAT(INUM(ID))/10.)) ICARD=INUM(ID)-ISCTR*10 IF(ISCTR*10+ICARD-ISECT*10-ISCDS) 85,60,90 85 ID=ISCTR*5+ICARD GOTO 83 90 IF(ISCTR.NE.ISENS(1)) GOTO 120 95 IBF1=1 IBF2=1 100 DO 110 I=1,25 ID=ICARDS(I,ICARD,IBF2) ICARDS(I,ICARD,IBF2)=ICARDS(I,ISCDS,IBF1) 110 ICARDS(I,ISCDS,IBF1)=ID GOTO 60 120 IF(ISCTR.EQ.ISENS(2)) GOTO 130 IF(ISENS(2).NE.-1) 1CALL EXEC(15,2,ICARDS(1,1,2),125,IFILE,ISENS(2)) CALL EXEC(14,2,ICARDS(1,1,2),125,IFILE,ISCTR) ISENS(2)=ISCTR 130 IF(ISECT.NE.ISCTR) GOTO 140 IBF1=2 IBF2=2 GOTO 100 140 IF(ISECT.EQ.ISENS(1)) GOTO 150 IF(ISENS(1).NE.-1) 1CALL EXEC(15,2,ICARDS,125,IFILE,ISENS(1)) CALL EXEC(14,2,ICARDS,125,IFILE,ISECT) ISENS(1)=ISECT 150 IBF1=1 IBF2=2 GOTO 100 500 WRITE(ITTY,1010)CT GOTO 20 510 WRITE(ITTY,1020) 520 READ(INCD,1030)ICDC IF(ICDC.NE.CT) GOTO 25 GOTO 520 1000 FORMAT(I2,A2,3I3,2I2,2X,I1,5(I4,1X,3I2,1X)) 1010 FORMAT(35HCOURSE CODE MI SMATCH. CARD TYPE IS ,I2) 1020 FORMAT(" CARD LIMIT. FOLLOWING CARDS IGNORED.") 1030 FORMAT(I2) 9999 IF(ISENS(1).NE.-1) 1CALL EXEC(15,2,ICARDS,125,IFILE,ISENS(1)) IF(ISENS(2).NE.-1) 1CALL EXEC(15,2,ICARDS(1,1,2),125,IFILE,ISENS(2)) ICON=2 600 CALL EXEC(8,INAME) END END$ FTN4,L PROGRAM CAM3 REAL SNUM1,SNUM2,CSNM,NUM1,RNUMB(20),PNUMB,BUF(8),BUFF(60) INTEGER DROP,TFM,PD,CDAT,WCPT,CONTC,MTSN,CNT,RANGE,OBJ,CC,YES,CPT, 1 TMPD,PLUS,MINUS,CT,SCHL,CRSE,SKOL,CORS,PRTS,PRTT,PRTG,TDATE,CCPT, 1 BLANK,PERID,PREIN,POSI,PRT,REPL INTEGER IBUF(128),IREPT(46,3),ISUMY(300,2,3),ISUM2(300,2,3),NAME(1 12),KEY(6,46),MFC(50,2),IUOC(300),IBUF1(128),SGP(2),RCONT(20),RDATE 1(20),DAT(3),RP(46),SNAM1(12),GRP1(2),CC1(300),PS1(20,5),RFM1(20), 1RDAT1(20),RRP1(46,20),TCC(50),TCD(50),DSC1(3),DSC3(3),DSC4(3),DSC5 1(3),DSC6(3),DSC7(3),DSC8(3),DSC10(3),ICCC(50,2),ITCPT(50),SNAM2(12 1),NXTPR(3),TITLE(24),OPT(4),MCC(300,2),MOC(300,2),CHN1(3),CHN3(3), 1MTNC(15,2),ITNA(15,5),MSPC(50,2),ICD(53,2),DSC14(3) INTEGER NXT(3),CGI(9,2,3),DSC12(3),IPOST(20,2),MEAN(50,46,2), 1DSC15(3),CGI2(9,2,3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN 11,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,PD,TFM,CSNM,GRP1,IREPT,RP,PS1, 1RFM1,RDAT1,RRP1,CDAT,SNAM1,SNUM1,ISR,CC1,PNUMB,SNUM2,NUM1,BUF, 1RNUMB,DROP,CONTC,MTSN,CNT,TDATE,ISUMY,ISUM2,NAME,IBUF1,SGP,RCONT, 1RDATE,TCC,TCD,SNAM2,K9,K8,IFLG,IFLAG,ISTS,IST,ISNEW,ISECS, 1ISEC1,ISEC6,NSENT,CGI,IPOST,JLEN,KSSS,L7,ICD,MEAN,MEEN,CGI2 DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC3(1),DSC3(2),DSC3(3)/2HDI,2HSK,2H1 / DATA DSC4(1),DSC4(2),DSC4(3)/2HDI,2HSK,2H6 / DATA DSC10(1),DSC10(2),DSC10(3)/2HDI,2HSK,2HS / DATA DSC6(1),DSC6(2),DSC6(3)/2HDS,2HKT,2HS / DATA DSC7(1),DSC7(2),DSC7(3)/2HDI,2HSK,2HT / DATA DSC8(1),DSC8(2),DSC8(3)/2HDI,2HSK,2HR / DATA DSC5(1),DSC5(2),DSC5(3)/2HDI,2HSK,2HC / DATA DSC12(1),DSC12(2),DSC12(3)/2HCG,2HIN,2HD / DATA DSC14(1),DSC14(2),DSC14(3)/2HCA,2HRD,2HS / DATA DSC15(1),DSC15(2),DSC15(3)/2HTF,2HME,2HN '/ C ** INITIALIZE PROCESSING SEGMENT ** IF(ICON.EQ.3)GOTO 103 IF(ICON.EQ.2)GOTO 122 IF(ICON.NE.0)GOTO 181 WRITE(1,1) 1 FORMAT(4HCAM3) SNUM1=0. IFLG=0 IFLAG=0 ISTS=0 IST=0 ISR=0 ISNEW=258 ISECS=0 PERID=0 K9=1 SNUM2=0 ISEC1=0 ISEC6=0 IF(CT.NE.30)GOTO 102 IF(SKOL.NE.SCHL)GOTO 100 IF(CORS.EQ.CRSE)GOTO 104 100 WRITE(ITTY,3) STOP 102 IF(CT.EQ.35)GOTO 103 IF(CT.EQ.40)GOTO 103 IF(CT.EQ.41)GOTO 103 IF(CT.EQ.99)GOTO 103 WRITE(ITTY,34)CT STOP 103 IFLAG=0 CSNM=10000.05E2 105 NSENT=1 KLEN=16 CALL DRMR(KLEN,ISEC1,DSC3,BUF,SNUM1) ISEC1=ISEC1+1 KLEN=120 CALL DRMR(KLEN,ISEC1,DSC3,IBUF1,SNUM1) ISEC1=ISEC1+1 NUM1=BUF(K9) K8=1+(15*(K9-1)) DROP=IBUF1(K8) DO 99 I=1,12 99 NAME(I)=IBUF1(K8+I) SGP(1)=IBUF1(K8+13) SGP(2)=IBUF1(K8+14) KLEN=120 CALL DRMR(KLEN,ISEC6,DSC4,BUFF,SNUM1) ISEC6=ISEC6+1 DO 98 I=1,20 RNUMB(I)=BUFF(I) RCONT(I)=BUFF(I+20) 98 RDATE(I)=BUFF(I+40) K9=K9+1 IF(IFLAG.NE.0)GOTO 113 GOTO 128 104 DO 106 I=1,46 IREPT(I,1)=0 IREPT(I,2)=BLANK 106 IREPT(I,3)=BLANK DO 107 I=1,20 DO 107 J=1,2 107 IPOST(I,J)=0 DO 108 I=1,300 DO 108 J=1,2 DO 108 K=1,3 ISUMY(I,J,K)=0 108 ISUM2(I,J,K)=0 LEN=1800 DO 112 N=1,NMSP CALL DRMW(LEN,ISECS,DSC10,ISUMY,SNUM1) 112 ISECS=ISECS+15 ISCC=0 LEGT=54 DO 101 I=1,9 DO 101 J=1,2 DO 101 K=1,3 101 CGI(I,J,K)=0 DO 97 N=1,NMSP CALL DRMW(LEGT,ISCC,DSC12,CGI,SNUM1) 97 ISCC=ISCC+1 ISCC=0 IFLAG=1 GOTO 105 113 READ(INCD,35)CT,SCHL,CRSE,IVAR,PERID,REPL,PRTS,PRTT,PRTG,MEEN IF(CT.EQ.31)GOTO 114 WRITE(ITTY,36)CT STOP 114 KLEN=1  KSCR=0 CALL DRMW(KLEN,KSCR,DSC15,MEEN,SNUM1) IF(SKOL.NE.SCHL)GOTO 116 IF(CORS.EQ.CRSE)GOTO 118 116 WRITE(ITTY,3) STOP 118 IF((PERID.GE.1).AND.(PERID.LE.20))GOTO 120 WRITE(ITTY,37) PERID=0 120 NXTPR(1)=2HSR NXTPR(2)=2HT3 NXTPR(3)=2H0 CALL EXEC(8,NXTPR) 122 ICON=0 JLEN=106 KSSS=0 DO 95 I=1,50 DO 95 J=1,46 DO 95 K=1,2 95 MEAN(I,J,K)=0 L7=2 124 L7=L7+1 IF(L7.NE.3)GOTO 125 CALL DRMR(JLEN,KSSS,DSC14,ICD,SNUM1) KSSS=KSSS+1 L7=1 125 IF(ICD(1,L7).NE.999)GOTO 127 WRITE(ITTY,61)CT STOP 127 CSNM=FLOAT(ICD(1,L7))*1000.+FLOAT(ICD(2,L7)) TFM=ICD(3,L7) PD=ICD(4,L7) DAT(1)=ICD(5,L7) DAT(2)=ICD(6,L7) DAT(3)=ICD(7,L7) DO 450 M7=1,46 450 RP(M7)=ICD(M7+7,L7) 126 CALL DATES(DAT(1),DAT(2),DAT(3),CDAT) IF(CDAT.EQ.0)WRITE(ITTY,39)CSNM PNUMB=CSNM 128 GOTO 310 3 FORMAT(71H -330- SCHOOL AND COURSE CODES DO NOT AGREE WITH THE C 1OURSE DATA FILE) 34 FORMAT(21H -3010- SIGNAL CARD,I3,24H INVALID OR OUT OF ORDER) 35 FORMAT(I2,A2,I3,I2,1X,I2,2X,I1,4(4X,I1)) 36 FORMAT(19H -3220- CARD TYPE,I3,13H SHOULD BE 31) 37 FORMAT(48H -3240- NO GROUP SUMMARY DATA BEING CALCULATED) 38 FORMAT(I2,A2,I3,F6.0,1X,I3,1X,I2,1X,3I2,3X,46I1) 39 FORMAT(45H -3290- ILLEGAL DATE ON 30 CARD FOR STUDENT,1X,F6.0) 61 FORMAT(19H -3285- CARD TYPE,I3,13H SHOULD BE 30) C ** PROCESSING CONTROL SEGMENT ** 310 IF(NEWF.EQ.0)GOTO 312 SNUM1=10000.00E2 GOTO 314 312 READ(INTP)SNUM1,(SNAM1(I),I=1,12),(GRP1(J),J=1,2),(CC1(K),K=1,300) 1,((PS1(L,M),L=1,20),M=1,5),(RFM1(N),N=1,20),(RDAT1(N),N=1,20), 1((RRP1(I,J),I=1,46),J=1,20),((IPOST(L,M),L=1,20),M=1,2) 314 IF(NUM1.GT.SNUM1)GOTO 164 IF(NUM1.LT.SNUM1)GOTO 326 IF(DROP.EQ.0)GOTO 320 IFLG=0 317 IF(K9.GT.8)GOTO 316 NUM1=BUF(K9) K8=1+(15*(K9-1)) DROP=I<BUF1(K8) DO 315 I=1,12 315 NAME(I)=IBUF1(K8+I) SGP(1)=IBUF1(K8+13) SGP(2)=IBUF1(K8+14) K9=K9+1 IF(IFLG.EQ.0)GOTO 312 GOTO 164 316 K9=1 KLEN=16 CALL DRMR(KLEN,ISEC1,DSC3,BUF,SNUM1) ISEC1=ISEC1+1 KLEN=120 CALL DRMR(KLEN,ISEC1,DSC3,IBUF1,SNUM1) ISEC1=ISEC1+1 GOTO 317 320 GRP1(1)=SGP(1) GRP1(2)=SGP(2) DO 322 I=1,12 322 SNAM1(I)=NAME(I) IFLG=1 GOTO 317 326 IF(SNUM1.EQ.10000.00E2)GOTO 140 KLEN=110 BUFF(1)=SNUM1 DO 129 I=1,12 129 BUFF(I+1)=SNAM1(I) BUFF(14)=GRP1(1) BUFF(15)=GRP1(2) DO 130 I=1,20 BUFF(I+15)=RFM1(I) 130 BUFF(I+35)=RDAT1(I) CALL DRMW(KLEN,ISTS,DSC6,BUFF,SNUM1) ISTS=ISTS+1 LENTS=300 CALL DRMW(LENTS,ISTS,DSC6,CC1,SNUM1) ISTS=ISTS+3 LENTS=100 CALL DRMW(LENTS,ISTS,DSC6,PS1,SNUM1) ISTS=ISTS+1 LENTS=920 CALL DRMW(LENTS,ISTS,DSC6,RRP1,SNUM1) ISTS=ISTS+8 KLEN=40 CALL DRMW(KLEN,ISTS,DSC6,IPOST,SNUM1) ISTS=ISTS+1 SNUM2=SNUM1 GOTO 142 140 SNUM2=10000.00E2 142 SNUM1=NUM1 DO 144 I=1,12 144 SNAM1(I)=NAME(I) GRP1(1)=SGP(1) GRP1(2)=SGP(2) DO 146 I=1,300 146 CC1(I)=0 DO 148 I=1,20 DO 148 J=1,5 148 PS1(I,J)=0 DO 150 I=1,20 RFM1(I)=0 150 RDAT1(I)=0 DO 152 I=1,46 DO 152 J=1,20 152 RRP1(I,J)=0 DO 154 I=1,20 DO 154 J=1,2 154 IPOST(I,J)=0 IFLG=1 GOTO 317 164 WCPT=0 166 IF(WCPT.EQ.CCPT)GOTO 168 WCPT=WCPT+1 CONTC=ICCC(WCPT,1) CC1(CONTC)=ICCC(WCPT,2) GOTO 166 168 MTSN=GRP1(1) IF(MTSN.EQ.0)GOTO 172 IF(ITCPT(MTSN).EQ.0)GOTO 172 WCPT=0 KLEN=100 KSCR=MTSN-2 CALL DRMR(KLEN,KSCR,DSC5,IBUF,SNUM1) DO 169 I=1,50 TCC(I)=IBUF(I) 169 TCD(I)=IBUF(I+50) 170 IF(WCPT.EQ.ITCPT(MTSN))GOTO 17{2 WCPT=WCPT+1 CONTC=TCC(WCPT) CC1(CONTC)=TCD(WCPT) GOTO 170 172 IF(RNUMB(NSENT).GT.SNUM1)GOTO 180 IF(RNUMB(NSENT).EQ.SNUM1)GOTO 174 WRITE(ITTY,40)RNUMB(NSENT) GOTO 176 174 CNT=RCONT(NSENT) CC1(CNT)=RDATE(NSENT) 176 NSENT=NSENT+1 IF(NSENT.LE.20)GOTO 172 NSENT=1 KLEN=120 CALL DRMR(KLEN,ISEC6,DSC4,BUFF,SNUM1) ISEC6=ISEC6+1 DO 199 I=1,20 RNUMB(I)=BUFF(I) RCONT(I)=BUFF(I+20) 199 RDATE(I)=BUFF(I+40) GOTO 172 180 IF(SNUM1.NE.CSNM)GOTO 183 IRCDE=8 NXT(1)=2HCA NXT(2)=2HM3 NXT(3)=2H1 CALL EXEC(IRCDE,NXT) 183 IF(SNUM1.LT.CSNM)GOTO 192 WRITE(ITTY,41)CSNM 181 L7=L7+1 IF(L7.NE.3)GOTO 400 CALL DRMR(JLEN,KSSS,DSC14,ICD,SNUM1) KSSS=KSSS+1 L7=1 400 IF(ICD(1,L7).NE.999)GOTO 410 CSNM=10000.05E2 GOTO 180 410 CSNM=FLOAT(ICD(1,L7))*1000.+FLOAT(ICD(2,L7)) TFM=ICD(3,L7) PD=ICD(4,L7) DAT(1)=ICD(5,L7) DAT(2)=ICD(6,L7) DAT(3)=ICD(7,L7) DO 420 M8=1,46 420 RP(M8)=ICD(M8+7,L7) 186 CALL DATES(DAT(1),DAT(2),DAT(3),CDAT) IF(CDAT.EQ.0)GOTO 190 IF(PNUMB.LE.CSNM)GOTO 188 WRITE(ITTY,44)CSNM GOTO 181 188 PNUMB=CSNM GOTO 180 190 WRITE(ITTY,39)CSNM GOTO 181 192 KLEN=110 BUFF(1)=SNUM1 DO 194 I=1,12 194 BUFF(I+1)=SNAM1(I) BUFF(14)=GRP1(1) BUFF(15)=GRP1(2) DO 196 I=1,20 BUFF(I+15)=RFM1(I) 196 BUFF(I+35)=RDAT1(I) CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISNEW,DSC1,BUFF,SNUM1) ISNEW=ISNEW+1 LENEW=300 CALL DRMW(LENEW,ISNEW,DSC1,CC1,SNUM1) ISNEW=ISNEW+3 LENEW=100 CALL DRMW(LENEW,ISNEW,DSC1,PS1,SNUM1) ISNEW=ISNEW+1 LENEW=920 CALL DRMW(LENEW,ISNEW,DSC1,RRP1,SNUM1) ISNEW=ISNEW+8 LENEW=40 CALL DRMW(LENEW,ISNEW,DSC1,IPOST,SNUM1) ISNEW=ISNEW+1 CALL EXEC(ICODE,CHN1,ICHN1) IF(PRTT.EQ.0)GOTO 207 I=GRP1(1) IFLG2=0 200 IBUF(1)=I DO 204 J=1,12 204 IBUF(J+1)=SNAM1(J) K1=14 DO 205 I=1,20 DO 205 J=1,5 IBUF(K1)=PS1(I,J) 205 K1=K1+1 K6=2 KLEN=82 BUFF(1)=SNUM1 DO 401 I3=1,20 DO 401 I4=1,2 BUFF(K6)=IPOST(I3,I4) 401 K6=K6+1 CALL DRMW(KLEN,IST,DSC7,BUFF,SNUM1) IST=IST+1 KLEN=113 CALL DRMW(KLEN,IST,DSC7,IBUF,SNUM1) IST=IST+1 IF(IFLG2.NE.0)GOTO 252 207 IF(SNUM2.GT.SNUM1)GOTO 208 IF(SNUM1.EQ.10000.00E2)GOTO 240 GOTO 312 208 SNUM1=SNUM2 IF(NUM1.GT.SNUM1)GOTO 228 IF(NUM1.LT.SNUM1)GOTO 142 IF(DROP.EQ.0)GOTO 216 IFLG=0 GOTO 317 216 ISTS=0 IFLG1=0 217 KLEN=110 CALL DRMR(KLEN,ISTS,DSC6,BUFF,SNUM1) ISTS=ISTS+1 SNUM1=BUFF(1) DO 218 I=1,12 218 SNAM1(I)=BUFF(I+1) GRP1(1)=BUFF(14) GRP1(2)=BUFF(15) DO 220 I=1,20 RFM1(I)=BUFF(I+15) 220 RDAT1(I)=BUFF(I+35) LENTS=300 CALL DRMR(LENTS,ISTS,DSC6,CC1,SNUM1) ISTS=ISTS+3 LENTS=100 CALL DRMR(LENTS,ISTS,DSC6,PS1,SNUM1) ISTS=ISTS+1 LENTS=920 CALL DRMR(LENTS,ISTS,DSC6,RRP1,SNUM1) ISTS=ISTS+8 KLEN=40 CALL DRMR(KLEN,ISTS,DSC6,IPOST,SNUM1) ISTS=0 IF(IFLG1.EQ.0)GOTO 221 GOTO 164 221 DO 222 I=1,12 222 SNAM1(I)=NAME(I) GRP1(1)=SGP(1) GRP1(2)=SGP(2) IFLG=1 GOTO 317 228 IF(SNUM1.EQ.10000.00E2)GOTO 192 IFLG1=1 ISTS=0 GOTO 217 240 IF(NUM1.NE.10000.05E2)GOTO 314 242 IF(RNUMB(NSENT).EQ.10000.05E2)GOTO 246 WRITE(ITTY,40)RNUMB(NSENT) NSENT=NSENT+1 IF(NSENT.LE.20)GOTO 242 NSENT=1 KLEN=120 CALL DRMR(KLEN,ISEC6,DSC4,BUFF,SNUM1) ISEC6=ISEC6+1 DO 244 I=1,20 RNUMB(I)=BUFF(I) RCONT(I)=BUFF(I+20) *($ 244 RDATE(I)=BUFF(I+40) GOTO 242 246 IF(CSNM.EQ.10000.05E2)GOTO 250 248 WRITE(ITTY,41)CSNM L7=L7+1 IF(L7.NE.3)GOTO 430 CALL DRMR(JLEN,KSSS,DSC14,ICD) KSSS=KSSS+1 L7=1 430 IF(ICD(1,L7).EQ.999)GOTO 250 CSNM=FLOAT(ICD(1,L7))*1000.+FLOAT(ICD(2,L7)) TFM=ICD(3,L7) PD=ICD(4,L7) DAT(1)=ICD(5,L7) DAT(2)=ICD(6,L7) DAT(3)=ICD(7,L7) DO 440 M9=1,46 440 RP(M9)=ICD(M9+7,L7) GOTO 248 250 I=0 SNUM1=10000.09E2 TFM=0 PD=0 CDAT=0 NCT=0 NQ=0 NAC=0 NCC=0 DO 251 I8=1,20 251 RFM1(I8)=0 DO 255 I=1,20 DO 255 J=1,2 255 IPOST(I,J)=0 KLEN=82 BUFF(1)=SNUM1 DO 253 I6=2,41 253 BUFF(I6)=0 CALL DRMW(KLEN,ISR,DSC8,BUFF,SNUM1) ISR=ISR+1 KLEN=40 CALL DRMW(KLEN,ISR,DSC8,IPOST,SNUM1) ISR=ISR+1 KLEN=138 CALL DRMW(KLEN,ISR,DSC8,IREPT,SNUM1) ISR=ISR+2 KLEN=100 CALL DRMW(KLEN,ISR,DSC8,PS1,SNUM1) ISR=ISR+1 IFLG2=1 GOTO 200 40 FORMAT(31H -3660- NO RECORD FOR STUDENT,1X,F6.0) 41 FORMAT(31H -3745- NO RECORD FOR STUDENT,1X,F6.0) 44 FORMAT(42H -3790- 30 CARD OUT OF ORDER FOR STUDENT,1X,F6.0) 252 KLEN=1 KSCR=1 KLEN=4600 CALL DRMW(KLEN,KSCR,DSC15,MEAN,SNUM1) NXTPR(1)=2HCA NXTPR(2)=2HM4 NXTPR(3)=2H IRCDE=8 CALL EXEC(IRCDE,NXTPR) END END$ *FTN4,L SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE DATES(MONTH,DAY,YEAR,KDAT) INTEGER DAT(3),YR(10),MO(12),TDAT,YEAR,DAY YR(1)=0 YR(2)=365 YR(3)=730 YR(4)=1096 YR(5)=1461 YR(6)=1826 YR(7)=2191 YR(8)=2557 YR(9)=2922 YR(10)=3287 MO(1)=0 MO(2)=31 MO(3)=59 MO(4)=90 MO(5)=120 MO(6)=151 MO(7)=181 MO(8)=212 MO(9)=243 MO(10)=273 MO(11)=304 MO(12)=334 IF(YEAR.GE.70)GOTO 100 KDAT=0 RETURN 100 IDAT=70 DO 200 K=1,10 KK=K JDAT=IDAT+KK IF(YEAR.LT.JDAT)GOTO 300 200 CONTINUE KDAT=0 RETURN 300 IF(MONTH.GT.0)GOTO 310 KDAT=0 RETURN 310 DO 400 L=2,13 LL=L IF(MONTH.LT.LL)GOTO 500 400 CONTINUE KDAT=0 RETURN 500 IF(DAY.EQ.0)GOTO 600 IF(DAY.GT.31)GOTO 600 KDAT=YR(KK)+MO(LL-1)+DAY RETURN 600 KDAT=0 RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF,SNUM1) REAL SNUM1 INTEGER NAME(3) CALL EXEC(18,NAME,NSECT) IF(NSECT.NE.0)GOTO 800 850 FORMAT(1X,4HFILE,1X,3A2,14H WAS NOT FOUND) WRITE(1,850)(NAME(I),I=1,3) STOP 800 NSCK=(LEN/128)+ISEC+1 IF((ISEC.GE.0).AND.(NSCK.LE.NSECT))GOTO 805 WRITE(1,851)ISEC,(NAME(I),I=1,3),SNUM1 851 FORMAT(17H ILLEGAL SECTOR #,I5,18H IN DRMW FOR FILE ,3A2/ 15X,19HPROCESSING STUDENT ,F6.0) STOP 805 CALL EXEC(15,2,BUF,LEN,NAME,ISEC) RETURN END SUBROUka  TINE DRMR(LEN,ISEC,NAME,BUF,SNUM1) REAL SNUM1 INTEGER NAME(3) CALL EXEC(18,NAME,NSECT) IF(NSECT.NE.0)GOTO 810 WRITE(1,852)(NAME(I),I=1,3) 852 FORMAT(5H FILE,1X,3A2,14H WAS NOT FOUND) STOP 810 NSCK=(LEN/128)+ISEC+1 IF((ISEC.GE.0).AND.(NSCK.LE.NSECT))GOTO 815 WRITE(1,853)ISEC,(NAME(I),I=1,3),SNUM1 853 FORMAT(16HILLEGAL SECTOR #,I5,18H IN DRMR FOR FILE ,3A2/ 15X,19HPROCESSING STUDENT ,F6.0) STOP 815 CALL EXEC(14,2,BUF,LEN,NAME,ISEC) RETURN END END$ ~ FTN4,L PROGRAM SRT30 C C THE VARIABLE LIMIT SHOULD BE SET TO THE MAXIMUM NUMBER C OF CARDS TO BE SORTED + 1. THE FILE CARDS IS ASSUMED TO C BE ABLE TO HOLD THIS MANY CARDS. (EACH SECTOR HOLDS 2 CARDS) C C THE INTEGER ARRAY INAME HOLDS THE NAME OF THE PROGRAM TO C WHICH CONTROL IS TO BE RETURNED. C C AN ERROR IN THE COURSE CODE CAUSES THAT CARD CONTAINING THE C ERROR TO BE IGNORED. C C READING OF CARDS NEVER TERMINATES UNTIL A DIFFERENT CARD TYPE C IS READ. C C IF A CARD LIMIT ERROR OCCURS ALL SUCCEDING CARDS ARE READ UNTIL C A DIFFERENT CARD TYPE IS SENSED. C INTEGER ICARDS(53,2,2),ISENS(2),IFILE(3),INUM(2000),INAME(3) REAL NUM1,RNUMB(20),BUF(8),ANUM(2000),SNUM2,CSNM,SNUM1,PNUMB INTEGER DROP,TFM,PD,CDAT,CONTC,CNT,CPT,CT,SCHL,CRSE,SKOL,CORS 1,PRTS,PRTT,PRTG,TDATE,CCPT,BLANK,PERID,PREIN,POSI,PRT,REPL 1,IREPT(46,3),ISUMY(300,2,3),ISUM2(300,2,3),NAME(12),MFC(50,2), 1IUOC(300),IBUF1(128),SGP(2),RCONT(20),RDATE(20),DAT(3),RP(46), 1SNAM1(12),GRP1(2),CC1(300),PS1(20,5),RFM1(20),RDAT1(20),RRP1 1(46,20),TCC(50),TCD(50),ICCC(50,2),ITCPT(50),SNAM2(12), 1TITLE(24),OPT(4),MCC(300,2),MOC(300,2),CHN1(3),MTNC(15,2), 1ITNA(15,5),MSPC(50,2),CGI(9,2,3),IPOST(20,2),CHN3(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN 11,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,PD,TFM,CSNM,GRP1,IREPT,RP,PS1, 1RFM1,RDAT1,RRP1,CDAT,SNAM1,SNUM1,ISR,CC1,PNUMB,SNUM2,NUM1,BUF, 1RNUMB,DROP,CONTC,MTSN,CNT,TDATE,ISUMY,ISUM2,NAME,IBUF1,SGP,RCONT, 1RDATE,TCC,TCD,SNAM2,K9,K8,IFLG,IFLAG,ISTS,IST,ISNEW,ISECS, 1ISEC1,ISEC6,NSENT,CGI,IPOST C C ALL CONSECUTIVE 20 CARDS ARE READ AND STORED HERE C WRITE(1,1) 1 FORMAT(5HST30') LIMIT=1001 IFILE(1)=2HCA IFILE(2)=2HRD I IFILE(3)=1HS INAME(1)=2HCA INAME(2)=2HM3 INAME(3)=1H IF(CT.EQ.31)GOTO 5 ICON=3 GOTO 600 5 ISECT=0 ICDS=1 10 ISCDS=1 20 READ(INCD,1000)CT,SCHL,CRSE,(ICARDS(I,ISCDS,1),I=1,53) IF(CT.NE.30) GOTO 25 IF(SCHL.NE.SKOL) GOTO 500 IF(CRSE.NE.CORS) GOTO 500 IF(ICDS.EQ.LIMIT) GOTO 510 ANUM(ICDS)=FLOAT(ICARDS(1,ISCDS,1))*1000. 1+FLOAT(ICARDS(2,ISCDS,1)) INUM(ICDS)=ISECT*10+ISCDS ICDS=ICDS+1 ISCDS=ISCDS+1 IF(ISCDS.NE.3) GOTO 20 CALL EXEC(15,2,ICARDS,106,IFILE,ISECT) ISECT=ISECT+1 GOTO 10 C C THE CARDS ARE SORTED HERE C 25 ICARDS(1,ISCDS,1)=999 ICARDS(2,ISCDS,1)=999 CALL EXEC(15,2,ICARDS,106,IFILE,ISECT) IF(ICDS.NE.2)GOTO 26 ICON=2 GOTO 600 26 ISENS(1)=-1 DO 27 ID=1,ICDS-2 IF(ANUM(ID).LE.ANUM(ID+1)) GOTO 27 ERP=ANUM(ID+1) ANUM(ID+1)=ANUM(ID) ANUM(ID)=ERP ISENS(1)=INUM(ID+1) INUM(ID+1)=INUM(ID) INUM(ID)=ISENS(1) 27 CONTINUE IF(ISENS(1).NE.-1) GOTO 26 C C CARDS ARE PHYSICALLY REARRANGED HERE C ICDS=ICDS-1 ICRDS=1 ISECT=0 ISENS(2)=-1 40 ISCDS=1 50 IF(INUM(ICRDS).NE.ISECT*10+ISCDS) GOTO 80 60 IF(ICRDS.EQ.ICDS) GOTO 9999 ICRDS=ICRDS+1 IF(ISCDS.NE.2) GOTO 70 ISECT=ISECT+1 GOTO 40 70 ISCDS=ISCDS+1 GOTO 50 80 ID=ICRDS 83 ISCTR=IFIX(AINT(FLOAT(INUM(ID))/10.)) ICARD=INUM(ID)-ISCTR*10 IF(ISCTR*10+ICARD-ISECT*10-ISCDS) 85,60,90 85 ID=ISCTR*2+ICARD GOTO 83 90 IF(ISCTR.NE.ISENS(1)) GOTO 120 95 IBF1=1 IBF2=1 100 DO 110 I=1,53 ID=ICARDS(I,ICARD,IBF2) ICARDS(I,ICARD,IBF2)=ICARDS(I,ISCDS,IBF1) 110 ICARDS(I,ISCDS,IBF1)=ID GOTO 60 120 IF(ISCTR.EQ.ISENS(2)) GOTO 130 IF(ISENS(2).NE.-1) 1CALL EXEC(15,2,ICARDS(1,1,2),106,IFILE,ISENS(2)) CALL EXEC(14,2,I3 CARDS(1,1,2),106,IFILE,ISCTR) ISENS(2)=ISCTR 130 IF(ISECT.NE.ISCTR) GOTO 140 IBF1=2 IBF2=2 GOTO 100 140 IF(ISECT.EQ.ISENS(1)) GOTO 150 IF(ISENS(1).NE.-1) 1CALL EXEC(15,2,ICARDS,106,IFILE,ISENS(1)) CALL EXEC(14,2,ICARDS,106,IFILE,ISECT) ISENS(1)=ISECT 150 IBF1=1 IBF2=2 GOTO 100 500 WRITE(ITTY,1010)CT GOTO 20 510 WRITE(ITTY,1020) 520 READ(INCD,1030)ICDC IF(ICDC.NE.CT) GOTO 25 GOTO 520 1000 FORMAT(I2,A2,3I3,1X,I3,1X,I2,1X,3I2,3X,46I1) 1010 FORMAT(35HCOURSE CODE MISMATCH. CARD TYPE IS ,I2) 1020 FORMAT(" CARD LIMIT. FOLLOWING CARDS IGNORED.") 1030 FORMAT(I2) 9999 IF(ISENS(1).NE.-1) 1CALL EXEC(15,2,ICARDS,106,IFILE,ISENS(1)) IF(ISENS(2).NE.-1) 1CALL EXEC(15,2,ICARDS(1,1,2),106,IFILE,ISENS(2)) ICON=2 600 CALL EXEC(8,INAME) END END$ FTN4,L PROGRAM CAM31 EXTERNAL DRMR,DRMW,DATES REAL SNUM1,SNUM2,CSNM,NUM1,RNUMB(20),PNUMB,BUF(8),BUFF(60) INTEGER DROP,TFM,PD,CDAT,WCPT,CONTC,MTSN,CNT,RANGE,OBJ,CC,YES,CPT, 1 TMPD,PLUS,MINUS,CT,SCHL,CRSE,SKOL,CORS,PRTS,PRTT,PRTG,TDATE,CCPT, 1 BLANK,PERID,PREIN,POSI,PRT,REPL INTEGER IBUF(128),IREPT(46,3),ISUMY(300,2,3),ISUM2(300,2,3),NAME(1 12),KEY(6,46),MFC(50,2),IUOC(300),IBUF1(128),SGP(2),RCONT(20),RDATE 1(20),DAT(3),RP(46),SNAM1(12),GRP1(2),CC1(300),PS1(20,5),RFM1(20), 1RDAT1(20),RRP1(46,20),TCC(50),TCD(50),DSC1(3),DSC2(3),DSC8(3), 1DSC10(3),ICCC(50,2),ITCPT(50),SNAM2(12),NXTPR(3),TITLE(24),OPT(4), 1MCC(300,2),MOC(300,2),CHN1(3),CHN3(3),MTNC(15,2),ITNA(15,5) INTEGER MSPC(50,2),NXT(3),CGI(9,2,3),DSC12(3),IPOST(20,2) INTEGER ICD(53,2),MEAN(50,46,2),CGI2(9,2,3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1 NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN 11,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,PD,TFM,CSNM,GRP1,IREPT,RP,PS1, 1RFM1,RDAT1,RRP1,CDAT,SNAM1,SNUM1,ISR,CC1,PNUMB,SNUM2,NUM1,BUF, 1RNUMB,DROP,CONTC,MTSN,CNT,TDATE,ISUMY,ISUM2,NAME,IBUF1,SGP,RCONT, 1RDATE,TCC,TCD,SNAM2,K9,K8,IFLG,IFLAG,ISTS,IST,ISNEW,ISECS, 1ISEC1,ISEC6,NSENT,CGI,IPOST,JLEN,KSSS,L7,ICD,MEAN,MEEN,CGI2 DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC10(1),DSC10(2),DSC10(3)/2HDI,2HSK,2HS / DATA PLUS,MINUS,YES/2H +,2H -,2HYS/ DATA DSC2(1),DSC2(2),DSC2(3)/2HDI,2HSK,2HA / DATA DSC8(1),DSC8(2),DSC8(3)/2HDI,2HSK,2HR / DATA DSC12(1),DSC12(2),DSC12(3)/2HCG,2HIN,2HD / C ** PROCESS TEST SEGMENT ** CALL CFIND(MFC,NMFM,TFM,MREP,CPT,50) IF(MREP.NE.0)GOTO 604 WRITE(ITTY,42)CSNM GOTO 661 604 LENA=276 KLEN=2 ISEX=4*(MREP-2) CALL DRMR(KLEN,ISEX,DSC2,IBUF,SNUM1) ISEX=ISEX+1 CALL DRMR(LENA,ISEX,DSC2,KEY,SNUM1) NQ=IBUF(1) RANGE=IBUF(2) IF(PERID.EQ.0)GOTO 620 IPOST(PD,1)=0 IPOST(PD,2)=0 600 IF(GRP1(1).EQ.0)GOTO 614 I=GRP1(1) LENB=1800 ISEXB=(I-2)*15 CALL DRMR(LENB,ISEXB,DSC10,ISUMY,SNUM1) ISCC=I-2 LEGT=54 CALL DRMR(LEGT,ISCC,DSC12,CGI,SNUM1) 614 IF(GRP1(2).EQ.0)GOTO 620 I=GRP1(2) LENB=1800 ISEXB=(I-2)*15 CALL DRMR(LENB,ISEXB,DSC10,ISUM2,SNUM1) ISCC=I-2 LEGT=54 CALL DRMR(LEGT,ISCC,DSC12,CGI2,SNUM1) 620 NCT=0 NCC=0 NAC=0 K7=1 DO 638 M=1,NQ OBJ=KEY(3,M) IF(M.EQ.1)GOTO 612 DO 610 I3=1,M-1 IF(IUOC(OBJ).GT.IREPT(I3,1))GOTO 610 K6=M K7=I3 DO 606 I2=K7,M-1 IREPT(K6,1)=IREPT(K6-1,1) IREPT(K6,2)=IREPT(K6-1,2) IREPT(K6,3)=IREPT(K6-1,3) 606 K6=K6-1 IREPT(K7,1)=BLANK IREPT(K7,2)=BLANK IREPT(K7,3)=BLANK GOTO 612 610 CONTINUE K7=M 612 IREPT(K7,1)=IUOC(OBJ) IF(RP(M).EQ.KEY(1,M))GOTO 622 IF(RP(M).EQ.0)GOTO 624 IREPT(K7,2)=MINUS MEAN(MREP,M,1)=MEAN(MREP,M,1)+1 GOTO 624 622 IREPT(K7,2)=PLUS MEAN(MREP,M,2)=MEAN(MREP,M,2)+1 NCT=NCT+1 624 CC=KEY(5,M) IF(CC1(CC).EQ.0)GOTO 626 IF(CC1(CC).GT.CDAT)GOTO 626 NAC=NAC+1 IF(CC1(CC)+PREIN.GT.CDAT)GOTO 625 IF(CC1(CC)+POSI.LE.CDAT)GOTO 625 IPOST(PD,2)=IPOST(PD,2)+1 IF(IREPT(K7,2).NE.PLUS)GOTO 625 IPOST(PD,1)=IPOST(PD,1)+1 625 IREPT(K7,3)=YES IF(IREPT(K7,2).NE.PLUS)GOTO 626 NCC=NCC+1 626 IF(PERID.EQ.0)GOTO 636 IF(CC1(CC).EQ.0)GOTO 628 IF(CC1(CC)+PREIN.GT.CDAT)GOTO 628 IF(CC1(CC)+POSI.GT.CDAT)GOTO 630 TMPD=3 GOTO 632 628 TMPD=1 GOTO 632 630 TMPD=2 632 IF(GRP1(1).EQ.0)GOTO 634 ISUMY(OBJ,1,TMPD)=ISUMY(OBJ,1,TMPD)+1 IF(IREPT(K7,2).NE.PLUS)GOTO 634 ISUMY(OBJ,2,TMTPD)=ISUMY(OBJ,2,TMPD)+1 634 IF(GRP1(2).EQ.0)GOTO 636 ISUM2(OBJ,1,TMPD)=ISUM2(OBJ,1,TMPD)+1 IF(IREPT(K7,2).NE.PLUS)GOTO 636 ISUM2(OBJ,2,TMPD)=ISUM2(OBJ,2,TMPD)+1 636 IF(KEY(6,M).EQ.0)GOTO 638 IF(GRP1(1).EQ.0)GOTO 635 CGI(KEY(6,M),1,TMPD)=CGI(KEY(6,M),1,TMPD)+1 IF(IREPT(K7,2).NE.PLUS)GOTO 635 CGI(KEY(6,M),2,TMPD)=CGI(KEY(6,M),2,TMPD)+1 635 IF(GRP1(2).EQ.0)GOTO 638 CGI2(KEY(6,M),1,TMPD)=CGI2(KEY(6,M),1,TMPD)+1 IF(IREPT(K7,2).NE.PLUS)GOTO 638 CGI2(KEY(6,M),2,TMPD)=CGI2(KEY(6,M),2,TMPD)+1 638 CONTINUE IF(GRP1(1).EQ.0)GOTO 642 I=GRP1(1) ISEXB=(I-2)*15 CALL DRMW(LENB,ISEXB,DSC10,ISUMY,SNUM1) ISCC=I-2 LEGT=54 CALL DRMW(LEGT,ISCC,DSC12,CGI,SNUM1) 642 IF(GRP1(2).EQ.0)GOTO 648 I=GRP1(2) ISEXB=(I-2)*15 CALL DRMW(LENB,ISEXB,DSC10,ISUM2,SNUM1) ISCC=I-2 LEGT=54 CALL DRMW(LEGT,ISCC,DSC12,CGI2,SNUM1) 648 IF((PD.GE.1).AND.(PD.LE.20))GOTO 650 WRITE(ITTY,43)CSNM GOTO 653 650 PS1(PD,1)=RANGE PS1(PD,2)=NQ PS1(PD,3)=NCT PS1(PD,4)=NAC PS1(PD,5)=NCC RFM1(PD)=TFM RDAT1(PD)=CDAT DO 652 I=1,46 652 RRP1(I,PD)=RP(I) 653 IF(PRTS.EQ.0)GOTO 661 I=GRP1(1) BUFF(1)=SNUM1 BUFF(2)=I DO 654 I=1,12 654 BUFF(I+2)=SNAM1(I) BUFF(15)=TFM BUFF(16)=PD BUFF(17)=CDAT BUFF(18)=NQ BUFF(19)=NCT BUFF(20)=NAC BUFF(21)=NCC DO 656 I8=1,20 656 BUFF(I8+21)=RFM1(I8) KLEN=82 CALL DRMW(KLEN,ISR,DSC8,BUFF,SNUM1) ISR=ISR+1 KLEN=40 CALL DRMW(KLEN,ISR,DSC8,IPOST,SNUM1) ISR=ISR+1 KLEN=138 CALL DRMW(KLEN,ISR,DSC8,IREPT,SNUM1) ISR=ISR+2 KLEN=100 CALL DRMW(KLEN,ISR,DSC8,PS1,SNUM1) ISR=ISR+1 DO 660 I=1,46 IREPT(I,1)=0 IREPT(I,2)=BLANK 660 IREPT(I,3)=BLANK 661 ICON=1 NXT(1)=2HCA _NXT(2)=2HM3 NXT(3)=2H IRCDE=8 CALL EXEC(IRCDE,NXT) 42 FORMAT(41H -5110- INVALID FORM NUMBER FOR STUDENT,1X,F6.0) 43 FORMAT(51H -5360- INVALED ADMINISTRATION NUMBER FOR STUDENT,1X, 1F6.0) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2),UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1))GOTO 50 UPT=CPT GOTO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT)GOTO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF,SNUM1) REAL SNUM1 INTEGER NAME(3) CALL EXEC(18,NAME,NSECT) IF(NSECT.NE.0)GOTO 800 850 FORMAT(1X,4HFILE,1X,3A2,14H WAS NOT FOUND) WRITE(1,850)(NAME(I),I=1,3) STOP 800 NSCK=(LEN/128)+ISEC+1 IF((ISEC.GE.0).AND.(NSCK.LE.NSECT))GOTO 805 WRITE(1,851)ISEC,(NAME(I),I=1,3),SNUM1 851 FORMAT(17H ILLEGAL SECTOR #,I5,18H IN DRMW FOR FILE ,3A2/ 15X,19HPROCESSING STUDENT ,F6.0) STOP 805 CALL EXEC(15,2,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF,SNUM1) REAL SNUM1 INTEGER NAME(3) CALL EXEC(18,NAME,NSECT) IF(NSECT.NE.0)GOTO 810 WRITE(1,852)(NAME(I),I=1,3) 852 FORMAT(5H FILE,1X,3A2,14H WAS NOT FOUND) STOP 810 NSCK=(LEN/128)+ISEC+1 IF((ISEC.GE.0).AND.(NSCK.LE.NSECT))GOTO 815 WRITE(1,853)ISEC,(NAME(I),I=1,3),SNUM1 853 FORMAT(16HILLEGAL SECTOR #,I5,18H IN DRMR FOR FILE ,3A2/ 15X,19HPROCESSING STUDENT ,F6.0) STOP 815 CALL EXEC(14,2,BUF,LEN,NAME,ISEC) RETURN END END$ FTN4,L PROGRAM CAM4 INTEGER CT,SCHL,CRSE,SKOL,CORS,AREAD,PSGPN,SGPN,NSGP,CSGN,BLANK, 1PCGPN,CGPN,CGN,NOB,CGPN2,BUF,SGPT,SGN,PERID,PRTT,PRTS,PRTG,REPL, 1CPT,PREIN,POSI,PRT,CCPT INTEGER SGTLE(17),TNUM(5),SNUM(5),SECTN(5),SCTN(5),CGTLE(8), 1TOBJ(10),CTITL(8),COBJ(100),COBJP(100),TNM(20,3),NUMA(20,3),NUMC(2 10,3),ISUMY(300,2,3),PTITL(13,8),PNUMA(13,20,3),PNUMC(13,20,3), 1NMA(3),NMC(3),IBUF(128),DSC1(3),DSC9(3),DSC10(3),DSC11(3),SGTIT(17 1),MOC(300,2),MSPC(50,2),TITLE(24),NXT(3),ITIMS(5),ITIMF(5),CHN1(3) 1,CHN3(3),OPT(4),MCC(300,2),MFC(50,2),IUOC(300),MTNC(15,2), 1ITNA(15,5),ICCC(50,2),ITCPT(50),DAT(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC9(1),DSC9(2),DSC9(3)/2HDS,2HKS,2HG / C **STUDENT SUMMARY GROUP SEGMENT WRITE(1,1) 1 FORMAT(4HCAM4) LEND=23 ISEC=14260 ISECD=0 ISEXD=0 IFLAG=0 IRCDE=8 IF(CT.NE.35)GOTO 150 IF(SKOL.NE.SCHL)GOTO 100 IF(CORS.EQ.CRSE)GOTO 102 100 WRITE(ITTY,3) GOTO 166 102 AREAD=0 PSGPN=0 106 READ(INCD,45)CT,SCHL,CRSE,SGPN,(SGTLE(I),I=1,17),(TNUM(I),SNUM(I), 1I=1,5) IF(CT.NE.35)GOTO 150 IF(SKOL.NE.SCHL)GOTO 108 IF(CORS.EQ.CRSE)GOTO 110 108 WRITE(6,3) GOTO 166 110 IF(PSGPN.LT.SGPN)GOTO 112 WRITE(ITTY,46)SGPN GOTO 166 112 PSGPN=SGPN IF(AREAD.NE.0)GOTO 124 IF(NEWF.EQ.0)GOTO 122 SGN=1000 GOTO 124 122 READ(INTP)SGN,(SGTIT(I),I=1,17),(SECTN(J),J=1,5) AREAD=1 124 IF(SGPN.LE.SGN)GOTO 130 IFLAG=0 125 IBUF(1)=SGN DO 126 I=1,17 126 IBUF(I+1)=SGTIT(I) DO 128 I=1,5 128 IBUF(I+18)=SECTN(I) 129 CALL EXEC(ICetODE,CHN3,ICHN3) CALL DRMW(LEND,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) CALL DRMW(LEND,ISEXD,DSC9,IBUF) ISEC=ISEC+1 ISEXD=ISEXD+1 IF(IFLAG.EQ.1)GOTO 148 IF(IFLAG.EQ.2)GOTO 164 GOTO 122 130 DO 132 I=1,5 132 SCTN(I)=0 NSGP=1 DO 140 I=1,5 IF(SNUM(I).EQ.0)GOTO 142 IF(TNUM(I).EQ.0)GOTO 134 CSGN=TNUM(I)*100+SNUM(I) GOTO 136 134 CSGN=10000+SNUM(I) 136 CALL CFIND(MSPC,NMSP,CSGN,MREP,CPT,50) IF(MREP.NE.0)GOTO 138 WRITE(6,50)TNUM(I),SNUM(I) GOTO 140 138 SCTN(NSGP)=MREP NSGP=NSGP+1 140 CONTINUE 142 IFLAG=1 IBUF(1)=SGPN DO 144 I=1,17 144 IBUF(I+1)=SGTLE(I) DO 146 I=1,5 146 IBUF(I+18)=SCTN(I) GOTO 129 148 IF(SGPN.EQ.SGN)AREAD=0 GOTO 106 150 IF(NEWF.EQ.0)GOTO 156 SGN=1000 DO 152 I=1,17 152 SGTIT(I)=BLANK DO 154 J=1,5 154 SECTN(J)=0 GOTO 158 156 IF(SGN.EQ.1000)GOTO 158 157 READ(INTP)SGN,(SGTIT(I),I=1,17),(SECTN(J),J=1,5) 158 IFLAG=2 GOTO 125 164 IF(SGN.NE.1000)GOTO 157 NXT(1)=2HCA NXT(2)=2HM5 NXT(3)=2H GOTO 170 166 NXT(1)=2HCA NXT(2)=2HM7 NXT(3)=2H 170 CALL EXEC(IRCDE,NXT) 3 FORMAT(71H -330- SCHOOL AND COURSE CODES DO NOT AGREE WITH THE C 1OURSE DATA FILE) 45 FORMAT(I2,A2,I3,5X,I3,5X,17A2,1X,5(I2,1X,I2)) 46 FORMAT(30H -7080- 35 CARD OUT OF ORDER) 50 FORMAT(20H -7240- TEACHER = ,I3,15H AND SECTION = ,I3,39H IS NOT 1 A VALID STUDENT GROUP PARAMETER) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 X MREP=TMC(CPT,2) RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) IRCDE=15 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END END$ FTN4,L PROGRAM CAM5 INTEGER CT,SCHL,CRSE,SKOL,CORS,AREAD,PSGPN,SGPN,NSGP,CSGN,BLANK, 1PCGPN,CGPN,CGN,NOB,CGPN2,BUF,SGPT,SGN,PERID,PRTT,PRTS,PRTG,REPL, 1CPT,PREIN,POSI,PRT,CCPT,CGNM INTEGER SGTLE(17),TNUM(5),SNUM(5),SECTN(5),SCTN(5),CGTLE(8),NXT(3) 1,TOBJ(10,2),CTITL(8),COBJ(100),COBJP(100),TNM(20,3),NUMA(20,3),NUM 1C(20,3),ISUMY(300,2,3),PTITL(12,8),PNUMA(12,20,3),PNUMC(12,20,3), 1NMA(3),NMC(3),IBUF(128),DSC1(3),DSC9(3),DSC10(3),DSC11(3),SGTIT(17 1),MOC(300,2),MSPC(50,2),TITLE(24),COUNT(10),PCENT(10),ITIMS(5), 1ITIMF(5),CHN1(3),CHN3(3),OPT(4),MCC(300,2),MFC(50,2),IUOC(300), 1MTNC(15,2),ITNA(15,5),ICCC(50,2),ITCPT(50),DAT(3),CGIN(300) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN DATA DSC10(1),DSC10(2),DSC10(3)/2HDI,2HSK,2HS / DATA DSC11(1),DSC11(2),DSC11(3)/2HDS,2HKC,2HT / DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC9(1),DSC9(2),DSC9(3)/2HDS,2HKS,2HG / 3 FORMAT(71H -330- SCHOOL AND COURSE CODES DO NOT AGREE WITH THE C 1OURSE DATA FILE) C ** CONTENT SUMMARY SEGMENT ** WRITE(1,1) 1 FORMAT(4HCAM5) DO 100 I=1,300 100 CGIN(I)=0 199 IFLG=0 ISEXE=0 JCGIN=0 ICGIN=0 IF(CT.EQ.40)GOTO 204 IF(CT.EQ.41)GOTO 250 IF(CT.EQ.99)GOTO 250 WRITE(ITTY,51)CT STOP 204 AREAD=0 PCGPN=0 207 READ(INCD,53)CT,SCHL,CRSE,CGPN,(CGTLE(I),I=1,8),(TOBJ(I,1),TOBJ(I, 12),I=1,10) IF(CT.EQ.40)GOTO 212 IF(CT.EQ.41)GOTO 250 IF(CT.EQ.99)GOTO 250 WRITE(ITTY,51)CT STOP 212 IF(CGPN.GT.PCGPN)GOTO 214 WRITE(ITTY,54) GOTO 166 214 PCGPN=CGPN IF(AREAD.NE.0)GOTO 218 IF(NEWF.EQ.0)GOTO 216 CGN=1000 GOTO 218 216 READ(INTP)CG*CN,(CTITL(I),I=1,8),(COBJ(J),J=1,100),JCGIN AREAD=1 218 IF(CGPN.LE.CGN)GOTO 224 IFLG=0 219 IBUF(1)=CGN DO 220 I=1,8 220 IBUF(I+1)=CTITL(I) DO 221 I=1,100 221 IBUF(I+9)=COBJ(I) IBUF(110)=JCGIN KLEN=110 CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) CALL DRMW(KLEN,ISEXE,DSC11,IBUF) ISEC=ISEC+1 ISEXE=ISEXE+1 IF(IFLG.EQ.2)GOTO 265 GOTO 216 224 NOB=1 DO 226 I=1,100 226 COBJP(I)=0 IF(TOBJ(1,2).NE.9999)GOTO 228 COBJP(1)=10000 GOTO 240 228 DO 232 K=1,10 IF(TOBJ(K,2).EQ.9999)GOTO 240 IF(TOBJ(K,1).EQ.0)GOTO 231 MREP=TOBJ(K,1) ICGIN=1 GOTO 230 231 CALL CFIND(MOC,NMOB,TOBJ(K,2),MREP,CPT,300) ICGIN=0 IF(MREP.NE.0)GOTO 230 GOTO 232 230 COBJP(NOB)=MREP NOB=NOB+1 IF(NOB.LE.100)GOTO 232 WRITE(ITTY,56)CGPN GOTO 166 232 CONTINUE READ(INCD,57)CT,SCHL,CRSE,CGPN2,(TOBJ(I,1),TOBJ(I,2),I=1,10) IF(CT.EQ.40)GOTO 238 WRITE(ITTY,58)CT GOTO 166 238 IF(CGPN.EQ.CGPN2)GOTO 228 WRITE(ITTY,59)CGPN2,CGPN GOTO 166 240 IBUF(1)=CGPN DO 241 I=1,8 241 IBUF(I+1)=CGTLE(I) DO 242 I=1,100 242 IBUF(I+9)=COBJP(I) IBUF(110)=ICGIN KLEN=110 CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) CALL DRMW(KLEN,ISEXE,DSC11,IBUF) ISEC=ISEC+1 ISEXE=ISEXE+1 ICGIN=0 245 IF(CGPN.EQ.CGN)AREAD=0 GOTO 207 250 IF(NEWF.EQ.0)GOTO 256 CGN=1000 DO 252 I=1,8 252 CTITL(I)=BLANK DO 254 I=1,100 254 COBJ(I)=0 GOTO 260 256 IF(CGN.EQ.1000)GOTO 260 258 READ(INTP)CGN,(CTITL(I),I=1,8),(COBJ(J),J=1,100),JCGIN 260 IFLG=2 GOTO 219 265 IF(CGN.NE.1000)GOTO 258 IF(CT.EQ.41)GOTO 280 270 NXT(1)=2HCA NXT(2)=2HM6 NXT(3)=2H CAß LL EXEC(8,NXT) 166 IF(NEWF.NE.0)GOTO 167 REWIND INTP 167 NXT(1)=2HCA NXT(2)=2HM7 NXT(3)=2H IRCDE=8 CALL EXEC(IRCDE,NXT) 280 DO 282 I=1,300 282 CGIN(I)=0 NMCG=1 284 READ(INCD,60)CT,SCHL,CRSE,CGNM IF(CT.EQ.41)GOTO 286 IF(CT.EQ.99)GOTO 288 WRITE(ITTY,61)CT GOTO 288 286 CGIN(NMCG)=CGNM NMCG=NMCG+1 IF(NMCG.LE.300)GOTO 284 WRITE(ITTY,62) GOTO 270 288 CGIN(NMCG)=9999 GOTO 270 51 FORMAT(29H -7505- INVALID SIGNAL CARD,I3) 53 FORMAT(I2,A2,I3,2X,I3,2X,8A2,10(I1,I4)) 54 FORMAT(30H -7580- 40 CARD OUT OF ORDER) 55 FORMAT(19H -7745- OBJECTIVE,I4,19H IS NOT A VALID ONE) 56 FORMAT(51H -7780- MORE THAN 100 OBJECTIVES IN CONTENT GROUP,I4) 57 FORMAT(I2,A2,I3,2X,I3,18X,10(I1,I4)) 58 FORMAT(19H -7820- CARD TYPE,I3,13H SHOULD BE 40) 59 FORMAT(23H -7830- CONTENT GROUP,I4,10H SHOULD BE,I4) 60 FORMAT(I2,A2,I3,2X,I3) 61 FORMAT(27H -7910- INVALID CARD TYPE,I3,17H EXPECTED 99 CARD) 62 FORMAT(48H -7920- MORE THAN 300 CONTENT GROUPS REQUESTED) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2),UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1))GOTO 50 UPT=CPT GOTO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT)GOTO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) IRCDE=15 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END END$ FTN4,L PROGRAM CAM6 INTEGER CT,SCHL,CRSE,SKOL,CORS,AREAD,PSGPN,SGPN,NSGP,CSGN,BLANK, 1PCGPN,CGPN,CGN,NOB,CGPN2,BUF,SGPT,SGN,PERID,PRTT,PRTS,PRTG,REPL, 1CPT,PREIN,POSI,PRT,CCPT,DSC12(3),CGI(9,2,3),DSC13(3) INTEGER SGTLE(17),TNUM(5),SNUM(5),SECTN(5),SCTN(5),CGTLE(8),NXT(3) 1,TOBJ(10,2),CTITL(8),COBJ(100),COBJP(100),TNM(20,3),NUMA(20,3),NUM 1C(20,3),ISUMY(300,2,3),PTITL(12,8),PNUMA(12,20,3),PNUMC(12,20,3), 1NMA(3),NMC(3),IBUF(128),DSC1(3),DSC9(3),DSC10(3),DSC11(3), 1 SGTIT(17),MOC(300,2),MSPC(50,2),TITLE(24),COUNT(10),PCENT(10),ITI 1MS(5),ITIMF(5),CHN1(3),CHN3(3),OPT(4),MCC(300,2),MFC(50,2),IUOC(30 10),MTNC(15,2),ITNA(15,5),ICCC(50,2),ITCPT(50),DAT(3),CGIN(300) INTEGER DS20(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,ICNTP DATA DS20(1),DS20(2),DS20(3)/2HRE,2HRU,2HN / DATA DSC10(1),DSC10(2),DSC10(3)/2HDI,2HSK,2HS / DATA DSC11(1),DSC11(2),DSC11(3)/2HDS,2HKC,2HT / DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC9(1),DSC9(2),DSC9(3)/2HDS,2HKS,2HG / DATA DSC12(1),DSC12(2),DSC12(3)/2HCG,2HIN,2HD / DATA DSC13(1),DSC13(2),DSC13(3)/2HPR,2HIN,2HT / WRITE(1,1) 1 FORMAT(4HCAM6) IPSEC=0 ICNTP=0 JFLGG=0 C *** PROCESS GROUP SUMMARY DATA *** DO 300 I=1,20 DO 300 J=1,3 300 TNM(I,J)=0 IF(NEWF.EQ.0)GOTO 302 SGN=1000 CGN=1000 GOTO 303 302 READ(INTP)SGN,CGN,((NUMA(I,J),I=1,20),J=1,3),((NUMC(L,M),L=1,20),M 1=1,3) 303 ISEXD=0 LEND=23 304 CALL DRMR(LEND,ISEXD,DSC9,IBUF) ISEXD=ISEXD+1 SGPN=IBUF(1) DO 305 I=1,17 305 SGTIT(I)=IBUF(I+1) DO 306 J=1,5 306 SECTN(J)=IBUF(J+18) IF(SGPN.NE.1000)GOTO 312 CGN=1000 IBUF(15)=SGPN IBUF(2)=CGN K1=3 DO 310 I=1,20 DO 310 J=1,3 IBUF(K1)=TNM(I,J) IBUF(K1+60)=TNM(I,J) 310 K1=K1+1 KLEN=122 CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+1 IBUF(1)=NEWF IBUF(2)=CPT IBUF(3)=CCPT IBUF(4)=ICON IBUF(5)=IVAR IBUF(6)=PERID IBUF(7)=REPL IBUF(8)=PRTS IBUF(9)=PRTT IBUF(10)=PRTG IBUF(11)=ISEC IBUF(12)=ICNTP DO 168 I=1,3 168 IBUF(I+12)=DAT(I) DO 169 I=1,50 169 IBUF(I+15)=ITCPT(I) LEN=65 ISC=0 CALL DRMW(LEN,ISC,DS20,IBUF) ISC=ISC+1 LEN=100 CALL DRMW(LEN,ISC,DS20,ICCC) ISC=ISC+1 LEN=300 CALL DRMW(LEN,ISC,DS20,CGIN) IF(NEWF.NE.0)GOTO 166 REWIND INTP 166 IF(PRTG.NE.0)GOTO 167 NXT(1)=2HCA NXT(2)=2HM7 NXT(3)=2H CALL EXEC(8,NXT) 167 NXT(1)=2HCA NXT(2)=2HM6 NXT(3)=2H1 CALL EXEC(8,NXT) 312 MREP=0 ISEXE=0 IF(SECTN(2).NE.0)GOTO 314 IF(PERID.EQ.0)GOTO 314 MREP=SECTN(1) LENN=1800 KSCR=15*(MREP-2) IF(KSCR.GE.0)GOTO 313 WRITE(PRT,87)SGPN,SECTN(1) 87 FORMAT(26HCHECK 35 CARD FOR TEACHER ,I5,8H SECTION,I5) STOP 313 CALL DRMR(LENN,KSCR,DSC10,ISUMY) ISCC=MREP-2 LEGT=54 CALL DRMR(LEGT,ISCC,DSC12,CGI) 314 BUF=1 315 KLEN=110 CALL DRMR(KLEN,ISEXE,DSC11,IBUF) ISEXE=ISEXE+1 CGPN=IBUF(1) DO 316 I=1,8 316 CTITL(I)=IBUF(I+1) DO 317 I=1,100 317 COBJ(I)=IBUF(I+9) ICGN=IBUF(110) 318 IF(CGPN.NE.1000)GOTO 320 IF(BUF.NE.1)GOTO 360 GOTO 304 320 DO 322 I=1,8 322 PTITL(BUF,I)=CTITL(I) IF(SGPN.NE.SGN)GOTO 326 IF(CGPN.NE.CGN)GOTO 326 DO 324 I=1,20 DO 324 J=1,3 PNUMA(BUF,I,J)=NUMA(I,J) 324 PNUMC(BUF,I,J)=NUMC(I,J) READ(INTQP)SGN,CGN,((NUMA(I,J),I=1,20),J=1,3), 1 ((NUMC(I,J),I=1,20),J=1,3) GOTO 330 326 DO 328 I=1,20 DO 328 J=1,3 PNUMA(BUF,I,J)=TNM(I,J) 328 PNUMC(BUF,I,J)=TNM(I,J) 330 IF(PERID.EQ.0)GOTO 356 DO 332 I=1,3 NMA(I)=0 332 NMC(I)=0 DO 346 I=1,5 IF(MREP.NE.0)GOTO 336 SGPT=SECTN(I) IF(SGPT.EQ.0)GOTO 348 KSCR=15*(SGPT-2) LENN=1800 CALL DRMR(LENN,KSCR,DSC10,ISUMY) LEGT=54 ISCC=SGPT-2 CALL DRMR(LEGT,ISCC,DSC12,CGI) 336 IF(COBJ(1).NE.10000)GOTO 340 DO 338 J=1,300 DO 338 K=1,3 NMA(K)=NMA(K)+ISUMY(J,1,K) 338 NMC(K)=NMC(K)+ISUMY(J,2,K) GOTO 344 340 IF(ICGN.EQ.0)GOTO 341 DO 343 J=1,100 DO 343 K=1,3 ICG=COBJ(J) IF(ICG.EQ.0)GOTO 344 NMA(K)=NMA(K)+CGI(ICG,1,K) 343 NMC(K)=NMC(K)+CGI(ICG,2,K) GOTO 344 341 DO 342 J=1,100 DO 342 K=1,3 OBJ=COBJ(J) IF(OBJ.EQ.0)GOTO 344 NMA(K)=NMA(K)+ISUMY(OBJ,1,K) 342 NMC(K)=NMC(K)+ISUMY(OBJ,2,K) 344 IF(MREP.NE.0)GOTO 348 346 CONTINUE 348 IF(REPL.NE.0)GOTO 352 DO 350 K=1,3 PNUMA(BUF,PERID,K)=PNUMA(BUF,PERID,K)+NMA(K) 350 PNUMC(BUF,PERID,K)=PNUMC(BUF,PERID,K)+NMC(K) GOTO 356 352 DO 354 K=1,3 PNUMA(BUF,PERID,K)=NMA(K) 354 PNUMC(BUF,PERID,K)=NMC(K) 356 IBUF(1)=SGPN IBUF(2)=CGPN K1=3 DO 357 J=1,20 DO 357 K=1,3 IBUF(K1)=PNUMA(BUF,J,K) IBUF(K1+60)=PNUMC(BUF,J,K) 357 K1=K1+1 KLEN=122 CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMW(KLEN,ISEC,DSC1,IBUF) CALL EXEC(ICODE,CHN1,ICHN1) ISEC=ISEC+1 DO 319 I=1,300 IF(CGPN.EQ.CGIN(I))GOTO 500 319 CONTINUE GOTO 505 500 BUF=BUF+1 505 IF(BUF.LE.12)GOTO 315 360 IF(PRTG.EQ.0)GOTO 380 ICNTP=ICNTP+1 DO 390 I=1,15 390 IBUF(I)=SGTIT(I) K5=16 DO 392 I=1,12 DO 392 J=1,8 IBUF(K5)=PTITL(I,J) 392 K5=K5+1 IBUF(112)=BUF KLEN=112 CALL DRMW(KLEN,IPSEC,DSC13,IBUF) IPSEC=IPSEC+1 KLEN=720 CALL DRMW(KLEN,IPSEC,DSC13,PNUMA) IPSEC=IPSEC+6 CALL DRMW(KLEN,IPSEC,DSC13,PNUMC) IPSEC=IPSEC+6 380 IF(CGPN.EQ.1000)GOTO 304 BUF=1 GOTO 315 86 FORMAT(1X,42HOVERFLOW ON PRINT FILE. SECTOR EXCEEDS 800) END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) CALL EXEC(15,2,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) CALL EXEC(14,2,BUF,LEN,NAME,ISEC) RETURN END END$ XbFTN4,L PROGRAM CAM61 INTEGER CT,SCHL,CRSE,SKOL,CORS,AREAD,PSGPN,SGPN,NSGP,CSGN,BLANK, 1PCGPN,CGPN,CGN,NOB,CGPN2,BUF,SGPT,SGN,PERID,PRTT,PRTS,PRTG,REPL, 1CPT,PREIN,POSI,PRT,CCPT,DSC12(3),CGI(9,2,3),DSC13(3) INTEGER SGTLE(17),TNUM(5),SNUM(5),SECTN(5),SCTN(5),CGTLE(8),NXT(3) 1,TOBJ(10,2),CTITL(8),COBJ(100),COBJP(100),TNM(20,3),NUMA(20,3),NUM 1C(20,3),ISUMY(300,2,3),PTITL(12,8),PNUMA(12,20,3),PNUMC(12,20,3), 1NMA(3),NMC(3),IBUF(128),DSC1(3),DSC9(3),DSC10(3),DSC11(3), 1 SGTIT(17),MOC(300,2),MSPC(50,2),TITLE(24),COUNT(10),PCENT(10),ITI 1MS(5),ITIMF(5),CHN1(3),CHN3(3),OPT(4),MCC(300,2),MFC(50,2),IUOC(30 10),MTNC(15,2),ITNA(15,5),ICCC(50,2),ITCPT(50),DAT(3),CGIN(300) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,ICNTP DATA DSC10(1),DSC10(2),DSC10(3)/2HDI,2HSK,2HS / DATA DSC11(1),DSC11(2),DSC11(3)/2HDS,2HKC,2HT / DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC9(1),DSC9(2),DSC9(3)/2HDS,2HKS,2HG / DATA DSC12(1),DSC12(2),DSC12(3)/2HCG,2HIN,2HD / DATA DSC13(1),DSC13(2),DSC13(3)/2HPR,2HIN,2HT / C *** PRINT GROUP SUMMARY REPORT *** WRITE(1,1) 1 FORMAT(5HCAM61) GOTO 400 394 IFLGG=0 396 WRITE(PRT,70) WRITE(PRT,71) WRITE(PRT,80) WRITE(PRT,73)(TITLE(N),N=1,24),(SGTIT(L),L=1,15) WRITE(PRT,74) IF(PERID.LE.10)GOTO 362 IFRST=PERID-9 ILAST=PERID ILST=10 DO 361 N=0,9 361 COUNT(N+1)=IFRST+N WRITE(PRT,81)(COUNT(N),N=1,10) GOTO 363 362 IFRST=1 ILAST=PERID ILST=PERID WRITE(PRT,75) 363 IF(IFLGG.EQ.1)GOTO 366 DO 366 I=1,BUF-1 WRITE(PRT,76)(PTITL(I,J),J=1,8) L1=1 DO 364 K=IFRST,ILAST IF(PNUMA(I,K,1).NE.0)GOTO 371 A PCENT(L1)=0 GOTO 364 371 PRCT1=PNUMC(I,K,1) PRCT2=PNUMA(I,K,1) PCENT(L1)=(PRCT1/PRCT2+.005)*100 364 L1=L1+1 WRITE(PRT,77)(PCENT(K),K=1,ILST) WRITE(PRT,78) L1=1 DO 365 K=IFRST,ILAST IF(PNUMA(I,K,2).NE.0)GOTO 372 PCENT(L1)=0 GOTO 365 372 PRCT1=PNUMC(I,K,2) PRCT2=PNUMA(I,K,2) PCENT(L1)=(PRCT1/PRCT2+.005)*100 365 L1=L1+1 WRITE(PRT,77)(PCENT(K),K=1,ILST) WRITE(PRT,79) L1=1 DO 370 K=IFRST,ILAST IF(PNUMA(I,K,3).NE.0)GOTO 374 PCENT(L1)=0 GOTO 370 374 PRCT1=PNUMC(I,K,3) PRCT2=PNUMA(I,K,3) PCENT(L1)=(PRCT1/PRCT2+.005)*100 370 L1=L1+1 WRITE(PRT,77)(PCENT(K),K=1,ILST) WRITE(PRT,80) WRITE(PRT,84) WRITE(PRT,77)(PNUMA(I,K,1),K=IFRST,ILAST) WRITE(PRT,85) WRITE(PRT,77)(PNUMA(I,K,2),K=IFRST,ILAST) WRITE(PRT,79) WRITE(PRT,77)(PNUMA(I,K,3),K=IFRST,ILAST) WRITE(PRT,80) IF(I.NE.6)GOTO 366 IFLGG=1 GOTO 396 366 CONTINUE GOTO 420 400 DO 425 K9=1,PRTG IPSEC=0 DO 420 L9=1,ICNTP KLEN=112 CALL DRMR(KLEN,IPSEC,DSC13,IBUF) IPSEC=IPSEC+1 KLEN=720 CALL DRMR(KLEN,IPSEC,DSC13,PNUMA) IPSEC=IPSEC+6 CALL DRMR(KLEN,IPSEC,DSC13,PNUMC) IPSEC=IPSEC+6 DO 410 I9=1,15 410 SGTIT(I9)=IBUF(I9) K5=16 DO 415 I9=1,12 DO 415 J9=1,8 PTITL(I9,J9)=IBUF(K5) 415 K5=K5+1 BUF=IBUF(112) GOTO 394 420 CONTINUE 425 CONTINUE NXT(1)=2HCA NXT(2)=2HM7 NXT(3)=2H CALL EXEC(8,NXT) 70 FORMAT(1H1) 71 FORMAT(70H COMPREHENSIVE ACHIEVEMENT MONITORING - GROUP 1SUMMARY REPORT) 73 FORMAT(1H0,24A2,1X,15A2) 74 FORMAT(1H0,25X,26HTEST ADMINISTRATION PERIOD) 75 FORMAT(3X,14HQUESTION GROUP,7X,55H1 2 3 4 5 6 1 7 8 9 10) 76 FORMAT(1H*,8A2,1X,4HPRE ) 7V 7 FORMAT(19X,10(1X,I5)) 78 FORMAT(1H*,7X,13HPCT COR POST) 79 FORMAT(1H*,16X,4HRETN) 80 FORMAT(1H ) 81 FORMAT(3X,14HQUESTION GROUP,2X,10(1X,I5)) 84 FORMAT(1H*,17X,4HPRE ) 85 FORMAT(1H*,6X,14HNUM RESP POST) 86 FORMAT(1X,42HOVERFLOW ON PRINT FILE. SECTOR EXCEEDS 800) END SUBROUTINE DRMW(LEN,ISEC,NAME,BUF) CALL EXEC(15,2,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) CALL EXEC(14,2,BUF,LEN,NAME,ISEC) RETURN END END$ sIFTN4,L PROGRAM CAM7 REAL SNUM1,PSNU1(13),BUFF(41) INTEGER TNMB,SNMB,CSGI,BUF,TFM,PD,CDAT,NQ,NCT,NAC,NCC,NM1,PT1,VAL, 1MINPT,TOP1,MINV,PP1,PT2,TOP2,TEMP,PPT,BLANK,PRTT,PRTS,PRTG,PERID, 1REPL,YES,CT,SCHL,CRSE,SKOL,CORS,CPT,PREIN,POSI,PRT,CCPT INTEGER SNAM1(12),PS1(20,5),PSNA1(13,12),PPS1(13,20,5),IREPT(46,3) 1,OOP(46),DSC1(3),DSC7(3),DSC8(3),IBUF(128),TITLE(24),ITNA(15,5), 1COUNT(8),MSPC(50,2),MTNC(15,2),OPT(4),DAT(3),ITIMS(5),ITIMF(5), 1NXT(3),MCC(300,2),MFC(50,2),MOC(300,2),IUOC(300),CHN1(3),CHN3(3), 1ICCC(50,2),ITCPT(50),ISCOR(8),IPOST(20,2) INTEGER IPPOS(13,20,2),CGIN(300) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,MIN,MIN1 DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC7(1),DSC7(2),DSC7(3)/2HDI,2HSK,2HT / DATA DSC8(1),DSC8(2),DSC8(3)/2HDI,2HSK,2HR / DATA YES/2HYS/ C ** PRINT TEACHER ROSTER SEGMENT ** WRITE(1,1) 1 FORMAT(4HCAM7) ISTNO=0 IF(PRTT.NE.0)GOTO 801 MIN1=0 GOTO 902 801 PPT=1 800 IF(MSPC(PPT,1).GE.10000)GOTO 900 IST=0 TNMB=MSPC(PPT,1)/100 SNMB=MSPC(PPT,1)-TNMB*100 CALL CFIND(MTNC,NMTN,TNMB,MREP,CPT,15) CSGI=MSPC(PPT,2) 810 BUF=1 820 KLEN=82 CALL DRMR(KLEN,IST,DSC7,BUFF) IST=IST+1 SNUM1=BUFF(1) K6=2 DO 805 I3=1,20 DO 805 I4=1,2 IPOST(I3,I4)=BUFF(K6) 805 K6=K6+1 KLEN=113 CALL DRMR(KLEN,IST,DSC7,IBUF) IST=IST+1 I=IBUF(1) DO 822 J=1,12 822 SNAM1(J)=IBUF(J+1) K1=14 DO 823 L=1,20 DO 823 J=1,5 PS1(L,J)=IBUF(K1) 823 K1=K1+1 IF(SNUM1.GE.10000.00E2)GOTO 828 IF(I.NE.CSGI)GOTO 820 PSNU1(BUF)=SNUM1 DO 824 J=1,12 82 4 PSNA1(BUF,J)=SNAM1(J) DO 826 J=1,20 DO 826 K=1,5 826 PPS1(BUF,J,K)=PS1(J,K) DO 829 J=1,20 DO 829 K=1,2 829 IPPOS(BUF,J,K)=IPOST(J,K) IF(BUF.EQ.13)GOTO 830 BUF=BUF+1 GOTO 820 828 IF(BUF.NE.1)GOTO 830 PPT=PPT+1 GOTO 800 830 WRITE(PRT,83) WRITE(PRT,84) WRITE(PRT,85)(TITLE(I),I=1,20),SNMB,(ITNA(MREP,K),K=1,5),TNMB WRITE(PRT,86) IF(PERID.LE.7)GOTO 832 IFRST=PERID-6 ILAST=PERID ILST=7 DO 831 I=0,6 831 COUNT(I+1)=IFRST+I WRITE(PRT,87)(COUNT(I),I=1,7) GOTO 834 832 IFRST=1 ILAST=PERID ILST=PERID DO 833 I=0,6 833 COUNT(I+1)=IFRST+I WRITE(PRT,87)(COUNT(I),I=1,7) 834 WRITE(PRT,88) DO 840 I=1,BUF IF(PSNU1(I).EQ.0)GOTO 840 WRITE(PRT,89)PSNU1(I),(PSNA1(I,K),K=1,9) ICTOT=0 ICTO1=0 ICYES=0 ICYE1=0 ICUCP=0 ICUTP=0 IF((IVAR.GT.0).AND.(IVAR.LE.PERID))GOTO 20 IVAR=1 20 DO 679 J=IVAR,PERID ICTOT=PPS1(I,J,2)+ICTOT ICTO1=PPS1(I,J,3)+ICTO1 ICYES=PPS1(I,J,4)+ICYES ICYE1=PPS1(I,J,5)+ICYE1 ICUCP=IPPOS(I,J,1)+ICUCP 679 ICUTP=IPPOS(I,J,2)+ICUTP IF(OPT(3).EQ.0)GOTO 680 WRITE(PRT,113)ICTO1,ICTOT,(PPS1(I,IFRST+K-1,3), 1 PPS1(I,IFRST+K-1,2),K=1,ILST) WRITE(PRT,114)ICYE1,ICYES,(PPS1(I,IFRST+K-1,5), 1 PPS1(I,IFRST+K-1,4),K=1,ILST) IF(OPT(4).EQ.0)GOTO 681 WRITE(PRT,135)ICUCP,ICUTP,(IPPOS(I,IFRST+K-1,1),IPPOS(I,IFRST+K-1, 12),K=1,ILST) WRITE(PRT,88) GOTO 840 681 WRITE(PRT,92) GOTO 840 680 DO 836 K=1,7 RPPS1=PPS1(I,IFRST+K-1,3) RPPS2=PPS1(I,IFRST+K-1,2) IF(RPPS2.NE.0)GOTO 835 ISCOR(K)=0 GOTO 836 835 ISCOR(K)=(RPPS1/RPPS2+.005)*100 836 CONTINUE IF(ICTOT.NE.0)GOTO 678 ICNT=0 GOTO 677 678 CTOT=ICTOT CTO1=ICTO1 ICNT=(CTO1/CTOT+.005)*100 677 IF(ICYES.NE.0)GOTO 676 ICYT=0 GOTO 675 676 CYES=ICYES CYE1=ICYE1 ICYT=(CYE1/CYES+.005)*100 675 WRITE(PRT,90)ICNT,(ISCOR(K),K=1,ILST) DO 838 K=1,7 RPPS1=PPS1(I,IFRST+K-1,5) RPPS2=PPS1(I,IFRST+K-1,4) IF(RPPS2.NE.0)GOTO 837 ISCOR(K)=0 GOTO 838 837 ISCOR(K)=(RPPS1/RPPS2+.005)*100 838 CONTINUE WRITE(PRT,91)ICYT,(ISCOR(K),K=1,ILST) IF(OPT(4).NE.0)GOTO 682 WRITE(PRT,92) GOTO 840 682 DO 839 K=1,7 RPPS1=IPPOS(I,IFRST+K-1,1) RPPS2=IPPOS(I,IFRST+K-1,2) IF(RPPS2.NE.0)GOTO 841 ISCOR(K)=0 GOTO 839 841 ISCOR(K)=(RPPS1/RPPS2+.005)*100 839 CONTINUE IF(ICUTP.NE.0)GOTO 845 ICPT=0 GOTO 846 845 ICPT=IFIX((FLOAT(ICUCP)/FLOAT(ICUTP)+.005)*100.) 846 WRITE(PRT,136)ICPT,(ISCOR(K),K=1,ILST) WRITE(PRT,88) 840 CONTINUE DO 852 J=1,13 PSNU1(J)=0 DO 852 K=1,12 852 PSNA1(J,K)=BLANK DO 854 J=1,13 DO 854 K=1,20 DO 854 L=1,5 854 PPS1(J,K,L)=0 DO 858 J=1,13 DO 858 K=1,20 DO 858 L=1,2 858 IPPOS(J,K,L)=0 IF(SNUM1.NE.10000.09E2)GOTO 810 PPT=PPT+1 GOTO 800 900 PRTT=PRTT-1 IF(PRTT.NE.0)GOTO 801 902 NXT(1)=2HCA NXT(2)=2HM8 NXT(3)=2H CALL EXEC(8,NXT) 83 FORMAT(1H1) 84 FORMAT(10X,61HCOMPREHENSIVE ACHIEVEMENT MONITORING - TEACHER SUMMA 1RY REPORT) 85 FORMAT(1H0,20A2,2X,7HSECTION,I4,3X,5A2,2X,I3) 86 FORMAT(1H0,31X,3HCUM,11X,26HTEST ADMINISTRATION PERIOD) 87 FORMAT(1X,6HNUMBER,6X,4HNAME,14X,5HTOTAL,3X,I2,6(4X,I2)) 88 FORMAT(1H ) 89 FORMAT(1H*,F6.0,1X,9A2,3HTOT) 90 FORMAT(32X,I3,7(3X,I3)) 91 FORMAT(26X,3HYES,8(3X,I3)) 92 FORMAT(1H0) 113 FORMAT(30X,I3,1H/,I3,7(1X,I2,1H/,I2)) 114 FORMAT(26X,4HYES ,I3,1H/,I3,7(1X,I2,1H/,I2)) 135 FORMAT(26X,4HPST ,I3,1H/,I3,7(1X,I2,1H/,I2)) 136 FORMAT(26X,3HPST,8(3X,I3)) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) ; INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END END$ FTN4,L PROGRAM CAM8 REAL SNUM1,PSNU1(13),BUFF(41) INTEGER TNMB,SNMB,CSGI,BUF,TFM,PD,CDAT,NQ,NCT,NAC,NCC,NM1,PT1,VAL, 1MINPT,TOP1,MINV,PP1,PT2,TOP2,TEMP,PPT,BLANK,PRTT,PRTS,PRTG,PERID, 1REPL,YES,CT,SCHL,CRSE,SKOL,CORS,CPT,PREIN,POSI,PRT,CCPT INTEGER SNAM1(12),PS1(20,5),PSNA1(13,12),PPS1(13,20,5),IREPT(46,3) 1,OOP(46),DSC1(3),DSC7(3),DSC8(3),IBUF(128),TITLE(24),ITNA(15,5), 1COUNT(8),MSPC(50,2),MTNC(15,2),OPT(4),DAT(3),ITIMS(5),ITIMF(5), 1NXT(3),MCC(300,2),MFC(50,2),MOC(300,2),IUOC(300),CHN1(3),CHN3(3), 1ICCC(50,2),ITCPT(50),CGIN(300),RFM1(20),IPOST(20,2) INTEGER DSC15(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,MIN,MIN1,MIN2 DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DSC7(1),DSC7(2),DSC7(3)/2HDI,2HSK,2HT / DATA DSC8(1),DSC8(2),DSC8(3)/2HDI,2HSK,2HR / DATA DSC15(1),DSC15(2),DSC15(3)/2HTF,2HME,2HN / DATA YES/2HYS/ C **PRINT STUDENT REPORT SEGMENT ** WRITE(1,1) 1 FORMAT(4HCAM8) 902 IF(PRTS.EQ.0)GOTO 992 906 ICDAT=0 IFMT=0 WRITE(PRT,83) PPT=1 910 IF(MSPC(PPT,1).GE.10000)GOTO 990 ISR=0 TNMB=MSPC(PPT,1)/100 SNMB=MSPC(PPT,1)-TNMB*100 CALL CFIND(MTNC,NMTN,TNMB,MREP,CPT,15) CSGI=MSPC(PPT,2) 915 KLEN=82 CALL DRMR(KLEN,ISR,DSC8,BUFF) ISR=ISR+1 KLEN=40 CALL DRMR(KLEN,ISR,DSC8,IPOST) ISR=ISR+1 KLEN=138 CALL DRMR(KLEN,ISR,DSC8,IREPT) ISR=ISR+2 KLEN=100 CALL DRMR(KLEN,ISR,DSC8,PS1) ISR=ISR+1 SNUM1=BUFF(1) I=BUFF(2) DO 920 J=1,12 920 SNAM1(J)=BUFF(J+2) TFM=BUFF(15) PD=BUFF(16) CDAT=BUFF(17) NQ=BUFF(18) NCT=BUFF(19) NAC=BUFF(20) NCC=BUFF(21) DO 921 I8=1,20 921 RFM1(I8)=BUFF(I8+21) IF(SNUM1.NE.10000.09E2)GOTO 922 PPT=PPT+1 GOTO 910 922 IF(CSGI.NE.I)GOTO 915 DO 924 J=1,46 924 OOP(J)=J NM1=NQ-1 DO 940 PT1=1,NM1 MINPT=PT1 TOP1=OOP(PT1) MINV=IREPT(TOP1,1) PP1=PT1+1 DO 928 PT2=PP1,NQ TOP2=OOP(PT2) VAL=IREPT(TOP2,1) IF(MINV.LE.VAL)GOTO 928 MINPT=PT2 MINV=VAL 928 CONTINUE TEMP=OOP(MINPT) OOP(MINPT)=OOP(PT1) OOP(PT1)=TEMP 940 CONTINUE IF(ICDAT.EQ.CDAT)GOTO 941 CALL DATER(DAT(1),DAT(2),DAT(3),CDAT) ICDAT=CDAT 941 WRITE(PRT,95)(SNAM1(I),I=1,12),SNUM1,SNMB,(ITNA(MREP,J),J=1,5),TNM 1B WRITE(PRT,96)PD,(DAT(I),I=1,3),TFM,SKOL,CORS IF(OPT(2).EQ.0)GOTO 970 RNCC=NCC RNAC=NAC IF(NAC.NE.0)GOTO 945 IPERY=0 GOTO 947 945 IPERY=(RNCC/RNAC+.005)*100 947 WRITE(PRT,98)IPERY GOTO 972 970 WRITE(PRT,110)NCC,NAC 972 IF(OPT(4).EQ.0)GOTO 973 IF(OPT(2).NE.0)GOTO 800 WRITE(PRT,115) GOTO 810 800 WRITE(PRT,124) 810 WRITE(PRT,116) GOTO 975 973 IF(OPT(2).NE.0)GOTO 820 WRITE(PRT,99) GOTO 830 820 WRITE(PRT,125) 830 WRITE(PRT,100) 975 DO 948 I=1,23 IF(NQ.GT.23)GOTO 943 IF(IREPT(I,1).NE.0)GOTO 964 WRITE(PRT,108) GOTO 946 964 WRITE(PRT,101)(IREPT(I,J),J=1,2) IF(IREPT(I,3).NE.YES)GOTO 946 WRITE(PRT,104) GOTO 946 943 WRITE(PRT,103)(IREPT(I,J),J=1,2) IF(IREPT(I,3).EQ.BLANK)GOTO 960 WRITE(PRT,104) 960 IF(IREPT(I+23,1).EQ.0)GOTO 946 WRITE(PRT,105)(IREPT(I+23,K),K=1,2) IF(IREPT(I+23,3).NE.YES)GOTO 946 WRITE(PRT,106) 946 IF(I.LE.PD)GOTO 962 WRITE(PRT,107) GOTO 948 962 IF(OPT(2).EQ.0)GOTO 974 IF(OPT(4).EQ.0)GOTO 963 WRITE(PRT,117)I,RFM1(I),PS1(I,3),PS1(I,2),PS1(I,5),PS1(I,4),IPOST( 1I,1),IPOST(I,2) GOTO 948 963 WRITE(PRT,111)I,PS1(I,3),PS1(I,2),PS1(I,5),PS1(I,4) GOTO 948 974 IF(PS1(I,2).NE.0)GOTO 955 IPCT1=0 GOTO 949 955 PCT1=PS1(I,3) PCT2=PS1(I,2) IPCT1=(PCT1/PCT2+.005)*100 949 IF(PS1(I,4).NE.0)GOTO 951 IPCT2=0 GOTO 952 951 PCT1=PS1(I,5) PCT2=PS1(I,4) IPCT2=(PCT1/PCT2+.005)*100 952 IF(OPT(4).NE.0)GOTO 965 WRITE(PRT,102)I,IPCT1,IPCT2 GOTO 948 965 IF(IPOST(I,2).NE.0)GOTO 966 IPCT3=0 GOTO 967 966 PCT1=IPOST(I,2) PCT2=IPOST(I,1) IPCT3=(PCT2/PCT1+.005)*100 967 WRITE(PRT,118)I,RFM1(I),IPCT1,IPCT2,IPCT3 948 CONTINUE ICUMT=0 ICUMC=0 ICUTY=0 ICUCY=0 ICUTP=0 ICUCP=0 IF((IVAR.GT.0).AND.(IVAR.LE.PERID))GOTO 30 IVAR=1 30 DO 976 K=IVAR,PERID ICUTP=IPOST(K,2)+ICUTP ICUCP=IPOST(K,1)+ICUCP ICUMT=PS1(K,2)+ICUMT ICUMC=PS1(K,3)+ICUMC ICUTY=PS1(K,4)+ICUTY 976 ICUCY=PS1(K,5)+ICUCY IF(OPT(2).EQ.0)GOTO 978 IF(OPT(4).NE.0)GOTO 993 WRITE(PRT,94)ICUMC,ICUMT,ICUCY,ICUTY GOTO 979 993 WRITE(PRT,119)ICUMC,ICUMT,ICUCY,ICUTY,ICUCP,ICUTP GOTO 979 978 IF(ICUMT.NE.0)GOTO 982 IPCK1=0 GOTO 984 982 PCK=ICUMC PCK1=ICUMT IPCK1=(PCK/PCK1+.005)*100 984 IF(ICUTY.NE.0)GOTO 986 IPCK2=0 GOTO 988 986 PCK=ICUCY PCK1=ICUTY IPCK2=(PCK/PCK1+.005)*100 988 IF(OPT(4).NE.0)GOTO 994 WRITE(PRT,112)IPCK1,IPCK2 GOTO 979 994 IF(ICUTP.NE.0)GOTO 995 IPCK3=0 GOTO 996 995 PCK=ICUCP PCK1=ICUTP IPCK3=(PCK/PCK1+.005)*100 996 WRITE(PRT,122)IPCK1,IPCK2,IPCK3 979 IFMT=IFMT+1 IF(IFMT.EQ.2)GOTO 950 WRITE(PRT,123) GOTO 915 950 IFMT=0 WRITE(PRT,83) GOTO 915 990 PRTS=PRTS-1 IF(PRTS.NE.0)GOTO 906 992 KLEN=1 KSCR=0 CALL DRMR(KLEN,KSCR,DSC15,MEEN) IF(MEEN.EQ.0)GOTO 998 NXT(1)=2HCA NXT(2)=2HM1 NXT(3)=2H0 CALL EXEC(8,NXT) 998 NXT(1)=2HCA NXT(2)=2HM9 NXT(3)=2H CALL EXEC(8,NXT) 83 FORMAT(1H1) 88 FORMAT(1H ) 92 FORMAT(1H0) 93 FORMAT(5X,70H***************************************************** 1*****************) 94 FORMAT(5X,1H*,31X,7HCUM AVG,1X,I3,1H/,I3,3X,I3,1H/,I3,12X,1H*) 95 FORMAT(5X,1H*,1X,12A2,2X,F6.0,2X,7HSECTION,I3,2X,5A2,1X,I3,7X,1H*) 96 FORMAT(5X,1H*,15X,8HTEST ADM,I3,3H - ,2(I2,1H/),I2,10X,4HFORM, 1I4,5X,A2,I3,3X,1H*) 98 FORMAT(5X,36H* PERCENTAGE CORRECT ON YES ITEMS IS,I4,29X,1H*) 99 FORMAT(5X,1H*,25X,4HTEST,10X,2(10HPER COR ),9X,1H*) 100 FORMAT(5X,27H* OBJ A INS OBJ A INS ,3HADM,11X,5HTOTAL,6X, 13HYES,14X,1H*) 101 FORMAT(1H*,4X,2H* ,I4,A2) 102 FORMAT(32X,I2,13X,I3,7X,I3,14X,1H*) 103 FORMAT(1H*,4X,2H* ,I4,A2) 104 FORMAT(1H*,13X,3HYES) 105 FORMAT(1H*,18X,I4,A2) 106 FORMAT(1H*,25X,3HYES) 107 FORMAT(74X,1H*) 108 FORMAT(1H*,4X,1H*) 110 FORMAT(5X,34H* FRACTION CORRECT ON YES ITEMS IS,I4,1H/,I2,28X,1H*) 111 FORMAT(32X,I2,12X,I2,1H/,I2,5X,I2,1H/,I2,13X,1H*) 112 FORMAT(5X,1H*,32X,7HCUM AVG,2X,I3,7X,I3,14X,1H*) 115 FORMAT(5X,1H*,25X,4HTEST,10X,2(10HPER COR ),10HPER COR *) 116 FORMAT(5X,27H* OBJ A INS OBJ A INS ,19HADM FORM TOTAL, 16X,3HYES,7X,8HPOST *) 117 FORMAT(32X,I2,4X,I4,4X,I2,1H/,I2,5X,I2,1H/,I2,5X,I2,1H/,I2,3X,1H*) 118 FORMAT(32X,I2,4X,I4,5X,I3,7X,I3,8X,I3,3X,1H*) 119 FORMAT(5X,1H*,31X,7HCUM AVG,1X,I3,1H/,I3,3X,I3,1H/,I3,3X,I3,1H/,I3, 1,3H *) 122 FORMAT(5X,1H*,32X,7HCUM AVG,2X,I3,7X,I3,8X,I3,3X,1H*) 123 FORMAT(4(20H--------------------)) 124 FORMAT(5X,1H*,25X,4HTEST,10X,2(10HFCT COR ),10HFCT COR *) 125 FORMAT(5X,1H*,25X,4HTEST,10X,2(10HFCT COR ),9X,1H*) END SUBROUTINE CFIND(TMC,NMV,VALUE,MREP,CPT,N) INTEGER TMC(N,2) INTEGER UPT,CPT,CPTN,VALUE UPT=NMV LPT=0 CPT=(UPT+LPT+1)/2 45 IF(VALUE.GT.TMC(CPT,1)) GOTO 50 UPT=CPT GO TO 60 50 LPT=CPT 60 CPTN=(UPT+LPT+1)/2 IF(CPTN.EQ.CPT) GO TO 70 CPT=CPTN GOTO 45 70 IF(VALUE.EQ.TMC(CPT,1))GOTO 90 MREP=0 RETURN 90 MREP=TMC(CPT,2) RETURN END SUBROUTINE CADD(TMC,NMV,VALUE,CPT,N) INTEGER TMC(N,2) INTEGER CPT,VALUE DO 75 K=CPT,NMV KK=NMV+CPT-K TMC(KK+1,1)=TMC(KK,1) 75 TMC(KK+1,2)=TMC(KK,2) NMV=NMV+1 TMC(CPT,1)=VALUE TMC(CPT,2)=NMV RETURN END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DATER(MONTH,DAY,YEAR,CDAT) INTEGER MONTH,DAY,YEAR,CDAT,YR(10),MO(12) YR(1)=0 YR(2)=365 YR(3)=730 YR(4)=1096 YR(5)=1461 YR(6)=1826 YR(7)=2191 YR(8)=2557 YR(9)=2922 YR(10)=3287 MO(1)=0 MO(2)=31 MO(3)=59 MO(4)=90 MO(5)=120 MO(6)=151 MO(7)=181 MO(8)=212 MO(9)=243 MO(10)=273 MO(11)=304 MO(12)=334 DO 10 I=1,10 IF(CDAT.LE.YR(I))GOTO 20 10 CONTINUE YEAR=0 GOTO 25 20 YEAR=68+I 25 MON=CDAT-YR(I-1) DO 30 J=1,12 IF(MON.LE.MO(J))GOTO 40 30 CONTINUE DAY=MON-MO(12) MONTH=12 GOTO 50 40 MONTH=J-1 DAY=MON-MO(J-1) 50 RETURN END END$ FTN4,L PROGRAM CAM9 REAL MIC1(900),SNUM1,BUFF(60) INTEGER CT,SCHL,CRSE,SKOL,CORS,PREIN,POSI,RNGE,SGN,CGN,CPT,BLANK, 1PRT,CCPT,PERID,REPL,PRTS,PRTT,PRTG,CGIN(100) INTEGER IBUF(128),TITLE(24),OPT(4),MUC(50,2),IUOC(300),MOC(300,2), 1MIC2(900),MCC(300,2),MFC(50,2),KEY(6,46),MTNC(15,2),MSPC(50,2), 1ITNB(15),ITNA(15,5),SNAM1(12),GRP1(2),RFM1(20),RDAT1(20),CC1(300), 1PS1(20,5),RRP1(46,20),SGTIT(17),SECTN(5),CTITL(8),COBJ(100),NUMA(2 10,3),NUMC(20,3),DSC1(3),ITIMF(5),IPOST(20,2),DAT(3),CHN1(3), 1CHN3(3),ICCC(50,2),ITCPT(50) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,MIN,MIN1,MIN2 DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / ISTNO=0 DO 98 I=1,5 98 ITIMF(I)=0 WRITE(1,123) PAUSE IOTP=10 WRITE(IOTP)SKOL,CORS,(TITLE(I),I=1,24),PREIN,POSI,(OPT(I),I=1,4) KLEN=5 KSCR=1 CALL EXEC(ICODE,CHN3,ICHN3) CALL DRMR(KLEN,KSCR,DSC1,IBUF) NMUT=IBUF(1) NMIT=IBUF(3) KLEN=100 KSCR=2 CALL DRMR(KLEN,KSCR,DSC1,MUC) WRITE(IOTP)NMUT,((MUC(I,J),I=1,50),J=1,2) WRITE(IOTP)NMOB,((MOC(I,J),I=1,300),J=1,2),(IUOC(J),J=1,300) KLEN=1800 KSCR=11 CALL DRMR(KLEN,KSCR,DSC1,MIC1) KLEN=900 KSCR=26 CALL DRMR(KLEN,KSCR,DSC1,MIC2) WRITE(IOTP)NMIT,(MIC1(I),I=1,900),(MIC2(I),I=1,900) WRITE(IOTP)NMCT,((MCC(I,J),I=1,300),J=1,2) WRITE(IOTP)NMFM,((MFC(I,J),I=1,50),J=1,2) KLEN=2 LEN=276 KSCR=40 DO 20 I=2,NMFM CALL DRMR(KLEN,KSCR,DSC1,IBUF) KSCR=KSCR+1 CALL DRMR(LEN,KSCR,DSC1,KEY) KSCR=KSCR+3 NQ=IBUF(1) RNGE=IBUF(2) WRITE(IOTP)NQ,RNGE,((KEY(J,K),J=1,6),K=1,46) 20 CONTINUE WRITE(IOTP)NMTAN,((MTNC(I,J),I=1,15),J=1,2),NMSP,((MSPC(K,L),K=1,50 1),L=1,2) KSCR=243 KLEN=6 DO 30 K=2,NMTN CALL DRMR(KLEN,KSCR,DSC1,IBUF) KSCR=KSCR+1 ITNB(K)=IBUF(1) WRITE(IOTP)ITNB(K),(ITNA(K,L),L=1,5) 30 CONTINUE LEN=110 KSCR=258 DO 40 I=1,1000 CALL DRMR(LEN,KSCR,DSC1,BUFF) KSCR=KSCR+1 SNUM1=BUFF(1) DO 32 J=1,12 32 SNAM1(J)=BUFF(J+1) GRP1(1)=BUFF(14) GRP1(2)=BUFF(15) DO 34 J=1,20 RFM1(J)=BUFF(J+15) 34 RDAT1(J)=BUFF(J+35) KLEN=300 CALL DRMR(KLEN,KSCR,DSC1,CC1) KSCR=KSCR+3 KLEN=100 CALL DRMR(KLEN,KSCR,DSC1,PS1) KSCR=KSCR+1 KLEN=920 CALL DRMR(KLEN,KSCR,DSC1,RRP1) KSCR=KSCR+8 KLEN=40 CALL DRMR(KLEN,KSCR,DSC1,IPOST) KSCR=KSCR+1 WRITE(IOTP)SNUM1,(SNAM1(J),J=1,12),(GRP1(K),K=1,2),(CC1(J),J=1,300 1),((PS1(M,N),M=1,20),N=1,5),(RFM1(J),J=1,20),(RDAT1(K),K=1,20), 1((RRP1(L,M),L=1,46),M=1,20),((IPOST(K,L),K=1,20),L=1,2) IF(SNUM1.EQ.10000.00E2)GOTO 42 ISTNO=ISTNO+1 40 CONTINUE 42 KSCR=14260 KLEN=23 44 CALL DRMR(KLEN,KSCR,DSC1,IBUF) KSCR=KSCR+1 SGN=IBUF(1) DO 46 I=1,17 46 SGTIT(I)=IBUF(I+1) DO 48 I=1,5 48 SECTN(I)=IBUF(I+18) WRITE(IOTP)SGN,(SGTIT(I),I=1,17),(SECTN(J),J=1,5) IF(SGN.NE.1000)GOTO 44 KLEN=110 50 CALL DRMR(KLEN,KSCR,DSC1,IBUF) KSCR=KSCR+1 CGN=IBUF(1) DO 52 I=1,8 52 CTITL(I)=IBUF(I+1) DO 54 I=1,100 54 COBJ(I)=IBUF(I+9) JCGIN=IBUF(110) WRITE(IOTP)CGN,(CTITL(I),I=1,8),(COBJ(J),J=1,100),JCGIN IF(CGN.NE.1000)GOTO 50 KLEN=122 56 CALL DRMR(KLEN,KSCR,DSC1,IBUF) KSCR=KSCR+1 SGN=IBUF(1) CGN=IBUF(2) K1=3 DO 58 I=1,20 DO 58 J=1,3 NUMA(I,J)=IBUF(K1) NUMC(I,J)=IBUF(K1+60) 58 K1=K1+1 WRITE(IOTP)SGN,CGN,((NUMA(I,J),I=1,20),J=1,3),(( NUMC(I,J),I=1,20), 1J=1,3) IF(CGN.NE.1000)GOTO 56 IF(SGN.NE.1000)GOTO 56 ENDFILE IOTP REWIND IOTP CALL EXEC(ICODE,CHN1,ICHN1) STOP WRITE(PRT,122) 122 FORMAT(1H1) 123 FORMAT(39HTYPE :GO WHEN READY TO COPY NEW FILE!) END SUBROUTINE DRMR(LEN,ISEC,NAME,BUF) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,BUF,LEN,NAME,ISEC) RETURN END END$ @FTN4,L PROGRAM CAM10 INTEGER CT,SCHL,CRSE,SKOL,CORS,CPT,BLANK,PREIN,POSI,PRT,CCPT,PERID 1,REPL,PRTS,PRTT,PRTG,TITLE(24),OPT(4),MCC(300,2),MFC(50,2),MOC(300 1,2),IUOC(300),CHN1(3),CHN3(3),MTNC(15,2),MSPC(50,2),ITNA(15,5),ICC 1C(50,2),ITCPT(50),DAT(3),CGIN(100),MEAN(50,46,2),DSC15(3),NXT(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,MIN,MIN1,MIN2 DATA DSC15(1),DSC15(2),DSC15(3)/2HTF,2HME,2HN / WRITE(1,1) 1 FORMAT(5HCAM10) CALL EXEC(14,2,MEEN,1,DSC15,0) CALL EXEC(14,2,MEAN,4600,DSC15,1) IF(MEEN.LE.0)GOTO 350 DO 300 L9=1,MEEN DO 200 I1=1,50 ICHK=0 DO 10 I=1,46 10 ICHK=ICHK+MEAN(I1,I,1)+MEAN(I1,I,2) IF(ICHK.EQ.0)GOTO 200 WRITE(PRT,800) WRITE(PRT,801)(TITLE(I),I=1,24),SKOL,CORS DO 20 L5=1,50 IF(MFC(L5,2).EQ.I1)GOTO 30 20 CONTINUE GOTO 200 30 WRITE(PRT,802)MFC(L5,1) WRITE(PRT,803) WRITE(PRT,804) DO 100 I2=1,46 ITRSP=MEAN(I1,I2,1)+MEAN(I1,I2,2) IF(ITRSP.EQ.0)GOTO 100 IPCC=IFIX((FLOAT(MEAN(I1,I2,2))/FLOAT(ITRSP)+.005)*100.) IPCI=IFIX((FLOAT(MEAN(I1,I2,1))/FLOAT(ITRSP)+.005)*100.) WRITE(PRT,805)I2,MEAN(I1,I2,2),MEAN(I1,I2,1),IPCC,IPCI,ITRSP 100 CONTINUE ICOR=0 INCO=0 DO 102 J=1,46 ICOR=MEAN(I1,J,2)+ICOR 102 INCO=MEAN(I1,J,1)+INCO ITOTR=ICOR+INCO ITPCC=IFIX((FLOAT(ICOR)/FLOAT(ITOTR)+.005)*100.) ITPCI=IFIX((FLOAT(INCO)/FLOAT(ITOTR)+.005)*100.) WRITE(PRT,806)ICOR,INCO,ITPCC,ITPCI,ITOTR 200 CONTINUE 300 CONTINUE 350 NXT(1)=2HCA NXT(1)=2HCA NXT(2)=2HM9 NXT(3)=2H CALL EXEC(8,NXT) 800 FORMAT(1H1,10X,59HCOMPREHENSIVE ACHIEVEMENT MONITORING - TEST FORM 1 EVALUATION,/1H -  ) 801 FORMAT(7X,24A2,5X,A2,I3,/1H ) 802 FORMAT(7X,9HTEST FORM,I5,/1H ) 803 FORMAT(1X,58HQUESTION NUMBER NUMBER PERCENT PERCENT 1TOTAL) 804 FORMAT(2X,59HNUMBER CORRECT INCORRECT CORRECT INCORRECT RES 1PONSES) 805 FORMAT(1X,I5,2(5X,I5),8X,I3,7X,I3,6X,I5) 806 FORMAT(1H /2X,5HTOTAL,2(5X,I5),2(7X,I3),6X,I5) END END$ FTN4,L PROGRAM CAMRE INTEGER CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE(24),OPT(4), 1PREIN,POSI,NMCT,NMFM,NMOB,MCC(300,2),MFC(50,2),MOC(300,2),IUOC(300 1),MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1(3),CHN3(3),ICHN1,ICHN3,NMTN, 1NMSP,MTNC(15,2),MSPC(50,2),ITNA(15,5),ICCC(50,2),ITCPT(50),CCPT, 1ICON,IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT(3),ISEC,CGIN(300),ICNTP, 1DSC1(3),IBUF(128),NXT(3),DS20(3) COMMON CT,SCHL,CRSE,SKOL,CORS,NEWF,CPT,BLANK,TITLE,OPT,PREIN,POSI, 1NMCT,NMFM,NMOB,MCC,MFC,MOC,IUOC,MINS,INCD,INTP,ITTY,PRT,ICODE,CHN1 1,CHN3,ICHN1,ICHN3,NMTN,NMSP,MTNC,MSPC,ITNA,ICCC,ITCPT,CCPT,ICON, 1IVAR,PERID,REPL,PRTS,PRTT,PRTG,DAT,ISEC,CGIN,ICNTP DATA DSC1(1),DSC1(2),DSC1(3)/2HFL,2HNE,2HW / DATA DS20(1),DS20(2),DS20(3)/2HRE,2HRU,2HN / INCD=11 INTP=10 ITTY=6 PRT=6 BLANK=2H ICODE=23 CHN1(1)=2HSU CHN1(2)=2HB1 CHN1(3)=2H CHN3(1)=2HSU CHN3(2)=2HB3 CHN3(3)=2H ICHN1=1 ICHN3=3 MINS=0 CT=99 IRCDE=14 ICNWD=2 CALL EXEC(ICODE,CHN3,ICHN3) ISC=0 LEN=32 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,DSC1,ISC) SKOL=IBUF(1) SCHL=IBUF(1) CORS=IBUF(2) CRSE=IBUF(2) DO 10 I=1,24 10 TITLE(I)=IBUF(I+2) PREIN=IBUF(27) POSI=IBUF(28) DO 20 I=1,4 20 OPT(I)=IBUF(I+28) ISC=1 LEN=5 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,DSC1,ISC) NMOB=IBUF(2) NMCT=IBUF(4) NMFM=IBUF(5) ISC=3 LEN=600 CALL EXEC(IRCDE,ICNWD,MOC,LEN,DSC1,ISC) ISC=34 CALL EXEC(IRCDE,ICNWD,MCC,LEN,DSC1,ISC) ISC=39 LEN=100 CALL EXEC(IRCDE,ICNWD,MFC,LEN,DSC1,ISC) ISC=8 LEN=300 CALL EXEC(IRCDE,ICNWD,IUOC,LEN,DSC1,ISC) ISC=240 LEN=2 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,DSC1,ISC) NMTN=IBUF(1) NMSP=IBUF(2) ISC=241 LEN=30 CALL E>XEC(IRCDE,ICNWD,MTNC,LEN,DSC1,ISC) ISC=242 LEN=100 CALL EXEC(IRCDE,ICNWD,MSPC,LEN,DSC1,ISC) ISC=243 LEN=6 DO 30 I=2,NMTN CALL EXEC(IRCDE,ICNWD,IBUF,LEN,DSC1,ISC) ISC=ISC+1 DO 25 J=1,5 25 ITNA(I,J)=IBUF(J+1) 30 CONTINUE CALL EXEC(ICODE,CHN1,ICHN1) ISC=0 LEN=65 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,DS20,ISC) ISC=ISC+1 LEN=100 CALL EXEC(IRCDE,ICNWD,ICCC,LEN,DS20,ISC) ISC=ISC+1 LEN=300 CALL EXEC(IRCDE,ICNWD,CGIN,LEN,DS20,ISC) NEWF=IBUF(1) CPT=IBUF(2) CCPT=IBUF(3) ICON=IBUF(4) IVAR=IBUF(5) PERID=IBUF(6) REPL=IBUF(7) PRTS=IBUF(8) PRTT=IBUF(9) PRTG=IBUF(10) ISEC=IBUF(11) ICNTP=IBUF(12) DO 40 I=1,3 40 DAT(I)=IBUF(I+12) DO 50 I=1,50 50 ITCPT(I)=IBUF(I+15) 55 WRITE(1,500) READ(1,501)IRUN IF(IRUN.EQ.1)GOTO 60 IF(IRUN.EQ.2)GOTO 65 IF(IRUN.EQ.3)GOTO 70 IF(IRUN.EQ.4)GOTO 73 IF(IRUN.EQ.5)GOTO 75 GOTO 55 C *** RE-RUN GROUP SUMMARY *** 60 IF(PRTG.NE.0)GOTO 62 WRITE(1,502) GOTO 55 62 NXT(1)=2HCA NXT(2)=2HM6 NXT(3)=2H1 CALL EXEC(8,NXT) C *** RE-RUN TEACHER SUMMARY *** 65 NXT(1)=2HCA NXT(2)=2HM7 NXT(3)=2H CALL EXEC(8,NXT) C *** RE-RUN STUDENT COUPONS *** 70 NXT(1)=2HCA NXT(2)=2HM8 NXT(3)=2H CALL EXEC(8,NXT) C *** RE-RUN TEST FORM EVALUATION *** 73 NXT(1)=2HCA NXT(2)=2HM1 NXT(3)=2H0 CALL EXEC(8,NXT) C *** RE-RUN COPY OF NEW FILE TO MAG-TAPE *** 75 NXT(1)=2HCA NXT(2)=2HM9 NXT(3)=2H CALL EXEC(8,NXT) 500 FORMAT(50HTHE CODE FOR DETERMINING THE RE-START POSITION IS:/ 122H1=GROUP SUMMARY REPORT/ 124H2=TEACHER SUMMARY REPORT/ 117H3=STUDENT COUPONS/ 122H4=TEST FORM EVALUATION/ 127H5-COPY NEW FILE TO MAG-TAPE/ 124HWo HAT IS THE CODE NUMBER?) 502 FORMAT(46HNO GROUP SUMMARY WAS REQUESTED FOR THIS COURSE) 501 FORMAT(I1) END END$ ӆFTN4,L PROGRAM ITANL REAL MIC1(900),SNUM1,BUF(14),ITEM INTEGER SKOL,CORS,PREIN,POSI,SCHL,CRSE,CT,UNIT,OBJ,CNT,TMPD,PR,PO, 1RE,U,O,BLANK,PRT INTEGER TITLE(24),OPT(4),MUC(50,2),MOC(300,2),UOC(300),MIC2(900), 1MCC(300,2),MFC(50,2),KEY(6,46),MTNC(15,2),MSPC(50,2),TNB(15),TNA(1 15,5),SUM1(900,6,3),IBUF(2),TST(3),IBUF1(50),IBUF2(50),UNITC(3), 1OBJC(3),ITIMS(5),ITIMF(5),IPOST(20,2),NXT(3) COMMON MIC1,BLANK,PRT,TITLE,MUC,MOC,MIC2,MFC,SUM1,INTP,ITTY,NUM, 1NMUT,NMOB,PREIN,POSI,NMIT DATA UNITC(1),UNITC(2),UNITC(3)/2HFI,2HLE,2H1 / DATA OBJC(1),OBJC(2),OBJC(3)/2HFI,2HLE,2H2 / DATA TST(1),TST(2),TST(3)/2HKE,2HYF,2HL / BLANK=2H INTP=10 PRT=6 ITTY=1 WRITE(ITTY,829) READ(ITTY,830)NUM K9=0 DO 2 K=1,900 DO 2 I=1,6 DO 2 J=1,3 2 SUM1(K,I,J)=0 READ(INTP)SKOL,CORS,(TITLE(I),I=1,24),PREIN,POSI,(OPT(J),J=1,4) KLEN=50 DO 5 I=1,50 IBUF2(I)=0 5 IBUF1(I)=0 DO 10 I=0,49 KSEC=I CALL DRM2(KLEN,KSEC,IBUF1,UNITC) 10 CONTINUE DO 20 I=0,299 KSEC=I KLEN=50 CALL DRM2(KLEN,KSEC,IBUF2,OBJC) 20 CONTINUE KSEC=0 READ(INTP)NMUT,((MUC(I,J),I=1,50),J=1,2) READ(INTP)NMOB,((MOC(I,J),I=1,300),J=1,2),(UOC(K),K=1,300) READ(INTP)NMIT,(MIC1(I),I=1,900),(MIC2(J),J=1,900) READ(INTP)NMCT,((MCC(I,J),I=1,300),J=1,2) READ(INTP)NMFM,((MFC(I,J),I=1,50),J=1,2) DO 30 I=2,NMFM READ(INTP)(IBUF(L),L=1,2),((KEY(J,K),J=1,6),K=1,46) KLEN=2 CALL DRM2(KLEN,KSEC,IBUF,TST) KSEC=KSEC+1 KLEN=276 CALL DRM2(KLEN,KSEC,KEY,TST) KSEC=KSEC+3 30 CONTINUE READ(INTP)NMTN,((MTNC(I,J),I=1,15),J=1,2),NMSP,((MSPC(I,J),I=1,50) 1,J=1,2) DO 35 K=2,NMTN READ(INTP)TNB(K),(TNA(K,I),I=1,5) 35 CONTINUE LEN=50 LEN2=50 DO 25 I=2,NMFM KLEN=2 KSEC=(I-2)*4 CALL, DRM1(KLEN,KSEC,IBUF,TST) KSEC=KSEC+1 NQ=IBUF(1) KLEN=276 CALL DRM1(KLEN,KSEC,KEY,TST) KSEC=KSEC+3 DO 24 J=1,NQ ISEC1=(KEY(2,J)-2) CALL DRM1(LEN,ISEC1,IBUF1,UNITC) ISEC2=(KEY(3,J)-2) CALL DRM1(LEN2,ISEC2,IBUF2,OBJC) DO 22 K=1,50 IF(IBUF1(K).EQ.KEY(3,J))GOTO 21 IF(IBUF1(K).EQ.0)GOTO 23 22 CONTINUE 200 DO 210 K1=1,50 IF(MUC(K1,2).EQ.KEY(2,J))GOTO 220 210 CONTINUE WRITE(ITTY,240)KEY(2,J) 240 FORMAT(1X,17HUNIT INDEX VALUE ,I5,10H NOT FOUND) STOP 210 220 WRITE(ITTY,902)MUC(K1,1) 902 FORMAT(1X,33HMORE THAN 50 OBJECTIVES FOR UNIT ,I5) WRITE(PRT,230)(IBUF1(I9),I9=1,50) 230 FORMAT(5(10(1X,I5)/)) GOTO 24 23 DO 300 K8=1,NMOB IF(MOC(K8,2).EQ.KEY(3,J))GOTO 305 300 CONTINUE STOP 300 305 IF(IBUF1(1).NE.0)GOTO 306 IBUF1(1)=KEY(3,J) GOTO 21 306 IOBJ=MOC(K8,1) DO 310 K8=1,K-1 DO 311 K7=1,NMOB IF(MOC(K7,2).EQ.IBUF1(K8))GOTO 312 311 CONTINUE STOP 311 312 IOBJ1=MOC(K7,1) IF(IOBJ1.LT.IOBJ)GOTO 310 K6=K DO 315 K5=K8,K IBUF1(K6)=IBUF1(K6-1) 315 K6=K6-1 IBUF1(K8)=KEY(3,J) GOTO 21 310 CONTINUE IBUF1(K)=KEY(3,J) 21 DO 26 K=1,50 IF(IBUF2(K).EQ.KEY(4,J))GOTO 19 IF(IBUF2(K).EQ.0)GOTO 18 26 CONTINUE STOP 26 18 DO 317 K8=1,NMIT IF(MIC2(K8).EQ.KEY(4,J))GOTO 320 317 CONTINUE STOP 317 320 IF(IBUF2(1).NE.0)GOTO 321 IBUF2(1)=KEY(4,J) GOTO 19 321 TEM=MIC1(K8) DO 350 K8=1,K-1 DO 325 K7=1,NMIT IF(MIC2(K7).EQ.IBUF2(K8))GOTO 330 325 CONTINUE STOP 325 330 TEM1=MIC1(K7) IF(TEM1.LT.TEM)GOTO 350 K6=K DO 335 K5=K8,K IBUF2(K6)=IBUF2(K6-1) 335 K6=K6-1 IBUF2(K8)=KEY(4,J) GOTO 19 350 CONTINUE IBUF2(K)=KEY(4,J) 19 CALL DRM2(LEN,ISEC1,IBUF1,UNITC) CALL DRM2(LEN2,ISEC2,IBUF2,OBJC) 24  CONTINUE 25 CONTINUE NXT(1)=2HIT NXT(2)=2HAN NXT(3)=2H1 CALL EXEC(8,NXT) 829 FORMAT(44HTYPE NO. 1 IF YOU WANT STUDENT ANALYSIS ONLY/ 141HTYPE NO. 2 IF YOU WANT ITEM ANALYSIS ONLY/ 140HTYPE NO. 3 IF YOU WANT BOTH OF THE ABOVE) 830 FORMAT(I1) END SUBROUTINE DRM2(LEN,ISEC,IBUF,NAME) IRCDE=15 ICNWD=2 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,NAME,ISEC) RETURN END SUBROUTINE DRM1(LEN,ISEC,IBUF,NAME) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,NAME,ISEC) RETURN END SUBROUTINE TIME (ITIME) DIMENSION ITIME(5) IRCDE=11 CALL EXEC(IRCDE,ITIME) RETURN END END$ C FTN4,L PROGRAM ITAN1 REAL MIC1(900),SNUM1 INTEGER UNIT,OBJ,CNT,TMPD,PR,PO,RE,U,O,BLANK,PRT,RNGE,PREIN,POSI INTEGER STU1(50,3,2),TITLE(24),MUC(50,2),MOC(300,2),MIC2(900), 1MFC(50,2),KEY(6,46),SNAM1(12),GRP1(2),CC1(300),PS1(20,5),RFM1(20), 1RDAT1(20),RRP1(46,20),SUM1(900,6,3),IBUF(2),TST(3),NXT(3) INTEGER IPOST(20,2) COMMON MIC1,BLANK,PRT,TITLE,MUC,MOC,MIC2,MFC,SUM1,INTP,ITTY,NUM, 1NMUT,NMOB,PREIN,POSI,NMIT DATA TST(1),TST(2),TST(3)/2HKE,2HYF,2HL / 40 READ(INTP)SNUM1,(SNAM1(I),I=1,12),(GRP1(J),J=1,2),(CC1(K),K=1,300) 1,((PS1(M,N),M=1,20),N=1,5),(RFM1(I),I=1,20),(RDAT1(J),J=1,20), 1((RRP1(I,J),I=1,46),J=1,20),((IPOST(K,L),K=1,20),L=1,2) IF(SNUM1.EQ.10000.00E2)GOTO 150 43 DO 44 L=1,50 DO 44 M=1,3 DO 44 N=1,2 44 STU1(L,M,N)=0 O=0 U=0 IT=0 65 DO 130 I=1,20 IF(RFM1(I).EQ.0)GOTO 130 DO 70 I1=1,50 IF(MFC(I1,1).EQ.RFM1(I))GOTO 75 70 CONTINUE WRITE(ITTY,200)RFM1(I),SNUM1,I 200 FORMAT(1X,10HTEST FORM ,I5,27H WAS NOT FOUND FOR STUDENT ,F6.0, 113H TEST PERIOD ,I5) WRITE(PRT,205)(MFC(I1,1),I1=1,50) 205 FORMAT(5(10(1X,I5)/)) GOTO 130 75 KTSEC=(MFC(I1,2)-2)*4 KTLEN=2 CALL DRM1(KTLEN,KTSEC,IBUF,TST) KTSEC=KTSEC+1 KTLEN=276 CALL DRM1(KTLEN,KTSEC,KEY,TST) NQ=IBUF(1) RNGE=IBUF(2) DO 125 J=1,NQ U=KEY(2,J) IF(U.LE.50)GOTO77 WRITE(ITTY,901) 901 FORMAT(51HMORE THAN 50 UNITS/COURSE---ONLY FIRST 50 PROCESSED) GOTO 125 77 IT=KEY(4,J) CNT=KEY(5,J) IF(CC1(CNT).EQ.0)GOTO 100 IF(CC1(CNT)+PREIN.GT.RDAT1(I))GOTO 100 IF(CC1(CNT)+POSI.GT.RDAT1(I))GOTO 105 TMPD=3 GOTO 110 100 TMPD=1 GOTO 110 105 TMPD=2 110 IF(KEY(1,J).NE.RRP1(J,I))GOTO 120 STU1(U,TMPD,1)=STU1(U,TMPD,1)+1 SUM1(IT,6,TMPD)=SUM1(IT,6,TMPD)+1 120 IF((RRP1(J,I).EQ.0).OR.(RRP1(J,I).EQ.BLANK))GO9TO 125 STU1(U,TMPD,2)=STU1(U,TMPD,2)+1 IF(RRP1(J,I).EQ.6)GOTO 125 SUM1(IT,RRP1(J,I),TMPD)=SUM1(IT,RRP1(J,I),TMPD)+1 125 CONTINUE 130 CONTINUE IF(NUM.EQ.2)GOTO 40 135 WRITE(PRT,805) WRITE(PRT,806)(TITLE(I),I=1,24) WRITE(PRT,807)SNUM1,(SNAM1(I),I=1,12) WRITE(PRT,808) WRITE(PRT,809) IPRN=0 IPRP=0 IPON=0 IPOP=0 IREN=0 IREP=0 DO 140 I1=1,NMUT-1 UNIT=MUC(I1,1) I=MUC(I1,2) ICK=STU1(I,1,2)+STU1(I,2,2)+STU1(I,3,2) IF(ICK.EQ.0)GOTO 140 PR1=STU1(I,1,1) PR2=STU1(I,1,2) IF(PR2.NE.0)GOTO 136 PR=0 GOTO 137 136 IPRN=IPRN+PR1 IPRP=IPRP+PR2 PR=(PR1/PR2+.005)*100 137 PR1=STU1(I,2,1) PR2=STU1(I,2,2) IF(PR2.NE.0)GOTO 138 PO=0 GOTO 139 138 IPON=IPON+PR1 IPOP=IPOP+PR2 PO=(PR1/PR2+.005)*100 139 PR1=STU1(I,3,1) PR2=STU1(I,3,2) IF(PR2.NE.0)GOTO 141 RE=0 GOTO 142 141 IREN=IREN+PR1 IREP=IREP+PR2 RE=(PR1/PR2+.005)*100 142 WRITE(PRT,810)UNIT,STU1(I,1,2),PR,STU1(I,2,2),PO,STU1(I,3,2),RE 140 CONTINUE 145 PR1=IPRN PR2=IPRP IF(PR2.NE.0)GOTO 146 PR=0 GOTO 147 146 PR=(PR1/PR2+.005)*100 147 PR1=IPON PR2=IPOP IF(PR2.NE.0)GOTO 148 PO=0 GOTO 149 148 PO=(PR1/PR2+.005)*100 149 PR1=IREN PR2=IREP IF(PR2.NE.0)GOTO 151 RE=0 GOTO 152 151 RE=(PR1/PR2+.005)*100 152 WRITE(PRT,811)IPRP,PR,IPOP,PO,IREP,RE GOTO 40 150 NXT(1)=2HIT NXT(2)=2HAN NXT(3)=2H2 CALL EXEC(8,NXT) 805 FORMAT(1H1) 806 FORMAT(31H CAM STUDENT STATUS REPORT FOR ,24A2) 807 FORMAT(1H0,18X,F6.0,4X,12A2) 808 FORMAT(1H0,9X,48HPRE-INSTRUCTION POST-INSTRUCTION RETENTION) 809 FORMAT(2X,4HUNIT,8X,8HNUM PER,11X,8HNUM PER,9X,8HNUM PER) 810 FORMAT(2X,I4,7X,I4,2X,I3,10X,I4,2X,I3,8X,I4,2X,I3) 811 FORMAT(1X,5HTOTAL,8X,I3, 2X,I3,11X,I3,2X,I3,9X,I3,2X,I3) END SUBROUTINE DRM1(LEN,ISEC,IBUF,NAME) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,NAME,ISEC) RETURN END END$ VFTN4,L PROGRAM ITAN2 REAL MIC1(900),SNUM1,BUF(14),ITEM INTEGER SKOL,CORS,PREIN,POSI,SCHL,CRSE,CT,UNIT,OBJ,CNT,TMPD,PR,PO, 1RE,U,O,BLANK,PRT INTEGER TITLE(24),MUC(50,2),MOC(300,2),UOC(300),MIC2(900),MCC(300, 12),MFC(50,2),MTNC(15,2),MSPC(50,2),TNB(15),TNA(15,5),SUM1(900,6,3) 1,IBUF(80),TST(3),IBUF1(50),IBUF2(50),UNITC(3),OBJC(3),ITIMS(5), 1ITIMF(5) COMMON MIC1,BLANK,PRT,TITLE,MUC,MOC,MIC2,MFC,SUM1,INTP,ITTY,NUM, 1NMUT,NMOB,PREIN,POSI,NMIT DATA UNITC(1),UNITC(2),UNITC(3)/2HFI,2HLE,2H1 / DATA OBJC(1),OBJC(2),OBJC(3)/2HFI,2HLE,2H2 / DATA TST(1),TST(2),TST(3)/2HKE,2HYF,2HL / 150 WRITE(PRT,805) REWIND INTP IF(NUM.EQ.1)GOTO 260 IT=0 LEN=50 KLEN=50 DO 185 I1=1,NMUT-1 KSEC=(MUC(I1,2)-2) CALL DRM1(KLEN,KSEC,IBUF1,UNITC) UNIT=MUC(I1,1) WRITE(PRT,812)(TITLE(I),I=1,24),UNIT WRITE(PRT,813)PREIN,POSI WRITE(PRT,814) WRITE(PRT,815) WRITE(PRT,816) WRITE(PRT,817) K3=1 DO 180 J1=1,50 IF(IBUF1(J1).EQ.0)GOTO 180 ISEC1=IBUF1(J1)-2 CALL DRM1(LEN,ISEC1,IBUF2,OBJC) DO 175 K1=1,50 IF(IBUF2(K1).EQ.0)GOTO 175 IT=IBUF2(K1) DO 160 L1=1,NMIT IF(MIC2(L1).EQ.IT)GOTO 165 160 CONTINUE STOP 160 165 ITEM=MIC1(L1) DO 205 J=1,3 ITOT=0 DO 195 I=1,5 195 ITOT=ITOT+SUM1(IT,I,J) IBUF(J+15)=ITOT PC=SUM1(IT,6,J) IF(ITOT.NE.0)GOTO 200 IBUF(J+18)=0 GOTO 201 200 PC1=ITOT IBUF(J+18)=(PC/PC1+.005)*100 IBUF(J+27)=IBUF(J+27)+1 201 IBUF(J+21)=IBUF(J+21)+ITOT IBUF(J+24)=IBUF(J+24)+PC IBUF(J+36)=IBUF(J+36)+PC IBUF(J+30)=IBUF(J+30)+ITOT IBUF(J+33)=IBUF(J+33)+IBUF(J+24) DO 203 I=1,5 PC=SUM1(IT,I,J) IF(PC1.NE.0)GOTO 202 IBUF(K3)=0 GOTO 203 202 IBUF(K3)=(PC/PC1+.005)*100 203 K3=K3+1 K3=(5*J)+1 205 CONTINUE K3=1 N WRITE(PRT,818)ITEM,IBUF(16),IBUF(19),(IBUF(J),J=1,5),IBUF(17), 1IBUF(20),(IBUF(J),J=6,10),IBUF(18),IBUF(21),(IBUF(J),J=11,15) DO 210 I=1,21 210 IBUF(I)=0 175 CONTINUE DO 176 J9=1,NMOB IF(MOC(J9,2).EQ.IBUF1(J1))GOTO 177 176 CONTINUE STOP 176 177 OBJ=MOC(J9,1) 215 DO 221 I=1,3 PC=IBUF(I+24) PC1=IBUF(I+21) IF(PC1.NE.0)GOTO 220 IBUF(I)=0 GOTO 221 220 IBUF(I)=(PC/PC1+.005)*100 221 CONTINUE WRITE(PRT,819)OBJ,(IBUF(I+21),IBUF(I),I=1,3) WRITE(PRT,817) DO 225 I=1,30 225 IBUF(I)=0 180 CONTINUE 231 DO 236 I=1,3 PC=IBUF(I+36) PC1=IBUF(I+30) IF(PC1.NE.0)GOTO 235 IBUF(I)=0 GOTO 236 235 IBUF(I)=(PC/PC1+.005)*100 236 CONTINUE WRITE(PRT,820)UNIT WRITE(PRT,821)(IBUF(I+30),IBUF(I),I=1,3) DO 240 I=1,3 IBUF(I+39)=IBUF(I+39)+IBUF(I+30) 240 IBUF(I+42)=IBUF(I+42)+IBUF(I+36) DO 245 I=1,39 245 IBUF(I)=0 WRITE(PRT,805) 185 CONTINUE 250 DO 256 I=1,3 PC=IBUF(I+42) PC1=IBUF(I+39) IF(PC1.NE.0)GOTO 255 IBUF(I)=0 GOTO 256 255 IBUF(I)=(PC/PC1+.005)*100 256 CONTINUE WRITE(PRT,822) WRITE(PRT,823) WRITE(PRT,824)(IBUF(I+39),IBUF(I),I=1,3) WRITE(PRT,805) 260 STOP 805 FORMAT(1H1) 812 FORMAT(14H CAM DATA FOR ,24A2,5X,5HUNIT ,I5) 813 FORMAT(6X,30HPOST INSTRUCTION INCLUDES FROM,I3,8H DAYS TO,I3, 1 18H SINCE INSTRUCTION) 814 FORMAT(14X,15HPRE-INSTRUCTION,8X,16HPOST-INSTRUCTION,9X,9HRETENTIO 1N) 815 FORMAT(11X,7HNUM PER,4X,9HRESPONSES,3X,7HNUM PER,4X,9HRESPONSES, 13X,7HNUM PER,4X,9HRESPONSES) 816 FORMAT(1X,9HOBJ ITEM,10X,13H1 2 3 4 5,10X,13H1 2 3 4 5, 110X,13H1 2 3 4 5) 817 FORMAT(2H ) 818 FORMAT(4X,F6.0,3(1X,I3,1X,6I3)) 819 FORMAT(1X,I4,1X,3HAVG,I5,1X,I3,14X,I5,1X,I3,14X,I5,1X,I3) 820 FORMAT(1H0,24HAVERAGE VALUES FOR UNIT ,I5) 821 FORMAT(10X,2(I5,1X,I3,13X),I5,1X,I3) 822  FORMAT(1H0/1H0) 823 FORMAT(25X,33HAVERAGE VALUES FOR THE ENTIRE RUN) 824 FORMAT(1H0,9X,I5,1X,I3,2(14X,I5,1X,I3)) END SUBROUTINE DRM1(LEN,ISEC,IBUF,NAME) IRCDE=14 ICNWD=2 CALL EXEC(IRCDE,ICNWD,IBUF,LEN,NAME,ISEC) RETURN END SUBROUTINE TIME (ITIME) DIMENSION ITIME(5) IRCDE=11 CALL EXEC(IRCDE,ITIME) RETURN END END$  c 22681-18011 1451 SC 0122 012100 BYTE MANIPULA- TION ROUTINES             H0101 s^ASMBҬ̠ADBYŠ HDADBYŠ-MAAUN NAMDB Ԡ.NҬ.AD NԠDB HSUNŠADSABYŠMASUŠAAY ANDPUSHŠSUԠNHŠҠBSƠH AGS. BASSNPSUŠBYŠAAYADDS NDSNPSUŠBYŠAAYND DBNP<< OCTAL * A#0 => DECIMAL * B= BYTE ADDRESS OF STRING. * ON EXIT B<0 => ERROR * CNVRT NOP STB TMPC SAVE BYTE ADDRESS LDB .+8 PUT OCTAL BASE IN B. SZA WANT DECIMAL LDB .+10 YES PUT DECIMAL BASE IN B STB TMPC+1 SAVE BASE CLA SET STA CFLG DATA FALG + STA TMPC+2 TEMPORARY. CN1 LDB TMPC LOAD ASCII JSB LOADB DIGIT ADA .M48 CONVERT TO #. STA TMPC+3 IS CLA IT LDB TMPC+1 REALLY JSB LCHEK A DEF TMPC+3 #? SSA JMP CN4 NO, NON DIGIT LDA TMPC+2 YES COMPUTE MPY TMPC+1 NEXT RESULT SZB OVERFLOW? JMP CN2 YES ERROR CLO ADA TMPC+3 ADD IN CURRENT DIGIT. SOC JMP CNVRT,I ERROR STA TMPC+2 SAVE TEMP RESULT ISZ CFLG SET GOOD DATA FLAG. ISZ TMPC BUMP ADDRESS JMP CN1 GO BACK. CN4 LDA CFLG NON DIGIT FOUND. ANY GOOD LDB TMPC DATA? SZA,RSS STO NO SET OVERFLOW LDA TMPC+2 PICK UP RESULT JMP CNVRT,I EXIT CN2 STO OVERFLOW JMP CNVRT,I EXIT * TMPC BSS 4 .M48 DEC -48 CFLG BSS 1 * * THIS ROUTINE READS BINARY * INPUT FROM A FMP FILE OR OTHER * DEVICE * * CALLING SEQUENCE: * LDA LUN (2=FILE"#2OTHER DEVICE) * ,(640 JSB BREAD* * DEF *+3 * DEF BUFUR * EOT RETURN * NORMAL RETURN * ERROR CONDITIONS; * FILE NOT ON DISK-COMMAND ABORTED * END OF FILE -COMMAND ABORTED BREAD NOP LDB BREAD,I STB EXIT ISZ BREAD * * READ FROM FILE OR OTHER DEVICE * CPA .+2 DEVICE DISC? JMP BR7 YES FILE INPUT. * * OTHER DEVICE INPUT * IOR B300 NO, STA LUN SET CONTROL WORD. LDA BREAD,I SET STA BADD BUFUR ADDRESS. ISZ BREAD SET EOT RETURN. JSB EXEC READ DEF *+5 DEF .+1 1 DEF LUN BADD NOP RECORD DEF .60 SZB,RSS EOT? JMP BREAD,I YES JMP EXIT,I NO, B300 OCT 300 * * FILE INPUT * BR7 LDA BREAD,I FETCH STA FRBUF TARGET ADDRESS. ISZ BREAD SET EOF RETURN. JSB READF REQUEST DEF *+6 FMP DEF DCB TO DEF FERR READ FRBUF NOP A DEF .60 RECORD DEF RDLEN WAS LDA RDLEN AN EOF SSA READ? JMP BREAD,I YES JSB IFMGR WAS DEF *+5 THERE DEF FERR A DEF .11 FMP DEF TTY READ DEF FNAME ERROR SSA ? JMP INCMD YES - FETCH NEW COMMAND JMP EXIT,I NO - NORMAL RETURN * EXIT BSS 1 LUN BSS 1 B100 OCT 100 MES09 ASC 9,NO PROGRAM LOADED MES13 ASC 8,FILE NOT ON DISC MES14 ASC 4,END FILE TTY DEC 1 B2200 OCT 2200 FERR NOP RDLEN NOP DCB BSS 144 .128 DEC 128 W/SCT BSS 1 SBUF BSS 128 SBUFA DEF SBUF SBFAD BSS 1 SEND BSS 1 TBFAD BSS 1 T BSS 1 FIRST NOP [6* * FOPEN OPENS AN FMP FILE * * CALLING SEQUENCE: * JSB FOPEN * RTN IF FILE NOT OPEN OR NOT TYPE 0 OR 7 * RTN IF FILE IS OPENNED * FOPEN NOP JSB OPEN REQUEST DEF *+5 FMP DEF DCB TO DEF FERR OPEN DEF FNAME THE DEF .+2 FILE LDA FERR DOES FILE CPA .-6 EXSIST? RSS NO. JMP FOPN1 MAYBE. NOFIL JSB MSOUT OUTPUT DEF MES13 NO SUCH DEF .+8 FILE AND JMP FOPEN,I RETURN FOPN1 JSB IFMGR WAS DEF *+5 THERE DEF FERR A DEF .+8 FMP DEF TTY OPEN DEF FNAME ERROR SSA ? JMP FOPEN,I YES - TAKE ERROR RETURN CPA . TYPE 0? JMP FYES FILE OK CPA .+7 TYPE 7? RSS FILE OK JMP NOFIL NEITHER OUTPUT ERROR MESSAGE. FYES ISZ FOPEN ADJUST RETURN & JMP FOPEN,I RETURN * * CLOSF CLOSES THE OPEN FMP FILE * CLOSF NOP JSB CLOSE CLOSE DEF *+3 FMP DEF DCB FILE DEF FERR AND JMP CLOSF,I RETURN * * RDTTY READS FROM SYSTEM TTY AND * WAITS FOR RESPONSE. IT ALSO PUTS * AN END OF DATA FLAG AT END OF INPUT STRING. * * CALLING SEQUENCE: * JSB RDTTY * DEF BUFUR * DEC BUFL * * RDTTY NOP LDA RDTTY,I PICK UP STA RDBUF BUFUR ADRESS ISZ RDTTY PICK LDA RDTTY,I UP COUNT STA RDCNT ADDRESS ISZ RDTTY SET RETURN. JSB EXEC READ DEF *+5 DEF .+1 LINE DEF CNWD3 FROM RDBUF NOP RDCNT NOP TTY. STB TMP00 LDA RDBUF COMPUTE RAL BYTE ADDRESS OF BUFUR. SWP (TLOG IN B) ADB 0 ADB A CLA SET EOD JSB STORB FLAG LDB TMP00  JMP RDTTY,I EXIT. CNWD3 OCT 400 * PARAMETER FETCH ROUTINE * * CALLING SEQUENCE: * LDA TYPEFLAG (=0,OCTAL CONVERSION * #0,DECIMAL 11) * JSB GTPAR * * * * ROUTINE EXAMINES COMMAND INPUT STRING FOR * PARAMETERS. PERFORMS NECESSARY CONVERSION * AND RETURNS RESULT IN PARAMETER TABLE. TABLE * FORMAT IS ILLUSTRATED BELOW. * * PARAMETER TABLE * **************** * * * * * # OF ENTRIES * WORD 1 * * * **************** * * * * * ENTRY # 1 * WORD 2 * * * * **************** * * * * * ENTRY # 2 * WORD 3 * * * * **************** * * * * * * * * * * * **************** * * * * * ENTRY # N * WORD N+1 * * * * **************** * * IF ERROR DETECTED COMMAND MUST BE RE-INPUTED. * GTPAR NOP STA PTYPE SAVE CONVERSION FLAG. CLA SET STA PRAM # PARAMETERS=0 LDA PRAM2 POINT TO 2ND STA APRAM WORD OF PARAMETER TABLE LDA M.5 STA CNT LDB BACMD SKIP GT0 LDA COMA TO JSB SKPTO COMA. SZA,RSS FOUND? JMP GTPAR,I NO, RETURN INB POINT TO NEXT CHAR PAST ",". LDA BLANK SKIP OVER JSB SKIP BLANKS. SZA DID WE REACH END OF LINE? EOL JMP *+5 NO JSB ERROR YES,ERROR DEF MES04 MISSING DEF .+9 JMP INCMD GO GET NEXT COMMAND. LDA PTYPE CONVERT JSB CNVRT ASCII TO BINARY SOS NUMBER LEGAL? JMP *+5 YES JSB ERROR NO, ERROR DEF MES08 ILLEGAL DEF .11 DIGIT. JMP INCMD GO GET NEXT COMMAND STA APRAM,I PUT PARAMETER IN TABLE ISZ APRAM BUMP POINTER ISZ PRAM BUMP UP PARAMETER COUNT ISZ CNT CANT HANDLE 6 PARAMETERS. JMP GT0 GO BACK & GET NEXT. JMP GTPAR,I * PTYPE BSS 1 PRAM BSS 6 PRAM2 DEF PRAM+1 APRAM BSS 1 COMA OCT 54 MES08 ASC 11,ILLEGAL DIGIT/OVERFLOW M.5 DEC -5 * * MODIFY COMMAND MODULE * * COMMAND FORMAT: * MODIFY,[,] * * THIS COMMAND ALLOWS USER TO MODIFY ADDRESS * OR OPTIONALLY ADDRESS THROUGH * * IMOD CLA JSB GTPAR GET PARAMETERS. LDA PRAM SOME SZA,RSS FOUND? JMP ERR4 NO ERROR LDB PRAM+1 YES PICK UP 1ST ADA .-2 IS THERE SSA ANOTHER? STB PRAM+2 NO, SET 2ND = 1ST. LDA PRAM+2 PICK UP 2ND. AND LOMSK SAVE STA TMP50+1 END LDA 1 AND AND LOMSK START STA TMP50 ADDRESS. CMA,INA ARE THEY ADA TMP50+1 SSA,RSS LEGAL? JMP *+5 ERR3 JSB ERROR NO,ERROR DEF MES03 ILLEGAL DEF .+10 JMP INCMD GO GET NEXT COMMAND. INA SET CMA,INA COUNT. STA WTCNT JSB SPACE SPACE. LDA TMP50 COMPUTE ACTUAL ALS BUFUR ADA BBASE ADDRESS. STA ADBUF SAVE. LDA TMP50 ADA HBASE STA TMP50+2 MD0 STA GFLG LDA A.M22 SET STA SH1 VALUES LDA A.M10 TO SURPRESS STA GRB1 LINE FEED AFTER SHOW LDA TMP50 IS JSB GRBGE LOCATION JMP MD6 GARBAGE? LDA TMP50 CALL SHOW LDB 0 TO DISPLAY JSB SHOW CURRENT CONTENTS CLA STA GFLG MD6 LDA AD.9 RESET STA SH1 LINE FEED LDA AD.3 SURPRESS STA GRB1 PARAMETERS. JSB RDTTY READ DEF LINE NEW DEF .M80 LDB ALINE MAKE CLE,ELB BYTE STB BADR ADDRESS. JSB LOADB GET 1ST BYTE? CPA .ASTR ="*" JMP MD2 CPA .F NO, F-TYPE CONVERSION? RSS JMP MD1 LDB BADR YES INB JSB FCONV CONVERT INPUT. SOS LEGAL? JMP *+5 BADNM JSB ERROR ILLEGAL DEF MES07 NUMERIC DEF .11 * JMP MD0 STB MSBTS YES,SAVE STA LSBTS RESULTS JMP MD5 MD1 CLA NOT E-TYPE JSB CNVRT CONVERT 1ST NO. SOC LEGAL? JMP BADNM NO, BAD NUMBER. AND LOMSK SAVE STA MSBTS 1ST NO. MD3 INB NEXT * JSB LOADB BYTE CPA .ASTR ="*"? JMP MD4 CLA NO JSB CNVRT CONVERT 2ND NO. SOC LEGAL? JMP BADNM NO, BAD NUMBER STA LSBTS SAVE RESULTS JMP MD5 MD2 LDA ADBUF,I * INSTEAD OF 1ST NO. AND LOMSK STA MSBTS DONT CHANGE ANYTHING. CLA STA GFLG INB JMP MD3 GO CHECK SECOND. MD4 LDA ADBUF * INSTEAD OF 2ND NO. INA DONT LDA 0,I CHANGE STA LSBTS ANYTHING CLA STA GFLG MD5 LDA GFLG SZA,RSS JMP *+3 LDA .+2 STA TMP50+2,I ISZ TMP50+2 LDA TMP50 SHIFT ALF,ALF ADDRESS HIGH. IOR MSBTS OR IN MOST SIGNIFIGANT BITS. STA ADBUF,I IN BUFUR ISZ ADBUF BUMP ADDRESS. LDA LSBTS MODIFY STA ADBUF,I NEXT WORD. ISZ ADBUF BUMP ADDRESS OF BUFUR ISZ TMP50 BUMP ADDRESS ISZ WTCNT FINISHED? RSS JMP INCMD CCA JMP MD0 NO, GO BACK * MES03 ASC 10,ILLEGAL PARAMETER(S) TMP50 BSS 3 ADBUF BSS 1 GFLG BSS 1 A.M10 DEF .-10 A.M22 DEF .M22 AD.9 DEF .+9 AD.3 DEF .+3 MES07 ASC 11,ILLEGAL NUMERIC INPUT LSBTS BSS d1 MSBTS BSS 1 * * THIS MODULE DISPLAYS ALLOCATION OR * A GROUP OF CONSECUTIVE LOCATIONS ON * THE SYSTEM TTY. * * COMMAND FORMAT: * SHOW, [,] * * ISHOW CLA JSB GTPAR GET LDA PRAM PARAMETRS. SZA,RSS ANY PRESENT JMP ERR4 NO,ERROR LDB PRAM+1 GET 1ST. ADA .-2 SSA ANY MORE? STB PRAM+2 NO SET 2ND TO 1ST. LDA PRAM+2 PICK UP 2ND. JSB SHOW GO DISPLAY. JMP INCMD SHOW NOP AND LOMSK SAVE STA TMP20+1 END LDA 1 AND AND LOMSK START STA TMP20 ADDRESSES. CMA,INA ARE ADA TMP20+1 THEY SSA LEGAL? JMP ERR3 NO ILLEGAL PARAMETERS INA SET CMA,INA COUNT STA SCNT JSB SPACE SPACE. SH3 LDA TMP20 ADDRESS JSB GRBGE GARBAGE? JMP SH2 RAL NO, GET ADA BBASE BUFUR STA BUFAD ADDRESS SH0 LDA BUFAD,I PICK UP AND HIMSK 1ST WORD. ALF,ALF GET ADDRESS PORTION IOR MDLE OR IN BASE LDB ADMES CONVERT RBL TO JSB ASCII AND STB TMP20+2 SAVE BYTE ADDRESS LDA BUFAD,I GET AND LOMSK UPPER 8-BITS OF INSTR JSB ASCII CONVERT TO ASCII STB TMP20+3 LDB TMP20+2 LDA BLANK BLANK JSB STORB 1ST LDA BLANK 3 JSB STORB CHARACTERS LDA BLANK JSB STORB LDB TMP20+3 LDA BLANK POSITION JSB STORB FOR LOWER 16 BITS. ISZ BUFAD POINT TO LOWE WORD. LDA BUFAD,I JSB ASCII CONVERT LOWER 16 TO ASCII JSB MSOUT PRINT DEF MESGE+1 LINE SH1 DEF .+9 ON TTY ISZ BUFAD BUMP BUFUR ADDRESS SH4 ISZ SCNT FINISHED? RSS JMP SHOW,I YES EXIT. ISZ TMP20 NO BUMP LOC. ADDRESS  LDA TMP20 GARBAGE? JSB GRBGE RSS JMP SH0 NO GO BACK ISZ BUFAD YES SKIP ISZ BUFAD TO NEXT JMP SH4 GO CHECK AGAIN SH2 ISZ TMP20 ISZ SCNT JMP SH3 JMP SHOW,I MESGE ASC 10, ASC 3,<= _ X ADMES DEF MESGE SCNT BSS 1 TMP20 BSS 4 * * THIS ROUTINE SPACES 1 LINE ON TTY * SPACE NOP JSB EXEC DEF *+5 DEF .+2 DEF TTY DEF * DEF .+0 JMP SPACE,I * * * READ COMMAND MODULE 1 * * THIS MODULE READS CODE FROM WCS. * * IREAD CLA,INA GET DECIMAL JSB GTPAR PARAMETER. LDA PRAM ONE SZA,RSS FOUND? JMP ERR4 NO ERROR LDA PRAM+1 YES PUT IN STA WCS WCS JSB EXEC READ DEF *+6 DEF .+1 DEF WCS FROM DEF BUFUR DEF B400 WCS. DEF . LDA .M256 SET STA WTCNT HEADERS LDB HBASE LDA .32 TO STA 1,I SHOW INB 16 RECORDS OF ISZ WTCNT 16 WCS WORDS JMP *-3 EACH. JMP INCMD GO GET NEXT COMMAND. * * THIS MODULE CONTROLS EXECUTION OF * USERS MICRO-PROGRAM. * * COMMENT FORMAT: * EXECUTE[,ADDRESS] * ADDRESS =0 => CALL TEST PROGRAM * #0 => EXECUTE FROM GIVEN ADDRESS * MISSING => EXECUTE FROM LAST BREAK. * IEXEC CLA GET JSB GTPAR PARAMETER LDA PRAM IF ANY. SZA IF JMP E0 LDA LSTBK NOT US CCB LAST BREAK. STB LSTBK SSA IF NOT ONE THEN JMP ERR4 MISSING PARAMETER. RSS E0 LDA PRAM+1 GET NEW PARAMETERS AND LOMSK SZA =0? JMP E1 LDA WCS YES DO I SZA,RSS KNOW WCS UNIT #? JSB GTWCS NO,GET WCS UNIT #. JSB WRITE WRITE MICROCODE. JSB MWRIT WRXITE LOAD DUMP ROUTINE. JSB TEST CALL TEST PROGRAM. LDA INST1 RETURN HERE IF PROGRAM LDB JTADR RUNS TO COMPLETION SZB,RSS JMP *+5 STA 1,I FIX INB UP LDA INST2 JUMP TABLE STA 1,I JSB MSOUT PRINT END DEF MES11 PROGRAM DEF .17 MESSAGE. CLA JSB BREAK JMP INCMD GO GET NEXT COMMAND. * E1 STA TMP51 SAVE ADDRESS LDA ORGIN IS ADDRESS LDB LDLEN IN ADB 0 LOAD/DUMP JSB LCHEK ROUTINE? DEF TMP51 SSA,RSS JMP ERR3 YES ILLEGAL PARAMETER. LDA MACRO GET MACRO AND B360 DECODE ALF,ALF MAPPER ALF ADDRESS. ALS DOUBLE AND COMPUTE ADA BBASE BUFUR ADDRESS. STA JTADR SAVE IT. LDA MDLE WE ARE IN CMA,INA ADA LOMSK SSA JMP *+4 CLA MODULE CLB 0 JMP E2 ADA B400 SSA JMP *+4 LDA .+2 MODULE CLB 1 JMP E2 ADA B400 SSA JMP *+4 CLA MODULE LDB =B10000 2 JMP E2 LDA .+2 MODULE LDB =B10000 3. E2 STA MASK1 SAVE STB MASK2 MASKS. LDB JTADR SAVE LDA 1,I JUMP STA INST1 TABLE AND HIMSK INSTRUCTION. IOR SJMP1 PUT IN JMP IOR MASK1 TO STA 1,I REGISTER INB RESTORE LDA 1,I ROUTINE. STA INST2 LDA SJMP2 PUT IOR MASK2 STA 1,I IN LDA LJMP1 IOR MASK1 JMP TO STA LJMP1 LDA LJMP2 NEXT AND HIMSK IOR TMP51 START IOR MASK2 STA LJMP2 ADDRESS. LDA WCS SSA JSB GTWCS WRITE JSB WRITE CODE JSB MWRIT TO WCS. * * RESET SO,FTWARE REGISTERS. * LDA MACRO GET MACRO STA MAC LDA REG+11 RESET CLE E SLA REG. CME LDA REG+10 CLO O SLA REG. STO LDB REG+1 B-REG AND LDA REG A-REG. MAC NOP EXECUTE MAC. JMP IEND SHOULD NOT RETURN HERE RTURN DEF *+1 * * RETURN FROM BREAK * NOP STA REG SAVE A-REG STB REG+1 B-REG CLA SEZ E INA STA REG+11 REG CLA AND SOC O INA STA REG+10 REG. LDA TMP70 SET STA LSTBK LAST BREAK ADDRESS LDB JTADR FIX SZB,RSS JMP *+5 LDA INST1 JP STA 1,I JUMP INB TABLE LDA INST2 ADDR- STA 1,I ESS. CLA REMOVE JSB BREAK CURRENT BREAK. LDB ARGBF GET RBL READY ADB .+4 TO LDA LSTBK IOR MDLE DUMP JSB ASCII ADDRESS, ADB .+3 LDA REG JSB ASCII A-REG, ADB .+3 LDA REG+1 JSB ASCII B-REG, ADB .+3 LDA REG+2 JSB ASCII F-REG, ADB .+3 LDA REG+3 JSB ASCII Q-REG, ADB .+4 LDA REG+4 JSB ASCII S1-REG ADB .+4 & LDA REG+5 JSB ASCII S2-REG, JSB MSOUT PRINT DEF RGBUF 1ST DEF .M66 LINE. LDB ARGB2 DUMP RBL ADB .+3 LDA REG+6 JSB ASCII S3-REG, ADB .+4 LDA REG+7 JSB ASCII S4-REG, ADB .+3 LDA REG+8 JSB ASCII P-REG ADB .+6 LDA REG+9 IOR B60 JSB STORB FLAG ADB .+3 LDA REG+10 IOR B60 JSB STORB 8-REG ADB .+3 LDA REG+11 AND IOR B60 JSB STORB E-REG. JSB MSOUT PRINT DEF RGBF2 LAST DEF .M54 LINE OF REGISTERS. JMP INCMD GO GET NEXT COMMAND. * * THIS ROUTINE GETS WCS LOGICAL UNIT # * GTWCS NOP JSB MSOUT ASK DEF MES12 USER DEF .11 FOR JSB RDTTY WCS DEF LINE LOGICAL DEF .M80 UNIT LDB ALINE #. RBL CONVERT CLA,INA INPUT TO JSB CNVRT BINARY SOS LEGAL? JMP GTWCS,I YES RETURN WITH RESULT IN A. JSB MSOUT NO ILLEGAL DEF MES07 NUMERIC DEF .11 INPUT. JMP GTWCS+1 TRY AGAIN. * MES12 ASC 11,WCS LOGICAL UNIT NO.?_ MES11 ASC 17,MICRO PROGRAM EXECUTION COMPLETED B2000 OCT 2000 TMP51 BSS 2 INST1 BSS 1 INST2 BSS 1 JTADR BSS 1 LSTBK DEC -1 ARGBF DEF RGBUF RGBUF ASC 19,ADR=123456 A=123456 B=123456 F=123456 ASC 14,Q=123456 S1=123456 S2=123456 ARGB2 DEF RGBF2+5 RGBF2 ASC 15, S3=123456 S4=123456 ASC 12,P=123456 FLAG=1 O=1 E=1 * * ROUTINE TO FETCH STATUS OF WCS MODULE * WSTAT NOP JSB EXEC REQUEST DEF *+4 WCS DEF .13 MODULE DEF WCS STATUS DEF FERR (EQT 4). LDA FERR IS MODULE SLA,RSS BUSY? ISZ WSTAT NO - RETURN P+2 JMP WSTAT,I YES - RETURN P+1 * MOD1 NOP WCS MODULE 1 IN USE FLAG MOD2 NOP WCS MODULE 2 IN USE FLAG MOD3 NOP WCS MODULE 3 IN USE FLAG MPNTR DEF MOD1 MCNTR NOP * * ROUTINE TO SET MODULE IN USE FLAG. * STMOD LDA .-3 SET UP STA MCNTR A -3 COUNTER. LDB MPNTR FETCH POINTER TO IN USE FLAGS. SLOOP LDA 1,I FETCH IN USE FLAG. SZA,RSS MODULE IN USE? JMP SETIT NO - SET IT & RETURN CPA WCS ALREADY SET? JMP BYMOD,I YES - RETURN INB NO - INDEX FLAG ADDRESS. ISZ MCNTR ALL THREE TESTED? JMP SLOOP NO - <:6LOOP JMP BYMOD,I YES - RETURN. SETIT LDA WCS SET WCS MODULE IN USE FLAG STA 1,I TO WCS LOGICAL UNIT NO. JMP BYMOD,I RETURN. * * ROUTINE TO SEE IF MDE IS USING THE MODULE * BYMOD NOP JSB EXEC FETCH DEF *+4 EQT DEF .13 WORD DEF WCS NUMBER DEF STATS FOUR. LDA STATS MODULE IN SLA,RSS USE? JMP STMOD NO - SET IN USE FLAG. LDA .-3 SET UP STA MCNTR -3 COUNTER LDB MPNTR & MOD BUSY FLAG POINTER. BLOOP LDA 1,I FETCH BUSY FLAG CPA WCS ARE WE USING IT? JMP BYMOD,I YES - OK RETURN. INB TRY ISZ MCNTR NEXT JMP BLOOP MODULE. JMP MSOUT WE ARE NOT USING IT. DEF MESBY MUST BE SOME DEF .20 OTHER JMP INCMD PROGRAM. MESBY ASC 20,REQUESTED MODULE IN USE - UNABLE TO LOAD STATS NOP MWRIT NOP LDA WCS SET IOR B2000 SET UNCONDITIONAL WRITE BIT. STA LUN WORD. JSB BYMOD IS WCS MODULE IN USE? JSB EXEC NO - WRITE DEF *+5 DEF .+2 LOAD/DUMP ROUTINE DEF LUN DEF RESET TO WCS. DEF LDLEN JMP MWRIT,I RETURN /Y<* * THIS MODULE ALLOWS USER TO MODIFY THE CONTENTS * OF THE HARDWARE REGISTERS * * THE REGISTERS ARE * A,B,F,Q,S1,S2,S3,S4,P,FLAG,O, AND E. * * COMMAND FORMAT * CHANGE[,REGISTER MNEUMONIC] * * A MISSING PARAMETER IMPLIES ALL REGISTERS * ARE TO BE MODIFIED. * ICHAN LDA COMA SKIP TO JSB SKPTO COMMA. SZA,RSS END OF LINE? JMP IC0 YES CHANGE ALL. INB GET JSB LOADB NEXT BYTE SZA,RSS END OF LINE? JMP ERR4 YES MISSING PARAMETER. CPA .A WANT LDA .+1 REG A CPA .B LDA .+2 REG B CPA .Q LDA .+4 REG Q CPA .O LDA .11 REG O CPA .E LDA .12 REG E CPA .P LDA .+9 REG P CPA .S JMP IC2 ONE OF SCRATCH PADS CPA .F JMP IC1 FLAG OR F IC3 STA TMP00 SAVE A. ADA .M32 A LEGAL ONE SSA,RSS FOUND? JMP ERR3 NO ILLEGAL PARAMETER LDA TMP00 IC0 JSB CHNGE JMP INCMD * * FLAG OR F * IC1 INB CHECK JSB LOADB NEXT BYTE SZA END OF LINE? JMP *+3 LDA .+3 YES THEN JMP IC0 F. CPA .L NO, =L? RSS JMP *-4 NO F LDA .+10 ELSE JMP IC0 FLAG. * * ONE OF SCRATCH PADS * IC2 INB CHECK NEXT JSB LOADB BYTE. SZA,RSS END OF LINE? JMP ERR3 YES ERROR. CPA B61 LDA .+5 S1 CPA B62 LDA .+6 S2 CPA B63 LDA .+7 S3 CPA B64 LDA .+8 S4 JMP IC3 * * THIS ROUTINE CONTROLS REGISTER MODIFICATION * * CALLING SEQUENCE: * LDA REG# (=0 => ALL) * JSB CHNGE * CHNGE NOP CCB SET STB CCNT COUNT. SZA WANT ALL? JMP *+4 LDA .M12 YES RESET STA CCNT COUNT CLA,INA START WITH A. STA TMP60 SAVE REG#. C1 ALS MULT. ALS ALS BY ADA TMP60 9. ADA RHEAD COMPUTE RAL BYTE ADDRESS INA AND SAVE IN LDB 0 B-REG. STB TMP60+3 LDA TMP60 PICK ADA RGSTR ADA .-1 STA TMP60+1 UP LDA 0,I JSB ASCII CURRENT CONTENTS. LDA .-10 IF ADA TMP60 1 BIT REG SSA JMP C3 THEN LDB TMP60+3 SHOW LDA .-5 STA TMP60+4 LDA BLANK ONLY JSB STORB ISZ TMP60+4 1 JMP *-3 CHAR. INB COMPUTE C3 CLE,ERB START ADB .-6 OF STB OBUF PRINT BUFUR. C0 JSB MSOUT OUTPUT OBUF BSS 1 CURRENT DEF .+9 CONTENTS JSB RDTTY AND DEF LINE DEF .M80 GET NEW. LDB ALINE CHECK RBL JSB LOADB BYTE CPA .ASTR ="*"? JMP C2 YES DONT CHANGE. CLA NO GET JSB CNVRT NEW VALUE. SOS LEGAL? JMP *+5 JSB ERROR NO DEF MES07 ILLEGAL DEF .11 INPUT JMP C0 TRY AGAIN LDB .-10 IS THIS ADB TMP60 A SSB ONE BIT REG? JMP *+2 AND .+1 YES USE BIT 0 STA TMP60+1,I STORE RESULT. C2 ISZ TMP60 BUMP REG #. LDA TMP60 ISZ CCNT FINISHED? JMP C1 NO GO BACK. JMP CHNGE,I YES EXIT * TMP60 BSS 5 RHEAD DEF *-5 ASC 9,A = <= _ X ASC 9,B = <= _ X ASC 9,F = <= _ X ASC 9,Q = <= _ X ASC 9,S1 = <= _ X ASC 9,S2 = <= _ X ASC 9,S3 = <= _ X ASC 9,S4 = <= _ i X ASC 9,P = <= _ X ASC 9,FLAG = <= _ X ASC 9,O = <= _ X ASC 9,E = <= _ X RGSTR DEF *+1 REG NOP REP 11 NOP * * THIS MODULE ALLOWS USER TO RELOCATE * LOAD/DUMP ROUTINE STARTING AT GIVEN * ADDRESS. * * COMMAND FORMAT: * MOVE, * IMOVE CLA GET OCTAL JSB GTPAR ADDRESS. LDA PRAM PARAMETER SZA,RSS PRESENT? JMP ERR4 NO MISSING PARAMETER. LDA PRAM+1 GET JSB MOVE PARAMETER & PERFORM JMP INCMD MOVE. * * L O A D / D U M P R O U T I N E * RESET OCT 371,174400 CR IOR F LOWER 8 OCT 173,174400 F CL IOR F UPPER 8 OCT 170,134406 F CR ADD F 6 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,127457 T LWF R1 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,174377 T IOR P * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,172377 T IOR S4 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,172777 T IOR S3 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,173377 T IOR S2 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,173777 T IOR S1 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,175377 T IOR Q * OCT 151,170757 F RRS IOR M RW OCT 345,174777 T IOR F * LJMP OCT 375,027400 JMP BREAK ADDR. * * REGISTER DUMP ROUTINE * DUMP OCT 377,170716 IOR M CW UNC OCT 377,177777 IOR OCT 151,171377 F RRɑS IOR T * ADREG OCT 371,174400 CR IOR F DUMP OCT 173,174400 F CL IOR F ADDRESS * OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 111,171377 Q RRS IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 367,171377 S1 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 365,171377 S2 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 363,171377 S3 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 361,171377 S4 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 375,171377 P IOR T * OCT 176,114777 F INC F OCT 377,125037 LWF L1 OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 111,171377 Q RRS IOR T OCT 170,053407 F CR SUB S1 7 OCT 377,170757 IOR M RW PRTRN OCT 371,175000 CR IOR Q P-REG OCT 133,174000 Q CL IOR P RETURN OCT 345,174777 T IOR F * OCT 367,170716 S1 IOR M CW UNC OCT 377,177775 IOR EOP OCT 151,171377 F RRS IOR T * * WRITE COMMAND PROCESSOR MODULE * * THIS MODULE WRITES THE USERS * MICROCODE TO WCS. * * IWRIT CLA,INA GET DECIMAL JSB GTPAR PARAMETERS. LDA PRAM ANY PARAMETERS SZA,RSS FOUND? JMP ERR4 NO, ERROR. LDA PRAM+1 PICK UP PARAMETER JSB WRITE GO WRITE JMP INCMD * WRITE NOP STA WCS SAVE WCS LOGICAL UNIT. IOR B2000 SET WRITE UNCONTIONAL & STA LUN SAVE LUN. LDB HBASE FIND WT1 LDA 1,I SZA GOOD JMP WT0 INB JMP WT1 DATA. WT0 SSA IF NEGATIVE JMP WRITE,I WE'RE THROUGH. STA TMP90 SAVE COUNT STB TMP90+1 SAVE ADDRESS CMA,INA FIX COUNT TO STA WTCNT INDICATE # OF 2100 WORDS. LDA HBASE COMPUTE CMA,INA RELATIVE ADA TMP90+1 ADDRESS. ALS DOUBLE. ADA BBASE FIND IN BUFUR STA WTBUF SAVE ADDRESS. JSB BYMOD IS WCS MODULE IN USE? JSB EXEC NO - WRITE DEF *+5 DEF .+2 CODE DEF LUN TO WTBUF NOP DEF WTCNT WCS LDB TMP90 COMPUTE BRS NEXT ADB TMP90+1 HEADER ADDRESS JMP WT1 AND REPEAT. * WTCNT BSS 1 WCS NOP TMP90 BSS 2 * * GARBAGE DETECTION ROUTINE * GRBGE NOP STA TMP99 SAVE ADDRESS ADA HBASE IS LDA 0,I IT SZA GARBAGE? JMP EXIT1 NO,TAKE GOOD EXIT LDB TMP99 YES BLS PUT ADB BBASE CORRECT LDA TMP99 ADDRESS ALF,ALF IN STA 1,I BUFUR JSB MSOUT OUTPUT DEF GARB $ $ $ FOR GRB1 DEF .+3 CONTENTS JMP GRBGE,I GARBAGE RETURN EXIT1 LDA TMP99 ISZ GRBGE JMP GRBGE,I GARB ASC 5,$ $ $ <= _ X TMP99 BSS 1 * * THIS ROUTINE CONVERTS OCTAL TO * 6 DIGIT ASCII. * B-REG HAS BYTE ADDRESS OF WHERE TO * STORE. * A-REG HAS NUMBER. * ASCII NOP STA A.000 SAVE NUMBER CLE,ELA SIGN LDA B60 SEZ SET INA YES JSB STORB PUT IN CORRECT BYTE. LDA A.000 MASK ALF OF AND .+7 NEXT 3 BITS ADA B60 MAKE ASCII. JSB STORB STORE. LDA A.000 MASK ALF,ALF OFF RAR NEXT AND .+7 BYTES ADA B60 IN JSB STORB SUCCESSION LDA A.000 AND ALF,ALF STORE RAL,RAL AS AND .+7 CREATED ADA B60 IN JSB STORB BUFUR LDA A.000 INDICATED RAR,RAR RAR AND .+7 ADA B60 JSB STORB LDA A.000 AND .+7 ADA B60 JSB STORB JMP ASCII,I RETURN A.000 BSS 1 B60 OCT 60 * * SKPTO UTILITY ROUTINE * * CALLING SEQUENCE: * LDA CHARACTER TO FIND * LDB BYTE ADDRESS START * JSB SKPTO * * CHARACTER IN A IS A FORM 0C IF 1ST BYTE=0 * 2ND BYTE=CHAR * * BYTE IN STRING =0 IMPLIES END OF LINE. * ON RETURN A=0 IMPLIES EOL REACHED * SKPTO NOP STA CHAR SAVE TEST CHAR. JSB LOADB LOAD BUFUR CHAR. SZA,RSS =0? JMP SKPTO,I YES EOL.RETURN CPA CHAR = TEST CHAR JMP SKPTO,I YES RETURN INB NO,GO CHECK JMP SKPTO+2 NEXT CHAR. * CHAR BSS 1 * * SKIP UTILITY ROUTINE- SKIPS OVER CONSECUTIVE TEST CHARACTERS * * FORMAT SAME AS SKPTO * SKIP NOP STA CHAR SAVE TEST CHAR. JSB LOADB LOAD NEXT BUFFUR CHAR. SZA,RSS =0? JMP SKIP,I YES EOL RETURN. CPA CHAR =TEST CHAR? RSS JMP SKIP,I NO,RETURN. INB YES GO CHECK JMP SKIP+2 NEXT CHAR. * * LOAD BYTE ROUTINE * * CALLING SEQUENCE; * LDB BYTE ADRES * JSB LOADB * BYTE RETURNED IN A IN FORM 0-BYTE * LOADB NOP STB TMP1 SAVE BYTE ADDRESS SLB WANTS JMP LB0 RIGHT BYTE CLE,ERB LEFT BYTE MAKE WORD ADDRESS LDA 1,I PICK UP WORD. AND HIMSK GET LEFT BYTE ALF,ALF SHIFT LOW. JMP *+4 EXIT. LB0 CLE,ERB WANTS RIGHT BYTE LDA 1,I GET WORD AND LOMSK GET RIGHT BYTE LDB TMP1 RESET B-REG JMP LOADB,I EXIT * TMP1 BSS 1 HIMSK OCT 177400 LOMSK OCT 377 * * STORE BYTE ROUTINE * * CALLING SEQUENCE LDA BYTE * LDB BYTE ADDRESS * JSB STORB * * ON EXIT BYTE ADDRESS BUMPED AUTOMATICALLY. * STORB NOP AND LOMSK ISOLATE BYTE AND STA TMP1 SAVE STB TMP2 SAVE BYTE ADDRESS SLB BYTE IS JMP SLOW CLE,ERB HIGH. MAKE WORD ADDRESS LDA 1,I PICK UP WORD AND LOMSK SAVE LOW BYTE ALF,ALF PUT IOR TMP1 IN ALF,ALF CURRENT BYTE. STA 1,I STORE. LDB TMP2 BUMP INB BYTE ADDRESS JMP STORB,I EXIT. SLOW CLE,ERB BYTE IS LOW LDA 1,I PICK UP WORD AND HIMSK SAVE HIGH BYTE IOR TMP1 PUT IN STA 1,I CURRENT BYTE. JMP SLOW-3 GO EXIT * TMP2 BSS 1 * * MICRO CODE MOVE ROUTINE * * CALLING SEQUENCE: * LDA ADRES * JSB MOVE * * ON ENTRY A= ORIGIN ADDRESS * CAUSES MICORLOAD/DUMP ROUTINE TO BE LOCATED * STARTING AT ADDRESS GIVEN * * ERROR OCCURS WHEN ORIGIN IS TOO HIGH--COMMAND ABORTED * * MOVE NOP LDB 0 SAVE ORIGIN IN B-REG. ADA LDLEN ADD THE LOAD/DUMP LENGTH. CMA,INA WILL ADA B400 IT SSA,RSS FIT AT THIS ORIGIN? JMP *+5 JSB ERROR NO,ERROR DEF MES10 ILLEGAL DEF .+10 JMP INCMD GO GET NEXT COMMAND. STB ORGIN SET ORIGIN. BLF,BLF SHIFT HIGH LDA LDLEN SET CMA,INA UP STA MCNT COUNT LDA ADLD GET STA TMP1 ADDRESS OF LOAD/DUMP ROUTINE. MV0 LDA TMP1,I PICK UP FIRST AND LOMSK WORD. CLEAR ADDRESS BITS. IOR 1 PUT IN STA TMP1,I NEW ADDRESS. ISZ TMP1 POINT TO ISZ TMP1 NEXT WCS WORD. ADB B400 ISZ MCNT FINISHED? JMP MV0 NO,GO FIX NEXT LDA RESET FIX AND HIMSK JMP ALF,ALF TO SWP START LDA SJMP2 OF AND HIMSK REG IOR 1 RESTORE STA SJMP2 ROUTINE LDA DUMP FIX AND HIMSK ALF,ALF BREAK SWP LDA MJMP2 POINT AND HIMSK IOR 1 INSTRUCTION STA MJMP2 JMP MOVE,I YES,EXIT * LDLEN OCT 104 B400 OCT 400 MCNT BSS 1 ORGIN BSS 1 MES10 ASC 10,ILLEGAL MOVE ADDRESS ADLD DEF RESET MORG OCT 274 LJMP1 EQU LJMP LJMP2 EQU LJMP+1 SJMP1 OCT 375 SJMP2 OCT 27674 * * F TYPE CONVERSION ROUTINE * * ROUTINE CONVERTS INPUT OF TYPE * * FD1-D2-D3-D4-D5-D6 * * TO A 24 BIT NUMBER WHERE D1 SPECIFIES * THE MOST SIGIFIGANT 3BITS D2 THE NEXT * 4 BITS D3 THE NEXT 5 BITS AND D4,D5,D6 * THE NEXT 4 BITS RESPECTIVELY. * * RESULTS RETURNED IN A AND B REGISTERS * * CALLING SEQUENCE: * LDB BYTE ADRESS * JSB FCONV * FCONV NOP CLA CONVERT JSB CNVRT R-BUS FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT. AND .+7 TAKE ONLY 3-BITS. STA LOWRD SAVE. INB CONVERT CLA S-BUS JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT AND B17 TAKE ONLY 4-BITS. ALF,ALF SHIF TO HIGH 4 BITS. ALF IOR LOWRD OR IN RBUS FIELD ALF POSITION IN LOWER 7 & STA LOWRD SAVE. INB CONVERT CLA FUNCTION JSB CNVRT HtFIELD. SOC LEGAL? JMP FCONV,I NO, EXIT. AND B37 TAKE ONLY 5-BITS. ALF,ALF SHIFT TO ALF,RAR HIGH 5 BITS. IOR LOWRD OR IN R&S BUS. ALF,RAL POSITION LOWER 12 & STA LOWRD SAVE. INB CONVERT CLA STORE JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT AND B17 TAKE ONLY 4 BITS. ALF,ALF SHIFT TO ALF HIGH 4 BITS. IOR LOWRD POSITION ALF IN CORRECT ORDER & STA LOWRD SAVE. INB CONVERT CLA SPECIAL JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT. AND B17 TAKE ONLY 4 BITS. ALF,ALF POSITION TO ALF HIGH 4. STA HIWRD SAVE. INB CONVERT CLA SKIP JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO,EXIT. AND B17 TAKE ONLY 4 BITS ALF,ALF SHIFT TO HIGH 8. IOR HIWRD OR IN SPECIAL. LDB 0 PUT IN B LDA LOWRD PUT REST IN A RRL 8 POSITION TO FORM WCS WORD. JMP FCONV,I RETURN. * LOWRD BSS 1 HIWRD BSS 1 B17 OCT 17 B37 OCT 37 * * MESSAGE PRINT ROUTINE * * CALLING SEQUENCE: * JSB MSOUT (ERROR) * DEF BUFUR * DEF LENGTH * * MESSAGE IS SENT TO TTY * MSOUT NOP ERROR EQU MSOUT LDA MSOUT,I PICK UP STA BUF BUFUR ADDRESS ISZ MSOUT PICK LDA MSOUT,I UP STA LONG BUFUR LENGTH ISZ MSOUT SET RETURN ADDRESS JSB EXEC CALL DEF *+5 EXEC DEF .+2 TO DEF TTY PERFORM BUF NOP I/O LONG NOP WITH WAIT. JMP MSOUT,I EXIT H<:66<* * THIS MODULE ALLOWS USER TO SET BREAK-POINTS * IN HIS MICROCODE. HE IS ALLOWED TO PLACE THEM * ANYWHERE EXCEPT IN LOCATIONS TO BE OCCUPIED * BY THE LOAD/DUMP ROUTINE. * * COMMAND FORMAT: * BREAK,
IF
=0 BREAK-POINT * IS REMOVED. IBRAK CLA JSB GTPAR GET PARAMETER. LDA PRAM SZA FOUND? JMP *+5 ERR4 JSB ERROR NO, DEF MES04 PARAMETER DEF .+9 MISSING. JMP INCMD GO GET NEXT COMMAND LDA PRAM+1 PICK UP AND LOMSK PARAMETER MASK OFF UPPER BITS JSB BREAK CALL BREAK PROCEDURE JMP INCMD GET NEXT COMMAND. * BREAK NOP LDB BFLAG WAS THERE A PREVIOUS SZB BREAK COMMAND? JSB BFIX YES GO FIX IT. SZA,RSS CLEAR BREAK? JMP BREAK,I ALREADY DONE EXIT. CCB SET BREAK STB BFLAG FLAG FOR NEXT TIME. STA TMP70 SAVE ADDRESS. LDA ORGIN GET CURRENT START OF LOAD/DUMP. LDB 0 ROUTINE ADB LDLEN AND UPPER BOUND. JSB LCHEK CHECK WHETHER ADDRESS DEF TMP70 IS INSIDE. SSA JMP *+5 JSB ERROR YES DEF MES05 ILLEGAL DEF .11 ADDRESS. JMP BREAK,I EXIT. LDA TMP70 COMPUTE ALS ACTUAL ADA BBASE BREAK ADDRESS STA BKADR AND SAVE. LDA MDLE CMA,INA JMP IS ADA LOMSK SSA IN JMP *+4 CLA MODULE CLB 0 JMP B0 ADA =B400 SSA JMP *+4 LDA .+2 MODULE CLB 1 JMP B0 ADA =B400 SSA JMP *+4 CLA MODULE LDB =B10000 2 JMP B0 LDA .+2 MODULE LDB =B1000 3 B0 STA MASK1 SAVE STB MASK2 MASKS LDB BKADR SAVE LDA 1,I MICRO Y STA BK1 INSTRUCTION LDA TMP70 GET ALF,ALF ADDRESS IOR MJMP1 OR IN JMP IOR MASK1 OR IN MASK STA 1,I STORE UPPER PART OF JUMP. INB POINT TO LOWER HALF. LDA 1,I SAVE STA BK2 IT LDA MJMP2 GET LOWER PART OF JUMP IOR MASK2 OR IN MASK. STA 1,I STORE. JMP BREAK,I EXIT. * * BREAK REPAIR UTILITY * BFIX NOP STA BFLAG LDB BKADR GET PREVIOUS BREAK ADDRESS. LDA BK1 AND STA 1,I RESTORE INB OLD LDA BK2 INST ACTION. STA 1,I LDA BFLAG JMP BFIX,I EXIT. * BFLAG NOP 1 MASK1 BSS 1 MASK2 BSS 1 BK1 BSS 1 BK2 BSS 1 BKADR BSS 1 MJMP1 OCT 375 MJMP2 OCT 27725 TO BE MODIFIED BY MOVE ROUTINE. TMP70 BSS 1 MES04 ASC 9,MISSING PARAMETER MES05 ASC 11,ILLEGAL BREAK ADDRESS * * LCHECK CHECKS TO SEE WHETHER A GIVEN VALUE * IS INSIDE OR OUTSIDE A GIVEN RANGE. * * CALLING SEQUENCE: LDA LOWER BOUND > 0 * LDB UPPER BOUND > 0 * JSB LCHECK * DEF VALUE * ON RETURN: A<0 => OUTSIDE A>=0 :=INSIDE * LCHEK NOP CMA,INA NEGATE A AND STA L.000 SAVE. LDA LCHEK,I YES EXIT WITH A<0. ISZ LCHEK LDA 0,I STA L.001 SAVE IT. ADA L.000 < LOWER SSA BOUND? JMP LCHEK,I YES EXIT WITH A<0 LDA L.001 GET VALUE CMA ADA 1 ADD TO -VALUE. JMP LCHEK,I EXIT. * L.000 BSS 1 L.001 BSS 1 * * PREPARE COMMAND MODULE * * THIS MODULE PREPARES PROM MASK TAPES FOR * USE IN PROGRAMMING PROM CHIPS. * * COMMAND FORMAT: * PREPARE[,UNIT #] DEFAULT=4 * IPREP CLA,INA JSB GTPAR GET UNIT LDA PRAM #. SZA,RSS ONE GIVEN? JMP *+3 LDA PRAM+1 YES GET IT. RSS LDA .+4 > NO USE DEFAULT. STA PCH SAVE. CPA .+2 =DISC? RSS JMP *+5 JSB ERROR YES DEF MES03 ERROR DEF .+10 JMP INCMD GO GET NEXT COMMAND. CLA COMPUTE JSB CHECK CHECKSUM. LDB ABF3 CONVERT RBL TO JSB DECML ASCII & SAVE. JSB SPACE JSB LEADR JSB MSOUT OUTPUT DEF PHEAD HEAD- DEF .15 ING. JSB SPACE JSB MSOUT ASK FOR DEF PMES1 3 LINES OF DEF .17 I.D. INFO. JSB MSOUT GET DEF LINE1 LINE1 DEF .+4 JSB RDTTY FROM DEF PL1 DEF .M72 USER. CMB,INB STB PL1L JSB PUNCH PUNCH DEF PL1 DEF PL1L IT. JSB MSOUT GET DEF LINE2 DEF .+4 LINE 2 JSB RDTTY DEF PL2 FROM DEF .M72 CMB,INB USER STB PL2L JSB PUNCH AND DEF PL2 DEF PL2L PUNCH IT. JSB MSOUT GET DEF LINE3 DEF .+4 LINE 3 JSB RDTTY DEF PL3 FROM DEF .M72 CMB,INB USER STB PL3L JSB PUNCH AND DEF PL3 DEF PL3L PUNCH IT JSB PUNCH PUNCH DEF BF3 CHECK- DEF .-3 SUM. LDA PTAB0 SET PARAMETER STA PTAB TABL HEAD. CLA GET SHIFT CODE LDB .+8 TO P2 JSB PROC PROCESS BITS 23-20. JSB LEADR PUNCH TRAILER. JSB SPACE LDA PTAB,I LAST SZA TAPE? JMP *+5 JSB MSOUT YES DEF PMES2 PRINT DEF .17 END MESSAGE JMP INCMD GO GET NEXT COMMAND. JSB MSOUT PRINT DEF PMES3 NEXT DEF .12 TAPE LDA PTAB TO STA *+2 BE JSB MSOUT GENERATED. NOP DEF .+3 ISZ PTABd POINT ISZ PTAB TO NEXT ISZ PTAB SHIFTER LDA PTAB,I CODE IN TABLE JSB CHECK COMPUTE CHECK-SUM. LDB ABF3 CONVERT RBL TO ASCII JSB DECML AND SAVE. ISZ PTAB JSB SPACE JSB MSOUT ANY DEF PMES4 CHANGE DEF .14 OF JSB MSOUT I.D. DEF LN1 INFO DEF .+4 IN JSB RDTTY LINE DEF LINE # DEF .-3 1? LDB ALINE RBL JSB LOADB CPA .N JMP P3 JSB MSOUT YES DEF LINE1 GET DEF .+4 JSB RDTTY NEW DEF PL1 DEF .M72 LINE. CMB,INB STB PL1L P3 JSB LEADR PUNCH JSB PUNCH DEF PL1 IT. DEF PL1L JSB MSOUT ANY DEF LN2 DEF .+4 CHANGE JSB RDTTY DEF LINE OF DEF .-3 I.D. LDB ALINE RBL INFO JSB LOADB IN CPA .N LINE 2 JMP P5 JSB MSOUT GET DEF LINE2 DEF .+4 NEW JSB RDTTY DEF PL2 LINE DEF .M72 CMB,INB STB PL2L P5 JSB PUNCH PUNCH DEF PL2 DEF PL2L IT. JSB MSOUT ANY DEF LN3 DEF .+4 CHANGE JSB RDTTY DEF LINE OF DEF .-3 LDB ALINE I.D. INFO RBL JSB LOADB IN LINE3. CPA .N JMP P9 JSB MSOUT YES DEF LINE3 DEF .+4 GET JSB RDTTY DEF PL3 NEW DEF .M72 CMB,INB LINE STB PL3L P9 JSB PUNCH AND DEF PL3 DEF PL3L PUNCH IT. JSB PUNCH PUNCH DEF BF3 CHECK- DEF .-3 SUM CLA SET A-REG. LDB PTAB,I PICK UP B-REG FLAG. ISZ PTAB BUMP POINTER JMP P2 GO PROCESS. * * PROCESS ROUTINE D * PROC NOP STB TMP90+1 SAVE MASK FLAG CLB STB CKSUM CLEAR CHECKSUM. PR1 STA TMP90 SAVE A-REG. LDB TMP90+1 JSB SETUP SET UP DEF BUFR1 BUFR1 FOR OUTPUT. JSB PUNCH START DEF BUFR1 PUNCH OF DEF .M48 BUFR1. LDA TMP90 CPA .248 FINISHED? JMP PROC,I YES,RETURN. ADA .+8 NO, BUMP A BY 8. STA TMP90 SAVE LDB TMP90+1 LOAD MASK FLAG. JSB SETUP GO SETUP. DEF BUFR2 BUFR2 FOR OUTPUT. JSB PUNCH START DEF BUFR2 PUNCH OF DEF .M48 BUFR2 LDA TMP90 CPA .248 FINISHED? JMP PROC,I YES RETURN ADA .+8 NO BUMP A BY 8 JMP PR1 GO DO BUFR1 * * BUFUR SET UP ROUTINE * SETUP NOP STA TMP80 SAVE ADRS. STB TMP80+1 SAVE MASK FLAG LDA SETUP,I GET STA BUFAD BUFUR ADRS. ISZ SETUP SET RETURN RAL MAKE BUFUR ADRS STA BADR1 BYTE ADRS AND SAVE LDA TMP80 PUT IN START LDB BADR1 ASCII JSB DECML ADRS. LDA MINUS PUT JSB STORB IN "-". LDA TMP80 PUT IN END ADA .+7 ASCII JSB DECML ADRS. LDA BLANK PUT JSB STORB LDA BLANK 2 JSB STORB STB BADR1 BLANKS. LDA .-4 SET STA PCNT4 LDA .-8 POINTERS. STA PCNT8 LDA TMP80 COMPUTE ADA HBASE ADRES OF STA HEADR WCS LDA TMP80 RAL WORD AND ADA BBASE STA ADBUF SAVE. LDB TMP80+1 GET CLE,ELB MASK FLAG RBR AND SEZ SET JMP *+5 SHIFT LDA LSL16 INSTRUCTHON IOR 1 TO STA SETI PROCESS JMP PS4 CORRECT LDA LSR16 SET IOR 1 OF STA SETI BITS. PS4 LDA HEADR,I IS THIS SZA,RSS GOOD DATA? JMP PS3 NO, GO PUT IN DONT CARSS ('X'S) DLD ADBUF,I YES GET WCS WORD. SETI NOP SHIFT CUREENT 4 BITS TO UPPER A. STA TMP80+2 SACE. SSA BIT=1? JMP PS1 YES, GO SET HIGH. LDB BADR1 NO, LDA .L SET PS2 JSB STORB LOW(L) STB BADR1 SAVE BYTE ADRS. LDA TMP80+2 SHIFT NEXT RAL BIT INTO POSITION. ISZ PCNT4 WAS THAT LAST BUT? JMP SETI+1 NO, GO DO NEXT. LDA BLANK YES PUT JSB STORB A BLANK STB BADR1 LDA .-4 RESET 4 STA PCNT4 COUNTER. ISZ ADBUF POINT ISZ ADBUF TO NEXT WCS WORD ISZ HEADR BUMP HEADR ADRS. ISZ PCNT8 END OF LINE? JMP PS4 NO GO DO NEXT JMP SETUP,I YES EXIT. PS1 LDB BADR1 BIT IS 1? LDA .H STOR HIGH ISZ CKSUM BUMP CHECKSUM. JMP PS2 GO STORE HIGH. PS3 LDB BADR1 WOR IS DONT CARE. LDA .X STORE JSB STORB 4 ISZ PCNT4 X'S JMP PS3+1 LDA BLANK PUT IN JSB STORB BLANK. STB BADR1 LDA .-4 RESER 4 STA PCNT4 COUNTER. ISZ ADBUF POINT ISZ ADBUF TO NEXT ISZ HEADR WCS WORD. ISZ PCNT8 LAST WORD? JMP PS4 NO GO BACK JMP SETUP,I YES EXIT. * * DECIMAL ASCII CONVERSION ROUTINE * DECML NOP STA TMP50 STVE # STB TMP50+1 SAVE ADRES CLB DIV .100 GET 100TH DIGIT STB TMP50 SAVE REMAINDER ADA B60 MAKE ASCII DIGI<. LDB TMP50+1 JSB STORB STORE. STB TMP50+1 CLB GET LDA TMP50 DIV .+10 10TH DIGIT STB TMP50 AND ADA B60 DO LDB TMP50+1 SAME FOR JSB STORB 10TH AND LDA TMP50 1'S ADA B6$0 JSB STORB DIGIT JMP DECML,I EXIT. * * ASCII PUNCK ROUTINE * PUNCH NOP LDA PUNCH,I GET STA PBUF BUFUR ADRS. ISZ PUNCH LDA PUNCH,I GET STA PBUFL BUFUR LENGTH ADRES. ISZ PUNCH SET RETURN LDA PCH SET IOR =B20000 NO WAIT BIT STA PLUN JSB EXEC PUNCH DEF *+5 DEF .+2 RECORD DEF PLUN PBUF NOP PBUFL NOP JMP PUNCH,I EXIT * * CHECKSUM COMPUTE ROUTINE * CHECK NOP ADA PBASE GET CORRENT LDA 0,I SHIFT CONSTATN STA SHIFT FROM TABLE CLA INITIALIZE STA CKSUM CHECKSUM. LDB HBASE FIND CK0 LDA 1,I NEXT SZA HEADR JMP CK1 INB JMP *-4 CK1 SSA,RSS NEGATIVE? JMP *+3 LDA CKSUM YES CHECKSUM IN JMP CHECK,I A AND EXIT. STA TMP35 SAVE COUNT STB TMP35+1 SAVE ADRS. ARS HALVE COUNT. CMA,INA MAKE NEGATIVE. STA TMP35+2 AND SAVE LDA HBASE COMPUTE CMA,INA BUFUR ADA TMP35+1 ADRES ALS OF ADA BBASE ACTUAL STA BUFAD ADRS AND ASVE CK2 DLD BUFAD,I GET WCS WORD SHIFT NOP SHIF TO LOWER 4 BITS SLA =0? ISZ CKSUM NO, BUMP CKSUM RAR ROTATE TO NEXT BIT SLA =0? ISZ CKSUM NO, BUMP CKSUM RAR ROTATE TO ENXT BIT SLA =0? ISZ CKSUM NO, BUMP CKSUM. RAR ROTATE TO ENXT BIT SLA =0? ISZ CKSUM NO BUMP CKSUM ISZ BUFAD POINT TO ENXT ISZ BUFAD WCS WORD. ISZ TMP35+2 FINISHED? JMP CK2 NO, GO BACK. LDB TMP35 YES COMPUTE BRS ADRES OF WHERE TO ADB TMP35+1 START OF NEXT SEARCH. JMP CK0 GO DO IT. TMP35 BSS 3 PBOAASE DEF *+1 LSR 4 NOP RRL 4 RRL 8 RRL 12 RRL 16 ABF3 DEF BF3 BF3 BSS 2 PHEAD ASC 15,GENERATION OF MASK BITS 23-20 PMES1 ASC 17,ENTER 3 LINES OF I.D. INFORMATION LINE1 ASC 4,LINE 1- _ X PL1 BSS 36 PL1L BSS 1 LINE2 ASC 4,LINE 2- _ X PL2 BSS 36 PL2L BSS 1 LINE3 ASC 4,LINE 3- _ X PL3 BSS 36 PL3L BSS 1 PTAB0 DEF *+2 PTAB DEF *+1 ASC 3, 19-16 DEC 1 OCT 14 ASC 3, 15-12 DEC 2 OCT 100000 ASC 3, 11-08 DEC 3 OCT 100014 ASC 3, 07-04 DEC 4 OCT 100010 ASC 3, 03-00 DEC 5 OCT 100004 OCT 0 PMES2 ASC 17,GENERATION OF MASK TAPES COMPLETED PMES3 ASC 12,GENERATION OF MASK BITS_ PMES4 ASC 14,ANY CHANGE OF I.D. INFO. IN .100 DEC 100 LN1 ASC 4,LINE 1? LN2 ASC 4,LINE 2? LN3 ASC 4,LINE 3? .M72 DEC -72 .N OCT 116 BUFR1 BSS 60 .248 DEC 248 BUFR2 BSS 60 TMP80 BSS 3 BADR1 BSS 1 MINUS OCT 55 PCNT4 BSS 1 PCNT8 BSS 1 LSL16 LSL 16 LSR16 LSR 16 .H OCT 110 .X OCT 130 PLUN BSS 1 * * VERIFY COMMAND MODULE * * THIS MODULE VERIFES MASK TAPES PRODUCED BY THE * PREPARE COMMAND MODULE. * * COMMAND FORMAT: * VERIFY[,UNIT] * DEFAULT = 5 * IVER CLA,INA GET UNIT JSB GTPAR #. LDA PRAM ANY SZA,RSS GIVEN? JMP *+3 LDA PRAM+1 YES GET RSS IT. LDA .+5 NO USE DEFAULT. STA RDR SAVE. CPA .+2 =DISC? JMP ERR3 YES ERROR. LDA .-4 SET STA VCNT COUNT. VA0 JSB MSOUT ASK DEF VMES0 USER DEF .+6 FOR JSB RDTTY TAPE DEF LINE NUMBER. DEF .M72 LDA LINE CLB,INB B=1 CPA .A23 #=2320? JMP VA1 YES GO PROCESS INB B=2 CPA .A19 #=1916? JMP VA1 YES ?WGO PROCESS INB B=3 CPA .A15 #=1512? JMP VA1 GO PROCESS INB B=4 CPA .A11 #=1108? JMP VA1 GO PROCESS INB B=5 CPA .A07 #=0704? JMP VA1 GO PROCESS INB B=6 CPA .A03 #=0300? JMP VA1 GO PROCESS JSB ERROR ILLEGAL DEF VMES2 TAPE DEF .+7 #. JMP VA0 GO TRY AGAIN. VA1 STB TMP10 SAVE INDICATOR. V0 JSB AREAD READ DEF BUFR1 ASCII DEF .M72 RECORD JMP *-3 EOT RETURN. JSB MSOUT PRINT DEF BUFR1 I.D. DEF TLOG INFO. ISZ VCNT JMP V0 JSB SPACE SPACE. LDB ABF1 GET RBL ASCII CLA,INA CHECKSUM AND JSB CNVRT CONVERT TO BINARY. SOS LEGAL? JMP *+5 JSB ERROR NO DEF VMES3 WRONG DEF .+6 INPUT JMP INCMD GO GET NEXT COMMAND. STA CKSM1 SAVE CHECKSUM FROM TAPE. LDB TMP10 GET SHIFT ADB TBLE FLAG LDB 1,I STB TMP90+1 SAVE. CLA CLEAR STA CKSUM CKSUM. STA TMP90 V1 JSB AREAD READ DEF BUFR1 ASCII DEF .M48 RECORD JMP V1 LDA TMP90 SET LDB TMP90+1 UP JSB SETUP WHAT DEF BUFR0 WE HAVE INTERNALLY. JSB COMP COMPARE DEF BUFR0 RESULTS. DEF BUFR1 LDA TMP90 WAS CPA .248 THAT LAST RECORD? JMP V2 YES GO CHECK CHECKSUMS. ADA .+8 NO BUMP STA TMP90 ADDRESS BY 8 JMP V1 & REPEAT. V2 LDA CKSUM CKSUMS CPA CKSM1 COMPARE? JMP V8 V3 JSB MSOUT OUTPUT DEF VMES8 BAD MASK TAPE DEF .+7 MESSAGE. JSB MSOUT ASK USER DEF VMES4 IF HE WOULD DEF .18 LIKE@ TAPE REPUNCHED? JSB RDTTY READ DEF LINE RESPONSE DEF .M72 LDB ALINE RESPONSE RBL IS JSB LOADB CPA .N JMP INCMD NO,GO GET NEXT COMMAND. V4 JSB MSOUT YES DEF VMES5 GET DEF .+9 PUNCH JSB RDTTY UNIT DEF LINE NUMBER. DEF .M72 LDB ALINE RBL CONVERT CLA,INA TO JSB CNVRT BINARY. SOS LEGAL? JMP *+5 JSB ERROR NO ILLEGAL DEF MES08 DIGIT DEF .11 JMP V4 TRY AGAIN STA PCH SAVE UNIT #. LDA .-3 SET STA VCNT COUNT JSB LEADR PUNCH LEADR. JSB MSOUT GET DEF PMES1 DEF .17 I.D. V5 JSB MSOUT DEF DASH INFORMATION. DEF .+1 JSB RDTTY READ DEF BUFR1 DEF .M72 IT CMB,INB STB TLOG JSB PUNCH PUNCH DEF BUFR1 IT. DEF TLOG ISZ VCNT DO 3 LINES. JMP V5 LDA TMP10 MAKE ADA .-1 PASS FOR JSB CHECK CKSUM. LDB ABF3 CONVERT RBL TO JSB DECML ASCII & SAVE. JSB PUNCH PUNCH DEF BF3 IT DEF .-3 LDB TMP90+1 GET SHIFTER. CLA & SET STA CKSUM CKSUM & STA TMP90 ADDRESS TO 0 V6 JSB SETUP GENERATE ASCII DEF BUFR1 RECORD. JSB PUNCH PUNCH DEF BUFR1 IT DEF .M48 LDA TMP90 LAST CPA .248 ONE? JMP V7 ADA .+8 NO STA TMP90 BUMP ADDRESS V6A JSB EXEC CHECK DEF *+5 DEF .13 DEF PCH DEF TLOG PUNCH STATUS DEF TLOG SSA JMP V6A LDA TMP90 LDB TMP90+1 RESET SHIFTER JMP V6 GO BACK V7 JSB LEADR YES PUNCH TRAILER JMP INCMD EXIT. V8 JSB MSOUwB@= 0, THE ERROR CODE IS RETURNED AS THE FUNCTION * VALUE. * * IF ID IS < 0 AND THE ERROR CODE IS < 0, THEN THE PROGRAM IS * ABORTED. SPC 1 * FORTRAN USEAGE EXAMPLE: * IF (IFMGR (IERR,ID,LTTY,NAME)100,200 SPC 1 * ASSEMBLY CALL SEQUENCE * JSB IFMGR * DEF *+4 * DEF IERR * DEF ID * DEF LTTY * DEF NAME * ON RETURN A = IERR SPC 1 * WHERE: * IERR = ERROR PARAMETER RETURNED FROM FILE MANAGER CALL. * ID = CALL IDENTITY CODE (NEGATIVE TO ABORT IF ERROR EXSISTS) * AS FOLLOWS. * 1 = APOSN * 2 = CLOSE * 3 = CREAT * 4 = FCONT * 5 = FSTAT * 6 = LOCF * 7 = NAMF * 8 = OPEN * 9 = POSNT * 10 = PURGE * 11 = READF * 12 = RWNDF * 13 = WRITF * LTTY = LOGICAL UNIT NUMBER OF DEVICE TO LIST ERROR SPC 2 * PARAMETER ADDRESSES SPC 1 IERR NOP ERROR CODE ID NOP FILE MANAGER CALL ID LTTY NOP LOGICAL UNIT TO OUTPUT ERROR MESS NAME NOP NAME OF FILE FILE MANAGER FILE ADDS. SPC 1 * ENTRY POINT SPC 1 IFMGR NOP JSB .ENTR USE .ENTR TO GET DEF IERR ADDRESSES OF PARAMETERS LDA IERR,I GET ERROR CODE SSA,RSS FILE MANAGER ERROR? JMP IFMGR,I NO, RETURN TO USER SPC 1 * ERROR! CONVERT ERROR TO ASCII AND PUT IT INTO OUTPUT BUFFER SPC 1 MPY M1 MULTIPLY ERROR BY -1 & THEN DIV .10 DIVIDE BY TEN TO GET TENS DIGIT. STA ERROR SAVE TEMPORARILY MPY .10 MULTIPLY BY 10 AND DIVIDE BY DIV .1 1 TO GET TENS VALUE ONLY ADA IERR,I ADD ERRORn CODE, RESULT = - UNITS CMA,INA MAKE UNITS POSITIVE LDB ERROR GET TENS DIGIT BLF,BLF ROTATE IT TO HIGH HALF OF WORD IOR B OR IT WITH UNITS IOR ASC00 OR IN ASCII CONSTANT STA ERROR PUT ASCII ERROR CODE IN MESS BUF SPC 1 * ADD CALL ID AND FILE NAME TO BUFFER SPC 1 LDA ID,I GET ID CODE SSA IS IT NEGATIVE? CMA,INA YES - MAKE POSITIVE STA B IS CODE ADB M14 GREATER SSB,RSS THAN 13? CLA YES - OUTPUT $$$$$ FOR ID STA B SAVE ERROR CODE ALS MULTIPLY BY 2 AND ADA B ADD IT TO ITSELF (X3) ADA CALL ADD BUFR STARTING ADDS TO OFFSET LDB EMES SET POINTER TO STB PNTR ID NAME CLB SET FLAG TO INDICATE NAME STB FLAG BUFFER HAS TO BE TRANSFERRED. NFILE LDB M3 SET COUNTER TO STB CNTR TRANSFER 3 WORDS LOOP LDB A,I GET ID WORD & PUT IT STB PNTR,I IN ERROR MESSAGE BUFFER INA INDEX ID AND ISZ PNTR ERROR MESSAGE POINTERS ISZ CNTR TRANSFER COMPLETE? JMP LOOP NO - TRANSFER NEXT WORD LDB FLAG SZB NAME ARRAY TRANSFERRED? JMP OUT YES - OUTPUT MESSAGE ISZ FLAG NO - SET FLAG TO SAY YES LDA NAME GET ADDRESS OF ARRAY IN A LDB NAMEB PUT OUTPUT BUFFER STB PNTR ADDRESS IN B JMP NFILE TRANSFER FILE NAME SPC 1 * OUTPUT ERROR MESSAGE SPC 1 OUT JSB EXEC DEF *+5 DEF WRITE DEF LTTY,I EMES DEF ERMES DEF M32 SPC 1 * CHECK FOR ABORT PROGRAM SPC 1 LDA IERR,I PUT ERROR CODE IN CASE WE RETURN LDB ID,I GET ID CODE SSB,RSS DO WE ABORT? JMP IFMGR,I NO - RETURN SPC 1 * ABORT PROGRAM SPC 1 JSB EXEC WRITE DEF *+5 "PROGRAM ABO RTED!" DEF WRITE ON DEF LTTY,I THE DEF ABORT LOCAL DEF M16 TTY JSB EXEC ASK DEF *+2 RTE TO DEF .6 TERMINATE PROGRAM JMP *-3 JUST IN CASE RTE DOES NOT LISTEN SPC 1 * CONSTANTS, STORAGE ALLOCATION, AND MESSAGES SPC 1 A EQU 0 A REGISTER B EQU 1 B REGISTER SPC 1 * CONSTANTS SPC 1 .1 DEC 1 .6 DEC 6 .10 DEC 10 M1 DEC -1 M3 DEC -3 M14 DEC -14 M16 DEC -16 M32 DEC -32 SPC 1 * MISC. CONSTANTS SPC 1 ASC00 ASC 1,00 WRITE DEC 2 SPC 1 * NOP'S SPC 1 CNTR NOP UTILITY COUNTER FLAG NOP ID/NAME TRANSFER FLAG PNTR NOP TRANSFER POINTER TO MESSAGE BUFFR SPC 1 * FILE MANAGER CALLS SPC 1 CALL DEF *+1 SUP 1 SPC 1 ASC 3,$$$$$ ID1 ASC 3,APOSN ID2 ASC 3,CLOSE ID3 ASC 3,CREAT ID4 ASC 3,FCONT ID5 ASC 3,FSTAT ID6 ASC 3,LOCF ID7 ASC 3,NAMF ID8 ASC 3,OPEN ID9 ASC 3,POSNT ID10 ASC 3,PURGE ID11 ASC 3,READF ID12 ASC 3,RWNDF ID13 ASC 3,WRITF SPC 1 * ERROR MESSAGE SPC 1 ERMES BSS 3 ASC 4,ERROR - ERROR NOP ASC 5, IN FILE NAM. BSS 3 NAMEB DEF NAM. SPC 1 * ABORT PROGRAM MESSAGE SPC 1 ABORT ASC 8,PROGRAM ABORTED! SPC 1 END (H 3 22681-18013 1508 SC 0122 DVR 44-RTE DVR FOR 4406 + 4416 GRAPHIC GEN.             H0101 ASMB,R,B,L,T HED ** RTE DVR44 9-20-74 NAM DVR44 ENT I.44,C.44 * * RTE (REAL-TIME EXECUTIVE) DRIVER FOR * INTERMEDIA SYSTEMS 4406 (HP 5662B) * AND 4416 GRAPHIC VIDEO GENERATORS. * * INTERMEDIA SYSTEMS CUPERTINO, CALIFORNIA * (408) 996-0900 95014 * * SOURCE - 4406-1010 * BINARY - 4406-2010 * LISTING - 4406-3010 * * * WRITE NOTE : NN = LOGICAL UNIT # * ----- ICON = OCTAL NUMBER * * CALL EXEC(2,ICON,IBA,IBL) * * ICON FUNCTION * ---- -------------- * NN SET POINTS VIA DMA. * 1NN CLEAR POINTS VIA DMA. * 2NN SET POINTS VIA INTERRUPT. * 3NN CLEAR POINTS VIA INTERRUPT. * * CONTROL NOTE : NN = LOGICAL UNIT # * ------- IFLU = OCTAL NUMBER * * CALL EXEC(3,IFLU) * * IFLU FUNCTION * ---- -------------- * 30NN CLEAR SCREEN. * 31NN SET POLARITY TO WHITE DOTS ON BLACK. * 32NN SET POLARITY TO BLACK DOTS ON WHITE. * (PROG. POL. SET ON 4416 GVG ONLY) * * EQUIPMENT TABLE ENTRIES * ----------------------- * ET6 - FUNCTION & REQUEST CODE. * ET7 - BUFFER ADDRESS. * ET8 - BUFFER LENGTH. * ET9 - NEG. POINT COUNT. * ET10 - MODE FLAG * + => CLEAR SCREEN. * 0 => INTERRUPT XFER. * - => DMA XFER. * ET11 - DMA (6 OR 7). * SKP HED RTE DVR44 INITIATION SECTION. I.44 BSS 1 *** INITIATION ENTRY. *** STA ET12,I LDB CHAN STB ET11,I JSB SDI CONFIGURE ALL I/O. LDA ET6,I AND =B77 CPA =B3 CONTROL REQUEST ? JMP CON YES. CPA =B2 WRITE REQUEST ? JMP WR YES. RJX CLA,INA ILLEGAL REQUEST. JMP I.44,I * WRITE FUNCTION. WR LDA ET8,I CHECK BUFFER LENGTH. CMA,INA SSA,SZA,RSS JMP RJX (0 & -) => REJECT. STA ET9,I LDA ET6,I FIND TYPE OF XFER. : ALF,ALF CCB RAL,SLA CLB STB ET10,I -/0 => DMA/INT. WR1 CLC GVG SET UP SSA "SET OR CLEAR" WR2 SFC GVG MODE. SZB DMA ? JMP WRD YES. LDA ET7,I START THE LDA A,I INTERRUPT DRIVEN W1 OTA GVG TRANSFER OF POINTS. CLA W2 STC GVG,C JMP I.44,I * START DMA TRANSFER. WRD LDA ET7,I BUFFER ADDRESS. WD1 CLC 2 WD2 OTA 2 LDA ET9,I BUFFER LENGTH. WD3 STC 2 WD4 OTA 2 LDA ET12,I CONTROL WORD. WD5 OTA 6 WD6 STC 6,C WD7 CLC 6 CLA WD8 STC GVG ENABLE GVG INTERRUPT. JMP I.44,I SKP * CONTROL FUNCTION. SPC 1 CON LDA ET6,I GET CONTROL REQ. AND =B7700 LDB A LDA =B4 CPB =B3000 CLEAR SCREEN ? JMP C1 YES. CPB =B3100 WHITE ON BLACK ? JMP C4 YES. CPB =B3200 BLACK ON WHITE ? JMP C5 YES. LDA =B2 ILLEGAL CONTROL REQ. JMP I.44,I SPC 1 C1 STB ET10,I CLEAR SCREEN MODE. C2 LIA GVG STA ET8,I C3 STC GVG,C JMP I.44,I SPC 1 C4 CLC GVG WHITE ON BLACK. JMP I.44,I SPC 1 C5 OTA GVG BLACK ON WHITE. C6 OTA GVG JMP I.44,I SKP HED RTE DVR44 CONTINUATION SECTION. C.44 BSS 1 *** CONTINUATION ENTRY *** JSB SCI CONFIGURE I/O. LDB ET1,I SZB LEGAL INTERRUPT ? JMP C.1 YES. STB ET15,I NO. ISZ C.44 JMP C.44,I EXIT. SPC 1 C.1 LDA ET10,I GET MODE FLAG. SZA INTERRUPT XFER ? JMP C.4 NO. ISZ ET7,I ADVANCE BUFFER ADDRESS. ISZ ET9,I DONE ? RSS NO. JMP C.4 YES. EXIT. ISZ C.44 LDA ET7,I LDA A,I OUTPUT C.2 OTA GVG NEXT POINT C.3 e STC GVG,C AND EXIT. JMP C.44,I SPC 1 C.4 LDB ET8,I OPERATION COMPLETE EXIT. CLA C.5 CLC GVG JMP C.44,I SKP * I/O INSTRUCTION CONFIGURATION. SPC 1 SCI BSS 1 CONTINUATION I/O. IOR =B106700 ENTER WITH AREG = SEL CODE. STA C.5 "CLC" XOR =B5000 STA C.3 "STC,C" XOR =B1100 STA C.2 "OTA" JMP SCI,I SPC 1 SDI BSS 1 ALL I/O. JSB SCI LDA C.5 "CLC" STA WR1 STA C4 LDA C.3 "STC,C" STA W2 STA C3 LDA C.2 "OTA" STA W1 STA C5 STA C6 XOR =B300 "LIA" STA C2 IOR =B300 "STC" STA WD8 XOR =B500 "SFC" STA WR2 SPC 1 LDA ET11,I "CLC 6" IOR =B106700 STA WD7 XOR =B5000 "STC 6,C" STA WD6 XOR =B1100 "OTA 6" STA WD5 XOR =B4 "OTA 2" STA WD2 STA WD4 IOR =B300 "STC 2" STA WD3 IOR =B4000 "CLC 2" STA WD1 JMP SDI,I SKP * CONSTANTS, ETC. SPC 1 A EQU 0 B EQU 1 GVG EQU 0 SPC 1 . EQU 1650B BASE PAGE REFERENCES. ET1 EQU .+8 ET6 EQU .+13 ET7 EQU .+14 ET8 EQU .+15 ET9 EQU .+16 ET10 EQU .+17 ET11 EQU .+18 ET12 EQU .+81 ET15 EQU .+84 CHAN EQU .+19 END 2  22681-18014 1718 SC 0122 RTE ACTIVE PROFILE GENERATOR             H0101 J ASMB,R,L HED ** RAPG - RTE ACTIVELY PROFILE GENERATOR ** JDR NAM RAPG,7 ENT MAPON,MAPOF EXT .ENTR,$LIBR,$LIBX SPC 1 * RAPG ACCUMULATES A SPECTRUM FROM THE P-REGISTER TO PROVIDE * AN ACTIVITY PROFILE FOR SYSTEM LEVEL TIMING ANALYSIS. THE CORE * REGION OF INTEREST IS DEFINED BY @FIRST AND @LAST WHEN RAPG * IS INVOKED. THE CORE AREA IS BROKEN UP INTO 50 CELLS PLUS 1 * CELL ABOVE AND BELOW THE DEFINED AREAS. A CELL IS INCREMENTED * EVERY 100 MS UNTIL THE MAPPER IS TURN OFF. MAXIUM COUNT FOR * ANYONE CELL IS 077777B. WHEN A CELL REACHES THE MAXIUM COUNT * IT IS NOT INCREMENTED EVEN THROUGH THE PROCESS IS CONTINUING. * CELLS ARE MAINTAINED IN COMMON SO THAT THEY MAY ACCESSED BY * ANOTHER PROGRAM FOR ANALYSIS. COMMON CELL STRUCTURE IS AS * FOLLOWS: * COMMON DESCRIPTION * 1 - 50 CELLS 1 THRU 50 * 51 CELL FOR AREA BELOW @FIRST * 52 CELL FOR AREA ABOVE @LAST * 53 @FIRST * 54 @LAST * 55 CELL @ CORE INCREMENT * * RAPG IS INTENDED TO RUN IN BACKGROUND, THEREFORE AREAS * BELOW THE FIRST WORD AVAILABLE BACKGROUND DISC RESIDENT * ARE NOT INCLUDED IN THE MAP. * * CAUTION: RAPG OVERLAYS CODING IN THE RTE RTIOC MODULE IN * ORDER TO TRAP THE TBG INTERRUPTS. A CALL TO MAPOF * MUST BE MADE TO RESTORE THE ORIGINAL CODE. IF FOR * ANY REASON THE PROGRAM IS ABORTED BEFORE MAPOF IS * CALLED, THE SYSTEM WILL HAVE TO BE REBOOTED. * SPC 1 * CALLING SEQUENCES: * FORTRAN * CALL MAPON (IFIRST,LAST) INVOKES PROFILE GENERATOR * CALL MAPOF TURNS PROFILE GENERATOR OFF * ASSEMBLY * JSB MAPON * DEF *+3 * DEF IFIRST * DEF LAST * ALGOL * PROCEDURE MAPON (IFIRST,LAST); INTEGER IFIRST,LAST; CODE; * PROCEDURE MAPOF; CODE; * WHERE: * IFIRST = @ ADDRESS OF 1ST. LOCATION OF PROFILE * LAST = @ ADDRESS OF LAST LOCATION OF PROFILE  SPC 1 * J. D. REED HAC-TEL 9/12/74 SPC 1 COM CELL(50),LOW,HIGH,FIRST,LAST,DELTA SPC 1 TBG EQU 10B SELECT CODE OF TBG IN SYSTEM BPLNK EQU 33B SPARE BASE PAGE WORD SPC 1 * INVOKE RAPG SPC 1 START NOP ADDRESS OF 1ST. CORE LOCATION STOP NOP ADDRESS OF LAST CORE LOCATION SPC 1 MAPON NOP JSB .ENTR FETCH THE DEF START PARAMETER ADDRESSES LDA N52 ZERO STA CNTR CLA THE LDB PCELL STA B,I PROFILE INB ISZ CNTR CELLS. JMP *-3 LDA STOP,I TRANSFER THE FIRST STA LAST AND LAST ADDRESSES LDB START,I TO STB FIRST COMMON. CMB,INB IS FIRST ADA B GREATER SSA THAN LAST? JMP MAPON,I YES - FORGET THE WHOLE THING. MPY D1 NO - DIV D50 CALCULATE STA DELTA DELTA. SPC 1 * SET ON FLAG AND OVERLAY RTE SPC 1 ISZ ONFLG INDICATES RAVAGE OF RTE. LDA TBG FETCH AND B1777 ADDRESS LDA A,I OF CIC ENTRY POINT STA CIC AND SAVE. ADA B33 SAVE JMP CLOCK STA JMPAD INSTRUCTION & LDA A,I INSTRUCTION ADDRESS STA JMPCK IN RTE LDB BPLNK SAVE BASE STB BPSAV PAGE LINK. JSB OFF TURN MEMORY PROTECT OFF. LDB TRAP ESTABLISH STB BPLNK LINK TO MAPPER. LDA OVLAY OVERLAY JMP CLOCK INSTRUCTION STA JMPAD,I WITH JMP TO MAP INSTRUCTION. JSB ON TURN MEMORY PROTECT ON. JMP MAPON,I RETURN SPC 1 * MAPPER - PROFILE GENERATOR SECTION SPC 1 MAP LDA BKDRA IS P-REG IS CMA,INA BELOW FWA OF ADA CIC,I BACKGROUND DISC SSA RESIDENT AREA? JMPCK NOP YES - JUMP TO CLOCK UPDATE LDA CIC,I SUBTRACT P-REG CMA,INA FROM LAST ADA LAAST LOCATION. SSA IS P TOO LARGE? JMP EXITH YES - INCREMENT HIGH CELL. LDA FIRST SUBTRACT STARTING CMA,INA LOCATION FROM ADA CIC,I P-REGISTER. SSA IS P TOO SMALL? JMP EXITL YES - INCREMENT LOW CELL. CLB NO - LOCATE APPROPRIATE DIV DELTA BUFFER ELEMENT AND ADA PCELL FETCH LDB A,I CONTENTS. CPB MAX AT MAXIUM? JMP JMPCK YES - EXIT ISZ A,I NO - BUMP AND NOP JMP JMPCK THEN EXIT. EXITL LDA LOW FETCH LOW CELL. CPA MAX LOW AT MAXIUM? JMP JMPCK YES - EXIT ISZ LOW NO - BUMP LOW CELL. NOP JMP JMPCK EXIT. EXITH LDA HIGH FETCH HIGH CELL. CPA MAX HIGH AT MAXIUM? JMP JMPCK YES - EXIT ISZ HIGH NO - BUMP HIGH CELL. NOP JMP JMPCK EXIT. SPC 1 * MAPOF - RESTORE RTE SPC 1 MAPOF NOP LDA ONFLG HAS RTE SZA,RSS BEEN RAVAGED? JMP EXIT NO - RETURN JSB OFF YES - TURN MEMORY PROTECT OFF. LDA JMPCK RESTORE STA JMPAD,I JMP CLOCK INSTRUCTION LDA BPSAV AND STA BPLNK BASE PAGE WORD. JSB ON TURN MEMORY PROTECT ON. EXIT ISZ MAPOF BUMP RETURN ADDRESS JMP MAPOF,I & RETURN. SPC 1 * MEMORY PROTECT ON/OFF ROUTINES SPC 1 ON NOP JSB $LIBX TURN MEMORY PROTECT ON. DEF ON SPC 1 OFF NOP JSB $LIBR TURN MEMORY NOP PROTECT OFF. JMP OFF,I SPC 1 * CONSTANTS AND CORE ALLOCATIONS SPC 1 A EQU 0 B EQU 1 BKDRA EQU 1754B SPC 1 B33 OCT 33 B1777 OCT 1777 BPSAV NOP CIC NOP CNTR NOP D1 DEC 1 D50 DEC 50 JMPAD NOP MAX OCT 077777 N52 DEC -52 ONFLG NOP OVLAY JMP BPLNK,I PCELL DEF CELL TRAP DEF MAP SPC 1 END FTN,L PROGRAM MAPTT C C MAPTT TESTS AND DEMOSTRATS THE USE OF THE ACTIVITY PROFILE C GENERATOR SUBROUTINE RAPG. C INTEGER LINK(5) C C FETCH THE LOWER & UPPER CORE BOUNDRIES. C CALL RMPAR (LINK) IFIRST = 57200B LAST = 77677B IF (LINK(1) .GT. 0) IFIRST = LINK(1) IF (LINK(2) .GT. 0) LAST = LINK(2) C C INVOKE THE ACTIVITY PROFILE GENERATOR C CALL MAPON (IFIRST,LAST) C C CALCULATE SINE, COSINE, TAN & COTAN C DO 10 I=1,3600 X = FLOAT(I) * 0.01745 A = SIN(X) B = COS(X) C = TAN(X) D = 1.0/C 10 CONTINUE C C TURN GENERATOR OFF C CALL MAPOF C END END$ FTN,L PROGRAM ACP C C ACP LISTS THE ACTIVITY PROFILE PRODUCED BY THE RTE ACTIVITY C PROFILE GENERATOR. C COMMON ICELL(50),LOW,IHIGH,IFIRST,LAST,IDELTA C C CALCULATE THE SUM OF THE SAMPLES. C IF (LOW .NE. 077777B) SUM = LOW IF (IHIGH .NE. 07777B) SUM = SUM + IHIGH DO 10 I=1,50 IF (ICELL(I) .NE. 077777B) SUM = SUM + ICELL(I) 10 CONTINUE C C OUTPUT HEADING C WRITE(6,20) 20 FORMAT(28X"ACTIVITY PROFILE"2/,X 1"CORE LOCATION USAGE PROBABILITY CUMULATIVE USAGE"/,X 2" (%) PROBABILITY (%)") C C OUTPUT PROFILE C LB = IGET(1754B) DIST = 0.0 XDENS = 100000.0 YDENS = 100.0 * FLOAT(LOW) / SUM IF (LOW .EQ. 077777B) GO TO 30 XDENS = YDENS DIST = DIST + YDENS 30 WRITE(6,40)LB,IFIRST,XDENS,DIST 40 FORMAT(2X,K5"-"K5,9X,F5.2,18X,F5.2) LB = IFIRST +1 IUB = IFIRST + IDELTA DO 60 I=1,50 XDENS = 100000.0 YDENS = 100.0 * FLOAT(ICELL(I)) / SUM IF (ICELL(I) .EQ. 077777B) GO TO 50 XDENS = YDENS DIST = DIST + YDENS 50 WRITE(6,40)LB,IUB,XDENS,DIST LB = IUB + 1 IUB = IUB + IDELTA 60 CONTINUE IUB = IGET(1777B) =E XDENS = 100000.0 YDENS = 100.0 * FLOAT(IHIGH) / SUM IF (IHIGH .EQ. 077777B) GO TO 70 XDENS = YDENS DIST = DIST + YDENS 70 WRITE(6,40)LAST,IUB,XDENS,DIST C END END$   22681-18015 1508 SC 0122 DVR 33-RTE WCS DVR              H0101 ((H p8@@8x(h((P((P xpxP((Hx(x(px(h8@@8x(x(h ((p@ H(((P@ H(@`PxASMB,R,B,L,C HED ** RTE WRITABLE CONTROL STORE DRIVER (DVR33) ** JDR NAM DVR33 ENT I.33,C.33 SPC 1 * DVR33 OPERATES UNDER THE CONTROL OF THE I/O CONTROL MODULE * OF THE REAL-TIME EXECUTIVE. THIS DRIVER PERFORMS THE FOLLOW- * ING FUNCTIONS BETWEEN A USER'S PROGRAM AND A WRITEABLE CON- * TROL STORE (WCS) MODULE: * 1. WRITE UNCONDITIONALLY (BIT 10 SET IN CONTROL WORD OF * THE EXEC CALL), SET IN USE FLAG. * 2. WRITE ONLY IF IN USE FLAG NOT SET AND SET IN USE FLAG. * 3. READ FROM WCS MODULE INTO USER'S BUFFER * 4. RESET IN USE FLAG. * * WRITE REQUEST MAY BE MADE UNDER DMA CONTROL. * READ REQUEST ARE ALWAYS NON DMA. * * CALLING SEQUENCES: * 1. READ * A. FORTRAN - CALL EXEC (ICODE,ICNWD,IBUF,LEN,IADDS) * B. ASSEMBLY * EXT EXEC * . * . * . * JSB EXEC * DEF *+6 * DEF ICODE * DEF ICNWD * DEF IBUF * DEF LEN * DEF IADDS * C. ALGOL * PROCEDURE EXEC (ICODE,ICNWD,IBUF,LEN,IADDS); * VALUE ICODE,ICNWD,IBUF,LEN,IADDS; * INTEGER ICODE,ICNWD,IBUF,LEN,IADDS; * CODE; * 2. WRITE * A. FORTRAN - CALL EXEC (ICODE,ICNWD,IBUF,LEN) * B. ASSEMBLY * EXT EXEC * . * . * . * JSB EXEC * DEF *+5 * DEF ICODE * DEF ICNWD * DEF IBUF * DEF LEN * C. ALGOL * PROCEDURE EXEC (ICODE,ICNWD,IBUF,LEN); * VALUE ICODE,ICNWD,IBUF,LEN; * INTEGER ICODE,ICNWD,IBUF,LEN; * CODE; * 3. RESET IN USE FLAG * A. FORTRAN - CALL EXEC (ICODE,ICNWD) * B. ASSEMBLY * EXT * . * .t  * . * JSB EXEC * DEF *+3 * DEF ICODE * DEF ICNWD * C. ALGOL * PROCEDURE EXEC (ICODE,ICNWD); * VALUE ICODE,ICNWD; * INTEGER ICODE,ICNWD; * CODE; * WHERE: * ICODE = REQUEST CODE * 1 = READ * 2 = WRITE * 3 = RESET IN USE FLAG * ICNWD = CONTROL INFORMATION * = LOGICAL UNIT FOR READ, WRITE & RESET IN USE FLAG * = LOGICAL UNIT + 2000B FOR WRITE UNCONDITIONALLY * IBUF = BUFFER LOCATION IN USER'S PROGRAM * LEN = BUFFER LENGTH * = NEGATIVE LEN FOR 2100 WORDS * = LENGTH FOR WCS WORDS * IADDS = OCTAL NUMBER SPECIFYING THE STARTING WCS LOCATION * OF THE OBJECT MICROCODE TO BE MOVED. * STATUS INFORMATION EQT WORD # 5 * 1. BIT 0 = 0 IN USE FLAG NOT SET. * 2. BIT 0 = 1 IN USE FLAG SET. * * INITIATION SECTION RETURN STATUS: * (A) = 0 = OPERATION INITIATED * (A) = 1 = ILLEGAL REQUEST OR ZERO LENGTH READ/WRITE * (A) = 3 = WRITE REQUESTED BUT IN USE FLAG SET, REQUEST * IS REJECTED. * * WCS WORD CORE MEMORY FORMAT * * BIT 15 8 7 0 * ******************************************************** * WORD 1 * RELATIVE ADDRESS WITHIN WCS * BITS 23-16 OF WCS WORD * * WORD 2 * BITS 15-0 OF WCS WORD * * ******************************************************** * SPC 1 * J. D. REED * HUGHES AIRCRAFT CO. TUCSON ARIZONA * 7/13/74 SPC 1 I.33 NOP INITIATOR ENTRY/EXIT POINT SPC 1 * CONFIGURE I/O INSTRUCTIONS SPC 1 STA SC SAVE SELECT CODE. IOR XSTF FORM STA WCS01 STF WCS STA WCS03 INSTRUCTION STA WCS06 AND STORE STA WCS10 IN DRIVER. ADA B400 FORM LIA WCS INSTRUCTION STA WCS04 AND STORE IN DRIVER. ADA B100 FORM OTA WCS STA WCS02 INSTRUCTION AND STA WCS07 STORE IN DRIVER. ADA B100 FORM STC WCS INSTRUCTION STA WCS09 AND STORE IN DRIVER. ADA B200 FORM CLF WCS INSTRUCTION STA WCS11 AND STORE IN DRIVER. ADA B3400 FORM LIB WCS INSTRUCTION STA WCS05 AND STORE IN DRIVER. ADA B100 FORM OTB WCS INSTRUCTION STA WCS08 AND STORE IN DRIVER. SPC 1 * CHECK REQUEST & BRANCH TO READ, RESET OR WRITE SPC 1 LDA EQT6,I FETCH THE CONTROL WORD, ROTATE ALF,RAL WRITE UNCONDITIONAL ELA,RAR BIT TO E, AND B3740 AND ISOLATE REQUEST BITS CPA B40 A READ REQUEST? JMP READ YES - INITIATE A READ. CPA B100 A WRITE REQUEST? JMP WRITE YES - CHECK TO SEE IF WRITE OK. CPA B140 A RESET REQUEST? JMP RESET YES - RESET IN USE FLAG. A1 CLA,INA,RSS ILLEGAL REQUEST - RETURN A = 2. A2 ADA D2 ADD 2 TO VALUE OF A REGISTER & JMP I.33,I RETURN TO REJECT CALL. SPC 1 * RESET IN USE FLAG REQUEST SPC 1 RESET LDA EQT5,I FETCH EQT WORD 5, AND CLEAR CLEAR BIT 0 STA EQT5,I AND RESTORE WORD. LDA D2 SET A = 4 CLB AND B=0 (ZERO XMISSION LOG) JMP A2 FOR IMMEDIATE COMPLETION & RETURN. SPC 1 * READ REQUEST INITIALIZATION SPC 1 READ JSB FIXUM FIX REQUEST LENGTH & ADDRESS SREAD LDA EQT9,I FETCH WCS ADDRESS, ALF,ALF MOVE TO UPPER HALF OF WORD READL STA EQT9,I AND SAVE IT. WCS01 STF WCS INITIALIZE WCS INTERFACE. WCS02 OTA WCS OUTPUT READ ADDRESS. WCS03 STF WCS RESET WCS INTERFACE. WCS04 LIA WCS GET UPPER WORD INTO A REGISTER. WCS05 LIB WCS GET LOWER WORD INTO B REGISTER. IOR EQT9,I INSERT ADDRESS IN UPPER WORD. STA ADDRS,I STORE UPPER WORD IN BUFFER. ISZ ADDRS INDEX BUFFER ADDRESS. STB ADDRS,I STORE LOWER WORD IN BUFFER.  ISZ ADDRS INDEX BUFFER ADDRESS. ISZ EQT12,I INCREMENT TRANSMISSION LOG. LDA EQT9,I FETCH WCS ADDRESS ADA B400 AND INCREMENT. SZA,RSS ZERO? JMP DONE YES - END OF MODULE - QUIT! ISZ EQT11,I NO - REQUESTED WORDS READ? JMP READL NO - LOOP. DONE LDB EQT12,I FETCH TRANSMISSION LOG. LDA EQT13,I FETCH TRANSMISSION LOG FLAG. SLA 2100 OR WCS WORDS? BLS 2100 - DOUBLE XMISSION LOG. LDA D2 RETURN TO IOC WITH A = 4, JMP A2 B = TRANSMISSION LOG. SPC 1 * CHECK OUT WRITE REQUEST SPC 1 WRITE CLA,INA PREPARE FOR A BUSY REJECT. LDB EQT5,I FETCH THE STATUS WORD. SLB,RSS MODULE IN USE? JMP RITE NO - OK TO WRITE. SEZ,RSS YES - UNCONDITIONAL WRITE? JMP A2 NO - REJECT CALL WITH A = 3. SPC 1 * INITIALIZATION FOR A WRITE OPERATION SPC 1 RITE JSB FIXUM FIX REQUEST LENGTH & ADDRESS. LDB EQT11,I IS REQUEST LENGTH ADB D256 > 256 SSB WCS WORDS? JMP A1 YES - REJECT CALL. LDA EQT11,I NO - GET ORGINAL LENGTH. STA EQT11,I SAVE REQUEST LENGTH CMA,INA SET TRANSMISSION LOG TO POSITIVE STA EQT12,I VALUE OF REQUEST LENGTH. LDA EQT5,I FETCH EQT WD 5. SLA,RSS IF IN USE FLAG NOT INA SET, SET IT AND STA EQT5,I RESTORE STATUS WORD. LDA EQT4,I IS THIS WRITE TO BE SSA HANDLED BY DMA? JMP DMA YES - GO TO DMA SECTION. SPC 1 * NON DMA WRITE SECTION SPC 1 WCS06 STF WCS INITIALIZE WCS INTERFACE. RITEL LDA ADDRS,I FETCH UPPER WORD TO A REGISTER. ISZ ADDRS INDEX BUFFER POINTER LDB ADDRS,I FETCH LOWER WORD TO B REGISTER. ISZ ADDRS INDEX BUFFER POINTER. WCS07 OTA WCS OUTPUT UPPER WORD TO INTERFACE. WCS08 OTB WCS OUTPUT LOWER WORD TO INT6 ERFACE. WCS09 STC WCS SET DEVICE TO DO STORE. ISZ EQT11,I OUTPUT REQUEST FULFILLED? JMP RITEL NO - LOOP. JMP DONE GO AND FINISH UP. SPC 1 * DMA WRITE SECTION SPC 1 DMA LDB CHAN FETCH DMA CHANNEL. IOR XOTA CONFIGURE OTA INSTRUCTION STA DMA01 AND SAVE. ADA B1100 CONFIGURE STC,C INSTRUCTION STA DMA06 AND SAVE. ADA B1104 CONFIGURE OTA 2 OR 3 STA DMA03 INSTRUCTIONS STA DMA05 AND SAVE. ADA B100 CONFIGURE STC 2 OR 3 STA DMA04 INSTRUCTION & SAVE. ADA B4000 CONFIGURE CLC 2 OR 3 STA DMA02 INSTRUCTION & SAVE. ADA B4 FORM CLC INSTRUCTION STA DMA07 AND SAVE. LDA CW1 FORM DMA IOR SC CONTROL WORD 1 DMA01 OTA DMA.6 SEND DMA CONTROL WORD 1. DMA02 CLC DMA.2 PREPARE DMA FOR CONTROL WORD 2. LDA EQT7,I FETCH AND SEND DMA03 OTA DMA.2 2ND DMA CONTROL WORD DMA04 STC DMA.2 PREPARE DMA FOR CONTROL WORD 3. LDA EQT11,I FETCH BUFFER LENGTH, ALS DOUBLE (2100 WORDS) DMA05 OTA DMA.2 AND SEND FOR CONTROL WORD 3. CLF 0 DISABLE INTERRUPTS. DMA06 STC DMA.6,C INITIATE DMA. WCS10 STF WCS INITIALIZE WCS INTERFACE. WCS11 CLF WCS START DATA TRANSFER. CLA SPECIAL CPA DUMMY PROCESSING REQUIRED? JMP I.33,I NO - RETURN TO IOC, A = 0. DMA07 CLC DMA.6 CLEAR DMA. LDB INTBA SET B = ADDRESS OF LDA CHAN THE APPROPRIATE CPA D7 ENTRY IN THE INB INTERRUPT TABLE. LDA B,I SET BIT OF THE IOR BIT15 ENTRY EQUAL TO 1 AND STA B,I RETURN TO INTERRUPT TABLE. XSTF STF 0 ENABLE INTERRUPT SYSTEM. CLA RETURN TO IOC JMP I.33,I WITH A = 0. SPC 1 * CONTINUATION SECTION - USE FOR DMA WRITES. SPC 1 C.33 NOP LDB EQT1,I SPURIOUS SZB,RSS INT!ERRUPT? JMP SPURI YES - IGNORE IT. IOR XCLC FORM CLC INSTRUCTION STA *+1 AND CLC DMA.6 TURN OFF DMA. LDB EQT8,I FETCH BUFFER LENGTH AS X LOG. LDA BIT15 SET BIT 15 TO RELEASE DMA. JMP C.33,I RETURN TO IOC. SPURI STB EQT15,I CLEAR TIME OUT. ISZ C.33 SET RETURN FOR CONTINUATION JMP C.33,I AND RETURN TO SYSTEM. SPC 1 * ROUTINE TO FETCH BUFFER LENGTH & ADDRESS SPC 1 FIXUM NOP LDA EQT8,I FETCH BUFFER LENGTH. SZA,RSS REJECT JMP A1 CALL IF SSA,SLA,RSS ZERO OR CLB,RSS NEGATIVE JMP A1 AND ODD. STB EQT12,I ZERO TRANSMISSION LOG. SSA IF 2100 WORDS, INB SET TRANSMISSION STB EQT13,I LOG FLAG. SSA IF NEGATIVE ARS DIVIDE BY TWO. SSA,RSS IF POSITIVE, CMA,INA MAKE NEGATIVE. STA EQT11,I SAVE NEGATIVE WORD COUNT. LDA EQT7,I FETCH THE STA ADDRS BUFFER ADDRESS. JMP FIXUM,I RETURN. SPC 1 * CONSTANTS & CORE ALLOCATION SPC 1 ADDRS NOP SPC 1 B EQU 1 B4 OCT 4 B40 OCT 40 B100 OCT 100 B140 OCT 140 B200 OCT 200 B400 OCT 400 B1100 OCT 1100 B1104 OCT -1104 B3400 OCT 3400 B3740 OCT 3740 B4000 OCT 4000 BIT15 OCT 100000 SPC 1 CHAN EQU 1673B CLEAR OCT 177776 CW1 OCT 120000 SPC 1 D2 DEC 2 D7 DEC 7 D256 DEC 256 DMA.2 EQU 2 DMA.6 EQU 6 DUMMY EQU 1737B SPC 1 EQT1 EQU 1660B EQT4 EQU 1663B EQT5 EQU 1664B EQT6 EQU 1665B EQT7 EQU 1666B EQT8 EQU 1667B EQT9 EQU 1670B EQT10 EQU 1671B EQT11 EQU 1672B EQT12 EQU 1771B EQT13 EQU 1772B EQT15 EQU 1774B SPC 1 INTBA EQU 1654B SPC 1 N256 DEC -256 SPC 1 SC NOP SPC 1 WCS EQU 0 SPC 1 XCLC CLC 0 XOTA OTA 0 SPC 1 END T*($$*  22681-18016 1511 SC 0422 BCS TERM. COMMUN. VIA DIAL-UP PHONE NTWRK             H0104 EFTN,L,A,B PROGRAM CTEST C ***1-23-74**J.S.***** C C*****************GENERAL INFORMATION*************************** C C CTEST IS A VERIFICATION ROUTINE TO BE USED IN CONJUNCTION C WITH 'RTTY','D.50',AND 'D.51' TO ALLOW CONVENIENT TESTING C FOR THE PROPER OPERATION OF THE HP INTERFACES AND THEIR C ASSOCIATED DATA SETS, FOR AUTOMATIC CALL OUT AND ANSWER C COMMUNICATIONS OVER THE BELL DDD TELEPHONE NETWORK WITH A C ASR 33 TTY OR EQUIVALENT TERMINAL WITH COMPATABLE ACOUSTIC C OR HARDWIRED MODEM AND ANSWER & ORIGINATE CAPABILITY. C C IF THE AUTO DIAL MODE IS BEING TESTED WITH A TERMINAL C WITH AN ACOUSTIC MODEM, MANUALLY ANSWER THE PHONE, EXPECT C TO HEAR SILENCE ON THE LINE SINCE THE ACU IS WAITING ON C AN ANSWER TONE, PLACE THE HANDSET IN THE ACOUSTIC COUPLER C WITH THE TERMINAL IN THE ANSWER MODE AND WAIT FOR THE C SIGNAL INDICATION. THEN STRIKE ANY KEY AND EXPECT TO SEE C "HELLO!" PRINTED ON THE TERMINAL. WHEN THE LINE IS C DISCONNECTED BY THE COMPUTER, "BYE!" WILL BE PRINTED OUT C FIRST. WHEN THE LINE IS DISCONNECTED BY THE TERMINAL AN C ERROR STATUS WILL BE PRINTED ON THE NEXT OR CURRENT ACCESS C TO D.50 MODEM DRIVER. C C THE METHOD OF OPERATION IS A SERIAL SET OF CALLS TO THE C COMMUNICATIONS DRIVERS WITH SUBSEQUENT STATUS CALLS (THRU C RTTY) WITH STATUS PRINTOUTS ON THE LOCAL TERMINAL WHEN C STATUS CHANGES OR AVAIL IS 0. C C IN TEST MODE #1(LISTEN FOR CALL IN) STANDARD FORTRAN READ&WRITE C CALLS ARE MADE (IF SWR BIT 3 IS ON) WHICH OUTPUT A MESSAGE, C INPUT 3 NUMBERS IN FREE FIELD, AND LIST THE NUMBERS ON THE C LOCAL TERMINAL. C C THE PROGRAM IS LOADED USING A BCS CONFIGURED WITH D.50 AND C D.51. RTTY MUST ALSO BE LOADED SUBSEQUENT TO CTEST DURING C THE BCS LOAD. RTTY MUST BE EDITED IF THE LU'S ARE DIFFERENT C THAN 12B FOR THE MODEM OR 13B FOR THE ACU. CTEST MUST BE EDITED C IF THE MODEM LU IS DIFFERENT THAN 12B. C C******************SWITCH REGISTER OPTIONS AT RUN TIME*********** C C BIT H MEANING C --- ------- C 1 SUPPRESS INSTRUCTION PRINT-OUT C 2 GET OUT OF A STATUS LOOP C 3 DO FTN READ/WRITE IN MODE 1 C C**************************************************************** C C********SEE FORMAT 100 FOR DEFINITION OF TEST MODES************* C C C C DIMENSION IOBUF(10),IDGTS(7) C C************CHANGE FOR MODEM LU CONFIGURATION!!!!********** C ILUTY=12B C C*********************************************************** C C-----START OF PROGRAM-------- C IF(ISSW(1))2,1 1 WRITE(2,100) 100 FORMAT("REMOTE TTY COMMUNICATIONS VERIFICATION TEST"// 1" TEST MODES ARE"/ -" 1--LISTEN FOR CALL-IN"/ -" 2--INPUT AN ASCII RECORD"/ -" 3--OUTPUT AN ASCII RECORD"/ -" 4--DIAL A REMOTE UNIT"/ -" 5--DISCONNECT PHONE LINE"/ -" 6--CLEAR ACU DRIVER"/ -" 7--CLEAR TTY DRIVER"//) C 2 WRITE(2,200) 200 FORMAT("INPUT MODE") READ(1,*)IMODE GO TO(1000,2000,3000,4000,5000,6000,7000,8000)IMODE C 1000 CALL RTTY(3,1,IDUM,IDUM,ISTAT) IF(-ISTAT)1100,1200 1100 WRITE(2,1101)ISTAT 1101 FORMAT("CALL REJECTED, DRIVER BUSY-ISTAT="I3) GO TO 2 1200 WRITE(2,1201) 1201 FORMAT("--DRIVER STATUS--"/"REF-STATUS-AVAIL-XLOG") ICOMP=9999 1210 IF(-IPRST(0,ICOMP))1215,1250 1215 IF(ISSW(2))2,1210 1250 IF(ISSW(3))1300,2 1300 WRITE(ILUTY,1301) 1301 FORMAT("COMMUNICATIONS ESTABLISHED!!"/ - "INPUT 3 INTEGER NUMBERS"/"?_") ICOMP=9999 1310 IF(-IPRST(0,ICOMP))1315,1320 1315 IF(ISSW(2))2,1310 1320 READ(ILUTY,*)(IOBUF(I),I=1,3) ICOMP=9999 1330 IF(-IPRST(0,ICOMP))1335,1340 1335 IF(ISSW(2))2,1330 1340 WRITE(2,1302)(IOBUF(I),I=1,3) 1302 FORMAT("REMOTE TTY SENT #'S "3(I6",")) GO TO 2 C 2000 CALL RTTY(1,1,IOBUF,10,ISTAT) IF(-ISTAT)1100,2200 2200 WRITE(2,1201) ICOMP=9999 2300 IF(-IPRST(0,ICOMP))2310,2400 2310 IF(ISSW(2))2'1 ,2300 2400 WRITE(2,2402)IOBUF 2402 FORMAT("MESSAGE RECEIVED IS:"/10A2) GO TO 2 C 3000 WRITE(2,3010) 3010 FORMAT("ENTER A 20 CHARACTER RECORD"/" "20"'"/"?_") READ(1,3020)IOBUF 3020 FORMAT(10A2) CALL RTTY(2,3,IOBUF,10,ISTAT) IF(-ISTAT)1100,3100 3100 WRITE(2,1201) ICOMP=9999 3200 IF(-IPRST(0,ICOMP))3210,2 3210 IF(ISSW(2))2,3200 C 4000 WRITE(2,4010) 4010 FORMAT("INPUT A 7 DIGIT PHONE NUMBER:_") READ(1,*)IDGTS CALL RTTY(3,1,IDUM,IDUM,ISTAT) IF(-ISTAT)1100,4020 4020 CALL RTTY(2,5,IDGTS,7,ISTAT) IF(-ISTAT)1100,4100 4100 WRITE(2,1201) ICOMP=9999 4200 IF(-IPRST(5,ICOMP))4210,1210 4210 IF(ISSW(2))2,4200 C 5000 CALL RTTY(3,0,IDUM,IDUM,ISTAT) IF(-ISTAT)1100,5100 5100 WRITE(2,1201) ICOMP=9999 5200 IF(-IPRST(0,ICOMP))5210,6000 5210 IF(ISSW(2))2,5200 C 6000 CALL RTTY(0,5,IOBUF,INUMB,ISTAT) IOBUF(2)=IPRST(5,IOBUF(1)) GO TO 2 7000 CALL RTTY(0,0,IOBUF,INUMB,ISTAT) IOBUF(2)=IPRST(0,IOBUF(1)) GO TO 2 8000 PAUSE GO TO 2 END FUNCTION IPRST(ILU,ICOMP) CALL RTTY(4,ILU,IAVL,INUMB,ISTAT) IPRST=IAVL IF(-IAVL)5,10 5 IF(ICOMP-ISTAT)10,20,10 10 WRITE(2,100)ILU,ISTAT,IAVL,INUMB 100 FORMAT(I2,2X,@6,2X,@2,2X,I3) ICOMP=ISTAT 20 RETURN END END$ ASMB,R,L,B ***FORTRAN REMOTE TTY INTERFACE ROUTINE***J.S.** HED ***RTTY--FORTRAN INTERFACE ROUTINE FOR D.50&51*1-12-74* * * NAM RTTY * SKP * ********************GENERAL INFORMATION*********************** * * THE PURPOSE OF THIS ROUTINE IS TO ALLOW I/O OPERATIONS THRU * D.50 & D.51, MODEM & ACU DRIVERS, FROM FORTRAN CALLS WITHOUT * GOING THRU THE FORTRAN FORMATTER. THIS IS DESIRABLE SINCE * THE FORMATTER WILL NOT ALLOW I/O WITHOUT WAIT, AND HALTS THE * COMPUTER IF AN ERROR IN TRANSMISSION OCCURRS. DUE TO THE * NATURE OF SETTING UP COMMUNICATIONS WITH A REMOTE TERMINAL * OVER THE DDD TELEPHONE LINES, LONG TIME DELAYS MAY OCCUR AND * THE PROBABILITY OF ERRORS IN TRANSMISSION HAPPINING IS * SIGNIFICANTLY GREATER THAN WITH LOCAL PERIPHERIALS. * * * THE GENERAL CALLING SEQUENCE OF I/O CALLS TO THIS ROUTINE IS: * * CALL RTTY(ICODE,ISUB,IBUFF,INUMB,ISTAT) * * WHERE ICODE= 0 FOR CLEAR * 1 FOR READ * 2 FOR WRITE * * ISUB= 1 FOR ASCII/ECHO * 2 FOR BINARY * 3 FOR ASCII/NO ECHO * 4 FOR VARIABLE LENGTH BINARY * 5 FOR ACU REQUESTS * * IBUFF= BUFFER ADDRESS * * INUMB= NUMBER OF WORDS OR CHAR'S * * ISTAT= RETURNED STATUS * 1-DRIVER WAS BUSY * 0-SUCCESSFUL INITIATION * * * THE PARAMETERS FOR A STATUS CALL TO THIS ROUTINE TAKE ON * ALTERNATE MEANINGS FROM I/O CALLS. THE GENERAL FORM IS: * * CALL RTTY(ICODE,ISUB,IAVL,IXLOG,ISTAT) * * WHERE ICODE= 4 FOR STATUS REQUEST * * ISUB= 0 FOR MODEM STATUS * 5 FOR ACU STATUS * * IAVL= 0 DRIVER IS AVAILABLE * 1 DRIVER IS AVAILABLE BUT AN * ERROR IN TRANSMISSION HAS OCCURRED * 2 DRIVER IS BUSY * * IXLOG= CURRENT TRANSMISSION LOG * * ISTAT= RETURN{4ED DEVICE STATUS (BINARY FORM) * * * THE PARAMETERS FOR A FUNCTION CALL TO THIS ROUTINE ARE: * * * CALL RTTY(3,ISUB,IDUMY,IDUMY,ISTAT) * * WHERE ISUB= 0 FOR DISCONNECT * 1 FOR INITIALIZE LISTEN FOR CONNECTION * * IDUMY= DUMMY PARAMETERS * * * ISTAT= SAME AS I/O CALLS * * * * REFER TO THE DRIVER MANUALS FOR D.50 & D.51 FOR * THE MEANINGS OF THE RETURNED STATUS. * *********************RETURNED STATUS SUMMARY**************** * **BIT------------------MEANING FOR-------------------------- * ACU MODEM * --- ----- * * 0 ACR RINGING * * 1 DLO CARRIER DETECT * * 2 DSS DATA SET READY * * 3 PND ------------ * * 4 RETRY FAILURE ------------ * * 5 STATUS ERROR TRANSMISSION ERROR * ************************************************************ * * IF INAPPROPRIATE PARAMETERS ARE USED IN THE CALL TO RTTY * THE COMPUTER WILL HALT WITH A 102050 IN THE DISPLAY REGISTER * AT MEMORY LOCATIONS DEFINED BY THE FOLLOWING ENTRY POINTS * WITH CORRESPONDING MEANINGS: * * ERR1- INVALID ICODE REQUEST * ERR2- ATTEMPTED ECHO MODE ON WRITE * ERR3- ATTEMPTED VARIABLE LENGTH BINARY WRITE * ERR4- INVALID SUBPARAMETER ON WRITE * ERR5- INVALID READ ON ACU * ERR6- INVALID SUBPARAMETER ON READ * ERR7- INVALID SUBPARAMETER ON FUNCTION * ERR8- IOC REJECT OTHER THAN DRIVER BUSY * * * * ************************************************************** * * -----STEPS FOR INITIATING AND TERMINATING COMMUNICATIONS------- * * * 1)MAKE AN INITIALIZATION LISTEN CALL TO MODEM I/F * CALL RTTY(3,1,IDUMY,IDUMY,ISTAT) * * 2)CHECK ISTAT FOR 0 IF=1, DRIVER IS BUSY, WAIT OR CLEAR!8 * * 3)IF DIAL OPERATION INITIATE DIAL CALL ELSE GO TO 5. * CALL RTTY(2,5,IDGTS,INUMB,ISTAT) * * 4)CHECK ISTAT FOR 0,THEN MAKE STATUS CALL UNTIL CALL MADE OK. * CALL RTTY(4,5,IAVL,IXLOG,ISTAT) **ACU STATUS** * * 5)CHECK MODEM STATUS UNTIL DRIVER NOT BUSY(IAVL=0)AND CHECK * FOR NO ERROR IN TRANSMISSION(ISTAT BIT 5=0,NO ERROR): * IF ERROR, CALL MUST BE REINITIATED. * CALL RTTY(4,0,IAVL,IXLOG,ISTAT) * * 6)DO NORMAL FORTRAN READ AND WRITE CALLS * WRITE(ILU,1000) * * 7)DO STATUS CALL TO MODEM AND CHECK FOR ERROR(LINE LOSS) * CALL RTTY(4,0,IAVL,IXLOG,ISTAT) * * 8)REPEAT 6 & 7 AS REQUIRED OR USE RTTY I/O CALLS * CALL RTTY(ICODE,ISUB,IBUFF,INUMB,ISTAT) * CALL RTTY(4,0,IAVL,IXLOG,ISTAT) * * 9)DISCONNECT THE PHONE LINE AND CHECK STATUS. * CALL RTTY(3,0,IDUMY,IDUMY,ISTAT) * CALL RTTY(4,0,IAVL,IXLOG,ISTAT) * * 10)IF DIAL OUT OPERATION CLEAR ACU DRIVER TO REMOVE 'CRQ' * CALL RTTY(0,5,IDUMY,IDUMY,ISTAT) * * 11)GO TO STEP 1 * **************************************************************** * * **THE LOGICAL UNIT ASSIGNMENT FOR THE MODEM AND ACU **INTERFACES MUST BE SPECIFIED FOR THE PARTICULAR **SYSTEM CONFIGURATION USED!!!!. * * LUTTY EQU 12B ---MODEM INTERFACE--- LUACU EQU 13B ---ACU INTERFACE----- * * ************************************************************** SKP * ENT RTTY,ERR1,ERR2,ERR3 ENT ERR4,ERR5,ERR6,ERR7,ERR8 EXT .ENTR,.IOC. * * ICODE BSS 1 ISUB BSS 1 IBUF BSS 1 INUM BSS 1 ISTAT BSS 1 * RTTY NOP ******ENTRY POINT********* JSB .ENTR TRANSFER PARAMETERS FROM CALL DEF ICODE LDA ICODE,I GET ACTUAL REQUEST LDB ISUB,I GET SUBPARAMETER SZA,RSS CHECK FOR CLEAR REQUEST JMP CLEAR YES CPA =B4 CHECK FOR STATUS REQUEST JMP STATS YES CPA =B3 CHECK FOR CONTROL FUNCTION JMP CNTRL YES CPA =B2 CHRQECK FOR WRITE REQUEST JMP WRITE YES CPA =B1 CHECK FOR READ REQUEST JMP READ YES ERR1 HLT 50B NO,INVALID REQUEST WRITE LDA =L21000B+LUTTY CPB =B5 IS THIS FOR ACU? LDA =L21000B+LUACU YES! CPB =B1 ASCII/ECHO? ERR2 HLT 50B NOT LEGAL FOR WRITE CPB =B2 BINARY? IOR =B100 CPB =B4 VARIABLE LENGTH BINARY? ERR3 HLT 50B NOT LEGAL FOR WRITE CPB =B3 ASCII/NO ECHO JMP I.O OK SSB CHECK FOR - VALUE JMP ERR4 YES! SZB,RSS CHECK FOR 0 VALUE JMP ERR4 YES! ADB =B-6 VALUE <= 5? SSB JMP I.O YES, OK! ERR4 HLT 50B INVALID SUBPARAMETER! * * READ LDA =L10000B+LUTTY CPB =B5 CHECK FOR ACU REQUEST ERR5 HLT 50B NOT LEGAL! CPB =B1 ASCII/ECHO IOR =B400 SET 'P' BIT CPB =B2 BINARY? IOR =B100 SET 'M' BIT CPB =B4 VARIABLE LENGTH BINARY? IOR =B300 SET 'V'&'M' BITS CPB =B3 ASCII/NO ECHO? JMP I.O OK,CONTINUE SSB CHECK FOR - VALUE JMP ERR6 YES! SZB,RSS CHECK FOR 0 JMP ERR6 YES! ADB =B-6 VALUE <= 5? SSB JMP I.O YES, OK! ERR6 HLT 50B INVALID SUBPARAMETER! * * CNTRL LDA =L30000B+LUTTY SET UP FN CODE CPB =B1 INITIALIZE LISTEN SUB? IOR =B2000 YES CPB =B0 DISCONNECT SUB? IOR =B4000 YES SSB -SUB? JMP ERR7 YES! ADB =B-2 CHECK FOR SUB SSB,RSS <=1 ERR7 HLT 50B INVALID SUBPARAMETER! STA CNFUN OK,VALID CALL! JSB .IOC. -MAKE CALL- CNFUN OCT 0 -CONTROL FUNCTION- JMP IOREJ --REJECT ADDRESS-- JMP IOLEN+1 --NORMAL RETURN-- * * I.O STA IOFUN SET FUNCTION PARAMETER IN LDA IBUF CALL TO IOC $ STA IOBUF SET BUFFER ADDRESS LDA INUM,I AND STA IOLEN LENGTH IN CALL TO IOC JSB .IOC. IOFUN BSS 1 JMP IOREJ ----IO REJECT----- IOBUF BSS 1 IOLEN BSS 1 CLA --NORMAL RETURN-- STA ISTAT,I SET STATUS TO 0 JMP RTTY,I --EXIT-- * * IOREJ SSB,RSS CHECK FOR DRIVER BUSY ERR8 HLT 50B NO,GIVE UP! LDA =B1 SET STATUS TO 1 FOR REJECT STA ISTAT,I JMP RTTY,I --ERROR EXIT--- * * CLEAR LDA =LLUTTY SET LU OF TTY CPB =B5 OR LDA =LLUACU ACU IN IOC CALL STA CLFUN JSB .IOC. CLFUN BSS 1 JMP RTTY,I --EXIT-- * * STATS LDA =L40000B+LUTTY SET UP LU CPB =B5 FOR STATUS CALL LDA =L40000B+LUACU TO IOC STA STFUN JSB .IOC. GET STATUS STFUN BSS 1 STA STFUN SAVE STATUS AND =B177 MASK OUT EQT TYPE STA ISTAT,I STORE LOWER 6 BITS LDA STFUN GET AV BITS RAL,RAL INTO LOWER ORDER AND =B3 AND STA IBUF,I STORE IN IBUFF ELB,CLE,ERB CLEAR MODE BIT STB INUM,I STORE XLOG JMP RTTY,I ---EXIT--- * END ASMB,R,L,B ** BCS REMOTE TTY DRIVER D.50 ** * (REMOTE TTY MODEM INTERFACE) HED ** BCS REMOTE TTY DRIVER D.50 (BUFFERED) *1-12-74*J.S.* * NAM D.50 * * * ************ D.50 - ASR-33 DRIVER ****************** * ENT D.50,I.50 EXT .BUFR * SKP * ***************GENERAL INFORMATION******************* * * * THIS MODULE OF THE HP-2100 BASIC CONTROL SYSTEM * * SOFTWARE IS DESIGNED TO OPERATE THE ASR-33 * * TELE-TYPEWRITER OR AN EQUIVALENT TERMINAL OVER * * TELEPHONE LINES IN CONJUNCTION WITH A BELL SYSTEM * * 103 DATA SET AND THE HP 12587B ASYNCHRONOUS DATA * * SET INTERFACE KIT. THE FUNCTION OF THIS DRIVER IS * * TO INITIATE, CONTINUE AND COMPLETE A READ/WRITE * * OPERATION REQUESTED THROUGH INPUT/OUTPUT CONTROL. * * * * THE DRIVER ACCEPTS AND PROCESSES A READ OR * * WRITE REQUEST IN EITHER ASCII OR BINARY MODES. * * KEYBOARD MODE MAY BE SELECTED FOR A SINGLE * * READ OPERATION. THE SPECIAL P-FORMAT FOR BINARY * * INPUT MAY ALSO BE SELECTED FOR A SINGLE READ * * OPERATION. * * * *THE DRIVER WILL ALSO ACCEPT: * * (1)A CLEAR REQUEST WHICH WILL TERMINATE * * THE TELEPHONE CONNECTION * * (2)A FUNCTION\SUB=1 REQUEST WHICH WILL * * INITIALIZE THE 12587 INTERFACE FOR * * RECEIVE MODE,STATUS CHECKING,ECHO * * OPERATION,NO PARITY CHECKING,8 BITS * * PER CHARACTER,& TURN ON DATA TERMINAL* * READY.THEN SENDS "HELLO!" * * (3)A FUNCTION\SUB=0 REQUEST WHICH WILL * * SEND TO THE REMOTE TTY "BYE!" AND * * DISCONNECT THE TELEPHONE LINE * * *  * * THE DRIVER PROVIDES FOR A SIMULATED END-OF-TAPE * * CONDITION WHICH IS DETERMINED BY A FIXED NUMBER * * OF CONSECUTIVE FEED-FRAMES BEFORE THE FIRST * * DATA CHARACTER OF A RECORD IS READ. THE NUMBER * * OF FEED-FRAMES IS REPRESENTED BY A NEGATIVE * * CONSTANT AT THE LABEL -FFCT- IN THE DRIVER. * * THE CONSTANT IS SET FOR 10 BUT MAY BE CHANGED * * TO ANY DESIRED VALUE BY RE-ASSEMBLING THE DRIVER. * * * * REFER TO THE -EXTERNAL DESIGN SPECIFICATIONS- OF * * THE BCS SYSTEM FOR A DESCRIPTION OF THE REQUEST * * CALLS TO IOC AND THE RECORD FORMATS. * * * A MODIFICATION TO THE 12587B INTERFACE CABLE IS * * REQUIRED FOR PROPER OPERATION. THIS INVOLVES TYING* * THE 'SECONDARY RECEIVE' LINE TRUE TO ALLOW PROPER * * STATUS CHECKING INTERRUPTS. WHILE INSTALLING THE * * BAUD RATE JUMPERS IN THE HOODED CONNECTOR (REFER * * TO 12587B OPERATING AND SERVICE MANUAL) INSTALL A * * JUMPER BETWEEN PINS 19 & 21. IF THIS IS NOT DONE * * WHEN THE I/O CARD IS PUT IN THE STATUS CHECKING * * MODE BY THE DRIVER, THE CARD WILL CAUSE CONTINUOUS* * INTERRUPTS. * * * * * ****************REFERENCE DOCUMENTS****************** * * 1) OPERATING AND SERVICE MANUALS (HP) * A. 12589A AUTOMATIC DIALER INTERFACE KIT #12589-90002 * B. 12587B ASYNCHRONOUS DATA SET INTERFACE KIT * #12587-90006 * * 2) TECHNICAL REFERENCES (BELL SYSTEM) * A.DATA AUXILIARY SET 801A INTERFACE SPECFICATION * B.DATA SET 103A INTERFACE SPECIFICATION PUB#41101 * * 3) LISTINGS FOR D.51 & RTTY * * 4) A POCKET GUIDE TO THE 2100 COMPUTER HP #5951-4423 * * **********************RETURNED STATUS***************** * * STATUS IS RETURNED IN THE LOWER 6 BITS OF EQT WORD 2. * THESE BITS HAVE THE FOLLOWING MEANING: * *---BIT-----------EIA SIGNAL REF--------DESCRIPTION---- * --- -------------- ----------- * * 0 CE RINGING INDICATOR * (TELEPHONE) * 1 CF CARRIER DETECT * (DISTANT DATA SET) * 2 CC DATA SET READY * (LOCAL DATA SET) * 3 -- --------------- * * 4 -- --------------- * * 5 -- ERROR IN TRANSMISSION * (EITHER THE TELEPHONE * CONNECTION WAS LOST OR * AN END-OF-TAPE CONDITION * -LOOK AT 1 & 2-) * * * THIS DRIVER DOES NOT SET AN ERROR IN TRANSMISSION INDICATION * IN THE AVAIL STATUS (=1) TO ALLOW I/O USING THE FORTRAN * FORMATTER WITHOUT HALTING THE COMPUTER AT ENTRY POINT 'IOERR' * IF AN ERROR HAS OCCURRED. IF STANDARD FORTRAN READ/WRITE * CALLS ARE MADE, IT IS IMPERATIVE THAT A STATUS REQUEST BE MADE * THRU THE FORTRAN INTERFACE ROUTINE 'RTTY' AFTER EACH CALL, * UNTIL THE AVAILABILITY PARAMETER IS 0 AND THEN A TEST OF THE * STATUS BIT 5 BE MADE TO CHECK FOR AN ERROR IN TRANSMISSION. * IF AN ERROR OCCURRED, APPROPRIATE CORRECTIVE ACTION MUST BE * TAKEN TO RE-ESTABLISH THE TELEPHONE COMMUNICATIONS. * * * IN ANY READ MODE THE "P" BIT (ECHO) MODE IS ALWAYS SET * SINCE THE FORMATTER ONLY SETS THIS BIT FOR LU 1. * * * IF BOTH 'DATA SET READY' AND 'CARRIER DETECT' ARE TRUE, THEN * IT IS A GOOD ASSUMPTION THAT YOU HAVE A GOOD DATA LINK AND * THE ERROR WAS AN END-OF-TAPE. * * NO PARITY CHECKING IS DONE BY THE DRIVER OR HARDWARE * *************************************************************** SKP * *** D.50 INITIATOR SECTION *** * D.50 NOP * ENTRY / EXIT * STA SAVA SAVE EQT ENj=TRY ADDRESS. STB SAVB SAVE REQUEST (WORD 2) ADDRESS. LDA B,I GET WORD 2 OF REQUEST, ROTATE ALF REQUEST CODE TO LOW A AND M17 AND ISOLATE CODE FIELD STA SAVC SAVE REQUEST CODE SZA IF CODE NOT = ZERO, CONTINUE JMP X.1 NORMAL PROCESSING. * * CODE = ZERO (CLEAR CURRENT OPERATION) - THE * FOLLOWING INSTR (JMP) IS REPLACED BY A CLC AFTER * THE FIRST OPERATION IS INITIATED. * I.1 JMP D.50,I CLEAR DEVICE CONTROL. STA TPFLG CLEAR TELEPHONE STATUS CLB,INB GO TO JMP STAT1 STATUS SECTION. * X.1 LDB DFLG CHECK DRIVER FLAG - SZB IF DRIVER BUSY, JMP REJB REJECT THIS REQUEST. * ADA MIN4 SUBTRACT 4 FROM CODE SSA,RSS IF RESULT +, THEN ILLEGAL CODE, JMP RCER REJECT REQUEST. 1,2,3 LEGAL. * LDA SAVA SAVE EQT ADDR. FOR STA EXIT+2 CALL TO .BUFR AFTER WRITE LDA SAVA,I GET WORD 1 OF EQT ENTRY. AND M77 ISOLATE MODEM UNIT I/O ADDRESS. * * I/O CONFIGURATION SECTION******************** * IOR =B102600 OTA TTY STA I.10 STA I.14 XOR =B300 LIA TTY STA I.2 STA I.7 STA I.5 XOR =B1200 STC TTY,C STA I.4 STA I.6 STA I.15 STA I.9 XOR =B5000 CLC TTY STA I.1 STA I.11 STA I.12 XOR =B100 OTB TTY STA I.3 STA I.13 STA I.8 * * * LDB SAVC CPB =B3 FUNCTION REQUEST? JMP Y.1 YES, SKIP STATUS CHECK I.2 LIA 0 GET STATUS AND =B14000 MASK DSR&XDET ALF,ALF RAR,RAR STA STATS CPA =B6 BOTH TRUE? JMP Y.1 YES,OK! CLA SHOW COMPLETION STATUS AND DISCONNECT STA TPFLG THE TELEPHONE--- STA SAVC CLB JMP STAT1 --------------- * * * Y.1 LDA SAVB,I GET WORD 2 OF REQUEST- SHIFT SO ALF,ALF THAT V=BIT 15, M=BIT 14, P=0. CPB =B1 REQUEST=READ? IOR =B1 YES,SET P BIT STA SAVD SAVE REQUEST CODE SSA IF V FORMAT SELECTED, SET BIT 15 ADB M15 OF B = 1 AND SAVE AS STB RWFL READ/WRITE FLAG.(="V"+OP CODE) CLB,CLE CLEAR "B", CLEAR "E". ELA,ELA PUT MODE BIT INTO ERB BIT 15 OF B. CLE,SSB SET MODE BACK CCE INTO E ISZ SAVA SET ADDRESS OF EQT ENTRY TO LDA SAVA EQT STA EQT2 WORD 2, SAVE ADDRESS LDA EQT2,I GET WORD 2, ADA M15 SET O-FIELD = 2 ( BUSY) AND STA EQT2,I RESET. LDA EQT2 GET THE INA ADDRESS OF EQT ENTRY STA EQT3 WORD 3. ISZ SAVB INDEX TO WORD 4 ISZ SAVB OF I/O REQUEST. LDA SAVB LDA A,I GET BUFFER ADDRESS RAL,CLE,SLA,ERA IF INDIRECTION, JMP *-2 GET NEXT-LEVEL ADDRESS STA BUF SAVE BUFFER ADDRESS. STA BUFS ISZ SAVB SET TO WORD 6 OF REQUEST. LDA SAVC GET REQUEST CODE CPA =B3 FUNCTION REQUEST? JMP *+2 YES! JMP Y2 NO * * * THIS ROUTINE IS EXECUTED WHEN A FUNCTION REQUEST IS MADE. * * IF A CONNECT REQUEST, OPERATION IS CHANGED TO AN OUTPUT * REQUEST WHICH SENDS "HELLO!". IF A DISCONNECT REQUEST, * "BYE!" IS OUTPUT AND DATA TERMINAL READY IS REMOVED TO * DISCONNECT THE LINE. * * LDA SAVD GET SUBFUNCTION ALF,ALF AND =B6000 GET BIT 10&11 CPA =B2000 CONNECT? JMP CONN YES DSCN CPA =B4000 SURE IT IS DISCONNECT? JMP *+2 YES JMP RCER NO,SHOW ERROR-- LDA BYEAD - CHANGE OUTPUT STA BUF BUFFER ADDRESS TO STA BUFS INTERNAL MESSAGE BUFFER CLA CLEAR TELEPHONE STA TPFLG STATUS FLAG  LDA =B2 SET BUFFER LENGTH TO 2 WORDS STA RWFL SET FLAG TO WRITE JMP Y3 --OUT-- CONN LDA =B2 CHANGE READ/WRITE FLAG STA RWFL TO WRITE LDA HELOA CHANGE OUTPUT BUFFER STA BUF ADDRESS TO INTERNAL STA BUFS BUFFER ADDRESS. JSB UNLIS INHIBIT STATUS INTERRUPTS CLA RESET ECHO AND STA SAVD BINARY MODES LDA =B3 SET TELEPHONE STATUS STA TPFLG FLAG AND EXIT WITH JMP Y3 BUFFER LENGTH=3 * * Y2 LDA SAVB,I NO,GET WORD 5(BUFFER LENGTH) Y3 SSA IF CHARS. REQUESTED, SET INB B(LSB = 1 AND RESTORE WORD 3 STB EQT3,I OF EQT ENTRY.(WITH MODE BIT) SSA IF WORDS REQUESTED, JMP *+3 CONVERT WORDS TO CMA,INA CHARACTERS AND ALS COMPLEMENT STA LENG SAVE NEG. CHAR LENGTH STA CHX LDA UL52 INITIALIZE UPPER/LOWER CHAR. STA ULFL POSITION INDICATOR TO UPPER. LDB RWFL SET B = READ/WRITE FLAG. LDA FFCT READ REQUEST: SET FOR END-OF-TAPE SLB,RSS COUNTER (FEED-FRAME COUNTER). LDA MIN4 WRITE: SET FOR 4 FEED-FRAMES TO BE STA EOTC OUTPUT AFTER BINARY RECORD. STA DFLG SET DRIVER FLAG BUSY (NOT = 0). CLA STA DINF CLEAR DATA-IN FLAG, LDA LENG CHECK FOR 0 LENGTH SZA WRITE BUFFER CLA,RSS NO, GO NORMALLY INA YES,FOOL STATUS SECTION STA CHC CHARACTER COUNTER AND SLB,RSS IF FUNCTION IS WRITE: JMP Y GO TO CONTINUATOR,ELSE: * * FOLLOWING INSTRUCTION STARTS DATA TRANSMISSION. X.2 LDA SAVD LDB DA READ AND PRINT INSTRUCTION SLA,RSS LDB DB READ ONLY INSTRUCTION CLA I.3 OTB 0 OUTPUT INSTRUCTION IN -B- I.4 STC 0,C JMP D.50,I EXIT BACK TO IOC. * * Y LDA TPFLG CHECK IF INITIAL WRITE FROM READ CPA =B3 CONVERSION JMP X.2 YES, HANDLE LIKE A READ JSB I.50 NO, HANDLE NORMALLY JMP D.50,I --EXIT.---- * RCER CLB,RSS ---REJECT SECTION. R.C. ERROR (B=0). REJB LDB M15 DEVICE/DRIVER NOT AVAILABLE CLA,INA SET (A) NON-ZERO AND ADA M15 SET BIT 15 TO RELEASE BUFFER JMP D.50,I EXIT TO IOC AND REJECT. * * * * * UNLIS NOP LDA =B160010 STA XOUT LDA =B141010 STA DA LDA =B140010 STA DB JMP UNLIS,I * SKP * *** CONTINUATOR SECTION *** * ENTERED BY JSB IN DEVICE INTERRUPT LOCATION * * I.50 NOP STA SAVAX SAVE STB SAVBX A, ERA,ALS B, SOC E INA AND STA SAVEX OVERFLOW * * * * THIS ROUTINE CHECKS THE STATUS OF THE MODEM INTERFACE * CARD. IF A CONNECTION IS PENDING AND "DATA SET READY" * AND "CARRIER DETECT" ARE NOT TRUE THEN IT REINITIATES * THE INTERFACE AND GETS OUT. IF THEY ARE TRUE IT UPDATES * THE EQT STATUS AND PROCESSES NORMALLY. IF THEY ARE NOT * TRUE AND A CONNECTION IS NOT PENDING THEN IT FLAGS A * ERROR AND TERMINATES THE I/O THRU STAT1. * *############STATUS CHECK################################ * I.5 LIA 0 ----GET DATA SET STATUS--------- AND =B176000 ALF,ALF SHIFT TO LEAST RAR,RAR SIGNIFICANT BITS STA STATS STORE IN STATUS SAVE AND =B46 MASK OUT RINGING LDB TPFLG ARE WE WAITING ON CPB =B3 A TP CONNECTION? JMP TPWAT YES NOWAT AND =B6 NO,CHECK STATUS CPA =B6 DSR & XR DET ON? JMP ST.OK YES! DISCN CLA NO! SET ERROR AND STA TPFLG GET OUT JSB UNLIS RESET STATUS INTERRUPT LDA CHC CLB SET CHC=0 FOR EOT CONDITION JMP STAT1 TERMINATE I/0 * TPWAT CPA =B46 CHECK STATUS JMP CN.OK ߋ DST&XR DET ON JSB UPDAT NO,WAIT ON CONNECT JSB RSTR I.6 STC 0,C REINITIATE JMP I.50,I --GET OUT-- * CN.OK LDA =B2 CONNECT MADE,SET FLAG STA TPFLG CONTINUE TO PROCESS LDA =B170010 SET UP FOR LOSS OF STA XOUT LINE STATUS LDA =B151010 INTERRUPT STA DA LDA =B150010 STA DB *** * ST.OK JSB UPDAT UPDATE STATUS LDA EQT3,I PUT MODE INTO E - =0, ASCII, ELA =1, BINARY. LDA RWFL CHECK FOR READ OR WRITE SLA,RSS OPERATION JMP OUTP WRITE - * * INPUT SECTION * I.7 LIA 0 AND M377 REMOVE TRAILER BITS. LDB DINF SET (B) = DATA-IN FLAG. SZB,RSS IF NO DATA IN YET AND CHARACTER SZA = ZERO, CHECK FOR EOT - JMP X.3 OTHERWISE, GO PROCESS CHAR. * * END-OF-TAPE CHECK - CHAR=0, NO NON-ZERO CHAR. YET. * ISZ EOTC INDEX END-OF-TAPE COUNTER JMP X.8 NOT ZERO, KEEP READING CLB END-OF-TAPE- SET (B) = 0 FOR JMP STAT STATUS AND GO TO STATUS SECTION. * * CHARACTER EXAMINATION SECTION * X.3 SEZ IF BINARY MODE, SKIP JMP X.4 CHARACTER CHECK. AND M177 REMOVE 8-LEVEL BIT CPA RUBO -ASCII MODE- CHARACTER CHECK--- JMP X.10 RUBOUT (RECORD DELETE) CPA RETN JMP X.8 RETURN - IGNORE RETURN - CPA LINF JMP X.11 LINE FEED SSB IF DATA-IN FLAG = -1, IGNORE CHAR- JMP X.8 ACTERS UNTIL LINE-FEED INPUT. * X.4 SEZ IF ASCII MODE,SKIP V-FORMAT CHECK SZB - IF NOT FIRST CHAR. IN BINARY JMP X.5 MODE, SKIP V-FORMAT CHECK. * LDB RWFL BINARY MODE- CHECK FOR -V- FORMAT SSB,RSS SELECTED (B15 OF RWFL = 1) JMP X.5 NO- GO TO STORE (OR SAVE) CHAR. * * V-FORMAT SECTION (FIRST CHAR. CONTAINS RECORD SIZE) * STA B SAV~E CHAR(RECORD WORD COUNT) IN B. ALS CONVERT WORDS TO CHARS. ADA LENG SUBTRACT REQ. LENGTH (RESET E = 1) CCE,SSA,RSS A POSITIVE RESULT MEANS RECORD JMP *+5 LENGTH GT LENGTH REQ. USE REQ. LDA B LENGTH LT REQUESTED LENGTH. ALS CONVERT WORD LENGTH TO NEGATIVE CMA,INA CHARACTER COUNT AND SET STA CHX IN COUNTER. LDA B RESTORE FIRST CHAR. TO A. * * X.5 CLB,INB SET DATA-IN FLAG = 1 TO SAY DATA STB DINF CHARACTER IN. LDB ULFL SET B = UPPER/LOWER POSITION FLAG. SSB,RSS IF SET FOR UPPER (15=0), SAVE CHAR JMP X.6 IN EOTC. IOR BUF,I LOWER- *OR* IN PREVIOUS UPPER STA BUF,I CHARACTER AND STORE IN BUFFER. ISZ BUF ADD 1 TO BUFFER ADDRESS. JMP *+3 X.6 ALF,ALF POSITION CHAR. TO UPPER AND STA BUF,I SAVE RBL SET FLAG FOR NEXT POSITION STB ULFL AND SAVE FLAG. ISZ CHC ADD 1 TO CHARACTE- COUNTER. ISZ CHX INDEX LENGTH COUNTER. JMP X.8 NO ZERO (BUFFER NOT COMPLETE), * SET TO INPUT NEXT CHARACTER. * BUFFER FILLED. SEZ IF BINARY MODE, GO DIRECTLY TO JMP STAT STATUS SECTION. X.7 CCB SET DATA-IN FLAG, FORCE A RETURN STB DINF AND LINE-FEED TO TERMINATE ASCII * X.8 LDA SAVD LDB DA READ AND PRINT INSTRUCTION SLA,RSS LDB DB READ ONLY INSTRUCTION I.8 OTB 0 JSB RSTR RESTORE REGISTERS I.9 STC 0,C JMP I.50,I EXIT INTERRUPT PROCESSING. * * * PROCESSOR FOR -RUB-OUT- CODE * X.10 LDA BUFS -RESET STARTING STA BUF BUFFER ADDRESS. LDA LENG -RESET STARTING STA CHX CHARACTER LENGTH LDA UL52 -RESET UPPER/LOWER CHARACTER STA ULFL POSITION FLAG TO UPPER LDA FFCT -RESET FEED-FRAME COUNTER FOR STAP EOTC END-OF-TAPE CONDITION. CLA -RESET CHARACTER COUNTER STA CHC TO ZERO. JMP X.7 -GO TO SET DATA-IN FLAG = -1 * * PROCESSOR FOR LINE-FEED CODE * X.11 CLB CLEAR DATA-IN FLAG FOR POSSIBLE STB DINF RE-INPUT CAUSED BY RUB-OUT. LDA LENG IF ORIGINAL CHAR. INDEX = CPA CHX CURRENT INDEX THEN A RUB-OUT JMP X.8 WAS INPUT - INPUT NEXT RECORD, * OR IGNORE LINE-FEED BEFORE RECORD. * ASCII INPUT COMPLETED. LDB ULFL IF LAST CHARACTER INPUT WAS IN LDA BUF,I UPPER POSITION, THEN MAKE LOWER IOR BLNK CHARACTER A BLANK (SPACE) SSB AND STORE LAST WORD IN STA BUF,I BUFFER. * * ** STATUS UPDATE SECTION****** ** THIS DRIVER GIVES A NON-STANDARD EXIT WHEN AN ERROR ** IN TRANSMISSION OCCURS. IF EOT OR LOSS OF THE TELEPHONE ** LINE HAPPENS, THE STATUS IS UPDATED BUT AVAIL IS NOT ** SET TO 1 TO ALLOW FTN FORMATTER CALLS TO THE DRIVER ** WITHOUT HALTING THE COMPUTER IN THE FORMATTER. ** TO DETERMINE IF AN ERROR HAS OCCURED IT IS NECESSARY ** TO MAKE A STATUS CALL AND EXAMINE BIT 5 OF THE STATUS. * * STAT LDB CHC ==STATUS SECTION** LDA EQT3,I SET A=WORD 3 EQT ENTRY, B= CHAR. CLE,SLA COUNT. IF CHAR. LENGTH REQUEST- JMP *+3 ED, LSB = 1, SKIP CONVERSION. SLB,BRS IF ODD NO. CHARS. INPUT, ADD 1 INB TO WORD COUNT. ERA,RAL SET LSB OF A = 0. ADA B PUT CHAR/WORD COUNT IN A AND STAT1 STA EQT3,I SET EQT ENTRY WORD 3. JSB UPDAT STRIP EXTRA BITS LDA EQT2,I GET WORD 2, REMOVE PREVIOUS AND MST SETTING OF STATUS AND O FIELDS, SZB,RSS IF CHC = 0, IOR BLNK SET BIT 5 = 1: ELSE IOR STATS ADD CARD STATUS STA EQT2,I AND SET WORD 2 OF EQT ENTRY. CLA CLEAR DRIVER-BUSY-FLAG TO STA DXFLG SAY DRIVER AVAILABLE. * LDA TPFLG CHECK FOR A DISCONNECT SZA REQUEST(TPFLG=0) JMP *+3 NO! LDA M15 GET CONTROL WORD TO CLEAR I.10 OTA 0 OUTPUT TO INTERFACE CLB CPB SAVC CLEAR REQUEST? JMP D.50,I YES!-EXIT- LDA RWFL IF WRITE REQUEST SLA,RSS OR FUNCTION BEING PROCESSED? JMP WXT EXIT TO .BUFR IN IOC. * JSB RSTR RESTORE REGISTERS- I.11 CLC 0 CLEAR DEVICE CONTROL JMP I.50,I EXIT * WXT LDA I.50 SET INTERRUPTED SEQUENCE RETURN. STA EXIT+1 ADDRESS IN .BUFR CALL. * JSB RSTR RESTORE REGISTERS. * I.12 CLC 0 CLEAR DEVICE CONTROL. * EXIT JSB .BUFR CALL FOR BUFFERING NOP HOLDS INTERRUPT RETURN ADDRESS. NOP HOLDS EQT ENTRY ADDRESS * * RSTR NOP -RESTORE REGISTERS ROUTINE- LDA SAVEX RESTORE CLO E, SLA,ELA OVERFLOW STF 1 A LDA SAVAX AND LDB SAVBX B JMP RSTR,I AND EXIT. * * **********UPDATE**************** * THIS ROUTINE UPDATES THE STATUS IN THE EQT ON THE FLY * TO ALLOW THE PROGRAMMER THE FLEXIBILITY OF KEEPING * TRACK OF HOW WELL THE PROCESS OF ESTABLISHING A * TELEPHONE CONNECTION IS GOING AND PROVIDING HIS OWN * TIME-OUT ALGORITHM TO PREVENT TYING UP THE PHONE * LINE INDEFINITELY. * UPDAT NOP --ENTRY/EXIT-- LDA STATS AND =B7 MASK OUT EXTRA BITS STA STATS RESTORE LDA EQT2,I GET OLD STATUS AND =B177400 MASK OUT IOR STATS MERGE NEW STA EQT2,I RESTORE JMP UPDAT,I -OUT- * OUTPUT SECTION * * OUTP LDA BUF IF BUFFER ADDRESS IS "-" SSA THEN EXIT TO JMP STAT STATUS SECTION-OUTPUT COMPLETE. * LDB CHX IF CHARACTER (RECORD LENGTH) SSB,RSS INDEX = ZERO, THEN GO TO JMP X.14 CLvEAN-UP OUTPUT SECTION. LDA BUF,I GET WORD FROM BUFFER CONTAINING LDB ULFL NEXT CHAR. SSB,RSS IF CHAR. IS IN UPPER PART OF WORD ALF,ALF ROTATE TO LOWER. ISZ CHC COUNT CHARACTER OUTPUT. X.12 AND M377 ISOLATE LOWER CHARACTER. SEZ,RSS IF ASCII MODE, IOR M200 ADD 8 LEVEL BIT RBL,SLB ROTATE UPPER/LOWER MASK FOR NEXT ISZ BUF CHAR. ADD 1 TO BUFFER ADDRESS STB ULFL IF CURRENT CHAR. IS IN LOWER. ISZ CHX INDEX CHARACTER LENGTH COUNTER. NOP SEZ IF BINARY MODE, JMP X.13 GO TO OUTPUT CHARACTER. LDB CHX IF CHAR. IS SZB NOT LAST CHAR. IN BUFFER, JMP X.13 GO TO OUTPUT CHAR. * CPA ARROW IF LAST CHAR. IN ASCII RECORD IS JMP X.18 LEFT ARROW, EXIT W/O RETURN/LF. X.13 LDB XOUT * I.13 OTB 0 OUTPUT INSTRUCTION IN -B- I.14 OTA 0 SET CHARACTER IN BUFFER JSB RSTR I.15 STC 0,C OUTPUT BUFFER TO TTY. JMP I.50,I * * X.14 CLA,SEZ SKIP IF ASCII MODE JMP X.15 BINARY * LDA RETN (A) = RETURN CODE LDB DINF IF DATA-IN FLAG STA DINF = 0, GO SZB,RSS OUTPUT RETURN JMP X.12 LDA LINF RETURN OUT - SET A = LINE-FEED JMP X.16 AND GO TO SET FOR LAST CHAR. * X.15 ISZ EOTC BINARY - (A) = 0. INDEX COUNTER JMP X.12 FOR OUTPUT OF FOUR FEED-FRAMES. * X.16 LDB MIN4 CONTROL HERE FOR LAST CHAR. STB BUF SET BUF NEGATIVE TO SIGNAL THAT JMP X.12 LAST CHAR. IS BEING OUTPUT. * X.18 LDB CHC ADB CM1 SUBTRACT 1 FOR _ IN CHC, JMP STAT+1 GO TO STATUS. (B) = CHC. * * CONSTANT, FLAG AND STORAGE SECTION * A EQU 0 B EQU 1 * SAVAX NOP STORAGE AREA SAVBX NOP FOR SAVING REGISTERS SAVEX NOP AT INTERRUPT TIME. * SAVA NOP HOLDS EQT ADD>NLHRESS SAVB NOP HOLDS REQUEST WORD 2 ADDRESS SAVC NOP HOLDS REQUEST CODE. SAVD NOP * DFLG OCT 0 DRIVER BUSY FLAG. =0, NOT BUSY * M17 OCT 17 MASKS M77 OCT 77 USED M177 OCT 177 IN M377 OCT 377 PROCESSING M700 OCT 700 M200 OCT 200 M15 OCT 100000 MST OCT 37400 *INTERNAL BUFFERS******* * BYEAD DEF BYEBF BYEBF ASC 2,BYE! HELOA DEF HELLO HELLO ASC 3,HELLO! * TPFLG OCT 0 TELEPHONE STATUS FLAG RWFL OCT 0 READ/WRITE FLAG // P-FORMAT FLAG DINF OCT 0 DATA-IN FLAG ULFL OCT 0 UPPER/LOWER CHAR POSITION FLAG. * 1 = LOWER, 0 = UPPER. * EQT2 OCT 0 EQT3 OCT 0 TEMPORARY BUF OCT 0 BUFS OCT 0 STORAGE LENG OCT 0 CHC OCT 0 AREA CHX OCT 0 EOTC OCT 0 STATS OCT 0 * CM1 DEC -1 CM3 DEC -3 MIN4 DEC -4 UL52 OCT 52525 * RUBO EQU M177 RETN OCT 15 LINF OCT 12 BLNK OCT 40 ARROW OCT 337 * XOUT OCT 160010 DA OCT 141010 DB OCT 140010 * FFCT OCT 177766 END-OF-TAPE COUNTER (NEGATIVE) * * END NASMB,R,L,B ***D.51--BCS-AUTO CALLING UNIT DRIVER*** * NAM D.51 * HED *****BCS-AUTO CALLING UNIT DRIVER--D.51**1-12-74**J.S.* * ***************************CENERAL INFORMATION**************** * * * THIS DRIVER FORMS PART OF THE HP 2100 BASIC CONTROL * * SYSTEM SOFTWARE, AND IS DESIGNED TO ALLOW AUTOMATIC CALL * * OUT CAPABILITY USING THE HP 12589A AUTOMATIC CALLING UNIT * * INTERFACE KIT IN CONJUNCTION WITH A BELL SYSTEM AUTOMATIC * * CALLING UNIT DATA AUXILIARY SET (ACU) 801A6 WITH THE * * FOLLOWING OPTIONS: * * A,ZB,E,R,F,T,X,ZF,& ZU. * * * * THIS DRIVER IS DESIGNED TO BE USED WITH IT'S COMPANION * * REMOTE TTY DRIVER D.50, THE HP 12587B ASYNCHRONOUS DATA * * SET INTERFACE KIT, AND A BELL SYSTEM DATA SET 103A3 WITH * * THE FOLLOWING OPTIONS: * * X,V,W/O S,Q,W/O G,N,M,B,W/O ZD * * * * IT IS IMPERATIVE THAT FORTRAN WRITE CALLS NOT BE USED TO * * INITIATE A DIAL OPERATION!!! THE REASON FOR THIS IS THAT * * THE DRIVER WILL RETURN AN ERROR IN TRANSMISSION AVAIL * * STATUS (=1) IF THE DIAL OPERATION IS NOT SUCCESSFUL. THIS * * CAUSES THE COMPUTER TO HALT BY A FORMATTER JUMP TO ENTRY * * 'IOERR'. SINCE THE ACU IS MOST USEFUL IN UNATTENDED * * OPERATIONS, HALTING THE COMPUTER IS MOST UNWISE. * * INSTEAD, DIRECT ASSEMBLY LANGUAGE CALLS TO IOC OR FORTRAN * * CALLS TO THE COMPANION FORTRAN INTERFACE ROUTINE 'RTTY' * * WITH SUBSEQUENT STATUS CALLS MUST BE USED TO PERFORM A * * DIAL OUT OPERATION. * * * * THE DRIVER ACCEPTS ONLY WRITE AND CLEAR REQUESTS SINCE NO * * OTHER FUNCTIONS ARE APPLICABLE TO *THE ACU. * * * * THE BELL 801 ACU REQUIRES THAT 'DATA TERMINAL READY' TO * * ITS ASSOCIATED 103 DATA SET BE "TRUE" BEFORE IT CAN * * INITIATE A DIALING OPERATION. TO ACCOMPLISH THIS, AN * * INITIALIZATION CALL TO D.50 MUST BE DONE PRIOR TO THE CALL * * TO DIAL THRU THE ACU. * * WHEN THE DIAL OPERATION IS COMPLETED, THE DRIVER WAITS ON * * A SUCCESSFUL DATA LINK (PROPER SIGNALING TONES BETWEEN THE * * TWO MODEMS INVOLVED). IF THE OTHER END IS BUSY OR THE DATA * * LINK IS NOT ESTABLISHED IN A TIME FRAME SET BY A TIMER IN * * THE ACU, AN ACR STATUS WILL BE RECEIVED FROM THE ACU AND * * THE DRIVER WILL TRY 3 TIMES TO ESTABLISH A PROPER DATA LINK* * AFTER 3 TRIES, THE DRIVER COMPLETES WITH AN ERROR IN * * TRANSMISSION AVAILABILITY AND STATUS. THE NUMBER OF * * RETRIES PERFORMED IS ESTABLISHED BY THE CONSTANT #RETY. * * * * IF THE DIAL OPERATION IS SUCCESSFUL AND A DATA LINK IS * * ESTABLISHED, THE DRIVER DOES NOT REMOVE "CRQ" TO THE ACU, * * BUT COMPLETES WITH AVAIL SHOWING SUCCESSFUL OPERATION. IF * * "CRQ" IS REMOVED THE 801 MAY DISCONNECT THE LINE * * PREMATURELY. THEREFORE A CLEAR REQUEST MUST BE MADE TO * * D.51 TO REMOVE "CRQ" SUBSEQUENT TO TERMINATING THE CALL * * THRU THE MODEM DRIVER AND PRIOR TO INITIATING ANOTHER CALL * * REQUEST!!! * * * * THE TERMINAL ON THE OTHER END MUST BE OF A TYPE WHICH WILL* * SUPPLY AN ANSWER TONE TO ESTABLISH A DATA LINK SINCE THE * * 801 REQUIRES AN ANSWER TONE BEFORE IT REPLIES. (THIS MEANS * * THAT IF THE PHONE IS ANSWERED MANUALLY THERE WILL BE DEAD * * SILENCE ON THE LINE. PUT THE HANDSET IN THE ACOUSTIC * * COUPLER WITH THE TERMINAL IN THE ANSWER MODE!!) * * { * *****************REFERENCE DOCUMENTS************************** * * * 1) OPERATING AND SERVICE MANUALS (HP) * A. 12589A AUTOMATIC DIALER INTERFACE KIT #12589-90002 * B. 12587B ASYNCHRONOUS DATA SET INTERFACE KIT * #12587-90006 * * 2)TECHNICAL REFERENCES (BELL SYSTEM) * A. DATA AUXILIARY SET 801A INTERFACE SPECIFICATION * B. DATA SET 103A INTERFACE SPECIFICATION PUB #41101 * * 3) LISTINGS FOR D.50 & RTTY * * 4)A POCKET GUIDE TO THE 2100 COMPUTER HP #5951-4423 * * ****************RETURNED STATUS****************************** * * STATUS IS RETURNED IN THE LOWER 6 BITS OF EQT WORD 2. * THESE BITS HAVE THE FOLLOWING MEANING: * * BIT EIA SIGNAL NAME DESCRIPTION * --- --------------- ----------- * * 0 ACR ABANDON CALL & RETRY * 1 DLO DATA LINE OCCUPPIED * 2 DSS DATA SET STATUS * 3 PND PRESENT NEXT DIGIT * 4 --- RETRY FAILURE(ERROR COMPLETION) * 5 --- ACU STATUS ERROR * (PND,ACR,&DLO=0) * * IF BITS 5 OR 6 ARE TRUE THE DRIVER WILL ALSO HAVE GIVEN A * COMPLETION STATUS WITH AN ERROR IN TRANSMISSION INDICATION * (AVAIL =1 IN EQT WORD 2). * ************************************************************** * SKP * * * ***-----------D.51--BELL TYPE 801 AUTOMATIC CALLING UNIT DRIVER---- * * ENT D.51,I.51 EXT .BUFR * *****INITIATOR SECTION OF D.51********************************* * * ******THE INITIATOR IS ENTERED WITH THE A REGISTER =1ST WORD ***** ADDRESS OF THE DEVICE ENTRY IN THE EQT AND ***** THE B REGISTER =ADDRESS OF WORD 2 OF THE USER REQUEST * ********************************************************************* D.51 NOP *ENTRY/EXIT*************** STA SAVA SAVE EQT ENTRY ADDRESS4 STB SAVB SAVE REQUEST CODE ADDRESS LDA B,I GET REQUEST CODE ALF MOVE AROUND TO ISOLATE AND =B17 THE CODE FIELD STA SAVC SAVE REQUEST CODE SZA IF CODE NOT=ZERO JMP X.1 CONTINUE NORMAL PROCESSING,ELSE * ***CODE=ZERO (CLEAR REQUEST) * ** THE FOLLOWING INSTRUCTION IS REPLACED BY A ** CLC AFTER THE FIRST OPERATION IS INITIATED * * I.1 JMP D.51,I CLEAR DEVICE CONTROL CLB,INB SET B TO 1 JMP STATS GO TO STATUS SECTION * ********************CHECK FOR DRIVER BUSY SECTION***************** X.1 LDB DBFLG CHECK DRIVER BUSY FLAG SZB JMP REJB BUSY REJECT LDA SAVA GET EQT ADDRESS STA EXIT+2 STORE IN CALL TO .BUFR * **********CHECK REQUEST CODE**** * LDA SAVC ADA =B-2 WRITE IS THE ONLY VALID REQUEST SZA SO IF NOT =2 JMP RCER REJECT THE CALL * *******I/O INSTRUCTION CONFIGURATION SECTION************ * LDA SAVA,I GET WORD 1 OF EQT AND =B77 ISOLATE SELECT CODE IOR =B102500 FORM LIA (102500) STA I.2 STA I.12 IOR =B1200 FORM STC XX,C (103700) STA I.4 STA I.7 STA I.9 STA I.14 XOR =B1100 FORM OTA XX (102600) STA I.3 STA I.8 STA I.11 STA I.13 STA I.15 IOR =B5100 FORM CLC XX,C (107700) STA I.1 STA I.5 STA I.16 XOR =B1200 FORM LIB XX (106500) STA I.6 * ****CHECK DEVICE STATUS***** * I.2 LIA 0 INPUT DEVICE STATUS STA SAVS SAVE THE STATUS RAL,RAL ROTATE DLO TO BIT 15 SSA JMP REJB IF DATA LINE OCCUPIED-REJECT * ** ALL CONDITIONS ARE GO, SO DO THE HOUSEKEEPING ** AND START THE DIAL OPERATION. * * ISZ SAVA INDEX TO WORD 2 OF EQT LDA SAVA,I ENTRY IOR =B100000 SET BUSY CONDITION kmLDB SAVS GET STATUS BLF INTO LOWER 4 BITS AND =B177600 MASK OUT OLD STATUS IOR B MERGE INTO NEW WORD STA SAVA,I PUT INTO EQT LDA SAVA GET ADDRESS OF WORD INA 3 OF EQT ENTRY STA EQTA INTO EQTA ISZ SAVB INDEX TO WORD 4 ISZ SAVB OF I/O REQUEST LDA SAVB LDA A,I GET BUFFER ADDRESS RAL,CLE,SLA,ERA IF INDIRECT,GET JMP *-2 NEXT LEVEL ADDRESS STA BUF STORE TWICE IN CASE STA BUFS OF RETRY ISZ SAVB INDEX TO WORD 5 OF REQUEST LDB SAVB,I GET REQUEST LENGTH SSB IF CHAR'S REQUESTED JMP RCER REJECT LDA =B100000 OTHERWISE SET XLOG TO ZERO STA EQTA,I &TO BINARY MODE CMB,INB,SZB,RSS MAKE NEGATIVE & CHECK IF 0 LEN JMP D.51,I IF 0--GIVE IMMEDIATE COMPLETION STB WDCT IF + SAVE WORD COUNT TWICE STB WDCTS STA DBFLG SET DRIVER BUSY FLAG LDA #RETY STA RTRYC SET RETRY COUNTER * ****************BEGIN THE DIALING SEQUENCE***************** * * REQST LDA =B40000 I.3 OTA 0 SEND A CALL REQUEST TO ACU I.4 STC 0,C SET UP FOR INTERRUPT CLA JMP D.51,I GET OUT SHOWING INITIATION * ** REJECT SECTION** RCER CLB,RSS ---R.C.ERROR --SET B=0--- REJB LDB =B100000 DEVICE/DRIVER NOT AVAILABLE CLA,INA SET A NON-ZERO AND JMP D.51,I EXIT TO IOC & REJECT REQUEST SKP ****************CONTINUATOR SECTION*************** * * *****ENTERED BY TRAP CELL INTERRUPT JSB EXECUTION* * * I.51 NOP *****CONTINUATOR ENTRY POINT*** STA SAVAX SAVE A, STB SAVBX B, ERA,ALS E, SOC AND INA OVERFLOW STA SAVEX REGISTERS * ***CHECK FOR SPURIOUS INTERRUPT * LDA DBFLG SZA IF DRIVER NOT BUSY-- CLEAR DEVICE JMP I.6 ELSE CONTINUE I.5 CLC 0,C JSB RESTR JMP I.51,I RETURN FROM SPURIOUS INTERRUPT * * I.6 LIB 0 GET ACU STATUS STB SAVS SAVE IT BLF,RBR ROTATE B LEFT 3 BITS TO GET ACR INTO 15 SSB DID CALL GO THROUGH? JMP RETRY NO ACR=1 LDB SAVS RESTORE STATUS IN B SSB CHECK FOR PND STATUS JMP PND YES,PND=1! BLF,RBR GET DLO IN BIT 0 SLB CHECK FOR DATA LINE OCCUPIED JMP X.2 YES,SET FOR NEXT INTERRUPT * **PND,ACR, &DLO ARE ZERO--?? TERMINATE DIALING OPERATION **BY GOING TO STATS WITH A NEGATIVE 1 IN B REGISTER * CCB JMP STATS * * ** SECTION FOR SPURIOUS INTERRUPTS WHICH MIGHT HAVE BEEN ** CAUSED BY THE DATA SET-REENABLES CARD AND RETURNS * X.2 JSB RESTR I.7 STC 0,C JMP I.51,I * *************NORMAL PROCESSING SECTION WHEN PND IS 1****** PND RBL GET DSS BIT SSB IS DSS=1? JMP DSS YES GO HANDLE IT LDA WDCT CHECK FOR ALL DIGITS SENT BUT NOT IN DSS YET SZA,RSS DSS JMP I.9 IF ALL DIGITS SENT REENABLE CARD AND GET OUT LDA BUF,I NO--OUTPUT A DIGIT ISZ BUF ISZ WDCT NOP NOP FOR LAST DIGIT SKIP I.8 OTA 0 I.9 STC 0,C JSB RESTR RESTORE REGISTERS AND GET JMP I.51,I --OUT!!-- * **SECTION TO HANDLE DSS STATUS*** * * **IF DSS IS TRUE AFTER ALL DIGITS ARE DIALED, THEN **THE DRIVER COMPLETES AND DEPENDS UPON THE DATA SET **TO DISCONNECT THE LINE AFTER THE CALL IS COMPLETE **BY REMOVING "DATA TERMINAL READY" AND HAVING THE **DATA SET ITSELF DISCONNECT--REQUIRES AN OPTION Z **ON THE 801 * * DSS LDB WDCT SZB CHECK FOR 0 WORD COUNT JMP RETRY IF NOT THEN RETRY CLB OK--GO TO STATS WITH B=0 TO SHOW NORMAL JMP STATS DISCONNECT * ******************RETRY SECTION************** * *-----DRIVER WILL ATTEMPT TO REINITIATE THE CALL UNDER THE *-----FOLLOWING CONDITIONS: * (1)IF ACR(ABANDON CALL AND RETRY STATUS) * (2)IF DSS IS TRUE BUT NOT ALL DIGITS DIALED *-----IT WILL RETRY THE NUMBER OF TIMES SPECIFIED IN THE CONSTANT *-----LABEL "#RETY" * * RETRY LDA =B100000 REMOVE CRQ I.11 OTA 0 OUTPUT TO CARD LDA BUFS STA BUF RESET BUFFER ADDRESS LDA WDCTS STA WDCT RESET WORD COUNT ISZ RTRYC EXCEEDED MAX # OF RETRY ATTEMPTS?? JMP I.12 NO, TRY AGAIN LDB =B100000 YES, GO TO STATUS FOR ERROR EXIT JMP STATS SHOWING RETRY STATUS ***********************WAIT UNTIL LINE IS DISCONNECTED I.12 LIA 0 GET STATUS RAL,RAL MOVE DLO TO BIT 15 SSA IS IT ZERO? JMP I.12 NO!! *LINE IS CLEAR, SO RESTART THE PROCESS LDA =B40000 I.13 OTA 0 OUTPUT A NEW CRQ I.14 STC 0,C SET UP FOR INTERRUPT JSB RESTR RESTORE REGISTERS JMP I.51,I GET OUT--------- * **********STATUS SECTION******************* * STATS IS ENTERED FROM 4 LOCATIONS DEFINED BY THE * VALUE OF THE B REGISTER. IF B=1 FROM CLEAR REQUEST * B=-1 STATUS ERROR,PND=ACR=DLO=0 * B=100000 RETRY FAILURE * B=0 NORMAL DISCONNECT * I.16 BSS 0 * * STATS CLC 0 RE-ENABLE PRIORITY STRING SZB,RSS CHECK FOR NORMAL DISCONNECT JMP NORM YES! LDA =B100000 I.15 OTA 0 OUTPUT A DISCONNECT SIGNAL SSB IS THIS AN ERROR CONDITION? JMP X.4 YES! JMP CLRQ NO, MUST BE A CLEAR REQUEST NORM LDA SAVA,I NORMAL DISCONNECT, SO AND =B37400 UPDATE EQT WORD 2 LDB SAVS WITH AVAIL=0 BLF IOR B STA SAVA,I AND CURRENT STATUS CLA STA DBFLG CLEAR DRIVER B:USY FLAG LDA WDCTS CMA,INA IOR =B100000 STA EQTA,I SET TRANSMISSION LOG IN EQT WORD 3 JMP WXT EXIT TO .BUFR IN IOC * ************CLEAR REQUEST PROCESSING********** * CLRQ ISZ SAVA LDA SAVA,I AND =B37400 STA SAVA,I RESET AVAIL. AND STATUS CLA STA DBFLG CLEAR DRIVER BUSY FLAG STA EQTA,I CLEAR XLOG JMP D.51,I GET OUT------ * ** ERROR EXIT PROCESSING * X.4 LDA SAVS INA SLB SET BIT 5 FOR RETRY ERROR INA 6 FOR STATUS ERROR ALF IN EQT WORD 2 STA B TEMPORARY RESULT IN B LDA SAVA,I AND =B37400 IOR B IOR =B40000 STA SAVA,I RESTORED EQT WORD 2 WITH ERROR LDA WDCT INDICATION CMA,INA IOR =B100000 STA EQTA,I RESTORED XLOG CLA RESET DRIVER STA DBFLG BUSY FLAG * ***-------------EXIT THROUGH .BUFR IN IOC-------- * WXT LDA I.51 STA EXIT+1 PUT RETURN ADDRESS IN .BUFR CALL JSB RESTR RESTORE REGISTERS EXIT JSB .BUFR EXIT CALL FOR BUFFERED IOC NOP HOLDS INTERRUPTED SEQUENCE RETURN ADDRESS NOP HOLDS EQT ADDRESS * RESTR NOP ----RESTORE REGISTER ROUTINE------- LDA SAVEX CLO SLA,ELA STF 1 LDA SAVAX LDB SAVBX JMP RESTR,I * *************CONSTANT AND FLAG STORAGE SECTION******************* * * A EQU 0 B EQU 1 SAVAX NOP STORAGE AREA FOR SAVING REGISTERS SAVBX NOP SAVEX NOP * SAVA NOP HOLDS EQT ADDRESS WORD 2 NORMALLY SAVB NOP HOLDS REQUEST WORD 2 ADDRESS SAVC NOP HOLDS REQUEST CODE SAVS NOP HOLDS STATUS EQTA NOP HOLDS EQT WORD 3 ADDRESS * DBFLG NOP DRIVER BUSY FLAG * ****TEMPORARY STORAGE******** * BUF NOP BUFS NOP WDCT NOP WDCTS NOP RTRYC 1f640NOP * **CHANGE THIS CONSTANT TO DETERMINE # OF RETRY'S BEFORE AN ERROR #RETY DEC -3 * END 6 % 22681-18017 1508 SC 0222 MUXT: ASCII MESSAGES VIA 12920 MULTIPLEXOR             H0102 FTN4,L PROGRAM MUXT DIMENSION IQTX(432), IQTN(27,16), IB(80), JB(36), IBAUD(11), 1 K2(3) EQUIVALENCE (IQTX,IQTN) EXTERNAL ATD01, H2600, H2749, H2615, H2767 INTEGER ATD01 DATA IBAUD/110,110,150,220,300,440,600,880,1200,1760,2400/ WRITE(1,600) 600 FORMAT(//">> MUXT <<"//"LOWEST LU# OF MUX = _") READ(1,*) LUX LUX = LUX - 1 C SET UP EQTX: DO 1 I=1,446,27 1 IQTX(I) = 27 3 WRITE(1,601) 601 FORMAT("NUMBER OF PORTS (1-16) ? _") 500 FORMAT(O6) READ(1,*) I IF(I.LT.1.OR.I.GT.16) GO TO 3 C INITIALIZE DRIVER: 603 FORMAT(10O7) WRITE(1,604) 604 FORMAT("INITIALIZE I/O PORTS. ENTER '0' FOR INSTRUCTIONS:") DO 7 J=1,I L = J + LUX C CLEAR DRIVER: CALL EXEC(3,L) 20 WRITE(1,609) J 609 FORMAT("PORT",I3," = _") READ(1,*) K0, K1, K2 IF(K0.LT.0) GO TO 14 IF(K0.LT.2000) GO TO 21 C VALIDATE BAUD RATE: IF(K1.LT.1) GO TO 23 M = K1 IF(K1.LT.12) GO TO 26 DO 27 M=1,11 IF(K1.EQ.IBAUD(M)) GO TO 26 27 CONTINUE GO TO 23 C C INSTRUCTIONS & ERROR MESSAGES: C 21 WRITE(1,621) 621 FORMAT(/"ENTER TERMINAL TYPE, BAUD RATE, LINE OPTIONS:") IGO = 1 22 WRITE(1,622) 622 FORMAT(2X,"TERMINAL TYPE = 2600,2749,2615,2762") GO TO (23,20), IGO 23 WRITE(1,623) 623 FORMAT(2X,"BAUD RATE - ENTER '1-11' OR RATE:") WRITE(1,620) (N,IBAUD(N),N=1,11) 620 FORMAT(3(I6," =",I6)) GO TO (24,20), IGO 24 WRITE(1,624) 624 FORMAT(2X,"LINE OPTIONS - ENTER 3 DIGITS:"/4X,"1 - DUPLEX:" 1," 0=HALF, 1=FULL"/4X,"2 - SEC CHAN: 0=NO, 1=YES"/4X, 2"3 - ECHO: 0=NO, 1=YES") GO TO (25,20), IGO 25 IGO = 2 WRITE(1,625) 625 FORMAT("SAMPLE ENTRY FOR 2749,110 BAUD, FULL DUPLEX, NO SEC CHAN," O,"ECHO:"// 1"2749,110,1,0,1"//"TO REPEAT PREVIOUS ENTRY, TYPE '-1'.") GO TO 20 C VALIDATE LINE OPTIONS:  26 DO 37 N=1,3 K1 = K2(N) IF(K1.GT.1.OR.K1.LT.0) GO TO 24 37 M = M + M + K1 K = K0 C C VALIDATE TERMINAL TYPE, INITIALIZE DRIVER: 14 CONTINUE IF(K.NE.2600) GO TO 2762 N = ATD01(L,H2600,M,IQTN(1,J)) GO TO 8 2762 IF(K.NE.2762) GO TO 2749 N = ATD01(L,H2762,M,IQTN(1,J)) GO TO 8 2749 IF(K.NE.2749) GO TO 2615 N = ATD01(L,H2749,M,IQTN(1,J)) GO TO 8 2615 IF(K.NE.2615) GO TO 22 N = ATD01(L,H2615,M,IQTN(1,J)) 8 WRITE(1,608) N, L, K, M, J 608 FORMAT(O6," = ATD01(",I2,",H",I4,",",O3,",EQTX(1,",I2,"))") C LINE OPEN(INITIAL STATE = "SEND"): CALL EXEC(3,L+200B,2) 7 CONTINUE C C 29 WRITE(1,626) 626 FORMAT("DISPLAY EQTX ENTRY NUMBER? (0=NONE) _") READ(1,*) N IF(N.LT.1.OR.N.GT.16) GO TO 30 WRITE(1,603) (IQTN(J,N),J=1,27) GO TO 29 30 JUX = LUX + I LUX = LUX + 1 50 WRITE(1,605) LUX, JUX 605 FORMAT("LINES",I3," -",I3," READY.") LONG = 1 10 WRITE(1,606) 606 FORMAT("SEND(+) OR REC(-) ON LU# _") READ(1,*) L IF(L) 33,50,9 C RECEIVE: 33 L = -L IF(L.LT.LUX.OR.L.GT.JUX) GO TO 50 CALL EXEC(1,L,IB,36) DO 32 LONG=36,1,-1 IF(IB(LONG).NE.20040B) GO TO 51 32 CONTINUE 51 WRITE(1,607) (IB(M),M=1,LONG) 607 FORMAT(36A2) GO TO 10 C SEND: 9 IF(L.LT.LUX.OR.L.GT.JUX) GO TO 50 WRITE(1,607) (IB(M),M=1,LONG) DO 13 M=1,36 13 JB(M) = 20040B READ(1,607) JB IF(JB(1).EQ.20040B) GO TO 11 DO 12 LONG=36,1,-1 IF(JB(LONG).NE.20040B) GO TO 52 12 CONTINUE 52 DO 53 M=1,LONG 53 IB(M) = JB(M) 11 CALL EXEC(2,L,IB,LONG) GO TO 10 END END$  ASMB,L NAM ATD,7 ENT ATD01,H2600,H2749,H2615,H2762 ******************************************************************* * * * DUMMY ATD01 * * THIS ROUTINE FUNCTIONS ONLY TO RETURN A ZERO TO * * THE TEST PROGRAM "MUXT" WHEN IT CALLS THE LOGICAL * * DRIVER TO PERFORM AN "INITIALIZE". IT DOES NOT * * INITIALIZE THE EQTX. * * THIS ROUTINE SERVES AS A FUNCTIONAL TEST FOR * * "MUXT" AND SHOULD NOT BE USED IN A LIVE TEST. * * * ******************************************************************* ATD01 NOP LDA ATD01,I STA ATD01 CLA JMP ATD01,I H2600 BSS 1 H2749 BSS 1 H2615 BSS 1 H2762 BSS 1 END ATD01 [6  22681-18018 1508 SC 0122 3000 TO DOS 3B SOURCE FILE CONVERSION             H0101 |FTN4,L,B PROGRAM RSTOR C C JOHN ROBERT HAWKES C MARCH 1974 C HP DATA SYSTEMS C INTEGER BLOCK(1024),RECORD,DOSSEC(128) INTEGER RECSIZ DIMENSION NAME(3) COMMON DOSSEC,IDOS,ITRACK,ISECT,LTRACK C C SPACE FORWARD TO THE FIRST FILE ON THE STORE TAPE C REWIND 8 CALL EXEC (3,1310B) CALL EXEC (3,1310B) CALL EXEC (1,8,BLOCK,40) IF (BLOCK(1).EQ.2HST .AND. BLOCK(2).EQ.2HOR) GO TO 100 WRITE (1,9100) 9100 FORMAT ("**** TAPE NOT A 3000 STORE/RESTORE TAPE!! ***") GO TO 4000 100 CALL EXEC (3,1310B) CALL EXEC (3,1310B) C C READ FIRST 1024-WORD BLOCK, CONTAINING FILE LABEL C CALL EXEC (1,8,BLOCK,1024) 1000 DO 1050 I=1,3 NAME(I)=BLOCK(I) 1050 CONTINUE NAME(3)=NAME(3)/256*256 + 40B NUMREC=BLOCK(44) RECSIZ = (-BLOCK(38)+1)/2 WRITE (1,9000) NAME 9000 FORMAT (/"FILE NAME IS",2H ",2A2,A1,1H") IF (RECSIZ.LE.40) GO TO 1060 WRITE (1,9001) RECSIZ 9001 FORMAT ("**** RECORD LENGTH OF",I7," WORDS IS ILLEGAL ****") GO TO 3000 1060 WRITE (1,9002) NUMREC,RECSIZ 9002 FORMAT (I7,I3,"-WORD RECORDS") 1062 CALL EXEC (18,NAME,NSECTS) IF (NSECTS.EQ.0) GO TO 1100 WRITE (1,9003) 9003 FORMAT ("*** DUPLICATE FILE NAME. O.K. TO PURGE? _") READ (1,9004) IANSR 9004 FORMAT (3A2) IF (IANSR.EQ.2HSK) GO TO 3000 IF (IANSR.NE.2HYE .AND. IANSR.NE.2HOK) GO TO 1065 CALL EXEC (33,ISTAT,NAME) GO TO 1100 C 1065 WRITE (1,9005) 9005 FORMAT ("WANT TO SUPPLY A NEW NAME? _") READ (1,9004) IANSR IF (IANSR.NE.2HYE .AND. IANSR.NE.2HOK) GO TO 3000 WRITE (1,9006) 9006 FORMAT (2X,"ENTER NEW NAME: _") READ (1,9004) NAME GO TO 1062 C C 1100 CALL EXEC (17,IFTRAK,LTRACK,I) ITRACK=IFTRAK ISECT=0 RECORD=1 IBL=129 IDOS=1 IGROUP=128/RECSIZ 1150 DO 1300 IG=1,IGROUP C FIND LZAST NON-BLANK WORD IN RECORD DO 1200 I=1,RECSIZ LAST=IBL+RECSIZ-I IF (BLOCK(LAST).NE.2H ) GO TO 1210 1200 CONTINUE GO TO 1230 1210 NUMWRD=LAST-IBL+1 CALL STUFW (NUMWRD*256) JBL=IBL DO 1220 I=1,NUMWRD CALL STUFW (BLOCK(JBL)) JBL=JBL+1 1220 CONTINUE C C TEST IF COMPLETED ALL RECORDS OF FILE C 1230 RECORD=RECORD+1 IF (RECORD.GT.NUMREC) GO TO 2000 C C READ ANOTHER TAPE BLOCK, IF NECESSARY C IBL=IBL+RECSIZ 1300 CONTINUE IBL = IBL + (128-IGROUP*RECSIZ) IF (IBL.LT.1024) GO TO 1150 CALL EXEC (1,8,BLOCK,1024) IBL=1 GO TO 1150 C C FILE COMPLETELY READ IN C 2000 IF (ITRACK.NE.IFTRAK .OR. IDOS.NE.1 .OR. ISECT.NE.0) GO TO 2010 WRITE (1,9021) 9021 FORMAT ("*** NO NON-BLANK RECORDS. FILE SKIPPED.") GO TO 3000 2010 CALL STUFW (0) CALL STUFW (-1) IF (ITRACK.GT.LTRACK) GO TO 8000 CALL EXEC (2,2,DOSSEC,128,ITRACK,ISECT) NSECTS=48*(ITRACK-IFTRAK)+ISECT+1 WRITE (1,9020) NSECTS 9020 FORMAT (I7," SECTORS FOR FILE") C 2050 CALL EXEC (32,ISTAT,NAME,11,NSECTS) IF (ISTAT) 2300,2400,2800 2300 IF (ISTAT.NE.-3) GO TO 2800 WRITE (1,9007) 9007 FORMAT ("*** INVALID FILE NAME.") WRITE (1,9005) READ (1,9004) IANSR IF (IANSR.NE.2HYE .AND. IANSR.NE.2HOK) GO TO 3000 WRITE (1,9006) READ (1,9004) NAME GO TO 2050 C 2400 ISECT=0 ITRACK=IFTRAK DO 2500 IRSEC=1,NSECTS CALL EXEC (-1,2,DOSSEC,128,ITRACK,ISECT) CALL EXEC (15,3,DOSSEC,128,NAME,IRSEC-1) ISECT=ISECT+1 IF (ISECT.LE.47) GO TO 2500 ISECT=0 ITRACK=ITRACK+1 2500 CONTINUE CALL EXEC (34,ISTAT,NAME,NAME,9) IF (ISTAT.EQ.0) GO TO 3000 2800 WRITE (1,9009) 9009 FORMAT ("*** INDETERMINATE FILE PROBLEM. FILE SKIPPED.") C C DETERMINE IF ANOTHER FILE IS ON THE TAh PE C 3000 CALL EXEC (3,1310B) CALL EXEC (1,8,BLOCK,1024) CALL EXEC (13,8,ISTAT,ILOG) ISTAT=0 IF (ILOG.NE.40) GO TO 1000 C C DONE WITH TAPE C 4000 REWIND 8 CALL EXEC (6) C 8000 WRITE (1,9030) 9030 FORMAT (///"*** INSUFFICIENT DISK SPACE. SORRY.") END SUBROUTINE STUFW (IWORD) INTEGER DOSSEC(128) COMMON DOSSEC,IDOS,ITRACK,ISECT,LTRACK C IF (IDOS.LE.128) GO TO 100 IF (ITRACK.GT.LTRACK) GO TO 200 CALL EXEC (2,2,DOSSEC,128,ITRACK,ISECT) ISECT=ISECT+1 IDOS=1 IF (ISECT.LE.47) GO TO 100 ISECT=0 ITRACK=ITRACK+1 100 DOSSEC(IDOS)=IWORD IDOS=IDOS+1 RETURN C 200 WRITE (1,9000) 9000 FORMAT (///"*** INSUFFICIENT DISK SPACE. SORRY.") CALL EXEC (6) END $   22681-18019 1505 SC 0122 PERPETUAL CALENDAR              H0101 uFTN,B,L PROGRAM CALEN COMMON NDATE(31),MAX(12),NPRNT(504) C C SET ASCII VALUES INTO BUFFER FOR EACH DAY OF THE MONTH. C NDATE( 1)=20061B NDATE( 2)=20062B NDATE( 3)=20063B NDATE( 4)=20064B NDATE( 5)=20065B NDATE( 6)=20066B NDATE( 7)=20067B NDATE( 8)=20070B NDATE( 9)=20071B NDATE(10)=30460B NDATE(11)=30461B NDATE(12)=30462B NDATE(13)=30463B NDATE(14)=30464B NDATE(15)=30465B NDATE(16)=30466B NDATE(17)=30467B NDATE(18)=30470B NDATE(19)=30471B NDATE(20)=31060B NDATE(21)=31061B NDATE(22)=31062B NDATE(23)=31063B NDATE(24)=31064B NDATE(25)=31065B NDATE(26)=31066B NDATE(27)=31067B NDATE(28)=31070B NDATE(29)=31071B NDATE(30)=31460B NDATE(31)=31461B C C SET INTEGER VALUES INTO BUFFER FOR NUMBER OF DAYS IN C EACH MONTH. C MAX( 1)=31 MAX( 2)=28 MAX( 3)=31 MAX( 4)=30 MAX( 5)=31 MAX( 6)=30 MAX( 7)=31 MAX( 8)=31 MAX( 9)=30 MAX(10)=31 MAX(11)=30 MAX(12)=31 C C SET ASCII VALUE INTO VARIABLE FOR WORD - YES (YE), C AND BLANK WORD. C IANS=54505B IBLNK=20040B C C ENTER THE LOGICAL UNIT NUMBER OF THE OUTPUT DEVICE. C WRITE (1,1) 1 FORMAT ("ENTER THE LOGICAL UNIT NUMBER OF THE OUTPUT DEVICE.") READ (1,2) IOUT 2 FORMAT (I4) C C THIS LOOP INSERTS 2 ASCII BLANKS INTO EACH ELEMENT C OF THE PRINTING ARRAY NPRNT. C DO 3 I=1,504 NPRNT(I)=IBLNK 3 CONTINUE C C ESTABLISH THE YEAR NUMBER, THE STARTING DAY, LEAP YEAR C DATA (IF A LEAP YEAR, INCREASE MAX(2) TO 29 AT C STATEMENT NO. 10), AND ENTER THE DESIRED NUMBER OF C COPIES OF THE CALENDAR. C WRITE (1,4) 4 FORMAT ("ENTER YEAR NUMBER") READ (1,2) IYEAR WRITE (1,5) 5 FORMAT ("ENTER NUMBER vOOF COPIES DESIRED") READ (1,2) IQUAN WRITE (1,6) 6 FORMAT ("ENTER STARTING DAY FOR JAN 1: (SUN=1,MON=2,TUE=3,ETC) " ) READ (1,2) NSTAR WRITE (1,7) 7 FORMAT ("IS THIS A LEAP YEAR? ANSWER YES OR NO") READ (1,8) NANS 8 FORMAT (A2) IF (NANS-IANS) 11,10,11 10 MAX(2)=29 11 NSTRT=NSTAR C C SKIP 6 LINES TO START. C DO 13 I=1,6 WRITE (IOUT,12) 12 FORMAT (1X,/) 13 CONTINUE K=0 C C THIS OUTER LOOP ESTABLISHES THE START AND STOP ELEMENTS C IN THE PRINTING ARRAY FOR EACH MONTH. C DO 16 I=1,12 ISTRT=NSTRT LIM=MAX(I) NSTRT=NSTRT+K*42 KSTOP=LIM+NSTRT-1 KK=0 C C THIS INNER LOOP CALCULATES THE DATE FOR EACH DAY OF C THE MONTH. C DO 15 J=NSTRT,KSTOP KK=KK+1 NPRNT(J)=NDATE(KK) ISTRT=ISTRT+1 IF (ISTRT-7) 15,15,14 14 ISTRT=1 15 CONTINUE K=K+1 NSTRT=ISTRT 16 CONTINUE KOK=0 JOJ=5 C C THIS OUTER LOOP SETS THE PRINTING FOR THE PROPER C QUARTER, AND PRINTS THE YEAR NUMBER. C 17 NK=-6 WRITE (IOUT,18) IYEAR 18 FORMAT (34X,I4,/) DO 32 I=1,4 WRITE (IOUT,19) 19 FORMAT (1X,/) K=NK GO TO (20,22,24,26),I 20 WRITE (IOUT,21) 21 FORMAT (7X,"JANUARY",18X,"FEBRUARY",21X,"MARCH",/) GO TO 28 22 WRITE (IOUT,23) 23 FORMAT (8X,"APRIL",22X,"MAY",23X,"JUNE",/ ) GO TO 28 24 WRITE (IOUT,25) 25 FORMAT (8X,"JULY",21X,"AUGUST",19X,"SEPTMEBER",/ ) GO TO 28 26 WRITE (IOUT,27) 27 FORMAT (7X,"OCTOBER",18X,"NOVEMBER",18X,"DECEMBER",/ ) 28 WRITE (IOUT,29) 29 FORMAT (" S M T W T F S",2(6X,"S M T W T F S")) C C THIS INNER LOOP SETS THE PRINTING OF THE PROPER C ELEMENTS OF ARRAY NPRNT FOR EACH MONTH. C DO 31 J=1,6 K=K+7 KK=K+42 KKK=KK+42 L=K+6 LL=KK+6 LLL=KKK+6 WRIT  E (IOUT,30) (NPRNT(N),N=K,L),(NPRNT(N1),N1=KK,LL), 1 (NPRNT(N2),N2=KKK,LLL) 30 FORMAT (7(1X,A2),4X,7(1X,A2),4X,7(1X,A2)) 31 CONTINUE NK=NK+126 32 CONTINUE KOK=KOK+1 DO 33 I=1,6 WRITE (IOUT,19) 33 CONTINUE C C HAVE ALL REQUESTED COPIES BEEN PRINTED? C IQUAN=IQUAN-1 IF (IQUAN) 17,34,17 34 CONTINUE END END$   22681-18020 1451 SC 0122 01DVR 12 FOR 9866A THERMAL LINE PRINTER             H0101 \ ASMBҬ̬ HDDVұҠHP̯SS̠MDD966ANŠPN NAMDVұ NԠ.. HSDVҠSNNDDҠUSŠHHŠ966AHMA PNҠMADŠBYVANDDVSNҠHҠ900SS AUAS. UNDҠSAŠN̬HŠPNҠPNDSϠB AU̠PAGŠPN.A̠HŠMMANDSSDNH DS-ɠUS'SMANUA̠AŠMPMNDPԠҠH SUPPSSNԠNŠDMMANDҠHHHŠSN ASNABŠAYϠMPMN. NADDNϠHŠSANDADAPABSUNDABVŬ HŠAŠSVA̠ADDNA̠HNGSBUԠNϠHŠDV. .VAABŠNGHANSMSSNS:ƠHŠ00B NHŠN̠DSSԬHNANSMSSN USUN̠AҠ(05ҠANؠ(003SDD NHŠHAAҠSAM.HSAUŠVDSANY HAAҠUNԠHAԠSSNԠϠHŠDVҬSϠHA ԠSNԠNSSAYϠGUŠHŠUNԠVYMŠA SGHYDNԠMSSAGŠSSNԠMAMMNBU. .HZNA̠ABBNG:NHŠNMA̠MADMDSH UNŠƠAHԠ(0NHŠHAAҠSAMAUSSA HZNA̠ABϠU.HŠNGHƠHŠABSDND BYHŠNGHAAҬNPDASABNAY NUMB.NϠHKNGSDNŠϠNSUŠHAԠNDƠN DSNԠU 3.VA̠ABBNG:HŠUNŠƠAVԠ(03 UNDҠHŠSAMŠNDNSASҠHZNA̠ABBNG ̠AUSŠAVA̠ABƠHŠNUMBҠƠNS SPDBYHŠNGHAA. N:ƠԠSDDDUNGAABPAN(AS NDADBYAZϠHAAҠUNԩHNHŠPAN SNԠPMDANDHŠDVҠAKS HŠMPN. .HAAҠHKNG:ANYGA̠DŠ(HSMANS hN̠DSPMAYSPADBYA'?'. 5.BNAYUPU:HŠPAGŠMANGMAYBŠSUPPSSD BYSPYNGBNAYUPUԠ(00Bԩ NHŠN̠D. HSPNASϠSUPPSSSANYHKNGҠAB HAASANDSUPPSSSHŠGA HAAҠHKNG 6.MD:NHŠMADMDSHŠUN ƠAƠ(0AUSSASKPϠHŠPƠH NԠPAG. SKP .NP SBSϠNGUŠDV B SBԱɠAҠANSMSSNG SBԱ3ɠANDVA̠ABUN SBԱɠANDHZNA̠ABUN DA5 SSASSUNԠNŠUNҠVAD? SB5ɠNϬŠBMƠM DABƣSԠUPAGD SA6ɠPSԠBƠUNҠNAGD DA9ɠHN̠D ANDԱMASKҠUSԠD PAԲŠMMAND? MP PA3N̠MMAND? MPN ANAҠSŬDŠGA MP.ɠSϠ NҠDA9ɠHN̠D ANDMASKSAŠUNND SZASS0? MPAҠDϠAҠMMAND PAVԠ? MPN̠DϠN̠MMAND ҠDA.+ҠSŬҽ MP.ɠANDUN AҠDABԱ5 PàPUNƠNŠPN P3APAҠBU A PAP SBSUPDԠUPDAŠSAUSD ԠDA.+MMDAŠMPN MP. HDDVұNAҠ--N̠MMANDDDNG N̠SBDYKHKƠPNҠADY SAԱɠNGH<-0 DAԱ0ɠHPAMD SSA<0? MPƠPƠM SZASS0? MPSƠGNŠSUPPSSƠMMAND ADAM56D SSA<56? MPMSGϠDϠHAԠMANY'S ADA.- SSASS<63? MPҠNϬ ADAB̠NDؠNϠUMPAB MP0ɠANDUMPHUGH MSDBԱ0ɠ-HNSϠAB MPMƠANDSԠHMUP ƠDAԴɠHSAUSD ANDB6SAŠPƠMAG SZASSAŠŠAԠPƠM? DB5ɠNϬHNSϠG MPS BƠDB5ɠHNSϠG NBSSN MPS SPàNB DSPNB NB MPPGD SPGDBSH MPPGD HPGDBUA PGADBUA PGDSBDVS B DA5 MANA DVDVSҠAKŠNS.MD.B MƠMBNBSSBSNSϠAB SƠBNŠNŠҠSNGŠSPA SҠSBԱ3ɠSŠNVA̠ABUN MPԠGϠϠU HDDVұNAҠ--ŠMMANDPSSNG ŠSBDYKPNҠADY? DA6ɠؠAGD ҠBԷHPNԠAG SA6 DAPGHKҠSYSMAS DBSAB PADB3BUMPABŠPN PBNABƠNDƠAB? MPNSYSYSԠP PABɠSԠϠHAASMAH? NBSSYSHKNԠ MPPNϬHKNԠNY DAPG+HNԠϠHAAS PABɠDϠHYMAH? NBSSYSYHŠASԠN MPNSYSNϬԠP DABɠHHŠASԠD AND.+0MASKUԠנBY }DBASAVŠHŠHHAA DAPG+HHŠDYNY AND.+0MASKUԠϠBY PABDϠHYMAHN? MPԠYSA̠SŠS NSYSDB9ɠHN̠D DA6ɠANDAGD BƬB ŬB B̬B SSBSSM? MPKBHKNϬHKҠKB ҠBԱ5YSSԠBNAY?G MPNP KBHKSZSSK? MPVHKN ҠBԱYSSԠVAABŠAG NPԠҠBԷANDAҠPNԠAG SA6 ԠDAHANPNDϠBŠ$ SB.A̠NNUAҠҠSԠHA MPԠMMDAŠMPN ANNUANUN MP. VHKSBV? MPԠYSA̠SŠS SBHSŠHN̠HAA MPԠؠUN SZԱɠSPANSMSSNG PAZϠ'0'SADUBŠSPA MPSƠGϠDϠNŠDS PANŠ''SPƠM MP PAASԠ''SNϠNŠDAҠPN MPN PAPUS'+'SHŠSAM MPN MPԠA̠HSAŠNŠ NƠDA6 MPNPԠGϠAҠPNԠAG SϠNP PAHANAŠŠAADYNGUD MPSϬɠYSSKPHS SAHAN SAB DAP SAP SPDAPҬɠHANNSUN SSASSSԠANɯϠGUP MPSϬɠNϬUN ANDMASKɠSPUԠDHANN ҠBPUԠNNנN SAPҬɠANDPUԠԠBAK SZPҠPNԠϠHŠNԠN MPSP DYKNϱ?P PAPHHADAŠSAUSD SZASSPNҠADY? MPDYKɠYSUN SBSUPDԠNϬUPDAŠSAUS DA3SԠҠ3ҠԠDN MP.ɠAND HDNNUAҠҠDVұ .NP SBS P5SƠPSԠHŠAGHAԠASAD MŠDA6ɠHAGD BNB SSABNAYMDŠ? SB5ɠYSNVADAŠNŠUN DB5ɠHUN SZBBMƠPAGŠ? MPVHKNϬGϠϠNԠPS ANDSVNYSSAŠBƠUN SZASSADYҠDS? MPDSYS SABNϬSAVŠUN DA SBPNԠUPUԠANŠDMAYB ADBMNDMNԠUN DA6 ANDMASKB ҠBSPŠNNנUN SA6 MPԠANDAԠҠNUP DSDBԱɠHDԠUN SZBSSSԠMŠHUGH? DBNGԠYSPSԠUN D$DASPA SBSSANAŠSPASANDDASHS DADASH SBPNԠMAYNԠMŠBAK! NBDMNԠDԠUN SBԱɠANDSAVŠԬUSԠNAS SZBMŠDS? MPD$YS DA6ɠHAGD ҠBƣNSԠNנUN SA6ɠҠNԠM DAƣ ADAԱ3ɠPUԠMAGNNSN SAԱ3ɠVA̠ABUN DAN$ SA5ɠSԠNŠUN SKP VHKDBԱ3 SZBVA̠ABS? MPVAB DBԱɠHZNA̠ABS SZB MPHAB HGԠSBHYSGԠNŠHAAҮ  MPNDؠUN DB6 SSBBNAYMDŠ? MPHUԠYSSKPHSHKNG PAԱHZNA̠AB? MPHS PAԱ3VA̠AB? MPVS PAԱ MPM B SSBVAABŠUPUԠNGH? MPVAB DBMPHAGMH NBSZBASԠHAAҠ? MPHHKN PABKAϠYSSԠABAKAנ? MPDN$YSUԠHNϠNŠD HHKADAM0 SSA<0(? DAM0YSPAŠH'?' PAM3UBUԠ? DAM0YSSUBSUŠ'?' ADAԴ0NVԠBAKϠAS HUԠSBPNԠUPUԠHAA SZԱɠSPANSMSSNG PA NDSZ5ɠSPNŠUNҠƠNŠD MPM MPM VABDA SBPNԠDϠNŠNŠD SZԱ3ɠBUMPVABUN NP SZ5ɠBUMPNŠUN NP ԠSZ.SKPϠNNUANUN MP. HABDASPA SBPN SZԱɠBUMPHABUN MPHAB+ MPHG SKP VAB̠PAҠAAGŠUN? MP PAؠSP? MPN MPHHKKϠPNԠHSHAA NDDA6ɠHAGD ANDBԷSAŠPNԠAG SZASSPNԠAG? MPDN$N DAƠYSSԠUPNŠD SBPNԠANDPNԠNŠD DA6 ҠBԷ SA6ɠAҠNŠDAG MPNDANDUNԠN DN$SSPPNҠADY? P0UDN$ MPԠN Df.AԱɠHBUҠNGHD SSADS? MPSHKNϬHAAS DBԱ SBBSDSUNDUP NBANDDVDŠBY SBԱɠSAVŠUNԠҠA SHKSBSUPD ASZSAUSNMA? NANϬSԠAGҠ$ DBԱɠHANSMSSNG PàP MP.ɠUNϠMPNPN HDNNUAҠҠDVұ--SPA̠HAAҠPSSNG ҠDA6ɠHAGD ҠBԷSԠPNԠAG SA6 NϠDA6 ҠBԱ3SԠؠAG SA6 SZԱɠUNԠHAA MPNDANDU HSԠSZԱɠUNԠN̠HAA SBHHNԠHAA MPABNDؠUN MANANGAŠ SAԱɠSAVŠUN MPAB VSԠSZԱɠUNԠN̠HAA SBHHNԠHAA MPABNDؠUN MANASSNGAŠԠ-------------------- MDA5ɠSKPHŠSԠƠHSPAGŠ! SAԱ3ɠSAVŠVA̠UNԠ<---------- SZMPASԠHAAҠ? MPABԠN DA6ɠYSAҠPNԠAG ANDBԷ Ҡ6 SA6 ABԠSZԱɠUNԠSZŠHAA MPVHK ABNDBSHNGHA SBԱ3 SBԱ MPND HDNNUAҠҠDVұ--SUBUNS HNP DA6 A̬A SASSK? MPNGN SSANDAG? MPHɠYSAKŠؠUN MPGHNϬGԠHAA NGDAԱɠHBUҠNGH SSADS? MP+3NϬHAAS A̠NVԠϠHAAS MANAANDNGA ADAԱɠG-NGH SSASSMŠϠDϠ? MPHɠNϬAKŠؠUN GHSAMPYSSAVŠ"HASϠG" SZHADUSԠUN DBԱɠHANSMSSNG ŬBNVԠϠBUҠND ADBԱ0ɠNDؠNϠBU DABɠHHAAS SZSSUPPҠҠ? AƬAƠƠUPPҬAŠϠϠBY AND.+6MASKϠBS MPH PNԠNP P6SSPPNҠADY? MPԠNϬUNϠ$ PAP PSàP MPPNԬ SUPDԠNP P9BP DAԴ ANDMASKMVŠDSAUSBS ŬSSBƠN? ҠBԷYSSԠBԠ SBUԠƠPAP? NAYSSԠBԠ0 SZBSSҠSAUS? MP+3N ŠYSSԠAG ҠBԱ DBNţ PB5ɠPƠM? ҠB6YSSԠPƠMSAUS SAԴɠANDSAVŠSAUSD MPSUPDԬ HDDVұ--NSANSANDSAG PҠDƠB̬ B̠DƠP DƠP DƠP3 DƠP DƠP5 DƠP6 DƠP DƠP DƠP9 DƠP0 DƠP Ԡ0 SABDƠ+-3 ASà3N ASà3D ASà3AD ASà3AG ASà3BP ASà3ASMB NABDƠ UMPADDSSPAM DƠSƠ56 DƠDSP5 DƠSPà5 DƠHPG59 DƠPG60 Dŧ640ƠSPG6 DƠBƠ6 DƠƠ63 B̠DƠ SKP PAGŠMAԠNSANS HPNU0 NPPGU60 MAGU BMAGU3 BƣABSBMAG ƣABS-MAG NţABS-NPPG N$ABS-NPPG-MAG NGԠABS-HPN PANGSYSMNKAGS .U53B ..U0B PGUB AU0 BU PU0 ԴU..+UPMNԠSAUSD 5U..+5UNԠNŠUN 6U..+6DVҠAGD 9U..+9N̠D Ա0U..+0BUҠADDSSҠPAAM ԱU..+BUҠNGH(DSҠHAAS ԱU..+ANSMSSNG Ա3U..+3VA̠ABUN ԱU..+HZNA̠ABUN MPAYSAG HANNP DVSҠNP PҠUPN MPUS SKP MASKSNSANSANDHҠVS B6Ԡ00 BԷԠ00 BԱ3Ԡ0000 BԱԠ0000 BԱ5Ԡ00000 VԠԠ00 MASKԠ00 MASKԠ0 MASKBU.- MASKɠU.+0 M3Ԡ-3 M56DDà-56 M0Ԡ-0 MNU.- ԲU.+ 3U.+3 SVNU.+ ԱU.+3 UAԠU.+3 SHU.+0 ASԠԠ05 BKAϠԠ3 ҠԠ5 DASHԠ055 ؠU.+3 ƠU.+0 ԱU.+9 Ա3Ԡ03 ԱԠ0 NŠԠ06 PUSԠ053 M0Ԡ3 SPAŠԠ0 Դ0USPA ZϠԠ060 ND ޯ6  22681-18021 1451 SC 0122 01OPTOR              H0101  N PGAMP GA̠DN DMNSNNAM(30Z(0D(0S(0 à àHSUNŠAUASHŠPMA̠DҠƠADNGBSDVS àϠMNMZŠHŠNUMBҠƠSYSMBASŠPAGŠNKSUDBYPS. àҠASԠƠDVSƠGVNSZSHŠPMUMDҠSH àSUNŠSUNGNHŠSMASԠSUMƠDNSBN àAHPAGŠBUNDAYSSDANDHŠNԠSԠSԠD àDVҠMMY.HSASSUMSHAԠMSԠVAABSAŠAD àNAҠHŠNDƠHŠDVҬANDHAԠMMYNSA àDSBUDUNMYHUGHUԠHŠDV. à àNPUԠMA: à àSԠNҠHŠASԠDƠAVAABŠMMY(AM.AZ àNYDAUSϠ36. àHNNҠҠAHDVҠA5-HAAҠNAM.BGNNNGN àUMNNҠH: à-HŠ5-DGԠA̠DVҠSZŬ à-- à-HŠ5-DGԠSԠDƠDVҠMMY(BANDMA àPVUSPSSԩDBYNŠBANKHNHŠ5-DG àASԠDƠDVҠMMY.(ASԠDƠDVҠMMY àSNԠUDƠԠUASSԠDƠPDNG àDV'SMMYMNUSN. àϠMNAŠHŠSԠƠDVSYPŠ"".UPϠNS àAŠAD.ϠDŠHŠPVUҠNYYPŠ""(UPAש. àAҠAMŠPPNA̠ϠAA̠ƠHŠNUMBҠƠDV àNDHŠPMA̠DҠSPND..HŠDҠHAVNGH àSԠSUMASDNDABV. à 9N DNŠ.AS. U àHANGŠUҠBSNVNMN U U U55 U66 (U606 606MA(6ج"ADDҠPMZҠ<<<" ج"G.HAMAN-HP̯Dà<<" ج"̠05<<" 3"NҠAMҠ0(_36:-----_" ɠ0 AD(U50 50MA(5 D36B (.G.0D P(D000B000B DD+ l(U6 6MA( 3"NҠDVҠNAMŬ׬:""NAM......." GϠϠ0 à 9(U60 60MA("!DVҠSZŠ"5 NN+ NN- (U63(NAM(KNK3 63MA(3A"DD!" 500MA(3A5ج5 0AMD ʠ0 AD(U500KNAM(NNAM(3Nɬ (K..536BGϠϠ (K..505BGϠϠ3 NAM(NK (.N.0GϠϠ (.G.0000BGϠϠ ʠ GϠϠ3 ʠAM- AM ʠʠ-ɠ+ 3(..GϠϠ9 Z(N NN+ (N..GϠϠ (U609 609MA("" 3NN- (U660 (U660(ɬ(NAM(ʬɩʽ3Z(ɩɽN 60MA("DVSϠBŠADD:"5ج"NAMŠSZ" 60MA(ج3ج3Aج5 àSԠUPPMUANUN: A̠PMU(-ND (U660 60MA("UNԠBSԠD:"3ج"N.SUMD" K0 SҠ36 à 3KK+ M A̠PMU(MD (M5 5AMD PAGŠP SҠ0 ʠAM- DϠ6ɽN MD(ɩ AMAM-Z(M (DNũ(U6603(NAM(KMK3Z(MAM (AM.G.PAGũGϠϠ6 0PAGŠPAGŠ-000B (AM..PAGũGϠϠ0 MPAGŠ-AM+000B SҠSҠ+M (DNũ(660M 6ʠAM- (DNũGϠϠ (S.G.SҩGϠϠ3 (U6600KSҬ(D(MMN 600MA(ج6ج50ɴ SҠS DϠɽN S(ɩD(ɩ GϠϠ3 àA̠DN: (U660 60MA("PMUMD:""NAMŠSZŠננSUM" DNŠ.U. DϠɽN D(ɩ^ S(ɩ GϠϠ5 603MA(ج3A5ج5ج5 60MA(5ج5 (U66S 6MA(3ج"ASԠSUM"5 (U605 605MA("DN!" GϠϠ9 ND SUBUNŠPMU(ND DMNSNKA(NUM(D( àHSUNŠGVSHŠN!PMUANSƠNBS àAKNNAԠAM.AHA̠Ϡ'PMU'PDUSH àNԠPMUANN'D'.HNHŠASԠPMUAN àSUNDN_0.HSŠNSUNHANGD. àUNŠSNAZDBYASԠA̠HN àUA̠ϠMNUSHŠN.ƠBSϠBŠPMUD. àKA(ɩHŠNUMBҠƠHŠBԠϠBŠHSN. àGƠKA(53HNHŠ5'HMASԠBԠ àBŠHSNASHŠ3'DƠHŠ5AVAAB. (N3 N̠-N DϠɠN KA(ɩ UN 3DϠ5ɠN 5NUM(ɩ àGNAŠPANN'D'BYHSNGM à'NUM'ADNGϠ'KA': DϠɽN KKA(N̠+-ɩ M0 DϠ9ʠN Ơ(NUM(ʩ..0GϠϠ9 MM+ Ơ(M..KGϠϠ0 9NNU 0NUM(ʩ0 D(ɩ àNMNԠKA: DϠ6ɠN KA(ɩKA(ɩ+ Ơ(KA(ɩ..ɩGϠϠ 6KA(ɩ àMPN: N0 UN ND ND$ <  22681-18022 1450 SC 0122 01MEMORY TO PAPER TAPE ABL FORMAT             H0101 :ASMBA̬BMMYϠPAPҠAPŠDUMP HDMMYϠPAPҠAPŠAB̠MAԠDUMPUN HSUNŠDUMPSMMYϠPAPҠAPŠNAB̠MA. DSAŠDUMPDNU̠DNGHHNϠBANK DAMSBNDS.AHҠPUNHDNANS 55DMA̠DSHHSHŠMAMUMAABŠD NGH.HUSDSANDDSUA̠NŠPAGŠ MMY. PANGPDUS -------------------- .P00B .AA 3.BA .SPUNHSԠD 5.NNA̠PS 6.UN .MMY̠BŠDUMPDNAB̠MAԠHHŠUN ADDSSDSPAYDNHŠDSPAYGS. .AҠA'HԠ'US(..DSPAYGSҠ00 MŠMMYANBŠDUMPDBYGNGϠSP. G00B SAԠSAASAVŠMMYDUMPBUNDS. SBA BBGԠPUNHSԠDŠNGU. DAA'A' ҠB SAPUNH+ SAYNGUŠYP. DA YAϠUPUԠHŠN̠DҠPUNHNY. DASà'Sì' ҠB SAPUNH+ DASS'SS' ҠB SAPUNH+3 NҠDAADMNŠHH MANAMMYԠ ADAAPUNHSSSHAN NA SAMPDNGH. MANA ADA.3 SSA MPMA DAMP MPMA+ MAؠDA.3SԠҠMAMUMDNGH55(Dé SBPUNH APUNHABANKAM. SBPUNH BNAZŠHKSUMϠZ. DAAGԠUNԠADADDSS. SBMPNHGϠPUNHADADDSS. DA.3SԠDNGHPN. MANA SA NנDAADSPAYUNԠADDSSϠPUNH. AB DAAɠGԠNNSƠMMYADDSS. SBMPNHЯ  GϠANDPUNH. DAAAŠŠDNŠHMMY? PAAAŠŠDN? MPDNŠYSŠAŠDNנHHSHA. SZ̠AŠŠDNŠHHSD? MP+ MPNҠYSGϠANDPUNHSUNGHKSUM. SZAMVŠUNԠADDSSPNҠBYN. MPNנGϠANDGԠNԠD. NҠDABGԠHKSUMUN. SBMPNHPUNH. SZAMVŠUNԠPUNHADDSS. MPNҠGϠANDVAUAŠNԠD. DNŠDABGԠNDNGHKSUM. SBMPNHPUNH. HԠBHA. MPSAԠGϠANDPUNHSMŠMŠMMY. ...UYUNS... PUNHNP< NAM DVR00,0 ENT I.00,C.00 * * * DOS-M SYSTEM DEVICE DRIVER - TEKTRONIX 4010 * * VERSION A MAY 1972 * * * P. W. LORD * * MEDICAL RESEARCH COUNCIL, LONDON. * * REF: DOS-M AND 4010 MANUALS. ************************************************** * * * DRIVER 00 OPERATES UNDER THE CONTROL OF THE * I/O CONTROL MODULE OF THE D.O.S. EXECUTIVE * THIS DRIVER IS RESPONSIBLE FOR CONTROLLING DATA * TRANSMISSION WITH A TEKTRONIX 4010 WITH MODIFIED * 2116 PARALLEL INTERFACE. <00> IS THE EQUIPMENT * CODE ASSIGNED TO THIS TYPE OF DEVICE. I.00 IS * THE ENTRY POINT FOR THE *INITIATION* SECTION AND * C.00 FOR THE *COMPLETION* SECTION. * * - THE INITIATION SECTION IS CALLED FROM I/O * CONTROL TO INITIALIZE A DEVICE AND INITIATE * A DATA TRANSFER OR CONTROL FUNCTION. * * CALLING SEQUENCE: * * - ADDRESSES OF DEVICE EQT ENTRY * SET IN "EQT1-EQT17" - * * (A) = I/O ADDRESS OF DEVICE * * (P) JSB I.00 * (P+1) - RETURN - * * (A) = 0, OPERATION INITIATED, OR * (A) = REJECT CODE: * * 2, ILLEGAL CONTROL REQUEST, * OR CONTROL FUNCTION HAS * BEEN DONE (E.G., SET EOT * STATUS). * * * - THE COMPLETION SECTION IS CALLED BY CENTRAL * INTERRUPT CONTROL TO CONTINUE OR COMPLETE * AN OPERATION. * * CALLING SEQUENCE: * * - ADDRESSES OF DEVICE EQT ENTRY * SET IN "EQT1-EQT17" - * * (A) = I/O ADDRESS OF DEVICE * * (P) JSB C.00 * (P+1) -- COMPLETION RETURN -- * (P+2) -- CONTINUATION RETURN -- * * - COMPLETION RETURN: * (A) = 0, SUCCESSFUL COMPLETION WITH * (B) = # WORDS OR CHARS. TRANSFERRED * (A) = 2 IF SIMULATED EOT ENCOUNTERED, * (B) = 0 * * - CONTINUATION RETURN:iZ REGISTERS * MEANINGLESS. * ************************************************** * SKP * * ASCII FORMATS * ----- ------- * * PROGRAMMING : CALL EXEC (IR,IC,IB,IL) * ----------- * IR = 1 FOR INPUT, 2 OUTPUT * * IC = CONTROL WORD * * BITS 0 - 5 = LOGICAL UNIT * BIT 6 (M) = 0 * BIT 7 (V) = 0 * BIT 8 (K) = 0 PRINTING * = 1 NO PRINTING * BIT 13 (W) = WAIT / NO WAIT OPTION * * IB = BUFFER ADDRESS * * IL = BUFFER LENGTH * FORMATS * ------- * * ASCII (INPUT): A STRING OF CHARACTERS TERMIN- * ----- ATED BY A LINE-FEED. IF THE * REQUESTED LENGTH IS FULFILLED * BEFORE A LINE FEED, THE RE- * MAINING CHARACTERS ARE IGNORED * UNTIL A LINE-FEED IS INPUT. * THE 8-LEVEL BIT (BIT 07) IS * SET = 0 FOR 7-BIT ASCII CODE. * * SPECIAL CHARACTER PROCESSING: * * RETURN - ALWAYS IGNORED AND IS NOT * TRANSMITTED TO USER BUFFER * LINE-FEED - IGNORED IF INPUT BEFORE * THE FIRST VALID CHARACTER * OF A RECORD; RECORD TERMINATOR * AT THE END OF A RECORD AND IS * NOT TRANSMITTED TO BUFFER OR * COUNTED. * CONTROL/A - DELETES PREVIOUS CHARACTER * RUB-OUT - DELETES CURRENT RECORD; * AFTER LINE-FEED IS INPUT, * NEXT RECORD IS READ. * * ASCII (OUTPUT): A STRING OF CHARACTERS, THE * ----- NUMBER DESIGNATED BY THE * "BUFFER LENGTH" IN THE REQUEST, * TERMINATED BY A RETURN AND * LINE-FEED (SUPPLIED BY THE * DRIVER). * * SPECIAL CHARACTER PROCESSING: * * LEFT-ARROW: IF A LEFT-ARROW IS THE * LAST CHARACTER IN THE USER * BUFFER, THE RETURN/LINE-FEED * AND ARROW CODES ARE NOT OUTPUT. * * A ZERO BUFFER LENGTH CAUSES ONLY A * RETURN/LINE-FEED TO BE OUTPUT. * * * - SIMULATED END-OF-TAPE: IF 30 FEED-FRAMES * ---------- --- -- ---- (ZEROS) ARE INPUT * BEFORE THE FIRST CHAR- * ACTER OF A RECORD, AN * EOT INDICATION IS * SET IN THE STATUS FIELD * (BIT 05 OF WORD 5) OF * THE EQT ENTRY AND THE * INPUT TERMINATED. IF * THE EOT BIT IS SET * WHEN THE CONDITION IS * ENCOUNTERED, THE EOT * IS IGNORED AND CHARS * ARE INPUT UNTIL A * RECORD IS STARTED (I.E, * LEADER IS AUTOMATICALLY * SKIPPED AFTER EOT). * SKP * BINARY FORMATS * ------ ------- * * * BINARY MODE IS USED TO EXPLOIT THE GRAPHIC INPUT * AND OUTPUT FACILITIES OF THE 4010. * * * PROGRAMMING : CALL EXEC ( IR,IC,IB,IL) * ----------- * * IR = 1 FOR INPUT, 2 FOR OUTPUT * * IC = CONTROL WORD * * BITS 0 -5 = LOGICAL UNIT * BIT 6 (M) = 1 * * INPUT: * ----- * * BIT 9 = 0 CHARACTER FLAGGING * = 1 STATUS * * OUTPUT * ------ * * BIT 7 = 0 SET ASCII MODE ON EXIT * = 1 NOT SET ASCII MODE ON * EXIT * BIT 8 = 0 SET GRAPH MOxDE ON ENTRY * = 1 NOT SET GRAPH MODE ON * ENTRY * BIT 9 = 0 DATA IS PACKED * = 1 DATA IS UNPACKED * BIT 10 = 0 X VALUE IS SUPPLIED * = 1 X VALUE IS IMPLIED * BIT 11 = 0 LOWER 10 BITS ARE DATA * = 1 UPPER 10 BITS ARE DATA * * INPUT AND OUTPUT * ----- --- ------ * * BIT 12 = 0 RESET ASCII POSITION * AFTER TRANSFER * = 1 LEAVE ASCII POSITION AT * LAST BINARY POSITION * BIT 13 (W) = WAIT / NO WAIT OPTION * * IB = BUFFER ADDRESS * * IL = BUFFER LENGTH IN WORDS OF DATA * * * FORMATS * ------- * * THE SCREEN IS DIVIDED INTO A GRID OF 1024X1024 * POINTS, BUT ONLY 780 POINTS OF Y ARE DISPLAYED. * COORDINATES ADDRESSED AND READ REFER TO THE * NUMBERING OF THESE POINTS, 0-1024 OR 0-780. THE * ORIGIN IS LOCATED IN THE LOWER LEFT SCREEN * POSITION (0,0). * * INPUT * ----- * * ENABLES THE CURRENT SCREEN POSITION TO BE READ * OR THE CROSS HAIR CURSOR POSITION TO BE FOUND. * REQUESTING CHARACTER FLAGGING TURNS ON THE * CURSOR. THE POSITION OF THE CURSOR IS RETURNED * BY STRIKING ANY KEY. IF STATUS IS REQUESTED * THE CURRENT BEAM POSITION IS RETURNED * IMMEDIATELY, WITH THE STATUS BITS. * DATA IS RETURNED INTO THE USER BUFFER IN THE * FOLLOWING ORDER : Y,X,Y,X ... Y,X,T WHERE T IS * THE LAST CHARACTER STRUCK OR THE STATUS (LEFT * JUSTIFIED). IF THE BUFFER LENGTH IS TOO SHORT * EITHER T OR BOTH T AND THE FINAL X ARE NOT * RETURNED. * NOTE: FOR EACH PAIR Y AND X A KEY IS STRUCK. * BUT ONLY THE LAST CHARACTER IS RETURNED. * * OUTPUT * ------ * * BINARY OUTPUT CAUSES VECTORS TO BE DRAWN BETWEEN * SUCCESSIVE POINTS (Y, cX). UNLESS THE 'NOT SET * GRAPH OUT' OPTION IS USED AFTER A PREVIOUS CALL * HAS NOT RESET ASCII MODE, THE MOVE TO THE FIRST * (Y,X) POSITION IS NOT DRAWN. * Y VALUES ONLY MAY BE SUPPLIED, IN WHICH CASE THE * X VALUES ARE ASSUMED TO START FROM 0 AND INCREMENT * BY 1. * DATA MAY TAKE THE FOLLOWING FORMS: * * A) PACKED : THE TOP 8 BITS OF EACH WORD CONTAIN * THE Y VALUES, THE LOWER 8 BITS THE X (IF * SUPPLIED). Y VALUES ARE MULTIPLIED BY 2 AND * DISPLAYED AS TAKING VALUES 0-510. IF X IS * SUPPLIED IT IS MULTIPLIED BY 4 AND DISPLAYED * AS TAKING VALUES 0 - 1020. (OTHERWISE 0,1...). * * B) UNPACKED : SUCCESSIVE WORDS CONTAIN EITHER * YXYX... OR YYY... THE DATA MAY BE IN THE TOP * OR LOWER 10 BITS OF EACH WORD. VALUES ARE * DISPLAYED AS GIVEN. * * NOTE: OPTIONS ON BITS 7,8 OF CONTROL WORD ARE * EXAMINED ONLY IF BIT 12 IS SET. OPTION ON BIT 11 * ONLY WHEN DATA IS UNPACKED. * IF AN X IS EXPECTED, BUT IS NOT SUPPLIED, STATUS * BIT 6 IS SET, AND A NORMAL EXIT IS MADE * * * BINARY TRANSFERS SPECIFYING A ZERO SUFFER LENGTH * ARE A) ASSUMED LENGTH 1 ON INPUT, B) CAUSE NO * TRANSFER ON OUTPUT. SKP * * CONTROL FUNCTIONS * ------- --------- * * * PROGRAMMING : CALL EXEC (IR,IF,IP) * ----------- * CALL EXEC (IR,IF) * * SYSTEM COMMAND :EF,LU (ERASE) * * FORTRAN / ALGOL TAPE STATEMENTS * * * * IR REQUEST CODE = 3 * * IF CONTROL WORD * * BITS 0 - 5 = LOGICAL UNIT * BITS 6 - 12= FUNCTION CODE * BIT 13 = WAIT / NO WAIT OPTION * * IP OPTIONAL PARAMETER * * CONTROLS AVAILABLE * -------- --------- * * CODE(OCTAL) ACTION PARAMETER * ----------- ------ --------- * * 1 ERASE THE SCREEN AND N/A * RESET ASCII CURSOR ^ * AT TOP LEFT * (TAKES ABOUT 0.5 SEC). * * 2 BACKSPACE N CHARACTERS. N * * 3 SPACE FORWARD N N * CHARACTERS. * * 4 RESETS ASCII CURSOR AT N/A * THE TOP LEFT (DOES NOT * ERASE). * * 7 EOT STATUS BIT (5) IS N/A * SET TO ALLOW LEADER * (BLANKS) TO BE SKIPPED * ON NEXT INPUT. * * 11 OUTPUT N LINE FEEDS N * * 12 OUTPUT N LINE BACKUPS N * * 13 OUTPUT N UNDERLINE N * CHARACTERS. * * 14 ACTIVATE THE HARD COPY N/A * UNIT. * * 15 ACTIVATE THE ALTERNATIVE N/A * CHARACTER SET * * 16 RETURN TO NORMAL CHARACTER N/A * SET * * THE UNDERLINE FUNCTION DOES NOT ISSUE A CR/LF * THE DEFAULT VALUE OF THE PARAMETER IS 1 * FUNCTIONS 1,2,3,4 ARE COMPATIBLE WITH DVR46 * IF N<0, -N IS ASSUMED. * * TAPE CONTROLS ( FORTRAN AND ALGOL ) * ---- -------- * * ENDFILE LU : ERASE (CODE 1) * * BACKSPACE LU: BACKSPACE 1 (CODE 2, IP = 1) * * SPACE LU : SPACE 1 (CODE 3, IP = 1) * * REWIND LU : RESET (CODE 4) * * (LU = LOGICAL UNIT ) * * THE SYSTEM COMMAND :EF,LU ERASES THE DISPLAY SKP * - SYSTEM TELETYPE PROCESSING: THE SYSTEM * TELETYPE IS ALWAYS LEFT IN THE * "INPUT STATE" WITH CONTROL SET/ * FLAG CLEARED TO LEAVE THE KEYBOARD * ACTIVE. IF A KEY IS STRUCK WITH * NO INPUT IN EFFECT, THE FLAG * "OPATN" IN BASE PAGE IS SET NON- * ZERO. IF A KEY IS STRUCK DURING * AN OUTPUT OPERATION TO THE SYSTEM * TTY, THE FLAG IS SET. * SKP HED < DVR00 TEKTRONIX 4010 INITIATION SECTION > * ********P* INITIATION SECTION ********** * * I.00 NOP * JSB SETIO SET I/O INSTRUCTIONS FOR UNIT. * LDA ..+6 LDB EQT4,I SSB JMP I.00,I LDA EQT9,I GET CONTROL WORD OF REQUEST, AND .3 ISOLATE AND STA B SAVE REQUEST CODE. * CPB .3 JMP CONTL - CONTROL REQUEST - * LDA EQT9,I AND .100 SZA JMP PL2 BINARY TRANSFER * * * CONSTRUCT DEVICE PROGRAM CODE ACCORDING TO REQUEST * SLB,RSS I/O ? JMP D01 WRITE ADB DATAI READ , TURN ON INPUT LDA EQT9,I ALF,ALF < K > FIELD TO A(0) SLA KEYBOARD OPTION? D01 ADB PRINT TURN ON KEYBOARD D02 ADB MSIGN SET 15=1 TO SELECT PROGRAM STATE. STB TEMP1 SAVE PROGRAM WORD. * * INITIALIZE FLAGS, EOT COUNTER, CURRENT * BUFFER ADDRESS AND LENGTH. * LDA EQT10,I CONVERT BUFFER ADDRESS TO EVEN RAL CHARACTER ADDRESS AND SET STA EQT12,I AS CURRENT BUFFER ADDRESS. LDA EQT11,I GET BUFFER LENGTH. SSA IF CHARACTERS SPECIFIED, JMP *+3 USE VALUE. ALS CONVERT WORDS TO NEGATIVE CMA,INA CHARACTERS. SLB,RSS SKIP ZERO CHECK JMP *+3 IF WRITE. SZA,RSS IF CHAR, COUNT = ZERO, SET = -1 CCA FOR SYSTEM PROTECTION. STA EQT13,I SET CURRENT BUFFER LENGTH. * LDA EOTC FOR INPUT, SET EOT COUNTER STA EQT14,I WRITE. * * SELECT DEVICE OPERATING CONDITIONS - DEVICE * NEEDS TO BE SELECTED ONLY ONCE FOR EACH * OPERATION. * D03 LDA TEMP1 IO1 OTA 0 * SLB IF READ REQUEST, JMP D04 GO TO TURN ON UNIT. * * OUTPUT OR CONTROL REQUEST * LDA IEXTA SET RETURN FROM COMPLETION STA C.00 SECTION TO . JMP D19 OPERATE COMPLETION SECTION. * IEXIT CLA (A) = 0 FOR INITIATION OF REQUEST JMvP I.00,I * * INPUT REQUEST * D04 LDA EQT9,I SET BIT 15 OF WORD 6 AND MASK3 IOR MSIGN = 1 TO MEAN NO VALID DATA STA EQT9,I INPUT YET FOR EOT INDICATION. * IO2 STC 0 TURN UNIT ON JMP IEXIT AND EXIT. SKP * * CONTROL REQUEST PROCESSING * CONTL LDA EQT9,I GET CONTROL WORD STA TEMP5 ALF,ALF FROM REQUEST, POSITION AND RAL,RAL ISOLATE FUNCTION FIELD. AND MASK1 CPA .4 JMP PL94 RESET FUNCTION CLB STB EQT14,I CPA .7 JMP PL98 FUNCTION 7 ADA N15 > 17B ? SSA,RSS JMP PL99 YES - ILLEGAL ADA NORCH COMPUTE CONTROL ADA TAB CHARACTER ADDRESS LDB A,I CONTROL ACTION SZB,RSS REJECT CODES 5,6,10 B JMP PL99 STB EQT13,I CPB ERASE JMP PL97 2 CHAR CONTROLS CPB HCU JMP PL97 CPB ALTCH JMP PL96 1 CHAR CONTROLS CPB NORCH JMP PL96 * * CONTROLS WITH PARAMETER (COUNTS) * D06 LDA EQT10,I SSA,RSS GET NEGATIVE CHAR COUNT CMA,INA SZA,RSS PL96 CCA PL95 STA EQT12,I STORE IT LDB TTYOT STB TEMP1 SET TTY CODE JMP D03 * PL97 LDA N2 JMP PL95 * PL94 LDA BUFA6 SET BUFFER STA EQT14,I ADDRESS LDA N6 JMP PL95 * PL98 LDA EQT4,I SET BIT 5 (EOT STATUS ) IOR .40 SKIP LEADER ON STA EQT4,I NEXT INPUT, CAUSE REJECT RETURN * * REQUEST ERROR - CAUSE REJECT RETURN TO I/O CONTROL * PL99 LDA .2 SET ILLEGAL CONTROL JMP I.00,I -RETURN FOR REJECT- * * BINARY I/O * PL2 LDA EQT9,I SET OUT PUT ALF,RAR CONTROL AND BMASK BITS IOR .2 15 - 12 STA TEMP5 AND LOCAL RCODE LDB TTYOT STB TEMP1 CCA STA X1 SET IMPLIED X STA EQT12,I CLA STA Ӭ640TEMP4 SET PHASE 0 STA EQT13,I LDA EQT11,I GET COUNT STA LENG LDB EQT9,I SSA,RSS SET JMP *+3 EQT11 ARS TO JMP PL55 NEGATIVE CMA,INA WORD SLB,RSS COUNT JMP PL55 SZA,RSS CCA PL55 STA EQT11,I LDB TEMP5 JMP D03 SKP HED < DVR00 TEKTRONIX 4010 COMPLETION SECTION > * ********* COMPLETION SECTION ********** * * C.00 NOP * JSB SETIO SET I/O INSTRUCTIONS FOR UNIT. * D19 LDA EQT9,I GET REQUEST CONTROL WORD - RAL POSITION DATA-IN FLAG IN 00, RUB. STA TEMP1 OUT FLAG IN 15 AND SAVE. ALF,ALF TO 00, TO 15. STA TEMP2 SAVE MODE AND VARIABLE INPUT. CLE,ELA ALSO PUT MODE IN E. * JSB STEST CHECK IF SYSTEM TELETYPE RSS CHECK FOR OPERATOR ATTENTION. JMP D20 LDA C.00 CHECK IF CALLED FROM ITIT SECTION CPA IEXTA JMP D20 YES LDA EQT4,I SSA JMP D20 THEN SET ISZ OPATN OPERATOR ATTENTION FLAG ISZ C.00 JMP C.00,I AND EXIT. * D20 LDB EQT9,I SEZ LDB TEMP5 LOCAL RCODE SLB CHECK REQUEST CODE RBR,SLB CODE. JMP D31 WRITE OR CONTROL REQUEST. * * INTERRUPT INPUT SECTION * IO3 LIA 0 INPUT CHARACTER SEZ JMP D23 AND MASK1 * LDB TEMP1 SLB IF VALID DATA RECEIVED, PROCESS. !6 SZA IF NON-ZERO CHARACTER, JMP D21 PROCESS. * * CHECK FOR POSSIBLE EOT CONDITION * ISZ EQT14,I INDEX EOT COUNTER. JMP CXT1 -INDEX NOT ZERO, EXIT. LDA EQT4,I COUNT EXHAUSTED. IF LAST VALID AND .40 OPERATION CAUSED EOT, SZA THEN IGNORE LEADER UNTIL JMP CXT1 NON-ZERO DATA RECEIVED. CLB SET (B) = 0 FOR EOT AND GO JMP D28 TO STATUS COMPLETION SECTION. * * ASCII INPUT PROCESSING * D21 CPA RUB JMP D24 - RUBOUT - CPA RETN JMP CXT1 - RETURN - CPA LINF JMP D26 - LINE FEED - SSB IF DRIVER IS WAITING FOR LINE JMP CXT1 FEED, EXIT. CPA .1 JMP D25 - CONTROL/A - * * STORE CHARACTER IN USER BUFFER * D23 LDB EQT12,I GET CURRENT BUFFER ADDRESS. CLE,ERB CONVERT TO WORD ADDR., CHARACTER ISZ EQT12,I POSITION IN E, INDEX ADDRESS. SEZ,RSS SHIFT TO UPPER POSITION IF ALF,ALF EVEN ADDRESS. STA TEMP3 -SAVE CHAR.- LDA MASK2 POSITION SEZ CHARACTER MASK (377) ALF,ALF TO PROPER POSITION AND B,I GET OPPOSITE CHAR. FROM BUFFER, IOR TEMP3 INSERT NEW AND STA B,I REPLACE FULL WORD. * LDA EQT9,I SET DATA-IN FLAG AND LFEED TO AND MASK3 MEAN RECORD IN PROGRESS. STA EQT9,I ISZ EQT13,I ADD 1 TO CHARACTER INDEX. JMP CXT1 -RECORD CONTINUED. * * CHARACTER COUNT EXHAUSTED * LDA TEMP2 IF BINARY MODE, SSA GO TO TERMINATE JMP PL PHASE LDA EQT9,I SET L-FEED FLAG BACK TO 1 TO IOR DATAI FORCE A LINE-FEED TO TERMINATE STA EQT9,I AN ASCII RECORD. * * CONTINUATION EXIT * CXT1 STC 0 SET DEVICE TO INPUT NEXT CHAR. IO4 EQU CXT1 * ISZ C.00 SET FOR (P+2) RETURN. JMP C.00,I -RETURN TO INTERRUPT CONTROL -  SKP * RUB-OUT CODE PROCESSOR (DELETION OF ASCII RECORD) * D24 LDA EQT10,I RESET ORIGINAL BUFFER RAL ADDRESS AS NEW STA EQT12,I CURRENT ADDRESS FOR RE-INPUT. * LDA EQT11,I RESET SSA BUFFER JMP *+3 LENGTH ALS TO BE CMA,INA NEGATIVE SZA,RSS PROTECT AGAINST CCA ZERO LENGTH. STA EQT13,I CHARACTER INDEX. * LDA EOTC RESET EOT STA EQT14,I COUNTER. * LDA EQT9,I SET BIT 14 (LFEED FLAG) OF IOR DATAI WORD 6 = 1 TO FORCE A LINE-FEED STA EQT9,I TO TERMINATE DELETED RECORD. JMP CXT1 - EXIT - * * CONTROL/A PROCESSOR (CHARACTER DELETION) * D25 LDA EQT10,I IF CONTROL/A RAL IF FIRST CPA EQT12,I NON-ZERO CHARACTER INPUT, JMP CXT1 IGNORE IT. * LDA EQT12,I SUBTRACT 1 FORM ADA N1 CURRENT BUFFER STA EQT12,I CHARACTER ADDRESS. LDA EQT13,I SUBTRACT 1 FROM ADA N1 CURRENT STA EQT13,I CHARACTER INDEX. JMP CXT1 - EXIT -. * * LINE-FEED PROCESSOR (RECORD TERMINATOR) * D26 LDA EQT9,I SET DATA-IN FLAG AND AND MASK3 CLEAR LINE-FEED FLAG FOR POSS- IOR MSIGN IBLE RE-INPUT AFTER RUB-OUT. STA EQT9,I LDA EQT10,I IF ORIGINAL BUFFER RAL ADDRESS EQUALS CPA EQT12,I CURRENT, THEN WAS JMP CXT1 RUBOUT CONDITION * LDB EQT12,I IF ODD CLE,ERB # OF LDA B,I CHARACTERS AND MASK4 INPUT,SET IOR .40 LOWER CHARACTER SEZ OF LAST WORD STA B,I = TO BLANK (SPACE). SKP * * STATUS AND TRANSMISSION COMPLETION SECTION * D27 LDA EQT13,I GET CHARACTER INDEX (NEG. OR 0) LDB EQT11,I AND ORIGINAL BUFFER LENGTH. SSB JMP D27A BLS ADB A SLB,BRS INB JMP D28 D27A CMB,INB ADB A D28 LDA EQT4,I IF SIMULATED AND MASK4 EOT CONDITION SZB,RSS DETECTED ON INPUT, IOR .40 SET EOT BIT IN WORD 5. STA EQT4,I AND .40 IF SZA EOT DETECTED, SET LDA .2 RETURN STATUS = 2 FOR EOT. PL32 STA TEMP1 FOR RETURN TO INTERUPT CONTROL * * COMPLETION EXIT SECTION * CXT2 CLC 0 CLEAR DEVICE CONTROL IO5 EQU CXT2 * JSB STEST CHECK IF SYSTEM TELETYPE JMP D30 FOR INPUT KEYBOARD MODE. * D29 LDA TEMP1 JMP C.00,I EXIT TO INTERRUPT CONTROL. * * D30 LDA KEYBD SET SYSTEM TELETYPE IN INPUT IO6 OTA 0 MODE. IO7 STC 0,C JMP D29 - GO TO EXIT - SKP * * INTERRUPT OUTPUT SECTION * D31 LDA C.00 CPA IEXTA IF THIS CALL IS TO OUTPUT FIRST JMP D32 CHARACTER, SKIP ATTN CHECK. * JSB STEST CHECK IF SYSTEM TELETYPE RSS THEN CHECK FOR OPERATOR ATTN. JMP D32 - NOT SYSTEM TTY - * IO8 LIA 0 GET I/O REGISTER AND MASK2 CONTENTS (BITS 07-00). CPA MASK2 IF = 377 (I.E, NO KEY STRUCK DUR- JMP D32 ING LAST OUTPUT), CONTINUE. * * OPERATOR DESIRES SYSTEM ATTENTION AT SYSTEM TTY. * STA OPATN SET OP-ATTN FLAG NON-ZERO. * * WRITE RECORD REQUEST * D32 CLA IF CURRENT BUFFER ADDRESS CPA EQT12,I = ZERO, THEN JMP D36 OPERATION COMPLETED. * SLB JMP D40 - CONTROL FUNCTION - * CPA EQT13,I IF CHAR. INDEX = JMP D33 0, THEN OUTPUT END OF RECORD. PL50 LDB EQT12,I GET CURRENT CHAR. BUFFER ADDRESS ISZ EQT12,I INDEX FOR NEXT CHAR. CLE,ERB CONVERT TO WORD ADDR. LDA B,I GER WORD AND SEZ,RSS POSITION PROPER ALF,ALF CHARACTER IN A(07-00). AND MASK2 REMOVE UPPER POSITION DATA. * LDB TEMP2 PUT MODE IN B(15). ISZ EQT13,I INDEX CHARACTER COUNTER. JMP IO9 -NOT LAST CHARACTER- * SSB IF BINARY MODE, JMP PL40 CHECK PHASE 5 * CPA ARROW IF CHAR = <_>, THEN OMIT IT JMP D36 AND R/LF ON ASCII RECORD. * * OUTPUT CHARACTER TO PRINTER/PUNCH UNIT * IO9 OTA 0 OUTPUT CHAR. TO INTERFACE BUFFER. * JMP CXT1 RETURN TO INTERRUPT CONTROL. SKP * * END-OF-RECORD PROCESSING * D33 LDA TEMP2 CHECK MODE SSA OF TRANSFER. JMP PL BINARY - CHECK PHASE * LDB EQT14,I *ASCII* RECORD LDA RETN OUTPUT FIRST A CPB RETN RETURN AND THAN A LDA LINF LINE-FEED. STA EQT14,I SET EQT11 FOR LINE FEED CHECK. CPB RETN IF LINE-FEED IS BEING OUTPUT, GO JMP D35 TO SET COMPLETION FLAG. JMP IO9 - OUTPUT RETURN - * PL40 LDB .5 CPB TEMP4 LAST PHASE? JMP D35A JMP IO9 NO OUTPUT CHAR. D35A LDB LENG STB EQT11,I RESTORE LENGTH * D35 CLB LAST CHARACTER - SET BUFFER STB EQT12,I ADDRESS = 0 TO INDICATE. JMP IO9 * * END OF OUTPUT PROCESSING * D36 LDB EQT11,I SET (B) = TRANSMISSION SSB LOG AS POSITIVE # OF WORDS OR CMB,INB CHARACTERS. CLA SET COMPLETION INDICATOR STA TEMP1 FLAG = 0 JMP CXT2 GO TO COMPLETION EXIT. * * BINARY I/O END OF PHASE PROCESSER * PL LDB TEMP5 LDA TEMP4 PHASE CPA .0 JMP PL6 TO PHASE 1 CPA .1 JMP PL7 TO PHASE 2 CPA .2 JMP PL8 TO PHASE 3 CPA .3 JMP PL9 TO PHASE 4 * * PHASE 4 PROCESSER * LDA EQT9,I SLA JMP PL19 READ BINARY * PL18 CLA WRITE BINARY CPA EQT11,I DONE ? JMP PL22 YES * BLF,RBR B(1)=TOP/BOTTOM; B(0)=IMPLIED X STB TEMPB LDB EQT10,I GET WORD FROM LDA B,*/I USER BUFFER ISZ EQT10,I LDB TEMPB SSB JMP PL27 UNPACKED STA TEMP3 PACKED AND MASK4 GET Y COORD CLE,ERA RANGE 0 - 511 CCE STORE IN JSB SET TEMP. BUFFER JSB STY LDB TEMPB CCE,SLB JMP PL71 IMPLIED X LDA TEMP3 AND MASK2 GET X COORD ALF,ALF RANGE 0 - 1023 PL30 JSB SET STORE IN JSB STX BUFFER LDA .3 STA TEMP4 SET TO LDB N4 PHASE 3 LDA BUFA3 EXIT ISZ EQT11,I INCREMENT WORD COUNT NOP JMP PL11 * PL27 RBR,ERB JSB SET STORE Y COORD JSB STY LDB TEMPB SLB JMP PL71 IMPLIED X ISZ EQT11,I INCREMENT COUNTER JMP PL72 X SUPPLIED * PL31 LDA .100 NO X SUPPLIED ! IOR EQT4,I ERROR STA EQT4,I STATUS = 100B JMP PL22 TO ALPHA. * PL72 RBR,ERB LDB EQT10,I X SUPPLIED LDA B,I ISZ EQT10,I GET X JMP PL30 * PL71 LDA X1 X IMPLIED CLE,INA STA X1 NEXT X JMP PL30 * * READ BINARY PHASE 4 * PL19 LDA BUF5+1 A=HIGH Y LDB BUF5+2 B=LOW Y JSB DECO STORE Y JSB END TEST IF DONE ISZ EQT10,I LDA BUF5 STORE X LDB BUF5+1 JSB DECO JSB END ISZ EQT10,I LDA BUF5 STORE CHAR./STATUS AND MASK5 LEFT JUSTIFIED JSB END STA EQT11,I * LDA .2 RETURN TO PHASE 3 STA TEMP4 LDB TEMP5 JMP PL15 * * TO FIRST PHASE * PL6 SSB ? RESTORE ALPHA POSITION? JMP PL35 NO PL16 LDA BUFAB YES PL17 LDB N2 A=ADDRESS JMP PL11 B=NEG. CHAR. COUNT * * TO PHASE 2 * PL7 LDA BUFA5 SAVE ALPHA POSITION LDB N5 JMP PL14 * * TO PHASE 3 * PL35 LDA .2 SET ORIGINAL PHASE 2 STA TEMP4 JMP PL10 * PL8 LDA BUF5 ST+HX SAVE AND MASK2 HX CURRENT IOR BUF5+2 LY+HX ALPHA ADA DATAI POSITION STA BUF7+1 LDA BUF5+1 LX+HY AND MASK2 HY ADA BUF8 GS+HY STA BUF7 LDA BUF5+1 LX+HY AND MASK4 LX ADA CON3 LX+US STA BUF7+2 * PL10 LDA EQT9,I SLA JMP PL15 BINARY INPUT SSB JMP PL44 PL45 LDA BUFA8 BINARY OUTPUT PL24 CCB JMP PL11 TO GRAPH OUTPUT PL15 BLF,RBR STATUS OR SSB CHARACTER TO BE SENT? JMP PL16 STATUS LDA BUFAA CHARACTER JMP PL17 * PL44 BLF TEST FOR SKIP GS SSB,RSS JMP PL45 SET TO GRAPH OUT ISZ TEMP4 ASSUME ALREADY IN GRAPH OUT LDB TEMP5 * * TO PHASE 4 * PL9 LDA EQT9,I SLA JMP PL7 BINARY READ ISZ TEMP4 BINARY WRITE JMP PL18 GO FILL LOCAL BUFFER * * TO PHASE 5 * PL22 LDB TEMP5 SSB,RSS SAVE ALPHA ? JMP PL23 YES LDA BUFA4 NO BLF,RBL RETURN TO ASCII? SSB,RSS JMP PL24 LDB EQT9,I NO: BUT IGNORE IF INPUT SLB JMP PL24 LDB LENG STB EQT11,I JMP D36 TERMINATE WITHOUT SETTING ASCII PL23 LDA BUFA7 LDB N6 JMP PL11 * * SET INPUT/ OUTPUT LOCAL * PL14 JSB RED INPUT LOCAL IOR .1 STA TEMP5 LDA KEYBD IOPL1 OTA 0 JMP CXT1 * PL11 JSB RED OUTPUT LOCAL IOR .2 STA TEMP5 LDA TTYOT IOPL2 OTA 0 JMP PL50 * * CONTROL FUNCTION OUTPUT * D40 CLA FUNCTION CPA EQT14,I CODE 4? RSS JMP PL6B YES CCA CPA EQT12,I LAST CHARACTER? JMP PL7B YES LDA EQT13,I FIRST CHAR. IN TOP OT EQT13/ AND MASK4 SZA,RSS  JMP PL7B NO LDA EQT13,I ALF,ALF RSS PL7B LDA EQT13,I PL7A AND MASK2 SET CONTROL CHAR. ISZ EQT12,I INDEX OUTPUT COUNT NOP JMP IO9 OUTPUT CHARACTER * PL6B LDB EQT14,I GET NEXT RESET LDA B,I CHARACTER ISZ EQT14,I JMP PL7A SKP HED < DVR00 TEKTRONIX 4010 UTILITY ROUTINES > * RED NOP STB EQT13,I LOCAL COUNT RAL STA EQT12,I LOCAL ADDRESS ISZ TEMP4 NEXT PHASE LDA TEMP5 AND BMASK RESET LOCAL I/O CODE JMP RED,I * STX NOP ADA .100 ADB .40 BLF,BLF IOR B STA BUF3+1 JMP STX,I * STY NOP ADA .140 ADB .40 BLF,BLF IOR B STA BUF3 JMP STY,I * SET NOP SEZ TOP OR BOTTOM SIG.? JMP PL25 PL26 STA TEMP6 BOTTOM SIG. ALF,ALF ALF,RAR AND .37 STA B MSB IN B LDA TEMP6 AND .37 JMP SET,I LSB IN A PL25 ALF,ALF RAL,RAL TO BOTTOM OF WORD JMP PL26 * DECO NOP BLF,BLF AND .37 PUT TWO WORD RAL,ALF INTO A STA TEMP3 LDA B AND .37 IOR TEMP3 JMP DECO,I * END NOP LDB EQT10,I STORE COORD IN STA B,I IN USER BUFFER LDA EQT11,I ISZ EQT11,I DONE? JMP END,I JMP PL22 * * * CONVERT LOGICAL UNIT TO EQT VALUE * STEST NOP ELB STB TEMPB CCA ADA SYSTY L.U. # OF SYS TTY ADA LUTAB L.U. ADDR OF SYS TTY LDA A,I EQT# OF SYS TTY ADA N1 STA B MULTIPLY BY 17 ALF ADA B ADA EQTAB LDB TEMPB CLE,ERB CPA EQT1 JMP STEST,I YES, SO RETURN ISZ STEST NO, SO INCREMENT ADDRESS JMP STEST,I THEN RETURN * * PURPOSE: TO CONFIGURE THE I/Og INSTRUCTIONS * SETIO NOP IOR LIA COMBINE WITH I/O ADDRESS STA IO3 AND SET. STA IO8 * ADA .100 CONSTRUCT INSTRUCTION. STA IO1 STA IO6 STA IO9 STA IOPL1 STA IOPL2 * ADA .1100 CONSTRUCT INSTRUCTION STA IO2 STA IO4 STA IO7 * IOR .4000 CONSTRUCT INSTRUCTION. STA IO5 * JMP SETIO,I * * SKP HED < DVR00 TEKTRONIX 4010 CONSTANTS & STORAGE > * * CONSTANT AND VARIABLE STORAGE AREA * A EQU 0 DEFINE SYMBOLIC REFERENCE FOR B EQU 1 A AND B REGISTERS. * MASK3 OCT 37777 CLEAR FLAG MASK CON3 OCT 20037 40+US TTYOT OCT 120000 OUTPUT, NO PRINTING N15 DEC -15 .140 OCT 140 MASK5 OCT 77400 BMASK OCT 176000 .40 OCT 40 .1100 OCT 1100 .4000 OCT 4000 EOTC DEC -30 $ EOT COUNTER - 3 INCHES $ PRINT OCT 020000 BIT 13 DATAI OCT 040000 BIT 14 MSIGN OCT 100000 BIT 15 * RETN OCT 15 < RETURN > * LIA LIA 0 * TEMP1 NOP TEMPORARY TEMP2 NOP STORAGE TEMP3 NOP AREAS. TEMP4 NOP TEMP5 NOP TEMP6 NOP LENG NOP TEMPB NOP X1 NOP * IEXTA DEF IEXIT-1 ADDRESS OF RETURN TO INITIATOR * KEYBD OCT 140000 INPUT MODE (NO PRINTING) * * * TABLES * TAB DEF * ERASE OCT 15414 ERASE (C-S-K + C-L ) BACK OCT 10 BACKSPACE (C-H) SPACE OCT 11 SPACE (C-I) NOP NOT NOP DEFINED NOP BY NOP CHARACTERS NOP LFD OCT 12 LINE FEED VT OCT 13 BACK UP ARROW OCT 137 UNDERLINE ( AND A _ ON TTY ) (S-O) HCU OCT 15427 HARD COPY UNIT (C-S-K + C-W ) ALTCH OCT 16 ALTERNATIVE FONT (C-N) NORCH OCT 17 NORMAL FONT (C-O) * * TOP LEFT POSITION * BUF6 OCT 35 GS OUTPUT OCT 67 TOP Y BINARY OCT 177 LOW Y TO TOP OCT 40 'Q640 TOP X OF OCT 100 LOW X SCREEN OCT 37 US * * BINARY I/O : LOCAL BUFFERS * BUF1A OCT 15432 ESC+SUB CHAR. ON INPUT BUF1B OCT 15405 ESC+ENQ STAT. ON INPUT * BUF3 BSS 1 OUTPUT BUFFER BSS 1 FOR GRAPH * BUF5 BSS 1 INPUT BUFFER BSS 1 FOR GRAPH NOP * BUF7 BSS 1 STORED BSS 1 ALPHA BSS 1 POSITION * BUF4 OCT 17400 US+NULL TO ALPHA BUF8 OCT 16400 GS+NULL TO GRAPH * * ADDRESSES * BUFAA DEF BUF1A BUFAB DEF BUF1B BUFA3 DEF BUF3 BUFA4 DEF BUF4 BUFA5 DEF BUF5 BUFA6 DEF BUF6 BUFA8 DEF BUF8 BUFA7 DEF BUF7 HED ** SYSTEM BASE PAGE COMMUNICATION AREA ** * *** SYSTEM BASE PAGE COMMUNICATION AREA *** * .. EQU 53B N6 EQU ..-6 N5 EQU ..-5 N4 EQU ..-4 N2 EQU ..-2 N1 EQU ..-1 .0 EQU .. .1 EQU ..+1 .2 EQU ..+2 .3 EQU ..+3 .4 EQU ..+4 .5 EQU ..+5 .7 EQU ..+7 .10B EQU ..+8 .11B EQU ..+9 LINF EQU ..+10 .17 EQU ..+11 .100 EQU ..+12 .37 EQU ..+14 RUB EQU ..+16 MASK1 EQU ..+16 MASK2 EQU ..+17 MASK4 EQU ..+18 . EQU 100B ESTABLISH ORIGIN OF AREA * * * I/O MODULE/DRIVER COMMUNICATION * SYSTY EQU .+10 EQT ENTRY ADDRESS OF SYSTEM TTY EQTAB EQU .+15 LUTAB EQU .+17 EQT1 EQU .+67 EQT2 EQU .+68 EQT4 EQU .+70 EQT3 EQU .+69 EQT6 EQU .+72 EQT5 EQU .+71 EQT7 EQU .+73 EQT8 EQU .+74 EQT9 EQU .+75 EQT10 EQU .+76 EQT11 EQU .+77 EQT12 EQU .+78 EQT13 EQU .+79 EQT14 EQU .+80 EQT15 EQU .+81 EQT16 EQU .+82 EQT17 EQU .+83 * * * SYSTEM MODULE COMMUNICATION FLAGS * * OPATN EQU .+112 OPERATOR/KEYBOARD ATTENTION FLAG * * END 6FTN4,L SUBROUTINE SYMBL(XPAGE,YPAGE,IBCD,MWORDS) C TO PLOT A STRING OF ALPHANUMERIC CHARACTERS INTEGER XORG,YORG DIMENSION IBCD(1),IB(2) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IF(ICALL.NE.1) GO TO 99 XPAGE1 = XPAGE * 100.0 + XORG YPAGE1 = YPAGE * 100.0 + YORG IB(1) = IFIX(YPAGE1) IB(2) = IFIX(XPAGE1) IF(IB(1).GT.779.OR.IB(2).GT.1023) GO TO 5 IF(IB(1).LT.0.OR.IB(2).LT.0) GO TO 5 CALL EXEC(2,11101B,IB,2) II = IB(2)/14 NWORDS = (72-II)/2 C NWORDS IS NUMBER OF WORDS THAT CAN BE WRITTEN C IN FIRST LINE IF(NWORDS.GE.MWORDS) GO TO 3 WRITE(1,100) (IBCD(J),J=1,NWORDS) KWORDS = NWORDS + 1 100 FORMAT(36A2) WRITE(1,100) (IBCD(J),J=KWORDS,MWORDS) GO TO 4 3 WRITE(1,100) (IBCD(J),J=1,MWORDS) 4 RETURN 5 WRITE(6,101) 101 FORMAT(30H TRYING TO PLOT OFF THE SCREEN) STOP 11 99 WRITE(6,88) 88 FORMAT(32H SUBROUTINE START MUST BE CALLED) STOP 177 END SUBROUTINE SCALE(ARRAY,AXLEN,NPTS,INC,FIRSTV,DELTAV) C TO CALCULATE THE STARTING VALUE AND SCALING FACTOR FOR C DATA VALUES IN ARRAY INTEGER XORG,YORG DIMENSION ARRAY(1) COMMON XORG,YORG,ICALL,DIFFX,DIFFY ISW = 1 AMAX = 10.0**(-20.0) AMIN = 10.0**20.0 IF(INC.LE.0) INC=1 C WANT TO FIND MAXIMUM AND MINIMUM VALUES IN DATA DO 1 I = 1,NPTS,INC IF(ARRAY(I).GT.AMAX) AMAX = ARRAY(I) IF(ARRAY(I).LT.AMIN) AMIN = ARRAY(I) 1 CONTINUE C WANT TO DETERMINE DELTAV(NUMBER OF DATA UNITS PER UNIT OF C AXIS) 11 FACT1 = (AMAX-AMIN)/AXLEN DO 2 I = -10,10 FACT2 = ABS(FACT1)/(10.0**I) NN = I IF(FACT2.GE.1.0.AND.FACT2.LT.10.0) GO TO 3 2 CONTINUE WRITE(6,100) 100 FORMAT(25H NUMBERS TOO BIG TO SCALE) GO TO 8 3 IF(FACT2.EQ.1.0) DELTAV = 1.0 * 10.0**NN IF(FACT2.GT.1.0.AND.FACT2.LE.2.0) DELTAV = 2.0 * 10.0**NN IF(FACJT2.GT.2.0.AND.FACT2.LE.3.0) DELTAV = 3.0 * 10.0**NN IF(FACT2.GT.3.0.AND.FACT2.LE.5.0) DELTAV = 5.0 * 10.0**NN IF(FACT2.GT.5.0.AND.FACT2.LE.8.0) DELTAV = 8.0 * 10.0**NN IF(FACT2.GT.8.0) DELTAV = 10.0 * 10.0**NN IF(ISW.EQ.2) GO TO 10 C WANT TO DETERMINE STARTING VALUE OF SCALE,FIRSTV IF(AMIN.EQ.DELTAV) GO TO 4 IF(AMIN.LT.DELTAV) GO TO 5 N=0 6 N = N+1 FIRSTV = DELTAV + (N*DELTAV) IF(AMIN.GE.FIRSTV) GO TO 6 FIRSTV = FIRSTV - DELTAV GO TO 7 5 M=0 9 M = M+1 FIRSTV = DELTAV - (M*DELTAV) IF(AMIN.LT.FIRSTV) GO TO 9 GO TO 7 4 FIRSTV = DELTAV GO TO 7 8 STOP 61 7 AMIN = FIRSTV ISW = 2 GO TO 11 10 RETURN END SUBROUTINE PLOT(XPAGE,YPAGE,IPEN) C TO MOVE THE PLOTTER FROM ITS PRESENT POSITION TO ANOTHER C POSITION,RELATIVE TO THE LAST ESTABLISHED ORIGIN,GIVING C A DARK VECTOR AND ESTABLISHING A NEW ORIGIN IF DESIRED INTEGER XORG,YORG DIMENSION IB(2) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IF(ICALL.NE.1) GO TO 99 XPAGE1 = XPAGE * 100.0 YPAGE1 = YPAGE * 100.0 FX = XPAGE1 + XORG FY = YPAGE1 + YORG NEWX = IFIX(FX) NEWY = IFIX(FY) C ABOVE,CALCULATED POINT TO WHICH TO MOVE ON SCREEN,I.E. C (NEWX,NEWY) IB(1) = NEWY IB(2) = NEWX CALL EXEC(2,1101B,IB,2) IF(IPEN.GT.0) GO TO 1 XORG = NEWX YORG = NEWY 1 RETURN 99 WRITE(6,88) 88 FORMAT(32H SUBROUTINE START MUST BE CALLED) STOP 277 END SUBROUTINE AXIS(XPAGE,YPAGE,IDIR,AXLEN,ANGLE,FIRSTV,DELTAV) C TO DRAW ANY LENGTH LINE WITHIN LIMITS OF SCREEN,DIVIDE IT C INTO UNIT INTERVALS (AND GIVE VALUES AT THE DIVISIONS FOR C AXES WHICH ARE HORIZONTAL OR VERTICAL ONLY) INTEGER XORG,YORG DIMENSION IBUF(4) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IF(ICALL.NE.1) GO TO 99 C CONVERT STARTING Ab=ND FINISHING POINTS ON AXIS INTO COORDS. C OF SCREEN RANGL = (ANGLE * 2.0 * 3.14159)/360.0 XPAGE1 = XPAGE * 100.0 + XORG YPAGE1 = YPAGE * 100.0 + YORG XPAGE2 = XPAGE1 + (AXLEN * 100.0 * COS(RANGL)) YPAGE2 = YPAGE1 + (AXLEN * 100.0 * SIN(RANGL)) C DRAW AXIS LINE ON SCREEN IBUF(1) = IFIX(YPAGE1) IBUF(2) = IFIX(XPAGE1) IBUF(3) = IFIX(YPAGE2) IBUF(4) = IFIX(XPAGE2) CALL EXEC(2,1101B,IBUF,4) C WANT TO DRAW TICK MARKS ON AXIS AT ONE UNIT INTERVALS, C AND LABEL THEM IF AXIS IS HORIZONTAL OR VERTICAL DO 22 KK = -10,10 FNN = ABS(DELTAV)/(10.0**KK) NN = KK IF(FNN.GE.1.0.AND.FNN.LT.10.0) GO TO 23 22 CONTINUE WRITE(6,104) 104 FORMAT(25H NUMBERS TOO BIG TO SCALE) STOP 31 23 DEL = DELTAV/10.0**NN FIR = FIRSTV/10.0**NN IF(ANGLE.NE.90.0.AND.ANGLE.NE.0.0) GO TO 30 IF(ANGLE.EQ.90.0) GO TO 40 C ANGLE = 0.0,I.E. X-AXIS UNDER CONSIDERATION XX = (FIRSTV/DELTAV)*100.0 + XORG DIFFX = XX - XPAGE1 IF(XX.NE.XPAGE1) XX = XPAGE1 Y3 = YPAGE1 Y4 = Y3 + (ISIGN(1,IDIR)*10.0) DO 21 I = 1,20 X3 = XX + ((I-1)*100.0) X4 = X3 IF(X3.LT.XPAGE1.OR.Y3.LT.YPAGE1) GO TO 21 IF(X3.GT.XPAGE2.OR.Y3.GT.YPAGE2) GO TO 25 IF(X3.GT.1023.0.OR.Y3.GT.779.0) GO TO 25 IF(X4.GT.1023.0.OR.Y4.GT.779.0) GO TO 25 IBUF(1) = IFIX(Y3) IBUF(2) = IFIX(X3) IBUF(3) = IFIX(Y4) IBUF(4) = IFIX(X4) CALL EXEC(2,1101B,IBUF,4) IBUF(1) = IBUF(1) - 25 IBUF(2) = IBUF(2) - 28 CALL EXEC(2,11101B,IBUF,2) PR = DEL*(I-1) + FIR WRITE(1,110) PR 110 FORMAT(F4.1) 21 CONTINUE 25 IF(NN.EQ.0) GO TO 5 IBUF(1) = 25 IBUF(2) = 0 CALL EXEC(2,11101B,IBUF,2) WRITE(1,102) NN 102 FORMAT(32HX SCALE TO BE MULTIPLIED BY 10**,I3) GO TO 5 C ANGLE = 90.0,I.E. Y-AXIS UNDER CONSIDERATION 40 YY = (FIRSTV/DELTAV)*100 .0 + YORG DIFFY = YY - YPAGE1 IF(YY.NE.YPAGE1) YY = YPAGE1 X3 = XPAGE1 X4 = X3 - (ISIGN(1,IDIR)*10.0) DO 41 I = 1,20 Y3 = YY + ((I-1)*100.0) Y4 = Y3 IF(X3.LT.XPAGE1.OR.Y3.LT.YPAGE1) GO TO 41 IF(X3.GT.XPAGE2.OR.Y3.GT.YPAGE2) GO TO 45 IF(X3.GT.1023.0.OR.Y3.GT.779.0) GO TO 45 IF(X4.GT.1023.0.OR.Y4.GT.779.0) GO TO 45 IBUF(1) = IFIX(Y3) IBUF(2) = IFIX(X3) IBUF(3) = IFIX(Y4) IBUF(4) = IFIX(X4) CALL EXEC(2,1101B,IBUF,4) IBUF(2) = IBUF(2) - 56 CALL EXEC(2,11101B,IBUF,2) PR = DEL*(I-1) + FIR WRITE(1,110) PR 41 CONTINUE 45 IF(NN.EQ.0) GO TO 5 IBUF(1) = 25 IBUF(2) = 0 CALL EXEC(2,11101B,IBUF,2) WRITE(1,103) NN 103 FORMAT(36X,32HY SCALE TO BE MULTIPLIED BY 10**,I3) GO TO 5 C AXES WHICH ARE NOT HORIZONTAL OR VERTICAL 30 DO 1 I = 1,10 X3 = XPAGE1 + ((I-1) *100.0 * COS(RANGL)) Y3 = YPAGE1 + ((I-1) * 100.0 * SIN(RANGL)) IF(X3.GT.XPAGE2.OR.Y3.GT.YPAGE2) GO TO 5 IF(X3.GT.1023.0.OR.Y3.GT.779.0) GO TO 5 X4 = X3 - (ISIGN(1,IDIR) * 10.0 * SIN(RANGL)) Y4 = Y3 + (ISIGN(1,IDIR) * 10.0 * COS(RANGL)) IF(X4.GT.1023.0.OR.Y4.GT.779.0) GO TO 5 IBUF(1) = IFIX(Y3) IBUF(2) = IFIX(X3) IBUF(3) = IFIX(Y4) IBUF(4) = IFIX(X4) CALL EXEC(2,1101B,IBUF,4) 1 CONTINUE 5 RETURN 99 WRITE(6,88) 88 FORMAT(32H SUBROUTINE START MUST BE CALLED) STOP 377 END SUBROUTINE DRAW(XARRAY,YARRAY,MPTS,INC,LINTYP,DELTAX,DELTAY) C TO PRODUCE A LINE PLOT OF DATA VALUES IN THE ARRATS, C XARRAY,YARRAY INTEGER XORG,YORG DIMENSION XARRAY(1),YARRAY(1),IBUF(4) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IF(ICALL.NE.1) GO TO 99 KK = MPTS - 1 DO 1 I = 1,KK,INC X1 = (XARRAY(I)/DELTAX)*100.0 + XORG - DIFFX J = I+INC X2 = (XARRAY(J)/DELTAX)*100.0 + XORG - DIFFX Y1 = (^YARRAY(I)/DELTAY)*100.0 + YORG - DIFFY Y2 = (YARRAY(J)/DELTAY)*100.0 + YORG - DIFFY IBUF(1) = IFIX(Y1) IBUF(2) = IFIX(X1) IBUF(3) = IFIX(Y2) IBUF(4) = IFIX(X2) IF(IBUF(1).LT.0.OR.IBUF(2).LT.0) GO TO 2 IF(IBUF(3).LT.0.OR.IBUF(4).LT.0) GO TO 2 IF(IBUF(1).GT.779.OR.IBUF(3).GT.779) GO TO 2 IF(IBUF(2).GT.1023.OR.IBUF(4).GT.1023) GO TO 2 C DRAW LINE OR POINT AS REQUIRED IF(LINTYP.LT.0) GO TO 22 C LINE REQUIRED BETWEEN POINTS CALL EXEC(2,1101B,IBUF,4) GO TO 1 C ONLY POINTS REQUIRED 22 IF(I.EQ.1) GO TO 3 4 IBUF(1) = IBUF(3) IBUF(2) = IBUF(4) CALL EXEC(2,1101B,IBUF,4) GO TO 1 3 ISTOR1 = IBUF(3) ISTOR2 = IBUF(4) IBUF(3) = IBUF(1) IBUF(4) = IBUF(2) CALL EXEC(2,1101B,IBUF,4) IBUF(3) = ISTOR1 IBUF(4) = ISTOR2 GO TO 4 1 CONTINUE GO TO 5 2 WRITE(6,100) 100 FORMAT(30H TRYING TO PLOT OFF THE SCREEN) STOP 41 99 WRITE(6,88) 88 FORMAT(32H SUBROUTINE START MUST BE CALLED) STOP 477 5 RETURN END SUBROUTINE START C TO INITIALISE PLOTTER AT LOWER LEFT HAND CORNER OF SCREEN INTEGER XORG,YORG COMMON XORG,YORG,ICALL,DIFFX,DIFFY ENDFILE 1 DIFFX = 0.0 DIFFY = 0.0 ICALL = 1 XORG = 0 YORG = 0 RETURN END SUBROUTINE NUMBR(XPAGE,YPAGE,FPN,MDEC) C TO PLOT A FLOATING POINT NUMBER INTEGER XORG,YORG DIMENSION IB(2) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IF(ICALL.NE.1) GO TO 99 NDEC = MDEC XPAGE1 = XPAGE * 100.0 + XORG YPAGE1 = YPAGE * 100.0 + YORG IB(1) = IFIX(YPAGE1) IB(2) = IFIX(XPAGE1) C CALCULATE NUMBER OF PLACES BEFORE POINT,NP IF(FPN.LT.1.0) GO TO 22 DO 21 I = 1,9 NP = I IF(FPN.LT.10.0**I) GO TO 23 21 CONTINUE WRITE(6,100) 100 FORMAT(37H TOO MANY PLACES BEFORE DECIMAL POINT)  STOP 51 22 NP = 0 23 IP = 9 - NDEC - NP IB(2) = IB(2) - (14*IP) IF(IB(1).GT.779.OR.IB(2).GT.1023) GO TO 26 IF(IB(1).LT.0.OR.IB(2).LT.-120) GO TO 26 CALL EXEC(2,11101B,IB,2) IF(NDEC.GT.9) GO TO 24 IF(NDEC.LE.0) NDEC = 10 IF(NDEC.EQ.1) WRITE(1,1) FPN IF(NDEC.EQ.2) WRITE(1,2) FPN IF(NDEC.EQ.3) WRITE(1,3) FPN IF(NDEC.EQ.4) WRITE(1,4) FPN IF(NDEC.EQ.5) WRITE(1,5) FPN IF(NDEC.EQ.6) WRITE(1,6) FPN IF(NDEC.EQ.7) WRITE(1,7) FPN IF(NDEC.EQ.8) WRITE(1,8) FPN IF(NDEC.EQ.9) WRITE(1,9) FPN IF(NDEC.EQ.10) WRITE(1,10) FPN 1 FORMAT(F10.1) 2 FORMAT(F10.2) 3 FORMAT(F10.3) 4 FORMAT(F10.4) 5 FORMAT(F10.5) 6 FORMAT(F10.6) 7 FORMAT(F10.7) 8 FORMAT(F10.8) 9 FORMAT(F10.9) 10 FORMAT(F10.0) GO TO 25 24 WRITE(6,101) 101 FORMAT(36H TOO MANY PLACES AFTER DECIMAL POINT) STOP 52 26 WRITE(6,102) 102 FORMAT(30H TRYING TO PLOT OFF THE SCREEN) STOP 53 99 WRITE(6,88) 88 FORMAT(32H SUBROUTINE START MUST BE CALLED) STOP 577 25 RETURN END SUBROUTINE SORT(XX,YY,MPTS,XSORT,YSORT) C TO SORT DATA IN ARRAYS XARRAY,YARRAY, SO THAT DATA C IN XARRAY IS IN ASCENDING ORDER INTEGER XORG,YORG DIMENSION XARRAY(500),YARRAY(500) DIMENSION XSORT(1),YSORT(1) DIMENSION XX(1),YY(1) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IF(MPTS.GT.500) GO TO 98 DO 3 I = 1,MPTS XARRAY(I) = XX(I) YARRAY(I) = YY(I) 3 CONTINUE N = 1 M = MPTS 6 MIN = 0 MAX = 0 AMIN = 10.0**20.0 AMAX = 10.0**(-20.0) IF(N.EQ.M) GO TO 1 IF(N.GT.M) GO TO 2 DO 5 J = N,M I = J IF(XARRAY(I).GT.AMAX) MAX = I IF(XARRAY(I).LT.AMIN) MIN = I IF(XARRAY(I).GT.AMAX) AMAX = XARRAY(I) IF(XARRAY(I).LT.AMIN) AMIN = XARRAY(I) 5 CONTINUE IF(MIN.EQ.MAX) GO TO 4 XSORT(]N) = XARRAY(MIN) YSORT(N) = YARRAY(MIN) XSORT(M) = XARRAY(MAX) YSORT(M) = YARRAY(MAX) XARRAY(MIN) = XARRAY(N) YARRAY(MIN) = YARRAY(N) XARRAY(MAX) = XARRAY(M) YARRAY(MAX) = YARRAY(M) N = N+1 M = M-1 GO TO 6 1 K = (MPTS+1)/2 XSORT(K) = XARRAY(M) YSORT(K) = YARRAY(M) 2 RETURN 4 WRITE(6,100) 100 FORMAT(33H MINIMUM AND MAXIMUM SAME NUMBER?) STOP 71 98 WRITE(6,101) 101 FORMAT(16H TOO MANY POINTS) STOP 72 END SUBROUTINE FINIS INTEGER XORG,YORG DIMENSION IB(2) COMMON XORG,YORG,ICALL,DIFFX,DIFFY IB(1) = 760 IB(2) = 700 ICALL = 0 CALL EXEC(2,11101B,IB,2) RETURN END SUBROUTINE HIST(XARRAY,NPTS,XMIN,XMAX,MR,XAXLEN,YAXLEN,IC,IP) C TO DRAW HISTOGRAMS,GIVEN ARRAY OF POINTS AND NUMBER OF RANGES INTEGER XORG,YORG DIMENSION XARRAY(1),FNR(30),RANGE(31),PC(30) DIMENSION IB(4) COMMON XORG,YORG,ICALL,DIFFX,DIFFY C C XMIN,XMAX ARE SET TO THE STARTING AND FINISHING VALUES C FOR THE X-SCALE. IF THESE ARE NOT SPECIFIED,XMIN AND XMAX C SHOULD BOTH BE SET TO -1.0, AND THE PROGRAM WILL C CALCULATE SUITABLE VALUES BY CALCULATING THE C MAXIMUM AND MINIMUM VALUES IN THE ARRAY,XARRAY. C IC SHOULD BE SET TO 1 IF WANT NORMAL CURVE FITTED C AND TO -1 IF DO NOT WANT NORMAL CURVE FITTED C IP IS SET TO 1,IF WANT %'S ON Y SCALE C IP IS SET NE 1, IF WANT NOS ON Y SCALE C IF(ICALL.NE.1) GO TO 99 IF(MR.GT.30) GO TO 98 XORG = 0 YORG = 0 CALL PLOT(1.0,1.0,-1) IF(XMIN.EQ.-1.0.AND.XMAX.EQ.-1.0) GO TO 13 XST = XMIN XEND= XMAX ALIM = (XEND-XST)/MR XDEL = (XEND-XST)/XAXLEN GO TO 14 13 CALL SCALE(XARRAY,XAXLEN,NPTS,1,XST,XDEL) XEND = XST + XAXLEN*XDEL ALIM = (XEND-XST)/MR 14 DO 1 I = 1,MR+1 1 RANGE(I) = XST+((I-1)*ALIM) DO 2 I = 1,MܵR 2 FNR(I) = 0.0 DO 3 J = 1,NPTS DO 3 I = 1,MR IF(XARRAY(J).GE.RANGE(I).AND.XARRAY(J).LT.RANGE(I+1)) / FNR(I) = FNR(I) + 1.0 3 CONTINUE TOTAL = 0.0 DO 20 I = 1,MR 20 TOTAL = TOTAL + FNR(I) DO 21 I = 1,MR 21 PC(I) = (FNR(I)/TOTAL) * 100.0 DO 30 I = 1,MR 30 WRITE(6,104) RANGE(I),RANGE(I+1),FNR(I),PC(I) 104 FORMAT(21H GREATER OR EQUAL TO ,F8.2,13H , LESS THAN , *F8.2,11H , NUMBER =,F6.0,3X,F6.2,1H%) IF(IP.NE.1) GO TO 23 C TRANSFER PERCENTAGES INTO ARRAY TO BE SCALED DO 25 I = 1,MR 25 FNR(I) = PC(I) 23 CALL SCALE(FNR,YAXLEN,MR,1,YST,YDEL) C DRAW Y AXIS CALL AXIS(0.0,0.0,1,YAXLEN,90.0,YST,YDEL) IB(1) = 100 IB(2) = 100 IB(3) = 100 IB(4) = 100 + IFIX(XAXLEN*100.0) C DRAW X AXIS CALL EXEC(2,1101B,IB,4) XX = (RANGE(1)/XDEL)*100.0 + XORG IF(XX.NE.100.0) DIFFX = XX-100.0 C DRAW HISTOGRAM DO 4 I = 1,MR IF(FNR(I).EQ.0.0) GO TO 4 IB(2) = IFIX((RANGE(I)/XDEL)*100.0 + XORG - DIFFX) IB(1) = YORG IB(4) = IB(2) IB(3) = IFIX((FNR(I)/YDEL)*100.0 + YORG - DIFFY) CALL EXEC(2,1101B,IB,4) IB(1) = IB(3) IB(4) = IFIX((RANGE(I+1)/XDEL)*100.0 + XORG - DIFFX) CALL EXEC(2,1101B,IB,4) IB(2) = IB(4) IB(3) = YORG CALL EXEC(2,1101B,IB,4) 4 CONTINUE DO 6 KK = -10,10 FNN = ABS(XDEL)/(10.0**KK) NN = KK IF(FNN.GE.1.0.AND.FNN.LT.10.0) GO TO 7 6 CONTINUE GO TO 97 7 IB(1) = 25 IB(2) = 0 IF(NN.EQ.0) GO TO 11 CALL EXEC(2,11101B,IB,2) WRITE(1,102) NN 102 FORMAT(32HX SCALE TO BE MULTIPLIED BY 10**,I3) 11 JJ = 1 DIST = (ALIM/XDEL)*100.0 IF(DIST.LT.84.0) JJ = 3 DO 5 I = 1,MR+1,JJ IB(1) = 75 FI = FLOAT(I) J = I/2 FJ = FI/2.0 IF(FLOAT(J).EQ.FJ) IB(1) = 50 IB(2) = IFIX((RANGE(I)/XDEL)*100.0 + XORG - DIFFX) 640 IB(2) = IB(2) - 35 CALL EXEC(2,11101B,IB,2) PR = RANGE(I)/10.0**NN WRITE(1,110) PR 110 FORMAT(F5.2) 5 CONTINUE C CALCULATE NORMAL CURVE IF REQUIRED SUMX = 0.0 SUMX2 = 0.0 NT = 0 DO 15 I = 1,NPTS IF(XARRAY(I).LT.XST) GO TO 15 IF(XARRAY(I).GE.XEND) GO TO 15 SUMX = SUMX + XARRAY(I) SUMX2 = SUMX2 + XARRAY(I)*XARRAY(I) NT = NT + 1 15 CONTINUE IF(NT.NE.IFIX(TOTAL)) WRITE(6,200) NT,TOTAL 200 FORMAT(10X,I6,10X,F8.2) VAR = 1.0/(TOTAL-1.0)*(SUMX2-SUMX**2.0/TOTAL) SD = SQRT(VAR) XMEAN = SUMX/TOTAL IF(IC.NE.1) GO TO 12 X = XST AREA = TOTAL * ALIM IF(IP.EQ.1) AREA = 100.0 FXP = EXP(-0.5*((X-XMEAN)/SD)**2) Y = (AREA*FXP)/(SD*SQRT(2.0*3.14159)) IB(1) = IFIX((Y/YDEL)*100.0 + YORG - DIFFY) IB(2) = IFIX((X/XDEL)*100.0 + XORG - DIFFX) 17 X = X+ALIM/10.0 IF(X.GT.XEND) GO TO 12 FXP = EXP(-0.5*((X-XMEAN)/SD)**2) Y = (AREA*FXP)/(SD*SQRT(2.0*3.14159)) IB(3) = IFIX((Y/YDEL)*100.0 + YORG - DIFFY) IB(4) = IFIX((X/XDEL)*100.0 + XORG - DIFFX) CALL EXEC(2,1101B,IB,4) IB(1) = IB(3) IB(2) = IB(4) GO TO 17 12 WRITE(6,105) TOTAL 105 FORMAT(/53X,8H TOTAL =,F6.0) WRITE(6,106) XMEAN,SD,VAR 106 FORMAT(/7H MEAN =,F9.4/21H STANDARD DEVIATION =,F9.4/ *11H VARIANCE =,F9.4/////) RETURN 99 WRITE(6,88) 88 FORMAT(32H SUBROUTINE START MUST BE CALLED) STOP 1077 98 WRITE(6,87) 87 FORMAT(16H TOO MANY RANGES) STOP 101 97 WRITE(6,86) 86 FORMAT(25H NUMBERS TOO BIG TO SCALE) STOP 102 END END$ l6ASMB,R,B,L,T,C NAM BITOP,7 * * PROGRAM BY ALLAN SHERMAN 12/30/69 * H-P MEDICAL ELECTRONICS DIVISION, WALTHAM, MASS. * * * FORTRAN CALLABLE SUBROUTINES AND FUNCTION TO SET, * CLEAR, OR TEST ANY BIT IN ANY SPECIFIED WORD. * * FORTRAN CALLS: * * CALL SBIT(N,WORD) SETS BIT N * CALL CBIT(N,WORD) CLEARS BIT N * IBIT(N,WORD) FUNCTION WHICH TRANSMITS WORD * ROTATED WITH BIT N IN THE SIGN * BIT POSITION * * * WHERE * N=BIT NUMBER (0 TO 15) * WORD=ADDRESS OF WORD TO BE USED * * * EXAMPLE: * BIT N IN WORD INT(5) MAY BE TESTED BY A FORTRAN IF STATEMENT: * * IF (IBIT(N,INT(5)) 10,20 * GOES TO 10 IF BIT N = 1 * GOES TO 20 IF BIT N = 0 * * ENT IBIT,SBIT,CBIT EXT .ENTR IBIT NOP LDA IBIT JSB GET LDA N,I CMA LDB WORD,I RBR INA,SZA JMP *-2 LDA 1 JMP RTN,I SBIT NOP LDA SBIT JSB GET JSB ROT IOR WORD,I SET BIT N STA WORD,I JMP RTN,I CBIT NOP LDA CBIT JSB GET JSB ROT ROTATE MASK CMA COMPLEMENT MASK AND WORD,I CLEAR BIT N STA WORD,I JMP RTN,I * GET NOP STA RTN JMP RTN+1 N NOP WORD NOP RTN NOP JSB .ENTR DEF N JMP GET,I ROT NOP ROTATES MASK TO 1 IN BIT N LDB N,I CLA,INA FORMS MASK=1 CMB COUNTER LOOP INB,SZB,RSS JMP ROT,I DONE; EXIT RAL JMP LOOP * END ASMB,R,L,T,B,C NAM TIMER,7 * * * SUBROUTINE TIMER * * THIS SUBROUTINE EXECUTES A WAIT OF * N MILLISECONDS. N INTEGER. * * * FORTRAN CALL WAIT(N) * * ALGOL PROCEDURE AWAIT(N); * INTEGER ; CODE; * * CALL BY AWAIT. * * ASSEMBLER EXT WAIT * # : * JSB WAIT * DEF *+2 * DEF N * : * N BSS 1 * * * * IF N<0 THE ERR0 MESSAGE '50 OR' IS PRINTED * * IE ROUTINE 50, N OUT OF RANGE * * * IF BOTH TIME INSTRUCTIONS ARE INDIRECT * ERR0 MESSAGE '50 TI' IS PRINTED (TI=TIME ERROR) * * *************************************************** ENT AWAIT ENT WAIT EXT .ENTR EXT .PRAM EXT ERR0 TIM NOP WAIT NOP FORTRAN ASSEMBLER ENTRY POINT JSB .ENTR PASS TIME DEF TIM PARAMETER FORTRAN/ASSEMBLER JSB WAIT1 JMP WAIT,I AWAIT NOP ALGOL ENTRY POINT JSB .PRAM OCT 2000 CODE WORD PRAM BSS 1 LDA PRAM STA TIM JSB WAIT1 JMP AWAIT,I WAIT1 NOP LDB TIM,I LESS SSB ZERO? JMP ERROR YES CMB NO LDA BOUND IS 1ST TIMER SSA,RSS ON PAGE JMP EWAIT BOUND - NO LDA LINK YES - CHECK SSA OTHER JMP EROR TIMER * FWAIT INB,SZB,RSS END OF TIME? JMP WAIT1,I RETURN LDA M310 LOAD COUNT INA,SZA COUNT LINK JMP *-1 1 MSEC JMP FWAIT NEXT M SEC * M310 DEC -310 * EWAIT INB,SZB,RSS REPEAT OF JMP WAIT1,I ABOVE-USED LDA M310 IF NOT ON A INA,SZA PAGE BOUNDARY BOUND JMP *-1 AT BOUND JMP EWAIT * ERROR LDB ETYP ERRR LDA RID JSB ERR0 EMIT ERROR MESSAGE JMP WAIT1,I RETURN EROR LDB EETYP JMP ERRR RID ASC 1,50 ROUTINE # ETYP ASC 1,OR OUT OF RANGE ERROR EETYP ASC 1,TI TIMING ERROR BY INDIRECTION END END$ > FTN4,L PROGRAM TEX DIMENSION IB1(7),IB2(256),IB3(14),IB4(14),IB5(1024),IB6(1024) DIMENSION IT(7) DATA IB1/0,177400B,377B,-1,0,377B,177600B/ DATA IB3/0,0,141600B,0,0,177700B,141600B,177700B,0,0,0,177700B, ,141600B,100000B/ DATA IB4/0,0,780,0,0,1023,780,1023,0,0,0,1023,780,512/ DO 1001 J=1,1024 X=J-1 X=SIN(X/100.0)**2 IF(J.GT.256) GO TO 1004 N=X*255 IB2(J)=N*256 1004 N=X*780.0 IB5(J)=N*64 1001 IB6(J)=N WRITE(6,123) 123 FORMAT(" J W RES BOT YXYX PACKD ", ," SET G SET ASCII"/) ENDFILE 1 READ(6,*)MS DO 1000 J=MS,127 J1=IBIT(1,IAND(J,34B)) IC=IOR(101B,J*128) DO 1011 L=1,7 IT(L)=2HY 1011 IF (IBIT(7-L,J).LT.0) IT(L)=2HN WRITE(6,1111)J,IT 1111 FORMAT(K4,1X,7(3X,A2,2X)) GO TO (1,4,2,6,1,3,2,5) J1+1 1 CALL EXEC(2,IC,IB1,7) GO TO 1003 2 CALL EXEC(2,IC,IB2,256) GO TO 1003 3 CALL EXEC(2,IC,IB3,14) GO TO 1003 4 CALL EXEC(2,IC,IB4,14) GO TO 1003 5 CALL EXEC(2,IC,IB5,1024) GO TO 1003 6 CALL EXEC(2,IC,IB6,1024) 1003 CALL WAIT(8000) WRITE(6,10) 10 FORMAT("?_") READ(6,*)LOG IF(LOG.EQ.1) ENDFILE 1 1000 CONTINUE ENDFILE 1 END END$ FTN4,L PROGRAM TEXT DIMENSION ICB(5),IB(50) CALL DUMM WRITE(1,37) 37 FORMAT("ENTER 1 TO SET UP DVR76, OTHERWISE 0 ") READ(1,*)ID IF(ID.NE.1) GO TO 38 PAUSE 38 WRITE(1,100) 100 FORMAT("ENTER LOGICAL UNIT _") READ(1,*) LU GO TO 2001 1000 WRITE(1,101) 101 FORMAT("ENTER RCODE_") READ(1,*) IR GO TO (1001,1001,1002)IR C C READ/WRITE C 1001 WRITE(1,102) 102 FORMAT("ENTER 1 FOR BINARY , 0 ASCII _") READ(1,*) MBIT IF(MBIT.EQ.0) GO TO 1004 IF(IR.EQ.1) GO TO 1005 C C OUTPUT BINARY C WRITE(1,103) 103 FORMAT("ENTER CONWD BITS 7 - 13 _") READ(1,*)IQ,IW,ICB IF(IQ.EQ.1)CALLSBIT(7,IC) IF(IW.EQ.1)CALL SBIT(8,IC) CALL ICON(MBIT,KBIT,ICB,LU,IC) WRITE(1,105) READ(1,*) LB IF(ICB(2).EQ.1) GO TO 1007 WRITE(1,108) 108 FORMAT("ENTER Y AND X COORDS") DO 1 J =1,LB READ(1,*) IY,IX IF(ICB(1).EQ.1) GO TO 1006 IB(J) = IY*256 + IX GO TO 1 1006 IB(J) = IY J = J + 1 IB(J) = IX 1 CONTINUE GO TO 1008 1007 WRITE(1,109) 109 FORMAT("ENTER Y VALUES") DO 2 J = 1,LB READ(1,*) IY IF (ICB(1).EQ.0) IY=IY*256 2 IB(J) = IY 1008 IF(ICB(3).EQ.0.OR.ICB(1).EQ.0) GO TO 1009 DO 3 J = 1,LB 3 IB(J) = IBIT(9,IB(J)) WRITE(1,83)(IB(LO),LO=1,LB) 83 FORMAT(K6) 1009 CALL EXEC(IR,IC,IB,LB) GO TO 2000 C C INPUT BINARY C 1005 WRITE(1,104) 104 FORMAT("ENTER CONWD BITS 9,12,13 _") READ(1,*) ICB(1),ICB(4),ICB(5) CALL ICON(MBIT,KBIT,ICB,LU,IC) WRITE(1,105) 105 FORMAT("ENTER BUFFER LENGTH(WORDS) _") READ(1,*) LB CALL EXEC(IR,IC,IB,LB) WRITE(1,106) (IB(J),J=1,LB-1) 106 FORMAT(10X,"Y",5X,"X"//25(6X,I6,2X,I6/)) WRITE(1,107) IB(LB),IB(LB) 107 FORMAT(//"CHAR/STATUS = "K7" OR "A2/) GO TO 2000 C C ASCII C 1004 WRITE(1,110) 110 FORMAT("ENTER W-BIT AND KBIT _") READ(1,*) ICB(5),KBIT CALL ICON(MBIT,KBIT,ICB,LU,IC) WRITE(1,111) 111 FORMAT("ENTER BUFFER LENGTH(CHARS) _") READ(1,*) LB LB = -LB IF(IR.EQ.1) GO TO 1010 WRITE(1,112) 112 FORMAT("ENTER CHARACTER STRING") READ(1,113) IB 113 FORMAT(50A2) CALL EXEC(IR,IC,IB,LB) GO TO 2000 1010 CALL EXEC(IR,IC,IB,LB) LB=(-LB+1)/2 WRITE(1,114) (IB(J),J=1,LB) 114 FORMAT(/,"INPUT STRING IS"//50A2) GO TO 2000 C C CONTROL C 1002 WRITE(1,115) 115 FORMAT("ENTER FUNCTION,PARAMETER AND W-BITS _") READ(1,*) IF,IP,IW IC = IOR(IBIT(9,IF),LU) IF% (IW.EQ.1) CALL SBIT(13,IC) WRITE(1,67)IC 67 FORMAT("IC= "K6) CALL EXEC(IR,IC,IP) C C END TRANSFER C 2000 CALL EXEC(13,LU,IS,LOG) WRITE(1,120) IS,LOG 120 FORMAT("STATUS ="K6"LOG. ="I6/) 2001 DO 2003 J=1,5 2003 ICB(J) = 0 DO 2004 J = 1,50 2004 IB(J) = 0 MBIT = 0 KBIT = 0 IW=0 IQ=0 IC=0 GO TO 1000 END SUBROUTINE ICON(MBIT,KBIT,ICB,LU,IC) DIMENSION ICB(5) IF (MBIT.EQ.1) CALLSBIT(6,IC) IF (KBIT.EQ.1) CALL SBIT(8,IC) DO 1 J=1,5 1 IF (ICB(J).EQ.1) CALL SBIT(J+8,IC) IC=IOR(IC,LU) WRITE(1,56)IC 56 FORMAT("IC= "K6) RETURN END END$ ( ) 22681-18025 1500 SC 0322 RTE DISC FILE SORT (DSORT)             H0103 ASMB,R,B,L,C NAM DSORT,7 ENT DSORT EXT EXEC,QSORT SUP * * DISK SORT EXTERNAL SUBROUTINE. ***** LIMITATIONS: * 1. RECORD LENGTH LESS THAN OR EQUAL TO 64, * 2. ONLY ONE SORT FIELD, * 3. ASCENDING SORT ONLY. * 4. EOF INDICATED BY $$ AFTER LAST RECORD. ***** LOGIC: * 1. ALLOCATE SCRATCH TRACKS. * 2. READ SORTIN RECORDS TO MAX OF 1000 WORDS, * CALL QSORT TO SORT THIS RUN, WRITE RUN TO * SCRATCH TRACKS. * 3. EOF ON SORTIN? NO, GO TO 2. * 4. PERFORM TWO-WAY MERGES ON ENTIRE FILE OF * SORTED RUNS, FOR AS MANY PASSES AS ARE * REQUIRED TO END UP WITH FINAL SORTED FILE. * 5. DEPENDING ON INPUT PARAMETERS, WRITE SORTOUT * FILE OVER SORTIN FILE, OR PASS BACK ADDRESS * OF SORTOUT. RETURN TO CALLING PROGRAM. * ***** LINKAGE: * JSB DSORT *P1 DEF UNIT SORTIN LOGICAL UNIT # *P2 DEF STRK SORTIN STARTING TRACK # *P3 DEF LRECL SORTIN RECORD LENGTH IN WORDS *P4 DEF SRTOF OFFSET OF SORT FIELD IN WORDS (START WITH ZERO) *P5 DEF SRTLN LENGTH OF SORT FIELD IN WORDS *P6 DEF MXRC MAXIMUM # RECORDS IN SORTIN (USED FOR TRK ALLOC) *P7 DEC 1 IF WANT SORTED FILE WRITTEN OVER SORTIN (ELSE 0) *P8 DEC 1 IF RECORDS CONTINUE ACROSS SECTOR & TRACK * BOUNDARIES. DEC 0 IF RECORDS ARE CONTAINED * WITHIN SECTORS. * (RETURN) * * IF TAPE INPUT, GIVE BLOCKING FACTOR ON TAPE IN P8. * THERE MUST BE LE 2000 WORDS IN A BLOCK. ***** IF P7 IS 0, DSORT WILL RETURN PARAMETERS TO * CALLING PROGRAM IN P6, P7, AND P8. * P6 WILL CONTAIN THE NUMBER OF TRACKS IN SORTOUT * WHICH THE CALLING PROGRAM SHOULD RELEASE. * P7 WILL CONTAIN THE ADDRESS OF THE SORTOUT * LOGICAL UNIT NUMBER. * P8 WILL CONTAIN THE ADDRESS OF THE SORTOUT * STARTING TRACK NUMBER. * IF P7 IS 1, DSORT WILL NOT ALTER THE CONTENTS OF P7 AND P8. * * HED DSORT INITIAL PAxRAMETER PROCESSING DSORT NOP LDB PARMS ADDR OF PARAMETER STORAGE GETPM LDA DSORT,I STA 1,I ISZ DSORT INB ISZ MIN8 8 PARAMETERS PASSED JMP GETPM LDA =D-8 STA MIN8 LDA P8 SZA,RSS COMPUTATION OF RUN SIZE JMP CHGRL LDA LRECL,I MPY P8 PHYSICAL RECORD LENGTH STA PHYSL LDA MAXRS MAX ALLOWABLE RUN SIZE CLB DIV PHYSL STA RECPR # RECORDS PER RUN LDA MAXRS CMB,INB ADA 1 STA RUNSZ ACTUAL RUN SIZE IN WORDS LDA RECPR STA TPLPL TAPE READ LOOP LENGTH MPY P8 STA RECPR LDA RUNSZ * * COMPUTATION OF SCRATCH TRACKS NEEDED * COMP2 CLB DIV =D64 SZB INA STA SECPR # SECTORS / RUN (ROUNDED UP) LDA MAXRC,I CLB DIVIDE MAX # RECS IN FILE BY # DIV RECPR RECS PER RUN, GIVING MAX # RUNS. SZB INA STA RUNSF MPY SECPR MULT BY # SECTORS PER RUN CLB DIV =D128 COMPUTE # TRACKS MAX FOR FILE SZB INA STA TRKSF ALS MULT BY 2 - NEED 2 WORK AREAS STA TRKGL SKP * ALLOCATE SCRATCH TRACKS JSB EXEC DEF *+6 DEF D15 GLOBAL ALLOC. DEF TRKGL DEF XTRAK DEF XDISC DEF LSORT * LDA XDISC STA XDIS2 STA ZDISC LDA XTRAK STA XTRK2 SAVE STARTING TRACK # OF WORK01 * ADA TRKSF STA ZTRAK MIDDLE OF TRACK ALLOC IS STA ZTRK2 STARTING TRACK # OF WORK02 JMP SETUP SPC 3 CHGRL EQU * FOR RECORDS CONTAINED WITHIN CLB SECTOR BOUNDARIES, TREAT DATA LDA =D64 LENGTH IN SECTOR AS LRECL DIV LRECL,I STA USERC MPY LRECL,I STA USELN LDB 0 LDA =D64 CMB,INB `ADB 0 B CONTAINS GAS IN SECTOR STB USEGS SAVE IT FOR READ ROUTINE LDA MAXRS MAX RUN SIZE CLB DIV USELN STA USESC # SECTORS TO READ PER RUN CMB,INB ADB MAXRS STB RUNSZ ACTUAL SIZE OF RUN IN WORDS LDA 1 CLB DIV LRECL,I STA RECPR # RECORDS PER RUN LDA RUNSZ JMP COMP2 HED SUBDIVIDE SORTIN INTO RUNS, SORT RUNS, OUTPUT TO DISK SETUP EQU * LDA RECPR STA SAVRN LDA TRACK,I STARTING TRACK # OF SORTIN STA TNUM LDA RUNSZ STA WSIZE STA R1LEN LENGTH OF RUN NEXRU LDA P8 DO RECORDS CONTINUE ACROSS SZA SECTOR BOUNDARIES? JMP CONTN YES - SIMPLE READ/ WRITE LDA USELN NO - POSSIBLE GAS IN SECTORS STA R1LEN READ DATA SECTOR AT A TIME LDA B1ADD STA SORTA START SORTING AT BEG OF BUFFR STA RDBUF CLA STA UPSEC UPDATE INPUT 1 SEC AT A TIME LDA SNUM STA SAVSC UPDATE MANUALLY LDA USESC CMA,INA STA MINSC # SECTORS TO FILL RUN BUFFR RSEC LDB SPMIN JSB IORTN READ DATA IN SECTOR LDA RDBUF ADA USELN UPDATE INPUT BUFFR ADDR STA RDBUF LDA SAVSC INA STA SAVSC STA SNUM UPDATE 1 SEC INPUT ISZ MINSC JMP RSEC JMP SORT TPIN EQU * LDA TPLPL CMA,INA STA MINTP LDA B1AD2 STA TBA TPLUP EQU * JSB EXEC DEF *+5 DEF D1 DEF UNIT,I TBA DEF XBUFF DEF PHYSL ALF,ALF CHECK TAPE EOF SSA,RSS NO JMP UPLUP ISZ EOFB1 ADB TBA ADB =D-40 LDA EOF STA 1,I LDA B1AD2 CMA,INA ADA 1 # OF WORDS IN BUFFR CDEOF EQU * CLB DIV LRECL,I STA SAVRN SZA,RSS JMP MERGE JMP SORT UPLUP EQU *  LDA TBA,I CHECK FOR EOF ON CARDS CPA =A$$ JMP ENCRD LDA TBA ADA PHYSL STA TBA ISZ MINTP JMP TPLUP JMP SORT ENCRD ISZ EOFB1 LDB B1AD2 CMB,INB ADB TBA COMPUTE # OF DATA WORDS LDA 1 JMP CDEOF MINTP NOP TPLPL NOP PHYSL NOP SKP CONTN EQU * LDA P7 CPA =D2 NONSECTORED INPUT JMP TPIN LDB SPMIN ADDR OF SORTIN READ PARMS JSB IORTN READ A RUN BUFFR LDA B1ADD ADA IOR2 STA SORTA LOGICAL START OF BUFFR FOR SORT LDA IOREM STA IOR2 LDB RUNSZ ADB IOR2 READ LENGTH FOR NEXT TIME STB R1LEN SORT JSB CHKN1 CHECK EOF ON SORTIN JSB QSORT SORT THE RUN SORTA DEF XBUFF ANY LOG OFFSET IS ADDED TO THIS DEF LRECL,I DEF RECNO DEF SRTOF,I DEF SRTLN,I DEC 0 * OUTPUT THE RUN ISZ UPSEC SIGNAL UPDATE SECTOR FOR NEXT RN LDA WSIZE STA SVLEN LDA EOFB1 SZA,RSS JMP RUNOT LDA RUNNO SZA JMP RUNOT LDA EOF WRITE EOF IF NO MERGE LDB WTBUF IS REQUIRED ADB WSIZE STA 1,I ISZ WSIZE RUNOT EQU * LDB RPMOT JSB IORTN WRITE RUN TO WORK01 LDA SVLEN STA WSIZE CLA STA UPSEC ISZ RUNNO LDA EOFB1 EOF ON SORTIN? SZA,RSS JMP NEXRU NO - BUILD & SORT NEXT RUN HED PERFORM 2-WAY MERGES ON SORTED RUNS MERGE EQU * LDA XTRK2 STA XTRAK CLA STA UPSEC UPDATE I/O ADDR BY WHOLE SECTORS LDA =D1000 ARBITRARY MAX READ SIZE CLB DIV LRECL,I LDA =D1000 CMB,INB ADA 1 STA RSZAC ACTUAL READ SIZE IN WORDS MRGLP EQU * NEW PASS INITIALIZATION LDA RUNSZ CLB DIV =D64 SZB INA STA SECPR # SECTORS PER RUN LDA RECFL STA RCPAS # RECORDS IN FILE LDA RUNNO CMA,INA STA MNRUN # RUNS THIS PASS CLA STA XSECT STA ZSECT LDA XTRAK STA SVXTK SAVE STARTING TRACK #S OF LDA ZTRAK INPUT (X) AND OUTPUT (Z) AREAS STA SVZTK FOR NEXT PASS LDA RUNNO # RUNS IN THIS PASS ARS DIVIDE BY 2 SZA,RSS ONLY 1 RUN? JMP ENDMG YES - FINISHED MPY SECPR CLB POINT TO 2ND HALF OF RUNS DIV =D128 ADA XTRAK STA YTRAK STB YSECT CLA STA RUNNO SKP RUNLP LDA RCPAS *** START NEW RUN *** SZA,RSS JMP ENDPS LDA RECPR # RECORDS PER FULL RUN CMA,INA ADA RCPAS SUBTRACT FROM # RECORDS IN FILE SSA JMP NOX LAST RUN & NOT FULL SZA,RSS JMP NOX LAST RUN STA RCPAS CALC SIZE OF X RUN LDA RECPR & UPDATE # RECORDS LEFT CMA,INA STA RECX JMP YLEN NOX CLA LAST RUN MUST BE ON Y FILE STA RECX JMP LASTY YLEN EQU * LDA RECPR CALC SIZE OF RUN TO READ FROM CMA,INA Y FILE ADA RCPAS SSA JMP LASTY LAST RUN & NOT FULL SZA,RSS JMP LASTY LAST RUN STA RCPAS CALC SIZE OF Y RUN & UPDATE LDA RECPR RECORDS LEFT TO PROCESS THIS PSS CMA,INA STA RECY JMP RUNRD START READING & MERGING LASTY LDA RCPAS CMA,INA STA RECY CLA STA RCPAS SKP RUNRD EQU * MERGE RUNS JSB READY READ A REC FROM Y RUN ISZ MNRUN LAST RUN? RSS JMP ENDX YES - WRITE TO OUTPUT JSB READX READ A REC FROM X RUN CLCLP EQU * PICK SMALLEST - SEND TO OUTPUT JSB COMPR JMP YMV Y REC IS SMALLEST JSB MOVEX X REC IS SMALLEST,MOVE & RXLEAD X JMP ENDX EOF ON X RUN JMP CLCLP COMPARE Y WITH NEW X YMV JSB MOVEY MOVE Y REC TO OUTPUT, READ NEW Y JMP ENDY EOF ON Y RUN JMP CLCLP * ENDX EQU * END OF X RUN - MOVE REST OF Y JSB MOVEY MOVE & READ NEW Y JMP ENDRN EOF ON Y RUN JMP ENDX LOOP * ENDY EQU * END OF Y RUN - MOVE REST OF X JSB MOVEX MOVE & READ NEW X JMP ENDRN EOF ON X RUN JMP ENDY LOOP * ENDRN EQU * JSB PTRUN PHSICAL WRITE OF OUTPUT RUN ISZ RUNNO IF NECESS. COUNT OUTPUT RUNS. LDA MNRUN SZA,RSS JMP ENDPS END OF PASS IF FINISHED RUNS ISZ MNRUN RSS JMP ENDPS END OF PASS * * SET UP FOR NEXT 2 RUNS * LDA IORX START AT NEW SECTOR SZA ISZ XSECT CLA STA IORX CLEAR LOGICAL OFFSET * LDA IORY SZA ISZ YSECT CLA STA IORY * JMP RUNLP DO NEXT RUN SKP ENDPS EQU * SET UP FOR NEXT PASS LDA XDISC LDB ZDISC PREVIOUS INPUT X-Y FILE IS STB XDISC NEW OUTPUT Z FILE, AND VV STA ZDISC LDA SVXTK * TRACK #S LDB SVZTK STA ZTRAK STB XTRAK LDA RUNSZ ALS STA RUNSZ NEW RUN SIZE - 2 X OLD RUN SIZE LDA RECPR ALS STA RECPR NEW # RECS / RUN - 2 X OLD # CLA STA IORX STA IORY JMP MRGLP HED MERGE SORT COMPLETE - PASS OUTPUT FILE ENDMG EQU * SORTED FILE STARTS AT IXTRK LDA P7 WANT SORTOUT WRITTEN OVER CPA =D1 SORTIN? JMP WROVR YES LDA TRKSF STA TRKGL LDA XTRAK STA XTRK2 LDA P8 NO - WERE RECORDS CONTINUOUS SZA,RSS OVER SECTIONS AT INPUT? JMP WRIVR NO - WRITE OUT AS INPUT WAS LDA ZTRAK STA XTRK2 JMP EXIT1 *($* WROVR EQU * LDA TRACK,I SORTIN TRACK ADDRESS STA ZTRAK LDA P8 SZA,RSS RETURN RECORDS IN SAME BLOCKING JMP WRIVR FORMAT AS INPUT SKP * * READ/WRITE OVER SORTIN CONTINUOUSLY * LDA RUNSZ INA ADD 1 FOR $$ CLB DIV =D64 SZB INA SECPR IN A REG CLB DIV =D16 16 SECTORS IN 1024 WORDS CMA,INA STA MINRD R/W THIS MANY TIMES STB MINR2 PLUS 1 EXTRA IF NECESS LDA =D1024 * STA XLENG READ LENGTH STA ZLENG WRITE LENGTH LDA XBA ADDR OF INPUT BUFFER STA ZBA EQ ADDR OF OUTPUT BUFFR LDA MINRD SZA,RSS JMP OREST RW16 LDB XPARM READ 16 SECTORS JSB IORTN LDB ZPARM WRITE 16 SECTORS JSB IORTN ISZ MINRD JMP RW16 OREST LDA MINR2 SZA,RSS JMP EXIT0 FINISHED CLB MPY =D64 # WORDS STA XLENG STA ZLENG LDB XPARM WRITE REMAINING SECTORS JSB IORTN LDB ZPARM JSB IORTN JMP EXIT0 FINISHED SKP WRIVR EQU * WRITE BLOCKED RECORDS LDA USELN OUTPUT USEFUL BLOCK LENGTH CMA,INA STA OUTLN LDA =D1024 READ 1024 WDS AT A TIME STA XLENG CMA,INA STA INLN LDA B3AD2 STA B3ADD CLA CLB CLBUF DST B3ADD,I ISZ B3ADD ISZ B3ADD ISZ MIN32 JMP CLBUF LDA =D-32 STA MIN32 LDA B3AD2 STA B3ADD LDA =D64 STA ZLENG RDCON LDB XPARM READ 16 SECTORS JSB IORTN LDA B1AD2 STA B1ADD MOVCN LDA B1ADD,I STA B3ADD,I CPA EOF JMP FINCN FINISHED ISZ B1ADD ISZ INLN END OF INPUT BUFFER? RSS JMP NEWIN YES - READ NEW 16 SECTORS OUTLP ISZ B3ADD ISZ OUTLN MOVED A BLOCK? JMP MOVCN NO - KEEP MOVING LDB ZPARM JSB IORTN WRITE BLOCK LDA USELN CMA,INA STA OUTLN LDA B3AD2 STA B3ADD JMP MOVCN * SKP NEWIN LDA =D-1024 STA INLN LDB XPARM JSB IORTN LDA B1AD2 STA B1ADD JMP OUTLP * FINCN EQU * END OF INPUT FILE LDB ZPARM JSB IORTN LDA P7 OUTPUT = SORTIN? SZA JMP EXIT0 YES LDA SVZTK STA XTRAK LDA ZDISC STA XDISC EXIT1 EQU * RETURN STARTING TRK #, & UNIT # LDA DSORT ADA =D-3 LDB TRKSF # OF TRACKS TO RLSE STB 0,I INA LDB XDA STB 0,I INA LDB XTA STB 0,I EXIT0 JSB EXEC RELEASE TRACKS DEF *+5 DEF D16 RELEASE DEF TRKGL DEF XTRK2 DEF XDIS2 JMP DSORT,I HED DSORT INTERNAL SUBROUTINES IORTN NOP READ / WRITE RTN IOSET LDA 1,I SET UP EXEC CALL SUB STA IOPRM,I INB ISZ IOPRM ISZ MIN6 JMP IOSET LDA =D-6 STA MIN6 LDA IOPR2 STA IOPRM LDA IOSCT,I LDB IOLEN,I JSB IOCHK CHECK FOR TRK OVFLO RSS NO OVFLO JMP ODD1 JSB IOCAL LDA IOSCT,I UPDATE NEXT SECTOR I/O ADDR LDB UPSEC ADD RUN VALUE? SZB NO JMP UPS1 ADA IOSEC INCREMENT BY # OF WHOLE SECTORS RTS1 STA IOSCT,I TRANSFERED. JMP IORTN,I UPS1 ADA SECPR INCR BY # SECTORS PER RUN JMP RTS1 * ODD1 LDA IOWD1 STA IOLEN,I # WORDS TO I/O NOW JSB IOCAL ISZ IOTRK,I SET UP FOR 2ND I/O CLA STA IOSCT,I LDA IOWD2 STA IOLEN,I LDA IOBUF ADA IOWD1 STA IOBUF JSB IOCAL LDA UPSEC UPDATE NEXT SECTOR I/O ADDR SZA JMP UPS2 LDA IOWD2 CLB DIV =D64 STA IOSCT,I STB IOREM JMP IORTN,I UPS2 LDA SECPR LDB IOSC1 CMB,INB ADA 1 STA IOSCT,I JMP IORTN,I SKP IOCHK NOP STA WORK1 STARTING SECTOR STB WORK2 BUFF LENGTH SZA,RSS JMP CHKI2 CLB DIV =D128 ADA IOTRK,I STA IOTRK,I STB WORK1 STB IOSCT,I SPC 3 CHKI2 EQU * LDA WORK2 CLB DIV =D64 # SECTORS STA IOSEC STB IOREM SZB IN9A ADA WORK1 ADA =D-128 SZA,RSS JMP IOCHK,I SSA JMP IOCHK,I LDA =D128 LDB WORK1 CMB,INB ADA 1 STA IOSC1 # SECTORS 1ST I/O OPERATION MPY =D64 STA IOWD1 # WORDS 1ST I/O OPERATION CMA,INA ADA WORK2 STA IOWD2 # WORDS 2ND I/O OPERATION ISZ IOCHK JMP IOCHK,I SKP CHKN1 NOP CHECK FOR EOF ON SORTIN CLA STA RECNO LDA SAVRN CMA,INA STA WORK1 LDB SORTA ADDR OF RUN START LDA 1,I CPA EOF EOF BEFORE 1ST REC - LEAVE JMP MERGE WHOLE SORTING ROUTINE LUPN1 ADB LRECL,I ISZ RECNO ISZ WORK1 RSS JMP ENDCK LDA 1,I CPA EOF RSS JMP LUPN1 LDA RECNO ADA RECFL STA RECFL SGEOF EQU * LDA RECNO MPY LRECL,I STA WSIZE ISZ EOFB1 JMP CHKN1,I ENDCK LDA RECNO UPDATE # RECS IN FILE ADA RECFL STA RECFL CMA,INA CHECK TOO MANY RECS ADA MAXRC,I SZA,RSS JMP SGEOF SSA,RSS JMP CHKN1,I ADA RECNO STA RECNO JMP SGEOF RECFL NOP # RECORDS IN FILE RCPAS NOP SKP IOCAL NOP CALL EXEC FOR I/O JSB EXEC DEF *+7 IOOP NOP IOUNI NOP IOBUF NOP IOLEN NOP IOTRK NOP IOSCT NOP JMP IOCAL,I IOPRM DEF IOOP IOPR2 DEF IOOP * SPMIN DEF *+1 SORTIN READ PARMS DEF D1 RDUNT DEF UNIT,I RDBUF DEF XBUFF RDLEN DEF R1LEN DEF TNUM DEF SNUM TNUM NOP SNUM NOP * RPMOT DEF *+1 SORTED RUN OUTPUT PARMS DEF D2 WTUNT DEF XDISC WTBUF DEF XBUFF WTLEN DEF WSIZE WTRK1 DEF XTRAK DEF WSNUM WSNUM NOP SKP COMPR NOP COMPARE KEYS OF X & Y RUNS LDA XPTR ADA SRTOF,I STA XKEYA LDA YPTR ADA SRTOF,I STA YKEYA LDXA SRTLN,I CMA,INA STA LUKLN NXCLC LDA XKEYA,I CMA,INA ADA YKEYA,I SSA JMP COMPR,I X GT Y - MOVE Y SZA,RSS JMP UPCLC ISZ COMPR JMP COMPR,I X LT Y - MOVE X UPCLC ISZ XKEYA ISZ YKEYA ISZ LUKLN JMP NXCLC JMP COMPR,I SAME - MOVE Y SPC 3 MOVE NOP MOVE REC TO ZBUFFR STA ZKEYA FROM ADD LDA LRECL,I CMA,INA STA LUKLN MVLUP LDA ZKEYA,I STA ZPTR,I ISZ ZKEYA ISZ ZPTR LDA ZPTR CPA EZPTR JSB WRITZ ISZ LUKLN JMP MVLUP JMP MOVE,I SKP READX NOP LDA RSZAC ADA IORX STA XLENG READ LENGTH STA SVLEN LDB XPARM JSB IORTN READ A BUFFER LDA XBA ADDR OF XBUFF ADA IORX STA XPTR LOGICAL START OF XBUFF LDA IOREM STA IORX OFFSET FOR NEXT READ OF BUFFER LDA XBA ADDR OF XBUFF ADA SVLEN STA EXPTR PTR TO END OF XBUFF JMP READX,I * READY NOP LDA RSZAC ADA IORY STA YLENG STA SVLEN LDB YPARM JSB IORTN LDA YBA ADA IORY STA YPTR LDA IOREM STA IORY LDA YBA ADA SVLEN STA EYPTR JMP READY,I SKP MOVEY NOP LDA YPTR JSB MOVE LDA YPTR ADA LRECL,I STA YPTR ISZ RECY RSS JMP MOVEY,I ISZ MOVEY CPA EYPTR RSS JMP MOVEY,I LDA RSZAC CALC READ SIZE LEFT STA SAVRS LDA RECY CMA,INA MPY LRECL,I STA RSZAC CMA,INA ADA SAVRS SSA,RSS JMP *+3 TAKE SMALLER READ SIZE LDA SAVRS STA RSZAC JSB READY LDA SAVRS STA RSZAC JMP MOVEY,I * MOVEX NOP LDA XPTR JSB MOVE LDA XPTR ADA LRECL,I STA XPTR ISZ RECX RSS JMP MOVEX,I ISZ MOVEX CPA EXPTR RSS JMP MOVEX,I LDA RSZAC CALC READ SIZE LEFT STA SAVRS LDA RECX CMA,INA MPY LRECL,I STA RSZAC CMA,INA ADA SAVRS SSA,RSS JMP *+3 TAKE SMALLER READ SIZE LDA SAVRS STA RSZAC JSB READX LDA SAVRS STA RSZAC JMP MOVEX,I * WRITZ NOP LDA =D1024 STA ZLENG WRITE LENGTH LDB ZPARM JSB IORTN WRITE THE RECORD LDA B3ADD STA ZPTR JMP WRITZ,I SKP PTRUN NOP OUTPUT ZBUFFER (IF NOT OUT LDA MNRUN ALREADY) INA SSA JMP PTOK LDA EOF END OF PASS - WRITE EOF STA ZPTR,I ISZ ZPTR PTOK EQU * LDA ZPTR CPA B3ADD JMP OUTPT OUT ALREADY LDB B3ADD CMB,INB ADA 1 STA ZLENG OUTPUT USED LENGTH LDB ZPARM JSB IORTN WRITE THE RECORD LDA B3ADD STA ZPTR OUTPT LDA ZLENG CLB DIV =D64 SZB ISZ ZSECT POINT TO BEG OF SECTR JMP PTRUN,I FOR NEXT RUN HED DSORT CONSTANTS AND VARIABLES PARMS DEF *+1 * INPUT PARAMETERS FROM * * * CALLING PGM * UNIT NOP * SORTIN LOGICAL UNIT # * TRACK NOP * SORTIN STARTING TRACK * LRECL NOP * RECORD LENGTH * SRTOF NOP * OFFSET OF SORT FIELD * SRTLN NOP * LRNGTH OF SORT FIELD * MAXRC NOP * MAX # RECS IN FILE * P7 NOP * SORTOUT LOCATION FLAG * P8 NOP * RECORDS / SECTOR FLAG * * * * SPC 3 SAVRN NOP RECNO NOP WORK1 NOP EOF ASC 1,$$ EOFB1 NOP WSIZE NOP R1LEN NOP IOR2 NOP IOREM NOP WORK2 NOP IOSEC NOP IOWD1 NOP IOSC1 NOP IOWD2 NOP RUNNO NOP # OF RUNS UPSEwEC NOP D1 DEC 1 D2 DEC 2 SPC 3 XSECT NOP YSECT NOP ZSECT NOP XPTR NOP YPTR NOP ZPTR DEF ZBUFF SVZTK NOP IORX NOP IORY NOP SAVRS NOP SKP MAXRS DEC 2000 MAX ALLOWABLE RUN SIZE RUNSZ NOP ACTUAL RUN SIZE RECPR NOP ACTUAL # RECS PER RUN SECPR NOP ACTUAL # SECTORS PER RUN RUNSF NOP MAX # RUNS IN FILE TRKSF NOP MAX # TRACKS NEEDED FOR FILE TRKGL NOP # TRACKS FOR ALLOCATION LSORT NOP # SECTORS/ TRK XTRAK NOP STARTING TRACK # WORK01 XDISC NOP LOG UNIT # XDIS2 NOP XTRK2 NOP ZTRAK NOP STARTING TRACK # WORK02 ZTRK2 NOP ZDISC NOP SAVSC NOP USELN NOP USESC NOP USEGS NOP MINSC NOP MNRUN NOP RECX NOP RECY NOP RSZAC NOP SVXTK NOP USERC NOP ZLENG DEC 1024 ZKEYA NOP YTRAK NOP D16 DEC 16 D15 DEC 15 MIN8 DEC -8 MIN6 DEC -6 MINRD NOP MINR2 NOP XLENG NOP YLENG NOP SVLEN NOP SPC 3 XBUFF BSS 1064 YBUFF BSS 1064 ZBUFF BSS 1025 B1ADD DEF XBUFF B1AD2 DEF XBUFF B2ADD DEF YBUFF B2AD2 DEF YBUFF B3ADD DEF ZBUFF B3AD2 DEF ZBUFF SKP MIN64 DEC -64 MIN32 DEC -32 INLN NOP OUTLN NOP LUKLN NOP XKEYA NOP YKEYA NOP EXPTR NOP EYPTR NOP EZPTR DEF ZBUFF+1024 * MERGE FILE X INPUT PARMS XPARM DEF *+1 DEF D1 XDA DEF XDISC XBA DEF XBUFF DEF XLENG XTA DEF XTRAK DEF XSECT * MERGE FILE Y INPUT PARMS YPARM DEF *+1 DEF D1 DEF XDISC YBA DEF YBUFF DEF YLENG DEF YTRAK DEF YSECT * MERGE FILE Z OUTPUT PARMS ZPARM DEF *+1 DEF D2 DEF ZDISC ZBA DEF ZBUFF DEF ZLENG DEF ZTRAK DEF ZSECT END A 26 07 T S 08 T 07 O 12 P 11 U 06 V 05 05 V J 17 K 16 23 D 22 E 21 F 20 G B 25 W 04 E 22 Q 10 11 P 10 Q 09 R 08 S L 15 R 09 C 24 D 23 06 U F 21 G 20 13 N 12 O X 03 Y 02 H 19 1*($M 14 I 18 19 H N 13 18 I 17 J 16 K 15 L Z 01 26 A 25 B 14 M 24 C 04 W 03 X 02 Y 01 Z $$ 4*ASMB,R,B,L,C NAM QSORT,7 ENT QSORT SUP * * QSORT PROVIDES A QUICKSORT IN CORE. * SORTS MAX OF 8191 ELEMENTS * * LINKAGE: * JSB QSORT * DEF RUNAD ADDR OF RUN IN CORE * DEF LRECL LEN OF RECORD * DEF RECNO # RECORDS IN RUN * DEF SRTOF OFFSET OF SORT FLD * DEF SRTLN LEN OF SORT FIELD * DEC 1 IF WANT 1ST BYTE OF SORTF IGNORED * (DEC 0 OTHERWISE) * (RETURN) * * * RECORDS R(1) THROUGH R(N) ARE REARRANGED IN PLACE. * AFTER SORTING, THEIR KEYS WILL BE IN ORDER, * K(1) LE ... LE K(N). THE SORT PROCEEDS BY MOVING * R(1) TO ITS FINAL POSITION, IN THE PROCESS SUBDIVIDING * THE FILE INTO 2 PARTITIONS. THE SAME TECHNIQUE * IS THEN APPLIED TO EACH OF THESE SUBFILES. * * THE SORT REQUIRES AN AUXILIARY STACK (LAD AND UAD) * OF LOG2 N ENTRIES FOR TEMPORARY STORAGE OF * SUBFILE LOWER AND UPPER BOUNDARY POINTERS. * HED QSORT INITIALIZATION QSORT NOP LDB PARMS GTPRM LDA QSORT,I STORE PARAMETERS FROM CALLING PG STA 1,I ISZ QSORT INB ISZ MIN6 JMP GTPRM LDA =D-6 STA MIN6 LDA LRECL,I CMA,INA STA MRCL1 NEG OF REC LEN STA MRCL2 LDA SRTLN,I CMA,INA STA MSTL1 NEG OF SORT FLD LEN STA MSTL2 SPC 3 Q1 LDA RECNO,I INITIALIZE STA R SET L=1 AND R= N JSB UPDAT (BOUNDARY POINTERS) STA RRECA CLA,INA STA M STA I1 STA L JSB UPDAT STA LRECA HED QSORT SORTING LOGIC Q2 THRU Q9 Q2 EQU * BEGIN NEW STAGE * PREPARE TO SORT THE SUBFILE R(L) TO R(R). LDA L IF LESS THAN 10 CMA,INA ELEMENTS IN THE SUBFILE ADA R GO TO Q8 CMA,INA TO PERFORM ADA =D10 STRAIGHT INSERTION SORT. SSA JMP Q2A R-L GT 10 LDA L CPA I1 RSS JMP ,Q8 LDB R CMB,INB ADA 1 SSA JMP Q2A JMP Q8 Q2A EQU * OTHERWISE SET I=L, J=R, LDA L TREC = RECORD AT MIDPOINT ADA R OF SUBFILE. ARS STA I2 JSB UPDAT STA I2REC LDA TRECA LDB I2REC JSB MOVE LDA L STA I JSB UPDAT STA IRECA LDA R STA J JSB UPDAT STA JRECA SKP Q3 EQU * COMPARE KEY(L) TO TKEY LDA LRECA (LOWER REC TO COMPARISON REC) LDB TRECA IF LOWER IS GREATER, JSB CLC EXCHANGE THE TWO RECORDS JMP Q4 VIA TEMPORARY STORAGE I2REC. JMP Q4 * LDA I2REC LDB LRECA JSB MOVE LDA LRECA LDB TRECA JSB MOVE LDA TRECA LDB I2REC JSB MOVE SPC 3 Q4 EQU * COMPARE K(R) TO TKEY LDA RRECA (UPPER REC TO COMPAREISON REC) LDB TRECA JSB CLC JMP RLESS JMP Q6 JMP Q6 * RLESS EQU * LDA I2REC IFF LESS THAN, LDB RRECA EXCHANGE THE TWO RECORDS JSB MOVE LDA RRECA LDB TRECA JSB MOVE LDA TRECA LDB I2REC JSB MOVE Q5 EQU * LDA LRECA AND COMPARE LOWER RECORD LDB TRECA TO COMPARISON RECORD. JSB CLC JMP Q6 JMP Q6 LDA I2REC IF LOWER IS GREATER, LDB LRECA EXCHAGE THE TWO. JSB MOVE LDA LRECA LDB TRECA JSB MOVE LDA TRECA LDB I2REC JSB MOVE SKP Q6 EQU * LDA J DECREMENT UPPER BOUNDARY ADA =D-1 STA J JSB UPDAT STA JRECA LDB TRECA COMPARE UPPER RECORD TO JSB CLC COMPARISON RECORD. JMP JLESS IF GREATER THAN, JMP JLESS REPEAT THE DECREMENT-COMPARE. JMP Q6 * INCREMENT LOWER BOUNDARU-Y. JLESS ISZ I LDA I JSB UPDAT STA IRECA COMPARE LOWER RECORD TO LDB TRECA COMPARISON RECORD. JSB CLC IF LESS THAN, REPEAT JMP JLESS INCREMENT-COMPARE. JMP Q7 ELSE GO TO Q7. SKP Q7 EQU * HAVE REACHED A POINT WHERE LDA I (1) AN EXCHANGE IS NECESSARY, OR CMA,INA (2) THE ORIGINAL RECORD HAS ADA J PARTITIONED THE FILE. SSA JMP YES7 LDA T2RCA IF THE LATTER, LDB JRECA PERFORM THE EXCHANGE JSB MOVE AND RETURN TO Q6. LDA JRECA LDB IRECA JSB MOVE LDA IRECA LDB T2RCA JSB MOVE JMP Q6 YES7 EQU * THE FILE HAS BEEN PARTITIONED LDA L SO THAT K(K) LE K(I) FOR SUBFILE CMA,INA R(L) ... R(K) ... R(I), AND ADA J K(I) LE K(K) FOR SUBFILE LDB I R(I) ... R(K) ... R(R). CMB,INB ADB R CMA,INA ADA 1 J-L LE R-I SSA,RSS JMP YES7B LDA L INSERT LOWER AND UPPER LDB LAD BOUNDARY POINTERS FOR THE ADB M LARGER SUBFILE ON TOP OF STACK STA 1,I LDA J LDB UAD ADB M STA 1,I LDA I AND RESET POINTERS STA L FOR SORTING OF THE OTHER SUBFILE JSB UPDAT STA LRECA NEX7 ISZ M JMP Q2 YES7B EQU * LDA I LDB LAD ADB M STA 1,I LDA R LDB UAD ADB M STA 1,I LDA J STA R JSB UPDAT STA RRECA JMP NEX7 SKP Q8 EQU * STRAIGHT INSERTION SORT ISZ L LDA L FOR L = L + 1 TO R, JSB UPDAT DO THE FOLLOWINT OPERATIONS. STA LRECA Q8LP1 EQU * LDA L CMA,INA ADA R SSA JMP Q9 LDA TRECA SET TREC = R(L), LDB LRECA JS(B MOVE LDA L I = L- 1, ADA =D-1 STA I JSB UPDAT STA IRECA LDB TRECA THEN SET R(I+1) = R(I) JSB CLC AND I = I+1 JMP NEXTI ZERO OR MORE TIMES JMP NEXTI UNTIL K(I) LE TKEY. MOVE2 LDA IRECA ADA LRECL,I LDB IRECA JSB MOVE LDA I ADA =D-1 STA I JSB UPDAT STA IRECA LDB TRECA JSB CLC JMP OK JMP OK JMP MOVE2 OK EQU * LDA IRECA ADA LRECL,I LDB TRECA JSB MOVE SPC 3 NEXTI EQU * ISZ L LDA L JSB UPDAT STA LRECA JMP Q8LP1 SKP Q9 EQU * TAKE OFF STACK LDA M IF STACK IS EMPTY, ADA =D-1 THEN SORTING IS FINISHED. STA M SZA,RSS JMP END SSA JMP END LDA LAD OTHERWISE REMOVE THE LAST ENTRY ADA M (L PRIME AND R PRIME) LDA 0,I STA L AND RESET L AND R ACCORDINGLY. JSB UPDAT STA LRECA LDA UAD ADA M LDA 0,I STA R JSB UPDAT STA RRECA JMP Q2 END JMP QSORT,I HED QSORT INTERNAL SUBROUTINES UPDAT NOP ADA =D-1 MPY LRECL,I ADA RUNAD JMP UPDAT,I SPC 3 MOVE NOP MOVE RECORD STA TOADD MOVE TO THIS ADDR STB FMADD MOVER LDA FMADD,I STA TOADD,I ISZ FMADD ISZ TOADD ISZ MRCL1 NEG OF RECROD LENGTH JMP MOVER LDA MRCL2 STA MRCL1 JMP MOVE,I SKP CLC NOP COMPARE KEYS A : B ADA SRTOF,I STA TOADD ADDR OF KEY A ADB SRTOF,I STB FMADD ADDR OF KEY B LDA NADA IGNORE 1ST BYTE? SZA,RSS JMP CLCSF NO - NORMAL PICKUP LDA TOADD,I AND =B377 LDB 0 LDA FMADD,I AND =B377 CMA,INA ADA 1 A - B JMP OFOKS CLCSF LDA FMADD,I CMA,INA ADA TOADD,I OFOKS EQU * SSA JMP RTN1 A LT B SZA JMP RTN3 A GT B ISZ TOADD ISZ FMADD ISZ MSTL1 SORT FLD LEN JMP CLCSF JMP RTN2 A EQ B RTN3 ISZ CLC RTN2 ISZ CLC RTN1 EQU * LDA MSTL2 STA MSTL1 JMP CLC,I HED QSORT CONSTANTS & VARIABLES PARMS DEF RUNAD RUNAD NOP LRECL NOP RECNO NOP SRTOF NOP SRTLN NOP NADA NOP SPC 3 MIN6 DEC -6 MIN14 DEC -14 D6 DEC 6 TRECA DEF REC REC BSS 64 T2RCA DEF T2RC T2RC BSS 64 MSTL1 NOP MSTL2 NOP MRCL1 NOP MRCL2 NOP TOADD NOP FMADD NOP LAD DEF * BSS 12 UAD DEF * BSS 12 I NOP IRECA NOP J NOP JRECA NOP R NOP RRECA NOP L NOP LRECA NOP I2 NOP I2REC NOP M NOP I1 NOP END ASMB,R,B,L,C NAM TESTD,3 ENT TESTD EXT EXEC,DSORT SUP * * TEST DSORT. * PRINT SORTED FILE * TESTD EQU * LDA 1,I STA IUNIT INB LDA 1,I LINE PRINTER STA OUNIT JSB DSORT DEF IUNIT DEF D0 DEF D40 LRECL DEF D0 DEF D1 P6 DEF D52 MAX RECS P7 DEC 2 P8 DEC 1 * LDA P7,I STA SUNIT LDA P8,I STA STRK * SKP RTAPE JSB EXEC DEF *+7 DEF D1 DEF SUNIT DEF BUFFR DEF BUFLN DEF STRK DEF SSECT LDA SSECT ADA =D10 STA SSECT * PUTPT LDA BADD1,I CPA EOF JMP EXIT JSB EXEC DEF *+5 DEF D2 WRITE DEF OUNIT OUTBF DEF CC DEF D41 LDB OUTBF ADB =D40 LDA CC STA 1,I STB OUTBF LDA BADD1 ADA =D40 STA BADD1 ISZ MIN16 JMP PUTPT 16 RECS PER BLOCK LDA =D-16 STA MIN16 LDA BADD2 STA BADDu=$"1 ADA =D-1 STA OUTBF LDA SSECT CLB DIV =D128 ADA STRK STA STRK STB SSECT LDA BUFLN CLB DIV =D64 SZB INA ADA SSECT ADA =D-128 SZA,RSS JMP RTAPE SSA JMP RTAPE LDA =D128 WILL TRK OVFLO LDB SSECT CMB,INB ADA 1 MPY =D64 STA BUFL1 I/O 1ST OPERATION CMA,INA ADA BUFLN STA BUFL2 JSB EXEC DEF *+7 DEF D1 DEF SUNIT B1 DEF BUFFR DEF BUFL1 DEF STRK DEF SSECT ISZ STRK CLA STA SSECT LDA B1 ADA BUFL1 STA B2 JSB EXEC DEF *+7 DEF D1 DEF SUNIT B2 NOP DEF BUFL2 DEF STRK DEF SSECT LDA BUFL2 CLB DIV =D64 ADA SSECT STA SSECT JMP PUTPT BUFL1 NOP BUFL2 NOP * EXIT EQU * LDA P6,I STA TRKRL JSB EXEC RELEASE GLOBAL TRACKS DEF *+5 DEF D16 DEF TRKRL DEF TRKST DEF SUNIT TERMI EQU * JSB EXEC DEF *+2 DEF D6 IUNIT DEC 7 INPUT DATA D0 DEC 0 D52 DEC 52 D40 DEC 40 D41 DEC 41 D300 DEC 300 D1 DEC 1 D2 DEC 2 STRK NOP SUNIT NOP SSECT NOP EOF ASC 1,$$ OUNIT DEC 6 D7 DEC 7 D80 DEC 80 D3 DEC 3 CC ASC 1, BUFFR BSS 640 BUFLN DEC 640 BADD1 DEF BUFFR BADD2 DEF BUFFR MIN16 DEC -16 D6 DEC 6 D16 DEC 16 TRKRL NOP TRKST NOP END TESTD "$  22681-18026 1500 SC 0222 DOS-M UTILITY PROG. GROUP             H0102 /ASMB,R,L,T HED ASCII TO EBCDIC & EBCDIC TO ASCII TRANSLATER. 25MAR0 * * * THIS PROGRAM WILL CONVERT AN ASCII CHARACTER STRING * * OR EBCDIC CHARACTER STRING INTO EBCDIC OR ASCII, * * RESPECTIVELY. * * * * THERE ARE TWO ENTRY POINTS: * * * 1. CNVEA - CONVERTS A PACKED EBCDIC CHARACTER * STRING INTO PACKED ASCII. CALLING * PROGRAM SHOULD PRIME THE A-REG TO THE * STARTING ADDRESS OF THE CHARACTER * STRING AND THE B-REG TO THE LENGTH (IN * WORDS) OF THE CHARACTER STRING. * * * 2. CNVAE - CONVERTS A PACKED ASCII CHARACTER * STRING INTO PACKED EBCDIC. CALLING * PROGRAM SHOULD PRIME THE A-REG TO THE * STARTING ADDRESS OF THE CHARACTER * STRING, AND THE B-REG TO THE LENGTH (IN * WORDS) OF THE CHARACTER STRING. IF BIT * 15 OF THE B-REG IS SET THE PROGRAM WILL * CONVERT TO EVEN PARITY ASCII CHAR'S. * RESETTING BIT 15 OF B WILL RESULT IN * RANDOM PARITY OF THE ASCII CHAR'S (SPE- * CIFICALLY, BIT 8 OF THE ASCII CHAR WILL * ALWAYS BE RESET). * * * NAM CONVT,6 SPC 1 EXT .ENTR SKP * *** CONVERT AN ASCII CHARACTER STRING INTO EBCDIC. *** * * SPC 2 IADDR NOP ILENG NOP SPC 1 CNVAE NOP ENTRY POINT JSB .ENTR DEF IADDR LINK THE PARAMETERS LDA IADDR GET THE ADDRESS LDB ILENG,I GET THE LENGTH STA BUFAD STORE STRING STARTING ADDRESS. CMB,INB B-REG CONTAINS NEG STRING LENGTH * LOOP1 LDA BUFAD,I CONVERT  ALF,ALF LEFT AND =B177 HAND ADA TABAD CHARACTER LDA A,I INTO EBCDIC. AND =B177400 TEMPORARILY STORE STA TEMP THE CHARACTER. LDA BUFAD,I CONVERT AND =B177 RIGHT ADA TABAD HAND LDA A,I CHARACTER ALF,ALF INTO AND =B377 EBCDIC. IOR TEMP FORM CONVERTED WORD, STA BUFAD,I AND PUT INTO CHARACTER STRING. ISZ BUFAD INCREMENT CHAR STRING ADRS. INB,SZB FINISHED CONVERSION? JMP LOOP1 NO, CONVERT ANOTHER WORD. JMP CNVAE,I YES, RETURN TO CALLING PROGRAM. SPC 3 * * *** CONVERT AN EBCDIC CHARACTER STRING INTO ASCII *** * I.ADR NOP I.LEN NOP SPC 1 CNVEA NOP ENTRY POINT JSB .ENTR DEF I.ADR LINK THE PARAMETERS LDA I.ADR STA BUFAD LDB I.LEN,I LDA =B177 STA MASK MASK BIT 8. CMB,INB MAKE WORD COUNT NEGATIVE. * LOOP2 LDA BUFAD,I CONVERT ALF,ALF LEFT AND =B377 HAND ADA TABAD CHARARACTER LDA A,I INTO AND MASK ASCII. ALF,ALF STORE STA TEMP TEMPORARILY. * LDA BUFAD,I CONVERT AND =B377 RIGHT ADA TABAD HAND LDA A,I CHARACTER AND MASK INTO EBCDIC. IOR TEMP FORM CONVERTED WORD STA BUFAD,I AND STORE IN CHARACTER STRING. * ISZ BUFAD INCREMENT CHARACTER STRING ADRS. INB,SZB FINISHED CONVERSION? JMP LOOP2 NO, CONVERT ANOTHER WORD. JMP CNVEA,I YES, RETURN. SKP * * *** DATA *** * SUP ENT CNVEA,CNVAE A EQU 0 B EQU 1 BUFAD BSS 1 MASK BSS 1 TEMP BSS 1 TABAD DEF TABLE SPC 3 * * *** TRANSLATION TABLE *** * * 1. EBCDIC EQUIVALENTS OF ASCII CODES ARE IN UPPER * PART OF WORDS. * *  2. ASCII EQUIVALENTS OF EBCDIC CODES ARE IN LOWER * PART OF WORDS. * * 3. TABLE CONFORMS TO CORPORATE MARKETING'S "ASCII- * EBCDIC CONVERSION IN EBCDIC ORDER". SPC 2 TABLE OCT 012534,025134,023534,023134 000-007 OCT 033534,030134,030534,031377 OCT 031534,066534,046134,047534 010-017 OCT 067134,057534,032134,032534 OCT 015134,015534,016134,016534 020-027 OCT 017134,022000,025534,026134 OCT 034134,034534,035220,035421 030-037 OCT 036022,036623,037024,037534 OCT 040374,055175,077576,075534 040-047 OCT 055777,066134,050003,076602 OCT 046534,056534,056201,047226 050-057 OCT 065427,060134,045534,060534 OCT 170005,170406,171207,171610 060-067 OCT 172216,172417,173134,173604 OCT 174030,174631,075232,057033 070-077 OCT 070234,077035,070436,067637 OCT 076240,140534,141134,141534 100-107 OCT 142134,142534,143134,143534 OCT 144134,144534,150534,151056 110-117 OCT 151412,152050,152453,153213 OCT 153646,154134,154733,161134 120-127 OCT 161735,162134,162534,163134 OCT 163534,164134,164441,051044 130-137 OCT 051652,052251,074273,074615 OCT 100055,100657,101134,101534 140-147 OCT 102134,102534,103134,103534 OCT 104134,104534,110534,111254 150-157 OCT 111645,112011,112414,113077 OCT 113474,114276,114534,121134 160-167 OCT 121534,122134,122534,123134 OCT 123736,124137,124472,125243 170-177 OCT 020300,020447,021275,003442 OCT 140,341,342,143,344,145,146,347 200-207 OCT 350,151,134,134,134,134,134,134 210-217 OCT 134,152,353,154,355,356,157,360 220-227 OCT 161,162,134,134,134,134,134,134 230-237 OCT 134,134,363,164,365,366,167,170 240-247 OCT 371,372,173,134,>134,134,134,134 250-257 OCT 134,134,134,134,134,134,134,134 260-267 OCT 134,134,134,134,134,134,134,134 270-277 OCT 134,101,102,303,104,305,306,107 300-307 OCT 110,311,134,134,134,134,134,134 310-317 OCT 134,312,113,314,115,116,317,120 320-327 OCT 321,322,134,134,134,134,134,134 330-337 OCT 134,134,123,324,125,126,327,330 340-347 OCT 131,132,134,134,134,134,134,134 350-357 OCT 060,261,262,063,264,065,066,267 360-367 OCT 270,071,134,134,134,134,134,134 370-377 UNS END ASMB,R,L NAM SHFT,7 ENT SHFT EXT .ENTR SPC 1 IADDR NOP HOLDS ADDRESS OF SOURCE ARRAY ILEN NOP HOLDS ADDRESS OF LENGTH OF ARRAY SPC 1 SHFT NOP ENTRY/EXIT JSB .ENTR DEF IADDR LINK THE PARAMETERS LDA ILEN,I GET THE WORD LENGTH CMA,INA MAKE IT NEGATIVE STA ILEN SAVE IT. SPC 1 MORE LDA IADDR,I GET THE WORD AND =B377 MASK FOR LOWER ALF,ALF POSITION TO UPPER STA TEMP SAVE THE RESULT LDB IADDR INB LDA 1,I ALF,ALF POSITION AND =B377 MASK IT. IOR TEMP MERGE FIRST BYTE STA IADDR,I PUT IN USERS BUFFER ISZ IADDR BUMP THE POINTER ISZ ILEN COUNT IT JMP MORE DONE? NO. JMP SHFT,I YES, RETURN SPC 1 TEMP OCT 0 END FTN4,L SUBROUTINE READB(INU,BUF,LNGTH,IND) INTEGER INBUF(2000),BUF(200),BLOCK LOGICAL ODD ODD=.FALSE. LENG=(LNGTH+1)/2 IF(MOD(LNGTH,2).NE.0) ODD=.TRUE. IF(IND .GT. 0) GO TO 20 CALL EXEC(1,100B+INU,INBUF,2000) CALL EXEC(13,INU,IST,ILOG) IF(IAND(IST,200B).EQ. 0) GO TO 10 IND=-1 GO TO 50 10 BLOCK=ILOG*2/LNGTH 20 IF(ODD)GO TO 31 DO 30 I=1,LENG BUF(I)=INBUF(IND*LENG+I) 30 CONTINUE GO TO 40 31 DO 32 I=1,LEwNG BUF(I)=INBUF((IND*LNGTH)/2+I) 32 CONTINUE IF(MOD(IND,2).NE. 0) CALL SHFT(BUF,LENG) 40 IND=IND+1 IF(IND .EQ. BLOCK) IND=0 50 RETURN END $ FTN4,L SUBROUTINE WRITB(IOUT,BUF,LNGTH,BLOCK,IND) INTEGER OUTBF(2000),BUF(200),LENG,BLOCK LENG=(LNGTH+1)/2 IF(BLOCK .EQ. -1) GO TO 50 IF(MOD(LNGTH,2).NE. 0) GO TO 31 DO 30 I=1,LENG OUTBF(IND*LENG+I)=BUF(I) 30 CONTINUE GO TO 40 31 IF(MOD(IND,2).EQ. 0) GO TO 33 ICT=(IND*LNGTH+1)/2 OUTBF(ICT)=IAND(OUTBF(ICT),177400B) ILOW=IAND(((IAND(BUF(1),177400B))/2**8),377B) OUTBF(ICT)=IOR(ILOW,OUTBF(ICT) ) CALL SHFT(BUF,LENG) DO 32 I=1,LENG-1 OUTBF(ICT+I)=BUF(I) 32 CONTINUE GO TO 40 33 DO 34 I=1,LENG OUTBF( (IND*LNGTH)/2+I)=BUF(I) 34 CONTINUE 40 IND=IND+1 IF(IND .LT. BLOCK) GO TO 60 50 CALL EXEC(2,100B+IOUT,OUTBF,(LENG*IND) ) IND=0 60 RETURN END $ FTN4,L SUBROUTINE READR(IFILE,IREC,C,N,EF) C ****************************************************************************** C C THIS SUBROUTINE READS A SECTOR OF DATA AND C TRANSTERS THIS DATA TO THE USING PROGRAN C ONE RECORD AT A TIME IN CARD FORM(40 WORDS) C C ****************************************************************************** INTEGER EF INTEGER IREC(40), IBUF(128),C C C TEST FOR NOT FOUND C CALL EXEC(18,IFILE,MSECT) IF(MSECT .EQ. 0) GO TO 500 C C CLEAR RECORD BUFFER TO BLANKS C DO 10 IC=1,40 IREC(IC)=20040B 10 CONTINUE C C TEST IF 1ST RECORD C C TEST IF 1ST RECORD C IF(C .EQ. 0) GO TO 21 20 IF(C .NE. 128) GO TO 30 C C READ A SECTOR IF COUNT=128 OR C=0 C 21 CALL EXEC(14,00002B,IBUF,128,IFILE,N) C=0 N=N+1 I=1 30 IF(IBUF(I) .EQ. 0) GO TO 600 LNGTH=IBUF(I)/2**8 IF(C .NE. 127) GO TO 40 C C READ ANOTHER SECTER IF COUNT=127 C CALL EXEC(14,000r02B,IBUF,128,IFILE,N) C=-1 N=N+1 I=0 GO TO 50 C C TEST TO SEE IF THE RECORD IS IN ONE SECTER C 40 IF((C+LNGTH+1) .GT. 128) GO TO 70 C C TRANSFER A RECORD C 50 DO 60 J=1,LNGTH IREC(J)=IBUF(I+J) 60 CONTINUE I=I+LNGTH+1 C=I-1 GO TO 700 C C TRANSFER 1ST HALF OF RECORD C 70 DO 80 J=1,(128-(C+1)) IREC(J)=IBUF(I+J) 80 CONTINUE CALL EXEC(14,00002B,IBUF,128,IFILE,N) N=N+1 C C TRANSFER 2ND HALF OF RECORD C I=1 DO 90 M=J,LNGTH IREC(M)=IBUF(I) I=I+1 90 CONTINUE C=I-1 GO TO 700 500 WRITE(1,501) C C OUTPUT FILE NOT FOUND C 501 FORMAT("FILE NOT FOUND") PAUSE 6 C C OUTPUT END OF FILE ON TTY AND RETURN TO THE PROGRAM C 600 WRITE(1,601) 601 FORMAT("END OF FILE") EF=1 700 RETURN END $ FTN4,L SUBROUTINE WRITR(INBUF,FILE,TYPE,IND) INTEGER INBUF(200),OUTBF(128),FILE(3),TYPE ITY=1 IF(TYPE .NE. -1) GO TO 10 OUTBF(IND)=0 CALL EXEC(15,102B,OUTBF,128,FILE,MSEC) GO TO 900 10 IF(IND .NE. 0) GO TO 20 CALL EXEC(18,FILE,MSECT) IF(MSECT.NE. 0) GO TO 15 WRITE(ITY,101) 101 FORMAT("FILE NOT FOUND") PAUSE 15 IND=1 MSEC=0 20 DO 21 I=200,1,-1 N1=I IF((TYPE .EQ. 0).AND. (INBUF(I).NE. 2H )) GO TO 22 IF((TYPE .EQ. 1).AND. (INBUF(I).NE. 0)) GO TO 22 21 CONTINUE 22 OUTBF(IND)=N1*2**8 IND=IND+1 IF(IND .LE. 128) GO TO 23 IND=1 CALL EXEC(15,102B,OUTBF,128,FILE,MSEC) MSEC=MSEC+1 IF(MSEC.EQ.MSECT) GO TO 850 23 DO 24 M=1,N1 OUTBF(IND)=INBUF(M) IND=IND+1 IF(IND .LE. 128) GO TO 24 CALL EXEC(15,102B,OUTBF,128,FILE,MSEC) MSEC=MSEC+1 IF(MSEC.EQ.MSECT) GO TO 850 IND=1 24 CONTINUE DO 25 I=1,200 IF(TYPE.EQ.0)INBUF(I)=2H 25 IF(TYPE.EQ.-1)INBUF(I)=0 GOTO 900 850  WRITE(ITY,102) 102 FORMAT("EXCEEDED FILE SECTOR COUNT") IND=-1 900 RETURN END $ FTN4,L PROGRAM CNVT (5) INTEGER BUF(2000),IPRAM(5),NAME(3) EQUIVALENCE(IPRAM(1),MT1),(IPRAM(2),MT2),(IPRAM(3),IND) CALL RMPAR(IPRAM) NAME(1)=2HUT NAME(2)=2HIL NAME(3)=2HY 9 IF(IAND(ISTAT,40B).EQ.0) GO TO 10 WRITE(1,101) 101 FORMAT("END OF TAPE") CALL EXEC(3,20400B+MT1) PAUSE 1 10 CALL EXEC(1,100B+MT1,BUF,2000) CALL EXEC(13,MT1,ISTAT,ILOG) IF(IAND(ISTAT,200B).NE. 0) GO TO 900 IF(IND .EQ. 1) CALL CNVEA(BUF,ILOG) IF(IND .EQ. 0) CALL CNVAE(BUF,ILOG) CALL EXEC(2,100B+MT2,BUF,ILOG) GO TO 9 900 ENDFILE MT2 CALL EXEC(10,NAME) CALL UTILY END $ FTN4,L PROGRAM LIST(5) INTEGER BUF(200),LIST(67) INTEGER IPRAM(5) INTEGER NAME1(3) EQUIVALENCE(BUF,LIST(2)) CALL RMPAR(IPRAM) NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY IND=IPRAM(3) LP=6 IND2=0 ITY=1 CT=0 LIST(1)=2H CALL EXEC(3,1100B+LP,-1) WRITE(ITY,100) 100 FORMAT("COPY?") READ(ITY,101)ICOPY 101 FORMAT(R2) WRITE(ITY,102) 102 FORMAT("LIST ?") READ(ITY,101)ILIST IF(ILIST .NE. 2HYE) GO TO 10 103 FORMAT("ASCII OR EBCDIC ?") WRITE(ITY,103) READ(ITY,101) IAE WRITE(ITY,109) 109 FORMAT("BENCH MARK ?") READ(ITY,101)IBM IF(IBM .EQ. 2HYE) WRITE(LP,104) (I,I=1,13) 104 FORMAT(XX,13(8X,I2)/XX,13("1234567890")/) 10 WRITE(ITY,105) 105 FORMAT("ENTER RECORD LENGTH IN BYTES,&BLOCKING FACTOR") READ(ITY,*)LENG,IBLK 20 IND1=0 30 CALL READB(IPRAM(1),BUF,LENG,IND1) IF(IND1 .EQ. -1) GO TO 900 CALL EXEC(13,IPRAM(1),ISTAT,ILOG) IF(IAND(ISTAT,40B).NE.0) GO TO 850 IF(ICOPY .EQ. 2HYE)CALL WRITB(IPRAM(2),BUF,LENG,IBLK,IND2) CT=CT+1 IF(ILIST .EQ. 2HNO) GO TO 30 IF(IAE .EQ. 2HEB)CALL CNVEA(BUF,((LENG+1)/2)) IF(IND.EQ.0) CALL EXEC(2,LP,LIST,(-(LENG+2)) ) IF(IND.EQ.1)CALL EXEC(2,LP,BUF,(-(LENG)) ) IF(ICOPY .EQ. 2HNO) GO TO 30 CALL EXEC(13,IPRAM(2),ISTAT,ILOG) IF(IAND(ISTAT,40B).NE.0) GO TO 850 GO TO 30 850 WRITE(ITY,110) 110 FORMAT("END OF TAPE") 900 WRITE(ITY,106) 106 FORMAT("DONE ?") READ(ITY,101)IDONE IF(IDONE .EQ. 2HYE) GO TO 910 WRITE(ITY,107) 107 FORMAT("MOUNT TAPE"/"POSITION TAPE(+-)FILES,(+-)RECORDS") READ(ITY,*)IFILE,IREC CALL PTAPE(IPRAM(1),IFILE,IREC) GO TO 20 910 IF(ICOPY .NE. 2HYE) GO TO 920 CALL WRITB(IPRAM(2),BUF,LENG,-1,IND2) CALL EXEC(3,100B+IPRAM(2)) CALL EXEC(3,20400B+IPRAM(2)) 920 CALL EXEC(3,20400B+IPRAM(1)) WRITE(LP,108) CT 108 FORMAT("1TOTAL NUMBER OF RECORDS = "I7) CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM ANALY(5) INTEGER IPRAM(5) INTEGER NAME1(3) INTEGER BUF1(2000) CALL RMPAR(IPRAM) NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY ITY=1 LP=6 WRITE(LP,100) 100 FORMAT("1TAPE ANALYSIS"//) 10 CALL EXEC(1,100B+IPRAM(1),BUF1,2000) CALL EXEC(13,IPRAM(1),ISTAT,ILOG) IF(IAND(ISTAT,2).NE. 0) WRITE(LP,101) 101 FORMAT(X"PARITY ERROR") IF(IAND(ISTAT,2).NE.0) GO TO 20 IF(IAND(ISTAT,200B).NE. 0) WRITE(LP,102) 102 FORMAT(X"TAPE MARK") ICHR=2*ILOG IF(IAND(ISTAT,200B).EQ.0)WRITE(LP,103)ILOG,ICHR 103 FORMAT(X"THE # OF WORDS IN THE PHYSICAL RECORD ="XI5/ C X"THE # OF BYTES = "I5) 20 WRITE(LP,105) ISTAT 105 FORMAT(X"THE STATUS WORD = "K6/) WRITE(ITY,106) 106 FORMAT("DONE ?") READ(ITY,107)IA 107 FORMAT(R2) IF(IA .EQ. 2HNO) GO TO 10 CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM SAMPL(5) INTEGER IPRAM(5) INTEGER NAME1(3) INTEGER BUF(2000),LIST(67)l!640 EQUIVALENCE(BUF(2),LIST) CALL RMPAR(IPRAM) CT=0 NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY LP=6 ITY=1 WRITE(ITY,100) 100 FORMAT("ENTER RECORD LENGTH IN BYTES") READ(ITY,*)LENG WRITE(ITY,101) 101 FORMAT("ASCII OR EBCDIC ?") 6 READ(ITY,102)IAE WRITE(ITY,103) 103 FORMAT("PRINT TAPE ?") READ(ITY,102)IP 102 FORMAT(R2) 10 IF(IAND(ISTAT,40B).NE. 0) GO TO 900 CALL EXEC(1,100B+IPRAM(1),BUF,2000) CALL EXEC(13,IPRAM(1),ISTAT,ILOG) IF(IAND(ISTAT,200B).NE. 0) GO TO 900 CT=CT+(ILOG*2)/LENG LNGTH=(LENG+1)/2 IF(IAE .EQ. 2HEB) CALL CNVEA(BUF,LNGTH) IF(MOD(LENG,2).NE.0)BUF(LNGTH)=IOR((IAND(BUF(LNGTH),177400B)),40B) IF(IP.EQ.2HYE)BUF(1)=IOR((IAND(BUF(1),377B)),20000B) IF(IP .EQ. 2HYE)CALL EXEC(2,LP,BUF,LNGTH) IF(IP .EQ. 2HNO) CALL EXEC(2,LP,LIST,LNGTH) GO TO 10 900 CONTINUE WRITE(LP,104)CT 104 FORMAT("1RECORD COUNT = "I10) CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM DISK(5) INTEGER IPR(5) INTEGER IPRAM(5) INTEGER NAME1(3) INTEGER BUF(200),CARD(40),NAME(3) LOGICAL IST EQUIVALENCE (CARD,BUF) CALL RMPAR(IPRAM) NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY DO 1 I=1,200 1 BUF(I)=2H CT=0 IND=0 ITY=1 IF(IPRAM(1) .EQ. 6) GO TO 5 WRITE(ITY,102) 102 FORMAT("ENTER RECORD LENGTH IN BYTES,&BLOCKING FACTOR") READ(ITY,*)LENG,IBLK WRITE(ITY,107) 107 FORMAT("ASCII OR EBCDID OUTPUT ?") READ(ITY,104)IEA 5 WRITE(ITY,100) 100 FORMAT("ENTER DISK FILE NAME") READ(ITY,101)(NAME(I),I=1,3) 101 FORMAT(3R2) ISEC=0 IOFF=0 IEOF=0 10 CALL READR(NAME,CARD,ISEC,IOFF,IEOF) IF(IEOF .EQ. 1) GO TO 900 CT=CT+1 11 IF(IEA.EQ.2HEB)CALL CNVAE(BUF,((LENG+1)/2)) CALL WRITB(IPRAM(1),BUF,LENG,IBLK,IND) CALL EXEC(13,IPRAM(1),ISTT,ILOG) IF(IAND(ISTT,40B).EQ.0) GO TO 10 WRITE(ITY,106) 106 FORMAT("END OF TAPE") CALL EXEC(3,20400B+IPRAM(1) ) PAUSE 1 CALL RMPAR(IPR) CALL PTAPE(IPRAM(1),IPR(1),IPR(2) ) GO TO 10 900 WRITE(ITY,103) 103 FORMAT("DONNE ?") READ(ITY,104)IDONE 104 FORMAT(R2) IF(IDONE .EQ. 2HNO) GO TO 5 CALL WRITB(IPRAM(1),BUF,LENG,-1,IND) CALL EXEC(3,100B+IPRAM(1)) CALL EXEC(3,20400B+IPRAM(1)) 910 WRITE(ITY,105)CT 105 FORMAT("RECORD COUNT = "I10) CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM COPY(5) INTEGER IPR(5) INTEGER IPRAM(5) INTEGER NAME1(3) INTEGER BUF1(2000) INTEGER BUF2(2000) LOGICAL ISTAT CALL RMPAR(IPRAM) NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY CT=0 9 IF(IAND(IST,40B).EQ.0) GO TO 10 CALL EXEC(3,20400B+IPRAM(1)) WRITE(1,101) 101 FORMAT("END OF TAPE") PAUSE 1 CALL RMPAR(IPR) CALL PTAPE(IPR(1),IPR(2),IPR(3)) 10 CALL EXEC(1,100B+IPRAM(1),BUF1,2000) CALL EXEC(13,IPRAM(1),IST,ILOG) IF(IAND(IST,200B).NE. 0) GO TO 900 11 CALL EXEC(13,IPRAM(2),ISTAT,ILG) IF(IAND(ISTAT,40B).EQ.0) GO TO 13 WRITE(1,101) CALL EXEC(3,20400B+IPRAM(2)) PAUSE 2 13 IF(ISTAT) GO TO 11 DO 12 I=1,ILOG BUF2(I)=BUF1(I) 12 CONTINUE CALL EXEC(2,20100B+IPRAM(2),BUF2,ILOG) CT=CT+1 GO TO 9 900 CALL EXEC(3,100B+IPRAM(2)) WRITE(1,102)CT 102 FORMAT("PHYSICAL RECORD COUNT = "I10) CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM CARD(5) INTEGER IPRAM(5) INTEGER NAME1(3) INTEGER BUF(200) CALL RMPAR(IPRAM) NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY CT=0 IND=0 ITY=1 IOUT=IPRAM(1) INU=7 WRITE(ITY,100) 100 FORMAT("ENTER RECORD LENGTH IN CHARACTORS") READ(ITY,*)LENG WRITE(ITY,101) 101 FORMAT("ENTER BLOCKING FACTOR") READ(ITY,*)IBLK WRITE(ITY,102) 102 FORMAT("ASCII OR EBCDIC OUTPUT?") READ(ITY,103)IAE 103 FORMAT(R2) 104 FORMAT("DONE?") GO TO 11 10 CALL EXEC(13,INU,IsSTAT,ILOG) 11 IF(IAND(ISTAT, 1B).EQ.0) GO TO 15 WRITE(ITY,104) READ(ITY,103)IEOF IF(IEOF .EQ. 2HNO) GO TO 15 GO TO 900 15 CALL EXEC(1,INU,BUF,(LENG+1)/2) CALL EXEC(13,INU,ISTAT,ILOG) IF(IAND(ISTAT,140000B).NE.0) GO TO 15 16 IF(IAE.EQ.2HEB)CALL CNVAE(BUF,((LENG+1)/2)) CALL WRITB(IOUT,BUF,LENG,IBLK,IND) CT=CT+1 CALL EXEC(13,IOUT,ISTA ,ILOG) IF(IAND(ISTA ,40B).EQ. 0) GO TO 10 WRITE(ITY,106) 106 FORMAT("END OF TAPE") CALL EXEC(3,20400+IOUT) PAUSE 1 GO TO 10 900 CALL WRITB(IOUT,BUF,LENG,-1,IND) WRITE(ITY,105)CT 105 FORMAT("RECORD COUNT = "I10) ENDFILE IOUT CALL EXEC(3,20400B+IOUT) CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM LISTC (5) INTEGER NAME(3),BUF1(40),BUF2(40) INTEGER LIST1(41),LIST2(41) LOGICAL IST1,IST2 EQUIVALENCE(LIST1(2),BUF1),(LIST2(2),BUF2) LIST1(1)=2H LIST2(1)=2H IAN = 2H NAME(1)=2HUT NAME(2)=2HIL NAME(3)=2HY CT=0 INU=7 LP=6 ITY=1 CALL EXEC(3,1100B+LP,-1) 10 CALL EXEC(13,INU,IST1,ILOG) IF(IAND(IST1,1) .EQ. 0) GO TO 20 WRITE(ITY,101) 101 FORMAT("DONE ?") READ(ITY,102)IAN 102 FORMAT(R2) IF(IAN .EQ. 2HYE) GO TO 900 20 CALL EXEC(1,INU,BUF1,40) IF(BUF1(1) .EQ. 2H//) GO TO 900 21 CALL EXEC(13,LP,IST2,ILOG) IF(IST2) GO TO 21 CALL EXEC(2,20000B+LP,LIST1,41) CT=CT+1 22 CALL EXEC(13,INU,IST1,ILOG) IF(IAND(IST1,1) .EQ. 0) GO TO 23 WRITE(ITY,101) READ(ITY,102) IAN IF(IAN .EQ. 2HYE) GO TO 900 23 CALL EXEC(1,INU,BUF2,40) IF(BUF2(1) .EQ. 2H//) GO TO 900 24 CALL EXEC(13,LP,IST2,ILOG) IF(IST2) GO TO 24 CALL EXEC(2,20000B+LP,LIST2,41) CT=CT+1 GO TO 10 900 CALL EXEC(13,LP,IST2,ILOG) IF(IST2)GO TO 900 WRITE(LP,103)CT 103 FORMAT("1RECOR3D COUNT = "I10) CALL EXEC(10,NAME) CALL UTILY END $ FTN4,L PROGRAM LISTD (5) INTEGER BUF(40),NAME(3),FILE(3) INTEGER BUF2(67) REAL ICT LOGICAL IST DO 9 I=1,67 9 BUF2(I)=2H BUF2(1)=2H NAME(1)=2HUT NAME(2)=2HIL NAME(3)=2HY LP=6 ITY=1 ISEC=0 IOFF=0 IEOF=0 ICT=0 WRITE(ITY,100) 100 FORMAT("ENTER DISK FILE NAME") READ(ITY,101)(FILE(I),I=1,3) 101 FORMAT(3R2) 10 CALL READR(FILE,BUF,ISEC,IOFF,IEOF) IF(IEOF .EQ. 1) GO TO 900 20 CALL EXEC(13,LP,IST,ILOG) IF(IST)GO TO 20 DO 30 I=1,40 30 BUF2(I+1)=BUF(I) CALL EXEC(2,20000B+LP,BUF2,67) ICT=ICT+1 GO TO 10 900 WRITE(LP,102) ICT 102 FORMAT("1RECORD COUNT = "I10) CALL EXEC(10,NAME) CALL UTILY END $ FTN4,L PROGRAM FILL (5) INTEGER IPRAM(5),NAME1(3) INTEGER FNAME(3) INTEGER TTY INTEGER STATB(10) INTEGER OFT(128),TRB(512),NAME(3),ERROR,SCODE,IUST INTEGER IOBUF(256),OVERF(4) INTEGER ICARD(40),EF EQUIVALENCE(ICARD,IOBUF) DATA OVERF/2H1 ,2H2 ,2H3 ,2H4 / CALL RMPAR(IPRAM) INU=IPRAM(1) NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY IND=0 IOFF=0 ISECT=0 NO=1 EF=0 TTY=1 LP=6 N=1 NCT=0 100 FORMAT("EFMP ERROR # "I2" STATEMENT # "I2) 101 FORMAT("EFMP FILE NAME?") 102 FORMAT(3R2) 103 FORMAT("ENTER SECURITY CODE") 104 FORMAT("EBCDIC OR ASCII ?") 105 FORMAT(R2) 106 FORMAT("ENTER INPUT FILE NAME") 107 FORMAT("EFMP FILE OVER-FLOW. OVERFLOW FILE NAME ="X3R2/"BREAF FILE CON COMPLETION OF PR. FILL") WRITE(TTY,101) READ(TTY,102)(NAME(I),I=1,3) WRITE(TTY,103) READ(TTY,*)SCODE IF(INU .EQ. 2) WRITE(TTY,106) IF(INU .EQ. 2) READ(TTY,102)(FNAME(I),I=1,3) IF((INU.NE.2).AND.(INU.NE.7))WRITE(TTY,104) IF((INU.NE.2).AND.(INU.NE.7))READ(TTY,105)IEA C DEFINE CALL EXEC(24,1,OFT,128,TRB,1,4,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100) ERROR, 1 C OPEN 9 CALL EXEC(24,4,NAME,1,1,SCODE,1,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100) ERROR, 2 CALL EXEC(24,10,1,NAME,1,1,STATB,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100) ERROR, 4 ILENG=STATB(7) 10 IF(INU .EQ. 2) CALL READR(FNAME,ICARD,IOFF,ISECT,EF) IF(EF .EQ. 1) GO TO 900 IF(INU.NE.7) GO TO 11 CALL EXEC(13,INU,ISTAT,ILOG) IF((INU.EQ.7).AND.(IAND(ISTAT,1).NE.0))GO TO 900 CALL EXEC(1,7,IOBUF,ILENG) 11 IF((INU.EQ.2).OR.(INU.EQ.7))GO TO 12 CALL READB(INU,IOBUF,(ILENG*2),IND) IF(IND .EQ. -1) GO TO 900 IF(IEA .EQ. 2HEB)CALL CNVEA(IOBUF,ILENG) 12 CONTINUE C WRITE A RECORD CALL EXEC(24,8,NAME,N,IOBUF,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100) ERROR, 3 N=N+1 IF(N .LE. STATB(6)) GO TO 10 NN=N-1 WRITE(TTY,108)NN NCT=NCT+1 C CLOSE CALL EXEC(24,5,NAME,SCODE,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100) ERROR, 5 NAME(3)=OVERF(NCT) WRITE(TTY,107)(NAME(I),I=1,3) N=1 C CREAT OVER FLOW FILE CALL EXEC(24,2,NAME,1,2000,ILENG,SCODE,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100) ERROR, 6 GO TO 9 C POST 900 CALL EXEC(24,14,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100)ERROR,7 C CLOSE CALL EXEC(24,5,NAME,SCODE,ERROR) IF(ERROR .NE. 0) WRITE(TTY,100)ERROR,8 NN=N-1 WRITE(TTY,108)NN 108 FORMAT("RECORDS STORED = "I6) CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM LOOK (5) INTEGER OFT(128),TRB(256),NAME(3),ERROR INTEGER NAME1(3),IPRAM(5),BUF(200) INTEGER SB(10),SCODE,ISTAT,OUTBF(132),ST LOGICAL ST EQUIVALENCE(OUTBF(2),BUF) DATA OUTBF/66*2H / CALL RMPAR(IPRAM) IUT=IPRAM(1) IAE=2H IND2=0 NAME1(1)=2HUT NAME1(2)=2HIL NAME1(3)=2HY CALL EXEC(24,1,OFT,128,TRB,1,2,ERROR) IF(ERROR .NE. 0) WRITE(1,100) ERROR, 1 N=1 100 FORMAT("EFMP ERROR "I2" STATEMENT # " I2) 1 WRITE(1,101) 101 FORMAT("ENTER EFMF FILE NAME") READ(1,102)(NAME(I),I=1,3) 102 FORMAT(3R2) WRITE(1,104) 104 FORMAT("ENTER SECURITY CODE") READ(1,*)SCODE IF(IUT .EQ. 6) GO TO 5 WRITE(1,106) 106 FORMAT("ENTER BLOCKING FACTOR") READ(1,*)IBLK WRITE(1,108) 108 FORMAT("ASCII OR EBCDIC OUTPUT ?") READ(1,109) IAE 109 FORMAT(R2) 5 CALL EXEC(24,4,NAME,1,1,SCODE,1,ERROR) IF(ERROR .NE. 0) WRITE(1,100) ERROR, 2 CALL EXEC(24,10,1,NAME,1,1,SB,ERROR) IF(ERROR .NE. 0) WRITE(1,100) ERROR, 3 10 CALL EXEC(24,6,NAME,N,BUF,ERROR) IF(ERROR .NE. 0) WRITE(1,100) ERROR, 4 11 CALL EXEC( 13,IUT,ST,ILOG) IF(IUT .EQ. 6) GO TO 14 IF(IAND(ST,40B) .EQ.0) GO TO 12 WRITE(1,105) 105 FORMAT("END OF TAPE, MOUNT ANOTHER") CALL EXEC(3,20400B+IUT) PAUSE 1 CALL RMPAR(IPRAM) CALL PTAPE(IUT,IPRAM(1),IPRAM(2) ) 12 IF(IAE .EQ. 2HEB) CALL CNVAE(BUF,SB(7) ) CALL WRITB(IUT,BUF,(2*SB(7)),IBLK,IND2) GO TO 16 14 IF(ST) GO TO 11 CALL EXEC(2,20000B+6,OUTBF,SB(7)+1) 16 N=N+1 IF(N .LE. SB(10) ) GO TO 10 WRITE(1,110) 110 FORMAT("DONE ?") READ(1,109)IDONE IF(IDONE .EQ. 2HNO) GO TO 1 IF(IUT .EQ. 6) GO TO 17 CALL WRITB(IUT,BUF,(SB(7)*2),-1,IND2) CALL EXEC(3,100B+IUT) CALL EXEC(3,20400B+IUT) IUT=1 17 WRITE(IUT,107)SB(10) 107 FORMAT(" RECORD COUNT ="I10) CALL EXEC(24,5,NAME,0,ERROR) IF(ERROR .NE. 0) WRITE(1,100) ERROR, 5 CALL EXEC(10,NAME1) CALL UTILY END $ FTN4,L PROGRAM FILCD (5) C C THIS PROGRAM FILLS DISK FILES FROM C THE CARD READER OR MAG TAPE. C IT WILL STORE THE DATA IN BINARY OR ASCII FORM C DROPPIx:NG TRAILING BLANKS OR ZEROS, IF ASCII OR BINARY C IT WILL ALSO STORE EBCDIC IN BINARY FORM. C INTEGER IPRAM(5) INTEGER INBUF(200),NAME(3),FILE(3) CALL RMPAR(IPRAM) IEA=2H ITYPE=0 IND1=0 INU=IPRAM(1) DO 8 I=1,200 8 INBUF(I)=2H CT=0 NAME(1)=2HUT NAME(2)=2HIL NAME(3)=2HY ITY=1 IND=0 WRITE(ITY,101) 101 FORMAT("ENTER DISK FILE NAME") READ(ITY,102)(FILE(I),I=1,3) 102 FORMAT(3R2) IF(INU.EQ. 7) GO TO 10 WRITE(ITY,107) 107 FORMAT("ENTER RECORD LENGTH IN BYTES") READ(ITY,*)ILENG 108 FORMAT("ENTER (1) FOR BINARY INPUT,(0) FOR ASCII INPUT_") WRITE(ITY,108) READ(ITY,*)ITYPE WRITE(ITY,109) 109 FORMAT(" CONVERT EBCDIC TO ASCII ?") READ(ITY,110) IEA 110 FORMAT(R2) IF(ITYPE .EQ. 0) GO TO 10 DO 9 I=1,200 9 INBUF(I)=0 10 CALL EXEC(13,INU,ISTAT,ILOG) 11 IF(INU .EQ. 7) GO TO 14 IF(IAND(ISTAT,40B) .EQ. 0) GO TO 12 WRITE(ITY,106) 106 FORMAT("END OF TAPE") PAUSE 1 CALL RMPAR(IPRAM) CALL PTAPE(INU,IPRAM(1),IPRAM(2) ) 12 CALL READB(INU,INBUF,ILENG,IND1) IF(IND1 .EQ. -1) GO TO 900 IF(IEA .EQ. 2HYE)CALL CNVEA(INBUF,(ILENG/2)) GO TO 16 14 IF(IAND(ISTAT,1).EQ. 0) GO TO 15 WRITE(ITY,103) 103 FORMAT("DONE ?") READ(ITY,104)IAN 104 FORMAT(R2) IF(IAN .EQ. 2HYE) GO TO 900 15 IF(INBUF(1) .EQ. 2H//) GO TO 900 CALL EXEC(1,INU,INBUF,40) 16 CALL WRITR(INBUF,FILE,ITYPE,IND) CT=CT+1 GO TO 10 900 CALL WRITR(INBUF,FILE,-1,IND) IF(INU .NE. 7) CALL EXEC(3,20400B+INU) WRITE(ITY,105)CT 105 FORMAT("RECORD COUNT = " I10) CALL EXEC(10,NAME) CALL UTILY END $ FTN4,L PROGRAM UTILY INTEGER COPY(3),LIST(3),ANALY(3),SAMPL(3) ,CARD(3),DISK(3) INTEGER CNVT(3),LISTC(3),LISTD(3),FILL(3),LOOK(3),FILCD(3) DATA COPY/2HCO,2HPY,2H / DATA LIST/2HLI,2HST,2H / DATA ANALY/2HAN,2HAL,2HY / DATA SAMPL/2HSA,2HMP,2HL / DATA CARD/2HCA,2HRD,2H / DATA DISK/2HDI,2HSK,2H / DATA CNVT /2HCN,2HVT,2H / DATA LISTC /2HLI,2HST,2HC / DATA LISTD /2HLI,2HST,2HD / DATA FILL /2HFI,2HLL,2H / DATA LOOK /2HLO,2HOK,2H / DATA FILCD /2HFI,2HLC,2HD / ITY=1 10 WRITE(ITY,100) 100 FORMAT("ENTER ACTION REQUEST") READ(ITY,*)IACT,I1,I2,I3 C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C C 0 = END OF PROGRAM C 1 = POSITION TAPE C 2 = CARD TO DISK C 3 = CARD TO LIST C 4 = CARD TO EFMP FILE C 5 = DISK FILE TO LIST C 6 = EFMP FILE TO LIST C 7 = DISK FILE TO EFMP FILE C 8 = TAPE MARK C 9 = CARD TO TAPE C 10 = SAMPLE LISTING C 11 = DISK FILE TO TAPE C 12 = ANALYSIS C 13 = TAPE TO DISK FILE C 14 = TAPE TO EFMP FILE C 15 = EFMP FILE TO TAPE C 16 = REWIND C 17 = LIST TAPE C 18 = PRINT TAPE LISTING C 19 = FAST COPY C 20 = CONVERT ASCII TO EBCDIC C 21 = CONVERT EBCDIC TO ASCII C C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IF(IACT .EQ.0) GO TO 900 IF(IACT .EQ. 1) CALL PTAPE(I1,I2,I3) IF(IACT .EQ. 2) CALL EXEC(8,FILCD,7) IF(IACT .EQ. 3) CALL EXEC(8,LISTC) IF(IACT .EQ. 4)CALL EXEC(8,FILL,7) IF(IACT .EQ. 5) CALL EXEC(8,LISTD) IF(IACT .EQ. 6) CALL EXEC(8,LOOK,6) IF(IACT .EQ.7) CALL EXEC(8,FILL,2) IF(IACT .EQ. 8) ENDFILE I1 IF(IACT .EQ. 9) CALL EXEC(8,CARD,I1) IF(IACT .EQ. 10) CALL EXEC(8,SAMPL,I1) IF(IACT .EQ. 11) CALL EXEC(8,DISK,I1) IF(IACT .EQ. 12) CALL EXEC(8,ANALY,I1) IF(IACT .EQ. 13) CALL EXEC(8,FILCD,I1) IF(IACT .EQ. 14) CALL EXEC(8,FILL,I1) IF(IACT .EQ. 15) CALL EXEC(8,LOOK,I1) IF(IACT .EQ.16)CALL EXEC(3,20400B+I1) IF(IACT .EQ. 17) CALL EXEC(8,LIST,I1,I2,0) IF(IACT .EQ. 18) CALL EXEC(8,LIST,I1,I2,6401) IF(IACT .EQ. 19) CALL EXEC(8,COPY,I1,I2) IF(IACT .EQ. 20)CALL EXEC(8,CNVT,I1,I2,0) IF(IACT .EQ. 21)CALL EXEC(8,CNVT,I1,I2,1) GO TO 10 900 END $ <6  22681-18027 1500 SC 0622 DOS-M UTILITY PROGRAM GROUP             H0106  HED ** SALOD : OFF-LINE RELOCATING LOADER FOR SA-1 ** * THIS PROGRAM WAS GENERATED BY MODIFICATION OF THE * OFF-LINE RELOCATING LOADER H-P 22297A. THE MODIFICATIONS * WERE DESIGNED AND PROGRAMED BY WESLEY R. WHITE. * * THE FUNCTION OF THE LOADER IS TO LOAD AND LINK RELOCATABLE * OBJECT PROGRAMS PRODUCED BY THE FORTRAN COMPILER AND BY * THE HPAP AND SA-1 ASSEMBLERS. * * OBJECT (BINARY-FORMAT) PROGRAMS ARE LOADED IN * A -PAGE FREE- MANNER IN THAT A PROGRAM MAY CROSS * A PAGE OR MODULE BOUNDARY AT ANY POINT. REFERENCES * TO OPERANDS LOCATED IN A PAGE OTHER THAN THE * INSTRUCTION PAGE ARE COMPLETED BY ESTABLISHING * A WORD IN BASE PAGE TO CONTAIN THE FULL 15-BIT * ADDRESS OF THE OPERAND. THE INSTRUCTION WORD IS * ALTERED TO INDIRECTLY REFERENCE THE WORD IN * BASE PAGE TO ADDRESS THE OPERAND. * * THIS VERSION IS SET TO RUN IN 8K AND PRODUCE ABSOLUTE TAPE FOR * AN 8K COMPUTER, BUT WITH AN OVERLAY, IT MAY BE MODIFIED TO * PRODUCE TAPE FOR ANY SIZE MACHINE TO 32K. IT IS SELF-INITIALIZING * & MAY BE RESTARTED ANY TIME FROM LOCATION 12000B. * * THIS VERSION RELIES ON SIO DRIVERS FOR I/O. THIS PROGRAM * MOVES THE LINKS FROM THE BASE PAGE TO THE * 12000 PAGE, SO THAT THE AREA AT 100B IS AVAILABLE * FOR BASE PAGE LINKAGE IN THE PROGRAM BEING LOADED. * THE FIRST TIME THIS PROGRAM IS LOADED FROM THE ASSEMBLER * OUTPUT, IT PUNCHES OUT A CONFIGURED VERSION OF ITSELF. * THIS CONFIGURED TAPE CONTAINS THE TRANSPOSED LINKS, * THE SIO DRIVERS, AND THE VARIABLE-BOUNDS OVERLAY, IF * IT WAS INCLUDED. * * POINTER WORDS ARE PROVIDED TO DIRECT THE VARIABLE-BOUNDS OVERLAY: * (13775) IS A POINTER TO .LDR., THE INITIALIZATION SECTION, * (13776) IS A POINTER TO THE LOADER SYMBOL TABLE LOWER LIMIT, * (13777) IS A POINTER TO THE INITIAL MEMORY TABLE (MEM). * ORG 11765B * ***** LST - LOADER SYMBOL TABLE ******* * * THE FIXED (OR SYSTEM) SEGMENT OF THE LST * MUST APPEAR IN THIS SECTION. THE TABLE IS * CONSTRUCTED IN REVERSE ORDER, I.E. EXTE%LNDING * TOWARDS LOW MEMORY. * A FIXED ENTRY IS CONSTRUCTED AS: * * EXT SYMBL * 4 - DEF SYMBL (HOLDS ENT ABSOLUTE ADDR) * 3 - OCT XX000 CHAR 5 FOLLOWED BY ZER0S * 2 - ASC 1, CHARS 3,4 OF NAME * 1 - ASC 1, CHARS 1,2 OF NAME * NOP .HALT NOP THIS LOCATION IS SET BY .LDR. OCT 20000 TO BE THE LAST LOCATION BEFORE ASC 1,LT THE BASIC BINARY LOADER IN ASC 1,HA THE TARGET COMPUTER. NOP .MEM NOP THIS LOCATION IS SET BY .LDR. OCT 27000 TO DEFINE THE LOCATION OF THE ASC 1,EM MEMORY MAP IN THE ASC 1,.M TARGET COMPUTER (JUST ABOVE COMMON). LST DEC 2 HOLDS NO.OF FIXED ENTRIES. * * JMP 12010B,I INPUT BSS 1 LINK FOR PUNCHED TAPE INPUT LIST BSS 1 LINK FOR LIST OUTPUT PTOUT BSS 1 LINK FOR PUNCHED TAPE OUTPUT KYBD BSS 1 LINK FOR KYBD INPUT DEF SEND END OF THIS PROGRAM BSS 1 BSS 1 DEF .LDR. * * THIS IS THE MAIN SECTION OF THE ABSOLUTE RECORD * OUTPUT OPTION. THIS OPTION PROVIDES FOR * SIMULATED LOADING AND PRODUCING A BINARY TAPE * OF ALL LOADED PROGRAMS AND LINKAGE AREA. THE * TAPE IS THEN LOADED BY THE BASIC BINARY * LOADER. THE PURPOSE OF THIS OPTION IS TO * ALLOW FOR LOADING PROGRAMS INTO THE MEMORY * OCCUPIED BY THE RELOCATABLE LOADER. THIS * OPTION IS USEFUL IN A 4K MEMORY CONFIGURATION * OR IN A LARGER CONFIGURATION WHERE MEMORY * OVERFLOW ABORTS LARGE PROGRAM LOADING. * * ABREC OCT 0 BSS 46 BUFFER FOR ABSOLUTE RECORD * * SUBROUTINE PACK * * CALLING SEQUENCE: * * (A) = RELOCATED DATA/INSTRUCTION WORD * (P) JSB PACK * (P+1) -RETURN- * PACK NOP STA ABL1,I STORE WORD AT NEXT LOCATION ISZ ABL1 IN BUFFER, INCREASE ADDRESS. ADA CKS ADD WORD TO CHECKSUM STA CKS AND RESTORE WORD ISZ ABREC COUNT WORD JMP PACK,I AND EXIT. * * SUBROUTINE: PUNCH * * CALLING SEQUENCE: (P) JSB PUNCH * (P+1) -RETURN- A,B DESTROYED * PUNCH NOP ENTRY/EXIT LDA CKS ADD LOAD ADDRESS TO CHECK-SUM ADA ABREC+1 AND SET RECORD SUM STA ABL1,I IN LAST WORD OF RECORD. LDA ABREC ADD 2 TO RECORD WORDCOUNT ALF,ALF POSITION AS FIRST CHAR. AND STA ABREC SET. ALF,ALF REPOSITION, ADD 3 FOR TOTAL ADA C.03 LENGTH AND SET FOR CMA,INA LDB ABRCI LENGTH OF OUTPUT * JSB PTOUT,I PUNCH * CLA INITIALIZE STA ABREC FOR STA CKS NEXT LDA ABL2 RECORD STA ABL1 OUTPUT JMP PUNCH,I EXIT- * * SUBROUTINE: LTG (LEADER/TRAILER GENERATOR) * LTG NOP LDA ABRCI SET (ABREC) INA = ADDRESS STA ABREC OF ABREC LDB ABRCI-1 -46 SET ABREC+1 CLA TO STA ABREC,I ABREC+46 ISZ ABREC = ZERO INB,SZB JMP *-3 STA ABREC CLEAR ABREC * LDA ABRCI+1 -47 LDB ABRCI * JSB PTOUT,I PUNCH LEADER/TRAILER * JMP LTG,I EXIT. * CKS OCT 0 HOLDS COMPUTED CHECKSUM ABL1 DEF ABREC+2 HOLDS CURRENT BUFFER ADDRESS ABL2 DEF ABREC+2 DEC -46 ABRCI DEF ABREC DEC -47 * ** ROUTINE : FINIS * THIS ROUTINE IS ENTERED FROM THE END-OF-LOADING SECTION * AND COMPLETES THE CONFIGURING OF INSTRUCTIONS WHICH REFERENCE * EXTERNALS WITH OFFSET (OR INDIRECT). * FINIS LDA M1777 STA FST4 LDA FSTPX CMA STA FSTPX FINI1 JSB FSTP ADJUST POINTERS TO FINISH TABLE. JMP PLINK EXIT TO PLINK AT END OF TABLE. LDA FST4,I GET .R TO EXT VALUE. LDA A,I GET EXTERNAL VALUE. ADA FST1,I ADD OFFSET. LDB FST3,I GET OP CODE SZB,RSS IF NONE, 4# JMP STORE JUST STORE WORD. LDB A OTHERWISE, SAVE OPERAND, LDA FST2,I GET *, AND CHECK WHETHER JSB CPAGE THEY'RE ON SAME PAGE. IOR FST3,I INCLUDE OP CODE, STORE STA ABL1,I AND SET IT UP ISZ ABL1 FOR P ADA CKS U STA CKS N ISZ ABREC C LDA FST2,I H STA ABREC+1 I JSB PUNCH N JMP FINI1 G FSTP NOP LDA FST4 MOVE INA STA FST1 POINTERS INA STA FST2 TO INA STA FST3 FINISHING INA STA FST4 TABLE. ISZ FSTPX END OF TABLE? ISZ FSTP NO, BUMP RETURN. JMP FSTP,I FST1 NOP .R TO OFFSET FST2 NOP .R TO * FST3 NOP .R TO OP CODE FST4 NOP .R TO .R TO EXT VALUE. FSTPX NOP COUNTER FOR FINISH TABLE. * * ** ROUTINE : PLINK * THIS ROUTINE IS ENTERED FROM THE FINISH * SECTION AND PERFORMS THE FOLLOWING: * 1.PUNCHES BASE PAGE LINKAGE AREA. * 2.PUNCHES MEMORY TABLE JUST ABOVE LWAC. * 3.PUNCHES A JMP 3,I IN 2 AND THE EXECUTION POINT IN 3. * DEF MEM+1 POINTS TO STARTING LWABP PLINK LDA LWABA,I GET PRESENT LWABP CPA PLINK-1,I =ORIG LWABP ? JMP *+7 YES,NO LINKAGE AREA ESTABLISHED. * INA SET LINKAGE STA PLK1 AREA BOUNDS LDA PLINK-1,I INA = TOP OF LINK AREA + 1 STA PLK3 PUNCH JSB PLK USER LINKAGE AREA. * LDB CM.7 SET UP STB PLK2 A COUNTER. LDA PLK3+1 GET .R TO MEMORY TABLE STA PLK1 IN PRESENT LOCATION. LDA .MEM.,I GET .R TO MEMORY TABLE STA ABREC+1 AS IT WILL BE IN TARGET. PLOOP LDA PLK1,I TRANSFER JSB PACK MEMRY ISZ PLK1 TO ISZ PLK2 ABSOLUTE JMP PLOOP TAPE. JSB PUNCH ǹ LDA JMP3 PACK JSB PACK JMP 3,I LDA EXP,I AND JSB PACK EXECP. LDA C.02 PUNCH THEM STA ABREC+1 STARTING JSB PUNCH AT 2. * JSB LTG MAKE FINAL TRAILER JSB LTG JSB LTG * * * CHECK FOR LST TO BE PRINTED. * LDA ENDM-1 PRINT MESSAGE LDB C.04 - *LST - JSB LOUTA,I HLT 0 HALT FOR SR SETTING LIB 01 GET SWITCH REGISTER CLA,INA SET A NOT = 0 FOR EPL SSB,RSS IF SWITCH 15 = 0, JSB EPLA,I LDA ENDM PRINT MESSAGE LDB C.04 - *END - JSB LOUTA,I HLT77 HLT 77B ** FINAL HALT ** JMP 12000B ** & RESTART ** * DEF LSTM+1 ENDM DEF *+1 ASC 2,*END .MEM. DEF .MEM * PLK NOP LDA CM.45 INITIALIZE COUNTER STA PLK2 FOR MAX. BLOCK SIZE OF 45 WORDS. LDA PLK1 STORE LOAD ADDR. OF BLOCK STA ABREC+1 IN WORD 2 OF BUFFER. * LDA PLK1,I STORE CURRENT BLOCK JSB PACK WORD IN BUFFER. ISZ PLK1 ADD 1 TO CURRENT BLOCK ADDR. LDA PLK1 IF CURRENT BLOCK CPA PLK3 TERMINATED, GO TO JMP *+5 PUNCH LAST BLOCK. ISZ PLK2 INDEX COUNTER. JMP *-7 BUFFER NOT FILLED. JSB PUNCH BUFFER FILLED - PUNCH JMP PLK+1 FILL NEXT BUFFER. * JSB PUNCH PUNCH LAST BUFFER - JMP PLK,I EXIT. * NOP TEMPORARY HOLE PLK1 NOP HOLDS FWA PUNCH AREA PLK2 NOP HOLDS BUFFER INDEX PLK3 NOP HOLDS LWA+1 PUNCH AREA DEF MEMRY LOWER LIMIT OF MEMORY TABLE. CM.45 DEC -45 JMP3 JMP 3,I * ** END OF ABSOLUTE RECORD SECTION ********** * ***************************************************** * * **** LOADER * MAIN CONTROL SECTION * **** * * THIS SECTION CONTROLS THE INPUT OF OBJECT * PROGRAMS FROM THE STANDARD INPUT AND PROGRAM * LIBRARY DEVICES. THE TRANSFER OF CONTROL TO * THE APPROPRIATE RECORD PROCESSORS IS MADE * FROM THIS SECTION. EACH PROCESSOR (EXCEPT * NAM PROCESSOR) RETURNS TO THE LABEL -LDRIN-. * LOUTA DEF LOUT TEMP BSS 1 LW RELEASABLE+2 FOR DIRECT LOAD. RBKOD OCT 1000 CKCTR DEC -3 DEC -3 EXP DEF EXECP EPLA DEF EPL * * INPUT RECORD, LEGALITY CHECK AND CHECKSUM SECTION * LDRIN LDA CM.60 INPUT ONE LDB LBUFI BINARY JSB INPUT,I RECORD SZA,RSS END OF TAPE ? JMP ENDCA,I YES, GO TO END CONDITION SECTION. * * CHECK RECORD LEGALITY * LDA LBUF1,I GET WORD 2 OF RECORD, ALF,RAR ROTATE RIC FIELD TO AND M.07 LOW A AND ISOLATE CODE. STA RIC SAVE CODE FOR PROCESSING. SZA IF RIC = 0, SKIP ADA CM.6 SUBTRACT 6 TO TEST FOR 1 TO 5. SSA,RSS IF RESULT IS POSITIVE OR JMP LER2 ZERO, ERROR. ILLEGAL RECORD. * * LEGAL RECORD - COMPUTE AND CHECK CHECKSUM * LDB LBUFI,I GET RECORD BLF,BLF WORD COUNT CMB,INB AND SUBTRACT ADB C.03 3 FOR USE AS COUNTER SSB,RSS (PROTECTION AGAINST JMP IN.3 LT 4-WORD RECORD.) LDA LBUF1,I IN COMPUTING STB TEMP CHECKSUM. SAVE -WORD COUNT LDB LBUFI SET B = ADDRESS ADB C.03 OF WORD 4. ADA B,I ADD INB REMAINING ISZ TEMP WORDS IN. JMP *-3 RECORD - SUM IN A CPA LBUF2,I COMPARE SUM TO CHECKSUM IN RECORD JMP LDRC EQUAL, ASSUME RECORD GOOD. * * CHECKSUM ERROR * IN.3 LDA ERR01 SET ERROR CODE 01 JSB DIAGI,I PRINT DIAGNOSTIC *L01 HLT 03 ERROR HALT- JMP LDRIN RESTART TO RE-READ. * LDRC LDA EXP-1 =-3 RESET STA CKCTR CK ERR CTR. LDA RIC (A) = RECORD TYPE LDB PLFLG (B) = PROGRAM LOADING FLAG CPA C.02-1 =-1 IF RIC = 1, THEN GO TO PROCESS JMP LDRC3 NAM RECORD. ( SSB,RSS IF FLAG = 0 (NOT LOADING), THEN JMP LDRC7 RECORD-OUT-OF-SEQUENCE OR LIB- CPA C.02 RARY SKIP. IF RIC = 2, THEN JMP ENTRA,I GO PROCESS ENT RECORD. LDB EXMFL IF EXMFL = -1, GO TO TRANSFER SSB SECTION. EXMFL = 0 OR 1 MEANS JMP LDRC2 LOADING FROM LIBRARY. * * LOADING FROM PROGRAM LIBRARY * SZB,RSS IF EXMFL = 0, THEN NO ENT MATCHES JMP LDRC5 AN EXT IN LST - GO TO BYPASS CCB ENT/EXT MATCH. SET EXMFL = -1 TO STB EXMFL CONTINUE LOADING PROGRAM. JSB NAMR PPOCESS SAVED NAM RECORD. JSB LSTIA,I INITIALIZE LST PROCESSOR. LDRC1 JSB LSTPA,I SET LST ENTRY ADDRESSES. JMP LDRC2-1 - END OF LST. LDB LST4A,I (B) = ADDRESS OF WORD 4 LST ENTRY LDA B,I EXAMINE WORD 4- ENT ADDRESS. SSA,RSS IF ENT ADDRESS IS POSITIVE, THEN JMP LDRC1 GO CHECK NEXT ENTRY. * JSB RELNA,I RELOCATE ENT ADDR (FROM LIB.) LDA LST5A,I GET (LST5) LDA A,I IF EXT LINK ADDRESS ALREADY SZA DEFINED, STORE RELOCATED STB A,I ENT ADDR. IN LINK. JMP LDRC1 REPEAT THRU LST. * LDA RIC RESET A = RIC. * * TRANSFER TO RECORD PROCESSOR SECTION. * LDRC2 CPA C.03 IF RIC = 3, GO TO JMP DBLR DBL RECORD PROCESSOR. CPA C.04 IF RIC = 4, GO TO JMP EXTRA,I EXT RECORD PROCESSOR. * * END RECORD PROCESSOR * LDA LBUF1,I EXAMINE A FIELD OF WORD 2. STA UEXFL INITIALIZE UNDEF. EXT FLAG NOT =0 SLA,RSS IF NO TRANSFER ADDRESS PRESENT, JMP ENDR1 GO TO CLEAR SECTION. LDB LBUF3,I GET EXECUTION POINT ADDRESS. ARS PUT RELOCATION BYTE IN LOW . JSB RELED ADD RELOCATION BASE TO , STB EXP,I AND SAVE. ENDR1 JSB LSTIA,I INITIALIZE LST PROCESSOR ENDR2 JSB LSTPA,I SET LST ENTRY ADDRESSES. JMP ENDR3 -END OF LST. LDB LST3A,I GET (LST3) LDA B,I GET WORD 3 OF EACH AND UPCM LST ENTRY - CLEAR BITS 07-00 STA B,I (EXT ORD FIELD) AND RESET. LDA LST4I,I IF WORD 4 OF THE ENTRY, SZA,RSS ENT ADDRESS, = 0, SET UEXFL STA UEXFL = 0 TO SAY UNDEFINED EXT. JMP ENDR2 REPEAT THRU LST. * ENDR3 LDA FTNFL GO TO BOUNDS SSA,RSS LIST IF JMP ENDR4 NOT A FTN PROGRAM. LDB BND+1 SUBTRACT 1 FROM ADB CM.1 NEW FWA TO GET UPPER STB BND+1 BOUND OF PROGRAM. * ENDR4 LDA MAPFA,I IF NAME/BOUNDS LIST IS TO SSA BE DELETED, GO SET JMP ENDR6 FOR NEXT PROGRAM LOAD. LDA BOUND (A) = ADDR. OF 6-WORD AREA. LDB BND IF NO PROGRAM SZB,RSS ALLOCATION (LOWER BOUND = 0) JMP ENDR5 GO CHECK FOR BASE PAGE ALLOC. JSB CONVA,I CONVERT LOWER BOUND. LDB BND+1 CONVERT JSB CONVA,I UPPER BOUND. LDA BOUND PRINT LDB D.12 BOUNDS OF JSB LOUTA,I PROGRAM AREA. * ENDR5 LDA BOUND IF NO LDB BND+2 BASE PAGE ALLOCATION MADE, SZB,RSS GO TO SET FOR JMP ENDR6 NEXT LOAD. JSB CONVA,I CONVERT LOWER BP BOUND. LDB BND+3 CONVERT UPPER JSB CONVA,I BASE PAGE BOUND. LDA BOUND PRINT LDB D.12 BASE PAGE JSB LOUTA,I BOUNDS * * CHECK FOR COMPLETION OF LIBRARY LOADING. * ENDR6 LDA LIBFL (A) = LIBRARY LOADING FLAG. LDB UEXFL (B) = WORD USED FOR STATING SZA UNDEFINED EXTS. IF NOT LOADING SZB,RSS FROM LIB OR IF UNDEFINED EXTS, JMP LDRC6 GO TO LOAD NEXT PROGRAM. JMP END2A,I END OF LIBRARY LOADING. * * PROCESSING NAM RECORD SECTION. * LDRC3 SZB IF PLFLG NOT = 0, THEN NAM RECORD JMP LDRC8 OUT OF ORDER - ERROR. * LDA M.07+1 =-9 SET TO STA TEMPB MOVE 9 WORD LDA NBAA,I NAM RECORD STA TEMPC TO LDP640B LBAA,I NBUF. * LDA B,I MOVE NAM STA TEMPC,I RECORD ISZ TEMPC TO INB NAM ISZ TEMPB BUFFER JMP *-5 AREA * CCA SET PLFLG AND STA PLFLG EXMFL = -1 TO SAY y6 STA EXMFL LOAD. * LDA LIBFL IF LOADING SZA FROM PROGRAM LIBRARY, GO TO JMP LDRC4 SAVE LST AND LWAM VALUES * * LOADING FROM STANDARD INPUT * JSB NAMR ALLOCATE MEMORY FOR PROGRAM JMP LDRIN GO TO PROCESS NEXT RECORD. * * LIBRARY LOADING. * LDRC4 LDA LSTAI,I SAVE CURRENT LST AND LWA AVAIL. STA LSTS MEMORY FOR LATER RESTORATION LDA LWAMA,I IF CURRENT PROGRAM IS STA LWAMS NOT TO BE LOADED. CLA SET EXMFL = 0 TO STA EXMFL SAY LOADING FROM LIBRARY. JMP LDRIN GO TO PROCESS NEXT RECORD. * * * RESET PROCESSING - PROGRAM FROM LIBRARY IS * NOT TO BE LOADED. * LDRC5 LDA LSTS RESET ORIGINAL (BEFORE CURRENT STA LSTAI,I PROGRAM) LST LENGTH. LDA LWAMS RESET ORIGINAL LWA STA LWAMA,I AVAILABLE MEMORY. LDRC6 CLA SET PLFLG = 0 TO SAY END OF PROG- STA PLFLG RAM OR TO FORCE A SKIP OF PROG. JMP LDRIN * * RECORD OUT-OF-SEQUENCE CHECK * LDRC7 LDA LIBFL IF LOADING FROM LIBRARY, THEN SZA FLAG SAYS TO SKIP REMAINING JMP LDRIN RECORDS IN PROGRAM. * LDRC8 LDA ERR09 RECORD OUT OF SEQUENCE JMP ERRA,I * LER2 LDA ERR02 JMP IN.3+1 * * CONSTANT/STORAGE SECTION FOR MAIN CONTROL SECTION. * RIC OCT 0 HOLDS RECORD IDENTIFICATION CODE OCT 1 C.02 OCT 2 C.03 OCT 3 C.04 OCT 4 CM.6 DEC -6 CM.7 DEC -7 M.07 OCT 7 DEC -9 CM.60 DEC -60 LB2I DEF LBUF+2,I LBI DEF LBUF,I RELNA DEF RELEN FWABA DEF FWABP LWABA DEF LWABP FWAMA DEF FWAM LWAMA DEF LWAM LWACA DEF LWAC LBUFI DEF LBUF ENDCA DEF ENDC LBUF1 DEF LBUF+1 LBUF2 DEF LBUF+2 ERR01 ASC 1,01 ERR02 ASC 1,02 ERR06 ASC 1,06 ERR09 ASC 1,09 DIAGI DEF DIAG ENTRA DEF ENTR LSTIA DEF LSTI LSTPA DEF LSTP LST3A DEF LST3 LST3I DEF LST3,I LST4A DEF LST4 LST5A DEF LST5 LST5I DEF LST5,I EXTRA DEF EXTR LBUF3 DEF LBUF+3 MAPFA DEF MAPF CONVA DEF CONV D.12 DEC 12 END2A DEF ENDC2 NBAA DEF NBUFA LBAA DEF LBUFA TEMPB OCT 0 TEMPC OCT 0 LST4I DEF LST4,I LSTAI DEF LSTA,I ERRA DEF ERROR LIBFL OCT 0 LIBRARY LOADING FLAG:=0, INPUT,=-1,LIB. PLFLG OCT 0 LOADING FLAG:=0,NO,=-1,YES EXMFL OCT 0 ENT/EXT MATCH:=-1 DURING INPUT LOADING * FOR LIBRARY LOADING: =0,NO MATCH, =1, MATCH. * UPCM OCT 177400 MASK FOR UPPER 8-BITS. LSTS OCT 0 USED DURING LIBRARY LOADING TO LWAMS OCT 0 SAVE LST AND LWA AVAIL. MEM. VALUES. * A EQU 0 B EQU 1 * BND BSS 4 HOLDS PROGRAM BOUNDS FOR LISTING. * FTNFL OCT 0 FLAG WORD FOR DESIGNATING * WHETHER A FORTRAN GENERATED * PROGRAM IS BEING LOADED: * BIT 15 = 1, YES. = 0, NO. * UEXFL OCT 0 UNDEFINED EXT FLAG, =0,YES * * ********************************************* * * - NAMR - * NAME ( NAM - RIC = 1 ) RECORD PROCESSOR * * PURPOSE: 1) LIST PROGRAM NAME * * 2) ALLOCATE MEMORY NEEDED FOR * LOADING THE MAIN SECTION OF A * PROGRAM, THE BASE PAGE * SECTION (OPTIONAL) AND A * COMMON DECLARATION. * * 3) UPDATE MEMORY TABLE TO REFLECT * NEW BOUNDS OF AVAILABLE * MEMORY * * 4) ESTABLISH THE RELOCATION BASES * FOR THE SECTIONS OF A PROGRAM * * * OPERATION: * * * THIS PROCESSOR OPERATES AS A CLOSED SUB- * ROUTINE CALLED BY THE MAIN CONTROL * SECTION OF THE LOADER. THE NAM RECORD * IS MOVED FROM LBUF TO NBUF BEFORE THE * PROCESSOR IS ENTERED. CONTROL IS RETURNED * TO P+1 IN THE CALL. THERE ARE NO ERROR * RETURNS. * * SPECIAL PROCESSING IS MADE FOR ALLOCATING * STORAGE FOR A FORTRAN GENERATED PROGRAM. (A * FORTRAN GENERATED OBJECT PROGRAM IS IDENT- * IFIED BY BIT 15 OF WORD 7 OF THE NAM RECORD * = 1.) THE PROGRAM LENGTH IN WORD 7 MAY BE * GREATER THAN THE ACTUAL LENGTH. TO INSURE * THAT THE ACTUAL LENGTH IS USED TO REFLECT * THE MEMORY ALLOCATION, THE UPPER BOUND AND * NEW FWA AVAILABLE MEMORY ARE NOT SET UNTIL * THE PROGRAM IS LOADED. * * NAMR NOP ENTRY/EXIT LDA MAPFA,I IF MAP IS TO SSA BE DELETED, JMP NM1 SKIP NAME OUTPUT * * LDA NBUFB WRITE ADA C.03 PROGRAM NAME LDB C.05 ON JSB LOUTA,I TELETYPE. * NM1 CLA CLEAR WORDS STA BND HOLDING LOWER BOUND VALUES - STA BND+2 (FOR BOUNDS LIST IN -ENDR-) * * ALLOCATE BASE PAGE STORAGE * LDA NB7A,I CHECK FOR BASE PAGE ALLOCATION SZA,RSS IF NO BP ALLOCATION, JMP NM2 CHECK FOR PROGRAM ALLOCATION. LDB MEMAD (B) = ADDR. OF BASE PAGE MT. JSB ALLOC ATTEMPT ALLOCATION. JMP LER3A,I - OVERFLOW OF BASE PAGE - LDA BND SET BP AREA ORIGIN STA BND+2 IN BND+2, AND STA BPREL IN RBT TABLE. LDA BND+1 SET UPPER BOUND IN STA BND+3 BND+3. CLA SET BND = 0 IN CASE NO MAIN STA BND ALLOCATION IS MADE. * * ALLOCATE PROGRAM AREA STORAGE * NM2 LDA NB6A,I (A) = PROGRAM LENGTH STA FTNFL SET FORTRAN LOADING FLAG - BIT 15 SZA,RSS IF PROGRAM LENGTH = 0, JMP NM5 CHECK FOR COMMON. LDB MEMAD SET (B) = ADDRESS OF ADB C.02 -FWAM- IN MEMORY TABLE. AND M7777 CLEAR FTN FLAG ( BIT 15 ). JSB ALLOC ATTEMPT ALLOCATION - JMP NM3 NO - OVERFLOW LDA FTNFL (A) = FTN LOADING FLAG. LDB BND (B) = PROGRAM ORIGIN SSA IF FTN PROGRAM BEING LOADED, STB FWAMA,I RESET FWA TO ORIGINAL VALUE, STB PREL SET ORIGIN IN -RBT TABLE -, JMP NM5 AND GO CHECK FOR COMMON. * NM3 LDA FTNFL -OVERFLOW PROGRAM AREA - SSA IF FTN PROGRAM BEING LOADED, JMP NM4 GO TO FORCE LOADING. * * ATTEMPT PROGRAM ALLOCATION IN BASE PAGE * LDA NB6A,I TRY TO LOAD LDB MEMAD PROGRAM JSB ALLOC IN BASE PAGE AREA - JMP LER3A,I NO, CANNOT LOAD THIS PROGRAM - LDA BND ALLOCATED, SET PROGRAM STA PREL ORIGIN IN RBT TABLE, JMP NM5 GO CHECK FOR COMMON. * * FORCE LOADING FOR FORTRAN OBJECT PROGRAM * NM4 LDA FWABA,I GET NUMBER OF AVAILABLE CMA,INA WORDS IN ADA LWABA,I BASE PAGE LDB FWAMA,I GET NUMBER OF AVAILABLE CMB,INB WORDS IN ADB LWAMA,I PROGRAM AREA CMA,INA SUBTRACT BP NUMBER FROM ADA B PROGRAM AREA NUMBER LDB FWABA,I (B) = FWA BASE PAGE. SSA,RSS IF PROGRAM AREA IS LARGER, LDB FWAMA,I SET (B) = FWAM STB BND SET FOR BOUND PRINTOUT. STB PREL AND SET ORIGIN IN RBT. * * COMMON ALLOCATION CHECK * NM5 LDA NB8A,I (A) = COMMON LENGTH SZA,RSS IF NO COMMON SPECIFIED IN JMP NAMR,I PROGRAM, EXIT PROCESSOR. * LDB COML IF NO PREVIOUS COMMON SZB,RSS SPECIFIED, GO ALLOCATE TOTAL JMP NM6 COMMON LENGTH. * CMA,INA SUBTRACT NEW LENGTH FROM FIRST ADA COML LENGTH DECLARED. IF NEW LESS THAN SSA,RSS OR = TO FIRST, THEN CONTINUE JMP NAMR,I PROCESSING. EXIT. * * COMMON LENGTH ERROR * LDA ERR06 JMP ERRA,I * * ALLOCATE FIRST COMMON * NM6 STA COML SAVE TOTAL COMMON LENGTH CMA,INA SUBTRACT LENGTH FROM LWA COMMON ADA LWACA,I TO GET ORIGIN-1. STA B SAVE IN B, AND SUBTRACT ORIGIN-1 CMA,INA FROM FWA ADA FWAMA,I AVAILABLE MEMORY. SSA,RSS A POSITIVE RESULT MEANS OVERFLOW JMP LER3A,I OF AVAIL. MEMORY --- ERROR. STB A O.K. SAVE FOR POSSIBLE NEW LWA. INB ADD 1 TO GET COMMON ORIGIN STB COMOR o AND SET IN RBT TABLE. CMB SUBTRACT COMMON ORIGIN-1 FROM ADB LWAMA,I CURRENT LWA AVAIL. MEM. SSB,RSS IF ORIGIN-1 LT LWA, SET ORIGIN-1 STA LWAMA,I AS NEW LWA AVAILABLE MEMORY. JMP NAMR,I -EXIT NAM PROCESSOR- * * SUBROUTINE: ALLOC (CHECK MEMORY ALLOCATION) * * CALL: (A) = LENGTH TO BE ALLOCATED * (B) = ADDRESS OF MEMORY TABLE FOR * BASE PAGE OR PROGRAM AREA * * (P) JSB ALLOC * (P+1) -OVERFLOW RETURN - * (P+2) -BLOCK ALLOCATED RETURN * (A) AND (B) MEANINGLESS ON RETURN. * ALLOC NOP ENTRY/EXIT POINT STB NB5A,I SAVE MEMORY TABLE ADDRESS. LDB B,I GET FWA ADDRESS OF AREA. STB BND SET FOR PROGRAM ORIGIN. ADA B ADD PROGRAM LENGTH AND STA B SAVE FOR NEW FWA OF AREA. ADA CM.1 GET UPPER BOUND OF PROGRAM STA BND+1 AND SAVE. CMA,INA SET UPPER BOUND NEGATIVE- ISZ NB5A,I AND ADD THE ADA NB5AI,I LWA OF AVAILABLE AREA. SSA A NEGATIVE VALUE MEANS OVER- JMP ALLOC,I FLOW - TAKE P+1 EXIT. CCA SET (A) = ADDRESS OF FWA WORD ADA NB5A,I IN MEMORY TABLE AND STB A,I SET NEW FWA. ISZ ALLOC SET EXIT TO P+2 AND JMP ALLOC,I RETURN. * * * CONSTANT AND STORAGE SECTION FOR -NAMR-. * BOUND DEF LSTPX DEFINE ADDRESS OF 6-WORD AREA. COML OCT 0 HOLDS INITIAL COMMON LENGTH CM.1 DEC -1 M7777 OCT 77777 MEMAD DEF FWABP LER3A DEF LER3 * * - DBLR - * DATA BLOCK RECORD PROCESSOR (RIC = 3) * * PURPOSE OF THIS SECTION IS TO ADJUST * (RELOCATE) THE LOAD ADDRESS OF A DATA * BLOCK AND RELOCATE AND STORE EACH WORD * IN THE DATA BLOCK. THIS SECTION CHECKS * THE OPERAND ADDRESS OF EACH MEMORY-REFER- * ENCE INSTRUCTION AND, IF THE OPERAND IS * NOT IN THE SAME PAGE AS THE INSTRUCTION, * A REQUEST TO SUBR2OUTINE *LINK* IS MADE * TO ALLOCATE A WORD IN BASE PAGE TO HOLD * THE OPERAND ADDRESS. THE INSTRUCTION IS * THEN ALTERED TO INDIRECTLY REFERENCE THE * LINKAGE WORD IN BASE PAGE. * * A RELOCATION BYTE IS ASSOCIATED WITH EACH * INSTRUCTION OR DATA WORD IN A DBL RECORD. * THIS 3-BIT BYTE CONTAINS ONE OF THE * FOLLOWING RELOCATION INDICATORS: * * 000 ABSOLUTE * 001 - PROGRAM RELOCATABLE * 010 - BASE PAGE RELOCATABLE * 011 - COMMON RELOCATABLE * 100 - EXTERNAL SYMBOL REFERENCE * 101 - 2-WORD MEMORY REFERENCE * GROUP- WORD 1 CONTAINS * OP-CODE, AN EXTERNAL REFERENCE ID, * AND A RELOCATION * BYTE IN THE OPERAND FIELD, * WORD 2 CONTAINS THE FULL * 15-BIT ADDRESS OF THE * REFERENCED OPERAND. * THE RELOCATION BYTE IN * WORD 1 IS ONE OF THE * FOLLOWING VALUES: * 00 - PROGRAM * 01 - BASE PAGE * 10 - COMMON * 11 - ABSOLUTE * * THE SECTION USES THE RELOCATION BASE * TABLE (RBT) TO RELOCATE THE LOAD * ADDRESS AND DATA WORDS. THE RELOCATION * BASES IN THE RBT ARE SET BY THE NAM * RECORD PROCESSOR. THE TABLE IS STRUCTURED * AS: * RBTA DEF *+1 * RBT OCT 0 (ABSOLUTE) * PREL (PROGRAM ORIGIN - FWA) * BPREL (BASE PAGE ORIGIN (FROM ORB) * COMOR (COMMON AREA ORIGIN) * * IF A FORTRAN GENERATED PROGRAM IS BEING LOADED, * A CHECK FOR MEMORY OVERFLOW IS MADE BEFORE * EACH DBL RECORD IS PROCESSED. IF OVERFLOW OCCURS, * AN IMMEDIATE TERMINATION OF LOADING IS MADE * BY TRANSFERRING TO THE ERROR ROUTINE. OTHERWISE, * THE NEW FWA OF THE MEMORY AREA IS SET AND * LOADING CONTINUES. THE DBL RECORDS FOR A FTN * OBJECT PROGRAM ARE GENERATED IN ASCENDING * ORDER - I.E. THE LOAD ADDRESS OF EACH DBL RECORD * IS LARGER THAN ?THE PREVIOUS - AND THE LAST DBL * RECORD LOADED IS THE LAST PROGRAM SEGMENT (I.E., * A BSS DOES NOT FOLLOW) SO THE NEW FWA OF AVAIL. * MEMORY IS KNOWN AFTER THE LAST DBL RECORD IS * PROCESSED. * * RELOCATION OF THE STARTING ADDRESS IS DIRECTED AS * FOLLOWS: * BITS * 76 * 00 BASE PAGE * 01 PROGRAM * 10 ABSOLUTE * 11 COMMON * DBLR LDB LBUF3,I GET LOAD ADDRESS IN . LDA LBUF1,I GET WORD 2 ALF,ALF AND POSITION RAL,RAL BYTE IN LOW A. JSB REL SELECT PROPER DEF *+5 RELOCATION DEF BPREL BASE DEF PREL AND DEF RBT ADD IT TO DEF COMOR THE LOAD ADDRESS STB LBUFI,I AND SAVE. STB ABREC+1 LDA LBUF1,I GET WORD 2 AGAIN, ISOLATE AND M77 COUNT FIELD, SET NEGATIVE CMA,INA FOR COUNTER AND STA LBUF1,I SAVE. * * CHECK FOR MEMORY OVERFLOW OF FTN PROGRAM * CMA,INA RESET WORD COUNT TO POSITIVE. ADA LBUFI,I ADD LOAD ADDR. TO WORD COUNT. LDB FTNFL IF PROGRAM BEING SSB,RSS LOADED IS NOT FORTRAN GENERATED, JMP *+15 CONTINUE PROCESSING. * STA B SAVE POSSIBLE NEW FWA. AND M076 ISOLATE MODULE/PAGE ADDRESS. SZA IF ADDRESS IS TO PROGRAM AREA, STB FWAMA,I SET NEW FWA AVAILABLE MEMORY. SZA,RSS IF ADDRESS IS TO BASE PAGE, STB FWABA,I SET NEW FWA AV.MEM IN BASE PAGE. STB BND+1 SET AS UPPER BOUND+1 ALSO. * CMB,INB SET FWA NEG. FOR OVERFLOW CHECK. SZA IF FWA IS TO PROG. AREA, ADB LWAMA,I ADD LWA PROG. AREA. SZA,RSS ADD FOR ADB LWABA,I BASE PAGE. SSB A NEGATIVE RESULT MEANS OVERFLOW JMP LER3A,I AND TERMINATION OF LOADING. * LDA LBUFI SET ADDRESS OF WORD 5 OF DBL ADA C.04 RECORD (FIRST RELOC. BYTE WORD) STA LBUF2,I IN LX|BUF+2. * LDB LB2I,I SET RELOCATION BYTE WORD STB LBUF3,I IN LBUF+3. LDA LINKA+1 =-5 SET BYTE COUNTER STA NBUFB,I = -5 ISZ LBUF2,I SET ADDRESS FOR FIRST DATA WORD. * DBL2 LDA LBUF3,I GET RELOC. BYTE WORD - ROTATE ALF,RAR 3-BIT BYTE FOR NEXT INSTR. TO STA LBUF3,I LOW A AND RESTORE WORD. AND M.07 ISOLATE BYTE. CPA C.04 IF BYTE = 4, THEN GO TO EXTERNAL JMP DBL4 REFERENCE SECTION. CPA C.05 IF BYTE = 5, THEN GO TO 2-WORD JMP DBL6 MEMORY REFERENCE GROUP SECTION. ADA RBTA BYTE = 0-3. ADD ADDR. OF RBT LDA A,I TO BYTE AND GET BASE VALUE. ADA LB2I,I ADD DATA WORD TO RELOCATION BASE. * DBL3 JSB PACK ISZ LBUF1,I INDEX DATA WORD COUNT. JMP DBL9 MORE IN RECORD. JSB PUNCH JMP LDRIN GO TO PROCESS NEXT RECORD. * DBL9 ISZ LBUFI,I ADD 1 TO LOAD ADDRESS. ISZ LBUF2,I ADD 1 TO RECORD ADDRESS ISZ NBUFB,I INDEX REL-BYTE COUNTER JMP DBL2 MORE BYTES IN WORD JMP DBL2-5 GET NEXT BYTE WORD. * * RELOCATION BASE TABLE ( RBT ) * RBTA DEF *+1 DEFINES ADDRESS OF RBT RBT OCT 0 ABSOLUTE PREL OCT 0 PROGRAM RELOCATION BPREL OCT 0 BASE PAGE RELOCATION COMOR OCT 0 COMMON RELOCATION * * CONTROL SECTION FOR PROCESSING * INSTRUCTIONS ( OR A DEF ) REFERENCING * AN EXTERNAL SYMBOL. * DBL4 LDA LB2I,I GET INSTR. WORD AND M377 ISOLATE EXT ORDINAL JSB DBL5 FIND MATCH IN LST. LDA LB2I,I GET INSTRUCTION, AND M174 ISOLATE OP CODE, STA NB2A,I AND SAVE IT FOR EXTRF. CLB CLEAR OFFSET FOR EXTRF. SSA INDIRECT? JMP EXTRF+1 YES, MAKE ENTRY IN FST. IOR MSIGN INDIRECT REFERENCE, PUT LINK ADA LST5I,I ADDRESS IN BITS 9-0 AND GO JMP DBL3 STORE INSTRUCTION WORD. * ** ROUTINE DBL5 : FINDS EXTERNAL ORDIN;640AL MATCHES IN LOADER SYMBOL * TABLE. CALLING SEQUENCE: * = EXTERNAL ORDINAL r6* (P) JSB DBL5 * (P+1) -RETURN- * , UNCHANGED. * LST POINTERS SET TO THE MATCHING EXTERNAL. * DBL5 NOP STA NB1A,I SAVE EXTERNAL ORDINAL. JSB LSTIA,I INITIALIZE LST PROCESSOR JSB LSTPA,I SET LST ENTRY ADDRESSES. * * * * THE EXT CORRESPONDING TO THE ORDINAL SHOULD BE * FOUND IN THE LOADER SYMBOL TABLE. THE END OF * LST RETURN FROM -LSTP- SHOULD NEVER BE TAKEN * AT THIS POINT. IF IT IS, A HALT IS PROVIDED * TO ALLOW EXAMINATION OF THE FACTORS CAUSING * THIS ABNORMAL CONDITION. * HLT 0 LDA LST3I,I GET WORD 3 OF LST ENTRY, ISOLATE AND M377 BITS 07-00, AND COMPARE VALUE TO CPA NB1A,I SAVED EXT ORDINAL JMP DBL5,I MATCH FOUND; RETURN. JMP DBL5+3 NOT FOUND, KEEP SEARCHING LST * * 2-WORD MEMORY REFERENCE GROUP PROCESSOR * DBL6 LDA LB2I,I GET WORD 1 (OP-CODE,REL. BYTE) ISZ LBUF2,I SET ADDR. TO WORD 2 STA NB1A,I SAVE WORD 1. LDB LB2I,I GET OPERAND ADDRESS. JSB RELED ADD RELOCATION BASE. LDA NB1A,I RECALL WORD 1. SSA INDIRECT? (HPAP AND FORT) ADB MSIGN YES, SET I-BIT. AND M174 ISOLATE OPCODE STA NB2A,I SAVE INSTRUCTION LDA NB1A,I RECALL WORD 1 RAR,RAR BRING DOWN EXT ID AND M377 ISOLATE IT. SZA EXTERNAL REFERENCE? JMP EXTRF YES, TEND TO IT. LDA B GET OPERAND ADDRESS. ELA,CLE,ERA CLEAR I BIT. CMA,INA ADA M1777 SSA BASE PAGE? JMP *+4 NO, CHECK FOR SAME PAGE. LDA B YES, GET OPERAND, IOR NB2A,I INCLUDE OP CODE, JMP DBL3 AND STORE IT. * LDA LBUFI,I GET LOAD ADDRESS, ISOLATE AND JSB CPAGE CHECK FOR SAME PAGE AS OPERAND. IOR NB2A,I INCLUDE OPCODE. JMP DBL3 STORE INSTRUCTION WORD. * CPAGE NOP AND M076 SAVE MODULE/PAGE ADDRESS. STA NB1A,I LDA B GET OPERAND ADDR. AND ISOLATE AND M076 MODULE/PAGE ADDR. CPA NB1A,I IF MODULE/PAGE ADDRESSES EQUAL, JMP SAME THEN OPERAND IS IN SAME PAGE. LDA B NOT IN SAME PAGE- SET (A) = OPER- JSB LINKA,I AND ADDRESS AND ESTABLISH LINK. LDA B GET LOCATION OF LINK, IOR MSIGN SET I = 1 (INDIRECT) AND JMP CPAGE,I RETURN. * SAME LDA B GET OPERAND ADDRESS AND M1777 ISOLATE PAGE AREA ADDRESS. IOR M2000 SET CURRENT PAGE BIT. SSB INDIRECT? IOR MSIGN YES, SET I-BIT. JMP CPAGE,I * * SELECTS RELOCATION BASE FOR END, ENTRY AND DATA BLOCK RECORDS. * RELED NOP JSB REL DEF *+5 END OF LIST DEF PREL REL. BYTE = 0 DEF BPREL 1 DEF COMOR 2 DEF RBT 3 (ABS) JMP RELED,I * REL NOP AND C.03 ISOLATE RELOCATION BYTE ADA REL ADD TO POINTER INA SKIP RETURN IOR MSIGN MAKE POINTER INDIRECT ADB A,I ADD RELOCATION BASE. LDA REL MAKE RETURN IOR MSIGN INDIRECT JMP A,I LEAVE. * EXTRF JSB DBL5 JSB FSTP NOP STB FST1,I OFFSET LDA FST4 KEEP LST AWAY STA .LOLM,I FROM FST. LDA LBUFI,I * STA FST2,I LDA LST4A,I POINTER TO STA FST4,I EXT VALUE. LDA NB2A,I OP CODE. STA FST3,I JMP DBL3 STORE NAKED OP CODE. * * CONSTANT AND STORAGE SECTION FOR -DBLR-. * NBUFB DEF NBUF NB1A DEF NBUF+1 NB2A DEF NBUF+2 NB5A DEF NBUF+5 NB5AI DEF NBUF+5,I NB6A DEF NBUF+6 NB7A DEF NBUF+7 NB8A DEF NBUF+8 LINKA DEF LINK DEC -5 C.05 DEC 5 M77 OCT 77 M100 OCT 100 M377 OCT 377 M1777 OCT 1777 M076 OCT 76000 M174 OCT 174000 M7700 OCT 7700 M176 OCT 176000 MSIGN OCT 100000 M2000 OCT 2000 PEND^1 DEF * * **CONFIGURATION SECTION * THE CODE IN THIS SECTION IS EXECUTED JUST ONCE TO PRODUCE * A CONFIGURED PUNCHED TAPE WHICH CONTAINS, BESIDES THE LOADER, * THE SIO SRIVERS AND THE OVERLAY, IF IT WAS LOADED. * CONFG LDB B1201 MOVE LDA .MOVE,I STA B,I SIO INB ISZ .MOVE LINKS ISZ CNTR JMP CONFG+1 LDA ..LDR PREVENT CONFG FROM STA 3 BEING RE-ENTERED. JSB LTG MAKE A JSB LTG LEADER. LDA C.02 PUNCH STA PLK1 LOCATIONS LDA C.06. 2 THRU 5 STA PLK3 ON THE JSB PLK CONFIGURED TAPE LDA .LST,I GET # OF LST ENTRIES, MPY C.05 MULTIPLY BY ENTRY LENGTH, CMA,INA AND SUBRRACT FROM ADA .LST START OF LST STA PLK1 PUNCH LDA PEND FIRST STA PLK3 PAGE OF JSB PLK LOADER. LDA B1375 PUNCH STA PLK1 SECOND LDA 105B PAGE OF INA LOADER STA PLK3 AND OVERLAY JSB PLK IF PRESENT. LDA 106B PUNCH STA PLK1 AND M076 SIO IOR M7700 STA PLK3 DRIVERS. JSB PLK JSB LTG PUNCH A JSB LTG TRAILER. LDB HLT77 SET UP A HALT. JMP 1 EXECUTE IT. * .LST DEF LST .MOVE OCT 101 CNTR DEC -6 B1201 OCT 12001 B1375 OCT 13775 C.06. OCT 6 * * LINK WORDS FOR VARIABLE OVERLAY * ORG 13775B ..LDR DEF .LDR. .R TO INITIALIZATION SECTION. .LOLM DEF ENTX6-1 .R TO LST LOWER LIMIT. DEF MEM .R TO INITIAL MEMORY TABLE. * ORG 14000B C1777 OCT 1777 * * SUBROUTINE: LINK (ALLOCATE LINK WORD) * * PURPOSE: TO SEARCH LINKAGE AREA IN BASE PAGE * FOR AN EXISTING OPERAND ADDRESS MATCHING * THE PARAMETER OPERAND AND TO ALLOCATE * A WORD TO CONTAIN THE OPERAND ADDRESS * IF A MATCH IS NOT FOUND. * * THE OPERAND ADDRESS PARAMETER IS STORED * IN THE LINKAGE WORD IF A MATCH IS NOT * FOUND IN THE LINKAGE AREA. * * THE OPERAND ADDRESS PARAMETER IS IN * THE A-REGISTER ON ENTRY TO LINK. THE * LOCATION OF THE WORD IN THE LINKAGE * AREA CONTAINING THE OPERAND IS RETURNED * TO THE CALLER IN THE B-REGISTER. * * THE LINKAGE AREA BEGINS AT LOCATION * 1777(8) IN BASE PAGE AND EXTENDS * TOWARD LOW-NUMBERED MEMORY. THE * LAST LOCATION OF THE LINKAGE AREA * IS AT (LWABP)+1. * * IF, IN ATTEMPTING TO ALLOCATE A NEW * WORD IN THE LINKAGE AREA, THE NEW * ADDRESS = FWA AVAIL.MEM IN BASE PAGE, * THEN BASE PAGE AREA IS EXHAUSTED AND * THE LOADING PROCESS IS TERMINATED. * * LINK NOP ENTRY/EXIT POINT STA LINK3 SAVE OPERAND LDB LWABP SZA,RSS IF OPERAND = 0, GO TO JMP LINK2 ALLOCATE LINK WORD DIRECTLY. * LDB C1777 (B) = LWA OF LINK AREA. * LINK1 CPB LWABP IF LINK AREA SCANNED WITHOUT JMP LINK2 MATCH, GO TO ALLOCATE WORD. LDA B,I COMPARE CONTENTS OF LINK WORD CPA LINK3 WITH OPERAND. JMP LINK,I EQUAL, EXIT. ADB CM.1. SUBTRACT 1 FROM (B) TO LOOK JMP LINK1 AT NEXT LINK WORD. * * ALLOCATE NEW LINK WORD. * LINK2 CPB FWABP IF NEW ADDRESS = FWA OF AVAIL. JMP LER4 MEM, THEN OVERFLOW - ERROR -. LDA LINK3 (A) = OPERAND STA B,I STORE OPERAND IN NEW LINK WORD ADB CM.1. SUBTRACT 1 FROM LINK ADDRESS TO STB LWABP SET NEW LWA BP. INB RESET (B) TO ADDRESS OF NEW LINK. JMP LINK,I -EXIT-. * LINK3 OCT 0 HOLDS OPERAND ADDR.DURING SEARCH C.03. DEC 3 C.04. DEC 4 CM.1. DEC -1 CM.5. DEC -5 * * * * * ENT / EXT RECORDS PROCESSOR * * PURPOSE OF THIS SECTION IS TO PROCESS ENTRY POINTS * AND EXTERNAL SYMBOLS, ADD SYMBOLS TO THE * LST (LOADER SYMBOL TABLE), ESTABLISH A LINK * WORD IN THE LINKAGE AREA TO HOLD THE ENTRY * POINT ADDRESS OF A SYMBOL FOR AN EXT REFERENCE, * SET A FLAG IF AN ENTRY POINT FROM A LIBRARY * LOAD MATCHES AN UNDEFINED EXTERNAL SYMBOL. * * AN LST ENTRY CONSISTS OF FIVE WORDS EXTENDING * TOWARDS LOW-NUMBERED MEMORY. FOR EXAMPLE: * * ADDRESS WORD CONTENTS * ------- ---- -------------------- * 5760 1 - S Y - * 5757 2 - M B - * 5756 3 - L EXT ORDINAL- * 5755 4 - EPT ADDRESS - * 5754 5 - EXT LINK ADDRESS - * *ERRORS DETECTED ARE: * 1. DUPLICATE ENTRY POINTS * 2. MEMORY OVERFLOW IN ADDING NEW LST ENTRY * * CONTROL RETURNED FROM THIS SECTION TO -LDRIN-. * * WORDS USED FOR TEMPORARY STORAGE: * * LBUF - RECORD TYPE FLAG: =0, ENT.,=1, EXT. * LBUF+1 - NEGATIVE COUNT OF ENT/EXT ENTRIES IN RECORD. * LBUF+2 - FIRST WORD ADDRESS OF CURRENT ENTRY. * NBUF+2 - HOLDS UPPER CHAR./WORD 3 OF ENTRY. * * SUBROUTINES CALLED: * - LSTI -, - LSTP -, -RELEN-, -LINK- * ENTR CLA,RSS ENT--SET A = 0 FOR FLAG. * EXTR CLA,INA EXT--SET A = 1 FOR FLAG. STA LBUF STORE A FOR RECORD TYPE FLAG. LDA LBUF+1 GET AND ISOLATE AND M.37 ENTRY COUNT OF RECORD- CMA,INA SET NEGATIVE FOR STA LBUF+1 COUNTER IN PROCESSING LDA LBUFA SET LBUF+2 = ADDRESS OF ADA C.03. FIRST ENTRY STA LBUF+2 IN RECORD JSB LSTI INITIALIZE LST PROCESSOR * ENTX1 JSB LSTP SET LST ENTRY ADDRESSES JMP ENTX6 END OF LST- MAKE NEW ENTRY * * CHECK LST AND RECORD ENTRIES FOR MATCHING SYMBOLS * LDB LBUF+2 (B) = RECORD ENTRY ADDR. LDA B,I GET WORD 1 REC. ENTRY, CPA LST1,I COMPARE TO WORD 1 LST ENTRY INB,RSS EQUAL, SET FOR WORD 2. E JMP ENTX1 NOT =, CHECK NEXT ENTRY LDA B,I CHECK WORD 2 OF CPA LST2,I THE ENTRIES INB,RSS =, SET FOR WORD 3. JMP ENTX1 NOT =, CHECK NEXT ENTRY. LDA B,I CHECK UPPER AND UPCMA,I CHARACTER IN STA NBUF+2 WORD 3 LDA LST3,I OF BOTH RECORD AND UPCMA,I ENTRY AND CPA NBUF+2 LST ENTRY. RSS EQUAL, SYMBOLS MATCH. JMP ENTX1 NOT =, CHECK NEXT ENTRY. * LDA LBUF IF RECORD TYPE SZA IS EXT, JMP ENTX4 GO PROCESS EXT. * * ENT RECORD. * CPA LST4,I IF ENT ADDR. IN LST ENTRY = 0, JMP ENT21 GO TO SET ADDR. FROM RECORD. * LDA LBFLA,I ENT ALREADY DEFINED. SSA,RSS IF LOADING FROM INPUT, THEN IS JMP LER7 A DUPLICATE ENTRY POINT ERROR. JMP ENTX5 IGNORE DUPLICATE FROM LIBRARY. * * ADD ENTRY POINT ADDRESS TO LST ENTRY. * ENT21 CPA LBFLA,I A=0, IF LIBFL =0, THEN LOADING JMP ENTX2 FROM INPUT. * * LOADING FROM LIB. * CLA,INA SET EXMFL = 1 TO SAY LOAD THIS STA EXMFI,I PROGRAM. ENT MATCHES EXT. * ENTX2 LDA B,I GET WORD 3 OF RECORD ENTRY. STA LST3,I AND STORE IN LST WORD 3. INB SET B=ADDR. WORD 4 RECORD ENTRY. LDA LBFLA,I WORD 3 (BIT 0 CONTAINS ENT RELOCA- SZA,RSS TION BYTE.) JMP ENTX3 IF LOADING FROM INPUT,BRANCH. LDA B,I LIBRARY LOADING. - SET ENTRY CMA POINT ADDRESS NEGATIVE IN LST - STA LST4,I ADDRESS WILL BE RELOCATED LATER. JMP ENTX5 GO TO COMPLETE ENTRY PROCESSING. * * ENTRY FROM INPUT LOADING * ENTX3 JSB RELEN (B) ADDR OF WORD 4 - RELOCATE ADDR LDA LST5,I GET EXT LINK ADDRESS. IF LINK SZA ESTABLISHED, STORE ENT. ADDRESS STB A,I IN LINK WORD. JMP ENTX5 GO TO COMPLETE ENTRY PROCESSING. * * EXT RECORD ENTRY MAT CHES AN EXISTING LST ENTRY. * ENTX4 LDA B,I SET WORD 3 (BITS 07-00 CONTAIN STA LST3,I EXT ORDINAL) IN LST ENTRY LDA LST5,I IF THE EXT LINK WORD (WORD 5) SZA IS NON-ZERO THEN LINKAGE JMP ENTX5 ALREADY SET. OTHERWISE, ESTA- JSB LINK BLISH EXT LINK (A=0 CALL). LDA LST4,I STORE ENTRY POINT ADDRESS STA B,I INT O EXT LINK STB LST5,I WORD-SET EXT LINK ADDR. IN LST. * ENTX5 LDA LBUF (A) = RECORD TYPE FLAG LDB LBUF+2 (B) = RECORD ENTRY ADDR. ADB C.03. ADD 3 FOR NEXT EXT ENTRY. SZA,RSS IF RECORD IS ENT, INB ADD 2 MORE (4-WORD ENTRY). STB LBUF+2 SET ADDRESS OF NEXT ENTRY. ISZ LBUF+1 INDEX ENTRY COUNT - JMP ENTX1-1 MORE TO PROCESS. JMP LDRIA,I FINISHED- GET NEXT RECORD. * * NO MATCH IN LST FOR RECORD ENTRY SYMBOL - ADD * NEW ENTRY - CHECK FIRST FOR MEMORY CONFLICT. * * FOLLOWING WORD HOLDS ADDRESS OF MEMORY BOUNDARY * USED IN CHECKING FOR OVERFLOW OF AVAILABLE * MEMORY IN ADDING A NEW LST ENTRY. THE BOUNDARY * IS 2000B, OR CAN BE RESET BY THE VARIABLE LOAD OVERLAY. * THE FINISH TABLE ALSO RESETS IT, IF NEEDED. * THERE IS A POINTER TO THE FOLLOWING WORD AT 13776B. * OCT 2000 * ENTX6 LDA *-1 SUBTRACT LOWER LIMIT OF MEMORY CMA,INA FROM LWA OF NEW ADA LST5 LST ENTRY. SSA A NEGATIVE RESULT MEANS NEW ENTRY JMP LER5 EXTENDS INTO BASE P AREA-ERROR. * OTHERWISE OK. * LDB LBUF+2 (B) = RECORD ENTRY ADDR. LDA B,I MOVE WORDS 1 AND 2 OF RECORD STA LST1,I ENTRY TO WORDS INB 1 AND 2 NEW LST ENTRY LDA B,I (WORD 3 WILL BE SET LATER) STA LST2,I CLA SET WORDS 4 AND 5 = ZERO STA LST4,I STA LST5,I INB (B) = ADDR. OF WORD 3, REC. ENTRY ISZ LSTA,I ADD 1 TO LST ENTRY COUNTĵ. LDA LBUF (A) = RECORD TYPE FLAG. SZA GO TO COMPLETE ENTRY PROCESSING JMP ENTX4 EXTERNAL ENTRY JMP ENTX2 ENTRY POINT ENTRY * UPCMA DEF UPCM LBFLA DEF LIBFL EXMFI DEF EXMFL BPR DEF BPREL PR DEF PREL LTGA DEF LTG COMO DEF COMOR * * * SUBROUTINE: RELEN (RELOCATE ENTRY POINT ADDRESS) * * CALLING SEQUENCE: (B)= ADDRESS OF WORD * CONTAINING ENT ADDRESS * * (P) JSB RELEN * (P+1) -RETURN- A-DESTROYED * (B) = RELOCATED ENT ADDRESS * * PURPOSE: RELOCATES ENT ADDRESS AS DESIGNATED * BY THE RELOCATION FIELD (R) IN BIT * 00 OF (LST3). 0 = PROGRAM, 1 = BASE * PAGE. * IF ENT ADDRESS IS NEGATIVE ( FROM * LIBRARY LOADING), IT IS COMPLE- * MENTED BEFORE RELOCATION. * * BITS 07-00 OF (LST3) ARE SET = ZERO. * * RELEN NOP ENTRY/EXIT POINT LDA LST3,I GET WORD 3 OF LST ENTRY LDB B,I GET ENTRY POINT ADDRESS SSB IF NEGATIVE, CMB SET POSITIVE JSB RELDA,I ADD RELOCATION BASE. LDA LST3,I RETREIVE WORD 3. AND UPCMA,I CLEAR BITS 7-0 STA LST3,I REPLACE LST3 STB LST4,I STORE ENT ADDR. IN WORD 4 LST. JMP RELEN,I EXIT. * RELDA DEF RELED * * LOADER *** INITIALIZATION *** SECTION * * THE EXECUTION POINT IS AT THE ENTRY POINT: * .LDR. * LOCATIONS 2 AND 3 CONTAIN: * (00002) - JMP 3,I * (00003) - DEF .LDR. (AFTER CONFIGURATION) * * TO PROVIDE A COMMON * STARTING POINT TO BEGIN LOADER * EXECUTION. * * THE SWITCH REGISTER IS EXAMINED AS THE FIRST * STEP IN THE INITIALIZATION PHASE. THE SETTING * OF BIT 15 DETERMINES WHETHER A LISTING OF * PROGRAM NAMES, BOUNDS, ENTRY POINTS AND * ADDRESSES, COMMON AREA BOUNDS AND BASE PAGE [164006* LINKAGE AREA. THE SETTING IS: * * 0 - PRODUCE LISTING * 1 - DELETE LISTING * * * AFTER THE INITIALIZATION PHASE IS COMPLETED, * CONTROL IS TRANSFERRED TO THE MAIN CONTROL * SECTION, AT -LDRIN- * * * FOLLOWING STATEMENT DEFINES LOADER BUFFER * LBUFA DEF LBUF LBUF OCT 0,0 BSS 58 * * ******************************************************************** * DEF PLFLG DEF COML * .LDR. NOP * CAN BE OVERLAID BY LINK TO SETUP * LIA 1 GET SWITCH REGISTER STA MAPF SET MAPPING FLAG (BIT 15) * CCA STA EXMFI,I SET EXMFL = -1 * CLA STA LBFLA,I SET LIBFL = 0 STA .LDR.-1,I SET COML = 0 STA COMO,I NO COMMON ALLOCATED YET. STA EXECP CLEAR EXEC POINT STA .LDR.-2,I CLEAR PLFLG * * CLEAR LST POINTERS * STA MEM-1,I CLEAR LINK .R FOR .MEM. STA MEM-2,I INITIALIZE FST COUNTER. STA HALT.-1,I CLEAR LINK .R FOR HALT STA .CKS,I INITIALIZE CHECKSUM. LDA .ABL2,I INITIALIZE PACKING STA .ABL1,I POINTER. LDA C1777 INITIALIZE FINISH TABLE STA MEM-3,I POINTER. LDA MEM-4 INITIALIZE LST STA ENTX6-1 LOLIM. LDB C.02. SET # OF LST STB LSTA,I ENTRIES = 2. * LDA MEM GET ORIGINAL FWABP STA FWABP + SET LDA MEM+1 SET LWA BASE PAGE STA LWABP LDA MEM+2 SET FWA MEMRY STA FWAM LDA MEM+4 SET LWA COMMON, STA HALT.,I LEAVING ROOM ADA CM7 FOR MEMORY STA LWAC TABLE AND HALT INA INCREMENT, AND SAVE STA ..MEM,I AS DEF MEMRY (TARGET). CMA,INA LDB MEM+3 GET INITIAL LWAM. ADA B IS IT LESS THAN SSA,RSS OR EQUAL TO LWAC? LDB LWAC NO, SET IT EQUAL STB LWAM TO LWAC. LDA ..MEM,I INA SET MEMRY TO DEF *+1 STA MEMRY FOR THE TARGET. JSB LTGA,I JSB LTGA,I MAKE A LEADER JSB LTGA,I * JMP LDRIA,I & BEGIN LOADING * DEF .HALT-1 .R TO HALT LINK HALT. DEF .HALT .R TO DEF HALT C.02. DEC 2 .CKS DEF CKS .R TO CHECKSUM .ABL1 DEF ABL1 .R'S TO PACKING .ABL2 DEF ABL2 POINTERS. CM7 DEC -7 ..MEM DEF .MEM CONTAINS .R TO MEMRY(TARGET) OCT 2000 INITIAL LST LOLIM DEF FST4 " FINISH TABLE ADDRESS DEF FSTPX .R TO FST COUNTER. DEF LST-5 .R TO .MEM. LINK. * * * ** INITIAL MEMORY TABLE ** * MEM OCT 40 FWABP OCT 1777 LWABP OCT 2000 FWAM OCT 17677 LWAM OCT 17677 LWAC * NBUF BSS 9 * NBUFA DEF NBUF DEFINE ADDRESS OF NAM BUFFER. * *********************************** * * SUBROUTINE: LSTP / LSTI (LST PROCESSOR) * * PURPOSE: TO SET IN WORDS LST1 - LST5 THE * ADDRESSES OF THE FIVE WORDS IN AN * ENTRY IN THE LST (LOADER SYMBOL TABLE) * * INITIAL SETUP IS MADE BY THE ROUTINE * -LSTI- THIS SECTION INITIALIZES * THE NEGATIVE COUNT OF THE NUMBER * OF ENTRIES IN THE LST AND SETS THE * VALUE OF THE ADDRESS+1 OF THE * FIRST ENTRY. THIS ADDRESS IS STORED * IN LST5. * * * * THE SECTION -LSTP- SETS THE FIVE * ADDRESSES OF THE NEXT LST ENTRY * IN LST1-LST5. IT ALSO INDEXES THE * ENTRY COUNTER. WHEN THE COUNTER = ZERO * EXIT FROM LSTP IS TO P+1 OF THE CALL * AND LST1-LST5 CONTAIN THE ADDRESSES * FOR A NEW ENTRY. IF THE COUNT AFTER * INDEXING IS NOT ZERO, EXIT IS TO * P+2 OF THE CALL. * * LSTP SEQUENTIALLY SETS THE ADDRESSES * OF LST ENTRIES 1 TO N. * * CALLING SEQUENCE: (P-1) JSB LSTI * (P) JSB LSTP * 5 (P+1) (END OF LST RETURN) * (P+2) (NEXT ENTRY ADDRESSES * SET RETURN) * * - INITIALIZER- LSTI NOP LDA LSTA,I GET NUMBER OF LST ENTRIES - SET CMA NEGATIVE THE VALUE + 1. STA LSTPX STORE LDA LSTA SET ADDRESS+1 OF WORD 1 OF FIRST STA LST5 ENTRY IN LST5. JMP LSTI,I EXIT * * - PROCESSOR - * LSTP NOP LDA LST5 SUBTRACT 5 TO GET ADDR. OF WORD5 ADA CM.5. OF THE NEXT ENTRY STA LST5 AND SET IN LST5. INA STA LST4 SET FOR WORD 4. INA STA LST3 SET FOR WORD 3. INA STA LST2 SET FOR WORD 2. INA STA LST1 SET FOR WORD 1. ISZ LSTPX INDEX ENTRY COUNTER. ISZ LSTP NOT END OF LST - SET P+2 EXIT JMP LSTP,I -EXIT- TO P+1 IF END OF LST. * LSTA DEF LST DEFINE STARTING ADDRESS OF LST LSTPX OCT 0 HOLDS ENTRY COUNTER(NEG. #+1). LST1 OCT 0 LST2 OCT 0 LST3 OCT 0 LST4 OCT 0 LST5 OCT 0 * LDRIA DEF LDRIN * * * SUBROUTINE: DIAG (DIAGNOSTIC OUTPUT) * * CALLING SEQUENCE: (A) 2-DIGIT (ASCII) ERROR CODE * * (P) JSB DIAG * (P+1) (RETURN) * * DIAG STORES THE 2-DIGIT DIAGNOSTIC IDENTIFIER IN * THE SECOND WORD OF THE DIAGNOSTIC BUFFER - * THE FIRST WORD CONTAINS *L . THE DIAGNOSTIC * IS OUTPUT AS *LXX - XX IS THE NUMERIC CODE. * AFTER THE DIAGNOSTIC IS OUTPUT, CONTROL * IS RETURNED TO THE CALLER. * DIAG NOP STA DBUF+2 SET 2-DIGIT NUMBER IN BUFFER. * * LDA DBUF (A) = ADDR. OF BUFFER. LDB C.04. (B) = 4 CHARS. OUTPUT. JSB LOUTL OUTPUT DIAGNOSTIC. JMP DIAG,I RETURN. * DBUF DEF *+1 ASC 1,*L NOP * * * DIAGNOSTIC OUTPUT SECTION * LER7 LDA ERR07 DUPLICATE ENTRY POINTS JMP ERROR LER5 LDA ERR05 SYMBOL TABLE OVERFLOW  JMP ERROR LER4 LDA ERR03+1 LINKAGE AREA OVERFLOW JMP ERROR LER3 LDA ERR03 MEMORY OVERFLOW * ERROR JSB DIAG PRINT DIAGNOSTIC * HLT 0 * ERROR HALT * * JMP *-1 *** FORCE IRRECOVERABLE *** * DEC -3 TEMPL OCT 0 ERR03 ASC 1,03 ASC 1,04 ERR05 ASC 1,05 ERR07 ASC 1,07 ERR08 ASC 1,08 * * SUBROUTINE: LOUT (LOADER OUTPUT) * * CALLING SEQUENCE: (A)= ADDRESS OF BUFFER * (B)= NUMBER OF CHARACTERS * IN BUFFER * (P) JSB LOUT * (P+1) (RETURN)-OUTPUT COMPLETED, * (A),(B) MEANINGLESS. * * LOUT NOP STA TEMPL SAVE BUFFER ADDR. LDA B (A) = # CHARS. LDB TEMPL JSB .LIST,I OUTPUT MESSAGE. JMP LOUT,I COMPLETED, EXIT. * LOUTL EQU LOUT .LIST DEF LIST,I * * SUBROUTINE - (ENTRY POINT LIST) * * CALLING SEQUENCE: * (A): =0, LIST UNDEFINED EXTERNAL SYMBOLS. * =1, LIST ENTRY POINT SYMBOLS AND * ABSOLUTE ADDRESSES FROM LST. * * (P) JSB EPL * (P+1) (RETURN) A AND B DESTROYED * * LIST UNDEFINED EXTERNAL SYMBOLS: EACH LST ENTR * IS EXAMINED FOR A ZERO ENTRY POINT ADDRESS. * EACH ENTRY WITH A ZERO ENT ADDRESS (WORD 4) * IS LISTED ON THE TTY OUT DEVICE. THE * LIST FORMAT IS: * SYMB1 * SYMB2 * ----- * ETC. * * LIST ALL ENTRY POINT SYMBOLS AND ADDRESSES: * EACH ENTRY IN THE LST IS OUTPUT TO THE * COMMENT OUT DEVICE IN THE FORMAT: * SYMB1 NNNNN (NNNNN= ABSOLUTE ADDRESS) * SYMB2 NNNNN * ----- * SYMBN NNNNN * * AT THE END OF THE PRINTOUT, THE BOUNDS OF THE * COMMON AREA ARE LISTED IF AN AREA WAS * ALLOCATED: * *COM * LLLLL UUUUU * (LLLLL = COMMON ORIGIN, UUUUU = LWA COMMON) * * * * THE LISTING OF THE BOUNDS OF THE LINKAGE * AREA%/ IN BASE PAGE COMPLETES THE OUTPUT. * THE FORMAT IS: * * *LINK * LLLLL UUUUU * (LLLLL= STARTING ADDRESS OF LINK AREA, * UUUUU= ENDING ADDRESS OF LINK AREA) * * EPL USES THE SUBROUTINE -CONV- TO CONVERT THE * ABSOLUTE ADDRESSES TO ASCII FORMAT. * * EPL NOP ENTRY/EXIT POINT STA NBUF SAVE ENTRY PARAMETER. * * JSB LSTI -INITIALIZE LST PROCESSOR- * EPL1 JSB LSTP SET LST ENTRY ADDRESSES JMP EPL4 END OF LST -- * * PROCESS LST ENTRY * LDA LST1,I MOVE FIRST 3 WORDS OF STA LBUF LST ENTRY ( SYMBL ) LDA LST2,I TO STA LBUF+1 LBUF. LDA LST3,I MAKE 6TH CHARACTER IOR M.40 A BLANK STA LBUF+2 LDB LST4,I (B) = ENT. ADDRESS LDA NBUF (A) = ENTRY PARAMETER SZA IF ENT LIST REQUESTED JMP EPL2 GO TO CONVERT ADDRESS IN B. SZB IF ENT ADDR NOT = ZERO, THEN JMP EPL1 EXT DEFINED, GO CHECK NEXT EDTRY. LDB C.06 SET TO OUTPUT UNDEFINED LDA LBUFA EXT (6 CHAR. OUTPUT) JSB LOUTL WRITE SYMBOL, JMP EPL1 CONTINUE SCAN * * ENTRY POINT LIST * EPL2 LDA LBUFA SET -CONV- TO CONVERT ENT. ADA C.03. ADDRESS TO ASCII AND JSB CONV STORE IN LBUF+3-LBUF+5. LDB C.12 OUTPUT OF 12 CHARACTERS. * LDA LBUFA OUTPUT BUFFER JSB LOUT STARTING AT LBUF. JMP EPL1 PROCESS NEXT ENTRY IN LST. * * COMMON ALLOCATION BOUNDS LIST * EPL4 LDA NBUF IF LIST OF UNDEFINED EXTS SZA,RSS REQUESTED, THEN EXIT. JMP EPL,I * * LDB COMO,I IF NO COMMON SZB,RSS ALLOCATED, THEN JMP EPL5 EXIT. * * LIST COMMON BOUNDS * LDA LBUFA CONVERT FWA (ORIGIN) JSB CONV OF COMMON. LDB LWAC CONVERT LWA JSB CONV OF COMMON. LDA CMMSG OUTPUT LDB eC.04. MESSAGE JSB LOUTL *COM. LDA LBUFA OUTPUT LDB C.12 COMMON JSB LOUT BOUNDS. * * BASE PAGE LINKAGE BOUNDS LIST * EPL5 LDB LWABP CONVERT CPB C1777 EXIT IF NO LINK AREA JMP EPL,I ESTABLISHED IN LOADING. INB FWA OF LDA LBUFA PROGRAM JSB CONV LINK AREA. LDB MEM+1 CONVERT LWA OF JSB CONV LINK AREA. LDA LINKM OUTPUT LDB C.06 MESSAGE JSB LOUTL -*LINK-. LDA LBUFA OUTPUT LDB C.12 LINK AREA JSB LOUT BOUNDS. JMP EPL,I EXIT --. * * * CONSTANT AND STORAGE SECTION FOR -EPL- . * * MAPF OCT 0 FLAG TO DESIGNATE WHETHER A * NAME AND BOUNDS LIST OR EPL LIST IS * TO BE GENERATED : * * BIT 15 : =0, YES * =1, NO * UEXFA DEF UEXFL .FINI DEF FINIS M.40 OCT 40 ASCII SPACE (BLANK) C.06 OCT 6 C.12 DEC 12 M.60 OCT 60 M.07. OCT 7 RICA DEF RIC END6A DEF ENDR6 * * CMMSG DEF *+1 ASC 2,*COM LINKM DEF *+1 ASC 3,*LINKS * * * SUBROUTINE: CONV (CONVERT 15-BIT BINARY NUMBER * TO 6-CHARACTER (LEADING BLANK) * ASCII FORM OF THE OCTAL * REPRESENTATION.) * CALLING SEQUENCE: * (A)-ADDRESS OF 3-WORD AREA FOR * STORING ASCII/OCTAL CHARACTERS * (B)-BINARY VALUE FOR CONVERSION * (P) JSB CONV * (P+1) (RETURN)-(A)=NEXT ADDRESS OF STORAGE * AREA,(B)-DESTROYED. * CONV NOP ENTRY/EXIT POINT STA NBUF+3 SAVE STORAGE AREA ADDRESS RBL POSITION FIRST DIGIT TO B(15-13). LDA TEMPL-1 SET CONVERT COUNTER STA NBUF+4 = -3. LDA M.40 MAKE FIRST CHARACTER A SPACE. CONV1 ALF,ALF ROTATE CHAR. TO UPPER POSITION STA NBUF+5 AND SAVE. _v BLF,RBR POSITION NEXT DIGIT TO B(02-00), LDA B PUT IN B AND AND M.07. ISOLATE DIGIT. IOR M.60 MAKE AN ASCII CHAR. (60 - 67). IOR NBUF+5 PACK IN UPPER CHARACTER STA NBUF+3,I AND STORE IN STORAGE AREA. ISZ NBUF+3 ADD 1 TO STORAGE AREA ADDRESS. BLF,RBR ROTATE NEXT DIGIT TO LOW B, LDA B ISOLATE CHAR AND M.07. IN LOW A, IOR M.60 MAKE AN ASCII CHAR. ISZ NBUF+4 INDEX CONVERT COUNTER JMP CONV1 NOT FINISHED. LDA NBUF+3 FINISHED, SET (A)= NEXT STORAGE JMP CONV,I AREA WORD ADDRESS AND EXIT. * *********************************************** * * END CONDITION SECTION * * *********************************************** * THIS SECTION RECEIVES CONTROL AFTER AN END- * OF-TAPE CONDITION IS DETECTED BY THE INPUT * SECTION *LDRIN*. THE MESSAGE -LOAD- IS OUTPUT * TO THE COMMENT OUT DEVICE FOLLOWED BY A * COMPUTER HALT. THE SWITCH REGISTER IS TO * BE SET TO ONE OF THE FOLLOWING VALUES BY * THE OPERATOR BEFORE RESTART: * SR(02-00) MEANING * --------- ---------------------------- * 000 LOAD NEXT PROGRAM FROM INPUT * 001 END OF LOADING * 010 TERMINATE LOADING * 100 LOAD FROM PROGRAM LIBRARY * * SWITCH 15 IS ALSO USED TO SET THE MAP FLAG * FOR THE NEXT LOADING SEQUENCE: * BIT 15 = 0, PRODUCE LIST, = 1, DELETE * * THE ACTION RESULTING FROM EACH SR DESIG- * NATION IS DETAILED IN THE COMMENTS BELOW. * * PROGRAM EXECUTION IS INITIATED WITHIN THIS * SECTION STARTING AT THE LABEL *ENDC4*. * * ** NOTE: THIS SECTION MUST BE THE LAST SECTION * IN THE LOADER BECAUSE OF DETERMINING * COMMON LOAD. * * * LDMSG DEF *+1 ASC 2,LOAD * LSTM DEF *+1 ASC 2,*LST * ENDC LDA RICA,I IGNORE END-OF-TAPE CONDITION SZA,RSS OCCURRING BEFORE THE FIRST JMP LDRIA,I RECORD HAS BEEN INPUT. * LDA LBFLA,I IF END-OF-TAPE HAS OCCURRED SSA IN LOADING FROM LIBRARY, GO JMP ENDC2 TO LIST UNDEFINED EXTS. * * ENDC1 LDA LDMSG WRITE MESSAGE LDB C.04. -LOAD- ON TTY JSB LOUTL OUT DEVICE. * * FOLLOWING HALT IS FOR SWITCH REGISTER * SETTING BY OPERATOR. * HLT 01 * * EXAMINE SR CONTENTS UPON RESTART * CLB CLEAR RIC TO PROVIDE FOR IGNORING STB RICA,I EOT BEFORE FIRST RECORD INPUT. LIA 01 GET SWITCH REGISTER STA MAPF SET MAPPING FLAG (BIT 15). AND M.07. ISOLATE SWITCHES 02-00 . SZA,RSS IF SR = 0, JMP LDRIA,I GO TO LOAD NEXT PROGRAM SLA IF SR = 1, GO TO CHECK JMP ENDC2 FOR UNDEFINED EXTS. ARS,SLA IF SR = 2, TERMINATE ALL JMP ENDC3 LOADING * * ASSUME SR = 4 AND SET TO LOAD FROM PROGRAM LIBRARY * CCA SET LIBRARY LOAD FLAG STA LBFLA,I = -1. JMP END6A,I GO TO CHECK UNDEFINED EXTS. M.37 OCT 37 EXECP OCT 0 * * END OF LOADING ( SR = 1) * ENDC2 LDA UEXFA,I IF NO UNDEFINED EXTS SZA THEN GO OUTPUT JMP ENDC3 ENTRY POINT LIST. JSB EPL LIST ALL UNDEFINED EXTS IN LST JMP ENDC1 REPEAT HALT AND SR SETTING. * * ENDC3 LDA COMO,I (A) = COMMON ORIGIN ADA CM.1. GET ADDRESS OF WORD PRIOR TO COM. SSA IF A=-1 (NO COMMON ALLOCATED) LDA LWAC SET A = LWA OF RELEASABLE MEMRY STA LWAM SET LWA AVAIL.MEMORY FOR EXECUTE * * LDA EXECP SET (A) = EXECUTION SZA POINT ADDR. IF NO ADDR. JMP ENDC5+2 PRESENT, OUTPUT DIAGNOSTIC. * LDA ERR08 SET ASCII 08 FOR DIAGNOSTIC - JSB DIAG NO EXECUTION POINT ADDRESS. * * ENDC5 HLT 02 * * EXECUTION POINT MAY BE INSERTED IN A. * STA EXECP SET EXECUTION POINT ADDRESS. * JMP .FINI,I GO TO PUNCH LINKS,ETC. * * 640 ***** MEMORY TABLE *********** * MEMRY NOP DEFINES ADDRESS OF MEMORY TABLE * THIS IS SET BY .LDR. FWABP OCT 40 DEFINES AVAILABLE MEMORY * LWABP OCT 1777 FOR BASE PAGE * FWAM OCT 2000 DEFINES AVAILABLE MEMORY * LWAM OCT 0 FOR PROGRAM AREA. * LWAC OCT 0 LWA COMMON * HALT HLT 77B COMMON HALT FOR ALL LOADS. * **************************************** * SEND EQU * * ORG 2 JMP 3,I STARTING POINTS. DEF CONFG REPLACED BY DEF .LDR. * BY CONFG. * ORG 105B DEF SEND * END ]6 HED ** OVERLAY FOR SALOD : VARIABLE BOUNDS ** * THIS OVERLAY PERMITS THE ENTRY OF MEMORY BOUNDS INTO THE SALOD * OFF-LINE RELOCATING LOADER, SO THAT IT MAY GENERATE ABSOLUTE TAPE * ON ONE MACHINE FOR EXECUTION ON ANY OTHER MACHINE. * WHEN THIS OVERLAY IS COMBINED WITH SALOD, THE VARIABLE-BOUNDS * OPTION MAY BE ACTIVATED BY LIGHTING SWITCH 13 JUST BEFORE * STARTING EXECUTION OF THE LOADER. * * * THE PROGRAM WILL REQUEST:- * * FWABP? FIRST WORD AVAILABLE,BASE PAGE 40<=FWABP<=1777 * LWABP? LAST WORD AVAILABLE,BASE PAGE FWABP<=LWABP<=1777 * FWAM ? FIRST WORD AVAILABLE,MEMORY 2000<=FWAM <=77777 * LWAM ? LAST WORD AVAILABLE,MEMORY FWAM<=LWAM <=77777 * LWAC ? LAST WORD AVAILABLE,COMMON LWAM<=LWAC <=77777 * * REPLY WITH DESIRED PROGRAM BOUNDS (IN OCTAL),CR,LF * IF BOUNDS ARE NOT WITHIN THE ABOVE RANGES,OR INPUT FORMAT ERROR, * INPUT WILL BE REJECTED AND NEW REPLY REQUESTED. * * IF REPLY IS = SIGN,BOUND WILL BE LEFT UNALTERED FROM PREVIOUS * OR STANDARD VALUES. * * AFTER ENTRY OF THE LAST BOUND,LOADER EXECUTION BEGINS. * * * ORG 105B DEF ENDP1 .R TO END OF PROGRAM * ORG 14316B JSB INBND PATCH IN OVERLAY * ORG 15000B .LIST DEF 12002B,I .R TO LIST ENTRY POINT .KYBD DEF 12004B,I .R TO KYBD ENTRY POINT INBND NOP LIA 1 GET SW REG. RAL,RAL SSA,RSS AND IF BIT 13 IS A 0, JMP INBND,I SKIP THE VAR-LOAD PROGRAM. * LDA PTRAD,I GET ADDR. OF MEM TABLE STA MEMAD STORE IN MEM INDEX POINTER. * .FWBP LDB FWBM JSB INPUT GET FWABP IN A & B. ADB M40 FWABP - 40 SSB SHOULD BE +VE JMP FBERR ADB M1740 FWABP - 2000 SSB,RSS SHOULD BE -VE. JMP FBERR STA MEMAD,I STORE FWABP CMA,INA STA TEMP1 SAVE - FWABP ISZ MEMAD BUMP POINTER. * .LWBP LDB LWBM JSB INPUT GET LWABP ADB TEMP1 LWAB{sP - FWABP SSB SHOULD BE +VE JMP LBERR LDB 0 LWABP ADB M2000 LWABP - 2000 SSB,RSS SHOULD BE -VE JMP LBERR STA MEMAD,I STORE LWABP ISZ MEMAD BUMP. * .FWAM LDB FWMM JSB INPUT GET FWAM ADB M2000 FWAM - 2000 SSB SHOULD +VE JMP FMERR STA MEMAD,I STORE FWAM CMA,INA STA TEMP1 SAVE - FWAM ISZ MEMAD BUMP. * .LWAM LDB LWMM JSB INPUT GET LWAM ADB TEMP1 LWAM - FWAM SSB SHOULD BE +VE JMP LMERR STA MEMAD,I STORE LWAM CMA,INA STA TEMP1 SAVE - LWAM ISZ MEMAD BUMP. * .LWAC LDB LWCM JSB INPUT GET LWAC ADB TEMP1 LWAC - LWAM SSB SHOULD BE +VE JMP LCERR STA MEMAD,I STORE LWAC * JMP INBND,I AND GO TO LOADER ROUTINE. * * * SUBROUTINE INPUT - REQUESTS INPUT,INPUTS TTY KEYBOARD, * CHECKS FORMAT & CONVERTS TO OCTAL # 0 - 77777 IN A & B, * * IF INPUT LENGTH = 0,E.G. CR/LF ONLY,LOADS MEMAD,I INSTEAD. * * IF CHAR # ASCII 0-7,OR > 5 CHARS ENTERED,REJECTS & REREADS. * INPUT NOP LDA P6 JSB .LIST,I PRINT INPUT REQUEST, * .IN LDA P6 LDB BUFAD JSB .KYBD,I GET TTY KEYBOARD INPUT. * LDB 0 SAVE A LDA BUFAD,I PEEK AT FIRST CHAR. AND LMSK CPA EQUAL IF = SIGN JMP SKIP LEAVE MEM TABLE ALONE LDA 1 RESTORE A * JSB CONVI OTHERWISE CONVERT (BUFR) INTO B. JMP .IN IF FORMAT ERROR,RE-READ. * JMP *+2 NORMAL RETURN * SKIP LDB MEMAD,I LOAD OLD TABLE VALUE. LDA 1 A _ B JMP INPUT,I EXIT WITH VALUE IN A & B. * * * SUBROUTINE CONVI - CONVERTS INPUT # IN BUFFR TO OCTAL IN REGS. * * * CALLING SEQ:- * * (A) = # OCTAL DIGITS ENTERED. * JSB CONVI * (P+1) INPUT ERROR EXIT * (P+2) NORMAL RETURN WITH OCTAL NO. IN B. * * CONVI NOP CMA,INA FLIP A, STA CHAR & SAVE AS TALLY ADA P5 5 - CHAR.COUNT SSA SHOULD BE +,\A\ WAS >= 5 JMP INERR T'WERN'T. CLB,CLE LDA BUFAD SET UP STA BUPTR BUFFER POINTER. * ILOOP LDA BUPTR,I GET A WORD SEZ,CME,RSS IF UPPER CHAR, ALF,ALF POSITION LO A. AND M177 SAVE SIGNIFICANT 7 BITS. STA ATEMP SAVE A AND M170 KEEP ASCII TYPE BITS. CPA P60 = ASCII 0 ? RSS YES,OK JMP INERR NO ! LDA ATEMP LDA ATEMP AND M7 KEEP OCTAL DIGIT 0-7 * BLF,RBR BUMP B LEFT 3, ADB 0 & ADD IN DIGIT FROM A. * SEZ,RSS IF LOWER CHAR, ISZ BUPTR BUMP BUFFER POINTER, * ISZ CHAR & IF THIS IS NOT THE LAST CHAR, JMP ILOOP GO ROUND AGAIN. * * (B) = INPUT OCTAL #, 0 - 77777 * ISZ CONVI SET RETURN TO P+2 JMP CONVI,I & EXIT. * INERR LDA P11 * INPUT ERROR ROUTIN * LDB ERRAD JSB .LIST,I PRINT ERROR MESSAGE JMP CONVI,I & RETURN TO P+1. * * CONSTANTS & HOLES * CHAR OCT 0 P5 OCT 5 P60 OCT 60 BUPTR OCT 0 M177 OCT 177 ATEMP OCT 0 M170 OCT 170 M7 OCT 7 P11 DEC 11 ERRAD DEF ERROR ERROR ASC 6,INPUT ERROR P6 DEC 6 LMSK OCT 77400 EQUAL OCT 36400 = SIGN BUFAD DEF BUFFR MEMAD OCT 0 PTRAD DEF 13777B M40 OCT -40 M1740 OCT -1740 P20 DEC 20 P21 DEC 21 P22 DEC 22 M2000 OCT -2000 TEMP1 OCT 0 * * * POINTERS TO MESSAGES * FWBM DEF .FWBM LWBM DEF .LWBM FWMM DEF .FWMM LWMM DEF .LWMM LWCM DEF .LWCM * FBMES DEF .FBER LBMES DEF .LBER FMMES DEF .FMER LMMES DEF .LMER LCMES DEF .LCER * * FBERR LDA P20 LDB FBMES JSB .LIST,I PRINT FWB ERR MESS. JMP .FWBP & REREAD * LBERR LDA P22 LDB LBMES JSB .LIST,I )JMP .LWBP * FMERR LDA P21 LDB FMMES JSB .LIST,I JMP .FWAM * LMERR LDA P21 LDB LMMES JSB .LIST,I JMP .LWAM * LCERR LDA P21 LDB LCMES JSB .LIST,I JMP .LWAC * * BUFFR BSS 3 .FWBM ASC 3,FWABP? .LWBM ASC 3,LWABP? .FWMM ASC 3,FWAM ? .LWMM ASC 3,LWAM ? .LWCM ASC 3,LWAC ? * .FBER ASC 10, 40 <= FWABP <= 1777 .LBER ASC 11,FWABP <= LWABP <= 1777 .FMER ASC 11,2000 <= FWAM <= 77777 .LMER ASC 11,FWAM <= LWAM <= 77777 .LCER ASC 11,LWAM <= LWAC <= 77777 * ENDP1 EQU * * END HED ** LABEL : PUNCHES LEDGIBLE LABEL ON TAPE ** SUBHD TTY VERSION WITH EXTERNAL CHARACTER TABLE NAM LABEL ENT LABEL EXT ENDIO,.IOC.,.ENTR EXT TTY,TABEL OCTAL DLD MACRO X,Y 104200 X+Y MEND DST MACRO X,Y 104400 X+Y MEND SUP LABEL NOP JSB .ENTR DEF LABEL JSB .IOC. TYPE 20002 THE JMP *-2 MESSAGE MSG "ENTER -11. LABEL". JSB .IOC. READ OCT 10401 THE JMP *-2 RESPONSE IASC DEF TEXT AND DEC -72 PRINT IT. SREAD JSB .IOC. WAIT TILL 40001 IT'S ALL SSA BEEN JMP SREAD ENTERED. CMB,INB NEGATE THE # OF CHAR., STB NCHAR# AND SAVE FOR COUNTER. JSB ENDIO WAIT FOR EVERYTHING DEF *+1 TO FINISH. CLF 0 TURN OFF INTERRUPT SYSTEM. LDA IASC GET WORD POINTER. ALS MAKE CHAR. POINTER. STA .ASC# NEXT LDB .ASC GET CHAR. POINTER. JSB UNPAK UNPACK AN ASCII CHAR. ISZ .ASC PREPARE FOR NEXT CHAR. AND ( 177) IGNORE PARITY. ADA TABEL-1 FIND LOCATION IN TABEL. SSA IS IS BEFORE THE FIRST ENTRY? JMP BLANK YES, ISSUE A BLANK. LDB 0 CHECK TO SEE IF THE ADB TABEL-2 CHAR. IS INCLUDED IN TABEL. SSB,RSS IS IT PAST THE END? JMP BLANK YES, ISSUE A BLANK. ALS EACH ENTRY IS TWO WORDS. ADA TABEL ADD OFFSET TO TABEL ORIGIN. DLD 0,I GET TAPE CHARACTERS, DST BUFR AND STORE THEM PRECEDING PREP LDA PBUFR TWO BLANK CHARS. ALS MAKE A CHAR. POINTER STA .BUFR# FOR UNPACKING TAPE CHARS. LDA ( -6) WE WANT TO UNPACK 6 STA CNTR# TAPE CHARS. OUT LDB .BUFR GET THE POINTER. JSB UNPAK UNPACK A CHAR. ISZ .BUFR PREPARE FOR NEXT ONE. AND ( 377) ISOLATE CHAR. LDB ( 130000) THIS IS FOR PUNCHING. OTB TTY SET THE CONTROL WORD. OTA TTY OUTPUT THE CHAR. STC TTY,C PUNCH IT! SFS TTY WAIT TILL JMP *-1 IT'S FINISHED. ISZ CNTR LAST TAPE CHAR? JMP OUT NO,GET THE NEXT ONE. ISZ NCHAR LAST ASCII CHAR? JMP NEXT NO, MORE TO COME. CLC TTY YES, WE'RE ALL DONE! STF 0 TURN INTERRUPTS BACK ON, JMP LABEL,I AND LEAVE. * BLANK CLA CLB DST BUFR JMP PREP * UNPAK NOP CLE,ERB LDA 1,I SEZ,RSS ALF,ALF JMP UNPAK,I * PBUFR DEF BUFR BUFR BSS 2 NOP MSG ASCII "ENTER LABEL" TEXT BSS 36. END HED ** TABEL : CHARACTER TABLE FOR LABEL ** NAM TABEL ENT TABEL OCTAL -57 - # OF CHARS. IN TABLE. -54 NEGATIVE OF FIRST CHAR. TABEL DEF TABLE TABLE OCT 100100,000000 , OCT 020040,020000 - OCT 100000,000000 . OCT 100100,020020 / OCT 070210,070000 0 OCT 174000,000000 1 OCT 104310,130000 2 OCT 104250,050000 3 OCT 034040,174000 4 OCT 114230,064000 5 OCT 070250,044000 6 OCT 004010,174000 7 OCT 154250,154000 8 OCT 010050,174000 9 OCT 050000,000000 : OCT 100120,000000 ; OCT 020120,104000 < OCT 050120,050120 = OCT 104120,020000 > OCT 010010,124020 ? OCT 000000,000000 OCT 170050,024360 A OCT 174250,124120 B OCT 070210,104000 C OCT 174210,104160 D OCT 174250,124210 E OCT 174050,024010 F OCT 070210,124140 G OCT 174040,020370 H OCT 104370,104000 I OCT 040200,100170 J OCT 174040,050210 K OCT 174200,100200 L OCT 174020,010370 M OCT 174020,040370 N OCT 070210,104160 O OCT 174050,024020 P OCT 070210,144360 Q OC$"T 174050,024320 R OCT 110250,124110 S OCT 004370,004000 T OCT 074200,100170 U OCT 074200,074000 V OCT 174100,040370 W OCT 104160,070210 X OCT 014340,014000 Y OCT 144250,114210 Z END (h$FTN,B,T PROGRAM TEST C THIS IS PART OF A DEMO FOR SALOD 1 WRITE (1,10) 10 FORMAT("THIS PROGRAM WILL USE THE TELETYPE TO PUNCH A " 1"LEDGIBLE LABEL ON"/"PAPER TAPE. AFTER TYPING THE" 2" LABEL,BUT BEFORE GIVING THE"/"RETURN, LINE-FEED, " 3"READY THE PUNCH UNIT. INCLUDE AT LEAST ONE"/ 4"SPACE AT THE FIRST AND LAST OF THE LABEL.") CALL LABEL WRITE(1,15) 15 FORMAT(/"AGAIN? (RESPOND Y OR N)") READ(1,20)IANS 20 FORMAT(A1) IF(IANS-131B)30,1 30 STOP END END$ HED SAMPLE EQUIPMENT TABLE TO DEMONSTRATE SALOD SUBHD TTY ONLY * THIS SUBROUTINE MUST CONTAIN ALL THE INFORMATION WHICH * WOULD HAVE BEEN INPUT INTO PREPARE CONTROL SYSTEM. * WHEN MODIFYING THIS SUBROUTINE TO MATCH A PARTICULAR * CONFIGURATION, ONE SHOULD HAVE THE SPECIFICATIONS OF * THE STANDARD UNIT EQUIPMENT TABLE AND THE EQUIPMENT * TABLE WELL IN MIND. * NAM EQT ENT XSQT,XEQT,.SQT.,DMAC1,DMAC2 ENT TTY EXT D.00,I.00 OCTAL XSQT DEF .SQT. .SQT. 7 KYBD 7 TTY 7 LIBRARY 7 PUNCH 7 READER 7 LIST * EQTE MACRO CHNL, DVNO., DVENT DEF CHNL DEF DVNO.*400 NOP DEF DVENT NEQTE EQU NEQTE+1 MEND * NEQTE EQU 0 INITIALIZE COUNTER. * XEQT DEF .EQT. .EQT. NEQT NO. OF EQT ENTRIES. EQTE 13, 0, D.00 * NEQT EQU NEQTE STORE FINAL COUNT. * LOC EQU * REMEMBER THIS LOCATION. * ORG 4 SET INTERRUPT LOCATIONS. HLT 4 POWER FAIL TRAP NOT USED. HLT 5 PE/MP TRAP NOT USED. * ORG 10 CLC * CLC * CLC * TTY JSB I.00 * ORG LOC BACK TO MAIN PROGRAM DMAC1 NOP DMA IS NOT DMAC2 NOP AVAILABLE. * END HED ** INPUT/OUTPUT CONTROL FOR SALOD ** SUBHD XEQT,XSQT,DMAC1,DMAC2 ARE EXTERNAL *********** I N P U T / O U T P U T C O N T R O L ********* * * IOC IS A MODULE OF THE HP-2100 BASIC CONTROL SYSTEM * WHICH PROVIDES FOR GENERAL I/O DEVICE CONTROL AND * BUFFERED DATA TRANSMISSION AS REQUESTED BY CALLS * WITHIN USER PROGRAMS. * * TH\IS VERSION DOES NOT CONTAIN THE ADDITIONAL * FEATURES (AND PROGRAM LENGTH) TO PROVIDE FOR * AUTOMATIC BUFFERING OF WRITE AND FUNCTION * REQUESTS. COMPATIBILITY WITH THE BUFFERED * VERSION IS MAINTAINED AND THE SPECIAL SECTION * AT THE ENTRY POINT .BUFR IS PROVIDED TO ALLOW A * COMMON EXIT POINT FOR COMPLETION RETURN * OF ALL OUTPUT DRIVERS. * * IOC IS RESPONSIBLE FOR: * * -PROCESSING USER REQUESTS FOR DATA TRANSMISSION, * PERIPHERAL DEVICE FUNCTIONS AND DEVICE STATUS. * * -PROVID NG PROPER LINKAGE AND CONTROL TO I/O * EQUIPMENT SOFTWARE DRIVERS FOR PROCESSING THE * REQUESTED OPERATIONS. * * -MAINTAINING AN EQUIPMENT TABLE WHICH CONTAINS * THE INFORMATION NECESSARY TO DEFINE AND DESCRIBE * A PERIPHERAL DEVICE, TO PROCESS REQUESTS AND * TO SUPPLY OPERATION STATUS. * * * REQUEST DESCRIPTIONS: * * -DATA TRANSMISSION ( READ/WRITE ) * REQUEST CODE: 1/2 * * (P) JSB .IOC. * (P+1) (REQUEST CODE,K,P,ORDINAL) * (P+2) (REJECT POINT) * (P+3) (BUFFER ADDRESS) * (P+4) (BUFFER LENGTH) * (P+5) -NORMAL RETURN- * * -FUNCTION SELECT, REQUEST CODE = 3 * * (P) JSB .IOC. * (P+1) (REQUEST CODE, FUNCTION, ORDINAL) * (P+2) (REJECT POINT) * (P+3) -NORMAL RETURN- * * -STATUS/CLEAR, REQUEST CODE = 4/0 * * (P) JSB .IOC. * (P+1) (REQUEST CODE, ORDINAL) * (P+2) -NORMAL RETURN- * * * ENTRY POINTS: .IOC. ENTRY POINT FOR REQUESTS. * IOERR LOCATION OF IOC ERROR HALT * NAM IOC ENT .IOC.,IOERR,.BUFR EXT XEQT,XSQT,HALT * A EQU 0 B EQU 1 .IOC. NOP STF 0 ACTIVATE INTERRUPT SYSTEM LDA .IOC.,I GET WORD 2 AND POSITION ALF REQUEST CODE TO AND M.17 LOW A, ISOLATE STA R.C. AND SAVE CODE. ADA NMAX SUBTRACBIT THE MAXIMUM REQUEST +1 SSA,RSS A POSITIVE RESULT JMP RCER MEANS UNDEFINED CODE - ERROR. LDA .IOC.,I GET WORD TWO AGAIN AND M.77 ISOLATE ORDINAL FIELD AND STA B SAVE IN B. SZA IF ORDINAL = 0, CHECK REQUEST CODE. JMP IOC0 NON ZERO, CHECK ORDINAL. * CPA R.C. IF REQUEST IS * CLEAR* GO TO JMP CLRSY CLEAR ALL UNITS AND DRIVERS. LDA C.04 IF REQUEST IS FOR CPA R.C. * STATUS *, GO TO JMP SSTAT GET TOTAL SYSTEM STATUS. ORER CLA,INA,RSS - ORDINAL ERROR FOR REQUEST. LDA C.04 JMP ERRTN * IOC0 ADA MIN7 SUBTRACT 7 FROM ORDINAL. IF SSA,RSS RESULT IS POSITIVE, THEN ORDIN- JMP IOC1 NAL IS TO EQT. OTHERWISE ADD ADB XSQT ADDRESS OF SQT TO VALUE 1-6 ADB MIN1 SUBTRACT 1 FOR PROPER ENTRY - LDB B,I GET SQT ENTRY IN B EQT ORDINAL SZB,RSS IF ORDINAL = 0, THE SQT ENTRY JMP SERR NOT DEFINED - ERROR. * * CONTROL HERE TO EXAMINE EQT ENTRY * IOC1 ADB MIN6 SUBTRACT 6 FROM ORDINAL TO GET * POSITION IN EQT. LDA B GET EQT ORDINAL TO A. CMA,INA SUBTRACT REQUEST (OR SQT) ADA XEQT,I ORDINAL FROM # OF EQT SSA ENTRIES; A NEGATIVE RESULT MEANS JMP ORER ORDINAL TOO LARGE - ERROR. BLS,BLS MULTIPLY ORDINAL BY 4, SUBTRACT ADB MIN3 3 AND ADD STARTING ADDRESS OF ADB XEQT EQT TO GET ADDRESS OF ENTRY. STB EQTT SAVE FWA OF EQT ENTRY FOR DRIVER. INB SET B = ADDRESS OF WORD 2. * * CHECK FOR TYPE OF REQUEST * LDA R.C. GET REQUEST CODE TO A CPA C.04 IF CODE = 4, THEN GO TO PROCESS JMP IOC3 STATUS REQUEST. * * REQUEST IS FOR DATA TRANSMISSION, FUNCTION SELECT * OR CLEAR OPERATION. * LDA B,I GET WORD 2 OF EQT ENTRY. ELA SAVE MSB OF O FIELD ADB C.02 SET B = ADDRESS OF WORD 4 LDB B,I AND GET DRIVER ADDRESS. STB DRIV SET DRIVER ADDRESS. LDA .IOC.,I GET WORD TWO OF REQUEST AND FMASK ISOLATE FUNCTION AND SUB FUNCTION. SZA CLEAR REQUEST? CPA FUNC NO, SIMPLE FUNCTION REQUEST? JMP IOC2 YES, GO TO DRIVER. SEZ IS DEVICE BUSY? JMP IOC5 GO TO REJECT REQUEST. * * SET UP DRIVER LINKAGE AND GO TO DRIVER * IOC2 LDB .IOC. SET B - ADDRESS OF REQUEST WORD 2. LDA EQTT SET A = FWA EQT ENTRY JSB DRIV,I GO TO DRIVER - INITIATOR SECTION. * * RETURN FROM DRIVER - CHECK FOR REJECT CONDITION * M.77 CLE,SLA,ALF IF A(0) NOT = 0, THEN REJECT JMP IOC7 (B) = REJECT CONDITION. * * NORMAL EXIT SECTION (EXCEPT FOR STATUS REQUEST) * LDA R.C. GET REQUEST CODE TO A LDB .IOC. SET B = ADDRESS OF WORD 2. SZA,RSS IF REQUEST CODE = 0, GO TO EXIT JMP IOC3 AS A STATUS REQUEST. ADB C.02 SET B TO P+3 FOR FUNCTION RETURN. ADA MIN3 SUBTRACT 3 FROM REQUEST CODE. SZA IF NOT FUNCTION, THEN SET ADB C.02 B TO P+5 RETURN. JMP B,I ---EXIT TO NORMAL RETURN--- * * CONTROL HERE FOR STATUS REQUEST * IOC3 LDA B,I SET A = WORD 2 OF EQT ENTRY INB AND SET (B) = LDB B,I WORD 3 OF EQT ENTRY. IOC4 ISZ .IOC. ADJUST RETURN TO P+2. JMP .IOC.,I EXIT TO CALLER. * * CONTROL HERE FOR SYSTEM STATUS REQUEST (ORDINAL =0) * SSTAT LDA XEQT,I GET # OF EQT ENTRIES, CMA,INA SET NEGATIVE AND STA SIOC SAVE AS A COUNTER. LDB XEQT SET (B) = ADDRESS OF WORD ADB C.02 2 OF FIRST ENTRY. * SST1 LDA B,I GET WORD 2 - SSA IF AVAILABILITY FIELD SAYS UNIT JMP SST2 BUSY, THEN COMPLETE REQUEST. ADB C.04 SET (B) FOR NEXT ENTRY ISZ SIOC w INDEX EQT COUNTER. JMP SST1 NOT FINISHED. * * A(15) : 1 IF ANY UNIT IS BUSY; 0 IF NO UNIT IS BUSY. * SST2 CLB SET B=0 TO INDICATE IOC W/O OUTPUT JMP IOC4 BUFFERING RETURN TO NORMAL EXIT. * * CONTROL HERE FOR SYSTEM CLEAR REQUEST * CLRSY LDA XEQT,I GET # OF EQT ENTRIES, CMA,INA SET NEGATIVE AND STA SIOC SAVE FOR A COUNTER. LDA XEQT SET (A) = ADDRESS OF WORD 1 INA OF FIRST ENTRY. * CLR1 STA EQTT SAVE CURRENT WORD 1 ADDRESS. ADA C.03 SET ADDR TO WORD 4, LDA A,I GET AND SET STA DRIV DRIVER ADDRESS. LDA EQTT (A)= EQT ENTRY ADDR. LDB .IOC. (B) = REQUEST WORD 2 ADDRESS. JSB DRIV,I CLEAR DRIVER. LDA EQTT SET (A) = ADA C.04 ADDR OF NEXT ENTRY. ISZ SIOC INDEX EQT COUNTER. JMP CLR1 NOT FINISHED. JMP IOC4 CLEAR COMPLETE; EXIT. * * FOLLOWING SECTION ONLY AFFECTS A RETURN TO * AN INTERRUPTED SEQUENCE IN THIS VERSION. * THE CALL IS FROM THE CONTINUATOR SECTION * OF AN OUTPUT DRIVER: * (P) JSB .BUFR * (P+1) -RETURN ADDRESS- * .BUFR NOP CLF 0 TURN OFF INTERRUPT SYSTEM. STA BSAVA SAVE A LDA .BUFR,I GET AND STA .BUFR SET RETURN ADDRESS. LDA BSAVA RESTORE A. STF 0 TURN ON INTERRUPT SYSTEM. JMP .BUFR,I RETURN TO INTERRUPTED SEQUENCE. * BSAVA NOP * * REJECT SECTION * IOC5 CLB,INB DEVICE BUSY REJECT SET B(15) = 1 RBR IOC7 ISZ EQTT LDA R.C. GET REQUEST CODE SZB,RSS CPA C.03 WAS IT A FUNCTION SELECT? RSS YES, NORMAL RETURN JMP ORER+1 NO, GIVE (A)=4 HALT. LDA EQTT,I (A)=WORD 2 OF EQT ENTRY. JMP IOC4 GO TO EXIT TO P+2 * * ERROR CONDITION SECTION (IRRECOVERABLE ERRORS) * RCER CLA,RSS REQUEST CODE ERROR =0 SERR LDA C.02 SQT ENTRY ERROR $" = 2 ERRTN CCB SET = LOCATION OF USER REQUEST ADB .IOC. CONTAINING ILLEGAL VALUE. IOERR HLT 76B JMP HALT * * CONSTANTS AND STORAGE * SIOC OCT 0 HOLDS ADDRESS P+1 OF REQUEST. R.C. NOP HOLDS REQUEST CODE. EQTT NOP HOLDS ADDRESS OF CURRENT EQT ENTRY DRIV NOP HOLDS ADDRESS OF DEVICE DRIVER. * M.17 OCT 17 MASK FOR REQUEST CODE. C.02 OCT 2 CONSTANTS C.03 OCT 3 C.04 OCT 4 USED MIN1 OCT -1 MIN3 OCT -3 IN MIN6 OCT -6 MIN7 OCT -7 PROCESSING. NMAX OCT -5 -(MAX REQUEST CODE + 1) FMASK OCT 176700 MASK TO SELECT FUNCTION FUNC OCT 30000 SIMPLE FUNCTION REQUEST. END 6$ 9 22681-18028 1500 SC 0322 21MX PAPER TAPE              H0103 lASMB,A,B,L,T,C,Z HED *** HPAP-MX *** <"21MX SERIES" VERSION> FALL 1974 * * * TO ASSEMBLE THESE SOURCE TAPES: * USE THIS CONTROL STATEMENT, ASMB,A,B,L,T,C,Z * * * * * * BOB FUNK * HP/SOUTHERN SALES REGION * SEPTEMBER 1974 * * * * **************************** * * TEMPORARY AND FLAG REGION* * * (PARTIALLY CLEARED AFTER * * * EACH PASS) * * **************************** * ORG 00006B NAME BSS 4 (OPLK) BASF BSS 1 BASE PAGE FLAG PRERR BSS 1 ERROR PAGE NUMBER (LAST). CNTR BSS 1 EXT COUNTER ENT. BSS 1 NO.OF ENT'S ENTC BSS 1 ORG OF ENT TBL ENTV BSS 1 ENTBL COUNTER ENFLG BSS 1 LTFLG BSS 1 LITERAL FLAG(0=NO LIT.) REP BSS 1 REPEAT COUNTER REQ BSS 1 FLAG FOR 1ST STATE AFTER REP SUP BSS 1 SUP/UNS FLAG TAPE BSS 1 TAPE COUNTER IFUSE BSS 1 =1, SKIP ASSMBL.; =-1, IN 'IF' RANGE ORBS BSS 4 ORGS,ORRS,ORRSV SPC 1 SFLAG BSS 1 =3 FOR PASS 2/3 COMB. LST BSS 1 LST/UNL FLAG WORD. SEQN BSS 1 SEQ.NO.CNTR ASM1 BSS 1 CONTROL STATE.FLAG HED BSS 1 HEADER FLAG(LENGTH) PLEN BSS 1 LIT/LENGTH(PASS 1)/ORG(PASS 2) * * * ASSEMBLY OPTION FLAGS * * AFLG BSS 5 ABS,BIN,LST,REL,TBL IFTST BSS 1 CONTAINS 'IF' FLAG(N,Z, OR 0) CROSS BSS 1 X-REF OPTION. LINC BSS 2 LINE - PAGE CNTRS PASS BSS 1 PASS FLAG 0= PASS 1, 1= PS 2, 2= PS 3 ERRCN BSS 1 ERROR COUNTER PLCN BSS 1 PROGRAM LOC'N COUNTER SPC 1 GTEM BSS 4 'MOVE ROUTINE' SYMP BSS 2 SYMBL LNG/LOC (2 CELLS) SAVB BSS 2 SCN1 BSS 4 STATE LNG/OPCODE/OPERAND/LABEL(4) CNVT EQU ENTC ASCN DEXP EQU ENT. ASCN - DECIMAL EXPONENT DFCNT EQU ENTV ASCN FRACTION CHAR COUNTER SDSIG EQU ENTV ASCN - SAVE SIGN OF MANTISSA SPC 1 TEST BSS 1 TEST CHARACTER LAST BSS 1 PNTR BSS 1 POINTS AT LAST OR CURR.CHAR. SPC 3 STOP LDB TEL SZB JMP TYPE-1 HLT 77B JMP ASCN+1,I TO ASMB SPC 1 BSS 4 * 00101 READ DRIVER * 00102 LIST DRIVER * 00103 BINARY OUTPUT DRIVER * 00104 KEYBOARD INPUT DRIVER SPC 1 DEF X FWA AVAIL MEMORY BSS 1 LWA AVAIL MEMORY SPC 1 MAGFL NOP NO MAG TAPE DRIVER IF THIS LOC'N IS ZERO * 00107 MAG.TAPE DRIVER SPC 2 TEMP JMP TYPE ALTERNATE KEYBOARD ENTRY POINT. BSS 6 ASCII CONVERSION STORAGE. SPC 1 VAL0 EQU TEMP+1 ASCN - MOST SIGNIFICANT 1/3. VAL0S EQU TEMP+2 ASCN PASCN EQU VAL0S NUMBER PNTR SAVE(CHOP). VAL1 EQU TEMP+3 ASCN - MIDDLE 1/3. VAL1S EQU TEMP+4 ASCN VALU EQU TEMP+5 ASCN - LEAST SIGNIFICANT 1/3. VALUS EQU TEMP+6 ASCN DCNT EQU VAL1S ASCN SPC 2 * 00120B = KEYBOARD CS ENTRY POINT. SPC 1 HLT 77B TYPE LDB TEL+2 B=STAND.INPUT INSTRUC. LDA TEL+1 A=KEYBOARD INSTRUC. JMP *+1,I DEF ASMB+2 TEL NOP KEYBOARD CONTROL STATE. FLAG JSB 104B,I KEYBOARD INPUT JSB 101B,I STANDARD INPUT SPC 1 * * MAG TAPE ROUTINE ADDRESSES * SPC 1 BSPR DEF BSP POSITION TAPE (BACKSPACE) TREAD DEF TRD READ A RECORD TWRIT DEF TWRT WRITE A RECORD TPND DEF TPEND REWIND AND POSITION TAPE PEEK BSS 1 LAST CHARACTER PICKED UP. MAGA EQU SCN1 MT CHARACTER COUNT. CNTB BSS 1 CNTC BSS 1 FLEX BSS 1 MODE EQU FLEX ASCN MODE OF CONVERSION SPC 1 * * FOLLOWING 5 LOC'S ARE CLEARED IN CHOP ROUTINES * SPC 1 RELC BSS 1 RELOC FLAG SIGN BSS 1 SUMP BSS 1 RUNNING SUM FOR CHOP TERM BSS 1 NO.OF TERMS IN OPERAND T BSS 2 CHOP(T+1,BUMP) SPC 1 DSIG BSS 1 (ASCN) FLAG BSS 1 BYFLG BSS 1 BYTE FLAG(BREC) FLAQ BSS 1 FLX1 BSS 1 (ASCN) INSV BSS 1 RCNT BSS 1 S BSS 1 STOR BSS 1 SUM. BSS 1 SVST BSS 1 SYMI BSS 1 ADDR CNTR FOR SYMB TBL (SYMK) FEXP EQU SYMI ASCN FRACTIONAL EXPONENET LWTBL BSS 1 LAST WORD ADDRESS OF SYMBOL TABLE CODE BSS 1 OPCODE TYPE INST BSS 1 OPCODE FORMAT * * * FIXED DATA * * Z DEF PLCN-NAME+1 INITIAL CLEAR LENGTH Y ABS SFLAG-NAME CLEAR LENGTH FOR A PASS DEF AFLG (Y+1) HEDR DEF *+1 ASC 2, PAG ASCI BSS 3 DEST. OF CONVRTED DEC. NOS. ASC 3, # PART OF HEADER BSS 28 HEADER BUFFER * * * NUMERIC CONSTANTS * * ...1 DEC 1,2,3,4,5,6,7,9 .10B OCT 10 .11 DEC 11 .12 DEC 12,13,14,15,16,17,20,24,32,48,50,52,47,57 DEC 64,72 .31B OCT 31 =IFZ,IFN,XIF TYPE C OCT 400,401,1400,14000,4400,2000,4000,7777,200 OCT 146314,177600,60000,20000,120000,16000,216 .200B EQU C+8 200B TENTH EQU C+9 146314B .1776 EQU C+10 177600B LMDG DEF *+1 (ASCN) DEC -1000,-100,-10,-11 LPDG DEF *+1 (ASCN) DEC 1000,100,10 ..M1 DEC -1,-2,-3,-4,-5,-6,-8 M DEC -15,-16,-20,-29,-31,-38,-46,-48,-53,-54,21 DEC -57,-58,-64,-73 DEXCD EQU M+10 DEX CODE=25B * * * ERROR DIAGNOSTICS * * CD ASC 11,OPCSDDILSYNOM OVSOENUN IF ASC 1,IF ERROR IN IFZ OR IFN SPC 1 * * MISC CONSTANTS * * A OCT 5757,100000,77600,30060 BLNK EQU .12+8 (32DEC) D ABS -TEMP-4 -(TEMP+4) DEF IOBF+5 D+1 DEF PBUF+4 D+2 DEF IOBF+2 D+3 DEF BUFF+4 D+4 DEF IOBF+6 D+5 DEF IOBF+3 D+6 .HC1 DEF H+2 DEF H+4 CSAD DEF PBUF+3 ** ENDSB DEF ERP END PROCESSOR HXD. DEF HEDR+9 LOC OF PAGE HEADER FBOI DEF IOBF FFUB DEF BUFF FUBP DEF PBUF HIN DEF HA32 HIN DEF HA55+1 +1 DEF ART +2 DEF HB11 +3 DEF HC30+1 +4 DEF NMP +5 L OCT 50,51,52,53,54,55,56 ( ) * + , - . EQ OCT 75 EQUAL SIGN(=) *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! N DEF X+1 1ST LOCN OF RELOC RTNS (MODIFIED) +*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NAMI DEF NAME (OPLK) DEF TEMP+5 +1 DEF OPT +2 TS DEF TEST TW10 OCT 176000,1777 ADDRESS MASKS UMSK OCT 177400,70377,1000,175777,377 LMSK EQU UMSK+4 MASK FOR LOWER 8 BITS .F OCT 106 F DEF *+1 ADDR OF RC RC ASC 5,E R B C X .A OCT 101,102,103,105,111,114,122,124 ABCEILRT SPC 1 * * SUBROUTINE LINKS * * SHFT1 DEF SHFT2 ASCN DEF ASCNP DEF ASMB BNCN DEF BNCQ CHOP DEF CHOQ INSR DEF INSQ LIST DEF LISQ MOVE DEF MOVQ OPLK DEF OPLQ SYMK DEF SYMQ NDLIT DEF NLIT PLIT DEF PLITS ORGT DEF ORGST ARTL DEF ARTLT LOCN OF ARITH LITERAL ROUTINE PB59 DEF PBUF+59 LOCN O ABS BINARY CHECKSUM LTSVA NOP FOR ART USE LTSVB NOP .1 EQU ...1 EFLAG OCT 000000 SYSTEM PAGE EJECT FLAG WORD. IOBF9 DEF IOBF+9 IOBF7 DEF IOBF+7 IOBF8 DEF IOBF+8 IOBF1 DEF IOBF+1 BUFF1 DEF BUFF+1 BUFF2 DEF BUFF+2 BUFF3 DEF BUFF+3 PBUF6 DEF PBUF7 .99 DEC 99 PASS1 OCT 000000 PASS 1 SOURCE FLAG. SKP * ******************** * * PASS INITIALIZER * * ******************** * ZPT DEF *+5 POINTS AT ZERO WORD SPC 1 INIT NOP SPC 1 * * CLEAR PASS DEPEND.TEMP.* SPC 1 LDB NAMI GET START OF CLEAR AREA LDA Y JSB SETM NOP FOR 0 (USED BY ZPT TOO) * * * READ 1ST STATEMENT * SPC 1 JSB TAPN.,I (SET TAPE NUMBER TO 1). IXG JSB RSTA LDA CODE CPA .12+3 'HED' STATE? JMP IXH YES ISZ CNTR SET EXT PARAMETER COUNTER LDB AFLG SZB ABS ASS'Y? JMP HI04 YES STB PLCN SET PLCN=0 CPA .12+1 (13) NAM ? JMP HI12-1 -YES- * * * NO NAM OR ORG * * HI02 LDA CD+5 'NO' JSB ERPR LDA AFLG SZA ABSOLUTE? JMP INIT,I EXIT JMP HI12 RELOC. * IXH JSB INST,I GO TO HEDSB JMP IXG * * * ABSOLUâTE ASSEMBLY * * HI04 CPA ...1 ORG? JMP *+4 LDA C+5 (2000B) STA PLCN SET PLCN=2000 JMP HI02 ERROR JSB CHOPI EVALUATE OPERAND JMP INIT,I ERROR - EXIT STB PLCN ISZ INIT JMP INIT,I * * * RELOCATABLE ASSEMBLY * * *(THIS IS HI12-1) SPC 1 ISZ INIT HI12 LDA PASS SZA PASS 1? JMP INIT,I EXIT * * * PROCESS NAME FOR BINARY RECORD * * LDB FBOI (FOR BLANKS IF NO NAME) LDA SCN1+2 GET POSN OF OPERAND SZA IS NAME PRESENT? JSB GETA GET OPERAND ADDR. STB *+4 (INTO MOVE LINK) LDA ...1+4 (5) LDB CSAD ADDR OF PBUF+3 JSB MOVE,I NOP LOCN OF PROG NAME(FROM *-4) JMP INIT,I * * * SET TAPE #, ROUTINE * SPC 1 TAPN. DEF TAPN SKP * ******************** * * READ A STATEMENT * * ******************** * RSTA NOP LDA REP SZA,RSS ARE WE REPEATING A STATE? JMP RXT NO - ISZ REP YES, ARE WE DONE? JMP RZP NO RXT LDB FBOI LDA .12+10 JSB SETM SET I/O BUFF TO BLANKS BLNS ASC 1, JMP TREAD, I GO TO MAG TAPE READ RXB LDB FFUB LDA .12+15 80 RSDRV JSB 101B,I GO TO READ SZA A=0? JMP TWRIT,I GO TO MAG TAPE WRITE CPA SEQN NEW TAPE ? JMP RXB NO! STA SEQN SET SWQN=0 (FOR NEW TAPE) JSB TAPN.,I INCREMENT THE HEADER TAPE NUMBER. LDA PASS PASS FLAG LDB MAGFL MAG TAPE FLAG SZA,RSS PASS 1? SZB,RSS YES - IS MAG TATPE BEING USED? JMP RXC NO - SKIP END-OF-FILE WRITE. SPC 1 * * WRITE END-OF-FILE ON MAG TAPE * SPC 1 JSB MAGFL,I TO MAG TAPE DRIVER OCT 2 NOP JSB WETX SPC 1 * * STOP HERE FOR TAPE CHANGE * SPC 1 RXC CCA ADA TAPE LDB TAPE HLT 57B JMP BLNS; +1 SPC 2 WETX NOP ENTRY POINT. HLT 40B CLA STA MAGFL CLEAR THE MT FLAG WORD. JMP WETX,I RETURN. SPC 2 * * 'REP' PROCESSING * * RZP ISZ REQ 1ST REP PASS? JMP RXT YES,READ STATEMENT CCA STA REQ SET REQ = -1 CLA,INA STA PNTR SET PNTR=1 JMP RXL * * * SCAN STATEMENT (A=LENGTH) * * RXH ISZ SEQN BUMP SEQ.NO. CLB,INB 1 TO B STB PNTR SET PNTR = 1 ADB 0 ADD A TO B STA SCN1 SPC 1 * * SET CHARS FOLLOWING STATE.TO BLANKS * SPC 1 BRS ADB FFUB LDA BLNS STA 1,I RXL CLA (ENTER FOR REP PROCESSOR) STA BYFLG CLR PUNCH BYTE FLAG STA SCN1+3 STA TEST ISZ ASM1 CONTROL STATE.? JMP *+4 NO. LDA ...1+4 YES, SET LIST CODE JSB LIST,I LIST THE STATE. JMP RSTA,I EXIT * * * CHECK LABEL AREA * * JSB PKUP PICK UP NEXT CHAR; BUMP PNTR CPA L+2 *? JMP HI24 -YES- * * * IS LABEL PRESENT? * * CPA BLNK JMP HS50 -YES- JSB LBL TEST FOR ILLEGAL CHAR LDA TEST -OK- TEST FOR NUMERIC 1ST CHAR ADA M+7 (-48) SSA LESS THAN ZERO? JMP HS20 YES ADA M (-15) NO. SSA >77B ? JMP HLB NO- ERR0R HS20 JSB PKUP GET NEXT LABEL CHAR CPA BLNK END OF LABEL? JMP HS49 -YES JSB LBL -NO, TEST FOR LEGALITY JMP HS20 -OK * * * TEST FOR ILLEGAL CHAR. IN LABEL * * * THEY ARE ' ( ) * + , - * * LBL NOP ADA M+6 (-46) SSA,RSS GRTR THAN OCT 55? JMP LBL,I YES,LEGAL ADA ...1+6 (7) SSA LESS THAN OCT 47 ? JMP LBL,I YES,LEGAL * * * ERROR EXIT * * HLB LDA CD+4 'SY' JSB ERPR JMP HS20 * * * LABEL POST-PROCESSOR * * HS49 LDA PNTR ADA ..M1+1 (-2) SET LABEL LENGTH STA SCN1+3 * * * PROCESS OPCODE * * HS50 JSB OPLK,I SEARCH FOR OPCODE JMP HSERR ERROR EXIT JSB PKUP GET NEXT CHAR (_*+5) CPA BLNK BLANK? JMP *+4 YES? CPA L+4 COMMA? JSB BPKUP YES-GET NEXT NON-BLANK JMP *-5 GET NEXT CHAR. * * * TEST FOR OPCODE LENGTH LEGAL * * LDB PNTR CMB,INB (POINTS TO BLNK FOLLOWING OPCODE) ADB SCN1+1 CPB ..M1+3 (-4) JMP HS54 LENGTH OK (=3) LDA CODE ADA M+7 (-60B) CODE-48 SSA,RSS MICRO-OP ? JMP HS54 YES * * * ERROR PROCESSOR FOR OPCODE * * LDA CD JSB ERPR HSERR LDA RSTA LDB IFUSE CPB .1 SKIP CODE BECAUSE OF IFZ/IFN? JMP IFPRN YES - GO PRINT THE STATEMENT. AND TW10 IS READ REQUEST FROM INIT RTN? SZA,RSS IF IT IS, DON'T BUMP PLCN OR PUNCH. JMP HI24 -IT'S FROM INIT, SKIP OUTPUT BELOW. LDA PASS SZA,RSS JSB LABEL INSERT LABEL FOR OPCODE ERROR JSB LOUT TO BREC JSB LIST,I ISZ PLCN BUMP LOCN.CNTR JMP RXT READ NEXT STATE. HI24 LDA ...1+2 (3) REMARK PROC. JSB LIST,I JMP RXT READ NEXT STATEMENT * * * PICK UP OPERAND LOCN, THEN EXIT * * HS54 LDB CODE CPB .31B IS THIS IFZ/IFN/XIF? JMP IFZN YES LDA IFUSE GET 'IF' USE FLAG CPA .1 SKIP ASSEMBLING? CPB .12 IS IT AN 'END'? RSS YES - DON'T SKIP IT JMP HI24+1 GO ON AND PRINT THE STATEMENT JSB BPKUP GO SKIP BLANKS IF NECESSARY. ADB M+14 (-73) TEST FOR PNTR<73 CLA SET A=0 STA LTFLG CLEAR LITERAL FLAG SSB SKIP IF FIELD OUT OF RANGE LDA PNTR PNTR TO A STA SCN1+2 OPERND POSN SZA OPERAND PRESENT? * * * TEST FOR LITERAL * * JSB PKUP YES - GET 1ST CHAR. LDB AFLG GET 'ABS'FLAG CPA EQ IS THE OPERAND A LITERAL? SZB YEA - IS THIS AN 'ABS' ASSEMBLY? JMP RSTA,I YES, EXIT FROM READER HERE. JSB PKUP GET THE LITERAL TYPE, NOW. LDB SCN1+2 GET OPERAND PNTR ADB .1+1 ADD 2 STB SCN1+2 RESET PNTR TO LETERAL VALUE STA LTFLG SET LIT.FLAG(=LITERAL TYPE) JMP RSTA,I EXIT FROM RSTA HERE SPC 2 * * PROCESS 'IFZ', 'IFN', OR 'XIF' CODES..* SPC 1 IFZN LDA INST GET INSTR.FORMAT(HAS IF CHAR IN) CLB SZA,RSS IS INST = 0? (IS IT XIF) ? JMP IFZN3 YES CPB IFUSE IFUSE = 0? JMP IFZN2 YES - GO ON WITH PROCESSING. IFZNR LDA IF NO - ERROR, WE'RE IN AN 'IF' GRP. JSB ERPR PRINT 'IF' ERROR JMP IFZN3+1 SPC 1 IFZN2 CLB,INB SET B = 1 CPA IFTST IS 'IF' CHARACTER MATCHED? CMB,INB YES - SET B = -1 IFZN3 STB IFUSE SET 'IFUSE' FLAG CLB ENTER: B=0. CPB REP IN REPEAT RANGE? JMP IFPRN NO. STB REP YES - ERROR, SET REP=0. JMP IFZNR SPC 1 IFPRN CLA,INA SET UP FOR NO INST, NO LOC'N PRNT JMP HI24+1 GO TO LIST AND CONTINUE SKP * ****************** * * SKIP 'A' LINES * * ****************** * LINS NOP STA DSIG SET LINES TO SKIP INTO CNTR. CLA A=0 FOR LINE FEED JSB 102B,I PRNT ISZ DSIG TEST CNTR JMP *-3 NOT DONE JMP LINS,I YES. * * ******************************* * * FIND NUM.OF CHARS IN A TERM * * ******************************* * MSYM NOP STB SAVB STB PNTR CLA START CNTR STA DSIG ZERO TO CNTR STA TEST HI42 STA LAST LAST LDA SAVB JSB GETC CPA L+2 * ? JMP HI43 YES CPA BLNK END OF SYMBOL? JMP *+7 -YES- ADA M+6 (-46) OCT 2021 SSA,R e JMP HI44 ADA ...1+6 (7) SSA TERMINATOR? JMP HI44 NO * * * SET UP FOR EXIT * SPC 1 LDA PNTR JSB GETA LDA DSIG NO.OF SYMBOLS TO A JMP MSYM,I EXIT * HI43 LDA DSIG CPA ...1 IS '*' ALONE? JSB OPERR NO, ERROR HI44 ISZ DSIG BUMP CNTR. ISZ SAVB LDA TEST JMP HI42 SKP * ************************** * * PRINT ERROR DIAGNOSTIC * * ************************** * ERPR NOP ISZ ERRCN BUMP ERROR COUNTER LDB BLNS STA D+1,I ERROR DIAG. STB D+5,I BLANKS STB IOBF9,I BLANK OUT RELOC INDIC. LDA SEQN CCE JSB BNCN,I CONVERT SEQ.NO. LDA ASCI+1 FOR USE IN STA IOBF7,I THE LDA ASCI+2 DIAGNOSTIC STA IOBF8,I JSB ERTS STATE. JSB PRPAG,I LDA SCN1 GET STATEMENT LENGTH ADA LPDG+3 (+10) LDB D+1 JSB PRNT PRINT LDA LINC+1 LOAD THE CURRENT PAGE NUMBER. STA PRERR SAVE IT FOR THE NEXT ERROR PRINT. JSB ERTS JMP ERPR,I EXIT SPC 1 PRPAG DEF PG SPC 1 * * TEST SWITCH 15 FOR HALT IN ERROR RTN * * ERTS NOP PASS 2 HALT LDA 00102B LOAD THE LIST ENTRY POINT. CPA 00103B IS AN ASR33 BEING USED? LDA PASS TEST. LIB 1 SWITCHES TO B REG. SSB,RSS SKIP IF 15 ON. JMP ERTS,I CPA ...1 SKIP IF PASS 2. HLT 55B PASS 2 ERROR HALT JMP ERTS,I * * * PICK UP NEXT CHAR, ADD 1 TO PNTR * * PKUP NOP LDA PNTR JSB GETC ISZ PNTR JMP PKUP,I * * * SEARCH FOR NON-BLANK CHAR, SET PNTR AT IT * * BPKUP NOP JSB PKUP CPA BLNK BLANK? JMP *-2 YES - GET NEXT CHAR. CCB ENTER: B=-1. ADB PNTR NO - SET PNTR TO LAST NON-BLANK STB PNTR JMP BPKUP,I * * ***************************** * W * PUNCH AND SET UP FOR LIST * * ***************************** * LOUT NOP CLA 0 TO A CLB,INB 1 TO B JSB BREC CLA 0 TO A LDB BLNS BLANKS TO B JMP LOUT,I EXIT * * * MOVE CHARS FROM SYMBOL TABLE * * -A CONTAINS 1ST WORD OF SYMBOL ENTRY * -B CONTAINS DESTINATION ADDR. * -HMOV5 CONTAINS ORIGIN ADDR. * MTABL NOP ALF AND ...1+6 (7) FOR NO.OF WRDS. STA SUMP CPA ...1+1 (2) CLA,INA,RSS ENTER: A=1; SKIP. IOR ...1 JSB MOVE,I HMOV5 NOP JMP MTABL,I * * * MEASURE SYMBOL AND SET * * SYMP = SYMBOL CHAR COUNT * * SYMP+1 = SYMBOL POSITION * MSYMS NOP JSB MSYM STA SYMP STB SYMP+1 JMP MSYMS,I * * * PUT STARTING POSN.OF OPERAND INTO PNTR * * SPNTR NOP LDA SCN1+2 OPER.POSN. STA PNTR JMP SPNTR,I * * * PNTR+1+'A' TO PNTR * * NOP (SPNTR+4) ADA PNTR INA STA PNTR JMP SPNTR+4,I * * * MOVE CHARS.TO A BUFFER FROM ASCI * * * BUFFER ADDR.IN B REG. * SPC 1 V NOP LDA ...1+5 JSB MOVE,I DEF ASCI JMP V,I * * * SET UP AND PRINT 'M' DIAG. FOR OPERAND ERROR * * OPERR NOP LDA CD+6 'M' JSB ERPR JMP OPERR,I * * * SET UP FOR EVALUATION OF OPERAND IN WHICH A COMMA * * IS ILLEGAL. * CHOPI NOP CLA JSB CHOP,I JMP CHOPI,I ISZ CHOPI JMP CHOPI,I * * * TEST FOR LABEL PRESENT AND INSERT IN SYMBOL TABLE * * SET CORRECT RELOC.CODE BEFORE INSERTION. * LABEL NOP LDA SCN1+3 GET LABEL LENGTH SZA,RSS LABEL PRESENT ? JMP LABEL,I -NO- DONE STA SYMP SET CHAR COUNT LDB FFUB STB SYMP+1 SET LABEL ADDR. CLA LDB LTFLG STB FLAQ SAVE LTF LG STA LTFLG LTFLG_0 LDB AFLG ABS. FLAG SZB ABS.ASSMBLY ? JMP *+5 -YES LDB BASF -NO-- RELOC.ASSY. SZB IN BASE PAGE ? INA -YES- SET A=2 INA -NO SET A=1 LDB PLCN JSB INSR,I INSERT LABEL INTO SYMBOL TABLE NOP ERROR EXIT LDB FLAQ STB LTFLG RESTORE LTFLG JMP LABEL,I SKP * ******************************** * * PRINT OUTPUT AND COUNT LINES * * ******************************** * PRNT NOP STA SAVB+1 SAVE CHAR COUNT STB SAVB SAVE BUFFER ORIGIN ISZ LINC END OF JMP I PAGE? - NO LDA 00102B LOAD THE LIST DEVICE ENTRY POINT. CPA 00103B IS AN ASR33 BEING USED? LDA PASS YES, LOAD THE PASS FLAG. CLE,SLA,ERA IS BIT 0 SET ON? SHIFT IT TO "E". SZA YES, IS THIS THE PUNCH PASS (1)? RSS NO, SKIP. JSB 00102B,I YES, GO ISSUE A LINE-FEED. LDA M+11 STA LINC SET LINE COUNT = 58 ISZ LINC+1 BUMP PAGE NO. CCE FOR DECIMAL NO. LDA LINC+1 CONV. PAGE NO. JSB BNCN,I * * * SET UP PAGE HEADER * * LDA RC 'E' STA ASCI LDA LPDG+3 OUTPUT 10 CHARS. LDB PASS BRS,SLB IS THIS A LIST PASS? ADA ...1+3 (4) SET UP FOR HEADER SLB IS THIS A LIST PASS? ADA HED LDB HEDR ADDR OF BUFFER JSB 102B,I TO PRINT DRIVER LDA ..M1+1 (-2) SKIP 2 LINES JSB LINS 2. I LDA SAVB+1 LDB SAVB JSB 102B,I PRNT DRIVER JMP PRNT,I PRINT EXIT SKP * ****************************** * * GET BUFFER ADDRESS OF ITEM * * ****************************** * GETA NOP ADA ..M1 A-1 TO A CLE,ERA ADA FFUB SEZ UPPER ADDR? CMA,INA NO - COMPLEMENT IT. STA 1 A TO B JMP GETA,I * * ***********m****************** * * SET MEMORY TO GIVEN VALUE * * ***************************** * SETM NOP CMA,INA SET VALUE FOR COUNTER STA DSIG LDA SETM,I GET PARAMETER TO BE STORED IN AREA STA 1,I - PLACE PARAMETER IN MEMORY INB ISZ DSIG JMP *-3 ISZ SETM JMP SETM,I * * ************************* * * OUTPUT LEADER/TRAILER * * ************************* * LEAD NOP LIA 1 LEADER SLA JMP LEAD,I EXIT * * * SET FOR LEADER OUTPUT * * LDA M+4 SET FOR 6" OUT STA SUMP OCT 3400 A=-1 LDB ZPT ZERO PNTR JSB 103B,I PNCH ISZ SUMP ZEROES JMP *-4 JMP LEAD,I EXIT SKP * ************************* * * BINARY OUTPUT ROUTINE * * ************************* SPC 1 BREC NOP STA SAVB+1 SAVE RELOC'N BYTE LDA PASS TEST PASS NO. OCT 2011 PASS2? JMP BREC,I NO. LDA WCNT SZB RECORD OUT? JMP HI66 NO. SZA,RSS WCNT=0? JMP BREC,I YES. SPC 1 * * OUTPUT A RECORD SPC 1 HI60 LDA WCNT ALF,ALF ROTATE 8 STA WCNT STORE WCNT IN UPPER PBUF LDB AFLG SZB,RSS ABS.ASSEMBLY? JMP HI64 -NO- SPC 1 * * OUTPUT ABSOLUTE FORMAT * SPC 1 ALF,ALF ADA ...1+1 (2) CMA -NO.OF WORDS LDB FUBP JSB 103B,I GO PUNCH CLA STA WCNT SET WCNT=0 JMP BREC,I EXIT SPC 1 * * OUTPUT RELOCATABLE FORMAT * SPC 1 HI64 LDA SVST,I POSITION REMAINING RELOCATION B]ES ALF,RAR ISZ RCNT JMP *-2 RAL STA SVST,I STORE RELOC.BYTES SPC 1 * * SET REC.ID CODE (WORD 2) * SPC 1 CPB BASF IF BASF=1, SKIP LDB .12+14 SET CURR.PAGE INDIC.(100B) ADB C+11 SET RIC = '011' ADB PBUF+1 SET REMAINDER STB PBUF+1 JSB PNCH  GO PUNCH JMP BREC,I AND EXIT SPC 1 * PROCESS A BINARY OUTPUT WORD SPC 1 HI66 LDA WCNT SZA FIRST WORD OF RECORD? JMP HI70+1 -NO- SPC 1 * * SET UP FOR RELOCATABLE * SPC 1 LDB PLCN PLCN TO BREG LDA AFLG SZA ABS.ASSMBLY? JMP HI68 -YES- STB PBUF+3 SET DBL ADDR. STA PBUF+1 SET PBUF+1=0 LDA ...1+3 (4) STA WCNT SET WCNT = 4 LDA D+2 STA STOR SET STOR=L(PBUF+4) LDB ..M1+4 (-5) STB RCNT SET RCNT=-5 LDA M+9 (-54) JMP HI70 SPC 1 * * SET UP FOR ABSOLUTE * SPC 1 HI68 STB PB59,I PLACE LOAD ADDR INTO CHECKSUM STB PBUF+1 LOAD ADDR. TO PBUF+1 LDA D+2 ADA ..M1+1 (-2) STA STOR SET STOR =L(PBUF+2) LDA M+11 (-57) HI70 STA CNTB SET CNTB FOR WORD COUNT SPC 1 * * HI70+1 * SPC 1 LDB AFLG GET 'A' FLAG SZB,RSS RELOCATABLE OUTPUT? JMP HI71+3 YES SPC 1 * * ABSOLUTE OUTPUT * SPC 1 LDA INST STA STOR,I STORE INST IN BIN.REC. ISZ STOR BUMP STOR ADA PB59,I UPDATE CHECKSUM STA PB59,I STA STOR,I CHK SUM TO WORD FOLOWING INST ISZ WCNT UPDATE WCNT HI71 ISZ CNTB IS THIS THE LAST WORD? JMP BREC,I NO- EXIT JMP HI60 YES- GO TO PUNCH SPC 1 * * RELOCATABLE PROCESSOR * SPC 1 LDA RCNT (HI71+3) CPA ..M1+4 RCNT= -5? JMP HI74 -YES-SET UP ADDRESSES SPC 1 * * STORE RELOC.BYTE / UPDATE SPC 1 ISZ PBUF+1 (HI71+6) UPDATE # OF DATA WRDS LDA SVST,I ALF,RAR IOR SAVB+1 RELOC BYTE STA SVST,I ISZ RCNT BYTE WORD FULL? JMP HI76 -NO- LDB ..M1+4 -YES-(-5) STB RCNT RESET RCNT TO -5 RAL STA SVST,I LDA CNTB INA,SZA SHOULD "CNTB" BE INCREMENTED? ISZ CNTB HIJ76 LDB INST STB STOR,I ISZ STOR ISZ WCNT LDA SAVB+1 RELOC BYTE CPA ...1+4 (5) 2 WORD INSERT? RSS JMP HI71 TO EXIT TEST ISZ WCNT BUM.WORD COUNT LDA SUMP STA STOR,I ISZ STOR AND TW10+1 CLR UPPER 6 BITS OF SUMP BRS,BRS CLEAR LOWER 2 BITS OF INST BLS,BLS IOR 1 'OR' B TO A STA INST ISZ CNTB BUMP CNTB JMP HI71 JMP HI60 SPC 1 HI74 LDA STOR STA SVST STB SVST,I CLEAR RELOC BYTE WORD ISZ STOR ISZ WCNT JMP HI71+6 SPC 1 * * *********************************** * * * PICK UP A SYMBOL TO BE PRINTED * * * * 'A' HAS DESTINATION ADDRESS * * * *********************************** SPC 1 MBLNK NOP LDB ENTV GET TBL ENTRY LOCATION CMB,INB SPC 1 * * SEND ADDR. TO MOVE LINKAGE SPC 1 STB HMOV5 SPC 1 * * MOVE BLANKS TO BUFFER SPC 1 LDB BLNS STB FFUB,I STB BUFF1,I STB BUFF2,I LDB FFUB ADDR. OF BUFF TO B JSB MTABL MOVE SYMBL TO PRINT BUFF JMP MBLNK,I EXIT HERE SPC 2 * ************************* * * PUNCH A BINARY RECORD * * ************************* SPC 1 PNCH NOP LDB PASS GET PUNCH OUT FLAG SLB,RSS WAS PUNCHING REQUESTED? JMP PNCH,I NO, EXIT FROM ROUTINE HERE SPC 1 * * COMPUTE CHECKSUM * SPC 1 LDB FUBP LDA PBUF ALF,ALF CMA,INA STA CNTB INA STA GTEM STORE CHKSUM CNTR CLA CLEAR STA PBUF+2 CLEAR CHECKSUM SLOT INB INCREMENT THE RECORD ADDRESS. ADA 1,I ADD TO CHK SUM ISZ GTEM DONE? JMP *-3 -NO STA PBUF+2 -YES- STORE SUM SPC 1 * * GO TO SYS PUNCH * SPC 1 LDA CNTB LENGTH OF BUFFER LDB FUBP LOC'N OF BUFFER JSB 103B,I CLA STA PBUF SPC 1 * * EXIT HERE SPC 1 JMP PNCH,I SPC 1 * ************************ * * GET AN OPERAND CHAR. * * ************************ SPC 1 GETC NOP JSB GETA STB *+5 LDB TS ADDR OF 'TEST' TO B REG OCT 7004 OCT 2404 A=1 JSB MOVE,I NOP (FROM *-5) LDA TEST JMP GETC,I SPC 1 * ************************************* * * GET BREC CODE AND LIST RELOC CHAR * * ************************************* SPC 1 * BREC CODE IN A, LIST CHAR IN B. SPC 1 DCOD NOP LDB BLNS SZA,RSS ABSOLUTE REL.? JMP DCOD,I YES,DONE STA SAVB SAVE RELC CODE CPA ...1+4 IS IT EQU EXT ? ADA ..M1 YES, SET = 4. ADA RC-1 POINT TO CORR.RELC.CHAR. LDB 0,I PICK IT UP LDA BYFLG SZA,RSS LDA SAVB PICK UP RELC CODE IF NECESSARY. JMP DCOD,I RETURN SPC 1 * ********************************************** * * PROCESS THE 'DEF' FOLLOWING THE FIRST WORD * * * OF AN ARITHMETIC PAIR * * ********************************************** SPC 1 ARTX JSB LIST,I GO TO LIST FIRST WORD LDA .12+4 (20B) STA CODE =DEF CLA STA INST CLEAR INST LDA LTFLG SZA LITERAL PRESENT? JMP ALTR YES LDA .A+4 SET UP FOR INDIR.BIT LDB A+1 MASK=(100000B) JSB CHOP,I NOP ALTZ ISZ PLCN BUMP LOCATION COUNT STB SUM. SAVE OPERAND VALUE LDB .1+3 LIST PARAMETER=4 JMP HCXLI,I GO ON TO MEM REF PROCESSOR SPC 1 ALTR LDA LTSVA PICK UP LDB LTSVB LITERAL INFO JMP ALTZ FROM LKLIT SPC 1 HCXLI DEF HCXL SKP * * BINARY(PUNCH) OUTPUT BUFFER * SPC 1 PBUF OCT 010400,020000,00>0000 ASC 3, PBUF7 OCT 000000,000000,000000,000000 DEC 99 OCT 000000,000000,000000,000000,000000,000000 BSS 43 OCT 000000 EXTRA WORD FOR BUFFER OVERFLOW. SPC 1 WCNT EQU PBUF WORD(BLK) CNT FOR BIN.RECRD. SPC 1 .N OCT 000116 'N' .Z OCT 000132 'Z' SPC 2 TAPN NOP ENTRY POINT. LDA TAPE LOAD THE TAPE NUMBER. CCE,INA ENTER: E=1; INCREMENT TAPE NUMBER. STA TAPE STORE THE UPDATED TAPE NUMBER. JSB BNCN,I LDA ASCI+2 STA HEDR+7 STORE IN HEADER BUFFER. JMP TAPN,I RETURN. SKP * ************************ * * PASS 1 END PROCESSOR * * ************************ SPC 1 * * PRINT SYMBOL TABLE * SPC 1 HB00 LDA AFLG+4 (TFLG) SZA,RSS JMP HB08 TABLE NOT REQUESTED - FINISH PASS LDA 105B FWA AVAIL.MEMRY STA ENTV TO ENTV HBX LDA ENTV,I TEST 1ST WORD OF ENTRY SZA,RSS COMPLETED? JMP HB08 YES - GO TO FINISH PASS 1 JSB MBLNK MOVE A SYMBOL TO BUFF THRU BUFF+2 SPC 1 * * GET RELOCATION INDIC. CHAR. SPC 1 LDA ENTV,I OCT 1727 AND ...1+6 (7) CPA ...1+6 LITERAL ENTRY? JMP HBY YES. JSB DCOD STB BUFF3,I SPC 1 * * GET VALUE OF SYMBOL * SPC 1 CCB ENTER: B=-1. ADB SUMP (NO.OF WORDS IN ENTRY) ADB ENTV LDA 1,I CLE,INB ENTER: E=0; INCREMENT "B". STB ENTV JSB BNCN,I SPC 1 * * STORE ASCI VALUE INTO BUFF SPC 1 LDB D+4 L(BUFF+4) JSB V LDB FFUB SET PRINT PARAMETERS LDA .12+2 (14) JSB PRNT PRINT JMP HBX ENTRY DONE. SPC 1 HBY LDA SUMP NO.WDS IN ENTRY ADA ENTV + ADDR OF ENTRY STA ENTV = ADDR OF NEXT ENTRY JMP HBX SPC 1 * * ERRORS PRINTED * SPC 1 HB08 JSB ENDSB,I CLOSE OUT PASS(SKIP,INIT,ETC.) LDA 00102B LOAD THE PRINT DRIVER ADDRESS. LDB AFLG+1 LOAD THE PUNCH FLAG. CPA 00103B IS AN ASR33 ONLY BEING USED? SZB,RSS WAS THE PUNCH OPTION SELECTED? CLA,RSS NO, ENTER: A=0; SKIP. RSS YES, SKIP. CPA MAGFL IS A MT UNIT BEING USED? HLT 11B NO, HALT AT END OF PASS 1. SPC 2 * * ENTER HERE TO START PASSES 2 OR 3 * * * TEST FOR PUNCH OUTPUT SPC 1 SZB PASS 2? JMP PASS2 YES LDA AFLG+2 LIST FLAG SZA LIST? JMP U TO PASS 3 ISZ LST SET THE LIST FLAG TO "UNL". LDA AFLG+4 LOAD THE "T" OPTION FLAG. IOR CROSS INCLUDE THE "C" OPTION FLAG. LIB 01B LOAD THE SENSE SWITCH REGISTER. SSB IS SSW(15) SET ON? SZA YES; WERE "T" AND "C" NOT SELECTED? CLA,RSS NO, ENTER: A=0; SKIP. JMP U YES, DO PASS 2, ERRORS ONLY. LDB PASS1 LOAD THE PASS 1 SOURCE FLAG. SLB,RSS IS PASS 1 FROM MT? CPA MAGFL NO; IS A MT UNIT NOT BEING USED? JMP ASMBX YES, CONTINUE EXIT PROCEDURE. JSB MAGFL,I NO, GO CLOSE THE CURRENT FILE. OCT 000002 WRITE "END-OF-FILE" REQUEST CODE. NOP "END-OF-TAPE" RETURN, ERROR. JSB WETX GO DISASSOCIATE THE MT UNIT. SPC 1 * * * END OF PASS POUTINE HERE * * SPC 1 CLA ENTER: A=0. ASMBX STA EFLAG CLEAR THE SYSTEM PAGE EJECT FLAG. CPA MAGFL IS A MT UNIT BEING USED? JMP STOP N0 - SKIP REWIND ROUTINE. JSB MAGFL,I GO TO 'REWIND' ROUTINE OCT 3 LDA CROSS LOAD THE CROSS-REFERENCE FLAG. SZA IS A CROSS-REFERENCE TO FOLLOW? LDA ..M1+1 JMP STOP SKP PASS2 JSB BSPR,I GO TO BACJSPACE ROUTINE SPC 1 * * OUTPUT LEADER  SPC 1 JSB LEAD GO TO LEADER OUTPUT ROUTINE SPC 1 * * SET PASS FLAG = 1 (FOR PASS 2) * SPC 1 LDA SFLAG CHECK FOR COMBINED PASS 2/3 SZA,RSS IS IT IN? CLA,INA NO -SET PASS =1(FOR PASS 2) HB10 STA PASS SET PASS FLAG SPC 1 * * TEST FOR ABSOLUTE ASSEMBLY * SPC 1 LDA AFLG SZA,RSS ABSOLUTE ASSY? JMP HIN+5,I NO, PROCESS 'NAM', 'ENT' AND 'EXT' HB11 LDA TEL SZA,RSS WAS CONT.STATE.FROM KEYBOARD? JMP *+3 NO STA ASM1 RESET CS READ FLAG RSS SKIP CS READ SPC 1 JSB RSTA READ CONTROL STATEMENT SKP * **************** * * START PASS 2 * * **************** SPC 1 H JSB INIT JMP H+5 ERROR IN INIT LDA ...1+1 LIST PARAMETER JSB LIST,I SPC 1 * * READ NEXT STATEMENT SPC 1 *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! JSB MXCHK READ NEXT STATEMENT *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! SPC 1 * * TEST MNEMONIC CODES FOR PROCESS TYPE * SPC 1 LDA CODE CPA .12 'END'? JMP " (TO QUOTE) CPA .12+3 (17B) HED? JMP X50 CPA .29 (35B) REP? JMP X52 LDB INST CPA .12+6 (24B) LST/UNL? JMP X54 CPA .12+8 (40B) SUP/UNS? JMP X56 CPA DEXCD EXTENDED DECML.(DEX)? JMP NUMP YES *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IFZ CPA B77 A 21MX NOP WORD INST? JMP MXHC7 YES XIF *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ADA ..M1+2 (-3) SSA ORB/ORG/ORR JMP HC42 YES ADA ..M1+3 (-4) SSA (COM,ENT,EXT OR ARIT MAC?) JMP HC38 YES CPA ...1+3 'EQU' ? JMP EQUP YES CPA .11 SKP? JMP INST,I TO fSKPR CPA .12 SPC? JMP INST,I TO SPCR CPA ...1+2 'BSS' ? JMP BSSP YES ADA ..M1+2 (-3) SSA (OCT,DEC OR ASC ?) JMP NUMP YES ADA M+5 (-38) SSA,RSS MICRO-OP ? JMP MICR YES LDA CODE IFZ CPA .26B INTEGER ARITH? JMP HC70 YES.. CPA .27B EXTENDED SHIFT ROTATE? JMP HC80 YES... XIF CPA .12+7 (24) NOP OR CLO ? JMP HC30 YES CPA L+3 (43) SOC OR SOS ? JMP HC28 YES CPA .12+5 (17) ABS ? JMP HC26 YES CPA .12+1 (13) 'NAM'? JMP HC38 AND ..M1+6 (177770) CPA L I/O ? JMP IOPR YES SPC 1 * * PROCESS MEMORY REFERENCE INSTRUCTIONS * SPC 1 LDA INST LDB LTFLG SZB LITERAL PRESENT? JMP HCY YES AND ..M1+1 NO, CLEAR LDSB OF 'INST' STA INST LDA .A+4 (I) LDB A+1 (100000) INDIR.MASK JSB CHOP,I GO EVALUATE OPERAND JMP HC17E ERROR EXIT HCX STB SUM. OPERND VALUE CLB LIST PARAMETER=0 HCXL STB TERM SAVE THE LIST PARAMETER LDB SUM. GET THE OPERAND VALUE SPC 1 * * RELOC.CODE IS IN RELC * SPC 1 SZA ABS? JMP HC11 NO ADB M+13 (-64) LIA 01B LOAD THE SENSE SWITCH REGISTER. ALF,ALF SHIFT BIT 4 TO BIT 0. ALF,SLA IS B.P. ADDRESS OF > 77B TO BE ALLOWED? ADB R.T YES, "SUBTRACT": TERM - 2000B. SSB B>77 ? JMP HC11 NO LDB AFLG SZB,RSS ABS. ASS'Y? JSB OPERR OPERAND ERROR HC11 LDA SUM. LDB CODE CPB .12+4 (16) DEF? JMP HC17 LDA RELC CPA ...1+1 (2) B.P. RELOC? JMP *+3 YES SZA ABSOLUTE? JMP HC15 NO SPC 1 * * TEST FOR OPERAND>1023 * SPC 1 LDA SUM. ADA TW10 SSA,RSS JMP OI.SP LDA INST CLEAv!R AND UMSK+3 (175777) CURRNT.BIT STA INST JMP HC14 SPC 1 R.T OCT 176100 SPC 1 * * TEST FOR OPERND AND INSTR IN SAME PAGE * SPC 1 OI.SP LDA RELC CPA ...1+1 (2) B.P.RELOC ? JMP *+8 YES, ERROR (TO HC13) LDA PLCN AND TW10 OCT 3004 CMA,INA ADA SUM. AND TW10 OCT 2003 SZA,RSS JMP *+3 LDA CD+7 'OV' (FROM *-8,'HC13') JSB ERPR LDA TW10+1 STRIP UPPER 6 BITS AND SUM. BITS STA SUM. HC14 LDA RELC CPA ...1+1 (2) B.P.RELOC ? JMP HC15+2 LDA SUM. NO, GET ADDR FOR AND TW10+1 ISOLATE THE 10 BIT ADDRESS. JMP HC17 INSERT INTO INST. SPC 1 HC15 CPA ...1+3 EXT? (4) JMP HC14 LDB ...1+4 (5) (HC15+2 HERE) STB BYFLG LDB PASS CPB ...1+1 LIST PASS ALONE ? JMP HC14+3 YES, GO TO SET ADDR.INTO INST ADA ..M1 HC17 IOR INST STA INST SET LOADER FLAG SPC 1 * * SET UP FOR DCOD* SPC 1 LDA RELC JSB DCOD (HC17+3) SPC 1 * * OUTPUT A BINARY WORD * SPC 1 STB SAVB CLB,INB JSB BREC SPC 1 * * OUTPUT A LINE FOR LISTING * SPC 1 LDB SAVB RELOC CHAR. LDA TERM GET THE LIST PARAMETER JSB LIST,I ISZ PLCN JMP H+4 (TO 'HC03') SPC 1 * * LITERAL PROCESSING * SPC 1 HCY SLA,RSS LSB OF INST INDIC LITERAL POSSIBLE JMP HCZ NO, ERROR AND ..M1+1 CLEAR LSB OF INST STA INST JSB PLIT,I JMP HCZ+1 ERROR EXIT JMP HCX SPC 1 HCZ JSB OPERR 'M' ERROR HC17E CLA LIST PARAMETER =0 STA TERM SAVE IT JMP HC17 SPC 1 * * PROCESS 'ABS' OPCODE * SPC 1 HC26 JSB CHOPI GO EVALUATE OPERAND JMP HP2D ERROR STB INST JMP HP2D OK.. SPC 1 * * PROCESS SOC OR SOS # SPC 1 HC28 LDA SCN1+2 PNTR TO OPERAND LDB 0 A TO B JSB MSYM ADA ..M1 SZA JMP HP2D LDA LAST IS 'C' CPA .A+2 (C) PRESENT? RSS YES, SKIP. JMP HP2D NO SPC 1 * * 'OR' 1 TO BIT 9 (C BIT) OF I/O INST * SPC 1 LDA INST IOR UMSK+2 (1000) STA INST JMP HP2D SPC 1 * * OUTPUT BIN RECRD AND/OR LIST LINE * SPC 1 HC30 JSB LOUT JSB LIST,I (HC30+1 HERE) SPC 1 * * ADD 1 TO PROG. LOCN. CNTR. * SPC 1 ISZ PLCN BUMP LOCATION CNTR JMP H+4 (TO HC03) SPC 1 * * COM,ENT,EXT AND ARITH MACRO TESTER * SPC 1 HC38 LDB AFLG SZB ABS. ASS'Y ? JMP X39 YES, ERROR ALREADY NOTED CPA ..M1 NO, IS IT ARITH MACRO ? JMP INST,I GO TO ARITH PROC X39 CLA,INA 1 TO A JMP H+3 (TO HC02) SPC 1 * * ORG,ORB,ORR PRE-PROCESSOR * SPC 1 HC42 CLB OUTPUT A JSB BREC RECORD JSB INST,I JUMP TO CORRECT SUBROUT. JMP H+2 (HC01) SPC 1 X50 LDA PASS CPA ...1 PUNCH ONLY PASS? JMP H+4 YES - GO TO NEXT STATEMENT JSB INST,I TO HEADER SUBROUTINE LDA LST LOAD THE LST/UNL FLAG. SZA,RSS UNLIST SELECTED? JSB OKOLE SPACE TO BOTTOM OF PAGE JMP H+4 X52 JSB INST,I TO REPSB JMP X39 X54 LDA AFLG+2 LOAD THE LISTING FLAG ("L"). SZA WAS LISTING SPECIFIED? STB LST SET LST/UNL FLAG JMP X39 X56 STB SUP SET SUP/UNS FLAG JMP X39 SPC 1 * * PASS 2 'EQU' PROCESSOR * SPC 1 EQUP JSB CHOPI EVAL. OPERAND CLB ERROR EXITS LDA PLCN STA SUMP SAVE PLCN VALUE STB PLCN SET PLCN=0 LDA ...1+1 (2) LIST 'EQU' JSB LIST,I LDA SUMP REPLACE PLCN VALUE STA PLCN JMP .HC1+1,I (HC03) SKP IFZ HC70> LDA LTFLG GET LITERAL FLAG SZA ARE LITERALS PRESENT? JSB ARTL,I YES, GO TO LITERAL PROCESSOR JSB LOUT OUTPUT THE ARITH INSTRUCTION JMP ARTX GO PROCEESS THE 'DEF' PORTION.. SPC 1 HC80 JSB CHOPI GO EVALUATE THE COUNT JMP HC84 BAD COUNT EXIT ADB M17 B-17 SSB B GRTR THAN 16? CPB M17 NO. IS B=0? JSB OPERR YES, IT'S AN 'M' ERROR,. SPC 1 LDA SUMP GET THE SHIFT OR ROTATE COUNT.. AND .12+3 MASK OUT LOWEST 4 BITS HC82 ADA INST MAKE UP THE FINAL INSTRUCTION STA INST JMP HC30 GO AND OUTPUT THE INSTRUCTION SPC 1 HC84 CLA SET COUNT FOR 16 BIT SHIFT ROTATE JMP HC82 XIF SKP * ****************************** * * PASS 2 AND 3 END PROCESSOR * * ****************************** SPC 1 " CLB JSB BREC LAST OUT LDA AFLG SZA ABS.ASSMBLY? JMP HC55 YES JSB NDLIT,I NO, GO PROCESS LITERALS, IF ANY SPC 1 * * PUNCH 'END' RECORD * SPC 1 LDA C+5 FOR WCNT = 4 (2000) STA WCNT SET WORD COUNT LDA SCN1+2 POINTS TO OPERAND (IF ANY) STA PBUF+3 CLEARED IF NO EXECUTION ADDRESS SZA,RSS EXEC.ADDR.PRSNT? JMP HC54+1 -NO-. SPC 1 * * PROCESS EXEC.ADDR. * SPC 1 JSB CHOPI GO EVALUATE OPERAND JMP HC54 -ERROR- STB PBUF+3 STORE ADDR. CLB,INB SET B = 1 ADA ..M1 SZA,RSS RELOC.? JMP HC54+2 GO TO BIT SET UP INB FOR CORREDCT B.P. BIT SETUP CPA ...1 B.P.RELOC? JMP *+4 YES (TO HC55,FROM *-2) JSB OPERR OPERAND ERROR-NOT RELOCATABLE. HC54 CLA CLB ADB 0 A+B TO B (FROM *-4,'HC55') ADB C+13 SET RIC = 5 STB PBUF+1 HC55 LDA PASS SLA,RSS PASS 2 END? JMP *+5 NO-END OF PASS 3. LDA AFLG  SZA,RSS SKIP 'END' PUNCH IF ABS ASS'Y. JSB PNCH JSB LEAD OUTPUT TRAILER CLA,INA SET A=1 (HC5+1) LDB BLNS BLANKS FOR RELOC,INDIC. JSB LIST,I JSB ERTS TEST FOR SWITCH 15 HALT JSB ENDSB,I * PRINT ERROR COUNT * SPC 1 * * TEST PASS AND ASSY END * SPC 1 LDB AFLG+2 LOAD THE LIST FLAG ("L"). LDA PASS SZB WAS THE LIST FLAG SET TO LIST? ARS,SLA,ARS END OF PASS 3? JMP ASMBX-1 YEA - GO TO END OF PASS ROUTINES STA LST SET THE LST/UNL FLAG TO "LST". SPC 1 * *** END OF PASS * HALT HERE *** SPC 1 CPA MAGFL IS A MT UNIT BEING USED? HLT 23B END PASS 2/3 SPC 1 * * START NEXT PASS HERE * SPC 1 U JSB BSPR,I GO TO BACKSPACE MAG TAPE PROC. LDA ...1+1 (2) JMP HB10 SPC 1 * ************************* * * OCT/DEC/ASC PROCESSOR * * ************************* SPC 1 NUMP JSB SPNTR SET PNTR=OPERAND POSN. CLA STA T+1 SET FPAS=0 LDA CODE CPA ...1+6 (7) JMP ASCR HE06 LDB PNTR PNTS AT 1ST CH OF NUMBER STB SIGN CLB STB CNTC INB STB RELC SPC 1 * * TEST CHARACTER FOR TERMINATOR * SPC 1 HE08 LDA PNTR JSB GETC STA TERM CPA L+4 COMMA? JMP HE12 YES CPA BLNK BLANK? JMP HE12 YES SPC 1 * * UPDATE CHAR.CNTR(CNTC) AND POSN. PNTR(TLOC) * SPC 1 LDB CODE CPB ...1+7 (9) OCT? JMP HE10+1 YES CPB DEXCD 'DEX'? JMP HE11 YES LDB ...1+1 (2) NOT OCTAL CPA L+6 PERIOD? STB RELC YES, SET RELC = 2 CPA .A+3 'E' ? HE10 STB RELC YES, SET RELC FOR USE AS ASCN MD ISZ CNTC (FROM *-6) ISZ PNTR BUMP PNTR JMP HE08 HE11 LDB .1+2 SET B=3 FOR DEX MODE JMP HE10 I3 SPC 1 * * SET UP VALUE FOR LIST AND/OR PUNCH * SPC 1 HE12 LDA CODE CLB CPA ...1+7 (9) OCT? JMP *+3 YES LDB RELC NOT OCT OCT 5727 BLFBLF ADB CNTC LDA SIGN JSB ASCN,I CONV. CLA SET A=0 STA INST STB SUMP STORE VALUE LDA VALU SAVE LEAST SIG PART OF 'DEX' STA SIGN HE18 JSB NOUT LDA RELC ARS,SLA IS RELC = 0 OR 1? JMP HE20 NO, ITS 3 OR 2 LDA TERM NO- CPA BLNK JMP H+4 EXIT ON BLANK ISZ PNTR BUMP PNTR JSB BPKUP SEARCH FOR NEXT NON-BLANK JMP HE06 SPC 1 HE20 LDA SUMP STA INST VALUE TO INST LDB RELC CPB .1+2 IS RELC=3? JMP HE22 YES- SET SUMP FOR 3RD WORD CLA HE21 STA RELC SET RELC FOR NEXT TEST JMP HE18 SPC 1 HE22 LDA SIGN STA SUMP VALU TO SUMP LDA .1+1 FOR SETTING RELC=2 JMP HE21 SKP * ******************** * * PROCESS ASC HERE * * ******************** SPC 1 ASCR LDA ...1+1 (2) INDIC.'ASC' JSB CHOP,I GO EVALUATE WORD LENGTH JMP HC30 ERROR EXIT SZA VALUE ABSOL.? JMP HP2D-1 NO; ERROR ADB M+3 (-29) VAL. IN SUMP,T00 SSB,RSS VAL.>28? JMP HP2D-1 YES; ERROR LDA PNTR STA T LDA SUMP OCT 3004 CMAINA STA CNTC VALUE(COMPL.) TO CNTC SPC 1 * * PICK UP WORDS AND STORE INTO PROGRAM * SPC 1 SB JSB BUMP OCT 1727 ALFALF STA TEST JSB BUMP STA INST SPC 1 * * OUTPUT 2 ASCI CHARACTERS * SPC 1 JSB NOUT CLA STA TEST ISZ CNTC JMP SB JMP H+4 (HC03) DONE, PICK UP NEXT STATEMENT SPC 1 * * BUMP TLOC/GET CHAR * SPC 1 BUMP NOP ISZ T LDA T JSB GETC JMP BUMP,I SKP * ************************* * * PROCESS I/O GROUP HERE * * ************************** RAM OCT 105000 OCT 177400 OCT 300 SPC 1 IOPR LDA SCN1+2 IS OPERAND SZA PRESENT? JMP P YES! LDA CODE NO OPERAND CPA L+1 'HLT'? JMP HP2D SPC 1 * * OPERAND ERROR EXIT HERE * SPC 1 JSB OPERR (HP2D-1) HP2D CLA STA TERM SET LIST PARAMETER=0 JMP HC17+3 SPC 1 P LDA .A+2 TEST FOR 'C' LDB UMSK+2 (1000) JSB CHOP,I JMP Q ERROR EXIT SZA A=0? JMP R NO- ERROR LDA 1 YES LDB INST LOAD B REGISTER WITH INSTR. TYPE ADA IOPR-2 MASK FIRST TIME FOR ALL INSTRS. CPB RAM IS INSTR A RAM INSTR. RSS YES, SKIP NEXT MASK < 377B ADA IOPR-1 NO DO SECOND MASK < 77B LDB SUMP RESTORE B SPC 1 * * TEST FOR VALUE>63 * SPC 1 SSA JMP *+4 VAL>64 LDA CD+7 'OV',ADDR OVERFLOW JSB ERPR Q CLB ADB INST (HE54+1) STB INST JMP HP2D SPC 1 R JSB OPERR 'M' ERROR - RELOC.I/O ADDR. JMP Q SPC 1 XX ASC 1,R? RELOCATABLE FOLLOWS ABS. ASS'Y. .29 DEC 29 (35B). .X OCT 000130 X SKP * ******************************* * * ASSEMBLY STARTS HERE. * * * -ENTERED FROM LOCATION 100B * * ******************************* SPC 1 ASMB LDA TEL+2 A=STAND.INPUT INSTR. CLB B=0 SPC 1 * KEYBOARD CS PROCESSOR HERE FROM START AT 110. SPC 1 STB TEL TEL=B (FLAG) STA RSDRV CCA ENTER: A=-1. LDB EFLAG LOAD THE PAGE EJECT FLAG. STA EFLAG SET THE PAGE EJECT FLAG. SZB IS PRINTER INITIALIZED? JSB 00102B,I NO, GO ISSUE A PAGE EJECT. RSTRT LIA 01B LOAD THE SENSE SWITCH REGISTER. RAR,Z|RAR SHIFT BIT 2 TO BIT 0. STA PASS1 STORE THE PASS 1 SOURCE FLAG. JSB TPND,I GO FORWARD SPACE 2 FILES. SPC 1 * * CLEAR ALL TEMPORARY AND I/O BUFFERS * SPC 1 XASMB LDB NAMI BUFFER ADDR.OF TEMP *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CLA STA MX3WD CLEAR NOP WORD INST FLAG *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! LDA Z JSB SETM NOP SPC 1 * * TEST FOR POSSIBLE COMBINED PASS 2/3 SPC 1 LDA 102B PRINT DRIVER LOCN XOR 103B PUNCH LOC SZA ARE THEY THE SAME? LDA ...1+2 NO-SET SFLAG=3 STA SFLAG CCA STA LINC -1 TO LINE CNTR STA ASM1 SET CONT.STAT.FLG JSB RSTA READ/PRINT CONTROL STATEMENT SPC 1 * * TEST FOR 'ASMB' IN FIRST 4 POSITIONS * SPC 1 LDA FFUB,I CMA,INA ADA BUFF1,I CPA A (=5757B) =ASMB? JMP B YES SPC 1 * * CONTROL STATEMENT ERROR ROUTINE * SPC 1 CSER LDA CD+1 'CS' JSB ERPR JSB OKOLE GO ISSUE A PAGE EJECT. HLT 66B CONTROL STATE.ERROR LDA TEL LOAD THE KEYBOARD "CS" FLAG. SZA,RSS WAS THE CONTROL STATEMENT FROM KEYBOARD? CPA MAGFL NO; IS A MT UNIT NOT BEING USED? JMP XASMB YES, GO RESTART THE ASSEMBLER. LDB PASS1 LOAD THE SENSE SWITCH REGISTER. SLB,RSS IS PASS 1 FROM THE MT UNIT? JMP RSTRT NO, GO RESTART THE ASSEMBLER. STA CROSS YES, CLEAR POSSIBLE "C" OPTION. JMP ASMBX GO TERMINATE THE ASSEMBLY. SPC 1 XXER LDA XX GET 'RELOC PART GONE' DIAG. JMP CSER+1 GO TO CONTINUE IN SCER ROUTINE SPC 1 * * TEST FOR CONTROL OPTIONS (A,B,L,R,T) SPC 1 B LDA ...1+4 (5) STA PNTR SET PNTR = 5 JSB PKUP GET NEXT CHAR (B+2) SZA CHARACTER = 0? CPA BLNK DONE ? JMP G YES CPA L+4 COMMA? RSS -YES- JMP CSER -NO- ERROR JSB BPKUP SKIP FURTHER BLANKS LDB Y+1 B REG=ADDR OF AFLG CPA .A =A ? JMP G-3 YES CPA .A+1 =B? INB CPA .A+5 =L ? ADB ...1+1 YES CPA .A+6 =R ? ADB ...1+2 YES CPA .A+7 =T ? ADB ...1+3 YES CPA .N IS IT FOR IFN? ADB .1+4 CPA .Z IS IT FOR IFZ? ADB .1+4 CPA .A+2 C ? ADB ...1+5 YES. CPA .F F OPTION? JMP IGNOR YES, IGNORE THIS OPTION CPA .X X OPTION? JMP IGNOR YES, IGNORE THIS OPTION. CPB Y+1 SKIP IF AN OPTION WAS FOUND JMP CSER ERROR, NO MATCH STA 1,I SET OPTION FLAG IGNOR ISZ PNTR BUMP PNTR FOR NEXT CHAR. JMP B+2 GO FOR NEXT PICKUP SPC 1 * * TEST FOR COMPATABILITY AMONG THE OPTIONS * SPC 1 G LDB AFLG (G-3 IS JUMPED TO) LDA AFLG+3 R FLAG SZB,RSS A FLAG ON ? XOR .A+6 NO- REVERSE R FLAG SETTING SZA IS R FLAG SET CORRECTLY? JMP CSER NO - ERROR-A AND R BOTH ON OR OFF LDB AFLG+1 PUNCH FLAG (A REG =0) ADB AFLG+2 LIST FLAG CPB C+15 BOTH ON ? RSS -YES- LEAVE SFLAG ALONE STA SFLAG -NO- CLEAR SFLAG SPC 1 * * CLEAR PART OF PUNCH BUFFER * SPC 1 STA PBUF CLEAR WORD COUNT LDA BLNS LOAD: A = BLANKS. STA PBUF+5 INSURE THAT LAST "NAM" WORD IS BLANK. LDA .11 LOAD: A=11. LDB PBUF6 LOAD THE BUFFER ADDRESS + 6. JSB SETM GO ZERO(0) OUT PART OF BUFFER. OCT 000000 LDA .99 LOAD: A=99. STA PBUF+10 SET THE DEFAULT PRIORITY NUMBER. SPC 1 * *IF ABSOL. ASS'Y. MOVE FWA OF AVAILABLE * * * MEMORY TO START OF RELOCATION PROCESSORS* * * (FOR ENT,EXT,COM,AND ARITH. MACROS) * SPC 1 LDA N GET FWA AVAIL FOR ABS ASSEMBLIES s LDB AFLG GET ASS,BLY FLAG SZB,RSS RELOCATABLE ASSEMBLY? JMP *+3 YES.. STA 105B SET ABS FWA OF AVAIL MEM. JMP *+3 AND GET OUT SPC 1 *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! RSS CODE NOT RELEASED SO ABSOLUTE BSS 0 ASMB AFTER RELOCATABLE OK *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! JMP XXER NO, IT'S WRONG STOP RIGHT NOW CCA ADA 00105B GET FWA OF AVAILABLE CORE. STA LWTBL SET START OF SYMBOL TABLE CMA,INA LET "A" = SYMBOL TABLE LENGTH. ADA 106B LWA-FWA NOW IN A SPC 1 * * CLEAR SYMBOL TABLE * SPC 1 LDB 105B FWA OF SYMBOL TBL TO B JSB SETM OCT 0 SET TO ZERO LDB TEL LOAD THE KEYBOARD MODE FLAG. SZB,RSS WAS THE CS INPUT FROM KEYBOARD? JMP *+3 NO, CONTINUE. STA SEQN YES, CLEAR THE SEQUENCE NUMBER. STB RSDRV RESET THE INPUT DEVICE FLAG. SPC 1 * ********************* * * START PASS 1 HERE * * ********************* SPC 1 JSB INIT RSS ERROR, SKIP. HA32 JSB RSTA LDA CODE CPA .12 JMP HB00 TO END CPA .12+8 (40B) SUP/UNS? JMP HA32 ADA ..M1+2 -3 SSA JMP HA64 ORR/ORB/ORG CPA LPDG+3 (12B) NAM? JMP HA63 YES, ERROR ADA ..M1+2 (-3) SSA 'COM','ENT' OR 'EXT' ? JMP HA60 CPA ...1+4 'EQU'? JMP HA56 TO EQU CPA ...1+7 (11B) HED? JMP HA32 CPA .12 (14B) SKP? JMP HA32 CPA .12+1 (15B) SPC? JMP HA32 CPA .12+2 (16B) LST/UNL? JMP HA32 SPC 1 * * TEST FOR LABEL FIELD SPC 1 JSB LABEL LDA CODE OPCODE INDICATOR CPA DEXCD EXTENDED DEC.(DEX)? JMP HA40 YES CPA .29 REP? JMP HA64 YES &ECPA ...1+6 (7) JMP HA54 TO ASC IFZ *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CPA B77 A 21MX NOP WORD INST? JMP MXHA7 YES *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CPA .26B INTEGER ARITH(HARDWARE)? JMP HA70 YES.... XIF CPA ...1+5 (6) ARITH MACRO? JMP HA60 YES ADA LMDG+3 (-10) SSA OCT OR DEC? JMP HA40 YES. SZA,RSS BSS ? JMP HA3M TO BSS PROC. CPA ...1+3 (4) MEM REF? JMP HA3L YES,TEST FOR LITERAL HA3B CLA,INA TO ADD 1 TO PLCN SPC 1 * * INCREMENT PROGRAM LOCN. CNTR. * SPC 1 ADA PLCN (HA3B+1) STA PLCN *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! LDB MX3WD A 21MX NOP WORD INST? SZB,RSS YES JMP HA32 NO CLB STB MX3WD CLEAR NOP WORD INST FLG ISZ PLCN INCREMENT PROG LOCATION CNT NOP JUST IN CASE OF ROLL OVER JMP HA32 TREAT LIKE A FLT.PT.INST. *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! SPC 1 * * PROCESS BSS * SPC 1 HA3M JSB CHOPI EVAL.OPERAND JMP HA32 ERROR LDA 1 B TO A JMP HA3B+1 SPC 1 HA3L LDA LTFLG SZA,RSS LITERAL PRESENT JMP HA3B NO LDA INST SLA IS LITERAL LEGAL WITH INST? JMP *+3 YES JSB OPERR NO 'M' ERROR JMP HA3B SPC 1 JSB PLIT,I PROCESS LITERAL NOP IGNORE ERROR JMP HA3B SPC 2 * **************************** * * PROCESS ARITHMETIC MACRO * * **************************** SPC 1 HA38 JSB ARTL,I GO TO LITERAL PROCESSOR LDA L+6 (PERIOD) STA TEMP+4 LDB D LOC OF TEMP+4(LOWER) STB SYMP+1 LOC.OF SYMBOL LDA ...1+3 (4) EXT RELOC CODE STA SYMP NO.OF CHARS. LD(JB PASS SZB JMP HIN+2,I JUMP TO 'ART' ROUTINE LDB CNTR EXT.NUMBER JSB INSR,I RSS ERROR- SKIP NEXT ISZ CNTR BUMP EXT CNTR HA39 LDA .1+1 2 JMP HA3B+1 EXIT SPC 1 * *********************** * * PROCESS OCT AND DEC * * *********************** SPC 1 HA40 CLB,CCE,INB B=1 CPA DEXCD CHECK CODE FOR 'DEX' ELB LET B=3 IF CODE IS 'DEX'. STB DCNT SET LOCN COUNT BUMPER CLA STA CNTB STA TEMP JSB SPNTR SET PNTR=OPERAND POSN SPC 1 * * PICK UP AND EXAMINE A CHARACTER * SPC 1 HA41 JSB PKUP CPA L+4 COMMA? JMP HA44 YES, GO SCAN FOR NEXT PARAM. LDB CODE LOAD THE OPERATION CODE TYPE. CPB .10B IS THE OPERATOR "DEC"? CLB,INB,RSS YES, ENTER: B=1; SKIP. JMP HA42 YES CPA L+6 PERIOD? JMP HA48 CPA .A+3 'E'? JMP HA48 HA42 CPA BLNK END OF STATEMENT? JMP HA49 YES JMP HA41 NO - GO FOR NEXT CHARACTER SPC 1 * * RESET FLT PT FLAG, SKIP BLANKS FOR NEXT CHAR * SPC 1 HA44 CLA STA TEMP JSB BPKUP LDB DCNT GET 'BUMP' COUNT JMP HA48+4 SPC 1 * * FLT PT TEST FOR NUMBER USING BOTH . AND E * SPC 1 HA48 LDA TEMP ISZ TEMP SZA E OR '.' COUNTED YET? CLB YES, SET B=0. ADB CNTB (HA48+4) STB CNTB ADD TO WORD COUNT JMP HA41 SPC 1 * * END OF NUMERIC PSEUDO-OP PROCESSOR * SPC 1 HA49 LDA DCNT ADA CNTB SET A=NO OF LOCNS TO BE USED JMP HA3B+1 EXIT SPC 1 * ******************************** * * PROCESS ASC (GET VALUE OF N) * * ******************************** SPC 1 HA54 LDA ...1+1 (2) 'ASC' INDIC.FOR CHOP JSB CHOP,I EVALUATE O:-PERAND JMP HA3B ERROR SZA JMP HA55 ERROR-NOT ABS.VAL. ADB M+3 (-29) LDA SUMP SSB SKIP IF >28 WORDS JMP HA3B+1 HA55 ISZ PLCN * ERROR EXIT * LDA CD+6 'M' ERROR JSB ERPR TO PRINT ERROR DIAG. JMP HA32 SPC 1 * ********************** * * PROCESS EQU PSEUDO * * ********************** SPC 1 HA56 JSB CHOPI EVALUATE OPERAND JMP HA32 *ERROR* CPA ...1+3 (4) EXT ? INA (5) SET FOR NON-PUNCH EXTERNAL. STA TEMP NO STB TEMP+1 CLB,INB ENTER: B=1. JSB MSYMS GO TO MEAS.SYMBOL, SET SYMP/SYMN SZA,RSS IS THERE A SYMBOL IN LABEL FIELD? JMP HA32 NO, GO PROCESS THE NEXT STATEMENT. LDA TEMP LDB TEMP+1 SPC 1 * * SEND LABEL TO TABLE * SPC 1 JSB INSR,I NOP JMP HA32 SPC 1 * ***************** * * BSS PROCESSOR * * ***************** SPC 1 BSSP JSB CHOPI EVAL. OPERAND JMP .HC1,I ERROR SZB,RSS JMP .HC1,I YES CLB B=0 JSB BREC CLA A=0 LDB BLNS NO RELOC. INDIC. JSB LIST,I LDA SUMP PICK UP BLOCK LENGTH FOR PLCN ADA PLCN STA PLCN JMP .HC1+1,I EXIT SPC 1 * ************************************* * * COM,ENT,EXT AND ARITH MACRO PROC. * * ************************************* SPC 1 HA60 LDB AFLG SZB,RSS ABSOL.ASS'Y? JMP INST,I JUMP TO ROUTINE HA63 LDA CD+3 'IL' JMP HA55+2 TO ERPR SPC 1 * ****************************** * * ORB ORG ORR HED PROC.JUMPS * * ****************************** SPC 1 HA64 JSB INST,I GO TO SUBROUTINE JMP HA32 SPC 1 IFZ HA70 LDB LTFLG GET LITERAL FLAG SZB IS A LITERAL IN THE OPERAND? JSB ARTL,I GO PROCESS THE LITERAL JMP HA39 GO FINISH THIS INSTRUCTION XIF SPC 2 * ************************************** * * PRINT ERROR COUNT AT END OF A PASS * * * SPACE TO BOTTOM OF PAGE * * * INIT.LINE,ERROR AND SEQUENCE CNTRS* * * SET CONTROL STATEMENT FLAG = -1 * * ************************************** SPC 1 ERP NOP LDA ERRCN ANY ERRORS? CCE,SZA,RSS JMP *+10 NO. LDA PASS LOAD THE PASS FLAG. ARS,SLA IS THIS PASS 1? JSB PRPAG,I NO, SO PRINT PRECEDING ERROR PAGE #. LDA ERRCN LOAD THE ERROR COUNT. CCE ENTER: E=1; CONVERT TO DECIMAL. JSB BNCN,I GO CONVERT IT LDA ASCI+1 LDB ASCI+2 JMP *+3 SPC 1 * * 'NO'ERROR SETUP * SPC 1 LDA BLNS LDB CD+5 'NO' STA PAU+1 STB PAU+2 LDA .12+2 (14) NO OF CHARS IN MESSG. LDB ERB BUFF ADDR JSB PRNT PRINT DIAG. JSB OKOLE CCA STA ASM1 SET CONT.STATE.FLG CLA STA ERRCN SET ERROR CNTR. STA SEQN SET SEQ.NO.CNTR JMP ERP,I SPC 1 ERB DEF PAU LOC OF PASSOVER STATE. PAU ASC 7,**0000 ERRORS* SPC 1 * *********************************** * * SPACE TO BOTTOM OF CURRENT PAGE * * * (USED BY HED AND PROC.ABOVE) * * *********************************** SPC 1 OKOLE NOP LDB LINC LOAD THE LINE COUNT. CCA ENTER: A=-1. STA LINC RESET THE LINE COUNT. INB,SZB IS DEVICE AT BOTTOM OF PAGE? JSB 00102B,I NO, EJECT TO TOP OF NEXT PAGE. JMP OKOLE,I EXIT SPC 2 * ********************** * * MICRO-OP PROCESSOR * * ********************** SPC 1 MICR CLA SPC 1 * * INITIALIZE FLAGS * SPC 1 2 STA CNTC =0 WHEN CLE APPEARS STA TERM BITS 12-11 = 1 IF B REG * BITS 12-11 = 2 IF A REG STA TEMP+4 BITS 14-13=1 IF SRG; =2 IF ASG STA INSV USED TO ACCUMULATE THE CODE STA FLAG STA TEST CLEAR CHAR TESTER SPC 1 * * START HERE FOR EACH NEW CODE * SPC 1 F LDA INST UNPACK THE MICRO-OP CODE SPC 1 * THE FORMAT IS+ SPC 1 * BITS 14-13=1 IF SRG,2 IF ASG, 0 IF * EITHER * BITS 12-11=1 IF BREG,2 IF AREG, 0 IF * NEITHER/ * BITS 11-0 = ACTUAL 12 BIT CODE SPC 1 AND C+7 EXTRACT OP-CODE STA FLAQ SAVE IT (=+2) LDA CODE THIS IS THE GROUP NUMBER. OCT 3004 MAKE SURE'IT'S BIGGER THAN THE LAST ADA FLAG A=(LAST GRP)-(PRESENT GRP) SSA JMP O SEQUENCE IS OK SPC 1 * * IF PRES GRP IS GO WE CAN CHANGE IT AND MAY BE OK SPC 1 LDA CODE CPA .12+9 (48) JMP *+4 CHANGE ERROR GROUP AND OP CODE MERR LDA CD JSB ERPR RETURN JMP HP2D LDA .12+13 (57) CHANGE THE GROUP (FROM *-4) STA CODE TO 71 SPC 1 * * MOVE BITS 8-5 OF OPCODE TO BITS 4 AND 2-0 * SPC 1 LDA FLAQ AND C+6 SET A/B BIT STA 1 SAVE IN B. XOR FLAQ OCT 1727 MOVE TO BITS O AND 15-13 RAR,SLA MOVE BIT 0 TO INA BIT 1. OCT 1723 ALF,RAR ROTATE LEFT 3 TO BITS 4,2-0 IOR 1 PUT IN THE A/B BIT JMP F+2 O LDA CODE STA FLAG SET LAST GRP TO PRESENT GRP SPC 1 * * CHECK REGISTER CONSISTENCY * SPC 1 LDA INST AND C+3 GET BITS 12-11 IOR TERM CPA C+3 IF EQUAL, THERE'S A REGISTER JMP MERR INCONSISTENCY. STA TERM NEW REGS TO REGS, SPC 1 * :  * OTHERWISE CHECK GROUP CONSISTENCY * SPC 1 LDA INST AND C+11 BITS 14-13 IOR TEMP+4 CPA C+11 IF EQUAL THERE ARE 2 CODES JMP MERR FROM DIFFERENT GROUPS. STA TEMP+4 SPC 1 * * CHECK FOR CLE * SPC 1 LDA FLAQ SZA,RSS ISZ CNTC SPC 1 * * NOW 'OR' THE CODE INTO CURRENT CODE SO FAR * SPC 1 IOR INSV STA INSV SPC 1 * * GET THE NEXT CHARACTER * SPC 1 LDA SCN1+1 OPCODE PNTR ADA ...1+2 (3) STA PNTR PROINTS AT POSN FOLLOWINT OPCODE JSB PKUP CPA BLNK IF SO WE ARE DONE. JMP *+7 CPA L+4 COMMA ? RSS SKIP. JMP MERR SPC 1 * * GET THE NEXT OPCODE * SPC 1 JSB OPLK,I JMP HP2D JMP F SPC 1 * * TO FINISH TEST CLE; IF USED AND IN ASG SET, ADD 40 * * TO THE CODE. SPC 1 LDA TEMP+4 (FROM *-7) ALF,ALF SZA,RSS IOR .12+8 (40B) LDB CNTC SZB,RSS CLA IOR INSV STA INST JMP HP2D SPC 3 * *************************** * * OCT DEC ASC WORD OUTPUT * * *************************** SPC 1 NOUT NOP LDA T+1 1ST LIST LINE FLAG SZA 1ST? JMP *+4 NO INA 1 TO A STA T+1 SET FLAG CLA,RSS CLEAR A,SKIP LDA ...1+3 (4) SET A=4 FOR LIST LDB BLNS JSB LIST,I LIST CLA CLB,INB JSB BREC PUNCH ISZ PLCN BUMP LOCN CNTR. JMP NOUT,I EXIT SPC 2 IFZ .26B OCT 000026 FOR HARDWARE ARITHMETIC. .27B OCT 000027 FOR LONG SHIFT GROUP. M17 DEC -17 -17 FOR SHIFT ROTATE TEST. XIF SKP *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MXHC7 CLA,INA TELL ASMB THIS IS A STA MX3WD 21MX NOP WORD INSTRUCTION LDA .26B TELL SYSTEM IT LOOKS LIKE STA CODE A FLT.PT.INST. JMP HC70 TREAT LIKE A FLT. PT. INST. MXHA7 CLA,INA TELL ASMB THIS IS A STA MX3WD 21MX NOP WORD INSTRUCTION LDA .26B TELL SYSTEM IT LOOKS LIKE STA CODE A FLT.PT.INST. JMP HA70 TREAT LIKE A FLT.PT.INST. MX3WD NOP 21MX NOP WORD INST FLAG B77 OCT 77 CODE FOR NOP WORD INST SPC 3 * * CHECK IF 21MX FLAG SET AND DO A 'RSTA' SPC 1 MXCHK NOP LDA MX3WD IS THIS A NOP WORD INST? SZA,RSS YES JMP MX1 NO - GOTO NORMAL READ SECTION CLA STA MX3WD CLEAR THE 21MX FLAG STA INST SET 'INST' TO ZERO LDA .12+7 STA CODE SET 'CODE' TO 30B JSB LOUT OUTPUT BINARY REC LDA ...1+3 SET LIST OPTION JSB LIST,I LIST IT ISZ PLCN INC PROG LOCATION CNT NOP JUST IN CASE IT ROLLS OVER MX1 JSB RSTA READ NEXT STATEMENT BSS 0 (MOVED HERE TO KEEP ADDRESSING BSS 0 CONSISTENT) JMP MXCHK,I RETURN BACK TO NORMAL FLOW *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! SKP ORG 4407B * * ****************************************************** * * EVALUATE OPERAND; TEST/PROCESS 'C' OR 'I' MODIFIER * * ****************************************************** SPC 1 CLER DEF RELC START OF 5 WORD CLEAR AREA CHOQ NOP SPC 1 * * ON ENTRY A = MODIF.PARAMETER (I,C,0=NONE,2=ASC) * * B= MASK NECESSARY FOR I OR C MODIFIER SPC 1 STA FLAG STB FLAQ SPC 1 * * CLEAR CHOP PARAMS IN T, RELC, SIGN, SUMP & TERM.. * SPC 1 LDA ...1+4 (5) LDB CLER START OF CLEAR AREA JSB SETM NOP ISZ SIGN SET SIGN = + (+1=+,-1=-) JSB SPNTR GET OPERAND POINTER SZA,RSS JMP HD22 ERROR**FNO OPERAND SPC 1 * * GET THE 1ST CHARACTER * SPC 1 JSB GETC CPA L+3 PLUS? JMP HD32+2 YES CPA L+5 MINUS? JMP HD32 YES JMP HD32+3 NO SPC 1 * * PROCESS AN ASTERISK '*' * SPC 1 HD26 CLA,INA SET A=1 CPA SYMP IS THE '*' ALONE? RSS YES - GOOD JMP HD22 NO - IT'S AN ERROR ADA BASF SET A = CURRENT RELOCATION TYPE. LDB .A CPB AFLG IS THIS AN ABSOLUTE ASSEMBLY? CLA YES, SET A = 0. LDB PLCN PROG LOCN CNTR TO B REG JMP HD50+2 SPC 1 * ***************************** * * CHOP LOOP PROCESSING HERE * * ***************************** SPC 1 HD30 LDA PEEK CPA L+4 TEST PEEK FOR A JMP HD36 COMMA, GO TO TEST MODIFIERS CPA BLNK JMP HD40 =BLNK CPA L+3 PLUS? CLB,INB,RSS YES, SET 'SIGN' FOR +. SPC 1 * * PROCESS SIGNS HERE * SPC 1 HD32 CCB SET 'SIGN' FOR - STB SIGN (HD32+1) ISZ PNTR SPC 1 * * PICK UP NEXT SET OF CHARS.IN BUFFER * SPC 1 JSB BPKUP GET POSN OF NXT NON-BLNK CHAR.HD32+3 STA PEEK STB PASCN SAVE PNTR FOR ASCN RTN JSB MSYMS MEAS.SYMBOL, SET SYMP/SYMN ADA PNTR STA PNTR SPC 1 * * TEST FOR NUMERIC OR SYMBOLIC SET * SPC 1 LDA PEEK FIRST CHAR OF SET TO A FOR TESTING LDB TEST STB PEEK SAVE CHAR.FOR LATER TEST CPA L+2 ASTERISK? JMP HD26 TO '*' PROC ADA M+12 (-58) SSA,RSS JMP HD50 PROCESS THE SYMBOL ADA LPDG+3 (10) SSA JMP HD50 PROCESS THE SYMBOL SPC 1 * * PROCESS NUMERIC SET HERE * SPC 1 LDB SYMP ADB ..M1 LDA LAST IS B LAST - CPA .A+1 CHAR? RSS YES, SKIP. SPC 1 * * SET B REG FOR adASCN ROUTINE SPC 1 ADB C+1 401B LDA PASCN JSB ASCN,I JMP CHOQ,I ERROR EXIT JMP HD61+1 A REG CONTAINS THE VALUE SPC 1 * * TEST INFORMATION FOLLOWING COMMA, IF LEGAL * * -USES FLAG AND FLAQ * * -IF C OR I, SET CORRECT BIT IN INSTRUC. USING FLAQ AS MASK SPC 1 HD36 LDB FLAG SZB,RSS IS COMMA LEGAL JMP HD37 -NO- ERROR CPB ...1+1 'ASC'? JMP HD40 -YES- ISZ PNTR POINT TO CHAR.FOLLOWING COMMA JSB BPKUP SEARCH FOR NON-BLANK JSB MSYM MEASURE SYMBOL CPA ...1 1 CHAR SYMBOL? JMP *+3 YES HD37 JSB OPERR OPERAND ERROR JMP HD40 SPC 1 LDA TEST CPA BLNK BLANK TERMINATOR? RSS YES, SKIP. JMP HD37 -NO- ERROR LDA LAST CHAR TO A LDB RELC GET THE RELOCATION FLAG CPA FLAG =I/C? CPB .1+3 YES, IS OPERAND EXTERNAL? JMP HD37 EROOR IF NO 'I' OR 'C' OR EXT OP LDA INST IOR FLAQ SET I OR C BIT STA INST LDA CODE CPA L+2 STF OR CLF? (52) JMP HD37 -YES- ERROR SPC 1 * * CHOP TERMINATION PROCESSOR * SPC 1 HD40 LDA SUMP SUM TO A LDB CODE SSA TEST SUMP JMP HD44+2 LDA RELC SZA,RSS RELOCATBLE? JMP HD42 .NO. SPC 1 * * VALUE IS RELOCATABLE, TEST FOR VALIDITY * SPC 1 LDA T IS RELOC.NO. SZA,RSS CANCELLED? JMP HD42+1 -YES- CPA ...1 LEG'L RELOC? RSS -YES- SKIP JMP HD22 NO,ERROR. CPB ...1 ORG? JMP E YES SPC 1 * *CHECK FOR EQU,END,TYPE 1 OR DEF(ALSO CODE=17B)* SPC 1 ADB LMDG+4 (-11) SSB CODE<13B? JMP HD22 YES, ERROR ADB ..M1+5 -6 SSB,RSS CODE>20B? JMP HD22 **ILL.RELOC.** E LDA RELC CPA ...1+3 EXTERNAL? JMP HD44 YES SKP * ******************************* * j * NORMAL EXIT FROM CHOP, HERE * * ******************************* SPC 1 HD42 LDA RELC STA RELC RELOC.CODE IN A AND RELC LDB SUMP SUM IN B REG ON EXIT ISZ CHOQ JMP CHOQ,I SPC 1 * * TEST FOR MORE THAN 1 EXT TERM * SPC 1 HD44 LDB TERM ADB .12+4 (16) SPC 1 * * NEG. OPERAND OK IF ABS OPCODE * SPC 1 CPB .12+5 (17)'ABS'OR 1 EXT TERM? JMP HD42 -YES- SPC 1 * ***************** * *CHOP ERROR EXIT* * ***************** SPC 1 HD22 LDA CD+6 'M' JSB ERPR ERROR PRINT JMP CHOQ,I SKP * ****************************** * * PROCESS SYMBOLIC TERM HERE * * ****************************** * HD50 JSB SYMK,I JMP HD6 ERR0R STB SAVB SAVE VALUE FOUND IN B (HD50+2) AND .1+6 GET RELOC TYPE OUT OF A REG SZA,RSS RELOC VALUE? JMP HD61 -NO- SPC 1 * * TEST FOR EXTERNAL EQU (RELC=5) SPC 1 CPA ...1+4 RELOC=5? LDA ...1+3 YES, SET FOR 4 LDB RELC SZB,RSS STA RELC CPA RELC TEST FOR SAME RELOC.TYPE RSS SAME JMP HD22 ERROR-DIFFERENT * * *UPDATE SIGN SAVER * LDB SIGN ADB T STB T HD61 LDA SAVB VALUETO A ISZ TERM UPDATE NO OF TERMS LDB SIGN SSB IS SIGN NEGATIVE? CMA,INA -YES- COMPLEMENT ADA SUMP -UPDATE RUNNING SUM STA SUMP JMP HD30 * * * UNDEFINED SYMBOL EXIT * * HD6 LDA CD+10 'UN' JMP HD22+1 TO ERPR SKP * ***************** * * ORR PROCESSOR * * ***************** * ORRP NOP LDA *+5 (OR$ PARAMETER) JSB OR$ TO PRE-PROC STA ORBS+3 0 TO ORRSV LDA ORBS+2 GET ORRS STA PLCN SET PLCN TO MAIN LOC CNT. JMP ORRP,I EXIT(PICKED UP AT *-5) * * * ORG/ORR PRE-PROCES"SOR * * OR$ NOP STA *+7 SET EXEC.PARAMETER LDA BASF LDB PLCN SZA ARE WE IN BASE PG STB ORBS YES, SAVE B.P.LOCN CNTR LDA ORBS+3 GET ORRSV SZA,RSS WERE WE IN MAIN PROG? NOP YES, EXIT IF ORRP; SAVE LOC CNTR IF ORGP: SSA WAS THIS SECTION SET BY AN ORG? JSB ORGT,I GO SET HIGH PLCN VALUE IN PROG CLA STA BASF CLEAR BASE PAGE FLAG JMP OR$,I * * ***************** * * ORG PROCESSOR * * ***************** * STB ORBS+2 THIS IS A PARAMETER ORGP NOP LDA *-2 GET OR$ PARAM.(IN ORBP) JSB OR$ CCA STA ORBS+3 SET ORRSV = -1 * * * GO TO EVALUATE OPERAND * * JSB CHOPI JMP ORGP,I ERROR EXIT STB PLCN LDB AFLG+3 SZB,RSS RELOC ASSEMBLY? JMP ORGP,I NO CPA ...1 RELOC? JMP ORGP,I YES,OK JSB OPERR 'M' ERROR JMP ORGP,I EXIT SKP * ******************************* * * LIST ROUTINE: PARAMETERS; * * * IF A=0 OR 4, B=RELOC CODE * * * A=0 FULL LINE * * * A=1 NO INST OR LOCN * * * A=2 NO INST * * * A=3 COMMENT * * * A=4 NO SEQ.NO., NO STATE.* * * A=5 PRINT 'ASMB' STATEMENT* * ******************************* * LISQ NOP STB SAVB SAVE ASCII RELOC CODE STA SAVB+1 SAVE LIST PARAM. LDB PASS CPB ...1 PUNCH PASS ONLY? JMP LISQ,I YES CPA ...1+4 CONTROL STATE.? JMP HI82 YES SZB,RSS PASS 1 JMP LISQ,I YES LDA LST SZA LIST FLAG=0 ? JMP LISQ,I NO, EXIT LDA LPDG+3 (10) LDB FBOI JSB SETM SET BUFFER TO ASC 1, BLANKS LDA SAVB+1 CPA ...1 A=1? JMP HI82 YES CPA ...1+1 A=2? JMP HI80 YES * * * CONVERT INSTRUCTION * * { LDB SAVB STB IOBF9,I SET RELOC INDIC LDA INST CLE E=0 JSB BNCN,I CONVERT TO ASCII OCTAL LDB D+5 L(IOBF+6) JSB V MOVE NO.TO BUFFER * * * CONVERT LOCATION CNTR * * HI80 LDA PLCN CLE E=0 JSB BNCN,I CONVERT TO ASCII OCTAL LDB D+6 LDA ...1+4 (5) JSB MOVE,I MOVE NO. TO BUFFER ABS -ASCI LDA SAVB+1 CPA ...1+3 A=4? JMP HX8 YES * * * CONVERT SEQ.NO. * * HI82 LDA SEQN CCE E=1 JSB BNCN,I CONVERT TO ASCII DEC. LDA ASCI+1 STA FBOI,I LDA ASCI+2 STA IOBF1,I * * * SET UP BUFFER LENGTH, ADJUST IF >72 CHARS * * LDB SAVB+1 CPB ...1+4 CONTROL STATE.? STA HEDR+7 SET TAPE # = 01 LDA SCN1 STATE.LENGTH CPB ...1+2 REMARK? JMP HI19 YES HI17 LIB 01B LOAD THE SENSE SWITCH REGISTER. RBR,RBR SHIFT BIT 3 TO BIT 15. RBR,RBR SHIFT BIT 3 TO BIT 15. STB CHKM SAVE THE LINE LENGTH OPTION. STA 1 LENGTH TO B ADA M+8 (-53) IOR CHKM INCLUDE THE LINE LENGTH OPTION. SSA,RSS LENGTH>52 ? LDB .12+11 YES,SET TO 52 ADB ...1+3 ADD 4 STB 0 NEW LENGTH TO A HI18 ADA .12+4 LENGTH+16 SPC 1 LIB 1 SET TO TEST CONSOLE SWITCH 1. RBR,SLB IS IT ON?(SUSPEND ASSEMBLY?) HLT 54B YES - HALT '44' SPC 1 LDB FBOI JSB PRNT *PRINT THE LINE OF OUTPUT * JMP LISQ,I EXIT * * * SET UP FOR LIST COMMENT * * HI19 LDB D+3 (IOBF+2) JSB MOVE,I SHIFT THE LINE LEFT DEF BUFF LDA SCN1 ADA M+1 LENGTH-16 JMP HI17 * * * TEST FOR EXTENDED SUP * * HX8 LDB SUP SZB SUP=0? JMP LISQ,I NO, EXIT JMP HI18 SKP * ****************************** * * SKIP AND SPACE LIST OUTPUT * * *******************7*********** SPC 1 SPCR JSB CHOPI EVALUATE SPACE COUNT CLB,INB ERROR - SET COUNT=1 CMB,INB,RSS SPC 1 SKPR LDB LINC STB SYMQ CMB,INB,SZB,RSS SPACES = 0? JMP .HC1+1,I YES,EXIT(H+4) LDA PASS NO - START LINE SKIPPING.. CPA ...1 LIST PASS ? JMP .HC1+1,I NO,EXIT(H+4) LDA LST LST FLAG SZA SUPPRESS LISTING? JMP .HC1+1,I YES, EXIT ADB LINC SSB,RSS JSB SK2,I SK3 ISZ LINC BOTTOM OF PAGE? JMP *+4 NO CCA YES, RESET LINE CNTR. STA LINC JMP .HC1+1,I EXIT(H+4) SPC 1 CCA JSB LINS EXECUTE A LINE-FEED. ISZ SYMQ LAST LINE SKIP. JMP SK3 NO JMP .HC1+1,I EXIT(H+4) SPC 1 SK2 DEF OKOLE SKP * ******************************************** * * SYMK LOOKUP SYMBOL TABLE ENTRY. * * * LINKAGE: INPUT; SYMP=NO CHARS;SYMN=FWA * * * OF NAME..OUTPUT;A=TYPE,B=VALUE* * * L JSB SYMK,I * * * L+1 UNDEF.SYMBOL EXIT * * * L+2 NORMAL RETN * * ********************************************* * SYMQ NOP CLA INITIALIZE NAME(4), STA NAME 0 TO 1ST, BLANKS TO LDA BLNS OTHER WORDS STA NAME+1 STA NAME+2 LDA SYMP NO.OF CHARS ADA ..M1+5 (-6) SSA JMP *+5 * * * SYMBOL TOO LONG, PRINT DIAG.; SET LENGTH = 5 * * LDA CD+4 'SY' ERROR JSB ERPR LDA ...1+4 (5) STA SYMP LDA SYMP (FROM *-5) LDB SYMP+1 ADDR.OF 1ST CHAR. STB *+4 LDB NAMI OCT 7004 CMB,INB JSB MOVE,I NOP (SET AT *-4) LDA SYMP NO.OF CHARS. ARS STORE NUMBER OF INA WORDS IN ENTRY-1 STA TEMP+2 INTO TEMP+2 INA STA TEMP+3 AND TEMP+3 OCT 1727  ALF,ALF ALF ADA NAME SET NUMBER OF WORDS STA NAME TO COMPARE FIRST WORDS LDA 105B IN THE STA SYMI SYMBTAB ADDR.COUNTER LP2 LDA NAMI STA ENTV RESET 'NAME' ADDRESS COUNTER LDA SYMI STA TEMP+4 SAVE FWA OF SYMB.TBL.ENTRY LDA SYMI,I OCT 2003 SZA,RSS JMP SYMQ,I STA FLEX SAVE 1ST WORD OF ENTRY AND UMSK+1 (70377) CMA,INA ADA NAME SZA,RSS ARE 1ST WORDS THE SAME? JMP LP35 YES - GO CHECK THE REST OF ENTRY JSB LPTST TEST FOR LITERL OR END OF SEARCH LDA SYMI,I ALF AND .1+6 MASK FOR NO. OF ENTRY WORDS ADA SYMI LP3 STA SYMI BUMP ADDR.CNTR JMP LP2 LP35 LDA TEMP+2 GET NO. OF WORDS IN ENTRY ADA SYMI SET LIMIT=LWA-1 STA VAL0 OF SYMTAB ENTRY LP37 ISZ SYMI BUMP ADDR COUNTER LDA SYMI CPA VAL0 END OF ENTRY? JMP LP5 ISZ ENTV NO LDA SYMI,I COMPARE NEXT 2 CHARS. CMA,INA ADA ENTV,I CHECK AGAINST 'NAME' ENTRY SZA,RSS ARE THE EQUAL? JMP LP37 YES, GO CHECK NEXT WORD JSB LPTST TEST FOR LITERL OR END OF SEARCH LP4 LDA TEMP+3 ADA TEMP+4 SET FWA OF NEXT ENTRY JMP LP3 CHK NXT SYMTAB ENTRY LP5 LDA FLEX GET 1ST WORD OF ENTRY ALF,ALF POS'N IT TO GET RELOC. TYPE. AND .12+3 (17B) LDB LTFLG SZB,RSS LITERAL IN OPERAND? JMP *+6 NO CPB ...1 ARITH MACRO WITH LITERAL? JMP *+4 YES CPA ...1+6 YES, RELC=7? JMP *+4 YES, DONE. JMP LP4 NO, GO BACK CPA ...1+6 LITERAL? JMP LP4 YES, GO BACK(OPERAND IS'NT LITERAL) LDB SYMI,I B=VALUE ISZ SYMQ JMP SYMQ,I SPC 1 LPTST NOP LDB LTFLG SZB ARE WE LOOKING FOR A LITERAL? CPB .1 SSA,RSS NO, IS THIS THE END OF THE SEARCH JMP LPTST,I NO, GO BACK AND KE_EP LOOKING. JMP SYMQ,I YES, GO OUT 'UNDEFINED' EXIT. SKP * ******************************************** * * ASCN - CONVERT AN ASCII NUMBER TO BINARY * * * -ENTRY: A CONTAINS POSITION OF 1ST CHAR. * * * B(LOWER) CONTAINS NO. OF CHARS. * * * B(UPPER): MODE(BELOW) * * * 0 = OCTAL * * * 1 = FIXED DECIMAL * * * 2 = FLOATING DECIMAL * * * 3 = EXTENDED FLTG. DECIMAL * * * -EXIT : L+1 = ERROR RETURN ON ILLEGAL * * * CHARACTER OR OVERFLOW. * * * L+2 = NORMAL RETURN * * * MODE=0 OR 1, VALUE IN A * * * MODE=2, VALUE IN A AND B * * * MODE=3, VALUE IN A, B AND VALU * * * NOTE: FOR MODES 2 AND 3 VALUES IN A AND * * * B ARE ALSO IN VAL0 AND VAL1 RESP. * * ******************************************** * ASCNP NOP STA SYMI CHAR POS. IN SYMI LDA LMSK AND 1 CMA,INA STA DCNT CHAR COUNT IN DCNT LDA 1 ALF,CLE,ALF POSITION THE MODE AND LMSK STA MODE SET MODE IN MODE ERA,SLA INTEGER CONVERSION? JMP ASCN2 NO - GO TO FLOATING PT ROUTINE JSB INTEG GO TO INTEGER CONVERSION XNORM ISZ ASCNP SET UP FOR NORMAL RETURN JMP ASCNP,I EXIT * * ***************************************** * * FLOATING POINT PROCESSING STARTS HERE * * ***************************************** * ASCN2 CLA STA VAL0 CLEAR NUMBER SLOTS STA VAL1 STA VALU STA DEXP CLEAR DEC. OVERFLOW SLOT CCA STA DSIG SET SIGN(-1) FIR + STA CNVT SET FLAG FOR SIGN IN 1ST POSN. LDA A+1 STA DFCNT SET DFCNT = 100000B FDCN1 JSB CNVRT CONVERT A CHARACTER JMP FDCN3 NON DIGIT RETURN ISZ DFCNT BUMP FRAC. COUNT LDA DEXP SZA OVERFLOW? JMP DCOV YES LDA VALU NO, PROCESS DIGIT STA VALUS LDA VAL1 LDB VAL0 JSB SHFT1,I JSB SHFT1,I NUM TIMES 4 AT THIS POINT SEZ,SSB,RSS OVERFLOWS? RSS NO JMP DCOV YES LDB VALU ADB VALUS JSB CHK OVERFLOW FROM VALU? STB VALUS LDB VAL0S ADA VAL1 JSB CHKB IF VAL1 OV, BUMP B ADB VAL0 NUM TIMES 5 AT THIS POINT JSB SHFT1,I NUM TIMES 10 HERE SEZ,SSB,RSS OVERFLOW? JMP *+3 NO DCOV ISZ DEXP YES, BUMP OVERFLOW DIGIT COUNT JMP FDCN7 SPC 1 LDB VALUS ADB CNVT FINALLY ADD LATEST DIGIT TO NUM JSB CHK IF OV, BUMP VAL1 STB VALUS LDB VAL0S JSB CHKB IF VAL1 OV, BUMP VAL0 SEZ,SSB,RSS OVERFLOW IN VAL0? JMP FDCN6 NO JMP DCOV YES SPC 1 FDCN3 CPA L+6 DEC PNT? (NON DIG.FROM CNVRT) JMP FDCN5 YES CPA .A+3 'E'? JMP *+3 YES ILEX LDA CD+3 NO- GET 'IL' JMP OVEX+1 GO TO ERROR DIAG EXIT ISZ DCNT LAST CHARACTER? JMP FDHOP NO - GO TO PROCESS EXPONENT FDCN5 LDA DFCNT SSA,RSS IS THIS A SECOND DEC.PNT? JMP ILEX YES CLA STA DFCNT CLEAR COUNTER FOR DIGITS AFTER . JMP FDCN7 SPC 1 FDCN6 STB VAL0 SAVE NEW VALUE IN VAL0,VAL1,VALU STA VAL1 LDA VALUS STA VALU FDCN7 ISZ DCNT LAST CHARACTER? JMP FDCN1 NO- GET NEXT CHAR. SKP * ************************************* * * PROCESS EXPONENT, IF PRESENT, AND * * * FINISH THE NUMBER(NORMALIZE, ETC)* * ************************************* * FDHOP LDB DFCNT CMB,SSB,INB,RSS WAS A DEC POINT PRESENT? 8n CLB NO, CLEAR B ADB DEXP STB DEXP SET CURRENT COUNT FOR DEC EXPONENT LDA DSIG STA SDSIG SAVE SIGN OF MANTISSA CLA NO - CONTINUE PROCESSING LDB TEST CPB .A+3 IS EXPONENT THERE? JSB INTEG YES - EVALUATE IT ADA DEXP A+OVERFLOW CHARS STA DEXP SET VALUE OF DECIMAL EXPONENT LDA VAL0 CHECK FOR A VALUE OF ZERO IOR VAL1 IOR VALU SZA,RSS IS THE VALUE=0? JMP UNDTF YES, NORMAL EXIT FROM ASCN RTN. LDA .12+12 (47() STA FEXP SET BINARY EXPONENT = 47 SPC 1 * * NORMALIZE THE NUMBER(IN VAL0,VAL1,VALU) * SPC 1 FDHP2 LDB VAL0 LDA VAL1 SSB IS BIT 15=0? JMP FDHP3 NO- GO SHIFT THEM ALL BACK 1 LDB VALU CLE,ELB SHIFT FROM VALU TO VAL1 ELA STB VALU STA VAL1 LDB VAL0 ELB SHIFT FROM VAL1 TO VAL0 STB VAL0 CCA ADA FEXP JMP FDHP2-1 FEXP-1 TO 'A' * FDHP3 CLE,ERB SHIFT THEM ALL 1 RIGHT ERA STB VAL0 LDB VALU ERB STA VAL1 STB VALU ISZ FEXP NOP LDA DEXP CLE,SZA,RSS JMP FDHPX DONE IF EXPONENT=0 SSA IS EXPONENT POSITIVE? JMP FDHP6 NO - GO TO DIVIDE BY 10 ADA ..M1 YES - MULTIPLY NUMBER BY 10 HERE STA DEXP DEXP=DEXP-1 LDA .1+2 ADA FEXP STA FEXP FEXP=FEXP+3 LDA VAL0 STA VAL0S LDA VALU STA VALUS LDB VAL1 JSB SHFR1 SHIFT VAL0,VAL1,VALU - JSB SHFR1 -RIGHT 2 PLACES ADA VALUS STA VALU NEW VALU JSB CHKB IF OV, BUMP B REG. LDA VAL0S ADB VAL1 JSB CHK OVERFLOW? FDHP5 ADA VAL0 STA VAL0 NEW VAL0 STB VAL1 NEW VAL1 JMP FDHP2 GO BACK TO RE-NORMALIZE * * * DIVIDE NUMBER IN VAL0,VAL1,VAL2 BY 10 * * FDHP6 INA STA DEXP DEXP=DEXP+1 LDA ..M1+2 ADA FEXP STA FEXP FEXP=FEXP-3 SPC 1 * * GO TO DIVIDE BY 10 HERE * SPC 1 LDA UVAL FDHP7 ADA ..M1+2 -3 CPA VSTOP LAST SECTION PROCESSED? JMP FDHP9 YES, LEAVE DIVIDE PROC NOW STA CNVT CONTAINS ADDR OF SECTION VEING DON * * * DIVIDE 'A' BY 10 * * RESULT IN A AND B(=LEAST SIG.) * LDB M+1 (-16) STB TEMP LDB TENTH CLA CLE,SLB CHECK FOR ANOTHER ADD ADA CNVT,I ERA ERB ISZ TEMP ALL DONE? JMP *-5 NO - CONTINUE STA CNVT,I SAVE 'A' VALUE ISZ CNVT BUMP ADDRESS STB CNVT,I SAVE 'B' VALUE LDA CNVT GET ADDRESS READY TO RESET JMP FDHP7 SPC 1 FDHP9 JSB COL45 PROCESS COL. 5 JSB COL45 PROCESS COLUMN 4 ADB VAL1 JSB CHK ADB VAL0S JSB CHK JSB COL32 PROCESS COLUMN 3 ADB VALU JSB CHK ADB VAL1S JSB CHK STB VALU VALU COMPUTED JSB COL32 PROCESS COLUMN 2 JMP FDHP5 GO STORE VAL0 AND VAL1. CONTINUE * * ****************************** * * SET UP FLTG DECIMAL RESULT * * * FOR EXIT FROM CONVERSION * * ****************************** * FDHPX LDA VAL1 LDB VAL0 JSB CHKM IS MODE EXT.DEC? JMP *+3 NO LDA VALU LDB VAL1 ADA .200B ROUND THE LEAST SIGNIF. WORD JSB CHKB BUMP B IF E=1 JSB CHKM MODE=EXT.DEC? JMP *+4 NO STB VAL1 YES LDB VAL0 JSB CHKB BUMP VAL0 IF E=1 SSB,RSS VAL0<0? JMP *+4 NO RBR,CLE IT WAS A POWER OF 2 ISZ FEXP BUMP EXPONENT NOP STB VAL0 SAVE MOST SIF. JSB CHKM MODE = EXTEN.DL EC? RSS NO, SKIP. LDB VAL1 YES AND UMSK STA DSIG CLEAR LOW 8 BITS OF 'A' AND SAVE ISZ SDSIG IS SIGN OF MANTISSA=+ JMP FDHR4 NO, GO PROCESS NEG. MANTISSA SPC 1 FDHRT LDA FEXP GET FRACTIONAL EXPONENT IN A/B LDB FEXP AND .1776 CLEAR LOWER 7 BITS SZA POSITIVE OVERFLOW? CPA .1776 MAYBE, NEG. OVERFLOW? CPB .1776 MAYBE, IS EXPON,=-200B? JMP FDHR3 YES, ALSO OTHER OVERFLOWS.. LDA FEXP GET THE EXPONENET AGAIN RAL POSITION IT AND LMSK CLEAR BITS 15-8 ADA DSIG ADD IN THE LEAST SIG.PART JSB CHKM IS IT EXTEND.DEC? UNDTF STA VAL1 NO,SET VAL1=LEAST STA VALU YES, SET VALU=LEAST SIGN. LDB VAL1 GET WORD 2 LDA VAL0 GET MOST SIGNIF. JMP XNORM GO OUT THE NORMAL EXIT SPC 1 FDHR3 SSB,RSS IS IT REALLY AN UNDERFLOW? JMP OVEX NO CLA YES, SET NO. = ZERO STA VAL0 CLEAR VAL0 JMP UNDTF SPC 1 FDHR4 CMA,INA START GETTING COMPLEMENT CMB JSB CHKB AND UMSK STA DSIG SAVE LEAST SIGNIFICANT BITS JSB CHKM IS IT EXTEND.DEC? JMP *+5 NO STB VAL1 LDB VAL0 CMB JSB CHKB CLE,ELB LDA ..M1 SSB,RSS WAS N0. A POWER OF 2? JMP *+4 NO ADA FEXP YES STA FEXP SUBTRACT 1 FROM EXPONENT. RSS ERB RESET B STB VAL0 JMP FDHRT * * ************************* * * CHECK MODE OF NUMBER * * * L+2 EXIT IF EXTENDED * * * ELSE L+1 * * ************************* * CHKM NOP STB DEXP SAVE THE 'B' REG. LDB MODE CPB .1+2 IS MODE EXTEND.DEC? ISZ CHKM YES, BUMP RETURN ADDRESS LDB DEXP RESTORE THE 'B' REG. W JMP CHKM,I * * * * PROCESS PARAMETERS FOR COLS. 4 AND 5 * * COL45 NOP LDB 0 LOAD 'B' WITH 'A' (OVERFLOW BITS) CLA,CLE ADB VALU JSB CHK ADB VALUS JSB CHK ADB VAL1S JSB CHK JMP COL45,I * * * PROCESS PARAMETERS FOR COLS 2 AND 3 * * COL32 NOP LDB 0 SET B=A(OVERFLOW FROM PREV COL.) CLA,CLE ADB VAL1 JSB CHK ADB VAL0 JSB CHK ADB VAL0S JSB CHK JMP COL32,I * * * CHECK FOR OVERFLOW FROM 'B' * * CHK NOP SEZ OVERFLOW? CLE,INA YES, BUMP 'A', CLEAR 'E' JMP CHK,I * * * CHECK FOR OVERFLOW- IF TRUE, BUMP 'B' * * CHKB NOP SEZ CLE,INB JMP CHKB,I * * * SHIFT NUMBER IN VAL0,VAL1,VALU RIGHT U * * SHFR1 NOP LDA VAL0 CLE,ERA VAL0 RIGHT 1 ERB VAL1 RIGHT 1 STA VAL0 LDA VALU ERA,CLE VALU RIGHT 1 STA VALU JMP SHFR1,I RETURN SKP * ********************************** * * CNVRT - CONVERT AN ASCII CHAR. * * * TO BINARY. * * * - MODE = 0,OCTAL; ELSE DECIMAL * * * - L+1 RETURN IF NON-NUMBERIC * * ********************************** CNVRT NOP LDA SYMI GET POS'N.OF CHARACTER JSB GETC GET CHARACTER ISZ SYMI BUMP POS'N LDB MODE SZB OCTAL CONVERSION? LDB ..M1+1 NO - SET FOR DEC.CONV ADB ..M1+6 IF OCTAL B= -8 HERE ADA M+7 -60B + A SSA IS VALUE LESS THAN ZERO? JMP CNVR2 YES ADB 0 NO - ADD IN MAX DIGIT VALUE. SSB IS IT A VALID NUMBER? JMP CNVRX YES- GO TO EXIT WITH NO. IN A. CNVR2 LDA TEST NO - TEST FOR + OR - CPA L+3 PLUS? JM˝P CNVR4 YES CPA L+5 NO - IS IT MINUS ? CLA,RSS YES JMP CNVRT,I NO - TAKE L+1 EXIT STA DSIG CNVR4 CLA ISZ CNVT HAS SIGN BEEN ENCOUNTERED BEFOR? JMP ILEX YES- 'IL' EXIT FROM ASCN CNVRX STA CNVT ISZ CNVRT JMP CNVRT,I * * ************************************** * * INTEG - CONVERT A STRING OF ASCII * * * CHARS TO AN OCTAL(MODE=0) * * * OR DECIMAL INTEGER. * * *-IF OTHER THAN A LEADING SIGN OR * * * NUMBER IS FOUND 'IL' EXIT IS TAKEN * * *-'OV' EXIT IF OVERFLOW. * * ************************************** * INTEG NOP CCB STB DSIG SET SIGN FLAG FOR PLUS STB CNVT SET 1ST CHAR FLAG(FOR SIGN CHK) SPC 1 * *ON ENTRY A=0(USED FOR THE INITIAL VALUE.) *** SPC 1 INTG2 STA VALUS SAVE CURRENT VALUE JSB CNVRT CONVERT A CHARACTER JMP ILEX ERROR - NON NUMERIC LDA VALUS CLE,ELA JSB OVTST TEST 4 TIMES A FOR OVERFLOW LDB MODE NO OVERFLOW SZB MODE = OCTAL ADA VALUS NO - 5 TIMES A(IT'S DECIMAL) JSB OVTST TEST 8(OR 10) TIMES A FOR OV ADA CNVT NO - ADD IN NEW DIGIT SEZ OVERFLOW? JMP OVEX YES ISZ DCNT LAST CHAR IN STRING? JMP INTG2 NO - GET ANOTHER SZB,RSS MODE = OCTAL? JMP INTG6 YES - OK CPA A+1 IS NUMBER + OR -32768 JMP INTG6 YES - OK SSA IS SIGN NEG? JMP OVEX YES - OVERFLOW INTG6 ISZ DSIG IS SIGN NEGATIVE? CMA,INA YES - COMPLEMENT A. JMP INTEG,I EXIT * * ****************************************** * * TEST ZERO BIT AND 'E' BIT FOR OVERFLOW * * ****************************************** * OVTST NOP ELA u 2 TIMES ENTRY VALUE OF 'A' SEZ,SLA,RSS OVERFLOW? JMP OVTST,I NO - RETURN OVEX LDA CD+7 GET 'OV' FOR ERROR DIAGNOSTIC JSB ERPR JMP ASCNP,I LEAVE VIA RERROR EXIT SPC 1 UVAL DEF VALU+3 ASCN 1ST PICKUP FOR DVD BY 10 VSTOP DEF VAL0S-3 ASCN LAST PICKUP FOR DIV BY 10 * * *************************** * * SHIFT FOR MULTIPLY BY 2 * * *************************** * BSS 5 SHFT2 NOP STB VAL0S SAVE VAL0S LDB VALUS GET VALUS CLE,ELB ELA SHIFT VAL1,VALUS STB VALUS SAVE VALUS LDB VAL0S GET VAL0S ELB SHIFT VAL0S,VAL1 STB VAL0S SAVE VAL0S JMP SHFT2,I RETURN SPC 2 IFZ IOBF BSS 00063B 50 WORDS + EOS. XIF SKP * ************************************** * * BINARY TO ASCII CONVERSION ROUTINE * * * A = NUMBER TO BE CONVERTED * * * E = 0 CONVERT TO OCTAL * * * E = 1 CONVERT TO DECIMAL * * ************************************** * BNCQ NOP LDB V+3 INIT LOC OF BUFFER STB SYMI CCB STB VAL0S START UPPER LDB A+3 (30060) SET BUFFR=ASCI 0'S STB ASCI STB ASCI+1 STB ASCI+2 SEZ TEST E BIT (=0,OCTAL =1,DECIMAL) JMP % DEC CONVERSION LDB ..M1+5 (-6) STB DCNT OCT 66 CLE,ELA STA VALU CLA ELA SIGN BIT IS SIXTH DIGIT JSB DPCK LDA VALU OCT 1723 ALF,RAR STA VALU AND ...1+6 (7) MASK 1 DIGIT ISZ DCNT END JMP *-6 JMP BNCQ,I SPC 2 DPCK NOP ADA SYMI,I ISZ VAL0S JMP *+4 OCT 1727 ALF,ALF STA SYMI,I JMP DPCK,I SPC 1 STA SYMI,I ISZ SYMI CCA STA VAL0S JMP DPCK,I EXIT SPC 2 % LDB ..M1+2 (-3) DEC. CONVERSION RTN STB DCNT LDB LMDG STB VAL0 LDB LPDG STB VAL1 LDB 0 A TO B ISZ SYMI DPCR CLA,RSS INA (FROM *+3) ADB VAL0,I COUNT NO.OF TIMES GT 10**N SSB,RSS JMP *-3 ADB VAL1,I <10**N, RESTORE VALUE JSB DPCK PACK DIGIT ISZ VAL1 ISZ VAL0 ISZ DCNT JMP DPCR RETURN FOR 10**N-1 LDA 1 JSB DPCK JMP BNCQ,I SPC 2 IFN IOBF BSS 63B 50 WORDS + EOS. XIF BUFF EQU IOBF+12B SPC 2 * ******************** * * SETUP FOR REPEAT * * ******************** * REPSB NOP LDA REP SZA IN 'REP' RANGE? JMP RXP YES, ERROR JSB CHOPI EVAL NO.OF REP'S JMP RXP+2 ERROR EXIT SZA VAL RELOC? JMP RXR YES, ERROR SZB,RSS VAL=0? JMP RXP+2 YES INB CMB,INB NO -B TO B LDA ..M1+1 STA REQ SET REQ=-2(FOR SEQNO PROC) RXX STB REP B TO REP (NO.OF REPEATS) JMP REPSB,I * RXP LDA CD IN RANGE OF REP(ERROR)'OP' JSB ERPR CLB O TO B (FOR NO REP) JMP RXX RXR JSB OPERR RELC.VAL(ERROR) 'M' JMP RXP+2 SKP * ******************* * * SET UP A HEADER * * ******************** * HEDSB NOP LDA SCN1+2 SZA,RSS HEADER PRESENT? JMP HXD NO-RETURN ADA ..M1 CMA,INA ADA SCN1 STA HED HEADER LENGTH IN 'HED' LDB .56 ADA M+11 -57 SSA,RSS IS HEADER TOO LONG (MORE THAN 56 CHARS) STB HED SET HEADER LENGTH TO 56 LDA SCN1+2 JSB GETA GET ADDRESS OF HEADER LDA HED STB *+3 LDB HXD. GET L(HEDR+9) JSB MOVE,I NOP ADDR OF HEADER LDA HED ADA ...1+1 HXD STA HED JMP HEDSB,I SPC 1 .56 DEC 56 SKP * ********************************************* * * OPLK: OPCODE TABLE LOOKUP - WALDY HACCOU * * * CALLING SEQUENCE: L JSB OPLK,I * * * L+1 ERROR RETURN * * * L+2 NORMAL RETURN * * * OUTPUT VALUES: VALUE IN A REG. AND 'CODE'* * * INSTR.FORMAT IN B AND 'INST'* * ********************************************* SPC 1 OPLQ NOP JSB BPKUP GET OPCODE POSN STB SCN1+1 CLA STA TEMP+6 CLEAR TEMP+6 LDA 1 B REG TO A REG JSB GETA GET OPCODE ADDRESS STB *+4 LDA ...1+2 (3) LDB NAMI+1 JSB MOVE,I NOP MOVE ORIGIN HERE LDB NAMI+2 FWA OF OPCODE TBL LDA 1,I (FROM *+7) INB CPA TEMP+5 CHECK 1ST 2 CHARS. JMP K J ADB ...1+1 (2) LDA 1,I SZA END OF TABLE? JMP *-7 NO SPC 1 * * ERROR EXIT HERE * SPC 1 LDA CD JSB ERPR JMP OPLQ,I EXIT SPC 1 K LDA 1,I CHECK LAST CHAR OF OPCODE AND UMSK CPA TEMP+6 COMPARE IT RSS OP-CODE FOUND, SKIP. JMP J NOT FOUND, TRY NEXT ENTRY LDA 1,I AND UMSK+4 SET A = CODE INB LDB 1,I STB INST = INSTRUCTION FORMAT STA CODE = VALUE OF CODE ISZ OPLQ JMP OPLQ,I SKP * ************************************************* * * INSR: ADD ENTRY TO THE SYMBOL TABLE, W HACCOU * * * LINKAGE: A = TYPE B = VALUE ON INPUT * * * (OUTPUT) SYMP=NO.OF CHARS., SYMN=ENTRY FWA * * * L JSB INSR,I * * * L+1 ERROR RETN ('SO' OR 'DD'PRNTD)* * * L+2 NORMAL RETN * * ************************************************* SPC 1 INSQ NOP STA FLX1 SAVE TYPE STB NAME+3 SAVE VALUE JSB SYMZK,I JMP INS1 AND ...1+6 GET RELOC VALUE LDB ENFLG SZB,RSS IN ENTRY PROC? JMP INSY NO INSQ1 CPA .1 RELOCATABLE? JMP INSC YES CPA .1+1 B.P. RELOC? JMP INSC YES LDA CD+9 'EN' ERROR JMP INSX SPC 1 INSY LDB FLEX GET CURRENT FW BLF SSB,RSS ENTRY POINT? JMP INSG NO SZA YES - IS IT IN ALREADY? JMP INSX-1 YES - 'DD' ERROR LDA NAME+3 STA VAL0,I SET VALUE INTO ENTRY LDA FLX1 GET TYPE LDB 0 REL TYPE TO 'B' JMP INSQ1 SPC 1 INSG CPA .1+6 LITERAL? JMP INSQ,I YES,EXIT CPA ...1+3 EXT? JMP *+4 YES, TEST LDA CD+2 NO, 'DD'ERROR INSX JSB ERPR JMP INSQ,I OUT HERE CPA FLX1 ARE BOTH EXT'S? JMP INSQ,I YES, FAKE 'DD'EXIT JMP *-5 GO TO ERROR PRNT SPC 1 * * HERE - A=0, END OF SYMBOL TABLE * * A LESS THAN 0, INSERT HERE * * TEMP+2 = NO. OF WORDS IN NAME * * TEMP+3 = ENTRY LENGTH * * TEMP+4 = START OF MOVE AREA SPC 1 INS1 STA 1 SAVE A IN B LDA FLX1 GET TYPE OCT 1727 ALF,ALF ADA NAME TYPE IN FIRST WORD STA NAME OF ENTRY LDA NAMI ADA TEMP+2 STA VAL0 SET LOWER LIMIT OF TRANSFER LDA 106B LWA AVAIL MEM. CMA,INA ADA LWTBL (LWTBL) + (TEMP+3) - (106B). ADA TEMP+3 TEST FOR SYMBOL TABLE OVERFLOW. SSA JMP *+3 NO LDA CD+8 'SO' TABLE OVERFLOW JMP INSX 'SO' ERROR SPC 1 LDA FLX1 TYPE SZB IS THE END OF TABLE REACHED? CPA .1+6 IS TYPE=LITERAL? JMP INS19 YES LDB LWTBL STB ENTV SET START OF TBL PICKUP ADB TEMP+3 STB LWTBL SET NEW END OF TABLE LDA TEMP+4 STA SYMI POINT SYMI AT THE CORRECT LOC'N INS12 LDA ENTV,I TRANSFER A TABLE WORD STA 1,I LDA ENTV CPA SYMI LAST WORD MOVED? JMP INS20 YES ADA ..M1 STA ENTV ENTV-1 TO ENTV ADB ..M1 JMP INS12 SPC 1 INS19 LDA LWTBL STA SYMI ADA TEMP+3 STA LWTBL SET NEW END OF TABLE ADDR ISZ SYMI ADD 1 TO SYMI INS20 LDB VAL0 LDA NAME+3 MOVE VALUE STA 1,I UP LDA NAMI LDB 0,I ADD ENTRY (FROM *+6) STB SYMI,I TO SYMBOL CPA VAL0 JMP INSEX EXIT INA ISZ SYMI JMP *-6 INSC LDA 1 RELOC TYPE TO 'A' ALF,ALF POSITION IT IOR TEMP+4,I STA TEMP+4,I SET ENTRY POINT TYPE INSEX ISZ INSQ JMP INSQ,I SKP * ************************************** * * MOVE: MOVES A STRING OF CHARACTERS * * * IN MEMORY. * * * LINKAGE: A = NO.OF CHARS TO MOVE * * * B = DESTINATION ADDRESS * * * L JSB MOVE,I * * * L+1 SOURCE ADDRESS * * * L+2 RETURN * * * ADDR.TRUE IF STARTS ON LEFT * * * 2'S COMPL.IF STARTS ON RIGHT * * ************************************** SPC 1 MOVQ NOP SZA IS CHAR.COUNT = 0? JMP *+3 NO JSB OPERR YES JMP MOVX SPC 1 CMA,INA STA GTEM+3 =-A SPC 1 * * SET UP DESTINATION SPC 1 OCT 6120 OCT 7304 ELB STB GTEM+1 LDB MOVQ,I SPC 1 * * SET UP SOURCE SPC 1 OCT 6120 OCT 7304 ELB STB GTEM+2 SPC 1 * * NOW MOVE THE CHARACTERS * SPC 1 $ LDB GTEM+2 OCT 4065 E_0BIT LDA 1,I B,I TO A OCT 2041 E=0? OCT 1727 ROT. A AND UMSK+4 LMASK f SPC 1 * * LOWER 8 BITS OF A CONTAINS CHAR.TO BE MOVED.* SPC 1 STA GTEM LDB GTEM+1 DEST TO B OCT 4065 E_0BIT LDA 1,I B,I TO A OCT 2041 E=0? OCT 1727 ROT. A AND UMSK IOR GTEM SPC 1 * * CHAR.NOW IN A, WITH OTHER HALF OF DEST.WORD.* * * SINCE IT'S ON RIGHT WE MAY HAVE TO ROTATE * SPC 1 OCT 2041 E=0? OCT 1727 ROT. A STA 1,I A TO B,I SPC 1 * * NOW IT'S IN OK, BUMP COUNTERS AND PROCEED * SPC 1 ISZ GTEM+2 ISZ GTEM+1 ISZ GTEM+3 JMP $ MOVX ISZ MOVQ SET UP FOR EXIT JMP MOVQ,I SPC 2 * GET HIGHEST CURRENT LOCATION VALUE FOR 'ORG' PROCESSING. SPC 1 ORGST NOP ENTRY POINT. LDA ORBS+1 LAST ADDR. GENERATED DURING ORG PROC.. CMA,INA ADA 00001B "A" REGISTER _ LAST 'PLCN' VALUE. SSA,RSS GREATER? STB ORBS+1 NO! USE 'PLCN' VALUE FOR HIGH 'ORG' LOCN.. CLA,INA ENTER: A=1. JMP ORGST,I RETURN. * ******************************* * * READ A RECORD FROM MAG.TAPE * * ******************************* SPC 1 TRD LDB PASS LDA MAGFL SZA IS A MT UNIT BEING USED? LDA PASS1 YES, LOAD THE SWITCH REGISTER. SLA IS PASS 1 TO BE FROM MT? JMP MT.P1 YES, CONTINUE. LDA MAGFL NO, LOAD THE MT FLAG. SZB PASS 1? CK.P1 SZA,RSS NO - MAG TAPE READ? JMP RXB NO - EXIT TRDR LDB FFUB B=BUFFER ADDRESS LDA .12+15 A=80 CHARS FOR INPUT JSB MAGFL,I GO READ A MAG TAPE RECORD. OCT 0 PARAMETER FOR TAPE READ JMP TREOF END-OF-FILE JMP TRERR ERROR JMP RXH NO, EXIT SPC 1 MT.P1 LDA RSDRV XOR TEL+1 JMP CK.P1 SPC 1 TREOF CLA END-OF-FILE ROUTINE(NEW TAPE) STA SEQN SET SEQ.NO.=0 JSB TAQIPN.,I INCREMENT TAPE NUMBER IN HEADER. JMP TRDR GO BACK TO TAPE READER SPC 1 TRERR STA MAGA SAVE CHAR.COUNT LDA .TP JSB ERPR PRINT 'TP' ERROR DIAGNOSTIC JMP TWRX JUMP TO EXIT SPC 1 .TP ASC 1,TP ERROR DIAGNOSTIC FOR TAPE. SPC 1 SKP * ************************* * * FORWARD SPACE 2 FILES * * ************************* SPC 1 TPEND NOP LDA MAGFL SZA,RSS MAG TAPE BEING USED? JMP TPEND,I NO - EXIT JSB MAGFL,I GO TO REWIND TAPE OCT 3 LDA ...1+1 CLB FORWARD 2 FILES/0 RECORDS JSB MAGFL,I OCT 4 NOP END OF TAPE - HALTS JSB WETX ERROR - HALTS JMP TPEND,I SPC 1 * ****************************************** * * WRITE A SOURCE STATEMENT ONTO MAG.TAPE * * ****************************************** SPC 1 TWRT STA MAGA SAVE CHAR COUNT FROM READ DRIVER LDA PASS LDB MAGFL SZA,RSS PASS 1 ? SZB,RSS YES; MAG TAPE BEING USED? JMP TWRX NO - GO AND EXIT. LDB RSDRV GET READ DRIVER ADDRESS CPB TEL+1 IS IT THE KEYBOARD? (CONT.STATE) JMP TWRX YES, SKIP TAPE RECORD WRITE. LDA MAGA NO.OF OUTPUT CHARS. LDB FFUB ADDR.OF INPUT BUFFER JSB MAGFL,I OCT 1 PARAMETER FOR A TAPE WRITE NOP JSB WETX TWRX LDA MAGA RESTORE CHAR COUNT JMP RXH RETURN TO RSTA ROUTINE SPC 2 BSP NOP BACKSPACE TAPE TO BEGINNIG LDA MAGFL SZA,RSS MAG TAPE BEING USEDX JMP BSP,I NO - EXIT CLA,INA ENTER: A=0. AND PASS1 ISOLATE THE PASS 1 SOURCE FLAG. IOR PASS LOAD THE PASS FLAG. SZA IS THIS ENTRY FOR PASS 0? JMP PAS23 NO, GO SKIP OVER THE FILE MARK. JSB MAGFL,I OCT 000002 JMP BSP. ERROR, GO NDISASSOCIATE MT UNIT. JMP BSP. ERROR, GO DISASSOCIATE MT UNIT. .REW. LDA TAPE OF SOURCE FILES CPA ...1 IF MULTIPLE SOURCE TAPES JMP *+3 REWIND INSTEAD OF BACKSPACE JSB TPND,I REWIND $ POSITION SOURCE FILE. JMP BSP,I AND EXIT CMA CLB JSB MAGFL,I OCT 4 NOP BSP. JSB WETX JMP BSP,I SPC 1 PAS23 CLA ENTER: A=0. CLB,INB ENTER: B=1. JSB MAGFL,I GO SKIP THE FILE MARK RECORD. OCT 000004 POSITION REQUEST CODE. JMP BSP. ERROR, GO DISASSOCIATE MT UNIT. JMP BSP. ERROR, GO DISASSOCIATE MT UNIT. JMP .REW. GO REWIND OR BACKFILE MT UNIT. SPC 2 PG NOP ENTRY POINT. CLA ENTER: A=0. JSB PRNT GO PRINT A BLANK LINE. LDA LINC LOAD THE LINE COUNTER. INA,SZA,RSS IS A HEADING ABOUT TO BE PRINTED? JSB PRNT YES, SO GO PRINT A BLANK LINE. CCE ENTER: E=1. LDA TAPE LOAD THE CURRENT TAPE NUMBER. LDB PASS BRS,SLB IS THIS A LIST PASS? LDA PRERR YES, LOAD THE PREVIOUS ERROR PAGE. JSB BNCN,I LDA ASCI+3 LOAD: " #". LDB PASS BRS,SLB IS THIS A LIST PASS? LDA .PG YES, LOAD: "PG". STA ASCI LDA .1+5 LDB V+3 JSB PRNT JMP PG,I RETURN. SPC 1 .PG ASC 1,PG SPC 2 * * TEST FOR LEGAL ORB * SPC 1 ORBP NOP LDA AFLG SZA,RSS RELOC ASS'Y? JMP XYZ YES LDA CD+3 NO- 'IL' ERROR JSB ERPR JMP ORBP,I SPC 1 * * END OF ABSOLUTE PORTION * HED *** HPAP-X *** (JRW) XYZ LDB PLCN LDA BASF SZA ARE WE IN BASE PAGE? JMP ORBP,I YES, EXIT LDA ORBS NO, SET PLCN TO STA PLCN LATEST B.P.VALUE ISZ BASF SET B.P.FLAG LDA ORBS+3 ORRSV SZA ARE WE IN MAIN PROG JSB ORGT,I NO, SET HIGH PLCN VALUE SZA,RSS STB ORBS+2 (ORRS) SAVE PLCN CLA,INA STA ORBS+3 SET ORRSV=-1 JMP ORBP,I EXIT SPC 1 * PROCESS 'COMMON' DECLARATION SPC 1 CMQ JSB SPNTR STA TEST SET TEST (U) = 0. LDB PNTR JSB MSYMS SET SYMP/SYMN JSB SPNTR+4 RE-ALIGN PNTR LDB PBUF+10B STB S LDB TEST CPB L+4 COMMA? JMP HM2 YES CPB BLNK JMP HM2 IT'S = BLANK CPB L LEFT PAREN? RSS = ( JMP HIN+1,I ERROR 1ST PASS JSB BPKUP SKIP BLANKS STB TEMP+1 SAVE POINTER JSB MSYM MEASURE COM LENGTH STA TEMP SAVE NUMBER OF CHARACTERS JSB SPNTR+4 RE-ALIGN PNTR LDA TEST CPA L+1 RT PAREN? RSS = ) JMP HIN+1,I 1ST PASS ERROR STA PEEK LDB TEMP LDA LAST ADB ..M1 LENGTH-1 TO B REG CPA .A+1 OCTAL? RSS YES-SKIP ADB C+1 NO, SET FOR DEC. LDA TEMP+1 JSB ASCN,I JMP HIN,I ERROR EXIT ADA PBUF+10B BUMP COMMON LENGTH STA PBUF+10B SPC 1 * INSERT HM3 LDA ...1+2 SET RELOC=COMMON LDB S VALUE TO B JSB INSR,I INSERT SYMBOL NOP ERROR EXIT LDA PEEK CPA BLNK BLANK? JMP HIN,I YES, EXIT TO HA32 CPA L+4 COMMA? RSS YES JSB PKUP GET NEXT CHAR JSB ENDTS TEST FOR TERMINATION JMP CMQ+2 SPC 1 HM2 ISZ PBUF+10B STB PEEK SAVE TEST JMP HM3 SKP * * PROCESS 'EXT' DECLARATION * SPC 1 EXP JSB SPNTR SET PNTR TO OPERAND POSN LDB PNTR JSB MSYMS SET SYMP/SYMN JSB SPNTR+4 RE-ALIGN PNTR LDB CNTR VALUE TO B LDA ...1+3 (4) EXT INDIC. JSB INSR,I GO TO INSERT RSS ERROR EXIT, SKIP. ISZ CNTR BUMP EXT CNTR LDA TEST JSB ENDTS TEST FOR TEORMINATION JMP EXP+1 SPC 1 * * PROCESS 'ENT' DECLARATION * SPC 1 ENP LDA .10B SET ENFLG = 10B STA ENFLG JSB SPNTR ENP1 LDB PNTR JSB MSYMS JSB SPNTR+4 LDA .10B CLB JSB INSR,I NOP LDA TEST JSB ENDTS TEST FOR TERMINATION JMP ENP1 SPC 2 ENDTS NOP TEST FOR TERMINATION CPA BLNK OF COM,ENT OR EXT JMP HA55E CPA L+4 COMMA? RSS YES JMP HIN+1,I NO, ERROR EXIT JSB BPKUP SCAN TO NEXT CHAR. JMP ENDTS,I SPC 1 HA55E CLA STA ENFLG CLEAR 'ENT'FLAG JMP HIN,I EXIT ON BLANK SKP * ****************************** * * ARITHMETIC MACRO PROCESSOR * * ****************************** SPC 1 ART JSB SYMK,I RSS ERROR RETN(UNDEF) JMP *+4 NORMAL RET'N LDA CD+10 'UN' JSB ERPR CLB SET B = 0 ADB C+14 'JSB' INSTRUCTION MASK STB INST LDA ...1+3 (4) A=EXT JSB BREC PUNCH LDB RC+4 ' X' CLA JMP ARTX GO PROCEESS THE 'DEF' PORTION.. SPC 1 * * PUNCH BINARY OUTPUT FOR RELOCATABLE PROGRAMS * * * (NAM,ENT, AND EXT RECORDS ONLY) * SPC 1 * * OUTPUT 'NAM' RECORD * SPC 1 NAM.L OCT 010400 "NAM" RECORD LENGTH OF 21B. SPC 1 NMP LDA NAM.L STA WCNT SET BLOCK CNT = 9 LDA C+12 GNMP STA PBUF+1 SET REC.IDENT.CODE = 001 SPC 2 ORG GNMP+23 SPC 1 GNMP. JSB PNCH GO TO PUNCH 'NAM' RECORD SPC 1 * * MOVE ENT NAMES/ADDRESS TO PUNCH BUFFER. * * IF UNDEFINED, PRINT DIAGNOSTIC. SPC 1 LDA .10B FOR "ENT" TYPE = 10B STA ENFLG LDA M (-15) 15 ENTRIES/RECORD LDB C+5 (2000B) 4 WORDS PER ENTRY JSB ENEXT CLA STA ENFLG SPC 1 * PROCESS 'EXT' RECORDU HERE SPC 1 LDA CNTR CPA ...1 JMP HIN+3,I EXIT ON CNTR=1 LDA M+2 (-20) 20 ENTRIES/RECORD LDB C+2 (1400B) 3 WORDS PER ENTRY JSB ENEXT JMP HIN+3,I SKP ENEXT NOP STA ENT. SAVE SYMBOL COUNT STB ORBS+1 SAVE WORD COUNT/ENTRY LDA 105B FWA AVAIL MEM. STA ENTV ENTV=ORG ADDR OF ENTRY SPC 1 * * INITIALIZE FOR NEXT BINARY OUTPUT IMAGE * SPC 1 HX1 LDA CSAD STA ORBS ORBS=DEST ADDR IN BIN REC. LDA A+1 100000B LDB ENFLG SZB ENT PROC? RAR YES, SET RIC = 2 STA PBUF+1 SET RIC = 4 LDA C+2 STA WCNT SET BLK CNT = 3 LDA ENT. STA ENTC ENTC = RECRD COUNTER HX2 LDA ENTV,I SZA,RSS END OF TABLE? JMP HX9 YES ALF,ALF NO-PICK UP SYMBOL TYPE CLB STB ORBS+2 CLEAR FLAG FOR B.P. SET IN ENT REC. LDB ENFLG RAR,RAR SZB,RSS ARE WE PROCESSING THE ENT TABLE ENTRYS JMP HX3 NO... RAR,SLA,RAL CHECK FOR ENT JMP HX12 HXN RAR,RAR NO AND ...1+6 (7) ADD ENTRY ADA ENTV -LENGTH STA ENTV -TO ENTV JMP HX2 SPC 1 * * PROCESS END OF TABLE * SPC 1 HX9 LDA ENTC CPA ENT. ANY SYMBOLS LEFT? RSS NO JSB PNCH GO TO PUNCH CLA STA WCNT CLEAR WORD COUNT IF NO SYMBOL OUT JMP ENEXT,I EXIT SPC 1 HX3 SLA,RSS IS THIS AN EXT ENTRY? JMP HXN NO.. RAL,RAL TEST FOR EXTERNAL EQU NOW SLA,RSS JMP HX5 RAR,RAR JMP HXN SPC 1 HX5 ISZ ENTC END OF BIN RECORD? JMP *+3 NO JSB PNCH GO TO PUNCH JMP HX1 SPC 1 * * PLACE CURRENT EXT OR ENT SYMBOL INTO BINARY RECORD * SPC 1 LDA ENTV CMA,INA STA HMOV5 ORG.ADDR.TO MOVE LINK LDB ORBS LDA BLNS STA ORBS,I SET DEST.AREA TO BLANKS ISZ ORBS STA ORBS,I LDA C+12 LEAVE LAST HALF OF LAST ISZ ORBS -DEST WORD = 0 ADA ORBS+2 INSERT B.P. REL FLAG IF PRESENT STA ORBS,I LDA ENTV,I JSB MTABL MOVE CHARS TO BIN REC ISZ PBUF+1 BUMP NO. OF ENTRIES IN REC. LDA SUMP NO.WORDS IN SYMBOLIC ENTRY ADA ENTV STA ENTV UPDATE ENTV(SYMBOL PNTR) ADA ..M1 LDB 0,I ENTRY VALUE TO B LDA ENFLG SZA,RSS ENTRY POINT? ADB ORBS,I NO, SET EXT ORDINAL SZA ISZ ORBS STB ORBS,I STORE INTO RECORD ISZ ORBS UPDATE ORBS (RECRD PNTR) LDA WCNT ADA ORBS+1 STA WCNT UPDATE WORD COUNT JMP HX2 SPC 1 HX12 AND HSMSK LEAVE RELOCATION BITS SSA B.P. RELOCATABLE? ISZ ORBS+2 YES, SET THE FLAG = 1 SZA HAS ENTRY POINT BEEN DEFINED? JMP HX5 YES, GO PUT INTO THE PUNCH BUFFER SPC 1 * * ENT ERROR DIAGNOSTIC ROUTINE * SPC 1 LDA ENTV,I NO, GET THE SYMBLO ADDR FOR DIAG. JSB MBLNK MOVE A SYMBOL TO BUFF THRU BUFF+2 LDA ...1+4 (5) STA SCN1 SET NEW STATE LNGTH LDA CD+9 'EN' JSB ERPR PRINT ERROR DIAG. LDA ENTV,I ALF JMP HXN+1 SPC 1 HSMSK OCT 140000 FOR RELOCATION BIT MASKOUT SPC 2 * *************************************************** * * GNMP - SET UP BASE PAGE AND PROGRAM LENGTHS. * * * SET UP 'PLEN' FOR LITERALS(IF PRESENT). * * *************************************************** SPC 1 ORRP. DEF ORRP SPC 2 ORG GNMP+1 SPC 1 JSB ORRP.,I GO TO ORR RESET LDA PLCN NO LDB ORBS STA PBUF+6 SET MAIN PROG. LENGTH STB PBUF+7 SET BASE PAGE LENGTH SPC 1 * * TEST FOR 'ORG' EXTENT BEYOND MAIN PROGRAM * SPC 1 LDB ORBSV+1 (ORGS) CMA,INA ADA ORBS+1 (ORGS) SSA,RSS IS ORG VALUE GRTR? STB PBUF+6 YES, CHANGE MAIN PROG. LENGTH LDA PASS LOAD THE PASS FLAG. LDB AFLG+1 LOAD THE PUNCH FLAG ("B"). CPA .1+1 IS THIS ENTRY FROM PASS 3? SZB,RSS WAS THE PUNCH OPTION SELECTED? RSS NO, SKIP. JMP GNMP. SPC 1 * * TEST FOR LITERALS * SPC 1 LDA PBUF+6 LDB PLEN SZB LITERALS PRESENT? STA PLEN YES SET START OF AREA ADA 1 ADD LENGTH OF REGION STA PBUF+6 TO PROG LENGTH. SKP * ************************** * * MEASURE LITERAL LENGTH * * ************************** SPC 2 ORG ORRP.+1 SPC 1 MSYML NOP LDA SCN1+2 GET OPERAND POSITION STA SAVB SPC 1 * * SET UP AND TEST NEXR CHARACTER SPC 1 ISZ SAVB SAVB = OPDRND POS'N+1 LDA SAVB GET CURRENT POSITION JSB GETC GET THE CHATACTER CPA BLNK IS IT A SPACE? RSS YES, END OF LITERAL JMP *-5 NO, GO EXAMEINE THE NEXT CHARACT. LDB SCN1+2 GET STARTING POSITION CMB,INB COMPLEMENT IT. ADB SAVB RESULTS IN THE LITERAL LENGTH JMP MSYML,I EXIT SPC 2 * ******************** * * PROCESS LITERALS * * ******************** SPC 1 PLITS NOP LDA AFLG SZA ABS.ASSMBLY? JMP PER YES- GO TO ERROR DIAG. LDA LTFLG LITERAL FLAG CPA .F =F ? JMP PER CPA .A =A ? JMP P.A CPA .A+5 =L ? JMP P.L JSB MSYML =B OR D GET SYMB LNG. LDA LTFLG CPA .A+1 =B? JMP *+6 YES CPA .D =D? JMP *+3 YES PER JSB OPERR 'M' ERROR JMP PLITS,I EXIT SPC 1 ADB C ADD 1 TO B UPPER LDA SCN1+2 JSB ASCN,I CONVERT TO BINARY JMP PLITS,I ERROR RE3TURN SPC 1 P.1 STA ASCI LDA ...1+1 STA SYMP LDA PASS SZA PASS 1 ? JMP *+4 NO JSB LITIN YES INSERT LITERAL INTO SYMB.TBL JMP PLITS,I ERROR RETURN RSS JSB LKLIT LOOK UP LITERAL IN SYMBL TBL ISZ PLITS JMP PLITS,I NORMAL RETURN SPC 1 P.L CLA EXPRESSION PROCESSOR STA LTFLG JSB CHOPI EVALUATE OPERAND JMP PLITS,I ERROR EXIT SZA ABSOL.VALUE? JMP PER NO-ERROR LDA 1 VALUE TO A REG JMP P.1 SPC 1 P.A LDA SCN1+2 JSB GETA STB *+4 ADDR OF OPERAND LDA ...1+1 2 CHARS LDB V+3 L(ASCI) JSB MOVE,I NOP OPERAND ADDR. JMP P.1+1 SPC 1 .D OCT 104 D SKP * ************************************ * * INSERT LITERAL INTO SYMBOL TABLE * * ************************************ SPC 1 LITIN NOP LDA V+3 L(ASCI) STA SYMP+1 LDA ...1+6 (7) STA LTFLG LDB PLEN JSB INSR,I INSERT SYMBOL JMP LITIN,I ERROR RETN. ISZ PLEN BUMP LITERAL LOC'N CNTR ISZ LITIN JMP LITIN,I EXIT(NORMAL) SPC 2 * ******************************** * * SEARCH SYMBL TBL FOR LITERAL * * ******************************** SPC 1 LKLIT NOP LDA V+3 L(ASCI) STA SYMP+1 STA LTFLG SET LTFLG#0 JSB SYMK,I CLB ERROR RETURN ADB PLEN ADDR OF LITERAL CLA,INA A=1 STB SUMP STA RELC JMP LKLIT,I LKLIT EXIT * SPC 2 * ************************* * * ARITH MACRO PROCESSOR * * ************************* SPC 1 ARTLT NOP LDA LTFLG GET LITERAL FLATG SZA,RSS LITERAL PRESENT? JMP LTARX NO LITERAL LDB TEMP+6 STB ARTSV+1 LDB TEMP+5 1ST 2 OPCODE CHARS FOR TEST STB ARTSV CPB .MP MPY? JMP LTjAR YES CPB .DI DIV? JMP LTAR YES CPB .DS DST? JMP *+3 YES, ERROR CPA .F =F? FLTG PT LIT PROC JMP LERR+3 JSB OPERR NO,'M'ERROR LERR CLB B=0 CLA,INA A=1 JMP LTAR+2 SPC 1 JSB MSYML PROC.LIT.LNG. ADB UMSK+2 2 TO B UPPER LDA SCN1+2 OPERND PNTR JSB ASCN,I CONVRT ASCII TO FLTG.PT. JMP LERR ERROR RETURN STA ASCI STB ASCI+1 LDA ...1+3 (4) STA SYMP SET SYMK/INSR PARAMS. LDA PASS SZA,RSS PASS 1 JMP *+3 YES JSB LKLIT NO, LOOKUP LITERAL JMP LTAR+2 EXIT JSB LITIN INSERT THE LITERAL(SYM TBL) JMP LTARZ ERROR EXIT(OK) ISZ PLEN JMP LTARZ SPC 1 LTAR JSB PLIT,I JMP LERR ERROR RETURN STA LTSVA SAVE A STB LTSVB SAVE B LTARZ CLA,INA STA LTFLG SET LTFLG=1 FOR LIT.IN ARITH MACRO. LDA ARTSV SET OPCODE CHARS BACK STA TEMP+5 FOR FURTHER PROCESSING LDA ARTSV+1 STA TEMP+6 LTARX JMP ARTLT,I EXIT FROM LITERAL PROC HERE. SPC 1 .MP ASC 1,MP .DI ASC 1,DI .DS ASC 1,DS ARTSV OCT 0,0 SPC 2 NLIT NOP CLB STB BASF CLEAR BASE FLAG FOR CURRENT PAGE LDA PLEN STA PLCN SET PLCN=FWA AFTER PROGRAM LDA 105B NL01 STA ENTV ADDR OF SYMBOL TABLE LDA ENTV,I 1ST WRD OF ENTRY SZA,RSS END OF TABLE? JMP NL99 YES ALF STA 1 AND ...1+6 GET ENTRY LENGTH STA ENTC LDA 1 ALF AND .12+3 GET ENTRY TYPE CPA ...1+6 LITERAL? JMP NL20 YES NL10 LDA ENTV UPDATE TO NEXT ENTRY ADDRESS ADA ENTC JMP NL01 GO TO PROCESS NEXT ENTRY SPC 1 * * PROCESS A LITERAL FOR OUTPUT * SPC 1 NL20 LDA ENTV CMA,INA SET UP ADDR OF LITRL CONSTANT LDB V+3 ADDR OF 'ASCI' STA *+3 LDA ...1+3 4 TO A JSB MOVE,I MOVE LIT CNONST TO ASCI/ASCI+1 NOP LDA ASCI+1 STA NLST SAVE 2ND WRD LDA ASCI PROCESS 1ST WORD STA INST JSB LOUT PUNCH LDA ...1+3 JSB LIST,I LIST LDA ENTC CPA ...1+2 IS IT 2 WORD CONSTANT? JMP NL30 NO LDA NLST YES STA INST PROCESS 2ND WORD ISZ PLCN BUMP LOCN COUNTER JSB LOUT PUNCH LDA ...1+3 JSB LIST,I LIST NL30 ISZ PLCN BUMP LOCN CNTR JMP NL10 SPC 1 * * EXIT HERE SPC 1 NL99 CLB JSB BREC JMP NLIT,I SPC 1 NLST NOP TEMP SPC 1 SKP * ****************************** * * OPCODE AND PSEUDO-OP TABLE * * ****************************** SPC 1 OPT OCT 40502,51421,0, 40504,40416,42001 ABS/ADA OCT 40504,41016,46001, 40514,43060,31700 ADB/ALF OCT 40514,51060,31400, 40514,51460,31000 ALR/ALS OCT 40516,42016,12001, 40522,51460,31100 AND/ARS OCT 40523,41407,0, 41114,43060,25700 ASC/BLF OCT 41114,51060,25400, 41114,51460,25000 BLR/BLS OCT 41122,51460,25100, 41123,51412,0 BRS/BSS OCT 41503,40461,53400, 41503,41061,47400 CCA/CCB OCT 41503,42463,42300, 41514,40461,52400 CCE/CLA OCT 41514,41061,46400, 41514,41450,106700 CLBCLC OCT 41514,42463,0, 41514,43052,103100 CLECLF OCT 41515,40461,53000, 41514,47430,103101 CMACLO OCT 41515,41061,47000, 41515,42463,42200 CMB/CME OCT 41517,46403 COM DEF CMQ OCT 41520,40416,52001, 41520,41016,56001 CPA/CPB OCT 42105,41410,0, 42105,43020,0 DEC/DEF OCT 42514,40460,131600, 42516,52004 ELA/ENT DEF ENP OCT 42514,41060,125600, 42516,42014,0 ELB/END OCT 42522,40460,131500, 42521,52413,0 ERA/EQU OCT 42522,41060,125500, 42530,52005 ERB/EXT DEF EXP OCT 44114,52051,102000,46111,40450,102500 HLT/LIA OCT 46111,41050,106500,46511,40450,102400 LIB/MIA OCT 44516,40466,52004, 44516,41066,46004 INA/INB OCT 44517,51016,32001, 44523,55016,36000 IOR/ISZ OCT 45115,50016,26000, 45123,41016,16000 JMP/JSB OCT 46104,40416,62001, 46104,41016,66001 LDA/LDB OCT 46511,41050,106400, 47101,46415,0 MIB/NAM OCT 47117,50030,0, 47503,52011,0 NOP/OCT OCT 47524,40450,102600, 47522,43401 OTA/ORG DEF ORGP OCT 47524,41050,106600, 47522,51002 OTB/ORR DEF ORRP OCT 51101,46060,31200, 51101,51060,31300 RAL/RAR OCT 51102,46060,25200, 51102,51060,25300 RBL/RBR OCT 51123,51470,42001, 51505,55062,42040 RSS/SEZ OCT 51506,41452,102200, 51506,51452,102300 SFC/SFS OCT 51514,40465,10010, 51514,41065,4010 SLA/SLB OCT 51517,41453,102201, 51517,51453,102301 SOC/SOS OCT 51523,40464,52020, 51523,41064,46020 SSA/SSB OCT 51524,40416,72000, 51524,41016,76000 STA/STB OCT 51524,41450,102700, 51524,43052,102100 STC/STF OCT 51524,47430,102101, 51532,40467,52002 STO/SZA OCT 51532,41067,46002, 54117,51016,22001 SZB/XOR OCT 47522,41000 ORB DEF ORBP OCT 46123,52024,0, 51513,50022 LST/SKP DEF SKPR OCT 51525,50040,1, 44105,42017 SUP/HED DEF HEDSB OCT 52516,46024,1, 51105,50035 UNL/REP DEF REPSB OCT 52516,51440,0, 44506,47031,116 UNS/IFN OCT 54111,43031,0, 44506,55031,132 XIF/IFZ OCT 51520,41423 SPC DEF SPCR OCT 42105,54025,0 DEX IFZ OCT 43101,42026,105000,43104,53026,105060 FAD/FDV OCT 43115,50026,105040,43123,41026,105020 FMP/FSB OCT 43111,54030,105100,43114,52030,105120 FIX/FLT OCT 51101,46451,105000 RAM OCT 42111,53026,100400, 42114,42026,104200 DIV/DLD OCT 42123,52026,104400, 46520,54426,100200 DST/MPY OCT 40523,46027,100020, 40523,51027,101020 ASL/ASR OCT 46123,46027,100040, 46123,51027,101040 LSL/LSR OCT 51122,46027,100100, 51122,51h027,101100 RRL/RRR OCT 51527,50030,101100 SWP XIF SPC 1 IFN OCT 42111,53006 DIV DEF HA38 OCT 42114,42006 DLD DEF HA38 OCT 42123,52006 DST DEF HA38 OCT 46520,54406 MPY DEF HA38 XIF *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IFZ OCT 40504,54026,105746,40504,54426,105756 ADX,ADY OCT 41501,54030,101741,41501,54430,101751 CAX,CAY OCT 41502,54030,105741,41502,54430,105751 CBX,CBY OCT 41530,40430,101744,41530,41030,105744 CXA,CXB OCT 41531,40430,101754,41531,41030,105754 CYA,CYB OCT 42123,54030,105761,42123,54430,105771 DSX,DSY OCT 44523,54030,105760,44523,54430,105770 ISX,ISY OCT 46101,54026,101742,46101,54426,101752 LAX,LAY OCT 46102,54026,105742,46102,54426,105752 LBX,LBY OCT 46104,54026,105745,46104,54426,105755 LDX,LDY OCT 51501,54026,101740,51501,54426,101750 SAX,SAY OCT 51502,54026,105740,51502,54426,105750 SBX,SBY OCT 51524,54026,105743,51524,54426,105753 STX,STY OCT 54101,54030,101747,54101,54430,101757 XAX,XAY OCT 54102,54030,105747,54102,54430,105757 XBX,XBY OCT 51502,52030,105764,51506,41030,105767 SBT,SFB OCT 46102,52030,105763 LBT OCT 45114,54426,105762 JLY * * WATCH OUT FOR THIS INSTRUCTION OCT 45120,54426,105772 JPY * * * TWO WORD INSTRUCTIONS WITH 'NOP' OCT 41502,52077,105766 CBT OCT 46502,52077,105765 MBT OCT 41515,53477,105776 CMW OCT 46526,53477,105777 MVW * * THREE WORD INSTRUCTIONS OCT 41502,51426,105774 CBS OCT 51502,51426,105773 SBS OCT 52102,51426,105775 TBS XIF *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! SPC 1 OCT 0 *END OF TABLE ** * SPC %1 X EQU * SPC 1 END ԉASMB,R,L,B HED TEST PROGRAM FOR 21MX ASSEMBLER NAM TEST ENT TEST COM 10 TEST NOP * ORB .1 DEC 1 B2 OCT 2 ORR REP 5 CMB,INB DEF ADDR EQU * ASC 6,MESSAGE DEX 2.5 BSS 100 UNL LST SUP UNS SKP SPC 1 * ADA ADDR ADB ADDR AND ADDR CPA ADDR CPB ADDR IOR ADDR ISZ ADDR JMP ADDR,I JSB ADDR,I LDA ADDR LDB ADDR STA ADDR STB ADDR XOR ADDR * ALF ALR ALS ARS BLF BLR BLS BRS CLE ELA ELB ERA ERB NOP RAL RAR RBL RBR * SLA SLB CCA CCB CCE CLA CLB CLE CMA CMB CME INA INB RSS SEZ SLA SLB SSA SSB SZA SZB * CLC 10 CLF 11 CLO HLT 77B LIA 12 LIB 13 MIA 14 MIB 15 OTA 16 OTB 17 SFC 18 SFS 19 SOC SOS STC 20,C STF 21 STO * DIV F2.5 DLD F2.5 DST F2.5 MPY F2.5 * ASL 1 ASR 2 LSL 3 LSR 4 RRL 5 RRR 6 * FAD F2.5 FSB F2.5 FMP F2.5 FDV F2.5 FIX FLT * ********************************************** * ADX ADDR ADY ADDR CAX CAY CBX CBY CXA CXB CYA CYB DSX DSY ISX ISY LAX ADDR LAY ADDR LBX ADDR LBY ADDR LDX ADDR LDY ADDR SAX ADDR SAY ADDR SBX ADDR SBY ADDR STX ADDR STY ADDR XAX XAY    XBX XBY JLY ADDR JPY ADDR * CBT CNT LBT MBT CNT SBT SFB * CBS MASK DEF STNG SBS MASK DEF STNG TBS MASK DEF STNG * CMW CNT MVW CNT * * * ADDR OCT 2000 MASK OCT 105 CNT NOP STNG OCT 2537 F2.5 DEC 2.5 * END TEST  ASMB,A,B,L ORG 2000B HED TEST PROGRAM FOR 21MX ASSEMBLER TEST NOP * D1 DEC 1 B2 OCT 2 REP 5 CMB,INB DEF ADDR ABC EQU * ABS ABC+ABC ASC 6,MESSAGE DEX 2.5 BSS 100 UNL LST SUP UNS SKP SPC 1 * ADA ADDR ADB ADDR AND ADDR CPA ADDR CPB ADDR IOR ADDR ISZ ADDR JMP ADDR,I JSB ADDR,I LDA ADDR LDB ADDR STA ADDR STB ADDR XOR ADDR * ALF ALR ALS ARS BLF BLR BLS BRS CLE ELA ELB ERA ERB NOP RAL RAR RBL RBR * SLA SLB CCA CCB CCE CLA CLB CLE CMA CMB CME INA INB RSS SEZ SLA SLB SSA SSB SZA SZB * CLC 10 CLF 11 CLO HLT 77B LIA 12 LIB 13 MIA 14 MIB 15 OTA 16 OTB 17 SFC 18 SFS 19 SOC SOS STC 20,C STF 21 STO * DIV F2.5 DLD F2.5 DST F2.5 MPY F2.5 * ASL 1 ASR 2 LSL 3 LSR 4 RRL 5 RRR 6 * FAD F2.5 FSB F2.5 FMP F2.5 FDV F2.5 FIX FLT * ********************************************** * ADX ADDR ADY ADDR CAX CAY CBX CBY CXA CXB CYA CYB DSX DSY ISX ISY LAX ADDR LAY ADDR LBX ADDR LBY ADDR LDX ADDR LDY ADDR SAX ADDR SAY ADDR SBX ADDR SBY ADDR STX ADDR STY ADDR XAX XAY XBX XBY JLY ADD)  R JPY ADDR * CBT CNT LBT MBT CNT SBT SFB * CBS MASK DEF STNG SBS MASK DEF STNG TBS MASK DEF STNG * CMW CNT MVW CNT * * * ADDR OCT 2000 MASK OCT 105 CNT NOP STNG OCT 2537 F2.5 DEC 2.5 * END TEST !X  N 22681-18029 1500 SC 0122 UTERM-CDC 200 USER TERMINAL SIMULATOR             H0101 ASMB,C,L,R U T E R M -- VERSION 2.1D NAM UTERM * * * USER TERMINAL * * * SPC 1 * THIS PROGRAM SIMULATES THE CDC 200 USER TERMINAL ON A * HEWLETT-PACKARD 2100 SERIES MINICOMPUTER RUNNING UNDER * THE REAL-TIME EXECUTIVE (RTE) OPERATING SYSTEM. SPC 1 * UTERM WAS DEVELOPED FOR THE CAD GROUP WITHIN * THE SANTA CLARA DIVISION OF HEWLETT-PACKARD COMPANY. SPC 1 EXT EXEC ENTRY POINT IN REAL-TIME EXEC EXT $LIBR ENTRY TO DISABLE MEMORY PROTECT EXT $LIBX ENTRY TO ENABLE MEMORY PROTECT SPC 1 * LIST OF ALL ROUTINES IN THIS PACKAGE FOLLOWS - SPC 1 ENT UTERM USER TERMINAL -- MAIN PROGRAM DEF UTERM ADDRESS OF PROGRAM ENTRY POINT SPC 1 DEF GCMDE GET COMMAND AND EXECUTE SPC 1 DEF U.TIM PRINT ELAPSED TIMES SPC 1 DEF U.LOC LOCAL MODE INITIATOR SPC 1 DEF U.COP COPY UTILITY SPC 1 DEF U.TAP TAPE MANIPULATION UTILITY SPC 1 DEF U.LOX EXIT FROM LOCAL MODE SPC 1 DEF U.LIN LINE MODE INITIATOR SPC 1 DEF U.LOG LOGIN DIRECTIVE SPC 1 DEF U.CON CONTINUE ON-LINE PROCESSING SPC 1 DEF U.TR TRANSMIT LINE PROCESSOR SPC 1 DEF U.RED READ FROM? PROCESSOR SPC 1 DEF U.WRT WRITE TO? PROCESSOR SPC 1 DEF U.CL CLEAR READ BUFFER FLAGS SPC 1 DEF U.DIS DISCONNECT DIRECTIVE SPC 1 DEF U.LIX EXIT FROM LINE MODE SPC 1 DEF U.DI DIRECTIVE INPUT SPC 1 DEF U.DL DIRECTIVE LIST SPC 1 DEF U.TRM TERMINATE PROGRAM SPC 1 DEF INIT INITIALIZE PROGRAM SPC 1 DEF CLOCK GET REAL CLOCK TIME SPC 1 DEF E.TMS START REAL-TIME CLOCK TIMER SPC 1 DEF E.TME COMPUTE ELAPSED TIME (SECONDS) SPC 1 DEF S.IN8 GET INPUT FROM SYSTEM CONSOLEKX SPC 1 DEF S.OUT PRINT LINE ON SYSTEM CONSOLE SPC 1 DEF YESNO GET "YES" OR "NO" REPLY SPC 1 DEF GLST2 GET LAST 2 CHARACTERS SPC 1 DEF XPAND EXPAND BCD LINE SPC 1 DEF MOVE0 MOVE WORDS UNTIL ZERO SPC 1 DEF NBLNK DELETE TRAILING BLANKS SPC 1 DEF SPRED SPREAD APART ASCII LINE SPC 1 DEF PACK PACK UP ASCII LINE SPC 1 DEF XLATE TRANSLATE CODES SPC 1 DEF GLINE GET NEXT SOURCE LINE SPC 1 DEF OLINE OUTPUT A LINE SPC 1 DEF LNLEN COMPUTE LINE LENGTH SPC 1 DEF RWMSG READ A WRITE MESSAGE SPC 1 DEF WRMSG WRITE A READ MESSAGE SPC 1 DEF ASBIN ASCII TO BINARY CONVERSION SPC 1 DEF BINAS BINARY TO ASCII CONVERSION SPC 1 DEF CMBLK ADD <, > TO LINE SPC 1 DEF RDISC READ DISC SPC 1 DEF RDWRD READ WORD FROM DISC BUFFER SPC 1 DEF RWSEC READ/WRITE DISC SECTOR SPC 1 DEF WDISC WRITE DISC SPC 1 DEF EDISC WRITE END-OF-FILE TO DISC SPC 1 DEF GETRK GET DISC TRACK FROM RTE SPC 1 DEF RCV.I (DVR) RECEIVE INITIATION SPC 1 DEF RCV.C (DVR) RECEIVE CONTINUATION SPC 1 DEF XMT.I (DVR) TRANSMIT INITIATION SPC 1 DEF XMT.C (DVR) TRANSMIT CONTINUATION SPC 1 DEF PAUSE PAUSE, WAITING FOR OPERATOR *GO SPC 1 DEF SWREG CHECK SWITCH REGISTER FOR BIT #0 SPC 1 DEF IDLE IDLE PROGRAM SPC 1 DEF EXIT HALT EXECUTION AND RETURN TO EXEC HED GENERAL COMMENTS *** GENERAL COMMENTS SPC 5 * UTERM IS A PROGRAM WHICH SIMULATES THE ACTION OF A CDC 200 * USER TERMINAL ON A HEWLETT-PACKARD 2100 SERIES COMPUTER RUNNING * UNDER THE REAL-TIME EXECUTIVE OPERATING SYSTEM. THE MODEM IS - * ASSUMED TO BE A BELL TELEPHONE 201A; THE INTERFACE KIT MUST BE * EQUIVALENT TO THE HP 12618 IN OPERATION. TO EFFECT A GOOD SIM- * ULATION, UTERM IS DIVIDED INTO TWO PARTS: ONE COMMUNICATES WITH * THE USER, WHILE THE OTHER COMMUNICATES WITH THE CENTRAL SITE * COMPUTER. IN GENERAL, BOTH PARTS RUN ASYNCHRONOUSLY; COMMUNI- * CATION BETWEEN THEM IS DONE THROUGH FLAGS IN MEMORY. THE ONLY * (AND HENCE THE BEST) DOCUMENTATION OF THE CDC 200 USER TERMINAL * IS THE CDC HARDWARE REFERENCE MANUAL FOR THE 200 USER TERMINAL * (PUBLICATION #82128000). IT IS HIGHLY RECOMMENDED THAT SECTION * III OF THIS MANUAL BE AVAILABLE WHILE LOOKING AT THE INTERNAL * WORKINGS OF UTERM. ADDITIONAL COMMENTS REGARDING 200 USER TERM- * INAL COMMUNICATIONS IMMEDIATELY PRECEED THE DRIVER IN THE PRO- * GRAM LISTING. * * THE RTE "PRIVILEGED INTERRUPT" CAPABILITY, NOT USED BY * UTERM, MUST BE IMPLEMENTED IF THE TRANSMISSION RATE IS TO EXCEED * 2400 BAUD BECAUSE OF EXCESSIVE DELAY IN RESPONDING TO THE LINE * INTERRUPTS (CAUSED BY THE RTE SYSTEM OVERHEAD). * * UTERM OPERATES IN ONE OF THREE MODES: COMMAND, LOCAL, OR * LINE. THE DISTINCTION BETWEEN THE DIFFERENT MODES IS SOMEWHAT * ARBITRARY, BUT IS USEFUL IN CONTROLLING PROGRAM OPERATION (AS * WELL AS ALLOWING DIFFERENT DIRECTIVES TO BEGIN WITH THE SAME * LETTERS). * * UTERM DOUBLE-BUFFERS THE OUTPUT TO HELP SMOOTH OUT THE FLOW OF DATA. * NOTE THAT THIS BUFFERING HAS NOTHING TO DO WITH THE EQUIPMENT TABLE 'BUFFER' * OPTION AVAILABLE AS AN RTE OPERATOR COMMAND. * * PROGRAM FLOW: UTERM FIRST CALLS SUBROUTINE INIT TO INIT- * IALIZE THE LOGICAL UNIT NUMBERS AND THE RECEIVE INTERFACE CARDS * CHANNEL NUMBER. THE REST OF THE PROGRAM CONSISTS OF A LOOP * WHICH ASKS THE USER FOR ANOTHER DIRECTIVE AND THEN PROCESSES IT, * USING SUBROUTINE GCMDE FOR THIS PURPOSE. SKP * EACH DIRECTIVE IS PROCESSES BY A SEPARATE SUBROUTINE. THE * FOLLOWING TABLE ~SUMMARIZES THE FUNCTION OF EACH DIRECTIVE. THE * CHARACTERS '**' ARE USED TO DENOTE INFREQUENTLY-USED OR SPECIAL * DIRECTIVES. * * DIRECTIVE FUNCTION * --------- -------- * * LOCAL CHANGES MODE FROM COMMAND TO LOCAL * COPY GENERAL COPY UTILITY * TAPE TAPE MANIPULATION UTILITY * EXIT CHANGE MODE FROM LOCAL OR LINE TO COMMAND * LINE CHANGE MODE FROM COMMAND TO LINE * LOGIN INITIATE COMMUNICATIONS WITH THE CENTRAL SITE * COMPUTER. * TRANSMIT SENDS ONE LINE OF TEXT FROM THE CONSOLE TO * THE CENTRAL SITE. * LB LOADS 1 BUFFER OF TEXT FOR TRANSMISSION * READ DEFINES DEVICE USED AS SOURCE OF TEXT TO * TRANSMIT * WRITE DEFINES DEVICE(S) TO WHICH PRINT FILES ARE * COPIED * ** CLEAR CLEARS UTERMS READ & TRANSMIT FLAGS * DISCONNECT HANGS UP THE PHONE (NOTE THAT THIS IS *NOT* * A LOGICAL DISCONNECT FROM THE CENTRAL SITE) * TIME PRINTS ON-LINE AND TOTAL ELAPSED TIMES * ** DI CHANGES LOGICAL UNIT # USED FOR DIRECTIVE * INPUT * ** DL CHANGES LOGICAL UNIT # USED FOR DIRECTIVE * LISTING * ** PAUSE SUSPENDS UTERM UNTIL THE USER RESTARTS THE * PROGRAM WITH THE *GO RTE COMMAND HED UTERM -- USER TERMINAL: MAIN PROGRAM *** UTERM -- USER TERMINAL: MAIN PROGRAM * * UTERM IS INITIATED BY THE OPERATOR COMMAND * * ON,UTERM,NOW * * ANY FURTHER OPERATOR ACTION IS PERFORMED AS * NECESSARY THROUGH THE SYSTEM CONSOLE. ALL COM- * MANDS AND EXPECTED RESPONSES SHOULD BE SELF-EX- * PLANATORY (SEE ROUTINE GCMDE FOR LIST OF COM- * MANDS). * IF, FOR ANY REASON, CONTROL MUST BE RETURNED * TO THE CONSOLE, SET SWITCH 0 OF THE SWITCH nY* REGISTER UP; AT THE NEXT POSSIBLE BREAKPOINT, * THE PROGRAM WILL QUERY THE SYSTEM CONSOLE. * THIS SOFTWARE PACKAGE INCLUDES A DRIVER FOR * THE MODEM INTERFACE WHICH RUNS ASYNCHRONOUSLY. * COMMUNICATION IS DONE THROUGH FLAG WORDS IN MEM- * ORY. * * C A U T I O N: DO NOT MODIFY THIS PROGRAM BEFORE * YOU **THOROUGHLY** UNDERSTAND ITS OPERATION. MOST * PARTS ARE QUITE STRAIGHTFORWARD, BUT ENOUGH ARE NOT * TO WARRANT THIS COMMENT. * * AUTHOR: ELLIS COHEN * DATE: DECEMBER, 1973 * *** SPC 5 UTERM NOP ENTRY POINT FROM RTE EXEC SPC 1 JSB INIT INITIALIZE PROGRAM SPC 1 JSB GCMDE GET COMMAND FROM OPERATOR CONSOLE * AND EXECUTE IT. SPC 1 JMP *-1 DONE EXECUTION? THEN LOOP FOR * THE NEXT COMMAND. SKP * LOCAL VARIABLES SPC 1 SUP SPC 1 VERSN DEF *+1 ASC 4,VERSION: ASC 3, 2.1D DEC 0 END OF MESSAGE SPC 1 UNS SPC 1 USTRT BSS 2 STARTING TIME, IN SECONDS; SETUP * BY INIT. UTLIN DEC 0 TOTAL TIME ON-LINE UTTOT DEC 0 TOTAL ELAPSED TIME SINCE PROGRAM * INITIATION. U.TMP BSS 2 TIMER STORAGE FOR ON-LINE TIME UMODE OCT 1 MODE OF PROGRAM: * 1 = TOP-LEVEL COMMAND MODE * 2 = LINE MODE * 4 = LOCAL MODE SPC 1 * UTERM STATUS FLAGS SPC 1 URED DEC 0 SOURCE OF DATA: SPC 1 * 1 = CARD READER 2 = PAPER TAPE READER * 4 = MAGNETIC TAPE #1 8 = MAGNETIC TAPE #2 * 16 = LS TRACKS ON DISC 32 = CONSOLE SPC 1 UWRT DEC 0 DATA SINKS (SUM OF #'S BELOW): SPC 1 * 1 = LINE PRINTER 2 =8N PAPER TAPE PUNCH * 4 = MAGNETIC TAPE #1 8 = MAGNETIC TAPE #2 * 16 = LS TRACKS ON DISC 32 = CONSOLE * 64 = DUMP (BIT BUCKET) SPC 1 ULOG DEC 0 =1 IF LOGIN DIRECTIVE GIVEN; * =-1 WHEN DVR HAS MADE CONTACT HED GCMDE -- GET COMMAND AND EXECUTE *** GCMDE -- GET COMMAND AND EXECUTE * * CALLING SEQUENCE - * JSB GCMDE * * ACTION - * GETS DIRECTIVE FROM INPUT AND BRANCHES TO THE * APPROPRIATE ROUTINE TO PROCESS IT. * *** SPC 5 GCMDE NOP ENTRY/EXIT SPC 1 LDA GCMS2 PRINT "?:" JSB S.OUT SPC 1 JSB S.IN8 GET LINE OF INPUT INTO S.LIN SPC 1 LDB DIRTB GET DIRECTIVE TABLE ORIGIN GC.LP LDA B,I GET NEXT DIRECTIVE CPA S.LIN COMPARE TO ENTRY JMP GC.MD MATCH FOUND -- CHECK MODE SPC 1 SZA,RSS END OF TABLE FOUND? JMP GC.UC YES -- UNRECOGNIZABLE COMMAND SPC 1 ADB D.3 INCREMENT TO NEXT DIRECTIVE JMP GC.LP AND LOOP SPC 1 GC.MD INB MOVE TO MODE BITS LDA B,I GET MODE BITS INTO A-REG AND UMODE KEEP ONLY THE CORRESPONDING BIT XOR UMODE TEST FOR THAT SPECIFIC BIT SZA,RSS WAS MODE OK? JMP GCJMP YES -- JUMP TO ROUTINE SPC 1 ADB D.2 NO -- TRY NEXT COMMAND JMP GC.LP SPC 1 GCJMP INB MOVE TO JUMP ADDRESS LDA B,I FETCH ADDRESS OF ROUTINE JSB A,I GO EXECUTE THE ROUTINE SPC 1 JMP GCMDE,I IF CONTROL IS EVER RETURNED, EXIT SPC 1 GC.UC LDA GCMS3 UNRECOGNIZABLE COMMAND FOUND JSB S.OUT ISSUE MESSAGE JMP GCMDE+1 AND LOOP SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 GCMS2 DEF *+1 ABS CRLF ASC 2,?: _ DEC 0 END OF MESSAGE SPC 1 GCMS3 DEF *+1 ASC 12,----- UNKNOWN DIRECTIVE DEC 0 END OF MESSAGE SPC 1 UNS SKP *** DIRECTIVE TABLE * * ENTRY FORMAT - * 1. FIRST 2 LETTERS OF DIRECTIVE * 2. MODE BITS FOR THE DIRECTIVE (SUM OF 1, 2, * AND 4, ACCORDING TO WHETHER THE DIRECTIVE * MAY BE ENTERED IN COMMAND, LINE, AND/OR * LOCAL MODES OF OPERATION OF UTERM). * 3. JUMP SUBROUTINE (JSB) ADDRESS * *** SPC 5 DIRTB DEF *+1 ORIGIN OF DIRECTIVE TABLE SPC 1 ASC 1,LO LOCAL DEC 1 COMMAND DEF U.LOC SPC 1 ASC 1,CO COPY DEC 4 LOCAL DEF U.COP SPC 1 ASC 1,TA TAPE DEC 4 LOCAL DEF U.TAP SPC 1 ASC 1,EX EXIT FROM LOCAL MODE DEC 4 LOCAL DEF U.LOX SPC 1 ASC 1,LI LINE DEC 1 COMMAND DEF U.LIN SPC 1 ASC 1,LO LOGIN DEC 2 LINE DEF U.LOG SPC 1 ASC 1,LB LOAD BUFFER DEC 2 LINE DEF U.LB SPC 1 ASC 1,TR TRANSMIT DEC 2 LINE DEF U.TR SPC 1 ASC 1,RE READ DEC 2 LINE DEF U.RED SPC 1 ASC 1,WR WRITE DEC 2 LINE DEF U.WRT SPC 1 ASC 1,CL CLEAR DEC 2 LINE DEF U.CL SPC 1 ASC 1,DI DISCONNECT DEC 2 LINE DEF U.DIS SPC 1 ASC 1,EX EXIT FROM LINE MODE DEC 2 LINE DEF U.LIX SPC 1 ASC 1,TE TERMINATE DEC 1 COMMAND DEF U.TRM SPC 1 ASC 1,TI TIME DEC 7 COMMAND / LINE / LOCAL DEF U.TIM SPC 1 ASC 1,DI DIRECTIVE INPUT DEC 5 COMMAND / LOCAL DEF U.DI SPC 1 ASC 1,DL DIRECTIVE LIST DEC 7 COMMAND / LINE / LOCAL DEF U.DL SPC 1 AS/0C 1,PA PAUSE DEC 7 COMMAND / LINE / LOCAL DEF PAUSE SPC 1 DEC 0 END OF TABLE HED U.TIM -- PRINT ELAPSED TIMES *** U.TIM -- PRINT ELAPSED TIMES * * ACTION - * PRINTS OUT ELAPSED (REAL) TIME. * *** SPC 5 U.TIM NOP ENTRY/EXIT SPC 1 LDA ULOG ARE WE LOGGED ON? SZA,RSS . JMP UT.UT . NO SPC 1 LDB U.TMP UPDATE ON-LINE CLOCK LDA U.TMP+1 . STB E.NOW . STA E.NOW+1 . JSB E.TME . GET ELAPSED TIME STA UTLIN . DONE SPC 1 UT.UT LDB USTRT COMPUTE THE TOTAL ELAPSED TIME LDA USTRT+1 . STB E.NOW . STA E.NOW+1 . JSB E.TME . ACTUAL COMPUTATION HERE STA UTTOT STORE TOTAL AWAY SPC 1 LDB UTMSD FETCH POSITION TO ADD FIRST CHAR STB SCR12 SAVE IT SPC 1 LDA UTLIN CONVERT ON-LINE TIME JSB UTIME TO BE IN THE FORM 0:00:00 SPC 1 JSB CMBLK ADD <, > SPC 1 LDA UTTOT CONVERT TOTAL ELAPSED TIME JSB UTIME TO BE IN THE FORM 0:00:00 SPC 1 JSB PACK PACK THE LINE UP DEF UTMS1 SRC DEF UTMS1 DES DEF D.20 LENGTH OF LINE BUFFER SPC 1 LDA UT.MS PRINT THE LINE JSB S.OUT SPC 1 LDA UCRET RETURN TO U.CON? AND UMODE . SZA . JMP U.CON YES SPC 1 JMP U.TIM,I EXIT SPC 5 *** UTIME -- CONVERT SECONDS TO BE IN THE FORM 0:00:00 * ENTRY: SECONDS IN A-REG; SCR12 POINTS TO NEXT * AVAILABLE CHARACTER POSITION. * EXIT: TIME CONVERTED TO FORM 0:00:00 SPC 1 UTIME NOP ENTRY/EXIT SPC 1 CLB FORM DOUBLE-REGISTER DIV D.60 (A)=MIN. (B)=SEC. STB SCR01 SAVE SECONDS CLB FORM DOUBLE-REGISTER DIV D.60 (A)=HRS. (B)=MIN. STB SCR02 SAVE MINUTES ADA ZERO ADD ASCII OFFSET TO HRS (MUST BE * ONLY 1 DIGIT SINCE 32767 SEC. IS * LESS THAN 10 HRS.) STA SCR12,I ADD HRS TO THE LINE ISZ SCR12 SPACE TO NEXT CHAR POSITION LDA COLON GET A COLON (":") STA SCR12,I APPEND IT TO THE LINE ISZ SCR12 INCREMENT PAST IT SPC 1 LDA SCR02 FORM DOUBLE-REGISTER CLB CONTAINING NUMBER OF MINUTES DIV D.10 (A)=TENS OF MIN., & (B)=UNITS ADA ZERO ADD ASCII OFSET STA SCR12,I APPEND TENS OF MINUTES ISZ SCR12 MOVE POINTER ADB ZERO ADD ASCII OFFSET STB SCR12,I APPEND UNITS TO THE LINE ISZ SCR12 MOVE PAST NUMBER SPC 1 LDA COLON GET A COLON (":") STA SCR12,I APPEND IT TO THE LINE ISZ SCR12 INCREMENT POINTER LDA SCR01 FORM DOUBLE-REGISTER CLB CONTAINING NUMBER OF SECONDS DIV D.10 (A)=TENS OF SEC., & (B)=UNITS ADA ZERO ADD ASCII OFFSET FOR ZERO STA SCR12,I APPEND TENS OF SECONDS ISZ SCR12 INCREMENT POINTER ADB ZERO ADD ASCII OFFSET FOR ZERO STB SCR12,I APPEND UNITS TO THE LINE ISZ SCR12 MOVE PAST THE NUMBER SPC 1 CLA GET A ZERO, AND APPEND STA SCR12,I IT TO THE LINE SPC 1 JMP UTIME,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 UT.MS DEF *+1 ASC 12,ON-LINE & TOTAL TIMES: UTMS1 BSS 20 SPACE FOR ACTUAL TIME SPC 1 UTMSD DEF UTMS1 SPC 1 UNS HED U.LOC -- LOCAL MODE INITIATOR *** U.LOC -- LOCAL MODE INITIATOR * * ACTIONS - * 1. SETS MODE TO "LOCAL" * 2. ISSUES MESSAGE * *** SPC 5 U.LOC NOP ENTRY/EXIT SPC 1 LDA D.4 SET MODE TO "LOCAL" STA UMODE SPC 1 LDA ULOMS ISSUE MESSAGE JSB S.OUT u SPC 1 JMP U.LOC,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 ULOMS DEF *+1 ASC 9,LOCAL MODE ENTERED DEC 0 END OF MESSAGE SPC 1 UNS HED U.COP -- COPY UTILITY *** U.COP -- COPY UTILITY * * THIS ROUTINE PROCESSES THE COPY DIRECTIVE. * *** SPC 5 U.COP NOP ENTRY/EXIT SPC 1 JSB SPRED SPREAD APART THE DIRECTIVE LINE DEF S.LIN SRC DEF SCBUF+1 DES DEF D.80 LENGTH OF DES SPC 1 CLA INITIALIZE THE COPY COUNTER STA CPCNT TO 'INFINITY'. SPC 1 LDB SCBUF CHECK IF ANY NUMBER WAS GIVEN ADB D.2 . UCP.0 LDA B,I . SZA,RSS . JMP UCP.1 . INB . CPA COMMA . RSS . JMP UCP.0 . SPC 1 CLA DECIMAL CONVERSION JSB ASBIN BINARY TO ASCII CONVERSION DEF CPCNT OF THE COPY COUNT NOP END-OF-LINE IGNORED SPC 1 UCP.1 LDA CPCNT NEGATE THE COUNT FOR USE CMA,INA WITH ISZ STA CPCNT . DONE SPC 1 LDA URDM5 READ FROM ? JSB S.OUT JSB S.IN8 GET RESPONSE JSB U.RED EVALUATE IT SPC 1 LDA UWRM6 WRITE TO ? JSB S.OUT JSB S.IN8 GET RESPONSE JSB U.WRT EVALUATE IT SPC 1 LDA URED CHECK FOR ILLEGAL OVERLAP OF I/O AND UWRT SPECIFICATIONS AND OVLAP KEEP ONLY ILLEGAL OVERLAP BITS SZA ANY BITS LEFT? JMP UCP.2 YES -- GO TELL THE USER SPC 1 CLA GET A ZERO STA NUMLS AND CLEAR NUMBERED LIST FLAG STA G.EOF DITTO FOR FORCED-EOF FLAG STA G.DLR ALSO, SET FLAG TO RECOGNIZE '$' SPC 1 LDA UCPM1 RECOGNIZE '$' ? JSB S.OUT JSB YESNO YES OR NO? STA G.DLR YES -- SET FLAG SPC 1 LDNA UWRT DON'T ASK RE NUMBERING UNLESS AND NLMSK CO AND/OR LP SPECIFIED SZA,RSS . YES? JMP UCLP3 NO LDA UCPMB NUMBERED LISTING? JSB S.OUT ISSUE MESSAGE TO USER JSB YESNO YES OR NO? SZA,RSS . JMP UCLP3 NO -- CONTINUE ON SPC 1 STA NUMLS SET NUMBERED LIST FLAG NONZERO CLA GET A ZERO STA LP.SS AND CLEAR THE SINGLE-SPACE FLAG LDA UCPMC RESET LINE COUNTER TO ZERO? JSB S.OUT ASK THE USER JSB YESNO YES OR NO? CLB . SZA . STB LNCNT YES -- SET LINE CNTR TO ZERO JMP UCLUP CONTINUE ON SPC 1 UCLP3 LDA UWRT CHECK FOR LINE PRINTER AND D.1 . SZA,RSS YES? JMP UCLUP NO SPC 1 CLA GET A ZERO STA LP.SS AND CLEAR SINGLE-SPACE FLAG LDA UCPM9 SINGLE SPACING? JSB S.OUT ISSUE MESSAGE JSB YESNO YES OR NO? STA LP.SS YES -- SET FLAG TO 1 SPC 1 * COPY LOOP SPC 1 UCLUP JSB SWREG WAS BIT #0 SET IN SWITCH REG? JMP U.COP,I YES -- EXIT FROM COPY SPC 1 JSB GLINE GET NEXT LINE OF SOURCE JSB OLINE OUTPUT THE LINE ISZ CPCNT INCREMENT LINE COUNTER RSS COUNT EXHAUSTED? JMP U.COP,I YES -- EXIT SZB,RSS NILL STATUS? JMP UCLUP YES -- LOOP CPB D.1 EOR? JMP UCLUP YES -- LOOP SPC 1 LDA UCPM6 EOF/EOI FOUND JSB S.OUT JMP U.COP,I AND EXIT SPC 1 UCP.2 LDA UCPM7 OVERLAPPING I/O SPECIFICATIONS JSB S.OUT JMP UCP.1 GO TRY IT AGAIN SPC 5 * LOCAL STORAGE SPC 1 CPCNT BSS 1 COPY COUNTER OVLAP OCT 000074 1 BIT IF OVERLAP ILLEGAL NLMSK OCT 000041 1 BIT FOR CONSOLE & LINE PRINTER SPC 1 SUP SPC 1 UCPM1 DEF *+1 ASC 13,IGNORE $M, $D, $E & $F? _  DEC 0 END OF MESSAGE SPC 1 UCPM6 DEF *+1 ABS CRLF ASC 7,EOF/EOI FOUND. DEC 0 END OF MESSAGE SPC 1 UCPM7 DEF *+1 ASC 10,ILLEGAL COMBINATION DEC 0 END OF MESSAGE SPC 1 UCPM9 DEF *+1 ASC 12,SINGLE-SPACE LP LIST? _ DEC 0 END OF MESSAGE SPC 1 UCPMB DEF *+1 ASC 8,NUMBERED LIST? _ DEC 0 END OF MESSAGE SPC 1 UCPMC DEF *+1 ASC 10,RESET COUNT TO 1? _ DEC 0 END OF MESSAGE SPC 1 UNS HED U.TAP -- TAPE MANIPULATION UTILITY *** U.TAP -- TAPE MANIPULATION UTILITY * * THIS ROUTINE PROCESSES THE TAPE DIRECTIVE. * * NOTE - SCRATCH CELLS #01-#05 ARE USED. * *** SPC 5 U.TAP NOP ENTRY/EXIT SPC 1 LDB S.PNT GET LAST 2 CHARACTERS OF LINE JSB GLST2 SPC 1 CLB CLEAR TAPE UNIT INDICATOR CPA AS.T1 MAG. TAPE #1? LDB TPDF1 YES CPA AS.T2 MAG. TAPE #2? LDB TPDF2 YES SPC 1 SZB,RSS WAS IT ONE OF THE ABOVE? JMP UTP.1 NO -- ISSUE MESSAGE SPC 1 STB TP.LU STORE POINTER SKP UTP.0 LDA UTPM1 ACTION ? JSB S.OUT JSB S.IN8 GET RESPONSE LDA S.LIN GET FIRST 2 CHARS OF RESPONSE SPC 1 CLB GET A ZERO STB STMSK AND CLEAR THE STATUS MASK CCB READY THE REPEAT COUNTER CPA AS.EF EF = WRITE END-OF-FILE JMP UT.EF CPA AS.BR BR = BACKSPACE RECORD(S) JMP UT.BR CPA AS.FR FR = FORWARD SPACE RECORD(S) JMP UT.FR CPA AS.RE RE = REWIND JMP UT.RE CPA AS.UN UN = UNLOAD JMP UT.UN CPA AS.FF FF = FORWARD SPACE FILE(S) JMP UT.FF CPA AS.BF BF = BACKSPACE FILE(S) JMP UT.BF CPA AS.CD CD = CHANGE DRIVE JMP UTP.2 CPA AS.EX EX = EXIT JMP U.TAP,I o EXIT SPC 1 LDA UTPM3 ISSUE MESSAGE JSB S.OUT LDA UTPM4 JSB S.OUT LDA UTPM5 JSB S.OUT LDA UTPM6 JSB S.OUT JMP UTP.0 LOOP FOR NEXT ACTION SKP UT.EF LDA O.100 READY THE FUNCTION CODE CLB AND THE STATUS MASK JMP UT.BF+2 UT.BR LDA O.200 READY THE FUNCTION CODE LDB BRMSK AND THE STATUS MASK JMP UT.BF+2 UT.FR LDA O.300 READY THE FUNCTION CODE LDB FRMSK AND THE STATUS MASK JMP UT.BF+2 UT.FF LDA O1300 READY THE FUNCTION CODE LDB FFMSK AND THE STATUS MASK JMP UT.BF+2 UT.BF LDA O1400 READY THE FUNCTION CODE LDB BFMSK IOR TP.LU,I MERGE IN THE TAPE LU# STA UT.FN STORE AWAY FOR EXEC CALL STB STMSK SAVE THE STATUS MASK FOR LATER SPC 1 JSB SPRED SPREAD APART THE USER RESPONSE DEF S.LIN SRC DEF SCBUF+1 DES DEF D.10 LENGTH OF DES SPC 1 CLA GET A ZERO STA FNCNT AND CLEAR THE REPEAT COUNTER SPC 1 LDB SCBUF COMPUTE ADDRESS OF WORD ADB D.2 TO CHECK FOR ZERO (END-OF-LINE) LDA B,I FETCH THE WORD SZA,RSS IS IT ZERO? JMP UTCNT YES INB WAS ANY # SPECIFIED? LDA B,I . SZA,RSS . NOT IF END-OF-LINE FOUND JMP UTCNT END-OF-LINE WAS FOUND SPC 1 CLA DECIMAL CONVERSION JSB ASBIN ASCII TO BINARY CONVERSION DEF FNCNT OF THE RECORD/FILE COUNT NOP END-OF-LINE IGNORED SPC 1 UTCNT CLB,INB DEFAULT RECORD/FILE COUNT = 1 LDA FNCNT CHECK WHAT WAS CONVERTED SZA FOR ZERO. LDB A SPECIFIED NUMBER USED IF NONZERO CMB,INB NEGATE FOR USE WITH ISZ JMP UT.UN+3 GO CONTINUE PROCESSING SKP UT.RE LDA O.400 CONSTRUCT CONTROL WORD RSS UT.UN LDA O.500 IOR MTP.LU,I MERGE TAPE LU# STA UT.FN STORE FUNCTION CODE FOR EXEC CALL STB FNCNT SAVE COUNT FOR LATER USE SPC 1 LDA TP.LU,I CHECK WITH EXEC THAT THE TAPE STA SCR02 DRIVE IS FREE SPC 1 JSB EXEC CALL UP RTE DEF *+4 RETURN ADDRESS DEF D.13 I/O STATUS CODE (13) DEF SCR02 LU# DEF SCR03 EQT5 IS RETURNED HERE SPC 1 LDA SCR03 FETCH EQT WORD 5 RAL,RAL SHIFT AVAILABILITY FIELD AND D.3 THROW AWAY EVERYTHING ELSE SZA,RSS IS THE UNIT AVAILABLE? JMP UTRTE YES SPC 1 LDA UTPM7 TAPE DRIVE TIED UP/UNAVAILABLE JSB S.OUT TELL THE USER JMP UTP.0 AND LOOP SKP UTRTE LDA TP.LU,I FETCH LU# JSB EQADR GET ADDRESS OF EQT TABLE ENTRY ADA D.2 CORRECT FOR WORD 2 STA UTMP1 SAVE ADDRESS ADA D.10 CORRECT FOR WORD 14 STA UTMP4 SAVE ADDRESS SPC 1 JSB $LIBR DISABLE MEMORY PROTECT NOP . REST OF CALLING SEQUENCE SPC 1 LDA UTMP4,I SAVE OLD TIME-OUT VALUE STA UTMP3 . CLA GET A ZERO STA UTMP4,I AND DISABLE TIME-OUT SPC 1 LDA UTMP1,I SAVE OLD BUFFER STATUS, ETC. STA UTMP2 . AND NOBUF FORCE NO BUFFERING STA UTMP1,I . DONE SPC 1 JSB $LIBX ENABLE MEMORY PROTECT DEF *+1 EXIT THROUGH DEF *+1 HERE. SPC 1 JSB EXEC CALL RTE DEF *+3 RETURN LOCATION DEF D.3 I/O CONTROL CODE (3) DEF UT.FN CONTROL WORD SPC 1 LDA TP.LU,I CONSTRUCT FUNCTION CODE WORD IOR O.600 TO GET DYNAMIC STATUS STA SCR01 SAVE FOR EXEC CALL SPC 1 JSB EXEC ASK RTE FOR DYNAMIC STATUS DEF *+3 RETURN ADDRESS DEF D.3 I/O CONTROL CODE (3) DEF SCR01 FUNCTION CODE SPC 1 AND STVMSK CHECK STATUS BITS SZA ANY LOOKED-FOR BITS ON? JMP UTP.3 YES -- CHECK WHETHER TO PRINT MSG SPC 1 JSB SWREG WAS BIT #0 SET IN SWITCH REG? JMP UTP.3+2 YES SPC 1 ISZ FNCNT COUNT COMPLETED? JMP UTRTE NO -- LOOP FOR NEXT RECORD/FILE SKP UTP.R JSB $LIBR DISABLE MEMORY PROTECT NOP . REST OF CALLING SEQUENCE SPC 1 LDA UTMP3 STORE PREVIOUS TIME-OUT VALUE STA UTMP4,I BACK INTO EQUIPMENT TABLE LDA UTMP2 STORE PREVIOUS BUFFER STATUS STA UTMP1,I BACK INTO EQUIPMENT TABLE SPC 1 JSB $LIBX ENABLE MEMORY PROTECT DEF *+1 EXIT THROUGH DEF *+1 HERE. SPC 1 JMP UTP.0 LOOP FOR NEXT ACTION SPC 1 UTP.1 LDA UTPM2 T1 OR T2? JSB S.OUT ISSUE MESSAGE JSB S.IN8 GET RESPONSE JMP U.TAP+1 GO EVALUATE IT SPC 1 UTP.2 LDB TPDF2 ASSUME CURRENT UNIT IS T1 LDA TP.LU,I FETCH THE CURRENT LU# CPA TPDF2,I WAS IT T2? LDB TPDF1 YES -- CORRECT POINTER STB TP.LU STORE THE UPDATED POINTER BACK JMP UTP.0 LOOP FOR NEXT ACTION SKP UTP.3 CLA FLAG STOP FROM COUNT RSS CLA,INA FLAG STOP FROM BIT #0 SET STA RFSTP STORE FLAG SPC 1 ISZ FNCNT WAS COUNT ABOUT TO BE SATISFIED? RSS NO JMP UTP.R YES -- RESET EQUIPMENT TABLE SPC 1 LDA FNCNT COMPUTE UNSATISFIED COUNT CMA . ADA D.2 . STA FNCNT STORE FOR PRINTOUT SPC 1 LDB RFSTP CHOOSE THE APPROPRIATE MESSAGE LDA UTPM8 . SZB . LDA UTPM9 . DONE JSB S.OUT PRINT IT SPC 1 CLA DECIMAL CONVERSION LDB SCBUF POINTER TO NEXT CHAR POSITION JSB BINAS BINARY TO ASCII CONVERSION DEF FNCNT OF THE UNSATISFIED COUNT SPC 1 %JSB PACK PACK UP THE PRINT LINE DEF SCBUF+1 SRC DEF SCBUF+1 DES DEF D.10 LENGTH OF BUFFER SPACE SPC 1 LDA SCBUF PRINT THE MESSAGE JSB S.OUT SPC 1 JMP UTP.R GO RESET EQUIPMENT TABLE SPC 5 * LOCAL STORAGE SPC 1 UT.FN BSS 1 FUNCTION CODE STORED HERE STMSK BSS 1 STATUS MASK BFMSK OCT 100 MASK FOR SOT (LOAD POINT) BRMSK OCT 300 MASK FOR SOT/EOF FFMSK OCT 40 MASK FOR EOT (END OF TAPE) FRMSK OCT 240 MASK FOR EOT/EOF FNCNT BSS 1 FUNCTION COUNTER NOBUF OCT 137777 MASK TO DELETE BUFFERING RFSTP BSS 1 REASON FOR STOPPING FLAG UTMP1 BSS 1 ADDRESS OF EQT2 UTMP2 BSS 1 CONTENTS OF EQT2 UTMP3 BSS 1 ADDRESS OF EQT14 UTMP4 BSS 1 CONTENTS OF EQT14 SPC 1 SUP SPC 1 UTPM1 DEF *+1 ASC 5,ACTION? _ DEC 0 END OF MESSAGE SPC 1 UTPM2 DEF *+1 ASC 6,T1 OR T2? _ DEC 0 END OF MESSAGE SPC 1 UTPM3 DEF *+1 ASC 15, OPTIONS: RE (REWIND), UN (U ASC 13,NLOAD), CD (CHANGE DRIVE), DEC 0 END OF MESSAGE SPC 1 UTPM4 DEF *+1 ASC 15, FF/BF [,#] (FORWAR ASC 11,D/BACK SPACE # FILES), DEC 0 END OF MESSAGE SPC 1 UTPM5 DEF *+1 ASC 15, FR/BR [,#] (FORWAR ASC 12,D/BACK SPACE # RECORDS), DEC 0 END OF MESSAGE SPC 1 UTPM6 DEF *+1 ASC 15, EF [,#] (WRITE # E ASC 14,ND-OF-FILE MARKS), EX (EXIT) DEC 0 END OF MESSAGE SPC 1 UTPM7 DEF *+1 ASC 12,TAPE DRIVE UNAVAILABLE. DEC 0 END OF MESSAGE SPC 1 UTPM8 DEF *+1 ASC 15,SOT/EOF/EOT FOUND. UNSATISFIE ASC 6,D COUNT = _ DEC 0 END OF MESSAGE SPC 1 UTPM9 DEF *+1 ASC 15,SWITCH #0 WAS SET. UNSATISFIE ASC 6,D COUNT = _ DEC 0 END OF MESSAGE . SPC 1 UNS HED U.LOX -- EXIT FROM LOCAL MODE *** U.LOX -- EXIT FROM LOCAL MODE * * ACTIONS - * 1. ISSUES EXIT MESSAGE * 2. RESETS UMODE TO "COMMAND" * *** SPC 5 U.LOX NOP ENTRY/EXIT SPC 1 LDA ULOMG ISSUE EXIT MESSAGE JSB S.OUT SPC 1 CLA,INA RESET MODE TO "COMMAND" STA UMODE SPC 1 JMP U.LOX,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 ULOMG DEF *+1 ASC 10,EXIT FROM LOCAL MODE DEC 0 END OF MESSAGE SPC 1 UNS HED U.LIN -- LINE MODE INITIATOR *** U.LIN -- LINE MODE INITIATOR * * ACTIONS - * 1. SETS MODE TO "LINE" * 2. ISSUES MESSAGE. * *** SPC 5 U.LIN NOP ENTRY/EXIT SPC 1 LDA D.2 SET MODE TO "LINE" STA UMODE SPC 1 LDA ULIMS ISSUE MESSAGE JSB S.OUT SPC 1 LDA UCRET RETURN TO U.CON? SZA . JMP U.CON YES SPC 1 JMP U.LIN,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 ULIMS DEF *+1 ASC 9,LINE MODE ENTERED DEC 0 END OF MESSAGE SPC 1 UNS HED U.LOG -- LOGIN DIRECTIVE *** U.LOG -- LOGIN DIRECTIVE * * ACTIONS - * 1. DETERMINES INPUT AND OUTPUT DEVICES. * 2. CONFIGURES I/O INSTRUCTIONS FOR DRIVER. * 3. PATCHES DRIVER INTO EQUIPMENT TABLE. * 4. STARTS DRIVER WITH AN RTE CALL, AND WAITS * FOR ON-LINE STATUS. * *** SPC 5 U.LOG NOP ENTRY/EXIT SPC 1 LDA ULOG CHECK IF ALREADY LOGGED IN SZA NO? JMP UL.RE YES -- GO ISSUE MESSAGE SPC 1 ULG.R LDA URDM5 READ FROM ? JSB S.OUT JSB S.IN8 GET RESPONSE JSB U.RED EVALUATE IT SPC 1 LDA UWRM6 WRITE TO ? JSB S.OUT JSB S.IN8 GET RESPONSE JSB U.WRT EΙVALUATE IT SPC 1 LDA URED CHECK FOR ILLEGAL OVERLAP OF I/O AND UWRT SPECIFICATIONS AND OVLP2 KEEP ONLY ILLEGAL OVERLAP BITS SZA,RSS ANY BITS LEFT? JMP *+4 NO SPC 1 LDA UCPM7 OVERLAPPING I/O SPECIFICATIONS JSB S.OUT TELL THE USER JMP ULG.R GO TRY IT AGAIN SPC 1 LDA ULGM2 GIVE PHONE MESSAGE JSB S.OUT SPC 1 LDA ULGM5 GIVE THE REST OF THE INSTRUCTIONS JSB S.OUT SPC 1 CLA,INA SET LOGIN STATUS STA ULOG . SPC 1 * CONFIGURE THE I/O INSTRUCTIONS FOR THE DRIVER, * AND EXECUTE CLC INSTRUCTIONS ON THE TWO CHANNELS. SPC 1 LDA LIA LIA IN IOR RCVCH . STA L.I.1 . SPC 1 ADA O.100 OTA IN STA O.I.0 . STA O.I.2 . STA O.I.3 . STA O.I.4 . STA O.I.5 . STA O.I.6 . SPC 1 ADA O1100 STC IN,C STA S.I.1 . STA S.I.2 . SPC 1 IOR O4000 CLC IN STA C.I.0 . STA C.I.2 . STA C.I.3 . SPC 1 LDA LIA LIA OUT IOR XMTCH . STA L.O.1 . STA L.O.2 SPC 1 ADA O.100 OTA OUT STA O.O.0 . STA O.O.2 . STA O.O.3 . STA O.O.4 . STA O.O.5 . STA O.O.6 . STA O.O.7 . STA O.O.8 . STA O.O.A . STA O.O.B . STA O.O.C . SPC 1 ADA O1100 STC OUT,C STA S.O.1 . STA S.O.2 . SPC 1 IOR O4000 CLC OUT STA C.O.0 . STA C.O.2 . STA C.O.3 . SPC 1 JSB $LIBR DISABLE PROTECTION NOP . REST OF CALLING SEQUENCE SPC 1 C.I.0 CLC IN CLEAR INPUT CHANNEL C.O.0 CLC OUT CLEAR OUTPUT CHANNEL SPC 1 JSB $LIBX ENABLE PROTECTION DEF *+1 EXIT THRObUGH DEF *+1 HERE. SPC 1 * PATCH THE UTERM DRIVER INTO THE EQT TABLE SPC 1 LDA RCVCH FIRST CONFIGURE WORD 4 STA NDATA+3 FOR INPUT CHANNEL LDA XMTCH DITTO FOR THE OUTPUT CHANNEL STA NDATA+7 SPC 1 LDA RCVLU FIX UP EQT FOR RECEIVE BOARD JSB EQADR GET EQT ENTRY ADDRESS STA EQTAD SAVE IT LDA EQTPT SETUP POINTER TO SAVE AREA STA SCR01 LDA NDATA SETUP POINTER TO REPLACEMENT DATA STA SCR02 LDA EQTAD SET A-REG TO EQT ENTRY ADDRESS+1 JSB EQSWP GO MAKE THE SWITCH SPC 1 LDA XMTLU SETUP THE EQT ENTRY FOR THE XMIT * CHANNEL JSB EQADR GET EQT ENTRY ADDRESS+1 STA EQTAD+1 SAVE IT JSB EQSWP AND GO RESET THE ENTRY SPC 1 * DRIVER IS NOW PATCHED INTO RTE SPC 1 LDA D.2 PRESET FLAGS FOR DRIVER & U.CON STA DRVAL . STA F.MSG . CLA . STA UGENR . STA LRMES . STA LTMES . STA G.EOF . STA G.DLR . STA RREAD . INA . STA UTRFG . STA WMRED . STA WMBF2 . STA RMRED . SPC 1 JSB EXEC CALL RTE TO START THE DRIVER UP DEF *+5 RETURN ADDRESS DEF D.1 READ CODE (1) -- GO TO RCV.I DEF RCVLU LU# FOR RECEIVE DEF SCR01 DUMMY BUFFER PARAMETER DEF D.1 DITTO SPC 1 UL.OL LDA ULOG IS THE LINE ACTIVE? SSA . JMP UL.IM YES -- CONTINUE SPC 1 JSB SWREG IS BIT #0 SET IN THE SWITCH REG? JMP UL.DI YES -- DISCONNECT SPC 1 LDA D.50 IDLE FOR 1/2 SECOND JSB IDLE JMP UL.OL AND LOOP SPC 1 UL.IM LDA ULGM6 ISSUE ON-LINE MESSAGE JSB S.OUT SPC 1 JSB E.TMS INITIALIZE ON-LINE CLOCK STB U.TMP . STA U.TMP+1 . QDONE SPC 1 LDA ULGMA ASK FOR LOGIN MESSAGE JSB S.OUT SPC 1 JSB U.TR FINISH PROCESSING LOGIN MESSAGE SPC 1 JMP U.LOG,I EXIT SPC 1 UL.RE LDA ULGM8 ISSUE MESSAGE JSB S.OUT JMP U.LOG,I EXIT SPC 1 UL.DI JSB E.TMS INITIALIZE ON-LINE CLOCK STB U.TMP BEFORE DISCONNECTING, SO THAT STA U.TMP+1 ON-LINE TIME IS REASONABLE SPC 1 LDA ULGM9 SPACE DOWN 1 LINE JSB S.OUT . SPC 1 JSB U.DIS DISCONNECT JMP U.LOG,I EXIT SPC 5 *** EQADR -- GET EQUIPMENT TABLE ENTRY ADDRESS * ENTRY: LU# IN A-REG * EXIT: ADDRESS OF WORD 2 OF CORRESPONDING EQT TABLE ENTRY * IN A-REG SPC 1 EQADR NOP ENTRY/EXIT SPC 1 ADA 1652B ADD FWA OF DRT ADA D.M1 SUBTRACT 1 LDA A,I FETCH APPROPRIATE DRT ENTRY AND O.6BT ISOLATE EQT TABLE ENTRY # ADA D.M1 DECREMENT TO CORRECT DISPLACEMENT MPY D.15 MULTIPLY BY # WORDS/TABLE ENTRY ADA 1650B ADD FWA OF EQT TABLE INA SET A-REG TO POINT TO WORD 2 JMP EQADR,I AND EXIT SPC 5 *** EQSWP -- SWAP EQUIPMENT TABLE ENTRIES * ENTRY: A-REG CONTAINS ADDRESS OF WORD 2 OF * SOME EQT TABLE ENTRY * EXIT: WORDS 2-5 STORED THROUGH SCR01,I AND * REPLACED WITH 4 WORDS FETCHED THROUGH * SCR02,I. * * NOTE - THIS ROUTINE IS ALSO USED BY U.DIS TO * RESTORE THE EQT ENTRY TO ITS ORIGINAL STATE. SPC 1 EQSWP NOP ENTRY/EXIT SPC 1 JSB $LIBR DISABLE MEMORY PROTECT NOP . REST OF CALLING SEQUENCE SPC 1 LDB D.M4 GET -4 TO USE WITH ISZ STB SCR03 SET IT UP SPC 1 EQSLP LDB A,I SAVE A WORD STB SCR01,I THROUGH SCR01 LDB SCR02,I GET REPLACEMENT THROUGH SCR02 STB A,I AND LAY IT INTO POSITION SPC 1 INA ^1 INCREMENT THE VARIOUS POINTERS ISZ SCR01 . ISZ SCR02 . DONE SPC 1 ISZ SCR03 MOVED ENOUGH? JMP EQSLP NOT YET SPC 1 JSB $LIBX ENABLE MEMORY PROTECT DEF EQSWP EXIT ADDRESS SPC 5 * LOCAL STORAGE SPC 1 OVLP2 OCT 36 1 BIT IF OVERLAP ILLEGAL SPC 1 LIA LIA 0 USED FOR CONSTRUCTION OF CHANNEL * INSTRUCTIONS FOR THE DRIVER SPC 1 NDATA DEF *+1 POINTER TO REPLACEMENT DATA AREA SPC 1 DEF RCV.I INPUT (RECEIVE) BOARD DEF RCV.C BSS 1 LU# STORED HERE OCT 037400 INDICATE EQUIPMENT TYPE 77B SPC 1 DEF XMT.I OUTPUT (TRANSMIT) BOARD DEF XMT.C BSS 1 LU# STORED HERE OCT 037400 INDICATE EQUIPMENT TYPE 77B SPC 1 EQTAD BSS 2 SPACE FOR ADDRESS OF THE APPRO- * PRIATE EQUIPMENT TABLES SPC 1 EQTPT DEF EQTSV POINTER TO SAVE AREA EQTSV BSS 8 SAVE AREA FOR ORIGINAL CONTENTS * OF EQT TABLE ENTRIES SPC 1 SUP SPC 1 ULGM2 DEF *+1 ASC 15,PRESS "TALK" BUTTON AND CALL T ASC 6,HE COMPUTER DEC 0 END OF MESSAGE SPC 1 ULGM5 DEF *+1 ASC 15,AFTER YOU HEAR THE CARRIER SIG ASC 14,NAL, PRESS THE "DATA" BUTTON DEC 0 END OF MESSAGE SPC 1 ULGM6 DEF *+1 ABS CRLF ASC 4,ON-LINE ABS CRLF DEC 0 END OF MESSAGE SPC 1 ULGMA DEF *+1 ASC 5,LOGIN: _ DEC 0 END OF MESSAGE SPC 1 ULGM8 DEF *+1 ASC 9,ALREADY LOGGED IN DEC 0 END OF MESSAGE SPC 1 ULGM9 DEF *+1 ASC 1, DEC 0 END OF MESSAGE SPC 1 UNS HED U.LB -- LOAD BUFFER DIRECTIVE *** U.LB -- LOAD BUFFER DIRECTIVE * * ACTION - * SETS FLAG WHICH CAUSES U.CON TO GENERATE A READ MSG BUFFER. * *** SPC 5 U.LB NOP ENTRY/EXIT SPC 1 LDA ULOG LOGGED IN CURRENTLY? SZA . JMP *+4 YES SPC 1 LDA UDMS1 NOT LOGGED IN -- TELL THE USER JSB S.OUT . JMP U.LB,I EXIT SPC 1 CLA,INA SET READ MSG GENERATION FLAG STA UGENR . DONE SPC 1 JMP U.CON CONTINUE WITH ON-LINE PROCESSING HED U.CON -- CONTINUE ON-LINE PROCESSING *** U.CON -- CONTINUE ON-LINE PROCESSING * * THIS ROUTINE HANDLES ALL ON-LINE PROCESSING. * IT IS NEVER DIRECTLY CALLED BY THE USER, HOWEVER. * *** SPC 5 U.CON EQU * ENTRY/EXIT DONE BY JMP, NOT JSB SPC 1 LDA D.2 SET BUSY FLAG THE FIRST TIME STA UCBSY AROUND. STA UCRET SET U.CON RETURN FLAG SPC 1 UCN.1 JSB SWREG WAS BIT #0 SET IN SWITCH REG? JMP GCMDE+1 EXIT IF SET. SPC 1 LDA UCBSY IS BUSY FLAG SET? CLB GET A ZERO STB UCBSY AND CLEAR IT SZA . JMP UC.WM BUSY FLAG SET SPC 1 LDA U.IDL IDLE AWAY SOME TIME JSB IDLE . SPC 1 * WRITE MESSAGE PROCESSING SPC 1 * NOTE: THERE ARE ACTUALLY FOUR DIFFERENT KINDS * OF WRITE MESSAGES DEFINED IN THE 200 USER TERMINAL * MANUAL: WRITE, CLEAR-WRITE, RESET-WRITE, AND THE * DIAGNOSTIC WRITE. UTERM DOES NOT RECOGNIZE THE * LAST KIND; ALL THE OTHERS ARE TREATED IDENTICALLY, * AS PLAIN WRITE MESSAGES. ONLY THE TRAILING E-CODE * IS USED, FOR CONTROL OVER THE DESTINATION OF THE * MESSAGE. SPC 1 UC.WM LDA WMBF2 CURRENTLY DUMPING A WRITE MSG? SZA,RSS . JMP UCN.2 YES SPC 1 CPA D.M1 WRITE MSG AVAILABLE? RSS YES JMP UCN.3 NO SPC 1 CLA GET A ZERO STA WMBF2 SET MSG-IN-PROCESS FLAG STA RWESC CLEAR ESCAPE-CODE FOUND F LAG SPC 1 LDA WMBF2+2 CHECK FOR NULL WRITE MESSAGE LDA A,I WHICH IS: (ESCAP/E-CODE), EOTXT AND O.7BT CHECK FOR EOTXT BYTE CPA D.3 YES? JMP UCN2B YES -- DO NOT PROCESS THIS MSG * ANY FURTHER. SPC 1 UCN.2 ISZ UCBSY SET BUSY FLAG CLA GET A ZERO STA NUMLS AND CLEAR THE NUMBERED-LISTING STA LP.SS AND SINGLE-SPACING FLAGS SPC 1 JSB RWMSG READ 1 LINE FROM THE BUFFER JMP UCN2B END-OF-BUFFER RETURN NOP EOR/EOF RETURN SPC 1 STA SCR01 SAVE A-REG TEMPORARILY LDA UWRT SAVE THE VALUE OF UWRT STA UCSAV IN CASE MODIFICATION NEEDED. SPC 1 LDA WMBF2+4 FETCH E-CODE CPA E2 E2? JMP UCN2A YES SPC 1 LDA CONLY NOT E2 -- ASSUME CONSOLE ONLY. STA UWRT SO, CHANGE UWRT APPROPRIATELY. SPC 1 UCN2A LDA SCR01 RESTORE A-REG CONTENTS JSB OLINE PRINT THE LINE LDA UCSAV RESTORE THE POSSIBLY-ALTERED STA UWRT WRITE FLAGS. SPC 1 JMP UCN.3 CONTINUE SPC 1 UCN2B CLA,INA END OF MSG FOUND -- TELL DRIVER STA WMBF2 THAT UTERM IS DONE WITH THE MSG SPC 1 * READ MESSAGE PROCESSING SPC 1 UCN.3 LDA UGENR READ MESSAGE REQUEST FLAG SET? SZA,RSS . JMP UCN.1 NO -- SKIP PROCESSING SPC 1 CLA GET A ZERO AND CLEAR THE STA UGENR READ MSG REQUEST FLAG SPC 1 CLA,INA IS DRIVER FINISHED WITH PREVIOUS * READ MESSAGE? CPA RMRED . RSS YES JMP UCN.1 NO SPC 1 JSB UC.IN INITIALIZE THE READ BUFFER SPC 1 ISZ UCBSY SET BUSY FLAG SPC 1 JSB GLINE READ NEXT SOURCE LINE JSB WRMSG ADD TO BUFFER RSS BUFFER-FULL/EOI RETURN % JMP *-3 LOOP TILL BUFFER FILLED SPC 1 CCA SET FLAG TO INDICATE BUFFER READY STA RMRED . DONE SPC 1 JMP UCN.1 LOOP SPC 5 *** UC.IN -- INITIALIZE READ BUFFER SPC 1 UC.IN NOP ENTRY/EXIT SPC 1 LDA D.M2 SET FLAG TO FORM READ MESSAGE STA RMRED . CLA INITIALIZE BYTE POSITION STA RMBYT TO UPPER (0). LDA E3 READY THE USUAL READ MESSAGE STA RMECD E-CODE SPC 1 LDB RMSAD CONSTRUCT MESSAGE PREFIX LDA SOH ADD START-OF-HEADER CODE ALF,ALF . STA B,I . ADD TO BUFFER SPC 1 INB READ CODE LDA C.RED . STA B,I . ADD TO BUFFER SPC 1 INB SET WORKING ADDRESS APPROPRIATELY STB RMWAD . SPC 1 LDA NLNBF INITIALIZE LINE COUNT STA RMLEN . SPC 1 JMP UC.IN,I EXIT SPC 5 * LOCAL VARIABLES SPC 1 U.IDL DEC 20 IDLE TIME (200 MSEC) UCSAV BSS 1 UWRT STORED HERE TEMPORARILY CONLY OCT 40 UWRT EQUIVALENT TO CONSOLE-ONLY UGENR DEC 0 #0 IF READ MSG TO BE GENERATED UCBSY DEC 1 =0 IF U.CON IS IDLING UCRET DEC 0 =2 IF LINE-MODE ROUTINES SHOULD * RETURN TO U.CON HED UTERM/DRIVER COMMUNICATION FLAGS *** UTERM/DRIVER COMMUNICATION FLAGS SPC 5 * DRIVER BUFFER FLAGS SPC 1 WMRED DEC 1 =-2 WHEN DRIVER IS FILLING BUFFER * =-1 WHEN BUFFER READY TO PROCESS * = 0 WHEN UTERM IS PROCESSING * = 1 WHEN UTERM DONE WITH BUFFER WMSAD DEF WMB.1 STARTING ADDRESS OF MSG BUFFER WMECD BSS 1 E-CODE AT END OF MESSAGE SPC 1 WMBF2 DEC 1 EQUIVALENT TO WMRED FOR BUF #2 DEF WMB.2 STARTING ADDRESS OF MSG BUFFER BSS 1 CURRENT WORKING ADDRESS BSS 1 CURRENT WORKING BYTE (0=UPPER) * (BIT #15 IS THE FLAG BIT) BSS 1 E-CODE AT END OF MESSAGE SPC 5 * UTERM BUFFER FLAGS SPC 1 RMRED DEC 1 =-2 WHEN UTERM FILLING BUFFER * =-1 WHEN BUFFER READY TO TRANSMIT * = 0 WHEN DRIVER IS TRANSMITTING * = 1 WHEN DRIVER DONE WITH BUFFER RMSAD DEF RMBUF STARTING ADDRESS OF MSG BUFFER RMWAD BSS 1 CURRENT WORKING ADDRESS RMBYT BSS 1 CURRENT WORKING BYTE POSITION RMECD BSS 1 E-CODE AT END OF MESSAGE RMLEN BSS 1 LINE COUNTER (INITIALIZED TO -12; * =0 WHEN BUFFER IS FULL) SPC 5 * BUFFERS SPC 1 WMB.1 BSS 530 WRITE MESSAGE BUFFER #1 WMB.2 BSS 530 WRITE MESSAGE BUFFER #2 SPC 1 NLNBF DEC -12 - (# LINES PER READ MSG BUFFER) RMBUF BSS 500 READ MESSAGE BUFFER HED U.TR -- TRANSMIT LINE PROCESSOR *** U.TR -- TRANSMIT LINE PROCESSOR * * THIS ROUTINE PROCESSES THE TR DIRECTIVE. * *** SPC 5 U.TR NOP ENTRY/EXIT SPC 1 LDA ULOG ARE WE LOGGED IN? SZA . JMP *+4 YES LDA UDMS1 NO -- TELL THE USER JSB S.OUT THAT HE IS NOT ON-LINE JMP U.TR,I EXIT SPC 1 CLA,INA HAS THE PREVIOUS MSG BEEN SENT? CPA UTRFG . JMP *+4 YES LDA UTRM2 NO -- TELL THE USER JSB S.OUT JMP UTR.3 EXIT THROUGH ON-LINE PROCESSOR SPC 1 LDA UTRM1 PRINT "TYPE MSG:" JSB S.OUT CLA DISABLE "!!" RECOGNITION STA SIN!! . JSB S.IN8 GET MESSAGE TO TRANSMIT CLA,INA ENABLE "!!" RECOGNITION STA SIN!! . SPC 1 JSB SPRED SPREAD APART THE MESSAGE DEF S.LIN SRC DEF SCBUF+1 DES DEF D.70 LENGTH OF DES SPC 1 JSB XLATE TRANSLATE ASCII TO EXTERNAL BCD DEF SCBUF+1 SRC DEF SCBUF+1 DES DEF ASEXB ASCII-TO-EXTERNAL BCD TABLE SPC 1 LDB SCR02 CORRECT ADB D.M1 IF NECESSARY LDA B,I FOR THE EVEN- CPA XBSPC NUMBERED BLANK CHAR ADB D.M1 ADDED BY SPRED. SPC 1 INB APPEND ESCAPE+E1+EOTXT CODES LDA ESCAP . STA B,I . INB . LDA E1 . STA B,I . INB . LDA EOTXT . STA B,I . DONE SPC 1 JSB PACK PACK UP THE MESSAGE DEF SCBUF+1 SRC DEF UTRMS+3 DES DEF D.40 LENGTH OF BUFFER SPACE SPC 1 LDB UTRMS READY INDIRECT POINTER LDA SOH ADD THE SOH CODE ALF,ALF . STA B,I . DONE INB LDA C.RED ADD THE READ CODE STA B,I . DONE SPC 1 CCA SET FLAG FOR DRIVER THAT MESSAGE STA UTRFG IS AVAILABLE FOR TRANSMISSION. SPC 1 UTR.3 JMP U.CON CONTINUE WITH ON-LINE PROCESSING SPC 5 * LOCAL STORAGE SPC 1 UTRFG DEC 1 =-1 WHEN READY TO TRANSMIT * = 0 WHEN DRIVER TRANSMITTING * =+1 WHEN TRANSMITTED SPC 1 UTRMS DEF *+1 POINTER TO MESSAGE BUFFER BSS 44 BUFFER SPACE DEC 0 END OF MESSAGE SPC 1 SUP SPC 1 UTRM1 DEF *+1 ASC 6,TYPE MSG: _ DEC 0 END OF MESSAGE SPC 1 UTRM2 DEF *+1 ASC 16,PREVIOUS MSG NOT YET TRANSMITTED DEC 0 END OF MESSAGE SPC 1 UNS HED U.RED -- READ FROM? PROCESSOR *** U.RED -- READ FROM? PROCESSOR * * THIS ROUTINE PROCESSES THE READ FROM? * DIRECTIVE. * *** SPC 5 U.RED NOP ENTRY/EXIT SPC 1 LDB S.PNT GET THE LAST 2 CHARS OF THE LINE JSB GLST2 . DONE SPC 1 CLB CLEAR READ FLAG CPA AS.CR CR = CARD READER INB CODE = 1 CPA AS.PT PT = PAPER TAPE LDB D.2 CODE = 2 CPA AS.T1 T1 = MAG. TAPE #1 LDB D.4 CODE = 4 CPA AS.T2 T2 = MAG. TAPE #2 LDB D.8 CODE = 8 CPA AS.LS LS = LS TRACKS ON DISC LDB D.16 CODE = 16 CPA AS.CO CO = CONSOLE LDB D.32 CODE = 32 SPC 1 STB URED STORE FLAG WORD AWAY SZB,RSS WAS ANY OPTION RECOGNIZED? JMP URD.1 NO -- TELL THE USER SPC 1 CPB D.16 CHECK FOR LS TRACKS RSS YES? JMP URD.X NO -- EXIT SPC 1 LDA RDISC HAVE WE PREVIOUSLY READ? CLB READY A ZERO SZA YES? JMP *+3 YES STB FDRDW NO. JMP URD.T GET TRACK NUMBER SPC 1 LDA URDM1 NEW FILE? JSB S.OUT JSB YESNO YES OR NO? SZA,RSS . "NO"? JMP URD.X YES, "NO" -- EXIT SPC 1 URD.T LDA URDM2 TRACK NUMBER? JSB S.OUT JSB S.IN8 GET RESPONSE SPC 1 JSB SPRED SPREAD RESPONSE APART DEF S.LIN SRC DEF SCBUF+1 DES DEF D.10 LENGTH OF DES SPC 1 CLA DECIMAL CONVERSION STA FDRDW SET FIRST DISC READ/WRITE FLAG LDB SCBUF PNTR TO FIRST CHARACTER JSB ASBIN ASCII TO BINARY CONVERSION DEF LSTRK OF THE STARTING DISC TRACK # NOP END-OF-LINE IGNORED SPC 1 URD.X LDA UCRET RETURN TO U.CON? AND UMODE . SZA . JMP U.CON YES SPC 1 JMP U.RED,I EXIT SPC 1 URD.1 LDA URDM3 GIVE OPTIONS JSB S.OUT LDA URDM4 JSB S.OUT LDA URDM5 JSB S.OUT JSB S.IN8 GET RESPONSE JMP U.RED+1 AND LOOP SPC 5 * ~ LOCAL STORAGE SPC 1 SUP SPC 1 URDM1 DEF *+1 ASC 6,NEW FILE? _ DEC 0 END OF MESSAGE SPC 1 URDM2 DEF *+1 ASC 5,TRACK #? _ DEC 0 END OF MESSAGE SPC 1 URDM3 DEF *+1 ASC 15, OPTIONS: CR (CARD READER), ASC 12,T1 & T2 (MAGNETIC TAPE), DEC 0 END OF MESSAGE SPC 1 URDM4 DEF *+1 ASC 15, LS (LS TRACKS ON D ASC 18,ISC), CO (CONSOLE), PT (PAPER TAPE) DEC 0 END OF MESSAGE SPC 1 URDM5 DEF *+1 ASC 6,READ FROM? _ DEC 0 END OF MESSAGE SPC 1 UNS HED U.WRT -- WRITE TO? PROCESSOR *** U.WRT -- WRITE TO? PROCESSOR * * THIS ROUTINE PROCESSES THE WRITE TO? DIRECTIVE. * *** SPC 5 U.WRT NOP ENTRY/EXIT SPC 1 CLA GET A ZERO STA UWRT AND CLEAR THE WRITE FLAGS SPC 1 JSB SPRED SPREAD APART THE LINE DEF S.LIN SRC DEF SCBUF+1 DES DEF D.80 LENGTH OF DES SPC 1 LDA SCBUF INITIALIZE POINTER STA SCR02 . SPC 1 LDA SCR02,I FETCH THE FIRST CHARACTER CPA ASC.W W? RSS YES JMP UWR.2 NO -- GO CRACK DEVICE NAMES SPC 1 ISZ SCR02 INCREMENT TO COMMA, BLANK, OR EOL LDA SCR02,I FETCH THE NEXT CHARACTER SZA,RSS END OF LINE? JMP UWRER ERROR CPA COMMA <,>? JMP UWR.1 CONTINUE CHECKING CPA BLANK BLANK? JMP UWR.1 CONTINUE CHECKING JMP *-8 NO SPECIAL CHARACTER -- LOOP SPC 1 UWR.1 ISZ SCR02 CHECK FOR "TO" LDA SCR02,I FETCH THE NEXT CHARACTER CPA ASC.T T? RSS YES JMP UWR.2 NO -- START CHECKING FOR DEVICES ISZ SCR02 CHECK THE NEXT CHARACTER LDA SCR02,I FETCH IT CPA ASC.O O? JMP UWR.2-1 YES -- GO SPACE PAST IT LDA SCR02 NOT "O" -- CORR*#ECT POINTER ADA D.M2 BACK 2 CHAR POSITIONS STA SCR02 . DONE ISZ SCR02 SPC 1 UWR.2 CLA CLEAR THE WRITE FLAG LDB SCR02,I FETCH THE NEXT CHARACTER SZB,RSS END OF LINE? JMP UWR.X YES -- EXIT CPB COMMA IGNORE COMMAS JMP UWR.2-1 CPB BLANK AND BLANKS JMP UWR.2-1 BLF,BLF BEGIN CONSTRUCTION OF TWO CHARS STB SCR03 FOR USE IN PATTERN MATCHING ISZ SCR02 MOVE TO THE NEXT CHARACTER LDB SCR02,I FETCH IT SZB,RSS END OF LINE? JMP UWRER ERROR ADB SCR03 NOW WE HAVE TWO CHARACTERS ISZ SCR02 INCREMENT TO THE COMMA SPC 1 CPB AS.LP LP = LINE PRINTER IOR D.1 CODE = BIT #0 CPB AS.PT PT = PAPER TAPE IOR D.2 CODE = BIT #1 CPB AS.T1 T1 = MAG. TAPE #1 IOR D.4 CODE = BIT #2 CPB AS.T2 T2 = MAG. TAPE #2 IOR D.8 CODE = BIT #3 CPB AS.LS LS = LS TRACKS ON DISC IOR D.16 CODE = BIT #4 CPB AS.CO CO = CONSOLE IOR D.32 CODE = BIT #5 CPB AS.DU DU = DUMP IOR D.64 CODE = BIT #6 SPC 1 SZA,RSS MATCHED? JMP UWR.5 NO SPC 1 IOR UWRT MERGE IN WITH THE OTHER FLAGS STA UWRT . DONE SPC 1 JMP UWR.2 LOOP SPC 1 UWR.X LDA UWRT CHECK FOR LS TRACKS AND D.16 . SZA,RSS YES? JMP UWRX1 NO -- EXIT SPC 1 LDA WDISC HAVE WE PREVIOUSLY WRITTEN? SZA . JMP *+3 YES STA FDRDW SET FIRST DISC WRITE FLAG JMP UWRX1 AND EXIT SPC 1 LDA UWRM1 INITIALIZE DISC? JSB S.OUT . JSB YESNO GET RESPONSE CLB READY A ZERO SZA YES? STB FDRDW YES -- SET FLAG. SPC 1 UWRX1 LDA UCRET RETURN TO U.CON? AND UMODE . `SZA . JMP U.CON YES SPC 1 JMP U.WRT,I EXIT SPC 1 UWRER LDA UWRM3 SYNTAX ERROR JSB S.OUT SPC 1 UWR.5 LDA UWRM4 ISSUE OPTIONS MESSAGE JSB S.OUT LDA URDM4 JSB S.OUT LDA UWRM6 JSB S.OUT JSB S.IN8 GET RESPONSE JMP U.WRT+1 LOOP SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 UWRM1 DEF *+1 ASC 9,INITIALIZE DISC? _ DEC 0 END OF MESSAGE SPC 1 UWRM3 DEF *+1 ASC 6,SYNTAX ERROR DEC 0 END OF MESSAGE SPC 1 UWRM4 DEF *+1 ASC 15, OPTIONS: LP (LINE PRINTER) ASC 13,, T1 & T2 (MAGNETIC TAPE), DEC 0 END OF MESSAGE SPC 1 UWRM6 DEF *+1 ASC 6,WRITE TO? _ DEC 0 END OF MESSAGE SPC 1 UNS HED U.CL -- CLEAR BUFFER FLAGS *** U.CL -- CLEAR BUFFER FLAGS * * THIS ROUTINE PROCESSES THE CL DIRECTIVE, WHICH * CLEARS THE READ BUFFER FLAGS. IT IS INTENDED TO BE * USED AFTER A CONSOLE MESSAGE OF "END,CR" IS TRANS- * MITTED TO THE CENTRAL SITE. IF NOT USED, UTERM * EFFECTIVELY LOCKS UP, BECAUSE THE CENTRAL SITE STOPS * REQUESTING INPUT BEFORE UTERM'S DOUBLE BUFFERS HAVE * BEEN EMPTIED. * *** SPC 5 U.CL NOP ENTRY/EXIT SPC 1 LDA ULOG LOGGED IN CURRENTLY? SZA . JMP *+4 YES SPC 1 LDA UDMS1 NOT LOGGED IN -- ISSUE MESSAGE JSB S.OUT JMP U.CL,I EXIT SPC 1 JSB $LIBR DISABLE INTERRUPTS TO PREVENT NOP CONFLICTS WITH THE DRIVER SPC 1 CLA SET ALL READ FLAGS STA UGENR . TO IDLE STATUS STA G.EOF . STA RREAD . INA . STA RMRED . STA UTRFG . DONE SPC 1 JSB $LIBX RE-ENABLE INTERRUPTS DEF *+1 AND EXIT DEF *+1 THROUGH HERE. O SPC 1 JMP U.CON RETURN TO U.CON HED U.DIS -- DISCONNECT DIRECTIVE *** U.DIS -- DISCONNECT DIRECTIVE * * THIS ROUTINE PROCESSES THE DISCONNECT DIRECTIVE. * *** SPC 5 U.DIS NOP ENTRY/EXIT SPC 1 LDA ULOG LOGGED IN CURRENTLY? SZA,RSS . JMP UD.NL NO -- GO ISSUE MESSAGE SPC 1 CLA CLEAR THE U.CON RETURN FLAG STA UCRET . DONE SPC 1 JSB $LIBR NO -- DISABLE INTERRUPTS NOP . REST OF CALLING SEQUENCE SPC 1 LDA RWD04 DROP DATA TERMINAL READY (CD) * SIGNAL O.I.0 OTA IN . LDA XWD04 DITTO O.O.0 OTA OUT . C.I.3 CLC IN INHIBIT FURTHER INTERRUPTS C.O.3 CLC OUT FROM EITHER BOARD. SPC 1 JSB $LIBX ENABLE INTERRUPTS DEF *+1 AND EXIT DEF *+1 THROUGH HERE. SPC 1 JSB U.TIM PRINT ELAPSED TIME SPC 1 CLA GET A ZERO, AND STA ULOG CLEAR STATUS SPC 1 * RESTORE EQUIPMENT TABLE ENTRIES (DISCONNECT THE DRIVER) SPC 1 LDA NDATA POINTER TO SCRATCH AREA STA SCR01 LDA EQTPT POINTER TO OLD CONTENTS STA SCR02 LDA EQTAD POINTER TO EQUIPMENT TABLE JSB EQSWP GO SWAP THE TABLE ENTRIES SPC 1 LDA EQTAD+1 GET ADDRESS OF THE OTHER EQT JSB EQSWP RESTORE IT ALSO SPC 1 JMP U.DIS,I EXIT SPC 1 UD.NL LDA UDMS1 NOT LOGGED IN -- ISSUE MESSAGE JSB S.OUT SPC 1 JMP U.DIS,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 UDMS1 DEF *+1 ASC 11,NOT PRESENTLY ON-LINE DEC 0 END OF MESSAGE SPC 1 UNS HED U.LIX -- EXIT FROM LINE MODE *** U.LIX -- EXIT FROM LINE MODE * * ACTIONS - * 1. ISSUES MESSAGE * 2. RESETS MODE TO "COMMAND" * *** SPC 5 U.LIX NOP ENTRY/EXIT SPC 1 LDA ULIMG ISSUE EXIT MESSAGE JSB S.OUT SPC 1 CLA,INA SWITCH MODE TO "COMMAND" STA UMODE SPC 1 JMP U.LIX,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 ULIMG DEF *+1 ASC 10,EXIT FROM LINE MODE DEC 0 END OF MESSAGE SPC 1 UNS HED U.DI / U.DL -- DIRECTIVE INPUT / LIST *** U.DI / U.DL -- DIRECTIVE INPUT / LIST * * THIS ROUTINE PROCESSES THE DI AND DL * DIRECTIVES, WHICH PERMIT CHANGING THE LOGICAL * UNIT NUMBERS OF THE DEVICES WHICH UTERM USES * FOR DIRECTIVE INPUT AND LISTING. * * SYNTAX: DI,# OR DL,# WHERE # IS THE * NEW LOGICAL UNIT NUMBER. * *** SPC 5 U.DL NOP ENTRY -- EXIT BELOW SPC 1 LDA U.DL MOVE RETURN ADDRESS STA U.DI TO NEW LOCATION STA UDFLG AND SET FLAG NONZERO. JMP UDI.1 SPC 1 U.DI NOP ENTRY/EXIT SPC 1 CLA GET A ZERO STA UDFLG AND CLEAR THE FLAG. SPC 1 UDI.1 JSB SPRED SPREAD APART THE LINE DEF S.LIN SRC DEF SCBUF+1 DES DEF D.80 LENGTH OF DES SPC 1 CLA GET A ZERO STA UCTMP AND CLEAR THE INITIAL VALUE SPC 1 LDB SCBUF CHECK FOR PRESENCE OF LU# ADB D.2 . LDA B,I . SZA,RSS . JMP UDI.R . NONE SPECIFIED INB . LDA B,I . SZA,RSS . JMP UDI.R . NONE SPECIFIED SPC 1 CLA DECIMAL CONVERSION JSB ASBIN ASCII TO BINARY CONVERSION DEF UCTMP OF THE LU# NOP END-OF-LINE IGNORED SPC 1 UDI.R LDA UCTMP FETCH VALUE SZA,RSS ZERO? JMP UDI.X YES -- EXIT SSA NEGATIVE? JMP UDI.X YES -- EXIT SPC 1 LDB UDFLG CHECK THE FLAG, AND SޭTORE THE SZB,RSS NEW LU# APPROPRIATELY STA CSILU . SZB . STA CSOLU . DONE SPC 1 UDI.X LDA UCRET RETURN TO U.CON? AND UMODE . SZA . JMP U.CON YES SPC 1 JMP U.DI,I EXIT SPC 5 * LOCAL STORAGE SPC 1 UCTMP BSS 1 TEMPORARY STORAGE FOR LU# UDFLG BSS 1 =0 IF U.DI; #0 IF U.DL HED U.TRM -- TERMINATE PROGRAM *** U.TRM -- TERMINATE PROGRAM * * THIS ROUTINE TERMINATES EXECUTION OF UTERM. * *** SPC 5 U.TRM NOP ENTRY/EXIT SPC 1 LDA ULOG LOGGED IN CURRENTLY? SZA,RSS . JMP UTR.1 . NO SPC 1 LDA UTMSG DISCONNECT FIRST? JSB S.OUT JSB YESNO YES OR NO? SZA,RSS . JMP UTR.1 . NO JSB U.DIS . YES RSS DON'T PRINT ELAPSED TIMES TWICE SPC 1 UTR.1 JSB U.TIM PRINT OUT ELAPSED TIMES SPC 1 JSB EXIT ASK RTE TO PUT THIS PROGRAM TO * SLEEP. SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 UTMSG DEF *+1 ASC 10,DISCONNECT FIRST? _ DEC 0 END OF MESSAGE SPC 1 UNS HED INIT -- INITIALIZE PROGRAM *** INIT -- INITIALIZE PROGRAM * * CALLING SEQUENCE - * JSB INIT * * ACTIONS - * 1. ISSUES STARTUP MESSAGE TO CONSOLE * 2. INITIALIZES USTRT (STARTING-TIME CLOCK). * 3. PRINTS OUT LU #'S; REPLACES THEM AS * NECESSARY FROM THE CONSOLE. * * NOTE - SCRATCH CELLS #01-#03 ARE USED. * *** SPC 5 INIT NOP ENTRY/EXIT SPC 1 JSB E.TMS GET CURRENT CLOCK TIME IN SECONDS STB USTRT AND STORE IT AWAY IN USTRT STA USTRT+1 . DONE SPC 1 LDA VERSN PRINT VERSION JSB S.OUT SPC 1 JSB SWREG IF SWITCH #0 IS NOT SET, SKIP * LU# PRINTOUT  RSS SWITCH IS SET JMP INITX SWITCH NOT SET -- EXIT SPC 1 INT.1 LDA RCVLU FORCE TRANSMIT LU# TO BE INA 1 MORE THAN THAT OF THE RECEIVE STA XMTLU BOARD. SPC 1 LDA RCVCH FORCE TRANSMIT CHANNEL # TO BE INA 1 MORE THAN THAT OF THE RECEIVE STA XMTCH BOARD. SPC 1 * CONSTRUCT LU# MESSAGE AND ISSUE IT SPC 1 LDA INMS2 ISSUE FIRST PART OF MESSAGE JSB S.OUT SPC 1 CLA DECIMAL CONVERSION LDB SCBUF PNTR TO FIRST CHAR POSITION JSB BINAS BINARY TO ASCII CONVERSION DEF CSILU OF CONSOLE INPUT LU# JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF CSOLU OF THE CONSOLE OUTPUT LU# JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF PTRLU OF PAPER TAPE READER LU# JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF PTPLU OF PAPER TAPE PUNCH LU# JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF CR.LU OF THE CARD READER LU# JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF LP.LU OF THE LINE PRINTER LU# JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF TPLU1 OF TAPE LU# 1 JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF TPLU2 OF TAPE LU# 2 JSB CMBLK APPEND <, > JSB BINAS BINARY TO ASCII CONVERSION DEF RCVLU OF THE RECEIVER LU# JSB CMBLK APPEND <, > CLA,INA OCTAL CONVERSION JSB BINAS BINARY TO ASCII CONVERSION DEF RCVCH OF THE RECEIVER CHANNEL NUMBER SPC 1 JSB PACK PACK UP THE LINE FOR PRINTING DEF SCBUF+1 SRC DEF SCBUF+1 DES DEF D.80 LENGTH OF DES SPC 1 LDA SCBUF +4 PRINT THE LINE JSB S.OUT SPC 1 * ASK USER IF NUMBERS ARE OK; IF NOT, READ IN * THE NEW VALUES AND LOOP. SPC 1 LDA INMS3 ARE NUMBERS OK? JSB S.OUT SPC 1 JSB YESNO YES OR NO? SZA . JMP INITX YES -- EXIT SPC 1 LDA INMS4 ISSUE MESSAGE JSB S.OUT SPC 1 JSB S.IN8 GET RESPONSE SPC 1 JSB SPRED SPREAD APART USER RESPONSE DEF S.LIN SRC DEF SCBUF+1 DES DEF D.80 LENGTH OF DES SPC 1 CLA DECIMAL CONVERSION LDB SCBUF PNTR TO FIRST CHAR POSITION JSB ASBIN ASCII TO BINARY CONVERSION DEF CSILU OF THE CONSOLE INPUT LU# JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF CSOLU OF THE CONSOLE OUTPUT LU# JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF PTRLU OF PAPER TAPE READER LU# JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF PTPLU OF PAPER TAPE PUNCH LU# JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF CR.LU OF THE CARD READER LU# JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF LP.LU OF THE LINE PRINTER LU# JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF TPLU1 OF TAPE LU# 1 JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF TPLU2 OF TAPE LU# 2 JMP INIT2 END-OF-LINE RETURN SPC 1 INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF RCVLU OF THE RECEIVER LU# JMP INIT2 END-OF-LINE RETURN SPC 1 CLA,INA OCTAL CONVERSION INB SPACE PAST THE COMMA/BLANK JSB ASBIN ASCII TO BINARY CONVERSION DEF RCVCH OF THE RECEIVER CHANNEL NUMBER NOP END-OF-LINE IGNORED SPC 1 INIT2 JMP INT.1 LOOP SPC 1 INITX CLA,INA ENABLE "!!" RECOGNITION STA SIN!! . SPC 1 JMP INIT,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 INMS2 DEF *+1 ABS CRLF ASC 15,IN/OUT/PTR/PTP/CR/LP/T1/T2/RCV ASC 4,LU,CH: _ DEC 0 END OF MESSAGE SPC 1 INMS3 DEF *+1 ASC 7,ARE #'S OK? _ DEC 0 END OF MESSAGE SPC 1 INMS4 DEF *+1 ASC 6,TYPE #'S: _ DEC 0 END OF MESSAGE SPC 1 UNS HED CLOCK -- GET REAL CLOCK TIME *** CLOCK -- GET REAL CLOCK TIME * * CALLING SEQUENCE - * JSB CLOCK * DEF ADDR ADDRESS OF 5-WORD PARAMETER AREA * ... RETURN POINT * * NOTE - THE TIME IS RETURNED ACCORDING TO THE RTE * STANDARD (MS, SEC, MIN, HRS, DAY). * *** SPC 5 CLOCK NOP ENTRY/EXIT SPC 1 LDA CLOCK,I GET BUFFER ADDRESS STA CLK.P STORE ADDRESS INTO RTE CALL ISZ CLOCK INCREMENT TO RETURN ADDRESS SPC 1 JSB EXEC CALL UP RTE DEF *+3 RETURN ADDRESS DEF D.11 CODE FOR TIME (11) CLK.P BSS 1 ADDRESS TO STORE TIME SPC 1 JMP CLOCK,I EXIT HED ELTIM -- ELAPSED TIME COMPUTATION *** ELTIM -- ELAPSED TIME COMPUTATION * * CALLING SEQUENCES - * JSB E.TMS START CLOCK * JSB E.TME COMPUTE ELAPSED TIME SINCE E.TMS CALL * * EXIT CONDITIONS - * INTEGER NUMBER OF SECONDS IN A-REG * * NOTE - SECONDS CLAMPED TO BE .LE. 32767. * * NOTE - SCRATCH CELLS #01-#07 ARE USED. * *** SPC 5 E.TMS NOP ENTRY EXIT SPC 1 JSB CLOCK GET RTE CLOCK DEF SCR01 PUT IT IN SCRATCH SPC 1 JSB E.SEC CONVERT TIME TO SECONDS LDB SCR01 STORE RESULT AWAY LDA SCR02 . STB E.NOW . STA E.NOW+1 . DONE JMP E.TMS,I AND EXIT SPC 1 E.TME NOP ENTRY/EXIT SPC 1 JSB CLOCK GET RTE CLOCK DEF SCR01 PUT IT IN SCRATCH AREA SPC 1 JSB E.SEC CONVERT TO SECONDS SPC 1 LDB E.NOW GET OLD TIME LDA E.NOW+1 . CLE CLEAR EXTEND BIT CMA,INA AND COMPLEMENT THE OLD TIME CMB . SEZ TEST IF COMPLEMENT OVERFLOWED INB IF SO, CORRECT RESULT JSB E.DAD COMPUTE ELAPSED TIME LDA SCR02 READY THE ANSWER RAL,CLE,ERA CLEAR BIT #15. JMP E.TME,I EXIT WITH ANSWER IN A-REG SPC 3 * LOCAL VARIABLE SPC 1 E.NOW BSS 2 STORE REFERENCE TIME HERE SKP E.SEC NOP ENTRY/EXIT SPC 1 LDA SCR03 MPY D.60 MULTIPLY MINUTES BY 60 ADA SCR02 ADD # OF SECONDS STA SCR02 STORE MIN:SEC AS SECONDS SPC 1 CLB GET A ZERO STB SCR01 READY 32-BIT RESULT SPC 1 CLO CLEAR THE OVERFLOW BIT LDA SCR04 GET HOURS RRL 4 3600 = 7020B JSB E.DAD HRS*20B RRL 5 JSB E.DAD HRS*1000B RRL 1 JSB E.DAD HRS*2000B RRL 1 JSB E.DAD HRS*4000B HRS:MIN:SEC TO SEC SPC 1 LDA SCR05 GET DAYS 86400 = 250600B CLB CLEAR REST OF DOUBLE-REGISTER RRL 7 JSB E.DAD DAYS*200B RRL 1 JSB E.DAD DAYS*400B RRL 4 & JSB E.DAD DAYS*10000B RRL 2 JSB E.DAD DAYS*40000B RRL 2 JSB E.DAD DAYS*200000B SPC 1 JMP E.SEC,I EXIT SKP E.DAD NOP ENTRY/EXIT SPC 1 * DOUBLE-PRECISION ADD OF (B A) TO (SCR01 SCR02) SPC 1 STA SCR06 SAVE A-REG STB SCR07 SAVE B-REG SPC 1 CLE CLEAR EXTEND BIT ADA SCR02 ADD LOWER STA SCR02 STORE AWAY SEZ TEST FOR OVERFLOW -- IF SO, INB INCREMENT UPPER HALF ADB SCR01 ADD UPPER STB SCR01 STORE UPPER BACK SPC 1 LDA SCR06 RESTORE A-REG LDB SCR07 RESTORE B-REG SPC 1 JMP E.DAD,I EXIT HED S.IN8 -- GET INPUT FROM SYSTEM CONSOLE *** S.IN8 -- GET INPUT FROM SYSTEM CONSOLE * * CALLING SEQUENCE - * JSB S.IN8 * * ACTION - * 1. ONE LINE OF INPUT IS READ FROM THE CONSOLE * INPUT DEVICE. * 2. IF LINE BEGINS WITH "!!" AND FLAG SIN!! IS * NONZERO, THE CURRENT MODE IS PRINTED AND EXIT * IS MADE TO GCMDE+1 TO GET THE NEXT DIRECTIVE. * * EXIT CONDITIONS - * 1. S.LIN CONTAINS THE INPUT LINE JUST READ IN * 2. S.LEN AND THE B-REG CONTAIN THE NUMBER OF * CHARACTERS RECEIVED. * 3. THE LINE IMAGE IS TERMINATED WITH A ZERO * WORD. * * NOTE - SCRATCH CELL #01 IS USED. * *** SPC 5 S.IN8 NOP ENTRY/EXIT SPC 1 LDA CSILU READY THE CONSOLE LU# IOR O.400 MERGE ECHO BIT STA SCR01 STORE INTO SCRATCH CELL SPC 1 JSB EXEC CALL RTE EXEC DEF *+5 RETURN ADDRESS DEF D.1 READ CODE (1) DEF SCR01 CONTROL WORD DEF S.LIN BUFFER LOCATION DEF D.M80 -(BUFFER LENGTH) IN CHARS SPC 1 STB S.LEN STORE # OF CHARACTERS SZB CONTINUE IF CNT IS NONZERO JMP S.IN2 . SPC 1 JSB PAUSE NO CHARS RETURNED: PAUSE JMP S.IN8+1 GO TRY THE READ AGAIN SPC 1 S.IN2 LDA S.PNT GET POINTER TO LINE IMAGE INB FORM OFFSET IN B-REG -- (LEN+1)/2 BRS DIVIDE BY TWO ADA B A NOW POINTS TO WORD TO ZERO OUT CLB GET A ZERO STB A,I USE IT SPC 1 LDA CSOLU IS OUTPUT LU# CPA CSILU THE SAME AS INPUT LU# JMP *+3 YES SPC 1 LDA S.PNT NO -- PRINT THE LINE JSB S.OUT SPC 1 LDA SIN!! IS "!!" RECOGNITION ENABLED? SZA,RSS . JMP S.IN3 NO SPC 1 LDA S.LIN CHECK FOR "!!" AS FIRST 2 CHARS CPA AS.!! . JMP S.IN4 MATCH FOUND -- JUMP SPC 1 S.IN3 LDB S.LEN EXIT WITH LENGTH IN B-REG JMP S.IN8,I . SPC 1 S.IN4 LDA SINM1 MODE: JSB S.OUT LDB UMODE PRINT APPROPRIATE MODE LDA SINM2 . CPB D.2 . LDA SINM3 . CPB D.4 . LDA SINM4 . SPC 1 JSB S.OUT PRINT IT SPC 1 JMP GCMDE+1 GO GET THE NEXT DIRECTIVE SPC 5 * LOCAL STORAGE SPC 1 S.LIN BSS 41 LINE BUFFER S.PNT DEF S.LIN LINE BUFFER POINTER S.LEN BSS 1 LENGTH OF LINE (# OF CHARS) SIN!! DEC 0 =1 IF "!!" RECOGNITION ENABLED SPC 1 SUP SPC 1 SINM1 DEF *+1 ABS CRLF ASC 4,MODE: _ DEC 0 END OF MESSAGE SPC 1 SINM2 DEF *+1 ASC 4,COMMAND DEC 0 END OF MESSAGE SPC 1 SINM3 DEF *+1 ASC 2,LINE DEC 0 END OF MESSAGE SPC 1 SINM4 DEF *+1 ASC 3,LOCAL DEC 0 END OF MESSAGE SPC 1 UNS HED S.OUT -- PRINT LINE ON SYSTEM CONSOLE *** S.OUT -- PRINT LINE ON SYSTEM CONSOLE * * CALLING SEQUENCE - * LDA (ADDRESS OF MESSAGE BUFFER) * JSB S.OUT * * NOTE - MESSAGE MUST TERMINATE WITH A ZERO WORD. * * NOTE - SCRATCH CELL #01 IS USED. * *** $ SPC 5 S.OUT NOP ENTRY/EXIT SPC 1 STA SO.BL STORE ADDRESS INTO RTE CALL SPC 1 JSB LNLEN COMPUTE LINE LENGTH SPC 1 CLA COMPARE MESSAGE LENGTH WITH ZERO CPA SCR01 . JMP S.OUT,I IF ZERO LENGTH, EXIT, OTHERWISE JSB EXEC CALL RTE EXEC TO OUTPUT MESSAGE DEF *+5 RETURN ADDRESS DEF D.2 WRITE CODE (2) DEF CSOLU CONSOLE OUTPUT LU# SO.BL BSS 1 BUFFER LOCATION DEF SCR01 BUFFER LENGTH (WORDS) SPC 1 JMP S.OUT,I EXIT HED YESNO -- GET "YES" OR "NO" REPLY *** YESNO -- GET "YES" OR "NO" REPLY * * CALLING SEQUENCE - * JSB YESNO * * EXIT CONDITIONS - * A-REG = 0 IF REPLY FROM CONSOLE IS "NO" * A-REG = 1 IF REPLY FROM CONSOLE IS "YES" * * NOTE -- YESNO LOOPS UNTIL ONE OF THE TWO RESPONSES * IS GIVEN. * *** SPC 5 YESNO NOP ENTRY/EXIT SPC 1 JSB S.IN8 GET RESPONSE LDB S.LIN GET 1ST 2 CHARS CCA SET FLAG IN A-REG SPC 1 CPB AS.NO NO? CLA SET FLAG TO ZERO CPB AS.YE YES? CLA,INA SET FLAG TO 1 SPC 1 SSA,RSS WAS FLAG SET? JMP YESNO,I YES -- EXIT SPC 1 LDA YNMSG FLAG NOT SET -- REPEAT REQUEST JSB S.OUT . JMP YESNO+1 AND LOOP SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 YNMSG DEF *+1 ASC 6,YES OR NO? _ DEC 0 END OF MESSAGE SPC 1 UNS HED GLST2 -- GET LAST 2 CHARACTERS *** GLST2 -- GET LAST 2 CHARACTERS * * CALLING SEQUENCE - * LDB PNTR POINTER TO FIRST WORD OF LINE * (2 CHARS/WORD) * JSB GLST2 * * EXIT CONDITIONS - * A-REG CONTAINS THE LAST 2 CHARACTERS. * * NOTE - LINE MUST END WITH A ZERO WORD. * * NOTE - SCRATCH CELL #01 IS USED. * *** SPC 5 GLST2 NOP ENTRY/EXIT SPC 1 LDA B,I MOVE TO END OF THE LINE SZA,RSS EOL? JMP GLT.1 YES INB NO -- BUMP COUNTER JMP *-4 LOOP SPC 1 GLT.1 ADB D.M1 BACK UP TO NONZERO WORD LDA B,I FETCH IT AND O.8BT CHECK BOTTOM CHARACTER CPA BLANK FOR A BLANK JMP GLT.2 SPECIAL CASE SZA,RSS ALSO CHECK FOR ZERO FILL JMP GLT.2 SPECIAL CASE SPC 1 LDA B,I REFETCH WORD INTO A-REG JMP GLST2,I AND EXIT SPC 1 GLT.2 LDA B,I GET WORD AGAIN ALF,ALF SWITCH BYTES AND O.8BT SAVE JUST 1 STA SCR01 IN SCRATCH ADB D.M1 BACK UP ANOTHER POSITION LDA B,I FETCH IT AND O.8BT SAVE THE OTHER BYTE ALF,ALF MOVE IT AROUND IOR SCR01 MERGE IN THE FIRST BYTE JMP GLST2,I AND EXIT HED XPAND -- EXPAND BCD LINE *** XPAND -- EXPAND BCD LINE * * CALLING SEQUENCE - * JSB XPAND * DEF SRC SRC BUFFER (1 CHAR/WORD) * DEF DES DES BUFFER (1 CHAR/WORD) * DEF LEN LENGTH (IN WORDS) OF DES BUFFER * ... RETURN IF DES BUFFER OVERFLOWS * ... NORMAL RETURN POINT * * GENERAL NOTES - * 1. SOURCE BUFFER TERMINATES WITH THE FIRST * ZERO WORD. * 2. DESTINATION BUFFER IS TERMINATED BY A ZERO * WORD. * 3. ANY COMPRESSION CODE ENCOUNTERED IS EXPANDED * APPROPRIATELY. * * NOTE - SCRATCH CELLS #01-#07 ARE USED. * *** SPC 5 XPAND NOP ENTRY/EXIT SPC 1 LDA XPAND,I FETCH ADDRESS OF SRC BUF STA SCR04 SAVE IT. ISZ XPAND INCREMENT PNTR LDA XPAND,I FETCH ADDRESS OF DES BUFFER STA SCR03 SAVE IT. ISZ XPAND LDA XPAND,I FETCH LENGTH OF DES BUFFER CMA,INA NEGATE FOR USE WITH ISZ STA SCR05 SAVE IT. ISZ XPAND INCREMENT PNTR TO OVERFLOW ADDR SKP XPD.1 LDA SCR04,I GETa NEXT SRC CHARACTER SZA,RSS END OF BUFFER? JMP XPD.4 YES -- FINISH THINGS UP SPC 1 ISZ SCR04 INCREMENT SRC BUFFER POINTER SPC 1 CPA ESCAP IS CHARACTER THE ESCAPE CODE? JMP XPD.2 YES -- SPECIAL CASE, PERHAPS SPC 1 STA SCR03,I REGULAR CHAR -- COPY IT OVER ISZ SCR05 CHECK FOR OVERFLOW OF DES BUFFER JMP *+4 NONE SPC 1 XPD.O CLA GET A ZERO TO FORCE END-OF-BUF STA SCR03,I AFTER FORCING A TRAILING ZERO, JMP XPAND,I TAKE THE OVERFLOW EXIT SPC 1 ISZ SCR03 INCREMENT POINTER TO DES BUFFER JMP XPD.1 AND LOOP SPC 1 * ESCAPE CODE FOUND -- INVESTIGATE FURTHER SPC 1 XPD.2 LDA SCR04,I GET THE NEXT SRC CHAR SZA,RSS END OF BUFFER? JMP XPD.4 YES -- GO FINISH THINGS UP SPC 1 ISZ SCR04 INCREMENT POINTER TO SRC BUFFER SPC 1 LDB A SAVE THE BYTE TEMPORARILY SPC 1 AND O.60 DECIDE WHETHER IT IS BLANK OR * ZERO COMPRESSION SZA . JMP XPD.B BLANK COMPRESSION SPC 1 LDA B ZERO COMPRESSION -- ISOLATE AND O.4BT THE ZERO COUNT LDB XBZRO READY AN EXTERNAL BCD ZERO JMP XPD.3 SPC 1 XPD.B LDA B COMPUTE BLANK COUNT AND O.5BT . LDB XBSPC READY AN EXTERNAL BCD SPACE SPC 1 XPD.3 CMA,INA NEGATE COUNT FOR USE WITH ISZ STA SCR07 . SPC 1 XPD3A STB SCR03,I ADD THE CHARACTER ISZ SCR05 CHECK FOR OVERFLOW RSS SKIP IF NONE JMP XPD.O OVERFLOW -- GO PROCESS IT SPC 1 ISZ SCR03 INCREMENT POINTER TO DES BUFFER ISZ SCR07 INCREMENT COUNTER OF 0'S/BLANKS JMP XPD3A LOOP UNTIL ALL DONE SPC 1 JMP XPD.1 THEN LOOP FOR NEXT SRC CHAR SPC 1 * END OF SRC BUFFER FOUND SPC 1 XPD.4 CLA  GET A ZERO STA SCR03,I AND APPEND IT TO DES BUFFER ISZ XPAND INCREMENT TO NORMAL RETURN ADDR JMP XPAND,I EXIT HED MOVE0 -- MOVE WORDS UNTIL ZERO *** MOVE0 -- MOVE WORDS UNTIL ZERO * * CALLING SEQUENCE - * JSB MOVE0 * DEF SRC LOCATION OF DATA TO BE MOVED * DEF DES TARGET ADDRESS * ... RETURN POINT * * ACTION - * COPIES OVER WORDS UNTIL A ZERO WORD IS READ * FROM SOURCE. THE ZERO WORD IS THE LAST ONE SO * COPIED. * * NOTE - SCRATCH CELL #01 IS USED. * *** SPC 5 MOVE0 NOP ENTRY/EXIT SPC 1 LDB MOVE0,I PICK UP SOURCE ADDRESS ISZ MOVE0 INCREMENT POINTER LDA MOVE0,I PICK UP DES ADDRESS STA SCR01 STORE IT ISZ MOVE0 RETURN ADDRESS NOW SET UP SPC 1 * MOVE LOOP SPC 1 M.LP0 LDA B,I GET NEXT WORD TO MOVE STA SCR01,I CONSIDER IT DONE SZA,RSS WAS IT ZERO? JMP MOVE0,I YES -- EXIT INB NO -- INCREMENT SRC ADDRESS ISZ SCR01 INCREMENT DES ADDRESS JMP M.LP0 LOOP UNTIL ZERO FOUND HED NBLNK -- DELETE TRAILING BLANKS *** NBLNK -- DELETE TRAILING BLANKS * * CALLING SEQUENCES - * LDB SRC SRC ADDRESS (1 CHAR/WORD) * JSB NBLNK * * LDB SRC SRC ADDRESS (2 CHAR/WORD) * JSB NBLK2 * * EXIT CONDITIONS - * (B) = LOCATION OF APPENDED ZERO * * NOTE - SCRATCH CELLS #01-#02 ARE USED. * *** SPC 5 NBLNK NOP ENTRY/EXIT SPC 1 LDA BLANK SET UP COMPARISON STA SCR02 SPC 1 STB SCR01 SAVE SRC ADDRESS SPC 1 INB BUMP SRC POINTER LDA B,I UNTIL END-OF-BUF FOUND SZA END? JMP *-3 NO -- LOOP SPC 1 NB.LP ADB D.M1 BACK OFF POINTER CPB SCR01 MAKE SURE NOT TO GO PAST START OF JMP N.END BUFFER ... LDA B,I GET CHARACTER CPA SCR02 COMPARE TO 2BLANK(S) JMP NB.LP GOT ONE -- LOOP SPC 1 N.END INB MOVE AHEAD FOR THE LAST TIME CLA GET A ZERO STA B,I AND USE IT JMP NBLNK,I EXIT SPC 1 NBLK2 NOP ENTRY EXIT SPC 1 LDA NBLK2 MOVE RETURN ADDRESS STA NBLNK SPC 1 LDA BLNK2 SET UP COMPARISON STA SCR02 SPC 1 JMP NBLNK+3 GO CONTINUE HED SPRED -- SPREAD APART ASCII LINE *** SPRED -- SPREAD APART ASCII LINE * * CALLING SEQUENCE - * JSB SPRED * DEF SRC ADDRESS OF SRC BUF (2 CHARS/WRD) * DEF DES ADDRESS OF DES BUF (1 CHAR/WORD) * DEF LEN LENGTH OF DESTINATION BUFFER * ... RETURN POINT * * EXIT CONDITIONS - * SCR11 POINTS TO LOCATION OF TRAILING ZERO. * * GENERAL COMMENTS - * 1. SOURCE BUFFER TERMINATES WITH FIRST WORD * OF ZERO. * 2. DESTINATION BUFFER IS TERMINATED WITH A * ZERO WORD. * 3. ZERO CHARS IN SRC ARE CHANGED TO BLANKS. * * NOTE - SCRATCH CELLS #01-#12 ARE USED. * *** SPC 5 SPRED NOP ENTRY/EXIT SPC 1 LDA SPRED,I GET SRC BUF ADDRESS STA SCR10 STORE IT ISZ SPRED LDA SPRED,I GET DESTINATION BUF ADDRESS STA SCR11 STORE IT ISZ SPRED LDA SPRED,I GET LENGTH OF DES BUF LDA A,I CMA,INA NEGATE FOR USE WITH ISZ STA SCR12 STORE IT ISZ SPRED RETURN JUMP NOW SET UP SKP CLE CLEAR EVEN/ODD SWITCH SPC 1 SP.LP SEZ CHECK FOR EVEN/ODD CHAR JMP *+5 SKIP LOAD IF ALREADY IN B-REG LDB SCR10,I OTHERWISE, FETCH NEXT WORD SZB,RSS END OF SRC? JMP SP.ZR YES -- WRAP THINGS UP ISZ SCR10 NO -- INCREMENT SRC PNTR CME FLIP THE SWITCH BLF,BLF ROTATE CHARACTER INTO POSITION LDA B AND STORE IN A-REG AND O.8BT KEEP ONLY 1 CHARACTER SZA,RSS CHECK FOR ZERO CHARACTER LDA BLANK CHANGE TO BLANK IF SO SPC 1 STA SCR11,I STORE CHARACTER ISZ SCR12 DES BUF OVERFLOW? RSS NO JMP SP.ZR YES -- END WITH A ZERO. SPC 1 ISZ SCR11 INCREMENT STORE PNTR JMP SP.LP LOOP FOR NEXT CHARACTER SPC 1 SP.ZR CLA GET A ZERO STA SCR11,I APPEND IT TO DES BUFFER SPC 1 JMP SPRED,I EXIT HED PACK -- PACK UP ASCII LINE *** PACK -- PACK UP ASCII LINE * * CALLING SEQUENCE - * JSB PACK * DEF SRC BUFFER, 1 CHAR/WORD * DEF DES BUFFER, WILL HAVE 2 CHAR/WORD * DEF LEN LENGTH OF DES BUFFER * ... RETURN POINT * * GENERAL COMMENTS - * 1. SRC BUFFER ENDS WITH FIRST ZERO WORD * 2. DES BUFFER IS TERMINATED WITH A ZERO WORD * 3. THE SRC AND DES BUFFERS MAY BE THE SAME * (IN-PLACE PACKING WORKS). * * NOTE - SCRATCH CELLS #01-#12 ARE USED. * *** SPC 5 PACK NOP ENTRY/EXIT SPC 1 LDA PACK,I GET SRC BUF ADDRESS STA SCR10 STORE IT ISZ PACK BUMP POINTER LDA PACK,I GET DESTINATION BUF ADDRESS STA SCR11 STORE IT ISZ PACK INCREMENT PNTR LDA PACK,I GET LENGTH OF DES BUF LDA A,I CMA,INA COMPLEMENT FOR USE WITH ISZ STA SCR12 STORE IT ISZ PACK RETURN JMP LOCATION NOW SET SPC 1 SKP * LOOP OVER CHARACTERS, PACKING THEM UP SPC 1 CLE CLEAR SWITCH FIRST OF ALL SPC 1 PK.LP LDB SCR10,I GET NEXT CHARACTER ISZ SCR10 INCREMENT PNTR TO SRC BUFFER SZB,RSS END OF BUFFER? JMP PK.ZR YES SPC 1 SEZ FULL WORD OF CHARACTERS? JMP PKL.1 YES SPC 1 LDA B HOLD CHARACTER IN A-REG, ALF,ALF SUITABLY SHIFTED CME FLIP SWITCH JMP PK.LP LOOP SPC 1 PKL.1 IOR B ' ADD NEW CHARACTER STA SCR11,I STORE INTO DES ISZ SCR12 CHECK FOR DES BUFFER OVERFLOW RSS OK -- NO OVERFLOW JMP PK.XT OVERFLOW -- GO EXIT SPC 1 ISZ SCR11 INCREMENT STORE PNTR CME FLIP SWITCH JMP PK.LP LOOP FOR NEXT CHARACTER SPC 1 PK.ZR SEZ,RSS EVEN # OF CHARACTERS? JMP PK.XT YES IOR BLANK NO -- EVEN OUT WITH A BLANK STA SCR11,I STORE IT AWAY ISZ SCR12 CHECK FOR DES BUF OVERFLOW ISZ SCR11 BUMP DES BUF PNTR IF NO OVERFLOW PK.XT CLA GET A ZERO STA SCR11,I APPEND IT TO DES BUFFER JMP PACK,I AND EXIT HED XLATE -- TRANSLATE CODES *** XLATE -- TRANSLATE CODES * * CALLING SEQUENCE - * JSB XLATE * DEF SRC (1 CHAR/WORD) * DEF DES (1 CHAR/WORD) * DEF TABLE (2 CHAR/WORD) * ... RETURN POINT * * NOTE - CONVERTS UNTIL ZERO-WORD OF SOURCE FOUND. * * NOTE - SRC AND DES MAY BE THE SAME (IN-PLACE TRANSLATION). * * NOTE - SCRATCH CELLS #01-#03 ARE USED. * *** SPC 5 XLATE NOP ENTRY/EXIT SPC 1 LDA XLATE,I GET SOURCE ADDRESS STA SCR01 SAVE IT ISZ XLATE LDA XLATE,I GET DESTINATION ADDRESS STA SCR02 SAVE IT ISZ XLATE LDA XLATE,I GET TABLE ORIGIN STA SCR03 SAVE IT ISZ XLATE SETUP RETURN ADDRESS SPC 1 * DO THE CONVERSION SPC 1 XL.LP LDA SCR01,I GET SOURCE CHARACTER SZA,RSS IS IT ZERO? JMP X.END YES -- GO END TRANSLATION SPC 1 CLE,ERA ADJUST CHARACTER FOR TABLE OFFSET LDB SCR03 TABLE BASE ADB A + CHAR OFFSET LDA B,I = REPLACEMENT CHAR WORD SEZ,RSS CHOOSE THE CORRECT BYTE ALF,ALF . AND O.7BT MASK IT OFF STA SCR02,I STORE IT AWAY SPC 1 ISZ SCR01 INCREMENT SRC ADDRESS ISZ SCR02 INCREMENT DES A_DDRESS JMP XL.LP LOOP FOR NEXT CHARACTER SPC 1 X.END STA SCR02,I TERMINATE WITH ZERO JMP XLATE,I EXIT HED GLINE -- GET NEXT SOURCE LINE *** GLINE -- GET NEXT SOURCE LINE * * CALLING SEQUENCE - * JSB GLINE * * EXIT CONDITIONS - * 1. A-REG POINTS TO LINE BUFFER + 4 (START OF LINE). * 2. CODES FOR EOR, ETC. ARE: * 0 - NILL * 1 - EOR * 2 - EOF * 3 - EOI * (FOR AN EXPLANATION OF THE SENSE IN WHICH * EOR/EOF/EOI ARE USED, CONSULT ANY CDC SCOPE * REFERENCE MANUAL.) * 3. THE B-REG CONTAINS THE LINE STATUS. * * NOTE - THIS ROUTINE FORCES AN EOF RETURN BEFORE AN * EOI RETURN. * * NOTE - SCRATCH CELLS #01-#04 ARE USED. * *** SPC 5 GLINE NOP ENTRY/EXIT SPC 1 LDA G.EOF FORCE-EOF FLAG SET? SZA,RSS . JMP GLN.1 NO SPC 1 CLA GET A ZERO STA G.EOF AND CLEAR THE FORCED-EOF FLAG LDB D.3 RETURN WITH CODE FOR EOI JMP GLF.1 EXIT SPC 1 GLN.1 LDA URED CHECK SOURCE OF TEXT SLA CARD READER? JMP GL.CR YES RAR,SLA PAPER TAPE? JMP GL.PT YES RAR,SLA MAG. TAPE LU# 1? JMP GLMT1 YES RAR,SLA MAG. TAPE LU# 2? JMP GLMT2 YES RAR,SLA LS TRACKS? JMP GL.LS YES RAR,SLA CONSOLE? JMP GL.CO YES SKP * CARD READER SPC 1 GL.CR LDA CR.LU FETCH CARD READER LU# JSB GREAD READ A CARD JMP GFTR0 GO FORCE TRAILING ZERO SPC 1 * PAPER TAPE SPC 1 GL.PT LDA PTRLU FETCH THE PAPER TAPE READER LU# JSB GREAD READ A LINE SPC 1 AND O.40 TEST FOR END OF TAPE (BIT #5) SZA WAS IT SET? JMP GFEOF GO FORCE EOF RETURN IF TRUE JMP GFTR0 ELSE GO FORCE TRAILING ZERO SPC 1 * MAGNET@IC TAPE SPC 1 GLMT1 LDA TPDF1 FETCH LU POINTER RSS GLMT2 LDA TPDF2 FETCH LU POINTER STA TP.LU STORE POINTER SPC 1 LDA TP.LU,I FETCH LU# FOR TAPE JSB GREAD READ A RECORD SPC 1 AND O.200 ISOLATE EOF STATUS BIT SZA,RSS EOF ON TAPE? JMP GFTR0 NO -- GO FORCE TRAILING ZERO SPC 1 GFEOF LDB D.2 SET EOF STATUS JMP GLF.1 EXIT PROPERLY SPC 1 GFTR0 LDA LNDEF FORCE TRAILING ZERO ADA B CLB GET A ZERO STB A,I APPEND IT TO THE LINE JMP GLEOF GO TEST FOR EOF SPC 1 * LS TRACKS ON DISC SPC 1 GL.LS LDA LNDEF READ LS TRACKS LDB D.70 LENGTH OF LINE BUFFER JSB RDISC JMP GFEOF EOF RETURN ADDRESS SPC 1 JMP GLEOF GO CHECK FOR LOGICAL EOF SPC 1 * CONSOLE SPC 1 GL.CO LDA CSILU FETCH CONSOLE INPUT LU# IOR O.400 MERGE ECHO BIT JSB GREAD READ A LINE JMP GFTR0 GO FORCE TRAILING ZERO SPC 1 * TEST FOR LOGICAL EOR/EOF SPC 1 GLEOF LDB LNDEF DELETE TRAILING BLANKS JSB NBLK2 SPC 1 CLB CLEAR EXIT FLAG LDA G.DLR '$' CARDS RECOGNIZED? SZA . JMP GLF.0 NO LDA LNBF1 FETCH FIRST 2 CHARS CPA AS.$M MODIFY INPUT DEVICE? JMP GLCID YES CPA AS.$D CHECK FOR EOR INB SET FLAG CPA AS.$F CHECK FOR EOF LDB D.2 SET FLAG CPA AS.$E CHECK FOR EOI JMP GLF0A YES GLF.0 LDA LNBF1 FETCH FIRST 2 CHARS CPA AS.$$ CHECK FOR FORCED-EOI RSS . JMP GLF.1 NOT EOI SPC 1 GLF0A LDB D.3 READY EOI STATUS LDA D.2 WAS PREVIOUS LINE AN EOF? CPA GLSBR . JMP GLF.1 YES -- EXIT LDB D.2 NO -- RETURN EOF STATUS CLA,INA AND SET THE FORCED-EOF FLAG STA G.EOF . DONE SPC 1 GLF.1 ISZ LNCNT INCREMENT LINE COUNT LDA LNDEF EXIT WITH A-REG POINTING TO LINE * (START OF LINE BUFFER + 4) STB GLSBR SAVE LINE STATUS JMP GLINE,I EXIT SPC 1 GLCID LDA URDM5 READ FROM ? JSB S.OUT JSB S.IN8 GET RESPONSE SPC 1 LDA UCRET SAVE U.CON RETURN FLAG STA G.UCR . CLB INHIBIT U.CON RETURN STB UCRET . SZA IS UTERM ON-LINE? STB SIN!! YES -- DISABLE "!!" RECOGNITION SPC 1 JSB U.RED EVALUATE RESPONSE SPC 1 LDA G.UCR RESTORE U.CON RETURN STATUS STA UCRET . CLA,INA ENABLE "!!" RECOGNITION STA SIN!! . SPC 1 JMP GLN.1 GO READ ANOTHER LINE SPC 5 *** GREAD -- READ A LINE * * ENTRY: A-REG CONTAINS THE DEVICE LU# SPC 1 GREAD NOP ENTRY/EXIT SPC 1 STA GR.LU STORE LU# INTO EXEC CALL SPC 1 JSB EXEC CALL UP RTE DEF *+5 RETURN ADDRESS DEF D.1 READ CODE (1) DEF GR.LU DEVICE LU# DEF LNBF1 BUFFER LOCATION DEF D.70 BUFFER LENGTH SPC 1 JMP GREAD,I EXIT SPC 5 * LOCAL STORAGE SPC 1 GR.LU BSS 1 LU# STORAGE FOR GREAD G.UCR BSS 1 TEMPORARY STORAGE FOR UCRET G.DLR DEC 0 =1 IF ALL '$' EXCEPT '$$' ARE TO * BE IGNORED. GLSBR BSS 1 STORAGE OF LINE STATUS IN B-REG G.EOF DEC 0 =1 IF EOF RETURN FORCED LNCNT DEC 0 LINE COUNT LNDEF DEF LNBF1 BSS 4 LINE BUFFER LNBF1 BSS 70 . DEC 0 END OF LINE BUFFER HED OLINE -- OUTPUT A LINE *** OLINE -- OUTPUT A LINE * * CALLING SEQUENCE - * LDA PNTR POINTER TO START OF LINE (LINE BUFFER + 4) * LDB LSTAT STATUS OF THE LINE (NILL/EOR/EOF/EOI) * SEE GLINE FOR SPECIFICATIONS. * JSB lOLINE * * NOTE - LINE MUST TERMINATE WITH A ZERO WORD. * * NOTE - SCRATCH CELLS #01-#03 ARE USED. * *** SPC 5 OLINE NOP ENTRY/EXIT SPC 1 STB LSTAT SAVE LINE STATUS STA BFADR SAVE BUFFER ADDRESS SPC 1 ADA D.M4 ALLOW FOR LINE COUNT STA BFADR+1 AND STORE INTO SAVE AREA SPC 1 LDA UWRT ARE WE JUST DUMPING? CPA D.64 . JMP OLN.7 YES SKP LDA NUMLS NUMBERED LISTING REQUESTED? SZA,RSS . JMP OL.NN NO -- DON'T BOTHER TO CONSTRUCT SPC 1 * PREFIX LINE WITH COUNT, IN FORM " 0000 " SPC 1 CLB FORM DOUBLE-REGISTER QUANTITY LDA LNCNT . DONE DIV D.10 STB SCR01 SAVE UNITS CLB DIV D.10 STB SCR02 SAVE TENS CLB DIV D.10 1000'S IN A-REG, 100'S IN B-REG SPC 1 ADA D.M9 PREVENT THOUSANDS OVERFLOW SSA,RSS . LDA D.M9 . ADA D.9 . DONE SPC 1 IOR LBLNK ADD UPPER BLANK ADA ZERO AND ASCII ZERO OFFSET STA BFADR+1,I ADD TO LINE BUFFER ISZ BFADR+1 INCREMENT STORE ADDRESS BLF,BLF HUNDREDS TO UPPER BYTE POSITION ADB SCR02 ADD TENS ADB ZERO2 AND ASCII ZERO OFFSET STB BFADR+1,I ADD TO LINE BUFFER ISZ BFADR+1 INCREMENT LINE BUFFER POINTER 6 LDA SCR01 FETCH UNITS ADA ZERO ADD ASCII ZERO OFFSET ALF,ALF MOVE BYTE TO UPPER HALF IOR BLANK MERGE IN A BLANK IN LOWER BYTE STA BFADR+1,I ADD TO LINE BUFFER SPC 1 OL.NN LDA BFADR RESET THE BUFFER POINTER ADA D.M4 TO POINT TO THE START OF THE STA BFADR+1 AUGMENTED LINE IMAGE ADA D.3 LDB BLNK2 ADD 2 BLANKS FOR SINGLE-SPACING STB A,I TO THE LINE BUFFER SKP * LINE PRINTER SPC 1 LDA UWRT WHERE DO WE WRITE? _q SLA,RSS LINE PRINTER? JMP OL.PT NO SPC 1 JSB CLSTS CHECK LINE STATUS JMP OL.PT EOF/EOI -- SKIP PRINTING SPC 1 LDB LP.SS SINGLE-SPACING? LDA BFADR ADJUST BUFFER POINTER ACCORDINGLY SZB . ADA D.M1 BACK OFF FOR SINGLE-SPACING LDB NUMLS NUMBERED LISTING? SZB . ADA D.M4 BACK OFF MORE FOR NUMBERING STA BFADR STORE FOR USE IN EXEC CALL SPC 1 LDA BFADR,I GET CARRIAGE CONTROL CHAR ALF,ALF MOVE TO BOTTOM OF A-REG AND O.8BT AND THROW AWAY THE REST STA CRCON SAVE THE CHARACTER SPC 1 CPA ASTK *? JMP OLPRN GO PRINT CPA BLANK BLANK? JMP OLPRN GO PRINT CPA PLUS +? RSS JMP OLN.1 NO SPC 1 LDB ASTK CHANGE + TO * SPC 1 LDA BFADR,I REPLACE THE CARRIAGE CONTROL AND O.8BT . KEEP JUST THE SECOND CHARACTER BLF,BLF . SHIFT 1ST CHAR TO TOP BYTE IOR B . MERGE STA BFADR,I . DONE JMP OLPRN GO PRINT THE LINE SPC 1 OLN.1 CLB GET A ZERO: I/O FUNCTION CODE CPA ZERO 0? CLB,INB SKIP AN ADDITIONAL LINE CPA ASC.1 1? CCB PAGE EJECT CPA ASC.2 2? LDB D.59 NEXT 1/2 PAGE CPA ASC.4 4? LDB D.60 NEXT 1/4 PAGE CPA ASC.7 7? CCB PAGE EJECT CPA MINUS -? LDB D.3 SKIP THREE LINES CPA ASC.X X? LDB D.65 SUPPRESS AUTOMATIC PAGE EJECT CPA ASC.Y Y? SPC 1 LDB D.64 RESTORE AUTOMATIC PAGE EJECT LDA BFADR,I CHANGE CARRIAGE CONTROL TO BLANK AND O.8BT KEEP JUST THE SECOND CHARACTER IOR LBLNK ADD THE LEADING BLANK STA BFADR,I SZB,RSS WAS IT A RECOGNIZED FUNCTION CODE JMP OLPRN GO PRINT THE LINE IF NOT SPC 1  STB SCR02 OTHERWISE, ISSUE AN I/O FUNCTION LDA O1100 CALL. CONSTRUCT CONTROL WORD. IOR LP.LU MERGE IN LINE PRINTER LU# STA SCR03 SPC 1 JSB EXEC CALL RTE: I/O CONTROL DEF *+4 RETURN ADDRESS DEF D.3 CONTROL CODE (3) DEF SCR03 CONTROL WORD DEF SCR02 CONTROL FUNCTION VALUE SPC 1 OLPRN LDA BFADR COMPUTE LINE LENGTH 6 STA OLP.1 STORE ADDRESS JSB LNLEN GET LINE LENGTH INTO SCR01 SPC 1 JSB EXEC CALL RTE TO PRINT THE LINE DEF *+5 RETURN ADDRESS DEF D.2 WRITE CODE (2) DEF LP.LU LINE PRINTER LU# OLP.1 BSS 1 BUFFER ADDRESS DEF SCR01 BUFFER LENGTH SPC 1 LDA BFADR,I RESTORE THE ORIGINAL CARRIAGE AND O.8BT CONTROL CHARACTER TO THE LINE LDB CRCON FETCH IT BLF,BLF SHIFT TO UPPER BYTE POSITION IOR B MERGE INTO THE FIRST WORD STA BFADR,I AND STORE BACK INTO THE LINE SPC 1 LDA BFADR+1 RESET LINE BUFFER POINTER ADA D.4 . STA BFADR . DONE SPC 1 SKP * PAPER TAPE SPC 1 OL.PT LDA UWRT PAPER TAPE PUNCH SPECIFIED? RAR,SLA YES? RSS . JMP OLN.2 NO SPC 1 JSB CLSTS CHECK LINE STATUS JMP OL.P1 EOF/EOI -- OUTPUT TRAILER SPC 1 LDA BFADR FETCH LINE ADDRESS STA OLPBF STORE INTO CALLING SEQUENCE JSB LNLEN GET LINE LENGTH INTO SCR01 SPC 1 JSB EXEC CALL UP RTE DEF *+5 RETURN ADDRESS DEF D.2 WRITE CODE (2) DEF PTPLU PAPER TAPE PUNCH LU# OLPBF BSS 1 TEXT BUFFER ADDRESS DEF SCR01 LENGTH OF TEXT JMP OLN.2 GO CHECK OTHER DEVICES SPC 1 OL.P1 LDA O1000 MERGE TRAILER BIT IOR PTPLU WITH THE PUNCH LU# STA SCR01 STORE FOR RTE CALL SPhC 1 JSB EXEC CALL RTE TO GET TO THE DRIVER DEF *+3 RETURN ADDRESS DEF D.3 I/O CONTROL CODE (3) DEF SCR01 FUNCTION SPECIFICATION SKP * MAGNETIC TAPE SPC 1 OLN.2 LDA UWRT PRINT THE LINE ELSEWHERE? RAR MOVE 1 BIT DOWN CLB CLEAR LU POINTER RAR,SLA MAG. TAPE LU# 1? LDB TPDF1 FETCH LU POINTER RAR,SLA MAG. TAPE LU# 2? LDB TPDF2 FETCH LU POINTER SZB,RSS IS MAG. TAPE SPECIFIED? JMP OLN.4 NO SPC 1 OLN2A STB TP.LU STORE LU POINTER SPC 1 JSB CLSTS CHECK LINE STATUS JMP OLN.3 EOF/EOI -- WRITE PHYSICAL EOF SPC 1 LDA BFADR FETCH LINE ADDRESS STA OLTBF STORE INTO CALLING SEQUENCE JSB LNLEN GET LINE LENGTH SPC 1 LDA O1000 CONSTRUCT I/O CONTROL WORD IOR TP.LU,I MERGE LU# AND BINARY I/O BIT STA SCR02 SPC 1 JSB EXEC CALL UP RTE DEF *+5 RETURN ADDRESS DEF D.2 WRITE CODE (2) DEF SCR02 CONTROL WORD OLTBF BSS 1 TEXT BUFFER ADDRESS DEF SCR01 LENGTH OF TEXT SPC 1 JMP OLN3A GO CHECK FURTHER SPC 1 OLN.3 LDA O.100 WRITE PHYSICAL EOF TO TAPE IOR TP.LU,I MERGE IN THE TAPE LU# STA SCR01 SPC 1 JSB EXEC CALL RTE FOR PROCESSING DEF *+3 RETURN ADDRESS DEF D.3 I/O CONTROL CODE (3) DEF SCR01 CONTROL WORD SPC 1 OLN3A LDA TP.LU CHECK FOR BOTH MAGNETIC TAPES CPA TPDF1 BEING SPECIFIED JMP OLN.4 NO -- JUST 1 LDA UWRT IS MT1 ALSO SPECIFIED? RAR,RAR . SLA,RSS . YES? JMP OLN.4 NO LDB TPDF1 YES -- GO MAKE THE ROUNDS AGAIN JMP OLN2A SKP * LS TRACKS ON DISC SPC 1 OLN.4 LDA UWRT CHECK FOR LS TRACKS RRR 4 MOVE BIT DOWN SLA,RSS YES? :JMP OLN.6 NO SPC 1 JSB CLSTS CHECK LINE STATUS JMP OLN.5 EOF/EOI -- END-FILE ON DISC SPC 1 LDA BFADR ADDRESS OF BUFFER JSB WDISC GO WRITE THE DISC SPC 1 RSS SPC 1 OLN.5 JSB EDISC WRITE EOF TO DISC SPC 5 * CONSOLE SPC 1 OLN.6 LDA UWRT CHECK FOR CONSOLE RRR 5 MOVE BIT DOWN SLA,RSS YES? JMP OLN.7 NO -- EXIT SPC 1 JSB CLSTS CHECK LINE STATUS JMP OLN.7 EOF/EOI -- DO NOT PRINT SPC 1 LDA BFADR ADDRESS OF BUFFER LDB NUMLS NUMBERED LISTING? SZB . ADA D.M4 YES -- CORRECT LINE BUFFER PNTR JSB S.OUT SPC 1 OLN.7 LDB LSTAT EXIT WITH LINE STATUS IN B-REG JMP OLINE,I EXIT SKP *** CLSTS -- CHECK LINE STATUS * * CALLING SEQUENCE - * JSB CLSTS * ... RETURN IF EOF/EOI * ... RETURN IF NILL/EOR * *** SPC 1 CLSTS NOP ENTRY/EXIT SPC 1 LDB LSTAT FETCH LINE STATUS CPB D.1 EOR? RSS YES SZB,RSS EOF/EOI? ISZ CLSTS NO JMP CLSTS,I EXIT SPC 5 * LOCAL STORAGE SPC 1 LBLNK OCT 020000 LEFT-BYTE ASCII BLANK SPC 1 BFADR BSS 2 STORAGE FOR LINE ADDRESSES LSTAT DEC 0 LINE STATUS FLAG CRCON BSS 1 CARRIAGE CONTROL CHARACTER LP.SS DEC 0 NONZERO IF SINGLE SPACING FORCED NUMLS DEC 0 NONZERO IF NUMBERED LISTING * DESIRED. HED LNLEN -- COMPUTE LINE LENGTH *** LNLEN -- COMPUTE LINE LENGTH * * CALLING SEQUENCE - * LDA PNTR POINTER TO FIRST WORD OF LINE * JSB LNLEN * * EXIT CONDITIONS - * 1. SCR01 CONTAINS THE LINE LENGTH, NOT INCLUDING * THE TRAILING ZERO WORD. * 2. THE A-REG POINTS TO THE TRAILING ZERO. * *** SPC 5 LNLEN NOP ENTRY/EXIT SPC 1 CLB  GET A ZERO STB SCR01 CLEAR COUNTER LDB A,I FETCH NEXT WORD OF THE LINE SZB,RSS ZERO? JMP LNLEN,I YES -- EXIT INA NO -- MOVE TO NEXT WORD ISZ SCR01 INCREMENT LINE LENGTH JMP *-5 LOOP HED GFSLB -- GET FREE SCRATCH LINE BUFFER HED RWMSG -- READ A WRITE MESSAGE *** RWMSG -- READ A WRITE MESSAGE * * CALLING SEQUENCE - * JSB RWMSG * ... END-OF-BUFFER EXIT * ... EOR/EOF EXIT * ... NORMAL EXIT * * EXIT CONDITIONS - * 1. IF EXIT IS NORMAL, A-REG POINTS TO THE * ASCII LINE IMAGE (LINE BUFFER + 4). * 2. IF EXIT IS EOR/EOF, THE B-REG CONTAINS THE * LINE STATUS CODE (SEE GLINE). * 3. IF THE END-OF-BUFFER EXIT IS TAKEN, THE * CONTENTS OF THE REGISTERS ARE MEANINGLESS. * *** SPC 5 RWMSG NOP ENTRY/EXIT SPC 1 CLA GET A ZERO STA RWERF AND CLEAR THE EOR/EOF FLAG SPC 1 RWM.0 LDA DM135 MAX. BUFFER LENGTH FOR LINE STA SCR02 STORE FOR COUNT-DOWN SPC 1 LDA SCBUF SET UP SCR01 STA SCR01 TO POINT TO THE LINE ORIGIN SPC 1 RWMLP JSB RWGNC GET THE NEXT CHARACTER SPC 1 CPA EOTXT END OF TEXT? JMP RWM.X YES -- EXIT SPC 1 CLB CLEAR ESCAPE-CODE FLAG CPA ESCAP ESCAPE CODE? INB YES -- SET FLAG SPC 1 RWSTO STA SCR01,I STORE THE CHARACTER ISZ SCR02 BUFFER OVERFLOW? JMP RWM.1 NO SPC 1 CLA OVERFLOW -- GET A ZERO STA SCR01,I AND FORCE LINE TERMINATION CCA FORCE OVERFLOW AGAIN STA SCR02 TO LOOP TO END-OF-LINE SZB ESCAPE-CODE FOUND? JMP RWM.E YES -- CHECK FOR END-OF-LINE JMP RWMLP NO -- LOOP FOR NEXT CHAR SPC 1 RWM.1 ISZ SCR01 INCREMENT STORE POINTER SZB ESCAPE CODE? JMP RWM.E YES JMP RWMLP NO -- LOOP FOR NEXT CHARACTER SPC 1 RWM.E JSB RWGNC ESCAPE CODE FOUND; GET NEXT CHAR CPA XBEOL END-OF-LINE? JMP RWM.L CPA XBCR CARRIAGE RETURN (EOL)? JMP RWM.L CPA E1 E1 CODE? JMP RWM.L TREAT AS EOL CPA E2 E2 CODE? JMP RWM.L TREAT AS EOL CPA E3 E3 CODE? JMP RWM.L TREAT AS EOL CPA XBEOR END-OF-RECORD? JMP RWM.R CPA XBEOF END-OF-FILE? JMP RWM.F SPC 1 * AT THIS POINT, THE CODE MUST BE FOR EITHER * BLANK OR ZERO COMPRESSION -- COPY TO DES BUFFER. SPC 1 CLB CLEAR THE ESCAPE-CODE FLAG JMP RWSTO AND GO STORE THE CHARACTER SPC 1 RWM.F LDB D.2 INDICATE EOF LINE STATUS RSS . SPC 1 RWM.R CLB,INB INDICATE EOR LINE STATUS STB RWERF STORE INTO FLAG LDA SCR01 BACKSPACE OVER THE ESCAPE CODE ADA D.M1 . STA SCR01 . DONE SPC 1 JMP RWMLP CONTINUE WITH REST OF THE LINE SPC 1 RWM.L LDA SCR01 END-OF-LINE CODE FOUND -- ADA D.M1 REPLACE THE LAST ESCAPE-CODE CLB WITH A ZERO TO INDICATE STB A,I INTERNAL END-OF-LINE SPC 1 LDB RWERF CHECK NOW FOR EOR/EOF SZB,RSS CONTINUE IF NOT EITHER JMP RWM.2 . SPC 1 ISZ RWMSG INCREMENT TO EOR/EOF RETURN RWM.X LDA RWRMS SET A-REG TO DUMMY EOR LINE LDB RWERF SET B-REG TO EOR/EOF STATUS JMP RWMSG,I EXIT SPC 1 RWM.2 LDA SCR01 IS THIS A NULL LINE? CPA SCBUF . JMP RWM.0 YES -- IGNORE IT AND TRY AGAIN SPC 1 JSB XPAND EXPAND ALL BLANK/ZERO COMPRESSION DEF SCBUF+1 SRC DEF RWBUF+5 DES DEF D.135 LENGTH OF DES NOP IGNORE TOO-LONG-LINE WARNING SPC 1 JSB XLATE TRANSLATE FROM EXTERNAL BCD DEF RWBUF+5 SRC ǁ TO ASCII DEF RWBUF+5 DES (SAME AS SRC) DEF EXBAS EXTERNAL BCD-TO-ASCII TABLE SPC 1 JSB PACK PACK UP THE LINE DEF RWBUF+5 SRC DEF RWBUF+5 DES DEF D.70 LENGTH OF DES SPC 1 LDB RWPNT FETCH LINE POINTER JSB NBLK2 DELETE TRAILING BLANKS LDA RWPNT FETCH LINE POINTER AGAIN CLB INDICATE NO SPECIAL STATUS ISZ RWMSG FOR THIS LINE ISZ RWMSG INCREMENT TO THE PROPER RETURN JMP RWMSG,I AND EXIT SPC 5 *** RWGNC -- GET NEXT CHARACTER * EXIT: CHARACTER IN A-REG SPC 1 RWGNC NOP ENTRY/EXIT SPC 1 LDB WMBF2+3 FETCH BYTE FLAG LDA WMBF2+2,I LOAD THE BUFFER WORD SZB LOWER BYTE? ALF,ALF YES -- SWAP TO UPPER POSITION SSA IS THE ESCAPE-CODE BIT SET? JMP RWG.2 YES RWG.1 ALF,ALF SWAP DESIRED BYTE TO BOTTOM AND O.7BT MASK OFF THE REST OF THE WORD CMB FLIP BYTE FLAG SZB,RSS INCREMENT BUFFER POINTER? ISZ WMBF2+2 YES. STB WMBF2+3 SAVE BYTE FLAG JMP RWGNC,I EXIT SPC 1 RWG.2 ISZ RWESC WAS PRECEEDING CHAR = "ESCAPE"? RSS NO JMP RWG.1 YES -- RETURN THE CHAR NOW CCA SET "ESCAPE" CHAR FOUND FLAG STA RWESC . LDA ESCAP RETURN WITH AN ESCAPE CHARACTER JMP RWGNC,I EXIT SPC 5 * LOCAL STORAGE SPC 1 RWERF DEC 0 EOR/EOF FLAG WORD RWPNT DEF RWBUF+5 RWESC DEC 0 ESCAPE-CHAR FLAG SPC 1 RWBUF DEF *+1 BSS 140 DEC 0 END OF LINE SPC 1 SUP SPC 1 RWRMS DEF *+6 BSS 5 PSEUDO EOR MESSAGE ASC 3,$DATA DEC 0 END OF MESSAGE SPC 1 UNS HED WRMSG -- WRITE A READ MESSAGE *** WRMSG -- WRITE A READ MESSAGE * * CALLING SEQUENCE - * LDA PNTR POINTER TO (ASCII) LINE BUFFER + 4 * LDB LSTAT STATUS OF LINE (NILL/EOR/EOF/EOI) * JSB WRMSG * ... EXIT IF BUFFER NOW FULL * ... NORMAL RETURN ADDRESS * *** SPC 5 WRMSG NOP ENTRY/EXIT SPC 1 STA WRPNT SAVE LINE POINTER STB WRLST SAVE LINE STATUS SPC 1 SZB NORMAL LINE (NOT EOR/EOF)? JMP WRM.E NO -- PROCESS AS SPECIAL CASE SPC 1 JSB SPRED SPREAD APART THE LINE WRPNT BSS 1 SRC DEF SCBUF+1 DES DEF D.81 LENGTH OF DES SPC 1 JSB XLATE TRANSLATE ASCII TO EXTERNAL BCD DEF SCBUF+1 SRC DEF SCBUF+1 DES (SAME AS SRC) DEF ASEXB ASCII-TO-EXTERNAL BCD TABLE SPC 1 LDA D.M80 READY AN 80-CHAR COUNTER STA SCR01 STORE FOR LATER COUNT-DOWN SPC 1 LDA SCBUF READY POINTER TO EXTERNAL BCD STA SCR02 LINE. SPC 1 WRLUP LDB SCR02,I GET NEXT CHARACTER ISZ SCR02 INCREMENT SRC POINTER SZB,RSS END-OF-LINE? JMP WRRBF YES SPC 1 JSB WRANC ADD NEXT CHARACTER TO BUFFER RSS SKIP IF 80 CHARACTERS WRITTEN JMP WRLUP OTHERWISE, LOOP SPC 1 WRRBF LDB SCR01 EOL ALREADY? SZB,RSS . JMP WRPWB+4 YES WRPWB LDB XBSPC PAD-OUT LINE WITH BLANKS JSB WRANC ADD CHARACTER TO BUFFER RSS IF 80 CHARS WRITTEN, EXIT JMP *-3 OTHERWISE, LOOP SPC 1 ISZ RMLEN INCREMENT # OF LINES IN THIS BUF ISZ WRMSG BUMP RTN ADDR IF BUFFER NOT FULL LDA RMLEN IF BUFFER IS FULL, SZA,RSS GO ADD THE TRAILING JMP WRECD ESCAPE CODE SPC 1 JMP WRMSG,I EXIT SPC 1 WRM.E CPB D.3 EOI? JMP WREOI YES LDB ESCAP ADD ESCAPE CHARACTER JSB WRANC TO THE BUFFER NOP IGNORE END-OF-LINE LDA WRLST FETCH LINE STATUS LDB XBEOR ASSUME EOR x CPA D.2 RIGHT? LDB XBEOF WRONG -- EOF LDA D.M80 INITIALIZE 80-CHAR COUNTER STA SCR01 . DONE JSB WRANC ADD CODE TO BUFFER NOP IGNORE END-OF-LINE SPC 1 JMP WRPWB PAD REST OF LINE WITH BLANKS SPC 1 WREOI LDA E2 EOI: CHANGE E-CODE FROM E3 TO E2 STA RMECD SPC 1 WRECD LDB ESCAP ADD TRAILING ESCAPE CODE JSB WRANC . NOP . LDB RMECD . JSB WRANC . NOP . LDB EOTXT ADD END-OF-TEXT BYTE JSB WRANC . NOP . SPC 1 JMP WRMSG,I EXIT THROUGH BUFFER-FULL ADDRESS SKP *** WRANC -- ADD NEXT CHARACTER TO BUFFER * * CALLING SEQUENCE - * LDB CHAR CHARACTER TO ADD TO BUFFER * JSB WRANC * ... RETURN IF 80 CHARS WRITTEN * ... NORMAL RETURN * *** SPC 1 WRANC NOP ENTRY/EXIT SPC 1 LDA RMBYT FETCH BYTE FLAG ELA INTO THE EXTEND BIT SPC 1 SEZ FULL WORD OF CHARACTERS? JMP WRA.1 YES SPC 1 BLF,BLF SWAP TO UPPER BYTE POSITION STB RMWAD,I AND SAVE THE CHARACTER JMP WRA.2 EXIT SPC 1 WRA.1 LDA RMWAD,I FETCH THE UPPER BYTE IOR B AND MERGE IN THE SECOND CHAR STA RMWAD,I STORE INTO BUFFER ISZ RMWAD INCREMENT BUFFER POINTER WRA.2 ISZ SCR01 80TH CHARACTER? ISZ WRANC NO -- INCREMENT TO NORMAL EXIT SPC 1 CME FLIP THE BYTE SWITCH ERA AND SAVE IT STA RMBYT . DONE SPC 1 JMP WRANC,I EXIT SPC 5 * LOCAL STORAGE SPC 1 WRLST BSS 1 LINE STATUS STORED HERE HED ASBIN -- ASCII TO BINARY CONVERSION *** ASBIN -- ASCII TO BINARY CONVERSION * * CALLING SEQUENCE - * LDA D.0 (OR D.1) DECIMAL (OCTAL) CONVERSION * LDB PNTR POINTER TO SRC BUF (1 CHAR/WORD) * JSB ASBIN * DEF STORE LOCATION TO STORE VALUE * ... END-OF-LINE RETURN POINT * ... NORMAL RETURN ADDRESS * * GENERAL COMMENTS - * CONSECUTIVE CHARS ARE CONVERTED UNTIL A NON- * DIGIT IS FOUND. LEADING BLANKS ARE SKIPPED. * * EXIT CONDITIONS - * 1. A-REG IS ZERO. * 2. SCR01 AND B-REG POINT TO THE LAST CHAR * 3. SCR02 CONTAINS THE # OF DIGITS CONVERTED. * * NOTE - LEADING - OR + SIGNS ARE HANDLED PROPERLY * * NOTE - SCRATCH CELLS #01-#07 ARE USED. * *** SPC 5 ASBIN NOP ENTRY/EXIT SPC 1 STA ASJMP SAVE CONVERSION MODE STB SCR01 STORE POINTER TO SRC BUF LDB ASBIN,I GET STORE ADDRESS STB SCR03 SAVE IT. ISZ ASBIN INCREMENT TO END-OF-LINE RETURN SPC 1 LDA D.M7 INITIALIZE OCTAL CONVERSION LIMIT STA SCR06 . DONE SPC 1 CLA INITIALIZE VALUE TO 0.0 STA SCR02 SET # DIGITS CONVERTED TO ZERO STA SCR05 SET ASSUMED SIGN OF RESULT TO + JMP *+2 JUMP INTO LOOP SPC 1 ISZ SCR01 MOVE TO NEXT CHARACTER LDB SCR01,I FETCH NEXT CHAR CPB BLANK IS IT A BLANK? JMP *-3 YES -- LOOP SKP * HANDLE LEADING - OR + SIGN SPC 1 LDB SCR01,I GET FIRST NONBLANK CHARACTER ADB O.M53 SUBTRACT 53B (ASCII +) SZB,RSS CHECK FOR MATCH JMP A.INC YES - FOUND LEADING + ADB D.M2 NOT + ; CHECK FOR - SZB CHECK FOR MATCH JMP ASLUP NOT + OR - ; GO BEGIN CONVERSION CCB CHANGE SIGN TO '-' STB SCR05 . DONE SPC 1 A.INC ISZ SCR01 INCREMENT PAST + OR - SIGN SPC 1 * LOOP OVER CHARACTERS IN SRC BUFFER SPC 1 ASLUP LDB SCR01,I GET CHARACTER ADB O.M72 SUBTRACT 72B SSB,RSS POSITIVE? JMP A.XIT YES -- DEFINITELY NOT A DIGIT ADB O.12 ADD 12B SSB FOR VALID DIG5IT, RESULT SHOULD BE JMP A.XIT NON-NEGATIVE. JMP IF <0. SPC 1 * VALID DIGIT IN B-REG SPC 1 STB SCR04 SAVE DIGIT FOR NOW ISZ SCR02 INCREMENT # OF DIGITS CONVERTED SPC 1 LDB ASJMP CHECK CONVERSION MODE SZB,RSS DECIMAL? JMP AS.10 YES -- JUMP TO PROCESS SPC 1 * REST OF CONVERSION (OCTAL) SPC 1 LDB SCR04 RECLAIM DIGIT ADB O.M10 CHECK FOR ILLEGALITY SSB,RSS JMP A.XIT EXIT ON 8/9 ISZ SCR06 LIMIT OF SIX DIGITS RSS JMP A.XIT JUMP IF THIS IS THE SEVENTH SPC 1 ALF,RAR SHIFT VALUE LEFT 3 (*8) ADA SCR04 ADD IN NEW DIGIT JMP A.INC LOOP FOR NEXT CHARACTER SPC 1 * REST OF CONVERSION (DECIMAL) SPC 1 AS.10 ALS OLD VALUE *2 STA SCR07 SAVE ALS,ALS OLD VALUE *2 *2 *2 (*8) ADA SCR07 OLD VALUE *10 IN A-REG NOW ADA SCR04 ADD NEW DIGIT JMP A.INC LOOP FOR NEXT CHARACTER SPC 1 * EXIT -- CHANGE SIGN IF NECESSARY FIRST SPC 1 A.XIT LDB SCR05 GET SIGN FLAG SZB IS IT NEGATIVE? CMA,INA YES -- SO COMPLEMENT RESULT LDB SCR02 DO NOT STORE THE NUMBER IF NO SZB DIGITS WERE CONVERTED. STA SCR03,I STORE IT LDB SCR01 SET B-REG POINTING TO LAST CHAR LDA B,I EXAMINE THE LAST CHAR SZA IF IT IS NONZERO, ISZ ASBIN INCREMENT TO THE NORMAL RETURN CLA EXIT WITH A-REG ZEROED JMP ASBIN,I . DONE SPC 5 * LOCAL DATA SPC 1 ASJMP BSS 1 FLAG FOR DECIMAL/OCTAL CONVERSION HED BINAS -- BINARY TO ASCII CONVERSION *** BINAS -- BINARY TO ASCII CONVERSION * * CALLING SEQUENCE - * LDA D.0 (OR D.1) DECIMAL (OCTAL) CONVERSION * LDB PNTR POINTER TO NEXT FREE WORD OF DES * JSB BINAS * DEF VALUE ADDRESS OF VALUE TO BE CONVERTED * l ... RETURN LOCATION * * ACTION - * CONVERTED VALUE IS PACKED, 1 CHAR/WORD, IN THE * DES ARRAY WITH NO LEADING OR TRAILING BLANKS. * IF CONVERSION WAS OCTAL, A SUFFIX OF "B" IS AP- * PENDED. IN ANY EVENT, A ZERO WORD IS APPENDED * AFTER THE NUMBER. * * EXIT CONDITIONS - * 1. AT LEAST 1 DIGIT HAS BEEN CONVERTED. * 2. # DIGITS CONVERTED IS IN SCR09. COUNT * INCLUDES 1 FOR MINUS SIGN, IF ONE WAS USED. * 3. SCR12 POINTS TO THE LOCATION OF THE LAST * (ZEROED) WORD. * 4. A-REG IS ZERO. * * NOTE - SCRATCH CELLS #01-#12 ARE USED. * *** SPC 5 BINAS NOP ENTRY/EXIT SPC 1 STA SCR07 SAVE MODE STB SCR12 SAVE POINTER TO DES ARRAY SPC 1 LDB BINAS,I GET VALUE TO CONVERT LDB B,I . DONE STB SCR08 STORE VALUE TEMPORARILY ISZ BINAS INCREMENT TO RETURN LOCATION SPC 1 CLB GET A ZERO STB SCR09 SET DIGIT COUNT TO ZERO STB SCR10 SIGN OF VALUE = + SPC 1 LDB SCR00 GET POINTER TO SCRATCH AREA STB SCR11 AND STORE FOR LATER USE SPC 1 SZA,RSS DECIMAL CONVERSION REQUESTED? JMP BI.10 YES SPC 1 * OCTAL CONVERSION SPC 1 LDA SCR08 GET VALUE ONCE MORE BI.LP CLB CLEAR B RRR 3 DIGIT TO B-REG, BITS 15-13 BLF,RBR MOVE TO BITS 2-0 ADB ZERO ADD ASCII OFFSET STB SCR11,I STORE INTO ARRAY SPC 1 ISZ SCR11 BUMP STORE POINTER SPC 1 ISZ SCR09 INCREMENT DIGIT COUNTER SPC 1 SZA ARE WE DONE YET? JMP BI.LP NO -- LOOP JMP B.MOV YES -- MOVE CHARS TO DESTINATION SPC 1 * DECIMAL CONVERSION SPC 1 BI.10 LDB SCR08 FETCH VALUE NOW SSB,RSS IS VALUE POSITIVE? JMP *+6 YES ADB D.M1 CONVERT TO POSITIVE NUMBER CMB . AND STB SCR08 . STORE IT BACK LDB D.M1 CHANGE SIGN TO - STB SCR10 . DONE SPC 1 CLB CONSTRUCT DOUBLE-REGISTER LDA SCR08 VALUE SPC 1 * LOOP OVER EACH DIGIT POSITION SPC 1 B1.LP DIV D.10 DIVIDE BY 10 ADB ZERO ADD ASCII ZERO TO REMAINDER STB SCR11,I STORE THE DIGIT SPC 1 ISZ SCR11 INCREMENT STORE POINTER ISZ SCR09 INCREMENT DIGIT COUNT CLB READY DOUBLE ACCUMULATOR SZA FINISHED? JMP B1.LP NO - LOOP BACK SPC 1 LDA SCR10 CHECK SIGN OF VALUE SZA,RSS WAS IT POSITIVE? JMP B.MOV YES -- GO MOVE CHARS TO DES LDB MINUS NO - ADD <-> TO CONVERSION ISZ SCR11 INCREMENT STORE POINTER STB SCR11,I ADD MINUS SIGN ISZ SCR11 INCREMENT STORE POINTER AGAIN ISZ SCR09 INCREMENT COUNTER OF DIGITS SPC 1 B.MOV LDB SCR11 PUT PNTR INTO B-REG ADB D.M1 CORRECT FOR 1-CHAR OFFSET LDA B,I FETCH CHARACTER STA SCR12,I MOVE IT TO DES ISZ SCR12 BUMP PNTR TO DES CPB SCR00 END OF DIGITS? RSS YES JMP B.MOV+1 NO -- LOOP SPC 1 LDA ASC.B READY AN ASCII "B" LDB SCR07 WAS CONVERSION OCTAL? SZB,RSS . JMP *+3 NO STA SCR12,I YES -- APPEND THE "B" ISZ SCR12 AND INCREMENT DES PNTR SPC 1 CLA GET A ZERO STA SCR12,I APPEND IT TO THE DES ARRAY SPC 1 JMP BINAS,I EXIT HED CMBLK -- ADD <, > TO LINE *** CMBLK -- ADD <, > TO LINE * * CALLING SEQUENCE - * JSB CMBLK * * ACTION - * WHEN CALLED IMMEDIATELY AFTER A CALL TO BINAS, * CMBLK APPENDS THE TWO CHARACTERS <,> AND < > TO * THE CURRENT LINE. A TRAILING ZERO IS ALSO ADDED. * * EXIT CONDITIONS - * 1. A-REG IS ZERO. * 2. B-REG AND SCR12 POINT TO THE TRAILING ZERO. * *** SPC 5 CMBLK NOP ENTRY/EXIT SPC 1 LDA COMMA GET A COMMA STA SCR12,I ADD IT TO THE LINE ISZ SCR12 INCREMENT WORD POINTER LDA BLANK GET A BLANK STA SCR12,I ADD IT TO THE CURRENT LINE ALSO ISZ SCR12 INCREMENT DES BUFFER POINTER CLA GET A ZERO, AND STA SCR12,I APPEND IT. LDB SCR12 LOAD PNTR INTO B-REG BEFORE EXIT SPC 1 JMP CMBLK,I EXIT HED RDISC -- READ DISC *** RDISC -- READ DISC * * CALLING SEQUENCE - * LDA PNTR POINTER TO DES BUFFER * LDB LENGTH LENGTH OF DES BUFFER * JSB RDISC * ... EOF RETURN * ... NORMAL RETURN * * NOTE - SCRATCH CELLS #01-#04 ARE USED. * *** SPC 5 RDISC NOP ENTRY/EXIT SPC 1 STA SCR01 SAVE BUFFER POINTER ADB D.M1 ALLOW FOR TRAILING ZERO CMB,INB NEGATE FOR USE WITH ISZ STB SCR02 SAVE MODIFIED DES BUF LENGTH SPC 1 LDA FDRDW FIRST TIME? SZA YES? JMP RD.NF NO -- JUMP SPC 1 ISZ FDRDW SET FIRST = .FALSE. CLA GET A ZERO STA SECNO AND INITIALIZE THE SECTOR # CLA,INA READ CODE (1) JSB RWSEC READ IN THE FIRST SECTOR SPC 1 RD.NF JSB RDWRD READ 1 WORD (RECORD PREFIX) ALF,ALF GET RECORD LENGTH SZA,RSS END OF TAPE? JMP RDISC,I YES -- TREAT AS EOF THOUGH SSA END OF FILE? JMP RDISC,I YES -- EXIT THROUGH EOF RETURN SPC 1 CMA,INA SETUP COUNTER FOR USE STA SCR03 WITH ISZ SPC 1 RD.LP JSB RDWRD READ 1 WORD FROM DISC BUFFER STA SCR01,I STORE INTO DES BUFFER ISZ SCR01 INCREMENT DES BUF POINTER ISZ SCR02 INCREMENT # WORDS ALLOWED IN BUF RSS OVERFLOW? JMP RDSKP YES ISZ SCR03 NO, JMP RD.LP CONTINUE SPC 1 RD.ZR CLA GET A ZERO STA SCR01,I AND APPSEND A TRAILING ZERO SPC 1 ISZ RDISC INCREMENT TO NORMAL RETURN ADDR JMP RDISC,I AND EXIT SPC 1 RDSKP ISZ SCR03 SKIP TO END OF RECORD RSS END OF RECORD? JMP RD.ZR YES JSB RDWRD NO -- READ NEXT WORD JMP RDSKP AND LOOP HED RDWRD -- READ WORD FROM DISC BUFFER *** RDWRD -- READ WORD FROM DISC BUFFER * * CALLING SEQUENCE - * JSB RDWRD * * EXIT CONDITIONS - * NEXT WORD IS RETURNED IN THE A-REG * * NOTE - SCRATCH CELL #05 IS USED. * *** SPC 5 RDWRD NOP ENTRY/EXIT SPC 1 LDA SBUFP IS NEXT WORD TO READ CPA SBUFE THE LAST WORD IN THE BUFFER? JMP RDW.1 YES -- INVESTIGATE FURTHER SPC 1 LDA SBUFP,I NO -- FETCH THE WORD ISZ SBUFP INCREMENT BUFFER POINTER JMP RDWRD,I AND EXIT SPC 1 RDW.1 ISZ SECNO INCREMENT THE SECTOR # LDA 1757B FETCH # SECTORS/TRACK CPA SECNO END OF TRACK? JMP RDW.2 YES -- GO PROCESS SPC 1 LDA SBUFP,I SAVE THE LAST WORD STA SCR05 . CLA,INA READ CODE (1) JSB RWSEC READ THE NEXT SECTOR LDA SCR05 FETCH THE WORD BACK JMP RDWRD,I AND EXIT SPC 1 RDW.2 CLA GET A ZERO STA SECNO AND CLEAR THE SECTOR NUMBER SPC 1 LDA SBUFP,I FETCH THE CODE WORD AND O.8BT ISOLATE THE TRACK # STA LSTRK SAVE IT CLA,INA READ CODE (1) JSB RWSEC READ THE FIRST SECTOR OF THE NEW JMP RDWRD+1 TRACK, AND GO FINISH PROCESSING HED RWSEC -- READ/WRITE DISC SECTOR *** RWSEC -- READ/WRITE DISC SECTOR * * CALLING SEQUENCE - * LDA D.1 (D.2) READ (WRITE) 1 DISC SECTOR * JSB RWSEC * * ACTION - * READS INTO (OR WRITES FROM) THE CORE BUFFER * THE DISC SECTOR POINTED TO BY SECNO AND LSTRK, * AND INITIALIZES SBUFP. * *** SPC 5 RWSEC NOP ENTRY/EXIT  SPC 1 STA RWPRM SAVE THE READ/WRITE CODE (1/2) SPC 1 JSB EXEC CALL RTE FOR PROCESSING DEF *+7 RETURN ADDRESS DEF RWPRM READ/WRITE CODE (1/2) DEF D.2 DISC LU# DEF SECBF ADDRESS OF DISC BUFFER DEF D.64 LENGTH (1 SECTOR) DEF LSTRK TRACK NUMBER DEF SECNO SECTOR NUMBER SPC 1 LDA SBUFS INITIALIZE BUFFER POINTER STA SBUFP . DONE SPC 1 JMP RWSEC,I EXIT SPC 5 * LOCAL VARIABLE SPC 1 RWPRM BSS 1 READ/WRITE PARAMETER (1/2) HED WDISC -- WRITE DISC 6 *** WDISC -- WRITE DISC * * CALLING SEQUENCE - * LDA PNTR POINTER TO LINE OF TEXT * JSB WDISC * * NOTE - LINE MUST TERMINATE WITH A ZERO WORD. * *** SPC 5 WDISC NOP ENTRY/EXIT SPC 1 STA WLPNT SAVE POINTER TO LINE SPC 1 JSB LNLEN STORE LINE LENGTH INTO SCR01 LDA SCR01 MOVE TO LOCAL STORAGE STA WLLEN . DONE SPC 1 LDA FDRDW FIRST WRITE? SZA . JMP WDI.1 NO -- JUMP SPC 1 ISZ FDRDW YES -- SET FLAG = .FALSE. CLA GET A ZERO STA SECNO AND INITIALIZE SECTOR NUMBER LDA SBUFS SET BUFFER POINTER UP STA SBUFP SPC 1 JSB EXEC CALL RTE TO RELEASE ALL OWNED DEF *+3 DISC TRACKS DEF D.5 RELEASE CODE (5) DEF D.M1 -1 MEANS RELEASE ALL SPC 1 JSB GETRK GET A TRACK FROM RTE LDA TRACK COPY THE TRACK NUMBER STA LSTRK INTO THE PROPER LOCATION SPC 1 WDI.1 LDA WLLEN FETCH LINE LENGTH ALF,ALF CONSTRUCT RECORD PREFIX STA SBUFP,I STORE INTO DISC BUFFER SPC 1 WDI.2 LDB SBUFP END OF SECTOR? CPB SBUFE . JMP WDI.4 YES -- PROCESS IT SPC 1 ISZ SBUFP INCREMENT BUFFER POINTER WDI.3 LDA WLv(PNT,I FETCH THE NEXT SOURCE WORD SZA,RSS END OF LINE? JMP WDISC,I YES -- EXIT SPC 1 STA SBUFP,I NO -- STORE WORD INTO BUFFER ISZ WLPNT INCREMENT SOURCE BUFFER POINTER JMP WDI.2 AND LOOP SPC 1 WDI.4 LDA SECNO CHECK FOR END-OF-TRACK CONDITION INA NEXT SECTOR # CPA 1757B COMPARE WITH # SECTORS/TRACK JMP WDI.5 END OF TRACK -- GO PROCESS SPC 1 LDA D.2 WRITE CODE (2) JSB RWSEC WRITE OUT THE SECTOR ISZ SECNO INCREMENT TO NEXT SECTOR NUMBER JMP WDI.3 AND LOOP SPC 1 WDI.5 LDA SBUFP,I FETCH THE LAST WORD STA WDTMP AND SAVE IT SPC 1 JSB GETRK GET A TRACK FROM RTE SPC 1 LDA D.2 CONSTRUCT A CODE WORD ALF,ALF FOR LU #2 IOR TRACK POINT TO THE NEW TRACK STA SBUFP,I APPEND CODE WORD TO THE BUFFER SPC 1 LDA D.2 WRITE CODE (2) JSB RWSEC WRITE OUT THE SECTOR SPC 1 CLA GET A ZERO STA SECNO AND CLEAR THE SECTOR NUMBER LDA TRACK MOVE THE NEW TRACK STA LSTRK INTO ITS PROPER POSITION SPC 1 LDA WDTMP FETCH THE LAST WORD STA SBUFP,I ADD IT TO THE BUFFER JMP WDI.2 LOOP SPC 5 * LOCAL STORAGE SPC 1 WLPNT BSS 1 POINTER TO LINE BUFFER WLLEN BSS 1 LENGTH OF LINE WDTMP BSS 1 TEMPORARY USED TO HOLD THE LAST * WORD OF A TRACK HED EDISC -- WRITE END-OF-FILE TO DISC *** EDISC -- WRITE END-OF-FILE TO DISC * * CALLING SEQUENCE - * JSB EDISC * *** SPC 5 EDISC NOP ENTRY/EXIT SPC 1 LDA WDISC HAS WDISC ALREADY BEEN CALLED? SZA,RSS . JMP EDI.2 NO -- GO FAKE THE CALL FIRST SPC 1 EDI.1 CCA SET END-OF-FILE FLAG INTO BUFFER STA SBUFP,I . DONE SPC 1 LDA D.2 WRIHTE CODE (2) JSB RWSEC WRITE THE BUFFER ONTO THE DISC SPC 1 JMP EDISC,I EXIT SPC 1 EDI.2 LDA EDZRO LOAD POINTER TO NULL LINE JSB WDISC CALL WDISC TO SET UP THE PNTRS JMP EDI.1 AND NOW GO WRITE END-OF-FILE SPC 5 * LOCAL STORAGE SPC 1 EDZRO DEF *+1 DEC 0 NULL LINE (ZERO LENGTH) HED GETRK -- GET DISC TRACK FROM RTE *** GETRK -- GET DISC TRACK FROM RTE * * CALLING SEQUENCE - * JSB GETRK * * ACTIONS - * REQUESTS 1 TRACK FROM RTE. IF ONE WAS ASSIGNED, * THE TRACK NUMBER IS PRINTED. OTHERWISE, THE * MESSAGE "WAITING FOR DISC SPACE" IS PRINTED * AND UTERM IS SUSPENDED. * * EXIT CONDITIONS - * TRACK NUMBER IS STORED IN CELL "TRACK". * * NOTE - SCRATCH CELLS #03-#04 ARE USED. * *** SPC 5 GETRK NOP ENTRY/EXIT SPC 1 JSB EXEC CALL RTE FOR A TRACK DEF *+6 RETURN ADDRESS DEF D.4 PRIVATE ALLOCATION CODE (4) DEF TKCON 1 TRACK, NO SUSPENSION DEF TRACK TRACK # STORED HERE DEF SCR03 THROW LU# AWAY DEF SCR04 DITTO FOR # SECTORS/TRACK SPC 1 LDA TRACK WAS TRACK ALLOCATED? SSA,RSS . JMP GTK.1 YES -- GO ISSUE MESSAGE SPC 1 LDA GTKM1 TRACK NOT ALLOCATED -- TELL USER JSB S.OUT JSB PAUSE PAUSE JMP GETRK+1 GO TRY AGAIN SPC 1 GTK.1 CLA DECIMAL CONVERSION LDB GTKBF POINTER TO NEXT CHAR POSITION JSB BINAS BINARY TO ASCII CONVERSION DEF TRACK OF THE TRACK # SPC 1 JSB PACK PACK UP THE LINE DEF GTKBF+1 SRC DEF GTKBF+1 DES DEF D.10 LENGTH OF DES SPC 1 LDA GTKM2 PRINT THE LINE JSB S.OUT SPC 1 LDA GTKBF PRINT THE TRACK NUMBER JSB S.OUT . SPC 1 JMP GETRK,I EXIT SPC 5 * LOCAL STORAGE SPC 1 TKCON OCT 10ӗ0001 1 TRACK, NO SUSPENSION TRACK BSS 1 TRACK NUMBER STORED HERE SPC 1 GTKBF DEF *+1 BSS 10 SUP SPC 1 GTKM1 DEF *+1 ASC 11,WAITING FOR DISC SPACE DEC 0 END OF MESSAGE SPC 1 GTKM2 DEF *+1 ASC 10,ACQUIRED TRACK NO. _ BSS 4 SPACE FOR TRACK NUMBER DEC 0 END OF MESSAGE SPC 1 UNS HED I/O PARAMETER AREA *** I/O PARAMETER AREA * * THIS SECTION CONTAINS THE FLAGS, POINTERS, ETC * USED FOR READING AND WRITING, AS WELL AS THE * LOGICAL UNIT NUMBERS, CHANNEL NUMBERS, AND OTHER * MISCELLANEOUS INFORMATION NEEDED TO PERFORM I/O * CORRECTLY. * *** SPC 5 FDRDW DEC 1 =0 FOR FIRST DISC READ/WRITE SPC 1 SBUFS DEF SECBF PNTR TO START OF SECTOR BUFFER SECBF BSS 100B DISC SECTOR BUFFER SBUFE DEF SECBF+100B-1 PNTR TO END OF SECTOR BUFFER SBUFP BSS 1 PNTR TO NEXT WORD TO READ/WRITE SPC 1 TPDF1 DEF TPLU1 POINTER TO TAPE LU# 1 TPDF2 DEF TPLU2 POINTER TO TAPE LU# 2 SPC 1 TP.LU DEC 0 POINTER TO CURRENT TAPE LU# SPC 1 TPLU1 DEC 8 TAPE DRIVE LU# 1 TPLU2 DEC 12 TAPE DRIVE LU# 2 SPC 1 CSILU DEC 1 CONSOLE INPUT LU# CSOLU DEC 1 CONSOLE OUTPUT LU# SPC 1 CR.LU DEC 7 CARD READER LU# SPC 1 PTRLU DEC 5 PAPER TAPE READER LU# PTPLU DEC 4 PAPER TAPE PUNCH LU# SPC 1 LP.LU DEC 9 LINE PRINTER LU# SPC 1 LSTRK BSS 1 CURRENT TRACK # FOR LS DISC FILE SECNO BSS 1 CURRENT SECTOR NUMBER SPC 1 RCVLU DEC 13 RECEIVE BOARD LU# RCVCH OCT 22 RECEIVE BOARD CHANNEL # SPC 1 XMTLU DEC 14 TRANSMIT BOARD LU# XMTCH OCT 23 TRANSMIT BOARD CHANNEL # HED DVR77 -- MODEM INTERFACE DRIVER *** DVR77 -- MODEM INTERFACE DRIVER * * THIS ROUTINE HANDLES ALL COMMUNICATIONS WITH * THE MODEM INTERFACE. ENTRY POINTS IN THE DRIVER * ARE: * RCV.I INITIATE RECEIVE * RCV.C CONTINUE RECEIVE * XMT.I INITIATE TRANSMISSION * XMT.C CONTINUE TRANSMISSION * * GENERAL NOTES - * 1. ALL CHANNEL INSTRUCTIONS ARE CONFIGURED BY * LOGIN, WHICH ALSO EXECUTES A CLC ON EACH * CHANNEL. * 2. THE INITIAL RETURN CODE IS 2 (ILLEGAL CON- * TROL REQUEST). ALL OTHER RETURNS ARE TO THE * CONTINUATION RETURN POINT IN CIC (CENTRAL INTER- * RUPT CONTROL IN RTE). * 3. STATUS AND OTHER INFORMATION IS TRANS- * FERRED THROUGH LOCAL FLAG WORDS ACCESSED BY * BOTH UTERM AND THIS DRIVER. * 4. THE PRELIMINARY INTERPRETATION OF MESSAGES * (TYPE, WHAT A SUITABLE RESPONSE IS, ETC.) IS * DONE BY THE DRIVER, WHICH IS ALSO RESPONSI- * BLE FOR THE ACTUAL I/O AND INTERFACE CONTROL * AND FOR LONGITUDINAL PARITY CALCULATIONS. * UTERM IS RESPONSIBLE ONLY FOR THE GENERATION * OF READ MESSAGES AND FOR THE PROCESSING OF * WRITE MESSAGES. * 5. THE DRIVER RUNS ASYNCHRONOUSLY (INTERRUPT- * DRIVEN) WITH THE REST OF UTERM. ALL STATUS * FLAGS ARE RESIDENT IN MEMORY, NOT PASSED VIA * RTE CALLING SEQUENCES. INITIAL STARTUP IS * DONE THROUGH RCV.I (SEE "LOGIN" DIRECTIVE * PROCESSING). CHECK COMMENTS BELOW FOR SUB- * SEQUENT DRIVER ACTIONS. * 6. NOTE THAT THE DRIVER ADDS SITE & STATION * ADDRESSES AUTOMATICALLY TO ALL OUTGOING * MESSAGES. * 7. ESCAPE CODES ARE INDICATED BY SETTING BIT #7 * OF THE NEXT CHAR BYTE TO 1. (IN OTHER WORDS, * ESCAPE CHARACTERS ARE NOT PUT INTO THE BUFFER.) * 8. THE DRIVER TOGGLES BIT 15 OF THE SWITCH * REGISTER DURING ITS OPERATION. BIT 15 IS 0 * IF THE DRIVER IS RECEIVING; BIT 15 IS 1 IF * THE DRIVER IS TRANSMITTING. SKP * COMMENTS ON 200 USER TERMINAL COMMUNICATIONS - * * *** LOGIN * INITIALLY, THE CENTRAL SITE SENDS POLLS (OR * POSSIBLY NULL CL/]EAR-WRITES) WITH SITE CODES * VARYING OVER ALL POSSIBILITIES. WHEN A POLL * WITH A SITE CODE MATCHING THAT OF THE TERMINAL * IS RECEIVED, A REJECT RESPONSE IS GIVEN (AN * ACKNOWLEDGE IN THE CASE OF CLEAR-WRITES). THE * CENTRAL SITE THEN SENDS A CLEAR-WRITE CONTAIN- * ING SOME LOGIN MESSAGE, TO WHICH THE TERMINAL * REPLIES WITH AN ACKNOWLEDGE MESSAGE. AT THIS * POINT, THE TERMINAL IS MORE-OR-LESS ON LINE. * THE LOGIN MESSAGE ITSELF MAY NOW BE TRANSMIT- * TED, IN RESPONSE TO A POLL. * * *** GENERAL * FOUR DISTINCT HANDSHAKING SEQUENCES ARE USED * FOR COMMUNICATIONS: DISPLAY, PRINT, CARD READ, * AND SENSE TERMINAL. * THE DISPLAY SEQUENCE IS * AND IS USED BY THE CENTRAL SITE TO TRANSMIT DATA * FOR DISPLAY ON THE TERMINAL CONSOLE. * THE PRINT SEQUENCE IS AND IS USED TO TRANSMIT DATA FOR * PRINTING ON THE TERMINAL LINE PRINTER. * THE CARD READ SEQUENCE IS , * AND IS USED TO TRANSMIT CARD IMAGES. THE CENTRAL * SITE RE-POLLS (WITHOUT AN INTERVENING WRITE) IF * THE READ/E3 WAS INCORRECTLY RECEIVED. * THE SENSE TERMINAL SEQUENCE IS * AND IS USED WHENEVER NO OTHER SEQUENCE IS RUNNING. * NOTE: "SIMULTANEOUS" READ/WRITE IS DONE BY * ALTERNATING BETWEEN THE CARD READ AND PRINT * SEQUENCES, AND IS FULLY UNDER THE CONTROL OF THE * CENTRAL SITE. * * WITH THE ABOVE NOTES IN MIND, ADDITIONAL * INFORMATION MAY BE GAINED FROM READING THE * CDC MANUAL ON THE 200 USER TERMINAL. * *** SKP *** RCV.I -- INITIATE RECEIPT OF DATA * * ACTIONS - * TURNS LINE AROUND TO RECEIVE. * *** SPC 5 RCV.I NOP ENTRY/EXIT SPC 1 LIA 1 CLEAR BIT 15 RAL,CLE,ERA OF THE SWITCH REGISTER OTA 1 . DONE  SPC 1 JSB CWMBP CHECK WRITE MSG BUFFER POINTERS SPC 1 LDA XWD01 SET SYNCH CHARACTER O.O.2 OTA OUT LDA RWD01 SET SYNCH CHARACTER O.I.2 OTA IN LDA RWD02 SET CONTROL WORD O.I.3 OTA IN LDA XWD02 TURN LINE AROUND TO RECEIVE O.O.3 OTA OUT C.O.2 CLC OUT DISABLE XMT INTERFACE INTERRUPTS SPC 1 LDA O.7BT INITIALIZE FOR CHECKING OF STA RPRTY ODD LONGITUDINAL PARITY IN MSG CLA GET A ZERO STA DMBYT SET BYTE POSITION TO "UPPER" STA DERR1 CLEAR ERROR FLAGS STA DERR2 . STA DERR3 . STA DERR4 . DONE STA DMEOM CLEAR END-OF-MESSAGE FLAG STA RCARR CLEAR CARRIER-RECEIVED FLAG STA RSYNC CLEAR SYNCH-DETECTED FLAG STA RESCP CLEAR ESCAPE-CODE RECEIVED FLAG SPC 1 LDA DMSAD SET WORKING ADDRESS STA DMWAD EQUAL TO THE STARTING ADDRESS ADA D.530 COMPUTE LAST VALID MESSAGE BUFFER STA DMLAD ADDRESS AND SAVE IT. SPC 1 RCI.R STC IN,C ENABLE INTERRUPTS S.I.1 EQU RCI.R SPC 1 LDA DRVAL LOAD DRIVER RETURN VALUE CLB GET A ZERO STB DRVAL AND FORCE ZERO RETURN LATER SPC 1 JMP RCV.I,I EXIT SKP *** RCV.C -- CONTINUE RECEIPT OF DATA SPC 5 RCV.C NOP ENTRY/EXIT ISZ RCV.C ALWAYS EXIT THROUGH CONTINUATION SPC 1 * NOTE: ACCORDING TO RTE SPECIFICATIONS, THE * CONTENTS OF EQT1 SHOULD BE CHECKED HERE TO * ENSURE AGAINST PROCESSING A SPURIOUS INTER- * RUPT. HOWEVER, SINCE THIS DRIVER RUNS WITHOUT * THE OFFICIAL COGNIZANCE OF RTE, EQT1 IS ALWAYS * ZERO -- HENCE, NO CHECKING IS PERFORMED. SPC 1 L.I.1 LIA IN GET RECEIVE STATUS STA RSTAT STORE IT AWAY SPC 1 JSB CWMBP CHECK WRITE MSG BUFFER POINTERS SPC 1 LDA RWD01 DEFINE SYNCH CHARACTER O.I.5 OTA IN . SPC 1 L.O.2 LIA OUT IS CLEAR-TO-SEND STILL UP? RAL . SSA . JMP S.I.2 YES -- EXIT SPC 1 CLB,INB WAS CARRIER PREVIOUSLY FOUND? CPB RCARR . JMP RCVC1 YES SPC 1 LDA RSTAT WAS CARRIER JUST ACQUIRED, THEN? RAL,RAL . SSA,RSS . JMP S.I.2 NO -- EXIT STB RCARR YES -- SET CARRIER-RECEIVED FLAG SPC 1 RCVC1 CLB,INB WAS SYNCH PREVIOUSLY ACQUIRED? CPB RSYNC . JMP RCV1B YES SPC 1 LDA RSTAT WAS SYNCH JUST ACQUIRED, THEN? RAL . SSA . JMP R.SYN NO -- RE-ESTABLISH SYNCH HUNT STB RSYNC YES -- SET SYNCH-DETECTED FLAG JMP RCV1B CONTINUE SPC 1 R.SYN LDA RWD02 ISSUE SYNCH HUNT CONTROL O.I.6 OTA IN . JMP S.I.2 SPC 1 RCV1B LDA RWD03 FETCH THE NEXT CONTROL WORD O.I.4 OTA IN AND ISSUE IT TO THE INTERFACE SPC 1 LDB RSTAT CONTINUE CHECKING STATUS BLF,RBR CHECK FOR CARRIER SSB,RSS IS IT STILL THERE? ISZ DERR2 NO -- INCREMENT ERROR FLAG BLF PARITY / TIMING ERRORS? SSB,RSS . JMP RCVC2 NO SPC 1 LDA RSTAT ALLOW PARITY/TIMING ERROR TO AND O.7BT BE IGNORED IFF THIS IS THE CPA SOH FIRST BYTE (SOH) OF THIS RSS MESSAGE. ISZ DERR3 NOT SOH -- INCREMENT ERROR FLAG SPC 1 RCVC2 LDA RCHR2 RIPPLE DOWN THE LAST CHARS STA RCHR3 . LDA RCHR1 . STA RCHR2 . LDA RCHAR . STA RCHR1 . SPC 1 LDA RSTAT GET STATUS + DATA CHARACTER AND O.7BT THROW AWAY STATUS & PARITY BITS STA RCHAR SAVE CHARACTER SPC 1 LDB DERR1 BUFFER UNAVAILABLE/OVERFLOW? SZB NO? JMP RCV1A YES -- SKIP BUFFER STORE SPC 1 * NOTE: THE SYNCH CODE (026B) *MU~ST* BE RECOG- * NIZED (ITS INTERRUPT MAY NOT BE MASKED) BECAUSE * OF THE POSSIBILITY THAT THE MESSAGE PARITY * CHARACTER (MPC) MAY HAPPEN TO BE THAT PARTICULAR * CODE. SPC 1 CPA SYNCH SYNCH CHARACTER? JMP RCV1A YES -- SKIP BUFFER STORE SPC 1 LDB RESCP WAS THE PRECEEDING CHAR "ESCAP"? SZB,RSS . JMP RCVC3 NO IOR BIT.7 YES -- SET BIT #7 JMP RCVC4 AND CONTINUE SPC 1 RCVC3 CPA ESCAP ESCAPE CODE? JMP R.ESC YES -- SET FLAG SPC 1 RCVC4 LDB DMBYT MOVE BYTE INDICATOR ELB TO EXTEND BIT SEZ,RSS UPPER BYTE? ALF,ALF . YES CLB,SEZ LOWER BYTE? LDB DMWAD,I . YES IOR B FORM THE NEXT BUFFER WORD STA DMWAD,I AND ADD IT TO THE BUFFER SPC 1 SEZ READY FOR THE NEXT WORD? ISZ DMWAD YES -- INCREMENT WORKING ADDRESS LDA DMWAD FLAG AN ERROR IF THE BUFFER CPA DMLAD OVERFLOWS (MESSAGE IS TOO LONG) ISZ DERR1 . CME FLIP BYTE SWITCH ERB AND SAVE FOR THE STB DMBYT NEXT INTERRUPT CLA CLEAR THE ESCAPE-CODE FLAG RSS . SPC 1 R.ESC CLA,INA ESCAPE-CODE FOUND: SET FLAG STA RESCP . SPC 1 RCV1A LDA RCHR1 END-OF-TEXT ALREADY RECEIVED? CPA EOTXT . JMP RCV.2 YES -- GO PROCESS MESSAGE SPC 1 LDA RCHAR FETCH CURRENT CHARACTER AGAIN CPA SYNCH SYNCH CHARACTER? JMP *+3 YES -- SKIP PARITY CALCULATION XOR RPRTY NOT SYNCH -- UPDATE PARITY STA RPRTY SPC 1 S.I.2 STC IN,C ENABLE INTERRUPTS JMP RCV.C,I AND EXIT SPC 1 RCV.2 LDA DERR1 ANY PREVIOUS ERRORS? ADA DERR2 . ADA DERR3 . SZA . JMP R.ERR YES SPC 1 LDA RCHAR CHECK LAST CHARACTER (PARITY) CPA RPRTY  AGAINST COMPUTED PARITY RSS AGREE? JMP RERR1 NO SPC 1 LDA DMSAD,I FINAL CHECK: FIRST BYTE SHOULD ALF,ALF BE START-OF-HEADER CODE AND O.7BT . CPA SOH IS IT THE SOH CODE? RSS YES JMP RERR2 NO SPC 1 LDB DMSAD SEPARATE OUT THE SITE ADDRESS LDA B,I . AND O.7BT . STA DMSIT . DONE SPC 1 INB LDA B,I SEPARATE OUT THE STATION ADDRESS ALF,ALF . AND O.7BT . STA DMSTA . DONE SPC 1 LDB F.MSG FIRST RECEIVED MESSAGE? SZB,RSS . JMP R.CON NO -- CONTINUE SPC 1 LDA DMSIT SET THIS SITE'S CODE STA MYSIT TO REFLECT THIS MESSAGE. CLA CLEAR THE "FIRST MSG" FLAG STA F.MSG . DONE CCA SET "LOGIN" FLAG TO .TRUE. STA ULOG . DONE SPC 1 R.CON CCA PRESET STATION MASK TO ALL 1'S STA SAMSK . SPC 1 LDB DMSAD ISOLATE THE CONTROL CODE INB . LDA B,I . AND O.7BT . DONE SPC 1 CPA C.POL POLL? JMP R.POL YES CPA C.ALT ALERT? JMP R.ALT YES CPA C.WRT WRITE? JMP R.WRT YES CPA C.RWR RESET-WRITE? JMP R.WRT YES CPA C.CWR CLEAR-WRITE? JMP R.WRT YES SPC 1 ISZ DERR4 FLAG REASON FOR ERROR RETURN RERR4 ISZ DERR4 . RERR3 ISZ DERR4 . RERR2 ISZ DERR4 . RERR1 ISZ DERR4 . R.ERR LDB M.ERR ERROR REPLY CLA GET A ZERO STA LTMES AND CLEAR THE XMT MSG FLAG JMP R.RBF SPC 1 R.POL LDA LRMES CHECK LAST RECEIVED MESSAGE CLB AFTER RESETTING IT TO SHOW STB LRMES THAT THIS IS A POLL. CPA D.1 WRITE? JMP R.PL2 YES SPC 1 LDA UTRFG LAST MSG = POLL OR ALERT SZA,RS S WAS CONSOLE MESSAGE JUST SEND? JMP R.RD2 YES -- RETRANSMIT IT LDB LTMES WAS THE LAST MSG TRANSMITTED SZB AN AUTO-READ/E3? JMP R.RD3 YES -- RETRANSMIT IT CPA D.M1 IS CONSOLE MSG AVAILABLE? JMP R.RD2 YES -- SEND IT LDA RMRED WAS CARD BUFFER JUST SENT? SZA,RSS . JMP R.RED YES -- RETRANSMIT IT LDB LWECD WAS THE LAST WRITE AN E3? CPB E3 . RSS . YES JMP R.REJ . NO -- SEND REJECT REPLY CPA D.M1 IS CARD BUFFER AVAILABLE? JMP R.RED YES -- TRANSMIT IT JMP R.REJ NO -- REPLY WITH REJECT SPC 1 R.PL2 LDA LWECD GET THE WRITE MSG E-CODE CPA E1 E1? JMP R.PL3 YES CPA E2 E2? JMP R.PL4 YES SPC 1 CCA E-CODE MUST BE E3 CPA UTRFG IS CONSOLE MSG AVAILABLE? JMP R.RD2 YES -- TRANSMIT IT CPA RMRED IS CARD BUFFER AVAILABLE? JMP R.RED YES -- TRANSMIT IT JMP R.REJ NO -- REPLY WITH REJECT SPC 1 R.PL3 CCA IS CONSOLE MSG AVAILABLE? CPA UTRFG . JMP R.RD2 YES -- TRANSMIT IT JMP R.REJ NO -- REPLY WITH REJECT SPC 1 R.PL4 CCA IS CONSOLE MSG AVAILABLE? CPA UTRFG . JMP R.RD2 YES -- TRANSMIT IT SPC 1 R.RD3 LDB M.RD3 SEND AN AUTO-READ/E3 MSG STB LTMES SET FLAG NONZERO JMP R.RBF SPC 1 R.REJ LDB M.REJ REJECT REPLY LDA D.M2 SET MASK TO 177776B STA SAMSK . CLA GET A ZERO STA LTMES AND CLEAR THE XMT MSG FLAG JMP R.RBF SPC 1 R.RED LDB RMSAD REPLY WITH READ MESSAGE LDA DMSAD SWAP BUFFER POINTERS STB DMSAD . STA RMSAD . DONE CLA GET A ZERO AND INDICATE THAT STA RMRED THE BUFFER IS BEING TRANSMITTED INA SET THE READ MSG XMITTED FLAG STA RREAD c . DONE STA RRSRC INDICATE BUFFER SOURCE JMP R.AST CONTINUE SPC 1 R.RD2 LDB UTRMS REPLY WITH CONSOLE MSG LDA DMSAD SWAP BUFFER POINTERS STB DMSAD . STA UTRMS . DONE CLA GET A ZERO AND INDICATE THAT STA UTRFG THE BUFFER IS BEING TRANSMITTED STA RRSRC INDICATE BUFFER SOURCE STA LTMES CLEAR XMT MSG FLAG INA SET THE READ MSG XMITTED FLAG STA RREAD . DONE JMP R.AST CONTINUE SPC 1 R.ALT CLB SET LAST-RECEIVED MSG FLAG STB LRMES . STB LTMES CLEAR XMT MSG FLAG SPC 1 LDB M.ACK ACKNOWLEDGE REPLY JMP R.RBF SPC 1 R.WRT LDA RCHR3 MAKE CERTAIN THAT MSG ENDS WITH CPA ESCAP ESCAPE + E1/E2/E3 CODE RSS YES JMP RERR3 NO -- REPLY WITH ERROR MESSAGE SPC 1 LDA RCHR2 CHECK E-CODE CPA E1 E1? JMP R.WR1 YES CPA E2 E2? JMP R.WR1 YES CPA E3 E3? RSS YES JMP RERR4 NO -- GIVE ERROR REPLY SPC 1 R.WR1 LDA RMRED SET APPROPRIATE FLAG IF MESSAGE SZA,RSS . WAS GENERATED BY U.CON / U.TR INA . STA RMRED . LDA UTRFG . SZA,RSS . INA . STA UTRFG . DONE SPC 1 CLA,INA IS BUFFER AVAILABLE FOR THIS MSG? CPA WMRED . RSS YES JMP R.REJ NO -- REPLY WITH REJECT SPC 1 CCA SET FLAG THAT BUFFER IS READY STA WMRED FOR UTERM LDA DMSAD SWAP BUFFER POINTERS LDB WMSAD . STA WMSAD . STB DMSAD . DONE SPC 1 LDA RCHR2 SAVE THE WRITE MSG E-CODE STA LWECD . STA WMECD . DONE SPC 1 CPA E3 IS WRITE MSG E-CODE = E3? STA UGENR YES -- SET READ REQUEST FLAG SPC 1 LDA DMSTA RESET LAS^T RECEIVED WRITE MESSAGE STA LWMSA STATION ADDRESS SPC 1 CLA,INA FLAG LAST RECEIVED MSG AS A STA LRMES WRITE SPC 1 LDB M.ACK SEND ACKNOWLEDGE REPLY SPC 1 R.RBF LDA DMSAD COPY THE REPLY INTO THE DRIVER STA DMWAD BUFFER AREA SPC 1 LDA B,I . STA DMWAD,I . SZA,RSS . JMP R.AST . END OF MSG FOUND INB . ISZ DMWAD . JMP *-6 . SPC 1 R.AST LDB DMSAD INITIALIZE BUFFER FLAGS STB DMWAD . CLA GET A ZERO STA DMBYT AND CLEAR BYTE INDICATOR LDA B,I FETCH THE SOH CODE ALF,ALF ISOLATE AND O.7BT AND MASK OFF ANY OTHER BITS ALF,ALF . ADA MYSIT ADD THE SITE ADDRESS STA B,I AND STORE BACK INTO THE MSG SPC 1 INB MOVE TO STATION ADDRESS LDA B,I FETCH THE MESSAGE CODE AND O.7BT KEEP ONLY THE GOOD BITS ALF,ALF SWAP BYTES FOR THE ADDITION ADA LWMSA ADD STATION ADDRESS AND SAMSK POSSIBLE MASKING OF BIT #0 ALF,ALF MOVE THE BYTES BACK STA B,I STORE INTO MESSAGE SPC 1 LDA RCV.C MOVE RETURN ADDRESS STA XMT.I TO THE TRANSMIT SECTION SPC 1 JMP XMT.I+1 GO INITIATE THE TRANSMISSION SPC 5 * LOCAL VARIABLES SPC 1 RSTAT DEC 0 RECEIVE BOARD STATUS WORD RPRTY DEC 0 CUMULATIVE PARITY -- INCOMING MSG RCHAR BSS 1 STORAGE FOR CURRENT CHARACTER RCHR1 BSS 1 STORAGE FOR CURRENT CHARACTER - 1 RCHR2 BSS 1 STORAGE FOR CURRENT CHARACTER - 2 RCHR3 BSS 1 STORAGE FOR CURRENT CHARACTER - 3 RCARR DEC 0 =1 IF CARRIER DETECTED WHEN * RECEIVING A MESSAGE RSYNC DEC 0 =1 IF SYNCH DETECTED WHEN * RECEIVING A MESSAGE RESCP DEC 0 =1 IF ESCAPE CODE RECEIVED RREAD DEC 0 =1 IF TRANSMITTING A READ MSG RRSRC BSS 1 =0 IF READ MSG IS FROM CONSOLE * =1 IF READ MSG IS FROM CARDS LRMES DEC 0 =0 IF LAST RECEIVED MSG = POLL * (OR ALERT) * =1 IF LAST RECEIVED MSG = WRITE LTMES DEC 0 #0 IF LAST XMT MSG = RD/E3 MYSIT BSS 1 SITE ADDRESS FOR THIS TERMINAL F.MSG BSS 1 NONZERO IF THIS IS THE FIRST MSG * TO BE RECEIVED; ZERO OTHERWISE. LWMSA OCT 141 LAST WRITE MSG STATION ADDRESS LWECD BSS 1 LAST WRITE MSG E-CODE SAMSK BSS 1 STATION ADDRESS MASK SKP *** XMT.I -- INITIATE TRANSMISSION * * ACTION - * TURNS LINE AROUND TO TRANSMIT. * *** SPC 5 XMT.I NOP ENTRY/EXIT SPC 1 LIA 1 SET BIT 15 CCE OF THE SWITCH REGISTER RAL,ERA . OTA 1 . DONE SPC 1 JSB CWMBP CHECK WRITE MSG BUFFER POINTERS SPC 1 LDA XWD01 SET SYNCH CHARACTER O.O.4 OTA OUT LDA SYNCH GIVE INTERFACE A SYNCH CHARACTER O.O.A OTA OUT LDA XWD03 SET CONTROL WORD O.O.5 OTA OUT C.I.2 CLC IN PREVENT RECEIVE BOARD FROM GIVING * ANY INTERRUPTS. SPC 1 LDA O.7BT INITIALIZE FOR COMPUTING THE STA XPRTY CORRECT (ODD) LONGITUDINAL * PARITY. CLA GET A ZERO STA DMEOM CLEAR END-OF-MESSAGE FLAG SPC 1 * NOTE: DUE TO TIMING PROBLEMS BETWEEN THIS * TERMINAL AND THE CENTRAL SITE COMPUTER, ALL * TRANSMITTED MESSAGES ARE PREFIXED BY SEVERAL * SYNCH CHARACTERS. THIS ADDS SOME DELAY IN THE * EFFECTIVE LINE-TURNAROUND TIME, WHILE ENSURING * THAT IF THE CENTRAL SITE SWITCHES THE LINE * AROUND FASTER THAN IS USUAL, IT WILL REALIZE * THAT THIS TERMINAL IS ACTIVELY TRANSMITTING. SPC 1 STA SCNTR INITIALIZE SYNCH COUNTER SPC 1 S.O.1 STC OUT,C ENABLE INTERRUPTS JMP XMT.I,I EXIT SKP *** XMT.C -- CONTINUE TRANSMISSION SPC 5 XMT.C NOP ENTRY/EXIT ISZ XMT.C ALWAYS EXIT THROUGH CONTINUATION SPC 1 JSB CWMBP CHECK WRITE MSG BUFFER POINTERS SPC 1 * NOTE: ACCORDING TO RTE SPECIFICATIONS, THE * CONTENTS OF EQT1 SHOULD BE CHECKED HERE TO * ENSURE AGAINST PROCESSING A SPURIOUS INTER- * RUPT. HOWEVER, SINCE THIS DRIVER RUNS WITHOUT * THE OFFICIAL COGNIZANCE OF RTE, EQT1 IS ALWAYS * ZERO -- HENCE, NO CHECKING IS PERFORMED. SPC 1 XMC.1 LIA OUT CHECK TRANSMITTER STATUS L.O.1 EQU XMC.1 STA XSTAT SAVE IT. SPC 1 RAL CLEAR TO SEND (CB) SIGNAL UP? SSA,RSS . JMP XMT.X NO -- EXIT SPC 1 LDA SCNTR ARE WE DONE WITH SYNCH MSG PREFIX CPA D.16 . JMP XMC1A YES SPC 1 ISZ SCNTR INCREMENT SYNCH COUNTER LDA SYNCH AND TRANSMIT A SYNCH CHARACTER O.O.6 OTA OUT . JMP XMT.X SPC 1 XMC1A LDA DMEOM END OF MESSAGE FOUND? SZA . JMP XMC.2 YES SPC 1 LDB DMBYT FETCH BYTE POSITION FLAG ELB MOVE INTO EXTEND BIT SPC 1 LDA DMWAD,I FETCH BUFFER WORD SEZ,RSS UPPER BYTE? ALF,ALF YES SPC 1 AND O.7BT THROW AWAY THE OTHER BYTE O.O.7 OTA OUT SPC 1 CPA EOTXT END OF MESSAGE? ISZ DMEOM YES -- SET FLAG SPC 1 SEZ LOWER BYTE? ISZ DMWAD YES -- INCREMENT BUFFER POINTER CME FLIP BYTE SWITCH ERB AND SAVE THE SWITCH STB DMBYT IN THE FLAG AREA. SPC 1 XOR XPRTY UPDATE LONGITUDINAL PARITY STA XPRTY SPC 1 XMT.X STC OUT,C ENABLE INTERRUPTS S.O.2 EQU XMT.X SPC 1 JMP XMT.C,I EXIT SP<C 1 XMC.2 CPA D.1 END-OF-TEXT JUST TRANSMITTED? JMP XMC.3 YES -- SEND MPC (MESSAGE PARITY * CHARACTER) CPA D.2 MPC JUST TRANSMITTED? JMP XMC.4 YES -- SEND TERMINATING ZERO JMP XMC.5 OTHERWISE, TURN THE LINE AROUND SPC 1 XMC.3 LDA XPRTY TRANSMIT THE LONGITUDINAL PARITY O.O.8 OTA OUT SPC 1 ISZ DMEOM SET FLAG TO INDICATE PARITY SENT JMP XMT.X AND EXIT SPC 1 * NOTE: IMMEDIATELY UPON END OF TRANSMISSION, * THE LINE IS TURNED AROUND AT THIS END. DUE TO * IDIOSYNCRACIES OF THE BELL 201A MODEM, IT IS * POSSIBLE TO HAVE THE RECEIVE INTERFACE ACQUIRE * SYNCH FROM THE TRAILING SYNCH-S OF THE PREVIOUS * TRANSMISSION. TO AVOID THIS PROBLEM, AFTER THE * MPC HAS BEEN SENT (WHICH MIGHT JUST HAPPEN TO * BE THE SAME AS A SYNCH CODE), A ZERO CHARACTER * IS SENT, WITH A CONTROL WORD INHIBITING THE * INTERFACE FROM TRANSMITTING SYNCH CHARACTERS * AFTERWARDS. SPC 1 XMC.4 CLA READY A ZERO CHARACTER O.O.C OTA OUT ISZ DMEOM INCREMENT MESSAGE STATUS FLAG LDA XWD05 USE THE MODIFIED XMT CONTROL WORD O.O.B OTA OUT . JMP XMT.X SPC 1 XMC.5 LDA XMT.C MOVE RETURN ADDRESS STA RCV.I INTO THE RECEIVE SECTION LDA RREAD CHECK IF MSG WAS A READ -- CLB IF SO, SWAP BUFFER PNTRS. STB RREAD . SZA,RSS . JMP XMC.6 . NOT A READ -- EXIT SPC 1 LDA RRSRC CHECK BUFFER SOURCE SZA,RSS CONSOLE? JMP XMC5A YES SPC 1 LDA RMSAD SWAP BUFFER POINTERS LDB DMSAD . STA DMSAD . STB RMSAD . DONE JMP XMC.6 CONTINUE SPC 1 XMC5A LDA UTRMS SWAP BUFFER POINTERS LDB DMSAD . STA DMSAD . STB UTRMS . DONE SPC 1 XMC.6 JMP RCV.I+1 GO TURN THE LINE AROUND SPC 5 * LOCAL VARIABeLES SPC 1 XSTAT DEC 0 TRANSMIT BOARD STATUS WORD XPRTY DEC 0 PARITY ON OUTGOING MESSAGES SCNTR DEC 0 TRANSMITTED SYNCH COUNTER SKP *** CWMBP -- CHECK WRITE MSG BUFFER POINTERS SPC 5 CWMBP NOP ENTRY/EXIT SPC 1 CLA,INA UTERM DONE WITH WRITE MSG BUFFER? CPA WMBF2 . RSS YES JMP CWMBP,I NO SPC 1 CCA SECOND BUFFER ALREADY FILLED? CPA WMRED . RSS YES -- SWAP BUFFER POINTERS JMP CWMBP,I NO SPC 1 LDA WMSAD SWAP BUFFER POINTERS LDB WMBF2+1 . STA WMBF2+1 . STB WMSAD . DONE ADA D.2 INITIAL WORKING ADDRESS STA WMBF2+2 . CLA CLEAR BYTE INDICATOR STA WMBF2+3 . LDA WMECD E-CODE AT END OF WRITE MESSAGE STA WMBF2+4 . CCA SET FLAG FOR UTERM STA WMBF2 . CLA,INA CLEAR OTHER BUFFER INDICATOR STA WMRED . SPC 1 JMP CWMBP,I EXIT SKP *** CONSTANTS, FLAGS, ETC. FOR DRIVER SPC 5 * TRANSMIT BOARD CONTROL WORDS SPC 1 XWD01 OCT 040026 ESTABLISH SYNCH CHARACTER XWD02 OCT 166410 SET MODE TO RECEIVE XWD03 OCT 176010 SET MODE TO TRANSMIT XWD04 OCT 140010 TURN INTERFACE OFF XWD05 OCT 177410 TRANSMIT WITHOUT PADDING WITH * SYNCH CHARACTERS SPC 5 * RECEIVE BOARD CONTROL WORDS SPC 1 RWD01 EQU XWD01 ESTABLISH SYNCH CHARACTER RWD02 OCT 151010 START HUNT FOR SYNCH CHARACTER * NOTE -- DO NOT CHECK PARITY * UNTIL **AFTER** SYNCH HAS BEEN * ACQUIRED. RWD03 OCT 156030 RWD02 WITHOUT HUNT FOR SYNCH, BUT * WITH PARITY CHECKING ENABLED. RWD04 EQU XWD04 TURN INTERFACE OFF SPC 5 * BUFFER CONTROL AREA SPC 1 DMEOM DEC 0 =1 WHEN END OF MESSAGE FOUND SPC 1 DMSAD DEF DMBUF STARTING ADDRESS DMLAD BSS 1 LAST VALID BUFFER ADDRESS DMWAD BSS 1 CURRENT WORKING ADDRESS DMBYT BSS 1 CURRENT WORKING BYTE (0=UPPER) DMSIT BSS 1 SITE CODE IN LAST RECEIVED MSG DMSTA BSS 1 STATION CODE IN LAST RECEIVED MSG DERR1 DEC 0 #0 => BUFFER OVERFLOW DERR2 DEC 0 #0 => CARRIER SIGNAL DROPPED DERR3 DEC 0 #0 => PARITY/TIMING ERROR(S) DERR4 DEC 0 FLAGS REASON FOR ERROR REPLY SPC 1 DRVAL BSS 1 DRIVER RETURN VALUE SPC 1 DMBUF BSS 530 SKP *** PRE-DEFINED MESSAGES * * NOTE - ( ... ) INDICATES DVR ADDS THE APPROPRIATE * VALUE. * *** SPC 5 M.ACK DEF *+1 ACKNOWLEDGE OCT 400 SOH ( + SITE ADDRESS ) OCT 006 ( STATION ADDRESS + ) ACK. CODE OCT 1400 END-OF-TEXT ( + PARITY ) DEC 0 END OF MESSAGE SPC 1 M.REJ DEF *+1 REJECT OCT 400 SOH ( + SITE ADDRESS ) OCT 030 ( STATION ADDRESS + ) REJECT CODE OCT 1400 END-OF-TEXT ( + PARITY ) DEC 0 END OF MESSAGE SPC 1 M.ERR DEF *+1 ERROR OCT 400 SOH ( + SITE ADDRESS ) OCT 025 ( STATION ADDRESS + ) ERROR CODE OCT 1400 END-OF-TEXT ( + PARITY ) DEC 0 END OF MESSAGE SPC 1 M.RD3 DEF *+1 AUTO-READ ENDING WITH E3 CODE OCT 400 SOH ( + SITE ADDRESS ) OCT 023 ( STATION ADDRESS + ) READ CODE OCT 037041 ESCAPE CODE + E3 CODE OCT 1400 END-OF-TEXT ( + PARITY ) DEC 0 END OF MESSAGE HED PAUSE -- PAUSE, WAITING FOR OPERATOR *GO* *** PAUSE -- PAUSE, WAITING FOR OPERATOR *GO* * * CALLING SEQUENCE - * JSB PAUSE * *** SPC 5 PAUSE NOP ENTRY/EXIT SPC 1 LDA PSMSG ISSUE MESSAGE JSB S.OUT . SPC 1 JSB EXEC CALL EXEC DEF *+2 RETURN ADDRESS DEF D.7 CODE FOR SUSPEND (7) SPC 1 LDA UCRET RETURN TO U.CON? AND UMODE . SZA . JMP U.CON YES SPC 1 JMP PAUSE,I EXIT SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 PSMSG DEF *+1 ASC 7,UTERM: PAUSE DEC 0 END OF MESSAGE SPC 1 UNS HED SWREG -- CHECK SWITCH REGISTER FOR BIT #0 *** SWREG -- CHECK SWITCH REGISTER FOR BIT #0 * * CALLING SEQUENCE - * JSB SWREG * ... RETURN HERE IF BIT #0 WAS SET * ... RETURN HERE IF BIT #0 WAS NOT SET * * ACTION - * BIT #0 OF THE SWITCH REGISTER IS CLEARED, AND * EXIT IS MADE ACCORDING TO WHETHER OR NOT THE BIT * HAD BEEN SET. * *** SPC 5 SWREG NOP ENTRY/EXIT SPC 1 LIB 1 READ THE SWITCH REGISTER LDA B SAVE IT IN THE A-REG RAR,CLE,ELA CLEAR BIT #0 OTA 1 AND STORE BACK SLB,RSS WAS BIT #0 SET BEFORE? ISZ SWREG NO -- INCREMENT RETURN ADDRESS SPC 1 JMP SWREG,I EXIT HED IDLE -- IDLE PROGRAM *** IDLE -- IDLE PROGRAM * * CALLING SEQUENCE - * LDA DELAY # OF 10-MSEC DELAY PERIODS DESIRED. * JSB IDLE * ... RETURN LOCATION * * ACTION - * RTE CALL IS MADE TO SUSPEND THE PROGRAM FOR THE * REQUESTED PERIOD OF TIME. * *** SPC 5 IDLE NOP ENTRY/EXIT SPC 1 CMA,INA COMPLEMENT DELAY TIME STA IDTIM AND STORE FOR RTE CALL SPC 1 JSB EXEC CALL RTE TO SUSPEND FOR A TIME DEF *+6 RETURN POINT DEF D.12 CODE FOR EXECUTION TIME (12) DEF D.0 PROGRAM TO PUT ON THE TIME LIST * (0 => SUSPEND THE CALLING PROG.) DEF D.1 RESOLUTION CODE (1 => 10MSEC) DEF D.0 EXECUTION MULTIPLE DEF IDTIM INITIAL TIME OFFSET SPC 1 JMP IDLE,I EXIT SPC 5 * LOCAL VARIABLES SPC 1 IDTIM BSS 1 DELAY TIME STORED HERE HED EXIT -- HALT EXECUTION AND RETURN TO EXEC *** EXIT -- HALT EXECUTION AND RETURN TO EXEC * * CALLING SEQUENCE - * JSB EXIT * *** SPC 5 EXIT NOP ENTRY -- NO EXIT SPC 1 LDA EXMSG ISSUE MESSAGE TO CONSOLE JSB S.OUT SPC 1 JSB EXEC CALL RTE EXEC DEF *+2 RETURN ADDRESS DEF D.6 CODE FOR NORMAL TERMINATION (6) SPC 5 * LOCAL STORAGE SPC 1 SUP SPC 1 EXMSG DEF *+1 ABS CRLF ASC 6,UTERM: EXIT ABS CRLF DEC 0 END OF MESSAGE SPC 1 UNS HED CONVERSION TABLES: ASCII TO/FROM EXTERNAL BCD *** CONVERSION TABLES: ASCII TO/FROM EXTERNAL BCD * * THE CONVERSION IS PERFORMED IN AS STRAIGHT- * FORWARD A MANNER AS POSSIBLE. ANY UNREASONABLE * CHARACTER IN ASCII IS CONVERTED TO "%" IN BCD. * ANY SUCH CHARACTER IN BCD IS CONVERTED TO "?" IN * ASCII. * NOTE -- THE EXTERNAL BCD ESCAPE CODE (76B) IS * CONVERTED TO 0. * * NOTE -- THE ACTUAL TABLES ARE ON THE NEXT PAGE, * PACKED TWO CHARACTERS PER WORD. THE FOLLOWING * COMMENTS DUPLICATE THE TABLES IN A ONE-CHARACTER- * PER-WORD FORMAT: * * * ASCII-TO-EXTERNAL BCD (ASEXB) * * OCT 116,116,116,116,116,116,116,116 000B-007B * OCT 116,116,116,116,116,116,116,116 010B-017B * OCT 116,116,116,116,116,116,116,116 020B-027B * OCT 116,116,116,116,116,116,116,116 030B-037B * OCT 120,056,114,116,053,116,137,114 040B-047B * OCT 134,074,054,060,133,040,073,121 050B-057B * OCT 112,101,102,103,104,105,106,107 060B-067B * OCT 110,111,100,077,072,113,057,116 070B-077B * OCT 116,061,062,063,064,065,066,067 100B-107B * OCT 070,071,041,042,043,044,045,046 110B-117B * OCT 047,050,051,122,123,124,125,126 120B-127B * OCT 127,130,131,117,116,132,055,116 130B-137B * OCT 116,116,116,116,116,116,116,116 140B-147B * OCT 116,116,116,116,116,116,116,116 150B-157B * OCT 116,116,116,116,116,116,116,116 160B-167B * OCT 116,116,116,116,116,116,116,116 170B-177B * * * EXTERNAL BCD-TO-ASCII (EXBAS) * * OCT 077,077,077,077,077,077,077,077 000B-007B * OCT 077,077,077,077,077,077,077,077 010B-017B * OCT 077,077,077,077,077,077,077,077 020B-027B * OCT 077,077,077,077,077,077,077,077 030B-037B * OCT 055,112,113,114,115,116,117,120 040B-047B * OCT 121,122,077,044,052,136,041,076 050B-057B * OCT 053,101,102,103,104,105,106,107 060B-067B * OCT 110,111,074,056,051,077,000,073 070B-077B * OCT 072,061,062,063,064,065,066,067 100B-107B * OCT 070,071,060,075,042,077,045,133 110B-117B * OCT 040,057,123,124,125,126,127,130 120B-127B * OCT 131,132,135,054,050,077,077,046 130B-137B * OCT 077,077,077,077,077,077,077,077 140B-147B * OCT 077,077,077,077,077,077,077,077 150B-157B * OCT 077,077,077,077,077,077,077,077 160B-167B * OCT 077,077,077,077,077,077,077,077 170B-177B * *** SKP SUP SPC 1 ASEXB OCT 47116,47116,47116,47116 000B-007B OCT 47116,47116,47116,47116 010B-017B OCT 47116,47116,47116,47116 020B-027B OCT 47116,47116,47116,47116 030B-037B OCT 50056,46116,25516,57514 040B-047B OCT 56074,26060,55440,35521 050B-057B OCT 45101,41103,42105,43107 060B-067B OCT 44111,40077,35113,27516 070B-077B OCT 47061,31063,32065,33067 100B-107B OCT 34071,20442,21444,22446 110B-117B OCT 23450,24522,51524,52526 120B-127B OCT 53530,54517,47132,26516 130B-137B OCT 47116,47116,47116,47116 140B-147B OCT 47116,47116,47116,47116 150B-157B OCT 47116,47116,47116,47116 160B-167B OCT 47116,47116,47116,47116 170B-177B SPC 1 EXBAS OCT 37477,37477,37477,37477 000B-007B OCT 37477,37477,37477,37477 010B-017B OCT 37477,37477,37477,37477 020B-027B OCT 37477,37477,37477,37477 030B-037B OCT 26512,45514,46516,47520 040B-047B OCT 50522,37444,25136,20476 050B-057B OCT 25501,41103,42105,43107 060B-067B OCT 44111,36056,24477,00073 070B-077B OCT 35061,31063,32065,33067 100B-107B OCT 34071,30075,21077,22533 110B-117B OCT 20057,51524,52526,53530 120B-127B OCT 54532,56454,24077,37446 130B-137B OCT 37477,37477,37477,37477 140B-147B OCT 37477,37477,37477,37477 150B-157B OCT 37477,37477,37477,37477 160B-167B OCT 37477,37477,37477,37477 170B-177B SPC 1 UNS HED CONSTANTS *** CONSTANTS * * NOTE - THESE ARE ^^READ-ONLY^^ CONSTANTS. * *** SPC 5 DM135 DEC -135 D.M80 DEC -80 D.M9 DEC -9 D.M7 DEC -7 D.M4 DEC -4 D.M2 DEC -2 D.M1 DEC -1 D.0 DEC 0 D.1 DEC 1 D.2 DEC 2 D.3 DEC 3 D.4 DEC 4 D.5 DEC 5 D.6 DEC 6 D.7 DEC 7 D.8 DEC 8 D.9 DEC 9 D.10 DEC 10 D.11 DEC 11 D.12 DEC 12 D.13 DEC 13 D.15 DEC 15 D.16 DEC 16 D.20 DEC 20 D.32 DEC 32 D.40 DEC 40 D.50 DEC 50 D.59 DEC 59 D.60 DEC 60 D.64 DEC 64 D.65 DEC 65 D.70 DEC 70 D.80 DEC 80 D.81 DEC 81 D.135 DEC 135 D.530 DEC 530 SPC 1 O.M72 OCT -72 O.M53 OCT -53 O.M10 OCT -10 O.12 EQU D.10 O.14 EQU D.12 O.17 EQU D.15 O.21 OCT 21 O.22 OCT 22 O.23 OCT 23 O.26 OCT 26 O.37 OCT 37 O.40 EQU D.32 ASCII BLANK SPACE O.41 OCT 41 O.52 OCT 52 ASCII ASTERISK <*> O.53 OCT 53 O.54 OCT 54 ASCII COMMA <,> O.55 OCT 55 ASCII HYPHEN <-> O.60 OCT 60 ASCII ZERO <0> O.61 OCT 61 O.62 EQU D.50 O.64 OCT 64 O.67 OCT 67 O.72 OCT 72 ASCII COLON <:> O.76 OCT 76 BCD ESCAPE CODE O.77 OCT 77 O.100 EQU D.64 RTE DISC SECTOR LENGTH O.101 EQU D.65 O.102 OCT 102 ASCII O.112 OCT 112 BCD ZERO O.117 OCT 117 O.120 EQU D.80 BCD BLANK SPACE O.124 OCT 124 ASCII O.126 OCT 126 O.127 OCT 127 ASCII O.130 OCT 130 O.W131 OCT 131 O.177 OCT 177 O.200 OCT 200 O.300 OCT 300 O.377 OCT 377 8 BIT MASK O.400 OCT 400 O.500 OCT 500 O.600 OCT 600 O1000 OCT 1000 O1100 OCT 1100 O1300 OCT 1300 O1400 OCT 1400 O4000 OCT 4000 SPC 1 BLNK2 ASC 1, ZERO2 ASC 1,00 SPC 1 AS.BF ASC 1,BF AS.BR ASC 1,BR AS.CD ASC 1,CD AS.CO ASC 1,CO AS.CR ASC 1,CR AS.DU ASC 1,DU AS.EF ASC 1,EF AS.EX ASC 1,EX AS.FF ASC 1,FF AS.FR ASC 1,FR AS.LP ASC 1,LP AS.LS ASC 1,LS AS.NO ASC 1,NO AS.PT ASC 1,PT AS.RE ASC 1,RE AS.T1 ASC 1,T1 AS.T2 ASC 1,T2 AS.UN ASC 1,UN AS.YE ASC 1,YE AS.$D ASC 1,$D AS.$E ASC 1,$E AS.$F ASC 1,$F AS.$M ASC 1,$M AS.$$ ASC 1,$$ AS.!! ASC 1,!! SPC 5 *** SCRATCH CELLS SPC 1 SCR00 DEF SCR01 PNTR TO ORIGIN OF SCRATCH CELLS * THIS IS !!READ-ONLY!! SPC 1 SCR01 BSS 1 SCR02 BSS 1 SCR03 BSS 1 SCR04 BSS 1 SCR05 BSS 1 SCR06 BSS 1 SCR07 BSS 1 SCR08 BSS 1 SCR09 BSS 1 SCR10 BSS 1 SCR11 BSS 1 SCR12 BSS 1 SPC 1 SCBUF DEF *+1 PNTR TO ORIGIN OF SCRATCH BUFFER * THIS IS !!READ-ONLY!! BSS 140 BUFFER AREA DEC 0 END OF BUFFER HED EQUIVALENCING *** EQUIVALENCING SPC 1 A EQU 0 B EQU 1 ESCAP EQU O.76 CRLF EQU 6412B BLANK EQU O.40 COLON EQU O.72 COMMA EQU O.54 ZERO EQU O.60 XBZRO EQU O.112 XBSPC EQU O.120 EOTXT EQU D.3 SYNCH EQU O.26 SOH EQU D.1 C.RED EQU O.23 CODE FOR READ C.POL EQU D.5 CODE FOR POLL C.ALT EQU D.7 CODE FOR ALERT C.WRT EQU O.21 CODE FOR WRITE C.RWR EQU O.14 CODE FOR RESET-WRITE C.CWR EQU O.22 CODE FOR CLEAR-WRITE E1 EQU O.102 E2 EQU O.40 E3 EQU O.41 XBEOR EQU O.127 XBEOF EQU O.126 XBEOL EQU O.120 XBCR EQU O.101 MINUS EQU O.55 PLUS EQU O.53 ASTK EQU O.52 ASC.B EQU O.102 ASC.O EQU O.117 ASC.T EQU O.124 ASC.X EQU O.130 ASC.Y EQU O.131 ASC.W EQU O.127 ASC.1 EQU O.61 ASC.2 EQU O.62 ASC.4 EQU O.64 ASC.7 EQU O.67 O.4BT EQU O.17 O.5BT EQU O.37 O.6BT EQU O.77 O.7BT EQU O.177 O.8BT EQU O.377 BIT.7 EQU O.200 SPC 1 IN EQU 0 DUMMY FOR INPUT CHANNEL # OUT EQU 1 DUMMY FOR OUTPUT CHANNEL # SPC 1 ORG *-1 LENGTH OF PROGRAM SPC 1 END UTERM  ] 22681-18031 1508 SC 0322 ROUTINES FOR SWITCHING DOS-M TO BCS             H0103 uASMB,R,L NAM BCS,6 ENT BCS,MPON,MPOFF EXT EXEC * ********** WRITTEN BY : * * FRANK SLOOTWEG AND BOB VAN RANDERAAT * HEWLETT-PACKARD BENELUX N.V. * WEERDESTEIN 117 * AMSTERDAM-BUITENVELDERT * THE NETHERLANDS * TELEPHONE 020-5411522 * * CONTRIBUTED PROGRAM * * NOT HP-SUPPORTED !!!!! * * VERSION : 10 MAY 1974 * ******************* SUBROUTINE BCS ************************* * * THIS SUBROUTINE DUMPS THE CURRENT CORE-IMAGE OF DOS-M TO DISC. * IT THEN LOADS A CORE-IMAGE OF A BCS-SYSTEM(INCL.USER-PROGRAM) * INTO CORE (FROM DISC),AND THEN STARTS THE BCS USER-PROGRAM. * THE SUBROUTINE SHOULD BE USED WITH THE SUBROUTINE DOSM ,WHICH IS * A SUBROUTINE THAT CAN BE USED IN A BCS-SYSTEM TO RETURN TO THE * POINT IN THIS SUBROUTINE (BCS) WERE IT JUMPED OUT. * THE SEQUENCE OF SWITCHING OF OPERATING SYSTEMS SHOULD ALWAYS BE: * * FROM DOS-M TO BCS AND BACK TO DOS-M. * * THE SUBROUTINES WILL NOT ALLOW THE SEQUENCE: * * FROM BCS TO DOS-M AND BACK TO BCS.!!!!!!!!!!!!!!!!!! * * BOTH SUBROUTINES (BCS AND DOSM) USE A PROGRAM CALLED DIBBL TO * DO THE ACTUAL DUMPING AND LOADING. THE PROGRAM DIBBL IS AN * ABSOLUTE PROGRAM WHICH IS ALWAYS CORE-RESIDENT IN UPPER CORE. * BECAUSE DIBBL IS AN ABSOLUTE PROGRAM IT IS NOT MENTIONED IN A * EXT STATEMENT. * * THE DIBBL PROGRAM IS STORED FROM LOCATION K7600 TO K7677 (WHERE * THE DIGIT K IS DEPENDING ON THE CORE-SIZE. * THE SUBROUTINE BCS (AND ALSO THE SUBROUTINE DOSM) USES THE * FOLLOWING ABSOLUTE CORE-LOCATIONS: * * K7564 ;THIS LOCATION IS USED TO STORE A CLC 00B,C INSTRUCTION * WHICH IS EXECUTED AT THE END OF THE DIBBL PROGRAM. * K7565 ;THIS LOCATION IS USED TO STORE A JMP INDIRECT TO THE * START ADRESS OF THE BCS USER-PROGRAM OR THE RETURN ADRESS TO * DOS-M. * K7566 ;THIS LOCATION CONTAINS THE LAST RETURN ADRESS TO DOS-M * K7567 ; THIS LOCATION CONTAINS THE FIRST RETURN ADRESS TO DOS-M * OR THE START ADRESS OF THE BCS+ USER-PROGRAM. * ************ CALLING SEQUENCES ************ * * FROM ASSEMBLER THE CALLING SEQUENCE IS : * * JSB BCS * NOP * * (THE NOP IS REQUIRED FOR COMPATIBILITY WITH THE FTN-COMPILER) * * FROM FORTRAN THE CALLING SEQUENCE IS : * * CALL BCS * ************ SPECIAL CONSIDERATIONS ************ * * SINCE THE PROGRAM DIBBL IS ALWAYS CORE-RESIDENT AND ALSO A FEW * ABSOLUTE LOCATIONS ARE USED ,IT IS NECCESSARY TO GENERATE A * SPECIAL DOS-M SYSTEM (AND ALSO A SPECIAL BCS SYSTEM). AT * GENERATION TIME THE LWAM IS GIVEN AS K7563 OR LESS(WHERE K IS * DEPENDING ON THE CORE-SIZE).IN ORDER TO ALLOW SOME POSSIBLE * FUTURE MODIFICATIONS IT IS RECOMMENDED TO SPECIFY THE LWAM AS * K7477 * * BEFORE USING THE SUBROUTINES BCS AND DOSM MAKE SURE THAT THE * DIBBL-PROGRAM IS IN CORE.IT IS RECOMMENDED TO LOAD THE DIBBL * PROGRAM INTO CORE (WITH THE BBL) EVERY TIME THE DOS-M SYSTEM * IS BOOTSTRAPPED. * ****** INSTRUCTIONS TO BD ADAPTED TO THE ACTUAL CONFIGURATION ****** * * THE FOLLOWING SIX INSTRUCTIONS SHOULD BE ADAPTED TO THE ACTUAL * CONFIGURATION. * * THE OCTAL CONSTANT AFTER DISC EQU SHOULD BE 001000B FOR THE * FIXED DISC AND 000000B FOR THE REMOVABLE DISC.ONLY THE FIRST * DRIVE CAN BE USED WITH THIS PROGRAM.PLEASE NOTE THAT THE NUMBERS * USED ARE DIFFERENT FROM THE NORMAL DOS-M SUBCHANNEL NUMBERS. * THE DISC SPECIFIED SHOULD BE THE DISC WHICH CONTAINS THE FILES * IN WHICH THE ABSOLUTE DOS-M AND BCS CORE-DUMPS ARE STORED. * * THE OCTAL CONSTANT AFTER DOSCY EQU SHOULD BE ADAPTED TO THE * ACTUAL (OCTAL!!) STARTING CYLINDER OF THE FILE IN WHICH THE * ABSOLUTE DOS-M CORE-DUMP IS STORED. * * THE OCTAL CONSTANT AFTER BCSCY SHOULD BE ADAPTED TO THE * ACTUAL (OCTAL!!) STARTING CYLINDER OF THE FILE IN WHICH THE * ABSOLUTE BCS CORE DUMP IS STORED. * * THE FIRST DIGIT OF THE OCTAL CONSTANT WHICH FOLLOWS K EQU * SHOULD BE ADAPTED TO THE CORE SIZE USED.IT SHOULD BE 0,1,2,3,5,7 * FOR RESPECTIVELY 4,8,12,16,24 AND 32K MEMORY. * * THRE OCTAL CONSTANT AFTER BCSSA SHOULD BE ADAPTED TO THE RIGHT *BCS STARTING-ADRESS (WHICH IS NORMALLY 2000B OR 2B). * * THE OCTAL CONSTANT AFTER LU#1 EQU SHOULD BE ADAPTED TO THE * RIGHT SELECT CODE OF THE SYSTEM CONSOLE. * DISC EQU 001000B DISC-INFORMATION DOSCY EQU 110B DOS-M CYLINDER INFO BCSCY EQU 100B BCS CYLINDER INFO * K EQU 30000B CORE-SIZE INFORMATION * BCSSA OCT 2000 START-ADRESS OF BCS * LU#1 EQU 21B SELECT CODE OF SYSTEM-CONSOLE * * ADRESSES * K7564 ABS K+7564B ADRESS OF CLC 00B,C INSTRUCTION K7565 ABS K+7565B ADRESS OF LOCATION WHICH CONTAINS * JMP JUMP,I INSTRUCTION RETUR ABS K+7566B ADRESS OF LOCATION RETUR(USED FOR * RETURN-ADRESS #2 OF DOS-M JUMP ABS K+7567B ADRESS OF LOCATION JUMP(USED FOR * S.A./R.A. OF BCS/DOS-M DIBBL ABS K+7600B S.A. OF "DIBBL"-PROGRAM * HLTAD ABS K+7660B ADRESS OF HLT 77B INSTRUCTION * IN "DIBBL"-PROGRAM * DERA1 DEF RA1 DEFINE DOS-M RETURN-ADRESS #1 DERA2 DEF RA2 DEFINE DOS-M RETURN-ADRESS #2 * * INSTRUCTIONS * JCLR OCT 027564 MACHINE-CODE FOR JMP1564B INSTR * (CURRENT PAGE) CLC00 CLC 00B,C CLEAR ALL DEVICES JUMPI OCT 127567 MACHINE-CODE FOR JMP INDIRECT * VIA 1567B (CURRENT PAGE) HLT77 HLT 77B * * CONSTANTS * DUDOS ABS 100000B+DISC+DOSCY DISC/CYL INFO FOR DOS-M DUMP LOBCS ABS 000000B+DISC+BCSCY DISC/CYL INFO FOR BCS LOAD * * START OF SUBROUTINE BCS * BCS NOP ENTRY/EXIT ISZ BCS INC R.A. FOR FTN-COMPATIBILITY JSB MPOFF SWITCH OFF MEMORY-PROTECT CLF 00B TURN OFF INTERUPT SYSTEM(FOR LATER SFS I/O) LDA DERA1 LOAD DOS-M RETURN ADRESS #1 STA JUMP,I AND STORE IT IN LOCATION WITH ADRESS JUMP LDA JCLR LOAD JMP TO CLC 00B,C ROUTINE STA HLTAD,I AND STORE IN LOCATION OF PREVIOUS HLT 77B LDA CLC00 LOAD CLC 00B,C INSTRUCTION 2STA K7564,I AND STORE IT IN LOC K7564 LDA JUMPI LOAD JMP JUMP,I INSTRUCTION, STA K7565,I AND STORE IT IN LOC K7565 LDB DUDOS LOAD DISC/CYLINDER INFO FOR DUMPING DOS-M JMP DIBBL,I AND GO DUMPING DOS-M RA1 LDA DERA2 LOAD DOS-M RETURN-ADRESS #2 STA RETUR,I AND STORE INRETUR,I(K7566) LDA BCSSA LOAD BCS START-ADRESS, STA JUMP,I AND STORE IT IN JUMP LDB LOBCS LOAD DISC/CYLINDER INFO FOR LOADING BCS JMP DIBBL,I AND GO LOADING BCS RA2 CLC 00B,C CLEAR ALL DEVICES STC LU#1,C STC ON LOGICAL UNIT #1 LDA HLT77 LOAD HLT 77B INSTRUCTION, STA HLTAD,I AND RESTORE PREVIOUS HLT 77B JSB MPON SWITCH ON MEMORY-PROTECT AND * INTERRUPT-SYSTEM JMP BCS,I EXIT * * SUBROUTINE MPOFF (SWITCHES MEMORY PROTECT OFF) * MPOFF NOP ENTRY/EXIT CLA PUT NOP IN A LDB Z+5 PUT 5B (ADRESS OF MP) IN B JSB EXEC AND GO STORING NOP IN LOC 5B DEF *+2 DEFINE R.A. DEF RCODE DEFINE REQUEST CODE HLT 05B THIS HALT IS NOT EXECUTED BECAUSE * MEMORY-PROTECT IS STILL ON. HOWEVER THE HLT 05B CAUSES A * MEMORY-PROTECT VIOLATION AND THE INSTRUCTION IN LOC 05B * (WHICH IS A NOP) IS EXECUTED.SINCE THE MEMORY-PROTECT * FLAG IS STILL UP , MEMORY-PROTECT IS EFFECTIVELY SHUT OFF. JMP MPOFF,I EXIT Z EQU 53B START ADRESS OF BASE-PAGE OCTALS RCODE DEC -19 RCODE FOR WRITING IN BASE-PAGE * * SUBROUTINE MPON (SWITCHES MEMORY PROTECT AND INTERRUPT-SYSTEM * BACK ON) * MPON NOP ENTRY/EXIT LDA JSCIC LOAD JSB $CIC INSTRUCTION, STA B5,I AND STORE IN LOC 5B (MP) STF 00B SWITCH-ON INTERRUPT-SYSTEM STC 05B SWITCH-ON MEMORY-PROTECT JMP MPON,I EXIT B5 OCT 5 ADRESS OF MEMORY-PROTECT LOC. JSCIC EQU 10B ADRESS OF FIRST TRAP-CELL(SC) END ASMB,R,L NAM DOSM,6 ENT DOSM * .********** WRITTEN BY : * * FRANK SLOOTWEG AND BOB VAN RANDERAAT * HEWLETT-PACKARD BENELUX N.V. * WEERDESTEIN 117 * AMSTERDAM-BUITENVELDERT * THE NETHERLANDS * TELEPHONE 020-5411522 * * CONTRIBUTED PROGRAM * * NOT HP-SUPPORTED !!!!! * * VERSION : 10 MAY 1974 * ****************** SUBROUTINE DOSM ********************** * * THIS SUBROUTINE IS USED WITH THE SUBROUTINE BCS. * FOR MORE DETAILS SEE THE DOCUMENTATION AND SOURCE OF THE * SUBROUTINE BCS. * * * THE FOLLOWING THREE INSTRUCTIONS SHOULD BE ADAPTED TO THE ACTUAL * CONFIGURATION. * * THE OCTAL CONSTANT AFTER DISC EQU SHOULD BE 001000B FOR THE * FIXED AND 000000B FOR THE REMOVABLE DISC.ONLY THE FIRST DRIVE * CAN BE USED WITH THIS PROGRAM.PLEASE NOTE THAT THE NUMBERS USED * ARE DIFFERENT FROM THE NORMAL DOS-M SUB-CHANNEL NUMBERS. * THE DISC SPECIFIED SHOULD BE THE DISC WHICH CONTAINS THE FILE IN * WHICH THE ABSOLUTE DOS-M CORE-DUMP IS STORED. * * THE OCTAL CONSTANT AFTER DOSCY EQU SHOULD BE ADAPTED TO THE * STARTING CYLINDER (OCTAL !!) OF THE FILE IN WHICH THE ABSOLUTE * DOS-M CORE-DUMP IS STORED. * * THE FIRST DIGIT OF THE OCTAL CONSTANT AFTER K EQU SHOULD * BE ADAPTED TO THE CORE SIZE USED.IT SHOULD BE 0,1,2,3,5,7 FOR * RESPECTIVELY 4,8,12,16,24 AND 32K MEMORY. * DISC EQU 001000B DISC-INFORMATION DOSCY EQU 110B CYLINDER INFORMATION K EQU 30000B CORE-SIZE INFORMATION RETUR ABS K+7566B ADRESS OF LOC FOR STORAGE OF DOS-M RETURN-ADRESS JUMP ABS K+7567B ADRESS OF LOC FOR STORAGE OF BCS START ADRESS DIBBL ABS K+7600B START-ADRESS OF "DIBBL"-PROGRAM LOAD EQU 000000B OCTAL REPRESENTATION OF LOAD REQUEST(SEE DIBBL) LODOS ABS LOAD+DISC+DOSCY DISC/CYL INFO FOR LOADING DOS-M DOSM NOP ENTRY/EXIT ISZ DOSM CLF 00B TURN OFF INTERRUPT SYSTEM FOR LATER SFS I/O LDA RETUR,I LOAD DOS-M RETURN ADRESS #2, STA JUMP,I AND STORE IT IN LOCATION WITH ADRESS JU3MP LDB LODOS LOAD DISC/CYLINDER INFO FOR LOADING DOS-M JMP DIBBL,I AND GO LOADING DOS-M JMP DOSM,I EXIT.(WILL NEVER BE EXECUTED) END ASMB,A,L,B * ********** THIS PROGRAM IS A MODIFIED VERSION OF THE DIBBL * PROGRAM WHICH WAS WRITTEN BY THE SANTA CLARA DIVISION * OF HEWLETT-PACKARD AND WHICH IS USED FOR EXAMPLE IN * THE HP 5407A SCINTIGRAPHIC DATA ANALYZER SYSTEM. * * THE MODIFICATIONS EXIST OF: * ********** EXTRA DESCRIPTIONS OF USER PROCEDURES * * SOURCE MODIFICATIONS WHICH ARE INDICATED BY * MMMMMMM * ********** MODIFICATIONS MADE BY : * * FRANK SLOOTWEG * HEWLETT-PACKARD BENELUX N.V. * WEERDESTEIN 117 * AMSTERDAM-BUITENVELDERT * THE NETHERLANDS * TELEPHONE 020-5411522 * * CONTRIBUTED PROGRAM * * NOT HP-SUPPORTED !!!!! * * VERSION : 10 MAY 1974 * ************************************************************ * PROGRAM "DIBBL" * THIS PROGRAM WILL LOAD CORE IMAGES FROM A HP 7900 DISC AND * DUMP CORE IMAGES TO A HP 7900 DISC. * THIS PROGRAM IS USED TOGETHER WITH THE CONTRIBUTED SUBROUTINES * "BCS" AND "DOSM".FOR MORE DETAILS SEE THE DOCUMENTATION AND * SOURCE OF THESE SUBROUTINES. * *********** SPECIAL CONSIDERATIONS ********** * * FOR THE SPECIAL CONSIDERATIONS PLEASE ALSO SEE THE DOCUMENTATION * AND SOURCE OF THE SUBROUTINES BCS AND DOSM. * * BEFORE USING THE "DIBBL" IT IS NECCESSARY TO CREATE ONE OR MORE * DOS-M FILES IN WHICH THE CORE-IMAGES CAN BE STORED. * THIS IS DONE BY THE :ST,B DIRECTIVE IN DOS-M. * THE FILES CREATED SHOULD DIRECTLY FOLLOW THE SYSTEM-AREA ON THE * DISC BECAUSE OTHERWISE THE TRACK NUMBERS WOULD CHANGE DUE TO * REPACKING.SO THE FILES SHOULD BE CREATED DIRECTLY AFTER SYSTEM * GENERATION OR THE FILES SHOULD BE INSERTED BETWEEN THE SYSTEM- * AREA AND THE USER-AREA BY DUMPING ALL USER FILES TO A BACK-UP * DEVICE (DISC,PAPERTAPE ETC). * * THE :ST,B DIRECTIVE SHOULD BE OF THE FORM :ST,B,NAME,SIZE * WHERE: * * NAME IS ANY NORMAL DOS-M FILE NAME AND * * SIZE IS THE CORRECT FILE SIZE IN SECTORS. * * THE RIGHT NUMBER OF SECTORS CAN BE DETERMINED AS FOLLOWS: * * TAKE THE ACTUAL CORE SIZE AS SPECIFIED BY THE LWAM OF THE * DOS-M AND BCS GENERATION AND CONVERT THIS TO ITS DECIMAL * EQUIVALENT.THIS DECIMAL NUMBER IS THEN DIVIDED BY 128 * (THIS IS THE NUMBER OF WORDS IN A SECTOR).ROUND THE RESULT * TO THE NEXT INTEGER. THIS INTEGER IS THE RIGHT FILE SIZE IN * SECTORS. * ****** INSTRUCTIONS TO BE ADAPTED TO THE ACTUAL CONFIGURATION **** * * THE FOLLOWING INSTRUCTIONS SHOULD BE ADAPTED TO THE ACTUAL * CONFIGURATION : * * THE OCTAL CONSTANT AFTER THE ORG INSTRUCTION SHOULD BE K7600B * WHERE: * K IS 0,1,2,3,5,7 FOR RESPECTIVELY 4,8,12,16,24 AND 32K MEMORY. * * THE OCTAL CONSTANT AFTER PRTCT OCT SHOULD BE EQUIVALENT TO MINUS * (LWAM+1) WHERE LWAM IS THE LWAM SPECIFIED DURING BCS/DOS-M * GENERATION. * * THE OCTAL CONSTANT AFTER D1 EQU SHOULD BE ADAPTED TO THE * LOWER-NUMBERED (HIGH PRIORITY) SELECT CODE OF THE DISC CON- * TROLLER.(E.G.IF THE CONTROLLER OCCUPIES SELECT CODES 11B AND * 12B THEN 11B SHOULB BE SPECIFIED). **************************************************** * DIBBL * WILL LOAD CORE IMAGE FROM 79OO DISC. * WILL DUMP CORE IMAGE TO 79OO DISC. * * SET P REGISTER TO CORRECT STARTING ADRESS(SEE ORG INSTRUCT.) * * * SET B REGISTER WITH DISC/CYLINDER INFORMATION * FOR CORE IMAGE AS FOLLOWS: * B-REG=X0DCCC * WHERE X=0=LOAD * X=1=DUMP * D=0=REMOVABLE DISC * D=1=FIXED DISC * CCC=CYLINDER NUMBER=TRACK NUMBER (OCTAL !!!!! ) * * PRESS INTERNAL AND EXTERNAL PRESET AND RUN * ***************************************************** * FOR LOAD * * HLT 11B DISC READ ERROR,A=STATUS. * HLT 77B NORMAL EOT HALT. ***************************************************** * FOR DUMP * * HL{T 11B DISC WRITE ERROR,A=STATUS. * HLT 77B NORMAL EOT HALT. ***************************************************** * * !!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!! * * PLEASE MAKE SURE THAT ALL THE ABOVE MENTIONED INSTRUCTIONS ARE * CARRIED OUT CORRECTLY.IF THIS IS NOT THE CASE IT IS POSSIBLE * THAT THE DOS-M SYSTEM AND THE USER FILES ARE DESTROYED. * ESPECIALLY THE CREATION OF THE FILES AND THE INFORMATION PUT IN * THE B-REGISTER BEFORE EXECUTING THE DIBBL ARE VERY IMPORTANT!! * * * MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ORG 37600B STARTING ADRESS * MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM SUP * DIBBL CLA INITIALIZE STARTING-ADDRESS STA DMA2 * LOOP OTB D1 SEEK CYLINDER CCC STC D1,C LDA SEEK JSB CMMD SFS D1 JMP *-1 LDA 1 AND B1000 OTA D1 SEEK FIXED/REMOVABLE STC D1,C * LDA DMA1 DMA CW1 OTA 6 * LDA DMA2 SET DMA ADDRESS CLC 2 CCE,SSB,RSS RAL,ERA OTA 2 ADA LREC RAL,CLE,ERA STA DMA2 -UPDATE ADDRESS * ADA PRTCT SET DMA WORD COUNT CMA,SSA,INA,RSS -E=1 IF LAST RECORD CLA,CLE -E=0 IF MORE TO COME ADA LREC CMA,INA STC 2 OTA 2 * SSB,RSS READ/WRITE STC D1,C STC 6,C LDA READ SSB LDA WRITE JSB CMMD SFS D2 JMP *-1 * STF 6 DISABLE DMA * LDA STAT STATUS JSB CMMD SFS D1 JMP *-1 LIA D1 * SLA CHECK STATUS HLT 11B -HALT ON ERROR * SEZ,INB,RSS IF E=0 JMP LOOP -CONTINUE LOADING CYLINDERS * HLT 77B HALT COMPLETION OF LOAD * CMMD NOP EXECUTE COMMAND OTA D2 CLC D2 STC D2,C JMP CMMD,I * SEEK ABS UNIT+30000B READ 640ABS UNIT+20000B WRITE ABS UNIT+10000B STAT ABS UNIT+00000B * DMA1 ABS 120000B+D1 DMA2 NOP * B1000 OCT 1000 LREC DEC 6144 RECORD LENGTH * * MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM PRTCT OCT -37500 ***START OF "PROTECTED" CORE * MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM * NOP FILLER * UNIT EQU 0 *****DAISY-CHAIN UNIT D1 EQU 11B D2 EQU D1+1 *****CONTROL CHANNEL * END 3W6FTN,L PROGRAM PEUTZ WRITE (1,100) 100 FORMAT ("START OF PROGRAM PEUTZ") CALL BCS WRITE(1,200) 200 FORMAT ("WE ARE NOW BACK IN DOS-M") END END$ FTN,M,L PROGRAM PIET PAUSE 1 WRITE (1,100) 100 FORMAT ("WE ARE NOW IN BCS OPERATING SYSTEM") CALL ENDIO CALL DOSM END END$ FTN,L PROGRAM PEUT2 DIMENSION IBUF(10) WRITE (1,100) 100 FORMAT ("WE START IN DOS-M") CALL BCS WRITE (1,200) 200 FORMAT ("WE ARE BACK IN DOSM") CALL BREAD(IBUF,10,2,190,0,0) WRITE (1,300)IBUF 300 FORMAT(A2) END END$ FTN,L PROGRAM BCSDI DIMENDION IBUF(10),JBUF(10) ICHAN=11B CALL CONF(ICHAN) WRITE (1,100) 100 FORMAT ("START") CALL ENDIO READ (1,120) IBUF 120 FORMAT (A2) CALL ENDIO CALL IWRIT (190,0,IBUF,10) PAUSE 1 10 IF (ICHEK(190,0,1))10,20,10 20 CALL IREAD (190,0,JBUF,10) CALL ENDIO WRITE (1,120) JBUF CALL ENDIO CALL DOSM END END$ ASMB,L HED *** HP-7900 DRIVER *** 3/10/72 FKAE NAM DISDR * * *********************************************** * * HP 7900A CARTRIDGE DISC MEMORY DRIVER * * * * * * STEVEN A. STARK * * * HEWLETT-PACKARD * * *********************************************** * * REVISED VERSION WITH DMA SELECT * ---- ERICH TASCHNER SDC-FRANKFURT ---- * 6.APRIL1972 * REVISED VERSION * DIETER SCHMIDTKE, KLAUS-D. KLEIN AUG 72 SDC-FRA * REVISED VERSION * WERNER BUSCH 3.10.72 KAE * IOC VERSION REQUIRED * HP 24173 60001 REV A * * I. IDENTIFICATION - SAS 0052 REV. 0 8/20/70 * ----------------- * II. LANGUAGE - ASSEMBLY LANGUAGE, RELOCATABLE * ------------ * III. TYPE - FORTRAN CALLABLE SUBROUTINE * --------- * IV. LENGHT - 402 (DECIMAL) WORDS * ---------- * V. SPECIAL HARDWARE REQUIRED - * ---------------------------- * * A. HP-7900A CARTRIDGE DISC MEMORY * B. HP-13210A CARTRIDGE DISC MEMORY INTERFACE * C. HP-12895A DIRECT MEMORY ACCESS * * VI. DESCRIPTION - * --------------- * * THIS DRIVER MAY BE CALLED TO READ, WRITE OR CHECK A * BINARY RECORD ON THE DISC. IN EACH CASE, THE DRIVER * WILL FIRST PROCESS THE TRACK AND SECTOR ADDRESSES, * DETERMINING IF THEY'RE IN THE PROPER RANGE AND THEN * CONVERTING THE SECTOR ADDRESS TO A HEAD AND SECTOR * ADDRESS. IT WILL THEN CHECK THE STATUS OF THE DISC * AND IF NO ERROR CONDITIONS ARE DETECTED, IT OUTPUTS * THESE ADDRESSES TO THE DISC CONTROLLER AND WAITS IN * A PROGRAM LOOP UNTIL THE HEADS ARE POSITIONED OVER * THE DESIRED TRACK. NEXT, IF A READING OR A WRITING * OPERATION WAS REQUESTED, THE DRIVER INITIALIZES THE * DIRECT MEMORY ACCESS FOR THE LENGTH AND ADDRESS OF '?* THE DATA ARRAY AND THE DIRECTION OF TRANSFER (INPUT * OR OUTPUT). IT THEN OUTPUTS A READ OR WRITE COMMAND * TO THE DISC AND INITIATES THE DMA TRANSFER. IT WILL * THEN WAIT IN A PROGRAM LOOP UNTIL THE OPERATION IS * COMPLETED, AT WHICH TIME, IT AGAIN DETERMINES THE SKP * * * VI. DESCRIPTION - CONT'D * --------------- * * STATUS OF THE DISC AND THEN RETURNS TO THE CALLING * PROGRAM. * * IF A CHECK DATA OPERATION WAS REQUESTED, THE DRIVER * WILL OUTPUT THE NUMBER OF SECTORS TO BE CHECKED AND * THEN WAIT IN A PROGRAM LOOP UNTIL THE OPERATION IS * COMPLETED.IT WILL AGAIN DETERMINE THE STATUS OF THE * DISC AND THEN RETURN TO THE CALLING PROGRAM. IN THE * EVENT THAT AN ERROR SHOULD OCCUR DURING ANY OF THE * DISC OPERATIONS OR IN ANY OF THE CALLING PARAMETERS * ARE IMPROPERLY SPECIFIED, THE DRIVER WILL RETURN TO * THE CALLING PROGRAM IMMEDIATELY WITH AN APPROPRIATE * ERROR INDICATION. * * VII. ENTRY POINTS - IWRIT,INITL,IREAD,ICHECK,CONF * ----------------- * * VIII. EXTERNAL SUBROUTINES - .ENTR * -------------------------- * * IX. CALLING INFORMATION - * ----------------------- * * TO CONFIGURE THE DRIVER TO THE DISC CHANNELS, * THE DRIVER IS CALLED FROM FORTRAN AS : * * CALL CONF (ICHAN) * * ICHAN - LOWER SELECT CODE OF THE * DISC INTERFACE (OCTAL). * * * TO WRITE A RECORD ON THE DISC, THE DRIVER IS CALLED * FROM FORTRAN AS: * * CALL IWRIT (ITRAK, ISECT, XXXXX, NUMBR) * * OR I = IWRIT (ITRAK, ISECT, XXXXX, NUMBR) * * OR IF (IWRIT (ITRAK, ISECT, XXXXX, NUMBR)) 10,20,30 * * TO WRITE A RECORD AND INITIALIZE THE DISC, THE DRIVER * IS CALLED FROM FORTRAN AS: * * CALL INITL (ITRAK, ISECT, XXXXX, NUMBR, NFLAG) * * OR I = INITL (ITRAK, ISECT, XXXXX, NUMBR, NFLAG) * * OR IF (INITL (ITRAK, ISECT, XXXXX, NUMBR, NFLAG)) 10,20,30 t * SKP * * IX. CALLING INFORMATION CONT'D * ------------------------ * * TO READ A RECORD FROM THE DISC, THE DRIVER IS CALLED * FROM FORTRAN AS: * * CALL IREAD (ITRAK, ISECT, XXXXX, NUMBR) * * OR I = IREAD (ITRAK, ISECT, XXXXX, NUMBR) * * OR IF (IREAD (ITRAK, ISECT, XXXXX, NUMBR)) 10,20,30 * * * * * WHERE ITRAK - AN INTEGER VARIABLE OR CONSTANT, * IN THE RANGE OF 0 TO 202, WHICH * SPECIFIES THE DESIRED CYLINDER * ADDRESS. * * ISECT - AN INTEGER VARIABLE OR CONSTANT, * IN THE RANGE OF 0 TO 95 WHICH * SPECIFIES THE SECTOR ADDRESS, AS * SHOWN BELOW- * * 0 - 47 RELOVABLE DISC PACK * 48 - 95 FIXED DISC PACK * * XXXXX - NAME OF AN INTEGER OR FLOATING * POINT ARRAY CONTAINING THE DATA * TO BE WRITTEN OR WHERE THE DATA * READ WILL BE STORED. * * NUMBR - AN INTEGER VARIABLE OR CONSTANT, * IN THE RANGE OF 1 TO 3072, WHICH * SPECIFIES THE DESIRED NUMBER OF * WORDS TO BE WRITTEN OR READ. * * NFLAG - AN OPTIONAL PARAMETER WHICH MAY * ONLY BE USED WITH INITL. IT IS * AN INTEGER VARIABLE OR CONSTANT * WHICH SPECIFIES THE DESIRED FLAG * TO BE WRITTEN WITHIN THE ADDRESS * FIELD, AS SHOWN BELOW- * * * NO. INDICATOR * --- ----------------- * * 0 NO FLAG WRITTEN * )P 1 DEFECTIVE CYLINDER * 2 PROTECTED CYLINDER * * SKP * * IX. CALLING INFORMATION - CONT'D * ------------------------ * * * TO CHECK DATA ON THE DISC, THE DRIVER IS CALLED FROM * FORTRAN AS: * * I = ICHEK (ITRAK, ISECT, NSECT) * * OR IF (ICHEK (ITRAK, ISECT, NSECT)) 10,20,30 * * WHERE ITRAK - AN INTEGER VARIABLE OR CONSTANT, * IN THE RANGE OF 0 TO 202, WHICH * SPECIFIES THE DESIRED CYLINDER * ADDRESS. * * * * * ISECT - AN INTEGER VARIABLE OR CONSTANT, * IN THE RANGE OF 0 TO 95, WHICH * SPECIFIES THE SECTOR ADDRESS, AS * SHOWN BELOW- * * 0 - 47 REMOVABLE DISC PACK * 48 - 95 FIXED DISC PACK * * NSECT - AN INTEGER VARIABLE OR CONSTANT, * IN THE RANGE OF 0 TO 48, WHICH * SPECIFIES THE DESIRED NUMBER OF * SECTORS TO BE CHECKED. * * AND WHERE THE VALUE OF THE FUNCTIONS UPON EXIT ARE: * * -32768 DMA BUSY * -1 COMMAND ERROR * 0 NORMAL RESPONSE * 1 DISC BUSY * 2 DISC NOT READY * 3 SEEK ERROR * 4 DATA ERROR * 5 FLAGGED CYLINDER * 6 ADDRESS ERROR * 7 END OF CYLINDER * SKP * * X. PROGRAMMING NOTES - * -------------------- * * IF THE DRIVER HAS NOT RECIEVED A 'CALL CONF', * E.G. NO SELECT CODE FROM EXTERNAL, IT WILL HALT * WITH 'HALT 31B'. AFTER THIS HALT THE USER MAY * INPUT THE DISC SELECT CODE FROM SWITCH REGISTE=R * BY SETTING THE LOWER SLOT INTO THE REGISTER AND * PRESSING RUN. * * * SKP * * * XI. PROGRAM LISTING - * ------------------- * * * DISC1 EQU 13B <== <== I/O SLOT DISC2 EQU DISC1+1 * ENT IWRIT,INITL,IREAD,ICHEK,CONF EXT .ENTR EXT .IOC. * * * IWRIT ENTRY POINT * * TRAK1 BSS 1 BUFFER FOR SECT1 BSS 1 CURRENT PARAMETER ADDR1 BSS 1 ADDRESSES NUMB1 BSS 1 IWRIT NOP ENTRY/EXIT JSB .ENTR GET PARAMETER ADDRESSES DEF TRAK1 * JSB CHECK * LDA IWRIT GET RETURN ADDRESS STA RETRN SAVE IT FOR COMMON EXIT LDA WRCMD GET DISC WRITE COMMAND STA OPER SAVE AS CURRENT OPERATION * LDA TRAK1,I GET TRACK & SECTOR LDB SECT1,I ADDRESSES JSB SETUP POSITION HEADS * LDA ADDR1 GET BUFFER ADDRESS & LDB NUMB1,I LENGTH JMP DXFER WRITE RECORD ON DISC * * * INITL ENTRY POINT * * TRAK2 BSS 1 BUFFER FOR SECT2 BSS 1 CURRENT PARAMETER ADDR2 BSS 1 ADDRESSES NUMB2 BSS 1 CFLAG OCT 0 INITL NOP ENTRY/EXIT JSB .ENTR GET PARAMETER ADDRESSES DEF TRAK2 * JSB CHECK * LDA INITL GET RETURN ADDRESS STA RETRN SAVE IT FOR COMMON EXIT CLB LDA CFLAG GET FLAG CODE ADDRESS SZA,RSS WAS FLAG PARAM SPECIFIED? JMP *+3 NO, SKIP NEXT PART * LDB A,I GET FLAG CODE BLF,BLF MOVE IT TO BITS 8-9 LDA INCMD GET INITIALIZE DATA COMMAND IOR B MERGE IN FLAG CODE STA OPER SAVE AS CURRENT OPERATION CLA RESET FLAG CODE ADDRESS STA CFLAG TO 0 * LDA TRAK2,I GET TRACK & SECTOR LDB SECT2,I ADDRESSES JSB SETUP POSITION HEADS * LDA ADDR2 GET BUFFER ADDRESS & LDB NUMB2,I LENGTH JMP DXFER WRITE RECORD ON DISC * * * IREAD ENTRY PO'}INT * * TRAK3 BSS 1 BUFFER FOR SECT3 BSS 1 CURRENT PARAMETER ADDR3 BSS 1 ADDRESSES NUMB3 BSS 1 IREAD NOP ENTRY/EXIT JSB .ENTR GET PARAMETER ADDRESSES DEF TRAK3 * JSB CHECK CHECK IF CONFIGURED * LDA IREAD GET RETURN ADDRESS STA RETRN SAVE FOR COMMON EXIT LDA RDCMD GET DISC READ COMMAND STA OPER SAVE AS CURRENT OPERATION * LDA TRAK3,I GET TRACK & SECTOR LDB SECT3,I ADDRESSES JSB SETUP POSITION HEADS * LDA ADDR3 GET BUFFER ADDRESS IOR BIT15 SET BIT 15 = 1 (INPUT) LDB NUMB3,I GET BUFFER LENGTH JMP DXFER READ RECORD FROM DISC * SKP * * * ICHEK ENTRY POINT * * TRAK4 BSS 1 BUFFER FOR SECT4 BSS 1 CURRENT PARAMETER NUMB4 BSS 1 ADDRESSES ICHEK NOP ENTRY/EXIT JSB .ENTR GET PARAMETER ADDRESSES DEF TRAK4 * JSB CHECK CHECK IF CONFIGURED * LDA ICHEK GET RETURN ADDRESS STA RETRN SAVE FOR COMMON EXIT CCA STA LTRAC PRESET LASTTRACK LDA TRAK4,I GET TRACK & SECTOR LDB SECT4,I ADDRESSES JSB SETUP POSITION HEADS * LDA NUMB4,I GET # SECTORS STA B SAVE IN B-REG SSB,RSS IS IT < 0? SZB,RSS IS IT = 0? JMP CMDER YES, GO TO ERROR EXIT ADB DM25 SUBTRACT MAX # SECTORS SSB,RSS IS IT > MAX #? JMP CMDER YES, GO TO ERROR EXIT * LDB CKCMD GET CHECK DATA COMMAND .OTB OTB DISC2 OUTPUT IT TO CONTROLLER .CLC CLC DISC2 INITIALIZE CONTROLLER .STC STC DISC2,C JSB OUTPT OUTPUT # SECTORS TO CONTROLLER .SFS SFS DISC2 WAIT FOR CONTROLLER TO JMP *-1 FINNISH JMP ERRCK CHECK FOR ERRORS & EXIT * SKP * SUBROUTINE TO PROCESS PARAMETERS AND * POSTION HEADS * SETUP NOP ENTRY/EXIT STB TEMPX SAVE SECTOR # STA B  SAVE TRACK ADDRESS IN B-REG SSB IS IT < 0? JMP CMDER YES, GO TO ERROR EXIT ADA TRMAX SUBTRACT MAX TRACK # SSA,RSS IS IT > TRMAX? JMP CMDER YES, GO TO ERROR EXIT STB TEMP SAVE IT * LDB TEMPX GET SECTOR # AGAIN SSB IS IT < 0? JMP CMDER YES, GO TO ERROR EXIT LDA B GET SECTOR # IN A-REG ADA SCMAX SUBTRACT MAX SECTOR # SSA,RSS IS IT > SCMAX? JMP CMDER YES, GO TO ERROR EXIT * CLA,RSS SET A = 0, SKIP INA INDEX HEAD # ADB DM12 SUBTRACT 12 FROM SECTOR # SSB,RSS IS RESULT < 0? JMP *-3 NO, RETURN & INDEX HEAD # ADB D12 ADD 12 TO MAKE POSITIVE AGAIN ALF,ALF MOVE HEAD # TO BITS 8-15 IOR B MERGE IN SECTOR # STA TEMPX SAVE THEM * LDA INST1 PUT CLC IN DISC TRAP CELLS STA DISC1 LDA INST2 STA DISC2 JSB BSYCK CHECK STATUS OF DISC * LDA SKCMD GET SEEK RECORD COMMAND LDB LTRAC GET LASTTRACK CPB TEMP 'SAME NOW ? LDA ARCMD WE NEED ONLY ADDRESS COMM. * SO WE SPEED UP OPERATION ! .OTA2 OTA DISC2 OUTPUT IT .CLC4 CLC DISC2 INITIALIZE CONTROLLER .STC5 STC DISC2,C * LDA TEMP GET TRACK # STA LTRAC SAVE AS LAST TRACK JSB OUTPT OUTPUT IT TO CONTROLLER LDA TEMPX GET HEAD #/SECTOR # JSB OUTPT OUTPUT IT TO CONTROLLER * .SFS1 SFS DISC2 WAIT FOR DRISC DRIVE TO JMP *-1 FINNISH JSB SKCHK CHECK FOR ANY ERRORS JMP SETUP,I -RETURN SKP * * ROUTINE TO PROCESS PARAMETERS AND * READ OR WRITE RECORD ON DISC * DXFER CMB,INB MAKE LENGTH NEGATIVE STB LENTH SAVE FOR DMA STA ADDRS SAVE ADDRESS FOR DMA * JSB BSYCK CHECK STATUS OF DISC * * CHECK FOR AVAILABLE DMA CHANNEL * LDA HELP GET .IOC. ADDR. i AND =B077777 REMOVE IND-BIT LDA 0,I GET EFF.-ADDR ADA =B221 STA DMAC1 INA STA DMAC2 LDB DMAC1,I GET DMA1 INDICATOR CCE,SZB,RSS DMA DEFINED ? JMP NODMA NO SSB YES,IS DMA BUSY ? JMP CH2 YES,TRY 2. CHAN STB DMA2 NO,SAVE CHAN# RBL,ERB SET THIS STB DMAC1,I CHAN. BUSY JMP CONF1 GO TO CONFIGURE DMA-INSTR. CH2 LDB DMAC2,I GET DMA2 INDICATOR SZB,RSS IS DMA2 DEFINED ? JMP DMBUS NO (2114) SSB,RSS IS DMA2 BUSY ? JMP D2 NO DMBUS LDA BIT15 YES,FLAG DMA BUSY JMP RETRN,I AND RETURN TO CALLER NODMA LDA RETRN DISPLAY RET ADDRESS LDB =D-3 AND NO DMA INDICATOR HLT 6B >>>>HALT<<<< JMP *-1 IRRECOVERABLE * D2 STB DMA2 SAVE CHAN # RBL,ERB SET THIS STB DMAC2,I CHAN. BUSY * * CONFIGURE DMA-INSTRUCTIONS * CONF1 LDA DMA2 GET CHAN# LDB 0,I GET TRAPPC. CONT STB DSAV SAVE STA 1 ADB CLC CLC DMA STB 0,I INTO TRAPCELLE ADA =D-4 FIND LOWER DMA SC ADA =B102600 STA D1.1 OTA DMA1 ADA =B1100 STA D1.2 STC DMA1 ADA =B2700 STA D1.3 OTB DMA1 ADA =B100 STA D1.0 CLC DMA1 LDA DMA2 GET CHAN # ADA =B102100 ADA =B500 STA D2.1 OTA DMA2 ADA =B1100 STA D2.2 STC DMA2 ADA =B3000 STA D2.3 CLC DMA2 STA DMA2,I TO TRAP CELL LDA CONWD GET DMA CONTROL WORD D2.1 NOP OTA DMA2 D1.0 NOP CLC DMA1 * LDA ADDRS GET BUFFER ADDRESS D1.1 NOP OTA DMA1 OUTPUT IT TO DMA D1.2 NOP STC DMA1 LDB LENTH GET BUFFER LENGTH D1.3 NOP OTB DMA1 OUTPUT IT TO DMA * LDB OPER GET CURRENT OPERATION COMMAND .OTB1 OTB DISC2 OUTPUT IT TO CONTROLLER .CLC1 CLC DISC2 INITIALIZE CONTROLLER * SSA,RSS  IF BIT 15 OF ADDRESS = 1, JMP *+3 INITIATE FIRST TRANSFER .STC1 STC DISC1,C RSS IF BIT 15 OF ADDRESS = 0, .STF STF DISC1 CLEAR FIRST TRANSFER D2.2 NOP STC DMA2,C INITIALIZE DMA AND .STC6 STC DISC2,C DISC CONTROLLER * .SFS2 SFS DISC2 WAIT FOR DISC DRIVE TO JMP *-1 FINNISH D2.3 NOP CLC DMA2 CLEAR DMA * * CLEAR DMA INDICATOR * LDA DMA2 LDB DSAV GET OLD CONTENCE STB 0,I RESTORE CPA =B6 JMP *+3 STA DMAC2,I RSS STA DMAC1,I JMP ERRCK CHECK FOR ERRORS & EXIT * SKP * * SUBROUTINE TO OUTPUT CONTROL WORD TO * DISC CONTROLLER VIA DATA CHANNEL * OUTPT NOP ENTRY/EXIT .OTA OTA DISC1 OUTPUT WORD TO CONTROLLER .STC2 STC DISC1,C INITIALIZE CONTROLLER .SFS3 SFS DISC1 WAIT FOR CONTROLLER JMP *-1 TO RESPOND JMP OUTPT,I -RETURN * * STATUS CHECK ROUTINES * BSYCK NOP ENTRY/EXIT JSB STAT GET DISC STATUS CLB,INB SET ERROR INDICATOR = 1 AND BIT2 ISOLATE DISC BUSY BIT SZA DISC BUSY? JMP EXIT YES...EXIT * INB SET ERROR INDICATOR = 2 JSB STAT GET DISC STATUS AND BIT6 ISOLATE DISC READY BIT SZA DISC READY? JMP EXIT NO...EXIT JMP BSYCK,I RETURN TO MAIN PROGRAM * SKCHK NOP ENTRY/EXIT JSB STAT GET DISC STATUS ALF,ALF MOVE BITS 8-10 TO BITS 0-2 AND M7 ISOLATE THEM LDB D3 SET ERROR INDICATOR = 3 SZA SEEK ERROR? JMP EXIT YES...EXIT JMP SKCHK,I RETURN TO MAIN PROGRAM * ERRCK JSB STAT GET DISC STATUS LDB D4 SET ERROR INDICATOR = 4 RAR SLA DATA ERROR? JMP EXIT YES...EXIT * RAR,RAR INB SET ERROR INDICATOR = 5 SLA FLAGGED CYLINDER? JMP EXIT YES...EXIT *  RAR INB SET ERROR INDICATOR = 6 SLA ADDRESS ERROR? JMP EXIT YES...EXIT * RAR INB SET ERROR INDICATOR = 7 SLA,RSS END OF CYLINDER? CLB NO...SET ERROR INDICATOR = 0 SKP * EXIT LDA 1 LOAD ERROR INDICATOR INTO A JMP RETRN,I RETURN TO CALLING PROGRAM * CMDER CCB SET B = -1 (COMMAND ERROR) JMP EXIT EXIT * * SUBROUTINE TO INPUT STATUS WORD FROM DISC CONTROLLER * STAT NOP ENTRY/EXIT CLA SET A = 0 FOR STATUS COMMAND .OTA1 OTA DISC2 OUTPUT IT .CLC2 CLC DISC2 INITIZLIZE CONTROLLER .STC3 STC DISC2 * .STC4 STC DISC1,C INITIALIZE DATA CHANNEL .SFS4 SFS DISC1 WAIT FOR CONTROLLER JMP *-1 TO RESPOND .LIA LIA DISC1 GET DISC STATUS JMP STAT,I RETURN TO MAIN PROGRAM * * CONFIGURATION ROUTINE * .SC NOP CONF NOP ENTRY JSB .ENTR DEF .SC * LDA .SC,I STA SC LDA CONWD GET CONWD AND =B177700 MASK IOR SC CONFIGURE IT STA CONWD RESTORE IT XOR =B22100 CHANGE TO STF INSTR STA .STF RESTORE IT IOR =B200 CHANGE IT TO SFS INSTR STA .SFS3 STA .SFS4 INA INCREMENT TO SECOND CHANNEL STA .SFS STA .SFS1 STA .SFS2 XOR =B500 CHANGE TO OTA INSTR STA .OTA1 STA .OTA2 CCB ADA B DECREMENT CHANNEL# STA .OTA IOR =B1100 CHANGE TO STC ,C INSTR STA .STC1 STA .STC2 STA .STC4 INA INCREMENT CHANNEL# STA .STC STA .STC5 STA .STC6 STA .STC3 XOR =B5000 CHANGE TO CLC INSTR STA .CLC4 STA .CLC STA .CLC1 STA .CLC2 STA INST2 ADA B DECREMENT CHANNEL# STA INST1 XOR =B4200 CHANGE3B@< TO LIA INSTR STA .LIA XOR =B4300 CHANGE TO OTB INSTR INA INCREMENT CHANNEL# STA .OTB STA .OTB1 * CLA STA ACH SWITCH IF CONF JMP CONF,I * * CHECK IF CONFIGURED * CHECK NOP ENTRY ACH RSS WILL BE NOP ,IF CONF WAS RUNNING ONCE JMP CHECK,I RETURN IF CONFIGURED * HLT 31B >>>>>HALT<<<< LIA 1 GET SC FROM SWITCH REG. SZA,RSS IS INPUT ZERO ? JMP *-3 YES, HLT AGAIN ! STA SC NO, GO ON JSB CONF GO TO CONFIGURE DEF *+2 RETURN POINTER DEF SC JMP CHECK,I RETURN TO CALLER * SC NOP * * * CONSTANTS * ADDRS BSS 1 LENTH BSS 1 RETRN BSS 1 OPER BSS 1 TEMP BSS 1 TEMPX BSS 1 * D3 DEC 3 D4 DEC 4 D12 DEC 24 DM12 DEC -24 DM25 DEC -49 TRMAX DEC -203 LTRAC DEC -1 DMA2 NOP DMAC1 NOP DMAC2 NOP HELP DEF .IOC. SCMAX DEC -96 * A EQU 0 B EQU 1 CONWD ABS 120000B+DISC1 WRCMD OCT 010000 RDCMD OCT 020000 SKCMD OCT 030000 CKCMD OCT 060000 INCMD OCT 110000 ARCMD OCT 130000 M7 OCT 7 BIT2 OCT 4 BIT6 OCT 100 BIT15 OCT 100000 * INST1 CLC DISC1 INST2 CLC DISC2 CLC CLC 0 DSAV NOP * END 2B  22681-18033 1508 SC 0322 ENTEX: FACILITATES CRTION OF SRCE FRM 2600 KYBD             H0103 #ZFTN4,L PROGRAM ENTEX LOGICAL L1,L2,L7,LN,LMTOU,LLPOU,LPNCH,LDONL,LNDSK,LEAR DIMENSION LKEY(20), KEY(20), KETXT(20,20), LINE(80), LAST(73), 1 IBUF(73,5), LTOP(73), LU(8), LN(3), NAME(3), IDBUF(256) 2, LP(37), LINP(36) EQUIVALENCE (LINE(1),LN1), (LINE(2),LN2), (LINE(3),LN3), O (LINE(4),LN4), (LP(1),LP1), (LP(2),LINP(1)), 1 (LINE(73),LLINE), (LAST(1),IBUF(1,1)), (LAST(73),LLAST), 2 (LTOP(1),IBUF(1,5)), (LTOP(73),LLTOP) 3,(LU(1),LU1),(LU(2),LU2),(LU(4),LU4),(LU(5),LU5),(LU(6),LU6) 4,(LU(8),LU8) C VARIABLES ASSIGNMENTS: C L1 = TEMP C L2 = "IS TEXT STACK IBUF FULL (5 LINES) ?" C L7 = "PRINT DIAGNOSTICS ?" C LN(1-3) = NO TEXT OUT ON (PNCH,LP,MT) C LMTOU = TEXT OUT ON MAG TAPE C LLPOU = TEXT OUT ON LINE PRINTER C LPNCH = TEXT OUT ON PUNCH C TEXT OUT TO DISC ONLY C LNDSK = TEXT NOT STORED ON DISK C LEAR = "CLEAR" INPUT MODE (IGNORE SPECIAL CHARACTERS) C KGO = GET OUTPUT DEVICE FOR (KEY CHAR, TEXT) C MGO = EOF(@@) (HAS NOT, HAS) BEEN INPUT C ARRAY ASSIGNMENTS: C IBUF(73,5) = CORE STACK OF LAST 5 LINES ENTERED C 5 LINES * 72 CHARACTERS + LENGTH (73) C LTOP, LAST = TOP (5'TH) AND LAST-ENTERED (1'ST) C LINES IN IBUF C IDBUF(128) = DISC SECTOR BUFFER C KEY(20) = 20 KEY CHARACTERS C LKEY(20) = LENGTH OF ASSOCIATED KEY TEXT C KETXT(20,20) = KEY TEXT (20 CHARACTERS / KEY) C LINP(36) = TEXT OUT BUFFER C LP(37) = TEXT OUT BUFFER FOR LP (LEADING BLANK) C C ** CHANGE THE FOLLOWING LINE FOR DIFFERENT LU ASSIGNMENTS: DATA LU/1,1,3,4,5,6,7,8/ DATA LCR,LPU,LRD,LLP,LMT,LSE/2HCR,2HPN,2HRD,2HLP,2HMT,2H/E/ DATA LLU,LDI,LNO/2HLU,2HDI,2HNO/ DATA LKEY, KETXT/20*0,400*40B/ DATA N256/256/ C STARTUP & I/O INITIALIZATION: C WRITE(LU2,600) 600 FORMAT(//10X,">>> TEXT ENTRRNY <<<"// 17X,">> G. HALLMAN - HPCL/TDC <<"/ 2 4X,"REL=JUL'74") NKEY = 0 KSECT = 0 KWD = 0 1 L2 = .FALSE. LEAR = .FALSE. KFULL = 0 KLINE = -5 WRITE(LU2,599) 599 FORMAT(//"INPUT KEY CHARACTERS (T/F) ? _") READ(LU1,501) L1 501 FORMAT(L1) IF(.NOT.L1) GO TO 2 KGO = 1 MGO = 1 3 WRITE(LU2,601) 601 FORMAT("INPUT FROM CRT, RDR, OR DISC? _") READ(LU1,503) INPUT 503 FORMAT(6(A2,1X)) LUIN = 0 IF(INPUT.EQ.LLU) GO TO 81 IF(INPUT.EQ.LCR) LUIN = LU1 IF(INPUT.EQ.LRD) LUIN = LU5 IF(INPUT.EQ.LDI) GO TO 6 IF(LUIN.EQ.0) GO TO 3 C NOW LUIN, LUOUT ARE SET FOR "KEY" INPUT: IF(LUIN.EQ.LU1) WRITE(LU2,611) 611 FORMAT("INPUT KEY CHARACTERS & TEXT:"//"@K ...KEY TEXT.........") IF(NKEY.GT.0) WRITE(LU2,608) (KEY(M),(KETXT(M,N),N=1,20),M, 1 M=1,NKEY) 15 NKEY = NKEY + 1 IF(NKEY.GT.20) GO TO 76 READ(LUIN,502) I, (KETXT(NKEY,M),M=1,20) 502 FORMAT(1X,R1,1X,20R1) IF(I.EQ.100B) GO TO 18 KEY(NKEY) = I DO 16 I=20,1,-1 J = KETXT(NKEY,I) IF(J.EQ.135B) GO TO 14 IF(J.NE.40B) GO TO 17 16 CONTINUE WRITE(LU2,631) KEY(NKEY) 631 FORMAT(7HKEY "@,R1,10H" IS NULL!) NKEY = NKEY - 1 GO TO 15 14 I = I - 1 17 LKEY(NKEY) = I IF(I.LT.2) I=2 IF(I.LT.20) KETXT(NKEY,I+1) = 135B DO 70 J=I,1,-1 IF(KETXT(NKEY,J).EQ.30B) KETXT(NKEY,J) = 40B 70 CONTINUE GO TO 15 76 I = 40100B WRITE(LU2,503) I 18 NKEY = NKEY - 1 GO TO 13 6 WRITE(LU2,605) 605 FORMAT("FILE NAME = _") READ(LU1,505) NAME 505 FORMAT(3A2) CALL EXEC(18,NAME,NSECT) IF((KGO.EQ.2.AND.NSECT.GT.0).OR.(KGO.EQ.1.AND.NSECT.EQ.2)) 1 GO TO (7,44), KGO 46 WRITE(LU2,606) NAME 606 FORMAT("FILE NOT FOUND. HALT PROGRAM AND TYPE..."/ 1":ST,B,",3A2,,2 ...OR ENTER NEW _") GO TO 6 7 CALL EXEC(14,102B,IDBUF,241,NAME,0) NKEY = IDBUF(241) DO 9 I=1,NKEY LKEY(I) = IDBUF(I) 9 KEY(I) = IDBUF(I+20) I = 40 DO 108 J=1,NKEY DO 109 K=1,19,2 I = I + 1 L = IDBUF(I) M = L/N256 KETXT(J,K) = M 109 KETXT(J,K+1) = L - M*N256 108 CONTINUE C GET OUTPUT DEVICE: 13 WRITE(LU2,602) 602 FORMAT("OUTPUT ON PNCH, LP, _") GO TO (4,5), KGO 4 WRITE(LU2,603) 603 FORMAT("CRT, DISC, OR NONE ? _") GO TO 10 5 WRITE(LU2,604) 604 FORMAT("DISC AND/OR MT ? _") GO TO 11 C RE-ASSIGN LU#'S: 81 WRITE(LU2,626) (I,LU(I),I=1,8) WRITE(LU2,623) 623 FORMAT("CHANGE LU#_") READ(LU1,*) I IF(I.LT.1.OR.I.GT.8) GO TO 1 WRITE(LU2,624) LU(I) 624 FORMAT("FROM",I2," TO _") READ(LU1,*) LU(I) WRITE(LU2,625) 625 FORMAT("DONE! MORE (T/F)? _") READ(LU1,501) L1 IF(.NOT.L1) GO TO 81 WRITE(LU2,626) (I,LU(I),I=1,8) 626 FORMAT("LU",I1," =",I2) GO TO 1 C 10 LUOUT = 0 READ(LU1,503) I IF(I.EQ.LDI) GO TO 52 IF(I.EQ.LNO) GO TO 77 IF(I.EQ.LCR) LUOUT = LU2 IF(I.EQ.LPU) LUOUT = LU4 IF(I.EQ.LLP) LUOUT = LU6 12 IF(LUOUT.EQ.0) GO TO 13 55 IF(LUOUT.EQ.LU4) GO TO 51 WRITE(LUOUT,609) 609 FORMAT(/"KEY CHARACTERS AND TEXT:") WRITE(LUOUT,608) (KEY(M),(KETXT(M,N),N=1,20),M,M=1,NKEY) 608 FORMAT("@",R1," [",20R1,I4) GO TO 2 51 WRITE(LU4,617) DO 53 I=1,NKEY N = LKEY(I) + 1 IF(N.GT.20) N = 20 53 WRITE(LU4,620) KEY(I),(KETXT(I,M),M=1,N) 620 FORMAT("@",R1,"[",20R1) M = 40100B WRITE(LU4,503) M WRITE(LU4,617) GO TO 2 52 WRITE(LU2,605) READ(LU1,505) NAME CALL EXEC(18,NAME,I) IF(I.EQ.2) GO TO 113 WRITE(LU2,606) NAME GO TO 52 113 DO 110 I=1,NKEY IDBUF(I) = LKEY(I) 110 IDBUF(I+20) = KEY(I) I = 40 DO 111 J=1,NKEY b DO 112 K=1,19,2 I = I + 1 112 IDBUF(I) = KETXT(J,K)*N256 + KETXT(J,K+1) 111 CONTINUE IDBUF(241) = NKEY CALL EXEC(15,102B,IDBUF,241,NAME,0) 2 IF(NKEY.LT.1) GO TO 77 WRITE(LU2,627) 627 FORMAT("CHANGE KEY CHARACTERS (T/F) ? _") READ(LU1,501) L1 IF(.NOT.L1) GO TO 77 IF(LUOUT.EQ.LU2) GO TO 82 WRITE(LU2,609) WRITE(LU2,608) (KEY(M),(KETXT(M,N),N=1,20),M,M=1,NKEY) 82 WRITE(LU2,628) 628 FORMAT(6X,"REPLACE KEY NUMBER _") READ(LU1,*) I IF(I.LT.1.OR.I.GT.NKEY) GO TO 82 READ(LU1,502) KEY(I), (KETXT(I,M),M=1,20) DO 78 J=20,1,-1 IF(KETXT(I,J).NE.40B) GO TO 79 78 CONTINUE 79 IF(J.LT.2) J = 2 LKEY(I) = J IF(J.LT.20) KETXT(I,J+1) = 135B WRITE(LU2,625) READ(LU1,501) L1 IF(L1) GO TO 82 GO TO 13 C KEY CHARACTERS DONE; CHOSE I/O FOR TEXT: 77 WRITE(LU2,610) 610 FORMAT(//"TEXT _") 23 KGO = 2 LUIN = LU1 GO TO 13 C NOW GET OUTPUT LU#(S) FOR TEXT. "OUTPUT TO" HAS BEEN DONE: 11 DO 54 J=1,4 54 LINE(J) = 0 LMTOU = .FALSE. LLPOU = .FALSE. LPNCH = .FALSE. LNDSK = .FALSE. READ(LU1,503) LN1,LN2,LN3,LN4 DO 19 J=1,4 I = LINE(J) IF(I.EQ.0) GO TO 20 IF(I.EQ.LDI) LNDSK = .TRUE. IF(I.EQ.LMT) LMTOU = .TRUE. IF(I.EQ.LLP) LLPOU = .TRUE. 19 IF(I.EQ.LPU) LPNCH = .TRUE. 20 IF(LNDSK) GO TO 6 IF(.NOT.(LPNCH.OR.LMTOU.OR.LLPOU)) GO TO 13 C C INITIALIZATION COMPLETE C 44 MGO = 1 LNDSK = .NOT.LNDSK IF(LNDSK) GO TO 100 WRITE(LU2,633) 633 FORMAT("FILE TYPE BAD_") CALL EXEC(14,102B,IDBUF,128,NAME,0) CALL EXEC(15,102B,IDBUF,128,NAME,0) I = 31B J = 0 WRITE(LU2,634) (I,(J,K=1,16),L=1,3) 634 FORMAT(51R1," OK") NSECT = NSECT - 1 GO TO 100 99 WRITE(LU2,621) 621 FORMAT("BEGIN TEXT:"/) C SET UP OUTPUT FLAG8S: LN(1) = .NOT.LPNCH LN(2) = .NOT.LLPOU LN(3) = .NOT.LMTOU LDONL = LN(1).AND.LN(2).AND.LN(3) DO 22 I=1,5 IBUF(1,I) = 36B 22 IBUF(73,I) = 1 C C TEXT INPUT LOOP STARTS: C 40 DO 34 I=1,80 34 LINE(I) = 40B 27 READ(LUIN,500) (LINE(M),M=1,80) 500 FORMAT(80R1) C C *************************************************************** C * IF USING A TERMINAL OTHER THAN THE HP2600A, INSERT AN * C * ALGORITHM HERE TO REPLACE THE CURSOR CONTROL CHARACTERS OF * C * THE NEW TERMINAL WITH THOSE OF THE 2600A, WHICH ARE USED * C * BY THIS PROGRAM : * C * * C * CURSOR UP = 32B DOWN = 13B * C * LEFT = 31B RIGHT = 30B * C * ERASE EOL = 36B * C *************************************************************** C DO 25 L=80,1,-1 IF(LINE(L).NE.40B) GO TO 26 25 CONTINUE L = 1 26 CONTINUE IF(L.GT.1) GO TO 134 7500 IF(LN1.EQ.67B) GO TO 7091 7501 IF(LN1.EQ.47B) GO TO 7502 IF(LN1.EQ.20B) GO TO 135 IF(LN1.NE.21B) GO TO 134 LEAR = .FALSE. GO TO 137 7502 L7 = .FALSE. 7503 GO TO 137 7091 L7 = .TRUE. GO TO 137 135 LEAR = .TRUE. 137 WRITE(LU2,693) 693 FORMAT("_") GO TO 40 7092 CONTINUE C CHECK FOR EDIT: 134 IF(LEAR) GO TO 50 IF(LN1.EQ.32B) GO TO 30 C PROCESS BACKSPACES (31B) 7007 K7 = 5 7005 IF(L7)WRITE(LU1,7006) K7 7006 FORMAT("##",7I7) IPUT = 1 M = 0 DO 28 I=1,L J = LINE(I) IF(J.EQ.36B) GO TO 115 IF(J.EQ.31B) GO TO 29 IF(IPUT.LE.M) GO TO 114 M = IPUT IF(J.EQ.30B) J = 40B GO TO 117 114 IF(J.EQ.30B) GO TO 118 117 LINE(IPUT) = J 118 IPUT = IPUT + 1 GO TO 28 115 M = IPUT - 1 GO TO 28 29 IPUT = IPUT - 1 IF(IPUT.GT.0) GO TO 28 IPUT = 1 28 CONTINUE L = M IF(L.GT.71) GO TO 36 C CHECK FOR "^" COPY: L1 = .TRUE. DO 49 I=1,L J = LINE(I) IF(J.NE.136B) GO TO 49 L1 = .FALSE. LINE(I) = LAST(I) 49 CONTINUE 7008 K7 = 8 7009 IF(L7)WRITE(LU1,7006) K7 C SCAN FOR KEY REPLACEMENT (@=100B) I = 0 35 I = I + 1 J = LINE(I) IF(J.NE.100B) GO TO 37 I = I + 1 IF(I.GT.72) GO TO 36 J = LINE(I) IF(J.EQ.100B) GO TO 101 DO 38 K=1,NKEY IF(J.EQ.KEY(K)) GO TO 39 38 CONTINUE GO TO 37 36 WRITE(LU2,614) 614 FORMAT(">> LINE OVERFLOW! <<"//) GO TO 59 C MAKE ROOM FOR KEY TEXT: 39 J = LKEY(K) M = J - 2 L1 = .FALSE. IF(M+L.GT.72) GO TO 36 7012 K7 = 12 7013 IF(L7) WRITE(LU2,7006) K7,I,J,K,L,M DO 41 N=L,I+1,-1 41 LINE(N+M) = LINE(N) C INSERT KEY TEXT: I = I - 2 DO 42 N=1,J 42 LINE(I+N) = KETXT(K,N) L = L + M I = I + J 37 IF(I.LT.L) GO TO 35 59 LINE(73) = L IL = 1 C REPEAT LINE IF CHANGED: IF(L1) GO TO 50 WRITE(LU2,613) (LINE(M),M=1,L) 613 FORMAT("",72R1) C OUTPUT END LINE, MOVE STACK: 50 KLINE = KLINE + 1 IF(L2) GO TO 56 7002 K7 = 2 7003 IF(L7)WRITE(LU1,7006)K7,KLINE,KFULL L2 = KLINE.GE.KFULL GO TO 47 C C READY TO OUTPUT TOP OF TEXT STACK: C ADD EXTRA BLANK: 56 IF(LLTOP.LT.72) LTOP(LLTOP+1) = 40B L = (LLTOP+1) / 2 IF(LDONL) GO TO 138 C C NOTE: THIS PROGRAM USES OUTPUT "WITHOUT WAIT". TO TAKE C FULL ADVANTAGE OF THIS FEATURE, ALL (BUT ONE) OF C THE DOS OUTPUT DRIVERS REQUIRED BY THIS PROGRAM MUST BE C CORE RESIDENT. C C CHECK STATUS; ALL OUTPUT MUST BE DONE BEFORE C ALTERING BUFFER: DO 139 I=1,3 IF(LN(I)) GO TO 139  J = LU(I+I+2) 21 CALL EXEC(13,J,K,M) IF(K.LT.0) GO TO 21 139 CONTINUE C PACK OUTPUT BUFFER: 138 DO 24 I=1,L K = I + I 24 LINP(I) = LTOP(K-1) * N256 + LTOP(K) IF(LDONL) GO TO 31 LP1 = 20040B DO 43 I=1,3 IF(LN(I)) GO TO 43 J = LU(I+I+2) IF(I.EQ.2) GO TO 128 CALL EXEC(2,20000B+J,LINP,L) GO TO 43 128 CALL EXEC(2,20000B+J,LP,L+1) 43 CONTINUE IF(LNDSK) GO TO 47 31 KWD = KWD + 1 IDBUF(KWD) = L * N256 IF(KWD.LT.128) GO TO 85 7400 K7 = 20 7401 IF(L7) WRITE(LU2,7006) K7,KWD,KSECT KWD = 0 CALL EXEC(15,102B,IDBUF,128,NAME,KSECT) KSECT = KSECT + 1 85 DO 86 I=1,L KWD = KWD + 1 IDBUF(KWD) = LINP(I) IF(KWD.LT.128) GO TO 86 7402 K7 = 21 7403 IF(L7) WRITE(LU2,7006) K7,KWD,KSECT,I KWD = 0 CALL EXEC(15,102B,IDBUF,128,NAME,KSECT) KSECT = KSECT + 1 86 CONTINUE IF(KSECT-NSECT) 47, 87, 88 87 GO TO (89,47), MGO 89 WRITE(LU2,607) NAME, NSECT 607 FORMAT("FILE ",3A2,"IS FULL(",I3," SECT). TERMINATE INPUT (@@)") GO TO 47 88 WRITE(LU2,622) (LTOP(M),M=1,LLTOP) 622 FORMAT("TEXT WAS LOST FROM LINE:"/72R1) C TURN OFF DISC OUTPUT, PUT 'EOF' ON DISC: LNDSK = .TRUE. DO 80 L=128,1,-1 J = IBUF(L) IF(J - (J/N256)*N256.EQ.0) GO TO 91 80 CONTINUE 91 IF(L.LT.1) L = 1 IDBUF(L) = 0 IF(L.LT.128) IDBUF(L+1) = 177777B K = KSECT - 1 CALL EXEC(15,102B,IDBUF,128,NAME,K) 47 IF(IL.GT.4) GO TO 136 DO 48 I=4,IL,-1 K = I + 1 L = IBUF(73,I) DO 150 J=1,L 150 IBUF(J,K) = IBUF(J,I) 48 IBUF(73,K) = L IF(IL.GT.1) GO TO 136 DO 151 I=1,73 151 IBUF(I,1) = LINE(I) GO TO(40,103), MGO 136 IBUF(1,IL) = 40B IBUF(73,IL) = 1 GO TO 83 C END OF INPUT; DUMP IBUF: 101 MGO = 2 100 IF(.NOT.L2) GO TO 102 KE = KLINE + 5 IL = 1 b103 IF(KLINE.LT.KE) GO TO 50 102 WRITE(LU2,615) 615 FORMAT("NORMALIZE OUTPUT UNITS (T/F)? _") READ(LU1,501) L1 IF(.NOT.L1) GO TO 104 IF(.NOT.LMTOU) GO TO 95 GO TO (58,57), MGO 57 ENDFILE LU8 GO TO 95 58 REWIND LU8 95 IF(LLPOU) WRITE(LU6,616) 616 FORMAT(1H1) IF(LPNCH) WRITE(LU4,617) 617 FORMAT(45(""),"_") IF(LNDSK.OR.MGO.LT.2) GO TO 104 7404 K7 = 33 LN1 = 0 LN2 = 177777B DO 92 I=1,2 KWD = KWD + 1 IDBUF(KWD) = LINE(I) IF(KWD.LT.128) GO TO 92 7405 IF(L7) WRITE(LU2,7006) K7,KWD,KSECT,I KWD = 0 CALL EXEC(15,102B,IDBUF,128,NAME,KSECT) KSECT = KSECT + 1 92 CONTINUE 7406 K7 = 34 7407 IF(L7) WRITE(LU2,7006) K7, KWD, KSECT IF(KWD.GT.0) CALL EXEC(15,102B,IDBUF,128,NAME,KSECT) IF(KWD.GE.2) KWD = KWD - 2 K = KSECT + 1 WRITE(LU2,632) NAME, K, K 632 FORMAT(3A2,"=",I3," SECTORS. TO STORE AS SOURCE FILE, TYPE:" 1/":ST,B,NEWNAME,",I3,8X,"- AND -"/":PR,COPY"/) 104 GO TO(99,98), MGO 98 WRITE(LU2,629) 629 FORMAT("ALL DONE (T/F) ? _") READ(LU1,501) L1 IF(.NOT.L1) GO TO 1 WRITE(LU2,618) 618 FORMAT(//">> NORMAL TERMINATION <<"//) STOP C C EDIT SECTION: C 30 IL = 0 IC = 1 JGO = 1 DO 60 I=1,L J = LINE(I) 7060 K7 = 60 7061 IF(L7) WRITE(LU2,7006) K7,I,J,JGO,IBUF(73,IL) C CHECK FOR END-OF-EDIT (CTRL-"E" = 5B): IF(J.EQ.5B) GO TO 83 IF(J.EQ.36B) GO TO 90 GO TO(65,66,67), JGO 65 IF(J.EQ.30B) GO TO 61 IF(J.EQ.32B) GO TO 62 IF(J.EQ.31B) GO TO 63 IF(J.EQ.13B) GO TO 64 JGO = 2 C JGO = 1 DURING CURSOR PLACEMENT = 3 DURING TEXT INSERTION C = 2 DURING TEXT OVERLAY = 4 DURING DELETE C C CHECK FOR INSERTION (CTRL-"I" = 11B) 66 IF(J.EQ.11B) GO TO 71 C CHECK FOR DELETION (@ = 100B) IF(J.EQ.100B) GO TO 72 C OoVERLAY ASCII TEXT: IF(J.EQ.30B) GO TO 61 IF(J.EQ.31B) GO TO 63 IF(J.EQ.32B.OR.J.EQ.13B) GO TO 69 7030 K7 = 20 7020 IF(L7)WRITE(LU2,7006) K7, IC, IL 119 M = IBUF(73,IL) IF(IC.GT.M) M = IC GO TO 84 C 61 IC = IC + 1 7031 K7 = 21 7021 IF(L7)WRITE(LU2,7006) K7, IC, IL IF(IC.LE.IBUF(73,IL)+1) GO TO 120 JGO = 2 J = 40B IC = IC - 1 GO TO 119 62 IL = IL + 1 7032 K7 = 22 7022 IF(L7)WRITE(LU2,7006) K7, IC, IL IF(IL.LE.5) GO TO 120 GO TO 69 63 IC = IC - 1 7033 K7 = 23 7023 IF(L7)WRITE(LU2,7006) K7, IC, IL IF(IC.LT.1) IC = 1 120 JGO = 1 GO TO 60 64 IL = IL - 1 7034 K7 = 24 7024 IF(L7)WRITE(LU2,7006) K7,IC,IL IF(IL.GT.0) GO TO 120 GO TO 69 C CHECK FOR LINE INSERT: 71 IF(IC.LT.2.AND.I.EQ.L) GO TO 50 JGO = 3 GO TO 60 C DELETE TO EOL: 90 IF(IC.LT.2.AND.I.EQ.L) GO TO 130 IBUF(73,IL) = IC - 1 GO TO 60 C DELETE SINGLE CHARACTER: 72 M = IBUF(73,IL) DO 73 K=IC+1,M 73 IBUF(K-1,IL) = IBUF(K,IL) 7072 K7 = 72 7073 IF(L7) WRITE(LU2,7006) K7,M,IC,J IBUF(M,IL) = 40B IBUF(73,IL) = M - 1 GO TO 60 C INSERT TEXT: 67 IF(J.EQ.13B.OR.J.EQ.30B.OR.J.EQ.31B.OR.J.EQ.32B) GO TO 69 M = IBUF(73,IL) + 1 7035 K7 = 25 7025 IF(L7)WRITE(LU2,7006) K7, J, M, IC, IL, IBUF(73,IL) IF(M.GT.72) GO TO 69 DO 68 K=M,IC+1,-1 68 IBUF(K,IL) = IBUF(K-1,IL) 84 IBUF(73,IL) = M IBUF(IC,IL) = J IC = IC + 1 60 CONTINUE C REWRITE IBUF: 83 WRITE(LU2,630) 630 FORMAT(">>") 75 DO 74 I=5,1,-1 L = IBUF(73,I) 74 WRITE(LU2,500) (IBUF(M,I),M=1,L) GO TO 40 C DELETE LINE "IL": 130 IF(IL.GE.5) GO TO 131 DO 132 I=IL,4 K = I + 1 L = IBUF(73,K) DO 133 J=1,L 133 IBUF(J,I) = IBUF(J,K) IBUF(73,I) = L 132 CONTINUE 131 LTOP(1) 6<:6= 36B LTOP(73) = 1 IF(L2) KFULL = KLINE KLINE = KLINE - 1 L2 = .FALSE. GO TO 83 69 WRITE(LU2,630) WRITE(LU2,619) 619 FORMAT("EDIT ERROR!") GO TO 83 END END$ #<FTN4,L PROGRAM COPY LOGICAL L1 DIMENSION NAME(3,2),NAME1(3),NAME2(3),ITX(2,2),NSECT(2),IBUF(128) EQUIVALENCE (NAME(1,1),NAME1(1)),(NAME(1,2),NAME2(1)) DATA ITX/2HOL,2HD ,2HNE,2HW / DATA LU1,LU2/1,1/ WRITE(LU2,600) 600 FORMAT(/">>> COPY <<<"//"THIS PROGRAM COPIES SOURCE DATA " 1"FROM AN OLD FILE TO A NEW"/"SHORTER BINARY DATA FILE. THE " 2"NEW FILE IS THEN RENAMED AS 'SOURCE'."/) 8 DO 1 N=1,2 3 WRITE(LU2,603) (ITX(M,N),M=1,2) 603 FORMAT(2A2,"FILE NAME = _") READ(LU1,500) (NAME(M,N),M=1,3) 500 FORMAT(3A2) CALL EXEC(18,NAME(1,N),NSECT(N)) IF(NSECT(N).GT.0) GO TO 1 WRITE(LU2,604) (NAME(M,N),M=1,3) 604 FORMAT(3A2,"NOT DEFINED! _") GO TO 3 1 WRITE(LU2,605) NSECT(N) 605 FORMAT(I3," SECTORS.") 4 N = NSECT(2) IF(NSECT(1).LT.N) GO TO 2 N = N - 1 L1 = .TRUE. DO 5 M=0,N CALL EXEC(14,102B,IBUF,128,NAME1,M) K = M + 1 DO 6 I=1,128 IF(IBUF(I).NE.0) GO TO 6 IF(IBUF(I+1).NE.177777B) GO TO 6 L1 = .FALSE. IF(M.NE.N) WRITE(LU2,601) K, I 601 FORMAT("EOF IN SECTOR",I3," WORD",I4) 6 CONTINUE 5 CALL EXEC(15,102B,IBUF,128,NAME2,M) IF(L1) WRITE(LU2,608) 608 FORMAT("WARNING! NO EOF!") M = N 7 CALL EXEC(15,102B,IBUF,128,NAME2,M) WRITE(LU2,607) NAME2, NAME2 607 FORMAT(/"ALL DONE. NOW TYPE:"/":RN,",2A2,A1,",",2A2,A1,",9"/) STOP 2 WRITE(LU2,606) 606 FORMAT("NEW FILE MUST NOT EXCEED OLD FILE!") GO TO 8 END END$ @R[READ(] @1[READ(LU1,] @W[WRITE(] @2[WRITE(LU2,] @F[ FORMAT(] @][ ] @G[GO TO] @D[ DIMENSION] @C[ CONTINUE] @*[C ] @M[ COMMON] @E[ EQUIVALENCE] @L[ LOGICAL] @P[ PROGRAM] @A[ DATA] @N[ENDFILE ] @_[REWIND] @X[CALL EXEC(] @S[ SUBROUTINE] @7[ WRITE(1,7000)K7,] @@ 9  22681-18034 1508 SC 0422 DUPER (RTE FILE MANAGER DUMP)             H0104 ASMB,L,T,B NAM DUPER,3 ENT START,DIOER,CONTN,ABORT EXT EXEC,ASCBI,CHECK * * THIS PROGRAMME WILL DUMP RTE FILES. * THE SOURCE AND DESTINATION MAY BE ANY * COMBINATION OF DISC AND MAGNETIC TAPE. * THE FILES TO BE DUMPED ARE SPECIFIED * BY NAME, SECURITY CODE, TYPE OR A * COMBINATION OF THESE. * EUROPEAN SOUTHERN OBSERVATORY, GENEVA. * * TURN ON WITH: *ON,DUPER,P1,P2 * WHERE: P1= KEYBOARD * P2= LISTDEVICE * COM TTY,TTYIN,LISTD,MT1,MT2,UPDAT COM ISTRK,IDISC,ISECT COM DUMA(162) COM DU,PU,DL,PR,SOURC,DESTN COM DUMB(246) * SUP * DUPSA ASC 3,DUPSA DUPSB ASC 3,DUPSB DUPSC ASC 3,DUPSC * F1 ASC 7,DUPER ABORTED F2 ASC 7,DISC I/O ERROR F3 ASC 5,END DUPER * B400 OCT 400 .1 DEC 1 .5 DEC 5 .6 DEC 6 .7 DEC 7 .8 DEC 8 .2 DEC 2 SKP START NOP LDA 1,I PICK UP PARAMETERS SZA,RSS ANY GIVEN? LDA .1 NO DEFAULT TTY=1 STA TTY IOR B400 MAKE KEYBOARD INPUT STA TTYIN INB LDA 1,I SZA,RSS LISTDEVICE GIVEN? LDA .6 NO DEFAULT LISTDEVICE=6 STA LISTD * JSB SEGM CALL SEGMENT DEF DUPSA CONSTRAINT AND I/O * LDA DU MAKE A DUMP? SZA,RSS JMP A.1 NO * JSB SEGM MAKE DUMP DEF DUPSC * A.1 LDA DL DIRECTORY LISTING? SZA,RSS JMP EXIT NO, DONE * JSB SEGM MAKE DIRECTORY LISTING DEF DUPSB * EXIT LDA DESTN WAS DESTINAT MTAPE? CPA .1 RSS YES JMP FIN NO * JSB EXEC YES, RELEASE DEF *+5 TRACKS OF DEF .5 TEMPORARY DEF .1 DIRECTORY DEF ISTRK DEF IDISC * FIN JSB MESAG TELL END DEF F3 DEF .5 * JSB EXEC AND TERMINATE DEF *+2 DEF .6 * DIOER JSB MESAG DISC I/O ERAROR DEF F2 DEF .7 * ABORT JSB MESAG ABORT DEF F1 DEF .7 JMP EXIT * SEGM NOP LDA SEGM SET RETURN ADRS INA STA RETRN LDA SEGM,I GET SEGMENT NAME STA SEG00 SET FOR CALL JSB EXEC CALL THE SEGMENT DEF *+3 DEF .8 SEG00 NOP CONTN JMP *+1,I RETURN FROM SEGMENT RETRN NOP * MESAG NOP LDA MESAG,I SET FORMAT STA MES01 ISZ MESAG LDA MESAG,I GET #WORDS STA MES01+1 ISZ MESAG CORRECT RETURN * JSB EXEC PRINT ON TTY DEF *+5 DEF .2 DEF TTY MES01 NOP NOP * JMP MESAG,I EXIT * END START ASMB,L,T,B NAM CHECK,7 ENT CHECK EXT .ENTR * * THIS ROUTINE CHECKS IF A GIVEN NAME,SC,TYPE * CONFIRMS TO THE GIVEN CONSTRAINTS. * * CALL AS FOLLOWS: * * JSB CHECK * DEF *+5 * DEF NAME * DEF SECURITY CODE * DEF TYPE * DEF LABEL NOT APPLICABLE * COM DUMMY(177) COM #NAMS,ACNAM,#SC,ACSC,#TYPE,ACTYP COM BUF(240) * BUFDF DEF BUF CLIMB BSS 1 NAMDF BSS 1 MO BSS 1 KO BSS 1 LO BSS 1 N3 DEC -3 .3 DEC 3 B377 OCT 377 B52 OCT 52 * NAMD BSS 1 SC BSS 1 TYPE BSS 1 NO BSS 1 SKP CHECK NOP JSB .ENTR PASS PARAMETERS DEF NAMD * LDA #NAMS GET BUF ADRS TO SC MPY .3 ADA BUFDF LDB 0 ADRS INTO 'B' STB CLIMB HOLD FOR LATER * LDA ACSC ALL SC? SSA JMP DIR20 YES, SO CHECK TYPES LDA #SC SET SC LOOP CMA,INA COUNTER STA MO LDA SC,I GET GIVEN SC CPA 1,I START CHECKING JMP DIR11 FOUND INB BUMP BUFFER ISZ MO DONE? JMP *-4 NOT YET * LDA ACSC CHECK IF "EX" SLA,RSS JMP NO,I N/A JMP DIR20 CHECK TYPES DIR11 LDA ACSC CHECK IF "EX" SLA,RSS JMP DIR20 NOW TYPES JMP NO,I N/A * DIR20 LDA ACTYP CHECK FOR ALL TYPES SSA JMP DIR00 ALL, SO CHECK NAMES LDB CLIMB UPDATE POINTER ADB #SC LDA #TYPE SET TYPE LOOP COUNTER CMA,INA STA MO LDA TYPE,I GET GIVEN TYPE CPA 1,I SAME? JMP DIR21 YES, FOUND INB ISZ MO DONE? JMP *-4 NOT YET * LDA ACTYP CHECK FOR "EX" SLA,RSS JMP NO,I N/A JMP DIR00 CHECK NAMES DIR21 LDA ACTYP SLA,RSS CHECK FOR "EX" JMP DIR00 JMP NO,I N/A * DIR00 LDA ACNAM CHECK IF ALL NAMES SSA JMP CHECK,I YES, NORMAL EXIT LDA #NAMS SET NAME LOOP CMA,INA STA MO COUNTER LDA BUFDF SET BUFFER POINTER STA CLIMB * DIR01 STA KO CHECK ADRS LDA N3 ONE NAME STA LO LOOP COUNTER LDA NAMD ADRS GIVEN NAME STA NAMDF FOR INNER LOOP CCE LEFT RIGHT POINTER * DIR02 CME FLIP E LDA KO,I FIRST BUFFER WORD SEZ,RSS HIGH? ALF,ALF YES, BRING DOWN AND B377 CPA B52 CHECK IF * JMP DIR03 IS, SO PASSED STA 1 KEEP IN B LDA NAMDF,I GET GIVEN NAME SEZ,RSS ALF,ALF AND B377 CPA 1 SAME? RSS JMP DIR04 NO, CHECK FAILED DIR03 SEZ,RSS STILL ON HIGH? JMP DIR02 YES, NOW TAKE LOW ISZ KO BUMP NEXT IN BUFF ISZ NAMDF BUMP NEXT GIVEN ISZ LO 3 DONE? JMP DIR02 NO, NEXT CHECK JMP DIR05 FOUND A NAME * DIR04 LDA CLIMB INCREMENT BUFFER ADA .3 ADRS STA CLIMB ISZ MO ALL NAMES DONE? JMP DIR01 NO, NEXT * LDA ACNAM CHECK IF "EX" SLA,RSS JMP NO,I N/A JMP CHECK,I FOUND DIR05 LDA ACNAM CHECK IF "EX" SLA,RSS JMP 4CHECK,I FOUND JMP NO,I N/A * END ASMB,L,T,B NAM CONVT,7 * * ASCII TO BINARY, AND BINARY TO ASCII * CONVERSION * * JSB ASCBI * DEF *+4 * DEF ADRS OF 3 WORDS ASCII LEFT JUST WITH BLNKS * DEF BINARY ANSWER * DEF ADRS TO GO WHEN ILLEGAL CHARAC * * JSB BIASC * DEF *+3 * DEF BINARY * DEF ADRS ASCII ANSWER RIGHT JUST * ENT ASCBI,BIASC EXT .ENTR * PARAM BSS 3 TEMP BSS 1 MO BSS 1 KO BSS 1 TEMPC BSS 1 NEGF BSS 1 TEMAD BSS 1 B55 OCT 55 BBLNK OCT 20060 B00 OCT 30060 BN OCT 06400 N6 DEC -6 N5 DEC -5 N48 DEC -48 D10 DEC 10 N10 DEC -10 B377 OCT 377 B40 OCT 40 B53 OCT 53 * DECAD DEF *+1 DEC 10000 DEC 1000 DEC 100 DEC 10 DEC 1 SKP ASCBI NOP ENTRY ASCII TO BINARY JSB .ENTR PASS PARAMETERS DEF PARAM * CLA STA TEMP CLEAR ACCUMULATOR STA NEGF CLEAR NEG FLG LDA N6 SET LOOP CHECK STA MO LDA PARAM GET SOURCE ADRS CLE,ELA FORM A STA TEMAD ADRS * JSB DIGIT GET ACHARACTER ISZ MO BUMP CHARC COUNT CPA B53 IS A + SIGN? JMP A.1 YES NEXT CHARC CPA B55 IS A - SIGN? RSS JMP A.2 NO, UNRAVEL ISZ NEGF YES SET FLAG NEG * A.1 JSB DIGIT GET A CHARACTER * A.2 ADA N48 CHECK LEGALITY STA TEMPC HOLD FOR CONVERS SSA JMP PARAM+2,I EXIT ERROR ADA N10 SSA,RSS JMP PARAM+2,I EXIT ERROR * LDA TEMP TEMP=TEMP*10 MPY D10 ADA TEMPC ADD LAST DIGIT STA TEMP UPDATE ACCUMULATOR ISZ MO ALL CHARACTERS DONE? JMP A.1 NOT YET * A.3 LDA TEMP START EXIT LDB NEGF FLAG NEG SZB CMA,INA MAKE ANSWER NEG STA PARAM+1,I GIVE ANSWER JMP ASCBI,I AND EXIT * DIGIT NOP LDB TEMAD GET CsHARC ADDRESS CLE,ERB MAKE WORD ADRS LDA 1,I GET THE WORD SEZ,RSS HIGH OR LOW? ALF,ALF WAS HIGH AND B377 MASK LOW CPA B40 BLNK? JMP A.3 YES, TERMINATE ISZ TEMAD BUMP WORD ADRS JMP DIGIT,I AND EXIT SKP BIASC NOP ENTRY BINARY TO ASCII JSB .ENTR PASS PARAMETERS DEF PARAM * LDA PARAM,I GET BINARY WORD STA NEGF BIT 15 IS NEG FLG SSA IS IT NEGATIVE? CMA,INA YES, THEN MAKE IT POS STA TEMP BINARY WORD * LDB PARAM+1 ANSW ADRS STB TEMAD HOLD LDA BBLNK BLNK-0 STA 1,I CLEAR ASCII WORDS LDA B00 0-0 INB NEXT ASCII WORD STA 1,I INB STA 1,I * LDA N5 CHARC LOOP STA MO LDA DECAD DECADE ADRS STA KO CLA STA TEMPC SET POINTER HIGH * A.4 CLB LDA TEMP GET BIN WORD DIV KO,I DIVE BY DECD STB TEMP HOLD REMAINDER JSB PACK SET IN ANSWER ISZ KO BUMP DECD POINTER ISZ MO DONE? JMP A.4 NO * LDB NEGF START EXIT LDA BN IOR PARAM+1,I SET - SIGN SSB WAS NEG? STA PARAM+1,I YES, THEN REALLY SET JMP BIASC,I EXIT * * PACK NOP ADA TEMAD,I MAKE THE NUMBER ISZ TEMPC CHECK HIGH-LOW JMP *+4 LOW ALF,ALF HIGH STA TEMAD,I AND SET JMP PACK,I EXIT STA TEMAD,I SET ISZ TEMAD BUMP TO NEXT CCA RESET POINTER STA TEMPC HIGH-LOW JMP PACK,I EXIT * END ̱ASMB,L,T,B NAM DUPSA,5 ENT DUPSA EXT EXEC,CHRIN,CHRPS,ASCBI,CONTN EXT ABORT,DIOER * SUP * * ALL INFORMATION WHICH THE OPERATOR HAS TO * GIVE IS RECEIVED IN THIS SEGMENT. THE INFO * IS SET IN COMMON FOR EASY LATER REFERENCE. * THE FOLLOWING IS INPUT: * EXECUTION LOGIC * SOURCE INPUT * IF NOT ONLY DLIST ALSO DESTINATION OUTPUT * CONSTRAINTS OF NAME, SECURITY CODES, TYPES. * COM TTY,TTYIN,LISTD,MT1,MT2,UPDAT COM ISTRK,IDISC,ISECT COM #CART,CARTR(31),DESCR,MASTR COM CADIR(128) COM DU,PU,DL,PR,SOURC,DESTN COM #NAMS,ACNAM,#SC,ACSC,#TYPE,ACTYP COM BUF(240) * LINE BSS 36 OCT 20377 CLIMB BSS 1 OVFW BSS 1 FIRST BSS 1 CLCNT BSS 1 BUFDF DEF BUF PARAM BSS 6 MO BSS 1 KO BSS 1 LO BSS 1 PASHL BSS 1 XX OCT 43115 STATS BSS 1 DYNAM BSS 1 * CADDF DEF CADIR INCRM BSS 1 LABMO BSS 1 LABKO BSS 1 LABST BSS 1 PAR BSS 5 PRDF DEF PAR NON BSS 1 LABLU BSS 1 LABCR BSS 1 * AEX ASC 1,EX ASS ASC 1, A& ASC 1,& AAB ASC 1,AB AAL ASC 1,AL * TEMP BSS 3 TEMPA DEF TEMP BINAR BSS 1 PARAD DEF PARAM * .0 OCT 0 .1 OCT 1 .2 OCT 2 .3 OCT 3 .4 OCT 4 .5 OCT 5 .6 OCT 6 .7 OCT 7 .8 DEC 8 .10 DEC 10 .11 DEC 11 .12 DEC 12 .13 DEC 13 .14 DEC 14 .15 DEC 15 .16 DEC 16 .17 DEC 17 .18 DEC 18 .19 DEC 19 .20 DEC 20 .36 DEC 36 .128 DEC 128 * N1 DEC -1 N4 DEC -4 N5 DEC -5 N6 DEC -6 N31 DEC -31 N240 DEC -240 * B1113 OCT 34000 BIT12 OCT 10000 BIT14 OCT 40000 B1514 OCT 140000 B600 OCT 600 * A?? ASC 1,?? ADI ASC 1,DI AMT ASC 1,MT ANO ASC 1,NO AYE ASC 1,YE ALS ASC 1,L * ADU ASC 1,DU APU ASC 1,PU ADL ASC 1,DL APR ASC 1,PR * ASCDF DEF ADU DUDEF DEF DU CARDF DEF CARTR TATSD OCT 1756 * F1 ASC 9,FILE NAME(S)? _ F2 ASC 11,SECURITY CODE(S)? _ F3 ASC 6,TYPE(S)? _ F4 ASC 4,OVERFLOW F6 ASC 8,NOT LEGAL ENTRY F7 ASC 9,EXECUTE WHAT? _ F8 ASC 6,INPUT ERROR F9 ASC 11,DUMP DLIST PURGE PRINT F10 ASC 14,PURGE WITHOUT DUMP NOT LEGAL F11 ASC 9,SOURCE INPUT? _ F12 ASC 12,DESTINATION OUTPUT? _ F13 ASC 5,DISC MTAPE F14 ASC 13,DISC LABEL OR (NEG)LU? _ F15 ASC 17,DISC LABEL(S) AND/OR NEG(LU)? _ F16 ASC 20,SOURCE INPUT LABELS AND/OR LUS UP TO 31 F17 ASC 18,DESTINATION LABEL OR (NEG)LU, 1 ONLY F18 ASC 7,LU MTAPE? _ F19 ASC 12,POS. LOGICAL UNIT NUMBER F20 ASC 13,MASTER SECURITY CODE? _ F21 ASC 10,FOR DLIST AND PRINT F22 ASC 13,ANY CHARACTER IF NOT KNOWN F23 ASC 13,UP TO 6 CHARACTERS A NAME F24 ASC 12,LINE CONTINUATION WITH & F25 ASC 14,ASCII CHARACTERS OR NUMERIC F26 ASC 4,NUMERIC F27 ASC 16,OR ALL OR EXCEPT,NAME1,NAME2,ETC F28 ASC 14,OR ALL OR EXCEPT,SC1,SC2,ETC F29 ASC 16,OR ALL OR EXCEPT,TYPE1,TYPE2,ETC F30 ASC 10,CAN USE * TO FILTER F31 ASC 14,UPDATE DESTINATION TAPE? _ F32 ASC 8,ANSWER YES OR NO F33 ASC 18,YES WILL CONNECT NEW AFTER OLD FILES F34 ASC 15,NO WILL PURGE OLD FILES IF ANY F35 ASC 8,NOT MOUNTED _ F36 ASC 11,MTAPE WON'T BE PURGED F37 ASC 5,LOCKED _ F38 ASC 10,INPUT = OUTPUT DISC F39 ASC 20,INPUT = OUTPUT MTAPE, GIVE NEW LU OUTPUT F40 ASC 1, F41 ASC 19,DANGER! YOU MIGHT DESTROY MTAPE FILES F42 ASC 7,CONTINUE? _ F43 ASC 8,MAKE READY MTAPE F44 ASC 8,NOT A MTAPE UNIT F45 ASC 5,MTAPE DOWN F46 ASC 16,YES WILL CONTINUE, NO WILL ABORT SKP DUPSA NOP * * I N P U T O F E X C E C U T I O N C O D E S * LDA .6 CLEAR COMMON JSB CLEAR DEF DU CLA STA UPDAT * LDA TATSD,I GET # TRACKS SYSTEM ADA N1 GET TO TRACK # STA MO * JSB EXEC READ CAR DIREC DEF *+7 DEF .1 DEF .2 DEF CADIR DIRECTORY DEF .128 DEF MO DEF .0 * SZB,RSS ERROR? JMP DIOER * WEX00 JSB MESAG ASK FOR WHAT DEF F7 DEF .8 * JSB IN.2 SET UP FOR 2 CHARACTERS * EX01 JSB CHRPS GET 2 CHARACTERS DEF *+3 DEF TEMPA DEF EX04 SOURCE EMPTY * LDA DUDEF SET UP LOOP STA MO LDA N4 LOOP COUNTER STA KO LDB ASCDF ADRS ASCII POSSIBL LDA TEMP SEE WHAT WE HAVE GOT CPA A?? EXPLANATION? JMP EX03 CPA AAB ABORT? JMP ABORT CPA 1,I LOOP STARTS HERE JMP EX02 FOUND INB BUMP ASCII ISZ MO BUMP COMMON ISZ KO DONE? JMP *-5 NOT YET * JSB INER INPUT ERROR JMP EX00 TRY AGAIN * EX02 ISZ MO,I 1 FOUND, SET TO 1 JMP EX01 GET MORE * EX03 JSB MESAG GIVE EXPLANATION DEF F9 DEF .11 JMP EX00 AND DO AGAIN * EX04 LDA PU CHECK LEGALITY SZA,RSS PURGE ASKED? JMP *+4 NO LDA DU NO PURGE WITHOUT DUMP SZA,RSS JMP EX05 ERROR LDA DL CHECK IOR DU IF THERE SZA IS SOMETHING JMP EX06 IS OK * JSB INER JMP ABORT * EX05 JSB MESAG NOT LEGAL DEF F10 DEF .14 JMP ABORT * * S O U R C E I N P U T * EX06 JSB MESAG ASK FOR SOURCE DEF F11 DEF .8 * JSB IN.2 SET UP FOR 2 CHARACT * JSB CHRPS GET 2 CHARACTERS DEF *+3 DEF TEMPA DEF EX08A ERROR, END OF LINE * LDA TEMP SEE WHAT WAS GIVEN CPA A?? JMP EX14 EXPLAIN CPA AAB JMP ABORT ABORT CPA ADI DISC? RSS JMP EX08 NO, LOOK FURTHER * * DISC INPUT * EX07 JSB MESAG ASK CARTRIDGE SOURCE DEF F15 DEF .16 * JSB IN.6 SET UP FOR 6 CHARACTERS * LDA CARDF SET UP STA MO ADRS POINTER LDA N31 - LOOP STA KO COUNTER CLA STA #CART CLEAR # OF CARTR * EX07A LDA .3 BLNK TEMP JSB ASCCL DEF TEMP * JSB CHRPS GET 6 CHARAC DEF *+3 DEF TEMPA DEF EX07D END OF LINE * LDA TEMP CHECK WHAT WE HAVE CPA AAB JMP ABORT CPA A?? JMP EX07C DO SOME EXPLAINING * JSB ASCBI CONVERT TO BINARY DEF *+4 DEF TEMP DEF BINAR DEF EX07B NOT LEGAL CHARACTER * JSB LBCHK CHECK LABEL DEF BINAR DEF NON NOT INTERESTING DEF NON NOT INTERESTING DEF EX07E NOT MOUNTED DEF EX07G LOCKED * LDA BINAR SET ANSWER IN COMMON STA MO,I ISZ MO BUMP ADRS ISZ #CART ISZ KO OVERFLOW? JMP EX07A NO * JSB MESAG YES, TELL OVERFLOW DEF F4 DEF .4 JMP EX07 AND TRY AGAIN * EX07B JSB MESAG TELL NOT LEGAL DEF F6 DEF .8 JMP EX07 TRY AGAIN * EX07C JSB MESAG EXPLAIN DEF F16 DEF .20 JMP EX07 AND TRY AGAIN * EX07E JSB NMT TELL NOT MOUNTED JMP EX07A NEXT EX07G JSB LCK TELL LOCKED JMP EX07A NEXT * EX07D LDA #CART ANY IN? SZA JMP EX07F YES, OK JSB INER INPUT ERROR JMP EX07 AND ALL OVER AGAIN * EX07F LDA .2 SET FLG DISC INPUT STA SOURC JMP EX10 GET DESTINATION * * MTAPE INPUT * EX08 CPA AMT MAG TAPE? JMP EX09 YES * EX08A JSB INER INPUT ERROR JMP EX06 TRY AGAIN * EX09 JSB MAGIN GET MAG TAPE LU DEF MT1 INTO COMMON DEF EX09 RETRY * CLA,INA MT SOURC=1 STA SOURC * LDA PU PURGED ASKED? SZA,RSS JMP EX10 NO JSB MESAG YES, CAN'T DO DEF F36 WITH MTAPE DEF .11 BUT CONTINUE ANYHOW * * D E S T I N A T I O N O U T P U T * EX10 LDA DU IS THERE A DESTINATION? SZA,RSS JMP EX16 NO, THEN SKIP OUTPUT PART * EX11 JSB MESAG ASK FOR DESTINATION DEF F12 DEF .11 * JSB IN.2 SET UP LINE * JSB CHRPS GET 2 CHARACTERS DEF *+3 DEF TEMPA DEF EX12A ERROR, END OF LINE * LDA TEMP SEE WHAT WAS ASKED CPA A?? JMP EX15 EXPLAIN CPA AAB JMP ABORT CPA ADI DISC? RSS JMP EX12 NO LOOK FURTHER * * DISC OUTPUT * EX11A JSB MESAG ASK DISC DESTINATION DEF F14 DEF .12 * LDA .3 BLNK TEMP JSB ASCCL DEF TEMP * JSB IN.6 SET UP FOR 6 CHARACTERS * JSB CHRPS GET 6 CHARACTERS DEF *+3 DEF TEMPA DEF EX11B ERROR, END OF LINE * LDA TEMP CHECK FOR SPECIAL CPA AAB JMP ABORT CPA A?? JMP EX11C * JSB ASCBI CONVERT TO BINARY DEF *+4 DEF TEMP DEF DESCR DEF EX11B NOT LEGAL CHARACTER * JSB LBCHK CHECK LABEL LU DEF DESCR DEF LABLU LU DEF LABCR CARTRIDGE DEF EX11D NOT MOUNTED DEF EX11E LOCKED * LDA SOURC SOURCE CPA .2 WAS IT DISC? RSS JMP EX11H NO, NO CHECK LDA #CART SET LOOP CNTR CMA,INA STA LABMO LDA LABLU SET LU NEG FOR CHECK CMA,INA STA LABLU LDB CARDF SOURCE IN B * EX11G LDA 1,I GET ONE SSA LU OR CARTRIDGE? JMP *+4 CPA LABCR DUBBLE CARTR? JMP EX11F YES JMP *+3 NO, DO BUMPS CPA LABLU DUBBLE LU? JMP EX11F YES INB BUMP SOURCE ISZ LABMO DONE? JMP EX11G NOT YET * EX11H LDA .2 DISC DESTINATION = 2 STA DESTN JMP EX16 CONTINUE * EX11B JSB INER INPUT ERROR ߡ JMP EX11A AND TRY AGAIN * EX11C JSB MESAG EXPLANATION DEF F17 DEF .18 JMP EX11A AND TRY AGAIN * EX11D JSB NMT TELL NOT MOUNTED JMP EX11A TRY AGAIN EX11E JSB LCK TELL LOCKED JMP EX11A TRY AGAIN * EX11F JSB MESAG TELL DOUBLE DEF F38 DEF .10 JMP EX11A TRY AGAIN * * MTAPE OUTPUT * EX12 CPA AMT MAG TAPE? JMP EX13 YES * EX12A JSB INER INPUT ERROR JMP EX11 TRY AGAIN * EX13 JSB MAGIN GET LU MAGTAPE DEF MT2 DESTINATION DEF EX13 RETRY * LDA SOURC SOURCE MTAPE? CPA .1 RSS JMP EX130 NO * LDA MT1 CHECK FOR CPA MT2 DUBBLE LU RSS JMP EX130 OK JSB MESAG TELL ERROR DEF F39 DEF .20 JMP EX13 TRY AGAIN * EX130 CLA,INA MT DEST = 1 STA DESTN * * T R A C K R E S E R V E T E M P D I R E C * JSB EXEC REQUEST TRACKS DEF *+6 DEF .4 DEF .1 SUSPEND IF N/A DEF ISTRK DEF IDISC DEF ISECT * LDA .128 CLEAR 128 WORDS JSB CLEAR TO CLEAR TEMP DIREC DEF EX00 OVERWRITING START OF CODING * CLA SECTR ADRS TO 0 STA KO * EX132 JSB EXEC CLEAR SECTORS DEF *+7 DEF .2 DEF IDISC DEF EX00 DEF .128 DEF ISTRK DEF KO * SZB,RSS ERROR? JMP DIOER YES, ABORT * CLB SET UP FOR NEXT BLOCK LDA KO GET NEXT BLOCK ADA .14 DIV ISECT # SECTRS/TRACK STB KO NEXT SECTR SZB DONE? JMP EX132 NOT YET * * U P D A T E M T A P E * EX13A JSB MESAG ASK IF CONNECT TO END DEF F31 DEF .13 * JSB IN.2 PREPARE FOR 2 CHARC * JSB CHRPS GET 2 CHARACTERS DEF *+3 DEF TEMPA DEF EX13E ERROR, ttEND OF LINE * LDA TEMP SEE WHAT WE HAVE CPA AAB JMP ABORT CPA A?? JMP EX13B GIVE EXPLANATION CPA ANO JMP EX13D NO UPDATE UPDAT=0 CPA AYE JMP EX13C YES=UPDAT=1 * EX13E JSB INER INPUT ERROR JMP EX13A TRY AGAIN * EX13B JSB MESAG GIVE EXPLANATION DEF F32 DEF .8 JSB MESAG DEF F33 DEF .18 JSB MESAG DEF F34 DEF .15 JMP EX13A TRY AGAIN * EX13F JSB MESAG EXPLAIN WARNING DEF F46 DEF .16 JMP EX13D TRY AGAIN * EX14 JSB MESAG TELL ABOUT INPUT DEF F13 DEF .5 JMP EX06 TRY AGAIN * EX15 JSB MESAG TELL ABOUT OUTPUT DEF F13 SAME AS INPUT DEF .5 JMP EX11 TRY AGAIN * EX13C CLB,INB SET UPDATE STB UPDAT JMP EX16 CONTINUE * EX13D JSB MESAG TELL DANGER DEF F41 DEF .19 JSB MESAG ASK IF CONTINUE DEF F42 DEF .6 * JSB IN.2 PRPARE 2 CHARAC * JSB CHRPS GET 2 CHARAC DEF *+3 DEF TEMPA DEF ABORT ABORT ON ERROR * LDA TEMP WANTS TO CONTINUE? CPA A?? QUESTION? JMP EX13F YES, GIVE EXPLANATION CPA AYE YES? RSS YES, THEN CONT JMP ABORT ABORT ON ANYTHING ELSE * * M A S T E R S E C U R I T Y * EX16 CLA CLEAR MASTER STA MASTR SECURITY CODE LDA DL DIRECTORY LISTING IOR PR AND OR PRINT? SZA,RSS JMP DUP0 THEN NO FURTHER TROUBLE * LDA CADIR+126 GET MASTR SC SZA,RSS ANY GIVEN? JMP EX18 NO, THEN DO AS IF KNOWN * EX17 JSB MESAG ASK FOR SC DEF F20 DEF .12 * JSB IN.2 PREPARE FOR 2 CHARACTERS * JSB CHRPS GET 2 CHARACTERS DEF *+3 DEF TEMPA DEF DUP0 END OF LINE, SO NOT KNOWN * LDA TEMPo] GET THE ANSWER CPA XX JMP EX17A CPA CADIR+126 CORRECT? JMP EX18 YES, GOT IT CPA AAB JMP ABORT CPA A?? RSS JMP DUP0 NOT FOUND * JSB MESAG GIVE EXPLANATIO' DEF F21 DEF .10 * JSB MESAG DEF F22 DEF .13 JMP EX17 AND AGAIN * EX17A JSB MESAG DEF CADIR+126 DEF .1 JMP EX17 * EX18 ISZ MASTR SET COM TO KNOWN SKP * * N A M E S * DUP0 JSB MESAG SPACE DEF F40 DEF .1 * LDA .7 CLEAR #'S AND ACTIONS JSB CLEAR DEF #NAMS * LDA N240 SET UP BUFFER STA OVFW OVERFLOW CHECK LDA BUFDF SET BUFFER STA CLIMB POINTER DUPA1 CCA SET FIRST PASS FLAG STA FIRST * JSB MESAG ASK NOR NAMES DEF F1 DEF .8 * DUP01 JSB IN.6 SET UP FOR 6 CHARACTERS * DUP02 LDA .3 BLNK 3 WORDS JSB ASCCL OF BUFFER DEF BUF * JSB PASS GET AN ELEMENT DEF ACNAM ACTION DEF DUP02 AGAIN DEF DUP2Y END OF LINE DEF DUP01 NEW LINE DEF CLIMB ADRS DESTINATION DEF DUP2X EXPLAIN NAMES * LDA CLIMB BUMP DESTN TO ADA .3 TO NEXT PLACE STA CLIMB STA DUP02+2 FOR NEXT CLEAR ISZ #NAMS INCRM # OF NAMES LDA OVFW CHECK FOR OVERFLOW ADA .3 STA OVFW SSA GONE POS? JMP DUP02 NO, THEN NEXT ELEMENT JMP OVERF YES, OVERFLOW ERROR * DUP2X JSB MESAG EXPLAIN DEF F23 DEF .13 JSB AMPS TELL ABOUT & JSB MESAG TELL AL EX DEF F27 DEF .16 JSB MESAG TELL ABOUT FILTER DEF F30 DEF .10 JMP DUPA1 AND TRY AGAIN * DUP2Y LDB ACNAM ACTION LDA #NAMS # OF NAMES TAKEN SSB,RSS ALL SPECIFIED? SZA NO, SO ANY TAKEN? JMP DUP03 YES, OK JSB INER NO, INPUT ERROR CLA STA ACNAM CLEAR ACTION NAME JMP DUPA1 AGAIN * * S E C U R I T Y C O D E S * DUP03 CCA RESET FIRST PASS FLG STA FIRST * JSB MESAG ASK FOR SECURT CODES DEF F2 DEF .10 * DUP04 JSB IN.6 SET UP FOR 6 CHARACT * DUP05 LDA .3 BLNK TEMPORARY JSB ASCCL DEF TEMP * JSB PASS GET AN ELEMENT DEF ACSC ACTION DEF DUP05 AGAIN DEF DUP5Y END OF LINE DEF DUP04 NEW LINE DEF TEMPA ADRS DESTN. DEF DUP5X * JSB ASCBI CONVERT TO BINARY DEF *+4 DEF TEMP DEF BINAR DEF DUP06 NOT DIGITS SO ASCII * LDA BINAR GET BINARY RSS DUP06 LDA TEMP GET ASCII STA CLIMB,I AND SET ISZ CLIMB BUMP DESTINATION ISZ #SC BUMP # SC ISZ OVFW OVERFLOW? JMP DUP05 NO, NEXT JMP OVERF YES, ABORT * DUP5X JSB MESAG EXPLAIN SC DEF F25 DEF .14 JSB AMPS JSB MESAG DEF F28 DEF .14 JMP DUP03 TRY AGAIN * DUP5Y LDB ACSC SC ACTION LDA #SC SSB,RSS ALL SPECIFIED? SZA NO, SO ANY TAKEN? JMP DUP07 YES, OK JSB INER INPUT ERROR CLA STA ACSC CLEAR ACTION SC JMP DUP03 AND AGAIN * * T Y P E S * DUP07 CCA RESET FIRST PASS FLG STA FIRST * JSB MESAG ASK FOR TYPES DEF F3 DEF .5 * DUP08 JSB IN.6 SET UP FOR 6 CHARACTERS * DUP09 LDA .3 BLNK TEMP JSB ASCCL DEF TEMP * JSB PASS GET AN ELEMENT DEF ACTYP ACTION DEF DUP09 AGAIN DEF DUP9Y END OF LINE DEF DUP08 NEW LINE DEF TEMPA DESTINATION DEF DUP9X EXPLAIN * JSB ASCBI CONVERT TO BINARY DEF *+4 DEF TEMP DEF BINAR DEF DUP10 ASCII NOT LEGAL * LDA BINAR SET BINARY STA CLIMB,I ISZ CLIMB BUMP DESTINATION ISZ #TYPE INCREMNT # OF TYPES ISZ OVFW OVERFLOW? JMP DUP09 NO, TAKE NEXT JMP OVERF YES, ABORT * DUP9X JSB MESAG EXPLAIN DEF F26 DEF .4 JSB AMPS JSB MESAG DEF F29 DEF .16 JMP DUP07 TRY AGAIN * DUP9Y LDB ACTYP ACTION FOR TYPES LDA #TYPE SSB,RSS ALL SPECIFIED? SZA NO, SO ANY TAKEN? JMP CONTN YES, RETURN TO MAIN JSB INER INPUT ERROR CLA STA ACTYP CLEAR ACTION TYPE JMP DUP07 AGAIN * DUP10 JSB MESAG TELL NOT LEGAL DEF F6 DEF .8 JMP DUP07 TRY AGAIN * OVERF JSB MESAG TELL OVERFLOW DEF F4 DEF .4 * JMP ABORT ABORT * SKP PASS NOP * LDA N6 PASS PARAMETERS STA MO LDA PARAD ADRS PARAM BUFFER STA KO LDB PASS ADRS FIRST PARAM LDA 1,I START TRANSFER STA KO,I INB BUMP PARAM POINTER ISZ KO ISZ MO DONE? JMP *-5 NOT YET STB PASS HOLD RETRN ADRS * LDA PARAM+4 GET DESTINATION ADRS STA PAS00 AND SET FOR CALL * JSB CHRPS GET AN ELEMENT DEF *+3 PAS00 NOP DEF PAS03 END OF LINE * LDB PARAM+4,I GET ANSWER LDA 1,I ISZ FIRST FIRST PASS? JMP PAS02 NO, NORMAL PROC CPA AAB ABORT? JMP ABORT YES, TERMINATE CPA A?? EXPLAIN? JMP PARAM+5,I YES CPA AAL ALL? RSS JMP PAS01 NO STA PASHL HOLD GIVEN INB GET TO NEXT WORD LDA 1,I GET CONTENTS CPA ASS WAS ONLY "AL"? JMP *+5 YES,THEN ALL CPA ALS WAS "ALL" ? JMP *+3 YES LDA PASHL WAS A NAME JMP PAS01 CONTINUE WITH A RESTORED CLB,INB YES, SET BIT 15 TO 1 RBR AND SET FrOR ALL STB PARAM,I IN GIVEN ACTION JMP PARAM+2,I AND EXIT PAS01 CPA AEX EXCEPTS? RSS JMP PAS02 NO, NORMAL PROC ISZ PARAM,I SET BIT 0 TO 1 JMP PARAM+1,I AND AGAIN * PAS02 CPA A& CONTINUATION? JMP PARAM+3,I YES, NEXT LINE JMP PASS,I EXIT, NORMAL PAS03 JMP PARAM+2,I END OF LINE * * * MESAG NOP LDA MESAG,I SET FORMAT STA MES01 IN OPEN ISZ MESAG SET CORRECT RETURN LDA MESAG,I GET # WORDS STA MES01+1 AND SET * JSB EXEC PRINTON TTY DEF *+5 DEF .2 DEF TTY MES01 NOP NOP # OF WORDS * ISZ MESAG SET CORRECT RETURN JMP MESAG,I EXIT * * * INER NOP MESSAGE INPUT ERROR JSB MESAG DEF F8 DEF .6 JMP INER,I EXIT * * * CLEAR NOP CMA,INA STA CLCNT SET LOOP COUNTER LDB CLEAR,I GET ADRS OF BUFFER CLA STA 1,I INB ISZ CLCNT DONE? JMP *-3 NOT YET ISZ CLEAR JMP CLEAR,I * * * ASCCL NOP CMA,INA STA CLCNT LDB ASCCL,I LDA ASS STA 1,I INB ISZ CLCNT JMP *-3 ISZ ASCCL JMP ASCCL,I * * * LININ NOP * LDA .36 BLNK INPUT LINE JSB ASCCL DEF LINE * JSB EXEC GET THE LINE IN DEF *+5 DEF .1 DEF TTYIN DEF LINE DEF .36 * JMP LININ,I EXIT * * MAGIN NOP LDA MAGIN,I PASS PARAMETERS STA PARAM ISZ MAGIN LDA MAGIN,I STA PARAM+1 ISZ MAGIN SET CORRECT RETURN * MAG0 JSB MESAG ASK FOR MTAPE LU DEF F18 DEF .6 * JSB IN.6 SET UP FOR 6 CHARACTERS * LDA .3 JSB ASCCL BLNK 6 CHARACTERS DEF TEMP * JSB CHRPS GET 6 CHARACTERS DEF *+3 DEF TEMPA DEF MAG00 ERROR, END OF LINE * LDA TEMP } CHECK FOR SPECILA CPA AAB JMP ABORT CPA A?? JMP MAG01 TELL MORE * JSB ASCBI CONVERT TO BINARY DEF *+4 DEF TEMP DEF BINAR DEF MAG00 NOT LEGAL CHARACTER * JSB EXEC GET MTAPE STATUS DEF *+4 DEF .13 DEF BINAR DEF STATS * LDA STATS IS AN MTAPE? AND B1113 CHECK IF 20 SERIES CPA BIT12 IS BIT 12? RSS JMP MAG02 NO,ERROR LDA STATS GET STATUS AGAIN AND B1514 CHECK BITS 15,14 CPA BIT14 DOWN? RSS JMP MAG03 NO, ALL OK HERE * JSB MESAG TELL MTAPE DOWN DEF F45 DEF .5 JMP MAG04 AND CONTINUE * MAG02 JSB MESAG TELL NOT MTAPE DEF F44 DEF .8 JMP MAG0 TRY AGAIN * MAG03 LDA BINAR MAKE DYNAMIC STATS CHECK IOR B600 STA DYNAM * JSB EXEC MAKE CHECK DEF *+3 DEF .3 DEF DYNAM * SLA,RSS OFF LINE? JMP MAG04 OK * JSB MESAG TELL MAKE READY DEF F43 DEF .8 * MAG04 LDA BINAR SET ANSWER STA PARAM,I JMP MAGIN,I EXIT * MAG00 JSB INER INPUT ERROR JMP PARAM+1,I ERROR EXIT * MAG01 JSB MESAG EXPLAIN DEF F19 DEF .12 JMP MAG0 AND TRY AGAIN * * * IN.2 NOP JSB LININ GET A LINE IN JSB CHRIN PREPARE FOR 2 CHARACTERS DEF *+3 DEF LINE DEF .2 JMP IN.2,I * * IN.6 NOP JSB LININ GET A LINE IN JSB CHRIN PREPARE FOR 6 CHARACTERS DEF *+3 DEF LINE DEF .6 JMP IN.6,I * * * LCK NOP JSB MESAG LOCKED DEF F37 DEF .4 JSB MESAG WITH LU OR CAR DEF TEMP DEF .3 JMP LCK,I EXIT * * * NMT NOP JSB MESAG NOT MOUNTED DEF F35 DEF .7 JSB MESAG WITH LU OR CAR DEF TEMP DEF .3 JMP NMT,I EXIT * * * AMPS NOP JSB MESAG DEF F24 DEF .12 JMP AMPS,I * * * CHECKING IF LABEL OR LU MOUNTED OR LOCKED * JSB LBCHK * DEF GIVEN LU OR CAR * DEF LU * DEF CAR * DEF ADRS NOT MOUNTED * DEF ADRS LOCKED * LBCHK NOP LDA N5 TRANSFER PARAMETERS STA LABMO LDA PRDF STA LABKO LDB LBCHK JSB ADRS IN B LDA 1,I START TRANSFER STA LABKO,I INB BUMPS ISZ LABKO ISZ LABMO DONE? JMP *-5 NOT YET STB LBCHK SET CORRECT EXIT * LDB .2 SET INCREMENT LDA PAR,I GET LU OR CAR SSA,RSS WHAT IS IT? JMP *+3 IS LABEL CMA,INA MAKE LU POS CLB SET FOR LU STB INCRM STA LABST FOR CHECKS * LDA CADDF SET UP FOR SEARCH LBC01 STA LABKO LDB LABKO GET LU LDA 1,I SZA,RSS END? JMP PAR+3,I YES, NOT MOUNTED ADB INCRM GET TO LU OR CAR LDA 1,I GET IT CPA LABST WAS IT ASKED? JMP LBC02 YES LDA LABKO GET TO NEXT ADA .4 JMP LBC01 LOOP AROUD * LBC02 LDB LABKO GET LU LDA 1,I STA PAR+1,I SET ADB .2 GO TO LABEL LDA 1,I STA PAR+2,I SET INB GO TO LOCK LDA 1,I SZA,RSS IS IT LOCKED? JMP LBCHK,I NO, ALL OK JMP PAR+4,I IS LOCKED * END DUPSA ASMB,L,T,B NAM CHARC,7 * * CHARACTER MANUPULATOR. ELEMENTS SEPERATED BY * COMMA OR SPACE WILL BE MOVED FROM A SOURCE * STRING TO A DESTINATION. SOURCE MUST BE ENDED * WITH BLNKS ENDED WITH CHARC ALL BITS SET. * * JSB CHRIN INIT CALL * DEF *+3 * DEF SOURCE * DEF # CHARC DESTINATION * * JSB CHRPS CALL FOR NEXT ELEMENT * DEF *+3 * DEF ADRS DESTINATION * DEF LABEL IF SOURCE EMPTY * ENT CHRIN,CHRPS EXT .ENTR * PARAM BSS 2 SORAD BSS 1 DESAD BSS 1 DESCN BSS 1 ADR BSS 1 DESCT BSS 1 LEFRS BSS 1 B377 OCT 377 BSPAC OCT 40 BCOMA OCT 54 BHIG OCT 77400 SKP CHRIN NOP ENTRY INITIALIZATION JSB .ENTR PASS PARAMETERS DEF PARAM * LDA PARAM STA SORAD SOURCE ADDRESS LDA PARAM+1,I CMA,INA NEG # CHARAC STA DESCN CLA STA LEFRS CLEAR LEFT-RIGHT SOURCE JMP CHRIN,I EXIT SKP CHRPS NOP ENTRY CHARC PASSER JSB .ENTR DEF PARAM PASS PARAMETRS * LDA DESCN MOVE COUNTER STA DESCT # CHARC DESTINAT LDA PARAM,I MOVE ADRS STA ADR DESTINATION CLE CLEAR LEFT-RIGHT DESTIN * JSB CHRAC GET A CHARACTER JMP *-1 IGNORE COMMA, SPACE CPB B377 END MARKER? JMP PARAM+1,I YES, END EXIT JMP CHR03 NORMAL * CHR02 JSB CHRAC GET A CHARACTER JMP CHRPS,I COMMA, SPACE SO END * CHR03 LDA ADR,I GET DESTINATION SEZ,CME HIGH OR LOW? JMP *+6 LOW BLF,BLF BRING HIGH AND B377 MASK LOW IOR 1 MERGE STA ADR,I AND REPLACE JMP CHR04 AND BHIG HOLD HIGH IOR 1 MERGE STA ADR,I AND SET ISZ ADR BUMP DESTINAT ADRS * CHR04 ISZ DESCT DONE DESTINATION? JMP CHR02 NOT YET * JSB CHRAC LOOP TILL TERMINATOR JMP CHRPS,I EXIT, READY FOR NEXT JMP *-2 LOOP TILL FOUND * CHRAC NOP LDA SORAD,I GET SOURCE WORD LDB LEFRS GET HIGH LOW POINTER ISZ LEFRS RESEj FOR NEXT CALL SLB HIGH OR LOW? JMP *+3 LOW ALF,ALF BRING DOWN RSS ISZ SORAD BUMP ADRS AND B377 LOW ONLY CPA BSPAC SPACE? JMP CHRAC,I YES, EXIT CPA BCOMA COMMA? JMP CHRAC,I YES, EXIT ISZ CHRAC BUMP TO NORMAL EXIT LDB 0 ANSWER INZXT 'B' JMP CHRAC,I AND EXIT * END ZASMB,L,T,B NAM DUPSB,5 ENT DUPSB EXT CONTN,DIOER,EXEC,CHECK EXT ASCBI,BIASC,ABORT * * SEGMENT FOR FILE-MANAGER DIRECTORY LISTINGS * AND FOR LISTING OF MAGTAPE * COM TTY,TTYIN,LISTD,MT1,MT2,UPDAT COM DUMA(3) COM #CART,CARTR(31),DESCR,MASTR COM CADIR(128) COM DU,PU,DL,PR,SOURC,DESTN COM #NAMS,ACNAM,#SC,ACSC,#TYPE,ACTYP COM DUMB(240) * SUP * DIREC BSS 128 BSPPL OCT 20053 HIG OCT 177400 SDISC OCT 102 * MO BSS 1 KO BSS 1 NCART BSS 1 DCART DEF CARTR CARTD BSS 1 INCRM BSS 1 CADDF DEF CADIR CARCD BSS 1 CURNT BSS 1 MTCRN BSS 1 STATU BSS 1 SECCN BSS 1 #TRKS BSS 1 #SECT BSS 1 * LUDF DEF LU LU BSS 1 LASTT BSS 1 LABEL BSS 1 LOCK BSS 1 * SECTR BSS 1 DIRDF DEF DIREC DSMST BSS 1 NSECS BSS 1 NTRKS BSS 1 F.PTR BSS 1 G.PTR BSS 1 ENTCT BSS 1 * EXTND BSS 1 LPCNT OCT 1100 NRPR BSS 1 * SC BSS 1 TYP BSS 1 * .1 DEC 1 .128 DEC 128 .0 DEC 0 .2 DEC 2 .4 DEC 4 .14 DEC 14 .12 DEC 12 .6 DEC 6 .16 DEC 16 .3 DEC 3 .10 DEC 10 .11 DEC 11 .13 DEC 13 .19 DEC 19 .20 DEC 20 .5 DEC 5 .17 DEC 17 .8 DEC 8 .7 DEC 7 * B22 OCT 22 B200 OCT 200 B300 OCT 300 B400 OCT 400 BIT15 OCT 100000 * N1 DEC -1 N4 DEC -4 N8 DEC -8 N9 DEC -9 N16 DEC -16 * F1 ASC 5,CARTRIDGE NOTMT BSS 3 ASC 6, NOT MOUNTED * F2 ASC 5,CARTRIDGE LOCED BSS 3 ASC 4, LOCKED * F3 ASC 3, CR= CR BSS 3 * F4 ASC 1, * F5 ASC 14, NAME TYPE #BLKS/LU SCODE * F6 ASC 1, NAME BSS 3 TYPE BSS 3 #BLLU BSS 3 FOLW BSS 4 EXT BSS 3 * F7 ASC 8, MTAPE CONTENTS F8 ASC 11, NAME TYPE SCODE F9 ASC 6,MTAPE ERROR F10 ASC 1, NA BSS 3 TY BSS 3 ASC 1, SCODE BSS 3 F11 ASC 8, TOTAL #TRACKS: #TR BSS 3 ASC 5, #SECTORS: #SE BSS 3 * REWND BSS 1 MTCON BSS 1 gREWST BSS 1 SKP DUPSB NOP * LDA LISTD MAKE LINE PRINTER IOR LPCNT CONTROL STA LPCNT * LDA DU WAS A DUMP MADE? SZA,RSS JMP ML00 NO, NORMAL DIRECTORY LDA BIT15 YES, SET ACTION TO ALL STA ACNAM NAME STA ACSC SECURITY CODE STA ACTYP TYPE * ML00 LDA SOURC GET SOURCE LDB DU WAS A DUMP MADE? SZB LDA DESTN YES, THEN DLIST OVER DESTN CPA .2 DESTINATION IS DISC? JMP DUP0 YES * * MTAPE * LDA MT1 INPUT LU SZB WAS A DUMP MADE? LDA MT2 YES, THEN OUTPUT LU STA MTCRN SET CURRENT LU IOR B400 MAKE CONTROLS MT STA REWND REWIND LDA MTCRN IOR B300 STA MTCON FORWARD SPACE * JSB EXEC REWIND THE TAPE DEF *+3 DEF .3 DEF REWND * LDA .1 SPACE JSB PRINT DEF F4 LDA .8 PRINT HEADER JSB PRINT DEF F7 LDA .1 JSB PRINT DEF F4 LDA .7 PREPARE FOR SHORT LDB MASTR MASTER KNOWN? SZB LDA .11 IS KNOWN SO LONG JSB PRINT DEF F8 LDA .1 SPACE JSB PRINT DEF F4 * ML01 JSB EXEC READ A RECORD DEF *+5 DEF .1 DEF MTCRN CURRENT LU DEF DIREC DEF .6 * STA STATU HOLD STATUS AND B200 EOF? CPA B200 JMP ML04 YES, END OF TAPE LDA STATU GET STATUS AGAIN AND B22 ANY ERRORS? SZA JMP ML05 YES * JSB CHECK CHECK IF APPLICABLE DEF *+5 DEF DIREC DEF DIREC+4 SC DEF DIREC+3 TYPE DEF ML03 N/A * LDA DIREC TRANSFER NAME STA NA IN LDA DIREC+1 MICKEY- STA NA+1 MOUSE LDA DIREC+2 FASHION STA NA+2 * JSB BIASC CONVERT TYPqE DEF *+3 DEF DIREC+3 DEF TY * LDA .7 PRPARE SHORT PRINT LDB MASTR CONVERT SC? SZB,RSS JMP ML02 NO * JSB BIASC YES, CONVERT SC DEF *+3 DEF DIREC+4 DEF SCODE * LDA .11 LONG PRINT ML02 JSB PRINT PRINT DEF F10 * ML03 JSB EXEC SPACE TO NEXT DEF *+3 DEF .3 DEF MTCON * AND B200 CHECK FOR EOF CPA B200 JMP ML01 NEW RECORD JMP ML03 SPACE TILL EOF FOUND * ML04 JSB EXEC REWIND DEF *+3 DEF .3 DEF REWND JMP CONTN EXIT TO MAIN * ML05 JSB MESAG TELL MT ERR DEF F9 DEF .6 JMP ABORT AND ABORT * * DISC * DUP0 SZB,RSS WAS DUMP MADE? JMP DUP00 NO THEN INPUT DISC LDA DESCR YES, TRICK DESTINATION STA DCART,I INTO SOURCE CCA SET 1 CAR STA NCART JMP DUP0A AND DO DLIST * DUP00 LDA #CART SET LOOP COUNTER CMA,INA STA NCART NEG # GIVEN CARTRDG DUP0A LDA DCART SET ADRS GIVEN STA CARTD CARTRIDG. * DUP01 LDA CARTD,I GET GIVEN LABL OR LU CLB READY FOR LU SSA,RSS LABEL OR LU? LDB .2 IS LABEL STB INCRM SSA POS? CMA,INA NO, MAKE IT THEN STA CURNT HOLD AS CURRENT * LDA CADDF SET UP ADRS DUP02 STA CARCD CARTRIDG DIRECT LDB 0,I GET CONTENTS SZB,RSS END? JMP DUP03 YES ADA INCRM GO TO LU OR LABEL LDB 0,I GET IT CPB CURNT SAME? JMP DUP04 FOUND LDA CARCD ADA .4 TRY NEXT JMP DUP02 * DUP03 LDA CARTD,I RESTORE ORIGINAL STA CURNT LABEL OR LU * JSB BIASC PRINT NOT FOUND DEF *+3 CONVERT TO ASCII DEF CURNT DEF NOTMT * JSB MESAG TELL IT DEF F1 DEF .14 * a JMP NEXT TRY NEXT GIVEN * DUP04 LDA N4 TRANSFER DIRECTORY STA MO LDA LUDF STA KO LDB CARCD SOURCE ADRS LDA 1,I STA KO,I TRANSFER INB BUMPS ISZ KO ISZ MO JMP *-5 * LDA LOCK LOCKED? SZA,RSS JMP DUP05 NO * JSB BIASC YES, CONVERT DEF *+3 CURRENT DEF CURNT DEF LOCED * JSB MESAG PRINT DEF F2 DEF .12 * JMP NEXT AND TRY NEXT GIVEN * DUP05 JSB HEADR GIVE HEADER ON LISTING * CLA CLEAR TOTAL # SECTORS STA SECCN * CCA INITIATE DIRECT STA DSMST SCAN STATUS * DUP06 JSB DSM GET ENTRY FROM DIRECT JMP NNEXT END THIS DIRECTORY * LDB F.PTR GET ENTRY POINTER LDA 1,I SET STA NAME NAME INB IN LDA 1,I OUTPUT STA NAME+1 INB LDA 1,I STA NAME+2 INB LDA 1,I GET TYPE STA TYP * STB G.PTR HOLD ADRS AT TYPE ADB .5 GO TO SC LDA 1,I GET CONTENTS STA SC AND HOLD * JSB CHECK CHECK IF DEF *+5 APPLICABLE DEF NAME DEF SC DEF TYP DEF DUP06 NOT APPLICBL * JSB BIASC CONVERT TYPE TO ASCII DEF *+3 DEF TYP DEF TYPE * LDB G.PTR LDA TYP CHECK IF TYPE 0 SZA JMP DUP07 IS NOT 0 * INB GET LU LDA 1,I STA MO AND SET JMP DUP08 * DUP07 ADB .3 GO TO #SEC LDA 1,I GET TO SECTOR ADA SECCN UPDATE TOTAL STA SECCN AND REPLACE LDA 1,I GET SEC ARS MAKE BLOCKS STA MO SET FOR CONVERT * DUP08 JSB BIASC CONVERT TO ASCII DEF *+3 DEF MO DEF #BLLU * LDB G.PTR GET TO EXTEND ADB .2 o LDA 1,I AND HIG HIGH WORD ONLY ALF,ALF BRING DOWN STA EXTND AND HOLD * LDA MASTR LONG LIST? SZA JMP DUP09 YES * LDB .10 SHORT WITHOUT EXTND LDA EXTND SZA,RSS EXTEND? JMP OUT NO, PRINT * JSB BIASC CONVERT DEF *+3 DEF EXTND DEF FOLW * LDA BSPPL TRICK SPACE AND + STA FOLW LDB .13 GET LENGTH SHORT+EXTND JMP OUT PRINT * DUP09 LDA F6 SET SPACE STA FOLW * JSB BIASC CONVERT SC TO ASCII DEF *+3 DEF SC DEF FOLW+1 * LDB .14 LENGTH LONG NO EXTND LDA EXTND EXTEND? SZA,RSS JMP OUT NO, PRINT * JSB BIASC CONVERT DEF *+3 DEF EXTND DEF EXT * LDA BSPPL TRICK SPACE AND + STA EXT LDB .17 * OUT LDA 1 GET # WORDS IN A FOR PRINT JSB PRINT DEF F6 * JMP DUP06 NEXT ENTRY * NNEXT LDA SECCN GET TOTAL # SECTORS CLB DIV NSECS # SECTRS/TRACK STA #TRKS # TRACKS STB #SECT # SECTORS * JSB BIASC CONVERT # TRACKS DEF *+3 DEF #TRKS DEF #TR * JSB BIASC CONVERT # SECTORS DEF *+3 DEF #SECT DEF #SE * LDA .1 SPACE JSB PRINT DEF F4 LDA .19 PRINT JSB PRINT DEF F11 * JSB EXEC EJECT A PAGE DEF *+4 DEF .3 DEF LPCNT DEF N1 * NEXT ISZ CARTD BUMP ADRS GIVEN CARTRIDGE ISZ NCART ALL DONE? JMP DUP01 NO, NEXT JMP CONTN THAT IS ALL, GOOD BYE SKP HEADR NOP * JSB BIASC CONVERT LABEL DEF *+3 DEF LABEL DEF CR * LDA .6 JSB PRINT PRINT CARTRIDEGE LABEL DEF F3 * LDA .1 SPACE JSB PRINT DEF F4 * LDA .11 PREPARE SHORT HEAD LDB MASTR MASTER SC KNOWN? SZB LDA .14 IS KNOWN JSB PRINT DEF F5 PRINT HEADING * LDA .1 SPACE JSB PRINT DEF F4 * JMP HEADR,I EXIT * * * PRINT NOP STA NRPR LDA PRINT,I GET FORMAT STA PR01 * JSB EXEC NOW PRINT DEF *+5 DEF .2 DEF LISTD LIST DEVICE PR01 NOP FORMAT SET DEF NRPR * ISZ PRINT BUMP TO CORRECT RETURN JMP PRINT,I AND EXIT * * * DSM NOP ISZ DSMST NEW CARTRIDGE? JMP DSM3 NO CCA YES, HOLD STATUS STA DSMST CLA START AT SEC 0 LDB LU CHECK IF LU=2 CPB .2 LDA .14 IT IS STA SECTR JMP DSM4 GET FIRST SECTR DIRECT * DSM0 LDA SECTR GET LOG SECTOR ADA .14 UPDATE CLB DIV NSECS NEXT=CURRENT MOD #SECTRS STB SECTR UPDATE SZB END OF TRACK? JMP DSM4 NO CCB YES, GET NEXT TRACK ADB LASTT BACK UP 1 STB LASTT UPDATE ISZ NTRKS END DIRECTORY? RSS JMP DSM,I YES, END DIRECT EXIT * DSM4 JSB EXEC READ DIRECTORY DEF *+7 DEF .1 DEF LU DEF DIREC DEF .128 DEF LASTT DEF SECTR * SZB,RSS CHECK I/O ERR JMP DIOER YES, ABORT VIA MAIN * LDA DIRDF ADRS DIRECT BUFF LDB N9 ISZ DSMST NEW CARTRDG? JMP DSM1 NO * LDA DIREC+6 YES, GET #SEC/TRACK STA NSECS LDA DIREC+8 GET # DIREC TRACKS STA NTRKS LDA DIRDF ADA .16 GO TO FIRST ENTRY LDB N8 * DSM1 ADA N16 SET TO PREVIOUS STA F.PTR ENTRY ADRS STB ENTCT ENTRY COUNT * DSM3 ISZ ENTCT END BUFFER? RSS JMP DSM0 YES, GET MORE INFO LDA F.PTR MOVE POINTER TO ADA .16 NE*($XT ENTRY STA F.PTR LDB F.PTR,I END OF FILES? SZB,RSS JMP DSM,I YES, EXIT TO END SSB PURGED FILE? JMP DSM3 YES, TRY NEXT * ISZ DSM EXIT NORMAL JMP DSM,I * * * MESAG NOP LDA MESAG,I SET FORMAT STA MES01 ISZ MESAG LDA MESAG,I GET # WORDS STA MES01+1 * JSB EXEC PRINT DEF *+5 DEF .2 DEF TTY MES01 NOP NOP * ISZ MESAG SET CORRECT RETURN JMP MESAG,I EXIT * END DUPSB Ǯ*ASMB,L,T,B NAM DUPSC,5 * * THIS SEGMENT DOES THE ACTUAL DUMPING * ENT DUPSC EXT DIOER,ABORT,CONTN EXT READF,WRITF,OPEN,CLOSE EXT CREAT,PURGE,POSNT EXT EXEC,CHECK,BIASC * SUP * COM TTY,TTYIN,LISTD,MT1,MT2,UPDAT COM ISTRK,IDISC,ISECT COM #CART,CARTR(31),DESCR,MASTR COM CADIR(128) COM DU,PU,DL,PR,SOURC,DESTN COM #NAMS,ACNAM,#SC,ACSC,#TYPE,ACTYP COM BUF(240) * NAME BSS 3 TYPE BSS 1 SC BSS 1 #BLKS BSS 1 LENGT BSS 1 #WORD BSS 1 DATA BSS 2560 * IDCB BSS 144 ODCB BSS 144 * DIREC BSS 128 SERDR BSS 128 * SERSC BSS 1 SRMO BSS 1 SRKO BSS 1 SRLO BSS 1 SRJO BSS 1 SDRDF DEF SERDR * DSMST BSS 1 SECTR BSS 1 DIRDF DEF DIREC NSECS BSS 1 NTRKS BSS 1 F.PTR BSS 1 ENTCT BSS 1 * STR ASC 1, NAM BSS 3 TYP BSS 3 ASC 1, SEC BSS 3 PRIST BSS 1 * IERR BSS 1 FORCE BSS 1 #BL BSS 1 CLIMB BSS 1 LOPOT BSS 1 DATDF DEF DATA VARLN BSS 1 NAMDF DEF NAME #WRDF DEF #WORD * OTEOF BSS 1 OTRWN BSS 1 OTFRW BSS 1 OTREV BSS 1 * BINRY BSS 1 INRWN BSS 1 INFRW BSS 1 * NCART BSS 1 CARTD BSS 1 INCRM BSS 1 CURNT BSS 1 CADDF DEF CADIR CARCD BSS 1 DCART DEF CARTR * LUDF DEF LU LU BSS 1 LASTT BSS 1 LABEL BSS 1 LOCK BSS 1 * MO BSS 1 KO BSS 1 HIG OCT 177400 FOR BSS 1 INCLM BSS 1 LENLF BSS 1 INPTT BSS 1 LEN BSS 1 MTLEN BSS 1 STATU BSS 1 MTFRS BSS 1 * .0 DEC 0 .1 DEC 1 .2 DEC 2 .3 DEC 3 .4 DEC 4 .5 DEC 5 .6 DEC 6 .7 DEC 7 .8 DEC 8 .10 DEC 10 .11 DEC 11 .12 DEC 12 .14 DEC 14 .16 DEC 16 .20 DEC 20 .128 DEC 128 .2559 DEC 2559 .2560 DEC 2560 .2561 DEC 2561 .2568 DEC 2568 * N1 DEC -1 N2 DEC -2 N3 DEC -3 N4 DEC -4 N6 DEC -6 N8 DEC -8 N9 DEC -9 N12 DEC -12 N14 DEC -14 N16 DEC -16 N20 DEC -20 N32 DEC -32 * B4 OCT 4 B22 OCT 22 B40 U OCT 40 B100 OCT 100 B200 OCT 200 B300 OCT 300 B400 OCT 400 * F1 ASC 6,END OF TAPE F3 ASC 7,BUG! FMGR ERR ER BSS 3 ASC 1, ERB BSS 3 F4 ASC 9,DUPLICATE NAME _ F5 ASC 13,FILE TOO LONG NO ROOM _ F6 ASC 7,DIRECTORY FULL F7 ASC 4,OPEN _ F8 ASC 8,TEMP DIREC FULL F9 ASC 6,MTAPE ERROR F10 ASC 11, NAME TYPE SCODE SKP DUPSC NOP LDA PR PRINT ASKED? SZA,RSS JMP DUP00 NO LDA .7 PREPARE FOR SHORT LDB MASTR MASTER SC KNOWN? SZB LDA .11 YES, MAKE LONG JSB PRINT PRINT HEADING DEF F10 LDA .1 SPACE JSB PRINT DEF F10 * DUP00 LDA DESTN WHAT IS DESTINATION? CPA .2 JMP DUP05 IS DISC * * MTAPE OUTPUT PREPARE * LDA MT2 MAKE CONTROL OUTPUT TAPE IOR B100 STA OTEOF OUT EOF LDA MT2 IOR B400 STA OTRWN OUT REWIND LDA MT2 IOR B200 STA OTREV OUT BACKSPACE IOR B100 STA OTFRW OUT FORWARD SPACE * JSB DESRW REWIND DESTINATION * LDA UPDAT UPDATE? SZA,RSS JMP DUP05 NO, IS ALL FOR MT * DUP01 JSB EXEC READ A RECORD DEF *+5 DEF .1 DEF MT2 OUTPUT TAPE DEF NAME DEF .4 * STA STATU HOLD STATUS AND B200 EOF? CPA B200 JMP DUP03 YES, DONE LDA STATU GET STAUS AGAIN AND B22 CHECK FOR MTAPE ERORS SZA,RSS ERROR? JMP DUP1A NO, OK JSB MESAG TELL ERROR DEF F9 DEF .6 JMP ABORT AND ABORT * DUP1A JSB SERCH SET IN DIRECTORY JMP BUG NO ERROR EXPECTED * DUP02 JSB EXEC SPACE TO EOF DEF *+3 DEF .3 DEF OTFRW * AND B200 EOF FOUND? CPA B200 JMP DUP01 YES, NEXT JMP DUP02 NO, CONTINUE * DUP03 JSB BACK REMOVE 1 EOF * DUP05 ޡLDA SOURC WHAT IS SOURCE? CPA .2 DISC? JMP DUP15 YES * * M T A P E I N P U T * LDA MT1 MAKE COMMANDS IOR B400 STA INRWN INPUT REWIND LDA MT1 IOR B300 STA INFRW INPUT FORWARDS * JSB INRW REWIND INPUT * DUP06 JSB EXEC GET A RECORD DEF *+5 DEF .1 DEF MT1 DEF NAME WITH NAME,TYPE,SC,ETC DEF .2568 * JSB MTINP CHECK STATUS JMP DUP11 EOF FOUND * JSB CHECK CHECK IF APPLICABLE DEF *+5 DEF NAME DEF SC DEF TYPE DEF DUP08 NOT THIS ONE * JSB OUTIZ INIT OUTPUT JMP DUP08 CAN'T INITIALIZE JMP DUPA7 DUMP IT * DUP07 JSB EXEC GET A RECORD DEF *+5 DEF .1 DEF MT1 DEF #WORD # WORDS AND DATA DEF .2561 * JSB MTINP CHECK STATUS JMP DUP09 END THIS FILE * DUPA7 JSB OUT DUMP THE BUFFER RSS CAN'T DO IT JMP DUP07 NEXT RECORD * JSB CLS CLOSE OUTPUT DEF ODCB TO BE SHURE * DUP08 JSB EXEC FORWARD SPACE TILL EOF DEF *+3 DEF .3 DEF INFRW * AND B200 EOF? CPA B200 JMP DUP06 YES, START NEXT JMP DUP08 NO, CONTINUE SPACING * DUP09 JSB OUTDN TERMINATE OUTPUT JMP DUP10 CAN'T BE DONE * JSB LIST PRINT TRANSFER JMP DUP06 START NEXT * DUP10 JSB CLS CLOSE ODCB IF OPEN DEF ODCB JMP DUP06 TAKE NEXT * DUP11 JSB INRW TERMINATING, REWIND INPUT JMP DUP36 AND SEE ABOUT DESTINAT MT * * D I S C I N P U T * DUP15 LDA #CART SET LOOP COUNTER CMA,INA STA NCART NEG # GIVEN LDA DCART SET ADRS GIVEN STA CARTD CARTRIDGES * DUP16 LDA CARTD,I GET LABEL OR LU CLB NEG IS LU SSA,RSS LABEL OR LU? LDB .2 IS LABEL STB INCRM SET IhNCREMENT SSA TEST AGAIN CMA,INA LU MUST BE POS STA CURNT SET CURRENT LDA CADDF ADRS CAR DIREC DUP17 STA CARCD LDB 0,I GET CONTENTS SZB,RSS END? JMP BUG YES, BUG ADA INCRM GO TO LU OR LABEL LDB 0,I GET CONTENTS CPB CURNT SAME? JMP DUP18 YES, FOUND LDA CARCD NO ADA .4 BUMP JMP DUP17 LOOP AROUND * DUP18 LDA N4 TRANSFER DIRECTORY STA MO LDA LUDF ADRS DESTINATION STA KO LDB CARCD SOURCE ADRS LDA 1,I TRANSFER STA KO,I INB BUMPS ISZ KO ISZ MO DONE? JMP *-5 NOT YET * CCA INITIATE DIRECTORY STA DSMST SCAN STATUS * DUP19 JSB DSM GET AN ENTRY JMP DUP35 END THIS DIRECTORY * LDB F.PTR GET ENTRY POINTER LDA N4 SET LOOP COUNTER STA MO LDA NAMDF ADRS DESTINATION STA KO LDA 1,I TRANSFER STA KO,I INB BUMPS ISZ KO ISZ MO DONE? JMP *-5 NOT YET * LDA TYPE TYPE 0? SZA,RSS JMP DUP19 YES, IGNORE LDB F.PTR GO TO EXTEND ADB .5 LDA 1,I GET EXTEND AND HIG ONLY HIGH WORD SZA IS EXTEND? JMP DUP19 YES, IGNORE INB GO TO # SECTORS LDA 1,I ARS MAKE # BLOCKS STA #BLKS INB GO TO REC LENGTH LDA 1,I STA LENGT FOR TYPE 2 ONLY INB GO TO SECURITY CODE LDA 1,I STA SC AND SET IT * JSB CHECK CHECK IF APPLICABLE DEF *+5 DEF NAME DEF SC DEF TYPE DEF DUP19 N/A, NEXT * CLB FORCE TO TYPE 1? LDA TYPE ADA N3 HIGHER THAN 2? SSA,RSS CPA .3 TYPE 6 ? LDB B4 FORCE TO TYPE 1g STB FOR * JSB OPEN TRY TO OPEN DEF *+7 DEF IDCB DEF IERR DEF NAME DEF FOR DEF SC DEF CARTD,I CURRENT LABEL OR NEG LU * CPA N8 OPEN? RSS JMP DUP20 NO JSB MESAG YES, TELL SO DEF F7 DEF .3 JSB NAMPR AND TELL FILE JMP DUP19 TAKE NEXT * DUP20 JSB FMGER CHECK FOR OTHER ERRORS * JSB OUTIZ INITIALIZE OUTPUT RSS CAN'T DO, SO CLOSE INPUT JMP DUP21 OK RETURN * DP20A JSB CLOSE CLOSE INPUT DEF *+4 DEF IDCB DEF IERR DEF .0 JSB FMGER CHECK FOR ERRORS JMP DUP19 TAKE NEXT * DUP21 LDA FOR TYPE 1 READ? CPA B4 JMP DUP30 YES, GO TO TYPE 1 * * VARIABLE LENGTH READ * DUP22 CLA STA #WORD CLEAR # WORDS LDA DATDF SET DATA POINTER STA INCLM LDA .2559 LENGTH LEFT STA LENLF IN BUFFER * DUP23 LDA INCLM STEP TO DATA INA STA INPTT * JSB READF READ A RECORD DEF *+6 DEF IDCB DEF IERR DEF INPTT,I START AT DATA DEF LENLF AS MUCH AS POSSIBLE DEF LEN # WORDS TRANSFERRED * JSB FMGER CHECK FOR ERRORS LDA LEN GET # WORDS TRANSFERRED CPA N1 EOF SENSED? JMP DUP26 YES, DONE * CPA .2559 WAS IT THE WHOLE BUFFER? JMP *+3 YES, THEN TRUNCATE CPA LENLF WAS REC TOO LONG? JMP DUP24 YES, THE BUFFER FULL STA INCLM,I SET # WORDS IN BUFFER INA ADD REC LENGTH POINTER STA 1 HOLD IN 'B' ADA INCLM BUMP REC LENTH POINTER STA INCLM LDA 1 UPDATE TOTAL # WORDS ADA #WORD STA #WORD CMB,INB DECREMENT LENGTH LEFT ADB LENLF STB LENLF UPDATE SSB,RSS IF NEG THEN A TRUNCATE SZB,RSS ANYTHING LEFT? JMP DUP25 NO, DO NOT TRY Ab READ JMP DUP23 YES, NEXT RECORD * DUP24 JSB POSNT BACK UP 1 REC DEF *+4 DEF IDCB DEF IERR DEF N1 * JSB FMGER NO ERROR EXPECTED * DUP25 JSB OUT GET RID OF BUFFER JMP DP20A CAN'T, THEN CLOSE JMP DUP22 NEXT RECORD * DUP26 STA INCLM,I DONE, SET EOF ISZ #WORD BUMP #WORDS JSB OUTDN TERMINATE JMP DP20A CAN'T, THEN CLOSE * JSB LIPUR LIST AND PURGE IF WANTED JMP DP20A CLOSE, THEN NEXT JMP DUP19 TAKE NEXT * * TYPE 1 READ * DUP30 LDA #BLKS GET # OF BLOCKS STA LENLF AND SET * DUP31 LDA LENLF GET # BLOCKS LEFT ADA N20 TRY TO DUMP 20 STA LENLF UPDATE # LEFT SSA LESS THAN 20 LEFT? JMP DUP32 YES, LESS THAN FULL LDA .2560 SET FULL BUFFER STA #WORD IN TOTAL # WORDS CLA SET FLG NOT LAST STA INCLM JMP DUP33 AND READ DUP32 ADA .20 RESTORE ORIGINAL # MPY .128 MAKE # WORDS STA #WORD AND SET TOTAL # WORDS SZA,RSS ANYTHING TO READ? JMP DUP34 NO CCA SET FLAG LAST STA INCLM * DUP33 JSB READF READ FROM FILE DEF *+5 DEF IDCB DEF IERR DEF DATA DEF #WORD * JSB FMGER NO ERRORS EXPECTED * ISZ INCLM LAST? RSS JMP DUP34 YES, TERMINATE JSB OUT NO, GET RID OF DATA JMP DP20A CLOSE IF CAN'T JMP DUP31 NEXT * DUP34 JSB OUTDN YES, TERMINATE JMP DP20A CAN'T TERMINATE * JSB LIPUR LIST AND PURGE IF WANTED JMP DP20A CLOSE, THEN NEXT JMP DUP19 TAKE NEXT * DUP35 ISZ CARTD BUMP CARTRIDGE POINTER ISZ NCART MORE CARTIDGES? JMP DUP16 YES, TAKE NEXT * DUP36 LDA DESTN EAS OUTPUT MTAPE? CPA .2 JMP CONTN NO, RETURN TO MAIN JSB EOF YES, GIVE TAPE TERMINATOR JSB DESR|W REWIND JMP CONTN RETURN TO MAIN * ABCLS LDA SOURC SOURCE WAS DISC? CPA .1 JMP *+3 NO JSB CLS YES FORCE CLOSE INPUT DEF IDCB LDA DESTN DESTINATION DISC? CPA .1 JMP ABORT NO, ABORT VIA MAIN JSB CLS CLOSE OUTPUT DEF ODCB JMP ABORT ABORT VIA MAIN SKP * * O U T P U T I N I T I A L I Z A T I O N * * JSB OUTIZ * JMP CAN'T INITIALIZE * OK RETRN * OUTIZ NOP LDA DESTN DESTINATION MTAPE? CPA .2 JMP OUT0 NO, IS DISC JSB SERCH CHECK DUPLICATE NAME JMP *+4 IS DUPLICATE CCA SET FLG FIRST RECORD STA MTFRS JMP OUT01 IS OK * JSB DUPL TELL DUPLICATE NAME JMP OUTIZ,I RETURN TO ERROR * OUT0 JSB CREAT CREATE THE FILE DEF *+8 DEF ODCB OUTPUT DCB DEF IERR DEF NAME DEF #BLKS SIZE, #BLOCKS DEF TYPE DEF SC DEF DESCR FROM COMMON * CPA N2 DUPLICATE NAME? RSS JMP OUT0A NO JSB DUPL TELL DUPLICATE NAME JMP OUTIZ,I CANNOT BE DONE * OUT0A CPA N4 TOO LONG? RSS CPA N6 OR NO ROOM? RSS JMP OUT0B NO, IS OK JSB MESAG TELL TO LONG, NO ROOM DEF F5 DEF .12 JSB NAMPR PRINT NAME JMP OUTIZ,I CNNOT BE DONE * OUT0B CPA N14 DIRECTORY FULL? RSS JMP OUT0C NO IS OK JSB MESAG TELL DIREC FULL DEF F6 DEF .7 JMP ABCLS ABORT AFTER CLOSE * OUT0C JSB FMGER CHECK SERIOUS ERRORS * CLB FORCE TO TYPE 1? LDA TYPE GET INPUT TYPE ADA N3 HIGHER THAN 2? SSA,RSS CPA .3 TYPE 6? LDB B4 FORCE TO TYPE 1 STB FORCE * JSB OPEN OPEN THE FILE DEF *+7 DEF ODCB DEF IERR DEF NAME DEF FORCE 1,2,6 FORCED TO{/ TYPE 1 DEF SC DEF DESCR * JSB FMGER CHECK FOR ERRORS * OUT01 ISZ OUTIZ BUMP OK RETURN JMP OUTIZ,I EXIT * * * O U T P U T * * JSB OUT * JMP CAN'T WRITE * OK RETURN * OUT NOP LDA DESTN DISC OUTPUT? CPA .2 JMP OUT02 YES, IS DISC * * MAGNETIC TAPE OUTPUT ***** * LDA .1 PREPARE NOT FIRST LDB #WRDF ADRS #WORDS ISZ MTFRS FIRST RECORD? JMP *+3 NO, SO WITHOUT NAME,SC,ETC LDA .8 IS FIRST, SO TAKE INFO LDB NAMDF START AT NAME ADA #WORD MAKE TOTAL REC LENGTH STA MTLEN STB OUTPA SET START ADRS IN EXEC * JSB EXEC DUMP THE RECORD DEF *+5 DEF .2 DEF MT2 DESTINATION LU OUTPA NOP START ADRS SET DEF MTLEN * AND B40 CHECK FOR EOT CPA B40 RSS JMP OUT50 OK EXIT * JSB MESAG TELL EOT DEF F1 DEF .6 * JSB BACK BACKSPACE JSB EOF WRITE EOF JSB EOF AND AN OTHER ONE JMP ABCLS ABORT AFTER CLOSES * * DISC OUTPUT **** * OUT02 LDA FORCE TYPE 1? CPA B4 RSS JMP OUT03 NO, VARIABLE LENGTH * JSB WRITF WRITE TYPE 1 DEF *+5 DEF ODCB DEF IERR DEF DATA DEF #WORD * JSB FMGER ANY ERROR? JMP OUT50 OK EXIT * OUT03 LDA DATDF VARIABLE LENGTH, SET STA CLIMB POINTEiS LDA #WORD AND LOOP COUNTER CMA,INA STA LOPOT LOOP COUNTER * OUT04 LDA CLIMB,I GET LENGTH STA VARLN AND SET ISZ CLIMB SET POINTR TO DATA * JSB WRITF WRITE THE RECORD DEF *+5 DEF ODCB DEF IERR DEF CLIMB,I DEF VARLN THE VAR LENGTH * CPA N6 ROOM? RSS JMP OUT4A YES JSB MESAG NO, TELL SO DEF F5 DEF .12 JSB NAMPR PRINT NAME JSB m#OTPUR PURGE CORRUPT FILE JMP OUT,I EXIT CAN'T WRITE * OUT4A CPA N14 DIRECTORY FULL? RSS JMP OUT4B NO JSB MESAG YES, SAY SO DEF F6 DEF .7 JSB OTPUR PURGE CORRUPT FILE JMP ABCLS ABORT AFTER CLOSE * OUT4B JSB FMGER CHECK SERIOUS ERRORS * LDB VARLN SSB EOF? JMP OUT50 YES, DONE LDA CLIMB BUMP POINTER ADA 1 WITH OLD VAR LENG STA CLIMB POINTS TO NEXT LENGTH INB ADD LENG TO VAR LENG ADB LOPOT CHECK FOR DONE STB LOPOT UPDATE SSB DONE? JMP OUT04 NOT YET * OUT50 ISZ OUT MAKE OK RETURN JMP OUT,I * * * O U T P U T D O N E * * JSB OUTDN * JMP CAN'T FINISH * OK RETURN * OUTDN NOP * LDA SOURC WAS SOURCE MTAPE? CPA .1 JMP OUT06 YES, NO POST LDA #WORD ANYTHING THERE? SZA,RSS JMP OUT06 NO, NO POST * JSB OUT POST REMAINING JMP OUTDN,I CANNOT BE DONE * OUT06 LDA DESTN DISC OR MTAPE CPA .2 JMP OUT05 IS DISC * JSB EOF IS MTAPE, SO EOF JMP OUT51 OK RETURN * OUT05 JSB CLOSE DISC, CLOSE DCB DEF *+4 DEF ODCB DEF IERR DEF .0 * JSB FMGER CHECK FOR ERRORS * OUT51 ISZ OUTDN DUMP TO CORRECT RETURN JMP OUTDN,I EXIT SKP * * INPUT REWIND * INRW NOP JSB EXEC MAKE REWIND DEF *+3 DEF .3 DEF INRWN JMP INRW,I EXIT * * STATUS MTAPE INPUT * MTINP NOP * STA STATU HOLD STATUS AND B200 CHECK FOR EOF CPA B200 JMP MTINP,I EXIT TO EOF ISZ MTINP BUMP TO OK EXIT LDA STATU GET STATUS AGAIN AND B22 ANY ERROR? SZA,RSS JMP MTINP,I NO, ALL OK * JSB MESAG YES, TELL DEF F9 DEF .6 JMP ABCLS ABORT AFTER CLSE * * DESTINATION TAPE REWIND * DESRW NOP JSB EXEC DEF *+3 DEF .3 DEF OTRWN JMP DESRW,I * * DESTINATION EOF * EOF NOP JSB EXEC DEF *+3 DEF .3 DEF OTEOF JMP EOF,I * * PRINT OF NAME * NAMPR NOP JSB MESAG DEF NAME DEF .3 JMP NAMPR,I * * PRINTING DUPLICATE NAME * DUPL NOP JSB MESAG PRINT DUPLICATE DEF F4 DEF .8 JSB NAMPR AND THEN THE NAME JMP DUPL,I EXIT * * BACKSPACE OUTPUT 1 REC * BACK NOP JSB EXEC DEF *+3 DEF .3 DEF OTREV JMP BACK,I * * CHECKING FOR FILE-MANAGER ERRORS * FMGER NOP SSA,RSS ANY ERROR? JMP FMGER,I NO, EXIT AT ONCE CPA N1 DISC ERROR? JMP DIOER YES, SPECIAL MAIN RETURN * STA BINRY SET ERROR FOR CONVERT JSB BIASC CONVERT DEF *+3 DEF BINRY DEF ER LDA FMGER MAKE CALLING ADRS ADA N1 STA FMGER JSB BIASC CONVERT DEF *+3 DEF FMGER DEF ERB ERROR ADRS JSB MESAG PRINT ERROR DEF F3 DEF .14 JMP ABCLS ABORT AFTER CLOSE * * MESSAGE ON SYSTEM CONSOLE * MESAG NOP LDA MESAG,I SET FORMAT STA MES01 ISZ MESAG LDA MESAG,I SET # WORDS STA MES01+1 * JSB EXEC PRINT DEF *+5 DEF .2 DEF TTY MES01 NOP NOP * ISZ MESAG SET CORRECT RETURN JMP MESAG,I EXIT * * LINE ON LIST-DEVICE * PRINT NOP STA PRIST HOLD # WORDS LDA PRINT,I GET FORMAT STA PRI00 * JSB EXEC PRINT DEF *+5 DEF .2 DEF LISTD PRI00 NOP DEF PRIST * ISZ PRINT BUMP TO CORRECT EXIT JMP PRINT,I EXIT * * LIST OF 1 TRANSFER * LIST NOP LDA PR PRINT? SZA,RSS JMP LIST,I NO * LDB NAMDF SOURCE INTO B WLDA 1,I SET NAME FOR PRINT STA NAM IN INB MICKEY LDA 1,I MOUSE STA NAM+1 FASHION INB LDA 1,I STA NAM+2 * JSB BIASC CONVERT TYPE DEF *+3 DEF TYPE DEF TYP * JSB BIASC CONVERT SC DEF *+3 DEF SC DEF SEC * LDA .7 SET UP FOR SHORT LDB MASTR MASTER SC KNOWN? SZB LDA .11 YES, THEN LONG JSB PRINT DEF STR PRINT IT * JMP LIST,I EXIT * * LISTING AND PURGING 1 DUMP, IF ASKED * LIPUR NOP JSB LIST DO LISTING * LDA PU PURGE? SZA,RSS JMP LIPUR,I NO * JSB PURGE YES, DO IT DEF *+6 DEF IDCB DEF IERR DEF NAME DEF SC DEF CARTD,I * JSB FMGER NO ERROR EXPECTED ISZ LIPUR BUMP TO PURGE EXIT JMP LIPUR,I EXIT * * OTHER THAN FILE MANAGER BUG * BUG NOP JSB MESAG TELL BUG DEF F3 DEF .2 WITHOUT ERROR JMP ABCLS ABORT AFTER CLOSE * * FORCED CLOSE * CLS NOP LDA CLS,I GET DCB STA CLS00 ISZ CLS SET CORRECT RETURN * JSB CLOSE NOW CLOSE DEF *+4 CLS00 NOP DEF IERR DEF .0 * JMP CLS,I IGNOE ALL ERRORS * * PURGING OUTPUT DCB IF FILE CORRUPT * OTPUR NOP JSB PURGE PURGE IT DEF *+6 DEF ODCB DEF IERR DEF NAME DEF SC DEF DESCR * JSB FMGER CHECK FOR ERRORS JMP OTPUR,I EXIT SKP * * * SETTING A NAME INTO THE TEMP. DIRECTORY. * THIS NAME WILL ONLY GO IN AFTER THE CHECK * IS MADE FOR DUPLICATION. THE NAME IS ASSUMED * TO BE IN "NAME". ALSO THE TYPE IS TAKEN BUT NOT * CHECKED. * * JSB SERCH * JMP DUBBLE NAME * SERCH NOP CLA INITIATE TO SECTOR 0 STA SERSC * JSB SERIN GET FIRST BLOCK * SER02 =LDA N3 INNER LOOP CHECK STA SRJO LDA SRLO GET ADRS CURRENT STA SRKO NAME IN BLOCK LDB NAMDF SOURCE ADRS IN 'B' * LDA SRKO,I GET FIRST STORED SZA,RSS END DIRECTORY? JMP SER05 YES SER03 LDA SRKO,I START CHECK CPA 1,I SAME? RSS YES JMP SER04 NO, BUMP TO NEXT INB BUMP SOURCE ISZ SRKO BUMP DESTINATION ISZ SRJO DONE? JMP SER03 NOT YET JMP SERCH,I YES, DUPLICATE NAME * SER04 JSB SERUP BUMP POINTER JMP SER02 AND KEEP CHECKING * SER05 LDA N4 SET LOOP TO 4 STA SRJO LDA 1,I SET NEW NAME STA SRKO,I INB BUMPS ISZ SRKO ISZ SRJO DONE? JMP *-5 NOT YET * JSB EXEC POST THIS BLOCK DEF *+7 DEF .2 DEF IDISC DEF SERDR DEF .128 DEF ISTRK DEF SERSC * SZB,RSS CHECK FOR ERROR JMP DIOER * ISZ SERCH BUMP TO OK EXIT JMP SERCH,I * SERUP NOP LDA SRLO GO TO NEXT IN BLOCK ADA .4 STA SRLO ISZ SRMO BLOCK DONE? JMP SERUP,I NO * CLB GET NEXT BLOCK LDA SERSC ADA .14 DIV ISECT STB SERSC NEW SECTOR SZB,RSS END OF TRACK? JMP SERU1 YES JSB SERIN GET NEXT BLOCK IN JMP SERUP,I AND EXIT * SERU1 JSB MESAG TELL ERROR DEF F8 DEF .8 JMP ABCLS ABORT AFTER CLOSE * SERIN NOP * JSB EXEC READ 2 SECTORS DEF *+7 DEF .1 DEF IDISC DEF SERDR DEF .128 DEF ISTRK DEF SERSC * SZB,RSS ERROR? JMP DIOER * LDA N32 SET COUNTR STA SRMO # NAMES/BLCK LDA SDRDF SET ADRS BLOCK STA SRLO * JMP SERIN,I * * * DSM NOP ISZ DSMST NEW CARTRIDGE? JMP DSM3 3NLH NO CCA YES, HOLD STATUS STA DSMST CLA START AT SEC 0 LDB LU CHECK IF LU=2 CPB .2 LDA .14 IT IS STA SECTR JMP DSM4 GET FIRST DIREC SECTOR * DSM0 LDA SECTR GET LOG SECTOR ADA .14 UPDATE CLB DIV NSECS NEXT=CURRENT MOD #SECTRS STB SECTR UPDATE SZB END OF TRACK? JMP DSM4 NO, READ CCB YES, GET NEXT TRACK ADB LASTT BACK UP STB LASTT ISZ NTRKS END DIRECTORY? RSS JMP DSM,I YES, SO END DIRECTORY * DSM4 JSB EXEC READ DIRECTORY DEF *+7 DEF .1 DEF LU DEF DIREC DEF .128 DEF LASTT DEF SECTR * SZB,RSS CHECK I/O ERR JMP DIOER YES, ABORT VIA MAIN * LDA DIRDF ADRS DIRECT BUFF LDB N9 ISZ DSMST NEW CARTRDG? JMP DSM1 NO * LDA DIREC+6 YES, GET #SEC/TRACK STA NSECS LDA DIREC+8 GET # DIREC TRACKS STA NTRKS LDA DIRDF ADA .16 GO TO FIRST ENTRY LDB N8 * DSM1 ADA N16 SET TO PREVIOUS STA F.PTR ENTRY ADRS STB ENTCT ENTRY COUNT * DSM3 ISZ ENTCT END BUFFER? RSS JMP DSM0 YES, GET MORE INFO LDA F.PTR MOVE POINTER TO ADA .16 NEXT ENTRY STA F.PTR LDB F.PTR,I END OF FILES? SZB,RSS JMP DSM,I YES, EXIT TO END SSB PURGED FILE? JMP DSM3 YES, TRY NEXT * ISZ DSM EXIT NORMAL JMP DSM,I * END DUPSC U - :IB,26 * :EA,29 <0> - :IB,29 * * 20 JULY 1974 H.F. LETTS - HP-HOUSTON * $EX36 LDA 227B GRAB CARD CODE PARAMETER CLB CPA =D26 INB STB FLAG * LDA 120B CMA,INA -# OF LU'S STA COUNT LDB 117B START OF EQT'S ADB =D-13 * LOOP ADB =D17 POINT TO TYPE CODE LDA 1,I GRAB IT AND AND =B37400 MASK OUT TYPE. CPA =B6400 7261A? JMP HIT --YES ISZ COUNT --NO,PREPARE FOR NEXT ONE JMP LOOP JMP QUIT WOOPS! NO CARD READER * HIT ADB =D2 POINT AT EQT6 LDA FLAG STA 1,I AND SAVE CARD CODE MODE JMP QUIT * FLAG NOP COUNT NOP * QUIT LDA 245B GRAB CURRENT MODULE # CPA =D-36 IS IT ME? CMA,INA YES,RELEASE OVERLAY AREA STA 245B LDA 225B PREPARE TO GO BACK WHERE EVER STA 137B JMP $IRT END RzASMB,R,L,T,C HED *** DOS-III 7261A CARD READER DRIVER - HOUSTON VERSION *** NAM DVR15,4,0,0,0,0,0,0,0 ENT I.15,C.15 * * MODIFIED TO ACCEPT EITHER 026 OR 029 PUNCH CODES. * NOTE: * 1) UNDEFINED '026' SYMBOLS WILL BE TRANSLATED AS '?' * 2) A '2-8' PUNCH (029 ':') IS ALSO 026 ':' * 3) BEFORE USING THE 7261A THE CARD CODE MUST BE * SPECIFIED BY THE COMMAND - * ':IBM,026' - CALL EXEC(3,107B) * ':IBM,029' - CALL EXEC(3,207B) * CALL EXEC(27,026) * CALL EXEC(27,029) * * 18 JULY 1974 H.F. LETTS HP-HOUSTON * * INITIATION SECTION. I.15 NOP ENTRY POINT. JSB SETIO SET I/O INSTRUCTIONS FOR CR. LDA TABLE,I FIX UP EQT 6 SZA FOR CODE JMP NEXT1 ACCORDING TO LDA DESK $EX36 STA TABLE,I JMP NEXT2 NEXT1 CPA =B1 RSS JMP NEXT2 LDA MESA STA TABLE,I NEXT2 LDA EQT9,I AND DEC3 ISOLATE THE REQUEST CODE. CPA DEC3 IS REQUEST A CONTROL REQUEST? JMP R3 YES, GO EXAMINE FUNCTION CODE. SLA,ARS NO; IS THE REQUEST TO READ? JMP READ YES, CONTINUE. CLA,INA NO, ENTER: A=1. JMP I.15,I RETURN TO THE USER. R3 LDA EQT9,I GET THE REQUEST CONTROL WORD. AND B0177 ISOLATE THE FUNCTION CODE. SZA,RSS JMP CLEAR CPA B600 IS IT A DYNAMIC STATUS REQUEST? JMP I.A.4 YES, GO TO IMMEDIATE COMPLETION. CPA =B100 JMP IBM26 CPA =B200 JMP IBM29 LDA DEC2 NO, LOAD: A=2. JMP I.15,I RETURN TO THE USER. CLEAR LDA DEC6 LDB INTAB,I CPB EQT1 JMP REVD1 INA LDB INTAB INB LDB B,I CPB EQT1 RSS JMP REVD2 REVD1 IOR STF STA *+1 NOP REVD2 CLC 00B JMP I.A.4 IBM26 LDA MESA RSS IBM29 LDA >sDESK STA TABLE,I JMP I.A.4 READ CPA EQT11,I IS THE BUFFER LENGTH = ZERO(0)? JMP SKIP. YES, GO CHECK THE MODE. READ0 BLF,SLB,ERB IS THE CR NOT READY? SLB,RSS NO; IS THE HOPPER EMPTY? JMP I.A.3 YES, GO DOWN THE UNIT. LDA N10 NO, LOAD: A=-10. STA EQT13,I SET THE ERROR RETRY COUNTER. READ1 LDB CHAN LOAD THE "DMA" CHANNEL NUMBER. STB EQT5,I SAVE THE "DMA" CHANNEL NUMBER. LDA DATAC LOAD THE CR CHANNEL NUMBER. DMA.0 OTA DMA ASSIGN THE "DMA" CHANNEL. LDA BUFAD LOAD THE INTERNAL BUFFER ADDRESS. DMA.1 CLC DMA-4 PREPARE THE ADDRESS REGISTER. DMA.2 OTA DMA-4 OUTPUT THE BUFFER ADDRESS. CCA ENTER: A=-1. DMA.3 STC DMA-4 PREPARE THE "DMA" WORD COUNT. DMA.4 OTA DMA-4 OUTPUT THE WORD COUNT MASK. DMA.5 LIA DMA-4 LOAD WORD COUNT MASK COMPLEMENT. CMA FORM THE "DMA" WORD COUNT MASK. STA DMASK STORE THE "DMA" MASK CONSTANT. LDA =D-80 LOAD: A=-80. DMA.6 OTA DMA-4 OUTPUT THE NEGATIVE WORD LENGTH. CLA ENTER: A=0. CR.0 STC CR,C ISSUE A PICK COMMAND TO THE CR. DMA.7 STC DMA,C ACTIVATE THE "DMA" CHANNEL. CPA I.15 PICK FAILURE RETRY? JMP C.RTN YES, GO TO CONTINUATION RETURN. JMP I.15,I NO, RETURN TO THE USER. I.A.3 CLA,SEZ,INA ENTER: A=1; HOPPER EMPTY? LDA =B000041 YES, SET STATUS BITS 0 AND 5. IOR EQT4,I INCLUDE THE UPPER STATUS. STA EQT4,I UPDATE THE STATUS WORD. LDA DEC3 LOAD: A=3. JMP I.15,I RETURN TO THE USER. SKIP. LDA EQT9,I LOAD THE FUNCTION REQUEST CODE. AND DEC64 ISOLATE THE MODE BIT. SZA IS THE MODE BINARY? JMP READ0 YES, GO SKIP ONE(1) RECORD. I.A.4 LDA DEC4 LOAD: A=4. JMP I.15,I RETURN TO THE USER. SETIO NOP ENTRY POINT. STA DATAC STORE THE CR CHANNEL NUMBER. LDB A LOAD THE CR CHANNEL NUMBER. JSB CONFG GO CONFIGURE: "CLC CR". DEF CR.1 ADDRESS DEFINITION: "CLC CR". STA REVD2 CR.1 CLC CR CLEAR CARD READER CONTROL BIT. JSB CONFG GO CONFIGURE: "STC CR,C". DEF CR.0 ADDRESS DEFINITION: "STC CR,C". JSB CONFG GO CONFIGURE: "LIA CR". DEF CR.3 ADDRESS DEFINITION: "LIA CR". LDB CHAN LOAD THE "DMA" CHANNEL NUMBER. JSB CONFG GO CONFIGURE: "OTA DMA". DEF DMA.0 ADDRESS DEFINITION: "OTA DMA". STA DMA.8 STORE THE INSTRUCTION. ADA N4 CONFIGURE: "OTA DMA-4". STA DMA.2 STORE THE INSTRUCTION. STA DMA.4 STORE THE INSTRUCTION. STA DMA.6 STORE THE INSTRUCTION. JSB CONFG GO CONFIGURE: "STC DMA,C". DEF DMA.7 ADDRESS DEFINITION: "STC DMA,C". ADB N4 COMPUTE: "DMA" ADDRESS - 4. JSB CONFG GO CONFIGURE: "CLC DMA-4". DEF DMA.1 ADDRESS DEFINITION: "CLC DMA-4". JSB CONFG GO CONFIGURE: "STC DMA-4". DEF DMA.3 ADDRESS DEFINITION: "STC DMA-4". JSB CONFG GO CONFIGURE: "LIA DMA-4". DEF DMA.5 ADDRESS DEFINITION: "LIA DMA-4". STA DMA.9 STORE THE INSTRUCTION. LDA EQT4,I LOAD THE STATUS WORD. AND M1774 REMOVE THE OLD STATUS. STA EQT4,I UPDATE THE STATUS WORD. CR.3 LIB CR LOAD THE CR STATUS. JMP SETIO,I RETURN. CONFG NOP ENTRY POINT. LDA CONFG,I LOAD THE INSTRUCTION ADDRESS. STA DMA.9 SAVE THE INSTRUCTION ADDRESS. LDA A,I LOAD THE INSTRUCTION. AND M1777 ISOLATE THE INSTRUCTION PART. IOR B INCLUDE THE CHANNEL NUMBER. STA DMA.9,I STORE THE CONFIGURED INSTRUCTION. ISZ CONFG INCREMENT FOR SKIP EXIT. JMP CONFG,I RETURN. READ2 SLB,RSS DATA ERROR INTERRUPT? JMP OPERR YES, GO FLAG OPERATOR ATTENTION. CPA EQT11,I NO; WAS A RECORD BEING SKIPPED? JMP R.ERR  YES, GO INITIALIZE ONLINE FLAG. STA CONFG NO, INITIALIZE THE WORD COUNTER. DMA.9 LIA DMA-4 LOAD THE WORD COUNT REGISTER. CCE,SZA DID "DMA" GO TO COMPLETION? IOR DMASK NO, INCLUDE THE UPPER BITS. CPA =D-80 WAS ANY DATA TRANSMITTED? JMP NREDY NO, GO SET I/O ERROR STATUS. CMA,INA YES, WORD COUNT RESIDUE POSITIVE. ADA =D-80 "SUBTRACT": 80 - RESIDUE. STA DMA.9 STORE THE WORD COUNT INDEX. LDB BUF LOAD INTERNAL BUFFER ADDRESS. STB DMA.8 STORE BUFFER ADDRESS INDEX. STA DMA.2 SAVE THE WORD COUNT INDEX. STB DMA.4 SAVE THE BUFFER ADDRESS INDEX. RVRSE LDB =B000020 LOAD: B=000020B. LDA DMA.4,I LOAD THE DATA COLUMN. SHIFT ERA SHIFT THE LOW ORDER BIT TO "E". ELB SHIFT THE BIT INTO ACCUMULATOR. SEZ,RSS IS 12-COLUMN SHIFT COMPLETED? JMP SHIFT NO, CONTINUE. STB DMA.4,I YES, STORE THE DATA COLUMN. ISZ DMA.4 INCREMENT BUFFER ADDRESS POINTER. ISZ DMA.2 IS THE BUFFER REVERSED? JMP RVRSE NO, CONTINUE. LDA DMA.9 YES, RELOAD WORD COUNT INDEX. LDB EQT9,I LOAD THE FUNCTION REQUEST CODE. BLF,BLF SHIFT "M-BIT" TO BIT 15. RBL SHIFT "M-BIT" TO BIT 15. SSB IS THE MODE BINARY? JMP BINRY YES, GO PROCESS BINARY CARD. CLB NO, ENTER: B=0. STB DMA.4 INITIALIZE THE CHARACTER COUNTER. LDB EQT11,I LOAD THE ORIGINAL REQUEST LENGTH. SSB IS THE REQUEST IN WORDS? CMB,INB,RSS NO, COMPLEMENT CHARACTER COUNT. RBL YES, CONVERT WORDS TO CHARACTERS. SSB CHARACTER LENGTH OVERFLOW? JMP .16K YES, CONTINUE. ADA B "SUBTRACT": REQUEST- CARD LENGTH. CMB,INB NEGATE THE CHARACTER COUNT. SSA IS THE REQUEST LESS THAN CARD? STB DMA.9 YES, STORE THE WORD NCOUNT INDEX. .16K LDA EQT10,I LOAD THE USER BUFFER ADDRESS. CLE,ELA SHIFT TO FORM CHARACTER ADDRESS. STA DMA.6 SAVE THE CHARACTER ADDRESS. LOOP LDB DMA.8,I LOAD THE DATA COLUMN. ISZ DMA.8 INCREMENT BUFFER ADDRESS POINTER. ISZ DMA.2 INCREMENT THE COLUMN COUNTER. LDA N9 LOAD: A=-9. STA CONFG INITIALIZE THE INDEX COUNTER. LDA DMA.2 LOAD THE CURRENT COLUMN COUNTER. SZB IS CURRENT CHARACTER NON-BLANK? STA DMA.4 YES, UPDATE RETURN COLUMN COUNT. CCA ENTER: A=-1. ROWS SLB,BRS IS THE ROW PUNCHED? SHIFT OFF. ADA CONFG YES, ACCUMULATE THE TOTAL. ISZ CONFG HAVE ROWS 1-9 BEEN TESTED? JMP ROWS NO, CONTINUE. BLF YES, MULTIPLY FIELD ROWS BY 16. CMB,INB,SZB COMPLEMENT; IS THERE A VALUE? ADA B YES, ACCUMULATE THE GRAND TOTAL. ADA =D80 ADD TABLE OFFSET VALUE FOR RANGE. CLE,SSA IS THE CHARACTER OFFSET LEGAL? JMP NREDY NO, GO FLAG ILLEGAL HOLLERITH. LEGAL ERA FORM THE WORD OFFSET VALUE. ADA TABLE,I ADD: TABLE BASE ADDRESS + OFFSET. LDA A,I LOAD WORD CONTAINING CHARACTER. SEZ,RSS IS THE CHARACTER IN HIGH ORDER? ALF,ALF YES, SHIFT THE CHARACTER TO 7-0. AND M377 ISOLATE THE CHARACTER. LDB DMA.6 LOAD CHARACTER BUFFER ADDRESS. CLE,ERB SHIFT, FORM WORD BUFFER ADDRESS. SEZ,RSS IS NEW CHARACTER TO BE LOWER? ALF,SLA,ALF NO, SHIFT TO HIGH ORDER; SKIP. IOR B,I YES, INCLUDE THE HIGH ORDER PART. STA B,I STORE THE WORD IN USER BUFFER. ISZ DMA.6 INCREMENT BUFFER ADDRESS POINTER. ISZ DMA.9 IS THE BUFFER EXHAUSTED? JMP LOOP NO, GO PROCESS NEXT COLUMN. LDB DMA.4 YES, LOAD # NON-BLANK CHARACTERS. LDA EQT11,I LOAD THE ORIGINAL REQUEST TYPE. CLE,SSA,RSS WAS THE REQUEST IN C^SHARACTERS? ERB NO, CONVERT CHARACTERS TO WORDS. END CLA,SEZ WAS THE CHARACTER COUNT ODD? INB YES, INCREMENT THE WORD COUNT. JMP C.15,I GO TO COMPLETION RETURN. BINRY CCE,SLB CONVERT FROM PACKED BINARY? JMP PAK.B YES, GO PROCESS PACKED BINARY. JSB INDEX NO, GO COMPUTE WORD COUNT INDEX. COL.B LDA DMA.8,I LOAD THE DATA COLUMN. ISZ DMA.8 INCREMENT BUFFER ADDRESS POINTER. STA DMA.6,I STORE THE WORD IN USER BUFFER. ISZ DMA.6 INCREMENT BUFFER ADDRESS POINTER. ISZ CONFG INCREMENT THE WORD COUNTER. ISZ DMA.9 IS THE BUFFER EXHAUSTED? JMP COL.B NO, CONTINUE. TLOG LDA EQT11,I LOAD THE ORIGINAL REQUEST TYPE. LDB CONFG LOAD THE TRANSMISSION LOG. CLE,SSA WAS THE REQUEST IN CHARACTERS? BLS YES, CONVERT WORDS TO CHARACTERS. JMP END GO ISSUE A COMPLETION RETURN. INDEX NOP ENTRY POINT. LDB EQT10,I LOAD THE USER BUFFER ADDRESS. STB DMA.6 SAVE THE USER BUFFER ADDRESS. LDB EQT11,I LOAD THE ORIGINAL REQUEST LENGTH. SSB,RSS IS THE REQUEST IN WORDS? CMB,INB,RSS YES, COMPLEMENT WORD COUNT; SKIP. BRS NO, CONVERT CHARACTERS TO WORDS. CMA,INA MAKE THE RECORD LENGTH POSITIVE. ADA B "SUBTRACT": RECORD COUNT-REQUEST. SSA,RSS IS THE REQUEST LESS THAN RECORD? STB DMA.9 YES, STORE THE REQUEST LENGTH. JMP INDEX,I RETURN. PAK.B LDA DMA.8,I LOAD THE FIRST DATA COLUMN. RAR,RAR SHIFT ROWS 12-5 TO LOWER. RAR,RAR SHIFT ROWS 12-5 TO LOWER. AND M377 ISOLATE THE RECORD WORD LENGTH. CMA,INA,SZA,RSS IS THE RECORD LENGTH ZERO(0)? JMP NREDY YES, GO FLAG WORD COUNT ERROR. STA DMA.9 NO, SAVE THE RECORD WORD LENGTH. JSB INDEX GO COMPUTE THE WORD COUNT INDEX. LDA DMA.9 LOAD THE WORD COUNT INDEX. ADA =D60 "SUBTRACT": 60- WORD COUNT INDEX. SSA IS THE WORD COUNT > 60? JMP NREDY YES, GO FLAG WORD COUNT ERROR. LDB DMA.8,I NO, LOAD DATA COLUMN 1 OF 4. ISZ DMA.8 INCREMENT BUFFER ADDRESS POINTER. UNPAK BLF SHIFT COLUMN TO BITS 15-4. STB DMA.4 SAVE THE DATA COLUMN. LDA DMA.8,I LOAD DATA COLUMN 2 OF 4. ISZ DMA.8 INCREMENT BUFFER ADDRESS POINTER. ALF,ALF SHIFT ROW 12 TO BIT 3. LDB A SAVE THE DATA COLUMN. AND M17 ISOLATE ROWS 12-1. IOR DMA.4 INCLUDE COLUMN #1. JSB STORE GO STORE DATA WORD 1 OF 3. AND M1774 ISOLATE ROWS 2-9. STA DMA.4 SAVE THE PARTIAL DATA COLUMN. BLF,BLF SHIFT ROW 12 TO BIT 7. BLF SHIFT ROW 12 TO BIT 7. LDA B LOAD DATA COLUMN 3 OF 4. AND M377 ISOLATE ROWS 12-5. IOR DMA.4 INCLUDE COLUMN #2. JSB STORE GO STORE DATA WORD 2 OF 3. AND B17 ISOLATE ROWS 6-9. IOR B INCLUDE DATA COLUMN 4 OF 4. JSB STORE GO STORE DATA WORD 3 OF 3. JMP UNPAK GO PROCESS THE NEXT 4 COLUMNS. STORE NOP ENTRY POINT. STA DMA.6,I STORE THE BINARY DATA WORD. ISZ DMA.6 INCREMENT BUFFER ADDRESS POINTER. ISZ CONFG INCREMENT THE WORD COUNTER. LDA B LOAD THE PREVIOUS DATA COLUMN. LDB DMA.8,I LOAD THE NEXT DATA COLUMN. ISZ DMA.8 INCREMENT BUFFER ADDRESS POINTER. ISZ DMA.9 IS THE BUFFER EXHAUSTED? JMP STORE,I NO, RETURN. JMP TLOG YES, GO LOAD TRANSMISSION LOG. OPERR ELB SHIFT BIT 12 TO BIT 15. SSB CARD READER PICK FAILURE? JMP PICKF YES, GO CHECK FOR RETRY. LDA DEC10 NO, LOAD: A=000012B. SEZ,INA,RSS WAS UNIT DISABLED BY OPERATOR? LDA =B000041 NO, LOAD: A=000041B. NOPCK IOR EQT4,I INCLUDE THE UPPER STATUS. STA EQT4,I UPDATE THE STATUS $WORD. LDA DEC3 LOAD: A=3. JMP R.ERR GO INITIALIZE THE ONLINE FLAG. PICKF STA I.15 CLEAR THE INITIATION FLAG. ISZ EQT13,I IS THIS THE LAST RETRY? JMP READ1 NO, GO RETRY THE READ. LDA =B000023 YES, LOAD: A=000023B. JMP NOPCK GO UPDATE THE STATUS. NREDY LDA EQT4,I LOAD THE STATUS WORD. IOR DEC2 INCLUDE THE I/O ERROR STATUS. STA EQT4,I UPDATE THE STATUS WORD. CLA,SEZ,CCE,INA ENTER: A=E=1; ASC. CONVERSION? JMP R.ERR NO, GO INITIALIZE ONLINE FLAG. ELA,CLE,ALF YES, ENTER: A=000060B; E=0. JMP LEGAL GO PROCESS THE CHARACTER. * COMPLETION SECTION. C.15 NOP ENTRY POINT. LDB EQT5,I LOAD THE "DMA" CHANNEL NUMBER. SZB CARD READER ONLINE INTERRUPT? CPA B NO; "DMA" CHANNEL INTERRUPT? JMP EXTRA YES, IGNORE THE INTERRUPT. STB CHAN NO, UPDATE THE "CHAN" WORD ENTRY. JSB SETIO SET I/O INSTRUCTIONS FOR CR. CLA,CME ENTER: A=0; COMPLEMENT "EOP". DMA.8 OTA DMA CLEAR THE "DMA" ASSIGNMENT. STA EQT5,I INITIALIZE ONLINE INTERRUPT FLAG. ELB,CLE,RBL SHIFT THE "EOP" BIT TO "E". ELA,SLA IS THE END-OF-OPERATION FLAG ON? R.ERR CLB,RSS ENTER: B=0; SKIP. JMP READ2 YES, GO PROCESS THE CARD IMAGE. JMP C.15,I GO TO COMPLETION RETURN. EXTRA LDB A SAVE THE CHANNEL NUMBER. JSB CONFG GO CONFIGURE: "CLC XXB". DEF CLC.0 ADDRESS DEFINITION: "CLC XXB". CLC.0 CLC 00B CLEAR THE CHANNEL CONTROL BIT. C.RTN ISZ C.15 INCREMENT FOR A SKIP EXIT. JMP C.15,I GO TO CONTINUATION RETURN. * BEGIN "LOCAL STORAGE". ASCII ASC 8,^+(<.[IHGFEDCBA& DATAC ABS CR CARD READER CONTROLLER CHANNEL. DMASK OCT 000000 "DMA" WORD COUNT REGISTER MASK. DESK DEF ASCII HOLLERITH/ASCII TABLE ADDRESS BUF DEF I.BUF INPUT BUFFER ADDRESS DEFINITION. BUFAD DEF I.BUF,I "DMA" BUFFER ADDRESS݁640 FOR INPUT. B600 OCT 000600 B0177 OCT 017700 B17 OCT 170000 ASC 8,];)*$!RQPONMLKJ- ASC 16,?>_%,\ZYXWVUTS/0"='@#:987654321 BCD ASC 8,???).?IHGFEDCBA+ OCT 12 NOP MESA DEF BCD 026 BCD CODE TO ASCII TABLE ADDRESS DEF I.BUF DEF I.BUF,I OCT 600 OCT 17700 OCT 170000 ASC 8,???*$?RQPONMLKJ- ASC 8,???(,?ZYXWVUTS/0 ASC 8,???'=:987654321 I.BUF BSS 80 INTERNAL DATA BUFFER. STF STF 00B * END OF "LOCAL STORAGE". * SYSTEM BASE PAGE COMMUNICATION AREA: .. EQU 00053B CONSTANT AREA. N10 EQU ..-10 DEC -10 N9 EQU ..-9 DEC -9 N4 EQU ..-4 DEC -4 DEC2 EQU ..+2 DEC 2 DEC3 EQU ..+3 DEC 3 DEC4 EQU ..+4 DEC 4 DEC6 EQU ..+6 DECIMAL SIX DEC10 EQU ..+10 DEC 10 DEC64 EQU ..+12 DEC 64 M17 EQU ..+13 OCT 17 M377 EQU ..+17 OCT 000377 M1774 EQU ..+18 OCT 177400 M1777 EQU ..+20 OCT 177700 . EQU 00100B CURRENT EQUIPMENT TABLE ENTRY AREA. INTAB EQU .+65 INTERRUPT TABLE EQT1 EQU .+68 EQT4 EQU .+70 STATUS WORD. EQT5 EQU .+71 SAVED "DMA" CHANNEL NUMBER. TABLE EQU .+72 (EQT6) EQT9 EQU .+75 I/O REQUEST CONTROL WORD. EQT10 EQU .+76 REQUEST BUFFER ADDRESS. EQT11 EQU .+77 REQUEST BUFFER LENGTH. EQT13 EQU .+79 PICK FAILURE RETRY COUNTER. CHAN EQU .+111 CURRENT "DMA" CHANNEL NUMBER. DMA EQU 06B CR EQU 12B A EQU 00B B EQU 01B END 6  22681-18037 1508 SC 0222 DOS-M MARK SENSE EDUCATIONAL TEST SC             H0102 FTN,L PROGRAM GRADE COMMON IANS(40),ICARD(40),ITOTA(20,5),PRCT(20),SCORE(100) IDASH = 20055B 2 WRITE(1,100) 100 FORMAT("ENTER CARDS AND TYPE :GO") PAUSE C CALL EXEC(1,105B,IANS,40) C C REJECT FIRST CARD IF COL #1 # 1 C 3 IF (IANS-400B) 4,10,4 4 WRITE(1,102) 102 FORMAT("ANSWER CARD REJECTED - START OVER") GO TO 2 C C PRINT HEADER C 10 DO 11 I = 2, 21 IF (LCONV(IANS(I))) 8,11 8 WRITE(1,9)I 9 FORMAT (" COLUMN "I3" BLANK _") GO TO 4 11 CONTINUE WRITE (6,103) ((I), I=1,20),(IANS(I), I = 2,21) 103 FORMAT(1H1,5X,20I3/6X,20A3/73("-")) C C INITIALIZE SCORE ARRAYS C DO 20 I = 1,100 ITOTA(I) = 0 20 SCORE(I) = 0. DO 21 I = 1,20 21 PRCT(I) = 0. RUNT = 0. C C READ ANSWER CARDS AND KEEP SCORE (UP TO 100 CARDS) C DO 1000 ICOUN = 1, 100 CALL EXEC(1,105B,ICARD,40) 48 IF (ICARD-400B) 50,49,50 49 ICOUN = ICOUN - 1 GO TO 2000 50 DO 51 I = 2, 21 51 CALL LCONV(ICARD(I)) DO 52 I = 27,29 52 CALL NCONV (ICARD(I)) ISTU = ICARD(27)*100 + ICARD(28)*10 + ICARD(29) C C CALCULATE STATISTICS C ITOT = 0 DO 70 I = 1,20 DO 60 ILETR = 1,5 IF((20100B+ILETR)-ICARD(I+1)) 60,55,60 55 ITOTA(I,ILETR) = ITOTA(I,ILETR) + 1 GO TO 61 60 CONTINUE 61 IF (ICARD(I+1)-IANS(I+1)) 70,62,70 62 ITOT = ITOT + 1 ICARD(I+1) = IDASH PRCT(I) = PRCT(I) + 1. 70 CONTINUE C IAVG = 5*ITOT IF (ICOUN-1) 72,71,72 71 IMAX = IAVG IMIN = IAVG 72 IF (IMAX-IAVG) 73,74 73 IMAX = IAVG 74 IF (IMIN-IAVG) 76,76,75 75 IMIN = IAVG 76 RUNT = RUNT + FLOAT (IAVG) SCORE (ICOUN) = IAVG C C WRITE STUDENT ANSWERS/ERRORS AND GRADE C WRITE(6,104)ISTU,(ICARD(I),I=2,21),IAVG 104 FORMr  AT(1X,I3,2X,20A3,I5) 1000 CONTINUE ICOUN = 100 2000 DO 2001 I = 1,20 2001 PRCT(I) = 100. * PRCT(I)/FLOAT(ICOUN) WRITE(6,105)ITOTA,PRCT 105 FORMAT(1X,73("-")/1X"A "20I3/" B "20I3/" C "20I3 * /" D "20I3/" E "20I3/1X,73("-")/" ITEM"/" PERCENT"/ * 6X,20I3//) AVG = RUNT/FLOAT(ICOUN) SUMSQ = 0. DO 2005 I = 1, ICOUN 2005 SUMSQ = SUMSQ + (AVG-SCORE(I))**2 RMS = SQRT (SUMSQ/FLOAT(ICOUN)) WRITE(6,106)AVG,IMAX,IMIN,RMS 106 FORMAT(" CLASS AVG"F11.1/" CLASS HI"F12.1/" CLASS LO" * F12.1/" CLASS STD-DEV"F7.1///) END END$ 1< ASMB,R,L HED BIT CONVERSION TO A-E OR 0-9 FOR 2761-M7 * NAM CONV,7 ENT NCONV,LCONV EXT .ENTR * * CRC-007 REV-0 7 APRIL 1971 * * THIS ROUTINE WILL CONVERT INDIVIDUAL RAW BINARY WORDS * FROM THE MARK SENSE READER INTO THE LETTERS A-E OR THE * NUMBERS 0-9 IN THE CARD FORMAT FOR THE "EDUCATIONAL TEST * SCORING CARD" HP PART # 9320-2062. * * THE ROUTINE MAY BE CALLED AS A SUBROUTINE OR FUNCTION, * AND AS A FUNCTION MAY BE USED IN AN IF STATEMENT. THE * FUNCTION VALUE WILL BE NEGATIVE FOR BAD CODES, SUCH AS * NO MARK, TOO MANY MARKS, OR A MARK IN AN UNLABELED BOX. * * FOR LETTER CONVERSION: * * CALLED AS -- CALL LCONV(IA(I)) * ISTAT = LCONV (IA(I)) * IF (LCONV(IA(I))) 10,20 * * THE ELEMENT IA(I) WILL BE CONVERTED TO A 16-BIT * ANSWER IN THE FORM BLANK:BLANK OR BLANK:LETTER. * * THE BLANK:BLANK REPRESENTS AN ERROR CONDITION, * AND CAUSES ERROR (NEGATIVE) STATUS TO BE RETURNED * IN THE FUNCTION VALUE. * * FOR NUMBER CONVERSION: * * CALLED AS -- CALL NCONV(IA(I)) * ISTAT = NCONV(IA(I)) * IF (NCONV(IA(I))) 10,20 * * THE ELEMENT IA(I) WILL BE CONVERTED TO A 16-BIT * INTEGER IN THE RANGE -1 <= IA(I) <= 9. THE -1 * VALUE INDICATES AN ERROR CONDITION, AND CAUSES * ERROR (NEGATIVE) STATUS TO BE RETURNED IN THE * FUNCTION VALUE. * * NOTE: NCONV MAY ONLY BE USED FOR 0-9 TYPE COLUMNS. * HED LCONV (LETTER CONVERSION) SUBROUTINE IA BSS 1 LCONV NOP JSB .ENTR DEF IA * LDB BLANK ASSUME ERROR LDA IA,I RAW DATA CPA BIT1 LDB .E. CPA BIT3 LDB .D. CPA BIT5 LDB .C. CPA BIT7 LDB .B. CPA BIT9 LDB .A. * STB IA,I3   CLA CPB BLANK ERROR? CCA YES, RETURN (-) STATUS JMP LCONV,I HED NCONV (NUMBER CONVERSION) SUBROUTINE IB BSS 1 NCONV NOP JSB .ENTR DEF IB * CCB ASSUME ERROR LDA IB,I RAW DATA CPA BIT0 LDB D9 CPA BIT1 LDB D8 CPA BIT2 LDB D7 CPA BIT3 LDB D6 CPA BIT4 LDB D5 CPA BIT5 LDB D4 CPA BIT6 LDB D3 CPA BIT7 LDB D2 CPA BIT8 CLB,INB CPA BIT9 CLB * STB IB,I CLA SSB ERROR? CCA YES, RETURN (-) STATUS JMP NCONV,I HED CONSTANTS BIT0 OCT 1 BIT1 OCT 2 BIT2 OCT 4 BIT3 OCT 10 BIT4 OCT 20 BIT5 OCT 40 BIT6 OCT 100 BIT7 OCT 200 BIT8 OCT 400 BIT9 OCT 1000 * D2 EQU BIT1 D3 DEC 3 D4 EQU BIT2 D5 DEC 5 D6 DEC 6 D7 DEC 7 D8 DEC 8 D9 DEC 9 * BLANK OCT 20040 .A. ASC 1, A .B. ASC 1, B .C. ASC 1, C .D. ASC 1, D .E. ASC 1, E END ,   22681-18038 1508 SC 0422 RTE MICROASSEMBLER FOR WCS             H0104 g((H pHHpx xxpxpP((H xpxpP(( BEGIN COMMENT C HP RTE MICROASSEMBLER C BY J. D. REED HUGHES AIRCRAFT CO. P. O. BOX 11337 BLDG. 802 MS 145 TUCSON, ARIZONA 85734 C THE RTE MICROASSEMBLER IS A MODIFIED HP BCS MICROASSEMBLER. C THE RTE MICROASSEMBLER INCORPORATES ALL OF THE FEATURES OF THE HP DOS MICROASSEMBLER AS OUTLINED IN THE HP DOS MICRO- PROGRAMMING SOFTWARE MANUAL (HP ORDER # 02100-90146). ALL REFERENCES TO FILES ARE RTE FILEMANAGER FILES. SOURCE FILES ARE TYPE 0 OR 4. OBJECT MICROCODE FILES ARE TYPE 0 OR 7. THE CONTROL STATEMENT $NAME=XXXXXX, WHERE XXXXXXIS ANY ASCII STRING, HAS BEEN INCORPORATED TO PERMIT THE PRO- GRAM NAME TO BE LISTED AT THE TOP OF EACH LISTING PAGE. C TO SCHEDULE AMWCS: *ON,AMWCS,A,B,C,D WHERE A = LOGICAL UNIT OF SOURCE INPUT DEVICE. DEFAULT = 5. 2 = LS TRACKS. B = LOGICAL UNIT OF LIST DEVICE. DEFAULT = 6. C = LOGICAL UNIT OF PUNCH DEVICE. DEFAULT = 4. D = MAXIUM NUMBER OF LINES/PAGE FOR SOURCE MICROPROGRAM LISTING. DEFAULT = 56. IF 100 IS ADDED TO A KYBD/DISPLAY LOGICAL UNIT NUMBER AND SUPPLIED AS PARAMETER A AND/OR C, THE MICROASSEMBLER WILL REQUEST A FMP FILE NAME BE ENTERED THRU THAT DEVICE. THE FILE(S) WILL THEN BE USED FOR SOURCE AND/OR OBJECT CODE RESPECTIVELY. C PROGRAM DECLARATIONS; & BOOLEAN ADDTYPE, ADRINSBUS, CONINSBUS, CWINSPECIAL, EOC, EOP:=FALSE, EOPINSKIP:=FALSE, INFMP:=FALSE, JMPFLG, LISTING:=TRUE, LS:=FALSE, LSWRITE:=FALSE, MINSTORE, NOPINRBUS, NOPINSBUS, OUTFMP:=FALSE, PINSBUS, PUNCH:=TRUE, RPTINSKIP:=FALSE, S1INSBUS, S2INSBUS, S3INSBUS, S4INSBUS, SURPRESS:=FALSE; & & FORMAT ARRAYS & INTEGER ARRAY F0[1:36] := " "," "," "," "," "," ", " "," "," "," "," "," "," "," "," W", "CS"," P","RO","GR"v,"AM"," "," "," "," ", " "," "," "," "," "," "," "," "," P", "AG","E "," "; INTEGER ARRAY F1[1:12] := " "," "," *","**","*E","RR","OR", " "," "," *","**","* "; INTEGER ARRAY F2[1:11] := " B","AD"," C","ON","TR","OL"," S", "TA","TE","ME","NT"; INTEGER ARRAY F5[1:13] := " ","**","ER","RO","R "," "," I", "N ","LI","NE"," "," ","**"; INTEGER ARRAY F6[1:14] := " ","**","WA","RN","IN","G "," ", " I","N ","LI","NE"," "," ","**"; INTEGER ARRAY F7[1:7] := " S","YM","BO","L ","TA","BL","E "; INTEGER ARRAY F8[0:8] := " "," "," "," "," "," "," ", " "," "; INTEGER ARRAY F9[1:12]:= " "," "," ","**"," E","RR","OR", "S ","= "," "," ","**"; INTEGER ARRAY F12[1:6] := " E","ND"," 0","F ","TA","PE"; INTEGER ARRAY F13[1:7] := " E","OF"," L","S ","TR","AC","KS"; INTEGER ARRAY F14[1:8] := " E","OF"," I","N ","FM","P ","FI", "LE"; INTEGER ARRAY F15[1:5] := " "," "," "," "," "; INTEGER ARRAY F16[1:12] :=" ","SY","MB","OL"," T","AB","LE", " O","VE","RF","LO","W "; INTEGER ARRAY F17[1:6] := " E","ND","$ ","AM","WC","S "; INTEGER ARRAY F18[1:9] := " ","LS"," T","RA","CK","S ","EM", "PT","Y!"; INTEGER ARRAY F19[1:9] := "SO","UR","CE"," F","IL","E ","NA", "ME"," _"; INTEGER ARRAY F20[1:9] := "OB","JE","CT"," F","IL","E ","NA", "ME"," _"; INTEGER ARRAY F21[1:12] := " ","NO"," L","S ","TR","AC","KS", " A","VA","IL","AB","LE"; INTEGER ARRAY F22[1:12] := " P","AS","S ","II"," L","S ","WR", "IT","E ","ER","RO","R!"; INTEGER ARRAY K3[1:2] := "K3"," "; INTEGER ARRAY K4[1:2] := "K4"," "; INTEGER ARRAY K6[1:2] := "K6"," "; INTEGER ARRAY I2[1:2] := "I2"," "; INTEGER ARRAY I3[1:2] := "I3"," "; INTEGER ARRAY I4[1:2] := "I4"," "; INTEGER A, BASE:=-1, CHARS:=71, CHEZCKSUMB:=0, CONST:=@272, ERR, ERROR, I, INDEX, J, K, LEADER, LEN, LIMIT:=@400, LINE:=-1, LINES:=0, LIST:=6, LOCCNTR:=0, NEXT:=0, NUMERRORS:=0, LINESPERPAGE:=-54, OUTWORDS, PAGE:= 0, PUN:=4, QQ, RDR:=5, T, TTY, WDCNT:=1, XPUN, Z:=" ", STATUS,FORMFEED := @1100, N1 := -1,ONE := 1; INTEGER ARRAY BUFFER[-10:36], CARD[0:71], INDCB[1:144], INFILE[1:3], MCODE[-1:114], OUTDCB[1:144], OUTFILE[1:3], PNAME[1:3], ROMA[0:56], ROMB[0:56], TABLE[0:89,1:5], TYPE[0:89], VALUES[0:89],SYMBOL[0:5],NAME[1:3]; INTEGER ARRAY RBUS[0:8,1:3] := "A"," "," ", "B"," "," ", "Q"," "," ", "F"," "," ", "C","A","B", "A","A","B", "C","Q"," ", "N","O","P", " "," "," "; INTEGER ARRAY SBUS[0:16,1:4]_ "C","I","R"," ", "I","O","I"," ", "T"," "," "," ", "M"," "," "," ", "R","R","S"," ", "C","N","T","R", "A","D","R"," ", "C","O","N","D", "S","4"," "," ", "S","3"," "," ", "S","2"," "," ", "S","1"," "," ", "C","R"," "," ", "C","L"," "," ", "P"," "," "," ", "N","O","P"," ", " "," "," "," "; INTEGER ARRAY FCN[0:32,1:4] := "R","F","I"," ", "R","F","E"," ", "P","1","A"," ", "M","P","Y"," ", "D","I","V"," ", "S","U","B"," ", "D","E","C"," ", 0,0,0,0, "I","N","C","O", "I","N","C"," ", "A","D","D","O", "A","D","D"," ", "A","N","D"," ", "N","O","R"," ", "X","O","R"," ", "Y","Y","Y"," ", "J","S","B"," ", "J","S","B"," ", "J","M","P"," ", "J","M","P"," ", "C","J","M","P", "R","S","B"," ", "L","G","S"," ", "C","R","S"," ", "A","R","S"," ", "C","J","M","P", "L","W","F"," ", "C","F","L","G", "S","F","L","G", "C","L","O"," ", "S","O","V"," ", "I","O","R"," ", " "," " ," "," "; INTEGER ARRAY STOR[0:16,1:3]_ "I","O","O", "M"," "," ", "T"," "," ", "I","R"," ", "S","4"," ", "S","3"," ", "S","2"," ", "S","1"," ", "P"," "," ", "F"," "," ", "Q"," "," ", "C","A","B", "A","A","B", "B"," "," ", "A"," "," ", "N","O","P", " "," "," "; INTEGER ARRAY SPEC[0:16,1:4]_ "R","S","S"," ", "L","1"," "," ", "R","1"," "," ", "C","N","T","R", "S","R","G","1", "S","R","G","2", "A","A","B"," ", "L","E","P"," ", "E","C","Y","Z", "E","C","Y","N", "A","S","G","1", "A","S","G","2", "C","W"," "," ", "I","O","G","1", "R","W"," "," ", "N","O","P"," ", " "," "," "," "; INTEGER ARRAY SKIP[0:16,1:4]_ "I","C","T","R", "R","P","T"," ", "O","D","D"," ", "N","E","G"," ", "C","O","U","T", "O","V","F"," ", "F","L","G"," ", "T","B","Z"," ", "C","T","R","I", "C","T","R"," ", "N","M","P","V", "A","A","B"," ", "N","A","A","B", "E","O","P"," ", "U","N","C"," ", "N","O","P"," ", " "," "," "," "; LABEL ABORT; & EXTERNAL PROCEDURES & PROCEDURE ASCIN (BUFFER,LUN,LEN,NUM,STATUS); VALUE LEN; INTEGER BUFFER,LUN,LEN,NUM,STATUS; CODE; & PROCEDURE CLOSE (DCB,ERROR); INTEGER DCB,ERROR; CODE; & PROCEDURE EXEC (XCODE,LUN,BUFFER,WORDS); VALUE XCODE,LUN,WORDS; INTEGER XCODE,LUN,BUFFER,WORDS; CODE; & PROCEDURE FETCH (A,B,C,D); INTEGER A,B,C,D; CODE; & INTEGER PROCEDURE IFMGR (ERROR,FCODE,TTY,FILE); VALUE FCODE; INTEGER ERROR,FCODE,TTY,FILE; CODE; & PROCEDURE SFMTR (I,FMT,BUFF,PNTR); VALUE I,PNTR; INTEGER I,FMT,BUFF,PNTR; LCODE; & PROCEDURE LSEOF; CODE; & PROCEDURE LSINT (ERROR); INTEGER ERROR; CODE; & PROCEDURE LSRED (BUFFER,LEN,WORDS); VALUE LEN; INTEGER BUFFER,LEN,WORDS; CODE; & PROCEDURE LSREL; CODE; & PROCEDURE LSRQ (ERROR,I); INTEGER ERROR,I; CODE; & PROCEDURE LSWRT (BUFFER,WORDS,ERROR); INTEGER BUFFER,WORDS,ERROR; CODE; & PROCEDURE OPEN (DCB,ERROR,FILE,OPTION); VALUE OPTION; INTEGER DCB,ERROR,FILE,OPTION; CODE; & PROCEDURE READF (DCB,ERROR,BUFFER,LEN,WORDS); VALUE LEN; INTEGER DCB,ERROR,BUFFER,LEN,WORDS; CODE; & PROCEDURE RWNDF (DCB,ERROR); INTEGER DCB,ERROR; CODE; & PROCEDURE WRITF (DCB,ERROR,BUFFER,LEN); INTEGER DCB,ERROR,BUFFER,LEN; CODE; & INTERNAL PROCEDURES & PROCEDURE FILLER (J); & PROCEDURE TO PACK LEADING ZEROS INTO THE LINE NUMBER. VALUE J; INTEGER J; BEGIN IF BUFFER[J] = " " THEN BUFFER[J] := " 0"; IF (BUFFER[J+1] AND @77400) = @20000 THEN BUFFER[J+1] := BUFFER[J+1] + @10000; END OF FILLER PROCEDURE; & PROCEDURE PACK; & PACK REPACKS THE CARD ARRAY, 2 CHARS/WORD, INTO THE BUFFER & ARRAY FOR PRINTING. BEGIN INTEGER J,K; FOR K := -10 TO 0 DO BUFFER[K] := " "; J := 0; FOR K := 1 TO LEN DO BEGIN BUFFER[K] := ROTATE(CARD[J]) + CARD[J+1]; J := J + 2; END END OF PACK; & PROCEDURE HEADING; & HEADING WRITES THE PAGE HEADING ON THE LIST DEVICE BEGIN EXEC (3,FORMFEED,N1,0); PAGE := PAGE + 1; SFMTR (PAGE,I2[1],F0[36],0); EXEC (2,LIST,F0[1],36); LINES := LINESPERPAGE; EXEC (3,FORMFEED,ONE,0) END OF HEADING; & PROCEDURE LISTIT (N); & LISTIT OUTPUTS SOURCE LISTINGS AND ERROR MESSAGES TO THE & LIST DEVICE. IF A HEADING IS REQUIRED, THE HEADING IS & PRINTED THAN THE LINE. VALUE N; INTEGER N; & N = LIST CODE. BEGIN IF LINES = 0 THEN HEADING; IF N = 1 THEN BEGIN SFMTR (ERR,I4[1],F1[8],1); EXEC (2,LIST,F1[1],12); END ELSE IF N = 2 THEN EXEC (2,LIST,F2[71],11) ELSE IF N = 3 THEN BEGIN PACK; EXEC (2,LIST,BUFFER[1],LEN) END ELSE IF N = 4 THEN EXEC (3,FORMFEED,N1,0) ELSE IF N = 5 THEN BEGIN SFMTR (ERROR,I2[1],F5[6],0); SFMTR (LINE,I3[1],F5[11],1); EXEC (2,LIST,F5[1],13) END ELSE IF N = 6 THEN BEGIN SFMTR (ERROR,I2[1],F6[7],0); SFMTR (LINE, I3[1],F6[12],1); EXEC (2,LIST,F6[1],14) END ELSE IF N = 7 THEN EXEC (2,LIST,F7[1],7) ELSE IF N = 8 THEN BEGIN FOR I := 0 TO NEXT-1 DO BEGIN F8[1] := TABLE[I,1] + @20000; F8[2] := ROTATE(TABLE[I,2]) + TABLE[I,3]; F8[3] := ROTATE(TABLE[I,4]) + TABLE[I,5]; SFMTR (VALUES[I],K6[1],F8[5],1); F8[8] := (F8[8] AND @77400) + TYPE[I]; EXEC (2,LIST,F8[0],9); LINES := LINES + 1; IF LINES = 0 THEN HEADING; END; EXEC (2,LIST,F8[0],0) END ELSE IF N = 9 THEN BEGIN SFMTR (NUMERRORS,I3[1],F9[10],0); EXEC (2,LIST,F9[1],12) END ELSE IF N = 10 THEN BEGIN PACK; SFMTR (LINE,I3[1],BUFFER[-2],1); FILLER (-2); EXEC (2,LIST,BUFFER[-2],LEN+3) END ELSE IF N = 11 THEN BEGIN PACK; SFMTR (LINE,I3[1],BUFFER[-10],1); FILLER (-10); SFMTR (BASE+LOCCNTR,K4[1],BUFFER[-7],0); SFMTR (ROMA[WDCNT] AND @377,K3[1],BUFFER[-5],1); SFMTR (ROMB[WDCNT],K6[1],BUFFER[-3],1); EXEC (2,LIST,BUFFER[-10],LEN+11) END ELSE IF N = 15 THEN EXEC (2,LIST,F15[1],5) ELSE IF N = 16 THEN EXEC (2,LIST,F16[1],12); LINES := LINES + 1; END OF LISTIT; & PROCEDURE CHECKLIST (POINTER); & PROCEDURE TO CHECK LIST OPTION. VALUE POINTER; INTEGER POINTER; BEGIN IF LISTING THEN LISTIT (POINTER); END OF CHECKLIST PROCEDURE; & PROCEDURE PRINTERROR (ERR); & & PRINTERROR SETS UP THE CALL TO LISTIT FOƴR ERROR MESSAGES. & VALUE ERR; INTEGER ERR; BEGIN ERROR := ERR; LISTIT (5); NUMERRORS := NUMERRORS + 1; END OF PRINTERROR; & PROCEDURE SKIPBLANKS; & SKIPBLANKS SKIPS BLANK CHARACTERS IN THE CARD BUFFER. BEGIN LABEL S1; S1: IF INDEX < CHARS THEN IF CARD[INDEX] = " " THEN BEGIN INDEX := INDEX + 1; GO TO S1; END; EOC := (IF INDEX>= CHARS THEN TRUE ELSE FALSE); END OF SKIPBLANKS; & PROCEDURE SKIPTO (S); & SKIPTO SKIPS CHARSACTERS IN THE CARD BUFFER UNTIL S IS FOUND. & IS FOUND. VALUE S; INTEGER S; BEGIN LABEL S1; S1: IF INDEX < CHARS THEN IF CARD[INDEX] # S THEN BEGIN INDEX := INDEX + 1; GO TO S1; END; EOC := (IF INDEX = CHARS THEN TRUE ELSE FALSE); END OF SKIPTO; & PROCEDURE WARNING (ERR); & & WARNING SETS UP THE CALL TO LISTIT TO PRINT WARNING & MESSAGES IF SURPRESS IS NOT TRUE. & VALUE ERR; INTEGER ERR; BEGIN ERROR := ERR; IF NOT(SURPRESS) THEN BEGIN LISTIT(6); NUMERRORS := NUMERRORS + 1 END; END OF WARNING; & PROCEDURE CHECKSET (A,B); & & CHECKSET CHECKS EACH FIELD FOR LEGALITY AND IF LEGAL SETS & THE PROPER FLAG TO INDICATE THE OPERATION IN THE FIELD. & VALUE A; INTEGER A,B; BEGIN CASE A BEGIN & ** RBUS FIELD ** BEGIN IF B < 0 THEN PRINTERROR(3) ELSE IF B = 7 THEN NOPINRBUS := TRUE ELSE IF B = 6 THEN WARNING(12); END ** SBUS FIELD **; BEGIN IF B < 0 THEN PRINTERROR(4) ELSE IF B = 15 THEN NOPINSBUS := TRUE ELSE IF B = @15 OR B = @14 THEN CONINSBUS := TRUE ELSE IF B = @13 THEN S1INSBUS := TRUE ELSE IF B = @16 THEN PINSBUS := TRUE ELSE IF B = @12 THEN S2INSBUS := TRUE ELSE IF B = @11 THEN S3INSBUS := TRUE ELSE IF B = @6 THEN ADRINSBUS := TRUE ELSE IF B = @10 THEN S4INSBUS := TRUE ; END ** FUNCTION FIELD **; BEGIN K := B; IF B < 0 THEN PRINTERROR(5) ELSE IF B < @25 AND B > @17 THEN JMPFLG := TRUE ELSE IF B < @14 AND B > @7 THEN ADDTYPE := TRUE ELSE IF B = 6 AND NOPINRBUS THEN WARNING(13) ELSE IF B = 0 THEN WARNING(12) ELSE IF (B = 1) AND NOT(NOPINSBUS) THEN WARNING(21) ELSE IF JMPFLG AND NOT(NOPINSBUS OR ADRINSBUS) THEN IF PINSBUS THEN WARNING(22) ELSE WARNING(14); END ** STORE FIELD **; BEGIN IF B < 0 THEN PRINTERROR(6) ELSE IF B = 1 THEN MINSTORE := TRUE ELSE IF (B = 4 AND S4INSBUS) OR (B = 5 AND S3INSBUS) OR (B = 6 AND S2INSBUS) OR (B = 7 AND S1INSBUS) THEN PRINTERROR(15); END ** SPECIAL FIELD **; BEGIN IF B < 0 THEN PRINTERROR(7) ELSE IF B = @14 THEN CWINSPECIAL := TRUE; IF B = 7 THEN WARNING(16) ELSE IF NOT(CWINSPECIAL OR B = @16) AND MINSTORE THEN WARNING(17); END ** SKIP FIELD **; BEGIN IF B < 0 THEN PRINTERROR(8) ELSE BEGIN IF B # @17 AND EOPINSKIP THEN WARNING(18) ELSE IF ((B # @16) AND (B # @12)) AND CWINSPECIAL THEN WARNING(10); IF ((B = 7) OR (B = 0) OR (B = 1) OR (B = @17) OR (B = @15)) AND RPTINSKIP THEN PRINTERROR(19); IF RPTINSKIP THEN IF ((B = 3) OR (B = 2)) AND ADDTYPE THEN PRINTERROR(20); IF B = @15 THEN EOPINSKIP := TRUE ELSE EOPINSKIP := FALSE; IF B = 1 THEN RPTINSKIP := TRUE ELSE RPTINSKIP := FALSE; END; END; END; END OF CHECKSET; & INTEGER PROCEDURE CONVERT (N); & CONVERT CONVERTS ASCII CHARACTERS IN THE CARD BUFFER, & STARTING AT CARD[N] UNTIL A DELIMITER IS REACHED TO AN & INTEGER. VALUE N; INTEGER N; BEGIN CONVERT := 0; WHILE CARD[N] > @57 AND CARD[N] < @70 DO BEGIN CONVERT := CONVERT * 8 + (CARD[N] AND @7); N := N + 1; END; END O`640F CONVERT; & 6((H pHHpx xxpxpP((H xpxpP(( & GETNAME TRANSFERS A 6 CHARACTER NAME FROM A CONTROL & STATEMENT TO ARRAY NAME, REPACKING TO 2 CHARS/WORD. & IF THE TRANSFER IS COMPLETE GETNAME IS SET TO FALSE & UPON RETURN OTHERWISE TO TRUE TO INDICATE AN ERROR. & INTEGER ARRAY NAME; BEGIN SKIPTO("="); INDEX := INDEX + 1; SKIPBLANKS; T := 1; FOR I := INDEX STEP 2 UNTIL INDEX + 4 DO BEGIN NAME[T] := ROTATE(CARD[I]) + CARD[I+1]; T := T + 1; END; GETNAME := (IF I >= CHARS THEN TRUE ELSE FALSE); END OF GETNAME; & PROCEDURE EMITHEADER; & & EMITHEADER PUNCHES NEW TAPE AND/OR OUTPUTS MICROCODE TO & THE OUTPUT FILE. A NEW HEADER IS PLACED IN THE INTERNAL & BUFUR WHEN AN ORGIN CARD IS DETECTED DURING PASS II. & BEGIN INTEGER I:=0, J; & PROCEDURE WFILE; BEGIN WRITF (OUTDCB[1],ERROR,MCODE[-1],OUTWORDS); IF ERROR < 0 THEN BEGIN LISTIT(0); OUTFMP := FALSE; ERROR := IFMGR(ERROR,13,LIST,OUTFILE[1]) END END OF WFILE; & IF EOP THEN BEGIN OUTWORDS := -1; J := 0; IF OUTFMP THEN WFILE; IF PUNCH THEN EXEC (3,LEADER,J,J); ROMA[0] := @400; END ELSE BEGIN IF WDCNT - 1 # 0 THEN BEGIN ROMB[0] := (IF LIMIT=CONST THEN 1 ELSE 0); ROMA[WDCNT] := 0; ROMB[WDCNT] := CHECKSUMB + ROMA[0] + ROMB[0]; WDCNT := WDCNT + 1; OUTWORDS := WDCNT * 2 + 1; J := 0; MCODE[-1] := ROTATE(OUTWORDS); FOR I := 0 TO WDCNT DO BEGIN MCODE[J] := ROMA[I]; J := J + 1; MCODE[J] := ROMB[I]; J := J + 1; END; IF OUTFMP THEN WFILE; IF PUNCH THEN EXEC (2,XPUN,MCODE[-1],OUTWORDS); END; ROMA[0] := BASE + LOCCNTR; WDCNT := 1; CHECKSUMB := 0; END; END OF EMITHEADER; & INTEGER PROCEDURE FIND (OP,NMBR,COL,WIDTH); & & FIND FIbNDS THE BINARY CODE OF A GIVEN MICROORDER AND RETURNS & WITH THIS VALUE IN FIND. & VALUE NMBR,COL,WIDTH; INTEGER ARRAY OP; INTEGER NMBR,COL,WIDTH; BEGIN LABEL F1; BOOLEAN FOUND; INTEGER I,J; I := -1; FOUND := FALSE; WHILE (NOT(FOUND) AND (I < NMBR)) DO BEGIN J := 0; I := I + 1; F1: IF J < WIDTH THEN IF CARD[COL+J] = OP[I,J+1] THEN BEGIN J := J + 1; GO TO F1; END; IF J = WIDTH THEN FOUND := TRUE; END; IF COL = 25 AND WIDTH = 5 THEN NMBR := NMBR + 1; IF FOUND THEN IF I = NMBR THEN FIND := I - 1 ELSE FIND := I ELSE FIND := -1; END OF FIND; & BOOLEAN PROCEDURE OPENFILE (FILE,DCB,OPTION); & & OPENFILE OPENS THE FMP FILE TO DCB WITH OPEN OPTION. & IF THE FILE IS OPEN WITHOUT ERRORS THEN OPENFILE = FALSE & ELSE TRUE. & VALUE OPTION; INTEGER OPTION; INTEGER ARRAY FILE,DCB; BEGIN OPEN (DCB[1],ERROR,FILE[1],OPTION); OPENFILE := FALSE; IF ERROR < 0 THEN BEGIN OPENFILE := TRUE; LISTIT(0); ERROR := IFMGR(ERROR,8,LIST,FILE[1]) END END OF OPENFILE; & PROCEDURE SOURCE; & & SOURCE INPUTS A SOURE LINE INTO ARRAY CARD OF THE INPUT & LOGICAL UNIT OR FILE. & BEGIN LABEL LSRD,FMPRD,UNPAK; IF LS THEN GO TO LSRD ELSE IF INFMP THEN GO TO FMPRD; & MUST BE A PHOTOREADER OR CARD READER. ASCIN (BUFFER[1],RDR,36,LEN,STATUS); IF LEN = 0 OR (STATUS AND @377) # 0 THEN BEGIN EXEC (2,LIST,F12[1],6); GO TO ABORT END ELSE GO TO UNPAK; & READ FROM LS TRACKS LSRD: LSRED (BUFFER[1],36,LEN); IF LEN = 0 THEN BEGIN EXEC (2,LIST,F13[1],7); GO TO ABORT END ELSE GO TO UNPAK; & READ FROM FMP FILE FMPRD:READF(INDCB[1],ERROR,BUFFER[1],36,LEN); IF LEN = -1 THEN BEGIN EXEC (2,LIST,F14[1],8); GO TO ABORT END; IF IFMGR(ERROR,11,LIST,INFILE[1]) < 0 THEN GO TO ABORT; & UNPACK BUFFER INTO CARD ARRAY UNPAK: T := 0; K := 1; WHILE K <= LEN DO BEGIN CARD[T] := ROTATE(BUFFER[K] AND @77400);  T := T + 1; CARD[T] := BUFFER[K] AND @177; K := K + 1; T := T + 1; END; WHILE T < 72 DO BEGIN CARD[T] := " "; T := T + 1; END OF UNPACK; END OF SOURCE; & BOOLEAN PROCEDURE SYMADD (SYMB,VAL); & SYMADD ADDS SYMBOLS TO THE SYMBOL TABLE. IF THE SYMBOL IS & ADDED TO THE TABLE SYMADD = TRUE. VALUE VAL; INTEGER VAL; INTEGER ARRAY SYMB; & & SYMB = SYMBOL TO BE ADDED TO TABLE. & VAL = VALUE TO BE STORED THERE. & BEGIN INTEGER I; LABEL QUIT; I := 0; SYMADD := TRUE; WHILE I < NEXT DO BEGIN IF (SYMB[0] = TABLE[I,1]) AND (SYMB[1] = TABLE[I,2]) AND (SYMB[2] = TABLE[I,3]) AND (SYMB[3] = TABLE[I,4]) AND (SYMB[4] = TABLE[I,5]) THEN BEGIN ERR := I := 1; LISTIT(1); F15[3] := @20000 + SYMB[0]; F15[4] := ROTATE(SYMB[1]) + SYMB[2]; F15[5] := ROTATE(SYMB[3]) + SYMB[4]; LISTIT(15); NUMERRORS := NUMERRORS + 1; SYMADD := FALSE; GO TO QUIT; END; I := I + 1; END; IF NEXT > 89 THEN BEGIN LISTIT(16); SYMADD := FALSE; GO TO QUIT; END; FOR I := 1 TO 5 DO TABLE[NEXT,I] := SYMB[I-1]; VALUES[NEXT] := VAL; TYPE[NEXT] := Z; NEXT := NEXT + 1; QUIT: END OF SYMADD; PROCEDURE CONTROL; & THIS PROCEDURE PROCESSES CONTROL CARDS. & & VALID CONTROL STATEMENTS ARE: & & 1. $DEBUG & 2. $END & 3. $EXTERNALS & 4. $NAME & 5. $NOLIST & 6. $NOPUNCH & 7. $ORGIN & 8. $SFILE & 9. $SURPRESS & BEGIN INTEGER I,J,A,B; LABEL C1; A := CARD[1]; B := CARD[3]; & IDENTIFY AND PROCESS CONTROL STATEMENT. IF A = "D" THEN LIMIT := CONST & $DEBUG CONTROL STATEMENT ELSE IF A = "E" THEN & $EXTERNALS OR $END BEGIN IF B = "T" THEN & $EXTERNALS CONTROL STATEMENT BEGIN LABEL C2; SKIPTO("="); C2: INDEX := INDEX + 1; SKIPBLANKS; IF EOC THEN GO TO C1; I := 0; WHILE CARD[INDEX] # " " DO BEGIN SYMBOL[I] := CARD[INDEX]; I := I + 1; INDEX := INDEX + 1; END; FOR I := 1 TO 5 DO SYMBOL[I] := " "; SKIPBLANKS; IF EOC THEN GO TO C1; I := CONVERT(INDEX); Z := "X"; Z := SYMADD(SYMBOL,I); Z := " "; SKIPTO(","); IF NOT(EOC) THEN GO TO C2; END ELSE IF B = "D" THEN EOP := TRUE ELSE GO TO C1; END ELSE IF A = "F" THEN & $FILE CONTROL STATEMENT BEGIN IF GETNAME(OUTFILE) OR EOC THEN GO TO C1; IF OPENFILE(OUTFILE,OUTDCB,2) THEN GO TO C1; OUTFMP := TRUE; END ELSE IF A = "N" THEN & $NAME OR $NOLIST OR $NOPUNCH BEGIN IF B = "M" THEN & $NAME BEGIN IF GETNAME(NAME) OR EOC THEN GO TO C1 ELSE FOR I := 1 TO 3 DO F0[I+21] := NAME[I] END ELSE IF B = "L" THEN LISTING := FALSE &$ NOLIST ELSE IF B = "P" THEN PUNCH := FALSE &$ NOPUNCH ELSE GO TO C1; & BAD CONTROL STATEMENT END ELSE IF A = "O" THEN & $ORGIN CONTROL STATEMENT BEGIN SKIPTO("="); INDEX := INDEX + 1; SKIPBLANKS; IF EOC THEN GO TO C1; I := CONVERT(INDEX); IF BASE < 0 THEN BEGIN J := I AND @177400; I := I AND @377; IF I > LIMIT OR I < LOCCNTR OR J > @1400 THEN GO TO C1; BASE := J; LOCCNTR := I; END ELSE BEGIN IF I >= LIMIT + BASE OR (I AND @377) < LOCCNTR THEN GO TO C1; LOCCNTR := I AND @377; END; END ELSE IF A = "S" THEN SURPRESS := TRUE ELSE C1: BEGIN & ILLEGAL CONTROL STATEMENT LISTIT(2); LISTIT(3); LISTIT(4); A:= 0; EXEC (2,1,F17[1],6); EXEC (6,0,A,A);  END; Z := " "; END OF CONTROL; COMMENT C C PASS 1 C FETCH THE PARAMETERS AND SET UP THE LOGICAL UNIT NUMBERS.; FETCH (I,J,K,T); IF I > 0 THEN RDR := I; IF J > 0 THEN LIST := J; IF K > 0 THEN PUN := K; IF T > 0 THEN LINESPERPAGE := -T + 2; FORMFEED := FORMFEED + LIST; IF RDR = 2 THEN BEGIN LSINT (ERROR); IF ERROR = 0 THEN LS := TRUE ELSE BEGIN EXEC (2,LIST,F18[1],9); GO TO ABORT END END; XPUN := PUN + @2200; LEADER := PUN + @1000; COMMENT CHECK RDR & PCH FOR FMP FILE OPTIONS.; IF RDR > 100 THEN BEGIN TTY := RDR - 100; EXEC (2,TTY,F19[1],9); ASCIN (INFILE[1],TTY,3,LEN,STATUS); IF OPENFILE (INFILE,INDCB,0) THEN GO TO ABORT ELSE INFMP := TRUE; END OF SOURCE FMP CHECK; IF PUN > 100 THEN BEGIN TTY := PUN - 100; EXEC (2,TTY,F20[1],9); ASCIN (OUTFILE[1],TTY,3,LEN,STATUS); IF OPENFILE (OUTFILE,OUTDCB,2) THEN GO TO ABORT ELSE BEGIN OUTFMP := TRUE; PUNCH := FALSE END END OF OBJECT FMP CHECK; COMMENT SET UP PROPER LUN CODE FOR INPUTING SOURCE VIA ASCIN.; IF NOT(LS) AND NOT(INFMP) THEN BEGIN EXEC (13,RDR,STATUS,LEN); IF (STATUS AND @37400) # 0 THEN RDR := -RDR END; COMMENT REQUEST LS TRACKS IF SOURCE IS NOT ON LS OR IN FMP FILE.; IF NOT(LS) AND NOT(INFMP) THEN BEGIN LSRQ (ERROR,I); IF ERROR = 0 THEN BEGIN LISTIT(0); EXEC (2,LIST,F21[1],12); GO TO ABORT END ELSE LSWRITE := TRUE END OF LS REQUEST FOR PASS II; COMMENT START PASS I PROCESSING.; CHECKLIST(7); WHILE NOT(EOP) DO BEGIN LABEL S1; S1: SOURCE; INDEX := 0; EOC := FALSE; IF LSWRITE THEN & WRITE SOURCE TO LS FOR PASS II BEGIN PACK; LSWRT (BUFFER[1],LEN,ERROR); IF ERROR = -1 THEN BEGIN EXEC (2,LIST,F22[1],12); GO TO ABORT END END OF LS PASS II WRITE; IF CARD[0] # "*" THEN BEGIN IF CARD[0] = "$" THEN CONTROL ELSE BEGIN LINE := 1; IF BASE < 0 THEN BASE := @400; IF CARD[0] # " " THEN & LABEL PRESENT BEGIN IF NOT(SYMADD(CARD,LOCCNTR+BASE)) THEN GO TO S1; END; LOCCNTR := LOCCNTR + 1; END; END; END; IF LOCCNTR > LIMIT THEN & PROGRAM TOO LONG BEGIN LOCCNTR := ERR := 11; LISTIT(1); NUMERRORS := NUMERRORS + 1; END; IF LSWRITE THEN LSEOF; CHECKLIST(8); LISTIT(9); LINES := 0; & END OF PASS I COMMENT C C PASS II C SET UP PASS II SOURCE.; IF LSWRITE THEN LS := TRUE; IF LS THEN LSINT (ERROR) ELSE IF INFMP THEN BEGIN RWNDF (INDCB[1],ERROR); IF IFMGR(ERROR,12,LIST,INFILE[1]) < 0 THEN GO TO ABORT; END OF SOURCE REINITIALIZATION IF OUTPUT IS TO PUNCH THEN PUNCH LEADER.; J := 0; IF PUNCH THEN EXEC (3,LEADER,J,J); COMMENT START OF PASS II; NUMERRORS := LOCCNTR := LINE := 0; EOP := EOPINSKIP := RPTINSKIP := FALSE; ROMA[0] := @400; WHILE NOT(EOP) DO BEGIN SOURCE; INDEX := 0; JMPFLG := NOPINRBUS := NOPINSBUS := S1INSBUS := S2INSBUS := S3INSBUS := S4INSBUS := CWINSPECIAL := MINSTORE := PINSBUS := ADRINSBUS := CONINSBUS := ADDTYPE := FALSE; LINE := LINE + 1; IF CARD[0] = "*" THEN CHECKLIST(10) ELSE IF CARD[0] = "$" THEN COMMENT CONTROL CARD - CHECK FOR ORIGIN OR END.; BEGIN IF CARD[2] = "R" THEN & OR_GIN CARD BEGIN SKIPTO("="); INDEX := INDEX + 1; SKIPBLANKS; LOCCNTR := (CONVERT(INDEX) AND @377); EMITHEADER; END ELSE IF CARD[3] = "D" THEN EOP := TRUE; CHECKLIST(10); END ELSE & GENERATE CODE FOR LINE BEGIN ROMA[WDCNT] := ROTATE(LOCCNTR); ROMB[WDCNT] := 0; I := FIND(RBUS,8,6,3); CHECKSET(1,I); ROMA[WDCNT] := ROMA[WDCNT] OR 32 * I; I := FIND(SBUS,16,10,4); CHECKSET(2,I); ROMA[WDCNT] := ROMA[WDCNT] OR 2 * I; I := FIND(FCN,32,15,4); CHECKSET(3,I); J := I; IF J > 15 THEN BEGIN ROMA[WDCNT] := ROMA[WDCNT] OR 1; J := J - 16; END; ROMB[WDCNT] := ROMB[WDCNT] OR J * 4096; I := FIND(STOR,16,20,3); CHECKSET(4,I); ROMB[WDCNT] := ROMB[WDCNT] OR I * 256; IF JMPFLG THEN & PICK UP JUMP TARGET BEGIN IF CARD[25] = "*" THEN & SELF RELATIVE ADDRESS BEGIN IF CARD[26] = "+" THEN QQ := BASE + LOCCNTR + CONVERT(27) ELSE IF CARD[26] = "-" THEN QQ := BASE + LOCCNTR - CONVERT(27) ELSE IF CARD[26] = " " THEN QQ := LOCCNTR ELSE PRINTERROR(9); IF QQ > 1023 OR QQ < 0 THEN PRINTERROR(9); END ELSE BEGIN QQ := FIND(TABLE,NEXT-1,25,5); IF QQ < 0 THEN PRINTERROR(9) ELSE QQ := VALUES[QQ]; END; IF QQ > 511 THEN IF K = @24 THEN ROMB[WDCNT] := (ROMB[WDCNT] AND @7777) OR @110000 ELSE ROMB[WDCNT] := ROMB[WDCNT] OR @10000; ROMB[WDCNT] := ROMB[WDCNT] OR (QQ AND @377);&0.* EOPINSKIP := RPTINSKIP := FALSE; IF NOPINSBUS THEN BEGIN IF (QQ < 255) OR (QQ > 511 AND QQ < 768) THEN ROMA[WDCNT] := ROMA[WDCNT] AND @177775; END; END ELSE IF CONINSBUS THEN BEGIN ROMB[WDCNT] := ROMB[WDCNT] OR (CONVERT(25) AND @377); EOPINSKIP := RPTINSKIP := FALSE; END ELSE BEGIN & SKIP AND SPECIAL FIELDS INTACT I := FIND(SPEC,16,25,4); CHECKSET(5,I); ROMB[WDCNT] := ROMB[WDCNT] OR 16 * I; I := FIND(SKIP,16,30,4); CHECKSET(6,I); ROMB[WDCNT] := ROMB[WDCNT] OR I; END; CHECKLIST(11); LOCCNTR := LOCCNTR + 1; CHECKSUMB := CHECKSUMB + ROMA[WDCNT] + ROMB[WDCNT]; WDCNT := WDCNT + 1; IF WDCNT = 28 THEN EMITHEADER; END; END OF ASSEMBLY - FINISH LISTING AND FORM FEED; LISTIT(9); LISTIT(4); & & OUTPUT REMAING OBJECT CODE & EOP := FALSE; EMITHEADER; BASE := -1; EOP := TRUE; EMITHEADER; & & TERMINATE PROGRAM & ABORT: EXEC (2,1,F17[1],6); LISTIT(4); IF INFMP THEN CLOSE (INDCB[1],ERROR); IF OUTFMP THEN CLOSE (OUTDCB[1],ERROR); IF LSWRITE THEN LSREL; & END$ 0((H pHHpx xxpxpP((H xpxpP(( HED ** SFMTR - SHORT FORMATTER SUBROUTINE ** JDR NAM SFMTR,7 ENT SFMTR EXT .ENTR,.FLUN,FLOAT EXT EXEC SUP SPC 2 * SFMTR IS A SHORT FORMATTER ROUTINE TO CONVERT A BINARY NUMBER TO * AN ASCII CHARACTER STRING AND STORE THE STRING IN A USER SPECIFIED * BUFFER. ALL STANDARD E, F, K & I FORMATS ARE HANDLED WITH THE * EXCEPTION THAT THE MAXIUM CHARACTER FIELD IS 14. * THE USER MAY EITHER REQUEST THE BUFFER TO BE WRITTEN ON A * LUN OR CONTROL RETURNED TO HIM WITHOUT OUTPUT. SPC 1 * CALLING SEQUENCE * * FORTRAN * CALL SFMTR (NUMBR,FMT,IBUFR,NPNTR) * * ALGOL * PROCEDURE SFMTR (NUMBR,FMT,IBUFR,NPNTR); * INTEGER FMT,IBUFR,NPNTR; * REAL OR INTEGER NUMBR; * CODE; * * ASSEMBLY * JSB SFMTR * DEF *+5 * DEF NUMBR * DEF FMT * DEF IBUFR * DEF NPNTR * * WHERE: * NUMBR = INTEGER OR REAL BINARY NUMBER TO BE CONVERTED TO ASCII * FMT = ASCII CHARACTER STRING DEFINING FORMAT. FOR EXAMPLE - * I3, F5.2 E10.6, K6, ETC. THE LAST CHARACTER MUST * BE A BLANK. * IBUFR = BUFFER FOR ASCII REPRESENTATION OF NUMBR. * NOTE: FIELD SIZE IN FMT MUST NOT BE GREATER THAN * 2 * IBUFR'S WORD LENGTH - NPNTR. * NPNTR = OFFSET OF 1ST CONVERSION CHARACTER INTO BUFFER * IF 0 OR POSITIVE OR OUTPUT TO LUN IF NEGATIVE. * I.E. 0 = NO OFFSET, 1ST CHARACTER STATRS IN HI-HALF * OF BUFFER'S 1ST WORD. * 1 = OFFSET 1 CHARACTER, 1ST CHARACTER STARTS * IN LOW-HALF OF BUFFER'S 1ST WORD. * ETC. * -LUN = WRITE BUFFER ON LUN. * -100 -LUN = WRITE BUFFER ON LUN AND SUPPRESS * CR/LF. NOTE: A BACKARROW WILL BE * PLACED IN THE BUFFER AFTER THE LAST * CHARACTER, THEREFORE, THE BUFFER WILL * HAVE TO BE ONE CHARACTER LARGER THAN * THE W FIELD SPECIFICATION. * NO OFFSET IS ALLOWED IN THE OUTPUT OPTION. * * ERROR CONDITIONS - 1. BUFFER IS FILLED WITH DOLLAR SIGNS ($$) * IF THE NUMBER BEING CONVERTED IS TO LARGE * FOR THE FIELD SPECIFIED. * 2. BUFFER IS FILLED WITH PERCENT SIGNS (%%) * IF AN ILLEGAL CHARACTER IS IN THE FORMAT * SPECIFICATION OR IF THE SPECIFICATION IS * ILLEGAL. SPC 1 * J.D. REED HAC-TEL 1/8/74 SPC 2 NUMBR NOP ADDRESS OF NUMBER TO BE CONVERT FMT NOP CONVERSION FORMAT ADDRESS BUFFR NOP CONVERSION BUFFER ADDRESS PNTR NOP BUFFER OFFSET POINTER SPC 1 SFMTR NOP JSB .ENTR FETCH PARAMETER DEF NUMBR ADDRESSES. SPC 1 * INITIALIZE ROUTINE FLAGS, CONSTANTS & POINTERS SPC 1 CLA CLEAR THE CRLF STA FLAG SUPPRESS FLAG. LDA FMT CONVERT RAL FORMAT CMA,INA,SZA ADDRESS TO CMA CHARACTER STA FCR ADDRESS LDA N7 SET FORMAT CHARACTER STA FCNTR COUNTER FOR A MAXIUM OF 6 CHARS. CCA FETCH ADA BUFFR BUFFER ADA BUFFR ADDRESS LDB PNTR,I IF POINTER IS NEGATIVE, DO SSB,RSS NOT ADD OFFSET TO BUFFER ADDRESS ADA PNTR,I ADD CHARACTER OFFSET TO ADDRESS STA BCR IN BCR STA BCRS & BCRS CLA,INA SET CCNT = 1 STA CCNT FOR INTERNAL CONVERSION LDA N2 SET WSAVE TO -2 (1WD) TO PROTECT STA WSAVE USER'S BUFFER FROM HIMSELF. LDA MONEY RESET BUCKS STA $$%% ASCII CONSTANT SSB,RSS SET UP LUN FOR OUTPUT? JMP REQST NO - CONTINUE ADB D100 YES - IF CRLF SUPPRESS B WILL BE  STB FLAG STILL NEG. SAVE AS FLAG SSB,RSS LUN IN B? LDB PNTR,I NO - FETCH IT FROM PNTR CMB,INB MAKE IT POSITIVE STB LUN AND SAVE SPC 1 * FORMAT REQUEST ANALYZER SPC 1 REQST JSB FCHAR FETCH THE 1ST, TYPE, CHARACTER CPA E E TYPE? JMP ETYPE YES - PROCESS USING E GROUNDRULES CPA F F TYPE? JMP FTYPE YES - PROCESS USING F GROUNDRULES CPA I I TYPE? JMP ITYPE YES - PROCESS USING I GROUNDRULES CPA K K TYPE? JMP KTYPE YES - PROCESS USING K GROUNDRULES JMP ERROR NONE OF THE ABOVE - GIVE HIM $$$ SPC 1 * E FORMAT SPECIFICATION PROCESSOR SPC 1 ETYPE JSB .IOR. FETCH THE REAL NUMBER LDA D4 SET THE SIGN STA SIGN = 4 FOR WGET. JSB WDGET FETCH THE W & D SPECIFICATIONS JSB WDSET SET UP W & D SPECIFICATIONS JSB FLABS SET THE NUMBER POSITIVE CLB INITIALIZE EXPON STB EXPON TO ZERO CPB EXP IF NUMBER = 0, JMP EOUT1 SKIP THIS NEXT PART * AJUST NUMBER TO BE AT LEAST 0.1 * EOUT2 JSB MBY10 MULTIPLY BY 10 LDA EXP IF 10 TIMES CMA,INA NUMBER IS SSA < 1 ( EXP <= 0) JMP *+3 THEN ISZ EXPON BUMP EXPON JMP EOUT2 AND CONTINUE JSB DBY10 ELSE UNDO THE LAST MULTIPLY. * NOW CONVERT THE FRACTION PART TO ASCII * EOUT1 LDA EXPON JSB OUTPT CMA,INA SAVE FINAL VALUE OF EXPONENT STA EXPON JSB OUTP1 * TRANSFER THE EXPONENT SIGN * LDA E FIRST THE JSB OUTCR DESCRIPTIVE E LDA MINUS ASCII MINUS SIGN LDB EXPON EXPONENT NEGATIVE SSB OR POSITIVE? CMB,INB,RSS NEGATIVE - TAKE 2'S COMPLE & SKIP LDA PLUS POSITIVE - CHANGE A TO ASCII + STB EXPON SAVE EXPONENT JSB OUTCR OUTPUT THE SIGN * TRANSFER THE EXPONOENT MAGNITUDE * LDB EXPON FETCH EXPONENT LDA B60 ASCII 0 TO A ADB N10 SUBTRACT 10 FROM EXPONENT SSB STILL NEGATIVE? JMP *+3 NO - EXPONENT TENS IN A INA YES - INCREMENT EXPONENT TENS JMP *-4 DIGIT AND LOOP ADB B72 FORM EXPONENT UNITS DIGIT STB EXPON AND SAVE JSB OUTCR TRANSFER LDA EXPON THE JSB OUTCR EXPONENT JMP EXIT ALL DONE - CHECK FOR OUTPUT SPC 1 * F FORMAT SPECIFICATION PROCESSOR SPC 1 FTYPE JSB .IOR. FETCH THE REAL NUMBER CLA SET SIGN STA SIGN EQUAL 0 FOR WGET JSB WDGET GET W & D FIELD SPECIFICATIONS FCONV JSB WDSET RESET CMA W & JSB WDFIX D JSB FLABS GET ABSLOUTE VALUE OF NUMBER LDA BCNT CONVERT NUMBER TO ASCII & JSB OUTPT TRANSFER TO BUFFER STA BCNT IF NUMBER ADA WSAVE WAS ZERO, SZA,RSS THEN JMP .OUT. FORCE 1 JSB OUTP1 LESS BLANK JMP EXIT ALL DONE - CHECK FOR OUTPUT SPC 1 * I FORMAT SPECIFICATION PROCESSOR SPC 1 ITYPE LDA NUMBR,I FETCH THE NUMBER AND FLOAT IT JSB FLOAT FOR BETTER CONVERSION ACCURACY STA MANT SAVE THE MSB OF THE MANTISSA JSB .FLUN SEPERATE LSB FROM EXPONENT STA EXP SAVE THE EXPONENT STB MANT+1 AND LSB OF THE MANTISSA. CLA SIGN BIT IS SET STA SIGN TO ZERO FOR THE USE OF JSB WGET WGET. CCA D = -1 JSB WDFIX FOR INTEGERS JMP FCONV DO ASCII CONVERSION SPC 1 * K FORMAT SPECIFICATION PROCESSOR SPC 1 KTYPE LDA NUMBR,I FETCH THE STA MANT NUMBER CLA GET STA SIGN THE JSB WGET W - FIELD CCA SET UP JSB WDSET THE W & D FIELDS OCCUT LDA BLANK GET AN ASCII BLANK LDB W Ѳ IS W ADB D6 > = ? SSB -6? JMP OCT4 YES - OUTPUT A BLANK LDA MANT GET THE NUMBER CMB RAR,RAR POSITION OVER 2 FOR 16TH BIT CPB N1 ALR,RAR ALF,RAR ROTATE 3 INB,SZB DONE ROTATING? JMP *-2 NOT YET AND B7 MASK OFF REST OF DIGITS IOR B60 AND IOR ASCII 0 OCT4 JSB OUTCR TRANSFER THE CHARACTER ISZ W END OF VALUE? JMP OCCUT NO - DO NEXT DIGIT JMP EXIT YES - CHECK FOR OUTPUT SPC 1 * ROUTINE TO FETCH A FORMAT CHARACTER SPC 1 FCHAR NOP ISZ FCNTR PROCESSED MAXIUM FMT CHARS.? RSS NO - CONTINUE JMP SPACE YES - RETURN WITH A BLANK ISZ FCR ADVANCE FMT STRING POINTER LDB FCR GET FMT ADDRESS AND SET E CLE,ERB = TO CHARACTER POSITION LDA B,I FETCH WORD CONTAINING FMT CHAR. SEZ,RSS IF E = 0, ROTATE TO PUT ALF,ALF CHARACTER IN LOW A. AND B177 MASK OUT EXTRANEOUS BITS. RSS RETURN WITH CHARACTER IN A SPACE LDA BLANK FORCE A BLANK IN A JMP FCHAR,I RETURN SPC 1 * ROUTINE TO SAVE THE W & D FORMAT SPECIFICATIONS SPC 1 WDFIX NOP CMA -D -1 WDFX1 STA DSAVE SET DSAVE TO INCLUDE POINT CMA D ADA WSAVE D-W CMA,SSA W-D-1 JMP *+3 JUMP IF W SSB,RSS THAN 9? JMP DIGIT,I YES - RETURN NOT A DIGIT ADB B12 CHARACTER < SSB THAN 0? JMP DIGIT,I YES - RETURN NOT A DIGIT ISZ DIGIT WE HAVE A DIGIT - PUT IT IN A LDA B A BUMP RETURN ADDRESS JMP DIGIT,I RETURN SPC 1 * ROUTINE TO COMPUTE THE INTEGER IN THE FORMAT STRING SPC 1 FINTG NOP FINT1 STA TEMP1 SAVE CURRENT VALUE JSB FCHAR FETCH THE NEXT CHARACTER JSB DIGIT IS IT A DIGIT? JMP GOTIT NO - END OF INTEGER LDB TEMP1 YES - MULTIPLY RESULT BLS,BLS SO FAR ADB TEMPP1 BY BLS 10. ADA B ADD TO NEW DIGIT JMP FINT1 LOOP GOTIT CCB BACK UP ADB FCR FORMAT STB FCR POINTER LDA TEMP1 RETURN WITH JMP FINTG,I RESULT IN A REGISTER SPC 1 * ROUTINE TO FETCH THE REAL NUMBER TO BE CONVERTED SPC 1 .IOR. NOP DLD NUMBR,I FETCH THE NUMBER STA MANT SAVE THE MSB OF THE MANTISSA JSB .FLUN SEPERATE LSB FROM EXPONENT STA EXP SAVE THE EXPONENT AND STB MANT+1 THE LSB OF THE MANTISSA. JMP .IOR.,I RETURN SPC 1 * ROUTINE TO LOAD MANTISSA INTO A & B SPC 1 LODEM NOP DLD MANT FETCH THE MANTISSA ONLY JMP LODEM,I SPC 1 * ROUTINE TO CALCULATE THE ABSOLUTE VALUE OF THE MANTISSA SPC 1 FLABS NOP JSB LODEM FETCH THE MANTISSA CMA,SSA COMPLEMENT IT. WAS IT POSITIVE? JMP POSIT YEA - FORGET ABOUT CHANGING IT. CMB,INB,SZB,RSS NE - TWO'S COMPLEMENT FOR B. INA AND IF B = 0, BUMP IT. SSA,RSS IF A IS NEG., THEN JMP NEGIT WE HAVE MAX. NEGATIVE. RAR THAT GIVES THE RIGHT FRACTION ISZ EXP WHEN WE BUMP THE EXPONENT. NOP NEGIT STA MANT SAVE THE NEW FRACTION CCA,RSS SET SIGN FLAG FOR NEGATIVE POSIT CLA SET SIGN FLAG FOR POSITIVE STA SIGN SAVE SIGN LDA MANT MAKE SURE MANTISSA JSB NORML IS NORMALIZED JMP FLABS,I RETURN SPC 1 * ROUTINE TO SAVE THE MANTISSA SPC 1 STORM NOP DST MANT SAVE MANTISSA AT MANT JMP STORM,I SPC 1 * ROUTINE TO NORMALIZE THE MANTISSA SPC 1 NORML NOP SZA,RSS IF A = B = 0 SZB THEN SET THE EXP = 0, JMP NRML1 ELSE CHECK THE SIGN. STA EXP STORES 0 IN EXP. NRML3 JSB STORM SAVE NORMALIZE MANTISSA & JMP NORML,I RETURN NRML1 SSA,RSS IF SIGN OF AE IS SET JMP NRML2 CLE,ERA SHIFT RIGHT, ERB ISZ EXP BUMP EXPONENT & NOP JMP NRML3 RETURN NRML2 STA MANT SUBTRACT CCA ONE ADA EXP FROM STA EXP EXP LDA MANT AND CLE,ELB SHIFT ELA MANTISSA JMP NRML1 CHECK MANTISSA AGAIN SPC 1 * ROUTINE TO MULTIPLY THE MANTISSA BY 10 SPC 1 MBY10 NOP LDA MANT IF THE NUMBER SZA,RSS IS ZERO, JMP MBY10,I RETURN LDB EXP MULTIPLY ADB D3 BY 8. STB EXP LDB MANT+1 GET MANTISSA CLE,ERA DIVIDE ERB BY CLE,ERA 4. ERB,CLE ADB MANT+1 DOUBLE ADD, PRODUCING 1.25*MANT. SEZ INA ADA MANT SSA,RSS IF OVERFLOW, JMP *+5 CLE,ERA SHIFT RIGHT ERB AND ISZ EXP BUMP EXPONENT NOP DST MANT SAVE MANTISSA & JMP MBY10,I RETURN SPC 1 * ROUTINE TO DIVIDE THE MANTISSA BY 10 SPC 1 DBY10 NOP LDA MANT IF NUMBER SZA,RSS IS ZERO, JMP DBY10,I RETURN LDB N2 ADJUST ADB EXP THE STB EXP EXPONENT LDA MANT+1 MULTIPLY LOWER MANTISSA CLE,ERA BY 63146B AFTER SHIFTING SO MPY TENTH THAT SIGN BIT IS ZERO. CLE,ELA SHIFT ELB,CLE BACK ADA B ADD HIGH PART OF RESULT SEZ TO LOW PART FOR INB THE CROSS PRODUCT. STB MANT+1 SAVE LOW PART OF MANTISSA LDA MANT NOW MULTIPLY HIGH MANTISSA MPY TENTH THE SAME WAY. CLE ADA B ADA MANT+1 SEZ INB STB MANT EXCHANGE STA B REGISTERS LDA MANT AND JSB NORML NORMALIZE. JMP DBY10,I RETURN SPC 1 * ROUTINE TO DO THE FINAL CONVERSION TO ASCII SPC -1 OUTPT NOP OUTP3 STA BCTEM * REDUCE NUMBER TO < 1 * LDB EXP SZB JMP NGATE LDB MANT CPB B7777 CLB,INB,RSS LDEXP LDB EXP NGATE CMB,INB THE SSB,RSS EXPONENT, IF POSITIVE JMP OUTPT,I THEN THE REDUCTION IS DONE, JSB DBY10 ELSE DIVIDE BY 10. .OUT. CCA ADA BCTEM BCTEM JMP OUTP3 LOOP OUTP1 NOP LDB BCNT OUTPUT LEADING BLANKS ADB SIGN SUBTRACT 1 FOR SIGN IF NEGATIVE SSB,RSS SKIP IF NEGATIVE JMP OUTP4 * IF BCNT >= D, WE CAN STILL OUTPUT THE NUMBER * CMB - BCNT - 1 ADB D D - BCNT - 1 SSB,INB,RSS SKIP IF BCNT >= D & SET B=D-BCNT JMP BUCKS OUTPUT DOLLARS ELSE STB D SET NEW VALUE OF D JMP OUTP6 OUTP4 LDA BLANK OUTPUT THE JSB MULTO LEADING BLANKS OUTP6 ISZ SIGN OUTPUT A MINUS? JMP OUTP8 NO. ISZ W LDA MINUS JSB OUTCR * NOW TRANSFER THE DIGITS ONE AT A TIME AS DESCRIBED ABOVE * OUTP8 LDB W - IF W = D LDA POINT THEN WE HAVE CPB D TO TRANSFER A JMP OUTDP DECIMAL POINT JSB GETDG GET THE DIGIT, ADA B60 CONVERT TO ASCII AND OUTDP JSB OUTCR TRANSFER CHARACTER TO BUFFER ISZ W SKIP IF DONE JMP OUTP8 ELSE LOOP * GET ONE MORE DIGIT TO ROUND * JSB GETDG FETCH DIGIT ADA N5 AND SUBTRACT 5 ISZ OVTOG IF BUFFER IS BOMBED, FORGET IT! SSA SKIP IF DIGIT WAS 5 OR MORE JMP OUTP1,I * ROUNDING SECTION * JSB WDSET RESET W SO WE DON'T BACK TOO FAR LDB BCR GET THE LAST OUT11 JSB BUF2A CHARACTER TRANSFERED. JSB DIGIT WAS IT A DIGIT? JMP OUTP9 NO. LDB BCR CPA NINE YES. WAS IT A NINE? JMP OUT10 YES. * SINCE THE DIGIT WAS < 9, WE JUST BUMP IT UP. * ADA B61 JMP OUT14 OUT10 LDA B60 CHANGE THE JSB A2BUF NINE TO A ZERO OUT12 JSB BACKB BACK UP BUFFER POINTER ISZ W TEST FOR BEGINNING OF FIELD JMP OUT11 BUCKS LDA WSAVE RESET CHARACTER COUNTER ADA N1 STA CCNT AND BUFFER POINTER. LDA BCRS STA BCR LDA $$%% LDB WSAVE CMB,INB JSB MULTO JMP OUTP1,I OUTP9 CPA POINT WAS THE CHARACTER A DECIMAL PT.? JMP OUT12 NOTHING TO DO IF IT WAS. CPA BLANK WAS IT A BLANK? JMP OUT13 YES. REST IS EASY. * OTHERWISE IT HAS TO BE A MINUS. * ISZ W CHECK W/ RSS CAN WE MOVE IT BACK? JMP BUCKS NO - SORRY ABOUT THAT JSB BACKB JSB A2BUF ISZ BCR NOW PUT IN A '1'. OUT13 LDB BCR LDA B61 OUT14 JSB A2BUF LDA WSAVE PUT BCR BACK AT THE END CMA,INA OF THE FIELD. ADA BCRS STA BCR JMP OUTP1,I SPC 1 * ROUTINE TO BACK UP THE CHARACTER BUFFER POINTER ONE CHARACTER SPC 1 BACKB NOP CCB SUBTRACT ADB BCR ONE STB BCR FROM JMP BACKB,I BCR SPC 1 * ROUTINE TO TRANSFER THE CHARACTER IN A BY B TIMES SPC 1 MULTO NOP CMB,INB SET B NEGATIVE AND SSB,RSS SKIP IF B IS NOW POSITIVE JMP MULTO,I RETURN - B WAS 0 OR LESS STB MULT2 SAVE COUNT STA MULT1 & CHARACTER MULTL LDA MULT1 RESTORE CHARACTER JSB OUTCR TRANSFER THE CHARACTER ISZ W & INDEX THE W SPECIFICATION NOP JUST IN CASE ISZ MULT2 DONE? JMP MULTL NO - LOOP JMP MULTO,I YES - RETURN SPC 1 * ROUTINE TO TRANSFER THE CHARACTER IN A TO THE USER'S BUFFER SPC 1 OUTCR NOP ISZ CCNT END OF THE BUFFER JMP OUTC1 NO - TRANSFER CHARACTER CCA YES - RESET STA CCNT CCNT JMP OUTC2 AND RETURN OUTC1 ISZ BCR ADVANCE LDB BCR BUFFER POINTER JSB A2BUF STORE CHARACTER IN BUFFER. CLA CLEAR OVTOG AND WERE OKAY OUTC2 STA OVTOG JMP OUTCR,I RETURN. SPC 1 * ROUTINE TO MULTIPLY THE NUMBER BY 10 AND PEEL OFF THE INTEGER PART SPC 1 GETDG NOP JSB MBY10 MULTIPLY BY 10 LDB EXP GET THE EXPONENT IN CMB,INB B AS NEGATIVE. AND HIMSK KEEP HIGH ORDER 5 BITS OF A RAL NORMALIZE TO BIT 15 SSB,INB ROTATE LEFT UNTIL EXP GETS TO JMP *-2 ZERO: THIS PUTS THE INTEGER IN A AND B177 GET RID OF THE OTHER STUFF STA TEMP1 LDB EXP NOW ROTATE BACK CMB,INB RAR SSB,INB JMP *-2 XOR MANT REMOVE THE INTGER PART LDB MANT+1 NORMALIZE THE REMAINDER. JSB NORML LDA TEMP1 JMP GETDG,I RETURN SPC 1 * ROUTINE TO FETCH INTO A THE CHARACTER WHOSE POSITION IS IN A SPC 1 BUF2A NOP CLE,ERB POSITION ADDRESS AND SET E=C-BIT LDA B,I WORD CONTAINING CHARACTER TO A. SEZ,RSS IF E=0, ROTATE TO GET THE CHAR- ALF,ALF ACTER IN LOW A AND B177 MASK OUT EXTRANEOUS BITS. JMP BUF2A,I RETURN WITH CHAR IN A. SPC 1 * ROUTINE TO TRANSFER THE CHARACTER IN A TO THE LOCATION OF B SPC 1 A2BUF NOP STA TEMP1 SAVE THE CHARACTER SLB,INB COMPLEMENT THE LOW ADB N2 ORDER BIT OF B. JSB BUF2A GET THE OTHER CHARACTER IN THE ALF,ALF MEMORY WORD AND ROTATE TO HI END, IOR TEMP1 AND MERGE THE CURRENT CHARACTER SEZ ROTATE ALF,ALF IF NECESSARY. STA B,I STORE THE NEW WORD JMP A2BUF,I RETURN SPC 1 * ROUTINE TO RESTORE THE W & D SPECIFICATIONS SPC 1 WDSET NOP LDA WSAVE RESTORE STA W W LDA DSAVE AND STA D D JMP WDSET,I RETURN SPC 1 * FORMAT SPECIFIF=HFBCATION ERROR SUBROUTINE SPC 1 ERROR LDA %SIGN REPLACE $ WITH STA $$%% INSTRUCTION JMP BUCKS FILL BUFFER WITH % SIGNS SPC 1 * CHECK FOR OUTPUT REQUEST SPC 1 EXIT LDA PNTR,I DID CONVERSION REQUEST INCLUDE SSA,RSS OUTPUT? JMP SFMTR,I NO - RETURN JSB EXEC YES - DEF *+5 OUTPUT DEF D2 THE DEF LUN BUFFER DEF BUFFR,I TO THE DEF LEN LUN JMP SFMTR,I RETURN SPC 1 * CONSTANTS & STORAGE ALLOCATIONS SPC 1 A EQU 0 B EQU 1 %SIGN OCT 45 $$%% NOP ARROW OCT 137 B7 OCT 7 B12 OCT 12 B60 OCT 60 B61 OCT 61 B72 OCT 72 B177 OCT 177 B7777 OCT 77777 BCNT NOP BCR NOP BCRS NOP BCTEM NOP BLANK OCT 40 CCNT NOP D NOP D2 DEC 2 D3 DEC 3 D4 DEC 4 D6 DEC 6 D100 DEC 100 DSAVE NOP E OCT 105 EXP NOP EXPON NOP F OCT 106 FCR NOP FCNTR NOP FLAG NOP HIMSK OCT 174000 I OCT 111 K OCT 113 LEN NOP LUN NOP MANT BSS 2 MINUS OCT 55 MONEY OCT 44 MULT1 NOP MULT2 NOP N1 DEC -1 N2 DEC -2 N5 DEC -5 N7 DEC -7 N10 DEC -10 N72B OCT -72 NINE DEC 9 PLUS OCT 53 POINT OCT 56 OVTOG NOP SIGN NOP TENTH OCT 63146 TEMP1 NOP W NOP WSAVE NOP SPC 1 END HASMB,R,L HED ** ASCIN - ASCII INPUT SUBROUTINE ** JDR NAM ASCIN,7 ENT ASCIN EXT EXEC,.ENTR SPC 2 * ASCIN IS A SUBROUTINE TO INPUT ASCII CHARACTERS FROM A LOGICAL * UNIT DEVICE TO A USER SPECIFIED BUFFER. CHARACTERS ARE PACK TWO * PER WORD AND IF THE INPUT IS LESS THAN THE REQUEST, THE REMAIN- * ING WORDS ARE FILLED WITH ASCII BLANKS. * * CALLING SEQUENCE * FORTRAN - * CALL ASCIN (IBUFR,LUN,LEN,NUM,ISTAT) * ALGOL - * PROCEDURE ASCIN (IBUFR,LUN,LEN,NUM,ISTAT); * INTEGER IBUFR,LUN,LEN,NUM,ISTAT; * CODE; * ASSEMBLY * JSB ASCIN * DEF *+6 * DEF IBUFR * DEF LUN * DEF LEN * DEF NUM * DEF ISTAT * WHERE: * IBUFR = 1ST WORD OF BUFFER FOR ASCII INPUT * LUN = LOGICAL UNIT NUMBER OF INPUT DEVICE. * IF POSITIVE PRINT A ? BEFORE INPUT & ECHO INPUT. * IF NEGATIVE DO NOT PRINT ? AND DO NOT SET ECHO BIT. * LEN = INPUT REQUEST LENGTH - POSITIVE = WORDS, NEGATIVE = * CHARACTERS. * NUM = ACTUAL INPUT ON RETURN, EITHER WORDS OR CHARACTERS * AS SPECIFIED IN PARAMETER LEN. * ISTAT = EQT WD 5, STATUS OF DEVICE UPON RETURN. SPC 1 * J.D. REED HAC-TEL 2/2/74 SPC 2 IBUFR NOP BUFFER ADDRESS LUN NOP INPUT LOGICAL UNIT ADDRESS LEN NOP INPUT REQUEST LENGTH ADDRESS NUM NOP ACTUAL INPUT LENGTH REQUEST ISTAT NOP DEVICE STATUS ADDRESS SPC 1 ASCIN NOP JSB .ENTR FETCH THE DEF IBUFR PARAMETER ADDRESSES SPC 1 * FILL USER'S BUFFER WITH ASCII BLANKS SPC 1 LDA LEN,I FETCH REQUEST LENTH SSA,RSS LENGTH IN WORDS OR CHARACTERS? CMA,INA,RSS WORDS - MAKE COUNT NEGATIVE ARS CHARACTERS - CHANGE TO WORDS STA CNTR SAVE BUFFER WORD SIZE LDA IBUFR FETCH BUFFER ADDRESS LDB SPACE AND AN ASCII BLANK STB A,I STORE BLANK IN BUFFER  INA INDEX BUFFER ADDRESS ISZ CNTR BUFFER FILLED WITH SPACES? JMP *-3 NO - LOOP SPC 1 * CONFIGURE LOGICAL UNIT NUMBER SPC 1 LDA LUN,I FETCH LOGICAL UNIT SSA SET ECHO BIT? CMA,INA,RSS NO - MAKE LOGICAL UNIT POSITIVE IOR ECHO YES - OR IN ECHO BIT STA UNIT SAVE CONFIGURE LOGICAL UNIT. SPC 1 * OUTPUT QUESTION MARK IF IT WAS REQUESTED SPC 1 LDA LUN,I WAS QUESTION SSA MARK REQUESTED? JMP INPUT NO - GO DIRECTLY TO INPUT SECTION JSB EXEC YES - DEF *+5 DO DEF D2 AN DEF UNIT EXEC DEF ?? WRITE DEF N3 REQUEST SPC 1 * INPUT ASCII STRING SPC 1 INPUT JSB EXEC DO DEF *+5 AN DEF D1 EXEC DEF UNIT INPUT DEF IBUFR,I REQUEST DEF LEN,I TO USER'S BUFFER STA ISTAT,I RETURN STATUS AND STB NUM,I WORD OR CHARACTER COUNT TO USER SPC 1 JMP ASCIN,I RETURN SPC 1 * CONSTANTS & CORE ALLOCATION SPC 1 A EQU 0 CNTR NOP D1 DEC 1 D2 DEC 2 ECHO OCT 400 N3 DEC -3 SPACE ASC 1, UNIT NOP ?? ASC 1,? OCT 57400 SPC 1 END ASMB,R,B,L HED ** FILE MANAGER ERROR PROCESSOR ** JDR NAM IFMGR,7 ENT IFMGR EXT EXEC,.ENTR SPC 1 * THIS FUNCTION CHECKS FOR FILE MANAGER ERRORS. IF THE ERROR * CODE IS < 0, THE ERROR MESSAGE IS PRINTED ON THE LOCAL TTY. * * IF ID IS >= 0, THE ERROR CODE IS RETURNED AS THE FUNCTION * VALUE. * * IF ID IS < 0 AND THE ERROR CODE IS < 0, THEN THE PROGRAM IS * ABORTED. SPC 1 * FORTRAN USEAGE EXAMPLE: * IF (IFMGR (IERR,ID,LTTY,NAME)100,200 SPC 1 * ASSEMBLY CALL SEQUENCE * JSB IFMGR * DEF *+4 * DEF IERR * DEF ID * DEF LTTY * DEF NAME * ON RETURN A = IERR SPC 1 * WHERE: * IERR = ERROR PARAMETER RETURNED FROM FILE MANAGER CALL. * ID = CALL IDENTITY CODE (NEGATIVE TO ABORT IF ERROR EXSISTS) * AS FOLLOWS. * 1 = APOSN * 2 = CLOSE * 3 = CREAT * 4 = FCONT * 5 = FSTAT * 6 = LOCF * 7 = NAMF * 8 = OPEN * 9 = POSNT * 10 = PURGE * 11 = READF * 12 = RWNDF * 13 = WRITF * LTTY = LOGICAL UNIT NUMBER OF DEVICE TO LIST ERROR SPC 2 * PARAMETER ADDRESSES SPC 1 IERR NOP ERROR CODE ID NOP FILE MANAGER CALL ID LTTY NOP LOGICAL UNIT TO OUTPUT ERROR MESS NAME NOP NAME OF FILE FILE MANAGER FILE ADDS. SPC 1 * ENTRY POINT SPC 1 IFMGR NOP JSB .ENTR USE .ENTR TO GET DEF IERR ADDRESSES OF PARAMETERS LDA IERR,I GET ERROR CODE SSA,RSS FILE MANAGER ERROR? JMP IFMGR,I NO, RETURN TO USER SPC 1 * ERROR! CONVERT ERROR TO ASCII AND PUT IT INTO OUTPUT BUFFER SPC 1 MPY M1 MULTIPLY ERROR BY -1 & THEN DIV .10 DIVIDE BY TEN TO GET TENS DIGIT. STA ERROR SAVE TEMPORARILY MPY .10 MULTIPLY BY 10 AND DIVIDE BY DIV .1 1 TO GET TENS VALUE ONLY ADA IERR,I ADD ERROR CODE, RESULT = - UNITS CMA,INA MAKE UNITS POSITIVE LDB ERROR GET TENS DIGIT BLF,BLF ROTATE IT TO HIGH HALF OF WORD IOR B OR IT WITH UNITS IOR ASC00 OR IN ASCII CONSTANT STA ERROR PUT ASCII ERROR CODE IN MESS BUF SPC 1 * ADD CALL ID AND FILE NAME TO BUFFER SPC 1 LDA ID,I GET ID CODE SSA IS IT NEGATIVE? CMA,INA YES - MAKE POSITIVE STA B IS CODE ADB M14 GREATER SSB,RSS THAN 13? CLA YES - OUTPUT $$$$$ FOR ID STA B SAVE ERROR CODE ALS MULTIPLY BY 2 AND ADA B ADD IT TO ,ITSELF (X3) ADA CALL ADD BUFR STARTING ADDS TO OFFSET LDB EMES SET POINTER TO STB PNTR ID NAME CLB SET FLAG TO INDICATE NAME STB FLAG BUFFER HAS TO BE TRANSFERRED. NFILE LDB M3 SET COUNTER TO STB CNTR TRANSFER 3 WORDS LOOP LDB A,I GET ID WORD & PUT IT STB PNTR,I IN ERROR MESSAGE BUFFER INA INDEX ID AND ISZ PNTR ERROR MESSAGE POINTERS ISZ CNTR TRANSFER COMPLETE? JMP LOOP NO - TRANSFER NEXT WORD LDB FLAG SZB NAME ARRAY TRANSFERRED? JMP OUT YES - OUTPUT MESSAGE ISZ FLAG NO - SET FLAG TO SAY YES LDA NAME GET ADDRESS OF ARRAY IN A LDB NAMEB PUT OUTPUT BUFFER STB PNTR ADDRESS IN B JMP NFILE TRANSFER FILE NAME SPC 1 * OUTPUT ERROR MESSAGE SPC 1 OUT JSB EXEC DEF *+5 DEF WRITE DEF LTTY,I EMES DEF ERMES DEF M32 SPC 1 * CHECK FOR ABORT PROGRAM SPC 1 LDA IERR,I PUT ERROR CODE IN CASE WE RETURN LDB ID,I GET ID CODE SSB,RSS DO WE ABORT? JMP IFMGR,I NO - RETURN SPC 1 * ABORT PROGRAM SPC 1 JSB EXEC WRITE DEF *+5 "PROGRAM ABORTED!" DEF WRITE ON DEF LTTY,I THE DEF ABORT LOCAL DEF M16 TTY JSB EXEC ASK DEF *+2 RTE TO DEF .6 TERMINATE PROGRAM JMP *-3 JUST IN CASE RTE DOES NOT LISTEN SPC 1 * CONSTANTS, STORAGE ALLOCATION, AND MESSAGES SPC 1 A EQU 0 A REGISTER B EQU 1 B REGISTER SPC 1 * CONSTANTS SPC 1 .1 DEC 1 .6 DEC 6 .10 DEC 10 M1 DEC -1 M3 DEC -3 M14 DEC -14 M16 DEC -16 M32 DEC -32 SPC 1 * MISC. CONSTANTS SPC 1 ASC00 ASC 1,00 WRITE DEC 2 SPC 1 * NOP'S SPC 1 CNTR NOP UTILITY COUNTER FLAG NOP ID/NAME TRANSFER FLAG PNTR NOP TRANSFER POINTER TO MESSAGE BUFFR SPC 1 * FILE MANAGER CALLS SPC 1 CALL DEF *+1 SUP 1 SPC 1 ASC 3,$$$$$ ID1 ASC 3,APOSN ID2 ASC 3,CLOSE ID3 ASC 3,CREAT ID4 ASC 3,FCONT ID5 ASC 3,FSTAT ID6 ASC 3,LOCF ID7 ASC 3,NAMF ID8 ASC 3,OPEN ID9 ASC 3,POSNT ID10 ASC 3,PURGE ID11 ASC 3,READF ID12 ASC 3,RWNDF ID13 ASC 3,WRITF SPC 1 * ERROR MESSAGE SPC 1 ERMES BSS 3 ASC 4,ERROR - ERROR NOP ASC 5, IN FILE NAM. BSS 3 NAMEB DEF NAM. SPC 1 * ABORT PROGRAM MESSAGE SPC 1 ABORT ASC 8,PROGRAM ABORTED! SPC 1 END ASMB,R,L HED ** FETCH - ALGOL'S RMPAR ** JDR NAM FETCH,7 ENT FETCH SPC 2 * FETCH IS AN ALGOL PROCEDURE TO TRANSFER THE PARAMETERS PASSED * WHEN A PROGRAM IS SCHEDULED BY RTE. * * CALLING PROCEDURE - * PROCEDURE FETCH (A,B,C,D,E); * INTEGER A,B,C,D,E; * CODE; * * WHERE A THRU E ARE THE FIVE PARAMETERS PASSED BY RTE. * NOTE: IF LESS THAN 5 PARAMETERS ARE REQUIRED, ONLY THE ACTUAL * PARAMETER LIST NEED BE SUPPLIED AND DEFINED IN THE PRO- * CEDURE DECLARATION. SPC 1 * J.D. REED HAC-TEL 1/5/74 SPC 2 FETCH NOP LDA FETCH,I SAVE STA RETRN RETURN ADDRESS LOOP ISZ FETCH INCREMENT POINTER LDA FETCH AND LOAD VALUE. CPA RETRN POINTER = RETURN ADDRESS? JMP RETRN,I YES - RETURN LDA FETCH,I NO - FETCH THE VARIABLE ADDRESS STA ADDRS IN THE USER'S PROG. AND SAVE LDA B,I FETCH RTE PARAMETER & STA ADDRS,I RETURN IT TO USER. INB INDEX RTE PARAMETER POINTER JMP LOOP CHECK FOR ANOTHER PARAMETER SPC 1 B EQU 1 ADDRS NOP RETRN NOP SPC 1 END ASMB,L,R HED ** LSTKS - ROUTE TO REQUEST & WRITE LS TRACKS ** JDR NAM LSTKS,7 ENT LSRQ,LSWRT$,LSEOF,LSINT,LSRED,LSREL EXT .ENTR,%WRIN,%WRIS,%WEOF,$LIBR,$LIBX EXT %JFIL,%READ,EXEC SPC 1 * SUBROUTINE TO REQUEST, WRITE TO, WRITE EOF, INITIALIZE FOR * A READ, READ AND RELEASE LS TRACKS. * * J. D. REED HAC-TEL 7/1/74 * * CALLING SEQUENCES: * 1. REQUEST LS TRACKS * CALL LSRQ (LUN,ITAK) * WHERE ON RETURN LUN = LOGICAL UNIT OF LS TRACK OR 0 * IF NO TRACKS AVAILABLE. * ITAK = STARTING TRACK NUMBER. * 2. WRITE TO LS TRACK * CALL LSWRT (IBUFR,NWDS,IERR) * WHERE IBUFR = 1ST WORD OF BUFFER TO BE WRITTEN. * NWDS = NUMBER OF WORDS TO BE WRITTEN. * IERR = ERROR FLAG - 0 NO ERROR, -1 ERROR. * 3. WRITE EOF IN LS TRACK * CALL LSEOF * 4. INITIALIZE LS TRACKS FOR READING * CALL LSINT (IERR) * WHERE IERR = 0 IF TRACKS INITIALIZE. * = 1 IF LS TRACKS ARE EMPTY. * 5. READ A RECORD FROM LS TRACKS * CALL LSRED (IBUFR,LEN,IWDS) * WHRER IBUFR = BUFFER ADDRESS * LEN = MAXIUM WORDS TO BE READ OR - FOR CHARACTERS * IWDS = ON RETURN = ACTUAL WORDS/CHARACTERS READ OR * = 0 = EOF * 6. RELEASE LS TRACKS ASSIGNED TO PROGRAM * CALL LSREL SPC 1 * REQUEST LS TRACK(S) SPC 1 LUN NOP ADDRESS TO STORE LS LOGICAL UNIT TRACK NOP ADDRESS TO STORE TRACK # SPC 1 LSRQ NOP JSB .ENTR FETCH THE PARAMETER DEF LUN ADDRESSES. CLA SET LUN TO 0 TO SAY NO TRACKS STA LUN,I ARE AVAILABLE. JSB %WRIN REQUEST A TRACK. JMP LSRQ,I RETURN - DISC FULL. STA B SAVE LUN/TRACK WORD. ALF,ALF ISOLATE AND B377 LOGICAL UNIT AND RETURN STA LUN,I IT TO THE USER. LDA B ISOLATE AND B377 TRACK NUMBER AND STA TRACK,I RETURN IT TO USER. STB NCHAR SAVE LUN-TRACK JSB $LIBR TURN MEMOR)Y NOP PROTECT OFF. LDA NCHAR GET LUN-TRACK LSL 7 REFORMAT IT AND STA SFCUN STORE IN BASE PAGE. JSB $LIBX TURN MEMORY PROTECT DEF LSRQ ON AND RETURN. SPC 1 * WRITE TO LS TRACKS SPC 1 BUFFR NOP ADDRESS OF BUFFER WORDS NOP ADDRESS OF WORD COUNT ERROR NOP ADDRESS OF ERROR FLAG SPC 1 LSWRT NOP JSB .ENTR FETCH THE DEF BUFFR PARAMETER ADDRESSES. LDA WORDS,I CONVERT ALS WORD COUNT CMA,INA TO -CHARACTERS STA NCHAR AND SAVE. JSB %WRIS REQUEST DEF *+4 A WRITE DEF BUFFR,I TO LS DEF NCHAR TRACKS. CCA,RSS ERROR RETURN. CLA NORMAL RETURN. STA ERROR,I RETURN ERROR FLAG JMP LSWRT,I RETURN. SPC 1 * WRITE AN EOF IN THE LS TRACK SPC 1 LSEOF NOP ISZ LSEOF ADJUST RETURN ADDRESS JSB %WEOF WRITE EOF JMP LSEOF,I AND RETURN. SPC 1 * INITIALIZE LS TRACKS FOR READING SPC 1 ERR NOP ERROR PARAMETER RETURN ADDRESS SPC 1 LSINT NOP JSB .ENTR FETCH ERROR PARAMETER DEF ERR ADDRESS. CLA,INA SET A FOR ERROR JUST IN CASE. LDB SFCUN ARE LS SZB,RSS TRACKS DEFINE? JMP NOLS NO - EXIT WITH ERROR = 1. JSB %JFIL YES - INITIALIZE TRACKS. CLA CLEAR ERROR RETURN. NOLS STA ERROR,I RETURN ERROR TO USER JMP LSINT,I AND RETURN. SPC 1 * READ A RECORD FROM LS TRACKS SPC 1 BUF NOP BUFFER ADDRESS LEN NOP BUFFER LENGTH ADDRESS IWDS NOP NUMBER OF WORDS READ ADDRESS SPC 1 LSRED NOP JSB .ENTR FETCH THE DEF BUF PARAMETER ADDRESSES. LDB LEN,I FETCH THE BUFFER LENGTH. SSB WORDS OR CHARACTERS? JMP *+3 CHARACTERS - CONTINUE. BLS @0.* WORDS - CHANGE TO CMB,INB NEGATIVE CHARACTERS. STB LSEOF SAVE -CHARACTER COUNT. JSB %READ REQUEST DEF *+5 A DEF D2 RECORD DEF BUF,I READ FROM DEF LSEOF LS TRACKS CLB EOF RETURN LDA LEN,I FETCH ORGINAL REQUEST WAS SSA IT WORDS OR CHARACTERS? JMP *+4 CHARACTERS - SKIP CONVERSION. SLB WORDS - IF ODD INB MAKE EVEN AND THEN BRS DIVIDE BY TWO. STB IWDS,I RETURN COUNT TO USER. JMP LSRED,I RETURN SPC 1 * RELEASE LS TRACKS SPC 1 LSREL NOP ISZ LSREL ADJUST RETURN ADDRESS. JSB EXEC ASK DEF *+3 EXEC TO DEF D5 RELEASE ALL DEF N1 TRACKS ASSIGN TO PROGRAM. JMP LSREL,I RETURN SPC 1 * CONSTANTS & CORE ALLOCATION SPC 1 B EQU 1 B377 OCT 377 D2 DEC 2 D5 DEC 5 N1 DEC -1 NCHAR NOP SFCUN EQU 1767B SPC 1 END S0 , 22681-18039 1508 SC 0222 RTE 4271A 1MHZ DIGITAL LCR METER DRIVER             H0102 ASMB,R,B,L HED **RTE CALLS TO DVR62 (4271A DIGITAL LCR METER)** * NAM L4271,7 * ENT SETLC,MEALC EXT .ENTR,EXEC,IFIX,ERR0,.STOP,FLOAT,.RTOI * ************************************************************ * SETLC: SET THE 4271A * SETLC HAS THE FORTRAN CALLING SEQUENCE SETLC(ILU,IR,IF,V) * WHERE, * * ILU(INTEGER) - DEVICE REFERENCE TABLE# (LU#) * IR(INTEGER) - RANGE OF 4271A (0-4) * IF(INTEGER) - FUNCTION OF 4271A (0-3) * V(FLOATING POINT) - VOLTAGE BIAS (0-39.9 VOLTS) * * NOTE: SEE 4271A OPERATORS MANUAL FOR COMPLETE EXPLAINATION * OF IR,IF, AND V INPUT VALUES. ************************************************************ * ILU NOP LU# ADDRS IR NOP RANGE ADDRS IF NOP FUNCTION ADDRS V NOP VOLTAGE BIAS ADDRS SETLC NOP ENTRY POINT JSB .ENTR SET POINTER DEF ILU LDA * * SET WRITE REQUEST, LU#, AND BUFFER LENGTH * LDA .2 SET WRITE REQUEST STA ICODE AND STORE LDA ILU,I LU# STA ILU# AND STORE LDA .7 SET BUFFER LENGTH STA IBUFL AND STORE * * SET RANGE OF 4271A * LDA IR,I GET RANGE LDB ER1 OUTPUT (B) IF ERROR FOUND JSB ERR GO CHECK FOR ERROR STA IBITS STORE RANGE FOR OUTPUT * * SET FUNCTION OF 4271A * LDA IF,I GET FUNCTION LDB ER2 OUTPUT (B) IF ERROR FOUND JSB ERR GO CHECK FOR ERROR STA IBITS+1 STORE FUNCTION FOR OUTPUT * * SET BIAS VOLTAGE OF 4271A * DLD V,I GET BIAS VOLTAGE FMP .10. MULTIPLY X 10 JSB IFIX CONVERT TO INTEGER CLB DIV .100 GET MSD STB REM SAVE REMANINDER LDB ER3 OUTPUT (B) IF ERROR FOUND JSB ERR GO CHECK FOR ERROR STA IBITS+2 STORE MSD OF BIAS FOR OUTPUT CLB LDA REM GET REMAINDER DIV LF GET 2ND DIGIT STA IBITS+3 STORE 2ND BIAS <DIGIT FOR OUTPUT STB IBITS+4 STORE 3RD BIAS DIGIT FOR OUTPUT * * SET CR/LF AND SEND DATA TO 4271A * LDA CR CARRIAGE RETURN STA IBITS+5 STORE CR FOR OUTPUT LDA LF LINEFEED STA IBITS+6 STORE LF FOR OUTPUT JSB OUT SEND DATA TO 4271A JMP SETLC,I **RETURN** * ************************************************************ * MEALC: MEASURE THE 4271A * MEALC HAS THE FORTRAN CALLING SEQUENCE MEALC(ILU,CL,GR,IE) * WHERE, * * IE(INTEGER) - NON-FATAL ERROR #0 (0= NO ERROR) * ILU(INTEGER) - SAME AS SETLC CALL * CL(FLOATING POINT) - RETURNED CAPACITANCE(F) OR INDUCT- * ANCE(H) VALUE * GR(FLOATING POINT) - RETURNED CONDUCTANCE(MHOS), * RESISTANCE(OHMS)OR DISSIPATION * FACTOR VALUE * IE(INTEGER) - NON-FATAL ERROR #0 (0= NO ERROR) * * NOTE: IF AN ERROR IS DETECTED THE RETURNED CL AND GR * VALUES MAY BE INVALID. ALWAYS BEWARE OF NEGATIVE * VALUES. * ************************************************************ ************ WRITTEN BY: GRANT SUMMERS 4/30/74 ************* ************************************************************ * ILUN NOP LU# ADDRS CL NOP C OR L ADDRS GR NOP G OR R ADDRS IERR NOP ERROR RETURN ADDRS MEALC NOP ENTRY POINT JSB .ENTR SET POINTER DEF ILUN * * SET READ REQUEST,LU#,BUFFER LENGTH,AND GET DATA * AND CLEAR ERROR CODE * LDA .1 SET READ REQUEST STA ICODE AND STORE LDA ILUN,I GET LU# STA ILU# STORE IT LDA .18 SET BUFFER LENGTH STA IBUFL AND STORE CLA CLEAR ERROR CODE STA IERR,I JSB OUT GET 18 DATA WORDS * * PROCESS C/L DATA FROM 4271A * JSB DIN FORM MANTISSA & CHECK EXP SIGN LDA IBITS+6 GET EXP(MSD) OR ANNOUNCE CPA .7 IS "UNBAL" SET? JMP UNBAL YES CP- A .8 MAYBE? JMP UNBAL YES CPA .9 MAYBE? RSS JMP OK2 NO,GO ON UNBAL LDB ER20 YES,ERROR#20 JSB ER OUTPUT ERROR MESS. STB E20FG SET ERROR# #20 FLAG JMP MAX SET MAX VALUE * OK2 CMA,INA SET (MSD) OF EXP NEG. ADA .3 IS MSD OF EXP > 3? SSA,RSS JMP OK3 NO,GO ON LDB ER21 YES,ERROR#21 JSB ER OUTPUT ERROR MESS. JMP MAX SET MAX VALUE * OK3 LDA IBITS+6 GET MSD OF EXP CPA .3 IS IT 3? RSS JMP OK4 NO,GO ON STB EXPFG YES,SET MSD OF EXP=3 FLAG * OK4 MPY LF MULTIPLY X 10 FOR MSD OF EXP STA EXP SAVE IT LDA IBITS+7 GET LSD OF EXP LDB EXPFG IS EXP FLAG SET? SZB,RSS JMP OK5 NO,GO ON CLB YES,SET EXP STB EXPFG FLAG=0 CPA .9 IS LSD=9 RSS JMP OK5 NO,GO ON LDB ER21 YES,ERROR#21 JSB ER OUTPUT ERROR MESS. MAX DLD MAX1 SET VALUE TO MAX JMP STOR AND STORE * OK5 ADA EXP ADD LSD TO MSD OF EXP CMA,INA SET EXP NEG. STA EXP STORE IT JSB .RTOI CALCULATE 10.**(-EXP) DEF .10. DEF EXP JSB ERR0 ERROR RETURN FMP FP INCLUDE MANTISSA STOR DST CL,I RETURN VALUE TO CALLING PROGRAM * LDA IBITS+8 GET (,) WORD CPA OCT14 IS IT (,)? JMP G/R YES,GO ON LDA .7 SET TO PREVENT ERROR PASS LDB ER5 NO,ERROR#5 JSB ERR OUTPUT ERROR MESS. * * PROCESS G/R DATA FROM 4271A * G/R LDA .PNTR SET POINTERS STA PNTR LDA .PNT STA PNT * LDB .9 SET COUNTER CMB,INB * SHIFT LDA PNTR,I GET G/R DATA AND STORE STA PNT,I IN 1ST 9 IBITS LOCATIONS ISZ PNT INCREMENT STORAGE LOCATIONS ISZ PNTR INB,SZB DONE? JMP SHIFT NO ɒ JSB DIN FORM MANTISSA & CHECK EXP SIGN LDA IBITS+6 GET ANNOUNCE LDB E20FG IS ERROR#20 FLAG SET? SZB,RSS JMP ORCHK NO,CHECK"OUT OF RANGE" CLB YES,SET FLAG=0 STB E20FG JMP MAXX SET MAX GR VALUE ORCHK CPA .7 NO,IS"OUT OF RANGE" SET? JMP OTRNG YES CPA .8 MAYBE? JMP OTRNG YES CPA .9 MAYBE? RSS JMP OK6 NO, GO ON OTRNG LDB ER22 YES,ERROR#22 JSB ER OUTPUT ERROR MESS. OK6 CPA .1 "D TO G,R" ERROR? RSS JMP OK7 NO,GO ON LDB ER23 YES,ERROR#23 JSB ER OUTPUT ERROR MESS. MAXX DLD MAX1 SET VALUE TO MAX JMP STORR STORE IT * OK7 LDA IBITS+7 GET EXP CMA,INA SET EXP NEG. STA EXP STORE IT JSB .RTOI CALCULATE 10.**(-EXP) DEF .10. DEF EXP JSB ERR0 ERROR RETURN FMP FP INCLUDE MANTISSA STORR DST GR,I RETURN VALUE TO CALLING PROGRAM * LDA IBITS+8 GET (;) WORD CPA OCT13 IS IT (;)? JMP MEALC,I **RETURN** LDA .7 SET TO PREVENT ERROR PASS LDB ER6 NO,ERROR#6 JSB ERR OUTPUT ERROR MESS. * * DATA INPUT SECTION TO CALCULATE MANTISSA * AND CHECK SIGN OF EXPONENT * DIN NOP DATA I/O ENTRY POINT LDA IBITS GET 1ST DATA WORD(MSD) CLB SET SIGN =0 CPA CR (-)? RSS JMP D1 NO,GO,ON LDB BIT15 YES,SET SIGN=1 STB SIGN STORE SIGN JMP D2 GET 2ND DIGIT D1 STB SIGN STORE SIGN MPY TTH CONVERT TO INTEGER STA INT AND SAVE * D2 LDA IBITS+1 GET 2ND DATA WORD MPY TH CONVERT TO INTEGER ADA INT SUM IT STA INT AND SAVE * LDA IBITS+2 GET 3RD DATA WORD MPY .100 CONVERT TO INTEGER ADA INT SUM IT STA INT AND SAVE *  LDA IBITS+3 GET 4TH DATA WORD MPY LF CONVERT TO INTEGER ADA INT SUM IT STA INT AND SAVE * LDA IBITS+4 GET 5TH DATA WORD(LSD) ADA INT SUM IT IOR SIGN INCLUDE SIGN JSB FLOAT CONVERT TO F.P. DST FP STORE IT * LDA IBITS+5 GET (-) WORD CPA CR IS IT (-)? JMP OK1 YES,GO ON LDA .7 SET TO PREVENT ERROR PASS LDB ER4 NO,ERROR#4 JSB ERR OUTPUT ERROR MESS. OK1 JMP DIN,I **RETURN** * * FATAL ERROR PRINTOUT * ERR NOP ERROR CHECK ENTRY SZA,RSS 0? JMP OK YES, GO ON CPA .1 NO,1? JMP OK YES, GO ON CPA .2 NO,2? JMP OK YES, GO ON CPA .3 NO,3? JMP OK YES, GO ON CPB ER2 NO, FUNCTION ERROR JMP FATAL YES CPB ER3 NO,BIAS ERROR JMP FATAL YES CPB ER4 NO,(-) ERROR JMP FATAL YES CPB ER5 NO,(,) ERROR JMP FATAL YES CPB ER6 NO,(;) ERROR JMP FATAL YES CPA .4 NO,4? JMP OK YES FATAL LDA LC NO,ERROR(FATAL) JSB ERR0 ERROR PRINTOUT CLA JSB .STOP STOP PROGRAM(EXIT) OK JMP ERR,I **RETURN** * * NON-FATAL ERROR PRINTOUT * ER NOP NON-FATAL ERRORS STA SA SAVE A LDA LC ERROR CODE STB IERR,I STORE ERROR CODE JSB ERR0 ERROR PRINTOUT LDA SA RESTORE A REG. JMP ER,I **RETURN** * * OUTPUT TO DRIVER 61 (4271A LCR METER) * OUT NOP OUTPUT TO DRIVER ENTRY JSB EXEC DEF *+5 DEF ICODE DEF ILU# DEF IBITS DEF IBUFL JMP OUT,I **RETURN** * * CONSTANTS AND STORAGE * .1 DEC 1 .2 DEC 2 .3 DEC 3 .4 DEC 4 .7 DEC 7 .8 DEC 8 .9 DEC 9 OCT13 OCT 13 (;) OCT14 OCT 14$" (,) .18 DEC 18 .100 DEC 100 TH DEC 1000 TTH DEC 10000 .10. DEC 10. BIT15 OCT 100000 LF OCT 12 LINEFEED AND .10 CR OCT 15 CARRIAGE RETURN AND (-) MAX1 OCT 77777 OCT 177776 * REM NOP REMAINDER STORAGE ICODE NOP REQUEST CODE ILU# NOP LU# PNT NOP IBITS POINTER PNTR NOP G/R DATA POINTER .PNTR DEF IBITS+9 G/R DATA .PNT DEF IBITS IBITS DATA IBITS BSS 18 BIT I/O STORAGE IBUFL NOP BUFFER LENGTH FP BSS 2 FLOATING POINT STORAGE INT NOP INTEGER STORAGE EXP NOP EXPONENT STORAGE SIGN NOP SIGN STORAGE SA NOP SAVE A REGISTER EXPFG NOP MSD OF EXP =3 FLAG E20FG NOP ERROR#20 FLAG * LC ASC 1,LC ER1 ASC 1, 1 RANGE ERROR ER2 ASC 1, 2 FUNCTION ERROR ER3 ASC 1, 3 BIAS ERROR ER4 ASC 1, 4 NO (-) ON EXP ERROR ER5 ASC 1, 5 NO (,) RECIEVED ER6 ASC 1, 6 NO (;) RECIEVED ER20 ASC 1,20 "UNBAL" ERROR ER21 ASC 1,21 EXP < -38 ERROR ER22 ASC 1,22 "OUT OF RANGE" ERROR ER23 ASC 1,23 "D TO G,R" ERROR END B$FTN,B,L PROGRAM LCR WRITE(1,103) WRITE(1,105) READ(1,*) LU 10 WRITE(1,100) READ(1,*) IRNG WRITE(1,101) READ(1,*) IFCM WRITE(1,102) READ(1,*) V CALL SETLC(LU,IRNG,IFCM,V) CALL MEALC(LU,CL,GR,IERR) WRITE(1,200) CL,GR WRITE(1,104) READ(1,201) IANS IF(IANS.EQ.1HY) GO TO 10 100 FORMAT("RANGE(0-4) = _") 101 FORMAT("FUNCTION(0-3) = _") 102 FORMAT("BIAS(0-39.9V) = _") 103 FORMAT("ARE 4271A FRONT AND READ PANEL SWITCHES CORRECT?"/) 104 FORMAT(/"CONTINUE? (Y OR N) _") 105 FORMAT("LU# OF 4271A = _") 200 FORMAT("CL = "G10.3" GR = "G10.3) 201 FORMAT(A1) STOP END END$ ASMB,R,B,L HED **RTE 4271A DIGITAL LCR METER DRIVER(DVR62)** NAM DVR62 * ENT I.62,C.62 * ************************************************************ ******** RTE DRIVER 62 FOR 4271A DIGITAL LCR METER ********* ************************************************************ * PURPOSE: * DRIVER <62> IS A SPECIAL DRIVER FOR THE HP 4271A DIGITAL * LCR METER CONFIGURED WITH OPTIONS 1 AND 5. THE DRIVER * OPERATES UNDER CONTROL OF THE I/O MODULE OF THE REAL * TIME EXECUTIVE (RTE). THE SETLC AND MEALC FORTRAN CALLS * ARE USED TO CONTROL THE 4271A DRIVER 62. THESE CALLS PRE- * FORM THE AUTOMATIC PROGRAMMING OF THE RANGE,FUNCTION, * AND BIAS VOLTAGE AND AUTOMATIC MEASURING OF THE CAPACIT- * ANCE-INDUCTANCE AND CONDUCTANCE-RESISTANCE-DISSIPATION * FACTOR VALUES. THE PROGRAMMED VALUES (SETLC) AREN'T SET * UNTIL A MEASURING (MEALC) COMMAND IS RECIEVED BY THE * DRIVER. THE FRONT PANEL SWITCHES MUST BE SET IN THE * REM POSITIONS FOR CORRECT OPERATION WITH THIS DRIVER. * I.62 AND C.62 ARE THE ENTRY POINTS TO THE INITIATOR AND * CONTINUATOR SECTIONS RESPECTIVELY. * ************************************************************ * INITIATOR SECTION: * THE INITIATOR SECTION IS CALLED FROM I/O CONTROL TO SET o* THE 4271A FOR A READ (MEALC) OR WRITE (SETLC) REQUEST. * ON RETURN FROM I.62, * (A)=0, OPERATION INITIATED * ************************************************************ * COMPLETION SECTION: * THE COMPLETION SECTION IS CALLED BY CENTRAL INTERRUPT * CONTROL. THE READ OR WRITE REQUEST CONTINUES UNTIL COMP- * PLETION. ON RETURN FROM C.62, * **COMPLETION RETURN** * (A)=0, SUCCESSFUL COMPLETION WITH * (B)=7 FOR WRITE (SETLC) * =18 FOR READ (MEALC) * * **CONTINUATION RETURN** * REGISTERS ARE MEANINGLESS * ************************************************************ * DRIVER ENTRY: * THE DIRECT CALLS TO ENTER THE DRIVER ARE AS FOLLOWS, * FORTRAN CALLS: * * CALL SETLC(ILU,IRNG,IFCM,V) * ILU (INTEGER) - DEVICE REFERENCE TABLE # (LU#) * IRNG (INTEGER) - RANGE OF 4271A (0-4) * IFCM (INTEGER) - FUNCTION OF 4271A (0-3) * V (FLOATING POINT) - VOLTAGE BIAS (0-39.9 VOLTS) * * NOTE: SEE 4271A OPERATING MANUAL FOR COMPLETE * EXPLAINATION OF IRNG,IFCM, AND V INPUT VALUES. * * CALL MEALC(ILU,CL,GR,IERR) * * ILU (INTEGER) - SAME AS SETLC CALL * CL (FLOATING POINT) - RETURNED CAPACITANCE(F) OR * INDUCTANCE(H) VALUE * GR (FOLATING POINT) - RETURNED CONDUCTANCE(MHOS), RES- * ISTANCE(OHMS), OR DISSIPATION * FACTOR VALUE * IERR (INTEGER) - NON-FATAL ERROR #0 (0= NO ERROR) * * NOTE: IF AN ERROR IS DETECTED THE RETURNED CL AND GR * VALUES MAY BE INVALID. ALWAYS BEWARE OF NEGATIVE * VALUES. * ************************************************************ * ERROR CODES: * **************** * FATAL ERROR: * * LC 1 - INVALID RANGE (CHECK SETLC CALL) * LC 1 - INVALID FUNCTION (CHECK SETLC CALL) * LC 3 - INVALID BIAS (CHECK SETLC CALL) * LC 4 - NO (-) RECIEVED ON EXPONENT OF DATA VALUE * (CHECK 4271A OPERATION) * LC 5 - NO (,) RECIEVED AFTER C/L DATA (CHECK 4271A * OPERATION) * LC 6 - NO (;) RECIEVED AFTER G/R DATA (CHECK 4271A * OPERATION) * *************** * NON-FATAL ERROR: * * LC 20 - "UNBAL" (CHECK 4271A PANEL SWITCHES OR SETLC * CALL) * LC 21 - EXPONENT <-38 RECIEVED (CHECK CONNECTIONS AND * 4271A OPERATION) * LC 22 - "OUT OF RANGE" (CHECK 4271A PANEL SWITCHES * OR SETLC CALL) * LC 23 - "D - G,R (RESET FUNCTION SWITCH IN SETLC CALL) * ************************************************************ ************ WRITTEN BY: GRANT SUMMERS 4/30/74 ************* ************************************************************ * * INITIATION SECTION * I.62 NOP ENTRY POINT JSB SETIO CONFIGURE I/O INSTRUCTIONS * LDB EQT8,I GET BUFFER LENGTH CMB,INB SET NEG. STB EQT9,I STORE AS COUNTER * CLA CLEAR I/O OF 4271A IO1 OTA 0 CLEAR I/O LINE TO 4271A LDA EQT6,I REQUEST CODE CPA =B1 READ? JMP IO2 YES LDA EXIT NO,WRITE-SET C.61 STA C.62 TO I.62 RETURN JMP WRITE GO TO COMPLETION SECTION IO2 STC 0,C INITIATE MEASURE * IEXIT CLA A=0 STATUS JMP I.62,I OPERATION INITIATED * ************************************************************ * * COMPLETION SECTION * C.62 NOP ENTRY POINT LDB EQT1,I DID SPURIOUS SZB,RSS INTERRUPT OCCUR JMP SPURI YES IGNORE * JSB SETIO CONFIGURE I/O INSTRUCTIONS * LDA EQT6,I REQUEST CODE CPA =B1 READ? JMP IO5 YES * WRITE LDB EQT7,I NO,WRITE-GET ADDRESS LDA 1,I GET BIT OUTPUT VALUE IOR I/O SET I/O BIT IO3 OTA 0 OUTPUT TO 4271A IO4 STC 0,C READY 4271A ISZ EQT7,I INCREMENT BUFFER ADDRESS ISZ EQT9,I INCREMENT COUNTER,DONE? JMP SPURI CONTINUE * * COMPLETION RETURN * COMP CLC 0 CLEAR CON8TROL LDB EQT8,I SET B= TRANS. LOG CLA SET A=0,STATUS JMP C.62,I **COMPLETION RETURN ** * * CONTINUATION RETURN * SPURI ISZ C.62 SET (P+2) RETURN JMP C.62,I **CONTINUATION RETURN** * IO5 LIA 0 GET DATA WORD AND MASK MASK IT LDB EQT7,I BUFFER ADDRESS STA 1,I STORE DATA ISZ EQT7,I INCREMENT BUFFER ADDRS ISZ EQT9,I INCREMENT COUNTER,DONE? RSS JMP COMP YES IO6 STC 0,C NO,READY 4271A JMP SPURI CONTINUE * * SET INPUT/OUTPUT INSTRUCTIONS * SETIO NOP ENTRY IOR LIA CONFIGURE LIA SC(SC= SELECT CODE) STA IO5 ADA =B100 CONFIGURE OTA SC STA IO1 STA IO3 ADA =B1100 CONFIGURE STC SC,C STA IO2 STA IO4 STA IO6 ADA =B3000 CONFIGURE CLC SC,C STA COMP JMP SETIO,I * * CONSTANTS * I/O OCT 20 OUTPUT TO 4271A SET MASK OCT 17 DATA VALUE MASK LIA LIA 0 EXIT DEF IEXIT-1 * * SYSTEM BASE PAGE COMMUNICATIONS * . EQU 1650B EQT1 EQU .+8 EQT6 EQU .+13 EQT7 EQU .+14 EQT8 EQU .+15 EQT9 EQU .+16 END $y  22681-18040 1506 SC 0922 PAYROLL PACKAGE              H0109 V-FTN4 PROGRAM PAY1,3 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3) DATA IDSET/2HDA,2HTA,2H / DATA IPATH/2HEM,2HPN,2HO / DATA ISEG/2HSE,2HG1,2H /,JSEG/2HSE,2HG2,2H / IMODE(1)=3 IBASE(1)=2HPA IBASE(2)=2HYE IBASE(3)=2H ILEVL(1)=2HMA ILEVL(2)=2HIN ILEVL(3)=2H ISCOD(1)=35 CALL DBOPN(IBASE,ILEVL,ISCOD,IMODE,ISTAT) C*** *** C*** OPEN DATA BASE *** C**************************** IF (ISTAT(1) .EQ. 0) GO TO 6 WRITE(1,5) 5 FORMAT("ERROR ON DBPON") PAUSE 6 WRITE(1,1) 1 FORMAT("DO YOU WANT: 1 PAYROLL DATA EDIT RTN",/, 114X,"2 MAIN PAYROLL RUN",/,"?",/,"INDEX 1 OR 2",/) READ(1,*)I1 I1=I1-1 C *** IF I1 = 0 NOW , THIS IS THE EDIT DATA RTN *** IF (I1 .EQ. 0) GO TO 8 I1=I1-1 IF (I1 .EQ. 0) GO TO 10 WRITE(1,7) 7 FORMAT("** INVALID CODE,REINDEX RTN. REQRD.",/) GO TO 6 8 CALL EXEC(8,ISEG) GO TO 6 10 CALL EXEC(8,JSEG) GO TO 6 END LR PROGRAM SEG1,5 C ******************* C *** PAYROLL DATA EDIT RUN *** C ***************************** DIMENSION IMPNO(2),JMPNO(2),ISALC(1),IORD(2),ITA5(2) DIMENSION IT2(2),IRATE(3),ITALL(2),ISTAT(4),IDSET(3) DIMENSION IMODE(1),IBUF(67),INTAL(2),IARG(2),JERR(1) DIMENSION ITEST(1),IE(1),IDWN1(3),IDWN2(3),IDWN3(3) DIMENSION IDWN4(3),IDWN5(3),ISHFT(1) DIMENSION JA(3),JB(4),JC(4),IA(3),IB(3),IC(3),ID(4) DIMENSION IG(4),IF(4),JD(4),IH(4) JA(1)=2HZZ JA(2)=2HZ9 JA(3)=2H.9 JD(1)=2HZZ JD(2)=2HZZ JD(3)=2HZ9 JD(4)=2H.9 JB(2)=2H.Z JB(3)=2HZZ JB(4)=2HZZ JB(1)=2H$9 JC(1)=2H$$ JC(2)=2H$$ JC(3)=2H9. JC(4)=2H99 DO 12 I=1,3 IDWN1(I)=2H00 IDWN2(I)=2H00 IDWN3(I)=2H00 IDWN4(I)=2H00 IDWN5(I)=2H00 12 CONTINUE WRITE(1,15) 15 FORMAT("PAYROLL DATA EDIT RUN",/,27("-"),//, 1"INSERT DATA TAPE IN PT.READER PLEASE",/, 2"TYPE :GO TO START EDIT",/) PAUSE1 C *** PROGRAM SUSPENDS TILL ACTIVATED BY OPERATOR *** JERR=0 16 WRITE(6,18) 18 FORMAT(//,"EMPL.NO SALCD SHFTS ORD HRS T.5 HRS T2 HRS", 1" RATE T.ALLCE NT.ALLCE",/,72("-"),/) 20 IMPNO(1)=2H99 IMPNO(2)=2H99 READ(5,30)JMPNO,ISALC,IORD,ITA5,IT2,IRATE,ITALL,INTAL,ISHFT 30 FORMAT(2A2,A2,2A2,2A2,2A2,3A2,2A2,2A2,A2) IF (JMPNO .EQ. IMPNO) GO TO 75 C *** ABOVE TESTS FOR LAST RECORD "9999" IN A2 FORMAT **** IMODE=4 IARG=JMPNO IARG(2)=JMPNO(2) C =*= IARG = KEY= EMPLYEE NO *** C ***************************** ISTAT(1)=0 IDSET(1)=2HK1 IDSET(2)=2H IDSET(3)=2H CALL DBGET(IDSET,IMODE,ISTAT,IBUF,IARG) IF (ISTAT(1) .EQ. 0) GO TO 45 WRITE(6,40)JMPNO 40 FORMAT(2X,2A2,2X,"EMPLOYEE NOT YET ON MASTERFILE") JERR=JERR+1 C *** INCREASES ERROR COUNT BY 1 *** GO TO 20 45 IF (ISALC .LT. 2H07) GO TO 55  WRITE(6,50)JMPNO,ISALC 50 FORMAT(2X,2A2,8X,A2,2X,"**INVALID CODE,SHLD BE 0-6**",/) JERR=JERR+1 GO TO 20 55 ID(4)=JB(4) IG(4)=JC(4) IF(4)=JC(4) DO 56 I=1,3 IA(I)=JA(I) IB(I)=JA(I) IC(I)=JA(I) ID(I)=JB(I) IG(I)=JC(I) IF(I)=JC(I) 56 CONTINUE CALL SEDIT(IORD,1,4,IA,1,6) CALL SEDIT(ITA5,1,4,IB,1,6) CALL SEDIT(IT2,1,4,IC,1,6) CALL SEDIT(IRATE,1,6,ID,1,8) CALL SEDIT(ITALL,1,4,IG,1,8) CALL SEDIT(INTAL,1,4,IF,1,8) WRITE(6,57)JMPNO,ISALC,ISHFT,IA,IB,IC,ID,IG,IF 57 FORMAT(2X,2A2,3X,A2,3X,A2,4X,3A2,2X,3A2,2X,3A2,2X,4A2,4A2,4A2) I1=0 IE=0 CALL SADD(IORD,1,4,IDWN1,1,6,IE) I1=I1+1 IF (IE .EQ. 0) GO TO 65 58 WRITE(6,60)I1 60 FORMAT(2X,I5," ERROR ,OVERFLOW IN DWNTOTS,CALL PROGRAMER") PAUSE2 65 CALL SADD(ITA5,1,4,IDWN2,1,6,IE) I1=I1+1 IF (IE .EQ. 0) GO TO 67 GO TO 58 67 CALL SADD(IT2,1,4,IDWN3,1,6,IE) I1=I1+1 IF (IE .EQ. 0) GO TO 69 GO TO 58 69 CALL SADD(ITALL,1,4,IDWN4,1,6,IE) I1=I1+1 IF (IE .EQ. 0) GO TO 70 GO TO 58 70 CALL SADD(INTAL,1,4,IDWN5,1,6,IE) I1=I1+1 IF (IE .EQ. 0) GO TO 20 GO TO 58 C *** READS NEXT EMPLYEE DATA OR MULTIPLE LINE FOR SAME EMPLOYEE ** C *** UP TO A MAX. OF 6 LINES PER EMPLOYEE. ********************* 75 DO 76 I=1,4 ID(I)=JD(I) IH(I)=JD(I) ISTAT(I)=JD(I) IG(I)=JC(I) IF(I)=JC(I) 76 CONTINUE CALL SEDIT(IDWN1,1,6,ID,1,8) CALL SEDIT(IDWN2,1,6,IH,1,8) CALL SEDIT(IDWN3,1,6,ISTAT,1,8) CALL SEDIT(IDWN4,1,6,IG,1,8) CALL SEDIT(IDWN5,1,6,IF,1,8) WRITE(6,80)ID,IH,ISTAT,IG,IF 80 FORMAT(//,72("-"),/,"HASH TOTALS",9X,4A2,4A2,4A2,10X,4A2, 14A2,//,"EDIT COMPLETE",/,13("-"),/) IF (JERR .EQ. 0) GO TO 85 WRITE(6,95)JERR GO TO 100 85 WRITE(6,90) 90 FORMAT("NO ERRORS") 95 FORMAT(I5,2X,"ERRORS DETECTED",///) PAUSE3 100 CALL EXEC(29) CALL PAY1 END PROGRAM SEG2,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3) DIMENSION JAMA(3),JAMB(3) 200 WRITE(1,210) 210 FORMAT("INPUT PAYROLL CODE : 1 OR 9",/ 1" 1 DENOTES AUTO PAYROLL FROM PAPER TAPE INPUT",/ 2" 9 DENOTES MANUAL PAYROLL AND INDEXING OF ALL DATA",/) READ(1,*)I1 I1=I1-1 IF (I1 .EQ. 0) GO TO 220 JAMA(1)=2HSE JAMA(2)=2HG3 JAMA(3)=2H CALL EXEC(8,JAMA) GO TO 230 220 JAMB(1)=2HSE JAMB(2)=2HG3 JAMB(3)=2H9 CALL EXEC(8,JAMB) 230 CALL PAY1 END PROGRAM SEG3,5 COMMON IMPNO(2),IORD(2),ITA5(2),IT2(2),IRATE(3),ITALL(2) COMMON INTAL(2),INAME(9),IDEPT(1),IGRTX(3),IGROS(3) COMMON ICDA(4),IAMTA(8),IAMTB(2) COMMON IAMTC(2),IAMTD(2),IPAYE(2),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(3),IB(3),IC(3),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),JT(4) COMMON JG(4),IERR(1),JH(4),JI(4),IN(3),IO(3),JK(4),JL(4) COMMON JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),ISFTD(2) DIMENSION IDWN2(4),IDWN3(4),IDWN4(4),IWRK4(2),INDAC(1) DIMENSION IWRK5(2),IOREA(3),IEXEA(4) DIMENSION ITPAY(3) JL(1)=2H$9 JL(2)=2H.Z JL(3)=2HZZ JL(4)=2HZZ IN(1)=2HZZ IN(2)=2HZ9 IN(3)=2H.9 IO(1)=2H$$ IO(2)=2H9. IO(3)=2H99 JK(1)=2H$$ JK(2)=2H$$ JK(3)=2H9. JK(4)=2H99 C *** THE ABOVE ITEMS "JK" TO "JL" DEFINE THE EDIT MASKS *** C *** WHICH PROVIDE THE CORRECT PUNCTUATION OF AMOUNTS *** 235 WRITE(1,240) 240 FORMAT("INDEX THE AMOUNTS AS REQUESTED BY THE PROGRAM,",/, 1"WITHOUT PUNCTUATION,IE $2,40 AS 0240 ETC,",/) WRITE(1,245) 245 FORMAT("EMPL.NO -4-") READ(1,250)IMPNO 250 FORMAT(2A2) WRITE(1,255) 255 FORMAT("NAME -18-") READ(1,260)INAME 260 FORMAT(9A2) WRITE(1,265) 265 FORMAT("DEPT.CODE -2-") READ(1,270)IDEPT 270 FORMAT(A2) WRITE(1,275) 275 FORMAT("ORDINARY HOURS -4-") READ(1,250)IORD WRITE(1,280) 280 FORMAT("T.5 HOURS -4-") READ(1,250)ITA5 WRITE(1,285) 285 FORMAT("T2 HOURS -4-") READ(1,250)IT2 WRITE(1,290) 290 FORMAT("HOURLY RATE -6-") READ(1,295)IRATE 295 FORMAT(3A2) WRITE(1,300) 300 FORMAT("TAXABLE ALLCES -4-") READ(1,250)ITALL WRITE(1,305) 305 FORMAT("NONTAXABLE ALLCES -4-") READ(1,250)INTAL WRITE(1,310) 310 FORMAT("4 DED. CODES IN A ROW -8-2 DIGTS EA") READ(1,315)ICDA WRITE(1,312) 312 FORMAT("4 AMTS IN A ROW ,4 DIGTS EA") READ(1,320)IAMTA 315 FORMAT(4A2) 320 FORMAT(8A2) WRITE(1,325) 325 FORMAT("PAYE TAX -4-") READ(1,250)IPAYE INDAC=0 ITDED(1)=2H00 ITDED(2)=2H00 ITDED(3)=2H00 DO 330 I=1,4 0 IERR=0 CALL SADD(IAMTA,4*I-3,4*I,ITDED,1,6,IERR) 330 CONTINUE CALL SADD(IPAYE,1,4,ITDED,1,6,IERR) IF (IERR .EQ. 0) GO TO 333 331 WRITE(1,332) 332 FORMAT("ERROR ON DEDUCTION ADDITION") PAUSE5 333 IWRK4(1)=2H01 IWRK4(2)=2H50 JM(9)=IWRK4(1) JM(10)=IWRK4(2) IERR=0 CALL SMPY(ITA5,1,4,JM,17,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 336 WRITE(1,334)INDAC 334 FORMAT(I5," ERRORS ON MULTIPLY") 335 FORMAT(3A2) 336 IWRK5(1)=JM(8) IWRK5(2)=JM(9) C ***T.5 HRS TIMES 01.50 STORED IN IWRK5(2WORDS) *** IWRK4(1)=2H02 IWRK4(2)=2H00 JM(9)=IWRK4(1) JM(10)=IWRK4(2) IERR=0 CALL SMPY(IT2,1,4,JM,17,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 337 GO TO 334 337 IERR=0 CALL SADD(IWRK5,1,4,JM,13,18,IERR) IF (IERR .EQ. 0) GO TO 338 GO TO 331 338 IWRK4(1)=JM(8) IWRK4(2)=JM(9) C ***EXT OT HRS TO BE PAID NOW IN IWRK4(1AND2) IERR=0 JM(8)=IRATE(1) JM(9)=IRATE(2) JM(10)=IRATE(3) CALL SMPY(IWRK4,1,4,JM,15,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 339 GO TO 334 339 IOTEA(1)=JM(6) IOTEA(2)=JM(7) IOTEA(3)=JM(8) WRITE(1,340) 340 FORMAT("ORDINARY HRS YTD -6-") READ(1,335)IHOTD WRITE(1,345) 345 FORMAT("OT HRS YTD -6-") READ(1,335)IHOTT WRITE(1,350) 350 FORMAT("GROSS TAXABLE YTD -6-") READ(1,335)IGRTD WRITE(1,355) 355 FORMAT("SUPER YTD -6-") READ(1,335)ISUPER WRITE(1,360) 360 FORMAT("PAYE TAX YTD -6-") READ(1,335)ITATD WRITE(1,365) 365 FORMAT("SHIFTS YTD -4-") READ(1,250)ISFTD ITPAY(1)=2HSE ITPAY(2)=2HG3 ITPAY(3)=2H3 CALL EXEC(8,ITPAY) CALL PAY1 END PROGRAM SEG33,5 COMMON IMPNO(2),IORD(2),ITA5(2),IT2(2),IRATE(3),ITALL(2) COMMON INTAL(2),INAME(9),IDEPT(1),IGRTX(3),IGROS(3) COMMON ICDA(4),IAMTA(8),IAMTB(2) COMMON IAMTC(2),IAMTD(2),IPAYE(2),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(3),IB(3),IC(3),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),JT(4) COMMON JG(4),IERR(1),JH(4),JI(4),IN(3),IO(3),JK(4),JL(4) COMMON JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),ISFTD(2) DIMENSION IDWN2(4),IDWN3(4),IDWN4(4),IWRK4(2),INDAC(1) DIMENSION IWRK5(2),IOREA(3),IEXEA(4) DIMENSION IPSEG(3) JL(1)=2H$9 JL(2)=2H.Z JL(3)=2HZZ JL(4)=2HZZ IN(1)=2HZZ IN(2)=2HZ9 IN(3)=2H.9 IO(1)=2H$$ IO(2)=2H9. IO(3)=2H99 JK(1)=2H$$ JK(2)=2H$$ JK(3)=2H9. JK(4)=2H99 C *** THE ABOVE ITEMS "JK" TO "JL" DEFINE THE EDIT MASKS *** C *** WHICH PROVIDE THE PCORRECT PUNCTUATION OF AMTS *** DO 370 I=1,3 IA(I)=IN(I) IB(I)=IN(I) IC(I)=IN(I) ID(I)=IO(I) IE(I)=IO(I) IF(I)=IO(I) IG(I)=IO(I) IH(I)=IO(I) IJ(I)=IO(I) IK(I)=IO(I) IL(I)=IO(I) IM(I)=IO(I) 370 CONTINUE DO 375 I=1,4 JA(I)=JK(I) JB(I)=JK(I) JC(I)=JK(I) JD(I)=JK(I) JE(I)=JK(I) JF(I)=JK(I) JG(I)=JK(I) JH(I)=JK(I) JI(I)=JK(I) JP(I)=JK(I) JR(I)=JK(I) JS(I)=JK(I) 375 CONTINUE CALL SEDIT(IORD,1,4,IA,1,6) CALL SEDIT(ITA5,1,4,IB,1,6) CALLSEDIT(IT2,1,4,IC,1,6) CALL SEDIT(ITALL,1,4,ID,1,6) CALL SEDIT(INTAL,1,4,IE,1,6) CALL SEDIT(IAMTA,1,4,IF,1,6) CALL SEDIT(IAMTA,5,8,IG,1,6) CALL SEDIT(IAMTA,9,12,IH,1,6) CALL SEDIT(IAMTA,13,16,IJ,1,6) CALL SEDIT(IPAYE,1,4,IK,1,6) CALL SEDIT(ITDED,1,6,JA,1,8) CALL SEDIT(IHOTD,1,6,JB,1,8) CALL SEDIT(IHOTT,1,6,JC,1,8) CALL SEDIT(IGRTD,1,6\,JD,1,8) CALL SEDIT(ISUPER,1,6,JE,1,8) CALL SEDIT(ITATD,1,6,JF,1,8) JN(1)=JL(1) JN(2)=JL(2) JN(3)=JL(3) JN(4)=JL(4) CALL SEDIT(IRATE,1,6,JN,1,8) JM(8)=IRATE(1) JM(9)=IRATE(2) JM(10)=IRATE(3) IERR=0 CALL SMPY(IORD,1,4,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 410 WRITE(1,400) 400 FORMAT("ERROR ON MULTIPLY") PAUSE4 410 JO(1)=2H00 JO(2)=2H00 JO(3)=2H00 JO(4)=2H00 IOREA(1)=JM(6) IOREA(2)=JM(7) IOREA(3)=JM(8) CALL SEDIT(IOREA,1,6,JH,1,8) IERR=0 CALL SADD(IOREA,1,6,JO,1,8,IERR) CALL SADD(IOTEA,1,6,JO,1,8,IERR) IWRK3(1)=JO(2) IWRK3(2)=JO(3) IWRK3(3)=JO(4) CALL SEDIT(IWRK3,1,6,JI,1,8) CALL SEDIT(IOTEA,1,6,JP,1,8) WRITE(6,430)IMPNO,INAME,IDEPT 430 FORMAT(3X,2A2,6X,9A2,3X,A2,////) WRITE(6,435)IA,IB,IC,JN,JH,JP,JI 435 FORMAT(3A2,3A2,3A2,3X,4A2,3X,4A2,2X,4A2,3X,4A2,8(/)) IERR=0 CALL SADD(ITALL,1,4,IWRK3,1,6,IERR) JT(1)=2H00 JT(2)=2H00 JT(3)=INTAL(1) JT(4)=INTAL(2) C *** ABOVE ADDS T,ALLLCES TO EXT.EARNINGS,GIVING GROSS TAXABLE ** CALL SEDIT(IWRK3,1,6,JR,1,8) IERR=0 CALL SADD(IWRK3,1,6,JT,1,8,IERR) CALL SEDIT(JT,3,8,JS,1,8) WRITE(6,440)ID,JR,IE,JS 440 FORMAT(2X,3A2,4X,4A2,7X,3A2,22X,4A2,///) WRITE(6,450)ICDA(1),IF,ICDA(2),IG,ICDA(3),IH,ICDA(4),IJ,IK,JA 450 FORMAT(4(A2,X,3A2,2X),3X,3A2,4X,4A2,///) C *** 450 FORMAT LINE PRINTS CODE AND DEDS.ON PAYSLIP *** IERR=0 CALL SSUB(ITDED,1,6,JT,1,8,IERR) IF (IERR .EQ. 0) GO TO 470 WRITE(1,460) 460 FORMAT("ERROR ON SUBTRACT") PAUSE6 470 CALL SEDIT(JT,3,8,JG,1,8) WRITE(6,480)JB,JC,JD,JE,ISFTD,JF,JG 480 FORMAT(4A2,2X,4A2,2X,4A2,4X,4A2,2X,2A2,4X,4A2,2X,4A2,10(/)) WRITE(1,490) 490 FORMAT("DO YOU WANT ANOTHER MANUAL PAYSLIP ? YES OR NO ") READ(1,500)IERR(1) INDAC(1)=2HYE \y500 FORMAT(A2) IF (INDAC(1)-IERR(1) .EQ. 0) GO TO 510 CALL EXEC(29) CALL PAY1 STOP 510 IPSEG(1)=2HSE IPSEG(2)=2HG3 IPSEG(3)=2H CALL EXEC(8,IPSEG) CALL PAY1 END PROGRAM SEG39,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3) IMODE(1)=3 IBASE(1)=2HPA IBASE(2)=2HYE IBASE(3)=2H ILEVL(1)=2HMA ILEVL(2)=2HIN ILEVL(3)=2H ISCOD(1)=35 CALL DBCLS(0,ISTAT) WRITE(1,100) 100 FORMAT("LOAD FACTORS PAPER TAPE") PAUSE2 READ(5,110)JLEVA READ(5,112)JAMTA READ(5,114)JRATE 110 FORMAT(54A2) 112 FORMAT(57A2) 114 FORMAT(38A2) WRITE(1,5) 5 FORMAT("MAIN PAYROLL TESTING ROUTINE",/, 1"INSERT PAPERTAPE,TYPE :GO",//) PAUSE1 ISEG(1)=2HSE ISEG(2)=2HG4 ISEG(3)=2H ISTOR(1)=2H00 ISTOR(2)=2H00 CALL EXEC(8,ISEG) CALL PAY1 END PROGRAM SEG4,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1ͳ<:6),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) c< COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IERR(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),ICOM(3) 605 READ(5,610)JMPNO,ISALC,IORD,ITA5,IT2,IRATE,ITALL,INTAL,ISHFT 610 FORMAT(2A2,A2,3(2A2),3A2,2(2A2),A2) IMODE(1)=3 IBASE(1)=2HPA IBASE(2)=2HYE IBASE(3)=2H ILEVL(1)=2HMA ILEVL(2)=2HIN ILEVL(3)=2H ISCOD(1)=35 CALL DBOPN(IBASE,ILEVL,ISCOD,IMODE,ISTAT) IMPNO(1)=2H99 IMPNO(2)=2H99 IF (JMPNO .EQ. IMPNO) GO TO 618 C ** ABOVE TESTS FOR EMPL.NO 9999 ,PROGRAM WILL THEN *** C ** PRINT TOTALS BY DEPT AND NOTE AND COIN ANALYSIS *** C ** WHICH WAS ACCUMULATED ON DISC FILE ***************** C ** NOTE: C **ISALC CAN BE 0-6 ** C **0 DENOTES STANDARD SALARY *** C ** 1 ,, ORD /OT HRS ONE LINE ONLY *** C ** 2 ,, ,, ,, ,, TWO LINES ONLY ** C **ETC. UP TO 6 LINES OF HRS AND RATES ** C ********************************************* C ** ISALC = 2H00 INDICATES NO HRS,BUT STD. SALARY APPLIES * IF (ISTOR(1) .EQ. 2H00) GO TO 620 IF (ISTOR(2) .EQ. JMPNO(2)) GO TO 649 GO TO 620 618 CALL DBCLS(0,ISTAT) WRITE(1,619) 619 FORMAT("END OF RUN") STOP PAUSE77 620 ISTOR(1)=JMPNO(1) ISTOR(2)=JMPNO(2) IWRK6(1)=2H00 IWRK6(2)=2H00 IWRK6(3)=2H00 JANS=8 C ** ISTOR RECIEVES EMPNO THIS PAY FOR COMPARISON WITH ** C ** NEXT EMPLOYEE INPUT ******************************** IARG=JMPNO IARG(2)=JMPNO(2) C ** IARG = KEY = EMPLOYEE NO ** ISTAT(1)=0 IPATH(1)=2HEM IPATH(2)=2HPN IPATH(3)=2HO IMODE=1 ISTAT(1)=0 IDSET(1)=2HDA IDSET(2)=2HTA IDSET(3)=2H CALL DBFND(ISTAT,IDSET,IPATH,IARG) IF (ISTAT(1) .EQ. 0) GO TO 625 PAUSE3 625 CALL DBGET(IDSET,IMODE,ISTAT,IBUF,IARG) IF (ISTAT(1) .EQ. 0) GO TO 635 WRITE(1,630)JMPNO 630 FORMAT(2X,2A2,2X,"EMPL.NO NOT ON MASTERFILE",/, 1"NEXT EMPLOYEE WILL BE READ",/,20("-"),//) ISTOR(1)=2H00 ISTOR(2)=2H00 PAUSE6 GO TO 605 C ** WHEN EMPL. IS NOT ON MASTER DISC FILE,INPUT DATA FOR ** C ** THAT EMPLOYEE IS IGNORED AND NEXT EMPL. DATA IS READ ** C ************************************************************ 640 FORMAT(36A2," IS CONTENTS OF BUFFER",/) 635 DO 642 I=1,9 INAME(I)=IBUF(I+8) 642 CONTINUE IDEPT(1)=IBUF(8) WRITE(6,644)JMPNO,INAME,IDEPT 644 FORMAT(3X,2A2,6X,9A2,4X,A2,////) 648 IF (IRATE(1) .EQ. 2H00) GO TO 650 GO TO 660 649 JANS=JANS-1 GO TO 648 650 IRATE(1)=IBUF(22) IRATE(2)=IBUF(23) IRATE(3)=IBUF(24) C ** ABOVE GETS RATE FROM EMPL.RECORD IN BUFFER *** 660 IF (ITALL(1) .EQ. 2H00) GO TO 665 GO TO 670 665 IF (ITALL(2) .EQ. 2H00) GO TO 667 GO TO 670 667 ITALL(1)=IBUF(25) ITALL(2)=IBUF(26) 670 IF (INTAL(1) .EQ. 2H00) GO TO 675 GO TO 680 675 IF (INTAL(2) .EQ. 2H00) GO TO 677 GO TO 680 677 INTAL(1)=IBUF(27) INTAL(2)=IBUF(28) 680 ICDA(1)=IBUF(29) ICDA(2)=IBUF(30) ICDA(3)=IBUF(31) ICDA(4)=IBUF(32) DO 690 I=1,8 IAMTA(I)=IBUF(I+32) 690 CONTINUE ITDED(1)=2H00 ITDED(2)=2H00 ITDED(3)=2H00 INDAC=0 DO 700 I=1,4 IERR=0 CALL SADD(IAMTA,4*I-3,4*I,ITDED,1,6,IERR) INDAC=INDAC+1 700 CONTINUE JSEG(1)=2HSE JSEG(2)=2HG4 JSEG(3)=2H4 CALL EXEC(8,JSEG) CALL PAY1 END PROGRAM SEG44,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),IS'pUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IERR(1) DIMENSION ISEG(3),JSEG(3),ICOM(3) IERR=0 IF (IERR .EQ. 0) GO TO 710 702 WRITE(1,704)INDAC,IERR 704 FORMAT(I5," ADD ERROR",/,"IERR=",I5) PAUSE1 710 IF (ISALC .EQ. 2H00) GO TO 760 JM(9)=2H01 JM(10)=2H50 CALL SMPY(ITA5,1,4,JM,17,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 720 713 WRITE(1,715)INDAC 715 FORMAT(I5," ERRORS ON MULTIPLY",/) PAUSE 2 720 IWRK5(1)=JM(8) IWRK5(2)=JM(9) C ** T.5 HOURS TIMES 1.5 STORED IN IWRK5(2 WORDS) *** JM(9)=2H02 JM(10)=2H00 CALL SMPY(IT2,1,4,JM,17,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 725 GO TO 713 725 JM(1)=2H00 JM(2)=2H00 CALL SADD(IWRK5,1,4,JM,1,18,IERR) IF (IERR .EQ. 0) GO TO 730 GO TO 702 730 IWRK4(1)=JM(8) IWRK4(2)=JM(9) C =* EXT.OT HRS TO BE PAID ,NOW IN IWRK4(1 AND 2) *** JM(8)=IRATE(1) JM(9)=IRATE(2) JM(10)=IRATE(3) CALL SMPY(IWRK4,1,4,JM,15,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0 ) GO TO 740 GO TO 713 740 IOTEA(1)=JM(6) IOTEA(2)=JM(7) IOTEA(3)=JM(8) INDAC=0 C ** ORD HRS UPDATE **** C ********************** JM(8)=IBUF(44) JM(9)=IBUF(45) JM(10)=IBUF(46) CALL SADD(IORD,1,4,JM,15,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 750 GO TO 702 750 IBUF(44)=JM(8) IBUF(45)=JM(9) IBUF(46)=JM(10) IHOTD(1)=JM(8) IHOTD(2)=JM(9) IHOTD(3)=JM(10) JM(8)=IBUF(47) JM(9)=IBUF(48) JM(10)=IBUF(49) CALL SADD(ITA5,1,4,JM,15,20,IERR) CALL SADD(IT2,1,4,JM,15,20,IERR) C ** ACTUAL OT HRS ADDED TO OTHRS YTD *** C *************************************** IBUF(47)=JM(8) IBUF(48)=JM(9) IBUF(49)=JM(10) IHOTT(1)=JM(8) IHOTT(2)=JM(9) IHOTT(3)=JM(10) INDAC=0 IERR=0 C ** UPDATING OF DEDUCTIONS YTD ,FOR DED. 1-4 **** C ************************************************ J=0 DO 760 I=1,10,3 J=J+1 JM(8)=IBUF(I+56) JM(9)=IBUF(I+57) JM(10)=IBUF(I+58) CALL SADD(IAMTA,4*J-3,4*J,JM,15,20,IERR) INDAC=INDAC+5 IBUF(I+56)=JM(8) IBUF(I+57)=JM(9) IBUF(I+58)=JM(10) IF (IERR .EQ. 0) GO TO 760 GO TO 702 760 CONTINUE C ** UPDATE SHIFTS YTD *** C ************************ JM(8)=2H00 JM(9)=IBUF(69) JM(10)=IBUF(70) CALL SADD(ISHFT,1,2,JM,17,20,IERR) IBUF(70)=JM(10) IBUF(69)=JM(9) IFSTD(1)=JM(9) IFSTD(2)=JM(10) JSEG(1)=2HSE JSEG(2)=2HG5 JSEG(3)=2H CALL EXEC(8,JSEG) CALL PAY1 END PROGRAM SEG5,5 C ** PRTS ORD, OT HRS,ORD,OT AND EXT. EARNINGS *** C ** ON PAYSLIP. C ************************************************ COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IERR(1) DIMENSION ISEG(3),JSEG(3) JL(1)=2H$9 JL(2)=2H.Z JL(3)=2HZZ JL(4)=2HZZ IN(1)=2HZZ IN(2)=2HZZ IN(3)=2HZ9 IN(4)=2H.9 IO(1)=2H$$ IO(2)=2H9. IO(3)=2H99 JK(1)=2H$$ JK(2)=2H$$ JK(3)=2H9. JK(4)=2H99 DO 700 I=1,3 ID(I)=IO(I) IE(I)=IO(I) IF(I)=IO(I) IG(I)=IO(I) IH(I)=IO(I) IJ(I)=IO(I) IK(I)=IO(I) IL(I)=IO(I) IM(I)=IO(I) 700 CONTINUE DO 710 I=1,4 IA(I)=IN(I) IB(I)=IN(I) IC(I)=IN(I) JB(I)=IN(I) JC(I)=IN(I) JA(I)=JK(I) JD(I)=JK(I) JE(I)=JK(I) JF(I)=JK(I) JG(I)=JK(I) JH(I)=JK(I) JI(I)=JK(I) JP(I)=JK(I) JR(I)=JK(I) JS(I)=JK(I) 710 CONTINUE CALL SEDIT(IORD,1,4,IA,1,8) CALL SEDIT(ITA5,1,4,IB,1,8) CALL SEDIT(IT2,1,4,IC,1,8) JN(1)=JL(1) JN(2)=JL(2) JN(3)=JL(3) JN(4)=JL(4) CALL SEDIT(IRATE,1,6,JN,1,8) INDAC=0 JM(8)=IRATE(1) JM(9)=IRATE(2) JM(10)=IRATE(3) IERR=0 CALL SMPY(IORD,1,4,JM,15,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0) GO TO 720 WRITE(1,715)INDAC 715 FORMAT("ERROR ON MULTIPLY,ERROR NO:",I5) PAUSE2 720 JO(1)=2H00 JO(2)=2H00 JO(3)=2H00 JO(4)=2H00 IF (ISALC .GT. 2H00) GO TO 725 JM(6)=IBUF(51) JM(7)=IBUF(52) JM(8)=IBUF(53) 725 IOREA(1)=JM(6) IOREA(2)=JM(7) IOREA(3)=JM(8) CALL SEDIT(IOREA,1,6,JH,1,8) CALL SADD(IOREA,1,6,JO,1,8,IERR) CALL SADD(IOTEA,1,6,JO,1,8,IERR) IWRK3(1)=JO(2) IWRK3(2)=JO(3) IWRK3(3)=JO(4) CALL SEDIT(IWRK3,1,6,JI,1,.8) CALL SEDIT(IOTEA,1,6,JP,1,8) WRITE(6,730)IA,IB,IC,JN,JH,JP,JI 730 FORMAT(4A2,4A2,4A2,X,4A2,2X,4A2,2X,4A2,3X,4A2) IERR=0 CALL SADD(IWRK3,1,6,IWRK6,1,6,IERR) C ** ADD EXT. EARNINGS TO TOTAL EXT EARNINGS *** C ********************************************** IF (IERR .EQ. 0) GO TO 735 WRITE(1,734) 734 FORMAT("ERROR ON EXT.TOTAL ADDITION",/) 735 IF (ISALC .EQ. 2H01) GO TO 740 C ** "ISALC" INDICATES IN ALL HRS LINES,THE TOTAL NO. OF ** C ** HRS AND RATES THAT ARE APPLICABLE TO THIS EMPLOYEE ** C ********************************************************** C ** NOTE: IF ISALC=4 ,ALL 4 INPUT RECORDS FOR THIS EMPL.* C ** HAVE ISALC CODE = 4. C ********************************************************** JSEG(1)=2HSE JSEG(2)=2HG4 JSEG(3)=2H C ** READS ANOTHER PAPERTAPE RECORD OF HRS AND RATE ***** CALL EXEC(8,JSEG) GO TO 750 740 ISEG(1)=2HSE ISEG(2)=2HG6 ISEG(3)=2H DO 745 I=1,JANS WRITE(6,742) 742 FORMAT(" ") 745 CONTINUE C ** CALLS PAYE TAX CALCULATION ROUTINE ***** CALL EXEC(8,ISEG) 750 CALL PAY1 END PROGRAM SEG6,5 C ** PAYE CALCULATION ROUTINE AS FROM : C ** C *********APRIL 1974 , FOR THE NEW ZEALAND REGION **** C ** C ***************************************************** COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IAB(1),IAC(1),IAE(2),IAF(2),IAG(1) DIMENSION IERR(1) DIMENSION IAD(1) DIMENSION ISEG(3),JSEG(3),ICOM(3) IAB(1)=2H12 IAC(1)=2H26 IAD(1)=2H52 C *** CONSTANTS 60 DOLLARS AND 120 DOLLARS FOR ROUNDING *** IAE(1)=2H60 IAE(2)=2H00 IAF(1)=2H01 IAF(2)=2H20 IAF(3)=2H00 IAG(1)=2H50 C ** PAY FR. IS IBUF(21) AND COULD BE:1,2,3 OR 4 **** IWRK1(1)=IBUF(21) IERR=0 CALL SADD(ITALL,1,4,IWRK6,1,6,IERR) C ** ADD TAXABLE ALLCES TO GROSS EXT. EARNINGS *** IF (IERR .EQ. 0)GO TO 710 PAUSE2 710 IGROS(1)=IWRK6(1) IGROS(2)=IWRK6(2) IGROS(3)=IWRK6(3) IF (ICDA(1) .EQ. 2H01) GO TO 720 C ** NOTE: IF ICDA IS NOT 01, THERE IS NO SUPER DED. THIS PAY *** ISUPER(1)=2H00 ISUPER(2)=2H00 ISUPER(3)=2H00 GO TO 730 720 IWRK4(1)=IBUF(33) IWRK4(2)=IBUF(34) ISUPER(1)=IBUF(57) ISUPER(2)=IBUF(58) ISUPER(3)=IBUF(59) C ** ISUPER NOW CONTAINS DED1 YTD=SUPER YTD *** C ** GETS SUPER DEDN. FROM BUFFER *** CALL SSUB(IWRK4,1,4,IWRK6,1,6,IERR) 730 IERR=0 INDAC=0 JM(8)=IWRK6(1) JM(9)=IWRK6(2) JM(10)=IWRK6(3) IF (IWRK1 .EQ. 2H01) GO TO 775 IF (IWRK1 .LT. 2H04) GO TO 755 C =*= MONTHLY PAY ** MINUS SUPER DEDN. ******* JM(10)=IAB(1) JM(9)=2H00 CALL SMPY(IWRK6,1,6,JM,19,20,IERR) INDAC=INDAC+1 IF (IERR .EQ. 0 ) GO TO 740 PAUSE3 C *** ANNUAL GROSS TAXABLE IS NOW IN JM,IT STILL NEEDS ROUNDING ** C *** BASED ON THE WEEKLY EARNINGS. *************** C ************************************************* IERR=0 740 CALL SDIV(IAD,1,2,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 776 PAUSE4 755 CALL SDIV(IWRK1,1,2,JM,15,20,IERR) 776 JM(10)=JM(9) JM(9)=JM(8) JM(8)=JM(7) JM(7)=2H00 815 IWRK4(1)=IBUF(19) IF (IERR .EQ. 0) GO TO 775 PAUSE55 C ***TEST FOR 60.00>AMT<120.00 *** 775 JSEG(1)=2HSE JSEG(2)=2HG8 JSEG(3)=2H CALL EXEC(8,JSEG) CALL PAY1 END PROGRAM SEG8,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IAB(1),IAC(1),IAE(2),IAF(2),IAG(1) DIMENSION IERR(1) DIMENSION IAD(1),JSTOR(3) DIMENSION ISEG(3),JSEG(3),ICOM(3) IAB(1)=2H12 IAC(1)=2H26 IAD(1)=2H52 C *** CONSTANTS 60 DOLLARS AND 120 DOLLARS FOR ROUNDING *** IAE(1)=2H60 IAE(2)=2H00 IAF(1)=2H01 IAF(2)=2H20 IAG(1)=2H50 IERR=0 ISEG(1)=2HSE ISEG(3)=2H IF (JM(8) .EQ. 2H00) GO TO 780 IF (JM(9) .GT. 2H20) GO TO 829 GO TO 790 780 IF (JM(9) .GT. 2H60) GO TO 790 C ** EQUAL TO OR LESS THAN 60.00 HERE *** C ** ROUND TO NEAREST 10 CENTS BELOW *** CALL SMPY(JLEVA(50),1,2,JM,17,20,IERR) C ** MULT BY 10 , DROP JM(10) OFF *** CALL SMPY(JLEVA(50),1,2,JM,16,18,IERR) GO TO 810 790 IERR=0 D CALL SDIV(IAG,1,2,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 800 792 FORMAT(10A2) PAUSE4 800 CALL SMPY(IAG,1,2,JM,15,18,IERR) IF (IERR .EQ. 0) GO TO 810 PAUSE3 810 JSTOR(1)=JM(7) JSTOR(2)=JM(8) JSTOR(3)=JM(9) JM(8)=JSTOR(1) JM(9)=JSTOR(2) JM(10)=JSTOR(3) C ** TEST FOR FIXED PAYE PERC. IN BUFFER *** C ** USE LOOKUPTABLE RTN. IF ZERO *** 815 IWRK4(1)=IBUF(19) IWRK4(2)=IBUF(20) IF (IWRK4 .EQ. 2H00) GO TO 830 C ** RATE OF TAX PER DOLLAR IS NOW IN IWRK4 **** IERR=0 CALL SMPY(IWRK4,1,4,JM,15,20,IERR) 825 IPAYE(1)=JM(6) IPAYE(2)=JM(7) IPAYE(3)=JM(8) ISEG(2)=2HG7 GO TO 835 840 IERR=0 CALL SMPY(IWRK1,1,2,JM,12,16,IERR) GO TO 825 829 JM(10)=2H00 GO TO 815 830 ISEG(2)=2HG9 CALL SMPY(IAD,1,2,JM,15,20,IERR) C ** MULTIPLIES ROUNDED WKLY PAY BY 52 TO GET ANNUAL TAXABLE ** C ** C ** TABLE PAYE CALC. RTN.************************************** IWRK6(1)=JM(7) IWRK6(2)=JM(8) IWRK6(3)=JM(9) 835 CALL EXEC(8,ISEG) CALL PAY1 END PROGRAM SEG9,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38)A<:6 DIMENSION IAB(1),IAC(1),IAE(2),IAF(2),IAG(1) DIMENSION IERR(1) DIMENSION IAD(1) DIMENSION ISEG(3) IAB(1)=2H12 IAC(1)=2H26 IAD(1)=2H52 C *** CONSTANTS 60 DOLLARS AND 120 DOLLARS FOR ROUNDING *** IAE(1)=2H01 IAE(2)=2H25 IAG(1)=2H50 C ** PLACES ANNUAL TAXABLE WHOLE DOLLARS IN IWRK6(1,2,3) IF (IWRK6(1) .GT. 2H00) GO TO 875 C ** UNDER 10.000 TAXABLE **************************************** J=1 DO 850 I=2,45,3 J=J+2 IF (JLEVA(I) .GT. IWRK6(2)) GO TO 900 850 CONTINUE C ** BETWEEN 9000 AND 9999 TAXABLE RTN *** I=47 J=33 GO TO 900 875 IF (IWRK6(2) .GT. 2H20)GO TO 885 IF (IWRK6(2) .GT. 2H10) GO TO 880 C ** BETWEEN 10000 AND 11000 TAXABLE *** < I=50 J=35 GO TO 900 C ** BETWEEN 11000 AND 12000 TAXABLE *** 880 I=53 J=37 GO TO 900 C **INCOME OVER 12000 DOLLARS PER ANNUM *** 885 I=56 J=39 C ** C ** UNDER 9000 TAXABLE RTN ***** C ********************************** 900 JWRK7(1)=JAMTA(I-1) JWRK7(2)=JAMTA(I) JWRK7(3)=JAMTA(I+1) JM(9)=JRATE(J-2) JM(10)=JRATE(J-1) CALL SSUB(JLEVA(I-3),1,2,IWRK6,3,4,IERR) CALL SMPY(IWRK6,4,6,JM,17,20,IERR) IF (IERR .EQ. 0) GO TO 920 PAUSE11 C ** BELOW CALCULATES WEEKLY TAX BY DEV. BY 52 AFTER SUBTRACTING ** C ** 125 OR 250 DOLLARS DEPENDING ON TAX CD S OR M ****** C ********************************************************** 920 CALL SADD(JWRK7,1,6,JM,1,19,IERR) IWRK3(1)=IBUF(18) C ** THIS PLACES TAX CD INTO IWRK3 *** DO 922 I=1,7 INAME(I)=2H00 922 CONTINUE INAME(8)=IAE(1) INAME(9)=IAE(2) C ** PUTS $125 IN INAME FOR MULT. WITH "S" OR "M" TAX CD. *** CALL SMPY(IWRK3,1,2,INAME,15,18,IERR) IF (IERR .EQ. 0) GO TO 925 PAUSE 33 C ** TEST IF ANNUAL PAYE TAX IS LESS THAN EXEMPTION *** 925 CALL SMPY(JAMTA(25),1,2,JM,13,20,IERR) IF (INAME(8) .LT. JM(7)) GO TO 930 IF (INAME(8) .GT. JM(7)) GO TO 935 IF (INAME(9) .GT. JM(8)) GO TO 935 930 CALL SSUB(INAME,15,18,JM,13,16,IERR) IF (IERR .EQ. 0) GO TO 940 PAUSE4 935 JM(7)=2H00 JM(8)=2H00 JM(9)=2H00 JM(10)=2H00 GO TO 960 940 IF (IWRK1 .EQ. 2H04) GO TO 950 CALL SDIV(IAD,1,2,JM,13,18,IERR) C * DEVIDES ANNUAL PAYE TAX BY 52 TO GET WKLY AMT *** IF (IERR .EQ. 0) GO TO 960 PAUSE5 950 I=0 C ** DEVIDES ANNUAL PAYE TAX BY 12 TO GET MONTHLY TAX *** CALL SDIV(IAB,1,2,JM,14,18,IERR) IF (IERR .EQ. 0) GO TO 960 PAUSE6 960 ISEG(1)=2HSE ISEG(2)=2HG7 ISEG(3)=2H CALL EXEC(8,ISEG) CALL PAY1 END PROGRAM SEG7,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),ICOM(3) DIMENSION IBUFU(27) IF (IWRK4 .GT. 2H00) GO TO 100 IF (IWRK1 .EQ. 2H04) GO TO 90 CALL SMPY(IWRK1,1,2,JM,13,19,IERR) C ** MULTS CODE: 1,2,OR 3 TIMES WEEKLY AMT *** C ** TO OBTAIN PAYE TAX AMOUNT FOR PERIOD ** 90 IPAYE(1)=JM(6) IPAYE(2)=JM(7) IPAYE(3)=JM(8) 100 IBASE(1)=2HPA IBASE(2)=2HYE JM(7)=IBUF(50) JM(8)=IBUF(51) JM(9)=IBUF(52) JM(10)=IBUF(53) CALL SADD(IGROS,1,6,JM,13,20,IERR) C ** ABOVE ADDS GROSS TAXABLE THIS PAY TO YTD TAXABLE *** IBUF(50)=JM(7) IBUF(51)=JM(8) IBUF(52)=JM(9) IBUF(53)=JM(10) IBASE(3)=2H IGRTD(1)=JM(8) IGRTD(2)=JM(9) IGRTD(3)=JM(10) C ** UPDATE PAYE TAX YTD *** JM(8)=IBUF(54) JM(9)=IBUF(55) JM(10)=IBUF(56) IERR=0 CALL SADD(IPAYE,2,6,JM,15,20,IERR) IBUF(54)=JM(8) IBUF(55)=JM(9) IBUF(56)=JM(10) ITATD(1)=JM(8) ITATD(2)=JM(9) ITATD(3)=JM(10) CALL SADD(IPAYE,2,6,ITDED,1,6,IERR) IF (IERR .EQ. 0) GO TO 110 WRITE(1,95)IERR 95 FORMAT(I5, "ERROR ON DED.ADD") PAUSE12 110 CALL SEDIT(ITALL,1,4,ID,1,6) CALL SEDIT(INTAL,1,4,IE,1,6) CALL SEDIT(IAMTA,1,4,IF,1,6) CALL SEDIT(IAMTA,5,8,IG,1,6) CALL SEDIT(IAMTA,9,12,IH,1,6) CALL SEDIT(IAMTA,13,16,IJ,1,6) CALL SEDIT(IPAYE,2,6,IK,1,6) CALL SEDIT(ITDED,1,6,JA,1,8) CALL SEDIT(IHOTD,1,6,JB,1,8) CALL SEDIT(IHOTT,1,6,JC,1,8) CALL SEDIT(IGRTD,1,6,JD,1,8) CALL SEDIT(ISUPER,1,6,JE,1,8) CALL SEDIT(ITATD,1,6,JF,1,8) JT(1)=2H00 JT(2)=2H00 JT(3)=INTAL(1) JT(4)=INTAL(2) CALL SEDIT(IGROS,1,6,JR,1,8) CALL SADD(IGROS,1,6,JT,1,8,IERR) CALL SEDIT(JT,3,8,JS,1,8) WRITE(6,150)ID,JR,IE,JS 150 FORMAT(2X,3A2,4X,4A2,7X,3A2,22X,4A2,///) WRITE(6,160)ICDA(1),IF,ICDA(2),IG,ICDA(3),IH,ICDA(4),IJ,IK,JA 160 FORMAT(4(A2,X,3A2,2X),3X,3A2,4X,4A2,///) C 160 FORMAT LINE PRTS CODE AND DEDS. ON PAYSLIP **** IERR=0 CALL SSUB(ITDED,1,6,JT,1,8,IERR) IF (IERR .EQ. 0) GO TO 180 WRITE(1,170)IERR 170 FORMAT(I5," ERROR ON SUBTR.") PAUSE13 180 JSEG(1)=2HSE JSEG(2)=2HG1 JSEG(3)=2H1 CALL EXEC(8,JSEG) CALL PAY1 END PROGRAM SEG11,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9)",IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),ICOM(3) DIMENSION IBUFU(27) CALL SEDIT(JT,3,8,JG,1,8) WRITE(6,200)JB,JC,JD,JE,IFSTD,JF,JG 200 FORMAT(4A2,2X,4A2,2X,4A2,4X,4A2,2X,2A2,4X,4A2,2X,4A2,10(/)) ILEVL(1)=2HMA ILEVL(2)=2HIN ILEVL(3)=2H ISCOD(1)=35 IMODE(1)=4 IDSET(1)=2HDA IDSET(2)=2HTA IDSET(3)=2H IPATH(1)=2HEM IPATH(2)=2HPN IPATH(3)=2HO ISTAT(1)=0 JL(1)=2H$9 JL(2)=2H.Z JL(3)=2HZZ JL(4)=2HZZ IN(1)=2HZZ IN(2)=2HZZ IN(3)=2HZ9 IN(4)=2H.9 IO(1)=2H$$ IO(2)=2H9. IO(3)=2H99 JK(1)=2H$$ JK(2)=2H$$ JK(3)=2H9. JK(4)=2H99 ISTOR(1)=2H00 ISTOR(2)=2H00 C **MOVES YTD VALUES TO IBUFU ARRAY FOR UPDATING IN DBUPD ** DO 300 I=1,27 IBUFU(I)=IBUF(I+43) 300 CONTINUE 210 FORMAT(3A2," =PAYE TAX",//) ISEG(1)=2HSE ISEG(2)=2HG1 ISEG(3)=2H2 ISTAT=0 JM(1)=9 JM(2)=21 JM(3)=22 JM(4)=23 JM(5)=24 JM(6)=25 JM(7)=26 JM(8)=27 JM(9)=28 JM(10)=29 CALL DBUPD(IDSET,ISTAT,JM,IBUFU,IBUF) IF (ISTAT(1) .EQ. 0) GO TO 230 WRITE(1,220)ISTAT(1) PAUSE66 230 CALL EXEC(8,ISEG) CALL PAY1 220 FORMAT("ERROR",I5," ON DBUPD",/) END PROGRAM SEG12,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3)k,IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),IWRK9(22) DIMENSION IBUFT(96),IBUFS(94),IWRK(31) DIMENSION J(1) ISTAT(1)=0 IPATH(1)=2HCO IPATH(2)=2HDE IPATH(3)=2H IMODE=2 IDSET(1)=2HTO IDSET(2)=2HTS IDSET(3)=2H DO 100 I=1,20 90 CALL DBGET(IDSET,IMODE,ISTAT,IBUFT,IDEPT) IF (ISTAT(1) .EQ. 0) GO TO 95 PAUSE30 95 IF (IDEPT(1) .EQ. IBUFT(2)) GO TO 110 100 CONTINUE WRITE(1,130) PAUSE31 130 FORMAT("WRONG DEPT CD") 110 IERR=0 DO 125 I=1,10 JM(I)=2H00 125 CONTINUE JM(8)=IBUFT(3) JM(9)=IBUFT(4) JM(10)=IBUFT(5) CALL SADD(IORD,1,4,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 135 PAUSE32 135 IBUFT(3)=JM(8) IBUFT(4)=JM(9) IBUFT(5)=JM(10) JM(8)=IBUFT(6) JM(9)=IBUFT(7) JM(10)=IBUFT(8) CALL SADD(ITA5,1,4,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 140 PAUSE33 140 IBUFT(6)=JM(8) IBUFT(7)=JM(9) IBUFT(8)=JM(10) JM(7)=IBUFT(9) JM(8)=IBUFT(10) JM(9)=IBUFT(11) JM(10)=IBUFT(12) IERR=0 CALL SADD(IOREA,1,6,JM,13,20,IERR) IF (IERR .EQ. 0) GO TO 65 PAUSE34 65 IBUFT(9)=JM(7) IBUFT(10)=JM(8) IBUFT(11)=JM(9) IBUFT(12)=JM(10) JM(7)=2H00 JM(8)=IBUFT(13) JM(9)=IBUFT(14) JM(10)=IBUFT(15) CALL SADD(IOTEA,1,6,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 70 67 FORMAT(I5) o@ PAUSE35 70 IBUFT(13)=JM(8) IBUFT(14)=JM(9) IBUFT(15)=JM(10) JM(8)=IBUFT(16) JM(9)=IBUFT(17) JM(10)=IBUFT(18) C ** PUTS T.ALLCES INTO JM(8,9,10) *** CALL SADD(ITALL,1,4,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 145 PAUSE36 145 IBUFT(16)=JM(8) IBUFT(17)=JM(9) IBUFT(18)=JM(10) JM(8)=IBUFT(19) JM(9)=IBUFT(20) JM(10)=IBUFT(21) CALL SADD(INTAL,1,4,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 150 PAUSE37 150 IBUFT(19)=JM(8) IBUFT(20)=JM(9) IBUFT(21)=JM(10) JM(7)=IBUFT(22) JM(8)=IBUFT(23) JM(9)=IBUFT(24) JM(10)=IBUFT(25) C *** ABOVE PUTS GROSS TAXABLE DEPT.TOTAL INTO JM 7-10 *** CALL SADD(IGROS,1,6,JM,13,20,IERR) IF (IERR .EQ. 0) GO TO 160 PAUSE61 160 IBUFT(22)=JM(7) IBUFT(23)=JM(8) IBUFT(24)=JM(9) IBUFT(25)=JM(10) JM(7)=IBUFT(26) JM(8)=IBUFT(27) JM(9)=IBUFT(28) JM(10)=IBUFT(29) CALL SADD(IGROS,1,6,JM,13,20,IERR) CALL SADD(INTAL,1,4,JM,13,20,IERR) IF (IERR .EQ. 0) GO TO 165 PAUSE62 165 IBUFT(26)=JM(7) IBUFT(27)=JM(8) IBUFT(28)=JM(9) IBUFT(29)=JM(10) JM(7)=2H00 JM(8)=IBUFT(30) JM(9)=IBUFT(31) JM(10)=IBUFT(32) C ** PUTS DEPT TOTAL FOR PAYE TAX IN JM *** CALL SADD(IPAYE,1,6,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 170 PAUSE40 170 IBUFT(30)=JM(8) IBUFT(31)=JM(9) IBUFT(32)=JM(10) C*** BELOW UPDATES DEPT.TOTALS FOR DEDUCTIONS CD:01-20,FOUR PER C *** EMPLOYEE. C ************* JY=0 DO 180 I=1,4 JY=JY+1 J=ICDA(I) IF (J .GT. 2H09) GO TO 500 CALL SA2DE(J,1,2,IERR) 171 JM(8)=IBUFT(J*3+30) JM(9)=IBUFT(J*3+31) JM(10)=IBUFT(J*3+32) IERR=0 CALL SADD(IAMTA,4*JY-3,4*JY,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 175 PAUSE41 500 I1=2H10 JM(10)=J(1) JM(9)=2H00 CALL SSUB(I1,1,2,JM,17,20,IERR) J=JM(10) IERR=0 CALL SA2DE(J,1,2,IERR) J=J+10 GO TO 171 175 IBUFT(J*3+30)=JM(8) IBUFT(J*3+31)=JM(9) IBUFT(J*3+32)=JM(10) 180 CONTINUE JM(7)=IBUFT(93) JM(8)=IBUFT(94) JM(9)=IBUFT(95) JM(10)=IBUFT(96) C ** NET PAY TO JM FROM DEPT TOTAL FILE *** CALL SADD(JT,3,8,JM,13,20,IERR) IF (IERR .EQ. 0) GO TO 190 PAUSE42 190 IBUFT(93)=JM(7) IBUFT(94)=JM(8) IBUFT(95)=JM(9) IBUFT(96)=JM(10) DO 195 I=1,94 IBUFS(I)=IBUFT(I+2) 195 CONTINUE ISEG(1)=2HSE ISEG(2)=2HG1 ISEG(3)=2H3 ISTAT=0 IWRK(1)=30 DO 200 I=1,30 IWRK(I+1)=I+31 200 CONTINUE CALL DBUPD(IDSET,ISTAT,IWRK,IBUFS,IBUFT) IF (ISTAT(1) .EQ. 0) GO TO 220 WRITE(1,210)ISTAT(1) 210 FORMAT(I5) PAUSE43 220 CALL EXEC(8,ISEG) CALL PAY1 END PROGRAM SEG13,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),IWRK9(22) DIMENSION IBUFC(24),IBUFD(7}22),IWRK(12) C ** IBUFC GETS DEPT PREVIOUS NOTE/COIN FIGURES *** C **IBUFD GETS UPDATED AMTS(PREVIOUS + THIS EMPL.) ** C ** IWRK STORES NO OF FIELDS TO BE UPDATED WITH THE RESP.- C ** NO,S IE:IWRK(1)=11, IWRK(2) TO IWRK(12) THE RESP. C ** FIELD NO,S AS DEFINED WITHIN THE DATA BASE. C ** IN THIS PAYROLL NO:63-73. C *********************************************************** C* C* C **NET PAY IS IN "JT" AND WILL BE BROKEN INTO THE DIFF. C ** NOTES AND COINS , AND THESE FIGURES ARE THAN ADDED TO C ** THE OTHER NOTES AND COINS FOR THIS DEPT. C * C ************************************************************ IWRK9(1)=2H20 IWRK9(2)=2H00 IWRK9(3)=2H10 IWRK9(4)=2H00 IWRK9(5)=2H05 IWRK9(6)=2H00 IWRK9(7)=2H02 IWRK9(8)=2H00 IWRK9(9)=2H01 IWRK9(10)=2H00 IWRK9(11)=2H00 IWRK9(12)=2H50 IWRK9(13)=2H00 IWRK9(14)=2H20 IWRK9(15)=2H00 IWRK9(16)=2H10 IWRK9(17)=2H00 IWRK9(18)=2H05 IWRK9(19)=2H00 IWRK9(20)=2H02 IWRK9(21)=2H00 IWRK9(22)=2H01 IERR=0 DO 100 I=1,10 JM(I)=2H00 100 CONTINUE C ** FOR DEBUGGING OF THIS ROUTINE WE NOW OPEN THE DATA-BASE** IMODE=3 IBASE(1)=2HPA IBASE(2)=2HYE IBASE(3)=2H ILEVL(1)=2HMA ILEVL(2)=2HIN ILEVL(3)=2H ISCOD(1)=35 C ** ISCOD IS THE SECURITY CODE IN THE DEFINED DATA-BASE ** 25 ISTAT(1)=0 IPATH(1)=2HDE IPATH(2)=2HPT IPATH(3)=2H IDSET(1)=2HNO IDSET(2)=2HTE IDSET(3)=2HS IMODE=2 JK(1)=JT(1) JK(2)=JT(2) JK(3)=JT(3) JK(4)=JT(4) 115 FORMAT(I5," =ISTAT(1)") DO 125 I=1,20 110 CALL DBGET(IDSET,IMODE,ISTAT,IBUFC,IDEPT) IF (ISTAT(1) .EQ. 0) GO TO 120 PAUSE22 120 IF (IDEPT(1) .EQ. IBUFC(2)) GO TO 132 125 CONTINUE WRITE(1,134) PAUSE33 134 FORMAT("WRONG DEPT") 132 JM(7)=JT(1) JM(8)=gu640JT(2) JM(9)=JT(3) JM(10)=JT(4) DO 300 I=1,11 IERR=0 IWRK5(1)=IWRK9(2*I-1) IWRK5(2)=IWRK9(2*I) CALL SDIV(IWRK5,1,4,JM,15,20,IERR) IF (IERR .EQ. 0) GO TO 140 WRITE(1,135)IERR PAUSE23 135 FORMAT(I5," =IERR") 140 IWRK4(1)=JM(7) IWRK4(2)=JM(8) C ** REMAINDER GOES INTO "IA"(1-4) *** JM(7)=2H00 JM(8)=2H00 IA(3)=JM(9) IA(4)=JM(10) JM(9)=IBUFC(2*I+1) JM(10)=IBUFC(2*I+2) CALL SADD(IWRK4,1,4,JM,17,20,IERR) IF (IERR .EQ. 0) GO TO 260 WRITE(1,135)IERR PAUSE24 260 IBUFC(2*I+1)=JM(9) IBUFC(2*I+2)=JM(10) JM(9)=IA(3) JM(10)=IA(4) IF (IA(3) .EQ. 2H00) GO TO 270 GO TO 300 270 IF (IA(4) .EQ. 2H00) GO TO 310 300 CONTINUE 310 DO 350 I=1,22 IBUFD(I)=IBUFC(I+2) 350 CONTINUE IWRK(1)=11 IWRK(2)=63 IWRK(3)=64 IWRK(4)=65 IWRK(5)=66 IWRK(6)=67 IWRK(7)=68 IWRK(8)=69 IWRK(9)=70 IWRK(10)=71 IWRK(11)=72 IWRK(12)=73 CALL DBUPD(IDSET,ISTAT,IWRK,IBUFD,IBUFC) IF (ISTAT(1) .EQ. 0) GO TO 360 WRITE(1,355)ISTAT(1) PAUSE26 355 FORMAT(I5," ERROR ON DBUPD") 360 ISEG(1)=2HSE ISEG(2)=2HG4 ISEG(3)=2H CALL DBCLS(0,ISTAT) CALL EXEC(8,ISEG) CALL PAY1 END END$ 6FTN4,L PROGRAM HGPAY INTEGER I,A,C C**** THIS PROGRAM PREPRINTS BLANK PAPER WITH HEADINGS C**** REQUIRED FOR THE PRINTING OF PAYSLIPS IN THE MAIN C**** PAYROLL PROGRAM ********************************* WRITE(1,2) 2 FORMAT("HOW MANY PAYSLIPS DO YOU REQUIRE",/,"?") READ(1,*)A 3 FORMAT(I5) I=0 WRITE(1,4) 4 FORMAT("ALLIGN PAPER TO TOF AND TYPE -GO") PAUSE I=0 5 WRITE(6,10) 10 FORMAT(/,10X,"H E W L E T T P A C K A R D N Z L T D.", 1/,10X,41("-")) WRITE(6,11) 11 FORMAT(21X,"EMPLOYEE PAYSLIP",/,21X,17("-"),/) WRITE(6,12) 12 FORMAT(X,"EMPLOYEE NO. NAME",15X,"DEPT",//) WRITE(6,13) 13 FORMAT(3X,7("-"),"HOURS",7("-"),6X,"HOURLY",X,10("-"), 3"EARNINGS",10("-"),/, 13X," ORD T.5 T2",6X,"RATE ORDINARY OT",5X, 2"EXTENDED",////////) WRITE(6,14) 14 FORMAT(2X,"TAXABLE",6X,"GROSS",5X,"NONTAXABLE",22X,"GROSS", 1/,"ALLOWANCES TAXABLE",5X,"ALLOWANCES",20X,"EARNINGS",//) WRITE(6,15) 15 FORMAT(16("-"),"DEDUCTIONS",16("-"),7X,"PAYE TOTAL",/, 3"CD AMOUNT", 1" CD AMOUNT CD AMOUNT CD AMOUNT TAX DEDUCTIONS", 2/,/) WRITE(6,16) 16 FORMAT(X,"---HOURS YTD--- GROSS TAXABLE SUPER SHIFTS", 1,8X,"TAX TOTAL",/," ORD OT EARNINGS YTD ", 2" YTD YTD YTD NET PAY",////) I=I+1 C=A-I IF (C .EQ. 0) GO TO 20 GO TO 5 20 I=1 STOP END END$ DFTN4,L PROGRAM TOTCL,3 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),IWRK9(22) DIMENSION IBUFT(96),IBUFS(94),IWRK(31) ISTAT(1)=0 IPATH(1)=2HCO IPATH(2)=2HDE IPATH(3)=2H IDSET(1)=2HTO IDSET(2)=2HTS IDSET(3)=2H ISTAT=0 IMODE(1)=3 IBASE(1)=2HPA IBASE(2)=2HYE IBASE(3)=2H ILEVL(1)=2HMA ILEVL(2)=2HIN ILEVL(3)=2H ISCOD(1)=35 CALL DBOPN(IBASE,ILEVL,ISCOD,IMODE,ISTAT) C*** *** C*** OPEN DATA BASE *** C**************************** IF (ISTAT(1) .EQ. 0) GO TO 6 WRITE(1,5) 5 FORMAT("ERROR ON DBPON") PAUSE 6 IWRK(1)=30 DO 10 I=1,30 IWRK(I+1)=I+31 10 CONTINUE DO 15 I=1,94 IBUFS(I)=2H00 15 CONTINUE WRITE(1,20) 20 FORMAT("THIS PROGRAM CLEARS DEPT TOTALS FOR PAYROLL") WRITE(1,30) 30 FORMAT("DO YOU REALLY WANT TO CLEAR THE TOTALS?",//, 1"TYPE: :GO TO CONTINUE",/) PAUSE1 IMODE=2 DO 90 I=1,20 u IDEPT=2H01 CALL DBGET(IDSET,IMODE,ISTAT,IBUFT,IDEPT) IF (ISTAT(1) .EQ. 0) GO TO 40 PAUSE2 40 DO 42 J=1,94 IBUFT(I+2)=IBUFS(I) 42 CONTINUE CALL DBUPD(IDSET,ISTAT,IWRK,IBUFS,IBUFT) IF (ISTAT(1) .EQ. 0) GO TO 50 PAUSE3 50 IERR=0 90 CONTINUE WRITE(1,100) 100 FORMAT("DEPT RUN TOTALS CLEARED",/) ISEG(1)=2HCO ISEG(2)=2HIN ISEG(3)=2H CALL EXEC(8,ISEG) END PROGRAM COIN,5 COMMON ISORT(1024),ISLGT(1),IRUN(1175),IOPN(128) COMMON IBASE(3),ILEVL(3),ISCOD(1),IMODE(1),ISTAT(4) COMMON IBUF(71),IARG(2),JANS(1),JTEST(1),ISTET(4) COMMON JMPNO(2),ISALC(1),IORD(2),ITA5(2),IMPNO(2) COMMON IT2(2),IRATE(3),ITALL(2),INTAL(2),ISHFT(1) COMMON ICDA(4),IAMTA(8),IPAYE(3),ITDED(3),IHOTD(3) COMMON IHOTT(3),IGRTD(3),ITATD(3),ISUPER(3) COMMON IA(4),IB(4),IC(4),ID(3),IE(3),IF(3),IG(3),IH(3) COMMON IJ(3),IK(3),IL(3),IM(3),JA(4),JB(4),JC(4),JD(4) COMMON JE(4),JF(4),IWRK1(3),IWRK2(3),IWRK3(3),IWRK4(2) COMMON IWRK5(2),JT(4),JG(4),JH(4),JI(4),IN(4),IO(3) COMMON JK(4),JL(4),JM(10),JN(4),JO(4),JP(4),JR(4),JS(4) COMMON IOTEA(3),IFSTD(2),ISTOR(2),INAME(9),IDEPT(1) COMMON IWRK6(3),JWRK7(3),IGROS(3),IOREA(3) COMMON JLEVA(54),JAMTA(57),JRATE(38) DIMENSION IEXEA(4),I1(1) DIMENSION IERR(1),ITEM(1),IDSET(3),IPATH(3) DIMENSION ISEG(3),JSEG(3),IWRK9(22) DIMENSION IBUFC(24),IBUFD(22),IWRK(12) IERR=0 ISTAT(1)=0 IPATH(1)=2HDE IPATH(2)=2HPT IPATH(3)=2H IDSET(1)=2HNO IDSET(2)=2HTE IDSET(3)=2HS IMODE=2 DO 20 I=1,11 IWRK(I+1)=I+62 20 CONTINUE IWRK(1)=11 DO 30 I=1,22 IBUFD(I)=2H00 30 CONTINUE DO 200 I=1,20 IDEPT=2H01 CALL DBGET(IDSET,IMODE,ISTAT,IBUFC,IDEPT) IF (ISTAT(1) .EQ. 0) GO TO 120 PAUSE4 120 DO 130 J=1,22 IBUFC(J+2)=IBUFD(J) 13m 0 CONTINUE CALL DBUPD(IDSET,ISTAT,IWRK,IBUFD,IBUFC) IF (ISTAT(1) .EQ. 0) GO TO 200 PAUSE5 200 CONTINUE WRITE(1,220) 220 FORMAT("DEPT TOTS FOR NOTES AND COIN HAVE BEEN CLEARED",/) CALL DBCLS(0,ISTAT) STOP CALL TOTCL END END$ }L$CONTROL LIST,ERRORS=5,ROOT,TABLE; BEGIN DATA BASE PAYE;35; LEVELS: 4 INQ; 15 MAIN; ITEMS: KEY1, U4(4,15); KEY2, U2(4,15); EMPNO, U4(4,15); DEPCD, U2(4,15); NAME, U18(4,15); TAXCD, U2(4,15); TAXPC, U4(4,15); PAYFR, U2(4,15); PAYRT, U6(4,15); TACE, U4(4,15); NTACE, U4(4,15); CD1, U2(4,15); CD2, U2(4,15); CD3, U2(4,15); CD4, U2(4,15); DED1, U4(4,15); DED2, U4(4,15); DED3, U4(4,15); DED4, U4(4,15); SALRY, U6(4,15); ORHTD, U6(4,15); OTHTD, U6(4,15); GRTTD, U8(4,15); TAXTD, U6(4,15); D1TD, U6(4,15); D2TD, U6(4,15); D3TD, U6(4,15); D4TD, U6(4,15); SHFTD, U4(4,15); ACTCD, U2(4,15); CODE, U2(4,15); ORDHR, U6(4,15); OTHR, U6(4,15); EAROR, U8(4,15); EAROT, U6(4,15); TALL, U6(4,15); NTALL, U6(4,15); GRTAX, U8(4,15); GREAR, U8(4,15); TAX, U6(4,15); D1, U6(4,15); D2, U6(4,15); D3, U6(4,15); D4, U6(4,15); D5, U6(4,15); D6, U6(4,15); D7, U6(4,15); D8, U6(4,15); D9, U6(4,15); D10, U6(4,15); D11, U6(4,15); D12, U6(4,15); D13, U6(4,15); D14, U6(4,15); D15, U6(4,15); D16, U6(4,15); D17, U6(4,15); D18, U6(4,15); D19, U6(4,15); D20, U6(4,15); NTPAY, U8(4,15); DEPT, U2(4,15); TWEND, U4(4,15); TEND, U4(4,15); FIVED, U4(4,15); TWOD, U4(4,15); ONED, U4(4,15); FIFTC, U4(4,15); TWENC, U4(4,15); TENC, U4(4,15); FIVEC, U4(4,15); TWOC, U4(4,15); ONEC, U4(4,15); SETS: NAME: TOTS,DETAIL,PN110; ENTRY: CODE, ORDHR, OTHR, EAROR, EAROT, TALL, NTALL, GRTAX, GREAR, TAX, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, NTPAY; CAPACITY: 21; NAME: NOTES,DETAIL,PN110; ENTRY: DEPT, TWEND, TEND, FIVED, TWOD, ONED, FIFTC, TWENC, TENC, FIVEC, TWOC, ONEC; CAPACITY: 21; NAME: K1,A,PN110; ENTRY: KEY1(1); CAPACITY: 50; NAME: K2,A,PN110; ENTRY: KEY2(1); CAPACITY: 20; NAME: DATA,DETAIL,PN110; ENTRY: EMPNO(K1), DEPCD(K2), NAME, TAXCD, TAXPC, PAYFR, PAYRT, TACE, NTACE, CD1, CD2, CD3, CD4, DED1, DED2, I> DED3, DED4, SALRY, ORHTD, OTHTD, GRTTD, TAXTD, D1TD, D2TD, D3TD, D4TD, SHFTD, ACTCD; CAPACITY: 50; END. iPAYE,35,MAIN; $SET: TOTS 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 $SET: NOTES 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 $SET: DATA 010101P. BROWN 01000001200000015002500101050914000200020005000900008000 010203B. BIRKS 01325001190000025001000104061212000125040000600076000128 010314B. MCKINTOSH 02000002210000030000000300000002000000000000000084000000 010402F.HALSTONE 01100001220000000000000506091602400300010002600088000030 010517K. INLEY 0100000425000000000000080304090100020003000400052000 010605C. CHRISTIANSON 02000001150000000001000911131401500400032000950060000000 010702B. DEKKER 02000004300000025001750104161900100020003000400520000095 010817N.G. GIVEITAWAY 01000001255625009500450912140701000150020002500102250094 010903P.K. CHESTERTON 01000002215000007500500104050601000400050006000172000007 $END !0101010400010000000575620100020000 0102010400000000000000000000000000 0103010400000000001752500000000000 0104010400000000002000000000000000 0105010400000000003102500000000000 0106010400000000003500000000000000 0107010400000000004000000000000002 0108010400000000004500000000000000 0109020100000000000000000000000000 0109010300000000005000000000000000 9999 6W00050000100000200000250000300000350000400000450000500000550000600000650000700000 00000000900001825003725004850006175007600009200010925012725014675016750018975021 0180018501900225026502850320034503600390041504450460047004800485049004950500 z 3 22681-18041 1507 SC 0122 CASSETTE PREPARE TAPE SYSTEM             H0101 zASMB,A,B,L,T HED CASSETTE PREPARE TAPE / DRUM SYSTEM ORG 76B * * CPTS IS USED TO MAKE AND MODIFY 7 OR 9 TRACK SYSTEM * TAPES FOR USE BY THE MAGNETIC TAPE SYSTEM. * OPERATION IS EQUIVALENT TO PTS (PREPARE TAPE SYSTEM) * EXCEPT FOR ELIMINATION OF HALTS, CHOICE OF CASSETTE * OR PAPER TAPE INPUT, AND THE CHOICE OF USE EITHER * STAND ALONE OR AS A PROGRAM ON FILE 1 OF MTS. * CPTS REQUIRES STANDARD SIO DRIVERS FOR TTY INPUT, * TTY PRINT, AND CASSETTE INPUT. THE PHOTOREADER * DRIVER IS CONTAINED WITHIN CPTS. * * OPERATION OF THE PROGRAM: * * 1- LOAD AND CONFIGURE THE TTY AND CASSETTE TAPE * SIO DRIVERS USING THE PROTECTED LOADER. * 2- LOAD CPTS USING THE PROTECTED LOADER. * 3- IF DESIRED, LOAD AND RUN CASSETTE SIO DUMP TO * MAKE A CONFIGURED COPY OF CPTS. * 4- START CPTS AT 100B. * 5- TYPE THE SELECT CODE OF THE PHOTOREADER INTERFACE * CARD IN REPLY TO THE REQUEST. * 6- IF A DIAGNOSTIC IS PRINTED CONCERNING THE SYSTEM * TAPE DRIVE, CORRECT THE CONDITION AND PRESS RUN. * 7- IN REPLY TO THE MESSAGE "NAME:" THE FOLLOWING * REPLIES ARE ACCEPTED: * A PROGRAM NAME TO BE WRITTEN ON THE SYSTEM TAPE. * /A POSITIONS THE TAPE JUST BEFORE THE FIRST FILE * MARK. THIS IS USED TO ADD PROGRAMS TO FILE 1. * THIS IS ILLEGAL AFTER ANY PROGRAM NAME RESPONSE. * /B POSITIONS THE TAPE JUST BEFORE THE SECOND FILE * MARK. THIS IS USED TO ADD PROGRAMS TO FILE 2. * THIS IS ILLEGAL AFTER ANY PROGRAM NAME RESPONSE. * /R RESTARTS THE PROGRAM IN THE EVENT OF OPERATOR ERROR. * /S SKIPS ONE PROGRAM ON CASSETTE TAPE. * /E TERMINATES FILE 1. * 8- IN REPLY TO THE MESSAGE "S.A.:" TYPE THE OCTAL * STARTING ADDRESS OF THE PROGRAM. * 9- THE MESSAGE "TYPE /C OR /P" IS ANSWERED /C FOR A * PROGRAM TO BE TAKEN FROM CASSETTE TAPE OR /P * FOR A PROGRAM TO B TAKEN FROM PAPER TAPE. * 10- IN REPLY TO THE MESSAGE "NEXT OPERATION:" THE * FOLLOWING REPLIES ARE ACCEPTED: * /C COPIES ONE FILE OF RELOCATABLE SUBROUTINES * ONTO FILE 2 FROM CASSETTE TAPE. * /P COPIES ONE FILE OF RELOCATABLE SUBROUTINES * ONTO FILE 2 FROM PAPER TAPE. * /S SKIPS ONE FILE ON CASSETTE TAPE * /R RESTARTS CPTS IN THE EVENT OF OPERATOR ERROR. * /A RESTARTS THE FILE 2 PART OF CPTS. * /E TERMINATES FILE 2 AND THE PROGRAM; IF RUNNING * UNDER MTS, RETURNS TO THE IPL. * 11- A CHECKSUM ERROR OCCURING WHILE WRITING FILE 1 * WILL AUTOMATICALLY RESTART THE PROGRAM, AS * THE ERROR IS IRRECOVERABLE. * 12- A CHECKSUM ERROR OCCURING WHILE WRITING FILE 2 * IS IRRECOVERABLE FROM CASSETTE TAPE AND WILL * RESTART THE FILE 2 PART OF CPTS, BUT MAY BE * RECOVERABLE FROM PAPER TAPE BY REREADING THE * LAST RECORD. RESPOND /A TO RESTART FILE 2 * OR /P TO REREAD THE RECORD, AFTER BACKING * THE TAPE ONE RECORD. * 13- CPTS MAY ITSELF BE PUT ON FILE 1 OF HE MTS SYSTEM * TAPE SO THAT PROGRAMS MAY BE ADDED TO THE SYSTEM * TAPE WHILE RUNNING UNDER MTS. CPTS MAY BE PUT ON * EITHER ALONE OR CONFIGURED WITH SIO DRIVERS BY * MEANS OF CASSETTE SIO DUMP AS DESCRIBED IN STEP 3. * READ EQU 101B PRINT EQU 102B WRITE EQU 103B INPUT EQU 104B FWAM EQU 105B LWAM EQU 106B TAPE EQU 107B BUFL EQU 36 A EQU 0 B EQU 1 * RESRT CLA HLT 77B JMP START STARTS AT 100B * ORG FWAM DEF FW SETS FWAM * ORG 110B START JSB LINE LDA MG1L LDB MG1 JSB PRINT,I PRINT TITLE JSB LINE A1 LDA MG2L LDB MG2 SC JSB PRINT,I REQUEST PR SC JSB ENTRY JSB FMT FORMAT NUMERIC ENTRY JMP SC ERROR ADB M10 SSB JMP SC ENTRY LT 10B ADB M60 SSB,RSS JMP SC ENTRY GT 67B JSB CONPR CONFIGURE PHOTOREADER LDA TAPE HR SZA,RSS JMP RESRT NO MT DRIVER S1 JSB TAPE,I CHECK MT BUSY/LOCAL SEVEN OCT 7 STB A AND B400 SZA JMP LOCAL JSB TAPE,I CHECK WRITE RING OCT 7 STB A AND FOUR SZA JMP NRING STA ONCE JSB TAPE,I REWIND MT OCT 3 JSB LINE LDA MG6L LDB MG6 JSB PRINT,I ABSOLUTE PROGRAMS LDA MG7L LDB MG7 JSB PRINT,I BEGIN WITH .IPL. , S.SIO LDA READ AND CORE GET MEMORY SIZE IOR AFL STA AFLG CONFIGURE AFLG EXP JSB LINE CCA STA LDRCK PREPARE FOR LEADER STA AFLG,I ABSOLUTE RECORDS RETRY LDA MG10L LDB MG10 JSB PRINT,I NAME: JSB ENTRY LDA INBUF,I CPA IR JMP START CPA IE JMP WFM TERMINATE FILE 1 CPA IS JMP SKIP1 CLB STB MTBFL STB MTBFA LDB FWAM STB TBFST INITIALIZE PROGRAM BUFFER LDB ONCE SZB JMP S2 BYPASS /A CHECK AFTER FIRST TIME CPA IA JMP EFILE GO TO END OF FILE 1 CPA IB JMP EFILE GO TO END OF FILE 2 S2 SZB,RSS JMP S3 BYPASS /C CHECK FIRST TIME CPA IC JMP CONTU CONTINUE LOADING CURRENT PROGRAM S3 ISZ ONCE ADVANCE PROGRAM COUNTER LDA NAMBF STA NAMPT LDA BLNKS LDB M5 S4 STA NAMPT,I BLANKS IN NAME BUFFER ISZ NAMPT INB,SZB JMP S4 4 TIMES, 5 WORDS LDA NAMBF STA NAMPT LDA INBUF CLB,INB CPB ONCE LDA .IPL. PREPARE TO USE .IPL. INB CPB ONCE LDA S.SIO PREPARE TO USE S.SIO STA BUFPT DEFAULT, USE ENTRY LDB M12 S5 LDA BUFPT,I ALF,ALF AND B377 CPA BLANK CHECK FOR END OF ENTRY JMP LBLNK JSB COMPR CHECK FOR ILLEGAL CHARACTERS LDA BUFPT,I n STA NAMPT,I AND B377 CPA BLANK CHECK FOR END OF ENTRY JMP GETSA GO GET S.A. JSB COMPR CHECK FOR ILLEGAL CHARACTERS ISZ BUFPT ISZ NAMPT INB,SZB JMP S5 NEXT WORD LBLNK CPB M12 JMP RETRY FIRST CHAR MUST NOT BE BLANK GETSA LDA MG11L LDB MG11 JSB PRINT,I REQUEST S.A. JSB ENTRY JSB FMT JMP GETSA FORMAT ERROR RSS CONTU CLA STA S.A. SAVE S.A. JSB LOAD WAIT FOR DEVICE READY GETRC LDB TBFST JSB RECRD READ RECORD JMP BY CPA LDRCK A=0 FOR LEADER/TRAILER JMP WTAPE TRAILER, EMPTY BUFFER JMP GETRC LEADER, IGNORE BY ADA TBFST STA TBFST CMA,INA ADA LWAM SSA CHECK FOR MEMORY OVERFLOW JMP WTAPE EMPTY BUFFER LDA MTBFA =0 FOR 1ST RECORD SZA,RSS JMP FST 1ST RECORD LDA RLENG 2ND AND THEREAFTER ADA MTBFL A= CUMULATIVE BUFFER LENGTH STA BYTE SAVE CUMULATIVE LENGTH LDA MTBFA CALCULATE NEXT BLOCK ADA MTBFL BUFFER ADDRESS CPA B COMPARE WITH ACTUAL ADDRESS RSS JMP WTAPE DIFFERENT LDA BYTE SAME JMP SEC FST LDA RLENG STB MTBFA SEC STA MTBFL JSB XFER MOVE RECORD TO MT BUFFER JMP GETRC * SKIP1 CLA STA INDEV JSB RECRD JMP *-1 JMP EXP * EFILE STA FMT SAVE /X CPA IA CLA,INA,RSS A=1 FOR /A LDA TWO A=2 FOR /B LDB M2 JSB TAPE,I SPACE FORWARD "A" FILES, -2 RECORDS FOUR OCT 4 JMP EOT EOT ERROR HLT 11B TIMING ERROR LDA FMT CPA IB JMP FLTWO EXIT FOR /B LDA TWO STA ONCE JMP EXP EXIT FOR /A * COMPR NOP CPA SLSH CHECK JMP EXP FOR CPA COMMA ILLEGAL JMP EXP CHARACTERS CPA SCOLN IN JMP EXP NAME CPA COLON ENTRY JMP EXP JMP COMPR,I OK * WTAPE STA BYTE JSB NMREC GO WRITE NAME RECORD JSB WREC GO WRITE DATA RECORD LDA FWAM ADA RLENG STA TBFST LDA BYTE LDB RECSA SZA CHECK IF LAST RECORD OF PROGRAM JMP FST GET MORE PROGRAM JSB TAPE,I WRITE FILE MARK TWO OCT 2 JMP EOT EOT ERROR HLT 11B TIMING ERROR CLA CCB JSB TAPE,I BACKSPACE OVER FILE MARK OCT 4 JMP EOT EOT ERROR HLT 11B TIMING ERROR JMP EXP GET NEXT COMMAND * LOCAL LDA MG4L LDB MG4 JSB PRINT,I HLT 44B JMP S1 * NRING LDA MG5L LDB MG5 JSB PRINT,I HLT 11B JMP S1 * FLTWO CLA CLB,INB JSB TAPE,I FORWARD SPACE ONE RECORD OCT 4 JMP EOT EOT ERROR HLT 11B TIMING ERROR JMP RLIB * WFM CCA STA NAM STA S.A. FILE 1 TERMINATION RECORD JSB NMREC JSB TAPE,I WRITE FILE MARK OCT 2 JMP EOT EOT ERROR HLT 11B TIMING ERROR LDA MG13L LDB MG13 JSB PRINT,I EOF * RLIB JSB LINE LDA MG15L LDB MG15 JSB PRINT,I RELOCATABLE PROGRAMS NRP JSB LINE CCA STA LDRCK CLA STA AFLG,I RELOCATABLE RECORDS LDA MG17L LDB MG17 JSB PRINT,I NEXT OPERATION: JSB ENTRY NEXT LDA INBUF,I CPA IR JMP START RESTART PROGRAM CPA IE JMP TERM TERMINATE TAPE/PROGRAM CPA IA JMP APRC RELOAD FILE 2 CPA IS JMP SKIP2 LEAD LDB FWAM CPA IP JMP RPT GO READ PAPER TAPE CPA IC RSS JMP NRP INVALID COMMAND LDA M377 JSB READ,I READ CASSETTE TAPEe SZA,RSS JMP FIN WFM, -1 RECORD STA MTBFL SAVE RECORD LENGTH JMP CK RPT LDA M377 JSB PR READ PAPER TAPE CPA LDRCK JMP FIN WFM, -1 RECORD SZA,RSS JMP NEXT LEADER, IGNORE STA MTBFL DATA CLA STA LDRCK CK LDA MTBFL CHECKSUM TEST ADA M3 CMA,INA STA CNTR ADDRESS COUNTER LDA FWAM ADA THREE ADDRESS POINTER LDB AFW,I INITIALIZE CHECKSUM ADB A,I INA ISZ CNTR JMP *-3 CPB ASW,I JMP WF CHECKSUM OK LDA MG16L LDB MG16 JSB PRINT,I CHECKSUM ERROR LDA INBUF,I CPA IP JMP CEP LDA MG20L LDB MG20 JSB PRINT,I RELOAD FILE 2 JMP APRC CEP LDA MG21L LDB MG21 JSB PRINT,I RETRY OR RELOAD FILE 2 JSB ENTRY CPA IA JMP APRC RELOAD FILE 2 CPA IP RSS JMP CEP INVALID RESPONSE JMP LEAD RETRY RECORD * WF JSB WREC GO WRITE TAPE JMP NEXT * TERM JSB TAPE,I WRITE FILE MARK OCT 2 JMP EOT HLT 11B JSB TAPE,I REWIND MT THREE OCT 3 LDA MG22L LDB MG22 JSB PRINT,I CMTS TAPE COMPLETE JMP RESRT * FIN JSB TAPE,I WRITE FILE MARK OCT 2 JMP EOT HLT 11B CLA CCB JSB TAPE,I BACKSPACE OVER FILE MARK OCT 4 JMP EOT HLT 11B JMP NRP * APRC JSB TAPE,I REWIND MT OCT 3 CLA,INA CLB JSB TAPE,I GO TO BEGINNING OF FILE 2 OCT 4 JMP EOT HLT 11B JMP RLIB * SKIP2 CLA STA INDEV JSB RECRD JMP *-1 JMP NRP * NMREC NOP LDA MTBFL CMA,INA STA NBFL -LENGTH OF NEXT PROGRAM RECORD LDA M10 LDB NAMBF JSB TAPE,I WRITE NAME, S.A., -LENGTH,A MTBFA OCT 1 JMP EOT EOT ERROR HLT 11B TIMING ERROR CLA STA S.A. TO INDICATE NOT FIRST RECORD OF PROGRAM JMP NMREC,I * WREC NOP LDA MTBFL CMA,INA LDB FWAM JSB TAPE,I WRITE DATA RECORD ONE OCT 1 JMP EOT EOT ERROR HLT 11B TIMING ERROR JMP WREC,I * LINE NOP CLA JSB PRINT,I SPACE ONE LINE ON TTY JMP LINE,I * ENTRY NOP LDB INBUF LDA NBUFL STA BUFPT LDA BLNKS FILL BUFFER WITH BLANKS STA B,I INB ISZ BUFPT JMP *-3 LDA PBUFL LDB INBUF JSB INPUT,I GET INPUT LINE FROM TTY CMA,INA,SZA,RSS JMP ENTRY+1 NO CHARS INPUT STA INLOG JMP ENTRY,I * FMT NOP LDB INBUF STB SAVIN CLB,CLE STB CNTR NCHAR STB BYTE LDA SAVIN,I SEZ,RSS CHECK U/L FLAG ALF,ALF UPPER BYTE AND B177 LOWER BYTE ERB CPA BLANK JMP SHFT ADA OVER CHECK GT 67B SSA,RSS JMP BAD ADA UNDER CHECK LT 60B SSA JMP BAD ISZ CNTR ELB LDB A SAVE DIGIT IN B LDA BYTE RECOVER SUM ALF,RAR MPY BY 8 ADB A ADD CURRENT DIGIT AND SEVEN SZA JMP BAD NC1 SEZ,CME CHANGE U/L FLAG ISZ SAVIN INCREMENT BUFFER COUNTER ISZ INLOG INCREMENT CHARACTER COUNTER JMP NCHAR NC2 SZB CPB ONE JMP BAD LDA B ISZ FMT JMP FMT,I SHFT CLA ELB CPA CNTR JMP NC1 LDB BYTE JMP NC2 * BAD LDA MG3L LDB MG3 JSB PRINT,I JMP FMT,I TRY AGAIN * LOAD NOP LDA MG12L LDB MG12 JSB PRINT,I TYPE /C OR /P JSB ENTRY LDA INBUF,I CLB STB INDEV /C, INDEV=0 CPA IP INB,ǃRSS JMP *+3 STB INDEV /P, INDEV=1 JMP LOAD,I CPA IC JMP LOAD,I EXIT JMP LOAD+1 * EOT JSB LINE LDA MG14L LDB MG14 JSB PRINT,I END OF TAPE ERROR HLT 11B JMP *-1 IRRECOVERABLE ERROR * RECRD NOP GET A RECORD FROM DEVICE LDB SIOBF LDA INDEV CPA ONE JMP CPR CLA STA LDRCK LDA M377 JSB READ,I READ CASSETTE PRC SZA,RSS JMP TRAIL EOF LDB AFLG,I SZB ADA M3 ABSOLUTE RECORD STA RLENG RECORD LENGTH CMA,INA STA MLENG NEG RECORD LENGTH LDB SIOBF INB LDB B,I B= BLOCK S.A. STB RECSA LOAD ADDRESS CLA STA LDRCK FIX LDR/TRLR CHECK LDA RLENG A= RECORD LENGTH JMP RECRD,I RETURN P+1 OK CPR LDA M377 READ PAPER TAPE JSB PR JMP PRC SAME AS FOR CASSETTE TRAIL ISZ RECRD JMP RECRD,I A=0 RETURN P+2 FOR LDR/EOF * XFER NOP LDA SIOBF INA LDB A,I INITIALIZE CHECKSUM INA STA SIOPT LDA TBFST ADA MLENG CORRECT NEXT LOCATION STA BUFPT X1 LDA SIOPT,I STA BUFPT,I ADB A ADD CHECKSUM ISZ BUFPT ISZ SIOPT ISZ MLENG JMP X1 MORE WORDS LDA SIOPT,I CHECKSUM WORD CPB A JMP XFER,I CHECKSUM OK LDA MG16L LDB MG16 JSB PRINT,I CHECKSUM ERROR JMP START IRRECOVERABLE * PR NOP STB BUFF SAVE ADDRESS ALS CONVERT TO CHARS CLB STA LENG SAVE LENGTH STA CHC1 LDA UL52 STA ULFL INITIALIZE UPPER/LOWER FLAG LDA M12 STA EOTC INITIALIZE EOT COUNTER CLA STA CHC2 INITIALIZE WORD COUNTER PR1 STC TR,C PR2 SFS TR JMP *-1 PR3 LIA TR GET DATA AND B377 U SZB,RSS CHECK IF FIRST WORD SZA EOT CHECK IF CHAR=0 AND NO DATA YET JMP PRL ISZ EOTC JMP PR1 RETURN FOR ANOTHER CHAR JMP ETE END-OF-TAPE EXIT PRL SZB JMP PACK IF NOT FIRST CHAR, PROCESS CHAR STA TMPC SAVE CHAR LDB AFLG,I SZB ABSOLUTE BINARY? ADA B3 YES, ADD 3 STA B BLS ADB LENG SSB,RSS USE LESSER LENGTH JMP PRM STA B BLS CMB,INB STB CHC1 PRM LDA TMPC RECOVER CHAR PACK CLB,INB SET DATA FLAG TO YES STB TMPC SAVE DATA FLAG LDB ULFL SSB,RSS CHECK U/L FLAG JMP UPPER U FLAG IOR TCHAR L FLAG, PACK AND STORE STA BUFF,I ISZ BUFF JMP IND UPPER ALF,ALF STA TCHAR IND RBL SET U/L FLAG STB ULFL LDB TMPC RESTORE FLAG ISZ CHC2 COUNT CHAR INPUT ISZ CHC1 INDEX CHAR LENGTH JMP ED CCB BUFFER FILLED ETE LDA CHC2 ARS CONVERT TO WORDS JMP PR4 FINISH ED CLA JMP PR1 GET NEXT CHAR JMP PR1 MORE DATA PR4 CLC TR,C EOF JMP PR,I * CONPR NOP CONFIGURE PHOTOREADER DRIVER STA B IOR STC STA PR1 LDA B IOR SFS STA PR2 LDA B IOR LIA STA PR3 LDA B IOR CLC STA PR4 JMP CONPR,I * * MESSAGES * SUP MG1 DEF *+1 BLNKS ASC 20, CASSETTE PREPARE TAPE / DRUM SYSTEM MG1L DEC 40 MG2 DEF *+1 ASC 13,ENTER PHOTOREADER CHANNEL MG2L DEC 26 MG3 DEF *+1 ASC 10,NUMERIC INPUT ERROR MG3L DEC 20 MG4 DEF *+1 ASC 9,MAGTAPE NOT READY MG4L DEC 18 MG5 DEF *+1 ASC 7,NO WRITE RING MG5L DEC 14 MG6 DEF *+1 ASC 9,ABSOLUTE PROGRAMS MG6L DEC 18 MG7 DEF *+1 ASC 12,BEGIN WITH .IPL. , S.SIO  MG7L DEC 24 MG10 DEF *+1 ASC 3,NAME: MG10L DEC 6 MG11 DEF *+1 ASC 3,S.A. : MG11L DEC 6 MG12 DEF *+1 ASC 7,TYPE /C OR /P: MG12L DEC 14 MG13 DEF *+1 ASC 2,EOF MG13L DEC 4 MG14 DEF *+1 ASC 9,END OF TAPE ERROR MG14L DEC 18 MG15 DEF *+1 ASC 10,RELOCATABLE PROGRAMS MG15L DEC 20 MG16 DEF G16 G16 ASC 7,CHECKSUM ERROR MG16L DEC 14 MG17 DEF G17 G17 ASC 8,NEXT OPERATION: MG17L DEC 16 MG20 DEF G20 G20 ASC 7,RELOAD FILE 2 MG20L DEC 14 MG21 DEF G21 G21 ASC 11,RETRY OR RELOAD FILE 2 MG21L DEC 22 MG22 DEF G22 G22 ASC 9,CMTS TAPE COMPLETE MG22L DEC 18 * * CONSTANTS * PBUFL ABS BUFL NBUFL ABS -BUFL B3 OCT 3 UNDER OCT 10 BLANK OCT 40 B177 OCT 177 B377 OCT 377 B400 OCT 400 M377 OCT -377 AFL OCT 7677 UL52 OCT 52525 CORE OCT 170000 OVER OCT 177710 M60 OCT -60 M12 OCT -12 M10 OCT -10 M5 OCT -5 M3 OCT -3 M2 OCT -2 STC STC TR,C SFS SFS TR LIA LIA TR CLC CLC TR,C TR EQU 0 * * ASCII CONSTANTS * IE ASC 1,/E IA ASC 1,/A IB ASC 1,/B IC ASC 1,/C IP ASC 1,/P IR ASC 1,/R IS ASC 1,/S .IPL. DEF *+1 ASC 3,.IPL. S.SIO DEF *+1 ASC 3,S.SIO SLSH OCT 57 / COMMA OCT 54 , SCOLN OCT 73 ; COLON OCT 72 : * * STORAGE * AFLG NOP BUFF NOP LENG NOP CHC1 NOP CHC2 NOP ULFL NOP EOTC NOP TMPC NOP TCHAR NOP INLOG NOP ONCE NOP INDEV NOP TBFST NOP LDRCK NOP RLENG NOP MLENG NOP RECSA NOP MTBFL NOP BYTE NOP SAVIN NOP CNTR NOP SIOPT DEF IOB SIOBF DEF IOB NAMPT DEF NAM NAMBF DEF NAM NAM ASC 5, S.A. NOP NBFL NOP MTBFA NOP AFW DEF FW+1 ASW DEF FW+2 BUFPT DEF BUF INBUF DEF BUF IOB BSS 377B BUF BSS BUFL FW DEF * * END B@<0, NO. OF ASCII CHARACTERS * <0, TWO'S COMPLEMENT OF NO. OF BINARY WORDS * BUFF = STARTING ADDRESS OF THE INPUT DATA BUFFER * * A, ON RETURN FROM INPUT OPERATION CONTAINS THE * NO. OF CHARACTERS OR WORDS TRANSMITTED. * A = 0 INDICATES AN END-0F-TAPE CONDITION WITH * NO DATA TRANSMITTED. * * TTY OUTPUT: * CALLING SEQUENCE: * * LDA BUFL * LDB BUFF * JSB 102B,I * (RETURN) * * BUFL = LENGTH OF THE OUTPUT DATA BUFFER * > 0, NO. OF ASCII CHARACTERS * < 0, CALL REJECTED * BUFF = STARTING ADDRESS OF THE OUTPUT DATA BUFFER * * BUFL = 0 WILL OUTPUT A CR, LF. * * SIO INPUT UNIT: * CALLING SEQUENCE: * * LDA BUFL * LDB BUFF * JSB 101B,I * (RETURN) * * BUFL = LENGTH OF THE INPUT DATA BUFFER * > 0, NO. OF ASCII CHARACTERS * < 0, TWO'S COMPLEMENT OF NO. OF BINARY WORDS * BUFF = STARTING ADDRESS OF THE INPUT DATA BUFFER * * BUFF = 0 WILL CAUSE THE INPUT DECK TO BE REWOUND. * * A, ON RETURN FROM INPUT OPERATION CONTAINS THE * NO. OF CHARACTERS OR WORDS TRANSMITTED. * A = 0 INDICATES AN END-OF-TAPE CONDITION WITH * NO DATA TRANSMITTED. * * SIO OUTPUT UNIT: * CALLING SEQUENCE: * * LDA BUFL * LDB BUFF * JSB 103B,I * (RETURN) * * BUFL = LENGTH OF THE OUTPUT DATA BUFFER * > 0, NO. OF ASCII CHARACTERS * < 0, TWO'S COMPLEMENT OF NO. OF BINARY WORDS * BUFF = STARTING ADDRESS OF THE OUTPUT DATA BUFFER * * BUFF = 0 WILL CAUSE THE OUTPUT DECK TO BEr REWOUND. * (BUFF)= 0 WILL WRITE A FILE MARK ON THE OUTPUT DECK. * (ONLY FOR BUFL < 0) * BUFL = 0 WILL WRITE A CR,LF RECORD ON THE OUTPUT DECK. * * END-OF-TAPE: * * END-OF-TAPE FOR PAPER TAPE IS DEFINED AS TEN NULL * CHARACTERS. * END-OF-TAPE FOR CASSETTE TAPE IS DEFINED AS A * FILE GAP FOLLOWED BY A RECORD OF TWO TAPE * CHARACTERS ( 004B, 212B ). AFTER THE RETURN * TO THE CALLING PROGRAM, THE TAPE IS POSITIONED * AFTER THE FILE GAP RECORD. * * ERRORS: * * ERROR HALTS MAY OCCUR AS FOLLOWS: * * 102061B SELECTED DECK IS NOT READY RECOVERABLE * 102062B WRITE PROTECTED RECOVERABLE * 102063B END OF CASSETTE ON READ RECOVERABLE * 102064B WRITE ERROR IRRECOVERABLE * 102065B READ ERROR SEMI-RECOVERABLE * 102066B END OF CASSETTE ON WRITE RECOVERABLE * * EXTERNAL PARAMETERS: * * DECKI IS THE DECK NO. USED FOR READ REQUESTS. * DECKO IS THE DECK NO. USED FOR WRITE REQUESTS. * AFLG WHEN #0, ALLOWS READING ABSOLUTE BINARY * RECORDS BY CORRECTING THE RECORD LENGTH. * * THESE PARAMETERS MAY BE CHANGED BY USER PROGRAMS * FOR SPECIAL PURPOSES. THEY SHOULD BE * RESTORED AFTER USE TO AVOID ERRORS. * * ********** CONFIGURATION SECTION ********** * ORG 2B * KCORE EQU 20000B 8K CORE SIZE PAGE EQU 2000B * JMP 3B,I DEF CFIG HLT 4B HLT 5B * * SYSTEM LINKAGE * ORG 101B DEF READ DEF PRINT DEF PUN DEF INPUT BSS 1 LWAM EQU 7134B+KCORE-10000B DEF LWAM * * I/O CONFIGURATION * ORG KCORE-PAGE CFIG LIA 1 MTS SC IN B5-B0 AND M77 STA TEMP IOR RDY1 STA RDY1 STA RDYS1 STA MTSI2 LDA TEMP IOR WRCH1 STA WRCH1  STA MTSI1 LDA TEMP IOR STCCC STA STCCC STA MTSI3 LDA TEMP IOR OTAC STA OTAC HLT 1B MTS CONFIGURED LIA 1 TTY SC IN B5-B0 SSA,RSS JMP *+5 LDA TIL CONFIGURE FOR DECK 0 LDB TIS JSB MOVE JMP TC AND M77 STA TEMP IOR TT.3 STA TT.3 LDA TEMP IOR I.O1 STA I.O1 LDA TEMP IOR I.O3 STA I.O3 LDA TEMP IOR I.O4 STA I.O4 LDA TEMP IOR I.O5 STA I.O5 TC HLT 2B TTY IN CONFIGURED LIA 1 LP/TTY OUT SC IN B5-B0 SSA,RSS JMP *+5 LDA TOL CONFIGURE FOR DECK 0 LDB TOS JSB MOVE JMP LC AND M77 STA TEMP IOR TT.9 STA TT.9 STA O.O3 LDA TEMP IOR O.O1 STA O.O1 STA O.O2 LDA TEMP IOR O.O4 STA O.O4 LDA TEMP IOR O.O5 STA O.O5 LC HLT 3B LP CONFIGURED LIA 1 INPUT DECK NO. IN B1-B0 SSA,RSS JMP CIP LDA SIL CONFIGURE PHOTOREADER LDB SIS JSB MOVE LIA 1 AND M77 STA TEMP IOR PR1+PAGE STA PR1+PAGE LDA TEMP IOR PR2+PAGE STA PR2+PAGE LDA TEMP IOR PR3+PAGE STA PR3+PAGE LDA TEMP IOR PR4+PAGE STA PR4+PAGE JMP IC CIP ALF,ALF AND DECKO STA DECKI IC HLT 4B INPUT CONFIGURED LIA 1 OUTPUT DECK NO. IN B1-B0 ALF,ALF STA DECKO CCB HLT 77B CONFIGURATION COMPLETE JMP *-1 M77 OCT 77 * MOVE NOP MOVE DRIVERS TO LAST PAGE CMA,INA STA CNT STB ADD MOVA LDA B,I ADB B2000 STA B,I LDB ADD INB STB ADD ISZ CNT JMP MOVA JMP MOVE,I * CNT NOP ADD NOP B2000 OCT 2000 TI%L ABS TIF-TIB TIS DEF TIB TOL ABS TOF-TOB TOS DEF TOB SIL ABS RDF-RDR SIS DEF RDR * ********** ALTERNATE DRIVERS ********** * ORG LWAM-1777B * * DECK 0 KEYBOARD * TIB NOP JSB INS00-PAGE LDA TIB STA READ-PAGE CLA JMP MTS1-PAGE TIF NOP * * DECK 0 PRINTER * TOB NOP JSB INS00-PAGE SEZ,RSS JMP TOB,I BINARY REQUEST REJECTED LDA TOB STA READ-PAGE CLB JMP MTS7-PAGE TOF NOP * * PHOTOREADER * ORG LWAM-1777B+52B * RDR NOP JSB INS00-PAGE PR1 STC PR,C PR2 SFS PR JMP PR2 PR3 LIA PR JSB INS02-PAGE STORE DATA JMP PR1 PR4 CLC PR JMP RDR,I RDF NOP * PR EQU 0 * ORG LWAM+1 * ********** SIO KYBD SECTION ********** * INPUT NOP JSB INS00 TT.2 JSB I.O JSB INS02 JMP TT.2 TT.3 CLC TTY JMP INPUT,I * ********** PRINT SECTION ********** * PRINT NOP JSB INS00 SEZ,RSS JMP PRINT,I BINARY REQUEST REJECTED JSB OPS00 JMP TT.7 TT.5 JSB OPS01 JSB O.O JSB OPS02 JMP TT.5 JSB O.O TT.7 LDA LINF JSB O.O TT.9 CLC LP JMP PRINT,I * ********** TTY INPUT DRIVER ********** * I.O NOP LDA DA I.O1 OTA TTY I.O3 STC TTY,C I.O4 SFS TTY JMP *-1 I.O5 LIA TTY,C JMP I.O,I * ********** TTY/LP OUTPUT DRIVER ********** * O.O NOP IOR DD O.O1 OTA LP O.O2 OTA LP CLA O.O3 CLC LP O.O4 STC LP,C O.O5 SFC LP JMP O.O,I ISZ 0 JMP *-3 JMP O.O3 * ********** SIO READ SECTION ********** * READ NOP READ ENTRY JSB INS00 SETUP LDA DECKI A=DECK 2 MTS1 STA DECK JSB SRDY SELECT, TEST READY LDB BUFF SZB,RSS IF BUFFER ADDRESS = 0, JMP RWND GO REWIND DECK CLB NO DATA YET  LDA RDCMD A=READ JSB UFNT SEZ,RSS CLB,INB BINARY, B=1 MTSI1 SFS MTS JMP *-1 MTSI2 LIA MTS SSA ERROR? JMP RERR ALF,SLA END-OF-TAPE? JMP EOTR RAR,SLA,RAL FILE MARK? JMP FMK ALF,SLA READY? JMP REDY ALF,ALF MTSI3 STC MTS,C JSB INS02 PROCESS INPUT JMP MTSI1 * MTS5 STA B END OF RECORD LDA DECK SZA JMP MTS6 LDA HTCMD JSB UFNT STOP READING MTS6 JSB RDY LDA B COMP LDB DECK COMPLETION BLF,BLF DECK NUMBER TO LOW B JMP READ,I FINAL EXIT FMK CLA JMP MTS5 * REDY SEZ,RSS JMP INS11 BINARY SZB ASCII, DECK 0? JMP INS10 JMP EOT3 * ********** SIO OUTPUT SECTION ********** * PUN NOP PUNCH ENTRY JSB INS00 SETUP LDB PUN SET EXIT STB READ LDB DECKO B=DECK 3 MTS7 STB DECK JSB SRDY SELECT, TEST READY AND M100 TEST FOR SZA WRITE PROTECT JMP WLO LDB BUFF SZB,RSS IF BUFFER ADDRESS = 0, JMP RWND GO REWIND DECK SEZ IF BINARY WRITE AND JMP *+4 LDB BUFF,I SZB,RSS IF FIRST WORD = 0, JMP WFM GO WRITE FILE MARK CLB NO DATA YET LDA WRCMD A=WRITE JSB UFNT JSB OPS00 PROCESS OUTPUT JMP MTS9 MTS8 JSB OPS01 JSB WRCH JSB OPS02 JMP MTS8 SEZ,RSS JMP MTS10 BINARY JSB WRCH MTS9 LDA LINF JSB WRCH MTS10 JSB RDY ALF,ALF ALF,SLA JMP EOTW JMP COMP * WRCH NOP WRCH1 SFS MTS WAIT FOR FLAG JMP WRCH1 JSB UFNT OUTPUT CHARACTER JSB RDYS JMP WRCH,I JMP WERR READY,ERROR,HALT * WFM LDA WFCMD  JSB UFNT JMP MTS9-1 * RWND JSB SRDY LDA RWCMD JSB UFNT JMP COMP * **********SIO ERROR HALTS ********** * EOTR HLT 63B *READ EOT HALT ******************** EOT3 LDA BUFS STA BUFF LDA LENG CLB JMP INS01 TRY AGAIN * EOTW HLT 66B *WRITE EOT HALT ******************* LDA BUFS STA BUFF JMP SRDY1 TRY AGAIN * NRDY LDA DECK SZA JMP NRDY. NOT DECK 0 LDA HTCMD JSB UFNT MAKE DECK 0 READY JMP SRDY1 NRDY. LDA N60 STA TEMP NRDY1 JSB RDYS RSS JMP SRDY1 ISZ WRCH JMP NRDY1 ISZ TEMP JMP NRDY1 NRDY2 HLT 61B *NOT READY HALT ******************* JMP SRDY1 RETEST READY * RERR HLT 65B *READ ERROR HALT ****************** JMP EOT3 TRY AGAIN * WERR ALF,ALF ALF,SLA JMP EOTW LDA DECK SZA,RSS JMP SRDY1 DECK 0 HLT 64B *WRITE ERROR HALT ***************** JMP *-1 IRRECOVERABLE * WLO HLT 62B *WRITE PROTECTED ****************** JMP SRDY1 TRY AGAIN * SRDY NOP SRDY1 CLA JSB UFNT SELECT DECK JSB RDYS JMP NRDY NOT READY, HALT JMP SRDY,I * RDYS NOP RDYS1 LIA MTS GET STATUS ALF,ALF SLA ISZ RDYS READY, SKIP ONE JMP RDYS,I * UFNT NOP IOR DECK OTAC OTA MTS,C STCCC STC MTS,C JMP UFNT,I * RDY NOP RDY1 LIA MTS ALF,ALF SLA,RSS JMP RDY1 LOOP UNTIL READY JMP RDY,I * ********** INPUT SUBROUTINES ********** * INS00 NOP STB BUFF SAVE BUFFER ADDRESS STB BUFS CCE,SSA E=1 FOR ASCII ALS,CLE,SLA BINARY, CONV. TO CHAR. CMA,INA ASCII, NEGATE CLB NO DATA YET FLAG (SKIPS LEADER) STA LENG (NEGATIVE CHARS. REQUESTED) INS01 STA CHC1 LDA UL52 UL FLAG INITIALIZED STA ULFL TO UPPER LDA FFCT STA EOTC INIT EOT COUNTER CLA CHAR. INPUT =0 STA CHC2 JMP INS00,I * INS02 NOP AND M377 SEZ AND M177 ASCII, BITS 0-6 SZB,RSS BINARI BITS 0-7 SZA EOT CHECK IF CHAR=0 AND NO DATA YET JMP INS03 PROCESS CHAR. ISZ EOTC JMP INS02,I JMP INS12 EOT EXIT * * BINARY RECORD LENGTH SECTION * INS03 SEZ ASCII? JMP INS04 YES GO EXAMINE CHAR. SZB IF NOT FIRST CHAR. JMP INS05 GO PACK CHAR. STA TTTMP LDB AFLG SZB ABSOLUTE BINARY? ADA M3 YES, ADD 3 STA B BLS ADB LENG CLE,SSB,RSS USE LESSER BUFFER LENGTH JMP INS13 STA B BLS CMB,INB STB CHC1 INS13 LDA TTTMP JMP INS05 GO PACK CHARS * * CHARACTER EXAMINATION SECTION, ASCII * INS04 CPA RETN. JMP INS08 IGNORE CR, NEXT CHAR. CPA M177 JMP INS09 RUBOUT, RESET FOR NEXT RECORD CPA LINF. JMP INS10 LF, TERMINATE READ SSB JMP INS08 B=-1, LF REQUIRED, GET NEXT CHAR. INS05 CLB,INB B=1 INDICATES RECORD BEING TRANSMITTED STB TTTMP * * DATA PACK/STORE SECTION * LDB ULFL SSB,RSS JMP INS06 U FLAG IOR CHAR L FLAG, PACK AND STORE STA BUFF,I ISZ BUFF JMP INS07 INS06 ALF,ALF ROTATE SAVE STA CHAR INS07 RBL SET INDICATOR STB ULFL LDB TTTMP RESTORE DATA-IN FLAG ISZ CHC2 COUNT CHAR INPUT ISZ CHC1 INDEX CHAR LENGTH JMP INS08 CCB,SEZ,RSS BUFFER FILLED JMP INS12 BINARY GOTO EXIT INS08 CLA JMP INS02,I * * RUBOUT PROCESSOR * INS09 LDA BUFS STA BUFF LDA LENG CCB JMP INS01  * * LF PROCESSOR * INS10 CLB LDA LENG CPA CHC1 JMP INS02,I READ NEXT RECORD, NOCHARS OR RUBOUT * * CHECK CURRENT POSITION * INS11 LDB ULFL LDA CHAR IOR BLANK SSB STA BUFF,I LAST CHAR A BLANK ,ODD RECORD * * COMPLETION SECTION * INS12 LDA CHC2 A=CHAR COUNT SEZ,RSS ARS ISZ INS02 JMP INS02,I * ********** OUTPUT SECTION ********** * OPS00 NOP LDB ULFL LDA LENG SZA 0 LENGTH RECORD? ISZ OPS00 STA CHC1 JMP OPS00,I * * CHARACTER OUTPUT SECTION * OPS01 NOP LDA BUFF,I SSB,RSS ALF,ALF AND M377 SEZ IOR M200 ASCII, INCLUDE B7 JMP OPS01,I * OPS02 NOP RBL,SLB ISZ BUFF ISZ CHC1 JMP OPS02,I * * OUTPUT COMPLETION SECTION * LDA RETN ISZ OPS02 JMP OPS02,I * ********** CONSTANTS AND STORAGE ********** * CHC2 NOP ULFL NOP EOTC NOP LENG NOP LINF. OCT 12 RETN. OCT 15 BLANK OCT 40 M100 OCT 100 M177 OCT 177 M200 OCT 200 LINF OCT 212 RETN OCT 215 M377 OCT 377 WRCMD OCT 2000 HTCMD OCT 10000 RWCMD OCT 20000 WFCMD OCT 42004 UL52 OCT 52525 N60 DEC -60 FFCT DEC -10 N3 DEC -3 N2 DEC -2 TTTMP NOP M3 OCT 3 RDCMD OCT 4000 DECK NOP TEMP NOP BUFF NOP BUFS NOP CHC1 NOP CHAR EQU EOTC MTS EQU 0 A EQU 0 B EQU 1 TTY EQU 0 LP EQU 0 DA OCT 160000 DD OCT 130000 COM NOP * * THESE VARIABLES ARE AVAILABLE EXTERNALLY * ORG KCORE-103B * DECKI OCT 1000 DECKO OCT 1400 AFLG NOP END ASMB,A,B,L HED SIO CASSETTE DRIVER TEST ORG 100B JMP 110B BSS 7 BEGIN LDA BUFL ACCEPT INPUT LDB BUFF FROM JSB 104B,I TTY STA SAVE SAVE LINE LENGTH LDA BUFF,I GET FIRST WORD CPA EOT CHECK FOR ^D JMP FMK YES, END OF INPUT LDA SAVEPl<:6 RECOVER LINE LENGTH LDB BUFF WRITE LINE ON JSB 103B,I OUTPUT CASSETTE JMP BEGIN GO GET MORE LINES FMK CLA WRITE FILE MARK STA BUFF,I (BUFF)=0 CMA BINARY WRITE REQUEST LDB BUFF JSB 103B,I CLA REWIND OUTPUT DECK CLB BUFF=0 JSB 103B,I HLT 1 HALT TO MOVE CASSETTE TO INPUT DECK READ LDA BUFL READ LINE FROM LDB BUFF INPUT JSB 101B,I CASSETTE SZA,RSS CHECK FOR FILE MARK JMP END YES, TERMINATE READING LDB BUFF WRITE LINE ON JSB 102B,I TTY JMP READ GO GET MORE LINES END CLA REWIND CLB INPUT JSB 101B,I DECK HLT 2 HALT TO MOVE CASSETTE TO OUTPUT DECK JMP BEGIN RESTART PROGRAM CONTROL D SAVE NOP SAVE FOR LINE LENGTH BUFL DEC 72 72 CHARACTERS MAXIMUM BUFF DEF *+1 ADDRESS OF LINE BUFFER BSS 36 LINE BUFFER END <  22681-18043 1506 SC 0122 PING PONG              H0101 FTN4,L PROGRAM PONG INTEGER BIT,BUMP,SENSE,TIMER INTEGER NAM15(5),NAM00(5) INTEGER BIT15,BIT00,SERVE INTEGER SERVR,NEXTS,SWAP DATA NAM15/5*2H / DATA NAM00/5*2H / DATA NO/2HNO/ WRITE(1,100) 100 FORMAT(" HP PING-PONG"/" WHO'S PLAYING BIT 0?") READ(1,101) NAM00 101 FORMAT(5A2) WRITE(1,102) 102 FORMAT(" BIT 15?") READ(1,101) NAM15 75 BIT15 = 0 BIT00 = 0 SERVE = 0 SERVR = 1 NEXTS = 2 TIMER = 0 1 BIT = 1 BUMP = 1 5 CALL OTA(BIT) CALL WAIT(TIMER) CALL LIA(SENSE) IF( BIT .EQ. 0 ) GO TO 10 IF( BIT .EQ. 15) GO TO 20 BIT = BIT + BUMP GO TO 5 10 SERVE = SERVE+1 IF( SENSE .EQ. 0 ) GOTO 30 CALL SETIM(-1,TIMER) BIT15 = BIT15 + 1 GO TO 50 15 CALL SETIM(1,TIMER) 16 BIT = 14 BUMP = -1 GO TO 5 20 SERVE = SERVE + 1 IF( SENSE .EQ. 0 ) GO TO 15 25 CALL SETIM(-1,TIMER) BIT00 = BIT00+1 GO TO 50 30 CALL SETIM(1,TIMER) GO TO 1 50 WRITE(1,103) NAM00,BIT00,NAM15,BIT15 103 FORMAT(/" MISS!"/2(5X,5A2,I3/)/) IF( BIT15 .EQ. BIT00 ) GO TO 60 IF( BIT15 .EQ. 21 .OR. BIT00 .EQ. 21 ) GO TO 90 60 IF( SERVE .NE. 5 ) GO TO 70 SERVE = 0 SWAP = SERVR SERVR = NEXTS NEXTS = SWAP 70 GO TO ( 1,16 ), SERVR 90 WRITE(1,104) 104 FORMAT(" *** G A M E ***"//" AGAIN?") READ(1,105) ITCH 105 FORMAT(1A2) IF( ITCH .EQ. NO ) STOP GO TO 75 END END$ ASMB,L HED *** PING-PONG UTILITY ROUTINES *** NAM JUNK,7 ENT OTA,LIA,WAIT,SETIM EXT .ENTR *** BIT NOP OTA NOP JSB .ENTR DEF BIT LDA BIT,I CMA STA BIT CLA,INA,RSS RAL ISZ BIT JMP *-2 OTA 01B JMP OTA,I *** *** SENSE NOP LIA NOP JSB .ENTR DEF   SENSE LIA 01B STA SENSE,I JMP LIA,I *** *** TIMER NOP WAIT NOP JSB .ENTR DEF TIMER LDA TIMER,I ISZ 0 JMP *-1 JMP WAIT,I *** *** SWTCH NOP TIME NOP SETIM NOP JSB .ENTR DEF SWTCH LDA SWTCH,I LDB TIME,I CCE,SSA JMP HALF ERB JMP EXIT HALF CLE,ELB EXIT STB TIME,I JMP SETIM,I *** END   22681-18044 1507 SC 0122 MODIFIED DOS-III SYSTEM CONSOLE DRIVER DVROX             H0101 ASMB,R,L,B,C D.O.S. DRIVER <05> SYSTEM TELEPRINTER HED D.O.S. DRIVER <05> SYSTEM TELEPRINTER NAM DVR05,0,0 * ******** 6/23/73 FULL EXPERIMENTAL VERSION * ENT I.05,C.05 * ****** PROGRAM DESCRIPTION ****** * * DRIVER 05 OPERATES UNDER THE CONTROL OF THE * I/O CONTROL MODULE OF THE D.O.S. EXECUTIVE * THIS DRIVER IS RESPONSIBLE FOR CONTROLLING DATA * TRANSMISSION WITH THE ASR 33 SYSTEM TELEPRINTER WITH * A 2114 PARALLEL INTERFACE. <05> IS THE EQUIPMENT * CODE ASSIGNED TO THIS TYPE OF DEVICE. I.05 IS * THE ENTRY POINT FOR THE *INITIATION* SECTION AND * C.05 FOR THE *COMPLETION* SECTION. * * - THE INITIATION SECTION IS CALLED FROM I/O * CONTROL TO INITIALIZE A DEVICE AND INITIATE * A DATA TRANSFER * * CALLING SEQUENCE: * * - ADDRESSES OF DEVICE EQT ENTRY * SET IN "EQT1-EQT17" - * * (A) = I/O ADDRESS OF DEVICE * * (P) JSB I.05 * (P+1) - RETURN - * * (A) = 0, OPERATION INITIATED, OR * (A) = REJECT CODE: * * 2, ILLEGAL CONTROL REQUEST, * OR CONTROL FUNCTION HAS * BEEN DONE (E.G., SET EOT * STATUS). * * - THE COMPLETION SECTION IS CALLED BY CENTRAL * INTERRUPT CONTROL TO CONTINUE OR COMPLETE * AN OPERATION. * * CALLING SEQUENCE: * * - ADDRESSES OF DEVICE EQT ENTRY * SET IN "EQT1-EQT17" - * * (A) = I/O ADDRESS OF DEVICE * * (P) JSB C.05 * (P+1) -- COMPLETION RETURN -- * (P+2) -- CONTINUATION RETURN -- * * - COMPLETION RETURN: * (A) = 0, SUCCESSFUL COMPLETION WITH * (B) = # WORDS OR CHARS. TRANSFERRED * * - CONTINUATION RETURN: REGISTERS * MEANINGLESS. * * * - RECORD FORMATS: * * ASCII (INPUT): A STRING OF CHARACTERS TERMIN- * ATED BY A CARRIAGE RETURN. IF B~* THE REQUESTED LENGTH IS FULFILLED * BEFORE A CARRIAGE RETURN, THE RE- * MAINING CHARACTERS ARE IGNORED * UNTIL A CARRIAGE RETURN IS INPUT. * THE 8-LEVEL BIT (BIT 07) IS * SET = 0 FOR 7-BIT ASCII CODE. * * SPECIAL CHARACTER PROCESSING: * * LINEFEED - ALWAYS IGNORED AND IS NOT * TRANSMITTED TO USER BUFFER * RETURN - IGNORED IF INPUT BEFORE * THE FIRST VALID CHARACTER * OF A RECORD; RECORD TERMINATOR * AT THE END OF A RECORD AND IS * NOT TRANSMITTED TO BUFFER OR * COUNTED. * CONTROL/H - DELETES PREVIOUS CHARACTER, * OUTPUTS BACK-SLASH. * CONTROL/A - SAME AS CONTROL/H * CONTROL/X - DELETES CURRENT RECORD; * OUTPUTS THREE EXCLAMATION MARKS * CARRIAGE RETURN, LINE-FEED. * RUBOUT - SAME AS CONTROL/X * * ASCII (OUTPUT): A STRING OF CHARACTERS, THE * ----- NUMBER DESIGNATED BY THE * "BUFFER LENGTH" IN THE REQUEST, * TERMINATED BY A RETURN AND * LINE-FEED (SUPPLIED BY THE * DRIVER). * * * A ZERO BUFFER LENGTH CAUSES ONLY A * RETURN/LINE-FEED TO BE OUTPUT. * * * - SYSTEM TELETYPE PROCESSING: THE SYSTEM * TELETYPE IS ALWAYS LEFT IN THE * "INPUT STATE" WITH CONTROL SET/ * FLAG CLEARED TO LEAVE THE KEYBOARD * ACTIVE. IF A KEY IS STRUCK WITH * NO INPUT IN EFFECT, THE FLAG * "OPATN" IN BASE PAGE IS SET NON- * ZERO. IF A KEY IS STRUCK DURING * AN OUTPUT OPERATION TO THE SYSTEM * TTY, THE FLAG IS SET. * * NOTE: THE I/O INSTRUCTIONS IN THIS DRIVER AR.E CONFIGURED * BY THE DISC-RESIDENT BOOTSTRAP PROGRAM. HED < DRIVER 05 *INITIATION* SECTION > * ********* INITIATION SECTION ********** * * I.05 DEF IO9 * LDA 214B,I FIX UP EQT10 BUG. STA EQT10,I MOVE EQT10 TO EQT6 * LDA EQT9,I GET CONTROL WORD OF REQUEST, AND .3 ISOLATE AND CPA .3 JMP CONTL * * * CONSTRUCT DEVICE PROGRAM CODE ACCORDING TO REQUEST * MSET IOR PRINT SET BITS 15,14,13 * CCE,SLA,RSS IF WRITE REQUEST, IO0 ALR,ERA CLEAR BIT 14 * * * SELECT DEVICE OPERATING CONDITIONS - DEVICE * NEEDS TO BE SELECTED ONLY ONCE FOR EACH * OPERATION. * IO1 OTA 0 * * INITIALIZE FLAGS, CURRENT BUFFER ADDRESS AND LENGTH * JSB BFSET SET EFF BFR ADRS AND COUNT * RETN OCT 15 -SLA- INSTRUCTION * * OUTPUT OR CONTROL REQUEST * JSB C.05 EXECUTE COMPLETION SECTION IO2 STC 0 TURN UNIT ON * IEXIT CLA (A) = 0 FOR INITIATION OF REQUEST STA EQT14,I JMP I.05,I IEXTA DEF IEXIT-1 ADDRESS OF RETURN TO INITIATOR * * CONTL XOR EQT9,I ISOLATE FUNCTION CODE CPA .1100 FUNCTION = LINE SPACING? JMP LNSPC -YES LDA .4 -NO, JMP I.05,I RETURN IMMEDIATE COMPL. * LNSPC LDB EQT10,I SSB,RSS CMB,INB STB EQT13,I RBR STB EQT10,I LDA .2 JMP MSET * * * SET EFFECTIVE BFR ADDRESS - PROTECT AGAINST 0 CHAR * BFSET NOP LDB EQT10,I CONVERT BUFFER ADDRESS TO EVEN RBL CHARACTER ADDRESS AND SET STB EQT12,I AS CURRENT BUFFER ADDRESS * LDB EQT11,I GET BUFFER LENGTH CMB,CCE,SSB,INB *CHECK IF WIRDS OR CHARS BLS,SLB -WORDS, CONVERT TO NEG CHARS CMB,INB -CHARS, RESET NEGATIVE RAR,SLA JMP *+3 SZB,RSS PROTECT AGAINST CCB 0 CHARACTERS STB EQT13,I JMP BFSET,I HED < DRIVER 05 *COMPLETION* SECTION > * ********* COMPLETION SECTION ********** * * C.05 NOP * LDA C.05 CPA IEXTA ENTRY FROM INIT. SECTION? JMP D20 -YES, SKIP OP. ATTN. CHECK LDB EQT4,I SSB JMP D20 THEN SET ISZ OPATN OPERATOR ATTENTION FLAG ISZ C.05 JMP C.05,I * D20 LDB EQT9,I GET REQUEST CONTROL WORD RBR,SLB,RBL CHECK REQUEST CODE JMP D31 -WRITE OR CONTROL * * INTERRUPT INPUT SECTION * LDA EQT14,I CPA LINF TEST IF CR/LF JMP D26.3 CPA EXCLM TEST IF RUBOUTPROCEDURE JMP D24.1 CPA RETN TEST IF RUBOUT PROCEDURE #2 JMP D26.2 CPA BACKS TEST IF CTRL/H PROCEDURE JMP D25.1 IO3 LIA 0 INPUT CHARACTER * * ASCII INPUT PROCESSING * AND MASK1 REMOVE 8-LEVEL BIT CPA RUB JMP D24 - RUBOUT - CPA CTRLX JMP D24 CONTROL/X CPA RETN JMP D26 SSB,RSS EXIT IF WAITING FOR LINE FEED CPA LINF JMP CXT1 - RETURN - CPA .10 JMP D25 - CONTROL/H - CPA .1 JMP D25 CONTROL/A * * STORE CHARACTER IN USER BUFFER * LDB EQT12,I GET CURRENT BUFFER ADDRESS. CLE,ERB CONVERT TO WORD ADDR., CHARACTER ISZ EQT12,I POSITION IN E, INDEX ADDRESS. SEZ,RSS SHIFT TO UPPER POSITION IF ALF,ALF EVEN ADDRESS. STA BFSET -SAVE CHAR- LDA MASK2 POSITION SEZ,CCE CHARACTER MASK (377) ALF,ALF TO PROPER POSITION AND B,I GET OPPOSITE CHAR. FROM BUFFER, IOR BFSET INSERT NEW AND STA B,I REPLACE FULL WORD. * LDA EQT9,I SET DATA-IN FLAG AND LFEED TO ALR,ARS MEAN RECORD IN PROGRESS ISZ EQT13,I ADD 1 TO CHARACTER INDEX. .40 OCT 40 -CLE- INSTRUCTION * * CHARACTER COUNT EXHAUSTED * CXT0 ALR,ERA FORCE A LINE-FEED TO TERMINATE STA EQT9,I AN ASCII RECORD * * CONTINUATION EXIT * CXT1 ISZ C.05 JMP CXT2 SKP * RUB-OUT CODE PROCESSOR (DELETION OF ASCII RECORD) * D24 JSB BFSET * LDA LINCN OTA 0 LDA EXCLM EXCLAMATION MARK OTA 0 OUTPUT IT STA EQT14,I SAVE IT FOR FLAG LDA N3 STA BFSET INITIALIZE EXCLAMATION COUNT LDA EQT9,I GET REQUEST CONTROL WORD JMP CXT0 - EXIT - D24.1 ISZ BFSET INCREMENT COUNT JMP IO9 OUTPUT EXCLAMATION MARK JMP D26.1 DONE, SO C-RETURN AND LINE-FEED * * * CONTROL/H PROCESSOR (CHARACTER DELETION) * D25 JSB D2526 * ADB N1 SUBTRACT 1 FROM CURRENT STB EQT12,I CHAR BFR ADDRESS LDA EQT13,I SUBTRACT 1 FROM ADA N1 CURRENT STA EQT13,I CHARACTER INDEX. LDA LINCN OTA 0 LDA BACKS STA EQT14,I SAVE IT FOR FLAG JMP IO9 D25.1 LDA PRINT STA EQT14,I CLEAR CONTROL/H FLAG JMP IO9 RETURN TO INPUT MODE, EXIT * D2526 NOP LDA EQT10,I RAL CPA EQT12,I JMP D25.1 TURN BACK TO INPUT MODE LDB EQT12,I JMP D2526,I * * * RETURN PROCESSOR (RECORD TERMINATOR) * D26 LDA LINCN OTA 0 JMP D26.2 OUTPUT L-FEED AND C-RETURN D26.1 LDA RETN C-RETURN SSA SKIP D26.2 LDA LINF LINE-FEED STA EQT14,I REMEMBER IT JMP IO9 OUTPUT LINE-FEED HED < STATUS AND TRANSMISSION COMPLETION SECTION > * * STATUS AND TRANSMISSION COMPLETION SECTION * D26.3 BLR,BRS CLEAR C-RETURN FLAG STB EQT9,I JSB D2526 RETURN IF EMPTY INPUT LINE CLE,ERB IF ODD # OF LDA B,I CHARACTERS WAS AND MASK4 INPUT, THEN SET IOR .40 LOWER CHARACTER SEZ OF LAST WORD STA B,I = TO BLANK (SPA-CE) LDA EQT13,I GET CHAR INDX (- OR 0) D27 LDB EQT11,I AND ORIGINAL BUFFER LENGTH. INA SSB,RSS .1100 ARS SSB CMB,CCE ADB A * * COMPLETION EXIT SECTION * IO5 CLC 0 CLEAR DEVICE CONTROL * CLA,CCE ERA,ARS SET SYSTEM TELETYPE IN INPUT IO6 OTA 0 MODE. IO7 STC 0,C CXT2 EQU IO7 * CLA JMP C.05,I EXIT TO INTERRUPT CONTROL HED < OUTPUT COMPLETION SECTION > * * INTERRUPT OUTPUT SECTION * D31 CPA IEXTA IF THIS CALL IS TO OUTPUT FIRST JMP D32 CHARACTER, SKIP ATTN CHECK. * IO8 LIA 0 GET I/O REGISTER AND MASK2 CONTENTS (BITS 07-00). XOR MASK2 IF = 377 (I.E, NO KEY STRUCK DUR- IOR OPATN * * OPERATOR DESIRES SYSTEM ATTENTION AT SYSTEM TTY. * STA OPATN SET OP-ATTN FLAG NON-ZERO. * * WRITE RECORD REQUEST * D32 CLA CPA EQT12,I IF CURRENT BFR ADDRS = 0, THEN JMP D27 GO SET TRANSMISSION LOG * CPA EQT13,I IF CURRENT CHARACTER INDEX = JMP D33 0, THEN OUTPUT END OF RECORD. LDA EQT12,I GET CURRENT CHAR. BUFFER ADDRESS ISZ EQT12,I INDEX FOR NEXT CHAR. DFLNF CLE,ERA CONVERT TO WORD ADDRESS SLB CONTROL REQUEST? LDA DFLNF -YES, LOAD LINE FEED ADDRESS PRINT LDA A,I GET WORD AND SEZ,SLB,RSS POSITION PROPER ALF,ALF CHARACTER IN A(07-00). AND MASK2 REMOVE UPPER POSITION DATA. * ISZ EQT13,I INDEX CHARACTER COUNTER. JMP IO9 -NOT LAST CHAR IN BFR * CPA ARROW LAST CHAR = <_>? JMP D27 -YES, OMIT IT AND R.LF * * OUTPUT CHARACTER TO PRINTER/PUNCH UNIT * IO9 OTA 0 OUTPUT CHAR. TO INTERFACE BUFFER. * JMP CXT1 RETURN TO INTERRUPT CONTROL. SKP * * END-OF-RECORD PROCESSING * * D33 LDA RETN OUTPUT A C-R YET? CPA EQT14,I SSA YES, SO SKIP M*($JMP D26.1 OUTPUT CARRIAGE RETURN CLB STB EQT12,I LAST CHARACTER - SET BUFF=0 JMP D26.2 OUTPUT LINE-FEED * * * CONSTANTS * ARROW OCT 137 LINCN OCT 120000 BACKS OCT 134 BACK-SLASH EXCLM OCT 41 EXCLAMATION MARK CTRLX OCT 30 CONTROL/X HED ** SYSTEM BASE PAGE COMMUNICATION AREA ** * *** SYSTEM BASE PAGE COMMUNICATION AREA *** * * A EQU 0 DEFINE SYMBOLIC REFERENCE FOR B EQU 1 A AND B REGISTERS. * .. EQU 53B N3 EQU ..-3 N1 EQU ..-1 .1 EQU ..+1 .2 EQU ..+2 .3 EQU ..+3 .4 EQU ..+4 .10 EQU ..+8 < CTRL/H > LINF EQU ..+10 < LINE FEED (OCT 12) > MASK1 EQU ..+16 7-BIT ASCII RUB EQU ..+16 MASK2 EQU ..+17 ARACTER MASK MASK4 EQU ..+18 UPPER CHAR. AND STATUS MASK * . EQU 100B ESTABLISH ORIGIN OF AREA * * * I/O MODULE/DRIVER COMMUNICATION * EQT4 EQU .+70 EQT6 EQU .+72 EQT9 EQU .+75 EQT10 EQU EQT6 EQT11 EQU .+77 EQT12 EQU .+78 EQT13 EQU .+79 EQT14 EQU .+80 * * * SYSTEM MODULE COMMUNICATION FLAGS * * OPATN EQU .+112 OPERATOR/KEYBOARD ATTENTION FLAG END *  22681-18045 1507 SC 0222 SFRFD: CONVERTS STRING OF ASCII CHARACTERS             H0102 =)ASMB,R,L,T,C NAM SFRFD,7 * * SUBROUTINE FREE FIELD * * THIS IS A FREE FIELD ROUTINE WHICH READS ASCII * DATA FROM A DEVICE (LOGICAL UNIT # LUN) AND/OR CONVERTS THE * DATA INTO ASCII STRINGS AND/OR INTEGERS. * THE ARGUMENTS ARE: * * FUN - FUNCTION NUMBER * 0 = READS, CONVERTS, AND PRINTS ERROR MESSAGES IF ANY * 1 = READS, CONVERTS, AND PRINTS NO ERROR MESSAGES * 2 = CONVERTS AND PRINTS ERROR MESSAGES IF ANY * 3 = CONVERTS AND PRINTS NO ERROR MESSZGES * NOTE: IF ANY ERRORS THEN THE PROGRAM RETURNS * IMMEDIATELY AFTER THE JSB OR CALL STATEMENT. * IF NO ERRORS THEN THE RETURN ADDRESS IS INCREMENTED * BY ONE. * ON RETRUN IF THE ERROR WAS "ILLEGAL INTEGER" * THEN THE B-REG IS 0 * IF THE ERROR WAS "INTEGER OVERFLOW" THEN THE B-REG * IS SET TO 1 * * LUN = LOGICAL UNIT OF INPUT DEVICE * * TYPE = A BUFFER SPECIFYING THE TYPES OF DATA * -X = IF ASCII THE TYPE # IS NEGATIVE OF MAXIMUM * NUMBER OF CHARACTERS STORED IN THE RESL BUFFER. * BLANKS ARE PLACED IN ALL UNUSED SPACES IF LESS * THEN MAX NUMBER OF CHARACTERS ARE INPUT * +X = IF INTEGER THEN TYPE # IS POSITIVE *- 0 = IF ZERO THEN END OF BUFFER -- RETURN * * INBUF = INPUT BUFFER CONTAINING THE ASCII CHARACTERS * INPUT (FUN = 2,3) OR THAT WILL BE READ BY THIS * ROUTINE (FUN=0,OR 1). * * BSIZE = SIZE OF INPUT BUFFER (IN WORDS) * * RESL = BUFFER CONTAINING THE RESULTS. * NOTE: INTEGER STRINGS ARE REDUCED TO ONE WORD WHEN * STORING RESULTS IN THIS BUFFER. IF THE MAXIMUM NUMBER * OF ASCII CHARACTERS WAS AN ODD NUMBER THEN A BLANK * IS STORED TO FILL THE LAST WORD. * * DLM = DELIMITER SEPERATING THE STRINGS IN THE INPUT DATA * (ASCII FORMAT OF CHARACTER IN BITS 0-7) * NOTE: A BLANK WILL END AN INTEGER STRING. * IF SUCH A CASE HAPPENS THEN THE PROGRAM WILL * IGNORE ALL FOLLOWING CHAR@ACTERS UNTIL A DELIMITER * IS FOUND OR THE END OF THE BUFFER IS REACHED. * ENT SFRFD EXT EXEC,.ENTR FUN NOP LUN NOP TYPE NOP INBUF NOP BSIZE NOP RESL NOP DLM NOP SFRFD NOP JSB .ENTR GET ADDRESS PARAMETERS DEF FUN LDA LUN,I GET INPUT LGCICAL UNIT # STA LUN LDA DLM,I GET DELIMITER AND M177 STA DLM LDA BSIZE,I GET BUFFER SIZE STA BSIZE ALS STA MNOC STORE # OF CHARACTERS LDA INBUF GET 1ST BYTE ADR ALS OF INPUT DATA STA BADR LDA RESL GET BYTE ADR ALS OF RESULTS STA SBADR TABLE LDA FUN,I STA FUN GET FUNCTION NUMBER CPA D2 JMP STBL DON'T INPUT CPA D3 JMP STBL DON'T INPUT * * INPUT * LDA BSIZE STORE NEG OF ALS OF NUMBER OF CMA,INA CHARACTERS STA TEMP JSB EXEC DEF *+5 DEF D1 DEF LUN DEF INBUF,I DEF TEMP STB MNOC STORE # OF CHARACTERS INB BRS STB BSIZE STBL LDA TYPE GET TYPE BUFFER STA TEMP ADR. CLA HOP LDB TEMP,I GET TYPE ISZ TEMP INC ADR SSB JMP ADASC NEG OF ASCII CHA*R. SZB,RSS JMP STORE END OF TYPE BUFFER INA JMP HOP INTEGER - ADD ONE ADASC CMB,INB GET # OF CHAR INB BRS GET # OF WORDS ADA 1 AND ADD JMP HOP STORE LDB BLANK STORE BLANKS IN ADA RESL RESULTS BUFFER STA ENDBF LDA RESL BACK CPA ENDBF JMP AHEAD STB 0,I INA JMP BACK AHEAD CLA ZERO CHARACTER STA CCTR COUNTER TYPN LDA TYPE,I GET TYPE NUMBER ISZ TYPE INCREMENT TYPE BUF ADR SSA JMP ASCII ASCII DATA SZA JMP INTEG INTEGER DATA ISZ SFRFD ICNCREMENT RETURN ADR JMP SFRFD,I * * ASCII STRING * ASCII CMA,INA GET # OF ASCII STA ACT CHAR. IN STRING LDA SBADR SAVE THIS BYTE ADR STA SAVE CLA CLEAR ASCII STA ACTR CHAR CTR ANOTH JSB OVFL? OVERFLOW? JMP AFIN YES LDA ACTR CPA ACT OVER COUNT? JMP OVCT YES INA INCREMENT STA ACTR ASCII CHAR CTR JSB LDCH GET CHARACTER CPA DLM DELIMITER? JMP AFIN YES * * STORE CHARACTER IN RESULTS BUFFER * CHAR IS IN BITS 0-7 OF A-REG * BYTE ADR IN SBADR * BLANKS HAVE PREVIOUSLY BEEN STORED IN RESL BUFFER. * STCH LDB SBADR GET BYTE ADDRESS CLE,ERB E-REG = BYTE # SEZ,RSS IF BYTE IS 0 THEN SHIFT ALF,ALF STA TEMP SAVE LDA 1,I GET DESTINATION WORD CONTENTS SEZ,RSS IF BYTE IS 0 THEN JMP BZERO MASK BYTE 0 AND M1774 MASK BYTE 1 IOR IOR TEMP STORE IN STA 1,I BUFFER ISZ SBADR INCREMENT BYTE ADR JMP ANOTH BZERO AND M177 JMP IOR * OVCT JSB OVFL? OVERFLOW? JMP AFIN YES JSB LDCH GET NEXT CHARACTER CPA DLM DELIMITER? JMP AFIN YES JMP OVCT NO * AFIN LDA ACT GET # OF ASCII CHAR LDB 0 INA ROUND OFF TO # OF WORDS CLE ERA SEZ,RSS INB ADA RESL INCREMENT RESULTS STA RESL ADR ADB SAVE INCREMENT RESULTS STB SBADR BYTE ADR JMP TYPN PROCESS NEXT TYPE * * CHECK IF OVER MAXIMUM NUMBER OF CHARACTERS * IF NOT THEN INCREMENT RETURN ADDRESS * B-REG IS USED * OVFL? NOP LDB CCTR GET CHARACTER COUNT CPB MNOC MAX NUMBER OF CHARACTERS? JMP OVFL?,I YES ISZ OVFL? NO JMP OVFL?,I * * LOAD CHARACTER ROUTINE * * LOADS THE NEXT CHARACTER FROM THE INPUT BUFFER * UPON RETURNING: * BYTE ADDRESS IS INCREMENTED BY ONE * ASCII CHARACTER IS IN THE LOWER 7 BITS OF A-REG * CHARACTER COUNTER IS INCREMENTED * LDCH NOP LDB BADR GET BYTE ADDRESS CLE,ERB E-REG = BYTE # LDA 1,I GET WORD SEZ,RSS IF BYTE 0 ALF,ALF SWITCH BYTES AND M177 MASK UPPER 9 BITS ISZ BADR INCREMENT BYTE ADDRESS ISZ CCTR INCREMENT CHARACTER COUNTER JMP LDCH,I * * CONVERT FOLLOWING STRING TO AN INTEGER * CHECKS FOR OVERFLOW AND FOR + OR - INTEG CLA STORE ZERO STA RESL,I IN RESULT BUFFER JSB OVFL? CHARACTER OVERFLOW? JMP FIN YES JSB LDCH GET 1ST CHARACTER CLB CHECK FOR + OR - STB PORM CLEAR PLUS OR MINUS INDICATOR CPA PLUS IS IT +? JMP NEXT YES CPA MINUS IS IT -? JMP NEG YES JSB CKAST CHECK AND STORE NEXT JSB OVFL? CHARACTER OVERFLOW? JMP FIN YES JSB LDCH GET CHARACTER JSB CKAST JMP NEXT * OVFLW CLA,INA CLB,INB CPA FUN JMP SFRFD,I DONT PRINT ERROR MESSAGE INA INA CPA FUN JMP SFRFD,I DONT PRINT ERROR MESSAGE JSB EXEC OUTPUT MESSAGE: DEF *+5 INTEGER OVERFLOW DEF D2 DEF STTY DEF INOV DEF D12 JMP SFRFD,I ERROR RETURN * FIN CLA CPA PORM JMP IRBUF LDA RESL,I CMA,INA STA RESL,I IRBUF ISZ RESL INC RESULT BUFFER ADR LDA SBADR INC BYTE ADR BY TWO INA INA STA SBADR JMP TYPN PROCESS NEXT TYPE NUMBER * NEG ISZ PORM SET PLUS OR MINUS INDICATOR JMP NEXT * * CHECK IF DELIMITER * CHECK IF INTEGER * CHECK FOR OVERFLOW * STORE IN RESULTS BUFFER * CKAST NOP CPA DLM DELIMITER? JMP FIN YES CPA BLNK IS IT A BLANK JMP DONE % STA SAVE SAVE ASCII CHARACTER XOR M60 MASK ASCII BITS 4 AND 5 (IF NUMBER) STA 1 STORE NUMBER IN B-REG ADA DM10 ADD -10 TO SEE IF OCTAL IS >9 SSA IS IT BIGGER THAN SHOULD BE? JMP AINT NO CLA,INA CLB CPA FUN JMP SFRFD,I DONT PRINT ERR MSG INA INA CPA FUN JMP SFRFD,I DONT PRINT ERR MSG. LDA SAVE OUTPUT ERROR MESSAGE: STA ILINT+1 X IS AN ILLEGAL INTEGER. JSB EXEC DEF *+5 DEF D2 DEF STTY DEF ILINT DEF D13 JMP SFRFD,I ERROR - RETURN AINT LDA RESL,I MULTIPLY PREVIOUS NUMBER SZA,RSS JMP ZROO RAL BY 10 SSA JMP OVFLW INTEGER OVERFLOW RAL SSA JMP OVFLW CLO ADA RESL,I SOC JMP OVFLW RAL SSA JMP OVFLW ZROO CLO ADA 1 SOC JMP OVFLW STA RESL,I JMP CKAST,I * * IGNORE ALL UNTIL DELIMITER OR END OF INPUT FILE * DONE JSB OVFL? CHARACTER OVERFLOW? JMP FIN YES JSB LDCH GET CHARACTER CPA DLM DELIMITER? JMP FIN YES JMP DONE TRY ANOTHER CHARACTER * * CONSTANTS AND VARIABLES * MNOC NOP MAX NUMBER OF CHARACTERS CCTR NOP CHARACTER COUNTER SAVE NOP STORAGE BADR NOP BYTE ADDRESS ACT NOP ASCII CHAR COUNT ACTR NOP ASCII CHAR COUNTER SBADR NOP STORAGE BYTE ADR ENDBF NOP PORM NOP PLUS OR MINUS INDICATOR TEMP NOP BLNK OCT 40 PLUS OCT 53 MINUS OCT 55 BLANK ASC 1, STTY EQU 112B SYSTEM TTY LU # DM10 EQU 41B DECIMAL -10 D1 EQU 54B DECIMAL 1 D2 EQU 55B DECIMAL 2 D3 EQU 56B DECIMAL 3 D12 DEC 12 D13 DEC 13 M1774 EQU 75B OCTAL 177400 M60 OCT 60 M17 EQU 70B OCTAL 17 M177 EQU 73B OCTAL 177 * * FORMATS * ILINT ASC $"13, IS AN ILLEGAL INTEGER INOV ASC 10, INTEGER OVERFLOW END %$ASMB,R,L,T,C NAM TSTFR,3 * * ROUTINE TO TEST SFRFD SUBROUTINE * ENT TSTFR EXT SFRFD,.DIO.,.IOI.,.DTA.,.IAR. TSTFR NOP HLT 2 CLA,INA CLB JSB .DIO. DEF OFUN DEF EFUN JSB .DTA. JMP *+2 EFUN HLT 1B CLA,INA CLB,INB JSB .DIO. DEF IFUN DEF EIFUN JSB .IOI. STA FUN JMP *+2 EIFUN HLT 2B CLA,INA CLB JSB .DIO. DEF OLUN DEF ELUN JSB .DTA. JMP *+2 ELUN HLT 3B CLA,INA CLB,INB JSB .DIO. DEF ILUN DEF EILUN JSB .IOI. STA LUN JMP *+2 EILUN HLT 4B CLA,INA CLB JSB .DIO. DEF OTYPE DEF ETYPE JSB .DTA. JMP *+2 ETYPE HLT 5B CLA,INA CLB,INB JSB .DIO. OCT 0 DEF ITYPE LDA D10 LDB TY JSB .IAR. JMP *+2 ITYPE HLT 6 JSB SFRFD DEF *+8 DEF FUN DEF LUN DEF TYPE DEF INBUF DEF BSIZE DEF RESL DEF DLM JMP TSTFR+1 CLA,INA CLB JSB .DIO. DEF FRESL DEF ERESL LDA D80 LDB RE JSB .IAR. JSB .DTA. JMP *+2 ERESL HLT 7B JMP TSTFR+1 * * CONSTANTS * OFUN ASC 7,("FUNCTION?") IFUN ASC 2,(I1) OLUN ASC 11,("INPUT LOGICAL UNIT") ILUN ASC 2,(I1) D10 DEC 10 OTYPE ASC 11,("INPUT TYPE BUFFER") TYPE BSS 10 TY DEF TYPE INBUF BSS 40 BSIZE DEC 40 DLM OCT 54 FUN NOP LUN NOP RESL BSS 80 FRESL ASC 9,(5(4(4(K7,2X)/)/)) D80 DEC 80 RE DEF RESL END TSTFR v  22681-18046 1508 SC 0122 8K CASSETTE SIO DUMP              H0101 oASMB,A,B,L,T HED 8K CASSETTE SIO DUMP * * THIS PROGRAM IS USED TO DUMP ONTO CASSETTE TAPE * AN SIO DRIVER PACKAGE, MTS BOOTSTRAP, * OR ANY PROGRAM WITH SIO DRIVERS. * OPERATION IS IDENTICAL TO THE HP SIO DUMP * PROGRAM EXCEPT FOR DELETION OF LEADER * AND WRITING A FILE MARK AT THE END OF * THE DUMPED FILE ON THE CASSETTE. * THIS PROGRAM IS INTENDED FOR USE WITH * THE 8K SIO CASSETTE DRIVER WHICH * CONTAINS THE NECESSARY ROUTINES FOR WRITING * THE FILE MARK. * * OPERATION: * * 1- LOAD AND CONFIGURE THE SIO CASSETTE DRIVER. * 2- IF DESIRED, LOAD AND CONFIGURE A MAGTAPE * OR DRUM SIO DRIVER. * 3- IF DESIRED, LOAD ANY USER OR SYSTEM PROGRAM * WHICH IS TO BE INCLUDED IN THE DUMP. * 4- LOAD THE 8K CASSETTE SIO DUMP PROGRAM. * 5- LOAD ADDRESS 2B, PRESET. * 6- IF A PROGRAM IS TO BE INCLUDED IN THE * DUMP (FROM STEP 3) SET SWITCH 15 ON. * 7- PRESS RUN. * 8- STEPS 6 AND 7 MAY BE REPEATED AS MANY * TIMES AS DESIRED TO MAKE MULTIPLE COPIES. * ORG 2B JMP 3B,I DEF START KCORE EQU 20000B CORE SIZE 8K B EQU 1B * ORG KCORE-3000B START LIA 1B SSA JMP PGM * * THIS SECTION DUMPS THE SIO DRIVERS ONLY * LDA PFAIL LDB MEMP JSB OUT DUMP HALTS LDA READ LDB INPUT JSB OUT DUMP 101B TO 104B LDB LWAM CCA ADA 107B CPA 106B INB LDA LWAM JSB OUT DUMP MT REF IF NEEDED * * DUMP DRIVERS * DVR LDA 106B AND PAGE IOR LAST STA B LDA 106B INA JSB OUT DUMP SIO DRIVERS (106B) TO X7677 JMP END * * THIS SECTION DUMPS THE SIO REFERENCES AND THE PROGRAM * PGM LDA PFAIL CCB ADB 105B JSB OUT DUMP 4B TO FWAM-1 * * NOW GET DRIVERS * JMP DVR * * WRITE FILE MARK ON CASSETTE, HALT, READY FOR Rr  ESTART * END LDA N33 LDB ZERO JSB 103B,I HLT 77B JMP START * * OUT SUBROUTINE * OUT NOP STA BEG STB FIN AGN LDA N33 STA TEMP LDA BEG STA BUFF,I STA X CLA STA PT,I LDA PT ADA .2 STA PTR BK LDA BEG,I STA PTR,I ISZ PTR ADA X STA X ISZ PT,I LDA BEG CPA FIN JMP ON ISZ BEG ISZ TEMP JMP BK ON LDA X STA PTR,I LDA PT,I ALF,ALF STA PT,I ALF,ALF ADA .3 CMA,INA LDB PT JSB 103B,I LDA BEG CPA FIN JMP OUT,I JMP AGN * * CONSTANTS * ZERO DEF *+1 NOP .2 OCT 2 .3 OCT 3 PFAIL OCT 4 MEMP OCT 5 READ OCT 101 INPUT OCT 104 LWAM OCT 106 LAST OCT 7677 PAGE OCT 70000 N33 OCT 177745 * * STORAGE * BEG NOP FIN NOP PTR NOP TEMP NOP X NOP PT DEF *+2 BUFF DEF *+2 END    22681-18047 1507 SC 0122 SCIENTIFIC PROGRAMMER BCD BINARY CONVERSION             H0101 eZ* ******* BCD TO BINARY CONVERSION * * CALL DBIN(NUMBR) * * NUMBER TO BE CONVERTED COMES IN ARGUMENT * CONVERTED NUMBER RETURNED IN ARGUMENT * * JSB DBIN * DEF *+2 * DEF NUMBR * * NAM DBIN EXT .ENTR ENT DBIN NUMB NOP DBIN NOP JSB .ENTR DEF NUMB LDA NUMB,I CLB SSA,RSS TEST FOR .GT.7999 JMP *+3 ELA,CLE,ERA TURN OFF SIGN LDB K1 STB T2 STA T1 AND K2 MPY K3 ADB T1 STB T1 LDA 1 AND K4 MPY K5 BLS ADB T1 ADB T2 STB NUMB,I JMP DBIN,I T1 OCT 0 T2 OCT 0 K1 OCT 17500 K2 OCT 70360 K3 OCT 120000 K4 OCT 77400 K5 OCT 131000 END **END-OF-TAPE * **END-OF-TAPE *   22681-18048 1506 SC 0222 RTE RELOCATABLE EDITOR              H0102 ʴHPAL,L,"EDITL" & A-05451-98240-1 REV. C EDITL LISTING BEGIN INTEGER I; LABEL FINI,ERRORPATH; BOOLEAN NAME2FLG; INTEGER CMDTYP, ERR1,ERR2, NUMFIELDS; INTEGER ARRAY NAME1[0:2], NAME2[0:2]; INTEGER ARRAY DCB[0:3,0:143]; INTEGER ARRAY FILENAME[0:3,0:2] _ "EL","ED","IT"; INTEGER ARRAY BUF0[0:81], BUF[1:2,0:61]; INTEGER ARRAY LEN[0:3], FIELDLENGTH[1:3], FIELD[1:3,0:2]; INTEGER ARRAY NAM[1:2,0:2]; BOOLEAN ARRAY EOF[0:2]; &; BOOLEAN PROCEDURE BITSET(BIT, WORD); VALUE BIT; INTEGER BIT, WORD; BEGIN INTEGER K,L; K_1; L_0; WHILE L0 THEN BEGIN IL_62; READF(DCB[F,0], ERR1, BUF[F,1], IL, LEN[F]); END ELSE BEGIN IL_82; READF(DCB[0,0], ERR1, BUF0[1], IL, LEN[0]); END; ERRCHK(3); EOF[F] _ LEN[F]=-1; END UNTIL LEN[F]>0 OR EOF[F]; & SKIPS OVER ZERO LENGTH RECORDS END; &; PROCEDURE AWRITF(F); VALUE F; INTEGER F; BEGIN PROCEDURE WRITF(DCBX, ERR, BUF, IL); INTEGER DCBX, ERR, BUF, IL; CODE; WRITF(DCB[3,0], ERR1, BUF[F,1], LEN[F]); ERRCHK(4); END; &; PROCEDURE ACLOSE(F); VALUE F; INTEGER F; BEGIN PROCEDURE CLOSE(DCBX, ERR, ITRUN); INTEGER DCBX, ERR, ITRUN; CODE; INTEGER ITRUN_0; CLOSE(DCB[F,0], ERR1, ITRUN); ERRCHK(5); END; &; PROCEDURE GETNAM(F); VALUE F; INTEGER F; BEGIN INTEGER I; AREADF(F); IF EOF[F] THEN ERROR(11); IF (BUF[F,2] AND @160000) = @20000 THEN BEGIN NAM[F,0] _ BUF[F,4]; NAM[F,1] _ BUF[F,5]; NAM[F,2] _ (BUF[F,6] AND @177400) OR @40; END ELSE ERROR(6); END; &; PROCEDURE PROCOBJ(F,S,EOFSW); VALUE F,S,EOFSW; INTEGER F; BOOLEAN S, EOFSW; BEGIN INTEGER ID; DO BEGIN IF NOT S THEN AWRITF(F); AREADF(F); IF EOF[F] THEN BEGIN IF EOFSW THEN ERROR(7); ID _-1; END ELSE ID _ BUF[F,2] AND @160000; END UNTIL EOF[F] OR (ID=@20000); FOR I_0 TO 2 DO NAM[F,I]_BUF[F,I+4]; NAM[F,2] _ (NAM[F,2] AND @177400) OR @40; END; &; PROCEDURE COPYFILE; BEGIN AOPEN(2); GETNAM(2); WHILE NOT EOF[2] DO PROCOBJ(2,FALSE,FALSE); ACLOSE(2); END; &; PROCEDURE SCAN; BEGIN INTEGER I, J, NF, NC, CP; INTEGER CHAR; BOOLEAN EOL, COMMAFLG; IF EOF[0] THEN ERROR(8); WRITE(1, #(40A2), FOR I_1 TO LEN[0] DO BUF0[I]); FOR I_1 TO 3 DO BEGIN FIELDLENGTH[I] _ 0; FOR J_0 TO 2 DO FIELD[I,J]_" "; END; EOL _ FALSE; CP _1; NF_1; DO BEGIN COMMAFLG_FALSE; NC_0; DO BEGIN CHAR _ IF BITSET(0,CP) THEN BUF0[(CP+1)\2]\@400 ELSE BUF0[CP\2] MOD @400; IF CHAR#"," AND CHAR#" " AND CHAR#0 THEN BEGIN NC _ NC+1; IF NC<7 THEN FIELD[NF,(NC-1)\2]_ IF BITSET(0,NC) THEN (CHAR*@400 OR @40) ELSE ((FIELD[NF,(NC-1)\2] AND @177400) OR CHAR); END ELSE IF CHAR="," THEN COMMAFLG_TRUE; CP _ CP+1; EOL _ (CP+1)\2 > LEN[0]; END UNTIL (EOL OR COMMAFLG OR NC=7); IF NC=7 THEN ERROR(12); FIELDLENGTH[NF]_NC; NF_NF+1; END UNTIL EOL OR (NF=4); IF (NF=4) AND NOT EOL THEN ERROR(13); NUMFIELDS _ NF-1; END; &; PROCEDURE GETCMD(N); VALUE N; INTEGER N; BEGIN BOOLEAN FOUND; INTEGER I; INTEGER ARRAY CMD[1:7] _ "CR","LI","ED","/I","/D","/R","/E"; INTEGER ARRAY LEGCMD[1:4] _ @16, @600, @360, @760; LABEL ONE , TWO,THREE, FOUR, FIVE, SIX, SEVEN, EIGHT; AREADF(0); SCAN; FOUND_FALSE; I_0; IF FIELDLENGTH[1]=2 THEN DO BEGIN I_I+1; FOUND_CMD[I]=FIELD[1,0]; END UNTIL FOUND OR (I=7); IF NOT FOUND THEN I_8; CMDTYP _ I; IF NOT BITSET(CMDTYP,LEGCMD[N]) THEN ERROR(9); CASE CMDTYP BEGIN ONE: BEGIN IF NUMFIELDS # 2 THEN ERROR(10); FOR I_0 TO 2 DO FILENAME[3,I]_FIELD[2,I]; END; TWO: BEGIN IF NUMFIELDS#2 THEN ERROR(10); FOR I_0 TO 2 DO FILENAME[1,I]_FIELD[2,I]; END; THREE: BEGIN IF NUMFIELDS#3 THEN ERROR(10); FOR I_0 TO 2 DO FILENAME[1,I]_FIELD[2,I]; FOR I_0 TO 2 DO FILENAME[3,I]_FIELD[3,I]; END; FOUR: BEGIN IF NUMFIELDS#2 THEN ERROR(10); FOR I_0 TO 2 DO NAME1[I]_FIELD[2,I]; END; FIVE: BEGIN IF NUMFIELDS<2 THEN ERROR(10); FOR I_0 TO 2 DO NAME1[I]_FIELD[2,I]; NAME2FLG _ NUMFIELDS=3; IF NAME2FLG THEN FOR I_0 TO 2 DO NAME2[I]_FIELD[3,I]; END; SIX: BEGIN IF NUMFIELDS<2 THEN ERROR(10); FOR I_0 TO 2 DO NAME1[I]_FIELD[2,I]; NAME2FLG _ NUMFIELDS=3; IF NAME2FLG THEN FOR I_0 TO 2 DO NAME2[I]_FIELD[3,I]; END; SEVEN: IF NUMFIELDS#1 THEN ERROR(10); EIGHT: BEGIN IF NUMFIELDS#1 THEN ERROR(10); FOR I_0 STEP 1 UNTIL 2 DO FILENAME[2,I]_FIELD[1,I]; END; END; END; &; &; PROCEDURE PROCUNTILNAM(F,N,S); VALUE F,S; INTEGER F; INTEGER ARRAY N; BOOLEAN S; BEGIN INTEGER I; BOOLEAN MATCH; MATCH _ TRUE; FOR I_0 TO 2 DO MATCH_MATCH AND N[I]=NAM[F,I]; WHILE NOT MATCH DO BEGIN PROCOBJ(F,S,TRUE); MATCH_TRUE; FOR I_0 TO 2 DO MATCH_MATCH AND N[I]=NAM[F,I]; END; END; PROCEDURE INSERT; BEGIN GETCMD(4); WHILE CMDTYP=8 D\O BEGIN COPYFILE; GETCMD(4); END; END; PROCEDURE DELETE; BEGIN INTEGER I; IF NOT NAME2FLG THEN FOR I_0 TO 2 DO NAME2[I]_NAME1[I]; PROCUNTILNAM(1, NAME1, FALSE); PROCUNTILNAM(1, NAME2, TRUE); PROCOBJ(1, TRUE, FALSE); END; LABEL CR, LI, ED; & AOPEN(0); GETCMD(1); CASE CMDTYP BEGIN CR: BEGIN ACREATE; GETCMD(2); WHILE CMDTYP # 7 DO BEGIN COPYFILE; GETCMD(2); END; ACLOSE(3); END; LI: BEGIN AOPEN(1); GETNAM(1); WRITE(6,#("LISTING OF RELOCATABLE LIBRARY FILE '",3A2,"'"/), FOR I_0 TO 2 DO FILENAME[1,I]); WHILE NOT EOF[1] DO BEGIN WRITE(6,#(3A2), FOR I_0 TO 2 DO NAM[1,I]); PROCOBJ(1, TRUE, FALSE); END; WRITE(6,#(/"END OF LISTING")); ACLOSE(1); END; ED: BEGIN AOPEN(1); GETNAM(1); ACREATE; GETCMD(3); WHILE CMDTYP#7 DO BEGIN LABEL INS,DEL,REP; CASE CMDTYP-3 BEGIN INS: BEGIN PROCUNTILNAM(1,NAME1,FALSE); PROCOBJ(1, FALSE, FALSE); INSERT; END; DEL: BEGIN DELETE; GETCMD(3); END; REP: BEGIN DELETE; INSERT; END; END; END; WHILE NOT EOF[1] DO PROCOBJ(1, FALSE, FALSE); ACLOSE(1); ACLOSE(3); END; END; GO TO FINI; ERRORPATH: WRITE(1,#("EDITL ERROR #", I3), ERR2); IF ERR2<6 THEN WRITE(1,#("FMGR RETURNED ERROR CODE =",I6),ERR1); FINI: WRITE(1,#("LIBRARY EDITOR TERMINATED")); END$ F.EEN F.MEEN F.MYN F.MOE /E LI,INLIB g("PROG3"))`A(} (!.DTA.`Axd!`A} /I,EENIE FILE1 FILE2 /R,MEENI FILE3 /D,MYNIE,MOE /E LI,OUTLIB L  22681-18049 1504 SC 0122 DOS-III ACTIVITY PROFILE GENERATOR             H0101 bASMB,B,L,R ,R NAM ACP,7 7 ******************************************************************** *** * * A C P ACTIVITY PROFILE GENERATOR OR* * * ACP IS A SET OF RELOCATABLE ROUTINES, OPERATING UNDER DOS-III, , * WHICH ACCUMULATE A SPECTRUM FROM THE P-REGISTER TO PROVIDE AN AN* ACTIVITY PROFILE FOR TIMING ANALYSIS. USING A PHOTOREADER, R,* PUNCH, TIME-BASE GENERATOR, OR LIKE DEVICE, TO GENERATE AN INTER- R-* RUPT CHAIN, ACP CAPTURES THE INTERRUPTS AND USES THE POINT-OF- - * INTERRUPTION TO BUILD A PROFILE OF INSTRUCTION LOCATION ACTIVITY. Y.* * * CALLING SEQUENCE: E:* JSB ACP P * CALL ACP DEF *+1 1 * (CODE TO BE SAMPLED) ) * CALL ACPO JSB ACPO PO* DEF *+1 1 * * * SUBROUTINE ACP QUERIES THE SYSTEM CONSOLE (LU=1) FOR THE MINIMUM M * P-REGISTER ADDRESS OF INTEREST, THE RESOLUTION OF THE ACTIVITY Y * PROFILE, AND THE SELECT CODE OF THE DEVICE TO BE USED FOR THE HE* INTERRUPT CHAIN. THE SAMPLING ADDRESS RANGE IS IS* PMIN + 128*RESOLUTION. N.* THE INTERRUPTING DEVICE IS PREEMPTED BY ACP DURING THE SAMPLING NG* TIME INTERVAL AND MUST NOT BE REFERENCED BY THE SAMPLED PROGRAM. . * THE MAXIMUM NUMBER OF INTERRUPTS (1000/SECOND), HENCE THE MOST T * ACCURATE SAMPLING METHOD, IS ACHIEVED BY USING THE TBG. IF A A* PHOTOREADER IS SPECIFIED, AN "ENDLESS" LOOP OF TAPE SHOULD BE BE* INSERTED IN THE READER. MEMORY PROTECT IS TURNED OFF. . * THE SAMPLING STOPS WHEN SUBROUTINE ACPO IS INVOKED. ACPO WILL L * RETURN THE INTERRUPTING DEVICE TO DOS-III CONTROL AND WILL OUTPUT UT* (LU=6) THE ACTIVITY PROFILE CONSISTING OF RANGES OF MEMORY Y * LOCATIONS AND THEIR USAGE PROBABILITIES AND CUMMULATIVE PROBA- - * BILITIES. S.* * * EXAMPLE: : * CALL ACP CP* DO 100 I=1,2000 0 * X=SIN(.5) ) * 100 CONTINUE UE* CALL ACPO O * * * THE LARfGE LOOP COUNT INSURES THAT AN ADEQUATE NUMBER OF INTER- - * RUPTS WILL OCCUR DURING THE SIN COMPUTATIONS. THE TEST PROGRAM AM* CAN BE REPETITIVELY RE-RUN WITH DIFFERENT ADDRESS RANGES SPECI- I-* FIED. D.* * * RESERVED ENTRY POINT NAMES: S:* ACP ACPO ACPQ ACPIN ACPOS S * * ******************************************************************** ** SKP P ENT ACP,ACPO,ACPIN IN EXT EXEC,ACPQ,ACPOS S EXT .ENTR,.IOI.,.DIO. . SUP P * * A EQU 0 0 B EQU 1 1 . EQU 53B B .1 EQU .+1 1 .2 EQU .+2 2 .3 EQU .+3 3 N33 DEC -33 3 N29 DEC -29 9 .15 DEC 15 15.30 DEC 30 REQUEST CODE FOR MEM. PROTECT CT SPC 3 3 ACP NOP P JSB .ENTR RESET ENTRY POINT NT DEF *-2 FOR EXIT T JSB EXEC TURN OFF F DEF *+3 MEMORY Y DEF .30 PROTECT CT DEF .1 .1* * IO.0 NOP DISABLE DEVICE INTERRUPTS TS JSB EXEC ASK FOR P MINIMUM UM DEF *+5 5 DEF .2 (RQ = WRITE) ) DEF .1 (LU = CONSOLE) ) DEF ASKP (MESSAGE TEXT) ) DEF N33 (MESSAGE LENGTH) ) CLA,INA (LU=1) ) CLB,INB (INPUT) T) JSB .DIO. CONFIGURE THE FORMATTER ER DEF ANSR1 (FORMAT STATEMENT) ) DEF *+3 (END OF CALL) L) JSB .IOI. READ THE E STA PMIN P MINIMUM UM* * ACP.1 JSB EXEC ASK FOR RESOLUTION SIZE ZE DEF *+5 5 DEF .2 .2 DEF .1 .1 DEF ASKR KR DEF .15 5 CLA,INA A CLB,INB B JSB .DIO. . OCT 0 (FREE FORMAT) T) DEF *+3 3 JSB .IOI. READ THE E STA RHO RESOLUTION SIZE ZE LDA RHO (IN CASE OF BLANK ENTRY) ) SZA,RSS ZERO RESOLUTION ? ? JMP ACP.1 -YES, N.G. TRY AGAIN. . * * JSB EXEC READ THE CHANNEL NUMBER ER DEF *+5 5 DEF .2 .2 DEF .1 .1 DEF ASKC KC je DEF N29 (MESSAGE LENGTH) ) CLA,INA A CLB,INB B JSB .DIO. . DEF ANSR3 3 DEF *+3 3 JSB .IOI. READ THE E STA CHAN CHANNEL NUMBER R * * LDA CHAN,I EXISTING INSTRUCTION AT S.C. LOC. C. CPA NLINK SAME AS NEW LINK? K? RSS -YES, DON'T RESET OLD LINK K STA OLINK -NO, SAVE OLD LINK FOR LATER R JSB ACPQ GET THE INDIRECT REFERENCE E IOR =B114000 CREATE JSB INDIRECT T STA NLINK SAVE IT IT STA CHAN,I AND STORE AT S.C. LOCATION N * * LDA CHAN SELECT CODE DE IOR =B103700 FORM STC 0,C ,C STA IO.2 CONFIGURE RE STA IO.5 CONFIGURE RE IOR =B004000 FORM CLC 0,C ,C STA IO.0 CONFIGURE RE STA IO.3 CONFIGURE RE STA IO.4 CONFIGURE RE XOR =B005100 FORM OTA 0 0 STA IO.1 CONFIGURE RE STA IO.6 CONFIGURE RE* * LDA LEN LENGTH OF DATA BUFFER ER CMA,INA NEGATE E STA TEMP1 AND SAVE AS LOOP COUNTER R CLA A LDB BUFFR POINTER TO DATA BUFFER R STA B,I CLEAR AR INB EACH H ISZ TEMP1 BUFFER R JMP *-3 WORD D STA LLSB CLEAR INTERRUPT COUNTERS S STA LMSB . . STA HLSB . . STA HMSB . . STA NLSB . . STA NMSB . .* * CLF 0 DISABLE INTERRUPT SYSTEM M LDB TBG TBG CHANNEL EL LDA .1 NEW SPEED PARAMETER ER CPB CHAN DEVICE CHANNEL = TBG CHANNEL ? ? IO.1 OTA 0 -YES, SET FOR NEW SPEED EDIO.2 STC 0,C TURN ON INTERRUPTING DEVICE CE STF 0 ENABLE INTERRUPT SYSTEM EM JMP ACP,I -EXIT- - * * * * ASKP ASC 17,LOWER ADDRESS OF RANGE (OCTAL)? _ _ANSR1 ASC 2,(O6) 6)ASKR ASC 15,RESOLUTION (WORDS, DECIMAL)? _ _ ASKC ASC 15,DEVICE SELECT CODE (OCTAL)? _ _ANSR3 ASC 2,(O2) 2) SKP P ******************************************************************** *** * * RECONFIGURATION AND ANALYSIS ROUTINE. UPON EXIT, SYSTEM IS BACK K * TO ITS ORIGINAL STATE AND WITH MEMORY PROTECT TURNED OFF. F.* * ACPO NOP P JSB .ENTR RESET ENTRY POINT NT DEF *-2 FOR EXIT T * * IO.3 NOP STOP INTERRUPTING DEVICE E * * CLF 0 DISABLE INTERRUPTS S LDB OLINK ORIGINAL CONTENTS OF LOCATION ON SZB,RSS IF UNALTERED, D, JMP ACPO,I THEN EXIT NOW OW STB CHAN,I RESET ORIG VAL OF S.C. LOCATION ON LDB TBG S.C. OF TBG BG LDA .3 OLD TBG SPEED ED CPB CHAN IS DEVICE THE TBG ? ?IO.6 OTA 0 -YES, RESET THE SPEED ED STF 0 ENABLE INTERRUPT SYSTEM EM* * JSB ACPOS PRINT STATISTICS S DEF ACPOE (POINTER TO RETURN POINT) T) DEF NLSB (TOTAL NUMBER OF INTERRUPTS) ) DEF LLSB (NUMBER BELOW P MINIMUM) ) DEF HLSB (NUMBER ABOVE P MAXIMUM) ) DEF BUFFR+1 (BUFFER ADDRESS) ) DEF PMIN (P MINIMUM) M) DEF RHO (BUFFER ENTRY RESOLUTION) N) DEF LEN (BUFFER LENGTH) H)ACPOE EQU * (RETURN POINT) ) * * JMP ACPO,I -EXIT- - * * * * BUFLN EQU 128 LENGTH OF DATA BUFFER ERBUFFR DEF *+1 POINTER TO DATA BUFFER R BSS BUFLN AND THE BUFFER ITSELF LFPMIN BSS 1 BUFFER ENTRY RESOLUTION ONRHO BSS 1 BUFFER ENTRY RESOLUTION ONLEN DEF BUFLN BUFFER LENGTH THCHAN OCT 0 SELECT CODE OF INTERRUPT. DEVICE E OLINK OCT 0 ORIGINAL CONTENTS OF SELECT CODE E NLINK BSS 1 THE JSB INDIRECT TO ACPIN INTBG EQU 103B SELECT CODE OF TBG G TEMP1 BSS 1 TEMPORARY STORAGE GE* * NLSB OCT 0 BITS 15-00, NMBR OF INTERRUPTS S NMSB OCT 0 BITS 31-16, ... ..LLSB OCT 0 BITS 15-00, NMBR PRHO*LEN-1 1 HMSB OCT 0 BITS 31-16, ... ..a SKP P ******************************************************************** *** * * ACP INTERRUPT HANDLER ER* * ACPIN NOP P DST AREG SAVE A & B REGISTERS S ERA,ALS AND E REGISTER R SOC AND O REGISTER R INA . . STA XREG . .* * LDA PMIN SUBTRACT THE P MINIMUM FOR THE E CMA,INA DATA BUFFER FROM THE POINT OF OF ADA ACPIN INTERRUPTION OF THE PROGRAM AM SSA P BELOW MINIMUM ? ? JMP EXITL -YES, BUMP COUNTER AND LEAVE E CLB SET UP B FOR THE DIVIDE DE DIV RHO DIVIDE OFFSET BY THE RESOLUTION ON LDB A A CMB IF SUBSCRIPT IS IS ADB LEN BEYOND DATA TA SSB BUFFER, R, JMP EXITH THEN BUMP COUNTER AND LEAVE VE ADA BUFFR OTHERWISE, POINT INTO BUFFER R ISZ A,I AND INCREMENT ENTRY VALUE UE LDA A,I PICK UP CONTENTS S CPA =B077777 IF VALUE IS MAX 15 BITS, , RSS THEN STOP THE INTERRUPTS S JMP EXIT OTHERWISE, EXIT IT LDA IO.4 STOP FURTHER INTERRUPTS BY Y STA IO.5 TURNING OFF DEVICE E JMP EXIT AND EXITING NG* * EXITL ISZ LLSB COUNT 1 MORE BELOW MINIMUM M RSS S ISZ LMSB (OVERFLOW) ) JMP EXIT ITEXITH ISZ HLSB COUNT 1 MORE TOO HIGH GH RSS S ISZ HMSB (OVERFLOW) ) NOP P EXIT ISZ NLSB COUNT 1 MORE INTERRUPT T RSS S ISZ NMSB (OVERFLOW) ) NOP P * * LDA XREG RESTORE E REGISTER R CLO AND O REGISTER R SLA,ELA . . STO . . DLD AREG RESTORE A & B REGISTERS RSIO.5 STC 0,C REENABLE INTERRUPTING DEVICE E JMP ACPIN,I -EXIT- - * * * * IO.4 CLC 0,C TURN OFF INTERRUPTING DEVICE INST STAREG BSS 2 SAVEAREA FOR R XREG BSS 1 REGISBTERS RS UNS S END D ASMB,B,L,R ,R NAM ACPQ,7 ,7******************************************************************** *** * * THIS IS A ROUTINE WHICH IS USED TO RETURN THE INDIRECT ADDRESS OF OF* THE ENTRY POINT OF THE INTERRUPT HANDLER, ACPIN. . * * ******************************************************************** ** ENT ACPQ PQ EXT ACPIN N * * ACPQ NOP P LDA EXTRN PICK UP EXTERNAL DEF (INDIRECT) T) JMP ACPQ,I AND RETURN TO CALLER R * * EXTRN DEF ACPIN INDIRECT REFERENCE TO INTERR. HAN AN END D FTN,B,L L SUBROUTINE ACPOS (ISUM,LOW,IHIGH,IBUF,IPMIN,IRHO,LEN) ) DIMENSION ISUM(2),LOW(2),IHIGH(2),IBUF(1) ) C C C A C T I V I T Y P R O F I L E O U T P U T TC C WRITE (6,9000) 0) 9000 FORMAT (22(2H *)/ 3X,"ADDRESS",5X,"NUMBER",3X,"FREQ",3X, X, * "CUMMULATIVE") ) A=ISUM(1) ) IF (A.LT.0.) A=65536.+A A SUM=65536.*ISUM(2) + A A A=LOW(1) 1) IF (A.LT.0.) A=65536.+A A ALOW=65536.*LOW(2) + A A SUMX=ALOW W DENS=100.*(ALOW/SUM) M) WRITE (6,9010) ALOW,DENS,DENS S 9010 FORMAT (" BELOW RANGE",I9,F7.1,"%",F9.1,"%") ") DO 200 I=1,LEN EN IF (IBUF(I)) 110,200,110 10 110 IP1 = IPMIN+IRHO*(I-1) 1) IP2 = IP1+IRHO-1 -1 X=FLOAT(IBUF(I)) )) SUMX=SUMX+X X DENS=100.*(X/SUM) ) DIST=100.*(SUMX/SUM) M) WRITE (6,9020) IP1,IP2,IBUF(I),DENS,DIST ST 9020 FORMAT (1X,K5,"-",K5,"B",I8,F7.1,"%",F9.1,"%") ") 200 CONTINUE UE A=IHIGH(1) 1) IF (A.LT.0.) A=65536.+A A HIGH=65536.*IHIGH(2) + A A DENS=100.*(HIGH/SUM) M) SUMX=SUMX+HIGH GH DIST=100.*(SUMX/SUM) M) WRITE (6,9030) HIGH,DENS,DIST,SUM M 9030 FORMAT (" ABOVE RANGE",I9,F7.1,"%",F9.1,"%"/ 6X,"TOTAL:",I9/ 9/ * 22(2H *)) ) RETURN RN END D $ $ FTN,B,L L PROGRAM TEST ST CALL ACP CP DO 100 I=1,2000 0 X=SIN(0.5) 5) 100 CONTINUE *($UE END D $ $ *  22681-18050 1504 SC 0422 DYNAMIC LOAD OF FAST FORTRAN PROCESSOR TO WCS             H0104 \cFTN4,L C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C PROGRAM A (SETP1) C C FUNCTIONS- C 1) READ THE OBJECT PAPER TAPE OF FFP FOR THE MODULE #2 (CH25) C IN A CORE BUFFER, C C 2) STRIP THE WORDS ON RECORD LENGTH, TAPE RECORD ORIGIN, C DEBUG MODE FLAG, ETC. C C 3) WRITE THE CORE BUFFER WHICH CONSISTS OF MICROINSTRUCTIONS C INTO THE DISC FILE (FILE NAME = FFP1). C C C C NOTE THAT PRIOR TO RUNNING THIS PROGRAM THE FILE NAME FFP1 C MUST BE ALLOCATED IN THE DISC. THE FILE SIZE => FIVE SECTORS. C C IGNORE THE CONSOLE MESSAGE 'I/O ERROR XXXX'. IT INDICATES C THE END OF PAPER TAPE BEING READ. C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PROGRAM SETP1 INTEGER FILE(3),DATA(1280) DATA FILE(1)/2HFF/,FILE(2)/2HP1/,FILE(3)/2H / C I=1 ICON=305B 20 CALL EXEC(1,ICON,DATA(I),1280) CALL EXEC(13,5,I1,I2) WRITE(1,25) I,I1,I2 25 FORMAT(3I8) C IF (I2 .EQ. 0) 40,30 C 30 I=I+I2 GO TO 20 C 40 CONTINUE WRITE(6,46) (DATA(K),K=1,I) 46 FORMAT(8K8) C I=1 J=1 C 50 ILAST=I-3+DATA(I)/256 IF(DATA(I) .EQ. 0) 80,55 C 55 DO 60 I=I+3,ILAST DATA(J)=DATA(I) J=J+1 60 CONTINUE C I=I+2 GO TO 50 C 80 NTOTL=J-1 DO 90 I=J,1280 90 DATA(I)=0 C WRITE(6,110) 110 FORMAT(1H1 ) WRITE(6,46)(DATA(K),K=1,NTOTL) C 1000 CALL EXEC(15,102B,DATA,NTOTL,FILE,0) C WRITE(1,1010) NTOTL 1010 FORMAT(" WORD COUNT =",I8) C END END$ FTN4,L C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C PROGRAM A (SETP2) C C FUNCTIONS- C 1) READ THE OBJECT PAPER TAPE OF FFP FOR THE MODULE #3 (CH24) C IN A CORE BUFFER, C C 2) STRIP THE WORDS ON RECORD LENGTH, TAPE ORIGIN, DEBUG MODE C 37 FLAG, ETC., C C 3) WRITE THE CORE BUFFER WHICH CONSISTS OF MICROINSTRUCTIONS C INTO THE DISC FILE (FILE NAME = FFP2). C C C NOTE THAT PRIOR TO RUNNING THIS PROGRAM FFP2 (FILE NAME) MUST C BE ALLOCATED IN THE DISC. THE FILE SIZE => 5 SECTORS. C C IGNOR THE MESSAGE 'I/O ERR XXXX'. IT INDICATES THE END OF C PAPER TAPE BEING READ. C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PROGRAM SETP2 INTEGER FILE(3),DATA(1280) DATA FILE(1)/2HFF/,FILE(2)/2HP2/,FILE(3)/2H / C I=1 ICON=305B 20 CALL EXEC(1,ICON,DATA(I),1280) CALL EXEC(13,5,I1,I2) WRITE(1,25) I,I1,I2 25 FORMAT(3I8) C IF (I2 .EQ. 0) 40,30 C 30 I=I+I2 GO TO 20 C 40 CONTINUE WRITE(6,46) (DATA(K),K=1,I) 46 FORMAT(8K8) C I=1 J=1 C 50 ILAST=I-3+DATA(I)/256 IF(DATA(I) .EQ. 0) 80,55 C 55 DO 60 I=I+3,ILAST DATA(J)=DATA(I) J=J+1 60 CONTINUE C I=I+2 GO TO 50 C 80 NTOTL=J-1 DO 90 I=J,1280 90 DATA(I)=0 C WRITE(6,110) 110 FORMAT(1H1 ) WRITE(6,46)(DATA(K),K=1,NTOTL) C 1000 CALL EXEC(15,102B,DATA,NTOTL,FILE,0) C WRITE(1,1010) NTOTL 1010 FORMAT(" WORD COUNT =",I8) C END END$ FTN4,L C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C PROGRAM B -LOAD- C C C FUNCTION- C LOAD THE DISC FILES FFP1 AND FFP2 TO TWO WCS RESPECTIVELY. C C C NOTE THAT THE DISC FILES FFP1 AND FFP2 CAN NOT BE LOADED INTO C WCS BY HP 2100 MICRO DEBUG EDITOR. C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PROGRAM LOAD INTEGER FP(512),F(3),F1(3) DATA F(1)/2HFF/,F(2)/2HP1/,F(3)/2H / DATA F1(1)/2HFF/,F1(2)/2HP2/,F1(3)/2H / CALL EXEC (14,102B,FP,382,F,0) CALL WWRIT(11,FP,191) CALL EXEC (14,102B,FP,512,F1,0) v CALL WWRIT(10,FP,256) STOP END END$ ASMB,R,B,L,T,C NAM WCSIO,7 ENT WREAD,WWRIT EXT EXEC,.ENTR * * WCS I/O UTILITY ROUTINE (DOS) * * CALLING SEQUENCE: * * READ WRITE * * JSB WREAD JSB WWRIT * DEF *+5 DEF *+4 * DEF UNIT DEF UNIT * DEF BUFUR DEF BUFUR * DEF LENGTH DEF LENGTH * DEF ADRES * * WHERE UNIT= WCS LOGICAL UNIT # * BUFUR= FIRST WORD OF CORE BUFUR * LENGTH= # WORDS TO TRANSFER * (<0=> # 21000 WORDS * >0 => # WCS WORDS (2 2100 WORDS) * ADRES= (READ ONLY) ADDRES OF WHERE TO * START READ * AD1 DEF BUF1 PARAMETER BUFUR BUF1 BSS 4 FOR READ. WREAD NOP JSB .ENTR GET DEF BUF1 PARAMETERS LDA .+1 SET STA RCODE REQUEST CODE. LDA WREAD SET RETURN STA WWRIT IN WWRIT. LDA AD1 SET PARAMETER STA ADR BUFUR ADDRES IN ADR JMP W0 GO PROCESS. AD2 DEF BUF2 PARAMETER BUFUR BUF2 BSS 3 FOR WRITE WWRIT NOP JSB .ENTR GET DEF BUF2 WRITE PARAMETERS LDA .+2 SET STA RCODE REQUEST CODE LDA AD2 PARAMETER BUFUR. STA ADR ADDRES IN ADR. W0 LDA ADR,I GET STA UNIT UNIT ISZ ADR LDA ADR,I GET STA BUFAD BUFUR ADDRESS ISZ ADR LDA ADR,I GET LENGTH LDB 0,I SSB,RSS <0? JMP *+3 CMB,INB YES MAKE BRS POS. & HALVE. LDA RCODE ARE CPA .+2 WE READING? JMP W1 LDA 1 YES AND M377 ISOLATE COUNT. LDB 0 ISZ ADR GET LDA ADR,I ADRES OF WHERE TO LDA 0,I START READ. AND M377 BLF,BLF SHIFT LENGTH HIGH. IOR 1 OR IN LENGTH. LDB 0 M PUT W1 STB PRAMS IN PRAMS JSB EXEC CALL DEF *+5 DEF RCODE EXEC TO UNIT BSS 1 BUFAD BSS 1 DO I/O DEF PRAMS JMP WWRIT,I EXIT RCODE BSS 1 ADR BSS 1 PRAMS BSS 1 . EQU 53B M377 EQU 74B END $ORIGIN=1000 $FILE=FILE1 $EXTERNALS=JMP 0124 $EXTERNALS=XNTRY 1414 $EXTERNALS=.XFER 1431 * * SETP - SET POINTERS * * LDA * LDB * RAM SETP (OR INIT) * DEF COUNT (COUNT MAY BE CHANGED BY ROUTINE) * RETURNS WITH A=0; AND B:=B + COUNT; * SETP B JSB S3 GETQX Q:=COUNT SETPL Q DEC Q NEG DONE? F S3 DEC M CW NMPV STORE VALUE JMP A DONE DONE OR MEM. PROTECT A RRS IOR T FLG A INC A INC VALUE S3 INC B INC ADDRESS B JMP S3 SETPL DO IT AGAIN; * * PRIMARY JMP TABLE * JMP XNTRY ENTRY FOR EXT. PREC. B JSB S3 GETQD Q:=1ST ADDR; S3:=B; ADR JMP TBL2 * JMP *-256 JMP *-256 JMP *-256 JMP *-256 JMP *-256 * * SECONDARY JMP TABLE TBL2 JMP .XFER JMP .GOTO JMP ..MAP Q JMP S3 .ENTR S3:=DATA OUT PTR; CR SUB B 4 Q JMP S3 .ENTP S3:=DATA OUT PTR; SFLG INIT CORE JMP SETP * * * $ORIGIN=1131 * ..MAP --- FORTRAN 4 -- INDEX CALCULATOR * * LDA * LDB * RAM ..MAP * DEF BASE * DEF <1ST SUBSCRIPT> * DEF <2ND SUBSCRIPT> * (DEF <3RD SUBSCRIPT>) IF A=-1; * DEF * (DEF ) IF A=-1; * RETURNS A=ADDRESS OF VARIABLE; * *..MAP ..MAP Q RRS IOR M RW S4:=BASE A LWF R1 FLG:=2 OR 3DIM NOR A A:=-1 T ADD S4 JSB GETQ1 S1:=SUB1 - 1 Q RRS IOR M RW A T ADD S1 JSB GETQ1 S2:=SUB2 -1 Q RRS IOR M RW A T ADD S2 JSB GETQ1 S3:=SUB3 - 1 Q RRS IOR M RW OR DIM1-1 IF 2DIM A T ADD S3 RSS FLG JSB GETQ1 A:=DIM1 Q RRS IOR M RW FLG S3 INC A UNC (2DIM) T IOR A (3DIM) IOR Q CNTR RPT A:=DIM1*(SUB2-1) Q S2 MPY Q R1 CTRI A IOR S2 FLG JMP DIM2 SKIP SECTION IF 2DIM JSB GETQD A:=DIM1 Q RRS IOR M RW T IOR A IOR Q CNTR RPT A:=DIM1*(SUB3-1) Q S3 MPY Q R1 CTRI JSB GETQ1 S3:=DIM2 Q RRS IOR M RW T IOR S3 IOR Q CNTR RPT A:=DIM2*DIM1*(SUB3-1 Q S3 MPY Q R1 CTRI * A:=DIM1*(DIM2*(SUB3-1) A S2 ADD A + (SUB2-1)) DIM2 A S1 ADD A + (SUB1-1) B IOR S1 A:=INDEX*WORDS/VARAB IOR Q CNTR RPT Q S1 MPY Q R1 CTRI A S4 ADD A EOP + BASE P INC P EXIT * * * * * * .ENTP AND .ENTR * .ENTR CR SUB B 2 .ENTP P INC S4 S4:=MACRO RETURN B P ADD B B:=ENTRY POINT B JSB P GETQD B:=DATA IN PTR B S3 SUB A A:=LENGTH ALLOWED Q JSB B GETQX Q:=1ST PARAMETER F P DEC M CW NMPV SET RETURN ADDR IOR Q RRS IOR T * S1:=-NR OF PARAMETERS PASSED -1 * CAREFUL ABOUT TIMING; NOTE USE OF T... B T SUB S1 S1:=-NR ACTUAL PARM. A S1 ADD RSS NEG IF ACTUAL > ALLOWED A Nb.OR S1 THEN S1:=ALLOWED B CLO P P:=IN PTR S3 IOR B B:=S3 AT START Q JMP A .ENTC CHECK FOR ZERO PARAM * * TRANSFER THE PARAMETERS * .ENTL B JSB S3 GETQ1 Q:=NEXT PARM ADR F S3 DEC M CW NMPV STORE ADR. JMP .ENTX Q RRS IOR T S3 INC B BUMP OUT PTR .ENTC S1 INC Q TBZ BUMP CNTR, DONE? Q JMP S1 .ENTL NO... .ENTX S4 IOR P RSS EOP YES--EXIT * * * * * * .GOTO - FOR FORTRAN - COMPUTED GOTO STATEMENT * * RAM .GOTO * DEF *+N+2 * DEF J * DEF
* DEF
* . . . * DEF
* RETURNS TO
* .GOTO Q JSB B GETQ1 B:= *+N+2; Q:=J; Q RRS IOR M RW T IOR Q TBZ IF J=0 Q IOR RSS NEG OR J<0 INC Q THEN J:=1; * Q P ADD P P:=POINTER TO RETURN B P DEC RSS NEG IF P>MAX B DEC P THEN P:=MAX; * JSB GETQD GO GET RETURN ADR; Q JMP S1 JMP GO "JMP" TO IT; * * * * * $ORIGIN=1240 * MOVE - MOVE A BUFFER OF WORDS. SAME GENERAL CALLING SEQUENCE AS MOVB. * A=FROM ADDRESS; B:=TO ADDRESS; Q OR DEF COUNT HAS LENGTH OF BUFFER; * IN INTERRUPT MODE THE CORE VALUE OF COUNT MAY GET CHANGED. * MOVE Q JSB S1 GETQX S1:=CNTR ADR; Q:=CNT; * (NOTE: S3=B) MOVEL A RRS IOR M RW START READ OF DATA A INC A BUMB IN PTR B INC B BUMB OUT PTR T IOR S4 S4:=DATA Q DEC Q NEG DEC CNTR, DONE? F S3 DEC M CW NMPV NOT DONE; START WRIT  JMP DONE MEM PROT. OR DONE. S4 IOR T RSS FLG STORE; IF INTR SKIP B JMP S3 MOVEL IF NOT INTERR. 2MICS Q CJMP S3 INTRX IF INTERRUP. B JMP S3 MOVEL MOVE MORE DATA * INTRX F S1 DEC M CW NMPV STORE COUNT IOR S3 IOR T DECP P IOR Q EOP P:=P-1; Q DEC P DONE P INC P RSS EOP * * * * * $ORIGIN=1262 * XPACK SUBROUTINE NORMALIZES, ROUNDS, AND PACKS THE * EXPONENTS INTO 2 OR 3-WORD RESULTS. IT T&EN PRO- * CEEDS TO THE TRANSFER ROUTINEC * XPACK B IOR S4 IF HI, A S4 IOR S3 MID, Q S3 IOR RSS TBZ LOW = 0 JMP XFER THEN WRITE IN CORE JMP NORML ELSE NORMALIZE; * * NORMALIZE THE RESULT IF IT IS NOT ZERO. * F DEC F EXP X # EXP X - 1 Q LWF Q L1 LEFT SHIFT LO X MAN A LWF A L1 LEFT SHIFT MID X MN B LWF B L1 LEFT SHIFT HI X MAN NORML B IOR S2 L1 LEFT SHIFT HI X MAN CFLG B S2 XOR NEG IF TOP 2 BITS SAME JMP *-7 LEFT S&IFT X * * ROUND THE RESULT, AND CHECK FOR MANTISSA OVERFLOWS. * CR RSB S2 177 SET ROUND FOR -NR. B IOR NEG IF X POSITIVE CR IOR S2 200 1 MORE NEEDED Q S2 ADD Q RSS COUT ADD ROUND TO LO X A INC A COUT IF COUT,INC MID X Q JMP S1 UNDOV SAVE LO X, C&ECK XP B INCO B IF COUT, INC HI X Q CLO S1 RSS OVF IF OVFLO FROM ROUND JMP RNDOV SET HI X # 040000 JSB NORML CHECK HI X#1100.C.. * * * C&ECK FOR EXPONENT UNDERFLOW OR OVERFLOW. * UNDOV CR CFLG P 200  IF EXP X LESS F P ADD RSS NEG THAN -200B JMP Q UNFLO THEN EXP UNDERFLO F P SUB NEG IF EXP X GREATER JMP OVFLO THAN &177B, OVFLO * * PACK EXPONENT INTO THE MANTISSA. * EXPAK F IOR Q SAVE EXP X IN Q S1 IOR F SAVE LO X MAN IN F Q LWF L1 SET EXP SIGN IN FLG Q LWF Q L1 POSITION EXP SIGN Q CR AND S1 377 MASK EXP X TO S1 F CL AND Q 377 MASK OFF LO OF X Q S1 RSB Q PACK EXP AND MANT JMP XFER GO WRITE X IN CORE RNDOV F INC F ADD 1 TO EXP X B RSB B R1 SET &I X TO 040000 JMP UNDOV CHECK EXP X * * SET UP ARGUMENTS FOR UNDERFLOW OR OVERFLOW. * UNFLO SOV B SET OVF AND SET X JMP A XFER TO ZERO OVFLO B SOV NEG SET OVERFLOW JMP *+4 CL IOR B 200 IF X NEGT SET X TO CR IOR Q 376 -INFINITY AND JMP A XFER WRITE X IN CORE NOR B R1 IF X POST SET X TO NOR A &INFINITY AND NOR Q L1 WRITE X IN CORE * * XFER SUBROUTINE WRITES RESULT ARGUMENT INTO CORE, * AND RESTORES THE FENCE ADDRESS WHICH &AS BEEN SAVED * IN CORE LOCATION 0, AS WELL AS ACCESSING THE ADDRESS * OF THE DEF X OF T&E CALLING SEQUENCE. THE DBLE * ROUTINE ENTERS AT DXFER, SINCE IT DOES NOT USE * CORE LOCATIONS 0 OR 1 * XFER IOR M RW READ SAVED F FROM 0 T CFLG F RESTORE ORIGINAL F INC S3 SET S3 TO ADDRESS 1 S3 IOR M RW READ FROM 1 TO GET T RSB P ADDRESS OF DEF X Q JSB S1 G9$"ETQD Q:=ADR OF X; S1:=EXP; DXFER Q IOR S3 AAB CLEAR AAB FF F S3 DEC M CW NMPV WRITE JMP END IN &I B RRS IOR T X MANTISSA S3 INC S4 F S4 DEC M CW NMPV WRITE JMP END IN MID A RRS IOR T X MANTISSA S4 INC S3 F S3 DEC M CW NMPV WRITE IN LO IOR X MANTISSA END S1 CFLG T FLG IF FLAG ON, ENTERED P INC P FROM DBLE SO SET P INC P EOP FINAL P AS NEEDED; * NOTE THAT THE NEXT P INC P WILL ALSO BE EXECUTED * * * GETQ1 P INC P GETQD P IOR M RW START READ IOR CNTR ONLY 16 INDIRECTS GETQL T IOR Q NEG INDIRECT? RSB NO, RETURN GETQX Q RRS IOR M RW CTRI YES,START READ, JMP GETQL IF <16 THEN GO AGAIN T SOV Q ELSE STOP & SET OVF RSB ADN RETURN *END * $END $$ORIGIN=1400 $FILE=FILE2 $EXTERNALS=MOVEL 1241,DECP 1257 $EXTERNALS=XPACK 1262,NORML 1273,UNDOV 1311 $EXTERNALS=EXPAK 1316,RNDOV 1326,UNFLO 1331 $EXTERNALS=OVFLO 1333,XFER 1343,DXFER 1351 $EXTERNALS=GETQ1 1367,GETQD 1370,GETQX 1374 * * CALLING SEQUENCE FOR DBLE ROUTINE2 * * * * JSB DBLE * * DEF *&3 * * DEF X %,ID * * DEF Y %,ID * * ?RETURN * * * * OPERATION2 CONVERT A 2-WORD Y TO A 3-WORD X. * * * ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * ROUTINE ACCESSES THE 2-WORD ARGUMENT, MASKS OFF T&E * EXPONENT, AND PUTS IT INTO A THIRD WORD OF ZEROS, * WITH THE VACATED EXPONENT SLOT ZERO FILLED. THE * GETAD SUBROUTINE WITHIN IT IS USED BY ALL OTHER * ROUTINES TO ACCESS THE ADDRESSES OF ANY DESIRED * ARGUMENT. * DBLE JSB GETQ1 GET ADR OF Y S3 INC P P:=ADR OF DEF X F JSB S4 ULOD2 GET Y; SAVE F A IOR B B:= HI Q IOR A A:=MID F CLO Q AVE EXP Q LWF L1 PUT EXP SIGN IN FLG Q LWF Q L1 POSITION SIGN BIT Q CR AND S1 377 MASK OUT LOW JSB GETQD GET DEF X S4 SFLG F RESTORE F JMP DXFER GO WRITE RESULT ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * * * PRIMARY JMP TABLE XNTRY P IOR S3 ENTRY TO ROUTINES JSB GETQ1 GET 1ST ADR FOR MOST ROUTINES ADR IOR S1 S1 JMP TBL3 * SECONDARY JUMP TABLE: START AT LOCATION 20(8) TBL3 IOR JMP DBLE JMP SNGL JMP XMPY JMP XDIV * * * .DFER - TRANSFER ONE THREE WORD VARAB. TO ANOTHER * JSB .DFER * DEF * DEF * .DFER S3 IOR P P:=ADR OF FROM ADR Q JSB A GETQD A:=FROM ADR; GET TO; Q IOR B B:=TO ADR; P INC P SET P FOR RETURN .XFER CR SFLG Q 3 MOVE 3 WORDS,NO INT. B JMP S3 MOVEL DO IT * * NOTE : LOCATION < TBL3 + 17(8); START XADD & XSUB; * ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * CALLING SEQUENCE FOR ADD/SUBTRACT ROUTINE2 * * * * JSB XADD AND JSB XSUB * * DEF X %,ID DEF X U,I< * * DEF Y %,ID DEF Y U,I< * * DEF Z %,ID DEF Z U,I< * * XRETURN] * * * * OPERATION2 X 3 Y & Z X 3 Y - Z * * * ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * FIRST ACCESS 0, T&EN Z. IF SUBTRACTING, COMPLEMENT * Z AND THEN ADD. * XADD SFLG XSUB JSB UNLOD GET Y; SAVE P&F; SAVE B IOR S1 S1:=HI MANT. A IOR S2 S2:=MID MANT. Q IOR S3 S3:=LOW MANT. F JSB S4 GETQ1 S4:=EXP; GET Z * NOTE: IF SAVE IS A SUBRUTINE, THE GETQ1 WILL RETURN TO THE ORIGINAL CALLER.. * JSB ULOD3 GET Z Q CFLG P RSS FLG SAV Z LO MANT: IF JMP SWICH ADDING CONTINUE COMP B NOR B ELSE COMPLEMENT A NOR A ARGUMENT P SUB Q RSS COUT IF LO MANT#0 A INC A TBZ INC MID MANT JMP SWICH ELSE CONTINUE B INC B RSS NEG IF MID=0,INC HI * IF HI POS CONTINUE; B IOR L1 TBZ IF HI NOT EQ 100000 JMP SWICH CONTINUE, ELSE B IOR B R1 MAKE HI#040000 F INC F ADD 1 TO EXPONENT SWICH RSB RETURN IF SUBROUTIN * * T&E FIRST 0 ARGUMENT FORCES AN EXIT WITH THE OTHER * ARGUMENT AS T&E RESULT. FIND EXPONENT DIFFERENCET * AND FORCE NUMBER WITH THE LARGER EXPONENT INTO * S1, S2, S3, AND S4. THE EXPONENT OF THIS NUMBER * %S4< IS T&E EXPONENT OF T&E RESULT BEFORE NORMAL- * IZATION. * B CLO RSS TBZ IF Z30, EXIT WIT& JMP OUT Y. S1 IOR RSS TBZ IF Y30, EXIT WIT& JMP XPACK Z. F S4 SUB P RSS NEG IF EXP Y ] EXP Z JMP ADDEM ALIGN POINTS, ELSE F IOR S4 SAVE EXP OF P IOR F RESULT IN S4, PUT B IOR P POSITIVE EXPON OUT2 S1 IOR B DIFFERENCE IN P P IOR S1 AND EXCHANGE A IOR P THE ARGUMENTS S2 IOR A P IOR S2 Q IOR P S3 RSB Q P IOR S3 UNC * * ALIGN THE BINARY POINTS, AFTER INSURING T&AT THE * EXPONENT DIFFERENCE IS NOT GREATER THAN 40. IF NOT, * ADD T&E ARGUMENTS AND EXIT TO XPACK FOR NORMALIZING, * ROUNDING, AND PACKINGC IF GREATER THAN 40, EXIT TO * XPACK VIA OUT WIT& THE ARGUMENT HAVING THE LARGER * EXPONENT UALGEBRAICALLY<. * ADDEM P SUB F MAKE EXP DIFF POS CR IOR P 51 IF EXPON DIFFERENCE F P SUB NEG GREATER THAN 40 JMP OUT EXIT CJMP XINT (IF INTRRUPT THEN ...;) F NOR P ELSE JMP SHIFT ALIGN A LWF R1 DECIMAL B ARS B R1 POINTS Q LWF Q R1 AND SHIFT P INC P TBZ PROCEED TO JMP *-4 ADD NOC S Q S3 ADD Q COUT ADD ARGUMENTS AND JMP *+5 CARRY FROM A S2 INC A COUT ONE WORD JMP *+5 TO NEXT B S1 INCO B JMP *+4 A S2 ADD A RSS COUT JMP *-3 B S1 ADDO B S4 CLO F OVF DID RESULT OVERFLOW JMP XPACK NO, GO NORMALIZE B CFLG NEG 0ES. IF RESULT NEG SFLG COUT WAS POS. IF B LWF B R1 RESULT POST COUT A LWF A R1 WAS NEG. SHIFT Q LWF Q R1 COUT TO RESULT F INC F AND INC EXP JMP XPACK GO NORMALIZE RESULT OUT S4 IOR F EXIT WITH ARGUMENT JSB OUT2 WITH LARGER JMP XPACK EXPONENT ; ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * * * CALLING SEQUENCE FOR SNGL ROUTINE2 * * * * JSB SNGL * * DEF *&2 * * DEF Y %,ID * * ?RETURN * * * * OPERATION2 ROUND A 3-WORD Y TO A 2-WORD RESULT 7 * * IN THE A-B REGISTERS. * * * ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * ACCESS THE 3-WORD ARGUMENT %YD, AND ROUND TO 1 1/2 * WORDSC * SNGL F JSB S4 ULOD3 GET ARG CR CLO S3 177 SET UP FOR ROUNDING B IOR RSS NEG IF ARG POS, ROUND MID Q IOR TBZ IF NEG, FAKE ROUND LO CR IOR S3 200 AND DO ROUND MID A S3 ADD A RSS COUT B INCO B EXTEND CARRY TO HI CLO RSS OVF IF OVFLO FROM ROUND JSB RNDOV THEN RENORMALIZE JSB Q NORML GO NORMALIXE ARG CR IOR S3 200 IF EXP<-200B F S3 ADD RSS NEG JMP B SNUNF THEN EXP UNDERFLO F S3 SUB NEG IF EXP>177B JMP SNOVF THEN OVFLO A JSB S1 EXPAK PACK IN EXPONENT B IOR A PUT ANS IN THE A,B-REG Q IOR B EXIT S4 IOR F EOP RESTORE F P INC P INC TO RETURN, EXIT * SNOVF NOR A R1 IF OVERFLO RETURN NOR B L1 WITH + INFINITY SOV UNC SNUNF SOV A IF UNFLO RETURN ZERO JMP EXIT ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * * * CALLING SEQUENCE FOR XMPY ROUTINE2 * * * * JSB XMPY * * DEF X %,ID * * DEF Y %,ID * * DEF Z %,ID * * ?RETURN * *  * * OPERATION2 X 3 Y M Z * * * ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * ACCESS ARGUMENTS, COMPLEMENT THEM IF NEGATIVET AND * SAVE SIGN OF RESULT IN OVF. COMPUTE EXPONENT X AS: * EXP Y & EXP Z %OR EXP I< & 1. DVMPY IS ENTRY POINT * FROM XDIV ROUTINEC * XMPY JSB UNLOD GET Y B CLO NEG SAVE SIGN OF Y IN OVF JMP XMPY1 P SOV S1 IF NEG COMPLEMENT Y Q JSB P COMP S1 IOR P RESTORE P XMPY1 Q JSB S3 SAVE SAVE Y; GET Z ADR; JSB ULOD3 GO ACCESS Z DVMPY B IOR NEG IF Z POSITIVE JMP MULT CONTINUE, ELSE CLO OVF WAS 0 NEGATIVE SOV NO, PUT SIGN IN OVF Q JSB P COMP COMPLEMENT Z * * COMPUTE 3 CROSS-PRODUCTS LO Z * HI Y, HI Z * LO YT * MID Z * MID YT ADD THEM, AND PROPOGATE AN0 CARRIES * TO WHAT WILL BE T&E MID X MANTISSA. SAVE ONL0 THE * HI WORD OF THIS SUM, AND USE THE LO WORD TO INDICATE * WÐER TO ROUND AT T&IS POINT. * MULT F S4 INC F ADD EXPONENTS F CJMP S4 XINT AND INC EXP X B0 1 A IOR F SAVE MID Z MANTISSA Q IOR A SET LOW Z TO MULTPY B IOR Q SAVE HI Z MANTISSA IOR B CNTR RPT MULTIPLY LO Z B S1 MPY B R1 CTRI BY &I Y B IOR P SAVE LEFT PROD IN P A IOR B PUT RITE PROD IN B Q IOR A CNTR RPT SET &I Z TO MULTPY B S3 MPY B R1 CTRI MULT HI Z BY LO 0 B P ADD P ADD 2 LEFT PRODUCTS A IOR B PUT RITE SUM IN B F IOR A CNTR RPT SET MID Z TO MULTPY B S2 MPY B R1 CTRI MULT MID Z B0 MID Y IOR S3 CLEAR S3 B P ADD B RSS COUT ADD 3 LEFT PRODUCTS INC S3 IF COUT,SET S3 TO 1 A IOR RSS NEG IF RITE 3 SUM NEG B INC B COUT ROUND LEFT SUM AND S3 IOR P UNC PUT NEW LEFT WORD S3 INC P ULO OF XD IN P * * COMPUTE 2 CROS-PRODUCTS HI Z M MID Y, MID Z * HI 0, * AND ADD T&EM. ADD THE HI WORD OF THE FIRST CROSS- * PRODUCTS SUM TO T&E LO WORD OF THIS CROSS-PRODUCTS * SUM, 0IELDING THE FINAL LO X MANTISSA AND THE * PARTIAL MID X MANTISSA. PROPOGATE ALL CARRIES TO * W&AT WILL BE THE &I X MANTISSA. * Q IOR A CNTR RPT SET &I Z TO MULTPY B S2 MPY B R1 CTRI MULT HI Z BY MID Y B P ADD S3 COUT ADD 2 LEFT WORDS & IOR P UNC PUT NEW MID TO S3 INC P & SET P TO BE HI X A IOR B PUT NEW LO X IN B F IOR A CNTR RPT SET MID Z TO MULTY B S1 MPY B R1 CTRI MULT MID Z B0 HI Y A IOR S2 SAV END LO X IN S2 B S3 ADD B RSS COUT PUT NEW MID X IN B P INC P IF COUT INC &I X * * COMPUTE FINAL CROSS-PRODUCT HI Z M HI Y. ADD THE LO * WORD OF T&IS SUM TO T&E HI WORD OF THE PREVIOUS SUM, * PROPOGATING ANY CARRIES TO THE HI WORD OF THIS * CROSS-PRODUCTC T&IS 0IELDS T&E FINAL HI AND MID X. * Q IOR A CNTR RPT SET &I Z TO MULTPY B S1 MPY B R1 CTRI MULT HI Z BY HI 0 B P ADD B ADD FOR END &I X S2 IOR Q SAVE LO X IN Q S4 CLO F RSS OVF IF X TO BE NEG Q JSB P COMP COMPLEMENT X,ELSE JMP XPACK GO NORMALIZE ***M***M***M***M***M***M***M***M***M***M***M***M***M** *  * * * CALLING SEQUENCE FOR XDIV ROUTINE2 * * * * JSB XDIV * * DEF X %,ID * * DEF Y %,ID * * DEF Z %,ID * * ?RETURN * * * * OPERATION2 X 3 Y / Z * * * ***M***M***M***M***M***M***M***M***M***M***M***M***M** * * ACCESS Z, SAVE ITS SIGN IN OVF, AND IF NEGATIVE, * COMPLEMENT ITC * IF MID AND LO Z ARE NOT BOTH ZEROT COMPUTE EXPONENT * I AS -%EXPONENT ZD & 1. IF T&EY ARE, THEN COMPUTE * EXPONENT I AS -%EXPONENT Z< & 2 AND PROCEED TO SPCAS * TO COMPUTE THE SHORTCUT INVERSE. * XDIV S3 IOR S1 JSB GETQ1 GET Z ADR; JSB UNLOD GET Z; B SOV NEG SAVE SIGN OF Z IN CLO UNC OVF AND COMPLEMENT Q JSB P COMP Z IF Z NEGATIVE F DEC S4 EXP I # -EXP Z & 1 S4 SUB S3 B SFLG S2 RSS TBZ IF DIVISION BY 0 JMP DVZRO EXIT, ELSE A CFLG RSS TBZ IF LO,MID NOT BOTH Q IOR TBZ 0 FIND REGULAR JMP *+4 INVERSE, ELSE CL IOR F 40 SET &I U3020000 S3 INC S4 EXP I # EXP I & 1 JMP P SPCAS GET SHORTCUT INVERS S3 IOR S4 SAVE EXP I * * COMPUTE: 1< 1/2"2N16Z2&Z3S/Z1 # 2-1&S1/Z1 * 2< Q1)2 3 2)16P1&P2 * 3< 2N16S1/Z1 # 2-2&S2/Z1 * 4< 4P1 # 2)16P11&P12 * 5< -U2)16Q1&-2< 3 2)16U21&U31 * 6< 2N16U21&U31&2N16P11&P12 # 2)16U2&U3 * 7< 2N%14-1< 3 2)32U1 * A  LWF F R1 RIGHT SHIFT LO, Q LWF Q R1 MID Z IOR B CNTR RPT DIVIDE B0 HI Z: F S2 DIV F L1 CTRI #Q1 Q IOR S3 SAVE Q1 Q IOR A CNTR RPT GET -1 ) 2: 3P1 B S3 MPY B R1 CTRI CFLG Q CNTR RPT DIVIDE B0 HI Z: F S2 DIV F L1 CTRI #Q2 S3 NOR F COMPLEMENT Q NOR Q Q1 Q INC Q RSS COUT AND F INC F Q2 B LWF B L1 LEFT LWF P L1 SHIFT B LWF B L1 P1 P LWF P L1 TWICE B IOR S3 AD T&IS TO -UQ1,-2< Q S3 ADD Q COUT YIELDING MID U F P ADD A UNC %SAVED IN A< AND F P INC A LO U USAVED Q IOR P IN PD CL IOR F 77 SET &I U EQUAL TO F CR IOR F 377 037777 * * COMPUTE T&E DESIRED RESULT I 3 "2N32U1&2)16U2&U3\/Z1 * SPCAS A IOR Q CNTR RPT SET MID U TO DIVIDE F S2 DIV F L1 CTRI DIVIDE B0 HI Z TO Q IOR B GIVE HI I:SAV IN B P IOR Q SET LO U TO DIVIDE IOR A CNTR RPT DIVIDE B0 HI Z TO F S2 DIV F L1 CTRI GIVE MID I AND Q IOR A SAVE IN A IOR Q CNTR RPT DIVIDE B0 HI Z TO F S2 DIV F L1 CTRI GIVE LO I S4 IOR F RESTORE EXP I JSB NORML GO NORMALIZE I * * GET NUMERATOR %Y9 SSA IS IT BIGGER THAN SHOULD BE? JMP AINT NO CLA,INA CLB CPA FUN JMP SFRFD,I DONT PRINT ERR MSG INA INA CPA FUN JMP SFRFD,I DONT PRINT ERR MSG. LDA SAVE OUTPUT ERROR MESSAGE: STA ILINT+1 X IS AN ILLEGAL INTEGER. JSB EXEC DEF *+5 DEF D2 DEF STTY DEF ILINT DEF D13 JMP SFRFD,I ERROR - RETURN AINT LDA RESL,I MULTIPLY PREVIOUS NUMBER SZA,RSS JMP ZROO RAL BY 10 SSA JMP OVFLW INTEGER OVERFLOW RAL SSA JMP OVFLW CLO ADA RESL,I SOC JMP OVFLW RAL SSA JMP OVFLW ZROO CLO ADA 1 SOC JMP OVFLW STA RESL,I JMP CKAST,I * * IGNORE ALL UNTIL DELIMITER OR END OF INPUT FILE * DONE JSB OVFL? CHARACTER OVERFLOW? JMP FIN YES JSB LDCH GET CHARACTER CPA DLM DELIMITER? JMP FIN YES JMP DONE TRY ANOTHER CHARACTER * * CONSTANTS AND VARIABLES * MNOC NOP MAX NUMBER OF CHARACTERS CCTR NOP CHARACTER COUNTER SAVE NOP STORAGE BADR NOP BYTE ADDRESS ACT NOP ASCII CHAR COUNT ACTR NOP ASCII CHAR COUNTER SBADR NOP STORAGE BYTE ADR ENDBF NOP PORM NOP PLUS OR MINUS INDICATOR TEMP NOP BLNK OCT 40 PLUS OCT 53 MINUS OCT 55 BLANK ASC 1, STTY EQU 112B SYSTEM TTY LU # DM10 EQU 41B DECIMAL -10 D1 EQU 54B DECIMAL 1 D2 EQU 55B DECIMAL 2 D3 EQU 56B DECIMAL 3 D12 DEC 12 D13 DEC 13 M1774 EQU 75B OCTAL 177400 M60 OCT 60 M17 EQU 70B OCTAL 17 M177 EQU 73B OCTAL 177 * * FORMATS * ILINT ASC 13, IS AN ILLEGAL INTEGER INOV ASɍ$"C 10, INTEGER OVERFLOW END &$ASMB,R,L,T,C NAM INASC,7 * * INTEGER TO ASCII CONVERSION - CONVERTS AN INTEGER IN INTEG * TO IT'S DECIMAL ASCII REPRESENTATION AND STORES IT IN * BUFER. THE THIRD WORD OF BUFER CONTAINS THE LEAST SIGNIFICANT * #'S ON RETURN. BLANKS ARE STORED IN UNUSED SPACES OF BUFER. * INTCT CONTAINS THE # OF NON-BLANKS STORED IN BUFER * BUFER MUST BE THREE WORDS LONG * ENT INASC EXT .ENTR INTEG NOP INTEGER TO BE CONVERTED BUFER NOP BUFFER ADR INTCT NOP # OF NON-BLANK CHARACTERS STORED INASC NOP JSB .ENTR DEF INTEG LDA INTEG,I GET INTEGER CLB STB PORM CLEAR PLUS OR MINUS INDICATOR SSA JMP NEG # IS NEGATIVE CONT STA TEMP SAVE FOR LATER LDA BLANK STORE BLANKS LDB BUFER IN BUFFER STA 1,I INB STA 1,I INB STA 1,I LDB BUFER SET BYTE ADDRESS BLS OF STORAGE INB BUFFER STB BADR CLA CLEAR BLANK INDICATOR STA BLIND STA INTCT,I CLEAR # OF NON-BLANK CHAR STORED LDB DDTEN STB DCTR SET DECIMAL ADR COUNTER NIXT CLA STA CTR ZERO COUNTER LDA TEMP NIX ADA 1,I SSA JMP STNUM STORE NUMBER ISZ CTR INCREMENT COUNTER STA TEMP JMP NIX STNUM CLA CPA CTR IS COUNTER ZERO? JMP CTRZE YES CPA BLIND IS BLANK INDICATOR ZERO? JMP STBLI YES JMP HOPE CTRZE CPA BLIND IS BLANK INDICATOR ZERO JMP NXTNM YES - GET NEXT NUMBER LDA B60 JSB ST.CH NO - STORE A ZERO JMP NXTNM GET NEXT NUMBER STBLI LDA BADR GET BYTE ADDRESS CMA,INA SUBTRACT ONE FROM BYTE ADR CMA STA BLIND STORE THIS ADDRESS IN BLANK IND HOPE JSB ST.IN STORE INTEGER NXTNM ISZ BADR INCREMENT BYTE ADDRESS LDA DCTR,I WAS THAT THE SECOND TO CPA DM10 LAST INUMBER? JMP LSNUM YES ISZ DCTR INCREMENT DECIMAL COUNTER BY ONE LDB DCTR JMP NIXT GET NEXT NUMBER LSNUM LDA TEMP PROCESS LAST INTEGER STA CTR JSB ST.IN CLA CPA BLIND IS BLANK INDICATOR ZERO JMP DIG1 YES- STORE ADR OF BYTE 5 CC CLA CPA PORM IS IT PLUS OR MINUS JMP INASC,I PLUS JMP MINUS ITS MINUS DIG1 LDA BADR BADR = 6TH BYTE CMA,INA DECREMENT CMA STA BLIND STORE JMP CC NEG INB SET PLUS OR MINUS STB PORM INDICATOR AND CMA,INA MAKE NUMBER POSITIVE JMP CONT ST.CH NOP ISZ INTCT,I LDB BADR GET BYTE ADDRESS CLE,ERB E-REG = BYTE # SEZ,RSS IF BYTE IS ZERO THEN SHIFT ALF,ALF STA SAVE SAVE LDA 1,I GET DESTINATION WORD CONTENTS SEZ,RSS IF BYTE IS 0 THEN JMP BZERO MASK BYTE 0 AND M1774 MASK BYTE 1 IOR IOR SAVE STORE IN BUFFER STA 1,I JMP ST.CH,I BZERO AND M177 JMP IOR MINUS LDB BLIND GET ADDRESS OF LAST STB BADR BLANK LDA B55 STORE A MINUS JSB ST.CH JMP INASC,I ST.IN NOP LDA CTR GET NUMBER IOR B60 MAKE INTO ASCII JSB ST.CH STORE CHARACTER JMP ST.IN,I * * CONSTANTS AND VARIABLES * M177 OCT 177 M1774 OCT 177400 SAVE NOP TEMP NOP PORM NOP PLUS OR MINUS INDICATOR DCTR NOP DDTEN DEF DTEN DTEN DEC -10000 USED IN INTEGER-ASCII CONVERSION DEC -1000 DEC -100 DM10 DEC -10 B60 OCT 60 B55 OCT 55 BADR NOP BYTE ADDRESS BLIND NOP BLANK INDICATOR CTR NOP INTEGER COUNTER BLANK ASC 1, END La   22681-18056 1546 SC 0122 EXOR RANDOM NUMBER GENERATOR             H0101 /PASMB,A,B,L HED EXOR RANDOM GENERATOR FOR BASIC. HM+AFM, IMSOR 2/4-74 * BASIC CALLING SEQUENCE: ***************** * DIM X(2) * REM Y1 IS SIMPLE RETURN VARIABLE, X MUST NOT BE COMMON * CALL (1,X(1),Y1) * INITIATOR SECTION ************************* ORG 13142B FWAM=(110B) SBTBL OCT 1001 2 PARAMS FOR ROUTINE 1 DEF SB1 ENTRY POINT ENDTB EQU * END OF TBLE A EQU 0 B EQU 1 X BSS 3 SB1 NOP ENTRY POINT LDB A,I ADRESS OF X(1) STB X INB INB STB X+1 CMA,INA A=-A CMA A=A-1 (A DECEREMENT) LDB A,I ADDRESS OF Y1 STB X+2 SPC 3 * CHECK OF TYPE OF ARGUMENTS ******************* LDA .Y STA BUF+8 CLA STA .E LDA B CMA B=-B-1 ADA 117B A=(117B)-B-1 SSA TEST FOR SIMPLE TYPWE JSB ERROR B>=(117B) LDA 116B CMA ADA B A=B-(116B)-1 SSA TEST FOR SIMPLE TYPE JSB ERROR B<=(116B) LDA .X STA BUF+8 DLD X CMA A=-X-1 ADA 113B A=(113B)-X-1 SSA,RSS TEST FOR ARRAY JSB ERROR X<(113B) CMB B=-(X+1)-1 ADB 115B B=(115B)-(X+1)-1 SSB TEST FOR ARRAY JSB ERROR (X+1)>=(115B) LDA .E SZA JMP SB1,I ERROR RETURN JMP GO PROCEED * ERROR ROUTINE ************* .E BSS 1 .X ASC 1, X .Y ASC 1, Y BUF ASC 9,ERR IN CALL ARGM NO DEC 18 BUFF DEF BUF ERROR NOP ENTRY POINT LDB BUFF LDA NO JSB 102B,I PRINTOUT STA .E JMP ERROR,I RETURN TO TESTS SKP * FIBONACCI GENERATOR ******************* CST1 DEC 39,721 CST2 OCT 77755,33031 CST3 OCT 100000 .PACK EQU 1020B EXP EQU 154B EXPONENT FOR .PACK GO DLD X,I LOAD X(1) CLE CLEAR OVF ADB A B=A+B SEZ,RSS TEST E, JMP OK NOT E OVF CLE CLEAR E ADB CST1 SEZ TEST E JMP OVF E OK STB X,I NEW VALUE ISZ X STA X,I OLD VALUE * MULT-1 GENERATOR ********************* CLA STA EXP CLEAR EXPONENT OF .PACK LDA X+1,I SZA,RSS A=0? INA A=1! MPY CST1+1 DIV CST2 STB X+1,I * MULT-2 GENERATOR ************************* ISZ X+1 LDA X+1,I LSL 4 ADA X+1,I *(17) !   ADA CST2+1 STA X+1,I STORE NEW VALUE * EXOR **************************** XOR X,I EXOR OLD FIBONACCI LDB CST3 RRR 1 A POSITIVE, MOVE UP 2^-17 ISZ X POINTS TO MULT1 XOR X,I EXOR MULT1 * RETURN VALUE ************************** JSB .PACK NORMALIZE &PACK DST X+2,I STORE Y1 JMP SB1,I RETURN LSTWD EQU * * CHANGE CONTROL WORDS *********************** ORG 110B DEF LSTWD ORG 121B DEF SBTBL DEF ENDTB END $END x   22681-18058 1546 SC 0322 DOS IIIB BASED PREPARE CONTROL SYSTEM             H0103 FTN4,L C C C THIS PROGRAM LOADS BCS DRIVERS, .IOC. AND THE RELOCATING C LOADER FROM PAPER TAPE ONTO DISC FILES WHICH MAY THEN C BE USED BY THE DOS-III VERSION OF PCS TO GENERATE A C BASIC CONTROL SYSTEM. C C THE FIRST TWO CHARACTERS OF A DRIVER NAME MUST BE D. EXCEPT C .IOC. AND THE RELOCATING LOADER. THE NAME OF THE BCS LOADER C IS LOADR. HOWEVER THIS NAME IS ABBREVIATED TO LOAD SO AS NOT C TO BE CONFUSED WITH THE DOS-III LOADR. C C OPERATING PROCEDURE: C 1. ENTER C :PR,DVRLD C SYSTEM RESPONDS WITH C COMMAND? C 2. VALID COMMANDS ARE AS FOLLOWS: C CONFIGURE - ENTER LOGICAL UNIT NUMBERS OF I/O EQUIPMENT C AS DIRECTED BY PROMPTS. C STORE - PLACE BINARY PAPER TAPE COPY OF DRIVER C IN PHOTO READER BEFORE ENTERING THIS C COMMAND. C EXIT - TERMINATES PROGRAM. C C ---WRITTEN BY GRANT SHAW C C PROGRAM DVRLD INTEGER TERM,DVNAM(3),PR,SECT,CORE(3) INTEGER BUF(3556) DATA CORE/2HCO,2HRE,2HX / DATA N/0/ TERM=1 5 WRITE (TERM,10) 10 FORMAT(/,"COMMAND? _") READ (TERM,20) DVNAM(1),DVNAM(2) 20 FORMAT(2A2) IF (DVNAM(1).EQ.2HEX) STOP IF (DVNAM(1).EQ.2HCO) GO TO 130 IF (DVNAM(1).NE.2HST) GO TO 5 IF (N.NE.0) GO TO 25 CALL EXEC(18,CORE,I) IF (I.LT.249) GO TO 125 CALL EXEC(14,2,BUF,128,CORE,248) DO 24 I=125,128 IF (BUF(I).LT.1.OR.BUF(I).GT.64) GO TO 125 24 CONTINUE PR=BUF(126) 25 N=1 M=0 I=PR+300B 26 CALL EXEC(1,I,BUF(N),100) CALL EXEC(13,PR,L,J) IF (J.LT.61) GO TO 30 WRITE (TERM,28) 28 FORMAT("RECORD LENGTH GREATER THAN 60 WORDS") GO TO 5 30 CALL CSUM(BUF(N),J,TERM,K) IF (K.NE.0) GO TO 5 L=IAND(BUF(N+1),160000B) IF (L.EQ.20000B) GO TO 50 IF (N.EQ.1) GO TO 54 IF (L.EQ.40000B.OR.L.EQ.60000B.OR.L.EQ.100000B) GO TO 90 IF (L.EQ.120000B) GO TO 100 WRITE (TERM,40) 40 FORMAT("*L02 - ILLEGAL RECORD TYPE") GO TO 5 C C C NAM RECORD PROCESSING. C 50 IF (N.EQ.1) GO TO 60 54 WRITE (TERM,55) 55 FORMAT("*L09 - RECORD OUT OF ORDER") GO TO 5 60 IF (IAND(BUF(7),77777B).GT.0) GO TO 70 WRITE (TERM,65) 65 FORMAT("*L06 - PROGRAM LENGTH IS ZERO") GO TO 5 70 DVNAM(1)=BUF(4) DVNAM(2)=BUF(5) DVNAM(3)=BUF(6) IF (DVNAM(1).EQ.2HLO) DVNAM(3)=2H WRITE (TERM,75) (DVNAM(K),K=1,3) 75 FORMAT(9X,2A2,A1) IF (DVNAM(1).EQ.2HD..OR.DVNAM(1).EQ.2HIO.OR.DVNAM(1).EQ.2HLO) 1 GO TO 90 WRITE (TERM,80) 80 FORMAT("ILLEGAL DRIVER NAME") GO TO 5 90 N=N+J IF (N.LT.3457) GO TO 26 CALL EXEC(15,2,BUF,3456,CORE,M) M=M+27 IF (N.EQ.3457) GO TO 92 DO 91 K=3457,N-1 91 BUF(K-3456)=BUF(K) 92 N=N-3456 GO TO 26 C C C END RECORD PROCESSING. C 100 N=N+J-1 SECT=N/128 IF (MOD(N,128).GT.0) SECT=SECT+1 SECT=SECT+M CALL EXEC(18,DVNAM,L) IF (L.EQ.0) GO TO 110 IF (L.EQ.SECT) GO TO 115 C C C PURGE OLD FILE. C CALL EXEC(33,L,DVNAM) C C C OPEN NEW FILE FOR DRIVER. C 110 CALL EXEC(32,L,DVNAM,12B,SECT) IF (L.EQ.0) GO TO 115 111 WRITE (TERM,112) 112 FORMAT("NO ROOM ON DISC",/) STOP 115 CALL EXEC(15,2,BUF,N,DVNAM,M) IF (M.EQ.0) GO TO 5 M=M-27 N=3456 CALL EXEC(14,2,BUF,3456,CORE,M) GO TO 115 C C C THIS IS THE CONFIGURATION SECTION. C 125 WRITE (TERM,127) 127 FORMAT("PLEASE CONFIGURE THE SYSTEM AS FOLLOWS:") 130 CALL EXEC(18,CORE,I) IF (I.NE.0) GO TO 134 CALL EXEC(32,I,CORE,12B,249) IF (I.NE.0) GO TO 111 134 A WRITE (TERM,140) 140 FORMAT("TERMINAL L.U. =? _") READ (TERM,*) BUF(128) IF (BUF(128).LT.1.OR.BUF(128).GT.64) GO TO 130 145 WRITE (TERM,150) 150 FORMAT("LIST DEVICE L.U. =? _") READ (TERM,*) BUF(127) IF (BUF(127).LT.1.OR.BUF(127).GT.64) GO TO 145 155 WRITE (TERM,160) 160 FORMAT("PHOTO READER L.U. =? _") READ (TERM,*) BUF(126) IF (BUF(126).LT.3.OR.BUF(126).GT.64) GO TO 155 165 WRITE (TERM,170) 170 FORMAT("TAPE PUNCH L.U. =? _") READ (TERM,*) BUF(125) IF (BUF(125).LT.1.OR.BUF(125).GT.64) GO TO 165 CALL EXEC(15,2,BUF,128,CORE,248) GO TO 5 END C C C THIS SUBROUTINE COMPUTES THE CHECKSUM. C SUBROUTINE CSUM(BUF,J,TERM,L) INTEGER TERM,BUF(187) L=0 IF (J.GT.3) GO TO 5 WRITE (TERM,4) 4 FORMAT("RECORD LENGTH LESS THAN 4 WORDS") GO TO 30 5 I=BUF(2) DO 10 K=4,J 10 I=I+BUF(K) IF (I.EQ.BUF(3)) RETURN WRITE (TERM,20) 20 FORMAT("CHECKSUM ERROR") 30 L=1 RETURN END END$ FTN4,L C C DOS-III BASED PREPARE CONTROL SYSTEM (PCS) FOR GENERATING C BCS. C ---WRITTEN BY GRANT SHAW C PROGRAM PCS(3) INTEGER FWABP,TERM,TEMP(3),BASE(1024),SYMBL(5,100),PNCH, 1 DVNAM(30,3),DVLNG(30),PCS1(3),PCS2(3),PCS3(3) COMMON FWABP,TERM,TEMP,BASE,SYMBL,LST,PNCH,LP,DVNAM,DVLNG, 1 LINKA,LWAM,LWAM1,IN(30) COMMON JMP10,JMP20,JMP30 COMMON I DATA PCS1/2HPC,2HS1,2H / DATA PCS2/2HPC,2HS2,2H / DATA PCS3/2HPC,2HS3,2H / C C ASSIGN 10 TO JMP10 ASSIGN 20 TO JMP20 ASSIGN 30 TO JMP30 C C CALL EXEC(8,PCS1) 10 CALL EXEC(8,PCS2) 20 CALL EXEC(8,PCS3) 30 STOP C C C THE FOLLOWING DUMMY CALL ENSURES THAT THE SUBROUTINE "STORE" C WILL BE LOADED WITH THE MAIN SEGMENT. C 40 CALL STORE(0,0,0) END C C C STORES A DATA WORD ON THE DISC AT THE CORE LOCATION ADR. C THE BASE PAGE IS REPRESENTED BY THE ARRAY BASE. C THE REST OF CORE IS REPRESENTED BY THE DISC FILE CORE. C SUBROUTINE STORE(DATA,ADR,RORW) INTEGER DATA,ADR,FWABP,TERM,TEMP(3),UP,BASE(1024),SECT, 1 CORE(3),BUF(128),RORW COMMON FWABP,TERM,TEMP,BASE DATA LOW/0/,UP/0/ DATA SECT/0/ DATA CORE/2HCO,2HRE,2HX / IF (ADR.LT.0) GO TO 40 I=ADR+1 IF (I.GT.1024) GO TO 20 IF (RORW.EQ.1) DATA=BASE(I) BASE(I)=DATA RETURN 20 IF (I.GE.LOW.AND.I.LE.UP) GO TO 30 CALL EXEC(15,2,BUF,128,CORE,SECT) SECT=(I-1025)/128 CALL EXEC(14,2,BUF,128,CORE,SECT) LOW=SECT*128+1025 UP=(SECT+1)*128+1024 30 J=MOD((I-1025),128)+1 IF (RORW.EQ.1) DATA=BUF(J) BUF(J)=DATA RETURN 40 CALL EXEC(15,2,BUF,128,CORE,SECT) RETURN END C C C FIRST OVERLAY -- DOS-III BASED PCS. C PROGRAM PCS1(5) INTEGER TERM,FWABP,TEMP(3),DVNAM(30,3),EQT,PNCH,DVLNG(30), 1 BUF(7),BASE(1024),SYMB*L(5,100) COMMON FWABP,TERM,TEMP,BASE,SYMBL,LST,PNCH,LP,DVNAM,DVLNG, 1 LINKA,LWAM,LWAM1,IN(30) COMMON JMP10,JMP20,JMP30 COMMON I DATA BUF/2HCO,2HRE,2HX ,0,0,0,0/ C C SYMBL(1,1)=2H.S SYMBL(2,1)=2HQT SYMBL(3,1)=2H. SYMBL(4,1)=0 SYMBL(5,1)=0 SYMBL(1,2)=2H.E SYMBL(2,2)=2HQT SYMBL(3,2)=2H. SYMBL(4,2)=0 SYMBL(5,2)=0 LST=2 CALL EXEC(18,BUF,I) IF (I.GT.248) GO TO 4 WRITE (1,6) 6 FORMAT("PLEASE CONFIGURE SYSTEM USING :PROG,DVRLD",/) STOP 4 CALL EXEC(14,2,BASE,128,BUF,248) LP=BASE(127) TERM=BASE(128) PNCH=BASE(125) J=0 DO 1 I=1,1024 1 BASE(I)=0 DO 2 I=1,31 CALL EXEC(15,2,BASE,1024,BUF,J) 2 J=J+8 CALL STORE(103004B,4,0) CALL STORE(102005B,5,0) I=1100B+LP CALL EXEC(3,I,-1) WRITE (LP,3) 3 FORMAT(1X,"HEWLETT-PACKARD BCS GENERATION") 5 WRITE (TERM,10) 10 FORMAT(/,"FWA MEM?") READ (TERM,20) IN 20 FORMAT(30A2) CALL OCTL(IN,FWABP,I) IF (I)25,40,25 25 WRITE (TERM,30) 30 FORMAT("* ERROR") GO TO 5 40 IF (FWABP.GT.1000B) GO TO 25 LINKA=FWABP IF (LP.NE.TERM) WRITE (LP,43) FWABP 43 FORMAT(/,1X,"FWAM = ",O6) 45 WRITE (TERM,50) 50 FORMAT("LWA MEM?") READ (TERM,20) IN CALL OCTL(IN,LWAM,I) IF (I)60,80,60 60 WRITE (TERM,30) GO TO 45 80 IF (LWAM.LE.FWABP) GO TO 60 LWAM1=LWAM IF (LP.NE.TERM) WRITE (LP,83) LWAM 83 FORMAT(1X,"LWAM = ",O6) WRITE (LP,84) 84 FORMAT(//,1X,"* LOAD",/) 85 I=1 WRITE (TERM,90) 90 FORMAT(/,"DRIVER NAMES?") 95 WRITE (TERM,96) 96 FORMAT("? _") READ (TERM,100) TEMP 100 FORMAT(3A2) IF (TEMP(1).EQ.2H/E.OR.TEMP(1).EQ.2H/F) GO TO 140 IF (TEMP(1).EQ.2HD.) GO TO 106 WRITE (TERM,104) 104 FORMAT("ILLEGAL DRIVER NAME") GO TO 115 106 CALL EXEC(18,TEMP,L) IF (L.NE.0) GO TO 120 WRITE (TERM,110) 110 FORMAT("UNDEFINED DRIVER NAME") 115 WRITE (TERM,117) 117 FORMAT("RE-ENTER LINE") GO TO 95 120 CALL EXEC(14,2,BUF,7,TEMP,0) DVLNG(I)=BUF(7) DO 130 J=1,3 130 DVNAM(I,J)=TEMP(J) I=I+1 GO TO 95 140 I=I-1 WRITE (TERM,141) 141 FORMAT(/) IF (I.LT.1) GO TO 85 IF (TEMP(1).EQ.2H/E) CALL ORDER(DVNAM,DVLNG,I,LWAM) GO TO JMP10 142 CALL PCS END C C C APPROXIMATES AN OPTIMUM ORDER FOR BCS DRIVERS. C DVNAM = ARRAY OF DRIVER NAMES (THREE WORDS PER NAME). C DVLNG = ARRAY OF CORRESPONDING DRIVER LENGTHS. C I = NUMBER OF DRIVERS IN ARRAY. C LWAM = LAST WORD OF AVAILABLE MEMORY IN BCS SYSTEM. C SUBROUTINE ORDER(DVNAM,DVLNG,I,LWAM) INTEGER DVNAM(30,3),DVLNG(30),H,H1,H2,H3 INTEGER Y(30,3),V(30),D,Z(30,3),W(30) H=LWAM-(LWAM/1024)*1024 IF (H.EQ.0) H=1024 L1=I-1 L2=I H3=5000 L=(I-1)**2-(I-1) IF (L.EQ.0) L=1 DO 120 N=1,L DO 90 II=1,I H1=H J=0 H2=0 K=II GO TO 10 8 IF (K.EQ.I+1) K=1 IF (K.EQ.II) GO TO 60 10 H1=H1-DVLNG(K) J=J+1 DO 20 LL=1,3 20 Y(J,LL)=DVNAM(K,LL) V(J)=DVLNG(K) K=K+1 IF (H1.EQ.0) GO TO 50 IF (H1.GT.0) GO TO 8 IF (J.EQ.I) GO TO 45 D=H1+DVLNG(K-1) 30 IF (H1.GT.-1024) GO TO 40 H1=H1+1024 GO TO 30 40 IF (IABS(H1).LT.D) GO TO 45 H2=H2+D GO TO 50 45 H2=H2+IABS(H1) 50 H1=1024+H1 GO TO 8 60 IF (H2.GT.H3) GO TO 90 H3=H2 DO 80 J=1,I DO 70 LL=1,3 70 Z(J,LL)=Y(J,LL) 80 W(J)=V(J) 90 CONTINUE IF (I.LE.2) GO TO 130 DO 100 LL=1,3 J=DVNAM(L1,LL) DVNAM(L1,LL)=DVNAM(L2,LL) 100 DVNAM(L2,LL)=J J=DVLNG(L1) DVLNG(L1)=DVLNG(L2) DVLNG(L2)=J L1=L1-1 P L2=L2-1 IF (L1.NE.1) GO TO 120 L1=I-1 L2=I 120 CONTINUE 130 DO 150 J=1,I DO 140 LL=1,3 140 DVNAM(J,LL)=Z(J,LL) 150 DVLNG(J)=W(J) RETURN END C C C SECOND OVERLAY -- DOS-III BASED PCS. C PROGRAM PCS2(5) INTEGER TERM,FWABP,TEMP(3),DVNAM(30,3),EQT,PNCH,DVLNG(30), 1 BUF(7),BASE(1024),SYMBL(5,100) COMMON FWABP,TERM,TEMP,BASE,SYMBL,LST,PNCH,LP,DVNAM,DVLNG, 1 LINKA,LWAM,LWAM1,IN(30) COMMON JMP10,JMP20,JMP30 COMMON I DIMENSION MES(18),MES2(18) DATA MES/2H-K,2HBD,2H? ,2H-T,2HTY,2H? ,2H-L,2HIB,2H? ,2H-P, 1 2HNC,2HH?,2H-I,2HNP,2HT?,2H-L,2HIS,2HT?/ DATA MES2/2H-K,2HYB,2HD ,2H-T,2HTY,2H ,2H-L,2HIB,2H ,2H-P, 1 2HUN,2HCH,2H-I,2HNP,2HUT,2H-L,2HIS,2HT / C C DO 150 J=1,I DO 145 K=1,3 145 TEMP(K)=DVNAM(J,K) CALL LOADR(LINKA,LWAM,LP) 150 CONTINUE C C C LOAD IOC. C TEMP(1)=2HIO TEMP(2)=2HC TEMP(3)=2H CALL LOADR(LINKA,LWAM,LP) C C READ IN EQT. C 155 N=0 EQT=0 M=0 WRITE (TERM,160) 160 FORMAT(/,"* TABLE ENTRY",/) WRITE (TERM,165) 165 FORMAT("EQT?") IF (LP.NE.TERM) WRITE (LP,167) 167 FORMAT(//,1X,"EQT") 170 READ (TERM,20) IN IF (M.EQ.0) GO TO 173 IF (IN(1).EQ.2H! ) GO TO 251 M=0 173 IF (IN(1).EQ.2H/E) GO TO 260 IF (IN(1).EQ.2H/R) GO TO 255 IF (IAND(IN(2),177400B).EQ.26000B) GO TO 180 175 WRITE (TERM,30) GO TO 170 180 DO 181 L=1,6 181 BUF(L)=IN(L) TEMP(1)=IAND(IN(2),377B)*256+IAND(IN(3),77400B)/256 IF (TEMP(1).NE.2HD.) GO TO 175 TEMP(2)=IAND(IN(3),377B)*256+IAND(IN(4),77400B)/256 TEMP(3)=2H IN(2)=2H CALL OCTL(IN,J,K) IF (K.NE.0) GO TO 175 IF (J.LT.4) GO TO 175 IF (IN(5).EQ.2H ) GO TO 210 K=IAND(IN(5),177400B) IF (K.EQ.52400B) GO TO 200 IF (K.NE.42000B) GO TO 175 N J=IOR(J,100000B) IF (IAND(IN(6),177400B).NE.52400B) GO TO 210 IN(5)=IN(6) 200 IN(5)=IAND(IN(5),377B)+30000B IN(6)=2H CALL OCTL(IN(5),K,L) IF (L.NE.0) GO TO 175 IF (K.GT.7) GO TO 175 J=J+K*64 210 CALL OCTL(TEMP(2),K,L) IF (L.NE.0) GO TO 175 K=K*256 DO 220 L=1,LST IF (SYMBL(1,L).NE.TEMP(1)) GO TO 220 IF (SYMBL(2,L).NE.TEMP(2)) GO TO 220 IF (IAND(SYMBL(3,L),177400B).EQ.IAND(TEMP(3),177400B)) GO TO 230 220 CONTINUE M=1 WRITE (TERM,480) GO TO 170 230 L=SYMBL(4,L) 235 EQT=EQT+1 IF (EQT.LT.31) GO TO 250 WRITE (TERM,240) 240 FORMAT("EQT FULL") STOP 250 DVNAM(EQT,1)=J DVNAM(EQT,2)=K DVNAM(EQT,3)=L IF (LP.NE.TERM) WRITE (LP,245) (BUF(L),L=1,6) 245 FORMAT(1X,6A2) IF (M.EQ.1.AND.LP.NE.TERM) WRITE (LP,246) 246 FORMAT(1X,"!") M=0 GO TO 170 C C C CREATE NEW SYMBOL TABLE ENTRY FOR DRIVER TO BE LOADED AT BCS C TIME. C 251 LST=LST+1 IF (LST.GT.100) GO TO 515 SYMBL(1,LST)=TEMP(1) SYMBL(2,LST)=TEMP(2) SYMBL(3,LST)=IAND(TEMP(3),77400B) SYMBL(4,LST)=0 CALL BPMM SYMBL(5,LST)=FWABP L=IOR(FWABP,100000B) FWABP=FWABP+1 N=N+1 GO TO 235 C C C SET UP FOR RE-ENTRY OF EQT. C 255 IF (LP.NE.TERM) WRITE (LP,256) 256 FORMAT(1X,"/R",/) WRITE (TERM,620) FWABP=FWABP-N LST=LST-N GO TO 155 C C C READ IN SQT. C 260 WRITE (TERM,265) 265 FORMAT(//,"SQT?") IF (LP.NE.TERM) WRITE (LP,266) 266 FORMAT(//,1X,"SQT") K=1 DO 300 J=1,6 L=K+2 268 WRITE (TERM,270) (MES(M),M=K,L) 270 FORMAT(3A2) READ (TERM,280) BUF(J) 280 FORMAT(O2) IF (BUF(J).GT.6.AND.BUF(J).LE.EQT+6) GO TO 290 WRITE (TERM,30) GO TO 268 290 IF (LP.NE.TERM) WRITE (LP,295) (MES2(M),M=K,L),BUF(J) 295 FORMAT(1X,3A2," = ",O2) K=K+3 z 300 CONTINUE C C C MOVE EQT AND SQT TO HIGH CORE. C LWAM=LWAM-EQT*4-7 IF (LWAM.GT.1024) GO TO 320 305 WRITE (TERM,310) 310 FORMAT("*L03 - MEMORY OVERFLOW") STOP 320 J=LWAM+1 SYMBL(4,1)=J DO 330 K=1,6 CALL STORE(BUF(K),J,0) 330 J=J+1 SYMBL(4,2)=J CALL STORE(EQT,J,0) J=J+1 DO 340 K=1,EQT CALL STORE(DVNAM(K,1),J,0) J=J+1 CALL STORE(DVNAM(K,2),J,0) J=J+1 CALL STORE(0,J,0) J=J+1 CALL STORE(DVNAM(K,3),J,0) 340 J=J+1 C C C GET DMA CHANNELS. C 345 WRITE (TERM,350) 350 FORMAT(//,"DMA?") READ (TERM,20) IN DO 352 K=1,3 352 TEMP(K)=IN(K) IN(1)=IAND(IN(1),77400B)+40B CALL OCTL(IN,J,K) IF (K.EQ.0) GO TO 360 355 WRITE (TERM,30) GO TO 345 360 IF (J.EQ.0) GO TO 370 IF (J.NE.6) GO TO 355 IN(2)=IAND(IN(2),77400B)+40B CALL OCTL(IN(2),K,L) IF (L.NE.0) GO TO 355 IF (K.EQ.7) GO TO 370 IF (K.NE.0) GO TO 355 370 DO 380 L=1,LST IF (SYMBL(1,L).NE.2HDM) GO TO 380 IF (SYMBL(2,L).NE.2HAC) GO TO 380 IF (IAND(SYMBL(3,L),177400B).EQ.30400B) GO TO 375 IF (IAND(SYMBL(3,L),177400B).NE.31000B) GO TO 380 CALL STORE(K,SYMBL(4,L),0) K=-1 IF (J.LT.0) GO TO 410 GO TO 380 375 CALL STORE(J,SYMBL(4,L),0) J=-1 IF (K.LT.0) GO TO 410 380 CONTINUE WRITE (TERM,385) 385 FORMAT(//,1X,"* UNDEFINED SYMBOL:") IF (J.NE.-1) WRITE (TERM,390) 390 FORMAT("DMAC1") IF (K.NE.-1) WRITE (TERM,400) 400 FORMAT("DMAC2") STOP C C C SET ADDRESSES OF EQT AND SQT INTO PROGRAM IOC AT ENTRY POINTS C XEQT AND XSQT, RESPECTIVELY. C 410 IF (LP.EQ.TERM) GO TO 413 WRITE (LP,411) 411 FORMAT(//,1X,"DMA") WRITE (LP,412) TEMP(1),TEMP(2) 412 FORMAT(1X,2A2) 413 DO 420 L=1,LST IF (SYMBL(2,L).NE.2HQT) GO TO 420 IF (IAND(SYMBL(3,L),177400B).NcBE.20000B) GO TO 420 IF (SYMBL(1,L).EQ.2HXE) GO TO 415 IF (SYMBL(1,L).NE.2HXS) GO TO 420 CALL STORE(SYMBL(4,1),SYMBL(4,L),0) K=0 IF (J.EQ.0) GO TO 440 GO TO 420 415 CALL STORE(SYMBL(4,2),SYMBL(4,L),0) J=0 IF (K.EQ.0) GO TO 440 420 CONTINUE WRITE (TERM,385) IF (K.EQ.-1) WRITE (TERM,425) 425 FORMAT("XSQT") IF (J.EQ.-1) WRITE (TERM,430) 430 FORMAT("XEQT") STOP C C C LOAD THE RELOCATING LOADER. C 440 TEMP(1)=2HLO TEMP(2)=2HAD TEMP(3)=2H WRITE (LP,84) CALL LOADR(LINKA,LWAM,LP) GO TO JMP20 444 CALL PCS 20 FORMAT(30A2) 30 FORMAT("* ERROR") 84 FORMAT(//,1X,"* LOAD",/) 480 FORMAT("*UN NAME") 515 WRITE (TERM,520) 520 FORMAT("SYMBOL TABLE OVERFLOW") STOP 620 FORMAT(/) END C C C RELOCATING LOADER FOR PCS. C SUBROUTINE LOADR(LINKA,LWAM,LP) INTEGER TEMP(3),BUF1(128),BUF2(60),SECT,TYPE,PREL,SYMBL(5,100), 1 FLG,FWABP,BASE(1024),TERM COMMON FWABP,TERM,TEMP,BASE,SYMBL,LST I=130 TYPE=0 SECT=0 5 K=0 J=0 10 IF (I.LE.128) GO TO 20 CALL EXEC(14,2,BUF1,128,TEMP,SECT) I=1 SECT=SECT+1 20 IF (K.EQ.0) K=IAND(BUF1(I),77400B)/256 J=J+1 BUF2(J)=BUF1(I) I=I+1 IF (J.NE.K) GO TO 10 J=IAND(BUF2(2),160000B) IF (J.EQ.20000B) GO TO 80 IF (TYPE.NE.0) GO TO 50 WRITE (TERM,30) (TEMP(L),L=1,3) 30 FORMAT(//,"*L09 - ",2A2,A1) WRITE (TERM,40) 40 FORMAT(7X,"RECORD OUT OF ORDER",/) STOP 50 FLG=3 IF (J.EQ.40000B) GO TO 150 IF (J.EQ.60000B) GO TO 310 IF (J.EQ.100000B) GO TO 160 IF (J.EQ.120000B) GO TO 320 WRITE (TERM,60) (TEMP(L),L=1,3) 60 FORMAT(//,"*L02 - ",2A2,A1) WRITE (TERM,70) 70 FORMAT(7X,"ILLEGAL RECORD TYPE",/) STOP C C C NAM RECORD PROCESSING. C 80 PREL=LWAM-BUF2(7)+1 I IF (PREL.GT.1024) GO TO 100 WRITE (TERM,85) (TEMP(L),L=1,3) 85 FORMAT(//,"*L03 - ",2A2,A1) WRITE (TERM,90) 90 FORMAT(7X,"MEMORY OVERFLOW",/) STOP 100 WRITE (LP,110) (BUF2(L),L=4,6) 110 FORMAT(1X,2A2,A1) WRITE (LP,120) PREL,LWAM 120 FORMAT(2X,O5,1X,O5,/) LWAM=PREL-1 TYPE=1 GO TO 5 C C C ENT AND EXT RECORD PROCESSING. C 150 FLG=FLG+1 160 L=IAND(BUF2(2),17B)*FLG DO 300 M=1,L,FLG DO 170 N=1,LST IF (BUF2(M+3).NE.SYMBL(1,N)) GO TO 170 IF (BUF2(M+4).NE.SYMBL(2,N)) GO TO 170 IF (IAND(BUF2(M+5),177400B).EQ.IAND(SYMBL(3,N),177400B)) GO TO 250 170 CONTINUE IF (LST.NE.100) GO TO 200 WRITE (TERM,180) (TEMP(N),N=1,3) 180 FORMAT(//,"*L05 - ",2A2,A1) WRITE (TERM,190) 190 FORMAT(7X,"SYMBOL TABLE OVERFLOW",/) STOP 200 LST=LST+1 DO 210 N=1,3 210 SYMBL(N,LST)=BUF2(M+N+2) SYMBL(4,LST)=0 SYMBL(5,LST)=0 IF (FLG.EQ.4) GO TO 285 CALL BPMM SYMBL(5,LST)=FWABP FWABP=FWABP+1 GO TO 300 250 IF (FLG.EQ.4) GO TO 260 SYMBL(3,N)=BUF2(M+5) IF (SYMBL(5,N).NE.0) GO TO 300 CALL BPMM SYMBL(5,N)=FWABP FWABP=FWABP+1 CALL STORE(SYMBL(4,N),SYMBL(5,N),0) GO TO 300 260 IF (SYMBL(4,N).EQ.0) GO TO 290 WRITE (TERM,270) (TEMP(NN),NN=1,3) 270 FORMAT(//,"*L07 - ",2A2,A1) WRITE (TERM,280) 280 FORMAT(7X,"DUPLICATE ENTRY POINTS",/) STOP 285 N=LST 290 SYMBL(4,N)=BUF2(M+6)+PREL IF (SYMBL(5,N).NE.0) CALL STORE(SYMBL(4,N),SYMBL(5,N),0) 300 CONTINUE GO TO 5 C C C DATA BLOCK RECORD PROCESSING. C 310 CALL DBLR(PREL,BUF2,LINKA) GO TO 5 C C C END RECORD PROCESSING. C 320 DO 330 L=1,LST 330 SYMBL(3,L)=IAND(SYMBL(3,L),177400B) RETURN END C C C CHECKS FOR LINKAGE AREA OVERFLOW. C SUBROUTINE BPMM INTEGER FWABP,TERM,TEMP(3) COMMON FWABP,TERM,TEwMP IF (FWABP.LT.1000) RETURN WRITE (TERM,10) (TEMP(N),N=1,3) 10 FORMAT("*L04 - ",3A2) WRITE (TERM,20) 20 FORMAT(7X,"LINKAGE AREA OVERFLOW") STOP END C C C THIRD OVERLAY -- DOS-III BASED PCS. C C PROGRAM PCS3(5) INTEGER TERM,FWABP,TEMP(3),DVNAM(30,3),EQT,PNCH,DVLNG(30), 1 BUF(7),BASE(1024),SYMBL(5,100) COMMON FWABP,TERM,TEMP,BASE,SYMBL,LST,PNCH,LP,DVNAM,DVLNG, 1 LINKA,LWAM,LWAM1,IN(30) COMMON JMP10,JMP20,JMP30 DIMENSION MEM(3),LDR(3),LSTN(3) DATA MEM/2H.M,2HEM,2H. / DATA LDR/2H.L,2HDR,2H. / DATA LSTN/2HLS,2HT ,2H / C C C READ IN INTERRUPT LINKAGE. C 448 N=0 M=0 WRITE (TERM,450) 450 FORMAT(/,"INTERRUPT LINKAGE?",/) IF (LP.NE.TERM) WRITE (LP,452) 452 FORMAT(/,1X,"INTERRUPT LINKAGE") 455 READ (TERM,20) IN IF (M.EQ.0) GO TO 456 IF (IN(1).EQ.2H! ) GO TO 510 456 IF (IN(1).EQ.2H/E) GO TO 540 IF (IN(1).EQ.2H/R) GO TO 533 IF (IAND(IN(2),177400B).EQ.26000B) GO TO 460 457 WRITE (TERM,30) GO TO 455 460 DO 461 L=1,6 461 BUF(L)=IN(L) IN(2)=IAND(IN(2),377B)+20000B CALL OCTL(IN,J,K) IF (K.NE.0) GO TO 457 IF (J.LT.3) GO TO 457 IF (IAND(IN(3),377B).NE.54B) GO TO 500 IN(1)=IAND(IN(2),377B)*256+IAND(IN(3),77400B)/256 CALL OCTL(IN,K,L) IF (L.NE.0) GO TO 457 IF (K.GE.LINKA) GO TO 457 IF (K.LT.2) GO TO 457 DO 470 L=1,LST IF (SYMBL(1,L).NE.IN(4)) GO TO 470 IF (SYMBL(2,L).NE.IN(5)) GO TO 470 IF (IAND(SYMBL(3,L),177400B).EQ.IAND(IN(6),177400B)) GO TO 490 470 CONTINUE M=1 WRITE (TERM,480) 480 FORMAT("*UN NAME") GO TO 455 490 CALL STORE(SYMBL(4,L),K,0) 492 K=IOR(K,114000B) 495 CALL STORE(K,J,0) 496 IF (LP.NE.TERM) WRITE (LP,497) (BUF(L),L=1,5) 497 FORMAT(1X,5A2) IF (M.EQ.1.AND.LP.NE.TERM) WRITE (LP,246) M=0 GO TO 455 C C C STUFF TRAP CELL WITH OCTAL CODE ENTERED BY USER. C 500 IN(2)=IAND(IN(2),377B)+30000B CALL OCTL(IN(2),K,L) IF (L.NE.0) GO TO 457 GO TO 495 C C C CREATE NEW SYMBOL TABLE ENTRY FOR ENTRY POINT TO BE DEFINED C AT BCS TIME. C 510 LST=LST+1 IF (LST.LT.101) GO TO 530 515 WRITE (TERM,520) 520 FORMAT("SYMBOL TABLE OVERFLOW") STOP 530 SYMBL(1,LST)=BUF(4) SYMBL(2,LST)=BUF(5) SYMBL(3,LST)=IAND(BUF(6),77400B) SYMBL(4,LST)=0 CALL BPMEM SYMBL(5,LST)=FWABP L=IOR(FWABP,100000B) FWABP=FWABP+1 CALL STORE(L,K,0) N=N+1 GO TO 492 C C C SETUP FOR RE-ENTRY OF INTERRUPT LINKAGES. C 533 IF (LP.NE.TERM) WRITE (LP,534) 534 FORMAT(1X,"/R",/) WRITE (TERM,535) 535 FORMAT(/) FWABP=FWABP-N LST=LST-N GO TO 448 C C C SET SYMBOL TABLE UP FOR BCS RELOCATING LOADER. C 540 CALL FNDSY(J,LSTN) M=SYMBL(4,J) CALL STORE(K,M,1) DO 580 L=1,K M=M-4 CALL STORE(N,M,1) M=M-1 IF (N.GE.0) GO TO 580 N=IAND(N,77777B) CALL STORE(N,M,0) CALL STORE(I,N,1) M=M+1 CALL STORE(I,M,0) M=M-1 580 CONTINUE C C C SET UP LOADER ENTRY POINT FOR PROGRAM INITIATION AT P=2. C CALL FNDSY(J,LDR) CALL STORE(SYMBL(4,J),3,0) CALL STORE(124003B,2,0) C C C LIST ANY UNDEFINED EXTERNALS AND STUFF THEM INTO BCS LOADER C SYMBOL TABLE. C CALL FNDSY(L,LSTN) CALL STORE(K,SYMBL(4,L),1) M=0 DO 610 J=1,LST IF (SYMBL(4,J).NE.0) GO TO 610 IF (M.NE.0) GO TO 590 WRITE (LP,385) 590 WRITE (LP,595) (SYMBL(I,J),I=1,3) 595 FORMAT(1X,2A2,A1) M=LWAM LWAM=LWAM-5 IF (LWAM.LE.1024) GO TO 305 DO 600 N=1,5 CALL STORE(SYMBL(N,J),M,0) 600 M=M-1 K=K+1 SYMBL(4,J)=77777B 610 CONTINUE CALL STORE(K,SYMBL(4,L),0) C C C SETS MEMORIY TABLE IN BCS RELOCATING LOADR. C CALL FNDSY(J,MEM) K=SYMBL(4,J)+1 CALL STORE(FWABP,K,0) K=K+3 CALL STORE(LWAM,K,0) K=K+1 CALL STORE(LWAM1,K,0) C C C PRODUCE MEMORY MAP. C WRITE (LP,620) 620 FORMAT(/) DO 640 J=1,LST SYMBL(3,J)=IAND(SYMBL(3,J),77400B)+40B WRITE (LP,630) (SYMBL(K,J),K=1,4) 630 FORMAT(1X,3A2,2X,O5) 640 CONTINUE WRITE (LP,650) 650 FORMAT(/,1X,"*SYSTEM LINKS") J=FWABP-1 WRITE (LP,660) LINKA,J 660 FORMAT(2X,O5,1X,O5,/) C C C PUNCH BCS SYSTEM. C WRITE (TERM,670) 670 FORMAT(/,"*BCS ABSOLUTE OUTPUT") K=1000B+PNCH 675 CALL EXEC(3,K) L=LWAM+1 CALL DUMP(L,LWAM1) CALL DUMP(2,J) CALL EXEC(3,K) CALL EXEC(3,K) WRITE (TERM,680) 680 FORMAT("AGAIN? _") READ (TERM,20) IN IF (IN(1).EQ.2HYE) GO TO 675 IF (LP.NE.TERM) WRITE (LP,685) 685 FORMAT(/,1X,"*END") I=1100B+LP IF (LP.NE.TERM) CALL EXEC(3,I,-1) WRITE (TERM,690) 690 FORMAT(/,"*END",//) GO TO JMP30 700 CALL PCS 20 FORMAT(30A2) 30 FORMAT("* ERROR") 246 FORMAT(1X,"!") 305 WRITE (TERM,310) 310 FORMAT("MEMORY OVERFLOW") STOP 385 FORMAT(//,1X,"* UNDEFINED SYMBOL:") END C C C SEARCHES THE SYMBOL TABLE FOR A SYMBOL THAT MATCHES THE ONE C CONTAINED IN THE ARRAY NAM. C SUBROUTINE FNDSY(I,NAM) DIMENSION NAM(3) INTEGER FWABP,TERM,TEMP(3),BASE(1024),SYMBL(5,100),LST COMMON FWABP,TERM,TEMP,BASE,SYMBL,LST DO 10 I=1,LST IF (SYMBL(1,I).NE.NAM(1)) GO TO 10 IF (SYMBL(2,I).NE.NAM(2)) GO TO 10 IF (IAND(SYMBL(3,I),177400B).EQ.IAND(NAM(3),177400B)) RETURN 10 CONTINUE WRITE (TERM,20) 20 FORMAT(/,"* UNDEFINED SYMBOL:") WRITE (TERM,30) NAM 30 FORMAT(3A2) STOP END C C C CHECKS FOR LINKAGE AREA OVERFLOW. C SUBROUTINE BPMEM INTEGER FWABP,TERM>HFB,TEMP(3) COMMON FWABP,TERM,TEMP IF (FWABP.LT.1000) RETURN WRITE (TERM,10) (TEMP(N),N=1,3) 10 FORMAT("*L04 - ",3A2) WRITE (TERM,20) 20 FORMAT(7X,"LINKAGE AREA OVERFLOW") STOP END C C C PUNCHES SPECIFIED MEMORY BOUNDS IN ABSOLUTE FORMAT. C SUBROUTINE DUMP(START,STOP) INTEGER FWABP,TERM,TEMP(3),BASE(1024),BUF(500),START,STOP,PNCH COMMON FWABP,TERM,TEMP,BASE,BUF,LST,PNCH J=START 10 I=STOP-J+1 IF (I.GT.57) I=57 BUF(1)=I*256 BUF(2)=J M=J L=I+2 DO 20 K=3,L CALL STORE(BUF(K),J,1) M=M+BUF(K) 20 J=J+1 BUF(K)=M BUF(K+1)=0 BUF(K+2)=0 N=PNCH+100B L=I+5 CALL EXEC(2,N,BUF,L) IF (J.LE.STOP) GO TO 10 RETURN END END$ jHASMB,R,L * * * CONVERTS AN ASCII OCTAL NUMBER TO BINARY. * IN = INCOMING ASCII NUMBER (TERMINATED BY A BLANK). * OUT = BINARY WORD DESTINATION. * ER = ERROR FLAG: NO ERRORS = 0, ERRORS # 0. * NAM OCTL,7 ENT OCTL EXT .ENTR IN BSS 1 OUT BSS 1 ER BSS 1 OCTL NOP JSB .ENTR DEF IN LDA NEG4 STA CNT CLB,CCE STB OUT,I STB ER,I LOOP LDA IN,I SEZ ALF,ALF AND M177 CPA BLANK JMP OCTL,I ERB ADA NEG56 SSA,RSS JMP ERROR ADA EIGHT SSA JMP ERROR ELB LDB OUT,I BLF,RBR IOR 1 STA OUT,I SEZ,CME JMP LOOP ISZ IN ISZ CNT JMP LOOP JMP OCTL,I ERROR LDA EIGHT STA ER,I JMP OCTL,I EIGHT DEC 8 NEG56 DEC -56 NEG4 DEC -4 M177 OCT 177 BLANK OCT 40 CNT BSS 1 END ASMB,R,L,C * * * LOADS THE DBL RECORD FOR THE LOADER. * NAM DBLR,7 ENT DBLR EXT STORE,BPMM,.ENTR COM FWABP,TERM,TEMP(3),BASE(1024),SYMB(500) PREL BSS 1 BUF2 BSS 1 INPUT BUFFER ADDRESS. LINKA BSS 1 DBLR NOP JSB .ENTR DEF PREL LDB PREL,I STB PRELL LDA BUF2 ADA THREE ADB A,I STB LBUF LDB BUF2 INB LDA B,I AND M77 CMA,INA STA LBUF+1 LDA BUF2 ADA FOUR STA LBUF+2 * DBL1 LDB LBUF+2,I STB LBUF+3 LDA NEG5 STA NBUF ISZ LBUF+2 * DBL2 LDA LBUF+3 ALF,RAR STA LBUF+3 AND M7 CPA FOUR JMP DBL4 CPA FIVE JMP DBL6 ADA RBTA LDA A,I ADA LBUF+2,I DBL3 STA VALUE JSB STORE DEF *+4 DEF VALUE DEF LBUF DEF ..+0 ISZ LBUF+1 RSS JMP DBLR,I ISZ LBUF ISZ LBUF+2 ISZ NBUF JMP DBL2 JMP DBL1 * * PROCESS EXTERNAL REFERENCES. * DBL4 LDA LBUF+2,I AND M377 STA NBUF+1 LDB SYMBL STB LSTA ADB TWO DBL5 LDA B,I AND M377 CPA NBUF+1 JMP DBL8 ADB FIVE JMP DBL5 DBL8 ADB TWO LDA LBUF+2,I AND M174 IOR MSIGN ADA B,I JMP DBL3 * * MEMORY REFERENCE PROCESSOR. * DBL6 LDA LBUF+2,I ISZ LBUF+2 LDB PRELL ADB LBUF+2,I AND M174 SSA ADB MSIGN STA NBUF+2 LDA LBUF AND M76 STA NBUF+1 LDA B AND M76 CPA NBUF+1 JMP DBL7 STB TEMP1 LDA LINKA,I CMA,INA ADA FWABP LDB BASEA ADB LINKA,I SZA,RSS JMP LNK CMA,INA STA TEMP3 LOOP LDA B,I CPA TEMP1 JMP SKIP INB ISZ TEMP3 JMP LOOP LNK STB TEMP3 JSB BPMM DEF *+1 ISZ FWABP LDB TEMP3 LDA TEMP1 STA B,I SKIP LDA BASEA CMA,INA ADB A LDA NBUF+2 IOR MSIGN IOR B JMP DBL3 * * OPERAND IN SAME PAGE AS INSTRUCTION. * DBL7 LDA B AND M1777 IOR M2000 IOR NBUF+2 JMP DBL3 * * * CONSTANTS, BUFFERS, ETC. * A EQU 0 B EQU 1 .. EQU 53B THREE EQU ..+3 FOUR EQU ..+4 NEG5 EQU ..-5 FIVE EQU ..+5 TWO EQU ..+2 M7 EQU ..+7 M77 EQU 72B M377 EQU 74B M174 OCT 174000 MSIGN OCT 100000 M76 OCT 76000 SYMBL DEF SYMB BASEA DEF BASE RBTA DEF RBT RBT OCT 0 ABSOLUTE. PRELL BSS 1 PROGRAM RELOCATION. cs BPREL OCT 0 BASE PAGE RELOCATION. COMOR OCT 0 COMMON RELOCATION. TEMP2 BSS 1 TEMP3 BSS 1 TEMP1 BSS 1 LSTA BSS 1 NBUF BSS 3 LBUF BSS 4 VALUE BSS 1 M1777 OCT 1777 M2000 OCT 2000 END U  22681-18060 1550 SC 0422 SPACHE READABILITY FORMULA             H0104 WFTN4,L PROGRAM SPHRF,3 COMMON ILABA,ILABB,INAWD,IDXFWL,FLAG,IPC 1,ICTY,IPTR,IWC,ISIZE DIMENSION IDXFWL(1152,2),INAME(3),IFWL(2176),INAWD(14), 1IEND(8),ISPARY(800),ISAMP(101,2),IUNFAM(101,2),IUFARY(800), 2NAME(3),NAM(3),NOVEC(8),IPTARY(128),IOPT(5),ITITLE(40) LOGICAL FLAG,FOUND,GROUP DATA INAME/2HFA,2HMW,2HS /,NAME/2HID,2HXF,2HW /, 1NAM/2HLE,2HNP,2HR / CALL RMPAR(IOPT) ICTY = 1 GO TO (5,15,15,5) IOPT(1) + 2 5 WRITE (ICTY,25) 25 FORMAT ("SAMPLE LISTINGS/NO LISTINGS PARAMETER HAS UNDEFINED 1 VALUE."/"PLEASE CORRECT PARAMETER & RE-INPUT :PR DIRECTIVE."/) GO TO 9996 15 ASSIGN 6700 TO ILABA ASSIGN 3700 TO ILABB IPTR = 5 LP = 6 IRD=14 IWR=15 ICONWD=102B ISIZE = 32767 IDXSZE = 2304 COMMENT. IBLK; THE NO . OF LOCNS. PER BLOCK READ FROM THE C FAMILIAR WORDS FILE MAY BE CHANGED TO ANY MULTIPLE OF 128 C IN EXCESS OF 128 BUT ARRAY IFWL MUST ALWAYS BE DIMENSIONED C TO IBLK + 128 LOCNS. IBLK = 2048 ISCT = IBLK/128 IRWS = IDXSZE/2 COMMENT. READ IN ARRAY OF POINTERS TO FAMILIAR WORDS FILE INDEX WHERE C SUCCESSIVE POINTERS ARE TO 1ST. INDEX ENTRY WITH LENGTH FIELD C CONTAINING 1,CONTAINING 2,CONTAINING 3 & SO ON.... CALL EXEC(IRD,ICONWD,IPTARY,128,NAM,0) COMMENT. READ IN INDEX TO FAMILIAR WORDS FILE. CALL EXEC(IRD,ICONWD,IDXFWL,IDXSZE,NAME,0) COMMENT. REQUEST OPTION SELECTED. 550 WRITE (ICTY,200) 200 FORMAT (/"OPTION CODE = ?"/) COMMENT. READ & VERIFY LEGITIMACY OF OPTION CODE INPUT,PRINTING ERROR C MESSAGE & REPEATING REQUEST IF ILLEGAL CODE. 500 READ (ICTY,*) IOPCDE IF (IOPCDE .LE. 4) GO TO 300 WRITE (ICTY,400) 400 FORMAT (/"UNDEFINED OPTION CODE."/"PLEASE CORRECT CODE & 1RETYPE."/) GO TO 550 300 IF (IOPCDE) 9998,700,1200 1200 IF (IOPCDE .NE. 1) GO TO 800 COMMENT. OPTION CODE = 1 GIVES FAMILIAR WORDS FILE LISTING. 3700 WRITE (LP,900) 900 FORMAT ("1FAMILIAR WORDS FILE LISTING."/" ",29("*")/) IDXRW = 1 IABSC2 = -35 COMMENT. CALCULATE ABSOLUTE SECTOR NO. OF SECTOR CONTAINING 1ST. C LOCATION OF WORD POINTED TO BY IDXFWL(IDXRW,1). 5125 IABSC1 = (IDXFWL(IDXRW,1) - 1)/128 COMMENT. IS THIS SECTOR PART OF THE BLOCK IN CORE LESS THE RIGHTMOST C SECTOR? IF ((IABSC1 .GE. IABSC2) .AND. (IABSC1 .LE. (IABSC2 + ISCT 1 - 1))) 5150,5100 COMMENT. IF NOT, READ IN THE NEXT BLOCK. 5100 IDIV = IABSC1/ISCT CALL EXEC(IRD,ICONWD,IFWL,IBLK + 128,INAME,IDIV*ISCT) COMMENT. SET IABSC2 TO THE NO. OF THE LEFTMOST SECTOR OF THE BLOCK C NOW IN CORE. IABSC2 = IDIV*ISCT COMMENT. CALCULATE ADRESS RELATIVE TO START OF BLOCK OF LOCN. C PREVIOUS TO LOCN. C CONTAINING 1ST. CHARACTER PAIR OF WORD POINTED TO BY C IDXFWL(IDXRW,1) 5150 ISC = MOD(IDXFWL(IDXRW,1) - 1,IBLK) COMMENT. LIST WORD POINTED BY IDXFWL(IDXRW,1) ON L.P. WRITE (LP,1500) (IFWL(ISC +J),J = 1,IDXFWL(IDXRW,2)) 1500 FORMAT (X,14A2) COMMENT. NEXT ROW OF INDEX. IDXRW = IDXRW + 1 COMMENT. IF THE NEW ROW CONTAINS THE INDEX TERMINATOR THEN END C LISTING & REQUEST NEW OPTION CODE. IF NOT, REPEAT ROUTINE TO LIST C WORD REFERRED TO IN NEW ROW OFINDEX. IF (IDXFWL(IDXRW,2)) 5125,550,5125 800 IF (IOPCDE .NE. 2) GO TO 2000 COMMENT. OPTION CODE = 2 CREATES NEW FAMILIAR WORDS FILE BY C REPEATEDLY PERFORMING ADDITION ROUTINE AFTER INITIALIZING INDEX. IDXFWL(1,1) = 1 IDXFWL(1,2) = 0 DO 850 II = 1,9 IPTARY(II) = 1 850 CONTINUE GO TO 2100 2000 IF (IOPCDE .NE. 3) GO TO 2275 COMMENT. OPTION CODE = 3 ADDS NEW WORDS FROM TAPE ONTO END OF C FAMILIAR WORDS FILE. 2100 FLAG = .FALSE. IFNSC1 = -35 DO 875 JJ = 1,8 NOVEC(JJ) = 0 875 CONTINUE ASSIGN 2350 TO ILABB COMMENT. OFLO READS THE NEXT WORD FROM TAPE TO ARRAY INAWD,GIVES FILE C LISTING ON FINDING ** AS 1ST. 2 CHARACTERS ON LINE & PRINTS ERROR C MESSAGE & WORD IF WORD IS OVERLENGTH. 2400 CALL OFLO COMMENT. CALCULATE SECTOR CONTAINING FILE END & READ IN A BLOCK C CONTAINING THAT SECTOR.IF THAT BLOCK IS NOT ALREADY IN CORE. DO 1010 I = 1,IRWS IF (IDXFWL(I,2)) 1010,1110,1010 1110 IFNSCT = ((IDXFWL(I,1) - 1)/128)/ISCT GO TO 1215 1010 CONTINUE 1215 IF ((IFNSCT .GE. IFNSC1) .AND. (IFNSCT .LE. (IFNSC1 + ISCT - 2) 1)) 1225,1210 1210 IF (IFNSC1 .NE. -35) CALL EXEC(IWR,ICONWD,IFWL,IBLK,INAME, 1 IFNSC1) CALL EXEC(IRD,ICONWD,IFWL,IBLK,INAME,IFNSCT*ISCT) IFNSC1 = IFNSCT*ISCT COMMENT. WRITE WORD ON END OF FILE. 1225 IUSED = MOD(IDXFWL(I,1) - 1,IBLK) DO 2300 K = 1,IPC IFWL(IUSED + K) = INAWD(K) 2300 CONTINUE COMMENT. ADD AN ENTRY FOR WORD JUST WRITTEN TO FILE ONTO END OF INDEX IDXFWL(I,2) = IPC I = I + 1 IDXFWL(I,1) = IDXFWL(I-1,1) + IPC IDXFWL(I,2) = 0 COMMENT. ACCUMULATE IN THE NOVEC ARRAY THE NO. OF TIMES EACH WORD C LENGTH OCCURS IN THE SET OF WORDS ADDED TO THE FILE. NOVEC(IPC) = NOVEC(IPC) + 1 GO TO 2400 2350 CALL EXEC(IWR,ICONWD,IFWL,IBLK,INAME,IFNSC1) COMMENT.'EXCHANGE SORT'INDEX INTO ASCENDING ORDER OF WORD LENGTH. ICNTRW = 1 50 IF (IDXFWL(ICNTRW + 1,2) .GE. IDXFWL(ICNTRW,2)) 40,70 70 CALL SWOP(ICNTRW) DO 20 KK = ICNTRW,2,-1 IF ((IDXFWL(KK,2) .LT. IDXFWL(KK - 1,2)) .AND. (KK .GT. 1)) 30, 1 40 30 CALL SWOP(KK - 1) 20 CONTINUE 40 ICNTRW = ICNTRW + 1 IF (IDXFWL(ICNTRW + 1,2) .NE. 0) 50,60 COMMENT. THIS LOOP CALCULATES IN ISUM THE TOTAL NO. OF OCCURRENCES OF C WORDS OF LENGTH LL - 1,LL - 2,...3,2,1 FOR EACH VALUE OF LL. THIS C TOTAL IS THEN ADDED TO THE VALUE OF UNITY STORED IN THE LLTH. ROW C OF IPTARY SO THAT THE NEW VALUE IN THE LLTH. ROW POINTS TO THE 1ST. C ROW OF THE SORTED IDXFWL TO CONTAIN A LENGTH FIELD OF VALUE LL. 60 ISUM = 0 DO 75 LL = 2,9 MM = LL - 1 ISUM = ISUM + NOVEC(MM) IPTARY(LL) = IPTARY(LL) + ISUM 75 CONTINUE ASSIGN 3700 TO ILABB GO TO ILA^BB COMMENT. OPTION CODE = 4 DELETES WORDS FROM FAMILIAR WORDS FILE. 2275 ISCTN1 = -35 2200 FLAG = .FALSE. 2250 FOUND = .FALSE. COMMENT. READ NEXT WORD. CALL OFLO L = IPTARY(IPC) - 1 2800 L = L + 1 COMMENT. CHECK FOR END OF WORDS OF THIS LENGTH IN INDEX. 2725 IF (L .GE. IPTARY(IPC + 1)) 2850,2600 COMMENT. CALCULATE NO. OF SECTOR CONTAINING CURRENT WORD & READ IN C THE BLOCK CONTAINING THAT SECTOR IF IT IS NOT ALREADY IN CORE. 2600 ISCTNO = (IDXFWL(L,1) - 1)/128 IF ((ISCTNO .GE. ISCTN1) .AND. (ISCTNO .LE. (ISCTN1 + ISCT - 1) 1)) 2610,2620 2620 IDIV1 = ISCTNO/ISCT CALL EXEC(IRD,ICONWD,IFWL,IBLK + 128,INAME,IDIV1*ISCT) ISCTN1 = IDIV1*ISCT 2610 IB4 = MOD(IDXFWL(L,1) - 1,IBLK) COMMENT. COMPARE SAMPLE WORD & INDEX WORD CHARACTER PAIR BY CHARACTER C PAIR, PROCEEDING TO NEXT INDEX ENTRY IF TWO PAIRS ARE NOT THE SAME. DO 2900 K = 1,IPC IF (IFWL(IB4 + K) - INAWD(K)) 2800,2900,2800 2900 CONTINUE FOUND = .TRUE. IB4 = IB4 + IPC COMMENT. CALCULATE SECTOR NO. FILE ENDS IN. DO 1020 IJ = 1,IRWS IF (IDXFWL(IJ,2)) 1020,1120,1020 1120 IFNSCT = (IDXFWL(IJ,1) - 1)/128 GO TO 1220 1020 CONTINUE COMMENT.SET POINT FOLLOWING WHICH WORDS ARE TO BE SHIFTED LEFT A NO. C OF LOCATIONS EQUAL TO THE LENGTH OF THE WORD TO BE DELETED TO THE C START OF THE WORD FOLLOWING THAT TO BE DELETED. 1220 ISTART = IB4 + 1 DO 3200 IB = ISCTN1,IFNSCT,ISCT COMMENT. READ IN A BLOCK & MOVE WORDS LEFT WITHIN IT. CALL EXEC(IRD,ICONWD,IFWL,IBLK,INAME,IB) DO 3300 IC = ISTART,IBLK IFWL(IC-IPC) = IFWL(IC) 3300 CONTINUE COMMENT. READ LOCATIONS FROM BEGINNING OF NEXT SECTOR TO OVERWRITE C DUPLICATED LOCATIONS ON END OF RIGHTMOST SECTOR. CALL EXEC(IRD,ICONWD,IEND,IPC,INAME,IB + ISCT) DO 3400 ID = 1,IPC IFWL(IBLK-IPC+ID) = IEND(ID) 3400 CONTINUE COMMENT. WRITE BLOCK BACK TO DISK. CALL EXEC(IWR,ICONWD,IFWL,IBLK,INAME,IB) COMMENT. SET POINT FOLLOWING WHICH WORDS A|RE TO BE SHIFTED LEFT TO C START OF BLOCK. ISTART = IPC + 1 3200 CONTINUE COMMENT. TO DELETE INDEX ENTRY CORRESPONDING TO WORD DELETED SHIFT C EACH INDEX ENTRY UP ONE ROW, BEGINNING WITH ENTRY FOLLOWING THAT TO C BE DELETED. ISAVE = IDXFWL(L,1) L1 = L 3500 IDXFWL(L1,1) = IDXFWL(L1 + 1,1) IDXFWL(L1,2) = IDXFWL(L1 + 1,2) L1 = L1 + 1 IF (IDXFWL(L1,2)) 3500,2810,3500 COMMENT. IF AN INDEX ENTRY REFERS TO A WORD WHICH HAS BEEN SHIFTED C LEFT THEN CORRECT THE POINTER TO THAT WORD. 2810 DO 2815 IK = 1,IRWS IF (IDXFWL(IK,1) .GT. ISAVE) IDXFWL(IK,1) = IDXFWL(IK,1) - IPC 2815 CONTINUE COMMENT. ADJUST POINTERS TO THE INDEX TO ALLOW FOR DELETED ENTRY. DO 2820 NN = IPC + 1,9 IPTARY(NN) = IPTARY(NN) - 1 2820 CONTINUE GO TO 2800 COMMENT. IF WORD IS NOT PRESENT IN FILE PRINT ERROR MESSAGE & LIST C WORD. 2850 IF (FOUND) 2250,2875 2875 WRITE (ICTY,2750) (INAWD(IM),IM = 1,IPC) 2750 FORMAT (/" WORD NOT FOUND IN FILE:-"/X,14A2) GO TO 2200 COMMENT. OPTION CODE = 0 CAUSES THREE SAMPLES TO BE READ FROM TAPE & C THE GRADE LEVEL CALCULATED. 700 TUNFMP = 0 WRITE (ICTY,701) 701 FORMAT (X,"TYPE IN THE TITLE OF THE BOOK ON ONE LINE") READ (ICTY,702) ITITLE 702 FORMAT (40A2) WRITE (LP,703) ITITLE 703 FORMAT (1H ,40A2) TAVSL = 0 ISSN1 = -35 ISN = 0 5500 ISN = ISN + 1 ISIZE = 100 INFSWA = 1 ICWL = 0 IPWL = 0 ISC = 0 IWC = 0 ICR = 1 ISAMP(1,1)=1 GROUP = .FALSE. FLAG = .FALSE. COMMENT. READ IN A WORD & WRITE IT TO THE SAMPLE WORDS FILE. 6800 CALL OFLO DO 6500 II = 0,IPC-1 ISPARY(INFSWA + II) = INAWD(II + 1) 6500 CONTINUE COMMENT. CREATE AN ENTRY IN THE SAMPLE WORDS INDEX FOR THE WORD JUST C WRITTEN TO THE SAMPLE WORDS FILE. ISAMP(ICR,2)=IPC ISAMP(ICR+1,1)=ISAMP(ICR,1)+ISAMP(ICR,2) INFSWA = INFSWA + IPC ICWL = IPC COMMENT. IF RIGHTMOST LOCAVTION OF LATEST SAMPLE WORD CONTAINS FULL CSTOP SPACE THEN ADJUST INDEX & POINTER TO NEXT FREE LOCATION OF FILE C SO THAT THIS LOCATION IS OVERWRITTEN BY THE START OF THE NEXT WORD. IF (IAND(ISPARY(INFSWA-1),177400B) .EQ. 27000B) 6300,6400 6300 ISAMP(ICR,2) = ISAMP(ICR,2) - 1 ISAMP(ICR+1,1) = ISAMP(ICR+1,1) - 1 INFSWA = INFSWA -1 GO TO 5950 COMMENT. IF RIGHTMOST LOCATION OF LATEST SAMPLE WORD CONTAINS SOME C CHARACTER FULL STOP THEN REPLACE FULL STOP WITH SPACE. 6400 IF (IAND(ISPARY(INFSWA-1),377B) .NE. 56B) GO TO 6600 ISPARY(INFSWA-1) = IOR(IAND(ISPARY(INFSWA-1),177400B),40B) GO TO 5950 COMMENT. IF LENGTH OF WORD JUST READ = LENGTH OF PREVIOUS WORD THEN C COMPARE THE TWO WORDS CHARACTER PAIR BY CHARACTER PAIR. 6600 IF (IPWL .NE. ICWL) GO TO 6000 6602 DO 5900 I = INFSWA - ICWL - IPWL,INFSWA - ICWL - 1 IF (ISPARY(I) .NE. ISPARY(I+IPWL)) GO TO 6000 5900 CONTINUE COMMENT. IF THIS REPETITION HAS NOT BEEN PREVIOUSLY NOTED ADD ONE TO C THE SENTENCE COUNT & NOTE THAT THIS GROUP OF REPEATED WORDS HAS C BEEN NOTED. IF(GROUP)6001,5950 5950 ISC = ISC + 1 GROUP=.TRUE. GO TO 6001 6000 GROUP = .FALSE. 6001 IPWL = ICWL 5800 ICR = ICR + 1 COMMENT. IF NO. OF WORDS READ IN < SAMPLE SIZE REPEAT ROUTINE. IF (IWC .GE. ISIZE) GO TO 6700 6625 GO TO 6800 COMMENT. COUNT WORDS BETWEEN LATEST FULL STOP OR REPEATED WORD C (WHICHEVER COMES LATER) & END OF SAMPLE AS A SENTENCE. 6700 IF (((IAND(ISPARY(INFSWA-1),177400B).NE.27000B).AND.(IAND(ISPARY( 1INFSWA - 1),377B) .NE. 56B)) .AND. (.NOT. GROUP)) ISC = ISC+1 COMMENT. IF REQUIRED , LIST SAMPLE. IF (IOPT(1)) 7300,7300,6005 6005 WRITE(LP,6900)ISN 6900 FORMAT ("1SAMPLE NO. ",I1," LISTING."/X,21("*")/) ILS=1 IAP = 0 COMMENT. LIST SAMPLE. ONE WORD PER LINE. 7400 WRITE (LP,7000) (ISPARY(IAP + J),J = 1,ISAMP(ILS,2)) 7000 FORMAT (X,14A2) ILS = ILS + 1 COMMENT. IF WHOLE OF SAMPLE NOT LISTED UPDATE POINTER TO FILE TO 2C POINT TO BEGINNING OF NEXT WORD & REPEAT LOOP. IF (ILS .GT. ISIZE) GO TO 7300 7100 IAP = IAP + ISAMP(ILS - 1,2) GO TO 7400 7300 WRITE (LP,7350) ISN,ISIZE 7350 FORMAT (//" NO. OF WORDS IN SAMPLE ",I1," = ",I3) WRITE (LP,7500) ISC 7500 FORMAT(//1H ,"NO. OF SENTENCES = ",I2) IUNFMC=0 COMMENT. INITIALIZE UNFAMILIARS FILE INDEX. IUNFAM(1,1)=1 IUNFAM(1,2)=0 ISLS=1 7700 IULS=1 COMMENT. IF LENGTH OF CURRENT SAMPLE WORD # LENGTH OF CURRENT C UNFAMILIAR WORD GO TO TEST FOR END OF UNFAMILIARS INDEX. 8200 IF (ISAMP(ISLS,2) .NE. IUNFAM(IULS,2)) GO TO 7800 DO 7900 K = 0,ISAMP(ISLS,2) - 1 IF (ISPARY(ISAMP(ISLS,1) + K) .NE. IUFARY(IUNFAM(IULS,1) + K)) 1GO TO 7800 7900 CONTINUE COMMENT. IF CURRENT SAMPLE WORD MATCHES CURRENT UNFAMILIAR WORD GO TO C CONSIDERING NEXT WORD OF SAMPLE. GO TO 8000 COMMENT. IF NOT END OF INDEX THEN NEXT UNFAMILIAR WORD. 7800 IF (IUNFAM(IULS,2) .EQ. 0) GO TO 8100 IULS=IULS+1 GO TO 8200 8100 IFLS = IPTARY(ISAMP(ISLS,2)) 8110 IF (IFLS .EQ. IPTARY(ISAMP(ISLS,2) + 1)) 8515,8600 COMMENT. READ CURRENT FAMILIAR WORD IN BLOCK FROM DISK FILE & COMPARE C IT TO CURRENT SAMPLE WORD CHARACTER PAIR BY CHARACTER PAIR. 8600 ISSN = (IDXFWL(IFLS,1) - 1)/128 IF ((ISSN .GE. ISSN1) .AND. (ISSN .LE. (ISSN1 + ISCT - 1))) 1 8610,8620 8620 IDIV2 = ISSN/ISCT CALL EXEC(IRD,ICONWD,IFWL,IBLK + 128,INAME,IDIV2*ISCT) 8613 ISSN1 = IDIV2*ISCT 8610 IFDSS = MOD(IDXFWL(IFLS,1) - 1,IBLK) 8641 DO 8400 M=0,IDXFWL(IFLS,2)-1 IF (ISPARY(ISAMP(ISLS,1) + M) .NE. IFWL(IFDSS + 1 + M)) GO TO 8300 8400 CONTINUE GO TO 8000 COMMENT. IF END OF THIS SECTION OF FAMILIARS INDEX NOT FOUND CONSIDER C NEXT INDEX ENTRY & REPEAT ROUTINE. 8300 IFLS = IFLS + 1 GO TO 8110 COMMENT. FIND LAST ENTRY OF UNFAMILIARS INDEX & HENCE POINTER TO NEXT C FREE LOCN. OF UNFAMILIARS FILE. 8500 DO 8700 N = 1,ISIZE - 1 IF (IUNFAM(N,2)) 8700,8900,8700 8700 CONTINUE FCOMMENT. WRITE WORD TO UNFAMILIARS FILE. 8900 DO 9000 IA=0,ISAMP(ISLS,2)-1 IUFARY(IUNFAM(N,1) + IA) = ISPARY(ISAMP(ISLS,1) + IA) 9000 CONTINUE COMMENT. CREATE INDEX ENTRY FOR IT. IUNFAM(N,2)=ISAMP(ISLS,2) IUNFAM(N+1,1)=IUNFAM(N,1)+IUNFAM(N,2) IUNFAM(N+1,2)=0 IUNFMC=IUNFMC+1 9003 GO TO 8000 COMMENT. CHECK FOR THE PRESENCE (IN BOTH THE LEFT JUSTIFIED & RIGHT C JUSTIFIED POSITIONS) OF ONE OF THE ENDINGS ING, ED,ES OR S. CREATE C NEW SAMPLE WORD BY REMOVING ENDING IF ONE IS PRESENT & REPEAT C FILES SEARCH WITH NEW WORD. IF NO ENDING PRESENT WRITE WHOLE WORD C TO UNFAMILIARS FILE. 8515 IF ((ISPARY(ISAMP(ISLS + 1,1) - 2) .NE. 44516B) .OR. 1 (ISPARY(ISAMP(ISLS + 1,1) - 1) .NE. 43440B)) GO TO 9100 ISAMP(ISLS,2) = ISAMP(ISLS,2) - 2 GO TO 9220 9100 IF ((IAND(ISPARY(ISAMP(ISLS+1,1)-2),377B) .NE.111B) .OR. (ISPAR 1Y(ISAMP(ISLS+1,1)-1) .NE. 47107B))9110,8535 9110 IF (ISPARY(ISAMP(ISLS+1,1)-1) .NE. 42504B) 9120,9210 9120 IF ((IAND(ISPARY(ISAMP(ISLS+1,1)-2),377B) .NE. 105B) .OR. 1(ISPARY(ISAMP(ISLS+1,1)-1) .NE. 42040B))9130,8535 9130 IF (ISPARY(ISAMP(ISLS+1,1)-1) .NE. 42523B)9140,9210 9140 IF ((IAND(ISPARY(ISAMP(ISLS+1,1)-2),377B) .NE. 105B) .OR. 1(ISPARY(ISAMP(ISLS+1,1)-1) .NE. 51440B)) 9150,8535 9150 IF (ISPARY(ISAMP(ISLS+1,1)-1) .NE. 51440B) 9160,9210 9160 IF (IAND(ISPARY(ISAMP(ISLS+1,1)-1),377B) .NE. 123B) 8500,9170 9170 ISPARY(ISAMP(ISLS+1,1)-1) = IOR(IAND(ISPARY(ISAMP(ISLS+1,1)-1), 1177400B),40B) GO TO 7700 8535 ISPARY(ISAMP(ISLS+1,1)-2) = IOR(IAND(ISPARY(ISAMP(ISLS+1,1)-2), 1177400B),40B) 9210 ISAMP(ISLS,2) = ISAMP(ISLS,2) - 1 9220 ISPARY(ISAMP(ISLS+1,1)-1)=20040B GO TO 7700 8000 ISLS=ISLS+1 IF (ISLS .LE. ISIZE) GO TO 7700 SC = ISC UNFMC = IUNFMC COMMENT. CALCULATE & PRINT %GE OF UNFAMILIAR WORDS IN SAMPLE. UNFMP = UNFMC/ISIZE*100 AVSL = ISIZE/SC WRITE (LP,9400) UNFMP 9400 FORMAT(//" %GE UNFAMILIAR WORDS = x",F7.2) TUNFMP = TUNFMP + UNFMP TAVSL = TAVSL + AVSL COMMENT. IF ALL THREE SAMPLES NOT READ REPEAT WITH NEW SAMPLE, C OTHERWISE CALCULATE & PRINT GRADE LEVEL , THEN REQUEST NEW OPTION C CODE. IF (ISN .LT. 3) GO TO 5500 GL = TAVSL/3*0.141 + TUNFMP/3*0.086 + 0.839 + 5 WRITE (LP,9500) GL 9500 FORMAT (////" GRADE LEVEL = ",F9.3) GO TO 550 COMMENT. AFTER -VE OPTION CODE WRITE POINTERS ARRAY & FAMILIARS INDEX C BACK TO DISK, PRINT MESSAGE & TERMINATE PROGRAM. 9998 CALL EXEC(IWR,ICONWD,IPTARY,128,NAM,0) CALL EXEC(IWR,ICONWD,IDXFWL,IDXSZE,NAME,0) 9996 WRITE (ICTY,9997) 9997 FORMAT (/"SPHRF TERMINATED.") END SUBROUTINE OFLO COMMON ILABA,ILABB,INAWD,IDXFWL,FLAG,IPC,ICTY,IPTR,IWC, 1ISIZE DIMENSION IDXFWL(1152,2),INAWD(14) LOGICAL FLAG COMMENT. READ NEXT WORD INTO ARRAY INAWD. 4700 READ (IPTR,9600) INAWD 9600 FORMAT (14A2) COMMENT. IF TERMINATOR READ GO TO FILE LISTING ROUTINE. IF (INAWD (1) - 2H**) 5300,5400,5300 5400 GO TO ILABB 5300 IWC = IWC + 1 COMMENT. CALCULATE NO. OF LOCNS. WORD OCCUPIES. DO 3800 IG=1,14 IF (INAWD(IG) .EQ. 2H ) GO TO 3900 3800 CONTINUE 3900 IPC = IG - 1 COMMENT. IF WORD IS OVERLENGTH PRINT ERROR MESSAGE IF THIS HAS NOT C PREVIOUSLY BEEN DONE & LIST WORD. IF (IPC .LE. 8) GO TO 4100 IF (FLAG) GO TO 4300 FLAG = .TRUE. WRITE (ICTY,4400) 4400 FORMAT (/"THE FOLLOWING WORDS EXCEED 16 CHARACTERS & ARE REJECTED 1BY THE PROGRAM."/) 4300 WRITE (ICTY,9600) (INAWD(IH),IH=1,IPC) IWC = IWC - 1 ISIZE = ISIZE - 1 IF (IWC .LT. ISIZE) GO TO 4700 COMMENT. IF OVERLENGTH WORD WAS NOT LAST IN SAMPLE THEN READ ANOTHER C WORD, OTHERWISE RETURN TO LIST SAMPLE. GO TO ILABA 4100 RETURN END SUBROUTINE SWOP(IDUM) COMMON ILABA,ILABB,INAWD,IDXFWL,FLAG,IPC,ICTY,IPTR,IWC, 1ISIZE DIMENSION IDXFWL(1152,2),INAWD(14) DO 10 K = 1,2 ITEMP = IDXF<:6WL(IDUM + 1,K) IDXFWL(IDUM + 1,K) = IDXFWL(IDUM,K) IDXFWL(IDUM,K) = ITEMP 10 CONTINUE RETURN END END$ <ANDREW CHARLES DAVID EDWARD JAMES JOHN MARK RICHARD ROBERT WILLIAM PAUL STEPHEN STEVEN IAN IAIN MICHAEL ALBERT ADRIAN BENJAMIN CHRISTOPHER DESMOND DORIAN DOUGLAS ERNEST GEOFFREY HUGH ANN ANNE CATHERINE CLARE EMMA ELIZABETH JANE LOUISE LUCY MARY SARAH VICTORIA NICOLA JOANNA KATHERINE ALANA ALICE AUDREY MARCIA MARGARET CELESTE DAWN ELAINE HILARY HELEN ** iBEGINN BELIEV BON BRAV BRIDG CAPP CARRI CAK CAS CAUS CENTR CHANC CHANG CHOOS CIRCL CITI CLOS COM COMPANI COUNTRI COURS CRI CUTT DANC DOUBL DRIV DROPP DY EDG EY FAC FAMILI FANCI FENC FIN FIV FIR FITT FLI GAM GAT GETT GIV HAV HID HOL HOM HOP HOUS IC KNE LAD LAK LEAV LETT LI LIK LIN LIV LOV MAK MEASUR MIDDL MIL MIN MINUT MOV NAM NIN NOIS NOS OFFIC OUTSID PAG PARTI PEOPL PICTUR PIEC PLAC PLEAS RAC RID ROS RUNN SAV SE SERV SHAK SHAP SHIN SHIPP SHO SHOPP SHUTT SID SITT SINN SKI SMILE SMOK SOMETIM SPAC SPOTT SQUAR STARR STEPP STON STOPP STOR STORI STRIK SUPPOS SURPRIS TABL TAK TAST THINN THRE TI TIR TIM TY TONGU TOPP TRAD TRE TRI TWELV UNCL WARR WAST WAV WETT WHOL WID WRIT ** EA ABOUT ABOVE ACROSS AT AFRAID AFTER AFTERNOON AGAIN AGAINST AGO AIR ALL ALMOST ALONE ALONG ALREADY ALSO ALWAYS AM AMERICAN AN AND ANIMAL ANOTHER ANSWER ANY ANYTHING APPLE ARE ARM AROUND AS ASK AT AWAY B BABY BACK BAD BAG BALL BAND BANK BASKET BE BEAR BEAUTIFUL BECAUSE BED BEE BEEN BEFORE BEGAN BEGIN BEHIND BEING BELIEVE BELL BELONG BESIDE BEST BETTER BETWEEN BIG BILL BIRD BIT BLACK BLESS BLIND BLOOD BLOW BLUE BOARD BOAT BODY BONE BOOK BARN BATH BOTTOM BOW BOX BOY BRANCH BRAVE BREAD BREAK BREAKFAST BRIDGE BRIGHT BRING BROKEN BROTHER BROUGHT BROWN BUILD BUILDING BUILT BURN BUSY BUT BUTTER BUY BY C CAKE CALL CAME CAN CAP CAPTAIN CAR CARE CAREFUL CARRY CASE CATCH CAUSE CENTRE CHAIR CHANCE CHANGE CHIEF CHILD CHILDREN CHOOSE CHRISTMAS CHURCH CIRCLE CITY CLASS CLEAN CLEAR CLOCK CLOSE CLOTH CLOTHES CLOUD COAL COAT COLD COLOUR COME COMING COMPANY COOL COOK CORN CORNER COST COULD COUNT COUNTRY COURSE COVER COW CRIED CROSS CROWD CROWN CRY CUP CUT D DANCE DARK DAY DEAD DEAR DEEP DID DIE DIFFERENT DINNER DO DOCTOR DOES DOG DONE DONT DOOR DOUBLE DOWN DRAW DREAM DRESS DRINK DRIVE DROP DRY DUST E EACH EAR EARLY EARTH EAST EASY EAT EDGE EGG EIGHT EITHER ELSE END ENGLAND ENGLISH ENOUGH EVEN EVENING EVER EVERY EVERYTHING EXCEPT EXPECT EYE F FACE FAIR FALL FAMILY FANCY FAR FARM FARMER FAST FAT FATHER FEED FEEL FEET FELLOW FELT FENCE FEW FIELD FIGHT FILL FIND FINE FINGER FINISH FIRE FIRST FISH FIT FIVE FIX FLOOR FLOWER FLY FOLLOW FOOD FOOT FOR FORGET FOURTH FOUND FOUR FRESH FRIEND FROM FRONT FRUIT FULL G GAME GARDEN GATE GAVE GET GIFT GIRL GIVE GLAD GLASS GO GOD GOING GOLD GOLDEN GONE GOOD GOT GRAIN GRASS GRhEY GREAT GREEN GREW GROUND GROW H HAD HAIR HALF HALL HAND HANG HAPPY HARD HAS HAT HAVE HE HEAD HEAR HEARD HEART HEAVY HELP HER HERE HERSELF HIDE HIGH HILL HIM HIMSELF HIS HOLD HOLE HOME HOPE HORSE HOT HOUSE HOW HUNDRED HUNT HURRY HURT I I ICE IF IN INDIAN INSTEAD INTO IRON IS IT ITS J JUMP JUST K KEEP KEPT KILL KIND KING KISS KNEE KNOW KNEW L LADY LAID LAKE LAND LARGE LAST LATE LAUGH LAY LEAD LEARN LEAVE LEFT LEG LESSON LET LETTER LIE LIFT LIKE LIGHT LINE LION LIPS LISTEN LITTLE LIVE LOAD LONG LOOK LOST LOT LOUD LOVE LOW M MADE MAIL MAKE MAN MANY MARCH MARK MARKET MATTER MAY ME MEAN MEASURE MEAT MEET MEN MET MIDDLE MIGHT MILE MILK MILL MIND MINE MINUTE MISS MONEY MONTH MOON MORE MORNING MOST MOTHER MOUNTAIN MOUTH MOVE MISTER MISTRESS MUCH MUSIC MUST MY MYSELF N NAME NEAR NECK NEED NEIGHBOUR NEITHER NEST NEVER NEW NEXT NICE NIGHT NINE NO NOISE NONE NOON NOR NORTH NOSE NOT NOTHING NOW NUMBER O OAK OCEAN OF OFF OFFICE OFTEN OLD ON ONCE ONE ONLY OPEN OR OTHER OUR OUT OUTSIDE OVER OWN P PAGE PAINT PAIR PAPER PART PARTY PASS PATH PAY PEN PEOPLE PICK PICTURE PIECE PLACE PLAIN PLANT PLAY PLEASE POINT POOR POST POUND PRESENT PRESS PRETTY PULL PUT Q QUARTER QUEEN QUICK QUIET QUITE R RACE RAIN RAN RATHER REACH READ READY REAL REASON RED REMEMBER REST RICH RIDE RIGHT RING RIVER ROAD ROCK ROLL ROOF ROOM ROSE ROUND ROW RUN S SAID SAIL SALT SAME SAND SAT SAVE SAW SAY SCHOOL SEA SEASON SEAT SECOND SEE SEED SEEM SEEN SELF SELL SEND SENT SERVE SET SEVEN SEVERAL SHAKE SHALL SHAPE SHE SHEEP SHINE SHIP SHOE SHOP SHORT SHOULD SHOULDER SHOW SHUT SICK SIDE SIGN SILK SILVER SING SIR SISTER SIT SIX SIZE SKIN SKY SLEEP SLOW SMALL SMILE SMOKE SNOW SO SOFT SOLD SOLDIER SOME SOMETHING SOMETIME SONG SOON SOUND SOUTH SPACE SPEAK SPOT SPREAD SPRING SQUARE STAND STAR START STATION STAY STEP STICK STILL STONE STOOD STOP STORE STORM STORY STRAIGHT STREET STRIKE STRONG SUCH SUGAR SUIT SUMMER SUN SUPPOSE SURE SURPRISE SWEET T TABLE TAIL TAKE TALK TALL TASTE TEACH TEACHER TEAR TELL TEN THAN THANK THAT THE THEIR THEM THEN THERE THESE THEY THICK THIN THING THINK THIS THOSE THOUGH THOUGHT THOUSAND THREE THROUGH THROW TIE TILL TIME TIRE TIRED TO TODAY TOGETHER TOLD TOMORROW TONGUE TOE TOOK TOP TOUCH TOWN TRADE TRAIN TREE TRUE TRY TURN TWELVE TWENTY TWO U UNCLE UNDER UNTIL UP UPON US USE V VALLEY VERY VISIT W WAIT WALK WALL WANT WAR WARN WAS WASH WASTE WATCH WATER WAVE WAY WE WET WEAR WEATHER WEEK WELL WENT WERE WEST WHAT WHEAT WHEEL WHEN WHERE WHETHER WHICH WHILE WHITE WHO WHOLE WHOM WHOSE WHY WIDE WILD WILL WINDOW WING WINTER WISH WITH WITHOUT WOMAN WONDER WOOD WORD WORK WORLD WOULD WRITE WRONG Y YARD YEAR YELLOW YES YESTERDAY YET YOU YOUNG YOUR ** _  22681-18061 1612 SC 0122 OCTASET              H0101 ASMB,A,B,L HED *** OCTASET-A *** 8-27-74 TDH ORG 2B JMP *+1,I DEF ENTRY CNTL EQU 11B BUSS I/O DATA EQU 12B DICOM EQU 10B * ORG 4000B ENTRY LDA MSL15 LDB MSG15 JSB PRTBF * START JSB EOL JSB EOL LDA MSG14-1 JSB PRTWD JSB BELL JSB CHRIN JMP START * ASMBL LDA MSL12 LDB MSG12 JSB PRTBF NEWLN JSB EOL LDA ORG JSB PRTNM JSB BLANK CLA STA WORD ALOOP JSB CHRIN GET CHARACTER CPA ESC ESCAPE? JMP NEWLN YES: START NEW LINE CPA SPACE SPACE? JMP GETAD YES, GET OPCODE & ADDRESS CPA CR CARRIAGE RETURN? JMP NOADD YES, NO ADDRESS FIELD-GET OPCODE CPA ./. SLASH? JMP NEWAD YES, GET NEW ORG ADDRESS CPA CTRLC CONTROL C? JMP CNTNS YES: PRINT CONTENTS AND B37 THEN PACK LEAST 5 BITS OF LDB WORD CHARACTER INTO PSEUDO BLF,RBL OPCODE WORD. IOR 01 STA WORD JMP ALOOP * CNTNS LDA ORG,I PRINT CONTENTS OF CURRENT ADDRESS JSB PRTNM JMP NEWLN * EOL NOP END OF LINE - PRINT CARRIAGE LDA B6412 RETURN & LINE FEED JSB PRTWD JMP EOL,I * * CHRIN NOP INPUT ONE CHARACTER LDB CW1 OTB CNTL,C STC DATA,C SFS DATA JMP *-1 LIA DATA JSB CHARO AND M177 CPA M177 JMP START CPA CTRLA CONTROL A? JMP ASMBL YES, ASSEMBLY MODE CPA CTRLP CONTROL P? JMP PUNCH YES, WRITE TAPE CPA CTRLT CONTROL T? JMP LOAD YES, LOAD TAPE CPA CTRLV CONTROL V? JMP COMPR YES, VERIFY TAPE CPA CTRLD CONTROL D? JMP INVRS YES, INVERSE ASSEMBLY CPA CTRLS JMP SURCH CPA CTRLR JMP RUN CPA CTRLB JMP BOUND JMP CHRIN,I * CHARO NOP OUTPUT ONE CHARACTER LDB CW2 OTB CNTL,C AND M177 OTA DATA STC DATA,C SFS DATA JMP *-1 JMP CHARO,I * BLANK NOP LDA SPACE JSB CHARO JMP BLANK,I * TBSCH NOP TABLE SARCH LDA TABL1 INITIALIZE POINTERS 1 AND 2 STA PNTR1 LDA TABL2 STA PNTR2 LDB WORD LOOP3 CPB PNTR1,I BEGIN LINEAR SEARCH JMP FOUND EXIT, PNTR2= ADDRESS OF TRUE OPCODE LDA PNTR1 INCREMENT POINTER 1 INA STA PNTR1 CPA TBEND END OF TABLE? JMP OPERR YES,OPCODE NOT FOUND ISZ PNTR2 NO,INCREMENT POINTER 2 JMP LOOP3 FOUND NOP GET AND SAVE TRUE OPCODE LDA PNTR2,I STA OPCOD JMP TBSCH,I * * * FABRICATE MACHINE INSTRUCTION * FAB LDA OPCOD IS OPCODE NOF OR OCT? SZA,RSS JMP CMBIN YES, EXIT LDA ADDR AND B176K MASK OFF BITS 0-9 SZA,RSS IS ADDRESS ON BASE PAGE? JMP CMBIN YES, EXIT STA 01 LDA ORG IS ADDRESS ON SAME PAGE AND B176K WITH MACHINE INSTRUCTION CPA B DESTINATION? RSS JMP PGERR NO,OUTPUT ERROR MESSAGE LDA ADDR YES, GET BITS 0-9 OF ADDRESS AND B1777 IOR B2000 SET BIT 10(CURRENT PAGE) STA ADDR CMBIN LDA ADDR IOR OPCOD STA ORG,I ISZ ORG JMP NEWLN * * INVRS JSB EOL LDA MSL13 LDB MSG13 JSB PRTBF JSB .ATB GET STARTING ADDRESS STA SA JSB .ATB GET ENDING ADDRESS INA STA EA JSB EOL NEXT1 CLB STB CFLAG LDA SA JSB PRTNM PRINT ADDRESS JSB BLANK LDA SA,I PRINT OCTAL CONTENTS JSB PRTNM JSB BLANK CLA,CLE CLEAR ALL E=APPEND FLAG CLO FLAGS O=BASE PAGE FLAG LDA SA,I GET INSTRUCTION STA INSTR AND SAVE AND B70K IS IT MRG? SZA JMP /MRG YES LDA INSTR SSA IS IT IOG? JMP IOG YES * NO-MUST BE ASG OR SRG RRG STA GETWD AND B2000 SZA JMP ASG LDA GETWD AND .BLF JSB SIFT LDA GETWD AND .CLE JSB SIFT LDA GETWD AND .SLB JSB SIFT LDA GETWD AND CTRLP OCT 20=ENABLE GROUP II IN SRG SZA,RSS JMP BUMP LDA GETWD AND MSK7 IOR .SLA ALF,RAL RAL STA 01 LDA GETWD AND B74K IOR 01 JMP AX1 * ASG LDA GETWD AND .CCB JSB SIFT LDA GETWD AND .CCE JSB SIFT LDA GETWD AND .SEZ JSB SIFT LDA GETWD AND .SSB JSB SIFT LDA GETWD AND ..SLB JSB SIFT LDA GETWD AND .INB JSB SIFT LDA GETWD AND .SZB JSB SIFT LDA GETWD AND .RSS AX1 JSB SIFT BUMP ISZ SA BUMP ADDRESS JSB EOL LDA SA CPA EA SA=EA? JMP START YES! RETURN TO MODE REQUEST JMP NEXT1 NO- GO DO IT AGAIN * MRG LDA INSTR AND B2000 BASE PAGE REFERENCE? SZA,RSS STO YES: SET BP FLAG LDA INSTR SSA INDIRECT? CCE YES: SET APPEND FLAG AND B1777 STA LOBTS SAVE BITS 0-9 LDA INSTR AND B74K STRIP ADDRESS & INDIRECT OFF STA INSTR JSB MNSCH GO SEARCH MNEMONIC TABLE JMP OCTAL RETURN HERE IF DEFAULT JSB PRTIT ELSE HERE- GO PRINT MNEMONIC LDA SPACE NO: PRINT 'SPACE' JSB CHARO SOC BASE PAGE FLAG SET? JMP BPAGE YES LDA SA NO AND B176K GET PAGE IOR LOBTS AND ADDRESS & JSB PRTNM PRINT IT GX1 SEZ JSB PRTIN JMP BUMP * PRTIN NOP LDA COMAI PRINT ',I SPACE' JSB PRTWD JMP PRTIN,I * SIFT NOP SZA,RSS  JMP SIFT,I STA INSTR JSB MNSCH JMP SIFT,I JSB PRTIT ISZ CFLAG JMP SIFT,I * BPAGE LDA SA,I PRINT BASE PAGE ADDRESS AND B1777 JSB PRTNM JMP GX1 * IOG AND B77 SAVE SELECT CODE STA I/O LDA INSTR STA GETCR AND NOT9 AND BTS05 REMOVE BITS 0-5 STA INSTR & SAVE JSB MNSCH GO SEARCH MNEMONIC TABLE JMP OCTAL RETURN HERE IF DEFAULT JSB PRTIT GO PRINT MNEMONIC LDA SPACE JSB CHARO LDA I/O PRINT SELECT CODE JSB PRTNM LDA GETCR AND BIT9 SZA JSB PRTCF JMP BUMP * MNSCH NOP MNEMONIC TABLE SEARCH LDA TABL2 STA PNTR1 INITIALIZE POINTER 1 LDA TABL1 STA PNTR2 INITIALIZE POINTER 2 LDB INSTR GOMAN CPB PNTR1,I BEGIN LINEAR SEARCH JMP GOTIT LDA PNTR1 BUMP POINTER 1 INA STA PNTR1 CPA ENDTB END OF TABLE? JMP *+3 YES: MUST BE OCTAL ISZ PNTR2 BUMP POINTER 2 JMP GOMAN JMP MNSCH,I GOTIT LDA PNTR2,I A MATCH EXISTS, STA NEMON RETRIEVE MNEMONIC & SAVE ISZ MNSCH BUMP RETURN ADDRESS JMP MNSCH,I & EXIT. * PRTIT NOP PRINT MNEMONIC LDB CFLAG SZB,RSS JMP *+3 LDA COMMA JSB CHARO LDA NEMON ALF,RAL RAL STA TEMP1 JSB MAKIT LDA TEMP1 ALF,RAL STA TEMP1 JSB MAKIT LDA TEMP1 ALF,RAL JSB MAKIT JMP PRTIT,I * MAKIT NOP MAKE ASCII & PRINT AND B37 IOR ALPHA JSB CHARO JMP MAKIT,I * PRTCF NOP PRINT ',C' LDA COMAC JSB PRTWD JMP PRTCF,I * OCTAL LDA SA,I PRINT OCTAL EQUIVALENT OF JSB PRTNM INSTRUCTION CODE JMP BUMP * NEWAD JSB .ATB NEW ADDRESS,STORE IN ORG STA ORG JMP NEWLN * SURCH JS[B EOL LDA MSL6 LDB MSG6 JSB PRTBF JSB .ATB STA NEMON JSB EOL LDA MSL7 LDB MSG7 JSB PRTBF JSB .ATB STA SA JSB .ATB STA EA JSB EOL LDA SA SLOOP LDB A,I CPB NEMON JSB MATCH CPA EA JMP START INA JMP SLOOP MATCH NOP STA I/O JSB PRTNM JSB EOL LDA I/O JMP MATCH,I * RUN JSB EOL LDA MSL9 LDB MSG9 JSB PRTBF JSB .ATB STA ADDR JSB EOL CLC 0,C JMP ADDR,I * * SUBROUTINE TO PRINT OCTAL NUMBER * PRTNM NOP RAL STA TEMP1 AND M1 ADA M60 JSB CHARO LDA M5 STA CNTR1 LOOP7 LDA TEMP1 ALF,RAR STA TEMP1 AND MSK7 ADA M60 JSB CHARO ISZ CNTR1 JMP LOOP7 LIA 01 ABORT IF SW 15 SET SSA JMP START JMP PRTNM,I * .ATB NOP GET ASCII FROM TTY & CONVERT CLA,CLE STA TEMP2 JSB CHRIN CPA ESC JMP NEWLN CPA COMMA JMP EXITA CPA CR JMP EXIT CPA SPACE ILLEGAL SPACE? JMP FMTER YES,FORMAT ERROR LDB TEMP2 BLF,RBR AND MSK7 IOR B STA TEMP2 JMP .ATB+3 EXITA CCE EXIT LDA TEMP2 JMP .ATB,I * GETAD JSB TBSCH GET OPCODE & SAVE JSB .ATB GET ADDRESS STA ADDR SEZ,RSS JMP FAB JSB .ATB CPA CTRLC JMP G2 CPA M1 RSS JMP OPERR RAR G1 IOR OPCOD STA OPCOD JMP FAB G2 LDA BIT9 JMP G1 * NOADD JSB TBSCH GET OPCODE & SAVE CLA SET ADDRESS=0 JMP CMBIN+1 * PRTWD NOP PRINT 16 BIT WORD IN ASCII STA TEMP1 FORMAT ALF,ALF AND M177 JSB CHARO LDA TEMP1 JSB CHARO JMP PRTWD,I * PRTBF NOP \ PRINT ASCII FROM BUFFER CMA,INA (LENGTH IN A ) STA CNTR1 (ADDRESS IN B) STB TEMP2 MORE LDA TEMP2,I JSB PRTWD ISZ TEMP2 ISZ CNTR1 JMP MORE JMP PRTBF,I * BELL NOP RING TTY BELL LDA MSK7 LDB CW3 OTB CNTL,C OTA DATA STC DATA,C JMP BELL,I * PGERR JSB EOL OUTPUT PAGING JSB BELL ERROR MESSAGE LDA MSL3 LDB MSG3 JSB PRTBF JMP NEWLN * OPERR JSB EOL OUTPUT OPCODE JSB BELL ERROR MESSAGE LDA MSL4 LDB MSG4 JSB PRTBF JMP NEWLN * FMTER JSB EOL OUTPUT FORMAT ERROR JSB BELL MESSAGE(ILLEGAL SPACE) LDA MSL5 LDB MSG5 JSB PRTBF JMP START SKP * * THIS SUBROUTINE GIVE A CORE DUMP ON MAG TAPE * * * TAPE RECORD FORMAT: * * *************** * * * * * REC LENGTH * * * * * *************** * * * * * STARTING * * * RECORD * * * ADDRESS * * * * * *************** * * * * * * * * D * * * A * * * T * * * A * * * * * *************** * * * * * * * * CKSUM * * * * * *************** * * * PUNCH JSB EOL LDA MSL2 LDB MSG2 JSB PRTBF JSB .ATB STA SA JSB .ATB STA EA * * CALCULATE WHETHER A COMPLETE 128 WORD * RECORD CAN BE PUNCHED. IF NOT, PUNCH THE * REMAINING SHORT RECORD AND TERMINATE. * NEWRC LDA END LDB BEGIN CMB,INB -BEGIN ADA B END-BEGIN ADA N127 END-BEGIN-127 SZA CHECK FOR EXACT FIT SSA JMP ENDRC PUNCH LAST SHORT RECORD * * WRITE FULL SIZE RECORD * LDA P128 NUMBER WORDS IN RECORD JSB PCHRD PUNCH FULL RECORD JSB RDYWA GO WAIT FOR DECK READY JMP NEWRC GO WRITE NEXT RECORD * * WAIT FOR DECK READY * RDYWA NOP LIA DICOM INPUT STATUS ALF,ALF POSITION 'DECK READY' IN BIT 0 SLA JMP RDYWA,I YES. RETURN JMP *-4 NO. TRY AGAIN * * WRITE LAST SHORT RECORD * ENDRC LDA END END ADA B END-BEGIN ADA M1 JSB PCHRD * * JSB RDYWA CHECK FOR READY LDA CW6 GET FILE MARK CMND. JSB CHROT OUTPUT IT CCA FORM FILE MARK CHAR. AND M377 IOR CW5 MERGE WITH WRITE CMND. JSB CHROT OUTPUT IT JSB RDYWA CHECK FOR READY JMP START RESTART * * * * PCHRD NOP CMA,INA STA TMP1 STORE IT LDA CW5 GET WRITE COMMAND JSB CHROT LDA TMP1 GET NEGATIVE RECORD LENGTH CMA,INA ALF,ALF JSB PCHDR OUTPUT IT LDA BEGIN JSB PCHDR PUNCH ADD IN TAPE-2ND WD * * OUTPUT DATA WORDS AND CALCULATE CHECKSUM * LDB BEGIN CKSUM=SUM(START ADD+DATA WDS) PCH1 LDA BEGIN,I ADB A JSB PCHDR OUTPUT DATA WORD ISZ BEGIN ISZ TMP1 JMP PCH1 LDA B JSB PCHDR OUTPUT CHECKSUM JMP PCHRD,I RETURN * * PCHDR NOP STA TMP2 STORE WORD IN TEMP. LOC. ALF,ALF POSITION 1ST CHAR. AND M377 SAVE BITS 0-7 IOR CW5 MERGE IN WRITE CMND. JSB CHROT OUTPUT CHAR. LDA TMP2 RESTORE DATA WORD AND M377 SAVE BIT 0-7 IOR -CW5 MERGE IN WRITE CMND. JSB CHROT OUTPUT 2ND. CHAR JMP PCHDR,I RETURN * * CHROT NOP OTA DICOM OUTPUT DATA AND CMND. STC DICOM,C ENCODE SFS DICOM TEST FLAG JMP *-1 WAIT JMP CHROT,I RETURN * * * BOUND CLA STA SWTCH JMP STORE LOAD JSB EOL LDA MSL10 LDB MSG10 JSB PRTBF LDA LDWRD STORE LOAD INSTRUCTION JMP STORE-1 COMPR JSB EOL LDA MSL11 LDB MSG11 JSB PRTBF LDA M5 STA CTR5 LDA BADTP GET TAPE BUFFER ADDR. STA TBAD STORE IN WORKING LOC. LDA BADAD GET ADDR. BUFFER ADDR. STA ABAD STORE IN WORKING LOC. LDA CPWRD STORE COMPARE INSTRUCTION STA SWTCH STORE STA OPTI JSB EOL * CONT JSB GETWD GET WORD COUNT ALF,ALF POSITION IT IN BITS 0-7 CMA MAKE IT NEGATIVE (1'S COMP.) STA EA SAVE IT JSB GETWD GET ADDRESS WD. JSB SWCHK CHECK IT 'LOAD', 'VERIFY', OR * 'BOUNDS' STA B ADDRESS WORD TO B REG. 1ST VALUE * IN CHECKSUM O1B ISZ EA INCREMENT WD. COUNT, SKIP IF DONE. JMP O1A READ NEXT WD. JSB GETWD WORD COUNT =0. READ CHECKSUM CPA B COMPARE. SKIP IF BAD JSB GETCR TRY TO READ ANOTHER RECORD JMP CKSUM GO PRINT CHECKSUM ERROR * O1A LDA ADDR GET ADDRESS WORD ADA MAXAD ADD LOWER LIMIT SSA,RSS IS IT LEGAL? JSB ADERR NO. CHECK UPPER LIMIT JSB GETWD GET DATA WD. ADB A ADD DATA WORD TO CHECKSUM OPTI NOP NOP = 'BOUNDS' * STA ADDR,I = 'LOAD' * CPA ADDR,I = 'VERIFY' CLE,RSS NOT EXECUTED IF 'OPTI' = CPA * & WORDS ARE NOT EQUAL JSB MISCM PRINT ERROR MSG. IF COMPARE * NOT EQUAL ISZ ADDR INCREMENT ADDRESS WD. JMP O1B * GETWD NOP JSB GETCR READ CHARACTER AND CHECK STATUS ALF,ALF ROTATE IT STA SWCHK STORE IT JSB GETCR GET 2ND CHAR. IOR SWCHK MERGE 1ST & 2ND CHAR. JMP GETWD,I RETURN * GETCR NOP LDA CW4 GET CMND. TO READ DK.#2 JSB CHROT LIA DICOM INPUT DATA SSA ERROR STATUS? JMP TPERR YES . PRINT MESSAGE RAL,RAL NO. POSITION FILE MARK STATUS * IN BIT 15 SSA,RSS FILE MARK? JMP NOFM NO JSB RDYWA YES. WAIT FOR READY CLC DICOM CLEAR UNIT JMP FINIS PRINT EOT MSG. NOFM ALF,RAL DECK READY STATUS TO BIT 15 SSA DECK READY? JMP BNDCK YES. EOR LIA DICOM NO. INPUT DATA AGAIN AND M377 SAVE ONLY BITS 0-7 JMP GETCR,I RETURN * * TPERR LDA MSL16 PRINT TAPE ERROR MSG. LDB MSG16 JSB PRTBF JMP START * SWCHK NOP STA ADDR STORE ADDRESS WORD LDB SWTCH GET 'OPTION' WORD SZB IS IT 'NOP'? JMP SWCHK,I NO. RETURN STA LOBND YES. STORE LO BOUNDARY LDA EA GET WORD COUNT INA CMA MAKE IT POSITIVE ADA ADDR COMPUTE HI BOUNDARY STA HIBND STORE HI BOUND. LDA ADDR RESTORE ADDRESS WORD JMP SWCHK,I RETURN * BNDCK NOP LDB SWTCH GET 'OPTION' WORD SZB,RSS IS IT 'NOP' JMP *+4 YES CPB LDWRD NO. IS IT 'STA' JMP CONT YES. READ NEXT RECORD JMP CPRCK NO. IT IS 'CPA'. PRINT ERRORS LDA LOBND YES. GET LO BOUNDARY ADDRESS JSB PRTNM PRINT IT JSB BLANK LDA HIBND GET HI BOUNDARY ADDRESS JSB PRTNM PRINT IT JSB EOL JMP CONT GO READ NEXT RECORD * FINIS LDA MSL14 PRINT *EOT & RETURN TO LDB MSG14 MODE REQUEST STATE JSB PRTBF JMP START * ADERR NOP STB GETCR SAVE B LDA ADDR CLE ADA ENDAD IS ADDRESS IN OCTAPUS SEZ JMP OK NO: CONTINUE LDA MSL9 YES: PRINT ADDRESS & ABORT LDB MSG9 JSB PRTBF LDA ADDR JSB PRTNM JMP START OK LDB GETCR RESTORE B JMP ADERR,I * SKP MISCM NOP STA TBAD,I STORE TAPE CONTENTS IN BUFFER LDA ADDR GET CURRENT CORE ADDRESS STA ABAD,I STORE ADDRESS IN BUFFER ISZ TBAD ISZ ABAD UPDATE WORKING LOCATIONS ISZ CTR5 INC. COUNTER. 5 ERRORS ? JMP MISCM,I NO. RETURN CCA YES. STA MISCM SET FLAG FOR CPRCK ROUTINE JMP CPRCK PRINT ERRORS AND ABORT * CKSUM LDA MSL8 PRINT 'CHECKSUM & ABORT LDB MSG8 JSB PRTBF JMP START * CPRCK LDA CTR5 GET COUNTER VALUE CPA M5 IS IT = -5 ? JMP CONT YES. NO ERRORS FOUND CMA,INA NO. MAKE ERROR COUNT POSITIVE ADA M5 STA CTR5 LDA BADTP GET TAPE BUFFER ADDRESS STA TBAD PUT IT IN WORKING LOC. LDA BADAD GET ADDRESS BUFFER ADDR. STA ABAD PUT IT IN WORKING LOC. CPRLP LDA ABAD,I GET CORE ADDRESS STA CHROT JSB PRTNM PRINT IT JSB BLANK LDA CHROT,I GET CORE CONTENTS JSB PRTNM PRINT IT JSB BLANK LDA TBAD,I GET TAPE CONTENTS JSB PRTNM PRINT IT JSB EOL ISZ TBAD ISZ ABAD ISZ CTR5 INC. COUNTER. DONE ? JMP CPRLP ISZ MISCM YES. INCREMENT FLAG. =0? JMP COMPR+4 NO. READ NEXT RECORD JMP START YES. ABORT SKP * SUP PSEUD OCT 2704 PSEUDO OPCODE TABLE OCT 60762 OCT 22762 OCT 25142,24660,23172,2201,2202,7001,7002 OCT 30201,30202,47201,47202,34760,6605 OCT 46601,46602,2623,4623,31 23,5123,44054 OCT 44114,44062,44122,2622,4622,13101 OCT 13102,12601,12602,2606,4606,6601,6602 OCT 6641,6642,6141,6142,6645,6145,46272 OCT 47141,47142,22701,22702,47501,47502 OCT 47217,6617,46743,46763,20624,47206 OCT 6606,46303,46323,32441,32442,30441 OCT 30442,37201,37202,47203,6603 OCT 36164,6605,46601,45163,46602 TBEND ABS * * OPTAB AND 00 TRUE OPCODE TABLE XOR 00 IOR 00 JSB 00 JMP 00 ISZ 00 ADA 00 ADB 00 CPA 00 CPB 00 LDA 00 LDB 00 B70K STA 00 B74K STB 00 NOP .CLE OCT 40 CLE IN SHIFT ROTATE GROUP .SLA OCT 10 SLA IN SHIFT ROTATE GROUP .SLB SLB BIT9 ALS BLS ARS BRS RAL RBL RAR RBR ALR BLR ERA ERB ELA ELB .ALF ALF .BLF BLF CLA CLB CMA CMB .CCA CCA .CCB CCB CME .CCE CCE .SEZ SEZ .SSA SSA .SSB SSB .INA INA .INB INB .SZA SZA .SZB SZB STO CLO SOC SOS HLT 00 STF 00 CLF 00 SFC 00 SFS 00 MIA 00 MIB 00 LIA 00 LIB 00 OTA 00 OTB 00 STC 00 CLC 00 NOP OCT 2100 CLE IN ALTER SKIP GROUP ..SLA OCT 2010 SLA IN ALTER SKIP GROUP .RSS RSS ..SLB OCT 6010 SLB IN ASG ENDTB ABS * * * *** CONSTANTS AND STORAGE *** * CR OCT 15 M1 OCT 1 M2 OCT -2 M5 DEC -5 MSK7 OCT 7 M60 OCT 60 ./. OCT 57 M177 OCT 177 B1777 OCT 1777 B2000 OCT 2000 B176K OCT 176000 CW1 OCT 65 CW2 OCT 67 CW3 OCT 63 CW4 OCT 5400 CW5 OCT 3400 CW6 OCT 43400 LOBND BSS 1 HIBND BSS 1 M377 OCT 377 TBAD BSS 1 ABAD BSS 1 BADTP DEF TPBUF BADAD DEF ADBUF TPBUF BSS 5 ADBUF BSS 5 CTR5 BSS 1 COMMA OCT 54 CTRLC OCT 3 CTRLR OCT 22 CTRLP OCT 20 CTRLS OCT 23 CTRLD OCT 4 CTRLB OCT 2 B37 )HFB OCT 37 COMAI OCT 26111 COMAC OCT 26103 B77 OCT 77 BTS05 OCT 177700 ALPHA OCT 100 B6412 OCT 6412 CTRLT OCT 24 CTRLV OCT 26 ESC OCT 30 DELETE LINE CODE N15 EQU BTS05 P128 DEC 128 N127 DEC -127 LDWRD STA ADDR,I CPWRD CPA ADDR,I MAXAD ABS -ENTRY SWTCH EQU RDYWA NOT9 OCT 176777 CFLAG NOP B101 OCT 101 B102 OCT 102 WORD BSS 1 OPCOD BSS 1 SA BSS 1 EA BSS 1 ADDR BSS 1 TEMP1 BSS 1 TEMP2 BSS 1 I/O BSS 1 NEMON BSS 1 LOBTS BSS 1 INSTR EQU WORD ORG NOP PNTR1 EQU TEMP1 PNTR2 EQU TEMP2 CNTR1 EQU WORD BEGIN EQU SA END EQU EA A EQU 0 B EQU 1 TMP1 EQU TEMP1 TMP2 EQU TEMP2 CTRLA EQU M1 TABL1 DEF PSEUD TABL2 DEF OPTAB ENDAD ABS -TAIL * ******** MESSAGES *********** * MSG2 DEF *+1 ASC 4,PUNCH? MSL2 EQU CTRLD * MSG3 DEF *+1 ASC 5,PAGE ERROR MSL3 DEC 5 * MSG4 DEF *+1 ASC 6,OPCODE ERROR MSL4 DEC 6 * MSG5 DEF *+1 ASC 7,ILLEGAL SPACE MSL5 EQU MSK7 * MSG6 DEF *+1 ASC 6,SEARCH FOR? MSL6 EQU MSL4 * MSG7 DEF *+1 ASC 3,RANGE? MSL7 EQU CTRLC * MSG8 DEF *+1 ASC 4,CHECKSUM MSL8 EQU CTRLD * MSG9 DEF *+1 ASC 4,ADDRESS= MSL9 EQU CTRLD * MSG10 DEF *+1 ASC 2,LOAD MSL10 EQU CTRLB * MSG11 DEF *+1 ASC 9,ADDR CORE TAPE MSL11 DEC 9 * MSG12 DEF *+1 ASC 4,ASSEMBLY MSL12 EQU CTRLD * MSG13 DEF *+1 ASC 6,DUMP RANGE? MSL13 EQU MSL4 * MSG14 DEF *+1 ASC 2,*EOT MSL14 EQU CTRLB * MSG15 DEF *+1 ASC 9,*** OCTASET-A *** MSL15 EQU MSL11 * MSG16 DEF *+1 ASC 4,TAPE ERR MSL16 EQU CTRLD * * * * SPACE EQU .CLE TAIL DEF * END ^H  22681-18067 1546 SC 0822 BCS PLOTTING ROUTINES USING A TEKTRONIX 4010-1             H0108  SUBROUTINE LOGPT(X1,Y1,N,X) DIMENSION X1(1),Y1(1) DIMENSION X(1) C C SELF-SCALING ROUTINE FOR MAKING A LOGLOG PLOT GIVEN X C ARRAY , Y ARRAY AND NUMBER OF POINTS N. CALL CLRTK 2 CALL BGNPL(1) CALL NCOML(X) IT=20040B IX=54040B IY=54440B J=X(54) 6 X2=XMIN(X1,N) X3=XMAX(X1,N) Y2=XMIN(Y1,N) Y3=XMAX(Y1,N) 1 CALL GRID(1,1) IF(J)5,3,4 5 X2=X(3) X3=X(5) Y2=X(4) Y3=X(6) IF(J+2)4,3,3 3 CALL TITLE(IT,1,IX,1,IY,1,4.,4.) 4 XCYC=ABS(ALOGT(X3/X2))+1. YCYC=ABS(ALOGT(Y3/Y2))+1. CALL LOGLG(X2,XCYC,Y2,YCYC) X(54)=0.0 M9=0 IF(X(53)-.5) 600,601 601 M9=X(53)+.5 600 CONTINUE X(53)=0.0 CALL CURVE(X1,Y1,N,M9) CALL ENDPL(1) RETURN END END$ SUBROUTINE LINPT(X1,Y1,N,X) DIMENSION X1(1),Y1(1) DIMENSION X(1) C C SELF-SCALING ROUTINE FOR MAKING A LINEAR X,Y PLOT GIVEN C X ARRAY, Y ARRAY AND NUMBER OF POINTS N. C CALL CLRTK IT=20040B IX=54040B IY=54440B 2 CALL BGNPL(1) CALL NCOML(X) J=X(54) 6 X2=XMIN(X1,N) X3=XMAX(X1,N) Y2=XMIN(Y1,N) Y3=XMAX(Y1,N) 1 CALL GRID(1,1) IF(J)5,3,4 5 X2=X(3) X3=X(5) Y2=X(4) Y3=X(6) IF(J+2)4,3,3 3 CALL TITLE(IT,1,IX,1,IY,1,4.,4.) 4 CALL ORMI(X2,X3,4.,X4,X5) CALL ORMI(Y2,Y3,4.,Y4,Y5) CALL GRAPH(X4,X5,Y4,Y5) X(54)=0.0 M9=0 IF(X(53)-.5) 600,601 601 M9=X(53)+.5 600 CONTINUE X(53)=0.0 CALL CURVE(X1,Y1,N,M9) CALL ENDPL(1) RETURN END END$ SUBROUTINE POLPT(R,T,N,X) DIMENSION R(1),T(1) DIMENSION X(1) C C SELF-SCALING ROUTINE FOR MAKING POLAR PLOTS GIVEN R, C THETA AND NUMBER OF POINTS. THETA MUST BE IN RADIANS. C CALL CLRTK IT=20040B KIX=51040B IY=20040B 2 CALL BGNPL(1) CALL NCOML(X) J=X(54) 6 X1=XMIN(R,N) X2=XMAX(R,N) 1 CALL GRID(1,1) IF(J)5,3,4 5 X1=X(3) X2=X(5) IF(J+2)4,3,3 3 CALL TITLE(IT,1,IX,1,IY,1,4.,4.) 4 CALL ORMI(X1,X2,2.,X3,X4) CALL PLORG(X3) CALL POLAR(1.,X4,2.0,2.0) X(54)=0.0 M9=0 IF(X(53)-.5) 600,601 601 M9=X(53)+.5 600 CONTINUE X(53)=0.0 CALL CURVE(R,T,N,M9) CALL ENDPL(1) RETURN END END$ SUBROUTINE ANTPT(R,T,N,X) DIMENSION R(1),T(1) DIMENSION X(1) CALL CLRTK IT=20040B IX=20040B IY=51040B C C SELF SCALING ROUTINE FOR PLOTTING ATENA PATTERNS GIVEN R AND C THETA ARRAYS AND NUMBER OF POINTS. THETA MUST BE IN RADIANS. C 2 CALL BGNPL(1) CALL NCOML(X) J=X(54) 6 X1=XMIN(R,N) X2=XMAX(R,N) 1 CALL GRID(1,1) IF(J)5,3,4 5 X1=X(3) X2=X(5) IF(J+2)4,3,3 3 CALL TITLE(IT,1,IX,1,IY,1,4.,4.) 4 CALL ORMI(X1,X2,2.,X3,X4) CALL PLORG(X3) CALL POLAR(1.,X4,2.0,2.0) CALL RTHET CALL THETS(X1) X(54)=0.0 M9=0 IF(X(53)-.5) 600,601 601 M9=X(53)+.5 600 CONTINUE X(53)=0.0 CALL CURVE(R,T,N,M9) CALL ENDPL(1) RETURN END END$ FUNCTION XMIN(Z,N) DIMENSION Z(1) C C FUNCTION FINDS THE MINIMUM POINT IN ARRAY Z OF N POINTS. C Y=Z(1) DO 1 J=2,N Q=Y-Z(J) IF(Q)1,1,3 3 Y=Z(J) 1 CONTINUE XMIN=Y RETURN END FUNCTION XMAX(Z,N) DIMENSION Z(1) C C FUNCTION FINDS MAXIMUM POINT IN ARRAY Z OF N POINTS. C Y=Z(1) DO 1 J=2,N Q=Y-Z(J) IF(Q)3,1,1 3 Y=Z(J) 1 CONTINUE XMAX=Y RETURN END END$ SUBROUTINE ORMI(XMIN,XMAX,XINC,XOR,XSTP) C C ROUTINE COMPUTES THE ORGIN (XOR) AND STEP SIZE (XSTP) C GIVEN XMIN,XMAX AND AXIS LENGTH(XINC) C Y=(XMAX-XMIN)/XINC Z=ALOGT(ABS(Y)) I=Z-1. Z=10.**I I=(Y/Z)+1. XSTP=FLOAT(I)*Z I=XMIN/Z XOR=FLOAT(I)*Z RETURN END END$ SUBROUTINE CURVE(X1,Y1,N,IFG,X) DIMENSION X(1) DIMENSION X1(1),Y1(1) CALL NCOML(X) C C LOAD MINIMUM AND MAXIMUN OF PLOTTING AREA C M=3 K1=IABS(IFG) I=K1-1 C C LOAD SYMBOL NUMBER C X(54)=X(54)+1.0 L=X(54) J=X(53) L=L+J 997 IF(L-4) 999,999,998 998 L=L-4 GO TO 997 999 CONTINUE C C JUMP TO PLOT STYLE BEING PLOTTED C L1=X(52) IF(L1) 1,2,1 C C CHECK FOR POINT OUT OF RANGE C 4 IF(XMX-ZX)90,91,91 91 IF(XMIN-ZX) 92,92,90 92 IF(YMX-ZY) 90,93,93 93 IF(YMIN-ZY) 94,94,90 90 M=3 GO TO 8 C C CHECK FOR STYLE OF LINE TO PLOT C 94 IF(IFG)5,6,7 6 IF(X(13)) 80,81,81 81 CONTINUE CALL PLTR(ZX,ZY,M) M=2 83 CONTINUE I=-1 GO TO 8 7 I=I+1 IF(X(13)) 80,82,82 82 CONTINUE CALL PLTR(ZX,ZY,M) M=2 84 CONTINUE 72 IF(I-K1) 8,71,71 71 CALL SYMBR(ZX,ZY,X(16),L,0.0,-1) I=0 GO TO 8 5 I=I+1 GO TO 72 8 CONTINUE XS=ZX YS=ZY GO TO 10 C C CREAT A DASH LINE C 80 IF(K-1) 201,201,86 86 SLPX=ZX-XS SLPY=ZY-YS SQQT=SLPX*SLPX+SLPY*SLPY DLT=SQRT(SQQT) IF(DLT-.05) 87,87,88 87 CALL PLTR(ZX,ZY,M) GO TO 206 88 SLPX=.05*SLPX/DLT SLPY=.05*SLPY/DLT XDASH=XS YDASH=YS ISLP=DLT/.05 DO 89 ISL=1,ISLP XDASH=XDASH+SLPX YDASH=YDASH+SLPY XSDSH=XS-XDASH SQQT1=YS-YDASH SQQT1=XSDSH*XSDSH+SQQT1*SQQT1 IF(SQQT-SQQT1) 200,200,201 201 CALL PLTR(XDASH,YDASH,M) 206 IF(M-2) 202,202,203 203 M=2 GO TO 89 202 M=3 89 CONTINUE 85 VIF(IFG) 83,83,84 200 CALL PLTR(ZX,ZY,M) GO TO 85 C C SET PARAMETERS FOR POLAR ANTENNA PLOTS C 2 J=1 X2=-X(10) Y2=-X(11) RY=X(21) Q=X(20) XMIN=-XMX YMIN=-YMX XMX=X(1)-X(10)+.25 YMX=X(2)-X(11)+.25 CALL PLTR(X(10),X(11),-3) GO TO 20 1 J=2 XMX=X(10)+.25 XMIN=X(1)-X(10)-.25 YMX=X(11)+.25 YMIN=X(2)-X(11)-.25 X2=0.0 Y2=0.0 CALL PLTR(0.,0.,3) RY=X(4) R=X(3) 20 DO 10 K=1,N IF(L1) 30,23,31 C C LOOP FOR LINEAR PLOT AND YLOG PLOT C 30 ZX=(X1(K)-R)*X(7)/X(5) C C CHECK FOR YLOG PLOT C IF(L1+1)301,101,101 101 ZY=(Y1(K)-RY)*X(8)/X(6) GO TO 4 C C LOOP FOR LOG-LOG PLOT AND XLOG PLOT C 31 ZX=(ALOGT(X1(K))-R)*X(5) C C CHECK FOR XLOG PLOT C IF(L1-1) 301,301,101 301 ZY=(ALOGT(Y1(K))-RY)*X(6) GO TO 4 C C LOOP FOR POLAR AND ANTENNA PLOTS C 23 R=(X1(K)-X(3))/X(5) IF(R) 95,96,96 96 IF(R-(X(10)+.25)) 24,24,90 24 ZX=R*COS(Y1(K)*Q-RY) ZY=R*SIN(Y1(K)*Q-RY) GO TO 94 95 ZX=0.0 ZY=0.0 GO TO 94 10 CONTINUE C C IF SYMBOLS ARE BEING USED PLOT SYMBOL AT LAST POINT C 25 IF(I) 21,21,22 22 CALL SYMBR(ZX,ZY,X(16),L,0.0,-1) 21 CONTINUE CALL PLTR(X2,Y2,-3) CALL ALPHA RETURN END END$ SUBROUTINE POLAR(TFACT,RSTEP,XD,YD,XM) DIMENSION XM(1) EQUIVALENCE(V1,IW1) CALL NCOML(XM) C C PLOTS A POLAR PLOT GIVEN RADIUS UNIT PER INCH (RSTEP), C X AND Y DISTANCE TO LEFT AND ABOVE ORGIN(XO,YO). C TFACT IF THE FACTOR TO MULTIPLY THETA DATA ARRAY TIMES TO C ACHEIVE RADIANS C XM(10)=XD XM(11)=XM(2)-YD XM(5)=RSTEP XM(20)=TFACT*XM(20) QQ=1. IF(XM(14)-.5) 14,14,15 15 QQ=1./XM(14) 14 CONTINUE C C DRAW CROSS AXIS C CALL PLTR(XD,0.0,3) CALL PLTR(XD,XIM(2),2) YQ=XM(11) CALL PLTR(0.0,YQ,3) CALL PLTR(XM(1),YQ,2) CALL PLTR(XD,YQ,-3) Z=0. IR=XM(14)+.5 IF(IR)2,2,1 1 XM(13)=0.0 I=XD/QQ+.01 C C DRAW CIRCLES FOR GRID C DO 6 L=1,I Z=Z+QQ CALL CIRCL(Z) 6 CONTINUE 2 Z=0. ZZ1=XM(1)-XD ZZ2=XM(2)-YD IF(IR)29,29,4 C C DRAW TICK IF NO GRID C 29 Z=Z+1. IF(Z-ZZ1) 33,33,4 33 IF(Z-ZZ2) 32,32,4 32 CALL PLTR(Z,0.,3) CALL PLTR(Z,XM(13),2) CALL PLTR(0.,Z,3) CALL PLTR(XM(13),Z,2) Z=-Z IF(Z) 32,32,29 4 CONTINUE R=XM(3) IW=XM(51) Z=0. C C NUMBER AXIS C V=-.25 QQ=-.63 5 Z=Z+1. IF(Z-ZZ1) 34,34,35 34 IF(Z-ZZ2) 36,36,35 36 R=R+RSTEP CALL NUMBR(Z,V,XM(12),R,0.0,IW) CALL NUMBR(QQ,Z,XM(12),R,0.0,IW) GO TO 5 C C TITLE AXIS AND PLOT C 35 CALL AXLET(XM) IF(XM(15)-.1) 16,16,17 C C CREATE THETA DIVISIONS FOR GRID C 17 Q=XM(9)/XM(15) Z=0. ZP=XM(9)*2. 18 Z=Z+Q IF(Z-ZP) 21,16 21 X=SIN(Z)*XD Y=COS(Z)*XD CALL PLTR(X,Y,3) CALL PLTR(-X,-Y,2) 22 GO TO 18 16 CONTINUE XM(52)=0.0 CALL PLTR(-XD,-YQ,-3) CALL ALPHA RETURN END END$ SUBROUTINE SSMRK(M,X) DIMENSION X(1) CALL BGNPL(9736) CALL NCOML(X) X(53)=M RETURN END END$ SUBROUTINE SPLIN(X,Y,N,IMARK,X9) DIMENSION X9(1),X(1),Y(1),A(5),B(5),C(5),D(5) A ,S(5),P(5),Q(5) CALL NCOML(X9) LSIZE=5 J9=X9(54) M=1 100 M1=M+LSIZE-1 IF(M1-N) 101,101,102 102 M1=N 101 CONTINUE 105 J=M1-M IF(J-4) 103,104,104 103 M=M-1 GO TO 105 104 DO 20 I=2,J IM=I+M 20 S(I)=6.0*(((Y(IM)-Y(IM-1))/(X(IM)-X(IM-1))) A -((Y(IM-1)-Y(IM-2))/(X(IM-1)-X(IM-2)))) P(2)=0. Q(2)=0. $" DO 30 I=2,J IM=I+M DEN=P(I)*(X(IM-1)-X(IM-2))+ A 2.0*(X(IM)-X(IM-2)) P(I+1)=(X(IM-1)-X(IM))/DEN 30 Q(I+1)=(S(I)+(X(IM-2)-X(IM-1))*Q(I))/DEN S(1)=0. J=M1-M+1 J1=J S(J)=0. DO 40 I=3,J1 S(J-1)=P(J)*S(J)+Q(J) 40 J=J-1 J=J1-1 DO 50 I=1,J IM=I+M S2=S(I+1) S1=S(I) X1=X(IM-1) X2=X(IM) Y1=Y(IM-1) Y2=Y(IM) H=X2-X1 A(I)=(S2-S1)/(6.0*H) B(I)=(X2*S1-X1*S2)/(H+H) AI=A(I) BI=B(I) C(I)=(Y2-Y1)/H-((AI*X1+BI)* A (X1+X2)+AI*X2*X2) 50 D(I)=Y1-(((AI*X1+BI)*X1+C(I))*X1) IF(M-1) 106,107,106 107 K=1 DO 108 M=1,3 L=M GO TO 130 121 CONTINUE 108 CONTINUE M=2 GO TO 100 106 IF(M1-N) 109,110,110 110 K=2 L=L+1 IF(L-N) 130,112,112 109 L=L+1 K=3 130 ZX1=(X(L+1)-X(L))/14. DO 131 I=1,15 I1=I+20 X9(I1)=X(L)+FLOAT(I-1)*ZX1 IM=L-M 131 S(I)=((A(IM+1)*X9(I1)+B(IM+1))*X9(I1)+C(IM+1)) A *X9(I1)+D(IM+1) X(54)=J9 CALL CURVE(X9(21),S,15,0) GO TO (121,110,114),K 114 M=M+1 GO TO 100 112 X9(54)=J9 J9=IMARK IF(J9) 151,152,150 150 J9=-J9 151 CALL CURVE(X,Y,N,J9) 152 CONTINUE RETURN END END$ $ SUBROUTINE LABAX(IT,NT,IX,NX,IY,NY,X) DIMENSION X(1) C C SELF-SCALING ROUTINE FOR LABELING AXIS AND TITLE. C IT,IX,IY ARE ARRAYS AND NT,NX,NY ARE NUMBER OF CHARACTERS C IN ARRAY C 2 CALL BGNPL( 9736) CALL NCOML(X) X(54)=1.5 3 CALL TITLE(IT,NT,IX,NX,IY,NY,4.,4.) RETURN END END$ SUBROUTINE GRAF(X0,XSTP,XMAX,YOR,YSTP,YMAX,X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE CONTROLS BUILDING A LINEAR-LINEAR AXIS C CALL PLTR(0.0,0.0,3) X(3)=X0 X(4)=YOR X(5)=XSTP X(6)=YSTP X(7)=X(1)/((XMAX-X0)/XSTP) X(8)=X(2)/((YMAX-YOR)/YSTP) X(10)=X(1) X(11)=X(2) X(52)=2.5 CALL LINAX(X) CALL AXLET(X) X(52)=-1.5 CALL PLTR(0.0,0.0,3) CALL ALPHA RETURN END END$ SUBROUTINE GRAPH(XO,XS,YO,YS,X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE CONTROLS BUILDING A LINEAR PLOT GIVEN THE X ORGIN C (XO), XUNITS PER INCH (XS), Y ORGIN (YO) AND Y UNITS PER INCH (YS) C CALL PLTR(0.0,0.0,3) X(5)=XS X(6)=YS X(3)=XO X(4)=YO X(7)=1. X(8)=1. X(10)=X(1) X(11)=X(2) X(52)=2.5 CALL LINAX(X) CALL AXLET(X) X(52)=-1.5 CALL PLTR(0.0,0.0,3) CALL ALPHA RETURN END END$ SUBROUTINE LOGLG(XOR,XCYC,YOR,YCYC,X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE CONTROLS BUILDING A LOGLOG PLOT GIVEN SIZE AT C ORGIN (XOR,YOR) AND NUMBER OF CYCLES (XCYC,YCYC) C CALL PLTR(0.0,0.0,3) X(5)=XCYC+.05 X(6)=YCYC+.05 X3=ALOGT(XOR) IF(X3)1,2,2 1 X3=X3-1.0499 2 X(3)=X3+.05 X3=ALOGT(YOR) IF(X3)3,4,4 3 X3=X3-1.0499 4 X(4)=X3+.05 X(10)=X(1) X(11)=X(2) X(52)=2.5 CALL LOGAX(X) CALL AXLET(X) X(52)=1.5 CALL PLTR(0.0,0.0,3) / CALL ALPHA RETURN END END$ SUBROUTINE XLOG(XOR,XCY,YOR,YSTP,X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE CONTROLS BUILDING A SIMI-LOG PLOT (LINEAR IN Y C DIRECITION) GIVEN ORGIN(XOR,YOR) NUMBER OF CYCLES ON X C AXIS (XCY) AND UNITS PER INCH STEP SIZE ON Y AXIS C CALL PLTR(0.0,0.0,3) X(5)=XCY+.05 X1=ALOGT(XOR) IF(X1)1,2,2 1 X1=X1-1.0499 2 X(3)=X1+.05 X(6)=YSTP X(4)=YOR X(8)=1. X(10)=X(1) X(11)=X(2) X(52)=0. CALL LINAX(X) X(52)=1.5 CALL LOGAX(X) CALL AXLET(X) X(52)=2.5 CALL PLTR(0.0,0.0,3) CALL ALPHA RETURN END END$ SUBROUTINE YLOG(XOR,XSTP,YOR,YCY,X) DIMENSION X(1),IDUMA(4) CALL NCOML(X) C C ROUTINE CONTROLS BUILDING A SIMI-LOG PLOT (LINEAR IN X C DIRECITION) GIVEN ORGIN(XOR,YOR) NUMBER OF CYCLES ON Y C AXIS (YCY) AND UNITS PER INCH STEP SIZE ON X AXIS. C CALL PLTR(0.0,0.0,3) X(6)=YCY+.05 X1=ALOGT(YOR) IF(X1)1,2,2 1 X1=X1-1.0499 2 X(4)=X1+.05 X(5)=XSTP X(3)=XOR X(7)=1. X(10)=X(1) X(11)=X(2) X(52)=1.5 CALL LINAX(X) X(52)=0. CALL LOGAX(X) CALL AXLET(X) X(52)=-2.5 CALL PLTR(0.0,0.0,3) CALL ALPHA RETURN END END$ SUBROUTINE LOGAX(X) DIMENSION X(1) C C ROUTINE PLOTS A LOG AXIS C DNUM1=X(12) DNUM2=0.0 L=X(52) IF(L) 2,2,1 1 K=1 C C LOAD PARAMETERS FOR X AXIS C ZY=0.0 ZX=X(1) ZXT=0.0 ZYT=-X(13) DNUMX=-X(16) DNUMY=-X(12)-X(16)-.05 NX=X(3) X(3)=NX IR=X(14)+.5 IF(IR)5,5,6 6 GDUMX=1.0 GDUMY=0.0 GID=10./X(14) GUMX1=0.0 GUMY1=X(2) 5 CONTINUE GO TO 3 2 L=L-3 C C LOAD PARAMETERS FOR Y AXIS C % CALL PLTR(0.,0.,3) K=2 ZY=X(2) ZX=0.0 ZYT=0.0 ZXT=-X(13) DNUMX=-7.*X(12)-.05 DNUMY=-X(16)/2. NX=X(4) X(4)=NX IR=X(15)+.5 IF(IR)7,7,8 8 GDUMX=0.0 GDUMY=1.0 GID=10./X(15) GUMX1=X(1) GUMY1=0.0 7 CONTINUE C C START C C FIND LENGTH OF 1 CYCLE C 3 I=X(K+4) Z1=I Z=X(K+4)-Z1 LM1=0 IF(Z-.1) 10,11,11 10 Z=0.0 GO TO 12 11 LM1=Z*10.+.5 Z=ALOGT(FLOAT(LM1)) 12 Q=X(K)/(Z1+Z) GO TO (13,14),K 13 DELTX=Q X(5)=Q DELTY=0.0 GO TO 15 14 DELTX=0.0 DELTY=Q X(6)=Q 15 CONTINUE C C DRAW AXIS C CALL PLTR(ZX,ZY,2) ZX=0.0 ZY=0.0 I=I+1 LM=10 C C MAIN LOOP C DO 16 M=1,I IF(M-I)18,19,19 19 LM=LM1 18 Z1=ZX+DNUMX Z=ZY+DNUMY C C WRITE EXP NUMBER C IF(L) 99,99,98 99 ZXZ=Z1-.20 ZYZ=Z GO TO 97 98 ZXZ=Z1-.08 ZYZ=Z-.02 97 CALL PLTR(ZXZ,ZYZ,3) CALL CODE WRITE(IDUMA,124) NX 124 FORMAT("10**",I3) CALL SYMBR(ZXZ,ZYZ,X(16),IDUMA,X(56),7) Z1=Z1+4.*DNUM1 Z=Z+4.*DNUM2 NX=NX+1 Q=FLOAT(M-1) Z2=Q*DELTX Z3=Q*DELTY ZPX=Z2 ZPY=Z3 DO 17 ML=1,LM Q=ALOGT(FLOAT(ML)) ZX=Q*DELTX+Z2 ZY=Q*DELTY+Z3 ZQ=0.0 IF(IR)30,30,31 C C PLOT GRID LINE C 31 ZQ=ZQ+GID QX=ALOGT(ZQ) QZX=(ZX-ZPX)*QX+ZPX QZY=(ZY-ZPY)*QX+ZPY CALL PLTR(QZX,QZY,3) QZX=QZX*GDUMX+GUMX1 QZY=QZY*GDUMY+GUMY1 CALL PLTR(QZX,QZY,2) IF(ZQ-9.99) 31,30,30 30 CONTINUE C C PLOT TICK MARK C ZPX=ZX ZPY=ZY CALL PLTR(ZX,ZY,3) Z1=ZX+ZXT Z=ZY+ZYT 17 CALL PLTR(Z1,Z,2) 16 CONTINUE C C IF BOTH AXIS ARE LOG GO TO 2 C IF(L-1) 20,20,2 20 CONTINUE RETURN END END$ SUBROUTINE LINAX(X) DIMENSION X(1) C C ROUTINE BUILDS A LINEAR AXIS C L=X(52) IF(L) 1,1,2 C C LOAD PARAMETERS FOR X AXIS C 2 DELT1=X(7) M=1 Z=0. Z1=X(1) DELT=0. Z3=X(13) Z4=0. I=Z1/DELT1+1.5 DELTN=X(5) ORG=X(3) IR=X(14)+.5 IF(IR)11,11,12 12 DELTX=DELT1/X(14) DELTY=0.0 DX=1.0 DY=0.0 11 CONTINUE GO TO 3 C C LOAD PARAMETERS FOR Y AXIS C 1 DELT=X(8) CALL PLTR(0.,0.,3) L=L-3 M=-1 DELT1=0. Z1=0. Z=X(2) I=Z/DELT+1.5 Z3=0. Z4=X(13) DELTN=X(6) ORG=X(4) IR=X(15)+.5 IF(IR)13,13,14 14 DELTY=DELT /X(15) DELTX=0.0 DX=0.0 DY=1.0 13 CONTINUE C C DRAW AXIS LINE C 3 CALL PLTR(Z1,Z,2) Z1=-DELT1 Z=-DELT J=X(51) DO 4 K=1,I Z1=Z1+DELT1 Z=Z+DELT IF(IR) 30,30,31 C C PLOT GRID LINES C 31 IF(I-K) 30,30,32 32 ZZX=Z1 ZZY=Z DO 20 KRI=1,IR ZZX=ZZX+DELTX ZZY=ZZY+DELTY CALL PLTR(ZZX,ZZY,3) ZZX1=DX*ZZX+DY*X(10) ZZY1=DY*ZZY+DX*X(11) 20 CALL PLTR(ZZX1,ZZY1,2) 30 CONTINUE C C PLOT TICK MARKS C CALL PLTR(Z1,Z,3) Z1=Z1-Z4 Z=Z-Z3 CALL PLTR(Z1,Z,2) IF(L) 100,100,101 100 ZA=-.63 ZB=Z GO TO 102 101 ZA=Z1 ZB=-.25 102 CALL NUMBR(ZA,ZB,X(12),ORG,0.0,J) ORG=ORG+DELTN Z1=Z1+Z4 4 Z=Z+Z3 6 IF(L-1) 7,7,1 7 RETURN END END$ SUBROUTINE TITLE(LT,M1,IXT,M2,IYT,M3,X,Y,IT9) DIMENSION LT(1),IXT(1),IYT(1),J1(3),I99(2) DIMENSION IT9(1) EQUIVALENCE(X10,I99(1)) CALL NCOML(IT9) J1(1)=M1 J1(2)=M2 J1(3)=M3 C C ROUTINE LOADS TITLES FOR AXIS AND PLOT C IX2=41 DO 7 L=1,3  IX1=IX2 IB=FLOAT(J1(L))/2.+.6 I=1 GO TO (1,3,5),L 7 IX2=IX2+20 GO TO 8 1 IT9(IX1)=LT(I) I=I+1 IX1=IX1+1 IF(I-IB) 1,1,2 2 GO TO 7 3 IT9(IX1)=IXT(I) I=I+1 IX1=IX1+1 IF(I-IB)3,3,4 4 GO TO 7 5 IT9(IX1)=IYT(I) I=I+1 IX1=IX1+1 IF(I-IB)5,5,6 6 GO TO 7 8 X10=X IT9(1)=I99(1) IT9(2)=I99(2) X10=Y IT9(3)=I99(1) IT9(4)=I99(2) IT9(33)=M1 IT9(35)=M2 IT9(37)=M3 RETURN END END$ SUBROUTINE DECNM(I,X) DIMENSION X(1) CALL NCOML(X) C C THIS ROUTINE SETS THE FORMAT FOR WRITTEN NUMBERS C X(51)=FLOAT(I)+FLOAT(I)*.05 RETURN END SUBROUTINE PRADS(RMIN,RMAX,X) DIMENSION X(1) 2 CALL BGNPL( 9736) CALL NCOML(X) C C SELF-SCALING ROUTINE FOR SETTING LIMITS ON RADIUS C X(54)=-1.5 3 X(3)=RMIN X(5)=RMAX RETURN END SUBROUTINE PLORG(X1,X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE SETS POLAR ORGIN TO X1 C X(3)=X1 RETURN END END$ SUBROUTINE MARK(I,X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE CHANGES SYMBOL ORDER C X(53)=FLOAT(I)-X(54) RETURN END SUBROUTINE THETS(X1) DIMENSION X1(1) CALL NCOML(X1) C C C X1(21)=-X1(9) RETURN END SUBROUTINE GRID (IX,IY,X) DIMENSION X(1) CALL NCOML(X) C C THIS ROUTINE LOADS THE GRID PARAMETERS FOR LATER USE C X(14)=IX X(15)=IY RETURN END SUBROUTINE DSHOF(X) DIMENSION X(1) CALL NCOML(X) X(13)=1.0 RETURN END END$ $"$ SUBROUTINE SCRNF CALL TKPLT(0.,0.,-5) CALL TKPLT(6.75,.0,2) CALL TKPLT(6.75,5.25,2) CALL TKPLT(0.,5.25,2) CALL TKPLT(0.,0.,2) CALL ALPHA RETURN END SUBROUTINE TIKRV(X) DIMENSION X(1) CALL NCOML(X) X(13)=-X(13) RETURN END SUBROUTINE FRAME(X) DIMENSION X(1) CALL NCOML(X) Z=-.01 DO 1 I=1,3 X1=X(1)-Z CALL PLTR(-Z,0.,3) CALL PLTR(X1,0.,2) CALL PLTR(X1,X(2),2) CALL PLTR(0.,X(2),2) X1=X(2)-Z CALL PLTR(0.,-Z,3) CALL PLTR(X(1),-Z,2) CALL PLTR(X(1),X1,2) CALL PLTR(0.,X1,2) CALL PLTR(0.,-Z,2) 1 CONTINUE CALL ALPHA RETURN END SUBROUTINE PFRAM(X) DIMENSION X(1) CALL NCOML(X) Z=-.02 CALL PLTR(X(10),X(11),-3) DO 1 I=1,5 R=X(10)-Z CALL CIRCL(R) 1 Z=Z+.01 CALL PLTR(-X(10),-X(11),-3) CALL ALPHA RETURN END END$ < SUBROUTINE AXLET(I) DIMENSION J(2),I(1) EQUIVALENCE(X,J(1)) C C ROUTINE LETTERS AXIS AND TITLES PLOT C J(1)=I(19) J(2)=I(20) X3=X J(1)=I(21) J(2)=I(22) Y3=X J(1)=I(31) J(2)=I(32) X1=X3/2.-(FLOAT(I(35))*X/2.) Y1=Y3/2.+(FLOAT(I(37))*X/2.) Z=-.4 X2=-.82 X12=X J(1)=I(111) J(2)=I(112) CALL SYMBR(X1,Z,X12,I(61),X,I(35)) J(1)=I(113) J(2)=I(114) CALL SYMBR(X2,Y1,X12,I(81),X,I(37)) X2=X12 J(1)=I(1) J(2)=I(2) X1=X/2.-FLOAT(I(33))*X2/2. J(1)=I(1) J(2)=I(2) Y1=X X1=X1-(Y1-X3) Z=1.5*X2 Y1=Y3+.3 J(1)=I(115) J(2)=I(116) CALL SYMBR (X1,Y1,Z,I(41),X,I(33)) I(41)=0 I(42)=0 RETURN END SUBROUTINE RANGE(XMIN,XMAX,YMIN,YMAX,X) DIMENSION X(1) C C SELF-SCALING ROUTINE FOR SETTING MIN AND MAX FOR X AND Y AXIS C ON BOTH LINEAR AND LOGLOG PLOTS C 2 CALL BGNPL( 9736) CALL NCOML(X) X(54)=-1.5 3 X(3)=XMIN X(5)=XMAX X(4)=YMIN X(6)=YMAX RETURN END END$ SUBROUTINE RTHET(X) DIMENSION X(1) CALL NCOML(X) C C ROUTINE REVERSES DIRECTION OF THETA TO COUNTER-CLOCK-WISE C X(20)=-1.*X(20) RETURN END SUBROUTINE CIRCL(R) C C ROUTINE GENERATES AND PLOTS A CIRCLE OF RADIUS R AROUND C POINT (0.,0.) C Z=0.0 Z1=.0314159 N=201 IF(R-2.0) 14,14,15 14 Z1=2.*Z1 N=101 15 CONTINUE DO 1 I=1,N X=R*SIN(Z) Y=R*COS(Z) CALL PLTR(X,Y,2) Z=Z+Z1 1 CONTINUE RETURN END SUBROUTINE PHYSR(SX,SY,X) DIMENSION X(1) CALL NCOML(X) C C THIS ROUTINE ALLOWS THE POSITIONING OF THE PLOT ANYWHERE ON C THE SCREEN C CALL PLTR(SX,SY,-3) X(55)=SX+X(55) X(P56)=SY+X(56) CALL ALPHA RETURN END SUBROUTINE DASH(X) DIMENSION X(1) CALL NCOML(X) X(13)=-1.0 RETURN END END$ SUBROUTINE ENDPL(N,X) DIMENSION X(1) CALL NCOML(X) C C THIS ROUTINE TO BE USED WITH TECK PLOT SCREEN C CALL PLTR(0.,0.,-5) CALL ALPHA CALL BGNPL(9927) RETURN END SUBROUTINE BGNPL(N) DIMENSION WORK(58) C ****************************************************************** C C THIS ROUTINE TO BE USED WITH TECK PLOT SCREEN C PARMETERS USED IN PLOTTING ARRAY WORK C C 1) XAXIS LENGTH C 2) Y AXIS LENGTH C 3) X AXIS ORGIN C 4) Y AXIS ORGIN C 5) DELTA UNITS ON X AXIS (NO. OF CYCLES IF X IS LOG) C 6) DELTA UNITS ON Y AXIS (NO. OF CYCLES IF Y IS LOG) C 7) DISTANCE BETWEEN TICK MARKS ON THE X AXIS C 8) DISTANCE BETWEEN TICK MARKS ON THE Y AXIS C 9) PI/2. (1.5707965) C 10) LENGTH OF X AXIS TO RIGHT OF (0.0,0.0) C 11) LENGTH OF YAXIS ABOVE (0.0,0.0) C 12) AXIS NUMBER SIZE C 13) AXIS TICK SIZE C 14) X AXIS GRID PARAMETER (R FOR POLAR PLOTS) C 15) Y AXIS GRID PARAMETER (THETA FOR POLAR PLOTS) C 16) AXIS LETTERING SIZE C 17) NUMBER CHARACTERS IN TITLE (STORED IN INTEGER FORM) C 18) NUMBER OF CHARACTERS IN X AXIS TITLE (STORED IN INTEGER C FORM) C 19) NUMBER CHARACTERS IN Y AXIS TITLE (STORED IN INTEGER FORM) C 20) THETA MULTIPLYING FACTOR FOR POLAR PLOTS C 21-30) TITLE ARRAY C 31-40) X AXIS TITLE ARRAY C 41-50) Y AXIS TITLE ARRAY C 51) NUMBER OF DECIMEL PLACES IN WRITTEN NUMBERS C 52) FLAG C A) 1= INTERPRUT ROUTINE FOR X AXIS C B) 0= INTERPRUT ROUTINE FOR Y AXIS C C) 2= INTERPRUT ROUTINE FOR BOTH X AND Y AXIS C 53) SYMBOL POISITION FLAG C 54) SELF-SCALING PLOT PLAG AND SYMBOL COUNTER C 55) TEKTRONIX PLOTTER OR CALCOMP (-1 0R +1) C 56) ANGLE OFI X AXIS LETTERS C 57) ANGLE OF Y AXIS LETTERS C 58) ANGLE OF TITLE LETTERS C*********************************************************************** IF( 9736-N) 10,11,10 11 IF(LLL- 9736) 16,13,16 16 LLL= 9736 GO TO 15 10 IF(9927-N) 12,14,12 12 IF(LLL-9736) 15,13,15 14 LLL=0 GO TO 4 15 CONTINUE CALL PLTR(0.0,0.0,-5) CALL NCOM(WORK) 3 CALL PLTR(1.0,1.0,-3) CALL ALPHA 4 DO 1 J=1,56 1 WORK(J)=0.0 WORK(9)=1.5707965 WORK(13)=.07 WORK(16)=.062 WORK(12)=.062 WORK(20)=1. WORK(31)=1.5 WORK(51)=-1.0 WORK(55)=-1. WORK(56)=0. WORK(57)=90. WORK(58)=0. 13 CONTINUE RETURN END SUBROUTINE PLTR(X,Y,I) CALL TKPLT(X,Y,I) RETURN END SUBROUTINE NUMBR(X,Y,Z,XN,C,J) CALL TNUMB(X,Y,Z,XN,C,J) RETURN END SUBROUTINE SYMBR(X,Y,Z,I,A,L) CALL TSYMB(X,Y,Z,I,A,L) RETURN END END$ SUBROUTINE TNUMB(X,Y,Z,XN,C,J) 20 FORMAT(F7.0) 21 FORMAT(F7.1) 22 FORMAT(F7.2) 23 FORMAT(F7.3) 24 FORMAT(F7.4) 25 FORMAT(F7.5) 26 FORMAT(E10.3) ITECK=2 K=9999 DX=X L=XN L1=L IF(Y) 106,8,8 106 CONTINUE IF(L) 4,5,5 4 L=-L GO TO 6 5 DX=DX-.12 6 IF(L-K) 7,8,8 7 DX=DX-.12 K=K/10 GO TO 6 8 CALL TKPLT(DX,Y,3) IF(J) 3,10,10 3 CONTINUE CALL ALPHA WRITE(ITECK,9)L1 9 FORMAT(I6) GO TO 2 10 CONTINUE L=J+1 IF(Y) 50,51,51 51 DX=DX-.12 GO TO 52 50 ZAP=FLOAT(L)*.07 DX=DX+ZAP 52 CONTINUE CALL TKPLT(DX,Y,3) CALL ALPHA GO TO (40,41,42,43,44,45,46),L 40 WRITE(ITECK,20) XN GO TO 2 41 WRITE(ITECK,21) XN GO TO 2 42 WRITE(ITECK,22) XN GO TO 2 43 WRITE(ITECK,23) XN GO TO 2 44 WRITE(ITECK,24) XN  GO TO 2 45 WRITE(ITECK,25) XN GO TO 2 46 WRITE(ITECK,26) XN 2 CONTINUE CALL TKPLT(DX,Y,3) RETURN END SUBROUTINE TSYMB(X,Y,Z,I,A,L) DIMENSION I(1),IC(4) ITECK=2 CSZX=.13 CSZY=.06 CSY1=.15 10 IF(L) 1,6,2 1 DX=X-CSZX DY=Y-CSZY CALL TKPLT(DX,DY,3) J=I(1) CALL ALPHA GO TO (300,311,302,303),J 300 WRITE(ITECK,310) 310 FORMAT(" *") GO TO 304 311 WRITE(ITECK,320) 320 FORMAT(" +") GO TO 304 302 WRITE(ITECK,330) 330 FORMAT(" O") GO TO 304 303 WRITE(ITECK,340) 340 FORMAT(" @") 304 CONTINUE CALL TKPLT(X,Y,3) 101 FORMAT(A2) RETURN 2 IF(A-1.) 3,3,4 3 CALL TKPLT(X,Y,3) K=L/2 CALL ALPHA J1=L-K*2 IF(J1-1) 20,21 21 J=IAND(I(K+1),177400B) J=J+40B GO TO 50 20 J=20040B 301 FORMAT(20A2) 50 WRITE(ITECK,301)(I(M),M=1,K),J CALL TKPLT(X,Y,3) RETURN 4 CALL TKPLT(X-.11,Y,3) DY=Y IF(L-1) 6,7,8 8 LZ=FLOAT(L)/2.+.6 DO 5 N=1,LZ M=N DO 5 LP=1,2 J=ICHAR(I(M),LP) CALL ALPHA WRITE(ITECK,101) J DY=DY-CSY1 5 CALL TKPLT(X-.11,DY,3) RETURN 7 CALL ALPHA WRITE(ITECK,101) I(1) CALL TKPLT(X,Y,3) 6 CONTINUE RETURN END END$ FUNCTION ICHAR(I,M) DIMENSION I(1) IF(M-2) 1,2 1 J=IAND(I,177400B) ICHAR=J/256+20000B RETURN 2 ICHAR=IAND(I,377B)+20000B RETURN END FUNCTION ALOGT(X) ALOGT=0.4342945*ALOG(X) RETURN END END$ NAM COMNA ENT NCOM,NCOML * THIS SET OF SUBROUTINES LINK THE ARRAY PASSED TO NCOM, * TO THE ROUTINES CALLING NCOML STORE NOP NCOM NOP LDA NCOM,I STA RETRN ISZ NCOM * LOAD A WITH LOCATION OF ARRAY TO BE PASSED LDA NCOM,I * STORE ARRAY LOCATION AT STORE STA STVORE JMP RETRN,I RETRN NOP * THIS HALF OF THE ROUTINE LINKS THE CALLING SUBROUTINE * TO THE ARRAY NCOML NOP LDA NCOML,I STA RETRN * LOAT THE ADDRESS AT STORE AND OVER-LAY IT ONTO THE * ADDRESS OF THE PASSED PARAMETER LDB NCOML INB LDB 1,I LDA =B077777 AND 1 LDB STORE STB 0,I JMP RETRN,I END SUBROUTINE CLRTK WRITE(2,1) 1 FORMAT(" ") DO 2 I=1,8000 2 X=FLOAT(I)*FLOAT(I) RETURN END END$ " NAM TKPLT * * * * *******************TKPLT********************************* * ENT TKPLT,ALPHA EXT .ENTR,.SQT.,IFIX * * THIS ROUTINE ALLOWS THE TEKTRONIC TERMINAL * * TO BE USED AS A PLOTTING SYSTEM. THIS DRIVER * * MUST BE USED IN CONJUCTION WITH MODIFIED DRIVER * * D.00 TO ALLOW FOR CORRECT INTERUPT PROGRAMING. * * THIS DRIVER ACCEPTS COORDINATES AS REAL NUMBERS AND * COMPUTES CORRECT POSITIONS AS INTEGER NUMBERS * * FOR TRANSFER. * ROUTINE ALPHA RETURNS THE TERMINAL FROM A GRAPHIC * * MODE TO A ALPHANUMERIC MODE * * * * COOR1 BSS 3 TKPLT NOP JSB .ENTR PLOTTING ENTRY POINT DEF COOR1 STF 00 LDA SLOT FIRST CALL TO DRIVER? SZA JMP BYPAS NO LDA SQT.. AND =B77777 LDA 0,I INA STA SQT.. LDA SQT..,I ADA =D-7 STA TTYAD LDA SQT.. ADA =B6 STA SQT.. LDA TTYAD CLB MPY =D4 ADA SQT.. STA TTYAD LDB TTYAD LDB 1,I LDA TTYAD ADA =B3 LDA 0,I STA TTYAD ADA =B552 STA PLT.0 LOAD ADDRESS OF PLT.O ADA =B7 AND PLT.1 (LOCATED IN TTY DRIVER) STA PLT.1 LDA 1 STA SLOT LDA 0,I AND POS77 STA INTLK LDA P.01 OVERLAY INSTRUCTION WITH ADA SLOT THE CORRECT INTERUPT LOCATION STA P.01 STA P.02 STA P.04 STA P.06 STA P.07 LDA P.03 ADA SLOT STA P.03 STA P.05 STA P.08 LDA P.09 ADA SLOT STA P.09 STA P.10 BYPAS JSB PLT.0,I CHECK AND SET TTY BUSY FLAG DLD COOR1,I TRANSFER AND SAVE COORDINATES DST COOR PARAMETERS DLD COOR1+1,I DST COOR+2 LDA COOR1+2,I STA COOR+4 LDA INTLK,I COMPUTE AND STORE POINT NUMBER STA SAVLK FOR X AN@D Y POSITIONS LDA DFP3 STA INTLK,I LDA COOR+4 CPA MIN5 JMP RESET DLD COOR FMP FP150 FAD FP.5 JSB IFIX ADA ORIG1 STA POSS1 DLD COOR+2 FMP FP150 FAD FP.5 JSB IFIX ADA ORIG2 STA POSS2 REST1 CLB DIV DEC32 BUILD OUTPUT WORDS AND ADA DEC32 STORE IN OUT1-OUT4 ADB DEC96 STA OUT1 STB OUT2 LDA POSS1 CLB DIV DEC32 ADA DEC32 ADB DEC64 STA OUT3 STB OUT4 LDA TKPLT STA PLT.3 LDA COOR+4 SSA CMA,INA CPA DEC2 JMP PLT.3+1 NO DARK LDB WORD1 YES P.01 OTB 0 LDB DEC29 P.02 OTB 0 P.03 STC 0,C JMP PLT.3,I * * * PLT.3 NOP INTERUPT TRANSFER LOOP JSB SAVR ISZ NEGCT ARE ALL WORDS TRANSFERED? JMP PLT.4 NO JMP PLT.5 YES PLT.4 ISZ OUTWD LDB OUTWD,I TRANSFER WORD P.04 OTB 0 P.05 STC 0,C JSB RESTR JMP PLT.3,I PLT.5 LDA MIN5 RESET COUNTERS AND ADDRESSES STA NEGCT INA ADA OUTWD STA OUTWD LDA SAVLK STA INTLK,I P.09 CLC 00 LDA COOR+4 SSA IS THIS POINT A NEW ORIGIN? JMP REORG YES JSB PLT.1,I CLEAR DRIVER BUSY FLAG JSB RESTR JMP PLT.3,I REORG LDA POSS1 STORE NEW ORIGIN POSITIONS STA ORIG1 LDA POSS2 STA ORIG2 JSB PLT.1,I JSB RESTR JMP PLT.3,I RESET CLA SET CURSOR TO 0,0 POSITION STA POSS1 STA POSS2 JMP REST1 * * * * ALPHA NOP RETURN TERMINAL TO A ISZ ALPHA ALPHANUMERIC MODE JSB PLT.0,I STF 00 LDA INTLK,I STA SAVLK LDA DFP6 STA INTLK,I LDB WORD1 P.06 OTB 0 LDB DEC31 P.07 OTB 0 P.08 STC 0,C JMP ALPHA,I PLT.6 NOP e@ JSB SAVR P.10 CLC 00 LDA SAVLK STA INTLK,I JSB PLT.1,I JSB RESTR JMP PLT.6,I * * * CONSTANTS ,OUTPUT WORDS, STORAGE SECTION * * COOR BSS 5 ORIG1 NOP X ORIGIN ORIG2 NOP Y ORIGIN POSS1 NOP X POSITION POSS2 NOP Y POSITION NEGCT DEC -5 OUTWD DEF * OUT1 NOP OUTPUT WORDS 1-4 OUT2 NOP OUT3 NOP OUT4 NOP WORD1 OCT 120000 POSMX OCT 77777 POS77 OCT 77 MIN5 DEC -5 FP150 DEC 150. FP.5 DEC .5 DEC32 DEC 32 DEC31 DEC 31 DEC29 DEC 29 DEC2 DEC 2 DEC64 DEC 64 DEC96 DEC 96 SQT.. DEF .SQT. DFP3 DEF PLT.3 INTERUPT ADDRESSES DFP6 DEF PLT.6 SLOT NOP INTLK NOP SAVLK NOP TTYAD NOP PLT.0 NOP PLT.1 NOP * * SAVR NOP SAVE THE REGESTERS STA SAVAX CONTENTS STB SAVBX ERA,ALS SOC INA STA SAVEX JMP SAVR,I RESTR NOP RELOAD THE REGESTERS LDA SAVEX CLO SLA,ELA STF 1 LDA SAVAX LDB SAVBX JMP RESTR,I SAVAX NOP SAVBX NOP SAVEX NOP END !ASMB,R,B,L,T,C ** BCS TTY DRIVER D.00 ** * (PARALLEL TTY--BUFFERED) HED ** BCS TTY DRIVER D.01 (BUFFERED) ** * NAM D.00 * * * ************ D.00 - ASR-33/35 DRIVER ************ * EXT .BUFR ENT D.00,I.00,PLT.0,PLT.1 * * * THIS MODULE OF THE HP-2116 BASIC CONTROL SYSTEM * * SOFTWARE IS DESIGNED TO OPERATE THE ASR-33/35 * * TELE-TYPEWRITER. THE FUNCTION OF THIS DRIVER IS * * TO INITIATE, CONTINUE AND COMPLETE A READ/WRITE * * OPERATION REQUESTED THROUGH INPUT/OUTPUT CONTROL. * * * * THE DRIVER ACCEPTS AND PROCESSES A READ OR * * WRITE REQUEST IN EITHER ASCII OR BINARY MODES. * * KEYBOARD MODE MAY BE SELECTED FOR A SINGLE * * READ OPERATION. THE SPECIAL P-FORMAT FOR BINARY * * INPUT MAY ALSO BE SELECTED FOR A SINGLE READ * * OPERATION. * * * * THE DRIVER WILL REJECT A -FUNCTION SELECT- * * REQUEST AS NONE OF THE DEFINED FUNCTIONS IS * * APPLICABLE FOR THE ASR DEVICE. * * * * THE DRIVER PROVIDES FOR A SIMULATED END-OF-TAPE * * CONDITION WHICH IS DETERMINED BY A FIXED NUMBER * * OF CONSECUTIVE FEED-FRAMES BEFORE THE FIRST * * DATA CHARACTER OF A RECORD IS READ. THE NUMBER * * OF FEED-FRAMES IS REPESENTED BY A NEGATIVE * * CONSTANT AT THE LABEL -FFCT- IN THE DRIVER. * * THE CONSTANT IS SET FOR 10 BUT MAY BE CHANGED * * TO ANY DESIRED VALUE BY RE-ASSEMBLING THE DRIVER. * * * * REFER TO THE -EXTERNAL DESIGN SPECIFICATIONS- OF * * THE BCS SYSTEM FOR A DESCRIPTION OF THE REQUEST * * CALLS TO IOC AND THE RECORD FORMATS. * * f * * * * *** D.00 INITIATOR SECTION *** * D.00 NOP * ENTRY / EXIT * STA SAVA SAVE EQT ENTRY ADDRESS. STB SAVB SAVE REQUEST (WORD 2) ADDRESS. LDA B,I GET WORD 2 OF REQUEST, ROTATE ALF REQUEST CODE TO LOW A AND M17 AND ISOLATE CODE FIELD SZA IF CODE NOT = ZERO, CONTINUE JMP X.1 NORMAL PROCESSING. * * CODE = ZERO (CLEAR CURRENT OPERATION) - THE * FOLLOWING INSTR (JMP) IS REPLACED BY A CLC AFTER * THE FIRST OPERATION IS INITIATED. * I.1 JMP D.00,I CLEAR DEVICE CONTROL. I.2 STF 0 SET DEVICE FLAG FOR NEXT REQUEST. STA SAVC SAVE CLEAR CODE. CLB,INB GO TO JMP STAT1 STATUS SECTION. * X.1 LDB DFLG CHECK DRIVER FLAG - SZB IF DRIVER BUSY, JMP REJB REJECT THIS REQUEST. * STA SAVC ADA CM3 SUBTRACT 3 FROM CODE SSA,RSS IF RESULT +, THEN ILLEGAL CODE, JMP RCER REJECT REQUEST. 1,2 LEGAL. * LDA SAVA SAVE EQT ADDR. FOR STA EXIT+2 CALL TO .BUFR AFTER WRITE LDA SAVA,I GET WORD 1 OF EQT ENTRY. AND M77 ISOLATE PUNCH UNIT I/O ADDRESS. IOR OTAI OTA TTY STA I.10 XOR LIAM LIA TTY STA I.6 XOR SFSM SFS TTY STA I.3 XOR CLFM CLF TTY XOR SFSM STC TTY,C STA I.5 STA I.11 STA I.14 XOR CFM STF TTY XOR SFSM STA I.2 XOR CLCM CLC TTY STA I.1 STA I.7 STA I.8 XOR OTBI OTB TTY STA I.4 STA I.9 STA I.13 * * I.3 SFS 0 IF FLAG NOT SET (I.E. DEVICE UN- JMP REJB AVAILABLE),REJECT REQUEST. LDB SAVC * LDA SAVB,I GET WORD 2 OF REQUEST- SHIFT SO ALF,ALF THAT P=BIT 15, M=BIT 14, K=0. STA SAVD SSA IF P FORMAT SELECTED, SET BIT 15 ADB M15 OF B = 1 AND SAVE AS STB RWFL READ/WRITE FLAG. CLB,CLE CLEAR "B", CLEAR "E". ELA,ELA PUT MODE BIT INTO ERB BIT 15 OF B. CLE,SSB SET MODE BACK CCE INTO E LDA SAVB,I GET UNIT AND M77 # FROM REQUEST CMA,INA IF # CPA MIN4 =4 CCE SET MODE TO 1 LDA LOUT SET PRINT COMMAND SEZ FOR E=0, SET LDA POUT PUNCH FOR E=1 STA XOUT ISZ SAVA SET ADDRESS OF EQT ENTRY TO LDA SAVA,I WORD 2, GET WORD 2, ADA M15 SET O-FIELD = 2 ( BUSY) AND STA SAVA,I RESET. LDA SAVA SET -EQTA- = INA ADDRESS OF EQT ENTRY STA EQTA WORD 3. ISZ SAVB INDEX TO WORD 4 ISZ SAVB OF I/O REQUEST. LDA SAVB LDA A,I GET BUFFER ADDRESS RAL,CLE,SLA,ERA IF INDIRECTION, JMP *-2 GET NEXT-LEVEL ADDRESS STA BUF SAVE BUFFER ADDRESS. STA BUFS ISZ SAVB SET TO WORD 6 OF REQUEST. LDA SAVB,I GET WORD 6 - BUFFER LENGTH. SSA IF CHARS. REQUESTED, SET INB B(LSB = 1 AND RESTORE WORD 3 STB EQTA,I OF EQT ENTRY. SSA IF WORDS REQUESTED, JMP *+3 CONVERT WORDS TO CMA,INA CHARACTERS AND ALS COMPLEMENT STA LENG SAVE NEG. CHAR LENGTH STA CHX LDA UL52 INITIALIZE UPPER/LOWER CHAR. STA ULFL POSITION INDICATOR TO UPPER. LDB RWFL SET B = READ/WRITE FLAG. LDA FFCT READ REQUEST: SET FOR END-OF-TAPE SLB,RSS COUNTER (FEED-FRAME COUNTER). LDA MIN4 WRITE: SET FOR 4 FEED-FRAMES TO BE STA EOTC OUTPUT AFTER BINARY RECORD. STA DFLG SET DRIVER FLAG BUSY (NOT = 0). CLA STA DINF CLEAR DATA-IN FLAG, STA CHC CHARZ6ACTER COUNTER AND SLB,RSS JMP Y * * FOLLOWING INSTRUCTION STARTS DATA TRANSMISSION. X.2 LDA SAVD LDB DA READ AND PRINT INSTRUCTION SLA,RSS LDB DB READ ONLY INSTRUCTION CLA I.4 OTB 0 OUTPUT INSTRUCTION IN -B- I.5 STC 0,C JMP D.00,I EXIT BACK TO IOC. Y JSB I.00 JMP D.00,I EXIT. * RCER CLB,RSS ---REJECT SECTION. R.C. ERROR (B=0). REJB LDB M15 DEVICE/DRIVER NOT AVAILABLE CLA,INA SET (A) NON-ZERO AND JMP D.00,I EXIT TO IOC AND REJECT. * * *** CONTINUATOR SECTION *** * ENTERED JSB IN DEVICE INTERRUPT LOCATION * * I.00 NOP STA SAVAX SAVE STB SAVBX A, ERA,ALS B, SOC E INA AND STA SAVEX OVERFLOW * LDA EQTA,I PUT MODE INTO E - =0, ASC&I, ELA =1, BINARY. LDA RWFL CHECK FOR READ OR WRITE SLA,RSS OPERATION JMP OUTP WRITE - * * INPUT SECTION * I.6 LIA 0 AND M377 REMOVE TRAILER BITS. LDB DINF SET (B) = DATA-IN FLAG. SZB,RSS IF NO DATA IN YET AND CHARACTER SZA = ZERO, CHECK FOR EOT - JMP X.3 OTHERWISE, GO PROCESS CHAR. * * END-OF-TAPE CHECK - CHAR=0, NO NON-ZERO CHAR. YET. * ISZ EOTC INDEX END-OF-TAPE COUNTER JMP X.8 NOT ZERO, KEEP READING CLB END-OF-TAPE- SET (B) = 0 FOR JMP STAT STATUS AND GO TO STATUS SECTION. * * CHARACTER EXAMINATION SECTION * X.3 SEZ IF BINARY MODE, SKIP JMP X.4 CHARACTER CHECK. AND M177 REMOVE 8-LEVEL BIT CPA RUBO -ASCII MODE- CHARACTER CHECK--- JMP X.10 RUBOUT (RECORD DELETE) CPA RETN JMP X.8 RETURN - IGNORE RETURN - CPA LINF JMP X.11 LINE FEED SSB IF DATA-IN FLAG = -1, IGNORE CHAR- JMP X.8 ACTERS UNTIL LINE-FEED INPUTc. * X.4 SEZ IF ASCII MODE, SKIP P-FORMAT CHECK SZB - IF NOT FIRST CHAR. IN BINARY JMP X.5 MODE, SKIP P-FORMAT CHECK. * LDB RWFL BINARY MODE- CHECK FOR -P- FORMAT SSB,RSS SELECTED (B15 OF RWFL = 1) JMP X.5 NO- GO TO STORE (OR SAVE) CHAR. * * P-FORMAT SECTION (FIRST CHAR. CONTAINS RECORD SIZE) * STA B SAVE CHAR(RECORD WORD COUNT) IN B. ALS CONVERT WORDS TO CHARS. ADA LENG SUBTRACT REQ. LENGTH (RESET E = 1) CCE,SSA,RSS A POSITIVE RESULT MEANS RECORD JMP *+5 LENGTH GT LENGTH REQ. USE REQ. LDA B LENGTH LT REQUESTED LENGTH. ALS CONVERT WORD LENGTH TO NEGATIVE CMA,INA CHARACTER COUNT AND SET STA CHX IN COUNTER. LDA B RESTORE FIRST CHAR. TO A. * * X.5 CLB,INB SET DATA-IN FLAG = 1 TO SAY DATA STB DINF CHARACTER IN. LDB ULFL SET B = UPPER/LOWER POSITION FLAG. SSB,RSS IF SET FOR UPPER (15=0), SAVE CHAR JMP X.6 IN EOTC. IOR BUF,I LOWER- *OR* IN PREVIOUS UPPER STA BUF,I CHARACTER AND STORE IN BUFFER. ISZ BUF ADD 1 TO BUFFER ADDRESS. JMP *+3 X.6 ALF,ALF POSITION CHAR. TO UPPER AND STA BUF,I SAVE RBL SET FLAG FOR NEXT POSITION STB ULFL AND SAVE FLAG. ISZ CHC ADD 1 TO CHARACTE- COUNTER. ISZ CHX INDEX LENGTH COUNTER. JMP X.8 NO ZERO (BUFFER NOT COMPLETE), * SET TO INPUT NEXT CHARACTER. * BUFFER FILLED. SEZ IF BINARY MODE, GO DIRECTLY TO JMP STAT STATUS SECTION. X.7 CCB SET DATA-IN FLAG TO FORCE A RETURN STB DINF AND LINE-FEED TO TERMINATE ASCII * X.8 LDA SAVD LDB DA READ AND PRINT INSTRUCTION SLA,RSS LDB DB READ ONLY INSTRUCTION I.13 OTB 0 JSB RSTR RESTORE REGkISTERS I.14 STC 0,C JMP I.00,I EXIT INTERRUPT PROCESSING. * * * PROCESSOR FOR -RUB-OUT- CODE * X.10 LDA BUFS -RESET STARTING STA BUF BUFFER ADDRESS. LDA LENG -RESET STARTING STA CHX CHARACTER LENGTH LDA UL52 -RESET UPPER/LOWER CHARACTER STA ULFL POSITION FLAG TO UPPER LDA FFCT -RESET FEED-FRAME COUNTER FOR STA EOTC END-OF-TAPE CONDITION. CLA -RESET CHARACTER COUNTER STA CHC TO ZERO. JMP X.7 -GO TO SET DATA-IN FLAG = -1 * * PROCESSOR FOR LINE-FEED CODE * X.11 CLB CLEAR DATA-IN FLAG FOR POSSIBLE STB DINF RE-INPUT CAUSED BY RUB-OUT. LDA LENG IF ORIGINAL CHAR. INDEX = CPA CHX CURRENT INDEX THEN A RUB-OUT JMP X.8 WAS INPUT - INPUT NEXT RECORD, * OR IGNORE LINE-FEED BEFORE RECORD. * ASCII INPUT COMPLETED. LDB ULFL IF LAST CHARACTER INPUT WAS IN LDA BUF,I UPPER POSITION, THEN MAKE LOWER IOR BLNK CHARACTER A BLANK (SPACE) SSB AND STORE LAST WORD IN STA BUF,I BUFFER. * * STAT LDB CHC ==STATUS SECTION** LDA EQTA,I SET A=WORD 3 EQT ENTRY, B= CHAR. CLE,SLA COUNT. IF CHAR. LENGTH REQUEST- JMP *+3 ED, LSB = 1, SKIP CONVERSION. SLB,BRS IF ODD NO. CHARS. INPUT, ADD 1 INB TO WORD COUNT. ERA,RAL SET LSB OF A = 0. ADA B PUT CHAR/WORD COUNT IN A AND STAT1 STA EQTA,I SET EQT ENTRY WORD 3. CCA SET A = -1 TO GET ADA EQTA ADDRESS OF WORD 2 OF THE STA BUF EQT ENTRY. LDA BUF,I GET WORD 2, REMOVE PREVIOUS AND MST SETTING OF STATUS AND O FIELDS, SZB IF CHC NOT = 0, JMP *+4 LEAVE STATUS FIELD = 0. LDB RWFL IF INPUT OPERATION HAS SLB END-OF-TAPE CONDITION, IOR EOTSh SET BIT 5 = 1, A FIELD = 1. STA BUF,I AND SET WORD 2 OF EQT ENTRY. CLA CLEAR DRIVER-BUSY-FLAG TO STA DFLG SAY DRIVER AVAILABLE. * CPA SAVC IF CLEAR REQUEST BEING PROCESSED, JMP D.00,I LDA RWFL IF WRITE REQUEST SLA,RSS BEING PROCESSED, JMP WXT EXIT TO .BUFR IN IOC. * JSB RSTR RESTORE REGISTERS- I.7 CLC 0 CLEAR DEVICE CONTROL-LEAVE FLAG=1 JMP I.00,I EXIT * WXT LDA I.00 SET INTERRUPTED SEQUENCE RETURN. STA EXIT+1 ADDRESS IN .BUFR CALL. * JSB RSTR RESTORE REGISTERS. * I.8 CLC 0 CLEAR DEVICE CONTROL. * EXIT JSB .BUFR CALL FOR BUFFERING NOP HOLDS INTERRUPT RETURN ADDRESS. NOP HOLDS EQT ENTRY ADDRESS * * RSTR NOP -RESTORE REGISTERS ROUTINE- LDA SAVEX RESTORE CLO E, SLA,ELA OVERFLOW STF 1 A LDA SAVAX AND LDB SAVBX B JMP RSTR,I AND EXIT. * * * OUTPUT SECTION * * OUTP LDA BUF OUTPUT SECTION SSA THEN EXIT TO JMP STAT STATUS SECTION-OUTPUT COMPLETE. * LDB CHX IF CHARACTER (RECORD LENGTH) SSB,RSS INDEX = ZERO, THEN GO TO JMP X.14 CLEAN-UP OUTPUT SECTION. LDA BUF,I GET WORD FROM BUFFER CONTAINING LDB ULFL NEXT CHAR. SSB,RSS IF CHAR. IS IN UPPER PART OF WORD ALF,ALF ROTATE TO LOWER. ISZ CHC COUNT CHARACTER OUTPUT. X.12 AND M377 ISOLATE LOWER CHARACTER. SEZ,RSS IF ASCII MODE, IOR M200 ADD 8 LEVEL BIT RBL,SLB ROTATE UPPER/LOWER MASK FOR NEXT ISZ BUF CHAR. ADD 1 TO BUFFER ADDRESS STB ULFL IF CURRENT CHAR. IS IN LOWER. ISZ CHX INDEX CHARACTER LENGTH COUNTER. * STCM OCT 4000 -NOP-, ALSO USED AS A MASK FOR STC. * SEZ IF BINARY MODE, JMP X.13MA GO TO OUTPUT CHARACTER. LDB CHX IF CHAR. IS SZB NOT LAST CHAR. IN BUFFER, JMP X.13 GO TO OUTPUT CHAR. * CPA ARROW IF LAST CHAR. IN ASCII RECORD IS JMP X.18 LEFT ARROW, EXIT W/O RETURN/LF. X.13 LDB XOUT * I.9 OTB 0 OUTPUT INSTRUCTION IN -B- I.10 OTA 0 SET CHARACTER IN BUFFER JSB RSTR I.11 STC 0,C OUTPUT BUFFER TO TTY. JMP I.00,I * * X.14 CLA,SEZ SKIP IF ASCII MODE JMP X.15 BINARY * LDA RETN (A) = RETURN CODE LDB DINF IF DATA-IN FLAG STA DINF = 0, GO SZB,RSS OUTPUT RETURN JMP X.12 LDA LINF RETURN OUT - SET A = LINE-FEED JMP X.16 AND GO TO SET FOR LAST CHAR. * X.15 ISZ EOTC BINARY - (A) = 0. INDEX COUNTER JMP X.12 FOR OUTPUT OF FOUR FEED-FRAMES. * X.16 LDB MIN4 CONTROL HERE FOR LAST CHAR. STB BUF SET BUF NEGATIVE TO SIGNAL THAT JMP X.12 LAST CHAR. IS BEING OUTPUT. * X.18 LDB CHC ADB CM1 SUBTRACT 1 FOR _ IN CHC, JMP STAT+1 GO TO STATUS. (B) = CHC. * * CONSTANT, FLAG AND STORAGE SECTION * A EQU 0 B EQU 1 * SAVAX NOP STORAGE AREA SAVBX NOP FOR SAV&NG -EGISTERS SAVEX NOP AT INTERRUPT TIME. * SAVA NOP HOLDS EQT ADDRESS SAVB NOP HOLDS REQUEST WORD 2 ADDRESS SAVC NOP HOLDS REQUEST CODE. SAVD NOP * DFLG OCT 0 DRIVER BUSY FLAG. =0, NOT BUSY * M17 OCT 17 MASKS M77 OCT 77 USED M177 OCT 177 IN M377 OCT 377 PROCESSING M700 OCT 700 M200 OCT 200 M15 OCT 100000 MST OCT 37400 EOTS OCT 40040 LIAM OCT 300 MASKS USED SFSM OCT 600 IN CONSTRUCTING CLFM OCT 1200 I/O CLCM OCT 4600 INSTRUCTIONS CFM OCT 1000 OTAI OCT 102600 OTBI OCT 100 * RWFL OCT 0 READ/WRITE FLAG // P-FORMAT FLAG DINF OCT 0 DATA-IN FLAG ULFL OCT 0 C640 UPPER/LOWER CHAR POSITION FLAG. * 1 = LOWER, 0 = UPPER. * EQTA OCT 0 TEMPORARY BUF OCT 0 BUFS OCT 0 STORAGE LENG OCT 0 CHC OCT 0 AREA CHX OCT 0 EOTC OCT 0 * CM1 DEC -1 CM3 DEC -3 MIN4 DEC -4 UL52 OCT 52525 * RUBO EQU M177 RETN OCT 15 LINF OCT 12 BLNK OCT 40 ARROW OCT 337 * XOUT OCT 0 LOUT OCT 120000 POUT OCT 110000 DA OCT 160000 DB OCT 140000 * FFCT OCT 177766 END-OF-TAPE COUNTER (NEGATIVE) * * * * * THE FOLLOWING ROUTINES ALLOW THE * ROUTINE TEKPT AND ALPHA (TEKTRONIX * PLOTING ROUTINES) TO COMUNICATE * WITH THE TELETYPE DRIVER * * PLT.0 NOP LDA DFLG SZA JMP *-2 INA STA DFLG JMP PLT.0,I PLT.1 NOP CLA STA DFLG JMP PLT.1,I END 1x6 PROGRAM SHOW DIMENSION X(100),Y(100),IT(10),IX(10),IY(10) C C EXAMPLE PLOTS C C ******************************************** C READ(5,100)IT,IX,IY 100 FORMAT(30A2) C C EXAMPLE 1.A C DO 1 I=1,100 X(I)=I 1 Y(I)=FLOAT(I)/2. CALL LABAX(IT,11,IX,6,IY,6) CALL LINPT(X,Y,100) PAUSE C C ********************************************* C READ(5,100)IT,IX,IY C C EXAMPLE 1.B C CALL LABAX(IT,11,IX,6,IY,6) CALL LOGPT(X,Y,100) PAUSE C C ********************************************** C READ(5,100)IT,IX,IY C C EXAMPLE 1.C C CALL LABAX(IT,11,IX,6,IY,6) CALL POLPT(X,Y,20) PAUSE C C *********************************************** C READ(5,100)IT,IX,IY C C EXAMPLE 1.D C CALL LABAX(IT,11,IX,6,IY,6) CALL ANTPT(X,Y,20) PAUSE C C *********************************************** C READ(5,100)IT,IX,IY CALL CLRTK C C EXAMPLE 2.A C PI=2.*3.141593/99. Z=0. DO 10 I=1,100 X(I)=SIN(Z/2.) Y(I)=Z 10 Z=Z+PI C C CALL BGNPL(1) CALL PHYSR(-.5,-1.0) CALL TITLE(IT,11,IX,6,IY,6,5.,5.) CALL GRID(3,2) CALL DECNM(1) CALL POLAR(1.,.5,2.5,2.5) CALL RTHET CALL PFRAM CALL DASH CALL CURVE(X,Y,100,4) CALL ENDPL(1) PAUSE C C **************************************************** C READ(5,100) IT,IX,IY CALL CLRTK Z=0. DO 11 I=1,100 Y(I)=SIN(Z/2.) X(I)=Z 11 Z=Z+PI C C EXAMPLE 2.B C CALL BGNPL(1) CALL TITLE(IT,11,IX,6,IY,6,4.5,4.) CALL GRAF(0.,1.,4.,0.,1.,1.) CALL FRAME CALL CURVE(X,Y,100,0) CALL ENDPL(1) PAUSE END END$ L  EXAMPLE 1.A X-AXIS Y AXIS EXAMPLE 1.B X-AXIS Y AXIS EXAMPLE 1.C X-AXIS Y AXIS EXAMPLE 1.D X-AXIS Y AXIS EXAMPLE 2.A X-AXIS Y AXIS EXAMPLE 2.B X-AXIS Y AXIS  ,2 22681-18068 1546 SC 0322 PRE-ASSEMBLER/FILE GATHERER (PRASM)             H0103 ASMB,R,L,C DOS-M/DOS-III PRE-ASSEMBLER HED *** DOS-M/DOS-III PRE-ASSEMBLER/FILE GATHERER *** * NAM PRASM SPC 1 EXT EXEC SPC 1 * ************************************************ * * * * * DOS-M/DOS-III PRE-ASSEMBLER/FILE GATHERER * * * (PRASM) * * * * * * -- BY -- * * * * * * LARRY BYLER * * * HEWLETT-PACKARD * * * CUPERTINO, CALIF. * * * * * ************************************************ * * * I. IDENTIFICATION - B037A 4/25/74 * --------------------- * * II. LANGUAGE - ASSEMBLY LANGUAGE, RELOCATABLE. * --------------- * * III. MODULE TYPE - PROGRAM. * ------------------ * * IV. LENGTH - 1036 (OCTAL) WORDS. * ------------- * * V. DESCRIPTION - * ------------------ * * PRASM BUILDS A SOURCE FILE INPUT FOR THE HP ASSEMBLER BY * CONCATENATING MULTIPLE SOURCE FILES SPECIFIED BY THE USER * IN THE WORK AREA OF THE SYSTEM DISC. IT THEN SETS THE * APPROPRIATE BASE PAGE WORDS TO POINT TO THE WORK AREA AND * CALLS THE ASSEMBLER. THUS, SOURCE FILE IMAGES OF PAPER * TAPE FILES NEED NOT BE EXTERNALLY CONCATENATED TO BE * ASSEMBLED. IN ADDITION, PROGRAM DEVELOPMENT CAN TAKE * PLACE IN SMALL PIECES (THUS SPEEDING UP THE EDITING * PROCESS), WITH PRASM USED WHENEVER A FULL LISTING IS * REQUIRED. PRASM CAUSES THE ASSEMBLER TO PRESERVE * TAPE (FILE) NUMBERING SO THAT THE ORIGINAL SOURCE * FILES MAY BE EASILY IDENTIFIED. SKP *  VI. DETAILED DESCRIPTION - * --------------------------- * * SOURCE FILES SPECIFIED BY THE USER ARE TRANSFERRED IN * THE ORDER SPECIFIED FROM THE CURRENT USER DISC, THROUGH * MEMORY, TO THE WORK AREA OF THE SYSTEM DISC. ALL OF * AVAILABLE MEMORY IS USED AS A BUFFER, AND MULTIPLE- * SECTOR DISC I/O IS USED AS MUCH AS POSSIBLE. THIS * SPEEDS UP THE GATHERING PROCESS TREMENDOUSLY. AS AN * EXAMPLE, PRASM PROCESSED A 9-FILE, 6000+ LINE (TOTAL) * PROGRAM IN 8 SECONDS, USING A 32K SYSTEM WITH 24K USER * AREA. WITH A 16K SYSTEM (8K USER AREA) 9 SECONDS WERE * NEEDED. * * THE BASIC ALGORITHM IS AS FOLLOWS: * * 1. ASK THE USER FOR FILE NAMES. * * 2. CHECK THE NEXT NAME FOR "/E". IF IT IS, GO TO * STEP 8. IF NOT, CHECK WHETHER FILE EXISTS AND IS A * SOURCE FILE. IF NOT, AND SYSTEM IS IN KEYBOARD MODE, * PRINT ERROR MESSAGE AND RETURN TO STEP 1. (IF THE * SYSTEM IS IN BATCH MODE, SEE DESCRIPTION UNDER PART * VII, USER PROCEDURES). IF FILE IS O.K., PROCEED TO * STEP 3. * * 3. IF REMAINDER OF CURRENT FILE DOES NOT FIT IN MEMORY, * GO TO STEP 6. OTHERWISE, READ IT IN. SINCE FILES MAY * NOT OCCUPY EXACTLY A FULL SECTOR, SCAN THE FINAL SECTOR * UNTIL THE 0-WORD (END OF FILE) IS FOUND. LEAVE THE * 0-WORD IN THE OUTPUT STREAM SO THAT THE ASSEMBLER WILL * INCREMENT THE TAPE COUNT. * * 4. RECOMPUTE THE AMOUNT OF AVAILABLE MEMORY BASED ON * THE CURRENT POSITION OF THE BUFFER POINTER. * * 5. CHECK TO SEE IF ANOTHER FILE NAME IS IN THE INPUT * LIST. IF SO, RETURN TO STEP 2, ELSE RETURN TO STEP 1. * * 6. IF REMAINDER OF CURRENT FILE DOES NOT FIT INTO * AVAILABLE MEMORY, READ IN AS MUCH AS WILL FIT (TO THE * NEAREST SECTOR ON THE INPUT FILE). THEN DUMP THE * MEMORY BUFFER (TO THE NEAREST SECTOR) TO THE WORK AREA * OF THE SYSTEM DISC. * * 7. SINCE THIS DUMP WILL NOT, IN GENERAL, TRANSFER ALL * THE DATA IN THE BUFFER (SOME PART OF A SECTOR WILL BE * LEFT), MOVE ANY REMAINING DATA TO THE BEGINNING OF THE * BUFFER. RECOMPUTE AVAILABLE MEMORY AND RETURN TO STEP 3. * * 8. WHEN "/E" IS SCANNED, ADD A "-1" TO THE OUTPUT STREAM * (ASSEMBLER EOF) AND DUMP ANY EXISTING BUFFER. IF NO * FILES WERE PROCESSED, RETURN TO THE DISC MONITOR, ELSE * CALL THE ASSEMBLER. SKP * VII. USER PROCEDURES - * --------------------- * * 1. FILE NAME INPUT DEVICE IS SYSTEM TTY: * * A) ENTER ":PR,PRASM[,P1][,P2][,P3][,P4][,P5]" WHERE * * P1 IS THE LOGICAL UNIT OF THE FILE NAME INPUT * DEVICE (DEFAULT = 1, SYSTEM TTY). * * P2-P5 ARE NOT USED BY PRASM BUT ARE PASSED TO * THE ASSEMBLER AS THEY WERE ENTERED. * (ASSEMBLER P1 IS ALWAYS 2, THE DISC). * * B) PRASM PRINTS INTRODUCTORY MESSAGE AND ASKS FOR * FILE NAMES. ENTER FILE NAMES (SEPARATED BY COMMAS, * NO BLANKS) IN THE ORDER THEY ARE TO BE PROCESSED. * THE LAST ENTRY MUST BY THE CHARACTERS "/E". PRASM * WILL CONTINUE TO ASK FOR FILE NAMES WHENEVER THE * END OF THE NAME LIST IS DETECTED BEFORE SCANNING /E. * * C) UNDEFINED FILES OR FILES WHICH ARE DEFINED BUT * ARE NOT OF TYPE SOURCE CAUSE AN ERROR MESSAGE AND A * NEW REQUEST FOR FILE NAMES. FILES BEFORE THE * ERRONEOUS ONE IN THE LIST (ITS NAME IS PRINTED IN * THE ERROR MESSAGE) WILL HAVE BEEN PROCESSED. ENTER * NEW NAME LIST (STARTING WITH THE BAD FILE) AND "/E". * * 2. FILE NAME INPUT DEVICE IS NOT SYSTEM TTY: * * A) ENTER A ":PR,PRASM" RECORD AS IN STEP 1A. * PARAMETERS ARE TREATED THE SAME AS IN STEP 1A, EXCEPT * THAT IN CASE OF ERROR, THE PARAMETER P2 (LIST DEVICE * FOR THE ASSEMBLER) IS USED. SEE STEP 2C. * * B) TTY MESSAGES OTHER THAN THE PROGRAM TITLE ARE * SUPPRESSED. FILE NAMES ARE READ FROM THE DEVICE * SPECIFIED IN P1 (EXCEPT DISC) AND FILES ARE PROCESSED * UNTIL A "/E" OR AN UNDEFINED OR NON-SOURCE FILE IS * FOUND. AT "/E" THE ASSEMBLER IS CALLED IF ANY * FILES WERE PROCESSED. * * C) IF AN ERROR CONDITION OCCURS (UNDEFINED FILE, OR * FILE OF TYPE OTHER THAN SOURCE), PRASM PROCESSING * HALTS. THE FILE NAME CAUSING THE ERROR IS PRINTED ON * THE DEVICE SPECIFIED IN P2 ("XXXXX UNDEFINED" OR * "XXXXX ILLEGAL", RESPECTIVELY). IF P1 IS THE SAME AS * THE BATCH DEVICE, ALL REMAINING FILE NAMES ARE CHECKED * FOR VALIDITY (WITH BAD ONES BEING PRINTED ON THE LIST * DEVICE) UNTIL "/E" OR A JOB CONTROL RECORD IS READ * (THE DISC MONITOR WILL INTERCEPT THE LATTER). IF P1 * IS DIFFERENT FROM THE BATCH DEVICE, ALL FILE NAMES ON * THE CURRENT RECORD WILL BE CHECKED, THEN PRASM EXITS * TO THE DISC MONITOR. THIS PROCEDURE IS ADOPTED TO * POSSIBLY CUT DOWN ON THE NUMBER OF SUBMISSIONS OF A * JOB IN A CLOSED-SHOP ENVIRONMENT. * 3. TERMINATION OTHER THAN BY A DISC MONITOR INTERCEPT * CAUSES "$END PRASM" TO BE PRINTED ON THE SYSTEM TTY. SPC 10 * VIII. USER CAVEATS AND NOTA BENES - * --------------------------------- * * 1. PRASM RUNS FASTER IN LARGE-MEMORY SYSTEMS (AS MORE * SECTORS ARE READ/WRITTEN IN ONE DISC I/O CALL), HOWEVER * IT WILL RUN IN ANY SIZE MEMORY PROVIDED THAT AT LEAST * TWO SECTORS OF BUFFER ARE AVAILABLE ABOVE PRASM DURING * EXECUTION (PRASM CHECKS AND ABORTS IF THIS IS NOT SO). * SINCE THE ASSEMBLER (CALLED BY PRASM) REQUIRES MUCH MORE * WORKIYNG AREA, PRASM WILL RUN IN ANY ENVIRONMENT WHICH * SUPPORTS THE ASSEMBLER. HOWEVER, AS AN ACADEMIC EXERCISE, * THE 6000+ LINE PROGRAM MENTIONED IN SECTION VI WAS * PROCESSED BY PRASM IN ONE MINUTE AND 43 SECONDS USING A * TWO-SECTOR BUFFER. * * 2. NO CHECK IS MADE TO SEE IF THE WORK AREA REQUIRED * EXCEEDS THAT AVAILABLE. IF A DISC WRITE REQUEST CAUSES * OVERFLOW, THE MONITOR WILL ABORT PRASM WITH THE "IT" * DIAGNOSTIC. * * 3. THE ASSEMBLER SEES L.U. 2 AS ITS SOURCE INPUT DEVICE. * IT THEREFORE PASSES THE 2 INTO XREF (IF ,C IS SPECIFIED). * UNFORTUNATELY, 24223B XREF WILL NOT HANDLE MULTIPLE TAPE * IMAGE SOURCE FILES INPUT FROM A DISC FILE (IT WILL PRINT * INDIVIDUAL LINE NUMBERS, BUT MASKS OFF THE TAPE NUMBER * FIELD. THUS THERE CAN BE N REFERENCES TO LINE 100 (FOR * EXAMPLE) BUT NO INDICATION OF WHICH OF N TAPES. A * COMPANION SUBMITTED PROGRAM (IDENTIFICATION B038A) IS A * PATCHED XREF WHICH REMOVES THIS INHIBITION FOR TAPE * IMAGES OF LESS THAN 2048 LINES (I.E., VIRTUALLY ALL * TAPES). * * 4. THE PARAMETERS SPECIFYING FILE NAME INPUT AND LIST * OUTPUT ARE NOT CHECKED FOR I/O COMPATIBILITY. THIS MEANS * THAT THE DISC SYSTEM WILL GET VERY UNHAPPY IF THE INPUT * DEVICE IS SPECIFIED AS AN OUTPUT-ONLY DEVICE OR AS * L.U. 2 OR 3. IT WILL BE SIMILARLY PERTURBED IF THE LIST * DEVICE IS SPECIFIED AS 2 OR 3 OR AN INPUT-ONLY DEVICE. SKP PRASM LDA B,I GET USER PARAMETERS. SZA,RSS JMP PRAS2 CPA D1 IF IT'S THE TTY, JMP PRAS1 SKIP THE FOLLOWING NONSENSE. STA TEMP NOT THE TTY, SET UP CONWD ADA B700 FOR "SET END OF PAPER TAPE" STA EOTCW CALL. LDA TEMP RECALL PARAMETER. PRAS1 IOR B400 SET ECHO BIT IN INPUT LU. STA INPLU PRAS2 LDA AP2 SET UP LOOP FOR STA TEMP REST OF PARAMETERS. LDA DM4 STA CNTR PRMLP INB LDA B,I SZA IF CURRENT PARAMETER # 0, STA TEMP,I REPLACE DEFAULT. ISZ TEMP ISZ CNTR JMP PRMLP MORE TO DO. LDA FWAM SET BUFFER POINTER TO START STA BFPTR OF AVAILABLE MEMORY. JSB EXEC GET FIRST AVAILABLE DEF *+5 WORK AREA TRACK AND DEF D17 SECTORS PER TRACK. DEF WTRAK DEF TEMP LAST TRACK NOT NEEDED. DEF SC/TR LDA WTRAK INITIALIZE JFILS, JFILC. ALF,ALF LDB AJFLS JSB BPSTR JSB BPSTR LDA SYSSC JOB FILE SUB-CHANNEL IS LDB AJFSC THE WORK AREA (SYSTEM DISC). JSB BPSTR LDA D1 LDB D2 JSB I/OC SPACE TWO LINES ON TTY. LDB AMSG1 JSB OTTY "PRE-ASSEMBLER/FILE GATHERER". JSB GT#SC CHECK FOR AT LEAST LDA #SCBF TWO SECTORS IN BUFFER. ADA DM2 SSA JMP NOSPC NOPE, CAN'T DO A THING. JSB EXEC SET END OF PAPER TAPE. DEF *+3 DEF D3 DEF EOTCW REPET LDB AMSG2 "ENTER FILE NAMES OR /E". JSB MBTTY PRINT ONLY IF INPUT LU = 1. JSB EXEC GET HIS ANSWER. DEF *+5 DEF D1 DEF INPLU DINBF DEF INBUF DEF DM72 LDA DINBF STA ENDFL RESET END-OF-LINE FLAG. RAL CONVERT TO CHARACTER ADDRESS STA INPTR AND STORE FOR SCANNER. SZB,RSS WAS ANY INPUT TRANSFERRED? JMP REPET NO, GO ASK HIM AGAIN. CMB STB CCNT INITIALIZE CHARACTER COUNT. NXTFL LDA ENDFL SSA,RSS ANY MORE FILE NAMES TO PROCESS? JMP NXTF1 YES, GO DO IT. CPA ERFLG NO, ANY ERRORS SO FAR? JMP REPET NO, GO ASK FOR MORE FILE NAMES. LDA BATCH ERROR SOMEWHERE, IF WE'RE IN CPA SYSTY KEYBOARD MODE, THEN INPUT LU JMP EXIT IS NOTLs TTY, SO EXIT. LDA INPLU BATCH MODE, IF INPUT LU IS THE AND B77 SAME AS BATCH DEVICE, KEEP CPA BATCH SEARCHING FOR /E. JMP REPET JMP EXIT OTHERWISE EXIT, END OF RECORD. SPC 1 NXTF1 LDA BLNKS BLANK OUT FILE NAME BUFFER. STA FILBF STA FILBF+1 STA FILBF+2 JSB GT#SC GET # AVAIL SECTORS IN BUFFER. LDA DM5 STA CNTR INITIALIZE CHARACTER COUNTER. LDA AFLBF INITIALIZE OUTPUT POINTER. RAL STA OPTR NXTCH ISZ CCNT END OF LINE? CLE,RSS JMP EOLIN YES, HOP AND SKIP OUT. LDB INPTR NO, GET CHARACTER ADDRESS. ERB CONVERT TO WORD ADDRESS. LDA B,I GET THE WORD WE WANT AND SEZ,RSS ISOLATE THE CHARACTER. ALF,ALF AND B377 ISZ INPTR BUMP TO NEXT CHARACTER ADDRESS. CPA COMMA END OF NAME? JMP EONAM YES. LDB CNTR NO, STUFF CHAR IN FILE NAME. CLE,SZB,RSS TOO MANY CHARACTERS? JMP NXTCH YES, IGNORE UNTIL COMMA OR EOL. LDB OPTR NO, GET CHARACTER ADDRESS. ERB CONVERT TO WORD ADDRESS. SEZ FIRST HALF OF WORD? JMP *+4 ALF,ALF YES, SHIFT CHAR TO UPPER AND IOR BLANK INCLUDE BLANK IN LOWER. JMP *+5 SKIP SECOND HALF PROCESSING. STA TEMP SECOND HALF, SAVE CHARACTER. LDA B,I RECALL UPPER CHAR, BLANK. AND B1774 REMOVE THE BLANK. IOR TEMP INCLUDE CHAR IN LOWER HALF. STA B,I STORE THE WORD IN ANY CASE. ISZ OPTR BUMP THE CHARACTER ADDRESS. ISZ CNTR ALSO THE CHARACTER COUNTER. JMP NXTCH CNTR MAY ROLL OVER, SO JMP NXTCH REPEAT THIS INSTRUCTION. EOLIN CCA,RSS SET FLAG FOR END OF LINE, SKIP. EONAM CLA SET FLAG FOR END OF NAME. STA ENDFL LDA FILBF CHECK IF WE'RE DONE ("/E"). CPA SLSHE l$ JMP NOMOR YES, GO CALL THE ASSEMBLER. JSB EXEC NO, CHECK IF FILE EXISTS. DEF *+4 DEF D18 AFLBF DEF FILBF DEF #SCFL STA TEMP AND B377 ON RETURN, -A- CONTAINS STARTING STA RSCTR TRACK/SECTOR, -B- THE ADDRESS XOR TEMP OF SAID TRACK/SECTOR. ALF,ALF STA RTRAK LDA #SCFL NOW CHECK IF FILE IS EVEN HERE. SZA JMP CKTYP YES, GO CHECK THE FILE TYPE. LDB UNDEF NO, PREPARE ERROR MESSAGE. TTY? LDA INPLU CHECK IF INPUT LU IS THE TTY. AND B77 CPA SYSTY RSS JMP FLERR NO, PRINT ERROR MSG ON LIST LU * THEN GO CHECK NEXT FILE NAME. JSB PRINT YES, PRINT ERROR MSG ON TTY. JMP REPET GO ASK AGAIN FOR FILE NAMES. CKTYP ADB DM1 CHECK IF SOURCE FILE SPECIFIED. LDA B,I AND B177 CPA B11 JMP FILOK IT IS, GO PROCESS IT. LDB ILLGL NOT A SOURCE FILE, SET ERR MSG. JMP TTY? GO DECIDE WHAT TO DO WITH IT. FILOK STA FIRST SET "FILE PROCESSED" FLAG. LDA ERFLG CHECK FOR ERRORS BEFORE INA,SZA PROCESSING FILE. JMP NXTFL ERROR SOMEWHERE, DON'T PROCESS. RSTFL LDB #SCFL FILE O.K., CHECK IF REST OF CMB,INB FILE FITS IN CORE. ADB #SCBF SSB JMP TOOBG NOPE, MUST HANDLE IN SECTIONS. LDA #SCFL YES, SO READ REST OF FILE. MPY WD/SC -A- _ NUMBER OF WORDS TO READ. STA RBUFL JSB READ READ SECTOR, UPDATE READ T/S. LDA WD/SC SET BUFFER POINTER TO CMA,INA START OF FINAL SECTOR. ADA BFPTR STA BFPTR LDA BFPTR,I SCAN FINAL SECTOR FOR 0-WORD ISZ BFPTR (END-OF-FILE). BUMP BFPTR SZA FIRST SO 0-WORD INCLUDED JMP *-3 IN OUTPUT. JMP NXTFL GO SEE IF THERE'S ANY MORE. SPC 1 * IF WE'RE HERE, THE CURRENT FIpLE WILL NOT FIT IN WHAT IS LEFT * OF OUR CORE BUFFER. SO READ IN AS MUCH AS WILL FIT. THEN * DECREMENT THE COUNT OF SECTORS REMAINING TO BE PROCESSED BY * THE AMOUNT WE READ. WITHIN THE LAST SECTOR WE READ, DETERMINE * WHERE AN INTEGRAL NUMBER OF SECTORS CAN BE WRITTEN TO THE WORK * AREA AND WRITE THOSE SECTORS. THEN MOVE THE REMAINING PART * OF THE LAST SECTOR TO THE BEGINNING OF THE BUFFER (FWAM) AND * CONTINUE. SPC 1 TOOBG CMB,INB -B- _ NUMBER OF SECTORS LEFT. STB #SCFL LDA #SCBF MPY WD/SC -A- _ NUMBER OF WORDS LEFT. STA RBUFL JSB READ READ AS MUCH AS WE CAN. LDA FWAM CMA,INA ADA BFPTR BFPTR - FWAM. STA WBUFL ASSUME INTEGRAL SECTOR BOUNDARY. CLB DIV WD/SC -B- _ REMAINDER. CMB,INB -(# WORDS TO MOVE AFTER WRITE) STB #MOVE ADB WBUFL ADJUST # WORDS TO WRITE TO FIT STB WBUFL ON SECTOR BOUNDARY. JSB WRITE DUMP BUFFER TO WORK AREA. LDA FWAM MOVE REST OF SECTOR TO LOW LDB BFPTR BUFFER BEFORE CONTINUING. STA BFPTR RESTORE BFPTR TO LOW CORE. STB A TEMPORARILY. ADB #MOVE -B- _ ADDR OF 1ST WORD TO MOVE. CPB A DID WE END ON A SECTOR BOUNDARY? JMP RCALC YES, NO NEED TO MOVE ANYTHING. LDA B,I NO, MOVE REST OF LAST SECTOR STA BFPTR,I TO LOW BUFFER. ISZ BFPTR INB ISZ #MOVE JMP *-5 RCALC JSB GT#SC CALCULATE NEW AVAILABLE CORE. JMP RSTFL GO PROCESS REST OF FILE. SPC 1 FLERR ISZ ERFLG FIRST TIME HERE? RSS NO, SKIP PAGE EJECT AND HEADER. JSB HEADR YES, DO IT. LDA P2 JSB PRINT "UNDEFINED" OR "ILLEGAL". JMP NXTFL GO CHECK NEXT FILE NAME. SPC 1 NOSPC LDB AMSG4 "INSUFFICIENT BUFFER". LDA BATCH EJECT PAGE AND PRINT HEADER ON CPA SYSTY LIST DEVICE ONLY IF IN ? JMP *+3 BATCH MODE. JSB HEADR LDA P2 JSB PRINT NOW PRINT THE MESSAGE. EXIT LDB ENDMS PRINT "$END PRASM". JSB OTTY JSB EXEC RETURN TO MONITOR. DEF *+2 DEF D6 SPC 1 NOMOR LDA FIRST LAST FILE IN, CHECK IF THERE LDB ERFLG WERE ANY FILES OR ERRORS. SZA ANY FILES PROCESSED? INB,SZB YES, WAS THERE A BATCH ERROR? JMP EXIT YES, OR NO FILES, NO ASMB. CCA STA BFPTR,I CLOSE OUT WORK FILE WITH -1.. LDA FWAM COMPUTE LENGTH OF FINAL WRITE CMA,INA TO WORK AREA. ADA BFPTR INA STA WBUFL JSB WRITE WRITE OUT FINAL SECTOR(S). LDB ENDMS PRINT "$END PRASM" JSB OTTY JSB EXEC DONE, CALL THE ASSEMBLER. DEF *+8 DEF D10 DEF ASMB DEF D2 ASMB INPUT ALWAYS FROM DISC. AP2 DEF P2 DEF P3 DEF P4 DEF P5 SKP * SUBROUTINES. SPC 1 GT#SC NOP LDA BFPTR DETERMINE HOW MANY SECTORS CMA,INA OF CORE BUFFER ARE AVAILABLE ADA UMLWA FOR THIS FILE. INA CLB DIV WD/SC # WORDS \ WD/SC = # SECTORS. STA #SCBF JMP GT#SC,I SPC 1 BPSTR NOP JSB EXEC DEF *+2 DEF DM19 JMP BPSTR,I SPC 1 HEADR NOP EJECT A PAGE AND PRINT HEADER STB TEMP ON LIST L.U. SAVE MSG ADDR. LDA P2 LDB DM7 7 SPACES IF LIST L.U. = TTY. JSB I/OC LDA P2 LDB AMSG3 "PRASM -- ERROR MESSAGE(S)". JSB PRINT LDA P2 LDB D2 JSB I/OC TWO SPACES ON LIST DEVICE. LDB TEMP RESTORE MESSAGE ADDRESS. JMP HEADR,I RETURN. SKP WRITE NOP JSB EXEC WRITE ACCUMULATED SECTORS TO DEF *+7 WORK AREA. DEF D2 DEF D2 DEF FWAM,I DEF WBUFL DEF WTRAK DEF WSCTR LDA WBUFL CLB DIV WD/SC UPDATE NEXT WORK AREA T/S. ADA WSCTR DIV SC/TR ADA WTRAK STA WTRAK STB WSCTR JMP WRITE,I SPC 1 READ NOP JSB EXEC READ A FILE INTO CORE. DEF *+7 DEF DM1 DEF D3 BFPTR BSS 1 DEF RBUFL DEF RTRAK DEF RSCTR LDA RBUFL UPDATE NEXT T/S TO BE READ. CLB DIV WD/SC ADA RSCTR DIV SC/TR ADA RTRAK STA RTRAK STB RSCTR LDA BFPTR ADA RBUFL STA BFPTR UPDATE BFPTR BY AMOUNT READ. JMP READ,I SKP PRINT NOP ADA B200 SET BIT 7 TO PRINT COLUMN 1. * (DOS-III ONLY!!!). STA OUTLU SAVE OUTPUT L.U. CPB UNDEF "'XXXXX' UNDEFINED" MESSAGE? RSS CPB ILLGL NO, "'XXXXX' ILLEGAL" MESSAGE? RSS JMP PRNT1 NO, GO PRINT THE MESSAGE. LDA DM3 ONE OF THE ABOVE, MOVE THE STA #MOVE OFFENDING FILE NAME INTO THE LDA AFLBF APPROPRIATE MESSAGE BUFFER STA TEMP BEFORE PRINTING THE MESSAGE. STB PBUFA FOR LATER. INB BUMP TO ADDRESS OF BUFFER. LDA TEMP,I STA B,I ISZ TEMP ISZ #MOVE DONE WITH THE MOVE? JMP *-5 NOT YET. LDB PBUFA YES, RESTORE BUFFER ADDRESS. PRNT1 LDA B,I PICK UP WORD COUNT AND STA PBUFL STUFF IT IN CALLING SEQUENCE. INB BUMP TO FWA BUFFER. STB PBUFA SAVE THAT ALSO. JSB EXEC PRINT THE LINE. DEF *+5 DEF D2 DEF OUTLU PBUFA BSS 1 DEF PBUFL JMP PRINT,I SPC 1 MBTTY NOP LDA INPLU PRINTS THE SPECIFIED LINE ON AND B77 THE TTY ONLY IF IT IS THE CPA D1 FILE NAME INPUT DEVICE. JSB OTTY JMP MBTTY,I SPC 1 OTTY NOP LDA D1 PRINTS THE SPECIFIED LINE ON JSB PRINT THE TTY. JMP OTTY,I SPC 1 I/OC NOP I/O CONTROL EXEC CALL TO IOR B1100 SPACE DEVICE IN -A- BY THE STA PBUFA NUMBER OF LINES IN -B-. STB PBUFL JSB EXEC DEF *+4 DEF D3 DEF PBUFA DEF PBUFL JMP I/OC,I SKP SKP * BASE PAGE CONSTANTS AND VARIABLES. SPC 1 B11 EQU 64B B77 EQU 72B B177 EQU 73B B377 EQU 74B B1774 EQU 75B D1 EQU 54B D2 EQU 55B D3 EQU 56B D6 EQU 61B D10 EQU 65B D17 EQU 66B DM1 EQU 52B DM2 EQU 51B DM3 EQU 50B DM4 EQU 47B DM5 EQU 46B DM7 EQU 44B BATCH EQU 111B L.U. OF BATCH DEVICE. FWAM EQU 147B ADDR OF 1ST WD OF AVAIL MEMORY. JFILS EQU 124B JOB FILE STARTING TRACK/SECTOR. JFLSC EQU 177B JOB FILE SUBCHANNEL. SYSSC EQU 155B SYSTEM SUBCHANNEL. SYSTY EQU 112B L.U. OF SYSTEM TTY. UMLWA EQU 100B ADDR OF LAST WD OF AVAIL MEM. SPC 10 * OTHER CONSTANTS, VARIABLES, AND MESSAGES. SPC 1 SUP PRESS EXTRA PRINTING. SPC 1 W/SC EQU 128 NUMBER OF WORDS PER DISC SECTOR. SPC 1 A EQU 0 -A- REGISTER ADDRESS DEFINITION. AJFLS DEF JFILS AJFSC DEF JFLSC AMSG1 DEF *+1 DEC 14 ASC 14,PRE-ASSEMBLER/FILE GATHERER AMSG2 DEF *+1 DEC 11 ASC 11,ENTER FILE NAMES OR /E AMSG3 DEF *+1 DEC 13 ASC 13,PRASM -- ERROR MESSAGE(S) AMSG4 DEF *+1 DEC 10 ASC 10,INSUFFICIENT BUFFER ASMB ASC 3,ASMB B EQU 1 -B- REGISTER ADDRESS DEFINITION. B200 OCT 200 B400 OCT 400 B700 OCT 700 B1100 OCT 1100 BLANK OCT 40 ASCII BLANK. BLNKS ASC 1, CCNT NOP CHAR COUNT OF TTY INPUT LINE. CNTR NOP NEG CHAR COUNTER FOR FILBF. COMMA OCT 54 ASCII COMMA. D18 DEC 18 DM19 DEC -19 DM72 DEC -72 ENDFL NOP >=0, EONAME; <0, EOLINE. ENDMS DEF *+1 DEC 5 ASC 5,$END PRASM EOTCW vVNLHOCT 701 SET EOT STATUS CONWD. ERFLG DEC -1 FILBF ASC 3, FIRST NOP "FILES PROCESSED" FLAG. ILLGL DEF *+1 DEC 7 ASC 7, ILLEGAL INBUF BSS 36 TTY LINE INPUT BUFFER. INPLU OCT 401 TTY LU PLUS ECHO BIT. INPTR DEF INBUF #MOVE NOP # WORDS TO MOVE TO LOW MEMORY. OPTR NOP POINTER TO FILBF FOR PTCHR. OUTLU NOP B1100+(CURRENT OUTPUT DEVICE). P2 DEC 6 DEFAULT LIST DEVICE = 6. P3 NOP DEFAULT PUNCH DEVICE. P4 NOP DEFAULT #LINES PER PAGE. P5 NOP DEFAULT JBIN FLAG PBUFL NOP LENGTH OF OUTPUT MESSAGE BUFFER. RBUFL NOP RSCTR NOP RTRAK NOP SC/TR NOP #SCBF NOP # SECTORS OF CORE BUFFER. #SCFL NOP # SECTORS LEFT IN CURRENT FILE. SLSHE ASC 1,/E TEMP NOP UNDEF DEF *+1 DEC 8 ASC 8, UNDEFINED WBUFL NOP WD/SC ABS W/SC NUMBER OF WORDS PER DISC SECTOR. WSCTR NOP WTRAK NOP SPC 1 END PRASM 3NASMB,R,L,C NAM TEST,3 * THIS WILL BE * IN FIRST FILE. LDA A SKP * THIS WILL BE * IN SECOND FILE. A EQU 0 END   22681-18070 1608 SC 0522 STAR - STARTREK - RTE              H0105 p HEWLETT-PACKARD SOFTWARE CENTER CONTRIBUTED PROGRAM DOCUMENTATION FORM 1.0 IDENTIFICATION -------------- 1.1 PROGRAM TITLE ------------ ***** STAR ***** - STARTREK/STAR VERSION D 1.2 PROGRAM LANGUAGE(S) ------------------- [ ] FORTRAN II [X] RELOCATABLE ASSEMBLY LANGUAGE [X] FORTRAN IV [ ] ABSOLUTE ASSEMBLY LANGUAGE [ ] ALGOL [ ] MICROPROCESSOR ASSEMBLY LANGUAGE 1.3 PROGRAM TYPE ------------ [X] PROGRAM [ ] SUBROUTINE [ ] DRIVER [ ] FUNCTION [ ] OTHER ----------------------- 2.0 PROGRAM DESCRIPTION ------------------ THIS IS THE CLASSIC GAME OF STARTREK. IT IS INTENDED TO SIMULATE THE POPULAR TELEVISION PROGRAM HAVING THE SAME NAME. THE OPERATOR IS CONSIDERED THE CAPTAIN OF THE STARSHIP ENTERPRISE. THE MISSION IS TO RID THE GALAXY OF INVADING KLINGONS. THE PROGRAM PROMPTS THE OPERATOR FOR THE MINIMUM AND MAXIMUM NUMBER OF KLINGONS AND THEN DESIGNS A SCENARIO -- THE NUMBER OF KLINGONS YOU MUST DESTROY ON A GIVEN NUMBER OF STARDATES. THE COMPUTER MAINTAINS A DISPLAY OF THE KLINGONS, THEIR LOCATIONS, AND THE STAR BASES, AND THEIR LOCATIONS. THE PROGRAM MAKES USE OF A RANDOM NUMBER GENERATOR TO CREATE A TRUCE, STORMS, DAMAGE, AND THE LOCATIONS OF STARS, KLINGONS, STAR BASES, AND THE STARSHIP ENTERPRISE. IF ANY KLINGONS REMAIN AFTER THE ALOTTED NUMBER OF STARDATES, OR IF THE ENTEPRISE RUNS OUT OF FUEL, YOU WILL HAVE LOST, AND THE COMPUTER WILL DISPLAY AN APPROPRIATE MESSAGE. IF YOU WIN (YOU HAVE DESTROYED THE KLINGONS), THE COMPUTER WILL GIVE AN UNBIASED SCORE ON YOUR PERFORMANCE AS CAPTAIN OF THE STARSHIP ENTERPRISE. OPTIONS AVAILABLE TO THE OPERATOR INCLUDE: (1) THE ABILITY TO WARP TO A SECTOR OR QUADRANT (2) FIRE TORPEDOES TO A SECTOR LOCATION  (3) FIRE PHASERS WITHIN A QUADRANT (4) INVOKE AN AIMING AID (5) REPAIR DAMAGE (6) MISCELLANEOUS MAINTENANCE FUNCTIONS 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (2) 3.0 ENVIRONMENT DESCRIPTION ----------------------- 3.1 SUPPORTED SOFTWARE REQUIREMENTS - OPERATING SYSTEM -------------------------------------------------- [ ] DOS-M [ ] SIO SYSTEM [ ] BCS [ ] HP BASIC VERSION: [ ] MTS [ ] SELF-CONTAINED [X] RTE [ ] OTHER ------------------- 3.2 CONTRIBUTED SOFTWARE REQUIREMENTS --------------------------------- NAME AND ORDER NUMBER OF OTHER CONTRIBUTED PACKAGES REQUIRED: NONE 3.3 HARDWARE REQUIREMENTS --------------------- APPROXIMATELY 11K DECIMAL OF BACKGROUND CORE IS REQUIRED. ONE OF THE FOLLOWING TYPE CRT TERMINALS: HP2600 HP2615 HP2616 (USES VIDEO CONTROL AND CURSOR ADDRESS FUNCTIONS) HP2640 (IF VIDEO CONTROL FUNCTIONS AND CURSOR MOVEMENT FUNCTION CODES ARE THE SAME AS THE HP2616) 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (3) 4.0 USER PROCEDURES --------------- 4.1 TAPE IDENTIFICATION ------------------- ACCOUNT FOR ALL PHYSICAL TAPES INCLUDED IN THIS PACKAGE. *************************************************************** * * CONTENTS * CONTROL * * TAPE * PROGRAMS, TESTS, DATA, ETC., IN * STATEMENT * * NUMBER * ORDER, OUTSIDE TO INSIDE OF TAPE * (IF ANY) * *************************************************************** * * * * * 1 * PROGRAM DOCUMENTATION (DUMP TO LP * NONE ^ * * * WITH RTE FMGR) * * * * * * * * * * * 2 * MAIN PROGRAM NAME "STAR" * FTN * * * REQ SUBROUTINES OF STAR * * * * LESS ASMB ROUTINES * * * * * * * * * * * 3 * MORE FTN4 SUBROUTINES FOR MAIN * * * * ASMB SUBROUTINES REQUIRED BY MAIN * * * * SUBROUTINE "RAND" * ASMB,R * * * SUBROUTINE "LINK" * ASMB,R * * * SEGMENT 1 PROGRAM NAME "STAR1" * FTN * * * REQ SUBROUTINES OF STAR1 * * * * SEGMENT 2 PROGRAM NAME "STAR2" * FTN * * * * * * * * * * 4 * SEGMENT 3 PROGRAM NAME "STAR3" * FTN * * * SEGMENT 4 PROGRAM NAME "STAR4" * FTN * * * * * * * * * * 5 * SEGMENT 5 PROGRAM NAME "STR5" * FTN * * * REQ SUBROUTINES OF STAR5 * * * * SEGMENT 6 PROGRAM NAME "STAR6" * FTN * * * REQ SUBROUTINES OF STAR6 * * * * * * * * * * * * * * * * : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *************************************************************** 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (4) 4.0 USER PROCEDURES (CONT.) --------------- 4.2 LOAD AND RUN INSTRUCTIONS ------------------------- (1) COMPILE THE MAIN PROGRAM INTO THE RTE LOAD-AND-GO AREA USING THE FTN4 COMPILER. (2) ASSEMBLE THE TWO ASMB ROUTINES INTO THE LG AREA. (3) COMPILE SEGMENTS 1-6 INTO THE LG AREA. (4) ON,LOADR,99,,,1,2 FOR AUTOMATIC SEGMENTED LOAD OF PROGRAM STAR AND ITS SIX SEGMENTS, STAR1 THRU STAR6. (5) TURNON SEQUENCE: ON,STAR,P1,P2 WHERE P1 = INPUT LU NUMBER P2 = OUTPUT LU NUMBER IF P1 = 0, INPUT IS FROM LU NUMBER 1 IF P2 = 0, OUTPUT IS ON INPUT LU DEVICE (7) I/O IS CONVERSATIONAL WITH CRT. 4.3 SUBROUTINES OR MICROPROGRAMS --------------------------- N/A 4.4 DIAGNOSTIC MESSAGES OR ADDITIONAL EXITS -------------------------------------- NONE 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (5) 5.0 LITERATURE REFERENCE -------------------- NONE 6.0 SP,?ECIAL CONSIDERATIONS ---------------------- (1) STARTREK IS CAPABLE OF I/O TO SEVERAL TYPES OF CRT TERMINALS. IN RESPONSE TO "ENTER TYPE OF OUTPUT TERMINAL:", THE USER SHOULD RESPOND WITH: 00 FOR HP2600 CRT 15 FOR HP2615 MINIBEE CRT TERMINAL 16 FOR HP2616 SUPERBEE CRT IF THE CONTROL CODES FOR THE HP2640 TERMINAL ARE THE SAME AS THOSE FOR THE HP2616 TERMINAL, THEN STARTREK WILL ALSO WORK FOR THE 2640 TERMINAL. (2) THE PROGRAM WILL OUTPUT SPECIAL VIDEO CONTROL CODES AND CURSOR SENSE COMMANDS FOR THE HP2616 TERMINAL WHICH INCREASE SPEED AND IMPROVE COSMETIC PERFORMANCE OF THE PROGRAM. 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (6) 7.0 EXAMPLE INPUT/OUTPUT (TEST CASE) -------------------------------- 1. TURNON: ON TURNON, STARTREK WILL ASK FOR THE MAXIMUM AND MINIMUM NUMBER OF KLINGONS WHICH WILL BE DISTRIBUTED RANDOMLY THROUGHOUT THE GALAXY. THE LOWER THE MINIMUM NUMBER, THE MORE DIFFICULT THE GAME. THE MAXIMUM KLINGONS IS THEORETICALLY LIMITED TO 512, BUT IS USUALLY ABOUT 120 T0 140. IF THE REQUESTED MINIMUM CANNOT BE ACHIEVED IN THE GENERATION OF THE GALAXY, STAR WILL PROMPT WITH ITS BEST EFFORT AND ASK "OK?". TO GO AHEAD, TYPE 'YES'; TO TRY THE GENERATION AGAIN, TYPE 'NO'. A GOOD REPLY FOR A CHALLENGING GAME IS 10,20. THE TYPE CRT IS REQUESTED SO THAT STARTREK CAN PROPERLY FORMAT THE OUTPUT CONTROL CODES. EACH TIME A GAME IS WON OR LOST, A NEW GAME CAN BE STARTED WITHOUT TERMINATING STARTREK. HOWEVER, UNLESS THE MINIMUM NUMBER OF KLINGONS WAS ENTERED AS ZERO, THE MAX-MIN AND TYPE CRT QUESTIONS WILL NOT BE ASKED AGAIN. 2. DISPLAY: THE COMPUTER WILL DISPLAY AND MAINTAIN THE LONG RANGE (GALAXY) AND SHORT RANGE (QUADRANT) DISPLAYS. A SAMPLE OF THE DISPLAY FOLLOWS: . . .ui . . . . . STARDATE 34/3110 1* . . . . . 404 2 3 E * . * . . . . CONDITION RED 2* . 205 2 3 . 8 7 106 K . . * . . . . ENERGY 2196 3* . 1 1 2 . 7 207 107 . . . . . . K . TORPEDOES 10 4* . 102 101 8 . 7 206 7 . . . . . K . . KLINGONS 46/ 50 5* . . . . 308 305 114 7 * . . . . . * . ----- DAMAGE ----- 6* 2 2 305 2 8 1 4 1 . . . . . . . . SR LR WP PH TP AM 7* 308(405) 3 3 5 5 502 . . K . . . . . . 0 0 2 0 0 0 8* 208 2 8 104 204 . . . SR SCAN * * * * * * * * * * * * * * * * 1 2 3 4 5 6 7 8 QUADRANT STATUS GALAXY <<<<<<<<<<<<<<< CRT DISPLAY >>>>>>>>>>>>>>>>>>>>>>>>>> (A) GALAXY (LONG RANGE) DISPLAY: THE RIGHT ARRAY OF THE ABOVE DISPLAY IS CALLED THE GALAXY AND IS AN 8X8 ARRAY OF QUADRANTS. ENTRIES IN THE GALAXY ARE MAPPED BY THE "LONG RANGE SCANNER" (LR) AS THE ENTERPRISE "WARPS" THROUGH THE GALAXY. EACH QUADRANT IN THIS DISPLAY CONTAINS UP TO THREE DIGITS REPRESENTED BY 'KBS', WHERE: K = NUMBER OF KLINGONS IN QUADRANT B = NUMBER OF STAR BASES IN QUADRANT S = NUMBER OF STARS IN QUADRANT THE QUADRANT CONTAINING THE ENTERPRISE IS SHOWN WITHIN PARENTHESES. IF A QUADRANT CONTAINS A DECIMAL POINT, THEN ITS CONTENTS ARE NOT KNOWN TO THE ENTERPRISE. AS THE ENTERPRISE ENTERS A QUADRANT, THE CONTENTS OF THAT QUADRANT ARE DISPLAYED IN THE LEFT ARRAY OF THE DISPLAY. AT THE SAME TIME, IF THE LONG RANGE SCANNER IS OPERATIONAL, THE CONTENTS OF ADJACENT QUADRANTS WILL BE MAPPED IN THE GALAXY (RIGHTHAND) DISPLAY. 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (7) (B) QUADRANT (SHORT RANGE) DISPLAY: THE SHORT RANGE SCANNER MAINTAINS THE LEFT (QUADRANT) DISPLAY. THIS DISPLAY CONSISTS OF AN 8X8 ARRAY OF SECTORS. EACH SECTOR CAN CONTAIN EITHER A KLINGON (REPRESENTED BY 'K'), A STAR BASE (REPRESENTED BY 'B'), A STAR (REPRESENTED BY '*'), OR THE STARSHIP ENTERPRISE (REPRESENTED BY 'E'). A QUADRANT MAY CONTAIN A MAXIMUM OF EIGHT STARS, EIGHT KLINGONS, ONE STAR BASE, AND ONE ENTERPRISE. ON THE OTHER HAND, A MINIMUM OF ONE STAR, NO KLINGONS, AND NO STAR BASES MAY BY PRESENT IN EACH QUADRANT. 3. STATUS: THE STATUS DISPLAY IS GIVEN IN THE CENTER OF THE SCREEN AND CONTAINS INFORMATION NECESSARY TO INSURE INTELLIGENT DECISIONS BY THE OPERATOR CONCERNING GAME STRATEGY. (A) STARDATE: THE STARDATE STATUS INDICATES THE REMAINING NUMBER OF STARDATES AVAILABLE FOR POSITIONING OF THE ENTERPRISE. EACH TIME THE ENTERPRISE IS MOVED, A STARDATE WILL BE CONSUMED. (B) CONDITION: THE CONDITION IS GREEN IF THERE ARE NO KLINGONS IN THE QUADRANT WITH THE ENTERPRISE AND IF THE REMAINING ENERGY IS GREATER THAN 300 UNITS. THE CONDITION IS YELLOW WHEN THERE ARE NO KLINGONS IN THE QUADRANT AND THE ENERGY IS LESS THAN OR EQUAL TO 300 UNITS. THE CONDITION IS RED IF THERE ARE ANY KLINGONS IN THE QUADRANT CONTAINING THE ENTERPRISE. FINALLY, THE CONDITION IS DOCKED WHEN THE ENTERPRISE IS ADJACENT TO A SECTOR WHICH CONTAINS A STAR BASE. (C) TORPEDOES: THE NUMBER OF TORPEDOES LEFT FOR AGGRESSIVE OPERATIONS ARE DISPLAYED HERE. AT START, AND WHEN DOCKED, THE NUMBER OF TORPEDOES IS RESET TO TEN. (D) ENERGY: THE ENERGY IS AN INDICATION OF THE FUEL WHICH IS LEFT FOR OPERATION OF THE ENTERPRISE. AT THE START OF THE GAME, AND WHEN DOCKED WITH A STAR BASE, THE ENERGY IS RESET TO 3000 UNITS. (E) KLINGONS: THE NUMBER OF BAD GUYS LEFT AND THE NUMBER WHICH EXISTED AT THE START OF THE GAME ARE DISPLAYED HERE. (F) DAMAGE REPORT: THE DAMAGE CONTROL SYSTEM MAINTAINS A DISPLAY OF THE CONDITION OF THE FOLLOWING SYSTEMS: SHORT RANGE SCANNER SR LONG RANGE SCANNER LR WARP DpRIVE WP PHASER FIRE CONTROL PH TORPEDO LAUNCHERS TP AIM AID SYSTEM AM IF A SYSTEM IS UP, THE NUMBER BELOW THE SYSTEM LETTERS ON THE DISPLAY WILL BE 0. DAMAGE IS CAUSED BY A STORM DURING A WARP. IF THE DAMAGE CONTROL SYSTEM IS DAMAGED, THEN THE NUMBERS BELOW THE SYSTEM LETTERS WILL CHANGE TO STARS ('**'). THE OPERATOR THEN HAS NO MEANS OF DETERMINING WHAT, IF ANYTHING, IS DAMAGED UNTIL HE TRYS TO USE A SYSTEM. FURTHERMORE, THE DAMAGE CONTROL SYSTEM IS NOT AVAILABLE TO FIX ANY OTHER SYSTEMS WHICH MAY BE DAMAGED. AS A RESULT OF EACH WARP, ALL SYSTEMS RECEIVE ONE UNIT OF REPAIR. 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (8) 4. COMMANDS: TEN BASIC COMMANDS ARE AVAILABLE TO EFFECT CONTROL OF THE ENTERPRISE: (A) INVOKE AIMING AID. THE AIMING AID ALLOWS THE OPERATOR TO OBTAIN THE AIM FOR WARP, PHASER FIRE, AND TORPEDO FIRE. HE CAN ALSO OBTAIN INFORMATION CONCERNING EXPECTED HITS FROM KLINGONS, REQUIRED ENERGY FOR PHASER KILLS, AND ENERGY REQUIREMENTS FOR WARPS. FROM THE OPERATOR'S POINT OF VIEW, STARTING WITH ZERO DEGREES FOR A DIRECTION TO THE RIGHT FROM THE ENTERPRISE AND MOVING IN A COUNTERCLOCKWISE DIRECTION, AN AIM OF ONE IS 0 DEG., TWO IS 45 DEG., THREE IS 90 DEG. (UP), FIVE IS 180 DEG. (DUE LEFT), SEVEN IS 270 DEG. (DOWN), ETC. FOR EXAMPLE, AN AIM OF 4.5 WOULD BE IN A DIRECTION OF 22 AND ONE HALF DEGREES UP FROM DUE LEFT OF THE ENTERPRISE. AIMS FROM ONE TO NINE ARE ALLOWED. THE "CO-ORDS" PROMPT IS ANSWERED WITH THE APPROPRIATE QUADRANT OR GALAXY COORDINATES. THE PROMPT "CODE?", IF ANSWERED WITH 'C', WILL CAUSE A DISPLAY OF ACCEPTABLE AIM COMMANDS. (B) WARP: TO WARP IS TO MOVE THE ENTERPRISE. IN THE GALAXY DISPLAY, MOVEMENT IS ONE WARP PER QUADRANT. IN THE QUADRANT DISPLAY, MOVEMENT IS 0.125 WARP PER SECTOR. IF THE WARP DRIVE IS DAMAGED (DOWN), AN ATTEMPT TO WARP WILL RESULT IN A MOVEMENT EQUIVALENT TO 0.2 WARP (IMPULSE POWER IS USED). WARP CAN BE BY AIM (WARP), SECTOR (WARP TO SECTOR), AND QUADRANT (WARP TO QUADRANT). IF THE AIM AID IS DOWN (DAMAGED), ONLY THE WARP COMMAND IS ACCEPTED. SECTOR AND QUADRANT WARPS PROMPT THE OPERATOR FOR COORDINATES. CORRECT COORDINATES ENTRIES ARE ROW FOLLOWED BY COLUMN. FOR EXAMPLE, A WARP TO QUADRANT COMMAND WILL PROMPT "CO-ORDS?". AN ENTRY OF 2,4 WILL CAUSE THE ENTERPRISE TO WARP TO THE ROW 2 AND COLUMN 4 QUADRANT IN THE GALAXY DISPLAY. THIS QUADRANT WILL THEN BE MAPPED BY THE SHORT RANGE SCANNER IN THE QUADRANT DISPLAY. AN ATTEMPT TO WARP THROUGH A STAR, A STAR BASE, OR A KLINGON WILL RESULT IN A BLOCKED MESSAGE AND THE APPROPRIATE PENALTIES. WARPS MAY VARY FROM 0.125 (ONE SECTOR) TO TEN, AND THE REQUIRED WARP ENERGY IS EQUAL TO [16 TIMES WARP] ENERGY UNITS. (1) STORMS: STORMS CAN OCCUR ONLY DURING WARPS AND RESULT IN DAMAGE TO ONE OF THE ENTERPRISE SYSTEMS (SEE DAMAGE REPORT). (2) TRUCE: A TRUCE CAN OCCURR ONLY DURING A WARP. A TRUCE RESULTS IN THE TOTAL OR PARTIAL REPAIR OF SOMETHING THAT IS DAMAGED. IF NOTHING IS DAMAGED, NOTHING IS REPAIRED. (C) PHASER FIRE: PHASERS CAN DESTROY SOME OR ALL OF THE KLINGONS IN A QUADRANT WITH ONE SHOT. STARS AND STAR BASES ARE UNAFFECTED BY PHASER FIRE. A PHASER COMMAND CAUSES THE PROMPT OF "FIRE?", FOR WHICH THE CORRECT REPLY IS THE AMOUNT OF ENERGY WHICH IS TO BE EXPENDED IN THE PHASER ATTACK. THE AIM AID (SEE AIM AID COMMAND) CAN HELP IN DETERMINING THE REQUIRED PHASER ENERGY FOR A COMPLETE KILL OF ALL KLINGONS IN THE QUADRANT. AN APPROPRIATE STATUS DISPLAY FOLLOWS THE PHASER FIRE. 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (9) (D) TORPEDO FIRE: TORPEDOS CAN BE FIRED BY AIM OR BY SECTOR COORDINATES (REQUIRES AIM AID SYSTEM FOR FOR FIRE TO COORDINATES). TORPEDO FIRE CAN DESTROY ONE TARGET AT A TIME AND WILL DESTROY KLINGONS, STARS, AND EVEN S4TAR BASES AND THE ENTERPRISE ITSELF. TORPEDOS DO NOT USE ENTERPRISE ENERGY SINCE THEY ARE SELF PROPELLED. THEY ARE SOMETIMES USEFUL IN DESTROYING STARS WHICH WOULD OTHERWISE BLOCK THE MOVEMENT OF THE ENTERPRISE DURING WARP (SEE WARP). TORPEDOS ARE REPLENISHED TO 10 WHEN THE ENTERPRISE IS DOCKED WITH A STAR BASE. (E) REPAIRS: REPAIRS ON DAMAGED SYSTEMS ARE EFFECTED USING THIS COMMAND. THE OPERATOR IS PROMPTED WITH "REPAIR?", FOR WHICH A REPLY OF THE APPROPRIATE TWO LETTER SYSTEM CODE IS REQUIRED (SEE DAMAGE REPORT). A REPLY OF 'C' WILL CAUSE THE PRINTOUT OF THE ACCEPTABLE REPAIR CODES. EACH UNIT OF DAMAGE REQUIRES 200 UNITS OF ENERGY TO REPAIR. REPAIRS CANNOT BE ACCOMPLISHED DURING RED ALERT. EACH TIME A WARP IS MADE, ALL DAMAGED SYSTEMS RECEIVE ONE UNIT OF REPAIR AS A RESULT OF THE WARP. (F) EXECUTE: THE COMMAND 'EXEC' IS USED TO FOLLOW UP THE AIM AID REQUEST IN THAT IT CAUSES THE EXECUTION OF THE LAST AIM AID. IF A COURSE TO SECTOR (S), COURSE TO QUADRANT (Q), OR TORPEDO AIM TO SECTOR (T) REQUEST WAS MADE IN THE AIM AID MODE, THE EXEC REPLY TO "COMMAND?" WILL EXECUTE THE TORPEDO FIRE OR WARP. OF COURSE, IF THE AIM AID IS DOWN, THE EXEC COMMAND IS MEANINGLESS. NOTE THAT THE EXECUTION OF PHASER AIM AIDS IS NOT POSSIBLE SINCE THE REQUIRED PHASE ENERGY VARIES AND IS NOT PRECISELY DETERMINED. (F) CANCEL COMMAND: ANY QUESTION REQUIRING NUMERICAL INPUT CAN BE CANCELED BY ENTERING A NEGATIVE NUMBER. QUESTIONS EXPECTING ALPHABETIC CHARACTER INPUT ARE CANCELED WITH A REPLY OF '-' (DASH). (H) COM: IF 'COM' IS TYPED IN RESPONSE TO "COMMAND?", A PRINTOUT OF ALL ACCEPTABLE STARTREK COMMANDS WILL BE MADE. 5. ATTACKS: WHEN THE ENTERPRISE ENTERS A QUADRANT WITH KLINGONS, THE ENEMY GETS FIRST SHOT. THE ENTERPRISE CANNOT BE DESTROYED BY ENEMY ATTACKS UNLESS THE ENERGY LEVEL IS FORCED LESS THAN ZERO UNITS. THE CLOSER THE KLINGONS ARE TO THE ENTERPRISE, THE MORE ENERGY THAT WILL BE DRAINED BY THE SHIELDS IN WARDING OFF THE ATTACK. KLINGONS WILL ATTACK AGAIN AFTER THE NEXT WARP, TORPEDO, OR PHASER ACTION UNLESS THEY ARE DESTROYED BY THAT ACTION. 6. LOSE: THE OPERATOR (CAPT KIRK) LOSES WHEN HE ATTEMPTS TO WARP WITH NO STARDATES LEFT OR WHEN THE ENERGY LEVEL GOES BELOW ZERO UNITS. 7. WIN: THE OPERATOR WINS WHEN ALL KLINGONS ARE DESTROYED. THE COMPUTER CALCULATES A SCORE BASED ON THE MINIMUM STARDATES REQUIRED TO WIN, THE NUMBER OF STARDATES LEFT, THE NUMBER OF TORPEDOS LEFT, AND THE AMOUNT OF ENERGY LEFT. SCORES RANGE FROM ZERO TO 1000. 1 CONTRIBUTED PROGRAM DOCUMENTATION FORM (10) 8. MISCELLANEOUS: THE FOLLOWING NOTES MAY BE OF INTEREST: (A) THE NUMBER OF KLINGONS PER QUADRANT IS NOT DEPENDANT ON THE MINIMUM AND MAXIMUM NUMBER ENTERED AT THE BEGINNING OF THE GAME. IF KLINGONS ARE TO BE ASSIGNED TO A QUADRANT, THE CHANCES ARE ONE IN THREE (1:3) THAT THERE WILL BE ONE KLINGON AND RISES EXPONENTIALLY FROM THERE. THE CHANCES FOR TWO KLINGONS ARE 1:6 3 RATES 1:17; 4-1:45; 5-1:127; 6-1:340; 7-1:965; 8-1:2500. THE DISTRIBUTION OF QUADRANTS CONTAINING KLINGONS IS COMPLETELY RANDOM. (B) THERE WILL ALWAYS BE AT LEAST ONE BASE IN THE GALAXY. THE CHANCES OF HAVING ADDITIONAL BASES ARE ONE IN 25 FOR EACH QUADRANT WHICH IS CONSIDERED FOR ASSIGNMENT OF KLINGONS. (C) THE MEAN DISTRIBUTION OF STARS IN A QUADRANT IS FOUR. EVERY QUADRANT WILL HAVE ONE STAR (OR STAR BASE) MINIMUM. (D) THE CHANCE OF A STORM (DAMAGE) DURING A WARP IS ONE IN EIGHT. THE MEAN DAMAGE LEVEL IS 2.5. THE CHANCE OF A TRUCE (REPAIR) DURING WARP IS ONE IN EIGHT. STORMS ARE EXCLUSIVE OF TRUCES (ONLY ONE CAN HAPPEN AT A TIME). THE MEAN LEVEL OF REPAIR IS ALSO 2.5. (E) THE LEVEL OF KLINGON ATTACK IS RANDOMLY RELATED TO THE PRODUCT OF OF THE DISTANCE TO THE KLINGON AND THE ENERGY REMAINING TO THE KLINGON. THE THEORETICAL MAXIMUM SUSTAINED KLINGON ATTACK AT ONE SECTOR DISTANCE I}S 600 ENERGY UNITS. THE MEAN ONE SECTOR HIT LEVEL IS 500. (F) EXITING AND REENTERING A QUADRANT WILL RESULT IN A NEW, TOTALLY RANDOM DISTRIBUTION OF STARS, KLINGONS, BASES, AND THE ENTERPRISE WITHIN THAT SECTOR. EXITING A QUADRANT WITH KLINGONS WILL RESULT IN A HIT FROM THE ENEMY. IN ESSENCE, KLINGONS GET TO ATTACK BEFORE AND AFTER ALL WARP COMMANDS AND AFTER ALL PHASER AND TORPEDO COMMANDS (IF ANY ARE LEFT AFTERWARDS). IF THE ENTERPRISE IS BLOCKED ON A WARP, IT WILL GET DOUBLY BOMBED BY THE BAD GUYS. 9. WINNING STARTREK REQUIRES A SHREWD COMBINATION OF SKILL, JUDGEMENT, AND LUCK. THE DIFFICULTY OF THE GAME IS RELATED TO THE MINIMUM AND MAXIMUM NUMBER OF KLINGONS ENTERED AT THE BEGINNING OF THE GAME. IF YOU GET A SCORE OF 999, YOU ARE EXTREMELY LUCKY; IF YOU GET A SCORE OF ZERO, YOU ARE MOST UNFORTUNATE AND/OR CARELESS. 1 HEWLETT-PACKARD SOFTWARE CENTER CONTRIBUTED PROGRAM DISCLAIMER [X] INITIAL SUBMISSION [ ] REVISION (PROGRAM NO. ) 903 CLASSIFICATION CODE [ ] ERRORS CORRECTED ------ UP TO 4 CROSS REFERENCE WORDS [ ] DOCUMENTATION CLARIFIED 1. GAMES 2. RTE [ ] OTHER REASON ---------- ---------- ----------- 3. 4. ---------- ---------- ----------------------- TITLE: STAR - STARTREK STAR VERSION D CONTRIBUTOR'S NAME: JAMES M. LIND (CAPT) ORGANIZATION: UNITED STATES AIR FORCE ADDRESS: BLDG. 1265 (GDLI) HOLLOMAN AFB, NM 88330 TELEPHONE: (505) 679-2151 NAME AND ORGANIZATION TO APPEAR IN CATALOG? [X] YES [ ] NO MAY A USER CONTACT YOU DIRECTLY? [X] YES [ ] NO MATERIAL SUBMITTED [X] DOCUMENTATION [X] SOURCE PROGRAM [ ] TEST CASE [ ] OTHER -------------------NLH- DISCLAIMER: TO THE BEST OF MY KNOWLEDGE, THIS CONTRIBUTED PROGRAM IS FREE OF ANY PROPRIETARY INFORMATION BELONGING TO ANY PERSON OR ORGANIZATION. I AM MAKING THIS PROGRAM INFORMATION AVAILABLE TO THE HEWLETT- PACKARD SOFTWARE CENTER. I HEREBY AGREE THAT HP MAY REPRODUCE, PUBLISH, AND USE IT, AND AUTHORIZE OTHERS TO DO SO WITHOUT OBLIGATIONS OR LIABILITY OF ANY KIND. JAMES M. LIND 11 NOVEMBER 1974 ---------------------------------------- ----------------------- (SIGNATURE) (DATE) NFTN CTITLE "STARTREK/STAR VERSION D (SEGMENTED FOR HP2100 RTE)" CSTAR-MAIN PROGRAM STAR C****************************************************************** C---- CONVERTED TO 2100 BY JAMES M. LIND * REV A * C************************* CAPT, US AIR FORCE * 11 NOV 74 * C * BLDG. 1265 (GDLI) ************* C TURNON SEQUENCE: * HOLLOMAN AFB, NM 88330 * C * (505) 679-2154 * C ON,STAR,P1,P2 ****************************************** C C WHERE P1 = INPUT LU NUMBER C P2 = OUTPUT LU NUMBER C C IF P1 = 0, INPUT IS FROM LU# 1 C IF P2 = 0, OUTPUT IS ON INPUT LU DEVICE C IF P1 # P2, ERASE TO END OF LINE IS DEFEATED C C STARTREK SEGMENTATION NOTES: C C STARTREK LOADS AND EXECUTES IN ONE MAIN AND SIX SEGMENTS AND C REQUIRES 26K OCTAL (11K DECIMAL) OF BACKGROUND CORE. REQUIRED C PROGRAMS AND SUBROUTINES ARE AS FOLLOWS: C C SEGMENT PROGRAM SUBROUTINE TYPE C NUMBER NAME NAMES CODING FUNCTION C ------- ------- ---------- ------ -------- C MAIN STAR FTN4 MAIN ITERATION LOOP C GENSE FTN4 GENERATES SECTORS C WIN FTN4 THIS IS FOR WINNERS C LOST FTN4 THIS IS FOR LOSERS C ATAN4 FTN4 CONVERTS ANGLES C ATTAC FTN4 PERFORMS KLINGON ATTACKS C MAIN FTN4 SEQUENCER & COMMAND INPUT C BLIND FTN4 BLINK DAMAGE LABEL C BLINC FTN4 BLINK CONDITION LABEL C UPDAL FTN4 UPDATE LR QUADRANT DISPLAY LR C UPDAD FTN4 UPDATE DAMAGE REPORTS C UPDAS FTN4 UPDATE SR SECTOR DISPLAY C ^ EOF FTN4 ERASE TO END OF SCREEN C EOL FTN4 ERASE TO END OF LINE C POSIT FTN4 POSITION CURSOR C UPDAT FTN4 UPDATE STATUS INDICATOR C HOMEU FTN4 HOME CURSOR UP C REDOS FTN4 REDO THE SR SCAN C STR FTN4 ASCII STRING CONVERSION C RAND ASMB RANDOM NUMBER GENERATOR C LINK ASMB LINKS MAIN TO SEGMENTS C SEG 1 STAR1 FTN4 CONTROL FOR SEGMENT 1 C GENGA FTN4 GENERATE GALAXY C PHASE FTN4 CONTROLS PHASER FIRE C LIMIT FTN4 LIMIT ON KLINGONS C SEG 2 STAR2 (REDO) FTN4 REDOES THE ENTIRE SCREEN C SEG 3 STAR3 (AIMAI) FTN4 PERFORM AIM AID C SEG 4 STAR4 (WARPE) FTN4 PERFORMS ALL WARPS C SEG 5 STAR5 FTN4 CONTROL FOR SEGMENT 5 C WARPA FTN4 WARP WITHOUT AIM AID C WARPS FTN4 WARP TO SECTOR W/AIM AID C REPAI FTN4 PERFORMS ALL REPAIRS C WARPQ FTN4 WARP TO QUADRANT W/AIM AID C SEG 6 STAR6 FTN4 CONTROL FOR SEGMENT 6 C XECUT FTN4 EXECUTE LAST AIM AID C TORPA FTN4 TORPEDO FIRE WITHOUT AIM AID C TORPS FTN4 FIRE TORPEDO TO SECTOR C TORPF FTN4 PERFORMS ALL TORPEDO FIRES C C ALL SEGMENTS EXCEPT SEGMENT 4 (WARPE) ARE SCHEDULED FROM THE C MAIN PROGRAM (STAR) AND ITS SUBROUTINES THROUGH CALLS TO ASMB C SUBROUTINE 'LINK'. SEGMENT 4 IS SCHEDULED BY SELECTED SUBROUTINES C IN SEGMENTS 5 AND 6. ALL SEGMENTS END BY A 'CALL RETRN', WHICH C IS AN ENTRY POINT IN SUBROUTtINE LINK. 'RETRN' THEN RETURNS TO THE C ORIGINAL PLACE WHERE THE SEGMENT WAS SCHEDULED WITH A 'CALL LINK C (SEG NAME)'. THE MAJORITY OF EXECUTION TAKES PLACE IN THE MAIN, C AND SEGMENT SWAPPING IS KEPT TO A MINIMUM. C C STARTREK APPEARS TO BE THE COMPLEMENTS OF MANY PROGRAMMERS. C IT WAS CONVERTED FROM THE HP3000 AND IS COMPATIBLE WITH THE C HP2600 DATAPOINT, HP 2615 MINIBEE, HP2616 SUPERBEE, AND POSSIBLY C THE HP 2640 TERMINAL. C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED,ON,NON C**** INIT COMMON VARIABLES CALL RMPAR(IREPL) NCRTI = IREPL(1) NCRTO = IREPL(2) IF (NCRTI.EQ.0) NCRTI = 1 IF (NCRTO.EQ.0) NCRTO = NCRTI C---- ESTABLISH SEGMENT NAMES CALL CODE WRITE (ISEG1,77) 77 FORMAT ("STAR1 STAR2 STAR3 STAR4 STAR5 STAR6 ") 1 NOCRL = 137B C---- GET TIME OF DAY AND USE AS SEED CALL EXEC (11,IREPL) SEED = IREPL(1) DO 5 I=1,20 5 I0(I) = 0 C---- BEEHIVE CONTROL CODES C---- BELL I7 = 7B C---- ESCAPE CODE I33 = 33B C---- VIDEO CONTROL CODES I60 = 60B I62 = 62B I63 = 63B C---- CUSOR ADDRESS COMMAND I106 = 106B C---- HOMEUP I110 = 110B C---- ERASE TO END OF MEMORY I112 = 112B C---- ERASE TO END OF LINE I113 = 113B C---- UNDERSCORE (SETUP VIDEO CONTROL CODE) I137 = 137B MARKE(1) = 56B MARKE(2) = 105B MARKE(3) = 113B MARKE(4) = 102B MARKE(5) = 52B C---- SET TERMINAL FLAG FOR SUPER (I2600 = 0) I2600 = 0 C---- ESTABLISH KLINGON LIMITS AŭND GENERATE GALAXY IGEN1 = 0 IGEN2 = 0 60 LNK1 = 1 CALL LINK(ISEG1) ERG = 3000. NTORP = 10 NSTAR = 2000 + IFIX(RAND(SEED)*20.)*100 NDATE = NSTAR NCOND = 2 DO 30 I = 1,13 IF (I .LT. 8) ND(I) = 0 IF (I .LT. 5) AIM(I) = 0. 30 CONTINUE LOSTW = 0 C**** MARK VISITED OR SCANNED QUADRANTS DO 70 I = -1,1 IQ = MIN0(MAX0(NQX+I,1),8) DO 70 J = -1,1 JQ = MIN0(MAX0(NQY+J,1),8) 70 NGAL(IQ,JQ) = IABS(NGAL(IQ,JQ)) C**** CHECK FOR KLINGONS IF (NGAL(NQX,NQY) .GT. 100) NCOND = 4 C**** GENERATE SECTOR CALL GENSE IF (MOD(NGAL(NQX,NQY)/10,2) .EQ. 0) GO TO 100 C**** BASE IN QUADRANT, CHECK IF DOCKED DO 90 I = -1,1 IQ = MIN0(MAX0(NSX+I,1),8) DO 90 J = -1,1 JQ = MIN0(MAX0(NSY+J,1),8) IF (NSEC(IQ,JQ) .NE. 4) GO TO 90 NCOND = 1 GO TO 100 90 CONTINUE 100 CONTINUE LEFT = MIN IF (NGAL(NQX,NQY) .GT. 100) LEFT = LEFT - 1 LEFT = LEFT + LEFT CALL HOMEU CALL EOF WRITE (NCRTI ,200) NSTAR ,LEFT,NKLIN,MIN,NBASE,NOCRL 200 FORMAT(////" STARDATE :",I5 // 1 " YOUR MISSION IS TO DESTROY ALL KLINGON INVADERS IN ",I4, 2 " STARDATES" // 3 " INTELLIGENCE REPORTS THE FOLLOWING SITUATION:" // 4 20X,I3," KLINGONS IN" / 5 20X,I3," QUADRANTS" / 6 20X,I3," STAR BASES" // 7 " TYPE 'COM' FOR COMMANDS AFTER GAME STARTS"/ 8 " HIT ANY KEY AND TO START: ",R1) READ (NCRTI,*) IREPL(1) CALL LINK(ISEG2) IF (NGAL(NQX,NQY) .LT. 100) GO TO 300 CALL ATTAC IF (ERG .LT. 0.) GO TO 400 300 CALL MAIN LOSTW = 0 GO TO 60 400 CALL LOST LOSTW = 0 GO TO 60 END CGENSE-MAIN SUBROUTINE GENSE C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED INDEX(X) = MIN1(RAND(SEED)*X+1.,X) C**** EXTRACT QUADRANT INFO K = NGAL(NQX,NQY) NS = MOD(K,10) NK = K/100 NB = (K - 100*NK - NS) / 10 C**** INITIALIZE SECTORS DO 100 I = 1,8 DO 100 J = 1,8 100 NSEC(I,J) = 1 C---- INITIALIZE KLINGON ARRAY DO 150 K=1,8 KLOC(K,1) = 0 KLOC(K,2) = 0 150 KLOC(K,3) = 0 C**** LOCATE KLINGONS IF (NK .LT. 1) GO TO 400 DO 300 K = 1,NK 200 I = INDEX(8.) J = INDEX(8.) IF (NSEC(I,J) .NE. 1) GO TO 200 NSEC(I,J) = 3 KLOC(K,1) = I KLOC(K,2) = J 300 KLOC(K,3) = 200 C**** LOCATE BASE 400 IF (NB .LT. 1) GO TO 500 410 I = INDEX(8.) J = INDEX(8.) IF (NSEC(I,J) .NE. 1) GO TO 410 NSEC(I,J) = 4 C**** LOCATE STARS 500 IF (NS .LT. 1) GO TO 610 DO 600 K = 1,NS 510 I = INDEX(8.) J = INDEX(8.) IF (NSEC(I,J) .NE. 1) GO TO 510 600 NSEC(I,J) = 5 610 CONTINUE C**** LOCATE ENTERPRISE 700 NSX = INDEX(8.) NSY = INDEX(8.) IF (NSEC(NSX,NSY) .NE. 1) GO TO 700 NSEC(NSX,NSY) = 2 RETURN END CWIN-MAIN SUBROUTINE WIN C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED CALL POSIT(15,1) CALL EKOF I= (((1. + (FLOAT(MIN-(NDATE-NSTAR )) / FLOAT((NDATE+LEFT-NSTAR ) 1 - MIN))) *1000.) + (ERG/100.+NTORP))/1.3101 NMN = NDATE-NSTAR WRITE (NCRTO,100) I33,I137,I62,I33,I137,I63, 1 NKLIN,NMN,I33,I137,I60,I,I33,I137,I63 100 FORMAT (1X,3R1," HURRAH! HURRAH!! HURRAH!!! ",3R1// 1 " YOU'VE WASTED ",I3," KLINGONS IN ",I5," STARDATES"// 2 3R1," YOUR SCORE IS: ",I5,3R1 // 3 " YOU ARE HEREBY AWARDED THE ORDER OF THE GREAT BIRD OF THE GALA 4XY " //" HIT ANY KEY AND TO START ELSE TYPE 'STOP'"/) READ (NCRTI,200) IREPL(1) 200 FORMAT (A2) IF (IREPL(1).EQ.2HST) GO TO 777 LOSTW = 1 RETURN 777 WRITE (NCRTI,1777) 1777 FORMAT ("$END STARTREK") CALL EXEC(6) END CLOST-MAIN SUBROUTINE LOST C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED CALL POSIT(15,1) CALL EOF WRITE (NCRTO,100) I33,I137,I62,I33,I137,I63,KLEFT, 1 I33,I137,I60,I33,I137,I63 100 FORMAT (1X,3R1," TRIBBLEHEAD -- YOU'VE LOST!!! ",3R1// 1 I4," KLINGONS LEFT"// A 3R1," MAY THE GREAT BIRD OF THE GALAXY CURSE YOUR HEAD!",3R1 // 2 " HIT ANY KEY AND TO START, ELSE TYPE 'STOP'"/) READ(NCRTI,200) IREPL(1) 200 FORMAT (A2) IF (IREPL(1).EQ.2HST) GO TO 777 LOSTW = 1 RETURN 777 WRITE (NCRTI,1777) 1777 FORMAT ("$END STARTREK") CALL EXEC(6) END CATAN4-MAIN FUNCTION ATAN4(NX,NY,X,Y) C C COMPUTE CORRECT ANGLE BY CONVERTING TO FOURTH QUADRANT SYSTEM. C DX = -(X-NX) < DY = Y-NY IF (DX .EQ. 0. .AND. DY .EQ. 0.) GO TO 10 ATAN4 = ATAN2(DX,DY) IF (ATAN4 .LT. 0.) ATAN4 = ATAN4 + 6.283185308 RETURN 10 ATAN4 = -1. RETURN END CATTAC-MAIN SUBROUTINE ATTAC C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED C---- ATTACKED PERFORMS A KLINGON ATTACK ON THE ENTERPRISE IF (NCOND .EQ. 1) RETURN CALL POSIT(15,1) CALL EOF C---- MAIN ATTACK LOOP DO 900 K = 1,8 C---- CHECK IF A KLINGON AT THIS POSITION IF (KLOC(K,3) .EQ. 0) GO TO 900 HIT = ((2. + RAND(SEED))*KLOC(K,3) / 1 SQRT(FLOAT( (KLOC(K,1)-NSX)**2 + (KLOC(K,2)-NSY)**2 ))) ERG = ERG - HIT IHIT = HIT IF (ND(1) .EQ. 0) GO TO 200 C---- SR SCAN IS DOWN WRITE (NCRTO,100) IHIT 100 FORMAT(I6," FROM ?") GO TO 400 C---- SR SCAN IS UP 200 WRITE (NCRTO,201) IHIT,KLOC(K,1),KLOC(K,2) 201 FORMAT(I6," FROM ",I1,"-",I1) 400 CONTINUE 900 CONTINUE C---- UPDATE ENERGY LEVEL; NOTE THAT THIS PROGRAM DOES NOT CALL LOST CALL UPDAT(3) RETURN END CMAIN-MAIN SUBROUTINE MAIN C---- MAIN IS THE MAIN SEQUENCER AND COMMAND INTERPRETOR INTEGER COM,COMVA C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED DIMENSION COM(4),COMVA(4,13) DATA COMVA/127B,40B,40B,40B,127B,55B,123B,40B, 1 127B,55B,121B,40B,124B,40B,40B,40B, 2 124B,55B,123B,40B,120B,40B,40B,40B, 3 122B,40B,40B,40B,101B,40B,40B,40B, 4 101B,55B,122B,40B,122B,105B,104B,117B, 5 105B,130B,105B,103B,103B,117B,115B,40B, 6 123B,124B,117B,120B/ C---- CHECK IF GAME IS OVER 100 IF (LOSTW .EQ. 1) RETURN CALL POSIT(11,1) CALL EOL WRITE(NCRTI ,200) NOCRL 200 FORMAT (" COMMAND? ",R1) READ (NCRTI,202) COM 202 FORMAT (4R1) C---- C---- INTERPRET THE COMMAND C---- IF (COM(1).NE.COMVA(1,2)) GO TO 1000 IF (COM(2).NE.COMVA(2,2)) GO TO 600 IF (COM(3).NE.COMVA(3,2)) GO TO 500 C---- CAMMAND IS W-S LNK5 = 2 CALL LINK(ISEG5) GO TO 100 500 IF (COM(3).NE.COMVA(3,3)) GO TO 9000 C---- COMMAND IS W-Q LNK5 = 4 CALL LINK(ISEG5) GO TO 100 C---- COMMAND IS W 600 LNK5 = 1 CALL LINK(ISEG5) GO TO 100 1000 IF (COM(1).NE.COMVA(1,5)) GO TO 2000 IF (COM(3).NE.COMVA(3,5)) GO TO 1400 C---- COMMAND IS T-S LNK6 = 3 CALL LINK(ISEG6) GO TO 100 C---- COMMAND IS T 1400 LNK6 = 2 CALL LINK(ISEG6) GO TO 100 2000 IF (COM(1).NE.COMVA(1,6)) GO TO 3000 C---- COMMAND IS P LNK1 = 2 CALL LINK(ISEG1) GO TO 100 3000 IF (COM(1).NE.COMVA(1,9)) GO TO 4000 IF (COM(2).NE.COMVA(2,9)) GO TO 3300 C---- COMMAND IS A-R IAIM1 = 2 CALL LINK(ISEG3) GO TO 100 C---- COMMAND IS A 3300 IAIM1 = 1 CALL LINK(ISEG3) GO TO 100 4000 IF (COM(1).NE.COMVA(1,10).OR. 1 COM(2).NE.COMVA(2,10).OR. 2 COM(3).NE.COMVA(3,10).OR. 3 COM(4).NE.COMVA(4,10)) GO TO 5000 C---- COMMAND IS REDO CALL LINK(ISEG2) GO TO 100 5000 IF (COM(1).NE.COMVA(1,11).AND. 1 COM(2).NE.COMVA(2,11)) GO TO 60G|00 C---- COMMAND IS EXEC LNK6 = 1 CALL LINK(ISEG6) GO TO 100 6000 IF (COM(1).NE.COMVA(1,12).OR. 1 COM(2).NE.COMVA(2,12).OR. 2 COM(3).NE.COMVA(3,12)) GO TO 7000 C---- COMMAND IS COM CALL POSIT(15,1) CALL EOF WRITE (NCRTO,6300) 6300 FORMAT ( 1 "W -- WARP T -- FIRE TORPEDO"/ 2 "W-S -- WARP TO SECTOR T-S -- FIRE TORPEDO TO SECTOR"/ 2 "W-Q -- WARP TO QUADRANT P -- FIRE PHASERS"/ 3 "A -- INVOKE AIMING AID R -- REPAIR DAMAGE"/ 4 "A-R -- AIM INFO REPEAT EXEC -- EXECUTE LAST AIM COM"/ 5 "REDO -- REDO ENTIRE SCREEN COM -- PRINT ALL COMMANDS"/ 6 "- -- CANCEL COMMAND STOP -- $END STARTREK") GO TO 100 C---- CHECK IF COMMAND IS STOP 7000 IF (COM(1).EQ.COMVA(1,13).AND. 1 COM(2).EQ.COMVA(2,13)) GO TO 777 IF (COM(1).NE.COMVA(1,7)) GO TO 9000 C---- COMMAND IS R LNK5 = 3 CALL LINK(ISEG5) GO TO 100 C---- C---- ALL POSSIBILITIES EXHAUSTED -- INVALID COMMAND C---- 9000 WRITE(NCRTO ,9001) 9001 FORMAT(" FOR A LIST OF VALID COMMANDS TYPE 'COM'") GO TO 100 C---- C---- END STARTREK C---- 777 CALL EOF WRITE (NCRTI,1777) 1777 FORMAT ("$END STARTREK") CALL EXEC(6) END CBLIND-MAIN SUBROUTINE BLIND(N) C---- BLIND WILL SET THE DAMAGE LABEL BLINKING IF N = 1 C---- OR STOP IT FROM BLINKING IF N = 0. C---- THE SEQUENCE: C---- %33C,%106,"CCCLLL" MEANS MOVE CURSOR TO COLUMN CCC, C---- ROW LLL. C---- %33C,%62C MEANS SET LINE BLINKING. C---- %33C,%63C MEANS STOP LINE BLINKING. C---- C---- COMMON DECLARATIONS C---- LOGICAL ON C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED,NON,ON IF (I2600.EQ.1.OR.I2600.EQ.-1) RETURN IF (N .EQ. 0) GO TO 500 IF (ON) RETURN ON = .TRUE. C---- SET BLINK ON. WRITE (NCRTO,100) I7,(I0(J),J=1,20),I7, 1 I33,I106,I33,I137,I63, I33,I106,I33,I137,I62,NOCRL 100 FORMAT (24R1,"028005",5R1,"021005",4R1) RETURN C---- SET BLINK OFF 500 IF (.NOT. ON) RETURN ON = .FALSE. WRITE (NCRTO,501) I33,I106,I33,I137,I63,NOCRL 501 FORMAT (2R1,"021005",4R1) RETURN END CBLINC-MAIN SUBROUTINE BLINC(N) C---- BLINC WILL SET THE CONDITION LABEL BLINKING IF N = 1 C---- OR STOP IT FROM BLINKING IF N = 0. C---- THE SEQUENCE: C---- %33C,%106,"CCCLLL" MEANS MOVE CURSOR TO COLUMN CCC, C---- ROW LLL. C---- %33C,%62C MEANS SET LINE BLINKING. C---- %33C,%63C MEANS STOP LINE BLINKING. C---- C---- COMMON DECLARATIONS C---- LOGICAL ON C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED,ON IF (I2600.EQ.1.OR.I2600.EQ.-1) RETURN IF (N .EQ. 0) GO TO 500 IF (ON) RETURN ON = .TRUE. C---- SET BLINK ON. IC = I62 C---- IF NCOND = 3 (YELLOW) BLINK STANDARD VIDEO IF (NCOND.EQ.3) IC = I60 WRITE (NCRTO,100) I7,(I0(J),J=1,20),I7, 1 I33,I106,I33,I137,I63, I33,I106,I33,I137,IC,NOCRL 100 FORMAT (24R1,"034001",5R1,"026001",4R1) RETURN C---- SET BLINK OFF 500 IF (.NOT. ON) RETURN ON = .FALSE. WRITE (NCRTO,501) I33,I106,I33,I137,I63,NOCRL 501 FORMAT (2R1,"026001",4R1) RETURN END CUPDAL-MAIN SUBROUTINE UPDAL(I,J) C---- UPDAL UPDATES QUADRANT (I,J) DISPLAY IN THE LR SCAN. C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED CALL POSIT(I,(J-1)*4+38) IF (I .EQ. NQX .AND. J .EQ. NQY) GO TO 500 IF (J .EQ. NQY+1 .AND. I .EQ. NQX) GO TO 200 IF (J .EQ. NQY-1 .AND. I .EQ. NQX) GO TO 300 C---- THE QUADRANT DOES NOT CONTAIN THE ENTERPRISE WRITE (NCRTO,100) NGAL(I,J),NOCRL 100 FORMAT (I4,1X,R1) RETURN C---- ON RIGHT OF ENTERPRISE QUADRANT 200 WRITE (NCRTO,201) NGAL(I,J),NOCRL 201 FORMAT (")",I3,1X,R1) RETURN C---- ON LEFT OF ENTERPRISE QUADRANT 300 WRITE (NCRTO,301) NGAL(I,J),NOCRL 301 FORMAT (I4,"(",R1) RETURN C---- THE QUADRANT CONTAINS THE ENTEPRISE, MARK IT 500 WRITE (NCRTO,501) NGAL(I,J),NOCRL 501 FORMAT ("(",I3,")",R1) RETURN END CUPDAD-MAIN SUBROUTINE UPDAD(I) C---- UPDAD UPDATES THE DAMAGE REPORT TO REFLECT DAMAGE C---- OR REPAIR TO UNIT I. C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED IF (I .EQ. 7) GO TO 1000 C---- IF REPORT IS DOWN, THEN NO USE UPDATING IF (ND(7) .GT. 0) RETURN CALL POSIT(8,(I-1)*3+17) WRITE (NCRTO,100) ND(I),NOCRL 100 FORMAT (I2,R1) RETURN C---- THE UNIT IS THE DAMAGE REPORT ITSELF 1000 CALL POSIT(8,16) IF (ND(7) .GT. 0) GO TO 2000 C---- THE REPORT CAME BACK UP WRITE (NCRTO,1200) (ND(J),J=1,6),NOCRL 1200 FORMAT (6I3,R1) RETURN C---- THE REPORT WENT DOWN 2000 WRITE(NCRTO ,2200) NOCRL 2200 FORMAT (6(" **"),R1) RETURN END CUPDAS-MAIN SUBROUTINE UPDAS(I,J) C---- UPDAS UPDATES SECTOR (I,J) OF THE SR SCAN C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED CALL POSIT (I,(J-1)*2+1 ) WRITE (NCRTO,10) MARKE(NSEC(I,J)),NOCRL 10 FORMAT (2R1) RETURN END CEOF-MAIN SUBROUTINE EOF C---- EOF ERASES THE SCREEN FROM PRESENT CURSOR POSITION C---- NOTE THAT EOF FOR MINIBEE ERASES ALL OF CURRENT LINE TO EOF C---- TO THE END OF THE SCREEN. C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED IF (I2600.EQ.1) GO TO 20 WRITE (NCRTO,10) I33,I112,(I0(JL),JL=1,3),NOCRL 10 FORMAT (6R1) RETURN 20 WRITE (NCRTO,10) I112,I112,I112,I112,NOCRL f RETURN END CEOL-MAIN SUBROUTINE EOL C---- EOL ERASES THE CURRENT LINE OF THE SCREEN C---- NOTE THAT EOL FOR MINIBEE ERASES THE ENTIRE CURRENT LINE C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED IF (NCRTI.NE.NCRTO) RETURN IF (I2600.EQ.1) GO TO 20 WRITE (NCRTO,10) I33,I113,NOCRL 10 FORMAT (6R1) RETURN 20 WRITE (NCRTO,10) I113,I113,I113,I113,NOCRL RETURN END CPOSIT-MAIN SUBROUTINE POSIT(I,J) C---- POSITION MOVES THE CURSOR TO ROW I, COLUMN J OF THE SCREEN C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED DIMENSION LOCAT(6) IF (I2600.EQ.1.OR.I2600.EQ.-1) GO TO 500 C---- SET COLUMN LOCATION CALL STR(LOCAT(1),J-1,3) C---- SET ROW LOCATION CALL STR(LOCAT(4),I-1,3) C---- REPLACE ANY BLANKS WITH ZEROS DO 100 K = 1,6 100 IF (LOCAT(K).EQ.40B) LOCAT(K) = 60B WRITE (NCRTO,200) I33,I106,LOCAT,NOCRL 200 FORMAT (9R1) RETURN C---- C---- STANDARD TERMINAL POSITION C---- DATAPOINT CURSOR DOWN 500 I13 = 13B C---- DATAPOINT CURSOR RIGHT I30 = 30B C---- MINIBEE CURSOR DOWN I102 = 102B C---- MINIBEwE CURSOR RIGHT I103 = 103B CALL HOMEU C---- SET COLUMN LOCATION IF (J.EQ.1) GO TO 600 DO 550 K=1,J-1 IF (I2600.EQ.1) WRITE (NCRTO,200) I30,NOCRL IF (I2600.EQ.-1) WRITE (NCRTO,200) I33,I103,NOCRL 550 CONTINUE C---- SET ROW LOCATION 600 IF (I.EQ.1) RETURN DO 650 K=1,I-1 IF (I2600.EQ.1) WRITE (NCRTO,200) I13,NOCRL IF (I2600.EQ.-1) WRITE (NCRTO,200) I33,I102,NOCRL 650 CONTINUE RETURN END CUPDAT-MAIN SUBROUTINE UPDAT(I) C---- UPDAT UPDATES THE STATUS INDICATOR IN LINE I C---- C---- COMMON DECLARATIONS C---- INTEGER COND C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED DIMENSION COND(7,4) DATA COND/40B,104B,117B,103B,113B,105B,104B, 1 40B,40B,107B,122B,105B,105B,116B, 1 40B,131B,105B,114B,114B,117B,127B, 1 40B,40B,40B,40B,122B,105B,104B/ GO TO (1000,2000,3000,4000,5000),I C---- UPDATE TIME INDICATOR 1000 CALL POSIT(1,27) WRITE (NCRTO,1100) LEFT,NDATE,NOCRL 1100 FORMAT (I3,"/",I4,R1) RETURN C---- UPDATE CONDITION 2000 CALL POSIT(2,28) WRITE (NCRTO,2100) (COND(JL,NCOND),JL=1,7),NOCRL 2100 FORMAT (8R1) RETURN C---- UPDATE ENERGY INDICATOR 3000 CALL POSIT(3,31) IERG = ERG WRITE (NCRTO,3100) IERG,NOCRL 3100 FORMAT (I4,R1) RETURN C---- UPDATE TORPEDOES COUNT 4000 CALL POSIT(4,33) WRITE (NCRTO,4100) NTORP,NOCRL 4100 FORMAT (I2,R1) RETURN C---- UPDATE NUMBER OF KLINGONS LEFT 5000 CALL POSIT(5,28 ) WRITE (NCRTO,5100) KLEFT,NOCRL 5100 FORMAT (I3,R1) RETURN END 7ZXTTZCHOMEU-MAIN SUBROUTINE HOMEU C---- HOME UP THE CURSOR C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED WRITE (NCRTO,10) I33,I110,NOCRL 10 FORMAT (3R1) RETURN END CREDOS-MAIN SUBROUTINE REDOS C---- REDOS REDOES THE SR SCAN C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW IF (ND(1) .GT. 0) RETURN DO 1000 I = 1,8 CALL POSIT(I,1) DO 99 J=1,8 JTEMP = NSEC(I,J) 99 WRITE (NCRTO,100) MARKE(JTEMP),NOCRL 100 FORMAT (R1,1X,R1) 1000 CONTINUE RETURN END CSTR-MAIN SUBROUTINE STR(IS,ICON,ICH) C---- THIS ROUTINE IS USED TO CONVERTE AN INTEGER IN CORE C---- TO A STRING OF ASCII CHARACTERS IN R1 FORMAT. C---- CALLING SEQUENCE: C---- CALL STR(IS,ICON,ICH) C---- WHERE "IS" IS THE ADDRESS WHERE THE STRING IS TO BE PUT C---- "ICON" IS THE CONSTANT TO BE CONVERTED C---- "ICH" IS THE # OF CHARACTERS C---- LEADING ZEROS ARE BLANK FILLED BUT THE NUMBER 0 WILL C---- HAVE ONE ZERO CODE MINIMUM C---- MAX ICON IS 32767, MIN = -32767 C---- POSITIVE AND NEGATIVE NUMBERS ARE ACCEPTED DIMENSION IS(6),ICNT(7)  ICNT(1) = 60B DO 3 I=2,7 3 ICNT(I) = 40B NUM = IABS(ICON) C---- IF (NUM.LT.10000) GO TO 11 ICNT(5) = 60B IF (ICON.LT.0) ICNT(6) = 55B 5 NUM = NUM-10000 IF (NUM.LT.0) GO TO 10 ICNT(5) = ICNT(5)+1 GO TO 5 C---- 10 NUM = NUM+10000 11 IF (ICNT(5).NE.40B) ICNT(4) = 60B IF (NUM.LT.1000) GO TO 21 ICNT(4) = 60B IF (ICON.LT.0.AND.ICNT(5).EQ.40B) ICNT(5) = 55B 15 NUM = NUM-1000 IF (NUM.LT.0) GO TO 20 ICNT(4) = ICNT(4)+1 GO TO 15 C---- 20 NUM = NUM+1000 21 IF (ICNT(4).NE.40B) ICNT(3) = 60B IF (NUM.LT.100) GO TO 31 ICNT(3) = 60B IF (ICON.LT.0.AND.ICNT(4).EQ.40B) ICNT(4) = 55B 25 NUM = NUM-100 IF (NUM.LT.0) GO TO 30 ICNT(3) = ICNT(3)+1 GO TO 25 C---- 30 NUM = NUM+100 31 IF (ICNT(3).NE.40B) ICNT(2) = 60B IF (NUM.LT.10) GO TO 41 ICNT(2) = 60B IF (ICON.LT.0.AND.ICNT(3).EQ.40B) ICNT(3) = 55B 35 NUM = NUM-10 IF (NUM.LT.0) GO TO 40 ICNT(2) = ICNT(2)+1 GO TO 35 C---- 40 NUM = NUM+10 41 IF (NUM.LT.1) GO TO 50 IF (ICON.LT.0.AND.ICNT(2).EQ.40B) ICNT(2) = 55B 45 NUM = NUM-1 IF (NUM.LT.0) GO TO 50 ICNT(1) = ICNT(1)+1 GO TO 45 C---- FILL STRING 50 J = 1 ICHN = ICH IF (ICH.LE.6) GO TO 60 ICHE = ICH-6 DO 55 J=1,ICHE 55 IS(J) = 40B ICHE = 6 ICHN = 6 GO TO 62 60 ICHE = ICH IF (ICNT(ICH+1).NE.40B) GO TO 70 62 DO 65 I=1,ICHE IS(J) = ICNT(ICHN-I+1) 65 J = J+1 RETURN C---- FORMAT NOT LARGE ENOUGH 70 DO 75 I=1,ICH 75 IS(I) = 44B RETURN END END$ ASMB,R NAM RAND,7 ENT RAND EXT .ENTR,.PACK * * CALLING SEQUENCE: * * X = RAND(SEED) * * WHERE SEED IS A 32 BIT NUMBER WHICH WILL * CHANGE THE SEQUENCE OF RANDOM * NUMBERS, * * X IS THE RETURNED RANDOM NUMBER * AND 0.0 < X < 1.0. * CONST OCT 16441 OCT 7701 RNDX1 NOP RNDX2 NOP RNDA1 DEC 1490 RNDA2 DEC 3805 RNDC1 NOP RNDC2 NOP PAR NOP * RAND NOP JSB .ENTR DEF PAR * * SEED RNDC1 AND RNDC2 DLD PAR,I SZA CHECK FOR SEED=0 JMP DST DLD CONST DST DST RNDC1 * LDA RNDX1 MPY RNDA2 STA RNDX1 LDA RNDX2 MPY RNDA1 ADA RNDX1 ADA RNDC1 STA RNDX1 CLA,CLE STA EXP LDA RNDX2 MPY RNDA2 ADA RNDC2 SEZ INB RAL,CLE,ERA STA RNDX2 ELB ADB RNDX1 ELB,CLE,ERB STB RNDX1 RAL SWP STA PAR LDA 1 LDB PAR JSB .PACK EXP NOP CPB =D2 RSS JMP RAND,I LDA =B7777 LDB =D-256 JMP RAND,I END ASMB,R NAM LINK,7 ENT LINK,RETRN EXT EXEC,.ENTR * * CALLING SEQUENCE: * * CALL LINK(ISEG) * * WHERE ISEG IS THE ARRAY CONTAINING THE DESIRED SEGMENT * NAME * * LINK SCHEDULES THE SEGMENT AND THE SEGMENT SHOULD THEN RETURN * TO THE MAIN BY A * * CALL RETRN * * WHERE RETRN IS AN ENTRY POINT IN LINK AND RETURNS CONTROL * TO THE ORIGINAL CALLING POINT IN THE MAIN * NAMAD BSS 1 LINK NOP JSB .ENTR GET SEGMENT NAME DEF NAMAD ADDRESS LDA NAMAD STA CALLP STORE IN SEQUENCE BELOW JSB EXEC PROGRAM SEGMENTLOADING DEF *+3 DEF RCODE SEQUENCE CALLP NOP JMP * * RETRN NOP JMP LINK,I RETURN TO MAIN PROGRAM * RCODE DEC 8 END FTN CSTAR1-SEGMENT 1 CTITLE "STARTREK/STAR1 SEGMENT" PROGRAM STAR1(5) C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED C---- THIS SEGMENT CONTAINS SUBROUTINES GENGA(SUB 1) AND PHASE (SUB 2) C---- SUBROUTINE LIMIT IS ALSO CONTINED HERE BUT IS CALLED ONLY C---- BY GENGA C---- LNK1 TELLS WHICH SUBROUTINE TO EXECUTE (EXCLUSIVE OF LIMIT) IF (LNK1.EQ.1) CALL GENGA CALL PHASE C---- DUMMY MAIN CALL CALL STAR END CGENGA-SEGMENT 1/SUB 1 SUBROUTINE GENGA C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED EQUIVALENCE (IGEN1,MINK),(IGEN2,MAXK) C****INITIALIZE: IF (IGEN1.EQ.0) CALL LIMIT(MINK,MAXK) 10 CONTINUE C**** NUMBER OF BASES NBASE = 0 C**** NUMBER OF KLINGONS NKLIN = 0 C**** MINIMUM NUMBER OF MOVES NEEDED TO WIN MIN = 0 C**** GALAXY DO 100 I = 1,8 DO 100 J = 1,8 100 NGAL(I,J) = 0 C**** C**** MAIN GENERATION LOOP C**** 200 DO 300 ICNT = 1,8 DO 300 JCNT = 1,8 I = ICNT J = JCNT IF (MINK.GE.64) GO TO 210 I = MIN1(RAND(SEED)*8.+1.,8.) J = MIN1(RAND(SEED)*8.+1.,8.) C**** IF QUAD EMPTY THEN PROCESS (FOR SUBSEQUENT PASSES) 210 IF (NGAL(I,J) .EQ. 0) GO TO 230 C**** BYPASS IF ALREADY HAS KLINGONS (VALID ONLY FOR SUBSEQUENT PASSES) IF (NGAL(I,J) .LT. -100) GO TO 3e00 C**** !!! GENERATE !!! 230 K = 0 X = RAND(SEED)*64. IF (X .LT. .0255) K = K + 1 IF (X .LT. .070) K = K + 1 IF (X .LT. .188) K = K + 1 IF (X .LT. .505) K = K + 1 IF (X .LT. 1.41) K = K + 1 IF (X .LT. 3.74) K = K + 1 IF (X .LT. 10.3) K = K + 1 IF (X .LT. 20.) K = K + 1 C**** CHECK IF MAXIMUM WILL BE EXCEEDED IF (NKLIN + K .GT. MAXK) GO TO 400 NKLIN = NKLIN + K C**** GENERATE BASES IF (NGAL(I,J) .EQ. 0) GO TO 250 C**** SECOND PASS - CHECK IF ALREADY A BASE IN QUADRANT IF (MOD(NGAL(I,J)/10,2) .EQ. 0) GO TO 250 C**** ALREADY HAS BASE N = 1 GO TO 290 250 N = 0 X = RAND(SEED) IF (X .LT. .96) GOTO 290 N = 1 NBASE = NBASE + 1 290 CONTINUE NS = MIN1(RAND(SEED)*8.+1.,8.) C**** BRING IT ALL TOGETHER NGAL(I,J) = -(100*K + 10*N + NS) IF (K .GT. 0) MIN = MIN + 1 300 CONTINUE C**** CHECK IF MINUMUM MET 400 IF (NKLIN .GE.MINK) GO TO 500 IF (MIN .LT. 64) GO TO 200 WRITE (NCRTI,410) NKLIN,NOCRL 410 FORMAT (/" ONLY ABLE TO GENERATE",I6" KLINGONS -- OK? ",R1) READ(NCRTI,420) IREPL(1) 420 FORMAT (R1) C*** CHECK FOR "Y" AND 171B IF (IREPL(1).EQ.131B) GO TO 500 IF (IREPL(1).EQ.171B) GO TO 500 425 CALL LIMIT(MINK,MAXK) GO TO 10 C**** LOCATE ENTERPRISE 500 NQX = MIN1(RAND(SEED)*8.+1.,8.) NQY = MIN1(RAND(SEED)*8.+1.,8.) IF (NBASE .GT. 0) GO TO 590 C**** MUST BE AT LEAST 1 BASE I = MIN1(RAND(SEED)*8.+1.,8.) J = MIN1(RAND(SEED)*8.+1.,8.) NBASE = 1 NGAL(I,J) = NGAL(I,J) - 10 590 KLEFT = NKLIN C**** FILL ANY EMPTY QUADRANTS DO 600 I = 1,8 DO 600 J = 1,8 IF (NGAL(I,J) .EQ. 0) NGAL(I,J) = -MIN1(RAND(SEED)*10.+1.,8.) 600 CONTINUE CALL RETRN END CPHASE-SEGMENT 1/SUB 2 SUBROUTINE PHASE C---- PHASER FIRES PHASERS AT THE KLINGONS DIMENSION KDEAD(8,2) C---- C---- ΊCOMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED IF (ND(4) .EQ. 0) GO TO 100 CALL EOL WRITE(NCRTO ,10) NOCRL 10 FORMAT(" PHASERS DOWN",R1) CALL RETRN 100 CALL POSIT(12,1) CALL EOF WRITE(NCRTI ,101) NOCRL 101 FORMAT (" FIRE? ",R1) AMT = 1.E6 READ(NCRTI ,*) AMT IF (AMT .LE. 0.) CALL RETRN IF (AMT .GT. ERG) GO TO 100 C---- MAIN FIRE LOOP AIM(1) = 3. AIM(3) = AMT AIM(4) = AMT*1.5 KD = 1 CALL POSIT(15,1) DO 1900 K = 1,8 C---- CHECK IF KLINGON AT THIS LOCATION IF (KLOC(K,3) .EQ. 0) GO TO 1900 HIT = AMT * (2. + RAND(SEED)) / 1 SQRT(FLOAT( (NSX-KLOC(K,1))**2 + (NSY-KLOC(K,2))**2 )) KLOC(K,3) = MAX1(KLOC(K,3)-HIT, 0.) IHIT = HIT IF (ND(1) .EQ. 0) GO TO 1000 IF (KLOC(K,3) .EQ. 0) GO TO 700 C---- SR SCAN DOWN AND KLINGON SURVIVES WRITE(NCRTO ,200) IHIT,KLOC(K,3) 200 FORMAT(" HIT ",I6," @ ? LEFT ",I3) GO TO 1900 C---- SR SCAN DOWN AND KLINGON DEAD 700 WRITE(NCRTO ,701) I33,I137,I60,I33,I137,I63 701 FORMAT (2X,3R1," KILL "3R1," @ ?") KLEFT = KLEFT - 1 NGAL(NQX,NQY) = NGAL(NQX,NQY) - 100 KDEAD(KD,1) = KLOC(K,1) KDEAD(KD,2) = KLOC(K,2) KD = KD + 1 GO TO 1900 1000 IF (KLOC(K,3) .EQ. 0) GO TO 1700 C---- SR SCAN UP AND KLINGON SURVIVES WRITE(NCRTO ,1200) IHIT,(KLOC(K,J),J=1,3) 1200 FORMAT(" HIT ",I6," @ ",I1,"-",I1," LEFT ",I3) GO TO 1900 C---- SR SCAN UP AND KLINGON DEAD 1700 WRITE(NCRTO,1701) I33,I137,I60,I33,I137,I63,6PKLOC(K,1),KLOC(K,2) 1701 FORMAT (2X,3R1," KILL ",3R1," @ ",I1,"-",I1) KLEFT = KLEFT - 1 NGAL(NQX,NQY) = NGAL(NQX,NQY) - 100 KDEAD(KD,1) = KLOC(K,1) KDEAD(KD,2) = KLOC(K,2) KD = KD + 1 1900 CONTINUE C---- PAUSE IF ANY KLINGONS SURVIVES 2000 IF (NGAL(NQX,NQY) .LT. 100) GO TO 2200 CALL POSIT(11,20) WRITE(NCRTO ,2100) NOCRL 2100 FORMAT (" HIT ANY KEY AND TO CONTINUE: ",R1) READ (NCRTI,*) IREPL(1) C---- DISPOSE OF DEAD KLINGONS 2200 IF (KD .EQ. 1) GO TO 2510 DO 2500 K = 1,KD-1 NSEC(KDEAD(K,1),KDEAD(K,2)) = 1 IF (ND(1) .EQ. 0) CALL UPDAS(KDEAD(K,1),KDEAD(K,2)) 2500 CONTINUE 2510 CONTINUE C---- UPDATE STATUS IF (NGAL(NQX,NQY) .GE. 100) GO TO 2700 C---- ALL DEAD; CHANGE STATUS IF NOT DOCKED IF (NCOND .EQ. 1) GO TO 3000 NCOND = 2 ERG = ERG - AMT C---- IF ERG IS LESS THAN 300 THEN CONDITION IS YELLOW RATHER C---- THAN GREEN IF (ERG .LT. 300.) NCOND = 3 C---- UPDATE ENERGY LEVEL CALL UPDAT(2) IF (NCOND .LT. 3) CALL BLINC(0) IF (NCOND .GT. 2) CALL BLINC(1) CALL UPDAT(3) GO TO 3000 C---- ELSE NOT ALL DEAD 2700 IF (NCOND .EQ. 1) GO TO 3000 ERG = ERG - AMT C---- UPDATE ENERGY LEVEL CALL UPDAT(3) C---- UPDATE NUMBER OF KLINGONS LEFT 3000 CALL UPDAT(5) C---- UPDATE LR SCAN CALL UPDAL(NQX,NQY) IF (KLEFT .GT. 0) GO TO 4000 CALL WIN CALL RETRN 4000 CONTINUE IF (NCOND .NE. 4) CALL RETRN C---- SURVIVORS GET TO FIRE BACK CALL ATTAC IF (ERG .LT. 0.) CALL LOST CALL RETRN END CLIMIT-SEGMENT 1/SUB 3 SUBROUTINE LIMIT(MINK,MAXK) C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8)}x,NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED 10 WRITE (NCRTI ,20) NOCRL 20 FORMAT (/1X/1X/1X/1X/" STARTREK: JML11.11.74A"/ 1 " NUMBER OF KLINGONS: MINIMUM,MAXIMUM? ",R1) MINK=1 MAXK=70 READ(NCRTI ,*) MINK,MAXK IF (MINK .GT. MAXK) GO TO 10 WRITE (NCRTI,30) NOCRL 30 FORMAT (/" ENTER TYPE OF OUTPUT TERMINAL:"// 1 10X"00 OR DP FOR HP2600"/ 2 10X"15 OR MB FOR HP2615"/ 3 4X"16 OR 40 OR SB FOR HP2616 OR HP2640"// 4 " TYPE? ",R1) READ (NCRTI,35) IREPL(1) 35 FORMAT (A2) C---- I2600 = 1 FOR HP2600 DATAPOINT C---- I2600 =-1 FOR HP2615 MINIBEE C---- I2600 = 0 FOR HP2616 OR HP2640 SUPERBEE IF (IREPL(1).EQ.2H00.OR.IREPL(1).EQ.2HDP) I2600 = 1 IF (IREPL(1).EQ.2H15.OR.IREPL(1).EQ.2HMB) I2600 = -1 IF (IREPL(1).EQ.2H16.OR.IREPL(1).EQ.2H40.OR.IREPL(1).EQ.2HSB) 1 I260 = 0 IF (I2600.NE.1.AND.I2600.NE.-1) RETURN C---- TERMINAL IS HP2600 DATAPOINT OR MINIBEE C---- NULL VIDEO CONTROL CODES I60 = 0 I62 = 0 I63 = 0 I106 = 0 I137 = 0 IF (I2600.NE.1) RETURN C---- TERMINAL IS DATAPOINT C---- SET CURSOR CONTROL CODES FOR DATAPOINT I110 = 35B I112 = 37B I113 = 36B RETURN END END$ FTN CSTAR2-SEGMENT 2 CTITLE "STARTREK/STAR2 SEGMENT" CREDO PROGRAM STAR2(5) C---- REDO REDOES THE ENTIRE SCREEN LOGICAL ONC,OND C---- C---- COMMON DECLARATIONS C---- INTEGER COND,S C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),'NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED,ONC,OND DIMENSION S(72),COND(7,4) COND(1,1) = 40B COND(2,1) = 104B COND(3,1) = 117B COND(4,1) = 103B COND(5,1) = 113B COND(6,1) = 105B COND(7,1) = 104B C---- COND(1,2) = 40B COND(2,2) = 40B COND(3,2) = 107B COND(4,2) = 122B COND(5,2) = 105B COND(6,2) = 105B COND(7,2) = 116B C---- COND(1,3) = 40B COND(2,3) = 131B COND(3,3) = 105B COND(4,3) = 114B COND(5,3) = 114B COND(6,3) = 117B COND(7,3) = 127B C---- COND(1,4) = 40B COND(2,4) = 40B COND(3,4) = 40B COND(4,4) = 40B COND(5,4) = 122B COND(6,4) = 105B COND(7,4) = 104B CALL HOMEU CALL EOF ONC = .FALSE. OND = .FALSE. C---- MAIN REDO LOOP DO 9900 I = 1,10 C---- FILL LINE WITH BLANKS DO 999 JL = 1,72 999 S(JL) = 40B IF (I .GT. 8) GO TO 7000 C---- FROM HERE TO LINE 1000 BUILDS LINE I OF THE SR SCAN IF (ND(1) .GT. 0) GO TO 1010 DO 1000 J = 1,8 1000 S((J-1)*2+1) = MARKE(NSEC(I,J)) 1010 CONTINUE C---- FROM HERE TO 2000 BUILDS LINE I OF THE STATUS REPORT IF (I .NE. 1) GO TO 1200 C---- PRINT "STARDATE" S(17) = 123B S(18) = 124B S(19) = 101B S(20) = 122B S(21) = 104B S(22) = 101B S(23) = 124B S(24) = 105B CALL STR(S(27),LEFT,3) S(30) = 57B CALL STR(S(31),NDATE,4) GO TO 2000 1200 IF (I .NE. 2) GO TO 1300 C---- PRINT "CONDITION" S(17) = 103B S(18) = 117B S(19) = 116B S(20) = 104B S(21) = 111B S(22) = 124B S(23) = 111B S(24) = 117B S(25) = 116B DO 1250 JL=1,7 1250 S(28+JL-1) = COND(JL,NCOND) GO TO 2000 1300 IF (I .NE. 3) GO TO 1400 C---- PRINT "ENERGY" S(17) = 105B S(18) = 116B S(19) = 105B S(20) = 122B S(21) = 107B S(22) = 131B CALL STR(S(31),IFIX(ERG),4) GO TO 2000 1400 IF (I .NE. 4) GO TO 1500 C---- PRINT "TORPEDOES" S(17) = 124B S(18) = 117B S(19) = 122B S(20) = 120B S(21) = 105B S(22) = 104B S(23) = 117B S(24) = 105B S(25) = 123B CALL STR(S(33),NTORP,2) GO TO 2000 1500 IF (I .NE. 5) GO TO 1600 C---- PRINT "KLINGONS" S(17) = 113B S(18) = 114B S(19) = 111B S(20) = 116B S(21) = 107B S(22) = 117B S(23) = 116B S(24) = 123B CALL STR(S(28),KLEFT,3) S(31) = 57B CALL STR(S(32),NKLIN,3) GO TO 2000 1600 IF (I .NE. 6) GO TO 1700 C---- PRINT "----- DAMAGE -----" DO 1605 JL=1,18 1605 S(17+JL-1) = 55B S(22) = 40B S(23) = 104B S(24) = 101B S(25) = 115B S(26) = 101B S(27) = 107B S(28) = 105B S(29) = 40B GO TO 2000 1700 IF (I .NE. 7) GO TO 1800 C---- PRINT "SR LR WP PH TP AM" S(17) = 123B S(18) = 122B S(20) = 114B S(21) = 122B S(23) = 127B S(24) = 120B S(26) = 120B S(27) = 110B S(29) = 124B S(30) = 120B S(32) = 101B S(33) = 115B GO TO 2000 1800 IF (ND(7) .GT. 0) GO TO 1850 C---- DAMAGE REPORT IS UP DO 1820 J = 1,6 1820 CALL STR(S((J-1)*3+17),ND(J),2) GO TO 2000 C---- DAMAGE REPORT IS DOWN 1850 DO 1880 J = 17,34,3 1880 S(J) = 52B S(J+1) = 52B 2000 CONTINUE C---- FROM HERE TO LINE 5000 BUILDS LINE I OF LR SCAN CALL STR(S(36),I,1) S(37) = 52B DO 3000 J = 1,8 IF (NGAL(I,J) .LT. 0) GO TO 2700 C---- QUADRANT HAS BEEN SCANNED CALL STR(S((J-1)*4+38),NGAL(I,J),4) GO TO 3000 C---- QUADRANT HAS NOT BEEN SCANNED 2700 S((J-1)*4+38) = 40B S((J-1)*4+39) = 40B S((J-1)*4+40) = 40B S((J-1)*4+41) = 56B 3000 CONTINUE IF (NQX .NE. I) GO TO 4000 C---- MARK QUADRxB@ TO CONTINUE: ",R1) READ (NCRTI,*) IREPL(1) 4050 DO 4100 I = -1,1 IQ = NSX + I IQ = MIN0(MAX0(IQ,1),8) DO 4100 J = -1,1 JQ = NSY + J JQ = MIN0(MAX0(JQ,1),8) IF (NSEC(IQ,JQ) .EQ. 4) GO TO 4200 4100 CONTINUE GO TO 4500 C---- CONDITION IS DOCKED 4200 NCOND = 1 GO TO 5000 4500 IF (NGAL(NQX,NQY)/100 .EQ. 0) GO TO 4600 C---- CONDITION IS RED NCOND = 4 GO TO 5000 4600 IF (ERG .LT. 300.) GO TO 4700 C---- CONDITION IS GREEN NCOND = 2 GO TO 5000 C---- CONDITION IS YELLOW 4700 NCOND = 3 5000 CONTINUE C---- C---- FROM HERE TO 6000 IS TO UPDATE GAME STATUS C---- IF (REDO .EQ. 1 .AND. ND(1) .EQ. 0) CALL REDOS IF (NCOND .EQ. 1) GO TO 5100 C---- NOT DOCKED ERG = ERG - AIM(4) IF (ERG .LT. 300. .AND. NCOND .NE. 4) NCOND = 3 GO TO 5200 5100 ERG = 3000. NTORP = 10 5200 CONTINUE C---- UPDATE TIME LEFT = LEFT - 1 NDATE = NDATE + 1 *($C---- UPDATE STATUS DISPLAY CALL UPDAT(1) CALL UPDAT(2) IF (NCOND .LT. 3) CALL BLINC(0) IF (NCOND .GT. 2) CALL BLINC(1) CALL UPDAT(3) IF (NCOND .EQ. 1) CALL UPDAT(4) C---- UPDATE LR SCAN IF (LRIND.EQ.1.AND.INQUAD.EQ.1) GO TO 5500 IF (INQUAD .EQ. 1) GO TO 6100 CALL UPDAL(NQXOLD,NQYOLD) CALL UPDAL(NQX,NQY) 5500 IF (ND(2) .GT. 0) GO TO 6100 DO 6000 I = -1,1 IQ = NQX + I IQ = MIN0(MAX0(IQ,1),8) DO 6000 J = -1,1 JQ = NQY + J JQ = MIN0(MAX0(JQ,1),8) IF (NGAL(IQ,JQ) .GE. 0) GO TO 6000 NGAL(IQ,JQ) = IABS(NGAL(IQ,JQ)) CALL UPDAL(IQ,JQ) 6000 CONTINUE 6100 CONTINUE C---- C---- ANY KLINGONS GET FIRST SHOT C---- IF (NCOND .NE. 4) GO TO 7000 CALL ATTAC 7000 IF (ERG .GE. 0.) CALL RETRN CALL LOST CALL RETRN C---- DUMMY CALL TO MAIN 77777 CALL STAR END END$ *FTN CSTAR5-SEGMENT 5 CTITLE "STARTREK/STAR5 SEGMENT" PROGRAM STAR5(5) C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED C---- THIS SEGMENT CONTAINS SUBROUTINES WARPA (SUB 1), WARPS (SUB 2), C---- REPAI (SUB 3), AND WARPQ (SUB 4) C---- LNK5 TELLS WHICH SUBROUTINE TO EXECUTE GO TO (1,2,3,4),LNK5 1 CALL WARPA 2 CALL WARPS 3 CALL REPAI 4 CALL WARPQ C---- DUMMY CALL TO MAIN CALL STAR END CWARPA-SEGMENT 5/SUB 1 SUBROUTINE WARPA C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,A(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED EQUIVALENCE (AIM,WARP1),(WARP,WARP2) PI4 = .7853982 C**** NOCRL SUPPRESSES CARRIAGE RETURN / LINE FEED CALL EOF WRITE (NCRTI ,100) NOCRL 100 FORMAT (" AIM,WARP? ",R1) AIM = 9. WARP=12. READ (NCRTI ,*) AIM,WARP C**** NEGATIVE VALUES CANCELS WARP 200 IF (AIM .LT. 0. .OR. WARP .LT. 0.) CALL RETRN C**** CHECK IF AIM VALID IF (AIM .GE. 1. .AND. AIM .LT. 9.) GO TO 400 CALL POSIT(13,1) CALL EOF WRITE (NCRTI ,300) NOCRL 300 FORMAT (" AIM? ",R1) AIM=9. READ(NCRTI ,*)AIM GO TO 200 C**** CONVERT AIM TO RADIANS, RWARP TO SECTOR COUNT 400 AIM = (AIM - 1.) * PI4 490 IF (WARP .GE. .125 .AND. WARP .LE. 10.) GO TO 800 CALL POSIT(14,1) CALL EOF WRITE (NCRTI ,500) NOCRL 500 FORMAT (" WARP? ",R1) WARP=12. READ (NCRTI ,*)WARP IF (WARP .LT. 0.) CALL RETRN GO TO 490 800 WARP = WARP*8. C---- SECEDULE WARPE SEGMENT (SEG 4) DIRECTLY - NO RETURN EXPECTED CALL EXEC(8,ISEG4) END CWARPS-SEGMENT 5/SUB 2 SUBROUTINE WARPS C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,A(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED EQUIVALENCE (AIM,WARP1),(WARP,WARP2) C**** NOCRL SUPPRESSES CARRIAGE RETURN AND LINE FEED PI2 = 1.570796327 IF (ND(1) .EQ. 0) GO TO 20 CALL EOL WRITE (NCRTO ,10) NOCRL 10 FORMAT(" SR SCAN DOWN -- CAN'T AIM",R1) CALL RETRN 20 IF (ND(6) .EQ. 0) GO TO 100 CALL EOL WRITE (NCRTO ,50) NOCRL 50 FORMAT(" AIM AID DOWN",R1) CALL RETRN 100 CALL POSIT(12,1) CALL EOF WRITE (NCRTI ,101) NOCRL 101 FORMAT (" SECTOR CO-ORDS? ",R1) S1 = 9. S2 = 9. READ (NCRTI ,*) S1,S2 C**** IF S1 OR S2 NEGATIVE CANCELS WARP IF (S1 .LT. 0. .OR. S2 .LT. 0.) CALL RETRN C**** CHECK INPUT FOR VALIDITY IF (S1 .LT. 1. .OR. S2 .LT. 1..OR. 1 S1 .GE. 9. .OR. S2 .GE. 9.) GO TO 100 AIM = ATAN4(NSX,NSY,S1,S2) IF (AIM .LT. 0.) CALL RETRN WARP = SQRT((NSY-S2)**2 + (S1-NSX)**2) + .5 C---- SCHEDULE WARPE SEGMENT (SEG 4) DIRECTLY - NO RETURN EXPECTED CALL EXEC(8,ISEG4) END CREPAI-SEGMENT 5/SUB 3 SUBROUTINE REPAI INTEGER CODES,CODEM C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED DIMENSION CODES(8),CODEM(4,6) CODES(1) = 123B CODES(2) = 114B CODES(3) = 127B CODES(4) = 120B CODES(5) = 124B CODES(6) = 101B CODES(7) = 103B CODES(8) = 55B CALL CODE WRITE (CODEM,77) 77 FORMAT ("SR SCAN LR SCAN WARP PHASERS TORPEDO AIM AID ") C**** CHECK IF CAPABLE OF REPAIRS IF (ND(7) .EQ. 0) GO TO 200 CALL EOL WRITE (NCRTO ,100) NOCRL 100 FORMAT(" DOWN",R1) CALL RETRN 200 IF (NCOND .LT. 3) GO TO 275 CALL EOL WRITE (NCRTO ,250) NOCRL 250 FORMAT(" BAD STATE",R1) CALL RETRN C**** GET DEVICE CODE 275 CALL EOF 300 CALL POSIT (12,1) CALL EOL WRITE (NCRTI ,310) NOCRL 310 FORMAT (" REPAIR WHAT? ",R1) READ (NCRTI,320) IREPL(1) 320 FORMAT (R1) C**** CHECK DEVICE CODE GOTTEN C**** CHECK FOR "C" IF (IREPL(1).NE.CODES(7)) GO TO 400 CALL POSIT(17,1) CALL EOF WRITE (NCRTO,350) 350 FORMAT ( 1 "S -- SR SCAN L -- LR SCAN"/ 2 "W -- WARP P -- PHASERS"/ 3 "T -- TORPEDO TUBES A -- AIM AID"/ 4 "C -- PRINT VALID CODES - -- CANCEL") GO TO 300 C*** CHECK FOR "-" 400 IF (IREPL(1).EQ.CODES(8)) CALL RETRN DO 500 I = 1,6 IF (CODES(I).EQ.IREPL(1)) GO TO 600 500 CONTINUE CALL EOL WRITE (NCRTO ,540) NOCRL 540 FORMAT(" FOR A LIST OF CORRECT CODES TYPE 'C'",R1) ¿GO TO 300 C**** DO THE REPAIRS 600 CALL EOF IF (ND(I) .EQ. 0) GO TO 650 RERG = ND(I) * 200 IF (RERG .LE. ERG) GO TO 700 WRITE (NCRTO ,620) 620 FORMAT(" NOT ENOUGH ENERGY") CALL RETRN 650 WRITE (NCRTO,651) (CODEM(JL,I),JL=1,4) 651 FORMAT (1X,4A2," OK") CALL RETRN C**** DOUBLE CHECK 700 WRITE (NCRTI,710) RERG,(CODEM(JL,I),JL=1,4),NOCRL 710 FORMAT (" NEED",I5," ENERGY UNITS TO REPAIR ",4A2,", OK? ",R1) READ (NCRTI,320) IREPL(1) C*** CHECK FOR "Y" IF (IREPL(1).NE.131B) CALL RETRN C**** REPAIR AND UPDATE ND(I) = 0 CALL UPDAD(I) IF (I .NE. 1) GO TO 850 C---- SR SCAN REPAIRED CALL REDOS GO TO 900 850 IF (I .NE. 2) GO TO 900 C---- LR SCAN REPAIRED DO 880 J = -1,1 JQ = MIN0(MAX0(NQX+J,1),8) DO 880 K = -1,1 KQ = MIN0(MAX0(NQY+K,1),8) IF (NGAL(JQ,KQ) .GE. 0) GO TO 880 NGAL(JQ,KQ) = IABS(NGAL(JQ,KQ)) CALL UPDAL(JQ,KQ) 880 CONTINUE 900 DO 920 J = 1,7 IF (ND(J) .NE. 0) GO TO 950 920 CONTINUE C---- EVERYTHING UP, UNBLINK DAMAGE LABEL CALL BLIND(0) 950 IF (NCOND .EQ. 1) CALL RETRN ERG = ERG - RERG CALL UPDAT(3) IF (ERG .LT. 300.) GO TO 1000 CALL RETRN 1000 NCOND = 3 CALL UPDAT(2) CALL BLINC(1) CALL RETRN END CWARPQ-SEGMENT 5/SUB 4 SUBROUTINE WARPQ C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,A(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED EQUIVALENCE (AIM,WARP1),(WARP,WARP2) PI2 = 1.570796327 IF (ND(6) .EQ. 0) GO TO 100 CALL EOL WRITE (NCRTO ,50) NOCRL 50 FORMAT(" AIM AID DOWN",R1) CALL RETRN C**** NOCRL SUPPRESSES CARRIAGE RETURN / LINE FEED 100 CALL POSIT(12,1) CALL EOF WRITE (NCRTI ,101) NOCRL 101 FORMAT (" QUADRANT CO-ORDS? ",R1) Q1 = 9. Q2 = 9. READ (NCRTI ,*) Q1,Q2 C**** IF Q1 OR Q2 NEGATIVE CANCEL WARP IF (Q1 .LT. 0. .OR. Q2 .LT. 0.) CALL RETRN C**** CHECK FOR VALID INPUT IF (Q1 .LT. 1. .OR. Q2 .LT. 1. .OR. 1 Q2 .GE. 9. .OR. Q1 .GE. 9. ) GO TO 100 AIM = ATAN4(NQX,NQY,Q1,Q2) IF (AIM .LT. 0.) CALL RETRN WARP = SQRT( (NQY-Q2)**2 + (Q1-NQX)**2 ) * 8. C---- SCHEDULE WARPE SEGMENT (SEG 4) DIRECTLY - NO RETURN EXPECTED CALL EXEC(8,ISEG4) END END$ FTN CSTAR6-SEGMENT 6 CTITLE "STARTREK/STAR6 SEGMENT" PROGRAM STAR6(5) C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED C---- THIS SEGMENT CONTAINS SUBROUTINES XECUT (SUB 1), TORPA (SUB 3), C---- TORPS (SUB 3), AND TORPF (SUB 4) C---- LNK6 TELLS WHICH SUBROUTINE TO EXECUTE GO TO (1,2,3,4),LNK6 1 CALL XECUT 2 CALL TORPA 3 CALL TORPS 4 CALL TORPF(TORP1) C---- DUMMY CALL TO MAIN CALL STAR END CXECUT-SEGMENT 6/SUB 1 SUBROUTINE XECUT C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED I = AIM(1) + 1. CALL EOL GO TO (100,200,300,900,300,200,900),I 100 WRITE (NCRTO ,101) NOCRL 101 FORMAT(" NO AIM!!!",R1) GO TO 977 C---- SCHEDULE WARPE SEGMENT (SEG 4) DIRECTLY - NO RETURN EXPECTED 200 WARP1 = AIM(2) WARP2 = AIM(3) CALL EXEC(8,ISEG4) 300 IF (ND(5) .EQ. 0) GO TO 320 WRITE (NCRTO ,310) NOCRL 310 FORMAT(" TUBES DOWN",R1) GO TO 977 320 CALL TORPF(AIM(2)) C---- NO RETURN FROM TORPF IS EXPECTED 900 WRITE (NCRTO ,901) NOCRL 901 FORMAT(" AIM NOT EXECUTABLE",R1) 977 CALL RETRN END CTORPA-SEGMENT 6/SUB 2 SUBROUTINE TORPA C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,A(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED PI4 = .7853982 C**** CHECK IF CAN FIRE IF (ND(5) .EQ. 0) GO TO 200 CALL EOL WRITE (NCRTO ,100) NOCRL 100 FORMAT(" DOWN",R1) CALL RETRN 200 IF (NTORP .GT. 0) GO TO 300 CALL EOL WRITE (NCRTO ,210) NOCRL 210 FORMAT(" NO TORPEDOES LEFT !!!",R1) CALL RETRN C**** GET AIM 300 CALL POSIT(12,1) CALL EOF WRITE (NCRTI ,310) NOCRL 310 FORMAT (" AIM? ",R1) AIM = 9. READ (NCRTI ,*) AIM IF (AIM .LT. 0.) CALL RETRN IF (AIM .LT. 1. .OR. AIM .GE. 9.) GO TO 300 AIM = (AIM - 1.) * PI4 CALL TORPF(AIM) C---- NO RETURN FROM TORPF IS EXPECTED END CTORPS-SEGMENT 6/SUB 3 SUBROUTINE TORPS C---- C---- COm7MMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,A(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED PI2 = 1.570796327 CALL EOL IF (ND(6) .EQ. 0) GO TO 90 WRITE (NCRTO ,50) NOCRL 50 FORMAT(" AIM AID DOWN",R1) GO TO 777 C**** CHECK IF CAN FIRE 90 IF (ND(1) .EQ. 0) GO TO 200 WRITE (NCRTO,100) NOCRL 100 FORMAT(" SR DOWN -- CANNOT SIGHT",R1) GO TO 777 200 IF (N D(5) .EQ. 0) GO TO 300 WRITE (NCRTO ,220) NOCRL 220 FORMAT(" TUBES DOWN",R1) GO TO 777 300 IF (NTORP .GT. 0) GO TO 400 WRITE (NCRTO ,330) NOCRL 330 FORMAT(" NO TORPEDOES LEFT !!!",R1) GO TO 777 C**** GET CO-ORDS 400 CALL POSIT(12,1) CALL EOF WRITE (NCRTI ,410) NOCRL 410 FORMAT (" SECTOR CO-ORDS? ",R1) X = 9. Y = 9. READ (NCRTI ,*) X,Y I = X J = Y IF (NSEC(I,J).EQ.2) GO TO 4000 IF (X .LT. 0. .OR. Y .LT. 0.) CALL RETRN IF (X .LT. 1. .OR. X .GE. 9.) GO TO 400 IF (Y .LT.1. .OR. Y .GE. 9.) GO TO 400 AIM = ATAN4(NSX,NSY,X,Y) IF (AIM .LT. 0.) CALL RETRN CALL TORPF(AIM) C---- NO RETURN FROM TORPF EXPECTED C---- ENTERPRISE HIT BY TORPEDO - END GAME BY SELF DISTRUCT 4000 NSEC(I,J) = 1 CALL REDOS NTORP = NTORP-1 CALL UPDAT(4) CALL POSIT(13,1) CALL EOF I61 = 61B IF (I2600.EQ.1.OR.I2600.EQ.-1) I61 = 0 WRITE (NCRTO,4010) I33,I137,I60,I33,I137,I61, 1 I33,I137,I60,I33,I137,I63,NOCRL 4010 FORMAT (3R1,"<<<<< ",3R1," TORPEDO HIT ENTERPRISE " 1 "****** SELF DESTRUCT ",3R1," >>>>>",4R1) CALL LOST 3 C---- EXIT POINT 777 CALL RETRN END CTORPF-SEGMENT 6/SUB 4 SUBROUTINE TORPF(ANGLE) C---- TORPF ACTUALLY FIRES THE TORPEDOES C---- C---- COMMON DECLARATIONS C---- C---- COMMON ISEG1(3),ISEG2(3),ISEG3(3),ISEG4(3),ISEG5(3),ISEG6(3) COMMON LNK1,IGEN1,IGEN2,IAIM1,WARP1,WARP2,LNK5,LNK6,TORP1 COMMON IREPL(5),I0(20),I7,I33,I60,I62,I63,I106,I110,I112,I113,I137 COMMON NOCRL ,NCRTO ,NCRTI ,NGAL(8,8),NSEC(8,8),I2600, 1 NQX,NQY,NSX,NSY,ERG,NTORP,NDATE,LEFT,ND(7), 2 KLOC(8,3),NKLIN,KLEFT,AIM(4),NCOND, 3 MARKE(5),NBASE ,MIN,NSTAR ,LOSTW ,SEED CALL EOF IF (ND(5) .EQ. 0) GO TO 200 WRITE(NCRTO ,100) 100 FORMAT(" TORPEDOES DOWN") CALL RETRN 200 IF (NTORP .GT. 0) GO TO 270 WRITE(NCRTO ,220) 220 FORMAT(" NO MORE TORPEDOES") CALL RETRN C---- INIT LOOP VARIABLES 270 AIM(1) = 2. AIM(2) = ANGLE 300 XINC = -SIN(ANGLE) YINC = COS(ANGLE) IF (ABS(XINC) .LT. .5E-6) XINC = 0. IF (ABS(YINC) .LT. .5E-6) YINC = 0. X = NSX Y = NSY C---- FIRE LOOP 400 X = X + XINC Y = Y + YINC I = X + .5 J = Y + .5 C---- CHECK IF OUT OF QUADRANT IF (I .LT. 1 .OR. I .GT. 8) GO TO 500 IF (J .LT. 1 .OR. J .GT. 8) GO TO 500 GO TO (400,400,1300,1400,1500),NSEC(I,J) C---- MISSED 500 WRITE(NCRTO ,501) 501 FORMAT(" MISSED") I = MIN0(MAX0(I,1),8) J = MIN0(MAX0(J,1),8) IF (NCOND.EQ.1) GO TO 2000 NTORP = NTORP - 1 CALL UPDAT(4) GO TO 2000 C---- GOT KLINGON 1300 WRITE(NCRTO ,1301) I33,I137,I60,I33,I137,I63 1301 FORMAT (3R1" GOT KLINGON "3R1) C---- FIND LOCATION OF DEAD KLINGON IN SR AND UPDATE DO 1340 K = 1,8 IF (KLOC(K,1) .EQ. I .AND. KLOC(K,2) .EQ. J) GO TO 1360 1340 CONTINUE STOP 1 1360 KLOC(K,3) = 0 NSEC(I,J) = 1 IF (ND(1) .EQ. 0) CALL UPDAS(I,J) NGAL(NQX,NQY) = NGAL(NQX,NQY) - 100 IF (NGAL640(NQX,NQY)/100 .GT. 0) GO TO 1380 C---- ALL DEAD IF (NCOND .EQ. 1) GO TO 1380 NCOND = 2 IF (ERG .LT. 300.) NCOND = 3 CALL UPDAT(2) IF (NCOND .NE. 3) CALL BLINC(0) 1380 IF (NCOND .EQ. 1) GO TO 1390 NTORP = NTORP - 1 CALL UPDAT(4) 1390 KLEFT = KLEFT - 1 CALL UPDAT(5) CALL UPDAL(NQX,NQY) GO TO 2000 C---- GOT BASE 1400 WRITE (NCRTO,1406) I33,I137,I60,I33,I137,I63, 1 I33,I137,I62,I33,I137,I63 1406 FORMAT (3R1," GOT BASE ",3R1," --- ",3R1," GREAT SHOT!!! ",3R1) NSEC(I,J) = 1 IF (ND(1) .EQ. 0) CALL UPDAS(I,J) C---- IF DOCKED THEN CHANGE CONDITION IF (NCOND .NE. 1) GO TO 1450 IF (NGAL(NQX,NQY) .GE. 100) GO TO 1420 C---- CONDITION IS GREEN NCOND = 2 GO TO 1430 C---- CONDITION IS RED 1420 NCOND = 4 1430 CALL UPDAT(2) IF (NCOND .EQ. 4) CALL BLINC(1) NTORP = NTORP - 1 CALL UPDAT(4) 1450 CONTINUE NGAL(NQX,NQY) = NGAL(NQX,NQY) - 10 CALL UPDAL(NQX,NQY) GO TO 2000 C---- GOT STAR 1500 WRITE(NCRTO ,1501) 1501 FORMAT(" GOT STAR") NSEC(I,J) = 1 IF (ND(1) .EQ. 0) CALL UPDAS(I,J) IF (NCOND .EQ. 1) GO TO 1900 NTORP = NTORP - 1 CALL UPDAT(4) 1900 NGAL(NQX,NQY) = NGAL(NQX,NQY) - 1 CALL UPDAL(NQX,NQY) 2000 IF (KLEFT .GT. 0) GO TO 3000 CALL WIN CALL RETRN 3000 CONTINUE C---- ANY LIVE KLINGONS IN THE QUADRANT GET TO FIRE BACK IF (NCOND .NE. 4) CALL RETRN CALL ATTAC IF (ERG .LT. 0.) CALL LOST CALL RETRN END END$ v6  ?M 22681-18071 1550 SC 0122 DOS-M UTILITIES PACKAGE              H0101 ASMB,L HED TO PICK THE DATE IN SYSTEM BUFFER JS 2/73 NAM DATE,7 ENT DATE EXT EXEC,ALOC,.ENTR,ERR0 * * SUBROUTINE TO PICK THE DATE IN THE SYSTEM BUFFER * * READ THE SYSTEM BUFFER SECTOR IN A BUFFER IN THE HIGH MEMORY * REQUESTED TO . * TRANSFER THE DATE (WORDS 72-77 OF SYS. BUF.) TO A USER'S BUFFER . * * * * CALLING PROCEDURE (FTN) : * * DIMENSION IARAY(5) * CALL DATE (IARAY) * * IARAY : AT RETURN CONTAIN THE DATE (10 ASCII CHAR.) * * * * ERROR MESSAGE : * * DA 00 : NO PLACE IN MEMORY FOR BUFFER * * * SKP IAR NOP DATE NOP JSB .ENTR DEF IAR * REQUEST A BUFFER FROM JSB ALOC D128 DEC 128 SSA,RSS JMP DA1 LDB A00 LDA ADA JSB ERR0 JSB EXEC DEF *+2 DEF .+6 DA1 STA BUF * READ THE SYSTEM BUFFER GOOD LDA SYSBF AND .377 STA RSECT XOR SYSBF ALF,ALF STA TRACK JSB EXEC DEF *+7 DEF .-1 DEF .+2 BUF DEF * DEF D128 DEF TRACK DEF RSECT * TRANSFER THE DATE DA2 LDA .-5 STA ST1 LDB BUF ADB DEC72 LOOP LDA B,I STA IAR,I ISZ IAR INB ISZ ST1 JMP LOOP JMP DATE,I SPC 5 * CONSTANTS A00 ASC 1,00 ADA ASC 1,DA DEC72 DEC 72 *BUFFERS ST1 NOP RSECT NOP TRACK NOP * EQUIVALENCES A EQU 0 B EQU 1 . EQU 53B .377 EQU 74B SYSBF EQU 115B * #WDS EQU * END ASMB,L HED SET THE SWITCHES 6/72 JS NAM STSWI,7 ENT STSWI EXT .ENTR * *SUBROUTINE TO SET OR RESET ALL OR SINGLE BITS OF THE SW. REG. * * * CALLING PROCEDURE (FTN) : * CALL STSWI(ISWNO,LOGIC) * * TWO CASES : * - ISWNO>=0 : THEN ISWNO IS THE NB. OF THE BIT OF THE SW. REG. * INTO WHICH THE SIGN BIT OF S*HALL BE COPIED * * - ISWNO<0 : THEN THE VALUE OF SHALL BE TRANSFERED * TO THE SWITCH REGISTER . * SPC 10 SWNO NOP VAL NOP STSWI NOP JSB .ENTR DEF SWNO * WICH CASE ? LDB SWNO,I CMB,SSB,RSS JMP OUVAL LIA 1 * FIRST ; ROTATE SW. REG. UNTIL CORRECT SW. IN 'E' ERA INB,SZB JMP *-2 * COPY THE SIGN BIT LDB VAL,I ELB * RESTORE THE CORRECT POSITION LDB SWNO,I CMB ELA INB,SZB JMP *-2 * OUTPUT AND EXIT OTA 1 JMP STSWI,I * SECOND CASE OUVAL LDA VAL,I JMP *-3 * #WDS EQU * END ASMB,L HED UTILITIES FOR WORK IN USER'S DIRECTORY JS 10/73 NAM UDRTR,7 ENT FKILR,NWFIL,SHRTR EXT .ENTR,EXEC,ALOC,ERR0 * * THE SUBROUTINE ERASES A FILE FROM THE DISC DIRECTORY . * IN THE ENTRY OF THE FILE, THE NAME IS CHANGED TO : * CHAR. 1 : SPACE * 2 : NOP (0) * 3 : SPACE * 4 : SPACE * 5 : SPACE * AND THE FILE IS PUT TEMPORARY . * AT NEXT ":PU" OR ":EJ" DIRECTIVE, THE FILE SHALL BE PURGED . * * * THE SUBROUTINE CAN BE USED TO CREATE A NEW DIRECTORY ENTRY * AND PUT ASIDE SPACE FOR THIS NEW FILE. ONLY THE NON-SYSTEM * FILES CAN BE SO CREATED AND THEY ARE LEFT TEMPORARY. * AN OPTION IS PROVIDED TO TAKE ALL THE SPACE AVAILABLE ON DISC. * * * THE SUBROUTINE CAN BE USED TO SHORTEN THE LAST FILE OF * A DISC AND TO SPARE SPACE AND ALSO TO CHANGE THE TYPE. * AN OPTION IS PROVIDED TO CLEAR THE "P" BIT. * * * THESE SUBROUTINES USE A BUFFER OF 128 WORDS REQUESTED FROM * IN THE UNUSED PART OF MEMORY. * *********************************************************************** *********** FOR USE ONLY WITH VERSION F OF DOS-M ******************** ************************************************************************* * * * CALLING PROCEDURE (FTN) : * 9 * 1) FKILR * DIMENSION NAM(3) * CALL FKILR(NAM) * * NAM : NAME OF THE FILE OF WHICH ENTRY SHALL BE ERASED. * * 2) NWFIL * DIMENSION NAM(3) * CALL NWFIL (NAM,ITYP,ILENG) * * NAM : NAME OF THE FILE TO BE CREATED * ITYP : REQUESTED FILE TYPE (6 TO 11) * ILENG : IF POS. : FILE LENGTH REQUESTED (SECTORS) * IF NEG. : ALL THE AVAILABLE SPACE IS REQUESTED. * THEN AT RETURN GIVE THE FILE LENGTH. * * * 3) SHRTR * DIMENSION NAM(3) * CALL SHRTR (NAM,ITYP,ILENG) * * NAM : NAME OF THE FILE TO BE SHORTENED WHICH MUST BE THE LAST * IN DIRECTORY. * ITYP : REQUESTED FILE NEW TYPE (6 TO 11). * ILENG : IN ABSOLUTE VALUE : NEW LENGTH OF THE FILE (MUST BE * SMALLER OR EQUAL TO THE ACTUAL LENGTH) * IF NEG. : CLEAR THE TEMPORARY BIT. * IS INTENDED FOR USE ON FILES WHICH HAVE BEEN CREATED BY * . * * * * ERROR MESSAGES : * * DR 00 : NO PLACE FOR THE BUFFER * DR 01 : ILLEGAL ELEMENT IN CALL (TYPE,NAME OR LENGTH) * DR 02 : NO FILE FOUND WITH THIS NAME. * DR 03 : DUPLICATE FILE NAME. * DR 04 : DIRECTORY OR DISC OVERFLOW. * * * IN EACH CASE, PROGRAM ABORTED. * * SKP NAM NOP FKILR NOP JSB .ENTR DEF NAM * PICK THE BUFFER, SEARCH THE FILE NAME, READ THE FIRST SECTOR * OF DIRECTORY. LDA NAM JSB INI SZA,RSS JMP ERNAM * COMPARE THE CHARS. OF THE NAME. FK.1 LDA .NAM STA NAM * 1 AND 2 LDA NAM,I CPA B,I INB,RSS JMP NOT1 ISZ NAM * 3 AND 4 LDA NAM,I CPA B,I INB,RSS JMP NOT2 ISZ NAM * 5 LDA NAM,I AND .1774 STA NAM LDA B,I AND .1774 CPA NAM JMP FOUND * NOT EQUAL, TRY THE NEXT ONE * IF NO MORE, ERROR NOT3 JSB FETCH JMP ERNAM JMP FK.1 NOT1 INB NOT2 INB JMP NOT3 * OK, KEEP THE TYPE, PUT THEi TEMPORARY BIT AND CHANGE THE NAME FOUND XOR B,I IOR Q1 STA B,I ADB .-1 LDA SPSP STA B,I ADB .-1 LDA USP STA B,I * RE-WRITE THE SECTOR ON DISC, CLEAR THE FILE TABLE VALIDITY * FLAG AND EXIT. JSB DRWRT CLA LDB AFLFG JSB BPSTR JMP FKILR,I SKP NAM1 NOP ITYP NOP ILENG NOP NWFIL NOP JSB .ENTR DEF NAM1 LDA NAM1 JSB INI SZA JMP ERDUP * FIND THE END OF DIRECTORY AND CHECK THAT THERE IS PLACE FOR * A NEW ENTRY. JSB DIREN LDA BUFND CMA,INA ADA B ADA B ADA .+5 STB ST1 SSA JMP *+4 LDA RSECT INA CPA SECTR JMP EROVF * CHECK THAT THE FIRST CHAR. OF IS NOT A DIGIT. LDA NAM1,I SZA,RSS JMP ERILG AND .1774 ALF,ALF XOR B60 ADA .-10 SSA JMP ERILG * CHECK THAT IS IN THE RANGE 6 TO 11 LDA ITYP,I JSB TYP * FIND THE AMOUNT OF SPACE AVAILABLE. LDA UDNTS AND .377 STA ST2 XOR UDNTS ALF,ALF MPY SECTR ADA ST2 CMA,INA STA ST2 CLA LDB CUDSC CPB SYSSC LDA JBINC CPA JBINS CLA ALF,ALF AND .377 ADA .-1 SSA LDA DISCO AND .377 ADA .+1 MPY SECTR ADA ST2 SSA JMP EROVF * IF NEG. REPLACE IT BY AMOUNT AVAILABLE * CHECK FOR DISC OVERFLOW. LDB ILENG,I SSB LDB A STB ILENG,I SZB,RSS JMP ERILG CMB,INB ADB A SSB JMP EROVF * DISABLE THE INTERRUPT CAPABILITY FOR OPERATOR JSB DISAB * IF NO PLACE FOR A NEW ENTRY IN THE CURRENT SECTOR OF DIRECTORY * CLOSE IT AND USE A NEW ONE. LDB ST1 LDA BUFND CMA,INA ADA B ADA .+4 :SSA JMP *+5 CCA STA B,I JSB DRWRT ISZ RSECT * PUT THE NAME IN THE ENTRY LDA NAM1,I STA B,I INB ISZ NAM1 LDA NAM1,I STA B,I INB ISZ NAM1 LDA NAM1,I AND .1774 STA B,I * SET THE TEMPORARY BIT AND PUT THE TYPE IN THE ENTRY LDA ITYP,I IOR PBIT IOR B,I STA B,I INB * PUT TRACK/SECTOR AND LENGTH OF THE FILE LDA UDNTS STA B,I INB LDA ILENG,I STA B,I INB * IF END OF SECTOR, PUT THE END OF DIRECTORY FLAG IN THE NEXT * SECTOR. CPB BUFND RSS JMP *+3 JSB DRWRT ISZ RSECT CLA STA B,I JSB DRWRT * COMPUTE THE NEW "UDNTS" AND RECORD IT * EXIT LDA ST2 CMA,INA CLB ADA ILENG,I DIV SECTR ALF,ALF IOR B JSB NWUTS JMP NWFIL,I SKP NAM2 NOP NWTYP NOP IL NOP SHRTR NOP JSB .ENTR DEF NAM2 * PICK THE BUFFER, CHECK FOR EXISTING FILE. LDA NAM2 JSB INI SZA,RSS JMP ERNAM * SEARCH THE LAST FILE IN DIRECTORY, CHECK THAT IT IS THE REQUESTED * FILE. JSB DIREN ADB .-5 LDA B,I CPA NAM2,I INB,RSS JMP ERNAM ISZ NAM2 LDA B,I CPA NAM2,I INB,RSS JMP ERNAM ISZ NAM2 LDA NAM2,I AND .1774 STA NAM2 LDA B,I AND .1774 CPA NAM2 RSS JMP ERNAM STB NAM2 * CLEAR THE TEMPORARY BIT IF IS NEG. LDA B,I AND PBIT XOR B,I LDB IL,I SSB,RSS CMB,INB,RSS STA NAM2,I STB IL * CHECK THAT THE OLD AND THE NEW TYPE ARE IN THE RANGE 6 TO 11. AND .177 JSB TYP LDA NWTYP,I JSB TYP LDA NAM2,I AND .1777 IOR NWTYP,I STA NAM2,I * CHECK THұAT THE NEW LENGTH IS NOT GREATER THAN THE OLD ISZ NAM2 ISZ NAM2 ADB NAM2,I SSB JMP ERILG LDA IL CMA,INA,SZA,RSS JMP ERILG STA NAM2,I * COMPUTE THE NEW CMB,INB LDA UDNTS AND .377 ADA B STA NAM2 LDA UDNTS AND .1774 ALF,ALF MPY SECTR ADA NAM2 DIV SECTR ALF,ALF IOR B STA NAM2 * DISABLE OPERATOR INTERRUPT, WRITE THE DIRECTORY SECTOR, * UPDATE AND EXIT. JSB DISAB JSB DRWRT LDA NAM2 JSB NWUTS JMP SHRTR,I SKP * REQUEST THE BUFFER FROM , SEARCH THE FILE NAME OF WHICH * ADDR. IS IN A AT ENTRY. INI NOP STA .NAM JSB ALOC D128 DEC 128 SSA JMP ERBU STA BUF ADA D128 STA BUFND JSB EXEC DEF *+4 DEF D18 .NAM DEF .NAM,I DEF #SECT * FIND SECTOR AND TRACK OF DIRECTORY LDA DISCL AND .377 STA RSECT XOR DISCL ALF,ALF STA TRACK * READ THE FIRST SECTOR JSB DRRD LDA #SECT JMP INI,I * TO READ THE NEXT SECTOR OF DIRECTORY * RETURN WITH BUFFER ADDR. IN B DRRD NOP ISZ RSECT NOP JSB EXEC DEF *+7 DEF .-1 DEF .+3 BUF DEF *,I DEF D128 DEF TRACK DEF RSECT LDB BUF JMP DRRD,I * SUBROUTINE TO FIND THE NEXT ENTRY. * ADDRESS OF 3RD. WORD OF ENTRY IN B FETCH NOP LDA B,I AND .177 * COMPUTE THE ENTRY LENGTH FROM TYPE ADA .-6 SSA ADB .+6 ADB .+3 * IF END OF BUFFER, READ THE NEXT SECTOR CPB BUFND JSB DRRD * IF LOGICAL END OF SECTOR, READ THE NEXT ONE LDA B,I CPA .-1 JSB DRRD * IF END OF DIRECTORY, RETURN TO P+1, OTHERWISE TO P+2 LDA B,I SZA ISZ FETCH JMP FETCH,I * TO REWRITEE A SECTOR IN DIRECTORY DRWRT NOP JSB EXEC DEF *+7 DEF .-2 DEF .+3 DEF BUF,I DEF D128 DEF TRACK DEF RSECT LDB BUF JMP DRWRT,I * TO FIND THE END OF THE DIRECTORY * BUFFER ADDR. IN B DIREN NOP LDA B,I SZA,RSS JMP DIREN,I ADB .+2 JSB FETCH JMP DIREN,I JMP *-3 * TO CHECK THAT THE TYPE IS IN THE RANGE 6 TO 11. * TYPE IN A AT ENTRY. * B UNCHANGED AT EXIT. TYP NOP ADA .-6 SSA JMP ERILG ADA .-6 SSA,RSS JMP ERILG JMP TYP,I * TO DISABLE OPERATOR INTERRUPT AND DISABLE ABORTING FOR TOO * LONG EXECUTION TIME UNTIL COMPLETE UPDATE OF DIRECTORY. DISAB NOP LDA OPFLG STA ST3 CLA,INA LDB AOPFL JSB BPSTR LDA CLEX STA ST4 CCA LDB ACLEX JSB BPSTR JMP DISAB,I * STORE IN BASE PAGE * NUMBER TO STORE IN A * ADDRESS TO STORE IN B BPSTR NOP JSB EXEC DEF *+2 DEF M19 JMP BPSTR,I * TO RECORD A NEW "UDNTS" (IN A UPON ENTRY) * IF USER ON SYSTEM DISC, UPDATE ALSO "SYNTS" NWUTS NOP LDB .-2 STB ST1 LDB CUDSC CPB SYSSC RSS ISZ ST1 LDB AUNTS JSB BPSTR ISZ ST1 JMP *-2 * UPDATE ALSO THE LABEL SECTOR LDA DISCL AND .1774 LDB A XOR DISCL BLF,BLF STB TRACK ADA .-1 STA RSECT JSB DRRD ADB D64 LDA UDNTS STA B,I JSB DRWRT * CLEAR THE FILE TABLE VALIDITY FLAG IN BASE PAGE, ENABLE * OPERATOR INTERRUPTS. CLA LDB AFLFG JSB BPSTR LDA ST4 LDB ACLEX JSB BPSTR LDA ST3 LDB AOPFL JSB BPSTR JMP NWUTS,I SKP * IN CASE OF ERROR EROVF LDB A00 DR 04 INB,RSS ERDUP LDB A00 DR 03 INB,RSS ERNAM LDB A00 { DR 02 INB,RSS ERILG LDB A00 DR 01 INB,RSS ERBU LDB A00 DR 00 LDA ADR JSB ERR0 * ABORT THE PROGRAM JSB EXEC DEF *+2 DEF .+6 SKP * CONSTANTS A00 ASC 1,00 ADR ASC 1,DR SPSP ASC 1, Q1 OCT 20200 USP OCT 20000 AUNTS DEF UDNTS AOPFL DEF OPFLG AFLFG DEF FLFLG ACLEX DEF CLEX M19 DEC -19 D18 DEC 18 B60 OCT 60 * STORAGES BUFND NOP RSECT NOP TRACK NOP * EQUIVALENCES A EQU 0 B EQU 1 . EQU 53B D64 EQU 67B .177 EQU 73B .377 EQU 74B .1774 EQU 75B .1777 EQU 77B JBINS EQU 101B JBINC EQU 102B CLEX EQU 106B SECTR EQU 116B DISCO EQU 154B SYSSC EQU 155B UDNTS EQU 157B CUDSC EQU 161B DISCL EQU 200B OPFLG EQU 261B FLFLG EQU 327B #SECT EQU FETCH PBIT EQU D128 ST1 EQU NAM ST2 EQU FKILR ST3 EQU INI ST4 EQU DIREN * LST #WDS EQU * END ASMB,L HED TO GIVE ACCESS TO LU OF THE BATCH DEVICE NAM BATCH,7 ENT BATCH EXT .ENTR * * CALLING PROCEDURE (FTN) : * * CALL BATCH(LU) * * RETURN IN THE LOGICAL UNIT OF THE BATCH DEVICE . * (LOCATION 111B IN BASE PAGE) * SPC 5 LU NOP BATCH NOP JSB .ENTR DEF LU LDA .BATC STA LU,I JMP BATCH,I * .BATC EQU 111B * #WDS EQU * END ASMB,L HED TO GIVE ACCESS TO THE SYS. GEN CODE FROM A FTN PROG. NAM SYSGC,7 ENT SYSGC EXT .ENTR * * CALLING PROCEDURE (FTN) : * * CALL SYSGC (I) * * RETURN IN THE SYSTEM GENERATION CODE . * (LOCATION 176B IN BASE PAGE) * SPC 5 I NOP SYSGC NOP JSB .ENTR DEF I LDA SYSCD STA I,I JMP SYSGC,I * SYSCD EQU 176B * #WDS EQU * END ASMB,L HED SUBROUTINE ALOC 1/73 JS NAM ALOC ,7 ENT ALOC * * SUBROUTINE TO GIVE TO A PROGRAM THE USE OF THE AREA * OF MEMORY BETWEEN THE LAST WORD OF THE CURRENT PROG. * AND THE BBL. * * THIS AREA CAN ONLY BE USED AS A TEMPORARY BUFFER * BECAUSE ITS LENGTH CHANGE WHEN SEGMENTS ARE LOADED. * * * * CALLING PROCEDURE (ASMB ONLY) : * JSB ALOC * DEC LENGTH *RETURN * * WHERE IS THE LENGTH (IN WORDS) OF THE BUFFER* REQUESTED. * AT RETURN : * -IF BUFFER AVAILABLE : A= FWA OF BUFFER * B= NB. OF WORDS * -IF BUFFER NOT AVAILABLE ; * A= -1 * B= MAX. LENGTH AVAILABLE * * SKP ALOC NOP * FIND THE LENGTH OF THE FREE AREA LDB LWAUP CMB,INB ADB UMLWA * COMPARE TO REQUESTED LENGTH LDA ALOC,I CMA,INA ADA B SSA JMP *+5 *AVAILABLE , RETURN WITH (LWAUP+1) IN A AND LENGTH IN B LDA LWAUP INA LDB ALOC,I RSS * NOT AVAILABLE , RETURN WITH -1 IN A AND LENGTH IN B CCA ISZ ALOC JMP ALOC,I * *EQUIVALENCES * A EQU 0 B EQU 1 UMLWA EQU 100B LWAUP EQU 147B 7TH. WORD OF IN BASE PAGE #WDS EQU * END FTN,L PROGRAM TEST,3 DIMENSION IDA(5),NAM1(3),NAM2(3) DATA NAM1/2HXY,2HFL,2H1 /,NAM2/2HXY,2HFL,2H2 / C C CHECK "ALOC" C CALL TALOC(IAD,LENG) LWA=(IAD+LENG)/1000 WRITE (1,100) IAD,LENG,LWA 100 FORMAT ("ADDRESS OF THE FIRST WORD AVAILABLE ABOVE THIS PROGRAM :" -,K5/ -"NUMBER OF AVAILABLE WORDS :",I5/ -"MEMORY SIZE :",I2,"K") C C READ THE DATE FROM THE SYSTEM AND WRITE IT ON TTY. C CALL DATE (IDA) WRITE (1,101) IDA 101 FORMAT (/"TODAY :",5A2) C C CHECK IF 2114 OR 2100 : CLEAR THE SW. REG. C CALL STSWI (-1,0) C C IF NOT CLEARED IT IS A 2115 OR 2116 C DO 1000 I=0,15 IF (ISSW(I)) 9`9,1000,1000 1000 CONTINUE C C SET ALL THE SWITCHES AND CHECK CALL STSWI (-1,-1) DO 2000 I=0,15 IF (ISSW(I)) 2000,2000,99 2000 CONTINUE C C DO A DEMO. BY CLEARING AND SETTING SUCCESSIVELY EACH SWITCH C DO 3000 I=0,15 CALL STSWI (I,0) DO 3001 N=1,32767 3001 CONTINUE 3000 CALL STSWI (I,-1) GO TO 2 99 WRITE (1,102) 102 FORMAT (/"SORRY ; THERE IS NO USE FOR 'STSWI' WITH A 2115 OR 2116 -COMPUTER"/) C C IF THERE IS A FILE 'XYFL1' PRESENT, DESTROY ITS ENTRY C IN THE DIRECTORY C 2 CALL EXEC (18,NAM1,LENG) IF (LENG) 4,4,3 3 CALL FKILR (NAM1) C C CREATE A TEMPORARY FILE 'XYFL1' WITH ALL THE SPACE C AVAILABLE ON DISC C 4 LENG=-1 CALL NWFIL (NAM1,10,LENG) WRITE (1,103) LENG 103 FORMAT (I4," AVAILABLE SECTORS ON CURRENT USER'S DISC") C C SHORTEN 'XYFL1' TO 10 SECTORS AND MAKE IT PERMANENT C CALL SHRTR (NAM1,11,-10) C C CREATE A TEMPORARY FILE 'XYFL2' OF 2 SECTORS C CALL NWFIL (NAM2,10,2) C C CHECK 'BATCH' C CALL BATCH (LU) IF (LU-1) 6,5,6 5 WRITE (1,104) 104 FORMAT ("YOU ARE WORKING IN TTY MODE") GO TO 7 6 WRITE (1,105) LU 105 FORMAT ("YOU ARE WORKING IN BATCH MODE FROM DEVICE #",I2) C C CHECK 'SYSGC' C 7 CALL SYSGC (ICODE) WRITE (1,106) ICODE 106 FORMAT ("THE SYSTEM GENERATION CODE IS ",I6) END $ ASMB,L NAM TALOC,7 EXT .ENTR,ALOC ENT TALOC * * SUBROUTINE TO TEST "ALOC" BY A FTN PROG. * * * CALLING PROCEDURE (FTN) : * * CALL TALOC (IAD,LENG) * * IAD : AT RETURN CONTAIN THE FWA ABOVE THE PROGRAM * LENG D AT RETURN CONTAIN THE MAX. NB. OF USABLE WORDS ABOVE THE PROG. * * IAD NOP LENG NOP TALOC NOP JSB .ENTR DEF IAD JSB ALOC DEC 32768 INA,SZA JMP TALOC,I STB L JSB ALOC L NOP CPB JPB@' * OCT 003007,001733,157407,001000,0,0 DEC 0,-1 '?' * OCT 077201,114645,122675,120476,0,0 OCT 0,0 '@' * ׎ OCT 177377,015433,015433,177776,0,0 OCT 0,0 'A' * OCT 177777,155733,155733,177566,0,0 OCT 0,0 'B' * OCT 077377,141703,141703,141703,0,0 OCT 0,0 'C' * OCT 177777,141703,141703,177576,0,0 OCT 0,0 'D' * OCT 177777,155733,155733,141703,0,0 OCT 0,0 'E' * OCT 177777,015433,015433,001403,0,0 OCT 0,0 'F' * OCT 177777,141703,155773,175430,0,0 OCT 0,0 'G' * OCT 177777,014030,014030,177777,0,0 OCT 0,0 'H' * OCT 141703,141777,177703,141703,0,0 OCT 0,0 'I' * OCT 071763,141777,077403,001403,0,0 OCT 0,0 'J' * OCT 177777,004034,033143,140600,0,0 OCT 0,0 'K' * OCT 177777,140300,140300,140000,0,0 OCT 0,0 'L' * OCT 176377,003436,017007,177774,0,0 OCT 0,0 'M' * OCT 177777,007034,034160,177777,0,0 OCT 0,0 'N' * OCT 077377,141703,141703,177576,0,0 OCT 0,0 'O' * OCT 177777,015433,015433,017416,0,0 OCT 0,0 'P' * OCT 077377,141713,155763,177776,100000,0 OCT 0,0 'Q' * OCT 177777,015433,035573,157616,0,0 OCT 0,0 'R' * OCT 147337,155733,155733,175563,0,0 OCT 0,0 'S' * OCT 001403,001777,177403,001403,0,0 OCT 0,0 'T' * OCT 077777,140300,140300,177777,0,0 OCT 0,0 'U' * OCT 017477,060300,140140,037437,0,0 OCT 0,0 'V' * OCT 037777,140170,074300,177577,0,0 OCT 0,0 'W' * OCT 141747,032030,014064,163703,0,0 OCT 0,0 'X' * OCT 001407,002370,174004,003403,0,0 OCT 0,0 'Y' * OCT 141743,171733,145707,143703,0,0 OCT 0,0 'Z' * OCT 177777,141703,0,0,0,0 DEC 0,-1 '[' * OCT 001406,002010,014060,060300,0,0 OCT 0,0 '\' * OCT 141703,177777,0,0,0,0 ] DEC 0,-1 '[' * OCT 002006,177777,003004,000000,0,0 DEC 0,-1 '^' * OCT 014074,077030,014030,014030,0,0 OCT 0,0 '_' * * RUBOUTS. . . DEC -1,-1,-1,-1,-1,-1,-1,-1 DEC -1,-1,-1,-1,-1,-1,-1,-1 DEC -1,-1,-1,-1,-1,-1,-1,-1 DEC -1,-1,-1,-1,-1,-1,-1,-1 * * END ALPHA ~??  ( ,    22681-18075 1550 SC 0122 DOS-M DISC EDITOR              H0101 `5FTN4,L PROGRAM EDITD C C CONTRIBUTED ACCESS C CODE = 7654 C C D. BARKLEY C 9-13-74 C C DIMENSION IBUF(129),LBUF(128),LBL(3),FBUF(64),GBUF(64) DIMENSION LBSYS(3),IACS(2) EQUIVALENCE(IBUF,FBUF),(IBUF(2),GBUF) C READ(1,1004)IACS IF(IACS(1).NE.2H76)GOTO 9999 IF(IACS(2).NE.2H54)GOTO 9999 WRITE(1,1000) 1000 FORMAT(20(X/)15X"DOS-M DISC EDITOR"20X"(DJB,9-74)"// 1 6X"***** CAUTION *****"/ 2 6X"ANY DISC AREA SUBJECT TO ALTERATION!"5(X/)) C CALL EXEC(-1,103B,IBUF,128,0,0) LBSYS(1)=IBUF(4) LBSYS(2)=IBUF(5) LBSYS(3)=IBUF(6) CALL CHNL(ICH) IF(ICH.EQ.0)ICHA=2HFI IF(ICH.EQ.1)ICHA=2HRE IF((ICH.NE.0).AND.(ICH.NE.1))ICHA=2H ? WRITE(1,1008)ICHA,LBSYS 1008 FORMAT(X"PRESENT OPERATIONS ON '"A2"' PLATTER, LABELED: "3A2) IF((LBSYS(1).EQ.2HSY).AND.(LBSYS(2).EQ.2HST).AND. 1 (LBSYS(3).EQ.2HEM))GOTO 103 GOTO 100 103 LBSYS(1)=2H* LBSYS(2)=2H LBSYS(3)=2H WRITE(1,1009)LBSYS 1009 FORMAT(X"'SYSTEM' LABEL RELABELED WITHIN PROGRAM AS: "3A2) 100 WRITE(1,1002) 1002 FORMAT(X"DESIRED DISC FIXED OR REMOVABLE? (FI OR RE) _") READ(1,1004)IANSW IF(IANSW.EQ.2HFI)ICHNL=0 IF(IANSW.EQ.2HRE)ICHNL=1 IF((IANSW.NE.2HFI).AND.(IANSW.NE.2HRE))GOTO 100 WRITE(1,1003) 1003 FORMAT(X"WHAT IS DISC LABEL? _") READ(1,1004)LBL 1004 FORMAT(3A2) 110 CALL EXEC(23,LBL,ICHNL) WRITE(1,1005)ICHNL,LBL 1005 FORMAT(X"ALL OPERATIONS ON DISC CHANNEL "I1", LABELED: "3A2) C LU=1 IBUF(129)=0 WRITE(1,1101) 1101 FORMAT(X"AVAILABLE COMMANDS:"/ , 10X"LR - REAL \" 18X"CR - REAL \"/ , 10X"LA - ASCII \" 17X"CA - ASCII \"/ , 10X"LI - INTEGER > LIST"11X"CI - INTEGER > CHANGE"/ , 10X"LO - OCTAL /" 17X"CO - OCTAL /"/ , 10X"LT - TAPE /"^ 18X"CT - TAPE /"/ , 10X"RE - RETRIEVE NEXT T/S"/ , 10X"LU - CHANGE OUTPUT LOGICAL UNIT"/ , 10X"DD - DUMP EDIT TO DISC"/ , 10X"/E - RETURN TO DOS-M"//) C 210 WRITE(1,1102) 1102 FORMAT(X"EDIT TRACK, SECTOR? _") READ(1,*)ITRAK,ISECT IF((ITRAK.LT.0).OR.(ITRAK.GT.199))GOTO 210 IF((ISECT.LT.0).OR.(ISECT.GT.47))GOTO 210 CALL EXEC(-1,103B,IBUF,128,ITRAK,ISECT) 215 WRITE(1,1104)ITRAK,ISECT 1104 FORMAT(X"TRACK "I3" SECTOR "I2" IN CORE.") IF(LU.NE.1)WRITE(LU,1104)ITRAK,ISECT C 220 WRITE(1,1105) 1105 FORMAT(X"COMMAND? _") READ(1,1004)ICMD IF(ICMD.EQ.2HDD)GOTO 300 IF(ICMD.EQ.2HRE)GOTO 210 IF(ICMD.EQ.2HLU)GOTO 600 IF(ICMD.EQ.2H/E)GOTO 700 IF(ICMD.EQ.2H? )GOTO 250 IF((ICMD.NE.2HLA).AND.(ICMD.NE.2HLI).AND.(ICMD.NE.2HLO).AND. 1 (ICMD.NE.2HCA).AND.(ICMD.NE.2HCI).AND.(ICMD.NE.2HCO).AND. 2 (ICMD.NE.2HLR).AND.(ICMD.NE.2HCR).AND. 3 (ICMD.NE.2HLT).AND.(ICMD.NE.2HCT))GOTO 220 225 IFW=1 ILW=128 CALL LIMTS(IFW,ILW) IF((IFW.LT.1).OR.(ILW.GT.128))GOTO 225 IF(ICMD.EQ.2HLA)GOTO 400 IF(ICMD.EQ.2HLI)GOTO 450 IF(ICMD.EQ.2HLO)GOTO 470 IF(ICMD.EQ.2HLR)GOTO 480 IF(ICMD.EQ.2HLT)GOTO 460 IF(ICMD.EQ.2HCA)GOTO 500 IF(ICMD.EQ.2HCI)GOTO 550 IF(ICMD.EQ.2HCO)GOTO 570 IF(ICMD.EQ.2HCR)GOTO 580 IF(ICMD.EQ.2HCT)GOTO 560 GOTO 220 C 250 WRITE(1,1101) GOTO 215 C 300 CALL EXEC(-2,103B,IBUF,128,ITRAK,ISECT) WRITE(1,1095) 1095 FORMAT(X"DISC EDIT COMPLETE"/) GOTO 210 C C "LIST" OPERATIONS C 400 DO 410 J=IFW,ILW LBUF(J)=IBUF(J) IF(LU.NE.1)GOTO 410 LL=IAND(LBUF(J),377B) LH=IAND(LBUF(J),177400B) IF((LL.LT.40B).OR.(LL.GT.137B))LBUF(J)=LH+100B LL=IAND(LBUF(J),377B) IF((LH.LT.20000B).OR.(LH.GT.57400B))LBUF(J)=LL+40000B 410 CONTINUE 420 DO 422 I=IFW,ILW,16 LAST=I+15 IF((ILW-I).LT.16d)LAST=ILW 422 WRITE(LU,1120)I,(LBUF(J),J=I,LAST) 1120 FORMAT(" ("I3")"2X,16A2) GOTO 220 C 450 DO 452 I=IFW,ILW,8 LAST=I+7 IF((ILW-I).LT.8)LAST=ILW 452 WRITE(LU,1130)I,(IBUF(J),J=I,LAST) 1130 FORMAT(" ("I3")"8(2X,I6)) GOTO 220 C 470 DO 472 I=IFW,ILW,8 LAST=I+7 IF((ILW-I).LT.8)LAST=ILW 472 WRITE(LU,1140)I,(IBUF(J),J=I,LAST) 1140 FORMAT(" ("I3")"8(2X,K6)) GOTO 220 C 480 IF(MOD(IFW,2).EQ.0)GOTO 490 C ODD FW DO 482 I=(IFW+1)/2,(ILW+1)/2,5 LAST=I+4 IF(((ILW+1)/2-I).LT.5)LAST=(ILW+1)/2 K=2*I-1 482 WRITE(LU,1145)K,(FBUF(J),J=I,LAST) 1145 FORMAT(" ("I3")"5(2X,G11.5)) GOTO 220 C EVEN FW 490 DO 492 I=IFW/2,ILW/2,5 LAST=I+4 IF((ILW/2-I).LT.5)LAST=ILW/2 K=2*I 492 WRITE(LU,1145)K,(GBUF(J),J=I,LAST) GOTO 220 C 460 DO 462 J=IFW,ILW 462 WRITE(4)IBUF(J) GOTO 220 C C "CHANGE" OPERATIONS C 500 WRITE(1,1152) 1152 FORMAT(X"ENTER ASCII CHANGES: _") READ(1,1150)(IBUF(J),J=IFW,ILW) 1150 FORMAT(36A2) GOTO 220 C 550 WRITE(1,1162) 1162 FORMAT(X"ENTER INTEGER CHANGES: _") READ(1,*)(IBUF(J),J=IFW,ILW) GOTO 220 C 570 WRITE(1,1172) 1172 FORMAT(X"ENTER OCTAL CHANGES: _") READ(1,1170)(IBUF(J),J=IFW,ILW) 1170 FORMAT(K6) GOTO 220 C 580 WRITE(1,1182) 1182 FORMAT(X"ENTER REAL CHANGES: _") IF(MOD(IFW,2).EQ.0)GOTO 590 READ(1,*)(FBUF(J),J=(IFW+1)/2,(ILW+1)/2) GOTO 220 590 READ(1,*)(GBUF(J),J=IFW/2,ILW/2) GOTO 220 C 560 DO 562 J=IFW,ILW 562 READ(5)IBUF(J) GOTO 220 C C MISC. C 600 WRITE(1,1200) 1200 FORMAT(X"NEW LOGICAL UNIT? _") READ(1,*)LU IF((LU.LT.1).OR.(LU.GT.20))GOTO 600 GOTO 215 C 700 CALL EXEC(23,LBSYS,ICH) 9999 END SUBROUTINE LIMTS(LOW,IHIGH) C **************** C C D. BARKLEY C C EDITD FTN4 SUB 1 OF 2 C C C THIS SUBROUTINE REQUESTS INTEGER 'LIMI;TS' FROM THE S.C.D. C AND PROCESSES THEM. C IF NO INPUT IS GIVEN (I.E. A 'BLANK, CR-LF') THEN LIMITS C WILL BE RETURNED AS PREVIOUSLY DEFINED. C IF A SINGLE LIMIT IS GIVEN OR THE (FIRST)>(LAST) THE C FIRST IS RETURNED IN BOTH. C IMPROPER INPUTS WILL REPEAT THE REQUEST. C C C C DIMENSION INPUT(13),IFS(6),ILS(6) 10 IEND=0 DO 5 I=1,13 5 INPUT(I)=40B WRITE(1,1000) 1000 FORMAT(X"LIMITS? _") READ(1,1001)INPUT 1001 FORMAT(13R1) DO 14 I=1,13 IF(INPUT(I).NE.40B)GOTO 18 14 CONTINUE RETURN C 18 DO 30 I=1,13 IF(INPUT(I).LT.60B)GOTO 24 20 IF(INPUT(I).LT.72B)GOTO 30 24 IEND=I-1 IF(-IEND)40,10 30 CONTINUE 40 DO 42 I=1,IEND 42 IFS(I)=INPUT(I) IF(IEND.GE.6)GOTO 60 LIMIT=IEND+1 DO 54 I=LIMIT,6 54 IFS(I)=40B LIMIT=LIMIT+1 GOTO 64 60 LIMIT=8 64 DO 68 I=1,6 ILS(I)=INPUT(LIMIT) 68 LIMIT=LIMIT+1 IFRST=NMCVT(IFS,IER) IF(IER.NE.0)GOTO 10 ILAST=NMCVT(ILS,IER) IF(IER.NE.0)GOTO 10 IF(IFRST.GT.ILAST)ILAST=IFRST LOW=IFRST IHIGH=ILAST RETURN END SUBROUTINE NMCVT(NBUF,IER) C **************** C C EDITD FTN4 SUB 2 OF 2 C C CONVERT A SIX WORD RIGHT JUSTIFIED ASCII ARRAY TO AN INTEGER. C C RETURNS NUMBER IN FIRST ARRAY ELLEMENT AND IN 'A' REGISTER. C RETURNS IER=1 IF NON-NUMERIC CHARACTER PRESENT C OR NUMBER EXCEEDS INTEGER SIZE. C C SUBROUTINE CAN BE USED AS A CALL OR A FUNCTION. C C C DIMENSION NBUF(6) IER=0 NMBR=0 N=0 J=1 IF(IAND(NBUF(1),177B).EQ.55B)J=2 DO 40 L=J,6 NM=IAND(NBUF(L),177B) IF(NM-40B)2,80,10 10 NM=NM-60B IF((NM.LT.0).OR.(NM.GT.9))GOTO 2 N=N+1 IF(N.LT.5)GOTO 20 IF(NMBR-3276)20,15,2 15 IF(NM.GT.7)GOTO 2 20 NMBR=NMBR*10+NM 40 CONTINUE C 80 IF(J.EQ.2)NMBR=-NMBR NBUF(1)=NMBR RETURN 2 IER=1 RETURN END END$ ASMB,R,L DOS-M EDITD SUB NAM EDITA,7 * * D. BARKLEY * 3-1-74 * ENT CHNL EXT .ENTR * * * * FORTRAN CALLABLE PRESENT USER CHANNEL ID * RETURNS CHANNEL # IN 'A' AND 'ICH' * ICH BSS 1 CHNL NOP JSB .ENTR DEF ICH LDA CUDSC STA ICH,I JMP CHNL,I * CUDSC EQU 161B CURRENT USER DISC SUB CHANNEL * END CHNL O   22681-18077 1604 SC 0322 TODS-C BASIC MAG TAPE BCS DRIVER             H0103 ةFTN4,B,L PROGRAM EDITD C C ACCESS CODE: 4231 C C C < -D> C C D. BARKLEY LOAD: C 5-29-74 1) EDITD C 2) 3 FTN4 SUBS C 3) 2 ASMB SUBS C 4) FTN4 LIB (257,L) C 5) TODS LIB (256,L) C C C DIMENSION IACS(2) READ(1,1001)IACS IF(IACS(1).NE.2H42)CALL EPRS IF(IACS(2).NE.2H31)CALL EPRS WRITE(2,1000) 1000 FORMAT(20(X/)15X"TODS-C DISC EDITOR"20X"(DJB,3-74)"// 1 6X"***** CAUTION *****"/ 2 6X"ANY DISC AREA SUBJECT TO ALTERATION!"///) C 40 WRITE(2,1004) 1004 FORMAT(6(X/)X"EDIT BY:"/ 1 5X"LS - LOGICAL SECTOR (DUAL DISC)"/ 2 5X"CT - CATALOG"/ 3 5X"FL - FILE"/ 4 5X"? _") READ(1,1001)ICMD 1001 FORMAT(2A2) IF(ICMD.EQ.2HLS)CALL EDLS IF(ICMD.EQ.2HFL)CALL EDFL IF(ICMD.EQ.2HCT)CALL EDCT GOTO 40 END SUBROUTINE EDCT C *************** C C D. BARKLEY C EDITD FTN4 SUB 1 OF 3 C C DIMENSION KBUF(10),IFMT(50),JBUF(10) DATA IFMT/2H(3,2HX,,2HI3,2H,1,2HX,,2HI6,2H,1,2HX",2H:", 1 2H2X,2H, ,2HI3,2H,3,2HX,,2HI1,2H,1,2HX",2H:",2H1X,2H,K, 2 2H5,,2H1X,2H,K,2H3,,2H1X,2H":,2H" , 3 2H1X,2H,K,2H5,,2H1X,2H,K,2H3,,2H1X,2H":,2H"1,2HX,,2HI5, 4 2H,1,2HX",2H:",2H1X,2H,I,2H5,,2H1X,2H":,2H"1,2HX,,2HI5,2H) / C LU=2 INTRY=1 WRITE(2,61) 61 FORMAT(20(X/)25X"CATALOG EDITOR"/25X,14(1H*)/) CALL OPEN(9,1,IER,2) IF(IER.EQ.0)GOTO 102 WRITE(2,1003)IER 1003 FORMAT(X"OPEN FILE ERROR: "I1) GOTO 9999 102 CALL RESET(9,1) 104 WRITE(2,1010) 1010 FORMAT(X"AVAILABLE COMMANDS:"/ 1 10X"EN - ACCESS BY ENTRY #"/ 2 10X"FN - ACCESS BY FRN #"/ 3 10X"CI - INTEGER CH;ANGE REQUEST"/ 4 10X"CO - OCTAL CHANGE REQUEST"/ 5 10X"LU - CHANGE LOGICAL UNIT FOR LIST OUTPUTS"/ 6 10X"/D - RETURN TO DISC EDITOR"/ 7 10X"/E - RETURN TO TODS-C"//) C 110 WRITE(2,1020) 1020 FORMAT(X"COMMAND? _") READ(1,1001)ICMD 1001 FORMAT(A2) IF(ICMD.EQ.2HEN)GOTO 200 IF(ICMD.EQ.2HFN)GOTO 300 IF(ICMD.EQ.2HCI)GOTO 400 IF(ICMD.EQ.2HCO)GOTO 500 IF(ICMD.EQ.2HLU)GOTO 900 IF(ICMD.EQ.2H/D)GOTO 9980 IF(ICMD.EQ.2H/E)GOTO 9996 IF(ICMD.EQ.2H? )GOTO 104 GOTO 110 C C C LIST BY ENTRY # C 200 IF=1 IL=2000 221 WRITE(2,1112) 1112 FORMAT(X"LIMITS? _") READ(1,*)IF,IL IF((IF.LT.1).OR.(IF.GT.2000))GOTO 221 IF((IL.LT.1).OR.(IL.GT.2000))GOTO 221 IF(IF.GT.IL)GOTO 221 IF(INTRY.LE.IF)GOTO 225 CALL RESET(9,1) INTRY=1 C C SPOOL TO BEGINNING ENTRY 225 IF(INTRY.EQ.IF)GOTO 240 CALL RDISK(9,KBUF,10,ISTAT) IF(ISTAT.EQ.1)GOTO 235 IF(ISTAT.EQ.4)GOTO 230 228 WRITE(2,1114)ISTAT,INTRY 1114 FORMAT(X"READ FILE ERROR: "I1", ENTRY #"I4) GOTO 110 230 WRITE(2,1116)INTRY 1116 FORMAT(X"END OF FILE, ENTRY #"I4) IF(LU.EQ.6)WRITE(6,1116)INTRY GOTO 110 235 INTRY=INTRY+1 GOTO 225 C 240 WRITE(LU,1100) 1100 FORMAT(X/X"ENTRY FRN :"10X": FIRST OFF :" 1 " LAST OFF : TOTAL : WRITE : READ"/ 2 4X"#"6X"# : STAT TYPE: SECT SET :" 3 " SECT SET : #WRDS : PNTR : PNTR"/ 4 X,13(1H-)":"10(1H-)":"11(1H-)":" 5 11(1H-)":"7(1H-)":"7(1H-)":"6(1H-)) C C OUTPUT LOOP 242 CALL RDISK(9,KBUF,10,ISTAT) IF(ISTAT.EQ.1)GOTO 250 IF(ISTAT.EQ.4)GOTO 230 GOTO 228 C 250 ISTAT=IRSHF(KBUF(2),9) ITYPE=IAND(KBUF(2),7B) ILNTH=(KBUF(5)-KBUF(3))*128+KBUF(6)-KBUF(4) IWRIT=(KBUF(7)-KBUF(3))*128+KBUF(8)-KBUF(4) IREAD=(KBUF(9)-KBUF(3))*128+KBUF(10)-KBUF(4) IF((KBUF(5)-KBUF(3)).GE.256)ILNTH=100000B IF((KBUF(7)-KBUF(3)).GE.256)IWRIT=100000B IFMT(12)=2HK3 IFMT(13)=2H,3 IFMT(15)=2HI1 IFMT(47)=2H"1 IFMT(49)=2HI5 IF(ISTAT.NE.0)GOTO 252 ISTAT=2H IFMT(12)=2HA2 IFMT(13)=2H,4 252 IF(ITYPE.NE.0)GOTO 254 ITYPE=2H IFMT(15)=2HA1 254 IF(IREAD.NE.0)GOTO 256 IREAD=2H IFMT(47)=2H"4 IFMT(49)=2HA2 256 WRITE(LU,IFMT)INTRY,KBUF(1),ISTAT,ITYPE,KBUF(3),KBUF(4), 1 KBUF(5),KBUF(6),ILNTH,IWRIT,IREAD INTRY=INTRY+1 IF(INTRY.LE.IL)GOTO 242 GOTO 110 C C C LIST BY FRN # C 300 WRITE(LU,1100) 305 WRITE(2,1120) 1120 FORMAT(X"NEXT FRN #? _") READ(1,*)IFRN C C SCAN LOOP 310 CALL RDISK(9,KBUF,10,ISTAT) IF(ISTAT.EQ.1)GOTO 325 IF(ISTAT.EQ.4)GOTO 340 GOTO 228 325 IF(IFRN.NE.KBUF(1))GOTO 330 C C FRN # FOUND ISTAT=IRSHF(KBUF(2),9) ITYPE=IAND(KBUF(2),7B) ILNTH=(KBUF(5)-KBUF(3))*128+KBUF(6)-KBUF(4) IWRIT=(KBUF(7)-KBUF(3))*128+KBUF(8)-KBUF(4) IREAD=(KBUF(9)-KBUF(3))*128+KBUF(10)-KBUF(4) IF((KBUF(5)-KBUF(3)).GE.256)ILNTH=100000B IF((KBUF(7)-KBUF(3)).GE.256)IWRIT=100000B WRITE(LU,1121)INTRY,KBUF(1),ISTAT,ITYPE,KBUF(3),KBUF(4), 1 KBUF(5),KBUF(6),ILNTH,IWRIT,IREAD 1121 FORMAT(3X,I3,X,I6,X":"2X,K3,3X,I1,X":"X,K5,X,K3,X":" 1 X,K5,X,K3,X":"X,I5,X":"X,I5,X":"X,I5) INTRY=INTRY+1 GOTO 305 330 INTRY=INTRY+1 GOTO 310 340 WRITE(2,1116)INTRY IF(LU.EQ.6)WRITE(6,1116)INTRY CALL RESET(9,1) INTRY=1 GOTO 110 C C C INTEGER CHANGE C 400 NTRY=1 WRITE(2,1130) 1130 FORMAT(X"ENTRY #? _") READ(1,*)NTRY IPNT=10*(NTRY-1)+1 CALL DRD(9,IPNT,JBUF(1),10,IE) IF(IE.EQ.0)GOTO 410 408 WRITE(2,1131)IE,NTRY 1131 FORMAT(X"READ ERROR: "I2", ENTRY #"I4) GOTO 110 410 WRITE(2,1136) 1136 FORMAT(2X"FRN# TYPE :FSTSCT OFFSET:LSTSCT OFFSET:" 1 "WRTSCT OFFSET:RD SCT OFFSEGT"/X,4(13(1H-)":"),13(1H-)) WRITE(2,1132)JBUF 1132 FORMAT(10(X,I6)/) 412 WRITE(2,1133) 1133 FORMAT(X"CHANGE DESIRED? (YE OR NO) _") READ(1,1001)IANSW IF(IANSW.EQ.2HNO)GOTO 110 IF(IANSW.NE.2HYE)GOTO 412 IF(LU.NE.6)GOTO 420 WRITE(6,1135)NTRY WRITE(6,1136) WRITE(6,1132)JBUF 1135 FORMAT(X"ENTRY #"I4) 420 IFW=2 ILW=2 WRITE(2,1112) READ(1,*)IFW,ILW IF((IFW.LT.1).OR.(IFW.GT.10))GOTO 420 IF((ILW.LT.1).OR.(ILW.GT.10))GOTO 420 IF(IFW.GT.ILW)GOTO 420 WRITE(2,1134) 1134 FORMAT(X"ENTER INTEGER CHANGES: _") READ(1,*)(JBUF(J),J=IFW,ILW) WRITE(2,1132)JBUF IF(LU.EQ.6)WRITE(6,1132)JBUF GOTO 600 C C C OCTAL CHANGE C 500 NTRY=1 WRITE(2,1130) READ(1,*)NTRY IPNT=10*(NTRY-1)+1 CALL DRD(9,IPNT,JBUF(1),10,IE) IF(IE.NE.0)GOTO 408 WRITE(2,1136) WRITE(2,1152)JBUF 1152 FORMAT(10(X,K6)/) 512 WRITE(2,1133) READ(1,1001)IANSW IF(IANSW.EQ.2HNO)GOTO 110 IF(IANSW.NE.2HYE)GOTO 512 IF(LU.NE.6)GOTO 520 WRITE(6,1155)NTRY WRITE(6,1136) WRITE(6,1152)JBUF 1155 FORMAT(X"ENTRY #"I4) 520 IFW=2 ILW=2 WRITE(2,1112) READ(1,*)IFW,ILW IF((IFW.LT.1).OR.(IFW.GT.10))GOTO 520 IF((ILW.LT.1).OR.(ILW.GT.10))GOTO 520 IF(IFW.GT.ILW)GOTO 520 WRITE(2,1154) 1154 FORMAT(X"ENTER OCTAL CHANGES: _") READ(1,1156)(JBUF(J),J=IFW,ILW) 1156 FORMAT(K6) WRITE(2,1152)JBUF IF(LU.EQ.6)WRITE(6,1152)JBUF C C C TRANSFER TO DISC C 600 WRITE(2,1142)NTRY 1142 FORMAT(X"DUMP ENTRY #"I4" TO CATALOG? (YE OR NO) _") READ(1,1001)IANSW IF(IANSW.EQ.2HNO)GOTO 110 IF(IANSW.NE.2HYE)GOTO 600 CALL DRT(9,IPNT,JBUF(1),10,IE) IF(IE.EQ.0)GOTO 620 WRITE(2,1144)IE,NTRY 1144 FORMAT(X"WRITE ERROR: "I2", ENTRY #"I4) GOTO 110 620 NTRY=1+(IPNT-1)/10 WRITE(2,1146)NTRY 1146 FORMAT(X"CATALOG ENTRY #"I4" EDIT COMPLETE"/) IF(LU.EQ.6)WRITE(6,1146)NTRY GOTO 110 C C C MISC C 900 WRITE(2,1200) 1200 FORMAT(X"NEW LOGICAL UNIT? _") READ(1,*)LU IF((LU.LT.1).OR.(LU.GT.20))GOTO 900 GOTO 110 C 9980 CALL RESET(9,1) CALL CLOSE(9,IER) IF(IER.EQ.0)RETURN GOTO 9998 9996 CALL RESET(9,1) CALL CLOSE(9,IER) IF(IER.EQ.0)GOTO 9999 9998 WRITE(2,1201)IER 1201 FORMAT(X"CLOSE FILE ERROR: "I1) 9999 CALL EPRS END SUBROUTINE EDLS C *************** C C D. BARKLEY C EDITD FTN4 SUB 2 OF 3 C C DIMENSION IBUF(129),LBUF(128),FBUF(64),GBUF(64) DIMENSION LBL(3),IDV(7) EQUIVALENCE(IBUF,FBUF),(IBUF(2),GBUF) C LU=2 WRITE(2,5001) 5001 FORMAT(20(X/)25X"LOGICAL SECTOR EDITOR"/25X,21(1H*)/) C C C SET DISC CHANNEL CALL DRIVE(IDR) IEXDR=IDR 4110 WRITE(2,5003)IDR 5003 FORMAT(X"PRESENT OPERATIONS ON '"A2"' PLATTER, " 1 "WISH TO CHANGE? (YE OR NO) _") READ(1,1001)IANSW 1001 FORMAT(A2) IF(IANSW.EQ.2HNO)GOTO 4120 IF(IANSW.NE.2HYE)GOTO 4110 IF(IDR.EQ.2HRE)GOTO 4114 IDR=2HRE GOTO 4110 4114 IDR=2HFI GOTO 4110 4120 IF(IDR.EQ.2HFI)IDV(2)=0 IF(IDR.EQ.2HRE)IDV(2)=1 IF((IEXDR.EQ.2HRE).AND.(IDV(2).EQ.1))GOTO 4121 IF((IEXDR.EQ.2HRE).AND.(IDV(2).EQ.0))IDV(2)=1 GOTO 4122 4121 IDV(2)=0 4122 IF((IDV(2).LT.0).OR.(IDV(2).GT.1))STOP 4122 C C C C ******************** CALL VECTOR ********** C I/O CHANNEL - AS BEFORE IDV(1)=0 C DRIVE - 0=RE, 1=FI C IDV(2) C STARTING SECTOR - PHYSICAL SECTOR # C IDV(3) C # WORDS TRANSMITTED - 1 SECTOR IDV(4)=128 C BUFFER ADDRESS - IBUF(1) IDV(5)=IGTAD(IBUF(1)) C FUNCTION - READ, WAIT FOR COMPLETION C IDV(6) C ******************** C C IBUF(129)=0 WRITE(2,5101) 5101 ԉFORMAT(X"AVAILABLE COMMANDS:"/ 1 10X"LA - ASCII \" 17X"CA - ASCII \"/ 2 10X"LI - INTEGER > LIST"11X"CI - INTEGER > CHANGE"/ 3 10X"LO - OCTAL /" 17X"CO - OCTAL /"/ 4 10X"LR - REAL /" 18X"CR - REAL /"/ 5 10X"RE - RETRIEVE NEXT LOGICAL SECTOR"/ 6 10X"LU - CHANGE OUTPUT LOGICAL UNIT"/ 7 10X"DD - DUMP EDIT TO DISC"/ 8 10X"/D - RETURN TO DISC EDITOR"/ 9 10X"/E - RETURN TO TODS-C"//) C 4210 WRITE(2,5102) 5102 FORMAT(X"EDIT LOGICAL SECTOR #? (OCTAL USE @) _") READ(1,*)LSECT IF((LSECT.LT.0).OR.(LSECT.GT.9744))GOTO 4210 C C ******************** IDV(3)=IFIZZ(LSECT) IDV(6)=1 CALL DRDWR(IDV) IF(IDV(7))4212,4215,4212 4212 WRITE(2,5090)IDV(7) 5090 FORMAT(X"DISC READ TRANSFER ERROR. STATUS = "K6"B") STOP C ******************** C 4215 WRITE(2,5104)LSECT,LSECT 5104 FORMAT(X"LOGICAL SECTOR "I4" ("K6"B) IN CORE.") IF(LU.EQ.6)WRITE(6,5104)LSECT,LSECT C 4220 WRITE(2,1020) 1020 FORMAT(X"COMMAND? _") READ(1,1001)ICMD IF(ICMD.EQ.2HDD)GOTO 4300 IF(ICMD.EQ.2HRE)GOTO 4210 IF(ICMD.EQ.2HLU)GOTO 4600 IF(ICMD.EQ.2H/D)RETURN IF(ICMD.EQ.2H/E)CALL EPRS IF(ICMD.EQ.2H? )GOTO 4250 IF((ICMD.NE.2HLA).AND.(ICMD.NE.2HLI).AND.(ICMD.NE.2HLO).AND. 1 (ICMD.NE.2HCA).AND.(ICMD.NE.2HCI).AND.(ICMD.NE.2HCO).AND. 2 (ICMD.NE.2HLR).AND.(ICMD.NE.2HCR))GOTO 4220 IFW=1 ILW=128 4225 WRITE(2,1112) 1112 FORMAT(X"LIMITS? _") READ(1,*)IFW,ILW IF((IFW.LT.1).OR.(IFW.GT.128))GOTO 4225 IF((ILW.LT.1).OR.(ILW.GT.128))GOTO 4225 IF(IFW.GT.ILW)GOTO 4225 IF(ICMD.EQ.2HLA)GOTO 4400 IF(ICMD.EQ.2HLI)GOTO 4450 IF(ICMD.EQ.2HLO)GOTO 4470 IF(ICMD.EQ.2HLR)GOTO 4480 IF(ICMD.EQ.2HCA)GOTO 4500 IF(ICMD.EQ.2HCI)GOTO 4550 IF(ICMD.EQ.2HCO)GOTO 4570 IF(ICMD.EQ.2HCR)GOTO 4580 GOTO 4220 C 4250 WRITE(2,5101) GOTO 4215 nLC C ******************** 4300 IDV(6)=2 C WRITE FUNCTION CALL DRDWR(IDV) IF(IDV(7))4320,4330,4320 4320 WRITE(2,5094)IDV(7) 5094 FORMAT(X"DISC WRITE TRANSFER ERROR. STATUS = "K6"B") STOP 4330 WRITE(2,5095) 5095 FORMAT(X"DISC EDIT COMPLETE"/) GOTO 4210 C ******************** C C "LIST" OPERATIONS C 4400 DO 4410 J=IFW,ILW LBUF(J)=IBUF(J) IF((LU.NE.2).AND.(LU.NE.6))GOTO 4410 LL=IAND(LBUF(J),377B) LH=IAND(LBUF(J),177400B) IF((LL.LT.40B).OR.(LL.GT.137B))LBUF(J)=LH+100B LL=IAND(LBUF(J),377B) IF((LH.LT.20000B).OR.(LH.GT.57400B))LBUF(J)=LL+40000B 4410 CONTINUE 4420 DO 4422 I=IFW,ILW,16 LAST=I+15 IF((ILW-I).LT.16)LAST=ILW 4422 WRITE(LU,5120)I,(LBUF(J),J=I,LAST) 5120 FORMAT(" ("I3")"2X,16A2) GOTO 4220 C 4450 DO 4452 I=IFW,ILW,8 LAST=I+7 IF((ILW-I).LT.8)LAST=ILW 4452 WRITE(LU,5130)I,(IBUF(J),J=I,LAST) 5130 FORMAT(" ("I3")"8(2X,I6)) GOTO 4220 C 4470 DO 4472 I=IFW,ILW,8 LAST=I+7 IF((ILW-I).LT.8)LAST=ILW 4472 WRITE(LU,5140)I,(IBUF(J),J=I,LAST) 5140 FORMAT(" ("I3")"8(2X,K6)) GOTO 4220 C 4480 IF(MOD(IFW,2).EQ.0)GOTO 4490 C ODD FW DO 4482 I=(IFW+1)/2,(ILW+1)/2,5 LAST=I+4 IF(((ILW+1)/2-I).LT.5)LAST=(ILW+1)/2 K=2*I-1 4482 WRITE(LU,5145)K,(FBUF(J),J=I,LAST) 5145 FORMAT(" ("I3")"5(2X,G11.5)) GOTO 4220 C EVEN FW 4490 DO 4492 I=IFW/2,ILW/2,5 LAST=I+4 IF((ILW/2-I).LT.5)LAST=ILW/2 K=2*I 4492 WRITE(LU,5145)K,(GBUF(J),J=I,LAST) GOTO 4220 C C "CHANGE" OPERATIONS C 4500 WRITE(2,5152) 5152 FORMAT(X"ENTER ASCII CHANGES: _") READ(1,5150)(IBUF(J),J=IFW,ILW) 5150 FORMAT(36A2) GOTO 4220 C 4550 WRITE(2,1134) 1134 FORMAT(X"ENTER INTEGER CHANGES: _") READ(1,*)(IBUF(J),J=IFW,ILW) GOTO 4220 C 4570 WRITE(2,1154) 1154 FORMAT(X"ENTER OCTAL CHANGES: _") READ(1,5170)(IBUF(J)9,J=IFW,ILW) 5170 FORMAT(K6) GOTO 4220 C 4580 WRITE(2,5182) 5182 FORMAT(X"ENTER REAL CHANGES: _") IF(MOD(IFW,2).EQ.0)GOTO 4590 READ(1,*)(FBUF(J),J=(IFW+1)/2,(ILW+1)/2) GOTO 4220 4590 READ(1,*)(GBUF(J),J=IFW/2,ILW/2) GOTO 4220 C C MISC C 4600 WRITE(2,1200) 1200 FORMAT(X"NEW LOGICAL UNIT? _") READ(1,*)LU IF((LU.LT.1).OR.(LU.GT.20))GOTO 4600 GOTO 4215 END SUBROUTINE EDFL C *************** C C D. BARKLEY C EDITD FTN4 SUB 3 OF 3 C C DIMENSION MBUF(401),NBUF(400),CBUF(200),DBUF(200) DIMENSION IEQT(10) EQUIVALENCE(MBUF,CBUF),(MBUF(2),DBUF) C LU=2 WRITE(2,3001) 3001 FORMAT(20(X/)25X"FILE EDITOR"/25X,11(1H*)/) C 2100 MBUF(401)=0 MAXBT=400 C WRITE(2,3002) 3002 FORMAT(X"FILE #? _") READ(1,*)IFRN 2102 WRITE(2,3003) 3003 FORMAT(X"FILE TYPE? _") READ(1,*)ITYPE IF((ITYPE.LT.0).OR.(ITYPE.GT.77B))GOTO 2102 CALL OPEN(9,IFRN,IER,ITYPE) IF(IER.EQ.0)GOTO 2160 WRITE(2,1003)IER 1003 FORMAT(X"OPEN FILE ERROR: "I1) GOTO 2100 C 2160 DO 2162 I=3,10 2162 CALL EQTXR(9,I,IEQT(I)) NMWDS=(IEQT(5)-IEQT(3))*128+IEQT(6)-IEQT(4) IWRT=(IEQT(7)-IEQT(3))*128+IEQT(8)-IEQT(4) IRED=(IEQT(9)-IEQT(3))*128+IEQT(10)-IEQT(4) C WRITE(2,3101) 3101 FORMAT(X"AVAILABLE COMMANDS:"/ 1 10X"LA - ASCII \" 17X"CA - ASCII \"/ 2 10X"LI - INTEGER > LIST"11X"CI - INTEGER > CHANGE"/ 3 10X"LO - OCTAL /" 17X"CO - OCTAL /"/ 4 10X"LR - REAL /" 18X"CR - REAL /"/ 5 10X"RE - RETRIEVE NEXT BYTE"/ 6 10X"CB - CHANGE BYTE SIZE"/ 7 10X"NF - RETRIEVE NEW FILE"/ 8 10X"LU - CHANGE OUTPUT LOGICAL UNIT"/ 9 10X"DD - DUMP EDIT TO DISC"/ 1 10X"/D - RETURN TO DISC EDITOR"/ 2 10X"/E - RETURN TO TODS-C"//) C 2210 WRITE(2,3010)NMWDS,IWRT,IRED 3010 FORMAT(X"ALLOCATED FILE SIZE = "I5 1 ". WRITE PNTR = "I5"I?, READ PNTR = "I5,/) WRITE(2,3102) 3102 FORMAT(X"EDIT BYTE #? _") READ(1,*)LBYTE IF((LBYTE.LT.1).OR.(LBYTE.GT.81))GOTO 2210 C IPNT=(LBYTE-1)*400+1 CALL DRD(9,IPNT,MBUF(1),MAXBT,IE) IF(IE.EQ.0)GOTO 2215 WRITE(2,3090)IE,LBYTE,IPNT 3090 FORMAT(X"DISC READ ERROR: "I1", BYTE # "I2", WORD # "I5) GOTO 2700 2215 WRITE(2,3104)MAXBT,LBYTE,IPNT 3104 FORMAT(X,I3" WORD BYTE # "I2" IN CORE (WORD "I5" & UP).") IF(LU.EQ.6)WRITE(6,3104)MAXBT,LBYTE,IPNT C 2220 WRITE(2,1020) 1020 FORMAT(X"COMMAND? _") READ(1,1001)ICMD 1001 FORMAT(A2) IF(ICMD.EQ.2HDD)GOTO 2300 IF(ICMD.EQ.2HRE)GOTO 2210 IF(ICMD.EQ.2HCB)GOTO 2700 IF(ICMD.EQ.2HNF)GOTO 2750 IF(ICMD.EQ.2HLU)GOTO 2600 IF(ICMD.EQ.2H/D)GOTO 9987 IF(ICMD.EQ.2H/E)GOTO 9997 IF(ICMD.EQ.2H? )GOTO 2250 IF((ICMD.NE.2HLA).AND.(ICMD.NE.2HLI).AND.(ICMD.NE.2HLO).AND. 1 (ICMD.NE.2HCA).AND.(ICMD.NE.2HCI).AND.(ICMD.NE.2HCO).AND. 2 (ICMD.NE.2HLR).AND.(ICMD.NE.2HCR))GOTO 2220 IFW=1 ILW=MAXBT 2225 WRITE(2,1112) 1112 FORMAT(X"LIMITS? _") READ(1,*)IFW,ILW IF((IFW.LT.1).OR.(IFW.GT.MAXBT))GOTO 2225 IF((ILW.LT.1).OR.(ILW.GT.MAXBT))GOTO 2225 IF(IFW.GT.ILW)GOTO 2225 IF(ICMD.EQ.2HLA)GOTO 2400 IF(ICMD.EQ.2HLI)GOTO 2450 IF(ICMD.EQ.2HLO)GOTO 2470 IF(ICMD.EQ.2HLR)GOTO 2480 IF(ICMD.EQ.2HCA)GOTO 2500 IF(ICMD.EQ.2HCI)GOTO 2550 IF(ICMD.EQ.2HCO)GOTO 2570 IF(ICMD.EQ.2HCR)GOTO 2580 GOTO 2220 C C 2250 WRITE(2,3101) GOTO 2215 C C 2700 WRITE(2,3005) 3005 FORMAT(X"NUMBER OF READ BYTE WORDS? _") READ(1,*)MAXBT IF((MAXBT.LT.1).OR.(MAXBT.GT.400))GOTO 2700 GOTO 2210 C C 2750 CALL CLOSE(9,IER) IF(IER.EQ.0)GOTO 2100 GOTO 9998 C C 2300 CALL DRT(9,IPNT,MBUF(1),MAXBT,IE) IF(IE.EQ.0)GOTO 2330 WRITE(2,3094)IE,LBYTE,IPNT 3094 FORMAT(X"DISC WRIT+E ERROR: "I2", BYTE #"I6", WORD #"I5) GOTO 2220 2330 WRITE(2,5095) 5095 FORMAT(X"DISC EDIT COMPLETE"/) GOTO 2210 C C "LIST" OPERATIONS C 2400 DO 2410 J=IFW,ILW NBUF(J)=MBUF(J) IF((LU.NE.2).AND.(LU.NE.6))GOTO 2410 LL=IAND(NBUF(J),377B) LH=IAND(NBUF(J),177400B) IF((LL.LT.40B).OR.(LL.GT.137B))NBUF(J)=LH+100B LL=IAND(NBUF(J),377B) IF((LH.LT.20000B).OR.(LH.GT.57400B))NBUF(J)=LL+40000B 2410 CONTINUE 2420 DO 2422 I=IFW,ILW,16 LAST=I+15 IF((ILW-I).LT.16)LAST=ILW 2422 WRITE(LU,5120)I,(NBUF(J),J=I,LAST) 5120 FORMAT(" ("I3")"2X,16A2) GOTO 2220 C 2450 DO 2452 I=IFW,ILW,8 LAST=I+7 IF((ILW-I).LT.8)LAST=ILW 2452 WRITE(LU,5130)I,(MBUF(J),J=I,LAST) 5130 FORMAT(" ("I3")"8(2X,I6)) GOTO 2220 C 2470 DO 2472 I=IFW,ILW,8 LAST=I+7 IF((ILW-I).LT.8)LAST=ILW 2472 WRITE(LU,5140)I,(MBUF(J),J=I,LAST) 5140 FORMAT(" ("I3")"8(2X,K6)) GOTO 2220 C 2480 IF(MOD(IFW,2).EQ.0)GOTO 2490 C ODD FW DO 2482 I=(IFW+1)/2,(ILW+1)/2,5 LAST=I+4 IF(((ILW+1)/2-I).LT.5)LAST=(ILW+1)/2 K=2*I-1 2482 WRITE(LU,5145)K,(CBUF(J),J=I,LAST) 5145 FORMAT(" ("I3")"5(2X,G11.5)) GOTO 2220 C EVEN FW 2490 DO 2492 I=IFW/2,ILW/2,5 LAST=I+4 IF((ILW/2-I).LT.5)LAST=ILW/2 K=2*I 2492 WRITE(LU,5145)K,(DBUF(J),J=I,LAST) GOTO 2220 C C "CHANGE" OPERATIONS C 2500 WRITE(2,5152) 5152 FORMAT(X"ENTER ASCII CHANGES: _") READ(1,5150)(MBUF(J),J=IFW,ILW) 5150 FORMAT(36A2) GOTO 2220 C 2550 WRITE(2,1134) 1134 FORMAT(X"ENTER INTEGER CHANGES: _") READ(1,*)(MBUF(J),J=IFW,ILW) GOTO 2220 C 2570 WRITE(2,1154) 1154 FORMAT(X"ENTER OCTAL CHANGES: _") READ(1,5170)(MBUF(J),J=IFW,ILW) 5170 FORMAT(K6) GOTO 2220 C 2580 WRITE(2,5182) 5182 FORMAT(X"ENTER REAL CHANGES: _") IF(MOD(IFW,2).EQ.0)GOTO 2590 READ(1,*)(CBUF(J),J=(IFW+1)/2,(ILW+1)/2)B@< GOTO 2220 2590 READ(1,*)(DBUF(J),J=IFW/2,ILW/2) GOTO 2220 C C MISC C 2600 WRITE(2,1200) 1200 FORMAT(X"NEW LOGICAL UNIT? _") READ(1,*)LU IF((LU.LT.1).OR.(LU.GT.20))GOTO 2600 GOTO 2215 C 9987 CALL CLOSE(9,IER) IF(IER.EQ.0)RETURN GOTO 9998 9997 CALL CLOSE(9,IER) IF(IER.EQ.0)GOTO 9999 9998 WRITE(2,1201)IER 1201 FORMAT(X"CLOSE FILE ERROR: "I1) 9999 CALL EPRS END END$ BASMB,R,B,L HED BASIC MAG TAPE FUNCTION/CALL REQUESTS NAM MAGTP ATS BASIC VERSION SUP 5-28-74 * D. BARKLEY * * *** FUNCTIONS: ENT .IERR,IEOT,ISOT,LOCAL,NOWRT ENT IEOF,IWRDS,IUNIT * *** CALLS: ENT RWSTB,GAP3,CLEAR,BFINP,BFOUT * * * *** UTILITY ROUTINES *** * EXT .ENTR,ERROR,.IOC.,.IENT,FLOAT,.DST * * * *** EXTERNAL CONSTANTS *** * EXT .1,.63,M2 * * * *** SUBROUTINE STATUS *** * EXT ERRCD EXT A440E ERROR MNEMONIC POINTER * * * * *************** * * FUNCTIONS * * *************** * * CALLED BY A 'JSB LABEL' WITH THE ARGUMENT IN * FLOATING POINT FORM IN A & B REGISTERS. * * THE FLOATING POINT RESULT IS RETURNED IN A & B. * * NOTE: 'FAIL' BRANCHING OPTION NOT AVAILABLE FOR FUNCTIONS. * * JSB ERR IEOF NOP ENTRY POINT. JSB .IENT JMP *-3 SZA UNIT REFERENCE ZERO? CLE,SSA NO; UNIT REFERENCE NEGATIVE? JMP IEOF-1 LDB B30K NO, LOAD DYNAMIC STATUS REQUEST JSB STAT. GO GET THE UNIT STATUS. ALF,CLE,ALF SHIFT THE "EOF" BIT 7 TO 15. JSB FLOAT JMP IEOF,I RETURN. SPC 2 JSB ERR .IERR NOP ENTRY POINT. JSB .IENT JMP *-3 SZA UNIT REFERENCE ZERO? CLE,SSA NO; UNIT REFERENCE NEGATIVE? JMP .IERR-1 LDB B30K NO, LOAD DYNAMIC STATUS REQUEST JSB STAT. GO GET THE UNIT STATUS. AND B22 SAVE THE ERROR BITS 1 & 4. CCE,SZA WERE THERE ANY ERRORS? ELA,CLE,RAR YES, SO MAKE "A" NEGATIVE. JSB FLOAT JMP .IERR,I NO, RETURN. SPC 2 JSB ERR IEOT NOP ENTRY POINT. JSB .IENT JMP ,^*-3 SZA UNIT REFERENCE ZERO? CLE,SSA NO; UNIT REFERENCE NEGATIVE? JMP IEOT-1 LDB B30K NO, LOAD DYNAMIC STATUS REQUEST JSB STAT. GO GET THE UNIT STATUS. ALF,CLE,ALF SHIFT THE "EOT" RAL,CLE,RAL BIT 5 TO 15. JSB FLOAT JMP IEOT,I RETURN. SPC 2 JSB ERR IWRDS NOP ENTRY POINT. JSB .IENT JMP *-3 SZA UNIT REFERENCE ZERO? CLE,SSA NO; UNIT REFERENCE NEGATIVE? JMP IWRDS-1 LDB B40K NO, LOAD STATUS REQUEST JSB STAT. GO GET THE UNIT STATUS STB A STORE THE LOG IN "A" FOR RETURN. ELA,CLE,ERA REMOVE THE MODE FLAG. JSB FLOAT JMP IWRDS,I RETURN. SPC 2 JSB ERR LOCAL NOP ENTRY POINT. JSB .IENT JMP *-3 SZA UNIT REFERENCE ZERO? CLE,SSA NO; UNIT REFERENCE NEGATIVE? JMP LOCAL-1 LDB B30K NO, LOAD DYNAMIC STATUS REQUEST JSB STAT. GO GET THE UNIT STATUS. RAR,CLE SHIFT THE "LOCAL" BIT 0 TO 15. JSB FLOAT JMP LOCAL,I RETURN. SPC 2 JSB ERR ISOT NOP ENTRY POINT. JSB .IENT JMP *-3 SZA UNIT REFERENCE ZERO? CLE,SSA NO; UNIT REFERENCE NEGATIVE? JMP ISOT-1 LDB B30K NO, LOAD DYNAMIC STATUS REQUEST JSB STAT. GO GET THE UNIT STATUS. ALF,ALF SHIFT THE "SOT" RAL,CLE BIT 6 TO 15. JSB FLOAT JMP ISOT,I RETURN. SPC 2 JSB ERR IUNIT NOP JSB .IENT JMP *-3 CLE,SSA UNIT REFERENCE NEGATIVE? JMP IUNIT-1 LDB B40K NO, LOAD THE STATUS REQUEST JSB STAT. GO EXECUTE THE REQUEST JSB FLOAT JMP IUNIT,I RETURN SPC 2 JSB ERR NOWRT NOP JSB .IENT JMP *-3 SZA UINIT REFERENCE ZERO? CLE,SSA UNIT REFERENCE NEGATIVE? JMP NOWRT-1 YES, ERROR. LDB B30K NO, GO GET JSB STAT. DYNAMIC STATUS RAR,RAR SHIFT THE "WRITE ENABLE" RAR,CLE BIT 2 TO 15. JSB FLOAT JMP NOWRT,I RETURN SPC 2 * * * *********** * * CALLS * * *********** * * CALLED BY A STANDARD FORTRAN CALLING SEQUENCE. * * JSB ERR1 U.1 NOP UNIT-REFERENCE NUMBER PARAMETER. RWSTB NOP ENTRY POINT. JSB .ENTR DEF U.1 CLB STB ERRCD LDA U.1,I LOAD THE UNIT-REFERENCE NUMBER. SZA UNIT REFERENCE ZERO? CCE,SSA NO; UNIT REFERENCE NEGATIVE? JMP RWSTB-2 LDB B30.5 NO, LOAD REWIND/STANDBY REQUEST JSB STAT. GO EXECUTE THE REQUEST. JMP RWSTB,I RETURN. SPC 2 JSB ERR1 U.2 NOP UNIT-REFERENCE NUMBER PARAMETER. GAP3 NOP ENTRY POINT JSB .ENTR DEF U.2 CLB STB ERRCD LDA U.2,I SZA UNIT REFERENCE ZERO? CCE,SSA UNIT REFERENCE NEGATIVE? JMP GAP3-2 LDB B30.6 NO, LOAD THE 3" ERASE REQUEST JSB STAT. GO EXECUTE THE REQUEST. JMP GAP3,I RETURN SPC 2 JSB ERR1 U.3 NOP UNIT REFERENCE NUMBER PARAMETER CLEAR NOP ENTRY POINT JSB .ENTR DEF U.3 CLB STB ERRCD LDA U.3,I CLE,SSA UNIT REFERENCE NEGATIVE? JMP CLEAR-2 CLB NO, ENTER: B=0, CLEAR REQUEST JSB STAT. GO EXECUTE THE REQUEST JMP CLEAR,I RETURN SPC 2 * READ FROM MAG TAPE SPC 1 U.6 NOP UNIT REFERENCE NUMBER PARAMETER A.0 NOP BUFFER ADDRESS PARAMETER-FL.PT. L.0 NOP BUFFER LENGTH PARAMETER BFINP NOP ENTRY POINT JSB .ENTR DEF U.6  CLB STB ERRCD LDA U.6,I LDB A.0 SZA UNIT REFERENCE ZERO? SZB,RSS NO; IS BUFFER ADDRESS ZERO? JMP E.1 YES LDB L.0,I NO, LOAD BUFFER LENGTH SZB,RSS LENGTH ZERO? JMP E.1 YES * SSB,RSS NO, LENGTH NEGATIVE? JMP *+4 NO CMB,INB YES, MAKE POSITIVE INB CONVERT BRS TO WORDS STB B.LTH SAVE + LENGTH ADB A.0 SET MIDPOINT & STB MIDAD SAVE BUFFER ADDRESS STB B.ADD STORE BUFFER ADDRESS ADB B.LTH STB LSTAD SAVE LAST INTEGER ADDR + 1 ADB M2 STB LAST SAVE LAST FL.PT. WORD ADDR * CHECK VALIDITY OF ARRAY LIMITS DLD A.0,I LOAD FIRST VARIABLE JSB .DST ATTEMPT DEF A.0,I TO RESTORE DLD LAST,I LOAD LAST VARIABLE JSB .DST ATTEMPT DEF LAST,I TO RESTORE * CALL DRIVER LDA U.6,I LDB B10.1 LOAD BINARY READ REQUEST SSA READ REQUEST FOR 'BCD'? LDB B10K YES, LOAD 'BCD' READ REQUEST CCE,SSA ENTER: E=1; IS REQUEST NEGATIVE? CMA,INA YES, COMPLEMENT UNIT REFERENCE JSB STAT. GO EXECUTE REQUEST * ALLOW DMA COMPLETION PRIOR TO DATA CONVERSION COMPL LDA U.6,I CLE,SSA CMA,INA LDB B40K JSB STAT. STATUS REQUEST SSA BUSY? JMP COMPL YES, CONTINUE LOOP * CONVERT READINGS TO FLOATING POINT RLOOP LDA MIDAD,I JSB FLOAT JSB .DST DEF A.0,I ISZ A.0 ISZ A.0 ISZ MIDAD LDB MIDAD CPB LSTAD JMP BFINP,I RETURN JMP RLOOP * E.1 JSB ERROR DEF *+3 DEF .1 DEF A440E JMP BFINP,I SKP * WRITE ON MAG TAPE SPC 1 U.7 NOP UNIT REFERENCE NUMBER PARAMETER A.1 NOP BUFFER ADDRESS PARAMETER L.1 NOP BUFFER LENGTH PARAMETER BFOUT NOP ENTRY POINT JSB .ENTR DEF U.7 CLB STB ERRCD LDA U.7,I LDB A.1 LOAD BUFFER ADDRESS SZA UNIT REFERENCE ZERO? SZB,RSS NO; IS BUFFER ADDRESS ZERO? JMP E.2 STB B.ADD NO, STORE BUFFER ADDRESS STB FLTAD SAVE CONVERSION STB INTAD ADDRESSES LDB L.1,I LOAD BUFFER LENGTH PARAMETER SZB,RSS LENGTH ZERO? JMP E.2 YES * SSB,RSS NO, LENGTH NEGATIVE? JMP *+4 NO CMB,INB YES, MAKE POSITIVE INB CONVERT BRS TO WORDS STB B.LTH STORE POS BUFFER LENGTH ADB A.1 SET MIDPOINT & STB LSTAD SAVE LAST INTEGER ADDR + 1 ADB B.LTH SET ENDPOINT ADB M2 & SAVE LAST STB LAST FL.PT WORD ADDR * CHECK VALIDITY OF ARRAY LIMITS DLD A.1,I LOAD FIRST VARIABLE JSB .DST ATTEMPT DEF A.1,I TO RESTORE DLD LAST,I LOAD LAST VARIABLE JSB .DST ATTEMPT DEF LAST,I TO RESTORE * CONVERT FL.PT. DATA TO INTEGER FOR OUTPUT WLOOP DLD FLTAD,I JSB .IENT JMP E.2 # > 32767 STA INTAD,I ISZ FLTAD ISZ FLTAD ISZ INTAD LDB INTAD CPB LSTAD RSS JMP WLOOP * CALL DRIVER LDA U.7,I LDB B20.1 LOAD BINARY WRITE REQUEST SSA WRITE REQUEST FOR 'BCD'? LDB B20K YES, LOAD 'BCD' WRITE REQUEST CCE,SSA ENTER: E=1; IS REQUEST NEGATIVE? CMA,INA YES, COMPLEMENT UNIT REFERENCE JSB STAT. GO EXECUTE REQUEST * ALLOW DMA COMPLETION PRIOR TO RETURN CMPL LDA U.7,I CLE,SSA CMA,INA LDB B40K JSB STAT. STATUS REQUEST SSA BUSY? JMP CMPL? YES, CONTINUE LOOP JMP BFOUT,I RETURN * E.2 JSB ERROR DEF *+3 DEF .1 DEF A440E JMP BFOUT,I SPC 2 STAT. NOP ENTRY POINT. AND B77 SAVE THE UNIT NUMBER ONLY. IOR B INCLUDE THE OPERATION CODE. STA REQST SETUP THE REQUEST CODE. CLA,SEZ ENTER: A=0; REJECT ADDRESS? LDA JMP.2 YES, LOAD THE 'JMP' INSTRUCTION STA REJCT STORE THE INSTRUCTION .JSB. JSB .IOC. STATUS REQUEST REQST OCT 0 REQUEST CODE REJCT NOP 'NOP' OR 'JMP *-2' B.ADD JMP STAT.,I BUFFER ADDRESS OR RETURN B.LTH NOP BUFFER LENGTH LDA JMP.S LOAD RETURN JUMP INSTRUCTION STA B.ADD RESET FOR NEXT STATUS 'CALL' JMP STAT.,I RETURN. * JMP.2 JMP .JSB. REJECT ADDRESS INSTRUCTION JMP.S JMP STAT.,I RETURN JUMP INSTRUCTION SKP * * ERROR EXITS * ERR NOP JSB ERROR DEF *+3 DEF .1 DEF A440E LDA ERR,I JMP A,I RETURN TO CALLER ERR1 NOP JSB ERROR DEF *+3 DEF .1 DEF A440E ISZ ERR1 LDA ERR1,I JMP A,I RETURN TO CALLER * * * CONSTANTS, STORAGE * A EQU 0 B EQU 1 B22 OCT 22 B77 EQU .63 B10K OCT 10000 B10.1 OCT 10100 B20K OCT 20000 B20.1 OCT 20100 B30K OCT 30000 B30.5 OCT 30500 B30.6 OCT 30600 B40K OCT 40000 * MIDAD BSS 1 BUFFER MIDPOINT ADDRESS LSTAD BSS 1 LAST INTEGER ADDRESS + 1 INTAD EQU MIDAD INTEGER CONVERSION ADDR FLTAD BSS 1 FL.PT. CONVERSION ADDR LAST BSS 1 LAST FL.PT. WORD ADDRESS SPC 1 END ASMB,R,B,L NAM FTAPE ATS BASIC VERSION SUP 5-13-74 ENT FTAPE * D. BARKLEYm*($ * * *** EXTERNAL SYMBOLS *** * EXT .1,.2,.4,.7 * * *** UTILITY ROUTINES *** * EXT .ENTR,ERROR,.IOC. * * *** SUBROUTINE STATUS *** * EXT ERRCD * * *** SUBROUTINE OPTIONS *** * EXT A440E ERROR MNEMONIC POINTER * * * MAGNETIC TAPE FUNCTION CONTROL CALL * * FTAPE (LU,IF): * LU = DEVICE LOGICAL UNIT * F = FUNCTION CONTROL OF UNIT 'LU' * 1 = 4 INCH GAP THEN END-OF-FILE * 2 = BACKSPACE 1 RECORD * 4 = REWIND * * BOTH PARAMETERS INTEGER * * * LU BSS 1 F BSS 1 FTAPE NOP JSB .ENTR DEF LU CLA CLEAR STA ERRCD ERROR CODE LDB LU,I ADB .7 SSB JMP ERR1 LU < 7 ADB M68 SSB,RSS JMP ERR1 LU > 74B LDA F,I CPA .1 JMP OK CPA .2 JMP OK CPA .4 JMP OK JMP ERR1 * OK ALF,ALF POSITION RAR,RAR FUNCTION IOR IOCMD MERGE IOC MT COMMAND IOR LU,I MERGE LOGICAL UNIT STA *+2 JSB .IOC. CALL FOR TAPE OPERATION NOP JMP *-2 TRY AGAIN ON REJECT JMP FTAPE,I ** RETURN * * ERROR EXIT * ERR1 CLA,INA STA SVA JSB ERROR PRINT ERROR MESSAGE DEF *+3 DEF SVA DEF A440E JMP FTAPE,I ** RETURN * * CONSTANTS, STORAGE * M68 DEC -68 IOCMD OCT 30000 SVA BSS 1 * END c*10 COM E[10],U[10],X[10],Y[10],Z[10] 110 REM ************************* 120 REM HP7970 MAGNETIC TAPE TEST 5-22-74 140 REM ************************* D. BARKLEY 145 REM MODIF. AMD TEST 210 PRINT 230 PRINT 240 LET E[1]=E[2]=0 250 FOR Q=1 TO 25 260 DSPLAY 270 NEXT Q 280 DSPLAY " " 333 DSPLAY TAB(15);"OPERATOR INSTRUCTIONS" 334 DSPLAY 335 DSPLAY " PUT HP7970B MAGNETIC TAPE UNIT IN ON-LINE." 336 PAUSE 337 REM *** DESCRIPTION *** 338 REM 340 REM TEN FILES OF DATA ARE WRITTEN ONTO MAGNETIC TAPE 345 REM WITH AN END OF FILE MARK (EOF) AND GAP TERMINAT- 350 REM ING EACH FILE. BLOCKS OF 100 WORDS (ONE RECORD) 355 REM ARE TRANSFERRED AT ONE TIME UNTIL TEN FILES (ONE 360 REM FILE = 1000 WORDS) ARE GENERATED. ALL TEN FILES 365 REM ARE THEN READ BACK IN CONSECUTIVE ORDER AND VER- 370 REM IFIED. THE TAPE IS THEN REWOUND AND A READ OPER- 375 REM ATION IS PERFORMED UNTIL AN EOF MARK IS ENCOUNT- 380 REM ERED. A TAPE POSITION TEST IS THEN PERFORMED 382 REM VERIFYING FORWARD AND BACKWARD SPACING OF FILES 384 REM AND RECORDS. 385 REM 386 REM 390 REM 392 REM 510 LET E=0 520 DIM A[100] 994 REM PROGRAM MAINFLOW 996 REM **************** 997 CLEAR(17) 998 REM 1250 REM *** REWIND TAPE 1260 GOSUB 6000 1275 PRINT 1276 PRINT 1280 PRINT " BEGIN THE WRITE TEST " 1285 PRINT " TIME REQUIRED --3 MINUTES--" 1290 PRINT 1292 DSPLAY 1294 DSPLAY " BEGIN WRITE TEST (3 MINUTES)" 1296 DSPLAY 1300 REM 1310 REM ***** 1320 REM *** 10 FILES 1330 FOR J1=1 TO 10 1340 REM 1350 REM ***** 1360 REM *** 10 RECORDS 1370 FOR J2=1 TO 10 1380 REM 1390 REM ***** 1400 REM *** 100 WO(RDS 1410 FOR J3=1 TO 100 1420 LET A[J3]=(J1-1)*1000+(J2-1)*100+(J3-1) 1430 NEXT J3 1440 REM 1450 REM ***** 1460 REM 1480 REM *** WRITE 100 WORDS 1490 BFOUT(17,A(1),100) 1500 NEXT J2 1510 REM 1520 REM ***** 1530 REM 1540 REM *** WRITE EOF AND 4" GAP 1550 FTAPE(17,1) 1552 IF IUNIT(17)<0 THEN 1552 1560 NEXT J1 1570 REM 1580 REM ***** 1590 REM 1605 PRINT 1606 PRINT 1610 PRINT " WRITE TEST COMPLETE" 1620 PRINT 1621 PRINT 1623 DSPLAY 1626 DSPLAY " WRITE TEST COMPLETE" 1630 REM *** REWIND 1640 GOSUB 6000 1660 PRINT " BEGIN READ AND COMPARE TEST" 1665 PRINT " TIME REQUIRED -5 MINUTES-" 1670 PRINT 1671 PRINT 1672 DSPLAY 1676 DSPLAY " BEGIN READ AND COMPARE TEST (5 MINUTES)" 1678 DSPLAY 1680 REM 1690 REM ***** 1700 REM *** 10 FILES 1710 FOR J4=1 TO 10 1720 LET E1=0 1730 REM 1740 REM ***** 1750 REM *** 10 RECORDS 1760 FOR J5=1 TO 10 1770 REM *** READ 100 WORDS 1780 BFINP(17,A(1),100) 1790 REM 1800 REM ***** 1810 REM *** COMPARE 100 WORDS 1820 FOR J6=1 TO 100 1830 LET B=(J4-1)*1000+(J5-1)*100+(J6-1) 1840 IF A[J6]=B THEN 1860 1850 LET E1=1 1860 NEXT J6 1870 REM 1880 REM ***** 1890 REM 1900 NEXT J5 1910 REM 1920 REM ***** 1930 REM 1940 IF E1=0 THEN 1980 1951 PRINT " ERROR IN FILE ",J4 1960 PRINT 1962 DSPLAY 1964 DSPLAY " ERROR IN FILE ",J4 1966 DSPLAY 1970 REM *** SKIP TO NEXT FILE 1980 PTAPE(17,1,0) 1982 IF IUNIT(17)<0 THEN 1982 1990 NEXT J4 2000 REM 2010 REM ***** 2020 REM 2025 DSPLAY " READ AND COMPARE TEST COMPLETE" 2030 DSPLAY 2040 PRINT " READ AND COMPARE TEST COMPLETE" 2050 PRINT 2060 REM *** REWIND 2070 GOSUB 6000 2100 REM *** CHECK FOR EOF MARK ON TAPE 2111 PRINT 2112 PRINT 2114_ DSPLAY 2115 DSPLAY " EOF MARK TEST" 2116 DSPLAY 2120 PRINT " EOF MARK TEST" 2130 PRINT 2131 PRINT 2134 REM 2136 REM ***** 2138 REM 2140 FOR J7=1 TO 101 2145 REM *** CHECK FOR EOF MARK ON TAPE 2150 BFINP(17,A(1),100) 2155 IF IEOF(17)<0 THEN 2240 2160 NEXT J7 2170 REM 2180 REM ***** 2190 REM 2195 DSPLAY 2197 DSPLAY " ERROR - NO EOF MARK ENCOUNTERED" 2198 DSPLAY 2210 PRINT " ERROR - NO EOF MARK ENCOUNTERED" 2220 PRINT 2230 GOTO 2280 2240 LET E=0 2245 DSPLAY 2247 DSPLAY " EOF MARK ENCOUNTERED" 2248 DSPLAY 2250 PRINT " EOF MARK ENCOUNTERED" 2260 PRINT 2261 PRINT 2270 REM *** REWIND 2280 GOSUB 6000 2285 DSPLAY 2287 DSPLAY " BEGIN FORWARD SPACING TEST" 2288 DSPLAY 2300 PRINT " BEGIN FORWARD SPACING TEST" 2305 PRINT 2306 PRINT 2310 REM *** SPACE FORWARD 7 FILES, 7 RECORDS AND READ RECORD 2320 PTAPE(17,7,7) 2322 IF IUNIT(17)<0 THEN 2322 2330 BFINP(17,A(1),100) 2340 IF A[78]=7777 THEN 2390 2350 PRINT " ERROR--FORWARD SPACING--WROTE 7777--READ"A[78] 2360 PRINT 2370 GOTO 2400 2390 PRINT " FORWARD SPACING TEST COMPLETE" 2391 PRINT 2393 DSPLAY 2394 DSPLAY " FORWARD SPACING TEST COMPLETE" 2395 DSPLAY 2400 PRINT 2401 DSPLAY 2405 DSPLAY " BEGIN BACKWARD SPACING TEST" 2407 DSPLAY 2410 PRINT " BEGIN BACKWARD SPACING TEST" 2420 PRINT 2421 PRINT 2430 REM *** SPACE BACKWARD 7 FILES, FORWARD 7 RECORDS 2440 PTAPE(17,-7,7) 2442 IF IUNIT(17)<0 THEN 2442 2450 REM *** SPACE BACKWARD 6 RECORDS AND READ RECORD 2460 PTAPE(17,0,-6) 2462 IF IUNIT(17)<0 THEN 2462 2470 BFINP(17,A(1),100) 2480 IF A[1]=1100 THEN 2530 2490 PRINT " ERROR--BACK SPACING--WROTE 1100--READ ";A[1] 2500 PRINT 2505 LET E[2]=1 2510 GOTO 2560 2520 DSPLAY 2530 PRINT " BACKWARD SPACING TEST COMPLETE" 2535 DSPLAY 2537 DSPLAY " BACKWARD SPACING TEST COMPLETE" 2538 DSPLAY 2540 PRINT 2550 REM *** REWIND TAPE AND PUT DRIVE OFF-LINE 2560 RWSTB(17) 2575 GOTO 9999 2610 STOP 5992 REM 5994 REM SUBROUTINES 5996 REM *********** 5998 REM 6000 REM *** REWIND 6010 FTAPE(17,4) 6050 RETURN 8400 REM 8410 REM ---SET ERROR FLAG-- 8420 REM 8430 REM ---INSTR./DRIVER ERROR--- 8440 REM 8450 LET E[1]=1 9999 END  2 22681-18080 1604 SC 0222 RTE HP2310C SPECIAL SUBSYSTEM DRIVER (DVR56)             H0102 2ASMB,R,L,B HED <2310 MINIVERTER RTE DRIVER> NAM DVR56 ENT I.56,C.56 * **************************************************** **************** VERSION *********************** **************************************************** * DRIVER <56> IS A SPECIAL APPLICATIONS DRIVER FOR * THE 2310 MINIVERTER, WHICH OPERATES UNDER CONTROL * OF THE I/O MODULE OF THE REAL TIME EXECUTIVE. * THIS DRIVER ALLOWS DATA TO BE SAMPLED FROM A GIVEN * MINIVERTER CHANNEL (ICHAN) A SPECIFIED NUMBER (N) * OF TIMES. THE RANDOM ADVANCE OR SEQUENTIAL MODES * ARE NOT ALLOWED WITH THIS DRIVER. THIS DRIVER * OPERATES ONLY IN THE RANDOM START MODE. THE STRUCT- * URING OF THIS DRIVER IN THIS MANNER SAVES A SIGN- * IFICANT NUMBER (ABOUT 1/2) OF THE MEMORY LOCATIONS * REQUIRED OF THE 2310/2311 SUBSYSTEM RTE DRIVER. * THIS DRIVER DOESN'T CONVERT THE MINIVERTER DATA. * THE MCONV CALL MUST BE UTILIZED FOR THE CONVERSION. * I.56 AND C.56 ARE THE ENTRY POINTS OF THE INITIATOR * AND CONTINUATOR SECTIONS OF D.56 RESPECTIVELY. **************************************************** * THE CALLS TO ENTER THE DRIVER ARE AS FOLLOWS: * * FORTRAN CALL: CALL EXEC(1,IDRT,IBUFF,N,ICHAN) * IDRT - DEVICE REF. TABLE NUMBER OF 2310 (LU#) * IBUFF - INTEGER ARRAY (DATA STORAGE BUFFER) * N - NUMBER OF TIMES DATA CHANNEL SAMPLED * ICHAN - CHANNEL NUMBER (0-255) * * * ASSEMBLER CALL: * EXT EXEC * . * . * . * JSB EXEC * DEF *+6 * DEF 1 * DEF IDRT * DEF IBUFF * DEF N * DEF ICHAN * **************************************************** ****** WRITTEN BY GRANT SUMMERS 2/20/74 *********** **************************************************** * * ***** INITIATION SECTION ***** * I.56 NOP ENTRY JSB SETIO CONFIGURE I/O INSTRUCTIONS * ****** VALID REQUEST CHECK ***** * LDA EQT6,I IS IT A CPA =B1 READ REQUEST JMP *+3 YES ERROR CLA,INA NO, A=1 REJECT STATUS JMP I.56,I RETURN TO RTIOC LDA EQT8,I NUMBER OF REQUESTED CMA,INA DATA SAMPLES GREATER SSA,RSS THAN ZERO? JMP ERROR NO,REJECT STA EQT10,I NEG. DATA SAMPLE COUNTER LDA EQT9,I 2310 CHANNEL # SSA IS IT NEGATIVE JMP ERROR YES,REJECT ADA =D-256 IS CHANNEL # SSA,RSS LESS THAN 256 JMP ERROR NO,REJECT * ****** INITILIZE MINIVERTER CONTROL ***** * .2310 LDA EQT9,I CHANNEL # IO1 OTA 0 RANDOM START MODE IO2 STC 0,C ACTIVATE 2310 CLA A=0, OPERATION INITIATED JMP I.56,I -EXIT INITIATOR - * **************************************************** * ****** COMPLETION SECTION ***** * C.56 NOP ENTRY LDB EQT1,I DID SPURIOUS SZB,RSS INTERRUPT OCCUR JMP SPURI YES, IGNORE * JSB SETIO CONFIGURE I/O INSTRUCTIONS * IO3 LIA 0 INPUT DATA FROM 2310 LDB EQT7,I CURRENT BUFFER ADDRESS STA B,I STORE DATA ISZ EQT7,I INCREMENT BUFFER ADDRESS ISZ EQT10,I INCREMENT DATA COUNTER * HAVE N DATA POINTS * BEEN OBTAINED JMP CONT NO, CONTINUE * ******COMPLETION RETURN ***** * CLA TURN OFF IO4 OTA 0 PACER IO5 CLC 0 CLEAR DEVICE LDB EQT8,I TRANS. LOG TO B,A=0 STATUS JMP C.56,I -EXIT- (P+1) * ******CONTINUATION RETURN ***** * CONT LDA EQT9,I CHANNEL # IO6 OTA 0 RANDOM START MODE IO7 STC 0,C ACTIVATE 2310 SPURI ISZ C.56 SET (P+2) RETURN JMP C.56,I -EXIT- **************************************************** * ****** SET INPUT/OUTPUT INSTRUCTIONS ***** * SETIO NOP ENTRY IOR LIA CONFIGURE LIA SC (SC=SELECT CODE) STA IO3 ADA =B100 CONFIGURE OTA SC STA IO1 STA IO4 STA IO6 ADA =B1100 CONFIGURE STC SC,C STA IO2 STA IO7 ADA =B30{ 00 CONFIGURE CLC,SC STA IO5 JMP SETIO,I * **************************************************** * ****** CONSTANTS ***** * LIA LIA 0 B EQU 1 * ****** SYSTEM BASE PAGE COMMUNICATION AREA ***** * . EQU 1650B EQT1 EQU .+8 EQT6 EQU .+13 EQT7 EQU .+14 EQT8 EQU .+15 EQT9 EQU .+16 EQT10 EQU .+17 END FTN4,B,L PROGRAM MINI DIMENSION IBUF(2000) 10 WRITE (1,100) READ (1,*) ICHAN ICHAN=ICHAN-1 WRITE (1,101) READ (1,*) N CALL EXEC(1,9,IBUF,N,ICHAN) A=0 ILST=0 CALL MCONV(IBUF,N,ILST) NMIN=IBUF(1) NMAX=IBUF(1) DO 50 I=1,N A=A+IBUF(I) IF(IBUF(I).GT.NMAX)NMAX=IBUF(I) IF(IBUF(I).LT.NMIN)NMIN=IBUF(I) 50 CONTINUE RANGE=NMAX-NMIN AVG=A/N WRITE (1,202) AVG,RANGE,NMAX,NMIN WRITE (1,103) READ (1,203) IANS IF (IANS.EQ.1HN) GO TO 10 100 FORMAT( /,"MINIVERTER DATA CHANNEL # ") 101 FORMAT("# OF TIMES TO SAMPLE CHANNEL ") 103 FORMAT("EXIT PROGRAM (Y OR N)") 202 FORMAT("AVG.=",F10.3" RANGE=",F8.1" MAX=",F8.1" MIN=",F8.1) 203 FORMAT(A1) END END$ 4  ! 22681-18081 1640 SC 0222 HIGH SPEED DISC I/O              H0102 ?fASMB,R HED ** HIGH SPEED DISK INPUT/OUTPUT ROUTINE ** ** PROGRAM-ID HSDIO ** AUTHOR W.H. HEFFNER III ** DATE MAY 29, 1974 ** PROGRAM-TYPE SUBROUTINE ** ** REVISED AUGUST 20, 1975 ... INCLUDES $USER & $SYSM ** ** PURPOSE: HIGH SPEED FILE ACCESSING UNDER PROGRAM CONTROL *** NAM HSDIO,7 ENT HSDIO,USIZE,SSIZE,CLRTB EXT .ENTR,EXEC,ERR0 SPC 2 #SECT NOP USIZE NOP JSB .ENTR DEF #SECT LDA CUDSC JSB GETTS LDA LENGH STA #SECT,I JMP USIZE,I SPC 5 QSECT NOP SSIZE NOP JSB .ENTR DEF QSECT LDA SYSSC JSB GETTS LDA LENGH STA QSECT,I JMP SSIZE,I SPC 5 CLRTB NOP CLA STA FILEA STA FCOUN LDB CLRTB,I JMP 1,I SPC 5 GETTS NOP STA SCHNL JSB EXEC DEF *+6 DEF D17 DEF T DEF S DEF SIZE DEF SCHNL LDA DISCO AND M377 STA MATCH LDA T CMA,INA ADA MATCH MPY SIZE ADA S STA LENGH JMP GETTS,I SPC 5 MATCH NOP STA ADDR LDA N3 STA CNTR LDA ADDR,I CPA 1,I RSS JMP MATFL ISZ ADDR INB ISZ CNTR JMP *-7 CCA JMP MATCH,I MATFL CLA JMP MATCH,I SPC 5 PARM BSS 5 HSDIO NOP JSB .ENTR GET CALLING PARAMETERS DEF PARM LDA PARM,I GET I/O REQUEST: 14=READ ADA N13 SUBTRACT 13 : 15=WRITE CPA D1 READ REQUEST? RSS YES CPA D2 NO, IS IT A WRITE REQUEST? RSS YES JMP ER01 NO, REQUEST ERROR CMA,INA MAKE REQUEST NEGATIVE STA IORQT SAVE REQUEST FOR DISK EXEC CALL LDA PARM+2,I GET WORD COUNT SZA,RSS ZERO? JMP ER02 YES, ILLEGAL SSA NO, IS IT NEGATIVE JMP ER02 YES, ILLEGAL AND M1776 NO, CALCULATE THE ALF,ALF NUMBER OF SECTORS RAL TO BE WRITTEN AND STA SECTS SAVE IT JSB FINDF GET FILE STATISTICS JMP ER03 BAD FILE REQUEST LDA PARM+3,I GET STARTING RELATIVE SECTOR SSA NEGATIVE? JMP ER05 YES, ERROR ADA SECTS CMA,INA ADA LENGH SSA ATTEMPT TO WRITE BEYOND FILE? JMP ER04 YES LDA PARM+1 SET UP BUFFER STA DXBUF ADDRESS LDA PARM+2 SET UP BUFFER STA DXBUL LENGH LDA T/S GET FILE STARTING ALF,ALF TRACK AND M377 NUMBER STA T AND SAVE IT LDA T/S GET FILE STARTING AND M377 SECTOR NUMBER AND ADA PARM+3,I ADD RELATIVE STARTING SECTOR STA S SAVE IT ADA N48 SSA IS SECTOR # ( 48? JMP DXFER YES, TRACK/SECTOR OK ISZ T NO, ADD ONE TO TRACK # STA S REDUCE SECTOR BY ONE TRACK JMP *-5 KEEP LOOPING UNTIL COMPLETE DXFER LDA FNADR LDB SYADR JSB MATCH SZA,RSS JMP XFER LDA D2 STA D3 LDA IORQT CMA,INA STA IORQT XFER JSB EXEC DEF *+7 TRANSFER DEF IORQT DEF D3 DXBUF NOP DXBUL NOP DEF T DEF S LDA DD3 STA D3 LDA T JMP HSDIO,I TRANSFER COMPLETE--EXIT ** **** ERROR DIAGNOSTICS **** ** ER01 LDB A01 ILLEGAL I/O REQUEST JMP EXIT ER02 LDB A02 ILLEGAL WORD COUNT JMP EXIT ER03 LDB A03 BAD FILE REQUEST JMP EXIT ER04 LDB A04 ATTEMPTED TO OVER READ/WRITE JMP EXIT ER05 LDB A05 ILLEGAL STARTING SECTOR # EXIT STB FINDF JSB EXEC DEF *+5 DEF D2 DEF B101 DEF FNAM1 DEF D3 LDB FINDF LDA HS JSB ERR0 JSB =EXEC T?RMINATE PROGRAM DEF *+2 DEF D6 ** ** FINDF NOP LDB PARM+4 GET FILE NAME LDA 1,I FROM ARRAY STA FNAM1 AND INB SAVE LDA 1,I EACH STA FNAM2 PAIR INB OF LDA 1,I CHARS AND M1774 STA FNAM3 SERCH LDA FCOUN ARE THERE ANY SZA,RSS FILES IN THE STACK? JMP ADD NO, ADD FILE TO STACK CLA SET FILE TABLE INDEX STA FILEA POINTER TO ZERO LOOP LDB TABL1 ADB FILEA LDA 1,I GET 1ST PAIR OF CHARS CPA FNAM1 SAME AS FILE NAME? RSS YES, CONTINUE CHECKING NAME JMP NEXT NO, CHECK NEXT FILE NAME IN STACK LDB TABL2 ADB FILEA LDA 1,I GET 2ND PAIR OF CHARS CPA FNAM2 SAME AS FILE NAME? RSS YES, CONTINUE CHECKING NAME JMP NEXT NO, CHECK NEXT FILE IN STACK LDB TABL3 ADB FILEA LDA 1,I GET 3RD PAIR OF CHARS CPA FNAM3 SAME AS FILE NAME? JMP FOUND YES, FOUND NAME, GET STATUS NEXT LDA FILEA NO INA CPA FCOUN IS SEARCH OF TABLE EXHAUSTED? JMP ADD YES, ADD FILE NAME TO TABLE STA FILEA NO, INCREMENT FILE INDEX JMP LOOP AND CONTINUE * FOUND LDB FILEA GET FROM CURRENT ADB TABL4 FILE THE LDA 1,I STA T/S STARTING TRACK AND SECTOR LDB FILEA ADB TABL5 LDA 1,I STA LENGH FILE LENGH LEAOK ISZ FINDF LEAVE SUCESSFULLY JMP FINDF,I FROM SUBROUTINE * ADD CPA D10 FILE TABLE FULL? JMP FINDF,I YES, EXIT WITH FIALURE LDA FNADR LDB $UADR JSB MATCH SZA JMP GETUS LDA FNADR LDB SYADR JSB MATCH SZA JMP GETSY LDA PARM+4 STA FADDR JSB EXEC GET FROM DOS-M THE o DEF *+4 NEW FILES DEF D18 FADDR NOP DEF LENGH LENGH IN SECTORS AND GOTIT STA T/S LDA LENGH SZA,RSS ZERO FILE LENGH? JMP FINDF,I YES, MISSING FILE ISZ FCOUN NO, INCREMENT FILE COUNT LDB FILEA ADB TABL5 LDA LENGH STA 1,I SAVE FILE LENGH IN TABLE LDB FILEA ADB TABL4 LDA T/S STA 1,I SAVE TRACK/SECTOR ADDRESS LDB FILEA IN TABLE ADB TABL3 LDA FNAM3 STA 1,I SAVE LDB FILEA ADB TABL2 FILE LDA FNAM2 STA 1,I NAME LDB FILEA ADB TABL1 IN LDA FNAM1 STA 1,I TABLES ISZ FILEA INCREMENT FILE INDEX JMP LEAOK EXIT * GETUS LDA CUDSC RSS GETSY LDA SYSSC JSB GETTS LDA T ALF,ALF IOR S STA T/S JMP GOTIT ** **** SYMBOLS AND VARIABLES USED ** ** A01 ASC 1,01 A02 ASC 1,02 A03 ASC 1,03 A04 ASC 1,04 A05 ASC 1,05 HS ASC 1,HS T BSS 1 S BSS 1 LENGH BSS 1 SECTS BSS 1 T/S BSS 1 ADDR NOP CNTR NOP SIZE NOP D17 DEC 17 SCHNL NOP FNADR DEF FNAM1 FNAM1 BSS 1 FNAM2 BSS 1 FNAM3 BSS 1 D6 DEC 6 TAB5 BSS 10 TAB4 BSS 10 TAB3 BSS 10 TAB2 BSS 10 TAB1 BSS 10 D1 DEC 1 D2 DEC 2 N3 DEC -3 D3 DEC 3 DD3 DEC 3 M377 OCT 377 N48 DEC -48 M1774 OCT 177400 N13 DEC -13 M1776 OCT 177600 IORQT OCT 0 FCOUN OCT 0 D10 DEC 10 D18 DEC 18 B101 OCT 101 TEMP BSS 1 M77 OCT 77 LAST BSS 1 SECTR EQU 116B DISCO EQU 154B UDNTS EQU 157B SYNTS EQU 160B CUDSC EQU 161B SYSSC EQU 155B M177 EQU 73B $UADR DEF $USER $USER ASC 1,$U ASC 1,SE OCT 51000 'R ' SYADR DEF SYSTM SYSTM ASC 1,$S ASC 1,YS OCT 46400 'M' FILEA OCT 0 TABL1 DEF TAB1 TABL2 DEF TAB2 TABL3 DEF TAB3 TABL4 DEF TAB4 TABL5 DEF TAB5 END $FTN4 PROGRAM TEST C C HIGH SPEED DISK I/O TEST C INTEGER FILE(3),BUFR(128),PATTRN(128) INTEGER USER(3),SYSTEM(3) DATA PATTRN /128*177777B/ DATA SYSTEM /2H$S,2HYS,2HM / DATA USER /2H$U,2HSE,2HR / C WRITE (1,1) READ (1,2) FILE CALL EXEC (18,FILE,LENF) IF (LENF.EQ.0) STOP 0001 C CALL USIZE (LENU) IF (LENU.EQ.0) STOP 0002 C CALL SSIZE (LENS) IF (LENS.EQ.0) STOP 0003 C C IF SCRATCH AREA IS BIG, LIMIT TO 100 SECTORS C IF (LENU.GT.100) LENU=100 IF (LENS.GT.100) LENS=100 C C CREATE PATTERN ON DATA FILE DO 3 J=1,LENF 3 CALL HSDIO (15,PATTRN,128,J-1,FILE) C C VERIFY DATA FILE WRITE C DO 4 J=1,LENF CALL HSDIO (14,BUFR,128,(J-1),FILE) DO 5 K=1,128 IF (PATTRN(K).NE.BUFR(K)) STOP 0010 5 CONTINUE 4 CONTINUE C C C CREATE PATTERN ON USER DISK SCRATCH AREA C DO 6 J=1,LENU 6 CALL HSDIO (15,PATTRN,128,J-1,USER) C C VERIFY USER SCRATCH AREA WRITE C DO 7 J=1,LENU CALL HSDIO (14,BUFR,128,J-1,USER) DO 7 K=1,128 IF (PATTRN(K).NE.BUFR(K)) STOP 0020 7 CONTINUE C C C C CREATE PATTERN ON SYSTEM DISK SCRATCH AREA C DO 8 J=1,LENS 8 CALL HSDIO (15,PATTRN,128,J-1,SYSTEM) C C C VERIFY SYSTEM SCRATCH AREA WRITE C DO 9 J=1,LENS CALL HSDIO (14,BUFR,128,J-1,SYSTEM) DO 9 K=1,128 IF (PATTRN(K).NE.BUFR(K)) STOP 0030 9 CONTINUE C WRITE (1,10) CALL EXEC (6) C C 1 FORMAT (/"ENTER NAME OF DATA FILE: _") 2 FORMAT (3A2) 10 FORMAT (//"*** HSDIO TEST COMPLETE ***") END END$ 3  % 22681-18090 1546 SC 0322 21MX MICROCODED SIN-COS-TAN             H0103 ASMB,L NAM SNCOS,7 ENT SIN,COS,TAN MIC RDC,105620B,3 REDUCE ANGLE TO 0 - PI/4 MIC DTF,105621B,0 D.I. => FP MIC DCM,105622B,0 D.I. 2'S COMPL MIC DAD,105623B,1 D.I. ADD MIC DMP,105624B,1 D.I. MPY (+ QUANTITIES ONLY) MIC FNG,105625B,0 FP NEGATE (- TO + ONLY) MIC NEG,105626B,1 NEG RESULT CHECK MIC CEP,105627B,3 FIX RTN, SCFLG=1, TEST SIGN MIC SEP,105630B,3 FIX RTN, SCFLG=0, TEST SIGN MIC SRC,105631B,2 SIN OR COS CALC ? * SFLAG, 0 = +SIN, 1 = -SIN, * CFLAG, 0 = +COS, 1 = -COS, SUP * * TAN ENTRY POINT TAN NOP DST ARG JSB COS CALC COS JMP TAN,I COS OK ? NO, TAKE ERR RTN DST CS SAVE COS VALUE DLD ARG JSB SIN CALC SIN JMP TAN,I SIN OK ? NO, TAKE ERR RTN FDV CS CALC TAN ISZ TAN TAN => OK RETURN JMP TAN,I * * COS ENTRY POINT COS NOP CEP RTN SCFLG SIGN JMP SIN1 * * SIN ENTRY POINT SIN NOP SEP RTN SCFLG SIGN SIN1 SSA,RSS ARG + ? JMP ARGRG YES, CHECK ARG RANGE FNG NO, COMPLEMENT * * SCALE ARG TO 0 - PI/4 ARGRG FMP .2PI .2PI = 1/(2 PI) RDC SCFLG SIGN Z * * FORM Z**2 DMP Z STB ZSQRD STA ZSQRD+1 SKP * * SIN OR COS CALC ? SRC SCFLG COSIN * * CALCULATE SIN * * B,A = - S4*Z**2 SINE DMP S4 S4 = .35950439E-4 DCM * * B,A = - Z**2*(S3 - S4*Z**2) DAD S3 S3 = .2490001E-2 DMP ZSQRD DCM * * B,A = S1 - Z**2*(S2 - Z**2*(S3 - S4*Z**2)) DAD S2 S2 = .807454325E-1 DMP ZSQRD DCM DAD S1 S1 = .78539816 * * B,A = Z*(S1 - Z**2*(S2 - Z**2*(S3 - S4*Z**2))) DMP Z * JMP NEG CHECK SIGN OF RESULT * * * * CALCULATE COS * * B,A = - C4*Z**2 COSIN DMP C4 C4 = .31872783E-3 DCM * * B,A = - Z**2*(C3 - C4*Z**2) DAD C3 C3 = .15849684E-1   DMP ZSQRD DCM * * B,A = C1 - Z**2*(C2 - Z**2*(C3 - C4*Z**2)) DAD C2 C2 = .30842417 DMP ZSQRD DCM DAD C1 C1 = .9999997 * * CHECK SIGN OF RESULT NEG NEG SIGN DTF CONVERT BACK TO FP JMP RTN,I SKP UNS * Z BSS 2 RTN BSS 1 SCFLG BSS 1 SIGN BSS 1 ZSQRD BSS 2 ARG BSS 2 CS BSS 2 .2PI OCT 050574,141375 1/(2 PI) S4 OCT 1,26622 .35950439E-4 S3 OCT 121,113644 .2490001007E-2 S2 OCT 5125,156707 .80745432524E-1 S1 OCT 62207,166513 .785398160854 C4 OCT 12,70656 .31872783E-3 C3 OCT 1007,56311 .1584968416E-1 C2 OCT 23572,70554 .30842416558 C1 OCT 77777,177671 .99999996738 END t $ORIGIN=6000 $NOPUNCH $FILE=FSOBJ $EXT=INDIRECT 15,PACK 7052 JMP RDCMD2PI JMP DINTTOFP JMP DINTCMPL JMP STFL DINTADSB DBLE INT ADD EP JMP DINTMPY JMP FPNEGAT JMP NEG JMP CEP JMP SEP JMP SRC * * REDUCE FP ARG MODULUS 2 PI * * OCT 105620 * DEF SCFLG SCFLG = (0 = SIN, 1 = COS) * DEF SIGN 0 = +, 1 = - * DEF Z SAVE BA IN Z (Z = ANGLE IN D.I. FORMAT) * * ARG MUST BE DIVIDED BY 2 PI & BE IN A,B UPON ENTRY * $ORIGIN=6020 * * READ CURRENT SCFLG RDCMD2PI READ INC PNM P READ SCFLG JSB INDIRECT MPCK S11 M S11 => SCFLG S10 TAB S10 = SCFLG * * REDUCE ANGLE IMM LOW L 0 L = 177400 PASS S3 B S3 = LO MANT + EXP PASS B A B = HI MANT AND A S3 A = LO MANT CLFL SANL S3 S3 S3 = EXP + SIGN JMP CNDX AL0 RJS *+2 EXP - ? STFL IOR S3 S3 YES, FILL HIBITS LWF R1 PASS S3 S3 S3 = EXP * * CLEAR EXPONENT (I.E. REMOVE INTEGER PART OF DIVISION) JMP CNDX TBZ OCTANT EXP 0 ? YES, FIND OCTANT JMP CNDX AL0 RJS CLREXP EXP + ? YES, DEC TO 0 CLRNGXP ARS R1 PASS B B NO, INC TO 0 INC S3 S3 JMP CNDX TBZ OCTANT EXP 0 ? YES, FIND OCTANT JMP CLRNGXP NO, SHFT NEXT BIT CLREXP ARS L1 PASS B B SHFT OUT 1 INTGR BIT DEC S3 S3 DEC EXP, EXP 0 ? JMP CNDX TBZ RJS CLREXP NO, SHFT NEXT BIT SKP * * FIND OCTANT (I.E. WHICH PI/4 CONTAINS ARG) OCTANT PASS S7 B S7 = HI MANT COV PASS S6 A S6 = LO MANT ARS L1 PASS B B TEST B14 JMP CNDX OVFL OCTS5.8 OVFL ? YES, TST OCTS 5-8 ARS L1 PASS B B TEST B13 JMP CNDX OVFL OCTS3.4 OVFL ? YES, TST OCTS 3,4 ARS L1 PASS B B TEST B12 JMP CNDX OVFL RJS BA.TO.Z OCT = 1 ? YES, SAVE BA, EXIT * OCT2 IMM CMHI B 337B B = 020000 ZERO A JSB SCFLG XOR SCFLG JMP QUIKSB SCALE ARG 0 - PI/4 * OCTS3.4 COV ARS L1 PASS B B TEST B12 JMP CNDX OVFL OCT4 OVFL ? YES, OCT = 4 OCT3 PASS B S7 NO, OCT = 3 PASS A S6 B,A = ARG IMM CMHI S7 337B S7 = 020000 ZERO S6 JSB SCFLG XOR SCFLG OCT3EXIT JSB CFLG SET COS NEG FLAG JMP QUIKSB SCALE ARG 0 - PI/4 OCT4 IMM CMHI B 277B B = 040000 ZERO A JMP OCT3EXIT * OCTS5.8 COV ARS L1 PASS B B TEST B13 JMP CNDX OVFL OCTS7.8 OVFL ? YES, TEST OCTS 7,8 OCTS5.6 ARS L1 PASS B B TEST B12 JMP CNDX OVFL OCT6 OVFL ? YES, OCT = 6 OCT5 PASS B S7 NO, OCT = 5 PASS A S6 B,A = ARG IMM CMHI S7 277B S7 = 040000 ZERO S6 OCT5EXIT JSB CFLG SET COS NEG FLAG JSB SFLG SET SIN NEG FLAG JMP QUIKSB SCALE ARG 0 - PI/4 OCT6 IMM CMHI B 237B B = 060000 ZERO A JSB SCFLG XOR SCFLG JMP OCTc5EXIT OCTS7.8 COV ARS L1 PASS B B TEST B12 JMP CNDX OVFL OCT8 OVFL ? YES, OCT = 8 OCT7 PASS B S7 NO, OCT = 7 PASS A S6 B,A = ARG IMM CMHI S7 237B S7 = 060000 ZERO S6 JSB SCFLG XOR SCFLG OCT7EXIT JSB SFLG SET SIN NEG FLAG JMP QUIKSB SCALE ARG 0 - PI/4 OCT8 IMM CMHI B 177B B = 100000 ZERO A JMP OCT7EXIT SKP * * QUICK D.I. SUBTRACT (B,A - S7,S6) QUIKSB PASS L S6 L = W2 LO SUB A A SUB LOBITS JMP CNDX COUT *+2 COUT ? NO, BORROW DEC B B FROM HIBITS PASS L S7 L = W2 HI COV SUB B B SUB HIBITS * * FINAL SCALING CORRECTION (REMOVE IMPLICIT EXP OF +3) IMM RPT LOW CNTR 375B CNTR = -3 ARS L1 PASS B B JMP CNDX OVFL RJS BA.TO.Z OVFL ? NO, SAVE BA, EXIT IMM LOW L 0 YES, SET ARG TO 1'S IOR B B OVFL IMPLIES R1 SONL B B PI/4 BOUNDARY IOR A A SONL A A B,A = 077777,177777 * * FIX P, SAVE BA, EXIT BA.TO.Z INC P P P => ADDR OF Z READ INC PNM P GET ADDR OF Z MPCK INC M TAB M => Z WRTE TAB B Z = B INC S3 M MPCK INC M S3 M => Z+1 WRTE RTN TAB A Z+1 = A * * XOR SCFLG OR SIGN SCFLG DEC S2 P S2 => SCFLG JMP XORFLAG XORSIGN S2 P S2 => SIGN XORFLAG READ INC M S2 R+@EAD FLAG IMM CMLO S3 376B S3 = +1 MPCK INC M TAB READ L S3 L = OLD FLAG XOR S3 TAB XOR FLAG WRTE RTN TAB S3 SAVE NEW FLAG * * SET COS NEG FLAG CFLG S10 COS CALC ? JMP CNDX AL0 XORSIGN YES, XOR SIGN RTN * * SET SIN NEG FLAG SFLG S10 SIN CALC ? JMP CNDX AL0 RJS XORSIGN YES, XOR SIGN RTN SKP * * DOUBLE INTEGER => FP * * 105621 * DINTTOFP ZERO S9 PACK EXPECTS JMP PACK OLD EXP IN S9 * * DOUBLE INTEGER 2'S COMPLEMENT, (-1 < D.I. < +1) * * 105622 * DINTCMPL CMPS B B B = 1'S CMPL CMPS A A A = 1'S CMPL INC A A A = 2'S CMPL JMP CNDX COUT RJS *+2 COUT ? RTN INC B B YES, INC B RTN * * DOUBLE INTEGER ADD * * 105623 DAD * DINTADSB READ INC M P JSB INDIRECT JSB FLD COV PASS L S6 L = W2 LO ADD ADD A A ADD LOBITS JMP CNDX COUT RJS *+2 COUT ? INC B B YES, INC HIBITS PASS L S7 ADD ENVE ADD B B HIBITS JMP PINCRTN * * * FLD, REG INITIALIZER FLD PASS S7 TAB S7 = W2 HI PASS S11 B S11 = W1 HI INC S1 M M => W2 LO READ INC M S1 PASS S10 A S10 = W1 LO RTN PASS S6 TAB S6 = W2 LO SKP * * * DOUBLE INTEGER MULTIPLY * * ** MULTIPLIES POSITIVE QUANTITIES ONLY ** * * 105624 * DINTMPY READ INC M PI READ ADDRS OF W2 HI JSB INDIRECT JSB FLD INIT REGS * * (W1 LO) * (W2 HI) PASS L S7 L = W2 HI PASS A S10 A = W1 LO ZERO B ZERO S9 S9 = 0 RPT PASS CNTR S9 MPY R1 ADD B B PASS S5 B S5 = XP1 HI * * (W1 HI) * (W2 LO) + (XP1 LO) PASS B A B = XP1 LO PASS L S11 L = W1 HI PASS A S6 A = W2 LO RPT PASS CNTR S9 MPY R1 ADD B B * * (XP1 HI) + (XP2 HI) PASS L S5 L = XP1 HI CLFL ADD B B B = (XP1 HI) + (XP2 HI) JMP CNDX COUT RJS *+2 STFL = CARRY FROM SUM STFL OF XP TO HIBITS * * (W1 HI) * (W2 HI) + (XPS HI SUM) PASS L S11 L = W1 HI PASS A S7 A = W2 HI RPT PASS CNTR S9 MPY R1 ADD B B JMP CNDX FLAG RJS *+2 INC B B ARS L1 PASS B B PSEUDO-NORMALIZE PINCRTN RTN INC P P SKP * * FP NEGATE (- TO + ONLY) * * 105625 * FPNEGAT CMPS A A A = 1'S CMPL IMM LOW L 0 L = 177400 XOR B B B (MANT ONLY) = 1'S CMPL IMM CMHI S3 376B S3 = 400 PASS L S3 ADD B B INC B (MANT ONLY) JMP CNDX COUT RJS RTN COUT ? NO, EXIT INC A A INC HIBITS JMP CNDX AL15 RJS RTN NEG RESULT ? NO, EXIT R1 PASS A A YES, NRMLZ HIBITS IMM CLFL LOW L 0 L = 177400, FLAG = 0 LWF R1 SANL S3 B S3 = EXP, FLA(pG = EXP SIGN AND B B B = LO MANT ONLY IMM LOW L 200B L = 177600 JMP CNDX FLAG RJS *+2 EXP - ? IOR S3 S3 YES, FILL EXP HIBITS INC S3 S3 NRMLZ EXP JMP CNDX TBZ RTN EXP 0 ? YES, EXIT LWF L1 SANL S3 S3 ZERO EXTRA EXP BITS PASS L S3 COMBINE EXP + LO MANT RTN ADD B B RTN RTN SKP * * DETERMINE SIGN OF RESULT * * OCT 105626 BA IS ASSUMED TO CONTAIN RESULT AT ENTRY * DEF SIGN * NEG READ INC PNM P READ SIGN JSB INDIRECT TAB JMP CNDX AL0 DINTCMPL YES, CMPLMNT RTN SKP * * FIX RETURN ADDRESS, INITIALIZE SCFLG (0 = SIN, 1 = COS), * TEST SIGN OF ANGLE & INITIALIZE SIGN FLAG (0 = +, 1 = -) * * OCT 1056XX XX = 27 FOR COS, XX = 30 FOR SIN * DEF RTN * DEF SCFLG * DEF SIGN * * SIN & COS USE A COMMON ENTRY POINT ROUTINE CEP IMM CMLO S4 376B S4 = +1 = COS CALC JMP *+2 SEP ZERO S4 S4 = 0 = SIN CALC * * FIX RETURN ADDRESS & STORE IN COMMON RETURN (RTN) DEC S3 P DEC S3 S3 S3 => ENTRY POINT READ INC M S3 GET ERROR RTRN ADDR IMM HIGH L 0 L = 000377 INC S3 TAB S3 = NORMAL RTRN ADDR READ CLFL INC PNM P GET ADDR OF RTN LWF R1 AND S5 B S5 = EXP MPCK INC M TAB M => RTN IMM LOW L 200B L = 177600 JMP CNDX FLAG RJS NOTSMALL NEG EXP ? NO, DO BIG EXP TEST IOR S5 S5 YES, FILL HIBITS S4 SIN CALC ? JMP CNDX TBZ RJS CEPC*($1 NO, FIX RETURN IMM LOW L 372B L = 177772 = -6 SUB S5 EXP < -6 ? JMP CNDX AL15 RJS CEP1 NO, FIX RETURN RTN P S3 YES, SIN(X) = X, EXIT NOTSMALL IMM LOW L 360B L = 177760 = -16 ADD S5 EXP > +15 JMP CNDX AL15 CEP1 NO, FIX RETURN RTN DEC P S3 YES, TAKE ERROR RETURN CEP1 WRTE CLFL TAB S3 RTN = NORMAL RETURN * * INITIALIZE SCFLG READ INC PNM P GET ADDR OF SCFLG MPCK INC M TAB M => SCFLG WRTE TAB S4 LWF R1 S4 FLAG = SCFLG * * INITIALIZE SIGN READ INC PNM P GET ADDR OF SIGN ZERO S3 MPCK INC M TAB M => SIGN JMP CNDX FLAG SIGNINIT COS CALC ? YES, SIGN = 0 A JMP CNDX AL15 RJS *+2 + ANGLE ? YES, SIGN = 0 INC S3 S3 NO, SIGN = 1 SIGNINIT WRTE RTN TAB S3 SKP * * SIN OR COS CALC ? * SCFLG = (0 = SIN, 1 = COS) * IF SCFLG = 1 GO TO COSIN ELSE NEXT INSTRUCTION * * OCT 105631 * DEF SCFLG * DEF COSIN * SRC READ INC PNM P READ SCFLG JSB INDIRECT TAB JMP CNDX AL0 RJS PINCRTN READ INC M P RTN P TAB $END *FTN4,L PROGRAM TRIG INTEGER T0(5),T1(5) 1 WRITE (1,2) 2 FORMAT (" ENTER ANGLE (IN RADIANS)") READ (1,*) ANGLE IF (ABS(ANGLE) - 32768.) 5,9999 5 CALL EXEC (11,T0) DO 10 I=1,3000 S = SIN (ANGLE) C = COS (ANGLE) T = TAN (ANGLE) 10 CONTINUE CALL EXEC (11,T1) SECS = 3600.*(T1(4) - T0(4)) + 60.*(T1(3) - T0(3)) + 1 (T1(2) - T0(2)) + (T1(1) - T0(1))/100. WRITE (1,100) ANGLE,S,ANGLE,C,ANGLE,T,SECS 100 FORMAT (/," SIN (",E13.7,") = ",E13.7,//, 1 " COS (",E13.7,") = ",E13.7,//, 2 " TAN (",E13.7,") = ",E13.7,//, 3 " TIME FOR 3000 SIN,COS,TAN CALCULATIONS = ",F5.2," SECONDS",//) GO TO 1 9999 END END$  - 22681-18091 1604 SC 0222 IMPLEMENTING A USER WRTN IBL LOADER ON THE 21MX             H0102 W^HPAL,L,B,C,"LGLDR" BEGIN PROCEDURE VAL11(A); VALUE A; INTEGER A; CODE; PROCEDURE VAL22(A,B); VALUE A,B; INTEGER A,B; CODE; PROCEDURE VAL34(A,B,C,D); VALUE A,B,D; INTEGER A,B,C,D; CODE; INTEGER A,B,C,D,E,F; INTEGER CHECKSUM, TCHECKSUM; INTEGER ARRAY WDCT[1:2]; INTEGER AAPOINTER, BBPOINTER, COUNT, MASK, DATA, TAPE; INTEGER WORD, HIGH, X,Y; INTEGER ARRAY SELECT[1:9]; INTEGER ARRAY AA[@1:@100], BB[1:1024]; INTEGER ARRAY BUFF[1:100]; LABEL PROG, START, CONT, ERROR, WRT; LABEL AGAIN, BOTH, DONE, VERI; & &*********************************************************************** & WRITE(1,#("WELCOME TO THE PROGRAM FOR MAKING PAPER"/ "TAPE TO BURN INTO PROM CHIPS.")); WRITE (1,#(X,"HP STOCK NO. XXXX-XXXX")); READ (1,#(5A2),FOR WORD_1 TO 5 DO SELECT[WORD]); WRITE (1,#(X,"DATE. XX,XX,XX")); READ (1,#(4A2),FOR WORD_6 TO 9 DO SELECT[WORD]); WRITE (1,#("ENTER TAPE, TYPE...:GO")); VAL11(7); & SUSPEND THE PROGRAM START: AAPOINTER _ 1; DATA _ 1; COUNT _ 0; VAL22(3,@705); & EAT UP THE LEADER CONT: CHECKSUM _ 0; VAL34(1,@105, WDCT[1],2); IF WDCT[1]=0 THEN GO TO PROG; WDCT[1] _ ROTATE WDCT[1]; COUNT _ COUNT + WDCT[1]; IF COUNT > @100 THEN WRITE(1,#(X,"INFO....TOTAL RECORD LENGTH" / 2X,"(WORDCOUNT) > THAN 100 OCTAL")); IF COUNT > @120 THEN GO TO DONE; VAL34(1,@105, AA[AAPOINTER],WDCT[1]); CHECKSUM _ CHECKSUM + WDCT[2]; FOR AAPOINTER _ DATA TO COUNT DO CHECKSUM _ CHECKSUM + AA[AAPOINTER]; VAL34(1,@105, TCHECKSUM,1); IF CHECKSUM = TCHECKSUM THEN DATA _ AAPOINTER; IF CHECKSUM = TCHECKSUM THEN GO TO CONT; WRITE (1,#(X"CHECKSUM ERROR!!!! ")); WRITE(1,#(X,"WORDCOUNT SHOULD BE=",K6),WDCT[1]); TAPE _ AAPOINTER -1; WRITE(1,#(X,"LAST WORD OF CHECKSUM=",K6), AA[TAPE]); WRITE(1,#(X,"RELOAD THE TAPE, TYPE......GO")); VAL11(7); & SUSPEND THE PROGRAM GO TO START; & &*********************************************************************** & PROG: HIGH _ 0; AAPOINTER _ 0; BBPOINTER _ 1; WHILE BBPOINTER < 1025 DO BEGIN AAPOINTER _ AAPOINTER +1; MASK _ @100000; FOR COUNT _ 1 STEP 1 UNTIL 16 DO BEGIN IF (AA[AAPOINTER] AND MASK) #0 THEN BB[BBPOINTER] _ "H" ELSE BB[BBPOINTER] _ "L"; IF BB[BBPOINTER] ="H" THEN HIGH _HIGH+1; IF MASK = @100000 THEN MASK _ @040000 ELSE MASK _ MASK\2; BBPOINTER _ BBPOINTER +1 END END; & &*********************************************************************** & COUNT _ 0; DATA _ 1; MASK _ 16; FOR COUNT _ 1 TO 64 DO BEGIN WRITE (6,#(3X,I2,5X,16(X,R1)),COUNT, FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); DATA _ COUNT*16+1; MASK _ COUNT*16+16; END; WRITE (6,#( X,"END",/,"1")); & &*********************************************************************** & BOTH: WRITE(6,#(X,"1004,22,2,4,01024")); WRITE(6,#(X,5A2),FOR WORD_1 TO 5 DO SELECT[WORD]); WRITE(6,#(X,4A2),FOR WORD_6 TO 9 DO SELECT[WORD]); IF HIGH < 10 THEN WRITE (6,#(X,I1),HIGH) ELSE IF HIGH < 100 THEN WRITE (6,#(X,I2),HIGH) ELSE IF HIGH < 1000 THEN WRITE (6,#(X,I3),HIGH) ELSE WRITE (6,#(X,I4),HIGH) ; COUNT _ 0; DATA _ 1; MASK _ 32; X _0; Y _ 7; WRITE (6,#(X,"00",I1,"-00",I1,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); COUNT _ 1; DATA _ COUNT *32+1; MASK_ COUNT *32+32; X _ X+8; Y _ Y+8; WRITE (6,#(X,"00",I1,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); FOR COUNT _ 2 TO 11 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (6,#(X,"0",I2,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; COUNT _ 12; X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (6,#(X,"0",I2,"-",I3,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); FOR COUNT _ 13 TO 31 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (6,#(X,I3,"-",I3,X,8( X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; WRITE (6,#("1")); & &*********************************************************************** & WRITE (1,#(X,"DO YOU WANT PAPER TAPE?" / X,"IF YES, TURN ON PUNCH AND TYPE Y." / X,"IF NOT, TYPE N.")); READ(1,#(R1),TAPE); IF TAPE = "N" THEN GO TO DONE; & &*********************************************************************** & AGAIN: VAL22(3,@1004); WRITE (4,#( "1004,22,2,4,01024")); WRITE(4,#( 5A2),FOR WORD_1 TO 5 DO SELECT[WORD]); WRITE(4,#( 4A2),FOR WORD_6 TO 9 DO SELECT[WORD]); IF HIGH < 10 THEN WRITE (4,#( I1),HIGH) ELSE IF HIGH < 100 THEN WRITE (4,#( I2),HIGH) ELSE IF HIGH < 1000 THEN WRITE (4,#( I3),HIGH) ELSE WRITE (4,#( I4),HIGH) ; COUNT _ 0; DATA _ 1; MASK _ 32; X _0; Y _ 7; WRITE (4,#( "00",I1,"-00",I1,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); COUNT _ 1; DATA _ COUNT *32+1; MASK_ COUNT *32+32; X _ X+8; Y _ Y+8; WRITE (4,#( "00",I1,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); FOR COUNT _ 2 TO 11 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (4,#( "0",I2,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; COUNT _ 12; X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (4,#( "0",I2,"-",I3,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINT#ER]]); FOR COUNT _ 13 TO 31 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (4,#( I3,"-",I3,X,8( X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; VAL22(3,@1004); & &*********************************************************************** & WRITE(1,#(X"READY TO VERIFY TAPE ?" / X"TYPE V FOR YES, OR NV FOR NO")); READ (1,#(R1),TAPE); IF TAPE # "V" THEN GO TO WRT; VERI: READ(5,*,A,B,C,D,E); IF A # 1004 THEN IF B # 22 THEN IF C # 2 THEN IF D # 4 THEN IF E # 01024 THEN GO TO ERROR; READ(5,#(5A2), FOR A _ 1 TO 5 DO BUFF[A]); WORD _ 1; FOR A _ 1 TO 5 DO BEGIN IF BUFF[A] # SELECT[WORD] THEN GO TO ERROR; WORD _ WORD +1; END; READ(5,#(4A2), FOR A _ 6 TO 9 DO BUFF[A]); WORD _ 6; FOR A _ 6 TO 9 DO BEGIN IF BUFF[A] # SELECT[WORD] THEN GO TO ERROR; WORD _ WORD +1; END; IF HIGH < 10 THEN READ(5,#(I1), BUFF[1]) ELSE IF HIGH < 100 THEN READ(5,#(I2), BUFF[1]) ELSE IF HIGH < 1000 THEN READ(5,#(I3), BUFF[1]) ELSE READ (5,#(I4), BUFF[1]); IF BUFF[1] # HIGH THEN GO TO ERROR; BBPOINTER _ 1; X _ 000; Y _ 007; FOR COUNT _ 1 TO 32 DO BEGIN VAL34(1,@105, BUFF[1],4); A _ ((ROTATE BUFF[2] AND @17)+ ((BUFF[1] AND @17)*10)+ ((ROTATE BUFF[1] AND @17)*100)); B _ ((ROTATE BUFF[4] AND @17)+ ((BUFF[3] AND @17) * 10)+ (( ROTATE BUFF[3] AND @17) * 100)); IF A # X THEN IF BUFF[2] AND @177 # "-" THEN GO TO ERROR; IF B # Y THEN GO TO ERROR; IF BUFF[4] AND @177 # " " THEN GO TO ERROR; X _ X+8; Y _ Y+8; READ (5,#(40(R1)), FOR DATA _ 1 TO 40 DO BUFF[DATA]); DATA _ 1; FOR A _ 1 TO 8 DO BEGIN IF BUFF[DATA] # " ".A THEN GO TO ERROR; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; END; END; WRITE(1,#("PAPER TAPE IS GOOD.")); GO TO WRT; ERROR: WRITE(1,#(" TAPE DID NOT VERIFY.")); & &*********************************************************************** & WRT: WRITE (1,#(X,"DO YOU WANT MORE TAPE? TYPE Y." / X,"DO YOU WANT MORE TAPE AND LISTING? TYPE B." / X,"VERIFY TAPE? TYPE V." / X,"NONE... TYPE N.")); READ (1,#(R1),TAPE); IF TAPE = "Y" THEN GO TO AGAIN; IF TAPE = "B" THEN GO TO BOTH ; IF TAPE = "V" THEN GO TO VERI; DONE: WRITE(1,#(X,"FINISHED!")); END ASMB,R,L NAM VAL,7 ENT VAL11,VAL22,VAL34 EXT EXEC VAL11 NOP CCB ADB VAL11 LDA JSB STA 1,I JMP 1,I JSB JSB EXEC VAL22 EQU VAL11 VAL34 EQU VAL11 END E  * 22682-16009 1608 RC 0122 PERT PACKAGE FOR DOS-III FALLA = RCH00             H0101 ^ LFALLA 5c@FALLA JW.ENTR.DIO..IIO..DTA.;`h",d3 , Cd4 0,/(" ERROR NUMBER "I4," ON EFMP CALL N`G*UMBER "I4)`B`3-´ % 22682-16039 1644 RC 0122 BREF - CROSS REF. TABLE GENERATOR FOR HP92101A             H0101  yNAMR cPRE-REL 3-7-75 (DLB) @NAMR N.ENTR<`ad6t@tH ڬdl1lL||l|<<`^i_!d 1Ӷ<,  d1\,+t|H | T,7L|<`[?|||\ڬ1T,>ZtTT<T,eT,dT|d dtD;`\Zt|\,eT,],N|l\1l\,Z Al|T:`^vP,sDaDa ,\ ,ll \ d1l6|LL|l;`c-d\,|l\,<5P!ߠ$,5!נP `MbcB-+0 ,: F  & 22682-18000 1550 SC 0122 BASIC CALL TO PRINT NUMBER WITHOUT SPACES             H0101 $ASMB,A,B,L,C HED CALL 5 PRINT W/O SPACES * BASIC CALL 5 TO OUTPUT ONE NUMBER WITHOUT SPACES * * ENTER BY CALL(5,A) ORG 32B STFLG NOP ORG 37B STOPB OCT 2200 ORG 46B STPON DEF STOPN LINK FOR CHANGING STOP SERVICE STPOF DEF STOPF LINK FOR RESTORING STOP SERVICE ORG 110B DEF LSTWD ORG 121B DEF SBTBL DEF ENDTB ORG 13142B SBTBL OCT 405 CALL 5, ONE PARAMETER DEF CALTY ENDTB EQU * SPC 1 CALTY NOP LDB 0,I STB ADDRA SAVE ADDRESS JSB IMOFF,I TURN OFF KEYBOARD INTERRUPT * MODIFY BASIC,SET STOP FLAG LDA STOP5 JSB STPON,I SET UP STOP SERVICE,FLAG LDA CLA STA LSPAD,I JSB IMON,I * STOP SET UP THRU CALL 5 AND INTERRUPT RESTORED JSB PRNIA,I INITIALIZE FOR PRINT LDA ADDRA,I GET ISZ ADDRA LDB ADDRA,I NUMBER CCE JSB NUMOA,I OUTPUT IT TO BUFFER JSB OUTLN END OF LINE ACTION LDB TYPE CMB,INB LDA CCNT CMA,INA STA TYPE CHARS OUT AFTER WRITE ADA 1 CHARS TO GO THIS TIME SLB ADA M1 LDB .BUFA START OF I/O BUFFER SZA JSB WRITE,I OUTPUT NUMBER JMP *+3 * STOP SERVICE COMES HERE TO RESTORE BASIC STLK5 NOP ISZ STFLG CHANGE FLAG FROM -2 TO -1 LDA LD.32 STA LSPAD,I RESTORE "LDA .32" JSB STPOF,I RESTORE STOP,GO THERE IF NEEDED JMP CALTY,I NOT NEEDED,NORMAL EXIT STOP5 DEF STLK5 CALL 5 STOP LINK SPC 1 * SUBROUTINE TO SET UP STOP SERVICE, FLAG FOR STOP * NEW STOP LINK IN "A" ON ENTRY STOPN NOP STA STSVC SET NEW STOP SERVICE LDA M2 STA STFLG SET STOP FLAG JMP STOPN,I EXIT SPC 1 * SUBROUTINE TO RESTORE NORMAL STOP, GO THERE IF NEEDED STOPF NOP LDA STOPB STA STSVC RESTORE NORMAL STOP ISZ STFLG STOP FLAG SET? JMP STOPF,I NO,EXIT JSB STSVC,I YES, GO TO SN  TOP SERVICE SPC 1 STSVC EQU 105B ADDRA EQU 554B (MVTOH) IMOFF EQU 123B IMON EQU 124B CLA EQU 1711B (CLA IN OUTLN) M2 EQU 432B LSPAD OCT 10052 NUMOA EQU 220B OUTLN EQU 1677B LD.32 EQU 1647B PRNIA EQU 250B TYPE EQU 146B CCNT EQU 133B M1 EQU 431B .BUFA EQU 131B WRITE EQU 102B LSTWD EQU * END  !( 22682-18001 1602 SC 0422 RENUM              H0104 FTN,L,T C C PROGRAMED BY ROBERT R. SCHUCK 1 JULY 1975 C C C HEWLETT-PACKARD MEDICAL ELECTRONICS GROUP C 175 WYMAN ST. C WALTHAM, MASS. 02154 C C******************************************************************* C THIS PROGRAM WILL RE-NUMBER A FORTRAN SOURCE TAPE. C C AT THE END OF PASS TWO, A LISTING IS GENERATED OF THE C ORIGINAL NUMBERS AND THE NEW NUMBERS THAT WERE USED. C C DURING PASS TWO, A LISTING IS GENERATED WITH THE ORIGINAL C LINE FOLLOWED BY THE NEW LINE. THIS MAKES IT EASY TO CHECK C THE SECURITY OF THE ORIGINAL PROGRAM. C C IF, IN THE RE-NUMBERING PROCESS, THE ORIGINAL LINE IS EXTENDED C BEYOND 72 COLUMNS, A CONTINUATION LINE WILL BE AUTO INSERTED C USING A "?" IN COLUMN 6. C C THE PROGRAM WILL NOT SEARCH A COMMENT LINE, AN EXISTING C CONTINUATION LINE OR A LINE WITH AN "F" IN COLUMN 1. C C AN END$ IS AUTO INSERTED AT THE END OF EACH PROGRAM..! C C***************************************************************** C PROGRAM RENUM DIMENSION LINE(85),IBUFO(200),IBUFN(200),IDCB(144), X IDCB1(144) DIMENSION NAMIN(3),NAMOU(3) CALL OLDIO C WRITE (1,10 ) 10 FORMAT (/ ,"INPUT DEVICE LU = ?") READ (1,*) LU5 IF (LU5 .NE. 2) GO TO 60 20 WRITE (1,30 ) 30 FORMAT (/ ,"ENTER THE FILE NAME.") READ (1,40 ) NAMIN 40 FORMAT (3A2) CALL OPEN (IDCB,JERR,NAMIN) IF (JERR .GE. 0) GO TO 60 WRITE (1,50 ) 50 FORMAT (/ ,"FILE NOT FOUND !!!") GO TO 20 60 WRITE (1,70 ) 70 FORMAT (/ ,"OUTPUT DEVICE LU = ?") READ (1,*) LU4 IF (LU4 .NE. 2) GO TO 100 80 WRITE (1,30 ) READ (1,40 ) NAMOU C CALL CREAT (IDCB1,IERR,NAMOU,24,4) IF (IERR .GE. 0) GO TO 100 WRITE (1,90 ) 90 FORMAT ( /,"DUPLICATE FILE NAME !") GO TO 80 C 100 WRITE (1,110) 110 FORMAT (//,"LIST DEVICE LU = ?") READ (1,*) LU6 C 120 WRITE (1,130 ) 130 FORMAT(//,"BEGINNING STATEMENT NUMBER = ?") READ (1,*) ISB WRITE (1,140 ) 140 FORMAT (//,"STATEMENT INTERVAL = ?") READ (1,*) ISI IF (LU6 .EQ. 6) WRITE (6,150) 150 FORMAT ("1") IF (LU4 .EQ. 4) CALL EXEC (3,1004B) C 160 WRITE (1,170) 170 FORMAT(//"READY FOR PASS 1"/"TYPE GO TO CONTINUE OR /A TO ABORT") READ (1,180) IANS 180 FORMAT (A2) IF ( IANS .EQ. 2H/A ) GO TO 250 IF (IANS .NE. 2HGO) GO TO 160 C C SET UP NEW NUMBER TABLE C M = ISB DO 190I=1,200 IBUFN(I) = M 190 M = M + ISI IF (LU5 .EQ. 2) WRITE (1,195) 195 FORMAT (/,"PROGRAM RENUM IS IN PROGRESS.") C C CALL PASS1 (LINE,IBUFO,IBUFN,LU4,LU5,LU6,IDCB,IDCB1, X NAMIN,NAMOU) CONTINUE CALL PASS2(LINE,IBUFO,IBUFN,LU4,LU5,LU6,IDCB,IDCB1, X NAMIN,NAMOU) C IX = 0 DO 200I = 1,200 IF (IBUFO(I) .EQ. 0) GO TO 210 IX = IX + 1 200 CONTINUE C 210 CALL LIST (IBUFO,IBUFN,1,0,IX,LU6) C IF (LU4 .NE. 2) WRITE (LU4,220) 220 FORMAT (6X,"END$") C IF(LU4 .EQ. 7 .OR. LU6 .EQ. 7) CALL EXEC (3,107B) IF(LU4 .EQ. 7 .OR. LU6 .EQ. 7) CALL EXEC (3,1207B) IF (LU4 .EQ. 4) CALL EXEC (3,1004B) WRITE (1,230) 230 FORMAT (/,"PROGRAM RENUM COMPLETED") IF (LU4 .EQ. 2) WRITE (1,240) NAMOU 240 FORMAT (/,"NEW SOURCE IS IN FILE.....",3A2,/) 250 STOP C END C*********************************************************************** C FORTRAN RE-NUMBERING PROGRAM PASS ONE C SUBROUTINE PASS1 (LINE,IBUFO,IBUFN,LU4,LU5,LU6,IDCB, X IDCB1,NAMIN,NAMOU) C DIMENSION LINE(85),NTBUF(5),IBUFO(200),IBUFN(200), X IDCB(144),IDCB1(144) DIMENSION NAMIN(3),NAMOU(3) C 10 CONTINUE L = 1 20 CALL READ (LINE,LU5,NAMIN,IDCB) C C SKIP OVER THE FTN STATEMENT. IF ( LINE (1) .EQ. 106B ) GO TO 20 C C CHECK FOR A COMMENT LINE IF ( LINE (1) .EQ. 103B ) GO TO 20 C C CHECK FOR A STATEMENT NUMBER 30 K = 5 J = 1 DO 40 I=1,5 IF ( LINE (K) .EQ. 40B ) GO TO 40 NTBUF(J) = LINE(K)-60B J = J + 1 40 K = K - 1 IF (J .EQ. 1) GO TO 60 C C CONVERT NTBUF TO AN INTEGER AND STORE IT IN IBUFO IP = 0 M = 1 J = J - 1 DO 50 I =1,J IN = NTBUF(I) * M IP = IN + IP 50 M = M * 10 IBUFO(L) = IP C L = L + 1 C C CHECK FOR THE END STATEMENT 60 IL = 0 70 IL = IL + 1 IF (IL .EQ. 85) GO TO 20 IF (LINE (IL) .EQ. 40B) GO TO 70 IF (LINE (IL) .NE. 105B) GO TO 20 IL = IL + 1 IF (LINE (IL) .NE. 116B) GO TO 20 IL = IL + 1 IF (LINE (IL) .EQ. 104B) GO TO 80 C GO TO 20 C 80 IF (LU5 .NE. 2) GO TO 90 CALL RWNDF (IDCB,IERR) 90 RETURN END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX C SUBROUTINE PASS2 (LINE,IBUFO,IBUFN,LU4,LU5,LU6, X IDCB,IDCB1,NAMIN,NAMOU) DIMENSION LINE(85),IBUFO(200),IBUFN(200),NTBUF(6), X IDCB(144),IDCB1(144) DIMENSION NAMIN(3),NAMOU(3) C C IF (LU5 .EQ. 2) GO TO 40 10 WRITE (1,20) 20 FORMAT ("READY FOR PASS TWO.",/,"READY THE INPUT DEVICE.",/, X "TYPE GO TO CONTINUE.") READ (1,30) IANS 30 FORMAT (A2) IF (IANS .NE. 2HGO) GO TO 10 C 40 CALL READ (LINE,LU5,NAMIN,IDCB) CALL LIST (0,0,2,LINE,0,LU6) C C SKIP OVER FTN STATEMENT C IF (LINE (1) - 106B ) 50,70,50 C C CHECK FOR A COMMENT STMT C 50 IF (LINE (1) - 103B) 60,70,60 C C CHECK FOR A CONTINUATION LINE C 60 IF (LINE(6) - 40B ) 70,80,70 C 70 CALL PUNCH (LINE,LU4,IDCB1,NAMOU) CALL LIST (0,0,3,LINE,0,LU6) GO TO 40 C C CHECK FOR A STATEMENT NUMBER C 80 K = 5 J = 1 DO 90 I=1,5 IF ( LINE (K) .EQ. 40B ) GO TO 90 NTBUF(J) = LINE(K) - 60B J = J + 1 90 K = K -1 IF ( J .EQ. 1 ) GO TO 110 C C CONVERT TO INTEGER , REPLACE AND CONTINUE C IP = 0 M = 1 J = J -1 DO 100 I=1,J IN = NTBUF(I) * M IP = IN + IP 100 M = M * 10 IO = IP C C REPLACE NUMBER C IMM = 1 IM = 5 CALL REPLC (IMM,IM,IO,LINE,IBUFO,IBUFN) C C CHECK FOR AN END STATEMENT C 110 IL = 0 120 IL = IL + 1 IF (IL .EQ. 85) GO TO 130 IF (LINE(IL) .GE. 60B .AND. LINE(IL) .LE.72B) GO TO 120 IF (LINE (IL) .EQ. 40B) GO TO 120 IF (LINE(IL) .NE. 105B) GO TO 130 IL = IL + 1 IF (LINE (IL) .NE. 116B) GO TO 130 IL = IL + 1 IF (LINE (IL) .EQ. 104B) GO TO 140 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C MAKE CALLS TO SEARCH HERE C 130 CALL FIND1 (LINE,IBUFO,IBUFN) C C CALL FIND2 (LINE,IBUFO,IBUFN) C C CALL FIND3 (LINE,IBUFO,IBUFN) C C CALL FIND4 (LINE,IBUFO,IBUFN) C C CALL FIND6 (LINE,IBUFO,IBUFN) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CALL LIST (0,0,3,LINE,1,LU6) C CALL PUNCH (LINE,LU4,IDCB1,NAMOU) C GO TO 40 140 CALL LIST (0,0,3,LINE,1,LU6) CALL PUNCH (LINE,LU4,IDCB1,NAMOU) C IF (LU4 .NE. 2) GO TO 150 LINE (1) = 2H LINE (2) = 2H LINE (3) = 2H LINE (4) = 2HEN LINE (5) = 2HD$ CALL WRITF (IDCB1,IERR,LINE,5) IF (IERR .LT. 0) WRITE (1,145) IERR 145 FORMAT ("WRITF ERROR ",I3) IF (IERR .LT. 0) PAUSE 150 IF (LU5 .EQ. 2) CALL CLOSE (IDCB,IERR,0) IF (LU4 .EQ. 2) CALL CLOSE (IDCB1,IERR,0) C RETURN C END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE FIND1 (LINE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200) C C THIS SUB. LOOKS FOR THE GO TO STMT. C IB = 6 10 IB = IB + 1 20 IF (LINE (IB) .EQ. 40B) GO TO 100 IF (LINE (IB) .NE. 107B) GO TO 100 30 IB = IB + 1 IF(IB .EQ. 85) GO TO 120 IF (LINE (!IB) .EQ. 40B) GO TO 30 IF (LINE (IB) .NE.117B) GO TO 100 40 IB = IB + 1 IF(IB .EQ. 85) GO TO 120 IF (LINE (IB) .EQ. 40B) GO TO 40 IF (LINE (IB) .NE. 124B) GO TO 100 50 IB = IB + 1 IF (IB .EQ. 85) GO TO 120 IF (LINE (IB) .EQ. 40B) GO TO 50 IF (LINE (IB) .NE. 117B) GO TO 100 C IB = IB + 1 IE = IB IT = 1 C 60 IF (LINE(IE) .NE. 40B) GO TO 80 IT = IT + 1 IF(IT .EQ. 4) GO TO 90 70 IE = IE + 1 GO TO 60 80 IT = 1 C C CHECK FOR A COMPUTED GO TO STATEMENT HERE.............. IF (LINE (IE).EQ. 50B) GO TO 130 IF (LINE (IE) .GE.60B .AND. LINE(IE).LE.71B) GO TO 70 90 IA = IB IZ = IE K = 0 C CALL INUM (LINE,IA,IZ,K) IF (K .EQ. 0) RETURN C J = IB L = IE CALL REPLC(J,L,K,LINE,IBUFO,IBUFN) C GO TO 120 C 100 IF (IB .EQ. 85) GO TO 120 GO TO 10 110 CONTINUE 120 RETURN C 130 CALL FIND5 (LINE,IE,IBUFO,IBUFN) RETURN C END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE FIND2(LINE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200) C C THIS SUBROUTINE SEARCHES FOR THE READ AND WRITE I/O C STATEMENTS FOR THE PROGRAM RENUM. C IT = 0 IB = 6 10 IB = IB + 1 IF (IB .EQ. 85) GO TO 80 IF (LINE(IB) .EQ. 40B) GO TO 10 IF (LINE(IB) .EQ.122B) GO TO 20 IF (LINE(IB) .NE.127B) GO TO 30 IB = IB + 1 IF (LINE(IB) .NE. 122B) GO TO 30 IB = IB + 1 IF ( LINE (IB) .NE. 111B) GO TO 30 IB = IB + 1 GO TO 50 20 IB = IB + 1 IF (LINE (IB) .NE. 105B) GO TO 30 IB = IB + 1 IF (LINE(IB) .NE. 101B) GO TO 30 GO TO 50 C 30 IF (IT .NE. 1) IB = 85 ITT = 0 40 IB = IB - 1 IF (IB .EQ. 7) GO TO 80 IF (LINE(IB) .NE. 51B) GO TO 40 ITT = ITT + 1 IT = 1 IF (ITT .EQ. 2) GO TO 10 GO TO 40 C 50 IB = IB + 1 IF (IB .EQ. 85) GO TO 80 IF (LINE(IB) .NE. 54B) GO TO 50 IL = IB K = 0 C 60 IF (LINE(IL) .EQ. 51B) GO TO 70 IL = IL + 1 IF(IL .EQ. 85) GO TO 80 GO TO 60 C 70 IL = IL - 1 CALL INUM(LINE,IB,IL,K) IF (K .EQ. 0) GO TO 80 J = IB + 1 L = IL C CALL REPLC (J,L,K,LINE,IBUFO,IBUFN) C 80 RETURN END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX C SUBROUTINE FIND3 (LINE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200) C C SUBROUTINE TO LOCATE DO STMTS. C IB = 6 10 IB = IB + 1 IF (IB .EQ. 85) GO TO 60 IF (LINE (IB) .EQ. 40B) GO TO 10 IF (LINE (IB) .NE. 104B) GO TO 10 20 IB = IB + 1 IF ( IB .EQ. 85 ) GO TO 60 IF (LINE (IB) .NE. 117B) GOTO 10 C IL = IB C 30 IL = IL + 1 IF (IL .EQ. 85) GO TO 60 IF (LINE (IL) .EQ. 40B) GO TO 30 IF (LINE (IL) .LE. 57B .OR. LINE (IL) .GE. 72B) GO TO 60 40 IL = IL + 1 IF (IL .EQ. 85) GO TO 60 IF (LINE(IL) .EQ. 40B) GO TO 40 IF(LINE(IL) .LE. 57B .OR. LINE(IL) .GE. 72B) GO TO 50 GO TO 40 C 50 K = 0 IL = IL - 1 C CALL INUM (LINE,IB,IL,K) C J = IB + 1 L = IL C CALL REPLC(J,L,K,LINE,IBUFO,IBUFN) C 60 RETURN C END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE FIND4 (LINE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200) C C ARITH. IF ROUTINE C IB = 6 10 IB = IB + 1 IF(IB .EQ. 85 ) GO TO 90 IF(LINE (IB) .EQ. 40B) GO TO 10 IF (LINE (IB) .NE. 111B) GO TO 10 IB = IB + 1 IF (LINE (IB) .NE. 106B) GO TO 10 IB = 85 20 IB = IB - 1 IF (IB .EQ. 10) GO TO 90 IF (LINE (IB) .NE. 51B) GO TO 20 30 IB = IB + 1 IF (IB .EQ. 85) GO TO 90 IF (LINE(IB) .EQ. 40B) GO TO 30 IB = IB - 1 IL? = IB 40 IL = IL + 1 IF (IL .EQ. 85) GO TO 90 IF (LINE (IL) .EQ. 40B) GO TO 40 IF (LINE (IL) .LE. 57B .OR. LINE(IL) .GE. 72B) GO TO 90 50 IL = IL + 1 IF (IL .EQ. 85) GO TO 90 IF (LINE (IL) .NE. 54B) GO TO 50 60 IL = IL - 1 IA = IB IZ = IL K=0 C CALL INUM (LINE,IA,IZ,K) J = IB + 1 L = IL CALL REPLC (J,L,K,LINE,IBUFO,IBUFN) ICSP = 0 IB = IL 70 IB = IB + 1 IF (IB .EQ. 85) GO TO 90 IF (LINE(IB) .EQ. 40B) ICSP = ICSP + 1 IF (ICSP .EQ. 3) GO TO 90 IF (LINE (IB) .NE. 54B) GO TO 70 C ICSP = 0 IL = IB 80 IL = IL + 1 IF (IL .EQ. 85) GO TO 90 IF (LINE (IL) .EQ. 40B) ICSP = ICSP + 1 IF (ICSP .EQ. 4) GO TO 60 IF (LINE (IL) .NE. 54B) GO TO 80 GO TO 60 90 RETURN END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE FIND5 (LINE,IE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200) C C COMPUTED GO-TO ROUTINE C IB = IE 10 IB = IB + 1 IF (IB .EQ. 85) GO TO 70 IF (LINE(IB) .EQ. 40B) GO TO 10 IB = IB - 1 C IL = IB 20 IL = IL + 1 IF (IL .EQ. 85) GO TO 70 IF (LINE (IL) .EQ. 40B) GO TO 20 IF (LINE (IL) .LE. 57B .OR. LINE(IL) .GE. 72B) GO TO 70 30 IL = IL + 1 IF (IL .EQ. 85) GO TO 70 IF (LINE (IL) .NE. 54B) GO TO 30 C 40 IL = IL - 1 IA = IB IZ = IL K=0 C CALL INUM (LINE,IA,IZ,K) C J = IB + 1 L = IL C CALL REPLC (J,L,K,LINE,IBUFO,IBUFN) C IF (LINE(IL+1) .EQ. 51B) GO TO 70 C ICSP = 0 IB = IL 50 IB = IB + 1 IF (IB .EQ. 85) GO TO 70 IF (LINE(IB) .EQ. 40B) ICSP = ICSP + 1 IF (ICSP .EQ. 3) GO TO 70 IF (LINE (IB) .NE. 54B) GO TO 50 C ICSP = 0 IL = IB 60 IL = IL + 1 IF (IL .EQ. 85) GO TO 70 IF (LINE(IL) .EQ. 51B) GO TO 40 IF (LINE (IL) .NE. 54B) GO TO 60 GO TO 40 C C 70 RETURN END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE FIND6 (LINE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200) C C SUBROUTINE FOR ASSIGN STATEMENTS C IB = 6 10 IB = IB + 1 IF (IB .EQ. 85) GO TO 30 IF(LINE (IB) .EQ. 40B) GO TO 10 IF (LINE (IB) .NE. 101B) GOTO 30 IB = IB + 1 IF(LINE (IB) .NE. 123B) GO TO 30 IB = IB + 1 IF (LINE (IB) .NE. 123B) GO TO 30 IB = IB + 1 IF (LINE (IB).NE. 111B) GO TO 30 C C IB = IB + 2 IL = IB C 20 IL = IL + 1 IF (IL .EQ. 85) GO TO 30 IF (LINE (IL) .NE. 124B) GO TO 20 C IA = IB IZ = IL K=0 CALL INUM (LINE,IA,IZ,K) C IF (K .EQ. 0) GO TO 30 C J = IB + 1 IF (LINE(J) .EQ. 40B) J = J + 1 L = IL - 1 C CALL REPLC (J,L,K,LINE,IBUFO,IBUFN) C 30 RETURN C END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX C SUBROUTINE REPLC (J,L,K,LINE,IBUFO,IBUFN) DIMENSION LINE(85),IBUFO(200),IBUFN(200),INTMP(6) C C FIND THE NEW NUMBER TO BE INSERTED C DO 10 I=1,200 IF (IBUFO(I) .NE. K) GO TO 10 K = IBUFN (I) GO TO 20 10 CONTINUE C C DELETE OLD NUMBER FROM PENDING LINE C 20 N = J - 1 M = L - N IP = J DO 30 I=1,M LINE (IP) = 40B 30 IP = IP + 1 C C CONVERT THE NEW # TO ASCII AND SAVE IN INTMP C DO 40 I = 1,6 40 INTMP(I) = 40B C CALL CNUMD(K,INTMP) C CALL UNPK (INTMP) C C DETERMINE IF THE NEW NUMBER WILL FIT IN PENDING LINE C IP = 6 DO 50 I = 1,6 IF (INTMP(I) .EQ. 40B) GO TO 50 GO TO 60 50 IP = IP - 1 60 N = IP - M IF (J .NE. 1) N = N + 2 IF (N .GE. 3 ) GO TO 100 C C INSERT THE NEW NUMBER IN THE PENDING LINE C 70 IF (LINE(J-2) .EQ. 104UB) GO TO 80 IF(LINE(J-1) .EQ. 117B) J = J + 1 80 DO 90 I = 1,6 IF (INTMP(I) .EQ. 40B) GO TO 90 LINE(J) = INTMP(I) J = J + 1 90 CONTINUE C RETURN C C SHIFT LINE TO MAKE ROOM FOR NEW NUMBER C C DETERMINE PRESENT END OF LINE C 100 NP = 85 DO 110 I = 1,70 IF (LINE(NP) .NE. 40B) GO TO 120 110 NP = NP - 1 C C IP = END OF LINE POINTER C 120 IF (N .GE. 3) N = N - 2 L = NP + N 130 LINE (L) = LINE (NP) L = L - 1 NP = NP - 1 IF (NP .EQ. J) GO TO 70 GO TO 130 END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE INUM(LINE,IA,IZ,K) DIMENSION LINE(85),NTBUF(6) C DO 10I=1,6 10 NTBUF (I) = 40B J = 1 IF = IA IL = IZ ICNT = IL - IF DO 20 I = 1,ICNT IF (LINE(IL) .LE. 57B .OR. LINE(IL) .GE.72B) GO TO 20 NTBUF(J) = LINE (IL) - 60B J = J + 1 20 IL = IL - 1 C IF (J .EQ. 1) RETURN C IP = 0 M = 1 J = J - 1 DO 30 I = 1,J IN = NTBUF(I) * M IP = IN + IP 30 M = M * 10 K = IP C RETURN END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX C C SUBROUTINE READ (LINE,LU5,NAMIN,IDCB) DIMENSION LINE(80),NAMIN(3),IDCB(144),LINET(40) DO 10 I=1,85 10 LINE (I) = 40B DO 20 I = 1,40 20 LINET(I) = 020040B C IF (LU5 .EQ. 2) GO TO 40 C READ (LU5,30) (LINE(I), I = 1,72) 30 FORMAT (72A1) C RETURN C 40 LEN = 40 CALL READF (IDCB,JERR,LINET,LEN,ITLOG) IF (ITLOG .EQ. -1) WRITE (1,45) ITLOG 45 FORMAT ("READF ERROR ",I3) IF (ITLOG .EQ. -1)PAUSE 5 C CALL CODE READ (LINET,50 ) LINE 50 FORMAT (80A1) C RETURN C END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX C SUBROUTINE LIST (IBUFO,IBUFN,IREQ,LINE,ICNT,LU6) DIMENSION IBUFO(200),IBUFN(200),LINE(85) DATA IQUES /77B/ C IF (IREQ .EQ. 2) GO TO 30 IF (IREQ .EQ. 3) GO TO 50 WRITE (LU6,10) 10 FORMAT ("1") WRITE (LU6,20) (IBUFO(I),IBUFN(I),I=1,ICNT) 20 FORMAT (XI5,5X,I5) RETURN 30 WRITE (LU6,40) (LINE(I),I=1,72) 40 FORMAT (X72A1) RETURN 50 IK = 85 DO 60 I =1,20 IF (LINE (IK) .NE. 40B) GO TO 70 IK = IK - 1 60 CONTINUE 70 IF (IK .LE. 72) GO TO 90 WRITE (LU6,80) (LINE(I),I=1,72),IQUES,(LINE(I),I=73,85) 80 FORMAT (X72A1,/,6X,A1,2X,23A1,/) RETURN 90 WRITE (LU6,100) (LINE (I),I= 1,72) 100 FORMAT (X72A1,/) RETURN END CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SUBROUTINE PUNCH (LINE,LU4,IDCB1,NAMOU) DIMENSION LINE (84),IDCB1(144),LINE2(42) DIMENSION NAMOU (3) DATA IQUES /77B/ IK = 85 DO 10 I = 1,85 IF (LINE (IK) .NE. 40B) GO TO 20 IK = IK -1 10 CONTINUE C 20 IF (IK / 2 * 2 .NE. IK) IK = IK + 1 IF (LU4 .EQ. 2) GO TO 70 IF (IK .LE. 72) GO TO 40 WRITE (LU4,30) (LINE(I),I=1,72),IQUES,(LINE(I),I=73,85) 30 FORMAT (72A1,/,5X,A1,2X,13A1) RETURN 40 WRITE (LU4,50) (LINE(I),I=1,IK) 50 FORMAT(72A1) 60 RETURN 70 DO 80 I= 1,84,2 J =(I + 1)/ 2 80 LINE2(J) = LINE(I) * 400B + LINE (I + 1) IK = IK / 2 IF (IK .GE. 37) GO TO 90 CALL WRITF (IDCB1,IERR,LINE2,IK) IF (IERR .LT. 0) WRITE (1,85) IERR 85 FORMAT ("WRITF ERROR ",I3) IF (IERR .LT. 0) PAUSE 10 RETURN C C 90 CALL WRITF (IDCB1,IERR,LINE2,36) IF (IERR .LT. 0) WRITE (1,85) IERR IF (IERR .LT. 0) PAUSE 15 IK = IK - 33 LINE2 (34) = 2H LINE2 (35) = 2H LINE2 (36) = 2H ? CALL WRITF (IDCB1,IERR,LINE2(34),IK) IF (IERR .LT. 0) WRITE (1,85) IERR IF (IERR .LT. 0) PAUSE 20 RETURN END END$ BB@< * P+2 JMP * * OR * REJECT ADDRESS * JSB * * P+3 DEF * P+4 DEC * P+5 * THIS WAS THE CALLING SEQUENCE FOR A WRITE TO THE LP * THE ONLY OTHER VALID CALL FOR THIS DRIVER IS A CLEAR REQUEST * * THE FORMAT FOR THE CLEAR CALL IS: * P JSB .IOC. * P+1 OCT 0000XX * WHERE XX IS THE UNIT REFERENCE OF TEE LINE PRINTER. * ************************************************************************ * * THE INITIALIZATION SECTIO OF TEH DRIVER FIRST * GETS ALL THE NECESSARY ADDRESSES IT NEEDS FROM THE CALLING * PROGRAM (.IOC.). THE NEXT FUNCTION IS TO CHECK AND MAKE * SURE IT IS A VALID REQUEST OF THE DRIVER AND ALSO THAT * THE LINE PRINTER IS ON LINE IF SUCH IS NECESSARY FOR THE * OPERATION TO BE COMPLETED. * ALL THIS BEING ACCOMPLISHED SUCCESSFULLY, THE DRIVER * NEXT SETS UP THE VARIOS FLAGS THAT ARE NECESSARY AND CALLS * THE CONTINUATOR TO OUTPUT THE FIRST CHARACTER. * ************************************************************************ * * SPECIAL CHARACTER PROCESSING: * * IF THE LAST CHARACTER OF A LINE IS A LEFT ARROW <_>, * THE LEFT ARROW IS SUPPRESSED AND THE CARRIAGE RETURN AND LINE * FEED NORMALLY APPENDED ARE LEFT OFF. IF A LEFT ARROW APPEARS * ANYWHERE ELSE IN A LINE, IT IS OUTPUT NORMALLY. * ******************************************************************** SKP STA SAVAX SAVE REGISTER A LDA B,I GET THE REQUEST CODE ALF POSITION TO LOWER 4 BITS AND M17 MASK OFF OTHER CRUD SZA,RSS SKIP/NOT A CLEAR REQUEST JMP CLEAR JMP/CLEAR REQUEST STB SAVBX SAVE REGISTER B LDB TLOGA CHECK IF DRIVER BUSY SZB SKIP/NOT BUSY JMP BUSY JMP/BUSY RETURN CPA D2 REQUEST CODE = 2? RSS SKIP/CODE = 2 (WRITE) JMP RQERR JMP/REQUEST CODE ERROR * SET UP THE NECESSARY ADDRESSES LDA SAVAX STA CHANA INA STA STATA INA STA TLOGA LDB SAVBX ADDRESS OF REQUEST CODE ADB D2 ADDRESS OF BUFFER ADDRESS LDA B,I GET THE BUFFER ADDRESS CLE,ELA FORM BYTE ADDRESS STA BUFAD INB * COUNT IS (-) IF CHARACTERS, (+) IF WORDS LDA B,I GET CHAR. (-)/WORD (+) COUNT CCE,SSA SKIP/POSITIVE ==> WORD CMA,CLE,INA MAKE CHAR. POS.; CLEAR E STA CCONT SAVE THE POSITIVE VALUE CMA,SEZ,INA SET NEGATIVE; SKIP/CHARACTERS ALS CONVERT -(WORDS) TO -(CHARS.) STA BUFLN VALUE IS NEG. OF CHAR. COUNT * * I/O SETUP LDA CHANA,I AND M77 * IOR SFS STA IO3 1023XXB * XOR .600 STA IO4 1025XXB * ADA .1100 STA IO1 1036XXB STA IO7 1036XXB * IOR .1100 STA IO2 1037XX STA IO8 1037XX * IOR .4000 STA IO5 1077XX STA IO6 1077XX STA IO9 1077XX * CLA SET UP AND OUTPUT * CLF 0 ** TURN THE INTERRUPT SYSTEM OFF ** * IO1 OTA 0,C A NULL TO THE LP IO2 STC 0,C AND WAIT IO3 SFS 0 FOR JMP *-1 FLAG IO4 LIA 0 GET STATUS IO5 CLC 0,C MAKE SURE ITS OFF *  STF 0 ** TURN THE INTERRUPT SYSTEM ON ** * SLA,RSS LP JMP DBUSY ONLINE? CLA,CCE SET A FEW REGS, STA TLOGA,I AND CLEAR TLOG, STA DFLAG SET DONE FLAGS TO ZERO STA SAVA ZERO FOR RETURN TO .IOC. STA CRFLG RESET CARRIAGE RETURN FLAG STA VTFLG RESET THE VERTICAL TAB FLAG STA WRFLG RESET THE WRAP-AROUND FLAG LDA STATA,I GET STATUS WORD. IOR BIT15 SET BUSY FLAG. STA STATA,I AND SAVE IT LDA D.06 * SET RETURN ADDRESS STA I.06 * FOR CONTINUATOR LDA CR FOR USE IF COUNT = 0 LDB BUFLN CHECK COUNT * CLF 0 ** TURN THE INTERRUPT SYSTEM OFF ** * SZB SKIP/COUNT=0 ==> OUTPUT CR/LF JMP I.ENT JMP/OUTPUT THE FIRST CHARACTER JMP DON1A JMP/OUTPUT THE CR/LF PAIR * I.RET STF 0 ** TURN THE INTERRUPT SYSTEM ON ** JMP IO6 * CLEAR LDA SAVAX * CHECK FOR CLEAR ON THE CPA CHANA * DEVICE THAT IS ACTUALLY BUSY RSS SKIP/THE SAME JMP CEXIT JMP/CLEAR FOR ANOTHER DEVICE IO6 CLC 0,C TURN OFF PRINTER LDA STATA,I GET THE STATUS WORD AND MASK1 MASK OFF BITS 15 AND 14 STA STATA,I SAVE THE NEW STATUS CLA STA TLOGA,I CHAR. COUNT = 0 FOR CLEAR STA TLOGA RESET "DRIVER BUSY" FLAG CEXIT LDA BIT15 IMMEDIATE COMPLETION FLAG JMP D.06,I JMP/RETURN * DBUSY CLA STA TLOGA RESET "DRIVER BUSY" FLAG RSS MUST SKIP TO RQERR CLB,RSS SET UP FOR B=0 RETURN BUSY LDB BIT15 SET UP FOR B=100000B RETURN CLA,INA SET (A) FOR "NOT INITIATED" FLAG JMP D.06,I JMP/RETURN SKP * * CONTINUATOR SECTION * I.06 NOP ENTRY POINT FOR CONTINUATOR * CLF 0 ** TURN THE INTERRUPT SYSTEM OFF ** * STA SAVA * STB SAVB * ERA,ALS * SAVE REGISTERS 2X SOC * INA * STA SAVEO * LDA DFLAG GET DONE FLAG SZA ARE WE DONE JMP DON1 YES WE ARE. * I.ENT LDB BUFAD GET THE BYTE ADDRESS CLE,ERB WORD ADDR. -->B; BYTE IND. -->E LDA B,I GET WORD SEZ,RSS SKIP/BYTE 1 ALF,ALF BYTE 0 --> LOWER 8 BITS AND MASK MASK OFF UPPER BITS ISZ BUFAD INCREMENT BYTE ADDR. ISZ BUFLN INCREMENT COUNT JMP OUTCH JMP/NOT THE LAST CHARACTER LDB VTFLG CHECK FOR PRECEDING VERTICAL TAB SZB SKIP/LAST CHAR. WAS NOT VT (13B) JMP OUTC4 JMP/VERTICAL TAB COLUMN COUNT CPA ARROW IS LAST CHAR. A LEFT ARROW? JMP DON2 JMP/LAST CHAR. IS A LEFT ARROW!! LDB CR * INDICATE LAST CHARACTER BY STB DFLAG * SETTING DFLAG TO A CR OUTCH LDB VTFLG CHECK FOR PRECEDING VERTICAL TAB SZB SKIP/LAST CHAR. WAS NOT VT (13B) JMP OUTC4 JMP/VERTICAL TAB COLUMN COUNT ADA NO140 CHECK FOR CODES > 137B SSA,RSS SKIP/CODE < 140B OUTC1 LDA NO40 WILL BE AN "@" WHEN DONE ADA O100 CHECK FOR CODES < 40B SSA SKIP/CODE > 37B JMP OUTC2 JMP/CODE < 40B ADA O40 RESTORE CHAR. TO HEALTH CLB STB CRFLG RESET CARRIAGE RETURN FLAG ISZ LSTCR INCREMENT "SINCE LAST CR" COUNT JMP OUTC5 JMP/NOT PHYSICAL END-OF-LINE STA WRFLG SAVE NEXT CHARACTER LDA CR JMP DON1A JMP/OUTPUT CR/LF FOR WRAP-AROUND * * CHECK FOR LEGAL CODES < 40B OUTC2 ADA O40 RESTORE THE CODE CPA LF JMP OUTC3 JMP/LINE FEED LEGAL CPA FF JMP OUTC3 JMP/FORM FEED LEGAL CPA CR JMP OUTC3 JMP/CARRIAGE RETURN LEGAL CPA VT RSS SKIP/VERTICAL TAB LEGAL JMP OUTC1 JMP/ILLEGAL (SUBSTITUTE "@") STA VTFLG SET VT FLAG NON-ZERO OUTC3 LDB NC6MAX * RESET LAST CARRIAGE STB LSTCR * RETURN COUNTER STB CRFLG SET THE CR FLAG NON-ZERO JMP OUTC5 JMP/OUTPUT THE CHARACTER * * CHARACTER IS VERTICAL FORMAT CONTROL TAPE COLUMN OUTC4 CLB STB VTFLG ZERO OUT THE VERTICAL TAB FLAG AND M7 MASK FOR CHANNELS 0 -- 7 * OUTC5 OTA 0,C OUTPUT THE CHARACTER IO7 EQU OUTC5 IO8 STC 0,C INITIATE CHARACTER OUTPUT JSB RSET RESTORE REGS. * STF 0 ** TURN THE INTERRUPT SYSTEM ON ** * JMP I.06,I JMP/RETURN * * CHARACTER TO BE OUTPUT IS IN REGISTER A (FROM ABOVE) DON1 LDB CRFLG * CHECK IF LAST CHARACTER SZB * CAUSED A CARRIAGE RETURN JMP DONE JMP/DON'T OUTPUT ANOTHER CR/LF SSA,RSS SKIP/NEGATIVE ==> CR/LF ARE OUT JMP DON1A JMP/NOT FINISHED LDB NCMAX * RESET LAST CARRIAGE STB LSTCR * RETURN COUNTER LDA WRFLG CHECK FOR WRAP-AROUND SZA,RSS SKIP/NEXT CHAR. IN "WRFLG" JMP DONE JMP/NOT A WRAP CONDITION CLB * STB DFLAG * RESET DONE AND WRAP FLAGS STB WRFLG * JMP OUTCH JMP/CONTINUE LINE OUTPUT DON1A LDB LF GET A LINE FEED CPA LF CHECK FOR THIS CHARACTER A LF CCB THIS IS THE LF -- SET B=-1 STB DFLAG SET THE FLAG APPROPRIATELY JMP OUTC5 JMP/OUTPUT THE CHARACTER * DON2 LDA D.06 * IF CONTENTS OF D.06 AND I.06 CPA I.06 * COMPARE, WAS A ONE-CHAR. JMP I.RET * OUTPUT OF A LEFT ARROW * DONE LDA CCONT * SET UP COUNT OF CHARACTERS STA TLOGA,I * TRANSFERRED IN EQT(3) IO9 CLC 0,C TURN IT OFF LDA I.06 SET UP FOR STA DFLAG CALL TO .BUFR CLB STB TLOGA RESET "DRIVER BUSY" FLAG LDA STATA,I GET THE STATUS WORD AND MASK1 MASK OFF BITS 15 AND 14 STA STATA,I SAVE THE NEW STATUS JSB RSET a$" RESTORE REGS. JSB .BUFR RETURN TO .IOC. DFLAG NOP CHANA NOP SKP * * * RESTORE REGS. * * RSET NOP ENTERY CLO LDA SAVEO SLA,ELA STO LDA SAVA LDB SAVB JMP RSET,I SKP ************************************************************************ * * * CONSTANTS AND DATA FOR D.06 * * ************************************************************************ B EQU 1 * .600 OCT 600 .1100 OCT 1100 .4000 OCT 4000 ARROW OCT 137 BIT15 OCT 100000 CR OCT 15 D2 DEC 2 FF OCT 14 LF OCT 12 M7 OCT 7 M17 OCT 17 M77 OCT 77 MASK OCT 177 MASK1 OCT 37777 NCMAX DEC -133 - (MAX. ALLOWABLE # COLUMNS + 1) NO40 OCT -40 NO140 OCT -140 O40 OCT 40 O100 OCT 100 SFS OCT 102300 VT OCT 13 * SAVA NOP SAVB NOP SAVEO NOP SAVAX NOP SAVBX NOP * BUFAD NOP BUFLN NOP CCONT NOP CRFLG NOP LSTCR DEC -133 INITIAL VALUE SAME AS "NCMAX" STATA NOP TLOGA NOP VTFLG NOP WRFLG NOP END $ & 1 22682-18004 1604 SC 0222 SINGLE TERMINAL-TIMESHARE BASIC CONVERSATIONAL LINK             H0102 ASMB,A,B,L,T ORG 11B TTY1 EQU 11B TTY2 EQU 20B CORE EQU 10000B * * * *********************************** * * * * * SINGLE TERMINAL-TIMESHARE LINK * * * * * * IAN R RICHARDS * * * * * * HEWLETT PACKARD AUST PTY * * * * * *********************************** * ABSOLUTE ASSEMBLER DRIVER FOR HP 20392 BASIC. * BEFORE ASSEMBLY STATEMENTS 3,4 AND 5 MUST BE CONFIGURED. * STATEMENTS 3 AND 4 DEFINE THE SYSTEM TTY AND TIMESHARE * LINK SELECT CODES. CORE SIZE IS DEFINED BY THE CODE: * * 8K=10000B (DEFAULT) * 12K=20000B * 16K=30000B * 24K=50000B * 32K=70000B * * THE DRIVER PROVIDES A LINK BETWEEN SINGLE TERMINAL * BASIC AND 2000F TIMESHARE BASIC VIA A TTY INTERFACE * CARD.AS THE INTERRUPT SYSTEM IS USED THE PRIORITY * CHAIN MUST BE COMPLETE TO THE HIGHEST SELECT CODE * USED BY THE DRIVER: I.E. TTY1 OR TTY2. * IN ADDITION THE SINGLE TERMINAL SYSTEM CAN BE USED * EITHER ON COMMAND OR UNDER PROGRAM CONTROL, AS * A TIMESHARE TERMINAL. * * * * SYSTEM LINKAGES * ORG 73B WATE2 DEF WAIT2 LINK TO "LIST" WAIT WAIT1 DEF WAIT LINK TO WAIT(-1) ELINK DEF ERROR LINK TO ERROR ROUTINE LINK1 DEF TSINP TIMESHARE INTERRUPT LINKAGE LINK2 DEF LOCAL TTY INTERRUPT LINKAGE ORG 105B DEF STOP LINK TO STOP ROUTINE ORG 123B DEF IOFF? LINK TO ENABLE TTY INTERRUPT ORG 201B DEF START LINK TO BASIC START ORG 527B JSB ELINK,I MODIFY ORG 540B ERROR JSB ELINK,I ROUTINE LINKAGES ORG 2216B MODIFY JMP *+1,I BYE DE{F EXBYE COMMAND ORG 4107B REMOVE OCT 32003 MAT ASC 2,LET SYNTAX ORG 4642B MODIFY JSB WATE2,I LIST COMMAND ORG 6376B MODIFY JMP WAIT1,I WAIT COMMAND ORG 7543B+CORE MODIFY JSB *+1,I CHARACTER DEF CANCL PROCESSOR ORG 11456B * * SUBROUTINE TO SET UP TTY AS A TIMESHARE TERMINAL * EXBYE LDA .2 BYE ENTRY POINT JMP INPUT CALNT NOP CALL ENTRY POINT CLA INPUT STA DESTN STORE ENTRY POINT CLA IS INTERRUPT SFS 00 SYSTEM ON? LDA .2 NO STA IFLAG YES, STORE RESULT CLF 00 TURN INTERRUPT SYSTEM OFF LDA TTY1 STORE TTY STA TTYI INSTRUCTION LDA JMPL2 LOAD NEW STA TTY1 TTY INSTRUCTION LDA JMPL1 LOAD TIMESHARE STA TTY2 I/O INSTRUCTION LDB CNTR1 TRANSFER OTB TTY1 INPUT LDB CNTR3 INSTRUCTIONS OTB TTY2 TO I/O CARDS STC TTY1,C BOTH READY STC TTY2,C TO RECEIVE STF 00 TURN INTERRUPT SYSTEM ON NOP WAIT FOR AN INTERRUPT JMP *-1 * * PROCESS TIMESHARE INTERRUPT * TSINP NOP CLC TTY1 PREVENT KEYBOARD INTERRUPT LIA TTY2 LOAD TIMESHARE DATA CPA CNTRC DATA= CONTROL C ? JMP RTURN+1 YES, EXIT CPA CNTRE NO, CONTROL E ? JMP RTURN YES, EXIT SZB NO,WAS PREVIOUS OUTPUT COMPLETE ? JMP *+3 YES SFS TTY1 NO, WAIT JMP *-1 UNTIL DONE LDB CNTR2 SET UP OTB TTY1 KEYBOARD OTA TTY1 FOR OUTPUT STC TTY1,C AND OUTPUT DATA CLC TTY1 PREVENT TTY INTERRUPT STC TTY2,C RE-ENAiBLE TIMESHARE CLB SET OUTPUT NOT DONE INDICATOR SFS TTY1 WAIT FOR KEYBOARD JMP *-1 TO COMPLETE. LDB CNTR1 RESET KEYBOARD OTB TTY1 TO STC TTY1,C RECEIVE MODE NOP WAIT FOR JMP *-1 AN INTERRUPT. * * PROCESS TTY INTERRUPT * LOCAL NOP CLC TTY2 PREVENT TIMESHARE INTERRUPT LIA TTY1 LOAD KEYBOARD DATA CPA CNTRD DATA = CONTROL D? JMP RTURN+1 YES, EXIT LDB CNTR2 NO, SET UP OTB TTY2 FOR OTA TTY2 OUTPUT STC TTY2,C TO TIMESHARE CLC TTY2 PREVENT INTERRUPT STC TTY1,C ENABLE KEYBOARD INPUT SFS TTY2 WAIT FOR TIMESHARE JMP *-1 TO COMPLETE OUTPUT LDB CNTR3 RESET TIMESHARE OTB TTY2 TO RECEIVE STC TTY2,C MODE NOP WAIT FOR JMP *-1 AN INTERRUPT * * CONSTANTS, LINKAGES AND STORAGE * CNTR1 OCT 160000 CNTR2 OCT 120000 CNTR3 OCT 140000 JMPL2 OCT 124077 JMPL1 OCT 124076 CNTRE OCT 5 CNTRD OCT 204 CNTRC OCT 3 DESTN BSS 1 IFLAG BSS 1 TTYI BSS 1 .2 OCT 2 STBAS DEF 2041B * * EXIT ROUTINE * RTURN JSB FLOP TOGGLE THE LINK JSB ?FLOP LINK SET UP? JMP *+3 NO JSB IM.ON,I YES, ENABLE KEYBOARD JMP *+3 INTERRUPT. LDA TTYI LOAD TTY STA TTY1 INSTRUCTION CLA NOP IN TIMESHARE STA TTY2 INTERRUPT LOCATION CLF 00 RESET CPA IFLAG INTERRUPT STF 00 SYSTEM LDA DESTN EXIT SZA DEPENDS JMP STBAS,I ON JMP CALNT,I ENTRY POINT. RTRN JSB FLOP TOGGLE THE LINK JMP EXBYE EXIT IM.ON DEF 7527B+CORE * * SUBROUTINE TO DETERMINE WHETHER SINGLE TERMINAL-TIMESHARE * LINK IS ESTABLISHED AT TIME OF EXECUTION. * ?FLOP NOP LDB TTY.1 LOAD SELECT CODE IN USE CPB TTY2T IS IT TIMESHARE? ISZ ?FLOP YES, BUMP RETURN ADDRESS JMP ?FLOP,I NO, EXIT TTY2T DEF TTY2 TTY.1 DEF TTY1 TTY.2 DEF TTY2 * * SUBROUTINE TO EXCHANGE ACTIVE SELECT CODES * FLOP NOP SFS 00 IS JMP *+3 INTERRUPT CLF 00 SYSTEM ON? ISZ INFLG STORE STATUS JSB ?FLOP TIMESHARE TO BE ACTIVE? JMP SWAP YES,NOP AS READY SYMBOL LDA CNTR1 NO, LOAD RECEIVE WORD LDB RITE? ENABLE ? AS READY SYMBOL EXLOC STB MOD?,I ENABLE READY SYMBOL STA IMODE,I STORE RECEIVE WORD JSB ?FLOP TIMESHARE TO BE ACTIVE? JSB IM.ON,I YES, ENABLE TTY INTERRUPT LDA TTY.1 EXCHANGE LDB TTY.2 SELECT STA TTY.2 CODES STB TTY.1 LDA COUNT GET LENGTH OF LIST CMA,INA MAKE IT NEGATIVE STA CHECK STORE IT LDA BEGIN GET ADDRESS OF LIST STA IOADR STORE IT AS POINTER LOOP LDB IOADR,I GET INSTRUCTION ADDRESS LDA B,I GET INSTRUCTION AND BCODE MASK OFF SELECT CODE IOR TTY.1 ADD NEW SELECT CODE STA B,I REPLACE INSTRUCTION ISZ IOADR BUMP LIST POINTER ISZ CHECK BUMP LOOP COUNTER, FINISHED? JMP LOOP NO, REPEAT LDA INFLG YES, RESET SZA INTERRUPT STF 00 STATUS CLA STA INFLG CLEAR INTERRUPT FLAG JMP FLOP,I EXIT SWAP LDA CNTR3 LOAD RECEIVE WORD LDB RITE0 LOAD NOP AS READY SYMBOL JMP EXLOC EXIT * * CONSTANTS, LINKAGES AND STORAGE * RITE0 NOP RITEE? OCT 114102 BCODE OCT 177700 COUNT ABS LIEND-LIST+1 CHECK NOP IOADR NOP INFLG NOP BEGIN DEF LIST IMODE DEF 7444B+CORE MOD? DEF 2055B LIST ABS 7433B+CORE ABS 7434B+CORE ABS 7435B+CORE ABS 7437B+CORE ABS 7442B+CORE ABS 7447B+CORE ABS 7456B+CORE ABS 7457B+CORE ABS 7462B+CORE ABS 7463B+CORE ABS 7464B+CORE ABS 7471B+CORE ABS 7500B+CORE LIEND ABS 7502B+CORE * * MODIFY CHARACTER PROCESSOR * CANCL NOP ISZ CANCL BUMP RETURN ADDRESS CPA .2 DATA = CONTROL B? JMP PROCS,I YES, RETURN TO PROCESSOR CPA XOFF NO, =XOFF? JMP PROCS,I YES,RETURN CPA XON NO, =XON? JMP PROCS,I CPA QMARK NO, =ASC? JMP PROCS,I YES CPA CNTRE NO, = CONTROL E ? JMP RTRN YES, EXIT JMP CANCL,I NO, CONTINUE PROCESSING PROCS DEF 7537B+CORE,I XOFF OCT 23 XON OCT 21 QMARK OCT 77 * * SUBROUTINE TO ENSURE THAT IN THE EVENT OF A * "STOP" IN SINGLE TERMINAL BASIC, SYSTEM * RETURNS TO TTY CONTROL * STOP NOP JSB ?FLOP TIMESHARE ACTIVE? JMP ISTOP,I NO, EXIT CLC TTY2 YES, TURN IT OFF JSB FLOP TOGGLE THE LINK JMP ISTOP,I EXIT ISTOP DEF 2200B * * SUBROUTINE TO CONTROL TTY INTERRUPT DURING * OUTPUT TO TIMESHARE * IOFF? NOP JSB ?FLOP TIMESHARE ACTIVE? JSB IMOFF,I NO, TURN INTERRUPT OFF JMP IOFF?,I YES, LEAVE IT ON IMOFF DEF 7520B+CORE * * SUBROUTIN TO ENSURE BASIC ALWAYS STARTS * IN TTY MODE * START JSB ?FLOP TIMESHARE ACTIVE? JMP ENTRY,I NO, EXIT JSB FLOP YES, TOGGLE THE LINK JMP ENTRY,I EXIT ENTRY DEF 2010B * * CALL LINKAGE TABLE * SBTBL OCT 1 DEF FLOP CALL(1)=TOGGLE THE LINK OCT 2 DEF CALNT CALL(2)=TTY AS TERMINAL LSTWD EQU ރ* NOP * * SUBROUTINE TO PRINT EXECUTION ERRORS ON TTY * ERROR NOP STA SAVEA SAVE A STB SAVEB AND B JSB ?FLIP,I TIMESHARE ACTIVE? JMP *+2 NO JSB FLIP,I YES, TOGGLE THE LINK LDA SAVEA RESTORE A LDB SAVEB AND B JSB WRITE,I PRINT THE ERROR JMP ERROR,I EXIT WRITE EQU 102B SAVEA BSS 1 SAVEB BSS 1 ?FLIP DEF ?FLOP FLIP DEF FLOP * * SUBROUTINE TO SUSPEND EXECUTION TILL RECEIPT * OF AN XON CHARACTER FROM TIMESHARE * (1) MODIFY "LIST" EXECUTION * WAIT2 NOP STB SAVEB SAVE B JSB ?FLIP,I TIMESHARE ACTIVE? JMP *+5 NO JSB WLOOP YES, WAIT FOR XON LDB SAVEB RESTORE B JSB WRITE,I PRINT LINE TO TIMESHARE JMP *+3 EXIT LDB SAVEB RESTORE B JSB LISTR,I PRINT LINE ON LIST DEVICE JMP WAIT2,I EXIT LISTR EQU 127B LIST DEVICE LINK * * (2) MODIFY "WAIT" EXECUTION * WAIT JSB ?FLIP,I JMP XEC4,I NO, DONT WAIT JSB WLOOP YES, WAIT FOR XON JMP XEC4,I THEN RETURN TO EXECUTIVE * * WAIT FOR AN XON * WLOOP NOP LDB CTRL3 LOAD RECEIVE WORD OTB TTY2 SET UP TEST STC TTY2,C FOR RECEIVE SFS TTY2 AND JMP *-1 WAIT. LIB TTY2 LOAD CHARACTER CPB X/ON = XON? JMP WLOOP,I YES, EXIT JMP TEST NO, WAIT AGAIN * * CONSTANTS * XEC4 DEF 6044B CTRL3 OCT 140000 X/ON OCT 21 A EQU 0 B EQU 1 * * ENDING SERVICE TABLE * ORG 110B DEF X/ON+1 ORG 121B DEF SBTBL START CALL TABLE DEF LSTWD END+1 CALL TABLE END ~*($$*10 DIM A$[72],B$[6],C$[9] 20 FILES CNTRE,DUMMY 30 PRINT "ENTER PROGRAM NAME" 40 INPUT B$ 50 PRINT "WAIT TILL DONE" 60 ASSIGN B$,2,O 70 READ #2,1 80 READ #1;E$ 90 PRINT E$ 100 PRINT "LIST" 110 ENTER 255,S,A$ 120 C$="123456789" 130 FOR I=1 TO 9 140 IF A$[1,1]=C$[I,I] THEN 180 150 NEXT I 160 PRINT E$ 170 END 180 PRINT #2;A$ 190 GOTO 110 200 END 10 REM* THIS PROG. DUMPS SINGLE TERMINAL BASIC PROGS 20 REM* STORED ON FILE TO S/T BASIC SYSTEM. 30 FILES CNTRE,DUMMY 40 DIM A$[72],B$[6] 50 PRINT " ENTER PROG. NAME" 60 INPUT B$ 70 ASSIGN B$,2,I 80 READ #2,1 90 PRINT "WAIT TILL DONE" 100 READ #1;E$ 110 PRINT E$ 120 PRINT "SCR" 130 INPUT A$ 150 IF END #2 THEN 190 160 READ #2;A$ 170 PRINT A$ 180 GOTO 160 190 PRINT E$ 210 END 10 CALL(2) 20 FOR I=1 TO 10 30 WAIT(-1) 40 PRINT RND(0) 50 NEXT I 60 CALL(1) 70 CALL(2) 80 END 10 DIM N[10] 20 DIM A$[72] 30 FILES CNTRE,CNTRC,#DEMO 40 READ #1;E$ 50 READ #2;C$ 60 PRINT "THE PROGRAM IS NOW BEING TRANSFERRED FROM FILE" 70 PRINT "TO SINGLE TERMINAL BASIC" 80 PRINT "TAKES ABOUT 15 SECS." 90 PRINT E$ 100 PRINT "SCR" 110 INPUT A$ 120 IF END #3 THEN 160 130 READ #3;A$ 140 PRINT A$ 150 GOTO 130 160 PRINT "RUN" 170 PRINT "SINGLE TERMINAL BASIC IS NOW RUNNING," 180 PRINT "GENERATING A SET OF RANDOM NUMBERS AND" 190 PRINT "TRANSFERRING THEN TO TIMESHARE. TIMESHARE WILL" 200 PRINT "PRINT THEM WHEN TRANSFER IS COMPLETE" 210 PRINT "TAKES ABOUT 15 SECS" 220 PRINT C$ 230 FOR I=1 TO 10 240 INPUT N[I] 250 NEXT I 260 PRINT LIN(2) 270 PRINT "THE RANDOM NUMBERS ARE:-" 280 FOR I=1 TO 10 290 PRINT N[I] 300 NEXT I 310 PRINT C$ 320 END H   (7 22682-18005 1604 SC 0122 BINARY TO BCD CONVERSION              H0101 FTN,B,L PROGRAM TEST 5 WRITE(1,10) 10 FORMAT(1H ,"I=?") READ(1,*)I IF(I .EQ. -1)GO TO 100 CALL BIBCD(I,J) WRITE(1,20)I,J 20 FORMAT(1H ,"I=",I7,10X,"J=",I7) GO TO 5 100 STOP END END$ ASMB,R,L,B,T HED BINARY TO BCD SUBROUTINE NAM BIBCD EXT .ENTR ENT BIBCD BIN NOP BINARY INPUT PARAMETER ADDRESS BCD NOP BCD OUTPUT PARAMETER ADDRESS BIBCD NOP SUBROUTINE ENTRY/EXIT JSB .ENTR PICK UP PARAMETER ADDRESSES DEF BIN ADDRESS FOR .ENTR LDB TABAD INITIALIZE POWER OF 10 POINTER STB PTR TO POINT TO 10**3 LDA BIN,I BINARY INPUT PARAMETER SSA IS BIN >=0? JMP BIBCD,I NO, ERROR ADA =D-10000 BIN-10000 SHOULD BE < 0 SSA,RSS A REG < 0? JMP BIBCD,I NO, ERROR LDA BIN,I YES, OK, GET BIN INPUT PARAM CLB LOOP ADA PTR,I SUBTRACT POWER OF 10 SSA DOES POWER OF 10 GO IN? JMP *+3 NO INB YES, INCREMENT THE B REGISTER JMP LOOP AND AGAIN STB TEMP LDB PTR,I RESTORE RESULT CMB,INB ADA B LDB =B-1 CPB PTR,I IS POWER OF 10 10**0? JMP *+5 YES,DONE LDB TEMP BLF SHIFT LEFT 4 FOR NEXT POWER OF 10 ISZ PTR BUMP PTR FOR NEXT POWER OF 10 JMP LOOP AGAIN, IGNORE SKIP OF ISZ LDA TEMP BCD VALUE NOW IN A REG STA BCD,I PLACE BCD VALUE IN OUTPUT PARAM JMP BIBCD,I RETURN * * CONSTANT AND STORAGE SECTION * SWR EQU 01B A EQU 0 B EQU 1 TEMP BSS 1 PTR BSS 1 POINTER FOR POWER OF 10 TABLE TABAD DEF TABLE TABLE DEC -1000 10**3 POWER DEC -100 10**2 OF DEC -10 10**1 10 DEC -1 10**0 TABLE END END$ P'   )0 22682-18007 1605 SC 0122 RTEIF              H0101 ux((x((x((FTN4,L PROGRAM RTE C C THIS PROGRAM PASSES OPERATOR REQUESTS TO THE RTE MESSAGE C PROCESSOR AND PRINTS RESPONSES FROM THE SYSTEM TO THE OPERATOR. C THUS ALL RTE OPERATOR REQUESTS ARE AVAILABLE FROM WITHIN THE FILE C MANAGER, BY RUNNING THIS PROGRAM. FURTHERMORE, RTE COMMANDS C CAN BE STORED IN, AND EXECUTED FROM, FMGR "BATCH" FILES. C INPUT TO THIS PROGRAM SHOULD CONSIST OF VALID RTE REQUESTS OR C FILE NAMES. THE FILES MUST BE TYPE 4 AND FILE NAMES MUST BEGIN C WITH THE CHARACTER ">". CONTROL WILL TRANSFER TO THE NAMED C FILE, WHICH CONTAINS VALID OPERATOR REQUESTS, ONE PER RECORD, C OR ANOTHER FILE NAME BEGINNING WITH THE CHARACTER ">", OR THE C COMMAND "<<" TO RETURN CONTROL. FILES CAN TRANSFER TO OTHER C FILES TO A MAXIMUM NESTING OF TEN DEEP. C IF THE "<<" COMMAND IS FOLLOWED BY DIGITS, I.E."<" AND C AUDIBLE BELL, AND IS THE DEFAULT INITIAL STATE OF THE PROGRAM. C "BATCH" OR FILE CONTROL IS INDICATED BY MULTIPLE PROMPTS, ONE C PER NESTED LEVEL OF FILE. ENTERING THE "RETURN CONTROL" C CODE ( << ) WHILE IN KEYBOARD MODE TERMINATES THE PROGRAM. THE C FOLLOWING EXAMPLE OF A "BATCH" FILE WILL "UP" EQT# 4-8 AND PUT C A DEMO PROGRAM IN THE TIME LIST: C UP,4 C UP,5 C UP,6 C UP,8 C IT,DEMO,2,5 C ON,DEMO,NOW C << C THIS PROGRAM IS SCHEDULED IN THE USUAL WAY. THE FIRST C OPTIONAL PARAMETER IS THE KEYBOARD LU#, DEFAULTING TO 1 IF NOT C SUPPLIED BY **MTM**. THE SECOND PARAMETER, IF NOT ZERO, IMPLIES C IMMEDIATE TRANSFER TO A FILE NAMED ">NNNNN", WHERE "NNNNN" IS C THE VALUE OF THE SECOND PARAMETER (1-32767). C C ********************* C ** G. HALLMAN ** C ** H.P.(CANADA)LTD ** C ** MISSISSAUGA,ONT ** C ** JAN.'76 ** C ********************* C DIMENSION IB(40), IP(5), IR(2), IG(51), IDCB(144), NAME(4,10) EQUIVALENCE (IP(1),LU),(IB(1),IG(12),IB1),(REG,IR(1),IAR), 1(IR(2),IBR), (IP(2),IP2), (IB(2),IB2), (IB(3),IB3) DATA IG/10*76B,2H>,2HOP,2HER,2HAT,2HOR,2H I,2HNT,2HER,2HFA,2HCE/ DATA IT,N,K,LB/2H>_,0,1,6/, NAME/40*1/ CALL RMPAR(IP) IF(LU.LT.1.OR.LU.GT.64) LU = 1 LCON = LU + 400B IF(IP2.EQ.0) GO TO 10 IB2 = 20040B IB3 = 20040B CALL KVT2(IP2,IB,LB) K = IB1/256 IF(K.EQ.40B) GO TO 13 N = IB2/256 IB3 = (IB2 - N*256) * 256 + 40B IB2 = N + (IB1 - K*256) * 256 IB1 = K + 37000B GO TO 12 13 IB1 = IB1 + 17000B 12 DO 15 N=10,1,-1 15 NAME(4,N) = 1 9 N = N + 1 DO 4 IAR=1,3 4 NAME(IAR,N) = IB(IAR) 5 CALL OPEN(IDCB,IERR,NAME(1,N),1) IF(IERR.LT.0) GO TO 11 K = NAME(4,N) 19 CALL POSNT(IDCB,IERR,K,1) IF(IERR.LT.0) GO TO 11 C READ NEXT OP REQ FROM FILE: 8 CALL READF(IDCB,IERR,IB,40,LB) IBR = LB + LB IF(IERR.LT.0) GO TO 2 K = K + 1 CALL REIO(2,LCON,IG(11-N),LB+N+1) C CHECK FOR "<<" OR ">" : 14 IF(IB1.EQ.2H<<) GO TO 7 IF(IB1/256.EQ.76B) GO TO 3 6 IAR = MESSS(IB,IBRC,LU) IF(IAR.NE.0) CALL REIO(2,LCON,IG(11-N),IAR-N-N-2) C CHECH FOR ILLEGAL REQUEST: IF(IAR.EQ.-12.AND.(IB1.EQ.2HOP.OR.IB1.EQ.2HIN)) GO TO 2 IF(N) 2, 1, 8 11 CALL KVT2(IERR,IB(4),LB) N = N - 1 10 CALL REIO(2,LCON,IB,LB+3) 2 N = 0 1 CALL REIO(2,LCON,IT,1) IB2 = 20040B IB3 = 20040B C READ NEXT REQUEST FROM KEYBOARD: REG = REIO(1,LCON,IB,-72) GO TO 14 C TRANSFER TO (NEXT LEVEL DEEP) FILE: 3 IF(N.GT.10) STOP 10 IF(N.LT.1) GO TO 12 NAME(4,N) = K GO TO 9 C BACK OUT ONE FILE (N=NO. OF LEVELS, K=RETURN LINE NO.): 7 NAME(4,N) = 1 N = N - 1 IF(IBR.LE.2) GO TO 16 K = KVT1(IB2,IBR/2-1) IF(K) 17, 16, 18 17 K = -K N = N + 1 GO TO 19 18 NAME(4,N) = K IF(N.LT.1) GO TO 99 16 IF(N) 99, 1, 5 99 CALL EXEC(6) END SUBROUTINE KVT2(IC,IB,LB) DIMENSION IB(150), IT(7) IT(1) = 60B IT(6) = 60B JC = IC IF(IC.GE.0) GO TO 1 DO 2 I=2,6 2 IT(I) = 55B JC = -IC 1 DO 3 I=1,6 KC = JC / 10 IT(I) = 60B + JC - 10 * KC IF(KC.LT.1) GO TO 4 3 JC = KC 4 JC = 1 IF(IT(6).EQ.55B) I = I + 1 IT(I+1) = 40B KC = ((I+1)/2)*2 LB = 0 DO 5 I=KC,1,-2 LB = LB + 1 5 IB(LB) = IT(I) * 256 + IT(I-1) RETURN END FUNCTION KVT1(IB,LB) DIMENSION IB(150), IT(6) IS = 1 N = 0 DO 1 I=1,LB J = IB(I) K = J / 256 J = J - K * 256 - 60B K = K - 60B IF(K.EQ.-16) GO TO 2 IF(K.GE.0.AND.K.LE.9) GO TO 3 IS = 0 IF(K.NE.-3) GO TO 4 IS = -1 GO TO 2 3 N = N * 10 + K 2 IF(J.EQ.-16) GO TO 1 IF(J.GE.0.AND.J.LE.9) GO TO 6 IS = 0 IF(J.NE.-3) GO TO 4 IS = -1 GO TO 1 6 N = N * 10 + J 1 CONTINUE 4 KVT1 = N * IS RETUo_RN END END$ N *3 22682-18008 1606 SC 0222 PROM WRITER ASSEMBLER MASK TAPE             H0102 xdHPAL,L,B,C,"LGLDR" BEGIN PROCEDURE VAL11(A); VALUE A; INTEGER A; CODE; PROCEDURE VAL22(A,B); VALUE A,B; INTEGER A,B; CODE; PROCEDURE VAL34(A,B,C,D); VALUE A,B,D; INTEGER A,B,C,D; CODE; INTEGER A,B,C,D,E,F; INTEGER CHECKSUM, TCHECKSUM; INTEGER ARRAY WDCT[1:2]; INTEGER AAPOINTER, BBPOINTER, COUNT, MASK, DATA, TAPE; INTEGER WORD, HIGH, X,Y; INTEGER ARRAY SELECT[1:9]; INTEGER ARRAY AA[@1:@100], BB[1:1024]; INTEGER ARRAY BUFF[1:100]; LABEL PROG, START, CONT, ERROR, WRT; LABEL AGAIN, BOTH, DONE, VERI; & &*********************************************************************** & WRITE(1,#("WELCOME TO THE PROGRAM FOR MAKING PAPER"/ "TAPE TO BURN INTO PROM CHIPS.")); WRITE (1,#(X,"HP STOCK NO. XXXX-XXXX")); READ (1,#(5A2),FOR WORD_1 TO 5 DO SELECT[WORD]); WRITE (1,#(X,"DATE. XX,XX,XX")); READ (1,#(4A2),FOR WORD_6 TO 9 DO SELECT[WORD]); WRITE (1,#("ENTER TAPE, TYPE...:GO")); VAL11(7); & SUSPEND THE PROGRAM START: AAPOINTER _ 1; DATA _ 1; COUNT _ 0; VAL22(3,@705); & EAT UP THE LEADER CONT: CHECKSUM _ 0; VAL34(1,@105, WDCT[1],2); IF WDCT[1]=0 THEN GO TO PROG; WDCT[1] _ ROTATE WDCT[1]; COUNT _ COUNT + WDCT[1]; IF COUNT > @100 THEN WRITE(1,#(X,"INFO....TOTAL RECORD LENGTH" / 2X,"(WORDCOUNT) > THAN 100 OCTAL")); IF COUNT > @120 THEN GO TO DONE; VAL34(1,@105, AA[AAPOINTER],WDCT[1]); CHECKSUM _ CHECKSUM + WDCT[2]; FOR AAPOINTER _ DATA TO COUNT DO CHECKSUM _ CHECKSUM + AA[AAPOINTER]; VAL34(1,@105, TCHECKSUM,1); IF CHECKSUM = TCHECKSUM THEN DATA _ AAPOINTER; IF CHECKSUM = TCHECKSUM THEN GO TO CONT; WRITE (1,#(X"CHECKSUM ERROR!!!! ")); WRITE(1,#(X,"WORDCOUNT SHOULD BE=",K6),WDCT[1]); TAPE _ AAPOINTER -1; WRITE(1,#(X,"LAST WORD OF CHECKSUM=",K6), AA[TAPE]); WRITE(1,#(X,"RELOAD TAPE, TYPE......GO")); VAL11(7); & SUSPEND THE PROGRAM GO TO START; & &*********************************************************************** & PROG: HIGH _ 0; AAPOINTER _ 0; BBPOINTER _ 1; WHILE BBPOINTER < 1025 DO BEGIN AAPOINTER _ AAPOINTER +1; MASK _ @100000; FOR COUNT _ 1 STEP 1 UNTIL 16 DO BEGIN IF (AA[AAPOINTER] AND MASK) #0 THEN BB[BBPOINTER] _ "H" ELSE BB[BBPOINTER] _ "L"; IF BB[BBPOINTER] ="H" THEN HIGH _HIGH+1; IF MASK = @100000 THEN MASK _ @040000 ELSE MASK _ MASK\2; BBPOINTER _ BBPOINTER +1 END END; & &*********************************************************************** & COUNT _ 0; DATA _ 1; MASK _ 16; FOR COUNT _ 1 TO 64 DO BEGIN WRITE (6,#(3X,I2,5X,16(X,R1)),COUNT, FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); DATA _ COUNT*16+1; MASK _ COUNT*16+16; END; WRITE (6,#( X,"END",/,"1")); & &*********************************************************************** & BOTH: WRITE(6,#(X,"1004,22,2,4,01024")); WRITE(6,#(X,5A2),FOR WORD_1 TO 5 DO SELECT[WORD]); WRITE(6,#(X,4A2),FOR WORD_6 TO 9 DO SELECT[WORD]); IF HIGH < 10 THEN WRITE (6,#(X,I1),HIGH) ELSE IF HIGH < 100 THEN WRITE (6,#(X,I2),HIGH) ELSE IF HIGH < 1000 THEN WRITE (6,#(X,I3),HIGH) ELSE WRITE (6,#(X,I4),HIGH) ; COUNT _ 0; DATA _ 1; MASK _ 32; X _0; Y _ 7; WRITE (6,#(X,"00",I1,"-00",I1,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); COUNT _ 1; DATA _ COUNT *32+1; MASK_ COUNT *32+32; X _ X+8; Y _ Y+8; WRITE (6,#(X,"00",I1,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); FOR COUNT _ 2 TO 11 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (6,#(X,"0",I2,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; COUNT _ 12; X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (6,#(X,"0",I2,"-",I3,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); FOR COUNT _ 13 TO 31 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (6,#(X,I3,"-",I3,X,8( X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; WRITE (6,#("1")); & &*********************************************************************** & WRITE (1,#(X,"DO YOU WANT PAPER TAPE?" / X,"IF YES, TURN ON PUNCH AND TYPE Y." / X,"IF NOT, TYPE N.")); READ(1,#(R1),TAPE); IF TAPE = "N" THEN GO TO DONE; & &*********************************************************************** & AGAIN: VAL22(3,@1004); WRITE (4,#( "1004,22,2,4,01024")); WRITE(4,#( 5A2),FOR WORD_1 TO 5 DO SELECT[WORD]); WRITE(4,#( 4A2),FOR WORD_6 TO 9 DO SELECT[WORD]); IF HIGH < 10 THEN WRITE (4,#( I1),HIGH) ELSE IF HIGH < 100 THEN WRITE (4,#( I2),HIGH) ELSE IF HIGH < 1000 THEN WRITE (4,#( I3),HIGH) ELSE WRITE (4,#( I4),HIGH) ; COUNT _ 0; DATA _ 1; MASK _ 32; X _0; Y _ 7; WRITE (4,#( "00",I1,"-00",I1,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); COUNT _ 1; DATA _ COUNT *32+1; MASK_ COUNT *32+32; X _ X+8; Y _ Y+8; WRITE (4,#( "00",I1,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); FOR COUNT _ 2 TO 11 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (4,#( "0",I2,"-0",I2,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; COUNT _ 12; X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (4,#( "0",I2,"-",I3,X,8(X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]](); FOR COUNT _ 13 TO 31 DO BEGIN X _ X+8; Y _ Y+8; DATA _ COUNT*32+1; MASK _ COUNT*32+32; WRITE (4,#( I3,"-",I3,X,8( X,4(R1))),X,Y,FOR BBPOINTER _ DATA TO MASK DO [BB[BBPOINTER]]); END; VAL22(3,@1004); & &*********************************************************************** & WRITE(1,#(X"READY TO VERIFY TAPE ?" / X"TYPE V FOR YES, OR NV FOR NO")); READ (1,#(R1),TAPE); IF TAPE # "V" THEN GO TO WRT; VERI: READ(5,*,A,B,C,D,E); IF A # 1004 THEN IF B # 22 THEN IF C # 2 THEN IF D # 4 THEN IF E # 01024 THEN GO TO ERROR; READ(5,#(5A2), FOR A _ 1 TO 5 DO BUFF[A]); WORD _ 1; FOR A _ 1 TO 5 DO BEGIN IF BUFF[A] # SELECT[WORD] THEN GO TO ERROR; WORD _ WORD +1; END; READ(5,#(4A2), FOR A _ 6 TO 9 DO BUFF[A]); WORD _ 6; FOR A _ 6 TO 9 DO BEGIN IF BUFF[A] # SELECT[WORD] THEN GO TO ERROR; WORD _ WORD +1; END; IF HIGH < 10 THEN READ(5,#(I1), BUFF[1]) ELSE IF HIGH < 100 THEN READ(5,#(I2), BUFF[1]) ELSE IF HIGH < 1000 THEN READ(5,#(I3), BUFF[1]) ELSE READ (5,#(I4), BUFF[1]); IF BUFF[1] # HIGH THEN GO TO ERROR; BBPOINTER _ 1; X _ 000; Y _ 007; FOR COUNT _ 1 TO 32 DO BEGIN VAL34(1,@105, BUFF[1],4); A _ ((ROTATE BUFF[2] AND @17)+ ((BUFF[1] AND @17)*10)+ ((ROTATE BUFF[1] AND @17)*100)); B _ ((ROTATE BUFF[4] AND @17)+ ((BUFF[3] AND @17) * 10)+ (( ROTATE BUFF[3] AND @17) * 100)); IF A # X THEN IF BUFF[2] AND @177 # "-" THEN GO TO ERROR; IF B # Y THEN GO TO ERROR; IF BUFF[4] AND @177 # " " THEN GO TO ERROR; X _ X+8; Y _ Y+8; READ (5,#(40(R1)), FOR DATA _ 1 TO 40 DO BUFF[DATA]); DATA _ 1; FOR A _ 1 TO 8 DO BEGIN IF BUFF[DATA] # " " THE+N GO TO ERROR; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; IF BUFF[DATA] # BB[BBPOINTER] THEN GO TO ERROR; BBPOINTER _ BBPOINTER + 1; DATA _ DATA + 1; END; END; WRITE(1,#("PAPER TAPE IS GOOD.")); GO TO WRT; ERROR: WRITE(1,#(" TAPE DID NOT VERIFY.")); & &*********************************************************************** & WRT: WRITE (1,#(X,"DO YOU WANT MORE TAPE? TYPE Y." / X,"DO YOU WANT MORE TAPE AND LISTING? TYPE B." / X,"VERIFY TAPE? TYPE V." / X,"NONE... TYPE N.")); READ (1,#(R1),TAPE); IF TAPE = "Y" THEN GO TO AGAIN; IF TAPE = "B" THEN GO TO BOTH ; IF TAPE = "V" THEN GO TO VERI; DONE: WRITE(1,#(X,"FINISHED!")); END ~ASMB,R,L NAM VAL,7 ENT VAL11,VAL22,VAL34 EXT EXEC VAL11 NOP CCB ADB VAL11 LDA JSB STA 1,I JMP 1,I JSB JSB EXEC VAL22 EQU VAL11 VAL34 EQU VAL11 END E , 8 22682-18009 1608 SC 0922 PERT PACKAGE FOR DOS-III              H0109 m-FTN,L PROGRAM PERT0 C LOGIC PERT NETWORK REVISION PROGRAM C PERT PACKAGE PROGRAM PERT0 DIMENSION I(3000),J(3000) READ(5,1000) N,I1,I2,I3 READ(5,1001) ITITU DO 6 II=1,N 6 READ(5,1002) I(II),J(II),O,OM,P,C,T 1000 FORMAT(I4,A1,2(8X,A1)) 1001 FORMAT(26R2) 1002 FORMAT(2I4,3F4.1,F7.2,10R2) IF(I1.NE.20040B) GO TO 9 IF(I2.NE.20040B) GO TO 9 IF(I3.NE.20040B) GO TO 9 GO TO 50 9 WRITE(6,1004) 1004 FORMAT(" CHECK YOUR FIRST RECORD") C MAIN LOGIC NETWORK ANALIZER ROUTINE 50 DO 7 K=1,N KON=0 1 DO 4 L=K+1,N IF(I(K).NE.J(L)) GO TO 4 IF(KON.NE.0) GO TO 2 IDENI=I(K) IDENJ=J(K) 2 IK=I(K) JK=J(K) I(K)=I(L) J(K)=J(L) I(L)=IK J(L)=JK IF(IDENI.NE.I(K)) GO TO 3 IF(IDENJ.EQ.J(K)) GO TO 10 3 KON=1 GO TO 1 4 CONTINUE 7 CONTINUE WRITE(6,901) 901 FORMAT(" THE NETWORK HAS NO WRONG LOOPS") GO TO 100 C ERROR REPORT ROUTINE 10 WRITE(6,900) I(K),J(K) 900 FORMAT(" THERE IS A WRONG LOOP ON START NODE"I6,/ * " FINISH NODE"I6) 100 CONTINUE END END$ 0018 DAYS 22DEC.49 PIPELINE CONSTRUCTION PROJECT 00010002010001000100 20000LEAD TIME 2 3 18 20 22 300 MOVE TO SITE 2 4 20 30 100 1000 OBTAIN PIPES 2 7 18 20 70 900 OBTAIN VALVES 3 5 6 7 14 880 LAY OUT PIPELINE 4 6 DUMMY # 1 7 4 7 9 17 500 CUT SPECIALS 5 6 20 25 60 650 DIG TRENCH 6 7 17 18 20 1200 PREPARE VALVE CHAMB. 6 8 18 20 46 2000 LAY PIPES 7 9 8 10 12 500 FIT VALVES 8 9 11 12 13 600 CONCRETE ANCHORS 9 10 DUMMY # 2 9 11 8 8 20 500 BACKFILL 9 12 8 8 8 200 FINISH VAL.CHAMBERS 10 11 5 6 7 500 TEST PIPELINE 11 12 2 3 10 100 CLEAN UP 12 13 3 4 5 50 LEAVE SITE : : G0 0018 DAYS 22DEC.49 PIPELINE CONSTRUCTION PROJECT 00010002010001000100 20000LEAD TIME 2 3 18 20 22 300 MOVE TO SITE 2 4 20 30 100 1000 OBTAIN PIPES 2 7 18 20 70 900 OBTAIN VALVES 3 5 6 7 14 880 LAY OUT PIPELINE 4 6 DUMMY # 1 4 7 7 9 17 500 CUT SPECIALS 5 6 20 25 60 650 DIG TRENCH 6 7 17 18 20 1200 PREPARE VALVE CHAMB. 6 8 18 20 46 2000 LAY PIPES 7 9 8 10 12 500 FIT VALVES 8 9 11 12 13 600 CONCRETE ANCHORS 9 10 DUMMY # 2 9 11 8 8 20 500 BACKFILL 9 12 8 8 8 200 FINISH VAL.CHAMBERS 10 11 5 6 7 500 TEST PIPELINE 11 12 2 3 10 100 CLEAN UP 12 13 3 4 5 50 LEAVE SITE @pFTN,L PROGRAM PERT1 C PERT1 CREATES AN EFMP FILE FOR THE PROYECT. C PERT1 DOES PERT INDETERMINISTIC CALCULUS,PRINT PERT TIME REPORT C AND CALLS PROGRAM PERT2 FOR BAR DIAGRAM PRINTING C AUTHORS : INGS. LUIS J. GUTIERREZ & JOSE ANTONIO GUERRA REAL LS(450),LF(450),LT(450),M(450) DIMENSION O(450),P(450),T(450),ET(450),CTOS(450) INTEGER TITULO(26),FNAME(3),ER,OPNTB(128),TRBUF(256),PROG2(3) *,OPNSZ,NOTRB(2),TRBSZ,PAKNO,SCODE COMMON TMIN,IFECH(4),JUNID(4),TITULO,N,ES(450),LF,EF(450), *FNAME,NAME(26),ER,PAKNO,SCODE,I(490),J(490),OPNTB,TRBUF, 2OPNSZ,NOTRB,TRBSZ,IFPRY(4),ITACT DATA PROG2/2HPE,2HRT,2H2 / READ(5,100) N,JUNID,IFPRY WRITE(1,104) READ(1,103) IFECH 103 FORMAT(4R2) 104 FORMAT(" WRITE RUN DATE ON ONE LINE"/2X,"DAY :XX",/2X,"MONTH :XXX *X",/2X,"YEAR :XX",/2X,"EXAMPLE :22XII 49") 100 FORMAT(I4,2(1X,4R2)) S=0 ITACT=0 WRITE(1,106) READ(1,105) FNAME 105 FORMAT(3A2) 106 FORMAT(" TYPE THE EFMP FILE FOR THE PROJECT") SCODE=101 PAKNO=-1 NPR=26 OPNSZ=128 NOTRB=1 NOTRB(2)=1 TRBSZ=2 CALL EXEC(24,1,OPNTB,OPNSZ,TRBUF,NOTRB,TRBSZ,ER) CALL FALLA(ER,0) LRE=N+1 CALL EXEC(24,2,FNAME,PAKNO,LRE,NPR,SCODE,ER) CALL FALLA(ER,1) CALL EXEC(24,4,FNAME,PAKNO,LRE,SCODE,1,ER) CALL FALLA(ER,2) READ(5,101) TITULO 101 FORMAT(26R2) DO 400 K=1,N READ(5,102) I(K),J(K),O(K),M(K),P(K),CTOS(K),(NAME(L),L=3,12) 102 FORMAT(2I4,3F4.1,F7.2,10R2) NAME(1)=I(K) NAME(2)=J(K) CALL CONVE(O(K),IO,IOD,10) NAME(13)=IO NAME(14)=IOD CALL CONVE(M(K),IM,IMD,10) NAME(15)=IM NAME(16)=IMD CALL CONVE(P(K),IP,IPD,10) NAME(17)=IP NAME(18)=IPD CALL CONVE(CTOS(K),ICOS,ICOSD,100) NAME(19)=ICOS NAME(20)=ICOSD NAME(23)=0 NAME(24)=ICOS NAME(25)=ICOSD NAME(26)=NACTI CALL EXEC(24,8,FNAME,K,NAME,ER) CALL FALLA(ER,3) 400 CONTINUE DO 2 ITO=1,26 2 NAME(ITO)=TITULO(ITO) CALL EXEC(24,8,FNAME,LRE,NAME,ER) CALL FALLA(ER,3) DO 401 K=1,N 600 DO 401 L=K+1,N IF(I(K).NE.J(L))GO TO 401 IK=I(K) JK=J(K) OK=O(K) MK=M(K) PK=P(K) I(K)=I(L) J(K)=J(L) O(K)=O(L) M(K)=M(L) P(K)=P(L) I(L)=IK J(L)=JK O(L)=OK M(L)=MK P(L)=PK GO TO 600 401 CONTINUE DO 402 K=1,N 402 T(K)=(O(K)+4.*M(K)+P(K))/6. DO 633 IW=1,N DO 634 IY=1,N CALL EXEC(24,6,FNAME,IY,NAME,ER) CALL FALLA(ER,9) IF(NAME(1).NE.I(IW)) GO TO 634 IF(NAME(2).EQ.J(IW)) GO TO 635 634 CONTINUE 635 NAME(26)=IW CALL CONVE(T(IW),IT,ITD,100) NAME(21)=IT NAME(22)=ITD CALL EXEC(24,8,FNAME,IY,NAME,ER) 633 CALL FALLA(ER,10) DO 403 K=1,200 403 ET(K)=S TMIN=0. DO 404 K=1,N ES(K)=ET(I(K)) EF(K)=ES(K)+T(K) IF(EF(K).LE.ET(J(K)))GO TO 500 ET(J(K))=EF(K) 500 IF(EF(K).LE.TMIN)GO TO 404 TMIN=EF(K) 404 CONTINUE DO 405 K=1,200 405 LT(K)=TMIN DO 406 K=1,N L=N+1-K LF(L)=LT(J(L)) LS(L)=LF(L)-T(L) IF(LS(L).GE.LT(I(L)))GO TO 406 LT(I(L))=LS(L) 406 CONTINUE WRITE(6,200) IFECH,TITULO,IFPRY WRITE(6,201) N,TMIN,(JUNID(LL),LL=1,4) WRITE(6,202) WRITE(6,205) WRITE(6,208) WRITE(6,206) C CALCULO DESV,VAR,TF,FF DO 407 K=1,N DESV=(P(K)-O(K))/6. VAR=DESV**2 TF=LS(K)-ES(K) FF=TF-LT(J(K))+ET(J(K)) C LEER ARCHIVO DO 408 L=1,N CALL EXEC(24,6,FNAME,L,NAME,ER) CALL FALLA(ER,4) IF (NAME(26).EQ.K) GO TO 501 408 CONTINUE PAUSE 501 WRITE(6,203) NAME(26),(NAME(L),L=3,12),I(K),J(K),O(K), 1M(K),P(K),T(K),VAR,DESV,ES(K),EF(K),LS(K),LF(K),TF,FF 407 CONT INUE CALL EXEC(10,PROG2) 200 FORMAT(1H1,2X,"RUN DATE= "1R2,"/"2R2,"/"1R2,/3X,26R2,30X,"INITIAL * PROJECT DATE : "R2,"/"2R2,"/"R2) 201 FORMAT(1X,"NU. OF ACTIVITIES = "I6,25X,"PERT TIME REPORT"/1X, *"MINIMUM TIME DURATION = "F11.4,4R2) 202 FORMAT(1X,130(1H-)/"* D E S C R I P T I O N NODES"5X,"BEST ", *" MEDIUM WORST EXPECT. VARI. STDR.") 206 FORMAT(" NU. A C T I V I T I E S I , J ", *" TIME TIME TIME "18X,"DESV."/130(1H-)) 205 FORMAT(84X,"EARLY EARLY LATE LATE TOTAL FREE") 208 FORMAT("*",83X,"START FINISH START FINISH FLOAT FLOAT") 203 FORMAT(1X,I3,1X,10R2," (",I3,",",I3,")",3(2X,F5.1), 12(1X,F6.2),3X,F6.2,5X,F5.1,2X,F5.1,4X,F5.1,2X,F5.1,2(3X,F5.1)) END SUBROUTINE CONVE(DATO,IEN,IDE,NDECI) IEN=DATO DEC=DATO-IEN DEC=DEC*NDECI IDE=DEC+0.5 RETURN END END$ , C,d4 FTN,L PROGRAM PERT2 C PERT2 REALIZE THE PERT BAR DIAGRAM C IT COULD BE EITHER THE ORIGINAL OR ACTUALIZED PROYECT DIAGRAM C AUTHORS : INGS. LUIS J. GUTIERREZ & JOSE ANTONIO GUERRA INTEGER TITULO(26),PAKNO,SCODE,FNAME(3),OPNTB(128),TRBUF(256) *,OPNSZ,NOTRB(2),TRBSZ,PROG1(3),ER REAL LF(450) COMMON TMIN,IFECH(4),JUNID(4),TITULO,N,ES(450),LF,EF(450), *FNAME,NAME(26),ER,PAKNO,SCODE,I(490),J(490),OPNTB,TRBUF, *OPNSZ,NOTRB,TRBSZ,IFPRY(4),ITACT DIMENSION IBUF(100),MINT(10) DATA PROG1/2HPJ,2HC0,2H6 / C SELECCIONAR EJES DE TIEMPO IF(TMIN.LE.50)INT=5 IF(TMIN.GT.50)INT=10 IF(TMIN.GT.100)INT=20 IF(TMIN.GT.200)INT=30 IF(TMIN.GT.300)INT=50 IF(TMIN.GT.500)INT=100 DO 427 II=1,10 427 MINT(II)=II*INT WRITE(6,220) IFECH,JUNID,IFPRY WRITE(6,223) IF(ITACT.EQ.0) GO TO 430 WRITE(6,225) ITACT,JUNID GO TO 431 430 WRITE(6,224) 431 WRITE(6,221) TITULO,MINT DO 422 K=1,N DO 420 II=1,100 420 IBUF(II)=1H DO 421 II=10,100,10 421 IBUF(II)=1H1 IF(ES(K).EQ.EF(K)) GO TO 611 LINF=ES(K)*10/INT+0.5 LSUP=LF(K)*10/INT+0.5 LINT=EF(K)*10/INT+0.5 IF(LF(K).EQ.EF(K)) GO TO 610 DO 423 II=LINF+1,LINT 423 IBUF(II)=1HX DO 424 II=LINT+1,LSUP 424 IBUF(II)=1H- GO TO 611 610 DO 425 II=LINF+1,LSUP 425 IBUF(II)=1H* 611 DO 426 L=1,N CALL EXEC(24,6,FNAME,L,NAME,ER) CALL FALLA(ER,6) IF(NAME(26).EQ.K) GO TO 612 426 CONTINUE PAUSE 0001 IF(ITACT.EQ.0) GO TO 429 PROG1(3)=8 429 CALL EXEC(10,PROG1) 612 WRITE(6,222) NAME(26),(NAME(L),L=3,12),IBUF 422 CONTINUE 220 FORMAT(1H1,1X,"RUN DATE : "R2,"/"2R2,"/"R2,/105X,"UNITS : "4R2,/ *"*INITIAL PROJECT DATE : "R2,"/"2R2,"/"R2) 223 FORMAT(53X,"PERT BAR DIAGRAM"41X,"*:CRITICAL ACT") 221 FORMAT(1X,26R2,57X,"-:FLOAT",/1X,130(1H-)/, *6X,"D E S C R I P T I O N 0"7X,I3,9(7X,I3), /   */1X,"NU. A C T I V I T I E S 1"10(9X,"1"),/1X,130(1H-)) 3/1X,130(1H-)) 222 FORMAT(1X,I3,2X,10R2,4X,"1",100A1) 224 FORMAT(110X,"X:NO CRITICAL ACT") 225 FORMAT(1X,"TIME ACTUALIZATION : "I4,4R2,23X, *"ACTUALIZED"43X,"X:NO CRITICAL ACT") END END$  FTN,L SUBROUTINE SJC03(T,I,J,N,TMIN,LF,EF,ES,LS,LT,ET) C SJC03 REALIZES THE PERT TIMES FROM THE AVERAGE TIME REAL LS(450),LF(450),LT(450),ET(450) DIMENSION EF(450),I(490),J(490),ES(450),T(450) DO 403 K=1,200 403 ET(K)=0 C INICIALIZAR T MINIMO TMIN=0. DO 404 K=1,N ES(K)=ET(I(K)) EF(K)=ES(K)+T(K) IF(EF(K).LE.ET(J(K))) GO TO 500 ET(J(K))=EF(K) 500 IF(EF(K).LE.TMIN) GO TO 404 TMIN=EF(K) 404 CONTINUE DO 405 K=1,200 405 LT(K)=TMIN DO 406 K=1,N L=N+1-K LF(L)=LT(J(L)) LS(L)=LF(L)-T(L) IF(LS(L).GE.LT(I(L))) GO TO 406 LT(I(L))=LS(L) 406 CONTINUE RETURN END END$ FTN,L PROGRAM PERT3 C PERT3 GENERATES THE COST AND TIME PERT REPORT C PERT3 GETS THE INFORMATION FROM EFMP FILE CREATED BY PERT1 C AUTHORS : INGS.LUIS J. GUTIERREZ & JOSE ANTONIO GUERRA REAL LS(450),LF(450),LT(450),M INTEGER FNAME(3),ER,OPNTB(128),TRBUF(256),OPNSZ, 1TRBSZ,PAKNO,SCODE DIMENSION T(450),IFECH(4),IFPRY(4),JUNID(4),ES(450), *EF(450),NAME(26),I(490),J(490),ET(450) *,NOTRB(2) READ(5,100) N,JUNID,IFPRY WRITE(1,104) READ(1,103) IFECH 100 FORMAT(I4,2(1X,4R2)) 103 FORMAT(4R2) 104 FORMAT(" TYPE THE RUN DATE (EXAMPLE:08 IV 74)") WRITE(1,106) READ(1,105) FNAME 105 FORMAT(3A2) 106 FORMAT(" TYPE THE EFMP FILE NAME OF THE PROJECT") CTOT=0. SCODE=101 PAKNO=-1 NPR=26 OPNSZ=128 NOTRB=1 NOTRB(2)=1 TRBSZ=2 CALL EXEC(24,1,OPNTB,OPNSZ,TRBUF,NOTRB,TRBSZ,ER) CALL FALLA(ER,0) LRE=N+1 CALL EXEC(24,4,FNAME,PAKNO,LRE,SCODE,1,ER) CALL FALLA(ER,8) DO 500 L=1,N CALL EXEC(24,6,FNAME,L,NAME,ER) CALL FALLA(ER,1) K=NAME(26) I(K)=NAME(1) J(K)=NAME(2) CALL CONVD(NAME(13),NAME(14),O,10.) CALL CONVD(NAME(15),NAME(16),M,10.) CALL CONVD(NAME(17),NAME(18),P,10.) CALL CONVD(NAME(19),NAME(20),COSTO,100.) CTOT=CTOT+COSTO 500 T(K)=(O+4.*M+P)/6. CALL EXEC(24,6,FNAME,L,NAME,ER) CALL FALLA(ER,2) CALL SJC03(T,I,J,N,TMIN,LF,EF,ES,LS,LT,ET) WRITE(6,107) IFECH WRITE(6,108) (NAME(M3),M3=1,26),IFPRY,N WRITE(6,109) TMIN,JUNID,CTOT WRITE(6,112) WRITE(6,113) WRITE(6,114) DO 506 L=1,N TF=LS(L)-ES(L) FF=TF-LT(J(L))+ET(J(L)) DO 503 L2=1,N CALL EXEC(24,6,FNAME,L2,NAME,ER) CALL FALLA(ER,3) IF(NAME(26).EQ.L) GO TO 504 503 CONTINUE PAUSE 504 CALL CONVD(NAME(19),NAME(20),COSTO,100.) IF((LS(L)-ES(L))-0.0001) 507,507,505 507 WRITE(6,115) NAME(26),(NAME(II),II=3,12),NAME(1),NAME(2), 1T(L),COSTO,ES(L),EF(L),LS(L),LF(L),TF,FF GO TO 506 505 WRITE(6,116) NAME(26),(NAME(II),II=3,12),NAME(1),NAME(2), 1T(L),COSTO,ES(L),EF(L),LS(L),LF(L),TF,FF 506 CONTINUE 107 FORMAT(1H1,1X,"RUN DATE : "1R2,"/"2R2,"/"1R2,/51X,"COST AND TIME R *EPORT") 108 FORMAT(1X,26R2,37X,"INITIAL PROJECT DATE : "R2,"/"2R2,"/"R2,/1X, *"NUMBER OF ACTIVITIES = "I4) 109 FORMAT(1X,"MINIMUN TIME = "F7.2,1X,4R2,/1X,"TOTAL COST= $ "F9.2/ *1X,130(1H-)/"*"4X,"D E S C R I P T I O N NODES ", *"STATUS EXPECTED COST ") 112 FORMAT(72X,"EARLY EARLY LATE LATE TOTAL FREE") 113 FORMAT("*",71X,"START FINISH START FINISH FLOAT FLOAT") 114 FORMAT(1X,"NU. A C T I V I T I E S I , J"14X,"DURATION", */130(1H-)) 115 FORMAT(1X,I3,1X,10R2," ("I3,","I3,") CRITICAL"2(3X,F8.2),5X, 1F6.1,2(3X,F6.1),3(2X,F6.1)) 116 FORMAT(1X,I3,1X,10R2," (",I3,",",I3,")",12X,F8.2,3X, 1F8.2,5X,2(F6.1,3X),4(F6.1,2X)) END SUBROUTINE CONVD(IE,ID,RE,DECI) C SUBRUTINA PARA PASAR DOS NUMEROS ENTEROS A UNO REAL RE=IE*DECI RE=RE+ID RE=RE/DECI RETURN END END$ X_ FTN,L PROGRAM PERT4 C PERT4 ACTUALIZED THE PROYECT NETWORK C PRINTS THE TIME REPORT AND CALLS PERT2 OR PERT5 IF THERE ARE COSTS C AUTHORS : INGS.LUIS J. GUTIERREZ & JOSE ANTONIO GUERRA REAL LS(450),LF(450),LT(450) COMMON TMIN,IFECH(4),JUNID(4),TITULO(26),N,ES(450), *LF,EF(450),FNAME,NAME(26),ER,PAKNO,SCODE,I(490),J(490), *OPNTB,TRBUF,OPNSZ,NOTRB(2),TRBSZ,IFPRY(4),ITACT 3,LS,ING,CTOT,LT,ET DIMENSION NPAV(450),T(450),ET(450),COST(450) INTEGER TITULO,FNAME(3),ER,OPNTB(128),TRBUF(256),PROG3(3), 1OPNSZ,NOTRB,TRBSZ,PAKNO,SCODE,PROG4(3) DATA PROG3/2HPE,2HRT,2H2 /,PROG4/2HPE,2HRT,2H5 / CTOT=0. WRITE(1,900) READ(1,901) IFECH WRITE(1,914) READ(1,915) FNAME READ(5,902) N,JUNID,IFPRY,INCTO SCODE=101 PAKNO=-1 NPR=26 OPNSZ=128 NOTRB=1 NOTRB(2)=1 TRBSZ=2 CALL EXEC(24,1,OPNTB,OPNSZ,TRBUF,NOTRB,TRBSZ,ER) CALL FALLA (ER,0) LRE=N+1 CALL EXEC(24,4,FNAME,PAKNO,LRE,SCODE,1,ER) CALL FALLA(ER,5) DO 1 I8=1,N CALL EXEC(24,6,FNAME,I8,NAME,ER) CALL FALLA(ER,4) K=NAME(26) IE=NAME(21) ID=NAME(22) CALL CONVD(IE,ID,RE,100.) T(K)=RE I(K)=NAME(1) J(K)=NAME(2) CALL CONVD(NAME(24),NAME(25),CTOS,100.) COST(K)=CTOS 1 NPAV(K)=NAME(23) CALL EXEC(24,6,FNAME,I8,TITULO,ER) CALL FALLA(ER,4) CALL SJC03(T,I,J,N,TMIN,LF,EF,ES,LS,LT,ET) READ(5,903) ITACT,NACTA DO 2 I9=1,NACTA READ(5,903) NACT,NAV,COSTO IF(N.GT.NACT) GO TO 4 WRITE(6,904) NACT PAUSE 001 4 COST(NACT)=COSTO 2 NPAV(NACT)=NAV DO 3 J8=1,N IF(T(J8).EQ.0) GO TO 3 IF(ES(J8).GE.ITACT) GO TO 12 IF(NPAV(J8).EQ.100) GO TO 15 IF(NPAV(J8).EQ.0) GO TO 3 IF(EF(J8).LT.ITACT) GO TO 16 TTR=ITACT-ES(J8) PES=TTR*100./T(J8) IF(PES.GT.NPAV(J8)) GO TO 11 T(J86)=T(J8)-(((NPAV(J8)-PES)/100.)*T(J8)) GO TO 3 11 T(J8)=T(J8)+(((PES-NPAV(J8))/100.)*T(J8)) GO TO 3 12 IF(NPAV(J8).EQ.0) GO TO 3 T(J8)=T(J8)-(T(J8)*NPAV(J8)/100.) GO TO 3 15 IF(EF(J8).LE.ITACT) GO TO 3 T(J8)=T(J8)-(EF(J8)-ITACT) GO TO 3 16 PES=100.+(100.*(ITACT-EF(J8))/T(J8)) GO TO 11 3 CONTINUE DO 5 J9=1,N CALL EXEC(24,6,FNAME,J9,NAME,ER) CALL FALLA(ER,4) CALL CONVE(T(NAME(26)),IE,ID,100) NAME(21)=IE NAME(22)=ID NAME(23)=NPAV(NAME(26)) CTOT=CTOT+COST(NAME(26)) CALL CONVE(COST(NAME(26)),IE,ID,100) NAME(24)=IE NAME(25)=ID CALL EXEC(24,8,FNAME,J9,NAME,ER) 5 CALL FALLA(ER,3) CALL SJC03(T,I,J,N,TMIN,LF,EF,ES,LS,LT,ET) IF(INCTO.EQ.1) GO TO 17 WRITE(6,905) IFECH,TITULO,IFPRY WRITE(6,906) N,ITACT,JUNID,TMIN,JUNID WRITE(6,907) WRITE(6,910) WRITE(6,911) WRITE(6,912) DO 9 I8=1,N DO 8 L=1,N CALL EXEC(24,6,FNAME,L,NAME,ER) CALL FALLA(ER,4) IF(NAME(26).EQ.I8) GO TO 10 8 CONTINUE PAUSE 002 10 TF=LS(I8)-ES(I8) FF=TF-LT(NAME(2))+ET(NAME(2)) 9 WRITE(6,913) NAME(26),(NAME(L),L=3,12),NAME(1),NAME(2),NAME(23), 1T(I8),ES(I8),EF(I8),LS(I8),LF(I8),TF,FF CALL EXEC(10,PROG3) 17 CALL EXEC(10,PROG4) 900 FORMAT(" WRITE THE RUN DATE (EXAMPLE:22XII 49)") 901 FORMAT(4R2) 902 FORMAT(I4,1X,4R2,1X,4R2,1X,I1) 903 FORMAT(I4,1X,I3,1X,F10.2) 904 FORMAT(" IT COULD NOT FIND THIS ACTIVITY"I6) 905 FORMAT(1H1," RUN DATE: "1R2,"/"2R2,"/"R2,/1X,26R2,39X, *"INITIAL PROJECT DATE : "R2,"/"2R2,"/"R2) 906 FORMAT(1X,"NUMBER OF ACTIVITIES ="I5,23X,"TIME REPORT(ACTUALIZED)" *10X,"TIME OF ACTUALIZATION :"I6,1X,4R2,/1X,"MINIMAL TIME: ", *F7.2,1X,4R2) 907 FORMAT(15X,102("-")/"*"18X,"D E S C R I P T I O N NODES % OF", *" EXPECTED") 910 FORMAT(66X," EARLY EARLY LATE LATE TOTAL F FREE") 911 FORMAT("*",65X," START FINISH START FINISH FLOAT FLOAT") 912 FORMAT(15X,"NU. A C T I V I T I E S I , J ADVANCE TIME ", */15X,102("-")) 913 FORMAT(15X,I3,1X,10R2," (",I3,",",I3,") ",I3,4X,F7.2,2X,F6.1, 13X,F6.1,2X,F6.1,1X,F6.1,2(3X,F6.1)) 914 FORMAT(" TYPE THE EFMP FILE NAME OF THE PROJECT TO BE ACTUALIZED" ) 915 FORMAT(3A2) END SUBROUTINE CONVE(DATO,IEN,IDE,NDECI) IEN=DATO DEC=DATO-IEN DEC=DEC*NDECI IDE=DEC+0.5 RETURN END SUBROUTINE CONVD(IE,ID,RE,DECI) RE=IE*DECI RE=RE+ID RE=RE/DECI RETURN END END$ :: '0018 DAYS 01JAN.50 0 0060 007 0001 100 200. 0002 100 350. 0003 80 800. 4 95 1000. 5 100 880. 7 500. 8 65 650. {FTN,L PROGRAM PERT5 C PERT5 PRINT THE TIME AND COST PERT REPORT (ACTUAL) C PERT5 NEEDS THE PREVIOUS EXECUTION OF PERT4 C PERT5 CALLS PERT2 C AUTHORS : INGS. LUIS J. GUTIERREZ & JOSE ANTONIO GUERRA INTEGER TITULO(26),FNAME(3),ER,OPNTB(128),TRBUF(256), 1OPNSZ,TRBSZ,PAKNO,SCODE,PROG2(3) REAL LS(450),LF(450),LT,M COMMON TMIN,IFECH(4),JUNID(4),TITULO,N,ES(450),LF,EF(450), *FNAME,NAME(26),ER,PAKNO,SCODE,I(490),J(490),OPNTB,TRBUF, *OPNSZ,NOTRB(2),TRBSZ,IFPRY(4),ITACT,LS,ING,CTOT,LT(450),ET(450) DATA PROG2/2HPE,2HRT,2H2 / CALL EXEC(24,1,OPNTB,OPNSZ,TRBUF,NOTRB,TRBSZ,ER) CALL FALLA (ER,0) LRE=N+1 CALL EXEC(24,4,FNAME,PAKNO,LRE,SCODE,1,ER) CALL FALLA (ER,1) WRITE(6,905) IFECH,TITULO,IFPRY WRITE(6,906) N,ITACT,JUNID,TMIN,JUNID WRITE(6,907) CTOT WRITE(6,910) WRITE(6,911) WRITE(6,912) DO 6 L=1,N DO 3 IJ=1,N CALL EXEC(24,6,FNAME,IJ,NAME,ER) CALL FALLA (ER,2) IF (NAME(26).EQ.L) GO TO 4 3 CONTINUE PAUSE 001 4 TF=LS(L)-ES(L) FF=TF-LT(NAME(2))+ET(NAME(2)) CALL CONVD(NAME(13),NAME(14),O,10.) CALL CONVD(NAME(15),NAME(16),M,10.) CALL CONVD(NAME(17),NAME(18),P,10.) TESP=(O+4.*M+P)/6. CALL CONVD(NAME(19),NAME(20),CTOE,100.) CALL CONVD(NAME(24),NAME(25),CTOA,100.) CALL CONVD(NAME(21),NAME(22),TESPA,100.) IF(ABS(ES(L)-LS(L)).LE.0.0001) GO TO 5 WRITE(6,913) NAME(26),(NAME(L2),L2=3,12),NAME(1),NAME(2),NAME(23), 1TESP,TESPA,CTOE,CTOA,ES(L),EF(L),LS(L),LF(L),TF,FF GO TO 6 5 WRITE(6,914) NAME(26),(NAME(L2),L2=3,12),NAME(1),NAME(2),NAME(23), 1TESP,TESPA,CTOE,CTOA,ES(L),EF(L),LS(L),LF(L),TF,FF 6 CONTINUE CALL EXEC(10,PROG2) 905 FORMAT(1H1," RUN DATE: "R2,"/"2R2,"/"R2,/1X,26R2,39X,"INITIAL PROJ *ECT DATE : "R2,"/"2R2,"/"R2) 906 FORMAT(1X,"NU. OF ACTIVITIES ="I6,22X,"COST AND TIME REPORT (ACTUA *LIZED)"11X,"TI  ME OF ACTUALIZATION :"I4,1X,4R2,/1X,"MINIMAL ACTUALI *ZED TIME : "F7.2,1X,4R2) 907 FORMAT(1X,"TOTAL ACTUALIZED COST = $ "F9.2,/132("-"),/"*"3X,"D E S * C R I P T I O N NODES STATUS % OF EXPECTED ACTUAL EXPEC *TED ACTUAL ") 910 FORMAT(88X," EARLY EARLY LATE LATE TOTAL FREE") 911 FORMAT("*",87X," START FINISH START FINISH FLOAT FOLAT") 912 FORMAT(1X,"NU. A C T I V I T I E S ( I , J )"9X,"ADVANCE", *" TIME TIME COST COST ",/132("-")) 913 FORMAT(1X,I3,1X,10R2,"(",I3,",",I3,")",10X,I3,2X,2(F8.2,1X), 12(F9.2,1X),4(F7.1,1X),F6.1,2X,F5.1) 914 FORMAT(1X,I3,1X,10R2,"(",I3,","I3,") CRITICAL "I3,2X,2(F8.2,1X), 12(F9.2,1X),4(F7.1,1X),F6.1,2X,F5.1) END SUBROUTINE CONVD(IE,ID,RE,DECI) RE=IE*DECI RE=RE+ID RE=RE/DECI RETURN END END$ ? 0018 DAYS 01JAN.50 1 0060 007 0001 100 200. 0002 100 350. 0003 80 800. 4 95 1000. 5 100 880. 7 500. 8 65 650. | 5T 22682-18010 1605 SC 0322 SCORE PACK              H0103 ASMB,A,B,L,T,N * *** FOR USE WITH HP EDUCATIONAL BASIC INTERPRETER #24160A. *** (FOR 16K CORE, AS WRITTEN -- SEE NEXT FEW LINES) JES 11/73 * ("N" = "ABOVE MATRIX"; USE "Z" FOR "OVERLAY MATRIX") * IFN HED CALL#1/CALL#2 DRIVERS FOR "SCORE-PACK"; ALL ABOVE MATRIX. XIF * IFZ HED CALL#1/CALL#2 DRIVERS FOR "SCORE-PACK"; OVERLAY MATRIX. XIF * * ** REFERENCES TO ADDRESSES IN THE BASIC INTERPRETER #24160A. * ** ON THE TOP PAGE OF THE BASIC INTERPRETER: * ORG 037036B RCOL EQU * THE "ENTRY/EXIT" POINT OF THE * HEART OF BASIC'S CARD-READER * SUBROUTINE,-- FOR 16K CORE. * * FOR LARGER MEMORIES, CHANGE AS FOLLOWS: * 24K CORE -- MAKE: ORG 057036B. * 32K CORE -- MAKE: ORG 077036B. * * ** ON THE BASE PAGE OF THE BASIC INTERPRETER: * .12 EQU 000335B LOCATION CONTAINING +12 (DECIMAL) M2 EQU 000432B ,, -2 M3 EQU 000433B ,, -3 M9 EQU 000441B ,, -9 M25 EQU 000447B ,, -25 FLT EQU 000246B CONTAINS START ADDRESS OF BASIC'S * SUBROUTINE FOR CONVERTING NUMBERS * TO 2-WORD FLOATING-POINT NUMBERS. * * * ** PREPARE LINKAGES FOR THE CALL#1/CALL#2 SUBROUTINES * ORG 110B SAVE SPACE FOR THESE 2 DRIVERS AT DEF LSTWD BOTTOM END OF BASIC USER SPACE. ORG 121B DEF SBTBL BOUNDS OF THE LINKAGE TABLES FOR DEF ENDTB THESE 2 CALL DRIVER ROUTINES. * IFN FOR OPTION "N": ORG 13142B START TABLE JUST ABOVE MATRIX. XIF * IFZ FOR OPTION "Z", MODIFY BASIC IN- ORG 4107B TERPRETER TO GIVE ERROR MESSAGE LET OCT 32003 IF MAT ROUTINES ARE REQUESTED ASC 2,LET (PER HP DRIVER MAN.,PP6-3,4&21/. ORG 11456B START TABLE OVERLAYING MATRIX. XIF * LINKAGE TABLE: * SBTBL OCT 401 =1 PARAMETER TO BE PASSED;CALL#1. DEF RSCPK ENTRY POINT OF CALL#1 DRIVER. OCT 402 =1 PARAMETER TO BE PASSED;CALL#2. DEF RDIGT ENTRY POINT OF CALL#2 DRIVER. ENDTB EQU * * ** SAVE SPACE FOR ADDRESSES WHICH ARE USED FOR "CALL" DATA IN BASIC. * SORCE NOP SPACE FOR INCOMING 'A' REGISTER. DEST NOP ,, -ADDRESSES OF OUTGOING DATA. * ** DRIVER FOR READING HP9320-2062 CARDS IN "CALL(1,K(1))" FORMAT, * USING PART OF BASIC'S CARD-READER DRIVER. THREE GROUPS OF COLUMNS * ARE TREATED DIFFERENTLY: COL.#1; COLS.#2-#26; COLS.#27-#38. * RSCPK NOP START OF "CALL#1" DRIVER. JSB STRTC GOTO START-A-CARD-THRU SUBROUT. AND MSKOD IN COL.1, READ ONLY 1,3,5,7,&9. JSB INSTR GOTO INTERPRET-&-STORE SUBROUT. LDB M25 FOR THE NEXT 25 COLUMNS: STB NGCNT START COUNTING AT -25, JSB RCL1I,I GOTO DRIVER'S "MID-CARD ENTRY". JMP CETM3 IF MALFUNCTION,GOTO "-3" SUBRT. AND MSKEV IF GOOD, READ ONLY 0,2,4,6,&8. JSB INSTR GOTO INTERPRET-&-STORE SUBROUT. ISZ NGCNT INCREMENT THE '-25' COUNT. JMP *-5 REPEAT FOR 25 'ANSWER' COLUMNS. LDB .12 PREPARE TO READ LAST 12 COLUMNS. CMB,CLE,INB FORM -12 FROM BASE-PAGE +12. STB NGCNT START COUNTING AT -12. JSB RCL1I,I GOTO DRIVER'S "MID-CARD ENTRY". JMP CETM3 IF MALFUNCTION,GOTO "-3" SUBRT. AND MSK10 IF GOOD,READ ALL 10 ROWS IN COL. JSB INSTR GOTO INTERPRET-&-STORE SUBROUT. ISZ NGCNT INCREMENT THE '-12' COUNT. JMP *-5 REPEAT FOR 12 I.D. COLUMNS. JMP RSCPK,I AFTER 38TH COL., RETURN TO BASIC. * ** SUBROUTINES FOR RESPONDING TO A CARD-READER MALFUNCTION BY GIVING * A DISTINCTIVE NO. TO K(1) AND RETURNING TO NEXT BASIC STATEMENT. * CETM2 LDA M2 IF CARD DOElcS NOT START, PUT -2 JMP EXITT INTO 'A' REGISTER, OR CETM3 LDA M3 FOR OTHER MALFUNCTION, PUT IN -3. EXITT LDB SORCE,I REPLACE ADDRESS OF THE FIRST STB DEST BASIC STORE FOR 'CALL' IN 'DEST'. JSB STORE GOTO 'STORE' SUBROUTINE, AND THEN JMP RSCPK,I RETURN TO THE BASIC STATEMENTS. * ** SUBROUTINE FOR STARTING THE CARD-READING PROCESS--SAVE ADDRESS OF * POINTER TO 1ST STORAGE LOCATION BEING HELD BY BASIC FOR 'CALL'; * FILL ALL STORAGE LOCATIONS WITH A DISTINCTIVE NO. TO ELIMINATE THE * POSSIBILITY OF RESIDUAL MARKINGS FROM PRIOR CARD; & START A CARD * THRU, USING BASIC'S CARD-READER DRIVER "ENTRY/EXIT" SUBROUTINE. * STRTC NOP START CARD-READING:CALL#1 OR #2. STA SORCE SAVE INCOMING "A"=ADDR. OF STORE. LDB SORCE,I FIND ADDR. OF 1ST STORE LOCATION. STB DEST AND SAVE IN 'DEST'. LDB M38 PREPARE TO STORE 38 DATA POINTS STB NGCNT BY PLACING -38 IN COUNTER. LDA M9 PLACE "-9" IN THE 'A' REGISTER. JSB STORE GOTO 'STORE' SUBROUTINE WITH -9. ISZ NGCNT INCREMENT THE -38 COUNTER, AND JMP *-3 REPEAT 38 TIMES. LDB SORCE,I THEN RESET 'DEST' WITH ADDRESS OF STB DEST THE 1ST DATA STORAGE LOCATION. JSB RCOLI,I TRY TO START A CARD THRU READER. JMP CETM2 AFTER 4 TRIES,SET K(1)=-2 AND * RETURN TO NEXT BASIC STATEMENT. JMP STRTC,I IF CARD STARTS THRU, RETURN TO * WHICHEVER 'CALL' ROUTINE INVOKED * THIS CARD-START. * ** SUBROUTINE WHICH INTERPRETS THE IMAGE OF THE MARKINGS IN ANY ONE * COLUMN (AS CARRIED IN BY THE 'A' REGISTER AFTER MASKING), * IN TERMS OF A ROW-NUMBER, AND ASKS THAT THIS BE STORED. * INSTR NOP LDB IMAGE ADDR. OF 1ST IMAGE MODEL;SAVE AT STB IMAJE INCREMENTABLE ADDR. 'IMAJE' FOR * SUCCESSIVE COMPARISONS WITH *  OTHER IMAGE MODELS. CLB START COMPARISONS WITH B=0 CPA IMAJE,I COMPARE 'A' WITH A MODEL IMAGE, JMP *+6 STOPPING WHEN A MATCH IS FOUND; INB OTHERWISE MAKING 'B' 1 LARGER, ISZ IMAJE MOVING ON TO THE NEXT IMAGE, CPB .13 UP TO A MAXIMUM OF 12. AFTER JMP *+2 THE 12TH TRY, LET B=13 & GO ON. JMP *-6 IF B IS LESS THAN 13, TRY AGAIN. LDA 1 WHEN MATCH IS FOUND, 'B'=ROW NO. JSB STORE PUT THIS NO. INTO 'A',& STORE IT. JMP INSTR,I RETURN TO THE INITIATING 'CALL' * DRIVER FOR THE NEXT COLUMN, * APPROPRIATELY MASKED. * ** SUBROUTINE FOR CONVERTING 'ROW NUMBER' OF COLUMN MARKING (NOW IN * THE 'A' REGISTER) INTO A TWO-WORD FLOATING-POINT NUMBER, WHICH IS * RETURNED IN THE 'A' & 'B' REGISTERS. THESE 2 WORDS ARE STORED IN * TWO SUCCESSIVE STORAGE LOCATIONS, AS POINTED BY 'DEST'. THEN, * 'DEST' IS INCREMENTED AGAIN, POINTING TO SPACE FOR THE NEXT NO. * STORE NOP SUBROUTINE STARTS WITH NO.IN 'A'. JSB FLT,I CONVERT TO BASIC FLOATING-POINT. STA DEST,I STORE 1ST FLOATING-POINT WORD. ISZ DEST POINT 'DEST' TO NEXT STORE PLACE. STB DEST,I STORE 2ND FLOATING-POINT WORD. ISZ DEST PREPARE 'DEST' FOR NEXT STORAGE #. JMP STORE,I RETURN FOR READING NEXT COLUMN. * ** DEFINE CONSTANTS, MASKS, IMAGES, & CARD-READER REFERENCES. * M38 DEC -38 COUNT FOR ALL COLUMNS OF A CARD. NGCNT BSS 1 SPACE FOR COLUMN COUNTER. RCOLI DEF RCOL ADDRESS:CARD-READER "ENTRY/EXIT". RCL1I DEF RCOL+12B ADDR:CARD-READER "MID-CARD ENTRY" MSKOD OCT 005250 ACCEPTS MARKS IN ROWS 1,3,5,7,&9. MSKEV OCT 002524 ACCEPTS MARKS IN ROWS 0,2,4,6,&8. MSK10 OCT 007774 ACCEPTS MARKS IN ROWS 0 THRU 9. IMAGE DEF IMAG ADDRESS OF START OF IMAGE TABLE. IMAJE BSS 1 INCREMENTABLE ADDRESS FOR IMAGES. IMAG OCT 4 MODEL, '0' ROW (3RD DOWN); 'B'=0. OCT 10 '1' 4TH 'B'=1. OCT 20 '2' 5TH 'B'=2. OCT 40 '3' 6TH 'B'=3. OCT 100 '4' 7TH 'B'=4. OCT 200 '5' 8TH 'B'=5. OCT 400 '6' 9TH 'B'=6. OCT 1000 '7' 10TH 'B'=7. OCT 2000 '8' 11TH 'B'=8. OCT 4000 '9' BOTTOM ROW 'B'=9. OCT 0 MODEL FOR BLANK COLUMN; 'B'=10. OCT 2 2ND ROW FROM TOP=COMMA; 'B'=11. OCT 4004 MODEL FOR DEC.PT.='0+9'; 'B'=12. * IF NO MODEL MATCHES 'A'; 'B'=13. .13 OCT 000015 COUNT: TRIALS FOR MODEL-MATCHING. MSK11 OCT 007776 MASK FOR ROWS 0 TO 9 + 'COMMA'. MSK1 OCT 000001 MASK FOR 'CONTINUATION' ROW. * ** DRIVER FOR READING HP9320-2051 CARDS IN THE "CALL(2,K(1))" FORMAT, * RECOGNIZING MARKS IN ANY OF THE BOTTOM 11 ROWS OF COLUMNS #1-#36, * AND THE TOP ROW OF COLUMN #37 (='CONTINUATION BOX'). SKIP READING * FROM THE 1ST TIMING MARK SO THAT THE SUBSCRIPT OF K( ) AGREES WITH * THE COLUMN NUMBER AS PRINTED ON THE HP9320-2051 CARDS. ** USES THE HEART OF BASIC'S CARD-READER DRIVER. * RDIGT NOP START OF THE "CALL#2" DRIVER. JSB STRTC GOTO START-A-CARD-THRU SUBRTN. LDB M38 PREPARE TO COUNT 37 TIMING MARKS: INB START WITH -38 & INCREASE BY 1; STB NGCNT THEN STORE -37 IN THE COUNTER. JMP *+3 SKIP COL.LEFT OF 1ST TIMING MARK. AND MSK11 RECOGNIZE MARKS IN BOTTOM 11 ROWS. JSB INSTR GOTO INTERPRET-&-STORE SUBRTN. JSB RCL1I,I GOTO DRIVER'S "MID-CARD ENTRY". JMP CETM3 IF MALFUNCTION,GOTO "-3" SUBRTN. ISZ NGCNT INCREMENT THE COLUMN COUNTER, & JMP *-5 REPEAT THRU COL.#36(+1ST BLANK). AND MSK1 IN COL.#37, LOOK ONLY IN ROW#1. CPA MSK1 IF MARKED, 'A' RESEMBLES"$" MSK1, JMP *+2 SO SKIP AND ADD TO -38; = -37. CLA IF NOT MARKED, MAKE 'A'=0-38, & ADA M38 FOR BLANK "CONTIN.BOX" 'A'=-38. JSB STORE STORE -37 OR -38 IN BASIC K(37). JMP RDIGT,I AFTER 'COL.#37', RETURN TO BASIC. LSTWD EQU * SEND LAST-ADDRESS+1 OF THESE CALL * DRIVERS BACK TO LOCATION 000110 * SO THAT THE BASIC USER SPACE * STARTS AT THE NEXT ADDRESS ABOVE. * END .$HUQbf9B-i'~*,..>*.nh]D~*,./>*.w.haanf~g".hvfnf~gn)~*a!">*. nf~g+.~.n0~1 } v/ `x/L?v/ X1 REM * * * PROGRAM "SCORE-PACK", IN H.P.EDUCATIONAL BASIC * * * 10 REM ** TAPE I BASE PROGRAM--SCORING PER STUDENT; 1 CARD 11/73 JES 101 DIM K[38] 102 DIM A[25],B[25] 111 DIM C[1],F[1],I[6],M[1],T[1] 112 PRINT 113 PRINT 114 LET C9=25 130 GOTO 141 140 PRINT " * * * PLEASE CORRECT THE CARD PROBLEM AND" 141 PRINT "PLACE MASTER CARD IN THE HOPPER, AND PUSH 'READY'." 142 PRINT "WHAT IS THE TOTAL NUMBER OF QUESTIONS ON THIS TEST "; 143 INPUT Q9 144 LET N9=1 152 LET Q8=Q9 153 PRINT 156 LET Z=0 157 LET Z5=100 158 LET K6=1 159 GOSUB 1001 160 IF K[1] <= 0 THEN 140 170 LET T6=T1=T[1] 171 LET M6=M1=M[1] 172 LET F6=F1=F[1] 174 GOSUB 1301 175 PRINT 177 GOSUB 1401 178 PRINT ":" 179 PRINT 185 PRINT 186 PRINT "CARD NO. OF MASTER CARD AS RECEIVED:"; 188 PRINT C[K6] 190 PRINT 200 PRINT TAB(6); 201 PRINT " * * * * T E A C H E R ' S A N S W E R S * * * *" 203 PRINT 205 GOSUB 1501 210 PRINT " "; 230 FOR Q=1 TO Q9 232 LET A2=B[Q]=A[Q] 235 GOSUB 1600 250 NEXT Q 293 PRINT 295 PRINT 297 PRINT 298 PRINT 300 LET R9=N5=U=0 301 LET N7=R7=0 302 LET Z1=0 303 LET H=0 304 LET L=100 350 GOTO 354 352 PRINT "CORRECT AND" 354 PRINT "STACK THE STUDENT CARDS IN THE HOPPER, AND PUSH 'READY'." 357 PRINT "ABOUT HOW MANY STUDENTS ARE REPRESENTED IN THIS RUN "; 359 INPUT S9 360 GOSUB 1701 409 PRINT 412 LET Z5=10000 413 FOR S=1 TO S9+250 415 LET R5=W5=A1=I8=0 416 LET Z=0 420 GOSUB 1001 421 IF K[1]>0 THEN 433 425 PRINT " # OK SO FAR=";N5;" ** 0 OR 99 "; 426 INPUT S3 427 LET S=S-1+S3 428 IF S3#99 THEN 800 431 GOTO 802 433 IF T[K6]=999 AND M[K6]=99 THEN 802 435 IF I[6]#-999 THEN 446 437 GOSUB 1901 438 GOSUB 1951 439 LET Z1=Z1+1 441 GOTO 800 446 IF N5#0 THEN 451 447 IF Z1>0 THEN 451 450 GOSUB 1971 451 LET Z0=0 490 LET N5=N5+1 491 LET N7=N7+1 500 FOR Q=1 TO Q9 510 IF A[Q]=B[Q] THEN 550 520 LET W5=W5+1 548 GOTO 580 550 LET R5=R5+1 551 LET R7=R7+1 552 LET R9=R9+1 554 LET A[Q]=8 580 NEXT Q 590 LET G=INT(100*R5/Q9+.5) 592 IF H >= G THEN 596 594 LET H=G 596 IF L <= G THEN 599 598 LET L=G 599 LET Z0=0 630 GOSUB 1801 800 NEXT S 802 IF N7=N5 THEN 805 803 GOSUB 1901 805 PRINT 806 PRINT 807 PRINT 808 PRINT TAB(10); 809 PRINT N5;"SETS OF STUDENT ANSWER CARDS HAVE BEEN RECORDED." 810 IF N5=0 THEN 995 811 PRINT "THE OVERALL AVERAGE NO. OF CORRECT ANSWERS ON THESE ="; 812 PRINT INT(10*R9/N5+.5)/10 813 PRINT 814 PRINT "THE AVERAGE SCORE FOR";N5;"STUDENTS ON";Q9; 815 PRINT "QUESTIONS =";INT(1000*R9/N5/Q9+.5)/10;"%." 817 PRINT "THE HIGHEST SCORE WAS";H;"%." 819 PRINT "THE LOWEST SCORE WAS ";L;"%." 820 PRINT 834 PRINT 990 PRINT TAB(20);"* * * * E N D * * * *" 991 STOP 995 PRINT "FAULTY RUN. PLEASE CHECK THE CARDS AND TRY AGAIN." 996 STOP 1001 LET J1=1 1010 CALL (1,K[1]) 1015 IF K[1]>0 THEN 1030 1017 PRINT "CARD READER PROBLEM ";K[1]; 1020 GOTO 1199 1030 LET C[K6]=(K[1]+1)/2 1100 FOR X=2 TO (C9+1) 1102 LET Z=Z+1 1104 IF Z>Q9 THEN 1120 1106 LET A[Z]=INT(K[X]/2) 1108 NEXT X 1120 LET A=27 1122 LET B=29 1125 GOSUB 1201 1128 LET T[K6]=L6 1140 LET A=30 1142 LET B=31 1145 GOSUB 1201 1148 LET M[K6]=L6 1160 LET A=32 1162 LET B=35 1165 GOSUB 1201 1168 LET I[K6]=L6 1169 LET I[6]=J1*I[1] 1180 LET A=36 1182 LET B=38 1185 GOSUB 1201 1188 LET F[K6]=L6 1199 RETURN 1201 LET L6=0 1210 FOR X=A TO B 1220 IF K[X]=10 THEN 1280 1230 IF K[X]>10 THEN 1270 1240 LET L6=10*L6+K[X] 1250 IF L6<1000 THEN 1280 1260 LET L6=INT((L6-K[X])/10) 1270 LET J1=-1 1280 NEXT X 1299 RETURN 1301 PRINT " DATE OF TEST -- MONTH, DAY "; 1305 INPUT M,D 1310 PRINT " LAST TWO DIGITS OF CURRENT YEAR "; 1315 INPUT Y3 1320 PRINT 1323 PRINT 1325 PRINT 1340 FOR X=1 TO 35 1343 PRINT "* "; 1345 NEXT X 1350 PRINT 1352 PRINT 1360 PRINT "RESULTS OF TEST ON DATE:"; > 1365 PRINT M;"/";D;"/";Y3 1399 RETURN 1401 PRINT "MASTER CARD OF "; 1405 PRINT "TEACHER NO.";T1; 1410 IF F1=0 THEN 1420 1415 PRINT ", SECTION NO.";F1; 1420 IF M1=0 THEN 1449 1425 PRINT ", GRADE";M1; 1449 RETURN 1501 PRINT "QUEST."; 1503 PRINT " 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2" 1508 PRINT "NO.-> "; 1512 PRINT "1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5" 1527 PRINT 1529 RETURN 1600 IF A2=8 THEN 1680 1601 IF A2=0 THEN 1612 1602 IF A2=1 THEN 1615 1603 IF A2=2 THEN 1620 1604 IF A2=3 THEN 1630 1605 IF A2=4 THEN 1640 1606 IF A2=5 THEN 1650 1608 IF A2=6 THEN 1660 1610 PRINT "?"; 1611 GOTO 1685 1612 PRINT "A"; 1613 GOTO 1685 1615 PRINT "B"; 1616 GOTO 1685 1620 PRINT "C"; 1621 GOTO 1685 1630 PRINT "D"; 1631 GOTO 1685 1640 PRINT "E"; 1641 GOTO 1685 1650 PRINT "Z"; 1651 GOTO 1685 1660 PRINT "M"; 1661 GOTO 1685 1680 PRINT "*"; 1685 IF Q8>25 THEN 1695 1687 PRINT " "; 1690 IF Q/5=INT(Q/5) THEN 1697 1695 IF Q/10#INT(Q/10) THEN 1699 1697 IF Q=25 OR Q=50 THEN 1699 1698 PRINT " "; 1699 RETURN 1701 PRINT 1710 PRINT 1712 PRINT 1720 PRINT "STUDENT"; 1725 PRINT TAB(10); 1730 PRINT "* * * S T U D E N T' A N S W E R S * * *"; 1735 PRINT TAB(57);"TOTALS FROM ALL" 1740 PRINT "NUMBER "; 1745 PRINT "( * "; 1750 PRINT "= CORRECT; Z = BLANK; M = MULTIPLE MARKS)"; 1755 PRINT TAB(57);Q9; 1760 PRINT "QUESTIONS" 1765 PRINT " V";TAB(61);"# OK % OK" 1799 RETURN 1801 PRINT I[6]; 1810 FOR Q=1 TO Q8 1815 LET A2=A[Q] 1820 GOSUB 1600 1825 NEXT Q 1830 PRINT TAB(61);R5;G 1840 IF N7/5#INT(N7/5) THEN 1849 1845 PRINT 1849 RETURN 1901 IF N7=0 THEN 1949 1910 PRINT TAB(19);"FOR THE LAST";N7;"STUDENTS, THE AVERAGE SCORE="; 1920 PRINT INT(100*R7/(Q9*N7)+.5) 1930 PRINT 1949 RETURN 1951 LET R7=N7=0 1955 PRINT 1960 LET T1=T[K6] 1962 LET F1=F[K6] 1964 LET M1=M[K6] 1971 PRINT " FOR "; 1973 GOSUB 14 05 1975 PRINT ":" 1980 PRINT 1999 RETURN 9999 END 11 REM ** TAPE I+ ADDENDUM TO TAPE I FOR STANDARD DEVIATION 2/74 JES 305 LET R8=R4=0 610 LET R4=R4+R5^2 612 LET R8=R8+R5^2 820 PRINT "THE STANDARD DEVIATION WAS"; 821 PRINT INT((1000/Q9)*SQR((R4/N5)-(R9/N5)^2)+.5)/10 822 PRINT 835 PRINT 1925 PRINT TAB(40);"THE STANDARD DEVIATION="; 1926 PRINT INT((100/Q9)*SQR((R8/N7)-(R7/N7)^2)+.5) 1952 LET R8=0 21 REM ** TAPE II' ADDS MORE CARDS, + SOME CARD CHECKING 11/73 JES 102 DIM A[125],B[125] 103 DIM J[31] 111 DIM C[5],D[5],F[5],I[6],M[5],T[5] 141 PRINT "STACK UP TO 5 MASTER CARDS IN THE HOPPER, AND PUSH 'READY'." 144 LET N9=1+INT(Q9/C9-1.00000E-02) 150 LET Q8=50 151 IF Q9>50 THEN 153 152 LET Q8=Q9 153 PRINT 158 FOR K6=1 TO N9 162 LET D[K6]=C[K6] 168 NEXT K6 185 PRINT 186 PRINT "CARD NO. OF MASTER CARDS AS RECEIVED: "; 187 FOR K6=1 TO N9 188 PRINT C[K6]; 189 NEXT K6 190 PRINT 191 PRINT 192 PRINT "TO BE ACCEPTED, STUDENT CARD"; 193 IF N9>1 THEN 196 194 PRINT " MUST HAVE THE SAME CARD NUMBER." 195 GOTO 197 196 PRINT "S MUST BE PRESENTED IN THE SAME ORDER." 197 PRINT 198 PRINT 199 PRINT 233 IF Q>50 THEN 250 253 IF Q9 <= 50 THEN 257 255 PRINT TAB(60);"+";(Q9-50);"MORE" 257 PRINT 290 PRINT 310 FOR U=1 TO 31 312 LET J[U]=0 314 NEXT U 315 LET U=0 411 LET I1=-1111 418 FOR K6=1 TO N9 448 IF K6>1 THEN 451 456 IF I8=1 THEN 460 458 LET I7=I[1] 460 IF C[K6]#D[K6] THEN 740 461 IF I[1]=I1 THEN 416 462 IF I[K6]#I[1] THEN 760 463  GOTO 478 478 NEXT K6 640 GOTO 800 740 IF I1=I7 THEN 416 745 LET I1=I7 750 LET A1=A1+1 760 LET A1=A1+1 770 LET A1=A1+1 780 LET A1=A1+1 782 LET U=U+1 784 LET J[U]=1000*A1+I7 794 IF U <= 30 THEN 799 795 PRINT "OVER 30 "; 796 GOSUB 2501 797 GOTO 802 799 IF I8=1 THEN 462 822 PRINT 823 IF U#0 THEN 827 824 PRINT " NO "; 825 GOSUB 2501 826 GOTO 832 827 PRINT U; 828 GOSUB 2501 829 PRINT "THOSE STUDENTS ARE IDENTIFIED BY NUMBER AS FOLLOWS:" 830 PRINT 831 GOSUB 2601 832 PRINT 1035 IF Z5=100 THEN 1100 1040 IF C[K6]=D[K6] THEN 1100 1042 IF C[K6]#D[1] THEN 1100 1044 LET Z=0 1046 LET K6=I8=1 1048 LET I7=I[1] 1502 IF Q8>25 THEN 1506 1504 GOTO 1508 1506 PRINT " 1 1111111112 2222222223 3333333334 4444444445" 1510 IF Q8>25 THEN 1520 1515 GOTO 1527 1520 FOR Z=1 TO 5 1522 PRINT "1234567890 "; 1524 NEXT Z 1525 PRINT 2501 PRINT "SETS OF STUDENT CARDS RECORD ERRONEOUS "; 2505 PRINT "IDENTIFICATION NUMBERS." 2509 RETURN 2601 PRINT 2604 PRINT 2605 FOR V=1 TO 4 2610 LET V7=0 2615 FOR U8=1 TO U 2620 IF INT(J[U8]/1000)#V THEN 2635 2625 PRINT J[U8]-1000*V; 2630 LET V7=V7+1 2635 NEXT U8 2638 IF V7=0 THEN 2698 2639 PRINT 2640 IF V#4 THEN 2650 2643 PRINT " *** HAD CARD NUMBERS "; 2644 GOSUB 2701 2646 PRINT 2650 IF V#3 THEN 2670 2663 PRINT " *** HAD STUDENT IDENTIFICATION NUMBERS "; 2664 PRINT "DIFFERING WITHIN THE CARD SET." 2666 PRINT 2670 LET Z0=0 2698 NEXT V 2699 RETURN 2701 PRINT "DIFFERENT FROM MASTER CARDS." 2709 RETURN 22 REM ** TAPE II" WITH TAPE II', ADDS MORE CARD CHECKING 11/73 JES 132 PRINT "THE CARDS DO NOT HAVE THE SAME TEACHER NO." 133 GOTO 137 134 PRINT "THE CARDS DO NOT HAVE THE SAME GRADE NO." 135 GOTO 137 136 PRINT "THE CARDS DO NOT HAVE THE SAME SECTION NO." 137 PRINT 164 IF T[K6]#T[1] THEN 132 165 IF M[K6]#M[1] THEN 134 166 IF F[K6]#F[1] THEN 136 464 IF T1=0 THEN 468 466 IF T[K6]#T1 THEN 770 468 IF M1=0 THEN 472 470 IF M[K6]#M1 THEN 780 472 IF F1=0 THEN 478 474 IF F[K6]#F1 THEN 780 2671 IF V#2 THEN 2690 2673 PRINT " *** HAD TEACHER IDENTIFICATION NUMBERS "; 2674 GOSUB 2701 2676 PRINT 2690 IF V#1 THEN 2698 2695 PRINT " *** HAD GRADE OR SECTION NUMBERS "; 2696 GOSUB 2701 2697 PRINT 31 REM ** TAPE III-A' ADDS: REARRANGEMENT 11/73 JES 104 DIM G[255] 358 PRINT "(255 MAXIMUM) "; 493 IF N5=255 THEN 802 605 LET G[N5]=1000*R5+I[1] 833 LET N7=N5 852 PRINT 853 PRINT 854 GOSUB 3001 858 GOSUB 3901 859 PRINT 3001 FOR X=1 TO N7-1 3005 FOR Y=X+1 TO N7 3010 IF G[X] >= G[Y] THEN 3020 3014 LET T3=G[X] 3016 LET G[X]=G[Y] 3018 LET G[Y]=T3 3020 NEXT Y 3025 NEXT X 3029 RETURN 3901 GOSUB 1350 3907 PRINT " ";N5;"STUDENTS" 3910 PRINT 3915 PRINT TAB(12);"NO. OF RIGHT PERCENT" 3917 PRINT "STUDENT NO. ANSWERS CORRECT" 3920 FOR X=1 TO N7 3925 PRINT " ";G[X]-1000*INT(G[X]/1000), 3930 PRINT INT(G[X]/1000), 3935 PRINT INT(INT(G[X]/1000)*100/Q9+.5) 3940 IF X/5#INT(X/5) THEN 3947 3945 PRINT 3947 NEXT X 3949 RETURN 32 REM ** TAPE III-A" ADDS TO III-A': DECILES, QUARTILES 11/73 JES 855 IF N5<10 THEN 857 856 GOSUB 3701 857 PRINT 3701 GOSUB 1350 3702 PRINT " ";N5;"STUDENTS" 3703 PRINT 3704 PRINT "IN PERCENT:" 3705 PRINT 3706 LET X=1 3707 GOSUB 3797 3708 PRINT "HIGHEST SCORE." 3710 LET X=N7/10+.5 3711 GOSUB 3797 3712 PRINT "TOP DECILE BOUNDARY." 3715 LET X=N7/4 3716 GOSUB 3797 3717 PRINT "TOP QUARTILE BOUNDARY." 3719 PRINT 3720 LET M3=INT(INT(G[N7/2]/1000)*100/Q9+.5) 3730 PRINT M3;"WAS THE MEDIAN SCORE." 3731 PRINT 3740 LET X=3*N7/4 3741 GOSUB 3797 3742 PRINT "BOTTOM QUARTILE BOUNDARY." 3745 LET X=N7*9/10 3746 GOSUB 3797 3747 PRINT "BOTTOM DECILE BOUNDARY." 3748 LET X=N7 3749 GOSUB 3797 3750 PRINT "LOWEST SCORE." 3751 PRINT 3752 RETURN 3797 PRINT INT(INT(G[X]/1000)*100/Q9+.5);"WAS THE "; 3799 RETURN 33 REM ** TAPE III-B ADDS: STANDARD DEVIATION, SIGMAS 11/73 JES 104 DIM G[255] 358 PRINT "(255 MAXIMUM) "; 493 IF N5=255 THEN 802 605 LET G[N5]=1000*R5+I[1] 833 LET N7=N5 836 GOSUB 3051 838 GOSUB 3801 839 PRINT 3051 LET T9=0 3053 FOR X=1 TO N7 3055 LET T9=T9+INT(G[X]/1000) 3058 NEXT X 3060 LET M9=T9/N7 3065 LET M8=INT(10*M9*(100/Q9)+.5)/10 3070 LET T4=0 3073 FOR X=1 TO N7 3075 LET T4=T4+(INT(G[X]/1000)-M9)^2 3077 NEXT X 3080 LET D8=INT(10*(100/Q9)*SQR(T4/N7)+.5)/10 3099 RETURN 3801 GOSUB 1350 3803 PRINT " ";N5;"STUDENTS" 3805 PRINT 3810 PRINT "IN PERCENT:" 3815 PRINT 3820 PRINT D8;"WAS THE STANDARD DEVIATION." 3825 PRINT 3830 PRINT INT(10*(M8+2*D8)+.5)/10;"WAS THE UPPER 2-SIGMA BOUNDARY." 3835 PRINT INT(10*(M8+D8)+.5)/10;"WAS THE UPPER 1-SIGMA BOUNDARY." 3840 PRINT 3845 PRINT M8;"WAS THE MEAN SCORE." 3850 PRINT 3855 PRINT INT(10*(M8-D8)+.5)/10;"WAS THE LOWER 1-SIGMA BOUNDARY." 3860 PRINT INT(10*(M8-2*D8)+.5)/10;"WAS THE LOWER 2-SIGMA BOUNDARY." 3865 PRINT 3870 PRINT 3899 RETURN 41 REM ** TAPE IV (H) ADDS ERROR ANALYSIS, ALL QUESTIONS 11/73 JES 106 DIM W[125,4] 270 FOR Q=1 TO Q9 272 FOR K=1 TO 4 274 LET W[Q,K]=0 276 NEXT K 278 LET P7=INT(1+B[Q]/2) 280 IF P7=1+B[Q]/2 THEN 286 282 LET W[Q,P7]=888000. 284 GOTO 288 286 LET W[Q,P7]=888 288 NEXT Q 530 LET P7=INT(1+A[Q]/2) 532 IF P7=1+A[Q]/2 THEN 545 534 LET W[Q,P7]=W[Q,P7]+1000 540 GOTO 580 545 LET W[Q,P7]=W[Q,P7]+1 840 GOSUB 4001 4001 PRINT 4003 PRINT 4005 PRINT TAB(8);"* * * A N A L Y S I S O F E R R O R S * * *" 4006 PRINT 4008 PRINT TAB(15);N5;"STUDENTS "; 4009 GOSUB 1365 4010 PRINT 4012 LET T1=T6 4013 LET F1=F6 4014 LET M1=M6 404Q16 PRINT " ("; 4018 GOSUB 1401 4019 PRINT ")" 4020 PRINT 4021 PRINT 4022 PRINT "QUESTION"; 4023 PRINT TAB(15);"NO. OF ANSWERS MARKED INCORRECTLY AS:"; 4024 PRINT TAB(60);"TOTAL PRCNT" 4026 PRINT "NUMBER"; 4028 PRINT TAB(11);" -A- -B- -C- -D- -E-"; 4030 PRINT " BLANK MLTPL"; 4032 PRINT TAB(60);"WRONG WRONG" 4034 FOR Q=1 TO Q9 4036 LET W2=0 4038 PRINT Q;TAB(13); 4040 FOR K=1 TO 7 4042 LET P7=INT(.5+K/2) 4044 IF P7=.5+K/2 THEN 4050 4046 LET T3=INT(W[Q,P7]/1000) 4048 GOTO 4052 4050 LET T3=W[Q,P7]-INT(W[Q,P7]/1000)*1000 4052 IF T3#888 THEN 4060 4054 PRINT " ** "; 4056 GOTO 4070 4060 PRINT T3; 4062 LET W2=W2+T3 4070 NEXT K 4075 PRINT TAB(60);W2;INT(100*W2/N5+.5) 4080 IF Q/5#INT(Q/5) THEN 4085 4082 PRINT 4085 NEXT Q 4088 PRINT 4090 PRINT 4099 RETURN 50 REM ** TAPE V ADDS SCORING PER 'PROCESS' SKILLS 11/73 JES 104 DIM G[255] 108 DIM U[125] 109 DIM V[255,3] 121 GOSUB 5201 122 GOSUB 5301 123 GOSUB 5501 483 FOR X=1 TO 9 485 LET Y[X]=0 487 NEXT X 493 IF N5=255 THEN 802 570 IF U[Q]<1 OR U[Q]>9 THEN 580 572 LET Y[U[Q]]=Y[U[Q]]+1 573 IF Y[U[Q]]<99 THEN 580 574 PRINT "THE NUMBER OF ANSWERS ON PROCESS";U[Q]; 575 PRINT "EXCEEDED 98 BY STUDENT";I[1] 576 PRINT "AT QUESTION NO.";Q;"AND N5=";N5 583 FOR X=1 TO 3 585 LET V[N5,X]=10000*Y[3*X-2]+100*Y[3*X-1]+Y[3*X] 587 NEXT X 605 LET G[N5]=1000*R5+I[1] 841 LET Q6=Q9 842 PRINT 843 GOSUB 5401 844 GOSUB 5901 5201 LET P0=P=P1=0 5211 FOR X=1 TO 9 5212 LET P[X]=0 5213 NEXT X 5215 PRINT "PLACE PROCESS-IDENTIFYING CARDS IN THE HOPPER, "; 5216 PRINT "AND PRESS 'READY'." 5217 PRINT "WHAT IS THE LARGEST QUESTION NO. ON THIS TEST "; 5218 INPUT Q6 5219 PRINT 5220 PRINT 5222 FOR Q=1 TO Q6 5223 LET U[Q]=0 5224 NEXT Q 5230 CALL (2,K[1]) 5232 IF K[1] >= 0 THEN 5238 5233 PRINT "CARD-READER PROBLEM -- K(1)= ";K[1] 5234 PRINT "HOW MANY CARDtS ARE TO BE TRIED AGAIN ('99'='N0NE; GO ON')"; 5235 INPUT Z0 5236 IF Z0=99 THEN 5282 5237 GOTO 5230 5238 IF K[2]>0 AND K[2]<10 THEN 5244 5240 PRINT "PROCESS NO. RECORDED AS ";K[2] 5242 GOTO 995 5244 IF K[3]=9 AND K[4]=9 THEN 5282 5245 LET P1=K[2] 5246 LET A=7 5247 LET L6=0 5250 FOR X=A TO 36 5252 IF K[X]=10 OR K[X]>11 THEN 5258 5253 IF K[X]=11 THEN 5259 5254 LET L6=10*L6+K[X] 5255 IF L6 <= Q6 THEN 5258 5256 PRINT "IN 'PROCESS'";P1;"QUESTION NO.";L6;"EXCEEDS LIMIT";Q6 5257 LET L6=0 5258 NEXT X 5259 IF L6>0 THEN 5266 5260 GOTO 5279 5266 IF U[L6]=P1 THEN 5279 5267 IF U[L6]=0 THEN 5274 5268 IF U[L6]>9 THEN 5271 5269 LET P[U[L6]]=P[U[L6]]-1 5270 LET P0=P0-1 5271 LET U[L6]=10*U[L6]+P1 5273 GOTO 5279 5274 LET U[L6]=P1 5275 LET P[P1]=P[P1]+1 5276 LET P0=P0+1 5278 IF P0=Q6 THEN 5282 5279 IF X >= 36 THEN 5230 5280 LET A=X+1 5281 GOTO 5247 5282 PRINT 5283 PRINT "TOTAL NO. OF QUESTIONS RECORDED WITH UNIQUE "; 5284 PRINT "PROCESS DEFINITION =" 5285 PRINT 5286 FOR X=1 TO 9 5287 IF P[X]=0 THEN 5289 5288 LET P=P+1 5289 NEXT X 5290 PRINT P0;"QUESTIONS ARE INCLUDED UNDER";P;"DEFINED PROCESSES." 5291 PRINT 5299 RETURN 5301 FOR X=1 TO 9 5303 PRINT P[X];"QUESTIONS FOR PROCESS NO.";X 5305 NEXT X 5307 PRINT 5309 RETURN 5401 PRINT 5406 PRINT 5410 PRINT 5411 PRINT Q9;"= TOTAL NUMBER OF QUESTIONS ON THIS TEST." 5412 GOSUB 5290 5418 PRINT 5420 PRINT TAB(10); 5421 PRINT "* * * * 'P R O C E S S' A N A L Y S I S * * * *" 5422 PRINT 5423 PRINT TAB(17);N5;"STUDENTS "; 5424 GOSUB 1365 5425 PRINT 5426 PRINT "PROCESS" 5428 PRINT "NUMBER "; 5430 PRINT " -1- -2- -3- -4- -5- -6- -7- -8- -9-" 5432 PRINT 5434 PRINT "NO. OF"; 5435 PRINT TAB(64);"FOR ALL" 5436 PRINT "QUEST. "; 5438 FOR X=1 TO 9 5440 PRINT P[X]; 5442 NEXT X 5444 PRINT TAB(65);P0 5446 PRINT TAB(62);"QUESTIONS" 5448 PRINT "STUDENT";TAB(64);"PERCENT" 5450 PRINT "NeUMBER"; 5452 PRINT " PERCENT CORRECT ON EACH PROCESS"; 5453 PRINT TAB(64);"CORRECT" 5454 PRINT 5459 RETURN 5461 FOR X=1 TO 3 5462 LET Y[3*X-2]=INT(V[S,X]/10000) 5463 LET Y[3*X-1]=INT((V[S,X]-10000*Y[3*X-2])/100) 5464 LET Y[3*X]=V[S,X]-100*INT(V[S,X]/100) 5465 NEXT X 5466 LET T5=0 5467 FOR X=1 TO 9 5468 IF P[X]=0 THEN 5474 5469 PRINT INT(100*Y[X]/P[X]+.5); 5470 LET T5=T5+Y[X] 5472 GOTO 5475 5474 PRINT " "; 5475 NEXT X 5477 PRINT TAB(66);INT(100*T5/P0+.5) 5479 RETURN 5481 FOR X=1 TO 9 5482 LET S[X]=S[X]+Y[X] 5487 LET N[X]=N[X]+Y[X]^2 5490 NEXT X 5494 LET T7=T7+T5^2 5499 RETURN 5501 PRINT 5515 PRINT "PROCESS NO. QUESTION NUMBERS:" 5520 FOR X=1 TO 9 5522 PRINT " ";X;" "; 5525 GOSUB 5571 5527 NEXT X 5528 PRINT 5529 PRINT 5531 PRINT " NONE --- "; 5533 LET X=0 5535 GOSUB 5571 5536 PRINT 5537 PRINT "2 OR MORE - "; 5540 FOR Q=1 TO Q6 5543 IF U[Q]<10 THEN 5547 5545 PRINT Q; 5547 NEXT Q 5550 PRINT 5557 PRINT 5559 RETURN 5571 LET Z=0 5575 FOR Q=1 TO Q6 5577 IF U[Q]#X THEN 5590 5580 PRINT Q; 5583 LET Z=Z+1 5585 IF Z/10#INT(Z/10) THEN 5590 5586 PRINT " "; 5588 LET Z=0 5590 NEXT Q 5595 PRINT 5598 RETURN 5701 GOSUB 5801 5710 GOSUB 5831 5720 PRINT " FOR";N7 5730 GOSUB 5841 5740 GOSUB 5871 5749 RETURN 5801 PRINT "AVERAGES "; 5807 LET T9=0 5810 FOR X=1 TO 9 5812 IF P[X]=0 THEN 5825 5815 PRINT INT(100*S[X]/(P[X]*N7)+.5); 5820 LET T9=T9+S[X] 5822 GOTO 5828 5825 PRINT " "; 5828 NEXT X 5829 RETURN 5831 PRINT TAB(63);INT(1000*T9/(P0*N7)+.5)/10 5839 RETURN 5841 PRINT " STANDARD" 5842 PRINT "DEVIATION"; 5845 FOR X=1 TO 9 5847 IF P[X]=0 THEN 5860 5850 LET H[X]=SQR(N[X]/N7-(S[X]/N7)^2) 5855 PRINT INT((100/P[X])*H[X]+.5); 5857 GOTO 5863 5860 PRINT " "; 5863 NEXT X 5869 RETURN 5871 PRINT TAB(63); 5875 LET H9=SQR(T7/N7-(T9/N7)^2) 5880 PRINT INT((1000/P0)*H9+.5)/10 58M90 PRINT 5899 RETURN 5901 PRINT 5917 LET N7=T7=0 5920 FOR S=1 TO N5 5922 IF S=1 THEN 5940 5925 GOTO 5962 5940 LET Z0=0 5950 GOSUB 1971 5954 FOR X=1 TO 9 5957 LET S[X]=N[X]=0 5959 NEXT X 5962 PRINT G[S]-1000*INT(G[S]/1000); 5964 PRINT " "; 5965 GOSUB 5461 5966 GOSUB 5481 5967 LET N7=N7+1 5968 IF N7/5#INT(N7/5) THEN 5970 5969 PRINT 5970 NEXT S 5972 PRINT 5980 PRINT 5984 PRINT 5997 PRINT " CLASS" 5998 GOSUB 5701 5999 RETURN 56 REM ** TAPE VI +V,PRINTS INDIV. PROCESS SKILL RECORDS 11/73 JES 851 GOSUB 6101 6101 PRINT 6104 PRINT 6106 PRINT "PLACE PAPER-FOLD AT TOP OF RIBBON, AND TYPE '99' "; 6107 INPUT Z0 6108 PRINT 6115 FOR S=1 TO N7 6125 PRINT "STEP TEST "; 6130 PRINT M;"/";D;"/";Y3; 6135 PRINT " STUDENT NO.";G[S]-1000*INT(G[S]/1000);" NAME:" 6145 PRINT TAB(14);"CONTRACT "; 6150 GOSUB 1405 6151 PRINT 6155 PRINT " PROCESS" 6160 PRINT " SKILLS "; 6165 PRINT " -1- -2- -3- -4- -5- -6- -7- -8- -9-"; 6170 PRINT " COMBINED" 6175 PRINT "NO.OF QUEST."; 6180 FOR X=1 TO 9 6185 PRINT P[X]; 6190 NEXT X 6195 PRINT P0 6200 PRINT 6205 PRINT "PCT CORRECT"; 6210 GOSUB 5461 6215 PRINT " DEVIATION "; 6220 FOR X=1 TO 9 6222 IF P[X]#0 THEN 6225 6223 PRINT " "; 6224 GOTO 6245 6225 LET G5=Y[X] 6230 LET A5=S[X]/N7 6235 LET S5=SQR(N[X]/N7-(S[X]/N7)^2) 6240 GOSUB 6501 6245 NEXT X 6247 PRINT " "; 6250 LET G5=T5 6255 LET A5=T9/N7 6260 LET S5=SQR(T7/N7-(T9/N7)^2) 6270 GOSUB 6501 6275 PRINT 6277 PRINT " VS";N7 6280 PRINT "CLASS AVER."; 6282 FOR X=1 TO 9 6286 NEXT X 6292 GOSUB 5807 6294 PRINT TAB(66);INT(100*T9/(P0*N7)+.5) 6296 PRINT "........" 6297 NEXT S 6299 RETURN 6501 IF G512 OR M1<4 THEN 7060 7050 LET M0=INT(M1-3) 7055 GOTO 7070 7060 LET M0=0 7070 LET X[2,Z1]=1000*F0+100*M0+T0 7072 LET X[2,Z1+1]=0 7099 RETURN 7201 LET F1=INT(X[2,Z1]/1000) 7210 LET M1=3+INT(X[2,Z1]/100)-10*INT(X[2,Z1]/1000) 7212 IF M1>3 THEN 7230 7214 LET M1=0 7230 LET T1=X[2,Z1]-100*INT(X[2,Z1]/100) 7249 RETURN 58 REM ** TAPE X +V=PREPARATION FOR 'PROCESS' ANALYSIS 11/73 JES 59 PRINT "IF TAPE V HAS NOT ALREADY BEEN ENTERED, PLEASE ENTER IT NOW." 101 DIM K[38] 124 GOSUB 9001 127 GOTO 990 990 PRINT TAB(20);"* * * * E N D * * * *" 991 STOP 995 PRINT "FAULTY RUN. PLEASE CHECK THE CARDS AND TRY AGAIN." 996 STOP 9001 PRINT 9010 PRINT 9020 PRINT WNLH"QUESTION NO. PROCESS NO." 9030 FOR Q=1 TO Q6 9040 PRINT TAB(4);Q; 9050 IF U[Q]<10 THEN 9080 9060 PRINT TAB(12);U[Q] 9070 GOTO 9085 9080 PRINT TAB(13+3*U[Q]);U[Q] 9085 IF Q/5#INT(Q/5) THEN 9095 9090 PRINT 9095 NEXT Q 9099 RETURN 9999 END ;N 8S 22682-18011 1608 SC 0622 RTE 2100 MICROPROGRAMMING SOFTWARE             H0106 ASMB,L,T *R/T MICROASSEMBLER* HED HP RTE MICRO ASSEMBLER VERSION A. NAM MICRO,3,87 EXT EXEC,%WRIN,%WEOF EXT %READ,%WRIS,.OPSY EXT OPEN,WRITF,CLOSE,FMERR * * THE RTE MOCRO ASSEMBLER ASEMBLES CODE FOR THE 2100 * MICRO PROCESSOR. IT IS A 2 PASS FIXED FIELD FORMAT * ASSEMBLER THAT ACCEPTS SOURCE IMAGES FROM IN ADDITION * TO CONVENTIONAL INPUT DEVICES , DISC. (USER CREATES TYPE * 5 FILE). IT MAX ALSO OPTIONALLY CREATE A LOAD AND GO * FILE IN THE JOB BINARY AREA OF THE DISC. * * STATEMENTS AR OF THREE TYPES * 1. COMMENTS; INDICATED BY AN ASTERISK,"*", IN * COLUMN 1 OF THE INPUT CARD. * 2. CONTROL STATEMENTS; INDICATED BY A DOLLAR * SIGN,"$",IN COLUMN 1 OF THE INPUT CARD, * 3. ASSEMBLY STATEMENT; WHICH CAUSES CODE TO BE * GENERATED. THIS STATEMENT HAS 8 FIELDS. * 1. LABEL FIELD CARD COL. 1-5 * THIS FIELD MAY CONTAIN A STRING OF 1 TO * 5 ALPHANUMERIC SYMBOLS THE 1ST OF WHICH * MUST NOT BE AN ASTERISK OR A DOLLAR SIGN * 2. RBUS FIELD CARD COL. 7-9 * MUST CONTAIN A LEGAL RBUS NNEUMONIC * 3. SBUS FIELD CARD COL. 11-14 * MUST CONTAIN A LEGAL SBUS MNEUMONIC. * 4. FUNCTION FIELD CARD COL. 16-19 * MUST CONTAIN A LEGAL FUNCTION MNEUMONIC. * 5. STORE FIELD CARD COL. 21-24 * MUST CONTAIN A LEGAL STORE MNEUMONIC. * 6. SPECIAL FIELD CARD COL. 26-29 * MUST CONTAIN A LEGAL SPECIAL MNEUMONIC. * * 7. SKIP FIELD CARD COL. 31-34 * MUST CONTAIN A LEGAL SKIP MNEUMONIC. * * 8. REMARKS CARD COL 36-56 * SPACED FOR ADDITIONAL COMMENTS. * * THE SKIP AND SPECIAL FIELDS MAY DISABLED * BY USE OF A CONSTANT OR JMP ADDRESS. * ENT MICRO JMP MICRO SUP PRAM BSS 5 LINE# BSS 1 FLRPT BSS 1 FLEOP BSS 1 INST1 BSS 1 INST2 BSS 1 JFLG BSS 1 JFIL BSS 1 RBUS BSS 1 SBUS BSS 1 FNC BSS 1 STOR BSS 1 SPEC BSS 1 FSKIP BSS 1 SECT# BSS 1 ILUN BSS 1 PLUS OCT 53 MINUS OCT 55 .M47 DEC -47 .F OCT 106 .D OCT 104 .59 DEC 59 .19 DEC 19 .21 DEC 21 .22 DEC 22 .23 DEC 23 .256 DEC 256 .511 DEC 511 .M15 DEC -15 .99 DEC 99 .17 DEC 17 ASTER OCT 52 BLANK OCT 40 BUCK OCT 44 LOMSK OCT 377 ******* RTE MODIFICATION ******* HIMSK OCT 177400 ******* RTE MODIFICATION ******* B400 OCT 400 .O OCT 117 .S OCT 123 .N OCT 116 .E OCT 105 .L OCT 114 .X OCT 130 .EQ. OCT 75 .P OCT 120 RDR DEC 5 .M11 DEC -11 B401 OCT 401 PCH DEC 4 HED1 ASC 6,SYMBOL TABLE LIST DEC 6 LIST2 DEC 6 ******* RTE MODIFICATION ******* FILE BSS 1 ACARD DEF CARD LPP DEC 56 BYTAD BSS 1 OUTBF BSS 11 CARD BSS 40 OCT 0 ABF0 DEF OUTBF ABUF3 DEF OUTBF+3 ABF9 DEF OUTBF+9 CRLEN BSS 1 RLEN BSS 1 PCNTR BSS 1 T.001 BSS 1 T.002 BSS 1 VALU BSS 1 TAG BSS 1 SYMB BSS 1 S.000 BSS 1 BLNK2 ASC 1, S.002 BSS 1 .M80 DEC -80 SCNT BSS 1 TOKEN BSS 2 HDTAB BSS 1 SR.00 BSS 1 BASE BSS 1 B1400 OCT 1400 PNTR BSS 1 * ******* RTE MODIFICATIONS ******* * DEC -64,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1 . EQU * DEC 0,1,2,3,4,5,6,7,8,9,10,17,64 OCT 17,37,77,177,377,177400,3777,177700 * ******* * TRAK BSS 1 LUN BSS 1 * * THIS ROUTINE CONTROLS SOURCE INPUT * RDCRD NOP LDA .M40 STA SCNT LDB ACARD LDA BLNK2 STA 1,I INB ISZ SCNT JMP *-3 LDA RDR CPA .+1 IOR B400 STA RDR RD1 JSB %READ READ DEF *+5 SOURCE DEF RDR INPUT DEF CARD FROM DISC OR DEF .M80 JMP RD3 EOF RETURN SZB,RSS EOT? JMP RD1 YES TRY AGAIN. CMB,INB STB CRLEN LDA LUN CAN WE SZA,RSS SAVE SOURCE?  JMP RDCRD,I NO,EXIT. JSB %WRIS WRITE DEF *+4 SOURCE DEF CARD TO DEF CRLEN DISC. CLA DISC FULL RETURN. AND HIMSK SET LUN ALF,ALF STA LUN FOR NEXT WRITE. JMP RDCRD,I RD3 JSB MSOUT DEF .+1 DEF EFILE DEF .+6 ABORT JSB EXEC DEF *+5 DEF .+2 DEF .+1 DEF AEND DEF .+9 JSB EXEC DEF *+2 DEF .+6 * .M40 DEC -40 EFILE ASC 6,MISSING $END AEND ASC 9,ASSEMBLY ABORTED! * * THIS ROUTINE EJECTS PAGE ON LIST * DEVICE * EJECT NOP LDA LIST SUPPRESS SZA,RSS LISTING? JMP EJECT,I YES EXIT. IOR B1100 STA CNWD1 JSB EXEC NO DEF *+4 EJECT DEF .+3 DEF CNWD1 DEF .-1 LDA LPP CMA,INA STA #LNES JMP EJECT,I EXIT. * CNWD1 BSS 1 B1100 OCT 1100 * * THIS ROUTINE GENERATES LEADR ON PUNCH DEVICE * LEADR NOP LDA PCH SZA,RSS JMP LEADR,I IOR B1000 STA T.001 JSB EXEC DEF *+3 DEF .+3 DEF T.001 JMP LEADR,I * B1000 OCT 1000 * * ERROR PRINT ROUTINE * * THIS ROUTINE PRINTS ERROR NESSAGES ON LIST DEVICE * ERROR NOP ISZ NMERR LDB LIST SUPPRESS SZB,RSS LISTING? LDB LIST2 ******* RTE MODIFICATION ******* STB T.001 SSA,RSS PASS I ERRORS? JMP EL1 * * PASS I ERORS * CMA,INA YES, MAKE ERROR # POS. EL2 LDB E1 PUT RBL # IN JSB DECML LDA T.001 CLB,INB JSB SPACE SPACE ONE LINE. JSB MSOUT OUTPUT DEF T.001 DEF ERR1 MESSAGE DEF .+7 JMP ERROR,I EXIT. * ERR1 ASC 6,**ERROR ASC 1,** E1 DEF ERR1+4 * * PASS II ERRORS * EL1 SZA,RSS A= JMP EL2 0? YES GO BACK. LDB E2 l RBL JSB DECML LDA LINE# LDB E3 RBL INB JSB DECML LDA T.001 CLB,INB JSB SPACE JSB MSOUT DEF T.001 DEF ERR2 DEF .14 JMP ERROR,I * ERR2 ASC 14,**ERROR XXXX IN LINE XXXX ** NMERR OCT 0 B31 OCT 31 E3 DEF ERR2+10 E2 DEF ERR2+4 * * THIS POUTINE CONTROLS MESSAFE OUTPUT * * CALLING SEQUENCE: * JSB MSOUT * DEF LUN * DEF BUFUR * DEF BUFL * MSOUT NOP LDA MSOUT,I PICK UO L.U. LDA 0,I SET NO WAIT BIT SZA JMP *+4 LDA MSOUT ADA .+3 JMP 0,I STA MLUN SAE CONTROL WORD. ISZ MSOUT PICK LDA MSOUT,I UP STA BFAD1 BUFUR ADDRESS ISZ MSOUT AND LDA MSOUT,I ADDRESS LDA 0,I SSA,RSS JMP *+3 ARS RSS CMA,INA STA MCNT ISZ MSOUT CMA,INA INA STA BFL1 LDB OUTAD LDA BFAD1,I STA 1,I INB ISZ BFAD1 ISZ MCNT JMP *-5 JSB EXEC DEF *+5 DEF .+2 DEF MLUN DEF BFOUT-1 DEF BFL1 JSB PAGER JMP MSOUT,I * MLUN BSS 1 OUTAD DEF BFOUT ASC 1, BFOUT BSS 120 MCNT BSS 1 BFL1 BSS 1 BFAD1 BSS 1 * * THIS ROUTINE CONVERTS BINARY * TO 4 DIGIT DECIMAL * * NUMBER IN A * BYTE ADDRESS IN B * DECML NOP STB D.000 SAVE ADDRESS CLB DIVIDE DIV .1000 BY 1000 ADA B60 A=1000TH DIGIT. MAKE ASCII STB D.001 SAVE REMAINDER LDB D.000 PICK UP ADDRESS JSB STORB STORE 1000TH DIGIT. STB D.000 SAVE NEXT ADDRESS CLB DIVIDE LDA D.001 REMAINDER DIV .100 BY 100. ADA B60 A= HUNDRED DIGIT. MAKE ASCII STB D.001 SAVE REMAINDER LDB D.000 PIcCK UP ADDRESS JSB STORB STORE HUNDREDS DIGIT STB D.000 SAVE NEXT ADDRESS CLB DIVIDE LDA D.001 BY DIV .10 10. ADA B60 A= TENS DIGIT. MAKE ASCII STB D.001 SAVE 1'S DIGIT LDB D.000 PICK UP ADDRESS JSB STORB STORE TENS DIGIT LDA D.001 PICK UP 1'S DIGIT ADA B60 MAKE ASCII JSB STORB STORE IT JMP DECML,I RETURN D.000 BSS 1 D.001 BSS 1 .1000 DEC 1000 .100 DEC 100 .10 EQU .+10 * THIS ROUTINE SPACES N LINES ON SPECIFIED * DEVICE. * * CALLING SEQUENCE: * LDA L.U. * LDB N * JSB SPACE * SPACE NOP CMB,INB SET STB SCNT COUNT STA DEVIC SAVE L.U. SPC0 JSB EXEC OUTPUT DEF *+5 DEF .+2 DEF DEVIC BLANK DEF BLNK2 DEF .+1 LINE. JSB PAGER ISZ SCNT FINISHED? JMP SPC0 NO,GO BACK JMP SPACE,I YES EXIT * DEVIC BSS 1 * PAGER NOP ISZ #LNES JMP PAGER,I JSB EJECT JMP PAGER,I #LNES BSS 1 * * ASCII TO BINARY CONVERSION ROUTINE. * * CALLING SEQUENCE: * LDA TYPE =0 =>OCTAL #0 => DECIMAL * LDB BYTE ADDRESS * JSB CNVRT * * ON RETURN RESULT IN A REG. * OVERFLOW SET ON ERROR * CNVRT NOP STB TMPC1 SAVE BYTE ADDRESS LDB .+8 PUT OCTAL BASE IN B. SZA WAMT DECIMAL? LDB .+10 YES, PUT DECIMAL BASE INB. STB TMPC2 SAVE BSSE CLA CLEAR TEMPORARY STA TMPC3 STA CFLG CN1 LDB TMPC1 LOAD JSB LOADB BYTE. ADA .M48 VALUE OF BYTE SSA <@60? JMP CN4 YES STA TMPC4 NO,SAVE BYTE. LDA TMPC2 IS CMA,INA BUTE ADA TMPC4 NON LEGAL SSA,RSS DIGIT?  JMP CN2 YES ERROR LDA TMPC3 COMPUTE NEXT MPY TMPC2 TEMPORARY RESULT. SZB OVERFLOW? JMP CN2 YES CLO NO, CLEAR O-BIT. ADA TMPC4 ADD IN NEW DIGIT SOC OVERFLOW? JMP CNVRT,I YES RETURN STA TMPC3 SAVE INTERMEDIATE RESULT ISZ CFLG SET GOOD DIGIT FLAG. ISZ TMPC1 BUMP BYTE ADDRESS. JMP CN1 CN4 LDA CFLG ILLEGAL DIGIT FOUND LDB TMPC1 PUT BYTE ADDRESS IN B SZA,RSS DID WE GET ANYTHING? STO NO, SET ERROR CONDITION LDA TMPC3 PUT RESILT IN A-REG JMP CNVRT,I CN2 STO OVERFLOW JMP CNVRT,I * TMPC1 BSS 1 TMPC2 BSS 2 TMPC3 BSS 1 TMPC4 BSS 1 .M48 DEC -48 CFLG OCT 0 * * THIS ROUTINE LOADS BYTE WHOSE ADDRESS * IS SPECIFIED IN B-REG. ADDRESS UNCHANGED. * * RETURNS 0/BYTE IN A-REG. * LOADB NOP STB L.000 SAVE BYTE ADDRESS CLE,ERB SET E TO INDICATE HI OR LO BYTE LDA 1,I PICK UP WORD LDB HIMSK PUT HIMASK IN B SEZ WANT HI BYTE? BLF,BLF NO MAKE MASK LO AND 1 ISOLATE BYTE SEZ,RSS IS BYTE HI? ALF,ALF YES SHIFT LO LDB L.000 RESET B JMP LOADB,I EXIT. * * THIS ROUTINE STORES LOW BYTE OF A IN * LOCATION IN B. ADDRESS INCREMENTED ON EXIT. * STORB NOP STB L.000 SAVE B-REG CLE,ERB E INDICATE HI OR LO STB L.002 SAVE WORD ADDRESS AND LOMSK SAVE STA L.001 SOURCE BYTE. LDA 1,I PICK UP WORD. LDB HIMSK PUT HI MASK IN B-REG. SEZ,RSS DEST IS LO BYTE? BLF,BLF NO SAVE OPPOSITE AND 1 BYTE. SEZ,RSS SHIFT CURRENT ALF,ALF BYTE HIGH IF NECESSARY IOR L.001 OR IN SOURCE BYTE SEZ,RSS RE-ADJUST ALF,ALF WORD IF NEXESSARY STA L.00nn2,I STORE LDB L.000 BUMP INB BYTE ADDRESS JMP STORB,I EXIT. * L.000 BSS 1 L.001 BSS 1 L.002 BSS 1 * * THIS ROUTINE READS SOURCE FROM DISC OR OTHER DEVICE * SAVES SOURCE IMAGE IF NECESSARY; SETS THE END OF DATA * MARKER IN STRING * * * THIS ROUTINE ADDS SYMBOL POINTED TO BY B-REG * TO TABLE WITH VALUE IN A-REG * ROUTINE CHECKS FOR DUPLICATE ENTRIES OUTPUTS * APPROPRIATE ERRORS. * * E-REG SET ON ENTRY IMPLIES EXTERNAL SYMBOL * * SYMBOL TABLE FORMAT: * * *************** * *BYTE1 * BYTE2* * *************** * *BYTE3 * BYTE4* * ************* * *BYTE5 * BLANK* * *************** * * VALUE * * *************** * * TAG * * *************** * SYMAD NOP STA VALU,I SAVE VALUE. CLA SET SEZ EXTERNAL INA FLAG IF STA TAG,I INDICATED. SEZ THIS ' JMP SY0 IS LDB ACARD ******* RTE MODIFICATION ******* LDA 1,I THUS STA SYMB,I WE INB CAN ISZ SYMB LDA 1,I MERELY STA SYMB,I PICK INB UP ISZ SYMB LDA 1,I NEXT 6 AND HIMSK IOR BLANK STA SYMB,I CHARACTERS. LDB SYMB ADB .-2 STB SYMB SY2 LDA SYMB JSB SERCH CURRENT SYMBOL SSA IF FOUND JMP SY3 THEN LDA .-1 ERROR DUPLICATE LABELS. JSB ERROR LDA SYMB STA *+3 JSB MSOUT DEF LIST2 ******* RTE MODIFICATION ******* NOP DEF .+3 LDA LIST2 ******* RTE MODIFICATION ******* * JMP SYMAD,I EXIT. ELSE SY3 LDA TAG BUMP INA END STA SYMB OF TABLE ADA .+3 POINTERS STA VALU SYMB,VALU INA & STA TAG TAG CMA,yINA ADA 1777B ******* RTE MODIFICATION ******* SSA,RSS JMP SYMAD,I EXIT. JSB MSOUT DEF .+1 DEF SOVFL DEF .+8 JMP ABORT SY0 STB S.000 SAVE BYTE ADDRESS IN TEMP. LDA .-5 SET STA SCNT COUT LDB SYMB BLANK LDA BLNK2 OUT STA 1,I SPACE INB FOR STA 1,I EXTERNAL INB SYMBOL. STA 1,I LDB S.000 GET 1ST JSB LOADB BYTE INB BUMP & STB S.000 SAVE ADDRESS. LDB SYMB STORE RBL AWAY SY1 JSB STORB CHARACTER. STB S.002 SAVE NEXT ADDRESS LDB S.000 CHECK ISZ S.000 NEXT JSB LOADB CHARACTER CPA BLANK =BLANK? JMP SY2 YES GO SEARCH. LDB S.002 NO ISZ SCNT BUMP CHARACTER COUNT JMP SY1 IF LDA .-2 MORE THAN 5 JSB ERROR ERROR JSB MSOUT DEF LIST2 ******* RTE MODIFICATION ******* DEF CARD DEF CRLEN JMP SYMAD,I EXIT. SOVFL ASC 8,MEMORY OVERFLOW! * * THIS ROUTINE SEARCHES SYMBOL TABLE * FOR SYMBOL WHOSE 1ST 2 CHARACTERS ARE IN WORD * POINTED TO BY A-REG. * RETURNS WORD POINTER TO 5 WORD ENTRY IN A-REG. * A-REG < 0 => SYMBOL NOT PRESENT * SERCH NOP STA TOKEN SAVE ADDRESS LDB HDTAB PICK UP HEAD TABLE ADDRESS SR0 CPB SYMB END OF TABLE? RSS JMP *+3 CCA YES NOT FOUND JMP SERCH,I EXIT LDA 1,I NO,COMPARE CPA TOKEN,I 1ST 2 CHAR. SAME? JMP *+3 YES ADB .+5 NO POINT JMP SR0 TO NEXT ENTRY GO BACK. LDA TOKEN COMPARE INA NEXT STA SR.00 2 INB CHARACTERS. LDA 1,I CPA SR.00,I SAME? JMP *+3 ADB .+4 NO POINT TO NEXT JMP SR0 ENTRY & TRY AGAIN ISZ SR.00 YES INB CHECK LAST LDA 1,I 2. CPA SR.00,I SAME? JMP *+3 ADB .+3 NO POINT TO NEXT JMP SR0 ENTRY & TRY AGAIN. LDA 1 YES SUCCESS ADA .-2 SET A TO HEAD OF ENTRY JMP SERCH,I & EXIT. * * THIS ROUTINE SKIPS TO SYMBOL IN A-REG * STARTING AT BYTE ADDRESS SPECIFIED IN B-REG. * IF END OF CARD IS REACHED BEFORE SYMBOL FOUND * OVERFLOW IS SET. * SKPTO NOP STA CHAR SAVE TEST CHAR SK0 JSB LOADB LOAD CHAR FROM STRING CPA CHAR =? RSS YES JMP *+3 CLO CLEAR OVERFLOW JMP SKPTO,I EXIT SZA END OF STRING? JMP *+3 STO YES SET OVERFLOW JMP SKPTO,I EXIT INB ELSE BUMP ADDRESS JMP SK0 + TRY AGAIN. * CHAR BSS 3 ACHAR DEF CHAR * * THIS ROUTINE SKIPS OVER ALL CONSECUTIVE SYMBOLS * LIKE THAT IN A-REG. * SAME FLAGS AS ABOVE. * SKIP NOP STA CHAR SAVE TEST CHAR SKP0 JSB LOADB LOAD CHAR FROM STRING SZA =0? JMP *+3 STO YES SET END OF LINE FLAG. JMP SKIP,I EXIT CLO CPA CHAR =CHAR? RSS JMP SKIP,I NO EXIT INB YES CHECK JMP SKP0 NEXT ONE. SPRES BSS 1 M.13 DEC -13 COMMA OCT 54 * * THIS ROUTINE CONVERTS OCTAL TO * 6 DIGIT ASCII. * B-REG HAS BYTE ADDRESS OF WHERE TO * STORE. * A-REG HAS NUMBER. * ASCII NOP STA A.000 SAVE NUMBER CLE,ELA SIGN LDA B60 SEZ SET INA YES JSB STORB PUT IN CORRECT BYTE. LDA A.000 MASK ALF OF AND .+7 NEXT 3 BITS ADA B60 MAKE ASCII. JSB STORB STORE. LDA A.000 MASK ALF,ALF OFF RAR NEXT AND .+7 BYTES ADA B60 IN JSB STORB SUPCCESSION LDA A.000 AND ALF,ALF STORE RAL,RAL AS AND .+7 CREATED ADA B60 IN JSB STORB BUFUR LDA A.000 INDICATED RAR,RAR RAR AND .+7 ADA B60 JSB STORB LDA A.000 AND .+7 ADA B60 JSB STORB JMP ASCII,I RETURN A.000 BSS 1 B60 OCT 60 * * * START OFK MAIN * * MICRO NOP LDA 1,I IS 1ST CPA .99 =99? JMP D1 YES USE DEFAULTS. SZA NO, DEFAULT INPUT? STA RDR NO SET VALUE. INB LDA 1,I IS 2ND CPA .99 =99? JMP D1 YES * ******* RTE MODIFICATIONS ******* * SZA,RSS JMP *+3 STA LIST2 * ******* * STA LIST INB POINT TO NEXT. LDA 1,I IS 3RD CPA .99 =99? JMP D1 YES SZA NO, DEFAULT PUNCH? STA PCH INB LDA 1,I CPA .99 =99? JMP D1 SZA STA LPP * ******* RTE MODIFICATIONS ******* * D1 LDA 1717B ADA .23 LDA 0,I * ******* * INA STA SYMB STA HDTAB ADA .+3 STA VALU INA STA TAG JSB EJECT JSB MSOUT DEF LIST DEF HED1 DEF .+6 LDA LIST LDB .+2 JSB SPACE JSB %WRIN NO, INITILIZE SOURCE WRITE CLA YES INPUT DISC OR CANT SAVE SOURCE STA TRAK SET AND HIMSK DISC ALF,ALF STA LUN L.U. STA ILUN LDA TRAK # & AND LOMSK TRACK STA TRAK # CLA STA SPRES STA PCNTR CMA STA BASE LDA RDR CPA .+2 RSS JMP INPUT LDA 1767B ******* RTE MODIFICATION ******* SZA JMP INPUT JSB EXEC DEF *+5 DEF .+2 DEF .+1 DEF NSOUR DEF ׿.+5 JSB EXEC DEF *+2 DEF .+6 * NSOUR ASC 5,NO SOURCE * INPUT JSB RDCRD READ CARD LDB ACARD EXAMINE RBL 1ST STB BYTAD BYTE JSB LOADB CPA ASTER =*? JMP INPUT YES, IGNORE. CPA BUCK =$? JMP CNTRL CONTROL STATE. CPA BLANK LABEL PRESENT? JMP *+4 CLE LDA PCNTR YES ADD TO JSB SYMAD SYMBOL TABLE ISZ PCNTR BUMP PCNTR LDA .M11 LDB PCNTR CPB B401 JSB ERROR LDA BASE BASE SSA,RSS INITIALIZED? JMP INPUT YES GO BACK LDA B400 NO SET TO STA BASE 400 OCTAL JMP INPUT GO PROCESS NEXT CARD. * * CONTROL CARD PROCESSOR CNTRL INB CHECK NEXT JSB LOADB BYTE. CPA .O =O? JMP CTRL1 YES ORIGIN CARD CPA .S =S? JMP CTRL2 YES SUPPRESS WARNING MESSAGES CPA .N =N? JMP CTRL3 YES COULD BE NOLIST OR NOPUNCH. CPA .E =E? JMP CTRL4 YES EXTERNAL OR END CPA .D "D? JMP CTRL5 YES DEBUG (IGNORED BI RTE MDE) CPA .F "F JMP CTRL6 YES FILE .BAD. LDA .-2 BAD JSB ERROR CONTROL STAMENT JSB MSOUT DEF LIST2 ******* RTE MODIFICATION ******* DEF CARD DEF CRLEN JMP INPUT READ NEXT CARD. * * ORIGIN CARD PROCESSOR * ORIG NOP CTRL1 LDA .EQ. SKIP TO JSB SKPTO EQUAL SIGN. SOC END OF LINE? OLAY3 JMP .BAD. YES ERORR. INB LDA BLANK SKIP OVER JSB SKIP BLANKS SOC END OF LINE? OLAY4 JMP .BAD. YES ERROR. CLA CONVER TO JSB CNVRT OCTAL SOC ANY ERRORS? OLAY5 JMP .BAD. YES. LDB 0 NO AND LOMSK SEPARATE STA T.001 LOWER LDA 1 & AND HIFMSK UPPER STA T.002 LDB BASE HAS BASE SSB,RSS BEEN INITIALIZED? JMP *+7 CMA,INA NO IS SPECIFIED ADA B1400 SSA GREATER THAN MAX? OLAY6 JMP .BAD. YES ERROR. LDA T.002 SET STA BASE BASE. LDA T.002 CPA BASE RSS OLAY7 JMP .BAD. ERROR LDA T.001 IS NEW CMA PCNTR ADA PCNTR VALUE LESS SSA,RSS THAN CURRENT. OLAY8 JMP .BAD. YES ERROR LDA T.001 SET STA PCNTR PCNTR OLAY2 JMP INPUT JMP ORIG,I * * SUPPRESS CARD PROCESSOR * CTRL2 CCA STA SPRES JMP INPUT * * NOLIST OR NOPUNCH * CTRL3 INB CHECK INB 3RD BYTE JSB LOADB CLB CPA .L =L? JMP *+6 CPA .P =P? RSS JMP .BAD. NO ERROR STB PCH SUPPRESS PUNCHING JMP INPUT STB LIST ITS L THUS NOLIST. JMP INPUT EXIT. * * SET DEBUG FLAG * CTRL5 CLA,INA STA DBUG JMP INPUT * * GET BINARY OUTPUT FILE * CTRL6 LDA .EQ. SKIP TO JSB SKPTO EQUAL SIGN. SOC END OF LINE? JMP .BAD. YES ERROR INB NO LDA BLANK SKIP JSB SKIP BLANKS. SOC JMP .BAD. JSB LOADB TRANSFER STA FILE STB T.001 LDB .-6 ******* RTE MODIFICATION ******* STB CCNT LDB ANAME NAME RBL CTR61 JSB STORB TO ISZ CCNT RSS JMP INPUT STB T.002 TEMPORARY LDB T.001 INB BUFUR JSB LOADB STB T.001 FOR USE LDB T.002 SZA BY JMP CTR61 JMP INPUT PASS II. * * END OR EXTERNAL * CTRL4 INB CHECK NEXT JSB LOADB BYTE. CPA .X =X? RSS JMP CTR42 LDA .EQ. YES EiXTERNALS SKIP TO JSB SKPTO = SIGN. SOC END OF CARD? JMP .BAD. YES ERROR CTR41 INB NO LDA BLANK SKIP JSB SKIP BLANKS. SOC END OF CARD? JMP .BAD. YES ERROR. STB T.001 NO SAVE ADDRESS OF SYMBOL LDA BLANK SKIP TO JSB SKPTO END OF SYMBOL. SOC END OF CARD? JMP .BAD. YES ERROR LDA BLANK NO SKIP ACROSS JSB SKIP BLANKS. SOC END OF CARD? JMP .BAD. YES ERROR. CLA CONVERT JSB CNVRT OCTAL VALUE. SOC END OF CARD.OR ERROR. JMP .BAD. YES ERROR. STB T.002 SAVE CURRENT POSITION LDB T.001 PICK UP SYMBOL ADDRESS CCE SET E-REG TO INDICATE EXT JSB SYMAD ADD TO SYMBOL TABLE LDB T.002 PICK UP CURRENT ADDRESS LDA COMMA SKIP JSB SKPTO TO COMA SOC END OF CARD? JMP INPUT EXIT JMP CTR41 GO BACK. CTR42 CPA .N "N RSS JMP .BAD. NO, BAD CONTROL STATE LDA LUN YES END IF SZA WRITING SOURCE THEN JSB %WEOF WRITE END OF FILE. LDA LIST SUPPRESS SZA,RSS LISTING? JMP PASS2 YES GO TO PASS 2. LDA HDTAB GET STA PNTR START OF TABLE CPA SYMB END? JMP PASS2-1 YES GO TO PASS 2 LDA LIST LDB .+2 JSB SPACE PR1 LDA PNTR,I GET STA CARD READY ISZ PNTR TO LDA PNTR,I PRINT STA CARD+1 NEXT ISZ PNTR SYMBOL LDA PNTR,I AND STA CARD+2 VALUE. ISZ PNTR LDA PNTR,I ISZ PNTR LDB PNTR,I SZB,RSS ADA BASE LDB ACARD RBL ADB .+6 JSB ASCII LDA PNTR,I SZA,RSS JMP *+3 LDA .X RSS LDA BLANK JSB STORB TRN JSB MSOUT PRINT DEF LIST ENTRY DEF CARD DEF M.13 ISZ PNTR POINT LDA PNTR TO CPA SYMB NEXT ENTRY. END? RSS JMP PR1 NO, GO DO NEXT. JSB EJECT YES EJECT FOR PASS 2. 9T SKP * * * PASS IT * * PASS2 CLA SET STA OLAY2 LDA OLAY2+1 UP STA OLAY3 STA OLAY4 ORIGIN STA OLAY5 STA OLAY6 PROCESS ROUTINE STA OLAY7 STA OLAY8 FOR 2ND PASS LDA FILE SZA,RSS JMP P * ******* RTE MODIFICATIONS ******* * JSB OPEN DEF *+7 DEF IDCB DEF IERR DEF FNAME DEF . DEF ISECU DEF . * JSB FMERR DEF *+3 DEF IERR DEF .+1 * SSA,RSS JMP P99 * ******* * JMP *+6 P99 JSB MSOUT ******* RTE MODIFICATION ******* DEF .+1 FILE DEF MES00 ASSEMBLY DEF .+8 ABORTED JMP ABORT P CLA STA FLEOP STA FLRPT STA SECT# TO 0. STA PCNTR CMA STA BASE CLA,INA STA LINE# JSB LEADR LDA LUN IS SOURCE IN WORK SZA AREA OF DISC? JMP P21 YES GO READ FOR 2ND PASS LDA RDR WAS INPUT CPA .+2 FROM DISC? JMP P20 YES GO READ JFILE AGAIN. JSB EXEC NO, USER DEF *+5 MUST RELOAD DEF .+2 SOURCE DEF .+1 TO DEF RLOAD CONTINUE DEF .+7 JSB EXEC PAUSE DEF *+2 TO ALLOW USER TO DEF .+7 RELOAD SOURCE LDA OLAY FIX INPUT STA INPT2+1 ROUTINE TO READ CARDS. CLA STA INPT2+2 JMP P21 GO READ INPUT. RLOAD ASC 7,RELOAD CARDS INPT2 NOP JSB RDISK DEF CARD JMP INPT2,I OLAY JSB RDCRD P20 LDA 1767B ******* RTE MODIFICATION ******* STA TRAK AND LOMSK TRACK STA SECT# LDA TRAK AND ALF,ALF AND LOMSK SECTOR STA TRAK NUMBER. STA JFIL LDA .+2 STA ILUN P21 CLA CLEAR STA JFLG JUMP FLAG. LDA .M40 STA SCNT LDB ACARD LDA BL#NK2 STA 1,I INB ISZ SCNT JMP *-3 JSB INPT2 READ CARD LDB ACARD CHECK RBL 1ST JSB LOADB BYTE. CPA ASTER =*? JMP P21A YES,IGNORE BUT PRINT CPA BUCK =$? RSS JMP P21B NO, GOOD CODE. INB YES JSB LOADB CPA .O =ORIGIN? RSS JMP P21AB NO,CHECK FOR END JSB ORIG ORIGIN CARD JMP P21A P21AB CPA .E BYTE IS E? RSS JMP P21A NO, NOT END IGNORE IT INB YES JSB LOADB BYTE IS N? CPA .N JMP END P21A LDA CRLEN LIST SSA,RSS CARD IN CMA,INA FORMAT JSB LSTR 1? ISZ LINE# JMP P21 GO BACK. P21B LDA BASE IS BASE SSA,RSS INITIALIZED? JMP P21C YES PROCEED. LDA B400 NO, STE TO 400 OCTAL. STA BASE P21C LDB ACARD FIND ADB .+3 RBL RBUS CLA,INA JSB $SRCH OPCODE. STA RBUS SAVE. LDB ACARD FIND ADB .+5 RBL SBUS LDA .+2 JSB $SRCH OPCODE. STA SBUS SAVE. LDB ACARD FIND ADB .+7 RBL FUNCTION INB LDA .+3 OPCODE. JSB $SRCH STA FNC SAVE. LDB ACARD FIND ADB .+10 RBL STORE LDA .+4 JSB $SRCH OPCODE STA STOR SAVE: LDA FNC WAS ADA .M15 THERE SSA A JMP P28 JMP ADA .-6 IN SSA,RSS FUNCTION FIELD? JMP P28 NO * * JUMP IN FUNCTION FIELD * STA JFLG YES SET JUMP FLAG. LDB ACARD PEEK ADB .12 AT RBL 1ST INB BYTE. JSB LOADB CPA ASTER ="*"? JMP P25 YES SELF REL. JUMP. ADA .M47 ] COULD BE SSA DIGIT? JMP P22 NO, LABEL. ADA .-8 SSA,RSS JMP P22 CLA YES IS DIGIT JSB CNVRT CONVERT TO BINARY SOS ERROR? JMP *+4 P23 LDA .+9 YES BAD JSB ERROR JUMP TARGET. CLA STA FSKIP JMP P30 GO FINISH UP. JSB LOADB NEXT CPA BLANK CHAR BLANK? RSS JMP P22 NO,LABEL AFTER ALL? STA FSKIP SAVE TARGET JMP P30 GO FINISH UP. * * TARGET IS LABEL * P22 LDB ACARD RESET ADB .12 ADDRESS RBL TO START INB OF FIELD. JSB LOADB MOVE ALF,ALF ' STA CHAR INB NEXT JSB LOADB IOR CHAR STA CHAR 6 INB JSB LOADB CHARACTERS ALF,ALF STA CHAR+1 INB TO JSB LOADB IOR CHAR+1 STA CHAR+1 TEMPORARY INB JSB LOADB ALF,ALF STORAGE STA CHAR+2 INB FOR JSB LOADB IOR CHAR+2 STA CHAR+2 SEARCH. LDA ACHAR SEARCH JSB SERCH SYMBOL TABLE? SSA FOUND. JMP P23 NO, ERROR ADA .+3 PICK STA 1 INB UP LDA 0,I VALUE AND LDB 1,I TAG SZB,RSS IF LOCAL THEN ADA BASE ADD TO BASE VALUE. STA FSKIP AND SAVE. JMP P30 GO FINISH UP. * * SELF RELATIVE TARGET * P25 INB CHECK NEXT JSB LOADB BYTE CPA PLUS ="+"? JMP P27 CPA MINUS ="-"? JMP P26 CPA BLANK = BLANK? RSS JMP P23 NO,ERROR LDA PCNTR USE PCNTR ADA BASE STA FSKIP JMP P30 GO FINI P26 INB CONVERT CLA,INA DECIMAL JSB CNVRT CONSTANT SOC ERROR? JMP P23 CMB>A,INA NO,NEGATE ADA PCNTR ADD TO PCNTR ADA BASE STA FSKIP SAVE JMP P30 GO FINISH P27 INB CONVERT CLA,INA DECIMAL JSB CNVRT CONSTANT SOC ERROR? JMP P23 ADA PCNTR NO ADD TO PCNTR ADA BASE STA FSKIP SAVE JMP P30 GO FINISH P28 LDA SBUS IS CPA B15 THERE JMP *+4 CONSTANT RIGHT CPA B14 OR RSS CONSTANT LEFT IN SBUS JMP P29 * * CONSTANT IS SBUS * LDB ACARD SET ADB .12 ADDRESS RBL IN INB B. CLA CONVERT JSB CNVRT CONSTANT SOS ERROR? JMP *+4 LDA .23 YES JSB ERROR PRINT IT CLA STA FSKIP JMP P30 GO FINISH * * NO JMP OR CONSTANT * P29 LDB ACARD ADB .12 SET RBL ADDRESS INB IN B. LDA .+5 FIND SPECIAL JSB $SRCH OPCODE STA SPEC SAVE. LDB ACARD ADB .15 FIND RBL SKIP LDA .+6 OPCODE JSB $SRCH STA FSKIP * * INSTRUCTION FORMATION COMPLETED. * * P30 LDA PCNTR PUT ALF,ALF PCNTR STA INST1 IN INSTRUCTION LDA RBUS PICK UP ABUS OPCODE SSA,RSS LEGAL? JMP *+3 LDA .+3 NO,ILLEGAL JSB ERROR RBUS OPCODE. CPA .+6 YES =CQ? RSS JMP *+3 LDA .12 YES JSB WARN WARN USER. LDA RBUS AND .+7 SHIFT ALF,RAL RBUS TO POSITION IOR INST1 OR INTO STA INST1 INSTR. LDA SBUS SBUS OPCODE SSA,RSS LEGAL? JMP *+3 LDA .+4 NO JSB ERROR ERROR AND B17 YES RAL POSITION IOR INST1 OR IN STA INST1 IN7STR LDA JFLG IS THERE SZA,RSS A JUMP? JMP P31 LDA FSKIP YES CMA,INA TARGET ADA .511 > SSA,RSS 511? JMP P31 LDA FNC YES CPA B24 CJUMP? RSS JMP *+4 LDA B31 YES STA FNC SET CORRECT CODE JMP P31 ISZ FNC ELSE SET BIT 0 TO 1 P31 LDA FNC FUNCTION OPCODE SSA,RSS LEGAL? JMP *+3 LDA .+5 NO JSB ERROR ERROR LDA FNC AND B20 CHECK MSB SZA =0? ISZ INST1 NO SET IN INST1. LDA FNC NO GET AND B17 LOWER 4 BITS ALF,ALF SHIFT ALF TO POSITION. STA INST2 STORE. LDA FNC FUNCTION OPCODE CPA .+6 DEC? JMP P33 YES GO CHECK RBUS SZA NO, RFI? JMP *+4 LDA .12 WARN JSB WARN USER. JMP P35 GO FINISH CPA .+1 RFE? JMP P32 LDA JFLG A JMP,JSB OR CJMP? SZA,RSS JMP P35 LDA SBUS YES NOP IN CPA B17 SBUS? JMP P34 LDA .14 NO LDB SBUS P IN CPB B16 SBUS? LDA .22 THEN WARNING 22 ELSE JSB WARN WARNING 14. JMP P35 GO FINISH P32 LDA SBUS RFE.IS NOP CPA B17 IN SBUS? JMP P35 LDA .21 NO WARN JSB WARN USER JMP P35 P33 LDA RBUS DEC. NOP IN CPA .+7 RBUS? RSS JMP P35 LDA .13 YES JSB WARN WARN USER. JMP P35 P34 LDA FSKIP NOP IN SBUS WITH JUMP CMA,INA TARGET ADA .255 IN SSA,RSS MODULE 0? JMP P36 ADA .256 NO SSA,RSS MODULE 1? JMP P35 ADA .256 NO, SSA MODULE 3? JMP P35 P36 LDA .-3 YES SET 2 AND INST1 SBUS STA INST1 BIT TO 0 (BIT 17) P35 LDA STOR CHECK SSA,RSS STORE FIELD. LEGAL? JMP *+3 LDA .+6 NO JSB ERROR ERROR LDA STOR AND B17 POSITION ALF,ALF BITS IOR INST2 PUT IN STA INST2 INSTRUCTION. LDA STOR IS ADA .-4 ONE SSA OF JMP P37 THE ADA .-4 SCRATCH PADS SSA,RSS IN STORE? JMP P37 LDA SBUS IS ADA .-8 SSA ONE JMP P37 ADA .-4 IN SSA,RSS SBUS? JMP P37 LDA STOR 'YES ADA .+4 ARE THEN THE CPA SBUS SAME RSS JMP P37 YES LDA .15 ERROR JSB ERROR P37 LDA JFLG WAS THERE A SZA,RSS JUMP JSB OR CJUMP? JMP P38 LDA FSKIP YES AND LOMSK IOR INST2 IN STA INST2 ADDRESS. JMP P46 GO FINISH P38 LDA SBUS WAS CPA B14 THERE CL OR CR IN SBUS? JMP P37+3 YES GO PUT IN CPA B15 JMP P37+3 LDA SPEC CHECK SPECIAL. SSA,RSS LEGAL? JMP *+3 LDA .+7 NO. JSB ERROR ERROR AND B17 POSITION ALF BITS IOR INST2 PUT IN STA INST2 INSTRUCTION WORD 2. LDA SPEC CPA .+7 LEP? RSS JMP *+4 LDA B20 YES JSB WARN WARN USER JMP P40 GO TO NEXT FIELD. LDB STOR M IN CPB .+1 STORE? RSS JMP P40 CPA B16 YES CW IN SPEC? JMP P40 CPA B14 NO RW IN SPEC? JMP P40 LDA .17 NO,WARN JSB WARN USER P40 LDA FSKIP CHECK SKIP SSA,RSS LEGAL? JMP *+3 LDA .+8 NO JSB ERROR ERROR. AND B17 PUT IOR INST2 IN  STA INST2 INSTR. LDA FSKIP LDB FLEOP SZB,RSS EOP IN PREVIOUS INSTR. JMP P42 CPA B17 YES NOP HERE JMP P42 LDA .18 NO WARN USER. JSB WARN P42 LDB SPEC NO CPB B14 CW IN SPECIAL? RSS JMP P43 CPA B17 YES CHECK FOR SKIP CONDITION. JMP ERR10 NOP-ERROR CPA .+0 JMP ERR10 ICTR-ERROR CPA .+1 JMP ERR10 RPT-ERROR CPA B15 RSS JMP P43 ERR10 LDA .+10 YES ERROR JSB ERROR P43 LDA FLRPT RPT IN PREVIOUS INSTR. SZA,RSS JMP P45 LDA FSKIP YES SZA CPA .+1 THERE JMP P44 CPA .+7 A JMP P43A NON CPA B17 SKIP JMP P44 CPA B15 TYPE HERE? JMP P44 YES ERROR 19. CPA .+2 NO NEG RSS OR CPA .+3 ODD? RSS JMP P46 LDA FNC YES ADA .-7 ADD SSA TYPE JMP P46 INSTRUCTION ADA .-5 IN SSA,RSS FUNCTION? JMP P46 P43A LDA .20 YES JSB ERROR ERROR JMP P46 P44 LDA .19 JSB ERROR P45 CLB EOP LDA FSKIP CPA B15 PRESENT? INB YES STB FLEOP SET EOP FLAG CLB RPT CPA .+1 INB PRESENT? STB FLRPT SET RPT FLAG JMP *+4 P46 CLB EOP OR RPT STB FLEOP NOT PRESENT STB FLRPT CLEAR FLAGS LDA CRLEN LIST SSA CMA,INA JSB LSTR LINE JSB EMCDE OUTPUT CODE ISZ PCNTR BUMP PROGRAM CNTR ISZ LINE# JMP P21 GO READ NEXT CARD END JSB EMPBF EMPTY PUNCH BUFUR. LDA CRLEN SSA,RSS CMA,INA JSB LSTR LDA NMERR SZA,RSS JMP END1 LDB DJ1 RBL INB JSB DECML END1 JSB EXEC ******* RTE MODIFICATION ******* DEF *+5 DEF .+2 DEF LIST2 ******* RTE MODIFICATION ******* DEF DJ DEF .+8 JSB LEADR LDA FILE SZA JSB #WEOF JSB EJECT JSB EXEC PRINT DEF *+5 DEF .+2 END DEF .+1 DEF ENDMS MESSAGE DEF .+5 JSB EXEC QUIT. DEF *+2 DEF .+6 * ENDMS ASC 9,$END MICRO ASMB. DJ ASC 8, ** NO ERRORS* DJ1 DEF DJ+1 * * THIS ROUTINE PRINTS WARNING MESSAGES * WARN NOP LDB SPRES SUPPRESS? SZB JMP WARN,I YES RETURN. ISZ NMERR BUMP # OF ERRORS. LDB WARN2 RBL JSB DECML LDB WARN3 RBL LDA LINE# JSB DECML LDA LIST2 ******* RTE MODIFICATION ******* CLB,INB JSB SPACE JSB MSOUT DEF LIST2 ******* RTE MODIFICATION ******* DEF WARN1 DEF .15 JMP WARN,I * WARN1 ASC 15,**WARNING XXXX IN LINE XXXX ** WARN2 DEF WARN1+5 WARN3 DEF WARN1+12 * * THIS ROUTINE CONTROLS THE LISTING OF * SOURCE PROGRAM * * ON ENTRY A<0 => LIST FORMAT 1 IE * LINE NO.-CARD * A>0 => LIST FORMAT 2 IE * LINE NO.-CODE-CARD * ABSOLUTE A= # CHARACTERS IN CARD * LSTR NOP LDB LIST SUPPRESS SZB,RSS LISTING? JMP LSTR,I YES RETURN SSA,RSS NO. FORMAT 1? JMP LSTR1 * * LIST FORMAT 1 * ADA .-4 YES ADJUST STA CLEN COUNT TO INCLUDE LINE NO. LDB ABF9 CONVERT RBL LINE LDA LINE# # JSB DECML TO DECIMAL JSB MSOUT OUTPUT DEF LIST LINE DEF OUTBF+9 DEF CLEN JMP LSTR,I RETURN * * LIST FORMAT 2 * LSTR1 ADA .22 ADJUST LINE COUNT CMA,INA TO INCKUDE STA CLEN OTHER STUFF.  LDB ABUF3 CONVERT RBL UPPER INB 8 LDA INST1 BITS AND LOMSK OF INSTRUCTION JSB ASCII TO ASCII LDA BLANK PUT IN JSB STORB AND SAVE POSITION. STB Q.000 LDB ABF0 CONVERT RBL INB ADDRESS INB INB OF INSTRICTION LDA INST1 AND HIMSK ALF,ALF TO ADA BASE JSB ASCII ASCII LDA BLANK JSB STORB LDA LINE# PUT LDB ABF0 RBL IN JSB DECML LDA BLANK LINE#. JSB STORB LDB Q.000 CONVERT LDA INST2 LOWER 16 BITS JSB ASCII TO ASCII LDA BLANK PUT JSB STORB IN LDA BLANK 2 JSB STORB BLANKS. JSB MSOUT PRINT DEF LIST DEF OUTBF DEF CLEN LINE JMP LSTR,I EXIT. CLEN BSS 1 Q.000 BSS 1 * * THIS ROUTINE SEARCHES THE OPCODE TABLE INDICATED BY A-REG * FOR OPCODE POINTED TO BY B-REG. * * ON ENTRY A= 1,2,3,4,5,6 WHICH REFERENCES RESPECTIVELY * RBUS,SBUS,ETC. * * B= BYTE POINTER TO OPCODE STRING * * ON EXIT A= VALUE OF OPCODE * A<0 => NOT FOUND. * * * TABLE LOOKS LIKE * * ***************** * * BYTE1 * BYTE2 * * ***************** * * BYTE3 * BYTE4 * * ***************** * * VALUE * * ***************** * * . * * * . * * $SRCH NOP STB S.000 SAVE BYTE ADDRESS LDB HSKIP PUT SKIP TABLE HEAD IN'B CPA .+1 RBUS? LDB HRBUS YES PUT TABLE HEAD IN B. CPA .+2 SBUS? LDB HSBUS YES PUT SBUS TABLE HEAD IN B. CPA .+3 FUNCTION? LDB HFNC YES PUT FNC TABLE HEAD IN B. CPA .+4 STORE? LDB HSTOR YES PUT STOR T-ABLE HEAD IN B. CPA .+5 SPECIAL? LDB HSPEC YES PUT SPEC HEAD IN B. STB PNTR SAVE TABLE HEAD. LDB S.000 PUT JSB LOADB ALF,ALF OPCODE STA TOKEN INB STRING JSB LOADB IOR TOKEN STA TOKEN IN INB JSB LOADB TOKEN ALF,ALF + STA TOKEN+1 INB TOKEN+1. JSB LOADB IOR TOKEN+1 STA TOKEN+1 LDB PNTR DO 1ST LDA 1,I 2 CPA TOKEN BYTES COMPARES? JMP SRCH1 ADB .+3 NO POINT TO SRCH0 LDA 1,I NEXT ENTRY. SZA END OF TABLE? JMP *-5 NO GO BACK CCA YES SET ERROR JMP $SRCH,I EXIT SRCH1 INB DO 2ND LDA 1,I 2 CPA TOKEN+1 BYTES COMPARE JMP *+3 ADB .+2 NO POINT TO JMP SRCH0 NEXT + GO BACK INB YES LDA 1,I PICK UP VALUE + JMP $SRCH,I EXIT * * CODE EMITTER FOR MICRO ASSEMBLER * * INSTRUCTION IN INST1 &2 * * EMCDE NOP LDA PNBUF PUNCH BUFUR CPA .59 FULL? JSB EMPBF YES EMPTY IT LDA LASTP IS THIS INA NEXT CPA PCNTR SEQUENTIAL INSTR? RSS JSB EMPBF NO,EMPTY PUNCH BUFUR. LDA CKSUM KEEP ADA INST1 RUNNING ADA INST2 CHECK- STA CKSUM SUM. LDB INST2 PUT LDA INST1 INSTR STA PNADR,I INTO ISZ PNADR PUNCH STB PNADR,I BUFUR. ISZ PNADR POINT TO NEXT POSITION. LDA PCNTR SAVE CURRENT STA LASTP PCNTR FOR NEXT TIME. ISZ PNBUF INCREMENT RECORD CNT. ISZ PNBUF JMP EMCDE,I EXIT * * THIS ROUTINE EMPTIES CURRENT CONTENTS * OF PUNCH BUFUR AND SETS UP HEADER FOR NEXT. * EMPBF NOP LDA PNBUF STA RLEN SAVE RECORD COUNT. CPA .+5 ANY DATA IN BUFUR? JMP PB0 NO, GO SET HEADER ALF,ALF STA PNBUF SET HIGH COUNT. CLA SET STA PNADR,I ISZ PNADR CHECKSUM LDA CKSUM STA PNADR,I IN BUFUR. LDA FILE SZA,RSS LOAD/GO PARAMETER? (99) JMP *+9 JSB #WRIT WRITE DEF *+4 DEF PNBUF TO DEF RLEN RSS DISC FILE. JMP *+3 CLA IF EOF THEN STA FILE LDA PCH SUPPRESS SZA,RSS PUNCHING? JMP PB0 IOR B100 NO STA PLUN PUNCH JSB EXEC DEF *+5 BINARY DEF .+2 DEF PLUN TAPE. DEF PNBUF DEF RLEN PB0 LDA .+5 SET UP STA PNBUF HEADER LDA PCNTR FOR ADA BASE STA PNBUF+1 NEXT STA CKSUM LDA DBUG STA PNBUF+2 ADA CKSUM STA CKSUM LDA PBASE POINT ADA .+3 TO STA PNADR BUFUR POSITION JMP EMPBF,I EXIT PNBUF OCT 5 OCT 400 BSS 58 PBASE DEF PNBUF PNADR DEF PNBUF+3 LASTP NOP CKSUM NOP PLUN BSS 1 * * THIS ROUTINE WRITES BINARY DATA TO * EXISTING BINARY FILE. * * CALLING SEQUENCE: * JSB #WRIT * DEF *+4 * DEF BUFUR * DEF BUFL * EOF RETURN * NORMAL RETURN. * #WRIT NOP LDA #WRIT,I GET NORMAL STA EXIT RETURN. ISZ #WRIT GET LDA #WRIT,I BUFUR STA TBFAD ADDRESS ISZ #WRIT GET LDA #WRIT,I RECORD LDA 0,I COUNT STA WRDS ******* RTE MODIFICATION ******* CMA,INA MAKE STA CCNT NEG. ISZ #WRIT SET EOF RETURN. * W0 LDA BBUFA ******* RTE MODIFICATION ******* * STA BBFAD OF SECTOR BUFUR. ADA WRDS COMPUTE STA SEND END. LD@B BBFAD ******* RTE MODIFICATION ******* W1 LDA TBFAD,I NEXT STA 1,I WORD. ISZ TBFAD BUMP SOURCE BUFUR ADDRESS INB BUMP TARGET BUFUR ADDRESS CPB SEND TARGET FULL? JMP W2 W3 ISZ CCNT NO,SOURCE EMPTY? JMP W1 NO GO BACK. STB BBFAD YES SAVE TARGET ADDRESS JMP EXIT,I AND EXIT. * ******* RTE MODIFICATIONS ******* * W2 JSB WRITF DEF *+5 DEF IDCB DEF IERR DEF BBUF DEF WRDS * JSB FMERR DEF *+3 DEF IERR DEF .+1 * LDA IERR SSA JMP P999 * LDB BBUFA NO RESET TARGET ADDRESS JMP W3 & GO BACK. * ******* * P999 JSB MSOUT ******* RTE MODIFICATION ******* DEF .+1 INSUFFICIENT DEF MES01 FILE DEF .12 SPACE JMP #WRIT,I TAKE EOF RETURN. * ******* RTE MODIFICATIONS ******* * #WEOF NOP * JSB CLOSE DEF *+4 DEF IDCB DEF IERR DEF . * JSB FMERR DEF *+3 DEF IERR DEF .+1 * ******* * JMP #WEOF,I EXIT. * EXIT BSS 1 CCNT BSS 1 FRST NOP SECTR BSS 1 WRDS BSS 1 BBUF BSS 128 BBUFA DEF BBUF BBFAD BSS 1 SEND BSS 1 MES01 ASC 12,INSUFFICIENT FILE SPACE. B102 OCT 102 MES00 ASC 08,FILE NOT ON DISC FNAME ASC 3, ESECT BSS 1 ANAME DEF FNAME DBUG BSS 1 * ******* RTE MODIFICATIONS ****** * IDCB BSS 144 IERR BSS 1 ISECU ASC 1,MA * ******* * * THIS ROUTINE READS SOURCE FROM DISC * FOR 2ND PASS. INITIAL TRACK/SECTOR ASSUME * TO BE IN TRAK AND SECT#. JFIL SET EXPECT SOURCE * FROM JFILE ELSE WORK AREA. * CALLING SEQUENCE: * JSB RDISK * DEF BUFUR * RDISK NOP LDA RDISK,I PICK UP STA TBFAD TARGET ADDRESS ISZ RDISK SET RETURN LDA FIRST FIRST SZA TIME? JMP R0 ISZ FIRST YES LDA 116B GET # STA S/TRK SECTORS/TRACK JSB .OPSY SET LDB .64 SECTOR SZA LDB .128 SIZE STB SIZE BUT LDB .64 IF READING LDA JFIL FROM WORK AREA SZA,RSS USE STB SIZE 64. LDA ILUN IOR B100 STA RLUN SET CONTROL WORD JSB RDSCT READ SECTOR STB SBFAD SAVE SECTOR BUFUR POINTER ADB SIZE AND END STB SBEND SECTOR POINTER R0 LDB SBFAD GET LDA 1,I RECORD ALF,ALF COUNT CMA,INA NEGATE STA RCNT AND SAVE. INB BUMP SECTOR POINTER ALS STA CRLEN CPB SBEND END OF SECTOR? RSS JMP R1 NO GO TRANSFER NEXT WORD ISZ SECT# BUMP SECTOR # LDA SECT# END CPA S/TRK OF TRACK? JMP R6 JSB RDSCT NO READ NEXT SECTOR R1 LDA 1,I STA TBFAD,I INB BUMP SECT# CPB SBEND END OF SECTOR? JMP R3 R2 ISZ TBFAD BUMP TARGET ADDRESS ISZ RCNT TRANSFER COMPLETE? JMP R1 NO GO BACK STB SBFAD SAVE POINTER JMP RDISK,I EXIT. R3 ISZ SECT# BUMP SECT# LDA SECT# END CPA S/TRK OF TRACK? JMP *+3 JSB RDSCT NO,READ NEXT JMP R2 SECTOR AND GO COMPLETE TRANSFER LDB JFIL YES. READING SZB,RSS FROM JFILE? JMP R5 R4 ISZ TRAK YES BUMP TRACK# CLA SET SECT# STA SECT# TO 0 JSB RDSCT READ NEXT SECTOR JMP R2 GO COMPLET TRANSFER. R5 LDA TBFAD,I LAST WORD TRANSFERED IS NEXT STA TRAK LUN AND TRAK # ALF,ALF GET AND LOMSK BOTH IOR B100 AND STA RLUN SET LDA TRAK AND LOMSK STA TRAK CLA SET STA SECT# SECT#=0. JSB RDSCT READ NEXT SECTOR JMP R1 GO TRANSFER THAT WORD AGAIN R6 LDB JFIL IF SZB NOT JMP R4 READING FROM JFILE LDA RCNT THEN RCNT CMA,INA HAS NEXT STA TRAK LUN AND LOMSK AND IOR B100 TRACK #. STA RLUN RECLAIM LDA TRAK AND ALF,ALF SET AND LOMSK BOTH. STA TRAK CLA SET STA SECT# SECT+=0 JSB RDSCT READ NEXT SECTOR JMP R0+1 GO RECOMPUTE CNT & TRANSFER. * * SECTOR READ ROUTINE * RDSCT NOP JSB EXEC READ DEF *+7 DEF .+1 ******* RTE MODIFICATION ******* DEF RLUN DEF SBUF FROM DEF SIZE DEF TRAK DISC DEF SECT# LDB SBUFA RESET SECTOR BUFUR POINTER. JMP RDSCT,I AND EXIT SBEND BSS 1 * TBFAD BSS 1 SBFAD BSS 1 FIRST NOP SBUFA DEF SBUF S/TRK BSS 1 RLUN BSS 1 SBUF BSS 128 .64 DEC 64 .128 DEC 128 B100 OCT 100 W/SCT BSS 1 RCNT BSS 1 * * O P C O D E T A B L E S * HRBUS DEF *+1 ASC 2,NOP OCT 7 ASC 2,CQ OCT 6 ASC 2,AAB OCT 5 ASC 2,CAB OCT 4 ASC 2,F OCT 3 ASC 2,Q OCT 2 ASC 2 B OCT 1 ASC 2,A OCT 0 ASC 2, OCT 7 OCT 0 END OF RBUS TABLE HSBUS DEF *+1 ASC 2,NOP B17 OCT 17 ASC 2,P B16 OCT 16 ASC 2,CL B15 OCT 15 ASC 2,CR B14 OCT 14 ASC 2,S1 OCT 13 ASC 2,S2 B12 OCT 12 ASC 2,S3 OCT 11 ASC 2,S4 OCT 10 ASC 2,COND OCT 7 ASC 2,ADR OCT 6 ASC 2,CNTR OCT 5 ASC 2,RRS OCT 4 ASC 2,M OCT 3 ASC 2,T OCT 2 ASC 2,IOI OCT 1 ASC 2,CIR OCT 0 ASC 2, OCT 17 OCT 0 END OF SBUS TABLE HFNC DEF *+1 ASC 2,IOR OCT 37 ASC 2,SOV OCT 36 ASC 2,CLO OCT 35 ASC 2,SFLG OCT 34 ASC 2,CFLG OCT 33 ASC 2,LWF OCT 32 ASC 2,ARS OCT 30 ASC 2,CRS OCT 27 ASC 2,LGS OCT 26 ASC 2,RSB OCT 25 ASC 2,CJMP B24 OCT 24 ASC 2,JMP .18 OCT 22 ASC 2,JSB B20 OCT 20 ASC 2,XOR OCT 16 ASC 2,NOR OCT 15 ASC 2,AND OCT 14 ASC 2,ADD OCT 13 ASC 2,ADDO OCT 12 ASC 2,INC OCT 11 ASC 2,INCO OCT 10 ASC 2,DEC OCT 6 ASC 2,SUB OCT 5 ASC 2,DIV OCT 4 ASC 2,MPY OCT 3 ASC 2,P1A OCT 2 ASC 2,RFE OCT 1 ASC 2,RFI OCT 0 ASC 2, OCT 37 OCT 0 END OF FUNCTION TABLE HSTOR DEF *+1 ASC 2,NOP OCT 17 ASC 2,A OCT 16 ASC 2,B OCT 15 ASC 2,AAB OCT 14 ASC 2,CAB OCT 13 ASC 2,Q OCT 12 ASC 2,F OCT 11 ASC 2,P OCT 10 ASC 2,S1 OCT 7 ASC 2,S2 OCT 6 ASC 2,S3 OCT 5 ASC 2,S4 OCT 4 ASC 2,IR OCT 3 ASC 2,T OCT 2 ASC 2,M OCT 1 ASC 2,IOO OCT 0 ASC 2, OCT 17 OCT 0 END OF STORE TABLE. HSPEC DEF *+1 ASC 2,NOP OCT 17 ASC 2, OCT 17 ASC 2,RW OCT 16 ASC 2,IOG1 OCT 15 ASC 2,CW OCT 14 ASC 2,ASG2 OCT 13 ASC 2,ASG1 OCT 12 ASC 2,ECYN OCT 11 ASC 2,ECYZ OCT 10 ASC 2,LEP OCT 7 ASC 2,AAB OCT 6 ASC 2,SRG2 OCT 5 ASC 2,SRG1 OCT 4 ASC 2,CNTR OCT 3 ASC 2,R1 OCT 2 ASC 2,L1 OCT `^Z1 ASC 2,RSS OCT 0 OCT 0 END OF SKIP TABLE HSKIP DEF *+1 ASC 2,NOP OCT 17 ASC 2, OCT 17 ASC 2,UNC OCT 16 ASC 2,EOP OCT 15 ASC 2,NAAB OCT 14 ASC 2,AAB OCT 13 ASC 2,NMPV OCT 12 ASC 2,CTR OCT 11 ASC 2,CTRI OCT 10 ASC 2,TBZ OCT 7 ASC 2,FLG OCT 6 ASC 2,OVF OCT 5 ASC 2,COUT OCT 4 ASC 2,NEG OCT 3 ASC 2,ODD OCT 2 ASC 2,RPT OCT 1 ASC 2,ICTR OCT 0 OCT 0 END OF SKIP TABLE .12 EQU B14 .13 EQU B15 .14 EQU B16 .15 EQU B17 .20 EQU B24 .255 OCT 377 ******* RTE MODIFICATION ******* SIZE BSS 1 END MICRO `ASMB,L,T *R/T MICRO DEBUG EDITOR* HED HP RTE MICRO DEBUG-EDITOR VERSION A. NAM MDE,3,86 EXT EXEC,TEST,MACRO EXT OPEN,WRITF,READF,CLOSE,FMERR ENT MDE * * MICRO DEBUG EDITOR * * THIS PROGRAM FACILITATES LOADING AND DEBUGGING * A USERS MICRO PROGRAM. SPECIFICALLY IT ALLOWS * HIM TO LOAD OR READ WCS; EXECUTE HIS MICROCODE * WITH BREAKPOINTS THAT WILL DISPLAY THE FIRMWARE * REGISTERS; AND GENERATES MASK TAPES THAT ARE * USED TO PROGRAM PROM CHIPS. EACH FUNCTION OF * THE MDE IS MODULAR AND WILL BE EXPLAINED IN MORE * DETAIL WITHIN EACH MODULE. * MDE NOP LDA RTURN SET AND LOMSK IOR PRTRN+1 P-REG. STA PRTRN+1 LDA RTURN AND HIMSK RETURN ALF,ALF IOR PRTRN+3 STA PRTRN+3 ADDRESS. LDA RGSTR SET ADA .+3 LDB 0 AND LOMSK REGISTER IOR ADREG+1 STA ADREG+1 AND LOMSK IOR RESET+1 DUMP STA RESET+1 SWP AND HIMSK ALF,ALF IOR ADREG+3 ADDRESS. STA ADREG+3 AND LOMSK IOR RESET+3 STA RESET+3 JSB MSOUT PRINT DEF MES00 HEADING. DEF .20 LDA MORG INITIALIZE JSB MOVE LOAD/DUMP ROUTINE. JSB SPACE SPACE JSB SPACE 3 INCMD JSB SPACE LINES JSB MSOUT ASK FOR DEF MES01 NEXT DEF .+4 COMMAND JSB RDTTY READ DEF LINE RESPONSE. DEF .M80 LDB ALINE GET RBL 1ST INPUT STB BACMD JSB LOADB CHARACTER. CPA .L COMMAND IS JMP ILOAD LOAD CPA .W JMP IWRIT WRITE CPA .R JMP IREAD READ CPA .D JMP IDUMP DUMP CPA .S JMP ISHOW SHOW CPA .P JMP IPREP PREPARE CPA .V JMP IVER VERIFY CPA .B JMP IBRAK BREAK CPA .C JMP IC OCTAL * A#0 => DECIMAL * B= BYTE ADDRESS OF STRING. * ON EXIT B<0 => ERROR * CNVRT NOP STB TMPC SAVE BYTE ADDRESS LDB .+8 PUT OCTAL BASE IN B. SZA WANT DECIMAL LDB .+10 YES PUT DECIMAL BASE IN B STB TMPC+1 SAVE BASE CLA SET STA CFLG DATA FALG + STA TMPC+2 TEMPORARY. CN1 LDB TMPC LOAD ASCII JSB LOADB DIGIT ADA .M48 CONVERT TO #. SSA JMP CN4 STA TMPC+3 LDA TMPC+1 CMA,INA ADA TMPC+3 SSA,RSS JMP CN2 LDA TMPC+2 YES COMPUTE MPY TMPC+1 NEXT RESULT SZB OVERFLOW? JMP CN2 YES ERROR CLO ADA TMPC+3 ADD IN CURRENT DIGIT. SOC JMP CNVRT,I ERROR STA TMPC+2 SAVE TEMP RESULT ISZ CFLG SET GOOD DATA FLAG. ISZ TMPC BUMP ADDRESS JMP CN1 GO BACK. CN4 LDA CFLG NON DIGIT FOUND. ANY GOOD LDB TMPC DATA? SZA,RSS STO NO SET OVERFLOW LDA TMPC+2 PICK UP RESULT JMP CNVRT,I EXIT CN2 STO OVERFLOW JMP CNVRT,I EXIT * TMPC BSS 4 .M48 DEC -48 CFLG BSS 1 * * THIS ROUTINE READS BINARY * INPUT FROM DISC FILE OR OTHER * DEVICE * * CALLING SEQUENCE: * LDA * JSB BREAD* * DEF *+3 * DEF BUFUR * EOT RETURN * NORMAL RETURN * ERROR CONDITIONS; * FILE NOT ON DISK-COMMAND ABORTED * END OF FILE -COMMAND ABORTED BREAD NOP LDB BREAD,I STB EXIT ISZ BREAD * * READ FROM FILE OR OTHER DEVICE * CPA .+2 DEVICE DISC? JMP BR7 YES FILE INPUT. * * OTHER DEVICE INPUT * IOR B300 NO, STA LUN SET CONTROL WORD. LDA BREAD,I SET STA BADD BUFUR ADDRESS. ISZ BREAD SET EOT RETURN. JSB EXEC READ DEF *+5 DEF .+1 1 DEF LUN BADD NOP RECORD DEF .60 SZB,RSS EOT? JMP BREAD,I YES JMP EXIT,I NO, * * FILE INPUT * BR7 IOR B100 SET CONTROL STA LUN WORD. LDA BREAD,I SET STA TBFAD TARGET ADDRESS ISZ BREAD SET EOT RETURN. LDA FIRST FIRST TIME? SZA JMP BR9 ******* RTE MODIFICATION ******* ISZ FIRST LDB .59 ******* RTE MODIFICATION ******* STB W/SCT * ******* RTE MODIFICATIONS ******* * JSB OPEN DEF *+7 DEF IDCB DEF IERR DEF FNAME DEF . DEF ISECU DEF . * JSB FMERR DEF *+3 DEF IERR DEF .+1 * LDA IERR SSA,RSS * ******* * JMP BR9 YES ERR13 JSB ERROR NO DEF MES13 NO DEF .+8 FILE. JMP INCMD * ******* RTE MODIFICATIONS ******* * BR9 JSB READF DEF *+6 DEF IDCB DEF IERR DEF SBUF DEF W/SCT DEF LEN * JSB FMERR DEF *+3 DEF IERR DEF .+1 * LDA IERR SSA JMP BR13 * LDA LEN CPA .-1 JMP BR12 * 5******* * LDA SBUFA SET START AND STA SBFAD END ADA LEN ******* RTE MODIFICATION ******* STA SEND * JMP BR10 * BR13 JSB ERROR YES ERROR: DEF MES14 END DEF .+4 OF FILE JMP INCMD GO GET NEXT COMMAND. BR10 LDA SBFAD,I TRANSFER STA TBFAD,I RECORD CNT ALF,ALF CMA,INA STA RECNT MAKE NEGATIVE SZA,RSS EDT? JMP BREAD,I YES EXIT BR11 ISZ TBFAD BUMP ISZ SBFAD POINTERS. ISZ RECNT END OF RECORD? RSS JMP EXIT,I YES EXIT. * LDA SBFAD,I NO,TRANSFER STA TBFAD,I NEXT WORD JMP BR11 GO GET NEXT. * ******* RTE MODIFICATIONS ******* * BR12 JSB CLOSE DEF *+4 DEF IDCB DEF IERR DEF . * JSB FMERR DEF *+3 DEF IERR DEF .+1 * JMP BREAD,I * * IDCB BSS 144 IERR BSS 1 ISECU ASC 1,MA LEN BSS 1 .59 DEC 59 * ******* * EXIT BSS 1 LUN BSS 1 B100 OCT 100 MES09 ASC 9,NO PROGRAM LOADED MES13 ASC 8,FILE NOT ON DISC MES14 ASC 4,END FILE ESECT BSS 1 SECTR BSS 1 .128 DEC 128 W/SCT BSS 1 SBUF BSS 128 SBUFA DEF SBUF SBFAD BSS 1 SEND BSS 1 TBFAD BSS 1 RECNT BSS 1 B300 OCT 300 FIRST NOP * * RDTTY READS FROM SYSTEM TTY AND * WAITS FOR RESPONSE. IT ALSO PUTS * AN END OF DATA FLAG AT END OF INPUT STRING. * * CALLING SEQUENCE: * JSB RDTTY * DEF BUFUR * DEC BUFL * * RDTTY NOP LDA RDTTY,I PICK UP STA RDBUF BUFUR ADRESS ISZ RDTTY PICK LDA RDTTY,I UP COUNT STA RDCNT ADDRESS ISZ RDTTY SET RETURN. JSB EXEC READ DEF *+5 DEF .+1 LINE DEF CNWD3 FROM RDBUF NOP RDCNT NOP TTY. STB TMP00 LDA RDBUF COMPUTE RAL BYTE ADDRESS OF BUFUR. SWP (TLOG IN B) ADB 0 ADB A CLA SET EOD JSB STORB FLAG CLA JSB STORB LDB TMP00 JMP RDTTY,I EXIT. CNWD3 OCT 401 * PARAMETER FETCH ROUTINE * * CALLING SEQUENCE: * LDA TYPEFLAG (=0,OCTAL CONVERSION * #0,DECIMAL 11) * JSB GTPAR * * * * ROUTINE EXAMINES COMMAND INPUT STRING FOR * PARAMETERS. PERFORMS NECESSARY CONVERSION * AND RETURNS RESULT IN PARAMETER TABLE. TABLE * FORMAT IS ILLUSTRATED BELOW. * * PARAMETER TABLE * **************** * * * * * # OF ENTRIES * WORD 1 * * * **************** * * * * * ENTRY # 1 * WORD 2 * * * * **************** * * * * * ENTRY # 2 * WORD 3 * * * * **************** * * * * * * * * * * * **************** * * * * * ENTRY # N * WORD N+1 * * * * **************** * * IF ERROR DETECTED COMMAND MUST BE RE-INPUTED. * GTPAR NOP STA PTYPE SAVE CONVERSION FLAG. CLA SET STA PRAM # PARAMETERS=0 LDA PRAM2 POINT TO 2ND STA APRAM WORD OF PARAMETER TABLE LDA M.5 STA CNT LDB BACMD SKIP GT0 LDA COMA TO JSB SKPTO COMA. SZA,RSS FOUND? JMP GTPAR,I NO, RETURN INB POINT TO NEXT CHAR PAST ",". LDA BLANK SKIP OVER JSB SKIP BLANKS. SZA DID WE REACH END OF LINE? EOL JMP *+5 NO JSB ERROR YES,ERROR DEF MES04 MISSING DEF .+9 JMP INCMD GO GET NEXT COMMAND. LDA PTYPE CONVERT JSB CNVRT ASCII TO BINARY SOS NUMBER LEGAL? JMP *+5 YES JSHFBB ERROR NO, ERROR DEF MES08 ILLEGAL DEF .11 DIGIT. JMP INCMD GO GET NEXT COMMAND STA APRAM,I PUT PARAMETER IN TABLE ISZ APRAM BUMP POINTER ISZ PRAM BUMP UP PARAMETER COUNT ISZ CNT CANT HANDLE 6 PARAMETERS. JMP GT0 GO BACK & GET NEXT. JMP GTPAR,I * PTYPE BSS 1 PRAM BSS 6 PRAM2 DEF PRAM+1 APRAM BSS 1 COMA OCT 54 MES08 ASC 11,ILLEGAL DIGIT/OVERFLOW M.5 DEC -5 %H* * MODIFY COMMAND MODULE * * COMMAND FORMAT: * MODIFY,[,] * * THIS COMMAND ALLOWS USER TO MODIFY ADDRESS * OR OPTIONALLY ADDRESS THROUGH * * IMOD CLA JSB GTPAR GET PARAMETERS. LDA PRAM SOME SZA,RSS FOUND? JMP ERR4 NO ERROR LDB PRAM+1 YES PICK UP 1ST ADA .-2 IS THERE SSA ANOTHER? STB PRAM+2 NO, SET 2ND = 1ST. LDA PRAM+2 PICK UP 2ND. AND LOMSK SAVE STA TMP50+1 END LDA 1 AND AND LOMSK START STA TMP50 ADDRESS. CMA,INA ARE THEY ADA TMP50+1 SSA,RSS LEGAL? JMP *+5 ERR3 JSB ERROR NO,ERROR DEF MES03 ILLEGAL DEF .+10 JMP INCMD GO GET NEXT COMMAND. INA SET CMA,INA COUNT. STA WTCNT JSB SPACE SPACE. LDA TMP50 COMPUTE ACTUAL ALS BUFUR ADA BBASE ADDRESS. STA ADBUF SAVE. LDA TMP50 ADA HBASE STA TMP50+2 MD0 STA GFLG LDA A.M22 SET STA SH1 VALUES LDA A.M10 TO SURPRESS STA GRB1 LINE FEED AFTER SHOW LDA TMP50 IS JSB GRBGE LOCATION JMP MD6 GARBAGE? LDA TMP50 CALL SHOW LDB 0 TO DISPLAY JSB SHOW CURRENT CONTENTS CLA STA GFLG MD6 LDA AD.9 RESET STA SH1 LINE FEED LDA AD.3 SURPRESS STA GRB1 PARAMETERS. JSB RDTTY READ DEF LINE NEW DEF .M80 LDB ALINE MAKE CLE,ELB BYTE STB BADR ADDRESS. JSB LOADB GET 1ST BYTE? CPA .ASTR ="*" JMP MD2 CPA .F NO, F-TYPE CONVERSION? RSS JMP MD1 LDB BADR YES INB JSB FCONV CONVERT INPUT. SOS LEGAL? JMP *+5 BADNM JSB ERROR ILLEGAL DEF MES07 NUMERIC DEF .11 * JMP MD0+1 STB MSBTS YES,SAVE STA LSBTS RESULTS JMP MD5 MD1 CLA NOT E-TYPE JSB CNVRT CONVERT 1ST NO. SOC LEGAL? JMP BADNM NO, BAD NUMBER. AND LOMSK SAVE STA MSBTS 1ST NO. MD3 INB NEXT * JSB LOADB BYTE CPA .ASTR ="*"? JMP MD4 CLA NO JSB CNVRT CONVERT 2ND NO. SOC LEGAL? JMP BADNM NO, BAD NUMBER STA LSBTS SAVE RESULTS JMP MD5 MD2 LDA ADBUF,I * INSTEAD OF 1ST NO. AND LOMSK STA MSBTS DONT CHANGE ANYTHING. CLA STA GFLG INB JMP MD3 GO CHECK SECOND. MD4 LDA ADBUF * INSTEAD OF 2ND NO. INA DONT LDA 0,I CHANGE STA LSBTS ANYTHING CLA STA GFLG MD5 LDA GFLG SZA,RSS JMP *+3 LDA .+2 STA TMP50+2,I ISZ TMP50+2 LDA TMP50 SHIFT ALF,ALF ADDRESS HIGH. IOR MSBTS OR IN MOST SIGNIFIGANT BITS. STA ADBUF,I IN BUFUR ISZ ADBUF BUMP ADDRESS. LDA LSBTS MODIFY STA ADBUF,I NEXT WORD. ISZ ADBUF BUMP ADDRESS OF BUFUR ISZ TMP50 BUMP ADDRESS ISZ WTCNT FINISHED? RSS JMP INCMD CCA JMP MD0 NO, GO BACK * MES03 ASC 10,ILLEGAL PARAMETER(S) TMP50 BSS 3 ADBUF BSS 1 GFLG BSS 1 A.M10 DEF .-10 A.M22 DEF .M22 AD.9 DEF .+9 ******* RTE MODIFICATION ******* AD.3 DEF .+3 ******* RTE MODIFICATION ******* MES07 ASC 11,ILLEGAL NUMERIC INPUT LSBTS BSS 1 MSBTS BSS 1 * * THIS MODULE DISPLAYS ALLOCATION OR * A GROUP OF CONSECUTIVE LOCATIONS ON * THE SYSTEM TTY. * * COMMAND FORMAT: * SHOW, [,] * * ISHOW CLA JSB GTPAR GET LDA PRAM PARAMETRS. p SZA,RSS ANY PRESENT JMP ERR4 NO,ERROR LDB PRAM+1 GET 1ST. ADA .-2 SSA ANY MORE? STB PRAM+2 NO SET 2ND TO 1ST. LDA PRAM+2 PICK UP 2ND. JSB SHOW GO DISPLAY. JMP INCMD SHOW NOP AND LOMSK SAVE STA TMP20+1 END LDA 1 AND AND LOMSK START STA TMP20 ADDRESSES. CMA,INA ARE ADA TMP20+1 THEY SSA LEGAL? JMP ERR3 NO ILLEGAL PARAMETERS INA SET CMA,INA COUNT STA SCNT JSB SPACE SPACE. SH3 LDA TMP20 ADDRESS JSB GRBGE GARBAGE? JMP SH2 RAL NO, GET ADA BBASE BUFUR STA BUFAD ADDRESS SH0 LDA BUFAD,I PICK UP AND HIMSK 1ST WORD. ALF,ALF GET ADDRESS PORTION IOR MDLE OR IN BASE LDB ADMES CONVERT RBL TO JSB ASCII AND STB TMP20+2 SAVE BYTE ADDRESS LDA BUFAD,I GET AND LOMSK UPPER 8-BITS OF INSTR JSB ASCII CONVERT TO ASCII STB TMP20+3 LDB TMP20+2 LDA BLANK BLANK JSB STORB 1ST LDA BLANK 3 JSB STORB CHARACTERS LDA BLANK JSB STORB LDB TMP20+3 LDA BLANK POSITION JSB STORB FOR LOWER 16 BITS. ISZ BUFAD POINT TO LOWE WORD. LDA BUFAD,I JSB ASCII CONVERT LOWER 16 TO ASCII JSB MSOUT PRINT DEF MESGE+1 LINE SH1 DEF .+9 ON TTY ISZ BUFAD BUMP BUFUR ADDRESS SH4 ISZ SCNT FINISHED? RSS JMP SHOW,I YES EXIT. ISZ TMP20 NO BUMP LOC. ADDRESS LDA TMP20 GARBAGE? JSB GRBGE RSS JMP SH0 NO GO BACK ISZ BUFAD YES SKIP ISZ BUFAD TO NEXT JMP SH4 GO CHECK AGAIN SH2 ISZ TMP20 ISZ SCNT JMP SH3 JMP SHOW,I MESGE ASC 10$, ASC 3,<= _ ADMES DEF MESGE SCNT BSS 1 TMP20 BSS 4 * * THIS ROUTINE SPACES 1 LINE ON TTY * SPACE NOP JSB EXEC DEF *+5 DEF .+2 DEF .+1 DEF MES00 ******* RTE MODIFICATION ******* DEF .+1 ******* RTE MODIFICATION ******* JMP SPACE,I * * * READ COMMAND MODULE 1 * * THIS MODULE READS CODE FROM WCS. * * IREAD CLA,INA GET DECIMAL JSB GTPAR PARAMETER. LDA PRAM ONE SZA,RSS FOUND? JMP ERR4 NO ERROR LDA PRAM+1 YES PUT IN STA WCS WCS JSB EXEC READ DEF *+5 DEF .+1 DEF WCS FROM DEF BUFUR DEF .+0 WCS. LDA .M256 SET STA WTCNT HEADERS LDB HBASE LDA .32 TO STA 1,I SHOW INB 16 RECORDS OF ISZ WTCNT 16 WCS WORDS JMP *-3 EACH. JMP INCMD GO GET NEXT COMMAND. * * THIS MODULE CONTROLS EXECUTION OF * USERS MICRO-PROGRAM. * * COMMENT FORMAT: * EXECUTE[,ADDRESS] * ADDRESS =0 => CALL TEST PROGRAM * #0 => EXECUTE FROM GIVEN ADDRESS * MISSING => EXECUTE FROM LAST BREAK. * IEXEC CLA GET JSB GTPAR PARAMETER LDA PRAM IF ANY. SZA IF JMP E0 LDA LSTBK NOT US CCB LAST BREAK. STB LSTBK SSA IF NOT ONE THEN JMP ERR4 MISSING PARAMETER. RSS E0 LDA PRAM+1 GET NEW PARAMETERS AND LOMSK SZA =0? JMP E1 LDA WCS YES DO I SZA,RSS KNOW WCS UNIT #? JSB GTWCS NO,GET WCS UNIT #. JSB WRITE WRITE MICROCODE. JSB MWRIT WRITE LOAD DUMP ROUTINE. JSB TEST CALL TEST PROGRAM. LDA INST1 RETURN HERE IF PROGRAM LDB JTADR RUNS TO COMPLETION SZB,RSS JMP *+5 STA 1,I FIX E INB UP LDA INST2 JUMP TABLE STA 1,I JSB MSOUT PRINT END DEF MES11 PROGRAM DEF .17 MESSAGE. CLA JSB BREAK JMP INCMD GO GET NEXT COMMAND. * E1 STA TMP51 SAVE ADDRESS LDA ORGIN IS ADDRESS LDB LDLEN IN ADB 0 LOAD/DUMP JSB LCHEK ROUTINE? DEF TMP51 SSA,RSS JMP ERR3 YES ILLEGAL PARAMETER. LDA MACRO GET MACRO AND B360 DECODE ALF,ALF MAPPER ALF ADDRESS. ALS DOUBLE AND COMPUTE ADA BBASE BUFUR ADDRESS. STA JTADR SAVE IT. LDA MDLE WE ARE IN CMA,INA ADA LOMSK SSA JMP *+4 CLA MODULE CLB 0 JMP E2 ADA B400 SSA JMP *+4 LDA .+2 MODULE CLB 1 JMP E2 ADA B400 SSA JMP *+4 CLA MODULE LDB =B10000 2 JMP E2 LDA .+2 MODULE LDB =B10000 3. E2 STA MASK1 SAVE STB MASK2 MASKS. LDB JTADR SAVE LDA 1,I JUMP STA INST1 TABLE AND HIMSK INSTRUCTION. IOR SJMP1 PUT IN JMP IOR MASK1 TO STA 1,I REGISTER INB RESTORE LDA 1,I ROUTINE. STA INST2 LDA SJMP2 PUT IOR MASK2 STA 1,I IN LDA LJMP1 IOR MASK1 JMP TO STA LJMP1 LDA LJMP2 NEXT AND HIMSK IOR TMP51 START IOR MASK2 STA LJMP2 ADDRESS. LDA WCS SSA JSB GTWCS WRITE JSB WRITE CODE JSB MWRIT TO WCS. * * RESET SOFTWARE REGISTERS. * LDA MACRO GET MACRO STA MAC LDA REG+11 RESET CLE E SLA REG. CME LDA REG+10 CLO O ~ SLA REG. STO LDB REG+1 B-REG AND LDA REG A-REG. MAC NOP EXECUTE MAC. JMP IEND SHOULD NOT RETURN HERE RTURN DEF *+1 * * RETURN FROM BREAK * NOP STA REG SAVE A-REG STB REG+1 B-REG CLA SEZ E INA STA REG+11 REG CLA AND SOC O INA STA REG+10 REG. LDA TMP70 SET STA LSTBK LAST BREAK ADDRESS LDB JTADR FIX SZB,RSS JMP *+5 LDA INST1 JP STA 1,I JUMP INB TABLE LDA INST2 ADDR- STA 1,I ESS. CLA REMOVE JSB BREAK CURRENT BREAK. LDB ARGBF GET RBL READY ADB .+4 TO LDA LSTBK IOR MDLE DUMP JSB ASCII ADDRESS, ADB .+3 LDA REG JSB ASCII A-REG, ADB .+3 LDA REG+1 JSB ASCII B-REG, ADB .+3 LDA REG+2 JSB ASCII F-REG, ADB .+3 LDA REG+3 JSB ASCII Q-REG, ADB .+4 LDA REG+4 JSB ASCII S1-REG ADB .+4 & LDA REG+5 JSB ASCII S2-REG, JSB MSOUT PRINT DEF RGBUF 1ST DEF .M66 LINE. LDB ARGB2 DUMP RBL ADB .+3 LDA REG+6 JSB ASCII S3-REG, ADB .+4 LDA REG+7 JSB ASCII S4-REG, ADB .+3 LDA REG+8 JSB ASCII P-REG ADB .+6 LDA REG+9 IOR B60 JSB STORB FLAG ADB .+3 LDA REG+10 IOR B60 JSB STORB 8-REG ADB .+3 LDA REG+11 AND IOR B60 JSB STORB E-REG. JSB MSOUT PRINT DEF RGBF2 LAST DEF .M54 LINE OF REGISTERS. JMP INCMD GO GET NEXT COMMAND. * * THIS ROUTINE GETS WCS LOGICAL UNIT # * GTWCS NOP JSB MSOUT ASK DEF MES12 USER DEF .11 FOR JSB RDTTY WCS DEF LINE LOGICAL DEF .M80 UNIT LDB ALINE #. RBL CONVERT CLA,INA INPUT TO JSB CNVRT BINARY SOS LEGAL? JMP GTWCS,I YES RETURN WITH RESULT IN A. JSB MSOUT NO ILLEGAL DEF MES07 NUMERIC DEF .11 INPUT. JMP GTWCS+1 TRY AGAIN. * MES12 ASC 11,WCS LOGICAL UNIT NO.?_ MES11 ASC 17,MICRO PROGRAM EXECUTION COMPLETED TMP51 BSS 2 INST1 BSS 1 INST2 BSS 1 JTADR BSS 1 LSTBK DEC -1 ARGBF DEF RGBUF RGBUF ASC 19,ADR=123456 A=123456 B=123456 F=123456 ASC 14,Q=123456 S1=123456 S2=123456 ARGB2 DEF RGBF2+5 RGBF2 ASC 15, S3=123456 S4=123456 ASC 12,P=123456 FLAG=1 O=1 E=1 MWRIT NOP LDA WCS SET STA LUN WORD. JSB EXEC WRITE DEF *+5 DEF .+2 LOAD/DUMP ROUTINE DEF LUN DEF RESET TO WCS. DEF LDLEN JMP MWRIT,I RETURN * * THIS MODULE ALLOWS USER TO MODIFY THE CONTENTS * OF THE HARDWARE REGISTERS * * THE REGISTERS ARE * A,B,F,Q,S1,S2,S3,S4,P,FLAG,O, AND E. * * COMMAND FORMAT * CHANGE[,REGISTER MNEUMONIC] * * A MISSING PARAMETER IMPLIES ALL REGISTERS * ARE TO BE MODIFIED. * ICHAN LDA COMA SKIP TO JSB SKPTO COMMA. SZA,RSS END OF LINE? JMP IC0 YES CHANGE ALL. INB GET JSB LOADB NEXT BYTE SZA,RSS END OF LINE? JMP ERR4 YES MISSING PARAMETER. CPA .A WANT LDA .+1 REG A CPA .B LDA .+2 REG B CPA .Q LDA .+4 REG Q CPA .O LDA .11 REG O CPA .E LDA .12 REG E CPA .P LDA .+9 REG P CPA .S JMP IC2 ONE OF SCRATCH PADS CPA .F JMP IC1 FLAG OR F IC3 STA TMXP00 SAVE A. ADA .M32 A LEGAL ONE SSA,RSS FOUND? JMP ERR3 NO ILLEGAL PARAMETER LDA TMP00 IC0 JSB CHNGE JMP INCMD * * FLAG OR F * IC1 INB CHECK JSB LOADB NEXT BYTE SZA END OF LINE? JMP *+3 LDA .+3 YES THEN JMP IC0 F. CPA .L NO, =L? RSS JMP *-4 NO F LDA .+10 ELSE JMP IC0 FLAG. * * ONE OF SCRATCH PADS * IC2 INB CHECK NEXT JSB LOADB BYTE. SZA,RSS END OF LINE? JMP ERR3 YES ERROR. CPA B61 LDA .+5 S1 CPA B62 LDA .+6 S2 CPA B63 LDA .+7 S3 CPA B64 LDA .+8 S4 JMP IC3 * * THIS ROUTINE CONTROLS REGISTER MODIFICATION * * CALLING SEQUENCE: * LDA REG# (=0 => ALL) * JSB CHNGE * CHNGE NOP CCB SET STB CCNT COUNT. SZA WANT ALL? JMP *+4 LDA .M12 YES RESET STA CCNT COUNT CLA,INA START WITH A. STA TMP60 SAVE REG#. C1 ALS MULT. ALS ALS BY ADA TMP60 9. ADA RHEAD COMPUTE RAL BYTE ADDRESS INA AND SAVE IN LDB 0 B-REG. STB TMP60+3 LDA TMP60 PICK ADA RGSTR ADA .-1 STA TMP60+1 UP LDA 0,I JSB ASCII CURRENT CONTENTS. LDA .-10 IF ADA TMP60 1 BIT REG SSA JMP C3 THEN LDB TMP60+3 SHOW LDA .-5 STA TMP60+4 LDA BLANK ONLY JSB STORB ISZ TMP60+4 1 JMP *-3 CHAR. INB COMPUTE C3 BRS START ADB .-6 OF STB OBUF PRINT BUFUR. C0 JSB MSOUT OUTPUT OBUF BSS 1 CURRENT DEF .+9 CONT6ENTS JSB RDTTY AND DEF LINE DEF .M80 GET NEW. LDB ALINE CHECK RBL JSB LOADB BYTE CPA .ASTR ="*"? JMP C2 YES DONT CHANGE. CLA NO GET JSB CNVRT NEW VALUE. SOS LEGAL? JMP *+5 JSB ERROR NO DEF MES07 ILLEGAL DEF .11 INPUT JMP C0 TRY AGAIN LDB .-10 IS THIS ADB TMP60 A SSB ONE BIT REG? JMP *+2 AND .+1 YES USE BIT 0 STA TMP60+1,I STORE RESULT. C2 ISZ TMP60 BUMP REG #. LDA TMP60 ISZ CCNT FINISHED? JMP C1 NO GO BACK. JMP CHNGE,I YES EXIT * TMP60 BSS 5 RHEAD DEF *-5 ASC 9,A = <= _ ASC 9,B = <= _ ASC 9,F = <= _ ASC 9 Q = <= _ ASC 9,S1 = <= _ ASC 9,S2 = <= _ ASC 9,S3 = <= _ ASC 9,S4 = <= _ ASC 9,P = <= _ ASC 9,FLAG = <= _ ASC 9,O = <= _ ASC 9,E = <= _ RGSTR DEF *+1 REG NOP REP 11 NOP * * THIS MODULE ALLOWS USER TO RELOCATE * LOAD/DUMP ROUTINE STARTING AT GIVEN * ADDRESS. * * COMMAND FORMAT: * MOVE, * IMOVE CLA GET OCTAL JSB GTPAR ADDRESS. LDA PRAM PARAMETER SZA,RSS PRESENT? JMP ERR4 NO MISSING PARAMETER. LDA PRAM+1 GET JSB MOVE PARAMETER & PERFORM JMP INCMD MOVE. * * L O A D / D U M P R O U T I N E * RESET OCT 371,174400 CR IOR F LOWER 8 OCT 173,174400 F CL IOR F UPPER 8 OCT 170,134406 F CR ADD F 6 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,127457 T LWF R1 * OCT 151,170757 F RRS IOR M RW ) OCT 176,064777 F DEC F OCT 345,174377 T IOR P * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,172377 T IOR S4 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,172777 T IOR S3 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,173377 T IOR S2 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,173777 T IOR S1 * OCT 151,170757 F RRS IOR M RW OCT 176,064777 F DEC F OCT 345,175377 T IOR Q * OCT 151,170757 F RRS IOR M RW OCT 345,174777 T IOR F * LJMP OCT 375,027400 JMP BREAK ADDR. * * REGISTER DUMP ROUTINE * DUMP OCT 377,170716 IOR M CW UNC OCT 377,177777 IOR OCT 151,171377 F RRS IOR T * ADREG OCT 371,174400 CR IOR F DUMP OCT 173,174400 F CL IOR F ADDRESS * OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 111,171377 Q RRS IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 367,171377 S1 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 365,171377 S2 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 363,171377 S3 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 361,171377 S4 IOR T * OCT 176,114777 F INC F OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 375,171377 P IOR T * OCT 176,114777 F INC F OCT 377,125037 LWF Q L1 OCT 151,170716 F RRS IOR M CW UNC OCT 377,177777 IOR OCT 111,171377 Q RRS IOR T OCT 170,053407 F CR SUB S1 7 OCT 377,170757 IOR M RW PRTRN OCT 371,175000 CR IOR Q P-REG OCT 133,174000 Q CL IOR P RETURN OCT 345,174777 T IOR F * OCT 367,170716 S1 IOR M CW UNC OCT 377,177777 IOR OCT 151,171377 F RRS IOR T OCT 371,172654 CR IOR S3 254B OCT 363,170757 S3 IOR M RW OCT 345,174775 T IOR F EOP OCT 377,177777 IOR * * WRITE COMMAND PROCESSOR MODULE * * THIS MODULE WRITES THE USERS * MICROCODE TO WCS. * * IWRIT CLA,INA GET DECIMAL JSB GTPAR PARAMETERS. LDA PRAM ANY PARAMETERS SZA,RSS FOUND? JMP ERR4 NO, ERROR. LDA PRAM+1 PICK UP PARAMETER JSB WRITE GO WRITE JMP INCMD * WRITE NOP STA WCS SAVE L.U. LDB HBASE FIND WT1 LDA 1,I SZA GOOD JMP WT0 INB JMP WT1 DATA. WT0 SSA IF NEGATIVE JMP WRITE,I WE'RE THROUGH. STA TMP90 SAVE COUNT STB TMP90+1 SAVE ADDRESS CMA,INA FIX COUNT TO STA WTCNT INDICATE # OF 2100 WORDS. LDA HBASE COMPUTE CMA,INA RELATIVE ADA TMP90+1 ADDRESS. ALS DOUBLE. ADA BBASE FIND IN BUFUR STA WTBUF SAVE ADDRESS. JSB EXEC WRITE DEF *+5 DEF .+2 CODE DEF WCS TO WTBUF NOP DEF WTCNT WCS LDB TMP90 COMPUTE BRS NEXT ADB TMP90+1 HEADER ADDRESS JMP WT1 AND REPEAT. * d WTCNT BSS 1 WCS NOP TMP90 BSS 2 * * GARBAGE DETECTION ROUTINE * GRBGE NOP STA TMP99 SAVE ADDRESS ADA HBASE IS LDA 0,I IT SZA GARBAGE? JMP EXIT1 NO,TAKE GOOD EXIT LDB TMP99 YES BLS PUT ADB BBASE CORRECT LDA TMP99 ADDRESS ALF,ALF IN STA 1,I BUFUR JSB MSOUT OUTPUT DEF GARB $ $ $ FOR GRB1 DEF .+3 CONTENTS JMP GRBGE,I GARBAGE RETURN EXIT1 LDA TMP99 ISZ GRBGE JMP GRBGE,I GARB ASC 5,$ $ $ <= _ TMP99 BSS 1 * * THIS ROUTINE CONVERTS OCTAL TO * 6 DIGIT ASCII. * B-REG HAS BYTE ADDRESS OF WHERE TO * STORE. * A-REG HAS NUMBER. * ASCII NOP STA A.000 SAVE NUMBER CLE,ELA SIGN LDA B60 SEZ SET INA YES JSB STORB PUT IN CORRECT BYTE. LDA A.000 MASK ALF OF AND .+7 NEXT 3 BITS ADA B60 MAKE ASCII. JSB STORB STORE. LDA A.000 MASK ALF,ALF OFF RAR NEXT AND .+7 BYTES ADA B60 IN JSB STORB SUCCESSION LDA A.000 AND ALF,ALF STORE RAL,RAL AS AND .+7 CREATED ADA B60 IN JSB STORB BUFUR LDA A.000 INDICATED RAR,RAR RAR AND .+7 ADA B60 JSB STORB LDA A.000 AND .+7 ADA B60 JSB STORB JMP ASCII,I RETURN A.000 BSS 1 B60 OCT 60 * * SKPTO UTILITY ROUTINE * * CALLING SEQUENCE: * LDA CHARACTER TO FIND * LDB BYTE ADDRESS START * JSB SKPTO * * CHARACTER IN A IS A FORM 0C IF 1ST BYTE=0 * 2ND BYTE=CHAR * * BYTE IN STRING =0 IMPLIES END OF LINE. * ON RETURN A=0 IMPLIES EOL REACHNLHED * SKPTO NOP STA CHAR SAVE TEST CHAR. JSB LOADB LOAD BUFUR CHAR. SZA,RSS =0? JMP SKPTO,I YES EOL.RETURN CPA CHAR = TEST CHAR JMP SKPTO,I YES RETURN INB NO,GO CHECK JMP SKPTO+2 NEXT CHAR. * CHAR BSS 1 * * SKIP UTILITY ROUTINE- SKIPS OVER CONSECUTIVE TEST CHARACTERS * * FORMAT SAME AS SKPTO * SKIP NOP STA CHAR SAVE TEST CHAR. JSB LOADB LOAD NEXT BUFFUR CHAR. SZA,RSS =0? JMP SKIP,I YES EOL RETURN. CPA CHAR =TEST CHAR? RSS JMP SKIP,I NO,RETURN. INB YES GO CHECK JMP SKIP+2 NEXT CHAR. * * LOAD BYTE ROUTINE * * CALLING SEQUENCE; * LDB BYTE ADRES * JSB LOADB * BYTE RETURNED IN A IN FORM 0-BYTE * LOADB NOP STB TMP1 SAVE BYTE ADDRESS SLB WANTS JMP LB0 RIGHT BYTE BRS GET WORD ADDRESS. SSB '1' LEFT IN SIGN BIT? JSB FIX YES. GET RID OF IT. LDA 1,I PICK UP WORD. AND HIMSK GET LEFT BYTE ALF,ALF SHIFT LOW. JMP LB1 EXIT. LB0 BRS GET WORD ADDRESS. SSB '1' LEFT IN SIGN BIT? JSB FIX YES. GET RID OF IT. LDA 1,I GET WORD AND LOMSK GET RIGHT BYTE LB1 LDB TMP1 RESET B-REG. JMP LOADB,I EXIT * TMP1 BSS 1 HIMSK OCT 177400 ******* RTE MODIFICATION ******* LOMSK OCT 377 ******* RTE MODIFICATION ******* oN* * STORE BYTE ROUTINE * * CALLING SEQUENCE LDA BYTE * LDB BYTE ADDRESS * JSB STORB * * ON EXIT BYTE ADDRESS BUMPED AUTOMATICALLY. * STORB NOP AND LOMSK ISOLATE BYTE AND STA TMP1 SAVE STB TMP2 SAVE BYTE ADDRESS SLB BYTE IS JMP SLOW BRS GET WORD ADDRESS. SSB '1' LEFT IN SIGN BIT? JSB FIX YES. GET RID OF IT. LDA 1,I PICK UP WORD AND LOMSK SAVE LOW BYTE ALF,ALF PUT IOR TMP1 IN ALF,ALF CURRENT BYTE. STA 1,I STORE. LDB TMP2 BUMP INB BYTE ADDRESS JMP STORB,I EXIT. SLOW BRS GET WORD ADDRESS. SSB '1' LEFT IN SIGN BIT? JSB FIX YES. GET RID OF IT. LDA 1,I PICK UP WORD AND HIMSK SAVE HIGH BYTE IOR TMP1 PUT IN STA 1,I CURRENT BYTE. JMP SLOW-3 GO EXIT * TMP2 BSS 1 * * 'FIX' GETS RID OF '1' IN SIGN BIT OF 'B' REG * WITHOUT DISTURBING CONTENTS OF E REG. * THIS IS FOR A BUG FIX. * FIX NOP STA SAV37 SAVE 'A' REG. LDA 1 PUT 'B' INTO 'A' REG. AND =B077777 GET RID OF SIGN BIT. STA 1 PUT RESULT BACK INTO 'B'. LDA SAV37 RESTORE 'A' REG. JMP FIX,I RETURN. SAV37 NOP * * MICRO CODE MOVE ROUTINE * * CALLING SEQUENCE: * LDA ADRES * JSB MOVE * * ON ENTRY A= ORIGIN ADDRESS * CAUSES MICORLOAD/DUMP ROUTINE TO BE LOCATED * STARTING AT ADDRESS GIVEN * * ERROR OCCURS WHEN ORIGIN IS TOO HIGH--COMMAND ABORTED * * MOVE NOP AND LOMSK LDB 0 SAVE ORIGIN IN B-REG. ADA LDLEN ADD THE LOAD/DUMP LENGTH. CMA,INA WILL ADA B400 IT SSA,RSS FIT AT THIS ORIGIN? JMP *+5 JSB ERROR NO,ERROR I DEF MES10 ILLEGAL DEF .+10 JMP INCMD GO GET NEXT COMMAND. STB ORGIN SET ORIGIN. BLF,BLF SHIFT HIGH LDA LDLEN SET CMA,INA UP STA MCNT COUNT LDA ADLD GET STA TMP1 ADDRESS OF LOAD/DUMP ROUTINE. MV0 LDA TMP1,I PICK UP FIRST AND LOMSK WORD. CLEAR ADDRESS BITS. IOR 1 PUT IN STA TMP1,I NEW ADDRESS. ISZ TMP1 POINT TO ISZ TMP1 NEXT WCS WORD. ADB B400 ISZ MCNT FINISHED? JMP MV0 NO,GO FIX NEXT LDA RESET FIX AND HIMSK JMP ALF,ALF TO SWP START LDA SJMP2 OF AND HIMSK REG IOR 1 RESTORE STA SJMP2 ROUTINE LDA DUMP FIX AND HIMSK ALF,ALF BREAK SWP LDA MJMP2 POINT AND HIMSK IOR 1 INSTRUCTION STA MJMP2 CLA CLEAR PREVIOUS BREAK, IF ANY. JSB BREAK JMP MOVE,I YES,EXIT * LDLEN OCT 110 B400 OCT 400 MCNT BSS 1 ORGIN BSS 1 MES10 ASC 10,ILLEGAL MOVE ADDRESS ADLD DEF RESET MORG OCT 270 LJMP1 EQU LJMP LJMP2 EQU LJMP+1 SJMP1 OCT 375 SJMP2 OCT 27674 * * F TYPE CONVERSION ROUTINE * * ROUTINE CONVERTS INPUT OF TYPE * * FD1-D2-D3-D4-D5-D6 * * TO A 24 BIT NUMBER WHERE D1 SPECIFIES * THE MOST SIGIFIGANT 3BITS D2 THE NEXT * 4 BITS D3 THE NEXT 5 BITS AND D4,D5,D6 * THE NEXT 4 BITS RESPECTIVELY. * * RESULTS RETURNED IN A AND B REGISTERS * * CALLING SEQUENCE: * LDB BYTE ADRESS * JSB FCONV * FCONV NOP CLA CONVERT JSB CNVRT R-BUS FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT. AND .+7 TAKE ONLY 3-BITS. STA LOWRD SAVE. INB CONVERT CLA S-BUS JSB CNVRT FIELD. SOC LEGAL? JMP FCOONV,I NO, EXIT AND B17 TAKE ONLY 4-BITS. ALF,ALF SHIF TO HIGH 4 BITS. ALF IOR LOWRD OR IN RBUS FIELD ALF POSITION IN LOWER 7 & STA LOWRD SAVE. INB CONVERT CLA FUNCTION JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT. AND B37 TAKE ONLY 5-BITS. ALF,ALF SHIFT TO ALF,RAR HIGH 5 BITS. IOR LOWRD OR IN R&S BUS. ALF,RAL POSITION LOWER 12 & STA LOWRD SAVE. INB CONVERT CLA STORE JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT AND B17 TAKE ONLY 4 BITS. ALF,ALF SHIFT TO ALF HIGH 4 BITS. IOR LOWRD POSITION ALF IN CORRECT ORDER & STA LOWRD SAVE. INB CONVERT CLA SPECIAL JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO, EXIT. AND B17 TAKE ONLY 4 BITS. ALF,ALF POSITION TO ALF HIGH 4. STA HIWRD SAVE. INB CONVERT CLA SKIP JSB CNVRT FIELD. SOC LEGAL? JMP FCONV,I NO,EXIT. AND B17 TAKE ONLY 4 BITS ALF,ALF SHIFT TO HIGH 8. IOR HIWRD OR IN SPECIAL. LDB 0 PUT IN B LDA LOWRD PUT REST IN A RRL 8 POSITION TO FORM WCS WORD. JMP FCONV,I RETURN. * LOWRD BSS 1 HIWRD BSS 1 B17 OCT 17 ******* RTE MODIFICATION ******* B37 OCT 37 ******* RTE MODIFICATION * * MESSAGE PRINT ROUTINE * * CALLING SEQUENCE: * JSB MSOUT (ERROR) * DEF BUFUR * DEF LENGTH * * MESSAGE IS SENT TO TTY * MSOUT NOP ERROR EQU MSOUT LDA MSOUT,I PICK UP STA BUF BUFUR ADDRESS ISaZ MSOUT PICK LDA MSOUT,I UP STA LONG BUFUR LENGTH ISZ MSOUT SET RETURN ADDRESS JSB EXEC CALL DEF *+5 EXEC DEF .+2 TO DEF .+1 PERFORM BUF NOP I/O LONG NOP WITH WAIT. JMP MSOUT,I EXIT * * THIS MODULE ALLOWS USER TO SET BREAK-POINTS * IN HIS MICROCODE. HE IS ALLOWED TO PLACE THEM * ANYWHERE EXCEPT IN LOCATIONS TO BE OCCUPIED * BY THE LOAD/DUMP ROUTINE. * * COMMAND FORMAT: * BREAK,
IF
=0 BREAK-POINT * IS REMOVED. IBRAK CLA JSB GTPAR GET PARAMETER. LDA PRAM SZA FOUND? JMP *+5 ERR4 JSB ERROR NO, DEF MES04 PARAMETER DEF .+9 MISSING. JMP INCMD GO GET NEXT COMMAND LDA PRAM+1 PICK UP AND LOMSK PARAMETER MASK OFF UPPER BITS JSB BREAK CALL BREAK PROCEDURE JMP INCMD GET NEXT COMMAND. * BREAK NOP LDB BFLAG WAS THERE A PREVIOUS SZB BREAK COMMAND? JSB BFIX YES GO FIX IT. SZA,RSS CLEAR BREAK? JMP BREAK,I ALREADY DONE EXIT. CCB SET BREAK STB BFLAG FLAG FOR NEXT TIME. STA TMP70 SAVE ADDRESS. LDA ORGIN GET CURRENT START OF LOAD/DUMP. LDB 0 ROUTINE ADB LDLEN AND UPPER BOUND. JSB LCHEK CHECK WHETHER ADDRESS DEF TMP70 IS INSIDE. SSA JMP *+5 JSB ERROR YES DEF MES05 ILLEGAL DEF .11 ADDRESS. JMP BREAK,I EXIT. LDA TMP70 COMPUTE ALS ACTUAL ADA BBASE BREAK ADDRESS STA BKADR AND SAVE. LDA MDLE CMA,INA JMP IS ADA LOMSK SSA IN JMP *+4 CLA MODULE CLB 0 JMP B0 ADA =B400 SSA JMP *+4 LDA .+2 MODULE #^CLB 1 JMP B0 ADA =B400 SSA JMP *+4 CLA MODULE LDB =B10000 2 JMP B0 LDA .+2 MODULE LDB =B10000 3 B0 STA MASK1 SAVE STB MASK2 MASKS LDB BKADR SAVE LDA 1,I MICRO STA BK1 INSTRUCTION LDA TMP70 GET ALF,ALF ADDRESS IOR MJMP1 OR IN JMP IOR MASK1 OR IN MASK STA 1,I STORE UPPER PART OF JUMP. INB POINT TO LOWER HALF. LDA 1,I SAVE STA BK2 IT LDA MJMP2 GET LOWER PART OF JUMP IOR MASK2 OR IN MASK. STA 1,I STORE. JMP BREAK,I EXIT. * * BREAK REPAIR UTILITY * BFIX NOP STA BFLAG LDB BKADR GET PREVIOUS BREAK ADDRESS. LDA BK1 AND STA 1,I RESTORE INB OLD LDA BK2 INST ACTION. STA 1,I LDA BFLAG JMP BFIX,I EXIT. * BFLAG NOP 1 MASK1 BSS 1 MASK2 BSS 1 BK1 BSS 1 BK2 BSS 1 BKADR BSS 1 MJMP1 OCT 375 MJMP2 OCT 27725 TO BE MODIFIED BY MOVE ROUTINE. TMP70 BSS 1 MES04 ASC 9,MISSING PARAMETER MES05 ASC 11,ILLEGAL BREAK ADDRESS * * LCHECK CHECKS TO SEE WHETHER A GIVEN VALUE * IS INSIDE OR OUTSIDE A GIVEN RANGE. * * CALLING SEQUENCE: LDA LOWER BOUND > 0 * LDB UPPER BOUND > 0 * JSB LCHECK * DEF VALUE * ON RETURN: A<0 => OUTSIDE A>=0 :=INSIDE * LCHEK NOP CMA,INA NEGATE A AND STA L.000 SAVE. LDA LCHEK,I YES EXIT WITH A<0. ISZ LCHEK LDA 0,I STA L.001 SAVE IT. ADA L.000 < LOWER SSA BOUND? JMP LCHEK,I YES EXIT WITH A<0 LDA L.001 GET VALUE CMA ADA 1 ADD TO -VALUE. JMP LCHEK,I EXIT. * L.000 BSS 1 L.001 BSS 1 * * PREPARE COMMAND MODULE * * THIS MODULE PREPARES PROM MASK TAwPES FOR * USE IN PROGRAMMING PROM CHIPS. * * COMMAND FORMAT: * PREPARE[,UNIT #] DEFAULT=4 * IPREP CLA,INA JSB GTPAR GET UNIT LDA PRAM #. SZA,RSS ONE GIVEN? JMP *+3 LDA PRAM+1 YES GET IT. RSS LDA .+4 NO USE DEFAULT. STA PCH SAVE. CPA .+2 =DISC? RSS JMP *+5 JSB ERROR YES DEF MES03 ERROR DEF .+10 JMP INCMD GO GET NEXT COMMAND. CLA COMPUTE JSB CHECK CHECKSUM. LDB ABF3 CONVERT RBL TO JSB DECML ASCII & SAVE. JSB SPACE JSB LEADR JSB MSOUT OUTPUT DEF PHEAD HEAD- DEF .15 ING. JSB SPACE JSB MSOUT ASK FOR DEF PMES1 3 LINES OF DEF .17 I.D. INFO. JSB MSOUT GET DEF LINE1 LINE1 DEF .+4 JSB RDTTY FROM DEF PL1 DEF .M72 USER. CMB,INB STB PL1L JSB PUNCH PUNCH DEF PL1 DEF PL1L IT. JSB MSOUT GET DEF LINE2 DEF .+4 LINE 2 JSB RDTTY DEF PL2 FROM DEF .M72 CMB,INB USER STB PL2L JSB PUNCH AND DEF PL2 DEF PL2L PUNCH IT. JSB MSOUT GET DEF LINE3 DEF .+4 LINE 3 JSB RDTTY DEF PL3 FROM DEF .M72 CMB,INB USER STB PL3L JSB PUNCH AND DEF PL3 DEF PL3L PUNCH IT JSB PUNCH PUNCH DEF BF3 CHECK- DEF .-3 SUM. LDA PTAB0 SET PARAMETER STA PTAB TABL HEAD. CLA GET SHIFT CODE LDB .+8 TO P2 JSB PROC PROCESS BITS 23-20. JSB LEADR PUNCH TRAILER. JSB SPACE LDA PTAB,I LAST SZA TAPE? JMP *+5 JSB MSOUT YES  DEF PMES2 PRINT DEF .17 END MESSAGE JMP INCMD GO GET NEXT COMMAND. JSB MSOUT PRINT DEF PMES3 NEXT DEF .12 TAPE LDA PTAB TO STA *+2 BE JSB MSOUT GENERATED. NOP DEF .+3 ISZ PTAB POINT ISZ PTAB TO NEXT ISZ PTAB SHIFTER LDA PTAB,I CODE IN TABLE JSB CHECK COMPUTE CHECK-SUM. LDB ABF3 CONVERT RBL TO ASCII JSB DECML AND SAVE. ISZ PTAB JSB SPACE JSB MSOUT ANY DEF PMES4 CHANGE DEF .14 OF JSB MSOUT I.D. DEF LN1 INFO DEF .+4 IN JSB RDTTY LINE DEF LINE # DEF .-3 1? LDB ALINE RBL JSB LOADB CPA .N JMP P3 JSB MSOUT YES DEF LINE1 GET DEF .+4 JSB RDTTY NEW DEF PL1 DEF .M72 LINE. CMB,INB STB PL1L P3 JSB LEADR PUNCH JSB PUNCH DEF PL1 IT. DEF PL1L JSB MSOUT ANY DEF LN2 DEF .+4 CHANGE JSB RDTTY DEF LINE OF DEF .-3 I.D. LDB ALINE RBL INFO JSB LOADB IN CPA .N LINE 2 JMP P5 JSB MSOUT GET DEF LINE2 DEF .+4 NEW JSB RDTTY DEF PL2 LINE DEF .M72 CMB,INB STB PL2L P5 JSB PUNCH PUNCH DEF PL2 DEF PL2L IT. JSB MSOUT ANY DEF LN3 DEF .+4 CHANGE JSB RDTTY DEF LINE OF DEF .-3 LDB ALINE I.D. INFO RBL JSB LOADB IN LINE3. CPA .N JMP P9 JSB MSOUT YES DEF LINE3 DEF .+4 GET JSB RDTTY DEF PL3 NEW DEF .M72 CMB,INB LINE STB PL3L P9 JSB PUNCH /D AND DEF PL3 DEF PL3L PUNCH IT. JSB PUNCH PUNCH DEF BF3 CHECK- DEF .-3 SUM CLA SET A-REG. LDB PTAB,I PICK UP B-REG FLAG. ISZ PTAB BUMP POINTER JMP P2 GO PROCESS. * * PROCESS ROUTINE * PROC NOP STB TMP90+1 SAVE MASK FLAG CLB STB CKSUM CLEAR CHECKSUM. PR1 STA TMP90 SAVE A-REG. LDB TMP90+1 JSB SETUP SET UP DEF BUFR1 BUFR1 FOR OUTPUT. JSB PUNCH START DEF BUFR1 PUNCH OF DEF .M48 BUFR1. LDA TMP90 CPA .248 FINISHED? JMP PROC,I YES,RETURN. ADA .+8 NO, BUMP A BY 8. STA TMP90 SAVE LDB TMP90+1 LOAD MASK FLAG. JSB SETUP GO SETUP. DEF BUFR2 BUFR2 FOR OUTPUT. JSB PUNCH START DEF BUFR2 PUNCH OF DEF .M48 BUFR2 LDA TMP90 CPA .248 FINISHED? JMP PROC,I YES RETURN ADA .+8 NO BUMP A BY 8 JMP PR1 GO DO BUFR1 * * BUFUR SET UP ROUTINE * SETUP NOP STA TMP80 SAVE ADRS. STB TMP80+1 SAVE MASK FLAG LDA SETUP,I GET STA BUFAD BUFUR ADRS. ISZ SETUP SET RETURN RAL MAKE BUFUR ADRS STA BADR1 BYTE ADRS AND SAVE LDA TMP80 PUT IN START LDB BADR1 ASCII JSB DECML ADRS. LDA MINUS PUT JSB STORB IN "-". LDA TMP80 PUT IN END ADA .+7 ASCII JSB DECML ADRS. LDA BLANK PUT JSB STORB LDA BLANK 2 JSB STORB STB BADR1 BLANKS. LDA .-4 SET STA PCNT4 LDA .-8 POINTERS. STA PCNT8 LDA TMP80 COMPUTE ADA HBASE ADRES OF STA HEADR WCS LDA TMP80 RAL WORD AND ADA BBASE STA ADBUF SAVE. LDB TMP80+1 GET  CLE,ELB MASK FLAG RBR AND SEZ SET JMP *+5 SHIFT LDA LSL16 INSTRUCTION IOR 1 TO STA SETI PROCESS JMP PS4 CORRECT LDA LSR16 SET IOR 1 OF STA SETI BITS. PS4 LDA HEADR,I IS THIS SZA,RSS GOOD DATA? JMP PS3 NO, GO PUT IN DONT CARSS ('X'S) DLD ADBUF,I YES GET WCS WORD. SETI NOP SHIFT CUREENT 4 BITS TO UPPER A. STA TMP80+2 SACE. SSA BIT=1? JMP PS1 YES, GO SET HIGH. LDB BADR1 NO, LDA .L SET PS2 JSB STORB LOW(L) STB BADR1 SAVE BYTE ADRS. LDA TMP80+2 SHIFT NEXT RAL BIT INTO POSITION. ISZ PCNT4 WAS THAT LAST BUT? JMP SETI+1 NO, GO DO NEXT. LDA BLANK YES PUT JSB STORB A BLANK STB BADR1 LDA .-4 RESET 4 STA PCNT4 COUNTER. ISZ ADBUF POINT ISZ ADBUF TO NEXT WCS WORD ISZ HEADR BUMP HEADR ADRS. ISZ PCNT8 END OF LINE? JMP PS4 NO GO DO NEXT JMP SETUP,I YES EXIT. PS1 LDB BADR1 BIT IS 1? LDA .H STOR HIGH ISZ CKSUM BUMP CHECKSUM. JMP PS2 GO STORE HIGH. PS3 LDB BADR1 WOR IS DONT CARE. LDA .X STORE JSB STORB 4 ISZ PCNT4 X'S JMP PS3+1 LDA BLANK PUT IN JSB STORB BLANK. STB BADR1 LDA .-4 RESER 4 STA PCNT4 COUNTER. ISZ ADBUF POINT ISZ ADBUF TO NEXT ISZ HEADR WCS WORD. ISZ PCNT8 LAST WORD? JMP PS4 NO GO BACK JMP SETUP,I YES EXIT. * * DECIMAL ASCII CONVERSION ROUTINE * DECML NOP STA TMP50 STVE # STB TMP50+1 SAVE ADRES CLB DIV .100 GET 100TH DIGIT STB TMP50 SAVE REMAINDER ADA B60 MAKE ASCII DIGI<. LDB TMP50+1 JSB STORB STORE. STB TMP50+1 CLB GET LDA TMP50 DIV .+10 10TH DIGIT STB TMP50 AND ADA B60 DO LDB TMP50+1 SAME FOR JSB STORB 10TH AND LDA TMP50 1'S ADA B60 JSB STORB DIGIT JMP DECML,I EXIT. * * ASCII PUNCK ROUTINE * PUNCH NOP LDA PUNCH,I GET STA PBUF BUFUR ADRS. ISZ PUNCH LDA PUNCH,I GET STA PBUFL BUFUR LENGTH ADRES. ISZ PUNCH SET RETURN LDA PCH SET IOR =B20000 NO WAIT BIT STA PLUN JSB EXEC PUNCH DEF *+5 DEF .+2 RECORD DEF PLUN PBUF NOP PBUFL NOP JMP PUNCH,I EXIT * * CHECKSUM COMPUTE ROUTINE * CHECK NOP ADA PBASE GET CORRENT LDA 0,I SHIFT CONSTATN STA SHIFT FROM TABLE CLA INITIALIZE STA CKSUM CHECKSUM. LDB HBASE FIND CK0 LDA 1,I NEXT SZA HEADR JMP CK1 INB JMP *-4 CK1 SSA,RSS NEGATIVE? JMP *+3 LDA CKSUM YES CHECKSUM IN JMP CHECK,I A AND EXIT. STA TMP35 SAVE COUNT STB TMP35+1 SAVE ADRS. ARS HALVE COUNT. CMA,INA MAKE NEGATIVE. STA TMP35+2 AND SAVE LDA HBASE COMPUTE CMA,INA BUFUR ADA TMP35+1 ADRES ALS OF ADA BBASE ACTUAL STA BUFAD ADRS AND ASVE CK2 DLD BUFAD,I GET WCS WORD SHIFT NOP SHIF TO LOWER 4 BITS SLA =0? ISZ CKSUM NO, BUMP CKSUM RAR ROTATE TO NEXT BIT SLA =0? ISZ CKSUM NO, BUMP CKSUM RAR ROTATE TO ENXT BIT SLA =0? ISZ CKSUM NO, BUMP CKSUM. RAR ROTATE TO ENXT BIT SLA =0? ISZ CKSUM NO BUMP CKSUMV ISZ BUFAD POINT TO ENXT ISZ BUFAD WCS WORD. ISZ TMP35+2 FINISHED? JMP CK2 NO, GO BACK. LDB TMP35 YES COMPUTE BRS ADRES OF WHERE TO ADB TMP35+1 START OF NEXT SEARCH. JMP CK0 GO DO IT. TMP35 BSS 3 PBASE DEF *+1 LSR 4 NOP RRL 4 RRL 8 RRL 12 RRL 16 ABF3 DEF BF3 BF3 BSS 2 PHEAD ASC 15,GENERATION OF MASK BITS 23-20 PMES1 ASC 17,ENTER 3 LINES OF I.D. INFORMATION LINE1 ASC 4,LINE 1-_ PL1 BSS 36 PL1L BSS 1 LINE2 ASC 4,LINE 2-_ PL2 BSS 36 PL2L BSS 1 LINE3 ASC 4,LINE 3-_ PL3 BSS 36 PL3L BSS 1 PTAB0 DEF *+2 PTAB DEF *+1 ASC 3, 19-16 DEC 1 OCT 14 ASC 3, 15-12 DEC 2 OCT 100000 ASC 3, 11-08 DEC 3 OCT 100014 ASC 3, 07-04 DEC 4 OCT 100010 ASC 3, 03-00 DEC 5 OCT 100004 OCT 0 PMES2 ASC 17,GENERATION OF MASK TAPES COMPLETED PMES3 ASC 12,GENERATION OF MASK BITS_ PMES4 ASC 14,ANY CHANGE OF I.D. INFO. IN .100 DEC 100 LN1 ASC 4,LINE 1? LN2 ASC 4,LINE 2? LN3 ASC 4,LINE 3? .M72 DEC -72 .N OCT 116 BUFR1 BSS 60 .248 DEC 248 BUFR2 BSS 60 TMP80 BSS 3 BADR1 BSS 1 MINUS OCT 55 PCNT4 BSS 1 PCNT8 BSS 1 LSL16 LSL 16 LSR16 LSR 16 .H OCT 110 .X OCT 130 PLUN BSS 1 * * VERIFY COMMAND MODULE * * THIS MODULE VERIFES MASK TAPES PRODUCED BY THE * PREPARE COMMAND MODULE. * * COMMAND FORMAT: * VERIFY[,UNIT] * DEFAULT = 5 * IVER CLA,INA GET UNIT JSB GTPAR #. LDA PRAM ANY SZA,RSS GIVEN? JMP *+3 LDA PRAM+1 YES GET RSS IT. LDA .+5 NO USE DEFAULT. STA RDR SAVE. CPA .+2 =DISC? JMP ERR3 YES ERROR. LDA .-4 SET STA VCNT COUNT. VA0 JSB MSOUT ASK DEF VMES0 9eUSER DEF .+6 FOR JSB RDTTY TAPE DEF LINE NUMBER. DEF .M72 LDA LINE CLB,INB B=1 CPA .A23 #=2320? JMP VA1 YES GO PROCESS INB B=2 CPA .A19 #=1916? JMP VA1 YES GO PROCESS INB B=3 CPA .A15 #=1512? JMP VA1 GO PROCESS INB B=4 CPA .A11 #=1108? JMP VA1 GO PROCESS INB B=5 CPA .A07 #=0704? JMP VA1 GO PROCESS INB B=6 CPA .A03 #=0300? JMP VA1 GO PROCESS JSB ERROR ILLEGAL DEF VMES2 TAPE DEF .+7 #. JMP VA0 GO TRY AGAIN. VA1 STB TMP10 SAVE INDICATOR. V0 JSB AREAD READ DEF BUFR1 ASCII DEF .M72 RECORD JMP *-3 EOT RETURN. JSB MSOUT PRINT DEF BUFR1 I.D. DEF TLOG INFO. ISZ VCNT JMP V0 JSB SPACE SPACE. LDB ABF1 GET RBL ASCII CLA,INA CHECKSUM AND JSB CNVRT CONVERT TO BINARY. SOS LEGAL? JMP *+5 JSB ERROR NO DEF VMES3 WRONG DEF .+6 INPUT JMP INCMD GO GET NEXT COMMAND. STA CKSM1 SAVE CHECKSUM FROM TAPE. LDB TMP10 GET SHIFT ADB TBLE FLAG LDB 1,I STB TMP90+1 SAVE. CLA CLEAR STA CKSUM CKSUM. STA TMP90 V1 JSB AREAD READ DEF BUFR1 ASCII DEF .M48 RECORD JMP V1 LDA TMP90 SET LDB TMP90+1 UP JSB SETUP WHAT DEF BUFR0 WE HAVE INTERNALLY. JSB COMP COMPARE DEF BUFR0 RESULTS. DEF BUFR1 LDA TMP90 WAS CPA .248 THAT LAST RECORD? JMP V2 YES GO CHECK CHECKSUMS. ADA .+8 NO BUMP STA TMP90 ADDRESSS BY 8 JMP V1 & REPEAT. V2 LDA CKSUM CKSUMS CPA CKSM1 COMPARE? JMP V8 V3 JSB ERROR NO DEF MES06 CKSUM DEF .+7 ERROR JSB MSOUT ASK USER DEF VMES4 IF HE WOULD DEF .18 LIKE TAPE REPUNCHED? JSB RDTTY READ DEF LINE RESPONSE DEF .M72 LDB ALINE RESPONSE RBL IS JSB LOADB CPA .N JMP INCMD NO,GO GET NEXT COMMAND. V4 JSB MSOUT YES DEF VMES5 GET DEF .+9 PUNCH JSB RDTTY UNIT DEF LINE NUMBER. DEF .M72 LDB ALINE RBL CONVERT CLA,INA TO JSB CNVRT BINARY. SOS LEGAL? JMP *+5 JSB ERROR NO ILLEGAL DEF MES08 DIGIT DEF .11 JMP V4 TRY AGAIN STA PCH SAVE UNIT #. LDA .-3 SET STA VCNT COUNT JSB LEADR PUNCH LEADR. JSB MSOUT GET DEF PMES1 DEF .17 I.D. V5 JSB MSOUT DEF DASH INFORMATION. DEF .+1 JSB RDTTY READ DEF BUFR1 DEF .M72 IT CMB,INB STB TLOG JSB PUNCH PUNCH DEF BUFR1 IT. DEF TLOG ISZ VCNT DO 3 LINES. JMP V5 LDA TMP10 MAKE ADA .-1 PASS FOR JSB CHECK CKSUM. LDB ABF3 CONVERT RBL TO JSB DECML ASCII & SAVE. JSB PUNCH PUNCH DEF BF3 IT DEF .-3 LDB TMP90+1 GET SHIFTER. CLA & SET STA CKSUM CKSUM & STA TMP90 ADDRESS TO 0 V6 JSB SETUP GENERATE ASCII DEF BUFR1 RECORD. JSB PUNCH PUNCH DEF BUFR1 IT DEF .M48 LDA TMP90 LAST CPA .248 ONE? JMP V7 ADA .+8 NO STA TMP90 BUMP ADDRESS V6A JSB EXEC CHECK DE F *+5 DEF .13 DEF PCH DEF TLOG PUNCH STATUS DEF TLOG SSA JMP V6A LDA TMP90 LDB TMP90+1 RESET SHIFTER JMP V6 GO BACK V7 JSB LEADR YES PUNCH TRAILER JMP INCMD EXIIT. V8 JSB MSOUT TAPE DEF VMES7 VERIFIED DEF .+7 LDA B700 IOR RDR STA TLOG JSB EXEC DEF *+3 DEF .+3 DEF TLOG JMP INCMD EXIT * VCNT BSS 1 VMES0 ASC 6,TAPE NUMBER? .A23 ASC 1,23 .A19 ASC 1,19 .A15 ASC 1,15 .A11 ASC 1,11 .A07 ASC 1,07 .A03 ASC 1,03 VMES2 ASC 7,ILLEGAL TAPE # TLOG BSS 1 .M24 DEC -24 VMES4 ASC 18,WOULD YOU LIKE THIS TAPE REPUNCHED?_ ABF1 DEF BUFR1 VMES3 ASC 6,WRONG INPUT: CKSM1 BSS 1 TBLE DEF * OCT 10 OCT 14 OCT 100000 OCT 100014 OCT 100010 OCT 100004 BUFR0 BSS 60 VMES5 ASC 9,ENTER PUNCH UNIT # DASH ASC 1,-_ VMES7 ASC 7,TAPE VERIFIED! B700 OCT 700 * * COMPARE ROUTINE * COMP NOP LDA COMP,I GET STA S SOURCE ADDRESS ISZ COMP LDA COMP,I GET STA D DESTINATION ADDRESS ISZ COMP LDA .M24 SET STA VCNT COUNT CP0 LDA S,I COMPARE CPA D,I NEXT WORD. SAME RSS JMP V3 NO ERROR ISZ S YES ISZ D BUMP ISZ VCNT POINTERS FINISHED? JMP CP0 NO GO BACK JMP COMP,I YES EXIT S BSS 1 D BSS 1 * * ASCII READ ROUTINE * AREAD NOP LDA AREAD,I GET STA VBUF BUFUR ADDRESS ISZ AREAD LDA AREAD,I GET BUFUR STA VBUFL LENGTH ISZ AREAD SET LDA AREAD STA EOTX EOT EXIT ISZ AREAD SET NORMAL EXIT JSB EXEC READ DEF *+5 ASCII DEF .+1 DEF RDR RECORD VBUF BSS 1 VBUFL BSS 1 SZB,RSS IF EOT TAKE JMP EOTX,I EOT EXIT ELSZXTE CMB,INB STB TLOG JMP AREAD,I NORMAL EXIT EOTX BSS 1 .13 DEC 13 END MDE _ZASMB,L *R/T DRIVER <33> W.C.S.* HED **** RTE WRITABLE CONTROL STORE DRIVER ( DVR33 ) **** NAM DVR33,7 ENT I.33,C.33 SKP * INITIATION FOR READS AND WRITES SPC 2 I.33 NOP STA EQT12,I SAVE SELECT CODE IN EQT12 LDA EQT6,I GET REQUEST CONTROL WORD AND .3 SAVE ONLY BITS 0 TO 2 CPA .1 IF REQUEST IS FOR A READ JMP READ GO TO READ SECTION CPA .2 IF REQUEST IS FOR A WRITE JMP WRITE GO TO WRITE SECTION LDA .2 ELSE ILLEGAL REQUEST JMP I.33,I AND EXIT A = 2 LENG0 LDA .1 SET A TO 1 FOR OPERATION JMP I.33,I REJECTION AND EXIT SKP * WRITE INITIATION SECTION SPC 2 WRITE LDA EQT8,I GET ORIGINAL BUFFER LENGTH SZA,RSS IS REQUEST FOR ZERO CHARACTERS JMP LENG0 YES, EXIT ILLEGAL LENGTH REQUEST SSA,RSS IS REQUEST FOR 2100 WORDS JMP SETUP NO, THEN DOUBLE LENGTH AND NEGATE RETRN STA EQT11,I SAVE UPDATED REQUEST LENGTH SLA IF REQUEST IS ODD THEN GO TO JMP LENG0 ILLEGAL REQUEST ADA =B1000 MAKE POSITIVE IF LEGAL SSA IS REQUEST LENGTH WITHIN LIMITS JMP UPDAT NO, GO MODIFY TO MAX LDA EQT4,I LOAD DMA USAGE INDICATOR SSA,RSS IS DMA TO BE USED JMP WRIT2 NO, GO TO NON-DMA WRITE SPC 1 * WRITE WITH DMA SECTION SPC 2 LDB CHAN GET DMA CHANNEL JSB CONFG CONFIGURE DEF DMA06 STC DMA,C INSTRUCTION JSB CONFG CONFIGURE DEF DMA07 CLC SIX INSTRUCTION JSB CONFG CONFIGURE DEF DMA01 OTA DMA INSTRUCTION ADA .M4 SUBTRACT 4 FROM OTA DMA INSTR. ADB .M4 SUBTRACT 4 FROM DMA CHANNEL STA DMA03 SET OTA TQO INSTRUCTION #1 STA DMA05 SET OTA TQO INSTRUCTION #2 JSB CONFG CONFIGURE DEF DMA02 CLC TWO INSTRUCTION JSB CONFG CONFIGURE DEF DMA04 STC TWO INSTRUCTION LDB EQT12,I LOAD WCS CHANNEL NUMBER JSB CONFG CONFIGURE DEF WCS01 STF WCS INSTRUCTION JSB CONFG CONFIGURE DEF WCS02 CLF WCS INSTRUCTION JSB CONFG CONFIGURE FIRST CONTROL WORD DEF CW1 LOAD FIRST CONTROL WORD DMA01 OTA 0 OUTPUT FIRST CONTROL WORD DMA02 CLC 0 PREPARE DMA FOR 2ND CONTROL WORD LDA EQT7,I GET BUFFER ADDRESS DMA03 OTA 0 OUTPUT 2ND CONTROL WORD DMA04 STC 0 PREPARE DMA FOR 3RD WORD LDA EQT11,I GET BUFFER LENGTH DMA05 OTA 0 OUTPUT 3RD CONTROL WORD CLA SET A = 0 FOR OPERATION INITIATED DMA06 STC 0,C TURN ON DMA WCS01 STF 0 INITIALIZE WCS INTERFACE WCS02 CLF 0 START DATA TRANSFER JMP I.33,I RETURN UNTIL DMA INTERRUPT SKP 1 * WRITE WITHOUT DMA SECTION SPC 2 WRIT2 LDB EQT12,I GET WCS CHANNEL NUMBER JSB CONFG CONFIGURE DEF WCS.1 STF WCS INSTRUCTION JSB CONFG CONFIGURE DEF WCS.2 OTA WCS INSTRUCTION JSB CONFG CONFIGURE DEF WCS.3 OTB WCS INSTRUCTION JSB CONFG CONFIGURE DEF WCS.4 STC WCS INSTRUCTION WCS.1 STF 0 INITIALIZE WCS INTERFACE LDA EQT7,I GET BUFFER ADDRESS STA CONFG SAVE IN A UNUSED LOCATION LOOP1 LDA CONFG,I GET FIRST WORD OF TWO ISZ CONFG INCREMENT BUFFER POINTER LDB CONFG,I GET SECOND WORD TO B-REGISTER ISZ CONFG INCREMENT POINTER TO NEXT WORD WCS.2 OTA 0 OUTPUT 1ST WORD TO INTERFACE WCS.3 OTB 0 OUTPUT 2ND WORD TO INTERFACE WCS.4 STC 0 SET DEVICE TO DO STORE LDA EQT11,I GET BUFFER LENGTH ADA TWO ADD TWO TO COUNTER CPA ONE IS RESULT ONE JMP FIN YES, GO COMPLETE SZA,RSS IS RESULT ZERO JMP FIN YES, GO COMPLETE STA EQT11,I NO, SAVEaNEW COUNT JMP LOOP1 DO NEXT WORD SKP * INITIATOR READ SECTION SPC 2 READ LDB EQT12,I GET WCS CHANNEL NUMBER JSB CONFG CONFIGURE DEF WCS.5 STF WCS INSTRUCTION STA WCS.7 DO OTHER STF WCS INSTRUCTION ALSO JSB CONFG CONFIGURE DEF WCS.6 OTA WCS INSTRUCTION JSB CONFG CONFIGURE DEF WCS.8 LIA WCS INSTRUCTION JSB CONFG CONFIGURE DEF WCS.9 LIB WCS INSTRUCTION LDA EQT8,I GET LENGTH + WCS LOCATION SZA,RSS IF ZERO JMP ZEROS GO SET UP TO MAX VAL. AND M377 IF NOT SAVE WCS LOCATION ALF,ALF MOVE TO UPPER PART OF WORD STA EQT9,I SAVE START WCS ADDRESS LDA EQT8,I GET WHOLE WORD AGAIN ALF,ALF MOVE LENGTH TO LOWER LOCATIONS AND M377 SAVE ONLY THE REQUEST LENGTH SZA,RSS IS LENGTH FOR ZERO WORDS JMP LENG0 YES, ILLEGAL REQUEST STA EQT8,I SAVE NUMBER REQUESTED CMA,INA MAKE REQUEST NEGATIVE STA EQT11,I SAVE NUMBER OF WORDS TO BE READ LDA EQT7,I GET BUFFER ADDRESS STA CONFG SAVE IN UNUSED WORD LOOP2 LDA EQT9,I GET WCS STARTING ADDRESS WCS.5 STF 0 INITIALIZE WCS INTERFACE WCS.6 OTA 0 OUTPUT READ ADDRESS WCS.7 STF 0 RESET WCS INTERFACE WCS.8 LIA 0 GET UPPER WORD TO A-REGISTER WCS.9 LIB 0 GET LOWER WORD TO B-REGISTER IOR EQT9,I INSERT ADDRESS TO UPPER HALF STA CONFG,I STORE UPPER WORD IN BUFFER ISZ CONFG INCREMENT TO NEXT BUFFER WORD STB CONFG,I STORE LOWER WORD IN BUFFER ISZ CONFG INCREMENT TO NEXT BUFFER WORD LDA EQT9,I SET WCS ADDRESS TO NEXT WORD ADA =B400 ADD 400B TO MAKE NEXT ADDRESS STA EQT9,I SAVE NEW ADDRESS ISZ EQT11,I HAVE ALL WORDS BEEN READ JMP LOOP2 NO, DO NEXT WORD FIN LDB EQT8,I GET ORIGINAL BUFFER LENGTH  LDA .4 SET A TO 4 FOR IMMEDIATE COMPLETION JMP I.33,I EXIT SPC 3 ZEROS LDA =B-400 SET LENGTH FOR 400 WORDS STA EQT11,I SAVE REQUEST LENGTH COUNTER CMA,INA SET REQUEST LENGTH TO +400 STA EQT8,I SAVE IN ORIGINAL LENGTH WORD CLA SET STARTING ADDRESS TO ZERO STA EQT9,I SAVE STARTING ADDRESS JMP LOOP2-2 NOW GO DO MAX READ REQUEST SPC 3 CLEAR CLA SET TRANSMISSION STA EQT8,I LOG TO ZERO WORDS JMP DMA07 GO DO CLEAR OPERATION SPC 3 CONFG NOP LDA CONFG,I LOAD INSTRUCTION ADDRESS STA TEMP SAVE IN A TEMPORARY LOCATION LDA A,I LOAD INSTRUCTION TYPE AND UPPER REMOVE OLD SELECT CODE IOR B ADD IN NEW SELECT CODE STA TEMP,I STORE OVER OLD INSTRUCTION ISZ CONFG INCREMENT RETURN ADDREES JMP CONFG,I RETURN A = CONFIGURED INSTR. SPC 3 SETUP RAL DOUBLE WORD COUNT SSA IS SIGN NOW NEGATIVE JMP UPDAT YES, TOO LARGE GO CHANGE CMA,INA AND MAKE NEGATIVE JMP RETRN CONTINUE PROCESS SPC 3 UPDAT LDA =B-1000 SET REQUEST LENGTH STA EQT8,I TO MAXIUM VALUE JMP RETRN AND CONTINUE PROCESSING SKP * CONTINUATION SECTION FOR DMA WRITES SPC 2 C.33 NOP * LDB EQT1,I GET THE QUE WORD SZB IF NO QUE THEN JMP DMA07 DMA INTERRUPT * STB EQT15,I NO QUE, SO SPURIOUS ISZ C.33 INTERRUPT, TIME OUT ZERO JMP C.33,I AND CONTINUATION RETURN * DMA07 CLC 0 CLEAR DMA CHANNEL CLA SET A = 0 FOR COMPLETION LDB EQT8,I SET B = TRANSMISSION LOG JMP C.33,I EXIT SKP * CONSTANTS SECTION SPC 2 .1 OCT 1 .2 OCT 2 .3 OCT 3 .4 OCT 4 .M4 OCT -4 . EQU 1650B EQT1 EQU .+8 EQT4 EQU .+11 EQT6 EQU .+13 EQT7 EQU .+14 EQT8x# EQU .+15 EQT9 EQU .+16 EQT10 EQU .+17 EQT11 EQU .+18 EQT12 EQU .+82 EQT15 EQU .+85 A EQU 0 B EQU 1 ONE EQU .1 TWO EQU .2 CW1 OCT 120000 M377 OCT 377 UPPER OCT 177700 CHAN EQU 1673B TEMP BSS 1 END ASMB,L *R/T SUBROUTINE FMGR ERROR* HED < FMERR: OUTPUT FMGR ERROR CODE TO INDICATED LU# > * * NAM FMERR,7 * * ENT FMERR EXT EXEC,.ENTR * SKP * ********** PROGRAM DESCRIPTION ********** * * * THIS SUBROUTINE CAN BE CALLED AFTER A * "FILE MANAGER PROGRAM CALL" IN ORDER TO * OBTAIN THE ERROR CODE WHEN AN ERROR WAS * DETECTED DURING THE FMP CALL. * * - CALLING SEQUENCE: * * CALL FMERR(IP1,IP2) IN FORTRAN * * JSB FMERR IN ASSEMBLER * DEF *+3 * DEF IP1 * DEF IP2 * * THE PARAMETERS IP1 AND IP2 MUST BE SUPPLIED: * * IP1 = IERR, AS RETURNED FROM THE FMP CALL * * IP2 = LU#, THE LOGICAL UNIT OF THE DEVICE * WHERE THE ERROR MESSAGE MUST * BE OUTPUTTED * * * THE ERROR OUTPUT FORMAT IS: * * FMGR -NN * * WHERE -NN IS THE NEGATIVE ERROR CODE AS LISTED * IN APPENDIX B OF THE FMP PROGRAMMING AND * OPERATING MANUAL. OUTPUT OF POSITIVE CODES IS * SUPPRESSED BECAUSE THESE ARE NO ERROR MESSAGES. * SKP IERR NOP FMGR ERROR CODE LU NOP INDICATED LOGICAL UNIT * FMERR NOP ENTRY POINT JSB .ENTR PICK UP PARAMETERS DEF IERR PARAMETER POINTER * LDA LU GET ADDRESS OF LU# STA LULU AND MOVE INTO EXEC CALL * LDA IERR,I GET ERROR CODE CMA,SSA,INA CHANGE SIGN OF ERROR CODE JMP OUT IF NEGATIVE, JUMP OUT * CLB INITIATE B F $"OR DIVISION DIV .10 FIND BOTH DECIMAL DIGITS ALF,ALF PUT 1ST DIGIT IN 1ST ASCII CHAR ADA B PUT 2ND DIGIT IN 2ND ASCII CHAR ADA ASC00 CONVERT DIGITS TO ASCII CHARS STA IERRC AND SAVE IN BUFFER * JSB EXEC OUTPUT DEF *+5 MESSAGE DEF ICODE LULU NOP DEF IBUFR DEF IBUFL * OUT JMP FMERR,I -RETURN- * * A EQU 0 B EQU 1 * ASC00 ASC 1,00 ICODE DEC 2 IBUFR ASC 4, FMGR - IERRC NOP IBUFL DEC 5 .10 DEC 10 * * END Y$ >U 22682-18012 1608 SC 0222 SIO MACRO PROCESSOR              H0102 g HED MACROPROCESSOR ORG 2 JMP CFG NOP HLT 4,C HLT 5,C REP 57 NOP * * SIO CONVENTION * SPC 1 HLT 77B JMP 110B ORG 105B FWAM DEF KONEC+1 ORG 110B LDA B77 LDB B77+1 JMP B122 B77 OCT 77 OCT 100101 B117 OCT 117 OCT 100104 HLT 77B LDA B117 LDB B117+1 B122 STA HALT STB DRIV CCA VYHYB RSS JSB 102B,I CLA STA VYHYB JMP DSTRT,I SPC 2 * * DEFS * DWRCA DEF WORCA BTDF DEF TPTCA DBRDN DEF BRDN DPRJM DEF PRJM+4 DNUFP DEF NUFP DBLNK DEF BLANK DK1 DEF K1 DK5 DEF K5 DP2 DEF P2 DPGRD DEF PAGRD DBDCS DEF BADCS DSTRT DEF START DERR DEF ERR10 SPC 2 * * CONFIGURE SYSTEM MACROS * CFG LDA MDTC STA PSMCT STA FWAM LDA TJM STA NSMC HLT 1 JMP *-1 SPC 2 * * CONSTANTS * K1 DEC -1000 DEC -100,-10,-1 K5 DEC -10000 PLUS4 DEC 4 OSM DEC 8 SESTN DEC 16 C200 OCT 200 C240 OCT 240 HVEZD OCT 52 TECKA OCT 56 DKRT OCT 43 DLRT OCT 44 PROCT OCT 45 VYKR OCT 41 PET DEC 5 C220 OCT 220 PMASK OCT 377 LMASK OCT 177400 MEZER OCT 40 B7 OCT 7 TRI DEC 3 B17 OCT 17 MASKA OCT 52525 C11 OCT 11 P60 DEC 60 M57 DEC -57 P6 DEC 6 PISMA OCT 101 PISMZ OCT 132 CISL0 OCT 60 CISL9 OCT 71 M2 DEC -2 P12 DEC 12 P14 DEC 14 P58 DEC 58 PLS15 DEC 15 PLS31 DEC 31 ODDEL OCT 73 MACRT ASC 3,MACRO MENDT ASC 3,MEND ENDT ASC 3,END ANDZN OCT 46 CARKA OCT 54 T OCT 124 P OCT 120 S OCT 123 N OCT 116 HPMPT ASC 3,HPMPR CST ASC 1,CS ERT ASC 1,ER SPC 2 * * WORKING STORAGE & CONTROL BLOCKS * NSMC DEC 0 PSMCT DEF KONEC+1 WIN DEF * OCT 0 WOUT DEF * OCT 0 PUTCA NOP LASTI DEF * LW NOP LASTO DEF * DRIV NOP HALT NOP CH3 NOP READA NOP NUMP NOP NUMER NOP PIRySM NOP CISL NOP LNS NOP LNT NOP WLNTS NOP P1 NOP P2 NOP P3 NOP UK NOP UP NOP LP NOP A1 NOP VYSL NOP SP NOP FIRST NOP MDTC NOP CONTR NOP PPARM NOP SVA NOP PSPRM NOP HELPA NOP TEMPR NOP NR NOP POCZN NOP LLET NOP PAGRD ASC 3, PAGE CSTR NOP NOP ASC 1, # CPASK NOP LABFG NOP CRFG NOP SRVCA NOP CITAC NOP CTCZN NOP PZNSP NOP MDLC NOP PAGE NOP TAPE NOP DFALS DEF *+1 NOP NOP BOTCA DEF * OCT 52525 BOUTA DEF BOUT AIN DEF * OCT 52525 ADAIN DEF * TJM DEC 0 PRJM BSS 512 BRDN BSS 2 OCT 20040 BPNN BSS 2 OCT 20040 BOUT BSS 30 TFP DEC 0 NUFP BSS 4 BSS 60 WORCA DEF * OCT 52525 WORKA DEF BOUT OPCCA DEF * OCT 52525 DEF *+1 OPCOD BSS 3 MEZCA DEF * OCT 52525 DEF *+1 ASC 3, FORCA DEF * OCT 52525 FORMC DEF * TJMCA DEF * OCT 52525 PTJM DEF * TPTCA DEF * OCT 52525 DTPTC DEF * LABCA DEF * OCT 52525 DEF *+1 BSS 3 ADRCH DEF *+3 DEC -15 NOP NOP DEF ERR+1 DEF ERR2+1 DEF ERR3+1 DEF ERR4+1 DEF ERR5+1 DEF ERR6+1 DEF ERR7+1 DEF ERR81 DEF ERR9+1 DEF ERR10+1 DEF ERR11+1 DEF ERR12+1 DEF ERR14+1 DEF ERR15+1 HED MP SUBROUTINES SPC 2 * * MOVING CHARACTES UOAN COTROL ONE * PREP NOP PREP1 JSB RCHR ALF,ALF SSA JMP PREP2 ALF,ALF LDB NUMER CPB P60 JMP PREP1 INB STB NUMER JSB PUTCH JMP PREP1 PREP2 ALF JMP PREP,I SPC 2 * * READING A CHARACTER * RCHR NOP LDA WIN,I LDB WIN+1 SLB ALF,ALF AND PMASK RBL STB WIN+1 SLB ISZ WIN JMP RCHR,I SPC 2 * * WRITING A CHARACTER M * PUTCH NOP STA PUTCA LDB WOUT+1 SLB JMP PUTC1 LDA WOUT,I AND LMASK IOR PUTCA PUTC2 STA WOUT,I RBL STB WOUT+1 SLB ISZ WOUT LDA PUTCA JMP PUTCH,I PUTC1 ALF, ALF IOR MEZER JMP PUTC2 SPC 2 * * ACTIVATE A CONTROL BLOCK OF TEXT * FOR INPUT * CHING NOP CPB LASTI JMP CING LDA WIN STA LASTI,I ISZ LASTI LDA WIN+1 STA LASTI,I STB LASTI CING LDA 1,I STA WIN INB LDA 1,I STA WIN+1 JMP CHING,I SPC 2 * * ACTIVATE A CONTROL BLOCK OF TEXT * FOR OUTPUT * CHONG NOP CPB LASTO JMP CONG LDA WOUT STA LASTO,I ISZ LASTO LDA WOUT+1 STA LASTO,I STB LASTO CONG LDA 1,I STA WOUT INB LDA 1,I STA WOUT+1 JMP CHONG,I SPC 1 * * CHECK FOR SPACE IN MEMORY * WSPAC NOP LDB TPTCA CMB ADB SP SSB JMP DERR,I JMP WSPAC,I SPC 1 * * LEADER/TRAILER * BLANK NOP LDA M57 LDB P6 JSB 103B,I JMP BLANK,I SKP * * READING A LINE OF TEXT * ORG 2000B SPC 5 READ NOP JSB LINK DEF WORCA JSB CHONG CLA STA NUMER LDA SP CPA 106B JMP READ1 JMP READ3 READ2 JSB PREP STA READA AND B7 ADA SKADR JMP 0,I SKADR DEF *+1 JMP FORMP ERR JSB CHYBA JMP READ,I JMP ERR JMP ERR JMP ERR JMP ERR JMP ERR FORMP LDB SP ADB LUS4 LDA READA ALF AND B17 STA NUMP CMA,INA ADA 1,I SSA JMP ERR2 LDA NUMP ALF ADB 0 STB ADAIN JSB LINK DEF AIN JSB CHING JSB PREP CPA C11 RSS ERR2 JSB CHYBA READ3 LDB SP INB JSB CHING JMP READ2 READ1 LDA P60 LDB WORKA JSB 101B,I STA NUMER SZA,RSS JMP *+3 STA FIRST JMP READ,I LDA FIRST SZA,RSS JMP READ1 ISZ TAPE CLA STA FIRST INA STA LNS HLT 57B JMP READ1 SPC 2 * * IS A LETTER ? * LETT NOP STA PISM CMA ADA PISMA SSA,RSS JMP NEP LDA PISM CMA,INA ADA PISMZ SSA,RSS ISZ LETT NEP LDA PISM JMP LETT,I SPC 2 * * IS A DIGIT ? * DIGIT NOP STA CISL CMA ADA CISL0 SSA,RSS JMP NEC LDA CISL CMA,INA ADA CISL9 SSA,RSS JMP ANOC NEC ISZ DIGIT ANOC LDA CISL JMP DIGIT,I SPC 2 * * RESET A CONTROL BLOCK OF TEXT * LINK NOP LDB LINK,I INB LDA MASKA STA 1,I INB LDA 1,I ADB M2 STA 1,I ISZ LINK JMP LINK,I SPC 2 * * READ A CHARACTER, CHECK FOR * END-OF-TEXT CONDITION * CTIZN NOP LDA NR SZA,RSS JMP CTIZN,I ISZ CTIZN CMA,INA CMA STA NR JSB RCHR JMP CTIZN,I SPC 2 * * OUTPUT - LIST, PUNCH * PUNCH NOP LDA PUNCH STA LIST LDA CONTR SLA,RSS JMP *+4 LDA NUMER LDB BOUTA JSB 103B,I LDA CONTR SSA,RSS JMP PUN1 LDB 106B CPB SP JMP ERLST+3 RAR,SLA JMP ERLST+3 JMP P2P PUN1 LDA 106B CPA SP JMP LIST+1 LDA CONTR JMP PUN1-3 LIST NOP LDA CONTR RAL SSA,RSS JMP P2P JMP ERLST+3 ERLST NOP LDA ERLST STA LIST LDA WLNTS INA STA WLNTS CPA P58 RSS JMP P2Q CLA,INA STA WLNTS @ LDA PAGE ISZ PAGE JSB PREV STA CSTR STB CSTR+1 LDA TAPE JSB PREV STB CPASK LDA P14 LDB DPGRD JSB 102B,I CLA JSB 102B,I CLA JSB 102B,I P2Q LDA NUMER ADA P12 LDB DBRDN JSB 102B,I P2P LDA BRDN+2 STA BRDN STA BRDN+1 STA BPNN STA BPNN+1 JMP LIST,I SPC 2 * * INCREASE SOURCE LINE # * LISTS NOP LDA LNS ISZ LNS JSB PREV STA BRDN STB BRDN+1 JMP LISTS,I SPC 2 * * INCREASE TARGET LINE # * LISTT NOP LDA LNT ISZ LNT JSB PREV STA BPNN STB BPNN+1 JMP LISTT,I SPC 2 * * LEXICAL ANALYSIS * LXAN NOP LX1 LDA NUMER STA NR CLA STA LABFG STA CRFG JSB LINK DEF LABCA JSB CHONG JSB LINK DEF WORCA JSB CHING JSB CTIZN JMP ZNOVU CPA HVEZD RSS JMP POKR JSB LISTS JSB LISTT JSB PUNCH ZNOVU JSB READ JMP LX1 POKR CPA MEZER JMP VYNEC LXY JSB CTIID JMP LX4 ERR3 JSB CHYBA LX5 ISZ LABFG VYNEC JSB LINK DEF OPCCA JSB CHONG LX2 JSB CTIZN JMP LX6 CPA MEZER JMP LX2 JSB CTIID JMP LX3 ISZ CRFG JMP LXAN,I LX3 CPA MEZER JMP LXAN,I CPA CARKA JMP LXAN,I ERR4 JSB CHYBA LX4 CPA MEZER JMP LX5 ERR5 JSB CHYBA LX6 LDB LABFG SZB ERR6 JSB CHYBA JMP ZNOVU SPC 2 * * READING AN IDENTIFIER * CTIID NOP CLB STB POCZN JSB LETT RSS JMP CTI1 CPA TECKA JMP CTI1 CPA DKRT JMP CTI1 CPA DLRT JMP CTI1 CPA PROCT JMP CTI1 CPA VYKR JMP CTI1 ERR7 JSB CHYBA CTI1 JSB PUTCH ISZ POCZN LDA PET CPA POCZN % JMP MEZAT JSB CTIZN JMP CTI3 JSB LETT JMP *+2 JMP CTI1 JSB DIGIT JMP CTI1 CPA TECKA JMP CTI1 CPA DKRT JMP CTI1 CPA DLRT JMP CTI1 CPA PROCT JMP CTI1 CPA VYKR JMP CTI1 STA LLET LDA MEZER JSB CTI2 JMP CTI5 MEZAT JSB CTIZN ISZ CTIID STA LLET JMP CTIID,I CTI3 LDA MEZER JSB CTI2 CTI4 ISZ CTIID CTI5 LDA LLET JMP CTIID,I SPC 2 * * ADDING SPACES UP TO 5 CHARS * CTI2 NOP LDB PET CPB POCZN JMP CTI2,I JSB PUTCH ISZ POCZN JMP CTI2+1 SPC 2 * * COMPARE OPCOD WITH CALLING SEQUENCE * CMPR NOP LDB CMPR,I IZ CMPR LDA 1,I CPA OPCOD RSS JMP C1 INB LDA 1,I CPA OPCOD+1 RSS JMP C1 INB LDA 1,I XOR OPCOD+2 AND LMASK SZA C1 ISZ CMPR JMP CMPR,I SPC 2 * * PICK UP AN IDENTIFIER FROM A TABLE * FIND NOP LDB FIND,I ISZ FIND STB SRVCA CLA INB F1 STB POINT STA CITAC JSB CMPR POINT DEF * JMP F2 LDA CITAC CPA SRVCA,I JMP FIND,I INA LDB POINT ADB PLUS4 JMP F1 F2 LDB POINT LDA CITAC ISZ FIND JMP FIND,I SPC 2 * * MOVING CERTAIN # OF CHARACTERS * PREPS NOP LDA PREPS,I CMA,INA STA CTCZN ISZ PREPS PRP1 JSB RCHR JSB PUTCH ISZ CTCZN JMP PRP1 JMP PREPS,I SPC 2 * * READING AN ACTUA PARAMETR * CTISP NOP CLA CT6 STA PZNSP JSB CTIZN JMP CT2 CPA MEZER RSS JMP CT5 JSB PUTCH LDA PZNSP INA CPA PLS31 JMP CT4 JMP CT6 CT1 STA PZNSP JSB CTIZN JMP CT2 CT5 CPA ODDEL H JMP CT3 LDB PSPRM CPB PPARM RSS JMP CT7 CPA MEZER JMP CT3 CT7 JSB PUTCH LDA PZNSP INA CPA PLS31 RSS JMP CT1 CT4 JSB CTIZN JMP CT2 CPA ODDEL JMP CT3 JMP CT4 CT2 ISZ CRFG CT3 LDA C220 JSB PUTCH JMP CTISP,I SPC 2 * * CHECK END-OF-LINE & NO LABEL CONDITION * CHECK NOP LDA LABFG SZA JMP *+4 LDA CRFG SZA JMP CHECK,I ERR8 JSB CHYBA SPC 2 * * READING A FORMAL PARAMETER * CTIFP NOP CPA ANDZN RSS ERR9 JSB CHYBA JSB CTIZN JMP CTF2 JSB CTIID JMP *+3 CTF2 ISZ CTIFP ISZ CRFG JMP CTIFP,I SPC 2 * * CONDITIONAL WRITE * WRITE NOP LDA SP CPA 106B RSS JMP *+4 JSB LISTS JSB LIST JMP WRITE,I LDA CONTR RAR,SLA JSB ERLST JMP WRITE,I SPC 2 * * REPORTING AN ERROR * CHYBA NOP LDA NUMER STA CH3 CLA STA NUMER LDA CONTR SLA,RSS JMP CH1 ERA,CLE,ELA STA CONTR JSB BLANK CH1 LDA CHYBA ADA M2 CPA DBDCS RSS JMP CH2 LDA CST STA BRDN JSB ERLST LDA CH3 STA NUMER LDA HALT CPA B77 JSB LISTS JSB ERLST JMP FHALT CH2 LDB ADRCH LDA ADRCH+1 STA PREV CLA STA ADRCH+2 CH5 LDA 1,I CPA CHYBA JMP CH4 INB ISZ ADRCH+2 ISZ PREV JMP CH5 CLA,INA RSS CH4 LDA ADRCH+2 JSB PREV LDA MEZCA+3 STA BPNN+1 STB BPNN LDA ERT STA BRDN JSB ERLST LDA CH3 STA NUMER LDA SP CPA 106B JSB LISTS JSB ERLST LDA MDLC SZA JMP BETA JMP ALFA * * 2 TO 10 CONVERSION * PREV NOP CLB STB P2 STB P3 STA P1 LDA DP2 STA UP LDA MASKA STA LP LDA DK1 STA UK LDA P1 CB CLB STB VYSL ODC ADA UK,I SSA JMP ZAP ISZ VYSL JMP ODC ZAP LDB UK,I CMB,INB ADA 1 STA A1 ISZ UK LDA VYSL ADA CISL0 LDB LP SSB,RSS ALF,ALF ADA UP,I STA UP,I SSB ISZ UP LDB LP RBL STB LP LDA A1 LDB DK5 CPB UK JMP KON1 JMP CB KON1 LDA P2 LDB P3 JMP PREV,I SKP HED CONTROL STATEMENT PROCESSING SPC 2 * * CONTROL STATEMENT * STRT LDA P14 LDB WORKA JSB DRIV,I SZA,RSS JMP STRT STA NUMER CMA ADA PET SSA,RSS JMP BADCS CMA STA NR JSB LINK DEF BOTCA JSB CHING JSB LINK DEF OPCCA JSB CHONG JSB PREPS DEC 5 JSB CMPR DEF HPMPT RSS JMP BADCS CLB,INB INB PARAM STB CONTR JSB CTIZN JMP PRINT CPA CARKA RSS JMP BADCS JSB CTIZN JMP BADCS LDB CONTR CCE CPA T RBL,ERB CCE CPA P RBR,ELB CCE RBL CPA S RBL,ERB RBR,RBR CPA N RBR,CLE,ELB RBL CPB CONTR JMP BADCS JMP PARAM PRINT JSB TNIRP JMP SSSS BADCS NOP JSB CHYBA TNIRP NOP LDA HALT CPA B77 JSB LISTS JSB LIST JMP TNIRP,I SKP HED START, RESET WORKING STORAGE SPC 2 * * RESET INTIAL CONDITIONS * START LDA 106B STA SP CLA STA MDLC STA FIRST INA STA PAGE STA TAPE STA LNS STA LNT LDA CISL9 STA WLNTS LDA DFALS STA LASTO STA LASTI LDA PSMCT STA MDTC LDA NSMC STA TJM LDA BPNN+2 STA BPNN STA BPNN+1 STA BRDN STA BRDN+1 JMP STRT SKP HED LINE O TEXT PROCESSING SSSS LDA CONTR SLA JSB BLANK SPC 2 * * READ AND SHAPE NEXT INE * ALFA LDA DCTID STA LXY JSB READ JSB LXAN JSB FIND DEF TJM JMP MACRO INB INB STB PTJM LDA 1,I AND PMASK STA PPARM INA ALF ADA PLUS4 CMA,INA ADA SP LDB MDTC CMB ADB 0 SSB ERR10 JSB CHYBA LDB SP STB 0,I STA SP ISZ PTJM LDB PTJM,I INA STB 0,I LDB MASKA INA STB 0,I LDB PPARM INA STB 0,I LDB LABFG INA STA SVA SZB,RSS JMP MP1 JSB LINK DEF LABCA JMP MP2 MP1 JSB LINK DEF MEZCA MP2 JSB CHING LDA SVA STA ADAIN JSB LINK DEF AIN JSB CHONG JSB PREPS DEC 5 LDA C220 JSB PUTCH LDB CRFG SZB,RSS JMP SKUTP CLA CPA PPARM RSS ERR11 JSB CHYBA MP3 LDA 106B CPA SP,I RSS JMP MP4 JSB LISTS JSB LIST JMP ALFA MP4 JSB WRITE JMP ALFA SKUTP CLA STA PSPRM CPA PPARM JMP KOMNT LDB DWRCA JSB CHING SK1 LDA SVA ADA SESTN STA SVA STA ADAIN JSB LINK DEF AIN JSB CHONG SB CTISP ISZ PSPRM LDA PSPRM CPA PPARM JMP KOMNT LDA CRFG SZA,RSS JMP SK1 ERR12 JSB CHYBA KOMNT JMP MP3 MACRO JSB CMPR DEF MACRT JMP DFMAC JSB CMPR DEF MENDT JMP ENDMC LDA SP CPA 106B JSB (LISTS JSB LISTT JSB PUNCH JSB CMPR DEF ENDT RSS JMP ALFA LDA CONTR SLA,RSS JMP FHALT JSB BLANK FHALT CCA JSB 102B,I LDA *+2 STA VYHYB RSS NOP JMP HALT,I ENDMC JSB CHECK JSB WRITE LDA SP CPA 106B JMP ALFA LDA SP,I STA SP JMP ALFA SKP HED MACRO DEFINITION PROCESSING SPC 2 * * SHAPE A PROTOTYPE OF MACRO CALL * DFMAC JSB CHECK JSB WRITE JSB READ LDA DCTFP STA LXY JSB LXAN CLA STA TFP LDB LABFG SZB,RSS JMP DF2 JSB LINK DEF LABCA JMP DF3 DF2 JSB LINK DEF MEZCA DF3 JSB CHING LDA DNUFP STA FORMC JSB LINK DEF FORCA JSB CHONG JSB PREPS DEC 5 LDA TJM ALS,ALS ADA DPRJM STA PTJM JSB LINK DEF TJMCA JSB CHONG JSB LINK DEF OPCCA JSB CHING JSB PREPS DEC 5 LDA PTJM ADA TRI LDB MDTC STB 0,I LDB DWRCA JSB CHING LDB CRFG SZB JMP DF6 LDA TFP DF5 CPA SESTN JMP DF6 INA ALS,ALS ADA DNUFP STA FORMC JSB LINK DEF FORCA JSB CHONG DF7 JSB CTIZN JMP DF6 CPA MEZER JMP DF7 CPA ANDZN RSS ER14 JSB CHYBA JSB CTIFP RSS JMP DF6-1 CPA ODDEL RSS ERR15 JSB CHYBA LDA TFP INA STA TFP JMP DF5 ISZ TFP DF6 LDB PTJM INB INB LDA 1,I AND LMASK IOR TFP STA 1,I ISZ TJM ISZ MDLC JSB WRITE LDA MDTC STA DTPTC JSB LINK DEF TPTCA * * STORE A NAMED TEXT * BETA JSB READ CLA STA CRFG LDB BTDF JS:sB@? CODES 0-15 WHICH CONVERTS TO BINARY WHEN SUBTRACTED FROM @60. 3) FIRST BYTE OF INSTRUCTION SYMBOLTABLE--ARRAY CONTAINING THE SYMBOLS OR LABELS, 4 WORDS EACH. WORDS 1 THRU 3 ARE THE 6 ASCII CHARACTERS OF THE SYMBOL WORD 4 IS THE SYMBOL VALUE LINE--THE CURRENT SOURCE LINE IN 36A2 FORMAT SYMBOL--A 3 WORD ARRAY CONTAINING 6 CHARACTERS TO BE PASSED TO PROCEDURE SYMBOLSEARCH. PASS ONE ADDS THE LABELS TO THE SYMBOL TABLE, KEEPItNG TRACK OF THE LOCATION COUNTER. PASS TWO GENERATES CODE, USING OPERAND VALUES FOUND IN THE SYMBOL TABLE. SOME ERRORS ARE DETECTED, SUCH AS ILLEGAL INSTRUCTIONS, DUPLICATE OR MISSING LABELS, AND SYMBOL TABLE OVERFLOW. OTHERS ARE NOT, SUCH AS ILLEGAL OPERAND VALUES. FOR EXAMPLE, THE FOLLOWING INSTRUCTIONS WOULD GENERATE BAD CODE WITH NO ERROR MESSAGE: START LXI C,ARRY SET STACK REGISTER. PUSH M LXI PSW,0 * NOTE SP,PSW, AND M ARE USED INTERCHANGABLY AS REG 6. THE SELECTION OF A PROPER REGISTER IS LEFT TO THE PROGRAMER. IMPROPER OPERATIONS ARE SET TO 0. I.E. REGISTER_0. OPCODE_0. LENGTH_1. OPERAND_0. IF UNDEFINED. THE INTERNAL LOCATION COUNTER HAS 16 BIT CAPACITY, BUT ONLY 8 ARE SHOWN ON LIST. SYMBOL TABLE SHOWS FULL ADDRESS. A FULL ADDRESS "ORG" IS REGUIRED FOR CHIPS ABOVE 00 THIS PROGRAM IS A MODIFICATION OF THE INTEL 8008 ASSEMBLER WRITTEN BY GLEN WORSTELL HEWLETT-PACKARD P.O. BOX 301 LOVELAND, COLO. 80537 PHONE (303) 667-5000 X2928 END OF COMMENT LINES; INTEGER LINECOUNTER_0,LOCCOUNTER_0,LAST_0; INTEGER ARRAY WORD[1:3];INTEGER INSTLENGTH,INSTCODE; BOOLEAN PUNCH,NEG,LISTLINE,TABLE,LASTLOC,PHOTOREAD,DOSORT; INTEGER OPCODEI,OPERANDI,OPAI,OPCODI; INTEGER ARRAY OPERAND[1:3],OPCODE[1:3],OPA[1:3]; INTEGER LOCWORD,L,ERROR_0; LABEL START,STARTS,PASS2,AGAIN,DONE,NEXT,LIST,EXIT; LABEL PAGE,PAGEL; INTEGER I,J,K,M,PAGENUMBER_0,LINECOUNT,N_0,CHIP_"00"; FORMAT F1("1 INTEL 8080 MACRO ASSEMBLER "15X,"CHIP ",A2,15X," PAGE"I5, /X/" LINE LOC B1 B2 B3"); FORMAT E1(" REGISTER UNDEFINED IN LINE "I4), E2(" UNDEFINED OPCODE IN LINE "I4), E3(" BLANK OPERAND IN LINE "I4), E4(" SYMBOL UNDEFINED IN LINE "I4), E5(" DUPLICATE SYMBOL IN LINE "I4), E6(" SYMBOL TABLE OVERFLOW IN LINE "I4), E7(" NO CODE IN LINE "I4); EQUATE NINSTS_91,NSYMBOLS_400; INTEGER ARRAY REGISTER[0:7]_"B","C","D","E","H","L","M","A"; INTEGER ARRAY LINE[1:36],SYMBOLTABLE[1:NSYMBOLS,1:4], SYMBOL[1:3],INSTLIST[1:NINSTS,1:3]_ "HL","T1","76", "MO","V=","40", "MV","I:","06", "IN","R9","04", "DC","R9","05", & "AD","D5","80", "AD","C5","88", "SU","B5","90", "SB","B5","98", "AN","A5","A0", "XR","A5","A8", "OR","A5","B0", "CM","P5","B8", & "AD","I2","C6", "AC","I2","CE", "SU","I2","D6", "SB","I2","DE", "AN","I2","E6", "XR","I2","EE", "OR","I2","F6", "CP","I2","FE", & "RL","C1","07", "RR","C1","0F", "RA","L1","17", "RA","R1","1F", & "JM","P3","C3", "JC"," 3","DA", "JN","C3","D2", "JZ"," 3","CA", "JN","Z3","C2", "JP"," 3","F2", "JM"," 3","FA", "JP","E3","EA", "JP","O3","E2", & "CA","L3","CD", "CC"," 3","DC", "CN","C3","D4", "CZ"," 3","CC", "CN","Z3","C4", "CP"," 3","F4", "CM"," 3","FC", "CP","E3","EC", "CP","O3","E4", & "RE","T1","C9", "RC"," 1","D8", "RN","C1","D0", "RZ"," 1","C8", "RN","Z1","C0", "RP"," 1","F0", "RM"," 1","F8", "RP","E1","E8", "RP","O1","E0", & "RS","T1","C7", "IN"," 2","DB", "OU","T2","D3", & "LX","I;","01", "PU","S9","C5", "PO","P9","C1", "ST","A3","32", "LD","A3","3A", & "XC","H1","EB", "XT","H1","E3", "SP","H1","F9", "PC","H1","E9", & "DA","D9","09", "ST","A9","02", &STAX "LD","A9","0A", &LDAX "IN","X9","03", "DC","X9","0B", & "CM","A1","2F", "ST","C1","37", "CM","C1","3F", "DA","A1","27", & "SH","L3","22", "LH","L3","2A", & "EI"," 1","FB", "DI"," 1","F3", "NO","P1","00", & BEGIN PSEUDO OPS & USES INVALID OP CODES "OR","G0","08", "EQ","U0","10", "AS","C1","18", "DB"," 1","20", "DW"," 2","20", "EN","D0","30", "HE","D0","38", "DS"," 0","CB", "PU","N0","D9", "XP","U0","DD", "SU","P0","ED", "LI","S0","FD"; & INTEGER PROCEDURE RIGHTPART(I);INTEGER I; BEGIN RIGHTPART_@377 AND I; END; & INTEGER PROCEDURE LEFTPART(I);INTEGER I; BEGIN LEFTPART_@377 AND ROTATE(I); END; & BOOLEAN PROCEDURE COMMENTLINE; BEGIN IF LEFTPART(LINE[1])="*" THEN COMMENTLINE_TRUE ELSE COMMENTLINE_FALSE; END; & BOOLEAN PROCEDURE ORGINST; BEGIN IF OPCODE[1]="OR" AND OPCODE[2]="G " THEN ORGINST_TRUE ELSE ORGINST_FALSE; END; & BOOLEAN PROCEDURE ENDLINE; BEGIN ENDLINE_IF OPCODE[1]="EN" AND OPCODE[2]="D " THEN TRUE ELSE FALSE; END; & PROCEDURE LEADER; BEGIN WRITE(4,#(50A2,"*"),FOR J_1 TO 50 DO @0000); END; & & & DELETE PROCEDURES GETS AND RESET FOR PAPER TAPE SYSTEM PROCEDURE GETS(A);INTEGER A;CODE; PROCEDURE RESET;CODE; & & PROCEDURE READLINE; BEGIN & & CHANGE GETS() TO & READ(5,#(36A2),FOR I_1 TO 36 DO LINE[I]); & FOR PAPER TAPE SYSTEM & GETS(LINE[1]); LINECOUNTER_LINECOUNTER+1; LINECOUNT_LINECOUNT+1; END; & INTEGER PROCEDURE HEX(X);INTEGER X; & CONVERTS ASCII TO HEX BEGIN J_LEFTPART(X)-@60; IF J> 10 THEN J_J-7; K_RIGHTPART(X)-@60;IF K>10 THEN K_K-7; HEX_16*J+K; END; & INTEGER PROCEDURE ASCII(X);INTEGER X; & CONVERTS HEX(LOWER 8 BITS) TO ASCII BEGIN INTEGER N,M; N_(X AND @17)+@60; IF N>@71 THEN N_N+7; M_(X AND @360)\16+@60; IF M> @71 THEN M_M+7; ASCII_ROTATE(M) OR N; END; & BOOLEAN PROCEDURE LABELEDLINE; BEGIN LABELEDLINE_IF LEFTPART(LINE[1])=" " THEN FALSE ELSE TRUE; END; & INTEGER PROCEDURE FINDR(X);INTEGER X; BEGIN LABEL RETURN;INTEGER I; FOR I_0 TO 7 DO IF LEFTPART(X)=REGISTER[I] THEN GO TO RETURN; IF X="PS" OR X="SP" THEN I_6 ELSE BEGIN I_0;WRITE(6,E1, LINECOUNTER);LINECOUNT_LINECOUNT+1;ERROR_ERROR+1 END; RETURN: FINDR_I END; & PROCEDURE SORT; BEGIN INTEGER I,J,K,L,M,SMALL1,SMALL2,SMALL3; LABEL LOOP1,LOOP2; & FIND SMALLEST SYMBOL FOR I_1 TO N DO BEGIN SMALL1_SMALL2_SMALL3_@77776; FOR J_1 TO N DO BEGIN IF SYMBOLTABLE[J,1]>SMALL1 THEN GO TO LOOP1; IF SYMBOLTABLE[J,1]=SMALL1 THEN BEGIN IF SYMBOLTABLE[J,2]>SMALL2 THEN GO TO LOOP1; IF SYMBOLTABLE[J,2]=SMALL2 THEN IF SYMBOLTABLE[J,3]>SMALL3 THEN GO TO LOOP1; END; K_J;SMALL1_SYMBOLTABLE[J,1];SMALL2_SYMBOLTABLE[J,2]; SMALL3_SYMBOLTABLE[J,3]; LOOP1: END; J_SYMBOLTABLE[K,4]; L_ASCII(J);M_ROTATE(J);M_ASCII(M); WRITE(6,#(X,3A2,3X,A2,X,A2),FOR J_1 TO 3 DO SYMBOLTABLE[K,J],M,L); SYMBOLTABLE[K,1]_SYMBOLTABLE[K,2]_SYMBOLTABLE[K,3]_@77777; LOOP2: END; END; INTEGER PROCEDURE SYMBOLSEARCH(SYMBOL);INTEGER ARRAY SYMBOL; BEGIN LABEL RETURN; FOR I_1 TO N DO BEGIN IF SYMBOL[1]=SYMBOLTABLE[I,1] THEN IF SYMBOL[2]=SYMBOLTABLE[I,2] THEN IF SYMBOL[3]=SYMBOLTABLE[I,3] THEN BEGIN SYMBOLSEARCH_SYMBOLTABLE[I,4]; GO TO RETURN; END; IF SYMBOLTABLE[I,1]=0 THEN BEGIN I_0;GO TO RETURN; SYMBOLSEARCH_0;GO TO RETURN; END; END; I_0; & END OF BUFFER RETURN: END; & PROCEDURE INSTSEARCH(INSTLENGTH,INSTCODE); & INTEGER INSTLENGTH,INSTCODE; BEGIN INTEGER I; LABEL RETURN; INSTLENGTH_INSTCODE_0; FOR I_1 TO NINSTS DO BEGIN IF OPCODE[1]=INSTLIST[I,1] THEN IF LEFTPART(OPCODE[2])=LEFTPART(INSTLIST[I,2]) THEN BEGIN INSTLENGTH_RIGHTPART(INSTLIST[I,2])-@60; INSTCODE_HEX(INSTLIST[I,3]); IF OPCODE[2]="AX" AND (INSTCODE=@62 OR INSTCODE=@72) THEN BEGIN INSTCODE_INSTCODE AND @17;INSTLENGTH_9; END; IF INSTLENGTH > 4 THEN BEGIN INSTCODE_IF INSTLENGTH>7 THEN INSTCODE OR (FINDR(OPERAND[1])*8) ELSE INSTCODE OR FINDR(OPERAND[1]); IF INSTLENGTH >11 THEN INSTCODE_INSTCODE OR FINDR(OPA[1]); OPERAND[1]_OPA[1];OPERAND[2]_OPA[2];OPERAND[3]_OPA[3]; OPERANDI_OPAI; END; INSTLENGTH_INSTLENGTH MOD 4; GO TO RETURN; END; END; WRITE(6,E2,LINECOUNTER); INSTLENGTH_1;INSTCODE_0;& UNDEFINED CODE LINECOUNT_LINECOUNT+1;ERROR_ERROR+1; RETURN: END; & INTEGER PROCEDURE CHAR(I); INTEGER I; BEGIN IF (I MOD 2 )=1 THEN CHAR_LEFTPART(LINE[I\2+1] ) ELSE CHAR_RIGHTPART(LINE[I\2] ) END; & PROCEDURE PACK(A,X);INTEGER ARRAY A;INTEGER X; & DEPENDS ON I BEING 1'ST CHAR POS. BEGIN INTEGER J,K; IF X<2 THEN BEGIN A[1]_" ";A[2]_" ";A[3]_" "END; J_(X+1)\2;K_X+I-1;K_CHAR(K); IF X MOD 2=1 THEN A[J]_ROTATE(K) OR @40 ELSE A[J]_K OR (A[J] AND @77600); END; & INTEGER PROCEDURE FINDVALUE;BEGIN LABEL AGAIN,RETURN;INTEGER BASE,I,N; FINDVALUE_0; IF OPERANDI>22 THEN BEGIN LINECOUNT_LINECOUNT+1;ERROR_ERROR+1; WRITE(6,E3,LINECOUNTER);GO TO RETURN; END; N_CHAR(OPERANDI); BASE_IF N="@" THEN 8 ELSE IF N="'" THEN 16 ELSE 10; IF BASE# 10 THEN OPERANDI_OPERANDI+1; FOR I_OPERANDI TO OPERANDI+6 DO BEGIN N_CHAR(I); IF N="," THEN GO TO AGAIN; IF N=" " OR N="'" THEN GO TO RETURN; N_N-@60;IF N>15 THEN N_N-7; IF N>= BASE THEN N_0; FINDVALUE_FINDVALUE*BASE+N; AGAIN: END; RETURN: END; & PROCEDURE FLOATLINE; BEGIN I_K_1; WHILE CHAR(K)#" " AND K<20 DO K_K+1; L_IF K-I>6 THEN 6 ELSE K-I; FOR J_1 TO L DO PACK(SYMBOL,J); I_K; WHILE CHAR(I)=" " AND I<21 DO I_I+1; OPCODI_K_I; WHILE CHAR(K)#" " AND K<22 DO K_K+1; L_IF K-I>6 THEN 6 ELSE K-I; FOR J_1 TO L DO PACK(OPCODE,J);I_K; WHILE CHAR(I)=" " AND I< 23 DO I_I+1; OPERANDI_K_I; WHILE CHAR(K)#" " AND CHAR(K)#"," AND K<24 DO K_K+1; L_IF K-I>6 THEN 6 ELSE K-I; FOR J_1 TO L DO PACK(OPERAND,J);I_K; WHILE (CHAR(I)=" " OR CHAR(I)=",") AND I<25 DO I_I+1; OPAI_K_I; WHILE CHAR(K)#" " AND K<25 DO K_K+1; L_IF K-I>6 THEN 6 ELSE K-I; FOR J_1 TO L DO PACK(OPA,J); END; & INTEGER PROCEDURE OPERANDVALUE; BEGIN LABEL RETURN;INTEGER N; N_CHAR(OPERANDI); IF N="-" THEN BEGIN OPERANDI_OPERANDI+1;N_CHAR(OPERANDI);NEG_TRUE END ELSE NEG_FALSE; BEGIN IF N>@100 AND N<@133 THEN & CHECK FOR LETTER BEGIN FOR I_1 TO 3 DO SYMBOL[I]_OPERAND[I]; N_SYMBOLSEARCH(SYMBOL); IF I=0 THEN BEGIN ERROR_ERROR+1; WRITE(6,#(" SYMBOL UNDEFINED IN LINE"I7),LINECOUNTER); OPERANDVALUE_0;LINECOUNT_LINECOUNT+1;GO TO RETURN; END; OPERANDVALUE_N; GO TO RETURN; END; OPERANDVALUE_FINDVALUE; END; RETURN: IF NEG THEN OPERANDVALUE_-OPERANDVALUE END; & PROCEDURE ADDTOSYMBOLTABLE(N); INTEGER N; BEGIN N_N+1; FOR I_1 TO 3 DO SYMBOLTABLE[N,I]_SYMBOL[I]; SYMBOLTABLE[N,4]_ IF OPCODE[1]="EQ" AND OPCODE[2]="U " THEN OPERANDVALUE ELSE LOCCOUNTER; END; & PROCEDURE WRITELINE(N); VALUE N; INTEGER N; BEGIN N_N+1; IF LISTLINE THEN BEGIN CASE N BEGIN WRITE(6,#(I5,20X,36A2),LINECOUNTER,FOR I_1 TO 36 DO LINE[I]); WRITE(6,#(I5,2X,A2,2X,A2,12X,36A2),LINECOUNTER,LOCWORD,WORD[1], FOR I_1 TO 36 DO LINE[I]); WRITE(6,#(I5,2X,A2,2X,A2,X,A2,9X,36A2),LINECOUNTER,LOCWORD,WORD[1], WORD[2],FOR I_1 TO 36 DO LINE[I]); WRITE(6,#(I5,2X,A2,2X,A2,X,A2,X,A2,6X,36A2),LINECOUNTER,LOCWORD, WORD[1],WORD[2],WORD[3],FOR I_1 TO 36 DO LINE[I]) END; END; I_1; IF PUNCH THEN IF PHOTOREAD THEN WHILE I20 THEN BEGIN WRITE(6,E7,LINECOUNTER);ERROR_ERROR+1;GO TO START END; IF LABELEDLINE THEN BEGIN SYMBOLSEARCH(SYMBOL); IF I#0 THEN BEGIN WRITE(6,E5,LINECOUNTER); LINECOUNT_LINECOUNT+1;ERROR_ERROR+1 END ELSE ADDTOSYMBOLTABLE(N) END; INSTSEARCH(I,J);LOCCOUNTER_ IF J=@313 THEN LOCCOUNTER+OPERANDVALUE ELSE IF J=@10 THEN OPERANDVALUE ELSE LOCCOUNTER+I; IF J=@60 THEN GO TO PASS2; GO TO START; & & PASS 2 & PASS2: IF ERROR=0 THEN WRITE(6,#(X/" ** NO ERRORS ***")) ELSE WRITE(6,#(X/" ** "I3" ERRORS ***"),ERROR); IF TABLE THEN BEGIN WRITE(6,#(X/X/" SYMBOL TABLE"/X/" SYMBOL ADDRESS") ); FOR I_1 TO N DO BEGIN K_SYMBOLTABLE[I,4];L_ASCII(K);K_ROTATE(K);K_ASCII(K); IF K#M THEN WRITE(6,#(X) ); & SPACE OUT CHIP CHANGES WRITE(6,#(X,3A2,3X,A2,X,A2),FOR J_1 TO 3 DO SYMBOLTABLE[I,J],K,L); M_K; END; END; & & & CHANGE RESET TO PAUSE FOR PAPER TAPE RESET; & RESTART DISK READ & & LINECOUNT_LINECOUNTER_LOCCOUNTER_ERROR_0; IF PUNCH THEN LEADER; PAGENUMBER_1;WRITE(6,F1,CHIP,PAGENUMBER); READLINE;WRITELINE(0); AGAIN:OPCODE[1]_OPERAND[1]_" ";READLINE;FLOATLINE; LOCWORD_B@20 THEN BEGIN WRITE(6,E7,LINECOUNTER);ERROR_ERROR+1; LINECOUNT_LINECOUNT+1;WRITELINE(0);GO TO PAGEL END; INSTSEARCH(INSTLENGTH,INSTCODE); & LOOK UP INSTRUCTIONS WORD[1]_ASCII(INSTCODE); IF INSTCODE=@30 THEN BEGIN I_LEFTPART(OPERAND[1]);WORD[1]_ASCII(I) END ELSE IF INSTCODE=@60 THEN BEGIN WRITELINE(0);GO TO DONE END ELSE IF INSTCODE=@70 THEN GO TO PAGE ELSE IF INSTCODE=@375 THEN LISTLINE_TRUE ELSE IF INSTCODE=@355 THEN LISTLINE_FALSE ELSE IF INSTCODE=@335 THEN PUNCH_FALSE ELSE IF INSTCODE=@331 THEN PUNCH_TRUE ELSE IF INSTCODE=@40 THEN BEGIN I_OPERANDVALUE;WORD[1]_ASCII(I);I_ROTATE(I); WORD[2]_ASCII(I); GO TO LIST END; IF INSTLENGTH<2 THEN GO TO LIST; I_OPERANDVALUE;WORD[2]_ASCII(I); I_ROTATE(I);WORD[3]_ASCII(I); LIST: WRITELINE(INSTLENGTH); NEXT: LOCCOUNTER_ IF INSTCODE=@313 THEN LOCCOUNTER+OPERANDVALUE ELSE IF INSTCODE=@10 THEN OPERANDVALUE ELSE LOCCOUNTER+INSTLENGTH; PAGEL: IF LINECOUNT>54 THEN BEGIN PAGE: LINECOUNT_0;PAGENUMBER_PAGENUMBER+1; IF LISTLINE THEN WRITE(6,F1,CHIP,PAGENUMBER); END; GO TO AGAIN; DONE: IF ERROR=0 THEN WRITE(6,#( X/" ** NO ERRORS ***") ) ELSE WRITE(6,#(X/," ** "I3" ERRORS ***"),ERROR); IF DOSORT THEN BEGIN WRITE(6,#("1"/" SORT LIST "/X/" SYMBOL ADDRESS") );SORT;END; IF PUNCH THEN BEGIN WRITE(4,#("/ ") ); LEADER END; EXIT: END$ _DBASMB,L HED GETS FROM JFILE * READS ONE LINE FROM DISK TO USER BUFFER * USES :JF,NAME FOR SOURCE FILE * TRANSFERS 36 WORDS * ADDS " END" IF EOF IS ENCOUNTERED * NAM GETS,6 EXT EXEC,.ENTR ENT GETS,RESET * RESET NOP STARTUP ROUTINE JSB .ENTR DEF RESET * LDA 124B GET JFILE AND =B377 STA SEC LDA 124B ALF,ALF AND =B377 STA TRK LDA BUF1A SET ADDRESSES STA IBUFF LDA BUF1A STA BUFF JSB CEXEC READ IN FIRST TWO SECTORS JSB ADD1 LDA BUF2A STA BUFF JSB CEXEC JMP RESET,I EXIT * CEXEC NOP READS IN 128 WORDS JSB EXEC DEF *+7 DEF N1 DEF CONWD BUFF NOP DEF BUFFL DEF TRK DEF SEC JMP CEXEC,I * CLEAR NOP CLEARS 36 WORDS IN USER BUFFER LDA =A LDB N36 STB CNTR LDB LINE STB LINEA C1 STA LINEA,I ISZ LINEA ISZ CNTR JMP C1 JMP CLEAR,I * ADD1 NOP NEXT SECTOR LDA SEC INA STA SEC CPA 116B T/S JMP ADD2 JMP ADD1,I ADD2 CLA STA SEC ISZ TRK JMP ADD1,I * * LINE NOP GETS NOP MAIN ENTRY POINT TO READ LINE JSB .ENTR DEF LINE * JSB CLEAR LDA IBUFF,I GET LINE LENGTH ISZ IBUFF ALF,ALF CMA,INA SZA,RSS END OF FILE? JMP ERR YES STA NO. * LDB N36 GET MAX NUMBER GETS1 LDA IBUFF,I GETS ONE LINE TO USER BUFFER SZB DONT WRITE OVER 36 WORDS STA LINE,I ISZ IBUFF ISZ LINE SZB DONT GO PAST ZERO INB NEXT NO. ISZ NO. JMP GETS1 * LDA BUF2A CHECK IF OVER FIRST BUFFER CMA,INA ADA IBUFF SSA JMP GETS,I * ADA BUF1A BRING IN NEX&  T SECTOR STA IBUFF * LDA BUF1A STA BUFF JSB CEXEC JSB ADD1 LDA BUF2A STA BUFF JSB CEXEC JMP GETS,I * ERR LDA =A E STA LINE,I STORE A END FOR WHOEVER FORGOT IT ISZ LINE NEXT WORD LDA =AND STA LINE,I JMP GETS,I EXIT THE SCENE * * BUF1 BSS 128 BUF2 BSS 128 BUF1A DEF BUF1 BUF2A DEF BUF2 LINEA NOP CNTR NOP NO. NOP P2 DEC 2 N1 DEC -1 TRK NOP SEC NOP IBUFF NOP N36 DEC -36 BUFFL DEC 128 CONWD OCT 103 CONWR OCT 1 A EQU 0 B EQU 1 P6 DEC 6 END * r  DW 22682-18016 1612 SC 0122 2000E DISC CHECK UTILITY PROGRAM (TSEDP)             H0101 FTN4,L PROGRAM TSEDP C C REV B SEPT. 1975 C --------------- C C ////////////////////////////////////////////////////////////////////// C C "TSEDP" READS THE CARTRIDGE ON DOS-III/M SUBCHANNEL 1, VALIDATES THE C LABEL AS BEING A 2000E TSB PACK LABEL, AND THEN CHECKS THE DISC C TABLES FOR CONSISTENCY -- THE ADT AND THE DIRECTORIES. C C SYSTEM PACK (SLEEP CARTRIDGE): C ------ C TRACK SECTOR C 0 12 ... SYSTEM BASE PAGE C WD#100B - 1ST DIRECTORY TRACK SIZE (-WDS) C 107B - 2ND " " " " C 204B - ADT SIZE (-WDS) C 26 0 ... ADT C 27 0 ... 1ST DIRECTORY TRACK C 28 0 ... 2ND DIRECTORY TRACK C C C USER PACK: C ---- C TRACK SECTOR C 0 1 ... SIZES TABLE C WD#0 - ADT SIZE (-WDS) C 1 - 1ST DIRECTORY TRACK SIZE (-WDS) C 2 - 2ND " " " " C 0 2 ... ADT C 1 0 ... 1ST DIRECTORY TRACK C 2 0 ... 2ND DIRECTORY TRACK C C ////////////////////////////////////////////////////////////////////// COMMON ITRK,ITRK1,ITRK2,NSECT DIMENSION IX1(570),IX2(570),JM(10),IQ(4) INTEGER IQ1,IQ2,IQ3,IQ4,DR1SZ,DR2SZ INTEGER JM1,JM2,JM3,JM4,JM5,JM6,JM7,JM8,JM9,JM10 EQUIVALENCE (IQ1,IQ(1)),(IQ2,IQ(2)),(IQ3,IQ(3)),(IQ4,IQ(4)) EQUIVALENCE (JM1,JM(1)),(JM2,JM(2)),(JM3,JM(3)),(JM4,JM(4)), 1 (JM5,JM(5)),(JM6,JM(6)),(JM7,JM(7)),(JM8,JM(8)), 2 (JM9,JM(9)),(JM10,JM(10)) LOGICAL IERR,ISERR,OFLAG EQUIVALENCE (ICHAN,CHAN) IADDR(I) = IAND(I,77600B)/200B ISCTR(J) = IAND(J,77B) IE1(I)=8*IX1(I)+7 IE2(I)=8*IX2(I)+7 WRITE(6,1) 1 FORMAT("1") WRITE(6,2) WRITE(1,2) 2 FORMAT(" 2000E DISC PACK ANALYZER" X /" REV. B 9/24/75" R X /" ::::::::::::::::::::::::"////) C C CHANGE USER DISC TO SUBCH. 1 (DESPITE INVALID LABEL) C IX1(1)=0 CHAN=EXEC(23,IX1,1,1) IF (ICHAN) 10,20,10 C BAD RESULT 10 WRITE(1,15) 15 FORMAT(" ### UNABLE TO CHANGE USER DISC TO SUBCHANNEL 1 ###") STOP 1 C C READ LABEL(0,0) C C C CHECK LABEL...TS C ...TSSYSTEM C 20 OFLAG=.FALSE. WRITE (1,3) 3 FORMAT(/,"ENTER: 1-LIST DIRECTORIES AND ADT OR 2-CHECK DISC PACK") READ (1,*) IQ1 IF(IQ1.EQ.1) OFLAG=.TRUE. CALL EXEC(-1,3,IX1,128,0,0) IF(IX1(2).EQ.2HTS) GO TO 40 WRITE(1,35) WRITE(6,35) 35 FORMAT(" ### PACK IS NOT 2000E TSB PACK ### ") GO TO 375 40 IF((IX1(3).EQ.2HSY) .AND. (IX1(4).EQ.2HST) .AND. 1 (IX1(5).EQ.2HEM)) GO TO 500 C C USER PACK C ---- ---- C ITRK=0 ITRK1=1 ITRK2=2 NSECT=2 100 CALL EXEC(-1,3,IX1,128,0,1) IATSZ=-IX1(1) DR1SZ=-IX1(2) DR2SZ=-IX1(3) WRITE (6,101) IATSZ,DR1SZ,DR2SZ 101 FORMAT(//" *************",10X,"ADT SIZE ",O6,"B" X /" * USER DISC *",10X,"DIR1 SIZE ",O6,"B" X /" *************",10X,"DIR2 SIZE ",O6,"B",//) C 102 WRITE (1,103) 103 FORMAT (/"PLEASE ENTER 2000E DRIVE# (0,1), SUBCHANNEL# (0,1)_") READ (1,*) IDR,ISCH IF((IDR.GE.0) .AND. (IDR.LE.1)) GO TO 105 WRITE (1,104) 104 FORMAT (" ### INVALID DRIVE#, PLEASE RE-ENTER ###") GO TO 102 105 IF ((ISCH.GE.0) .AND. (ISCH.LE.1)) GO TO 107 WRITE (1,106) 106 FORMAT (" ### INVALID SUBCHANNEL#, PLEASE RE-ENTER ###") GO TO 102 107 IF ((IDR+ISCH).NE.0) GO TO 110 WRITE (1,108) 108 FORMAT (" ### PACK CANNOT BE FROM 0,0 ... LABEL ISN'T 'TSSYSTEM'", X "###") GO TO 102 C 110 IF(OFLAG) GO TO 600 C C C CHECK ADT C C PSEUDO-ENTRY AT END OK? C IF (IATSZ.LT.2815) GO TO 120 IQ1 = -IATSZ WRITSE(6,115) IQ1 115 FORMAT(" ### ADT SIZE INVALID (",O6,"B) ###") IATSZ = 2814 C GET DISC ADDRESS AND AVAILABLE SPACE FOR THIS ADT ENTRY 120 JM1=IADT(IATSZ-1) JM2=IADT(IATSZ) C GET TRACK# AND SECTOR# FOR THIS DISC ADDRESS ITRAK=IADDR(JM1) ISECT=ISCTR(JM1) C CHECK PSEUDO ENTRY IF((ITRAK.EQ.203) .AND. (ISECT.EQ.0) .AND. 1 (JM2.EQ.0)) GO TO 140 WRITE (6,121) JM1,JM2 121 FORMAT (/"### INVALID ADT PSUEDO-ENTRY ###",/4X,2(2X,O6)) C C CHECK ADT DISC ADDRESSES C 140 IERR = .FALSE. ID1SZ=DR1SZ ID2SZ=DR2SZ IATSZ=IATSZ-2 DO 180 I=1,IATSZ,2 IQ1=I-2 IQ2=I-1 IQ3=I IQ4=I+1 C JM4=DISC ADDRESS, JM3=AVAILABLE SPACE JM4=IADT(IQ4) JM3=IADT(I) C CHECK THIS ENTRY FOR CORRECT FORM AND LIMITS IF(ICKDA(JM3,JM4,IDR,ISCH,IDRX,ISCX,ITRAK,ISECT,1)) 1 150,145 145 WRITE(6,141) 141 FORMAT (/"### INVALID ADT DISC-ADDRESS ###") WRITE (6,143) IQ3,JM3,IQ4,JM4 143 FORMAT (" ADT(",@4,"B)=",O6," ADT(",@4,"B)=",O6) IERR=.TRUE. GO TO 180 150 IF (I.EQ.1) GO TO 152 C CHECK ENTRIES TO SEE IF THEY ARE OVERLAPPING JO = J J = ITRAK*48 + ISECT IF(J.GE.J0) GO TO 152 WRITE(6,151) 151 FORMAT (/"### OVERLAPPING ADT ENTRIES ###") JM2=IADT(IQ2) JM1=IADT(IQ1) WRITE (6,143) (IQ(K),JM(K),K=1,4) IERR=.TRUE. 152 J=ITRAK*48+ISECT+JM4 180 CONTINUE C C CHECK DIRECTORY PSEUDO ENTRIES C C CHECK SIZE 187 IF((ID1SZ.GT.0) .AND. (ID1SZ.LE.4560)) GO TO 1906 IQ1 = -ID1SZ WRITE(6,1905) IQ1 1905 FORMAT(" ### INVALID DIR-1 SIZE (",O6,"B) ###") ID1SZ=4056 IERR=.TRUE. 1906 IF((ID2SZ.GE.0) .AND. (ID2SZ.LE.4560)) GO TO 1910 IQ1 = -ID2SZ WRITE(6,1907) IQ1 1907 FORMAT(" ### INVALID DIR-2 SIZE (",O6,"B) ###") ID2SZ=4056 IERR=.TRUE. C CHECK CORRECTNESS OF FIRST PSEUDO ENTRY 1910 ISERR=.FALsSE. DO 190 I=1,8 JM(I)=IDIR1(I) IF(I.EQ.6) GO TO 190 IF(JM(I).NE.0) ISERR=.TRUE. 190 CONTINUE IF((JM6.EQ.-1) .AND. (.NOT.ISERR)) GO TO 194 WRITE (6,193) 1,1,8,(JM(K),K=1,8) 193 FORMAT (/"### INVALID DIR-",I1," PSEUDO ENTRY (",@5,"B - ", 1 @5,"B) ###"/6X,8(2X,O6)) ISERR=.FALSE. C CHECK CORRECTNESS OF LAST PSEUDO ENTRY 194 K=0 DO 198 I=-7,0 K=K+1 IF(ID2SZ.GT.0) GO TO 195 JM(K)=IDIR1(ID1SZ+I) GO TO 196 195 JM(K)=IDIR2(ID2SZ+I) 196 IF((K.EQ.5) .OR. (K.GT.6)) GO TO 197 IF(JM(K).NE.-1) ISERR=.TRUE. GO TO 198 197 IF(JM(K).NE.0) ISERR=.TRUE. 198 CONTINUE IF(ID2SZ.GT.0) GO TO 199 ITK=1 IQ1 = ID1SZ-7 IQ2 = ID1SZ ID1SZ = ID1SZ-8 GO TO 1999 199 ITK=2 IQ1 = ID2SZ-7 IQ2 = ID2SZ ID2SZ = ID2SZ-8 1999 IF(.NOT. ISERR) GO TO 200 IERR=.TRUE. WRITE(6,193) ITK,IQ1,IQ2,(JM(K),K=1,8) C C CHECK DIRECTORY DISC ADDRESSES C C SET UP TO CHECK DIR1 FIRST 200 IDRSZ = ID1SZ ITK=1 205 DO 240 I=1,IDRSZ,8 C DO NOT CHECK FIRST PSEUDO ENTRY ON DIR-1 IF((I.EQ.1) .AND. (ITK.EQ.1)) GO TO 240 JM9=I+6 JM10=I+7 C GET ENTRIES FOR THIS I DO 208 K=0,7 IF(ITK.NE.1) GO TO 206 C DO NOT CHECK FIRST PSEUDO ENTRY ON DIR-1 JM(K+1)=IDIR1(I+K) GO TO 208 206 JM(K+1)=IDIR2(I+K) 208 CONTINUE KT=IADDR(JM1) 210 IF(ICKDA(JM7,JM8,IDR,ISCH,IDRX,ISCX,ITRAK,ISECT,0)) 1 230,2001 2001 WRITE (6,201) ITK,JM1,JM2,JM3 201 FORMAT (/"### INVALID DIR-",I1," DISC ADDRESS : ",3A2, 1 " ###") WRITE (6,202) ITK,JM9,JM7,ITK,JM10,JM8 202 FORMAT (" DIR",I1," (",@5,"B)=",O6," DIR",I1," (",@5, 1 "B)=",O6) IERR=.TRUE. C IF THIS ENTRY IS A FILE GO TO 240 230 IF(JM3.LT.0) GO TO 240 C CHECK START OF PROGRAM POINTER IF((JM5.GE.2003B) .AND. (JM5.LE.12252B)) GO TO 234 C C PROGRAM STARTS OUT-OF-BOUNDS ! C WRITE (6,231) JM5 231 FORMAT (/"### INVALID START-OF-PROGRAM POINTER (",O6,") ###") C OUTPUT DIRECTORY FOR THIS ENTRY DO 232 IK=0,6,2 IQ3=I+IK IQ4=IQ3+1 232 WRITE (6,202) ITK,IQ3,JM(IK+1),ITK,IQ4,JM(IK+2) IERR=.TRUE. C NOW CHECK PROGRAM LENGTH 234 IF((JM8+12253B) .GE. 2003B) GO TO 240 WRITE (6,235) JM8 235 FORMAT (/"### INVALID PROGRAM LENGTH (",O6,") ###") C OUTPUT THIS DIRECTORY ENTRY DO 236 IK=0,6,2 IQ3=I+IK IQ4=IQ3+1 236 WRITE (6,202) ITK,IQ3,JM(IK+1),ITK,IQ4,JM(IK+2) IERR=.TRUE. 240 CONTINUE 243 IF((ITK.NE.1) .OR. (ID2SZ.EQ.0)) GO TO 264 C SET UP FOR DIR2 ITK=2 IDRSZ=ID2SZ GO TO 205 C C SORT DIRECTORIES AND SHUFFLE IX1(*),IX2(*) ACCORDINGLY C C BUILD DIRECTORY ENTRY POINTER TABLES (EACH IX1(I) POINTS TO C A DIRECTORY ENTRY. 264 DO 266 I=1,570 IX1(I) = I-1 266 IX2(I) = I-1 M1 = ID1SZ/8 M2 = M1-1 C CHECK DIRECTORY DISC ADDRESSES TO BE SURE THEY ARE IN C ASCENDING ORDER. IF NOT, SHUFFLE THE DIRECTORY POINTERS C (IX1,IX2) SO THAT THEY (IX1,IX2) WILL REFLECT AN ASCENDING C ORDER. DO 270 I=1,M2 DO 270 J=(I+1),M1 IF(IDIR1(IE1(I)).LE.IDIR1(IE1(J))) GO TO 270 IT = IX1(I) IX1(I) = IX1(J) IX1(J) = IT 270 CONTINUE IF(ID2SZ .EQ. 0) GO TO 281 N1 = ID2SZ/8 N2 = N1-1 DO 280 I=1,N2 DO 280 J=(I+1),N1 IF(IDIR2(IE2(I)).LE.IDIR2(IE2(J))) GO TO 280 IT = IX2(I) IX2(I) = IX2(J) IX2(J) = IT 280 CONTINUE C C C CHECK FOR OVERLAP OF ADJACENT DIRECTORY SLOTS C C SET UP FOR DIR1 (K=DISC ADDR,L= -#OF WORDS OF FIRST ENTRY) 281 IQ1=IE1(1) K=IDIR1(IQ1) L=IDIR1(IQ1+1) KM = M1 ITK = 1 IDRSZ=ID1SZ C 2810 KL=LINSC(L) C COMPUTE TRACK# (KT) AND SECTOR# (KS)A 282 KT = IADDR(K) KS = ISCTR[(K) DO 290 I=2,KM IF(ITK.NE.1) GO TO 2825 C DIR-1 IQ2=IE1(I) M=IDIR1(IQ2) N=IDIR1(IQ2+1) GO TO 2826 C DIR-2 M=DISC ADDRESS, N=-LENGTH 2825 IQ2=IE2(I) M=IDIR2(IQ2) N=IDIR2(IQ2+1) C CONVERT N TO SECTORS 2826 ML=LINSC(N) C GET TRACK# (MT) AND SECTOR# (MS) 283 MT = IADDR(M) MS = ISCTR(M) C NOW CHECK FOR OVERLAP IF((48*KT+KS+KL).LE.(48*MT+MS)) GO TO 288 C OVERLAP-- OUTPUT OFFENDING ENTRIES WRITE(6,285) ITK 285 FORMAT (/"### DIRECTORY-",I1," ENTRY OVERLAP ###") JM1=48*KT JM2=48*MT WRITE(6,286)ITK,IQ1,K,L WRITE(6,286)ITK,IQ2,M,N 286 FORMAT(" DIR",I1,"(",@5,"B)=",O6,2X,O6) IERR=.TRUE. C SET UP FOR NEXT ENTRY 288 K = M L = N KL=ML IQ1=IQ2 KT = MT KS = MS 290 CONTINUE C 2930 IF(ID2SZ.EQ.O) GO TO 334 IF(ITK.NE.1) GO TO 300 C SET UP FOR DIR-2 IQ1=IE2(1) K=IDIR2(IQ1) L=IDIR2(IQ1+1) ITK=2 KM=N1 IDRSZ=ID2SZ+8 GO TO 2810 C C C CHECK DIR1 VS. DIR2 C 300 M1 = (ID1SZ+ID2SZ)/8 K = 1 M = 1 C SET UP FIRST PROGRAM ENTRIES OF DIRECTORY KX=IE1(1) MX=IE2(1) C JM1=DISC ADDR, JM2=-LENGTH FOR DIR1 C JM3=DISC ADDR, JM4=-LENGTH FOR DIR2 JM1=IDIR1(KX) JM2=IDIR1(KX+1) L=LINSC(JM2) JM3=IDIR2(MX) JM4=IDIR2(MX+1) N=LINSC(JM4) C GET TRACK# (KT,MT) AND SECTOR# (KS,MS)AA KT=IADDR(JM1) KS=ISCTR(JM1) MT=IADDR(JM3) MS=ISCTR(JM3) C NOW CHECK BOTH DIRECTORIES TO BE SURE THEY DO NOT OVERLAP C EACH OTHER. DO 330 I=1,M1 IF (KT.LT.MT) GO TO 320 IF((KT.EQ.MT) .AND. (KS.LT.MS)) GO TO 320 IF((48*MT+MS+N) .LE. (48*KT+KS)) GO TO 315 ASSIGN 315 TO JKK GO TO 332 315 IF(((M+1)*8) .GT. ID2SZ) GO TO 334 M = M+1 MX=IE2(M) JM3=IDIR2(MX) JM4=PIDIR2(MX+1) N=LINSC(JM4) MT=IADDR(JM3) MS=ISCTR(JM3) GO TO 330 320 IF((48*KT+KS+L) .LE. (48*MT+MS)) GO TO 325 ASSIGN 325 TO JKK GO TO 332 325 IF(((K+1)*8) .GT. ID1SZ) GO TO 334 K = K+1 KX=IE1(K) JM1=IDIR1(KX) JM2=IDIR1(KX+1) L=LINSC(JM2) KT=IADDR(JM1) KS=ISCTR(JM1) 330 CONTINUE GO TO 334 C 332 WRITE(6,305) 305 FORMAT (/"### DIRECTORY OVERLAP ###") IQ1=KX+1 IQ2=MX+1 WRITE (6,310) 1,KX,JM1 310 FORMAT (" DIR",I1," (",@5,"B)=",O6) WRITE (6,310) 1,IQ1,JM2 WRITE (6,310) 2,MX,JM3 WRITE (6,310) 2,IQ2,JM4 IERR=.TRUE. GO TO JKK C C C CHECK ADT VS. DIR1 C ADT VS. DIR2 C C SET UP FOR DIR1 334 ITK=1 IDRSZ=ID1SZ 335 M1=IDRSZ/8 + IATSZ/2 K=1 M=1 C SET UP INITIAL ADT ENTRIES JM3=IADT(1) MT=IADDR(JM3) MS=ISCTR(JM3) JM4=IADT(M+1) DO 350 I=1,M1 IF(ITK.NE.1) GO TO 337 C GET DIRECTORY ENTRY# (KX), THEN DISC ADDR (JM1) AND C FINALLY -LENGTH (JM2). KX=IE1(K) IQ1=KX+1 JM1=IDIR1(KX) JM2=IDIR1(IQ1) GO TO 3375 337 KX=IE2(K) IQ1=KX+1 JM1=IDIR2(KX) JM2=IDIR2(IQ1) C GET DIRECTORY TRACK# (KT) AND -LENGTH (KS) 3375 KT=IADDR(JM1) KS=ISCTR(JM1) C IS DIRECTORY ENTRY < ADT ENTRY? IF ((48*KT+KS).LT.(48*MT+MS)) GO TO 340 C DIRECTORY ENTRY > OR = TO ADT ENTRY, ADD LENGTH OF ADT C ENTRY TO ADT ENTRY AND THEN SEE IF ADT ENTRY < OR = TO C DIRECTORY ENTRY, IF SO---OK. IF((48*MT+MS+JM4) .LE. (48*KT+KS)) GO TO 338 ASSIGN 338 TO JKK GO TO 360 338 IF ((M+2).GT.IATSZ) GO TO 355 C GET ADT ENTRY# (M), THEN GET DISC ADDRESS (JM3) AND BREAK C IT DOWN INTO TRACK# (MT) AND SECTOR# (MS). FINALLY GET # OF C AVAILBLE SPACE (JM4), IN SECTORS. M = M+2 JM3=IADT(M) MT=IADDRY(JM3) MS=ISCTR(JM3) JM4=IADT(M+1) GO TO 350 C DIRECTORY ENTRY < ADT ENTRY, ADD LENGTH OF DIRECTORY C ENTRY (IN SECTORS) TO DIRECTORY ENTRY AND THEN SEE C IF DIRECTORY ENTRY < OR = TO ADT ENTRY, IF SO---OK. 340 KL=LINSC(JM2) 341 IF((48*KT+KS+KL).LE.(48*MT+MS)) GO TO 345 ASSIGN 345 TO JKK GO TO 360 345 IF((K+1)*8.GT.IDRSZ) GO TO 355 K = K+1 350 CONTINUE C C 355 IF((ID2SZ.EQ.0) .OR. (ITK.NE.1)) GO TO 370 ITK=2 IDRSZ=ID2SZ GO TO 335 C 360 WRITE (6,362) 362 FORMAT (/"### DIRECTORY/ADT CONFLICT ###") WRITE (6,310) ITK,KX,JM1 WRITE (6,310) ITK,IQ1,JM2 WRITE (6,364) M,JM3 364 FORMAT (" ADT (",@4,"B)=",O6) IQ2=M+1 WRITE (6,364) IQ2,JM4 IERR=.TRUE. GO TO JKK C C 370 IF(IERR) GO TO 600 WRITE (6,379) 375 WRITE(1,376) 376 FORMAT(//"CHECK/LISTING COMPLETE"/"IF ANOTHER PACK IS TO BE", X "CHECKED/LISTED, CHANGE PACKS NOW"/"'GO' OR 'END'?_") READ (1,377) (IX1(I),I=1,2) 377 FORMAT(2A2) IF(IX1(1).EQ.2HGO) GO TO 20 GO TO 900 379 FORMAT(" CHECK COMPLETE--DISC PACK OK") C ********************************************************* C C SYSTEM PACK C ----------- C C READ "BASE PAGE" OF SYSTEM AREA FROM DISC C 500 CALL EXEC(-1,3,IX1,256,0,12) IATSZ=-IX1(101B+68) DR1SZ=-IX1(101B+0) DR2SZ=-IX1(101B+7) WRITE(6,510) IATSZ,DR1SZ,DR2SZ 510 FORMAT(//" ***************",O6,"B", 1 /" * SYSTEM DISC *",O6,"B", 2 /" ***************",O6,"B",//) C C C ITRK=26 ITRK1=27 ITRK2=28 NSECT=0 IF (IATSZ.LT.3071) GO TO 515 IQ1 = -IATSZ WRITE(6,115) IQ1 IATSZ = 3070 515 JM1=IADT(IATSZ-1) JM2=IADT(IATSZ) IF(JM1.EQ.-1) GO TO 520 WRITE (6,121) JM1,JM2 520 IDR = 0 ISCH = 0 IF(.NOT.OFLAG) GO TO 140 C C LIST ADT AND DIRECTORIES, JDO NOT CHECK DISC PACK C 600 IERR=.FALSE. C OUTPUT ADT 610 WRITE(6,660) IATSZ=IATSZ+2 DO 620 I=1,IATSZ,8 DO 615 J=0,7 JM(J+1)=IADT(I+J) 615 CONTINUE 620 WRITE(6,665) I,(JM(J),J=1,8) C C OUTPUT DIRECTORIES C ITK=1 WRITE (6,1) IDRSZ=DR1SZ 630 WRITE(6,670) ITK DO 645 I=1,IDRSZ,8 DO 640 J=0,7 IF(ITK.NE.1) GO TO 635 JM(J+1)=IDIR1(I+J) GO TO 640 635 JM(J+1)=IDIR2(I+J) 640 CONTINUE 645 WRITE(6,675) I,(JM(J),J=1,8),JM2,JM3,JM4 C IF((DR2SZ.EQ.0) .OR. (ITK.NE.1)) GO TO 375 ITK=2 IDRSZ=DR2SZ GO TO 630 C 660 FORMAT (//" ADT"//) 665 FORMAT (2X,@4,":",8(2X,O6)) 670 FORMAT (//" DIR",I1,//) 675 FORMAT (X,@5,":",8(X,O6),4X,3A2) C C ***************************************************** 900 IX1(1)=0 ICHAN=EXEC(23,IX1,0,1) END INTEGER FUNCTION LINSC(WD) C C RETURNS WITH # OF SECTORS FOR - WORD COUNT WD C INTEGER WD,T T=48 IF(WD.GE.0) GO TO 20 T=-WD/128 IF((-128*T) .LT. WD) T=T+1 20 LINSC=T RETURN END LOGICAL FUNCTION ICKDA(IDADR,ISIZE,IDR,ISCH,IDRX,ISCX, X ITRAK,ISECT,IAFLG) C C THIS FUNCTION RETURNS .TRUE. IF THE DISC ADDRESS SPECIFIED IN C IDADR IS WITHIN THE CORRECT LIMITS FOR A 2000E USER OR SYSTEM DISC C C IDADR=DISC ADDRESS, ISIZE=-LENGTH OF ENTRY, IDR=DRIVE#, C ISCH=SUBCHANNEL#, IDRX=RETURNED WITH DRIVE#, ISCX=RETURNED C =0 IF FIXED DISC, ITRAK=RETURNED WITH TRACK#, ISECT=RETURNED C WITH SECTOR#, AND IAFLG=0 FOR DIRECTORY =1 FOR ADT. C ICKDA = .TRUE. IDRX = 0 ISCX = 1 C DETERMINE LOGICAL DRIVE# AND SUBCHANNEL# IF (IDADR.LT.0) IDRX = 1 IF (IAND(IDADR,100B).NE.0) ISCX=0 C NOW CHECK FOR CORRECT DRIVE AND SUBCHANNEL IF((IDRX.NE.IDR) .OR. (ISCX.NE.ISCH)) ICKDA=.FALSE. C FIND TRACK# AND SECTOR# FOR THIS ENTRY )ISECT = IAND(IDADR,77B) ITRAK = IAND(IDADR,77600B)/200B C CHECK IF SYSTEM OR USER DISC AND SET START OF AVAILABLE C DISC (MNTRK) ACCORDINGLY. MNTRK = 3 IF ((IDR.EQ.0).AND.(ISCH.EQ.0)) MNTRK = 29 C IS TRACK#, OF THIS ENTRY, WITHIN PROPER LIMITS? IF ((ITRAK.LE.202).AND.(ITRAK.GE.MNTRK)) GO TO 108 C IF SYSTEM PACK AND ADT ENTRY, ARE THE SYSTEM ENTRIES OK? IF ((ITRAK.LT.29).AND.(IDR.EQ.0).AND.(ISCH.EQ.0) X .AND.(ISIZE.EQ.0)) GO TO 108 C OR IF USER PACK AND ADT ENTRY, ARE THE SYSTEM ENTRIES OK? IF ((ITRAK.LT.3).AND.((IDR.NE.0).OR.(ISCH.NE.0)) X .AND.(ISIZE.EQ.0)) GO TO 108 ICKDA = .FALSE. GO TO 110 C IF ADT CHECK GO TO 107 108 IF (IAFLG.NE.0) GO TO 107 C C NOT ADT C DIRECTORY C C GET NUMBER OF SECTORS ISZ = ISIZE IF (ISIZE.LT.0) ISZ = (-ISZ/128) + 1 C AND CHECK FOR CORRECT PROGRAM LENGTH IF ((48*ITRAK+ISECT+ISZ).GT.9744) ICKDA=.FALSE. GO TO 110 C C ADT, CHECK LENGTH TO BE SURE < OR = TO 48 SECTORS C 107 IF ((ISECT+ISIZE).GT.48) ICKDA=.FALSE. 110 RETURN END INTEGER FUNCTION IADT(WD) C C RETURNS WITH AN ADT ENTRY FOR ADT WORD# WD C COMMON ITRK,ITRK1,ITRK2,NSECT DIMENSION KADT(128) INTEGER WD,OSECT DATA OSECT/-1/ C NSEC = (WD-1)/128 JJ = WD - NSEC*128 NSEC=NSEC+NSECT IF (NSEC.EQ.OSECT) GO TO 20 C READ IN THE PROPER SECTOR OSECT = NSEC CALL EXEC(-1,3,KADT,128,ITRK,NSEC) C 20 IADT = KADT(JJ) RETURN END INTEGER FUNCTION IDIR1(WD1) C C RETURNS WITH A DIRECTORY ENTRY FOR DIR-1 WORD# WD1 C COMMON ITRK,ITRK1,ITRK2,NSECT DIMENSION KDIR1(128) INTEGER WD1,OSEC1 DATA OSEC1/-1/ C NSEC1 = (WD1-1)/128 JJ1 = WD1 - NSEC1*128 IF(NSEC1.EQ.OSEC1) GO TO 20 C READ IN THE PROPER SECTOR OSEC1 = NSEC1 CALL EXEC(-1,3,KDIR1,1CB@<28,ITRK1,NSEC1) C 20 IDIR1 = KDIR1(JJ1) RETURN END INTEGER FUNCTION IDIR2(WD2) C C RETURNS WITH A DIRECTORY ENTRY FOR DIR-2 WORD# WD2 C COMMON ITRK,ITRK1,ITRK2,NSECT DIMENSION KDIR2(128) INTEGER WD2,OSEC2 DATA OSEC2/-1/ C NSEC2 = (WD2-1)/128 JJ2 = WD2 - NSEC2*128 IF (NSEC2.EQ.OSEC2) GO TO 20 C READ IN THIS SECTOR OSEC2 = NSEC2 CALL EXEC (-1,3,KDIR2,128,ITRK2,NSEC2) C 20 IDIR2 = KDIR2(JJ2) RETURN END $END B EU 22682-18017 1612 SC 0822 FIXED HEAD DISC DIAGNOSTIC             H0108 ASMB,A,B,L,C HED HP 2100 SERIES FIXED HEAD DISC/DRUM DIAGNOSTIC * * ORG 100B JMP CNFIG,I CONFIGURE PROGRAM * * * DIAGNOSTIC FOR FIXED HEAD DISC OR DRUM * * * HARDWARE REQUIRED: * * HP 2100 OR 21MX WITH AT LEAST 8K OF MEMORY & DMA * AND ANY ONE COMBINATION OF THE FOLLOWING: * * HP 2773 OR 2774 DRUM WITH HP 12610B INTERFACE * AND HP 2776 POWER SUPPLY * * HP 2775 DRUM WITH HP 12610B INTERFACE AND * HP 2777 POWER SUPPLY * * HP 2770 OR 2771 DISC WITH HP 12606B INTERFACE * AND HP 2772 POWER SUPPLY * * HP 2766 DISC WITH HP 12610C INTERFACE AND * HP 2772 POWER SUPPLY * * * SOFTWARE REQUIRED: * * DIAGNOSTIC CONFIGURATOR. HP PART # 24296-60001 * * DIAGNOSTIC BINARY OBJECT TAPE * * **** * * * * * * * * **** * **** * * * * * * * * **** * SKP * * * SWITCH REGISTER DURING CONFIGURATION * BITS 0-5 SELECT CODE FOR THE I/O CHANNEL CONTAINING THE * TELETYPE * BITS 6-11 SELECT CODE FOR THE I/O CHANNEL CONTAINING THE * DATA INTERFACE FOR THE DISC * THE COMMAND CHANNEL INTERFACE BOARD IS THE NEXT * HIGHER SELECT CODE * BITS 12-13 SPARE * BIT 14 SET TO ZERO FOR DMA CHANNEL 6. * SET TO ONE FOR DMA CHANNEL 7. (MAY NOT EXIST) * BIT 15 SPARE * * SWITCH REGISTER DURING EXECUTION * * BIT 0 INTERNAL SWITCH REGISTER. SET ON * TO STORE CURRENT SWITCH REGISTER OPTIONS * AND OPERATE FROM THE STORED SETTING. * BIT 1 SET ON TO REPORT ENTRY AND EXIT OF TEST * SECTIONS, CONFIGURATION AND ENTRY POINT  * FOR MAIN DIAGNOSTIC DEVOTED TO TESTING * THE FIXED HEAD DISC/DRUM * BIT 2 IF SET TO ONE,ALTER TRACK TABLE AND/OR * PATTERN TABLE * BIT 3 IF SET TO ONE,EXECUTE OPERATOR DESIGN PROGRAM * BIT 4 SET TO ONE FOR MANUAL INPUT OF DEVICE PARAMETERS * BIT 5 IF SET TO ONE,SHORTEN TESTS IN S3,S4 AND S5 * BIT 6 IF SET TO ONE,RESTRICT TRACK SELECTION (SHORTEN * S3 AND S5) * BIT 7 IF SET TO ONE,REPEAT LAST SECTION * BIT 8 IF SET TO ONE,REPEAT LAST OPERATION ON ERROR * FIVE TIMES * BIT 9 IF SET TO ONE,HALT AFTER EACH SECTION OF THE * PROGRAM * BIT 10 IF SET TO ONE,ALL NON-ERROR MESSAGES FOR THE * TELETYPE WILL BE SUPPRESSED,EXCEPT CURRENT * OPERATION MESSAGES AND H44. * BIT 11 IF SET TO ONE,ALL MESSAGES FOR THE TELETYPE WILL * BE SUPPRESSED * BIT 12 IF SET TO ONE,HALT AT END OF TEST. * BIT 13 IF SET TO ONE,LOOP ON LAST OPERATION * BIT 14 IF SET TO ZERO,PROGRAM HALTS AFTER EACH ERROR * BIT 15 IF SET TO ONE,HALT AFTER CURRENT OPERATION * * * * STARTING ADDRESS IS 100B * SKP ORG 105B ENDING ADDRESS FOR OPTIONAL DUMP DEF PEND ENDING LOCATION OF PROGRAM ORG 126B OCT -1 ORG 130B JMP STAD,I BEGIN MAIN DIAGNOSTIC ETRN DEF ECHO,I RETURN POINT (ALLOWS INTERRUPT) * A EQU 0 A REGISTER ADDRESS B EQU 1 B REGISTER ADDRESS CC EQU 0 THIS SYMBOL IS USED AT ALL PLACES * WHERE THE COMMAND CHANNEL NUMBER * IS STORED CH EQU 0 THIS SYMBOL IS USED AT ALL * PLACES WHERE THE TELETYPE * CHANNEL NUMBlER IS STORED DC EQU 0 THIS SYMBOL IS USED AT ALL * PLACES WHERE THE DATA CHANNEL * NUMBER IS STORED DMA2 EQU 2 DMA CONTROL CHANNEL (2 OR 3) DMA6 EQU DMA2+4 DMA INTERRUPT CHANNEL (6 OR 7) SIOLO EQU 102B ENTRY ADDRESS FOR SIO LIST OUTPUT TMR EQU 121B TIMER SWRG EQU 122B SWITCH REG SZREF EQU 0 APPEARS WHERE A REFERENCE DEPENDS * ON THE SECTOR SIZE. * * SKP * * STORAGE AREA * B8CHK BSS 1 BILD BSS 1 BNCNT BSS 1 BPTRA BSS 1 BUFAD BSS 1 PRIMARY BUFFER ADDRESS BUFAE BSS 1 SECONDARY BUFFER ADDRESS CC7 OCT 0 CCHAR BSS 1 CCNT BSS 1 CH13 NOP CH14 OCT 0 CLOAD BSS 1 CNFSW BSS 1 COPRN NOP CPNT BSS 1 CPONT BSS 1 CSAVE BSS 1 CSTOR BSS 1 CVT1 BSS 1 CVT2 BSS 1 CVT3 BSS 1 CYLX BSS 1 DC14 OCT 0 DFLT BSS 1 DMRF BSS 1 DMA ERROR INDICATOR ELOC BSS 1 LAST ERROR NUMBER FINIT OCT 0 FLAG BSS 1 FLOP OCT 0 GLOB1 BSS 1 GLOB2 BSS 1 GLOB3 BSS 1 GLOB4 BSS 1 GLOB5 BSS 1 GLOB6 BSS 1 IFRST BSS 1 LABEL BSS 1 LABLC OCT 0 LBLP1 BSS 1 LBLP2 BSS 1 LOCAL BSS 1 LREAD BSS 1 LWAM BSS 1 LAST WORD OF AVAILABLE MEMORY MASK BSS 1 MCNT BSS 1 MILLISECOND COUNT MCNTR BSS 1 CYCLES WITHIN MILLISECOND NUMP DEC 1 OPCNT BSS 1 OPSRT BSS 1 PASS BSS 1 PASS NUMBER STORED HERE PATT BSS 1 PCNT BSS 1 PCNTA BSS 1 PFLAG BSS 1 PLOAD BSS 1 PSAVE NOP PSTOR BSS 1 PTCNT BSS 1 PTNX BSS 1 S400 OCT 0 SCPT OCT 0 SECTN BSS 1 CURRENT SECTION NUMBER SECTR BSS 1 SECTOR WHERE CURRENT OPERATION * WILL START SFLAG OCT 0 SHTAS BSS 1 STAUS BSS 1 DEVICE STATUS STORED HERE STRF BSS 1 ERROR POINTER OR ZERO IF NO SUPP OCT 1 TEMP1 BSS 1 TEMP2 BSS 1 TEMP3 BSS 1 TEMP4 BSS 1 TEMP5 BSS 1 TEMP6 BSS 1 TEX BSS 1 TIME BSS 1 TNOT OC-T 0 TPASS OCT 0 TRACK BSS 1 VAL1 BSS 1 VAL2 BSS 1 VALUE BSS 1 WCNT BSS 1 POSITIVE WORD COUNT FOR * CURRENT OPERATION WD0 DEF * WD1 BSS 1 WD2 BSS 1 WD3 BSS 1 WD4 BSS 2 SKP * * CONSTANTS AREA * D0 DEC 0 B1 DEC 1 BIT0 EQU B1 D1 EQU B1 D2 DEC 2 CRLFL EQU D2 BIT1 EQU D2 B2 EQU D2 D3 DEC 3 D4 DEC 4 BIT2 EQU D4 B4 EQU D4 D5 DEC 5 D6 DEC 6 D7 DEC 7 D8 DEC 8 BIT3 EQU D8 B10 EQU D8 D9 DEC 9 B11 EQU D9 D10 DEC 10 B12 EQU D10 D11 DEC 11 B13 EQU D11 D12 DEC 12 B14 EQU D12 D13 DEC 13 B15 EQU D13 D14 DEC 14 B16 EQU D14 D15 DEC 15 B17 EQU D15 BIT4 DEC 16 B20 EQU BIT4 D17 DEC 17 B21 EQU D17 D18 DEC 18 B22 EQU D18 D19 DEC 19 B23 EQU D19 D20 DEC 20 B24 EQU D20 B25 DEC 21 B26 DEC 22 D23 DEC 23 B27 EQU D23 B30 DEC 24 D25 DEC 25 B31 EQU D25 B32 DEC 26 B33 DEC 27 D28 DEC 28 B34 EQU D28 D29 DEC 29 B35 EQU D29 D30 DEC 30 B36 EQU D30 B37 DEC 31 B40 DEC 32 BIT5 EQU B40 D32 EQU B40 B41 DEC 33 B42 DEC 34 B43 DEC 35 B44 DEC 36 B45 DEC 37 B46 DEC 38 B50 DEC 40 D40 EQU B50 B51 DEC 41 D42 DEC 42 B52 EQU D42 B53 DEC 43 B54 DEC 44 B57 DEC 47 B60 DEC 48 B61 DEC 49 B62 DEC 50 B63 DEC 51 B64 DEC 52 B65 DEC 53 B66 DEC 54 B67 DEC 55 B70 DEC 56 B71 DEC 57 B72 DEC 58 B100 DEC 64 BIT6 EQU B100 D64 EQU B100 B103 DEC 67 B104 DEC 68 D72 DEC 72 D89 DEC 89 D90 DEC 90 BIT7 OCT 200 D128 EQU BIT7 B235 OCT 235 B335 OCT 335 B336 OCT 336 B337 OCT 337 BIT8 OCT 400 D256 EQU BIT8 BIT9 OCT 1000 BIT10 OCT 2000 BIT11 OCT 4000 BIT12 OCT 10000 BIT13 OCT 20000 BIT14 OCT 40000 BIT15 OCT 100000 B7400 OCT 17400 B7777 OCT 17777 BB OCT 20040 CRLF OCT 6412 D7777 OCT 37777 F4400 OCT 54400 F5000 OCT 55000 H7400 OCT 77400 JMPI OCT 126000 JSB1 JSB R1,I NN OCT 47000 P7400 OCT 177400 P7700 OCT 177700 P7775 OCT 177775 P7776 OCT 177776 THLT OCT 106002 THLT1 OCT 106000 HLTC OCT 102010 YY OCT 13400 B77 OCT 77 B177 OCT 177 B377 OCT 377 B1777 OCT 1777 B3777 OCT 3777 B3407 OCT 003407 D100 DEC 100 B6000 OCT 6000 D1000 DEC 1000 D1024 EQU BIT10 D1664 DEC 1664 D2048 EQU BIT11 PAGE8 OCT 16000 MM1 DEC -1 ALL EQU MM1 MM2 EQU P7776 MM4 DEC -4 MM5 OCT -5 MM7 DEC -7 MM8 DEC -8 MM10 DEC -10 MM11 DEC -11 MM15 DEC -15 MM16 DEC -16 MM28 DEC -28 MM48 OCT -60 MM50 DEC -50 MM54 DEC -54 MM56 OCT -70 MM58 OCT -72 MM60 DEC -60 MM63 DEC -63 MM64 EQU P7700 MM70 DEC -70 MM99 DEC -99 MM100 DEC -100 M256 EQU P7400 M512 DEC -512 M1000 DEC -1000 M1024 DEC -1024 M7936 DEC -7936 SKP * * ASCII CHARACTERS * ASCZZ ASC 1,00 ASCD ASC 1,D ASCZ ASC 1,0 ASCO ASC 1,1 ASCDD ASC 1,DD ASCDZ ASC 1,D0 ASCDO ASC 1,D1 ASCZD ASC 1,0D ASCOD ASC 1,1D ASCZO ASC 1,01 ASCOZ ASC 1,10 ASCOO ASC 1,11 AST ASC 1,ST TEST AS1 ASC 1,S1 SECTION AS2 ASC 1,S2 TITLES AS3 ASC 1,S3 AS4 ASC 1,S4 AS5 ASC 1,S5 AS6 ASC 1,S6 * * READ/WRITE BUFFERS AND OPDSN WORK AREA * BPTR DEF BUFB WRITE BUFFER BPTS DEF BUFB+1024 READ BUFFER BPTO EQU PAGE8 OPDSN PROGRAM START DMACW ABS 20000B+DC SKP * * * BASE PAGE LINKS AND POINTERS * * ADDOI DEF ADDO ADDRS DEF INTPT+1 BINRI DEF BINRY CNFIG DEF INIT CNVRP DEF CNVRT CNWRP DEF CNWRT CRLFI DEF CRLF CSTRI DEF CSTR CYLJI DEF CYLJ CYLTI DEF CYLT DDD DEF D0 DONE DEF AGAIN EXIT FROM OPDSN ECHO DEF ECHOS EFER DEF FER EFERC DEF FERC ELER DEF LER FTR DEF FTRBN OP1I DEF OP1 OP2I DEF OP2 OPDNI DEF OPDSN P002A DEF J002A P003A DEF J003A P004A DEF J004A P005A DEF J005A P006A DEF J006A P012A DEF JP12A P013A DEF JP13A P013B DEF JP13B P014A DEF JP14A P015A DEF JP15A P023A DEF JP23\A P024A DEF JP24A P027A DEF JP27A P035A DEF JP35A P035B DEF JP35B P036A DEF JP36A P040A DEF JP40A P041A DEF JP41A P042A DEF JP42A P043A DEF JP43A P043B DEF JP43B P043C DEF JP43C P044A DEF JP44A P044B DEF JP44B P044C DEF JP44C P045A DEF JP45A P045B DEF JP45B P045C DEF JP45C P045D DEF JP45D P045E DEF JP45E P055A DEF JP55A P063A DEF JP63A P063B DEF JP63B P066A DEF JP66 P067A DEF JP67 PATR DEF PATRP PATT2 DEF PATT1 PATTI DEF PATT PCHKI DEF PCHK PFMI DEF FMI PFML DEF FML DCNVS DEF DSTRT JDUMP JMP DCNVS,I PL0A DEF L0A PL01 DEF L01 PL11 DEF L11 PL11A DEF L11A PPT1 JSB TV1,I PPT2 JSB TV2,I PPT4 JSB TV4,I PPT5 JSB TV5,I PPT6 JSB TV6,I PPT7 JMP DONE,I PPT9 JSB TV9,I PPT10 JSB TV10,I PPT14 JMP TV14,I PPT15 JSB TV15,I PSTRI DEF PSTR PT3NI DEF PUT3N R1 DEF RETRN RCGNI DEF RCGEN RNTSI DEF RNTS RWCGI DEF RWCG STAD DEF START SWBT8 DEF SWB8I TRT DEF TRTBP TV1 DEF TVP1 TV2 DEF TVP2 TV4 DEF TVP4 TV5 DEF TVP5 TV6 DEF TVP6 TV9 DEF TVP9 TV10 DEF TVP10 TV14 DEF TVP14 TV15 DEF TVP15 VAL DEF VALUE EER2 DEF EE2 EER3 DEF EE3 SECT DEF *,I * DEF S1 * DEF S2 * DEF S3 * DEF S4 * DEF S5 * SKP * * * THE FOLLOWING WORDS AND EQUATES DETERMINE THOSE * STATUSES, COMMANDS, SIZES, ETC. THAT MIGHT * VARY BECAUSE OF DESIGN CHANGES ETC. * * * DBBIT EQU BIT0 DISC BUSY BIT PEBIT EQU BIT1 PARITY ERROR BIT WEBIT EQU BIT2 WRITE ENABLED BIT * BIT3 ABORT BIT * BIT4 NOT USED ACBIT EQU BIT5 SECTOR ADDRESS COINCIDENCE BIT RIBIT EQU BIT6 READ INHIBIT BIT(2770/1 ONLY) DRBIT EQU BIT7 DISC READY BIT * BIT8 NEXT * THRU SECTOR * BIT14 ADDRESS * BIT15 SECTOR BIT * * HED RAND * * * * RANDOM NUMBER GENERATOR * * THIS ROUTINE GENERATES BIT PATTERNS FOR * THE DISK DIAGNOSTIC. NO CLAIM IS MADE FOR * STATISTICAL RANDOMNESS. * * EXITS WITH PATTERN IN A, * B UNCHANGED, * ROUTINE USES 13 MACHINE CYCLES * * * RAND NOP LDA BASE LOAD BASE ADA PRIME SUBTRACT THE PRIME SSA SKIP IF STILL POSITIVE LDA BASE OOPS, BASE NOT BIG ENOUGH CLE,ELA DOUBLE BASE OR REMAINDER STA BASE FOR NEXT TRY JMP RAND,I PRIME DEC -31069 * THIS PRIME NUMBER LOOPS EVERY * 31068 TIMES IN ITS RECIPROCAL * EXPANSION BASE ABS 034521B HED SEEK,STAT * * SEEK * * SELECT HEAD AND GATHER STATUS * SEEK NOP LDA SCPT SECTORS PER TRACK LDB TRACK TRACK NUMBER BLF,RBL POSITION CPA D90 SKIP IF 32 RBL,RBL IGNORE CYCLES USED ADB SECTR INCLUDE SECTOR CC16 OTB CC OUTPUT CW4 JSB STAT GATHER STATUS JMP SEEK,I EXIT * * STAT * * STATUS ROUTINE * STAT NOP LDA SUPP ALLOW SZA,RSS SUPPRESSION JMP STAT,I OF STATUS CHECK CC15 LIA CC INPUT STATUS INTO A STA STAUS SAVE STATUS JMP STAT,I EXIT HED PCOP,COPR * * CURRENT OPERATION (LOOP ADDRESS) * COPR NOP STA COPRN JMP COPR,I * * PRINT CURRENT OPERATION * PCOP NOP ROUTINE TO PRINT COPR LDA COPRN JSB PRINT OUTPUT MESSAGE LDA COPRN LOAD HALT CODE JMP PCOP,I HED ERROR * * ERROR * REPORT ERROR MESSAGES * USES SIOLO,SWR,B11CK * THE RETURN ADDRESS IS USED TO LOOK UP THE ADDRESS,LENGTH AND * NUMBER OF THE ERROR MESSAGE * ERROR NOP CLF 0 DISABLE C0.*INTERRUPTS CCB ADB ERROR LDA EFER,I FIND ERROR NUMBER BASED ON RETRN ER2 EQU * CPB A,I ADDRESS AND TABLE JMP ER1 FOUND IT INA CPA ELER,I JMP 100B PROGRAM ERROR,PAGE 0 MAY BE * WIPED OUT. JMP ER2 ER1 EQU * ADA EFERC,I ADA MM1 STA ELOC JSB PRINT PRINT MESSAGE LDB ELOC ADB MM7 -7 SSB SKIP IF ERROR NUMBER GTR THAN 6 JSB ERHLT CHECK FOR HALT JMP ERROR,I HED B11CK,PRINT * * B11CK * IF TTY SUPRESSED RETURN * IF TTY NOT SUPRESSED SKIP NEXT INSTRUCTION ON RETURN * USES SWR * B11CK NOP LDB BIT11 JSB SWRG,I IS TTY SUPPRESSED? JMP B11CK,I YES LDA B11CK NO INA JMP A,I * * PRINT * A = MESSAGE OR ERROR NUMBER * PRINT NOP STA PSAVE JSB B11CK JMP PRINT,I LDA PSAVE LDB A ADB PFMI,I MESSAGE ADDRESS LDB B,I ADA PFML,I MESSAGE LENGTH LDA A,I JSB SIOLO,I OUTPUT MESSAGE JMP PRINT,I HED TTYCK,ERHLT 0* * TTYCK * RETURN IF TTY NOT AVAILABLE FOR NON-ERROR MESSAGES * INCREMENT RETURN ADDRESS IF PRINTOUT OK * TTYCK NOP LDB B6000 BITS 10 AND 11 JSB SWRG,I IS TTY AVAILABLE? JMP TTYCK,I NO,ABORT PRINTOUT LDA TTYCK YES INA JMP A,I * * * * ERHLT * TESTS HALT BIT (BIT14) AFTER ERROR * ERHLT NOP JSB B11CK TTY AVAILABLE? JMP ERH1 NO LDA CRLFL YES LDB CRLFI JSB SIOLO,I PRINT BLANK LINE ERH1 EQU * LDB BIT14 JSB SWRG,I ERROR HALT? JMP ERHLT,I NO LDA ELOC YES HLT 1 JMP ERHLT,I HED DECIN * * DECIN * CONVERTS DECIMAL INTEGERS TO ASCII * A=VALUE ON INPUT * CVT1 = FIRST TWO DIGITS ON EXIT * CVT2 = SECOND TWO DIGITS ON EXIT * DECIN NOP CCB B = -1 DLP1 ADA M1000 ASSUME INTEGER LESS THAN 10000 INB COUNT UP THOUSANDS PART SSA,RSS SKIP WHEN B REG IS CORRECT JMP DLP1 ADA D1000 RESTORE BLF,BLF ADB MM1 DLP2 ADA MM100 INB COUNT UP HUNDREDS PART SSA,RSS SKIP WHEN B REG IS CORRECT JMP DLP2 ADA D100 RESTORE ADB ASCZZ STB CVT1 CCB B = -1 DLP3 ADA MM10 INB COUNT UP TENS PART SSA,RSS SKIP WHEN B REG IS CORRECT JMP DLP3 ADA D10 RESTORE BLF,BLF IOR B IOR ASCZZ STA CVT2 JMP DECIN,I HED DCIN1,DCIN2,SWR4 * * * DCIN1 * STORE ONE WORD OF CONVERTED A AT B * DCIN1 NOP STB LOCAL SAVE POINTER JSB DECIN CONVERT TO ASCII LDA CVT2 STORE STA LOCAL,I INTO MESSAGE JMP DCIN1,I * * DCIN2 * STORE TWO WORDS OF CONVERTED A STARTING AT B * DCIN2 NOP STB LOCAL SAVE POINTER JSB DECIN CONVERT TO ASCII LDA CVT1  STORE LDB LOCAL TWO STA B,I WORDS INB INTO LDA CVT2 MESSAGE STA B,I JMP DCIN2,I * * * SWR4 * INPUT SWITCH REGISTER IF SFLAG = 0 (S1,S2,S3) * USE STORED VERSION IF SFLAG = 1 (S4,S5) * SWR4 NOP LDA SFLAG IS FLAG = O? SZA JMP SWR4A NO STB TEX SAVE B LDB ALL JSB SWRG,I YES,USE SW REG NOP LDB TEX RESTORE B JMP SWR4,I SWR4A LDA S400 USE STORED VALUE JMP SWR4,I HED DCHK * * * THE DCHK ROUTINE IS CALLED AFTER A READ. * IT COMPARES THE READ AND WRITE BUFFERS. * * THE WCHK ROUTINE IS CALLED AFTER A WRITE. * IT CHECKS ONLY THE STATUS. * THE WRERX AND WRERZ ENTRIES ARE USED BY THE * OTHER ROUTINES TO DO THEIR STATUS CHECK. * * * THE PCHK ROUTINE IS CALLED AFTER A READ. * IT COMPARES THE READ BUFFER TO A PATTERN WORD. * * THE RCHK ROUTINE IS CALLED AFTER A READ. * IT CHECKS THE CHECKSUMMED SECTOR IN * THE READ BUFFER. * * THEY COMPARE THE CURRENT STATUS ( STAUS ) WITH THE * PREDICTED STATUS ( SHTAS ) BY CALLING THE ERRAN ROUTINE. * * * THE ROUTINES GIVE A NORMAL RETURN IF NO ERRORS ARE * DETECTED. IF AN ERROR OCCURS, THE ROUTINES GENERATE AN * ERROR MESSAGE AND CHECK FOR HALT OR CONTINUE. * * DCHK NOP TO CHECK FOR ERRORS IN * READ AND TO COMPARE READ * AND WRITE BUFFERS LDA DCHK LOAD RETURN ADDRESS STA WCHK SAVE FOR POSSIBLE CALL * * COMPARES THE BUFAD AND BUFAE BUFFERS USING WCNT * FOR BUFFER LENGTH. * LDA BUFAD LOAD FIRST BUFFER ADDRESS STA TEMP1 LDA BUFAE LOAD SECOND BUFFER ADDRESS STA TEMP2 LDA WCNT CMA,INA STA TEMP3 SET ISZ COUNTER DCM EQU * LDA TEMP1,I CPA TEMP2,I m$ JMP DCL EQUAL COMPARE LDA TEMP3 ADA WCNT GENERATE RELATIVE LOCATION EE101 LDB P043A LOAD POINTER JSB DCIN2 CALL CONVERT ROUTINE LDA TEMP1,I LOAD WHAT WORD SHOULD BE LDB P043C LOAD POINTER JSB CNWRP,I CALL CONVERT AND MOVE ROUTINE LDA TEMP2,I LOAD WHAT WORD ACTUALLY WAS LDB P043B LOAD POINTER JSB CNWRP,I CONVERT TO ASCII LDA NUMP DECREMENT ADA MM1 PRINTOUT COUNT SZA,RSS JMP DCLA IF 1 LEAVE AT 1 AND EXIT STA NUMP E43 JSB ERROR DATA WORD XXXX IS YYYYYY SHOULD * BE ZZZZZZ JMP DCL DCLA EQU * LDB B43 DATA WORD XXXX IS YYYYYY SHOULD * BE ZZZZZZ STB ELOC SAVE FOR ERHLT STB STRF JMP WRERZ GO ANALYZE ERRORS DCL EQU * ISZ TEMP1 COUNT UP BUFFER ISZ TEMP2 ADDRESSES AND ISZ TEMP3 CHECK FOR COMPLETION JMP DCM JMP WRERX BUFFERS OKAY, NORMAL STATUS CHECK HED WCHK * * WCHK NOP TO CHECK FOR ERRORS ON * NON-READ OPERATIONS WRERX EQU * JSB ERRAN CALL ERROR COMPARITOR SZA SKIP IF NO ERROR JMP WRERZ REPORT ERROR LDA DMRF CHECK FOR DMA NOT FINISHED SZA,RSS SKIP IF ERROR JMP WOUT RETURN IF NO TROUBLE JSB SWBT8,I JSB PCOP PRINT CURRENT OPERATION MESSAGE JSB DMERQ PRINT DMA ERROR MESSAGE WROUT JSB ADDOI,I WOUT EQU * LDA MM5 RESET COUNT STA B8CHK LDB BIT15 JSB SWRG,I HLT 4 HALT IF BIT 15 SET JSB LOOP CHECK FOR LOOP JMP WCHK,I RETURN WRERZ EQU * JSB SWBT8,I JSB PCOP PRINT CURRENT OPERATION MESSAGE JSB DMERQ CHECK FOR DMA ERROR JSB ERRAN CHECK FOR STATUS ERRORS SZA SKIP IF STATUS OKAY JSB PRINT P#RINT OUT ERROR MESSAGE LDA STRF CHECK FOR BUFFER ERRORS SZA SKIP IF NO SUCH ERRORS JSB PRINT CLB STB STRF CLEAR OUT POINTER WORD JMP WROUT HED ERRAN * * ERROR ANALYSIS ROUTINE * ERRAN NOP ROUTINE TO PERFORM ERROR ANAL. LDA SUPP ALLOW SZA,RSS SUPPRESSION JMP ERRAN,I OF STATUS CHECK LDA STAUS XOR SHTAS IS ALL AS SHOULD BE AND MASK ALLOW DON'T CARE CONDITIONS SZA,RSS JMP ERRAN,I EVERYTHING IS FINE LDA STAUS LOAD CURRENT STATUS LDB P035A AND ADDRESS FOR BINARY JSB BINRI,I CONVERT TO BINARY DEF MM1 ACCORDING TO THIS MASK (177777) LDA SHTAS LOAD WHAT STATUS SHOULD BE LDB P035B AND ADDRESS FOR BINARY JSB BINRI,I CONVERT TO BINARY DEF MASK ACCORDING TO MASK E35 LDA B35 STATUS IS XX SHOULD BE XX STA ELOC SAVE FOR ERHLT * A MUST BE NON-ZERO AT THIS POINT JMP ERRAN,I RETURN HED LOOP,DGEN * * THE LOOP ROUTINE IS CALLED TO SEE IF * THE SECTION CURRENTLY IN EXECUTION IS TO BE STARTED OVER * OR IS TO CONTINUE ON. * * LOOP NOP LDB BIT13 JSB SWRG,I INPUT SW REG RSS JMP LOOP,I NO,CONTINUE JMP COPR,I LOOP BACK * * DGEN * THIS GOODY FILLS UP THE BUFFER WITH RAW RANDOM DATA * USES WCNT AS A LENGTH * USES BUFAD FOR ADDRESS * * DGEN NOP LDA WCNT CMA,INA STA TEMP1 NEGATIVE WORD COUNT LDA BUFAD STA TEMP2 DGL EQU * JSB RAND GET RANDOM NUMBER STA TEMP2,I ISZ TEMP2 COUNT UP ADDRESS ISZ TEMP1 COUNT JMP DGL JMP DGEN,I HED DMR,DMW * * * THESE ROUTINES SET UP DMA AND START THE DATA CHANNEL. * * THE DMR ROUTINE SETS UP A READ INTO THE INPUT * BUFFER ( ADD9RESS IN BUFAE, COUNT IN WCNT ) * * THE DMW ROUTINE SETS UP A WRITE FROM THE OUTPUT * BUFFER ( ADDRESS IN BUFAD, COUNT IN WCNT ) * * DMR NOP SET UP DMA READ OPERATION LDA DMACW LOAD DMA COMMAND WORD DM6A OTA DMA6 TO DATA CHANNEL DM2A CLC DMA2 PREPARE TO LOAD ADDRESS LDA BUFAE IOR BIT15 OR IN DIRECTION BIT DM2B OTA DMA2 OUTPUT MEMORY ADDRESS DM2C STC DMA2 PREPARE TO LOAD COUNT LDA WCNT LOAD WORD COUNT CMA,INA TWOS COMPLEMENT IS USED BY DMA DM2D OTA DMA2 OUTPUT WORD COUNT LDA TRACK FORM LDB SCPT DEVICE ALF,RAL ADDRESS CPB D90 RAL,RAL ADA SECTR CC30 OTA CC OUTPUT FUNCTION AND ADDRESS WORD DM6B STC DMA6,C START DMA CHANNEL DC05 STC DC INITIATE DATA TRANSFER JMP DMR,I RETURN * * * DMW NOP LDA DMACW LOAD DMA COMMAND WORD DM6C OTA DMA6 TO DATA CHANNEL DM2E CLC DMA2 PREPARE TO LOAD ADDRESS LDA BUFAD AND DM2F OTA DMA2 OUTPUT MEMORY ADDRESS DM2G STC DMA2 PREPARE TO LOAD COUNT LDA WCNT AND CMA,INA OUTPUT TWOS COMPLEMENT OF DM2H OTA DMA2 WORD COUNT LDA TRACK FORM LDB SCPT DEVICE ALF,RAL ADDRESS CPB D90 RAL,RAL ADA SECTR IOR BIT15 CC31 OTA CC OUTPUT FUNCTION AND ADDRESS WORD DM6D STC DMA6,C START DMA CHANNEL DC06 STC DC INITIATE DATA TRANSFER JMP DMW,I RETURN HED READ,WRITE * * * READ AND WRITE * * THESE ROUTINES ARE CALLED TO INITIALIZE ALL * DMA TRANSFERS TO AND FROM THE DISK. * * THEY ASSUME THAT * THE WORD COUNT IS IN WCNT * READ ASSUMES BUFFER ADDRESS IN BUFAE * WRITE ASSUMES BUFFER ADDRESS IN BUFAD * * READ NOP JSB DMR SET UP DMA READ OPERATION JSB DMAT JSB WAIT WAIT FOR READ TO COMPLETE - JSB STAT GET STATUS LDA LREAD DID READ TAKE EXTRA TIME? SZA SKIP IF YES JMP READ,I RETURN STA BUFAE,I MAKE SURE COMPARE WILL FAIL CLA,INA RESET STA LREAD FLAG LDA SHTAS PREVENT STATUS STA STAUS PRINTOUT JMP READ,I RETURN * * * WRITE NOP JSB DMW SET UP DMA WRITE OPERATION JSB DMAT JSB WAIT WAIT FOR WRITE TO COMPLETE JSB STAT GET STATUS AND PEBIT LDB SCPT CPB D32 JMP WR2 SZA JMP WR2 SHOULD BE SET JSB PCOP E7 JSB ERROR PARITY ERROR ON WRITE JSB ADDOI,I WR2 LDA STAUS GET STATUS AND P7775 MASK OFF STA STAUS PARITY ERROR BIT JMP WRITE,I HED WAIT * * ALLOW AT LEAST 645 MICROSECONDS FOR WRITE * OR READ TO COMPLETE * WAIT NOP LDA MM28 STA LOCAL WR1 JSB STAT GET STATUS NOP WAIT NOP FOR NOP SECOND NOP SECTOR NOP CLOCK AND DBBIT SZA,RSS SKIP IF DEVICE IS BUSY JMP WAIT,I EXIT ISZ LOCAL DON'T WAIT TOO LONG JMP WR1 JMP WAIT,I RETURN HED DMAT * * THIS SECTION SHOULD BE CALLED FOR EACH TRANSFER USING THE * DMA. IT CONTINUOUSLY CHECKS FOR THE FLAG TO BE SET ON THE * DMA CHANNEL WHILE MONITORING THE DATA TRANSFER AND * CHECKING FOR OVERTIME. * DMAT NOP LDA MM70 ALLOW 70 MILLISECONDS * (42 MILLISECONDS FOR WORST CASE ACCESS, * 15 MILLISECONDS FOR TRANSFER OF 15 SECTORS * AND 13 MILLISECONDS SLOP) LDB WCNT ALLOW FOR CMB,INB STOLEN CYCLES ADA B FROM DMA STA TEMP6 SET EXTRA CLOCK DMSL EQU * CLA,INA 1 MILLISECOND JSB TMR,I BLOCKS ISZ TEMP6 RSpS JMP TOUT TIME OUT DM6G SFS DMA6 DMA DONE ? JMP DMSL NO JMP DMAT,I YES,RETURN * * ALLOW TIME TO WRAP AROUND TRACK ADDRESS IN VRC * TOUT EQU * LDA FINIT SZA,RSS READ IN START ? JMP TOUT1 NO CLA YES STA FINIT STA LREAD LDA BIT15 ALLOW AT LEAST TWENTY STA TEMP6 SECONDS FOR READ TO COMPLETE JMP DMSL TOUT1 EQU * CLA,INA STA DMRF SAVE FOR LATER CHECK JSB MC TROUBLE. BOMB OUT CARDS DM2J LIA DMA2 LOAD CURRENT WORD COUNT ADA WCNT MAKE INTO POSITIVE WORD COUNT AND B7777 MASK OFF UPPER THREE BITS LDB P013A LOAD POINTER FOR ASCII STORE JSB DCIN2 CALL CONVERT ROUTINE JMP DMAT,I RETURN AND WAIT FOR VERDICT * MC NOP KILL DM6E CLC DMA6 DMA DM6F STF DMA6 TRANSFER CC06 CLC CC DC11 CLC DC DC22 STF DC JMP MC,I HED DMERQ * * DMA ERROR CHECK ROUTINE * * DMERQ NOP JSB TTYCK JMP DMERQ,I LDB DMRF CHECK FOR ACTUAL ERROR SZB,RSS SKIP IF ERROR CONDITION EXISTS JMP DMERQ,I EXIT IF NO ERROR CLA STA DMRF CLEAR ERROR INDICATOR LDA WCNT LOAD THE EXPECTED WORD COUNT LDB P013B LOAD POINTER FOR ASCII STORE JSB DCIN2 CALL CONVERT ROUTINE E13 JSB ERROR XXXX WORDS TRANSFERRED YYYY * EXPECTED JMP DMERQ,I RETURN HED CHAR * * * CHAR * GET NEXT NON-BLANK CHARACTER * WONT SKIP IF BUFFER EMPTY * CHAR NOP CHAR1 ISZ CCNT DONE? PPT3 RSS NO JMP CHAR,I YES LDA BPTRA,I TTY WORD ISZ IFRST JMP SEC ALF,ALF USE LEFT HALF JMP COUT SEC CCB USE RIGHT HALF STB IFRST ISZ BPTRA BUMP WORD POINTER COUT AND B377 STA CCHAR SAVE IT XOR B40 g  IS IT BLANK SZA,RSS SKIP IF NO JMP CHAR1 IGNORE BLANKS LDA CCHAR ISZ CHAR JMP CHAR,I HED DCHAR * * * DCHAR * GET DECIMAL VALUE * SKIPS ON EXIT IF NOT DONE * DCHAR NOP LDA MM58 UPPER LIMIT LDB VAL POINTS TO VALUE DCHR1 STA VAL2 STB VAL1 LDA MM1 STA DFLT DFLT = -1 CLA INITIALIZE TO ZERO DCHR2 STA VALUE STORE VALUE JSB CHAR GET NEXT CHARACTER JMP DOUT2 DONE XOR B54 IS CHARACTER SZA,RSS A COMMA JMP DOUT1 YES,DONE LDA VAL2 CHECK JSB CCK VALIDITY OF CHARACTER JMP DOUT2 BAD STA DFLT DFLT # -1 LDB VALUE OK,BUILD BLF,RBR UP ADB VAL1,I VALUE ADB VAL1,I ADA B JMP DCHR2 CONTINUE DOUT1 ISZ DCHAR NORMAL EXIT DOUT2 LDA VALUE ERROR OR END OF READ BUFFER JMP DCHAR,I HED OCHAR,CCK,H31 * * * OCHAR * GET OCTAL VALUE * SKIPS ON EXIT IF NOT DONE * OCHAR NOP LDA OCHAR STA DCHAR SET RETURN LDA MM56 UPPER LIMIT LDB DDD POINTS TO D0 JMP DCHR1 * * CHECK CHARACTER ROUTINE * CCK NOP CHECK ADA CCHAR VALIDITY SSA OF JMP *+3 CHARACTER CCERR JSB H31 BAD INPUT JMP CCK,I LDA CCHAR ADA MM48 LOWER LIMIT SSA JMP CCERR ISZ CCK JMP CCK,I * * BAD INPUT * H31 NOP LDA B31 JSB PRINT JMP H31,I HED HIN,STUFF * * * HIN * INPUT FROM TTY * HIN NOP LDA D72 CHARACTER COUNT LDB BINA BUFFER ADDRESS JSB 104B,I TTY INPUT DRIVER SZA,RSS WERE ZERO WORDS INPUT? JMP HIN+1 YES,TRY AGAIN CMA STA CCNT SAVE CHARACTER COUNT CCA STA C640IFRST FLAG = -1 LDA BINA STA BPTRA SET POINTER JMP HIN,I BINA DEF BUFB * * STUFF * SET UP CURRENT SECTION * STUFF NOP STA P015A,I AT STA P023A,I RD CHECK STA P041A,I WD STA P042A,I RD STA P066A,I BEGIN SX STA P067A,I END SX JMP STUFF,I HED ASK,QSTAT * * * ASK * ASK OPERATOR IF HE WISHES TO CHANGE TABLE * ASK NOP H25 LDA B25 DO YOU WISH TO CHANGE TABLE? JSB PRINT JSB HIN INPUT FROM KEYBOARD LDA BINA,I INPUT BUFFER AND P7400 GET 1ST ASCII LETTER XOR NN =47000B IS FIRST CHARACTER N ? SZA,RSS SKIP IF NO JMP ASK,I XOR YY =13400B IS FIRST CHARACTER Y ? SZA SKIP IF YES JMP H25 TRY AGAIN ISZ ASK JMP ASK,I * * QSTAT * * OBTAIN STATUS QUICKLY * QSTAT NOP CC69 LIA CC GET STATUS STA STAUS SAVE IT JMP QSTAT,I HED START J6* * START * * INITIALIZES TRAP CELLS, DETERMINES DISC/DRUM * PARAMETERS, TEST VARIABLES AND ALTERS TRACK, * PATTERN TABLES IF DESIRED * ORG 2000B START EQU * CLC 0,C CLEAR I/O,TURN OFF INTERRUPT JSB TTYCK TTY AVAILABLE? JMP H71+1 NO LDB BIT1 JSB SWRG,I REPORT MAIN DIAGNOSTIC? JMP *+2 JMP H71+1 NO LDA B71 H71 JSB PRINT "MAIN DIAGNOSTIC:" LDA 106B CALCULATE LOCATION OF LAST WORD ADA B235 OF AVAILABLE MEMORY AND STORE STA LWAM IN LWAM(OVERLAYS DIAGNOSTIC * CONFIGURATOR UP TO SWR) LDA AST JSB STUFF JSB TTYCK TTY AVAILABLE? JMP ST0 NO LDB BIT1 JSB SWRG,I REPORT ENTRY? JMP *+2 JMP ST0 NO LDA B66 YES JSB PRINT "BEGIN ST" ST0 LDA MM5 RESET STA B8CHK COUNT CLA STA STRF STA DMRF STA FINIT STA TRACK STA SECTR STA WCNT LDA OP2I,I DISARM STA OP1I,I OPEND LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED STA SHTAS STA LREAD LDA B337 STA MASK H46 LDA B46 JSB COPR DEVICE PARAMETER DETERMINATION * * SKIP PARAMETER DETERMINATION IF BIT 6 IS SET AND SCPT AND TNOT * ARE NOT ZERO * LDB BIT6 JSB SWRG,I IS BIT 6 SET? RSS YES,SKIP JMP SW6NO NO LDA SCPT SECTORS PER TRACK SZA,RSS JMP SW6NO SCPT = 0 LDA TNOT TOTAL NUMBER OF TRACKS SZA JMP INITE SKIP PARAMETER DETERMINATION SW6NO EQU * * * ALLOW MANUAL INPUT OF DEVICE PARAMETERS * LDB BIT4 JSB SWRG,I RSS JMP INLPB GET PARAMETERS AUTOMATICALLY * * GET NUMBER OF SECTORS PER TRACK * H50B JSB TTYCK TTY AVAILABLE? JMP H50A NO LDA B50 H50 JSB PRINT ENTER NUMBER OF SECTORS PER * TRACK (32 OR 90) H50A JSB HIN INPUT LINE JSB DCHAR GET VALUE RSS DONE OR ERROR? JMP H50B NOT DONE - ERROR LDB CCNT DONE? SZB JMP H50B NO,ERROR (ALREADY REPORTED) CPA D32 A = RSS 32 CPA D90 OR RSS 90 ? JMP H50B NO,ERROR STA SCPT * * GET TOTAL NUMBER OF TRACKS * H51B JSB TTYCK TTY AVAILABLE ? JMP H51A NO LDA B51 H51 JSB PRINT ENTER TOTAL NUMBER OF TRACKS H51A JSB HIN INPUT LINE JSB DCHAR GET VALUE RSS DONE OR ERROR? JMP H51B NOT DONE - ERROR LDB CCNT DONE? SZB JMP H51B NO,ERROR (ALREADY REPORTED) STA TNOT JMP INITE * * GET SECTORS PER TRACK * INLPB CLB STB LOCAL INLP ISZ LOCAL JMP INLPA JSB PCOP CURRENT OPERATION E47 JSB ERROR UNABLE TO DETERMINE # OF SECTORS JSB ADDOI,I JMP INLPB TRY AGAIN INLPA EQU * JSB STAT ALF,ALF AND B177 ADB A SZA SECTOR = 0? CPA D89 SECTOR = 89? SZB,RSS SKIP AFTER SOME REVOLUTION JMP INLP CONTINUE LDB D32 SZA SKIP FOR 32 SECTORS PER TRACK LDB D90 90 SECTORS PER TRACK STB SCPT STB A LDB P012A JSB DCIN1 SET UP MESSAGE JSB TTYCK JMP INITA LDA B12 H12 JSB PRINT DEVICE HAS XX SECTORS INITA EQU * JSB TTYCK JMP INITB H11 LDA B11 JSB PRINT "SET TRACK PROTECT SWITCH TO NOT * PROTECTED,PRESS RUN" INITB LDA B11 HLT 2 * * GET NUMBER OF TRACKS * LDA B335 STA MASK LDA BPTR SET STA BUFAD UP LDA BPTS BUFFERw STA BUFAE POINTERS JSB TV6,I DB,,0 OCT 100100 OCT 0 OCT 2003 JSB TV4,I WD OCT 100 OCT 0 OCT 0 OCT 2426 JSB TV6,I DB,,131617,C OCT 140100 OCT 131617 OCT 2003 CLA,INA START WITH TRACK 1 ILP1 EQU * STA ITRCK VARIABLE WD STA ITRKA VARIABLE RD JSB TV4,I WD (VARIABLE) OCT 100 ITRCK OCT 0 OCT 0 OCT 2426 JSB TV4,I RD OCT 100 OCT 0 OCT 0 OCT 2416 LDA BUFAE,I FIRST WORD READ SZA JMP IDONE WRAP AROUND CLA,INA ALLOW 16 SECONDS STA FINIT FOR READ JSB TV4,I RD (VARIABLE) OCT 100 ITRKA OCT 0 OCT 0 OCT 2416 CLA RESET STA FINIT ALLOWANCE FLAG LDA BUFAD CHECK STA TEMP1 FIRST LDA BUFAE TEN STA TEMP2 WORDS LDA MM10 OF STA TEMP3 BUFFERS ILP3 LDA TEMP1,I CPA TEMP2,I RSS JMP IDONE ISZ TEMP1 ISZ TEMP2 ISZ TEMP3 JMP ILP3 LDA ITRCK NEXT INA TRACK JMP ILP1 IDONE EQU * LDA ITRCK STA TNOT TOTAL NUMBER OF TRACKS LDB P014A JSB DCIN2 STUFF IN MESSAGE * * GET NUMBER OF PROTECTED TRACKS * JSB TTYCK JMP INITC LDA B10 H10 JSB PRINT "SET TRACK PROTECT SWITCH TO * PROTECTED,PRESS RUN" INITC LDA B10 HLT 2 JSB TTYCK JMP INITF LDA B14 H14 JSB PRINT DEVICE HAS XXXX TRACKS,THE * FOLLOWING ARE PROTECTED INITF EQU * CLA STA GLOB1 STA GLOB2 ILP2 STA TRACK START WITH TRACK 0 LDB SCPT POSITION ALF,RAL TRACK IN CPB D90 COMMAND RAL,RAL WORD zCC50 OTA CC OUTPUT COMMAND JSB STAT GET STATUS AND WEBIT SZA JMP IDNE NOT PROTECTED ISZ GLOB1 TOTAL NUMBER LDA GLOB2 SZA START NEW LINE? JMP INITG NO,CONTINUE THIS ONE LDA TRACK YES LDB P063A JSB DCIN2 CLA,INA STA GLOB2 INITG EQU * LDA TRACK INA CPA TNOT RSS DONE JMP ILP2 CONTINUE LDA GLOB2 SZA,RSS IS THERE A LINE TO COMPLETE? JMP IIDNE NO LDA TRACK JSB IEND DUMP MESSAGE JMP IIDNE * IEND NOP COMPLETE LINE LDB P063B JSB DCIN2 JSB TTYCK JMP IEND,I LDA B63 H63 JSB PRINT XXXX TO YYYY JMP IEND,I * IDNE EQU * LDA GLOB2 SZA,RSS IS THERE A LINE TO COMPLETE? JMP INITH LDA TRACK ADA MM1 BACK UP ONE TRACK JSB IEND INITH CLA STA GLOB2 LDA TRACK INA CPA TNOT RSS DONE JMP ILP2 CONTINUE IIDNE LDA GLOB1 SZA,RSS JSB TTYCK JMP INITI LDA B64 H64 JSB PRINT NONE INITI EQU * JSB TTYCK JMP INITD LDA B11 JSB PRINT "SET TRACK PROTECT SWITCH TO NOT * PROTECTED,PRESS RUN INITD LDA B11 HLT 2 INITE EQU * LDA B337 STA MASK AGAIN EQU * LDB B2 TRAP CELL ADDRESS LDA THLT TRAP CELL HALT OLP STA B,I INB INA CPB B100 TRAP CELL HALTS COMPLETE? RSS YES JMP OLP NO,REPEAT CLA STA MCNT STA MCNTR STA PASS RESTART STA WCNT LDA BPTR STA BUFAD INITIALIZE BUFAD CLA,INA STA SUPP BGN EQU * CLA,INA A _ 1 STA SECTN START WITH SECTION ONE LDA SCPT CPA D32 IS THIS A HP2770/1? JMP TO5 NO * * TEST TRACK ORIGIN * LDA CC7 COMMAND CHANNEL NUMBER JSB CNVRP,I LDA CVT3 STA P002A,I SET UP E2 STA P003A,I SET UP E3 LDA B67 ALLOW 70 MILLISECONDS FOR * TRACK ORIGIN TO OCCUR CC70 CLF CC JSB TMR,I CC71 SFS CC TRACK ORIGIN? JMP TO2 NO,ERROR NOP LET THINGS NOP SETTLE CC73 CLF CC YES,DOES CLF CC74 SFS CC RESET FLAG? RSS YES TO2 JSB EE2 CLF OR SFS FAILED - CHANNEL X * * TEST SCP * LDA MM99 ALLOW A LOT OF TIME STA GLOB3 TO FIND SCP=1 TO6 LDA D40 USE FORTY JSB TMR,I MILLISECOND BLOCKS ISZ GLOB3 RSS JMP TO3 TIME OUT CC75 SFC CC SCP = 0? JMP TO6 NO TO4 LDA D40 JSB TMR,I ISZ GLOB3 RSS JMP TO3 TIME OUT CC72 SFC CC SCP = 1? JMP TO5 YES JMP TO4 NO TO3 JSB EE3 SFC FAILED WITH FLAG CLEAR-CH. X TO5 EQU * LDA THLT1 BLOCK RECONFIGURATION WITH TRAP STA 100B CELL HALT IN 100B SCALR EQU * SECTION CALLER LDB BIT2 JSB SWRG,I IS BIT 2 SET? JSB TTYCK YES,SKIP IF TTY AVAILABLE JMP SNO SKIP TABLE ALTERATIONS * * ALTER TABLES * CTD JSB CYLTI,I PREPARE SYMBOL TABLE H24 LDA B24 TRACK TABLE CONTENTS JSB PRINT JSB ASK WISH TO CHANGE? JMP PAT NO H26 LDA B26 YES,ENTER TRACKS SEPARATED BY * COMMAS JSB PRINT JSB HIN INPUT FROM KEYBOARD CTS JSB DCHAR GET DECIMAL VALUE JMP CTS1 ERROR OR DONE? JSB CSTRI,I STORE IN TABLE JMP CTS CONTINUE CTS1 LDA CCNT SZA,RSS SKIP IF ERROR JSB CSTRI,I DONE JMP CTD PAT JSB PATT2,I PREPARE PAjTTERN TABLE H27 LDA B27 PATTERN TABLE CONTENTS JSB PRINT JSB ASK WISH TO CHANGE? JMP H32 NO H30 LDA B30 YES,ENTER PATTERN NUMBERS * SEPARATED BY COMMAS JSB PRINT JSB HIN INPUT FROM KEYBOARD PTS JSB OCHAR GET OCTAL VALUE JMP PTS1 ERROR OR DONE? JSB PSTRI,I STORE IN TABLE JMP PTS CONTINUE PTS1 LDA CCNT SZA,RSS SKIP IF ERROR JSB PSTRI,I DONE JMP PAT H32 LDA B32 JSB PRINT CLEAR SWITCH 2 LDA B32 HLT 2 LDB BIT2 JSB SWRG,I JMP H32 SNO EQU * LDA P067A,I CPA AST IN START? RSS YES JMP ST2 NO JSB TTYCK TTY AVAILABLE? JMP ST2 NO LDB BIT1 JSB SWRG,I REPORT EXIT? JMP *+2 JMP ST2 NO LDA B67 YES JSB PRINT "END ST" ST2 LDB BIT3 JSB SWRG,I IS BIT 3 SET? JMP OPDNI,I YES LDA SECTN LOAD SECTION NUMBER ADA SECT ADD ON POINTER JSB A,I CALL SECTION JSB TTYCK TTY AVAILABLE? JMP ST3 NO LDB BIT1 JSB SWRG,I REPORT EXIT? JMP *+2 JMP ST3 NO LDA B67 YES JSB PRINT "END SX" ST3 LDA HLTC IOR SECTN =10201X STA SHLT HALT BETWEEN SECTIONS LDB BIT9 JSB SWRG,I SHLT NOP LDB BIT7 JSB SWRG,I JMP SCALR REPEAT LAST TEST LDB SECTN COUNT UP SECTION NUMBER INB STB SECTN CPB D6 FIVE SECTIONS CLA,INA,RSS JMP SCALR ADA PASS INCREMENT PASS NUMBER STA PASS JSB TTYCK JMP HHH LDA PASS LDB P036A CONVERT PASS JSB DCIN2 NUMBER LDA B36 H36 JSB PRINT PASS XXXX LDA TPASS SHORT PASS? SZA,RSS JMP HHH NO T*($ LDA B72 YES JSB PRINT "SHORT PASS" CLA CLEAR SHORT STA TPASS PASS FLAG HHH LDB BIT12 JSB SWRG,I CHECK FOR HALT AT END OF TEST HLT 77B JMP ETRN,I ECHOS JMP BGN RUN TEST OVER SKP HED EE2,EE3 * * E2 ROUTINE * EE2 NOP E2 JSB ERROR CLF OR SFS FAILED - CHANNEL - X JMP EE2,I * * E3 ROUTINE * EE3 NOP E3 JSB ERROR SFC FAILED WITH FLAG CLEAR-CH. X JMP EE3,I HED S1 - SECTION 1 ^** * SECTION 1 * * THIS SECTION TESTS STATUS, ADDRESSING,FLAG * TIMING AND SECTOR COINCIDENCE * LSCTR EQU GLOB1 S1CNT EQU GLOB2 LDLAY EQU GLOB3 CNTR1 EQU GLOB4 OLDAD EQU GLOB5 S1CPT EQU GLOB6 S1 NOP LDA AS1 JSB STUFF CURRENT SECTION JSB TTYCK TTY AVAILABLE? JMP SS0 NO LDB BIT1 JSB SWRG,I REPORT ENTRY? JMP *+2 JMP SS0 NO LDA B66 YES JSB PRINT "BEGIN S1" SS0 LDA FTR,I FIX UP STA TRACK TRACK NUMBER H34 LDA B34 INITIAL JSB COPR STATUS LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED STA SHTAS LDA B335 STA MASK JSB STAT CHECK JSB WCHK STATUS LDA B235 MASK OFF READ INHIBIT SIGNAL STA MASK H52 LDA B52 BUSY CHECK IN S1 JSB COPR CLA CC43 OTA CC DC73 STC DC JSB STAT DC74 CLC DC LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED ADA DBBIT DRIVE BUSY STA SHTAS JSB WCHK LDA B337 RESET STA MASK MASK LDA SCPT CPA D32 JMP S1A CLA STA LOCAL CC77 LIA CC WAIT FOR AND RIBIT READ INHIBIT SZA,RSS BIT TO RESET JMP H53 ISZ LOCAL DON'T WAIT FOREVER JMP CC77 H53 LDA B53 CHECK READ INHIBIT IN S1 JSB COPR LDA BIT7 TRACK = 1 CC44 OTA CC CC76 LIA CC GET STATUS QUICKLY STA STAUS LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED ADA RIBIT READ INHIBIT STA SHTAS JSB WCHK S1A EQU * H21 LDA B21 SECTOR ADDRESS CHECK IN S1 JSB COPR LDA SCPT CPA D90 INA USE 91 INSTEAD OF 90 ALF,ALF STA S1CPT CLB PREVENT STB TIME HANG LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED STA SHTAS JSB QSTAT GET STATUS AND H7400 ISOLATE SECTOR NUMBER STA TEMP1 SAVE INITIAL SECTOR NUMBER STA OLDAD SAVE OLD ADDRESS ADA BIT8 CPA S1CPT CLA STA TEMP2 FORM NEXT SECTOR ADDRESS JMP S1AK S1B STA OLDAD SAVE OLD ADDRESS ADA BIT8 CPA S1CPT CLA STA TEMP2 SET UP NEXT SECTOR VALUE CPA TEMP1 DONE? JMP S1E YES S1C ISZ TIME NO RSS OK JMP S1D TIME OUT S1AK LIA CC AND H7400 CPA OLDAD STILL HERE? JMP S1C YES,CONTINUE LOOKING FOR SECTOR CPA TEMP2 NEXT SECTOR? JMP S1B YES,CONTINUE LOOKING FOR SECTORS S1D JSB QSTAT ONE AND H7400 LAST CPA TEMP2 CHANCE JMP S1B OK - MUST HAVE BEEN PROPAGATING LDA TEMP2 SECTOR NOT FOUND ALF,ALF LDB P055A JSB DCIN1 JSB SWBT8,I JSB PCOP CURRENT OPERATION E55 JSB ERROR SECTOR XX MISSING IN STATUS JSB ADDOI,I S1E JSB QSTAT JSB WCHK ALLOW LOOP * * CHECK SECTOR FLAG TIMING * LDA 115B SSA 2100? JMP S1I NO, SKIP THIS SECTION H22 LDA B22 SECTOR FLAG TIMING CHECK IN S1 JSB COPR LDA SCPT CPA D90 JMP S1Z 90 SECTORS PER TRACK LDA MM99 FOR LONG DELAY LDB B7400 FOR LAST SECTOR JMP S1M S1Z LDA MM63 FOR LONG DELAY LDB F4400 FOR LAST SECTOR S1M STA LDLAY STB LSCTR CLB STB SECTR LDA M7936 STA S1CNT S1Y JSB STAT GET STATUS SSA JMP S1X ISZ S1CNT DON'T HANG JMP S1Y S1Q EQU * JSB SWBT8,I JSB PCOP PRINT CURRENT OPERATION LDA B57 SECTOR COUNT OR PHASE MISSING JSB PRINT JMP S1V EXIT S1X AND H7400 CPA LSCTR 0 RSS JMP S1Y S1N LDA MM2 DELAY AT LEAST INA,SZA 35 MICROSECONDS JMP *-1 JSB STAT SSA,RSS JMP S1U JSB SWBT8,I JSB PCOP E60 JSB ERROR SECOND SECTOR CLOCK TOO LATE JMP S1V EXIT S1U AND H7400 SECTOR COUNT ALF,ALF CPA SECTR CORRECT? JMP S1T ALF,ALF CPA F5000 JMP S1T JSB SWBT8,I JSB PCOP PRINT CURRENT OPERATION LDA B62 INCORRECT SECTOR ADDRESS JSB PRINT JMP S1V EXIT S1T LDB SECTR PREPARE BLF,BLF STB OLDAD FOR NEXT SECTOR CPB LSCTR DONE? JMP S1W YES ISZ SECTR NO LDA LDLAY DELAY TO GIVE INA,SZA MINIMUM OF 360 MICROSECONDS JMP *-1 ON 2100 IN 32 SCPT DEVICE AND JSB STAT 245 MICROSECONDS IN 90 SCPT SSA,RSS DEVICE JMP S1S JSB SWBT8,I JSB PCOP PRINT CURRENT OPERATION E61 JSB ERROR FIRST SECTOR CLOCK TOO SOON JMP S1V EXIT S1S LDA MM50 DON'T ALLOW MUCH MORE THAN 700 STA S1CNT MICROSECONDS FOR FULL SECTOR S1P JSB QSTAT SSA SKIP IF PHASE = 0 JMP S1AI PHASE = 1 ISZ S1CNT JMP S1P CONTINUE JMP S1Q TIME OUT S1AI AND H7400 CPA OLDAD JMP S1N JSB SWBT8,I JSB PCOP E56 JSB ERROR SECTOR COUNTER CHANGED BY FIRST * SECTOR COUNT S1V JSB ADDOI,I S1W EQU * JSB WCHK ALLOW LOOP * * SECTOR ADDRESS COINCIDENCE CHECK * H33 LDA B33 SECTOR ADDRESS COINCIDENCE CHECK JSB COPR LDA SCPT CPA D90 JMP S1L 90 SECTORS PER TRACK LDA B7400 RSS S1L LDA F4400 STA LSCTR LAST SECTOR STA OLDAD CLB STB SECTR SECTR = 0 LDA M7936 DON'T STA S1CNT HANG  S1K JSB QSTAT ISZ S1CNT JMP S1J S1AA EQU * JSB SWBT8,I JSB PCOP PRINT CURRENT OPERATION LDA B57 SECTOR COUNT OR PHASE MISSING S1AE JSB PRINT S1H JSB ADDOI,I JMP S1I EXIT S1J AND H7400 SZA JMP S1K STA CNTR1 S1AH LDA CNTR1 CC46 OTA CC OUTPUT SECTOR ADDRESS LDA M7936 STA S1CNT S1AB JSB QSTAT WAIT SSA FOR JMP S1AJ DESIRED ISZ S1CNT SECTOR JMP S1AB MINUS JMP S1AA ONE S1AJ EQU * AND H7400 CPA OLDAD RSS JMP S1AB S1AC JSB STAT WAIT FOR ISZ S1CNT CORRECT RSS PHASE JMP S1AA SSA JMP S1AC DC71 STC DC START A TRANSFER LDA M7936 STA S1CNT S1AD JSB QSTAT WAIT FOR A SSA CHANGE OF JMP DC72 PHASE ISZ S1CNT JMP S1AD JMP S1AA DC72 CLC DC ABORT TRANSFER AND H7400 ALF,ALF CPA SECTR ADDRESS CORRECT? JMP S1AF YES JSB SWBT8,I JSB PCOP LDA B62 INCORRECT SECTR ADDRESS JMP S1AE EXIT S1AF LDA STAUS SECTOR ADDRESS AND ACBIT COINCIDENCE OCCUR? SZA JMP S1AG YES JSB SWBT8,I JSB PCOP NO E54 JSB ERROR NO SECTOR ADDRESS COINCIDENCE JMP S1H S1AG LDB SECTR BLF,BLF CPB LSCTR DONE? JMP S1I YES STB OLDAD ISZ SECTR ISZ CNTR1 JMP S1AH S1I EQU * LDA B336 STA MASK JSB WCHK ALLOW LOOP JMP S1,I HED S2 - SECTION 2 * * SECTION 2 * * THIS SECTION TESTS MOST INTERFACE FUNCTIONS * USING SHORT READS AND WRITES * S2 NOP LDA AS2 JSB STUFF CURRENT SECTION JSB TTYCK TTY AVAILABLE? JMP S20 NO LDB BIT1 JSB SWraRG,I REPORT ENTRY? JMP *+2 JMP S20 NO LDA B66 YES JSB PRINT "BEGIN S2" S20 LDA B337 STA MASK LDA FTR,I GET FIRST TRACK IN TRACK TABLE STA TR1A STA TR1B STA TR1C STA TR1D STA TR1E STA TR1F STA TR1G STA TR1H STA TR1I STA TR1J JSB TV4,I WD,64,*,0 (VARIABLE) DEC 64 TR1A BSS 1 DEC 0 OCT 2426 LDA D64 GET ADA BPTR FRESH STA BUFAD DATA JSB TV4,I WD,128,*,7 (VARIABLE) DEC 128 TR1B BSS 1 DEC 7 OCT 2426 LDA BPTR STA BUFAD LDA BPTS STA BUFAE JSB TV4,I RD,64,*,0 (VARIABLE) DEC 64 TR1C BSS 1 DEC 0 OCT 2416 LDA D64 ONE STA WCNT SECTOR JSB DCHK CHECK BUFFERS JSB TV4,I RD,128,*,7 (VARIABLE) DEC 128 TR1D BSS 1 DEC 7 OCT 2416 LDA D64 ADA BPTR STA BUFAD LDA D128 TWO STA WCNT SECTORS JSB DCHK CHECK BUFFERS LDA BPTR RESTORE STA BUFAD BUFFER LDA BPTS ADDRESS STA BUFAE LDA SCPT CPA D90 JMP S1F JSB TV4,I WD,256,*,29 (VARIABLE) DEC 256 TR1E BSS 1 DEC 29 OCT 2426 LDA D256 ADA BPTR STA BUFAD JSB TV4,I WD,64,*,0 (VARIABLE) DEC 64 TR1F BSS 1 DEC 0 OCT 2426 LDA BPTR STA BUFAD JSB TV4,I RD,256,*,29 (VARIABLE) DEC 256 TR1G BSS 1 DEC 29 OCT 2416 LDA D256 FOUR STA WCNT SECTORS JSB DCHK LDA D256 ADA BPTR STA BUFAD JSB TV4,I RD,64,*,0 (VARIABLE) DEC 64 TR1H BSS 1 DEC 0 OCT 2416 LDA D64 ONE STA WCNT SECTOR JSB DCHK LDA BPTR U STA BUFAD S1F EQU * JSB TV4,I WD,10,*,0 (VARIABLE) DEC 10 TR1I BSS 1 DEC 0 OCT 2426 LDA MM54 STA S1CNT LDB BPTR ADB D9 LDA B,I S1G INB STA B,I ISZ S1CNT JMP S1G JSB TV4,I RD,64,*,0 (VARIABLE) DEC 64 TR1J BSS 1 DEC 0 OCT 2416 LDA D64 ONE STA WCNT SECTOR JSB DCHK JMP S2,I HED BINRY * * BINRY * * CONVERT A TO BINARY USING RETURN ADDRESS FOR * DON'T CARE MASK AND STORE RESULT AT ADDRESS * IN B (11 WORDS) * BINRY NOP STA TEMP5 VALUE STB TEMP4 ADDRESS LDB BINRY,I MASK LDB B,I ISZ BINRY SET UP FOR EXIT LDA MM5 STA BNCNT SET UP FIRST TEN WORDS BLOOP JSB BINRA CONVERT WORD AND STORE IT LDA TEMP5 SHIFT VALUE RAL STA TEMP5 RBL SHIFT MASK JSB BINRC CONVERT WORD STA TEMP4,I STORE IT ISZ TEMP4 SET UP ADDRESS LDA TEMP5 SHIFT VALUE RAL,RAL STA TEMP5 RBL SHIFT MASK ISZ BNCNT JMP BLOOP JSB BINRA CONVERT LAST WORD AND STORE IT JMP BINRY,I * BINRA NOP LDA ASCD D,BLANK SSB,RSS SKIP IF ONE JMP BINRZ EXIT LDA TEMP5 VALUE SSA SKIP IF ZERO JMP BINRB LDA ASCZ 0,BLANK JMP BINRZ EXIT BINRB LDA ASCO 1,BLANK BINRZ STA TEMP4,I STORE WORD ISZ TEMP4 SET UP ADDRESS JMP BINRA,I RETURN * BINRC NOP SSB SKIP IF ZERO JMP BINRF RBL SHIFT MASK LDA ASCDD D,D SSB,RSS SKIP IF ONE JMP BINRC,I LDA TEMP5 SHIFT VALUE RAL SSA SKIP IF ZERO JMP BINRE LDA ASCDZ D,0 JMP BINRC,I BINRE LDA ASCDO D,1 JMP BINRC,I ر BINRF RBL SHIFT MASK LDA TEMP5 VALUE SSB SKIP IF ZERO JMP BINRH SSA SKIP IF ZERO JMP BINRG LDA ASCZD 0,D JMP BINRC,I BINRG LDA ASCOD 1,D JMP BINRC,I BINRH SSA SKIP IF ZERO JMP BINRJ RAL SHIFT VALUE SSA SKIP IF ZERO JMP BINRW LDA ASCZZ 0,0 JMP BINRC,I BINRW LDA ASCZO 0,1 JMP BINRC,I BINRJ RAL SHIFT VALUE SSA SKIP IF ZERO JMP BINRK LDA ASCOZ 1,0 JMP BINRC,I BINRK LDA ASCOO 1,1 JMP BINRC,I HED S3 - SECTION 3 * * SECTION 3 * * THIS SECTION WRITES AND READS BACK PATTERNS * CHECKING FOR BAD TRACKS OR MARGINAL HEADS. * ORG 4000B S3 NOP LDA AS3 JSB STUFF CURRENT SECTION JSB TTYCK TTY AVAILABLE? JMP SS3 NO LDB BIT1 JSB SWRG,I REPORT ENTRY? JMP *+2 JMP SS3 NO LDA B66 YES JSB PRINT "BEGIN S3" SS3 LDA FLOP XOR D1 STA FLOP LDB BIT5 JSB SWRG,I IF BIT 5 IS SET RSS JMP *+3 JSB SHORT NOTE SHORTENED PASS JMP S3,I RETURN CLA STA CYLX SET ZERO INTO INITIAL TRACK S2A EQU * JSB CYLJ SELECT TRACK LDA MM10 TEN STA PTNX PATTERNS S2B EQU * LDA M512 32 SECTORS STA TEMP1 LDB PTNX LOAD PATTERN COUNTER ADB PATRP ADD ON TABLE ADDRESS LDA B,I STA PATT SAVE PATTERN FOR PCHK ROUTINE LDB BUFAD S2C EQU * STA B,I INB STA B,I INB STA B,I INB STA B,I INB ISZ TEMP1 COUNT DOWN BY FOUR JMP S2C CONTINUE LDA TRACK STA TR2A SET STA TR2B UP STA TR2C WRITES STA TR2D ANDΜ0.* STA TR2E READS STA TR2F JSB TV4,I WD,2048,*,0 (VARIABLE) DEC 2048 TR2A BSS 1 OCT 0 OCT 2426 LDA SCPT CPA D32 JMP S2D JSB TV4,I WD,1664,*,64 (VARIABLE) DEC 1664 TR2B BSS 1 DEC 64 OCT 2426 JSB TV4,I WD,2048,*,32 (VARIABLE) DEC 2048 TR2C BSS 1 DEC 32 OCT 2426 S2D EQU * LDA BPTR STA BUFAE JSB TV4,I RD,2048,*,0 (VARIABLE) DEC 2048 TR2D BSS 1 DEC 0 OCT 2416 JSB PCHKI,I CHECK BUFFER (SECTORS 0-31) LDA SCPT CPA D32 JMP S2E JSB TV4,I RD,2048,*,32 (VARIABLE) DEC 2048 TR2E BSS 1 DEC 32 OCT 2416 JSB PCHKI,I CHECK BUFFER (SECTORS 32-63) JSB TV4,I RD,1664,*,64 (VARIABLE) DEC 1664 TR2F BSS 1 DEC 64 OCT 2416 JSB PCHKI,I CHECK BUFFER (SECTORS 65-89) S2E EQU * ISZ PTNX HAVE ALL PATTERNS BEEN TRIED? JMP S2B NO JSB CYLD INCREMENT CYLX AND CHECK FOR END JMP S2A CONTINUE JMP S3,I HED PATTERN TABLE,SHORT OCT 000000 PATTERN OCT 177777 TABLE OCT 125252 OCT 052525 OCT 007417 OCT 170360 OCT 162745 OCT 163346 OCT 155555 OCT 022222 PATTR EQU * PATRP DEF PATTR * * THIS ROUTINE REPORTS SHORTENED TESTING(BIT 5 OR 6 * SET) FOR TYPE OF PASS MESSAGE * SHORT NOP STB TEX SAVE B CCB STB TPASS LDB TEX RESTORE B JMP SHORT,I HED S4 - SECTION 4 0* * SECTION 4 * * THIS SECTION WRITES AND READS BACK RANDOM DATA * FROM RANDOM LOCATIONS TO CHECK DATA TRANSFER * OPERATIONS * SKNT EQU GLOB1 WSAVE EQU GLOB2 RRPT EQU GLOB3 S4 NOP LDA AS4 JSB STUFF CURRENT SECTION JSB TTYCK TTY AVAILABLE? JMP SS4 NO LDB BIT1 JSB SWRG,I REPORT ENTRY? JMP *+2 JMP SS4 NO LDA B66 YES JSB PRINT "BEGIN S4" SS4 LDB BIT5 JSB SWRG,I SHORT TEST? RSS YES JMP *+4 JSB SHORT NOTE SHORTENED PASS LDB MM64 RSS LDB M1024 NO STB SKNT S3A EQU * JSB RNTSI,I CHOOSE RANDOM TRACK AND SECTOR JSB RWCG GET RANDOM WORD COUNT LDA BPTR STA BUFAD LDA BPTS STA BUFAE JSB DGEN GENERATE A RANDOM BUFFER LDA WCNT SAVE LAST STA WSAVE LOCATION+1 ADA BUFAD ADA MM1 LDB A,I INA STB A,I LDA MM4 STA RRPT S3B LDA B41 WRITE IN S4 H41 JSB COPR JSB WRITE LDA WCNT AND B77 SZA SKIP IF EVEN MULTIPLE OF SECTOR ISZ WCNT H42 LDA B42 READ IN S4 JSB COPR JSB READ JSB DCHK CHECK FOR ERRORS LDA WSAVE STA WCNT ISZ RRPT REPEAT THREE TIMES JMP S3B ISZ SKNT SKIP IF DONE JMP S3A CONTINUE JMP S4,I HED RWCG * * THIS ROUTINE GENERATES A RANDOM WORD COUNT BETWEEN * 1 AND 1023 (64 IN SHORT VERSION). THE WORD * COUNT WILL NOT EXTEND BEYOND THE END OF * TRACK NOR BE EQUAL TO 1. * RWCG NOP RWCA EQU * JSB RAND GET A RANDOM NUMBER RAR AND B1777 WCNT < 1024 SZA,RSS ZERO IS NOT LEGAL JMP RWCA IF ZERO, TRY AGAIN RWCT EQU * STA WCNT LDA WCNT AND B77 CPA D1 JMP RWCA WCNT = 1 (MOD 64) LDA WCNT LDB SCPT LOAD NUMBER OF SECTORS PER TRACK CMB,INB NEGATIVE ADB SECTR ALLOW FOR WHERE WE ARE NOW ALF,ALF CONVERT WCNT TO SECTOR COUNT RAL,RAL AND B77+SZREF CHOP OFF EXTRA ADA B SSA SKIP IF TOO LONG JMP RWCG,I NEGATIVE A MEANS OKAY LDA WCNT LOAD CHOSEN WORD COUNT AND ARS HALVE IT JMP RWCT AND SO ON HED CYLD * * CYLD COUNTS UP CYLX AND CHECKS FOR COMPLETION OF * TEST ON ALL TRACKS. IT GIVES A SKIP RETURN WHEN * ALL TRACKS HAVE BEEN COVERED. * CYLD NOP LDB CYLX LOAD CURRENT TRACK REFERENCE INB COUNT IT UP BY ONE STB CYLX AND STORE IT BACK CMB MAKE ONES COMPLEMENT JSB SWR4 LOAD EFFECTIVE SWITCH REGISTER AND BIT6 CHECK FOR RESTRICTED TRACKS SZA,RSS SKIP IF SHORT TEST REQUESTED JMP CDY FULL TEST JSB SHORT NOTE SHORTENED TESTING ADB D10 THERE ARE TEN TABLE ENTRIES JMP CDZ CDY EQU * ADB TNOT CHECK FOR END OF DEVICE CDZ EQU * SSB SKIP IF NOT DONE ISZ CYLD COUNT UP RETURN ADDRESS ( DONE ) JMP CYLD,I RETURN HED CYLJ * * CYLJ TRANSLATES THE NUMBER IN CYLX TO THE DESIRED * TRACK NUMBER IN TRACK * CYLJ NOP JSB SWR4 LOAD EFFECTIVE SWITCH REGISTER AND BIT6 CHECK FOR RESTRICTED TRACKS SZA,RSS SKIP IF SHORT TEST JMP CJW JSB SHORT NOTE SHORTENED TESTING LDA CYLX CJQ EQU * ADA MM10 CHECK FOR CYLX TOO BIG SSA,RSS SKIP IF OKAY JMP CJQ OTHERWISE, KEEP REDUCING STA TRACK SAVE POINTER CMA,INA PREPARE ADA MM11 TO REVERSE TABLE USE LDB FLOP REVERSE? SZB LDA TRACK NO ADA TRTBP ADD ON TABLE ADDRESS LDA A,I LOAD THE WORD? FROM THE TABLE STA TRACK SET BACK INTO TRACK JMP CYLJ,I RETURN CJW EQU * LDA CYLX PREPARE CMA TO REVERSE ADA TNOT TRACK USE LDB FLOP SZB LDA CYLX STA TRACK STRAIGHT COPY JMP CYLJ,I RETURN HED TRACK TABLE * * TRACK TABLE * FTRBN EQU * TRACK TABLE BEGIN DEC 0,1,2,4,8,12,16,20,25,31 TRTBP DEF * HED S5 - SECTION 5 * * SECTION 5 * * THIS SECTION FILLS THE DEVICE FULL OF CHECK- * SUMMED DATA FOR S5. EACH SECTOR IS CHECKSUMMED * SEPARATELY. THE ENTIRE SECTOR SUMS TO ZERO. THE * FIRST TWO WORDS SUM TO THE TRACK NUMBER. THE NEXT * TWO WORDS SUM TO THE SECTOR NUMBER. TRACKS ARE USED IN * ALTERNATELY INCREASING THEN DECREASING ORDER EACH PASS. * THIS SECTION THEN RANDOMLY READS ONE SECTOR * AND VERIFIES TRACK,SECTOR AND CHECKSUM. THE * OPERATION IS REPEATED 8192 TIMES(256 TIMES * WITH SW REG BIT 5 SET) * SVKC EQU GLOB1 S5 NOP LDA AS5 JSB STUFF CURRENT SECTION JSB TTYCK TTY AVAILABLE? JMP SS5 NO LDB BIT1 JSB SWRG,I REPORT ENTRY? JMP *+2 JMP SS5 NO LDA B66 YES JSB PRINT "BEGIN S5" SS5 LDB BIT6 JSB SWRG,I SAVE BIT 6 NOP OF SW REG STA S400 REGISTER CLA,INA STA SFLAG CLA STA CYLX SET TRACK REFERENCE WORD S4A EQU * JSB CYLJ SET UP TRACK LDA TRACK SET STA TR4A UP STA TR4B VARIABLE STA TR4C WRITES LDA D2048 SET UP WCNT STA WCNT FOR 32 SECTORS JSB DGEN GENERATE RANDOM DATA CLA SECTOR STA SECTR =0 JSB RCGNI,I GENERATE CHECKSUMS JSB TV4,I WD,2048,*,0 (VARIABLE) DEC 2048 TR4A BSS 1 DEC 0 OCT 2426 LDA SCPT CPA D3G2 JMP S4B LDA D32 SECTOR STA SECTR =32 JSB DGEN GENERATE RANDOM DATA JSB RCGNI,I GENERATE CHECKSUMS JSB TV4,I WD,2048,*,32 (VARIABLE) DEC 2048 TR4B BSS 1 DEC 32 OCT 2426 LDA D1664 WORD COUNT STA WCNT =1664 LDA D64 SECTOR STA SECTR =64 JSB DGEN GENERATE RANDOM DATA JSB RCGNI,I GENERATE CHECKSUMS JSB TV4,I WD,1664,*,64 (VARIABLE) DEC 1664 TR4C BSS 1 DEC 64 OCT 2426 S4B EQU * JSB CYLD COUNT UP CYLX AND CHECK FOR DONE JMP S4A CONTINUE CLA STA SVKC LDA D64 ONE STA WCNT SECTOR S5A JSB RNTSI,I GENERATE TRACK AND SECTOR LDA TRACK STA TR5A LDA SECTR STA SR5A JSB TV4,I RD,64,*,* (VARIABLE) DEC 64 TR5A BSS 1 SR5A BSS 1 OCT 2416 JSB RCHK ISZ SVKC LDB BIT5 JSB SWRG,I BIT5 ON? JSB SHORT NOTE SHORTENED TESTING LDB SVKC ADB M256 SHORT TEST? SZA,RSS SKIP IF YES ADB M7936 SSB SKIP IF DONE JMP S5A CLA STA SFLAG CLEAR SWITCH BIT 6 FLAG JMP S5,I RETURN HED RCHK * * * RCHK * THIS ROUTINE CHECKS THE BUFFERS GENERATED BY RCGEN * IT USES BUFAE FOR A POINTER AND CHECKS ONE SECTOR * SEE RCGEN FOR A DESCRIPTION OF THE SECTOR FORMAT * * RCHK NOP LDA RCHK SAVE RETURN ADDRESS FOR EXIT JSB RCHK1 FORM BUFFER CHECK SUM SZA SKIP IF CHECKSUM OK JMP RCER CHECKSUM ERROR LDA TEMP2 GET TRACK CHECK BACK CPA TRACK CHECK FOR PROPER TRACK RSS JMP RCER WRONG TRACK LDA TEMP3 GET SECTR BACK CPA SECTR CHECK FOR PROPER SECTOR JMP WRERX NO BUFFER ERRORS, CHECK STATUS RCER EQU * LDA B23 READ CHECK IN S5 H23 STA COPRN LDA TEMP1 LOAD CHECKSUM LDB P045A POINTER-CHECKSUM JSB CNWRP,I CONVERT TO ASCII LDA TEMP2 LOAD TRACK CHECK LDB P045B POINTER-TRACK JSB CNWRP,I LDA TEMP3 LOAD SECTOR CHECK LDB P045C POINTER-SECTOR JSB CNWRP,I CONVERT TO ASCII LDA TEMP2 LDB P045D PRINT TRACK IN DECIMAL JSB DCIN2 LDA TEMP3 LDB P045E PRINT SECTOR IN DECIMAL JSB DCIN1 E45 LDB B45 BUFFER CHECKSUM XXXXXX TRACK * XXXXXX(YYYY) SECTOR XXXXXX(YY) STB STRF SET ERROR MESSAGE POINTER STB ELOC SAVE FOR ERHLT JMP WRERZ GO ANALYZE ERRORS HED RCHK1 * * RCHK1 * FORM BUFFER CHECKSUM * RCHK1 NOP STA WCHK LDB BUFAE LOAD BUFFER POINTER LDA MM60+SZREF STA TEMP1 SET COUNT FOR ADD LOOP LDA B,I LOAD FIRST WORD INB ADA B,I MAKE TRACK CHECK INB STA TEMP2 SAVE TRACK CHECK LDA B,I INB ADA B,I MAKE SECTOR CHECK INB STA TEMP3 SAVE SECTOR CHECK ADA TEMP2 CHECKSUM SO FAR RCQ EQU * ADA B,I ADD UP ALL WORDS INB ISZ TEMP1 COUNT DOWN COUNTER JMP RCQ STA TEMP1 SAVE CHECKSUM JMP RCHK1,I RETURN HED PCHK * * PCHK ROUTINE. * THIS ROUTINE CHECKS THE ENTIRE READ BUFFER FOR * EQUALITY WITH THE WORD IN PATT. * PCHK NOP LDA PCHK LOAD RETURN ADDRESS STA WCHK SAVE FOR POSSIBLE CALL LDA WCNT LOAD BUFFER LENGTH ARS,ARS DIVIDE BY EIGHT ARS ( FOR EIGHT UNIT LOOP ) CMA,INA TWOS COMPLEMENT STA TEMP1 SET COUNTER FOR LOOP LDB BUFAE LOAD READ BUFFER ADDRESS PCHL1 EQU * LDA MM8 SET STA GLOB1 COUNTER LDA PATT LOAD COMPARISON WORD PCHL2 CPA B,I  CHECK FOR MATCH WITH BUFFER INB,RSS COUNT UP BUFFER ADDRESS AND SKIP JMP PCHE MIS-COMPARE ISZ GLOB1 JMP PCHL2 ISZ TEMP1 COUNT OUT JMP PCHL1 NOT DONE,CONTINUE CHECKING JMP WRERX NO BUFFER ERRORS, CHECK STATUS PCHE STB TEMP2 POINTER - IS LDA PATTI SET UP STA TEMP1 SHOULD BE PART OF ERROR MESSAGE LDA BUFAE CMA,INA ADA TEMP2 A = WORD NUMBER JMP EE101 HED SWB8I * * SWB8I * * IF BIT 8 IS SET , REPEAT LAST OPERATION * 5 TIMES BEFORE REPORTING * SWB8I NOP CHECK LDB BIT8 CHECK JSB SWRG,I BIT 8 RSS JMP SWB8I,I EXIT ,BIT 8 = 0 ISZ B8CHK JMP SWT8A LDA MM5 5TH TIME STA B8CHK RESET COUNT JMP SWB8I,I EXIT SWT8A CLA STA STRF STA DMRF JMP COPR,I TRY AGAIN HED RCGEN * * * RCGEN * THIS ROUTINE CONSTRUCTS THE CHECKSUMS FOR THE WRITE BUFFER. * 1.) EACH SECTOR IS CHECKSUMMED SEPARATELY * 2.) THE ENTIRE SECTOR SUMS TO ZERO ( TWOS COMPLEMENT ) * 3.) THE FIRST TWO WORDS SUM TO THE TRACK NUMBER * 4.) WORDS 2 AND 3 SUM TO THE SECTOR NUMBER * RCGEN NOP LDA WCNT ALF,ALF RAL,RAL AND B77 LEAVE THE NUMBER OF SECTORS CMA,INA COMPLEMENT FOR ISZ STA TEMP1 LDA SECTR STA TEMP2 LDB BUFAD LOAD ADDRESS OF FIRST SECTOR RCGL EQU * LDA MM15 +SZREF STA TEMP3 COUNT FOR FOUR UNIT LOOP LDA B,I GET WORD ZERO CMA,INA MAKE COMPLEMENT ADA TRACK THIS SUMS TO THE TRACK NUMBER INB COUNT UP BUFFER ADDRESS STA B,I INB COUNT UP BUFFER POINTER LDA B,I LOAD WORD 2 CMA,INA CHECK WORD IS COMPLEMENT ADA TEMP2 ADD SECTR INB COUNT UP TO SLOT FOR WORD STA B,I { SAVE SECOND CHECKWORD LDA TRACK ADA TEMP2 ADD ON SECTR NUMBER RCGF EQU * INB COUNT UP BUFFER POINTER ADA B,I ADD ON NEXT WORD OF BUFFER INB ADA B,I INB ADA B,I INB ADA B,I ISZ TEMP3 CHECK FOR DONE JMP RCGF GET ENTIRE BUFFER CMA,INA CHECK IS NEGATIVE ADA B,I SUBTRACT OUT LAST WORD STA B,I INB COUNT TO BEGINNING OF NEXT SECTOR ISZ TEMP2 COUNT UP SECTOR NUMBER ISZ TEMP1 CHECK FOR DONE WITH ENTIRE WRITE BUFFER JMP RCGL NO, GO DO ANOTHER SECTOR JMP RCGEN,I RETURN HED RNTS * * ROUTINE TO PICK A RANDOM TRACK AND SECTOR NUMBER. * LEAVES TWO MACHINE CYCLES UNCOUNTED. * * RNTS NOP RNCA EQU * JSB RAND GET A RANDOM NUMBER ALF,ALF USE LEFT TEN BITS RAL,RAL AND B1777 TRACK < 1024 STA CYLX SAVE IN TRACK REFERENCE WORD CMA ONES COMPLEMENT ADA TNOT CANNOT BE NON-EXISTANT TRACK SSA SKIP IF OKAY JMP RNCA OTHERWISE, TRY AGAIN JSB CYLJI,I TRANSLATE CYLJ INTO TRACK RNSA EQU * JSB RAND CALL RAND THREE TIMES TO GET JSB RAND SEVEN GOOD BITS FOR SECTOR JSB RAND RAR DO NOT USE BIT 0(NOT RANDOM) AND B177 SECTOR < 128 STA SECTR SAVE SECTOR NUMBER CMA ONES COMPLEMENT ADA SCPT TEST FOR LEGAL SECTOR NUMBER SSA SKIP IF OKAY JMP RNSA OTHERWISE, TRY AGAIN JMP RNTS,I RETURN HED CSTR * * PREPARE TRACK TABLE * CSTR NOP LDA TRT CSTR1 STA CPONT SET POINTER LDA CPONT,I ADA MM2 STA CLOAD INA STA CSTOR MOVE LDA CLOAD,I MOVE STA CSTOR,I TABLE LDA CLOAD ENTRY STA CSTOR DOWN ADA MM1 ONE STA CLOAD AND  ADA D11 PLACE CPA CPONT,I VALUE CLB,RSS AT TOP JMP MOVE LDA VALUE STA CSTOR,I STB VALUE JMP CSTR,I HED PATT1,PSTR * * * PATT * PREPARE PATTERN TABLE * PATT1 NOP LDA MM1 TWO LINES WILL BE USED STA PCNTA LDA PATR ADDRESS ADA MM10 OF FIRST STA PLOAD PATTERN LDA P027A ADDRESS STA PSTOR OF MESSAGE PC LDA MM5 FIVE PATTERNS PER LINE STA PCNT PB LDB PSTOR LDA PLOAD,I JSB CNWRP,I CONVERT TO ASCII ISZ PLOAD LDB PSTOR ADB D3 LDA BB TO ASCII SPACES STA B,I INB STB PSTOR ISZ PCNT HAVE WE DONE FIVE YET JMP PB NO ISZ PCNTA YES,HAVE WE DONE TEN YET JMP PATT1,I YES LDA CRLF 06412 STA PSTOR,I ISZ PSTOR JMP PC * * STORE IN TRACK TABLE ROUTINE * PSTR NOP ADD LDA PSTR STA CSTR SET UP RETURN LDA PATR JMP CSTR1 HED MESSAGE TABLES FERC ABS -FER FER DEF *+1 ERROR NOP H1 NOP H2 DEF E2 DEF E3 DEF E4 DEF E5 DEF E6 DEF E7 NOP H10 NOP H11 NOP H12 DEF E13 NOP H14 NOP H15 NOP H16 NOP H17 NOP H20 NOP H21 NOP H22 NOP H23 NOP H24 NOP H25 NOP H26 NOP H27 NOP H30 NOP H31 NOP H32 NOP H33 NOP H34 DEF E35 NOP H36 NOP H37 NOP H40 NOP H41 NOP H42 DEF E4S6403 NOP H44 DEF E45 NOP H46 DEF E47 NOP H50 NOP H51 NOP H52 NOP H53 DEF E54 DEF E55 DEF E56 NOP E57 DEF E60 DEF E61 NOP E62 NOP H63 NOP H64 NOP H65 NOP H66 NOP H67 NOP H70 NOP H71 NOP H72 DEF E73 SKP W;6LER DEF * FMI DEF *+1 MESSAGE ADDRESS TABLE DEF M0 DEF M1 DEF M2 DEF M3 DEF M4 DEF M5 DEF M6 DEF M7 DEF M10 DEF M11 DEF M12 DEF M13 DEF M14 DEF M15 DEF M16 DEF M17 DEF M20 DEF M21 DEF M22 DEF M23 DEF M24 DEF M25 DEF M26 DEF M27 DEF M30 DEF M31 DEF M32 DEF M33 DEF M34 DEF M35 DEF M36 DEF M37 DEF M40 DEF M41 DEF M42 DEF M43 DEF M44 DEF M45 DEF M46 DEF M47 DEF M50 DEF M51 DEF M52 DEF M53 DEF M54 DEF M55 DEF M56 DEF M57 DEF M60 DEF M61 DEF M62 DEF M63 DEF M64 DEF M65 DEF M66 DEF M67 DEF M70 DEF M71 DEF M72 DEF M73 SKP FML DEF *+1 MESSAGE LENGTH TABLE L01 DEF L0 DEF L1 DEF L2 DEF L3 DEF L4 DEF L5 DEF L6 DEF L7 DEF L10 DEF L11 DEF L12 DEF L13 DEF L14 DEF L15 DEF L16 DEF L17 DEF L20 DEF L21 DEF L22 DEF L23 DEF L24 DEF L25 DEF L26 DEF L27 DEF L30 DEF L31 DEF L32 DEF L33 DEF L34 DEF L35 DEF L36 DEF L37 DEF L40 DEF L41 DEF L42 DEF L43 DEF L44 DEF L45 DEF L46 DEF L47 DEF L50 DEF L51 DEF L52 DEF L53 DEF L54 DEF L55 DEF L56 DEF L57 DEF L60 DEF L61 DEF L62 DEF L63 DEF L64 DEF L65 DEF L66 DEF L67 DEF L70 DEF L71 DEF L72 DEF L73 HED S6 - SECTION 6 (OPDSN) * *  OPDSN * OPERATOR DESIGN SECTION * THIS SECTION ALLOWS THE OPERATOR TO DESIGN * HIS OWN TEST AND THEN EXECUTE IT. * ORG 6000B OPDSN LDA AS6 JSB STUFF CURRENT SECTION JSB TTYCK TTY AVAILABLE? JMP *+3 NO LDA B66 YES JSB PRINT "BEGIN S6" LDA BPTO START OF WORK AREA STA BILD STORAGE POINTER STA OPSRT LDA LWAM LIMIT AND B7777 TO 8K ADA MM1 FOR OPDSN STA LBLP1 USE LDA BPTR SET STA BUFAD UP LDA BPTS POINTERS STA BUFAE CLA STA LABLC STA OP1 ARM OPEND H37 LDA B37 ENTER INSTRUCTIONS JSB PRINT OPD1 EQU * JSB HIN INPUT LINE CLA STA PFLAG LDA D64 COMMONLY USED FOR STA WD2 DEFAULT CASE JSB PACK2 GET OP CODE JMP H20 ERROR IN INPUT LDB CODEE OPD2 EQU * SEARCH FOR CPA B,I CODE MATCH JMP OPD3 FOUND IT INB CPB CODEF RSS ERROR - BAD OP CODE JMP OPD2 H20 LDA B20 UNDEFINED INSTRUCTION JSB PRINT JMP OPD1 OPD3 EQU * ADB CODEC STB OPCNT OP CODE ADB OUTC JSB OPEND CHECK FOR ABORT LDA B,I PROCESS INSTRUCTION JMP A,I SKP * * * POUT1 AT,DA,IA * POUT1 LDA PPT1 STA WD1 STORE TRANSFER VECTOR CLA STA WD2 DEFAULT CASE STA WD3 DEFAULT CASE JSB CHAR GET NEXT CHARACTER JMP PUT5B DONE JSB PUT1G CHECK FOR COMMA JSB PUT1D PROCESS FIRST FIELD,TRACK STA WD2 JSB PUT1D PROCESS SECOND FIELD,SECTOR STA WD3 LDA PFLAG DONE? SZA,RSS SKIP IF YES JMP PUT1A ERROR JMP PUT5B PUT1B LDA D3 PUT1F JSB BUILD JMP OPD1 EXIT PUT1A JSB rH31 BAD INPUT JMP OPD1 PUT1D NOP LDA PFLAG DONE? SZA JMP PUT5B YES JSB PUT1X NO,GET NEXT FIELD JMP PUT1D,I CONTINUE PUT1X NOP JSB DCHAR GET NEXT FIELD RSS JMP PUT1X,I JSB PUT1E DONE OR ERROR? ISZ PFLAG DONE JMP PUT1X,I CONTINUE PUT1E NOP DONE OR ERROR? LDB CCNT COLUMNS REMAINING SZB JMP OPD1 ERROR (ALREADY REPORTED) JMP PUT1E,I PUT1G NOP CHECK COMMA XOR B54 SZA,RSS JMP PUT1G,I OK JMP PUT1A PUT1H NOP JSB CHAR GET NEXT CHARACTER JMP PUT1B DONE JSB PUT1G CHECK FOR COMMA JMP PUT1H,I RETURN SKP * * * POUT2 RR,RS,RW,SS,ST * POUT2 NOP LDA PPT2 STA WD1 STORE TRANSFER VECTOR JSB CHAR RSS SKIP IF DONE JMP PUT1A ERROR JMP PUT3J EXIT SKP * * * POUT3 GO,LB * POUT3 LDA PPT3 AN RSS STA WD1 STORE TRANSFER VECTOR JSB CHAR JMP PUT1A ERROR JSB PUT3K GET LABEL JSB CHAR CHECK NEXT CHARACTER RSS OK-SKIP JMP PUT1A ERROR-TOO MANY CHARACTERS LDA OPCNT OP CODE CMA,INA ADA B14 IS IT LB? SZA SKIP IF YES JMP PUT3A MUST BE GO JSB PUT3D SEARCH FOR LABEL JMP PUT3B NOT THERE ISZ LBLP2 FOUND IT LDA LBLP2,I ADDRESS WORD SZA,RSS SKIP IF PREVIOUSLY DEFINED JMP PUT3E H17 LDA B17 DUPLICATE LABEL JSB PRINT JMP OPD1 PUT3B JSB PUT3L CHECK FOR OVERFLOW PUT3E LDA BILD NEXT AVAILABLE LOCATION STA LBLP2,I STORE ADDRESS PUT3J LDA D2 JMP PUT1F EXIT PUT3A JSB PUT3D GO,SEARCH TABLE JMP PUT3F DID NOT FIND IT ISZ LBLP2 FOUND IT PUT3G LDA LBLP2 AND B3777 IOR JMEGPI =126000B STA WD1 JMP PUT3J PUT3F JSB PUT3L CHECK FOR OVERFLOW CLA STA LBLP2,I ZERO ADDRESS WORD JMP PUT3G PUT3D NOP SEARCH TABLE LDB LABLC NUMBER OF LABELS PUT3I SZB,RSS JMP PUT3D,I ZERO LABELS LDA LBLP2,I CPA LABEL JMP PUT3H FOUND IT LDA LBLP2 STEP ADA MM2 BACK STA LBLP2 THROUGH CORE ADB MM1 DECREMENT LABEL COUNT JMP PUT3I PUT3H ISZ PUT3D NORMAL JMP PUT3D,I EXIT PUT3K NOP GET LABEL JSB PUT1G CHECK COMMA JSB PACK2 JMP PUT1A ERROR STA LABEL SAVE LABEL LDA LBLP1 STA LBLP2 JMP PUT3K,I PUT3L NOP CHECK FOR WORK SPACE OVERFLOW JSB PUT3N ISZ LABLC LDA LABEL STA LBLP2,I ISZ LBLP2 JMP PUT3L,I NORMAL EXIT PUT3N NOP LDA LABLC ALS TWO LOCATIONS PER LABEL ADA BILD ADA D4 LDB LBLP1 CMB,INB ADB A SSB,RSS JMP PUT3M OVERFLOW JMP PUT3N,I PUT3M LDA B16 OVERFLOW H16 JSB PRINT JMP OPD1 SKP * * * POUT4 IR,IW,RD,WD * POUT4 LDA PPT4 STA WD1 STORE TRANSFER VECTOR CLA STA WD3 DEFAULT TRACK NUMBER STA WD4 DEFAULT SECTOR NUMBER JSB CHAR GET NEXT CHARACTER JMP PUT4C DONE JSB PUT1G CHECK FOR COMMA JSB PUT4B PROCESS FIRST FIELD,WORD COUNT ISZ DFLT STA WD2 LDA OPCNT IS CPA B13 IT JMP PUT4A RD (16) CPA B26 OR JMP PUT4A IR (12)? JSB PUT6D YES,LIMIT WORD COUNT JMP PUT4D PUT4A LDA WD2 SZA,RSS JMP PUT1A WD2 = 0 AND B77 CPA D1 JMP PUT1A WD2 MOD 64 = 1 PUT4D JSB PUT4B PROCESS SECOND FIELD,TRACK STA WD3 JSB PUT4B PROCESS THIRD FIELD,SECTOR STA WD4 LDA PFLAG DONE? SZA,RSS SKIP IF YES JMP PUT1A ERROR PUT4C LDA D5 EXIT JMP PUT1F PUT4B NOP LDA PFLAG DONE? SZA JMP PUT4C YES JSB PUT1X NO,GET NEXT FIELD JMP PUT4B,I RETURN SKP * * * POUT5 CB * POUT5 LDA PPT5 STA WD1 TRANSFER VECTOR CLA,INA STA WD3 DEFAULT NUMBER OF ERROR PRINTS JSB CHAR JMP PUT5B DONE JSB PUT1G CHECK COMMA JSB DCHAR JMP PUT5A DONE OR ERROR? ISZ DFLT SKIP ON DEFAULT STA WD2 JSB DCHAR RSS JMP PUT1A ERROR JSB PUT1E DONE OR ERROR? ISZ DFLT SKIP ON DEFAULT STA WD3 JMP PUT5B PUT5A JSB PUT1E ISZ DFLT SKIP ON DEFAULT STA WD2 PUT5B LDA D4 JMP PUT1F EXIT SKP * * POUT6 DB * POUT6 LDA PPT6 STA WD1 STORE TRANSFER VECTOR JSB PUT1H LOOK FOR COMMA JSB DCHAR JMP PUT6C DONE OR ERROR? ISZ DFLT SKIP ON DEFAULT STA WD2 JSB PUT6D JSB OCHAR JMP PUT6A DONE OR ERROR? JSB PUT6B JSB CHAR JMP PUT1A ERROR XOR B103 C SZA JMP PUT1A ERROR LDA WD2 IOR BIT14 STA WD2 JSB CHAR JMP PUT5B SHOULD BE DONE JMP PUT1A ERROR PUT6A JSB PUT1E DONE OR ERROR? JSB PUT6B JMP PUT5B PUT6B NOP ISZ DFLT SKIP IF DEFAULT RSS OK JMP PUT1A ERROR STA WD3 LDA BIT15 IOR WD2 STA WD2 JMP PUT6B,I PUT6C JSB PUT1E DONE OR ERROR? ISZ DFLT SKIP IF DEFAULT STA WD2 JSB PUT6D JMP PUT1B EXIT PUT6D NOP CHECK WD2 - MUST NOT BE GREATER LDA WD2 THAN 1024 SSA MUST BE JMP PUT1 A POSITIVE CMA,INA ADA D1024 SSA JMP PUT1A ERROR JMP PUT6D,I SKP * * POUT7 EN * POUT7 LDA PPT7 PUT7G STA WD1 STORE TRANSFER VECTOR LDB LABLC NUMBER OF LABELS LDA LBLP1 INA STA LBLP2 PUT7D SZB,RSS SEARCH FOR JMP PUT7B UNDEFINED LABELS LDA LBLP2,I SZA,RSS JMP PUT7C LDA LBLP2 ADA MM2 STA LBLP2 ADB MM1 JMP PUT7D PUT7B JSB CHAR JMP PUT7F NORMAL START JSB PUT3K JSB CHAR CHECK NEXT CHARACTER RSS OK-SKIP JMP PUT1A ERROR-TOO MANY CHARACTERS JSB PUT3D SEARCH TABLE JMP PUT7A DID NOT FIND IT ISZ LBLP2 FOUND IT LDA LBLP2,I STA OPSRT PUT7F LDA D2 JSB BUILD JMP OPSRT,I START EXECUTION PUT7C LDB LBLP2 ADB MM1 LDA B,I PUT7E STA P040A,I H40 LDA B40 UNDEFINED LABEL,XX JSB PRINT JMP OPD1 PUT7A LDA LABEL JMP PUT7E SKP * * * POUT9 HT * POUT9 LDA PPT9 STA WD1 STORE TRANSFER VECTOR CLA STA WD2 DEFAULT VALUE JSB PUT1H LOOK FOR COMMA JSB OCHAR RSS OK JMP PUT1A ERROR JSB PUT1E DONE OR ERROR? ISZ DFLT SKIP ON DEFAULT STA WD2 STORE VALUE JMP PUT1B EXIT SKP * * * POT10 SC * POT10 LDA PPT10 STA WD1 STORE TRANSFER VECTOR LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED STA WD2 DEFAULT STATUS LDA B377 STA WD3 DEFAULT MASK JSB CHAR JMP PUT5B EXIT JSB PUT1G CHECK FOR COMMA LDA MM16 STA PTCNT CLA ZERO STA WD2 STATUS AND STA WD3 MASK PT10B JSB CHAR JMP PUT1A ERROR CLB,INB B = 1 CPA B60 0 W JMP PT10C CPA B61 1 JMP PT10E CPA B104 D CLB,RSS B = 0,A = 0 JMP PUT1A ERROR PT10C CLA,RSS B = 1,A = 0 PT10E CLA,INA B = 1,A = 1 IOR WD2 FORM RAL STATUS STA WD2 WORD LDA B IOR WD3 FORM RAL MASK STA WD3 ISZ PTCNT DONE? JMP PT10B NO JSB CHAR YES,BUFFER EMPTY? RSS YES JMP PUT1A NO,ERROR LDA WD2 POSITION RAR STATUS STA WD2 AND LDA WD3 MASK RAR STA WD3 JMP PUT5B EXIT SKP * * * POT11 EE * POT11 JSB CHAR RSS SKIP IF DONE JMP PUT1A ERROR LDA BILD CPA BPTO JMP OPD1 NOTHING TO ERASE ADA MM1 LDA A,I STA LOCAL PREVIOUS TRANSFER VECTOR ALF,ALF AND B377 WORD COUNT CMA,INA ADA BILD STA BILD BILD = BILD - WORD COUNT LDA LOCAL AND B377 XOR B14 IS IT LB? SZA,RSS JMP PT11A YES,LB XOR B13 SZA SKIP IF GO JMP OPD1 EXIT LDA BILD,I AND B1777 GET ADDRESS ADA PAGE8 =16000B STA LOCAL OF REFERENCED LABEL LDA LOCAL,I IS THIS LABEL SZA DEFINED? JMP OPD1 YES,EXIT LDA BILD,I SEARCH FOR OTHER REFERENCES STA TEMP1 MASK USED TO SEARCH FOR OTHER LDA BILD REFERENCES STA TEMP2 POINTER PT11C CPA BPTO JMP PT11B NOT FOUND LDA TEMP2 ADA MM1 GET TRANSFER VECTOR LDA A,I ALF,ALF AND B377 GET WORD COUNT CMA,INA ADA TEMP2 ADDRESS = ADDRESS - WORD COUNT STA TEMP2 LDB TEMP2,I CPB TEMP1 JMP OPD1 ANOTHER REFERENCE WAS FOUND JMP PT11C PT11A LDA ?0.*LBLP1 SEARCH TABLE FOR LOCATION OF INA THIS LABEL PT11E STA LBLP2 LDA LBLP2,I CPA BILD JMP PT11D FOUND IT LDA LBLP2 ADA MM2 JMP PT11E PT11D STA TEMP2 WORK AREA POINTER LDA LBLP2 STA LOCAL ADDRESS OF LABEL AND B3777 IOR JMPI =126000B STA TEMP1 MASK USED TO SEARCH FOR OTHER CLA REFERENCES STA LOCAL,I ZERO OUT LABEL LDA TEMP2 JMP PT11C PT11B CLA NO REFERENCE FOUND LDB LOCAL ADB MM1 STA B,I LABEL = 0 INA STA LOCAL,I ADDRESS # 0 ,SO IT WILL BE JMP OPD1 DEFINED SKP %0* * * POT12 EP * POT12 JSB CHAR JMP OPDSN OK JMP PUT1A SHOULD BE DONE * * * POT14 LP * POT14 LDA PPT14 TRANSFER VECTOR JMP PUT7G * * POT15 RT * POT15 LDA PPT15 STA WD1 STORE TRANSFER VECTOR JSB CHAR JMP PUT1A ERROR JSB PUT3K GET LABEL JSB PUT3D SEARCH TABLE JMP PUT7A DID NOT FIND IT-ERROR ISZ LBLP2 FOUND IT LDA LBLP2,I SZA,RSS JMP PUT7A LDA LBLP2 AND B3777 IOR JMPI =126000B STA WD4 JSB CHAR JMP PUT1A ERROR JSB PUT1G JSB DCHAR GET NUMBER OF TIMES TO REPEAT RSS OK-SKIP JMP PUT1A ERROR JSB PUT1E DONE OR ERROR? STA WD2 CLA STA WD3 LDA D5 JSB BUILD JMP OPD1 SKP * * TVP1 AT,DA,IA * TVP1 NOP JSB OPEND CHECK FOR ABORT LDA TVP1,I WD2 STA TRACK LDA TVP1 STA LOCAL SAVE FOR DA,IA ISZ TVP1 LDA TVP1,I WD3 STA SECTR ISZ TVP1 LDA TVP1,I WD4 ISZ TVP1 AND B37 OPCODE SZA JMP TVP1B TVP1A LDA B15 AT H15 JSB COPR JSB SEEK SELECT TRACK AND P7775 MASK OFF STA STAUS PARITY ERROR BIT LDA TVP1,I JSB TVP1G JMP TVP1,I TVP1B CPA B11 JMP TVP1C LDA TRACK DA SZA,RSS LDA TNOT TOTAL NUMBER OF TRACKS ADA MM1 JMP TVP1D TVP1C LDA TRACK IA INA CPA TNOT TOTAL NUMBER OF TRACKS CLA TVP1D STA LOCAL,I JMP TVP1A TVP1G NOP CPA PPT10 IS NEXT TRANSFER VECTOR SC JMP TVP1G,I YES JSB WCHK NO JMP TVP1G,I SKP * * * TVP2 RR,RS,RW,SS,ST * TVP2 NOP JSB OPEND CHECK FOR ABORT LDA TVP2,I WD2 ISZ TVP2 AND B37 OP CODE XOR B17 SZA JMP TVP2A JSB RNTSI,I RR,RANDOM TRACK AND SECTOR JSB RWCGI,I RANDOM WORD COUNT TVP2E LDA B42 READ IN S6 JSB COPR JSB READ TVP2B LDA TVP2,I JSB TVP1G CHECK STATUS JMP TVP2,I EXIT TVP2A XOR B35 SZA JMP TVP2C JSB RNTSI,I RW,RANDOM TRACK AND SECTOR JSB RWCGI,I RANDOM WORD COUNT LDA B41 WRITE IN S6 JSB COPR JSB WRITE JMP TVP2B EXIT TVP2C XOR B2 SZA JMP TVP2D LDA WCNT RS,LIMIT WORD COUNT CMA,INA TO 1024 ADA D1024 LDB D1024 SSA STB WCNT JMP TVP2E TVP2D XOR B4 SZA JMP TVP2F STA SUPP SS JMP TVP2,I TVP2F STA SUPP ST JSB STAT OBTAIN STATUS JMP TVP2B SKP * * * TVP4 IR,IW,RD,WD * TVP4 NOP JSB OPEND CHECK FOR ABORT LDA TVP4,I WD2 STA WCNT ISZ TVP4 LDA TVP4,I WD3 STA TRACK LDA TVP4 FOR IR STA LOCAL AND IW ISZ TVP4 LDA TVP4,I WD4 STA SECTR ISZ TVP4 LDA TVP4,I WD5 ISZ TVP4 AND B377 OP CODE XOR B16 SZA JMP TVP4A TVP4F LDA B42 RD JSB COPR JSB READ TVP4C LDA TVP4,I JSB TVP1G CHECK STATUS JMP TVP4,I EXIT TVP4A XOR B30 SZA JMP TVP4B TVP4G LDA B41 WD JSB COPR JSB WRITE JMP TVP4C TVP4B XOR B34 SZA JMP TVP4D JSB TVP4E IR JMP TVP4F TVP4D JSB TVP4E IW JMP TVP4G TVP4E NOP INCREMENT ADDRESS BY WORD COUNT LDA WCNT AND P7700 CPA WCNT RSS SKIP FOR NO EXTRA WORDS ADA B100 INCREMENT NUMBER OF SECTORS ALF,ALF SHIFT RIGHT RAL,RAL SIX LOCATIONS ADA SECTR FORM NEW SECTOR NUMBER Y LDB A LDA SCPT CMA,INA ADA B SECTR-SCPT SSA SKIP ON OVERFLOW JMP TVP4H LDB A LDA TRACK INCREMENT TRACK NUMBER INA CPA TNOT TOTAL NUMBER OF TRACKS CLA STA LOCAL,I SET UP TRACK NUMBER TVP4H ISZ LOCAL STB LOCAL,I SET UP SECTOR NUMBER JMP TVP4E,I SKP * * * TVP5 CB * TVP5 NOP JSB OPEND CHECK FOR ABORT LDA TVP5,I WD2 STA WCNT ISZ TVP5 LDA TVP5,I WD3 STA NUMP ISZ TVP5 LDA B23 READ CHECK IN S6 JSB COPR LDA SHTAS AVOID STATUS STA STAUS PRINTOUT (ALREADY REPORTED) JSB DCHK COMPARE BUFFERS ISZ TVP5 LDA D1 STA NUMP JMP TVP5,I SKP * * * TVP6 DB * TVP6 NOP JSB OPEND CHECK FOR ABORT LDA TVP6,I WD2 LDB A AND D7777 =37777 STA WCNT SZA,RSS JMP TVP6F WORD COUNT = 0 LDA WCNT CMA,INA STA WCNT WCNT = -WCNT LDA BPTR STA LOCAL SSB JMP TVP6A F=1 TVP6B JSB RAND F=0 JSB TVP6E STORE IN BUFFER,CHECK FOR END JMP TVP6B TVP6A RBL SSB CLB C=0,F=1 ISZ TVP6 C=1,F=1 LDA TVP6,I TVP6C JSB TVP6E STORE IN BUFFER,CHECK FOR END SZB,RSS CMA JMP TVP6C TVP6E NOP STA LOCAL,I STORE A IN BUFFER ISZ LOCAL ISZ WCNT DONE? JMP TVP6E,I NO TVP6G ISZ TVP6 YES ISZ TVP6 JMP TVP6,I EXIT TVP6F SSB ALLOW FOR JMP TVP6,I DB,0 JMP TVP6G SKP * * * TVP9 HT * TVP9 NOP JSB OPEND CHECK FOR ABORT LDA TVP9,I HALT CODE HLT 2 ISZ TVP9 ISZ TVP9 JMP TVP9,I * * * TVP10 SC * TVP10 NOP JSB OPEND CHECK FOR ABORT LDA TVP10,I WD2 STA SHTAS EXPECTED STATUS ISZ TVP10 LDA TVP10,I WD3 STA MASK ISZ TVP10 ISZ TVP10 JSB WCHK CHECK STATUS LDA DRBIT DRIVE READY ADA WEBIT WRITE ENABLED STA SHTAS RESET EXPECTED STATUS LDA B337 STA MASK RESET NORMAL MASK JMP TVP10,I SKP * * * TVP14 LP * TVP14 JSB OPEND CHECK FOR ABORT JMP BPTO,I * * TVP15 RT * TVP15 NOP JSB OPEND CHECK FOR ABORT LDA TVP15,I NUMBER OF TIMES TO REPEAT ISZ TVP15 CPA TVP15,I DONE? JMP TV15A YES ISZ TVP15,I ISZ TVP15 JMP TVP15,I JUMP TO LABEL TV15A CLA STA TVP15,I RESET COUNT ISZ TVP15 ISZ TVP15 ISZ TVP15 JMP TVP15,I SKP * * TABLE OF OP CODES * CODEC ABS -*-2 CODEE DEF *+1 ASC 1,AT 0 ASC 1,CB 1 ASC 1,DA 2 ASC 1,DB 3 ASC 1,EE 4 ASC 1,EN 5 ASC 1,EP 6 ASC 1,GO 7 ASC 1,HT 10 ASC 1,IA 11 ASC 1,IR 12 ASC 1,IW 13 ASC 1,LB 14 ASC 1,LP 15 ASC 1,RD 16 ASC 1,RR 17 ASC 1,RS 20 ASC 1,RT 21 ASC 1,RW 22 ASC 1,SC 23 ASC 1,SS 24 ASC 1,ST 25 ASC 1,WD 26 CODEF DEF * SKP * * CODE GENERATOR TRANSFER TABLE * OUTC DEF *+1 DEF POUT1 AT DEF POUT5 CB DEF POUT1 DA DEF POUT6 DB DEF POT11 EE DEF POUT7 EN DEF POT12 EP DEF POUT3 GO DEF POUT9 HT DEF POUT1 IA DEF POUT4 IR DEF POUT4 IW DEF POUT3 LB DEF POT14 LP DEF POUT4 RD DEF POUT2 RR DEF POUT2 RS DEF POT15 RT DEF POUT2 RW V DEF POT10 SC DEF POUT2 SS DEF POUT2 ST DEF POUT4 WD HED PACK2 * * * PACK2 * INPUT TWO CHARACTERS PACKED INTO ONE WORD * SKIPS ON ERROR-FREE EXIT * PACK2 NOP JSB CHAR FIRST CHARACTER JMP PACK2,I ERROR ALF,ALF POSITION TO LEFT CHARACTER STA LOCAL SAVE JSB CHAR SECOND CHARACTER JMP PACK2,I ERROR IOR LOCAL PACK TOGETHER ISZ PACK2 JMP PACK2,I HED BUILD,OPEND * * BUILD * TRANSFERS CODE FROM WD1,WD2,WD3 AND WD4 TO * THE WORK AREA. * ON ENTRY A= NUMBER OF WORDS TO TRANSFER * BUILD NOP LDB A SAVE COUNT ADB WD0 FORM POINTER TO NEXT WORD STB LOCAL ALF,ALF FORM WORD N ADA OPCNT STA B,I STORE INTO TRANSFER AREA JSB PT3NI,I CHECK FOR OVERFLOW LDA WD0 BUL1 INA LDB A,I TRANSFER STB BILD,I TO WORK AREA ISZ BILD CPA LOCAL DONE? JMP BUILD,I YES JMP BUL1 NO * * * OPEND * CHECKS FOR ABORT (BIT 3=0) IN OPDSN (S6) * OPEND NOP OP1 JMP OPEND,I THIS LOCATION IS A NOP IN S6 STB TEX SAVE B LDB BIT3 JSB SWRG,I IS BIT 3=0? JMP OPA NO, OK LDA OP2 YES ABORT STA OP1 JSB TTYCK TTY AVAILABLE? JMP *+3 NO LDA B67 YES JSB PRINT "END S6" JMP DONE,I OPA LDB TEX RESTORE B OP2 JMP OPEND,I HED MESSAGES R* * MESSAGE AREA * SUP M2 ASC 15,E2 CLF OR SFS FAILED-CHANNEL J002A BSS 1 L2 EQU *+*-M2-M2 M3 ASC 19,E3 SFC FAILED WITH FLAG CLEAR-CHANNEL J003A BSS 1 L3 EQU *+*-M3-M3 M4 ASC 15,E4 STF OR SFC FAILED-CHANNEL J004A BSS 1 L4 EQU *+*-M4-M4 M5 ASC 16,E5 WRONG RETURN ADDRESS-CHANNEL J005A BSS 1 L5 EQU *+*-M5-M5 M6 ASC 14,E6 NO INTERRUPT ON CHANNEL J006A BSS 1 L6 EQU *+*-M6-M6 M7 ASC 10,E7 PARITY BIT ERROR L7 EQU *+*-M7-M7 M10 ASC 19,H10 SET TRACK PROTECT SWITCH TO PROTEC ASC 07,TED,PRESS RUN L10 EQU *+*-M10-M10 M11 ASC 19,H11 SET TRACK PROTECT SWITCH TO NOT PR ASC 04,OTECTED, L11A EQU *+*-M11-M11 ASC 05, PRESS RUN L11 EQU *+*-M11-M11 M12 ASC 08,H12 DEVICE HAS JP12A BSS 1 ASC 04, SECTORS L12 EQU *+*-M12-M12 M13 ASC 02,E13 JP13A BSS 2 ASC 10, WORDS TRANSFERRED JP13B BSS 2 ASC 05, EXPECTED L13 EQU *+*-M13-M13 M14 ASC 08,H14 DEVICE HAS JP14A BSS 2 ASC 18, TRACKS,THE FOLLOWING ARE PROTECTED: L14 EQU *+*-M14-M14 M15 ASC 11,H15 ADDRESS TRACK IN JP15A BSS 1 L15 EQU *+*-M15-M15 M16 ASC 06,H16 OVERFLOW L16 EQU *+*-M16-M16 M17 ASC 10,H17 DUPLICATE LABEL L17 EQU *+*-M17-M17 M20 ASC 13,H20 UNDEFINED INSTRUCTION L20 EQU *+*-M20-M20 M21 ASC 15,H21 SECTOR ADDRESS CHECK IN S1 L21 EQU *+*-M21-M21 M22 ASC 17,H22 SECTOR FLAG TIMING CHECK IN S1 L22 EQU *+*-M22-M22 M23 ASC 09,H23 READ CHECK IN JP23A BSS 1 L23 EQU *+*-M23-M23 M24 ASC 08,H24 TRACK TABLE OCT 06412 JP24A BSS 20 L24 EQU *+*-M24-M24 M25 ASC 12,H25 WISH TO ALTER TABLE? L25 EQU *+*-M25-M25 M26 ASC 18,H26 ENTER TRACKS SEPARATED BY COMMAS L26 EQU *+*-M26-M26 M27 ASC 09,H27 PATTERN TABLE OCT 06412 JP27A BSS 41 L27 EQU *+*-M27-M27 M30 ASC 19,H30 ENTER PATTERNS SEPARATED BY COMMAS L30 EQU *+*-M30-M30 M31 ASC 08,H31 INPUT ERROR L31 EQU *+*-M31-M31 M32 ASC 14,H32 CLEAR SWITCH 2,PUSH RUN L32 EQU *+*-M32-M32 M33 ASC 18,H33 SECTOR ADDRESS COINCIDENCE CHECK ASC 03, IN S1 L33 EQU *+*-M33-M33 M34 ASC 09,H34 INITIAL STATUS L34 EQU *+*-M34-M34 M35 ASC 07,E35 STATUS IS JP35A BSS 11 OCT 6412 ASC 07, SHOULD BE JP35B BSS 11 L35 EQU *+*-M35-M35 M36 ASC 05,H36 PASS JP36A BSS 2 L36 EQU *+*-M36-M36 M37 ASC 12,H37 ENTER INSTRUCTIONS L37 EQU *+*-M37-M37 M40 ASC 10,H40 UNDEFINED LABEL JP40A BSS 1 L40 EQU *+*-M40-M40 M41 ASC 07,H41 WRITE IN JP41A BSS 1 L41 EQU *+*-M41-M41 M42 ASC 06,H42 READ IN JP42A BSS 1 L42 EQU *+*-M42-M42 M43 ASC 07,E43 DATA WORD JP43A BSS 2 ASC 02, IS JP43B BSS 3 ASC 06, SHOULD BE JP43C BSS 3 L43 EQU *+*-M43-M43 M44 ASC 05,H44 TRACK JP44A BSS 2 ASC 04, SECTOR JP44B BSS 1 ASC 06, WORD COUNT JP44C BSS 2 L44 EQU *+*-M44-M44 M45 ASC 10,E45 BUFFER CHECKSUM JP45A BSS 3 ASC 04, TRACK JP45B BSS 3 ASC 01, ( JP45D BSS 2 ASC 05,) SECTOR JP45C BSS 3 ASC 01, ( JP45E BSS 1 ASC 01,) L45 EQU *+*-M45-M45 M46 ASC 17,H46 DEVICE PARAMETER DETERMINATION L46 EQU *+*-M46-M46 M47 ASC 18,E47 UNABLE TO DETERMINE SECTORS PER ASC 03,TRACK L47 EQU *+*-M47-M47 M50 ASC 19,H50 ENTER NUMBER OF SECTORS PER TRACK ASC 05,(32 OR 90) L50 EQU *+*-M50-M50 M51 ASC 16,H51 ENTER TOTAL NUMBER OF TRACKS L51 EQU *+*-M51-M51 M52 ASC 10,H52 BUSY CHECK IN S1 L52 EQU *+*-M52-M52 M53 ASC 14,H53 READ INHIBIT CHECK IN S1 L53 EQU *+*-M53-M53 M54 ASC 17,E54 NO SECTOR ADDRESS COINCIDENCE L54 EQU *+*-M54-M54 M55 ASC 06,E55 SECTOR JP55A BSS 1 ASC 09, MISSING IN STATUS L55 EQU *+*-M55-M55 M56 ASC 18,E56 SECTOR COUNTER CHANGED BY FIRST ASC 06,SECTOR CLOCK L56 EQU *+*-M56-M56 M57 ASC 16,E57 SECTOR COUNT OR FLAG MISSING L57 EQU *+*-M57-M57 M60 ASC 16,E60 SECOND SECTOR CLOCK TOO LATE L60 EQU *+*-M60-M60 M61 ASC 16,E61 FIRST SECTOR CLOCK TOO SOON L61 EQU *+*-M61-M61 M62 ASC 14,E62 INCORRECT SECTOR ADDRESS L62 EQU *+*-M62-M62 M63 ASC 02,H63 JP63A BSS 2 ASC 02, TO JP63B BSS 2 L63 EQU *+*-M63-M63 M64 ASC 04,H64 NONE L64 EQU *+*-M64-M64 M65 ASC 10,H65 TTY BASIC I/O CHECK L65 EQU *+*-M65-M65 M66 OCT 6412 ASC 05,H66 BEGIN JP66 BSS 1 L66 EQU *+*-M66-M66 M67 OCT 6412 ASC 04,H67 END JP67 BSS 1 L67 EQU *+*-M67-M67 M71 ASC 10,H71 MAIN DIAGNOSTIC: L71 EQU *+*-M71-M71 M72 ASC 07,H72 SHORT PASS L72 EQU *+*-M72-M72 HED ADDO,CNWRT * * ROUTINE TO PRINT OUT THE CURRENT DISK ADDRESS * * ADDO NOP JSB B11CK IS TTY AVAILABLE? JMP AOUT NO LDA TRACK YES,CONVERT TRACK NUMBER LDB P044A TO ASCII JSB DCIN2 AND STORE IN MESSAGE LDA SECTR CONVERT SECTOR NUMBER LDB P044B TO ASCII JSB DCIN1 AND STORE IN MESSAGE LDA WCNT CONVERT WORD COUNT LDB P044C TO ASCII JSB DCIN2 AND STORE IN MESSAGE H44 LDA B44 TRACK XXXX SECTOR XX JSB PRINT WORD COUNT XXXX AOUT JSB ERHLT ALLOW HALTS JMP ADDO,I * * * THE CNWRT ROUTINE USES CNVRT TO CONVERT THE WORD IN * THE A REG TO OCTAL AND MOVES THE THREE ASCII WORDS TO * THE LOCATION SPECIFIED BY THE B REG. * * CNWRT NOP STB TEMP4 SAVE ADDRESS FOR OCTAL WORDS JSB CNVRT CONVERT ACTUAL WORD TO OCTAL LDA CVT1 LOAD FIRST WORD STA TEMP4,I ISZ TEMP4 COUNT UP ADDRESS LDA CVT2 STA TEMP4,I ISZ TEMP4 LDA CVT3 STA TEMP4,I JMP CNWRT,I HED CNVRT * * * THE CNVRT ROUTINE CONVERTS THE SINGLE WORD IN THE A * REG. TO THREE ASCII WORDS ( OCTAL ) IN CVT1, CVT2, AND CVT3. * * CNVRT NOP STA TEMP5 SAVE WORD LDB A WORD TO B ALSO ALF AND D7 SSB IOR BIT8F ONE FOR LEFT OCTAL DIGIT IOR ASCZZ STA CVT1 LDA TEMP5 GET WORD BACK ALF,ALF RAL,RAL AND B77 LEAVE TWO DIGITS LDB A SAVE FOR A WHILE ALF,RAL LEFTMOST TO POSITION IOR B OR THE TWO TOGETHER AND B3407 IOR ASCZZ STA CVT2 LDA TEMP5 GET WORD BACK AND B77 LEAVE LAST TWO DIGITS LDB A ALF,RAL IOR B AND B3407 IOR ASCZZ STA CVT3 SAVE RIGHTMOST DIGITS JMP CNVRT,I RETURN HED CYLT * * CYLT * CONVERT TRACK TABLE TO ASCII AND STORE IN MESSAGE * CYLT NOP LDA P024A INITIALIZE STA CPNT POINTER LDA MM10 -1O STA CSAVE CLOOP ADA TRT,I TRACK TABLE POINTER LDA A,I JSB DECIN CONVERT NUMBER LDA CVT1 USE RIGHT AND B377 CHARACTER ALF,ALF OF LDB A CVT1 LDA CVT2 AND AND P7400 LEFT ALF,ALF CHARACTER IOR B OF CVT2 STA CPNT,I FOR FIRST ISZ CPNT WORD LDA CVT2 USE AND B377 RIGHT ALF,ALF CHARACTER IOR B54 OF CVT2 STA CPNT,I AND ISZ CPNT ASCII COMMA ISZ CSAVE FOR SECOND LDA CSAVE WORD SSA JMP CLOOP LDB P024A REMOVE ADB D19 LAST LDA B,I COMMA AND P7400 IOR B40 STA B,I JMP CYLT,I * * WRITE BUFFER BEGIN * BUFB DEF * HED INIT * * INIT * CONFIGURES DATA,COMMAND AND DMA CHANNELS * OVERLAYED UPON INITIATION OF START * ORG 12000B INIT NOP CLA H0 JSB PRINT PRINT HEADING AND CONFIGURATION * REQUEST OCT 107001 HALT TO SET SW REG LIA 1 LOAD SW REG ST;A CNFSW SAVE CONFIGURATION SWITCH REG AND B77 STA CH14 SAVE TELETYPE SELECT CODE LDA CNFSW LOAD CONFIGURATION SWITCH REG ALF,ALF SHIFT RIGHT RAL,RAL SIX LOCATIONS AND B77 STA LOCAL SAVE DATA CHANNEL SELECT CODE LDB FRSTB STB GLOB2 SAVE FIRST POINTER CCA STA FLAG FLAG = -1 LDB LASTB LA STB GLOB1 SAVE LAST POINTER LB LDB GLOB2,I LOAD POINTER LDA B,I LOAD WORD AND P7700 MASK OUT SELECT CODE IOR LOCAL STUFF IN NEW SELECT CODE STA B,I STORE BACK CPB GLOB1,I DONE? JMP LC YES ISZ GLOB2 NO JMP LB LC EQU * ISZ FLAG SKIP IF NOT DONE JMP IOUT DONE ISZ LOCAL INCREMENT TO COMMAND CHANNEL * SELECT CODE LDB FRSTC STB GLOB2 SAVE FIRST POINTER LDB LASTC LOAD LAST POINTER JMP LA IOUT EQU * LDA CNFSW LOAD CONFIGURATION SWITCH REG AND BIT14 SZA SKIP FOR DMA 6 CLA,INA THIS IS DMA 7 STA LOCAL LDB FRSTD STB GLOB2 SET UP POINTER LD LDB GLOB2,I LOAD ADDRESS FROM TABLE LDA B,I LOAD VALUE FROM CORE AND P7776 MASK OFF BIT 0 IOR LOCAL ADD DMA CHANNEL BIT STA B,I RESTORE CORE CPB LASTD,I DONE? JMP LE YES ISZ GLOB2 NO,CONTINUE JMP LD LE EQU * LDA B1 H1 JSB PRINT "CONFIGURATION COMPLETE" LDA JDUMP SET NEW STARTING INSTR STA 100B FOR CONFIGURED DUMP JMP H65 SKP FRSTB DEF *+1 DEF DMACW DATA DEF DC05 CHANNEL DEF DC06 I/O DEF DC11 INSTRUCTIONS DEF DC14 DEF DC22 DEF DC71 DEF DC72 DEF DC73 DEF DC74 LASTB DEF *-1 FRSTC DEF *+1 DEF CC06 COMMAND  DEF CC7 CHANNEL DEF CC15 I/O DEF CC16 INSTRUCTIONS DEF CC30 DEF CC31 DEF CC43 DEF CC44 DEF CC46 DEF CC50 DEF CC69 DEF CC70 DEF CC71 DEF CC72 DEF CC73 DEF CC74 DEF CC75 DEF CC76 DEF CC77 DEF S1AK LASTC DEF *-1 FRSTD DEF *+1 DEF DM2A DMA DEF DM2B CHANNEL DEF DM2C I/O DEF DM2D INSTRUCTIONS DEF DM2E DEF DM2F DEF DM2G DEF DM2H DEF DM2J DEF DM6A DEF DM6B DEF DM6C DEF DM6D DEF DM6E DEF DM6F DEF DM6G LASTD DEF *-1 SKP * * CONFIGURATION AND TTY BASIC I/O ROUTINE * MESSAGES AND INSTRUCTIONS * M0 OCT 6412 CR/LF ASC 18,H0 2100 SERIES FIXED HEAD DISC/DRUM ASC 5,DIAGNOSTIC OCT 6412 L0A EQU *+*-M0-M0 ASC 19,ENTER SELECT CODES, CHANNELS IN SWITCH ASC 5, REGISTER, ASC 4,PUSH RUN L0 EQU *+*-M0-M0 M1 OCT 6412 ASC 13,H1 CONFIGURATION COMPLETE L1 EQU *+*-M1-M1 M70 ASC 19,H70 ENTER PROGRAM OPTIONS IN SWITCH RE ASC 8,GISTER, PUSH RUN OCT 6412 L70 EQU *+*-M70-M70 M73 ASC 12,E73 SCREEN TEST FAILURE L73 EQU *+*-M73-M73 STF0 OCT 102100 HED TTY BASIC I/O DSTRT EQU * LDA PL0A SET NEW MESSAGE STA PL01,I LENGTH IN TABLE CLA JSB PRINT PRINT HEADING H65 LDA B65 TTY BASIC I/O CHECK JSB COPR LDA CH14 TTY SELECT CODE JSB CNVS CONVERT AND DO BASIC I/O TESTS LDA PL01 MODIFY ADA D9 MESSAGE LDB PL11A 11 STB A,I LDA B11 JSB PRINT "WRITE PROTECT NOT PROTECTED" LDA PL01 RESTORE ADA D9 MESSAGE LDB PL11 11 STB A,I LDA B70 H70 JSB PRINT "ENTER PROGRAM OPTIONS IN SW REG JSB LOOP LOOP TTY T1 EST IF DESIRED OCT 107077 HALT TO SELECT PROGRAM OPTIONS * (OPTIONAL CONFIGURED * DUMP HALT) JMP 130B BEGIN MAIN DIAGNOSTIC SKP * * CNVS * CONVERT CHANNEL NUMBER TO ASCII AND STORE IN * MESSAGES M2 THROUGH M7. INITIALIZE CH1 * THROUGH CH13 TO CHANNEL SELECT CODE AND * PERFORM A BRIEF CHECK OF BASIC I/O INTERFACE * FUNCTIONS FOR TTY. OVERLAYED UPON INITIATION * OF START * CNVS NOP STA LOCAL SAVE SELECT CODE JSB CNVRP,I CONVERT LDA CVT3 LEAST SIGNIFICANT DIGITS STA P002A,I STORE STA P003A,I INTO STA P004A,I MESSAGES STA P005A,I STA P006A,I LDB FRSTA STB GLOB2 SAVE FIRST POINTER CLB LDB GLOB2,I LOAD POINTER LDA B,I LOAD WORD AND P7700 MASK OUT SELECT CODE IOR LOCAL STUFF IN NEW SELECT CODE STA B,I STORE BACK CPB LASTA,I DONE? JMP CTEST YES ISZ GLOB2 JMP CLB CTEST EQU * TEST TTY BASIC I/O CLC 0,C INITIALIZE I/O SYSTEM CH1 CLF CH CLEAR CHANNEL FLAG CH2 SFS CH RSS JSB EER2,I CLF OR SFS FAILED-CHANNEL X CH3 CLF CH TRY AGAIN CH4 SFC CH JSB EER3,I SFC FAILED WITH FLAG CLEAR-CH. X CH5 STF CH CH6 SFC CH RSS E4 JSB ERROR STF OR SFC FAILED CHANNEL - X CH7 STF CH TRY AGAIN CH8 SFS CH HLT 5 SFS FAILED WITH FLAG SET ON TTY LDA CH13,I STA GLOB1 LDA JSB1 SET UP INTERRUPT TRAP CELL STA CH13,I CH9 STC CH SET CHANNEL TO REQUEST CH10 STF CH AN INTERRUPT STF 0 ENABLE INTERRUPTS STC 1 * INTERRUPTS STF 1 SHOULD CLC 1 BE CLF 1 DELAYED JMP *+1,I UNTIL DEF *+1 . JSB *+1,I . DEF *+1  . NOP . INTPT NOP * HERE E6 JSB ERROR NO INTERRUPT ON CHANNEL X JMP CH11 RETRN NOP INTERRUPT SUBROUTINE CLF 0 DISABLE INTERRUPTS LDA GLOB1 TRAP CELL HALT STA CH13,I STF 0 TEST INTERRUPT ACKNOWLEDGE NOP * SHOULD NOT NOP INTERRUPT HERE CLF 0 DISABLE INTERRUPTS LDA RETRN DID INTERRUPT OCCUR AT THE CPA ADDRS CORRECT MEMORY LOCATION RSS E5 JSB ERROR INCORRECT RETURN ADDRESS - CH. X LDA D10 START SCREEN TEST AT SC 10 C1 STA GLOB3 SAVE IT CPA CH14 IS IT TTY SC? JMP C2 YES,SKIP IOR STF0 NO,SET UP STF XX STA CH12B PLACE IT CH12A CLF CH CLEAR TTY CH12B NOP EXECUTE STF INSTR CH12C SFS CH TTY FLAG SET? RSS NO,OK E73 JSB ERROR SET-"SCREEN TEST FAILURE" C2 LDA GLOB3 MOVE TO INA NEXT SC CPA B100 FINISHED? RSS YES JMP C1 NO,CONTINUE CH11 STC CH SET CONTROL CH12 STF CH CLC 0 SHOULD CLEAR ALL CONTROL BITS STF 0 ENABLE INTERRUPTS NOP ** SHOULD NOT INTERRUPT NOP HERE CLC 0 TURN EVERYTHING OFF LDA GLOB1 STA CH13,I CLF 0 JMP CNVS,I YES SKP FRSTA DEF *+1 TTY DEF CH1 CHANNEL DEF CH2 I/O DEF CH3 INSTRUCTIONS DEF CH4 DEF CH5 DEF CH6 DEF CH7 DEF CH8 DEF CH9 DEF CH10 DEF CH11 DEF CH12 DEF CH12A DEF CH12C DEF CH13 LASTA DEF *-1 PEND EQU * ENDING LOCATION OF PROGRAM END t64006 MJ 22682-18018 1618 SC 0122 OPTIONAL DVR51 - RTE AUTO DIAL DVR 12589A INTF. KIT             H0101 #mASMB,R,L,C,B HED DVR51 - AUTODIAL DRIVER FOR 12589A INTERFACE KIT NAM DVR51 * * PROGRAMMER - PREM KAPOOR - HP/AMD * * THIS RTE DRIVER USES THE 12589A INTERFACE KIT. * LINE SELECTION IS PERMITTED ALTHOUGH THE CURRENT * CABLE ASSEMBLY OF THE INTERFACE KIT DOES NOT HAVE * ANY PROVISION FOR IT. * * ONLY WRITE AND CONTROL REQUESTS ARE ENTERTAINED. * DIALING IS ACHIEVED BY ISSUEING A WRITE REQUEST . * EACH WORD OF THE BUFFER CONTAINS THE DIGIT TO BE * DIALED, (UNLESS AN ILLEGAL POSITIVE DIGIT OR A * NEGATIVE TIMEOUT IN TENS OF MILSECS IS INSERTED AT * THOSE POINTS IN TANDOM DIALING WHERE A DIAL TONE * IS EXPECTED). BEFORE PROCEEDING WITH THE DIALING, * THE DRIVER FIRST ISSUES A DISCONNECT ON THE LINE * SPECIFIED IN THE CALL AND DOES NOT CHECK TO SEE * WHETHER IT IS ALREADY CONNECTED. * * THE DRIVER HANDLES TIME- * OUT ITSELF AND DROPS THE LINE IF TIMEOUT OCCURS * BEFORE THE BOARD INTERRUPTS. BIT 3 OF THE STATUS * WILL INDICATE THIS CONDITION. THIS GENERALLY * INDICATES THAT EITHER THE TIMEOUT IS TOO SHORT * COMPARED TO ACU'S TIMER OR THERE IS A HARDWARE * MALFUNCTION OR THE USER DID NOT GIVE ENOUGH * DIAL DIGITS FOR A 'TRANSMIT' LINE. * * IN BETWEEN A DIALING SEQUENCE, THE USER * MAY INSERT A NEGATIVE NUMBER WHICH WILL BE INTERPRETED * BY THE DRIVER AS A WAITING TIME BEFORE DIALING THE * NEXT NUMBER. THIS MAY BE NEEDED IF A DIAL TONE IS * EXPECTED AT THAT POINT. HE MAY DO THIS AS OFTEN AS * HE EXPECTS THE DIAL TONE TO OCCUR. WHEN THE DRIVER GOES * THROUGH THIS TYPE OF A TIMEOUT, IT DOES NOT CAUSE * A TIMEOUT ABORT AS IN THE CASE MENTIONED ABOVE (WHERE * THE TIMEOUT WAS THE RTE TIMEOUT SET IN EQT14). FOR * AN ACU WHICH CAN DETECT A DIAL TONE AND THE USER * WISHES TO DO TANDOM DIALING (MULTIPLE DIAL TONES) THE * METHOD INVOLVED IS - INSERT AN ILLEGAL DIGIT IN THE * NUMBER SEQUENCE AT THE POINT WHERE A DIAL TONE IS * EXPECTED (ILLEGAL DIGIT MUST NOT BE THE 'END-OF- * NUMBER' DIGIT WHICH IS 12). IN TdHIS CASE AFTER THE * ILLEGAL DIGIT IS DIALED, THE ACU WILL WAIT FOR THE * DIAL TONE AND 'PRESENT NEXT DIGIT' WILL COME UP AND * CAUSE AN INTERRUPT WHEN THE DIAL TONE IS DETECTED. * THIS LATTER METHOD IS PROVIDED BY THE ACU MADE BY * 'VADIC CORPORATION'. THIS IS A MUCH BETTER METHOD * SINCE IT ALLOWS POSITIVE DIAL TONE IDENTIFICATION * AND PREVENTS THE CPU FROM BLINDLY DIALING THE NEXT * DIGIT OR ATTEMPTING TO WAIT IN A TIMEOUT LOOP AS * IN THE FORMER METHOD (AND EVEN THEN NOT BEING SURE * OF HAVING OBTAINED A DIAL TONE). SKP * * END-OF-NUMBER OPTION : * THIS IS GENERALLY USED FOR RECEIVE TYPE LINES * WHICH WILL CONTINUE TO RING AFTER DIALING THE * ENTIRE SEQUENCE AND MUST BE GIVEN OVER TO THE * MODEM WITHOUT SHOWING DATA MODE IN HARDWARE * STATUS. THIS OPTION IS SPECIFIED BY SETTING * BIT 10 OF THE WRITE REQUEST CONTROL WORD.(NOT * APPLICABLE FOR A CONTROL REQUEST). SKP * DISCONNECT REQUEST (CONTROL REQUEST) : * CALLING SEQUENCE: * JSB EXEC * DEF *+3 * DEF ICODE REQUEST CODE * DEF ICNWD DISCONNECT INFORMATION * * * ICODE DEC 3 REQUEST CODE = 3 * ICNWD OCT XLU CONTROL WORD. BITS 0-5 HAVE * LU AND FUNCTION CODE IN * BITS 6-10 CONTAIN THE LINE * NUMBER (=1,2,3 OR 4). IF * SUBFUNCTION IS ZERO THEN ALL * LINES ARE DISCONNECTED. ANY * OTHER SUBFUNCTION WILL CAUSE * THE REQUEST TO BE CONTROL * REJECTED. * STATUS ON COMPLETION IS ALL ZERO IF NO LINE # * WAS GIVEN OR EQUAL TO THE GIVEN LINE NUMBER. * * * WRITE REQUEST (CONNECT AND DIAL) : * CALLING SEQUENCE: * JSB EXEC * DEF *+5 * DEF ICODE * DEF ICNWD DIALING INFORMATION * DEF IBUFR BUFFER LOCATION * DEF IBUFL BUFFER LENGTH * * * ICODE DEC 2 WRITE REQUEST CODE * ICNWD OCT XXLU CONTROL WORD. BIT 10 SHOULD BE _* SET IF END-OF-NUMBER OPTION IS * CHOSEN. BITS 6 TO 9 CONTAIN THE * LINE NUMBER WHICH CAN EITHER BE * OCT 0,1,2,3 OR 4. IF LINE 0 IS * INDICATED THEN THE DRIVER * SETS UP LINE 1 AND THE STATUS * ALSO INDICATES LINE 1. THE * WRITE REQUEST WILL BE REJECTED * IF AN ILLEGAL LINE NUMBER IS * SPECIFIED IN THE SUBFUNCTION. * IBUFR BSS N BUFFER OF N WORDS * IBUFL DEC N SAME N. IF LENGTH GIVEN IS 0 OR * NEGATIVE, A WRITE REJECT WILL * OCCUR. ALSO IF DURING THE * PROCESS OF DIALING, ANY WORD IN * THE BUFFER IS FOUND TO BE OUT- * SIDE THE RANGE OF 0 & 9, THE * LINE WILL BE DISCONNECTED AND * 'ILLEGAL SEQUENCE' WILL BE * REPORTED IN THE STATUS. * UPON RETURN REG-B CONTAINS NUMBER OF DIGITS * DIALED (EVEN IF LINE NOT CONNECTED). SKP * STATUS : * THE STATUS BITS HAVE THE FOLLOWING MEANING. NOTE * THAT THE STATUS IS ONLY DYNAMIC AND REFLECTS THE * THE RESULT OF THE LAST WRITE REQUEST. SUBSEQUENT * REQUESTS CLEAN THE PREVIOUS STATUS. * * BIT0 - DATA MODE - THIS IS SET WHEN THE LINE IS * IN DATA MODE AND E-O-N OPTION WAS NOT * SELECTED (HARDWARE STATUS INDICATED DATA * MODE AND LINE GIVEN TO MODEM). IF E-O-N * OPTION IS SELECTED THEN HARDWARE DATA * MODE BIT IS NOT EVEN CHECKED AND THIS * BIT MERELY MEANS THAT MODEM HAS BEED * REQUESTED TO TAKE OVER THE LINE AND THE * HARDWARE DID NOT INDICATE DATA MODE * DURING DIALING. * BIT1 - LINE BUSY - LINE CONNECTED TO DIALER IS * BUSY (NOT SAME AS 'REMOTE BUSY'), * BIT2 - CALL DID NOT GO THROUGH - DIRECTLY TAKEN * FROM HARDWARE STATUS. THIS MAY EITHER BE * DUE TO HARDWARE FAILURE OR RE+MOTE NUMBER * BEING BUSY. * BIT3 - RTE TIMEOUT - THIS WILL HAPPEN EITHER IF * RTE'S TIMEOUT IS LESS THAN ACU'S TIMER OR * USER'S BUFFER FOR TRANSMIT LINE DOES NOT * HAVE ENOUGH DIAL DIGITS. WHEN THIS OCCURS, * TIMEOUT SHOULD BE SET TO A LITTLE MORE * THAN ACU'S HARDWARE TIMER (CAN BE SET * BY A SCREWDRIVER TO 7,10,15,25 OR 40 * SECONDS). THE USER MUST ALSO ENSURE THAT * HE IS GIVING ALL THE REQUIRED DIGITS IN * THE BUFFER. IT IS IMPORTANT TO SET THE * SOFTWARE DEVICE TIMEOUT TO ENSURE THAT * THE HARDWARE IS FUNCTIONAL. * BIT4 - ILLEGAL SEQUENCE - THIS BIT IS SET IF THE * ACU INDICATED DATA MODE BEFORE ALL THE * DIGITS IN THE BUFFER COULD BE DIALED OR * HARDWARE INDICATED DATA MODE FOR A LINE * WITH THE E-O-N OPTION BEFORE THE E-O-N * CONTROL WORD COULD BE OUTPUTTED TO THE * ACU. IF THE STATUS HAS BIT4 SET, THE USER * MUST ENSURE THAT HE IS DIALING THE RIGHT * NUMBER AND USING THE E-O-N OPTION FOR * THE RIGHT TYPE OF LINE. * BITS 5,6 & 7 - LINE NUMBER GIVEN IN THE WRITE * REQUEST. LINE 0 IS DEFAULTED TO * LINE 1. THE BITS CAN THEREFORE * CONTAIN ONLY 1,2,3 OR 4. SKP * * ENT I.51,C.51 * * * *** INITIATION SECTION *** * * I.51 NOP JSB SETIO CONFIGURE I/O INSTRUCTIONS & CLB LDA EQT6,I GET CONTROL WORD AND M77 MASK IN REQUEST CODE CPA D3 CONTROL REQUEST ? JMP CLIN? YES, FIND CONTROL LINE NUMBER. CPA D2 WRITE REQUEST ? JMP WLIN? YES, FIND WRITE LINE NUMBER. REJ1 CLA,INA REJECT REQUEST JMP IEXIT * * FINE LINE NUMBER OF DISCONNECT REQUEST * WLIN? LDA EQT8,I GET BUFFER LENGTH CMA,INA SSA,RSS IF NEG OR ZERO BUF LEN JMP REJ1 THEN REJECT REQUEST. LDA EQT6,I GET CONTROL WORD  AND MLINE MASK IN FUNCTION (LINE #) ALF,RAL ELA,ALF GET BIT10 (LINE TYPE) IN REG-E SEZ RECEIVE TYPE LINE (E-O-N GIVEN)? CCB YES. MAKE REG-B = -1. SZA,RSS LINE # SPECIFIED ? CLA,INA NO. DEFAULT TO LINE 1. JMP STEMP YES, CHECH IT OUT. * * FIND LINE NUMBER OF CONNECT REQUEST * CLIN? LDA EQT6,I GET CONTROL WORD AND MLINE MASK IN LINE # ALF,ALF POSITION TO LOWER BITS RAL,RAL STEMP STA EQT13,I SAVE LINE # TEMPORARILY ADA N5 CHECK LINE NUMBER SSA LINE NUMBER > 4 ? JMP SETL NO, THEN ACCEPT REQUEST. LDA D2 ASSUME REJECT CODE = 2 LDB EQT6,I GET REQUEST CODE SLB,RSS WAS IT A CONTROL REQUEST ? JMP REJ1 REJECT WRITE REQUEST WITH A=1 JMP IEXIT YES, REJECT WITH REG-A = 2. * SKP * SETL STB EQT10,I -1 FOR E-O-N OPTION, 0 OTHERWISE LDA EQT13,I GET LINE NUMBER BACK ALF,RAL POSITION LINE # FOR STATUS WORD STA EQT13,I AND SAVE TEMPORARILY. LDA EQT5,I GET STATUS WORD AND MSTAT CLEAR OLD STATUS IOR EQT13,I MASK IN LINE # STA EQT5,I UPDATE STAUS WITH LINE # LDA EQT13,I GET LINE # LDB ALINS GET MASK FOR ALL LINES (CLEAR) SZA,RSS ANY LINE SPECIFIED ? JMP SET NO, THEN SET TO ALL OF THEM. ALF,ALF ALF,RAR POSITION LINE NUMBER LDB BIT11 ASSUME LINE 2 MASK (BIT11) CPA D4 LINE 4 ? RBL,RBL YES, POSITION MASK TO BIT13. CPA D3 LINE 3 ? RBL YES, POSITION MASK TO BIT12. CPA D1 LINE 1 ? RBR YES, POSITION MASK TO BIT10. SET STB EQT13,I SET LINE # MASK IN EQT13 LDA EQT4,I IOR BIT12 SET OWN TIMEOUT HANDLING STA EQT4,I LDA LINDN ALWAYS DISCONNECT FIRST JSB OUTPT OUTPUT DISCONNECT CONTROL WORD STA EQT12,I SET DISCONNECT FLAG CLC1 CLC 0,C DISABLE INTERRUPTS LDA SEC5 SET TIMEOUT ENTRY OF 5 SEC STA EQT15,I IF DOING WRITE. LDA D4 ASSUME IMMEDIATE COMPLETION LDB EQT6,I SLB,RSS PROCESSING CONTROL REQUEST ? CLA NO, THEN DO WRITE INITIATION STA EQT11,I AND CLEAR WORD COUNTER. STA EQT6,I CLEAR FOR USE AS INTERNAL TIMER FLAG IEXIT JMP I.51,I *** I.51 EXIT *** * SKP * * OUTPT NOP IOR EQT13,I MERGE IN LINE # OTA1 OTA 0 JMP OUTPT,I * SETIO NOP IOR LIA CONSTRUCT LIA STA LIA1 STA LIA2 ADA MOTA CONSTRUCT OTA STA OTA1 ADA MSTC CONSTRUCT STC XX,C STA STC1 IOR BIT11 CONSTRUCT CLC XX,C STA CLC1 STA CLC2 CLB,CLE CLEAR REGISTERS B AND E JMP SETIO,I * * SKP * * *** COMPLETION SECTION *** * C.51 NOP JSB SETIO CONFIGURE I/O INSTRUCTIONS LDA EQT14,I STA EQT15,I RESET TIMEOUT TO SET VALUE LDA BIT11 AND EQT4,I MASK IN TIMEOUT BIT SZA,RSS TIMEOUT ENTRY ? JMP LIA2 NO, THEN SERVICE INTERRUPT. LDA TCLR AND EQT4,I STA EQT4,I CLEAR TIMEOUT ENTRY BIT LDA EQT12,I GET DISCONNECT/CONNECT FLAG SSA,RSS DISCONNECT ISSUED BY I.51 ? JMP STIM? NO, THEN CHECK ON TIMEOUT. LIA1 LIA 0 GET HARDWARE STATUS ALF,RAR POSITION 'DLO' TO BIT0 SLA LINE BUSY (DLO) ? JMP SBIT1 YES, THEN ABORT. LDA LINUP JSB OUTPT OUTPUT CONNECT COMMAND STA EQT12,I SET CONNECT FLAG STC1 STC 0,C ENABLE INTERRUPTS ISZ C.51 BUMP TO (P+2) RETURN JMP CEXIT RETURN FROM C.51 * STIM? LDA EQT6,I GET 'DIAL TONE TIMEOUT' FLAG SSA,RSS IF NOT SET FOR DIAL TONE JMP SBIT3 THEN ABORT ON RTE TIMEOUT. CLA ELSE CLEAR DIAL TONE TIMEOUT STA EQT6,I FLAG AND OUTPUT NEXT DIGIT. * LIA2 LIA 0 GET HARDWARE STATUS ALF POSITION ACR TO BIT0 SLA CALL ABANDONED (ACR) ? JMP SBIT2 YES, GO DROP LINE. RAR,RAR POSITION DSS TO BIT0 SLA DATA MODE (DSS) ? JMP DONE? YES, CHECK IF IT SHOULD BE. RAR POSITION PND TO BIT0 SLA,RSS PRESENT NEXT DIGIT ? JMP STC1 NO. IGNORE STRAY INTERRUPT. LDB EQT11,I GET OUTPUTTED WORD COUNT CPB EQT8,I ALL DIGITS DIALED ? JMP CRLIN YES, SEE IF RECEIVE LINE. ADB EQT7,I ADD WORD COUNT TO BUF ADRS LDA B,I GET NEXT WORD FROM BUFFER ISZ EQT11,I BUMP OUTPUT WORD COUNTER SSA NEGATIVE DIGIT ? JMP STIM YES, SET IT AS DIAL TONE TIMEOUT. JSB OUTPT OUTPUT DIGIT JMP STC1 DO CONTINUATION EXIT * SKP * CRLIN LDB EQT10,I GET END-OF-NUMBER FLAG SZB,RSS RECEIVE TYPE OF LINE ? JMP STC1 NO, THEN AWAIT DSS INTERRUPT. LDA D12 GET E-O-N CODEWORD JSB OUTPT TELL MODEM TO TAKEOVER LINE SBIT0 ISZ EQT5,I SET BIT0 (LINE GIVEN TO MODEM) JMP CLC2 DO COMPLETION EXIT * * DONE? LDB EQT10,I GET END-OF-NUMBER FLAG LDA EQT11,I GET OUTPUT WORD COUNTER CPA EQT8,I MORE DIGITS TO BE DIALED ? SZB NO, THEN E-O-N SPECIFIED ? JMP SBIT4 YES, ABORT ON ILLEGAL SEQ. JMP SBIT0 TRANSMIT LINE IN DATA MODE. * * STIM STA EQT15,I SET GIVEN NEG NUMBER AS DIAL CCA -TONE TIMEOUT. ALSO SET FLAG STA EQT6,I FOR 'DOING DIAL TONE TIMEOUT'. ISZ C.51 BUMP FOR CONTINUATION RETURN JMP CLC2 DISABLE INTERRUPT & EXIT. * * SBIT1 LDA D2 0.* SET BIT1 FOR LINE BUSY JMP UPDAT SBIT2 LDA D4 SET BIT2 FOR CALL ABANDONED JMP UPDAT SBIT3 LDA BIT3 SET BIT3 FOR RTE TIMEOUT JMP UPDAT SBIT4 LDA BIT4 SET BIT4 FOR ILLEGAL SEQUENCE UPDAT IOR EQT5,I MERGE IN LINE NUMBER STA EQT5,I UPDATE STATUS LDA LINDN JSB OUTPT DISCONNECT LINE (REMOVE CRQ) CLC2 CLC 0,C DISABLE INTERRUPTS CLA SET REG-A = 0 FOR COMPLETION LDB EQT11,I GET NUMBER OF DIGITS DIALED CEXIT JMP C.51,I *** C.51 EXIT *** * * * SKP * * CONSTANTS * B EQU 1 . EQU 1650B EQT4 EQU .+11 EQT5 EQU .+12 EQT6 EQU .+13 EQT7 EQU .+14 EQT8 EQU .+15 EQT10 EQU .+17 EQT11 EQU .+18 EQT12 EQU .+81 EQT13 EQU .+82 EQT14 EQU .+83 EQT15 EQU .+84 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D12 DEC 12 N5 DEC -5 SEC5 DEC -500 MLINE OCT 3700 MSTAT OCT 177400 ALINS OCT 36000 TCLR OCT 173777 LINDN OCT 100000 LINUP OCT 40000 M77 OCT 77 BIT3 OCT 10 BIT4 OCT 20 BIT11 OCT 4000 BIT12 OCT 10000 MOTA OCT 100 MSTC OCT 1100 LIA LIA 0 END 0 N [ 22682-18019 1724 SC 0122 MAPIO - PRINT THE I/O CONFIGURATION             H0101 "FTN4,L C PROGRAM LUPRN(3,90) C C ****************************** C * * C * RTE SYSTEM DEVICE LISTOR * C * * C ****************************** C C PROGRAM STATISTICS C ------------------ C C AUTHOR: LARRY W. SMITH, SYSTEMS ENGINEER C INSTALLATION: HEWLETT-PACKARD, DATA SYSTEMS, CUPERTINO C DATE: 26/JAN/1976 C REVISION A: LARRY W. SMITH, 26/JAN/1976 C REVISION B: LARRY W. SMITH, 24/APR/1977 C REVISION C: LARRY W. SMITH, 1/JAN/1977 C C PROGRAM EXECUTION C ----------------- C C RU,LUPRN[,LIST] C C LIST ---> LIST OUTPUT DEVICE LU (DEFAULT=TERMINAL) C C C EXTERNAL SUBROUTINES C -------------------- C C IODVC ASSEMBLY ASCII TABLE OF DRIVER DEVICE NAMES. C MEMSZ ASSEMBLY RETRIEVES MEMORY SIZE. C EXTERNAL IODVC DIMENSION IDVC(8),IPARM(5),MTH(36),IDVPS(10),ITYPE(8) EQUIVALENCE(IPARM(1),IPARM1),(IPARM(5),IPARM5) DATA MTH/2HJA,2HN ,2HFE,2HB ,2HMA,2HR ,2HAP,2HR ,2HMA,2HY ,2HJU, -2HN ,2HJU,2HL ,2HAU,2HG ,2HSE,2HP ,2HOC,2HT ,2HNO,2HV ,2HDE,2HC / DATA IDVPS/2HPO,2HWE,2HR ,2HFA,2HIL,2HSP,2HOO,2HLI,2HNG,2H / DATA ITYPE/2HKY,2HBD,2HLT,2H ,2HRT,2H ,2HPN,2HTR/ C CALL RMPAR(IPARM1) LUOUT=IPARM1 IF(IPARM1.EQ.0) LUOUT=6 LUPC=IOR(LUOUT,1100B) CALL PAGE(LUPC,1) ITBG=IGET(1674B) IPRIV=IGET(1737B) CALL EXEC(11,IPARM,IYEAR) CALL DATE(IPARM5,MONTH,IYEAR) IPM=(MONTH-1)*2+1 ISIZE=MEMSZ(ISIZE) WRITE(LUOUT,103)(MTH(I), I=IPM,IPM+1),IPARM5,IYEAR, -(IPARM(I),I=4,2,-1),ITBG,IPRIV,ISIZE 103 FORMAT(25X"RTE SYSTEM DEVICE CONFIGURATION"//27X,2A2,I2","I5 -" AT"I4,2(":"I2)//13X" TIME BASE ("K2") PRIV. INT. ADDR" -" ("K2") MEMORY ("I3"K)"//) WRITE(LUOUT,100) 100 FORMAT(5X"LU"4X"EQT"3X"S.C."2X"S.CHNL"3X"EQT STATUS"4X"DRIVER" -2X"DEVICE NAME"8X"LU"/) LUMAX=IGET(1653B) IDRT=IGET(1652B) IEQTB=IGET(1650B) C DO 505 I=1,LUMAX IVAL=IGET(IDRT) IF(IVAL.NE.0) GO TO 501 WRITE(LUOUT,102)I,I 102 FORMAT(I7,4X10("*")" LU UNASSIGNED "10("*")26X,I3) GO TO 505 501 ISCC=IAND(IVAL,174000B) ISC=IAND(ISCC,74000B)/2048 IF(ISCC.LT.0) ISC=ISC+20B IEQT=IAND(IVAL,77B) IEQTA=(IEQT-1)*15+IEQTB C ISTAT=IGET(IEQTA+3) IDB=20040B IF(ISTAT.LT.0) IDB=42040B IF(IAND(ISTAT,40000B).NE.0) IDB=IOR(IAND(IDB,177400B),102B) IPS=20040B IF(IAND(ISTAT,20000B).NE.0) IPS=50040B IF(IAND(ISTAT,10000B).NE.0) IPS=IOR(IAND(IPS,177400B),123B) IT=20040B IF(IAND(ISTAT,4000B).NE.0) IT=52040B C ISCDE=IAND(IGET(IEQTA+3),77B) IDVR=IAND(IGET(IEQTA+4),37400B)/256 CALL DVICE(IODVC,IDVR,IDVC) IF(IDVR.NE.05) GO TO 545 IPT=0 IF(ISC.EQ.0) IPT=1 IF(ISC.EQ.1) IPT=3 IF(ISC.EQ.2) IPT=5 IF(ISC.EQ.3) IPT=7 IF(IPT.EQ.0) GO TO 545 IDVC(5)=2H- IDVC(6)=ITYPE(IPT) IDVC(7)=ITYPE(IPT+1) 545 IF(ISCDE.EQ.4) GO TO 613 IF(IDVR.NE.43B) GO TO 606 DO 612 NW=6,10 612 IDVC(NW-5)=IDVPS(NW) WRITE(LUOUT,611)I,IEQT,ISCDE,ISC,IDB,IPS,IT,IEQTA,IDVR,IDVC,I 611 FORMAT(I7,I6,5X,K2,I7,4X,3A2,X,K5,4X"DVS"K2,2X,8A2,I5) GO TO 505 613 DO 614 NW=1,5 614 IDVC(NW)=IDVPS(NW) WRITE(LUOUT,615)I,IEQT,ISCDE,ISC,IDB,IPS,IT,IEQTA,IDVR,IDVC,I 615 FORMAT(I7,I6,5X,K2,I7,4X,3A2,X,K5,4X"DVP"K2,2X,8A2,I5) GO TO 505 606 WRITE(LUOUT,101)I,IEQT,ISCDE,ISC,IDB,IPS,IT,IEQTA,IDVR,IDVC,I 101 FORMAT(I7,I6,5X,K2,I7,4X,3A2,X,K5,4X"DVR"K2,2X,8A2,I5) -I5) 505 IDRT=IDRT+1 C WRITE(LUOUT,177) 177 FORMAT(//36X"LEGEND:"//37X"D= DMA"/37X"B= BUFFERED"/37X -"P= DRIVER PROCESSES POWER FAIL"/37X"S= DRIVER PROCESSES" -" TIME-OUT"/37X"T= DEVICE HAS TIMED-OUT") CALL PAGE(LUPC,2) 999 END SUBROUTINE DVICE(IOT>,IDVR,IOD) DIMENSION IOT(1),IOD(1) J=IDVR*8+1 DO 100 I=1,8 IOD(I)=IOT(J) 100 J=J+1 END SUBROUTINE DATE(IDAY,MONTH,IYEAR) C C THIS SUBROUTINE RECEIVES THE GREGORIAN (SOMETIMES MISTAKINGLY CALLED C THE JULIAN) DATE IN 'IDAY' AND THE YEAR IN 'IYEAR' AND RETURNS THE C FOLLOWING: C C MONTH ---> NUMERICAL MONTH OF THE YEAR C DIMENSION IM(12) DATA IM/31,28,31,30,31,30,31,31,30,31,30,31/ C C C... CHECK FOR LEAP YEAR ... C IZ=IYEAR/4 IR=IYEAR-IZ*4 IF(IR.NE.0) GO TO 70 C C... LEAP YEAR TIME ... C IM(2)=29 C C... COMPUTE CORRECT MONTH ... C 70 DO 20 I=1,12 MONTH=I IF(IDAY.LE.IM(I)) GO TO 30 20 IDAY=IDAY-IM(I) C 30 END SUBROUTINE PAGE(LU,NTIMES) DO 10 NT=1,NTIMES 10 CALL EXEC(3,LU,-1) END END$ ASMB,R,L *** LUPRN SUBROUTINE *** * HED LUPRN SUBROUTINE TO GET ASCII NAME OF DVR TYPE NAM IODVC,7 * ENT IODVC * SUP * IODVC EQU * ** ASCII ** ## * ASC 8,CRT - TTY 00 ASC 8,TAPE READER 01 ASC 8,TAPE PUNCH 02 ASC 8, 03 ASC 8, 04 ASC 8,TERMINAL 05 ASC 8, 06 ASC 8, 07 ASC 8,PLOTTER 10 ASC 8,CARD READER 11 ASC 8,LINE PRINTER 12 ASC 8,TV MONITOR 13 ASC 8, 14 ASC 8,MARK READER 15 ASC 8, 16 ASC 8, 17 ASC 8, 20 ASC 8, 21 ASC 8, 22 ASC 8,9T MAG TAPE 23 ASC 8,7T MAG TAPE 24 ASC 8, 25 ASC 8, 26 ASC 8, 27 ASC 8,FXD HD DISK 30 ASC 8,7900 MH DISK 31 ASC 8,7905/20 MH DISK 32 ASC 8,FLEXIBLE DISK 33 ASC 8, ^ 34 ASC 8, 35 ASC 8,WCS 36 ASC 8,HP-IB BUS 37 ASC 8,DSI 40 ASC 8, 41 ASC 8, 42 ASC 8,FAIL/SPOOL 43 ASC 8, 44 ASC 8,3460/5 DVM 45 ASC 8,3460/4 DVM 46 ASC 8, 47 ASC 8,RDTS 50 ASC 8, 51 ASC 8, 52 ASC 8, 53 ASC 8, 54 ASC 8,2312 SUBSY 55 ASC 8,2310/11 SS 56 ASC 8, 57 ASC 8, 60 ASC 8,6940 SUBSY 61 ASC 8,2313 SUBSY 62 ASC 8, 63 ASC 8, 64 ASC 8,SERIAL COM 65 ASC 8,2570A COM 66 ASC 8, 67 ASC 8,BIT BUCKET 70 ASC 8, 71 ASC 8,6940 SUBSY 72 ASC 8, 73 ASC 8, 74 ASC 8, 75 ASC 8,2320 SUBSY 76 ASC 8,2321 SUBSY 77 * END ASMB,R,L *** RETRIEVE RTE-III MEMORY SIZE *** HED RETRIEVE RTE-III MEMORY SIZE * NAM MEMSZ,7 * ENT MEMSZ * EXT .ENTR,$MATA * * * DESCRIPTION * ----------- * * THIS INTEGER CALLABLE FUNCTION SUBROUTINE ALLOWS THE RTE-III * TO DETERMINE HOW MANY 1024-WORD PAGES OF MEMORY THE OPERATING * SYSTEM IS USING. * * CALLING SEQUENCE * ---------------- * * ISIZE = MEMSZ(DUMMY) * * ISIZE ---> RETURNED NUMBER OF PAGES OF MEMORY * * DUMMY ---> ANY DUMMY VARIABLE OR CONSTANT * * ISIZE NOP STRICTLY A DUMMY PARAMETER. * MEMSZ NOP < ENTRY & EXIT POINT > JSB .ENTR RETRIEVE CALLERS ADDRESSES. DEF ISIZE * LDB $MATA GET HEAD+1 OF MEMORY ALLOCATION TABLE. ADB =D-1 GET NUMBER OF 6-WORD ENTRIES. LDA 1,I GET #ENTRIES. CMA,INA NEGATE FOR COUNTDOWN. STA ENTRY SAVE FOR COUNTDOWN. INB NEXT ADB =D6 SET TO ADDRESS OF FIRST POSSIBLE ENTRY. LDA 1,I TRICKLE DOWN THE TABLE CPA =D-1 TO FIND THE END (-1) JMP END OF THE FIRST UNDEFINED PARTITION. ISZ ENTRY LAST ENTRY? RSS NO, TRY NEXT ONE. JMP END LAST ENTRY. JMP NEXT TRY NEXT ENTRY. * END ADB =D-3 ADJUST TO GET ADDRESS OF START PAGE#. LDA 1,I GET PAGE# WITH SOME OTHER JUNK. AND =B1777 ISOLATE TO PAGE# STA ISIZE AND SAVE. INB POINT TO ADDRESS OF PARTITION SIZE. LDA 1,I GET PARTITION SIZE & OTHER JUNK. AND =B1777 ISOLATE TO PARTITION SIZE. ADA ISIZE ADD IN START PAGE NUMBER INA AND ADJUST RELLTIVE TO 1. * JMP MEMSZ,I RETURN TO CALLER. * ENTRY NOP CURRENT ENTRY# * END %H O Y 22682-18020 1620 SC 0122 THIRTY-ONE ODD              H0101 fASMB,R,B NAM G31OD * THIS IS THE GAME OF 31 ODD, * PROGRAMMED BY: DAN GRIESER, BATTELLE COLUMBUS LABS, FEB 1975. BEGIN NOP JMP START EXT .IOC. ANS BSS 1 CHUZ BSS 1 PICK BSS 1 CNTR BSS 1 KITTY BSS 1 YOUR BSS 1 MINE BSS 1 ONES BSS 1 TENS BSS 1 TEMP BSS 1 R DEC 1 N6 DEC -6 N1 DEC -1 P2 DEC 2 P3 DEC 3 P5 DEC 5 P18 DEC 18 P25 DEC 25 P27 DEC 27 P30 DEC 30 P31 DEC 31 XFR1 DEF MES1 XFR2 DEF MES2 XFR3 DEF MES3 XFR4 DEF MES4 XFR5 DEF MES5 XFR6 DEF MES6 XFR7 DEF MES7 XFR8 DEF MES8 XFR9 DEF MES9 XFRT DEF MES10 XFRE DEF EVENM XFRO DEF ODDM AYE OCT 54505 ANO OCT 47117 CRLF OCT 6412 CHAR OCT 177 P12 OCT 12 N12 OCT -12 P60 OCT 60 N60 OCT -20060 * START NOP LDA P18 STA MEM LDA XFR1 STA FMT JSB OUTPT JSB SPACE LDA FMT ADA P25 STA FMT JSB OUTPT IN1 JSB INPT LDA ANS CPA AYE JMP RULES CPA ANO JMP GO LDA XFR8 STA FMT JSB OUTPT JMP IN1 * RULES LDA N6 STA CNTR LDA XFR2 STA FMT JSB SPACE RPT LDA P25 STA MEM JSB OUTPT LDA FMT ADA P25 STA FMT ISZ CNTR JMP RPT JSB SPACE JSB OUTPT * GO JSB SPACE JSB SPACE JSB SPACE LDA P31 STA KITTY CLA STA YOUR STA MINE LDA XFR3 STA FMT JSB OUTPT LDA P18 STA MEM IN2 JSB INPT LDA ANS CPA AYE JMP HWMNY CPA ANO JMP SECND LDA XFR8 STA FMT JSB OUTPT JMP IN2 * HWMNY LDA KITTY STA ANS JSB SPACE JSB ACNV STA MES4+17 LDA XFR4 STA FMT JSB OUTPT LDA YOUR STA ANS JSB ACNV STA MES4+33 LDA FMT ADA P25 STA FMT JSB OUTPT LDA MINE STA ANS JSB ACNV STA MES4+57 LDA FMT ADA P25 STA FMT JSB OUTPT JSB SPACE LDA XFR5 STA FMT JSB OUTPT * CHZIN JSB INPT LDA ANS ALF,ALF ADA N60 STA CHUZ LDB P5 LOOP CPB CHUZ JMP SUBT ADB N1 SZB,RSS JMP ERR1 JMP LOOP * SUBT LDA CHUZ CMA,INA ADA KITTY SSA JMP ERR2 STA KITTY LDB CHUZ ADB YOUR STB YOUR SZA,RSS JMP FINIS LDB MINE SLB JMP ODD EVEN LDA KITTY ADA N1 SZA JMP LKUPE INB STB MINE JMP FINIS LKUPE INA CPA P2 JMP NUM2 CMA,INA ADA XFRE ADA P30 STA PICK ADB PICK,I STB MINE LDA PICK,I CMA,INA ADA KITTY STA KITTY SZA,RSS JMP FINIS JMP HWMNY ODD LDA KITTY ADA N1 SZA JMP LKUPO INB STB MINE JMP FINIS LKUPO CMA ADA XFRO ADA P27 STA PICK ADB PICK,I STB MINE LDA PICK,I CMA,INA ADA KITTY STA KITTY SZA,RSS JMP FINIS JMP HWMNY * FINIS JSB RESLT LDA YOUR SLA JMP WIN LOSE LDA XFR7 STA FMT JSB OUTPT LDA FMT ADA P25 STA FMT JSB OUTPT JMP GO * WIN LDA XFR6 STA FMT JSB OUTPT LDA FMT ADA P25 STA FMT JSB OUTPT JMP GO * NUM2 INB STB MINE ADA N1 STA KITTY JMP HWMNY * * SECND LDA R STA MINE CMA,INA ADA KITTY STA KITTY JMP HWMNY * * ERR1 LDA XFR9 STA FMT LDA P25 STA MEM JSB OUTPT JMP CHZIN * * ERR2 LDA XFRT STA FMT LDA P25 STA MEM JSB OUTPT \ JMP CHZIN * * RESLT NOP JSB SPACE LDA XFR4 ADA P25 STA FMT LDA YOUR STA ANS JSB ACNV STA MES4+33 JSB OUTPT LDA MINE STA ANS JSB ACNV STA MES4+57 LDA FMT ADA P25 STA FMT JSB OUTPT JSB SPACE JMP RESLT,I * * OUTPT NOP JSB .IOC. OCT 20002 JMP *-2 FMT NOP MEM NOP LDA P18 STA MEM JSB CKOUT JMP OUTPT,I * * CKOUT NOP JSB .IOC. OCT 40002 SSA JMP *-3 RAL SSA HLT 10B JMP CKOUT,I * * INPT NOP HERE JSB .IOC. OCT 10401 JMP THERE DEF ANS DEC -2 JSB CKINP JSB CKOUT LDA R STA EVENM+6 STA EVENM+11 STA EVENM+18 STA EVENM+23 STA ODDM STA ODDM+1 STA ODDM+2 STA ODDM+9 STA ODDM+14 STA ODDM+21 STA ODDM+26 JMP INPT,I THERE JSB RAND JMP HERE * * RAND NOP ISZ R NOP STA TEMP LDA R ADA N6 SSA JMP AHEAD INA STA R AHEAD LDA TEMP JMP RAND,I * * CKINP NOP JSB .IOC. OCT 40001 JSB RAND SSA JMP *-4 RAL SSA HLT 1B JMP CKINP,I * * SPACE NOP JSB .IOC. OCT 20002 JMP *-2 DEF CRLF DEC -2 JSB CKOUT JMP SPACE,I * * ACNV NOP CLA STA TENS STA ONES LDA ANS NEXT ADA N12 SSA JMP LESS ISZ TENS SZA JMP NEXT JMP DCM LESS ADA P12 DCM ADA P60 STA ONES LDA TENS SZA ADA P60 ALF,ALF ADA ONES JMP ACNV,I * * EVENM DEC 5,5,3,3,1,1,4,4,4,2,2,3,5,5,3,3,1,1,1,4,4,2,2,3,5,5,3,3 ODDM DEC 1,2,2,5,5,3,3,1,1,4,4,4,2,2,3,5,5,3,3,1,1,1,4,4,2,2,1 MES1 ASEC 25, WELCOME TO A GAME OF 31-ODD. ASC 25, DO YOU NEED TO KNOW THE RULES? MES2 ASC 25, TO WIN 31-ODD YOU MUST END WITH AN ODD TOTAL OF ASC 25, COUNTERS WHEN NO MORE REMAIN IN THE KITTY. ASC 25, THE KITTY STARTS WITH 31 COUNTERS AND THE PLAYERS ASC 25, NONE. THE PLAYERS DRAW ALTERNATELY BETWEEN 1 & 5 ASC 25, COUNTERS FROM THE KITTY UNTIL IT IS EXHAUSTED... ASC 25, AND THE GAME HAS BEEN DECIDED. ASC 25, THE COMPUTER CHALLENGES YOU! MES3 ASC 25, DO YOU WISH TO GO FIRST? MES4 ASC 25, TOTAL COUNTERS IN THE KITTY ARE= ASC 25, YOUR TOTAL IS= ASC 25, MY TOTAL IS= MES5 ASC 25, HOW MANY DO YOU CHOOSE? MES6 ASC 25, CONGRATULATIONS ON YOUR WIN!!! ASC 25, HOW ABOUT ANOTHER GAME? MES7 ASC 25, SORRY ABOUT YOUR LOSS. ASC 25, HOW ABOUT ANOTHER TRY? MES8 ASC 25, WHAT? PLEASE RETYPE. MES9 ASC 25, ONLY 1,2,3,4,OR 5 COUNTERS, PLEASE. CHOOSE AGAIN. MES10 ASC 25, PLAY FAIR...DON'T TAKE TOO MANY! CHOOSE AGAIN. END BEGIN  PY 22682-18021 1632 SC 0322 FILE TRANSFER BETWEEN RTE AND DOS-M/III             H0103 HPAL,L,"TFER",0,3,99 BEGIN COMMENT THIS PROGRAM TRANSFERS FILES BETWEEN DOS-M OR DOS-III DISC PACKS AND THE RTE SYSTEM. BENNETT MEYER THE SINGER COMPANY KEARFOTT DIVISION 1150 MC BRIDE AVENUE LITTLE FALLS, NEW JERSEY 07424 DATE OF LATEST REVISION IS GIVEN IN FORMAT IDENT. TO EXECUTE THE PROGRAM, ACTIVATE IT BY GIVING THE FOLLOWING RTE COMMAND: ON,TFER THE PROGRAM WILL THEN REQUEST AN INPUT FILE AND AN OUTPUT FILE. THE CONTENTS OF THE INPUT FILE WILL BE COPIED TO THE OUTPUT FILE. TFER WILL CREATE THE OUTPUT FILE IF IT DID NOT PREVIOUSLY EXIST. IF THE OUTPUT FILE WAS PREVIOUSLY IN EXISTENCE, TFER WILL ASK FOR A CONFIRMATION BEFORE ERASING THE PREVIOUS CONTENTS. THE MESSAGE "OLD FILE! OK TO ERASE?" WILL BE PRINTED IN THIS CASE. TO PROCEED WITH THE FILE COPYING OPERATION, THE OPERATOR SHOULD TYPE "YES". ANY OTHER RESPONSE WILL CAUSE THE PROGRAM TO REQUEST ANOTHER OUTPUT FILE. AFTER THE FILE IS COPIED, THE PROGRAM WILL REQUEST ANOTHER INPUT FILE. MORE FILES MAY THEN BE COPIED. TO TERMINATE THE PROGRAM, TYPE "/E" ANYTIME THE PROGRAM IS AWAITING AN INPUT OR OUTPUT FILE NAME. FILE NAMES MAY BE GIVEN IN ANY OF THE FOLLOWING FORMATS: INPUT STRING FILE TYPE ------------ --------- FILE:SC:CART INDICATES AN RTE FMGR FILE. FILE = FILE NAME SC = OPTIONAL SECURITY CODE (ASCII OR NUMERIC) CART = DISC CARTRIDGE REFERENCE NUMBER (IF POSITIVE) OR DISC LOGICAL UNIT (IF NEGATIVE). THE USE OF THIS PARAMETER IS OPTIONAL. THIS IS THE NORMAL NAMR FORMAT OF THE RTE FILE MANAGER. THE CART PARAMETER, IF USED, MUST INDICATE A DISC CARTRIDGE THAT HAS PREVIOUSLY BEEN MOUNTED THROUGH USE OF THE "MC" COMMAND OF FMGR. ::LS INDICATES THE LS TRACKS OF RTE. WHEN THIS FILE TYPE IS GIVEN AS THE OUTPUT FILE, TFER WILL REPORT THE LU AND TRACK TO THE OPERATOR. ::LG INDICATES THE LG TRACKS OF RTE. WHEN THIS FILE TYPE IS GIVEN AS THE OUTPUT FILE, TFER WILL APPEND THE FILE TO THE PREVIOUS CONTENTS OF THE LG TRACKS. IT IS NECESSARY FOR THE RTE "LG" DIRECTIVE TO BE ISSUED TO ALLOCATE THE LG TRACKS BEFORE COPYING ONTO THEM. FILE::U INDICATES A FILE ON A DOS-M OR DOS-III DISC IN THE USER AREA. FILE = FILE NAME, AS CONTAINED IN THE DOS DIRECTORY. FILE::X INDICATES A FILE ON A DOS-M OR DOS-III DISC IN THE SYSTEM AREA. THESE FILES CANNOT BE USED FOR OUTPUT, SINCE THE SYSTEM FILE AREA CANNOT GROW. FILE = FILE NAME, AS CONTAINED IN THE DOS DIRECTORY. SEVERAL TYPES OF FILES MAY BE COPIED. SOURCE AND RELOCATABLE FILES WILL ALWAYS BE COPIED TO DESTINATION FILES OF SIMILAR TYPE. ALL OTHER TYPES OF FILES WILL BE COPIED TO TYPE 1 FMGR FILES OR TYPE BD DOS-M/DOS-III FILES. RESTRICTIONS APPLY IN COPYING TO LS OR LG FILES IN THE RTE *w SYSTEM. A SOURCE FILE MUST BE USED AS INPUT IN ORDER TO COPY TO THE LS TRACKS. LIKEWISE, A RELOCATABLE BINARY FILE MUST BE USED AS INPUT IN ORDER TO SPECIFY THE LG TRACKS AS OUTPUT. WHEN THE PROGRAM IS ACTIVATED, THE FOLLOWING OPTIONS CAN BE ENTERED: ON,TFER,INLU,OUTLU,DOSLU,FIRSTDOSTRACK,FIRSTDOSSECTOR INLU = LOGICAL UNIT SUPPLYING COMMANDS TO THE PROGRAM. THE DEFAULT IS 1. OUTLU = LOGICAL UNIT TO WHICH ALL MESSAGES ARE DIRECTED. THE DEFAULT IS 1. IF INLU IS SUPPLIED AND OUTLU IS NOT SUPPLIED OR IS ZERO, THEN BOTH INPUT AND OUTPUT WILL BE DONE WITH THE LOGICAL UNIT SPECIFIED BY INLU. THIS FEATURE ALLOWS THE USE OF THIS PROGRAM WITH MULTIPLE TERMINALS. DOSLU = THE LOGICAL UNIT OF THE PERIPHERAL DISC CONTAINING THE DOS-M OR DOS-III PLATTER. THIS DISC IS NOT MOUNTED (MC) BY FMGR. AS A DEFAULT, THE PERIPHERAL DISC IS USED THAT HAS THE LOWEST LU NUMBER AND WHICH ALSO USES DVR31. FIRSTDOSTRACK = FIRST TRACK USED BY DOS-M/DOS-III FIRSTDOSSECTOR = FIRST SECTOR USED BY DOS-M/DOS-III THE DEFAULTS FOR THESE TWO PARAMETERS ARE ARE TRACK=0, SECTOR=3. THESE PARAMETERS NEED ONLY BE ENTERED IF THE DOS-M/III DISC CONTAINS A SYSTEM THAT WAS GENERATED AT A DISC LOCATION OTHER THAN TRACK=0, SECTOR=3. IN SUCH A CASE, ENTER BOTH PARAMETERS, USING THE SAME VALUES THAT WERE ENTERED DURING THE DOS-M/III SYSGEN. NOTE THAT THE VALUE OF FIRSTDOSSECTOR REFERS TO DOS-M/III SECTORS OF 128 WORD SIZE. DEFAULT VALUES OF THESE PARAMETERS ARE USED IN CASES WHERE THE INDIVIDUAL PARAMETERS ARE NOT ENTERED. END COMMENT; FORMAT IDENT ("TFER 07/30/76 *jMEYER*"); INTEGER INLU, & FIRST PARAMETER FROM RTE OUTLU, & SECOND PARAMETER FROM RTE DOSLU, & THIRD PARAMETER FROM RTE FIRSTSYSTRACK, & FOURTH PARAMETER FROM RTE FIRSTSYSSECTOR, & FIFTH PARAMETER FROM RTE DOSLABELSECT, DOSLABELTRK, IERR, INDISC, INPUTPNTR, INPUTSECTNO, INPUTSECTOR, INPUTSIZE, INPUTTRACK, INPUTTYPE, LAST, OUTDISC, OUTPUTPNTR, OUTPUTSECTNO, OUTPUTSECTOR, OUTPUTTRACK, OUTPUTTYPE, N, OUT1, OUT2, OUT3, OUT4, RECORDLENGTH, SECTORSPERTRACK, X; INTEGER ARRAY INPUTBUF [1:144], OUTPUTBUF [1:144], RECORDBUF [1:128]; LABEL BADDISCSUBCHAN, CLOSEDOSFILE, CLOSEDOSREL, CLOSEFMGRFILE, COPYRECORD, FILEEND, GETFMGRRECORD, GETINPUTDOSFILE, GETINPUTFILE, GETOUTPUTFILE, GETRELRECORD, OUTPUTDOSREL, OUTPUTFMGRREL, STOP; & & & & & PROCEDURES FOLLOW & & & & & PROCEDURE EXEC1 (CW, BUF, LENGTH, TRACK, SECTOR); VALUE CW, LENGTH, TRACK, SECTOR; INTEGER CW, BUF, LENGTH, TRACK, SECTOR; BEGIN PROCEDURE EXEC (A, B, C, D, E, F); VALUE A, B, D, E, F; INTEGER A, B, C, D, E, F; CODE; EXEC (1, @100+CW, BUF, LENGTH, TRACK, SECTOR); END; & & & & PROCEDURE EXEC2 (CW, BUF, LENGTH, TRACK, SECTOR); VALUE CW, LENGTH, TRACK, SECTOR; INTEGER CW, BUF, LENGTH, TRACK, SECTOR; BEGIN PROCEDURE EXEC (A, B, C, D, E, F); VALUE A, B, D, E, F; INTEGER A, B, C, D, E, F; CODE; EXEC (2, @2100+CW, BUF, LENGTH, TRACK, SECTOR); END; & & & PROCEDURE EXEC4 (PARM1, PARM2, PARM3, PARM4); VALUE PARM1; INTEGER PARM1, PARM2, PARM3, PARM4; BEGIN PROCEDURE EXEC (A, B, C, D, E); VALUE A, B; INTEGER A, B, C, D, E; CODE; EXEC (4, PARM1, PARM2, PARM3, PARM4); END; & & & PROCEDURE EXEC5 (PARM1, PARM2, PARM3(); VALUE PARM1; INTEGER PARM1, PARM2, PARM3; BEGIN PROCEDURE EXEC (A, B, C, D); VALUE A, B; INTEGER A, B, C, D; CODE; EXEC (5, PARM1, PARM2, PARM3); END; & & & PROCEDURE EXEC13 (PARM1, PARM2); INTEGER PARM1, PARM2; BEGIN PROCEDURE EXEC (A, B, C); VALUE A; INTEGER A, B, C; CODE; EXEC (13, PARM1, PARM2); END; & & & PROCEDURE RMPAR (BUF); INTEGER BUF; CODE; & & & INTEGER PROCEDURE KORE (LOCN); VALUE LOCN; INTEGER LOCN; CODE; & & & PROCEDURE ERRCHECK; BEGIN IF IERR THEN BEGIN WRITE (OUTLU, #("FILE MANAGER ERROR", I4), IERR); GO TO GETINPUTFILE; END; END; & & & PROCEDURE STORE (LOCN, CONTENTS); VALUE LOCN, CONTENTS; INTEGER LOCN, CONTENTS; CODE; & & & PROCEDURE CLEAROUTPUTBUF; BEGIN FOR X _ 1 TO 128 DO OUTPUTBUF [X] _ 0; END; & & & & PROCEDURE GETSECTOR; BEGIN IF INPUTSECTNO >= INPUTSIZE THEN GO TO FILEEND; EXEC1 (INDISC, INPUTBUF [1], 128, INPUTTRACK, INPUTSECTOR); INPUTSECTNO _ INPUTSECTNO + 1; INPUTPNTR _ 1; INPUTSECTOR _ INPUTSECTOR + 2; IF INPUTSECTOR = SECTORSPERTRACK THEN BEGIN INPUTSECTOR _ 0; INPUTTRACK _ INPUTTRACK +1; END; END; & & & INTEGER PROCEDURE GETDISCWORD; BEGIN IF INPUTPNTR > 128 THEN GETSECTOR; GETDISCWORD _ INPUTBUF [INPUTPNTR]; INPUTPNTR _ INPUTPNTR + 1; END; & & & PROCEDURE WRITESECTOR; BEGIN IF OUTPUTTYPE <= 3 AND OUTPUTTRACK > 199 THEN BEGIN WRITE (OUTLU, #("ERROR: DOS DISC OVERFLOW")); GO TO GETINPUTFILE; END; EXEC2 (OUTDISC, OUTPUTBUF [1], 128, OUTPUTTRACK, OUTPUTSECTOR); CLEAROUTPUTBUF; OUTPUTSECTNO _ OUTPUTSECTNO + 1; OUTPUTPNTR _ 1; OUTPUTSECTOR _ OUTPUTSECTOR + 2; IF OUTPUTSECTOR = SECTORSPERTRACK THEN BEGIN OUTPUTSECTOR _ 0; OUTPUTTRACK _ OUTPUTTRACK + 1; END; END; & & & PROCEDURE WRITEDOSWORD (WORD); VALUE WORD; INTEGER WORD; BEGIN IF OUTPUTPNTR > 128 THEN WRITESECTOR; OUTPUTBUF [OUTPUTPNTR] _ WORD; OUTPUTPNTR _ OUTPUTPNTR + 1; END; & & & INTEGER PROCEDURE GETLSWORD; BEGIN IF INPUTPNTR = 128 AND INPUTSECTOR = 0 THEN BEGIN INDISC _ ROTATE (INPUTBUF [128]) AND 255; INPUTTRACK _ INPUTBUF [128] AND 255; INPUTSECTOR _ INPUTSECTNO _ 0; GETSECTOR; END; GETLSWORD _ GETDISCWORD; END; & & & PROCEDURE GETTRACK; BEGIN EXEC4 (@100001, OUT1, OUT2, SECTORSPERTRACK); IF OUT1 THEN BEGIN WRITE (OUTLU, #("WAITING FOR TRACKS")); EXEC4 (1,OUT1, OUT2, SECTORSPERTRACK); END; END; & & & PROCEDURE WRITELSWORD (WORD); VALUE WORD; INTEGER WORD; BEGIN IF OUTPUTPNTR = 128 AND OUTPUTSECTOR+2 = SECTORSPERTRACK THEN BEGIN GETTRACK; OUTPUTBUF [128] _ ROTATE (OUT2) + OUT1; WRITESECTOR; OUTDISC _ OUT2; OUTPUTTRACK _ OUT1; END; WRITEDOSWORD (WORD); END; & & & PROCEDURE WRITELGWORD (WORD); VALUE WORD; INTEGER WORD; BEGIN IF OUTPUTPNTR > 64 THEN BEGIN EXEC2 (IF KORE (@1766) THEN 3 ELSE 2, OUTPUTBUF [1], 64, (KORE (@1766) AND @77600) \ 128, (KORE (@1766) AND @177)); CLEAROUTPUTBUF; OUTPUTPNTR _ 1; END; WRITEDOSWORD (WORD); END; & & & PROCEDURE CONFIRMOLDFILE; BEGIN WRITE (OUTLU, #("OLD FILE! OK TO ERASE? _")); READ (INLU, #(A2), IERR); IF IERR # "YE" THEN BEGIN WRITE (OUTLU, #("RE-ENTER _")); GO TO GETOUTPUTFILE; END; END; & & & & & INPUT AND PARSE FILE NAME & & INTEGER PROCEDURE GETFILENAME; BEGIN INTEGER PNTR, N, X; INTEGER ARRAY ITEM [1:3], ITEMPNTR [1:3]; & & RETURN FUNCTION VALUE AS: & 1 = DOS FILE - USER AREA & 2 = DOS FILE - SYSTEM AREA & 3 = RTE LS & 4 = RTE LG & 5 = RTE FMGR FILE & & RETURNS CELLS OF OUTBUF WITH: & 129-131 = FILE NAME (EXCEPT FOR LS AND LG) & 133 = SECURITY CODE (FMGR FILES ONLY) & 134 = CART NUMBER (FMGR FILES ONLY) & & INPUT FILE STRINGS ARE INTERPRETED AS FOLLOWS: & & FILE TYPE / INPUT STRING & ----------------------/-------------------------h2---- & DOS USER FILE / FILE::U & DOS SYSTEM FILE / FILE::X & RTE LS / ::LS & RTE LG / ::LG & RTE FMGR FILE / FILE:SC:CART (NORMAL NAMR) & & & & & RETURN NEXT CHARACTER OF FILE NAME & N = CHARACTER NUMBER (STARTS AT ZERO) & INTEGER PROCEDURE NAMECHAR (N); VALUE N; INTEGER N; BEGIN NAMECHAR _ IF ITEMPNTR [1] + N + 1 >= ITEMPNTR [2] AND OUTPUTBUF [ITEMPNTR [2] - 1] = ":" THEN " " ELSE OUTPUTBUF [ITEMPNTR [1] + N]; END; & & & & TEST FOR DECIMAL NUMBER & BOOLEAN PROCEDURE DECIMALNUMBER; BEGIN INTEGER P,Q; P _ Q _ IF OUTPUTBUF [PNTR] = "-" THEN PNTR+1 ELSE PNTR; WHILE OUTPUTBUF [P] >= "0" AND OUTPUTBUF [P] <= "9" DO P _ P + 1; DECIMALNUMBER _ IF (OUTPUTBUF [P] = ":" OR P = LAST) AND P # Q THEN TRUE ELSE FALSE; END; & & & & TEST FOR OCTAL NUMBER & BOOLEAN PROCEDURE OCTALNUMBER; BEGIN INTEGER P,Q; P _ Q _ IF OUTPUTBUF [PNTR] = "-" THEN PNTR+1 ELSE PNTR; WHILE OUTPUTBUF [P] >= "0" AND OUTPUTBUF [P] <= "7" DO P _ P + 1; OCTALNUMBER _ IF OUTPUTBUF [P] = "B" AND (OUTPUTBUF [P + 1] = ":" OR P+1 = LAST) AND P # Q THEN TRUE ELSE FALSE; END; & & & GET FILE NAME & & DO BEGIN READ (INLU, #(50R1), FOR N_2 TO 51 DO OUTPUTBUF[N]); LAST _ 52; WHILE OUTPUTBUF[LAST-1] = " " AND LAST > 2 DO LAST _ LAST - 1; PNTR _ 2; FOR N_1 TO 3 DO & PARSE 3 ITEMS IN FILE STRING BEGIN WHILE OUTPUTBUF [PNTR] = " " AND PNTR < LAST DO PNTR _ PNTR + 1; ITEM [N] _ & FOUR POSSIBLE VALUES IF OUTPUTBUF [PNTR] = ":" OR PNTR = LAST THEN 3 & NULL STRING ELSE IF OCTALNUMBER THEN 2 & OCTAL NUMBER ELSE IF DECIMALNUMBER THEN 1 & DECIMAL NUMBER ELSE 0; & STRING ITEMPNTR [N] _ PNTR; WHILE OUTPUTBUF[PNTR] # ":" AND PNTR # LAST DO PNTR _ PNTR + 1; & MOVE PNTR TO 63START OF NEXT ITEM IF OUTPUTBUF[PNTR] = ":" THEN PNTR _ PNTR + 1; END; GETFILENAME _ 0; & FIND FILENAME TYPE IF ITEM [1] = 0 AND ITEM [2] = 3 AND ITEMPNTR [3] = PNTR - 1 THEN IF OUTPUTBUF [ITEMPNTR [3]] = "U" THEN GETFILENAME _ 1 & LOOK FOR NAME::U ELSE IF OUTPUTBUF [ITEMPNTR [3]] = "X" THEN GETFILENAME _ 2; & LOOK FOR NAME::X IF ITEM [1] = 3 AND ITEM [2] = 3 AND OUTPUTBUF [ITEMPNTR [3]] = "L" AND ITEMPNTR [3] = PNTR - 2 THEN IF OUTPUTBUF [ITEMPNTR [3] + 1] = "S" THEN GETFILENAME _ 3 & LOOK FOR ::LS ELSE IF OUTPUTBUF [ITEMPNTR [3] + 1] = "G" THEN GETFILENAME _ 4; & LOOK FOR ::LG IF ITEM [1] = 0 AND ITEM [3] # 0 THEN GETFILENAME _ 5; & LOOK FOR NAME:SC:CART & DONT ALLOW COLON AS LAST CHAR IF OUTPUTBUF [LAST - 1] = ":" THEN GETFILENAME _ 0; & MOVE FILENAME STRING IF ITEM [1] = 0 THEN FOR N_0 STEP 2 UNTIL 4 DO OUTPUTBUF [129 + N \ 2] _ & GET 2 CHARS PER WORD ROTATE (NAMECHAR (N)) + NAMECHAR (N+1); & LOOK FOR PROGRAM COMPLETION IF OUTPUTBUF [129] = "/E" AND LAST = 4 THEN GO TO STOP; IF GETFILENAME=1 OR GETFILENAME=2 THEN & IF DOS FILE IF (OUTPUTBUF [131] AND 127) # " " THEN GETFILENAME _ 0 ELSE OUTPUTBUF [131] _ OUTPUTBUF [131] - " "; FOR N_2 TO 3 DO & EVALUATE NUMERICAL VALUES BEGIN OUTPUTBUF [131 + N] _ 0; X _ IF OUTPUTBUF [ITEMPNTR [N]] = "-" THEN ITEMPNTR [N] + 1 ELSE ITEMPNTR [N]; IF ITEM [N] = 1 & IF DECIMAL NUMBER THEN WHILE OUTPUTBUF [X] # ":" AND X # LAST DO BEGIN OUTPUTBUF [131 + N] _ 10 * OUTPUTBUF [131 + N] +OUTPUTBUF [X] - "0"; X _ X + 1; END; IF ITEM [N] = 2 THEN & IF OCTAL NUMBER WHILE OUTPUTBUF [X] # "B" DO BEGIN OUTPUTBUF [131 + N] _ 8 * OUTPUTBUF [131 + N] +OUTPUTBUF [X] - "0"; X _ X + 1;߶ END; IF OUTPUTBUF [ITEMPNTR [N]] = "-" THEN OUTPUTBUF [131 + N] _ -OUTPUTBUF [131 + N]; END; & GET SECURITY CODE IF ASCII STRING IF ITEM [2] = 0 THEN OUTPUTBUF [133] _ ROTATE (OUTPUTBUF [ITEMPNTR [2]]) + (IF OUTPUTBUF [ITEMPNTR [2] + 1] = ":" THEN " " ELSE OUTPUTBUF [ITEMPNTR [2] + 1]); IF GETFILENAME = 0 THEN WRITE (OUTLU, #("ERROR: ENTER AGAIN: _")); END UNTIL GETFILENAME#0; CLEAROUTPUTBUF; END; & & & & LOOKUP DOS-M OR DOS-III FILE NAME & & INTEGER PROCEDURE LOOKUPDOSFILE (USERSYS, TRK, SECT, WORD, BUF); & & & THE ROUTINE LOOKS UP THE FILE NAME & GIVEN IN OUTPUTBUF [129-131]. THE VALUE & RETURNED IS AS FOLLOWS: & 0 = NOT DOS DISC & 1 = NOT FOUND & 2 = FOUND & USERSYS = 0-USER, 1-SYSTEM & TRK = DIRECTORY TRACK & SECT = DIRECTORY SECTOR & WORD = WORD LOCATION IN DIRECTORY SECTOR & BUF = DIRECTORY LOOKUP BUFFER & DOSLABELTRK = TRACK CONTAINING DIRECTORY LABEL & DOSLABELSECT = SECTOR CONTAINING DIRECTORY SECTOR & DOSLU = LOGICAL UNIT FOR DOS DISC & SECTORSPERTRACK = SECTORS PER TRACK IN RTE SYSTEM & & & IF THE FILE IS FOUND (FUNCTION VALUE = 2), THE & PARAMETERS TRK, SECT, & WORD INDICATE THE LOCATION & OF THE DIRECTORY ENTRY IN THE DOS-M OR DOS-III & FILE DIRECTORY. IF THE FILE IS NOT FOUND (FUNCTION & VALUE = 1), THEN TRK, SECT, & WORD INDICATE THE & LOCATION OF THE END-OF-DIRECTORY MARK. NEW ENTRIES & WOULD BE WRITTEN AT THIS PLACE. & & VALUE USERSYS; INTEGER USERSYS, TRK, SECT, WORD; INTEGER ARRAY BUF; BEGIN EXEC1 (DOSLU, BUF [1], 128, 0, 0); LOOKUPDOSFILE _ TRK _ SECT _ DOSLABELTRK _ DOSLABELSECT _ 0; IF BUF [1] = "LB" AND BUF [2] = "DO" OR BUF [1] = 0 THEN BEGIN IF USERSYS=0 & SETUP FOR USER FILE DIRECTORY AND BUF [4] = "SY" AND BUF [5] = "ST" AND BUF [6] = "EM" A<:66< THEN BEGIN DOSLABELTRK _ TRK _ ROTATE (BUF [65]) AND 255; DOSLABELSECT _ SECT _ 2 * (BUF [65] AND 255); END; IF USERSYS=1 THEN & SETUP FOR SYSTEM FILE DIRECTORY IF BUF [4] = "SY" AND BUF [5] = "ST" AND BUF [6] = "EM" THEN IF (FIRSTSYSTRACK OR FIRSTSYSSECTOR) = 0 THEN SECT _ 4 ELSE BEGIN TRK _ FIRSTSYSTRACK; SECT _ 2 * FIRSTSYSSECTOR - 2; END ELSE LOOKUPDOSFILE _ 1; & NO SYSTEM FILES ON DISC WHILE LOOKUPDOSFILE = 0 DO BEGIN & READ ONE DIRECTORY SECTOR SECT _ SECT +2; IF SECT = SECTORSPERTRACK THEN BEGIN TRK _ TRK + 1; SECT _ 0; END; EXEC1 (DOSLU, BUF [1], 128, TRK, SECT); WORD _ 1; DO & SEARCH ONE DIRECTORY SECTOR IF BUF [WORD] = 0 THEN LOOKUPDOSFILE _ 1 & END OF DIR ELSE IF BUF [WORD] = -1 THEN WORD _ 999 & END OF SECTOR ELSE IF OUTPUTBUF [129] = BUF [WORD] AND OUTPUTBUF [130] = BUF [WORD+1] AND OUTPUTBUF [131] =(BUF [WORD+2] AND @77400) THEN LOOKUPDOSFILE _ 2 ELSE IF BUF [WORD] OR BUF [WORD+1] OR BUF [WORD+2] OR BUF [WORD+4] THEN BEGIN IF USERSYS=1 THEN WRITE(OUTLU,#("ERROR: BAD DOS SYSTEM DIRECTORY")) ELSE WRITE(OUTLU,#("ERROR: BAD DOS USER DIRECTORY")); GO TO GETINPUTFILE; END ELSE WORD _ WORD + (IF (BUF [WORD+2] AND 127) >= 6 THEN 5 ELSE 11) UNTIL WORD > 128 OR LOOKUPDOSFILE # 0; END; END; END; & & & BOOLEAN PROCEDURE ENDRECORD; BEGIN ENDRECORD _ IF (RECORDBUF [2] AND @160000) = @120000 THEN TRUE ELSE FALSE; END; & & & PROCEDURE TESTRECORDSIZE; BEGIN IF RECORDLENGTH >= 128 THEN BEGIN WRITE (OUTLU, #("WARNING: RECORD TRUNCATED")); GRECORDLENGTH _ 128; END; IF IERR = -12 OR RECORDLENGTH THEN GO TO FILEEND; END; & & & INTEGER PROCEDURE OPEN (DCB, IERR, NAME, CW, SCODE, CART); VALUE CW; INTEGER DCB, IERR, NAME, CW, SCODE, CART; CODE; & & & INTEGER PROCEDURE CREAT (DCB, IERR, NAME, SIZE, TYPE, SCODE, CART); VALUE TYPE; INTEGER DCB, IERR, NAME, SIZE, TYPE, SCODE, CART; CODE; & & & INTEGER PROCEDURE PURGE (DCB, IERR, NAME, SCODE, CART); INTEGER DCB, IERR, NAME, SCODE, CART; CODE; & & & INTEGER PROCEDURE READF (DCB, IERR, BUF, LENGTH, LEN); VALUE LENGTH; INTEGER DCB, IERR, BUF, LENGTH, LEN; CODE; & & & INTEGER PROCEDURE WRITF (DCB, IERR, BUF, LENGTH); VALUE LENGTH; INTEGER DCB, IERR, BUF, LENGTH; CODE; & & & INTEGER PROCEDURE CLOSE (DCB, IERR, TRUN); VALUE TRUN; INTEGER DCB, IERR, TRUN; CODE; & & & INTEGER PROCEDURE LOCF (DCB, IERR, A, B, C, D, E); INTEGER DCB, IERR, A, B, C, D, E; CODE; & & & & & & BEGIN EXECUTION & & RMPAR (INLU); IF INLU # 0 AND OUTLU = 0 THEN OUTLU _ INLU; IF INLU = 0 THEN INLU _ 1; IF OUTLU = 0 THEN OUTLU _ 1; GETTRACK; EXEC5 (1, OUT1, OUT2); & & & WHILE DOSLU = 0 DO BEGIN FOR OUT3 _ KORE (@1653) STEP -1 UNTIL 7 DO IF KORE (KORE (@1652) + OUT3 - 1) # 0 THEN BEGIN EXEC13 (OUT3, OUT4); IF (OUT4 AND @37400)=@14400 THEN & TEST FOR DVR31 DOSLU _ OUT3; END; IF DOSLU = 0 THEN BEGIN WRITE(OUTLU,#("ENTER RTE LOGICAL UNIT FOR DOS DISC: _")); READ (INLU, *, DOSLU); END; END; & & & GETINPUTFILE: CLOSE (INPUTBUF [1], IERR, 0); INPUTPNTR _ 129; INPUTSECTNO _ INPUTSECTOR _ 0; WRITE (OUTLU, #("INPUT FILE: _")); CASE GETFILENAME BEGIN & & DOS USER FILE (1) & BEGIN N _ 0; GO TO GETINPUTDOSFILE; END; & & DOS SYSTEM FILE (2) & BEGIN N _ 1; GETINPUTDOSFILE: INDISC _ DOSLU; N _ LOOKUPDOSFILE (N, OUT1, OUT2, OUT3, INPUTBUF); IF N=0 THEN GO TO tNBADDISCSUBCHAN; IF N=1 THEN BEGIN WRITE (OUTLU, #("ERROR: FILE NOT FOUND")); GO TO GETINPUTFILE; END; INPUTTRACK _ ROTATE (INPUTBUF [OUT3+3]) AND 255; INPUTSECTOR _ 2 * (INPUTBUF [OUT3+3] AND 255); INPUTSIZE _ INPUTBUF [OUT3+4]; INPUTTYPE _ IF (INPUTBUF [OUT3+2] AND 127)=9 THEN 1 ELSE IF (INPUTBUF [OUT3+2] AND 127) >= 6 AND (INPUTBUF [OUT3+2] AND 127) <= 8 THEN 2 ELSE 3; END; & & RTE LS FILE (3) & BEGIN INDISC _ IF KORE (@1767) THEN 3 ELSE 2; INPUTTRACK _ (KORE (@1767) AND @77600) \ 128; INPUTSIZE _ 32767; INPUTTYPE _ 7; END; & & RTE LG FILE (4) & BEGIN INDISC _ IF KORE (@1765) THEN 3 ELSE 2; INPUTTRACK _ (KORE (@1765) AND @77600) \ 128; INPUTTYPE _ 8; INPUTSIZE _ ((KORE (@1766)\128 - KORE (@1765)\128) * SECTORSPERTRACK + ((KORE (@1766) AND 127) + 1)) \ 2; END; & & RTE FILE MANAGER FILE (5) & BEGIN OPEN ( INPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE OUTPUTBUF[129], & FILE NAME 1, & CONTROL WORD OUTPUTBUF[133], & SECURITY CODE OUTPUTBUF[134]); & CARTRIDGE NUMBER ERRCHECK; INPUTTYPE _ IF IERR=0 OR IERR=3 OR IERR=4 THEN 4 ELSE IF IERR=5 THEN 5 ELSE 6; END; END; & & & GETOUTPUTFILE: CLOSE (OUTPUTBUF [1], IERR, 0); OUTPUTPNTR _ 1; OUTPUTSECTNO _ OUTPUTSECTOR _ OUT2 _ 0; WRITE (OUTLU, #("OUTPUT FILE: _")); CASE GETFILENAME BEGIN & & DOS USER FILE (1) & BEGIN OUTDISC _ DOSLU; N _ LOOKUPDOSFILE (0, OUT1, OUT2, OUT3, OUTPUTBUF); OUTPUTBUF [135] _ -1; IF N=0 THEN GO TO BADDISCSUBCHAN ELSE IF N=2 THEN BEGIN CONFIRMOLDFILE; OUTPUTBUF [135] _ OUT1; & SAVE OLD FILE ENTRY OUTPUTBUF [136] _ OUT2; OUTPUTBUF [137] _ OUT3; END; EXEC1 (DOSLU,OUTPUTBUF[1],128,DOSLABELTRK,DOSLABELSECT); & GET FREE TRACK AND SECTOR OUTPUTTRACK _ ROTATE (OUTPUTBUF [65]) AND 255; OUTPUTSECTOR _ 2 * (OUTPUTBUF [65] AND 255); OUTPUTBUF [132] _ OUTPUTBUF [65]; & BUILD NEW DIR ENTRY OUTPUTTYPE _ & SELECT OUTPUT ROUTINE IF INPUTTYPE MOD 3 = 0 THEN 3 & BINARY FILE ELSE INPUTTYPE MOD 3; & SOURCE OR REL FILE OUTPUTBUF [131] _ OUTPUTBUF [131] + (IF OUTPUTTYPE=1 THEN 9 ELSE IF OUTPUTTYPE=2 THEN 8 ELSE 10); & SETUP DOS FILE TYPE CLEAROUTPUTBUF; END; & & DOS SYSTEM FILE (2) & BEGIN WRITE (OUTLU, #("CANNOT OUTPUT TO DOS SYSTEM AREA")); GO TO GETOUTPUTFILE; END; & & RTE LS FILE (3) & BEGIN IF INPUTTYPE = 1 OR INPUTTYPE = 4 THEN OUTPUTTYPE _ 7 ELSE GO TO GETOUTPUTFILE; GETTRACK; OUTDISC _ OUT2; OUTPUTTRACK _ OUT1; WRITE (OUTLU, #("LS=", I3, ",", I3), OUTDISC, OUTPUTTRACK); STORE (@1767, OUTPUTTRACK * 128 - ( IF OUTDISC=3 THEN 32768 ELSE 0)); END; & & RTE LG FILE (4) & BEGIN CLEAROUTPUTBUF; IF INPUTTYPE=2 OR INPUTTYPE=5 THEN OUTPUTTYPE _ 8 ELSE GO TO GETOUTPUTFILE; END; & & RTE FILE MANAGER FILE (5) & BEGIN FOR N_1 TO 6 DO RECORDBUF [N] _ OUTPUTBUF [128+N]; OUTPUTTYPE _ & SELECT OUTPUT ROUTINE IF INPUTTYPE MOD 3 = 1 THEN 4 ELSE IF INPUTTYPE MOD 3 = 2 THEN 5 ELSE 6; OUT1 _ -1; & REQUIRED WHILE CREAT ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE RECORDBUF[1], & FILE NAME OUT1, & FILE SIZE IF OUTPUTTYPE=6 & FILE TYPE THEN 1 ELSE OUTPUTTYPE, RECORDBUF[5], & SECURITY CODE RECORDBUF[6]) & CARTRIDGE NUMBER DO BEGIN IF IERR = -2 & DUPLICATE FILE NAME THEN BEGIN IF OPEN ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CO&DE RECORDBUF[1], & FILE NAME IF OUTPUTTYPE=4 & CONTROL WORD THEN @210 & SOURCE - USE HONESTY ELSE @110, & BINARY - SET "M" BIT RECORDBUF[5], & SECURITY CODE RECORDBUF[6]) & CARTRIDGE NUMBER =0 & TEST FOR TYPE ZERO FILE THEN GO TO COPYRECORD; ERRCHECK; CONFIRMOLDFILE; LOCF ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE N, & NEXT RECORD NUMBER N, & BLOCK OF NEXT READ N, & OFFSET OF NEXT RECORD N, & NO OF SECTORS IN FILE OUTDISC); & LOGICAL UNIT ERRCHECK; RECORDBUF [6] _ -OUTDISC; PURGE ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE RECORDBUF[1], & NAME RECORDBUF[5], & SECURITY CODE RECORDBUF[6]); & CARTRIDGE NUMBER END; ERRCHECK; END; END; END; & & & COPYRECORD: CASE INPUTTYPE BEGIN & & INPUT FROM DOS SOURCE FILE (1) & BEGIN RECORDLENGTH _ ROTATE (GETDISCWORD); IF RECORDLENGTH=0 THEN GO TO FILEEND; TESTRECORDSIZE; FOR N_1 TO RECORDLENGTH DO RECORDBUF [N] _ GETDISCWORD; END; & & INPUT FROM DOS RELOCATABLE FILE (2) & BEGIN DO BEGIN RECORDLENGTH _ RECORDBUF [1] _ GETDISCWORD; IF RECORDLENGTH=0 THEN GETSECTOR; END UNTIL RECORDLENGTH # 0; GETRELRECORD: RECORDLENGTH _ ROTATE (RECORDLENGTH); TESTRECORDSIZE; FOR N_2 TO RECORDLENGTH DO RECORDBUF [N] _ GETDISCWORD; END; & & INPUT FROM DOS FILE BY SECTORS (3) & BEGIN GETSECTOR; RECORDLENGTH _ 128; FOR N_1 TO 128 DO RECORDBUF [N] _ INPUTBUF [N]; END; & & INPUT FROM RTE FMGR SOURCE FILE (4) & GO TO GETFMGRRECORD; & & INPUT FROM RTE FMGR REL FILE (5) & GETFMGRRECORD: DO BEGIN READF ( INPUTBUF[1],  & DISC CONTROL BLOCK IERR, & ERROR CODE RECORDBUF[1], & RECORD BUFFER 128, & RECORD BUFFER SIZE RECORDLENGTH); & ACTUAL SIZE OF RECORD READ TESTRECORDSIZE; ERRCHECK; END UNTIL RECORDLENGTH # 0; & & INPUT FROM RTE FMGR BINARY FILE (6) & BEGIN FOR N_1 TO 128 DO RECORDBUF[N] _ 0; IF READF ( INPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE RECORDBUF[1], & RECORD BUFFER 128, & RECORD BUFFER SIZE RECORDLENGTH) & ACTUAL SIZE OF RECORD READ = -12 OR RECORDLENGTH THEN GO TO FILEEND; ERRCHECK; END; & & INPUT RTE LS RECORD (7) & BEGIN DO RECORDLENGTH _ ROTATE (GETLSWORD) UNTIL RECORDLENGTH # 0; TESTRECORDSIZE; FOR N _ 1 TO RECORDLENGTH DO RECORDBUF [N] _ GETLSWORD; END; & & INPUT RTE LG RECORD (8) & BEGIN DO BEGIN RECORDLENGTH _ RECORDBUF[1] _ GETDISCWORD; IF RECORDLENGTH = 0 THEN IF INPUTPNTR > 65 THEN GETSECTOR ELSE IF INPUTSECTNO >= INPUTSIZE AND (KORE (@1766) AND 1) = 1 THEN GO TO FILEEND ELSE INPUTPNTR _ 65; END UNTIL RECORDLENGTH # 0; GO TO GETRELRECORD; END; END; & & & CASE OUTPUTTYPE BEGIN & & OUTPUT TO DOS SOURCE FILE (1) & BEGIN WRITEDOSWORD (ROTATE (RECORDLENGTH)); GO TO OUTPUTDOSREL; END; & & OUTPUT TO DOS RELOCATABLE FILE (2) & OUTPUTDOSREL: BEGIN FOR N_1 TO RECORDLENGTH DO WRITEDOSWORD (RECORDBUF [N]); IF ENDRECORD AND OUTPUTTYPE=2 THEN WHILE OUTPUTPNTR # 129 DO WRITEDOSWORD (0); END; & & OUTPUT TO DOS FILE BY SECTORS (3) BEGIN FOR N_1 TO RECORDLENGTH DO OUTPUTBUF [N] _ RECORDBUF [N]; WRITESECTOR; END; & & OUTPUT TO RTE FMGR SOURCE FILE (4) & GO TO OUTPUTFMGRREL; & & OUTPUT TO RTE FMGR REL FILE (5) & GO TO OUTPUTFMGRREL; & & OUTPUT TO RTE FMGR BINARY FILE (6) & OUTPUTFMGRREL: BEGIN WRITF ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE RECORDBUF[1], & RECORD BUFFER RECORDLENGTH); & RECORD LENGTH ERRCHECK; END; & & OUTPUT RTE LS RECORD (7) & BEGIN WRITELSWORD (ROTATE (RECORDLENGTH)); FOR N _ 1 TO RECORDLENGTH DO WRITELSWORD (RECORDBUF [N]); END; & & OUTPUT RTE LG RECORD (8) & BEGIN FOR N_1 TO RECORDLENGTH DO WRITELGWORD (RECORDBUF [N]); IF ENDRECORD THEN WHILE OUTPUTPNTR # 65 DO WRITELGWORD (0); END; END; GO TO COPYRECORD; & & & FILEEND: CASE OUTPUTTYPE BEGIN & & CLOSE DOS SOURCE FILE (1) & BEGIN WRITEDOSWORD (0); GO TO CLOSEDOSREL; END; & & CLOSE DOS RELOCATABLE FILE (2) & CLOSEDOSREL: BEGIN WRITESECTOR; GO TO CLOSEDOSFILE; END; & & CLOSE DOS BINARY FILE (3) & CLOSEDOSFILE: BEGIN N _ LOOKUPDOSFILE (0, OUT1, OUT2, OUT3, OUTPUTBUF); OUTPUTBUF [133] _ OUTPUTSECTNO; OUTPUTBUF [134] _ 0; IF OUT3>123 THEN BEGIN IF OUT2 + 2 = SECTORSPERTRACK THEN BEGIN WRITE (OUTLU, #("ERROR: DOS DIRECTORY FULL")); GO TO GETINPUTFILE; END; IF OUT3=124 THEN BEGIN & EXACTLY FILLS DIR SECTOR FOR N_124 TO 129 DO OUTPUTBUF [N] _ OUTPUTBUF [N+5]; EXEC2 (DOSLU, OUTPUTBUF [1], 128, OUT1, OUT2); END ELSE BEGIN & EXTEND DIRECTORY TO NEXT SECTOR OUTPUTBUF [OUT3] _ -1; EXEC2 (DOSLU, OUTPUTBUF [1], 128, OUT1, OUT2); END; OUT2 _ OUT2 + 2; OUT3 _ 1; END; FOR N_0 TO 5 DO OUTPUTBUF [OUT3+N] _ OUTPUTBUF [129+N]; EXEC2 (DOSLU, OUTPUTBUF [1], 128, OUT1, OUT2); EXEC1 (DOSLU, OUTPUTBUF [1], 128, DOSLABELTRK, DOSLABELSECT); OUTPUTBUF [65] _ ROTATE (OUTPUTTRACK) + OUTPUTSECTOR \ 2; EXEC2 (DOSLU, }OUTPUTBUF[1],128, DOSLABELTRK, DOSLABELSECT); IF NOT OUTPUTBUF [135] THEN & IF OLD FILE BEGIN EXEC1 (DOSLU, OUTPUTBUF[1], 128, OUTPUTBUF [135], OUTPUTBUF [136]); OUTPUTBUF [OUTPUTBUF [137]] _ @20000; & KILL OLD NAME OUTPUTBUF [OUTPUTBUF [137] + 1] _ " "; OUTPUTBUF [OUTPUTBUF [137] + 2] _ & KEEP THE FILE TYPE (127 AND OUTPUTBUF [OUTPUTBUF [137] + 2]) + @20000; EXEC2 (DOSLU, OUTPUTBUF[1], 128, OUTPUTBUF [135], OUTPUTBUF [136]); END; END; & & CLOSE RTE FMGR SOURCE FILE (4) & GO TO CLOSEFMGRFILE; & & CLOSE RTE FMGR REL FILE (5) & GO TO CLOSEFMGRFILE; & & CLOSE RTE FMGR BINARY FILE (6) & CLOSEFMGRFILE: BEGIN WRITF ( & WRITE EOF TO TYPE ZERO OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE RECORDBUF[1], & RECORD BUFFER -1); & SIGNIFIES EOF ERRCHECK; LOCF ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE OUT1, & NEXT RECORD NUMBER OUT2, & BLOCK OF NEXT ACCESS N, & OFFSET OF NEXT RECORD OUT3, & NO OF SECTORS IN FILE N); & LOGICAL UNIT ERRCHECK; CLOSE ( OUTPUTBUF[1], & DISC CONTROL BLOCK IERR, & ERROR CODE OUT3\2-( & TRUNCATION IF OUTPUTTYPE=6 THEN OUT1-1 & DUE TO FMP ROUTINE BUG ELSE OUT2+1)); ERRCHECK; END; & & CLOSE RTE LS FILE (7) & BEGIN WRITELSWORD (-1); WRITESECTOR; END; & & CLOSE RTE LG FILE (8) & WRITELGWORD (0); END; & & ALL DONE - GO DO ANOTHER & GO TO GETINPUTFILE; & & & BADDISCSUBCHAN: WRITE (OUTLU, #("ABORT: NOT VALID DOS DISC")); & & & STOP: CLOSE (INPUTBUF[1], IERR, 0); CLOSE (OUTPUTBUF[1], IERR,0); WRITE (OUTLU, #("END")); END$ #64006ASMB,R,L * ALLOWS PROGRAMS TO READ OR WRITE ANY LOCATION IN CORE * ORIGINAL 3/27/75 BENNETT MEYER * NAM KORE,7 ENT KORE,STORE EXT $LIBR,$LIBX,.ENTR KK NOP KORE NOP JSB .ENTR DEF KK LDA KK,I GET REQUESTED LOCATION LDA 0,I GET CONTENTS OF LOCN JMP KORE,I RETURN SS BSS 2 STORE NOP JSB .ENTR DEF SS JSB $LIBR NOP LDA SS,I GET LOCATION LDB SS+1,I GET NEW CONTENTS STB 0,I STORE INTO CORE JSB $LIBX RETURN DEF STORE END  Sn 22682-18022 1632 SC 0222 DOS-M/III FILE DIRECTORY LISTING FROM RTE ENVIR.             H0102 sHPAL,L,"DOSLI",0,3,99 BEGIN COMMENT THIS PROGRAM PRODUCES A DIRECTORY LISTING OF A DOS-M OR DOS-III DISC AS VIEWED BY A RUNNING RTE SYSTEM. BENNETT MEYER THE SINGER COMPANY KEARFOTT DIVISION 1150 MC BRIDE AVENUE LITTLE FALLS, NEW JERSEY 07424 DATE OF LATEST REVISION IS GIVEN IN FORMAT IDENT. THIS PROGRAM EXECUTES IN AN RTE SYSTEM. TO ACTIVATE THE PROGRAM, ISSUE THE FOLLOWING RTE COMMAND: ON,DOSLI THE PROGRAM WILL THEN REQUEST A COMMAND TO LIST EITHER THE SYSTEM OR USER DISC DIRECTORY FROM A DOS-M OR DOS-III DISC PACK. WHEN THE DIRECTORY LISTING IS COMPLETED, THE PROGRAM WILL REQUEST ANOTHER COMMAND. THE QUIT COMMAND MAY ALSO BE GIVEN TO TERMINATE THE PROGRAM. WHEN THE PROGRAM IS ACTIVATED, THE FOLLOWING OPTIONS CAN BE ENTERED: ON,DOSLI,INLU,OUTLU,DOSLU,FIRSTDOSTRACK,FIRSTDOSSECTOR INLU = LOGICAL UNIT SUPPLYING COMMANDS TO THE PROGRAM. THE DEFAULT IS 1. OUTLU = LOGICAL UNIT TO WHICH THE DIRECTORY LISTINGS ARE DIRECTED. THE DEFAULT IS 6. IF INLU IS SUPPLIED AND OUTLU IS NOT SUPPLIED OR IS ZERO, THEN BOTH INPUT AND OUTPUT WILL BE DONE WITH THE LOGICAL UNIT SPECIFIED BY INLU. THIS FEATURE ALLOWS USE OF THIS PROGRAM WITH MULTIPLE TERMINALS. DOSLU = THE LOGICAL UNIT OF THE PERIPHERAL DISC CONTAINING THE DOS-M OR DOS-III PLATTER. THIS DISC IS NOT MOUNTED (MC) BY FMGR. AS A DEFAULT, THE PERIPHERAL DISC IS USED THAT HAS THE LOWEST LOGICAL UNIT NUMBER AND WHICH ALSO USES DRIVER DVR31. FIRSTDOSTRACK = FIRST TRACK USED BY DOS-M/DOS-III. FIRSTDOSSECTOR = FIRST SECTOR USED BY DOS-M/DOS-III. THE DEFAULTS FOR THESE TWO PARAMETERS ARE TRACK=0, SECTOR=3. THESE PARAMETERS NEED ONLY BE ENTERED IF THE DOS-M/III DISC CONTAINS A SYSTEM THAT WAS GENERATED WITH THE "FIRST SYSTEM TRACK" NOT EQUAL TO 0, OR THE "FIRST SYSTEM SECTOR" NOT EQUAL TO 3, IN THE DOS-M OR DOS-III SYSGEN. IN SUCH A CASE, ENTER BOTH PARAMETERS, USING THE SAME VALUES THAT WERE ENTERED DURING THE DOS-M/III SYSGEN. NOTE THAT THE VALUE OF FIRSTDOSSECTOR REFERS TO DOS-M/III SECTORS, HAVING 128 WORDS PER SECTOR. END COMMENT; FORMAT IDENT ("MEYER 12/02/75"); INTEGER ARRAY BUF [1:129]; INTEGER INLU, & FIRST PARAMETER FROM RTE OUTLU, & SECOND PARAMETER FROM RTE DOSLU, & THIRD PARAMETER FROM RTE FIRSTSYSTRACK, & FOURTH PARAMETER FROM RTE FIRSTSYSSECTOR, & FIFTH PARAMETER FROM RTE N, NEXTFILE, NULL_-1, SECTOR, SECTORSPERTRACK, TRACK, TYPE, WORD, X1, X2; LABEL BADDIRECTORY, GETDOSDISC, NOTDOSDISC, RUN, STOP; & & & & & PROCEDURE RMPAR (X); INTEGER X; CODE; PROCEDURE EXEC (X, A, B, C, D, E); VALUE X, A, C; INTEGER X, A, B, C, D, E; CODE; PROCEDURE GETDISC (TRK, SECT); VALUE TRK, SECT; INTEGER TRK, SECT; BEGIN EXEC (1, 64+DOSLU, BUF [1], 128, TRK, SECT); END; PROCEDURE TOF; BEGIN EXEC (3, @1100+OUTLU, NULL, NULL, NULL, NULL); END; INTEGER PROCEDURE EQTWORD (X); INTEGER X; BEGIN EXEC (13, X, EQTWORD, NULL, NULL, NULL); END; INTEGER PROCEDURE EQTYPE (X); INTEGER X; BEGIN EQTYPE _ (ROTATE (EQTWORD (X)) AND @77); END; INTEGER PROCEDURE KORE (LOCN); VALUE LOCN; INTEGER LOCN; CODE; PROCEDURE EXEC4 (A, B, C, D); VALUE A; INTEGER A, B, C, D; BEGIN PROCEDURE EXEC (X, A, B, C, D);  VALUE X, A; INTEGER X, A, B, C, D; CODE; EXEC (4, A, B, C, D); END; PROCEDURE EXEC5 (A, B, C); VALUE A; INTEGER A, B, C; BEGIN PROCEDURE EXEC (X, A, B, C); VALUE X, A; INTEGER X, A, B, C; CODE; EXEC (5, A, B, C); END; INTEGER PROCEDURE DIGIT (X); VALUE X; INTEGER X; BEGIN DIGIT _ (X\10^N) MOD 10; END; BOOLEAN PROCEDURE SYSLABEL; BEGIN SYSLABEL _ & LOOK AT LABEL IF BUF[4]="SY" AND BUF[5]="ST" AND BUF[6]="EM" THEN TRUE ELSE FALSE; END; OUTPUT LIST (BUF [WORD], BUF [WORD+1], BUF [WORD+2], TYPE, FOR N_4 STEP -1 UNTIL 0 DO DIGIT (BUF [WORD+4]), FOR N_2 STEP -1 UNTIL 0 DO DIGIT (ROTATE (BUF [WORD+3]) AND 255), FOR N_2 STEP -1 UNTIL 0 DO DIGIT (BUF [WORD+3] AND 255), FOR N_WORD+5 TO NEXTFILE-1 DO BUF [N], FOR N_WORD+11 TO NEXTFILE DO ( IF ROTATE (BUF [WORD+2]) THEN "T" ELSE " ")); & & & & & & BEGIN EXECURION & & RMPAR (INLU); IF INLU # 0 AND OUTLU = 0 THEN OUTLU _ INLU; IF INLU = 0 THEN INLU _ 1; IF OUTLU = 0 THEN OUTLU _ 6; EXEC4 (@100001, X1, X2, SECTORSPERTRACK); IF X1 THEN BEGIN WRITE (1, #("WAITING FOR TRACKS")); EXEC4 (1, X1, X2, SECTORSPERTRACK); END; EXEC5 (1, X1, X2); WRITE (1, #("** LIST DOS-M OR DOS-III DIRECTORY **")); WRITE (1,#("TYPE U FOR USER DISC, S FOR SYSTEM DISC, Q TO QUIT")); IF DOSLU = 0 THEN BEGIN FOR X1 _ KORE (@1653) STEP -1 UNTIL 7 DO IF KORE (KORE (@1652) + X1 - 1) # 0 THEN IF EQTYPE (X1) = @31 THEN DOSLU _ X1; IF DOSLU = 0 THEN GO TO GETDOSDISC; END; RUN: WRITE (1, #("USER/SYSTEM/QUIT: _")); READ (INLU, #(2R1), X1, X2); IF X1 = "Q" OR X1 = "/" AND X2 = "E" THEN GO TO STOP; GETDISC (0, 0); IF (BUF [1] # "LB" OR BUF [2] # "DO") AND BUF [1] # 0 THEN GO TO NOTDOSDISC; IF X1 = "U" THEN & SETUP FOR USER FILE DIRECTORY IF SYSLABEL THEN BEGIN TRACK _ ROTATE (BUF [65]) AND 255; SECTOR _ 2 * (BUF [65] AND 255) + 2; END ELSE BEGIN TRACK _ 0; SECTOR _ 2; END ELSE IF X1 = "S" OR X1 = "X" THEN IF SYSLABEL THEN & SETUP FOR SYSTEM FILE DIRECTORY IF (FIRSTSYSTRACK OR FIRSTSYSSECTOR) = 0 THEN BEGIN TRACK _ 0; SECTOR _ 6; END ELSE BEGIN TRACK _ FIRSTSYSTRACK; SECTOR _ 2 * FIRSTSYSSECTOR; END ELSE BEGIN WRITE (1, #("NO SYSTEM FILES ON DISC")); GO TO RUN; END ELSE GO TO RUN; IF (ROTATE (BUF [4]) AND 127) = "*" THEN BEGIN BUF [4] _ "* "; BUF [5] _ BUF [6] _ " "; END; TOF; WRITE (OUTLU, #(" DISC LABEL: ", 3A2, 3X, "LOGICAL UNIT:", I3, 3X, "SYSGEN CODE:", I5), FOR N_4 TO 6 DO BUF [N], DOSLU, BUF[3]); IF X1 = "U" THEN BEGIN IF SYSLABEL THEN BEGIN GETDISC (TRACK, 0); IF (ROTATE (BUF [4]) AND 127) = "*" THEN BEGIN BUF [4] _ "* "; BUF [5] _ BUF [6] _ " "; END; WRITE (OUTLU, #(" USER LABEL: ", 3A2), FOR N_4 TO 6 DO BUF [N]); END; WRITE (OUTLU, #(" BAD TRACKS:", I2), BUF [66]); END ELSE IF TRACK # 0 OR SECTOR # 6 THEN WRITE (OUTLU, #(" SYSTEM AREA AT TRACK: ", I3, 5X, "SECTOR: ", I3), TRACK, SECTOR\2); IF EQTYPE (OUTLU) = @12 THEN & TEST FOR DVR12 WRITE (OUTLU, #(/, " NAME TYPE SCTRS DISC ORG", 3X, "PROG LIMITS B.P. LIMITS ENTRY LIBR. PB")) ELSE WRITE (OUTLU, #(/, "NAME TYPE SCTRS DISC ORG", 3X, "PROG LIMITS B.P. LIMITS ENTRY LIBR. PB")); DO BEGIN GETDISC (TRACK, SECTOR); SECTOR _ SECTOR + 2; IF SECTOR = SECTORSPERTRACK THEN BEGIN SECTOR _ 0; TRACK _ TRACK + 1; END; WORD _ 1; BUF [129] _ -1; WHILE BUF [WORD] > 0 DO BEGIN TYPE _ BUF [WORD+2] AND 127; IF BUF [WORD+1] OR BUF [WORD+2] OR BUF [WORD+4] THEN GO TO BADDIRECTORY; IF TYPE < 6 THEN IF BUF [WORD+5] OR BUF [WORD+6] OR BUF [WORD+7] OR9m BUF [WORD+8] OR BUF [WORD+9] OR BUF [WORD+10] THEN GO TO BADDIRECTORY; NEXTFILE _ WORD + (IF TYPE >= 6 THEN 5 ELSE 11); CASE TYPE BEGIN TYPE _ "XS"; TYPE _ "02"; TYPE _ "UM"; TYPE _ "DR"; TYPE _ "US"; TYPE _ "LB"; TYPE _ "LB"; TYPE _ "RB"; TYPE _ "SS"; TYPE _ "BD"; TYPE _ "AD"; TYPE _ "AB"; END; IF TYPE < 128 THEN TYPE _ ROTATE (TYPE\10) + (TYPE MOD 10) + "00"; IF EQTYPE (OUTLU) = @12 THEN & TEST FOR DVR12 WRITE (OUTLU, #(X, A2, A2, A1, X, A2, 3X, 5I1, 2X, "T", 3I1, X, 3I1, 3(3X, @5, X, @5), 2X, R1), LIST) ELSE WRITE (OUTLU, #(A2, A2, A1, X, A2, 3X, 5I1, 2X, "T", 3I1, X, 3I1, 3(3X, @5, X, @5), 2X, R1), LIST); WORD _ NEXTFILE; END; IF BUF [WORD] < -1 THEN GO TO BADDIRECTORY; END UNTIL BUF [WORD] = 0; GO TO RUN; & & & NOTDOSDISC: WRITE (1, #("ERROR: NOT DOS DISC ON LU# ", I2), DOSLU); GETDOSDISC: WRITE (1, #("ENTER LOGICAL UNIT NUMBER FOR DOS DISC: _")); READ (INLU, *, DOSLU); GO TO RUN; BADDIRECTORY: WRITE (1, #("ERROR: BAD DOS DIRECTORY")); STOP: WRITE (1, #("END")); END$ ASMB,R,L * ALLOWS PROGRAMS TO READ OR WRITE ANY LOCATION IN CORE * ORIGINAL 3/27/75 BENNETT MEYER * NAM KORE,7 ENT KORE,STORE EXT $LIBR,$LIBX,.ENTR KK NOP KORE NOP JSB .ENTR DEF KK LDA KK,I GET REQUESTED LOCATION LDA 0,I GET CONTENTS OF LOCN JMP KORE,I RETURN SS BSS 2 STORE NOP JSB .ENTR DEF SS JSB $LIBR NOP LDA SS,I GET LOCATION LDB SS+1,I GET NEW CONTENTS STB 0,I STORE INTO CORE JSB $LIBX RETURN DEF STORE END  U a 22682-18023 1632 SC 0222 DVR37 DOS DRIVER FOR ASCII BUS (HP59310A)             H0102  HED ** D.O.S. DRIVER<37> ASCII BUS ** REV C NAM DVR37,4 * ****** 12/MAY/75 KUMAMOTO * * ENT I.37,C.37 * ****** PROGRAM DESCRIPTION ****** * * DRIVER 37 OPERATES UNDER THE CONTROL OF THE * I/O CONTROL MODULE OF THE D.O.S. EXCUTE. * THIS DRIVER IS RESPONSIBLE FOR CONTROLLING INPUT * & OUTPUT DATA TRANSMISSION WITH THE DEVICE * CONNECTED ON THE ASCII BUS LINE VIA HP 59310A * I/O CARD. * <37> IS THE EQUIPMENT TYPE CODE ASSIGNED TO THIS * TYPE OF DEVICES. I.37 IS THE ENTRY POINT FOR THE * INITIATION SECTION AND C.37 FOR THE COMPLETION * SECTION. * SKP * ********** INITIATION SECTION ********** * * I.37 NOP * * CONFIGURE I/O INSTRUCTIONS * JSB IOINS * * TEST FOR LEGAL REQUEST * * NOTE: ALL 1,2 & 3 ARE LEGAL * FOR THIS DRIVER. * * BRANCH TO CONTROL OR READ/WRITE SECTION * LDA EQT9,I AND .77 CPA .3 JMP CTLRQ * * GET PARAMETERS FOR A READ/WRITE REQUEST *** * * GET AND RESOLVE * LDA EQT10 LDA A,I RAL,CLE,SLA,ERA JMP *-2 STA EQT12,I * * GET * LDA EQT11,I SSA JMP *+3 ALS CMA,INA STA EQT14,I SKP * *** NO ADDRESSING SECTION *** * * NOTE: AUTO-ADDRESSING IS NOT ADOPTED FOR * THIS DRIVER. * SPC 1 * * DETERMINE IF I/O CARD IS * ADDRESSED TO TALK (WRITE REQUEST) * ADDRESSED TO LISTEN (READ REQUEST) * * GET CURRENT I/O CARD & BUS STATUS * JSB STAWD * * DETERMINE IF READ OR WRITE REQUEST * LDB A JSB FUCOD SLA,RSS JMP ATCHK * * IF READ, TEST IF ADDRESSED TO LISTEN, * ATN = HIGH, NRFD = HIGH & NDAC = LOW * LDA B AND .300 CPA .100 JMP SUIRW JMP REJRQ * * IF WRITE, TEST IF * 1. ADDRESSED TO TALK AND ATN = HIGH * 7Z 2. ACTIVE AND ATN = LOW * ATCHK LDA B AND .240 CPA .40 JMP SUIRW LDA B AND .220 CPA .220 JMP SUIRW * * REJECT REQUEST, CARD AND/OR BUS NOT READY * REJRQ CLA LDA .3 JMP I.37,I SKP * *** SET-UP READ OR WRITE USING INTERRUPT TRANSFER *** * * INITIALIZE BUFFER POINTER * SUIRW LDA EQT14,I SZA,RSS JMP BUFL0 STA EQT13,I * * SET-UP FOR ASCII R/W * JSB FMTFL CLA SSB,RSS LDA .400 STA TEMP * * DETERMINE IF READ OR WRITE REQUEST * JSB FUCOD SLA JMP SURED * * SET-UP FOR WRITE * LDA CTLWR IOR TEMP JSB CTLWD JMP RWRIN * * SET-UP FOR READ * SURED LDA CTLRD IOR TEMP JSB CTLWD * * TEST IF RFD FF NEEDS TO BE SET * LIA2 LIA SC JMP RWRIN * * BUFFER LENGTH=0 EXIT PROCESSING * BUFL0 LDA .4 JMP I.37,I TEMP OCT 0 SKP * *** PROCESS A CONTROL REQUEST *** * * DETERMINE CONTROL REQUEST SUB-FUNCTION * CTLRQ JSB FMTFL RBL LDA B AND .177 LDB A AND .60 CLE SZA,RSS JMP CTLG0 LDA B AND .40 SZA JMP CTLG4 LDA .2 JMP I.37,I * * CTL REQ. GRP4 PROCESSING FOR ATN,EOI,LISTEN & TALK * CTLG4 LDA B ERA,ERA ERA,ERA RAR,ERA ALF,ALF JMP EXCTL * * OUTPUT CONTROL WORD AND EXIT * CTLG0 LDA B AND .7 * EXCTL JSB CTLWD LDA .4 JMP I.37,I SKP * *** INITIATION SECTION EXIT ROUTINE *** * * TURN ON INTERRUPT AND "REQ. INITIATED" RETURN * RWRIN LDA EXITA STA C.37 CLCC2 CLC SC,C JSB FUCOD CPA .1 JMP CONTI JMP OBUF JMP I.A.1 EXIT CLA JMP I.37,I I.A.1 CLB STB EQT14,I LDA .4 JMP I.37,I EXITA DEF EXIT-1 SKP * *** SUBROUTINE TLO CONFIGURE I/O INSTRUCTIONS *** * IOINS NOP IOR STFI STA STF1 STA STF2 STA STF3 ADA .100 STA SFC1 XOR .700 STA LIA1 STA LIA2 STA LIA3 ADA .100 STA OTA1 ADA .100 STA STC1 XOR .1200 STA LIAC1 ADA .100 STA OTAC1 STA OTAC2 STA OTAC3 XOR .5300 STA LIB1 STA LIB2 IOR .700 NOP IOR .1200 STA CLC1 STA CLCC4 STA CLCC2 JMP IOINS,I * *** SUBROUTINE TO OUTPUT A CONTROL WORD *** * CTLWD NOP STF1 STF SC OTA1 OTA SC JMP CTLWD,I * *** SUBROUTINE TO INPUT A STATUS WORD *** * STAWD NOP STF2 STF SC LIA1 LIA SC JMP STAWD,I * *** SUBROUTINE TO GET REQUEST CODE *** * FUCOD NOP LDA EQT9,I AND .3 JMP FUCOD,I SKP * *** SUBROUTINE TO GET FORMAT *** * FMTFL NOP LDB EQT9,I BLF,BLF RBL JMP FMTFL,I SKP * ********** CONTINUATION SECTION ********** * C.37 NOP * * CONFIGURE I/O INSTRUCTIONS * JSB IOINS LIB2 LIB SC * * BRANCH TO APPROPRIATED CONT. ROUTINE * IENTR CLC SC CLC1 EQU IENTR JSB FUCOD CPA .1 JMP RED *** *** *** WRITE ROUTINE *** *** *** * *** OUTPUT CONTENTS OF BUFFER *** * OBUF LDA EQT13,I ADA .2 STA EQT13,I SSA,RSS JMP OOB JSB STWDA OTAC1 OTA SC,C ISZ EQT12,I JMP CONTI * * DETERMINE IF AN ODD# OF BYTES IS TO BE OUTPUT * OOB SLA,RSS JMP LASTW * * OUTPUT ODD BYTE * LDA OUPAK JSB CTLWD JSB STWDA ALF,ALF OTAC2 OTA SC,C CLA STA EQT13,I JMP CONTI * * SET-UP OUTPUT SECTION TO OUTPUT LAST BYTE * LASTW SZA JMP OBEP JSB STWDA OTAC3 OTA SC,C JMP CONTI SKP * * OUTPUT OF BUFFER COMPLETE BRANCH * OBEP9# ISZ EQT5,I LDA EQT11,I STA EQT14,I JSB FMTFL SSB JMP CMPLT LDB EQT5,I CPB .1 JMP SCRLF CLA STA EQT5,I JMP CMPLT * * SET-UP OUTPUT OF CR/LF FOR ASCII WRITE * SCRLF LDA PACKC JSB CTLWD LDA CRLFA STA EQT12,I LDA N2 STA EQT13,I JMP OBUF CRLFA DEF CRLF CRLF OCT 6412 SKP *** *** *** READ ROUTINE *** *** *** * *** INPUT BYTE, TEST FOR EOR & BRANCH TO PROC'G SEC *** * RED STF SC STF3 EQU RED LIB1 LIB SC BLF,SLB JMP EORP LIAC1 LIA SC,C STA TEMP1 * *** PACK BYTE INTO BUFFER UNTIL FULL *** * * DETERMINE IF UPPER OR LOWER BYTE INPUT * PACK JSB ULFLG SLA JMP LBYTE * * PROCESSING FOR UPPER BYTE * UBYTE LDA TEMP1 ALF,ALF STA EQT6,I ISZ EQT13,I JMP CONTI JMP BUFFP * * PROCESSING FOR LOWER BYTE * LBYTE LDA TEMP1 IOR EQT6,I JSB STBYT ISZ EQT12,I ISZ EQT13,I JMP CONTI JMP CMPLT SKP * *** BUFFER FULL PROCESSIONG *** * * PAD LAST WORD IF ODD# BYTE REMAINING * BUFFP LDA EQT6,I JSB FMTFL SSB,RSS PADA IOR .40 JSB STBYT JMP CMPLT * *** END OF RECORD PROCESSING *** * * DETERMINE RECORD FORMAT * EORP LIA SC LIA3 EQU EORP STA TEMP1 JSB FMTFL SSB,RSS JMP AEOR * * BINARY EOR PROCESSING * JSB ULFLG STA TEMP3 ADA N1 STA EQT14,I LDB N1 STB EQT13,I LDA TEMP3 SLA JMP LBYTE JMP UBYTE * * ASCII EOR PROCESSING * * DETERMINE IF CR PUT INTO BUFFER * AEOR JSB ULFLG LDB A INB STB EQT14,I SLA JMP CMPLT * * GET CR FROM BUFFER & MASK OFF * CCB ADB EQT12,I STB EQT12,I LDA B,I AND LMASK JMP PADA SKP * * CONTINUE INTERRUPT PROCESSING * CONTI SFC SC SFC1 EQU CONTI JMP IENTR STC1 STC SC ISZ C.37 JMP C.37,I SPC 5 *** *** *** COMPLETION RETURN PROCESSING *** *** *** CMPLT LDA EQT11,I SSA JMP TRLOG LDA EQT14,I ARS CMA,INA STA EQT14,I TRLOG LDB EQT14,I LDA .7 JSB CTLWD CLA STA EQT5,I STA EQT6,I CLCC4 CLC SC,C JMP C.37,I SKP * *** SUBROUTINE TO DETERMINE IF UPPER OR LOWER BYTE *** * ULFLG NOP LDA EQT14,I LDB EQT13,I CMB,INB ADA B JMP ULFLG,I * *** SUBROUTINE TO GET OUTPUT WORD IN BUFFER *** * STWDA NOP LDB EQT12,I LDA B,I JMP STWDA,I * *** SUBROUTINE TO STORE READ WORD INTO BUFFER *** * STBYT NOP LDB EQT12,I STA B,I JMP STBYT,I SPC 3 * * CONSTANTS AND VARIABLE STORAGE AREA * A EQU 0 B EQU 1 SPC 1 .40 OCT 40 .60 OCT 60 .100 OCT 100 .220 OCT 220 .240 OCT 240 .300 OCT 300 .400 OCT 400 .700 OCT 700 .1200 OCT 1200 .5300 OCT 5300 SPC 1 CTLWR OCT 24207 CTLRD OCT 50200 OUPAK OCT 20200 PACKC OCT 24607 SPC 2 TEMP1 OCT 0 TEMP3 OCT 0 SPC 1 STFI STF 0 SKP * *** BASE PAGE COMMUNICATION AREA *** * SC EQU 0 .. EQU 53B N2 EQU ..-2 N1 EQU ..-1 .1 EQU ..+1 .2 EQU ..+2 .3 EQU ..+3 .4 EQU ..+4 .7 EQU ..+7 .77 EQU ..+15 .177 EQU ..+16 LMASK EQU ..+18 . EQU 100B SPC 1 * * I/O DRIVER MODULE COMMUNICATION * EQT1 EQU .+67 EQT2 EQU .+68 EQT3 EQU .+69 EQT4 EQU .+70 EQT5 EQU .+71 EQT6 EQU .+72 EQT7 EQU .+73 EQT8 EQU .+74 EQT9 EQU .+75 EQT10 EQU .+76 EQT11 EQU .+77 EQT12 EQU .+78 EQT13 EQU .+79 EQT14 EQU .+80 EQT15 EQU .+81 EQT16 EQU .+82 EQT17 EQU .+83 END END$ $"$FTN4 PROGRAM T3 DIMENSION IBF1(5),IBF2(2),IBF3(2),IBF4(2),IBF5(7) DATA IBF2(1),IBF2(2),IBF3(1),IBF3(2),IBF4(1),IBF4(2)/ 12H?6,1HP,2HT1,1HE,2H?0,1HV/ IRC1=1 IRC2=3 IRC3=2 ICO1=406B ICO2=107B ICO3=307B ICO4=4607B ICO5=4407B ICO6=4407B ICO7=7B ICO8=207B IBL1=-9 IBL2=-3 IBL3=-3 IBL4=-14 WRITE(6,100) 100 FORMAT(/"ENTER PROGRAM DATA, XXXXXXT3E =_") CALL EXEC(IRC1,ICO1,IBF1,IBL1) CALL EXEC(IRC2,ICO2) CALL EXEC(IRC2,ICO3) I=0 DO 1 I=1,10 CALL EXEC(IRC2,ICO4) CALL EXEC(IRC3,ICO2,IBF2,IBL2) CALL EXEC(IRC2,ICO5) CALL EXEC(IRC3,ICO2,IBF1,IBL1) CALL EXEC(IRC3,ICO2,IBF3,IBL3) CALL EXEC(IRC2,ICO4) CALL EXEC(IRC3,ICO2,IBF4,IBL2) CALL EXEC(IRC2,ICO6) CALL EXEC(IRC1,ICO7,IBF5,IBL4) WRITE(6,200)IBF5 200 FORMAT(7A2) 1 CONTINUE CALL EXEC(IRC2,ICO8) WRITE(6,300) 300 FORMAT(/"END OF TEST PROGRAM") END END$ ا W d 22682-18024 1632 SC 0122 DOS-III FILE SAVER              H0101 :|ASMB,B,C,L,R DOS-III FILE SAVER HED *** DOS-III FILE SAVER *** NAM SAVER,3 * * ** PROGRAMMER: MATT SMITH MOIRA SECONDARY SCHOOL ** *** DATE: JUNE 14, 1976 BELLEVILLE, ONTARIO *** ** CANADA ** * * ** DAMAGED FILES (P2=1): ** *** *** ** THIS ROUTINE CHANGES ONLY THE STARTING TRACK AND ** * SECTOR POSITIONS IN THE DISC DIRECTORY. THIS ROUTINE IS * ** ONLY USED WHEN FILE BOUNDARIES HAVE BEEN CHANGED BY A ** *** DISC PARITY ERROR. IF TRACK AND SECTOR COUNTS CORRESPOND *** ** IN DIRECTORY, NOTHING IS CHANGED IN THE DIRECTORY. ** * * ** ** *** PURGED FILES (P2=2): *** ** ** * THIS ROUTINE CHANGES ONLY THE FIRST WORD IN FILE- * ** NAME IN DISC DIRECTORY ENTRY. WHEN THE PURGED FILENAME ** *** HAS BEEN FOUND, IF THE TRACK AND SECTOR COUNTS DO NOT *** ** CORRESPOND, THE DIRECTORY ENTRY IS NOT CHANGED. ** * * ** ** *** THIS PROGRAM IS STARTED BY A ":PROG" DIRECTIVE. *** ** ** * :PR,SAVER,P1,P2,P3,P4 * ** ** *** WHERE P1 = SECURITY CODE *** **  ** * P2 = STATUS OF FILE * ** 1 : DAMAGED FILE ** *** 2 : PURGED FILE *** ** ** * P3 = CORRECT TRACK NUMBER * ** ** *** P4 = CORRECT SECTOR NUMBER *** ** ** * * ENT SAVER EXT EXEC SUP * * ** PROGRAM SECURITY CODE: ** *** *** **** THE SECURITY CODE IS CHANGED EACH TIME THE PROGRAM **** *** IS SUCCESSFULLY RUN FOR THE PROTECTION OF THE DISC AND *** ** FILES. ** * * SCODE OCT 77777 CURRENT SECURITY CODE [32767] SKP * *** VARIABLES * RCODE BSS 1 EXEC REQUEST CODE CONWD BSS 1 EXEC CONTROL WORD DTRAK BSS 1 CURRENT TRACK NUMBER DSECT BSS 1 CURRENT SECTOR NUMBER RETRN BSS 1 RETURN ADDRESS DPNTR BSS 1 SECTOR BUFFER POINTER TRACK BSS 1 SUPPLIED TRACK NUMBER SECTR BSS 1 SUPPLIED SECTOR NUMBER BUFFL BSS 1 BUFFER LENGTH NUMBR BSS 1 TEMPORARY NMBR BSS 1 NUMBER HOLDERS PNTR BSS 1 BYTE POINTER TYPE BSS 1 TYPE OF FILE TEMP1 BSS 1 TEMPORARY TEMP2 BSS 1 HOLDING WORDS CCNT BSS 1 CHARACTER COUNT * *** BUFFERS * IBFFR DEF *+1 I/O BSS 3 BUFFER DBUFR DEF *+1 DISC BUFFER FOR BSS 128 ONE SECTOR OF 128 WORDS DBUFE DEF * END OF DISC BUFFER DEF *+1 FNAME ASC 3, FILENAME STORAGE HED BASE PAGE LINKS * *** BASE PAGE LINKS * BATCH EQU 111B BATCH INPUT DEVICE UNIT NUMBER SYSTY EQU 112B SYSTEM INPUT DEVICE UNIT NUMBER EXPG4 EQU 144B TRACK/SECTOR FOR THIS PROGRAM DISCL EQU 200B USER LABEL TRACK/SECTOR HED CONSTANTS * *** BASE PAGE CONSTANTS * .1 EQU 54B 1 .2 EQU 55B 2 .3 EQU 56B 3 .5 EQU 60B 5 .6 EQU 61B 6 .7 EQU 62B 7 .10 EQU 65B 10 * M1 EQU 52B -1 M2 EQU 51B -2 M6 EQU 45B -6 * *** NORMAL CONSTANTS * .11 OCT 13 11 .12 OCT 14 12 .18 OCT 22 18 .128 OCT 200 128 * B71 OCT 71 71B * M60B OCT 177720 -60B * SPACE OCT 40 < > * *** MASKS * MSK1 EQU 70B 17B MSK2 EQU 73B 177B MSK3 EQU 74B 377B MSK4 EQU 75B 177400B HED ASCII MESSAGES * *** ASCII MESSAGES * ASAD1 DEF *+1 ASC 7,ENTER FILENAME ASAD2 DEF *+1 ASC 6,NO SUCH FILE ASAD3 DEF *+1 ASC 12,ENTER NEW SECURITY CODE ASAD4 DEF *+1 ASC 11,ILLEGAL SECURITY CODE! ASAD5 DEF *+1 ASC 10,NO CHANGES OCCURRED! ASAD6 DEF *+1 ASC 7,DUPLICATE FILE HED DISC SUBROUTINES * *** SEARCH DISC DIRECTORY FOR REQUESTED FILE * DISCS NOP LDA DISCL GET USER LABEL TRACK/SECTOR JSB T/S CONVERT TO TRACK AND SECTOR STA DTRAK SAVE TRACK AND STB DSECT SECTOR NUMBER DISC1 ISZ DSECT BUMP SECTOR COUNT LDA M1 GET A SECTOR JSB EXECS FROM DISC DIRECTORY LDB DBUFR SET START OF DISC STB DPNTR BUFFER TO POINTER DISC2 LDA 1,I GET FIRST WORD DIRECTORY ENTRY SZA END OF DIRECTORY? JMP DISC3 NO LDA .6 YES, TELL USER LDB ASAD2 THAT FILE IS NOT JSB kEXECW IN DIRECTORY JMP SCHNG CHANGE SECURITY CODE DISC3 CPA M1 END OF CURRENT SECTOR? JMP DISC1 YES, GET NEXT SECTOR CPA FNAME NO, WORDS IN FILENAME'S SAME? RSS JMP DISC4 NO, GET NEXT ENTRY INB YES, BUMP DIRECTORY BUFFER LDA 1,I GET SECOND WORD DIRECTORY ENTRY CPA FNAME+1 ARE WORDS IN FILENAME'S SAME? RSS JMP DISC4 NO, GET NEXT ENTRY INB YES, BUMP DIRECTORY BUFFER LDA 1,I GET THIRD WORD DIRECTORY ENTRY AND MSK4 ISOLATE LEFT BYTE CHARACTER IOR SPACE COMPLETE WORD WITH CPA FNAME+2 ARE FILENAME'S SAME? RSS JMP DISC4 NO, GET NEXT ENTRY INB YES, BUMP DIRECTORY BUFFER LDA 1,I GET TRACK/SECTOR LOCATION JSB T/S CONVERT TO TRACK AND SECTOR JMP DISCS,I RETURN DISC4 LDA DPNTR COMPUTE ADDRESS OF ADA .2 ENTRY TYPE AND LDA 0,I GET FROM DIRECTORY AND MSK1 ISOLATE LAST FOUR BITS LDB .5 INITIALIZE (B) TO FIVE ADA M6 IS ENTRY TYPE SSA LESS THAN SIX? ADB .6 YES, ADD SIX TO (B) ADB DPNTR NO, COMPUTE ADDRESS OF STB DPNTR NEXT DIRECTORY ENTRY CPB DBUFE END OF CURRENT SECTOR? JMP DISC1 YES, GET NEXT SECTOR JMP DISC2 NO, CHECK NEXT DIRECTORY ENTRY SKP * *** DISC DATA TRANSFER ROUTINE * EXECS NOP STA RCODE SAVE REQUEST CODE JSB EXEC TRANSFER REQUIRED DATA DEF *+7 TO OR FROM DISC DEF RCODE REQUEST CODE DEF .3 CONTROL WORD DEF DBUFR,I DISC BUFFER ADDRESS DEF .128 DISC BUFFER LENGTH DEF DTRAK CURRENT TRACK NUMBER DEF DSECT CURRENT SECTOR NUMBER JMP EXECS,I RETURN * *** COMPUTE TRACK AND SECTOR ADDRESS * T/S NOP LDB 0 SAVE TRACK/SECTOR IN (B)06 AND MSK3 ISOLATE SECTOR NUMBER STA TEMP1 SAVE SECTOR NUMBER XOR 1 DELETE SECTOR NUMBER ALF,ALF POSITION TRACK IN RIGHT BYTE LDB TEMP1 RETURN WITH TRACK NUMBER IN JMP T/S,I (A) AND SECTOR NUMBER IN (B) HED PROGRAM INPUT/OUTPUT SUBROUTINES * *** DATA OUTPUT ON CRT/TTY * EXECW NOP STA BUFFL SAVE BUFFER LENGTH STB BUFFR SAVE BUFFER ADDRESS LDA EXECW SAVE RETURN STA RETRN ADDRESS LDA .1 CONTROL WORD STA CONWD FOR CRT/TTY LDA .2 WRITE REQUEST STA RCODE CODE JMP .EXEC OUTPUT MESSAGE * *** DATA INPUT FROM BATCH INPUT DEVICE * EXECR NOP STA BUFFR SAVE BUFFER ADDRESS LDA EXECR SAVE RETURN STA RETRN ADDRESS LDA BATCH USE BATCH UNIT NUMBER STA CONWD FOR CONTROL WORD LDA .3 SAVE LENGTH OF STA BUFFL INPUT BUFFER LDA .1 READ REQUEST STA RCODE CODE * .EXEC JSB EXEC I/O DATA DEF *+5 TRANSFER ROUTINE DEF RCODE REQUEST CODE DEF CONWD CONTROL WORD BUFFR NOP BUFFER ADDRESS DEF BUFFL BUFFER LENGTH JMP RETRN,I RETURN HED PROGRAM CONTROL SAVER LDA 1,I GET SECURITY CODE CPA SCODE SAME AS PRESENT CODE? JMP START YES LDA .11 NO, STATE LDB ASAD4 THAT SECURITY CODE JSB EXECW IS ILLEGAL JMP EXIT STOP PROGRAM EXECUTION START INB BUMP PARAMETER ADDRESS LDA 1,I GET FILE STATUS STA TYPE AND SAVE INB BUMP PARAMETER ADDRESS LDA 1,I GET CORRECT TRACK NUMBER STA TRACK OF FILE AND SAVE INB BUMP PARAMETER ADDRESS LDA 1,I GET CORRECT SECTOR NUMBER STA SECTR OF FILE AND SAVE * FILE1 LDA BATCH BATCH INPUT CPA SYSTtY SYSTEM CRT/TTY? RSS JMP FILE2 NO LDA .7 YES, ASK FOR LDB ASAD1 FILENAME JSB EXECW ON CRT/TTY FILE2 LDA FNAME-1 GET FILENAME FROM JSB EXECR BATCH INPUT DEVICE SZB,RSS NULL INPUT? JMP FILE1 YES, ASK FOR FILENAME AGAIN * LDA TYPE NO, GET FILE STATUS CPA .2 PURGED FILE? JMP PURGE YES HED DAMAGED FILE SAVE ROUTINE [P2=1] JSB DISCS SEARCH DISC DIRECTORY FOR FILE CPA TRACK ARE TRACK LOCATIONS SAME? RSS JMP CHNGE NO, CHANGE LOCATION CPB SECTR YES, ARE SECTOR LOCATIONS SAME? RSS JMP CHNGE NO, CHANGE LOCATION LDA .10 YES, TELL USER LDB ASAD5 THAT FILE JSB EXECW IS ALL RIGHT JMP SCHNG CHANGE SECURITY CODE CHNGE LDA TRACK GET CORRECT TRACK NUMBER ALF,ALF POSITION VALUE IN LEFT BYTE IOR SECTR AND COMPLETE WITH SECTOR LDB DPNTR COMPUTE ADDRESS IN ADB .3 DIRECTORY ENTRY FOR TRACK/ STA 1,I SECTOR AND PUT IN VALUE LDA M2 CHANGE SECTOR OF JSB EXECS DIRECTORY ON DISC JMP SCHNG CHANGE SECURITY CODE HED PURGED FILE SAVE ROUTINE [P2=2] PURGE JSB EXEC SEARCH DISC DIRECTORY DEF *+4 FOR AN EXISTING FILE DEF .18 REQUEST CODE DEF FNAME FILENAME DEF NUMBR NUMBER OF SECTORS IN FILE LDA NUMBR EXISTING FILE ON DISC SZA,RSS WITH REQUESTED FILENAME? JMP PRGE1 NO LDA .7 YES, TELL USER THAT LDB ASAD6 THERE IS A FILE WITH JSB EXECW SAME NAME ON DISC JMP SCHNG CHANGE SECURITY CODE PRGE1 LDA FNAME SAVE FIRST WORD OF STA TEMP2 PURGED FILENAME AND MSK4 ISOLATE LEFT SIDE OF WORD STA FNAME SAVE CHANGED WORD JSB DISCS SEARCH DISC DIRERCTORY FOR FILE CPA TRACK ARE TRACK LOCATIONS SAME? RSS JMP DISC3 NO, SEARCH REST OF DIRECTORY CPB SECTR YES, ARE SECTOR LOCATIONS SAME? RSS JMP DISC3 NO, SEARCH REST OF DIRECTORY LDA TEMP2 YES, RESTORE FIRST WORD OF STA DPNTR,I FILENAME IN DIRECTORY ENTRY LDA M2 PUT CHANGED DIRECTORY JSB EXECS SECTOR BACK ON DISC HED SECURITY CODE CHANGE ROUTINE SCHNG LDA BATCH BATCH INPUT CPA SYSTY SYSTEM CRT/TTY? RSS JMP SCNG1 NO LDA .12 YES, ASK FOR LDB ASAD3 NEW SECURITY CODE JSB EXECW ON CRT/TTY SCNG1 LDA IBFFR GET NEW SECURITY CODE JSB EXECR FROM BATCH INPUT DEVICE SZB,RSS NULL INPUT? JMP SCNG1 YES, ASK FOR CODE AGAIN BLS NO, DOUBLE WORD COUNT AND STB TEMP2 SAVE AS CHARACTER COUNT LDA IBFFR TAKE I/O BUFFER ADDRESS, ALS DOUBLE AND USE STA PNTR AS BYTE POINTER CLA SET TO ZERO STA NMBR -TEMPORARY NUMBER HOLDER STA CCNT -CHARACTER COUNT * SCNG2 LDA CCNT END OF CPA TEMP2 CHARACTER STRING? JMP SCNG3 YES ISZ CCNT NO, BUMP CHARACTER COUNT LDB PNTR GET BYTE POINTER ISZ PNTR BUMP BYTE POINTER CLE,ERB CORRECT WORD ADDRESS AND SET L/R LDA 1,I CHARACTER FLAG AND GET WORD SEZ,RSS LEFT BYTE CHARACTER? ALF,ALF YES, POSITION WORD TO RIGHT BYTE AND MSK2 ISOLATE RIGHT BYTE CHARACTER CPA SPACE IS CHARACTER A SPACE? JMP SCNG3 YES LDB M60B NO, IS CHARACTER ADB 0 CODE LESS SSB THAN 60B? JMP SCHNG YES, ASK AGAIN FOR SECURITY CODE LDB 0 NO, IS CMB,INB CHARACTER ADB B71 CODE GREATER SSB 0.*THAN 71B? JMP SCHNG YES, ASK AGAIN FOR SECURITY CODE AND MSK1 NO, ISOLATE LAST FOUR BITS ADA NMBR ADD IN PREVIOUS STA NUMBR TOTAL AND SAVE MPY .10 SCALE NEW TOTAL BY STA NMBR TEN AND SAVE JMP SCNG2 GET NEXT DIGIT * SCNG3 LDA EXPG4 GET TRACK/SECTOR OF THIS PROGRAM JSB T/S CONVERT TO TRACK AND SECTOR STA DTRAK SAVE TRACK NUMBER STB DSECT SAVE SECTOR NUMBER LDA M1 GET FIRST SECTOR JSB EXECS OF DISC FILE LDA NUMBR PUT NEW SECURITY STA DBUFR,I CODE IN DISC FILE LDA M2 PUT CHANGED FILE JSB EXECS BACK ON DISC HED STOP PROGRAM EXECUTION EXIT JSB EXEC STOP DEF *+2 PROGRAM DEF .6 EXECUTION END SAVER |0 X e 22682-18025 1632 SC 0122 TTCPY - TAPE-TO-TAPE COPY SINGLE DRIVE MAG TAPE             H0101 aQFTN4,L PROGRAM TTCPY C C PROGRAM TTCPY C C A STAND ALONE TAPE-TO-TAPE COPY PROGRAM. THIS PROGRAM C WILL COPY TAPES CONTAINING MIXED FORMATTED AND UNFORMATTED C (BINARY) DATA CREATED BY A HP FORTRAN PROGRAM. HP FORTRAN C IS SOMEWHAT DIFFERENT IN THAT ALL WRITES TRANSFER A MAXIMUM C OF 60 WORDS TO THE TAPE AT A TIME. THUS A LOGICAL RECORD C MAY SPAN MORE THAN ONE PHYSICAL RECORD. C C PROGRAM LOGIC: C C THROUGH CONVERSATION WITH THE OPERATOR, THE PROGRAM DET- C ERMINES WHICH FILES ARE TO COPIED AND WHICH (HOW MANY) ARE TO C BE SKIPPED. THE DATA FROM TAPE IS THEN READ IN AND PACKED INTO C TWO RECORDS (EACH CONTAINING UP TO 60 WORDS) IN AN ARRAY CALLED C TMPBUF. THE FORMAT OF THE ARRAY IS: C C ------------------------------------- C I I I I I I C I N1 I DATA... I N2 I DATA... I E I C I I I I I I C ------------------------------------- C C N1 = TMPBUF(1) AND IS THE NUMBER OF DATA ITEMS IN THE FIRST C RECORD C N2 = TMPBUF(62) AND IS THE NUMBER OF DATA ITEMS IN THE C SECOND RECORD C E = TMPBUF(123) AND IS ALWAYS = 1 UNLESS THIS DATA UNIT C CONTAINS THE LAST RECORD OF A FILE C C IF THE DATA RECORDS ARE LESS THAN 60 WORDS THE UNUSED SPACE IS C CLEARED TO ZEROES. C C AS EACH DATA UNIT IS COMPLETED (I.E., AS TMPBUF IS FILLED C WITH AS MANY AS 120 DATA WORDS), IT IS WRITTEN TO DISC, ONE C SECTOR AT A TIME. THE INTERNAL LOGIC MAINTAINS THE PROPER C TRACK AND SECTOR POINTERS AT ALL TIMES. C C ALL NEW FILES ARE STARTED ON A FRESH TRACK. THE TRACK C POINTERS (NUMBERS) ARE MAINTAINED IN A TABLE CALLED TABLE. C THE PRESENT LIMIT IS 100 FILES. THIS MAY BE INCREASED IF C NECESSARY (REQUIRES RECOMPILATION). C C WHEN THE DESIRED NUMBER OF SEQUENTIAL FILES HAVE BEEN C WRITTEN TO DISC, THE PROGRAM ASKS IF THERE IS MORE COPYING TO C BE DONE, THUSLY: C C "ENTER 0 FOR ALL DONE OR 1 FOR MORE" C C IF A "1" IS ENTERED, THE PROGRAM THEN ASKS FOR THE INFORMATION C TO DETERMINE WHETHER THE NEXT GROUP OF FILES TO BE COPIED IS C ON THIS TAPE OR A NEW TAPE AND, IF IT IS THE SAME TAPE, WHETHER C THE NEXT SET TO BE COPIED IS BEFORE THE SET JUST COPIED (IN C WHICH CASE THE TAPE IS REWOUND) OR AFTER IT (TAPE IS NOT C REWOUND). THUS, THE PROGRAM CAN COPY FILES TO A CLEAN TAPE IN C ANY ORDER AND CAN MERGE FILES FROM SEVERAL TAPES. C C IF THE INPUT OPERATION IS FINISHED (I.E., A "0" IS ENTERED C WHEN ASKED IF YOU ARE DONE), THE PROGRAM WILL REQUEST THE FRESH C TAPE TO BE MOUNTED. WHEN THIS IS DONE, THE FRESH TAPE MAY BE C REWOUND OR THE TAPE CAN BE SKIPPED IN AS MANY FILES AS DESIRED. C THIS FACILITY IS NECESSARY FOR MULTIPLE PASS COPIES, BUT IT C ALSO MEANS THAT THE SAME TAPE MAY BE LEFT ON THE DRIVE AND FILES C COPIED TO THE SOURCE TAPE IN SEVERAL PLACES, IF THIS IS DESIRED. C C OUTPUT: C C THE PROGRAM PROVIDES A LISTING OF THE NUMBER OF RECORDS C COPIED (EACH RECORD NO MORE THAN 60 WORDS LONG; I.E., C PHYSICAL RECORDS), AND THE TOTAL NUMBER OF DATA WORDS, ON C A PER-FILE BASIS. C C MACHINE: HP2100A,7900A,7970B C C SYSTEM: DOS-M, DOS-III C C FOR: DEPARTMENT OF BEHAVIORAL SCIENCE C SUNYAB SCHOOL OF DENTISTRY C C BY: G. T. PHIPPS AND L. F. SHANNON C C DIMENSION IOBUF(60) INTEGER TMPBUF(123),TABLE(100),TRACK,TOTCPY DIMENSION NBUF(60) 777 TOTCPY = 0 WRITE(6,2999) 2999 FORMAT("1",10X,"FORTRAN TAPE COPY PROGRAM STATISTICS",//) CALL EXEC(17,IFTRK,ILTRK,ISIZE) NTRAX = ILTRK - IFTRK + 1 TRACK = IFTRK INDTRK = 1 IFILE = 0 190 WRITE(1,90) 90 FORMAT(//,2X,"MOUNT TAPE TO KBE COPIED AND ENTER :GO",//) PAUSE 88 REWIND 8 89 WRITE(1,91) 91 FORMAT(//,2X,"ENTER NUMBER OF FILES TO BE SKIPPED",//) READ(1,*)NFIL IF (NFIL .EQ. 0) GO TO 16 CALL PTAPE(8,NFIL,0) 16 WRITE(1,92) 92 FORMAT(//,2X,"ENTER NUMBER OF FILES TO BE COPIED",//) READ(1,*) NUM TOTCPY = TOTCPY + NUM DO 6 I = 1,NUM IFILE = IFILE + 1 NREC = 0 NWRDS = 0 TABLE(INDTRK) = TRACK TMPBUF(123) = 1 ISECT = 0 66 CALL EXEC(1,72,NBUF,60) CALL EXEC(13,8,IST,ILOG) IF(IEOF(8) .LE. 0) GO TO 20 NREC = NREC + 1 NWRDS = NWRDS + ILOG TMPBUF(1) = ILOG DO 7 J = 2,ILOG+1 7 TMPBUF(J) = NBUF(J-1) IF (ILOG. EQ. 60) GO TO 17 DO 18 J = ILOG+2,61 18 TMPBUF(J) = 0 17 CALL EXEC(1,72,NBUF,60) CALL EXEC(13,8,IST,ILOG) IF (IEOF(8) .LE. 0) GO TO 25 NREC = NREC + 1 NWRDS = NWRDS + ILOG TMPBUF(62) = ILOG DO 8 J = 63,ILOG+62 8 TMPBUF(J) = NBUF(J-62) IF (ILOG. EQ. 60) GO TO 30 DO 19 J = ILOG+63,122 19 TMPBUF(J) = 0 30 CALL EXEC(2,102B,TMPBUF,123,TRACK,ISECT) ISECT = ISECT + 1 IF (ISECT .LE. 47) GO TO 66 ISECT = 0 TRACK = TRACK + 1 IF (TRACK .GT. ILTRK) GO TO 1000 GO TO 66 25 DO 26 J = 62,122 26 TMPBUF(J) = 0 ISECT = ISECT + 1 20 TMPBUF(123) = 0 ISECT = ISECT - 1 IF (ISECT .GE. 0) GO TO 69 ISECT = 47 TRACK = TRACK - 1 69 CALL EXEC(2,102B,TMPBUF,123,TRACK,ISECT) WRITE(6,3000)IFILE,NREC,NWRDS 3000 FORMAT(//,5X,"FILE NUMBER ",8X,I6,/,5X,"NUMBER OF RECORDS = ", 1I6,/,5X,"NUMBER OF WORDS = ",I6) INDTRK = INDTRK + 1 TRACK = TRACK + 1 IF (TRACK .GT. ILTRK) GO TO 1000 IF (INDTRK .GT. 100) GO TO 1001 6 CONTINUE WRITE(1,93) 93 FORMAT(//,2X,"ENTER 0 FOR ALL DONE OR 1 FOR MORE ",//) READ(1,*) MORE IF (MO9yRE .EQ. 0) GO TO 77 WRITE(1,94) 94 FORMAT(//,2X,"SAME TAPE (0) OR NEW TAPE (1)??",//) READ(1,*)NEWOLD IF (NEWOLD .EQ. 0) GO TO 76 REWIND 8 GO TO 190 76 WRITE(1,95) 95 FORMAT(//,2X,"SHALL I REWIND (0) OR NOT (1)??",//) READ(1,*)IREW IF (IREW .EQ. 1) GO TO 89 GO TO 88 77 WRITE(1,150) REWIND 8 150 FORMAT(//,2X,"NOW MOUNT CLEAN TAPE AND ENTER :GO",//) PAUSE 6 REWIND 8 WRITE(1,98) 98 FORMAT(//,2X,"ENTER 0 FOR REWIND OR N FOR NUMBER OF FILES"/, 12X,"TO SKIP BEFORE BEGINNING THE COPY",//) READ (1,*) IREW IF (IREW .EQ. 0) GO TO 110 CALL PTAPE(8,IREW,0) 110 DO 666 I = 1,TOTCPY TRACK = TABLE(I) ISECT = -1 6666 ISECT = ISECT + 1 IF (ISECT .LE. 47) GO TO 75 TRACK = TRACK + 1 ISECT = 0 75 CALL EXEC(1,102B,TMPBUF,123,TRACK,ISECT) INDX1 = TMPBUF(1) DO 67 J = 2,INDX1+1 67 IOBUF(J-1) = TMPBUF(J) CALL EXEC(2,110B,IOBUF,INDX1) INDX2 = TMPBUF(62) IF (INDX2 .EQ. 0) GO TO 620 DO 68 J = 63,INDX2+62 68 IOBUF(J-62) = TMPBUF(J) CALL EXEC(2,110B,IOBUF,INDX2) 620 IF (TMPBUF(123) .NE. 0) GO TO 6666 ENDFILE 8 666 CONTINUE REWIND 8 WRITE(1,195) 195 FORMAT(///,2X,"COPY COMPLETED!!!",//) WRITE(1,99) 99 FORMAT(//,2X,"ENTER 0 TO STOP OR 1 TO CONTINUE",//) READ(1,*)NAGN IF (NAGN .EQ. 0) STOP GO TO 777 1000 TOTCPY = TOTCPY - NUM + I - 1 WRITE(1,96)TOTCPY 96 FORMAT(///,2X,"DISC OVERFLOW!!!",/,2X,"AM ABLE TO COPY ONLY", 1I6," FILES TO NEW TAPE THIS PASS",//) GO TO 77 1001 WRITE(1,909) 909 FORMAT(//,2X,"MORE THAN 100 FILES!!!",/,2X,"WILL TREAT AS IF IT", 1" WERE DISC OVERFLOW",/) GO TO 1000 END END$ HR Y c 22682-18026 1632 SC 0122 UTDMP - UNIVERSAL MAG TAPE DUMP             H0101 FTN4,L PROGRAM UTDMP C C THIS PROGRAM IS A UNIVERSAL TAPE DUMP PROGRAM WHICH WILL TAKE C ANY DATA ON A 9-TRACK TAPE AND DUMP IT TO THE PRINTER IN A CLEAR C FORMATTED MANNER. C C THE PROGRAM OPERATES CONVERSATIONALLY, AND THE ANSWERS TO THE C QUESTIONS IT ASKS CONTROL ITS ACTIONS. C C OPERATION: C C THE PROGRAM FIRST ASKS THAT THE TAPE TO BE DUMPED BE C MOUNTED AND PAUSES. WHEN THIS IS DONE, ENTER ":GO". C C THE PROGRAM THEN ASKS FOR THE FIRST FILE TO BE DUMPED (THE C FIRST FILE ON THE TAPE IS FILE NUMBER 1). RESPOND WITH A C NUMBER FROM 1 TO N. (IF THERE ARE LESS THAN N FILES ON THE C TAPE, A MESSAGE INDICATING A PARITY ERROR WILL APPEAR, UNLESS C GARBAGE PREVIOUSLY WRITTEN HAPPENS TO EXACTLY SYNCHRONIZE WITH C THE DESIRED DATA). C C THE PROGRAM WILL READ THE ENTIRE FILE AND DUMP IT TO THE PRIN- C TER. THEN THE FOLLOWING MESSAGE WILL APPEAR: C C "ENTER :GO TO CONTINUE OR :OFF TO STOP" C C A ":GO" ENTRY WILL CAUSE THE NEXT FILE IN SEQUENCE TO BE DUMPED, C WHILE ":OFF" WILL END THE PROGRAM. C C OUTPUT: C C THE DATA IS PRINTED WITH A HEADING ON EACH PAGE INDICATING C THE FILE NUMBER AND PAGE (EACH NEW FILE STARTS AT PAGE 1). THE C DATA IS FORMATTED SIX WORDS PER LINE, FIRST THE OCTAL REPRESENT- C ATION OF THE WORDS, THEN THE ALPHANUMERIC INTERPRETATION OF THE C SAME DATA. DEPENDING ON THE DATA, ONE OF THESE REPRESENTATIONS C WILL PROBABLY NOT BE SIGNIFICANT. C C OTHER PROGRAMS REQUIRED: SUBROUTINE RECRD C C MACHINE: HP2100A, 7900A, 7970B C C SYSTEM: DOS-M, DOS-III C C FOR: DEPARTMENT OF BEHAVIORAL SCIENCE C SUNYAB SCHOOL OF DENTISTRY C C BY: L. F. SHANNON AND G. T. PHIPPS C C DIMENSION IBUF(300) DIMENSION IFMT(19) DATA IFMT/2H(1,2HX,,2HI5,2H,2,2HX,,2HN(,2HO6,2H,1,2HX), 12H,M,2H(7,2HX),2H,1,2HX,,2HN(,2H1X,2H,A,2H2),2H) / WRITSE(1,100) 100 FORMAT(//,2X,"PLEASE MOUNT TAPE TO BE DUMPED AND ENTER :GO",//) PAUSE REWIND 8 WRITE(1,150) 150 FORMAT(//,2X,"ENTER NUMBER OF FIRST FILE TO BE DUMPED",//) READ(1,*)NFIL IF (NFIL .EQ. 1) GO TO 10 CALL PTAPE(8,NFIL-1,0) 10 IX = 0 NPAGE = 0 NLINE = 0 15 CALL RECRD(IBUF,300,LEN,8,IX) NTOT = LEN NBLOCK = 0 11 CONTINUE IF (LEN .LE. 0) GO TO 30 NPAGE = NPAGE + 1 NBLOCK = NBLOCK + 1 NAMT = 300 IF (LEN .LT. 300)NAMT = ((LEN-1)/6+1)*6 LEN = LEN - NAMT WRITE(6,1000)NFIL,NPAGE NP = (NBLOCK-1)*300 + 1 LIMIT = NAMT/6 DO 20 I = 1,LIMIT,10 DO 21 J = I,I+9 NLINE = NLINE + 1 JJ = NP + (J-1)*6 JL = JJ + 5 IF (JL .LE. NTOT) GO TO 21 JK = JL - NTOT JM = NTOT - JJ + 1 N1 = 60B + JM N2 = 60B + JK IFMT (6) = IAND(377B,IFMT(6)) IFMT (6) = IOR(N1*256,IFMT(6)) IFMT(15) = IFMT(6) IFMT(10) = IAND(177400B,IFMT(10)) IFMT(10) = IOR(N2,IFMT(10)) WRITE(6,IFMT)NLINE,(IBUF(K),K=JJ,NTOT),(IBUF(K),K=JJ,NTOT) GO TO 30 21 WRITE(6,2000)NLINE,(IBUF(K),K=JJ,JL),(IBUF(K),K=JJ,JL) 20 WRITE(6,2001) GO TO 11 30 IF (IX .EQ.1) GO TO 15 WRITE(1,175) 175 FORMAT(//,2X,"ENTER :GO TO CONTINUE OR :OFF TO STOP",//) PAUSE NFIL = NFIL + 1 GO TO 10 1000 FORMAT("1",10X,"GENERAL PURPOSE TAPE DUMP",8X,"FILE NUMBER ",I3, 110X,"PAGE ",I4,//,2X,"LINE",16X,"DATA WORDS",26X,"ALPHA",/) 2000 FORMAT(1X,I5,2X,6(O6,1X),1X,6(1X,A2)) 2001 FORMAT(1X) END SUBROUTINE RECRD(IBUF,NDIM,LEN,IUNIT,IPRT) C C THIS IS A UTILITY SUBROUTINE WHICH WILL READ AN ENTIRE FILE FROM C MAG TAPE AND STORE THE DATA IN A USER-PROVIDED ARRAY. THE DATA C IS READ IN IN BINARY FORM AND STORED IN AN INTEGER ARRAY, SO IT C IS UP TO THE USER TO INTERPRET IT CORRECTLY. C C CALLING SEsQUENCE: C C CALL RECRD(IBUF,NDIM,LEN,IUNIT,IPRT) C C WHERE: C C IBUF - THE (LINEAR) ARRAY WHERE THE DATA IS TO BE STORED C C NDIM - THE ACTUAL DIMENSION OF THIS ARRAY C C LEN - THE NUMBER OF WORDS READ C C IUNIT - THE LOGICAL UNIT NUMBER OF THE TAPE, USUALLY 8 C C IPRT - CONTROL PARAMETER. IF THE ENTIRE FILE FITS IN THE C ARRAY PROVIDED, IPRT = 0 ON RETURN. IF IT WILL NOT C ALL FIT, THE AMOUNT OF DATA THAT WILL FIT IS DENOTED IN C LEN AND IPRT IS SET TO 1. NOTE THAT, IF IPRT = 1, LEN IS C NOT NECESSARILY EQUAL TO NDIM. C TO GET THE REST OF THE DATA ON THE FILE, CALL THE ROUTINE C AGAIN WITH IPRT = 1. THE PROGRAM SAVES THE DATA IT READ C LAST TIME BUT COULD NOT FIT IN (WHEN IBUF OVERFLOWED) AND C PUTS IT IN THE FRONT OF IBUF AND THEN CONTINUES ON ITS C MERRY WAY. C C HINTS: SET IPRT TO 0 AT THE FIRST CALL; AFTER THAT THE PROGRAM C WILL TAKE CARE OF IT. C USE AS LARGE AN ARRAY AS FEASIBLE, COMMENSURATE WITH THE C FILE SIZE, TO PREVENT MULTIPLE CALLS TO THE ROUTINE. C C OUTPUT: THE PROGRAM PROVIDES NO MESSAGES C C C MACHINE: HP2100A,7900A,7970B C C SYSTEM: DOS-M,DOS-III C C FOR: DEPARTMENT OF BEHAVIORAL SCIENCE C SUNYAB SCHOOL OF DENTISTRY C C BY: L. F. SHANNON AND G. T. PHIPPS,PHD,DDS C C DIMENSION IBUF(NDIM),ITMP(60) ITAPE = 64 + IUNIT IKNT = 0 IF (IPRT .EQ. 1) GO TO 60 5 CALL EXEC(1,ITAPE,ITMP,60) CALL EXEC(13,IUNIT,IX,ILOG) ITST = IEOF(IUNIT) IPRT = 0 IPRIME = IKNT IKNT = IKNT + ILOG IF (IKNT .GT. NDIM) GO TO 50 IF (ILOG .EQ. 0) GO TO 15 11 DO 10 J = 1,ILOG 10 IBUF(IPRIME+J) = ITMP(J) 15 IF (ITST .LT. 0) GO TO 20 GO TO 5 20 LEN = IKNT RETURN 50 IPRT = 1 IKNT = IKNT - ILOG GO TO 20 60 IPRI*@ME = 0 IKNT = IKNT + ILOG GO TO 11 END END$  Zc 22682-18027 1632 SC 0122 SIMPLEX - LINEAR PROGRAMMING FOR DOS-III             H0101 X:ST,S,FSMPX,5 FTN,L PROGRAM SMPLX C PROGRAMA PARA MINIMIZAR UNA FUNCION OBJETIVO C LAS RESTRICCIONES DEBEN SER TRANSFORMADAS A IGUALDADES C Y DEBEN DARSE COMO DATO JUNTO CON LA BASE ORIGINAL C DATOS: TABLA I. DEL C METODO SIMPLEX C ESTE PROGRAMA USA ARCHIVO EFMP PARA ALMACENAR LOS COEFICIENTES C DE LAS RESTRICCIONES ACEPTA UN MAXIMO DE 100 RESTRICCIONES Y C 1000 INCOGNITAS C PROGRAMA ELABORADO POR : JOSE ANTONIO GUERRA GARCIA INTEGER OPNTB(256),OPNSZ,TRBUF(2560), *ER,PAK,SC,TRBSZ,NAME(3), *NOTRB(2) DIMENSION D(1000),C(1000), *IBASE(100),B(100),TETA(100),BB(100),BUFA(100),NBUF(200),BUFB(100) EQUIVALENCE (BUFA,NBUF) DATA OPNSZ/128/,NOTRB/1,1/,SC/101/,NAME/2HTO,2HNO,2H G/, *TRBSZ/20/ C DEFINE TABLAS EFMP CALL EXEC(24,1,OPNTB,OPNSZ,TRBUF,NOTRB,TRBSZ,ER) CALL FALLA(ER,1) PAK=0 C DEFINE Y ABRE ARCHIVO CALL EXEC(24,2,NAME,PAK,1000,200,SC,ER) CALL FALLA(ER,2) CALL EXEC(24,4,NAME,PAK,1,SC,1,ER) CALL FALLA(ER,3) C N= NO. DE ECUACIONES DE RESTRICCION C M=NO. TOTAL DE INCOGNITAS(REALES + HOLGURAS + FICTICIAS) READ(5,*) N,M C C(I)= COEFICIENTES DE LA FUNCION OBJETIVO (M) READ(5,*) (C(I),I=1,M) C LEE LA MATRIZ TRANSPUESTA DE LOS COEFICIENTES DE LAS RESTRICCIONES DO 1 J=1,M READ(5,*) (BUFA(I),I=1,N) CALL EXEC(24,8,NAME,J,NBUF,ER) 1 CALL FALLA(ER,4) C B(I)=LIMITES DE LAS RESTRICCIONES READ(5,*) (B(I),I=1,N) C LECTURA DE LOS VECTORES DE LA BASE ORIGINAL READ(5,*) (IBASE(I),I=1,N) 4 DO 5 J=1,M CALL EXEC(24,6,NAME,J,NBUF,ER) CALL FALLA(ER,5) D(J)=0. DO 6 I=1,N 6 D(J)=D(J)+BUFA(I)*C(IBASE(I)) 5 D(J)=D(J)-C(J) IND=0 K=1 DO 7 J=1,M IF(D(J)-1.E-06) 7,7,19 19 IND=1 IF(D(J).LT.D(K)) GO TO 7 K=J 7 CONTINUE C IF(IND.EQ.0) GO TO 15 AT=1E15 CALL EXEC(24,6,NAME,K,NBUF,ER) CALL FALLA(ER,6) 9DO 9 I=1,N BB(I)=B(I) IF(BUFA(I)-1.E-06) 9,9,8 8 TETA(I)=B(I)/BUFA(I) IF(TETA(I).GE.AT) GO TO 9 L=I AT=TETA(I) 9 CONTINUE C IBASE(L)=K PIVO =BUFA(L) DO 14 I=1,N IF(I.NE.L) GO TO 13 B(I)=B(I)/PIVO GO TO 14 13 B(I)=BB(I)-(BB(L)*BUFA(I))/PIVO 14 CONTINUE DO 97 KK=1,N 97 BUFB(KK)=BUFA(KK) DO 10 I=1,N IF(I.EQ.L) GO TO 10 DO 10 J=1,M IF(J.EQ.K) GO TO 10 CALL EXEC(24,6,NAME,J,NBUF,ER) CALL FALLA(ER,7) BUFA(I)=BUFA(I)-(BUFA(L)*BUFB(I))/PIVO CALL EXEC(24,8,NAME,J,NBUF,ER) CALL FALLA(ER,8) 10 CONTINUE DO 12 J=1,M CALL EXEC(24,6,NAME,J,NBUF,ER) CALL FALLA(ER,9) BUFA(L)=BUFA(L)/PIVO CALL EXEC(24,8,NAME,J,NBUF,ER) 12 CALL FALLA(ER,10) CALL EXEC(24,6,NAME,K,NBUF,ER) CALL FALLA(ER,11) DO 11 I=1,N BUFA(I)=0. IF(I.NE.L) GO TO 111 BUFA(L)=1. 111 CALL EXEC(24,8,NAME,K,NBUF,ER) 11 CALL FALLA(ER,12) GO TO 4 15 Z=0. DO 16 I=1,N 16 Z=Z+B(I)*C(IBASE(I)) WRITE(6,17) Z,(IBASE(I),B(I),I=1,N) 17 FORMAT(1H ,"SOLUCION OPTIMA"/2X,"Z= "F14.3,/(2X,"X("I3, *")= "F10.3)) CALL EXEC(24,3,NAME,PAK,SC,ER) CALL FALLA(ER,13) CALL EXEC(24,11,PAK,ER) CALL EXEC(24,14) WRITE(1,98) 98 FORMAT("PURGE EL ARCHIVO PN000") END SUBROUTINE FALLA(ERROR,J) INTEGER ERROR IF(ERROR.EQ.0) RETURN WRITE(1,1) ERROR,J 1 FORMAT(" ERROR NUMBER "I4," ON EFMP CALL NUMBER "I4) RETURN END END$ :: :CL :JF,FSMPX :PAUSE TURN ON THE LINE PRINTER AND TYPE :GO,PLEASE. :PR,FTN4,2,99 :PR,LOADR,0,6 :ST,P :PR,SMPLX 4,9 5,6,7,1.E20,0,0,1.E20,0,1.E20 1,1,0,0 1,0,1,0 1,0,0,1 1,0,0,0 0,1,0,0 0,0,-1,0 0,0,1,0 0,0,0,-1 0,0,0,1 1000,300,150,200 4,5,7,9 :COMMENT THE PROGRAM SMPLX HAS BEEN TESTED AND IS STORED PERMANENTLY. :TY Jk  [c 22682-18028 1639 SC 5922 ADM FOR HP RTE FMGR COMPUTER SYSTEMS             H0159 ASMB,R,L,C NAM DCBSR,7 * *SUBROUTINES TO HANDLE DATA CONTROL BLOCKS IN ADMRT * * ENTRY POINTS ARE: INDCB,DFILE,CFILE * * INDCB INITIALISES THE DCB AREA, AND MUST BE CALLED FROM THE * ----- MAIN PROGRAM, WHEN SEGMENTING. * IT MUST BE CALLED BY EVERY PROGRAM OF A CHAIN! * IT MUST BE THE VERY FIRST CALL TO ADMRT IN A PROGRAM * * CALL INDCB(IDCB,N) * * WHERE IDCB IS THE DCB AREA(LENGTH IS 144*N) * N IS THE NUMBER OF FILES THAT WILL BE OPENED * CONCURRENTLY IN THE PROGRAM * * DFILE OPENS A FILE AND RETURNS SOME INFORMATION IN AN 11-WORD * ----- ARRAY AS FOLLOWS: * WORD 1 TO 3: FILE NAME * 4: MAXIMUM NUMBER OF RECORDS ALLOWED IN THE FILE * 5: SIZE OF A RECORD IN BYTES * 6: DECIMAL 1 (FOR DOS COMPATIBILITY) * 7: DCB ADDRESS FOR THIS FILE * 8: ACTUAL NUMBER OF RECORDS IN THE DATA SET * 9: NUMBER OF FIELDS * 10: DECIMAL 0 (USER SETS TO LOGLU) * 11: PROTECTION INDICATOR * * CALL DFILE(IFILE,NAME,IREAD,IWRIT) * * WHERE IFILE IS THE 11-WORD ARRAY * NAME IS THE NAME OF THE FILE * IREAD IS THE READ PROTECT CODE RETURNED * IWRIT IS THE WRITE PROTECT CODE RETURNED * * CFILE CLOSES ONE OR ALL FILES * ----- * CALL CFILE(IFILE) * * WHERE IFILE IS THE 11-WORD DESCRIPTOR OF THE FILE TO * BE CLOSED, OR 0 IF ALL FILES ARE TO BE. * ENT INDCB,DFILE,CFILE,IADRS,LUMIO,SETLU,IGTLU EXT .ENTR,MOVW,OPEN,LOCF,CLOSE,READF A EQU 0 B EQU 1 HED CNT NOP .DCB NOP #DCB NOP INDCB NOP ENTRY POINT JSB .ENTR GET PARAMS DEF .DCB LDA #DCB,I CMA,INA STA #DCB SAVE NEG NO OF DCB'S SZA,RSS JMP INDCB,I EXIT: ZERO BLOCKS ASSIGNED STA CNT SET UP COUNTER LDB .DCB CLA CLEAR STA B,I CLEAR ALL DCB'S ADB D144 ISZ CNT ALL DONE? JMP CLEAR JMP INDCB,I EXIT, SATISFIED HED VAR NOP IADRS NOP JSB .ENTR DEF VAR LDA VAR JMP IADRS,I LUMIO OCT 401 SETLU NOP Y JSB .ENTR DEF LUMIO LDA LUMIO,I IOR =B400 STA LUMIO JMP SETLU,I IGTLU NOP JSB .ENTR DEF IGTLU LDA LUMIO JMP IGTLU,I END )ASMB,R,L,C NAM PUT,7 * * ROUTINE PUT WRITES A RECORD IN A FILE * * CALL PUT(IBUF1,IBUF2,IFILE,IREC,MODE,ISTAT) * * WHERE IBUF1 CONTAINS THE RECORD, LEFT JUSTIFIED * IBUF2 IS AN 128 WORD BUFFER FOR DISC IO * IFILE IS THE 11-WORD DESCRIPTOR * IREC IS THE RECORD NUMBER * MODE -2: DELETE THE RECORD * -1: PUT AN EOF AT IREC * 0 OR 1: NORMAL WRITE * ISTAT IS THE STATUS RETURNED * -2: ILLEGAL WRITE CODE * -1: ILLEGAL RECORD NUMBER * 0: OK * ENT PUT EXT .ENTR,EXEC,WRITF,DIO A EQU 0 B EQU 1 HED ERR NOP LEN NOP D4 DEC 4 SAVE NOP D9 DEC 9 B100 OCT 100 LOGLU NOP D2 DEC 2 D3 DEC 3 DM1 DEC -1 MARK OCT 102204 DEL OCT 112224 D6 DEC 6 D0 OCT 0 D7 DEC 7 D10 DEC 10 DM2 DEC -2 BUFR NOP DUM NOP FILE NOP REC NOP MODE NOP STAT NOP PUT NOP JSB .ENTR DEF BUFR LDA DM2 STA STAT,I SET STATUS TO -2 LDB FILE ADB D10 LDA B,I GET PROTECT INDICATOR SSA,RSS SZA,RSS JMP PUT,I RETURN, ERROR CCA STA STAT,I SET STATUS TO -1 LDA REC,I GET RECORD NUMBER CMA,SSA,INA,SZA SKIP IF LE 0 JMP OK1 JMP PUT,I RETURN, ERROR OK1 LDB FILE ADB D3 ADA B,I CHECK IF IREC IS TO BIG SSA JMP PUT,I RETURN, ERROR CLA STA STAT,I SET STATUS TO OK INB LDA B,I GET RECORD LENGTH ARS MAKE IT WORDS STA LEN AND SAVE IN CALL ADB D2 LDA B,I GET DCB ADDRESS STA DFDCB LDA BUFR,I SAVE FIRST WORD OF BUFFER STA SAVE LDB MODE,I    CPB DM2 CHECK FOR DELETE LDA DEL CPB DM1 CHECK FOR EOF WRITE LDA MARK STA BUFR,I JSB WRITF WRITE A RECORD DEF *+6 DFDCB NOP DEF ERR DEF BUFR,I DEF LEN DEF REC,I LDA SAVE STA BUFR,I RESTORE FIRST WORD LDA MODE,I INA,SZA JMP NOEOF NO EOF CCA ADA REC,I LDB FILE ADB D7 STA B,I UPDATE NUMBER OF RECORDS JSB DIO GO UPDATE DSDS DEF *+4 DEF D0 DEF FILE,I DEF DUM,I NOEOF LDB FILE ADB D9 LDA B,I GET LOGLU SZA,RSS JMP PUT,I EXIT, NO LOGGING ADA B100 SET BINARY BIT STA LOGLU JSB EXEC LOG ON DEVICE DEF *+5 DEF D2 DEF LOGLU DEF BUFR,I DEF LEN JMP PUT,I EXIT, ALL WORK DONE END ͊ ASMB,R,L,C NAM GET,7 * * THIS ROUTINE READS A RECORD FROM A FILE * * CALL GET(IBUF,IFILE,IREC,ISTAT,IWORD) * * WHERE IBUF IS A BUFFER TO RETURN THE RECORD IN * IFILE IS THE 11-WORD DESCRIPTOR * IREC IS THE RECORD NUMBER * ISTAT IS THE STATUS RETURNED * -2: ILLEGAL READ CODE * -1: ILLEGAL RECORD NUMBER * 0: OK * 1: EOF READ * 2: DELETED RECORD READ * IWORD IS A DUMMY PARAMETER FOR DOS COMPATIBILITY * IT IS PUT TO 1 * ENT GET EXT .ENTR,READF A EQU 0 B EQU 1 HED ERR NOP D3 DEC 3 D4 DEC 4 D7 DEC 7 LEN NOP MARK OCT 102204 DEL OCT 112224 D2 DEC 2 DM2 DEC -2 D5 DEC 5 D6 DEC 6 BUFR NOP FILE NOP REC NOP STAT NOP WORD NOP GET NOP JSB .ENTR DEF BUFR CLA,INA STA WORD,I PUT IWORD TO 1 CCA STA STAT,I PUT STATUS TO -1 LDA REC,I GET RECORD NUMBER CMA,SSA,INA,SZA SKIP IF LE 0 JMP OK1 JMP GET,I RETURN: ERROR OK1 LDB FILE ADB D3 ADA B,I CHECK FOR LEGAL IREC SSA JMP GET,I RETURN: ERROR ADB D7 LDA DM2 STA STAT,I PUT STATUS TO -2 LDA B,I ARS SZA JMP GET,I RETURN: ERROR LDB FILE ADB D4 LDA B,I GET LENGTH ARS STA LEN AND SAVE ADB D2 LDA B,I GET DCB ADDRESS STA DFDCB AND SAVE IN CALL JSB READF GO READ A RECORD DEF *+7 DFDCB NOP DEF ERR DEF BUFR,I DEF LEN DEF WORD DEF REC,I LDA BUFR,I CLB CPA MARK CLB,INB CPA DEL LDB D2 STB STAT,I JMP GET,I END :  ASMB,R,L,C NAM UTILX,7 SPC 1 EXT .ENTR ENT ISHFT,IPICK ENT STUFF,CITA ENT SWTCH A EQU 0 B EQU 1 SPC 2 * * * FUNCTION ISHFT(IWORD,N) * * THIS FUNCTION IS "IWORD" SHIFTED * RIGHT "N" BITS IF "N" IS POSITIVE, OR * LEFT "N" BITS IF "N" IS NEGATIVE. * ZEROS ENTER THE END OF THE WORD. * ASSUMED VALUES FOR N : 1 <= N <= 15 . * * SPC 1 IWORD BSS 1 N BSS 1 ISHFT BSS 1 ENTER "ISHFT", AND JSB .ENTR GET ARGUMENT DEF IWORD ADDRESSES. SPC 1 LDA IWORD,I GET THE LDB N,I ARGUMENTS. SSB IF SHIFT LEFT, JMP IS2 GO TO IS2. SPC 1 CMB,INB IS1 CLE,ERA SHIFT "IWORD" INB,SZB RIGHT JMP IS1 N BITS, JMP ISHFT,I AND EXIT. SPC 1 IS2 CLE,ELA SHIFT "IWORD" INB,SZB LEFT JMP IS2 N BITS, JMP ISHFT,I AND EXIT. SKP * * * FUNCTION IPICK(IWRD,M) * * THIS FUNCTION TAKES THE LOW ORDER * "M" BITS FROM "IWRD". * 1 <= M <= 15 * * SPC 1 IWRD BSS 1 M BSS 1 IPICK BSS 1 ENTER "IPICK", AND JSB .ENTR GET ARGUMENT DEF IWRD ADDRESSES. SPC 1 LDB M,I B := -NUMBER OF CMB,INB BITS TO PICK. SPC 1 CCA GENERATE A ALS MASK IN INB,SZB THE A REGISTER JMP *-2 FOR LOW ORDER CMA M BITS. SPC 1 AND IWRD,I PICK THE BITS JMP IPICK,I AND EXIT. SKP * * CALL STUFF(ISTFE,LORU,ISTFR,N) * * THE LOWER N BITS OF ISTFR REPLACE * THE LOWER (LORU = 0) OR * THE UPPER (LORU = 1) * N BITS OF ISTFE. * * ARGUM BSS 4 STUFF BSS 1 ENTER, AND JSB .ENTR v1 GET ARGUMENT DEF ARGUM ADDRESSES. SPC 1 LDA ARGUM+3,I GET "N" CMA,INA AND CLB,CCE FORM ELB MASK. CCE,INA,SZA JMP *-2 SPC 1 LDA B GET AND ARGUM+2,I SOURCE STA IPICK BITS. SPC 1 CMB FORM LDA ARGUM+1,I DESTINATION SZA,RSS MASK. JMP ST2 LDA IPICK ST1 RBL RAL SSB JMP ST1 STA IPICK SPC 1 ST2 LDA B INSERT DATA AND ARGUM,I AND IOR IPICK STORE IT. STA ARGUM,I JMP STUFF,I SKP * CALL CITA(INT,IA) * CONVERT AN INTEGER (INT) TO ITS DECIMAL EQUIVALENT * IN ASCII FORMAT IN THE 3 WORD ARRAY (IA). SPC 1 ARGU BSS 2 CITA BSS 1 ENTER, AND JSB .ENTR GET ARGUMENT DEF ARGU ADDRESSES. LDA ARGU+1 SET UP ARRAY STA ISHFT POINTER. LDA TA SET UP NUMBER TABLE STA IPICK POINTER. LDA ARGU,I GET THE INTEGER. * LDB MINUS GENERATE SSA THE SIGN CMA,INA,RSS AND THE LDB BLANK FIRST NUMBER. JSB ONEN STB ISHFT,I CLB GENERATE JSB ONEN THE NEXT BLF,BLF TWO NUMBERS. JSB ONEN ISZ ISHFT STB ISHFT,I CLB GENERATE JSB ONEN THE LAST BLF,BLF TWO NUMBERS. ADB =B60 ADB A ISZ ISHFT STB ISHFT,I JMP CITA,I * ONEN BSS 1 ENTER CONVERSION ROUTINE. ADB =B60 ON1 ADA IPICK,I SSA JMP ON2 INB JMP ON1 ON2 CMA,INA ADA IPICK,I CMA,INA ISZ IPICK JMP ONEN,I TA DEF NBUF NBUF DEC -10000 DEC -1000 DEC -100 DEC -10 BLANK OCT 20000 MINUS OCT 26400 SKP * * CALLQ SWTCH(IFROM,ITO) * * THE BYTES IN "IFROM" ARE SWITCHED, * AND THE RESULT IS STORED IN "ITO". * FROM BSS 1 TO BSS 1 SWTCH BSS 1 ENTER SWITCH ROUTINE JSB .ENTR DEF FROM LDA FROM,I ALF,ALF STA TO,I JMP SWTCH,I END ASMB,R,L,C NAM DIO,7 * * SUBROUTINE DIO READS AND/OR WRITES THE DSDS * * CALL DIO(MODE,IFILE,IB) * * WHERE MODE=-1 MEANS READ DSDS * 0 READ,UPDATE,WRITE DSDS * 1 WRITE DSDS * IFILE IS THE 11-WORD DESCRIPTOR * IB IS AN 128-WORD BUFFER CONTAINING DSDS * ENT DIO EXT .ENTR,OPEN,WRITF,EXEC,READF,LOCF A EQU 0 B EQU 1 HED ERR NOP #SEC NOP D128 DEC 128 MARK OCT 102204 D0 DEC 0 D6 DEC 6 D9 DEC 9 D7 DEC 7 B100 OCT 100 LU NOP LOGLU NOP D2 DEC 2 D3 DEC 3 MODE NOP FILE NOP BUFR NOP DIO NOP JSB .ENTR DEF MODE LDB FILE ADB D6 LDA B,I GET DCB ADDRESS STA DFDCB AND SAVE IN CALL JSB LOCF DEF *+8 DEF DFDCB,I DEF ERR DEF LOGLU DEF LOGLU DEF LOGLU DEF #SEC DEF LU LDA LU CMA,INA STA LU JSB OPEN DEF *+7 DFDCB NOP DEF ERR DEF FILE,I DEF D6 DEF D0 DEF LU LDA #SEC ARS HALF GIVES BLOCKS STA #SEC LDA MODE,I GET MODE CMA,SSA,INA,SZA SKIP IF LE 0 JMP WRITE ONLY WRITE DSDS JSB READF READ DSDS DEF *+7 DEF DFDCB,I DEF ERR DEF BUFR,I DEF D128 DEF LOGLU DUMMY DEF #SEC LDA MODE,I SSA JMP EXIT RETURN, READ ONLY WRITE LDA MARK STA BUFR,I PUT EOF MARKER LDB FILE ADB D7 LDA B,I LDB BUFR INB STA B,I IB(2)=IFILE(8) JSB WRITF WRITE DSDS DEF *+6 DEF DFDCB,I DEF ERR DEF BUFR,I DEF D128 DEF #SEC LDB FILE ADB D9 LDA B,I SZA,RSS CHECK LOGLU Ji   JMP EXIT RETURN,NO LOGGING ADA B100 SET BINARY BIT STA LOGLU JSB EXEC LOG DEF *+5 DEF D2 DEF LOGLU DEF BUFR,I DEF D128 EXIT JSB OPEN RE-OPEN THE FILE DEF *+7 DEF DFDCB,I DEF ERR DEF FILE,I DEF D2 DEF D0 DEF LU JMP DIO,I EXIT END ; ASMB,R,L,C NAM MOVW,7 EXT .ENTR ENT MOVW * * "MOVW" MOVES WORDS FROM JB TO IB, AND/OR FILLS IB WITH KFILL. * IL CONTROLS THE LENGTH OF THE MOVE. * * CALL MOVW(IB,IL,JB,JL,KFILL) * * IB - DESTINATION BUFFER. * IL - DESTINATION LENGTH. * JB - SOURCE BUFFER. * JL - SOURCE LENGTH. * KFILL - WORD USED TO FILL DESTINATION BUFFER * WHEN SOURCE BUFFER IS EXHAUSTED. * * IB BSS 1 DESTINATION BUFFER ADDRESS. IL BSS 1 DESTINATION BUFFER LENGTH. JB BSS 1 SOURCE BUFFER ADDRESS. JL BSS 1 SOURCE BUFFER LENGTH. KFILL BSS 1 FILL WORD, IF NEEDED. MOVW BSS 1 ** ENTRY POINT ** JSB .ENTR DEF IB * LDB IL,I SET UP DESTINATION CMB,INB LENGTH COUNTER. LDA JL,I SET UP SOURCE CMA,INA LENGTH COUNTER. STA JL SZA,RSS IF NO SOURCE, THEN JMP FILL GO TO FILL. * MW1 LDA JB,I MOVE WORDS STA IB,I AND ISZ IB UPDATE COUNTERS. ISZ JB INB,SZB,RSS IF DONE, JMP MOVW,I THEN EXIT. ISZ JL JMP MW1 * FILL LDA KFILL,I FILL REMAINDER FILL1 STA IB,I OF IB ISZ IB WITH KFILL. INB,SZB JMP FILL1 JMP MOVW,I END MOVW xASMB,R,L,C NAM DFLDS,7 ENT DFLDS EXT .ENTR,UNPK3,DIO A EQU 0 B EQU 1 * * CALL DFLDS(IB,IFILE,IFLDS,IFUN,INDEX,ISTAT) * * "DFLDS" SETS UP FIELD AND INDEX DEFINITION ARRAYS. * IB - 132 WORD BUFFER FOR I/O. * IFILE - 11 WORD ARRAY DESCRIBING THE DATA SET. * IFUN - FUNCTION PARAMETER * = 0 => PACKED DATA IN IFLDS. * = 1 => UNPACKED DATA IN IFLDS. * IFLDS - (2,20) ARRAY FOR PACKED DATA FUNCTION. * WORD 1 = FIRST 3 CHARACTERS OF FIELD NAME. * WORD 2 = 15-8 CONTAINS STARTING BYTE ADDRESS -1. * 7 CONTAINS FIELD TYPE. * 6-0 CONTAINS FIELD LENGTH IN BYTES -1. * (9,20) ARRAY FOR UNPACKED DATA FUNCTION. * WORDS 1-6 = 12 CHARACTERS (A2) OF FIELD NAME. * WORD 7 = STARTING BYTE ADDRESS (1 TO 256). * WORD 8 = FIELD LENGTH IN BYTES (1 TO 128). * WORD 9 = FIELD TYPE (0/1 => ALPHA/NUMERIC). * INDEX - LAST 23 WORDS OF DSDS (SORT FIELDS,SUBFIELDS,ETC.) * ISTAT - 300 => NORMAL, 301 => NOT CREATED YET. * DM1 DEC -1 D1 DEC 1 D4 DEC 4 D12 DEC 12 IB NOP IFILE NOP IFLDS NOP IFUN NOP INDEX NOP ISTAT NOP DFLDS NOP JSB .ENTR DEF IB LDA =D300 STA ISTAT,I LDB IFILE CHECK FOR LEGAL FILE ADB =D3 LDA B,I SZA,RSS JMP ERROR JSB DIO DEF *+4 DEF DM1 DEF IFILE,I DEF IB,I LDA IB,I CPA =B102204 JMP NOROR ERROR ISZ ISTAT,I JMP DFLDS,I EXIT, ERROR NOROR LDB IB MOVE SORT INFO TO INDEX ADB =D105 STB ISTAT LDB =D-23 FILIN LDA ISTAT,I STA INDEX,I ISZ ISTAT ISZ INDEX INB,SZB JMP FILIN LDB IFILE ADB =D8 LDA B,I CMA,INA STA IFILE SET UP FIELD COUNT LDB IB ADB =D5 POINT TO FIELD IN IB |   LDA IFUN,I SLA PACKED OR UNPACKED? JMP UNPKD L15 LDA B,I PACKED! STA IFLDS,I SAVE FIELD NAME ADB D4 LDA B,I ISZ IFLDS STA IFLDS,I SAVE PARAMS ISZ IFLDS INB ISZ IFILE DONE? JMP L15 JMP DFLDS,I EXIT OK UNPKD STB IFUN L20 JSB UNPK3 GO UNPACK THE FIELD NAME DEF *+7 DEF IFUN,I DEF D1 DEF D4 DEF IFLDS,I DEF D1 DEF D12 LDB IFUN ADB D4 STB IFUN LDB IFLDS ADB =D6 STB IFLDS LDA IFUN,I GET FIELD PARAMS ALF,ALF AND UNPACK CLB SSA,INA INB AND =B377 STA IFLDS,I ISZ IFLDS LDA IFUN,I AND =B177 INA STA IFLDS,I ISZ IFLDS STB IFLDS,I ISZ IFLDS ISZ IFUN ISZ IFILE DONE? JMP L20 JMP DFLDS,I EXIT OK END J ASMB,R,L,C NAM PACK3,7 A EQU 0 B EQU 1 ENT PACK3 EXT .ENTR K NOP **** * * CALL PACK3(IFLD,IWRD,ILTH,KFLD,KBYT,KLTH) * * THIS SUBROUTINE MOVES A BYTE FIELD IN A2 FORMAT * BEGINNING IN KBYT OF KFLD * TO A WORD FIELD IN A3 FORMAT * BEGINNING IN IWRD OF IFLD. * * IF THE NUMBER OF CHARACTERS IN THE A2 FIELD IS LESS * THAN ILTH*3, BLANKS WILL BE SUPPLIED TO FILL IN THE * A3 FIELD. ILTH TERMINATES THE OPERATION. * * LEGAL CHARACTERS ARE * (BLANK), (-), (.), (/), (A-Z), (0-9). * **** K3 DEF * BSS 3 KEND NOP IFLD NOP IWRD NOP ILTH NOP KFLD NOP KBYT NOP KLTH NOP PACK3 NOP JSB .ENTR DEF IFLD CCA ADA KBYT,I ADA KLTH,I STA KEND KEND=KBYT+KLTH-1 LDA KBYT,I STA KBYT KB=KBYT LDA IWRD,I DO 20 I=IWRD,IWRD+ILTH-1 STA IWRD LDA ILTH,I CMA,INA STA ILTH L20 CLA,INA DO 10 K=1,3 STA K LDA =D-3 STA KLTH L10 CCA ADA KBYT CLE,ERA ADA KFLD LDA A,I KFLD(KWRD) SEZ,RSS IF(KHLF.EQ.1) ALF,ALF ISHFT(..,8) AND =B177 IPICK(..,7) LDB KBYT IF(KB.GT.KEND) CMB,INB ADB KEND SSB CLA K3(K)=0 => A-REG LDB =B-55 IF(K3(K).LT.55B) ADB A SSB CLA LDB A IF(K3(K).GT.132B) ADB =B-133 SSB,RSS CLA AND =B77 IF(K3(K).GT.100B)K3(K=K3(K)-100B LDB A ADB =B-72 IF(K3(K).GT.71B) SSB,RSS CLA LDB A IF(K3(K).GT.54B) ADB =B-55 SSB,RSS ADA =B-22 K3(K)=K3(K)-22B ISZ KBYT KB=KB+1 LDB K ADB K3 STA B,I A-REG => K3(K) ISZ K TERMINATE DO LOOP ISZ KLTH JMP q  L10 LDA K3+1 K3(1) ADA =D-20 -20) MPY =D1600 *1600 STA K LDA K3+2 +(K3(2 MPY =D40 *40) ADA K3+3 +K3(3) ADA K CCB ADB IWRD ADB IFLD STA B,I IFLD(I)=.. ISZ IWRD TERMINATE DO LOOP ISZ ILTH JMP L20 JMP PACK3,I RETURN END  ASMB,R,L,C NAM UNPK3,7 * A EQU 0 B EQU 1 **** * * CALL UNPK3(IFLD,IWRD,ILTH,KFLD,KBYT,KLTH) * * THIS ROUTINE CONVERTS AN A3 FIELD IN IFLD TO A ASCII A2 * STRING IN KFLD. SEE PACK3,. * **** ENT UNPK3 EXT .ENTR K3 DEF * BSS 3 K NOP C10 NOP TEMP NOP IFLD NOP IWRD NOP ILTH NOP KFLD NOP KBYT NOP KLTH NOP UNPK3 NOP JSB .ENTR DEF IFLD LDA KBYT,I ADA KLTH,I STA KLTH LDA KBYT,I STA KBYT KB=KBYT LDA IWRD,I DO 20 I=IWRD,IWRD+ILTH-1 STA IWRD LDA ILTH,I CMA,INA STA ILTH L20 CCA ADA IWRD ADA IFLD IFLD(I) LDA A,I STA K CLB SSA,RSS JMP POS ADA =D32000 +32000 DIV =D1600 /1600 JMP NEPO POS DIV =D1600 ADA =D20 +20 NEPO STA K3+1 K3(1)=.. ADA =D-20 K3(1)-20 MPY =D1600 *1600 CMA,INA ADA K STA K CLB DIV =D40 STA K3+2 K3(2)=.. MPY =D40 CMA,INA ADA K STA K3+3 K3(3)=.. CLA,INA STA K LDA =D-3 STA C10 DO 10 K=1,3 L10 LDB K3 ADB K LDA B,I K3(K) STA TEMP LDB =B100 KA=100B => B-REG SZA,RSS LDB =B40 IF(KR(K).EQ.0)KA=40B ADA =B-33 IF(K3(K).GT.32B) SSA,RSS LDB =B22 KA=22 ADB TEMP LDA KBYT CPA KLTH JMP UNPK3,I ADA =D-1 CLE,ERA ADA KFLD STA TEMP ADRESS OF KFLD(KWRD) LDA TEMP,I SEZ,RSS UPPER OR LOWER? *SINCE THE LEFT HALF OF THE B-REG IS 0, *THE SLB IN NEXT INSTRUCTION IS AN UNCONDITIONAL SKIP!! BLF,SLB,BLF SWAP BYTES AND =B177400 SEZ,RSS AND =B377 IOR B GET CHARACTER IN {   STA TEMP,I ISZ KBYT ISZ K END OF LOOP ISZ C10 JMP L10 ISZ IWRD END OF LOOP ISZ ILTH JMP L20 JMP UNPK3,I END ASMB,R,L,C NAM DFLD,7 ENT DFLD EXT .ENTR **** * * CALL DFLD(NFLDS,IFLDS,IFLD,IBYT,ILTH,ITYP,JJ) * * THIS ROUTINE COMPARES IFLD WITH THE TOP ROW ELEMENTS OF * IFLDS. IF A MATCH OCCURS, THE CORRESPONDING SECOND ROW * ELEMENT IS UNPACKED INTO IBYT,ILTH,ITYP. * * WHEN A MATCH OCCURS, "JJ" = THE RELATIVE NUMBER * OF ELEMENT (FROM 1 TO "NFLDS"). IF NO MATCH * OCCURS, "JJ" = "NFLDS" + 1. * **** NFLDS NOP IFLDS NOP IFLD NOP IBYT NOP ILTH NOP ITYP NOP JJ NOP DFLD NOP JSB .ENTR DEF NFLDS LDB NFLDS,I CMB,INB INITIALISE COUNTER CLA,INA STA JJ,I INITIALISE FIELD NUMBER L5 LDA IFLDS,I CPA IFLD,I JMP FOUND MATCH FOUND ISZ IFLDS ISZ IFLDS POINT TO NEXT ISZ JJ,I INB,SZB DONE? JMP L5 JMP DFLD,I EXIT, ERROR FOUND ISZ IFLDS POINT TO FIELD PARAMS LDA IFLDS,I UNPACK ALF,ALF CLB SSA,INA INB STB ITYP,I AND =B377 STA IBYT,I LDA IFLDS,I AND =B177 INA STA ILTH,I JMP DFLD,I END FTN4,L,M,T SUBROUTINE DCOND(IFNAM,ICD,ICHAR,ICOND,ICN,ICL,NFL,IUFL,ISTAT) DIMENSION IFNAM(2),ICHAR(1),ICOND(1),JAR(6) DATA JAR/2HLT,2HLE,2HEQ,2HGE,2HGT,2HNE/ CCC C C CALL DCOND(IFNAM,ICD,ICHAR,ICOND,ICN,ICL,NFL,IUFL,ISTAT) C C "DCOND" WILL PUT ONE CONDITION INTO CONDITION MATRIX "ICOND". C C IFNAM - NAME OF THE FIELD TO BE TESTED (3 CHARACTERS). C ICD - TEST CONDITION (LT,LE,EQ,GE,GT,NE). C ICHAR - THE CONDITION STRING OF CHARACTERS. C ICOND - ARRAY OF CONDITIONS STORED COLUMNWISE. C WORD 1 - FIELD NAME, 3 CHARACTERS PACKED. C WORD 2 - CONDITION CODE (-2 TO +3). C WORD 3 - =1 IF NEXT CONDITION IS NEW SET, ELSE =2. C WORD 4 - NUMBER OF CHARACTERS IN CONDITION. C WORD 5 - FIRST WORD OF CONDITION STRING. C ICN - NUMBER OF THE CONDITION TO BE STORED (1 TO 10). C ICL - MAXIMUM LENGTH OF A CONDITION STRING. C NFL - NUMBER OF FIELDS IN THE DATA RECORDS. C IUFL - (2,20) ARRAY DESCRIBING THE FIELDS. C ISTAT - 1200 => CONDITION ENTERED OK. C 1201-1210 => NON-EXISTENT FIELD NAME. C 1221 => FIRST RESPONSE ILLEGAL. C 1222 => ILLEGAL CONDITION. CCC IC=(ICL+4)*(ICN-1)+1 C SEE IF THIS IS THE OR CONDITION IF((IFNAM(1).NE.2H//).AND.(IFNAM(1).NE.2H ))GO TO 5 ISTAT=1221 IF(ICN.EQ.1) RETURN ICOND(IC-ICL-2)=2 IF(IFNAM(1).EQ.2H//)ICOND(IC-ICL-2)=1 ISTAT=1200 RETURN 5 CALL PACK3(ICOND,IC,1,IFNAM,1,3) ISTAT=1200+ICN CALL DFLD(NFL,IUFL,ICOND(IC),IB,IL,IB,IS) IF(IS.GT.NFL)RETURN C CONVERT CONDITION CODE ISTAT=1222 IC=IC+1 ICOND(IC) = 4 DO 11 I=1,6 11 IF (ICD .EQ. JAR(I)) ICOND(IC) = I - 3 IF(ICOND(IC).EQ.4)RETURN ISTAT =1200 ICOND(IC+1)=0 ICOND(IC+2) = LCHAR(ICHAR,1,ICL*2,40B,0) - 1 C BMOVE THE COMPARE STRING INTO THE CONDITION MATRIX CALL BMOVE(ICOND(IC+3),1,ICL*2,ICHAR,2,ICOND(IC+2)) RETURN END    END$  FTN4,L,M,T SUBROUTINE INCND(INBUF,IF,IL,ICON,ICL,KF,IUFL,JS,M,N) C C CALL INCND(INBUF,IF,IL,ICON,ICL,KF,IUFL,JS,M,N) C C THIS SUBROUTINE ESTABLISHES THE RECORD NUMBER RANGE (IF TO IL) C AND BUILDS A TABLE OF SELECTION CRITERIA (IN ICON). C C INBUF - 12 WORD ARRAY FOR I/O. C IF - FIRST RECORD OF RANGE TO BE SEARCHED. C IL - LAST RECORD OF RANGE TO BE SEARCHED. C ICON - 120 WORD ARRAY FOR CONDITION PARAMETERS. C ICL - 0 => NO CONTENT SELECTION CRITERIA. C 8 = SELECTION CRITERIA STRING LENGTH IN ICON. C KF - 11 WORD DESCRIPTION OF DATA SET. C IUFL - 2,20 ARRAY DESCRIBING THE DATA SET FIELDS. C JS - STATUS 0 => NO SELECTION CRITERIA. C 1200 => YES SELECTION CRITERIA. C M - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C N - 132 WORD ARRAY FOR MESSAGE I/O. C DIMENSION KF(11),ICON(120) DIMENSION INBUF(12) DIMENSION M(11),N(132) CCC FIRST AND LAST RECORD NUMBERS. JS = 0 CALL INTIN(26,IF,M,N) CALL INTIN(27,IL,M,N) IF (IL .EQ. -1) IL = KF(8) CALL MIO(37,1,1,IANS,M,N) ICL=0 IF(IANS.EQ.1HN)RETURN ICL=8 CCC CONTENT SELECTION PARAMETERS. DO 10 I=1,10 4 CALL MIO(38,1,ICL+3,INBUF,M,N) CALL DCOND(INBUF,INBUF(3),INBUF(4),ICON,I,ICL,KF(9),IUFL,JS) IF (JS .EQ. 1200) GO TO 7 CALL MIO(124,2,0,0,M,N) GO TO 4 7 IF (INBUF .EQ. 2H//) GO TO 4 IF (INBUF .EQ. 2H ) RETURN 10 CONTINUE RETURN END END$ JFTN4,L,M,T SUBROUTINE SELCT(IBUF,IWORD,IFILE,IUFL,IFRST,ILAST 1,ICOND,ICL,NREC,ISTAT) DIMENSION IBUF(132),ICOND(1),IFILE(11),IUFL(2,20) CCC C C CALL SELCT(IBUF,IWORD,IFILE,IUFL,IFRST,ILAST) C C "SELCT" SEARCHES A RANGE OF RECORDS FOR THE FIRST C RECORD TO SATISFY THE SELECTION CRITERIA (IF ANY). C C IBUF - 132 WORD ARRAY FOR USE BY "GET". C IWORD - IBUF(IWORD) IS THE RETURNED RECORD. C IFILE - 11 WORD DESCRIPTION OF DATA SET. C IUFL - (2,20) ARRAY DESCRIBING THE FIELDS. C IFRST - FIRST RECORD NUMBER OF RANGE. C ILAST - LAST RECORD NUMBER OF RANGE. C ICOND - CONDITION MATRIX. C ICL - SELECTION CRITERIA STRING LENGTH. C NREC - RETURNED RECORD NUMBER. 0 => NO RECORD FOUND. C ISTAT - "GET" STATUS FOR LAST RECORD ACCESS. CCC IF (IFIRST.GT.ILAST) GO TO 20 DO 10 NREC=IFRST,ILAST 1 CALL GET (IBUF,IFILE,NREC,ISTAT,IWORD) IF(ISTAT.EQ.2)GO TO 10 IF(ISTAT.NE.0)GO TO 20 IF(ICL.EQ.0)RETURN IC=ISLCT(IBUF ,IWORD,ICOND,ICL,IFILE(9),IUFL,ISTAT) IF(ISTAT.GT.1300)GO TO 20 IF(IC.EQ.1)RETURN 10 CONTINUE 20 NREC=0 RETURN END END$ FTN4,L,M,T FUNCTION ISLCT(IBUF,IWORD,ICOND,ICL,NFL,IUFL,ISTAT) CCC C C I=ISLCT(IBUF,IWORD,ICOND,ICL,NFL,IUFL,ISTAT) C C "ISLCT" TESTS A RECORD AGAINST A SET OF CONDITIONS. C C ISLCT - 1 => RECORD IS TRUE WITH RESPECT TO THE CONDITIONS. C 0 => RECORD IS NOT TRUE. C IBUF - ARRAY CONTAINING RECORD ( IBUF(IWORD) ). C IWORD - POINTER TO RECORD IN IBUF. C ICOND - CONDITION MATRIX. C ICL - SELECTION CRITERIA STRING LENGTH. C NFL - NUMBER OF FIELDS. C IUFL - (2,20) ARRAY DESCRIBING THE FIELDS. C ISTAT - 1300 => COMPARISON COMPLETED. C >1300 => ILLEGAL FIELD NAME IN CONDITION MATRIX. CCC DIMENSION IBUF(1),ICOND(1),ITF(3,6) C TRUE FALSE TABLE DATA ITF/1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1/ ISLCT=1 DO 10 I=1,10 IC=(ICL+4)*(I-1)+1 IF(ISLCT.EQ.0)GO TO 5 ISTAT=1300+I CALL DFLD(NFL,IUFL,ICOND(IC),IBYT,ILTH,ITYP,IS) IF(IS.GT.NFL)RETURN ISTAT=1300 ICH=KCOMP(ICOND(IC+4),1,ICOND(IC+3),IBUF(IWORD),IBYT) IH=0 IF(ICH.LT.0)IH=1 IF(ICH.GT.0)IH=-1 ISLCT=ITF(IH+2,ICOND(IC+1)+3) IF((ISLCT.EQ.1).AND.(ICOND(IC+2).EQ.1))RETURN 5 IF(ICOND(IC+2).EQ.1)ISLCT=1 8 IF(ICOND(IC+2).EQ.2)RETURN 10 CONTINUE ISTAT=1321 RETURN END END$ FTN4,L,M,T SUBROUTINE RGET(IB,IFIL,MF,ML,JC,L,LBYT,LEN,LPOS) DIMENSION IB(132),IFIL(11),L(1),LOPT(5),LTE(8) DATA LOPT/-1,1,-1,-1,1/ DATA LTE/0,3,0,-1,-1,0,0,-1/ CCC C C CALL RGET(IB,IFIL,MF,ML,JC,L,LBYT,LEN,LPOS) C C "RGET" WILL FIND THE RANGE OF RECORDS (MF TO ML) C WHICH MEET THE CONDITION (JC) WITH RESPECT TO THE C COMPARISON DATA (IN L). ASCENDING ORDER ASSUMED. C C IB - 132 WORD BUFFER FOR I/O. C IFIL - 11 WORD DESCRIPTION OF DATASET. C MF - FIRST RECORD MEETING THE CONDITIONS. C 0 => NO RECORDS MEET THE CONDITIONS. C ML - LAST RECORD MEETING THE CONDITIONS. C JC - -2 => RANGE LT COMPARISON DATA. C -1 => " LE " " . C 0 => " EQ " " . C +1 => " GE " " . C +2 => " GT " " . C L - BUFFER CONTAINING THE COMPARISON DATA. C LBYT - BYTE ADDRESS OF FIRST CHARACTER IN L. C LEN - NUMBER OF CHARACTERS TO COMPARE. C LPOS - BYTE ADDRESS OF FIRST CHARACTER IN DATA SET RECORD. CCC IOPT = LOPT(JC + 3) MF = 1 ML = IFIL(8) IF (ML .LT. 1) GO TO 99 C GET LOWER OR UPPER BOUND, AS NECESSARY, THEN BRANCH. LMN = KBIN(IB,IFIL,MF,ML,MR,IOPT,L,LBYT,LEN,LPOS) IF (MR .LE. 0) GO TO 99 IF (JC) 10,30,20 C LT OR LE. 10 I = LMN + 4 + LTE(JC + 3) ML = MR + LTE(I) GO TO 22 C GE OR GT. 20 I = LMN + 4 + LTE(JC) MF = MR + LTE(I) + 1 22 IF (ML .LT. MF) GO TO 99 GO TO 100 C EQ. 30 IF (LMN) 99,31,99 31 MF = MR IF (KBIN(IB,IFIL,MF,ML,ML,1,L,LBYT,LEN,LPOS)) 99,32,99 32 IF (ML .GE. MF) GO TO 100 C EXITS. 99 MF = 0 ML = 0 100 RETURN END END$ N  FTN4,L,A,T FUNCTION KBIN(IB,IFIL,NF,NL,MREC,IOPT,L,LBYT,LEN,LPOS) DIMENSION IB(132),IFIL(11),L(1) CCC C C I=KBIN(IB,IFIL,NF,NL,MREC,IOPT,L,LBYT,LEN,LPOS) C C "KBIN" WILL SEARCH FOR THE LOWER (OR UPPER) BOUND OF A RANGE OF C RECORDS EQUAL TO COMPARISON DATA. ASCENDING ORDER IS ASSUMED. C C IB - 132 WORD BUFFER FOR I/O. C IFIL - 11 WORD DESCRIPTION OF DATA SET. C NF - FIRST RECORD OF RANGE TO BE SEARCHED. C NL - LAST RECORD OF RANGE TO BE SEARCHED. C MREC - RECORD NUMBER RETURNED. 0 => BOUNDS OR READ CODE ERROR. C IOPT - -1 => SEARCH FOR LOWER BOUND. C +1 => SEARCH FOR UPPER BOUND. C L - BUFFER CONTAINING COMPARISON DATA. C LBYT - ADDRESS OF 1ST BYTE OF COMPARISON DATA. C LEN - NUMBER OF BYTES TO COMPARE. C LPOS - ADDRESS OF 1ST BYTE FOR COMPARISON IN DATA SET RECORD. C C KBIN - -1 => MREC = FIRST RECORD < COMPARISON DATA. C 0 => MREC = FIRST OR LAST EQUAL RECORD (SEE IOPT). C +1 => MREC = FIRST RECORD > COMPARISON DATA. CCC IF (NL .GT. IFIL(8)) GO TO 99 IF (NL .LT. NF) GO TO 99 IF (NF .LT. 1) GO TO 99 KF = NF JMID = NL CCC BEGIN SEARCH. 10 KL = JMID 11 IF ((KL-KF) .LT. 2) GO TO 50 JMID = KF + (KL-KF)/2 KMID = JMID I = -1 12 CALL GET(IB,IFIL,JMID,IS,IW) IF (IS) 99,20,15 C DELETED RECORD. 15 JMID = JMID + I IF (JMID .EQ. KL) GO TO 50 IF (JMID .GT. KF) GO TO 12 JMID = KMID I = 1 GO TO 15 C COMPARE AND CHANGE RANGE. BRANCHING IS AS FOLLOWS : C JMID RECORD IS GREATER-10, EQUAL-21, LESS-23. 20 IF (KCOMP(L,LBYT,LEN,IB(IW),LPOS)) 10,21,23 21 IF (IOPT) 10,23 23 KF = JMID GO TO 11 CCC CHECK FIRST OF LAST TWO RECORDS. 50 MREC = KF CALL GET(IB,IFIL,MREC,IS,IW) IF (IS) 99,52,60 52 KBIN = -KCOMP(L,LBYT,LEN,IB(IW),LPOS) IF (KBIN) 60,55,100 55 IF (IOPT) 100,60 CCC CHECK THE LAST RECORD. 60   MREC = KL CALL GET(IB,IFIL,MREC,IS,IW) IF (IS) 99,62,99 62 JBIN = KBIN KBIN = -KCOMP(L,LBYT,LEN,IB(IW),LPOS) IF (KBIN) 100,100,65 65 IF (JBIN .NE. 0) GO TO 100 MREC = KF KBIN = 0 GO TO 100 CCC EXITS. 99 MREC = 0 100 RETURN END END$ 3I FTN4,L,A,T SUBROUTINE HENT(IC,IREC,KB,KBYT,KLTH,ISTAT,IFILE,IB) DIMENSION KB(1),IFILE(11),IB(132) C C CALL HENT(IC,IREC,KB,KBYT,KLTH,ISTAT,IFILE,IB) C C "HENT" PUTS AN ENTRY INTO A HASH DATA SET. C C IC = U => UPDATE DEFINITION SECTOR (USE FOR LAST ENTRY). C IREC - MASTER RECORD NUMBER. C KB - BUFFER CONTAINING KEYFIELD. C KBYT - STARTING BYTE OF KEYFIELD. C KLTH - KEYFIELD LENGTH. C ISTAT - -2 => READ CODE ERROR. C -1 => OVERFLOW AREA FULL. C >=0 => NUMBER OF SYNONYMS FOR THIS HASH CODE. C IFILE - 11 WORD DESCRIPTION OF HASH DATA SET (SEE "HFILE"). C IB - 132 WORD TRANSFER BUFFER. C CALL HASH(KB,KBYT,KLTH,IFILE(9),KODE) KN = -KODE ISYN = 0 IBS = IFILE(5)/2 CCC GET A BUCKET. 10 KK = -KN CALL GET(IB,IFILE,KK,ISTAT,IWORD) IF (ISTAT .LT. 0) RETURN CCC CHECK ENTRIES IN BUCKET. DO 40 I=1,IBS KAD = IWORD + I - 1 KN = IB(KAD) IF (KN) 10,20,30 C ZERO ENTRY CASE. 20 IB(KAD) = IREC 21 CALL PUT(IB(IWORD),IB,IFILE,KK,1,ISTAT) IF (ISTAT .LT. 0) RETURN ISTAT = ISYN IF (IC .EQ. 2HU ) CALL DIO(0,IFILE,IB) RETURN C POSITIVE ENTRY CASE. 30 ISYN = ISYN + 1 IF (I .LT. IBS) GO TO 40 ISAV = IB(KAD) IB(KAD) = -IFILE(8) CALL PUT(IB(IWORD),IB,IFILE,KK,1,ISTAT) KK = IFILE(8) CALL GET(IB,IFILE,KK,ISTAT,IWORD) IF (ISTAT .LT. 0) RETURN IB(IWORD) = ISAV IB(IWORD+1) = IREC IFILE(8) = IFILE(8) + 1 GO TO 21 40 CONTINUE END END$ FTN4,L,A,T SUBROUTINE HGET(ICOM,KEY,IFN,IFLS,IFM,IFH,IB1,IB2,KWRD,IST) DIMENSION KEY(1),IFLS(2,20),IFM(11),IFH(11),IB1(132),IB2(132) C C CALL HGET(ICOM,KEY,IFN,IFLS,IFM,IFH,IB1,IB2,KWRD,IST) C C "HGET" RETURNS A RECORD WHOSE "IFN" CONTENTS EQUALS C THE CONTENTS OF "KEY". C IF ICOM = B THE SEARCH BEGINS AT THE START OF C THE SYNONYM CHAIN. C IF ICOM = C THE SEARCH CONTINUES FROM THE RECORD C NUMBER IN "IST". C C ICOM - = B => SEARCH FROM BEGINNING OF CHAIN. C = C => SEARCH FROM RECORD NO. IN IST. C KEY - KEYFIELD DATA FOR HASH AND COMPARISON. C IFN - KEYFIELD NAME WITHIN RECORD. C IFLS - SHORT FORM DESCRIPTION OF FIELDS. C IFM - 11 WORD DESCRIPTION OF MASTER DATA SET. C IFH - 11 WORD DESCRIPTION OF HASH DATA SET. C IB1 - 132 WORD BUFFER FOR HASH I/O. C IB2 - 132 WORD BUFFER FOR DATA I/O. C KWRD - IB2(KWRD) IS THE START OF THE RETURNED RECORD. C IST - -3 => BAD FIELD NAME. C -2 => BAD READ CODE. C -1 => ILLEGAL RECORD NUMBER. C 0 => NO RECORD WITH THIS KEYFIELD. C >0 => RECORD NUMBER OF RETURNED RECORD. IC = ICOM KRS = IST CALL DFLD(IFM(9),IFLS,IFN,KB,KL,KT,JJ) IST = -3 IF (JJ .GT. IFM(9)) GO TO 60 CALL HASH(KEY,1,KL,IFH(9),KODE) CCC READY TO SEARCH DOWN THE SYNONYM CHAIN. 10 CALL GET(IB1,IFH,KODE,IST,IWRD) IF (IST .LT. 0) GO TO 60 DO 30 I=1,IFH(5)/2 IST = IB1(IWRD+I-1) KODE = -IST IF (IST) 10,60,15 C CHECK IF COMMAND = CONTINUE. 15 IF (IC .EQ. 2HB ) GO TO 20 IF (IST .EQ. KRS) IC = 2HB GO TO 30 C GET RECORD & COMPARE KEYFIELD. 20 CALL GET(IB2,IFM,-KODE,IST,KWRD) IF (IST .LT. 0) GO TO 60 IST = -KODE IF (KCOMP(KEY,1,KL,IB2(KWRD),KB) .EQ. 0) GO TO 60 30 CONTINUE IST = 0 CCC EXIT. 60 RETURN END END$ Z  FTN4,L,A,T SUBROUTINE HASH(IBUF,IBYT,ILTH,IMOD,KODE) DIMENSION IBUF(1) C C CALL HASH(IBUF,IBYT,ILTH,IMOD,KODE) C C THIS ROUTINE TRANSFORMS A FIELD OF DATA INTO C A PSEUDO-RANDOM RELATIVE ADDRESS. C C IBUF - BUFFER CONTAINING DATA FIELD. C IBYT - BYTE ADDRESS OF START OF DATA FIELD (1 TO N). C ILTH - LENGTH OF DATA FIELD IN BYTES. C IMOD - SIZE OF RELATIVE ADDRESS RANGE. C KODE - PSEUDO-RANDOM RELATIVE ADDRESS (1 TO IMOD). C KODE = 0 DO 10 I=1,ILTH J = 0 CALL BMOVE(J,2,1,IBUF,IBYT+I-1,1) 10 CALL XORA(KODE,J) KODE = IABS(KODE) KODE = 1 + MOD(KODE,IMOD) RETURN END END$ ASMB,R,L,C NAM XORA,7 EXT .ENTR ENT XORA * * CALL XORA(KODE,J) * * THIS ROUTINE IS PART OF THE HASH ALGORITHM. * * KODE IS ROTATED LEFT 11 BITS. * RESULT IS XOR'ED WITH J. * RESULT IS STORED IN KODE, J IS UNALTERED. * KODE BSS 1 J BSS 1 XORA BSS 1 JSB .ENTR DEF KODE LDA KODE,I ALF,ALF ALF,RAR XOR J,I STA KODE,I JMP XORA,I END ASMB,R,L,C HED ** STRING ARITHMETIC ROUTINES - ** NAM STLIB,7 ENT IADD,ISUB,IMULT ENT GETCR,OUTCR EXT .ENTR,ERR0,EXEC SUP SPC 1 * PERFORMS STRING ADDITION OR SUBTRACTION ON ASCII * STRINGS. THE RESULT STRING MUST BE LESS THAN 64 CHARACTERS. * PERFORMS X=X+Y, AND PERFORMS X=X-Y. * X AND Y MAY BE SIGNED OR UNSIGNED, FIXED POINT OR REAL * NUMBERS. A LEADING "+" OR SPACE, OR A DIGIT IMPLIES A * POSITIVE STRING NUMBER; A LEADING "-" IMPLIES NEGATIVE. * THE RESULT REPLACES X-STRING, AND Y-STRING IS UNCHANGED. SPC 1 * LEADING, TRAILING, AND INTERSPERSED NON-NUMERIC CHARACTERS * ARE IGNORED. IF MORE THAN ONE DECIMAL POINT APPEARS IN A * STRING, ONLY THE LEFTMOST IS PROCESSED, AND THE REMAINDER * ARE IGNORED. THIS IMPLIES THAT NUMBERS SUCH AS: SPC 1 * $1,247.50 1,567,801 ..1 (=.1) AND 1 2 . 5 (=12.5) SPC 1 * CAN BE PROCESSED WITHOUT ERRORS. SPC 1 * CALLING SEQUENCES FOR AND : SPC 1 * JSB IADD[ISUB] IADD=ADDITION, ISUB=SUBTRACTION * DEF *+7 RETURN ADDRESS * DEF X ADDRESS OF X=STRING * DEF XOF ADDRESS OF X=STRING OFFSET * DEF XLEN ADDRESS OF X-STRING LENGTH(CHARS) * DEF Y ADDRESS OF Y-STRING * DEF YOF ADDRESS OF Y-STRING OFFSET(CHARS) * DEF YLEN ADDRESS OF Y=STRING LENGTH(CHARS) * STA ILRES POST RESULT STRING LENGTH(CHARS) SPC 1 * FORTRAN CALLING SEQUENCE (ILRES=LENGTH OF RESULT STRING): SPC 1 * ILRES=IADD(IX,IXOF,IXLEN,IY,IYOF,IYLEN) OR, * ILRES=ISUB(IX, ETC. ) SPC 1 * FLOATING POINT STRING ADDITION ROUTINE: SPC 1 XAA BSS 6 PARAMETER ADDRESS SAVE AREA SPC 1 IADD NOP ENTRY/EXIT POINT JSB .ENTR PASS PARAMETER ADDRESSES DEF XAA LDB *-1 PASS POINTER TO PARAMEVTER JSB INIT ADDRESS SAVE AREA AND GO BSS 0 COMPUTE PSEUDO ADDRESSES. JSB POINT EXTRACT THE SIGNS AND DECIMAL BSS 0 POINT DISPLACEMENTS FOR BSS 0 X- AND Y-STRINGS. JSB ALIGN ALIGN THE DECIMAL POINTS LDA X+.SGN. CPA Y+.SGN. DO ARGUMENTS HAVE LIKE SIGNS? JMP ADD2 YES - NORMAL ADD OPERATION STA Y+.SGN. NO - SET SIGN OF Y EQUAL TO SIGN LDA IADD OF X AND GO SUBTRACT. RESET STA ISUB RETURN ADDRESS TO SUBTRACT. JMP SUB1 USE SUBTRACT ROUTINE SPC 1 ADD2 STA SIGN POST SIGN OF RESULT (SGN(X)) JSB GEN1 SET UP POINTERS AND COUNTS LDA LOOP CHECK FOR ADDITION OF SZA,RSS TWO BLANK FIELDS. JMP IADD,I EXIT - NO OPERATION. SPC 1 * FORM THE SUM OF CORRESPONDING X- AND Y-STRING CHARACTERS IN * AN INTERMEDIATE DECIMAL ARRAY 'Z'. PAD X- AND Y-STRING * WITH ZEROS SO AS TO ALIGN THE DECIMAL POINTS. SPC 1 LDA CLAI SET PRE-PADDING SWITCHES 'ON' STA ADD3 STA ADD6 DLD JSBI1 SET POST-PADDING SWITCHES 'OFF' STA ADD4+1 STB ADD7+1 SPC 1 ADD3 JMP ADD4 PRE-PAD X-STRING AS REQUIRED TO BSS 0 ALIGN IT WITH Y-STRING. THIS BSS 0 IS INHTIALLY A 'CLA' INSTR. ISZ XPAD ANY MORE NEEDED ? JMP ADD5 YES - SKIP X-CHARACTER FETCH LDA JMPI1 NO - SET A SWITCH TO SKIP PADDING STA ADD3 FROM NOW ON. OVERLAY 'CLA'. SPC 1 ADD4 LDA XLOC FETCH X-STRING CHARACTER JSB GETCR IF AT END OF STRING, PAD ON JSB GEN3 RIGHT UNTIL Y-STRING EXHAUSTED. JSB NUMCK GO VERIFY THE DIGIT JMP ADD4 IF POINT OR SIGN, FETCH AGAIN ADD5 STA TEMP SAVE GOOD AUGEND DIGIT SPC 1 ADD6 JMP ADD7 PRE-PAD Y-STRING ('CLA' INITIALLY) ISZ YPAD ANY MODE NEEDED ? JMP ADD8 YES - SKIP DIG5IT FETCH LDA JMPI2 NO - SET SWITCH TO SKIP ANY STA ADD6 FURTHER PADDING. SPC 1 ADD7 LDA YLOC FETCH ADDEND DIGIT JSB GETCR JSB GEN3 IF END OF STRING, PAD RIGHT JSB NUMCK VERIFY THE DIGIT JMP ADD7 IF SIGN OR POINT, FETCH AGAIN SPC 1 ADD8 ADA TEMP FORM THE SUM DIGIT IN (A) STA SUM,I AND POST IT IN INTERMEDIATE ISZ SUM DECIMAL ARRAY. BUMP PNTR. ISZ LOOP FINISHED ? JMP ADD3 NO - GET NEXT PAIR AND ADD SPC 1 * PERFORM CARRY PROPAGATION IN THE INTERMEDIATE DECIMAL * ARRAY. IF Z(I)>10, THEN Z(I)=Z(I)-10 AND Z(I+1)= * Z(I+1)+1 FOR I=1 TO LGTH. SPC 1 JSB GEN2 SET UP POINTERS AND COUNTS ADD9 LDA SUM,I GET PREVIOUS SUM(I) ADA CARRY ADD CARRY(I-1) LDB =D-10 ADB A (B)=SUM(I)+CARRY(I-1)-10 SSB,RSS RESULT <0 ? JMP ADD11 NO - WE MUST PROPAGATE A CARRY STA SUM,I YES - SUM DOES NOT EXCEED 10 CLA SPC 1 ADD10 STA CARRY SET CARRY(I)=0 CCA ADA SUM ADJUST DECIMAL ARRAY POINTER STA SUM TO NEXT DIGIT POSITION. ISZ LOOP FINISHED ? JMP ADD9 NO - CONTINUE LDA CARRY YES - POST CARRY(L+1) STA Z JMP ADD12 SPC 1 ADD11 STB SUM,I SUM(I)=SUM(I)+CARRY(I-1)-10 CLA,INA JMP ADD10 CARRY(I)=1 SPC 1 * CONVERT INTERMEDIATE DECIMAL ARRAY 'Z' TO ASCII AND GO * PLACE THE DECIMAL POINT: SPC 1 ADD12 LDA SIGN GO POST SIGN OF RESULT IN X JSB OUTSN LDA ZARA RESET DECIMAL ARRAY POINTERS STA ADD13 LDB Z LDA XAA+2,I CMA,INA INA ADA LGTH SSA JMP ADX CLB LDA XAA+2,I CMA,INA CMA,RSS ADX LDA LGTH GET LGTH IN A. SZB DID A FINAL CARRY OCCUR ? INA,RSS YES. INCREMENT LENGTH. ISZ ADD13 N NO: Z=Z+1 LDB DISPL JSB PLACE ADD13 DEF Z JMP IADD,I RETURN HED ** STRING ARITHMETIC ROUTINES - ** XAS BSS 6 PARAMETER ADDRESS SAVE AREA SPC 1 ISUB NOP ENTRY/EXIT POINT JSB .ENTR PASS PARAMETER ADDRESSS DEF XAS LDB *-1 PASS POINTER TO PARAMETER SAVE JSB INIT AREA AND COMPUTE PSEUDO ADDR. JSB POINT EXTRACT SIGNS AND DECIMAL PNTS. JSB ALIGN GO ALIGN THE POINTS DLD PAD DST XPAD MOVE POINTERS TO LOCAL LDA X+.PNT. LDB Y+.PNT. JSB IMAX DISPL=(PX MAX PY) STA DISPL LDA X+.SGN. CPA Y+.SGN. DO ARGUMENTS HAVE LIKE SIGNS ? JMP SUB1 YES - NORMAL SUBTRACT STA Y+.SGN. NO - SET SGN(Y)=SGN(X) AND GO LDB ISUB DO ADD INSTEAD. RESET STB IADD RETURN ADDRESS. JMP ADD2 SPC 1 * SUBTRACT X-STRING AND Y-STRING CHARACTERS, FORMING A DIFFER- * ENCE IN THE INTERMEDIATE ARRAY 'Z'. PRE-PAD AND POST-PAD * BOTH X AND Y SO AS TO ALIGN THEIR DECIMAL POINTS. SPC 1 SUB1 STA SIGN POST SIGN OF RESULT STRING JSB GEN1 SET UP POINTERS AND COUNTS LDA LOOP CHECK FOR SUBTRACTION OF SZA,RSS TWO BLANK FIELDS. JMP ISUB,I EXIT - NO OPERATION. DLD JSBI3 SET POST-PADDING SWITCHES 'OFF' STA SUB3+1 STB SUB6+1 LDA CLAI SET PRE-PADDING SWITCHES 'ON' STA SUB2 STA SUB5 SPC 1 * PERFORM THE SUBTRACT OPERATION: SPC 1 SUB2 JMP SUB3 PRE-PAD X-STRING AS REQUIRED FOR BSS 0 ALIGNMENT (INITIALLY 'CLA') ISZ XPAD ANY MORE PADDING NEEDED ? JMP SUB4 YES - BYPASS CHARACTER FETCH LDA JMPI3 NO - SET SWITCH TO DISCONTINUE STA SUB2 PADDING FROM NOW ON. SPC 1 SUB3 LDA XLOC FETCH X-STRING CHARACTER JSB GETCR JSB GEN3 IF NULL, PAD WITH ZEROS JSB NUMCK VERIFY THE DIGIT JMP SUB3 IF POINT OR SIGN, FETCH AGAIN SUB4 STA TEMP SAVE THE CHARACTER SPC 1 SUB5 JMP SUB6 PAD Y-STRING ('CLA' INITIALLY) ISZ YPAD ANY MORE NEEDED ? JMP SUB7 YES - SKIP CHARACTER FETCH LDA JMPI4 NO - SET A SWITCH TO STA SUB5 SKIP PADDING NEXT TIME. SPC 1 SUB6 LDA YLOC GO FETCH Y-STRING DIGIT JSB GETCR JSB GEN3 IF NULL, POST-PAD WITH ZERO JSB NUMCK VERIFY DIGIT JMP SUB6 IF POINT OR SIGN, FETCH AGAIN CMA,INA FORM -Y(I) SPC 1 SUB7 ADA TEMP FORM X(I)-Y(I) STA DIFF,I POST DIFFERENCE ISZ DIFF BUMP POINTER ISZ LOOP FINISHED ? JMP SUB2 NO - CONTINUE SPC 1 * PERFORM BORROW PROPAGATION IN DECIMAL ARRAY 'Z': IF Z(I)<0 * THEN Z(I)=Z(I)+10, AND Z(I+1)=Z(I+1)-1. SPC 1 JSB GEN2 SET UP POINTERS AND COUNTS SPC 1 SUB8 LDA DIFF,I GET Z(I) ADA BORRO FORM Z(I)-BORROW(I-1) SSA RESULT<0? JMP SUB10 YES - PROPAGATE THE BORROW STA DIFF,I NO - NO BORROW CLA SPC 1 SUB9 STA BORRO POST NEXT BORROW CCA ADA DIFF ADJUST Z-POINTER TO NEXT STA DIFF DIGIT IN STRING. ISZ LOOP FINISHED ? JMP SUB8 NO - CONTINUE JMP SUB11 SPC 1 SUB10 ADA =D10 ADD 10 TO DIFFERENCE STA DIFF,I AND POST D(I). CCA BORROW(I)=-1 JMP SUB9 SPC 1 SUB11 LDA X+.SGN. GET SIGN OF X LDB BORRO DID A FINAL BORROW OCCUR ? SZB JMP SUB12 YES - WE MUST COMPLEMENT JSB OUTSN NO - SGN(RESULT)=SGN(X) SPC 1 SUBEX LDA LGTH GO CONVERT TO ASCII AND LDB DISPL PLACE DECIMAL POINT. JSB PLACE DEF Z+1 JMP ISUB,I RETURN SPC 1 * A BORROW OCCURRED OUT OF Z(1) - WE MUST TAKE THE TENS * COMPLEMENT OF 'THE RESULT AND COMPLEMENT THE SIGN OF X * AS THE SIGN OF THE RESULT STRING. SPC 1 SUB12 CMA COMPLEMENT SGN(X) STA TEMP JSB GEN2 GO RESET POINTERS DLD X RESET LOCAL STRING POINTERS DST XLOC,I FROM COMMON COPY. DLD Y DST YLOC,I LDA TEMP GET SIGN OF RESULT JSB OUTSN AND POST IT. SPC 1 SUB13 LDA DIFF,I GET DIFFERENCE DIGIT CMA,INA SUBTRACT FROM 10 ADA BORRO ADD IN BORROW(I-1) SSA RESULT<0 ? JMP SUB15 YES - PROPAGATE STA DIFF,I NO - POST DIFFERENCE CLA SET NEXT BORROW TO 0 SPC 1 SUB14 STA BORRO POST NEXT BORROW CCA ADA DIFF ADJUST POINTER TO NEXT DIFIT STA DIFF ISZ LOOP FINISHED ? JMP SUB13 NO - CONTINUE JMP SUBEX YES - EXIT NORMALLY SPC 1 SUB15 ADA =D10 ADD 10 TO DIFFERENCE STA DIFF,I CCA AND SET NEXT BORROW =-1 JMP SUB14 SPC 1 SKP * GENERAL PURPOSE SUBROUTINES USED IN AND : SPC 1 GEN1 NOP GENERAL SUBR. #1 LDA ZARA INA STA SUM SET UP SUM/DIFF POINTER IN Z LDA LGTH CMA,INA STA LOOP SET UP LOOP COUNTER DLD X DST XLOC,I RESET LOCAL POINTER - X DLD Y DST YLOC,I AND Y. JMP GEN1,I RETURN SPC 1 GEN2 NOP GENERAL SUBR. #2 LDA ZARA ADA LGTH STA SUM POINT TO Z(1) LDA LGTH CMA,INA STA LOOP SET UP LOOP COUNTER CLA STA CARRY SET CARRY/BORROW = 0 JMP GEN2,I RETURN SPC 1 GEN3 NOP GENERAL SUBROUTINE #3 LDA GEN3 GET ADDRESS OF 'JSB OUTCR' ADA DM2 INSTRUCTION PRECEEDING. LDB PADON GET POST-PAD 'ON' SWITCH STB A,I TURN ON POST-PADDING PADON CLA,RSS EXECUTE THE SWITCH DM2 DEqC -2 ADA =B60 RETURN ASCII "0" JMP GEN3,I RETURN HED ** STRING ARITHMETIC ROUTINES - ** * FORMS THE PRODUCT OF X-STRING AND Y=STRING, X=X*Y, * WHERE X AND Y MAY BE SIGNED OR UNSIGNED, FIXED POINT OR * FLOATING POINT STRINGS. IF THE LENGTH OF THE RESULT STRING * (X) EXCEEDS 64 CHARACTERS, THE MESSAGE "22 OV" IS PRINTED * AND THE CALLING USER MAIN PROGRAM IS TERMINATED. SPC 1 * CALLING SEQUENCE - FORTRAN: SPC 1 * ILRES=IMULT(IX,IXOF,IXLNE,IY,IYOF,IYLEN) SPC 1 * IX/IY = X-STRING/Y-STRING ADDRESSES * IXOF/IYOF = X-STRING/Y-STRING OFFSETS, IN CHARACTERS. * IXLEN/IYLEN = X-STRING/Y-STRING LENGTHS, IN CHARACTERS. SPC 1 * CALLING SEQUENCE - ASSEMBLER: SPC 1 * EXT IMULT * JSB IMULT * DEF *+7 RETURN ADDRESS * DEF IX X-STRING ADDRESS * DEF IXOF X-STRING OFFSET (CHARS) * DEF IXLEN X-STRING LENGTH (CHARS) * DEF IY Y-STRING ADDRESS * DEF IYOF Y-STRING OFFSET (CHARS) * DEF IYLEN Y-STRING LENGTH (CHARS) * STA ILRES POST LENGTH OF RESULT STRING(CHARS) SPC 1 PARAM BSS 6 PARAMETER ADDRESS SAVE AREA SPC 1 IMULT NOP ENTRY/EXIT POINT JSB .ENTR PASS PARAMETER ADDRESSES DEF PARAM LDB *-1 GO COMPUTE PSEUDO ADDRESSES AND JSB INIT STORE THEM IN COMMON STORAGE. JSB POINT GO EXTRACT SIGNS AND DECIMAL BSS 0 POINTS FOR X AND Y STRINGS. LDA X+?PNT ADA Y+?PNT STA DISPL POINT DISPL=P(X)+P(Y) LDA X+?LEN ADA Y+?LEN CMA,INA FORM LGTH(X)+LGTH(Y)+2 ADA DM2 LDB LCOR+?X ADB LCOR+?Y FORM LCOR(X)+LCOR(Y) IN (B) CMB,INB ADB A FORM CORRECTED RESULT STRING STB LGTH AND POST IN COMMON AREA. ADB MSIZE CHECK FOR RESULT STRING O'FLOW SSB,RSS LGTH >64 CHARACTERS ? JMP ERROR YES - GO PRINT ERROR ME@SG. CCA ASSUME SIGN IS "-" LDB X+?SGN GET SIGN OF X-STRING CPB Y+?SGN SAME AS SIGN OF Y=STRING ? CLA YES - LIKE SIGNS - "+" STA SIGN NO - UNLIKE SIGNS - "-" DLD X+?LEN MOVE X-STRING AND Y-STRING DST XLOC,I PSUEDO ADDRESS/LGTH TO DLD Y+?LEN LOCAL STORAGE AREA. DST YLOC,I LDA LGTH CMA,SZA,RSS JMP IMULT,I BSS 0 ZERO THE INTERMEDIATE DECIMAL LDB ZARA ARRAY TO HOLD PARTIAL STA LOOP PRODUCTS DURING MULTIPLY. CLA SPC 1 MULT1 STA B,I ZERO ONE WORD IN "Z" INB ISZ LOOP FINISHED ? JMP MULT1 NO - CONTINUE STA XLOOP SET XLOOP COUNT TO 0 SPC 1 * PERFORM MULTIPLICATION BY ACCUMULATING PARTIAL PRODUCTS * IN THE INTERMEDIATE DECIMAL ARRAY "Z". SPC 1 MULT2 LDA XLOC FETCH X-STRING CHARACTER JSB GETCR JMP MULT5 END OF STRING JSB NUMCK VERIFY THE DIGIT JMP MULT2 IF POINT OR SIGN, FETCH AGAIN STA XVAL SAVE MULTIPLIER DIGIT CLA STA YLOOP SET MULTIPLICAND INDEX TO 0 SPC 1 MULT3 LDA YLOC INNER LOOP - FETCH Y-STRING JSB GETCR CHARACTER (MULTIPLICAND). JMP MULT4 END OF Y-STRING JSB NUMCK IF SIGN OR DECIMAL POINT, JMP MULT3 RE-FETCH, OTHERWISE CONVERT MPY XVAL FORM A PARTIAL PRODUCT IN (A) LDB ZARA COMPUTE A POINTER TO PREVIOUS ADB XLOOP ADB YLOOP PARTIAL PRODUCT. INB ADA B,I ADD THIS ONE TO PREVIOUS STA B,I PARTIAL PRODUCT AND STORE BACK. ISZ YLOOP BUMP Y-STRING INDEX JMP MULT3 CONTINUE UNTIL END OF STRING SPC 1 MULT4 DLD Y+?LEN RESET Y-STRING POINTS DST YLOC,I ISZ XLOOP BUMP X-STRING INDEX JMP MULT2 DO OUTER LOOP AGAIN SPC 1 * THE PRODUCT NOW EXISTS IN THE INTERMEDIATE ARRAY "Z". +S * PERFORM CARRAY PROPAGATION IN ARRAY "Z". SPC 1 MULT5 LDA ZARA POINT TO LEAST SIGNIFICANT ADA LGTH DIGIT IN ARRAY "Z". STA SUM LDA LGTH CMA,INA STA LOOP LOOP COUNTER - LGTH OF "Z" CLA STA CARRY INITIAL CARRY = 0 SPC 1 MULTC LDB SUM,I GET PREVIOUS SUM ADB CARRY ADD IN NEXT CARRY STB TEMP SAVE ADB =D-10 SSB GREATER THAN 10 ? JMP MULT7 NO - NO CARRY GENERATED LDA TEMP YES - WE MUST PROPAGATE CLB A CARRY. DIV =D10 SPC 1 MULT6 STB SUM,I PREVIOUS SUM = REMAINDER STA CARRY QUOTIENT = NEXT CARRY CCA ADA SUM ADJUST "Z" POINTER STA SUM ISZ LOOP FINISHED ? JMP MULTC NO - CONTINUE JMP MULT8 YES SPC 1 MULT7 LDB TEMP SUM=SUM+CARRY (<10) CLA JMP MULT6 SPC 1 * CONVERT INTERMEDIATE ARRAY "Z" TO ASCII AND PLACE THE * DECIMAL POINT: SPC 1 MULT8 LDA CARRY POST LAST CARRY IN Z STA Z CCA ADA LGTH ADJUST THE LENGTH STA LGTH LDA IMULT PICK UP CALLING PROGRAM ADDRESS AND STA IADD RETURN VIA ADD ROUTINE JMP ADD12 GO CONVERT TO ASCII SPC 1 ERROR LDA =A22 LDB =AOV JSB ERR0 "XXXXX: 22 OV" JMP EXIT TERMINATE PROGRAM HED ** COMPUTE (A MAX B) - ** * COMPUTES THE MAXIMUM OF TWO INTEGERS IN (A) AND (B) * AND RETURNS THE LARGEST NUMBER (ARITHMETICALLY) IN (A). SPC 1 IMAX NOP ENTRY/EXIT STB SAVE SAVE (B) CMB,INB FORM -(B) ADB A FORM (A)-(B) SSB IS (A) LARGER ? LDA SAVE NO: RETURN (B) IN (A) JMP IMAX,I YES: RETURN (A) IN (A) HED ** OUTPUT RESULT SIGN ROUTINE ** * POSTS THE SIGN OF THE RESULT IN THE RESULT STRING X$. * ENTER WITH SIGN IN (A) - -1=NEeGATIVE, 0=POSITIVE. SPC 1 OUTSN NOP ENTRY/EXIT LDB =B40 ASSUME PLUS SIGN (BLANK) SZA POSITIVE ? LDB =B55 NO - LOAD MINUS (-) SIGN LDA XADDR GET ADDRESS OF RESULT STRING JSB OUTCR AND GO POST THE SIGN. JMP OUTSN,I RETURN HED ** EXTRACT THE SIGN OF A STRING OPERAND <%SIGN> ** * <%SIGN> EXTRACTS THE SIGN OF A STRING WHOSE POINTER IS IN (A). * THE SIGN , IF FOUND, IS RETURNED IN (A): -1 FOR NEGATIVE, * AND 0 FOR POSITIVE. IF STRING IS UNSIGNED, POSITIVE IS * ASSUMED (A=0). IF THE STRING IS SIGNED, E=1 ON RETURN. SPC 1 %SIGN NOP ENTRY/EXIT STA SAVE3 SAVE POINTER SPC 1 %SIN1 LDA SAVE3 GET POINTER JSB GETCR GO FETCH FIRST CHARACTER JMP %SIN2 BLANK FIELD - UNSIGNED (+) CPA =B40 BLANK ? JMP %SIN1 YES - LOOP CPA =B53 PLUS SIGN ? JMP %SGNP YES - POSITIVE CPA =B55 MINUS (-) ? JMP %SGNM YES - NEGATIVE %SIN2 CLA,CLE NONE OF THE ABOVE - (+) JMP %SIGN,I RETURN (A)=(E)=0 SPC 1 %SGNP CLA,CCE,RSS POSITIVE: (A)=0, (E)=1 %SGNM CCA,CCE NEGATIVE: (A)=-1, (E)=1 JMP %SIGN,I SPC 1 SPC 1 HED ** PLACE DECIMAL POINT ROUTINE - ** * CONVERTS THE INTERMEDIATE DECIMAL ARRAY TO ASCII AND * PLACES THE DECIMAL POINT AT THE PROPER POSITION IN THE STRING. * ENTER WITH THE LENGTH OF THE ARRAY IN (A), AND THE POINT * DISPLACEMENT IN (B). CALLING SEQUENCE: * * LDA * LDB * JSB PLACE * DEF DARRY (THE ADDRESS OF THE DECIMAL ARRAY) * PLACE NOP ENTRY/EXIT STA SAVE1 SAVE THE LENGTH CMA,INA -L STA LENTH POST -LGTH OF DEC. ARRAY LDA SUPON TURN ON ZERO SUPPRESSION STA PLAC5+1 SWITCH (LEADING ZEROS ONLY). LDA PLACE,I GET ADR. OF DECIMAL ARRAY ISZ PLACE AND ADJUST RETURN ADDRESS.  STA ZPNT SAVE LOCALLY STB PNT SAVE POINT DISPLACEMNT CPB SAVE1 LGTH=POINT DISPLACEMENT ? JMP PLAC2 YES CMB,INB ADB SAVE1 FORM L-P SSB,RSS L>P ? JMP PLAC4 YES STB LOOP LOOP COUNT = L-P (NEGATIVE) LDA XADDR GET ADDRESS OF DEST. STRING LDB =B56 JSB OUTCR OUTPUT A DECIMAL POINT SPC 1 PLAC1 LDA XADDR OUTPUT P-L ASCII ZEROS, THUS LDB LOOP PADDING ON THE LEFT. JSB ZERO LDA LOOP CMA,INA INA COUNT=1+P-L JMP PLAC3 SPC 1 PLAC2 LDA XADDR OUTPUT A POINT LDB =B56 JSB OUTCR CLA,INA COUNT=1 SPC 1 PLAC3 STA COUNT POST THE COUNT (1 OR 1+P-L) LDB ZPNT,I GET A DECIMAL DIGIT ADB =B60 AND CONVERT TO ASCII. LDA XADDR GET ADDRESS OF DEST. STRING JSB OUTCR AND MOVE THE CHARACTER. ISZ ZPNT BUMP SOURCE POINTER ISZ COUNT UPDATE CHARACTER COUNT ISZ LENTH DECIMAL ARRAY EXHAUSTED ? JMP PLAC3+1 NO LDA COUNT YES - RETURN COUNT IN (A) INA ACCOUNT FOR THE SIGN JMP PLACE,I RETURN SPC 1 PLAC4 CMB,INB STB LOOP LOOP=L-P CLA STA COUNT COUNT=0 STA CHOUT SET "NO CHARS OUT" SWITCH SPC 1 PLAC5 LDB ZPNT,I GET A CHARACTER SZB,RSS ZERO ? JMP PLAC6 YES - SUPPRESS IT ADB =B60 NO - CONVERT TO ASCII LDA XADDR JSB OUTCR OUTPUT THE CHARACTER ISZ COUNT ADJUST CHARACTER COUNT LDA SUPOF TURN OFF ZERO SUPPRESSION AFTER STA PLAC5+1 FINDING ONE NON-ZERO CHAR. ISZ CHOUT POST "AT LEAST ONE CHAR OUT" SPC 1 PLAC6 ISZ ZPNT ADJUST SOURCE POINTER ISZ LOOP FINISHED ? JMP PLAC5 NO - CONTINUE LDA PSTAT GET X/Y POINT STATUS WORD RAL,CLE,ERA SEZ,SLA,RSS qNO POINT IN EITHER STRING ? JMP PLAC8 YES - EXIT IMMEDIATELU LDA XADDR YES - OUTPUT A POINT LDB =B56 JSB OUTCR ISZ COUNT UPDATE COUNT LDB PNT CMB,INB,SZB,RSS POINT DISPLACEMENT=0 ? JMP PLAC8 YES - EXIT STB LOOP LOOP=-PDISP SPC 1 PLAC7 LDB ZPNT,I GET A DIGIT ADB =B60 CONVERT TO ASCII LDA XADDR JSB OUTCR OUTPUT ASCII CHARACTER ISZ COUNT UPDATE COUNT ISZ ZPNT BUMP SOURCE POINTER ISZ LOOP FINISHED ? JMP PLAC7 NO - CONTINUE JMP PLAC9 EXIT SPC 1 PLAC8 EQU * EXIT SEQUENCE LDA CHOUT ANY CHARACTERS OUT YET ? SZA JMP PLAC9 YES - EXIT NORMALLY LDA XADDR NO - OUTPUT A ZERO LDB =B60 JSB OUTCR ISZ COUNT UPDATE THE COUNT SPC 1 PLAC9 LDA COUNT RETURN THE COUNT IN (A) INA ACCOUNT FOR THE SIGN JMP PLACE,I HED ** DETERMINE POINT DISPLACEMENT - ** * COMPUTES THE SIGNS AND POINT DISPLACEMENTS OF THE * ARGUMENT STRINGS X AND Y. THE SIGNS ARE POSTED IN THE * RESPECTIVE COMMON BLOCK FOR THE STRING, AS ARE THE DECIMAL * POINT DISPLACEMENTS (I.E., THE NUMBER OF DECIMAL DIGITS * RIGHT OF THE DECIMAL POINT). A LENGTH CORRECTION FACTOR * IS COMPUTED FOR EACH STRING AND IS STORED IN THE COMMON * BLOCK 'LCOR'. LCOR IS BUMPED FOR A STRING EACH TIME * EITHER A POINT OR A SIGN IS FOUND. SPC 1 POINT NOP ENTRY/EXIT DLD X+?LEN DST XPNT,I SAVE BUFFER POINTER LOCALLY DLD Y+?LEN DST YPNT,I LDA XPNT PASS X-STRING POINTER AND GO JSB %SIGN EXTRACT THE SIGN OF X. STA X+?SGN POST SIGN OF X-STRING LDA YPNT JSB %SIGN EXTRACT THE SIGN OF Y STA Y+?SGN AND POST IN COMMON. DLD X+?LEN RESET LOCAL STRING POINTERS DST XPNT,I DLD Y+?LEN DST YPNT,I LDA XPNT PASS ADDRESS OF X-STRING JSB FIND AND GO GET POINT DISPL. STA X+?PNT POST IN COMMON STB LCOR+?X POST X-STRING LGTH CORRECTION CME ERA SAVE X-STRING POINT STATUS IN STA PSTAT IN PSTAT BIT 15. LDA YPNT JSB FIND FIND THE POINT IN Y=STRING STA Y+?PNT AND POST IN COMMON. STB LCOR+?Y POST Y-STRING LGTH CORRECTION CME ELA SAVE Y-POINT STATUS IN 0 IOR PSTAT IN PSTAT BIT 0. STA PSTAT JMP POINT,I RETURN SKP * FIND THE DECIMAL POINT IN A STRING WHOSE POINTER IS IN (A): SPC 1 FIND NOP ENTRY/EXIT STA FSAVE SAVE STRING ADDRESS CCA STA FLAG FLAG=-1 STA PDISP INITIAL DISPLACEMTN=-1 CLA STA INVCC INVALID CHARACTER COUNT=0 LDA PFNDS RESET 'POINT FOUND' SWITCH STA TRAP SPC 1 FIND1 LDA FSAVE JSB GETCR FETCH NEXT CHARACTER JMP FIND2 END OF STRING TRAP CPA =B56 DECIMAL POINT FOUND ? ISZ FLAG YES - BUMP FLAG TO 0 JSB NUMCK NO: VERIFY THE DIGIT JMP FIND4 INVALID DIGIT - COUNT IT CCA CPA FLAG FLAG STILL -1 ? JMP FIND1 YES - CONTINUE FINDC ISZ PDISP NO - START COUNTING DIGITS NOP JMP FIND1 CONTINUE UNTIL END OF STR. SPC 1 FIND2 LDA PDISP GET DISPLACEMENT LDB INVCC RETURN INVALID CHAR. COUNT IN (B) CLE,INA,SZA POINT FOUND IN STRING ? LDA PDISP YES - RETURN DISPLACEMENT JMP FIND,I SPC 1 FIND4 ISZ INVCC BUMP INVALID CHAR. COUNT LDA FLAG AT LEAST ONE POINT YET ? SZA JMP FIND1 NO - IGNORE THE DIGIT STA TRAP YES - PREVENT COUNTING BSS 0 POINTS FROM NOW ON. JMP FINDC GO BUMP POINT DISPL. HED ** PAD A STRING WITH ASCII ZERO ** * PADS A STRING WHOSE POINTER IS IN (A) WITH ASCII ZE+ROS, * TO A LENGTH SPECIFIED BY A NUMBER IN (B) IN TWO'S COMPLEMENT. SPC 1 ZERO NOP ENTRY/EXIT STB LOOP1 SET LOOP COUNTER STA ADDR1 AND STRING ADDRESS. SPC 1 ZERO1 LDA ADDR1 GET STRING ADDRESS AND LDB =B60 ASCII ZERO. JSB OUTCR OUTPUT A CHARACTER ISZ LOOP1 FINFSHED ? JMP ZERO1 NO-CONTINUE JMP ZERO,I YES - RETURN HED ** ARGUMENT STRING ALIGNMENT ROUTINE ** * ALIGNS THE DECIMAL POINTS OF THE ARGUMENT STRINGS X * AND Y. PADDING SWITCHES XPC AND YPC ARE SET SO AS TO CAUSE * ALIGNMENT OF THE STRINGS DURING ADDITION OR SUBTRACTION. * IF ADJUSTED STRING LENGTH EXCEEDS 63 CHARACTERS, THE * MESSAGE "21 0V" IS PRINTED ON THE TTY AND THE CALLING USER MAIN * PROGRAM IS TERMINATED. SPC 1 ALIGN NOP ENTRY/EXIT POINT LDA X+.PNT. GET PX CMA,INA -PX LDB LCOR+?X GET PRESENT LENGTH CORRECTION CMB,INB -LCORX ADA B FORM -PX-LCORX LDB X+.LEN. GET -LX-1 CMB LX ADA B FORM LX-LCORX-PX STA DX POST DIFFERENCE - DX SPC 1 LDA Y+.PNT. GET PY CMA,INA -PY LDB LCOR+?Y GET PRESENT Y LGTH CORRECTION CMB,INB -LCORY ADA B -LCORY-PY LDB Y+.LEN. GET -LY-1 CMB LY ADA B FORM LY-LCORY-PY STA DY AND POST Y DIFFERENCE - DY. SPC 1 LDA DX GET X AND Y DIFFERENCES LDB DY JSB IMAX FORM (DX MAX DY) STA SAVE2 SAVE2=(DX MAX DY) LDA X+.PNT. GET PX AND PY LDB Y+.PNT. JSB IMAX FORM (PX MAX PY) STA DISPL P=(PX MAX PY) FOR ADD AND SUBTR. ADA SAVE2 STA LGTH L=(DX MAX DY)+(PX MAX PY) ADA MSIZE TEST FOR STRING OVERFLOW SSA,RSS LGTH > 63 ? JMP ERRR2 YES - GO PRINT ERROR MSG. LDB DX GET DX CMB,4INB -DX ADB SAVE2 (DX MAX DY)-DX CMB FORM -(DX MAX DY)+DX-1 STB PAD+?X XPC=(-1-(DX MAX DY)+DX) LDB DY GET DY CMB,INB -DY ADB SAVE2 CMB STB PAD+?Y YPC=(-1-(DX MAX DY)+DY) JMP ALIGN,I RETURN SPC 1 ERRR2 LDA =A21 LDB =AOV JSB ERR0 "XXXXX: 21 OV" SPC 1 EXIT JSB EXEC TERMINATE REQUEST (DOS) DEF *+2 OR HALT (BCS). DEF *+1 DEC 6 HED ** NUMERIC CHECK ROUTINE ** * ISOLATES A DECIMAL DIGIT FROM AN ASCII CHARACTER. * ENTER WITH THE CHARACTER IN (A), LEFT JUSTIFIED. * IF NOT A VALID ASCII DIGIT (60-71 OCTAL) THE RETURN * IS P+1; OTHERWISE P+2 WITH THE NUMERIC IN (A). SPC 1 NUMCK NOP ENTRY/EXIT SZA,RSS SPECIAL ENTRY FROM PADDING ? JMP NUMC1 YES - RETURN 0 ADA =B-60 NO - DEMAND AN ASCII CHARACTER SSA LESS THAN 60 OCTAL ? JMP NUMCK,I YES - INVALID CHARACTER RETURN LDB =D-10 ADB A SSB,RSS GREATER THAN 10 ? JMP NUMCK,I YES - INVALID CHARACTER RETURN SPC 1 NUMC1 ISZ NUMCK YES - CHARACTER IS LEGAL JMP NUMCK,I RETURN CHARACTER IN (A) HED ** CHARACTER FETCH/STORE ROUTINES ** * FETCHES THE NEXT CHARACTER FROM A STRING WHOSE BUFFER * POINTER IS IN (A). THE CHARACTER IS RETURNED IN (A), RIGHT * JUSTIFIED AND ISOLATED. SPC 1 GETCR NOP ENTRY/EXIT POINT ISZ A,I END OF STRING ? RSS JMP GETCR,I YES - RETURN P+1 INA STA BADDR POST BUFFER ADDRESS LDB BADDR,I GET CHARACTER ADDRESS ISZ BADDR,I AND BUMP FOR NEXT TIME. CLE,ERB UPPER/LOWER FLAG TO (E) LDA B,I GET TWO CHARACTERS IN (A) SEZ,RSS UPPER CHARACTER ? ALF,ALF YES - POSITION IT AND =B177 ISOLATE THE CHARACTER ISZ GETCR BUMP RETURN Q ADDRESS JMP GETCR,I RETURN P+2, CHAR. IN (A) SKP * STORES A CHARACTER IN (B) IN A STRING WHOSE BUFFER * POINTER IS IN (A). SPC 1 OUTCR NOP ENTRY/EXIT STB OUTCS SAVE THE CHARACTER INA STA BADDR POST CHARACTER ADDRESS LDB BADDR,I GET WORD ADDRESS CLE,ERB CHARACTER POSITION TO (E) ISZ BADDR,I BUMP FOR NEXT TIME STB ADDR POST ADDRESS OF CHARACTER PAIR SEZ UPPER CHARACTER POSITION ? JMP OUTC1 NO - LOWER LDB OUTCS YES - GET THE CHARACTER BLF,BLF POSITION TO UPPER LDA ADDR,I GET OLD PAIR AND =B177 MASK OUT OLD UPPER CHAR. IOR B AND MERGE IN NEW ONE. STA ADDR,I POST NEW PAIR JMP OUTCR,I RETURN SPC 1 OUTC1 LDA ADDR,I GET OLD PAIR AND =B77400 MASK OUT OLD LOWER CHAR. IOR OUTCS AND MERGE IN NEW ONE. STA ADDR,I POST NEW PAIR JMP OUTCR,I AND RETURN HED ** ADD/SUBTRACT/MULTIPLY INITIALIZATION ** * COMPUTES THE ARGUMENT STRING PSEUDO ADDRESSES AND LENGTHS * FROM THE PARAMETERS IN THE CALLING SEQUENCE. A POINTER TO THE * THE PARAMETER ADDRESS SAVE AREA IS PASSED IN (B). STRING * POINTER CONSIST OF A FOUR-WORD BLOCK OF COMMON STORAGE LAYED * OUT AS FOLLOWS (EXAMPLE FOR X$ ONLY): SPC 1 * X+0 STRING LENGTH IN ONE'S COMPLEMENT * X+1 STRING ADDRESS TIMES 2 * X+2 POINT DISPLACEMENT OF X$ (NO. OF DIGITS RIGHT OF DEC.) * X+3 SIGN OF X$ (0=PLUS, -1 =MINUS) SPC 1 INIT NOP ENTRY/EXIT STB TEMP SAVE PARAMETER LIST POINTER LDA TEMP,I GET X-STRING ADDRESS CLE,ELA FORM CHARACER ADDRESS ISZ TEMP LDB TEMP,I ADA B,I ADD IN OFFSET STA X+?ADR POST IN COMMON STORAGE ISZ TEMP LDB TEMP,I LDB B,I GET X-STRING LENGTH CMB STB X+?LEN POST -LEN(X)-1 IN COMMON ISZ TEOoMP SPC 1 LDA TEMP,I GET Y-STRING ADDRESS CLE,ELA FORM CHARACTER ADDRESS ISZ TEMP LDB TEMP,I ADA B,I ADD IN OFFSET STA Y+?ADR POST PSEUDO ADDRESS IN COMMON ISZ TEMP LDB TEMP,I LDB B,I CMB STB Y+?LEN POST Y-STRING LGTH. INITS JMP SETUP GO INITIALIZE PRE AND POST- BSS 0 PADDING SWITCHES. THIS CODE BSS 0 IS EXECUTED ONLY ONCE/LOAD. JMP INIT,I RETURN HED ** STRING ARITHMETIC ROUTINES - ** * SAVES THE ORIGINAL CONTENTS OF THE PRE- AND POST- * PADDING SWITCHES JMPI1-JMPI4 AND JSBI1-JSBI4. THIS CODE * IS EXECUTED ONLY ONCE PER LOADING. SPC 1 SETUP CLA STA INITS PREVENT RE-EXECUTION IN THIS BSS 0 LOADING OF . LDA ADD3 SAVE PRE-PADDING SWITCHES LDB ADD6 IN ROUTINE. DST JMPI1 LDA SUB2 ALSO IN ROUTINE LDB SUB5 DST JMPI3 LDA ADD4+1 SAVE POST-PADDING SWITCHES LDB ADD7+1 IN ROUTINE. DST JSBI1 LDA SUB3+1 ALSO IN LDB SUB6+1 DST JSBI3 LDA TRAP SAVE 'POINT FOUND' FLAG STA PFNDS JMP INIT,I RETURN THRU INIT ENTRY POINT HED ** CONSTANTS, STORAGE, EQUATES, LINKAGES, ETC. ** A EQU 0 A/B REGISTER EQUATES B EQU 1 .LEN. EQU 0 COMMON STORAGE LAYOUT EQUATES .PNT. EQU 2 .SGN. EQU 3 ?LEN EQU 0 ?ADR EQU 1 ?PNT EQU 2 ?SGN EQU 3 ?X EQU 0 ?Y EQU 1 SIZE EQU 64 MAXIMUM RESULT STRING LENGTH SPC 1 X BSS 4 Y BSS 4 SIGN BSS 1 LGTH BSS 1 DISPL BSS 1 PAD BSS 2 LCOR BSS 2 Z BSS 65 SPC 1 XLOC DEF *+1 LOCAL STORAGE POINTER BSS 2 X-STRING LGTH/ADDRESS YLOC DEF *+1 BSS 2 Y-STRING LGTH/ADDRESS XPNT DEF *+1 POINTERS FOR SUBROUTINES BSS 2 YPNT DEF *+1 BSS 2 XADDR DE)ljfF X+?LEN ADDRESS OF X COMMON BLOCK YADDR DEF Y+?LEN ADDRESS OF Y COMMON BLOCK MSIZE ABS -SIZE MAX. STRING LGTH - (NEGATIVE) CLAI CLA PRE-PADDING "ON" SWITCH JMPI1 JMP ADD4 PRE-PADDING "OFF" SWITCHES JMPI2 JMP ADD7 JMPI3 JMP SUB3 JMPI4 JMP SUB6 JSBI1 JSB GETCR POST-PADDING 'ON' SWITCHES JSBI2 JSB GETCR JSBI3 JSB GETCR JSBI4 JSB GETCR SUPON SZB,RSS ZERO SUPPRESSION "ON" SWITCH SUPOF RSS ZERO SUPPRESSION "OFF" PFNDS CPA =B56 POINT FOUND SWITCH ZARA DEF Z ADDRESS OF DECIMAL ARRAY SPC 1 LOOP BSS 1 TEMPORARY STORAGE LOCATIONS LOOP1 BSS 1 SUM BSS 1 TEMP BSS 1 CARRY BSS 1 DIFF EQU SUM BORRO EQU CARRY XPAD EQU PAD+?X YPAD EQU PAD+?Y XVAL BSS 1 XLOOP BSS 1 YLOOP BSS 1 CHOUT EQU YLOOP INVCC EQU XLOOP OUTCS EQU GETCR SAVE BSS 1 SAVE1 BSS 1 SAVE2 BSS 1 SAVE3 BSS 1 FSAVE BSS 1 FLAG BSS 1 PDISP BSS 1 LENTH BSS 1 ZPNT BSS 1 PNT BSS 1 COUNT BSS 1 BADDR BSS 1 ADDR BSS 1 ADDR1 BSS 1 DX BSS 1 DY BSS 1 PSTAT BSS 1 END lASMB,R,L,C NAM .ERRR,7 ENT .ERRR EXT ERR0,EXEC SPC 1 * <.ERRR> PROVIDES A DOS/RTE COMPATIBLE ERROR EXIT. THE PROGRAM * ID AND MESSAGE ARE PRINTED AND THE PROGRAM IS TERMINATED. SPC 1 .ERRR NOP DLD .ERRR,I GET ERROR CODE JSB ERR0 USE DOS/RTE ERROR ROUTINE JSB EXEC TERMINATE DEF *+2 DEF *+1 DEC 6 END JASMB,R,L,C NAM KCOMP,7 EXT .ENTR ENT KCOMP A EQU 0 B EQU 1 *** * * I=KCOMP(IFLD,IBYT,LTH,KFLD,KBYT) * * "KCOMP" COMPARES TWO EQUAL LENGTH CHARACTER STRINGS. * * IFLD - BUFFER CONTAINING FIRST CHARACTER STRING. * IBYT - BYTE ADDRESS OF FIRST CHARACTER IN IFLD. * LTH - NUMBER OF CHARACTERS TO BE COMPARED. * KFLD - BUFFER CONTAINING SECOND CHARACTER STRING. * KBYT - BYTE ADDRESS OF FIRST CHARACTER IN KFLD. * * KCOMP - +1 => IFLD > KFLD. * 0 => IFLD = KFLD. * -1 => IFLD < KFLD. *** IFLD NOP IBYT NOP ILTH NOP KFLD NOP KBYT NOP KCOMP NOP JSB .ENTR DEF IFLD LDA ILTH,I SET UP LOOP COUNTER CMA,INA STA ILTH LDA IFLD GET BUFFER ADDRESS CLE,ELA MAKE BYTES ADA IBYT,I ADD START ADDRESS ADA =D-1 STA IBYT LDA KFLD SAME FOR K CLE,ELA ADA KBYT,I ADA =D-1 STA KBYT LOOP LDB IBYT GET BYTE IN I CLE,ERB LDA B,I SEZ,RSS ALF,ALF AND =B377 STA IFLD ISZ IBYT LDB KBYT GET BYTE IN K CLE,ERB LDA B,I SEZ,RSS ALF,ALF AND =B377 ISZ KBYT CMA,INA COMPARE BYTES ADA IFLD SZA JMP EXIT ISZ ILTH JMP LOOP JMP KCOMP,I EXIT SSA CCA,RSS CLA,INA JMP KCOMP,I END ^ASMB,R,L,C NAM LCHAR,7 ENT LCHAR EXT .ENTR A EQU 0 B EQU 1 * * I=LCHAR(IFLD,IBYT,ILTH,NCH,MODE) * * "LCHAR" SEARCHES A STRING FROM THE BACK FOR THE * PRESENCE OR ABSENCE OF A TEST CHARACTER. * * LCHAR - 0 => SEARCH FAILED (SEE MODE). * >0 => CHARACTER ADDRESS WITHIN IFLD. * IFLD - FIRST WORD OF STRING BUFFER. * IBYT - ADDRESS OF 1ST CHAR. IN THE STRING (1 TO N). * ILTH - NUMBER OF CHARACTERS TO SEARCH. * NCH - TEST CHARACTER, RIGHT JUSTIFIED. * MODE - 0 => SEARCH FOR ABSENCE OF NCH. * 1 => SEARCH FOR PRESENCE OF NCH. * IFLD NOP IBYT NOP ILTH NOP NCH NOP MODE NOP LCHAR NOP JSB .ENTR DEF IFLD LDA NCH,I AND =B377 STA NCH CCA ADA IBYT,I ADA ILTH,I STA ILTH LOOP CCB GET A CHARACTER ADB ILTH STB ILTH CLE,ERB ADB IFLD LDA B,I SEZ,CLE,RSS ALF,ALF AND =B377 LDB MODE,I CPA NCH CCE,SZB,RSS SEZ,SZB,RSS JMP EXIT LDB ILTH INB CPB IBYT,I CLA,RSS JMP LOOP JMP LCHAR,I EXIT LDA ILTH INA JMP LCHAR,I END #kASMB,R,L,C NAM BMOVE,7 * * CALL BMOVE(IFLD,IBYT,ILTH,KFLD,KBYT,KLTH) * * "BMOVE" MOVES A STRING OF BYTES FROM KFLD TO IFLD. * * THE KFLD STRING STARTS AT KBYT AND IS KLTH BYTES LONG. * " IFLD " " " IBYT " " ILTH " " . * * ILTH BYTES ARE BMOVED INTO IFLD. * IF ILTH > KLTH , THEN THE REMAINING BYTES * IN IFLD ARE SET TO ASCII BLANKS. * B EQU 1 EXT .ENTR ENT BMOVE SPC 1 IFLD BSS 1 IBYT BSS 1 ILTH BSS 1 KFLD BSS 1 KBYT BSS 1 KLTH BSS 1 BMOVE BSS 1 ENTER, AND GET JSB .ENTR THE ARGUMENT DEF IFLD ADDRESSES. SPC 1 LDA IBYT,I IBYT -> CURRENT DESTINATION STA IBYT BYTE ADDRESS. LDA ILTH,I ILTH -> -BYTES STILL TO CMA,INA BE BMOVED. SZA,RSS JMP BMOVE,I STA ILTH LDA KBYT,I KBYT -> CURRENT SOURCE STA KBYT BYTE ADDRESS. LDA KLTH,I KLTH -> -BYTES STILL TO CMA,INA BE BMOVED. SZA,RSS JMP M11 STA KLTH SPC 1 M1 LDB KBYT ASAVE BECOMES ADB =D-1 SOURCE BYTE CLE,ERB RIGHT JUSTIFIED ADB KFLD AND ISOLATED. LDA B,I SEZ,RSS ALF,ALF AND =B377 STA ASAVE SPC 1 M5 LDB IBYT FORM THE ADB =D-1 DESTINATION WORD CLE,ERB AND ADB IFLD STORE IT. LDA B,I SEZ,RSS ALF,ALF AND =B177400 IOR ASAVE SEZ,RSS ALF,ALF STA B,I SPC 1 ISZ KBYT UPDATE BYTE ISZ IBYT ADDRESSES. ISZ ILTH DONE? JMP M10 NO. JMP BMOVE,I YES. EXIT. M10 ISZ KLTH JMP M1 M11 LDA BLANK STA ASAVE CCA STA KLTH JMP M5 SPC 1 BLANK OCT 40 ASAVE BSS 1 END   FTN4,L,A,T SUBROUTINE CAMI(INT,IBUF,IBYT,ILEN) DIMENSION IX(3) C C CALL CAMI(INT,IBUF,IBYT,ILEN) C C CAMI - CONVERT AND BMOVE INTEGER. C C INTEGER "INT" IS CONVERTED TO ASCII. THE "ILEN" C RIGHT CHARACTERS ARE BMOVED TO "IBUF" BEGINNING C AT "IBYT". 1 <= ILEN <= 6 C CALL CITA(INT,IX) CALL BMOVE(IBUF,IBYT,ILEN,IX,7-ILEN,ILEN) RETURN END END$ UASMB,R,L,C NAM CATI,7 * * CONVERT A NUMERIC ASCII FIELD OF LENGTH "ILTH" * BEGINNING AT "IBYT" OF "IFLD" * TO AN INTEGER "INT". * "IEND" POINTS TO LAST CHARACTER SAMPLED +1. * CONVERSION IS TERMINATED BY A NON-NUMERIC CHARACTER * OR EXHAUSTION OF "ILTH". NUM-CHAR = BLANK,+,-,NUMBER. * * * CALL CATI(IFLD,IBYT,ILTH,INT,ISTAT,IEND) * * ISTAT 0 => NORMAL * -1 => OVERFLOW OR NON-ASCII * EXT .ENTR ENT CATI A EQU 0 B EQU 1 SPC 1 IFLD BSS 1 ABS. BUFF. ADDRESS (WORD) IBYT BSS 1 REL. NUM. FIELD ADDRESS (BYTE) ILTH BSS 1 CHARACTERS IN FIELD INT BSS 1 BINARY INTEGER RETURNED ISTAT BSS 1 STATUS IEND BSS 1 CATI BSS 1 ENTER, AND GET JSB .ENTR ARGUMENT DEF IFLD ADDRESSES. SPC 1 LDA IBYT,I STA IEND,I ADA ILTH,I STA ILTH SPC 1 CLO CLA STA INT,I ALL BLANK FIELD => 0. STA SIGN STA SAVE JSB GETC GET A CHARACTER. CPA =B53 + SIGN? JMP C1 YES. CPA =B55 - SIGN? CCB,RSS YES. JMP C5 NO. STB SIGN SPC 1 C1 JSB GETC GET A NUMBER. C5 JSB CHECK CHECK IT. STA INT,I LDA SAVE ALS SAVE = 10*NUM STA B ALS,ALS ADA B ADA INT,I STA SAVE JMP C1 SAVE BSS 1 SIGN BSS 1 SPC 1 DONE CLA SET SOC STATUS ERR CCA STA ISTAT,I LDA SAVE LDB SIGN INSERT THE SZB SIGN. CMA,INA STA INT,I JMP CATI,I EXIT. SPC 1 GETC BSS 1 GETC1 LDB IEND,I CPB ILTH IF DONE, JMP DONE THEN EXIT. ADB =D-1 GET AND CLE,ERB ISOLATE THE ADB IFLD BYTE POINTED LDA B,I AT BY IBYT.    SEZ,RSS ALF,ALF AND =B377 ISZ IEND,I CPA =B40 JMP GETC1 JMP GETC,I SPC 1 CHECK BSS 1 ADA =B177720 CHECK FOR SSA ASCII NUMBER JMP ERR (>57B, ADA =D-10 <72B). SSA,RSS JMP ERR ADA =D10 JMP CHECK,I END FTN4,L,A,T SUBROUTINE MOVEF(IBUF,IB,IFLDS,NIFLD,KBUF,KB,KFLDS,NKFLD) DIMENSION IBUF(1),IFLDS(2,20),KBUF(1),KFLDS(2,20) CCCC C C CALL MOVEF(IBUF,IB,IFLDS,NIFLD,KBUF,KB,KFLDS,NKFLD) C C "MOVEF" MOVES A SET OF FIELDS FROM KBUF TO IBUF. C C THE FIELDS IN KBUF ARE OFFSET BY KB BYTES. C " " " IBUF " " " IB " . C C KFLDS AND IFLDS ARE THE SHORT-FORM FIELD DEFINITION C ARRAYS FOR THE RESPECTIVE BUFFERS. C C ONLY THE FIRST NIFLD FIELDS OF IFLDS ARE MOVED. C CCCC DO 5 I=1,NIFLD CALL DFLD(NIFLD,IFLDS,IFLDS(1,I),IBYT,ILTH,ITYP,ISTAT) CALL DFLD(NKFLD,KFLDS,IFLDS(1,I),KBYT,KLTH,KTYP,ISTAT) IF (ISTAT .GT. NKFLD) GO TO 5 CALL BMOVE(IBUF,IBYT+IB-1,ILTH,KBUF,KBYT+KB-1,KLTH) 5 CONTINUE RETURN END END$ N\ASMB,R,L,C NAM JCD,7 * * I=JCD(IFLD,IBYT,ILTH,ICH) * * "JCD" SEARCHES A STRING FROM THE FRONT FOR A CHARACTER. * * JCD - 0 => CHARACTER NOT FOUND. * >0 => CHARACTER ADDRESS WITHIN IFLD. * IFLD - FIRST WORD OF STRING BUFFER. * IBYT - ADDRESS OF 1ST CHARACTER TO BE SEARCHED (1 TO N). * ILTH - NUMBER OF CHARACTERS TO SEARCH. * ICH - CHARACTER TO BE SEARCHED FOR, RIGHT JUSTIFIED. * ENT JCD EXT .ENTR A EQU 0 B EQU 1 IFLD NOP IBYT NOP ILTH NOP ICH NOP JCD NOP JSB .ENTR DEF IFLD LDA ICH,I AND =B377 STA ICH LDA ILTH,I CMA,INA STA ILTH LDA IBYT,I STA IBYT LOOP CCB ADB IBYT CLE,ERB ADB IFLD LDA B,I SEZ,CLE,RSS ALF,ALF AND =B377 CPA ICH JMP FOUND ISZ IBYT ISZ ILTH JMP LOOP CLA,RSS FOUND LDA IBYT JMP JCD,I END ;FTN4,L,A,T SUBROUTINE MIO(MN,NS,INSIZ,INBUF,IFM,IB) EXTERNAL LUMIO CCCC C C CALL MIO(MN,NS,INSIZ,INBUF,IFM,IB) C C MN - MESSAGE NUMBER. C NS - NUMBER OF LINE SPACES BEFORE MESSAGE. C INSIZ - NUMBER OF WORDS OF INPUT EXPECTED. C INBUF - BUFFER FOR EXPECTED INPUT. C IFM - 11 WORD DESCRIPTION OF MESSAGE BUFFER. C IB - 132 WORD BUFFER FOR USE BY "GET". C CCCC DIMENSION INBUF(1),IFM(11),IB(132) C LINE SPACING. IF (NS .LE. 0) GO TO 10 DO 5 J=1,NS CALL EXEC(2,LUMIO,0,0) 5 CONTINUE C MESSAGE OUT. 10 IF (MN .LE. 0) GO TO 20 CALL GET(IB,IFM,MN,IS,IPNT) ISIZ = -LCHAR(IB(IPNT),1,IFM(5),40B,0) CALL EXEC(2,LUMIO,IB(IPNT),ISIZ) C INPUT. 20 IF (INSIZ .LE. 0) RETURN DO 21 J=1,INSIZ 21 INBUF(J) = 2H CALL REIO(1,LUMIO,INBUF,INSIZ) END END$ FTN4,L,A,T SUBROUTINE MOUT(LU,JSB,MB,MBA,ML,JSA,LF,KBUF) CCCC C C CALL MOUT(LU,JSB,MB,MBA,ML,JSA,LF,KBUF) C C LU - OUTPUT DEVICE. C JSB - SPACES BEFORE MESSAGE BEGINS. C MB - MESSAGE BUFFER. C MBA - MESSAGE BYTE ADDRESS WITHIN BUFFER. C ML - MESSAGE LENGTH. C JSA - SPACES AFTER MESSAGE ENDS. C LF - "LINE FEEDS" AFTER MESSAGE END (0 TO ?). C KBUF - BUFFER FOR USE IN FORMATTING & OUTPUTING. C CCCC DIMENSION MB(1),KBUF(1) C SET UP MESSAGE. IL = -JSB-JSA-ML IF (IL .EQ. 0) GO TO 7 CALL BMOVE(KBUF,1,JSB,MB,0,0) CALL BMOVE(KBUF,1+JSB,ML,MB,MBA,ML) CALL BMOVE(KBUF,1+JSB+ML,JSA,MB,0,0) C CHECK FOR STOP AND SET IT UP. IF (LF .NE. 0) GO TO 5 CALL BMOVE(KBUF,1-IL,1,1H_,1,1) IL = IL - 1 C OUTPUT MESSAGE. 5 CALL EXEC(2,LU,KBUF,IL) 7 IF (LF .LE. 1) RETURN C DO LINE FEEDS. DO 10 J=1,LF-1 10 CALL EXEC(2,LU,0,0) RETURN END END$ .%FTN4,L,A,T SUBROUTINE MBLOK(LU,ISB,IRF,IRL,ISA,IB,IFM,IBM) DIMENSION IB(132),IFM(11),IBM(132) C C CALL MBLOK(LU,ISB,IRF,IRL,ISA,IB,IFM,IBM) C C THIS ROUTINE PRINTS OUT A BLOCK OF MESSAGES WITH OPTIONAL C LINE SPACES BEFORE AND AFTER THE BLOCK. C C LU - LOGICAL UNIT NUMBER OF OUTPUT DEVICE. C ISB - LINE SPACES BEFORE PRINTING A BLOCK OF MESSAGES. C IRF - FIRST RECORD NUMBER OF CONTIGUOUS BLOCK. C IRL - LAST RECORD NUMBER OF CONTIGUOUS BLOCK. C ISA - LINE SPACES AFTER MESSAGE BLOCK. C IB - 132 WORD BUFFER. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD BUFFER FOR MESSAGE I/O. C C C SPACES BEFORE IB(129) = 0 IF (ISB .LE. 0) GO TO 10 DO 5 J=1,ISB 5 CALL MOUT(LU,2,IB,0,0,0,1,IB) C MESSAGE 10 JS = 0 IF (LU .EQ. 6) JS = 1 DO 15 J=IRF,IRL CALL GET(IBM,IFM,J,IS,IW) 15 CALL MOUT(LU,JS,IBM(IW),1,IFM(5),0,1,IB) C SPACES AFTER IF (ISA .LE. 0) RETURN DO 20 J=1,ISA 20 CALL MOUT(LU,2,IB,0,0,0,1,IB) RETURN END END$ FTN4,L,A,T SUBROUTINE MINT(MESS,INT,LIND,IFM,IBM) EXTERNAL LUMIO DIMENSION IA(4),IFM(11),IBM(132) C C CALL MINT(MESS,INT,LIND,IFM,IBM) C C THIS ROUTINE PRINTS A MESSAGE (OPTIONAL), CONVERTS C AN INTEGER TO ASCII, AND PRINTS IT. C C MESS - NUMBER OF MESSAGE TO BE PRINTED. C INT - ONE WORD BINARY INTEGER TO BE CONVERTED & PRINTED. C LIND - LINE SPACES AFTER MESSAGE. C IFM - 11 WORD DESCRIPTION OF MESSAGE FILE. C IBM - 132 WORD BUFFER FOR MESSAGE I/O. C C CCC PRINT MESSAGE AND INTEGER. CALL CITA(INT,IA) IF (MESS .GT. 0) CALL MIO(MESS,1,0,0,IFM,IBM) CALL MOUT(LUMIO,0,IA,1,6,0,LIND,IA) RETURN END END$ \FTN4,L,A,T SUBROUTINE INTIN(MESS,INT,IFM,IBM) DIMENSION MINT(3),IFM(11),IBM(132) CCC C C CALL INTIN(MESS,INT,IFM,IBM) C C THIS ROUTINE PRINTS A MESSAGE, GETS AN ANSWER, C CHECKS THAT IT IS AN INTEGER, AND CONVERTS IT C TO A BINARY INTEGER. C C MESS - NUMBER OF MESSAGE TO BE PRINTED. C INT - BINARY INTEGER RETURNED HERE. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD ARRAY FOR MESSAGE I/O. CCC 20 J = 1 IF (MESS .EQ. 0) J = 0 CALL MIO(MESS,J,3,MINT,IFM,IBM) CALL CATI(MINT,1,6,INT,IS,J) IF (IS .NE. 0) GO TO 20 RETURN END END$ FTN4,L,A,T SUBROUTINE INTAN(MESNO,INT,KLO,KHI,IFM,IBM) DIMENSION IFM(11),IBM(132) CCC C C CALL INTAN(MESNO,INT,KLO,KHI,IFM,IBM) C C THIS ROUTINE PRINTS A MESSAGE, GETS AN INTEGER ANSWER, C AND CHECKS IT AGAINST HIGH AND LOW LIMITS. C C MESNO - NUMBER OF MESSAGE TO BE PRINTED. C INT - BINARY INTEGER RETURNED HERE. C KLO - LOWER LIMIT FOR INT. C KHI - UPPER LIMIT FOR INT. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD ARRAY FOR MESSAGE I/O. CCC 1 CALL INTIN(MESNO,INT,IFM,IBM) IF (INT .LT. KLO) GO TO 5 IF (INT .LE. KHI) RETURN 5 CALL MIO(68,0,0,IBM,IFM,IBM) GO TO 1 END END$ )aFTN4,L,A,T SUBROUTINE FINFO(MESS,IFILE,NAM,IASK,IEXP,IFM,IBM) DIMENSION IFILE(11),NAM(3),IFM(11),IBM(132) CCC C C CALL FINFO(MESS,IFILE,NAM,IASK,IEXP,IFM,IBM) C C ROUTINE TO RETRIEVE FILE INFORMATION. C C MESS - MESSAGE NUMBER ASKING FOR DATA SET NAME C (CAN BE 0 IF NAME IS IN "NAM"). C IFILE - 11 WORD ARRAY FOR RETURNED DATA SET DESCRIPTION. C NAM - 3 WORD ARRAY FOR DATA SET NAME. C IASK - 2HY => ASK FOR READ/WRITE PROTECT CODES. C ELSE => DO NOT ASK, SET ACCESS MODE TO "IEXP". C IEXP - EXPECTED MODE OF ACCESS. C 0 => READ ONLY. C 1 => BOTH READ AND WRITE. C 2 => WRITE ONLY. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD ARRAY FOR MESSAGE I/O. CCC C GET AND CHECK THE FILE NAME IF (MESS .EQ. 0) GO TO 5 1 CALL MIO(MESS,1,3,NAM,IFM,IBM) IF (NAM(1) .EQ. 2H ) RETURN 5 CALL DFILE(IFILE,NAM,IRP,IWP) IF (IFILE(4) .GT. 0) GO TO 10 CALL MIO(13,0,0,NAM,IFM,IBM) GO TO 1 C HANDLE READ/WRITE PROTECT CODES. 10 IFILE(11) = IEXP IF (IASK .NE. 2HY ) RETURN IF ((IEXP.LE.1).AND.(IRP.NE.0)) CALL INTAN(14,K,IRP,IRP,IFM,IBM) IF ((IEXP.GE.1).AND.(IWP.NE.0)) CALL INTAN(15,K,IWP,IWP,IFM,IBM) RETURN END END$ sFTN4,L,A,T PROGRAM ADM DIMENSION J(6),N(21),M(7),IDCB(576),ISORT(3),MEND(5) DATA M/2HP ,2HD ,2HS ,2HR ,2HF ,2HH ,2HZ / DATA N/2HAF,2HDE,2HF ,2HAD,2HFI,2HN ,2HAS,2HTO,2HR , *2HAR,2HPO,2H ,2HAF,2HUP,2H ,2HAH,2HAS,2HH ,2HAR,2HET,2H / DATA IFIRST/0/ DATA J/2HFU,2HNC,2HTI,2HON,2H? ,2H _/ DATA ISORT/2HSO,2HRT,2H / DATA MEND/2H/A,2HDM,2H: ,2H$E,2HND/ C IF(IFIRST.EQ.0) LU=LUX(LU) IF(IFIRST.EQ.0)CALL INDCB(IDCB,4) CALL SETLU(LU) CALL CFILE(0) IFIRST=1 1 CALL EXEC(2,LU,J,0) CALL EXEC(2,LU,J,6) IA=2H CALL REIO(1,LU+400B,IA,1) DO 5 K=1,7 5 IF(IA.EQ.M(K))CALL EXEC(8,N(3*K-2)) IF (IA.EQ.2H )GO TO 8888 IF(IA.EQ.2HO )CALL EXEC(23,ISORT,LU) GO TO 1 C 8888 CALL EXEC(2,LU,MEND,-10) END END$  FTN4,L,A,T PROGRAM AFDEF(5) DIMENSION IB(132),IFM(11),IBM(132),MESSS(3) DATA MESSS/2HME,2HSS,2HS / C CALL FINFO(0,IFM,MESSS,2HN ,1,IFM,IBM) CALL INTIN(5,LU,IFM,IBM) IF(LU.EQ.0)LU=IGTLU(0) CALL MOUT(LU,0,2H1 ,1,2,0,1,IB) CALL MBLOK(LU,0,63,64,2,IB,IFM,IBM) CALL MBLOK(LU,0,106,106,0,IB,IFM,IBM) CALL MBLOK(LU,0,41,45,1,IB,IFM,IBM) CALL MBLOK(LU,0,107,107,0,IB,IFM,IBM) CALL MBLOK(LU,0,97,101,1,IB,IFM,IBM) CALL MBLOK(LU,0,102,102,1,IB,IFM,IBM) CALL MBLOK(LU,0,104,104,1,IB,IFM,IBM) CALL MBLOK(LU,0,109,109,1,IB,IFM,IBM) CALL MBLOK(LU,0,118,118,1,IB,IFM,IBM) CALL MOUT(LU,0,2H1 ,1,2,0,1,IB) CALL ADM END END$ cFTN4,L,A,T PROGRAM ADFIN(5) C EQUIVALENCE (IC,ICS(7)) DIMENSION IB(132),IBM(132),IFLDS(9,20),INDX(23) DIMENSION IFILE(11),IFM(11) DIMENSION MESS(3),ICS(7),NAM(3) DATA MESS/2HME,2HSS,2HS / DATA ICS/2HD ,2HF ,2HM ,2HR ,2HC ,2H / 8 CALL CFILE(0) CCC SET UP MESSAGE DEFINITION; PRINT HEADING. CALL FINFO(0,IFM,MESS,2HN ,1,IFM,IBM) CCC GET COMMAND AND BRANCH. 7 CALL MIO(61,1,1,IC,IFM,IBM) DO 9 J=1,7 JJ = J IF (IC .EQ. ICS(J)) GO TO (10,15,60,7)J-3 9 CONTINUE CCC CREAT FUNCTION. 15 CALL CREAF(IFILE,IB,IFM,IBM,0,IS) GO TO 8 CCC GET DATA SET NAME & DEFINITION, BRANCH TO EXECUTE. 10 CALL FINFO(1,IFILE,NAM,2HN ,1,IFM,IBM) CALL DIO(-1,IFILE,IB) GO TO (2,3,4,5)JJ CCC DISPLAY DEFINITION OF DATA SET. 2 CALL DISPD(IFILE,IB,IFLDS,INDX,IFM,IBM) GO TO 8 CCC UPDATE FIELD DEFINITION. 3 CALL FDEF(IFILE,IB,IFM,IBM) GO TO 8 CCC MOVE DEFINITION TO ANOTHER DATA SET. 4 GO TO 15 CCC CHANGE RECORD COUNT. 5 CALL MINT(46,IFILE(8),1,IFM,IBM) 33 CALL INTAN(47,IW,0,32767,IFM,IBM) IS = (IW-1)/IFILE(6) + 1 IF (IS .GE. IFILE(4)) GO TO 33 CALL MOVW(IB,132,0,0,2H ) IF (IFILE(8) .EQ. 0) GO TO 35 CALL PUT(IB,IBM,IFILE,IFILE(8)+1,1,IS) 35 CALL PUT(IB,IBM,IFILE,IW+1,-1,IS) GO TO 8 60 CALL ADM END END$ f FTN4,L,A,T SUBROUTINE CREAF(IFILE,IB,IFM,IBM,KP,INUM) DIMENSION IFILE(11),IB(132),NAMF(6),IFM(11),IBM(132),IMESS(3) *,IDCB(144),ISIZE(2) DATA IMESS/2HME,2HSS,2HS / C C "CREAT" WILL CREATE A DATA SET DEFINITION, UPDATE A FIELD C DEFINITION, OR ADD A NEW FIELD DEFINITION. C C IFILE - 11 WORD DESCRIPTION OF DATA SET, RETURNED TO USER. C IB - 132 WORD ARRAY FOR I/O. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD ARRAY FOR MESSAGE I/O. C KP - =UD => FIELD UPDATE, OTHERWISE CREATE NEW DEFINITION. C INUM - FIELD NUMBER IF FIELD UPDATE OPTION IS CHOSEN. C IF (KP .EQ. 2HUD) GO TO 20 CALL MOVW(IB,132,0,0,0) IFILE(7)=IADRS(IDCB) IFILE(8) = 0 IFILE(10) = 0 IFILE(11) = 1 CCC QUALIFY DATA SET. 3 CALL MIO(2,2,3,IFILE,IFM,IBM) CCC GET AND CHECK RECORD LENGTH. 5 CALL INTAN(67,IFILE(5),2,256,IFM,IBM) IF (MOD(IFILE(5),2) .EQ. 0) GO TO 10 CALL MIO(68,0,0,IBM,IFM,IBM) GO TO 5 CCC BLOCKING FACTOR, PROTECT CODES. 10 CALL INTAN(69,IFILE(4),1,32767,IFM,IBM) CALL INTAN(70,I,0,255,IFM,IBM) CALL INTAN(71,IB(5),0,255,IFM,IBM) IB(5) = IOR(IB(5), ISHFT(I,-8)) CCC NUMBER OF FIELDS, FIELD DEFINITIONS. CALL INTAN(72,IFILE(9),1,20,IFM,IBM) REC=IFILE(4) SIZ=IFILE(5) ISIZE=REC*SIZ/256.+2. ISIZE(2)=IFILE(5)/2 CALL CREAT(IDCB,IERR,IFILE,ISIZE,2) IF(IERR.GE.0)GO TO 15 IF(IERR.EQ.0)GO TO 10 IF(IERR.EQ.-2.OR.IERR.EQ.-15)GO TO 3 15 CALL INTAN(73,INUM,1,20,IFM,IBM) 20 CALL MIO(54,1,6,NAMF,IFM,IBM) IF (NAMF .EQ. 2H ) RETURN CALL INTAN(55,IFS,1,IFILE(5),IFM,IBM) CALL INTAN(56,IFL,1,IFILE(5)-IFS+1,IFM,IBM) CALL MIO(57,1,1,KAN,IFM,IBM) IFT = 0 IF (KAN .EQ. 2HN ) IFT = 1 CALL REFR(IFILE,INUM,NAMF,IFS,IFL,IFT,IB) IF (KP .EQ. 2HUD) RETURN CALL MIO(76,1,1,KAN,IFM,IBM) IF (KAN .EQ. 2HN ) GO TO 15    CALL CLOSE(IDCB) END END$$ ^= FTN4,L,A,T SUBROUTINE DISPD(IFILE,IB,IFLDS,M,IFM,IBM) DIMENSION IFILE(11),IB(132),IFLDS(9,20),M(23) DIMENSION IFM(11),IBM(132),IX(4) CCC C "DISPD" DISPLAYS THE DEFINITION OF A DATA SET. C C IFILE - 11 WORD DESCRIPTION OF DATA SET. C IB - 132 WORD ARRAY FOR I/O. C IFLDS - (9,20) ARRAY FOR FIELDS DEFINITION. C M - 23 WORD ARRAY. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD ARRAY FOR MESSAGE I/O. CCC ISAV9 = IFILE(9) IF (ISAV9 .GT. 20) IFILE(9) = 1 CALL DFLDS(IB,IFILE,IFLDS,1,M,IS) IF (IB(6) .EQ. 31501B) IFILE(9) = 1 CALL INTIN(5,LU,IFM,IBM) LM = 2 IF (LU .EQ. 6) LM = 1 IF (LU .EQ. 6) CALL EXEC(2,6,2H1 ,1) IF(LU.NE.0)GO TO 5 CALL MIO(0,3,0,IBM,IFM,IBM) LU=IGTLU(0) CCC BLANK BUFFER; SET UP DATA SET NAME & PACK NO. 5 CALL MOVW(IB,132,0,0,2H ) CALL BMOVE(IB,1,6,IFILE,1,6) CCC MISCELLANEOUS. CALL CAMI(IFILE(4),IB(4),1,5) CALL CAMI(IFILE(5),IB(7),1,3) CALL CAMI(IFILE(8),IB(10),1,5) CALL CAMI(IFILE(9),IB(13),1,2) CCC OUTPUT ALL BUT FIELD INFO. DO 10 K=1,5 IK = 3*K - 2 CALL GET(IBM,IFM,89+K,IS,IW) LCA = LCHAR(IBM(IW),1,IFM(5),40B,0) + 2 CALL BMOVE(IBM(IW),LCA,6,IB(IK),1,6) IF (K .EQ. 2) CALL MOUT(LU,2,IS,1,0,0,1,IS) 10 CALL MOUT(LU,0,IBM(IW),LM,LCA+5,0,1,IBM(IW)) CCC OUTPUT FIELD INFO. CALL MOUT(LU,2,IS,1,0,0,1,IS) CALL GET(IBM,IFM,95,IS,IW) CALL MOUT(LU,0,IBM(IW),LM,31,0,1,IBM(IW)) DO 20 K=1,IFILE(9) CALL MOVW(IB,33,0,0,2H ) CALL BMOVE(IB,2,12,IFLDS(1,K),1,12) IB(8) = 2HA IF (IFLDS(9,K) .NE. 0) IB(8) = 2HN CALL CAMI(IFLDS(7,K),IB(10),1,3) CALL CAMI(IFLDS(8,K),IB(13),1,3) IF (LU .NE. 6) CALL BMOVE(IB,1,32,IB,2,32) 20 CALL MOUT(LU,0,IB,1,32,0,1,IB) IF (LU .EQ. 6) CALL EXEC(2,6,2H1 ,1) IFILE(9) = ISAV9 RETURN END END$ (  FTN4,L,A,T SUBROUTINE FDEF(IFILE,IB,IFM,IBM) EXTERNAL LUMIO DIMENSION IFILE(11),IB(132),IFM(11),IBM(132),NM(6) C TO DISPLAY & TO ALLOW UPDATING OF A FIELD DEFINITION. C IFILE - 11 WORD DESCRIPTION OF DATA SET. C IB - 132 WORD ARRAY FOR I/O. C IFM - 11 WORD DESCRIPTION OF MESSAGE DATA SET. C IBM - 132 WORD ARRAY FOR MESSAGE I/O. 5 CALL MIO(48,1,3,NM,IFM,IBM) CALL CATI(NM,1,6,NUM,IS,I) IF (IS .NE. 0) GO TO 10 IF (NUM .LE. 0) GO TO 5 IF (NUM .GT. IFILE(9)+1) GO TO 5 IF (NUM .LE. IFILE(9)) GO TO 15 IF (IFILE(9) .EQ. 20) GO TO 5 IFILE(9) = IFILE(9) + 1 IB(4) = IB(4) + 400B GO TO 20 10 CALL PACK3(INP,1,1,NM,1,3) DO 12 I=1,IFILE(9) NUM = I IF (INP .EQ. IB(1+5*I)) GO TO 15 12 CONTINUE GO TO 5 CCC PRINT OUT NAME. 15 CALL UNPK3(IB,1+5*NUM,4,NM,1,12) JINT = IB(5+5*NUM) CALL MIO(49,1,0,IBM,IFM,IBM) CALL MOUT(LUMIO,0,NM,1,12,0,1,NM) CCC PRINT STARTING BYTE ADDRESS. CALL CITA(ISHFT(JINT,8)+1,NM) CALL MIO(50,0,0,IBM,IFM,IBM) CALL MOUT(LUMIO,0,NM,4,3,0,1,NM) CCC PRINT FIELD LENGTH. CALL CITA(IPICK(JINT,7)+1,NM) CALL MIO(51,0,0,IBM,IFM,IBM) CALL MOUT(LUMIO,0,NM,4,3,0,1,NM) CCC PRINT SUBFIELD LENGTH DO 17 J=116,120 IF (NUM .NE. ISHFT(IB(J),8)) GO TO 17 CALL CITA(IPICK(IB(J),8),NM) CALL MIO(62,0,0,IBM,IFM,IBM) CALL MOUT(LUMIO,0,NM,4,3,0,1,NM) 17 CONTINUE CCC PRINT FIELD TYPE. NM = 2HA IF (IPICK(ISHFT(JINT,7),1) .NE. 0) NM = 2HN CALL MIO(52,0,0,IBM,IFM,IBM) CALL MOUT(LUMIO,0,NM,1,1,0,1,NM) 20 CALL MIO(53,2,0,IBM,IFM,IBM) CALL CREAF(IFILE,IB,IFM,IBM,2HUD,NUM) RETURN END END$ >  FTN4,L,A,T SUBROUTINE REFR(IFILE,INUM,IFN,IFS,IFL,IFT,IB) C C THIS SUBROUTINE INSERTS ONE FIELD DEFINITION INTO C THE DEFINITION SECTOR OF THE DATA SET. C C IFILE - 11 WORD DESCRIPTION OF DATA SET. C INUM - FIELD NUMBER (1 TO 20). C IFN - 12 CHARACTERS OF FIELD NAME. C IFS - STARTING BYTE ADDRESS (1 TO 256). C IFL - FIELD LENGTH IN BYTES (1 TO 128). C IFT - FIELD TYPE (0 => ALPHA, 1 => NUMERIC). C IB - 132 WORD BUFFER CONTAINING THE DATA SET DEFINITION. C DIMENSION IFILE(11),IFN(6),IB(132) CCCC C REFRESH THE LEADING INFORMATION. CCCC IB(3)=IFILE(9) IB(4)=IFILE(4) CCCC C INSERT FIELD DEFINITION INFORMATION. CCCC CALL PACK3(IB,1+5*INUM,4,IFN,1,12) K = ISHFT(ISHFT(IFS-1,-1) + IFT,-7) IB(5+5*INUM) = IOR(K,IFL-1) CCCC C WRITE OUT LAST SECTOR AND EXIT. CCCC 30 CALL DIO(1,IFILE,IB) RETURN END END$$ kFTN4,L,A,T PROGRAM ASTOR(5) C EXTERNAL LUMIO EQUIVALENCE (IA,IC(7)) DIMENSION IB1(132),IB2(132),IPF(11),NDX(23) DIMENSION KPL(9,20),KPS(2,20),KDS(2,20) DIMENSION MF(11),NF(11),NAM(6),IC(7) DIMENSION IFM(11),IBM(132),NAM1(3),IB3(132) DATA NAM1/2HME,2HSS,2HS / DATA IC/2HA ,2HC ,2HD ,2HM ,2HR ,2H / CCC HEADING MESSAGE. 10 CALL CFILE(0) CALL FINFO(0,IFM,NAM1,2HN ,1,IFM,IBM) CCC COMMAND, MASTER DATA SET, FIRST & LAST RECORD NOS. CALL MIO(0,2,0,0,IFM,IBM) CALL MIO(84,0,1,IA,IFM,IBM) DO 12 J=1,7 IF (IA .EQ. IC(J)) GO TO (13,60,10),J-4 12 CONTINUE 13 CALL FINFO(1,MF,NAM,2HY ,2,IFM,IBM) CCC CONCATENATE FUNCTION. IF (IA .NE. 2HC ) GO TO 15 CALL MBLOK(LUMIO,2,58,59,1,IB1,IFM,IBM) CALL FINFO(2,NF,NAM,2HY ,0,IFM,IBM) CALL CNCAT(IB1,IB2,MF,NF,IS) IF (IS .NE. 200) CALL MIO(29,1,0,0,IFM,IBM) GO TO 10 CCC FIRST & LAST REC. NOS., DELETE FUNCTION. 15 LAST=MF(4) IF (MF(8) .NE. 0) GO TO 17 IF (IA .NE. 2HA ) GO TO 60 LFIR = 1 GO TO 18 17 IF (IA.EQ.2HA ) CALL INTAN(25,LFIR,-1,MF(8),IFM,IBM) IF (IA.NE.2HA ) CALL INTAN(26,LFIR,1,MF(8),IFM,IBM) IF (LFIR.EQ.-1) LFIR = MF(8) + 1 IF (IA.NE.2HA ) CALL INTAN(27,LAST,LFIR,MF(8),IFM,IBM) IDIF = LAST - LFIR 18 IF (IA.EQ.2HA ) IDIF = 0 IF (IA.NE.2HD ) GO TO 20 DO 16 IREC=LFIR,LAST 16 CALL PUT(IB1,IB2,MF,IREC,-2,IS) GO TO 10 CCC INPUT FORMAT, INPUT DEVICE, 2ND DATA SET. 20 CALL DFLDS(IB1,MF,KDS,0,NDX,IS) IF (IA .EQ. 2HM ) MF(11) = 1 CALL FINFO(0,IPF,NAM,2HN ,0,IFM,IBM) CALL FINFO(28,IPF,NAM,2HN ,0,IFM,IBM) CALL DFLDS(IB1,IPF,KPL,1,NDX,IS) CALL DFLDS(IB1,IPF,KPS,0,NDX,IS) CALL INTIN(23,LU,IFM,IBM) IW = 1 MP = 0 LC = 2H$$ IF (LU .NE. 2) GO TO 25 LC = 102204B CALL FINFO(2,NF,NAM,2HY ,0,IFM,IBM) CALL INTAN(26,KFIR,1,NF(8)4  -IDIF,IFM,IBM) IF (IA.NE.2HA ) GO TO 25 CALL INTAN(27,KL,KFIR,NF(8),IFM,IBM) LAST = LFIR + KL - KFIR C CCC GET RECORD FROM DISC. 25 IF(LU.EQ.0.OR.LU.EQ.IAND(LUMIO,77B))GO TO 35 GO TO (30,26,30),LU 26 CALL GET(IB1,NF,KFIR,IS,IW) KFIR = KFIR + 1 GO TO 40 CCC GET RECORD FROM DEVICE. 30 IB1 = LC CALL REIO(1,LU,IB1,IPF(5)/2) GO TO 40 CCC GET RECORD FROM CONSOLE. 35 CALL MINT(60,LFIR,2,IFM,IBM) CALL MBLOK(LUMIO,1,36,36,2,IB3,IFM,IBM) DO 37 JKL=1,IPF(9) CALL MOUT(LUMIO,0,KPL(1,JKL),1,12,0,0,IB3) CALL MINT(0,KPL(8,JKL),0,IFM,IBM) CALL MOUT(LUMIO,2,0,0,0,0,0,NAM) CALL MIO(0,0,128,IB3,IFM,IBM) CALL BMOVE(IB1,KPL(7,JKL),KPL(8,JKL),IB3,1,KPL(8,JKL)) IF ((IB1 .EQ. LC).AND.(IA .EQ. 2HA )) GO TO 45 37 CONTINUE C WRITE OUT THE RECORD AND ASK IF OK. CALL MIO(0,2,0,0,IFM,IBM) CALL MOUT(LUMIO,0,IB1,1,IPF(5),0,1,IB1) CALL MIO(33,1,1,JAN,IFM,IBM) IF (JAN .EQ. 2HN ) GO TO 35 CCC STORE RECORD, DETERMINE IF DONE. 40 IF (IA .NE. 2HM ) GO TO 45 MP = 1 CALL GET(IB2,MF,LFIR,IS,IWD) CALL BMOVE(IB3,1,MF(5),IB2(IWD),1,MF(5)) GO TO 47 45 CALL MOVW(IB3,MF(5)/2,0,0,0) 47 CALL MOVEF(IB3,1,KDS,MF(9),IB1(IW),1,KPS,IPF(9)) IF ((IB1 .EQ. LC).AND.(IA .EQ. 2HA )) GO TO 49 CALL PUT(IB3,IB2,MF,LFIR,MP,IS) LFIR = LFIR + 1 IF (LFIR .LE. LAST) GO TO 25 CALL PUT(IB3,IB2,MF,LFIR-1,1,IS) 49 IF (IA .EQ. 2HA ) CALL PUT(IB3,IB2,MF,LFIR,-1,IS) GO TO 10 60 CALL ADM END END$ FTN4,L,A,T SUBROUTINE CNCAT(IB1,IB2,IF1,IF2,ISTAT) DIMENSION IB1(132),IB2(132),IF1(11),IF2(11) CCCC C THIS ROUTINE OPERATES ON TWO DATA SETS. THEY MUST C HAVE IDENTICAL RECORD DEFINITIONS. C IF THE TWO DATA SET NAMES ARE THE SAME, THE DATA C SET IS CONDENSED (I.E., DELETED RECORDS ARE EXCLUDED C AND THE RECORD COUNT IS DECREASED ACCORDINGLY). C IF THE TWO DATA SET NAMES ARE DIFFERENT, THE SECOND C DATA SET IS CONDENSED AND CONCATENATED TO THE END OF C THE FIRST DATA SET. THE FIRST DATA SET IS UNALTERED. C C IB1 - 132 WORD BUFFER FOR USE BY "PUT". C IB2 - 132 WORD BUFFER FOR USE BY "GET". C IF1 - 11 WORD BUFFER DESCRIBING THE FIRST DATA SET. C (SEE SUBROUTINE DFILE) C IF2 - SAME AS ABOVE FOR THE SECOND DATA SET. C ISTAT - STATUS RETURNED TO CALLING PROGRAM : C = 200 FOR NORMAL OPERATION. C = 201 IF DATA SPACE IN FIRST FILE IS TOO SMALL. C IN THIS CASE, BOTH FILES ARE LEFT UNALTERED. CCCC ISTAT = 200 IREC1 = IF1(8) + 1 IB1(129) = 0 IB2(129) = 0 CCCC IF (IF2(8) .LE. 0) GO TO 100 IF (IF1(1) .NE. IF2(1)) GO TO 5 IF (IF1(2) .NE. IF2(2)) GO TO 5 IF (IF1(3) .NE. IF2(3)) GO TO 5 IREC1 = 1 IF1(8) = 0 C CONDENSE AND TRANSFER RECORDS. 5 DO 8 IREC2=1,IF2(8) CALL GET(IB2,IF2,IREC2,IST,KP) IF (IST .GT. 0) GO TO 8 CALL PUT(IB2(KP),IB1,IF1,IREC1,0,IST) IF (IST .EQ. -1) GO TO 99 IREC1 = IREC1 + 1 8 CONTINUE C END OF FILE RECORD, AND EXIT. 10 CALL PUT(IB2,IB1,IF1,IREC1,-1,IST) GO TO 100 C FILE DATA SPACE OVERRUN. 99 CALL PUT(IB2,IB1,IF1,IF1(8)+1,-1,IST) ISTAT = 201 100 RETURN END END$ J  FTN4,L,A,T PROGRAM AFUP(5) EXTERNAL LUMIO DIMENSION IB1(132),IB2(132),IB3(132) DIMENSION NAM(3),IFILE(11),IFLDS(2,20),INDEX(23) DIMENSION ICOND(120),IFM(11),NN(3),IMB(132) DATA NN/2HME,2HSS,2HS / CCC HEADING MESSAGE -- FIELD UPDATE FUNCTION. CALL FINFO(0,IFM,NN,2HN ,1,IFM,IMB) CALL MIO(103,3,0,0,IFM,IMB) CCC DATA SET INFO, 1ST & LAST REC. NOS., CONDITION CRITERIA. 111 CALL FINFO(1,IFILE,NAM,2HY ,1,IFM,IMB) CALL DFLDS(IB1,IFILE,IFLDS,0,INDEX,IST) 6 CALL INCND(IB1,IF,IL,ICOND,ICL,IFILE,IFLDS,ISTAT,IFM,IMB) IB1(132) = -1 CCC FIND, DISPLAY, AND UPDATE RECORDS. DO 5 J=IF,IL 7 CALL SELCT(IB1,IWORD,IFILE,IFLDS,J,IL,ICOND,ICL,N,ISTAT) J = N IF (N.LE.0) GO TO 60 CALL MINT(60,J,1,IFM,IMB) CALL RDBF(LUMIO,IFILE(9),IFLDS,IB1(IWORD),IB3) 30 CALL FUD(IB1(IWORD),IB3,IFILE(9),IFLDS,L,IFM) CCC DISPLAY, VERIFY, & STORE EDITED RECORD. 32 IF (L.EQ.0) GO TO 5 CALL MIO(35,2,0,IMB,IFM,IMB) CALL RDBF(LUMIO,IFILE(9),IFLDS,IB1(IWORD),IB3) CALL MIO(33,1,1,IAN,IFM,IMB) IF (IAN .EQ. 2HN ) GO TO 30 CALL PUT(IB1(IWORD),IB2,IFILE,J,1,ISTAT) 5 CONTINUE CCC CHECK IF DONE. IF SO, THEN EXIT. 60 CALL MIO(76,2,1,NAN,IFM,IMB) IF (NAN .EQ. 2HN ) GO TO 6 66 CALL ADM END END$ UFTN4,L,A,T SUBROUTINE RDBF(LU,NF,IFLDS,IRB,IOB) DIMENSION IFLDS(2,16),IRB(1),IOB(132) CCCC C C CALL RDBF(LU,NF,IFLDS,IRB,IOB) C C SUBROUTINE - RECORD DISPLAY BY FIELDS C C LU - LOGICAL UNIT NUMBER OF LIST DEVICE. C NF - NUMBER OF FIELDS. C IFLDS - SHORT FORM OF FIELD DESCRIPTIONS. C IRB - RECORD BUFFER, RECORD LEFT JUSTIFIED. C IOB - OUTPUT BUFFER. CCCC IJ = 1 IF (LU .EQ. 6) IJ = 2 CALL MOVW(IOB,132,0,0,2H ) C DO 10 J=1,NF CALL DFLD(NF,IFLDS,IFLDS(1,J),IB,IL,IT,IS) CALL UNPK3(IFLDS(1,J),1,1,IOB,IJ,3) IW = 4 + IJ CALL BMOVE(IOB,IW,IL+1,IRB,IB,IL) CALL MOUT(LU,0,IOB,1,IL+IW,0,1,IOB) 10 CONTINUE RETURN END END$ ?FTN4,L,A,T SUBROUTINE FUD(IRB,IB,NFLDS,IFLDS,L,IFM) C C NOTES: C 1. ALL INPUT/OUTPUT DONE WITH SYSTEM CONSOLE. C 2. BLANKS FOR FIELD NAME RESPONSE WILL TERMINATE FIELD C UPDATING. ANY FIELD CAN BE UPDATED MANY TIMES. C PASSED PARAMETERS: C IRB - BUFFER CONTAINING MASTER DATA SET RECORD TO BE C ALTERED. FIRST WORD OF BUFFER IS 1ST WORD OF RECORD. C IB - 132 WORD BUFFER FOR INPUT FROM TERMINAL. C NFLDS - NUMBER OF FIELDS IN A MASTER DATA SET RECORD. C IFLDS - ARRAY(2,16) OF PACKED FIELD DEFINITIONS (MASTER DATA SET). C L - RECORD STATUS C 0 => RECORD WAS NOT CHANGED. C 1 => RECORD WAS CHANGED. C IFM - 11 WORD DESCRIPTION OF MESSAGE FILE. C OPERATIONS ON THE FIELD: C ( ) => FIELD BECOMES NEW DATA. C (+) => FIELD BECOMES FIELD PLUS NEW DATA. C (-) => FIELD BECOMES FIELD MINUS NEW DATA. C (*) => FIELD BECOMES FIELD MULTIPLIED BY NEW DATA. CCCC DIMENSION IFM(11),IB(132),IRB(1),IFLDS(2,20) L = 0 IB(131) = -1 111 CALL MIO(16,1,130,IB,IFM,IB) IB(131) = -1 30 CALL PACK3(IFLD,1,1,IB,1,3) CALL DFLD(NFLDS,IFLDS,IFLD,IBYT,ILTH,ITYP,ISTAT) IF (ISTAT .GT. NFLDS) GO TO 10 C L = 1 IF (ITYP .EQ. 0) GO TO 100 IBT = IBYT - 1 IOP = IPICK(IB(2),8) IF (IOP .EQ. 40B) GO TO 100 IL = ILTH IF (IOP .EQ. 53B) IL = IADD(IRB,IBT,ILTH,IB(3),0,ILTH) IF (IOP .EQ. 55B) IL = ISUB(IRB,IBT,ILTH,IB(3),0,ILTH) IF (IOP .EQ. 52B) IL =IMULT(IRB,IBT,ILTH,IB(3),0,ILTH) IF ((ILTH-IL) .LE. 0) GO TO 111 CALL BMOVE(IRB,IBYT+IL,ILTH-IL,1H ,1,1) GO TO 111 100 CALL BMOVE(IRB,IBYT,ILTH,IB(3),1,ILTH) GO TO 111 CCCC 10 IF (IB(1) .EQ. 2H ) RETURN CALL MIO(17,0,0,IB,IFM,IB) GO TO 111 END END$   FTN4,L,A,T PROGRAM ASET(5) DIMENSION IDCB(288),IDCC(144),ISIZE(2) *,ICOM(53),KEYDT(18),IPRAM(5),ISFN(3),IOFN(3) C DIMENSION IF1(11),IF2(11),MESS(3) DIMENSION IB(132),IFLDS(2,20),INDEX(23),JB(2) DIMENSION KFN(9),IB2(132),IFM(11),IMB(132) DIMENSION NEXT(3),IPAR(5) EQUIVALENCE (IDSF,ICOM(1)),(IPSIZ,ICOM(2)),(KEYCT,ICOM(3)) *,(KEYPT,ICOM(4)) *,(KEYDT,ICOM(5)),(IPRAM,ICOM(23)),(ISFN,ICOM(28)) *,(IOFN,ICOM(31)),(IBSIA,ICOM(34)),(IBSOA,ICOM(36)) *,(IBSIB,ICOM(37)),(IBSOB,ICOM(39)),(ISTW,ICOM(40)) *,(ISPT,ICOM(41)),(ILTW,ICOM(42)),(IRSIZ,ICOM(45)) *,(ISOF,ICOM(53)) DATA NEXT/2HAS,2HO ,2H / DATA MESS/2HME,2HSS,2HSS/ C VARIABLES IN COMMON: C IDSF *- ASCENDING (0) OR DESCENDING (1) ORDER OF SORT. C IPSIZ - SIZE OF TAG RECORD (WORDS). C KEYCT*- NUMBER OF KEYFIELDS (1 TO 9). C KEYPT - ADDRESS OF KEYFIELD DESCRIPTION TABLE. C KEYDT*- KEYFIELD DESCRIPTION TABLE (2 WORDS/KEYFIELD). C WORD 1 = STARTING BYTE ADDRESS (1 TO 256). C WORD 2 = ASCII/NUMERIC FLAG (BIT 15 = 0/1) AND C KEYFIELD LENGTH (2 TO 256). C IPRAM - WORD 1 = UNUSED. C * WORD 2 = OUTPUT DEVICE LOGICAL UNIT NUMBER. C * WORD 3 = OUTPUT MODE 0 => RECORDS C 1 => KEY FIELDS AND ADDRESSES C 2 => KEY ADDRESSES. C WORD 4 = MASTER DATA SET RECORD COUNT. C WORD 5 = STATUS OF SORT/MERGE (0 = NORMAL) C ISFN *- SOURCE FILE NAME (6 CHARACTERS). C IOFN *- OUTPUT FILE NAME (6 CHARACTERS). C IBSIA - BEGINNING SECTOR IN A (RELATIVE ALWAYS 0). C ICTRA - COUNT OF TAG RECORDS IN A (POSITIVE). C IBSOA - BEGINNING SECTOR OUT A (RELATIVE). C IBSIB - BEGINNING SECTOR IN B (RELATIVE). C ICTRB - COUNT OF TAG RECORDS IN B (POSITIVE). C IBSOB - BEGINNING SECTOR OUT B (RELATIVE). C ISTW - STARTING TRACK OF WORK AREA. C ISPT - SECTORS PER TRACK. C ILTW - LAST TRACK I N WORK AREA. C ISFT - SOURCE FILE STARTING TRACK ADDRESS. C ISFS - SOURCE FILE STARTING SECTOR ADDRESS. C IRSIZ - INPUT RECORD SIZE. C IBLCK - RECORDS PER SECTOR. C IPIT - NUMBER OF PLAYERS IN TOURNAMENT. C IRCNT - RECORD COUNT. C ISOSC - SORT OUTPUT STRING COUNT. C IMPC - MERGE PASSES COUNT. C IOFT - OUTPUT FILE STARTING TRACK. C IOFS - OUTPUT FILE STARTING SECTOR. C ISOF - SIZE OF OUTPUT FILE. CCCC C INITIALISE DCB CALL RMPAR(IPAR) CALL INDCB(IDCB,2) C SET UP MESSAGE FILE DESCRIPTOR. CALL FINFO(0,IFM,MESS,2HN ,1,IFM,IMB) IF(IPAR.NE.0)GO TO 26 CALL MIO(66,2,0,IMB,IFM,IMB) C ASC./DESC. ORDER & MASTER DATA SET NAME. 1 CALL FINFO(1,IF1,ISFN,2HY ,0,IFM,IMB) CALL INTAN(8,IDSF,0,1,IFM,IMB) C MISCELLANEOUS PARAMETERS FROM TTY. 3 CALL INTIN(6,IPRAM(3),IFM,IMB) CALL INTIN(5,IPRAM(2),IFM,IMB) IF (IPRAM(2) .NE. 2) GO TO 5 C ASK FOR OUTPUT DATA SET 4 CALL MIO(3,1,3,IOFN,IFM,IMB) CALL INTIN(69,MNR,IFM,IMB) 5 IPRAM(4) = IF1(8) + 1 IRSIZ = (IF1(5)+1)/2 C KEYFIELD NAMES AND VERIFICATION. CALL DFLDS(IB,IF1,IFLDS,0,INDEX,IS) 18 IPSIZ = 0 KEYCT = 0 20 DO 24 J=1,9 21 CALL MIO(7,1,2,JB,IFM,IMB) IF (JB(1) .EQ. 2H ) GO TO 25 CALL PACK3(KFN(J),1,1,JB,1,3) CALL DFLD(IF1(9),IFLDS,KFN(J),KEYDT(2*J-1),KEYDT(2*J),IT,IJ) IF (IJ .LE. IF1(9)) GO TO 22 CALL MIO(17,0,0,IPRAM,IFM,IMB) GO TO 21 22 IPSIZ = IPSIZ + KEYDT(2*J) KEYDT(2*J) = IOR(KEYDT(2*J),ISHFT(IT,-15)) 24 KEYCT = KEYCT + 1 25 IF (KEYCT .LE. 0) GO TO 18 IF (IPSIZ .LE. 80) GO TO 30 CALL MIO(19,0,0,IPRAM,IFM,IMB) GO TO 18 CC CALL BY PROGRAM 26 CALL EXEC(21,IPAR,ICOM,33) IPSIZ=0 DO 27 J=1,KEYCT 27 IPSIZ=IPSIZ+IAND(KEYDT(2*J),177B) IF(IPSIZ.GT.80)STOP 1 CALL DFILE(IF1,ISFN,IR,IW) IPRAM(4)=IF1(8)+1 IRSIZ=(IF1(5)+1)/2 C COMMON CONSTANTS. 30 IPSIZ = (IPSIZ+1)/2 + 2 ISPT=48 IBSIB = ((IPRAM(4)/(128/IPSIZ))+1)/ISPT + 1 IBSIA = ISHFT(IBSIB,-2) IBSIB = IBSIB*ISPT IBSOA = IBSIB + IBSIB IBSOB = IBSOA + IBSIB C WORK AREA CALCULATIONS. CALL EXEC(4,IBSIA+100000B,ISTW,IPRAM,ISPT) ILTW=ISTW+IBSIA IBSIA=0 ISPT=ISPT/2 IF(ISTW.NE.-1)GO TO 35 CALL MIO(20,0,0,IPRAM,IFM,IMB) CALL MIO(21,0,0,IPRAM,IFM,IMB) CALL CFILE(0) STOP C DEFINITION SECTOR FOR RECORDS OUTPUT IN IB. 35 IF (IPRAM(2) .NE. 2) GO TO 45 C CREATE OUTPUT DATA SET REC=IF1(8)+1 IF(MNR.GT.REC) REC=MNR MXREC=REC+.2 SIZ=IF1(5) IF(IPRAM(3).EQ.1) SIZ=(IPSIZ-1)*2 IF(IPRAM(3).EQ.2) SIZ=2. ISIZE=REC*SIZ/256.+2. ISIZE(2)=SIZ/2.+.2 355 CALL CREAT(IDCC,IE,IOFN,ISIZE,2) IF(IE.GE.0) GOTO 36 IF(IE.NE.-2) STOP 1 CALL PURGE(IDCC,IE,IOFN) GOTO 355 36 CALL OPEN(IDCC,IE,IOFN,6) CALL DIO(-1,IF1,IB) CALL MOVW(IB2,132,0,0,0) IB(2) = 0 CALL MOVW(IB(106),10,0,0,0) DO 38 J=1,KEYCT IB(106+J) = KFN(J) 38 IB2(106+J)= KFN(J) IB(4)=MXREC CALL WRITF(IDCC,IE,IB,128,ISIZE) IF (IPRAM(3) .EQ. 0) GO TO 45 C DEFINITION SECTOR FOR KEYS OUTPUT IN IB2. IB2(1) = 102204B IB2(3)=IOR(ISHFT(IPSIZ-1,-8),KEYCT+1) IF (IPRAM(3) .EQ. 2) IB2(3) = 401B IB2(4)=MXREC IB2(5) = IB(5) IB2(6) = 13460 CALL PACK3(IB2,7,2,ISFN,1,6) IB2(9) = -32000 IB2(10)= 1 KAD = 2 DO 40 J=1,KEYCT CALL DFLD(IF1(9),IFLDS,KFN(J),L1,L2,L3,LL) DO 39 K=1,5 39 IB2(5*J+K+5) = IB(5*LL+K) IB2(10+5*J) = IOR(IPICK(IB2(10+5*J),8),ISHFT(KAD,-8)) KAD = KAD + IPICK(IB2(10+5*J),7) + 1 40 CONTINUE C OUTPUT THE DEFINITION SECTOR. 41 CALL WRITF(IDCC,IE,IB2,128,ISIZE) CCCC 45 CALL CFILE(0) CALL CLOSE(IDCC) CALL FILL(ICOM) CALL EXEC(8,NEXT)  END END$ ASMB,R,L,C NAM SORT,3 ENT SORT,FILL,EMPTY EXT EXEC,.ENTR,MIO,LUMIO,LUX ENT DSFLG,PSIZE,KEYCT,KEYPT,KEYDT,PRAM ENT PFNAM,OFNAM,BSCIA,BLCTA,BSCOA,BSCIB ENT BLCTB,BSCOB,STRAK,SIZE,LTRAK ENT DFILT,DFILS,RECSZ,BLOCK ENT PPLAY,RECNT,STRGC,MERGC ENT FILT,FILS,NSECT,PRAM3 ************************************************************************ * * SAMPLE CALL BY PROGRAM * * DIMENSION IPARM(33),ISORT(3) * DATA ISORT/2HSO,2HRT,2H / * DATA IPARM/0,0,2,0,1,10,35,100014B,14*0,291,2,0,0,0,2HIN,2HFI,2HL * -,2HOU,2HTF,2HIL/ * ICLAS=0 * CALL EXEC(20,0,IPARM,33,IDUM,IDUM,ICLAS) * CALL EXEC(23,ISORT,0,ICLAS) *C UPON RETURN THE FILE 'INFILE' IS SORTED INTO 'OUTFIL' ON 2 FIELDS *C THE FIRST, STARTING IN COLUMN 1, IS 10 BYTES LONG *C THE SECOND STARTS IN COLUMN 35, IS 12 BYTES LONG AND NUMERIC *C THE FILE 'OUTFIL' IS CREATED ON CR 291 * ***********************************************************************E SORT NOP JSB LUX DEF *+1 IOR =B400 STA LUMIO INB LDA 1,I GET SECOND PARAMETER STA B SAVE FOR CALL 'ASET' JSB EXEC CALL 'ASET' DEF *+4 DEF D8 DEF NAME DEF B NAME ASC 3,ASET B NOP D8 DEC 8 .BUF NOP FILL NOP JSB .ENTR DEF .BUF LDB ..COM STB .COM LDB DM53 NEXT LDA .BUF,I STA .COM,I ISZ .BUF ISZ .COM INB,SZB JMP NEXT LDA .KEY STA KEYPT JMP FILL,I .KEY DEF KEYDT DM53 DEC -53 .COM NOP ..BUF NOP EMPTY NOP JSB .ENTR DEF ..BUF LDB ..COM STB .COM LDB DM53 NXT LDA .COM,I STA ..BUF,I ISZ ..BUF ISZ .COM INB,SZB JMP NXT JMP EMPTY,I ..COM DEF DSFLG DSFLG NOP PSIZE NOP KEYCT NOP KEYPT NOP KEYDT BSS 18 PRAM BSS 5 PRAM3 EQU PRAM+3 PFNAM BSS 3 OFNAM BSS 3 BS  CIA NOP BLCTA NOP BSCOA NOP BSCIB NOP BLCTB NOP BSCOB NOP STRAK NOP SIZE NOP LTRAK NOP DFILT NOP DFILS NOP RECSZ NOP BLOCK NOP PPLAY NOP RECNT NOP STRGC NOP MERGC NOP FILT NOP FILS NOP NSECT NOP END SORT  ASMB,R,L,C NAM ASO,5 SUP * * EXT DSFLG,PSIZE,KEYCT,KEYPT,KEYDT,PRAM EXT PFNAM,OFNAM,BSCIA,BLCTA,BSCOA,BSCIB EXT BLCTB,BSCOB,STRAK,SIZE,LTRAK EXT DFILT,DFILS,RECSZ,BLOCK EXT PPLAY,RECNT,STRGC,MERGC EXT FILT,FILS,NSECT EXT PRAM3 * * LOCAL VARIABLES SBFLG OCT 0 STRING BROKEN FLAG JEND OCT 0 ENDFILE DETECTED FLAG MSTR OCT 0 COUNT OF MERGE STRINGS JEOF OCT 102204 END OF FILE MARK IN USER DISC FILE JDEL OCT 112224 INDICATOR FOR DELETED RECORD. JCONT OCT 0 INDEX TO LOWER CONTENDER KCONT OCT 0 INDEX TO HIGHER CONTENDER KWIN OCT 0 ADDR. OF WINNER TABLE POSITION I OCT 0 LOOP COUNTER IX OCT 0 INDEX ASSOCIATED WITH I J OCT 0 LOOP COUNTER JX OCT 0 INDEX ASSOCIATED WITH J NPART OCT 100000 NON-PARTICIPATING FLAG PTAB OCT 0 ADDRESS OF PLAYER TABLE PTEMP OCT 0 TEMPORARY PACK AREA TLVLS OCT 0 NUMBER OF TOURNEY LEVELS WTAB OCT 0 ADDRESS OF WINNER TABLE TEMPA OCT 0 TEMPORARIES FOR MAIN LINE USE TEMPB OCT 0 TEMPC OCT 0 AREG EQU 0 BREG EQU 1 ACA EQU 0 ACB EQU 1 LWM DEF ENDTB LWL DEF TABLE TABLE BSS 4096 ENDTB NOP DCB BSS 144 ERR NOP MSIZE OCT 0 SIZE OF AVAILABLE MEMORY * EXT OPEN,READF,CLOSE EXT EXEC EXECUTIVE CALL ENT ASO * * CONSTANTS MONE DEC -1 MTWO DEC -2 RECAD BSS 1 ADDRESS OF CURRENT RECORD WITHIN BUFFER LRECL BSS 1 RECORD # WITHIN CURRENT SECTOR MASK1 OCT 077777 MASK TO REMOVE SIGN BIT MASK2 OCT 177776 MASK TO REMOVE LSB * CONSTANTS FOR CHARACYER MAPPING MINUS OCT 55 PLUS OCT 53 BLANK OCT 40 ZERO OCT 60 PERD OCT 56 * * SUBROUTINE VARIABLES K OCT 0 LOOP COUNTER KX OCT 0 ASSOCIATED INDEX L OCT 0 LOOP COUNTER PART OCT 0 PARTICIPATING FLAG NPLAY OCT 0 COUNT OF PLAYERS IN TOURNAMENT TEMP1 OCT 0 TEMPORARIES FOR SUBROUTINE USAGE TEMP2 OCT 0 TEMP3 OCT 0 TEMP4 OCT 0 PACK1 OCT 0 PARAMETER TO PACK SUBROUTINE SPS1 OCT 0 PARAMETER TO SPS SUBROUTINE DADDR ASC 1, DISK ADDRESS OF INPUT RECORD * * ERROR MESSAGES MSG0 DEF *+1 DEF *+2 DEC 10 ASC 10,INSUFFICIENT STORAGE MSG1 DEF *+1 DEF *+2 DEC 8 ASC 8,NULL INPUT FILE MSG2 DEF *+1 DEF *+2 DEC 17 ASC 17,RECORD COUNT EXCEEDS MAXIMUM COUNT * * * COMPUTE LARGEST POSSIBLE NUMBER OF PLAYERS * MUST BE AN EVEN POWER OF TWO .GT. 2**1 ASO NOP ENTER THE SORT PHASE. JSB OPEN DEF *+4 DEF DCB DEF ERR DEF PFNAM LDA BUFFL LOAD THE OUTPUT BUFFER LENGTH CLB DIV PSIZE DIVIDE BY THE PLAYER SIZE CMA,INA STA BFFL BFFL = SORT STRINGS PER SECTOR. * LDA LWL COMPUTE AVAILABLE MEMORY INA STA PTAB SET PLAYER TABLE BASE ADDRESS CMA ADA LWM STA MSIZE SAVE AVAILABLE MEMORY SIZE LDA PSIZE CMA,INA ADA MSIZE INA LDB PSIZE COMPUTE THE NUMBER OF PLAYERS INB STB TEMPA CLB STB STRGC SET TO ZERO STB RECNT STB MERGC DIV TEMPA DIVIDE BY PLAYER SIZE + 1 CLB DSI1 INB ROUND TO NEAREST POWER OF 2,DOWNWARD ARS SZA JMP DSI1 INA ADB MONE STB TLVLS SAVE NUMBER OF TOURNEY LEVELS DSI2 ADB MONE ALS SZB JMP DSI2 STA PPLAY SAVE PLAYER COUNT CMA,INA STA NPLAY SAVE NEGATED CMA,INA MPY PSIZE COMPUTE ADDR. OF TEMPORARY PACK AREA ADA PTAB STA PTEMP ADA PSIZE AND WINNER TABLE STA WTAB * * ENSURE AT LEAST FOUR PLAYERS LDA TLVLS ADA MTWO SSA,RSS JMP DSI3 LDA MSG0 NO, PRINT MESSAGE FIN JSB MSdG JSB EXEC DEF *+2 DEF D6 D6 DEC 6 DSI3 CLA CLEAR VARIABLES STA SBFLG STA JEND STA MSTR STA DADDR STA OUTID STA BLCOA STA BLCOB LDA ADNAO STA IAO LDA ADNBO STA IBO LDA ADBOA STA PTOTA LDA ADBOB STA PTOTB LDA BFFL STA CTOTA STA CTOTB LDA BSCIA STA RSCOA LDA BSCIB STA RSCOB * STORE THE FILE STARTING TRACK AND SECTOR LDA DFILT STA READT LDA DFILS STA READS CCA STA RECCT SET RECORD COUNT TO -1 FOR INITIAL ENTRY * * INITIALIZE PLAYER TABLE LDA NPART SET PARAMETER FOR SPS STA SPS1 JSB SPS SET ALL NON-PARTICIPATING LDA NPLAY SET LOOP COUNTER STA I CLA CLEAR INDEX STA IX IN1 JSB READ READ INPUT RECORD CPA JEOF TEST FOR END OF FILE JMP *+2 JMP IN3 NO LDA IX YES, ANY RECORDS READ SZA JMP IN2 YES LDA MSG1 NO, PRINT NULL MESSAGE JMP FIN IN2 ISZ JEND SET EOF STATUS JMP RTOUR RUN THE TOURNEY IN3 LDA IX POINTER FOR PACK ROUTINE STA PACK1 JSB PACK ISZ IX INCREMENT INDEX,COUNT ISZ I JMP IN1 * * COMPARE PLAYERS, ESTABLISH WINNER TREE, AND SELECT AN OVERALL WINNER RTOUR LDA NPLAY NUMBER OF PLAYERS, NEGATED STA TEMPA LDA TLVLS GET LEVEL COUNT CMA,INA NEGATE STA I TO LOOP COUNTER, OUTER CLA CLEAR INDEX STA IX RT0 LDA TEMPA ESTABLISH COUNT OF COMPARISONS THIS LEVEL ARS STA TEMPA STA J TO INNER LOOP COUNTER CLA CLEAR INDEX STA JX LDB MONE CALCULATE -(2**(TLVLS-IX)) LDA IX CMA,INA ADA TLVLS RT1 BLS ADA MONE SZA  JMP RT1 STB TEMPB SAVE RESULT * * START OF INNER LOOP RT2 LDA TEMPB CALCULATE PPLAY+TEMPB+JX+WTAB ADA JX ADA PPLAY ADA WTAB STA KWIN RESULT TO WINNER TABLE INDEX ADDR. LDA IX OUTER INDEX SZA FIRST TIME THROUGH JMP RT2.5 NO LDA JX YES ALS STA JCONT TO LOWER CONTENDER POINTER INA STA KCONT JMP RT3 RT2.5 LDA TEMPB SECOND TO N TIMES THROUGH ADA JX ALS CALCULATE PPLAY+2*(TEMPB+JX)+WTAB ADA PPLAY ADA WTAB STA TEMPC SAVE LDA TEMPC,I STA JCONT INDEX TO LOWER CONTENDER ISZ TEMPC LDA TEMPC,I STA KCONT INDEX OF HIGHER CONTENDER RT3 JSB COMPR COMPAR CONTENDERS STA KWIN,I WINNING INDEX TO TABLE ISZ JX INCREMENT INNER INDEX,COUNTER ISZ J DONE THIS LEVEL JMP RT2 NO,CONTINUE ISZ IX YES, INCREMENT OUTER INDEX,COUNTER ISZ I TOURNEY OVER JMP RT0 NO, PERFORM NEXT LEVEL OF COMPARISONS RT4 LDA KWIN,I FETCH INDEX TO PREVIOUS WINNER MPY PSIZE ADA PTAB STA TEMPC SAVE ABSOLUTE ADDR. LDA TEMPC,I FETCH WINNERS FLAG WORD SSA,RSS JMP PWIN YES JSB CHOUT NO, FLIP OUTPUT BUFFERS LDA JEND END OF FILE REACHED SZA,RSS JMP RT5 *FINISH BY OUT PUTING A AND B BUFFERS LDA BLCOA STA BLCTA LDA BLCOB STA BLCTB LDA ADOTA STA IAO JSB OUTA LDA ADOTB STA IBO JSB OUTB JSB CLOSE DEF *+2 DEF DCB JSB EXEC CALL IN DEF *+3 MERGE DEF D8 SEGMENT. DEF MERNM D8 DEC 8 JMP * MERNM ASC 3,AMER RT5 STA SBFLG RESET STRING BREAKER FLAG LDA PART SET ALL PARTICIPATING STA SPS1 JSB SPS JMP RTvOUR BEGIN THE NEXT TOURNEY * * A PARTICIPATING WINNER IS ESTABLISHED PWIN LDA KWIN,I BUILD ADDRESS OF OUTPUT TAG MPY PSIZE ADA PTAB STA *+2 JSB COOUT ADD WINNER TO CURRENT STRING NOP LDA JEND END OF FILE REACHED SZA JMP PW4 YES, DON'T READ IN ANOTHER PLAYER JSB READ FETCH NEXT ENTRANT CPA JEOF FILE MARK JMP *+2 JMP PW1 NO ISZ JEND YES, SET FILE MARK STATUS LDA SBFLG STRING BROKEN SZA,RSS JMP PW4 NO JSB CHOUT YES, END OF CURRENT STRING LDA PART SET ALL PARTICIPATING STA SPS1 JSB SPS LDB TEMPC,I FETCH FLAG WORD ADB NPART SET NON-PARTICIPATING STB TEMPC,I RESTORE JMP RTOUR RUN FINAL TOURNEY * * ENTER NEW PLAYER IN TOURNEY PW1 LDA PPLAY STA PACK1 INDEX TO TEMPORARY PACK AREA JSB PACK LDA PPLAY INDEX TO PTEMP STA JCONT LDA KWIN,I INDEX TO PREVIOUS WINNER STA KCONT JSB COMPR COMPARE NEW ENTRANT AGAINST PREVIOUS WINNER CPA KCONT DOES NEW ENTRANT BEAT PREVIOUS WINNER JMP PW2 NO LDA PTEMP,I YES, ADA NPART SET NON-PARTICIPATING STA PTEMP,I CLA,INA SET STRING BROKEN FLAG STA SBFLG PW2 LDA PTEMP MOVE TEMPORARY TO WINNER SLOT STA TEMPA SOURCE ADDRESS LDA TEMPC STA TEMPB DESTINATION ADDRESS LDB PSIZE COUNT TO B CMB,INB PW3 LDA TEMPA,I MOVE PSIZE NUMBER OF WORDS STA TEMPB,I ISZ TEMPA ISZ TEMPB INB INCREMENT COUNT SZB JMP PW3 CONTINUE JMP PW5 DONE PW4 LDA TEMPC,I SET WINNER NON-PARTICIPATING ADA NPART STA TEMPC,I RESTORE * * NOW BRING UP THE NEXT WINNER PW5 LDA TLVLS COUNT OF COMPARISONS CMA,INA NEGATE STA I TO LOOP COUNTER v CLA STA IX CLEAR INDEX LDA KWIN,I FETCH INDEX TO PREVIOUS TOURNEY WINNER AND MASK2 CLEAR LSB STA TEMPA SAVE IN TEMPORARY STA JCONT INDEX TO LOWER CONTENDER INA STA KCONT LDB MTWO CALCULATE -(2**(TLVLS+1)) LDA TLVLS PW6 BLS ADA MONE SZA JMP PW6 STB TEMPB JMP PW8 CALCULATE WINNER INDEX ADDR. * * DETERMINE CONTESTANTS FOR SUCCEEDING ROUNDS PW7 LDA TEMPC INDEX TO PREVIOUS WINNER INDEX AND MASK2 CLEAR LSB ADA WTAB LDB AREG,I STB JCONT INDEX \O LOWER CONTENDER INA LDB AREG,I STB KCONT INDEX TO HIGHER CONTENDER * * CALCULATE ADDRESS OF WINNER INDEX PW8 LDA TEMPA TEMPA/2 ARS STA TEMPA LDA TEMPB ARS STA TEMPB TEMPB/2 ADA PPLAY CALCULATE PPLAY+TEMPB+TEMPA+WATB ADA TEMPA STA TEMPC ADA WTAB STA KWIN ADDRESS OF WINNER INDEX JSB COMPR COMPARE CONTESTANTS STA KWIN,I SAVE WINNER INDEX ISZ IX INCREMENT INDEX, COUNTER ISZ I DONE JMP PW7 NO JMP RT4 YES * * SUBROUTINE AREA * * SET ALL PLAYER STATUS FLAGS SPS NOP LDA NPLAY SET COUNT STA TEMP1 LDA PSIZE SIZE OF EACH CMA,INA STA TEMP2 SP1 LDA TEMP2 ADA PSIZE STA TEMP2 ADA PTAB ADD TO BASE ADDR. STA TEMP3 LDA TEMP3,I FETCH FLAG WORD AND MASK1 CLEAR MSB ADA SPS1 SET OR CLEAR STA TEMP3,I ISZ TEMP1 BUMP COUNT JMP SP1 CONTINUE JMP SPS,I RETURN * ROUTINE TO BUILD DESCRIPTOR PORTION OF RECORD (TAG) * PARAMETERS ARE IN COMMON FROM KEYBOARD INTERPRETER * MAPPING IS PERFORMED ON NUMERIC TYPE FIELDS PACK NOP LDA PACK1 INDEX TO PACK MPY PSIZE TIMES PLAYER SIZE ADA PTAB PLpUS BASE LDB DADDR MOVE RELATIVE SECTOR TO TABLE STB AREG,I INA LDB LRECL LOAD THE CURRENT RECORD COUNT STB AREG,I STORE IN I THE KEY STRING INA STA TEMP1 SAVE DESTINATION ADDRESSES STA TEMP2 * * CLEAR REMAINING AREA LDB PSIZE ADB MTWO ADD -2 CLA PA0 STA TEMP2,I ISZ TEMP2 ADB MONE SZB JMP PA0 * LDA KEYCT GET COUNT OF KEYFIELDS CMA,INA NEGATE STA K TO LOOP COUNTER CLA STA KX CLEAR INDEX STA TEMP2 CLEAR DESTINATION INDEX PA1 LDA KX CALCULATE ADDR OF KEYFIELD PTRS ALS ADA KEYPT LDB AREG,I ADB MONE ALIGN STB TEMP3 SAVE SOURCE CHARACTER INDEX INA LDA AREG,I STA TEMP4 SAVE ALPHA OR NUMERIC FLAG AND MASK1 CLEAR MSB CMA,INA NEGATE COUNT STA L SAVE IN INNER LOOP COUNTER PA2 JSB GET FETCH INPUT CHARACTER LDB TEMP4 TEST IF NUMERIC SSB JSB MAP YES JSB STORE ISZ L DONE THIS KEYFIELD JMP PA2 NO ISZ KX ISZ K JMP PA1 GET NEXT KEYFIELD JMP PACK,I DONE * * USE TEMP3 TO PICK A CHARACTER FROM THE INPUT BUFFER * RETURN WITH VALUE IN A, LEADING ZEROES GET NOP LDA TEMP3 CLE CLEAR LINK ERA ADA RECAD BUILD THE SOURCE ADDRESS LDA AREG,I FETCH WORD SEZ,RSS UPPER HALF WORD? NO-SKIP ALF,ALF ROTATE 8 BITS GT1 AND B377 377B, CLEAR HIGH CHARACTER ISZ TEMP3 BUMP INDEX JMP GET,I B377 OCT 377 * * PERFORM CHARACTER MAPPING ON NUMERIC FIELDS MAP NOP CPA MINUS MINUS SIGN CLA YES, SET A TO BINARY ZERO CPA PLUS PLUS SIGN LDA ZERO YES SET TO ASCII ZERO CPA BLANK BLANK LDA ZERO YES, SET TO ASCII ZERO CPA PERD PERIOD LDA BLANK YES SET TO A BLANK JMP MAP,I * * USE TEMP2 TO POINT TO A CHARACTER POSITION * IN THE DESTINATION AREA. COMBINE WORD WITH A STORE NOP LDB TEMP2 DESTINATION INDEX CLE ERB ADB TEMP1 BUILD DESTINATION ADDRESS SEZ,RSS UPPER HALF WORD DESTINATION? ALF,ALF ROTATE 8 BITS ST1 IOR BREG,I COMBINE DATA STA BREG,I ISZ TEMP2 BUMP DESTINATION INDEX JMP STORE,I * * ROUTINE TO OUTPUT TELETYPE MESSAGE MSG NOP LDB AREG,I STB MBA SAVE BUFFER ADDRESS INA STA MBL JSB EXEC CALL I/O DEF *+5 RETURN DEF MREQ REQUEST TYPE DEF MCON CONTROL WORD MBA OCT 0 MBL OCT 0 JMP MSG,I MREQ OCT 000002 WRITE REQUEST MCON OCT 1 SKP * READ USER FILE INTO THE USER AREA USING THE PRIVOLEDGED EXEC CALL * STORING IN DADDR THE SECTOR AND TRACK NUMBERS. * LOW 8 BITS IS THE TRACK NUMBER * NEXT HIGHER 7 BITS THE SECTOR NUMBER (BIT 15 NOT USED HERE) * READ NOP * ISZ RECNT INCREMENT THE RECORD COUNT * CHECK TO SEE IF MAX RECORD COUNT HAS BEEN EXCEEDED RD0 LDA RECNT CMA,INA ADA PRAM3 ADD MAX COUNT SSA,RSS SKIP IF EXCEEDED JMP RD1 * LDA MSG2 JMP FIN * RD1 JSB READF DEF *+4 DEF DCB DEF ERR DEF IBUF LDA PIBUF STA RECAD ISZ LRECL RD2 LDA RECAD,I IF DELETED RECORD CPA JDEL THEN GET NEXT RECORD. JMP RD0 JMP READ,I RETURN * READS BSS 1 READT BSS 1 DRCOD DEC -1 DCON DEC 3 RECCT BSS 1 SKP * COMPAR TWO PLAYERS, RETURN WINNER IN A COMPR NOP LDA JCONT BUILD ABSOLUTE ADDR. MPY PSIZE ADA PTAB STA TEMP1 LDA KCONT MPY PSIZE ADA PTAB STA TEMP2 LDA TEMP1,I TEST IF LOWER PARTICIPATING SSA,RSS JMP CMP1 YES LDA KCONT NO, SELECT OPPONENT JMP COMPR,I CMP1 LDA TEMP2,I UPPER CONTENDER PARTICIPATING SSA,RSS JMP CMP2 YES LDA JCONT NO, SELECT LOWER AS WINNER JMP COMPR,I * * BOTH ARE PARTICIPATING CMP2 ISZ TEMP1 BUMP ADDRESSES ISZ TEMP2 ISZ TEMP1 ISZ TEMP2 LDA PSIZE ADA MTWO ADD -2 CMA,INA NEGATE PLUS 1 STA TEMP3 * * COMPAR ABSOLUTE VALUES, IF EQUAL, SELECT KCONT WINNER CMP6 LDA TEMP1,I EQUAL CPA TEMP2,I JMP CMP4 YES, CONTINUE XOR TEMP2,I SIGNS THE SAME SSA JMP CMP3 NO LDB TEMP1,I YES COMPARE ARITHMETIC CMB,INB ADB TEMP2,I CLA SET FOR JCONT WINNER SSB KCONT.LT.JCONT CMA SET FOR KCONT JMP TAORD * * * SIGNS ARE NOT THE SAME CMP3 CLA SET FOR JCONT WINNER LDB TEMP1,I FETCH CURRENT JCONT WORD SSB,RSS JCONT NEG CMA NO,SET FOR KCONT JMP TAORD * IDENTICAL VALUES, CONTINUE CMP4 ISZ TEMP1 ISZ TEMP2 ISZ TEMP3 JMP CMP6 CMP5 LDA KCONT ALL THE SAME, SELECT KCONT JMP COMPR,I * * TEST IF ASCENDING OR DESCENDING TAORD LDB DSFLG GET DESCENDING FLAG SZB SET CMA YES SZA JMP CMP5 LDA JCONT JMP COMPR,I SKP CHOUT NOP ISZ STRGC INCREMENT THE STRING COUNT LDA OUTID SZA CCA INA STA OUTID JMP CHOUT,I OUTID NOP * COOUT NOP LDB COOUT,I ISZ COOUT LDA OUTID SZA JMP *+4 STB COA JSB OUTA JMP COOUT,I STB COB JSB OUTB JMP COOUT,I *OUTA OUTPUPS CO TO OUTPUT BUF A * OUTA NOP JMP IAO,I IAO NOP NAO JSB MOVE COA NOP PTOTA NOP LD#A PTOTA ADA PSIZE ADD PLAYER SIZE STA PTOTA ISZ BLCOA ISZ CTOTA JMP OUTA,I LDA ADOTA STA IAO JMP OUTA,I OTA JSB INOUT DEC 2 ADBOA DEF BFOA DEF BUFFL RSCOA NOP NOP ERROR IF PROGRAM REFERENCES THIS LDA RSCOA ADA FOUR STA RSCOA LDA ADBOA STA PTOTA LDA BFFL STA CTOTA LDA ADNAO STA IAO JMP NAO CTOTA NOP BLCOA NOP ADNAO DEF NAO ADOTA DEF OTA *OUTB OUTPUTS CO TO OUT PUT BUF B * OUTB NOP JMP IBO,I IBO NOP NBO JSB MOVE COB NOP PTOTB NOP LDA PTOTB ADA PSIZE ADD PLAYER SIZE STA PTOTB ISZ BLCOB ISZ CTOTB JMP OUTB,I LDA ADOTB STA IBO JMP OUTB,I OTB JSB INOUT DEC 2 ADBOB DEF BFOB DEF BUFFL RSCOB NOP NOP ERROR IF PROGRAM REFERENCES THIS LDA RSCOB ADA FOUR STA RSCOB LDA ADBOB STA PTOTB LDA BFFL STA CTOTB LDA ADNBO STA IBO JMP NBO CTOTB NOP BLCOB NOP ADNBO DEF NBO ADOTB DEF OTB *MOVE SUBROUTINE TO FOLLOW * MOVE NOP LDA PSIZE LOAD PLAYER SIZE CMA,INA STA CTMV STORE LOOP COUNTER LDB MOVE LDA ACB,I STA MAD1 STORE X ADDRESS INB LDA ACB,I GET Y ADDRESS INB STB MOVE SETUP FOR RETURN LPMV LDB MAD1,I ISZ MAD1 PNT NEXT X ELEMENT STB ACA,I STORE IN Y ADDRESS INA PUT NEXT Y ELEMENT ISZ CTMV SKIP IF DONE JMP LPMV LOOK IF NOT DONE JMP MOVE,I RETURN CTMV NOP MAD1 NOP *ACTUAL INPUT/OUTPUT ROUTINE FOLLOWS * INOUT NOP LDB INOUT SEE CALL SUENCE LDA ACB,I STA RCODE 1 OR 2 READ OF WRITE INB LDA ACB,I STA BUFAD AD OF BUF TO BE TRANSFERRED INB LDA ACB,I STA BUFLG % ADDRESS OF LENGTH OF BUFFER INB LDA ACB,I STA RSECT SELAATIVE SECTOR TO BE TRANSFERRED INB STB INOUT PNTS TO ERROR EXIT JSB TRKSC CALC OF TRACK AND SECTR < RELATIVE SEC RSECT NOP JMP INOUT,I ERROR EXIT ISZ INOUT NORMAL RETURN SETUP JSB EXEC INITIATES TRANSFER AND RETURNS DEF *+7 DEF RCODE DEF CONWD BUFAD NOP BUFLG NOP DEF TRACK DEF SECTR JMP INOUT,I NORMAL RETURN RCODE NOP READ OF WRITE 1 OR 2 STORED HERE CONWD EQU PRAM WRITE BINARY ONTO SYSTEM WORD AREA SKP *TRKSC CALCULATES TRACK AND SECTOR FROM RELATIVE SECTOR * TRKSC NOP LDA TRKSC,I STA RLSEC SETUP RELATIVE SECTOR ISZ TRKSC NOW PTS TO ERROR RETURN CLA STA T INITALIZE T LDB SIZE NO OF SECTORS PER TRACKK CMB, INB FORM - SIZE LDA RLSEC RELATIVE SECTOR LOADED LPTR ADA ACB SUBRRACT SIZE SSA, SZA SKIP IF + OF 0 JMP *+3 IF NEGATIVE ISZ T INCRENENT T FOR EACK SUCCESSFUL LOOP JMP LPTR LOOP CMB, INB RESTORE SIZE ADA ACB ADD SIZE ALS STA SECTR STORE SECTOR LDA STRAK LOAD FIRST TRACK ADA T ADD T TO FORM ACTUAL TRACK STA TRACK STORE IN TUACK CMA, INA FORM -TRACK ADA LTRAK TEST TO SEE IF TRACK OUT OF RANGE SSA, RSS SKIP < ISZ TRKSC TRACK IN RANGE > NORMAL RETURN JMP TRKSC,I TRACK OUT OF RANGE RLSEC NOP T NOP COUNT NO OF TRACKS TO ADD TO 1ST SECTR NOP TRACK NOP ACTUAL LTRACK BUFFL DEC 128 FOUR DEC 1 BFFL BSS 1 # OF SORT STRINGS PER OUTPUT BUFFER PIBUF DEF *+1 IBUF BSS 128 BFOA BSS 128 BFOB BSS 128 END ASO HFBBHASMB,R,L,C NAM AMER,5 * *MERGE PROGRAM SEGMENT TO MERGE KEY FIELDS FROM DISC * * THIS SEGMENT IS THE MERGE PHASE. * THE TOURNAMENT SORT OUTPUTS SORTED KEY STRINGS ONTO * TWO FILES IN THE SYSTEM WORKAREA. THE MERGE PHASE * TAKES THESE TWO FILES AND MERGES THEM INTO TWO OTHER * FILES. THUS CREATING STRINGS OF APPROXIMATELY TWICE THE * LENGTH. * * EXT DSFLG,PSIZE EXT PRAM,PFNAM,OFNAM EXT BSCIA,BLCTA,BSCOA,BSCIB,BLCTB,BSCOB EXT STRAK,SIZE,LTRAK EXT DFILT,DFILS,RECSZ,BLOCK EXT PPLAY,RECNT,STRGC,MERGC EXT FILT,FILS,NSECT * EXT EXEC ENT AMER ACA EQU 0 ACB EQU 1 DM2 DEC -2 * *START SETS UP ASCENDING OR DECENDING SEQUENCE * AMER NOP ENTER THE MERGE PHASE. LDA BLCTB IF MERGE NOT SZA,RSS NECESSARY, JMP CPEND THEN EXIT. LDA PSIZE LOAD PLAYER SIZE ADA DM2 ADD -2 CMA,INA MAKE NEGATIVE FOR LOOP COUNTER STA COMPL STORE COMPARE LENGTH * COMPUTE # OF SORT STRINGS PER BUFFER LDA D128 CLB STB MERGC CLEAR MERGE PASS COUNT DIV PSIZE DIVIDE BY PLAYER SIZE CMA,INA STA BFFL STORE # OF STRINGS PER BLOCK * CMA,INA MPY PSIZE MULTIPLY BY PLAYER SIZE CMA,INA ADA D128 ADD 128 STA DIFF STORE THE # OF WORD LEFT OVER IN EACH BUFFER * * COMPUTE WHETHER ASCENDING OR DESCENDING AAA LDA DSFLG SZA, RSS JMP *+3 LDA DECND STA AORD JMP INITL * BUFFL DEC 512 DIFF BSS 1 THE # OF UNUSED WORDS IN EACH SECTOR BFFL BSS 1 # OF SORT STRINGS PER SECTOR COMPL BSS 1 COMPARE LENGTH(# OF WORDS IN KEY DESCRIPTOR) FOUR DEC 4 M4 DEC -4 D128 DEC 128 DECND SSA SKP *INITL INITIALIZES VALUES TO RESTART MERGE * INITL LDA BSCIA STA RSCIA LDA BSCIB STA RSCIB LDA BSCOA STA RSCOA LDA BSCOB STA RSCOB LDA BLCTA CMA,INA STA BLCIA LDA BLCTB CMA,INA STA BLCIB LDA ADLAI STA IAI LDA ADLBI STA IBI CLA STA BLCOA STA BLCOB LDA BFFL STA CTOTA STA CTOTB STA CTINA STA CTINB LDA ADBOA STA PTOTA LDA ADBOB STA PTOTB LDA ADNAO STA IAO LDA ADNBO STA IBO LDA M4 STA SCTAI STA SCTBI STA SCTAO STA SCTBO ISZ MERGC INCREMENT MERGE PASS COUNT CLA STA BRKA STA BRKB STA EA STA EB STA OUTID LDA JNORM STA WNEND JSB LODCA NOP JSB LODCB NOP ERROR RETURN. ? ACTION. JMP CAMCB SKP * DISC BUFFER ARE 4 SECTORS LONG. * SORT STRINGS ARE BLOCKED WITHIN EACH OF THE 4 SECTORS. * THERE MAY BE UNUSED WORDS AT THE END OF EACH SECTOR. * *LODCA SUBR. TO LOAD 'A' INPUT BUFFER AND CA BUFFER * LODCA NOP JMP IAI,I IAI NOP * MOVE STRING FROM DISC BUFFER TO COMPARE BUFFER NAI JSB MOVE PTINA NOP DEF CA * LDA PTINA ADA PSIZE ADD PLAYER SIZE STA PTINA STORE POINTER TO NEXT BUFFER POSITION ISZ CTINA INCREMENT COUNT WITHIN SECTOR JMP A1 OKAY * CHECK TO SEE IF NEW DISC BUFFER IS NEEDED LDB BFFL STB CTINA RESET COUNT WITHIN SECTOR ADA DIFF ADD LEFTOVER WORD COUNT STA PTINA STORE POINTER STARTING AT SECTOR BOUNDARY ISZ SCTAI INCREMENT SECTOR COUNT JMP A1 NEW DISC BUFFER NOT NEEDED * SET UP TO READ NEW DISC BUFFER LDA ADLAI ADDRESS OF DISC READ SECTION STA IAI LDA M4 STA SCTAI RESET SECTOR COUNT * CHECK TO SEE IF 'A' DATA ON DISC IS EXHAUSTED A1 ISZ BLCIA INCREMENT A DATA COUNT JMP *+3 * NO MORE 'A' DATA LD*A ADAED STA IAI * ISZ LODCA INCREMENT RECORD IN 'A' AED JMP LODCA,I * READ A DISC BUFFER LAI JSB INOUT DEC 1 ADBIA DEF BFIA DEF BUFFL RSCIA NOP JSB ERROR LDA RSCIA ADA FOUR STA RSCIA LDA ADBIA STA PTINA LDA ADNAI STA IAI JMP NAI CTINA NOP ADNAI DEF NAI ADAED DEF AED ADLAI DEF LAI BLCIA NOP SCTAI BSS 1 SECTOR COUNT WITH DISC BUFFER SKP *LODCB SUBR. TO LOAD B INPUT BUFFER AND CB BUFFER * LODCB NOP JMP IBI,I IBI NOP * MOVE STRING FROM DISC BUFFER TO COMPARE BUFFER NBI JSB MOVE PTINB NOP DEF CB LDA PTINB ADA PSIZE ADD PLAYER SIZE STA PTINB STORE POINTER TO NEXT BUFFER POSITION ISZ CTINB INCREMENT COUNT WITHIN SECTOR JMP B1 OKAY * CHECK TO SEE IF NEW DISC BUFFER IS NEEDED LDB BFFL STB CTINB RESET COUNT WITHIN SECTOR ADA DIFF ADD LEFTOVER WORD COUNT STA PTINB STORE POINTER STARTING AT SECTOR BOUNDARY ISZ SCTBI INCREMENT SECTOR COUNT JMP B1 NEW DISC BUFFER NOT NEEDED * SET UP TO READ NEW DISC BUFFER LDA ADLBI ADDRESS OF DISC READ SECTION STA IBI LDA M4 STA SCTBI RESET SECTOR COUNT * CHECK TO SEE IF 'B' DATA ON DISC IS EXHAUSTED B1 ISZ BLCIB INCREMENT A DBTA COUNT * NO MORE 'B' DATA JMP *+3 LDA ADBED STA IBI * ISZ LODCB INCREMENT RECORD IN 'B' BED JMP LODCB,I * READ A DISC BUFFER LBI JSB INOUT ONE DEC 1 ADBIB DEF BFIB DEF BUFFL RSCIB NOP JSB ERROR LDA RSCIB ADA FOUR STA RSCIB LDA ADBIB STA PTINB LDA ADNBI STA IBI JMP NBI CTINB NOP ADNBI DEF NBI ADBED DEF BED ADLBI DEF LBI BLCIB NOP SCTBI BSS 1 SECTOR COUNT WITH DISC BUFFER SKP *CAMCB MAIN MERGE LOGIC SECTION * CAMCB JSB COMP DEF CA+2 DEF CB+2 JMP WINA JMP WINB RA JSB LODCA LOADS CA AND FILLS INPUT BUF IF NEC JMP ENDB A LIST FINISHED - READ B RA1 JSB COMP CA IS LOADED. DEF CA+2 DEF CO+2 JMP BRAKA YES LDA BRKB NO SZA, RSS IS B BROKEN JMP CAMCB NO - BOTH A AND B CONTEND WINA JSB MOVE A WINS BE DEFAULT DEF CA CA GOES TO CO DEF CO JSB COOUT CO GOES TO OUTPUT BUF JMP RA LOAD NEW CA BRAKA ISZ BRKA SET BRKA INDICATOR LDA BRKB IS B ALSO BROKEN? SZA, RSS JMP WINB JMP CHOUT A AND B BREAK>CHANGE OUTPUT>CAMCB RB JSB LODCB LOAD CB JMP ENDA B LIST FINISHED RUN THROUGH A RB1 JSB COMP DOES B STRING BREAK? DEF CB+2 DEF CO+2 JMP BRAKB YES LDA BRKA NO SZA,RSS DOES A BREAK THE STRING? JMP CAMCB NO A AND B COMPLETE WINB JSB MOVE YES - B WINS BY DEFAULT DEF CB DEF CO JSB COOUT CO>O JMP RB LOAD CB AND CONTINUE BRAKB ISZ BRKB SET BRKB INDICATOR LDA BRKA IS A ALSO BROKEN? SZA, RSS JMP WINA NO>A WINS BY DEFOULT JMP CHOUT YES>A AND B BOTH BROKEN>CHANGE OUT PUT BRKA NOP BRKB NOP SKP *ENDA/ENDB SETS UP TO READ THROUGH REMAIINING LIST OR DETECT FINISH * ENDA ISZ BRKB SET BRKB INDICATOR LDA EA IS A LIST ALSO EMPTY? SZA JMP FNISH YES - FINISHED WITH THES PASS ISZ EB NO - SET B END INDICATORL LDA WA MODIFIES INSTRUCTION IN CHOUT STA WNEND JMP RA1 WA DEF WNA EA NOP INITIALIZE TO ZERO ENDB ISZ BRKA SET BRKA INDICATOR LDA EB IS B LIST ALSO FINIHED SZA JMP FNISH YES - FINISHED WITH THIS PASS ISZ EA SET END A INDICATOR LDA WB MODIFY INSTRUCTION IN CHOUT STA WNEND JMP RB1 WB DEF WNB EB NOP INITIALIZE TO ZERO SKP * COMPARE SUBROUTINE TO FOLLOW COMP NOP LDA COMPL INITIALIZE COUNTER STA CTCMP LDB COMP LDA ACB,I STA CAD1 ADDRESS OF X INB LDA ACB,I STA CAD2 ADDRESS OF Y INB STB COMP SET UP FOR RETURN LPC LDA CAD2,I LOOP CMA, INA ADA CAD1,I ISZ CAD1 ISZ CAD2 SZA JMP *+4 ISZ CTCMP JMP LPC JMP *+2 AORD SSA, RSS SPECIFIES ASCENDING OF DECENDING MERGE ISZ COMP JMP COMP,I > < CTCMP NOP CAD1 NOP CAD2 NOP *MOVE SUBROUTINE TO FOLLOW * MOVE NOP LDA PSIZE LOAD PLAYER SIZE CMA,INA STA CTMV LDB MOVE LDA ACB,I STA MAD1 STORE X ADDRESS INB LDA ACB,I GET Y ADDRESS INB STB MOVE SETUP FOR RETURN LPMV LDB MAD1,I ISZ MAD1 PNT NEXT X ELEMENT STB ACA,I STORE IN Y ADDRESS INA PUT NEXT Y ELEMENT ISZ CTMV SKIP IF DONE JMP LPMV LOOK IF NOT DONE JMP MOVE,I RETURN CTMV NOP MAD1 NOP SKP SKP *SUBROUTINE TO CHANGE TO OTHER OUTPUT BUF FOLLOWS * CHOUT LDA OUTID SWITCH OUTPUT BUFFER INDICATOR SZA CCA INA STA OUTID JMP WNEND,I JNORM DEF NORM WNEND NOP INITALIZE -DEF NORM ENDA>DEF WNA NORM CLA RESETS STRING BREAK STA BRKA INDICATORSL STA BRKB JMP CAMCB RETURNS TO COMPARE WNA CLA RESETS BRKA ONLY STA BRKA JMP WINA WNB CLA RESETS BRKB ONLY STA BRKB JMP WINB SKP *SUBROUTINE TO MOVE CO TO PROPER OUTPUT BUFER TO FOLLOW * COOUT NOP LDA OUTID INDICATES A OF B SZA JMP *+3 JSB OUTA JMP COOUT,I RETURN JSB OUTB JMP COOUT,I RETURN OUTID NOP SKP *OUTA  OUTPUTS CO TO OUTPUT BUF A * OUTA NOP JMP IAO,I IAO NOP * MOVE SORT STRING FROM COMPARE BUFFER TO DISC BUFFER NAO JSB MOVE DEF CO PTOTA NOP * LDA PTOTA ADA PSIZE ADD PLAYER SIZE STA PTOTA ISZ BLCOA ISZ CTOTA JMP OUTA,I OKAY, RETURN * CHECK TO SEE IF DISC BUFFER IS FULL LDB BFFL LOAD RECORD COUNT WITHIN SECTOR STB CTOTA STORE RECORD COUNT ADA DIFF ADD DIFFERENCE TO GET SECTOR BOUNDARY STA PTOTA STORE POINTER TO OUTOUT BUFFER ISZ SCTAO INCREMENT SECTOR COUNT, SKIP IF BUFFER FULL JMP OUTA,I OKAY, RETURN * SETUP TO OUTPUT A DISC BUFFER LDA ADOTA STA IAO JMP OUTA,I * OUTPUT A DISC BUFFER OTA JSB INOUT DEC 2 ADBOA DEF BFOA DEF BUFFL RSCOA NOP NOP ERROR IF PROGRAM REFERENCES THIS LDA M4 STA SCTAO RESET SECTOR COUNT LDA RSCOA ADA FOUR STA RSCOA LDA ADBOA STA PTOTA LDA ADNAO STA IAO JMP NAO CTOTA NOP BLCOA NOP ADNAO DEF NAO ADOTA DEF OTA SCTAO BSS 1 SKP *OUTB OUTPUTS CO TO OUT PUT BUF B * OUTB NOP JMP IBO,I IBO NOP * MOVE SORT STRING FROM COMPARE BUFFER TO DISC BUFFER NBO JSB MOVE DEF CO PTOTB NOP * LDA PTOTB ADA PSIZE ADD PLAYER SIZE STA PTOTB ISZ BLCOB ISZ CTOTB JMP OUTB,I OKAY, RETURN * CHECK TO SEE IF DISC BUFFER IS FULL LDB BFFL LOAD RECORD COUNT WITHIN SECTOR STB CTOTB STORE RECORD COUNT ADA DIFF ADD DIFFERENCE TO GET SECTOR BOUNDARY STA PTOTB STORE POINTER TO OUTPUT BUFFER ISZ SCTBO INCREMENT SECTOR COUNT, SKIP IF BUFFER FULL JMP OUTB,I OKAY, RETURN * SETUP TO OUTPUT A DISC BUFFER LDA ADOTB STA IBO JMP OUTB,I * OUTPUT A DISC BUFFER OTB JSB INOUT DEC 2 ADBOB DEF BFOB DEF BUFFL RSCO%.B NOP NOP ERROR IF PROGRAM REFERENCES THIS LDA M4 STA SCTBO RESET SECTOR COUNT LDA RSCOB ADA FOUR STA RSCOB LDA ADBOB STA PTOTB LDA ADNBO STA IBO JMP NBO CTOTB NOP BLCOB NOP ADNBO DEF NBO ADOTB DEF OTB SCTBO BSS 1 *SUBROUTINE TO SWAP TO NUMBERS FOLLOWS * SWAP NOP LDA SWAP,I STOREX ADDRESS IN SWAD1 STA SWAD1 ISZ SWAP LDA SWAP,I STORE Y ADDRESS IN SWAD2 STA SWAD2 ISZ SWAP SET UP OR RETURN LDA SWAD1,I LOAD X LDB SWAD2,I LOAD Y STA SWAD2,I STORE X IN Y ADDRESS STB SWAD1,I STORE Y IN X ADDRESS JMP SWAP,I RETURN SWAD1 NOP SWAD2 NOP SKP *ROUTINE TO FINISH MERGE AND SETUP FOR RESTARTING TO FOLLOW * FNISH NOP JSB SWAP DEF BSCIA DEF BSCOA JSB SWAP DEF BSCIB DEF BSCOB LDA BLCOA STA BLCTA LDA ADOTA STA IAO JSB OUTA LDA BLCOB SZA,RSS JSB CPEND STA BLCTB LDA ADOTB STA IBO JSB OUTB JMP INITL CPEND NOP JSB EXEC CALL IN DEF *+3 OUTPUT DEF D8 SEGMENT. DEF AOUT D8 DEC 8 AOUT ASC 3,AOUT *ACTUAL INPUT/OUTPUT ROUTINE FOLLOWS * INOUT NOP LDB INOUT SEE CALL SEQUENCE LDA ACB,I STA RCODE 1 OR 2 READ OF WRITE INB LDA ACB,I STA BUFAD AD OF BUF TO BE TRANSFERRED INB LDA ACB,I STA BUFLG ADDRESS OF LENGTH OF BUFFER INB LDA ACB,I STA RSECT SELAATIVE SECTOR TO BE TRANSFERRED INB STB INOUT PNTS TO ERROR EXIT JSB TRKSC CALC OF TRACK AND SECTR < RELATIVE SEC RSECT NOP JMP INOUT,I ERROR EXIT ISZ INOUT NORMAL RETURN SETUP JSB EXEC INITIATES TRANSFER AND RETURNS DEF *+7 DEF RCODE DEF CONWD BUFAD NOP BU0.*FLG NOP DEF TRACK DEF SECTR JMP INOUT,I NORMAL RETURN RCODE NOP READ OF WRITE 1 OR 2 STORED HERE CONWD EQU PRAM WRITE ONTO SYSTEM WORK AREA SKP *TRKSC CALCULATES TRACK AND SECTOR FROM RELATIVE SECTOR * TRKSC NOP LDA TRKSC,I STA RLSEC SETUP RELATIVE SECTOR ISZ TRKSC NOW PTS TO ERROR RETURN CLA STA T INITALIZE T LDB SIZE NO OF&SECTORS PER TRACKK CMB, INB FORM - SIZE LDA RLSEC RELATIVE SECTOR LOADED LPTR ADA ACB SUBRRACT SIZE SSA, SZA SKIP IF + OF 0 JMP *+3 IF NEGATIVE ISZ T I?C?E?E?T T F?R EACK SUCCESSFUL LOOP JMP LPTR LOOP CMB, INB RESTORE SIZE ADA ACB ADD SIZE ALS STA SECTR STORE&SEC?OR LDA STRAK 6LOAD FIRST TRACK ADA T ADD T TO FORM ACTUAL TRACK STA TRACK STORE IN TUACK CMA, INA FORM -TRACK ADA LTRAK TEST TO SEE IF TRACK OUT OF RANGE SSA, RSS SKIP < ISZ TRKSC TRACK IN RANGE > NORMAL RETURN JMP TRKSC,I TRACK OUT OF RANGE RLSEC NOP T NOP COUNT NO OF TRACKS TO ADD TO 1ST SECTR NOP TRACK NOP ACTUAL LTRACK SKP SKP ERROR NOP STA TEMP LDA ERROR ADA CORCT LDA TEMP JMP ERROR,I TEMP NOP CORCT OCT -7200 CA BSS 42 CB BSS 42 CO BSS 42 BFOA BSS 512 BFOB BSS 512 BFIA BSS 512 BFIB BSS 512 END AMER 0FTN4,L,A,T PROGRAM AOUT,5 CCCC C OUTPUT PORTION OF SORT PROGRAM. CCCC C EXTERNAL LUMIO DIMENSION IDCB(432),ICOM(53),IPRAM(5),ISFN(3),IOFN(3) DIMENSION IF1(11),IF2(11) DIMENSION IB1(132),IB2(133),IB3(132) DIMENSION IFM(11),MESS(3),MEND(6) EQUIVALENCE (IPRAM,ICOM(23)),(IPSIZ,ICOM(2)),(ISFN,ICOM(28)) *,(IOFN,ICOM(31)),(IBSIA,ICOM(34)),(ISTW,ICOM(40)) *,(ISPT,ICOM(41)),(IRCNT,ICOM(48)) DATA MESS/2HME,2HSS,2HSS/ DATA MEND/2H/S,2HOR,2HT:,2H $,2HEN,2HD / C CALL EMPTY(ICOM) CCC CHECK MESSAGE, SOURCE, OUTPUT DATA SETS. CALL INDCB(IDCB,3) CALL FINFO(0,IFM,MESS,2HN ,1,IFM,IB1) CALL FINFO(0,IF1,ISFN,2HN ,0,IFM,IB1) IF (IPRAM(2).EQ.2) CALL FINFO(0,IF2,IOFN,2HN ,2,IFM,IB1) 10 IT = ISTW + IBSIA/ISPT IS = MOD(IBSIA,ISPT) MSIZE = (IPSIZ-2)*2 KESIZ = IPSIZ - 1 IF (IPRAM(3) .EQ. 2) KESIZ = 1 JJK = 1 JJ = 1 IF (IPRAM(2) .NE. 6) GO TO 15 CALL EXEC(2,6,30440B,1) JJK = 0 JJ = 0 KDSI = KESIZ + 4 15 IF (IPRAM(2) .NE. 1) GO TO 17 JJ = 0 KDSI = KESIZ + 3 17 IRPT = 128 IOD = 100B + IPRAM(2) KDST = JJK + 1 CALL MOVW(IB2,132,0,0,2H ) C DO 40 I=1,IRCNT-1 JK = I C ENSURE A KEY IN IB3. IRPT = IRPT + IPSIZ IF (IRPT+IPSIZ .LE. 129) GO TO 35 CALL EXEC(1,IPRAM,IB3,128,IT,IS*2) IS = MOD(IS+1,ISPT) IF (IS .EQ. 0) IT = IT + 1 IRPT = 1 35 IF (IPRAM(3) .EQ. 0) GO TO 37 C OUTPUT KEYS. IF (IPRAM(2) .NE. 2) GO TO 36 CALL PUT(IB3(IRPT+1),IB1,IF2,I,0,ISTAT) GO TO 38 36 IF (JJ .EQ. 0) GO TO 365 CALL EXEC(2,IOD,IB3(IRPT+1),KESIZ) GO TO 40 365 CALL CITA(IB3(IRPT+1),IB2(2)) CALL BMOVE(IB2,11,MSIZE,IB3,2*IRPT+3,MSIZE) CALL EXEC(2,IOD,IB2(KDST),KDSI) GO TO 40 C OUTPUT RECORDS. 37 CALL GET(IB2(2),IF1,IB3(IRPT+1),ISTAT,IW) IF (IPRAM(2) .`  NE. 2) GO TO 39 CALL PUT(IB2(IW+1),IB1,IF2,I,0,ISTAT) 38 IF (ISTAT .EQ. 0) GO TO 40 CALL MIO(21,0,0,IB1,IFM,IB1) STOP C 39 ISAV = IB2(IW) IB2(IW) = 2H CALL EXEC(2,IOD,IB2(IW+JJK),IF1(5)/2+1-JJK) IB2(IW) = ISAV C 40 CONTINUE CCCC IF (IPRAM(2) .EQ. 6) CALL EXEC(2,6,30440B,1) IF (IPRAM(2) .NE. 2) GO TO 999 CALL PUT(IB1,IB1,IF2,JK+1,-1,ISTAT) CALL DIO(-1,IF2,IB1) IB1(106) = JK CALL DIO(1,IF2,IB1) CCCC 999 CALL CFILE(0) CALL EXEC(5,-1) CALL EXEC(2,LUMIO,MEND,-11) END END$ p FTN4,L,A,T PROGRAM ARPO(5) C THIS PROGRAM OUTPUTS A DATA SET TO AN I/O DEVICE C ACCORDING TO AN OUTPUT FORMAT IN ANOTHER DATA SET. EXTERNAL LUMIO DIMENSION IB3(132),IUFLS(9,20),ICOND(120),ICBUF(132) DIMENSION IB1(132) ,IB2(132) DIMENSION IFDS(11) ,IFPF(11) DIMENSION IDSN(3) ,IPFN(3) DIMENSION IDF(2,20),IPF(2,20) DIMENSION IDI(23) ,IPI(23) DIMENSION NN(3),IFM(11),M(132) DATA NN/2HME,2HSS,2HS / DATA IB3/2H0-,65*2H--,2H1 ,4*2H ,2HRE,2HPO,2HRT,2H N,2HAM, 12HE ,2H? ,2H30,2H C,2HHA,2HR.,5*2H ,2HDA,2HTE,2H ?,2H 1, 22H6 ,2HCH,2HAR,2H. ,6*2H ,2HPA,2HGE,2*2H / C QUALIFY DATA SET. CALL FINFO(0,IFM,NN,2HN ,1,IFM,M) CALL MBLOK(LUMIO,3,105,105,2,IB1,IFM,M) 111 CALL FINFO(2,IFDS,IDSN,2HY ,0,IFM,M) CALL DFLDS(IB1,IFDS,IDF,0,IDI,IST) C QUALIFY FORMAT FILE. 5 CALL FINFO(0,IFPF,IDSN,2HN ,1,IFM,M) CALL FINFO(22,IFPF,IPFN,2HN ,1,IFM,M) CALL DFLDS(IB1,IFPF,IPF,0,IPI,IST) C GET OUTPUT DEVICE NUMBER. JJ=1 JK=1 CALL INTIN(5,LUNO,IFM,M) IF (LUNO.EQ.0)LUNO=IGTLU(0) IF(LUNO.NE.6)GO TO 14 CALL DFLDS(IB1,IFPF,IUFLS,1,IPI,ISTAT) CALL EXEC(2,LUMIO,IB3(72),15) CALL MIO(0,0,15,IB3(72),IFM,M) CALL EXEC(2,LUMIO,IB3(88),8) CALL MIO(0,0,8,IB3(88),IFM,M) CALL MIO(18,1,1,ISP,IFM,M) ISPP=1 IF(ISP.EQ.2HD )ISPP=2 JJ=2 14 IRS=(JJ+IFPF(5))/2 15 CALL INCND(IB1,IF,IL,ICOND,ICL,IFDS,IDF,ISTAT,IFM,M) IB1(132) = -1 C GET DATA AND OUTPUT IT. CALL MOVW(IB1,128,0,0,2H ) J=IF 16 IF((LUNO.NE.6).OR.(MOD(JK,56/ISPP).NE.1))GO TO 17 CALL CATI(IB3(104),2,3,IPAGNO,IPL,IEND) IPAGNO=IPAGNO+1 CALL CAMI(IPAGNO,IB3(104),2,3) IB3=2H - CALL EXEC(2,6,IB3(67),39) IB1=2H CALL HDR1(IB1,2,IUFLS,IFPF(9)) CALL EXEC(2,6,IB1,IRS) CALL EXEC(2,6,IB3,IRS) IF(ISPP.EQ.2)IB1=2H0 17 CALL SELCT(IB2,IWORD,IFDS,ID/  F,J,IL,ICOND,ICL,N,ISTAT) IF(N.EQ.0)GO TO 30 CALL MOVEF(IB1,JJ,IPF,IFPF(9),IB2(IWORD),1,IDF,IFDS(9)) IF(LUNO.EQ.2)GO TO 40 CALL EXEC(2,LUNO,IB1,IRS) 28 IF(N.EQ.IL)GO TO 30 J=N+1 JK=JK+1 GO TO 16 40 CALL PUT(IB1,IB3,IFPF,JK,0,ISTAT) GO TO 28 30 IF (LUNO.EQ.2)CALL PUT(IB1,IB3,IFPF,JK,-1,ISTAT) CALL MIO(76,2,1,KANS,IFM,M) IF (KANS .EQ. 2HN ) GO TO 15 CALL ADM END END$ V' FTN4,L,A,T SUBROUTINE HDR1(IBUF,IB,IUFLS,NIFLD) DIMENSION IBUF(1),IUFLS(9,20) CCC C "HDR1" BMOVES THE FIELD NAMES INTO A BUFFER IN C PREPARATION FOR PRINTING THEM AS A HEADER IN A REPORT. C C IBUF - DESTINATION BUFFER FOR FIELD NAMES. C IB - BYTE POINTER WHERE FIRST FIELD NAME MUST BE. C IUFLS - (9,20) ARRAY DESCRIBING THE FIELDS. C NIFLD - NUMBER OF FIELDS. CCC DO 5 I=1,NIFLD CALL BMOVE(IBUF,IUFLS(7,I)+IB-1,IUFLS(8,I),2H ,1,1) 5 CALL BMOVE(IBUF,IUFLS(7,I)+IB-1,IUFLS(8,I)-1,IUFLS(1,I),1,12) RETURN END END$ FTN4,L,A,T PROGRAM AHASH(5) C C THIS PROGRAM INITIALIZES A HASH TABLE. C DIMENSION NN(132) DIMENSION IFM(11),MESSS(3),IBM(132),NAM(3) DIMENSION IFLD(2),IFLDS(2,20),INDX(23) DIMENSION IF1(11),IF2(11),IB(132),IX(6) DIMENSION IDCB(144),ISIZE(2) DATA IX/2H.H,2HA ,2H ,2H ,2H ,2H / DATA MESSS/2HME,2HSS,2HS / CCC SET UP MESSAGE FILE, PRINT HEADING. CALL FINFO(0,IFM,MESSS,2HN ,1,IFM,IBM) 3 CALL MIO(110,3,0,0,IFM,IBM) CCC GET MASTER DATA SET NAME, KEYFIELD NAME. CALL FINFO(1,IF1,NAM,2HY ,0,IFM,IBM) IF (NAM .EQ. 2H ) GO TO 10 IF (IF1(8) .LE. 0) GO TO 99 CALL BMOVE(IX,4,6,IF1,1,6) 5 CALL MIO(7,1,2,IFLD,IFM,IBM) CALL BMOVE(IX,10,3,IFLD,1,3) CALL DFLDS(IB,IF1,IFLDS,0,INDX,IST) CALL PACK3(JJ,1,1,IFLD,1,3) CALL DFLD(IF1(9),IFLDS,JJ,IBYT,ILTH,ITYP,KK) IF (KK .GT. IF1(9)) GO TO 5 CCC GET HASH DATA SET NAME. CALL MIO(111,1,3,IF2,IFM,IBM) 10 CALL MINT(46,IF1(8),1,IFM,IBM) CALL INTAN(116,IBUCK,2,128,IFM,IBM) CALL INTIN(113,ISIZ,IFM,IBM) SIZE=ISIZ BUCK=IBUCK ISIZE=BUCK*SIZE/128.+2. ISIZE(2)=IBUCK 6 CALL CREAT(IDCB,IER,IF2,ISIZE,2) IF(IER.NE.-2)GO TO 7 CALL PURGE(IDCB,IER,IF2) GO TO 6 7 IF(IER.LT.0)STOP CALL INTAN(114,IF2(9),1,ISIZ-1,IFM,IBM) IF2(4)=ISIZ IF2(6)=1 IF2(7)=IADRS(IDCB) CCC SET UP DEFINITION SECTOR. IF2(5) = 2*IBUCK IF2(8) = IF2(9) + 1 IF2(10) = 0 CALL MOVW(IB,132,0,0,0) IF2(11) = 1 CALL REFR(IF2,1,IX,1,2,1,IB) CCC ZERO ALL RECORDS IN HASH TABLE. CALL MOVW(IB,132,0,0,0) CALL MOVW(NN,132,0,0,0) DO 20 I=1,ISIZ 20 CALL PUT(IB,IBM,IF2,I,1,IS) CCC GENERATE HASH ENTRIES. MM = 0 DO 30 I=1,IF1(8) IF (I .EQ. IF1(8)) MM = 2HU CALL GET(IBM,IF1,I,IST,IW) IF (IST .GT. 0) GO TO 30 CALL HENT(MM,I,IBM(IW),IBYT,ILTH,ISTAT,IF2,IB) c   IF (ISTAT .LT. 0) GO TO 97 IF (ISTAT .GT. 132) GO TO 30 NN(ISTAT+1) = NN(ISTAT+1) + 1 IF (ISTAT .GT. 0) NN(ISTAT) = NN(ISTAT) - 1 30 CONTINUE CCC PRINT OUT RESULTS, ASK IF DONE. CALL MIO(115,2,0,0,IFM,IBM) DO 40 I=1,132 IF (NN(I) .EQ. 0) GO TO 40 CALL MINT(0,I,0,IFM,IBM) CALL MINT(0,NN(I),1,IFM,IBM) 40 CONTINUE CALL MIO(76,1,1,IFLD,IFM,IBM) IF (IFLD .EQ. 2HN ) GO TO 3 GO TO 99 CCC EXIT SEQUENCE. 97 CALL MIO(112,1,0,0,IFM,IBM) 99 CONTINUE CALL ADM END END$  FTN4,L,A,T PROGRAM ARET(5) C C THIS PROGRAM RETRIEVES RECORDS BY "KEY CONTENT". C EXTERNAL LUMIO DIMENSION IFM(11),IBM(132),MM(3),IFH(11),IFD(11) DIMENSION IB(132),IB1(132),IB2(132),IB3(132) DIMENSION IFLDS(2,20),INDEX(23),NAM(3) DATA MM/2HME,2HSS,2HS / C CCC SET UP MESSAGE FILE, PRINT HEADING. CALL FINFO(0,IFM,MM,2HN ,1,IFM,IBM) CALL MIO(117,3,0,0,IFM,IBM) CCC IFH DESCRIBES THE HASH DATA SET. CCC IFD DESCRIBES THE MASTER DATA SET. CCC KEYNM IS 1ST 3 LETTERS (PACKED) OF KEYFIELD NAME. 1 CALL FINFO(111,IFH,NAM,2HY ,0,IFM,IBM) IF (NAM .EQ. 2H ) GO TO 99 CALL DIO(-1,IFH,IBM) CALL UNPK3(IBM,7,2,NAM,1,6) KEYNM = IBM(9) IF (IBM(6) .EQ. 13121) GO TO 5 CCC ERROR MESSAGE. 3 CALL MIO(119,3,0,0,IFM,IBM) GO TO 99 CCC CHECK MASTER DATA SET & KEY FIELD NAMES. 5 CALL DFILE(IFD,NAM,IR,IW) IF (IFD(4) .LE. 0) GO TO 3 CALL DFLDS(IB,IFD,IFLDS,0,INDEX,IST) IF (IST .NE. 300) GO TO 3 CALL DFLD(IFD(9),IFLDS,KEYNM,IBYT,ILTH,ITYP,KK) IF (KK .GT. IFD(9)) GO TO 3 CALL MIO(123,1,1,LEXIT,IFM,IBM) CCC GET KEYFIELD DATA, GET RECORD, DISPLAY RECORD. 10 IB(132) = -1 CALL MIO(120,3,(ILTH+1)/2,IB,IFM,IBM) IF (IB .EQ. LEXIT) GO TO 99 CALL HGET(2HB ,IB,KEYNM,IFLDS,IFD,IFH,IB1,IB2,IWRD,IST) IF (IST .GT. 0) GO TO 15 CALL MIO(122,2,0,0,IFM,IBM) GO TO 10 15 CALL MINT(60,IST,2,IFM,IBM) CALL RDBF(LUMIO,IFD(9),IFLDS,IB2(IWRD),IB3) CALL HGET(2HC ,IB,KEYNM,IFLDS,IFD,IFH,IB1,IB2,IWRD,IST) IF (IST .LE. 0) GO TO 30 CALL MIO(121,1,1,IANS,IFM,IBM) IF (IANS .EQ. 2HY ) GO TO 15 30 GO TO 10 CCC 99 CONTINUE CALL ADM END END$ <5  ASMB,R,L,C NAM LUX,7 10.MARCH.76 D.S. GRE ENT LUX * * THIS PROGRAM TRANSFERS THE LU OF THE * PROGRAM-START-UP-TERMINAL TO THE * CALLING PROGRAM; * THIS FUNCTION MUST BE CALLED BEFORE ANY * OTHER CALLS IN THE USER PROGRAM; * * * CALLING SEQUENCE: * LU=LUX(LU) * * * * ON RETURN A-REG CONT.=LU IF FOUND; * ELSE LU=1 (SYSTEM CONSOLE) * * B-REGISTER REMAINS THE-SAME AS BEFORE THE CALL * FOR RMPAR !! * * LUX NOP STB SAVB LDA LUX ADJUST RETURN ADR. LDA A,I RAL,CLE,SLA,ERA JMP *-2 STA LUX THIS IS NOW THE PROPER RETURN * LDA B,I GET PRAM #1 (LU) SZA,RSS ZERO ? JMP OUT-1 YES, USE LU=1 ADA 1652B ADA DM1 GET DRT ENTRY LDA A,I AND B77 MASK OUT EQT # ADA DM1 MPY D15 INDEX INTO EQT-TABLE * ADA 1650B ADD BASE ADA D4 GET WORD 5 OF THIS EQT LDA A,I AND MASK ALF,ALF DEVICE-CODE (DVR XX) AND B77 CPA B65 TEST POSSIBLE DRIVERS JMP OUT CPA B5 JMP OUT SZA DVR 00 CLA,INA,RSS IF NONE FOUND SET LU TO 1 OUT LDA SAVB,I ELSE GET LU LDB SAVB AND RESTORE B-REGISTER JMP LUX,I THEN RETURN * * SAVB NOP DM1 DEC -1 B65 OCT 65 B5 OCT 5 B77 OCT 77 D15 DEC 15 D4 DEC 4 A EQU 0 B EQU 1 * END ZMASTER DATA SET NAME? _ DATA SET NAME? _ OUTPUT DATA SET NAME? _ DEFINITION DATA SET NAME? _ OUTPUT DEVICE? _ OUTPUT? (REC,FLD,ADDR - 0,1,2) _ KEYFIELD NAME? (3 CHARS) _ ASCEND/DESCEND ORDER? (0/1) _ READ/WRITE BOTH ILLEGAL. ONLY READING IS ALLOWED. READ/WRITE BOTH ALLOWED. ONLY WRITING IS ALLOWED. DATA SET NOT DEFINED YET. READ PROTECT CODE? _ WRITE PROTECT CODE? _ NAM(3LET) OPER( ,R,+,-,*) ENTRY? ILLEGAL FIELD NAME. LINE SPACING? (S/D) _ SUM OF KEYFIELDS TOO BIG. WORKING SPACE TOO SMALL. SORT TERMINATED. PRINT FORMAT FILE NAME? _ INPUT DEVICE? _ STORE FUNCTION. FIRST RECORD? (REC/-1) _ FIRST RECORD? _ LAST RECORD? _ INPUT FORMAT FILE NAME? _ DATA SET OVERFLOW ERROR. RECORD NUMBER? _ ILLEGAL RECORD NUMBER. RECORD NUMBERS TOO? (Y/N) _ IS THIS CORRECT? (Y/N) _ ORIGINAL RECORD : EDITED RECORD : FIELD NAME SIZE INPUT CONTENT SELECTION? (Y/N) _ (FIELD).(COND).(CRITERIA) ? _ O => ORDER (SORT) FUNCTION. "DEFINITION" FUNCTION. YOU MAY CREATE A DATA SET (C) DISPLAY ITS DEFINITION (D) CHANGE A FIELD DEFINITION (F) MOVE DEFINITION SECTOR (M) CHANGE THE RECORD COUNT (R). CURRENT RECORD COUNT = _ NEW RECORD COUNT? _ FIELD NAME OR NUMBER? _ FIELD NAME = _ STARTING BYTE = _ FIELD LENGTH = _ FIELD TYPE = _ NEW PARAMETERS : FIELD NAME? (UP TO 12 CHARS) _ STARTING BYTE? (1 TO 256) _ FIELD LENGTH? (1 TO 128) _ FIELD TYPE? (A/N = ALF/NUM) _ DATA GOES TO MASTER DATA SET FROM THE OTHER DATA SET. RECORD NUMBER = _ DEPFIN COMMAND? (C,D,F,M,R) _ SUBFIELD LENG. = _ THE FOLLOWING FUNCTIONS ARE AVAILABLE TO YOU: LINE PRINTER EDIT COPY? (Y/N) _ ORDER (SORT) FUNCTION. BYTES PER RECORD? (2 TO 256) _ BOUNDS OR CONTENT ERROR. MAXIMUM NUMBER OF RECORDS ? _ READ PROTECT CODE? (0 TO 255) _ WRITE PROTECT CODE? (0 TO 255) _ NUMBER OF FIELDS? (1 TO 20) _ FIELD NUMBER? _ *** UNUSED *** TOO MANY SUBFIELDS. DONE? (Y/N) _ EACH FIELD HAS A NAME (12 CHAR_ ACTERS, FIRST 3 UNIQUE), STARTING BYTE ADDRESS (1 TO 256_ ), BYTE LENGTH (1 TO 128), SUBFIELD LENGTH (0 TO 128), AND_ TYPE (ALPHA(A) OR NUMERIC(N)). 2ND DATA SET NAME? _ STORE COMMAND? (A,C,D,M,R) _ ENTRY MAY BE DATA OR FIELD NAME. DEFINITION FOR DATA SET MAX. NUMBER OF RECORDS = RECORD LENGTH (BYTES) = RECORDS (WITH DELETED) = FIELDS PER RECORD = FIELD NAME TYP START LENG "STORE" FUNCTION. YOU MAY ADD RECORDS AT END (A) CONCATENATE DATA SETS (C) DELETE RECORDS (D) MERGE NEW FIELD DATA (M) REPLACE RECORDS (R). F => FIELD UPDATE FUNCTION. FIELD UPDATE FUNCTION. R => REPORT FUNCTION. REPORT FUNCTION. D => DEFINITION FUNCTION.YOU MAY S => STORE FUNCTION. YOU MAY DEFINITION FUNCTION. H => HASH FUNCTION. HASH FUNCTION HASH DATA SET NAME? _ HASH DATA SET TOO SMALL. HASH SIZE = _ DIRECT HIT SIZE? _ LENGTH NUMBER BUCKET SIZE? (2 TO 128) _ RANDOM RETRIEVE FUNCTION. Z => RANDOM RETRIEVE FUNCTION. HASH-MASTER RELATIONSHIP BAD. KEYFIELD DATA? _ SEAR CH NEXT SYNONYM? (Y/N) _ RECORD IS NOT PRESENT. INPUT TERMINATION CHARACTERS? BAD INPUT. TRY AGAIN. `k BitXD?iT`iTt, w`uR,P,b,,zR% ,{R&,|R',`r,3Pp P,5b, azRzih0iz P,L,L@uzPp, `r ,WPpP,Yb,ih h 0Pp, `r`u ,ah`r`r`r `r,Pp,ah, , P,ahbwg, itXD ,giTBr9r4r3r5r6, }P,P,P,P,P,PpP ,b`izB,b6@z6, :9P,:3,:4,b5@z5, :9P,,`k5k`r,pB3 r3J9 z9n`SpJSd,0148-, ,, P-| |!-b`izB48-Qz- - acrH`r;^!| -&`MpJ, BiT`iTD-3/ mbu/`zw/ _=/?-?48@j@Hz@zJ rKrr`kB/`rR. ` -dP-gb-Wihwww R-w`rR-zb-W`rwAq |@ v T 22682-18029 1639 SC 0322 RTE DVR PKG. FOR CALCOMP AND XYNETICS PLOTTER             H0103 -ASMB,R NAM DVP10,0 ENT IP10,CP10 * * * DRIVER FOR CALCOMP PLOTTER AND XYNETICS 1200B FLAT BED PLOTTER * * XYNETICS INFORMATION: * PLOTS STRAIGHT-LINE SEGMENTS IN AN INCREMENTAL COORDINATE SYSTEM * BURST MODE OPERATION IS SUPPORTED * * EACH LINE PLOTTED REQUIRES FROM 3 TO 8 WORDS IN BUFFER: * WORDS MUST BE CONSTRUCTED AS GIVEN IN XYNETICS MANUAL. * DRIVER INSERTS CURRENT ACTIVE PEN AND ENABLES INTERRUPTS IN * CONTROL WORD, BUT REST OF CONTROL WORD MUST BE SUPPLIED * * MAXIMUM PLOT SIZE IS LIMITED BY TABLE SIZE: * 57 BY 89 INCHES INCREMENTS ARE 1 MIL * * ENABLE PLOTTER BY: CALL EXEC(3,LU) (FUNCTION CODE = 0) * * FOR PEN CHANGES CALL EXEC(3,XLU) WHERE: * X IS PEN# (1 THRU 4) AND LU IS PLOTTER LU IN OCTAL * XLU = 121B IS PEN# 1 ON LU 17 * * STATUS CALL WILL REPORT CURRENT PEN#-1 IN STATUS WORD BITS 6-7 * BIT 0 OF STATUS WORD REPORTS PEN UP/DOWN = 0/1 * * EQT11 STORES CURRENT ACTIVE PEN NUMBER * EQT12(BIT 3) STORES CURRENT PEN STATE UP/DN = 0/1 * EQT13 SERVES AS INTERNAL FLAG BUFFER: * -1 = 1ST HALF OF PEN UP/DN DELAY * +1 = 2ND HALF OF PEN UP/DN DELAY * 0 = NORMAL MOVES FROM USER BUFFER * * SET SUBCHANNEL AT CONFIGURATION TIME = 0 FOR CALCOMP AND * = 1 FOR XYNETICS * NOTE: DELETE LINES WITH * IN COLUMN 19 FOR XYNETICS ONLY DRIVER *************************************************************************** * * INITIATION SECTION IP10 NOP JSB SETIO LDA D3 GET INITATION NOT READY ERROR CODE STA ERROR AND SAVE IT LDA EQT6,I GET REQUEST WORD AND B77 ISOLATE REQUEST CODE CPA D2 WRITE? JMP DOIT YES CPA D1 READ? JMP IP10,I REJECT CALL WITH A=1 CPA D3 I/O CONTROL? JMP CHK YES CHECK IF LEGAL RJCT LDA D2 REJECT CALL WITH A=2 JMP IP10,I * DOIT LDA EQT7,I GET REQUEST BUFFER ADDRESS SZB,RSS e  *IF CALCOMP PUT 0 CLA * IN EQT9 TO INITIALIZE BYTE COUNTER STA EQT9,I PUT IN CURRENT BUFFER ADDRESS LDA EQT8,I GET BUFFER LENGTH SSA,RSS *CHECK FOR CHARACTERS CMA,INA,RSS *SET NEGATIVE (REMOVE ONLY RSS FOR XYNETICS) ARS *CONVERT TO WORDS STA EQT10,I SAVE IN CURRENT BUFFER LENGTH SZA IS REQUEST LENGTH = 0? JMP ON NO, CONTINUE * DONE LDA D4 YES, CLB DO IMMEDIATE COMPLETION EXIT JMP IP10,I * ON LDA IEXAD PREPARE EXIT ADDRESS FOR INITIATION STA CP10 JMP THERE GO INITIATE ACTION * EXIT CLA SHOWS ACTION INITIATED JMP IP10,I RETURN IEXAD DEF EXIT-1 SETS RETURN ADDRESS * * * SECTION TO CHANGE ACTIVE PEN OR ENABLE PLOTTER * * CHK SZB,RSS *CHECK IF LEGAL JMP RJCT *ILLEGAL FOR CALCOMP JSB STAT CHECK STATUS LDA EQT6,I GET CONTROL WORD ALF,ALF POSITION FUNCTION CODE RAL,RAL AND B77 ISOLATE SZA,RSS =0? JMP ENABL YES--ENABLE PLOTTER STA B ADB DM5 CHECK IF FUNCTION LESS OR = 4 SSB,SZB,RSS JMP RJCT NO--ILLEGAL ADA DM1 SUBTRACT 1 TO GET PROPER PEN CODE CPA EQT11,I CHECK TO SEE IF IT IS SAME AS CURRENT PEN JMP DONE YES, MAKE IMMEDIATE COMPLETION EXIT STA B SAVE PEN NUMBER CMA,INA SUBTRACT NEW PEN # FROM ADA EQT11,I OLD PEN # TO GET OFFSET AND STB EQT11,I STORE NEW PEN NUMBER MPY OFSET AND MULTIPLY BY PEN SPACING/2 STA BUFF2+1 SAVE DISTANCE TO MOVE LDB ACLMJ GET ACCELERATION WORD FOR MAJOR AXIS SSA CHECK IF WE NEED A NEGATIVE ONE? LDB ACLMM YES, GET IT STB BUFF2+2 SAVE ACCELERATION WORD CLB,INB GET P2-3 MOVE DISTANCE SSA SHOULD IT BE NEGATIVE? CMB,INB YES I STB BUFF2+3 SAVE P2-3 DISTANCE CLB MAKE A MINOR AXIS ACCELERATION WORD SSA DOES IT NEED TO BE NEGATIVE? LDB B17 YES STB BUFF2+4 SAVE IT LDB BCNT GET BURST COUNT WORD SSA WANT IT NEGATIVE? CMB,INB YES STB BUFF2+7 SAVE IT LDA BF2AD GET BUFF2 ADDRESS STA EQT9,I AND POINT DRIVER TO IT LDA DM8 GET WORD COUNT FOR THIS BUFFER STA EQT10,I AND PUT IT AWAY CLB,INB RESET SUBCHANNEL TO 1 JMP ON GO INITIATE PEN OFFSET MOTION * ENABL STA EQT11,I A=0 INITIALIZE PEN NUMBER TO 0 STA EQT12,I INITIALIZE PEN UP STA EQT13,I SET FLAG FOR NORMAL MOVES LDA ENCOD GET ENABLE CODE OTA1 OTA SLOT STC1C STC SLOT,C OUTPUT IT JMP DONE * * ***** CONTINUATION-COMPLETION SECTION **** * * CP10 NOP LDB EQT1,I CHECK FOR SPURIOUS INTERRUPT SZB,RSS JMP SPURI JSB SETIO GO CONFIGURE INSTRUCTION LDA CP10 PUT CONTINUATION RETURN ADDRESS IN IP10 STA IP10 FOR CORRECT ERROR RETURN FROM STAT CLA,INA SET ERROR CODE FOR STATUS CHECK IN CONTINUATION SECTION STA ERROR AND SAVE IT THERE SZB,RSS *CHECK WHO INTERRUPTED JMP CALCP * AND PROCESS APPROPRIATELY ISZ EQT13,I CHECK IF A PEN UP/DN DELAY WAS IN PROGRESS RSS NO JMP NTRNL YES, GO FINISH PROCESSING IT LDB EQT10,I GET BUFFER WORD COUNT SZB,RSS CHECK IF BUFFER IS EMPTY JMP FINIS YES--EXIT LDA EQT9,I GET ADDRESS OF BUFFER LDA A,I GET FIRST WORD OF BUFFER AND TCN ISOLATE TRANSFER COUNT NUMBER (#WORDS-1) ALF,RAR MOVE THEM TO BITS 0 THRU 2 ADB A SEE IF THERE ARE ENOUGH WORDS LEFT IN BUFFER SSB,RSS FOR THIS BLOCK? JMP FINIS NO,EXIT * INB CORRECT THE NEW BUFFER LENGTH STB SETIO AND SAVE IT TEMPORARILY CMA PREPARE WORD COUNTER FOR OUTPUT BLOCK STA COUNT SAVE IT JSB STAT CHECK STATUS LDB EQT9,I GET ADDRESS OF BUFFER AGAIN CLA STA EQT13,I SET FLAG FOR NORMAL BUFFER USE LDA B,I GET CONTROL WORD FROM BUFFER AGAIN AND B10 ISOLATE PEN STATE CPA EQT12,I SAME STATE AS CURRENT? JMP CONT YES, DO NOTHING STA EQT12,I MAKE THIS THE NEW PEN STATE AND CCB STB EQT13,I SET FLAG FOR 1ST HALF OF DELAY MOVE LDB X1P GET BURST COUNT FOR A PLUS MOVE JMP OVER SKIP 2ND HALF PROCESSING NTRNL LDA EQT12,I GET CURRENT PEN STATE ISZ EQT13,I SET FLAG FOR SECOND HALF PROCESSING LDB X1M GET BURST COUNT FOR A NEGATIVE MOVE OVER IOR BCMND MAKE A BURST COMMAND OUT OF IT STA BUFF1 AND STORE IT STB BUFF1+2 STORE BURST COUNT IN BUFFER LDB BF1AD POINT TO INTERNAL BUFFER LDA DM3 GET INTERNAL BUFFER LENGTH STA COUNT PUT IT AWAY CONT LDA B,I GET FIRST WORD = CONTROL AND =B160211 SAVE SIGNIFICANT CONTROL WORD BITS RAR MOVE IT RIGHT 1 BIT IOR EQT11,I PUT IN CURRENT PEN # RAL MOVE IT BACK IOR CMND PUT IN VALID COMMAND, ENABLE INTERRUPT JMP OTA2 GO OUTPUT EVERYTHING LOOP LDA B,I GET NEXT WORD OTA2 OTA SLOT OUTPUT IT STC2C STC SLOT,C SIGNAL DATA READY INB POINT TO NEXT WORD ISZ COUNT DONE? JMP LOOP NO, CONTINUE LDA EQT13,I WAS THIS FROM INTERNAL BUFFER? SZA ? JMP RETRN YES, DON'T UPDATE USERS BUFFER STB EQT9,I NO, UPDATE POINTER LDA SETIO GET UPDATED WORD COUNT AND STA EQT10,I SAVE IT * RSS SPURI STB EQT15,I RESET TIMEOUT RETRN ISZ CP10 SET CONTINUATION RETURN JMP CP10,I * * FINIhS LDA EQT11,I GET CURRENT PEN ALF,ALF PUT PEN # IN BITS 8 & 9 IOR EQT12,I PUT IN CURRENT PEN STATE RAL,RAL NOW MOVE PEN # TO B6 & B7 AND PEN STATE TO B0 SWP LDA EQT5,I GET STATUS WORD AND =B177400 MASK OFF IOR B PUT IN STATUS STA EQT5,I * END CLA LDB EQT8,I SET TRANSMISSION LOG SSB * CMB,INB *CONVERT BACK TO CHARACTERS IF NECESSARY CLC1 CLC SLOT CLEAR COMMAND LINE JMP CP10,I * * * ROUTINE TO FIX UP I/O INSTRUCTIONS * LEAVES SUBCHANNEL IN B REGISTER * SETIO NOP IOR LIA MAKE AN LIA INSTRUCTION STA LIA1 ADA ENCOD STA OTA1 STA OTA2 STA OTA3 * IOR B1100 CREATE STC,C INSTRUCTION STA STC1C STA STC2C STA STC3C * ADA ACLMJ CREATE CLC INSTRUCTION STA CLC1 CLB *INDICATE SUBCHANNEL 0 AND THEN CHECK LDA EQT4,I *GET CONTROL WORD AND =B3700 *MASK OFF SUBCHANNEL LSL 10 *MOVE SUBCHANNEL BITS INTO B REG JMP SETIO,I RETURN * * * ROUTINE TO CHECK XYNETICS STATUS * ERROR CONTAINS THE CORRECT ERROR CODE TO REPORT BACK IF * PLOTTER IS NOT ENABLED--3 FOR INITIATION & 1 FOR CONTINUATION * IP10 CONTAINS CORRECT RETURN ADDRESS * * STAT NOP LIA1 LIA SLOT AND =B36000 PICK OFF STATUS BITS SZA,RSS EVERYTHING ENABLED? JMP STAT,I YES LDA ERROR NO JMP IP10,I * * * CALCOMP OUTPUT PROCESSING * CALCP LDA EQT7,I * SSA *WAS THAT THE LAST POINT? JMP END *YES, GO END IT ALL LDA A,I *GET NEXT WORD FROM BUFFER LDB EQT9,I *GET COUNT ISZ EQT9,I *INCREMENT COUNT ALF *MOVE OVER 4 BITS SZB,RSS *CHECK IF THIS THE RIGHT BYTE JMP PROC *YES, PROCESS IT ADB DM1 *DECREMENT B ALF *SHIFT 4 MORE SZB,RSS *IS THIS IT? JMP PROC *YES ADB DM1 *DECREMENT B AGAIN ALF *SHIFT AGAIN SZB,RSS *THIS TIME? JMP PROC *GOT IT! ALF *LAST TIME ISZ EQT7,I *FINISHED THIS WORD--POINT TO NEXT ISZ EQT10,I *CHECK IF BUFFER IS EMPTY JMP PROC *NO, CONTINUE ADB DM1 *SET EQT7=-1 AS LAST POINT FLAG STB EQT7,I *PUT IT IN EQT7 AND PLOT LAST POINT PROC AND B17 *ASK OFF LAST 4 BITS SZA,RSS *ANYTHING THERE? JMP END *NOPE, QUIT CPA D3 *CORRECT LDA B20 * PEN CPA B7 * CODES LDA B40 * OTA3 OTA SLOT *OUTPUT IT STC3C STC SLOT,C *SAY ITS READY LDA EQT9,I * CLB * CPA D4 *] STB EQT9,I * JMP RETRN *MAKE INITIATION EXIT * * * CONSTANTS ** * LIA LIA 00 DUMMY LIA INSTRUCTION * COUNT NOP OUTPUT LOOP COUNTER ERROR NOP ERROR CODE STORAGE FOR STATUS ROUTINE * D1 DEC 1 DM1 DEC -1 D2 DEC 2 D3 DEC 3 DM3 DEC -3 D4 DEC 4 DM5 DEC -5 DM8 DEC -8 B7 OCT 7 B10 OCT 10 B17 OCT 17 * B20 OCT 20 * B40 OCT 40 * B77 OCT 77 B1100 OCT 1100 CMND OCT 10100 ENCOD OCT 100 PLOTTER ENABLE CODE OFSET DEC 375 THIS IS PEN OFFSET(750 MILS) DIV BY 2 ACLMJ OCT 3000 DO NOT CHANGE THESE ACLMM OCT 15017 TWO CONSTANTS BCNT OCT 2000 TCN OCT 160000 BCMND OCT 50301 BURST MODE COMMAND WORD * * PEN STATUS CHANGE BUFFER * BF1AD DEF BUFF1 BUFF1 NOP CONTROL WORD FOR FIRST HALF OF DELAY MOVE OCT 7777 BURST TIME OF 4 MSEC NOP X1P OCT 1000 BURST COUNT FOR 2 PLUS MAJOR AXIS MOVE X1M OCT 177000 BURST COUNT FOR 2 NEGATIVE MAJOR AXIS MOVE * * PEN SELECT BUFFER * BUFF2 OCT 170101 NOP NOP NOP NOP OCT 0 OCT 0 NOP BF2AD DEF BUFF2 * * BASE PAGE STUFF *($ * . EQU 1650B * EQT1 EQU .+10B EQT4 EQU .+13B EQT5 EQU .+14B EQT6 EQU .+15B EQT7 EQU .+16B EQT8 EQU .+17B EQT9 EQU .+20B EQT10 EQU .+21B EQT11 EQU .+22B EQT12 EQU .+121B EQT13 EQU .+122B EQT15 EQU .+124B * A EQU 0 B EQU 1 SLOT EQU 31B PLOTTER I/O SLOT--REPLACED BY DRIVER * END O*ASMB,R,F * MODIFIED FOR XYNETICS 1200B 10-27-75 **************************** NAM PLOT,7,0,0,0,0,0,0,0 ENT WHERE,FACT,PLOT,PLTLU,SPEAC EXT .ENTR,EXEC,ABS,AINT,IABS * * THIS IS THE CENTRAL PROGRAM IN THE * HP REAL-TIME/DISC OPERATING SYSTEM * PLOTTER PACKAGE. * * *********** *** *** *** * * * THERE ARE FIVE SECTIONS TO THE PLOT PROGRAM: * * 1-FACT; WHICH ESTABLISHES SCALING FACTOR OF PLOT * 2-SPEAC; SETS ACCELERATION AND MAX SPEED FOR PLOTTER * 3-PLOT; CONVERTS THE X,Y AND PEN DATA TO PLOT * COMMANDS. * 4-WHERE; ESTABLISHES WHERE PEN IS CURRENTLY. * 5-PLTLU; ALLOWS THE USER TO DECLARE THE * LOGICAL UNIT NUMBER OF THE * PLOTTER UNIT. THIS ALLOWS THE * USE OF MORE THAN ONE PLOTTER. * * **** ** WHERE **** * * THE -WHERE- CALL ALLOWS THE USER TO DETERMINE THE * CURRENT PLOTTER PEN POSITION. THE NUMBERS PROVIDED * TO THE USER WILL BE IN FLOATING POINT. * * * - FORTRAN LINKAGE - * * CALL WHERE(X,Y) * * X SPECIFIES THE 2 WORD BUFFER FOR X. * Y SPECIFIES THE 2 WORD BUFFER FOR Y. * * * * XC OCT 0 ADDRESS OF 2 WD BUFFER FOR X YC OCT 0 ADDRESS OF 2 WD BUFFER FOR Y WHERE NOP JSB .ENTR DEF WHERE-2 DLD XOLD FETCH CURRENT X POSITION DST XC,I STORE IN USERS BUFFER DLD YOLD FETCH CURRENT Y POSITION DST YC,I STORE IN USERS BUFFER JMP WHERE,I EXIT * * * ***** FACT **** * * * THE -FACT- CALL ALLOWS THE USER TO VARY THE SCALING * FACTOR USED FOR EACH PLOT. THE SCALING FACTOR WILL * BE INITIALIZED AT "1". * * * - FORTRAN LINKAGE - * * CALL FACT(N) * * N SPECIFIES THE DESIRED SCALING FACTOR * * ** ** ** ** ** ** * * * FCT OCT 0 ADDRESS OF 2 WD FP FACTOR FACT NOP JSB .ENTR DEF FCT DLD FCT,I DST CFAC  JMP FACT,I * CFAC DEC 1.0 * *********** ***** * * * *** PLTLU *** * * * THE -PLTLU- CALL ALLOWS THE USER TO SET THE * LOGICAL UNIT NUMBER FOR THE DESIRED PLOTTER. * * DEFAULT IS LU 17 * * IF DESIRED LU IS 17, THE CALL DOES NOT NEED TO BE MADE * * * - FORTRAN LINKAGE - * * CALL PLTLU(ILU) * * THE LOGICAL UNIT # MUST BE INTEGER * ILU BSS 1 STORAGE FOR LU # ADDRESS PLTLU NOP JSB .ENTR SET ADDRESS OF DEF ILU PARAMETER IN "ILU". * LDA ILU,I SET LU # STA POUT1 IN LOCAL STORAGE. * JMP PLTLU,I RETURN * * * ********************************************* * *****SPEAC * * * SPEAC ROUTINE SETS ACCELERATION AND MAX SPEED FOR PLOTTER. * ACCEL VALUES RANGE FROM 1 TO 15: * 1 CORRESPONDS TO 32.768 IN/S**2 OR ABOUT .085G * 15 CORRESPONDS TO 262.144 IN/S**2 OR ABOUT 1.28G * * VELOCITY VALUES RANGE FROM 1 TO 32 INCHES/SEC * (NOTE THAT DIAGONAL MOVES WILL BE UP TO 1.4 TIMES THIS VALUE) * * VALUES OUTSIDE THESE RANGES WILL BE ADJUSTED TO THE RANGE * * CALLED AS: * CALL SPEAC(ISPD,IAC) * * INITIAL VALUES SET FOR IAC = 14 AND ISPD = 28 * CALL SPEAC ONLY IF IT IS DESIRED TO CHANGE THESE * * ISPD NOP IAC NOP SPEAC NOP JSB .ENTR DEF ISPD LDA IAC,I JSB IABS SZA,RSS INA STA B ADB DM16 SSB,RSS LDA D15 MPY =B400 STA AMJP CMA,INA AND =B17400 STA AMJN LDA AMJP FLT FMP F128 FAD FD5 JSB AINT DST ACCEL LDA ISPD,I JSB IABS SZA,RSS INA STA B ADB DM33 SSB,RSS LDA D32 FLT DST TEMP0 FMP TEMP0 FDV F2 FDV ACCEL FMP F1000 FMP F1000 FAD FD5 JSB AINT DST SVC JMP SPEAC,I * * * *****PLOT * * THE -PLOT- ROUTINE CONVERTS THE DEFINES X,Y * PARAMETERS TO PLOT INFORMATION THEN EXECUTES * THE PLOT. THE PLOT DATA WILL BE BUFFERED AS * FOLLOWS: * * * * - FORTRAN LINKAGE - * * CALL PLOT(X,Y,IC) * * -X,Y DEFINES THE NEW COORDINATE TO BE PLOTTED. * * -IC DEFINES THE PEN UP/DOWN COMMAND. * * * * ****** ****** * * X OCT 0 ADDRESS OF X PLOT DATA. Y OCT 0 ADDRESS OF Y PLOT DATA. IC OCT 0 ADDRESS OF PEN COMMAND. * PLOT NOP JSB .ENTR OBTAIN PARAMETER ADDRESSES DEF X * GO DLD X,I LOAD X PLOT DATA FMP CFAC MULTIPLY BY SCALE FACTOR FSB XOLD COMPUTE DELTA FMP F200 CONVERT TO 5 MIL GRID SSA JMP NEG7 FAD FD5 ROUND UP JMP DOIT7 NEG7 FSB FD5 DOIT7 JSB AINT MAKE INTEGER] DST DX SAVE IT FDV F200 FAD XOLD DST XOLD * DLD Y,I LOAD Y PLOT DATA FMP CFAC FSB YOLD FMP F200 CONVERT TO 5 MIL GRID SSA JMP NEG8 FAD FD5 ROUND OFF JMP DOIT8 NEG8 FSB FD5 DOIT8 JSB AINT INTEGRIZE IT DST DY FDV F200 FAD YOLD DST YOLD * * LDA PBSA STA PXB SAVE BUFFER STARTING ADDRESS * *PUT DATA INTO BUFFER * LDB IC,I GET NEXT PEN STATE SSB,RSS CHECK FOR NEW ORIGIN JMP ON NO--CONTINUE DLD XOLD FSB X,I DST XOLD AND YOLD DLD YOLD FSB Y,I DST YOLD TO ZERO LDB IC,I GET PEN STATE AGAIN CMB,INB ABSOLUTE VALUE ON CLA CPB C02 DOWN? INA YES, SET DOWN BIT IN COMMAND WORD ALF,RAR NOW POSITION IT * IOR CMND GET COMMAND WORD STA PXB,I PUT INTO FIRST BUFFER LOCATION DLD DY GET Y INCREMENT JSB ABS DST TEMP0 DLD DX JSB ABS ǁ FSB TEMP0 COMPARE TO Y INCREMENT SSA,RSS SEE WHICH AXIS IS LARGER JMP XMAJ X IS LARGER YMAJ DLD DX DST SMIN DLD DY DST SMAJ JMP AT XMAJ DLD DY DST SMIN DLD DX DST SMAJ ISZ PXB,I SET MAJ AXIS BIT AS X AT ISZ PXB JSB ABS SZA,RSS CHECK IF A ZERO DISTANCE MOVE REQUESTED JMP PLOT,I YES,RETURN NOW DLD SMAJ NO, CONTINUE PROCESSING FMP F5 CONVERT TO MILS DST SMAJ SSA JMP NEG4 FSB F1 JMP DOIT4 NEG4 FAD F1 DOIT4 FDV F2 TAKE HALF JSB AINT DST P12 SAVE IT JSB ABS FSB SVC COMPARE TO ACCEL RAMP SSA JMP HERE SHORT RAMP * LONG DLD SMAJ THIS IS COMPUTATION FOR LONG MOVES SSA TRANSFER SIGN OF OVE TO SVC JMP NEG1 DLD F1 JMP DOIT1 NEG1 DLD FM1 DOIT1 FMP SVC DST P12 SAVE RAMP DISTANCE HERE DLD SMAJ COMPUTE CONSTANT FSB P12 VELOCITY FSB P12 SEGMENT SSA JMP NEG9 FAD F1 JMP DOIT9 NEG9 FSB F1 DOIT9 DST P23 SAVE IT * DLD SMAJ TRANSFER SIGN OF MAJ AXIS TO ACLMJ SSA JMP NEG2 LDB AMJP GET BIT CODE FOR PLUS ACCEL STB AMJ AND SAVE IT DLD F1 JMP DOIT2 NEG2 LDB AMJN GET BIT CODE FOR NEGATIVE ACCEL STB AMJ AND SAVE IT DLD FM1 DOIT2 FMP ACCEL * FDV SMAJ FMP SMIN COMPUTE MINOR AXIS ACCELERATION FMP F5 CONVERT TO MILS SSA AND ROUND OFF JMP NEG3 FAD FD5 JMP DOIT3 NEG3 FSB FD5 DOIT3 JSB AINT DST ACLMN * DLD P12 GET INITIAL RAMP DISTANCE JSB CONV STA PXB,I PUT IN NEXT BUFFER WORD ISZ PXB POINT TO NEXT ONE * LDA B GET MOST SIGNIFICANT BITS AND B17 MASK TrHEM OFF IOR AMJ PUT IN MAJOR AXIS ACCEL BIT CODE STA PXB,I STORE IN BUFFER ISZ PXB * DLD P23 GET CONSTANT VELOCITY SEGMENT JSB CONV STA PXB,I STORE IT ISZ PXB TCN5 DONE * LDA B AND B17 PICK OFF MOST SIGNIFICANT BITS STA TEMP AND SAVE TEHM DLD ACLMN GET MINOR ACCEL JSB CONV STA TEMP2 SAVE IT LDA B GET MOST SIGIFICANT BITS AND B17 PICK OFF 4 BITS ALF,ALF MOVE OVER 8 BITS IOR TEMP PUT IN REST OF WORD STA PXB,I TCN 4 DONE ISZ PXB POINT TO NEXT * LDA TEMP2 GET LSB STA PXB,I PUT IN BUFFER ISZ PXB * CLA NO BURST MODE NEEDED STA PXB,I TCN 2 DONE ISZ PXB * LDA AMJ GET MAJ ACCEL CODE ALF,RAR SIGN BIT TO 15 ARS,ARS NOW EXTEND SIGN BIT ARS TO REST OF WORD SSA,RSS IF POSITIVE, MOVE OVER 2 PLACES JMP T1 CMA,INA IF NEGATIVE, MAKE POSITIVE ARS,ARS AND MOVE OVER 2 PLACES AND =B177400 MASK OFF UPPER 8 BITS CMA,INA AND MAKE NEGATIVE AGAIN RSS T1 ARS,ARS AND =B177400 STA TEMP DLD ACLMN GET MINOR ACCEL JSB CONV LDA B SSA,RSS IF POSITIVE, MOVE OVER 1 PLACE JMP T2 CMA,INA IF NEGATIVE, MAKE POSITIVE ARS AND MOVE OVER 1 PLACE CMA,INA AND MAKE NEGATIVE AGAIN RSS T2 ARS DROP OFF BIT 16 AND B377 PICK OFF 8 LOWER BITS IOR TEMP PUT OTHERS IN STA PXB,I TCN 1 DONE * * THIS ROUTINE OUTPUTS TO THE PLOTTER DRIVER. * OUTP JSB EXEC CALL EXEC DEF *+5 TO DEF C02 OUTPUT (RCODE=2) DEF POUT1 TO PLOTTER, PBSA DEF PBUFF BUFFER POINTER (SA) DEF C10 AND GLENGTH. JMP PLOT,I * * * * * THIS ROUTINE CONVERTS A FLOATING POINT NUMBER IN INCHES INTO * A DOUBLE WORD INTEGER IN MILS--SIGN AND MOST SIGNIFICANT BITS * IN B REG AND LEAST SIGNIFICANT BITS IN A REG * * CONV NOP NEG5 CLO CLEAR OVERFLOW BIT FAD FD5 THIS GUARANTEES THAT PROPER ROUNDOFF TAKES PLACE DST TEMP0 SAVE NUMBER SLB CHECK IF EXP IS NEGATIVE JMP SMALL YES SWP NO, PROCESS INTO 2-WORD INTEGER AND B377 MASK OFF EXP ARS MOVE OVER INTO SIGN SPACE ADA DM32 THIS WILL GIVE # OF SHIFTS TO MAKE STA EXP SSA,RSS CHECK IF # WAS TOO BIG JMP OVF YES DLD TEMP0 GET NUMBER AGAIN SWP AND =B177400 KILL EXP BITS LP ISZ EXP DONE? RSS JMP CONV,I ASR 1 MOVE OVER ONE BIT JMP LP * SMALL CLA SET A AND B TO ZERON CLB JMP CONV,I * OVF STO SET OVERFLOW CCA SET A & B TO LARGEST # POSSIBLE SSB CLA SWP IOR =B77777 NUMBER SSA AND =B100000 SWP JMP CONV,I * EXP NOP DM32 DEC -32 * ***** WORKING STORAGE *** * * * DX DEC 0.0 MAJOR PLOT MOVE (NEW DX) DY DEC 0.0 MINOR PLOT MOVE (NEW DY) * XOLD DEC 0.0 STORAGE FOR NEW DX,DY YOLD DEC 0.0 FOR THIS PLOT. * SMAJ DEC 0.0 MAJOR AXIS STORAGE SMIN DEC 0.0 MINOR AXIS * ACLMN DEC 0.0 MINOR AXIS ACCELERATION ACCEL DEC 458752. MAJOR AXIS ACCELERATION VALUE = 1.2 G *THE NEXT 2 CONSTANTS ARE BITS 15-18 AND SIGN OF INTEGER FORM * OF ACCELERATION. ALL 3 CONSTANTS MUST BE CHANGED TOGETHER IF * A DIFFERENT VALUE OF ACCELERATION IS DESIRED AMJP OCT 7000 AMJN OCT 11000 AMJ NOP * SVC DEC 854. REPRESENTS RAMP LENGTH IN MILS: V**2/2*A * * TEMP NOP TEMP0 DEC 0.0 TEMP2 DEC 0.0 P12 DEC 0.0 P23 DEC 0.*($0 * C02 OCT 2 C10 OCT 10 B17 OCT 17 B377 OCT 377 D15 DEC 15 DM16 DEC -16 D32 DEC 32 DM33 DEC -33 FD5 DEC 0.5 F1 DEC 1.0 FM1 DEC -1.0 F2 DEC 2. F5 DEC 5. F128 DEC 128. F1000 DEC 1000. F200 DEC 200. * PBUFF BSS 8 OUTPUT BUFFER CMND OCT 170100 COMMAND WORD CODE * * PXB OCT 0 BUFFER ADDRESSING INDEX. * POUT1 DEC 17 PLOTTER LU# * A EQU 0 B EQU 1 * END *FTN4 PROGRAM TEST(3,50) C THIS IS A TEST PROGRAM FOR XYNETICS PLOTTER. C IT CHECKS THE RTE DRIVER AND DATA FORMATTING C ROUTINE. PLOTTER WILL DRAW A SET OF NESTED C SQUARES, LETTER "TEST COMPLETE", AND TERMINATE. C DIMENSION XDATA(20),YDATA(20),IDATA(20),IMSG(7),IPRAM(5) C C FILL ARRAYS WITH DATA C DATA XDATA/12.0,12.0,6.0,6.0,9.0,12.0,9.0,6.0,9.0,10.5, C 10.5,7.5,7.5,10.5,10.5,9.0,7.5,9.0,10.5,15.0/, C YDATA/6.0,12.0,12.0,6.0,6.0,9.0,12.0,9.0,6.0,7.5, C 10.5,10.5,7.5,7.5,9.0,10.5,9.0,7.5,9.0,6.0/, C IDATA/4*2,3,4*2,3,4*2,3,4*2,3/, C LUTTY/1/,ISPD/28/,IAC/11/,LUPLT/17/, C IMSG/2HTE,2HST,2H C,2HOM,2HPL,2HET,2HE*/ C C PICK UP PARAMETERS AND ASSIGN THEM C CALL RMPAR(IPRAM) C SET TERMINAL LU IF(IPRAM(1) .NE. 0)LUTTY = IPRAM(1) C SET PLOTTER LU IF(IPRAM(2) .NE. 0)LUPLT = IPRAM(2) C SET SPEED IF(IPRAM(3) .NE. 0)ISPD = IPRAM(3) C SET ACCELERATION IF(IPRAM(4) .NE. 0)IAC = IPRAM(4) C C INITIALIZE PLOTTER C CALL EXEC(3,LUPLT) C C SET PLOTTER LU C CALL PLTLU(LUPLT) C C SET SPEED AND ACCELERATION C CALL SPEAC(ISPD,IAC) C C SET ORIGIN C CALL PLOT(0.0,0.0,-3) C C MOVE OUT TO START OF DESIGN C CALL PLOT(6.0,6.0,3) C C ENTER LOOP TO DO 4 SQUARES C DO 20 I=1,4 C SELECT PEN COLOR FOR THIS SQUARE CALL EXEC(3,I*64+LUPLT) C C ENTER LOOP TO PLOT SQUARE C DO 10 J=1,5 K = 5*(I-1)+J CALL PLOT(XDATA(K),YDATA(K),IDATA(K)) 10 CONTINUE 20 CONTINUE C C PLOT COMPLETE MESSAGE C CALL SYMB(15.0,6.0,.75,IMSG,0.0,14) C C RETURN PLOTTER TO ORIGIN C CALL EXEC(3,64+LUPLT) CALL PLOT(0.0,0.0,3) C C WRITE END MESSAGE ON TERMINAL C CALL EXEC(2,LUTTY,IMSG,-14) END END$ q    22682-18030 1731 SC 0522 RTE SYSTEM MAINTENANCE UTILITY (SMUT)             H0105 FTN4,L C PROGRAM SMUT(3,40) C C ********************************************** C * * C * RTE-II/III/M SYSTEM MAINTENANCE UTILITY * REV. 1731 C * * C ********************************************** C C HP PART NUMBER: 22682-13330(CASETTE) C 22682-18930(PAPER-TAPE) C C C PROGRAM STATISTICS C ------------------ C C AUTHOR: LARRY W. SMITH, SYSTEMS ENGINEER C INSTELLATION: HEWLETT-PACKARD, DATA SYSTEMS, CUPERTINO C DATE: 26/FEB/1976 C C PROGRAM DESCRIPTION C ------------------- C C THIS ROUTINE USES THE RTE SYSTEM COMMAND PARSE ROUTINE, THE C MESSAGE PROCESSOR, AND OTHER SYSTEM INTRINSICS TO PERFORM USEFUL C AND COMMON MEMORY AND DISC MAINTENANCE FUNCTIONS. IT OPERATES C UNDER RTE-II, RTE-III, OR RTE-M WITH A 7900, 7905, OR 7920 DISC C AND DOES NOT USE THE FORMATTER. IF YOU ARE RESPONSIBLE FOR SYSTEMS C TYPE ACTIVITY OR JUST PLAIN CURIOUS ABOUT THE INERDS OF RTE, THIS C ROUTINE MIGHT BE OF SOME ASSISTANCE TO YOU. I MUST WARN YOU THAT AC- C CIDENTAL (OR OTHERWISE) MISUSE OF THIS ROUTINE COULD PROVE TO BE FATAL C IF NOT DISASTERUOS TO YOUR SYSTEM. THUS, DUE TO THIS FACT AND THAT THE C ROUTINE IS AVAILABLE THROUGH LOCUS (LIBRARY OF CONTRIBUTED USER SOFT- C WARE), HEWLETT-PACKARD ASSUMES ABSOLUTELY NO RESPONSIBILITY FOR ITS C USE. THE OVERALL DESIGN CHOSEN WAS A REASONABLE COMPROMISE BETWEEN C OBJECT CODE SIZE AND SPEED AND WRITTEN IN A FAMILIAR LANGUAGE FOR YOUR C CONVENIENCE. I HOPE YOU HAVE A GOOD TIME WITH SMUT. C C C THE PURPOSE OF SMUT C C ------------------- C ANY REAL-TIME OPERATING SYSTEM IS COMPLEX AND DIFFICULT TO LEARN C THE FIRST TIME AROUND. SMUT WAS CREATED AND DESIGNED NOT ONLY TO C EXPEDITE AND ASSIST IN LEARNING RTE BUT ALSO TO DO THE FOLLOWING: C C > OFFER A SOPHISTICATED TOOL FOR USE IN RTE TRAINING CLASSES TO C THOSE INVOLVED IN SYSTEMS WORK. C > GAIN COMPLETE CONTROL OF AN RTE SYSTEM AND INTERROGATE SYSTEMS C ACTIVITY. C > HELP IN DESIGN OF YOUR SYSTEM. C > HELP IN DEBUGGING YOUR SYSTEM (DRIVERS, DATA BASE, ETC.) C > EXHIBIT THE FLEXIBILITY AND CONTROL OVER RTE THE USER CAN OBTAIN C WITH SUFFICIENT EXPERIENCE. C C SMUT IS NOT INTENDED TO TAKE THE PLACE OF SYSTEM DEBUG BUT MERELY TO C AID AND SUPPLEMENT IT. IT'S COMMAND STRUCTURE IS FLEXIBLE AND SYM- C BOLIC ENOUGH TO PERMIT THE USER TO INTERROGATE RTE AT HIS/HER OWN C LEVEL. SMUT IS CURRENTLY A 13K NON-SEGMENTED PROGRAM WHICH DOES NOT C USE THE FORMATTER AND CAN RUN IN ANY DISC-RESIDENT PARTITION OF AN C RTE SYSTEM. IT'S LENGTH CAN BE TRIMMED TO 6K WITH THE LOSS OF CON- C VENIENCE OF CERTAIN DISC COMMANDS AND THE ABSENCE OF FMP SMUT COM- C MAND FILES. THE MAIN PROGRAM (SMUT) IS WRITTEN IN FORTRAN IV FOR C YOUR CONVENIENCE WITH SEVERAL SMALL ASSEMBLY ROUTINES TO MORE EF- C FECTIVELY ACCOMPLISH CERTAIN OPERATIONS. ALL IN ALL, 13K OF SMUT C BUYS YOU THE MEANS TO COMPLETELY INTERROGATE YOUR RTE SYSTEM WITH C WITH OVER 42 DIFFERENT COMMAND CONSTRUCTS. IT COMES COMPLETE WITH C THIS USERS GUIDE, A HELP PROCESSOR, AND SOURCES AND IS ORDERABLE C THROUGH LOCUS (LIBRARY OF CONTRIBUTED USER SOFTWARE). C C C THE CAPABILITIES OF SMUT C ------------------------ C C SINCE SMUT IS PRIMAIRLY A SOFTWARE SYSTEMS APPLICATIONS TOOL, NOT C EVEN A SUBSET OF ITS TOTAL CAPABILITIES COULD BE DESCRIBED IN THIS C GUIDE. C C HERE'S WHAT SMUT OFFERS YOU: C C > DISPLAY, ALTER, SCAN, REPLACE, COPY, SUM, AND SEARCH BLOCKS C OF MEMORY WITH ADDRESS INDEXES AND MASKS. C > READ, WRITE, SCAN, REPLACE, COPY, SUM, VERIFY, INITIALIZE, AND C SEARCH DISC (7900 OR 7905) WITH WORD INDEXES AND MASKS. C > LIST CONTENTS OF SYSTEM TABLES SUCH AS EQT, LUN, TO, INT, TAT. C > ENTIRE SET OF HP-IB DEBUGGING COMMANDS. C > SMUT COMMAND FILES THROUGH FMP. C > PERFORM A DISC MODIFICATION RELATIVE TO MEMORY. C > SYNTAX eHELP ON AN INDIVIDUAL COMMAND BASIS (OR ALL COMMANDS). C > SCHEDULE OTHER PROGRAMS WITH WAIT( SUCH AS THE EDITOR). C > MISCELLANEOUS COMMANDS SUCH AS EXTENDED FMP CA, DEVICE CONTROL, C AND ASCII DISPLAY MODES. C C COMMAND INPUT USES REIO (RE-ENTRANT I/O INTERFACE) WITH A BUFFER C SIZE OF 33 WORDS AND CAN BE INPUTTED FROM ANY DEVICE CAPABLE OF C INPUT, INCLUDING FMP TYPE 0 FILES. AFTER THE COMMAND IS ENTERED, C IT IS THEN TORN APART BY THE SYSTEM PARSE INTERFACE (PARSE) TO DE- C TERMINE THE TYPE AND VALUE OF EACH PARAMETER. IF THE COMMAND IS C NOT A SMUT COMMAND, IT IS SENT DIRECTLY TO THE SYSTEM MESSAGE PRO- C CESSOR INTERFACE (MESSS) ASN AN ACTUAL RTE OPERATOR COMMAND. THUS, C SMUT COULD BE THOUGHT OF AS BEING EQUIVALENT TO THE SYSTEM PROMPT C (*) OR ANY MTM TERMINAL PROMPT (NN>). THE INITIAL INPUT OF ALL C COMMANDS IN THE CURRENT VERSION REQUIRES PRIVELEGED PROCESSING C SINCE PARSE IS USUALLY CALLED AND A FEW COMMANDS FORCE PRIVELEGED C PROCESSING. ALL COMMANDS WHICH INITIATE LIST OUTPUT USE THE C BINARY-TO-ASCII INTERFACE ROUTINES 'CNUMD' AND 'CNUMO' WHICH ALSO C REQUIRE PRIVELEGED PROCESSING. IF A ZERO-LENGTH RECORD IS SENSED C UPON COMMAND INPUT, ONLY THE PREVIOUS SMUT COMMAND IS RE-EXECUTED C WITH THE OLD PARAMETERS. IF THIS OCCURS, A CALL TO PARSE IS BY- C PASSED AND THE APPROPRIATE COMPUTED BRANCH IS TAKEN TO EXECUTE THE C COMMAND. C C C C PROGRAM EXECUTION C ----------------- C C RU,SMUT[,P1[,P2[,P3[,P4[,P5]]]]] C C P1 --> COMMAND INPUT LUN (DEFAULT=TERMINAL LU) C C P2 --> COMMAND ECHO LIST LUN (DEFAULT=0) C C P3 --> COMMAND OUTPUT LIST LUN (DEFAULT=P1) C C P4 --> ASCII DISPLAY MODE (DEFAULT=PARTIAL ASCII) C C P5 --> HP-IB LUN (DEFAULT=0) C C --- OR --- C C RU,SMUT[,P1[,P2[,P3[,P4[,P5]]]]] C C P1-P3 --> ASCII COMMAND FILE NAME C C P4 --> SECURITY CODE (DEFAULT= 0) C C P5 --> CARTRIDGE REFERENCE (DEFAULT=0) C C COMMAND INPUT AND COMMAND LIST OUTPUT LU'S ARE SET TO 1 AND 6 C RESPECTIVELY. C C EXTERNAL SMUT ROUTINES C ---------------------- C C 1. APL (ASSEMBLY) PROCESSES 'CA' COMMAND. C 2. LUGET (ASSEMBLY) RETRIEVES INFORMATION ABOUT AN LU. C 3. RSBUF (ASSEMBLY) SETS A BUFFER TO A CONSTANT. C 4. ABORT (ASSEMBLY) HANDLE SYSTEM I/O ABORTS. C 5. INSTR (ASSEMBLY) EXECUTES INSTRUCTION WITH INT. SYSTEM OFF. C 6. CRASH (ASSEMBLY) PERFORMS A 'JSB' TO MEMORY WITH INT. SYS. OFF C 7. RAB (ASSEMBLY) RETRIEVES A & B REGISTERS. C 8. IGET (ASSEMBLY) RETRIEVES CONTENTS OF MEMORY. C 9. IXGET (ASSEMBLY) RETRIEVES CONTENTS OF SYSTEM MAP MEMORY. C 10. IPUT (ASSEMBLY) ALTERS USER MEMORY. C 11. IXPUT (ASSEMBLY) ALTERS MEMORY FOR SYSTEM MAP. C 12. IXOR (ASSEMBLY) PERFORMS THE EXCLUSIVE OR FUNCTION. C 13. MVB (ASSEMBLY) MOVES A STRING OF BYTES. C 14. SCB (ASSEMBLY) SCANS UNTIL A BYTE STRING. C 15. .LOAD (ASSEMBLY) LOADS A BYTE. C 16. .STOR (ASSEMBLY) STORES A BYTE. C 17. .CHEK (ASSEMBLY) CHECKS RANGE OF BYTE. C 18. .STUP (ASSEMBLY) SETS-UP BYTE SCAN FOR SCB. C 19. .CASE (ASSEMBLY) DETERMINES TYPE OF BYTE. C C C C PROGRAM NOTES C ------------- C C C 1. THE SIZE OF SMUT IS DETERMINED AT LOAD TIME. IN RTE-III, C THE NUMBER OF PAGES MUST BE SPECIFIED AT LOAD TIME SO THE C DISC COMMANDS WILL OPERATE WITHOUT DM ERRORS. RECALL, IF YOU C SIMPLY LOAD A PROGRAM ACCORDING TO ITS SIZE ONLY, THEN THE REST C OF MEMORY FROM THE END OF YOUR PROGRAM TO THE NEXT PAGE BOUNDARY C IS READ AND WRITE PROTECTED UNDER THE DMS SYSTEM. C C 2. TO DETERMINE WHICH SYSTEM SMUT IS BEING RUN UNDER, EXAMINE THE C SYSTEM ENTRY POINT $OPSY (PROGRAMATICALLY ACCESSIBLE THROUGH A C CALL TO .OPSY) FOR THE FOLLOWING BREAKDOWN: C C $OPSY C C C SYQgSTEM VALUE BIT 15 ... BIT 3 BIT 2 BIT 1 BIT 0 C ------ ----- ------ ----- ----- ----- ----- C C DOS-M 1 0 ... 0 0 0 1 C C RTE-MI -7 1 ... 1 0 0 1 C C RTE-MII -15 1 ... 0 0 0 1 C C RTE-MIII -5 1 ... 1 0 1 1 C C RTE-II -3 1 ... 1 1 0 1 C C RTE-III -1 1 ... 1 1 1 1 C C FUTURE RTE(S) ******* NOT DETERMINED ******* C C C 3. SOME USEFUL SYSTEM ENTRY POINTS ARE DEFINES AS FOLLOWS: C C $TIME ---> $TIME & $TIME+1 CONTAIN THE CURRENT REAL-TIME C STORED AS A 32-BIT INTEGER COUNT OF THE NUMBER C 10 MILLI-SECOND CLOCK PERIODS. C C $BATM ---> CONTAINS THE CURRENT PROGRAM EXECUTION TIME FROM C A JOB WITHIN FMP (I.E. ANY SON SCHEDULED FROM FMP) C WHICH IS USED TO COMPUTE AND PRINT THE FINAL C PROGRAM EXECUTION TIME. C C $PDKS ---> CONTAINS A FLAG WHICH DETERMINES WHETHER FMP IS C THE ONLY PROGRAM WHICH CAN WRITE ONTO A PERIPHERAL C DISC: C C =0 ANYBODY C #0 ONLY FMP - ALL OTHERS ABORTED C C $MATA ---> MEMORY ALLOCATION TABLE WHICH CONTAINS THE LAYOUT C OF PARTITIONS. THE HEAD OF THIS TABLE IS POINTED C TO BY THE CONTENTS OF $MATA. C C $FGFR ---> HEAD OF FOREGROUND REAL-TIME PARTITION FREE TABLE. C C $BGFR ---> HEAD OF BACKGROUND PARTITION FREE TABLE. C C C $LUSW ---> HEAD OF THE LOGICAL SWITCH TABLE. C C $RNTB ---> HEAD OF THE RESOURCE NUMBER TABLE. THE FIRST C ENTRY CONTAINS THE NUMBER OF RESOURCE NUMBERS. C C $CLAS ---> HEAD OF THE CLASS I/O TABLE. C C C 4. DUE TO THE NCHANGES IN THE PHILOSOPHY OF HANDLING THE OPERATOR C LU, EQ, TO, UP, & DN COMMANDS, THE COMMANDS 'LI,EQ', 'LI,LU', C AND 'LI,TO' COMMANDS MUST BE RE-CODED SUCH THAT THE MESSAGE C PROCESSOR (MESSS) RECEIVES THE CORRECT PARAMETERS. C C C... LOCAL STORAGE ALLOCATIONS ... C DIMENSION IQ(2),LUN(5),INBUF(42),IPARS(43),ICMND(43) DIMENSION NAME(15),MESG1(9),MESG2(19) DIMENSION MESG7(9),MESG8(13),MESG9(16),MESG10(10) DIMENSION ICON(20),IEND(5),IOP(11),ITABL(9),MOD(3) DIMENSION IDCB(144),ITYPE(8),IHELP(3),ISBUF(6144) C C... LOCAL VARIABLE ASSIGNMENTS ... C INTEGER DSCMD,WDCHK C C... LOCAL VARIABLE EQUIVALENCIES ... C EQUIVALENCE(A,IQ,IA),(IQ(2),IB) EQUIVALENCE(IS,IPARS(6)),(IE,IPARS(10)),(IK,IPARS(14)) EQUIVALENCE(IP11,IPARS(11)),(IP9,IPARS(9)),(IP13,IPARS(13)) EQUIVALENCE(IP17,IPARS(17)),(IP20,IPARS(20)) EQUIVALENCE(IL,IPARS(18)),(IM,IPARS(22)) EQUIVALENCE(IS1,ICoN(1)),(IS3,ICON(3)),(IS5,ICON(5)),(IS9,ICON(9)) EQUIVALENCE(IS4,ICON(4)),(IS2,ICON(2)),(IS11,ICON(11)) EQUIVALENCE(IS12,ICON(12)) EQUIVALENCE(ICON(6),IS6),(ICON(16),IS16),(ICON(8),IS8) EQUIVALENCE(ICON(19),IS19),(IS14,ICON(14)),(ICON(7),IS7) EQUIVALENCE(ICON(10),IS10),(ICON(15),IS15) EQUIVALENCE(IS13,ICON(13)) EQUIVALENCE(IT3,IPARS(3)),(IT1,IPARS(1)),(IT7,IPARS(7)) EQUIVALENCE(IT5,IPARS(5)),(IT9,IPARS(9)),(IT2,IPARS(2)) EQUIVALENCE(IN,IPARS(26)),(IT15,IPARS(15)) EQUIVALENCE(LUN(1),LUN1),(LUN(2),LUN2),(LUN(3),LUN3) EQUIVALENCE(LUN(4),LUN4),(LUN(5),LUN5),(IEND(1),IEND1) EQUIVALENCE(INBUF(1),INBF1),(INBUF(2),INBF2),(INBF3,INBUF(3)) EQUIVALENCE(INBF4,INBUF(4)),(INBF42,INBUF(42)),(INBF63,INBUF(63)) EQUIVALENCE(IDCB1,IDCB(1)) EQUIVALENCE(MESG8(11),MESG11),(IHELP1,IHELP),(MSG86,MESG8(6)) EQUIVALENCE(MESG81,MESG8(1)),(MESG11,MESG1(1)),(MESG21,MESG2(1)) EQUIVALENCE(MESG9,MESG91,MESG9(1)) EQUIVALENCE(MESG87,MESG8g(7)) C C... LOCAL PRE-DEFINED STORAGE ... C DATA IPRMPT/2H$_/,IBASE,IWB,IPB/3*0/ DATA ITABL/2HID,2HEN,2HIN,2HLU,2HTO,2HTA,2HHP,2HEQ,2HST/ DATA MOD/2HFU,2HPA,2HNA/,IBL/0/,NAMEF/3*2H / DATA LUTTY,LULOG,LUIB/401B,2*0/,INBUF/2H / DATA ICMND/2HDW,2HDM,2HRD,2HSM,2HSW,2HBM,2HWD,2HCM,2HLI,2HCA,2HLO, -2HMS,2HLC,2HIM,2HFV,2HFW,2HCP,2HRM,2HRW,2HDS,2HLL,2HAM,2HCD, -2HCN,2HIB,2HBC,2HBD,2HHP,2HSR,2HIN,2HIO,2HJM,2HIW,2HTR, -2HSC,2HCW,2HAW,2HBW,2HID,2HXD,2HXS,2HEX,2H??/ DATA IOP/2HP ,2HM ,2HT ,2HD ,2HO ,2HX , 2HA ,2HAV,2HRO,2HSH,2HPO/ DATA IEND/2H$E,2HND,2H S,2HMU,2HT /,ICON/23*2H / DATA NAME/2HSY,2HST,2HEM,2H ,2H--,2H ,2HGL,2HOB,2HAL, -2HFM,2HGR,2H ,2H *,2HLG,2H0*/ DATA MESG1/2HHP,2HIB,2H N,2HOT,2H I,2HNS,2HTA,2HLL,2HED/ DATA MESG2/2H ,2H L,2HUN,2H ,2HCH,2HAN,2H ,2HSU,2HBC,2HHN, -2H ,2H T,2HAL,2HK ,2H ,2H L,2HIS,2HTE,2HN / DATA MESG8/2H F,2HMP,2H E,2HRR,2HOR,2H -,2 ,2H ,2H / DATA MESG9/2H H,2HEL,2HP ,2HPR,2HOG,2HRA,2HM ,2HNO,2HT ,2HLO,2HAD, -2HED,2H -,2H S,2HOR,2HRY/ DATA MESG10/2H F,2HMP,2H N,2HOT,2H I,2HNS,2HST,2HAL,2HLE,2HD / DATA ICON/6412B,2H S,2HMU,2HT ,2H(R,2HEV,2H. ,2H17,2H31,2H) , -6412B/ DATA ITYPE/2HMR,2HL ,2HDR,2HL ,2HAB,2HS ,2HMI,2HC / DATA IHELP/2HSH,2HEL,2HP / DATA MODE/2/,INPUT/-1/,LENRET/0/,IBRK/-1/ C C NOTE: THE VARIABLE 'MAX' MUST BE SET TO THE DESIRED SIZE C ---- SO THAT SMUT CAN RUN IN A PARTITION. THIS INVOLVES C CHANGING THE VARIABLE 'MAX' TO THE DESIRED SIZE AND C THE VARIABLE 'ISBUF' IN THE DIMENSION STATEMENT. C THE SIZE MUST BE AT LEAST 64 WORDS. C DATA MAX/6144/ C C C... RETRIEVE SCHEDULE PARAMETER(S) ... C CALL RMPAR(LUN1) C C... SET ACTUAL PARAMETER(S) & DETERMINE COMMAND INPUT ... C IF(LUN1.LE.63) GO TO 3 C C... PROCESS COMMAND INPUT FROM A FMP FILE ... C INPUT=0 LUTTY=401B LULST=6 DO 1 NW=1,.3 1 IF(LUN(NW).LE.0) LUN(NW)=2H CALL RSBUF(IS1,2H ,20) C C... OPEN FILE NON-EXCLUSIVELY ... C CALL OPEN(IDCB,IERRX,LUN1,1,LUN4,LUN5) IF(IERRX.GE.0) GO TO 7 C C... COMMAND FILE IS UNACCESSABLE - CLOSE DOWN AND TERMINATE ... C CALL CNUMD(IABS(IERRX),MESG87) CALL EXEC(2,LULST,MESG81,9) GO TO 99 C C... HERE FOR NON-COMMAND FILE INPUT ... C 3 LUTTY=IOR(LUN1,400B) IF(LUN1.NE.0) GO TO 5 LUTTY=401B 5 LULST=LUTTY IF(LUN2.NE.0) LULOG=LUN2 IF(LUN3.NE.0) LULST=LUN3 IF(LUN4.NE.0) MODE=LUN4 IF(LUN5.NE.0) LUIB=LUN5 C C... PRINT HEADER & REPORT WORK AREA BUFFER SIZE ... C CALL CNUMD(MAX,IS16) CALL EXEC(2,LULST,IS1,11) C C... GET SOME USEFUL BASE PAGE INFORMATION ... C 7 KEQTA=IGET(1650B) NEQT=IGET(1651B) NDRTA=IGET(1652B) NDRT=IGET(1653B) NINT=IGET(1654B) INTAD=IGET(1655B) ILTAT=-IGET(1755B)-1 ITAT=IGET(1656B) KEYWD=IGET(1657B) ILIB=IGET(1761B) ISLIB=IAND(ILIB,177B)-1 ITLIB=ILIB/128 NWLIB=IGET(1762B)/16+1 C C... CLEAR DISC WORK AREA BUFFER TO ZEROS IN CASE SYSTEM LOADER IS LAZY ... C ( LIKE RTE-M) ... C CALL RSBUF(IS1,2H ,20) C C... INPUT & PROCESS A COMMAND ... C 10 CALL RSBUF(INBF2,2H ,40) IF(IFBRK(0))170,120 120 INBF42=2H,, IF(INPUT)13,55000 13 CALL EXEC(2,LUTTY,IPRMPT,1) 16 A=REIO(1,LUTTY,INBF2,-80) LEN=IB C C... CHECK FOR INPUT DEVICE TIME-OUT OR EOT AND IF SO EXECUTE C LAST COMMAND (HOPE IT'S A SMUT COMMAND OR ERROR WILL OCCUR) ... C 130 IF(IB.EQ.0) GO TO 15 C C... FIRST PASS TO CHECK FOR COMMENTS IF * IN COLUMN 1 ... C IF(INBF2/256.NE.52B) GO TO 133 134 CALL EXEC(2,LULST,INBF1,-IB-2) GO TO 10 133 CALL EXEC(2,LULOG,INBF1,-IB-2) C C... PARSE DOWN ALL THE PARAMETER(S) INTO IPARS BUFFER ... C C NOTE: ATTATCHED TO EACH COMMAND DESCRIPTION FOR YOUR CONVENIENCE, C ---- W:ARE THE VARIABLE NAMES WHICH ARE EQUATED TO THE ACTUAL VALUE C OF EACH PARAMETER THAT PARSE ARRIVES AT AS FOLLOWS: C C IS ---> PARAMETER #1 C IE ---> PARAMETER #2 C IK ---> PARAMETER #3 C IL ---> PARAMETER #4 C IM ---> PARAMETER #5 C IN ---> PARAMETER #6 C C PARAMETERS 7 & 8 ARE NEVER USED. ALSO, NOTE THAT OTHER C VARIABLE NAMES (IT1,IT2,ETC.) ARE EQUATED TO THE TYPE OF C EACH PARAMETER. PARAMETER #1 IS THE COMMAND AND IS EQUATED C TO VARIABLE NAME 'IT2'. C CALL PARSE(INBF2,IB,IT1) C C... CHECK AGAIN FOR A COMMENT ... C IF(IT2/256.EQ.52B) GO TO 134 C C... LOCATE COMMAND AND BRANCH TO APPROPRIATE PROCESSOR ... C 15 DO 20 K=1,43 IF(ICMND(K).EQ.IT2) GO TO(100,200,300,400,500,600,700,800, -900,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000, -12000,13000,14000,15000,17000,16000,16000,15000,15000,20000, -16000,18000,21000,22000,24000,27000,26000,28000,29000, -200,400,99,30000), K 20 CONTINUE C C... IF NOT A SMUT COMMAND, ASSUME AN OPERATOR COMMAND ...THUS C SEND IT DIRECTLY TO THE MESSAGE PROCESSOR ... C 25 IL=MESSS(INBF2,IB,LULST) IF(IL.EQ.0) GO TO 10 C C... COMMAND OUTPUT OR ERROR, WHERE ERROR MESSAGE IS IN INBUF ... C CALL EXEC(2,LULST,INBF1,IL-2) IF(INPUT.EQ.0) GO TO 99 GO TO 10 C C... OPERATOR TYPED 'BR,SMUT' ... C 170 IBRK=0 IF(INPUT)115,55200 C C... HERE FOR FMGR COMMAND FILE INPUT PROCESSING ... C 55000 CALL READF(IDCB1,IERRX,INBF2,40,LENRET) IF(LENRET.EQ.-1) GO TO 55200 IF(IERRX.EQ.0) GO TO 55050 C C... MUST BE FILE ERROR - PRINT ERROR & DON'T CARE ABOUT THE REST ... C 55500 CALL CNUMD(IABS(IERRX),MSG86) MSG86=2H - CALL EXEC(2,LULST,MESG81,9) GO TO 55200 55050 IF(LENRET)55200,55100 55100 LEN=LENRET*2 IB=LEN GO TO 130 55200 CALL CLOSE(IDCB1) 55250 INPUT=-1 sIF(IBRK)55255,55260 55260 LUTTY=401B IBRK=-1 GO TO 115 55255 LENRET=0 IF(IT5.EQ.1) LUTTY=IOR(IS,400B) GO TO 10 C C... TR,A[,B[,C]] -----> TRANSFER TO FMP COMMAND FILE. C C IS IE IK C 22000 IF(INPUT)22500,22100 22100 CALL CLOSE(IDCB1) IF(IS.LE.63) GO TO 55250 22500 CALL OPEN(IDCB1,IERRX,IS,1,IE,IK) IF(IERRX.GE.0) GO TO 22400 GO TO 55500 22400 INPUT=0 GO TO 10 C C... DW[,A[,B[,C]]] -----> DISPLAY WORD(S) IN WORK AREA. C C IS IE IK C 100 CALL INDEX(IK) CALL INDEX(IS) DO 110 NW=IS,IE,IK K=NW+IWB IF(WDCHK(K,MAX))988,129 129 IF(IFBRK(K))10,105 105 CALL CNUMD(K,IS1) K=ISBUF(K) CALL CNUMO(K,IS5) CALL CNUMD(IABS(K),IS9) 110 CALL DSPLY(MODE,LULST,IS1,11,K) 115 CALL RSBUF(IS1,2H ,20) GO TO 10 C C... DM[,A[,B[,C]]] -----> DISPLAY MEMORY. C C... XM[,A[,B[,C]]] -----> DISPLAY MEMORY (SYSTEM MAP). C C IS IE IK C 200 CALL INDEX(IK) DO 210 NW=IS,IE,IK IF(IFBRK(NW))10,205 205 ILL=NW+IBASE IF(ILL)988,207 207 IF(IT2.EQ.2HXD) GO TO 220 K=IGET(ILL) GO TO 230 220 K=IXGET(ILL) 230 CALL CNUMO(ILL,IS1) CALL CNUMO(K,IS5) CALL CNUMD(IABS(K),IS9) 210 CALL DSPLY(MODE,LULST,IS1,11,K) GO TO 115 C C... RD[,A[,B[,C[,D]]]] -----> READ DISC INTO WORK AREA. C C IS IE IK IL C 300 IF(WDCHK(IL,MAX))988,310 310 CALL EXEC(100001B,IK,ISBUF(1),IL,IS,IE) GO TO 75000 77000 GO TO 10 C C... SM[,A[,B]] -----> SET MEMORY. C C... XS[,A[,B]] -----> SET MEMORY (SYSTEM MAP). C C IS IE C 400 IF(IS)988,410 410 IF(IT2.EQ.2HXS) GO TO 420 CALL IPUT(IS,IE) GO TO 10 420 CALL IXPUT(IS,IE) GO TO 10 C C... SW[,A[,B]] -----> SET WORD IN WORK AREA. C C IS IE C 500 IF(WDCHK(IS,MAX))988,510 510 ISBUF(IS)=IE GO TO 10 C C... BM[,A] -----> SET BASE ADDRESS FOR 'DM' & 'XD' COMMANDS. C .GC IS C 600 IF(IS)988,610 610 IBASE=IS GO TO 10 C C... WD[,A[,B[,C[,D]]]] -----> WRITE WORK AREA TO DISC. C C IS IE IK IL C 700 IF(WDCHK(IL,MAX))988,710 710 CALL PATCH(IK,ISBUF(1),IL,IS,IE,LULST) GO TO 10 C C... CM[,A[,B[,C[,D[,E]]]]] -----> COPY BLOCK OF MEMORY. C C IS IE IK IL IM C 800 DO 810 NW=0,IK-1 IF(IFBRK(NW))10,805 805 K=IE+NW+IM IF(K)988,822 822 ILL=IS+NW+IL IF(ILL)988,810 810 CALL IPUT(K,IGET(ILL)) GO TO 10 C C... LI,TABLE[,A[,B[,C]]] -----> LIST SYSTEM TABLE. C C IS IE IK IL C 900 DO 901 NW=1,9 IF(IS.EQ.ITABL(NW)) GO TO(970,1700,930,940,950,996,33000,905, -34000), NW 901 CONTINUE GO TO 988 905 IF(IT9.EQ.0) GO TO 950 IF(IE.LE.0.OR.IE.GT.NEQT) GO TO 988 C C... LI,EQ[,A] -----> LIST CONTENTS OF SPECIFIED EQUIPMENT TABLE. C C IS IE C ISA=KEQTA+(IE-1)*15 ISB=ISA+14 910 ILL=1 DO 920 NW=ISA,ISB IF(IFBRK(NW))115,915 915 K=IGET(NW) CALL CNUMD(ILL,IS1) CALL CNUMO(NW,IS5) CALL CNUMO(K,IS9) CALL CNUMD(IABS(K),IS13) CALL DSPLY(MODE,LULST,IS1,15,K) 920 ILL=ILL+1 GO TO 115 C C... LI,IN[,A[,B]] -----> LIST INTERRUPT TABLE ENTRY. C C IS IE IK C 930 IF(IT9.EQ.0) GO TO 936 IF(IE.GT.INTAD.OR.IK.GT.INTAD.OR.IE.LE.0) GO TO 988 933 IAD=NINT 934 DO 935 NW=IE,IK IF(IFBRK(NW))115,937 937 ILL=IAD+NW-1 K=IGET(ILL) IF(IS.NE.2HIN) GO TO 938 NW=NW+5 CALL CNUMO(NW,IS1) GO TO 939 938 CALL CNUMD(NW,IS1) 939 CALL CNUMO(NDRTA+NW-1,IS5) CALL CNUMO(K,IS9) CALL CNUMD(IABS(K),IS13) IF(IS.EQ.2HIN) NW=NW-5 935 CALL EXEC(2,LULST,IS1,15) GO TO 115 936 IE=1 IK=ISV GO TO 933 C C... LI,LU[,A[,B]] -----> LIST LOGICAL UNIT ENTRY. C C IS IE IK C 940 IF(IE.GT.NDRT.OR.IK.GT.NDRT.OR.IE.LT.0) GO TO 988 IF(IT9.EQ.0)>HFB GO TO 945 942 IAD=NDRTA GO TO 934 C C... LI,LU ---> LIST ALL EQT'S (FOR ALL YOU OLD 'DOS' FANS) C 945 IK=NDRT GO TO 953 C C LI,EQ ---> LIST ALL EQT'S C C LI,TO ---> LIST ALL TIME-OUTS C C IS C 950 IK=NEQT 953 DO 960 NW=1,IK IF(IFBRK(NW))115,955 955 IS4=IS IS5=2H,0 IS6=KCVT(NW) IE=MESSS(IS4,6,LULST) C C DELAY FOR 20 MILLIS UNTIL $$CMD COMPLETES C CALL EXEC(12,0,1,0,-2) IF(IS.NE.2HEQ) GO TO 958 IS1=KCVT(NW) IS4=2H 958 CALL EXEC(2,LULST,IS1,IE-6) 960 IS1=2H GO TO 115 '{HC C... LI,ID,NAME -----> LIST PROGRAM'S ID SEGMENT. C C IS IE C 970 DO 980 NPROG=0,156 IF(IFBRK(NW))115,975 975 NW=KEYWD+NPROG IDAD=IGET(NW) IF(IDAD.EQ.0) GO TO 985 ITYPE=IGET(IDAD+14) IF(IE.EQ.IGET(IDAD+12).AND.IP11.EQ.IGET(IDAD+13).AND. -IPARS(12).EQ.IOR(IAND(ITYPE,177400B),40B)) GO TO 990 980 CONTINUE C C... FORCE 'NO SUCH PROG' SYSTEM ERROR ... C 985 INBF2=2HPR 987 IB=2 GO TO 25 C C... FORCE 'INPUT ERROR' SYSTEM ERROR ... C 988 INBF2=2HTM GO TO 987 990 ISA=IDAD IF(IAND(ITYPE,20B).EQ.0) GO TO 991 ISA=IDAD+11 ISB=ISA+8 GO TO 910 991 ISB=ISA+27 ITYPE=IAND(ITYPE,37B) IF(ITYPE.EQ.1.OR.ITYPE.EQ.4) ISB=ISB-4 GO TO 910 C C... LI,TA -----> LIST SYMBOLIC CONTENTS OF TRACK ASSIGNMENT TABLE. C C IS C C EACH ENTRY IN TAT POINTS TO WHO OWNS THE TRACK AS FOLLOWS: C C ENTRY VALUE OWNER C C 0 AVAILABLE C 100000 SYSTEM C 77777 GLOBAL C 77776 FMP C N ADDRESS OF PROGRAMS ID SEGMENT C THAT OWNS THE TRACK. C C LOAD AND GO TRACKS ARE INDICATED BY THE LITERAL '*LGO*' C 996 LGTRK=IAND(IGET(1765B),37600B)/128 LAST=0 DO 32120 NT=0,ILTAT ILL=IGET(ITAT+NT) IF(ILL.EQ.LAST.AND.LGTRK.NE.NT) GO TO 32000 LAST=ILL IPOST=-1 IF(ILL.EQ.0) IPOST=4 IF(ILL.EQ.100000B) IPOST=1 IF(ILL.EQ.077777B) IPOST=7 IF(ILL.EQ.077776B) IPOST=10 IF(NT.EQ.LGTRK) IPOST=13 IF(IPOST)32100,32200 32100 IS5=IGET(ILL+12) IS6=IGET(ILL+13) IS7=IOR(IAND(IGET(ILL+14),177400B),40B) 32300 CALL CNUMD(NT,IS1) CALL EXEC(2,LULST,IS1,7) GO TO 32000 32200 IF(IPOST.EQ.13) GO TO 32150 32250 IS5=NAME(IPOST) IS6=NAME(IPOST+1) IS7=NAME(IPOST+2) GO TO 32300 32000 IF(NT.EQ.0) GO TO 32120 `IF(IVAL.EQ.100000B) LGTRK=LGTRK+1 32120 CONTINUE GO TO 115 32150 IF(NT.EQ.0) IPOST=1 GO TO 32250 C C... LI,HPIB -----> LIST HP-IB BUS DEVICE CONFIGURATIONS. C C IS C 33000 DO 33100 NEQTS=0,NEQT-1 IF(IAND(IGET(NEQTS*15+KEQTA+4),37400B).EQ.17400B) GO TO 33010 33100 CONTINUE CALL EXEC(2,LULST,MESG11,9) GO TO 10 33010 LUSP=LULST+1100B CALL EXEC(3,LUSP,1) CALL EXEC(2,LULST,MESG21,19) CALL EXEC(3,LUSP,1) DO 33150 LUNN=1,NDRT IF(IFBRK(0))10,33015 33015 IF(LUGET(LUNN,ICHAN,IEQT,ISUB,IAVL,IA,IA).NE.37B) - GO TO 33150 CALL CNUMO(ICHAN,IS4) ITALK=ISUB+100B LISTEN=ISUB+40B CALL CNUMD(ITALK,IS10) CALL CNUMD(LISTEN,IS15) CALL CNUMD(LUNN,IS1) IF(ISUB.NE.0) GO TO 33130 IS8=2HDI IS9=2HRE IS10=2HCT GO TO 33140 33130 CALL CNUMO(ISUB,IS8) 33140 IS14=ITALK+20000B IS19=LISTEN+20000B CALL EXEC(2,LULST,IS1,19) 33150 CONTINUE CALL EXEC(3,LUSP,1) GO TO 115 C C... LI,ST -----> LIST PARTITION STATUS. C C IS C 34000 DO 34100 NW=1,64 IS4=2HST IS5=2H,0 IS6=KCVT(NW) IS1=KCVT(NW) IL=MESSS(IS4,6,LULST) IF(IS4.EQ.2HNO) GO TO 115 34100 CALL EXEC(2,LULST,IS1,IL-6) GO TO 115 C C... LI,EN,A[,NAM] -----> LIST ENTRY POINT NAME & VALUE. C C IS IE IK C C THE SYSTEM GENERATOR CREATES TABLE CONSISTING OF FOUR-WORD ENTRIES C DESCRIBING THE CHARACTERISTICS OF EVERY ENTRY POINT RECEIVED DURING C PROGRAM INPUT AND LOADING PHASES. THE TABLE IS ACCESSED BY LOOKING C AT BASE PAGE LOCATION 1761 FOR THE TRACK & SECTOR OF THE TABLE AND C AT LOCATION 1762 FOR THE NUMBER OF ENTRIES. THE FORMAT OF EACH FOUR- C WORD ENTRY IS A FOLLOWS: C C WORD# UPPER 8 BITS LOWER 8 BITS C C 1 NAME NAME C 2 NAME NAME C 3 NAME TYPE C 4 VALUE C C WHERE: NAME --> 5 CHARACTER SYMBOL NAME C TYPE --> TYPE OF ENTRY POINT: C C 0 - MEMORY RESIDENT LIBRARY(OR IN THE C SYSTEM AREA AS AN ENTRY POINT) C 1 - DISC RESIDENT LIBRARY C 2 - NOT USED C 3 - ABSOLUTE VALUE C 4 - RP(FOR MICRO CODE) C C VALUE -> ONE OF TWO VALUES: C IF TYPE=0,3, OR 4 THEN ITS VALUE IS C THE ACTUAL 16-BIT VALUE OF THE SYMBOL. C IF TYPE=1, THEN IT IS THE TRACK(BITS 0-6) C AND SECTOR(BITS 7-14) OF THE RELOCATABLE C ROUTINE. C 1700 IF(MAX.LT.64) GO TO 988 ITRK=ITLIB ISECT=ISLIB IDOC=IK IP9=2H DO 1702 IN=1,NWLIB ISECT=ISECT+1 IF(ISECT.NE.96) GO TO 1740 ISECT=0 ITRK=ITRK+1 1740 CALL EXEC(100001B,2,ISBUF(1),64,ITRK,ISECT) GO TO 75000 1743 DO 1702 IL=1,64,4 IF(IE.EQ.ISBUF(IL).AND.IP11.EQ.ISBUF(IL+1).AND.IPARS(12).EQ. -IOR(IAND(ISBUF(IL+2),177400B),40B)) GO TO 1720 1702 CONTINUE IP13=2H?? CALL EXEC(2,LULST,IT9,5) GO TO 10 1720 ILV=IAND(ISBUF(IL+2),7) IV=ISBUF(IL+3) CALL CNUMO(ISBUF(IL+3),IT15) IF(ILV.EQ.0) IPOST=1 IF(ILV.EQ.1) IPOST=3 IF(ILV.EQ.3) IPOST=5 IF(ILV.EQ.4) IPOST=7 IP13=ITYPE(IPOST) IK=ITYPE(IPOST+1) ILL=-18 IF(ILV.NE.1) GO TO 1730 ITRK=IV/128 ISEC=IAND(IV,177B) CALL CNUMD(ITRK,IPARS(16)) CALL CNUMD(ISEC,IPARS(19)) IP17=2HT= IP20=2HS= ILL=ILL-8 1730 CALL EXEC(2,LULST,IT9,ILL) IF(ILV.NE.1) GO TO 115 IF(IDOC.NE.2HNA) GO TO 115 CALL EXEC(1,2,ISBUF(1),128,ITRK,ISEC) IREL=ISBUF(1)/256 IWORD=IREL-16 ISBUF(IWORD)=2H ILL=IREL-IWORD CALL EXEC(2,LULST,ISBUF(IWORD),ILL+1) j GO TO 115 C C... CA[,A[,B[,C]]] -----> CALCULATE & DISPLAY. C C IS IE IK C 1000 DO 1200 IOPS=1,11 IF(IE.EQ.IOP(IOPS)) GO TO 1250 1200 CONTINUE 1250 A=APL(IOPS,IS,IK,IREM) K=15 CALL CNUMO(IA,IS1) CALL CNUMD(IABS(IA),IS5) CALL CNUMO(IB,IS9) CALL CNUMD(IABS(IB),IS13) IF(IREM.EQ.-1) GO TO 1300 IS9=IA K=9 1300 CALL EXEC(2,LULST,IS1,K) GO TO 115 C C... LO[,A] -----> CHANGE LOG DEVICE LU. C C IS C 2000 LULOG=IS GO TO 10 C C... MS,A[,B[,C[,FMGR]]]] -----> MODIFY SYSTEM. C C IS IE IK IL C 3000 IF(MAX.LT.64) GO TO 988 IF(DSCMD(IS,ITRACK,ISECT,IW,ISBUF(1)))988,75000,3060 3060 CALL EXEC(1,2,ISBUF(1),64,ITRACK,ISECT) IOLD=ISBUF(IW) ISBUF(IW)=IE IF(IP13.EQ.0) GO TO 3070 CALL PATCH(IK,ISBUF(1),64,ITRACK,ISECT,LULST) C C REPORT TRACK, SECTOR, AND WORD# OF DISC AREA TO BE PATCHED AND C THE OLD VALUE. C 3070 CALL CNUMD(ITRACK,IS1) CALL CNUMD(ISECT,IS4) CALL CNUMD(IW,IS7) CALL CNUMO(IOLD,IS13) IS1=2H IS2=2HT= IS5=2HS= IS8=2HW= IS11=2HOL IS12=2HD= CALL EXEC(2,LULST,IS1,15) C C IF FOURTH PARAMETER = FMGR, THEN PATCH-UP CHECKSUM IF AND ONLY C IF D.RTR OWNS THE TRACK. OTHERWISE, ASSUME FMP NOT ON SYSTEM ... C IF(IL.NE.2HFM.AND.IPARS(15).NE.2HGR) GO TO 115 IDAD=IGET(1656B)-IGET(1755B)-1 IF(IGET(IDAD+12).NE.2HD..AND.IGET(IDAD+13).NE.2HRT.AND. -IAND(IGET(IDAD+14),177440B).NE.5100B) GO TO 3310 ISUM=0 DO 3200 NW=1650B,1657B 3200 ISUM=ISUM+IGET(NW) DO 3300 NW=1742B,1764B 3300 ISUM=ISUM+IGET(NW) CALL EXEC(1,IK,ISBUF(1),NS,ILTAT,1) INBF63=ISUM CALL PATCH(IK,ISBUF(1),NS,ILTAT,1,LULST) GO TO 115 3310 CALL EXEC(2,LULST,MESG10,-19) GO TO 115 C C IN THIS PROGRAM, IF DSCMD=0 THEN AN I/O ABORT OCCURRED WHILE IN C DSCMD PERHAPS INDICATING AN RTE-M OR BAD DISC. USUALLY, THIS WOULD C INDICATE THAT LOW & HIGH BASE PAGE INFORMATION COULD NOT BE LOCATED. C THE ASSUMPTION COULD BE THAT THIS IS NOT AN RTE SYSTEM. TO USE THIS C PATH, SIMPLY MODIFY 'DSCMD' TO RETURN A VALUE OF 0 IF THE INFORMATION C COULD NOT BE LOCATED. THIS WOULD PREVENT ACCIDENTAL MODIFICATION OF A C GRANDFATHER DISC. C C C... LC[,A] -----> CHANGE COMMAND INPUT LU. C C IS C 4000 IF(IS.LE.0) GO TO 988 LUTTY=IOR(IAND(IS,77B),400B) GO TO 10 C C... IM[,A[,B[,C[,D]]]] -----> INITIALIZE MEMORY. C C IS IE IK IL C 5000 CALL INDEX(IL) DO 5010 NW=IS,IE,IL IF(NW)988,5010 5010 CALL IPUT(NW,IK) GO TO 10 C C... FV[,A[,B[,C[,ALL[,D[,E]]]]]] -----> FIND VALUE IN MEMORY. C C IS IE IK IL IM IN C 6000 CALL INDEX(IM) MASK=IXOR(IN,IS) DO 6100 NW=IE,IK,IM IF(NW)988,6040 6040 IF(IFBRK(NW))115,6050 6050 IF(IXOR(IGET(NW),IN).NE.MASK) GO TO 6100 CALL CNUMO(NW,IS1) CALL EXEC(2,LULST,IS1,3) IF(IL.NE.2HAL) GO TO 115 6100 CONTINUE GO TO 115 C C... FW[,A[,B[,C[,ALL[,D[,E]]]]]] -----> FIND WORD WITHIN WORK AREA. C C IS IE IK IL IM IN C 7000 CALL INDEX(IM) MASK=IXOR(IS,IN) DO 7100 NW=IE,IK,IM IF(WDCHK(NW,MAX))988,7010 7010 IF(IFBRK(NW))115,7050 7050 IF(IXOR(ISBUF(NW),IN).NE.MASK) GO TO 7100 CALL CNUMD(NW,IS1) CALL EXEC(2,LULST,IS1,3) IF(IL.NE.2HAL) GO TO 115 7100 CONTINUE GO TO 115 C C... CP[,A] -----> CHANGE COMMAND PROMPT. C C IS C 8000 IPRMPT=IS GO TO 10 C C... RM[,A[,B[,C[,D[,E]]]]] -----> REPLACE MEMORY. C C IS IE IK IL IM C 9000 CALL INDEX(IM) DO 9100 NW=IK,IL,IM IF(NW)988,9050 9050 IF(IGET(NW).EQ.IS) CALL IPUT(NW,IE) 9100 CONTINUE GO TO 10 C C... RW[,A[,B[,C[,D[,E]]]]] -----> REPLACE WORD IN WORK AREA. C C IS IE IK IL IM C 10000 CALL INDEX(IM) DO 10100 NW=IK,IL,IM IF(WDCHK(NW,MAX))988,1<0110 10110 IF(ISBUF(NW).EQ.IS) ISBUF(NW)=IE 10100 CONTINUE GO TO 10 C C... DS[,A] -----> SET ASCII DISPLAY MODE. C C IS C 11000 IF(IT5.EQ.0) GO TO 11120 DO 11100 NW=1,3 IF(IS.EQ.MOD(NW)) GO TO 11110 11100 CONTINUE GO TO 988 11110 MODE=NW GO TO 10 11120 MODE=2 GO TO 10 C C... LL[,A] -----> CHANGE COMMAND LIST LU. C C IS C 12000 LULST=IS GO TO 10 C C... SU[,A[,B[,C]]] -----> SUM MEMORY. C C IS IE IK C 13000 K=0 CALL INDEX(IK) DO 13100 NW=IS,IE,IK IF(NW)988,13100 13100 K=K+IGET(NW) 13200 CALL CNUMO(K,IS1) CALL CNUMD(IABS(K),IS5) CALL EXEC(2,LULST,IS1,7) GO TO 115 C C... CD[,A[,B[,C[,D[,E[,F]]]]]] -----> COPY DISC TRACKS. C C IS IE IK IL IM IN C 14000 CALL INDEX(IN) DO 14100 NW=IE,IK,IN IF(IFBRK(0))115,14200 14200 CALL EXEC(100001B,IS,ISBUF(1),MAX,NW,0) GO TO 75000 14010 CALL PATCH(IL,ISBUF(1),MAX,IM,0,LULST) 14100 IM=IM+1 GO TO 10 C C... CN[,A[,B[,C]]] -----> ISSUE DEVICE CONTROL REQUEST. C C HP[,A[,B[,C]]] -----> SEND CONTROL WORD TO BUS. C C SR[,A[,B[,C]]] -----> SET-UP HP-IB SERVICE REQUEST PROGRAM. C C IS IE IK C 15000 CALL EXEC(100003B,IS+IE*64,IK) GO TO 75000 15010 GO TO 10 C C... BC,[< ...BYTE STRING ...>] -----> SEND COMMAND BYTE STRING TO BUS. C C BD,[< ...BYTE STRING ...>] -----> SEND DATA BYTE STRING TO BUS. C C IO,[< ...BYTE STRING ...>] -----> SEND BYTE STRING TO DEVICE. C C IT3 C 16000 INDXS=0 INDXD=0 IF(SCU(INBF2,INDXS,2,2H ,))988,15100 15100 IF(INDXS.GT.79) GO TO 988 INDXS=INDXS+1 LEN=LEN-INDXS IF(LEN.EQ.0) GO TO 15230 IF(MVB(INBF2,INDXS,IT3,INDXD,LEN))988,15200 15200 LEN=-LEN 15230 IF(IT2.EQ.2HBC) GO TO 15300 IF(IT2.EQ.2HIO) GO TO 15500 A=EXEC(100002B,LUIB,IT3,LEN,IT3,0) GO TO 75000 15250 CALL CNUMO(IA,IS1) CALL EXEC(2,LULST,IS1,3) GO TO 10 15300 A=EXEC(2,LUIB,IT3,0,IT3,LEN) GO TO 15250 15500 A=EXEC(2,LUIB,IT3,LEN) GO TO 15250 C C... IB[,A] -----> CHANGE HP-IB LUN. C C IS C 17000 LUIB=IS GO TO 10 C C... IN[,A] -----> EXECUTE ONE INSTRUCTION IN MEMORY. C C IS C 20000 CALL INSTR(IS) GO TO 10 C C... JM[,A] -----> JSB TO LOCATION IN MEMORY AND EXECUTE. C C IS C 18000 IF(IS.LE.77B) GO TO 988 CALL CRASH(IS) GO TO 10 C C... IW[,A[,B[,C[,D]]]] -----> INITIALIZE WORK AREA. C C IS IE IK IL C C IS IE IK C C 21000 CALL INDEX(IL) DO 21100 NW=IS,IE,IL IF(WDCHK(NW,MAX))988,21100 21100 ISBUF(NW)=IK GO TO 10 C C... SC,A[,B[,C[,D[,E[,F]]]]] -----> SCHEDULE IMMEDIATE WITH WAIT. C C IS IE IK IL IM IN C 24000 IF(IT9.GE.1) GO TO 24050 IE=IAND(LUTTY,77B) 24050 CALL EXEC(100011B,IS,IE,IK,IL,IM,IN) GO TO 985 24100 A=RAB(0) IF(IA.EQ.0) GO TO 10 GO TO 985 C C... AW[,A[,B[,C]]] -----> ADD BLOCK IN WORK AREA. C C IS IE IK C 26000 K=0 CALL INDEX(IK) DO 26200 NW=IS,IE,IK IF(WDCHK(NW,MAX))988,26200 26200 K=K+ISBUF(NW) GO TO 13200 C C... CW[,A[,B[,C[,D[,E]]]]] -----> COPY BLOCK OF WORDS IN WORK AREA. C C IS IE IK IL IM C 27000 CALL INDEX(IL) CALL INDEX(IM) DO 27100 NW=0,IK-1 K=IS+NW+IL-1 IF(WDCHK(K,MAX))988,27110 27110 L=IE+NW+IM-1 IF(WDCHK(L,MAX))988,27100 27100 ISBUF(L)=ISBUF(K) GO TO 10 C C...BW[,A] -----> SET WORK AREA BASE WORD. C C IS C 28000 IWB=IS-1 IF(IWB.LE.0) IWB=0 IF(IWB.GT.MAX) GO TO 988 GO TO 10 C C... ID[,A[,B[,C[,D[,E]]]]] -----> INITIALIZE DISC TRACKS. C C IS IE IK IL IM C 29000 CALL INDEX(IM) DO 29100 NW=1,MAX 29100 ISBUF(NW)=IL DO 29200 NW=IE,IK,IM IF(IFBRK(0))10,29200 29200 CALL PATCH(IS,ISBUF(1),MAX,NW,0,LULST) GO TO 10 C C... ??[,XX] -----> HELP C l C IS C 30000 CALL EXEC(100027B,IHELP1,IS,LULST) GO TO 30100 30200 GO TO 10 30100 CALL EXEC(2,LULST,MESG91,-32) GO TO 10 C C... HERE FOR I/O ABORT ERRORS ... C C IA = IO C IB = XX (TYPE OF ERROR) C 75000 CALL ABORT(LULST) GO TO 10 C C... EX[,A[,B[,C[,D[,E[,F]]]]]] -----> TERMINATE SMUT & SAVE RESOURCES. C C IS IE IK IL IM IN C 99 IF(INPUT)99000,99100 99100 CALL CLOSE(IDCB1) 99000 CALL EXEC(2,LULST,IEND1,5) CALL EXEC(6,0,IS,IE,IK,IL,IM,IN) C END SUBROUTINE DSPLY(MODE,LU,IBUF,LEN,IVAL) C C THIS SUBROUTINE DETERMINES WHICH ASCII MODE (IF ANY) TO DISPLAY C AND THEN OUTPUTS THE RESULTING RECORD. THE PARAMETERS ARE C INTERPRETED AS FOLLOWS: C C PARAMETERS C ---------- C C MODE -----> DISPLAY MODE: C C 1 FULL ASCII C 2 PARTIAL ASCII C 3 NO ASCII C C LU -----> OUTPUT LU C IBUF -----> BUFFER ADDRESS C LEN -----> WORD LENGTH OF BUFFER C IVAL -----> BINARY VALUE C DIMENSION IBUF(1) IEXT=0 GO TO(20,10,30), MODE C C... PARTIAL ASCII DISPLAY ...CONVERT ANY NON-PRINTABLE ASCII C CHARACTERS TO BLANKS ... C 10 IHIGH=IAND(IVAL,177400B) ILOW=IAND(IVAL,377B) IF(IHIGH.LT.20000B) IHIGH=20000B IF(ILOW.LT.40B) ILOW = 40B IVAL=IOR(IHIGH,ILOW) C C... FULL ASCII DISPLAY ... C 20 IBUF(LEN+1)=2H IBUF(LEN+2)=IVAL IEXT=2 C C... NO ASCII DISPLAY ... C 30 CALL EXEC(2,LU,IBUF,LEN+IEXT) C END INTEGER FUNCTION DSCMD(IADRES,ITRACK,ISECTR,IWORD,IARRAY) C C THIS SUBROUTINE ALLOWS RETURNS THE CALLER DISC INFORMATION WHEN C SUPPLIED WITH A LOCATION IN A MEMORY RESIDENT AREA OF RTE. IT C PEROFRMS THE FOLLOWING: C C A. READS FIRST HALF OF DISC-RESIDENT BOOTSTRAP TO DETERMINE DISC C TRACK & SECTOR OF BASE PAGE AREA AND MEMORY RESIDENT AREA. THIS C BOOTSTRAP IS PLACED BY THE SYSTEM GENERATOR ON SECTOR 1 OF THE C  THE FIRST DEFINABLE TRACK ON LU=2 AS FOLLOWS: C C WORD #1: LOW BASE PAGE (USUALLY 2, ALWAYS 2 IN RTE II/III) C WORD #2: HIGH BASE PAGE (USUALLY 2000B, SAME AS ABOVE) C WORD #3: TRACK(0-6), SECTOR(7-13) C WORD #4: LOW MEMORY (USUALLY 2000B, SAVE AS ABOVE) C WORD #5: HIGH MEMORY (LAST WORD BEFORE DISC RESIDENT AREA) C WORD #6: TRACK, SECTOR (SAME FORMAT AS WORD #3) C C B. DETERMINES THE ABOVE SIX VALUES. C C. COMPUTERS THE ACTUAL TRACK, SECTOR, AND WORD OFFSET FOR THE C AREA TO BE PATCHED. C D. RETURNS TO CALLER. C C PARAMETERS C ---------- C C IADRES --> MEMORY ADDRESS C ITRACK --> RETURNED TRACK WHERE IADRES RESIDES C ISECTR --> RETURNED SECTOR WHERE IADRES RESIDES C IWROD --> WORD WSITHIN ISECTR WHERE IADRES RESIDES C IARRAY --> BUFFER ADDRESS USED TO READ ISECTR C C ERROR RETURNS C ------------- C C DSCMD = 0 --> I/O ABORT ERROR - MAYBE A CORE BASED SYSTEM C DSCMD = -1 --> ADDRESS OUT-OF-RANGE C DSCMD = 1 --> NO ERROR C DIMENSION IARRAY(1) C DSCMD=1 CALL EXEC(100001B,2,IARRAY,64,0,1) GO TO 1225 1228 DO 1207 I=1,64 IF(IARRAY(I).EQ.2.AND.IARRAY(I+1).EQ.2000B.AND.IARRAY(I+3) -.EQ.2000B) GO TO 1208 1207 CONTINUE C C... ASSUME A GRANDFATHER DISC ... C IBASE=2 IWORD=77770B ISTRT=18 GO TO 1220 1208 IF(IADRES.LT.IARRAY(I).OR.IADRES.GT.IARRAY(I+4)) GO TO 777 ISTART=IARRAY(I+5) IBASE=IARRAY(I+2) C C... SEE IF WORD IS ON BASE PAGE ... C 1220 IPAST=IADRES-1024 IF(IPAST.GE.0) GO TO 1240 C C... WORD ON BASE PAGE ... C ITRACK=0 ISTART=IBASE ITEMP=IADRES-2 GO TO 1250 1225 DSCMD=0 GO TO 998 C C... ADDRESS OUT-OF-RANGE FOR THIS SYSTEM ... C 777 DSCMD=-1 GO TO 999 1240 ITRACK=IPAST/6144 ITEMP=IPAST-(ITRACK*6144) 1250 ISECTR=ITEMP/64 IWORD=ITEMP-(ISECTR*64) ISECTR=ISECTR+ISTART IF(ISECTR-95.LE.0) GO TO 999 C C... ADJUST FOR SECTOR OVERLFOW ... C ITRACK=ITRACK+1 ISECTR=ISECTR-96 C 999 IWORD=IWORD+1 998 END SUBROUTINE PATCH(LUN,IBUF,LEN,IT,IS,LULST) C C THIS SUBROUTINE IS RESPONSIBLE FOR WRITING ONTO DISC. C IT ALSO HANDLES WRITES TO SYSTEM DISC AREAS SUCH AS LU=2 & 3. C C THE SEQUENCE OF EVENTS ARE AS FOLLOWS: C C 1. LOCK SELF INTO MEMORY. C 2. CHANGE TAT ENTRY CORRESPONDING TO DESIRED TRACK(IT) TO C POINT TO SMUT'S ID SEGMENT ADDRESS. C 3. WRITE INFORMATION TO DISC. C 4. RESTORE TAT ENTRY. C 5. UNLOCK FROM MEMORY. C C PARAMETERS C ---------- C C LUN --> DISC LUN TO PATCH INFORMATION C IBUF --> INPUT BUFFER CONTAINING PATCHED BUFFER C LEN --> NUMBER OF WORDS IN IBUF C IT --> TRACK NUMBER C IS --> SECTOR NUMBER C LULST --> LUN TO PRINT I/O ABORT MESSAGE IF APPLICABLE C DIMENSION IBUF(1),IQ(2) EQUIVALENCE(A,IQ(1),IA),(IQ(2),IB) DATA IA,IB/2HIO,2H05/ C ASSIGN 99 TO JUMP NT=IGET(1756B) IF(LUN.LE.0.OR.LUN.GT.3) GO TO 10 ASSIGN 800 TO JUMP CALL EXEC(22,1) ITRK=IGET(1656B)+IT IF(LUN.EQ.3) ITRK=ITRK+NT 500 ITT=IGET(ITRK) CALL IPUT(ITRK,IGET(1717B)) 10 CALL EXEC(100002B,LUN,IBUF,LEN,IT,IS) GO TO 77 777 GO TO JUMP 800 CALL IPUT(ITRK,ITT) CALL EXEC(22,0) GO TO 99 C C... HERE FOR I/O ABROT ERRORS ... C 77 CALL ABORT(LULST) GO TO 777 99 END INTEGER FUNCTION WDCHK(IVAL,MAX) C C THIS FUNCTION SUBROUTINE CHECKS THE WORD RANGE ON ALL DISC-RELATED C FUNCTIONS. C C PARAMETERS C ---------- C C IVAL --> WORD NUMBER TO BE CHECKED C C MAX --> MAXIMUM VALUE THAT IVAL CAN BE C C RETURN: WDCHK = -1 ---> IVAL OUT-OF-RANGE, I.E. 0<=IVAL>MAX C C WECHK = 0 ---> IVAL OK C WDCHK=0 IF(IVAL.LE.0.OR.IVAL.GT.MAX) WDCHK=-1 C END SUBROUTINE INDEX(IVAL)B@< C C THIS SUBROUTINE CHECKS THE A VALUE USED AS AN INDEX IN C DO LOOPS TO BE ZERO AND IF ZERO MAKES IT A ONE. C C PARAMETERS C ---------- C C IVAL --> VALUE TO BE CHECKED C C INDEX --> SET TO 1 OF IVAL=0 UPON ENTRY C IF(IVAL.EQ.0) IVAL=1 C END END$ @BASMB,R,L *** SCAN BYTE(S) WHILE/UNTIL *** * HED SCAN BYTE(S) WHILE & UNTIL NAM SCB,7 740415 A LWS * EXT .ENTR,.STUP,.LOAD,.CASE * * * THIS ROUTINE AND THE ONES LISTED BELOW IN THE SOFTWARE BREAKDOWN * DESCRIPTION SECTION ARE A SET OF SELECTED BYTE MANIPULATION * ROUTINES TO HANDLE THE 'IO', 'BC', AND 'BD' COMMANDS. IT MIGHT * BE NOTED THAT THESE ROUTINES ARE PART OF ANOTHER CONTRIBUTED * LIBRARY PACKAGE BY THE SAME AUTHOR WHICH INCLUDE ADDITIONAL * ROUTINES TO SIMULATE THE 3000 HARDWARE BYTE MANIPULATION * INSTRUCTIONS. * * DEFINITIONS & USAGE * ------------------- * * THE FOLLOWING LINES WILL DEFINE TERMS AND USAGE OF A * SET OF FORTRAN CALLABLE BYTE MANIPULATION ROUTINES * THAT PERFORM STRING OPERATIONS ON AN ARRAY. THE USER * MUST TAKE 'GREAT CAUTION' WHEN USING CERTAIN OF THE * ROUTINES SINCE NO RUN-TIME EDITING IS PERFORMED CON- * CERNING MEMORY BOUNDS EXCEPT THAT OF THE OPERATING * SYSTEM UNDER WHICH THEY ARE RUN. * * THE FOLLOWING ROUTINES ARE AVAILABLE: * * MVB - MOVE BYTE(S) UNCONDITIONAL * * SCU - SCAN BYTE(S) UNTIL * * SCW - SCAN BYTE(S) WHILE SKP * ******************* * * * * * TERMINOLOGY * * * * * ******************* * * ARRAY A GROUP OF CONTIGUOUS 16-BIT LOCATIONS EACH * COMPRISING TWO BYTES, 8 BITS EACH. THE TERM * 'ARRAY' IS SOMETIMES CALLED 'BUFFER'. * * BYTE ONE-HALF OF AN ARRAY ELEMENT OR 8-BITS. * THESE 8-BITS CAN BE IN THE HIGH PART OF * AN ARRAY ELEMENT OR THE LOW PART. * * ELEMENT ONE 16-BIT LOCATION OF AN ARRAY CALLED AN * 'ARRAY' ELEMENT. * * ADDRESS ACTUAL 16-BIT ADDRESS OF THE FIRST ELEMENT OF * AN ARRAY. THIS ADDRESS CAN POINT TO ANY * ELEMENT WITHIN THE ARRAY. * * SOURCE DESIRED ADDRESS OF THE FIRST ELEMENT OF * ADDRESS AN ARRAY TO BE MOVED OR SCANNED. * * DESTINATION DESIRED ADDRESS OF THE FIRST ELEMENT OF * ADDRESS AN ARRAY TO WHICH THE SOURCE ARRAY IS TO * BE MOVED. * * INDEX BYTE POSITION WITHIN AN ELEMENT OF AN ARRAY. * THIS ACTUALLY POINTS TO THE SELECTED BYTE * WITHIN AN ARRAY. SKP * ************************ * * * * * ARRAY DEFINITION * * * * * ************************ * * WHEN USING THESE ROUTINES, ALL REFERENCES TO BYTES WITHIN AN * ARRAY ARE FROM BYTE #0 TO BYTE #N. THE LAYOUT OF THE ARRAY * IS INTERPRETED AS FOLLOWS: * * * BIT 15 8 7 0 * ************************* * * BYTE 0 * BYTE 1 * ELEMENT #1 * ************************* * * BYTE 2 * BYTE 3 * ELEMENT #2 * ************************* * * BYTE 4 * BYTE 5 * ELEMENT #3 * ************************* * * BYTE 6 * BYTE 7 * ELEMENT #4 * * ...ETC... * * * 2(N-1) * 2(N-1)+1 * ELEMENT #(N-1) * ************************* * * 2N * 2N-1 * ELEMENT #(N) * ************************* * * FOR EXAMPLE, THE FOLLOWING FORTRAN DIMENSION STATEMENT WOULD * REFLECT AN ARRAY OF 100 ELEMENTS OR 200 BYTES: * * FTN,L * PROGRAM ALLOC * DIMENSION IARY(100) * . * . * END * END$ * * THE BYTES WOULD BE CONTIGUOUSLY REFERENCED FROM BYTE 0 * TO BYTE 99 WHEN CALLING ANY OF THE ROUTINES FROM FORTRAN. * * *** I M P O R T A N T *** * * RECALL, THESE ROUTINES DO NOT DISCRIMINATE BETWEEN 'DATA' AND * A PROGRAM. THEREFORE, USE THEM WITH !!!CAUTION!!! AND SOUND * UNDERSTANDING. SKP * ***************** * * * * ÿ * BYTE TYPES * * * * * ***************** * * THE ASCII CHARACTER SET IS DIVIDED INTO THREE DIFFERENT * CLASSIFICATIONS OF CHARACTERS AS FOLLOWS: * * TYPE CLASSIFICATION * ---- -------------- * * ALPHA CHARACTERS A THRU Z * * NUMERIC CHARACTERS 0 THRU 9 * * SPECIAL OR ANY OTHER 8-BIT CHARACTER * ALPHA-NUMERIC * * THESE DEFINITIONS ARE USED ONLY BY MVBU, MVBW, SCU, AND * SCW ROUTINES WHICH REQUIRE A CHARACTER TYPE PARAMETER AND IN * CERTAIN ROUTINES A TEST CHARACTER. SINCE THIS CLASSIFICATION * PARALLELS THE BCD & EBCDIC CARD SYSTEM CODES USED ON * OTHER LARGE-SCALE AND MINI COMPUTERS, IT SEEMS MOST * APPROPRIATE TO CLASSIFY THEM AS SUCH. * * ********************* * * * * * CHARACTER TYPE * * * * * ********************* * * THE CHARACTER TYPE IS A ONE-WORD INTEGER CONSTANT OR * VARIABLE USED BY THE SCU ROUTINE TO IDENTIFY THE CURRENT * SOURCE BYTE AS BELONGING TO A CERTAIN CLASS OF CHARACTERS. * IT IS SET-UP AS FOLLOWS: * * IF ITYPE <= 0, NUMERIC CHARACTER * * IF ITYPE = 1, ALPHA CHARACTER * * IF ITYPE >= 2, SPECIAL OR ALPHA-NUMERIC CHARACTER * * IF ITYPE>=2, THEN THE 'TEST CHARACTER' MUST BE * SUPPLIED IN THE LOWER 8-BITS OF THE LAST PARAMETER IN THE * USERS CALLING SEQUENCE. OTHERWISE, THE TEST CHARACTER IS * NOT USED AND NEED NOT BE SUPPLIED. SEE ROUTINES MVBU, * MVBW, SCU, OR SCW ROUTINES FOR SET-UP OF PARAMETER 'ICHAR'. SKP * ******************** * * * * * TEST CHARACTER * * * * * ******************** * * ROUTINES MVBU, MVBW, SCU, AND SCW USE AN 8-BIT TEST * CHARACTER (BYTE) TO COMPARE AGAINST THE SOURCE BYTE * WHEN MOVING OR SCANNING BYTES. THIS TEST CHARACTER * OCCUPIES THE LOWER 8 BITS OF A WORD AND NEED ONLY BE * SUPPLIED IN THE USERS CALLING SEQUENCE WHEN THE * CHARACTER TYPE IS SPECIAL (SEE 'BYTE TYPES' DESCRIPTION * SECTION). * * * <<< SCAN BYTES UNTIL >>> * * THIS ROUTINE SCANS A SOURCE ARRAY UNTIL THE SOURCE BYTE * IS EQUAL TO THE SPECIFIED CHARACTER TYPE. SCANNING CONTINUES * UNTIL A SOURCE BYTE IS FOUND THAT IS NOT EQUAL TO THE * CHARACTER TYPE. * * FORTRAN CALLING SEQUENCE * ------------------------ * * IRES = SCU(BYTES,INDXS,ITYPE,ICHAR) * * BYTES --> NAME OF SOURCE ARRAY TO BE SCANNED. * INDXS --> STARTING BYTE POSITION INDEX POINTING * TO THE FIRST BYTE TO BE SCANNED. * ITYPE --> SOURCE CHARACTER TYPE IDENTIFIER:CH THE * * IF ITYPE<=0, NUMERIC * IF ITYPE =1, ALPHA * IF ITYPE<=0, SPECIAL * ICHAR --> SPECIAL 8-BIT CHARACTER IN LOWER BITS AND * SUPPLIED ONLY IF ITYPE=2. * * * EXAMPLE FORTRAN USAGE: * * FTN,L * PROGRAM BYTER * INTEGER BYTES(40),SCU * . * . * C... SCAN ARRAY 'BYTES' STARTING AT BYTE POSITION * C 45 UNTIL THE SOURCE BYTE IS THE CHARACTER * C 'J' ... * C * C * INDXS = 45 * IF(SCU(BYTES,INDXS,2,2H J))10,20 * 10 * . * . * 20 * . * . * END * END$ * * NOTE: IF UPON ENTRY THE BYTE INDEX IS NEGATIVE, THE A * ---- REGISTER WILL CONTAIN THE NEGATIVE INDEX AND NO * BYTES WILL HAVE BEEN SCANNED. UPON RETURN, * PARAMETER 'INDXS' POINTS TO THE SOURCE BYTE * WHICH DID NOT EQUAL THE CHARACTER TYPE. SKP * SOFTWARE BREAKDOWN * ------------------ * * THE FOLLOWING TABLE DESCRIBES THE BzREAKDOWN OF THE FORTRAN CALLABLE * ROUTINES. * * *********************************************************** * * NAME * ENTRY * EXTERNAL * LENGTH * * * * POINT * REFERENCE(S) *********************** * * * * * OCTAL * DECIMAL * * *********************************************************** * * * * * * * * * MVB * MVB * .ENTR,.CHEK, * 40 * 32 * * * * * .LOAD,.STOR * * * * * * * * * * * *********************************************************** * * * * * * * * * SCB * SCU,SCW * .ENTR,.STUP, * 47 * 39 * * * * * .LOAD,.CASE * * * * * * * * * * * *********************************************************** * * TOTAL LENGTH = 71 (DEC), 107 (OCTAL) * * THE FOLLOWING TABLE DESCRIBES THE UTILITY MODULES REFERENCED * BY THE ABOVE ROUTINES. * * *********************************************************** * * NAME * ENTRY * EXTERNAL * LENGTH * * * * POINT * REFERENCE(S) *********************** * * * * * OCTAL * DECIMAL * * *********************************************************** * * * * * * * * * .LOAD * .LOAD * .LOAD,.CHAR * 14 * 12 * * * * * * * * * *********************************************************** * * * * * * * * * .STOR * .STOR * .CHAR * 16 * 14 * * * * * * * * * *********************************************************** * * * * * * * * * .CHEK * .CHEK * -------- * 20 * 16 * * * * * * * * * *********************************************************** * * * * * * * * * .STUP * .STUP * .TST,..CSE * 53 * 43 * * * * * * * * * *********************************************************** * * * * * * * * * .CASE * .CASE * .CASE,..CSE, * 23 * 19 * * * * * .TST * * * * * * * * * * * *********************************************************** * * TOTAL LENGTH = 104 (DEC), 150 (OCT) SKP ENT SCU,SCW * SCU NOP <<< SCAN UNTIL ENTRY POINT >>> LDA SCU LDB .UNT1 STB FAIL LDB .UNT2 JMP TRANS SCW NOP <<< SCAN WHILE ENTRY POINT >>> LDA SCW LDB .UNT2 STB FAIL LDB .UNT1 TRANS STA SCB SET CALLERS RETURN ADDRESS. STB PASS JMP PICK BASES NOP SOURCE BYTE ARRAY ADDRESS INDXS NOP SOURCE BYTE ARRAY INDEX ITYPE NOP CHARACTER TYPE ICHAR NOP COMPARE CHARACTER SCB NOP <<< COMBINED ENTRY POINT >>> PICK JSB .ENTR GO & PICK-UP CALLERS ADDRESSES. DEF BASES LDA INDXS,I SSA JMP SCB,I RETURN UPON NEG. INDEX(X). LDA ITYPE,I GET TEST CHARACTER. LDB ICHAR JSB .STUP NEXT LDA BASES GET A SOURCE BYTE. LDB INDXS,I GET THE INDEX. JSB .LOAD GET THE BYTE JSB .CASE DOES IT COMPARE? FAIL NOP SOURCE BYTE FAILS THE TEST TYPE. PASS NOP SOURCE BYTE PASSES THE TEST TYPE. AROND ISZ INDXS,I JMP NEXT OUT CLA SEARCH DONE - SET FOR ZERO RETURN. JMP SCB,I RETURN TO CALLER. .UNT1 JMP ARr*($OND .UNT2 JMP OUT * END S*ASMB,R,L *** SMUT SUB. FOR CA COMMAND *** * NAM APL,7 750303 A LWS * ENT APL * EXT .ENTR,.GOTO,.ITOI * * THIS ROUTINE ACCEPTS AN ARITHMETIC CODE IN FUNCT AND PERFORMS THE * DESIRED OPERATION ON TWO VALUES, VALU1 AND VALU2 AND RETURNS * A REMAINDER CODE. THE CODES ARE DEFINED AS FOLLOWS: * * CODE ARITHMETIC FUNTION REMAINDER CODE * ---- ------------------ --------- ---- * * 1 ADDITION (-1) --> REMAINDER IS * 2 SUBTRACTION MEANINGFUL. * 3 MULTIPLICATION * 4 DIVISION (0) --> REMAINDER IS NOT * 5 INCLUSUVE 'OR' MEANINGFUL. * 6 EXCLUSIVE 'OR' * 7 'AND' * 8 AVERAGE * 9 ROTATE N BITS LEFT OR RIGHT * 10 SHIFT N BITS LEFT OR RIGHT * 11 EXPONENTIAL * 12 NO-OPERATION OR DISPLAY ONLY * * CALLING SEQUENCE * ---------------- * * FTN,L * PROGRAM XXX * DIMENSION IQ(2) * EQUIVALENCE(A,IQ) * . * . * IQ(1)=FIRST VALUE * IQ(2)=SECOND VALUE * A=APL(ICODE,IQ(1),IQ(2),IREM) * * * THE RETURNS ALSO RETURNS THE ADDRESS OF SEVERAL SYSTEM TABLES. * FUNCT NOP FUNCTION CODE VALU1 NOP FIRST VALUE VALU2 NOP SECOND VALUE IREM NOP RETURNED REMAINDER CODE * APL NOP << ENTRY POINT>> JSB .ENTR PICK-UP PARAMETER DEF FUNCT ADDRESSES. * CCA STA IREM,I SET REMAINDER TO VALID. CLO INITIALIZE OVERFLOW. LDA FUNCT,I STA FUNCT LDA VALU1,I GET FIRST OPERAND. LDB VALU2,I GET SECOND OPERAND JSB .GOTO BRANCH TO APPROPRIATE PROCESSOR. DEF ADD RETURN ADDRESS DEF FUNCT DEF ADD VALU1+VALU2 DEF SUB VALU1-VALU2 DEF MPY VALU1*VALU2 DEF DIV VALU1/VALU2 DEF IOR IOR(VALU1,VALU2) DEF XOR IEOR(VALU1,VALU2) DEF AND IAND(VALU1,VALU2) DEF AVG (VALU1+VALU2)/2 DEF ROT ROTATE DEF SHF SHIFT DEF EXP EXPONENTIAL DEF OUT DISPLAY ONLY * * SUM THE TWO OPERANDS * ADD ADA 1 CLB SOC INB JMP APL,I * * SUBTRACK THE TWO OPERANDS * SUB CMB,INB COMPLEMENT SECOND OPERAND. ADA 1 SUBTRACK THE TWO. JMP OUT * * MULTIPLY THE TWO OPERANDS * MPY CLB MPY VALU2,I JMP APL,I * * DIVIDE THE TWO OPERANDS * DIV CLB DIV VALU2,I JMP APL,I * * INCLUSIVE 'OR' THE TWO OPERANDS * IOR IOR 1 JMP OUT * * EXCLUSIVE 'OR' THE TWO OPERANDS * XOR XOR 1 JMP OUT * * 'AND' THE TWO OPERANDS * AND AND 1 OUT CLB CLEAR B FOR FUNCTIONS WHERE B IS MEANINGLESS. STB IREM,I SET REMAINDER USELESS. JMP APL,I * * TAKE THE AVERAGE OF THE TWO OPERANDS * AVG ADA 1 CLB DIV =D2 JMP APL,I * * ROTATE LEFT OR RIGHT N BITS * * VALU2 > 0 ROTATE RIGHT * VALU2 < 0 ROTATE LEFT * ROT SSB JMP RALS LDB RAR STB INS1 JMP ROTS RALS LDB RAL STB INS1 ROTS LDB VALU2,I SSB,RSS CMB,INB INS1 NOP INB,SZB JMP *-2 JMP OUT * * SHIFT LEFT OR RIGHT N BITS * * VALU2 > 0 SHIFT RIGHT * VALU2 < 0 SHIFT LEFT * SHF SSB JMP SHFS LDB ARS STB INS2 JMP SHFT SHFS LDB ALS STB INS2 SHFT LDB VALU2,I SSB,RSS CMB,INB INS2 NOP INB,SZB JMP *-2 JMP OUT * ALS ALS ARS ARS RAL RAL RAR RAR * * EXPONENTIAL OF VALU1 TO THE VALU2 POWER * EXP JSB .ITOI DEF VALU1,I DEF VALU2,I NOP DON'T CARE ABOUT ERRORS! JMP OUT * END ASMB,R,L *** GET DEVICE LU INFORMATION ** * NAM .LUGET,7 760801 A LWS * ENT LUGET * EXT .ENTR,EXEC,$RNTB * * THIS SUBROUTINE GETS THE CONTENTS OF AN LUN AND RETURNS * ALL PERTINANT INFORMATION. * * PROGRAM CALLING SEQUENCE * ------------------------ * * FTN4,L * . * . * DIMENSION LOCK(2) * . * . * IDVR = LUGET(LUN,ICHAN,IEQT,ISUB,IAVL,ISTAT,LOCK) * . * . * END * * RESULTS: IDVR = EQUIPMENT TYPE CODE (BITS 8-13 EQT WORD 5) * LUN = UNALTERED * ICHAN = I/O SLOT EQT * IEQT = EQT# * ISUB = LUN SUBCHANNEL * IAVL = DEVICE AVAILABILITY (BITS 14-15 EQT WORD 5) * ISTAT = DEVICE DYNAMIC STATUS (BITS 0-7 EQT WORD 5) * LOCK = ONE OF TWO POSSIBILITIES: * * VARIABLE LU UNLOCKED LU LOCKED * -------- ----------- --------- * * LOCK(1) UNALTERED ORDINAL POSITION IN KEYWORD * TABLE THAT POINTS TO PROGRAM * ID SEGMENT OWNING RN. * LOCK(2) UNALTERED SAME ORDINAL TYPE POINTER TO * PROGRAM WHO HAS IT LOCKED. * * LUN NOP SUPPLIED DEVICE LUN. ICHAN NOP RETURNED: COMPUTER I/O SLOT. IEQT NOP RETURNED: EQT# FOR LUN. ISUB NOP RETURNED: SUNCHANNEL FOR LUN. IAVL NOP RETURNED: AVAILABILITY - BITS 14-15 ISTAT NOP RETURNED: DYNAMIC DRIVER STATUS LOCK NOP RETURNED: LOCKING PROGRAM NAME * LUGET NOP * JSB .ENTR GET CALLERS PARAMETER(S). DEF LUN * JSB EXEC GET STATUS FOR LU. DEF *+5 DEF .13 DEF LUN,I DEF EQT5 DEF EQT4 * AND =B140000 ISOLATE DEVICE AVAILABILITY BITS. RAL,RAL STA IAVL,I LDA EQT5 ISOLATE DYNAMIC DRIVER STATUS BITS. AND =B377 STA ISTAT,I LDA EQT5 NOW, ISOLATE DRIVER TYPE CODE. AND =B37400 ALF,ALF STA EQT5 LDA EQT4 GET WORD 4 OF EQT. AND =B77 ISOLATE CHANNEL. STA ICHAN,I PUT IN USERS BUFFER. LDB LUN,I GET LUN#. ADB =D-1 ADJUST RELATIVE TO 0. ADB DRTAD ADD ADDRESS OF LU TABLE. LDA 1,I GET CONTENTS OF LUN ENTRY. STA EQT4 AND =B77 ISOLATE EQT#. STA IEQT,I LDA EQT4 STA 1 AND =B174000 ISOLATE SUBCHANNEL. ALF POSITION SUBCHANNEL IN LOWER 4 BITS. RAL STA ISUB,I SWP AND =B3700 ISOLATE LU LOCK FLAG. SZA,RSS IF ZERO, NO PROGRAM HAS IT LOCKED. JMP DONE * ARS,ARS POSITION LOCK FLAG ARS,ARS TO LOWER 4 BITS. ARS,ARS ADA RNTAB SET TO RN TABLE ENTRY. LDA 0,I GET RN TABLE ENTRY. STA EQT4 AND =B377 ISOLATE LOCKER. STA LOCK,I LDA EQT4 ALF,ALF GET RN OWNER. AND =B377 ISZ LOCK STA LOCK,I DONE LDA EQT5 RESTORE DRIVER TYPE CODE. JMP LUGET,I RETURN TO CALLER - A=DRIVER NAME BITS 0-5 * * EQT4 NOP EQT5 NOP .13 DEC 13 RNTAB DEF $RNTB * * SYSTEM BASE PAGE EQUIVALENCIES * DRTAD EQU 1652B FWA OF DRT. * * ASSEMBLY SUPPLIED LITERALS * END ASMB,R,L *** INITIALIZE SIMPEL BUFFER *** HED INITIALIZE INTEGER-TYPE BUFFER * NAM RSBUF,7 740515 A LWS * EXT .ENTR * ENT RSBUF * * THIS SUBROUTINE INITIALIZED A BUFFER TO A KNOWN VALUE. * * FORTRAN CALLING SEQUENCE * ------------------------ * * CALL RSBUF(IBUFR,IVAL,NUMBER) * * IBUFR --> BUFFER ADDRESS * IVAL --> INITIALIZE VALUE FOR 'NUMBER' TIMES * NUMBER --> NUMBER OF ELEMENTS IN IBUFR * IBUFR NOP IVAL NOP NUMBR NOP * RSBUF NOP JSB .ENTR PICK-UP THE GOODIES. DEF IBUFR * LDB NUMBR,I SET-UP ARRAY CMB,INB COUNTER. LDA IVAL,I GET VALUE TO INITIALIZE. NEXT STA IBUFR,I PUT AWAY A VALUE INTO CALLERS BUFFER. INB,SZB,RSS DONE? JMP RSBUF,I YES, RETURN TO CALLER. ISZ IBUFR POINT TO NEXT ELEMENT. JMP NEXT DO IT AGAIN. * END ASMB,R,L *** PRINT SYSTEM ABORT MESAGE *** HED PRINT ASCII SYSTEM ABORT MESSAGE * NAM ABORT,7 750415 A LWS * EXT EXEC * ENT ABORT * * THIS SUBROUTINE RECEIVES A SYSTEM I/O ABORT MESSAGE IN THE * A & B REGISTERS IN ASCII FORM AND PRINTS THE MESSAGE ON AN LU. * * FORTRAN CALLING SEQUENCE * ------------------------ * * CALL ERROR(LUN) * * LUN --> LUN TO PRINT I/O ABORT MESAGE * ABORT NOP STA MESG+1 SAVE ASCII MESSAGE IN A. STB MESG+3 SAVE ASCII ERROR CODE. DLD ABORT,I RETRIEVE CALLERS RA & LUN. STA ABORT SAVE RETURN ADDRESS. LDB 1,I GET ACTUAL DEVICE ARGUMENT. STB LUN * JSB EXEC NOW, ISSUE DEF *+5 THE DEF .2 I/O DEF LUN MESSAGE DEF MESG DEF .4 * JMP ABORT,I RETURN TO CALLER. * LUN NOP MESG ASC 4, IO XX .2 DEC 2 .4 DEC 4 * END ASMB,R,L HED EXECUTE INSTRUCTION IN RTE * NAM INSTR,6 740515 A LWS * EXT $LIBR,$LIBX * ENT INSTR * * * FORTRAN CALLING SEQUENCE * ------------------------ * * CALL INSTR(102077B) * * INSTR NOP JSB $LIBR GO PRIVELEGED JUST IN CASE. NOP DLD INSTR,I GET RETURN ADDRESS & ARGUMENT ADDRESS. LDB 1,I GET ACTUAL INSTRUCTION ADDRESS. STB *+1 EXECUTE ON NEXT FETCH. NOP JSB $LIBX RETURN TO THE REAL WORLD! DEF *+1 DEF 0,I * END 6ASMB,R,L HED JUMP SUBROUTINE TO MEMORY IN RTE * NAM CRASH,6 760311 A LWS * EXT $LIBR,$LIBX * ENT CRASH * * FORTRAN CALLING SEQUENCE * ------------------------ * * CALL CRASH(77000B) * * DO A 'JSB' TO LOCATION 77000B * CRASH NOP JSB $LIBR MUST TURN OUT THE LIGHTS! NOP DLD CRASH,I GET RETURN ADDRESS & TARGET. LDB 1,I GET ACTUAL RETURN ADDRESS. STA CRASH SAVE RETURN ADDRESS. STB *+2 SAVE FOR ACTUAL JSB. JSB *+1,I GO WEST, YOUNG MAN. NOP HERE IS WHERE WE PASS THE MONKEY. JSB $LIBX,I RETURN TO THE WORLD. DEF *+1 DEF CRASH,I END ASMB,R,L *** SAVE A & B *** HED SAVE A & B REGISTERS FOR FORTRAN LEVEL * NAM RAB,7 750113 A LWS * ENT RAB * * THIS ROUTINE IS PRIMAIRLY USED FOR SAVING THE A AND B REGISTERS * FOR EXEC OR RELATED CALLS WHICH USE THE NO-ABORT RETURN. * RAB NOP STA TEMP LDA RAB,I STA RAB LDA TEMP JMP RAB,I * TEMP NOP * END ASMB,R,L *** MEMORY RETRIEVE ROUTINE *** * HED RETRIEVE THE CONTENTS OF MEMORY * NAM IGET,7 750303 A LWS * ENT IGET * * FORTRAN CALLING SEQUENCE * ------------------------ * * IVAL = IGET(1765B) * * IVAL --> RETURNED CONTENTS OF MEMORY LOCATION 1765 * IGET NOP DLD IGET,I GET RETURN ADDRESS & ARGUMENT ADDRESS. SWP SWAP A & B. LDA 0,I GET ADDRESS OF ADDRESS. LDA 0,I GET ACTUAL CONTENTS. JMP 1,I RETURN TO CALLER. * END ASMB,R,L *** CROSS LOAD FROM MEMORY *** * HED CROSS LOAD MEMORY FOR SYSTEM MAP NAM IXGET,7 750515 A LWS * ENT IXGET * * THIS FUNCTION SUBROUTINE ALLOWS THE USER TO PERFORM THE * EQUIVALENT OF AN 'IGET' FUNCTION FROM THE S(SYSTEM (I.E. ALTERNATE * PROGRAM) MAP. * * FORTRAN CALLING SEQUENCE * ------------------------ * * IRES = IXGET(IADRES) * * IRES --> CONTENTS OF IADRES * * IADRES --> ADDRESS * * IXGET NOP DLD IXGET,I SWP LDA 0,I XLA 0,I USE ALTERNATE PROGRAM MAP. JMP 1,I * END ASMB,R,L ** MEMORY ALTER ROUTINE ** HED ALTER THE CONTENTS OF MEMORY IN RTE * NAM IPUT,6 740515 A LWS * EXT $LIBR,$LIBX,.ENTR * ENT IPUT * * * FORTRAN CALLING SEQUENCE * ------------------------ * * CALL IPUT(IADRES,IVALUE) * * IADRES --> MEMORY ADDRESS(WATCH-OUT FOR RTE-3 AND ABOVE) * IVALUE --> VALUE TO PUT AT IADRES * ADRES NOP VALUE NOP IPUT NOP * JSB .ENTR DEF ADRES * LDA ADRES,I LDB VALUE,I JSB $LIBR MUST GO PRIVELEGED. NOP STB 0,I STUFF IT AWAY. JSB $LIBX RETURN FROM THE DEAD. DEF *+1 DEF *+1 JMP IPUT,I * END ASMB,R,L *** CROSS STORE INTO MEMORY *** * HED CORSS STORE INTO MEMORY FOR SYSTEM MAP NAM IXPUT,7 750515 A LWS * ENT IXPUT * EXT $LIBR,$LIBX * * THIS SUBROUTINE ALLOWS THE USER TO PERFORM THE * EQUIVALENT OF AN 'IPUT' FUNCTION FROM THE SYSTEM (I.E. ALTERNATE * PROGRAM) MAP. * * FORTRAN CALLING SEQUENCE * ------------------------ * * CALL IXPUT(IADRES,IVAL) * * IADRES --> ADDRESS * * IVAL --> VALUE TO PUT AT IADRES * * IXPUT NOP LDA IXPUT,I STA RETRN ISZ IXPUT DLD IXPUT,I LDA 0,I LDB 1,I JSB $LIBR NOP XSB 0,I STUFF IT AWAY IN ALTERNATE MAP. JSB $LIBX DEF RETRN * RETRN NOP * END ASMB,R,L *** EXCLUSIVE 'OR' ROUTINE *** * HED FORTRAN CALLABLE EXCLUSIVE 'OR' ROUT6KINE NAM IXOR,7 750515 A LWS * ENT IXOR * * ROUTINE DESCRIPTION * ------------------- * * THIS ROUTINE PERFORMS AN EXLCUSIVE OR (XOR) WITH TWO INTEGER * TYPE ARGUMENTS. * * CALLING SEQUENCE * ---------------- * * K = IXOR(J,K) * IXOR NOP STB B SAVE B REG. LDA IXOR,I SAVE RETURN ADDRESS. STA RETRN ISZ IXOR POINT TO ADDRESS OF 1ST ARGUMENT. LDA IXOR,I GET FIRST ARGUMENT ADDRESS. LDA 0,I GET ACTUAL VALUE. ISZ IXOR POINT TO ADDRESS OF 2ND ARGUMENT. LDB IXOR,I GET SECOND ARGUMENT ADDRESS. LDB 1,I GET ACTUAL VALUE. XOR 1 EXCLUSIVE THE TWO. LDB B RESTORE B REG. JMP RETRN,I RETURN TO CALLER. * B NOP RETRN NOP * END ASMB,R,L *** MOVE BYTE(S) UNCONDITIONAL *** HED MOVE BYTE(S) UNCONDITIONAL * NAM MVB,7 740415 A LWS * EXT .ENTR,.CHEK,.LOAD,.STOR * * THIS ROUTINE MOVES A SPECIFIED NUMBER OF BYTE(S) * FROM A SOURCE ARRAY TO A DESTINATION ARRAY. * * FORTRAN CALLING SEQUENCE * ------------------------ * * IF(MVB(BYTES,INDXS,BYTED,INDXD,NUMBER))10,20 * * RETURNS: 10 --> ERROR, ONE OR BOTH INDICES NEGATIVE * 20 --> CONTINUE, INDICES ACCEPTABLE * * SEE NOTES ON 'SCB' ROUTINE. IF UPON ENTRY EITHER OR BOTH INDICES * ARE NEGATIVE, THE A REGISTER WILL BE SET NEGATIVE UPON RETURN AND * NO BYTE(S) WILL HAVE BEEN MOVED. IF PARAMETER 'NUMBER' IS SPECIFIED * NEGATIVE, IT IS TREATED AS POSITIVE AND EXECUTION CONTINUES. * PARAMETERS 'INDXS' AND 'INDXD ARE MODIFIED DURING EXECUTION TIME TO * REFLECT THE ACTUAL NUMBER OF BYTE(S) MOVED. * * ENT MVB * BASES NOP SOURCE BYTE ARRAY ADDRES INDXS NOP SOURCE BYTE ARRAY INDEX BASED NOP DESTINATION BYTE ARRAY ADDRESS INDXD NOP DESTINATION BYTE ARRAY INDEX NUMBR NOP NUMBER OF BYTE(S) TO MOVE MVB NOP <<< MOVE BYTES UNCNDTiL. ENTRY POINT >>> JSB .ENTR GO & PICK-UP CALLERS ADDRESES. DEF BASES LDA INDXS VALIDATE THE INDICES. LDB MVB JSB .CHEK LDA NUMBR,I SZA,RSS JMP MVB,I SSA,RSS IF POS COUNT, CNANGE TO NEG. CMA,INA STA COUNT NEXT LDA BASES GET A SOURCE BYTE ADDRESS LDB INDXS,I JSB .LOAD LDA BASED GET A DEST. BYTE ADDRESS LDB INDXD,I JSB .STOR GO STORE THE BYTE ISZ COUNT DONE MOVING? JMP MORE JMP DONE MORE ISZ INDXS,I MOVE SOURCE & DEST INDEX POINTERS. ISZ INDXD,I JMP NEXT DONE CLA JMP MVB,I RETURN TO CALLER. COUNT NOP HOLDS BYTE COUNT * END ASMB,R,L *** BYTE UTILITY ROUTINE *** HED UTILITY: LOAD A BYTE * NAM .LOAD,7 740415 A LWS * ENT .LOAD,.CHAR * * ENTER: A = BYTE ARRAY ADDRESS * B = BYTE ARRAY INDEX * * RETURN: A = REQUESTED BYTE IN LOWER BITS * .LOAD NOP CLE,ELA FIND DISPALCED ADB A WORD ADDRESS. CLE,ERB SET HIGH/LOW LOAD FLAG IN E. LDA B,I GET WORD WITH BYTE. SEZ,RSS LOAD HIGH OR LOW? ALF,ALF LOAD FROM HIGH BYTE AND =B377 ISOLATE THE BYTE STA .CHAR JMP .LOAD,I RETURN TO CALLER. * .CHAR NOP A EQU 0 B EQU 1 * *...LITERALS... * END ASMB,R,L *** BYTE UTILITY ROUTINE *** HED BYTE UTILITY: STORE A BYTE * NAM .STOR,7 740415 A LWS * EXT .CHAR * ENT .STOR * * ENTER: A = BYTE ARRAY ADDRESS * B = BYTE ARRAY INDEX * .STOR NOP CLE,ELA FIND DISPLACED ADB A WORD ADDRESS. CLE,ERB SET HIGH/LOW LOAD FLAG IN E. LDA B,I GET WORD WITH BYTE. SEZ,RSS LOAD HIGH OR LOW? ALF,ALF STORE TO LOWER BYTE. AND =B177400 ISOLATE. IOR .CHAR MERGE IN OTHER BYTE. / SEZ,RSS DO WE RESTORE THE WORD? ALF,ALF STA B,I PUT AWAY IN CALLERS BUFFER. JMP .STOR,I RETURN TO CALLER. * A EQU 0 B EQU 1 * *...LITERALS... * END ASMB,R,L *** BYTE UTILITY ROUTINE *** * HED BYTE UTILITY ROUTINE: CHECK INDICES NAM .CHEK,7 740415 A LWS * ENT .CHEK * * ENTER: A = SOURCE BYTE INDEX ADDRESS * B = CALLERS RETURN ADDRESS * * RETURN: A = TEST CHARACTER TYPE * B = ADDRESS OF CHARACTER TYPE * .CHEK NOP STB RETRN STA B LDA B,I GET SOURCE INDEX. SSA IS IT OK? JMP RETRN,I ADB =D2 LDA B,I GET DEST. INDEX. SSA JMP RETRN,I INB LDA B,I GET CHARACTER TYPE INB JMP .CHEK,I RETURN TO CALLER. * RETRN NOP B EQU 1 * *...LITERALS... * END ASMB,R,L *** BYTE UTILITY ROUTINE *** HED BYTE UTILITY: SET-UP COMPARE TEST INSTR. * NAM .STUP,7 740415 A LWS * EXT .TST,..CSE * ENT .STUP * * ENTER: A = TEST CHARACTER TYPE * B = ADDRESS OF TEST CHARACTER * SUP .STUP NOP STA TEMP LDA ..CSE GET '.CASE' ADDRESS. ADA =D1 STA CASE LDA TEMP SSA IS CHAR. TYPE NUMERIC? JMP NUM YES. SZA,RSS JMP NUM YES. CPA =D1 IS CHAR. TYPE ALPHA? JMP ALPH YES. JMP OTHER MUST BE SPECIAL CHARACTER TYPE. ALPH LDA ALPHA GET ALPHA CHAR. TEST RANGE. LDB ALPHA+1 STOR DST .TST SET-UP ASCII COMPARE RANGE. LDA CASE JMP FINAL GO PATCH COMPARE INSTRUCTION. NUM LDA NUMRC SET-UP ASCII NUMERIC COMPARE RANGE. LDB NUMRC+1 JMP STOR OTHER LDA B,I GET SPECIAL TEST CHARACTER. AND =B377 ISOLATE. STA .TST STORE IN .CASE ROUTINE. LDA CASE ADA =D-2 SET-UP COMPARE B@ TWO-LETTER ASCII COMMAND NAME (DEFAULT=ALL) C C P2 --> LIST DEVICE LU (DEFAULT=1) C C C C DIMENSION LUN(5),ICMND(43) EQUIVALENCE(LUN1,LUN(1)),(LUN2,LUN(2)) DATA ICMND/2HAM,2HAW,2HBC,2HBD,2HBM,2HBW,2HCA,2HCD,2HCM,2HCN,2HCP, -2HCW,2HDM,2HDS,2HDW,2HEX,2HFW,2HFV,2HHP,2HIB,2HID,2HIM,2HIN,2HIO, -2HIW,2HJM,2HLC,2HLI,2HLL,2HLO,2HMS,2HRD,2HRM,2HRW,2HSC,2HSR,2HSM, -2HSW,2HTR,2HWD,2HXD,2HXS,2H??/ C CALL RMPAR(LUN1) LULST=LUN2 IF(LULST.EQ.0) LULST=1 C C... DETERMINE WHICH TYPE OF HELP - ALL OR ONE COMMAND ... C IF(LUN1.NE.0) GO TO 20000 C C... LIST LONG TABLE OF ALL COMMANDS ... C WRITE(LULST,10000) WRITE(LULST,10100) WRITE(LULST,10200) WRITE(LULST,10300) GO TO 999 C C... LIST SHORT TABLE OF ONE COMMAND ... C 20000 DO 30000 NC=1,43 IF(LUN1.EQ.ICMND(NC)) GO TO(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, -16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, -38,39,41,42,43,44,7777),NC 30000 CONTINUE C C... COMMAND UNDEFINED ... C WRITE(LULST,9000)LUN1 9000 FORMAT(X,A2" - COMMAND UNDEFINED") GO TO 999 C C... LIST THE COMMAND ... C 1 WRITE(LULST,100) GO TO 999 2 WRITE(LULST,200) GO TO 999 3 WRITE(LULST,300) GO TO 999 4 WRITE(LULST,400) GO TO 999 5 WRITE(LULST,500) GO TO 999 6 WRITE(LULST,600) GO TO 999 7 WRITE(LULST,700) GO TO 999 8 WRITE(LULST,800) GO TO 999 9 WRITE(LULST,900) GO TO 999 10 WRITE(LULST,1000) GO TO 999 11 WRITE(LULST,1100) GO TO 999 12 WRITE(LULST,1200) GO TO 999 13 WRITE(LULST,1300) GO TO 999 14 WRITE(LULST,1400) GO TO 999 15 WRITE(LULST,1500) GO TO 999 16 WRITE(LULST,1600) GO TO 999 17 WRITE(LULST,1700) GO TO 999 18 WRITE(LULST,1800) GO TO 999 19 WRITE(LULST,1900) GO TO 999 20 WRITE(LULST,2000) GO TO 999 21 WRITE(LULST,2100) GO TO 999 22 WRITE(LULST,2200) GO TO 999 23 WRITE(LULST,2300) GO TO 999 24 WRITE(LULST,2400) GO TO 999 25 WRITE(LULST,2500) GO TO 999 26 WRITE(LULST,2600) GO TO 999 27 WRITE(LULST,2700) GO TO 999 28 WRITE(LULST,2800) GO TO 999 29 WRITE(LULST,2900) GO TO 999 30 WRITE(LULST,3000) GO TO 999 31 WRITE(LULST,3100) GO TO 999 32 WRITE(LULST,3200) GO TO 999 33 WRITE(LULST,3300) GO TO 999 34 WRITE(LULST,3400) GO TO 999 35 WRITE(LULST,3500) GO TO 999 36 WRITE(LULST,3600) GO TO 999 37 WRITE(LULST,3700) GO TO 999 38 WRITE(LULST,3800) GO TO 999 39 WRITE(LULST,3900) GO TO 999 41 WRITE(LULST,4100) GO TO 999 42 WRITE(LULST,4200) GO TO 999 43 WRITE(LULST,4300) GO TO 999 44 WRITE(LULST,7777) C C... SHORT COMMAND TABLE FORMAT STATEMENTS ... C 100 FORMAT(" AM[,START-ADDR [,END-ADDR [,ADDR-INDEX ]]]") 200 FORMAT(" AW,START-WORD# [,END-WORD# [,WORD#-INDEX ]]") 300 FORMAT(" BC,[<...STRING...>]") 400 FORMAT(" BD,[<...STRING...>]") 500 FORMAT(" BM[,ADDR ]") 600 FORMAT(" BW[,WORD# ]") 700 FORMAT(" CA[,1ST-VALUE [,OPERATION [,2ND-VALUE ]]]"// -" OPERATIONS ARE:"//4X"^ - DISPLAY ONLY(NO-OPERATION)"/ -4X"P - ADD"/4X"M - SUBTRACT(MINUS)"/4X"T - MULTIPLY(TIMES)"/ -4X"D - DIVIDE"/4X"I - INCLUSIVE OR"/4X"X - EXCLUSIVE OR"/ -4X"A - AND"/4X"AV - AVERAGE"/4X"RO - ROTATE"/4X"SH - LOGICAL" -" SHIFT"/4X"PO - EXPONENTIAL(POWER)") 800 FORMAT(" CD[,FROM-LU [,FROM-START-TRK# [,FROM-END-TRK# [," -" TO-LU [,TO-START-TRK# ]]]]]") 900 FORMAT(" CM[,FROM-ADDR [,TO-ADDR [,#WORDS [,FROM-ADDR-INDEX [" -", TO-ADDR-INDEX ]]]]]") 1000 FORMAT(" CN[,LU [,CNTRL-REQ [,OPT-PARAM ]]]") 1100 FORMAT(" CP[,PROMPT ]") 1200 FORMAT(" CW,START-WORD# [,END-WORD# [,#WORDS [,START-WORD#" -"-INDEX [,END-WORD#-INDEX]]]]") 1300 FORMAT(" DM[,START-ADDR [,END-ADDR [,ADDR-INDEX ]]]") 1400 FORMAT(" DS[,DISPLAY-MODE]") 1500 FORMAT(" DW[,START-WORD# [,END-WORD# [,START-WORD#-INDEX ]]]") 1600 FORMAT(" EX[,TERMINATION-TYPE [,VALUE [,VALUE [,VALUE [," -" VALUE [,VALUE ]]]]]]") 1700 FORMAT(" FW[,VALUE [, START-WORD# [,END-WORD# [,ALL [, START-" -"WORD#-INDEX [, MASK ]]]]]]") 1800 FORMAT(" FV[,VALUE [,START-ADDR [,END-ADDR [,ALL [, START-ADDR-IN" -"DEX [, MASK ]]]]]]") 1900 FORMAT(" HP[,BUS-LU [,CNTRL-REQ [,OPT-PARAM ]]]") 2000 FORMAT(" IB[,BUS-LU ]") 2100 FORMAT(" ID[,DISC-LU [,FROM-START-TRK# [,TO-END-TRK# [," -" VALUE [,FROM-TRK#-INDEX ]]]]]") 2200 FORMAT(" IM[,START-ADDR [,END-ADDR [,VALUE [,ADDR-INDEX ]]]]") 2300 FORMAT(" IN[,INSTRUCTION ]") 2400 FORMAT(" IO[,<...STRING...>]") 2500 FORMAT(" IW,START-WORD# [,END-WORD# [,VALUE [,START-WORD" -"-INDEX ]]]") 2600 FORMAT(" JM,ADDR") 2700 FORMAT(" LC,LU") 2800 FORMAT(" LI,TABLE [,START# [,END# ]]"//3X"WHERE TABLE = TA, EQ" -", LU, TO, IN, HP, EN, OR ST") 2900 FORMAT(" LL[,LU ]") 3000 FORMAT(" LO[,LU ]") 3100 FORMAT(" MS,MEM-ADDR [,VALUE [,DISC-LU [,FMGR ]]]") 3200 FORMAT(" RD[,TRK# [,SECT# [,DISC-LU [,#WORDS ]]]]") 3300 FORMAT(" RM[,FIND-VALUE [,NEW-VALUE [,START-ADDR [,END-ADDR" -" [, START-ADDR-INDEX ]]]]]") 3400 FORMAT(" RW,FIND-VALUE, NEW-VALUE, START-WORD# [,END-WORD" -" [, START-WORD#-INDEX ]]") 3500 FORMAT(" SC,PROGRAM-NAME [,VALUE [,VALUE [,VALUE [,VALUE" -" [,VALUE ]]]]]") 3600 FORMAT(" SR[,BUS-LU [,DEVICE-ADRES [,PROGRAM-NAME ]]]") 3700 FORMAT(" SM[,ADDR [,VALUE ]]") 3800 FORMAT(" SW,WORD# [,VALUE ]") 3900 FORMAT(" TR,FILE-NAME [,SECURITY [, CARTRIDGE ]]") -"INDEX ]]]]") 4100 FORMAT(" WD[,TRK# [,SECT# [,DISC-LU [,#WORDS ]]]]") 4200 FORMAT(" XD[,START-ADDR [,END-ADDR [,ADDR-INDEX ]]]") 4300 FORMAT(" XS[,ADDR [,VALUE ]]") 7777 FORMAT(" ??,XX"//" WHERE XX IS A COMMAND NAME.") C C... SHORT COMMAND EXPLANATIONS ... C 10000 FORMAT(" SMUT COMMANDS ARE:"//" ?? - LIST ALL SMUT COMMANDS"/ -" AM - ADD BLOCK OF MEMORY"/ -" AW - ADD BLOCK OF WORDS"/ -" BC - SEND BUS COMMAND STRING"/ -" BD - SEND BUS DATA STRING"/ -" BM - SET MEMORY BASE ADDRESS"/ -" BW - SET WORK AREA WORD BASE"/ -" CA - CALCULATE & DISPLAY"/ -" CD - COPY DISC TRACKS"/ -" CM - COPY MEMORY"/ -" CN - ISSUE DEVICE CONTROL REQUEST"/ -" CP - CHANGE COMMAND PROMPT"/ -" CW - COPY BLOCK OF WORDS IN WORK AREA"/ -" DM - DISPLAY MEMORY") 10100 FORMAT(" DS - SET ASCII DISPLAY MODE"/ -" DW - DISPLAY WORDS IN WORK AREA"/ -" EX - EXIT SMUT & SAVE RESOURCES"/ -" FW - FIND VALUE IN WORK AREA"/ -" FV - FIND VALUE IN MEMORY"/ -" HP - ISSUE BUS CONTROL REQUEST"/ -" IB - SET BUS LU"/ -" ID - INITIALIZE DISC TRACKS"/ -" IM - INITIALIZE MEMORY"/ -" IN - EXECUTE ABSOLUTE INSTRUCTION"/ -" IO - SEND OUTPUT DATA STRING TO DEVICE"/ -" IW - INITIALIZE WORDS IN WORK AREA"/ * -" JM - PERFORM 'JSB' TO MEMORY"/ -" LC - CHANGE COMMAND INPUT LU"/ -" LI - LIST SYSTEM TABLE") 10200 FORMAT(" LL - CHANGE COMMAND LIST LU"/ -" LO - CHANGE COMMAND LOG LU"/ -" MS - MODIFY SYSTEM ON DISC RELATIVE TO MEMORY"/ -" RD - READ DISC INTO WORK AREA"/ -" RM - REPLACE MEMORY"/ -" RW - REPLACE VALUE OF WORDS IN WORK AREA"/ -" SC - SCHEDULE PROGRAM IMMEDIATE W/O WAIT"/ -" SR - ISSUE BUS SERVICE REQUEST PROGRAM"/ -" SM - SET VALUE INTO MEMORY"/ -" SW - SET VALUE IN WORD INTO WORK AREA"/ -" TR - TRANSFER TO SMUT FMP COMMAND FILE"/ -" WD - WRITE WORK AREA TO DISC"/ -" XD - DISPLAY MEMORY (SYSTEM MAP)"/ -" XS - SET VALUE INTO MEMORY (SYSTEM MAP)") 10300 FORMAT(//" FOR ADDITIONAL INFORMATION ON A SPECIFIC COMMAND," -" TYPE:"//5X" ??,XX"//3X"WHERE XX IS A COMMAND CODE"//) C 999 END END$ L 6 22682-18031 1718 SC 0122 USER SPOOL POOL FILE ACCESS             H0101 MASMB,R,B,L,C HED **SPLUM - USER INTERFACE TO SPOOL POOL FILES ** JDR NAM SPLUM,2,30 HAC-TEL 9/17/75 ENT SPLUM EXT EXEC,OPEN,READF,WRITF,CLOSE,RNRQ,IFMGR EXT PRTN SUP SPC 1 * SPLUM ENABLES A USER PROGRAM TO SPOOL A LOGICAL UNIT VIA A SPOOL * POOL FILE. I.E. SPLUM OVERCOMES THE HP BUG FEATURE OF PASSING A * NULL FILE NAME IN A SPOOL OPEN REQUEST. SPC 1 * TO SCHEDULE SPLUM * CALL EXEC (23,SPLUM,TTY,LU) * WHERE SPLUM = 3 WORD INTEGER ARRAY CONTAINING 2HSP,2HLU,2HM . * TTY = LOGICAL UNIT FOR ERROR MESSAGES. * LU = LOGICAL UNIT TO BE SPLUMED. * ON TERMINATION SPLUM WILL PASS BACK ONE PARAMETER WHICH CONTAINS * THE LU# IF SUCCESSFUL OR 0 IF UNSUCCESSFUL. A CALL TO RMPAR * (OR LDA B,I) WILL RETRIEVE THIS VALUE. * * OR * * CALL SPOLU (TTY,LU,LUN) MAY BE USED INSTEAD OF THE ABOVE. * WHERE: * TTY = LOGICAL UNIT FOR ERROR MESSAGES. * LU = LOGICAL UNIT TO BE SPOOLED. * LUN = LU # OF SPOOL FILE IF SUCCESSFUL OR 0 IF UNSUCCESS- * FUL (ON RETURN). SPC 1 * J.D. REED HAC-TEL 9/17/75 SPC 1 SPLUM NOP LDA B,I FETCH THE ERROR MESSAGE LUN SZA,RSS (DEFAULT TO SYSTEM CLA,INA CONSOLE IF NON SUPPLIED) STA TTY AND INB THE LU LDA B,I TO BE STA LU SPOOLED. CLA JUST IN CASE SOMEONE IS SO LUCKY STA CLASS TO HAVE ENOUGH CORE TO STA SPARE MAKE THIS CORE RESIDENT. JSB EXEC FETCH DEF *+1+3 THE DEF D13 DRIVER DEF LU ID DEF DVRID AND LDA DVRID STORE IT ALF,ALF IN THE AND B77 SPOOL CONTROL STA DVRID BUFFER. SPC 1 * OPEN JOBFIL FILE SPC 1 O1 JSB OPEN OPEN DEF *+1+5 DEF DCB FILE DEF ERROR DEF JOBFL JOBFIL. DEF D3 DEF SCODE LDZ'A ERROR CPA N8 DID WE SUCCEED? JMP O1 NO - KEEP TRYING. SSA ANY ERRORS? JMP FMGE1 YES - OPEN ERROR - RING BELLS! SPC 1 * FETCH RECORD 17 AND LOCK RN SPC 1 RR1 LDA D17 FETCH JSB GETRD RECORD # 17. LDA RNLOK SAVE THE STA RN RN LOCK FLAG. LDB D1 LOCK THE RN. SPOOL WILL BE JSB .RNRQ SUSPENDED IF JOBFIL IS IN USE. SPC 1 * LOCATE AN AVAILABLE SPOOL POOL FILE SPC 1 LDA #SPFL INITIALIZE TOTAL CMA,INA FILES'S AVAILABLE STA MAXFL COUNTER, CLA,INA FILE # STA FILE# COUNTER LDA INUSE AND INUSE STA PNTR FLAG POINTER. CLB,INB SET B REG B0 F1 LDA PNTR,I AND FETCH A INUSE WORD FLAG. F2 SLA,RSS THIS FILE IN USE? JMP U1 NO - FOUND IT. ISZ FILE# YES - INDEX FILE NUMBER. RBL UPDATE FILE BIT IN B REG. ISZ MAXFL ANYMORE FILES TO CHECK? RSS YES - UPDATE REGISTERS JMP F3 NO - WAIT FOR ONE TO CLEAR. RAR PUT NEXT FILE BIT IN A0. SLB,RSS HAVE WE USED THIS WORD UP? JMP F2 NO - CHECK NEXT FILE. ISZ PNTR YES - INDEX INUSE FLAG POINTER JMP F1 AND START CHECKING NEXT WORD. F3 LDA RN RELEASE LDB D4 JOBFIL FILE JSB .RNRQ LOCK RN. LDA WAIT LOCK WAIT RN GLOBALLY. WHEN A LDB D2 CONDITION IN SMP FREES A LU OR JSB .RNRQ A FILE OR A FULL OUTSPOOL QUEUE, LDA WAIT SMP CLEARS THIS RN SO LDB D6 THAT OTHER PROGRAMS JSB .RNRQ MAY CONTINUE. JMP R1 SEE IF A FILE IS NOW AVAILABLE. SPC 1 * UPDATE THE FILE IN USE FLAG IN JOBFIL. SPC 1 U1 LDA PNTR,I SET THE INUSE IOR B BIT FILE IN STA PNTR,I JOBFIL RECORD 17. JSB WRITF WRITE DEF *+1+5 DEF DCB w DEF ERROR RECORD # 17 DEF RBUFR DEF D16 DEF D17 BACK INTO JOBFIL. LDA ERROR SSA ANY WRITE ERRORS? JMP FMGE3 YES - TAKE GAS. LDA RN RELEASE THE LDB D4 JOBFIL FILE JSB .RNRQ RN LOCK. SPC 1 * CONVERT THE FILE NUMBER TO ASCII AND STORE ASCII CODE IN SPOOL * BUFFER. SPC 1 CLA FETCH LDB FILE# THE FILE #. C1 ADB N10 CONVERT SSB 10'S JMP C2 DIGIT INA TO JMP C1 ASCII C2 ADA B60 STORE IN ALF,ALF HIGH A REG. ADB D58 CONVERT UNITS DIGIT TO ASCII, IOR B MERGE WITH TEN'S DIGIT. STA FCH56 STORE ASCII FILE # IN FILE NAME. SPC 1 * LOCATE THE SPOOL POOL CARTRIDGE ID. SPC 1 LDA D18 FETCH RECORD # 18 JSB GETRD OF JOBFIL. L1 LDA BUFAD,I FETCH 1ST WORD. ALF,ALF IS ADA BUFAD,I THE AND B377 SPOOL CMA,INA FILE ADA FILE# WITHIN ISZ BUFAD THIS SSA RANGE? JMP L2 YES - FETCH THE CARTRIDGE ID. ISZ BUFAD NO - TRY JMP L1 NEXT PAIR. L2 LDA BUFAD,I TRANSFER CARTRIDGE # STA CART# TO SPOOL SETUP BUFFER. SPC 1 * STORE SPOOL SETUP BUFFER IN A MAIL BOX FOR SMP. SPC 1 JSB EXEC CLASS DEF *+1+7 DEF D20 WRITE/READ DEF D0 DEF SBUFR REQUEST DEF D16 DEF D0 TO DEF D0 DEF CLASS UNIT 0. SPC 1 * REQUEST SMP TO SET UP SPOOL FILE SPC 1 JSB EXEC EXEC QUEUE DEF *+1+5 DEF D23 SCHEDULE DEF SMP DEF D0 WITH DEF CLASS DEF D0 WAIT. SPC 1 * RETRIEVE SPOOL LUN. IF ALL IS WELL RETURN ELSE NOTIFY USER THAT * SPOOL DID NOT SETUP. SPC 1 LDA B,I RETRIEVE AND SAVE STA 8SPARE SPOOL LOGICAL UNIT. SZA DID WE GET A SPOOL? JMP DONE YEA MAN WE MADE IT. EXIT JSB EXEC NO - HP BUG FEATURE GOT US. DEF *+1+4 OUTPUT DEF D2 ERROR DEF TTY MESSAGE DEF ERRBF TO THE DEF D13 POOR GUY. LDA RN DO WE STILL HAVE SZA,RSS JOBFIL LOCKED? JMP DONE NO - RETURN SPOOL LUN. LDB D4 YES - RELEASE JSB .RNRQ IT. DONE JSB CLOSE CLOSE DEF *+1+2 THE DEF DCB FILE DEF ERROR AND JSB PRTN RETURN DEF *+2 SPOOL DEF SPARE LUN JSB EXEC AND DEF *+2 TERMINATE DEF D6 SPOOL. HED ** SPOOL INTERNAL SUBROUTINES. * RESOURCE NUMBER LOCK AND CLEAR SUBROUTINE SPC 1 .RNRQ NOP STA RNUMB SAVE RN STB RCODE AND RESOURCE CODE. SZA,RSS IF RN IS ZERO JMP .RNRQ,I THEN FORGET IT. JSB RNRQ MAKE DEF *+1+3 RESOURCE DEF RCODE NUMBER DEF RNUMB CALL. DEF ERROR CLB WAS CALL LDA RCODE A CPA D4 CLEAR? STB RN YES - ZERO RN JMP .RNRQ,I RETURN. SPC 1 RNUMB NOP RCODE NOP SPC 1 * FILE FMGR ERROR EXIT SPC 1 FMGE1 LDA D8 OPEN ERROR RSS FMGE2 LDA D11 READ ERROR RSS FMGE3 LDA D13 WRITE ERROR STA NUM JSB IFMGR OUTPUT DEF *+1+4 DEF ERROR APPROPRIMATE DEF NUM DEF TTY ERROR MESSAGE. DEF JOBFL JMP EXIT TERMINATE PROGRAM SPC 1 * ROUTINE TO READ A 16 WORD RECORD FROM JOBFIL INTO RBUFR. SPC 1 GETRD NOP STA NUM SAVE RECORD NUMBER. JSB READF INPUT DEF *+1+6 DEF DCB DEF ERROR THE DEF RBUFR DEF D16 DEF LEN RECORD. DEF NUM LDA ERROR WAS THERE SSA A; READ ERROR? JMP FMGE2 YEP - TOO BAD! JMP GETRD,I NO - RETURN. HED ** SPOOL CONSTANTS AND STOREAGE ALLOCATION ** JDR B EQU 1 B REGISTER B60 OCT 60 B77 OCT 77 B377 OCT 377 BUFAD DEF RBUFR SPC 1 CLASS NOP SPC 1 D0 DEC 0 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D6 DEC 6 D8 DEC 8 D11 DEC 11 D13 DEC 13 D16 DEC 16 D17 DEC 17 D18 DEC 18 D20 DEC 20 D23 DEC 23 D58 DEC 58 DCB BSS 144 SPC 1 ERRBF ASC 13,SPOOL FILE DID NOT SET UP! ERROR NOP SPC 1 FILE# NOP SPC 1 INUSE DEF USE#1 SPC 1 JOBFL ASC 3,JOBFIL SPC 1 LEN NOP SPC 1 MAXFL NOP SPC 1 N8 DEC -8 N10 DEC -10 NUM NOP SPC 1 PNTR NOP SPC 1 RN NOP SPC 1 SMP ASC 3,SMP SPC 1 TTY DEC 1 SPC 1 * THE FOLLOWING TWO BUFFERS ARE ORDERED SO DON'T SCREW THEM UP. SPC 1 * BUFFER # 1 - SPOOL SET-UP BUFFER SPC 1 SBUFR DEC 0,0 FCH12 ASC 1,SP SPOOL FCH34 ASC 1,OL FILE FCH56 NOP NAME. SCODE OCT 123456 SECURITY CODE OF SPOOL FILES. CART# NOP SPOOL POOL FILE CARTRIDGE NUMBER. DVRID NOP OUTSPOOL LU DRIVER ID. DFLAG OCT 413 DISPOSITION FLAGS. PR DEC 90 SPOOL PRIORITY. SPARE DEC 0,0,0,0,0 JOB # AND SPARE WORDS. LU NOP OUTSPOOL LU #. SPC 1 * BUFFER # 2 - JOBFIL RECORD # 17 SPC 1 RNLOK NOP RN LOCK FLAG JBFLR NOP # RECORDS IN JOBFIL #SPFL NOP # OF SPOOL FILES SIZE NOP SIZE OF SPOOL FILES IN BLOCKS USE#1 NOP IN USE#2 NOP USE USE#3 NOP FLAGS USE#4 NOP FOR SPOOL USE#5 NOP FILES BSS 4 WORDS 9-12 NOT USED WAIT NOP WAIT RN SHDWN NOP SHUT DOWN FLAG RBUFR EQU RNLOK EQUATE RECORD BUFFER SPC 1 END SPLUM ASMB,R,L HED ** SPOLU - SUBROUTINE TO SCHEDULE SPLUM ** JDR NAM SPOLU,7 SPOOL LU 9/24/75 ENT SPOLU EXT .ENTR,EXEC SUP SPC 1 * SPOLU SCHEDULES PROGRAM SPLUM WHICH SETS UP A SPOOL REQUEST FOR * A SPOOL POOL FILE. SPC 1 * CALLING SEQUENCE: * CALL SPOLU (ITTY,LU,LUN) * WHERE: * ITTY = OPERATOR ERROR MESSAGE LUN. * LU = LOGICAL UNIT TO BE SPOOLED. * LUN = LU # OF SPOOL FILE IF SUCCESSFUL OR 0 IF UNSUCCESS- * FUL (RETURN PARAMETER). SPC 1 * J.D.REED HAC-TEL 9/24/75 SPC 1 TTY NOP ERROR MESSAGE TTY ADDRESS LU NOP LU TO BE SPOOLED ADDRESS LUN NOP SPOOLING LU ADDRESS SPC 1 SPOLU NOP JSB .ENTR FETCH THE DEF TTY PARAMETER ADDRESSES. JSB EXEC SCHEDULE PROGRAM DEF *+5 SPLUM WITH DEF D23 QUEUE WAIT DEF SPLUM AND PASS DEF TTY,I PARAMETERS DEF LU,I TTY & LU. LDA B,I TRANSFER SPOOL STA LUN,I LU TO USER. JMP SPOLU,I RETURN. SPC 1 B EQU 1 D23 DEC 23 SPLUM ASC 3,SPLUM SPC 1 END ASMB,R,L HED ** SPLOT - SPOOL OUT SUBROUTINE ** JDR NAM SPLOT,7 SPOOL OUT SUB 9/25/75 ENT SPLOT EXT .ENTR,EXEC SUP SPC 1 * SPLOT MAKES A CALL TO EXEC TO SCHEDULE SMP FOR A CLOSE SPOOL * AND PASS OPERATION. SPC 1 * CALLING SEQUENCE: * CALL SPLOT (LUN) * WHERE LUN IS THE SPOOL LU ASSIGNED BY THE SET UP REQUEST, PARA- * METER RETURNED FROM SPOLU. SPC 1 * J.D.REED HAC-TEL 9/25/75 SPC 1 LUN NOP ADDRESS OF SPOOL LU. SPC 1 SPLOT NOP JSB .ENTR FETCH THE ADDRESS DEF LUN OF THE SPOOL LU. JSB EXEC SCHEDULE DEF RTN SMP FOR DEF D23 A CLOSE DEF SMP AND PASS DEF D4 PROCEDURE FOR DEF LUN,I THE SPOOL LU. RTN JMP SPLOT,I RETURN SPC 1 D4 DEC 4 D23 DEC 23 SMP ASC 3,SMP SPC 1 END ASMB,R,B,L HED ** FILE MANAGER ERROR PROCESSOR ** JDR NAM IFMGR,7 ENT IFMGR EXT EXEC,.ENTR SPC 1 * THIS FUNCTION CHECKS FOR FILE MANAGER ERRORS. IF THE ERROR * CODE IS < 0, THE ERROR MESSAGE IS PRINTED ON THE LOCAL TTY. * * IF ID IS >= 0, THE ERROR CODE IS RETURNED AS THE FUNCTION * VALUE. * * IF ID IS < 0 AND THE ERROR CODE IS < 0, THEN THE PROGRAM IS * ABORTED. SPC 1 * FORTRAN USEAGE EXAMPLE: * IF (IFMGR (IERR,ID,LTTY,NAME)100,200 SPC 1 * ASSEMBLY CALL SEQUENCE * JSB IFMGR * DEF *+4 * DEF IERR * DEF ID * DEF LTTY * DEF NAME * ON RETURN A = IERR SPC 1 * WHERE: * IERR = ERROR PARAMETER RETURNED FROM FILE MANAGER CALL. * ID = CALL IDENTITY CODE (NEGATIVE TO ABORT IF ERROR EXSISTS) * AS FOLLOWS. * 1 = APOSN * 2 = CLOSE * 3 = CREAT * 4 = FCONT * 5 = FSTAT * 6 = LOCF * 7 = NAMF * 8 = OPEN * 9 = POSNT * 10 = PURGE * 11 = READF * 12 = RWNDF * 13 = WRITF * LTTY = LOGICAL UNIT NUMBER OF DEVICE TO LIST ERROR SPC 2 * PARAMETER ADDRESSES SPC 1 IERR NOP ERROR CODE ID NOP FILE MANAGER CALL ID LTTY NOP LOGICAL UNIT TO OUTPUT ERROR MESS NAME NOP NAME OF FILE FILE MANAGER FILE ADDS. SPC 1 * ENTRY POINT SPC 1 IFMGR NOP JSB .ENTR USE .ENTR TO GET DEF IERR ADDRESSES OF PARAMETERS LDA IERR,I GET ERROR CODE SSA,RSS FILE MANAGER ERROR? JMP IFMGR,I NO, RETURN TO USER SPC 1 * ERROR! CONVERT ERROR TO ASCII AND PUT IT INTO OUTPUT BUFFER SPC 1 MPY M1 MULTIPLY ERROR BY -1 & THEN DIV .10 DIVIDE BY TEN TO GET TENS DIGIT. STA ERROR SAVE TEMPORARILY MPY .10 MULTIPLY BY 10 AND DIVIDE BY DIV .1 1 TO GET TENS VALUE ONLY ADA IERR,I ADD ERROR CODE, RESULT = - UNITS CMA,INA MAKE UNITS POSITIVE LDB ERROR GET TENS DIGIT BLF,BLF ROTATE IT TO HIGH HALF OF WORD IOR B OR IT WITH UNITS IOR ASC00 OR IN ASCII CONSTANT STA ERROR PUT ASCII ERROR CODE IN MESS BUF SPC 1 * ADD CALL ID AND FILE NAME TO BUFFER SPC 1 LDA ID,I GET ID CODE SSA IS IT NEGATIVE? CMA,INA YES - MAKE POSITIVE STA B IS CODE ADB M14 GREATER SSB,RSS THAN 13? CLA YES - OUTPUT $$$$$ FOR ID STA B SAVE ERROR CODE ALS MULTIPLY BY 2 AND ADA B ADD IT TO ITSELF (X3) ADA CALL ADD BUFR STARTING ADDS TO OFFSET LDB EMES SET POINTER TO STB PNTR ID NAME CLB SET FLAG TO INDICATE NAME STB FLAG BUFFER HAS TO BE TRANSFERRED. NFILE LDB M3 SET COUNTER TO STB CNTR TRANSFER 3 WORDS LOOP LDB A,I GET ID WORD & PUT IT STB PNTR,I IN ERROR MESSAGE BUFFER INA INDEX ID AND ISZ PNTR ERROR MESSAGE POINTERS ISZ CNTR TRANSFER COMPLETE? JMP LOOP NO - TRANSFER NEXT WORD LDB FLAG SZB NAME ARRAY TRANSFERRED? JMP OUT YES - OUTPUT MESSAGE ISZ FLAG NO - SET FLAG TO SAY YES LDA NAME GET ADDRESS OF ARRAY IN A LDB NAMEB PUT OUTPUT BUFFER STB PNTR ADDRESS IN B JMP NFILE TRANSFER FILE NAME SPC 1 * OUTPUT ERROR MESSAGE SPC 1 OUT JSB EXEC DEF *+5 DEF WRITE DEF LTTY,I EMES DEF ERMES DEF M32 SPC 1 * CHECK FOR ABORT PROGRAM SPC 1 LDA IERR,I PUT ERROR CODE IN CASE WE RETURN LDB ID,I GET ID CODE640 SSB,RSS DO WE ABORT? JMP IFMGR,I NO - RETURN SPC 1 * ABORT PROGRAM SPC 1 JSB EXEC WRITE DEF *+5 "PROGRAM ABORTED!" DEF WRITE ON DEF LTTY,I THE DEF ABORT LOCAL DEF M16 TTY JSB EXEC ASK DEF *+2 RTE TO DEF .6 TERMINATE PROGRAM JMP *-3 JUST IN CASE RTE DOES NOT LISTEN SPC 1 * CONSTANTS, STORAGE ALLOCATION, AND MESSAGES SPC 1 A EQU 0 A REGISTER B EQU 1 B REGISTER SPC 1 * CONSTANTS SPC 1 .1 DEC 1 .6 DEC 6 .10 DEC 10 M1 DEC -1 M3 DEC -3 M14 DEC -14 M16 DEC -16 M32 DEC -32 SPC 1 * MISC. CONSTANTS SPC 1 ASC00 ASC 1,00 WRITE DEC 2 SPC 1 * NOP'S SPC 1 CNTR NOP UTILITY COUNTER FLAG NOP ID/NAME TRANSFER FLAG PNTR NOP TRANSFER POINTER TO MESSAGE BUFFR SPC 1 * FILE MANAGER CALLS SPC 1 CALL DEF *+1 SUP 1 SPC 1 ASC 3,$$$$$ ID1 ASC 3,APOSN ID2 ASC 3,CLOSE ID3 ASC 3,CREAT ID4 ASC 3,FCONT ID5 ASC 3,FSTAT ID6 ASC 3,LOCF ID7 ASC 3,NAMF ID8 ASC 3,OPEN ID9 ASC 3,POSNT ID10 ASC 3,PURGE ID11 ASC 3,READF ID12 ASC 3,RWNDF ID13 ASC 3,WRITF SPC 1 * ERROR MESSAGE SPC 1 ERMES BSS 3 ASC 4,ERROR - ERROR NOP ASC 5, IN FILE NAM. BSS 3 NAMEB DEF NAM. SPC 1 * ABORT PROGRAM MESSAGE SPC 1 ABORT ASC 8,PROGRAM ABORTED! SPC 1 END 6   22682-18032 1639 SC 0422 "LOAD ON CALL" (LOCAL) PACKAGE             H0104 FTN,L PROGRAM DEFLC C C C PROGRAMME POUR REALISER UNE SEGMENTATION AUTOMATIQUE C DES PROGRAMMES FORTRAN SE PRESENTANT SOUS LA FORME C D'UN PROGRAMME PRINCIPAL ET DE PLUSIEURS SOUS PROGRAMMES C (LOAD ON CALL "LOCAL" TECHNIQUE) C************************************************************* C C J-L LARICE , FACULTE DES SCIENCES D'AVIGNON, FRANCE C LABORATOIRE DE CHIMIE 1 C*************************************************************** C C DIMENSION MS2(12),MS3(7),ICS(3),IT(5,11),IS(5),IE(80), 1 IJ(64),IRECH(2,12),IRESH(2,10),MS1(20) EQUIVALENCE (IRECH(5),IRESH),(MS1,IRESH),(IE,IJ),(IR,MS2(3)) 1 ,(IS(3),IS3) DATA MS1(1),MS1(2),MS1(3),MS1(4),MS1(5),MS1(6),MS1(7),MS1(8) 1,MS1(9),MS1(10),MS1(11),MS1(12),MS1(13),MS1(14),MS1(15),MS1(16) 2,MS1(17),MS1(18),MS1(19),MS1(20)/42516B,52105B,51040B,46501B 3,44516B,20116B,40515B,42454B,51525B,41122B,47525B,52111B 4,47105B,20116B,40515B,42523B,26101B,47104B,20057B,42440B/ DATA MS2(1),MS2(2),MS2(3),MS2(4),MS2(5),MS2(6),MS2(7),MS2(8) 1,MS2(9),MS2(10),MS2(11),MS2(12)/20114B,41440B,30063B,6412B 2,46117B,41501B,46040B,52105B,51115B,44516B,40524B,42504B/ DATA MS3(1),MS3(2),MS3(3),MS3(4),MS3(5),MS3(6),MS3(7) / 1 46117B,41501B,46040B,41517B,46520B,46105B,52105B / DATA ICS(1),ICS(2),ICS(3)/21523B,42507B,46440B / DATA IS(1),IS(2),IS(3),IS(4),IS(5)/4*56B,57B/ DATA IV,KS,KE /54B,57B,105B / DATA NAM,IENT,IBGD,KSG,K07,K10/20000B,40000B,20040B 1,27440B,30067B,30460B / DATA IRECH(1),IRECH(2),IRECH(3),IRECH(4) /4*0 / DATA IT(1),IT(2),IT(3),IT(4),IT(5),IT(6),IT(7),IT(8),IT(9),IT(10) 1,IT(11),IT(12),IT(13),IT(14),IT(15),IT(16),IT(17),IT(18) 2,IT(19),IT(20),IT(21),IT(22),IT(23),IT(24),IT(25),IT(26) 3,IT(27),IT(28),IT(29),IT(30),IT(31),IT(32),IT(33),IT(34) 4,IT(35),IT(36),IT(37),IT(38),IT(39),IT(40)/40*40B / DATA IT(41),IT(42),IT(43),IT(44),IT(45),IT(46),IT(47),IT(48) t 1,IT(49),IT(50),IT(51),IT(52),IT(53),IT(54),IT(55)/15*40B/ J=1 I=0 CALL BATCH(LU,LSYST) C C****** FIN DES INITIALISATIONS********** C C C***** 1 RE PARTIE DU PROGRAMME: DEMANDE DES NOMS DU PROGRAMME C***** PRINCIPAL ET DES SOUS PROGRAMMES***** C 1 IF(LU-LSYST) 10,5,10 5 CALL EXEC(2,LU,MS1,20) 10 DO 15 K=1,40 15 IE(K)=IBGD C **INIT IE A BLANCS PUIS LECTURE DE IE A L'UNITE DE BATCH** C CALL EXEC(1,LU+400B,IE,40) C** PASSAGE EN R1 PUIS RESSERAGE DES BLANCS** C CALL A2TR1(IE,40) DO 440 L=1,80 N=80-L+1 IF(IE(N)-40B) 450,440,450 440 CONTINUE 450 L=0 451 L=L+1 IF(L-N) 453,20 453 IF(IE(L)-40B) 451,454,451 454 DO 455 JR=L,N 455 IE(JR)=IE(JR+1) L=L-1 N=N-1 GO TO 451 C C** ANALYSE DE L'ENREGISTREMENT** C 20 DO 45 K=1,N IF(IE(K)-IV) 25,50,25 25 I=I+1 IF(I-5) 30,30,45 30 IT(I,J)=IE(K) C**VERIF SI LES 2 PREMIERS CARACT SONT# DE /E C IF(I-2) 45,35,45 35 IF(IT(I,J)-KE) 45,40,45 40 IF(IT(I-1,J)-KS) 45,65,45 45 CONTINUE GO TO 1 50 IF(I) 999,999,55 55 J=J+1 IF(J-12) 60,65 60 I=0 GO TO 45 65 NBSG=J-2 C*** SI NBRE SEG =0, SORTIE ERREUR***** C**ERREUR LC 03 C IR=IR+1 IF(NBSG) 999,999,70 C** NBRE SEG =0, SORTIE ERREUR LC 04 C 70 DO 85 K=1,3 IF(IT(K,1)-40B) 80,85,80 80 IS(K)=IT(K,1) 85 CONTINUE C** FORMATION DES 3 1ER CAR DU NOM DES SEGMENTS C C C** PASSAGE EN A2 DES NOM DU MAIN,DES S/PRG,ET DU SEGMENT** C DO 90 K=1,NBSG CALL R1TA2(IT(1,K+1),5) IRESH(1,K)=0 90 IRESH(2,K)=0 CALL R1TA2(IT,5) CALL R1TA2(IS,5) C C C C*****2 ME PARTIE DU PROGRAMME DEFLC: EXAMEN DE LA JBIN C*****SUR NAM ET ENT DU MAIN,DES SEGMENTS,DE#SEGM. C*****LES RESULTATS SONT PLACES DANS IRECH(2,12) C C CALL DEFJB 95 CALL JBLEC(IJ,LJ,JR) IF(JR) 190,100,905 905 IR=IR+1+JR/4 C C* * ERREUR LC 05 JBIN VIDE OU LC06 ENREG RELOC >=64 MOTS C GO TO 999 100 IF(IAND(IJ(2),160000B)-NAM) 140,105,140 105 IJ(6)=MASK(IJ(6)) C C** ENREG RELOC NAM IS3=KSG C C** FORMATION NOM SEGMENTS (IS3EQUIV A IS(3) INIT A "/ " DO 115 K=1,NBSG IS3=IS3+400B IF(NRECH(IJ(4),IS)) 110,115 110 IRESH(1,K)=IRESH(1,K)+1 115 CONTINUE IF(NRECH(IJ(4),IT)) 120,125 120 IRECH(1,1)=IRECH(1,1)+1 125 IF(NRECH(IJ(4),ICS))130,135 130 IRECH(1,2)=IRECH(1,2)+1 135 GO TO 95 C C**ENREG RELOC ENT ? 140 IF(IAND(IJ(2),160000B)-IENT) 95,145,95 145 J=IAND(IJ(2),17B) C C** J= NBRE DE POINTS D'ENTREE L=0 DO 175 I=1,J IS3=KSG L=L+4 DO 155 K=1,NBSG IS3=IS3+400B IJ(L+2)=MASK(IJ(L+2)) IF(NRECH(IJ(L),IS)) 150,155 150 IRESH(2,K)=IRESH(2,K)+1 155 CONTINUE IF(NRECH(IJ(L),IT)) 160,165 160 IRECH(2,1)=IRECH(2,1)+1 165 IF(NRECH(IJ(L),ICS)) 170,175 170 IRECH(2,2)=IRECH(2,2)+1 175 CONTINUE GO T O 95 C C** EXAMEN DU TABLEAU IRECH ET SORTIE DE MESSAGES D'ERREUR C** LORSQUE LA JBIN EST EXPLOREE EN TOTALITE C 190 IABRT=0 IR=K07 IF(IRECH-1) 200,200,195 195 IABRT=1 C******** LC 07 DUPLICATE FILE NAME (MAIN) *** CALL EXEC(2,LSYST,IT,3) CALL EXEC(2,LSYST,MS2,4) 200 IR=IR+1 C******* LC 08 DUPLICATE ENTRY POINT (MAIN)** C*******LC 09 NO ENTRY POINT OF MAIN IN JBIN*** IF(IRECH(2,1)-1) 205,215,210 205 IR=IR+1 210 CALL EXEC(2,LSYST,IT,3) CALL EXEC(2,LSYST,MS2,4) IABRT=1 215 IR=K10 C C******* LC 10 DEF LC RUN TWICE IN A JOB**(DUPLICATE #SEGM)** IF(IRECH(2,2)) 220,220,999 C C*****LC 11 SEGMENT NAMES DEJA EN JBIN C*****LC 12 SEGMENT ENTRY POINT DEJA EN JBIN C 220 DO 250 J=1,2 L=0 IR=IR+1 IS3=KSG DO 230 K=1,NBSG IS3=IS3+400B IF(IRESH(J,K)) 230,230,225 225 CALL EXEC(2,LSYST,IS,3) L=1 230 CONTINUE IF(L) M250,250,235 235 IABRT=1 CALL EXEC(2,LSYST,MS2,4) 250 CONTINUE C C C C C C******* 3 EME PARTIE DU PROGRAMME: EXPLORATION DE LA DYRECTORY C L=0 IR=IR+1 CALL EXEC(18,IT,JR) IF(JR) 260,260,255 255 L=1 CALL EXEC(2,LSYST,IT,3) C C**** LC 13 MAIN OU SEGMENT DS LA DIRECTORY***** 260 IS3=KSG DO 270 K=1,NBSG IS3=IS3+400B CALL EXEC(18,IS,JR) IF(JR) 270,270,265 265 L=1 CALL EXEC(2,LSYST,IS,3) 270 CONTINUE IF(L) 280,280,999 280 IF(IABRT) 300,300,900 900 CALL EXEC(2,LSYST,MS2(4),9) GO TO 400 999 CALL EXEC(2,LSYST,MS2,12) GO TO 400 C C*******SI PAS D'ERREUR FIN DU PROGRAMME: C****** MISE EN JBIN DES SEGMENTS ET DE #SEGM C C C 300 IS3=KSG CALL JBWRR(IS,NBSG) DO 350 K=1,NBSG IS3=IS3+400B 350 CALL JBWRS(IS,IT,IT(1,K+1)) CALL EXEC(2,LSYST,MS3,7) 400 CALL EXEC(6) END END$ ,ASMB,R,L NAM BATCH,7 ENT BATCH EXT .ENTR PARAM BSS 2 BATCH NOP JSB .ENTR DEF PARAM LDA #BATC STA PARAM,I LDA #SYST STA PARAM+1,I JMP BATCH,I #BATC EQU 111B #SYST EQU 112B END ASMB,R,L NAM R1A2.,7 ENT A2TR1,R1TA2 EXT .ENTR PAR BSS 2 A2TR1 NOP JSB .ENTR DEF PAR CCA VERIF PAR+1,I >1 ADA PAR+1,I SSA,INA RESTAUR PAR+1,I JMP A2TR1,I SORTIE SI PAR+1,I<1 CCB CALC ADRESSES FIN TABLEAU ADB PAR ET PROLONGEMENT (DILATATION EN R1) ADB 0 STB ADA2 STOC ADRESSE CARAC A2 EN COURS TRAIT ADB 0 STB ADR1 STOC ADRESSE CARAC R1 " " " CMA,INA COMPTEUR STA COMPT CLB BLE LDA ADA2,I SLB ALF,ALF AND =B377 STA ADR1,I CCA ADA ADR1 STA ADR1 SLB,INB,RSS JMP BLE CCA ADA ADA2 STA ADA2 ISZ COMPT JMP BLE JMP A2TR1,I * * .PAR BSS 2 R1TA2 NOP JSB .ENTR DEF .PAR CCA ADA .PAR+1,I SSA,INA JMP R1TA2,I SORTIE ERREUR CMA,CLE,INA STA COMPT COMPTUER LDA .PAR STA .ADR1 STA .ADA2 CLB BCLER LDA .ADR1,I AND =B377 SEZ,RSS ALF,ALF ADB 0 SEZ,RSS JMP INCR STB .ADA2,I CLB ISZ .ADA2 INCR CME ISZ .ADR1 ISZ COMPT JMP BCLER SEZ,RSS NOMBRE PAIR? JMP R1TA2,I OUI,SORTIE LDA =B40 ADA 1 STA .ADA2,I JMP R1TA2,I .ADA2 EQU PAR .ADR1 EQU PAR+1 ADA2 EQU .PAR ADR1 EQU .PAR+1 COMPT NOP END ASMB,R,L NAM MASK,7 ENT MASK EXT .ENTR PARAM NOP MASK NOP JSB .ENTR DEF PARAM LDA PARAM,I AND =B177400 ADA =B40 JMP MASK,I END ASMB,R,L * PROGRAMME POUR LIRE LA JBIN * APPEL: CALL DEFJB INITIALEMENT, PUIS * CALL JBLEC(IBUF,LBUF,IER) LBUF=LGUEUR DE L'ENREGISTREMENT * RELOC MIS DANS IBUF. IER=0 SI NON ERREUR * SI IER<0 : FIN JBIN * SI IER=1 : PAS INIT PAR DEFJB, SI IER=2 OU 3 JBINC OU JBINS=0, * SI IER>3,LGUER ENR RELOC>64MOTS * * NAM JBLEC,7 ENT DEFJB,JBLEC EXT .ENTR,EXEC DEFJB NOP JSB .ENTR DEF *-2 LDA P2 STA JBDEF INIT A +2 LDA JBINS SZA,RSS JBINS DEFINIE? JMP DEFJB,I NON CPA JBINC JMP DEFJB,I JBINS = JBINC DONC NON DEF JSB #TRSC OUI DST TRAC ADRESSES PISTE,SECT DS TRAC,SECT ISZ JBDEF INCREM ERREUR LDA JBINC SZA,RSS JBINC DEFINIE? JMP DEFJB,I NON JSB #TRSC OUI DST TRJBC ADD. DS TRJBC,SCJBC CLA INITIALISATIONS STA JBDEF O.K. DEFJB STA NMOT OFFSET A 0 LDA NSECP STOC NBRE NEG SECT/PISTE CMA,INA QQ SOIT VERSION E OU F STA NMSEC DU MONITEUR JMP DEFJB,I SORTIE * * * PAR BSS 3 JBLEC NOP JSB .ENTR DEF PAR LDA JBDEF DEFJB APPELE ET RETOUR OK? SZA JMP ERR NON LDA PAR OUI, COPIE ADRESSE PAR DS .PAR STA .PAR LDA NMOT OFFSET/MOT =0 ? SZA,RSS EXCM1 JSB LECSC OUI,VERS LECTURE/SECTEUR LDB ADBUF CALC ADRESSE DE BUF OU LE TRANSFERT ADB NMOT DOIT COMMENCER LDA 1,I LONG. ENREGISTREMENT ALF,ALF AND .377 ADA M64 >=64? SSA,RSS JMP ERR4 ADA P64 NON,RESTAUR LONGUEUR STA PAR+1,I MISE DANS LBUF SZA LONG. =0 ? JMP SUIT1 NON STA NMOT OUI,FIN SECT. , NMOT MIS A 0 JMP EXCM1 LECT SECT SUIVANT SUIT1 ADA NMOT ENREG. RENTRE DS SECT. COURANT? NWLEC ADA M128 SSA JMP DMOVE OUI,VERS DERNIER MOVE STA NMOT NOUVEL OFFSET LDA DDBUF TRANSF. DE BUF(ANCIEN OFFSET) A BUF(128)  JSB MOVE LDA NMOT SI PROGH OFFSET=0 SZA,RSS SORTIE O.K. JMP ERR JSB LECSC LEC NOUV SECTEUR LDB ADBUF LDA NMOT JMP NWLEC DMOVE ADA P128 RESTAUR PROCHAIN OFFSET STA NMOT ADA M1 CALC DERNIERE ADRESSE A TRFERER ADA ADBUF SOIT BUF(1+NMOT-1) JSB MOVE CLA VERS SORTIE ERR STA PAR+2,I STA JBDEF JMP JBLEC,I ERR4 LDA P4 JMP ERR * * SOUS PROGRAMMES * * LECSC NOP DLD TRAC CPA TRJBC VERIF FIN JBIN JMP *+2 JMP *+4 CCA CPB SCJBC JMP ERR JSB EXEC DEF *+7 DEF M1 DEF P2 DEF BUF DEF P128 DEF TRAC DEF SECT DLD TRAC DECREM EVENTUELE INB STB SECT ADB NMSEC SSB SAUT SI NUSECT-48 (DISC 7900) >=0 JMP LECSC,I ADA M1 DST TRAC JMP LECSC,I * * #TRSC NOP LDB 0 AND .177 STA NMOT LDA 1 ALF,ALF AND .377 LDB NMOT JMP #TRSC,I * * MOVE NOP CMA ADA 1 DIF ENTRE ADR FIN ET DEBUT,-1 SSA,RSS A DOIT ETRE NEGATIF JMP MOVE,I STB CMPAR BCLE LDB CMPAR,I STB .PAR,I ISZ .PAR ISZ CMPAR INA,SZA JMP BCLE JMP MOVE,I * * * TABLEAU ET VARIABLES * NMOT NOP JBDEF OCT 1 TRAC NOP SECT NOP TRJBC NOP SCJBC NOP BUF BSS 128 CMPAR NOP .PAR NOP NMSEC NOP * * ADRESSES ADBUF DEF BUF DDBUF DEF BUF+127 * * *CONSTANTES * JBINS EQU 101B JBINC EQU 102B M64 EQU 40B M1 EQU 52B P2 EQU 55B P4 EQU 57B P64 EQU 67B .177 EQU 73B .377 EQU 74B M128 DEC -128 P128 DEC 128 NSECP EQU 116B * * * END ASMB,R,L NAM NRECH,7 ENT NRECH EXT .ENTR PAR BSS 2 NRECH NOP JSB .ENTR DEF PAR * RECHERCHE D'UNE CHAINE DE 3 MOTS * FUNCTION NRECH(ICARD,KCARD) * % SI ICARD(1)=KCARD(1) * " " 2 " " 2 * " 3 3 * NRECH=-1,SINON,NRECH=0 * LDB =D-3 BCLE LDA PAR,I CPA PAR+1,I JMP SBCLE VERS SUITE BOUCLE JMP NOTVR VERS NON TROUVE & SORTIE SBCLE ISZ PAR ISZ PAR+1 INB,SZB JMP BCLE CCA JMP NRECH,I NOTVR CLA JMP NRECH,I END ASMB,R,L NAM JBWRS,7 * ****** PROGRAMME POUR ECRIRE DANS LA JBI *** LES PROG #SEGM ET SEGMENTS * ENT JBWRR,JBWRS EXT .ENTR,%WRIT,%WRIF PAR NOP PAR1 NOP APPEL: CALL JBWRR(IT,NMAX) JBWRR NOP IT=TAB 3 ELEM CONTENENT LE JSB .ENTR NOM DES SEGMENTS (4 CAR DEF PAR SUR 5 ) DLD PAR,I NMAX=NBRE MAXI SEGMENTS DST #NOM LDA PAR1,I STA #NMAX DLD DBL4 PREP CHEK SUR DBL(4) JSB CHEKS JSB %WRIT ECRITURE EN JBIN DEF *+3 DEF #SEGM DEF .66 JSB %WRIF END OF WRITE IN JBIN JMP JBWRR,I SORTIE S/PRG. * ****** PROGR. BIN. RELO. #SEGM * SUP #SEGM OCT 10400,20000,153072,21523 OCT 42507,46440,26,0,0,7,143,0,0,0 OCT 0,0,0,3400,40001,172633 OCT 21523,42507,46400,0 #DBL OCT 23000,60126,0,0,0,0,3400 OCT 40001,70001,2020,121212,126000 OCT 0,3000,42000,24,2020,126000,0 OCT 121320,62000,20,5727,46000 OCT 25,76000,23,6400,122000 OCT 126000,0,21 #NOM BSS 4 #NMAX OCT 0,30040,2000,120000,120000,0 * * ***** ADRESSES ET CONCTANTES**** UNS DBL4 DEF #DBL+3 DEF #NMAX+1 .66 DEC 66 * * ****** JBWRS *** APPEL: CALL JBWRS(NMSG,NM,NSUB) * NMSG = TAB 3 ELEM : NOM SEGMENT **** NM ID AVEC NOM MAIN **** NSUB ID MAIS NOM DU SOUSPROGRAMM PARM BSS 3 JBWRS NOP JSB .ENTR DEF PARM DLD PARM,I MISE NOM SEGM DS NAM DST $NAM ET ENT DU RELOC DST $ENT LDA PARM CALC ADRESSE NMSG(3) ADA .2 LDA 0,I STA $NAM+2 AND MASK STA $ENT+2 DLD NAM4 CHEKSUM DES NAM JSB CHEKS DLD ENT4 CHEKSUM DES ENT JSB CHEKS DLD PARM+1,I MISE DU NOM DU MAIN DST $EXT ET SUBROUTINE EN EXT LDA PARM+1 ADA .2 FORMATION MAIN(3) LDA 0,I AND MASK INA +1 POUR 1 ER E XT STA $EXT+2 DLD PARM+2,I DST $EXT+3 LDA PARM+2 ADA .2 LDA 0,I AND MASK ADA .2 STA $EXT+5 DLD EXT4 CHEKSUM JSB CHEKS JSB %WRIT ECRITURE EN JBIN DEF *+3 DEF $SEGM DEF .56 JSB %WRIF FIN ECRIT JB JMP JBWRS,I SORTIE * * ****SEGMENT, BIN,RELOC SUP $SEGM OCT 10400,20000,0 $NAM OCT 0,0,0,7,0,0,5,143,0,0,0,0,0,0 OCT 3400,40001,0 $ENT OCT 0,0,0,0,6000,100003,0 $EXT BSS 6 OCT 27114,47503,40403 .LOCA DBL1 OCT 10000,60107,76724,0,121300 OCT 62000,6,1275,26000,4,26003 OCT 160000,130000,26000,1,2 OCT 2000,120001,120001,0 * * UNS ADRESSES ET CONSTANTES NAM4 DEF $NAM DEF $NAM+13 ENT4 DEF $ENT DEF $ENT+3 EXT4 DEF $EXT DEF DBL1-1 .2 DEC 2 .56 DEC 56 MASK OCT 177400 M2 DEC -2 * * ***** SUBR. CHEKSUM******** * CHEKS NOP STA PAR ADRESSE RELOC(4) SAUVEE CMB -RELOC(FIN)-1 ADB 0 + ADR. RELOC(4) B=DECMPT ADA M2 STA PAR1 DANS PAR1 CLA INIT A=0 BCLK ADA PAR,I SOMME DE RELOC(4) A ISZ PAR RELOC(FIN) INB,SZB DECREMENTATION B JMP BCLK ADA PAR1,I + RELOC(2) ISZ PAR1 STA PAR1,I LE TOUT DANS RELOC(3) JMP CHEKS,I END /ASMB,L,R NAM LOCAL,7 * * * SOUS PROGRAMME ASSURANT LE TRANSFERT DES ARGUMENT AU SOUS * PROGRAMME REFERENCE PAR LE 1 ER ARGUMENT DU CALL LOCAL * AVEC CHARGEMENT PREALABLE DU SEGMENT CONTENANT CE SOUS * PROGRAMME S'IL N'EST PAS DEJA EN MEMOIRE * ***************************************************************** * ENT LOCAL,.LOCA EXT EXEC,.ENTR,#SEGM PAR DEF .ZER BSS 16 LOCAL NOP JSB .ENTR DEF PAR CLB LDA ADPAR DETERM NBRE PARAM STA DDPAR BCLE1 LDA DDPAR,I CONTENU ADDR CONTEBUE DDPAR SZA,RSS SI#0 C'EST UNE ADRESSE JMP SUIT1 INB ISZ DDPAR JMP BCLE1 SUIT1 STB NBPAR LDB PAR,I DETERM SI SEGMT CORE RESIDENT SZB,RSS NUM SEG =0? JMP *+4 OUI CPB NUSEG JMP TRFER STB NUSEG NON,VERS CALL EXEC(8,... JSB #SEGM OUI SZB SI B#0 JMP ERR VERS ERREUR STA NMSEG NMSEG=ADRESSE 1 ER ELEM JSB EXEC DU TAB CONTENANT LE NOM DEF *+3 DEF P8 DEF NMSEG,I JUMPS JMP ADST2,I .LOCA STA #SUBR TRFER LDA APAR1 ADA NBPAR CALC ADRESSE DE RETOUR STA DFRTN LDA 0,I STA INSTR LDA JUMPS STA DFRTN,I JSB #SUBR,I DFRTN NOP PAR1 DEF PAR+1,I DEF PAR+2,I DEF PAR+3,I DEF PAR+4,I DEF PAR+5,I DEF PAR+6,I DEF PAR+7,I DEF PAR+8,I DEF PAR+9,I DEF PAR+10,I DEF PAR+11,I DEF PAR+12,I DEF PAR+13,I DEF PAR+14,I DEF PAR+15,I DEF PAR+16,I SUIT2 LDA INSTR RESTAUR INSTR STA DFRTN,I LDA ADZER RESTAUR ADRESSE PAR STA PAR A ZERO LDA ADPAR STA DDPAR LDA M16 CLB BCL2 STB DDPAR,I ISZ DDPAR INA,SZA JMP BCL2 RESTAUR PAR A 0 JMP LOCAL,I ERR CLA SSB INA ADA ERCOD STA ERCOD JSB EXEC DEF *+5 2   DEF WRCOD DEF WLU DEF MESSG DEF P11 JSB EXEC DEF *+2 DEF P6 WLU EQU 112B LU SYST TTY .ZER EQU 53B ZERO EN B.P. M16 DEC -16 ADPAR DEF PAR+1 DDPAR NOP NBPAR NOP NUSEG OCT 0 NMSEG NOP P8 EQU 63B 8 EN B.P. APAR1 DEF PAR1 ADZER DEF .ZER INSTR NOP #SUBR NOP ADST2 DEF SUIT2 WRCOD EQU 55B 2 EN B.P. P6 EQU 61B 6 EN B.P. MESSG ASC 2, LC ERCOD ASC 1,01 OCT 6412 ASC 8,LOCAL TERMINATED P11 DEC 12 END V FTN,L PROGRAM DEMO READ(1,*) I,J,K,L WRITE(1,110) 110 FORMAT(1X," I,J,K ET L ONT POUR VALEUR INITIALE:") WRITE(1,100) I,J,K,L CALL LOCAL(1,I,J,K,L) WRITE(1,120) 120 FORMAT(///1X,"VALEURS DE I,J,K,L APRES APPEL DE SUPR1:") WRITE(1,100) I,J,K,L CALL LOCAL(1,I,J,K,L) WRITE(1,130) 130 FORMAT(///1X,"VALEURS DE I,J,K,L APRES NOUVEL APPEL DE SUPR1:") WRITE(1,100) I,J,K,L CALL LOCAL(2,I,J,K) WRITE(1,140) 140 FORMAT(///1X,"VALEURS DE I,J,K,L APRES APPEL DE SUPR2:") WRITE(1,100) I,J,K,L 100 FORMAT(4I10) CALL LOCAL(3,I,J,K,L) WRITE(1,150) 150 FORMAT(///1X,"VALEURS DE I,J,K,L APRES APPEL DE SUPR3:") WRITE(1,100) I,J,K,L CALL EXEC(6) END SUBROUTINE SUPR1(I,J,K,L) C C PERMUTATION DES ARGUMENTS I,J ET K,L C KK=K LL=L L=I K=J I=LL J=KK RETURN END SUBROUTINE SUPR2(I,J,K) K=I+J C C LE TROISIEME ARGUMENT RETOURNE EST EGAL A LA SOMME C DES DEUX PREMIERS. RETURN END SUBROUTINE SUPR3(I,J,K,L) L=I*J C C LE QUATRIEME ARGUMENT RETOURNE EST EGAL AU PRODUIT DES C DEUX PREMIERS C RETURN END END$   22682-18033 1640 SC 0322 12X12 CHARACTER GENERATOR SUBROUTINE             H0103 xFTN4,L,T,C SUBROUTINE CHAR (LETTER,MATRIX,OK,PATTRN) C C GENERATES A 12X12 MATRIX CHARACTER FROM A GIVEN CHARACTER. C INTEGER POINTR,PATTRN,OK,MATRIX(12,12) INTEGER TABLE(1795),A(42),B(38),END INTEGER C(30),D(42),E(26),F(26),G(34),H(46),I(26) INTEGER J(28),K(46),L(26),M(58),N(60),O(42),P(32) INTEGER Q(48),R(42),S(30),T(26),U(46),V(46) INTEGER W(58),X(46),Y(36),Z(26),D1(26),D2(28) INTEGER D3(30),D4(32),D5(26),D6(34),D7(28),D8(38) INTEGER D9(34),D0(42) INTEGER SU(36),SD(38),SP(42),BL(26),BR(26) INTEGER SC(10),SQ(18),LS(24),RS(24),SPACE(2) INTEGER MI(6),XX(10),PL(18),EX(22),QQ(10),LP(26) INTEGER RP(26),ST(46),QM(26),PD(6) INTEGER PC(48) C EQUIVALENCE (TABLE(1),A(1)) EQUIVALENCE (TABLE(43),B(1)) EQUIVALENCE (TABLE(81),C(1)) EQUIVALENCE (TABLE(111),D(1)) EQUIVALENCE (TABLE(153),E(1)) EQUIVALENCE (TABLE(179),F(1)) EQUIVALENCE (TABLE(205),G(1)) EQUIVALENCE (TABLE(239),H(1)) EQUIVALENCE (TABLE(285),I(1)) EQUIVALENCE (TABLE(311),J(1)) EQUIVALENCE (TABLE(339),K(1)) EQUIVALENCE (TABLE(385),L(1)) EQUIVALENCE (TABLE(411),M(1)) EQUIVALENCE (TABLE(469),N(1)) EQUIVALENCE (TABLE(529),O(1)) EQUIVALENCE (TABLE(571),P(1)) EQUIVALENCE (TABLE(603),Q(1)) EQUIVALENCE (TABLE(651),R(1)) EQUIVALENCE (TABLE(693),S(1)) EQUIVALENCE (TABLE(723),T(1)) EQUIVALENCE (TABLE(749),U(1)) EQUIVALENCE (TABLE(795),V(1)) EQUIVALENCE (TABLE(841),W(1)) EQUIVALENCE (TABLE(899),X(1)) EQUIVALENCE (TABLE(945),Y(1)) EQUIVALENCE (TABLE(981),Z(1)) EQUIVALENCE (TABLE(1007),D1(1)) EQUIVALENCE (TABLE(1033),D2(1)) EQUIVALENCE (TABLE(1061),D3(1)) EQUIVALENCE (TABLE(1091),D4(1)) EQUIVALENCE C8 (TABLE(1123),D5(1)) EQUIVALENCE (TABLE(1149),D6(1)) EQUIVALENCE (TABLE(1183),D7(1)) EQUIVALENCE (TABLE(1211),D8(1)) EQUIVALENCE (TABLE(1249),D9(1)) EQUIVALENCE (TABLE(1283),D0(1)) EQUIVALENCE (TABLE(1325),SU(1)) EQUIVALENCE (TABLE(1361),SD(1)) EQUIVALENCE (TABLE(1399),SP(1)) EQUIVALENCE (TABLE(1441),BL(1)) EQUIVALENCE (TABLE(1467),BR(1)) EQUIVALENCE (TABLE(1493),SC(1)) EQUIVALENCE (TABLE(1503),SQ(1)) EQUIVALENCE (TABLE(1521),LS(1)) EQUIVALENCE (TABLE(1545),RS(1)) EQUIVALENCE (TABLE(1569),SPACE(1)) EQUIVALENCE (TABLE(1571),MI(1)) EQUIVALENCE (TABLE(1577),XX(1)) EQUIVALENCE (TABLE(1587),PL(1)) EQUIVALENCE (TABLE(1605),EX(1)) EQUIVALENCE (TABLE(1627),QQ(1)) EQUIVALENCE (TABLE(1637),LP(1)) EQUIVALENCE (TABLE(1663),RP(1)) EQUIVALENCE (TABLE(1689),ST(1)) EQUIVALENCE (TABLE(1735),QM(1)) EQUIVALENCE (TABLE(1761),PD(1)) EQUIVALENCE (TABLE(1767),PC(1)) EQUIVALENCE (TABLE(1795),END) C DATA END /0/ DATA A / 1HA,40, & 106,107, & 205,208, & 304,305,308,309, & 403,404,409,410, & 502,503,510,511, & 601,602,611,612, & 701,712, & 801,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1102,1111,1112, & 1201,1202,1211,1212/ C DATA B /1HB,36, & 101,111, & 201,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,611, & 701,711, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1112, & 1201,1211/ C DATA C / 1HC/,28, & 102,111, & 201,212, & 301,302,311,312, & 401,402, & 501,502, & 601,602, & 701,702, & 801,802, & 901,902, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA D / 1HD,40, & 101,109, & 201,210, & 301,302,310,311, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 701,702,711,712, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1010,1011, & 1101,1110, & 1201,1209/ C DATA E / 1HE,24, & 101,112, & 201,212, & 301,302, & 401,402, & 501,502, & 601,608, & 701,708, & 801,802, & 901,902, & 1001,1002, & 1101,1112, & 1201,1212/ C DATA F / 1HF,24, & 101,112, & 201,212, & 301,302, & 401,402, & 501,502, & 601,608, & 701,708, & 801,802, & 901,902, & 1001,1002, & 1101,1102, & 1201,1202/ C DATA G / 1HG,32, & 102,111, & 201,212, & 301,302,311,312, & 401,402, & 501,502, & 601,602, & 701,702, & 801,802,808,812, & 901,902,908,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA H / 1HH,44, & 101,102,111,112, & 201,202,211,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,612, & 701,y>712, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1102,1111,1112, & 1201,1202,1211,1212/ C DATA I / 1HI,24, & 102,111, & 202,211, & 306,307, & 406,407, & 506,507, & 606,607, & 706,707, & 806,807, & 906,907, & 1006,1007, & 1102,1111, & 1202,1211/ C DATA J / 1HJ,26, & 111,112, & 211,212, & 311,312, & 411,412, & 511,512, & 611,612, & 711,712, & 811,812, & 911,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA K / 1HK,44, & 101,102,111,112, & 201,202,210,211, & 301,302,309,310, & 401,402,408,409, & 501,502,507,508, & 601,607, & 701,707, & 801,802,807,808, & 901,902,908,909, & 1001,1002,1009,1010, & 1101,1102,1110,1111, & 1201,1202,1211,1212/ C DATA L / 1HL,24, & 101,102, & 201,202, & 301,302, & 401,402, & 501,502, & 601,602, & 701,702, & 801,802, & 901,902, & 1001,1002, & 1101,1112, & 1201,1212/ C DATA M / 1HM,56, & 101,102,111,112, & 201,203,210,212, & 301,304,309,312, & 401,402,404,405,408,409,411,412, & 501,502,505,508,511,512, & 601,602,606,607,611,612, & 701,702,711,712, & 801,802,811,812, & 901,902,911,912, &AX 1001,1002,1011,1012, & 1101,1102,1111,1112, & 1201,1202,1211,1212/ C DATA N / 1HN,58, & 101,102,111,112, & 201,202,211,212, & 301,303,311,312, & 401,404,411,412, & 501,502,504,505,511,512, & 601,602,605,606,611,612, & 701,702,706,707,711,712, & 801,802,807,808,811,812, & 901,902,908,909,911,912, & 1001,1002,1009,1012, & 1101,1102,1110,1112, & 1201,1202,1211,1212/ C DATA O / 1HO,40, & 101,112, & 201,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 701,702,711,712, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1112, & 1201,1212/ C DATA P / 1HP,30, & 101,111, & 201,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,612, & 701,712, & 801,802, & 901,902, & 1001,1002, & 1101,1102, & 1201,1202/ C DATA Q / 1HQ,46, & 102,111, & 201,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 701,702,711,712, & 801,802,807,808,811,812, & 901,902,908,909,911,912, & 1001,1002,1009,1012, & 1101,1111, & 1202,1209,1210,1212/ C DATA R / 1HR,40, & 101,111, & 201,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,612, & 701X,711, & 801,802,807,808, & 901,902,908,909, & 1001,1002,1009,1010, & 1101,1102,1110,1111, & 1201,1202,1211,1212/ C DATA S / 1HS,28, & 103,110, & 202,211, & 301,302,311,312, & 401,402, & 501,502, & 602,610, & 703,711, & 811,812, & 911,912, & 1001,1002,1011,1012, & 1102,1111, & 1203,1210/ C DATA T / 1HT, 24, & 101,112, & 201,212, & 306,307, & 406,407, & 506,507, & 606,607, & 706,707, & 806,807, & 906,907, & 1006,1007, & 1106,1107, & 1206,1207/ C DATA U / 1HU,44, & 101,102,111,112, & 201,202,211,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 701,702,711,712, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA V / 1HV,44, & 101,102,111,112, & 201,202,211,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 702,703,710,711, & 802,803,810,811, & 904,905,908,909, & 1004,1005,1008,1009, & 1106,1107, & 1206,1207/ C DATA W / 1HW,56, & 101,102,111,112, & 201,202,211,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 701,702,706,707,711,712, & 2*($ 801,802,805,808,811,812, & 901,902,904,905,908,909,911,912, & 1001,1004,1009,1012, & 1101,1103,1110,1112, & 1201,1202,1211,1212/ C DATA X / 1HX,44, & 101,102,111,112, & 201,202,211,212, & 302,303,310,311, & 403,404,409,410, & 504,505,508,509, & 605,608, & 705,708, & 804,805,808,809, & 903,904,909,910, & 1002,1003,1010,1011, & 1101,1102,1111,1112, & 1201,1202,1211,1212/ C * DATA Y / 1HY,34, & 101,102,111,112, & 201,202,211,212, & 302,303,310,311, & 403,404,409,410, & 504,505,508,509, & 605,608, & 706,707, & 806,807, & 906,907, & 1006,1007, & 1106,1107, & 1206,1207/ C DATA Z / 1HZ,24, & 101,112, & 201,212, & 310,311, & 409,410, & 508,509, & 607,608, & 706,707, & 805,806, & 904,905, & 1003,1004, & 1102,1112, & 1201,1212/ C DATA D1 / 1H1,24, & 106,107, & 205,207, & 304,307, & 406,407, & 506,507, & 606,607, & 706,707, & 806,807, & 906,907, & 1006,1007, & 1102,1111, & 1202,1211/ C DATA D2 /1H2,26, & 102,111, & 201,212, & 301,302,311,312, & 411,412, & 511,512, & 610,611, & 708,709, & 806,807, & 904,905, & 1002,1003, & 1101,1112, & 1201,1212/ C DATA D3 / 1H3,28, & 102,111, & 201,212, & 301,302,311,312, & 411,412, & 511,512, & 608,611, & 708,711, & 811,812, & 911,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA D4 / 1H4,30, & 107,109, & 206,209, & 305,306,308,309, & 404,405,408,409, & x503,504,508,509, & 602,612, & 701,712, & 808,809, & 908,909, & 1008,1009, & 1108,1109, & 1208,1209/ C DATA D5 / 1H5,24, & 101,112, & 201,212, & 301,302, & 401,402, & 501,502, & 601,609, & 701,710, & 810,811, & 911,912, & 1011,1012, & 1101,1112, & 1201,1211/ C DATA D6 / 1H6,32, & 102,111, & 201,212, & 301,302,311,312, & 401,402, & 501,502, & 601,611, & 701,712, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA D7 / 1H7,26, & 101,112, & 201,211, & 301,302,309,310, & 408,409, & 507,508, & 606,607, & 706,707, & 806,807, & 906,907, & 1006,1007, & 1106,1107, & 1206,1207/ C DATA D8 / 1H8,36, & 102,111, & 201,212, & 301,302,311,312, & 401,402,411,412, & 502,503,510,511, & 603,610, & 703,710, & 802,803,810,811, & 901,902,911,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA D9 / 1H9,32, & 102,111, & 201,212, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,612, & 701,712, & 5 811,812, & 911,912, & 1001,1002,1011,1012, & 1101,1112, & 1202,1211/ C DATA D0 / 1H0,40, & 103,110, & 202,211, & 301,302,311,312, & 401,402,411,412, & 501,502,511,512, & 601,602,611,612, & 701,702,711,712, & 801,802,811,812, & 901,902,911,912, & 1001,1002,1011,1012, & 1102,1111, & 1203,1210/ C DATA SU / 1H^,34, & 206,207, & 305,308, & 404,409, & 503,504,506,507,509,510, & 602,603,606,607,610,611, & 701,702,706,707,711,712, & 806,807, & 906,907, & 1006,1007, & 1106,1107, & 1206,1207/ C DATA SD / 1H$,36, & 106,107, & 203,210, & 302,311, & 401,402,406,407,411,412, & 501,502,506,507, & 602,610, & 703,712, & 806,807,811,812, & 901,902,906,907,911,912, & 1002,1011, & 1103,1110, & 1206,1207/ C DATA SP / 1H#,40, & 103,104,109,110, & 203,204,209,210, & 303,304,309,310, & 401,412, & 501,512, & 603,604,609,610, & 703,704,709,710, & 801,812, & 901,912, & 1003,1004,1009,1010, & 1103,1104,1109,1110, & 1203,1204,1209,1210/ C DATA BL / 1H],24, & 107,112, & 207,212, & 311,312, & 411,412, & 511,512, & 611,612, & 711,712, ( & 811,812, & 911,912, & 1011,1012, & 1107,1112, & 1207,1212/ C DATA BR / 1H[,24, & 101,106, & 201,206, & 301,302, & 401,402, & 501,502, & 601,602, & 701,702, & 801,802, & 901,902, & 1001,1002, & 1101,1106, & 1201,1206/ C DATA SC / 1H:,8, & 305,307, & 405,407, & 905,907, & 1005,1007/ C DATA SQ / 1H",16, & 103,104,109,110, & 203,204,209,210, & 303,304,309,310, & 403,404,409,410/ C DATA LS / 1H\,22, & 201,202, & 302,303, & 403,404, & 504,505, & 605,606, & 706,707, & 807,808, & 908,909, & 1009,1010, & 1110,1111, & 1211,1212/ C C DATA RS / 1H/,22, & 211,212, & 310,311, & 409,410, & 508,509, & 607,608, & 706,707, & 805,806, & 904,905, & 1003,1004, & 1102,1103, & 1201,1202/ C DATA SPACE / 1H ,0 / C C DATA PL / 1H+,16, & 306,307, & 406,407, & 506,507, & 602,611, & 702,711, & 806,807, & 906,907, & 1006,1007/ C DATA EX / 1H!,20, & 106,107, & 206,207, & 306,307, & 406,407, & 506,507, & 606,607, & 706,707,  & 806,807, & 1106,1107, & 1206,1207/ C DATA QQ / 1H',8, & 106,107, & 206,207, & 306,307, & 406,407/ C DATA LP / 1H(,24, & 104,105, & 204,205, & 303,304, & 402,403, & 501,502, & 601,602, & 701,702, & 801,802, & 902,903, & 1003,1004, & 1104,1105, & 1204,1205/ C DATA RP / 1H),24, & 108,109, & 208,209, & 309,310, & 410,411, & 511,512, & 611,612, & 711,712, & 811,812, & 910,911, & 1009,1010, & 1108,1109, & 1208,1209/ C DATA ST / 1H*,44, & 201,202,206,207,211,212, & 302,303,306,307,310,311, & 403,404,406,407,409,410, & 504,509, & 601,612, & 701,712, & 804,809, & 903,904,906,907,909,910, & 1002,1003,1006,1007,1010,1011, & 1101,1102,1106,1107,1111,1112/ C DATA QM / 1H?,24, & 103,110, & 202,212, & 301,302,311,312, & 411,412, & 510,511, & 609,610, & 708,709, & 807,808, & 906,807, & 1106,1107, & 1206,1207/ C DATA PD / 1H.,4, & 1105,1107, & 1205,1207/ C DATA MI / 1H-,4, & 602,611, & 702,711/ C DATA XX / 36440B,8, & 402,411, & 502,511, & 802,811, & 902,911/ C DATA PC / 1H)$"%,46, & 101,106,111,112, & 201,201,206,206,210,211, & 301,301,306,306,309,310, & 401,406,408,409, & 507,508, & 606,607, & 705,706, & 804,805,807,812, & 903,904,907,907,912,912, & 1002,1003,1007,1007,1012,1012, & 1101,1102,1107,1112/ C C C POINTR=1 OK=1 DO 99 JJ=1,12 DO 99 KK=1,12 99 MATRIX(JJ,KK)=1H C 1 IF (TABLE(POINTR).EQ.0) GOTO 999 IF (TABLE(POINTR).EQ.LETTER) GOTO 100 POINTR=TABLE(POINTR+1)+POINTR+2 GOTO 1 C 100 II=TABLE(POINTR+1) IF (II.EQ.0) RETURN DO 101 MM=1,II,2 INDEX1=TABLE(POINTR+MM+1)/100 INDEX2=TABLE(POINTR+MM+2)/100 IV1=TABLE(POINTR+MM+1)-INDEX1*100 IV2=TABLE(POINTR+MM+2)-INDEX2*100 C DO 102 KK=IV1,IV2 102 MATRIX(INDEX1,KK)=PATTRN 101 CONTINUE RETURN C 999 OK=0 RETURN END END$ |$FTN4,L PROGRAM TEST C C CHARACTER GENERATOR TEST PROGRAM C INTEGER MAT1(12,12),MAT2(12,12),MAT3(12,12),MAT4(12,12) INTEGER CHARS(56) C DATA CHARS /1HA,1HB,1HC,1HE,1HF,1HG,1HH,1HI,1HJ,1HK, & 1HL,1HM,1HN,1HO,1HP,1HQ,1HR,1HS,1HT,1HU, & 1HV,1HW,1HX,1HY,1HZ,1H0,1H1,1H2,1H3,1H4, & 1H5,1H6,1H7,1H8,1H9,1H$,1H#,1H:,1H",1H/, & 1H+,1H!,1H',1H(,1H),1H*,1H?,1H.,1H-,1H%, & 1H\,1H^,1H[,1H],1HD,1H / C C DO 10 J=1,14 I=(J-1)*4 CALL CHAR (CHARS(I+1),MAT1,IOK,CHARS(I+1)) CALL CHAR (CHARS(I+2),MAT2,IOK,CHARS(I+2)) CALL CHAR (CHARS(I+3),MAT3,IOK,CHARS(I+3)) CALL CHAR (CHARS(I+4),MAT4,IOK,CHARS(I+4)) C DO 11 M=1,12 11 WRITE (6,12) (MAT1(M,K),K=1,12),(MAT2(M,K),K=1,12), & (MAT3(M,K),K=1,12),(MAT4(M,K),K=1,12) WRITE (6,13) 10 CONTINUE C C 12 FORMAT (X,4(12A1,5X)) 13 FORMAT (/) END END$   22682-18034 1640 SC 0322 RTE MACRO PROCESSOR              H0103 mFTN4,L PROGRAM MACRO C******************************************************************** C C VARIABLE USAGE: C C I USED AS TEMPORARY INDEX THROUGHOUT PROGRAM. C I1-I9 TEMPORARY INDEXES. NUMBER = 'DEPTH' OF CODE. C IBA INDEX TO BEGINNNING OF MACRO ARGUMENT. C IBLK INDEX TO MACRO-LIBRARY ENTRY. C IBP BACK-POINTER IN TEMLATE SEARCH ROUTINE. C IC INDEX TO CURRENT CHARACTER IN JBUFF. C IC1 FIRST COLUMN OF AN EXPESSION TO BE EVALUATED. C IC2 SECOND COLUMN OF AN EXPRESSION TO BE EVALUATED. C ICOL LAST COLUMN OF INTEGER EVALUATED BY IINT. C ICOM PROTECTED FIELD KEYWORD OR COMMENT. C ICOMB BEGINNING COLUMN NUMBER OF COMMENT. C ICOML LENGTH OF COMMENT. C ICRN CURRENT SOURCE RECORD NUMBER, USED BY ERROR. C ICVAL CURRENT OPERAND OR VALUE IN IVAL. C IDC DELIMETER CHARACTER. (USUALLY %) C IEA INDEX TO END OF MACRO ARGUMENT. C IERR ERROR TYPE INDICATOR. C IEVAL EXPRESSION EVALUATION RETURN POINTER. C IEXP1 VALUE OF NUMERIC EXPRESSION ONE. C IEXP2 VALUE OF NUMERIC EXPRESSION TWO. C IFB INDEX TO BEGINNING OF MACRO SEARCH FIELD. C IFE INDEX TO END OF MACRO SEARCH FIELD. C IG INDEX TO 'GOTO' TABLE IN TEMPLATE SEARCH ROUTINE. C ILC TEMPORARY 'LAST CHARACTER IN STRING' POINTER. C IMIS INDEX TO CURRENT MIS LOCATION. C INVL INVOCATION LEVEL (MACRO NESTING DEPTH). C IOPER INDEX TO JOPER (OPERAND STACK) IN IVAL. C IPACK PACKING FACTOR USED DURING PURGE TO UPDATE JGOTO. C IPREN PARENTHESIS COUNT IN IVAL. C IPRG MACPRG FLAG - IF SET, PURGE IS IN PROGRESS. C IS INDEX TO STATE TABLE IN TEMPLATE SEARCH ROUTINE. C ISC INDEX TO STARTING CHARACTER FOR TEMPLATE SEARCH. C ISN SIGN OF INTEGER EVALUATED IN IINT C ISTAT STATE OF IVAL PARSING ALGORITHM. C IUCNT OPERATOR COUNT FOR UNARY + AND - IN IVAL. C IUNOP CURRENT UNARY OPERATOR (IF ANY) IN IVAL. C  IVALU INDEX TO JVALU (VALUE STACK) IN IVAL. C JBUFF SOURCE RECORD INPUT BUFFER. C JDCB DCB FOR MACRO FILE (RTE-FMGR REQUIREMENT). C JFILE 'EQUIVALENCED' BUFFER FOR INITIALIZING JSTAT & JGOTO. C JGLOB STORAGE FOR 9 GLOBAL VARIABLES (%G1 - %G9). C JGOTO 'GOTO' TABLE IN TEMPLATE SEARCH ROUTINE. C JOPER PUSHDOWN OPERATOR STACK IN IVAL. C JOTBL OPERATOR PRECEDENCE TABLE IN IVAL. C JSTAT STATE TABLE IN TEMPLATE SEARCH ROUTINE. C JVALU PUSHDOWN VALUE STACK IN IVAL. C KBUFF 'CURRENT MACRO' BUFFER (SAVES MACRO INVOCATION). C KG CURRENT TOP OF 'GOTO' TABLE IN TEMPLATE SEARCH. C KS CURRENT TOP OF STATE TABLE IN TEMPLATE SEARCH. C L1 LENGTH OF ARGUMENT REFERENCE (IE, %An). C L2 LENGTH OF ARGUMENT IN MIS. C LAR LAST AVAILABLE RECORD IN MACRO LIBRARY FILE. C LC 'LAST CHARACTER IN STRING' POINTER. C LDU LOGICAL DUMP UNIT (USED FOR MACOPT,DUMP COMMANDS). C LF LIMIT OF JFILE FOR COPYING PURPOSES. C LINVL LIMIT OF INVOCATION LEVEL (MAXIMUM MACRO NEST DEPTH). C LLU LOGICAL LOG UNIT. C LMIS LIMIT OF MIS STORAGE. C LSU LOGICAL SOURCE UNIT. C LOU LOGICAL OUTPUT UNIT. C LG LIMIT OF 'GOTO' TABLE IN TEMPLATE SEARCH ROUTINE. C LMR 'LAST MACRO RECORD' FLAG, USED BY SUBROUTINE GET. C LS LIMIT OF STATE TABLE IN TEMPLATE SEARCH ROUTINE. C MACS MAC-STATEMENT SEARCH ARRAY. C MIS MACRO INVOCATTION STORAGE: LOCAL VARIABLES, ARGUMENTS. C N MACSKP LINE SKIP COUNT. C NAR NEXT AVAILABLE RECORD IN MACRO LIBRARY FILE. C NEXT HOLDS 'NEXT STATE POINTER' FOR MACPRG CODE. C NIBA INDEX TO BEGINNING OF NEXT MACRO ARGUMENT. C C******************************************************************** DIMENSION JSTAT(100),JGOTO(500),MACS(25),KBUFF(121) COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU,ICOL,ICOM(20),ICOMB,ICOML,IFB,IFE ` EQUIVALENCE (NAR,JFILE(1)),(LAR,JFILE(2)),(KS,JFILE(3)) EQUIVALENCE (KG,JFILE(4)) EQUIVALENCE (JSTAT(1),JFILE(11)),(JGOTO(1),JFILE(111)) DATA MACS/1HD,1HE,1HF,1HP,1HR,1HG,1HS,1HE,1HT,1HS,1HK,1HP, 11HE,1HN,1HD,1HL,1HS,1HT,1HO,1HP,1HT,1HD,1HM,1HP/, 2KBUFF/2HMA,2HCL,2HIB/ C--------------------------------------------------------------------- C**** INITIALIZE PROGRAM FLAGS AND POINTERS: C--------------------------------------------------------------------- C CALL RMPAR(JBUFF(1)) LSU=JBUFF(1) IF (LSU .LE. 0) LSU=1 LOU=JBUFF(2) IF (LOU .LE. 0) LOU=6 LLU=JBUFF(3) IF (LLU .LE. 0) LLU=1 IPRG=0 ICOM(1)=1H ICRN=0 IDC=1H% IEVAL=1 IFB=1 IFE=80 LS=100 LG=500 LC=80 INVL=0 LMR=0 LINVL=3 LMIS=50 LF=621 C C**** OPEN MACRO FILE, INITIALIZE NAR, LAR, KS, KG, JSTAT, JGOTO: CALL OPEN(JDCB(1),IERR,KBUFF(1),2) IF (IERR .LT. 0) 5,10 5 CALL ERROR(IERR) GO TO 5000 10 I1=1 DO 20 I=1,LF,120 CALL READF(JDCB(1),IERR,JFILE(I),120,I2,I1) IF (IERR .LT. 0) 5,20 20 I1=I1+1 C--------------------------------------------------------------------- C**** GET ONE SOURCE RECORD: C--------------------------------------------------------------------- 100 CALL GET(LSU) C--------------------------------------------------------------------- C**** IF 'MAC' STATEMENT, PROCESS APPROPRIATELY, ELSE GO SEARCH RECORD C**** FOR MACRO INVOCATION: C--------------------------------------------------------------------- 200 IF (JBUFF(1) .NE. 1HM) 250,201 201 IF (JBUFF(2) .NE. 1HA) 250,202 202 IF (JBUFF(3) .NE. 1HC) 250,203 203 I=1 DO 205 I1=1,22,3 IF (JBUFF(4) .NE. MACS(I1) .OR. JBUFF(5) .NE. MACS(I1+1) .OR. 1JBUFF(6) .NE. MACS(I1+2)) 205,206 205 I=I+1 GO TO 250 206 GO TO (1000,2000,3000,4000,5000,6000,7000,8000), I C**** SKIP MACRO SEARCH IF RECORD IS COMMENT: 250 IF (ICOM(1) .EQ. 1H ) 300,260 260 I1=1 I2=ICOMB+ICOML-1 DO 270 I=ICOMB,I2 IF (JBUFF(I) .EQ. ICOM(I1)) 270,300 270 I1=I1+1 GO TO 600 C--------------------------------------------------------------------- C**** USE STRING-MATCHING ALGORITHM FROM CACM VOLUMN 18, #6 TO C**** FIND THE FIRST OCCURANCE OF A MACRO TEMPLATE IN THE SOURCE C**** BUFFER (JBUFF). C--------------------------------------------------------------------- C**** INITIALIZE STARTING CHARACTER (ISC): 300 ISC=IFB C C**** INITIALIZE CURRENT CHARACTER POINTER (IC), 'GOTO' TABLE POINTER C**** (IG), STATE TABLE POINTER (IS): 310 IC=ISC IG=1 IS=1 C C**** SEARCH STRING FOR TEMPLATES BY STEPPING THRU 'GOTO' TABLE UNTIL C**** A FULL TEMPLATE MATCH IS FOUND, OR THE LAST CHARACTER IS TESTED. 320 IF (JGOTO(IG) .EQ. JBUFF(IC) .OR. JGOTO(IG) .EQ. 0) 330,325 325 IG=IG+2 IF (IG .LE. KG) 320,370 330 IF (JGOTO(IG+1) .LT. 0) 340,350 C C**** MATCH FOUND! GET MACRO FILE RECORD POINTER AND EXIT SEARCH: 340 IBLK=JGOTO(IG+1) IF (IPRG .EQ. 0) 500,2100 350 IS=JGOTO(IG+1) IF (IS .EQ. 0) 360,352 352 IG=JSTAT(IS) IC=IC+1 IF (IS .EQ. 1) 354,356 354 ISC=ISC+1 356 IF (IC .LT. LC) 320,360 C C**** SEARCH FAILED FOR CURRENT STARTING CHARACTER. BUMP STARTING C**** CHARACTER. IF ALL CHARACTERS IN JBUFF TESTED FOR TEMPLATE MATCH, C**** FALL THRU WITH MACRO FILE POINTER = 0. 360 ISC=ISC+1 IF (IPRG .EQ. 0) 365,2100 365 IF (ISC .LE. IFE) 310,370 370 IBLK=0 500 IF (IBLK .LT. 0) 9000,510 510 CONTINUE IF (IPRG .EQ. 0) 600,2100 C--------------------------------------------------------------------- C**** SCAN LINE FOR DELIMETER CHARACTERS - IF FOUND, PROCESS C**** %%,%Gn, %Ln, AND %An APPROPRIATELY. C--------------------------------------------------------------------- 600 I=IFB 605 IF (JBUFF(I) .EQ. IDC) 610,800 610 IF (JBUFF(I+1) .EQ. IDC) 620,640 C**** ByPROCESS %%: 620 DO 630 I1=I,LC 630 JBUFF(I1)=JBUFF(I1+1) GO TO 800 640 IF (JBUFF(I+1) .EQ. 1HG) 650,680 C**** PROCESS %Gn: 650 JBUFF(I+1)=1H I1=IINT(I+2) JBUFF(I+2)=1H IF (I1 .LE. 0 .OR. I1 .GT. 9) 660,670 660 IERR=7 CALL ERROR(IERR) CALL BNASC(I,0) GO TO 800 670 CALL BNASC(I,JGLOB(I1)) GO TO 800 680 IF (JBUFF(I+1) .EQ. 1HL) 690,750 C**** PROCESS %Ln: 690 IF (INVL .LE. 0) 700,710 700 IERR=8 CALL ERROR(IERR) I1=0 GO TO 740 710 I1=IINT(I+2) IF (I1 .LE. 0 .OR. I1 .GT. 6) 720,730 720 IERR=7 CALL ERROR(IERR) I1=0 GO TO 740 730 I1=MIS(INVL,I1+1) 740 JBUFF(I+1)=1H JBUFF(I+2)=1H CALL BNASC(I,I1) GO TO 800 750 IF (JBUFF(I+1) .EQ. 1HA) 760,755 755 IERR=15 757 CALL ERROR(IERR) GO TO 800 C**** PROCESS %An: C C**** COMPUTE LENGTH OF INVOCATION, LENGTH OF PARAMETER: 760 IF (INVL .LE. 0) 765,770 765 IERR=13 GO TO 757 770 I1=IINT(I+2) IF (I1 .LE. 0 .OR. I1 .GT. 99) 755,775 775 L1=I1/10 L1=3+L1 I2=1 DO 780 I3=9,LMIS IF (MIS(INVL,I3) .EQ. IDC) 777,779 777 I2=I2+1 779 IF (I1 .EQ. I2) 782,780 780 CONTINUE 781 IERR=16 GO TO 757 782 L2=0 DO 784 I4=I3+1,LMIS IF (MIS(INVL,I4) .EQ. IDC) 785,784 784 L2=L2+1 GO TO 781 785 IF (L1 .LE. L2) 787,789 C**** EXPAND LINE FOR LARGE PARAMETER. 787 I5=L2-L1 DO 788 I4=LC,I,-1 IF (I4-I5 .LT. 1) 795,788 788 JBUFF(I4) = JBUFF(I4-I5) GO TO 795 C**** COMPRESS LINE FOR SMALL PARAMETER. 789 I5=L1-L2 DO 794 I4=I+1,LC IF (I4+I5 .GT. LC) 792,790 790 JBUFF(I4) = JBUFF(I4+I5) GO TO 794 792 JBUFF(I4) = 1H 794 CONTINUE C**** COPY PARAMETER TO LINE. 795 I5=I3+L2 I1=I DO 797 I2=I3+1,I5 JBUFF(I1)=MIS(INVL,I2) 797 I1=I1+1 800 I=I+1 IF (I .GT. IFE) 805,605 805 GO TO (990,3460,4055),IEVAL 5C--------------------------------------------------------------------- C**** OUTPUT 1 RECORD: C--------------------------------------------------------------------- 990 WRITE (LOU,101) (JBUFF(I),I=1,LC) 101 FORMAT (120A1) GO TO 100 C--------------------------------------------------------------------- C**** MACDEF C--------------------------------------------------------------------- 1000 CALL GET(LSU) C C**** ADD THE TEMPLATE IN JBUFF TO THE MACRO LIST BY UPDATING THE C**** STATE TABLE AND THE GOTO TABLE (JSTAT, JGOTO): C C**** FIND THE LAST CHARACTER IN THE TEMPLATE: DO 1010 I1=LC,2,-1 IF (JBUFF(I1) .EQ. IDC) 1020,1010 1010 CONTINUE IERR=2 CALL ERROR(IERR) GO TO 1300 1020 ILC=I1-1 C C**** INITIALIZE STATE TABLE INDEX (IS), GOTO TABLE INDEX (IG), TABLE C**** BACK-POINTER (IBP): IS=1 IG=1 IBP=0 C C**** THREAD THRU GOTO TABLE UNTIL NEW TEMPLATE DIVERGES FROM EXISTING C**** ENTRIES, THEN GO TO 1100 TO ADD A NEW BRANCH: IC=1 1030 IF (JGOTO(IG) .NE. 0) 1040,1100 1040 IF (JGOTO(IG) .NE. JBUFF(IC) .AND. JGOTO(IG) .NE. 0 ) 1050,1060 1050 IG=IG+2 GO TO 1030 1060 IS=JGOTO(IG+1) IF (IS .LE. 0) 1070,1080 1070 IBP=IS GO TO 1150 1080 IG=JSTAT(IS) IC=IC+1 IF (IC .LE. ILC) 1040,1090 1090 IERR=1 CALL ERROR(IERR) GO TO 1300 C C**** TEMPLATE DOES NOT MATCH EXISTING ENTRIES. ADD CURRENT CHARACTER C**** TO THE GOTO TABLE AND STATE TABLE. LOOP THRU ALL CHARACTERS: 1100 IF (JBUFF(IC) .NE. IDC) 1110,1200 1110 IF (KG .GE. LG) 1120,1130 1120 IERR=9 CALL ERROR(IERR) GO TO 1300 C C**** ADD A NEW EXIT FROM THE CURRENT STATE FOR THE CURRENT CHARACTER: 1130 KG=KG+2 C**** (UPDATE POINTERS IN STATE TABLE) IF (IS .GE. KS) 1137,1132 1132 DO 1135 I1=IS+1,KS 1135 JSTAT(I1)=JSTAT(I1)+2 1137 DO 1140 I1=KG,IG+2,-1 1140 JGOTO(I1)=JGOTO(I1-2) 1150 JGOTO(IG)=JBUFF(IC) IF (IC .EQ. ILC) 1155,1160 1155 JGOTO(IG/g+1)=-1*NAR I2=NAR+1 GO TO 1400 1160 KS=KS+1 JGOTO(IG+1)=KS IF (KS .EQ. LS) 1165,1170 1165 IERR=9 CALL ERROR(IERR) GO TO 1300 C C**** ADD AN 'ELSE' EXIT FROM THE NEW STATE: 1170 JSTAT(KS)=KG IG=KG KG=KG+2 IS=KS IF (KG .GE. LG) 1120,1180 1180 JGOTO(IG)=0 JGOTO(IG+1)=IBP 1190 IC=IC+1 GO TO 1100 C C**** CURRENT CHARACTER = IDC. POINT 'ELSE' EXIT OF CURRENT STATE TO C**** A NEW STATE. SET UP THE 'ELSE' EXIT OF THE NEW STATE TO LOOP. 1200 IF (JBUFF(IC+1) .EQ. IDC) 1240,1205 1205 IF (JGOTO(IG) .NE. 0) 1210,1220 1210 IG=IG+2 GO TO 1200 1220 I1=IBP IBP=KS+1 IF (JGOTO(IG+1) .NE.I1) 1230,1160 1230 IS=JGOTO(IG+1) IC=IC+1 IG=JSTAT(IS) GO TO 1130 1240 IC=IC+1 GO TO 1110 1300 CONTINUE GO TO 5100 C C**** COPY MACRO DEFINITION TO MACRO LIBRARY FILE: 1400 IF (NAR .GE. LAR) 1410,1415 1410 IERR=9 CALL ERROR(IERR) GO TO 1300 1415 CALL WRITF(JDCB(1),IERR,JBUFF(1),120,NAR) NAR=NAR+1 IF (NAR .GT. I2) 1420,1450 C C**** EXIT IF THIS IS LAST RECORD IN DEFINITION, ELSE COPY NEXT RECORD: 1420 DO 1440 I1=LC,2,-1 IF (JBUFF(I1) .EQ. 1H ) 1440,1425 1425 IF (JBUFF(I1) .EQ. IDC) 1430,1450 1430 IF (JBUFF(I1-1) .EQ. IDC) 1450,1500 1440 CONTINUE 1450 CALL GET(LSU) GO TO 1400 C C**** COPY UPDATED JSTAT AND JGOTO TABLES TO MACRO LIBRARY: 1500 I1=1 DO 1510 I2=1,LF,120 CALL WRITF(JDCB(1),IERR,JFILE(I2),120,I1) 1510 I1=I1+1 GO TO 100 C--------------------------------------------------------------------- C**** MACPRG C--------------------------------------------------------------------- 2000 IF (INVL .GT. 0) 2015,2005 2005 CALL GET(LSU) C**** SCAN FOR IDC: DO 2010 I=LC,1,-1 IF (JBUFF(I) .EQ. IDC) 2030,2010 2010 CONTINUE C**** IF NO IDC FOUND, GO REPORT ERROR: GO TO 2020 2015 CALL GET(0) 2020 IERR=3 GO TO 2840 C**** SEARCH FOR MACRO: 2030 IPRG=1 ISC=1 IBLK=1 GO TO 310 2100 IPRG=0 C**** IF NO MACRO FOUND, GO REPORT ERROR: IF (IBLK .GE. 0) 2120,2130 2120 IERR=10 GO TO 2840 2130 IC=IC+1 DO 2140 I1=IC,I IF (JBUFF(IC) .NE. 1H .AND. JBUFF(IC) .NE. IDC) 2120,2140 2140 CONTINUE NEXT=IBLK C**** FIND MACRO-FILE POINTER IN GOTO TABLE: 2150 DO 2160 I1=2,KG+1,2 IF (JGOTO(I1) .EQ. NEXT) 2170,2160 2160 CONTINUE 2170 IG=I1-1 C**** FIND STATE NUMBER IN STATE TABLE: I1=0 DO 2190 I2=1,KS IF (JSTAT(I2) .GT. I1 .AND. JSTAT(I2) .LE. IG) 2180,2190 2180 I1=JSTAT(I2) IS=I2 2190 CONTINUE C**** IF THERE IS ONLY ONE SIGNIFICANT ENTRY IN THE CURRENT STATE, C**** AND THE STATE IS NOT STATE 1: C**** 1) PACK THE GOTO TABLE BY 4 WORDS AND UPDATE KG: IF (I1 .EQ. IG .AND. (JGOTO(IG+2) .EQ. 0 .OR. JGOTO(IG) .EQ. 0) 1 .AND. IS .NE. 1) 2200,2300 2200 IPACK=4 IF (JGOTO(IG) .EQ. 0) IPACK=2 DO 2210 I1=IG,KG 2210 JGOTO(I1) = JGOTO(I1+IPACK) KG=KG-IPACK C**** 2) PACK STATE TABLE BY 1 WORD AND UPDATE KS: DO 2220 I1=IS,KS 2220 JSTAT(I1)=JSTAT(I1+1) KS=KS-1 C**** 3) UPDATE STATE POINTERS: DO 2240 I1=2,KG+1,2 IF (JGOTO(I1) .EQ. IS) 2225,2230 2225 JGOTO(I1)=NEXT 2230 IF (JGOTO(I1) .GT. IS) 2235,2240 2235 JGOTO(I1)=JGOTO(I1)-1 2240 CONTINUE DO 2260 I1=1,KS IF (JSTAT(I1) .GT. IG) 2250,2260 2250 JSTAT(I1)=JSTAT(I1)-IPACK 2260 CONTINUE C**** 4) GO PROCESS PREVIOUS STATE OF MACRO TEMPLATE: GO TO 2150 C**** MULTIPLE SIGNIFICANT ENTRIES IN TABLE- C**** PURGE ONLY ONE ENTRY BY PACKING GOTO TABLE 2 WORDS: 2300 DO 2310 I1=IG,KG 2310 JGOTO(I1)=JGOTO(I1+2) KG=KG-2 DO 2340 I1=1,KS IF (JSTAT(I1) .GT. IG) 2330,2340 2330 JSTAT(I1)=JSTAT(I1)-2 2340 CONTINUE C**** PACK LIBRARY: NEXT=-999 DO 2400 I=2,KG+1,2 IF (JGOTO(I) .LT. IBLK .AND. JGOTO(I) .GT. 1 NEXT) 2390,2400 82390 NEXT=JGOTO(I) 2400 CONTINUE IF (NEXT .EQ. -999) 2505,2405 2405 I4=IBLK*(-1) NEXT=NEXT*(-1) I3=NEXT-I4 NAR=NAR-I3 DO 2500 I=I4,NAR I1=0 2410 I5=I+I3 CALL READF(JDCB(1),IERR,JBUFF(1),120,I2,I5) IF (IERR .LT. 0) 2420,2430 2420 I1=I1+1 IF (I1 .LT. 2) 2410,2800 2430 CALL WRITF(JDCB(1),IERR,JBUFF(1),120,I) IF (IERR .LT. 0) 2440,2500 2440 I1=I1+1 IF (I1 .LT. 4) 2430,2800 2500 CONTINUE GO TO 2510 2505 NAR=IBLK * (-1) C**** UPDATE BLOCK POINTERS IN GOTO TABLE: 2510 DO 2540 I=2,KG+1,2 IF (JGOTO(I) .LT. IBLK) 2520,2540 2520 JGOTO(I)=JGOTO(I)+I3 2540 CONTINUE C**** UPDATE INDEX OF LIBRARY FILE: I1=1 DO 2600 I=1,LF,120 CALL WRITF(JDCB(1),IERR,JFILE(I),120,I1) IF (IERR .LT. 0) 2800,2600 2600 I1=I1+1 GO TO 100 2800 WRITE (LLU,2801) 2801 FORMAT (24H ** LIBRARY DESTROYED **) 2840 CALL ERROR(IERR) 2900 GO TO 100 C--------------------------------------------------------------------- C**** MACSET C--------------------------------------------------------------------- 3000 DO 3010 I=7,LC-4 IF (JBUFF(I) .EQ. IDC) 3030,3010 3010 CONTINUE 3020 IERR=4 3025 CALL ERROR(IERR) GO TO 100 3030 I3=I+1 C C**** PROCESS LOCAL OR GLOBAL VARIABLE ASSIGNMENT: C**** (FIND LIMITS OF EXPRESSION) 3400 DO 3410 I2=I3,LC IF (JBUFF(I2) .EQ. 1H=) 3430,3410 3410 CONTINUE GO TO 3020 3430 IC1=I2+1 DO 3440 IC2=LC,IC1,-1 IF (JBUFF(IC2) .EQ. 1H ) 3440,3450 3440 CONTINUE C**** EVALUATE EXPRESSION: 3450 IEVAL=2 I=IC1 C**** FIRST RESOLVE VARIABLE REFERENCES GO TO 605 3460 IEVAL=1 I=IVAL(IC1,IC2) I2=IINT(I3+1) IF (JBUFF(I3) .EQ. 1HG) 3500,3600 C**** ASSIGN EXPRESSION VALUE TO GLOBAL VARIABLE: 3500 IF (I2 .LE. 0 .OR. I2 .GT. 9) 3510,3520 3510 IERR=7 GO TO 3025 3520 JGLOB(I2) = I GO TO 100 3600 IF (JBUFF(I3) .EQ. 1HL) 3700,3800 C**** ASSIGN EXPLRESSION VALUE TO LOCAL VARIABLE: 3700 IF (I2 .LE. 0 .OR. I2 .GT. 6) 3510,3720 3720 IF (INVL .EQ. 0) 3730,3740 3730 IERR = 8 GO TO 3025 3740 I2=I2+1 MIS(INVL,I2)=I GO TO 100 3800 GO TO 3020 C--------------------------------------------------------------------- C**** MACSKP C--------------------------------------------------------------------- C**** FIND AND EVALUATE EXPRESSION 1: 4000 DO 4010 IC1=7,LC IF (JBUFF(IC1) .EQ. 1H() 4030,4010 4010 CONTINUE 4020 IERR=5 CALL ERROR(IERR) GO TO 100 4030 IC1=IC1+1 DO 4040 IC2=IC1+1,LC IF (JBUFF(IC2) .EQ. 1H.) 4050,4040 4040 CONTINUE GO TO 4020 4050 IC2=IC2-1 IEVAL=3 I=IC1 C**** RESOLVE VARIABLE REFERENCES GO TO 605 4055 IEVAL=1 IEXP1=IVAL(IC1,IC2) C**** FIND AND EVALUATE EXPRESSON 2: IC1=IC2+5 DO 4060 IC2=LC,IC1+1,-1 IF (JBUFF(IC2) .EQ. 1H) ) 4070,4060 4060 CONTINUE GO TO 4020 4070 I1=IC2+1 IC2=IC2-1 IEXP2=IVAL(IC1,IC2) C**** FIND LIMITS OF CONDITION AND MAKE SKIP DECISION: IC2=IC1-2 IC1=IC1-3 IF ((JBUFF(IC1) .EQ. 1HG .OR. JBUFF(IC1) .EQ. 1HN) .AND. 1 IEXP1 .GT. IEXP2) 4500,4100 4100 IF ((JBUFF(IC1) .EQ. 1HL .OR. JBUFF(IC1) .EQ. 1HN) .AND. 1 IEXP1 .LT. IEXP2) 4500,4110 4110 IF ((JBUFF(IC2) .EQ. 1HE .AND. JBUFF(IC1) .NE. 1HN) .AND. 1 IEXP1 .EQ. IEXP2 ) 4500,4120 4120 IF (JBUFF(IC2) .EQ. 1HQ .AND. IEXP1 .EQ. IEXP2) 4500,4900 C**** CONDITION IS TRUE - SKIP n LINES: 4500 DO 4510 IC1=I1,LC IF (JBUFF(IC1) .NE. 1H ) 4530,4510 4510 CONTINUE GO TO 4020 4530 N=IINT(IC1) IF (N .EQ. 0) 4020,4540 C**** PROCESS SKIP DIFFERENTLY FOR SOURCE OR MACRO STATEMENTS: 4540 IF (INVL .GT. 0) 4700,4600 C**** SOURCE SKIP: 4600 IF (N .GT. 0) 4610,4650 4610 DO 4620 I=1,N 4620 CALL GET(LSU) GO TO 4900 4650 N= -1 * N + 1 DO 4660 I=1,N 4660 BACKSPACE LSU GO TO 4900 C**** MACRO SKIP: 4700 IF (N .GT. 0) 4800,4710 4710 IF (MIS(INVL,1)-N .LE. MIS(INVL,8)) 4720,4020 4720 MIS(INVL,1)=MIS(INVL,1) - N GO TO 4900 4800 IBLK=MIS(INVL,1) - N IF (IBLK+NAR .LE. 0) 4020,4810 4810 DO 4830 I=2,KS,2 IF (JSTAT(I) .LT. MIS(INVL,8) .AND. IBLK .LE. JSTAT(I)) 4020,4830 4830 CONTINUE GO TO 4720 C**** EXIT MACSKP PROCESSING: 4900 GO TO 100 C--------------------------------------------------------------------- C**** MACEND C--------------------------------------------------------------------- 5000 WRITE (LLU,5010) (JBUFF(I),I=7,LC) 5010 FORMAT (1H ,120A1,/) 5100 CALL CLOSE(JDCB(1),IERR) WRITE (LLU,5001) 5001 FORMAT (10H END MACRO ) STOP C--------------------------------------------------------------------- C**** MACLST C--------------------------------------------------------------------- C**** COPY ALL MACRO DEFINITIONS FROM MACRO LIBRARY TO LOG UNIT: 6000 WRITE (LLU,6001) (JBUFF(I),I=1,80) 6001 FORMAT (1H1,80A1,/) I1=(LF/120)+2 IF (I1 .GE. NAR) 6010,6030 6010 WRITE (LLU,6020) 6020 FORMAT (15H LIBRARY EMPTY.) GO TO 100 6030 DO 6045 I2=I1,NAR-1 CALL READF(JDCB(1),IERR,JBUFF(1),120,I3,I2) WRITE (LLU,6050) (JBUFF(I3),I3=1,LC) 6050 FORMAT (1H ,120A1) DO 6038 I3=LC,2,-1 IF (JBUFF(I3) .EQ. 1H ) 6038,6036 6036 IF (JBUFF(I3) .EQ. IDC) 6040,6045 6038 CONTINUE GO TO 6045 6040 WRITE (LLU,6041) 6041 FORMAT (1H ) 6045 CONTINUE GO TO 100 C--------------------------------------------------------------------- C**** MACOPT C--------------------------------------------------------------------- 7000 IF (JBUFF(8) .EQ. 1HC) 7010,7100 C C**** PROCESS COM=com,n 7010 ICOML=1 7020 ICOM(ICOML)=JBUFF(ICOML+11) IF (ICOM(ICOML) .EQ. 1H .OR. ICOM(ICOML) .EQ. 1H,) 7040,7030 7030 ICOML=ICOML+1 IF (ICOML .GT. 20) 7050,7020 7040 I=ICOML + 12 ICOML=ICOML-1 ICOMB=IINT(I) IF (ICOMB .GE. 1 .OR. ICOMB .LE. LC) 100,7050 7050 DO 7058$5 I=1,20 7055 ICOM(I)=1H ICOMB=0 ICOML=0 GO TO 7230 7100 IF (JBUFF(8) .EQ. 1HF) 7210,7300 C C**** PROCESS FIELD=N,M: 7210 I1=IINT(14) DO 7220 I=14,LC IF (JBUFF(I) .EQ. 1H,) 7240,7220 7220 CONTINUE 7230 IERR=6 CALL ERROR(IERR) GO TO 100 7240 I2=IINT(I+1) IF (I1 .LT. 1 .OR. I1 .GE. I2 .OR. I2 .GT. LC) 7230,7250 7250 IFB=I1 IFE=I2 GO TO 100 7300 IF (JBUFF(8) .EQ. 1H%) 7310,7400 C C**** PROCESS %=n: 7310 IDC=JBUFF(10) GO TO 7900 7400 IF (JBUFF(8) .EQ. 1HR) 7410,7500 C C**** PROCESS RL=n: 7410 I = IINT(11) IF (I .LT. 7 .OR. I .GT. 120) 7800,7420 7420 LC=I GO TO 100 7500 CONTINUE 7800 IERR=6 CALL ERROR(IERR) 7900 GO TO 100 C--------------------------------------------------------------------- C**** MACDMP C--------------------------------------------------------------------- 8000 I=IINT(8) CALL DUMP(I,LLU) GO TO 100 C--------------------------------------------------------------------- C**** MACRO FOUND - PROCESS MACRO INVOCATION: C--------------------------------------------------------------------- 9000 IF (INVL .GE. LINVL) 9010,9020 9010 IERR=11 CALL ERROR(IERR) GO TO 5100 9020 INVL=INVL+1 MIS(INVL,1)=IBLK MIS(INVL,8)=IBLK C C**** CLEAR MIS: DO 9030 I=2,10 9030 MIS(INVL,I)=0 DO 9040 I=11,LMIS 9040 MIS(INVL,I) = 1H C C**** SAVE MACRO INVOCATION: DO 9100 I=1,LC 9100 KBUFF(I)=JBUFF(I) CALL GET(0) C C**** COPY ARUGUMENTS TO MIS: C C**** FIND 1ST ARGUMENT: IMIS=10 DO 9110 I=1,LC IF (JBUFF(I) .EQ. IDC) 9120,9110 9110 CONTINUE GO TO 9900 9120 IBA=ISC+I-1 9125 I2=LC-IBA DO 9160 I1=IBA,LC DO 9150 I3=1,I2 I4=I+I3 I5=I1+I3 IF (JBUFF(I4) .EQ. KBUFF(I5)) 9150,9130 9130 IF (JBUFF(I4) .EQ. IDC) 9140,9160 9140 NIBA=I5 IEA=I1 I=I4 GO TO 9170 9150 CONTINUE GOʫ TO 9900 9160 CONTINUE GO TO 9900 C C**** COPY ARGUMENT TO MIS, GO GET NEXT ARGUMENT. 9170 IF (LMIS-IMIS .LT. IEA-IBA+2) 9180,9200 9180 IERR=12 CALL ERROR(IERR) GO TO 9800 9200 DO 9210 I1=IBA,IEA MIS(INVL,IMIS)=KBUFF(I1) 9210 IMIS=IMIS+1 MIS(INVL,IMIS)=IDC IMIS=IMIS+1 IBA=NIBA GO TO 9125 9800 CONTINUE GO TO 5100 9900 CONTINUE GO TO 100 9999 END SUBROUTINE ERROR(I) C--------------------------------------------------------------------- C**** ERROR REPORTS MACRO PROCESSING ERRORS TO THE LOG UNIT. C--------------------------------------------------------------------- COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU WRITE (LLU,1) I,ICRN 1 FORMAT (13H MACRO ERROR ,I7,19H IN SOURCE RECORD #,I7) RETURN END SUBROUTINE GET(LSU) C--------------------------------------------------------------------- C**** GETS THE NEXT INPUT RECORD, EITHER FROM THE SOURCE UNIT OR THE C**** MACRO LIBRARY, DEPENDING ON THE INVOCATION FLAG, AND RETURNS IT C**** IN JBUFF: C--------------------------------------------------------------------- COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU IF (LMR .NE. 0) 10,50 10 INVL=INVL-1 LMR=0 50 IF (INVL .LE. 0) 100,200 100 READ (LSU,101) (JBUFF(I),I=1,LC) 101 FORMAT (120A1) ICRN=ICRN+1 RETURN 200 I= -1 * MIS(INVL,1) IERR=0 CALL READF(JDCB(1),IERR,JBUFF(1),LC,I1,I) IF (IERR .LT. 0) 500,205 205 MIS(INVL,1)=MIS(INVL,1)-1 C C**** IF THIS IS LAST RECORD IN CURRENT MACRO, DECREMENT MACRO C**** INVOCATION LEVEL. DO 300 I=LC,2,-1 IF (JBUFF(I) .EQ. 1H ) 300,210 210 IF (JBUFF(I) .EQ. IDC) 220,400 220 IF (JBUFF(I-1) .EQ. IDC) 400,310 300 CONTINUE GO TO 400 310 IF (LSU .GT. 0) 320,400 320 LMR=1 JBUFF(I)=1H 400 RETURN 500 VCALL ERROR(IERR) DO 510 I=1,LC 510 JBUFF(I)=1H CALL DUMP(2,LLU) RETURN END SUBROUTINE DUMP(I,LLU) C--------------------------------------------------------------------- C**** DUMP IS A USER CALLABLE ROUTINE WHICH DUMPS MACRO TABLES. C**** IT MAY BE INVOKED BY THE STATEMENT: C**** MACOPT,DUMP=n, WHERE 'n' IS THE DUMP TYPE DESIRED. C--------------------------------------------------------------------- COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU2,ICOL,ICOM(20),ICOMB,ICOML,IFB,IFE IF (I .LE. 0) 8900,1000 1000 GO TO (8000,8100,8200),I C C**** DUMP KS, KG, NAR, LAR, JSTAT, JGOTO: 8000 WRITE (LLU,8001) (JFILE(I1),I1=1,4) 8001 FORMAT (6H1 NAR=,I6,5H LAR=,I6,4H KS=,I6,4H KG=,I6,//, 115H STATE: EXITS:,/) DO 8006 I1=1,JFILE(3) I4=I1+10 I2=JFILE(I4) + 110 I3=JFILE(I4) + 110 8002 IF (JFILE(I3) .EQ. 0) 8004,8003 8003 I3=I3+2 GO TO 8002 8004 I3=I3+1 WRITE (LLU,8005) I1,(JFILE(I4),I4=I2,I3) 8005 FORMAT(I4,5H, ,8(X,A1,I6),/,9X,8(X,A1,I6),/,9X,8(X,A1,I6),/) 8006 CONTINUE RETURN C C**** DUMP INVL, LINVL, MIS: 8100 WRITE (LLU,8101) INVL,LINVL 8101 FORMAT (7H1 INVL=,I3,7H LINVL=,I3,//,6H MIS:,/) IF (INVL .LE. 0) 8130,8110 8110 DO 8120 I=1,INVL 8120 WRITE (LLU,8121) (MIS(I,I1),I1=1,50) 8121 FORMAT (9I7,//,2H ,41A1,//) 8130 RETURN C C**** DUMP MACRO OPTIONS: 8200 WRITE (LLU,8201) (ICOM(I),I=1,20),ICOMB,ICOML 8201 FORMAT (15H1MACRO OPTIONS:,//,15H COM KEYWORD= ,20A1, 1/,15H FIRST COLUMN= ,I4,11H LENGTH= ,I4,/) WRITE (LLU,8211) IDC,LC,IFB,IFE 8211 FORMAT (6H IDC= ,A1,//,16H RECORD LENGTH= ,I4,//,5H FIEL, 110HD LIMITS= ,I4,4H TO ,I4,//) WRITE (LLU,8221) (JGLOB(I),I=1,9) 8221 FORMAT (19H GLOBAL VARIABLES= ,/,1H ,9I7,//) RETURN 8900 WRITE (LLU,8905) I 8905 FORMAT (/,17H *MACDMP MESSAGE ,I7,/) RETURN END FUNCTION IVAL(IC1,IC2) C------------------------------------------------------------------- C**** EVALUATES THE INTEGER EXPRESSION IN COLUMNS IC1-IC2 (INCLUSIVE) C**** OF JBUFF. CALLS SUBROUTINE IINT TO RETURN VALUES OF INTEGERS. C------------------------------------------------------------------- DIMENSION JOPER(2,30),JVALU(20),JOTBL(3,7) COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU,ICOL,ICOM(20),ICOMB,ICOML,IFB,IFE DATA JOTBL/1H+,21,20,1H-,21,20,1H*,31,30,1H/,31,30, 11H(,19,35,1H),50,19,1H#,10,0/ C ************************************************************** C * INITIALIZATION * C ************************************************************** IVALU = 0 IOPER = 1 JOPER(1,1) = 1H# JOPER(2,1) = 7 ISTAT = 1 IPREN = 0 I = IC1 IUCNT = 1 IUNOP = 1H C C *********************************************************** C * PARSE THE GIVEN LINE USING VARIOUS STATE SETTINGS. * C *********************************************************** C C C STATE 1 C 200 GO TO (300,2000,500,600,700), ISTAT 300 IF ((JBUFF(I) .GE. 1H0) .AND. (JBUFF(I) .LE. 1H9)) 310,340 310 ICVAL = IINT(I) IF (IUNOP .EQ. 1H-) 312,315 312 ICVAL = -ICVAL 315 IUNOP = 1H I = ICOL ISTAT = 3 GO TO 1200 340 IF ((JBUFF(I) .EQ. 1H+) .OR. (JBUFF(I) .EQ. 1H-)) 350,360 350 IF ((IUCNT .GE. 1) .AND. (ICVAL .NE. 1H))) 352,356 352 IF (IUNOP .EQ. 1H ) 354,2000 354 IUNOP = JBUFF(I) GO TO 1800 356 ISTAT = 4 GO TO 1300 360 IF (JBUFF(I) .EQ. 1H ) 1800,370 370 IF (JBUFF(I) .EQ. 1H() 380,2000 380 IPREN = IPREN + 1 ISTAT = 1 GO TO 1300 C C STATE 3 C 500 IF (JBUFF(I) .EQ. 1H ) 1800,510 510 IF ((JBUFF(I) .EQ. 1H+) .OR. (JBUFF(I) .EQ. 1H-)) 520,530 520 ISTAT = 4 GO TO 1300 530 IF ((JBUFF(I) .EQ. 1H*) .OR. (JBUFF(I) .EQ. 1H/)) 540,550 540 ISTAT = 5 GO TO 1300 550 IF ((JBUFF(I) .EQ. 1H)) .AND. (IPREN .GT. 0)) 560,2000 560 ISTAT = 3 IPREN = IPREN - 1 GO TO 1300 C C STATE 4 C 600 IF (JBUFF(I) .EQ. 1H() 380,640 640 IF ((JBUFF(I) .GE. 1H0) .AND. (JBUFF(I) .LE. 1H9)) 310,660 660 IF (JBUFF(I) .EQ. 1H ) 1800,2000 C C STATE 5 C 700 IF (JBUFF(I) .EQ. 1H ) 1800,710 710 IF ((JBUFF(I) .GE. 1H0) .AND. (JBUFF(I) .LE. 1H9)) 310,750 750 IF (JBUFF(I) .EQ. 1H() 380,770 770 IF ((JBUFF(I) .EQ. 1H+) .OR. (JBUFF(I) .EQ. 1H-)) 350,2000 780 ISTAT = 4 GO TO 1300 C C ********************************************************* C * IF VALUE WAS FOUND, PUSH ONTO VALUE STACK. * C ********************************************************* C 1200 IUCNT = 0 IF (IVALU .EQ. 20) 1210,1220 1210 IERR = 18 GO TO 2010 1220 IVALU=IVALU+1 JVALU(IVALU) = ICVAL GO TO 1800 C C ************************************************************ C * IF OPERATOR WAS FOUND, THEN... * C ************************************************************ C C (1) IF A STACK OVERFLOW OCCURS OR THE OPERATOR IS INVALID, C THEN CALL ERROR. C 1300 IUCNT = IUCNT + 1 IF (IOPER .EQ. 30) 1305,1310 1305 IERR = 18 GO TO 2010 1310 ICVAL = JBUFF(I) 1315 DO 1320 I1 = 1,7 IF (JOTBL(1,I1) .EQ. ICVAL) 1330,1320 1320 CONTINUE GO TO 2000 1330 I2 = JOPER(2,IOPER) C C (2) IF F(S1) < G(S2), THEN PUSH OPERATOR ONTO OPERATOR STACK. C IF (JOTBL(2,I2) .LT. JOTBL(3,I1)) 1340,1350 1340 IOPER = IOPER+1 JOPER(1,IOPER) = ICVAL JOPER(2,IOPER) = I1 GO TO 1800 C C (3) IF F(S1) > G(S2), THEN EVALUATE PREVIOUS OPERATOR C AND CONTINUE SEARCH. C 1350 IF (JOTBL(2,I2) .GT. JOTBL(3,I1)) 1360,1460 1360 IF ((ICVAL .EQ. JOPER(1,IOPER)) .AND. (ICVAL .EQ. 1H#)) 1830,1370 1370 IF (JOTBL(1,I2) .EQ. 1H+[\) 1380,1390 1380 JVALU(IVALU-1) = JVALU(IVALU) + JVALU(IVALU-1) GO TO 1450 1390 IF (JOTBL(1,I2) .EQ. 1H-) 1400,1410 1400 JVALU(IVALU-1) = JVALU(IVALU-1) -JVALU(IVALU) GO TO 1450 1410 IF (JOTBL(1,I2) .EQ. 1H*) 1420,1430 1420 JVALU(IVALU-1) = JVALU(IVALU-1) * JVALU(IVALU) GO TO 1450 1430 IF (JOTBL(1,I2) .EQ. 1H/) 1440,1460 1440 JVALU(IVALU-1) = JVALU(IVALU-1)/JVALU(IVALU) 1450 IVALU = IVALU-1 IOPER = IOPER-1 GO TO 1330 C C (4) IF F(S1) = G(S2), THE DELETE S1 AND STOP S2 CHECK. C 1460 IOPER = IOPER - 1 C C *********************************************************** C * BASE OF PARSING LOOP AND END OF PROGRAM. * C *********************************************************** C 1800 IF (I .LT. IC2) 1810,1815 1810 I = I + 1 GO TO 200 1815 IF (IVALU .EQ. 0 .OR. IPREN .NE. 0) 2000,1820 1820 I = I+1 ICVAL = 1H# GO TO 1315 1830 IVAL = JVALU(IVALU) RETURN C C ********************************************************* C * CALL ERROR ROUTINE * C ********************************************************* C 2000 IERR = 17 2010 CALL ERROR(IERR) IVAL = 0 RETURN END FUNCTION IINT(IC) C--------------------------------------------------------------------- C**** IINT RETURNS THE INTEGER VALUE OF THE ASCII STRING BEGINNING C**** IN COLUMN NUMBER IC OF JBUFF. C--------------------------------------------------------------------- COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU,ICOL IINT=0 ISN=1 I2=IC DO 50 I=IC,LC IF (JBUFF(I) .EQ. 1H ) 50,20 20 IF (JBUFF(I) .EQ. 1H-) 30,40 30 ISN=-1 GO TO 70 40 IF (JBUFF(I) .EQ. 1H+) 70,80 50 I2=I2+1 GO TO 900 70 I2=I2+1 80 I1=1H1-1H0 100 IF (JBUFF(I2) .LT. 1H0 .OR. JBUFF(I2) .GT. 1H9) 900,200 200 IINT=10*IINT+(JBljfUFF(I2) - 1H0) / I1 I2=I2+1 GO TO 100 900 IINT=IINT*ISN ICOL=I2-1 RETURN END SUBROUTINE BNASC(IC,I1) C--------------------------------------------------------------------- C**** BNASC CONVERTS THE INTEGER IN I1 TO ASCII AND STORES IT IN JBUFF, C**** BEGINNING AT COLUMN NUMBER IC. C--------------------------------------------------------------------- COMMON JDCB(144),JBUFF(121),JFILE(721),MIS(3,50),INVL,LC,IDC, 1LINVL,JGLOB(9),LMR,ICRN,LLU I2=IC I3=0 I4=1H1-1H0 I5=I1 IF (I5 .LT. 0) 100,200 100 JBUFF(I2)=1H- I2=I2+1 I5=I5*(-1) 200 DO 300 I6=4,0,-1 I7=I5/10**I6 I5=I5-I7*10**I6 IF (I7 .EQ. 0 .AND. I3 .EQ. 0 .AND. I6 .GT. 0) 300,210 210 I7=I7*I4+1H0 IF (I2 .GT. LC) 220,230 220 IERR=15 CALL ERROR(IERR) GO TO 400 230 JBUFF(I2)=I7 I3=1 I2=I2+1 300 CONTINUE 400 RETURN END END$ 7IlFTN4,L PROGRAM LBBLD C************************************************************** C C LBBLD CREATES THE MACRO LIBRARY FILE, MACLIB. MACLIB C IS A TYPE 1 FILE CONSISTING OF 100 RECORDS, EACH 128 C WORDS LONG. C C************************************************************** DIMENSION IDCB(144),IBUFF(128),INAM(3) DATA INAM/2HMA,2HCL,2HIB/ C CREATE FILE IERR=0 CALL CREAT(IDCB,IERR,INAM,100,1) IF (IERR .LT. 0) 800,100 C INITIALIZE LIBRARY 100 DO 200 I=1,100 DO 110 I1=1,128 110 IBUFF(I1)=0 IF (I .GT. 1) 130,120 120 IBUFF(1)=7 IBUFF(2)=100 IBUFF(3)=1 IBUFF(4)=3 IBUFF(11)=1 130 CALL WRITF(IDCB,IERR,IBUFF,120,I) IF (IERR .LT. 0) 800,200 200 CONTINUE CALL CLOSE(IDCB,IERR) IF (IERR .LT. 0) 800,900 800 WRITE (1,810) IERR 810 FORMAT (19H FILE MANAGER ERROR,I7,/) 900 WRITE (1,910) 910 FORMAT (10H END LBBLD,/) STOP END END$ MACLST - (MACLIB SHOULD BE EMPTY) MACDEF ONE% BEGIN NESTING TEST: TWO END NESTING TEST% MACDEF TWO% NESTING DEPTH = 2. THREE% MACDEF THREE% NESTING DEPTH = 3.% MACLST - (MACROS ONE, TWO AND THREE) ONE. BEGIN MACSET/MACSKP/VARIABLE TEST: MACSET %G1=1 MACSET %G2= 1*3 MACSET %G3=2 MACSET %G9= +0-(%G1+1)/%G3*(%G2) MACSKP (%G9 .EQ. (-3)) 2 MACSET/MACSKP ERROR MACSET/MACSKP ERROR END MACSET/MACSKP TEST. BEGIN ARGUMENT TEST: MACDEF ARGS=%,%,%.% ARGUMENT 1 = %A1. ARGUMENT 2 = %A2. ARGUMENT 3 = %A3. ARGUMENTS = %A1, %A2, AND %A3.% ARGS="THIS IS NUMBER 1","NUMBER 2","AND #3". END ARGUMENT TEST. BEGIN OPTION TEST: MACOPT,%=! MACOPT,RL=60 MACOPT,FIELD=5,20 MACOPT,COM=REMARK,2 MACDEF TEST! MACRO INVOKED.! TEST!! XXXXTEST REMARK: TEST MACOPT,FIELD=1,5 END MACOPT TEST. BEGIN MACPRG TEST: TEST! MACPRG TEST! MACOPT,%=% MACPRG ARGS=%,%,%.% MACLST END MACPRG TEST. BEGIN DUMP TEST: MACDMP=1 MACDEF DUMP%.% MACSET %L1=999 MACSET %L2=-999 MACDMP=2% DUMPARGUMENT. MACDMP=3 MACDMP=-1 END MACDMP TEST. MACPRG ONE% MACPRG TWO% MACPRG THREE% MACPRG DUMP%.% MACLST MACEND * END OF TEST - MACRO READY! a  22682-18035 1641 SC 0122 DATEL SYSTEM 256 ANALOG TODIGITAL CONVERTER ROUTINE             H0101 ASMB,R * * * DRIVER FOR A MULTI-CHANNEL ANALOG TO DIGITAL CONVERTER SYSTEM: * DATEL SYSTEM 256. * * HARDWARE REQUIRED: TIME BASE GENERATOR, * MICROCIRCUIT (NEGATIVE TRUE VERSION) + DATEL SYSTEM * * * FORTRAN CALLING SEQUENCE: * * CALL I60(IBUF,IBUFL,NCHAN,ITBGC,MULT,IFLAG) * * IBUF : DATA BUFFER (8K) * IBUFL: BUFFER LENGTH (LT.OR.EQ 4K) * SHOULD BE A MULTIPLE OF NCHAN * NCHAN: NUMBER OF AD CHANNELS * ITBGC: TIME BASE CTRL WORD * MULT : TIME MULTIPLIER * IFLAG: BUFFER STATUS WORD: -1 INITIAL VALUE * 0 FIRST BUF FULL * 1 SECOND BUF FULL * NAM I.60,7 ENT I60,C.60 ***********I.60***** EXT .ENTR BUFA BSS 1 BUFFER ADDRESS BUFL BSS 1 BUFFER LENGTH NCHAN BSS 1 CHANNEL # A/D CONVERTER TBGCW BSS 1 TIME BASE GEN. CONTR. WRD. MULT BSS 1 TIME MULTIPLIER IFLAG BSS 1 BUFFER FLAG: 0=BUF 1, 1=BUF 2 TIMCO BSS 1 BUFCO BSS 1 BUF BSS 1 CHACO BSS 1 TBG EQU 17B ************10B***** DATEL EQU 20B **********11B***** RESET OCT 60000 RESET AD CONTR WRD KNVRT OCT 140000 KONVERT AD CONTR WRD IJSB JSB TRAP,I TBG INTERRUPT INSTR. TRAP EQU 26B C60 DEF C.60 M1 OCT -1 SAVA BSS 1 SAVB BSS 1 SAVEO BSS 1 .4096 DEC 4096 * * * INITIATION SECTION * * * I60 NOP ********I.60****** JSB .ENTR DEF BUFA TRANSFER PARAMETER ADDRESS CLF 0 DISABLE INTERRUPT LDA M1 STA IFLAG,I SET BUF FLAG -1 LDA MULT,I CMA,INA STA TIMCO INIT TIME COUNT LDA BUFL,I CMA STA BUFCO -(BUF LENGTH + 1) LDA BUFA STA BUF BUFFER ADDRESS LDA IJSB PUT INTERR. INSTR STA TBG IN T ]RAP CEL LDA C60 STA TRAP LDA TBGCW,I OTA TBG STC TBG,C START TIME BASE STF 0 ENABLE INTERR. JMP I60,I *********I.60****** RETURN * * * * CONTINUATION SECTION * * C.60 NOP TBG INTERRUPT ENTRY CLF 0 DISABLE INTERR. STA SAVA STB SAVB ERA,ALS SAVE A,B,E,O SOC INA STA SAVEO CLF TBG CLEAR FLAG TBG ISZ TIMCO TIME TO CONVERT? JMP RET NO,RETURN LDA MULT,I YES CMA,INA STA TIMCO RESTORE TIME COUNT KONV LDA RESET OTA DATEL STC DATEL,C RESET A/D CONVERTER TO CHAN 0 CLC DATEL LDA NCHAN,I CMA,INA STA CHACO - # OF CHAN'S TO BE CONVERTED KONV1 LDA KNVRT OTA DATEL STC DATEL,C CONVERT A/D WAIT SFC DATEL DONE? JMP READ YES,READ SFC TBG NO,TBG THERE? RSS JMP WAIT NO,WAIT CLF TBG YES,CLAER TBG FLAG ISZ TIMCO INCREMENT TIME COUNT RSS HLT 10B ERROR, TIME OUT BEFORE ALL CONV. DONE JMP WAIT STILL WAIT READ LIA DATEL READ CONVERTED NUMBER STA BUF,I STORE IN BUFFER ISZ BUF ISZ BUFCO ISZ CHACO ALL CHAN'S DONE? JMP KONV1 NO,CONVERT NEXT CHAN CLC DATEL,C YES LDA BUFCO INA,SZA BUFFER FULL? JMP RET NO,RETURN LDA IFLAG,I YES SZA WAS THIS FIRST BUFFER? JMP FLAG0 YES ISZ IFLAG,I NO, SET IFLAG = 1 LDA BUFA LOAD START ADD.OF BUF 1 JMP REST FLAG0 CLA FIRST BUFFER FILLED STA IFLAG,I SET IFLAG = 0 LDA BUFA ADA .4096 LOAD START ADD OF BUF 2 REST STA BUF STORE BUF ADD LDA BUFL,I޹ CMA STA BUFCO RESTORE BUF COUNT +1 RET LDA SAVEO RESTORE A,B,E,O CLO SLA,ELA STF 1B LDA SAVA LDB SAVB STF 0 ENABLE INTERRUPT JMP C.60,I END FTN4 C C C TEST PROGRAM C C THIS MAIN PROGRAM INITIATES THE AD CONVERTER DRIVER (CALL I60) C AND THAN DISPLAYS THE BUFFER STATUS WORD (IFLAG) ON THE C SWITCH REGISTER. THE USER CAN REPLACE THE DISPLAY CALL BY C A PROGRAM TO STORE THE DATA BUFFER ON A MASS-STORAGE DEVICE. C C PROGRAM HPM DIMENSION IBUF(8192) READ(1,*) IBUFL,NCHAN,MULT ITBGC = 0 CALL I60(IBUF,IBUFL,NCHAN,ITBGC,MULT,IFLAG) CALL SWR(IFLAG) END END$ ASMB,R * * * THIS ROUTINE DISPLAYS THE BUFFER STATUS WORD IFLAG ON THE SWITCH * REGISTER. * INITIAL VALUE : -1 * AFTER FIRST BUFFER FILLED : 0 * AFTER SECOND BUFFER FILLED : 1 ETC. * * NAM SWR,7 EXT .ENTR ENT SWR IFLAG NOP SWR NOP JSB .ENTR DEF IFLAG LDA IFLAG,I OTA 1B JMP *-2 END J  22682-18036 1641 SC 0122 FAST FOURIER TRANSFORM WITH DATA STORAGE ON DISC             H0101 eFTN4 C C C THIS PROGRAM FINDS THE FOURIER TRANSFORM OF A COMPLEX DATA C ARRAY STORED ON DISK IN THE FILE DIFFT OCCUPYING 128 SECTORS C IT USES AN ARRAY IN THE FILE CEXPO (64 SECTORS) TO STORE THE C SINE- AND COSINE VALUES NEEDED FOR THE TRANSFORM. C THE TRANSFORM IS EXECUTED IN PLACE, SO THE ORIGINAL DATA ARE C LOST. THE RESULT IS LEFT IN BIT-REVERSE ORDER. C THE PROGRAM IS WRITTEN FOR A COMPLEX DATA ARRAY OF LENGTH 4096. C THE USER CAN CHANGE THIS LENGTH BY CHANGING THE VALUE OF N AND C N2 (N=2**N2) C THE MINIMUM VALUE FOR N IS 128 C C PROGRAM FTD (3) COMPLEX A(128),B(128),SA(128),EX(128),SX(128),W(64),SAVE EQUIVALENCE (SX(1),W(1)) DIMENSION IFA(3),IFE(3) DATA IFA/2HDI,2HFF,2HT / DATA IFE/2HCE,2HXP,2HO / N=4096 N2=12 KN=N/512-1 T=1. SCALE=T/N ARG=(-1)*2*3.14159/N DO 2 K=0,KN DO 1 I=1,128 X=(I-1+K*128)*ARG XR=COS(X) XI=SIN(X) EX(I)=CMPLX(XR,XI) XR=-XR 1 A(I)=CMPLX(XI,XR) CALL EXEC(15,102B,EX,512,IFE,K*4) 2 CALL EXEC(15,102B,A,512,IFE,K*4+(N/128)) M=1 19 IL=1 MP=2**(M-1) NP=(N/64)/MP I=0 J=0 20 CALL EXEC(14,102B,A,512,IFA,I) CALL EXEC(14,102B,B,512,IFA,I+NP) CALL EXEC(14,102B,EX,512,IFE,J) DO 21 IK=1,128 SA(IK)=A(IK) A(IK)=SA(IK)+B(IK) B(IK)=SA(IK)-B(IK) 21 B(IK)=B(IK)*EX(IK) CALL EXEC(15,102B,A,512,IFA,I) CALL EXEC(15,102B,B,512,IFA,I+NP) IF(IL.LT.MP) GO TO 23 IF((I/8)*8.EQ.I) GOTO 22 DO 25 IJ=1,64 25 SX(IJ+64)=EX(2*IJ-1) CALL EXEC(15,102B,SX,512,IFE,(J-4)/2) GOTO 23 22 CONTINUE DO 26 IJ=1,64 26 SX(IJ)=EX(2*IJ-1) 23 I=I+4 J=J+4 IF(J.LE.(NP-1)) GOTO 20 IL=IL+1 IF(IL.GT.MP) GOTO 27 I=(N/32)*(IL-1)/MP J=0 GOTO 20 27 M=M+1 IF(M.GT.N2-7) GOTO 28 GOTO 19 28 M=7 NN=2**M # NSM1=N/32-1 DO 14 II=0,NSM1,4 CALL EXEC(14,102B,A,512,IFA,II) NL=NN DO 10 L=1,M NL=NL/2 L2=2**(L-1) DO 10 I=1,L2 I1=I-1 K1=2*NL*I1 DO 10 J=1,NL KJ=J+K1 SAVE=A(KJ) A(KJ)=SAVE+A(KJ+NL) 10 A(KJ+NL)=(SAVE-A(KJ+NL))*W(1+(J-1)*L2) DO 13 K=1,NN 13 A(K)=SCALE*A(K) 14 CALL EXEC(15,102B,A,512,IFA,II) END END$ FTN4 C C C TEST PROGRAM C THIS PROGRAM READS THE DATA FROM THE COMPLEX ARRAY IN THE FILE C DIFFT IN BIT-REVERSED ORDER AND PRINTS ON LU 7 THE REAL AND C IMAGINARY PART, THE MODULUS AND PHASE. C ONLY THE FIRST 32 VALUES ARE PRINTED AS SET BY NH. THIS VALUE C CAN BE CHANGED BY THE USER. C FOR LARGER ARRAYS THE VARIABLES N AND M SHOULD BE CHANGED. C ( N=2**M) C C PROGRAM FTDO DIMENSION IFA(3),K(12) COMPLEX F(32) DATA IFA/2HDI,2HFF,2HT / WRITE(7,9) 9 FORMAT(2X,"NR ",6X,"FREAL",10X,"FIMAG",10X,"FMOD",11X, 1"FFASE",//) N=4096 M=12 NH=32 DO 4 I=0,NH I1=I DO 1 J=1,M IQ=I1/2 K(J)=I1-2*IQ 1 I1=IQ IND=K(1) DO 2 J=2,M 2 IND=IND*2+K(J) ISEK=IND/32 CALL EXEC(14,102B,F,128,IFA,ISEK) IP=IND-ISEK*32+1 FM=CABS(F(IP)) FP=ATAN2(AIMAG(F(IP)),REAL(F(IP))) 4 WRITE(7,10) I,F(IP),FM,FP 10 FORMAT(I5,4E15.5) END END$ FTN4 C C C TEST PROGRAM C THIS PROGRAM FILLS A COMPLEX ARRAY OF LENGTH 4096 IN THE FILE C DIFFT WITH A ONE PERIOD SQUARE WAVE (1,0). C C C PROGRAM FTDI DIMENSION IFA(3) COMPLEX A(32),B(32) DATA IFA/2HDI,2HFF,2HT / DO 1 I=1,32 A(I)=(1.,0.) 1 B(I)=(0.,0.) DO 2 K=0,63 2 CALL EXEC(15,102B,A,128,IFA,K) DO 3 K=64,127 3 CALL EXEC(15,102B,B,128,IFA,K) END END$ 4   22682-18037 1644 SC 0122 DLU FOR RTE              H0101 FTN4,L C 1976-07-23 C PROGRAM TO SIMULATE STAND-ALONE DLU C TAPES WRITTEN BY THIS PROGRAMME CAN BE RESTORED TO DISCS C USING STAND-ALONE DLU.THE STATUS WORD WRITTEN BY THIS PROGRAMME C IS ALWAYS ZERO,AND THE STATUS WORD READ FROM TAPE IS IGNORED. C LUS FOR I/O ARE GIVEN BY TURN-ON PARAMETERS AS FOLLOWS : C IT : TERMINAL LU FOR ERROR MESSAGES & "END DLU" MESSAGE C DEFAULT 1 C IIN : INPUT FOR COMMANDS ETC. - DEFAULT IT C IOUT : OUTPUT FOR PROMPTS ETC. - DEFAULT IT C C COMMANDS ARE AS STAND ALONE VERSION EXCEPT THAT "END" TERMINATES C PROGRAMME AFTER REWINDING TAPE. "/E" IS EQUIVALENT TO "END". C TO REWIND WITHOUT TERMINATING,USE "REWIND". C ADDITIONAL COMMAND "WAIT" DOES A "SAVE RESOURCES" STOP C SO SUBSEQUENT "RUN" CARRIES ON FROM WHERE YOU LEFT OFF PROGRAM DLU,3,90 DIMENSION IBUFF(6146) INTEGER IDCB(144),NAME(3) EQUIVALENCE(IDCB(17),IBUFF),(NAME,IBUFF(6144)) C C DATA ICOPY,IVERFY,IEND,ISPACE/2HC ,2HV ,2HE ,2H / DATA IDISC,ITAPE/2HD ,2HM / DATA ISLE,IREW,IWAIT/2H/ ,2HR ,2HW / CALL RMPAR(IBUFF) IFILE=1 IT=MAX0(IBUFF(1),1) IIN=IBUFF(2) IF(IIN.EQ.0)IIN=IT IOUT=IBUFF(3) IF(IOUT.EQ.0)IOUT=IT C C ANNOUNCE WE ARE HERE : WRITE(IOUT,1000) 1000 FORMAT("RTE DISC DUMP/LOAD") CALL ERSET(IT) C GET MAG TAPE FILE 10 WRITE(IOUT,1100) 1100 FORMAT("MT FILE NAME ?_") READ(IIN,1200)NAME 1200 FORMAT(3A2) CALL OPEN(IDCB,IERR,NAME,0,0,2) IF(IERR)10,20,20 C C TASK ? 20 WRITE(IOUT,1300) 1300 FORMAT("TASK ?_") READ(IIN,1400)IREPLY 1400 FORMAT(A2) IREPLY=IOR(IAND(IREPLY,177400B),40B) IF(IREPLY.NE.ICOPY)GO TO 100 C C "COPY" C FIRST ASK FOR "FROM" DEVICE - EITHER DISC OR TAPE 30 WRITE(IOUT,1500) 1500 FORMAT("COPY FROM ?_") READ(IIN,1400)IREPLY IREPLY=IOR(IAND(IREPLY,177400B),40B) IF(IREPLY.NE.IDISC)GO TO 50 C C FROM DISC TO TAPE CALL DTOMT(IT,IIN,IOUT,IDCB,IFILE,IBUFJNF) GO TO 20 C C IF INVALID REPLY,REPEAT QUESTION 50 IF(IREPLY.NE.ITAPE)GO TO 30 C C FROM TAPE TO DISC CALL MTTOD(IT,IIN,IOUT,IDCB,IFILE,IBUFF) GO TO 20 C C TREAT "/E" AS "END" 100 IF(IREPLY.EQ.ISLE)IREPLY=IEND IF(IREPLY.NE.IEND.AND.IREPLY.NE.IREW)GO TO 110 C C IT WAS END OR REWIND - IN ANY CASE REWIND THE TAPE CALL FCONT(IDCB,IERR,400B) IF(IERR.NE.-12)CALL ERR1(IERR) IFILE=1 C C IF REWIND, GO TO NEXT TASK IF(IREPLY.EQ.IREW)GO TO 20 C C ELSE FINISH CALL CLOSE(IDCB) WRITE(IT,1600) 1600 FORMAT("END DLU") CALL EXEC(6) C C IF IT WAS "VERIFY" , DO SO ; 110 IF(IREPLY.EQ.IVERFY)CALL VERFY(IT,IIN,IOUT,IDCB,IFILE,IBUFF) C C IF IT WAS "WAIT" , DO SO IF(IREPLY.EQ.IWAIT)CALL EXEC(6,0,1) C C ANYWAY, GO BACK TO THE QUESTION GO TO 20 END SUBROUTINE DTOMT(IT,IIN,IOUT,IDCB,IFILE,IBUFF) C C DISC TO MAG TAPE INTEGER IDCB(16),IBUFF(6146) C C FIND WHICH DISC HE WANTS CALL WICHD(IT,IIN,IOUT,LUDISC) C C THEN FIND OUT NO. OF FILE REQUIRED CALL FILNO(IT,IIN,IOUT,IDCB,IFILE) C C ASK FOR A 72 CHAR IDENTIFIER WRITE(IOUT,1000) 1000 FORMAT("ID ?_") READ(IIN,1100)(IBUFF(I),I=2,37) 1100 FORMAT(36A2) C C WRITE IT TO TAPE IN SIO FORMAT IBUFF(1)=-36 CALL WRITF(IDCB,IERR,IBUFF,37) CALL ERR1(IERR) C C SET UP BUFFER FOR SIO FORMAT INCLUDING ZERO STATUS WORD IBUFF(1)=-6145 IBUFF(2)=0 C C COPY EACH TRACK DO 100 I=0,202 CALL EXEC(1,LUDISC,IBUFF(3),6144,I,0) CALL WRITF(IDCB,IERR,IBUFF,6146) CALL ERR1(IERR) 100 CONTINUE C C WRITE TWO EOFS,AND BACKSPACE OVER THE SECOND CALL WRITF(IDCB,IERR,I,-1) CALL ERR1(IERR) CALL WRITF(IDCB,IERR,I,-1) CALL ERR1(IERR) CALL FCONT(IDCB,IERR,200B) IF(IERR.NE.-12)CALL ERR1(IERR) C C ADJUST FILE COUNT IFILE=IFILE+1 RETURN END SUBROUTINE MTTOD(IT,IIN,IOUT,IDCB,PIFILE,IBUFF) C C MAG TAPE TO DISC INTEGER IDCB(16),IBUFF(6146) C C WHICH FILE? 10 CALL WICHF(IT,IIN,IOUT,IDCB,IFILE,IBUFF) C C WHICH DISC? 40 CALL WICHD (IT,IIN,IOUT,LUDISC) C C COPY EACH TRACK DO 100 I=0,202 CALL READF(IDCB,IERR,IBUFF,6146) CALL ERR1(IERR) CALL EXEC(2,LUDISC,IBUFF(3),6144,I,0) 100 CONTINUE C C SPACE OVER EOF CALL READF(IDCB,IERR,I,1) CALL ERR1(IERR) C C ADJUST FILE COUNT IFILE=IFILE+1 RETURN END SUBROUTINE VERFY(IT,IIN,IOUT,IDCB,IFILE,IBUFF) INTEGER IDCB(16),IBUFF(6146) INTEGER VBUFF(512) C C WHICH DISC? CALL WICHD(IT,IIN,IOUT,LUDISC) C C WHICH FILE? CALL WICHF(IT,IIN,IOUT,IDCB,IFILE,IBUFF) C C GET EACH TRACK FROM TAPE DO 100 ITRACK=0,202 CALL READF(IDCB,IERR,IBUFF,6146) CALL ERR1(IERR) C C READ EACH SECTOR DO 90 ISECT=0,95,8 CALL EXEC(1,LUDISC,VBUFF,512,ITRACK,ISECT) C C SET TO POINT TO SECTOR IN BUFFER IWORD=2+64*ISECT C C CHECK EACH WORD IF(ICOMP(1,IBUFF,IWORD,512,VBUFF,0,512,-1,IOFF))90,80,80 C C REPORT THE FIRST ERROR IN EACH TRACK ONLY 80 IS=IOFF/64 IOFF=IOFF-IS*64 IS=IS+ISECT WRITE(IT,1000)ITRACK,IS,IOFF 1000 FORMAT("VERIFY ERROR TRACK",I4," SECTOR",I3," WORD",I3) GO TO 100 90 CONTINUE 100 CONTINUE C C STEP OVER EOF CALL READF(IDCB,IERR,I,1) CALL ERR1(IERR) C C AND ADJUST FILE COUNT IFILE=IFILE+1 WRITE(IOUT,1100) 1100 FORMAT("VERIFY COMPLETE") RETURN END SUBROUTINE FILNO(IT,IIN,IOUT,IDCB,IFILE) C C GETS THE NUMBER OF TAPE FILE REQUIRED C IF IT DOESN'T EXIST , POSITIONS TO JUST AFTER LAST FILE C ON TAPE . ONLY FILES 1-8 ARE ACCEPTED AS REQUESTS. INTEGER IDCB(16) 10 WRITE(IOUT,1000) 1000 FORMAT("MT FILE NO.?_") READ(IIN,*)NEWFIL C C REJECT INVALID REQUEST IF(NEWFIL.LT.1.OR.NEWFIL.GT.8)GO TO 10 C C ARE WE AT REQUESTED FIlLE? 20 IF(NEWFIL-IFILE)30,70,40 C C NO , WE ARE AFTER IT C C IF FILE 1 REQUESTED,QUICKEST TO DO A REWIND 30 IF(NEWFIL.NE.1)GO TO 35 CALL FCONT(IDCB,IERR,400B) IF(IERR.NE.-12)CALL ERR1(IERR) IFILE=1 RETURN C OTHERWISE C BACKSPACE OVER FILEMARK 35 CALL FCONT(IDCB,IERR,1400B) C C BACKSPACE OVER FILE & PREVIOUS FILEMARK CALL FCONT(IDCB,IERR,1400B) C C FORWARD SPACE OVER FILEMARK CALL FCONT(IDCB,IERR,300B) IF(IERR.NE.-12)CALL ERR1(IERR) C C ADJUST CURRENT FILE COUNT IFILE=IFILE-1 C C AND SEE IF THIS IS RIGHT GO TO 20 C C WE ARE BEFORE REQUESTED FILE C READ THE NEXT RECORD 40 CALL READF(IDCB,IERR,I,1,LEN) C C WAS IT EOF? IF(LEN)50,60,60 C C YES,SO WE ARE AT END OF ALL FILES C BACKSPACE OVER THE EOF AND RETURN HIM THIS FILE NO. 50 CALL FCONT(IDCB,IERR,200B) IF(IERR.NE.-12)CALL ERR1(IERR) WRITE(IT,1100)IFILE 1100 FORMAT("LAST FILE IS",I2) RETURN C C NO IT WASN'T EOF SO SPACE OVER THIS FILE 60 CALL FCONT(IDCB,IERR,1300B) IF(IERR.NE.-12)CALL ERR1(IERR) IFILE=IFILE+1 C C AND SEE IF THIS IS RIGHT GO TO 20 C C GOT THE RIGHT ONE 70 RETURN END SUBROUTINE WICHD(IT,IIN,IOUT,LUDISC) C C ASKS FOR DISC LU - CHECKS IT IS A DISC DATA ITYPE,IDTYPE/37400B,14400B/ 10 WRITE(IOUT,1000) 1000 FORMAT("DISC LU ?_") READ(IIN,*)LUDISC CALL EXEC(13,LUDISC,IEQT5) IF(IAND(IEQT5,ITYPE).NE.IDTYPE)GO TO 10 RETURN END SUBROUTINE WICHF(IT,IIN,IOUT,IDCB,IFILE,IBUFF) C GETS A REQUESTED FILE AND DISPLAYS THE ID , FOLLOWED C BY "?" . USER MAY REPLY YES OR NO - IF NO , ASKS AGAIN C FOR FILE NO. IF YES , LEAVES TAPE POSITIONED AFTER THE ID . INTEGER IDCB(16),IBUFF(6146) C GET FILE NO. 10 CALL FILNO(IT,IIN,IOUT,IDCB,IFILE) C C READ THE ID CALL READF(IDCB,IERR,IBUFF,37,LEN) C C WAS IT EOF? IF(LEN)20,20,30 C C YES - TELL HIM 20 WRITE(ITz,1000) 1000 FORMAT("NO SUCH FILE") C C BACKSPACE OVER EOF CALL FCONT(IDCB,IERR,200B) IF(IERR.NE.-12)CALL ERR1(IERR) C C AND TRY AGAIN GO TO 10 C C NO IT WAS REAL. ASK IF IT WAS RIGHT 30 DO 31 J=37,2,-1 IF(IBUFF(J).NE.2H )GO TO 32 31 CONTINUE J=2 32 J=J+1 IBUFF(J)=2H?_ WRITE(IOUT,1100)(IBUFF(I),I=2,J) 1100 FORMAT(37A2) READ(IIN,1200)IREPLY 1200 FORMAT(A2) IREPLY=IOR(IAND(IREPLY,177400B),40B) IF (IREPLY.EQ.2HY ) RETURN C C NO , SO BACKSPACE OVER ID RECORD & TRY AGAIN CALL FCONT(IDCB,IERR,200B) CALL ERR1(IERR) GO TO 10 END $ x(x 0HH((x(xASMB,L NAM ERSET,7 LUS FOR ERRORS BM01 1976-08-30 ENT ERSET EXT .ENTR,FMT.E,PAU.E,IND.E,ER0.E * * CALL ERSET[(LUP[,LUE[,LUI[,LUF]]])] * LUP IS LU FOR PAUSE MESSAGE : DEFAULT 1 * LUE IS LU FOR ERROR MESSAGES : DEFAULT LUP * LUI IS LU FOR "INDEX" MESSAGE : DEFAULT LUE * LUF IS LU FOR FORMAT MESSAGES : DEFAULT LUE * LUP OCT 0 LUE OCT 0 LUI OCT 0 LUF OCT 0 ERSET NOP JSB .ENTR DEF LUP CLA,INA DEFAULT 1 LDA LUP,I STA PAU.E LDA LUE,I STA ER0.E LDB LUI,I STB IND.E LDB LUF,I STB FMT.E CLB STB LUP STB LUE STB LUI STB LUF JMP ERSET,I END x(x 0Hx 0HHASMB,L NAM ERR1,7 BM03 1976-08-24 * * CALL ERR1(IERR) * IF IERR NOT GNEGATIVE,IMMEDIATE RETURN * IF IERR NEGATIVE, "PNAME NNNNN" PRINTED ON ERROR LU * ENT ERR1 EXT ER0.E,.ENTR EXU CNUMO,CNUMD,EXEC SUP IERR BSS 1 ERR1 NOP JSB .ENTR DEF IERR LDA IERR,I SSA,RSS JMP ERR1,I CMA,INA STA IERR JSB CNUMD DEF *+3 DEF IERR DEF BUFF+4 LDA =B6400 IOR BUFF+4 STA BUFF+4 LDB XEQT ADB D12 LDA 1,I STA BUFF+1 INB LDA 1,I STA BUFF+2 INB LDA 1,I AND LBYTE IOR RSPAC STA BUFF+3 JSB CNUMO DEF *+3 DEF ERR1 DEF BUFF+8 JSB EXEC DEF *+5 DEF D2 DEF ER0.E DEF BUFF DEF D11 JSB EXEC DEF *+2 DEF D6 BUFF ASC 8, @ BSS 3 LBYTE OCT 177400 RSPAC OCT 40 D2 DEC 2 D6 DEC 6 D11 DEC 11 D12 DEC 12 XEQT EQU 1717B END xx(H((xASMB,L NAM ITEST,7 BM01 1976-06-15 * * ROUTINE TO COMPARE STRINGS OR TEST STRINGS FOR MATCH. * TEST MAY BE ON BYTES,WORDS,FP NUMBERS OR DOUBLE INTEGERS * * USE: * IFTRUE = ITEST(ITYPE,ITSTR,ITOFF,ITLEN,ISSTR,ISOFF,ISLEN,ICOND * [,IRES]) * OR: * ICONDV = ICOMP(ITYPE,ITSTR,ITOFF,ITLEN,ISSTR,ISOFF,ISLEN,ICOND * [,IRES]) * (ICOND = 0) * * IFTRUE : -1 IF TRUE * 0 IF FALSE * * ICONDV : -1 IF EQUAL * -2 IF TEST > SEARCHED * -3 IF TEST < SEARCHED * * NOTE : THE TYPE OF VALUE RETURNED IS DETERMINED BY WHETHER ICOND * IS ZERO OR NOT . IF IT IS ZERO A COMPARISON VALUE IS RETURNED * AND IF NOT A TRUE/FALSE RESULT Ԋ. THE TWO ENTRY POINTS ARE IN * FACT IDENTICAL & ARE PROVIDED ONLY FOR ALGOL COMPATIBILITY. * ITYPE : 1 - UNITS ARE WORDS * 4 - UNITS ARE FP NUMBERS * 5 - UNITS ARE DOUBLE INTEGERS * OTHERWISE UNITS ARE BYTES * * ITSTR : WORD ADDRESS OF ARRAY CONTAINING TEST STRING * * ITOFF : UNIT OFFSET OF TEST STRING FROM ITSTR (MUST NOT BE -VE) * * ITLEN : NO. OF UNITS IN TEST STRING (UNPREDICTABLE IF -VE) * * ISSTR : WORD ADDRESS OF ARRAY CONTAINING SEARCHED STRING * * ISOFF : UNIT OFFSET OF SEARCHED STRING FROM ISSTR (MUST NOT BE * -VE) * * ISLEN : NO. OF UNITS IN SEARCHED STRING (UNPREDICTABLE IF -VE) * * ICOND : TEST CONDITION * IF ZERO RETURN A COMPARISON VALUE -1,-2 OR -3 * OTHERWISE DO A TEST AS FOLLOWS : * -1 = +1 # * -2 > +2 <= * -3 < +3 >= * -4 .IN. +4 .NI. * ANY OTHER : RESULT ALWAYS TRUE * * IRES : OPTIONAL RETURN PARAMETER. FOR CONDITIONS 1 TO 3, IRES * IS SET TO NO. OF UNITS WHICH MATCH IN THE 2 STRINGS. * FOR 4, SET TO TOTAL NO. OF UNITS SEARCHED; I.E. (OFFSET * OF MATCH+LENGTH OF TEST STRING) IF .IN. TRUE * (ISLEN-IDLEN+NO.OF MATCHES IN FINAL POSITION) IF FALSE * * NOTES 1: TESTS 1 TO 3 ARE MADE ON 1ST ITLEN UNITS OF SEARCHED * STRING, UNLESS ISLEN. * 2: A ZERO LENGTH TEST STRING IS ALWAYS = * 3: TEST 4 GIVES .NI. IF ISLEN < ITLEN * * THE ROUTINE IS FIRST CONFIGURED FOR THE TYPE OF SEARCH REQUIRED * THIS CONFIGURATION INVOLVES SETTING 7 LOCATIONS IN THE CODE * ACCORDING TO LENGTH OF UNIT & TYPE OF TEST. THE LAST TYPE vUSED * IS SAVED IN "LAST" & CONFIGURATION IS SKIPPED IF TYPE=LAST. * THE ROUTINE AS WRITTEN IS SET UP FOR BYTES , FOR WHICH TYPE 2 * SHOULD BE USED.ALTHOUGH ANY TYPE OTHER THAN 1,4,5 WILL DEFAULT * TO THIS ,USE OF OTHER THAN 2 WILL RESULT IN AN UNNECESSARY * RECONFIGURATION. ENT ITEST,ICOMP EXT .ENTR,.CBT.,.CMW.,.CMF.,.CMD. * ITYPE BSS 1 ITSTR BSS 1 ITOFF BSS 1 ITLEN BSS 1 ISSTR BSS 1 ISOFF BSS 1 ISLEN BSS 1 ICOND BSS 1 IRES OCT 0 ITEST NOP ICOMP EQU ITEST JSB .ENTR DEF ITYPE LDA ITYPE,I CONFIGURE ROUTINE CPA LAST IF NECESSARY JMP GO STA LAST LDB BYTE DEFAULT TO BYTES CPA D1 LDB INTEG CPA D4 LDB FLOAT CPA D5 LDB DOUBI LDA 1,I GET 1ST INSTRUCTION STA INST1 STA INST3 INB LDA 1,I STA INST2 STA INST4 INB LDA 1,I STA INST5 INB LDA 1,I STA INST6 INB LDA 1,I STA INST7 SPC 1 GO LDA ITSTR MAKE UP STRING ADDRESSES INST1 CLE,ELA OR NOP FOR WORDS;CLE,ERA FOR F,D ADA ITOFF,I INST2 NOP OR ELA FOR F,D STA ITSTR SAVE LOCALLY LDA ISSTR INST3 CLE,ELA AS INST1 ADA ISOFF,I INST4 NOP AS INST2 STA ISSTR CMA,INA SAVE NEGATIVE FOR CALCULATION OF IRES STA ISOFF LDA ISLEN,I SEARCHED STRING LENGTH LDB ITLEN,I TEST STRING LENGTH STB ITLEN SAVE LOCALLY AS COMPARISON LENGTH UNLESS CMB,INB IT IS GREATER THAN ISLEN ADB 0 SSB STA ITLEN IN WHICH CASE COMPARISON LENGTH IS ISLEN STB ISLEN S-T CMB COUNTER FOR "INCLUDE" SHIFTS SSB,RSS MAKE SURE IT'S -VE! CCB STB COUNT LDB ICOND,I SAVE MODULUS OF CONDITION CODE SSB CMB,INB STB ITOFF ITES2 LDA ISSTR DO THE COMPARISON LDDB ITSTR N.B. THE STRINGS ARE COMPARED THE OPPOSITE INST5 JSB .CBT. WAY ROUND, SO > IN THE TEST IS < FOR THE DEF ITLEN USER . (APPROPRIATE TEST PUT AT INST5) NOP JMP EQUAL JMP GREAT LESS STA ITYPE SAVE A LDA D2 LOAD 1S COMPLEMENT OF COMPLETION VALUE LDB ITOFF CONDITION CODE SZB,RSS IF ZERO JMP COMP HE WANTS VALUE CPB D4 WAS IT .IN. OR .NI.? JMP MORE? YES, SO HAVE ANOTHER GO CPB D3 LOOKING FOR SEARCHED LENGTH? SSB JMP GREAT YES, SO TEST > SEARCHED STA ITYPE CLA 1S COMPLEMENT OF COMPLETION VALUE LDB ITOFF OTHERWISE, ARE WE LOOKING FOR SZB,RSS JMP COMP VALUE ? CPB D1 = ? JMP SAME YES CPB D4 OR .IN.? JMP SAME YES JMP OPP ELSE FAIL * GREAT STA ITYPE CLA,INA LDB ITOFF SZB,RSS JMP COMP CPB D4 JMP MORE? YES CPB D2 > ? JMP SAME JMP OPP * MORE? ISZ ISSTR NEXT POSITION IN SEARCHED STRING INST6 NOP OR ISZ ISSTR FOR F,D ISZ COUNT ANY MORE? JMP ITES2 YES JMP OPP NO,FAIL * OPP CLA,RSS OPPOSITE TO CONDITION CODE SAME CCA SAME AS CONDITION CODE COMP LDB ITYPE RESTORE A FROM COMPARISON ADB ISOFF GET OFFSET FOR IRES INST7 NOP OR BRS FOR F,D STB IRES,I LDB ICOND,I SSB,RSS ITES3 CMA CLB STB IRES JMP ITEST,I * COUNT BSS 1 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D5 DEC 5 * LAST DEC 2 DEFAULT BYTES BYTE DEF *+1 CLE,ELA DOUBLE WORD ADDRESS NOP AND LEAVE AS BYTE ADDRESS JSB .CBT. COMPARE BYTES ROUTINE NOP ADVANCE ADDRESS BY 1 NOP IRES IS IN BYTES * INTEG DEF *+1 NOP LEAVE WORD ADDRESS NOP COMPLETELY JSB .CMW. NOP NOP * FLOAT DEF *+1 CLE,ERA HALVE WORD ADDRESS ELA THEN DOUBLE IT AGAIN JSB .CMF. ISZ ISSTR ADVANCE ADDRESS BY 2 BRS HALVE OFFSET TO CONVERT TO 2-WORD UNITS * DOUBI DEF *+1 CLE,ERA AS FLOAT ELA EXCEPT JSB .CMD. FOR ACTUAL COMPARISON ISZ ISSTR BRS END ppx 0HpH((ASMB,L NAM WORDS,7 BM01 1976-06-16 * * THESE ROUTINES EMULATE THE 21MX WORD MANIPULATION INSTRUCTIONS * FOR UPWARD COMPATIBILITY: * ENT .CMW. EMULATES CMW, COMPARE WORD STRINGS ENT .MVW. EMULATES MVW, MOVE WORDS * ALSO THE ADDITIONAL ENTRY ENT .FIW. FILLS AN ARRAY WITH A SPECIFIED WORD * * THE A AND B REGISTERS ARE PRESERVED OR GIVEN CORRECTLY DEFINED VALUES * ON EXIT. HOWEVER, THERE ARE THE FOLLOWING INCOMPATIBILITIES BETWEEN * THESE ROUTINES AND THE MICROCODE: * 1) THE E & O REGISTERS ARE NOT PRESERVED * 2) WORD 3 IS NOT USED IN THE SAME WAY AS THE MICROCODE * 3) WRAP-ROUND BEHAVIOUR MAY BE DIFFERENT * A EQU 0 B EQU 1 * * THE FOLLOWING MASK IS USED: MASK OCT 77777 PREVENTS INDIRECT ADDRESSING * HED COMPARE WORD ARRAYS .CMW. NOP AND MASK ARRAY 1 DIRECT ADDRESS STA TEMP2 LDA B ARRAY 2 AND MASK DIRECT ADDRESS LDB .CMW.,I ADDR. OF COUNT LDB B,I COUNT ISZ .CMW. POINT TO "NOP" WORD STA .CMW.,I & SAVE ARRAY 2 ADDRESS THERE ADB A FINAL B VALUE  STB TEMP3 SAVE IT LDA TEMP2 A = ARRAY 1 ADDRESS SPC 1 CMW1 LDB .CMW.,I ARRAY 2 CURRENT POSITION CPB TEMP3 FINISHED? JMP CMW4 YES, EXIT LDB B,I NO, GET VALUE 2 CMB,INB -V2 ADB A,I V1 -V2 SSB JMP CMW3 V2 > V1 SZB JMP CMW2 V2 < V1 INA V2 = V1 ISZ .CMW.,I ADVANCE POINTERS JMP CMW1 SPC 1 CMW2 ISZ .CMW. CMW3 ISZ .CMW. LDB TEMP3 RESTORE B CMW4 ISZ .CMW. JMP .CMW.,I HED MOVE WORDS .MVW. NOP AND MASK STA TEMP1 SOURCE ADDRESS LDA B AND MASK STA B DEST ADDRESS LDA .MVW.,I COUNT ADDRESS LDA A,I COUNT ADA B STA TEMP3 FINAL ADDRESS +1 SPC 1 MVW1 CPB TEMP3 FINISHED? JMP MVW2 YES LDA TEMP1,I STA B,I ISZ TEMP1 INB JMP MVW1 SPC 1 MVW2 ISZ .MVW. ISZ .MVW. LDA TEMP1 JMP .MVW.,I HED FILL WITH WORD * THIS IS AN EXTRA ROUTINE CALLED IN THE FOLLOWING WAY: * A CONTAINS FILL WORD * B CONTAINS START ADDRESS * JSB .FIW. * DEF COUNT NO. OF WORDS * ON EXIT, A IS PRESERVED, B INCREMENTED BY COUNT * .FIW. NOP STB TEMP1 LDB .FIW.,I LDB B,I ADB TEMP1 ISZ .FIW. STB TEMP2 LDB TEMP1 SPC 1 FIW1 CPB TEMP2 JMP .FIW.,I STA B,I INB JMP FIW1 * TEMP1 EQU .CMW. TEMP2 EQU .MVW. TEMP3 EQU .FIW. END ppx@ @xx@ @x@8@x((P@8@xx(H((ASMB,L NAM BYDUM,7 DUMMY FOR BYTES BM01 1976-09-16 ENT .CBT.,.LBT.,.MBT.,.SBT.,.SFBIHFB.,.FBT.,.ABT. ENTRY NOP HLT .CBT. EQU ENTRY .LBT. EQU ENTRY .MBT. EQU ENTRY .SBT. EQU ENTRY .SFB. EQU ENTRY .FBT. EQU ENTRY .ABT. EQU ENTRY END ppx@ @xx@ @x@8@pppx((Px(ASMB,L NAM DODUM,7 DUMMY FOR DOUBL BM01 1976-09-16 ENT .CMF.,.CMD. ENTRY NOP HLT .CMF. EQU ENTRY .CMD. EQU ENTRY END ^H  22682-18038 1644 SC 0322 DOS-III B INTERACTIVE EDITOR             H0103 IASMB,R,L HED DOS-IIIB INTERACTIVE EDITOR NAM EDITR,3 EXT EXEC SUP PRESS EXTRANEOUS LISTING SPC 2 * THIS EDITOR IS DESIGNED AS A POWERFUL TEXT-MANIPULATING * TOOL. IT IS PATTERNED AFTER THE RTE INTERACTIVE EDITOR * "EDITR", AND AS SUCH, SUPPORTS MANY OF THE RTE EDITOR * COMMANDS. THE POTIENTAL USER IS REFERRED TO THE * "RTE-II PROGRAMMING AND OPERATING SYSTEM" MANUAL (H.P. * 92001-93001) FOR FURTHER DETAILS OF THE COMMANDS. * * THIS EDITOR WILL, IN ITS CURRENT STATE OF DEVOLPMENT, * ONLY FUNCTION PROPERLY IN A DOS-IIIB ENVIRONMENT. THIS * IS BECAUSE THE PROGRAM USES THE FILE CREATE AND PURGE * EXEC CALLS AVAILABLE IN THE DOS-IIIB SYSTEM. IT SHOULD, * HOWEVER, BE A SIMPLE MODIFICATION TO MAKE THIS EDITOR * WORK ON DOS-IIIA AND DOS-M. SPC 2 MAXIN DEC -150 MAXOP DEC 150 MAX DEC 150 "A" OCT 101 "B" OCT 102 "C" OCT 103 "D" OCT 104 "E" OCT 105 "F" OCT 106 "G" OCT 107 "H" OCT 110 "I" OCT 111 "J" OCT 112 "K" OCT 113 "L" OCT 114 "M" OCT 115 "N" OCT 116 "O" OCT 117 "P" OCT 120 "R" OCT 122 "S" OCT 123 "T" OCT 124 "U" OCT 125 "V" OCT 126 "W" OCT 127 "X" OCT 130 "Y" OCT 131 "Z" OCT 132 "^" OCT 136 "#" OCT 43 "=" OCT 75 PLUS OCT 53 MINUS OCT 55 "/" OCT 57 ALTERNATE FOR "+" COMMAND. %G OCT 7 BELL M140 OCT -140 M75 DEC -75 M72 DEC -72 M58 DEC -58 M32 OCT -32 D18 DEC 18 D32 DEC 32 D33 DEC 33 D34 DEC 34 D128 DEC 128 B6400 OCT 6400 B600 OCT 600 B60 OCT 60 B54 OCT 54 B40 OCT 40 COMND NOP ALSO TEMP TO STORE NAME TRFLG NOP LWA NOP EXFLG DEC -1 TTYLU NOP LOGICAL UNIT NUMBER OF TELETYPE OCCNT NOP LSTFG NOP SRCFL NOP LINES OCT 1 LINE COUNTER LINEM NOP LINE CTR MOST SIG BITS PBFLG NOP PARTIAL BUFFER FLAG SCT NOP # OF SECTORS PER SORC, DEST BUFR MSC NOP - SCT WDCT1 NOP DBUF$ NOP  PERMANENT POINTER TO DEST BUFFER ECCNT NOP ALSO MXSEC LATRK NOP LAST TRACK ON DISC FSECP NOP PERMANENT POINTER TO START OF DISC FILE MUNTS NOP -REL SCT OF LAST T/S OF USER AREA WSEC# NOP POINTER TO NEXT SECTOR TO BE WRITTEN SPC 2 EDITR DLD B,I FETCH TTY LU & MAX RECRD IOR B600 SET ECHO BIT OF TELETYPE LU CPA B600 IF NO LU INA SPECIFIED USE STA TTYLU LU = 1 SSB,RSS NEW MAX OUTPUT RECORD SZB,RSS WHICH IS >0 ? JMP INT1 NO, USE DEFAULT MAXOP ADB MAXIN USE THE SMALLER SSB,RSS OF THE NEW CLB LIMIT OR ADB MAXOP THE DEFAULT STB MAXOP LIMIT SPC 1 INT1 LDA SSFLG IF :SS IN EFFECT, EDITR SZA,RSS MUST BE ABORTED OR DISASTER JMP INT2 WILL OCCUR! JSB PRINT DEF ./A1 DEC 6 ASC 6,ISSUE :SS,99 SPC 1 INT2 LDA SECTR GET # OF SECTORS/TRACK STA MXSEC AND SAVE SPC 1 LDA DISCO FIND THE LAST TRACK ON DISC INA ALF,ALF SWAP TRACK TO HI BYTE AND HBYTE SET TO SECTR 0 OF LAST TRACK LDB SYSSC GET SYSTEM SUBCHANNEL CPB CUDSC ARE WE ON THE SYSTEM SUBCHAN? LDA JBINS YES. GET JBIN T/S INSTEAD JSB T/S TURN INTO SECTOR COUNT STA LATRK LDA FWAM GET LAST WORD OF THIS PROGRAM INA ADD ONE (FIRST WD. AVAIL.) SPC 1 * SET UP BUFFER AREA TO FILL CORE SPC 1 * **************************************** * * LAST WORD AVAILABLE MEMORY* ^ * * * ^ * * * ^ * * SOURCE BUFFER * ^ SBUFP RANGE * * * ^ * * *u ^ * * COMPUTED FIRST WORD* SBUF$ ^ * **************************************** ^ * * * ^ * * >= 75 WORDS FOR PARTIAL RECORD * ^ * * * ^ * **************************************** * * COMPUTED LAST WORD* ^ * * * ^ * * * ^ * * DESTINATION BUFFER * ^ DBUFP RANGE * * * ^ * * * ^ * * FIRST WORD AFTER EDITR CODE* DBUF$ ^ * **************************************** * * * * * EDITR CODE * * * * * * * STA DBUF$ STA DBUFP CMA,INA LDB UMLWA STB LWA ADA LWA ADA M75 ALLOW 75 WORDS BETWEEN BUFFERS CLB ASR 8 DIVIDE BY 256 STA SCT NUMBER OF INPUT/OUTPUT SECTORS CMA,INA STA MSC CMA,INA ASL 7 CONVERT SECTORS TO WORDS STA WDCT1 STA WDCT2 LDB A ADA DBUF$ STA DBEND END OF OUTPUT BUFFER POINTER CMB,INB ADB LWA STB SBUF$ START OF INPUT BUFFER. INB SAVE IF INPUT FROM KEYBOARD STB SBUFP LDA WDCT1 CMA,INA STA MWDC1 LDA UDNTS GET START SECT OF USER AREA JSB T/S TURN INTO SECTOR COUNT STA WSEC# SAVE AS INITIAL WRITE ADDR STA FSECP AND INITIAL DISC FILE CMA,INA AND NEGATE STA MUNTS SAVE FOR ABORT CHECK PSF JSB PRINT PRINT "SOURCE FILE" DEF SRCIN DEC 6 ASC 6,SOURCE FILE? SRCIN JSB TTYIP INPUT RESPONSE  JSB GETFN GET THE FILE NAME JMP NOFIL USE KEYBOARD ENTRY JSB INSRC FETCH FILE JMP PSF NOT FOUND TRY AGAIN JMP STBUF SET TBUFF. SPC 2 NOFIL CCB STB KBDIN KEYBOARD INPUT FLAG STB NO/R DON'T ALLOW FILE REPLACE STB SLNG SET EOF FLAG STBUF LDA TBUFP POINT TBUFF TO TBUF0 STA TBUFF FOR ALL OTHER EDIT USES. STA SRCFL JMP DISPL PRINT FIRST LINE SPC 1 TBUFP DEF TBUF0 MBUF0 EQU EDITR OVERLAY ONE-TIME CODE. LERR EQU *-EDITR-75 CHECK ENOUGH ONE-TIME CODE FOR * 75 WORDS OF MBUF0. SPC 1 * MBUF0 OVERLAYS CODE AT THE START ('EDITR') WHICH IS * NOT NEEDED ONCE SOURCE FILE INFORMATION IS COMPLETE. * IT IS ONE OF THE DYNAMICALLY ASSIGNED BUFFERS. SEE * COMMENTS FOR EBUF0,ETC. NEAR END OF LISTING. SPC 1 KBDIN NOP SET TO -1 IF INPUT FROM TTY. NO/R NOP SET TO -1 IF REPLACE IS ILLEGAL * ********* ****************************** * READ IN EDIT COMMAND AND ACT ON IT. ****************************** ********* * * NODE1 CLA RESET CHARACTER STA EXFLG EXCHANGE FLAG LDA TTYLU RESET THE STA LSTLU LIST LU NODE2 JSB TTYIP INPUT COMMAND JSB ECH JMP ERR STA COMND SAVE COMMAND CHARACTER ADA M140 CHECK FOR LOWER CASE SSA IS CHAR LOWER CASE? JMP UPPER NO. GO EXECUTE COMMAND LINE ADA M32 POSSIBLY... IS CHARACTER SSA,RSS > ASCII "Z"? JMP UPPER YES. MUST BE A SYMBOL LDA B40 NO. MAKE INTO XOR COMND ITS UPPER CASE STA COMND EQUIVALENT UPPER LDA COMND CONTINUATION POINT. CPA "A" JMP ./A LDB ./EFL IF END ENTERED ANY OTHER COMMAND SZB,RSS IS DISALLOWED JMP NOTEN OK ALLOW ANY COMMAND CPA "E" END AGAIN? JM P ./E2 YES GO TRY THE NEW FILE NAME JMP ERR NO ERROR NOTEN LDB B40 RESET TAB FILL STB TBFIL TO SPACE CPA B40 COMMAND? JMP O/PEB NO, OUTPUT LINE CPA "=" JMP ./= CPA %G JMP ./CG MUTE BELL WITH PROMPT. CPA "P" JMP ./P DISPLAY CURRENT LINE CCB STB TRFLG STB LSTFG CPA "C" IF CHARACTER JMP ./C GO DO IT CPA "L" JMP NUMBR CLB STB LSTFG RESET LIST FLAG CPA "K" JMP ./K CPA "#" SEQUENCE NUMBER? JMP ./# CPA "O" JMP ./O CPA "M" MERGE NEW SOURCE? JMP ./M YES GO DO IT CPA "/" "/" AND "+" MEAN THE SAME RSS CPA PLUS JMP NUMBR CPA "E" JMP ./E CPA "N" JMP ./N CPA "H" JMP ./H CPA "S" JMP ./S CPA "T" JMP ./T CPA "U" JMP ./U UNCOND. REPLACE W/O LIST. CPA "V" JMP ./V THIS WITH LIST. CPA "W" SPECIFY A NEW WINDOW? JMP ./W CPA "G" JMP ./Z CPA "X" JMP ./X CPA "Y" JMP ./X CPA "Z" DEFINE XCHANGE PATRN W/O LIST JMP ./Z CPA "^" JMP ./^ STB TRFLG RESET TRANSFER FLAG CPA MINUS JMP NUMBR JSB ASCII COMMAND CHARACTER RSS NUMERIC? JMP FNUM YES, GO TO FIND LINE NUMBER JSB TAB TAB THE COMMAND LINE LDA COMND RESTORE COMMAND CHARACTER CPA "R" JMP ./R CPA "I" JMP ./I JSB SWPET LDA COMND CPA "D" JMP COMPR CPA "J" JUMP TO NEW LINE W/O TRANSFER JMP ./J CCB STB TRFLG SET TRANSFER FLAG CPA "F" JMP COMPR CPA "B" COMPLETE TRANSFER AND START SEARCH JMP ./B FROM THE BEGINzLNING ERR JSB PRINT ERROR DEF ERCK IN INPUT DEC 1 COMMAND ASC 1,?? PRINT "??" ERCK SZB,RSS JMP NODE1 JMP EXIT ABORT IF ERROR. *** LSTLU OCT 606 LIST LU * NUMBR JSB NUMIN CMA,INA COMPLEMENT NUMBER SZA,RSS AND STORE IN COUNT CCA IF NUMBER IS ZERO SET STA COUNT TO -1 JSB NLSLU SET UP NEW LU IF GIVEN ./CC JSB TR SSB EOF FOUND? JMP EOFPR YES, PRINT "EOF" FNUM2 ISZ COUNT FOUND LINE NUMBER? JMP ./CC NO, FETCH NEXT LINE JMP DISPL YES, DISPLAY IT SPC 1 NLSLU NOP JSB NUMIN GET OPTIONAL NEW LIST LU AND O77 SAVE JUST THE LU SZA,RSS IF NOT SUPPLIED LDA TTYLU USE TTY LU IOR B600 SET ECHO AND V-BITS STA LSTLU SAVE THE LU AND O77 MASK TO JUST THE LU CPA D6 LIST DEVICE? JMP NLSLU,I SURE IS, EXIT. CPA D1 HOWZA BOUT THE TTY? JMP NLSLU,I OK ALSO JMP ERR NEITHER IS NO WAY COMPR JSB TR TRANSFER PENDING LINE COMP1 JSB ECH MATCH FIELD SUPPLIED? JMP EOFTS NO USE OLD ONE COMP2 LDA EBUFF YES SWAP EBUFF LDB MBUFF AND MBUFF STA MBUFF SET UP THE STB EBUFF NEW MATCH FIELD LDA ELNG SET THE NEW MATCH LENGTH STA MLNG FOR MBUFF EOFTS LDA SLNG IF AT SSA END OF FILE JMP EOFPR PRINT "EOF" JMP COMP4 START SEARCH COMP3 JSB TR SSB EOF FOUND? JMP EOFPR YES, PRINT "EOF" COMP4 CLA CLEAR STA WINDF WINDOW FLAG STA MCCNT STA JDEF$ ZERO THE INDEFINITE STA IDEF$ FLAGS. CMPR1 JSB MCH JMP DISPL CPA INDEF INDEFINITE CHARACTER? JMP CMPR2 YES - GO SET UP. CPA INDE2 ALTERNATE INDEF. CHAR.? JMP CMPR2 YE?,S CPA DLMTR WINDOW SPECIFIED JMP CMPR5 ON SEARCH CMPR7 STA NUM1 NO - SAVE THE CHARACTER CMPR6 LDA WIND2 PAST ADA SCCNT WINDOW AND LDB WINDF WINDOW SLB FLAG SSA SET? RSS NO -- CONTINUE SCAN JMP COMP3 YES -- PATTERN NOT FOUND SPC 1 JSB SCH GET SOURCE CHARACTER. CLA IF NONE - USE ZERO. CPA NUM1 COMPARE WITH PATTERN JMP CMPR3 COMPARES SO JUMP TO INDEF TEST SZA,RSS IF EOL THEN TAKE JMP COMP3 NOT FOUND EXIT LDB IDEF$ INB,SZB,RSS IF FIRST CHARACTER SEARCH JMP CMPR6 TRY THE NEXT CHARACTER. ISZ JDEF$ END OF INDEF MATCH? JMP COMP3 NO - SO NO MATCH. SPC 1 LDA SCCN$ RESET SOURCE POINTER STA SCCNT AND LDA MCCN$ PATTERN STA MCCNT LOCATION THEN LDB WINDF RESET THE WINDOW FLAG BRS IF TWO SET TO 1 ELSE 0. RSS SKIP THE CLEAR. SPC 1 CMPR2 CLB CLEAR CMPR8 STB WINDF WINDOW FLAG LDA MCCNT SET UP FOR INDEFINITE STA MCCN$ CHARACTER CCA SAVE THE PATTERN LOCATION AND STA IDEF$ SET THE FIRST CHAR. FLAG STA JDEF$ AND THE INDEF FLAG JMP CMPR1 GO GET THE FIRST PATTERN CHARACTER. SPC 1 CMPR3 ISZ IDEF$ FIRST CHAR FOUND AFTER INDEF CHAR? JMP CMPR1 NO CONTINUE LDB WINDF GET WINDOW FLAG AND CPB D1 IF ONE SET TO ISZ WINDF SET TO TWO LDA SCCNT YES - SET STA SCCN$ CURRENT SOURCE POSITION. JMP CMPR1 CONTINUE MATCH SPC 1 CMPR5 CLB,INB IS WINDOW CHARACTER CPB MCCNT THE FIRST CHAR. OF COMMAND? RSS YES -- CONTINUE JMP CMPR7 NO, IGNORE LDA WIND1 START SEARCH AT STA SCCNT BEGINNING OF WINDOW CMA,INA h IF WINDOW ADA SLNG STARTS BEYOND SSA END OF LINE JMP COMP3 DO NOT SEARCH JMP CMPR8 CONTINUE SEARCH WITH INDEF. 1ST SPC 1 FNUM CLA RESET COMMAND STA ECCNT CHARACTER POINTER JSB NUMIN COMPUTE LINE NUMBER CMA,INA,SZA,RSS COMPLEMENT AND IF ZERO CCA SET TO -1 STA COUNT AND SAVE STA TRFLG SET TRANSFER FLAG LDA COUNT LOAD -(LINE NUMBER DESIRED) ADA LINES ADD CURRENT POSITION SSA,RSS IF POSITIVE JMP FNUM3 GO TO BEGINNING OF FILE STA COUNT ELSE USE DIFFERENCE AS LOOP CNTR JMP ./CC GO FIND LINE SPC 1 FNUM3 JSB ./B1 COMPLETE TRANSFER JMP FNUM2 SPACE FORWARD TO DESIRED LINE SPC 1 ./# LDA M3 SKIP OVER STA COUNT ALPHA COMMENT. ./#0 JSB ECH NOP ISZ COUNT JMP ./#0 JSB NUMIN FETCH START NUMBER STA BASE AND SAVE AS BASE JSB NUMIN FETCH 2ND NUMBER SZA,RSS IF ZERO SET LDA D10 TO 10 AND STA INCR SAVE AS INCREMENT JSB ./B1 GO TO BEGINNING OF FILE SPC 1 ./#1 CLA RESET CHARACTER OUTPUT STA OCCNT COUNTER LDA M72 MOVE STA COUNT FIRST 72 ./#2 JSB SCH CHARACTERS JMP SPC OF SOURCE JSB OUTCR TO OUTPUT ISZ COUNT BUFFER JMP ./#2 JMP ./#3 SPC 1 SPC LDA B40 BLANK JSB OUTCR FILL TO ISZ COUNT COLUMN 72 JMP SPC ./#3 CLA,INA SET UP COMMAND STA ECCNT BUFFER COUNTER LDA M3 SET UP LOOP STA COUNT COUNTER FOR 3 CHARACTERS ./#4 JSB ECH FETCH NEXT ALPHA COMMENT LDA B40 LOAD BLANKS IF NO COMMENT JSB OUTCR OUTPUT CHARACTER ISZ COUNT THIRD CHARACTER? JMP ./#4 NO, FETCH NEXT CHARACTER SPC 1 LDA BASE OUTPUT LINE NUMBER CLB JSB DEC IN ASCII LDA BASE UPDATE ADA INCR LINE STA BASE NUMBER LDA OCCNT OUTPUT CHARACTER LDB TBUFF TO DISC BUFFER JSB DOUTP JSB I/PSB INPUT NEXT RECORD SSB AT EOF? JMP EOFPR YES, PRINT "EOF" JMP ./#1 NO, CONTINUE SPC 1 ./= JSB NUMIN GET REQUESTED LENGTH SZA,RSS JMP ERR ADA MAXIN IF LONGER THAN ALLOWABLE SSA,RSS MAX, USE ALLOWABLE MAX CLA AND CONTINUE. ADA MAX STA MAXOP JMP NODE1 SPC 2 TBFIL OCT 40 WINDF NOP MLNG NOP MCCNT NOP MBUFF DEF MBUF0 CHANGES POINTS TO CURRENT MATCH BUFFER JDEF$ NOP INDEFINITE PROCESSING FLAG * ALSO USED FOR IDEF$ NOP FIRST CHAR AFTER INDEF FLAG * ALSO USED FOR INDEF OCT 33 INDEFINITE CHAR. IS ESCAPE. INDE2 OCT 134 ALTERNATE ESCAPE CHAR. MCCN$ NOP INPUT PATTERN LOCATION FOR INDEF SEARCH * * TAB PERFORMS THE TAB OPERATION TAB NOP CLA RESET OUTPUT STA OCCNT CHARACTER COUNTER AND STA CNTRL NON-CONTROL CHARACTER COUNTER LDA TABUF RESET STA TBPNT TAB POINTER TAB1 JSB ECH GET NEXT COMMAND CHARACTER JMP TAB,I END OF COMMAND CPA TABCR TAB CHARACTER ? JMP TBFND YES, GO TO TAB FOUND LDB A IS CHARACTER CMB CONTROL ADB B40 CHARACTER SSB IF YES DO NOT INCREMENT ISZ CNTRL NON-CONTROL CHARACTER COUNTER JSB OUTCR NO, OUTPUT CHARACTER JMP TAB1 TBFND CCB SET SPACE COUNTER STB CNT1 TO -1 LDB TBPNT,I TAB POINTER SZB,RSS ZERO? JMP SPACE YES, OUTPUT SPACE ISZ TBPNT BUMP TAB POrINTER ADDRESS ADB CNTRL PAST SSB,RSS TAB? JMP TBFND+2 YES, GET NEXT TAB STB CNT1 STORE SPACE COUNTER SPACE LDA TBFIL LOAD SPACE JSB OUTCR OUTPUT SPACE ISZ CNTRL BUMP NON-CONTROL CHAR. CNTR. ISZ CNT1 LAST SPACE? JMP SPACE NO, CONTINUE SPACING JMP TAB1 GET NEXT CHARACTER * * SWPET SWAPS EBUFF AND TBUFF SWPET NOP USED AS TEMP LDA TBUFF SWAP LDB EBUFF EBUFF STA EBUFF AND STB TBUFF TBUFF LDA OCCNT STORE OUTPUT CHARACTER STA ELNG LENGTH IN COMMAND LENGTH CLB RESET COMMAND STB ECCNT AND OUTPUT STB OCCNT CHARACTER POINTERS JMP SWPET,I SPC 1 ./W JSB CHKN CHECK PARAMETERS JSB NUMIN FETCH SZA START OF ADA M1 WINDOW STA WIND1 POINTER JSB NUMIN FETCH CMA,INA,SZA,RSS END OF LDA MAXIN WINDOW STA WIND2 POINTER JMP NODE1 GET NEXT COMMAND SPC 1 WIND1 NOP WIND2 DEC -150 SPC 1 CHKN NOP NPARA JSB NUMIN FETCH NEXT PARAM LDA ELNG IF END OF COMMAND CPA ECCNT THEN, ALL PARAMETERS CLA,INA,RSS WERE NUMERIC JMP NPARA ELSE, FETCH NEXT PARAM STA ECCNT RESET COUNT AND RETURN JMP CHKN,I * * ./T JSB ECH STEP PAST TAB CHAR. JMP ./T1 NONE, SO DISABLE TAB JSB CHKN OTHERWISE CHECK PARAMETERS JSB ECH GET TAB CHARACTER ./T1 CCA SET TAB CHARATER TO -1 TO DISABLE STA TABCR STORE TAB CHARACTER LDA TABUF RESET TAB ADDRESS STA TBPNT POINTER LDA M10 SET COUNTER STA CNT1 TO -10 LDA ECCNT IF ONLY TAB CHARACTER CPA ELNG GIVEN, THEN RETURN JMP NODE1 WITH TABS UNCHANGED NXTNM JSB NUMIN GET NEXT N UMBER CMA,INA,SZA FIRST NUMBER ZERO? INA NO, INCREMENT IT STA TBPNT,I STORE TAB NUMBER ISZ TBPNT BUMP POINTER ISZ CNT1 LAST TAB? JMP NXTNM NO, CONTINUE JMP NODE1 YES, GET NEXT COMMAND * TABUF DEF TAB0 TABCR OCT 73 DEFAULT TAB CHARACTER = ";" TBPNT NOP * * TR TRANSFERS CURRENT SOURCE LINE TO DEST. AND GETS NEXT LINE TR NOP LDB SLNG IF AT SSB EOF, JMP TR,I RETURN LDB TRFLG TRANSFER RECORD TO SZB DESTINATION FILE? JSB O/PSB YES, OUTPUT RECORD LDB LSTFG LIST CURRENT SZB RECORD? JSB LSTSB YES, PERFORM LIST JSB I/PSB GET NEXT RECORD JMP TR,I SPC 1 ./^ JSB NUMIN GET LINES TO SUBTRACT. LDB T#REM CHECK # DEST REC >65K SZB AND IGNORE COMMAND JMP ERR IF SO. LDB T#REC CURRENT DESTINATION LINE CMB,SSB,RSS IF > 32K,IGNORE JMP ERR COMMAND. SZA,RSS NULL _ 1 INA ADA B SSA,RSS IF OFF THE TOP END, JMP ERR IGNORE COMMAND. STA COUNT JMP FNUM3 GO TO NEW LINE. SPC 1 NUMIN NOP JSB PARAM FETCH NEXT INPUT PARAMETER JMP ERR IF NEG. OR ASCII, ERROR!!! JMP NUMIN,I ELSE RETURN SKP * PARAM FETCHES ONE WORD PARAMETERS SEPARATED BY COLONS OR COMMAS SPC 1 PARAM NOP CLB RESET STB NUM1 NUMBER STB NUM10 ACCUMULATORS STB NEGFL AND NEGATIVE FLAG JSB NXCHR FETCH FIRST CHAR JMP ENDPR NULL PARAM, END JSB ASCII IF CHARACTER IS NON-NUMERIC JMP CHAR GO TO ASCII PARAM. ROUTINE NUMN1 ADA NUM10 ADD NUMBER TO PREVIOUS TOTAL SSA OVERFLOW ENCOUNTERED JMP ERR YES, ERROR IN PARAM. STA NUM1 SAVE NEW TOTAL MPY D10 2 COMPUTE NEXT PARTIAL SUM SZB,RSS IF OVERFLOW FROM SSA MULTIPY, SET PARTIAL TO VALUE WHICH LDA M10 WILL CAUSE OVERFLOW WITH NEXT CHAR. STA NUM10 SAVE PARTIAL SUM PARM1 JSB NXCHR FETCH NEXT CHARACTER JMP ENDPR LAST CHAR.? GO TO END JSB ASCII ASCII TO NUMERIC JMP ERR NON-NUMERIC, GO TO ERROR!!! JMP NUMN1 GO TO TOTALIZE SPC 1 ENDPR LDA NUM1 LOAD TOTAL LDB NEGFL IF NEGATIVE SZB FLAG IS SET CMA,INA,RSS COMPLEMENT TOTAL, SKIP ISZ ISZ PARAM BUMP ADDRESS FOR POS. NUMBER JMP PARAM,I RETURN SPC 1 CHAR ISZ NEGFL BUMP NEGATIVE FLAG LDA COMND FETCH FIRST CHARACTER CPA MINUS IF MINUS SIGN JMP PARM1 COMPUTE NUMBER ALF,ALF LEFT JUSTIFY IOR B40 BLANK FILL STA NUM1 AND SAVE JSB NXCHR FETCH NEXT CHARACTER JMP ENDCR LAST CHARACTER RETURN XOR NUM1 INSERT LAST CHARACTER XOR B40 IN LOWER BYTE OF PARAM STA NUM1 AND SAVE JSB NXCHR SEARCH FOR RSS NEXT DELIMITER JMP *-2 OR END ENDCR LDA NUM1 LOAD PARAMETER JMP PARAM,I AND RETURN SPC 1 ASCII NOP STA COMND SAVE CHARACTER ADA M58 GREATER THAN SSA,RSS "9" ? JMP ASCII,I YES, RETURN ADA D10 LESS THAN SSA,RSS "0" ? ISZ ASCII NO, BUMP RETURN ADDRESS JMP ASCII,I SPC 1 NXCHR NOP FCR1 JSB ECH FETCH NEXT COMMAND CHAR. JMP NXCHR,I NO MORE CHARS.? RETURN CPA B40 IGNORE ALL JMP FCR1 SPACES CPA B54 IF A COMMA JMP NXCHR,I FOUND, RETURN ISZ NXCHR BUMP RETURN ADDRESS JMP NXCHR,I SPC 1 COUNT NOP MATCH NOP ALSO NUM1 NOP ALSO NUM10 NOP ALSO )NNLH UNCON NOP * * * CXT NOP THIS ROUTINE DOES ALL THE CLA MATCHING IN THE SOURCE BUFFER STA OCCNT AND REPLACEMENT IN THE STA XCCNT DESTINATION BUFFER FOR STA YCCNT EXCHANGE OPERATIONS. STA SCCNT LDB UNCON SZB JMP CXTUC STA BWIND RESET WINDOW BIAS STA MATCH AND MATCH FLAG. LDA WIND1 START SEARCH AT CXT1 STA SCCNT BEGINNING OF WINDOW CMA,INA IF BEYOND ADA SLNG END OF SSA RECORD JMP CXT,I RETURN CP1 JSB SCH FETCH NEXT SOURCE CHAR. JMP CXT,I END OF SOURCE, RETURN CPA FCHAR EQUAL TO 1ST CHAR. OF PATTERN? RSS JMP CP1 NO, GO LOOK AT NEXT CHAR. LDA SCCNT YES, SAVE PRESENT STA SCCN$ SOURCE POSITION ADA BWIND BEYOND ADA WIND2 UPPER BOUND CMA,SSA,INA,SZA OF WINDOW? JMP CXT,I YES, PATTERN NOT FOUND CLA,INA STA XCCNT START XCH WITH 2ND CHAR. SPC 1 CPNXT JSB XCH FETCH NEXT PATTERN CHAR. JMP XFND END OF PATTERN - MATCH!!! STA T1 SAVE PATTERN CHAR. JSB SCH FETCH NEXT SOURCE CHAR. JMP CXT,I END OF SOURCE, NO MATCH ǩN CPA T1 CHARACTER MATCH? JMP CPNXT YES, CONTINUE COMPARE LDA SCCN$ NO, BACK UP AND JMP CXT1 CONTINUE SEARCH SPC 1 XFND LDA XLIST SET LIST STA MATCH FLAG LDA SCCNT SAVE CURRENT STA T1 POSITION IN SOURCE CLA RESET STA SCCNT SOURCE CHARACTER COUNTER STA OCCNT OUTPUT CHARACTER COUNTER STA YCCNT REPLACE CHARACTER COUNTER SPC 1 LDA SCCN$ MOVE CMA,INA CHARACTERS INA,SZA,RSS PRECEEDING JMP RPC2 STA T2 MATCH RPC1 JSB SCH CHARACTERS HLT 77B IN JSB OUTCR SOURCE ISZ T2 LINE JMP RPC1 TO OUTPUT SPC 1 RPC2 JSB YCH MOVE JMP RPC3 REPLACEMENT CHARACTERS JSB OUTCR TO OUTPUT JMP RPC2 SPC 1 RPC3 LDA OCCNT SAVE POSITION STA T2 FOR CONTINUATION OF SEARCH SPC 1 LDA T1 RESET SOURCE CHAR. POINTER STA SCCNT TO REMAINDER OF SOURCE RECORD CPA SLNG IF AT END OF JMP ENDCX RECORD, SEARCH FINISHED RPC4 JSB SCH MOVE REMAINDER JMP ENDRP OF SOURCE LINE JSB OUTCR TO OUTPUT JMP RPC4 SPC 1 ENDRP JSB ./R$ REPLACE OLD SOURCE LINE LDA YLNG COMPUTE CMA,INA BIAS FOR ADA XLNG UPPER BOUND ADA BWIND OF WINDOW STA BWIND LDA T2 RESTORE POSITION AND JMP CXT1 CONTINUE SEARCH SPC 1 ENDCX JSB ./R$ REPLACE LINE JMP CXT,I AND RETURN SPC 1 * CODE FOR UNCONDITIONAL REPLACE. SPC 1 CXTUC LDA XLIST TO LIST OR NOT STA MATCH TO LIST? LDA WIND1 CMA,INA,SZA,RSS JMP CXTU2 STA ASCII CXTU1 JSB SCH MOVE SOURCE CHARACTERS LDA B40 PRECEEDING WINDOW JSB OUTCR TO OUTPUT. ISZ ASCII JMP CXTU1 CXTU2 JSB XCH PASS OVER DUMMY SEARCH JMP CXTU3 PATTERN. JSB SCH NOP JMP CXTU2 SPC 1 CXTU3 JSB YCH MOVE REPLACEMENT CHARACTERS JMP CXTU4 TO OUTPUT. JSB OUTCR JMP CXTU3 SPC 1 CXTU4 JSB SCH MOVE REMAINDER OF RECORD JMP ENDCX TO OUTPUT JSB OUTCR JMP CXTU4 SPC 2 SCCN$ NOP BWIND NOP FCHAR NOP XCCNT NOP YCCNT NOP XLNG NOP YLNG NOP YOFFS NOP * * "XCH" FETCHES NEXT CHARACTER FROM SEARCH PATTERN XCH NOP LDA XCCNT CPA XLNG JMP XCH,I ISZ XCCNT ISZ XCH INA WATCH OUT FOR THIS ONE CLE,ERA ADA XYBUF LDA A,I SEZ,RSS ALF,ALF AND LBYTE JMP XCH,I * * "YCH" FETCHES NEXT CHARACTER FROM REPLACEMENT PATTERN YCH NOP LDA YCCNT CPA YLNG JMP YCH,I ISZ YCCNT ISZ YCH ADA YOFFS CLE,ERA ADA XYBUF LDA A,I SEZ,RSS ALF,ALF AND LBYTE JMP YCH,I * * "OUTCR" OUTPUTS ONE CHARACTER TO TBUFF OUTCR NOP LDB OCCNT CPB MAXOP JMP OUTCR,I CLE,ERB ADB TBUFF SEZ,RSS ALF,SLA,ALF XOR B,I XOR B40 STA B,I ISZ OCCNT JMP OUTCR,I * DLMTR OCT 57 DEFAULT DELIMITER IS "/" * DLMST STA DLMTR IOR B6400 SET UP PROMPT STA / CHARACTER JMP NODE1 * * ./U CLA ./V CCB,RSS ./Z CLA IF "Z" RESET LIST FLAG ./X STA XLIST IF "X" OR "Y" SET FLAG STB UNCON JSB ECH FETCH 1ST PATTERN CHARACTER JMP XSET1 NO MORE CHARACTERS SO SET EXFLG LDB ECCNT LAST CHARACTER CPB ELNG IN COMMAND? JMP DLMST YES, GO CHANGE DELIMITER CLB STB XLNG INITIALIZE PATTERN LENGTH CNTR CPA DLMTR IF NULL iPATTERN CHARACTER JMP ERX CHECK FOR ERROR STA FCHAR SAVE 1ST CHAR. IN PATTERN XSET2 JSB ECH FETCH NEXT CHARACTER JMP ERR NO DELIMITERS FOUND, SO ERROR ISZ XLNG INCREMENT PATTERN LENGTH CPA DLMTR DELIMITER? CLA,RSS JMP XSET2 NO, CONTINUE TO SEARCH XSET4 LDA XLNG STORE POSITION ADA D2 OF REPLACEMENT STA YOFFS PATTERN CMA,INA COMPUTE AND ADA ELNG STORE REPLACEMENT STA YLNG PATTERN LENGTH LDA EBUFF SWAP LDB XYBUF EBUFF STB EBUFF AND STA XYBUF XYBUF XSET1 CLA,INA SET EXCHANGE FLAG STA EXFLG LDB COMND LOAD COMMAND CHARACTER CPB "G" PENDING LINE EXCHANGE? JMP ./G YES - GO DO IT CPB "Y" IF "Y" COMMAND RSS PERFORM SEARCH JMP NODE2 ELSE, FETCH NEXT COMMAND JSB TR MOVE PENDING LINE SPC 1 * PRECEDE "X" PATTERN BY INDEFINITE CHARACTER AND USE AS "F" * PATTERN CLA RESET STA XCCNT XCH AND STA OCCNT OUTCR CHARACTER COUNTERS STA EXFLG AND EXCHANGE FLAG LDA DLMTR MAKE INDEFINITE CHAR. 1ST IN PATTERN XSET3 JSB OUTCR OUTPUT CHARACTER JSB XCH FETCH NEXT PATTERN CHARACTER RSS NO MORE CHARACTERS JMP XSET3 GO TO ADD CHAR. TO PATTERN JSB SWPET SWAP OUTPUT BUFF WITH COMND BUFF JMP COMP2 GO TO SEARCH ROUTINE SPC 1 ERX LDB UNCON NULL PATTERN IS OK FOR A U SZB,RSS OR V OPERATION. JMP ERR BUT AN INPUT ERROR FOR X,Y,Z. JMP XSET4 * ./G JSB CXT PERFORM EXCHANGE JMP DISPL THEN DISPLAY LINE XYBUF DEF XYBF0 CHANGES. POINTS TO CURRENT EXCHANGE * BUFFER. TBUFF DEF NBUF0 CHANGES POINTS TO CURRENT CONSOLE * ~ OUTPUT BUFFER. XLIST NOP * * O/PSB NOP LDA EXFLG PATTERN REPLACEMENT SZA,RSS FLAG SET? JMP OPSB2 NO, MOVE CURRENT SOURCE LINE JSB CXT YES, PERFORM REPLACEMENT LDA MATCH LIST PATTERN SZA,RSS MATCH? JMP OPSB1 NO LDA LSTFG THIS PREVENTS DOUBLE LIST SZA,RSS WHEN PATTERN MATCH OCCURS JSB LSTSB LIST NEW LINE OPSB1 LDA SLNG IF RECORD HAS BEEN REDUCED SZA,RSS TO ZERO LENGTH, DON'T JMP O/PSB,I OUTPUT TO DEST. OPSB2 LDA SLNG GET CURRENT # OF CHARS. LDB SBUFP AND LOCATION OF SOURCE LINE JSB DOUTP CALL OUTPUT ROUTINE JMP O/PSB,I * * O/PEB LDA SLNG IF NOT AT SSA,RSS EOF THEN JSB O/PSB OUTPUT CURRENT LINE JSB TAB TAB COMMAND LINE ./R JSB ./R$ PERFORM REPLACEMENT ISZ COMND IF P COMMAND SKIP JMP NODE1 GET NEXT COMMAND ISZ CFLG IF C COMMAND SKIP JMP DISPL GO DISPLAY THE NEW LINE CCA SET LIST COUNT TO STA COUNT ONE LINE. JMP ./CC GO FINISH THE C COMMAND * * ./R$ REPLACES CURRENT LINE ON INPUT BUFFER WITH LINE IN COMMAND BUFFER ./R$ NOP LDA SLNG IF AT EOF SSA INSERT NEW LINE BEFORE LDA M2 EOF AND MAKE IT PENDING SLA,ARS COMPUTE ADDRESS INA OF NEXT ADA SBUFP SOURCE RECORD LDB OCCNT REPLACE CURRENT RECORD LENGTH STB SLNG WITH COMMAND RECORD LENGTH CMB,INB CONVERT # CHARS TO BRS MINUS # OF WORDS STB CNT1 STORE COMPLEMENT IN COUNTER ADA B ADD -(# OF WORDS) TO NEXT RECORD ADRS STA SBUFP TO GET NEW SOURCE FILE POINTER SZB,RSS ZERO LENGTH RECORD? JMP ./R$,I RETURN STA P1 LDB TBUFF STARTING ADDRESS OF COMMAND RECORD CTOS LDA B,tI MOVE STA P1,I COMMAND INB RECORD ISZ P1 TO ISZ CNT1 SOURCE JMP CTOS FILE JMP ./R$,I SPC 1 ./I LDA OCCNT LOAD RECORD LENGTH LDB TBUFF LOAD RECORD LOCATION JSB DOUTP OUTPUT RECORD JMP NODE1 * * * SCH FETCHES NEXT SOURCE CHARACTER * SCH NOP ENTER WITH CHARACTER COUNT LDA SCCNT SCCNT AND SOURCE BUFFER START CPA SLNG ADDRESS IN SBUFP. JMP SCH,I ISZ SCCNT IF AT END OF SOURCE RECORD, ISZ SCH EXIT TO P+1. CLE,ERA ADA SBUFP IF NOT AT END OF SOURCE RECORD, LDA A,I EXIT TO P+2 WITH ASCII OF NEXT SEZ,RSS CHARACTER IN LOW BYTE OF A. ALF,ALF AND LBYTE JMP SCH,I * * "MCH" FETCHES NEXT FIND FIELD CHARACTER MCH NOP LDA MCCNT CPA MLNG JMP MCH,I ISZ MCCNT ISZ MCH CLE,ERA ADA MBUFF LDA A,I SEZ,RSS ALF,ALF AND LBYTE JMP MCH,I * * "ECH" FETCHES NEXT COMMAND CHARACTER ECH NOP LDA ECCNT CPA ELNG JMP ECH,I ISZ ECCNT ISZ ECH CLE,ERA ADA EBUFF LDA A,I SEZ,RSS ALF,ALF AND LBYTE JMP ECH,I SKP / OCT 6457,3537 "CR / BELL _" SPC 1 ./CG LDA /+1 ALF,ALF STA /+1 REVERSE ORDER OF _ AND BELL. CLA,INA XOR LN SHORTEN OR LENGTHEN STA LN MESSAGE LENGTH. JMP NODE1 SPC 1 TTYIP NOP JSB EXEC PRINT DEF *+5 PROMPT DEF D2 CHARACTER DEF TTYLU DEF / DEF LN ALTERNATE -4 & -3. NOP SPC 1 JSB EXEC INPUT DEF *+5 COMMAND DEF D1 FROM DEF TTYLU TELETYPE EBUFF DEF EBUF0 CHANGES, POINTS TO CURRENT COMMAND *  BUFFER. DEF MAXIN STB ELNG CLA RESET STA ECCNT ALL STA SCCNT CHARACTER STA OCCNT COUNTERS JMP TTYIP,I SPC 2 CFLG NOP ALSO SBUFP NOP POINT TO CURRENT LOC IN SORC BUFFER SLNG NOP LENGTH OF SOURCE RECORD (EVEN) ELNG NOP LN OCT -4 ALTERN. WITH -3 AFTER CONTROL G. SCCNT NOP D10K DEC 10000 D1000 DEC 1000 D100 DEC 100 SKP ./N JSB ECH ANY OTHER CHARACTER? JMP NP NO. PRINT SOURCE LINE. CPA "D" IF N IS FOLLOWED BY D, RSS PRINT DESTINATION LINE. JMP ERR ELSE ASK AGAIN. DLD T#REC JMP CVX NP DLD LINES FETCH CURRENT LINE NUMBER CVX JSB DEC CONVERT NUMBER TO ASCII LDB OCCNT CALL LDA TBUFF PRINT JSB LST ROUTINE JMP NODE1 SPC 1 ./H LDA SLNG SSA IF AT END OF FILE JMP ERR GIVE ERROR CLB JMP CVX SPC 1 ./S CLB LDA T#SEC COMPUTE NUMBER OF WORDS ASL 7 ALREADY STORED ON DISC, STA DEC SAVE, THEN COMPUTE LDA DBUF$ # OF WORDS IN DEST CMA,INA BUFFER. ADA DBUFP CLE ADA DEC ADD BACK LSB'S OF MPY SEZ AND BUMP B IF E SET. INB JMP CVX SPC 1 DEC NOP CLE,SZB,RSS >65K? JMP SNGLP DIV D10K WORK ON EXCESS FIRST STB I/PSB SAVE REMAINDER FOR NEXT PASS. CLB JSB DEC4 LDA I/PSB CCE SKIP DIV D10K THIS TIME SNGLP JSB DEC4 JMP DEC,I SPC 1 DEC4 NOP SEZ IF NUMBER >65K, SKIP JMP THOU FIRST DIVIDE, PASS 2. DIV D10K OUTPUT TEN THOUSANDS JSB CONVT DIGIT THOU DIV D1000 OUTPUT THOUSANDS JSB CONVT DIGIT DIV D100 OUTPUT 3 HUNDREDS JSB CONVT DIGIT DIV D10 OUTPUT TENS JSB CONVT DIGIT AND JSB CONVT ONES DIGIT JMP DEC4,I SPC 1 CONVT NOP STB NT SAVE REMAINDER SZA IF JMP CONV1 LEADING CPA OCCNT ZERO JMP CONV2 DO NOT OUTPUT IT CONV1 IOR B60 CONVERT NUMBER TO ASCII JSB OUTCR MOVE CHARACTER TO BUFFER CONV2 CLB SET REGISTERS UP LDA NT FOR NEXT DIVIDE JMP CONVT,I * * I/PSB FETCHES NEXT RECORD FROM SOURCE BUFFER * RETURNS WITH AN EOF FLAG, I.E. B=-1 EOF FOUND, B=0 NO EOF I/PSB NOP LDA KBDIN IF KEYBOARD INPUT, SZA DON'T DO INPUT FROM DISC. STA SLNG RATHER, SIMULATE EOF. I/PS1 JSB DINP CLB RESET KBD FLAG STB KBDIN LDB SLNG LOAD RECORD LENGTH SZB,RSS IF ZERO LENGTH RECORD JMP I/PS1 IGNORE, AND GET THE NEXT RECORD SSB IF LENGTH < 0, RETURN WITH JMP I/PSB,I EOF FLAG SET IN REGISTER CLB CLEAR EOF FLAG STB SCCNT RESET SOURCE CHARACTER CNTR JMP I/PSB,I * DISPL CLB RESET STB EXFLG EXCHANGE FLAG LDA TTYLU AND THE STA LSTLU LIST LU JSB LSTSB LIST CURRENT LINE JMP NODE1 SPC 1 ./O JSB O/PSB OUTPUT PENDING LINE, THEN RSS USE THE /P COMMAND ON IT SPC 2 ./C STB CFLG SET THE "C"FLAG TO -1. * ./P LDA DLMTR USE DLMTR FOR TAB STA TBFIL JSB TAB TAB THE LINE LDA SLNG IF AT EOF SSA PRINT EOF AND GET JMP ERR NEXT COMMAND. JSB SWPET SET UP INPUT BUFFER CCA SET LIST FLAG STA COMND FOR ./R MODE STB PMODE INITIAL MODE IS REPLACE PNXT JSB ECH GET A CHARACTER JMP PFIN IF EOL THEN EXIT CLB SET B FOR MODE CHECK  CPA %R CONTROL R? JMP MODE YES GO RESET MODE INB INSERT MODE? CPA %I JMP MODE YES GO RESET CPA %S ALTERNATE COMMAND JMP MODE INB SET FOR DELETE MODE CPA %D DELETE MODE? JMP MODE YES GO RESET CPA %T TRUNCATE LINE MODE? JMP ./R YES GO WRAP UP LDB PMODE GET THE CURRENT MODE CPB ZERO IF REPLACE JMP PRPL GO REPLACE CPB D1 IF INSERT JMP PINS GO INSERT CPB D2 IF DELETE JMP PDLS GO DELETE SPC 2 PRPL CPA DLMTR IS IT REALLY COPY JMP PCOPY YES GO COPY JSB OUTCR OUTPUT THE NEW CHARACTER SPC 1 PDLS JSB SCH GET THE OLD CHARACTER NOP IGNOR EOL JMP PNXT BURN THE OLD AND GO GET THE NEXT SPC 1 PCOPY JSB SCH GET THE CURRENT CHARACTER LDA B40 USE BLANK IF UNDEFINED JMP PINS2 SPC 1 PINS CPA DLMTR INSERT SPACES FOR LDA B40 DELIMITER PINS2 JSB OUTCR SEND IT OUT JMP PNXT GO PROCESS THE NEXT CHAR. SPC 1 PFIN JSB SCH MOVE THE REST JMP ./R OF THE LINE JSB OUTCR TO THE OUTPUT JMP PFIN BUFFER SPC 1 %R OCT 22 CONTROL R %I OCT 11 CONTROL I %D OCT 4 CONTROL D %S OCT 23 CONTROL S %T OCT 24 CONTROL T PMODE NOP * * SPSP ASC 1, MSPSP DEF SPSP * LST NOP CMB,INB,SZB COMPLEMENT CHARACTER COUNT JMP LST1 CONTINUE IF NOT ZERO LDA MSPSP OTHERWISE OUTPUT SPACES LDB M2 LST1 ADB M2 ADD TWO TO THE CHAR. COUNT STB LSTB2 AND SET IT CCB SUBTRACT ONE ADB A FROM THE BUFFER ADDRESS STB LSTB1 AND SET IT LDA B,I GET THE CURRENT CHAR. STA LSTB3 SAVE IT LDA SPSP NOW SET STA B,I THE FIRST CHARS. TO BLANKS SPC 1 JSB EXEC ***************** DEF *+5 DEF D2 LIST DEF LSTLU RECORD LSTB1 NOP DEF LSTB2 NOP **************** SPC 1 LDA LSTB3 RESTORE THE STA LSTB1,I OLD WORD. JMP LST,I SPC 1 LSTB2 NOP LSTB3 NOP SPC 1 LSTSB NOP USED AS TEMP LDA SBUFP FETCH RECORD LENGTH LDB SLNG AND LOCATION SSB IF AT EOF JMP EOFPR GO PRINT "EOF" JSB LST PERFORM LIST JMP LSTSB,I SPC 2 P1 NOP P2 NOP * EOFND STB SLNG JMP DINP,I * DINP NOP LDA SLNG FETCH RECORD LENGTH SSA,INA AT EOF? JMP DINP,I YES, RETURN ISZ LINES BUMP SOURCE LINE COUNTER JMP *+2 ALLOWING HUGE NUMBER ISZ LINEM (DOUBLE WORD). ARS COMPUTE ADDRESS ADA SBUFP OF NEXT RECORD CPA SBEND IF AT END OF BUFFER JMP DINP2 GO TO INPUT FROM DISC LDB A,I LOAD RECORD LENGTH OF NEXT RECORD INA STORE ADDRESS OF NEXT STA SBUFP RECORD IN INPUT BUFFER SSB IF RECORD LENGTH < 0, JMP EOFND THEN GO TO EOF FOUND BLF,BLF CONVERT BLR TO # OF STB SLNG CHARACTERS AND SAVE ADB MAXIN IF RECORD GREATER CMB,SSB,INB,SZB THAN MAX. LENGTH JMP $$$ER GIVE CORRUPT FILE ERROR LDB SLNG FETCH RECORD BRS LENGTH IN WORDS ADB A IF RECORD IS CMB,INB CONTAINED IN ADB SBEND INPUT BUFFER SSB,RSS THEN JMP DINP,I RETURN LDB SLNG FETCH RECORD LENGTH BRS IN WORDS CMB,INB COMPLEMENT FOR LOOP COUNTER STA P1 SET UP ADA MWDC1 POINTERS STA P2 FOR STA oSBUFP RECORD MOVE LDA P1 CMA,INA ADA B INA ADA LWA SSA,RSS JMP *+3 CMA,INA ADB A SZB,RSS JMP DINP3 SPC 1 DINP1 LDA P1,I MOVE STA P2,I RECORD ISZ P1 RESIDUE ISZ P2 IN FRONT OF INB,SZB INPUT BUFFER JMP DINP1 DINP3 JSB MIN READ BUFFER FROM DISC JMP DINP,I DINP2 JSB SQ JMP DINP,I * SQ NOP JSB MIN FILL INPUT BUFFER FROM DISC LDA SBUF$,I FETCH RECORD LENGTH LDB SBUF$ COMPUTE START OF INB RECORD ADDRESS STB SBUFP AND SAVE ALF,ALF CONVERT RECORD LENGTH ALS WORD TO NUMBER STA SLNG OF CHARACTERS AND SAVE SSA,RSS IF EOF SKIP ADA MAXIN IF RECORD LENGTH GREATER CMA,SSA,INA,SZA THAN MAX ALLOWED JMP $$$ER GIVE CORRUPT FILE ERROR JMP SQ,I * SEC# NOP * * * MIN MOVES SOURCE FILE INTO CORE MIN NOP LDA RSEC# GET RELATIVE SECTOR OF FILE LDB MRGFL SZB,RSS IF DOING A MERGE, DON'T OVERWRITE STA SVRSC THE SAVED REL. SECTOR. LDB M1 CODE FOR READ JSB DI/O READ IN SOURCE FILE SBUF$ NOP PERMANENT POINTER TO SORC BUFFER WDCT2 NOP LDA RSEC# GET OLD REL SECT NO ADA SCT ADJUST FOR TRANSFER STA RSEC# AND SAVE NEW RS# LDB MRGFL IN THE MIDST OF A MERGE? SZB,RSS STA ABS# NO. SAVE READ POINTER SPC 1 LDA WDCT2 STORE END ADA SBUF$ OF DATA ADDRESS STA SBEND IN SBEND JMP MIN,I EXIT ABS# NOP PERM. POINTER TO DEST FILE READ SECTOR SKP DOUTP NOP CMA TRUNCATE STA ODDF (ALWAYS -VE) ADA MAXOP OUTPUT CMA,SSA,RSS LENGTH CLA TO MAXOP. ADA MAXOP  CPA MAXOP IF RECORD LENGTH=MAXOP JMP ODD? TEST FOR ODD # CHARACTERS. DOUP1 STB P1 SAVE BUFFER ADDRESS SLA,ARS CONVERT # CHARS. TO # WORDS INA ADD ONE WHEN ODD ISZ T#REC BUMP NUMBER OF RECORDS CNTR. JMP *+2 ALLOWING HUGE NUMBER ISZ T#REM (DOUBLE INTEGER) ALF,ALF MOVE WORD COUNT TO STA DBUFP,I UPPER BYTE AND STORE ALF,ALF COMPUTE LOOP CMA,INA,SZA,RSS COUNTER FOR MOVE. IF = 0 JMP DOUP5 GO TO END BUFR. TEST STA CNT1 ELSE SAVE IT. DOUP2 ISZ DBUFP BUMP DEST. BUFFER POINTER LDB DBUFP CPB DBEND END OF BUFFER? JSB DOUT YES, OUTPUT IT LDA P1,I MOVE NEXT WORD STA DBUFP,I TO OUTPUT BUFFER ISZ P1 BUMP SOURCE ADDRESS ISZ CNT1 LAST WORD IN RECORD? JMP DOUP2 NO, CONTINUE MOVE LDA ODDF IF RECORD LENGTH NOT ODD, SZA JMP DOUP5 GO AWAY NORMALLY. LDA DBUFP,I BUT WITH RECORD LENGTH ODD, AND HBYTE REPLACE THE EVEN CHARACTER IOR TBFIL BEYOND DESIRED LENGTH WITH STA DBUFP,I A BLANK. DOUP5 ISZ DBUFP BUMP DEST. BUFR PNTR. LDB DBUFP CPB DBEND IF AT END OF DEST. BUFFER JSB DOUT OUTPUT BUFFER TO DISC, JMP DOUTP,I ELSE RETURN SPC 1 ODD? SLA,RSS JMP DOUP1 EVEN. NO FIXUP NEEDED. CLA STA ODDF SET TO SHOW ODD. LDA MAXOP RESTORE FOR MORE PROCESSING. JMP DOUP1 SPC 1 ODDF OCT -1 0 MEANS ODD, -VE MEANS EVEN. SKP * DOUT WRITES THE DESTINATION BUFFER ON THE DISC. SPC 2 DOUT NOP LDA SCT LOAD OF SECTRS TO BE WRITTEN LDB PBFLG PARTIAL BUFFER TO SZB BE WRITTEN? LDA B YES, A=# OF SECTORS STA SEC# STORE NUMBER OF SECTORS OF WRITE LDA LATRK CMA ADA WSgEC# ADA SEC# SSA,RSS OVERWRITE? JMP DSCOV YES. ABORT LDA SEC# NUMBER OF SECTORS CLB ASL 7 COMPUTE NUMBER OF WORDS STA DOU# AND SAVE FOR DISC I/O LDA WSEC# LDB M2 CODE FOR WRITE JSB DI/O GO TO DISC PROCESSOR DEF DBUF$,I BUFFER DOU# NOP NUMBER OF WORDS LDA SEC# GET NUMBER OF SECTORS ADA T#SEC UPDATE CURRENT # OF SEC#S. IN DEST FILE STA T#SEC AND SAVE LDA SEC# ADA WSEC# ADD TO CURRENT STA WSEC# AND SAVE LDB DBUF$ RESET DESTINATION STB DBUFP BUFFER POINTER JMP DOUT,I SPC 1 MWDC1 NOP DBUFP NOP POINT TO CURRENT LOC IN DEST BUFFER CNT1 NOP ALSO , T#REC NOP CURRENT # OF REC IN DEST FILE T#REM NOP MOST SIG BITS FOR >65K T#SEC NOP CURRENT # OF SCTRS IN DEST FILE TEMP NOP ./EFL NOP PASS1 DEC -1 FIRST PASS FLAG SKP ./K JSB ./B1 RESET TO START OF FILE. ./K0 LDA SLNG RECORD LENGTH, CHARS. LDB MAXOP REQUESTED FIELD WIDTH. CMB,INB ADB A IF > OR = SPECIFIED MAX., SSB,RSS LDA MAXOP SET TO REQUEST MAX. SSA IF EOF, PRINT EOF JMP EOFPR AND GET NEXT COMMAND. SLA DON'T THROW AWAY ODD CHARACTER, INA BUMP COUNT TO EVEN. ARS ./K1 ADA M1 SZA,RSS JMP ./K2 PROCESS THIS RECORD. LDB SBUFP ADB A POINT TO NEXT CHAR. PAIR LDB B,I CPB SPSP IF THEY ARE BOTH BLANKS, JMP ./K1 CONTINUE TO SHORTEN RECORD. ./K2 INA CORRECT TO NEW # OF WORDS. ALS CONVERT TO CHARACTER COUNT. LDB SBUFP NLHHN JSB DOUTP SEND RECORD TO DEST. FILE JSB DINP GET NEXT RECORD. JMP ./K0 * ./M JSB GETFN GET THE FILE NAME JMP ERR ERROR IF NO FILE NAME JSB TR TRANSFER THE PENDING LINE LDA SBUFP SAVE THESE POINTERS FOR WHEN LDB SLNG WE RETURN DST SB&SL STA MRGFL JSB INSRC FETCH THE FILE JMP SRCUN COULDN'T FIND FILE LDA SVRSC CAN'T ALLOW DISC WRITE OVER STA ABS# OUR PRESENT READ BUFFER SPC 1 JSB TR TRANSFER THE CONTENTS SSB,RSS OF THE MERGE FILE TO THE DEST JMP *-2 BUFFER UNTIL EOF DETECTED CLA STA MRGFL LDA SVRSC NOW BEGIN THE LABORIOUS PROCESS STA RSEC# OF RESTORING THE POINTERS. JSB MIN GET THE OLD SOURCE BUFFER AGAIN. DLD SB&SL GET SBUFP AND SLNG STA SBUFP STB SLNG JMP DISPL SPC 1 SRCUN CLA STA MRGFL RESET THE MERGE FLAG JSB PRINT (FALSE ALARM!) DEF DISPL DEC 8 ASC 8,SOURCE UNDEFINED SPC 2 SB&SL BSS 2 TEMP FOR SLNG AND SBUFP MRGFL NOP <> 0 IF DOING A MERGE SVRSC NOP TEMP FOR RSEC# SPC 1 ./J LDA SLNG IF NOT SSA,RSS AT EOF JSB O/PSB OUTPUT PENDING LINE CLA RESET THE EXCHANGE STA EXFLG FLAG AND CLA,INA THE CURRENT STA LINES LINE NUMBER LDA FSECP RESET POINTERS LDB PASS1 IF 1ST PASS, RESET TO SSB THE START OF THE SOURCE FILE, LDA SSPTR ELSE...TO THE START OF THE DEST FILE STA RSEC# JSB SQ READ THE FIRST BLOCK JMP COMP1 START SEARCH SPC 1 * ./B RESETS SOURCE POINTER TO BEGINNING OF FILE BY * COMPLETION OF TRANSFER OF SOURCE FILE TO DESTINATION * FILE THEN DEFINING THE DEST. FILE AS THE SOURCE FILE * ./B JSB ./B1 PERFORM TRANSFER JMP COMP1 START SEARCH SPC 1 ./B1 NOP JSB ./B$ COMPLETE TRANSFER. LDA T#SEC SAVE FOR DISC TROUBLES. STA SWPSC LDA FSECP GET ADDR OF BEG OF FILE STA RSEC# SAVE IN READ ADDR STA ABS# ALSO HERE (FOR MERGES!) STA WSEC# AND WRITE ADDR CLA,INA STA LINES RESET LINE COUNTER CLA STA EXFLG RESET EXCHANGE FLAG STA PBFLG RESET PARTIAL BUFFER FLAG STA EOFLG AND EOF FLAG STA PASS1 1ST PASS FLAG STA T#SEC TOTAL NUMBER OF DEST. SECTORS STA T#REC TOTAL # OF DEST. RECORDS JSB SQ READ IN FIRST BLOCK JMP ./B1,I FILL INPUT BUFFER SWPSC NOP SAVE FOR DISC TROUBLES. SPC 2 * *./B$ COMPLETES TRANSFER OF SOURCE TO DESTINATION. ./B$ NOP JSB TR TRANSFER SOURCE SSB,RSS TO DESTINATION JMP *-2 FILE LDA ./EFL IF THIS IS THE END OF EDIT, SZA,RSS JMP *+4 CLA PLACE A 000000 STA DBUFP,I IN THE DEST. BUFFER, ISZ DBUFP THEN A 177777. OTHERWISE, CCA PUT END OF STA DBUFP,I FILE RECORD IN ISZ DBUFP OUTPUT BUFFER LDA DBUF$ DETERMINE CMA,INA SIZE ADA DBUFP OF BUFFER CLB DIV D128 DETERMINE NUMBER OF SECTORS SZB INA ROUNDING UP FOR ANY FRACTION STA PBFLG STORE IN PARTIAL BUFR FLAG JSB DOUT OUTPUT BUFFER TO DISC LDA SWPFG SWAP OCCUR? SZA,RSS JMP ./B$,I NO. NO NEED TO GO FURTHER LDA T#SEC SAVE # OF SECTORS IN FILE STA SAVTS FOR FUTURE USE LDA BOFP YES! GET SET TO... STA RSEC# ********************** LDA BODP * REPACK THE DISC!!! * ADA FSECP ********************** STA WSEC# SET UP POINTERS TO TWO FILES LDA BODP DETERMIN"E NUMBER CMA,INA OF BLOCKS AND SECTORS ADA T#SEC TO TRANSFER CLB STB PBFLG RESET PARTIAL BUFFER FLAG STB T#SEC RESET # OF SECTRS TO 0 DIV SCT STB #PFLG SAVE FOR PARTIAL BUFFER XFER CMA WE WANT TO READ ONE MORE TIME STA #BLKS THAN WE WANT TO WRITE LDA DBUF$ USE DEST. BUFFER FOR XFER STA SWP0 CLB LDA SCT SIZE OF 1 BLOCK ASL 7 IN WORDS STA SWP00 SAVE IN TEMP SWAP1 LDA RSEC# GET REL. SECTR FOR READ LDB M1 CODE FOR READ JSB DI/O GO GET A BUFFER'S WORTH SWP0 NOP TEMP FOR BUFFER ADDRESS SWP00 NOP TEMP FOR # OF WDS LDA RSEC# ADA SCT BUMP READ POINTER STA RSEC# ISZ #BLKS WE WANT TO LEAVE AFTER NTH READ RSS BUT AFTER (N-1) WRITES... JMP SWAP2 'CAUSE WE KNOW THE PARTIAL BUFFER SIZE JSB DOUT WRITE BUFFER JMP SWAP1 GO DO IT AGAIN! SWAP2 LDB #PFLG GET PARTIAL BUF SIZE STB PBFLG JSB DOUT OUTPUT FINAL BUFFER CLA RESET SWAP FLAG STA SWPFG LDA SAVTS GET T#SEC AGAIN STA T#SEC AND STORE JMP ./B$,I NOW, WASN'T THAT WORTH IT? SPC 1 #PFLG NOP TEMP FOR PARTIAL BUFFER SIZE SWPFG NOP -1 IF SWAP HAS OCCURRED #BLKS NOP NUMBER OF BLOCKS TO SWAP SAVTS NOP TEMP FOR T#SEC SPC 2 *EOFPR PRINTS "EOF THEN RETURNS FOR NEXT COMMAND * EOFPR CCA TELL DI/O THAT EOF FOUND STA EOFLG JSB PRINT DEF NODE1 DEC 2 ASC 2,EOF SPC 1 EOFLG NOP SET TO -1 IF EOF SPC 2 * ./A TERMINATES EXECUTION LEAVING ORIGINAL FILE UNTOUCHED * ./A JSB ECH IF ANY CHARACTERS RSS FOLLOWING THE "A" JMP ERR GIVE AN ERROR INSTEAD OF ABORT ./A1 JSB PRINT DEF EXIT DEC 7 E ASC 7,EDITR ABORTED * * ./E COMPLETES TRANSFER OF SOURCE TO DESTINATION THEN * TERMINATES IF THERE IS NO INPUT ERROR. SPC 1 ./E STA ./EFL SHOW WE'VE BEEN HERE. JSB ./B$ COMPLETE XFER OF SOURCE TO DEST. ./E2 JSB ECH JMP ERR STA ./EFL JSB GETFN GET THE FILE NAME JMP CHEKR /R IS VALID TO REPLACE SOURCE. LDA ./EFL FETCH COMMAND MODE CPA "C" IF C JMP CRFIL GO TO CREATE FILE CPA "R" IF R RSS GO TO REPLACE FILE JMP ERR OTHERWISE GO TO ERROR JSB EXEC SEE IF REPLACEMENT FILENAME DEF *+4 ALREADY EXISTS DEF D18 DEF TBUFF,I DEF NSECT LDA NSECT =0 IF UNDEFINED SZA FILENAME EXIST? JMP DUPFN YES. ERROR RETURN. JMP RPFIL NO. PROCEED. SPC 1 CHEKR LDA ./EFL GET COMND CPA "R" IF IT'S R, PICK UP TURN-ON RSS FILE NAME JMP ERR NOT R - ERROR. LDA NBUFF CHANGE POINTER FOR SENDING STA TBUFF FILE NAME. JMP RPFIL TRY TO REPLACE. SPC 1 NBUFF DEF NBUF0 SPC 1 CRFIL JSB EXEC ATTEMPT TO CREATE FILE DEF *+6 DEF D32 DEF RSTAT DEF TBUFF,I DEF O11 TYPE "S" FILE DEF T#SEC NUMBER OF SECTORS LDA RSTAT CREATED O.K.? SZA,RSS JMP ENDMS YES. TERMINATE. CPA M1 INSUFFICIENT FILE SPACE? JMP DSCOV YES. IRRECOVERABLE ABORT. DUPFN JSB PRINT NONE OF THESE? MUST BE DEF NODE1 A DUPLICATE FILENAME DEC 9 ASC 9,DUPLICATE FILENAME SPC 2 RPFIL LDB NO/R IF INPUT FROM KEYBOARD SSB REPLACE IS NOT VALID JMP ERR JSB EXEC REPLACE FILE DEF *+6 DEF D32 DEF RSTAT DEF DNAME CREATE A DUMMY FILE DEF O11 TO SEE IF ENOUGH ROOM EXISTS DEF T#- SEC LDA RSTAT ENOUGH SPACE SZA,RSS EXIST? JMP RPFL1 YES. GO REPLACE. CPA M1 OVERFLOW? JMP DSCOV YES. IRRECOVERABLE ABORT. JSB PRINT NO. THE DUMMY FILENAME (DNAME) DEF NODE1 MUST ALREADY EXIST AND MUST BE DEC 7 EITHER :PURGED OR :RNAMED ASC 7,MUST :PU,/\/\/ SPC 2 RPFL1 JSB EXEC PURGE OLD FILENAME DEF *+4 DEF D33 DEF RSTAT DEF NBUF0 OLD FILENAME BUFFER JSB EXEC RENAME DUMMY FILE DEF *+5 AS SPECIFIED IN NAME BUFFER DEF D34 DEF RSTAT DEF DNAME DEF TBUFF,I SPC 2 ENDMS JSB PRINT END OF EDIT MESSAGE DEF EXIT DEC 6 ASC 6,END OF EDIT ******************************************* ********** TERMINATION HERE ********** ******************************************* SPC 1 EXIT JSB EXEC DEF *+2 DEF D6 SPC 1 ******************************************* ******************************************* ***** ***** ***** ***** ***** THE END !!! ***** ***** ***** ***** ***** ******************************************* ******************************************* SPC 1 RSTAT NOP DBEND NOP SBEND NOP SPC 1 $$$ER JSB PRINT DEF ./A1 DEC 6 ASC 6,CORRUPT FILE SPC 1 PRINT NOP LDA PRINT INA STA ERMEC INA STA ERMEP JSB EXEC DEF *+5 DEF D2 DEF TTYLU ERMEP NOP ERMEC NOP CLB LDA PRINT,I JMP A,I * ZERO NOP * GETFN NOP JSB NXCHR FETCH FIRST CHARACTER OF NAME JMP GETFN,I NONE, SO RETURN ISZ GETFN NAME GIVEN SO BUMP RETURN ADRS LDB SRCFL IF THIS IS A CALL FROM "SRCIN", SZB,RSS DONq'T CALL "ASCII" JMP ONAME STA TEMP SAVE 1ST CHAR OF BUFFER JSB ASCII NAME CANNOT START WITH A NUMBER RSS JMP ILLFN BUT IT DOES! TAKE GAS!! LDA TEMP O.K. RETREIVE 1ST WORD ONAME JSB OUTCR OUTPUT NAME CHARACTER JSB NXCHR FETCH NEXT CHAR. RSS JMP ONAME GO TO OUTPUT IT LDA M5 SPACE STA CNT1 FILL ONAM1 LDA B40 NAME JSB OUTCR ISZ CNT1 JMP ONAM1 JMP GETFN,I SPC 1 SKP * INSRC FINDS AND LOADS NEW SOURCE FILE. * INSRC NOP JSB SUFID SEARCH DIRECTORY FOR NAME DEF TBUFF,I JMP INSRC,I ERROR RETURN IF NOT FOUND CPA O11 CHECK TO SEE IF FILE IS A RSS SOURCE FILE? JMP INSRC,I NO. ERROR RETURN ISZ INSRC BUMP RETURN TO O.K. INB POINT TO T/S OF FILE LDA B,I JSB T/S GET SECTOR NUMBER FOR FILE STA RSEC# AND SAVE STA SSPTR (FOR /J COMMAND) JSB SQ READ THE FILE JMP INSRC,I RETURN SSPTR NOP POINTER TO BEGINNING OF FILE SPC 3 ILL/S JSB PRINT PRINT OUT ILLEGAL FILENAME DEF PSF DEC 8 ASC 8,ILLEGAL FILENAME SPC 1 ILLFN JSB PRINT PRINT OUT ILLEGAL FILENAME DEF NODE1 EXCEPT RETURN TO NEXT COMMAND DEC 8 ASC 8,ILLEGAL FILENAME SPC 3 SUFID NOP FILENAME SEARCH LDA SUFID,I GET BUFFER ADDRESS STA NAMBF AND SAVE ISZ SUFID LDA NAMBF,I GET 1ST WORD AND HBYTE MASK OUT 2ND CHAR ALF,ALF ROTATE JSB ASCII 1ST CHAR NUMERIC? RSS JMP ILL/S YES. ERROR RETURN. JSB EXEC NO. INITIATE SEARCH DEF *+4 DEF D18 NAMBF NOP DEF NSECT LDA NSECT FILENAME EXIST? SZA,RSS JMP SUFID,I NO. ERROR EXIT. ISZ SUFID YES. BUMP TO PROPER RETURN ة ADB M1 LOOK AT FILE TYPE LDA B,I AND O77 MASK OUT GARBAGE JMP SUFID,I AND RETURN W/TYPE IN (A) SPC 3 ********************************************************** **** **** **** THIS IS CODE BORROWED FROM SEDIT. IT CONTAINS **** **** ROUTINES THAT HANDLE DOS-III DISC I/O. THANKS **** **** TO WHOEVER WROTE THIS, ALTHOUGH IT WAS TOTALLY **** **** UNINTELLIGABLE WITHOUT COMMENTS. TO QUOTE DOUG **** **** BASKINS (H-P ROCKVILLE), "I WISH THESE GUYS **** **** GET THE IDEA." **** **** **** ********************************************************** SPC 3 T/S NOP CONVERTS TRACK AND SECTOR STA T/S1 TO RELATIVE SECTOR AND LBYTE MASK OUT TRACK STA T/S2 AND SAVE SECTOR NUMBER XOR T/S1 GET TRACK W/SECTOR MASKED OUT ALF,ALF IN LOW BYTE MPY SECTR CONVERT TO # OF SECTORS ADA T/S2 AND ADD TO SECTOR COUNT JMP T/S,I THEN EXIT SPC 2 DI/O NOP DISC I/O PROCESSOR STA DI/OA SAVE A-REG (REL SECT) STB DI/OR SAVE B-REG (REQ CODE) LDB DI/O,I GET 1ST PARAM (BUF ADDR) STB DI/OB AND SAVE FOR EXEC CALL ISZ DI/O BUMP POINTER LDB DI/O,I GET SECOND PARAM (# OF WORDS) STB WDCT AND SAVE ISZ DI/O BUMP TO PROPER RETURN ADDRESS LDA DI/OA LDB DI/OR GET REQUEST CODE CPB M1 READ CODE? JMP DI/O3 YES. THIS IS UNNECESSARY. ADA MUNTS CHECK TO SEE SSA IF EXEC WILL OVERWRITE USER AREA JMP DSCAB IT WILL!!! ABORT AT ONCE!!!! LDB PASS1 IF FIRST PASS... SZB JMP DI/O2 DON'T CHECK FOR DISC OVERWRITE. LDB EOFLG IF AT END OF DEST FILE SSB JMP DI/O2 LDA PBFLG CHECK FOR OVERWRITES I N SWAP AREA SZA IF PARTIAL TO BE WRITTEN, IGNORE THIS JMP DI/O2 LDA DI/OA GET CURRENT WRITE SECTOR. CMA,INA NEGATE... ADA ABS# AND IF THIS WRITE INTERFERES WITH SZA,RSS FUTURE READS, THE FILE MUST JMP SWAP BE SWAPPED OUT OF THE WAY SSA,RSS JMP DI/O2 SWAP CCA MUST SWAP... STA PASS1 INTO UNUSED DISC SPACE STA SWPFG AND SIMULATE A SOURCE FILE READ LDA T#SEC GET NUMBER OF SECTRS STA BODP ON DISC AND SAVE AS BEG OF FILE LDA SWPSC FIND END OF CURRENT FILE ON DISC ADA FSECP AND SAVE AS RELATIVE SECTR STA WSEC# RE-POSITION WRITE POINTER STA BOFP AND SAVE AS BEG OF DEST FILE POINTER STA DI/OA SAVE FOR THIS TRANSFER LDA LATRK CHECK FOR A POSSIBLE DISC CMA OVERWRITE... ADA WSEC# ADA SEC# SSA,RSS OVERWRITE? JMP DSCOV YES. IRRECOVERABLE ABORT. DI/O2 LDA DI/OA O.K. (THIS TIME!) DI/O3 CLB DIV SECTR CONVERT TO T/S STA DI/OT SAVE TRACK # STB DI/OS AND SECTOR # JSB EXEC CALL TO EXEC DEF *+7 DEF DI/OR REQUEST CODE (-1 OR -2) DEF D3 LUN OF DISC (3) DI/OB NOP BUFFER POINTER GOES HERE DEF WDCT NUMBER OF WORDS DEF DI/OT TRACK # DEF DI/OS SECTOR # JMP DI/O,I EXIT DI/OA NOP TEMP FOR REL SECTOR BOFP NOP BODP NOP SPC 2 DSCOV JSB PRINT DEF EXIT DEC 7 ASC 7,DISC OVERFLOW SPC 2 DSCAB JSB PRINT DEF ./A1 DEC 8 ASC 8,PROT AREA WRITE SPC 2 NBUF0 ASC 10, DNAME ASC 3,/\/\/ NSECT NOP RSEC# NOP RELATIVE SECTOR FOR NEXT SWAP T/S1 NOP T/S2 NOP DI/OR NOP DI/OS NOP DI/OT NOP WDCT DEC 128 SPC 1 * RECORD BUFFERS - THESE BUFFERS ARE DYNAMICALLY ASSIGNED * FOR INSTANCE640, DURING EDITING BUFFERS ARE * SWITCHED BY CHANGING POINTERS SO THAT * THE COMMAND BUFFER (INPUT FROM CONSOLE) * IS USED AS AN EXCHANGE FIELD OR MATCH FIELD * BUFFER. * TBUF0 BSS 75 XYBF0 BSS 75 EBUF0 BSS 75 * MBUF0 IS A SIMILAR BUFFER WHICH OVERLAYS ONE-TIME CODE * STARTING AT 'EDITR'. SPC 2 * DEFAULT TABS ARE COLUMNS 7 AND 21 SPC 1 TAB0 DEC -6,-20,0,0,0,0,0,0,0,0,0 SKP A EQU 0 B EQU 1 M10 EQU 41B M5 EQU 46B M3 EQU 50B M2 EQU 51B M1 EQU 52B D1 EQU 54B D2 EQU 55B D3 EQU 56B D6 EQU 61B O11 EQU 64B D10 EQU 65B O77 EQU 72B LBYTE EQU 74B HBYTE EQU 75B UMLWA EQU 100B LAST WORD OF AVAILABLE MEMORY JBINS EQU 101B START TRACK/SECTOR OF JBIN AREA SECTR EQU 116B NUMBER OF SECTORS/TRACK FWAM EQU 147B LAST WORD OF THIS PROG DISCO EQU 154B LAST TRACK ON DISC UDNTS EQU 157B NEXT USER DISC T/S SYSSC EQU 155B SYSTEM SUBCHANNEL CUDSC EQU 161B CURRENT USER SUBCHANNEL SSFLG EQU 331B SYSTEM SEARCH FLAG MXSEC EQU ECCNT CNTRL EQU SWPET USE ENTRY POINT AS TEMP NEGFL EQU MATCH T1 EQU NUM1 T2 EQU NUM10 NT EQU CFLG BASE EQU JDEF$ INCR EQU IDEF$ END EDITR r6 ) 22682-18039 1644 SC 0122 BREF - CROSS REF. TABLE GENERATOR FOR HP92101A             H0101 ASMB,R,L HED RTE-II BASIC CROSS-REFERENCE TABLE GENERATOR ************************************************************ * * * * * CALLED: * * * * *ON,BREF,TTY,LIST * * * * WHERE: * * * * TTY = MTM TERMINAL NUMBER WHERE MESSAGES * * ARE TO BE SENT. DEFAULT TO LU1 * * * * LIST = LIST DEVICE. DEFAULT TO LU6 * * * * * ************************************************************ NAM BREF,3,99 RTE-II BASIC XREF SPC 2 EXT EXEC,REIO,OPEN,CLOSE,READF,NAMR,.DFER SPC 2 SUP PRESS EXTRANEOUS LISTING SPC 2 T0 NOP T1 NOP FLAG NOP LINCT NOP NW NOP WDCNT NOP SRCE NOP WORD NOP PNTR NOP P1 NOP P2 NOP EOB NOP S1PTR NOP S2PTR NOP STPTR NOP ARPTR NOP EOT NOP FMEM NOP CH NOP OLD NOP CWOUT NOP LUOUT NOP TTYLU NOP RUB NOP ANYTHING I DON'T WANT GOES HERE NUMBR NOP RLEN NOP DIGIT NOP LEN NOP STRC DEC 1 SPC 3 ENTRY LDA B,I GET TTY LU SZA,RSS IF NONE... INA USE SYSTEM CONSOLE IOR B400 MERGE IN ECHO BIT STA TTYLU SAVE MESSAGE LU INB BUMP TO PRINTER LU LDA B,I GET PRINTER LU SZA,RSS IF NONE... LDA D6 SET LIST ON LU6 IOR B200 SET V-BIT ON PRINTER STA LUOUT SAVE LIST LU ~XOR B1300 SET SPACING PARAMETER STA CWOUT SPC 2 LDA XEQT GET FWA OF ID SEGMENT ADA D23 POINT TO HI MAIN ADDRESS LDA A,I GET THE ADDRESS STA S1PTR INITIALIZE POINTERS STA S2PTR STA STPTR STA ARPTR STA EOT SET END OF TABLE CMA,INA SUBTRACT FROM LAST WORD ADA BGLWA IN BACKGROUND INA STA FMEM TO GET NUMBER WDS FREE MEMORY SPC 2 JSB PRINT ASK FOR FILENAME DEF IN DEC 9 ASC 9,/BREF: FILENAME? _ * SPC 1 IN JSB REIO READ INPUT FILENAME DEF *+5 DEF D1 DEF TTYLU DEF DCB DEF N60 STB LEN SAVE NUMBER OF CHARS SPC 1 JSB NAMR PARSE THE FILENAME DEF *+5 DEF PBUF DEF DCB DEF LEN DEF STRC SSA JMP AB ABORT IF NO INPUT SPC 1 JSB OPEN TRY TO OPEN THE FILE DEF *+7 DEF DCB DEF RUB DEF PBUF DEF D1 NON-EXCLUSIVE OPEN DEF SC DEF CR SSA ERROR? JMP FMPER YES. PRINT IT SPC 1 JSB .DFER MOVE FILENAME TO PAGE HEADING DEF FN1 DEF PBUF JSB .DFER AND TO END MESSAGE DEF FN DEF PBUF SPC 2 NEXT JSB READ READ A LINE OF SOURCE JMP EOF END OF FILE EXIT STRIP JSB GETCH STRIP OFF LEADING BLANKS JMP ABORT ABORT IF NOT THERE CPA B40 IS IT A BLANK? JMP STRIP YES. IGNORE IT CCA BUMP CHARACTER POINTER BACK ADA PNTR STA PNTR SAVE CHAR POINTER JSB BUILD BUILD A NUMBER JMP ABORT NOT NUMBER. PRINT LINE AND ABORT SPC 1 LDA PNTR GET POINTER STA T0 SAVE TEMP JSB GET GET A PAIR OF CHARACTERS CPA REM SEE IF 1ST 2 MATCH RSS JMP RESET NO. RESET POINTER JSB GET GET ANOTHER 2 CHARS AND HBYTE MASK OFF LOWER PART IOR B40 MERGE IN A BLANK CPA REM+1 SEE IF MATCH 2ND 2 CHARS JMP NEXT YES. IGNORE THIS LINE RESET LDA T0 GET CHAR POINTER STA PNTR RESTORE POINTER SPC 1 TOP JSB GETCH GET A CHAR JMP NEXT END OF LINE STA CH SAVE CHAR CPA QUOTE IF A QUOTE JMP LIT HANDLE LITERAL STRING JSB ALPHA IF NOT ALPHA JMP TOP GO TO TOP JSB GETCH GET THE NEXT CHAR NOP NO ERROR IF NONE STA OLD SAVE CHAR CPA QUOTE IF NOT A QUOTE... RSS JMP TEP THEN SKIP THIS GARBAGE CCA BUMP CHAR POINTER BACK ADA PNTR TO POINT AT THE QUOTE JUST READ STA PNTR SO IT WILL BE FLUSHED AT THE TOP JMP SMPL1 RECORD SIMPLE VARIABLE TEP JSB ALPHA IF ALPHA RSS JMP FLUSH THEN GO TO FLUSH CPA LBRK IF CHAR = "[" JMP ARRAY THEN RECORD ARRAY VARIABLE JSB ALNUM IF NOT ALPHANUMERIC RSS JMP TIP CPA DOLLR AND NOT "$" RSS JMP SMPL1 THEN RECORD SIMPLE VARIABLE (1) TIP JSB GETCH GET THE NEXT CHAR NOP NO ERROR IF NONE CPA QUOTE IF NOT A QUOTE RSS JMP TYP THEN SKIP THIS CCA BUMP POINTER BACK ADA PNTR TO POINT AT QUOTE STA PNTR SO IT WILL NOT BE FORGOTTEN... CLA SET A-REG TO NULL CHARACTER TYP LDB OLD GET LAST CHAR CPB DOLLR IF OLD = "$" RSS JMP TUP JSB ALNUM AND NOT ALPHANUMERIC JMP STRNG RECORD STRING VARIABLE TUP JSB ALNUM IF ALPHANUMERIC RSS JMP FLUSH THEN FLUSH LDA OLD GET LAST CHAR JSB NUMER IF NUMERIC RSS JMP SMPL2 RECORD SIMPLE VARIABLE (2) SPC 1 FLUSH qJSB GETCH GET A CHAR JMP NEXT NO MORE CHARACTERS JSB ALNUM IF ALPHANUMERIC JMP TOP JMP FLUSH THEN TRY AGAIN SPC 2 LIT JSB GETCH GET A CHARACTER JMP NEXT END OF LINE CPA QUOTE IS IT A QUOTE? JMP TOP YES. END OF STRING JMP LIT NO. LOOK SOME MORE SPC 3 ARRAY LDA CH GET THE VARIABLE ALF,ALF ROTATE INTO HIGH BYTE IOR LBRK MERGE IN A LEFT BRACKET STA WORD SAVE FOR INSERTION LDA ARPTR GET POINTER TO ADDRESS SPACE STA P1 SAVE FOR SUBR LDA S2PTR GET ADDRESS OF END OF SPACE STA P2 SAVE FOR SUBR JSB LOOKP SEARCH FOR THE VARIABLE SZA,RSS ANYTHING DONE? JMP TOP NO. RETURN TO TOP LEVEL L1 ISZ S2PTR INCREMENT ALL INTERMEDIATE POINTERS ISZ EOT ISZ A DONE YET? JMP L1 NO. DO SOME MORE BUMPING JMP TOP YES. GO BACK TO THE TOP LEVEL SPC 1 SMPL1 LDA CH GET THE VARIABLE ALF,ALF ROTATE INTO HIGH BYTE STA WORD SAVE FOR INSERTION LDA S1PTR GET POINTER TO THE ADDRESS SPACE STA P1 SAVE FOR SUBR LDA STPTR GET IADDRESS OF END OF SPACE STA P2 SAVE FOR SUBR JSB LOOKP SEARCH FOR THE VARIABLE SZA,RSS ANYTHING DONE? JMP TOP NO. RETURN TO THE TOP LEVEL L2 ISZ STPTR BUMP ALL INTERMEDIATE POINTERS ISZ ARPTR ISZ S2PTR ISZ EOT ISZ A DONE YET? JMP L2 NO. BUMP SOME MORE JMP TOP YES. RETURN TO THE TOP LEVEL SPC 2 SMPL2 LDA CH GET THE VARIABLE ALF,ALF ROTATE TO HI BYTE IOR OLD MERGE IN NUMBER STA WORD SAVE FOR SUBR LDA S2PTR GET BEGIN POINTER STA P1 SAVE LDA EOT GET END OF TABLE STA P2 SAVE POINTER JSB LOOKP SEAR~CH TABLE SZA,RSS ANYTHING DONE? JMP TOP NO. RETURN TO TOP LEVEL L3 ISZ EOT BUMP INTERMEDIATE POINTERS ISZ A DONE YET? JMP L3 NO. DO SOME MORE BUMPS JMP TOP YES. RETURN SPC 2 STRNG LDA CH GET THE VARIABLE ALF,ALF ROTATE IOR DOLLR MERGE IN A DOLLAR SIGN STA WORD SAVE FOR SUBR LDA STPTR GET BEGIN POINTER STA P1 SAVE FOR SUBR LDA ARPTR GET END OF ADDRESS SPACE STA P2 SAVE JSB LOOKP SEARCH THE TABLE SZA,RSS ANYTHING DONE? JMP TOP NO. RETURNB TO TOP LEVEL L4 ISZ ARPTR BUMP INTERMEDIATE POINTERS ISZ S2PTR ISZ EOT ISZ A DONE YET? JMP L4 NO. AGAIN, WATSON... JMP TOP DONE. RETURN TO TOP LEVEL SPC 5 EOF LDA S1PTR GET POINTER TO BEGINNING OF TABLE STA P1 SAVE CPA EOT IF EQUAL TO END OF TABLE, JMP NOSYM THERE AREN'T ANY SYMBOLS LDA DSB GET POINTER TO OUTPUT BUFFER INA STA P2 SAVE LDA M11 SET NUMBER ENTRIES/LINE TO 10 STA LINCT JSB HED OUTPUT PAGE HEADING WLOOP LDA P1,I GET THE WORD COUNT CMA,INA NEGATE STA WDCNT AND SAVE LDB BL GET SOME BLANKS CPA M1 IF ONLY ONE ENTRY, LDB ATBL FLAG WITH AN AT SIGN STB SBUFR PUT IN THE BUFFER ISZ P1 BUMP POINTER LDA P1,I GET CHAR SEQUENCE LDB A SAVE IN B AND B377 MASK OFF TO TYPE SWP REVERSE THE REGISTERS SZB IF NULL (SIMPLE VAR), JMP NSIMP NOT A SIMPLE (1 CHAR) VAR IOR B40 PAD A BLANK STA P2,I PUT IN BUFFER ISZ P2 BUMP POINTER LDA BL GET SOME BLANKS JMP STUFF STUFF IT IN NSIMP STA P2,I PUT CHAR SEQUENCE IN BUFFER #ISZ P2 BUMP POINTER LDA BL GET "[ " CPB LBRK IF A "]", LDA RBBL GET A "] " STUFF STA P2,I AND PUT IT IN THE BUFFER ISZ P2 LDA BL PUT IN 4 BLANKS STA P2,I ISZ P2 BUMP POINTER ISZ P1 POINT TO FIRST LINE NUMBER NLOOP LDA BL STUFF A BLANK STA P2,I ISZ P2 LDA P1,I GET THE NUMBER JSB CONVT CONVERT TO ASCII ISZ P1 BUMP POINTER ISZ WDCNT BUMP NUMBER OF ENTRIES JMP NLOOP IF NOT DONE, CONTINUE JSB OUT PRINT THE LINE JSB SKPR OUTPUT A BLANK LINE DEC 1 LDA EOT GET THE END OF TABLE CPA P1 ARE WE THERE YET? RSS JMP WLOOP NO. CONTINUE CLOS JSB CLOSE CLOSE THE FILE DEF *+2 DEF DCB SSA JMP FMPER FMGR ERR SPC 1 JSB PRINT EXIT PROGRAM DEF EX DEC 11 ENDMS ASC 11,/BREF: $END <******> EX JSB EXEC DEF *+2 DEF D6 SPC 3 ABORT JSB PRINT PRINT THE OFFENDING LINE DEF ABOR DEC 12 ASC 12,/BREF: LINE SYNTAX ERROR ABOR LDA RLEN ADA D4 SET FOR LINE HEADER STA T0 SAVE TEMP JSB REIO DEF *+5 DEF D2 DEF TTYLU DEF ABMSG DEF T0 JSB CLOSE CLOSE THE FILE DEF *+2 DEF DCB SSA JMP FMPER FMGR ERROR AB JSB PRINT DEF EX DEC 10 ASC 10,/BREF: BREF ABORTED SPC 2 OVF JSB PRINT DEF AB DEC 11 ASC 11,/BREF: TABLE OVERFLOW SPC 2 NOSYM JSB PRINT NO SYMBOLS IN TABLE DEF CLOS DEC 9 ASC 9,/BREF: NO SYMBOLS SPC 2 ** ** *** SUBROUTINES *** ** ** SPC 2 CONVT NOP CONVERT LINE NUMBER TO ASCII STA NUMBR SAVE LINE NUMBER ISZ LINCT BUMP COUNTER JMP GOOD NOT YET 10! ON A LINE JSB OUT OUTPUT THE LINE ISZ LINCT WOULDN'T WANT THIS ONE TO GET BY! LDA M4 OUTPUT 8 BLANKS STA T0 LDA BL GET SOME BLANKS DLOOP STA P2,I PUT IN BUFFER ISZ P2 BUMP POINTER ISZ T0 DONE? JMP DLOOP NOPE. DO SOME MORE LDA NUMBR RETRIEVE THE LINE NUMBER GOOD CLB STB FLAG RESET LEADING ZERO FLAG DIV D100 SEPARATE THE DECADES STB T0 SAVE THIS FOR LATER LDB M2 SET LOOP FOR 2 TIMES STB T1 CLOOP CLB DIV D10 BREAK UP INTO 2 DECADES SZA IF NOT A ZERO, ISZ FLAG SET FLAG SZA IF NOT A ZERO, JMP C1 SKIP THIS CPA FLAG IF THIS IS A LEADING ZERO, LDA N20 SET UP FOR BLANK C1 ADA B60 MAKE ASCII ALF,ALF ROTATE SZB SAME JUNK FOR B REGISTER ISZ FLAG SZB JMP C2 CPB FLAG LDB N20 C2 ADB B60 MAKE ASCII IOR B MERGE IN LOW DECADE STA P2,I STORE IN BUFFER ISZ P2 LDA T0 PULL FROM COLD STORAGE ISZ T1 ARE WE DONE YET? JMP CLOOP NO. NEXT DECADE JMP CONVT,I RETURN SPC 2 HED NOP PRINT THE HEADING JSB SKPR SKIP THREE LINES DEC 3 JSB REIO OUTPUT THE HEADING DEF *+5 DEF D2 DEF LUOUT DEF HEADR DEF D29 JSB SKPR AND ANOTHER 3 LINES DEC 3 JMP HED,I SPC 2 OUT NOP OUTPUT THE LINE BUFFER LDB DSB GET POINTER TO LINE BUFFER LDA B GET IN A CMA,INA SUBTRACT FROM ADA P2 CURRENT POSITION STA T0 TO GET NUMBER OF WORDS INB BUMP TO ALLOW FOR SPACES STB P2 RESET POINTER JSB REIO CALL EXEC TO OUTPUT LINE DEF *+5 DEF D2 DEF LUOUT 5 DEF SBUFR DEF T0 LDA M11 RESET COUNTER STA LINCT JMP OUT,I YES. RETURN SPC 2 GET NOP GET CHARS FOR REM ROUTINE JSB GETCH GET A CHAR JMP NEXT NO CHARS! CPA B40 BLANK? JMP GET+1 YES. GET ANOTHER ALF,ALF ROTATE STA T1 SAVE TEMP GLOOP JSB GETCH GET ANOTHER CHAR JMP NEXT NO CHARS! CPA B40 BLANK? JMP GLOOP YES. GET ANOTHER IOR T1 MERGE CHARS JMP GET,I RETURN SPC 2 GETCH NOP GET A CHAR FROM SBUFR CLA LDB PNTR GET POINTER TO SBUFR CPB EOB END OF BUFFER? JMP GETCH,I YES. TAKE ERROR RETURN CLE,ERB MAKE INTO WORD ADDRESS LDA B,I GET THE WORD SEZ,RSS HI OR LOW BYTE? ALF,ALF HI. SWAP BYTES AND B377 MASK OFF ISZ PNTR BUMP CHAR POINTER ISZ GETCH GOOD RETURN JMP GETCH,I RETURN SPC 2 ALNUM NOP CHECK FOR ALPHANUMERIC SYMBOL JSB NUMER CHECK FOR A NUMBER RSS JMP RET NUMERIC! RETURN YES JSB ALPHA CHECK FOR AN ALPHA CHARACTER JMP ALNUM,I NEITHER ALPHA NOR NUMERIC RET ISZ ALNUM IS EITHER ALPHA OR NUMERIC JMP ALNUM,I SPC 2 NUMER NOP CHECK FOR A DIGIT LDB A GET CHAR IN B ADB N72 ASCII SSB,RSS 72B OR GREATER? JMP NUMER,I YES, ERROR RETURN ADB B12 NO. ASCII 57B SSB OR LESS? JMP NUMER,I YES, ERROR RETURN ISZ NUMER DIGIT RETURN JMP NUMER,I RETURN SPC 2 ALPHA NOP CHECK FOR A LETTER LDB A GET CHAR IN B ADB N133 ASCII 133B OR GREATER? SSB,RSS JMP ALPHA,I YES. ERROR RETURN ADB B32 NO. ASCII 101B OR GREATER? SSB,RSS ISZ ALPHA YES JMP ALPHA,I NO#6 SPC 2 BUILD NOP BUILD AN INTEGER CLA BLD1 STA NUMBR SAVE SUM JSB GETCH GET A CHAR JMP BUILD,I IF NOT THERE, ABORT RETURN JSB NUMER CHECK FOR A DIGIT JMP BLD2 IF NOT THERE, RETURN ADA N60 CONVERT ASCII TO BINARY STA DIGIT SAVE LDA NUMBR GET SUM CLB MPY D10 BUMP A DECADE ADA DIGIT ADD IN THE DIGIT JMP BLD1 LOOP BACK SPC 1 BLD2 LDA NUMBR GET LINE NUMBER SZA IF NOT THERE, ABORT RETURN ISZ BUILD BUMP TO GOOD RETURN JMP BUILD,I RETURN SPC 2 PRINT NOP LDA PRINT GET ADDRESS OF CALL INA BUMP TO # OF WORDS STA PR2 SAVE COUNT PARAMETER ADDRESS INA BUMP TO BUFFER STA PR1 SAVE BUFFER ADDRESS JSB REIO CALL EXEC FOR PRINT DEF *+5 DEF D2 DEF TTYLU PR1 NOP BUFFER PR2 NOP COUNT LDA PRINT,I GET RETURN ADDRESS JMP A,I RETURN SPC 2 LIST NOP SAME AS PRINT FOR LIST DEVICE LDA LIST GET CALL ADDRESS INA BUMP TO # OF WDS STA LS2 SAVE COUNT INA BUMP TO BUFFER STA LS1 SAVE BUF ADD JSB REIO DEF *+5 DEF D2 DEF LUOUT LS1 NOP LS2 NOP LDA LIST,I JMP A,I SPC 2 READ NOP JSB READF READ SOURCE FILE DEF *+6 DEF DCB DEF RUB DEF SBUFR SOURCE BUFFER DEF D40 40 WORD BUFFER DEF RLEN RECORD LENGTH SSA JMP FMPER FMGR ERROR CCA CPA RLEN IF EOF, DONT BUMP RETURN ADDRESS JMP READ,I RETURN LDA DSB GET ADDRESS OF SBUFR CLE,ELA MAKE INTO BYTE ADDRESS STA PNTR SAVE POINTER LDB RLEN GET NUMBER OF WORDS ELB MAKE NUMBER OF BYTES ADA B Dl ADD TO BEGINNING OF BUFFER STA EOB TO GET END OF BUFFER ISZ READ BUMP TO GOOD ADDRESS JMP READ,I RETURN SPC 2 FMPER CMA,INA PRINT FILE MANAGER ERROR CLB DIV D10 GENERATE ADA B60 ASCII FROM ADB B60 OCTAL NUMBER ALF,ALF IOR B STA MSG+13 STORE IN MESSAGE JSB PRINT PRINT ERROR DEF AB ABORT PROGRAM DEC 15 OCT 57 / MSG ASC 14,BREF: FILE MANAGER ERROR -XX SPC 2 LOOKP NOP SEARCH TABLE FOR AN ENTRY LDA P1 GET 1ST POINTER CPA P2 IF AT END OF SECTION JMP TBEND GO INSERT AFTER EVERYTHING ELSE LDB P1,I GET A TABLE WORD STB T0 SAVE # WDS IN THIS ENTRY CMB,INB NEGATE STB T1 SAVE FOR FUTURE USE ISZ P1 BUMP TO ASCII ENTRY LDA P1,I GET THE CHAR SEQUENCE CMA,INA NEGATE ADA WORD ADD TO SEARCH WORD SZA,RSS IF RESULT IS ZERO, JMP MATCH THE ENTRY ALREADY EXISTS SSA,RSS IF POSITIVE, JMP BUMP THEN WE AREN'T THERE YET CCA SET A = -1 ADA P1 BUMP BACK TO FWA ENTRY STA P1 SAVE NEW POINTER TBEND LDA M3 INSERT 3 WORD ARRAY STA NW JSB INSRT OPEN UP A PLACE FOR THE NEW ENTRY CLA,INA 1 LINE NUMBER, INITIALLY STA P1,I SAVE IN TABLE ISZ P1 BUMP POINTER LDA WORD SAVE CHAR SEQUENCE IN TABLE STA P1,I ISZ P1 BUMP POINTER LDA NUMBR SAVE CURRENT LINE NUMBER STA P1,I LDA M3 GET POINTER INCREMENT JMP LOOKP,I RETURN TO CALLER SPC 1 BUMP CMB,INB ADB P1 BUMP POINTER TO NEXT ENTRY INB STB P1 JMP LOOKP+1 TRY ANOTHER ENTRY SPC 1 MATCH CMB,INB NEGATE INDEX ADB P1 MOVE P1 TO LAST LINE NUMBER STB P1 LDB B,I GET THE LAST LINE NUMBER CLA CPB NUMBR SEE IF ENTRY ALREADY MADE JMP LOOKP,I YES. RETURN CCA SET FOR 1 WORD ENTRY STA NW ISZ P1 BUMP TO NEW LOCATION JSB INSRT LDA NUMBR INSERT THE CURRENT LINE NUMBER STA P1,I INTO THE TABLE LDB P1 GET POINTER ADB T1 BUMP BACK TO THE NUMBER OF ENTRIES ADB M2 ISZ B,I INCREMENT THE NUMBER OF ENTRIES CCA JMP LOOKP,I EXIT SPC 2 SKPR NOP SKIP LINES ON OUTPUT DEVICE LDA SKPR GET ADDRESS OF NUMBER OF LINES STA LINS SAVE FOR EXEC CALL JSB EXEC CALL THE EXEC FOR A CONTROL REQUEST DEF *+4 DEF D3 DEF CWOUT LINS NOP ISZ SKPR BUMP RETURN ADDRESS JMP SKPR,I RETURN SPC 2 INSRT NOP MOVE THE TABLES TO ALLOW FOR AN INSERT LDB FMEM GET NUMBER OF FREE WORDS LEFT ADB NW SUBTRACT ALLOCATION STB FMEM SAVE NEW FREE LIST SSB BETTER BE ENOUGH WORDS JMP OVF NO. PRINT AND ABORT LDA EOT GET POINTER TO END OF TABLE STA SRCE SAVE AS SOURCE POINTER CMA ADA P1 EOT-P1-1 STA WDCNT -(NUMBER OF WORDS) TO XFER LDB NW GET SIZE OF HOLE CMB,INB MAKE POSITIVE ADB EOT TO GET THE DESTINATION SPC 1 LOOP LDA SRCE,I GET A WORD FROM THE SOURCE STA B,I STORE IN THE DESTINATION CCA DECREMENT THE SOURCE POINTER ADA SRCE STA SRCE AND SAVE NEW POINTER ADB M1 DECREMENT THE DESTINATION POINTER ISZ WDCNT BUMP WORD COUNT JMP LOOP NOT DONE. GO DO SOME MORE JMP INSRT,I DONE. RETURN SPC 2 ** ** *** CONSTANTS, MASKS, AND EQUIVALENCES *** ** ** SPC HFB2 HEADR ASC 11, PAGE 0001 FN1 ASC 18,****** CROSS-REFERENCE SYMBOL TABLE QUOTE OCT 42 DOLLR OCT 44 LBRK OCT 133 BL ASC 1, RBBL ASC 1,] ATBL ASC 1,@ REM ASC 2,REM N133 OCT -133 N72 OCT -72 N60 OCT -60 N20 OCT -20 B12 OCT 12 B32 OCT 32 B40 OCT 40 B60 OCT 60 B200 OCT 200 B377 OCT 377 B400 OCT 400 B1300 OCT 1300 HBYTE OCT 177400 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D6 DEC 6 D10 DEC 10 D23 DEC 23 D29 DEC 29 D40 DEC 40 D100 DEC 100 M1 DEC -1 M2 DEC -2 M3 DEC -3 M4 DEC -4 M11 DEC -11 PBUF BSS 10 DCB BSS 144 DSB DEF SBUFR ABMSG OCT 57 / ASC 3,BREF: SBUFR BSS 40 BASIC SOURCE LINE BUFFER A EQU 0 B EQU 1 SC EQU PBUF+4 CR EQU PBUF+5 FN EQU ENDMS+7 XEQT EQU 1717B BGLWA EQU 1777B END ENTRY H  22682-18040 1644 SC 0222 ASCII SOURCE FILE WRITE SUBROUTINE             H0102 ASMB,R,L,T,C NAM WTSFL,7 ENT FOPEN,FWRTE,FWEOF,FLEN EXT EXEC,.ENTR,HSDIO,SSIZE,USIZE,CLRTB SUP SPC 1 FLADR NOP BUFAD NOP SECT1 NOP STATO NOP FOPEN NOP JSB .ENTR DEF FLADR * LDB FLADR STB FAD JSB EXEC DEF *+4 DEF D18 FAD NOP DEF $LEN LDA $LEN SZA JMP SETAB * * FILE IS MISSING OR IT MAY BE A REQUEST FOR '$SYSM' OR '$USER'. * LDB FLADR LDA .SYSM JSB MATCH JMP USER? JSB SSIZE DEF *+2 DEF $LEN JMP ZERO? * USER? LDB FLADR LDA .USER JSB MATCH JMP ER01 JSB USIZE DEF *+2 DEF $LEN ZERO? LDA $LEN SZA,RSS JMP ER01 * * SET UP TABLE * SETAB LDB .SPC JSB SRCH JMP ER02 STA INDEX MPY D3 ADA .FNAM LDB FLADR JSB $PUT CLA STA $CSEC STA $CWD LDB BUFAD STB $BUFR LDA SECT1,I STA $SECT JSB $SAVE CLA STA STATO,I JMP FOPEN,I ER02 LDA D2 JMP *-3 ER01 CLA,INA JMP *-5 * * * * FILE NOP DATA NOP STATN NOP FWRTE NOP JSB .ENTR DEF FILE * LDB FILE JSB SRCH JMP ER03 STA INDEX JSB $LOAD LDA FILE STA $FILE * LDA DATA,I STA TEMP STA WDCNT ALF,ALF STA DATA,I ISZ WDCNT * * WRITE DATA TO BUFFER * CLA STA CTR NXT1 LDB CTR CPB WDCNT JMP WDONE ADB DATA LDA 1,I LDB $BUFR ADB $CWD STA 1,I ISZ CTR ISZ $CWD LDA $CWD CPA $NWDS JSB $WRTE JMP NXT1 WDONE JSB $SAVE CLA LDB TEMP STB DATA,I STA STATN,I JMP FWRTE,I ER03 LDA D3 JMP *-5 * * * * * WRITE END OF FILE * FILEN NOP STATE NOP FWEOF NOP JSB .Em`NTR DEF FILEN LDA FILEN STA $FILE * LDB FILEN JSB SRCH JMP ER04 STA INDEX JSB $LOAD CLA LDB $CWD ADB $BUFR STA 1,I JSB $WRTE LDA INDEX MPY D3 ADA .FNAM LDB .SPC JSB $PUT JSB CLRTB DEF *+1 CLA STA STATE,I JMP FWEOF,I ER04 LDA D4 JMP *-3 SPC 5 * * * RETURN NUMBER OF SECTORS ALREADY WRITTEN * FILE1 NOP LENG NOP STATL NOP FLEN NOP JSB .ENTR DEF FILE1 * LDB FILE1 JSB SRCH JMP ER06 STA INDEX JSB $LOAD LDA $CWD INA DIV D128 ADA $CSEC INA STA LENG,I CLA STA STATL,I JMP FLEN,I ER06 LDA D6 JMP *-3 * A= ADDRESS OF FIRST ARRAY * B= ADDRESS OF SECOND ARRAY * JSB MATCH * FAILURE ( ARRAYS ARE NOT THE SAME) * SUCCESS (ARRAYS ARE THE SAME) * MATCH NOP STA ADR CLA STA XCTR MNEXT LDA 1,I CPA ADR,I RSS JMP MATCH,I ISZ XCTR LDA XCTR CPA D3 JMP MDONE INB ISZ ADR JMP MNEXT MDONE ISZ MATCH JMP MATCH,I * * * MOVES WORDS OF CORE FROM ONE ADDRESS TO ANOTHER * PLACES ARRAY IN 'B' INTO ARRAY IN 'A'. * JSB $PUT * $PUT NOP STB $PUTA CLB STB CTR $PUT1 LDB $PUTA,I STB 0,I ISZ $PUTA INA ISZ CTR LDB CTR CPB D3 JMP $PUT,I JMP $PUT1 * * * * B= FILE NAME * JSB SRCH * FAILURE - MISSING NAME * SUCCESS - A= ADDRESS IN TABLE (RELATIVE) * SRCH NOP CLA STA CTR SRCH1 LDA CTR CPA D10 JMP SRCH,I STB BSAVE MPY D3 LDB BSAVE ADA .FNAM JSB MATCH JMP SRCH2 LDA CTR ISZ SRCH JMP SRCH,I SRCH2 ISZ CTR JMP SRCH1 * * $SAVE NOP LDB INDE͖X ADB .LEN LDA $LEN STA 1,I LDB INDEX ADB .CWD LDA $CWD STA 1,I LDB INDEX ADB .CSEC LDA $CSEC STA 1,I LDB INDEX ADB .BUFR LDA $BUFR STA 1,I LDB INDEX ADB .SECT LDA $SECT STA 1,I JMP $SAVE,I * * * $LOAD NOP LDB INDEX ADB .LEN LDA 1,I STA $LEN LDB INDEX ADB .CWD LDA 1,I STA $CWD LDB INDEX ADB .CSEC LDA 1,I STA $CSEC LDB INDEX ADB .BUFR LDA 1,I STA $BUFR LDB INDEX ADB .SECT LDA 1,I STA $SECT MPY D128 STA $NWDS JMP $LOAD,I * * * $WRTE NOP LDA $NWDS STA NWDS LDA $CWD CPA $NWDS JMP $WRT2 INA STA $CWD CLB DIV D128 ADA $CSEC LDB $CWD STB NWDS CLB STB $CWD JMP $WRT3 $WRT2 CLA STA $CWD LDA $CSEC ADA $SECT $WRT3 CMA,INA ADA $LEN SSA JMP ER05 JSB HSDIO DEF *+6 DEF D15 $BUFR NOP DEF NWDS DEF $CSEC $FILE NOP LDA $NWDS STA NWDS LDA $CSEC ADA $SECT STA $CSEC JMP $WRTE,I ER05 LDA D5 STA STATN,I LDA TEMP STA DATA,I JMP FWRTE,I SKP .SPC DEF SPACE .SYSM DEF $SYSM .USER DEF $USER .FNAM DEF TFNAM .LEN DEF TLEN .CWD DEF TCWD .CSEC DEF TCSEC .SECT DEF TSECT $SECT BSS 1 $NWDS BSS 1 NWDS BSS 1 .BUFR DEF TBUFR * SPACE ASC 3, $SYSM ASC 3,$SYSM $USER ASC 3,$USER TFNAM ASC 15, ASC 15, TLEN BSS 10 TSECT BSS 10 TCWD BSS 10 TCSEC BSS 10 TBUFR BSS 10 $CWD BSS 1 $CSEC BSS 1 $LEN BSS 1 INDEX BSS 1 ADR BSS 1 XCTR BSS 1 CTR BSS 1 $PUTA BSS 1 WDCNT BSS 1 BSAVE BSS 1 TEMP 2BSS 1 * D2 DEC 2 D3 DEC 3 D4 DEC 4 D5 DEC 5 D6 DEC 6 D10 DEC 10 D15 DEC 15 D18 DEC 18 D128 DEC 128 END 3GFTN4,L PROGRAM TEST C C A FILE MUST BE CREATED OF 10 SECTORS OR LONGER. C THE NAME OF THE FILE MUST BE 'FILE', AND IT C SHOULD BE A SOURCE FILE (NOT NECESSAIRLY). IF C IT IS A SOURCE FILE, THE USER WILL BE ABLE TO C LIST 200 LINES OF 'LINE= NNNN'. C INTEGER BUFFER(256),RECORD(10),FILE(3) INTEGER CONVR(10) DATA FILE/2HFI,2HLE,2H / C C CHECK IF THE FILE EXISTS C CALL EXEC (18,FILE,NSECT) IF (NSECT.GE.10) GOTO 20 WRITE (1,9) NSECT CALL EXEC (6) 9 FORMAT (//"FILE 'FILE' IS"I2" SECTORS LONG. IT MUST BE ATLEAST"/ &"10 SECTORS LONG, CREATE IT AS FOLLOWS:"// &":ST,B,FILE,10 << CREATES THE FILE>>"/ &":RN,FILE,FILE,9 << CONVERTS THE BINARY FILE TO SOURCE>>"/ &":PR,TEST << EXECUTE THE PROGRAM>>"//) C C OPEN FILE SO IT MAY BE ACCESSED 20 CALL FOPEN (FILE,BUFFER,2,IERR) IF (IERR.NE.0) GOTO 1000 C C WRITE 200 LINES OF 'LINE=XXXX' IN FILE 'FILE' C I USED SOME FANCY FOOTWORK. AS YOU CAN SEE THERE IS INTERNAL C CONVERSION USED TO CONVERT NUMERIC 'J' TO CHARACTER. DO 100 J=1,200 CALL CODE WRITE (CONVR,101) J CALL CODE READ (CONVR,102) (RECORD(JJ),JJ=2,6) C 101 FORMAT (" LINE="I4) 102 FORMAT (5A2) C C RECORD(1)=5 = RECORD LENGTH C RECORD(2 THRU 6) CONTAIN THE CHARACTERS TO BE WRITTEN. C RECORD(1)=5 100 CALL FWRTE (FILE,RECORD,IERR) IF (IERR.NE.0) GOTO 1000 C C RETURN WITH THE NUMBER OF SECTORS ACTUALLY WRITTEN C CALL FLEN (FILE,NSECT,IERR) IF (IERR.NE.0) GOTO 1000 WRITE (1,11) NSECT 11 FORMAT ("SECTORS ACTUALLY WRITTEN="I10) C C WRITE THE PHYSICAL END OF THE FILE AND REMOVE IT FROM THE TABLE C CALL FWEOF (FILE,IERR) IF (IERR.NE.0) GOTO 1000 C TERMINATE NORMALLY CALL EXEC (6) C C C C I/O ERROR C 1000 WRITE (1,1001) IERR STOP 1001 FORMAT ("I/O ERROR ENCOUNTERED...ERROR#"I1) END END$      22682-18041 1644 SC 0122 DOS-IIIB CHANGE SYSTEM CONSOLE PROGRAM             H0101 ASMB,R,L HED DOS-IIIB CHANGE SYSTEM CONSOLE PROGRAM NAM SYTTY,3 EXT EXEC,RMPAR,ERR0 * * THIS PROGRAM WILL CHANGE THE SYSTEM CONSOLE TO ANY * REMOTE TERMINAL , PROVIDED THE FOLLOWING CONDITIONS ARE OBSERVED: * * 1. TERMINAL DOES NOT CONTAIN DMA * 2. TERMINAL DRIVER MUST BE CORE RESIDENT * * TO EXECUTE THE PROGRAM: * * :PR,SYTTY, * * * POSSIBLE ERRORS: * * EQT# UPON EXECUTION OF PROGRAM IS MISSING OR ZERO * EQT# DOES NOT EXIST * DRIVER CONTAINS DMA OR NOT CORE RESIDENT * * * SPECIAL CONSIDERATIONS: * * IF THE EQT# DOES NOT REPRESENT A BI-DIRECTIONAL TERMINAL, THE * DOS-IIB SYSTEM WILL BE HUNG-UP. A MANUAL RESTART MUST THEN * BE PERFORMED. * * SKP * SYTTY NOP JSB RMPAR GET EQT# - ':PR,SYTTY,' DEF *+2 DEF BUFR * LDA BUFR CHECK IF EQT# WAS ENTERED SZA,RSS JMP ERR01 NOPE! * STA EQTDV SAVE DEVICE EQT# CMA ADA EQT# CHECK IF EXISTS WITHIN EQT TABLE SSA JMP ERR02 OUT OF RANGE OF TABLE * LDA EQTDV COMPUTE ADDRESS OF EQT ADA N1 CLB MPY D17 LDB EQTAB ADB A ADB D2 GET WORD#3 OF DEVICE EQT LDA B,I AND B1400 MASK OUT 'D' & 'R' CPA B400 CHECK IF CORE RESIDENT AND NON DMA RSS JMP ERR03 NOPE! * * LDA EQTDV PERFORM ACTUAL CHANGE IN SYSTEM LDB 121B CHANGE LU TABLE - #1 TO DEVICE EQTDV JSB EXEC DEF *+2 DEF N19 * HALT JSB EXEC EXIT BACK TO SYSTEM DEF *+2 DEF D6 SKP * * ERROR PROCSSING FOR THE FOLLOWING ERRORS: * * DEVICE NOT CORE RESIDENT * DEVICE CONTAINS DMA * EQT# MISSING UPON START OF PROGRAM * ILLEGAL EQT# * ERR01 LDB E1 RSS ERR02 LDB E2 RSS ERR03 LDB E3 LDA SY JS  B ERR0 JMP HALT * * CONSTANTS AND VARIABLES USED * BUFR BSS 5 B1400 OCT 140000 EQTDV NOP N1 DEC -1 D17 DEC 17 N19 DEC -19 D6 DEC 6 D2 DEC 2 SY ASC 1,SY E1 ASC 1,01 E2 ASC 1,02 E3 ASC 1,03 B400 OCT 40000 A EQU 0B B EQU 1B EQT# EQU 120B EQTAB EQU 117B END SYTTY Q   22682-18042 1644 SC 0822 RTE II/III APG FOR 21MX M/E SERIES             H0108 APGGN (IN SAM) STB TRAP * * DETERMINE TRUE BUFFR ADDRESS, PLACE IN BFDF ADB D4 B => BUFFR(0) STB BFDF * * LOCK SELF IN MEMORY ? LDA LOCK CPA NO JMP TLIST NO JSB EXEC YES DEF *+3 DEF D22 DEF D1 * * PLACE SELF ON TIME LIST, ONCE PER SECOND TLIST JSB EXEC DEF *+6 DEF D12 DEF D0 DEF D1 DEF D100 DEF M100 * * SAVE RTE LOCATIONS THAT WILL BE MODIFIED LDA BPLNK SAVE LDB BP3 BASE PAGE DST BPSV LINKS LDA TBG,I SAVE TBG'S TRAP CELL STA TBGSV INSTRUCTION * JSB MPOFF TURN OFF MEMORY PROTECT LDA TRAP ESTABLISH LINK TO STA BPLNK APG GENERATOR CCA INDICATE BUFFR STA BP3 IN PROCESS LDA OVLY OVERLAY TBG TRAP CELL INSTRUCTION STA TBG,I WITH OCT 105637 CCA INDICATE STA MDFY RAVAGE OF RTE JSB MPON TURN ON MEMORY PROTECT * * RESET FOR NEXT 1 SECOND OF PROFILE GENERATION SLEEP JSB MPOFF TURN OFF MEMORY PROTECT CLA STA BP3 BFCNT = 0, BUFFR NOT IN PROCESS JSB MPON TURN ON MEMORY PROTECT * * GO DORMANT SAVING CURRENT SUSPENSION POINT JSB EXEC DEF *+4 DEF D6 DEF D0 DEF D1 * * APG DATA REDUCTION SECTION * * PROCESS BUFFR LDA BP3 A = DONE FLAG SSA,RSS TIME UP ? JMP MPOF NO, REDUCE DATA LDA RSS YES, FIX BREAK TEST, STA BREAK REDUCE DATA JMP INIT INITIALIZE BUFFR POINTERS MPOF JSB MPOFF TURN OFF MEMORY PROTECT CCA INDICATE BUFFR STA BP3 IN PROCESS JSB MPON TURN ON MEMORY PROTECT INIT LDA BFDF INITIALIZE STA BFPTR BUFFR POINTER LDA M100 INITIALIZE STA BFCNT BUFFR COUNT GETID LDA BFPTR,I GET ID SEG ADDR ISZ BFPTR BFPTR => P SZA,RSS BUFFR EMPTY ? JMP TSTBK YES, TEST BREAK FLAG STA CURID CURID = ID SEG ADDR * * CURRENT ID SEGMENT ADDRESS IN ACTIV TABLE ? LDB ACTVE B = ADDR OF 1ST ENTRY IN ACTIV LDY D1 Y = INDEX TO ID SEG ADDR IN ENTRY NXTID LAY B,I A = ID SEG ADDR OF INTEREST CPA CURID CURRENT ID SEG = ID SEG OF INTEREST ? JMP IDFND YES, UPDATE CELLS(ID9) ADB B,I B = ADDR OF NEXT ENTRY IN ACTIV LDA B,I END OF ACTIV SZA JMP NXTID NO, TEST NEXT ENTRY JMP EXIT? YES, TEST FOR MORE ID/P'S * * IS P OVER LAST ? IDFND ADB D2 B = ADDR OF LAST STB ACTAD ACTAD = ADDR OF LAST LDA BFPTR,I A = P CMA,INA A = -P ADA ACTAD,I A = LAST - P SSA IS P OVER LAST ? JMP UPDOU YES, UPDATE OVER CELL * * IS P UNDER FIRST ? ISZ ACTAD ACTAD = ADDR OF FIRST LDA ACTAD,I A = FIRST CMA,INA A = -FIRST LDB BFPTR,I P = P ADA B A = P - FIRST SSA IS P UNDER FIRST ? JMP UPDOU YES, UPDATE UNDER CELL * * UPDATE CELLS(P) ISZ ACTAD ACTAD = ADDR OF DELTA CLB DIV ACTAD,I A = (P-FIRST)/DELTA = CELLS DISPLCMNT ADA D3 UPDT ADA ACTAD A = ADDR OF CELLS(P) LDB A,I B = OLD COUNT CLE **SEE NOTE AT END** INB B = NEW COUNT SEZ,RSS **SEE NOTE AT END** STB A,I STORE NEW COUNT IN CELLS(P) LIA 1 INDICATE VISUALLY INA THAT GENERATION OTA 1 IS RUNNING * * CHECK BUFFR FOR MORE (ID, P) PAIRS EXIT? ISZ BFPTR BFPTR => NEXT ID SEG ADDR ISZ BFCNT BUFFR EMPTY ? JMP GETID NO, GET NEXT ID SEG ADDR * * BREAK FLAG SET ? TSTBK JSB IFBRK SOME ONE SET BREAK FLAG ? DEF *+1 BREAK SSA,RSS @{ YES, CLEAN UP JMP SLEEP NO, CONTINUE * * APG CLEANUP SECTION * * RESTORE RTE CLNUP LDA MDFY HAS RTE SZA,RSS BEEN RAVAGED ? JMP SCHED NO, SCHEDULE APGL, GO DORMANT * JSB MPOFF YES, TURN OFF MEMORY PROTECT AND * REPAIR DAMAGE DLD BPSV RESTORE STA BPLNK BASE PAGE STB BP3 LINKS LDA TBGSV RESTORE TBG TRAP CELL STA TBG,I INSTRUCTION JSB MPON TURN ON MEMORY PROTECT * * SCHEDULE APGL SCHED JSB EXEC DEF *+10 DEF D24 DEF APGL DEF LNGTH DEF * DEF * DEF * DEF * DEF ACTIV DEF LNGTH * * APG COMPLETE, GO DORMANT JSB EXEC DEF *+4 DEF D6 DEF D0 DEF D2 * * UPDATE OVER CELL OR UNDER CELL UPDOU LDA D3 JMP UPDT * * APG GENERATION SECTION * * COLLECT ID SEG ADDR'S & P'S APGGN DEF $CIC DEF XEQT COUNT BSS 2 * * TURN MEMORY PROTECT OFF MPOFF NOP JSB $LIBR NOP JMP MPOFF,I * * TURN ON MEMORY PROTECT MPON NOP JSB $LIBX DEF MPON * * NOTE: BY ALLOWING THE CELLS TO INCREMENT OVER +32767, COUNTS * UP TO 64K-1 CAN BE CARRIED BY INTERPRETING THE NEGATIVE * COUNTS CORRECTLY. I.E. FOR NEGATIVE COUNTS, * TRUE COUNT = +32768 + RAW COUNT IGNORING SIGN, * E.G. 100001B TRUE COUNT = 32768 + 00001 = 32769 * A EQU 0 B EQU 1 XEQT EQU 1717B LOCK BSS 1 NO ASC 1,NO APGID BSS 1 APGAD BSS 1 STGAD BSS 1 LNGTH BSS 1 ACTAD BSS 1 BPSV BSS 2 TBG EQU 1674B TBGSV BSS 1 TRAP DEF APGGN OVLY OCT 105637 BFPTR BSS 1 BFCNT BSS 1 RSS RSS MDFY BSS 1 BFDF BSS 1 CURID BSS 1 BPTR BSS 1 BCNT BSS 1 APGI ASC 3,APGI APGL ASC 3,APGL D0 DEC 0 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D6 DEC 6 D9 DEC 9 D10 DEC 10 D11 DEC 11 D12 DEC 12 x$"D14 DEC 14 D15 DEC 15 D22 DEC 22 D23 DEC 23 D24 DEC 24 D100 DEC 100 D6000 DEC 6000 M100 DEC -100 B17 OCT 17 ACTVE DEF ACTE1 ACTIV EQU * CONS BSS 1 MINS BSS 1 LIST BSS 1 ACTE1 BSS 1 BSS 296 END APGEP $ASMB,L HED ** APG - RTE 3 ACTIVITY PROFILE GENERATOR ** NAM APG,2,20 EXT $STRG,EXEC,$CIC,IFBRK,$LIBR,$LIBX * * APG ACCUMULATES A SPECTRUM FROM THE P-REGISTER TO PROVIDE * AN ACTIVITY PROFILE FOR PROGRAM TIMING ANALYSIS. * * PROFILE INFORMATION IS MAINTAINED IN A TABLE KNOWN AS * ACTIV. APGI (APG INITIALIZING PROGRAM) CONVERSATIONALLY * GETS INFORMATION ABOUT THE PROGRAMS TO BE ANALYZED, AND * SCHEDULES APG (APG ACTIVITY GENERATOR) PASSING ACTIV. * * APG MODIFIES RTE SO AS TO TRAP TBG INTERRUPTS. * UPON EACH CLOCK TICK THEREAFTER, * THE APG GENERATION SECTION FILLS A BUFFER (IN SAM) * WITH (ID SEGMENT ADDRESS, P) PAIRS, UP TO A * MAXIMUM OF 100 PAIRS. * * FOR SPEED AND TRANSPARENCY, THE APG GENERATOR * IS MICROCODED AND EXECUTES OUT OF THE TBG TRAPCELL; * THAT IS, NO PARTITION IS REQUIRED FOR THE ACCUMULATION * OF (ID SEGMENT ADDRESS, P) PAIRS. * * EVERY SECOND, THE APG DATA REDUCTION SECTION * PROCESSES THE BUFFER AND UPDATES THE ACTIV TABLE. * THE APG DATA REDUCTION SECTION REQUIRES A PARTITION, * ONCE A SECOND, FOR ABOUT 10 MILLISECONDS. * * THE APG GENERATON SECTION KEEPS TRACK OF CLOCK TICKS. * WHEN THE EXECUTION TIME HAS PASSED, APG * RESTORES RTE, SCHEDULES APGL PASSING ACTIV, * AND GOES DORMANT. * * ACTIV CONTAINS THE FOLLOWING INFORMATION: * * ACTIV(1) = CONSOLE LU * ACTIV(2) = MINUTES OF EXECUTION * ACTIV(3) = LIST LU * * FOR EACH PROGRAM TO BE ANALYZED, * THERE IS AN ENTRY AS FOLLOWS, * * THE DISPLACEMENT TO THE NEXT ENTRY. * THE PROGRAM'S ID SEGMENT ADDRESS. * LAST = LAST LOCATION FOR APG ANALYSIS. * FIRST = FIRST LOCATION FOR APG ANALYSIS. * DELTA = SIZE OF EACH MEMORY CELL FOR APG ANALYSIS. * OVER = CELL FOR P'S OVER LAST. * UNDER = CELL FOR P'S UNDER FIRST. * A NUMBER OF CELLS DETERMINED BY (LAST+1 - FIRST)/DELTA. * * FOLLOWING THE LAST ENTRY THERE IS A TABLE DELIMITER OF 0. * * ACTIVITY IN MEMORY AREAS NOT WITHIN THE PARTITIONS OF INTEREST * IS NOT INCLUDED IN THE ACTIVITY PROFILE. * * CAUTION: APG OVERLAYS THE TBG TRAP CELL IN * ORDER TO TRAP TBG INTERRUPTS. * * IF APG IS ABORTED, * THE SYSTEM WILL HAVE TO BE REBOOTED. * * APG MAY BE TERMINATED GRACEFULLY BY ISSUING AN RTE * BR DIRECTIVE, I.E. BR,APG * * APG USES BASE PAGE LOCATIONS 2B & 3B DURING THE * ACTIVITY PROFILE GENERATION. IF 2B & 3B ARE NOT AVAILABLE, * THEN THE FOLLOWING LINES MUST BE MODIFIED ! BPLNK EQU 2B BP3 EQU BPLNK+1 * * GET LENGTH OF ACTIV APGEP LDA B,I A = LENGTH OF ACTIV STA LNGTH LNGTH = LENGTH OF ACTIV CLA INDICATE RTE NOT STA MDFY YET RAVAGED OTA 1 PREPARE FOR VISUAL RUN INDICATION INB LDA B,I SET LOCK FLAG STA LOCK TO YE OR NO * * RETRIEVE ACTIV FROM APGI JSB EXEC DEF *+5 DEF D14 DEF D1 DEF ACTIV DEF LNGTH * * FIX BUFFR PARMS LDA MINS A = MINUTES OF EXECUTION MPY D6000 BA = EXECUTION COUNT IN 10'S OF MS CMB NEGATE CLE COUNT CMA,INA FOR SEZ EASE INB OF DST COUNT UPDATING * * SCHEDULE APGI SO THAT APGI CAN PLACE BUFFR IN SAM JSB EXEC DEF BRTN DEF D10 DEF APGI DEF * DEF * DEF * DEF * DEF * DEF APGGN DEF D4 * * WAIT FOR APGI TO PLACE BUFFR IN SAM BRTN JSB EXEC DEF *+4 DEF D6 DEF D0 DEF D1 * * FIND APG ID SEGMENT ADDRESS LDA XEQT STA APGID * * DETERMINE ADDRESS OF BUFFR IN SAM LDX D1 LDB $STRG STRG SZB,RSS JMP CLNUP INB XLA B,I AND =B77777 CPA APGID JMP STRFD ADB =D-1 XLB B,I JMP STRG * * DETERMINE TRUE APGGN ADDRESS, PLACiE IN TRAP STRFD ADB D2 B => APGGN (IN SAM) STB TRAP * * DETERMINE TRUE BUFFR ADDRESS, PLACE IN BFDF ADB D4 B => BUFFR(0) STB BFDF * * LOCK SELF IN MEMORY ? LDA LOCK CPA NO JMP TLIST NO JSB EXEC YES DEF *+3 DEF D22 DEF D1 * * PLACE SELF ON TIME LIST, ONCE PER SECOND TLIST JSB EXEC DEF *+6 DEF D12 DEF D0 DEF D1 DEF D100 DEF M100 * * SAVE RTE LOCATIONS THAT WILL BE MODIFIED XLA BPLNK SAVE XLB BP3 BASE PAGE DST BPSV LINKS XLA TBG,I SAVE TBG'S TRAP CELL STA TBGSV INSTRUCTION * JSB MPOFF TURN OFF MEMORY PROTECT LDA TRAP ESTABLISH LINK TO XSA BPLNK APG GENERATOR CCA INDICATE BUFFR XSA BP3 IN PROCESS LDA OVLY OVERLAY TBG TRAP CELL INSTRUCTION XSA TBG,I WITH OCT 105637 CCA INDICATE STA MDFY RAVAGE OF RTE JSB MPON TURN ON MEMORY PROTECT * * RESET FOR NEXT 1 SECOND OF PROFILE GENERATION SLEEP JSB MPOFF TURN OFF MEMORY PROTECT CLA XSA BP3 BFCNT = 0, BUFFR NOT IN PROCESS JSB MPON TURN ON MEMORY PROTECT * * GO DORMANT SAVING CURRENT SUSPENSION POINT JSB EXEC DEF *+4 DEF D6 DEF D0 DEF D1 * * APG DATA REDUCTION SECTION * * PROCESS BUFFR XLA BP3 A = DONE FLAG SSA,RSS TIME UP ? JMP MPOF NO, REDUCE DATA LDA RSS YES, FIX BREAK TEST, STA BREAK REDUCE DATA JMP INIT INITIALIZE BUFFR POINTERS MPOF JSB MPOFF TURN OFF MEMORY PROTECT CCA INDICATE BUFFR XSA BP3 IN PROCESS JSB MPON TURN ON MEMORY PROTECT INIT LDA BFDF INITIALIZE STA BFPTR BUFFR POINTER LDA M100 INITIALIZE STA BFCNT BUFFR COUNT GETID XLA BFPTR,I GET ID SEG ADDR ISZ BFPTR BFPTR => P SZA,RSS BUFFR EMPTY ? JMP TSTBK YES, TEST BREAK FLAG STA CURID CURID = ID SEG ADDR * * CURRENT ID SEGMENT ADDRESS IN ACTIV TABLE ? LDB ACTVE B = ADDR OF 1ST ENTRY IN ACTIV LDY D1 Y = INDEX TO ID SEG ADDR IN ENTRY NXTID LAY B,I A = ID SEG ADDR OF INTEREST CPA CURID CURRENT ID SEG = ID SEG OF INTEREST ? JMP IDFND YES, UPDATE CELLS(ID9) ADB B,I B = ADDR OF NEXT ENTRY IN ACTIV LDA B,I END OF ACTIV SZA JMP NXTID NO, TEST NEXT ENTRY JMP EXIT? YES, TEST FOR MORE ID/P'S * * IS P OVER LAST ? IDFND ADB D2 B = ADDR OF LAST STB ACTAD ACTAD = ADDR OF LAST XLA BFPTR,I A = P CMA,INA A = -P ADA ACTAD,I A = LAST - P SSA IS P OVER LAST ? JMP UPDOU YES, UPDATE OVER CELL * * IS P UNDER FIRST ? ISZ ACTAD ACTAD = ADDR OF FIRST LDA ACTAD,I A = FIRST CMA,INA A = -FIRST XLB BFPTR,I P = P ADA B A = P - FIRST SSA IS P UNDER FIRST ? JMP UPDOU YES, UPDATE UNDER CELL * * UPDATE CELLS(P) ISZ ACTAD ACTAD = ADDR OF DELTA CLB DIV ACTAD,I A = (P-FIRST)/DELTA = CELLS DISPLCMNT ADA D3 UPDT ADA ACTAD A = ADDR OF CELLS(P) LDB A,I B = OLD COUNT CLE **SEE NOTE AT END** INB B = NEW COUNT SEZ,RSS **SEE NOTE AT END** STB A,I STORE NEW COUNT IN CELLS(P) LIA 1 INDICATE VISUALLY INA THAT GENERATION OTA 1 IS RUNNING * * CHECK BUFFR FOR MORE (ID, P) PAIRS EXIT? ISZ BFPTR BFPTR => NEXT ID SEG ADDR ISZ BFCNT BUFFR EMPTY ? JMP GETID NO, GET NEXT ID SEG ADDR * * BREAK FLAG SET ? TSTBK JSB IFBRK SOME ONE SET BREAK FLAG ? DEF *+1 BREAK SSA,RSS d YES, CLEAN UP JMP SLEEP NO, CONTINUE * * APG CLEANUP SECTION * * RESTORE RTE CLNUP LDA MDFY HAS RTE SZA,RSS BEEN RAVAGED ? JMP SCHED NO, SCHEDULE APGL, GO DORMANT * JSB MPOFF YES, TURN OFF MEMORY PROTECT AND * REPAIR DAMAGE DLD BPSV RESTORE XSA BPLNK BASE PAGE XSB BP3 LINKS LDA TBGSV RESTORE TBG TRAP CELL XSA TBG,I INSTRUCTION JSB MPON TURN ON MEMORY PROTECT * * SCHEDULE APGL SCHED JSB EXEC DEF *+10 DEF D24 DEF APGL DEF LNGTH DEF * DEF * DEF * DEF * DEF ACTIV DEF LNGTH * * APG COMPLETE, GO DORMANT JSB EXEC DEF *+4 DEF D6 DEF D0 DEF D2 * * UPDATE OVER CELL OR UNDER CELL UPDOU LDA D3 JMP UPDT * * APG GENERATION SECTION * * COLLECT ID SEG ADDR'S & P'S APGGN DEF $CIC DEF XEQT COUNT BSS 2 * * TURN MEMORY PROTECT OFF MPOFF NOP JSB $LIBR NOP JMP MPOFF,I * * TURN ON MEMORY PROTECT MPON NOP JSB $LIBX DEF MPON * * NOTE: BY ALLOWING THE CELLS TO INCREMENT OVER +32767, COUNTS * UP TO 64K-1 CAN BE CARRIED BY INTERPRETING THE NEGATIVE * COUNTS CORRECTLY. I.E. FOR NEGATIVE COUNTS, * TRUE COUNT = +32768 + RAW COUNT IGNORING SIGN, * E.G. 100001B TRUE COUNT = 32768 + 00001 = 32769 * A EQU 0 B EQU 1 XEQT EQU 1717B LOCK BSS 1 NO ASC 1,NO APGID BSS 1 APGAD BSS 1 STGAD BSS 1 LNGTH BSS 1 ACTAD BSS 1 BPSV BSS 2 TBG EQU 1674B TBGSV BSS 1 TRAP DEF APGGN OVLY OCT 105637 BFPTR BSS 1 BFCNT BSS 1 RSS RSS MDFY BSS 1 BFDF BSS 1 CURID BSS 1 BPTR BSS 1 BCNT BSS 1 APGI ASC 3,APGI APGL ASC 3,APGL D0 DEC 0 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D6 DEC 6 D9 DEC 9 D10 DEC 10 D11 DEC 11 D12 DEC 12 $"D14 DEC 14 D15 DEC 15 D22 DEC 22 D23 DEC 23 D24 DEC 24 D100 DEC 100 D6000 DEC 6000 M100 DEC -100 B17 OCT 17 ACTVE DEF ACTE1 ACTIV EQU * CONS BSS 1 MINS BSS 1 LIST BSS 1 ACTE1 BSS 1 BSS 296 END APGEP $MICMX,L * * 21MX M-SERIES APG MICROCODE * $CODE='APGM,RE ORG 6017B JMP APGM SAVE ENT POINTS ORG 6300B * * READ: DEF STRING, $CIC ADDRESS, WRITE P INTO $CIC APGM IMM CMLO S2 375B S2 = 2 READ INC M S2 READ DEF STRING INC S3 S2 S3 = 3 S1 TAB READ $CIC ADDR READ INC M S1 INC S6 M S6 => DEF 1717B S1 TAB M => $CIC PNTR READ INC M S1 INC S7 S6 S7 => COUNT INC M TAB M => $CIC WRTE TAB P $CIC = P * * READ BFCNT, PRCSS; CHECK FOR IN PROCESS (-BFCNT) INC S5 M S5 => $CIC+1 READ INC M S3 READ BFCNT INC S8 S7 S8 => COUNT+1 L TAB L = BFCNT JMP CNDX AL15 CHKCT IN PROCESS ? * YES, CHK COUNT * READ 1717B (XEQT) READ1717 READ INC M S6 READ 1717B INC S6 S8 S6 => BUFFR(0) S1 TAB READ READ INC M S1 XEQT ADD S6 S6 S6=>BUFFR(BFCNT) S9 TAB S9 = ID SEG ADR * * SAVE ID,P IN BUFFR(BFCNT),BUFFR(BFCNT+1) INC M S6 M=>BUFFR(BFCNT) WRTE TAB S9 SAVE ID SEG ADR JMP CNDX TBZ CHKCT 0 ? YES, CHK CT INC S6 M M => INC M S6 BUFFR(BFCNT+1) WRTE TAB P SAVE P INC S6 M M => INC M S6 NEXT BUFFR ZERO S6 DELIMIT WRTE TAB S6 BUFFR|   $PAGE * * BUFFR FULL ? IMM CMLO S1 375B S1 = 2 ADD S1 S1 S1 = NEW BFCNT INC M S3 M => 3 WRTE TAB S1 3 = NEW BFCNT IMM LOW L 66B L = -202 ADD S1 BFCNT > 201 ? JMP CNDX AL15 CHKCT NO, * CHECK COUNT, WRTE TAB S6 YES, BFCNT = 0 * * CHECK COUNT CHKCT READ INC M S7 READ COUNT ONE S2 INC S1 TAB INC LO COUNT WRTE TAB S1 TIME UP ? JMP CNDX TBZ RJS CLCK NO, EXIT * READ INC M S8 READ COUNT+1 INC S1 TAB INC HI COUNT WRTE TAB S1 TIME UP ? JMP CNDX TBZ RJS CLCK NO, EXIT * INC M S3 M => 3 WRTE TAB S2 3 = -1 = DONE * CLCK RTN P S5 EXIT TO $CIC+1 END { MICMXE,L * * 21MX E-SERIES APG MICROCODE * $CODE='APGM,RE ORG 34417B JMP APGM SAVE ENT POINTS ORG 34700B * * READ: DEF STRING, $CIC ADDRESS, WRITE P INTO $CIC APGM IMM CMLO S2 375B S2 = 2 READ INC M S2 READ DEF STRING DEC P P FIX P INC S3 S2 S3 = 3 S1 TAB READ $CIC ADDR READ INC M S1 INC S6 M S6 => DEF 1717B INC S7 S6 S7 => COUNT S1 TAB M => $CIC PNTR READ INC M S1 INC S8 S7 S8 => COUNT+1 INC S10 S8 S10 => BUFFR(0) INC M TAB M => $CIC WRTE TAB P $CIC = P * * READ BFCNT,PRCSS CHECK FOR IN PROCESS (-BFCNT) INC S5 M S5 => $CIC+1 READ INC M S3 READ BFCNT L TAB L = BFCNT JMP CNDX AL15 CHKCT IN PROCESS ? * YES, CHK COUNT * READ 1717B (XEQT) READ1717 READ INC M S6 READ 1717B ADD S10 S10 S10=>BUFR(BFCNT) S1 TAB READ READ INC M S1 XEQT S9 TAB S9 = ID SEG ADR * * SAVE ID,P IN BUFFR(BFCNT),BUFFR(BFCNT+1) INC M S10 M=>BUFFR(BFCNT) WRTE TAB S9 SAVE ID SEG ADR JMP CNDX ALZ CHKCT 0 ? YES, CHK CT INC S6 M M => INC M S6 BUFFR(BFCNT+1) WRTE TAB P SAVE P INC S6 M M => INC M S6 NEXT BUFFR ZERO S6 DELIMIT    WRTE TAB S6 BUFFR $PAGE * * BUFFR FULL ? IMM CMLO S1 375B S1 = 2 ADD S1 S1 S1 = NEW BFCNT INC M S3 M => 3 WRTE TAB S1 3 = NEW BFCNT IMM LOW L 66B L = -202 ADD S1 BFCNT > 201 ? JMP CNDX AL15 CHKCT NO, * CHECK COUNT, WRTE TAB S6 YES, BFCNT = 0 * * CHECK COUNT CHKCT READ INC M S7 READ COUNT ONE S2 INC S1 TAB INC LO COUNT WRTE TAB S1 TIME UP ? JMP CNDX ALZ RJS CLCK NO, EXIT * READ INC M S8 READ COUNT+1 INC S1 TAB INC HI COUNT WRTE TAB S1 TIME UP ? JMP CNDX ALZ RJS CLCK NO, EXIT * INC M S3 M => 3 WRTE TAB S2 3 = -1 = DONE * CLCK READ RTN INC PNM S5 EXIT TO $CIC+1 END ; FTN4,L PROGRAM APGL,,50 C C APGL LISTS THE ACTIVITY PROFILE GENERATED BY APG C REAL SUMS(10),PRCNT(10) INTEGER P(5),ACTAD,RTRVE,CONS INTEGER PROG(3),PROGS(3,10),FIRST,LAST,DELTA,ACTIV(500) EQUIVALENCE (ACTIV(1),CONS),(ACTIV(2),MINS),(ACTIV(3),LIST) EQUIVALENCE (P,LNGTH) DATA RTRVE/1/ C C GET LENGTH OF ACTIV TABLE CALL RMPAR(LNGTH) C C GET ACTIV TABLE FROM APGI, MODIFIED BY APG CALL EXEC (14,RTRVE,ACTIV,LNGTH) C C INDICATE END OF ACTIVITY PROFILE GENERATION WRITE (CONS,2100) 2100 FORMAT (/," END OF ACTIVITY PROFILE GENERATION") C C USE ID SEGMENT ADDRESS TO GET C PROGRAM NAME, FIRST, LAST, DELTA, CELLS INFO J = 4 K = 0 TOTAL = 0. 100 IDADR = ACTIV(J+1) K = K + 1 PROG(1) = IGET (IDADR+12) PROG(2) = IGET (IDADR+13) PROG(3) = IAND (IGET (IDADR+14),177400B) + 40B FIRST = ACTIV(J+3) LAST = ACTIV(J+2) DELTA = ACTIV(J+4) RN = (FLOAT (LAST+1) - FIRST)/DELTA N = RN LASTC = (RN - N)*DELTA IF ((RN - N) .NE. 0) N = N + 1 C C LIST HEADER INFO WRITE (LIST,2200) PROG,FIRST,LAST,N,DELTA 2200 FORMAT (1H1,/,X,"ACTIVITY PROFILE GENERATION FOR ",3A2,//, 1 X,"MEMORY ANALYZED FROM ",@5,"B TO ",@5,"B.",/, 2 X,I6," MEMORY CELLS, EACH ",@5,"B LONG;",/, 3 X,"0 ACTIVITY CELLS NOT LISTED.") WRITE (LIST,2300) 2300 FORMAT (/,X,"LOCATIONS",5X,"INTERRUPTS",6X,"% USAGE",3X, 1 "CUMULATIVE % USAGE",/) C C LIST UNDER CELL INFO UNDER = ACTIV(J+6) IF (UNDER .GE. 0.) GO TO 200 UNDER = 32768. + IAND (ACTIV(J+6),077777B) 200 OVER = ACTIV(J+5) IF (OVER .GE. 0.) GO TO 300 OVER = 32768. + IAND (ACTIV(J+5),077777B) 300 SUM = UNDER + OVER DO 400 I=1,N CELL = ACTIV(J+6+I) IF (CELL .GE. 0.) GO TO 400 CELL = 32768. + IAND (ACTIV(J+6+I),077777B) 400 SUM = SUM + CELL SUMS(K) = SUM IF (SUM .GT. 0) GO TO 500 WRITE (LIST,2400) 2400 FORMAT (/," NO ACTIVITY") GO TO 1100 500 PC = UNDER*100./SUM CUMPC = PC WRITE (LIST,2500) UNDER,PC,CUMPC 2500 FORMAT (X,"UNDER",11X,F6.0,7X,F7.2,9X,F7.2) C C LIST MAIN ACTIVITY PROFILE (N CELLS) DO 1000 I=1,N LOCLW = FIRST + DELTA*(I-1) IF (N .GT. I) GO TO 600 IF (LASTC .EQ. 0) GO TO 600 LOCHI = LOCLW + LASTC - 1 GO TO 700 600 LOCHI = LOCLW + DELTA - 1 700 CELL = ACTIV(J+6+I) IF (CELL .GE. 0.) GO TO 800 CELL = 32768. + IAND (ACTIV(J+6+I),077777B) 800 PC = CELL*100./SUM CUMPC = CUMPC + PC IF (PC) 1000,1000,900 900 WRITE (LIST,2600) LOCLW,LOCHI,CELL,PC,CUMPC 2600 FORMAT (X,@5,"-",@5,5X,F6.0,7X,F7.2,9X,F7.2) 1000 CONTINUE C C LIST OVER CELL INFO PC = OVER*100./SUM CUMPC = CUMPC + PC WRITE (LIST,2700) OVER,PC,CUMPC 2700 FORMAT (X,"OVER ",11X,F6.0,7X,F7.2,9X,F7.2) C C ACCUMULATE COMPOSITE STATISTICS 1100 TOTAL = TOTAL + SUMS(K) DO 1200 I=1,3 1200 PROGS(K,I) = PROG(I) J = J + ACTIV(J) IF (ACTIV(J) .GT. 0) GO TO 100 C C LIST COMPOSITE STATISTICS TIME = TOTAL/100. DO 1250 I=1,10 1250 PRCNT(I) = SUMS(I)/TOTAL*100. WRITE (LIST,2800) TOTAL,TIME, 1 (((PROGS(J,I),I=1,3),PRCNT(J),SUMS(J)),J=1,K) 2800 FORMAT (1H1,/," TOTAL SAMPLES = ",F10.0,/, 1 " EXECUTION TIME =",F10.2," SECONDS",//, 2 " PROGRAM ",5X," RELATIVE CPU % UTILIZATION", 3 5X,"SAMPLES",//, 4 (3X,3A2,17X,F5.2,15X,F7.0)) STOP 1300 WRITE (CONS,2900) 2900 FORMAT (/," !! ACTIV TABLE NOT FOUND, APGL TERMINATED !!") GO TO 9999 1400 WRITE (CONS,3000) 3000 FORMAT (/," !! CANNOT FIND ID SEGMENT FOR APGL, APG ABORTED !!") 9999 END END$ ~ FTN4,L PROGRAM SINES INTEGER T0(5),T1(5),CONS,P(5) EQUIVALENCE (P,CONS) CALL RMPAR (CONS) CALL EXEC (11,T0) DO 10 I=1,20000 10 Y = SIN (.4) CALL EXEC (11,T1) WRITE (CONS,100) (T1(I),I=4,1,-1),(T0(I),I=4,1,-1) 100 FORMAT (4I4) STOP END END$ 9FTN,L PROGRAM TRIG C C TRIG DEMONSTRATES THE USE OF THE C RTE ACTIVITY PROFILE GENERATOR C DO 10 I=1,10000 X = FLOAT(I) * 0.01745 A = SIN(X) B = COS(X) C = TAN(X) D = 1.0/C 10 CONTINUE STOP END END$  $ 22682-18043 1644 SC 0122 PROGRAMMING FOR HP2645 TERMINAL "SOFTKEYS"             H0101 FTN4,B C C VERSION 10-4-76 JRT C PROGRAM JKEYS,3,75 C DIMENSION LU(5),IBUF(40),IPBUF(33),IDCB(144),IDUM(2),IFNAM(3) INTEGER REC1(3),REC2(1),REC3(54),REC4(1),REC5(53) INTEGER REC6(2),REC7(48),REC8(48),REC9(48),RC10(48) INTEGER RC11(48),RC12(48),RC13(48),RC14(48) INTEGER RCDUM(100),KEYDM(48,8),RECLN(8),NUMBR(2) C C EQUIVALENCE (REC3,RCDUM),(REC5,RCDUM(57)) EQUIVALENCE (REC7,KEYDM(1,1)),(REC8,KEYDM(1,2)) EQUIVALENCE (REC9,KEYDM(1,3)),(RC10,KEYDM(1,4)) EQUIVALENCE (RC11,KEYDM(1,5)),(RC12,KEYDM(1,6)) EQUIVALENCE (RC13,KEYDM(1,7)),(RC14,KEYDM(1,8)) EQUIVALENCE (ICMND,IPBUF(2)) EQUIVALENCE (X,IA,IDUM),(IB,IDUM(2)) C C C C PRELIMINARY SECTION C C A) UNLOCK MEMORY, MOVE CURSOR TO TOP LEFT, CLEAR SCREEN C DATA RECLN/8*16/,ISPAC/2H / DATA REC1/015555B,015550B,015512B/ C C B) MOVE CURSOR BACK TO TOP LEFT C DATA REC2/015501B/ C C C) OUTPUT KEY LABELS C DATA REC3/020033B,023144B,041050B,030451B,020040B,020040B,020040B, & 020040B,020040B,020033B,023144B,040040B,020040B,020040B,020033B, & 023144B,041050B,031051B,020040B,020040B,020040B,020040B,020040B, & 020033B,023144B,040040B,020040B,020040B,020033B,023144B,041050B, & 031451B,020040B,020040B,020040B,020040B,020040B,020033B,023144B, & 040040B,020040B,020040B,020033B,023144B,041050B,032051B,020040B, & 020040B,020040B,020040B,020040B,015446B,062100B/ C DATA REC4/20040B/ C DATA REC5/020033B,023144B,041050B,032451B,020040B,020040B,020040B, & 020040B, & 020040B,020033B,023144B,040040B,020040B,020040B,020033B,023144B, & 041050B,033051B,020040B,020040B,020040B,020040B,020040B,020033B, & 023144B,040040B,020040B,020040B,020033B,023144B,041050B,033451B, & 020040B,020040B,020040B,020040B,020040B,020033B,023144B,040040B, & 020040B,020040B,020033B,023144B,041050B,034051B,020040B,020040B, & B020040B,020040B,020040B,015446B,062100B/ C C C) LOCK MEMORY C DATA REC6/015502B,015554B/ C C D) PROGRAM THE KEYS C C KEY # 1 C DATA REC7/015446B,63061B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA REC8/015446B,63062B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA REC9/015446B,63063B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA RC10/015446B,63064B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA RC11/015446B,63065B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA RC12/015446B,63066B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA RC13/015446B,63067B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ DATA RC14/015446B,63070B,65462B,60460B,2H20,2HL ,9*2H ,20040B/ C C CALL RMPAR(LU) IF(LU.EQ.0)LU=1 ILU=LU+400B C WRITE(LU,100) 100 FORMAT("/JKEYS: VERSION 10-4-76 JRT"/) C 5 WRITE(LU,101) 101 FORMAT("/JKEYS: CREATE NEW KEYS FILE OR UPDATE OLD? (CR/UP): _") X=REIO(1,ILU,IBUF,36) CALL PARSE(IBUF,IB*2,IPBUF) IF(ICMND.EQ.2HCR)GO TO 20 IF(ICMND.NE.2HUP)GO TO 5 C C SECTION TO GET OLD FILE DATA C 10 IUPDAT=1 WRITE(LU,110) 110 FORMAT(/"/JKEYS: ENTER 'NAMR' (NAME:SC:CR) FOR OLD FILE: _") X=REIO(1,ILU,IBUF,36) CALL COLON(IBUF,IB) CALL PARSE(IBUF,IB*2,IPBUF) IF(ICMND.EQ.2H/A)GO TO 90 IFNAM=IPBUF(2) IFNAM(2)=IPBUF(3) IFNAM(3)=IPBUF(4) ISC=IPBUF(6) ICR=IPBUF(10) CALL OPEN(IDCB,IERR,IFNAM,0,ISC,ICR) IF(IERR.GE.0)GO TO 14 WRITE(LU,164)IERR GO TO 10 C 14 CALL READF(IDCB,IERR,REC1,3) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC2,1) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC3,54) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC4,1) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC5,53) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC6,2) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC7,48,RECLN(1)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC8,48,RECLN(2)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,REC9,48,RECLN(3)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,RC10,48,RECLN(4)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,RC11,48,RECLN(5)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,RC12,48,RECLN(6)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,RC13,48,RECLN(7)) IF(IERR.LT.0)GO TO 18 CALL READF(IDCB,IERR,RC14,48,RECLN(8)) IF(IERR.GE.0)GO TO 20 CALL CLOSE(IDCB,IERR) C 18 WRITE(LU,164)IERR GO TO 10 C C C SECTION TO UPDATE FILE INFORMATION C 20 WRITE(LU,120) 120 FORMAT(/"/JKEYS: ENTER KEY NUMBER (0,WR,EN = WRITE TO FILE): _") X=REIO(1,ILU,IBUF,36) CALL PARSE(IBUF,IB*2,IPBUF) IKEY=IPBUF(2) IF((IKEY.EQ.2HWR).OR.(IKEY.EQ.2HEN).OR.(IKEY.EQ.0))GO TO 60 IF(IKEY.EQ.2H/A)GO TO 90 IF((IKEY.GE.1).AND.(IKEY.LE.8))GO TO 22 WRITE(LU,121) 121 FORMAT("/JKEYS: INPUT ERROR!") GO TO 20 C 22 IF(IUPDAT.EQ.0)GO TO 221 IF(IKEY.GT.4)CALL REIO(2,LU,REC5,53) IF(IKEY.LE.4)CALL REIO(2,LU,REC3,54) CALL REIO(2,LU,ISPAC,1) CALL REIO(2,LU,KEYDM(5,IKEY),RECLN(IKEY)-3) C 221 WRITE(LU,122) 122 FORMAT(/"/JKEYS: ENTER KEY LABEL (TO 10 CHARACTERS): _") DO 23 I=1,36 IBUF(I)=2H 23 CONTINUE C X=REIO(1,ILU,IBUF,5) CALL PARSE(IBUF,IB*2,IPBUF) IF((IPBUF.EQ.0).AND.(IUPDAT.NE.0))GO TO 241 INDEX=4+(IKEY-1)*14 DO 24 I=1,5 RCDUM(INDEX+I)=IBUF(I) 24 CONTINUE C 241 WRITE(LU,124) 124 FORMAT(/"/JKEYS: ENTER ASCII STRING FOR KEY FUNCTION:") DO 25 I=1,40 IBUF(I)=2H 25 CONTINUE C X=REIO(1,ILU,IBUF,-80) CALL PARSE(IBUF,IB,IPBUF) IF((IPBUF.EQ.0).AND.(IUPDAT.NE.0))GO TO 20 NWDS=(1+IB)/2 DO 28 I=1,NWDS KEYDM(I+6,IKEY)=IBUF("ZI) 28 CONTINUE RECLN(IKEY)=NWDS+6 ICHRS=IB+1 CALL CODE WRITE(NUMBR,128)ICHRS 128 FORMAT(I2) KEYDM(5,IKEY)=NUMBR GO TO 20 C C C SECTION TO WRITE FILE C 60 WRITE(LU,160) 160 FORMAT(/"/JKEYS: ENTER FILE 'NAMR' (NAME:SC:CR) FOR KEYS FILE",/, & " /A = ABORT, NULL = REPLACE OLD VERSION"/, & " ENTER 'NAMR': _") C X=REIO(1,ILU,IBUF,36) CALL COLON(IBUF,IB) CALL PARSE(IBUF,IB*2,IPBUF) IF(ICMND.EQ.2H/A)GO TO 90 IF((IUPDAT.GT.0).AND.(IPBUF.EQ.0))GO TO 69 IF(IPBUF.GT.1)GO TO 62 WRITE(LU,121) GO TO 60 C 62 IFNAM=IPBUF(2) IFNAM(2)=IPBUF(3) IFNAM(3)=IPBUF(4) ISC=IPBUF(6) ICR=IPBUF(10) C CALL CREAT(IDCB,IERR,IFNAM,5,4,ISC,ICR) IF(IERR.GE.O)GO TO 70 64 WRITE(LU,164)IERR 164 FORMAT(/"/JKEYS: FILE ERROR"I6) GO TO 60 C 69 CALL OPEN(IDCB,IERR,IFNAM,0,ISC,ICR) IF(IERR.LT.0)GO TO 64 C C C WRITE THE FILE... C 70 CALL WRITF(IDCB,IERR,REC1,3) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC2,1) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC3,54) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC4,1) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC5,53) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC6,2) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC7,RECLN(1)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC8,RECLN(2)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,REC9,RECLN(3)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,RC10,RECLN(4)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,RC11,RECLN(5)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,RC12,RECLN(6)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,RC13,RECLN(7)) IF(IERR.LT.0)GO TO 64 CALL WRITF(IDCB,IERR,RC14,RECLN(8)) IF(IERR.LT.0)GO TO 64 C C END C 90 CALL CLOSE(IDCB,IERR) WRITE(LU,190) 190 FORMAT("/JKEYS: END!") C END END$ FTN4 C C VERSION 6 / 11 / 75 JRT C SUBROUTINE COLON(IBUF,N) C DIMENSION IBUF(2) C C THIS SUBROUTINE ACCEPTS A BUFFER CONTAINING AN ASCII STRING C (USUALLY AN FMP 'NAMR') AND CONVERTS ALL COLONS (:) TO COMMAS (,) C THIS ALLOWS THE USE OF THE SYSTEM PARSE ROUTINE (WHICH REQUIRES C COMMAS AS DELIMITERS) TO PARSE OUT FMP 'NAMR'S WHICH USE COLONS C AS DELIMITERS C Cu C C DO 10 I=1,N IF(IAND(IBUF(I),77600B).NE.35000B)GO TO 5 IBUF(I)=IOR(IAND(IBUF(I),177B),26000B) 5 IF(IAND(IBUF(I),177B).NE.72B)GO TO 10 IBUF(I)=IOR(IAND(IBUF(I),77600B),54B) 10 CONTINUE C RETURN C END END$ END$ a   22682-18044 1644 SC 0122 ASCII SOURCE FILE READ SUBROUTINE             H0101 zASMB,R,L,T,C NAM RDSFL,7 EXT EXEC,.ENTR,HSDIO,CLRTB,SSIZE,USIZE ENT OPENF,FREAD,FRSET,FEND SUP * FILE1 NOP BUFR1 NOP SECT1 NOP STAT1 NOP OPENF NOP JSB .ENTR DEF FILE1 SPC 1 LDA FILE1 STA FAD JSB EXEC DEF *+4 DEF D18 FAD NOP DEF $LEN LDA $LEN SZA JMP SETAB * * $USER OR $SYSM?? * LDA FILE1 LDB .USER JSB MATCH RSS JMP USRL? LDA FILE1 LDB .SYSM JSB MATCH JMP ER01 * SYSL? JSB SSIZE DEF *+2 DEF $LEN JMP ZERO? USRL? JSB USIZE DEF *+2 DEF $LEN ZERO? LDA $LEN SZA,RSS JMP ER01 * * SET UP TABLE * SETAB LDB .SPC JSB SRCH JMP ER02 STA INDEX MPY D3 LDB FILE1 ADA .FNAM JSB $PUT LDA BUFR1 STA $BUFR LDA SECT1,I STA $SECT CLA STA $CWD STA $CSEC LDA FILE1 STA $FILE JSB READ JSB $SAVE CLA STA STAT1,I JMP OPENF,I ER01 CLA,INA JMP *-3 ER02 LDA D2 JMP *-5 * * * FILE2 NOP STAT2 NOP FRSET NOP JSB .ENTR DEF FILE2 SPC 1 LDB FILE2 JSB SRCH JMP ER03 STA INDEX JSB $LOAD CLA STA $CWD STA $CSEC JSB READ JSB $SAVE CLA STA STAT2,I JMP FRSET,I ER03 LDA D3 JMP *-3 * * * FILE3 NOP STAT3 NOP FEND NOP JSB .ENTR DEF FILE3 SPC 1 LDB FILE3 JSB SRCH JMP ER04 STA INDEX MPY D3 ADA .FNAM LDB .SPC JSB $PUT JSB CLRTB DEF *+1 CLA STA STAT3,I JMP FEND,I ER04 LDA D4 JMP *-3 * * * FILE4 NOP DATA NOP STAT4 NOP FREAD NOP JSB .ENTR DEF FILE4 LDA FILE4 STA $FILE SPC 1 LDB FILE4 JSB SRCH JMP ER05 STA INDEX JSB $LOAD *TEST FOR EOF LDB $CWD ADB $BUFR LDA 1,I ALF,ALF AND M377 SZA,RSS JMP ER06 STA WDCNT STA DATA,I CLA STA COUNT NEXT ISZ $CWD LDA $CWD CPA $NWDS JSB RDREC SPC 1 LDB $BUFR ADB $CWD LDA 1,I ISZ DATA STA DATA,I ISZ COUNT LDA COUNT CPA WDCNT RSS JMP NEXT *MOVE POINTER TO NEXT LENGTH ISZ $CWD LDA $CWD CPA $NWDS JSB RDREC JSB $SAVE CLA STA STAT4,I JMP FREAD,I ER05 LDA D5 JMP *-3 ER06 LDA D6 JMP *-5 * * * READ NOP LDA $SECT STA RSECT LDA $CSEC ADA RSECT CMA,INA ADA $LEN SSA,RSS JMP *+3 ADA RSECT STA RSECT LDA RSECT MPY D128 STA RWDS JSB HSDIO DEF *+6 DEF D14 $BUFR NOP DEF RWDS DEF $CSEC $FILE NOP LDB $CSEC ADB RSECT STB $CSEC JMP READ,I * * RDREC NOP CLA STA $CWD JSB READ JMP RDREC,I * * $LOAD NOP LDB INDEX ADB .BUFR LDA 1,I STA $BUFR LDB INDEX ADB .CWD LDA 1,I STA $CWD LDB INDEX ADB .CSEC LDA 1,I STA $CSEC LDB INDEX ADB .SECT LDA 1,I STA $SECT MPY D128 STA $NWDS LDB INDEX ADB .LEN LDA 1,I STA $LEN JMP $LOAD,I * * $SAVE NOP LDB INDEX ADB .BUFR LDA $BUFR STA 1,I LDB INDEX ADB .CWD LDA $CWD STA 1,I LDB INDEX ADB .CSEC LDA $CSEC STA 1,I LDB INDEX ADB .SECT LDA $SECT STA 1,I LDB INDEX ADB .LEN LDA $LEN $STA 1,I JMP $SAVE,I * * A= ADDRESS OF FIRST ARRAY * B= ADDRESS OF SECOND ARRAY * JSB MATCH * FAILURE ( ARRAYS ARE NOT THE SAME) * SUCCESS (ARRAYS ARE THE SAME) * MATCH NOP STA ADR CLA STA XCTR MNEXT LDA 1,I CPA ADR,I RSS JMP MATCH,I ISZ XCTR LDA XCTR CPA D3 JMP MDONE INB ISZ ADR JMP MNEXT MDONE ISZ MATCH JMP MATCH,I * * * MOVES WORDS OF CORE FROM ONE ADDRESS TO ANOTHER * PLACES ARRAY IN 'B' INTO ARRAY IN 'A'. * JSB $PUT * $PUT NOP STB $PUTA CLB STB CTR $PUT1 LDB $PUTA,I STB 0,I ISZ $PUTA INA ISZ CTR LDB CTR CPB D3 JMP $PUT,I JMP $PUT1 * * * * B= FILE NAME * JSB SRCH * FAILURE - MISSING NAME * SUCCESS - A= ADDRESS IN TABLE (RELATIVE) * SRCH NOP CLA STA CTR SRCH1 LDA CTR CPA D10 JMP SRCH,I STB BSAVE MPY D3 LDB BSAVE ADA .FNAM JSB MATCH JMP SRCH2 LDA CTR ISZ SRCH JMP SRCH,I SRCH2 ISZ CTR JMP SRCH1 * D2 DEC 2 D3 DEC 3 D4 DEC 4 D5 DEC 5 D6 DEC 6 D10 DEC 10 D18 DEC 18 D14 DEC 14 D128 DEC 128 M377 OCT 377 .USER DEF $USER .SYSM DEF $SYSM .SPC DEF SPACE .FNAM DEF TFNAM .BUFR DEF TBUFR .CWD DEF TCWD .CSEC DEF TCSEC .SECT DEF TSECT .LEN DEF TLEN $LEN BSS 1 $CSEC BSS 1 $PUTA BSS 1 $SECT BSS 1 $NWDS BSS 1 RSECT BSS 1 $CWD BSS 1 RWDS BSS 1 CTR BSS 1 XCTR BSS 1 ADR BSS 1 BSAVE BSS 1 COUNT BSS 1 WDCNT BSS 1 INDEX BSS 1 * SPACE ASC 3, $USER ASC 3,$USER $SYSM ASC 3,$SYSM TFNAM ASC 15, ASC 15, TBUFR BSS 10 TCWD BSS 10 TCSEC BSS 10 TSECT BSS 10 TLEN BSS 10 END [  22682-18045 1648 SC 0122 UNEXT              H0101 TN4,L PROGRAM UNEXT(3,88) C C THE PURPOSE OF THIS PROGRAM IS TO UNEXTENT FILES ON C EACH MOUNTED CARTRIDGE IN RTE II OR III. C C IT WILL ALSO IF DESIRED RECLAIM UNSED FILE SPACE C FROM TYPE 4 FILES. C C C RUNNING SECQUENCE: C C UNEXTENT FILES ONLY C C RU,UNEXT,LI (WHERE LI=OUTPUT LIST LU.) C C UNEXTENT FILES THEN RECLAIM UNUSED DISC SPACE. C C RU,UNEXT,LI,RE C C C WRITTEN BY AL VIGANO SPD NOV.12,1976 C INTEGER CRT,IENAM(3) DIMENSION IBUF(128), ISTAT(125), IO(5), NAM(3), KP(25,9) DIMENSION IFILE(25),IDCB(144),IDCB1(144),IBUF1(135) EQUIVALENCE (IO(1),CRT),(IO(2),LI) DATA ITAT/1656B/, ITATS/1756B/ DATA IENAM/2HXX,2HXX,2HXX/ CALL RMPAR(IO) IF (CRT .EQ. 0) CRT = 1 IF (LI .EQ. 0) LI = CRT C C FORMAT STATEMENTS. C 20 FORMAT (/" FILE '",3A2,"' ON LU '",I3,"' HAS A SECURITY CODE" C/" AND I'M NOT ALLOWED TO TOUCH IT.......RATS !?*@") 25 FORMAT (/" FILE '"3A2,"' ON LU '",I3,"' IS BEING USED " C/" RUN ME AGAIN WHEN ITS FREE........I'LL BE A WAITIN.") 30 FORMAT (//" DONE A PACK COMMAND SHOULD NOW BE GIVEN") 32 FORMAT (" EXTENTED FILES ARE GONE " C//" RECLAIMING DISK SPACE FROM TYPE 4 FILES") 36 FORMAT (" FILE ' ",3A2," ' IS CORRUPT " C/" PLEASE DO SOMETHING WITH IT....YICK !!") C IPAK=0 C ENTER AND READ FILE NAME. C 35 M = 1 C C OBTAIN INFORMATION ON ALL CARTRIDGE LABELS. C CALL FSTAT(ISTAT) DO 100 N = 0,31 I = (4*N) + 1 J = (4*N) + 2 C C SET DISK LU TO ISTAT(I) C ID = ISTAT(I) C C SET LAST TRAK TO ISTAT(J) C IT = ISTAT(J) IF (ID .EQ. 0) GO TO 600 C C SET UP FOR MULTIPLE DIRECTORY TRACKS C NDRT=48 IFLG=0 DO 200 NDR=1,NDRT ITR = IT-NDR+1 C C s FIND LOGICAL BLOKS. C DO 200 L = 0,47 IF (ID .EQ. 2 .AND. IFLG .EQ. 0) L = L + 1 LL = 14*L IS = MOD(LL,96) C C READ LOGICAL BLOKS. C CALL BREAD(IBUF,128,ID,ITR,IS,0) IF (IFLG .EQ. 0) NDRT=-IBUF(9) IFLG=1 C C READ FIRST WORD OF EACH ENTRY IN EACH SECTOR. C DO 300 IW = 1,113,16 IF (IBUF(IW) .EQ. 0) GO TO 100 C C ILU=-ID C NAM(1)=IBUF(IW) NAM(2)=IBUF(IW+1) NAM(3)=IBUF(IW+2) C IEXTS=IUBYT(IBUF(IW+5)) C C LOOK FOR A TYPE 0 FILE C IF (IBUF(IW+3).EQ.0)GOTO 300 C IF (IPAK.EQ.0) GOTO 320 IF (IBUF(IW+3).NE.4) GOTO 300 IF(IPAK.EQ.1)WRITE (CRT,32) IPAK=2 CALL OPEN (IDCB,IERR,NAM,0,IDUM,ILU) IF (IERR.LT.0) GOTO 300 WRITE (CRT,330) NAM,ID,IBUF(IW+3) 315 CALL READF(IDCB,IERR,IBUF1,135,ILENT) IF (ILENT.EQ.-1) GOTO 316 IF (IERR.EQ.-5) WRITE (CRT,36)NAM IF (IERR.LT.0) GOTO 317 GOTO 315 316 CALL LOCF(IDCB,IERR,I,IRB,II,JSEC) ITRUN=JSEC/2-IRB-1 CALL CLOSE (IDCB,IERR,ITRUN) GOTO 300 317 CALL CLOSE(IDCB,IERR) GOTO 300 C LOOK FOR A FILE THAT HAS NO EXTENTS C 320 IF (IEXTS.GT.1) GOTO 300 IF (IEXTS.EQ.0) GOTO 300 C C IF FILE HAS BEEN PURGED FORGET IT C 303 IF (IBUF(IW).EQ.-1) GOTO 300 C 330 FORMAT(/" WORKING ON FILE' ",3A2," 'ON LU' "I3," 'TYPE=",I2) CALL NAMF(IDCB,IERR,NAM,IENAM,IDUM,ILU) IF(IERR.EQ.-7) WRITE (CRT,20) NAM,ID IF(IERR.EQ.-8) WRITE (CRT,25) NAM,ID IF(IERR.LT.0) GOTO 300 WRITE (CRT,330)NAM,ID,IBUF(IW+3) CALL CREAT(IDCB1,IERR,NAM,-1,IBUF(IW+3),IDUM,ILU) IF (IERR.EQ.-6)CALL NAMF(IDCB,IERR,IENAM,NAM,IDUM,ILU) IF(IERR.LT.0)GOTO 300 CALL OPEN(IDCB,IERR,IENAM,0,IDUM,ILU) 340 CALL READF(IDCB,IERR,IBUF1,135,ILENT) IF (ILENT.EQ.135) GOTO 327 IF(ILENT.EQ.-1)GOTO 350 CALL WRITF(IDCB1,IERR,IBUF1,ILENT) S, IF (IERR.LT.0) GOTO 327 GOTO 340 350 CALL LOCF(IDCB1,IERR,I,IRB,II,JSEC) ITRUN=JSEC/2-IRB-1 CALL CLOSE(IDCB1,IERR,ITRUN) CALL CLOSE(IDCB,IERR) CALL PURGE(IDCB,IERR,IENAM,IDUM,ILU) M=M+1 300 CONTINUE 200 CONTINUE 100 CONTINUE 600 IF (LI.NE.2HRE) GOTO 601 IPAK=1 LI=2HDN GOTO 35 601 WRITE (CRT,30) STOP 77 327 CALL CLOSE(IDCB,IERR) CALL LOCF(IDCB1,IERR,I,IRB,II,JSEC) ITRUN=JSEC/2-IRB-1 CALL CLOSE(IDCB1,IERR,ITRUN) CALL PURGE(IDCB1,IERR,NAM,IDUM,ILU) CALL NAMF(IDCB,IERR,IENAM,NAM,IDUM,ILU) GOTO 300 END END $ ASMB,L NAM BITMA,7 ENT IBIT,IROT,IUBYT,ILBYT EXT .ENTR N NOP NB NOP IBIT NOP ROTATES BIT NB INTO SIGN BIT (15) JSB .ENTR DEF N LDA N,I LDB NB,I CMB ROT RAR ROTATE (NB+1) TIMES INB,SZB JMP ROT JMP IBIT,I * N2 NOP IROT NOP SWAPS UPPER & LOWER 8 BITS JSB .ENTR OF INTEGER DEF N2 LDA N2,I ALF,ALF JMP IROT,I * N3 NOP IUBYT NOP RETURNS VALUE OF UPPER 8 BITS JSB .ENTR OF INTEGER DEF N3 LDA N3,I ALF,ALF AND MSK JMP IUBYT,I * N4 NOP ILBYT NOP RETURNS MASKED VALUE OF LOWER JSB .ENTR 8 BITS OF INTEGER DEF N4 LDA N4,I AND MSK JMP ILBYT,I * MSK OCT 377 END   22682-18046 1648 SC 0422 21MX MICROCODED FFT WITH AUTOMATIC SCALING ON OVFL             H0104 zMICMX,L $CODE='FFTC,RE INDIRECT EQU 15B ORG 6000B * * 21MX COMPLEX FFT MICROCODE * * REF: IEEE TRANSACTIONS ON AUDIO AND ELECTROACOUSTICS, * VOL. AU-15, JUNE 1967, PAGES 45-55. * * CALLING SEQUENCE * * ISIGN = (-1, FORWARD REAL FFT; +1, REVERSE REAL FFT; * -2, FORWARD COMPLEX FFT; +2, REVERSE COMPLEX FFT) * CALL FFT (IDATA,N,ITABL,ISIGN,IEXP) * * IDATA IS AN INTEGER ARRAY WHOSE ODD SUBSCRIPTED ELEMENTS * ARE THE REAL DATA, AND WHOSE EVEN SUBSCRIPTED ELEMENTS * ARE THE IMAGINARY DATA. I.E. IDATA(1) = FIRST REAL, * IDATA(2) = FIRST IMAGINARY. * * N IS THE NUMBER OF REAL (OR IMAGINARY) DATA POINTS. * * ITABL IS A TABLE OF 256 SIN VALUES USED BY ALL TRANSFORMS * OF 1024 POINTS OR LESS. ITABL MAY BE GENERATED AS FOLLOWS, * * K = NMAX/4 * DO 10 I=1,K * ARG = 3.1415926536*FLOAT(I-1)/FLOAT(NMAX/2) * 10 ITABL(I) = SIN(ARG)*32768. + .5 * * WHERE NMAX = 1024; IF ARRAYS > 1024 POINTS ARE USED, THEN * NMAX MUST BE CHANGED FOR THE TABLE GENERATION, AND IN * THE MICROINSTRUCTION LABELLED SETNMAX. * * ISIGN = (-1 = FORWARD TRANSFORM, +1 = REVERSE TRANSFORM) * * IEXP IS THE MAGNITUDE OF THE DATA, * IEXP NEED NOT BE INITIALIZED BY THE CALLER FOR FORWARD * FFT'S * * AN ASSEMBLER ROUTINE, FFTIF (FFT INTERFACE), MUST BE * LOADED WITH THE CALLING PROGRAM. FFTIF IS SEPARATELY * DOCUMENTED. * * THE MICROCODE ASSUMES THAT IDATA IS IN NORMAL DATA SEQUENCE * AND BINVERTS IT. AT THE END OF THE TRANSFORM, IDATA WILL BE * IN NORMAL DATA SEQUENCE. * * IF A REVERSE TRANSFORM IS PERFORMED WITHOUT THE CORRESPONDING * FORWARD TRANSFORM BEING PERFORMED IN THE SAME PROGRAM, THEN * IEXP MUST BE INITIALIZED TO THE VALUE RETURNED WHEN THE * DATA WAS ORIGINALLY FORWARD TRANSFORMED IN ORDER TO KNOW * THE DATA MAGNITUDE AT THE END OF THE REVERSE TRANSFORM. * * ALL REGISTERS ARE USED AND MODIFIED BY THE MICROCODE. * * THERE ARE NO ERROR EXITS OR RETURN CODES. ANY DATA AND PARAMETER * VALIDATION MUST BE PERFORMED BEFORE INVOKING THE MICROCODE. * * FFTIF CONTAINS A 6 WORD SAVE AREA USED BY THE FFT MICROCODE * AS FOLLOWS * * SAVE(1) = ENTRY INDEX * SAVE(2) = ADDRESS OF DATA * SAVE(3) = N * SAVE(4) = ADDRESS OF TABLE * SAVE(5) = SIGN * SAVE(6) = 'M' * ENTRYTBL JMP OUTER ENTER COMPLEX FFT JMP RTNOVFL REENTER SCALE MACRO JMP RTNINNR REENTER FFT JMP BINVERT BINVERSION JMP CMPLXFFT COMPLEX FFT JMP SCALE SCALE DOWN DATA * * BINVERT DATA * * AT ENTRY * * A = N-1 * B = ADDR OF DATA * X = ORDER * OCT 105623 BINVERSION MACRO * BINVERT M B ENSURE CORRECT MPCK B M MPCK CHECK BINV1 S6 X S6 = ORDER S7 A S7 = INDEX ZERO S4 S4 WILL = BINVERTED INDEX BINV2 LWF R1 S7 S7 SHIFT S7 LSB TO LWF L1 S4 S4 S4 LSB DEC S6 S6 MORE BITS TO SHIFT ? JMP CNDX TBZ RJS BINV2 YES, SHIFT NEXT BIT L A L = INDEX SUB S4 INDEX > BINVERTED INDEX ? JMP CNDX AL15 RJS BINV3 NO, DON'T SWAP * L B L = ADDR OF DATA L1 S4 S4 CLFL ADD S10 S4 S10 = ADDR OF DATA(S4) L1 S4 A ADD S3 S4 S3 = ADDR OF DATA(A) SWAP READ MPCK INC M S3 READ DATA(A) S9 TAB S9 = DATA(A) READ MPCK INC M S10 READ DATA(S4) IONC S10 S10 S10 = ADDR OF IMAG(S4) S4 TAB S4 = DATA(S4) WRTE TAB S9 DATA(S8) = DATA(A) INC M S3 M = ADDR OF DATA(A) WRTE TAB S4 DATA(A) = DATA(S4) INC S3 S3 S3 = NEXT DATA(A) ADDR JMP CNDX FLAG *+2 FLAG = 1 ? YES, SWAP DONE JMP STFL SWAP NO, SWAP IMAG PARTS * BINV3 DEC A A A = NEXT INDEX JMP CNDX TBZ RTN A = 0 ? YES, BINVERSION DONE JMP CNDX NHOI BINV1 INTERRUPT ? NO, CONTINUE RTN DEC P P YES, FIX P, EXIT * * COMPLEX FFT * * AT ENTRY * * OCT 105624 COMPLEX FFT MACRO * DEF SAVE * * GET PARAMETERS CMPLXFFT S12 P S12 = ADDR+1 OF FFT MACRO READ FTCH INC M P READ ADDR OF SAVE JSB IOFF INDIRECT MPCK INC PNM M M = ADDR OF SAVE(1) ION IR TAB IR = ENTRY INDEX IMM CMLO S11 375B S11 = 2 = MMAX INIT WRTE TAB S11 SAVE(1) = 2 = NEW ENTRY INDEX * READ INC PNM P READ ADDR OF DATA S1 TAB S1 = ADDR OF DATA * READ INC PNM P READ N INC P P P = ADDR OF SIGN L1 S8 TAB S8 = 2*N * INC P P P = ADDR OF SAVE(6) = 'M' * JMP J30 ENTRYTBL ENTER (OR REENTER) FFT * * OUTER LOOP ('M' = REPETITION, NOT M-REG) OUTER L1 S9 S11 S9 = MMAX*2 = ISTEP MPCK INC M P M = ADDR OF SAVE(6) ZERO S5 S5 = 0 = 'M' INIT WRTE TAB S5 SAVE 'M' IN SAVE(6) * * MIDDLE LOOP ('M' = REPETITION, NOT M-REG) MIDDLE STFL S10 S5  S10 = I = 'M', CCE SETNMAX IMM RES2 CMHI S7 375B S7 = 512 = NMAX/2 = NH R1 S4 S7 S4 = NMAX/4 L S11 L = MMAX * THE FOLLOWING CODE, TO R1MEXIT, SIMULATES * S5 = ARG = ('M'*NH)/MMAX NH.MMAX SUB S7 NH - MMAX JMP CNDX TBZ MEXIT 0 ? YES, EXIT JMP CNDX AL15 R1MEXIT - ? YES, R1 'M' & EXIT L1 S5 S5 ARG = ARG*2 R1 S7 S7 NH = NH/2 JMP NH.MMAX R1MEXIT R1 S5 S5 ARG = ARG/2 MEXIT L S5 L = ARG = 0 ? JMP CNDX TBZ INNRLOOP YES, COS=+1, SIN=0, E=1 * NO, GET SIN, COS DEC P P P = ADDR OF SIGN ZERO Y ANTICIPATE ARG = NMAX/4, IMM HIGH X 177B COS = 0, SIN = +1 (ALMOST) CLFL SUB S6 S4 ARG > NMAX/4 ? JMP CNDX TBZ DRCTNTST ARG = NMAX/4, FIX SIN JMP CNDX AL15 RJS READTBL NO, READ TABLE STFL CMPS S6 S6 YES, S6 = ARG - NMAX/4 INC S6 S6 = COS INDEX L1 S4 S4 S4 = NMAX/2 SUB S5 S4 S5 = NMAX/2 - ARG * = SIN INDEX READTBL DEC P P P = ADDR OF TABLE READ INC PNM P READ TABLE ADDR L TAB L = ADDR OF TABLE ADD S6 S6 S6 = ADDR OF COS READ INC M S6 READ COS ADD S5 S5 S5 = ADDR OF SIN Y TAB Y = COS READ INC M S5 READ SIN CMPS S3 Y PREPARE TO NEGATE COS X TAB X = SIN JMP CNDX FLAG RJS DRCTNTST NEGATE COS ? CLFL INC Y S3 YES, Y = -COS DRCTNTST READ RES2 INC PNM P READ SIGN, CLE CMPS S2 X PREPARE TO NEGATE SIN TAB FORWARD TRANSFORM ? JMP CNDX AL15 INNRLOOP YES, START BUTTERFLY INC X S2 NO, X = -SIN, * START BUTTERFLY * * CALCULATE DATA(J) = DATA(I) - TR * DATA(J+1) = DATA(I+1) - TI * DATA(I) = DATA(I) + TR * DATA(I+1) = DATA(I+1) + TI * * WHERE TR = TRA + TRB = DATA(J)*COS + DATA(J+1)*SIN * TI = TIA + TIB = DATA(J+1)*COS - DATA(J)*SIN * INNRLOOP L S1 L = ADDR OF DATA ADD S2 S10 S2 = ADDR OF DATA(I) L S11 L = MMAX ADD S3 S2 S3 = ADDR OF DATA(J) * * START OF BUTTERFLY * BUTTRFLY READ ION INC M S3 READ DATA(J) INC S7 S3 S7 = ADDR OF DATA(J+1) S4 TAB S4 = DATA(J) READ INC M S7 READ DATA(J+1) COV S5 TAB S5 = DATA(J+1) JMP CNDX E CALC COS = +1 ? YES, CALC NEW DATA A Y A = COS JMP CNDX TBZ RJS DO.MPYS COS = 0 ? NO, DO MPYS CMPS S S4 PREPARE TO 2'S CMPL S4 JSB NEG32K TEST FOR -32K S4 S5 S4 = DATA(J+1) = TR INC S5 S S5 = -DATA(J) = TI X SIN = -1 ? JMP CNDX AL15 RJS CALC NO, CALC NEW DATA CMPS S5 S SIN = +1, S5 = DATA(J) CMPS S S4 JSB NEG32K TEST FOR -32K INC S4 S S4 = -DATA(J+1) = TR JMP CALC CALC NEW DATA DO.MPYS CLFL L S4 L `@= DATA(J) JSB MPY S7,S6 = DATA(J)*COS = TRA L S5 L = DATA(J+1) STFL A X A = SIN JSB MPY B = TRA + DATA(J+1)*SIN = TR L S4 L = DATA(J) S4 B S4 = TR CMPS A X CLFL INC A A A = -SIN JSB MPY S7,S6 = -DATA(J)*SIN = TIB L S5 L = DATA(J+1) STFL A Y A = COS JSB MPY B = DATA(J+1)*COS + TIB = TI S5 B S5 = TI CALC READ INC M S2 READ DATA(I) INC S6 S2 S6 = ADDR OF DATA(I+1) L TAB L = DATA(I) ENV ADD A S4 A = DATA(I) + TR CMPS S S4 PREPARE TO 2'S CMPL S4 JSB NEG32K TEST FOR -32K INC S4 S S4 = -TR ENV ADD B S4 B = DATA(I) - TR READ INC M S6 READ DATA(I+1) L TAB L = DATA(I+1) CMPS S S5 PREPARE TO 2'S CMPL S5 JSB NEG32K TEST FOR -32K INC S4 S S4 = -TI ENV ADD S S5 S = DATA(I+1) + TI ENV ADD S4 S4 S4 = DATA(I+1) - TI INC S7 S3 S7 = ADDR OF DATA(J+1) * * WRITE VALUES TO MEMORY IF NO OVERFLOW JMP CNDX OVFL OVFLEXIT OVFL ? YES, EXIT UPDTDATA MPCK INC M S3 M = ADDR OF DATA(J) WRTE TAB B DATA(J) = DATA(I) - TR MPCK INC M S7 M = ADDR OF DATA(J+1) WRTE TAB S4 DATA(J+1) = DATA(I+1) - TI MPCK INC M S2 M = ADDR OF DATA(I) WRTE TAB A DATA(I) = DATA(I) + TR MPCK INC M S6 M = ADDR OF DATA(I+1) WRTE CLFL TAy@B S DATA(I+1) = DATA(I+1) + TI * * END OF BUTTERFLY * * MORE BUTTERFLIES TO DO THIS PASS ? JMP CNDX NHOI CHKILP INTERRUPT ? NO, CHECK LOOPS A S11 YES, SAVE MMAX IN A B S10 SAVE I IN B * X CONTAINS SIN * Y CONTAINS COS RTN DEC P S12 FIX P, EXIT * * RETURN FROM INTERRUPT, RESTORE PARAMETERS RTNINNR S11 A S11 = MMAX STFL S10 B S10 = I L1 S9 S11 S9 = MMAX*2 = ISTEP * CHKILP L S9 L = ISTEP ADD S2 S2 S2 = ADDR OF NEXT DATA(I) ADD S3 S3 S3 = ADDR OF NEXT DATA(J) ADD S10 S10 S10 = NEW I L S8 L = N*2 SUB S10 I >= N*2 ? JMP CNDX AL15 RJS CHKMLP YES, CHECK MIDDLE LOOP JMP CNDX FLAG RJS BUTTRFLY RTRN FROM INT ? NO, CONTINUE JMP INNRLOOP YES, RESTORE S2, S3 * CHKMLP READ INC M P READ 'M' IMM LOW L 376B L = -2 SUB S5 TAB S5 = 'M' + 2 WRTE TAB S5 'M' = 'M' + 2 L S11 L = MMAX SUB S5 'M' < MMAX ? JMP CNDX AL15 MIDDLE YES, GET NEXT SIN & COS * * OUTER LOOP END ? CHKOLP S11 S9 MMAX = ISTEP COV L S8 L = 2*N ION SUB S11 MMAX < 2*N JMP CNDX AL15 OUTER YES, START NEXT DATA PASS * FFTDONE RTN INC P S12 FFT DONE ! FIX P, EXIT * * INTEGER MULTIPLY SUBROUTINE * BA = L*A MPY ZERO B S A SAVE A IN S RPT CNTR B MPY R1 ADD B B S JMP CNDX AL15 RJS *+2 SUB B B PASL JMP CNDX AL15 RJS *+3 L S SUB B B JMP CNDX FLAG DPADD FLAG = 1 ? YES, DO DP ADD S7 B NO, SAVE DP (DOUBLE RTN S6 A PRECISION) RESULT IN S7,S6 DPADD L S6 ADD DP LOBITS ADD A A JMP CNDX COUT RJS DPADDHI COUT ? NO, ADD DP HIBITS INC B B YES, INC HIBITS DPADDHI L S7 ADD DP HIBITS ENV ADD B B BA = DP RESULT (TR OR TI) ARS L1 B B B = BA/32768 (REMOVE SIN, * COS SCALING FACTOR) JMP CNDX AL15 RJS TESTA NEG ? DEC A A YES, FIX RMNDR JMP CNDX ONES RTN RTN IF A WAS 0 TESTA A A15 = 1 ? JMP CNDX AL15 RJS RTN NO, RTN IMM HIGH L 0 YES, L15 = 0 FOR OVFL CHK, ENV RTN INC B B ROUND UP, RTN * * TEST FOR -32K DATA SUBROUTINE NEG32K JMP CNDX AL15 RTN ORIG DATA +, RTN L1 CMPS S ORIG DATA = -32K ? JMP CNDX TBZ RJS RTN NO, RTN SOV YES, SOV, RTN RTN RTN * * SCALE ON OVERFLOW SUBROUTINE SCALE IMM COV LOW IR 21B IR = ASMB ARS M A ENSURE CORRECT MPCK A M MPCK CHECK * SCALREAD READ MPCK INC M A READ DATA INC A A A = ADDR OF NEXT DATA SRG2 S3 TAB S3 = DATA/2 JMP CNDX AL15 RJS WRTEDATA DATA >= 0 ? YES, SCALE OKi640 JMP CNDX AL0 RJS WRTEDATA DATA ODD NEG ? NO, SCALE OK INC S3 S3 YES, TRUNCATE WRTEDATA WRTE TAB S3 DATA = DATA/2 DEC B B MORE DATA ? JMP CNDX TBZ RTN NO, EXIT JMP CNDX NHOI SCALREAD INTERRUPT ? NO, CONTINUE RTN DEC P P YES, FIX P, EXIT * OVFLEXIT A S11 SAVE MMAX IN A B S10 SAVE I IN B * X CONTAINS COS * Y CONTAINS SIN IMM LOW L 373B L = -5 ADD P P P = ADDR OF SAVE(1) MPCK INC M P M = ADDR OF SAVE(1) IMM CMLO S5 376B S5 = 1 = RTNOVFL INDEX WRTE TAB S5 SAVE(1) = 1 = NEW ENTRY INDEX RTN INC P S12 FIX P, EXIT TO SCALE MACRO * RTNOVFL S11 A S11 = MMAX S10 B S10 = I L1 S9 S11 S9 = ISTEP JMP INNRLOOP REDO OVFL BUTTERFLY * ORG 6376B EXT2 JMP MPY EXT REF POINT FOR MPY EXT1 JMP NEG32K EXT REF POINT FOR NEG32K END 6MICMX,L $CODE='FFTR,RE INDIRECT EQU 15B NEG32K EQU 6377B MPY EQU 6376B ORG 6400B * * 21MX FFT HANDCLAP PASS * * REF: THE FAST FOURIER TRANSFORM ALGORITHM AND ITS APPLICATIONS, * IBM RESEARCH PAPER RC-1743, FEBRUARY 9, 1967, PAGES 30-33. * * CALLING SEQUENCE * E = (1 = FORWARD FFT, 0 = REVERSE FFT) * A = ADDR OF DATA(2) * B = ADDR OF DATA(N-2) * X = N * Y = 2 = I INIT *HCLP OCT 105660 HANDCLAP MACRO * DEF TABLE * DEF SIGN * SOS OVERFLOW ? * JMP OUT NO, HANDCLAP PASS DONE, EXIT * STA SAVEA SAVE ADDR OF DATA(I) * STB SAVEB SAVE ADDR OF DATA(J) * LDA IEXP,I ADD 1 * INA TO * STA IEXP,I DATA EXPONENT * LDA DATA A = ADDR OF DATA * LDB N,I B = N * OCT 105625 SCALE DOWN MACRO * LDA SAVEA RESTORE ADDR OF DATA(I) * LDB SAVEB RESTORE ADDR OF DATA(J) * JMP HCLP CONTINUE HANDCLAP * * FOR N > 1024, CHANGE THE MICROINSTRUCTION LABELLED COS.SIN * JMP FFTREAL HANDCLAP JMP FWDCMPRS FORWARD COMPRESS JMP FWDXPAND FORWARD EXPAND JMP RVRXPAND REVERSE EXPAND ORG 6420B FFTREAL M A ENSURE CORRECT MPCK CHECK MPCK S2 M S2 = ADDR OF DATA(I) M B ENSURE CORRECT MPCK CHECK MPCK S3 M S3 = ADDR OF DATA(J) READ FTCH INC PNM P READ ADDR OF TABLE JSB IOFF INDIRECT IMM LOW IR 21B IR = ASMB ARS ION S12 TAB S12 = ADDR OF TABLE READ FTCH INC M P READ SIGN JSB IOFF INDIRECT ION DEC P P P = ADDR+1 OF HANDCLAP MACRO LWF L1 TAB FLAG = SIGN RES2 $ E = SIGN CLAPTEST L S3 ADDR OF DATA(J) > SUB S2 ADDR OF DATA(I) ? JMP CNDX AL15 COS.SIN YES, CONTINUE HANDCLAP * NO, FIX DATA(N/2+1), EXIT INC S2 S2 S2 = ADDR OF DATA(N/2+1) READ MPCK INC M S2 READ DATA(N/2+1) CMPS S TAB JSB NEG32K TEST FOR -32K JMP CNDX OVFL INCPRTN OVFL ? YES, EXIT TO SCALE MACRO CLAPEND INC S3 S NO, S3 = -DATA(N/2+1) WRTE TAB S3 DATA(N/2+1) = -DATA(N/2+1) INCPRTN INC P P HANDCLAP RTN INC P P EXIT * * GET SIN(ARG) = TABLE(INDEX), COS(ARG) = TABLE(NMAX/4 - INDEX) * * ARG = PI/N*I * * TABLE INDEX FOR ARG = (NMAX/4)/(N/2)*I = (NMAX/2)/N*I * COS.SIN IMM COV CMHI S7 375B S7 = 512 = NMAX/2 R1 S4 S7 S4 = NMAX/4 S5 Y S5 = I, WILL = INDEX L X L = N N.NMAX SUB S7 N > NMAX/2 ? JMP CNDX AL15 R1INDEX YES, R1 INDEX JMP CNDX TBZ INDEXOK N = NMAX/2 ? YES, INDEX OK L1 S5 S5 SIMULATE R1 S7 S7 (NMAX/2)/N*I JMP N.NMAX ADJUST INDEX R1INDEX R1 S5 S5 ADJUST INDEX INDEXOK L S5 L = TABLE INDEX = SIN INDEX SUB S6 S4 S6 = NMAX/4-INDEX = COS INDEX L S12 L = ADDR OF TABLE ADD S6 S6 S6 = ADDR OF TABLE(COS INDEX) READ INC M S6 READ COS ADD S5 S5 S5 = ADDR OF TABLE(SIN INDEX) S4 TAB S4 = COS READ INC M S5 READ SIN 9v CMPS S S4 PREPARE TO 2'S CMPL COS S5 TAB S5 = SIN * JMP CNDX E BUTTRFLY FORWARD FFT ? YES, SIN COS OK INC S4 S NO, NEGATE COS * * HANDCLAP BUTTERFLY * * EQUATIONS * * TRA = (DATA(J) + DATA(I))/2 * TRB = (DATA(J) - DATA(I))/2 * TIA = (DATA(I+1) + DATA(J+1))/2 * TIB = (DATA(I+1) - DATA(J+1))/2 * * TR = TIA*COS + TRB*SIN * TI = TRB*COS + TIA*(-SIN) * * DATA(I+1) = TI + TIB * DATA(J+1) = TI - TIB * DATA(I) = TRA + TR * DATA(J) = TRA - TR * * TRA = (DATA(J) + DATA(I))/2 * TRB = (DATA(J) - DATA(I))/2 BUTTRFLY READ INC M S2 READ DATA(I) INC S2 S2 S2 = ADDR OF DATA(I+1) A TAB A = DATA(I) READ INC M S3 READ DATA(J) INC S3 S3 S3 = ADDR OF DATA(J+1) S6 TAB S6 = DATA(J) B S6 B = DATA(J) JSB ADD.DIV B = (DATA(J) + DATA(I))/2 S11 B S11 = TRA B S6 B = DATA(J) CMPS S A JSB NEG32K TEST FOR -32K INC A S A = -DATA(I) JSB ADD.DIV B = (DATA(J) - DATA(I))/2 S10 B S10 = TRB * * TIA = (DATA(I+1) + DATA(J+1))/2 * TIB = (DATA(I+1) - DATA(J+1))/2 READ INC M S2 READ DATA(I+1) S6 TAB S6 = DATA(I+1) READ INC M S3 READ DATA(J+1) B S6 B = DATA(I+1) A TAB A = DATA(J+1) JSB ADD.DIV B = (DATA(I+1) + DATA(J+1))/2 S9 B S9 = TIA B S6 B = DATA(I+1) CMPS S d A JSB NEG32K TEST FOR -32K INC A S A = -DATA(J+1) JSB ADD.DIV B = DATA(I+1) - DATA(J+1))/2 S8 B S8 = TIB * * TR = TIA*COS + TRB*SIN * TI = TRB*COS + TIA*(-SIN) A S4 A = COS CLFL L S9 L = TIA JSB MPY S7,S6 = TIA*COS A S5 A = SIN STFL L S10 L = TRB JSB MPY B = TIA*COS + TRB*SIN A S4 A = COS L S10 L = TRB CLFL S4 B S4 = TR JSB MPY S7,S6 = TRB*COS L S9 L = TIA CMPS A S5 A = STFL INC A A -SIN JSB MPY B = TI S5 B S5 = TI * * DATA(I+1) = TI + TIB * DATA(J+1) = TI - TIB * DATA(I) = TRA + TR * DATA(J) = TRA - TR L S5 L = TI ENV ADD S6 S8 S6 = TI + TIB CMPS S S8 JSB NEG32K TEST FOR -32K INC S8 S S8 = -TIB ENV ADD S7 S8 S7 = TI - TIB L S11 L = TRA ENV ADD S8 S4 S8 = TRA + TR CMPS S S4 JSB NEG32K TEST FOR -32K INC S4 S S4 = -TR ENV ADD S9 S4 S9 = TRA - TR JMP CNDX OVFL RJS UPDTDATA OVFL ? NO, UPDATE DATA DEC A S2 YES, SAVE ADDR OF DATA(I) DEC B S3 SAVE ADDR OF DATA(J) JMP INCPRTN EXIT TO OVFL MACRO UPDTDATA MPCK INC M S2 M = ADDR OF DATA(I+1) WRTE TAB S6 DATA(I+1) = TI + TIB MPCK INC M S3 M = ADDR OF DATA(J+1) WRTE TAB S7 DATA(J+1) = TI - TIB DEC S4 S2 M = MPCK INC M S4 ADDR OF DATA(I) WRTE TAB S8 DATA(I) = TRA + TR DEC S3 S3 M = MPCK INC M S3 ADDR OF DATA(J) WRTE TAB S9 DATA(J) = TRA - TR * INC S2 S2 S2 = ADDR OF NEXT DATA(I) DEC S3 S3 S3 = DEC S3 S3 ADDR OF NEXT DATA(J) INC Y Y Y = I FOR INC Y Y NEXT ARG JMP CNDX NHOI CLAPTEST TEST FOR END OF HANDCLAP A S2 SAVE ADDR OF DATA(I) IN A B S3 SAVE ADDR OF DATA(J) IN B RTN DEC P P FIX P, EXIT * * (B + A)/2 SUBROUTINE ADD.DIV L A L = OPERAND 1 ENV ADD B B B = OP1 + OP2 SRG2 B B B = (OP1 + OP2)/2 JMP CNDX AL15 RJS RTN SUM/2 >= 0 ? YES, RTN JMP CNDX AL0 RJS RTN ODD ? NO, RTN RTN INC B B YES, TRUNCATE * * COMPRESS N REAL ONLY DATA POINTS TO N/2 COMPLEX DATA POINTS * * CALLING SEQUENCE * * LDA DATA A = ADDR OF DATA * LDB DATA B = ADDR OF DATA * LDY N,I Y = N * OCT 105661 FORWARD COMPRESS MACRO * FWDCMPRS IMM LOW L 376B L = -2 M A ENSURE CORRECT MPCK A M MPCK CHECK * CMPREAD READ INC M B READ DATA(REAL) SUB B B B = ADDR OF NEXT DATA(REAL) S3 TAB S3 = DATA(REAL) MPCK INC M A  M = ADDR OF DATA(COMPLEX) WRTE TAB S3 COMPRESS DATA INC A A A = ADDR OF NEXT DATA(COMPLEX) DEC Y Y DONE ? JMP CNDX TBZ RTN YES, EXIT JMP CNDX NHOI CMPREAD INTERRUPT ? NO, CONTINUE RTN DEC P P YES, FIX P, EXIT RTN RTN * * EXPAND COMPLETED FORWARD FFT INTO SECOND HALF OF DATA * * CALLING SEQUENCE * * X = ADDR OF DATA(2) * Y = ADDR OF DATA(2*N-2) * OCT 105662 FORWARD EXPAND MACRO * FWDXPAND COV M Y ENSURE CORRECT MPCK Y M MPCK CHECK M X ENSURE CORRECT MPCK X M MPCK CHECK FWDXP L Y L = ADDR OF DATA(HI) SUB X X = ADDR OF DATA(LO) JMP CNDX AL15 RJS RTN X < Y ? NO, DONE READ INC M X READ REAL DATA(LO) INC X X X = ADDR OF IMAG DATA(LO) S11 TAB S11 = REAL DATA(LO) READ INC M X READ IMAG DATA(LO) INC S4 Y S4 = ADDR OF IMAG DATA(HI) CMPS S TAB JSB NEG32K TEST FOR -32K INC S10 S S10 = -IMAG DATA(LO) JMP CNDX OVFL RTN OVFL ? YES, EXIT MPCK INC M Y M = ADDR OF REAL DATA(HI) WRTE TAB S11 REAL DATA (HI) = REAL DATA(LO) MPCK INC M S4 M = ADDR OF IMAG DATA(HI) WRTE TAB S10 IMAG DATA(HI) = -IMAG DATA(LO) INC X X X = ADDR OF NEXT LO DATA DEC Y Y DEC Y Y Y = ADDR OF NEXT HI REAL JMP CNDX NHOI FWDXP INTERRUPT ? NO, CONTINUE *($RTN DEC P P YES, FIX P, EXIT * * EXPAND N/2 COMPLEX POINTS, AT END OF A REVERSE FFT, * INTO N REAL POINTS * * CALLING SEQUENCE * * A = ADDR OF DATA(N-1) * B = ADDR OF DATA(2*N-1) * Y = N * OCT 105663 REVERSE EXPAND MACRO RVRXPAND ZERO S3 M B ENSURE CORRECT MPCK B M MPCK CHECK * XPNDREAD READ INC M A READ DATA(COMPLEX) DEC A A A = ADDR OF NEXT DATA(CMPLX) S4 TAB S4 = DATA(CMPLX) MPCK INC M B M = ADDR OF DATA(REAL+1) WRTE TAB S3 DATA(REAL+1) = 0 DEC B B B = ADDR OF DATA(REAL) MPCK INC M B M = ADDR OF DATA(REAL) WRTE TAB S4 DATA(REAL) = DATA(CMPLX) DEC B B B = ADDR OF NEXT DATA(REAL+1) DEC Y Y MORE DATA ? JMP CNDX TBZ RTN NO, EXIT JMP CNDX NHOI XPNDREAD INTERRUPT ? NO, CONTINUE RTN DEC P P YES, FIX P, EXIT END i*ASMB,R,L NAM FFTIF,7 SUP ENT FFT EXT .ENTR MIC BNV,105623B,0 BINVERSION MIC CMF,105624B,0 COMPLEX FFT MIC SCL,105625B,0 SCALE DOWN * SAVAD DEF SAVE SAVE BSS 6 SAVEA BSS 1 SAVEB BSS 1 SAVEE BSS 1 * DATA BSS 1 N BSS 1 TABLE BSS 1 SIGN BSS 1 IEXP BSS 1 FFT NOP JSB .ENTR GET PARAMETER ADDRESSES DEF DATA * LDB SIGN,I SSB,RSS FORWARD FFT ? JMP RVRS NO, DO REVERSE FFT SKP * * FORWARD FFT * * BINVERT DATA JSB BNVRT * * DO FORWARD COMPLEX FFT JSB CMFFT * * IF REAL FFT, DO FORWARD HANDCLAP PASS LDA SIGN,I CPA =D-1 REAL FFT ? JSB HCLAP YES, DO FORWARD HANDCLAP JMP DONE FFT DONE, EXIT * * REVERSE FFT * * IF REAL FFT, DO REVERSE HANDCLAP PASS RVRS CPB =D+1 REAL FFT ? JSB HCLAP YES, DO REVERSE HANDCLAP * * BINVERT DATA JSB BNVRT * * DO REVERSE COMPLEX FFT JSB CMFFT * * FFT DONE ! EXIT DONE JMP FFT,I SKP * * BINVERSION SUBROUTINE * BNVRT NOP LDX =D0 X = 0, WILL = ORDER LDB N,I B = N GTORD BRS GENERATE SZB,RSS ORDER JMP CKFFT INTO ISX X JMP GTORD CKFFT CCA ADA N,I A = N-1 LDB SIGN,I STX SAVEA SAVE ORIGINAL ORDER SLB,RSS REAL FFT ? JMP LDATA NO, X A OK DSX X = ORDER - 1 ARS A = N/2 LDATA LDB DATA B = ADDR OF DATA BNV BINVERSION MACRO LDX SAVEA RESTORE ORIGINAL ORDER JMP BNVRT,I SKP * * COMPLEX FFT SUBROUTINE * * INITIALIZE SAVE AREA CMFFT NOP LDY SAVAD Y = ADDR OF SAVE(1) CLA SAY 0 SAVE(1) = INITIAL ENTRY INDEX = 0 * ISY Y = ADDR OF SAVE(2) LDA DATA SAY 0 SAVE(2) = ADDR OF DATA * ISY Y = ADDR OF SAV\E(3) LDA N,I A = N LDB SIGN,I COMPLEX FFT ? SLB,RSS YES, JMP STN A X OK ARS NO, A = N/2 DSX X = ORDER - 1 STN SAY 0 SAVE(3) = N (OR N/2) * ISY Y = ADDR OF SAVE(4) LDA TABLE SAY 0 SAVE(4) = ADDR OF TABLE * ISY Y = ADDR OF SAVE(5) SBY 0 SAVE(5) = SIGN * SSB,RSS FORWARD FFT ? JMP RVR NO, FIX DATA EXPONENT LDA IEXP,I JMP SETXP RVR CXA A = ORDER CMA,INA A = -ORDER ADA IEXP,I A = DATA EXPONENT ON ENTRY TO REVERSE FFT SETXP STA IEXP,I INITIALIZE DATA EXPONENT SKP * * DO COMPLEX FFT CFFT CMF COMPLEX FFT MACRO DEF SAVE SOS OVERFLOW ? JMP CMFFT,I NO, COMPLEX FFT DONE, EXIT STA SAVEA SAVE MMAX STB SAVEB SAVE I ERA SAVE STA SAVEE E LDA IEXP,I ADD 1 INA TO STA IEXP,I DATA EXPONENT LDB N,I B = N LDA SIGN,I A = SIGN SLA,RSS COMPLEX FFT ? BLS YES, B = 2*N LDA DATA A = ADDR OF DATA SCL SCALE DOWN MACRO LDA SAVEE RESTORE ELA E LDA SAVEA RESTORE MMAX LDB SAVEB RESTORE I JMP CFFT CONTINUE COMPLEX FFT SKP * * ALL FOLLOWING CODE IS FOR REAL FFT'S AND MAY BE DELETED * IF ONLY COMPLEX FFT'S ARE PERFORMED. * * NOTE THAT IF THE FOLLOWING CODE IS DELETED, LINES 37-41 * AND LINES 45-48 SHOULD ALSO BE DELETED, AND LINE 51 * REPLACED BY "RVRS JSB BNVRT". * ENT CMPRS,XPAND MIC CLP,105660B,0 HANDCLAP PASS MIC FCP,105661B,0 FORWARD COMPRESS MIC FXP,105662B,0 FORWARD EXPAND MIC RXP,105663B,0 REVERSE EXPAND * * COMPRESS N REAL TO N/2 COMPLEX * D1 BSS 1 DATA N1 BSS 1 N S1 BSS 1 SIGN I17 BSS 1 DATA EXPONENT CMPRS NOP JSB .ENTR DEF D1 * LDA S1,I A = SIGN SSA,RSS FORWARD COMPRESS ? JMP RCMPR NO, DO REVERSE COMPRESS * * FORWARD COMPRESS LDA D1 A = ADDR OF DATA LDB D1 B = ADDR OF DATA LDY N1,I Y = N FCP FORWARD COMPRESS MACRO JMP CMPRS,I FORWARD COMPRESS DONE, EXIT * * REVERSE COMPRESS RCMPR LDX D1 X = ADDR OF DATA(0) LDY D1 Y = ADDR OF DATA(0) ADY N1,I Y = ADDR OF DATA(N) JSB SUMDF COMPUTE SUM & DIFF OF DATA(0), DATA(N) LDX D1 X = ADDR OF DATA(0) SSA ENSURE CORRECT TRUNCATION INA OF NEGATIVE NUMBERS ARS SAX 0 DATA(0) = (DATA(0) + DATA(N))/2 ISX X = ADDR OF DATA(1) SSB ENSURE CORRECT TRUNCATION INB OF NEGATIVE NUMBERS BRS B = (DATA(0) - DATA(N))/2 SBX 0 DATA(1) = (DATA(0) - DATA(N))/2 JMP CMPRS,I REVERSE COMPRESS DONE, EXIT SKP * * EXPAND N/2 COMPLEX TO N REAL * D2 BSS 1 DATA N2 BSS 1 N S2 BSS 1 SIGN I2 BSS 1 DATA EXPONENT XPAND NOP JSB .ENTR GET PARAMETER ADDRESSES DEF D2 LDA D2 STA D1 LDA N2 PLACE ADDRESSES STA N1 FOR ACCESS LDA I2 BY SUMDF STA I1 SUBROUTINE * LDA S2,I SSA FORWARD EXPAND ? JMP XPNDF YES, DO FORWARD EXPAND * * REVERSE EXPAND CCA ADA N2,I A = N-1 ADA DATA A = ADDR OF DATA(N-1) LDB N2,I B = N BLS B = 2*N ADB =D-1 B = 2*N-1 ADB DATA B = ADDR OF DATA(2*N-1) LDY N2,I Y = N RXP REVERSE EXPAND MACRO JMP XPAND,I REVERSE EXPAND DONE, EXIT * * FORWARD EXPAND XPNDF LDX D2 X = ADDR OF DATA(0) LDY D2 Y = ADDR OF DATA(0) ISY H Y = ADDR OF DATA(1) JSB SUMDF COMPUTE SUM & DIFF OF DATA(0), DATA(1) LDX D2 X = ADDR OF DATA SAX 0 DATA(0) = DATA(0) + DATA(1) ISX X = ADDR OF DATA(1) CLA SAX 0 DATA(1) = 0 ADX N2,I X = ADDR OF DATA(N+1) SAX 0 DATA(N+1) = 0 DSX X = ADDR OF DATA(N) SBX 0 DATA(N) = DATA(0) - DATA(1) * LDB N2,I B = N BLS B = 2*N ADB =D-2 B = 2*N-2 ADB D2 B = ADDR OF DATA(2*N-2) LDA =D+2 ADA D2 A = ADDR OF DATA(2) CAX X = ADDR OF DATA(2) CBY Y = ADDR OF DATA(2*N-2) XPND1 FXP FORWARD EXPAND MACRO SOS OVERFLOW ? JMP XPAND,I NO, DONE, EXIT LDA I2,I YES, SCALE DOWN DATA INA ADD 1 TO STA I2,I DATA EXPONENT LDA DATA A = ADDR OF DATA LDB N2,I B = N ADB =D+2 B = N + 2 SCL SCALE DOWN MACRO JMP XPND1 REEXPAND DATA SKP * * REAL HANDCLAP PASS SUBROUTINE * HCLAP NOP LDA =D+2 A = 2 ADA DATA A = ADDR OF DATA(2) LDB =D-2 B = -2 ADB N,I B = N-2 ADB DATA B = ADDR OF DATA(N-2) LDX N,I X = N LDY =D2 Y = 2 = I INIT HCLP CLP HANDCLAP MACRO DEF TABLE DEF SIGN,I SOS OVERFLOW ? JMP HCLAP,I NO, HANDCLAP PASS DONE, EXIT STA SAVEA YES, SAVE ADDR OF DATA(I) STB SAVEB SAVE ADDR OF DATA(J) LDA IEXP,I ADD 1 INA TO STA IEXP,I DATA EXPONENT LDA DATA A = ADDR OF DATA LDB N,I B = N SCL SCALE DOWN MACRO LDA SAVEA RESTORE ADDR OF DATA(I) LDB SAVEB RESTORE ADDR OF DATA(J) JMP HCLP CONTINUE HANDCLAP SKP * * SUM AND DIFFERENCE SUBROUTINE * * AT ENTRY * X = ADDR OF OPERAND 1 * Y = ADDRo OF OPERAND 2 * * AT EXIT * A = OPERAND 1 + OPERAND 2 * B = OPERAND 1 - OPERAND 2 SUMDF NOP SUM LAX 0 A = OP 1 LBY 0 B = OP 2 CLO ADA 1 A = OP 1 + OP 2 * SSB,RSS OP 2 NEG ? JMP DF NO, CALCULATE DIFF CMB,INB YES, TEST FOR -32K SSB,RSS 2'S CMPL OF B NEG ? JMP DF1 NO, OP 2 NOT = -32K, CALC DIFF * SUM1 LDA I1,I YES, SCALE DOWN DATA INA ADD 1 TO DATA STA I1,I EXPONENT LDA D1 A = ADDR OF DATA LDB N1,I B = N INB B = N+1 SCL SCALE DOWN MACRO JMP SUM RECOMPUTE SUM & DIFF * DF CMB,INB DF1 STA SAVEA SAVE SUM LAX 0 A = OP 1 ADB 0 B = OP 1 - OP 2 SOC OVERFLOW ? JMP SUM1 YES, SCALE DOWN & RECOMPUTE LDA SAVEA NO, A = SUM, B = DIFF JMP SUMDF,I EXIT END kzFTN4,L PROGRAM FFTT DIMENSION IDATA(2048) DIMENSION ITABL(256) WRITE (1,1) 1 FORMAT (" N?") READ (1,*) N NN = N*2 NHALF = N/2 C C BUILD SIN TABLE (SAME TABLE USED FOR ANY FFT UP TO 1024 POINTS) NMAX = 1024 DO 10 I=1,NMAX/4 ARG = 3.1415926*FLOAT(I-1)/FLOAT(NMAX/2) 10 ITABL(I) = SIN(ARG)*32768. + .5 C C INITIALIZE IDATA FOR COMPLEX FFT DO 20 I=1,NN 20 IDATA(I) = 0 DO 30 I=1,N,2 30 IDATA(I) = 1024 CALL TOP WRITE (6,36) 36 FORMAT (" COMPLEX FFT") CALL LIST2 (IDATA,NN) C C DO COMPLEX FORWARD FFT ISIGN = -2 IEXP = 0 CALL FFT (IDATA,N,ITABL,ISIGN,IEXP) C CALL LIST3 (IDATA,NN,IEXP) C C DO COMPLEX REVERSE FFT ISIGN = +2 CALL FFT (IDATA,N,ITABL,ISIGN,IEXP) C CALL LIST3 (IDATA,NN,IEXP) C C INITIALIZE IDATA FOR COMPLEX FFT, ALL IMAGS = 0 DO 40 I=1,NN 40 IDATA(I) = 0 DO 50 I=1,N,2 50 IDATA(I) = 1024 CALL TOP WRITE (6,56) 56 FORMAT (" COMPLEX (ALL IMAGINARIES = 0) FFT") CALL LIST2 (IDATA,NN) C C DO COMPLEX FORWARD FFT, ALL IMAGS = 0 ISIGN = -1 IEXP = +5 CALL CMPRS (IDATA,N,ISIGN,IEXP) CALL FFT (IDATA,N,ITABL,ISIGN,IEXP) CALL XPAND (IDATA,N,ISIGN,IEXP) C CALL LIST3 (IDATA,NN,IEXP) C C DO COMPLEX REVERSE FFT, ALL IMAGS = 0 ISIGN = +1 CALL CMPRS (IDATA,N,ISIGN,IEXP) CALL FFT (IDATA,N,ITABL,ISIGN,IEXP) CALL XPAND (IDATA,N,ISIGN,IEXP) C CALL LIST3 (IDATA,NN,IEXP) C C INITIALIZE IDATA FOR REAL FFT DO 60 I=1,N 60 IDATA(I) = 0 DO 70 I=1,NHALF 70 IDATA(I) = 1024 CALL TOP WRITE (6,76) 76 FORMAT (" REAL FFT") CALL LIST2 (IDATA,N) C C DO REAL FORWARD FFT ISIGN = -1 IEXP = -5 CALL FFT (IDATA,N,ITABL,ISIGN,IEXP) C CALL LIST3 (IDATA,N,IEXP) C C DO REAL REVERSE FFT ISIGN = +1 CALL F  FT (IDATA,N,ITABL,ISIGN,IEXP) C CALL LIST3 (IDATA,N,IEXP) END SUBROUTINE LIST2 (IDATA,N) DIMENSION IDATA(1) WRITE (6,100) (IDATA(I),I=1,N) 100 FORMAT (5/,(X,10I7)) END SUBROUTINE LIST3 (IDATA,N,IEXP) DIMENSION IDATA(1) WRITE (6,100) IEXP,(IDATA(I),I=1,N) 100 FORMAT (5/," IEXP = ",I6,/,(X,10I7)) END SUBROUTINE TOP WRITE (6,100) 100 FORMAT (1H1) END END$   22682-18047 1648 SC 0122 (STRAK) TEMP EXPANDABLE FIXED LENGTH REC DISC FILE            H0101 ]ASMB,R,L NAM STRAK,7 EXT EXEC,.ENTR ENT STOPN,STRED,STWRT SUP * * DISK CONSTANTS * #W/T OCT 14000 #W/S DEC 128 #S/T DEC 96 * * * WRITTEN BY P.A.SWARTZ 83410 * HUGHES AIRCRAFT CO. - T.E.L. * TUCSON, AZ. * 8/24/76 * * * THIS PROGRAM PROVIDES DISK STORAGE HANDLING ON THE SYSTEM TRACKS. * IT ALLOWS THE USER TO WRITE FIXED LENGTH RECORDS TO THE SYSTEM * TRACKS WITHOUT WORRYING ABOUT ULTIMATE FILE SIZE. "STRAK" ALLOCATES * STORAGE ON AN AS NEEDED BASIS UP TO A LIMIT DEFINED IN ITS INTERNAL * TRACK TABLE. * * CALLS: * * CALL STOPN(N): * N <= 0 MEANS RELEASE ALL TRACKS ASSIGNED TO PROGRAM. * N > 0 MEANS DEFINE RECORD SIZE AS "N" WORDS IF IT HAS NOT * ALREADY BEEN DEFINED AND RESET THE SEQUENTIAL ACCESS * POINTER. * * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * $ * $ CALL STOPN(0) SHOULD BE DONE AT PROGRAM TERMINATION. * $ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * * * CALL STRED(IER,IBUF,IREC): * IER = ERROR CODE, ALSO RETURNED IN A REGISTER. CODES LISTED BELOW. * IBUF = BUFFER TO READ INTO. * IREC = RECORD #. 0 OR NOT GIVEN MEANS USE NEXT SEQUENTIAL RECORD. * * * CALL STWRT(IER,IBUF,IREC): * SAME AS STRED EXCEPT ITS A WRITE OPERATION. * * * ERROR CODES RETURNED IN IER AND THE A REGISTER: * * 0 = O.K. * -4 = UNDEFINED RECORD SIZE * -6 = NO ROOM. * * * * A RECORD CAN BE READ BEFORE IT IS WRITTEN. * TRACK ALLOCATION REQUESTS TO THE SYSTEM BY "STRAK" MAY CAUSE THE * PROGRAM TO BE SUSPENDED IF THERE ARE NO TRACKS LEFT. HED INITIALIZE CALL * * CALL STOPN(N) WHERE * N <=0 MEANS RELEASE ALL TRACKS AND RECORD LENGTH SET TO 0 * N > 0 MEANS SET SEQUENTIAL ACCESS POINTER TO 1 AND, IF CURRENT * RECORD SIZE IS 0, SET NEW RECORD SIZE. * T NOP STOPN NOP JSB .ENTR DEF T * CLA STA NXTRC REWIND LDA T,I ADA .-1 SS@A,RSS RELEASE TRACKS CALL? JMP STOP5 NO. * * CLA STA MWFLG LCEAR MUST WRITE FLAG STA RCSIZ CLEAR RECORD SIZE CCA STA TRAK CLEAR TRACK #. * LDA TTBL RELEASE ALL TRACKS ASSIGNED TO THIS PROGRAM STA PTR * STOP1 LDA PTR,I NEXT TRACK TABLE ENTRY ASSIGNED? SZA,RSS JMP STOP2 NO * AND B377 STA T TRACK # XOR PTR,I ALF,ALF STA LU LOGICAL UNIT # * JSB EXEC GIVE IT BACK DEF *+5 DEF .+5 DEF .+1 DEF T DEF LU * STOP2 CLA STA PTR,I CLEAR TRACK TABLE ENTRY ISZ PTR LDA PTR CPA TTBLX END OF TABLE? JMP STOPN,I YES JMP STOP1 NO. * * * * * STOP5 STA RCSIZ SET RECORD SIZE JMP STOPN,I HED READ * * CALL STRED(IER,IBUF,NREC) WHERE * IER IS THE ERROR CODE RETURNED * IBUF IS THE RECORD BUFFER * NREC IS THE DESIRED RECORD NUMBER. IF 0 OR NOT GIVEN, DO SEQUENTIAL. * ERR NOP BUF NOP UREC NOP STRED NOP JSB .ENTR DEF ERR * JSB PARMS SET UP PARAMETERS * CLA STA UREC SET UP FOR NEXT TIME * JSB FETCH GET RECORD INTO CORE JMP STREX ERROR * LDA RCSIZ TRANSFER RECORD CMA,INA STA T * STRE3 JSB STRE6 READ NEXT WORD JMP STREX ERROR STA BUF,I ISZ BUF ISZ T JMP STRE3 JMP STREX ERROR * * * * STRE6 NOP LDA DPTR CPA DBUFX AT END OF SECTOR? JMP STRE8 YES * STRE7 LDA DPTR,I FETCH NEXT WORD ISZ DPTR ISZ STRE6 EXIT P+2 JMP STRE6,I * STRE8 JSB DREAD READ NEXT SECTOR JMP STRE6,I ERROR JMP STRE7 GO AHEAD ON. * * STREX LDA ERR,I JMP STRED,I HED WRITE * * CALL STWRT(IER,IBUF,NREC) * T1 NOP T2 NOP T3 NOP MUST BE 0 ON |EXIT. STWRT NOP JSB .ENTR DEF T1 * LDA T1 MOVE PARMS STA ERR LDA T2 STA BUF LDA T3 STA UREC * JSB PARMS FETCH PARAMETERS CLA STA T3 SET UP FOR NEXT TIME * JSB FETCH GET RECORD INTO CORD JMP STWRX ERROR * LDA RCSIZ TRANSFER RECORD CMA,INA STA T * STWR1 LDA BUF,I JSB STWR5 WRITE NEXT WORD JMP STWRX ERROR ISZ BUF ISZ T JMP STWR1 JMP STWRX ERROR * * * STWR5 NOP LDB DPTR CPB DBUFX ROOM IN BUFFER? JMP STWR6 NO * STWR8 STA DPTR,I STORE WORD ISZ DPTR ISZ MWFLG SET MUST WRIT FLAG ISZ STWR5 EXIT P+2 JMP STWR5,I * * STWR6 STA STWR7 SAVE A JSB DREAD LOAD NEXT SECTOR JMP STWR5,I ERROR LDA .DBUF SET POINTER STA DPTR LDA STWR7 RESTORE A JMP STWR8 CONTINUE * * STWRX LDA ERR,I JMP STWRT,I * * STWR7 NOP HED SUBROUTINES * * CLEAR THE ERROR CODE AND DECIDE WHAT RECORD TO OPERATE ON. * PARMS NOP CLA STA ERR,I * CPA UREC DID USER SPECIFY RECORD #? JMP PARM1 NO LDA UREC,I SZA,RSS JMP PARM1 NO * PARM0 STA NREC SET NEXT RECORD NUMBER JMP PARMS,I * * PARM1 LDA NXTRC INA STA NXTRC JMP PARM0 * * * * * * * NREC CONTAINS THE NEXT RECORD # TO OPERATE ON. CONVERT TO * DISK ADDRESS. * FETCH NOP LDA RCSIZ SZA JMP FTCH1 * LDA .-4 UNDEFINED RECORD SIZE FTCH0 STA ERR,I JMP FETCH,I * FTCH1 LDA NREC COMPUTE DISK ADDRESS ADA .-1 MPY RCSIZ WORD # DIV #W/T A = TRACK TABLE ENTRY SSA JMP FTCH8 CAN'T BE NEGETIVE ADA TTBL STA XTRAK POINTER TO TRACK NUMBER CMA ADA TTBLX SSA JMP FTCH+8 EXCEEDS TABLE SIZE * LDA B CLB DIV #W/S A = SECTOR, B = WORD RAL ************* EVEN SECTOR BOUNDRY STA XSCT STB XWORD * LDA XTRAK,I SZA,RSS IS THERE A TRACK HERE? JSB ALLOC NO. ALLOCATE 1. STA XTRAK,I SAVE IT. XOR TRAK SEE IF DESIRED SECTOR IS IN CORE ALF,ALF XOR LU SZA JMP FTCH2 NOPE. LDA XSCT CPA SCT JMP FTCH3 YEP. * * FTCH2 JSB POST WRITE OUT CURRENT SECTOR * LDA XSCT SET NEXT DISK ADDRESS STA SCT LDA XTRAK,I AND B377 STA TRAK XOR XTRAK,I ALF,ALF STA LU JSB DRED5 READ THE SECTOR * FTCH3 LDA XWORD ADA .DBUF STA DPTR POINT TO START OF RECORD LDA XTRAK STA TRAKP SAVE TRACK TABLE POINTER ISZ FETCH EXIT P+2 JMP FETCH,I * * FTCH8 LDA .-6 JMP FTCH0 * * * * * * READ THE NEXT SEQUENTIAL SECTOR FORM DISK. * DREAD NOP JSB POST WRITE OUT CURRENT SECTOR * LDA SCT BUMP CURRENT SECTOR BY 2 ADA .+2 STA SCT CPA #S/T AT END OF TRACK? JMP DRED2 YES. * DRED1 JSB DRED5 NO. READ IN NEXT SECTOR ISZ DREAD JMP DREAD,I * * DRED2 CLA STA SCT SET NEXT SECTOR CCA STA TRAK CLEAR TRACK * JSB NXTRK SEE IF THERE IS A NEXT TRACK JMP DRED3 NOPE. NO ROOM * STA TRAK STB LU JMP DRED1 GO READ IT * * DRED3 LDA .-6 STA ERR,I JMP DREAD,I * * * * * * READ THE SECTOR DEFINED BY LU,TRAK,SCT. * DRED5 NOP JSB EXEC DEF *+7 DEF .+1 DEF LU .DBUF DEF DBUF DEF #W/S DEF TRAK DEF SCT LDA .DBUF STA DPTR INITIALIZE POINTER JMP DRED5,I * * * * * * * IF THE MUST WRITE FLAG IS SET, WRITE OUT THE CURRENT SECTOR. * POST NOP LDA MWFLG SZA JSB DWRIT CLA STA MWFLG CLEAR THE FLAG JMP POST,I * * * * * * WRITE OUT THE CURRENT SECTOR * DWRIT NOP JSB EXEC DEF *+7 DEF .+2 DEF LU DEF DBUF DEF #W/S DEF TRAK DEF SCT JMP DWRIT,I * * * * * * AN ACCESS HAS OVERFLOWED A TRACK. GET NEXT ENTRY FROM TRACK * TABLE AND READ ITS 1ST SECTOR INTO CORE. * NXTRK NOP LDA TRAKP CMA ADA TTBLX SZA,RSS JMP NXTR1 OUT OF ROOM IN TRACK TABLE * ISZ TRAKP BUMP CURRENT TRACK TABLE ENTRY POINTER LDA TRAKP,I SZA,RSS IS THERE AN ENTRY? JSB ALLOC NO. STA TRAKP,I AND HIMSK ISOLATE LU LDB A XOR TRAKP,I ISOLATE TRACK BLF,BLF POSITION LU ISZ NXTRK EXIT P+2 JMP NXTRK,I * * NXTR1 LDA .-6 OUT OF ROOM STA ERR,I JMP NXTRK,I * * * * * * GET A TRACK FROM THE SYSTEM AND RETRUN WITH THE LU/TRACK IN A. * ALLOC NOP JSB EXEC DEF *+6 DEF .+4 ASSIGN IT TO PROGRAM DEF .+1 1 ONLY AND WAIT FOR IT DEF YTRAK DEF YLU DEF T1 * LDA YLU ALF,ALF IOR YTRAK JMP ALLOC,I * * YTRAK NOP YLU NOP HED CONSTANTS AND STORAGE * A EQU 0 B EQU 1 * DEC -10,-9,-8,-7,-6,-5,-4,-3,-2,-1 . DEC 0,1,2,3,4,5,6,7,8,9,10 * PTR NOP NXTRC NOP LAST RECORD READ IN SEQUENTIAL ACCESS RCSIZ NOP RECORD SIZE NREC NOP NEXT RECORD TO READ * B377 OCT 377 HIMSK OCT 177400 * TRAK NOP CURRENT TRACK SCT NOP CURRENT SECTOR LU NOP CURRENT LU TRAKP NOP CURRENT TRACK TABLE ENTRY POINTER * XTRAK NOP NEXT TRACK XSCT NOP NEXT SECTOR XWORD NOP NEXT SECTOR WORD. * DPTR NOP NEXT WORD IN SECTOR BUFFER * MWFLG NOP MUST WRITE FLAG * DBUF EQU *+0 BSS 128 Xz$" DBUFX DEF *+0 END OF DISK BUFFER * TTBL DEF *+1 STARTING ADDRESS OF TRACK TABLE OCT 0,0,0,0,0 OCT 0,0,0,0,0 OCT 0,0,0,0,0 OCT 0,0,0,0,0 TTBLX DEF *+0 END OF TRACK TABLE * END {$   22682-18048 1648 SC 0322 FORMATTED R/W TO DISC FILES USING FTN R/W STMTS             H0103 ASMB,L,R NAM DISK,7 SPC 2 * THIS PROGRAM IS SIMILAR TO THE 'CODE' PROGRAM IN THE FORTRAN * LIBRARY. WHEN A CALL DISK (FNAME,ISTAT) IS MADE BEFORE THE * FORMATTED READ OR WRITE STATEMENT, THE DATA IS TRANSFERRED * TO/FROM THE SPECIFIED DISK FILE. THIS GIVES THE CAPABILITY * TO FORMAT DATA USED ON THE DISK. (ASCII SOURCE FILES MAY BE * EITHER WRITTEN OR READ). * * THE CALL DISK AND THE READ/WRITE FOLLOWING ARE TREATED AS IF * THEY WERE ONE STATEMENT. IF THE READ/WRITE IS EXECUTED WITHOUT * EXECUTING THE CALL DISK, THEN IT FUNCTIONS NORMALLY. WHEN * EXECUTING THE CALL DISK, THE UNIT NUMBER IS IGNORED. THE TRANSFER * IS DIRECTED TOWARDS THE FILE IN FNAME. * * CALL DISK IS INTENDED FOR ASCII RECORDS ONLY!!! BINARY RECORDS * USED WITH THIS CALL WILL TOTALLY SCREW UP THE PROGRAM!!!! * * THE LINE SEPARATOR '/' IS IGNORED BY THE CALL DISK, THUS ONLY * ONE LINE MAY BE WRITTEN BY ONE WRITE STATEMENT. (THIS LIMITATION * IS CAUSED BY THE FORMATTER WHEN INTERNAL CONVERSION IS USED) * * BESIDES WRITTING IN STANDARD DISK FILES, THE USER MAY WRITE ON * BOTH THE SYSTEM AND USER DISK SCRATCH AREAS BY USING THE FILE * NAMES '$SYSM' AND '$USER' RESPECTIVELY. SEE 'HIGH SPEED DISK * INPUT/OUTPUT' DOCUMENTATION FOR FURTHER SPECIFICATIONS. * * * PROGRAMMED BY WILLIAM H. HEFFNER III * PHILADELPHIA OPTICAL COMPANY, INC * 1207 RACE STREET * PHILADELPHIA, PA 19107 * 215-LO8-6340 * SKP * * ERROR DIAGNOSTICS * ================= * * ERRORS WHEN USING THE READ STATEMENT * CALL DISK (FNAME,ISTAT) * * ISTAT MEANING * ===== ====================================================== * 0 NO ERRORS, NORMAL RETURN * 1 REQUESTED FILE DOES NOT EXIST * 2 MORE THAN 10 FILES OPEN AT ONE TIME FOR READING * 3 REQUESTED FILE IS NOT OPEN OR DOES NOT EXIST * 4i REQUESTED FILE IS NOT OPEN OR DOES NOT EXIST * 5 REQUESTED FILE IS NOT OPEN OR DOES NOT EXIST * 6 END OF FILE ENCOUNTERED. * * * * ERRORS WHEN USING THE WRITE STATEMENT * CALL DISK (FNAME,ISTAT) * * ISTAT MEANING * ===== ===================================================== * * 0 NO ERRORS, NORMAL RETURN * 1 REQUESTED FILE DOES NOT EXIST * 2 MORE THAN 10 FILES OPEN AT ONE TIME FOR WRITTING * 3 REQUESTED FILE IS NOT OPEN OR DOES NOT EXIST * 4 REQUESTED FILE IS NOT OPEN OR DOES NOT EXIST * 5 ATTEMPTED TO WRITE BEYOND FILE'S PHYSICAL END * 6 REQUESTED FILE IS NOT OPEN OR DOES NOT EXIST * * * SKP ENT DISK,.FIL. EXT FREAD,FWRTE,.FJP.,.DIO. SPC 1 A EQU 0 B EQU 1 SPC 1 DISK NOP LDB DISK,I GET RETURN POINT STB RTPT LDB DISK INB JSB GET GET IDCB STA IDCB INB JSB GET GET IE STA IE .20 LDB RTPT LDA B,I STA SAVE SAVE THE LDA UNIT LDA CLEAR STA B,I STORE CLA IN ITS PLACE INB LDA B,I GET CLB OR CLB,INB STA SAVE+1 LDA CDIO. STA B,I STORE JSB .DIO. INB LDA AWORK STORE DEF WORK BUFFER STA B,I ADB =D2 LDA B,I STA ENDL STORE END OF LIST ADDR. LDA ENDL,I GET INSTRUCTION STA SAVE+2 LDA .FJP. STA ENDL,I PUT JUMP TO SELF IN IT LDA SAVE+1 CPA CLRB IS THIS OUTPUT? JMP .50 YES IT IS LDB AWORK NO -- INPUT LDA =D-128 CLEAR WORK TO BLANKS STA CTR LDA =A .30 STA B,I INB ISZ CTR JMP .30 JSB FREAD READ A DISK RECORD DEF *+4 DEF IDCB,I DEF LWORK DEF IERR LDA IERR GET I/O STATUS FROM READ STA IE,I SZA CHECK aERROR ON READ JMP .FIL. IF ERROR OMIT FORMATTING * WE HAVE AN OKAY READ HERE SO ON TO FORMAT IT SPC 1 CLBI CLB,INB FLAG INPUT JMP RTPT,I PROCESS IT WITH HIS CODE SPC 1 * HERE WE HAVE OUTPUT FROM FTN PROGRAM SPC 1 .50 LDB AWORK CLEAR BUFFER TO 0'S LDA =D-128 STA CTR CLA .60 STA B,I INB ISZ CTR JMP .60 CLRB CLB PROCESS HIS FORMAT JMP RTPT,I SPC 2 * AT THIS POINT WE HAVE JUST GOTTEN BACK FROM A READ/WRITE * FORMAT OPERATION. WE RESTORE HIS ORIGINAL CALL SO THAT * IT MAY BE USED WITHOUT THE CALL DISK IF HE WANTS IT. SPC 1 .FIL. LDB RTPT RESTORE OLD CALL LDA SAVE STA B,I LDA UNIT INB LDA SAVE+1 STA B,I STORE CLB OR CLB,INB INB LDA CDIO. STA B,I RESTORE JSB .DIO. LDA SAVE+2 STA ENDL,I REPLACE END INSTRUCTION LDA SAVE+1 CPA CLBI IS IT INPUT? JMP ENDL,I YES -- DONE SPC 1 * HERE WE MUST FIND # OF WORDS IN OUTPUT LINE AND * PASS IT ON TO THE DISK WRITE ROUTINE SPC 1 LDB EWORK .70 CPB AWORK SCAN THE BUFFER RT. TO LEFT JMP .80 LOOKING FOR NON-ZERO WORD LDA B,I GET WORD SZA VALID DATA? JMP .80 YES ADB =D-1 NO LOOK FURTHER JMP .70 .80 AND =B377 IS LOWER CHAR FILLED? SZA,RSS LDA =B40 NO--MAKE IT A BLANK IOR B,I OR IN THE REST STA B,I LDA AWORK CMA,INA ADA B INA CALCULATE THE WRITE LENGTH STA LWORK JSB FWRTE WRITE TO DISK DEF *+4 DEF IDCB,I DEF LWORK DEF IERR LDA IERR STA IE,I .90 JMP ENDL,I EXIT TO USER SPC 1 GET NOP LDA B,I SSA,RSS JMP GET,I ELA,CLE,ERA LDA A,I JMP *-4 SPC 2 SAVE BSS 3 IDCB NOP IE NOfP AWORK DEF WORK IERR NOP RTPT NOP CLEAR CLA CDIO. JSB .DIO. LWORK BSS 1 WORK BSS 128 ENDL NOP CTR NOP .128 DEC 128 EWORK DEF WORK+127 END ASMB,L,R NAM .FJP.,7 ENT .FJP. EXT .FIL. .FJP. JMP .FIL. END FTN4 PROGRAM TEST CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C ***** DISK TEST ***** C C C C ALL INPUT AND OUTPUT WILL BE MADE TO THE FILE '$SYSM' C C '$SYSM' IS THE NAME OF THE SYSTEM DISK SCRATCH FILE. C C SEE 'HSDIO' DOCUMENTATION FOR FURTHER EXPLANATION OF C C $SYSM AND $USER. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C NO CHECKS FOR ERRORS ARE MADE EXCEPT FOR EOF (IERR=6) C INTEGER SYSTEM(3),BUFR(256) INTEGER LINE(10) C C DEFINE FILE NAME $SYSM IN ARRAY SYSTEM C DATA SYSTEM /2H$S,2HYS,2HM / C C OPEN $SYSM FOR WRITE C CALL FOPEN (SYSTEM,BUFR,2,IERR) C C CREATE 15 LINES OF OUTPUT ON THE DISK WHICH WILL C THEN BE READ BACK IN AND PRINTED ON LU#1. C DO 1 J=1,15 CALL DISK (SYSTEM,IERR) WRITE (1,2) J 1 CONTINUE C 2 FORMAT ("THIS IS LINE#"I7) C C CLOSE THE WRITE FILE AND OPEN IT FOR READING C CALL FWEOF (SYSTEM,IERR) C C C C C BEGIN READ SECTION -- OPEN $SYSM FOR READING C CALL OPENF (SYSTEM,BUFR,2,IERR) C C READ ALL LINES PRINTED. TEST FOR EOF INSTEAD OF COUNTING C FIFTEEN LINES. C 10 CALL DISK (SYSTEM,IERR) READ (1,11) LINE IF (IERR.EQ.6) GOTO 20 WRITE (1,11) LINE GOTO 10 C C END-OF-FILE SENSED C 20 WRITE (1,21) CALL EXEC (6) C 11 FORMAT (10A2) 21 FORMAT ("***** END-OF-FILE *****") END END$    22682-18049 1713 SC 0122 CLASS - INTERROGATE CLASS I/O SYSTEM             H0101 yFTN4,L C C VERSION 4 - 07 - 76 JRT C VERSION 770112 GAA JRT C PROGRAM CLASS(3,99) C DIMENSION LU(5) EXTERNAL IGET,IXGET CALL RMPAR(LU) IF(IGET(1742B).EQ.2)CALL CLANL(IXGET,LU,LU(2)) CALL CLANL(IGET,LU,LU(1)) C C THIS IS 'THE' CLASS CLEAN UP PROGRAM. C C IT IS RUN AS FOLLOWS: C C RU,CLASS, C C WHERE IS THE INTERACTIVE LU. C IN THIS MODE NO FURTHER INFORMATION IS NEEDED. C C OR TO MONITIOR A CLASS PUT CLASS IN THE TIME LIST AND THEN: C C ON,CLASS,NO,,[,[,]] C C WHERE: C IS THE LU TO PRINT ON C IS NON-ZERO (INDICATES AUTO MODE) C (OPTIONAL) LIMITS LOWER CLASS NUMBER TO C (OPTIONAL) LIMITS UPPER CLASS NUMBER TO C IF IS < THEN IS USED. C IF IS NOT GIVEN (0) THEN THE WHOLE CLASS TABLE IS SCANNED. C C IN THIS MODE THE 'DISPLAY' FORMAT (SEE INTERACTIVE 'DISPLAY') C IS USED TO DISPLAY ANY ACTIVE CLASS NUMBERS BETWEEN AND C INCLUSIVE (OR ALL IF IS ZERO. AFTER DISPLAY CLASS QUITS TO C WAIT FOR THE NEXT TIME SCHEDULE. C END SUBROUTINE CLANL(IXGET,LU,IFLAG) DIMENSION LU(5),IREG(2),IBUF(20),IPBUF(33) DIMENSION IPROG(3,3),JPROG(9),IGTPRG(3) INTEGER CLASAD,OUTBF(40),IBUFC(7) C EQUIVALENCE (IB,IREG(2)),(X,IREG),(IPROG,JPROG) EQUIVALENCE (N1,IPBUF(6)),(N2,IPBUF(10)),(LLU,IPBUF(14)) EQUIVALENCE (ICMND,IPBUF(2)) C DATA JPROG/9*2H /,NIDS/0/,IPBUF/33*0/ DATA IGTPRG/3*2H / DATA CLASAD/0/ C C C PRELIMINARIES... C GET COMMUNICATION LU C GET CLASS TABLE PARAMETERS & CHECK C GO TO 'TASK' LOOP C IF(LU.EQ.0)LU=1 ILU=LU+400B N1=LU(3) N2=LU(4) C C KEYBLK=IXGET(1657B) 6 IF(IXGET(KEYBLK).EQ.0)GO TO 7 NIDS=NIDS+1 KEYBLK=KEYBLK+1 4 GO TO 6 C 7 CALL GETCL(ITADRS,INUMB) IF(IFLAG.NE.0)GO TO 20 C WRITE(LU,101)ITADRS,INUMB 101 FORMAT(/"/CLASS: CLASS TABLE IS AT "K6" WITH"I3" ENTRIES!") C WRITE(LU,102) 102 FORMAT(/"/CLASS: FOLLOWING COMMANDS ARE ACCEPTED:"/, & " DISPLAY,N1,N2,LU - DISPLAY STATUS OF CLASS TABLE FOR",/, & " CLASS NUMBERS N1 THROUGH N2",/, & " LIST,LU - LIST CONTENTS OF CLASS TABLE ON LU",/, & " CLEAR,N - CLEAR OUT PENDING CLASS BUFFERS",/, & " ON CLASS NUMBER 'N'",/, & " ?? - REPEATE THIS DISPLAY",/, & " END - END") C 10 WRITE(LU,110) 110 FORMAT(/"/CLASS: TASK: _") X=EXEC(1,ILU,IBUF,20) CALL PARSE(IBUF,IB*2,IPBUF) IF(ICMND.EQ.2HEN)GO TO 90 IF(ICMND.EQ.2HDI)GO TO 20 IF(ICMND.EQ.2HLI)GO TO 40 IF(ICMND.EQ.2HCL)GO TO 30 IF(ICMND.EQ.2H??)GO TO 7 12 WRITE(LU,111) 111 FORMAT("/CLASS: INPUT ERROR! '??' FOR HELP") GO TO 10 C C C PROCESS DISPLAY REQUEST REQUEST FORMAT: DISPLAY,N1,N2,LU C WHERE N1, N2 ARE START, END CLASS NUMBERS C LU IS LIST LU C 20 IF(LLU.EQ.0)LLU=LU IF((N2.EQ.0).OR.(N2.LT.N1))N2=N1 IF(N1.GT.0)GO TO 201 N2=INUMB N1=1 201 IF((N1.GT.0).AND.(N2.LE.INUMB))GO TO 21 WRITE(LU,120)INUMB 120 FORMAT("/CLASS: ONLY CLASS NUMBERS 'TWEEN 0 AND"I3" PLEASE!") GO TO 10 C 21 CALL CODE WRITE(OUTBF,121) 121 FORMAT(/,29X,"GET PROG OR BUFFER PRAMS") CALL EXEC(2,LLU,OUTBF,27) CALL CODE WRITE(OUTBF,1211) 1211 FORMAT(" CLASS POSSIBLE OWNERS SECU #RQ SIZE OPT1 OPT2"/) CALL EXEC(2,LLU,OUTBF,26) C DO 29 I=N2,N1,-1 ISECU=0 NPRQ=0 IBLOK=0 IOPT1=0 IOPT2=0 C C IF CLASS AVAILABLE SAY SO & GO TO NEXT ONE. IF IN AUTO MODE C DON'T PRINT 'AVAILABLE' C CLASAD=ITADRS+I IF(IXGET(CLASAD).NE.0)GO TO 24 IF(IFLAG)29,1222,29 1222 CALL CODE WRITE(OUTBF,122)I 122 FORMAT(I5,2X," ** AVAILABLE **") CALL EXEC(2,LLU,OUTBF,12) GO TO 29 C C GET NON-ZERO CLASS WORD FOR ANALYSIS (ICLAS) C 24 IF(IXGET(CLASAD).LT.0)GO TO 25 CLASAD=IXGET(CLASAD) GO TO 24 25 ICLAS=IXGET(CLASAD) C C GET POSSIBLE OWNERS: SECURITY CODE = OWNER'S ID # MODULO 31 C DO 22 J=1,9 JPROG(J)=2H 22 CONTINUE ISECU=IAND(ICLAS,17400B)/256 J=1 26 IDADRS=IXGET(IXGET(1657B)+ISECU-1) IF(IXGET(IDADRS+12).EQ.0)GO TO 261 IF(IAND(IXGET(IDADRS+14),20B).NE.0)GO TO 261 IPROG(1,J)=IXGET(IDADRS+12) IPROG(2,J)=IXGET(IDADRS+13) IPROG(3,J)=IOR(IAND(IXGET(IDADRS+14),177400B),40B) 261 J=J+1 ISECU=ISECU+32 IF((ISECU.LE.NIDS).AND.(J.LE.3))GO TO 26 ISECU=IAND(ISECU,37B) C C FIND OUT IF SOMEONE'S IN GET SUSPEND, IF SO, SAY SO & GO TO NEXT ONE C IF(IAND(ICLAS,40000B).EQ.0)GO TO 262 IWORD=ITADRS+I CALL WHOGT(IWORD,IGTPRG,IXGET) CALL CODE WRITE(OUTBF,123)I,IPROG,ISECU,IGTPRG 123 FORMAT(2X,I3,2X,9A2,K3,4X,3A2) CALL EXEC(2,LLU,OUTBF,19) GO TO 29 C C ANALYZE QUEUED-UP CLASS BUFFERS, IF ANY C 262 NPRQ=IAND(ICLAS,377B) ICLAS=IXGET(ITADRS+I) IF(ICLAS.GT.0)GO TO 27 CALL CODE WRITE(OUTBF,127)I,IPROG,ISECU,NPRQ CALL EXEC(2,LLU,OUTBF,-33) GO TO 29 C 27 IBLOK=IXGET(ICLAS+3) IOPT1=IXGET(ICLAS+6) IOPT2=IXGET(ICLAS+7) C CALL CODE WRITE(OUTBF,127)I,IPROG,ISECU,NPRQ,IBLOK,IOPT1,IOPT2 127 FORMAT(2X,I3,2X,9A2,K3,I5,I5,2(2X,K6)) CALL EXEC(2,LLU,OUTBF,27) C C CHECK FOR ADDITIONAL QUEUED-UP BLOCKS C 28 ICLAS=IXGET(ICLAS) IF(ICLAS.LE.0)GO TO 29 IBLOK=IXGET(ICLAS+3) IOPT1=IXGET(ICLAS+6) IOPT2=IXGET(ICLAS+7) T ICNWD=IXGET(ICLAS+1) CALL CODE WRITE(OUTBF,129)IBLOK,IOPT1,IOPT2 129 FORMAT(35X,I3,2(2X,K6)) CALL EXEC(2,LLU,OUTBF,27) IF(IFBRK(K).EQ.0)GO TO 28 CALL EXEC(2,LLU,2HBR,1) C 29 CONTINUE IF(IFLAG)99,10,99 C C C PROCESS CLEAR REQUEST C 30 ICL=IPBUF(6) IF((ICL.LE.0).OR.(ICL.GT.INUMB))GO TO 10 C ICLAS=IXGET(ITADRS+ICL) IF(ICLAS.LE.0)GO TO 38 C 31 ICLAS=IXGET(ICLAS) IF(ICLAS.GT.0)GO TO 31 C ICLAS=IOR(IAND(ICLAS,17400B),ICL) 34 CALL EXEC(21,ICLAS,IBUF,10,IP1,IP2,IP3) IF(IXGET(ITADRS+ICL).NE.0)GO TO 34 C C 38 WRITE(LU,138)ICL 138 FORMAT("/CLASS: CLASS"I3" NOW HAS NO OUTSTANDING BUFFERS!") GO TO 10 C C SECTION TO LIST CONTENTS OF CLASS TABLE C 40 LLU=LU IF(N1.NE.0)LLU=N1 C CALL CODE WRITE(OUTBF,140) 140 FORMAT(/,5X,"CLASS ADDRESS CONTENTS"/) CALL EXEC(2,LLU,OUTBF,16) DO 45 K=INUMB,1,-1 CLASAD=ITADRS+K ICLAS=IXGET(CLASAD) CALL CODE WRITE(OUTBF,142)K,CLASAD,ICLAS 142 FORMAT(6X,I3,5X,K6,5X,K6) CALL EXEC(2,LLU,OUTBF,-31) IHC=1 42 IF(ICLAS.LE.0)GO TO 45 I=0 DO 44 J=ICLAS,ICLAS+7 I=I+1 44 IBUFC(I)=IXGET(J) CALL CODE WRITE(OUTBF,143)IHC,IBUFC 143 FORMAT(10X,"HEAD # "I3,7(XK6)) CALL EXEC(2,LLU,OUTBF,-69) ICLAS=IXGET(ICLAS) IHC=IHC+1 IF(IFBRK(I).EQ.0)GO TO 42 CALL EXEC(2,LLU,2HBR,1) 45 CONTINUE GO TO 10 C C C END PROCESSING C 90 WRITE(LU,190) 190 FORMAT("/CLASS: DONE!"/) CALL EXEC(6) C 99 CALL EXEC(6,0,0,LU,IFLAG,LU(3),LU(4),LU(5)) C END C C SUBROUTINE TO IDENTIFY PROGRAM IN 'GET' FOR A GIVEN CLASS C SUBROUTINE WHOGT(IWORD,IGTPRG,IXGET) C DIMENSION IGTPRG(3) C C KEYWD=IXGET(1657B) IGTPRG=2H** IGTPRG(2)=2H** IGTPRG(3)=2H* C 10 IDADR=IXGET(KEYWD)  IF(IDADR.EQ.0)RETURN IF(IXGET(IDADR+1).EQ.IWORD)GO TO 20 KEYWD=KEYWD+1 GO TO 10 C 20 IGTPRG=IXGET(IDADR+12) IGTPRG(2)=IXGET(IDADR+13) IGTPRG(3)=IOR(IAND(IXGET(IDADR+14),77400B),40B) RETURN C 90 END END$ ASMB,R,L NAM GETCL,7 ENT GETCL EXT $CLAS,.ENTR * A EQU 0 * * ADRS BSS 1 NMBR BSS 1 GETCL NOP JSB .ENTR DEF ADRS * LDA DCLAS GET CLASS TABLE ADDRESS SSA,RSS JMP *+4 ELA,CLE,ERA LDA A,I JMP *-4 * STA ADRS,I LDA A,I STA NMBR,I * JMP GETCL,I * DCLAS DEF $CLAS * END ASMB,R,L *** CROSS LOAD FROM MEMORY *** * HED CROSS LOAD MEMORY FOR SYSTEM MAP NAM IXGET,7 750515 A LWS * ENT IXGET * * THIS FUNCTION SUBROUTINE ALLOWS THE USER TO PERFORM THE * EQUIVALENT OF AN 'IGET' FUNCTION FROM THE SYSTEM (I.E. ALTERNATE * PROGRAM) MAP. * * FORTRAN CALLING SEQUENCE * ------------------------ * * IRES = IXGET(IADRES) * * IRES --> CONTENTS OF IADRES * * IADRES --> ADDRESS * * IXGET NOP DLD IXGET,I SWP LDA 0,I XLA 0,I USE ALTERNATE PROGRAM MAP. JMP 1,I * END ;   22682-18050 1718 SC 0122 TRACK - RTE WORK AREA OWNERSHIP             H0101 {FTN4,L PROGRAM TRACK(3,45) C C ***************************** C * * C * RTE WORK AREA OWNERSHIP * C * * C ***************************** C C PROGRAM STATISTICS C ------------------ C C AUTHOR: LARRY W. SMITH, SYSTEMS ENGINEER C INSTALLATION: HEWLETT-PACKARD, DATA SYSTEMS, CUPERTINO C DATE: 31/DEC/77 C REVISION A: LARRY W. SMITH, 31/DEC/77 C REVISION B: LARRY W. SMITH, 10/JAN/77 C C PROGRAM EXECUTION C ----------------- C C RU,TRACK[,LIST] C C LIST ---> LIST OUTPUT DEVICE LU (DEFAULT=TERMINAL) C C C TRACK ASSIGNMENT TABLE PRINTOUT PROGRAM C C IDENTIFIES EACH TRACK AS BEING USED FOR: C -SYSTEM (MEMORY-RESIDENT PORTION) C -SYSTEM ENTRY POINTS C -SYSTEM RELOCATABLE LIBRARY C -DISC-RESIDENT PROGRAM STORAGE C " " " SWAP STORAGE C -OWNED BY A PROGRAM C -OWNED BY FMP (FMGR TRACKS) C -ALLOCATED GLOBALLY C - AVAILABLE C C C DIMENSION LU(5),IOWN(3,10) C C CALL RMPAR(LU) IF(LU.EQ.0)LU=1 LUTTY=LU+400B LIST=LU(2) IF(LIST.EQ.0)LIST=LUTTY C C 15 WRITE(LIST,102) 102 FORMAT(/" TRACK ASSIGNMENT TABLE & = PROG ^ = SWAP"/ & " TRACK 0 1 2 3 4 5 6" & " 7 8 9") 120 FORMAT(I4,2X,10(1X,3A2)) C ITAT=IGET(1656B) NCNT=- IGET(1755B) NCNTP1 = NCNT + 1 C GET # TRACKS ON LU 2 NTDSK = IGET(1756B) NTDSK1 = NTDSK + 1 N= 0 INDEX = 0 ITRACK= -1 LUDISK = 2 C C TRACE THROUGH TAT C 20 DO 21 I=1,10 IOWN(1,I)=2H IOWN(2,I)=2H IOWN(3,I)=2H 21 CONTINUE C DO 100 JCNTR = 15,10 N = N + 1 ITRACK = ITRACK + 1 C IF LAST TRACK ON SYSTEM OR C AUXILIARY DISC, DUMP PRINT BUFFER. IF( N .GT. NCNTP1 ) GOTO 222 IF(N .EQ. NTDSK1) GOTO 222 C C GET T.A.T. ENTRY IAD=IGET(ITAT) C ADVANCE T.A.T. POINTER ITAT=ITAT + 1 C CHECK IF IT'S A SYSTEM TRACK IF(IAD.NE.100000B)GO TO 24 IOWN(1,JCNTR)=2HSY IOWN(2,JCNTR)=2HST IOWN(3,JCNTR)=2HEM C C NARROW DOWN 'SYSTEM' TO LG, ENTRY POINTS, RELOC. LIBRY, C PROGRAM SOURCE OR SWAP TRACKS. C C LGG = IGET(1765B) C CALCULATE DISK TRACK & LU FROM PACKED DISC PNTR CALL FDISK(LGG,NSPTRK,LUDS,LGSTRT) C CALCULATE LAST LG TRACK LGEND=LGSTRT+IAND(LGG,177B)-1 C NOT LG TRACK IF NOT RIGHT LU... IF(LUDISK .NE. LUDS) GOTO 232 IF((ITRACK .LT. LGSTRT) .OR. (ITRACK .GT. LGEND))GO TO 232 IOWN(1,JCNTR)=2H IOWN(2,JCNTR)=2HLG IOWN(3,JCNTR)=2H GO TO 100 C C SEE IF IT'S IN THE SYSTEM ENTRY POINT LIST... 232 CONTINUE C GET DISC PNTR LST = IGET(1761B) C CALCULATE LU & TRACK FROM PACKED DISC PNTR CALL FDISK(LST,NSPTRK,LUDS,IENTST) C CAN'T BE HERE IF NOT LU 2 IF(LUDISK .NE. 2) GOTO 234 IENTND=IENTST+(IGET(1762B)*4/64+IAND(LST,177B)-1)/NSPTRK IF((ITRACK .LT. IENTST) .OR. (ITRACK .GT. IENTND))GO TO 234 IOWN(1,JCNTR)=2H-E IOWN(2,JCNTR)=2HNT IOWN(3,JCNTR)=2HS- GO TO 100 C C SEE IF IT'S THE RELOCATABLE LIBRARY.... 234 CONTINUE C CAN'T BE IF NOT ON SYSTEM DISC... IF(LUDISK .NE. 2) GOTO 236 LBS=IGET(1763B) CALL FDISK(LBS,NSPTRK,LUDS,LBSTRT) IF((ITRACK .LT. LBSTRT) .OR. (ITRACK .GT. IENTST))GO TO 236 IOWN(1,JCNTR)=2HLI IOWN(2,JCNTR)=2HBR IOWN(3,JCNTR)=2HY- GO TO 100 C C SEE IF IT'S A PROGRAM 'SOURCE' OR SWAP TRACK... 236 CONTINUE CALL PRGTR(ITRACK,LUDISK,IOWN(1,JCNTR)) GO TO 100 C C NON-SYSTEM TRACKS C C GLOBAL? 24 IF(IAD.NE.77777B)GO TO 25 IOWN(1,JCNTR)=2HGL IOWN(2,JCNTR)=2HOB IOWN(3,JCNTR)=2HAL GO TO 100 C C FMP? 25 IF(IAD.NE.77776B)GO TO 26 IOWN(1,JCNTR)=2H-F IOWN(2,JCNTR)=2HMP IOWN(3,JCNTR)=2H-- GO TO 100 C C ANYBODY OWN IT? 26 IF(IAD.NE.0)GO TO 27 C NOBODY OWNS IT. IOWN(1,JCNTR)=2H IOWN(2,JCNTR)=2H-- IOWN(3,JCNTR)=2H GOTO 100 C SOME PROGRAM OWNS IT. 27 IOWN(1,JCNTR)=IGET(IAD+12) IOWN(2,JCNTR)=IGET(IAD+13) IOWN(3,JCNTR)=IOR(IAND(IGET(IAD+14),77400B),40B) C 100 CONTINUE 222 CONTINUE WRITE(LIST,120)INDEX,IOWN INDEX = INDEX + 10 IF(N .GT. NCNT) GOTO 90 IF(N .NE. NTDSK1) GOTO 20 C SWITCHING OVER TO AUXILIARY DISC. WRITE(LIST,103) 103 FORMAT(/" AUXILIARY DISC"/) ITRACK = -1 LUDISK = 3 INDEX= 0 GOTO 20 C END C 90 CALL EXEC(6,0,0,LU,LU(2)) END SUBROUTINE FDISK(IPNTR,NSPTRK,LUDISK,JTRAK) C C FINDS THE SYSTEM OR AUXILIARY DISC WHERE THE DISC C POINTER (IN PACKED FORMAT) POINTS TO, C AS WELL AS THE TRACK. C C USES RTE CONVENTION (IF IPNTR < 0 THEN LU IS 3, ELSE 2. C C ON RETURN: C NSPTRK = # SECTORS PER TRACK ON THE DISC C LUDISK = 2 OR 3 (DISK LU) C JTRAK = TRACK ADDRESS C LUDISK = 2 IF(IPNTR .LT. 0) LUDISK = 3 NSPTRK = IGET(1755B + LUDISK) JTRAK = IAND(IPNTR,77600B) / 128 RETURN END SUBROUTINE PRGTR(ITRACK,LUDISK,NAME) C C VERSION 3-ɷ29 - 77 LWS C DETERMINES IF ITRACK & LUDISK POINT TO A TRACK C USED FOR STORING THE VIRGIN VERSION OR C SWAPPED VERSION OF A PROGRAM. C C DIMENSION NAME(3) INTEGER SHRTID,HIGHBP C C INITIALIZE SEARCH THRU KEYWORD BLOCK KEYWD=IGET(1657B) C 10 IDADR=IGET(KEYWD) IF(IDADR.LE.0)GO TO 90 NAME3=IGET(IDADR + 14) SHRTID = 0 IF(IAND(NAME3,20B) .NE. 0) SHRTID = -1 C MAKE SURE IT'S A DISC-RESIDENT PROGRAM C OR SHORT ID FOR SEGMENTS. IF(IAND(NAME3,22) .EQ. 0) GOTO 22 C SET FLAG FOR "SOURCE" TRACK ITYPE=46B C C GET HI & LOW MAIN & BP ADDRESSES C IF(SHRTID) 12,15 12 CONTINUE C C SHORT ID SEGMENT. C LOWMAN=IGET(IDADR + 15) MAINHI=IGET(IDADR + 16) LOWBP = IGET(IDADR + 17) HIGHBP=IGET(IDADR + 18) KTRAK=IGET(IDADR + 19) GOTO 16 15 CONTINUE C C LONG ID SEGMENT C LOWMAN = IGET(IDADR + 22) MAINHI = IGET(IDADR + 23) LOWBP = IGET(IDADR + 24) HIGHBP = IGET(IDADR + 25) KTRAK = IGET(IDADR + 26) 16 CONTINUE C IF BLANK ID SEGMENT THEN GO ON.... IF(KTRAK .EQ. 0) GOTO 22 C C CALCULATE # SECTORS REQUIRED FOR PROGRAM C STORAGE. NSECTS= ((MAINHI - LOWMAN + 127) /128) * 2 + 1((HIGHBP - LOWBP + 127) /128) * 2 C C FIND DISK TRACK & LU CALL FDISK(KTRAK,NSPTRK,LUDS,JTRAK) C CAN'T BE IF LUS NOT RIGHT.... IF(LUDISK .NE. LUDS) GOTO 20 C CALCULATE LAST TRACK LSTRK=JTRAK + NSECTS / NSPTRK IF((JTRAK .LE. ITRACK) .AND. (ITRACK .LE. LSTRK)) 25,20 C C NOT SOURCE TRACK. TRY SWAP TRACK. C C CHECK FOR SHORT ID SEGMENT 20 CONTINUE IF(SHRTID) 22,21 21 CONTINUE &KTRAK = IGET(IDADR + 27) C IF NO SWAP TRACKS, GO ON... IF(KTRAK .EQ. 0) GOTO 22 LSTRK = IAND(KTRAK,177B) CALL FDISK(KTRAK,NSPTRK,LUDS,JTRAK) IF(LUDISK .NE. LUDS) GOTO 22 C SET UP SPECIAL CHARACTER IN NAME C TO IDENTIFY TRACK AS SWAP TRACK (^) ITYPE=136B IF((JTRAK .LE. ITRACK) .AND. (ITRACK .LE. LSTRK)) 25,22 22 CONTINUE C IF TRACK IS NEITHER SOURCE NOR SWAP TRACK FOR C THIS PROGRAM, GO ON TO NEXT PROGRAM. KEYWD=KEYWD+1 GO TO 10 C C 25 CONTINUE C FOUND PROGRAM WHICH IS STORED ON THIS TRACK. NAME = IGET(IDADR + 12) NAME(2)=IGET(IDADR+13) C MERGE IN CHARACTER FOR SOURCE OR SWAP TRACK. NAME(3)=IOR(IAND(NAME3,77400B),ITYPE) 90 RETURN END END$ x   22682-18051 1701 SC 0122 FMP-UTIL              H0101 FTN4,L C C VERSION 4 - 24 - 76 LWS C PROGRAM JRSTR,3,1 C DIMENSION LU(5),IREG(2),MBUF(30),IPBUF(33),IMBUF(33) DIMENSION IBUF(14001B),JBUF(14000B),IANS(2) INTEGER FIRST,LAST,FILE,DELTF,SFLAG C DIMENSION MESS1(1),MESS2(1),MESS3(1),MESS4(1),MESS5(1),MESS6(1) DIMENSION MESS8(1),MESS9(1),MES10(1),MES11(1),MES12(1),MES19(1) DIMENSION MES20(1),MES21(1),MES22(1),MES23(1),MES24(1),MES25(1) DIMENSION MES26(1),MES27(1),MES28(1),MES29(1),MESS7(1) DIMENSION IREV(1) C EQUIVALENCE (IA,IREG),(IB,IREG(2)),(X,IREG) EQUIVALENCE (IBUF,ITRAK),(JBUF,IBUF(2)) EQUIVALENCE (MBUF,IMBUF(2)) C DATA JLNTH/14000B/,FILE/1/,MLNTH/26/,SFLAG/0/ DATA IMBUF/6412B/,IMBUF(32)/2H ?/,IMBUF(33)/2H _/ C 901 FORMAT(" /JRSTR: MAG TAPE LU: _") 902 FORMAT(" /JRSTR: DISC LU: _") 903 FORMAT("/JRSTR: THAT'S NOT A DISC!") 904 FORMAT("/JRSTR: THAT'S NOT A MAG TAPE!") 905 FORMAT("/JRSTR: CAN'T DO THAT LU!") 906 FORMAT("/JRSTR: MAX = 50, MIN = 1!") 908 FORMAT(" /JRSTR: END? _") 909 FORMAT(" /JRSTR: DONE! ") 910 FORMAT(" /JRSTR: MAG TAPE FILE: (<0 = DIRECTORY, 0 = END)_") 911 FORMAT("/JRSTR: 'DSAVE' FORMAT - NO DIRECTORY!") 912 FORMAT("/JRSTR: EOF FOUND!") 919 FORMAT(" /JRSTR: REV 4-24-76 ") 920 FORMAT("/JRSTR: DIRECTORY INCONSISTENCY! # TRACKS = ??") 921 FORMAT(" /JRSTR: LOADING CARTRIDGE ' ' ") 922 FORMAT(" PREVIOUS DIRECTORY AT TRACK: ") 923 FORMAT(" DISC ( LU ) MAX TRACK: ") 924 FORMAT(" LOWEST AV. TRACK ON THIS CR: ") 925 FORMAT(" /JRSTR: MOVE DIRECTORY TO NEW HIGH TRACK? ") 926 FORMAT(" (YES, NO, OR NEW TRACK NUMBER [<=0 = ABORT] _") 927 FORMAT(" /JRSTR: DIRECTORY NOW ON TRACK ") 928 FORMAT(" /JRSTR: CR ' ' DIRECTORY ON TRACK ") 929 FORMAT("/JRSTR: INPUT ERROR!") C C C CALL RMPAR(LU) IF(LU.EQ.0)LU=1 ILU=LU+400B C C SET UP MESSAGES C >0 ASSIGN 901 TO ILABL MESS1(0)=ILABL MESS1(3)=6412B ASSIGN 902 TO ILABL MESS2(0)=ILABL MESS2(3)=6412B ASSIGN 903 TO ILABL MESS3(0)=ILABL ASSIGN 904 TO ILABL MESS4(0)=ILABL ASSIGN 905 TO ILABL MESS5(0)=ILABL ASSIGN 906 TO ILABL MESS6(0)=ILABL ASSIGN 908 TO ILABL MESS7(0)=ILABL MESS7(3)=6412B ASSIGN 909 TO ILABL MESS9(0)=ILABL MESS9(3)=6412B ASSIGN 910 TO ILABL MES10(0)=ILABL MES10(3)=6412B ASSIGN 911 TO ILABL MES11(0)=ILABL ASSIGN 912 TO ILABL MES12(0)=ILABL ASSIGN 919 TO ILABL IREV(0)=ILABL IREV(3)=6412B ASSIGN 920 TO ILABL MES20(0)=ILABL ASSIGN 921 TO ILABL MES21(0)=ILABL MES21(3)=6412B ASSIGN 922 TO ILABL MES22(0)=ILABL ASSIGN 923 TO ILABL MES23(0)=ILABL ASSIGN 924 TO ILABL MES24(0)=ILABL ASSIGN 925 TO ILABL MES25(0)=ILABL MES25(3)=6412B ASSIGN 926 TO ILABL MES26(0)=ILABL ASSIGN 927 TO ILABL MES27(0)=ILABL MES27(3)=6412B ASSIGN 928 TO ILABL MES28(0)=ILABL MES28(3)=6412B ASSIGN 929 TO ILABL MES29(0)=ILABL C CALL EXEC(2,ILU,IREV(3),11) C C GET MAG TAPE LU C 10 CALL REIO(2,ILU,MESS1(3),12) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) MTLU=IPBUF(2) C CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,37400B)*2.EQ.23000B)GO TO 14 IF(IAND(ISTAT,37400B)*2.EQ.24000B)GO TO 14 CALL REIO(2,ILU,MESS4(3),15) GO TO 10 C 14 REWIND MTLU FILE=1 C C C GET MAG TAPE FILE NUMBER 0 = END <0 = PRINT DIRECTORY C 20 IF(SFLAG.EQ.0)GO TO 201 MLNTH=13 MES10(15)=20137B 201 CALL REIO(2,ILU,MES10(3),MLNTH) SFLAG=1 X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) NFILE=IPBUF(2) IF(NFILE.LT.0)GO TO 50 IF(NFILE.EQ.0)GO TO 90 IF(NFILE.LE.50)GO TO 21 CALL REIO(2,ILU,MESS6(3),14) GO TO 20 C C POSITION THE TAPE C 21 IF(NFILE.NE.1)GO TO 22 CALL EXEC(3,MTLU+0400B) GO TO 30 22 DELTF=NFILE-FILE IF(DELTF.EQ.0)GO TO 30 C ICON=MTLU+1300B IF(DELTF.GT.0)GO TO 23 DELTF=-DELTF ICON=MTLU+1400B C 23 DO 24 I=1,DELTF IF(ICON.GE.1400B)GO TO 231 IF(IFBRK(0).LT.0)GO TO 14 X=EXEC(1,MTLU,IBUF,JLNTH+1) IF(IB.EQ.0)GO TO 26 IF(IB.GT.100)GO TO 56 CALL EXEC(2,ILU,IBUF,IB) 231 CALL EXEC(3,ICON) 24 CONTINUE C IF(ICON.LT.1400B)GO TO 30 CALL EXEC(3,MTLU+1400B) CALL EXEC(3,MTLU+1300B) GO TO 30 C 26 CALL EXEC(2,ILU,MES12(3),9) GO TO 14 C C GET HEADER AND CHECK IF THAT'S WHAT HE WANTS C 30 FILE=NFILE X=EXEC(1,MTLU,IBUF,JLNTH+1) HEDLNT=IB IF(HEDLNT.EQ.0)GO TO 26 IF(HEDLNT.GT.100)GO TO 40 C IBUF(31)=37537B CALL EXEC(2,ILU,IBUF,31) CALL REIO(1,ILU,IANS,2) IF(IANS.EQ.2HYE)GO TO 40 34 CALL EXEC(3,MTLU+0200B) GO TO 20 C 40 CALL REIO(2,ILU,MESS2(3),10) X=REIO(1,ILU,MBUF,10) MES23(12)=MBUF MES23(13)=MBUF(2) CALL PARSE(MBUF,IB*2,IPBUF) IDISC=IPBUF(2) IF(IDISC.GT.6)GO TO 42 IF(IDISC.LE.0)GO TO 34 CALL REIO(2,ILU,MESS5(3),13) GO TO 40 C 42 CALL EXEC(13,IDISC,ISTAT) ITYPE=IAND(ISTAT,37000B)/256 IF((ITYPE.EQ.30B).OR.(ITYPE.EQ.32B))GO TO 44 CALL REIO(2,ILU,MESS3(3),13) GO TO 40 C C GET DIRECTORY TRACKS - PERHAPS MODIFY DIRECTORY TO PUT IT IN C A DIFFERENT TRACK THAN WHAT IT CAME FROM, AS FROM 7905 TO 7905 C WITH DIFFERENT # TRACKS PER CARTRIDGE. C C MAG TAPE RECORD GIVES TRACK NUMBER THAT THE DIRECTORY CAME FROM... C EXEC CALL GIVES LAST TRACK OF THE DISC WE'RE WRITING TO C IF THEY'RE THE SAME, JUST PROCEED.... C L  IF DIFFERENT PRINT OUT CURRENT VALUES AND REQUEST OPERATOR C FOR DESIRED LOCATION OF DIRECTORY. C C NOW... READ THE TAPE TO FIND SPECIFIED TRACK C GET MAX TRACK ON THIS DISC C REQUEST CHANGE (IF ANY) C MODIFY DIRECTORY C COPY ALL DIRECTORY TRACKS C GO TO COPY DOWN REMAINING TRACKS C 44 IF(HEDLNT.LE.100)CALL EXEC(1,MTLU,IBUF,JLNTH+1) LODIR=JBUF(8) NDIR=ITRAK-LODIR+1 LOWEST=JBUF(10) MES21(18)=JBUF MES21(19)=JBUF(2) MES21(20)=JBUF(3) MES28(10)=JBUF MES28(11)=JBUF(2) MES28(12)=JBUF(3) IF(NDIR.EQ.-JBUF(9))GO TO 441 CALL EXEC(2,ILU,MES20(3),10) GO TO 14 C 441 X=EXEC(1,IDISC,IDUM,1,32767,0) MAXTRK=IB-1 IDELT=0 IF(ITRAK.EQ.MAXTRK)GO TO 46 C CALL CNUMD(ITRAK,MES22(21)) CALL CNUMD(MAXTRK,MES23(21)) CALL CNUMD(LOWEST,MES24(21)) CALL EXEC(2,ILU,MES21(3),19) CALL EXEC(2,ILU,MES22(3),21) CALL EXEC(2,ILU,MES24(3),21) CALL EXEC(2,ILU,MES23(3),21) CALL EXEC(2,ILU,MES25(3),22) CALL EXEC(2,ILU,MES26(3),27) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) C IF(IPBUF.LE.1)GO TO 45 IF(IPBUF(2).EQ.2HNO)GO TO 46 IF(IPBUF(2).NE.2HYE)GO TO 491 IDELT=MAXTRK-ITRAK GO TO 46 C 45 IF(IPBUF(2).LT.LOWEST)GO TO 491 IF(IPBUF(2).GT.MAXTRK)GO TO 491 IDELT=IPBUF(2)-ITRAK C C HAVE ALL LU'S, NOW GO COPY THE DISC... C 46 CALL CNUMD(ITRAK+IDELT,MES28(23)) CALL EXEC(2,ILU,MES28(3),23) JBUF(8)=JBUF(8)+IDELT GO TO 49 C 48 X=EXEC(1,MTLU,IBUF,JLNTH+1) CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,200B).NE.0)GO TO 20 49 KTRAK=ITRAK IF(ITRAK.GE.LODIR)KTRAK=ITRAK+IDELT CALL EXEC(2,IDISC,JBUF,JLNTH,KTRAK,0) GO TO 48 C C ERROR C 491 CALL EXEC(2,ILU,MES29(3),10) GO TO 14 C C DIRECTORY OF MAG TAPE C 50 X=EXEC(1,MTLUU,IBUF,JLNTH+1) IF(IB.NE.0)GO TO 51 CALL EXEC(3,MTLU+1400B) GO TO 20 C 51 IF(IFBRK(0).GE.0)GO TO 52 CALL EXEC(3,MTLU+0200B) GO TO 20 C 52 IF(IB.GT.100)GO TO 56 CALL EXEC(2,ILU,IBUF,IB) CALL EXEC(3,MTLU+1300B) FILE=FILE+1 GO TO 50 C C IF NO HEADER RECORDS, IT'S 'DSAVE' - QUIT AND REWIND... C 56 CALL REIO(2,ILU,MES11(3),19) GO TO 14 C C C END: REWIND TAPE AND TERMINATE C 90 REWIND MTLU CALL REIO(2,ILU,MESS9(3),8) C END END$ FTN4,L C C VERSION 4 / 21 / 76 LWS C PROGRAM JSAVE,3,1 C DIMENSION LU(5),IREG(2),MBUF(30),IPBUF(33) DIMENSION IBUF(14001B),JBUF(14000B) INTEGER FIRST,LAST,SFLAG C DIMENSION MESS1(12),MESS2(26),MESS3(13),MESS4(15) DIMENSION MESS5(13),MESS6(14),MESS7(10) DIMENSION MESS8(8),MESS9(12),MES10(13),MES11(9) DIMENSION IREV(11) C EQUIVALENCE (IA,IREG),(IB,IREG(2)),(X,IREG) EQUIVALENCE (IBUF,ITRAK),(JBUF,IBUF(2)) C DATA SFLAG,JLNTH,MLNTH/0,14000B,26/ C DATA MESS1/6412B,2H/J,2HSA,2HVE,2H: ,2HMA,2HG ,2HTA,2HPE, & 2H L,2HU:,2H _/ DATA MESS2/6412B,2H/J,2HSA,2HVE,2H: ,2HDI,2HSC,2H L,2HU:,2H (, & 2H[,,2HLA,2HST,2H T,2HRA,2HCK,2H] ,2H , & 2HLU,2H= ,2H0 ,2H=>,2H E,2HND,2H) ,2H _/ DATA MESS3/2H/J,2HSA,2HVE,2H: ,2HTH,2HAT,2H'S,2H N,2HOT, & 2H A,2H D,2HIS,2HC!/ DATA MESS4/2H/J,2HSA,2HVE,2H: ,2HTH,2HAT,2H'S, & 2H N,2HOT,2H A,2H M,2HAG,2H T, & 2HAP,2HE!/ DATA MESS5/2H/J,2HSA,2HVE,2H: ,2HCA,2HN',2HT , & 2HDO,2H T,2HHA,2HT ,2HLU,2H! / DATA MESS6/2H/J,2HSA,2HVE,2H: ,2HMA,2HX ,2H= , & 2H50,2H, ,2HMI,2HN ,2H= ,2H1!/ DATA MESS7/6412B,2H/J,2HSA,2HVE,2H: ,2HHE,2HAD,2HER,2H: ,2H _/ DATA MESS8/6412B,2H/J,2HSA,2HVE,2H: ,2HEN,2HD?,2H _/ DATA MESS9/641'2B,2H/J,2HSA,2HVE,2H: ,2HDO,2HNE,2H! ,6412B/ DATA MES10/6412B,2H/J,2HSA,2HVE,2H: ,2HMA,2HG , & 2HTA,2HPE,2H F,2HIL,2HE:,2H _/ DATA MES11/2H/J,2HSA,2HVE,2H: ,2HEO,2HF ,2HFO,2HUN,2HD!/ DATA IREV /6412B,2H/J,2HSA,2HVE,2H: ,2HRE,2HV ,2H5-,2H05,2H-7, & 2H6 / C C CALL RMPAR(LU) IF(LU.EQ.0)LU=1 ILU=LU+400B CALL EXEC(2,ILU,IREV,11) C C GET DISC AND MAG TAPE LU'S C 10 CALL REIO(2,ILU,MESS1,12) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) MTLU=IPBUF(2) C CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,37400B)*2.EQ.23000B)GO TO 14 IF(IAND(ISTAT,37400B)*2.EQ.24000B)GO TO 14 CALL REIO(2,ILU,MESS4,15) GO TO 10 C 14 REWIND MTLU C 15 IF(SFLAG.EQ.0)GO TO 151 MESS2(10)=020137B MLNTH=10 151 CALL REIO(2,ILU,MESS2,MLNTH) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) IDISC=IPBUF(2) LASTTR=IPBUF(6) IF(IDISC.EQ.0)GO TO 90 IF(IDISC.GT.6)GO TO 16 CALL REIO(2,ILU,MESS5,13) GO TO 15 C 16 CALL EXEC(13,IDISC,ISTAT) ITYPE=IAND(ISTAT,37000B)/256 IF((ITYPE.EQ.30B).OR.(ITYPE.EQ.32B))GO TO 20 CALL REIO(2,ILU,MESS3,13) GO TO 15 C C GET MAG TAPE FILE NUMBER AND IDENT C 20 IF(SFLAG.NE.0)GO TO 30 21 CALL REIO(2,ILU,MES10,13) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) NFILE=IPBUF(2) IF(NFILE.LE.0)GO TO 90 IF(NFILE.LE.50)GO TO 22 CALL REIO(2,ILU,MESS6,14) GO TO 21 C C POSITION THE TAPE C 22 IF(NFILE.EQ.1)GO TO 30 23 X=EXEC(1,MTLU,IBUF,JLNTH+1) IF(NFILE.EQ.1)GO TO 30 IF(IB.GT.0)GO TO 211 CALL EXEC(2,ILU,MES11,9) GO TO 30 211 IF(IB.LE.100)GO TO 212 CALL EXEC(2,ILU,MES11,19) GO TO 90 212 CALL EXEC(2,ILU,IBUF,IB) CALL EXEC(3,MTLU+1300B) NFILE=NFILE-1 GO TO 23 C C GET HEADER AND WRITE TO TAPE C 30  DO 31 I=1,30 MBUF(I)=2H 31 CONTINUE C 32 CALL EXEC(3,MTLU+1400B) CALL REIO(2,ILU,MESS7,10) CALL REIO(1,ILU,MBUF,30) CALL EXEC(2,MTLU,MBUF,30) C C C HAVE ALL LU'S, NOW GO COPY THE DISC... C COPY ALL DIRECTORY TRACKS FIRST, FOLLOWED BY C ALL TRACKS USED BY FMP (UN-USED TRACKS WON'T BE COPIED) C X=EXEC(1,IDISC,JBUF,128,10000,0) ITRAK=IB-1 IF(LASTTR.NE.0)ITRAK=LASTTR CALL EXEC(1,IDISC,JBUF,JLNTH,ITRAK,0) FIRST=JBUF(5) LAST=JBUF(10) IF(LAST.EQ.LASTTR)LAST=LAST-1 LOWDIR=JBUF(8) GO TO 41 C 40 CALL EXEC(1,IDISC,JBUF,JLNTH,ITRAK,0) 41 CALL EXEC(2,MTLU,IBUF,JLNTH+1) IF(ITRAK.EQ.LOWDIR)GO TO 45 ITRAK=ITRAK-1 GO TO 40 C 45 DO 49 ITRAK=FIRST,LAST CALL EXEC(1,IDISC,JBUF,JLNTH,ITRAK,0) CALL EXEC(2,MTLU,IBUF,JLNTH+1) 49 CONTINUE C ENDFILE MTLU ENDFILE MTLU SFLAG=1 GO TO 15 C C END: REWIND TAPE C 90 REWIND MTLU CALL REIO(2,ILU,MESS9,12) C END END$ FTN4,L PROGRAM FGETR C C C THIS PROGRAM ALLOWS THE USER TO ACCESS FILES ON C JSAVE MAG TAPES. IT ALSO WILL GIVE A "DL" ON THE C FILE FOR HIM. THE DIRECTORY LIST IS SLIGHTLY C FASTER THAN THE FILE MANAGER BECAUSE IT DOES C TRACK BUFFERS AT A TIME. C C THE ONLY ROUTINE OTHER THAN THIS REQUIRED IS C ASCII WHICH DOES A BINAR TO ASCII CONVERSION C WITH LEADING ZEROS LEFT. THE ROUTINE IS IN C ASSEMBLER THE CALLING SEQUNCE IS C CALL ASCII(I,J,K) C C I IS THE BINARY NUMBER C J IS THE ADDRESS OF THE RESULT (3 WORDS) C K IS THE BASE WE WANT THE RESULT IN C C DIMENSION ID(144),NA(3),LT(40),LS(40),NS(40) DIME\'NSION LU(5),IREG(2),MBUF(30),IPBUF(33),IMBUF(33) DIMENSION IBUF(14001B),JBUF(14000B),IANS(2) DIMENSION MESS1(9),MESS2(8),MESS3(10),MESS4(12) DIMENSION MESS5(10),MESS6(11),MESS7(4) DIMENSION MESS8(5),MESS9(9),MES10(10),MES11(10) DIMENSION MES13(7),MES12(15),LIN(24),LIN1(5) DIMENSION MES14(12),MES15(8),LIN2(35) INTEGER FIRST,LAST,FILE,DELTF C EQUIVALENCE (IA,IREG),(IB,IREG(2)),(X,IREG) EQUIVALENCE (IBUF,ITRAK),(JBUF,IBUF(2)) EQUIVALENCE (MBUF,IMBUF(2)) C DATA JLNTH/14000B/ DATA IMBUF/6412B/,IMBUF(32)/2H ?/,IMBUF(33)/2H _/ DATA MESS1/6412B,2H ,2HMA,2HG ,2HTA,2HPE,2H L,2HU:,2H _/ DATA MESS2/6412B,2H ,2HFI,2HLE,2H N,2HAM,2HE:,2H _/ DATA MESS3/2H ,2HTH,2HAT,2H'S,2H N,2HOT,2H A,2H D,2HIS,2HC!/ DATA MESS4/2H ,2HTH,2HAT,2H'S,2H N,2HOT,2H A,2H M,2HAG,2H T, *2HAP,2HE!/ DATA MESS5/2H ,2HCA,2HN',2HT ,2HDO,2H T,2HHA,2HT ,2HLU,2H! / DATA MESS6/2H ,2HMA,2HX ,2H= ,2H50,2H, ,2HMI,2HN ,2H= ,2H1!/ DATA MESS7/2H N,2HO ,2HFI,2HLE/ DATA MESS8/6412B,2H ,2HEN,2HD?,2H _/ DATA MESS9/6412B,2H/J,2HRS,2HTR,2H: ,2HDO,2HNE,2H! ,6412B/ DATA MES10/6412B,2H ,2HMA,2HG ,2HTA,2HPE,2H F,2HIL,2HE:,2H _/ DATA MES11/2H F,2HIL,2HE ,2HCR,2HEA,2HTI,2HON,2H E,2HRR,2HOR/ DATA MES12/6412B,2H ,2HDO,2H Y,2HOU,2H W,2HIS,2HH ,2HA ,2HDI *,2HRE,2HCT,2HOR,2HY ,2H?_/ DATA MES13/6412B,2H ,2HWH,2HAT,2H L,2HU ,2H?_/ DATA MES14/6412B,2H ,2HWH,2HAT,2H S,2HEC,2HUR,2HIT, *2HY ,2HCO,2HDE,2H?_/ DATA MES15/6412B,2H ,2HAN,2HY ,2HMO,2HRE,2H ?,2H _/ DATA LIN/2H ,2HNA,2HME,2H ,2H T,2HYP,2HE , *2H#B,2HLK,2HS/,2HLU,2H S,2HCO,2HDE,2H T,2HRA, *2HCK,2H S,2HEC,2H ,2HOP,2HEN,2H T,2HO / DATA LIN1/2H ,2HCR,2H,3*2H / DATA LIN2/2H ,2H I,2HLA,2HB=,3*2H ,2H N,2HXT,2HR=, *2*2H ,2H N,2HXS,2HEC,2*2H ,2H #,2HSE,2HC/,2HTR,2*2H , *2H L,2HAS,2HT ,2HTR,2H= ,2*2H ,2H #,2HDR,2H T,2HR=,2H / C C { CALL RMPAR(LU) IF(LU.EQ.0)LU=7 ILU=LU+400B C C GET DISC AND MAG TAPE LU'S C 10 CALL REIO(2,ILU,MESS1,9) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) MTLU=IPBUF(2) C CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,37400B)*2.EQ.23000B)GO TO 14 CALL REIO(2,ILU,MESS4,12) GO TO 10 C 14 REWIND MTLU FILE=1 C 15 IFLG=0 C C ASK IF THEY WANT A DIRECTORY LISTING OF THAT FILE C CALL REIO(2,ILU,MES12,15) CALL REIO(1,ILU,IANS,2) IF(IANS.EQ.2HNO)GO TO 9876 IFLG=1 C C ASK WHERE HE WOULD LIKE IT C CALL REIO(2,ILU,MES13,7) X=REIO(1,ILU,IANS,2) CALL PARSE(IANS,IB*2,IPBUF) LIST=IPBUF(2) GO TO 21 C C DOESNT WANT A DIRECTORY ASK FOR A FILE NAME C 9876 CALL REIO(2,ILU,MESS2,8) MBUF=2H MBUF(2)=2H MBUF(3)=2H X=REIO(1,ILU,MBUF,10) NA=MBUF NA(2)=MBUF(2) NA(3)=MBUF(3) C C ASK FOR NEW FILES SECURITY CODE C CALL REIO(2,ILU,MES14,12) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) ISC=IPBUF(2) C C GET MAG TAPE FILE NUMBER AND IDENT C 21 CALL REIO(2,ILU,MES10,10) X=REIO(1,ILU,MBUF,10) CALL PARSE(MBUF,IB*2,IPBUF) NFILE=IPBUF(2) IF((NFILE.GT.0).AND.(NFILE.LE.50))GO TO 22 CALL REIO(2,ILU,MESS6,11) GO TO 21 C C POSITION THE TAPE C 22 DELTF=NFILE-FILE IF(DELTF.EQ.0)GO TO 30 C ICON=MTLU+1300B IF(DELTF.GT.0)GO TO 23 DELTF=-DELTF ICON=MTLU+1400B C 23 DO 24 I=1,DELTF CALL EXEC(19,ICON,II,ICLS) CALL EXEC(21,ICLS,II,JJ,KK,LL) 24 CONTINUE C IF(ICON.LT.1400B)GO TO 30 CALL EXEC(3,MTLU+1400B) CALL EXEC(3,MTLU+1300B) C C GET HEADER AND CHECK IF THAT'S WHAT HE WANTS C 30 FILE=NFILE+1 CALL REIO(1,MTLU,MBUF,30) 31 CALL EXEC(2,ILU,IMBUUF,33) CALL REIO(1,ILU,IANS,2) IF(IANS.EQ.2HYE)GO TO 40 IF(IANS.NE.2HNO)GO TO 31 FILE=FILE-1 CALL EXEC(3,MTLU+1400B) CALL EXEC(3,MTLU+1300B) GO TO 21 C C C WERE THERE AT THE FILE READ IN THE DIRECTORY C TRACKS AND EITHER FIND OUR FILE OR FORMAT THE C INFO AND OUTPUT IT TO THE LIST DEVICE C 40 ISUM=0 NSS=0 MR=0 42 M=1 ISEC=0 JSEC=0 C C READ A TRACK C CALL EXEC(1,MTLU,IBUF,JLNTH+1) CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,200B).NE.0)GO TO 100 C C IF FIRST DIRECTORY TRACK FIRST 16 WORDS C ARE PACK LABEL INFO C IF(MR.NE.0)GO TO 45 M=17 IF(IFLG.EQ.0)GO TO 45 C C FORMAT AND OUTPUT THE DL HEADER INFO C CALL ASCII(JBUF(4),LIN1(3),10) LIN1(3)=IAND(LIN1(3),177B)+36400B CALL EXEC(3,1100B+LIST,-1) CALL EXEC(2,LIST,LIN1,5) LIN2(5)=IAND(JBUF(1),77777B) LIN2(6)=JBUF(2) LIN2(7)=JBUF(3) CALL ASCII(JBUF(10),MBUF,10) LIN2(11)=MBUF(2) LIN2(12)=MBUF(3) CALL ASCII(JBUF(6),MBUF,10) LIN2(16)=IAND(MBUF(2),177B)+36400B LIN2(17)=MBUF(3) CALL ASCII(JBUF(7),MBUF,10) LIN2(22)=IAND(MBUF(2),177B)+36400B LIN2(23)=MBUF(3) IA=JBUF(8)-JBUF(9)-1 CALL ASCII(IA,MBUF,10) LIN2(29)=MBUF(2) LIN2(30)=MBUF(3) IA=-JBUF(9) CALL ASCII(IA,MBUF,10) LIN2(35)=MBUF(3) CALL REIO(2,LIST,LIN2,35) CALL EXEC(3,1100B+LIST,1) CALL REIO(2,LIST,LIN,24) CALL EXEC(3,1100B+LIST,1) C C SCAN THE ENTIRE TRACK LOOP C 45 DO 103 N=M,128,16 C C COMPUTE THE FILE INFO OFFSET C MR=N+ISEC*64 C C IF ELEMENT = -1 FILE WAS PURGED IGNORE C IF(JBUF(MR).EQ.-1)GO TO 103 C C IF = 0 END OF DIRECTORY GET OU_T C IF(JBUF(MR).EQ.0)GO TO 90 IF(IFLG.EQ.0)GO TO 1234 C C DO DL FORMATTING STUFF C DO 193 IA=1,24 193 LIN(IA)=2H LIN(2)=JBUF(MR) LIN(3)=JBUF(MR+1) LIN(4)=JBUF(MR+2) CALL ASCII(JBUF(MR+3),LIN(5),10) IF(IAND(LIN(5),77400B).EQ.30000B)LIN(5)=IAND(LIN(5),177B) 1+20000B IF(JBUF(MR+3).EQ.0)GO TO 236 IA=JBUF(MR+6)/2 CALL ASCII(IA,LIN(8),10) IF(IAND(LIN(8),77400B).EQ.30000B)LIN(8)=IAND(LIN(8),177B) 1+20000B CALL ASCII(JBUF(MR+4),LIN(15),10) LIN(15)=20040B IA=IAND(JBUF(MR+5),377B) CALL ASCII(IA,MBUF,10) LIN(18)=MBUF(2) IF(IAND(LIN(18),77400B).EQ.30000B)LIN(18)=IAND(LIN(18) 1,177B)+20000B LIN(19)=MBUF(3) IA=0 IF(JBUF(MR+5).LT.0)IA=200B IA=IA+IAND(77400B,JBUF(MR+5))/256 IF(IA.EQ.0)GO TO 237 CALL ASCII(IA,MBUF,10) LIN(21)=IAND(MBUF(2),177B)+25400B LIN(22)=MBUF(3) GO TO 237 236 CALL ASCII(JBUF(MR+4),MBUF,10) LIN(10)=MBUF(3) 237 CALL ASCII(JBUF(MR+8),LIN(12),10) IF(IAND(LIN(12),77400B).EQ.30000B)LIN(12)=IAND(LIN(12) 1,177B)+20000B CALL REIO(2,LIST,LIN,24) GO TO 103 C C NOT DOING DL SO SEE IF ENTRY IS FOR OUR FILE C 1234 IF(JBUF(MR).NE.NA)GO TO 103 IF(JBUF(MR+1).NE.NA(2))GO TO 103 IF(JBUF(MR+2).NE.NA(3))GO TO 103 C C YES SAVE AND INCRIMENT PERTINANT INFORMATION C ISUM=ISUM+1 IF(JBUF(MR+5).LT.256)NTP=JBUF(MR+3) LT(ISUM)=JBUF(MR+4) LS(ISUM)=IAND(377B,JBUF(MR+5)) NS(ISUM)=JBUF(MR+6)/2 NSS=NSS+NS(ISUM) 103 CONTINUE C C DONE TRACK MUST BE MORE SO SET UP FOR THEM C M=1 ISEC=MOD(ISEC+14,96) JSEC=JSEC+1 IF(JSEC.LT.48)GO TO 45 GO TO 42 C C DONE SCAN SET UP TO GET FILE OFF TAPE C 90 IF(ISUM.EQ.0)GO TO 110 IS=1 C C CR܃EATE THE FILE BECAUSE WE FOUND SOMETHING C CALL CREAT(ID,IRE,NA,NSS,NTP,ISC) IF(IRE.LT.0)GO TO 120 C C CLOSE THE FILE SO WE CAN OPEN IT BETTER C CALL CLOSE(ID) C C OPEN THE FILE TYPE ONE SO WE MAY JUST C TRANSFER WHOLE RECORDS C CALL OPEN(ID,IRE,NA,4,ISC) C C READ IN A MAG TAPE RECORD 91 CALL EXEC(1,MTLU,IBUF,JLNTH+1) CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,200B).NE.0)GO TO 94 C C SEE IF WE WANT THIS TRACK C 92 IF(IBUF.NE.LT(IS))GO TO 91 C C YES FIGURE OUT OUR OFFSET INTO THE FILE C IA=64*LS(IS)+1 C C TRANSFER THE CORRECT NUMBER OF SECTORS DO 93 N=1,NS(IS) CALL WRITF(ID,IRE,JBUF(IA),128) IA=IA+128 C C MAKE SURE WE DONT CROSS TRACK BOUNDS C IF(IA.LT.JLNTH)GO TO 93 CALL EXEC(1,MTLU,IBUF,JLNTH+1) CALL EXEC(13,MTLU,ISTAT) IF(IAND(ISTAT,200B).NE.0)GO TO 94 IA=1 93 CONTINUE IS=IS+1 IF(IS.GT.ISUM)GO TO 94 GO TO 92 94 CALL CLOSE(ID) CALL EXEC(3,MTLU+400B) GO TO 100 C C IF NOT DOING DIRECTORY AND NO FILE SAY SO C 110 IF(IFLG.EQ.0)CALL REIO(2,ILU,MESS7,4) GO TO 100 C C FILE ERROR SAY SO C 120 CALL ASCII(-IRE,MES11(11),10) MES11(12)=26440B CALL REIO(2,ILU,MES11,13) C C ASK IF ANY MORE TO DO C 100 CALL REIO(2,ILU,MES15,8) CALL REIO(1,ILU,MBUF,10) IF(MBUF.NE.2HNO)GO TO 14 C C NO BYE BYE C END END$ ASMB,L,C NAM ASCII BINARY TO ASCII WITH ZEROS ENT ASCII EXT .ENTR A EQU 0 B EQU 1 NUM NOP PUT NOP E NOP ASCII NOP JSB .ENTR GET CALLING PARMS DEF NUM CLA STA FLAG LDA DM3 STA CNT LDA PUT SAVE DESTINATION ADDRESS ADA .2 STA PUTT LDA NUM,I STA NUMM LDA E,I STA BASE CPA .8 JMP LOP LDA NUMM SSA,RSS JMP LOP CCB CMA,INA STA NUMM STB FLAG LOP LDA NUMM CLB DIV BASE ADB B60 STB PUTT,I CLB DIV BASE STA NUMM LDA B ADA B60 ALF,ALF IOR PUTT,I STA PUTT,I LDA PUTT ADA DM1 STA PUTT ISZ CNT JMP LOP LDA FLAG SZA,RSS JMP ASCII,I ISZ PUTT LDA B377 AND PUTT,I IOR MIN STA PUTT,I JMP ASCII,I CNT NOP DM3 DEC -3 DM1 DEC -1 .2 DEC 2 .8 DEC 8 B60 OCT 60 B377 OCT 377 MIN OCT 26400 BASE NOP NUMM NOP PUTT NOP FLAG NOP END END$ ASMB,L,C NAM ASCII BINARY TO ASCII WITH ZEROS ENT ASCII EXT .ENTR A EQU 0 B EQU 1 NUM NOP PUT NOP E NOP ASCII NOP JSB .ENTR GET CALLING PARMS DEF NUM CLA STA FLAG LDA DM3 STA CNT LDA PUT SAVE DESTINATION ADDRESS ADA .2 STA PUTT LDA NUM,I STA NUMM LDA E,I STA BASE CPA .8 JMP LOP LDA NUMM SSA,RSS JMP LOP CCB CMA,INA STA NUMM STB FLAG LOP LDA NUMM CLB DIV BASE ADB B60 STB PUTT,I CLB DIV BASE STA NUMM LDA B ADA B60 ALF,ALF IOR PUTT,I STA PUTT,I LDA PUTT ADA DM1 STA PUTT ISZ CNT JMP LOP LDA FLAG SZA,RSS JMP ASCII,I ISZ PUTT LDA B377 AND PUTT,I IOR MIN STA PUTT,I JMP ASCII,I CNT NOP DM3 DEC -3 DM1 DEC -1 .2 DEC 2 .8 DEC 8 B60 OCT 60 B377 OCT 377 MIN OCT 26400 BASE cTRNNOP NUMM NOP PUTT NOP FLAG NOP END END$ T  22682-18052 1701 SC 0122 MINV - INVERSE ASSEMBLER FOR 2100 MICROCODE             H0101 UASMB,R,L,C,B NAM MINV EXT EXEC SUP * * WRITTEN BY P.A.SWARTZ * HUGHES AIRCRAFT - TUCSON, AZ. * 3/13/75 * * * * THIS PROGRAM READS MICRO CODE FROM A TAPE OUTPUT BY * THE MICRO ASSEMBLER AND PRODUCES 1 OF 2 OUTPUTS. * * OUTPUT 1: AN INVERSE ASSEMBLY. * * OUTPUT 2: A SOURCE TAPE OF THE OCTAL CODES WITH AN * INVERSE ASSEMBLY IN THE COMMENT FIELD. THIS * IS SO THE CODE CAN BE INCORPORATED INTO A * PROGRAM WHICH CAN THEN WRITE IT TO WCS. * * START UP: ON,MINV,I,O,F WHERE * I = INPUT LU, DEFAULT = 5 * O = OUTPUT LU, DEFAULT = 6 * F = FLAG. 0 FOR OUTPUT 1 OR NON 0 FOR OUTPUT 2 * * * * * * * * * * START LDA B,I GET INPUT LU SZA,RSS LDA LUI IOR B300 STA LUI * INB GET OUTPUT LU LDA B,I SZA,RSS LDA LUO STA LUO IOR B1000 CONTROL WORD TO GENERATE LEADER STA LEDER * INB LDA B,I STA MODE SET OUTPUT TYPE LDB LEDER SZA,RSS ADB B100 SET FOR TOP OF FORM ON OUTPUT TYPE 1 STB LEDER * * * JSB EXEC OUTPUT LEADER DEF *+4 DEF .+3 DEF LEDER DEF .-1 * LDB M500 WAIT ON THE DUMMY LDA M500 INA,SZA JMP *-1 INB,SZB JMP *-4 * * * * * * GET NEXT MICRO INSTRUCTION AND PROCESS IT. * LOOP JSB NXTIN JSB INIT INITIALIZE FOR OUTPUT * LDA MODE SZA,RSS JMP NXT1 OUTPUT TYPE 1 * LDA INST1 JSB CONV CONVERT 1ST HALF TO OCTAL LDA .OCT LDB .+5 JSB OUTST OUTPUT " OCT " * NXT2 EQU *+0 LDA .DG1 OUTPUT OCTAL DIGITS LDB .+6 JSB OUTBY * LDA B40 WRITE 4 BLANKS JSB OUTCR LDA B40 JSB OUTCR LDA B40 JSB OUTCR LDA B40 JSB OUTCR * LDA ADRES OUTPUYT ADDRESS JSB CONV LDA .DG3 LDB .+4 JSB OUTBY OUTPUT IT * LDA B40 JSB OUTCR WRITE 2 BLANKS LDA B40 JSB OUTCR * * * * * * OUTPUT CODE FIELDS. * LDA INST1 ISOLATE R BUS FIELD ALF,ALF ALF,RAR AND .+7 RAL MULTIPLY BY 2 ADA RTABL POINT TO ASCII LDB .+4 JSB OUTST OUTPUT IT * LDA INST1 ISOLATE S BUS RAR AND B17 * CLB CHECK FOR CONSTANT RIGHT OR LEFT CPA MCR AND SET FLAG CCB CPA MCL CCB STB JFLAG * RAL ADA STABL LDB .+4 JSB OUTST LDA B40 JSB OUTCR * LDA INST1 ISOLATE F FIELD AND .+1 ALF STA B LDA INST2 ALF AND B17 IOR B LDB JFLAG CPA MJMP ITS A JMP, CJMP OR JSB CCB CPA MJMP+1 CCB CPA MJSB CCB CPA MJSB+1 CCB CPA MCJMP CCB CPA MCJMP+1 CCB STB JFLAG -1 IF ITS A JUMP STB JFLG1 NEED TWO FLAGS. * RAL ADA FTABL LDB .+4 JSB OUTST LDA B40 JSB OUTCR * LDA INST2 ISOLATE STORE FIELD ALF,ALF AND B17 RAL ADA STTBL LDB .+4 JSB OUTST LDA B40 JSB OUTCR * * ISZ JFLAG JUMP INSTRUCTION? JMP MORE NO * * LDA INST2 YES. COMPUTE ADDRESS OF JUMP. ALF AND .+1 ALF,ALF RAL STA B BIT 9 LDA INST1 RAR,SLA ADB BIT8 BIT 8 ISZ JFLG1 IS THERE A CL OR CR IN S BUSS? CLB YES. USE ONLY 8 BITS FOR ADDRESS. LDA INST2 AND B177 BITS 7-0 ADA B JSB CONV CONVERT TO ASCII LDA .DG3 LDB .+4 JSB OUTBY OUTPUT ADDRESS * LDB OPTR CHECK FOR "P" IN ADB M19 S BUSS FIELD AND CLE,ERB IF ITS THERE, CHANGE LDA B,I IT TO "-" SEZ,RSS ALF,ALF AND B177 CPA ASCP IS IT THERE? RSS JMP END1 NO LDA ADJST YES. LOAD ADJUSTER SEZ,RSS ALF,ALF XOR B,I STA B,I * JMP END1 * * * * MORE LDA INST2 ISOLATE SPECIAL FIELD ALF,ALF ALF AND B17 RAL ADA SPTBL LDB .+4 JSB OUTST LDA B40 JSB OUTCR * LDA INST2 ISOLATE SKIP FIELD AND B17 RAL ADA SKTBL LDB .+4 JSB OUTST * END1 JSB DUMP JSB INIT * LDA MODE SZA,RSS JMP LOOP OUTPUT TYPE 1 * LDA INST2 CONVERT AND OUTPUT INSTRUCTION 2 JSB CONV LDA .OCT LDB .+5 JSB OUTST * LDA .DG1 LDB .+6 JSB OUTBY * JSB DUMP JMP LOOP * * * * * * INVERSE ASSEMBLY ONLY (OUTPUT 1). * OUTPUT THE OCTAL CODE AND GO TO THE INVERSE ASSEMBLY SECTION. * NXT1 LDA B40 JSB OUTCR LDA INST1 JSB CONV LDA .DG1 LDB .+6 JSB OUTBY LDA B40 JSB OUTCR LDA B40 JSB OUTCR LDA INST2 JSB CONV JMP NXT2 * * * .DG1 DEF DGT1 .DG3 DEF DGT3 .DG4 DEF DGT4 * RTABL DEF .RTAB STABL DEF .STAB FTABL DEF .FTAB STTBL DEF .STTB SPTBL DEF .SPTB SKTBL DEF .SKTB * .OCT DEF BOCTB * JFLAG NOP JFLG1 NOP BIT8 OCT 400 MJMP OCT 23,22 MJSB OCT 21,20 MCJMP OCT 31,24 MCR OCT 14 MCL OCT 15 * M19 DEC -19 ASCP OCT 120 ADJST OCT 175 M500 DEC -500 B17 OCT 17 B40 OCT 40 B100 OCT 100 MODE NOP HED SUBROUTINES * * INITIALIZE THE OUTPUT BUFFER. * INIT NOP LDA .OBUF RAL STA OPTR SET BYTE POINTER CLA STA OCNT CLEAR CHARACTER COUNTER JMP INIT,I * * * * * * DUMP THE OUTPUT BUFFER. * DUMP NOP LDA OCNT SET NEGETIVE CHR COUNT CMA,INA STA OCNT JSB EXEC DEF *+5 DEF .+2 DEF LUO .OBUF DEF OBUF DEF OCNT JMP DUMP,I * * * * * * OUT BYTES TO THE OUTPUT BUFFER. * ENTER WITH A = POINTER TO BUFFER WITH THE BYTES IN TH * LOW HALF OF EACH WORD AND B = COUNTER. * OUTBY NOP STA BYPTR SSB,RSS CMB,INB STB BYCNT * OTBY1 LDA BYPTR,I JSB OUTCR ISZ BYPTR ISZ BYCNT JMP OTBY1 JMP OUTBY,I * * * * * * OUTPUT CHARACTERS FROM A PACKED STRING. * ENTER WITH A = BUFFER POINTER AND B = CHARACTER COUNT. * OUTST NOP STA BYPTR SSB,RSS CMB,INB STB BYCNT * OTST1 LDA BYPTR,I ALF,ALF JSB OUTCR DO TOP BYTE ISZ BYCNT DONE? RSS JMP OUTST,I YES LDA BYPTR,I JSB OUTCR DO BOTTOM BYTE ISZ BYPTR ISZ BYCNT DONE? JMP OTST1 JMP OUTST,I YES * * * * * * WRITE 1 BYTE TO THE OUTPUT BUFFER. * ENTER WITH THE BYTE IN THE LOW ORDER BITS OF A. * OUTCR NOP AND B177 MASK A LDB OPTR CLE,ERB B = WORD POINTER SEZ PUTTING IN TOP BYTE? JMP *+3 NO ALF,ALF RSS IOR B,I STA B,I ISZ OPTR ISZ OCNT JMP OUTCR,I * OPTR NOP OCNT NOP BYPTR NOP BYCNT NOP B177 OCT 177 * * * * * * READ THE NEXT 2 WORD MICRO INSTRUCTION. * IF THE INPUT BUFFER IS EMPTY, READ A RECORD FROM LUI. * LEAVE THE INSTRUCTION IN "INST1,INST2". * NXTIN NOP ISZ ADRES BUMP ADDRESS COUNTER ISZ ICNT ANY LEFT? RSS JMP READ NO * NXIN1 LDA IPTR,I ISZ IPTR LDB IPTR,I ISZ IPTR DST INST1 JMP NXTIN,I * * READ JSB EXEC READ NEXT RECO5RD DEF *+5 DEF .+1 DEF LUI .IBUF DEF IBUF DEF P60 * ALF,RAL ALF,RAL SSA AT EOT? JMP DONE YES LDA .IBUF ADA .+3 STA IPTR SET POINTER LDA IBUF ALF,ALF AND B377 ADA .-5 ARS CMA,INA STA ICNT SET COUNTER LDA IBUF+1 SET ADDRESS COUNTER STA ADRES JMP NXIN1 * * * * * * ALL DONE . PUNCH LEADER, PRINT DONE MESSAGE AND STOP. * DONE JSB EXEC DEF *+4 DEF .+3 DEF LEDER DEF .-1 * JSB EXEC DEF *+5 DEF .+2 DEF .+1 DEF MSG DEF .+5 * JSB EXEC DEF *+2 DEF .+6 HLT 13B * * IPTR NOP ICNT DEC -1 B377 OCT 377 P60 DEC 60 ADRES NOP * * * * * * CONVERT THE NUMBER IN A TO SIX ASCII DIGITS AND LEAVE THEM * IN DGT1-DGT6. * CONV NOP LDB B60 SSA INB RAL STA CONVX SAVE THE NUMBER STB DGT1 AND THE FIRST DIGIT JSB CONV1 GET FIVE MORE STA DGT2 JSB CONV1 STA DGT3 JSB CONV1 STA DGT4 JSB CONV1 STA DGT5 JSB CONV1 STA DGT6 JMP CONV,I * CONV1 NOP LDA CONVX ALF,RAR NEXT 3 BITS TO LOW A STA CONVX AND .+7 ADA B60 JMP CONV1,I * CONVX NOP B60 OCT 60 DGT1 NOP DGT2 NOP DGT3 NOP DGT4 NOP DGT5 NOP DGT6 NOP HED CONSTANTS AND STORAGE * A EQU 0 B EQU 1 * DEC -10,-9,-8,-7,-6,-5,-4,-3,-2,-1 . DEC 0,1,2,3,4,5,6,7,8,9,10 * B300 OCT 300 B1000 OCT 1000 * * LUI OCT 5 LUO OCT 6 LEDER NOP INST1 NOP INST2 NOP * BOCTB ASC 3, OCT MSG ASC 5,MINV DONE * OBUF BSS 40 IBUF BSS 60 * * .RTAB EQU *+0 ASC 2,A ASC 2,B ASC 2,Q ASC 2,F ASC 2,CAB ASC 2,AAB ASC 2,CQ ASC 2,- * * .STAB EQU *+0 ASC 2,CIR $" ASC 2,IOI ASC 2,T ASC 2,M ASC 2,RRS ASC 2,CNTR ASC 2,ADR ASC 2,COND ASC 2,S4 ASC 2,S3 ASC 2,S2 ASC 2,S1 ASC 2,CR ASC 2,CL ASC 2,P ASC 2,- * * .FTAB EQU *+0 ASC 2,RFI ASC 2,RFE ASC 2,P1A ASC 2,MPY ASC 2,DIV ASC 2,SUB ASC 2,DEC ASC 2,** ASC 2,INCO ASC 2,INC ASC 2,ADDO ASC 2,ADD ASC 2,AND ASC 2,NOR ASC 2,XOR ASC 2,** ASC 2,JSB ASC 2,JSB ASC 2,JMP ASC 2,JMP ASC 2,CJMP ASC 2,RSB ASC 2,LGS ASC 2,CRS ASC 2,ARS ASC 2,CJMP ASC 2,LWF ASC 2,CFLG ASC 2,SFLG ASC 2,CLO ASC 2,SOV ASC 2,IOR * * .STTB EQU *+0 ASC 2,IOO ASC 2,M ASC 2,T ASC 2,IR ASC 2,S4 ASC 2,S3 ASC 2,S2 ASC 2,S1 ASC 2,P ASC 2,F ASC 2,Q ASC 2,CAB ASC 2,AAB ASC 2,B ASC 2,A ASC 2,- * * .SPTB EQU *+0 ASC 2,RSS ASC 2,L1 ASC 2,R1 ASC 2,CNTR ASC 2,SRG1 ASC 2,SRG2 ASC 2,AAB ASC 2,LEP ASC 2,ECYZ ASC 2,ECYN ASC 2,ASG1 ASC 2,ASG2 ASC 2,CW ASC 2,IOG1 ASC 2,RW ASC 2,- * * .SKTB EQU *+0 ASC 2,ICTR ASC 2,RPT ASC 2,ODD ASC 2,NEG ASC 2,COUT ASC 2,OVF ASC 2 FLG ASC 2,TBZ ASC 2,CTRI ASC 2,CTR ASC 2,NMPV ASC 2,AAB ASC 2,NAAB ASC 2,EOP ASC 2,UNC ASC 2,- * * END START X$   22682-18053 1701 SC 0122 RTDMO              H0101 yFTN4,L C PROGRAM RTE3(3,75) C C *** HP 2640 SERIES & FILE MANAGER DEMO ROUTINE *** C C WRITTEN BY: LARRY W. SMITH C C REGION: DATA SYSTEMS, CUPERTINO, CALIFORNIA C C DATE: 4/17/75 C C A. PURPOSE C ------- C C THIS PROGRAM ALLOWS THE USER TO ENTER A COMMAND(INQUIRY) AND DISPLAY C ONE OF 100 PAGES OF DATA TO THE CRT. THE FOLLOWING INQUIRIES HAVE BEEN C IMPLEMENTED: C C COMMAND FUNCTION C ------- -------- C C 0 - 99 DISPLAY A SELECTED PAGE OF DATA. IN GENERAL, ANY TWO C LETTERS CAN BE ENTERED AND THE FILE CORRESPONDING C FILE NAMED 'RTEXX' WHERE XX=TWO LETTERS WILL BE LOADED. C IF THE FILE CANNOT BE FOUND OR IS NOT TYPE 3 OR 4, THE C FOLLOWING ERROR MESSAGES MIGHT RESULT: C C UNKNOWN INQUIRY. RESPONSES ARE: 0 - 99 OR EX C C - OR - C C DATA IS OF WRONG TYPE. C C THE USER MUST NOW ENTER ANOTHER INQUIRY. C C EX EXIT DEMO ROUTINE AND RETURN TO FILE MANAGER. C C C SINCE THE NATURE OF THIS ROUTINE LENDS ITSELF TOWARD A GENERAL ASCII C MESSAGE PROCESSOR(PAGE ORIENTED), IT CAN BE USED TO IMPLEMENT AND C DISPLAY ANY DESIRED DATA BASE WITH LIMITS TAILORED TO THE 2640 SCREEN., C I.E. 23 LINES WITH 132 CHARACTERS EACH WHERE LINE 24 IS RESERVED FOR C THE CURSER. THIS PROGRAM IS OPERATING IN BACKGROUND WITH ITSELF UNDER C THE NAME OF 'RTE3' WHICH SERVES THE PURPOSE(AS FAR AS THE USER KNOWS) C OF DISPLAYING FEATURES OF THE NEW RTE-III REAL-TIME OPERATING SYSTEM. C IT ALSO HAS THE FUNCTION OF COLORING AN APPROPRIATE AREA ON THE TV C SCREEN BEFORE EACH COMMAND IS ENTERED. C C C C. PROGRAM INITIALIZATION C ---------------------- C C *RU,RTE3[,P1] C C - OR - C C *ON,RTE3[,P1] C C P1 --> CRT LOGICAL UNIT (DEFAULT=7) C C C ********************************* C * * C * W A R N I N G S * C * * C ********************************* C C OPERATING THE DEMO C ------------------ C C 1. DO NOT ABORT THE DEMO FROM ANOTHER TERMINAL WITH AN 'OF' C COMMAND DUE TO THE FACT THAT THE TERMINAL RUNNING THE DEMO C IS DISENABLED DURING THE ENTIRE TIME AND ABORTION WILL LEAVE C THE TERMINAL PERMANENTLY DISABLED OR UNTIL SOMEONE SMARTLY C ':CN,LUN,20B' TO ENABLE IT. C C C DATA FILE EDITING C ----------------- C C 1. THE RTE INTERACTIVE EDITOR (EDITR) HAS A MAXIMUM RECORD LENGTH C OF 150 CHARACTERS. BE CAREFUL NOT TO EXCEED THIS LENGTH SINCE C EDITOR TRUNCATES BEYOND 150 CHARACTERS. C C 2. IF MORE THAN 150 CHARACTERS IS NEEDED ON A LINE, THE RECORD MUST C BE BROKEN UP INTO TO MULTIPLE RECORDS (NOT TO EXCEED 200 CHARS) C WITH A BACKARROW ('SHIFT DEL') AS THE TRAILING CHARACTER. RECALL, C THE BACKARROW CAUSES THE CURSOR TO REMAIN AT THE END OF THE C RECORD ON THE SCREEN . C C 3. WHEN EDITING A DATA FILE, YOU MUST PUT IT BACK UNDER THE SAME C NAME OR ELSE THE DEMO ROUTINE WILL NOT BE ABLE TO LOCATE IT. C C 4. IF A NEW PAGE IS DESIRED, SIMPLY CREATE A FILE NAME WITH THE NAME C C RTE3XX XX=TWO CHARACTERS C C AND THEN ENTER A COMMAND CORRESPONDING TO THE TWO CHARACTERS. C C EQUIVALENCE (A,IQ,IA),(IQ(2),IB),(LUN(1),LUN1) COMMON LUTTY INTEGER LUN(5),IQ(2),PAGE(100,23),NWL(23) INTEGER ERAS(10),FNAME(3),DCB(144),TASK(5) INTEGER ER1(39),ER2(14),ER3(8) INTEGER MSG1(18) C DATA FNAME/2HRT,2HE3,2H00/ C DATA MSG1/2HH,2HJ,2H&,2Ha1,2H4r,2H35,2HC,2H&d,2HBE,2HXI,2HT , -2H D,2HEM,2HO,2H&a,2H24,2Hr0,2HC / C DATA ERAS/2HS,2H&,2HdJ,2HIN,2HQU,2HIR,2HY?,2H&,2Hd@,2H _/ C DATA ER1/2H&,2HdB,2H U,2HNK,2HNO,2HWN,2H I,2HNQ,2HUI,2HRY,2H.,  -2H&d,2H@ ,2H R,2HES,2HPO,2HNS,2HES,2H A,2HRE,2H: ,2H ,2H&d,2HD0, -2H&,2Hd@,2H -,2H ,2H&d,2HD9,2H&,2Hd@,2H O,2HR ,2H&, -2HdD,2HEX,2H&,2Hd@ / C DATA ER2/2HFI,2HLE,2H I,2HS ,2HOF,2H W,2HRO,2HNG,2H D,2HAT,2HA , -2HTY,2HPE,2H. / C DATA ER3/2HDI,2HSC,2H R,2HEA,2HD ,2HER,2HRO,2HR./ C C... PICK-UP TERMINAL LOGICAL UNIT ... C CALL RMPAR(LUN1) C C... ESTABLISH ACTUAL TERMINAL LOGICAL UNIT ... C LUTTY=LUN1 IF(LUN1.EQ.0) LUTTY=1 C C... FORM CONTROL BITS FOR DISENABLING THE TERMINAL FROM INTERRUPTS ... C LUTDS=IOR(LUTTY,2100B) C C... DISENABLE THE TERMINAL FROM INTERRUPTIONS & SET ECHO BIT ... C CALL EXEC(3,LUTDS) LUTTY=IOR(LUTTY,400B) C C... HOME CURSOR, CLEAR SCREEN, AND PRINT INTRODUCTORY MESSAGE ... C 229 FNAME(3)=2HXX GO TO 888 C C *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* C . . C * POINT OF RETURN AFTER EACH COMMAND * C . . C *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* C C 220 CALL EXEC(2,LUTTY,ERAS,10) C C... INPUT INQUIRY ... C 890 A=REIO(1,LUTTY,TASK,1) C C... CHECK FOR DEVICE TIME-OUT(OR CRTL D) --> TRANSMISSION = 0 C IF TIME-OUT OCCURS, DISPLAY INTRODUCTORY SCREEN ... C IF(IB.EQ.0) GO TO 229 C C... DETERMINE IF INQUIRY IS LEGAL ... C IF(TASK.EQ.2HEX) GO TO 5 C C... NOW, CHECK FOR PAGES 00 - 99 ... C C ********************************************************************* C * * C * 0-99 --> DISPLAY SELECTED PAGE FROM DISC DATA FILE * C * * C ********************************************************************* C FNAME(3)=TASK 888 CALL OPEN(DCB,IERR,FNAME,1) C C... CHECK FOR TYPE 3 OR 4 FILE ONLY ... C IF(IERR.EQ.-6) GO TO 238 IF(IERR.EQ.3.OR.IERR.EQ.4)]q GO TO 231 C C... DATA FILE IS NOT TYPE 3 OR 4 -- THEREFORE CANNOT DISPLAY IN ASCII ... C CALL EXEC(2,LUTTY,ER2,-27) 777 CALL CLOSE(DCB) GO TO 220 C C... COMMAND IS ASSUMED TO BE UNDEFINED SINCE THE FILE COULD NOT BE C FOUND ... C 238 CALL EXEC(2,LUTTY,ER1,-78) GO TO 220 C C... FILE HAS BEEN OPENED NON-EXCLUSIVELY -- NOW ATTEMPT TO LOAD IT INTO C CORE BUFFER AREA ... C 231 IREC=1 233 CALL READF(DCB,IERR,PAGE(1,IREC),100,LEN) C C... IF FILE READ ERROR, ABORT & CLOSE FILE & INFORM USER ... C IF(LEN.EQ.-1) GO TO 300 IF(IERR.NE.0) GO TO 234 GO TO 232 C C... FILE READ ERROR HAS OCCURRED ... C 234 CALL EXEC(2,LUTTY,ER3,-16) GO TO 777 C C... CURRENT RECORD HAS BEEN RETRIEVED OK -- NOW GET SOME MORE ... C 232 NWL(IREC)=LEN IREC=IREC+1 GO TO 233 C C... FILE READ COMPLETE --- NOW DUMP TO CRT ... C 300 DO 310 NR=1,IREC-1 310 CALL EXEC(2,LUTTY,PAGE(1,NR),NWL(NR)) C C... GO AND CLOSE FILE FOR NEXT TIME ... C GO TO 777 C C ************************************* C * * C * EX --> EXIT DEMO ROUTINE * C * * C ************************************* C 5 CALL EXEC(2,LUTTY,MSG1,-35) C C... ENABLE THE TERMINAL ... C CALL EXEC(3,IAND(LUTDS,2077B)) C END END$ HJ&a3r21C&dATHE UNBEATABLE REAL-TIME EXECUTIVE&d@ &a6r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a7r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a8r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a9r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ɠ &dB &d@ &a10r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a11r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a12r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a13r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a14r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a15r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a16r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a17r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a18r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a19r4C&dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &dB &d@ &a23r0C HJ&a3r24C&dB WELCOME TO HEWLETT - PACKARD  &a5r5CIF YOU ARE INVOLVED IN MANUFACTURING, BUSINESS, INDUSTRIAL PROCESS &a6r5CCONTROL OR RESEARCH AND DEVELOPMENT, YOU HAVE SIGNIFICANT COMPUTATIONAL &a7r5CNEEDS. YOU MAY WANT TO CAPTURE OR PROCESS DATA IN REAL-TIME WHILE YOUR &a8r5CPROGRAMMERS ARE CONCURRENTLY DEVELOPING NEW METHODS AND YOU WANT TO &a9r5CSUPPLY ON THE SPOT MANAGEMENT REPORTS W/O INTERRUPTING OTHER EVENTS. &a10r5C&dBHEWLETT-PACKARD&d@ WHO HAS BEEN PROVIDING USERS WITH PROVEN REAL-TIME &a11r5COPERATING SYSTEMS SINCE 1968 AND HAS OVER FIVE HUNDRED SUCCESSFUL INSTAL- &a12r5CLATIONS ALL OVER THE WORLD NOW INTRODUCES &dBRTE-III&d@ WITH MEMORY EXPANDABLE &a13r5CTO&dB HALF A MILLION BYTES&d@ AND THE FLEXIBILITY OR PROGRAMMING IN &dBFORTRAN,&d@ &a14r5C&dBALGOL&d@, &dBASSEMBLY&d@ AND &dBREAL-TIME BASIC&d@! &a18r5C&dDIF YOU WOULD LIKE TO KNOW MORE -- PLEASE SELECT INQUIRYY COMMAND. &a23r0C HJ&a2r35C&dB R T E I I I  &a4r8C&dB* 1 *&d@ &dDUP TO 512K BYTES OF SEMICONDUCTOR MEMORY &a6r8C&dB* 2 *&d@ &dDREAL-TIME MULTIPROGRAMMING IN FORTRAN, ALGOL, ASSEMBLY &a7r15C&dDAND MULTI-USER REAL-TIME BASIC&d@. &a9r8C&dB* 3 *&d@ &dDEFFICIENT INPUT/OUTPUT OPERATIONS &a11r8C&dB* 4 *&d@ &dDSCHEDULING AND INTERRUPT PROCESSING &a13r8C&dB* 5 *&d@ &dDMULTI-TERMINAL OPERATION &a15r8C&dB* 6 *&d@ &dDFILE MANAGEMENT, BATCH AND SPOOLING &a17r8C&dB* 7 *&d@ &dDEASE OF IMPLEMENTING YOUR PROJECT &a19r8C&dB* 8 *&d@ &dDSYSTEM INTEGRITY &a21r8C&dB* 9 *&d@ &dDNETWORKING AND DISTRIBUTED PROCESSING &a23r0C HJ&a3r28C&dB  &a4r28C&dB DYNAMIC MEMORY MANAGEMENT  &a5r28C&dB  &a9r7C* UP TO HALF A MILLION BYTES OF RELIABLE SEMICONDUCTOR MEMORY  &a11r7C* EFFICIENT PROGRAM EXECUTION &a13r7C* FAST RESPONSE TO CRITICAL REAL-TIME TASKS &a15r7C* UP TO 64 PROGRAMS IN MEMORY AT ONE TIME -- READY TO EXECUTE &a17r7C* NO INEFFICIENT MEMORY FRAGMENTATION OR WAIT FOR RELOCATION &a23r0C HJ&a3r21C&dB  &a4r21C&dB MULTI-LINGUAL MULTI-USER CONCURRENT  &a5r21C&dB PROGRAM DEVELOPMENT  &a6r21C&dB  &a8r8CRTE-III ALLOWS THE USER TO GET HIS PROJECT IMPLEMENTED QUICKLY &a9r5CTHROUGH THE USE OF HIGH-LEVEL EASY TO USE SOFTWARE TOOLS SUCH AS: &a11r7C* CONCURRENT MULTI-USER &dAREAL-TIME BASIC &a13r7C* FORTRAN, ASSEMBLY & ALGOL &a15r7C* AND INTERACTIVE 'SUPER EDITOR' &a17r7C* LOADER AND DEVICE DRIVERS &a19r7C* DAS AND ISA FORTRAN LIBRARY WITH EXTENDED BASIC CALLS FOR &a21r9CDATA ACQUISITION &a23r7C* TRACE AND SIMULATION CALLS IN BASIC TO FACILITATE EASY DEBUGGING &a24r0C HJ&a3r21C&dB  &a4r21C&dB SCHEDULING AND INTERRUPT PROCESSING  &a5r21C&dB  &a8r5CRTE-III PROVIDES A FLEXIBLE MEANS OF GRANTING PROCESSING TIME TO &a9r3CHIGHER PRIORITY TASKS TO GET THE WHOLE JOB DONE IN THE MOST EFFICIENT &a10r3CMANNER WITHOUT NEGLECTING REAL-TIME NEEDS. &a13r7C* TASKS MAY BE SCHEDULED BY: &a15r9C&dATIME&d@, ANOTHER PROGRAM, OPERATOR COMMAND, &dAEXTERNAL INTERRUPT &a17r7C* 32767 LEVELS OF PRIORITY FOR TASKS &a19r7C* AUTOMATIC SWAPPING OF DISC RESIDENT PROGRAMS &a21r7C* PRIVILEGED INTERRUPT HANDLING FOR EXTRA HIGH PRIORITY OR &a23r7C HIGH FREQUENCY THROUGHPUT &a24r0C HJ&a3r27C&dB  &a4r27C&dB MULTI-TERMINAL OPERATION  &a5r27C&dB  &a12r7C* DATA MANAGEMENT &a14r7C* INTERACTIVE PROGRAM DEVELOPMENT IN FORTRAN, ALGOL, &a16r9CAND MULTI-USER REAL-TIME BASIC &a24r0C HJ&a3r19C&dB  &a4r19C&dB FILE MANAGEMENT AND BATCH SPOOL MONITOR  &a5r19C&dB  &a10r7C* HIGH-SPEED RANDOM AND SEQUENTIAL FILE ACCESS &a12r7C* DEVICE INDEPENDENCE &a14r7C* &dAMULTI-INPUT BATCH&d@ JOB STREAMS &a16r7C* INPUT / OUTPUT SPOOLING &a18r7C* REMOTE SATELLITE FILE ACCESS &a20r7C* FILE SECURITY &a24r0C HJ&a3r21C&dB  &a4r21C&dB EASE OF IMPLEMENTATION & CONTROL  &a5r21C&dB   &a8r5CRTE-III SAVES TIME AND MONEY IN GETTING THE OPERATION UPЊ0.* AND GOING &a9r3CQUICKLY WITH RELIABLE SOFTWARE AND SIMPLE OPERATOR-ORIENTED COMMANDS. &a12r7C* EASY INTERACTIVE SYSTEM GENERATION &a14r7C* CONTROL THROUGH 19 OPERATOR REQUESTS OR 15 PROGRAM-PROGRAM REQUESTS &a16r7C* RELIABLE HP 21MX COMPUTER HARDWARE &a18r7C* FULLY DOCUMENTED HARDWARE AND SOFTWARE SUPPORT MANUALS &a20r7C* LOW COST MAINTENANCE PROGRAM &a22r7C* RTE FAMILY OF REAL-TIME SOFTWARE (RTE-II, RTE-C, RTE-B) &a24r9CPROVEN IN OVER 800 INSTALLATIONS &a24r0C HJ&a2r31C&dB  &a3r31C&dB SYSTEM INTEGRITY  &a4r31C&dB  &a7r5CRTE-III PREVENTS TIME AND INFORMATION LOSS IN CASE OF SYSTEM FAILURE &a8r3CAND PROTECTS PROGRAMS FROM DESTROYING EACH OTHER OR THE SYSTEM, THUS &a9r3CELIMINATING TIME CONSUMING RECOVERY AND RE-PROGRAMMING PROCEDURES. &a11r14CT H I S I M P O R T A N T P R O T E C T I O N &a13r16C I S F A C I L I T A T E D T H R O U G H &a15r7C* POWER FAIL / AUTO RESTART &a17r7C* MEMORY PROTECT FENCES &a19r7C* DISC TRACK PROTECTION AND FILE SECURITY &a21r7C* INDIVIDUAL PARTITION PROTECTION FOR UP TO &dA64 PARTITIONS &a23r7C* DEVICE TIME-OUT &a23r0C HJ&a2r21C&dB  &a3r21C&dB NETWORKS AND DISTRIBUTED PROCESSING  &a4r21C&dB  &a7r12C&dARTE-III DISTRIBUTED SYSTEMS PROVIDE FLEXIBILITY THROUGH &a9r7C* MANY TYPES OF SATELLITES &a11r7C* EASY DOWN-LOADING PROGRAMS DEVELOPED AT CENTRAL CONTROL COMPUTER &a13r7C* REMOTE FILE ACCESS &a15r7C* SHARING PERIPHERALS &a17r7C* NETWORK COMMUNICATION &a19r7C* MULTI-SATELLITE REDUNDANCY &a23r0C 0   22682-18054 1701 SC 0122 LISTF - SELECTIVE FMGR  DIRECTORY LISTER             H0101 FTN,L PROGRAM LISTF C LISTF PRODUCES A SELECTIVE LIST OF THE FILES ON RTE DISKS. C ONE CAN SELECT FILES BY TYPE, CR, APPEARANCE OF SPECIFIED C CHARACTERS IN ANY OF THE 6 FILENAME CHARACTER POSITIONS, OR C FILES HAVING A SPECIFIED NUMBER OF EXTENSIONS. THE LOGICAL C "AND" OF ANY OF THE ABOVE CAN BE USED TO SELECT THE FILES TO BE C IN THE LIST. C C CALL LISTF BY: RU,LISTF,INLU,OUTLU C INLU IS THE DIALOG DEVICE AND DEFAULTS TO 1 IF OMITTED. C OUTLU IS THE OUTPUT DEVICE AND DEFAULTS TO INLU IF OMITTED. C IF OUTLU=2 OUTPUT GOES TO FILE LISTXX IN PROCEDURE FILE FORMAT. C (SEE COMMENTS AND FORMAT NEAR STATEMENT LABEL 370). C C LISTF PROMPTS FOR NAME,TYPE,CR,EXTENTS FIELDS WITH COMMAS SEPARATING C FIELDS. NULL FIELD MEANS ANY VALUE ACCEPTED. THE NAME FIELD C CAN HAVE MINUS IN ANY OF THE SIX POSITIONS TO MEAN ANY CHARACTER C ACCEPTED IN THAT POSITION. C C OCTAL VALUES USED FOR ASCII CHARACTERS THAT ARE IN R1 FORMAT: C 40B SPACE, 54B COMMA, 55B MINUS, 60B ZERO ... 71B NINE. C C W. KANTROWITZ NOVEMBER 1976 C M.I.T. LINCOLN LABORATORY C DIMENSION IPARM(5),IFILT(30),IUSER(30) DIMENSION IBUFR(128),IBUFCL(128) DIMENSION IDCB(144),INAM(3),ISIZ(2) DIMENSION IFOBF(22) LOGICAL FILE EQUIVALENCE (IPARM(1),INLU),(IPARM(2),IOUT) DATA IBUFL/128/ DATA FILE/.FALSE./ DATA INAM/2HLI,2HST,2HXX/ DATA ISIZ/-1,0/,MTYP/4/,MRECSZ/20/ C CALL RMPAR(IPARM) IF (INLU .LE. 0) INLU=1 IF (IOUT .LE. 0) IOUT=INLU C GET LAST TRACKS FOR DISKS ITRK=IGET(1756B)-1 ISECT=0 CALL EXEC(1,102B,IBUFCL,IBUFL,ITRK,ISECT) WRITE(INLU,101) 101 FORMAT(" ENTER NAME (MINUS=ANY CHAR),TYPE,CR,EXT (NULL=ANY)") IF (IOUT .NE. 2) GOTO 170 C INIT FILE OUTPUT BY PURGING OLD, THEN CREATING NEW "LISTXX" FILE FILE=.TRUE. CALL PURGE(IDCB,IERR,INAM) CALL CREAT(IDCB,IERR,INAM,ISIZ,MTYP) IF (IERR .LT. C0) GOTO 950 JCNT=0 GOTO 170 C C RESPONSE LOOP: PROMPT FOR MORE USER REQUESTS C 150 CONTINUE WRITE (INLU,161) 161 FORMAT(/1X,"MORE NAMES? TERMINATE WITH CONTROL D") 170 CONTINUE JLCNT=0 C GET PARAMETERS SPECIFYING FILE(S) USER WANTS C FIRST INIT BUFFER TO 377B, SO CAN TELL WHEN USER PARMS ARE OVER DO 207 I=1,30 207 IUSER(I)=377B READ (INLU,211)(IUSER(I),I=1,25) 211 FORMAT(25R1) IF (IUSER(1) .EQ. 377B) GOTO 500 C DO 214 I=1,6 214 IFILT(I)=40B IF (IUSER(1) .NE. 54B) GOTO 220 C NULL FIELD MEANS ALL FILENAMES, SO AS IF 6 MINUSES DO 215 I=1,6 215 IFILT(I)=55B I=1 GOTO 230 220 DO 221 I=1,7 IF (IUSER(I) .EQ. 40B) GOTO 230 IF (IUSER(I) .EQ. 54B) GOTO 230 221 IFILT(I)=IUSER(I) GOTO 900 C C GET FILETYPE, IF ANY 230 ITYP=ICONV(IUSER,I) IF (ITYP .EQ. -1) GOTO 900 C C GET CR, IF ANY ICR=ICONV(IUSER,I) IF (ICR .EQ. -1) GOTO 900 C C GET EXT, IF ANY IUEXT=ICONV(IUSER,I) IF (IUEXT .EQ. -1) GOTO 900 IF ((IUEXT .EQ. -2) .AND. (FILE .EQ. .TRUE.)) IUEXT=0 C IF (FILE .EQ. .TRUE.) GOTO 290 WRITE(IOUT,289) 289 FORMAT(" NAME TYPE BLKS CR EXT") 290 CONTINUE C C OUTER LOOP: WORK ON EACH CR IN THE CARTRIDGE LIST C DO 400 K=1,123,4 IF (IBUFCL(K) .EQ. 0) GOTO 401 IF ((ICR .NE. -2) .AND. (ICR .NE. IBUFCL(K+2))) GOTO 400 ICNWD=IBUFCL(K)+100B ISECT=0 ITRK=IBUFCL(K+1) IF (IBUFCL(K) .EQ. 2) ISECT=14 300 CALL EXEC(1,ICNWD,IBUFR,IBUFL,ITRK,ISECT) C C MIDDLE LOOP: PROCESS EACH BLOCK OF 8 FILES C DO 390 J=1,127,16 C SKIPPED PURGED FILE IF (IBUFR(J) .EQ. 177777B) GOTO 390 IF (IBUFR(J) .EQ. 0) GOTO 400 IF (IAND(IBUFR(J),100000B) .NE. 100000B) GOTO 310 NSETR=IBUFR(J+6) GOTO 390 C C INNER LOOP: CHECK FILE NAME C 310 DO 320 I=0,2 IF (IFILT(2*I+1) .EQ. 55B) GOTO 315 IF)7(IBUFR(J+I)/400B .NE. IFILT(2*I+1)) GOTO 390 C SO FAR CHAR IN LEFT HALF OK 315 IF (IFILT(2*I+2) .EQ. 55B) GOTO 320 IF (IAND(IBUFR(J+I),377B) .NE. IFILT(2*I+2)) GOTO 390 C BOTH CHARS GOOD 320 CONTINUE C C END OF INNER LOOP, FILENAME PASSES TEST C C CHECK FILETYPE IF (ITYP .EQ. -2) GOTO 330 IF (IBUFR(J+3) .NE. ITYP) GOTO 390 C CHECK EXTENSIONS 330 CONTINUE IEXT=IAND(IBUFR(J+5),177400B)/400B ISIZE=IBUFR(J+6)/2 C SET ISIZE TO 0 IF FILETYPE 0 IF (IBUFR(J+3) .EQ. 0) ISIZE=0 IF (IUEXT .EQ. -2) GOTO 340 IF (IBUFR(J+3) .NE. 0) GOTO 335 IF (IUEXT .EQ. 0) GOTO 340 GOTO 390 335 IF (IUEXT .NE. IEXT) GOTO 390 340 CONTINUE IF (FILE .EQ. .TRUE.) GOTO 370 IF (IBUFR(J+3) .EQ. 0) GOTO 355 IF (IEXT .EQ. 0) GOTO 350 C OUTPUT ENTRY THAT IS AN EXTENSION WRITE (IOUT,347)(IBUFR(J+I),I=0,3),ISIZE,IBUFCL(K+2),IEXT 347 FORMAT(1X,3A2,3I6,I4) GOTO 389 C OUTPUT ENTRY THAT IS NOT AN EXTENSION 350 WRITE (IOUT,351)(IBUFR(J+I),I=0,3),ISIZE,IBUFCL(K+2) 351 FORMAT(1X,3A2,3I6) GOTO 389 C OUTPUT ENTRY FOR FILETYPE 0 355 ILUN=IAND(IBUFR(J+4),77B) WRITE(IOUT,356)(IBUFR(J+I),I=0,3),ILUN,IBUFCL(K+2) 356 FORMAT(1X,3A2,I6," LU ",I2,I6) GOTO 389 C OUTPUT INFO INTO FILE: ':--,NAME::CR:TYPE,NAME::::SIZE' 370 CALL CODE WRITE(IFOBF,375)(IBUFR(J+I),I=0,2),IBUFCL(K+2), + IBUFR(J+3),(IBUFR(J+I),I=0,2),ISIZE 375 FORMAT(":--,",3A2,"::",I6,":",I5,",",3A2,"::::",I5) C WRITE 40 CHARS (ABOVE FORMAT) CALL WRITF(IDCB,IERR,IFOBF,MRECSZ) IF (IERR .LT. 0) GOTO 950 C 389 JCNT=JCNT+1 JLCNT=JLCNT+1 390 CONTINUE C C END MIDDLE LOOP C C GET TO NEXT DIRECTORY BLOCK ISECT=ISECT+14 IF (ISECT .GE. NSETR) ISECT=ISECT-NSETR IF (ISECT .EQ. 0) ITRK=ITRK-1 GOTO 300 400 CONTINUE C C END OUTER LOOP C C NOW TELL USER HOW MANY ENTRIES PRODUCED 401 WRITE(INLU,411)JLCNT 411 ~FORMAT(5X,I5," ENTRIES.") GOTO 150 C C END RESPONSE LOOP C 500 IF (FILE .EQ. .FALSE.) GOTO 1000 C TRUNCATE, CLOSE FILE CALL LOCF(IDCB,IERR,IREC,IRB,IOFF,ISEC) IF (IERR .LT. 0) GOTO 950 I=ISEC/2-IRB-1 CALL CLOSE(IDCB,IERR,I) IF (IERR .LT. 0) GOTO 950 WRITE(INLU,511)JCNT 511 FORMAT(5X,I5," TOTAL NUMBER OF ENTRIES.") GOTO 1000 C C ERROR MESSAGES C 900 WRITE (INLU,901) 901 FORMAT (" PARAMETER ERROR") GOTO 150 950 WRITE(INLU,951) IERR 951 FORMAT(1X,"FMP ERROR ",I5) C C END C 1000 CONTINUE CALL EXEC(6,0,0,INLU,IOUT) END FUNCTION ICONV(IUSER,I) LOGICAL CONT DIMENSION IUSER(30) C IUSER: CHAR BUFFER (R1 FORMAT), I: OFFSET INTO BUFFER C RETURN: ICONV =BINARY VALUE OF INTEGER, =-1 ILLEGAL, =-2 NULL. ICONV=0 CONT=.FALSE. 2000 I=I+1 IF (IUSER(I) .EQ. 54B) GOTO 2050 IF (IUSER(I) .EQ. 377B) GOTO 2050 IF (IUSER(I) .EQ. 40B) GOTO 2000 IF ((IUSER(I) .GE. 60B) .AND. (IUSER(I) .LE. 71B)) GOTO 2042 GOTO 2900 2042 ICONV=ICONV*10+IUSER(I)-60B CONT=.TRUE. GOTO 2000 2050 IF (CONT .EQ. .FALSE.) ICONV=-2 RETURN 2900 ICONV=-1 RETURN END END$   22682-18055 1701 SC 0122 EQTXX              H0101 ASMB,R,B,L,C NAM EQTXX,7 ENT EQGET,EQAND,EQIOR ENT EQXOR,EQSET EXT .ENTR,$LIBR,$LIBX * * WRITTEN BY P.A.SWARTZ * HUGHES AIRCRAFT, TEL, TUCSON, AZ * 3/14/76 * * * * * * THIS PROGRAM IS TO AID IN MESSING UP EQT ENTRIES. * THE LOGICAL UNIT OR EQT #(LUEQ) AND THE RELATIVE WORD * OF THE EQT ENTRY(IWORD) ARE ALWAYS PASSED. * LUEQ IS + FOR LU OR - FOR EQT. * * * * * GET THE ADDRESS OF A WORD IN AN EQT ENTRY. * CALL(LUEQ,IWORD,IVALU,IADR) * EXIT WITH A AND IVALU = CONTENTS OF THE WORD AND B AND * IADR = THE ADDRESS OF THE WORD. * EQGET NOP JSB ENTRY STA PRM1,I STB PRM2,I JMP ENTRX,I * * * * * * TAKE THE LOGICAL AND OF A GIVEN MASK WITH THE WORD AND STORE IT * BACK IN THE EQT TABLE. * CALL EQAND(LUEQ,IWORD,MASK) * EXIT WITH A = RESULTING WORD VALUE AND B = ADDRESS OF EQT WORD. * EQAND NOP JSB ENTRY AND PRM1,I EXIT JSB .SET JMP ENTRX,I * * * * * * SAME AS EQAND BUT DO A LOGICAL INCLUSIVE OR. * EQIOR NOP JSB ENTRY IOR PRM1,I JMP EXIT * * * * * * SAME AS EQAND EXCEPT DO EXCLUSIVE OR * EQXOR NOP JSB ENTRY XOR PRM1,I JMP EXIT * * * * * * SET THE EQT WORD TO THE VALUE OF PRM1,I * EQSET NOP JSB ENTRY LDA PRM1,I JMP EXIT * * * * * * CENTRAL ENTRY POINT AND PARAMETER POPPER. * ENTRY NOP LDA ENTRY ADA M2 LDA A,I STA ENTRX JMP ENTRX+1 * * LUEQ NOP WORD NOP PRM1 NOP PRM2 NOP ENTRX NOP JSB .ENTR DEF LUEQ LDA LUEQ,I LDB WORD,I JSB .EQGT GET ADDRESS AND CONTENTS OF EQT WORD JMP ENTRY,I * * * * * * * SUBROUTINE TO GET AN EQT WORD VALUE AND ADDRESS. * ENTER WITH A = LU OR EQT AND B = DESIRED WORD, BASED FROM 1. * EXIT WITH VALUE IN A AND ADDRESS IN B. * IF LU OR EQT IS ILLEGAL, EXIT WITH B = 0. * .EQGT NOP a   STB WORD SAVE WORD * ADB M1 CHECK WORD FOR 1-15 SSB JMP POOP ADB M15 SSB,RSS JMP POOP * SSA JMP EQGT1 EQT # GIVEN. * LDB A CMB,INB ADB LUMAX SSB JMP POOP ILLEGAL LU. * ADA M1 ADA DRT POINTER TO LU-EQT LINK LDA A,I AND B77 ISOLATE EQT #. RSS * EQGT1 CMA,INA MAKE EQT POSITIVE LDB A CMB,INB ADB EQT# SSB JMP POOP ILLEGAL EQT # * ADA M1 STA B EQT - 1 CMB,INB ALF ADB A * 15 ADB EQTA WORD 0 OF EQT ENTRY ADB WORD ADB M1 ADDRESS OF DESIRED WORD LDA B,I JMP .EQGT,I * * POOP CLB JMP .EQGT,I * * * * * * STORE INTO PROTECTED MEMORY. * ENTER WITH VALUE IN A AND ADDRESS IN B. * .SET NOP JSB $LIBR NOP STA B,I JSB $LIBX DEF .SET * * * * * A EQU 0 B EQU 1 * M2 DEC -2 M1 DEC -1 M15 DEC -15 B77 OCT 77 * EQTA EQU 1650B EQT# EQU 1651B DRT EQU 1652B LUMAX EQU 1653B * END #W   22682-18056 1701 SC 0122 21MX MICROCODE .PACK AND .FLUN             H0101 GASMB,R,L,X NAM TEST,6 ENT TEST,MACRO EXT .PACK,EXEC SPC 3 TEST NOP CLA STA NUMBR * JSB EXEC DEF *+3 DEF .30 DEF .30 * LDB .M5 STB TCNT LOOP CLB LDA NUMBR OTA 1 JSB .PACK EX1 DEC -15 STA ASAVE STB BSAVE * MICRO CLB LDA NUMBR MACRO OCT 105621 EX2 DEC -15 * CPA ASAVE RSS HLT 1 * CPB BSAVE RSS HLT 2 * * NEXTN ISZ NUMBR JMP LOOP * LDA EX1 ADA .10 STA EX1 STA EX2 ISZ TCNT JMP LOOP * JSB EXEC DEF *+2 DEF .6 * .30 DEC 30 .6 DEC 6 .M5 DEC -5 TCNT NOP .10 DEC 10 NUMBR NOP ASAVE NOP BSAVE NOP END ASMB,R,L,X NAM TEST,6 ENT TEST,MACRO EXT .FLUN,EXEC SPC 3 TEST NOP CLA STA NUMBR * JSB EXEC DEF *+3 DEF .30 DEF .30 * LOOP LDB NUMBR OTB 1 JSB .FLUN STA ASAVE STB BSAVE * LDB NUMBR MACRO OCT 105622 * CPA ASAVE RSS HLT 1 * CPB BSAVE RSS HLT 2 * * NEXTN ISZ NUMBR JMP LOOP * * JSB EXEC DEF *+2 DEF .6 * .30 DEC 30 .6 DEC 6 NUMBR NOP ASAVE NOP BSAVE NOP END $ORIGIN=6000 MODULE 12 $FILE=%MCOD $NOPUNCH $EXTERNAL=PACK 7052, INDIRECT 15, FETCH 0 * OP. CODES RETURN JMP FETCH 105600 - 105620 & 101600 - 101620 JMP .PACK 105621 INTEGER TO REAL JMP .FLUN 105622 FLOATING UNPACK SKP * ENTER WITH A SIGNED 31 BIT MANTISSA IN A & B. * EXIT WITH A FLOATING POINT, NORMALIZED NUMBER IN A & B. * * TWO WORD INTEGER CAN BE CONVERTED TO FLOATING POINT BV  Y * USING AN EXPONENT OF 31(BASE 10). * MSH IS IN "B", LSH IS IN "A". * * CALLING SEQUENCE: * * JSB .PACK OR OCT 105621 * BSS 1 EXPONENT LOCATED HERE * RESULT IN A&B * .PACK S10 B SWAP B A A & B READ INC PNM P READ EXPONENT & BUMP RETURN A S10 FINISH SWAP S9 T S9 = EXPONENT JMP PACK USE EXISTING ROUTINE SKP .FLUN L B IMM LOW S8 0 177400B MASK AND B S8 ISOLATE & RETURN LOW MANT. IN B * CLFL XOR S10 B ISOLATE EXPONENT LWF R1 A S10 REPOSITION EXPON. VALUE, SIGN INTO FLAG JMP CNDX FLAG RJS RETURN IF SIGN POS., WE'RE DONE * LWF R1 S8 S8 MASK NOW 177600B L S8 RTN IOR A A LEFT 9 BITS ON IN NEG. EXPON. $END F   22682-18057 1701 SC 0122 OVER              H0101 LFTN4,L C PROGRAM OVER(3,75) C C PROGRAM DESCRIPTION C ------------------- C C THIS PROGRAM INPUTS AN ABSOLUTE BINARY TAPE FROM ANY LU AND C STORES EACH ABSOLUTE RECORD INTO THE MEMORY ADDRESS SPECIFIED C ON THE LOAD ADDRESS. IT IS PRIMAIRLY WRITTEN AS AN AID FOR C ON-LINE DRIVER DEVELOPMENT IN RTE SYSTEMS. C C EXECUTION C --------- C C RU OVER[,LUTTY[,LUINP[,LULST]]] C C LUTTY ---> CONSOLE LU FOR NORMAL AND ERROR REPORTING C (DEFAULT=TERMINAL) C C LUINP ---> INPUT LU FOR ABSOLUTE RECORDS C (DEFAULT=5) C C LULST ---> LIST OUTPUT DEVICE FOR ECHO PRINTOUTS C (DEFAULT=LUTTY) C C C EXTERNAL SUBROUTINES C -------------------- C C NPUT C C DIMENSION LUN(5),IQ(2),IBUF(255) EQUIVALENCE(A,IQ,IA),(IQ(2),IB),(LUN1,LUN(1)),(LUN2,LUN(2)) EQUIVALENCE(LUN3,LUN(3)),(IBUF1,IBUF(1)) C C... RETRIEVE SCHEDULE LU(S) ... C CALL RMPAR(LUN1) C C... CONFIGURE ACTUAL LU'S ... C LUTTY=LUN1 LUINA=105B LUINB=2105B IF(LUN1.EQ.0) LUTTY=1 LULST=LUTTY LUTTY=IOR(LUTTY,400B) IF(LUN2.EQ.0) GO TO 1000 IF(LUN3.NE.0) LULST=LUN3 LUINA=IOR(LUN2,100B) LUINB=IOR(LUN2,2100B) C C... PAUSE & ALLOW USER TO MOUNT INPUT DEVICE ... C 1000 WRITE(LUTTY,105) 105 FORMAT(//"/OVER: ON-LINE ABSOLUTE RECORD MEMORY LOADER.") 1100 WRITE(LUTTY,107) 107 FORMAT(/"/OVER: INPUT DEVICE READY? (YES OR NO) _") A=REIO(1,LUTTY,LEN,1) IF(IB.EQ.0) GO TO 87 IF(LEN.EQ.2HYE) GO TO 1 GO TO 85 87 WRITE(LUTTY,104) GO TO 1100 C C... SET EOT ON DEVICE & ASK FOR RECORD ECHO OPTIONS ... C 1 CALL EXEC(3,LUINA,7) 3 WRITE(LUTTY,108) 108 FORMAT("/OVER: ECHO LOAD ADDRESS & CHECKSUM? (YES OR NO) _") A=REIO(1,LUTTY,LEN,1) IF(IB.NE.0) GO TO 5 WRITE(LUTTY,104) GO TO 3 5 ASSIGN 33 TO JUMP1 IF(LEN.EQ.2HYE) ASSIGN 44 TO= JUMP1 6 WRITE(LUTTY,109) 109 FORMAT("/OVER: ECHO RECORD(S)? (YES OR NO) _") A=REIO(1,LUTTY,LEN,1) IF(IB.NE.0) GO TO 7 WRITE(LUTTY,104) GO TO 6 7 ASSIGN 55 TO JUMP2 IF(LEN.EQ.2HYE) ASSIGN 66 TO JUMP2 IREC=0 C C... INPUT A LOAD ADDRESS ... C 2 A=REIO(1,LUINA,LEN,1) IF(IAND(IA,40B).EQ.40B) GO TO 70 LEN=LEN/256 C C... READ THE LOAD ADDRESS ... C CALL REIO(1,LUINB,LOAD,1) C C... READ RECORD ... C CALL REIO(1,LUINB,IBUF1,LEN+1) C C... READ ENDING TWO-WORD CHECKSUM ... C CALL REIO(1,LUINB,ICSUM,1) C C... CHECK FOR CORRECT CHECKSUM ... C ISUM=LOAD DO 100 I=1,LEN 100 ISUM=ISUM+IBUF(I) IF(ISUM.NE.IBUF(LEN+1)) GO TO 80 C C... ECHO LOAD ADDRESS, CHECKSUM, & RECORD IF OPTIONS SELECTED ... C GO TO JUMP1 44 IREC=IREC+1 CALL EXEC(3,LULST,11B,5) WRITE(LULST,110)IREC,LOAD,ISUM 110 FORMAT(/" RECORD#"I3":"7X"ADDRESS="K6" CHECKSUM="K6/) 33 GO TO JUMP2 66 DO 88 NREC=1,LEN,10 88 WRITE(LULST,111)(IBUF(N), N=NREC,NREC+9) 111 FORMAT(3X,10(K6,X)) CALL EXEC(3,LULST,2) C C... PUT BUFFER AT MEMORY ADDRESS SPECIFIED IN 'LOAD' C 55 CALL NPUT(LOAD,IBUF1,LEN) GO TO 2 C C... PAUSE & ASK FOR MORE RECORDS ... C 70 WRITE(LUTTY,101) 101 FORMAT("/OVER: END-OF-TAPE. NEXT? (YES OR NO) _") A=REIO(1,LUTTY,LOAD,1) IF(IB.EQ.0) GO TO 75 IF(LOAD.EQ.2HYE) GO TO 2 GO TO 99 C C... OPERATOR INPUT ERROR ... C 75 WRITE(LUTTY,104) 104 FORMAT(/"/OVER: INPUT ERROR.") GO TO 70 C C... CHECKSUM ERROR, REPORT AND ABORT LOAD ... C 80 WRITE(LUTTY,102)ICSUM,ISUM 102 FORMAT("/OVER: CHECKSUM ERROR. READ="K6", COMPUTED="K6) 85 WRITE(LUTTY,106) 106 FORMAT("/OVER: LOAD ABORTED") C 99 WRITE(LUTTY,103) 103 FORMAT("/OVER: END") END END$ ASMB,R,L * HED ABSOLUTE ON-LINE MEMORY LOADER NAM NPC UT,7 * ENT NPUT * EXT .ENTR,$LIBR,$LIBX * * THIS SUBROUTINE IS CALLABLE ON THE FORTRAN OR ALGOL LEVEL * FOR PURPOSES OF PUTTING A BLOCK OF DATA INTO A SET OF CONTIGUOUS * MEMORY LOCATIONS. THE ACTUAL PARAMETERS ARE DEFINED AS FOLLOWS: * * CALL NPUT(ISTRT,IARRY,NUMBR) * * ISTRT --> STARTING MEMORY ADDRESS * IARRY --> BUFFER ADDRESS OF BLOCK OF DATA * NUMBR --> NUMBER OF DATA ITEMS IN BLOCK * ISTRT NOP IARRY NOP NUMBR NOP * NPUT NOP JSB .ENTR DEF ISTRT * LDA NUMBR,I GET BLOCK LENGTH. CMA,INA NEGATE FOR COUNTDOWN. SZA,RSS IF ZERO, EXIT. JMP NPUT,I STA NUMBR LDA ISTRT,I GET STARTING MEMORY ADDRESS. STA ISTRT JSB $LIBR GO PROVELEGED. NOP LOOP LDA IARRY,I GET ITEM FROM BLOCK. STA ISTRT,I STUFF IT AWAY. ISZ ISTRT BUMP TO NEXT BLOCK ADDRESS. ISZ IARRY BUMP NEXT BLOCK ADDRESS. ISZ NUMBR ARE WE DONE? JMP LOOP JSB $LIBX DONE. RETURN TO RTE. DEF *+1 DEF *+1 JMP NPUT,I * END   22682-18058 1714 SC 0522 DFINE - REDEFINE PARTITIONS ON-LINE             H0105 1****************************** DFINE ******************************** 0 0 DFINE, THE PARTITION REDEFINITION PROGRAM ! 0 GENERAL --------- 0 0 DFINE IS A UTILITY PROGRAM THAT ALLOWS THE USER TO REDEFINE PARTITIONS ON LINE. THIS MEANS THAT USERS MAY NOW ASSIGN PROGRAMS TO PARTITIONS, MODIFY PROGRAM PAGE REQUIREMENTS, RESERVE PARTITIONS, INCREASE OR DECREASE THE NUMBER OF ACTIVE PARTITIONS, INCREASE OR DECREASE THE AMOUNT OF USABLE PHYSICAL MEMORY WITHOUT REGENERATING, AND DO PAGE SPARING FOR PARITY ERRORS. DFINE WILL PERFORM ALL OF THESE FUNCTIONS ON A PERMANENT OR TEMPORARY BASIS. IN ESSENCE, ON LINE SYSTEM OPTIMIZATION IS FINALLY POSSIBLE. IT IS EVEN POSSIBLE IN A GIVEN TIME TO REDEFINE SEVERAL SYSTEMS TO OPTIMIZE SEVERAL DIFFERENT APPLICATIONS. BY REDEFINING THEIR PARTITIONS AND RUNNING SIMPLE TIME TESTS THE USER CAN CHEAPLY AND EASILY DETERMINE THE ANSWERS TO THE FOLLOWING QUESTIONS AND MANY OTHERS. 0 1. HOW MANY PARTITIONS ? 2. WHAT SIZE PARTITIONS ? 3. HOW MANY REAL TIME PARTITIONS AND HOW BIG ? 4. HOW MANY BACKROUND PARTITIONS AND HOW BIG ? 5. SHOULD MY PROGRAMS BE ASSIGNED TO PARTITIONS, IF SO WHICH PARTITION ? 6. DO PARTITIONS NEED TO BE RESERVED, IF SO WHICH ONES ? 0 ETC.,ETC.,ETC.,ETC., 0 THIS SYSTEM TAILORING IS NOT DFINE'S ONLY BENEFIT. DFINE ALSO REPRESENTS A CONSIDERABLE SAVINGS IN TIME AND MONEY. FOR EXAMPLE, MEMORY MAY NOW BE "SHARED" BY SYSTEMS, THAT IS, MEMORY CAN BE MOVED FROM ONE SYSTEM TO ANOTHER AND REGENERATION WOULD NOT BE NECESSARY. SYSTEMS ALSO NO LONGER NEED GO DOWN DUE TO PARITY ERRORS. BY RUNNING DFINE THE BAD PAGE CAN BE UNDEFINED KEEPING THE SYSTEM ALIVE. LATER AT THE USERS CONVENIENCE THE BAD BOARD CAN BE REMOVED AND REPAIRED. THIS FEATURE CAN BE A LIFE SAVER FOR THOSE SYSTEMS THAT MUST REMAIN ON THE AIR. 0 THESE FEATURES ARE NOT OFFERED BY ANY COMPETITOR ! 1  ****** NOTE NOTE NOTE ****** 0 DFINE, THE RTE III PARTITION REDEFINITION PACKAGE IS A CONTRIBUTED PROGRAM. THE HEWLETT-PACKARD COMPANY MAKES NO WARRANTY EXPRESSED OR IMPLIED, AND ASSUMES NO RESPONSIBILITY IN CONNECTION WITH THE OPERATION OF THE PROGRAM MATERIAL ATTACHED HERETO. 0 DFINE, REVISION 1 (1650) 0 0 FOR ANY QUESTIONS, SUGGESTIONS, OR COMMENTS CONTACT : 0 MIKE MANLEY HEWLETT-PACKARD DSD 11000 WOLF RD CUPERTINO, CALF 95014 (408) 257-7000 0 ........................................................................ 0 0 OPPERATING INSTRUCTIONS ------------------------- 0 0 DFINE IS MADE UP OF FOUR SECTIONS EACH OF WHICH MAY BE RUN SEPERATELY OR ALL SECTIONS MAY BE RUN CONSECUTIVELY. A SAMPLE DIALOGUE IS SHOWN BELOW. EACH SEPERATE SECTION IS DELINEATED BY A ROW OF ASTERISKS. NOTE THAT THE PROGRAM FORMAT IS VERY CLOSE TO THAT OF THE RTE III GENERATOR. ANYONE WHO HAS EVER GENERATED AN RTE III SYSTEM SHOULD BE ABLE TO EASILY AND QUICKLY UNDERSTAND HOW TO RUN DFINE. IN THE APPENDIX TO THIS MANUAL IS ANOTHER SAMPLE DIALOGUE FILLED WITH ERRORS. THE RESULTING ERROR MESSAGES ARE SHOWN AND ANNOTATED. 1 *ON,DFINE,1 0 ************************************************************** SECTION # 1 0 RT PARTITION REQMTS: 0 SMP 4 PAGES JOB 4 PAGES WHZAT 2 PAGES $$CMD 2 PAGES R$PN$ 2 PAGES PRMPT 2 PAGES 0 BG PARTITION REQMTS: 0 AUTOR 5 PAGES FMGR 12 PAGES GASP 5 PAGES LOADR 12 PAGES TVST 5 PAGES ASSIGNED TO PART'N 4 MTMYY 8 PAGES EDITR 72 PAGES RQLG 2 PAGES RLLG 2 PAGES LGLOK 2 PAGES FMG12 7 PAGES FMG31 7 PAGES FMG28 7 PAGES FMG16 7 PAGES COMPL 12 PAGES DFINE 4 PAGES ASSIGNED TO PART'N 1 FMTBG 6 PAGES FTN5 14 PAGES SWPIT 2 PAGES ASSIGNED TO PART'N 10 ..TBG 6 PAGES 0 PARTITION 4 RESERVED. 0 PART'N 1 = PAGE 22 0 LARGEST ADDRESSABLE PARTITION: 0 W/O COM 14 PAGES W/ COM 14 PAGES 0 MAX NUMBER OF PARTITIONS = 12 0 1****************************************************************** SECTION # 2 0 ENTER MEMORY SIZE IN PAGES 112 0 PAGES REMAINING: 90 0 DEFINE PARTITIONS 1,4,RT 2,3,RT 3,2,RT 4,5,BG,R 5,6,BG 6,8,BG 7,8,BG 8,8,BG 9,8,BG 10,12,BG 11,12,BG 12,14,BG /E 0 PARITY ERRORS ? NO 0 PERM, TEMP, OR DISC ONLY ? TE 0 PARTITION 2 CLEARED PARTITION 5 CLEARED PARTITION 7 CLEARED PARTITION 10 CLEARED 0 0 1*************************************************************** SECTION # 3 0 0 MODIFY PROGRAM PAGE REQUIREMENTS ? 0 FMGR,14 PERM, TEMP, OR DISC ONLY ? PE MTMYY,9 /E 0 0******************************************************************* SECTION # 4 0 ASSIGN PROGRAMS TO PARTITIONS ? 0 FMGR,12 PERM, TEMP, OR DISC ONLY ? PE SWPIT,2 MTMYY,10 /E 0 REDEFINATION COMPLETE 0 0 1 SECTION # 1 ------------- 0 SECTION # 1 OF DFINE LISTS ALL DISC RESIDENT PROGRAMS IN THE SYSTEM. THE REAL TIME PROGRAMS ARE LISTED FIRST FOLLOWED BY THE BACKROUND PROGRAMS. ADJACENT TO EACH PROGRAM NAME IS ITS SIZE AND, IF THE PROGRAM IS ASSIGNED, THE PARTITION NUMBER IT IS2 ASSIGNED TO IS LISTED. THE ITS ASSIGNED PARTITION NUMBER. THE SIZES SHOWN FORM THE BASIS OF ONE CONSTRAINT IMPOSED BY DEFINE. THE CONSTRAINT IS THAT AT LEAST ONE BACKROUND PARTITION MUST BE AS LARGE AS THE LARGEST BACKROUND PARTITION ENCOUNTERED. SIMILARLY, ONE REAL TIME PARTITION AS LARGE AS THE LARGEST REAL TIME PARTITION IS REQUIRED. IF THIS CONSTRAINT IS NOT MET THE ERROR IS DETECTED AND THE REDEFINITION MUST START OVER. AN ERROR MESSAGE IS REPORTED SAYING "RT PARTITION REQMNTS: NOT SATISFIED ". SECTION # 1 THEN LISTS ALL RESERVED PARTITIONS IF ANY AND THE MAXIMUM ADDRESS SPACE FOR PROGRAMS USING AND NOT USING COMMON. IT NEXT LISTS THE MAXIMUM NUMBER OF PARTITIONS THE USER MAY DEFINE. THIS MAXIMUM IS SET UP AT GENERATION TIME IN ANSWER TO THE GENERATORS QUESTION "MAX NUMBER OF PARTITIONS?". THIS IS THE MAXIMUM NUMBER OF PARTITIONS DEFINABLE, AN ATTEMPT TO DEFINE MORE WILL BE DETECTED, AN ERROR MESSAGE WILL BE PRINTED, AND THE INPUT IGNORED. FINALLY DFINE PRINTS OUT PART'N 1 = PAGE XX. WHERE XX IS THE STARTING PHYSICAL PAGE OF THE 1ST PARTITION. THIS INFORMATION IS NEEDED FOR PAGE SPARING OF PARITY ERRORED MEMORY. THIS WILL BE DISCUSSED IN MORE DETAIL LATER. ALL OF THE ABOVE INFORMATION CAN AND SHOULD BE USED TO OPTIMIZE THE NUMBER, SIZE, AND TYPES OF PARTITIONS TO BE DEFINED. IT IS ALSO POSSIBLE TO OBTAIN THIS INFORMATUON WITHOUT GOING THROUGH ALL OF THE REDEFINING. BY DOING THE FOLLOWING : 0 RU,DFINE,LU1,LU2,/D 0 WHERE LU1 = INPUT LU LU2 = OUTPUT LU (WHERE TO PRINT THE INFO) /D = A FLAG TO DFINE TO PRINT THE INFO ONLY 0 1 SECTION # 2 ------------- 0 0 SECTION # 2 ALLOWS THE USER TO REDEFINE HIS PARTITIONS. THE DIALOGUE IS EXACTLY THE SAME AS THAT IN THE GENERATOR. FOR EXAMPLE, THE FOURTH ENTRY SAYS THAT PARTITION 4 IS TO BE 5 PAGES LARGE, A BACKROUND PARITITION, ! AND THE PARTITION IS RESERVED FOR PROGRAMS ASSIGNED TO IT. NOTE THAT THROUGHOUT THIS SECTION AND THE NEXT THAT A ' /D ' MAY BE ENTERED AT ANY TIME TO ANY QUESTION AND DFINE WILL CLEANLY TERMINATE. AN ATTEMPT TO MAKE A PARTITION TOO SMALL (LESS THAN TWO PAGES) IS DETECTED AND IGNORED. THE MESSAGE "ERROR" IS PRINTED. AN ATTEMPT TO DEFINE A PARTITION LARGER THAN THE LOGICAL ADDRESS SPACE (14 PAGES IN THE EXAMPLE) IS ALLOWED SO THAT THOSE PEOPLE WHO WISH TO DO THERE OWN MAPPING CAN RESERVE MEMORY. HOWEVER, A WARNING MESSAGE IS PRINTED "WARNING, ADDRESS LIMIT EXCEEDED". THE NEXT QUESTION ASKED IS "PARITY ERRORS ?". THIS QUESTION IS NOT FOUND IN SYSTEM GENERATION. FOR NOW LET US SAY THAT IF YOU DO NOT HAVE ANY PARITY ERRORED MEMORY THE ANSWER IS NO. THE APPENDIX THAT DISCUSSES PARITY ERRORS WILL DESCRIBE HOW TO USE THIS OPTION. THE NEXT QUESTION ASKED IS "PERM, TEMP, OR DISC ONLY ?". THIS REFERS TO THE TYPE OF REDEFINITION REQUESTED. AN ANSWER OF TE (FOR TEMPORARY) WILL CHANGE ONLY THE SYSTEM THAT IS CURRENTLY BOOTED UP. AN ANSWER OF DI (FOR DISC ONLY) WILL MODIFY THE SYSTEM ONLY ON THE DISC. THE NEXT TIME THE SYSTEM IS BOOTED UP THE REDEFINITION WILL BE APPLICABLE. AN ANSWER OF PE (FOR PERMANENT) WILL MODIFY MEMORY AND DISC. THIS MEANS THE REDEFINED SYSTEM IS IMMEDIATELY IN CONTROL AND WILL BE SO UNTIL AGAIN REDEFINED. IN SOME SITUATIONS THE QUESTION "PERM, TEMP, OR DISC ONLY ?" WILL NOT APPEAR. THEN IT IS NOT POSSIBLE TO REDEFINE THE SYSTEM IN MEMORY , AND ONLY DISC MODIFICATIONS WILL BE ALLOWED. THE FOLLOWING CONDITIONS MUST BE MET IN ORDER TO DO MEMORY MODIFICATIONS. 0 1. DFINE MUST BE EXECUTING IN PARTITION # 1 2. PROGRAM SWPIT MUST BE LOADED AND KNOWN TO THE SYSTEM. (NOTE THAT PROGRAM SWPIT APPEARS IN THE SAMPLE OUTPUT.) 3 THE REDEFINED PARTITION #1 MUST BE AT LEAST 4 PAGES. 0 TO MAKE SURE DFINE IS LOADED INTO PARTITION # 1, LOAD IT AS FOLLOWS: RU,LOADR,99,6,0,00010 0 THE 00010 SPECIFIES PARTITION # 1 0 THE ABOVE SHOULD FORM NO REAL CONSTRAINT FOR THE USER. FOR EXAMPLE, IF PARTITION #1 IS ONLY 2 PAGES INITIALLY, THE DEFAULT (DISC ONLY CHANGES) CAN BE TAKEN, PARTITION # 1 REDEFINED TO 4 PAGES, AND THE SYSTEM REBOOTED, THEN MEMORY CHANGES WOULD BE ALLOWED. PROGRAM SWPIT IS NEEDED TO ALLOW DFINE TO DO MEMORY REDEFINITION. WHEN DFINE DETERMINES THAT IT IS POSSIBLE TO DO MEMORY REDEFINITION AND THE USER ASKS FOR TEMPORARY OR PERMANENT CHANGES, DFINE ASSIGNS SWPIT TO ANY PARTITION THAT IS NOT FREE. IN THIS WAY PROGRAMS THAT ARE CURRENTLY EXECUTING CAN BE TEMPORIALLY SWAPPED TO THE DISC. THIS ALLOWS THE REDEFINITION TO CONTINUE WITHOUT OPERATOR INTERVENTION OR WITHOUT SHUTTING DOWN THE SYSTEM. THE ADDITIONAL PROGRAM OVERHEAD IS ONLY MILLISECONDS. ALL ACTIVE PROGRAMS WILL BE IMMEDIATELY BROUGHT BACK INTO MEMORY AND CONTINUE TO EXECUTE. IN THE SAMPLE OUTPUT THE MESSAGE "PARTITION XX CLEARED" IS FROM SWPIT. IT REQUIRES NO RESPONSE ; IT IS FOR OPERATOR INFORMATION. NOTE THAT IF ANOTHER PROGRAM IS IN A PARTITION AND IS CORE LOCKED SWPIT WILL BE UNABLE TO FORCE THE SWAP. IN THIS CASE BOTH SWPIT AND DFINE WAIT UNTIL THE SWAP CAN BE CARRIED OUT. IT IS SAFE AT THIS POINT TO ABORT DFINE AND SWPIT OR THE CORE LOCKING PROGRAM. IN THE CASE OF A PERMANENT CHANGE DISC MODS ARE DONE BEFORE MEMORY MODS. THUS ABORTING DFINE WILL STOP MEMORY CHANGES; BUT THE DISC CHANGES WILL BE COMPLETE. 1 SECTION # 3 ------------- 0 SECTION # 3 ALLOWS THE USER TO MODIFY PROGRAM PAGE REQUIREMENTS. CERTAIN PROGRAMS LIKE FTN4, ASMB, ALGOL, AND LOADR USE ROOM AT THE END OF ITSELF FOR SYMBOL TABLE OR DATA. BY INCREASING THE PROGRAM PAGE REQUIREMENTS THIS SPACE IS EXPANDED. THIS SECTION ALLOWS INCREASES AND DECREASES IN THIS AREA. DFINE WILL ALLOW PERMANENT CHANGES TO PERMANENT PROGRABMS AND AND TEMPORARY CHANGES TO TEMPORARY PROGRAMS. A TEMPORARY CHANGE MEANS THAT THE CHANGE WILL NOT BE THERE WHEN THE SYSTEM IS NEXT REBOOTED. AN EXAMPLE OF THIS IS SHOWN IN THE SAMPLE DIALOGUE. THE USER WISHED TO CHANGE FMGR. SINCE FMGR WAS A PERMANENT PROGRAM, DFINE ASKED WHAT TYPE CHANGE WAS DESIRED. THE PROGRAM MTMYY WAS A TEMPORARY PROGRAM AND NO PERMINANT CHANGES WERE ALLOWED. THIS CONSTRAINT IS IMPOSED BECAUSE A TEMPORARY PROGRAM DOES NOT HAVE A WELL DEFINED AREA OF THE DISC FOR MAKING PERMANENT CHANGES. HOWEVER, THE CHANGE MAY BE MADE PERMANENT WITH OPERATOR INTERVENTION. BY DOING AN ':SP,PROG ' THE PROGRAM WILL BE SAVED IN THE FILE AREA OF THE DISC. ANY CHANGE MADE PRIOR TO THE ' :SP,PROG ' WILL BE PRESERVED. 0 0 THIS SECTION AND THE NEXT MAY BE RUN WITHOUT REDEFINING PARTITIONS. THE RUN SEQUENCE IS : 0 RU,DFINE,LU1,LU2,/M 0 WHERE LU1 & LU 2 ARE AS PREVIOUSLY DEFINED /M IS A FLAG TO DFINE TO ALLOW MODIFICATION OF PROGRAM PAGE REQUIREMENTS AND PROGRAM PARTITION ASSIGNMENTS WITHOUT PARTITION REDEFINITION. 0 *************WARNING WARNING WARNING WARNING WARNING**************** 0 THIS PROGRAM WILL ALLOW INCREASES AND DECREASES IN PROGRAM PAGE REQUIREMENTS. IT WILL CATCH ALL ERRORS WHICH MAKE THE PROGRAM TOO LARGE FOR THE SYSTEM ON THE DISC OR IN MEMORY, EVEN IF THE DEFINITIONS ARE DIFFERENT. HOWEVER, FOR SEGMENTED PROGRAMS IT IS IMPOSSIBLE TO TELL WHAT THE CORRECT LOWER LIMIT SHOULD BE. THIS ERROR IS DETECTED BY THE OPERATING SYSTEM AT RUN TIME. IF TOO LARGE A SEGMENT IS BEING LOADED THE SYSTEM WILL ABORT THE SEGMENTED PROGRAM. THIS CAN CAUSE SERIOUS PROBLEMS. THUS BE CAREFUL WHEN DECREASING PROGRAM PAGE REQUIREMENTS FOR SEGMENTED PROGRAMS. THIS CAUTION DOES NOT APPLY TO UNSEGMENTED PROGRAMS. 1 ****************&******************************************************* SECTION # 4 ------------- 0 SECTION # 4 ALLOWS THE USER TO ASSIGN PROGRAMS TO PARTITIONS OR UNASSIGN PROGRAMS THAT WERE PREVIOUSLY ASSIGNED. AGAIN, THERE IS THE RESTRICTION THAT PERMANENT CHANGES CAN ONLY BE MADE TO PERMANENT PROGRAMS AND THAT ALL CHANGES TO TEMPORARY PROGRAMS ARE TEMPORARY. REFER TO THE ABOVE SECTION FOR THE REASON WHY AND HOW TO MAKE THE TEMPORARY CHANGES AFFECTED BY THIS PROGRAM PERMANENT. NOTE THAT IN THE SAMPLE DIALOGUE FMGR HAS BEEN ASSIGNED TO PARTITION 12 AND THAT PROGRAM MTMYY HAS BEEN ASSIGNED TO PARTITION 10. TO UNASSIGN A PROGRAM THE SECOND PARAMETER SHOULD BE A ZERO. FOR EXAMPLE ' FMGR,0 ' WOULD UNASSIGN FMGR. ASSIGNING PROGRAMS TO PARTITIONS SPEEDS UP DISPATCHING CONSIDERABLY. ANY ATTEMPT TO ASSIGN A PROGRAM TO A PARTITION TOO SMALL WILL BE FLAGGED AND AN ERROR MESSAGE PRINTED. REFER TO THE ANNOTETED ERROR SECTION. 0 0 *****************WARNING WARNING WARNING WARNING***************** 0 AGAIN NOTE THAT IT IS IMPOSSIBLE TO DETERMINE THE SIZE OF A SEGMENTED PROGRAM WITHOUT KNOWING THE SEGMENT NAMES. THUS A SEGMENTED PROGRAM COULD BE ASSIGNED TO A PARTITION TO SMALL FOR IT. CAUTION SHOULD BE OBSERVED IN MODIFYING SEGMENTED PROGRAMS !!! 1 ************************************************************************ WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ************************************************************************ 0 THERE IS ONE ERROR THAT IS UNDETECTABLE BY DFINE AND CAN CAUSE DISASTERIOUS RESULTS. THIS ERROR WILL BE ENCOUNTERED LONG AFTER DFINE HAS REDEFINED THE SYSTEM. IT WILL OCCUR UNDER THE FOLLOWING CIRCUMSTANCES. 0 1) THE USER LOADS A PROGRAM WHICH IS X PAGES LONG AND ASSIGNS THE PROGRAM TO PARTITION Y. THE LOAD IS A TEMPORARY LOAD NOT A PERMANENT LOAD. 2) THE PROGRAM` IS SAVED IN A FILE WITH THE FMGR SP COMMAND. 3) THE SYSTEM IS REBOOTED AND THE PROGRAM IS NOT RP 'ED INTO THE SYSTEM YET. 4) DFINE IS RUN AND PARTITION X IS DEFINED TO BE LESS THAN Y PAGES. 5) THE PROGRAM IS NOW RP 'ED AND RUN. 0 THE ABOVE CAN HAVE CATASTROPHIC RESULTS. THE OPERATING SYSTEM DOES NOT EXPECT THIS TO EVER HAPPEN AND THUS LOADS AND RUNS THE PROGRAM. THE RESULTS WHILE CATASTROPHIC ARE RECOVERABLE BY REBOOTING. 0 0 BE VERY CAREFUL THAT IF PROGRAMS ARE ALREADY ASSIGNED TO PARTITIONS THAT THOSE PROGRAMS ARE EITHER REASSIGNED, UNASSIGNED, OR THAT THE PARTITION WILL BE BIG ENOUGH TO RUN THE PROGRAM. 1 APPENDIX A ANNOTATED ERRORS SECTION 0 THE FOLLOWING IS A SAMPLE OUTPUT SHOWING THE ERRORS AND ERROR MESSAGES FOR PROGRAM DFINE. 0 RU,DFINE,1 *RUN THE PROGRAM TO SYS CONSOLE RT PARTITION REQMTS: *NORMAL OUTPUT LISTING SMP 4 PAGES *LISTING BY ITSELF CAN BE JOB 4 PAGES *GENERATED BY DOING A WHZAT 2 PAGES *RU,DFINE,LU1,LU2,/D $$CMD 2 PAGES R$PN$ 2 PAGES PRMPT 2 PAGES BG PARTITION REQMTS: AUTOR 5 PAGES FMGR 14 PAGES ASSIGNED TO PART'N 12 GASP 7 PAGES LOADR 12 PAGES TVST 5 PAGES ASSIGNED TO PART'N 4 MTMYY 8 PAGES EDITR 7 PAGES LGLOK 2 PAGES FMG12 7 PAGES FMG34 7 PAGES FMG31 7 PAGES FMG16 7 PAGES FMG07 7 PAGES FMG35 7 PAGES COMPL 12 PAGES FMG28 7 PAGES DFINE 4 PAGES ASSIGNED TO PART'N 1 FGENR 13 PAGES SWPIT 2 PAGES ASSIGNED TO PART'N 12 PARTITION 4 RESERVED. PART'N 1 = PAGE 22 LARGEST ADDRESSABLE PARTITION: W/O COM 14 PAGES W/ COM 14 PAGES MAX NUMBER OF PARTITIONS = 12 ENDER MEMORY SIZE IN PAGES X64 PAGES REMAINING: 42 DEFINE PARTITIONS 1,14,RT 2,14,RT 3,14,BG 4,14,BG *NOTE THAT THE SUM OF /E *OF THE PAGES DEFINED ERROR *EXCEEDS THE AVAILABLE SUM OUT OF RANGE *NUMBER TO BE DEFINED LARGEST ADDRESSABLE PARTITION: *THE FOLLOWING IS THEN W/O COM 14 PAGES *REPRINTED. W/ COM 14 PAGES MAX NUMBER OF PARTITIONS = 12 ENTER MEMORY SIZE IN PAGES *MEMORY SIZE MUST BE REENTERED 64  PAGES REMAINING: 42 DEFINE PARTITIONS 1,14,BG 2,2,RT 3,14,BG /E PARITY ERRORS ? NO ERROR *AT LEAST ONE 4 PAGE RT PARTITION RT PARTITION REQMTS: NOT SADISFIED ! *SHOULD HAVE BEEN DEFINED LARGEST ADDRESSABLE PARTITION: *SO THIS INFO IS PRINTED W/O COM 14 PAGES *AGAIN W/ COM 14 PAGES MAX NUMBER OF PARTITIONS = 12 ENTER MEMORY SIZE IN PAGES 64 PAGES REMAINING: 42 DEFINE PARTITIONS 0,2,RT *NO SUCH THING AS PARTITION 0 ERROR 1,2,RT 2,4,RT 3,16,BG *INPUT ACCEPTED SO THAT THOSE WARNING, ADDRESS LIMIT EXCEEDED *WHO WISH TO DO THEIR OWN 4,16,BG *MAPPING MAY DO SO WARNING, ADDRESS LIMIT EXCEEDED *SAME WARNING /D *THIS TERMINATES DFINE ! DFINE TERMINATED 0 ON,DFINE,1,6 *DFINE RESCHEDULED WITH PART'N 1 = PAGE 22 *OUTPUT GOING TO LU 6 MAX NUMBER OF PARTITIONC = 12 ENTER MEMORY SIZE IN PAGES 64 PAGES REMAINING: 42 DEFINE PARTITIONS 1,2,RT 2,4,RT 3,14,BG *NOTE THAT PARTITION 5 WAS 4,14,BG *NOT DEFINED 6,2,RT /E ERROR INBEDDED UNDEFINED PARTITION MAX NUMBER OF PARTITIONS = 12 *SO THIS INFO IS REPRINTED ENTER MEMORY SIZE IN PAGES 112 *NOTE THAT # OF PAGES CAN PAGES REMAINING: 90 *BE CHANGED DEFINE PARTITIONS 1,4,RT 2,3,RT 3,2,RT 4,5,BG,R 5,6,BG 6,8,BG 7,8,BG 8,8,BG 9,8,BG 10,12,BG 11,12,BG 12,14,BG *THIS REDEFINITION WORKED /E PARITY ERRORS ? NO PERM, TEMP, OR DISC ONLY ? DI *DISC ONLY CHANGE DESIRED MODIFY PROGRAM PAGE REQUIREMENTS ? MTMYY,7 ERROR *NOTE THAT IN OUTPUT INFO MEMORY CHANGE ILLEGAL *MTMYY REQUIRED 8 PAGES SMP,3 *SMP REQUIRES 4 PAGES PERM, TEMP, OR DISC ONLY ? PE *THUS A PERMANENT CHANGE IS ERROR DISC CHANGE ILLEGAL *ILLEGAL ON DISC AND ERROR MEMORY CHANGE ILLEGAL *ILLEGAL IN MEMORY TOO MTMYY,9 /E ASSIGN PROGRAMS TO PARTITIONS ? MTMYY,1 *MTMYY IS TOO SMALL TO RUN ERROR *IN PARTITION # 1 MEMORY CHANGE ILLEGAL SMP,2 *SMP IS TOO SMALL TO EXECUTE PERM, TEMP, OR DISC ONLY ? *IN PARTITION # 2 PE ERROR DISC CHANGE ILLEGAL ERROR MEMORY CHANGE ILLEGAL /E REDEFINATION COMPLETE 1 APPENDEX B PARITY ERRORS --------------------------- 0 ONE VERY USEFUL FUNCTION OF DFINE IS ITS ABILITY TO SPARE (UNDEFINE) PARITY ERRORED MEMORY PAGES. WHENEVER THE SYSTEM ENCOUNTERS A PARITY ERROR IT HALTS (HLT 5). BY LOOKING AT THE ADDRESS IN THE A REGISTER IT IS POSSIBLE TO DETERMINE WHERE THE BAD PAGE IS IN PHYSICAL MEMORY. (IF THE PARITY ERROR HALT SWITCH LOCATED ON THE BOTTOM OF THE CPU BOARD IS IN THE HALT POSITION THEN USE P REGISTER INSTEAD OF THE A REGISTER.) THE ADDRESS IN THE REGISTER IS THE LOGICAL ADDRESS OF WHERE THE BAD WORD IS. FOR RTE III THIS LOGICAL ADDRESS WILL NOT NECESSARIALLY BE THE PHYSICAL ADDRESS IN MEMORY. IN ORDER TO SPARE THE BAD PAGE IT IS NECESSARY TO DETERMINE THE PHYSICAL PAGE NUMBER IN WHICH THE BAD WORD RESIDES. IN A 21MX E-SERIES COMPUTER THIS IS FAIRLY EASY USING THE MODE SWITCH. IN A 21MX IT IS A LITTLE MORE DIFFICULT. THE PROCESS BELOW IS FOR THE 21MX REFER TO THE 21MX-E MANUAL FOR THE E-SERIES COMPUTER. 0 1. GET BITS 14 - 10 FROM A OR P REGISTER WHICHEVER IS APPROPRIATE. 2. SELECT M AND CLEAR. DO NOT PRESS STORE. 3. SET THE BITS FROM 14 - 10 INTO 4 - 0, SET BITS 15 & 14. DO NOT PRESS STORE ! 4. SELECT T. 5. THE LOWER 10 BITS WILL HAVE THE PHYSICAL PAGE NUMBER. 6. SAVE THE RESULT. 7. SELECT M AGAIN AND SET BIT 5. DO NOT PRESS STORE. 8. NOW SELECT T AGAIN. IN MOST CASES THE RESULT IN THE LOWER BITS OF STEP 6 WILL BE THE SAME AS NOW OBSERVED. SAVE THE RESULT. 9. CONVERT RESULT TO DECIMAL. 0 NORMALLY THE SECOND RESULT SAVED IS THE BAD PAGE. IF THIS RESULT IS LARGER THAN THE NUMBER PRINTED IN THE ' PART'N 1 = PAGE XX ' THEN THE PAGE MAY BE SPARRED. IF NOT THEN THE BAD PAGE IS NOT IN THE PARTITION AREA AND MAY NOT BE SPARRED. (THERE IS NOTHING TO STOP YOU FROM MOVING THE BOARD INTO THE PARTITION AREA OF PHYSICAL MEMORY) NOW THAT THE BAD PAGE IS FOUND IT MUST UNDEFINED. THIS CAN BE DONE IF THE BAD PAGE IS REDEFINED TO BE THE STARTING PAGE OF THE PARTITION. FOR EXAMPLE, IF THE STARTING PAGE OF PARTITION 1 IS 22 AND THE BAD PAGE IS PAGE 33 , THEN BY DEFINING THE FIRST PARTITION TO BE 11 PAGES, PARTITION 2 WILL START AT THE BAD PAGE, IE PAGE 33. THEN CONTINUE DEFINING AS NORMAL. AFTER REDEFINING THE QUESTION ' PARITY ERRORS ? ' WILL ~NLHBE PRINTED. ANSWER YES. DFINE THEN ASKS FOR THE PARTITION # OF THE BAD PAGE. THE QUESTION IS ' ENTER PART'N # '. YOUR RESPONSE IN THE EXAMPLE ABOVE WOULD BE ' 2 ' . THIS WILL HAVE THE EFFECT OF MAKING PARTITION 2 SMALLER BY ONE PAGE. AFTER ANSWERING ' 2 ' THE QUESTION IS REPEATED AGAIN. ANOTHER PARTITION OR THE SAME PARTITION MAY BE ENTERED AGAIN. RECALL THAT A PARTITION MAY NOT BE SMALLER THAN 2 PAGES AND THAT AT LEAST ONE PARTITION OF EACH TYPE MUST BE AS LARGE AS THE LARGEST PROGRAM OF THAT TYPE IN THE SYSTEM.( IF YOU HAVE A 14 PAGE BG PROGRAM THERE MUST BE A 14 PAGE BG PARTITION) THESE ERRORS WILL BE DETECTED AND PRODUCE APPROPRIATE ERROR MESSAGES. TO EXIT THIS MODE ENTER A ' /E '. INSOFAR AS THE SYSTEM IS CONCERNED THE BAD PAGE NO LONGER EXISTS. ;NASMB HED DFINE ! THE PARTITION REDEFINITION PROGRAM ! NAM DFINE,3,100 3/29/77 (CMM) PARTITION REDEFINITION PROG. ENT DFINE EXT $MATA,$BGFR,$RTFR,$ENDS,$LIBR,$LIBX,$CVT1,EXEC EXT $MPFT,$PARS,$CVT3,$MPSA,$MRMP * * * CREATOR : MIKE MANLEY HP DSD * REV 1 12/22/76 * * * * SUP PRESS EXTRANIOUS LISTING * * SWPIT NOP MYID NOP RLRGE NOP DONT MOVE OR REARRANGE !!!!! BLRGE NOP DONT MOVE OR REARRANGE !!!!! RFLAG NOP BFLAG NOP DEFRT DEF CRTFR DONT MOVE OR REARRANGE CRTFR NOP DONT MOVE OR REARRANGE CBGFR NOP * DFINE LDA B,I GET 1ST INPUT PARAMETER = INPUT LU SZA,RSS IF = 0 CLA,INA MAKE INPUT LU # = 1 STA LU AND SAVE INPUT LU INB NOW GET NEXT PARAMETER LDA B,I GET IT SZA,RSS IF = 0 USE INPUT LU AS OUTPUT LU LDA LU STA LU+1 ADA CNWRD ADD IN A CONTROL WORD FOR LINE FEEDS STA CNWRD AND SAVE INB INCREMENT TO NEXT PARAMETER LDA B,I GET IT AND SAVE FOR POSSIBLE BRANCH LATER STA LU+2 LDA LU GET INPUT LU AGAIN AND ADA O400 SET ECHO BIT STA LU * JSB EXEC TELL THE USER WHO WE ARE DEF IDRET DEF D2 DEF LU DEF IDENT DEF D27 IDRET JSB LNFED DO A LINE FEED JSB EXEC TELL THE FANS OUR DATE CODE & CREATOR DEF START DEF D2 DEF LU DEF DCODE DEF D13 * START JSB LNFED MAKE THE MESSAGE PRETTY JSB LNFED LDA RTFR NOW LETS RESOLVE SOME EXTERNAL ADDRESSES RAL,CLE,ERA STRIP INDIRECT BIT LDA A,I GET THE ADDRESS SSA IF STILL INDIRECT DO IT AGAIN JMP *-3 STA RTFR INA INCREMENT, THIS IS ADDRESS OF RTPR STA RTPR THE RT ALLOCATED LIST LDA BGFR GET THE BG FREE LIST ADDRESS NOW K RAL,CLE,ERA STRIP INDIRECT BIT LDA A,I GET THE ADDRESS SSA IF STILL INDIRECT DO IT AGAIN JMP *-3 STA BGFR SAVE THE ADDRESS FOR LATER INA STA BGPR THIS IS THE BG ALLOCATED LIST HEAD ADA D3 STA ABGDM POINTER TO THE BGDM LIST INA STA ARTDM ADDRESS OF POINTER TO RTDM LIST INA STA BGDM THIS IS THE BG DORMANT LIST INA STA RTDM THIS IS THE RT DORMANT LIST * * LDA MRMP GET THE ADDRESS RAL,CLE,ERA STRIP INDIRECT BIT LDA A,I SSA JMP *-3 ADA DM6 NOW GET ADDRESS STA ABGFR OF POINTER TO ABGFR LIST INA STA ABGPR INA STA ARTFR INA STA ARTPR LDA MPSA GET THE SYSTEM AVAILABLE MEMORY WORD RAL,CLE,ERA STRIP THE INDIRECT BIT LDA A,I GET THE ADDRESS SSA IF STILL INDIRECT DO IT AGAIN JMP *-3 STA MPSA SAVE FOR PHYSICAL MEMORY MESSAGE * JSB EXEC DO A CORE LOCK SO WE DON'T GET DEF LOCK SWAPPED OUT OF PARTITION # 1 AND GO DEF D22 INTO A DIFFERENT PARTITION. DEF D1 * * LOCK LDA XEQT GET MY ID ADDRESS STA MYID SAVE IT SO I CAN WRITE ON SYSTEM TRACKS LDA MATT,I GET THE $ MATA TABLE ADDRESS AND STA MATT SAVE IT JSB EXEC OUTPUT RT PART'N RQMNTS DEF RTRN1 DEF D2 DEF LU+1 DEF BUFR1 DEF D11 RTRN1 JSB REPRT LIST RT PROGRAMS AND RQMNTS LDA BG FIX OLD BUFFER TO PRINT BG HEADER STA BUFR1+1 ISZ TYPE CHANGE THE TYPE WE ARE LOOKING FOR ISZ RPT1 CHANGE ADDRESS OF LARGEST PROG SIZE ISZ RPT2 WORD SO WE CAN GET LARGEST BG PROG TOO JSB LNFED MAKE THE OUTPUT PRETTY FOR THE FOLKS * JSB EXEC PRINT BG PART'N RQMNTS DEF RTRN2 DEF D2 DEF LU+1 DEF BUFR1  DEF D11 RTRN2 JSB REPRT GO PRINT ALL THE BG PROGRAMS AND RQMNTS * * * * LDA ENDS,I GET END OF OP SYS. THIS IS CMA,INA MAX PART'N W O COMMON ADA D33 SUBTRACT FROM 33 TO GIVE SIZE+BASE PAGE STA MAXNC IN PAGES * LDB MPFT,I GET MEMORY PROTECT FENCE TABLE INB IXDEX TO MEMORY RESIDENT PROG WORD LDB B,I LSR 9 GET PAGE # IN LOW BITS INB ALLIGN TO NEXT PAGE IF NECESSARY BRS DIVIDE BY 2 TO GET # OF PAGES LEFT CMB,INB SUBTRACT 32 TO GET # OF PAGES ADB D33 WITH COMMON + 1 FOR BASE PAGE STB MAXWC SAVE IT * LDB MATT STUFF IT BACK MATT = ADDRESS OF $MATA ADB DM1 GO TO MAX # OF PARTITIONS WORD LDA B,I STA MAXPT SAVE THE MAX # OF PARTITIONS MPY D6 MULTIPLY BY 6 TO GET ENTIRE TABLE SIZE ADA XMATA ADD THE DEF TO XMATA TO GET US THE STA EMATA END OF THE XMATA TABLE +1 * LDA MAXPT GET MAX # OF PARTITIONS AGAIN MPY D6 MULTIPLY AGAIN ADA MATT NOW ADD IN REAL MATA ADDRESS STA EMATT THIS IS THE END OF THE REAL $MATA TABLE * CLB B REG = 0 FOR SHIFT LDA MPSA,I GET THE SYSTEM AVAILABLE MEMORY WORD LSR 10 SAVE ONLY THE # OF PAGES BITS ADA MPSA,I NOW ADD IN THE START PAGE # AND MASK3 KEEP ONLY PAGE # STA FIRST THIS IS THE FIRST PHYSICAL PAGE AVAILABLE * * JSB LNFED DO A LINE FEED CLB,INB SAVE PARTITION # WE ARE LOOKING AT STB JTEMP FOR OUTPUT MESSAGE LDA MATT GET THE $MATA ADDRESS STA ITEMP AND SAVE FOR LOOP RSVD ADA D4 INDEX TO THE RESERVED BIT WORD LDB A,I GET THE WORD SSB,RSS IS THE PARTITION RESERVED ? JMP ADD2 NO GO LOOK AT THE NEXT ONE LDA JTEMP YES, GET THE PARTITION # JSB CNVRT CONVERT TO ASCII  STA BRESV+6 AND STORE INTO THE OUTPUT BUFFER JSB EXEC NOW TELL THE FOLKES DEF ADD2 THAT THIS PARTITION IS RESERVED DEF D2 DEF LU+1 DEF BRESV DEF D12 ADD2 LDA ITEMP GET THE MATA ADDRESS ADA D6 CPA EMATT END OF THE TABLE ? JMP TELPG YES , NOW GO ZERO OUT PHONEY MATA STA ITEMP NO, SAVE ITEMP FOR LATER ISZ JTEMP INCREMENT PARTITION COUNTER JMP RSVD AND LOOK AT THE NEXT PARTITION * * TELPG JSB LNFED DO A LINE FEED LDA FIRST GET THE 1ST PHYSICAL PAGE FOR PARTITIONS JSB CNVRT CONVERT TO ASCII STA PGBUF+9 STORE IN OUTPUT MESSAGE JSB EXEC NOW TELL THE USER WHERE THE 1ST DEF NO.GO PARTITION STARTS IN PHYSICAL MEMORY DEF D2 SO HE CAN CALCULATE WHERE TO DO PAGE DEF LU SPARING FOR PARITY ERRORS. DEF PGBUF DEF D10 * NO.GO LDA XMATA GET XMATA LOCATION LOOPR LDB DM1 GET THE UNDEFINED PARTITION FLAG STB A,I MAKE PARTITION UNDEFINED LDB DM5 MAKE AN INTERNAL LOOP INDEX STB ITEMP SAVE INA STEP TO NEXT WORD CLB GET A ZERO READY LOPNN STB A,I ZERO THE WORD INA STEP TO THE NEXT WORD ISZ ITEMP DONE WITH THE INNER LOOP ? JMP LOPNN NO CPA EMATA DONE WITH INITIALIZING THE XMATA TABLE RSS YES JMP LOOPR NO * * LDA LU+2 NOW GET THE THIRD PROGRAM INPUT PARAMETER CPA .M IS IT A /M ? JMP IREAD YES, GO READ IN THE MATA TABLE OFF THE DISC CPA .D IS IT A /D JMP EXIT YES SO GO EXIT PROGRAM. * * * JSB LNFED DO A LINE FEED TO MAKE I/O PRETTY JSB EXEC GO TELL THE FOLKS HOW MUCH ROOM THEY HAVE DEF RTRN4 DEF D2 DEF LU+1 DEF BUFR3 DEF D16 RTRN4 LDA MAXNC GET THE MAX SIZE W/O COMMON JSB 7CNVRT CONVERT TO ASCII STA BUFR4+5 PUT IN OUTPUT MESSAGE JSB EXEC THIS SAYS HOW MUCH W/O COMMON DEF RTRN5 DEF D2 DEF LU+1 DEF BUFR4 DEF D9 RTRN5 LDA BLANK OVERLAY THE W/O WITH A W STA BUFR4+2 LDA MAXWC GET MAX PAGE SIZE WITH COMMON JSB CNVRT CONVERT TO ASCII STA BUFR4+5 PUT IN MESSAGE JSB EXEC TELL EM HOW MUCH ROOM WITH COMMON DEF RTRN6 DEF D2 DEF LU+1 DEF BUFR4 DEF D9 RTRN6 LDA O. PUT THE W/O BACK IN CASE WE COME STA BUFR4+2 BACK THIS WAY AGAIN * * JSB LNFED * * LDA MAXPT GET THE MAX # OF PARTITIONS JSB CNVRT CONVERT TO ASCII STA BUFRA+15 STORE AWAY FOR FOLLOWING MESSAGE JSB LNFED DO A LINE FEED JSB EXEC TELL THE PEOPLE HOW MANY PARTITIONS DEF RTN6A THEY CAN DEFINE DEF D2 DEF LU DEF BUFRA DEF D16 * * RTN6A JSB LNFED DO A LINE FEED JSB EXEC ASK USER HOW MANY PAGES IN PHYSICAL MEMORY DEF RTRN9 DEF D2 DEF LU DEF BUFR5 DEF D14 RTRN9 JSB GETIT GO GET INPUT AND PARSE IT LDA D1024 SET UP STA HILIM LIMITS FOR LDA D32 THE HI - LO STA LOLIM TEST LDA IPBUF+1 GET THE NUMBER OF PAGES THAT USER INPUTTED CMA MAKE IT NEG AND SUBRACT 1 AS WELL STA LU+4 SAVE THIS FOR THE NOMOR CHECK DONE LATER LDA IPBUF+1 GET IT AGAIN JSB CFRST CHECK FOR /E OR NEG #S ISZ IERR ANY ERRORS ? RSS NOPE JMP RTRN6 YES TRY AGAIN JSB LIMT1 CHECK BOUNDS ISZ IERR OK RSS YES JMP RTRN6 NO LDA FIRST GET 1ST PAGE OF PARTITION AREA CMA,CCE,INA MAKE NEG AND INSURE DECIMAL CONVERSION FOR LATER ADA IPBUF+1 SUBTRACT IT FROM TOTAL PAGES STA RMAIN THIS IS THE # OF PAGES REMAINIKNG IN SYS JSB CNVT3 GO CONVERT PAGES REMAINING TO ASCII LDB A,I A REG CONTAINS ADDRESS OF ASCII STRING STB BUFR6+9 NOW GO STUFF ASCII INTO OUTPUT MESSAGE INA DLD A,I GET LAST TWO WORDS DST BUFR6+10 PUT THEM INTO THE OUTPUT BUFFER * JSB LNFED DO A LINE FEED JSB EXEC SO GO TELL HIM HOW MANY PAGES LEFT DEF RTN10 DEF D2 DEF LU DEF BUFR6 DEF D12 RTN10 JSB LNFED DO A LINE FEED JSB EXEC NOW TELL HIM TO DEFINE THE REMAINING PAGES DEF PRT.N DEF D2 DEF LU DEF BUFR7 DEF D10 * * *****WE NOW READ INPUT ABOUT THE NEW PARTITIONS***** * * SKP * * * * ********************************************************************* * HERE STARTS 1ST INPUT SECTION OF CODE * * THE FOREGOING WAS JUST PRELIMINARY INFO * ********************************************************************* * * * * PRT.N LDB D1 SET UP STB LOLIM FOR THE HI LO LDB MAXPT TEST AGAIN STB HILIM JSB GETIT GET THE 1,2,BG - 2,6,RT - 3,12,BG ETC INPUT LDA IPBUF+1 GET THE 1ST WORD INPUTTED .. THE PART'N # OR /E CPA .E ARE WE FINISHED WITH THIS PHASE ? JMP SUMRY YES GO CHECH THE SUM OF THIS PHASES INPUT. CLB CLEAR THE ERROR FOR THIS TRY FLAG SO STB OK2GO WE KNOW IF TO USE THIS INFO JSB CFRST SEE IF WE GOT A /D,/E,OR NEG # ? JSB LIMT1 SEE IF PART'N # IN RANGE LDA IPBUF+5 GET THE # OF PAGES FOR THAT PART'N LDB D2 SET UP HI LO STB LOLIM TEST FOR NEXT LIMITS ON NEXT WORD INPUT LDB MAXNC STB HILIM JSB LIMT2 SEE IF # OF PAGES IS IN RANGE LDA IPBUF+9 JSB BGORT SEE IF ITS BG OR RT LDA IPBUF+13 GET THE RESERVED WORD JSB RESRV LDA OK2GO LOOK AT THE ERROR FLAG  SZA EVERYTHING COOL ? JMP PRT.N NO! GO TRY AGAIN LDA IPBUF+1 YES, SO GET THE REFRENCED PARTITION # ADA DM1 INDEX TO THAT PARTITIONS ENTRY IN XMATA MPY D6 ADA XMATA WE ARE NOW POINTING TO REFRENCED PART'N CLB STB A,I DEFINE THE PARTITION ADA D4 WE NOW POINT TO THE PART'N SIZE WORD LDB IPBUF+5 GET # OF PAGES ADB DM1 GET RID OF BASE PAGE STB A,I STICK IT INTO XMATA LDB IPBUF+13 GET THE RESERVED WORD CPB R IS THERE AN R RSS YES JMP ROUT NO LDB A,I SO GET THE WORD WE JUST PUT AWAY ADB SIGN SET THE SIGN BIT STB A,I AND STICK IT BACK AGAIN ROUT INA A NOW POINTS TO THE LAST MATA WORD LDB IPBUF+9 GET THE BG OR RT WORD CPB RT IS IT RT RSS YES JMP NORT NO, CONTINUE WITH FURTHER PROCESSING LDB SIGN SET THE RT BIT STB A,I IN THE MATA WORD JMP PRT.N NOW LETS DO NEXT PARTITION NORT CLB CLEAR OUT POSSIBLE RT STB A,I BIT SET BY PREVIOUS USER MISTAKE JMP PRT.N GO GET NEXT ENTRY * * * * MAKE SURE THAT THERE ARE NO IMBEDDED * UNDEFINED PARTITIONS * * * SUMRY CLA,INA STA DEFIN INITIALIZE THE # OF DEFINED PARTITIONS WORD LDA XMATA GET START OF XMATA LDB A,I GET 1ST WORD SSB BETTER NOT BE UNDEFINED ! IS IT JMP INBED TURKEY ! LOOP2 ADA D6 INDEX TO NEXT XMATA ENTRY CPA EMATA END OF MATA ? JMP NOMOR YES, EVIDENTLY THEY DEFINED ALL THE PARTITIONS LDB A,I GET FIRST WORD OF NEXT PARTITION SSB IS IT DEFINED JMP LOOK NO, LOOK AND SEE IF ANY OTHER DEFINED PARTITIONS ISZ DEFIN YES,INCREMENT # OF DEFINED PARTITIONS WORD JMP LOOP2 LETS DO IT AGAIN FANS * LOOK ADA D6 GET TO NEXȹT ENTRY CPA EMATA END OF XMATA TABLE JMP NOMOR YES , ALL IS WELL LDB A,I GET THE VALUE SZB,RSS IS THIS PARTITION DEFINED JMP INBED YES, AN INBEDDED DEFINED PARTITION * JMP LOOK NO, LOOK AT NEXT PARTITION * * GO FILL IN THE START PAGE VALUES FOR XMATA * NOMOR LDA DEFIN GET # OF DEFINED PAGES CMA,INA MAKE NEGATIVE FOR LOOPS STA LU+2 SAVE TEMPORARIALY FOR LOOPS LDA XMATA GET START OF 1ST PARTITION ADA D3 INDEX TO STARTING PAGE # LDB FIRST GET START PAGE OF FIRST PARTITION LOOP3 STB A,I STORE START PAGE OF PART'N INA POINT A REG TO PARTITION SIZE ADB A,I ADD IN PARTITION SIZE RBL,CLE,ERB STRIP POSSIBLE SIGN BIT (RT PARTITION) INB ADD IN BASE PAGE ADA D5 INDEX TO NEXT XMATA EXTRY ISZ LU+2 LAST PARTITION ? JMP LOOP3 NO, GO STUFF IT AWAY ADB LU+4 YES SEE IF SUM TOO LARGE SSB,RSS IS IT ? JMP SMERR YES , EVIDENTLY THE USER CAN'T ADD * * * *NOW ASK IF THE USER WISHES TO USE THE PARITY ERROR OPTION. *THEN GO CHECK IF THERE IS AT LEAST ONE BG & ONE RT PARTITION *AS LARGE AS THE LARGEST RT & RT PROGRAMS IN THE SYSTEM *CURRENTLY. * * JSB EXEC ASK USER IF HE WISHES DEF PRTYN TO EXERCISE THE PARITY DEF D2 ERROR OPTION TO GET RID OF DEF LU OF 1K OF MEMORY. DEF PBUFR DEF D9 * PRTYN JSB GETIT GO GET HIS ANSWER LDA IPBUF+1 PUT ANSWER IN A REG JSB CFRST SEE IF IT'S A /D CPA YE DOES HE WISH TO USE THE OPTION JSB PTY YES SO GO TO THE PARITY ERROR SUBROUTINE LDA XMATA GET START AND LDB EMATA STOP ADDRESS OF DUMMY MATA TABLE AND JSB SZCHK NOW GET THE LARGEST BG & RT PARTITIONS JSB SZISZ SEE IF OUR LARGEST PROGS WILL FIT * * * * * **************T640***************************************************** **ALL THAT REMAINS TO DO TO XMATA IS THREAD THE RTFR & BGFR LISTS** ******************************************************************* * * * * LDA DEFIN GET THE # OF DEFINED PARTITIONS MPY D6 FIND NEW EMATA LENGTH ADA XMATA ADD TO BEGINING OF XMATA STA PMATA AND NOW WE HAVE END OF DEFINED XMATA + 1 * * K6* JSB BLINK GO THREAD THE RT LIST ISZ OVLAY CHANGE THE SZB TO A SZB,RSS AND GOT ISZ DEFRT LINK BACKROUND PROGRAMS JSB BLINK DO IT AGAIN ( WASN'T THAT CLEVER ?? ) JMP CHNGE * * IF NO RT PARTITIONS CRTFR = 0 AT THIS POINT * BLINK NOP LDA XMATA LETS THREAD THE RTFR LIST FIRST. DO.RT STA LINK LINK IS NEW MATA ENTRY TO BE THREADED LDB DEFRT POINTER TO THE DUMMY RTFR LIST HEAD STB ITEMP ITEMP IS POINTER TO LINKED ENTRY CPA PMATA END OF LIST JMP DO.BG YES ADA D5 INDEX TO PARTITION TYPE WORD LDB A,I GET THE CONTENTS OVLAY SSB IS IT A RT PARTITION ? JMP THRED YES , GO THREAD IT IN INA NO LETS LOOK AT NEXT XMATA ENTRY JMP DO.RT GO LOOK FOR ANOTHER RT PARTITION * * * * THIS ROUTINE THREADS OUT DUMMY RTFR LIST THRED LDB LINK GET ADDRESS OF XMATA ENTRY UNDER CONSIDERATION LDA ITEMP,I SZA,RSS IF 1ST RT PART'N SKIP THE LIST SEARCH JMP GOTIT NO , NOBODY IN LIST YET * NOW LETS SEE WHERE TO LINK IT IN * ADB D4 INDEX TO SIZE WORD LDB B,I GET SIZE RBL,CLE,ERB STRIP THE RT BIT CMB MAKE NEG AND SUBTRACT ONE FOR TESTS STB SIZE SIZE = - SIZE OF PART'N TO BE ADDED TO LIST * SEE IF WE BELONG BEFORE OR AFTER CURRENT * LIST ENTRY NEXT STA JTEMP STORE AWAY ADDRESS OF WHO WE'RE POINTING TO ADA D4 LDA A,I GET CURRENT ENTRIES SIZE RAL,CLE,ERA STRIP RT BIT ADA SIZE ADD IN SIZE OF NEW ENTRY SSA,RSS DO WE BELONG BEFORE OR AFTER CURRENT ENTRY ? JMP LNKIT BEFORE SO LINK IT IN. LDA ITEMP,I AFTER SO UPDATE OUR POINTERS AND TRY AGAIN STA ITEMP LDA JTEMP,I SZA DID WE GET TO THE END OF THE LIST JMP NEXT NO SO TRY NEXT GUYP IN THE LIST LDB LINK YES , SO ADD THIS FELLOW TO THE END. STB JTEMP,I LDA LINK JMP NEXT1 * * * LNKIT LDA ITEMP,I LINK IN THE NEW STA LINK,I MATA ENTRY IN LDA LINK THE PLACE IT BELONGS STA ITEMP,I JMP NEXT1 * * GOTIT STB ITEMP,I DO THIS FOR THE 1ST LDA LINK RT PARTITION ENCOUNTERED . AFTER NEXT1 ADA D6 ALL A LIST MUST START SOMEPLACE. JMP DO.RT * * DO.BG JMP BLINK,I * * * NOW CHANGE THE PHONY ADDRESS TO REAL $MATA ADDRESSES * * * CHNGE LDA XMATA GET THE HEAD OF THE XMATA TABLE CMA,INA MAKE NEGATIVE FOR LOOP STA ITEMP LDA XMATA REAL LDB A,I GET THE CONTENTS WHICH WILL BE A PHONY ADDRESS SZB,RSS IF 0 IT IS NOT AN ADDRESS. IS END OF A LIST JMP REAL1 SO GO TO NEXT ENTRY ADB ITEMP SUBTRACT PHONEY HEAD OF TABLE TO GIVE OFFSET ADB MATT ADD IN TRUE $MATA ADDRESS. NOW HAVE TRUE VALUE STB A,I STUFF IT BACK REAL1 ADA D6 GET TO NEXT ENTRY CPA PMATA END OF DEFINED XMATA TABLE ? RSS YES JMP REAL NO , SO DO IT AGAIN * * LDA CRTFR GET OUR PHONY RTFR HEAD SZA,RSS ANY REAL TIME PARTITIONS JMP REAL2 NOPE, NO REAL TIME PARTITIONS ! ADA ITEMP SUBTRACT PHONY START ADA MATT ADD OFFSET TO REAL START TO GET REAL ADDRESS STA CRTFR DO THE SAME WITH THE PHONY BGFR HEAD * * REAL2 LDA CBGFR DO SAME WITH ADA ITEMP OUR BGFR HEAD OF FREE LIST ADA MATT STA CBGFR * *********************************************************************** * DISC SNAPSHOT COMPLETE * *********************************************************************** * * LDA SWPIT GET SWPIT ID ADDRESS SZA,RSS IS SWPIT A PROGRAM JMP DISK NO ONLY DISC CHANGES ALLOWED LDA XMATA F}NOW SEE WHAT SIZE PARTITION # 1 WILL BE ADA D4 INDEX TO SIZE WORD LDB A,I GET THE WORD AND AND MASK3 KEEP ONLY SIZE INFO CMB,INB NOW SEE IF THE SIZE IS LESS THAN THIS ADB D2 PROGRAM. SSB,RSS IS THE NEW PARTITION # 1 TOO SMALL FOR ME ? JMP DISK YES * * ASKER JSB ASKIT MEMORY CHANGE OK. SEE WHAT KIND OF CHANGE * * * DDOIT JSB GETIT GET AND PARSE ANSWER LDA IPBUF+1 PUT ANSWER IN A REG STA CTYPE SAVE FOR LATER JSB CFRST SEE IF ITS A /D FOR EXIT OF PROGRAM CPA TE TEMP ? JMP XFO YES CPA PE PERM CHANGE ? JMP DISK YES CPA DI DISC ONLY CHANGE ? JMP DISK YES JSB ERROR TRY AGAIN JMP ASKER CHARLIE ! * * ********************************************************************* * STUFF THE NEW MATA TABLE OUT ON THE DISC * ********************************************************************* * DISK LDA MATT GET THE TRUE MATA ADDRESS TO A JSB TRK CONVERT TO DISC TRACK,SECTOR,AND WORD * LDA XMATA SET UP STA LMATA FOR THE DISC WRITE OF NEW $MATA LDA WORD CALCULATE START POINT OF WORD TRANSFER ADA BUF64 FROM PHONY MATA INTO DISC WRITE BUFFER STA IBUFR OLOOP JSB DREAD NOW DO THE READ BEFORE WRITE ONEXT LDA LMATA,I MOVE OUR NEW $MATA TABLE STA IBUFR,I INTO THE DISC WRITE BUFFER ISZ LMATA BUMP OUR POINTER TO ELEMENT OF MATA TABLE ISZ IBUFR BUMP DISC WRITE BUFFER POINTER LDA LMATA HAS ENTIRE NEW $MATA TABLE CPA EMATA BEEN COPIED JMP POST YES SO POST IT TO THE DISC LDA IBUFR ARE WE AT THE END OF THE CPA EBUFR DISC WRITE BUFFER ? JMP POST YES, SO POST IT JMP ONEXT GO COPY REST OF NEW $MATA TABLE * * POST LDB MYID GET MY ID ADDRESS LD`+A TAT GET THE TRACK ASSIGNMENT TABLE ADDRESS TOO ADA TRACK ADD IN TRACK # SO THAT NOW WE CAN JSB IPUT GO PATCH TAT TEMPORARIALLY JSB DWRIT PATCH THE DISC !!!!! LDB SYSTM NOW GO LDA TAT BACK ADA TRACK AND JSB IPUT RESTORE TAT LDA LMATA IS IT CPA EMATA TIME TO QUIT JMP OUT YES LDA BUF64 NO DO IT AGAIN STA IBUFR ISZ SECTR STEP TO NEXT SECTR LDA SECTR DID WE SLOP OVER A TRACK ? ADA DM96 SSA JMP OLOOP NOPE STA SECTR YES WE DID ISZ TRACK STEP TRACK POINTER JMP OLOOP NOW ITS OK TO DO IT AGAIN. * * OUT LDA RTFR UPDATE THE POINTERS TO THE LDB CRTFR $RTFR LIST JSB UPDAT ON THE DISC LDA BGFR AND NOW UPDATA THE LDB CBGFR POINTER TO THE $BGFR JSB UPDAT ALSO. DISC CHANGE COMPLETE !!! * LDA IPBUF+1 WAS THE CHANGE CPA PE A PERMINANT ONE ? RSS YES SO MODIFY MEMORY ALSO (THIS IS HARRY !) JMP MPROG NO, NOW GO ASK FOR PROG SIZE CHANGES XFO JSB XFER GO DO IT TO MEMORY !!!!!!!!!!!!!!!!!!!!!! JMP IREAD IF WE ARE FINISHED WE COME BACK HERE JSB EXEC THE MEMORY FIX DIDNT WORK YET SOMEBODY DEF PMEM IS IN CORE AND MUST BE SWAPPED DEF DNINE SO SCHEDULE SWPIT TO THAT PARTITION DEF SWAP AND DO IT WITH NO ABORT DEF LU PASS THE INTERACTIVE LU DEFF PTN AND THE PARTITION # TO SWPIT PMEM NOP SZA WAS THE SCHEDULE SUCCESSFUL ? JMP EXIT NO, GET OUT QUICK ! JMP XFO YES, SO TRY THE MEMORY FIX AGAIN * * * * THIS ROUTINE READS IN THE MATA TABLE OFF THE DISC IN CASE * THE MATA TABLE DEFINED ON THE DISC IS DIFFERENT FROM THAT IN * MEMORY. WE DO THIS SO DISC CHANGES CAN BE CHECKED AGAINST DISC * INFO AND MEMORY CHANGES CAN BE CHECKED MEMORY INFO. THIS B * ROUTINE WILL ONLY BE EXECUTED IF A /M WAS PUT INTO THE THIRD * SCHEDULE PARAMETER OR IF MEMORY CHANGES TO THE $MATA TABLE * WERE MADE AND THE DISC COULD POSSIBLY BE DIFFERENT. * IREAD LDA MATT GET THE ADDRESS OF THE $MATA TABLE IN MEMORY JSB TRK AND CONVERT TO TRACK, SECTOR, AND WORD # LDA XMATA GET THE FINAL DESTINATION ADDRESS STA LMATA AND SAVE AS POINTER LDA WORD GET THE WORD # OFFSET INTO SECTOR ADA BUF64 ADD IN START OF READ ARRAY STA IBUFR AND SAVE AS POINTER TO BEGIN DNEXT JSB DREAD READ THE SECTOR RNEXT LDA IBUFR,I AND TRANSFER TO DESTINATION ARRAY STA LMATA,I ISZ IBUFR NOW BUMP OUR POINTERS ISZ LMATA LDA LMATA NOW TEST THEM CPA EMATA DONE WITH TRANSFER ? JMP MPROG YES, GO THE MOD PROG PAGE REQMNTS SECTION LDA IBUFR NO, SO CHECK THE DISC READ SECTION CPA EBUFR END OF 64 WORD DISC READ BUFFER ? RSS YES, SO READ IN ANOTHER SECTOR JMP RNEXT NO TRANSFER ANOTHER WORD LDA BUF64 RESET THE 64 WORD ADDRESS POINTER STA IBUFR ISZ SECTR INCREMENT THE SECTOR # LDA SECTR AND CHECK TO SEE IF WE ADA DM96 SLOPPED OVER A TRACK SSA DID WE ? JMP DNEXT NO, DO THE DISC READ STA SECTR YES, SO RESET THE SECTOR # ISZ TRACK AND BUMP THE TRACK # JMP DNEXT NOW GO READ THE NEXT SECTOR. * * SKP * ******************************************************************** * MODIFY PROGRAM PAGE REQUIREMENTS SECTION ******************************************************************* * * MPROG JSB EXEC PUT OUT THE 'MODIFY PROGRAM PAGE DEF MRTN REQUIREMENTS ' MESSAGE DEF D2 DEF LU DEF MBUFR DEF D18 MRTN JSB CHNGR GET THE USERS ANSWER AND CHECK IT OUT SZB,RSS IS THIS A MEMORY ONLY CHANGE ? JMP MCHNG YES ȓ SSB,RSS WHAT TYPE CHANGE ? JMP AOUT NO CHANGE A /E ENTERED (EXIT IS FROM HERE) * * DCHNG LDA XMATA THIS STARTS DISC MOD SECTION FOR SIZE CHANGE LDB EMATA SO GET DISC PARTITION INFO FOR SZCHK SUBROUTINE JSB SZCHK NOW GO FIND LARGEST BG & RT PARTITIONS CLA CLEAR THE STA OK2GO ACCUMULATED ERRORS FLAG JSB SZTST TEST THE LIMITS LDA OK2GO GET THE ERROR FLAG SZA ANY ERRORS ? JMP DERR YES SO TELL THE FOLKS THAT YOUR UNHAPPY JSB NWVAL GO CALCULATE THE NEW VALUE & LOCATION LDA LU+3 GET LOCATION LDB LU+4 GET NEW VALUE JSB UPDAT GO UPDATE THE DISC * WCHNG LDA IPBUF+1 GO GET HIS REQUEST AGAIN CPA DI WAS IT A DISC ONLY REQUEST ? JMP MRTN YES, SO GO GET NEXT PROGRAM TO MODIFY * MCHNG LDA MATT NO, SO MODIFY MEMORY. GET LIMITS LDB EMATT OF THE $MATA TABLE IN MEMORY JSB SZCHK AND FIND BIGGEST BG &RT PARTN IN MEMORY CLA CLEAR THE ACCUMULATED ERRORS FLAG STA OK2GO JSB SZTST NOW GO CHECK FOR ERRORS LDA OK2GO GET THE ERROR FLAG SZA ANY ERRORS ? JMP MERR YES SO TELL'EM TO FORGET IT JSB NWVAL NO,SO GO GET THE NEW VALUE & LOCATION LDA LU+3 GET LOCATION LDB LU+4 GET NEW VALUE JSB IPUT NOW GO PATCH MEMORY TO REFLECT USERS DESIRE JMP MRTN GO SEE WHAT TO DO NEXT * * * SZTST NOP LDA BFLAG GET LARGEST BG PARTITION LDB TYPE GET PROGRAM TYPE CPB D2 IS IT RT PROGRAM LDA RFLAG YES, SO GET LARGEST RT PARTITION INSTEAD STA HILIM NOW USE THIS AS THE UPPER LIMIT LDB KEY1,I GET ID ADDRESS AGAIN ADB D22 INDEX TO LOW MAIN WORD LDA B,I GET THE PROGS START ADDRESS CMA MAKE NEG -1 INB NOW POINT TO HIGH MAIN ADA B,I  NOW HAVE PROGRAM SIZE CLB GET READY FOR SHIFT LSR 10 SHIFT SIZE DOWN IE DIV BY 1024 ADA D2 ADD IN BASE PAGE STA LOLIM THIS IS AS SMALL AS PROG CAN BE LDA LU+2 GET THE SIZE THAT WAS SPECIFIED JSB LIMT1 AND CHECK IT OUT JMP SZTST,I NOW RETURN * * NWVAL NOP THIS SUB FORMATS THE CORRECT VALUE LDA LU+2 GET THE NEW SIZE ADA DM1 AND GET RID OF BASE PAGE LSL 10 SHIFT ANSWER UP TO CORRECT FIELD STA LU+4 AND SAVE TEMPORARIALLY LDB KEY1,I GET ID ADDRESS AGAIN ADB D21 INDEX TO THE # OF PAGES WORD LDA B,I GET THE INFO AND MASK6 SAVE ONLY THE MPFI INFO ADA LU+4 NOW ADD IN THE NEW # OF PAGES STA LU+4 NOW TEMPORARIALLY SAVE THE INFO STB LU+3 SAVE THE ADDRESS TOO. JMP NWVAL,I RETURN TO USER WITH LOC=LU+3,VAL=LU+4 * * DERR JSB EXEC NOW TELL THEM WHAT TYPE ERROR THEY MADE DEF DERRR DEF D2 DEF LU DEF DCBUF DEF D11 DERRR JMP WCHNG DCBUF ASC 11, DISC CHANGE ILLEGAL * * MERR JSB EXEC TELL THEM WHAT TYPE ERROR DEF MERRR DEF D2 DEF LU DEF MRBUF DEF D12 MERRR JMP MRTN MRBUF ASC 12, MEMORY CHANGE ILLEGAL * * SKP * * *********************************************************************** * THIS SECTION ASSIGNS PROGRAMS TO PARTITIONS * *********************************************************************** * * * AOUT JSB EXEC ASK THE USER IF HE WISHES DEF ARTN TO ASSIGN A PROGRAM TO A PARTITION DEF D2 DEF LU DEF ABUFR DEF D17 ARTN JSB CHNGR GET HIS ANSWER AND CHECK IT OUT * SZB,RSS IS THIS A MEMORY ONLY CHANGE ? JMP RMEMY YES, SO GO DO IT TO IT. SSB,RSS NO,SO WHAT TYPE IS IT JMP ENDER NO CHANGE. /E ENTERED. PROGRAM OVER !!!! * RDISC LDB LU+2 GET THE PARTITION ASSIGNMENT SZB,RSS AND IF UNASSIGN DESIRED THEN NO ERROR CHECK JMP AGO2 LDB XMATA GET THE START OF THE MATA TABLE ON DISC CLA CLEAR THE STA OK2GO ACCUMULATED ERRORS FLAG LDA LU+2 NOW GET THE NEW SIZE JSB ASTG1 AND CHECK FOR ERRORS LDA OK2GO GET THE ERROR FLAG SZA ANY ERRORS JMP ADERR YES AGO2 JSB GTVAL NO,SO GET OUR NEW VALUES LDA LU+3 GET THE LOCATION LDB LU+4 GET THE VALUE JSB UPDAT DO THE DISC FIX * RNXT LDA IPBUF+1 GET THE LAST ANSWER AGAIN CPA DI WAS IT DISC ONLY ? JMP ARTN THEN WE'RE DONE SO GET NEXT PROGRAM * RMEMY LDB LU+2 GET THE PARTITION ASSIGNMENT AND SZB,RSS IF UNASSIGN DESIRED THEN NO JMP AGO3 ERROR CHECK LDB MATT NOW DO MEMORY FIX.GET MEMORY MATA CLA STA OK2GO CLEAR THE ACCUMULATED ERRORS FLAG LDA LU+2 GET THE NEW PARTITION ASSIGNMENT JSB ASTG1 AND CHECK FOR ERRORS LDA OK2GO GET THE ACCUMULATED ERRORS FLAG SZA ANY ERRORS ? JMP AERR YES AGO3 JSB GTVAL NO, SO GET NEW VALUES LDA LU+3 NOW GET THE LOCATION LDB LU+4 AND THE NEW VALUE JSB IPUT AND PATCH MEMORY JMP ARTN GO GET NEXT PROGRAM * * ASTG1 NOP STB LU+3 ADA DM1 NOW SEE IF PARTITION LARGE ENOUGH MPY D6 ADA LU+3 INDEX TO $MATA ENTRY ADA D4 INDEX TO SIZE WORD LDA A,I GET THE SIZE RAL,CLE,ERA STRIP RESERVED BIT STA HILIM SAVE FOR UPPER LIMIT TEST CLA,INA SET THE LO LIMIT STA LOLIM LDB KEY1,I GET THE PROGRAMS ID ADDRESS ADB D21 INDEX TO THE # OF PAGES WORD LDA B,I GET THE WORD CLB LSR 10 SHIFT IT DOWN AND MASK1 GET RID OF RESERVED BIT n JSB LIMT1 CHECK TO SEE IF PROGRAM FITS JMP ASTG1,I AND RETURN TO CALLER * * * GTVAL NOP LDA KEY1,I GET THE ID SEG ADDRESS AGAIN ADA D21 GET TO THE # OF PAGES WORD STA LU+3 SAVE AS FIX LOCATION LDB LU+2 GET PARTITION # AGAIN SZB IF = 0, THEN UNASSIGN PROGRAM ADB DM1 MAKE COUNT START FROM 0 INSTEAD OF 1 STB LU+4 SAVE TEMPORAILLY LDB LU+2 GET PARTITION SPECIFIED AGAIN LDA LU+3,I GET THE # PAGES WORD AGAIN AND MASK5 SAVE ONLY #OF PAGES & MPFI SZB IF PART'N SPECIFIED = 0 THEN DON'T ADA SIGN SET RESERVED BIT,ELSE SET IT ADA LU+4 AND PUT IN PARTITION # STA LU+4 SAVE THIS TEMPORARIALLY JMP GTVAL,I RETURN TO CALLER * * ADERR JSB EXEC NOW TELL THEM WHAT TYPE DEF ADRTN DEF D2 DEF LU DEF DCBUF DEF D11 ADRTN JMP RNXT * * AERR JSB EXEC TELL THEM WHAT TYPE ERROR DEF AERTN DEF D2 DEF LU DEF MRBUF DEF D12 AERTN JMP ARTN * * ************************************************************************ * SEND THE END MESSAGE THE PROGRAM IS OVER * ************************************************************************ * ENDER JSB EXEC DEF END DEF D2 DEF LU DEF IQUIT DEF D12 END JMP ENDIT EXIT JSB EXEC ABNORMAL TERMINATION DEF ENDIT DEF D2 DEF LU DEF TMBUF DEF D9 ENDIT JSB EXEC EXIT THE PROGRAM DEF XXXXX DEF D6 DEF INOP XXXXX NOP TMBUF ASC 9, DFINE TERMINATED * * SKP ****************************************************************** * SUBROUTINES ****************************************************************** * * * REPRT NOP LDA KYWRD GET FIRST WORD OF THE KEYWORD BLOCK STA KEY1 SAVE AS A POINTER LOOP1 LDA KEY1,I GET AN ID ADDRESS SZA,RSS IF END OF KEYWORK BLOCK RETURN TO CALLER JMP REPRT,I STA B SAVE FOR LATER ADA D14 INDEX TO TYPE AND SS INFO LDA A,I GET THE CONTENTS OF TYPE WORD AND MASK1 MASK OFF ALL BUT LOWER 5 BITS CPA TYPE IS IT A SEGMENT OR WRONG TYPE JMP OUTIT NO, SO PRINT IT OUT TRY ISZ KEY1 YES TRY NEXT ID JMP LOOP1 EITHOR A SHORT SEG OR WRONG TYPE OUTIT ADB D12 GET NAME AND STUFF IT IN BUFFER LDA B,I SZA,RSS IF NOBODY HOME, TRY NEXT IS SEG JMP TRY STA BUFR2+2 STORE AWAY 1ST TWO CHARACTERS INB BUMP POINTER LDA B,I NOW THE STA BUFR2+3 NEXT TWO INB BUMP POINTER LDA B,I GET LAST CHARACTER AND B1774 MASK OFF UMWANTED INFO IOR B40 ADD ASCII BLANK TO PROG NAME STA BUFR2+4 STUFF LAST PROG WORD IN BUFFER ADB D7 INDEX TO PART'N # WORD LDA B,I GET THE WORD CCE,SSA,RSS IS THE PROG ASSIGNED TO A PARTITION ? JMP OUT1 NO SO DO REGULAR OUTPUT AND MASK2 GET PARTITION # ASSIGNED TO THE PROGRAM INA ADD 1 BECAUSE USER COUNTS FROM 1 NOT 0. JSB CNVRT CONVERT TO ASCII STA BUFR2+20 STORE IN OUTPUT BUFFER LDA D21 AND CHANGE BUFFER LENGTH OF STA BUFL2 OUTPUT MESSAGE. OUT1 LDA B,I GET THE WORD AGAIN LSR 10 SHIFT DOWN TO GET # OF PAGES REQD AND MASK1 GET RID OF ALL ELSE IN WORD INA INCREMENT TO ACCOUNT FOR BASE PAGE LDB A GET SIZE TO B ALSO CMB,INB MKE NEG SO WE CAN SEE IF THIS IS THE RPT1 ADB RLRGE LARGEST RT PROGRAM ENCOUNTERED SO FAR. SSB IS IT THE LARGEST SO FAR ? RPT2 STA RLRGE YES SO SAVE IT FOR NEXT TIME ARROUND JSB CNVRT CONVERT TO ASCII STA BUFR2+5 STUFF IT IN OUTPUT BUFFER JSB EXEC SO TELL THEM ALREADY DEF RTRN3 DEF D2 DEF LU+1 DEF BUFR2 DEF BUFL2 RTRN3 LDA D10 PUT BUFFER LENGTH BACK TO NORMAL STA BUFL2 LDA SWAP GET OUR SWPIT PROGRAM NAME CPA BUFR2+2 IS THIS SWPIT'S ID SEG ?? RSS MAYBE JMP TRY NO LDA SWAP+1 CPA BUFR2+3 RSS MAYBE JMP TRY NO LDA SWAP+2 CPA BUFR2+4 RSS YES !!! JMP TRY NO LDB KEY1,I LDA MATT SEE IF I AM IN PARTITION # 1 ADA D2 INDEX TO MATA TABLE ENTRY LDA A,I CPA MYID AM I IN PARTITION # 1 STB SWPIT YES JMP TRY NO, THUS IF SWPIT NOT IN SYSTEM OR I AM * NOT IN PATITIION # 1 NO MEMORY CHANGES ALLOWED ONLY * DISC CHANGES ALLOWED * * * * CNVRT NOP THE PURPOSE OF THIS ROUTINE IS JSB $LIBR TO ALLOW THE SYSTEM TO DO NOP MY NUMERIC TO ASCII CONVERSIONS CCE INSURE THAT IT IS A DECIMAL CONVERSION JSB $CVT1 JSB $LIBX DEF CNVRT * * * * CNVT3 NOP THIS ROUTINE CONVERTS CONTENTS OF A TO JSB $LIBR ASCII. THE THREE WORD STRING ADDRESS IS NOP RETURNED IN THE A REG. CCE INSURE A DECIMAL CONVERSION JSB $CVT3 JSB $LIBX DEF CNVT3 * * * * LNFED NOP THIS DOES A LINE FEED ON OUTPUT LU JSB EXEC DEF LNFD1 DEF D3 DEF CNWRD DEF D2 LNFD1 JMP LNFED,I * * * * GETIT NOP JSB EXEC THIS SUBROUTINE TAKES ALL PROGRAM DEF RTRN8 INPUT ,PARSES THE INPUT, AND THEN RETURNS DEF D1 CALLING SEQUENCE REQUIRES A=BUF ADDR DEF LU B=CHARACTER COUNT,AND IPBUF IS 33 WORD PARSED DEF INBUF BUFFER DEF D10 NOTE THAT THIS IS JUST THE SYSTEM PARSE ROUTINE RTRN8 NOP JSB $LIBR HFB NOP LDA DEFIT BLS MULTIPLY BY 2 TO GIVE CHARACTER COUNT JSB $PARS DEF IPBUF JSB $LIBX DEF GETIT 1H* * * * THIS SUB DOES A LOLIM <= A REG <= HILIM TEST * IF A REG NOT IN BOUNDS "ERROR" IS PRINTED OUT LIMT1 NOP A REG PRESERVED CLB STB IERR LDB HILIM GET HI LIMIT CMB MAKE NEG AND SUBTRACT ONE ADB A ADD INPUTTED VALUE SSB,RSS OK ON HIGH SIDE ? JSB ERROR NO LDB A GET INPUTTED VALUE CMB MAKE NEG ADB LOLIM ADD IN LOW LIMIT SSB,RSS IN RANGE ? JSB ERROR NO JMP LIMT1,I RETURN * * LIMT2 NOP THIS IS EXACTLY THE SAME AS ABOVE EXCEPT CLB UPPER LIMIT ERRORS GIVE ONLY WARNINGS STB IERR SO THAT USERS WHO WISH TO DO THEIR OWN LDB HILIM MAPPING MAY DO SO CMB ADB A SSB,RSS JSB WARNR THIS IS THE WARNING MESSAGE LDB IPBUF+5 CMB ADB LOLIM SSB,RSS JSB ERROR JMP LIMT2,I * WARNR NOP JSB EXEC PRINT OUT A WARNING MESSAGE DEF WRETN DEF D2 DEF LU DEF WBUFR DEF D17 WRETN JMP WARNR,I WBUFR ASC 17, WARNING, ADDRESS LIMIT EXCEEDED * * * * * BGORT NOP THIS IS A CHECK FOR BG OR RT CPA BG NOTHING ELSE ALLOWED JMP BGORT,I A REG PRESERVED CPA RT JMP BGORT,I JSB ERROR JMP BGORT,I * * RESRV NOP THIS CHECK TO SEE IF USER SPECIFIED CPA R THAT PARTITION WAS RESERVED. JMP RESRV,I A REG PRESERVED SZA JSB ERROR JMP RESRV,I * * ERROR NOP THIS SUB PLACES 'ERROR' ON THE TTY DEVICE LDA DM1 SET THE ERROR FLAG STA IERR ISZ OK2GO INCREMENT THE ACCUMULATED ERRORS FLAG JSB EXEC DO THE IO DEF BACK DEF D2 DEF LU DEF ERBUF DEF D6 BACK JMP ERROR,I OK2GO NOP * INBED JSB ERROR TELL THE USER THERE IS AN ERROR JSB EXEC NOW TELL WHAT TYPE DEF RETIN DEF D2 DEF LU DEF INERR DEF D15 RETIN JMP NO.GO INERR ASC 15, INBEDDED UNDEFINED PARTITION * SMERR JSB ERROR TELL THEM THERE IS AN ERROR JSB EXEC TELL THEM WHAT TYPE DEF SMRET DEF D2 DEF LU DEF SERR DEF D9 SMRET JMP NO.GO SERR ASC 9, SUM OUT OF RANGE * CFRST NOP THIS SUB CHECKS FOR A /D OR NEG # CLB A /D SAYS ABORT ALL FURTHER PROCESSING STB IERR NEG # PRODUCES ERROR MESSAGE CPA .D A REGISTER PRESERVED JMP EXIT SSA JSB ERROR JMP CFRST,I * * * IPUT NOP THIS SUBROUTINE PLACES THE VALUE IN THE JSB $LIBR B REG INTO THE LOCATION SPECIFIED BY NOP THE A REGISTER. IS USED TO TEMPORARIALLY STB A,I MODIFY THE TRACK ASSIGNMENT TABLE AND JSB $LIBX OTHER AREAS OF THE OP SYSTEM. A&B PRESERVED DEF IPUT A = LOCATION , B = VALUE * * * DREAD NOP DISC READ SUBROUTINE JSB EXEC READS 64 WORDS DEF GOBCK DEF D1 DEF DCON1 DEF DBUFR DEF D64 DEF TRACK DEF SECTR GOBCK JMP DREAD,I * * * DWRIT NOP DISC WRITE SUBROUTINE JSB EXEC WRITES 64 WORDS DEF GBCK DEF NOABT SET NO ABORT BIT TO KEEP US OUT OF TROUBLE DEF DCON1 DEF DBUFR DEF D64 DEF TRACK DEF SECTR GBCK NOP JMP DWRIT,I * * THIS ROUTINE CONVERTS A MEMORY OP SYS ADDRESS TO A DISC * ADDRESS. ON INPUT A REG = LOCATION (MEMORY ADDRESS) * * TRK NOP GENERAL MEMORY TO DISC ADDRESS CONVERSION SUBROUTINE CLB WILL NOT WORK FOR BASE PAGE LOCATIONS ! ADA DM1K SUBTRACT 1024 DIV D6144 DIVIDE BY TRK SIZE STA TRACK WE NOW HAVE THE TRACK LDA B CLB GET READY FOR ANOTHER DIVIDE DIV D64 DIVIDE BY SECTR S_SIZE STB WORD WORD = WORD OFFSET IN SECTR (0 - 63) ADA D18 ADD IN STARTING SECTR OF OP SYS STA SECTR SECTR = SECTOR WHERE THE WORD IS ADA DM96 CHECK FOR SECTER OVERFLOW SSA TOO MANY SECTERS ? JMP TRK,I NO STA SECTR OPPS , TOO MANY ISZ TRACK INCREMENT TO THE NEXT TRACK JMP TRK,I NOW GO BACK * * * SKP * THIS SUBROUTINE IS USED BY THE MODIFY PROG PAGE REQUIREMENTS * SECTION AND THE ASSIGN PROG PARTITION SECTION. * IT CHECKS TO SEE IF THE PROGRAM IS DEFINED AND IF ITS PERMINANT. * IT ALSO CHECKS FOR A /E TO EXIT THIS MODE AND A /D TO EXIT * THE PROGRAM. * CALLING SEQUENCE IS : * * JSB CHNGR A & B IGNORED * * ON RETURN : * * B = 0 IF ONLY MEMORY CHANGE ALLOWED * B = -1 IF DISC CHANGE ALLOWED * B = 1 IF /E ENTERED * * IF PROG IS PERMINANT IPBUF+1 WILL HAVE * ASCII PE,TE,OR DI. * * LU+2 WILL HAVE THE SECOND INPUT * PARAMETER (SIZE OR PART'N # ) * * CHNGR NOP CHNG1 JSB GETIT GET THE USERS ANSWER AND PARSE IT LDA IPBUF+1 GET HIS ANSWER CLB CPA .E IS IT A /E ? JMP EONLY SET B = 1 AND EXIT THIS SUB JSB CFRST SEE IF HE ENTERED A /D LDA IPBUF+5 SAVE THE NEW SIZE STA LU+2 FOR VALIDITY CHECK MADE LATER JSB TNAME SEE IF THE PROGRAM IS DEFINED SZB,RSS DID WE FIND THE PROGRAM ? JMP PERR NO, SO TELL THE TURKEY INB POINT B AT THE STATUS WORD LDA B,I GET THE STATUS WORD AND D7 AND KEEP ONLY THE STATUS BITS SZA IS THE PROGRAM DORMANT ? JMP ILLST NO TELL THEM ILLEGAL STATUS. ADB D6 NOW POINT TO PARTITION WORD LDA B,I  GET THE LAST PARTITION THIS AND MASK2 PROGRAM WAS IN MPY D6 CALCULATE OFFSET INTO $MATA ADA MATT ADD IN START OF $MATA ADA D2 NOW INDEX TO PARTITION OWNER LDA A,I GET THE OWNERS ID ADDRESS CPA KEY1,I DOES THIS PROG STILL OWN THE PARTITION? JMP ILLST YES ! (WHEW THAT WAS CLOSE!) LDA ITEMP NOW CHECK THE TM BIT TO SEE SSA IF THIS IS A TEMP PROGRAM JMP MONLY YES, TEMP PROG. ONLY MEMRY CHANGES ALLOWED HUH? JSB ASKIT NO, PERM PROG SO SEE WHAT TYPE CHANGE JSB GETIT GET THE ANSWER LDA IPBUF+1 DESIRED, PERM,TEMP,OR DISC ONLY CPA TE TEMP CHANGE ? JMP MONLY YES CPA DI DISC ONLY CHANGE ? JMP DONLY YES CPA PE PERM CHANGE ? JMP DONLY YES JSB ERROR TELL THE FOLKES I'M UNHAPPY JMP HUH? AND THEN TRY AGAIN. MONLY CCB,RSS MAKE B ON RETURN = 0 DONLY CCB,RSS MAKE B ON RETURN = -1 EONLY INB MAKE B ON RETURM = 1 JMP CHNGR,I NOW RETURN PERR JSB EXEC TELL THE FOLKES NO SUCH PROG DEF R1111 DEF D2 DEF LU DEF NOPRO DEF D7 R1111 JMP CHNG1 NOW GIVE THEM ANOTHER CHANCE * ILLST JSB EXEC DEF ILEG DEF D2 DEF LU DEF ILEGL DEF D8 ILEG JMP CHNG1 GIV THE USER ANOTHER CHANCE * ILEGL ASC 8, ILLEGAL STATUS NOPRO ASC 7, NO SUCH PROG * SKP * * *THIS IS A GENERAL PURPOSE DISC PATCH SUBROUTINE * CALLING SEQUENCE JSB UPDAT * A REG = MEMORY ADDRESS (LOCATION) * B REG = REPLACEMENT VALUE * THE MEMORY LOCATION WILL BE CHANGED TO A DISC ADDRESS * AND THE CONTENTS OF THE B REG WILL BE PLACED THERE * THIS ROUTINE SHOULD ONLY BE USED TO MODIFY OP SYSTEM * LOCATIONS !!!!!! * UPDAT NOP UPDATE $BGFR & $RTFR ON DISC STB UPDT1 JSB TRK GET THERE TRACK ADDRESS JSB DREAD READ THEIR SECTOR LDA WORD GET THE ADDRESS ADA BUF64 WITHIN THE SECTOR LDB UPDT1 GET CONTENTS OF THE NEW $RTFR WORD STB A,I STICK IT INTO THE BUFFER LDA TRACK GET THE TRACK ADDRESS ADA TAT ADD IN TAT LENGTH LDB MYID GET MY ID JSB IPUT GET THE SYSTEM TRACK FOR ME JSB DWRIT NOW WRITE IT OUT TO THE DISC LDA TRACK NOW RESTORE ADA TAT THE TAT TO LDB SYSTM THE SYSTEM JSB IPUT GIVE TRACK BACK TO THE SYSTEM JMP UPDAT,I UPDT1 NOP * SKP * * THIS SUBROUTINE FINDS A GIVEN ID SEGMENT IN MEMORY WHERE THE * ASCII NAME IS IN IPBUF+1,IPBUF+2,IPBUF+3. * ON RETURN : * KEY1 = PROPER KEYWORD INDEX . * A = PROG TYPE = 2 OR 3 (FGND OR BGND) * B = ADDRESS OF ID WORD 15 (LAST CHAR OF NAME) * B = 0 IF PROG NOT FOUND * SIGN OF ITEMP = TM BIT IN REFERENCED ID SEG * TYPE = PROGRAM TYPE ( IE RT =2 , BG = 3 ) * TNAME NOP LDB KYWRD GET INDEX TO KEYWORD BLOCK STB KEY1 SAVE IT FOR LATER KAGAN LDB KEY1,I GET ID ADDRESS SZB,RSS END OF KEY WORD BLOCK ?? JMP TNAME,I MAKE RETURN WITH B = 0 ADB D12 GET 1ST CHAR ADDRESS LDA B,I GET THE 1ST 2 CHARS CPA IPBUF+1 1ST 2 OK ? INB,RSS YES JMP FGTIT NO LDA B,I NOW LOOK AT NEXT 2 CPA IPBUF+2 THESE OK ? INB,RSS YES JMP FGTIT NO LDA B,I GET LAST CHAR AND B1774 KEEP ONLY UPPER BYTE ADA B40 ADD IN ASCII BLANK FOR LOWER CHAR CPA IPBUF+3 IS THE LAST CHAR THE SAME ? RSS YES JMP FGTIT NO LDA B,I GET THE WORD AGAIN ALF,ALF PUT TM BIT INTO SIGN BIT STA ITEMP AND SAVE TEMPORARIALLY IN ITEMP ALF,ALF NOW RESTORE THE WORD AND MASK1 GET RID OF UPPERB BYTE AND SEE CPA D2 THAT IT IS NOT A SEGMENT OR JMP PREXT A MEMORY RES PROG ONLY DISC CPA D3 RES BGND & FGND PROGS ALLOWED JMP PREXT FGTIT ISZ KEY1 BUMP THE KEYWORD POINTER JMP KAGAN TRY NEXT PROGRAM PREXT STA TYPE SAVE THE TYPE AND JMP TNAME,I RETURN TO THE CALLER SKP * THIS SUBROUTINE FINDS THE LARGEST PARTITION IN MEMORY * OR ON DISC. DEPENDING ON THE ALLING SEQUENCE. THE XMATA * ARRAY IS ASSUMED TO HAVE THE PARTITION DEFINATION ON DISC. * CALLING SEQUENCE : * JSB SZCHK * A REG = ADDRESS OF XMATA FOR DISC SEARCH * A REG = ADDRESS OF $MATA FOR MEMORY SEARCH * B REG = ADDRESS OF END OF XMATA TABLE FOR * DISC SEARCH. * B REG = ADDRESS OF END OF $MATA TABLE FOR * MEMORY SEARCH. * * ON RETURN : * RFLAG = LARGEST RT PARTITION * BFLAG = LARGEST BG PARTITION * * * SZCHK NOP THIS SUB FINDS THE SIZE OF THE STB JTEMP SAVE THE END OF THE END OF SEARCH ADDRESS CLB CLEAR OUT OLD VALUES STB RFLAG STB BFLAG RTRY1 CPA JTEMP END OF SEARCH ? JMP LSTCK GO CHECK IF ANY RT PARTITIONS ADA D5 INDEX TO THE XMATA TYPE WORD LDB A,I GET THE TYPE ADA DM1 NOW POINT TO SIZE WORD SSB,RSS WHAT TYPE PARTITION ? JMP BGADA BG . LDB A,I RT. NOW GET SIZE RBL,CLE,ERB STRIP POSSIBLE RESERVED BIT CMB MAKE NEG AND ACCOUNT FOR BASE PAGE ADB RFLAG ADD IN LARGEST RT PARTN SO FAR SSB,RSS IS THIS PARTITION LARGER JMP RTRY NO , LOOK AT NEXT PARTITION LDB A,I YES , SO GET SIZE AGAIN RBL,CLE,ERB STRIP THE RESERVED BIT AGAIN INB ACCOUNT FO BASE PAGE STB RFLAG  THIS IS NOW THE LARGEST DEFINED RT PARTN JMP RTRY GO LOOK AT NEXT PARTITION * BGADA LDB A,I THIS IS THE SAME AS ABOVE EXCEPT FOR RBL,CLE,ERB BG PARTITIONS CMB ADB BFLAG SSB,RSS JMP RTRY LDB A,I RBL,CLE,ERB INB STB BFLAG RTRY ADA D2 INDEX TO 1ST WORF OF NEXT MATA ENTRY JMP RTRY1 GO DO IT TO NEXT PARTITION * LSTCK LDA BFLAG IF THERE ARE NO RT CLB PARTITIONS , THEN SET CPB RFLAG THE RT PARTITION SIZE TO THE BG STA RFLAG PARTITION SIZE. JMP SZCHK,I RETURN TO THE CALLER SKP * * SZISZ NOP LDA RT GET READY FOR RT ERROR MESSAGE LDB RLRGE GET SIZE OF LARGEST RT PROGRAM CMB,INB CHECK THIS AGAINST LARGEST RT ADB RFLAG PARTITION. SSB WILL THE PROGRAM RUN ? JMP SZERR NO DO ERROR MSG & DON'T RETURN LDA BG GET READY FOR A BG ERROR MESSAGE LDB BLRGE NOW GET SIZE OF LARGEST BG PROGRAM CMB,INB SEE IF IT WILL FIT ALSO ADB BFLAG SSB WILL THE BG PROGRAM FIT ?? JMP SZERR NO JMP SZISZ,I YES ALL IS WELL * * * * * SZERR STA BUFR1+1 PUT TYPE OF ERROR IN MESSAGE JSB ERROR NOW TELL THEM ITS AN ERROR JSB EXEC NOW TELL THEM WHAT TYPE ERROR DEF NORTN DEF D2 DEF LU DEF BUFR1 DEF D20 NORTN JMP NO.GO GO START ALL OVER AGAIN (AIN'T IT AWFUL) * * ASKIT NOP ASK USER IF PERM,TEMP,OR DISC ONLY CHANGE JSB EXEC DEF ASKK DEF D2 DEF LU DEF PERM DEF D14 ASKK JMP ASKIT,I * * SKP * * * PTY NOP THIS ROUTINE DOES THE PARITY ERROR OPTION PTY1 JSB EXEC ASK FOR THE PARTITION # DEF PRTN DEF D2 DEF LU DEF PEPTN DEF D8 PRTN JSB GETIT GET THE PARTITION # CLB CLEAR THE STB OK2GO ACCUMULATED ERRORS FLAG LDA IPBUF+1 PUT ANSWER INTO A REG CPA .E DID HE INPUT A /E JMP PTY,I YES, END OF THIS PHASE LDB D1 SET UP STB LOLIM FOR LDB DEFIN THE HI LOW TEST ON THE PARTITION # STB HILIM JSB CFRST GO SEE IF IT WAS A /D OR A NEG # JSB LIMT1 GO SEE IF IT WAS IN BOUNDS LDB OK2GO GET THE ACCUMULATED ERRORS FLAG SZB ANY ERRORS ? JMP PTY1 YES, SO TRY AGAIN ADA DM1 NO ERRORS SO MODIFY PARTITION SIZE MPY D6 INDEX ADA XMATA TO CORRECT MATA ADA D4 WORD LDB A,I GET # OF PAGES FOR THIS PARTITION ADB DM1 DECREMENT # OF PAGES CLE,ELB STRIP RESERVED BIT SZB,RSS IS PARTITION NOW TOO SMALL ? JMP PEERR YES , SO TRY AGAIN TURKEY ERB RESTORE RESERVED BIT STB A,I STUFF AWAY NEW PARTITION SIZE ADA DM1 NOW GO FIX START PAGE WORD LDB A,I GET THE START PAGE # INB BUMP IT ONE TO GET RID OF BAD PAGE STB A,I AND STUFF IT BACK JMP PTY1 GO SEE IF ANY MORE BAD MEMORY PAGES PEERR JSB ERROR PRINT OUT AN ERROR FOR THE FOLKES JMP PTY1 AND SEE IF THEY WANT TO DO ANYTHING ELSE * * * XFER NOP WELL FANS LETS TRY TO MODIFY MEMORY JSB $LIBR ON THE FLY. SO GO PRIVLEDGED NOP * * CLB,INB SET THE PARTITION POINTER TO STB PTN PARTITION # 2 ( PTN = PARTN -1) LDA MATT GET ADDRESS OF MATA ENTRY FOR PARTITION ADA D6 #2. (I'M IN PARTITION #1 ) NSCHD CPA EMATT END OF DEFINED PARTITIONS JMP STMEM HORRAY WE MADE IT ! MODIFY THE MOTHER !!! ADA D3 ALTERNATELY POINT TO SIZE WORD LDB A,I GET THE WORD IF ZERO WE MUST BE AT SZB,RSS END OF DEFINED PARTITIONS JMP STMEM SO WE MADE IT !!! ADA DM1  NOT AT END SO GET RESIDENTS ID ADDRESS LDB A,I SEE IF ANY BODY IS IN SZB THE PARTITION JMP SCHED YES, SO GET HIM OUT OF THERE ADA D4 NO, SO BUMP POINTER TO $MATA ENTRY ISZ PTN BUMP PARTITION POINTER TOO JMP NSCHD AND SEE IF ANYBODY IS IN THAT PARTITION * * * SCHED LDB SWPIT GET SWPIT'S ID ADDRESS ADB D21 INDEX TO PARTITION WORD LDA B,I GET THE WORD AND MASK5 SAVE THE MIDDLE BITS ADA SIGN SET ASSIGNMENT BIT ADA PTN NOW PUT IN THE PARTITION # STA B,I RESTORE IT ISZ XFER ADJUST RETURN ADDRESS ISCHD JSB $LIBX AND RETURN TO POINT DEF XFER AND SCHEDULE SWPIT. * STMEM LDA MATT MEMORY SNAPSHOT NOT = DISC SNAPSHOT CPA CBGFR WE MUST PUT 1ST PART'N IN ALLOCATED LIST JMP ALOCB BECAUSE WE ARE CPA CRTFR EXECUTING IN THE 1ST JMP ALOCR PARTITION. LDA XMATA RELNK ADA D6 GET TO 2ND ENTRY CPA PMATA END OF LIST (ONLY 1 PARTITION ??) JMP ALOC DOESNT MATTER LDB A,I GET CONTENTS OF THIS XMATA ENTRY CPB MATT DOES IT POINT TO FIRST PART'N JMP ALOC YES ,EXIT WITH A = ADDRESS OF POINTER JMP RELNK NO , TRY AGAIN * * * ALOCB LDA XMATA,I GET WHO 1ST PART'N POINTS TO STA CBGFR AND UNLINK 1ST PARTITION FROM BGFR LIST JMP ZAP * * ALOCR LDA XMATA,I GET WHO 1ST PARTITION POINTS TO STA CRTFR AND UNLINK 1ST PARTITION FROM RTFR LIST JMP ZAP * * * ALOC LDB XMATA,I FIND OUT WHO 1ST PART'N POINTS TO STB A,I UNLINK FROM FREE LIST ZAP CLB PUT 1ST PART'N IN ALLOCATED LIST STB XMATA,I * LDA XMATA GET POINTER TO 1ST PARTITION CLB GET A NOP READY ADA D5 INDEX TO TYPE WORD LDA A,I BRING IT IN SSA,RSS WHAT IS IT'S TYPE JMP BTIME BAcCKROUND JMP RTIME REAL TIME * * RTIME STB BGPR,I THIS SECTION SETS THE LDA MATT RT OR BG STA RTPR,I (WHICH EVER TYPE NOT = PART'N 1 TYPE) JMP FIXOK ALLOCATED LIST HEAD (RTPR OR BGPR) BTIME STB RTPR,I TO 0 SO THAT WE RETURN THE RIGHT TYPE LDA MATT PARTITION TO THE SYSTEM WHEN WE FINISH STA BGPR,I EXECUTING OURSELVES. * * FIXOK LDA CRTFR PLACE THE NEW $RTFR POINTER INTO DISPM STA RTFR,I LDA CBGFR PLACE NEW $BGFR POINTER INTO DISPM STA BGFR,I LDA BGPR INITALIZE THE HEAD OF THE STA BGDM,I BGDM LIST AND THE HEAD LDA RTPR OF THE STA RTDM,I RTDM LIST * LDB CRTFR GET THE RT LIST HEADER LDA RTFR GET THE POINTER READY SZB,RSS IF NO RT LIST USE BG LIST LDA BGFR STA ARTFR,I LDA RTPR SZB,RSS LDA BGPR STA ARTPR,I LDA RTDM SZB,RSS LDA BGDM STA ARTDM,I * * LDA MATT GET THE REAL $MATA ADDRESS INA INDEX TO THIS PROGRAMS PRIORITY LDB A,I GET MY PRIORITY LDA XMATA GET OUR PHONY MATA INA INDEX TO PRIORITY LOCATION STB A,I SAVE MY PRIORITY LDA MATT DO IT AGAIN FOR MY ID ADDRESS ADA D2 INDEX TO ID ADDRESS LDB A,I STORE AWAY MY ID ADDRESS SO DISPM CAN LDA XMATA UNLINK ME WHEN I DO MY NORMAL TERMINATION ADA D2 OTHERWISE SYSTEM WILL GO BELLY UP !! STB A,I GOT IT !!!!! ADA D3 ISZ A,I SET MY READ COMPLETION FLAG * * LDA MATT GET THE REAL $MATA STA ITEMP SAVE IT LDA XMATA GET THE PHONY $MATA DO.IT LDB A,I GET THE CONTENTS OF OUR NEW $MATA STB ITEMP,I OUT GOES THE OLD IN GOES THE NEW! INA BUMP OUR POINTERS ISZ ITEMP " " " CPA EMATA ARE WE FINISHED RSS YES ! JMP DO.IT NO JMP ISCHD * * * * * SKP A EQU 0 B EQU 1 XEQT EQU 1717B TAT EQU 1656B B1774 OCT 177400 B40 OCT 40 IERR NOP DM1 DEC -1 DM4 DEC -4 DM5 DEC -5 DM6 DEC -6 DM96 DEC -96 DM1K DEC -1024 D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D5 DEC 5 D6 DEC 6 D7 DEC 7 D8 DEC 8 D9 DEC 9 DNINE OCT 100011 D10 DEC 10 D11 DEC 11 D12 DEC 12 D13 DEC 13 D14 DEC 14 D15 DEC 15 D16 DEC 16 D17 DEC 17 D18 DEC 18 D20 DEC 20 D21 DEC 21 D22 DEC 22 D27 DEC 27 D32 DEC 32 D33 DEC 33 D64 DEC 64 D1024 DEC 1024 D6144 DEC 6144 NOABT OCT 100002 MASK1 OCT 37 MASK2 OCT 77 MASK3 OCT 1777 MASK5 OCT 77700 MASK6 OCT 1700 MASK7 OCT 200 O400 OCT 400 SIGN OCT 100000 CNWRD OCT 1100 TYPE DEC 2 BLANK ASC 1, YE ASC 1,YE KYWRD EQU 1657B BG ASC 1,BG RT ASC 1,RT R ASC 1,R PE ASC 1,PE TE ASC 1,TE DI ASC 1,DI CTYPE ASC 1,DI SWAP ASC 3,SWPIT .D ASC 1,/D .M ASC 1,/M O. ASC 1,O .E ASC 1,/E ZERO ASC 1,00 BUFL2 DEC 10 LINK NOP PTN NOP ITEMP NOP JTEMP NOP SIZE NOP LMATA NOP PMATA NOP POINTER TO CURRENT XMATA ENTRY EMATA NOP END OF XMATA TABLE IPBUF BSS 33 PARSED BUFFER DEFIT DEF *+1 INBUF BSS 10 INPUT BUFFER KEY1 NOP INOP NOP RMAIN NOP FIRST NOP LU BSS 5 EMATT NOP END OF REAL $MATA TABLE MATT DEF $MATA THIS WILL CONTAIN $MATA ADDRESS ENDS DEF $ENDS THIS WILL HAVE ADDRESS OF END OF OP SYS MPFT DEF $MPFT THIS WILL HAVE ADDRESS OF MEMORY PROTECT FENCE RTFR DEF $RTFR ADDRESS OF RT FREE LIST RTPR NOP ADDRESS OF RT ALLOCATED LIST BGFR DEF $BGFR ADDRESS OF BG FREE LIST BGPR NOP ADDRESS OF BG ALLOCATED LIST BGDM NOP ADDRESS OF BG DORMANT LIST RTDM NOP ADDRESS OF RT DORMANT LIST ABGFR NOP ABGPR NOP ABGDM NOP ARTFR NOP ARTPR NOP ARTDM NOP MRMP DEF $MRMxHFBP MPSA DEF $MPSA ADDRESS OF SYSTEM AVAILABLE MEMORY WORD MAXWC NOP MAXNC NOP MAXPT NOP DEFIN NOP HILIM NOP LOLIM NOP TRACK NOP SECTR NOP WORD NOP IBUFR NOP BUF64 DEF DBUFR SYSTM OCT 100000 DCON1 OCT 102 PGBUF ASC 10, PART'N 1 = PAGE XX IDENT ASC 27, DFINE, THE RTE III PARTITION REDEFINITION PACKAGE ! DCODE ASC 13, REV 1 12/22/76 (CMM) BUFR1 ASC 20, RT PARTITION REQMTS: NOT SATISFIED ! BUFR2 ASC 21, PAGES ASSIGNED TO PART'N 21 BUFR3 ASC 16, LARGEST ADDRESSABLE PARTITION: BUFR4 ASC 9, W/O COM PAGES BUFRA ASC 16, MAX NUMBER OF PARTITIONS = BUFR5 ASC 14, ENTER MEMORY SIZE IN PAGES BUFR6 ASC 12, PAGES REMAINING: BUFR7 ASC 10, DEFINE PARTITIONS ABUFR ASC 17, ASSIGN PROGRAMS TO PARTITIONS ? MBUFR ASC 18, MODIFY PROGRAM PAGE REQUIREMENTS ? IQUIT ASC 12, REDEFINITION COMPLETE PERM ASC 14, PERM, TEMP, OR DISC ONLY ? PBUFR ASC 9, PARITY ERRORS ? PEPTN ASC 8, ENTER PART'N # ERBUF ASC 6, ERROR BRESV ASC 12, PARTITION RESERVED. XMATA DEF YMATA YMATA BSS 384 NOP DBUFR BSS 64 EBUFR DEF * DONT REARRANGE OR MOVE !!!! NOP END DFINE hHASMB,L NAM SWPIT,3,1 ENT SWPIT EXT EXEC,$LIBR,$LIBX,$CVT1 * * *THE PURPOSE OF THIS PROGRAM IS TO TELL THE USER WHICH *PARTITION IS BEING CLEARED OUT. IN ADDITION, IT GIVES THE *USER AN IDEA HOW MUCH ACTIVITY IS GOING ON AND THUS THE OPTION *OF TERMINATING THE MEMORY PORTION OF THE PARTITION REDEFINATION. * * * * SWPIT NOP PRIMARY ENTRY POINT LDA B,I GET THE STA LU FIRST CCE,INB TWO LDA B,I PARAMETERS PASSED IN INA ADD IN CORRECTION JSB FIX * STA BUFR+6 JSB EXEC TELL THE DEF RETRN USER DEF D2 WHICH DEF LU PARTITION DEF BUFR WE WERE DEF D11 SCHEDULED TO EXECUTE IN. * RETRN JSB EXEC THATS ALL FOLKS !!!!! DEF RETN1 DEF D6 DEF NOPIT RETN1 NOP * * FIX NOP JSB $LIBR NOP JSB $CVT1 JSB $LIBX DEF FIX * NOPIT NOP D2 DEC 2 D6 DEC 6 D11 DEC 11 BUFR ASC 11, PARTITION CLEARED. LU NOP A EQU 0 B EQU 1 END SWPIT  7 22682-18059 1703 SC 0122 DOS-M DUMP DISC FILE DUMP UTILITY             H0101 [FTN4,L PROGRAM DUMP DIMENSION IOP(80) DIMENSION NAME(3),DBUF(128),FP(64) DIMENSION FPE(63) EQUIVALENCE (DBUF(1),FP(1)) EQUIVALENCE (DBUF(2),FPE(1)) INTEGER SLASH,ONEHH INTEGER ONEHE INTEGER SLSHE,SLSHH INTEGER DBUF,RHALF INTEGER TTY,OCT,ASC,FIXP,FLTP,HALFW DATA LFN/18/,ICON/2/,LEN/128/,IUAW/0/,IRDF/14/,LINEL/80/ DATA SLASH/57B/,ONEHH/110B/ DATA SLSHE/2H/E/,SLSHH/2H/H/ DATA ONEHE/105B/ DATA MASK/377B/ DATA TTY/1/,LST/6/ DATA ASC/101B/,OCT/117B/,FIXP/111B/,FLTP/106B/,HALFW/110B/ DATA LPP/60/ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C PROGRAM NAME: DUMP C C FUNCTION: DUMP DOS-III DISK FILES IN ONE OR MORE FORMATS C C AUTHOR: H.C. BRAESICKE, APPLIED RESEARCH LABS, UNIV. OF TEXAS C C DATE: JAN 1977 C C ABSTRACT: C C DUMP IS AN INTERACTIVE PROGRAM WHICH WILL ALLOW THE DOS USER TO C C CONVENIENTLY EXAMINE THE CONTENTS OF ANY USER DISK FILES. THE C C USER SPECIFIES THE FILE TO BE DUMPED, THE STARTING SECTOR, THE C C NUMBER OF SECTORS TO DUMP, AND THE OUTPUT FORMAT. CURRENTLY, C C OUTPUT IS AVAILABLE IN ANY COMBINATION OF FIVE FORMATS: C C ASCII - THE DATA ON DISK IS DUMPED AS CHARACTERS C C OCTAL - THE DATA ON DISK IS DUMPED AS IT APPEARS WITH NO CHANGE C C HALF-WORD - THE DATA ON DISK IS DUMPED AS TWO OCTAL HALF-WORDS OFC C EIGHT BITS EACH C C INTEGER - THE DATA ON DISK IS DUMPED IN DECIMAL INTEGER FORMAT C C FLOATING-POINT - THE DATA ON DISK IS DUMPED IN DECIMAL FLOATING- C C POINT FORMAT. C~@ C OUTPUT FROM THE DUMP PROGRAM IS A NUMBERED, LABELLED LISTING OF C C THE SELECTED FILE IN THE SELECTED FORMATS. THE USER IS PROMPTED C C FOR ALL INPUTS, AND RECEIVES IMMEDIATE HELP TO CORRECT INPUT C C ERRORS. C C REQUIRED SOFTWARE: FORTRAN IV (HP24177) C C DOS-III B RELOCATING LOADER (HP24307) C C DOS/RTE RELOCATABLE SUBROUTINE LIB (HP24998) C C REQUIRED HARDWARE: CONSOLE DEVICE C C LISTING DEVICE C C DISK DEVICE (PROGRAM WRITTEN FOR 7900 DISK) C C VARIABLE DICTIONARY: C C ASC INTEGER, VALUE IS ASCII "A", USED TO SELECT ASCII OPTIONC C DBUF INTEGER ARRAY, DISK INPUT BUFFER, 128 WORDS C C FIXP INTEGER, VALUE IS ASCII "I", USED TO SELECT INTEGER C C (FIXED POINT) OPTION C C FLTP INTEGER, VALUE IS ASCII "F", USED TO SELECT FLOATING- C C POINT OPTION C C FP REAL ARRAY, EQUIVALENCED TO DBUF TO IMPLEMENT "F" OPTIONC C FPE REAL ARRAY, USED TO PRINT FLOATING POINT VALUES WHICH C C START ON EVEN WORD BOUNDARIES C HALFW INTEGER, VALUE IS ASCII "H", USED TO SELECT HALF-WORD C C OPTION C C I INTEGER, DO LOOP INDEX FOR PARSING OPTIONS C C IAND INTEGER FUNCTION, RETURNS LOGICAL "AND" OF ARGUMENTS C C IBUF INTEGER, COUNT OF NUMBER OF WORDS ALREADY DUMPED C C ICON INTEGER, DISK CONTROL WORD USED IN EXEC CALL C C II INTEGER, DO LOOP INDEX, USED TO INDEX INTO DBUF C C ILINE INTEGER, COUNTS NUMBER OF LINES PRINTED SO FAR Q C C INUM INTEGER, NUMBER OF SECTORS TO DUMP C C IOP INTEGER ARRAY, USED TO INPUT OPTION LIST, 80 WORDS C C IOP0-4 INTEGER, USED TO FLAG SELECTED OPTIONS C C IPAGE INTEGER, PAGE COUNTER C C IRDF INTEGER, VALUE IS EXEC CALL READ DISK FILE REQUEST C C ISECT INTEGER, VALUE IS EXEC CALL DISK FILE SECTOR TO READ C C ISTRT INTEGER, VALUE IS WHICH SECTOR TO START DUMPING FROM C C ITOGL INTEGER, TOGGLES SELECTION OF FLOATING-POINT VALUE TO C C PRINT C IUAW INTEGER, VALUE IS EXEC CALL SEARCH USER AREA WITH WAIT C C IWORD INTEGER, VALUE IS WHICH WORD IN FILE BEING DUMPED C C J INTEGER, DO LOOP INDEX, USED IN ZEROING DBUF C C K INTEGER, DO LOOP INDEX, USED TO COUNT INUM SECTORS C C LEN INTEGER, VALUE IS NUMBER OF WORDS IN DISK SECTOR C C LFN INTEGER, VALUE IS EXEC CALL LOOKUP FILE NAME C C LHALF INTEGER, VALUE IS LEFT HALF OF WORD BEING DUMPED C C LINEL INTEGER, VALUE IS LENGTH OF INPUT LINE C C LPP INTEGER, VALUE IS NUMBER OF LINES PER PAGE C C LST INTEGER, VALUE IS LOGICAL UNIT NUMBER OF LIST DEVICE C C MASK INTEGER, VALUE IS EFFECTIVE HALF-WORD MASK C C NAME INTEGER ARRAY, VALUE IS NAME OF FILE TO DUMP C C NSECT INTEGER, VALUE IS NUMBER OF SECTORS IN FILE C C OCT INTEGER, VALUE IS ASCII "O", USED TO SELECT OCTAL OPTIONC C ONEHE INTEGER, VALUE IS ASCII "E", USED IN PARSING OPTIONS C C ONEHH INTEGER, VALUE IS ASCII "H", USED IN PARSING OPTIONS C C PAGER SUBROUTINE, WRITE HEADING ON OUTPUT C C RHALF INTEGER, VALUE IS RIGHT HALF OF WORD BEING DUMPED C C SLASH INTEGER, VALUE IS ASCII "/", USED TO PARSE OPTIONS C C SLSHE INT;fEGER, VALUE IS ASCII "/E", SIGNALS END OF RUN C C SLSHH INTEGER, VALUE IS ASCII "/H", SIGNALS HELP REQUEST C C ISWAP INTEGER FUNCTION, RETURNS ARGUMENT WITH HALVES SWAPPED C C TTY INTEGER, VALUE IS LOGICAL UNIT NUMBER OF CONSOLE C C C C FOR ADDITIONAL DOCUMENTATION, CONSULT THE APPROPRIATE SYSTEM C C MANUALS OR CONTACT THE AUTHOR. C C PLEASE REPORT ANY BUGS OR DEFICIENCIES TO THE AUTHOR OR HP. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C SAY HELLO AND FIND OUT WHAT TO DO. C 5 WRITE(TTY,100) 100 FORMAT(1X,"DUMP HERE...", */,"ENTER /H FOR HELP, /E TO EXIT OR", */,"NAME OF FILE TO DUMP: _") READ(TTY,105)NAME 105 FORMAT(3A2) IF( NAME(1) .EQ. SLSHE)STOP IF( NAME(1) .NE. SLSHH)GO TO 6 C C GIVE THE USER SOME HELP. C WRITE(TTY,160) 160 FORMAT(1X,"THE DUMP PROGRAM ALLOWS THE USER TO DUMP THE CONTENTS", */, " OF A SPECIFIED DISK FILE TO THE LIST DEVICE. THE PRO-", */, " GRAM WILL PROMPT FOR NECESSARY INFORMATION AS NEEDED.", */, " YOU MAY EXIT AT ANY POINT IN THE DIALOGUE BY ENTERING", */, " 0 (ZERO) WHEN NUMERIC INFO IS REQUESTED, OR /E WHEN", */, " ALPHANUMERIC INFO IS ASKED FOR.") GO TO 5 C C SEE IF WE CAN FIND THE FILE REQUESTED. C 6 NSECT=-1 CALL EXEC(LFN,NAME,NSECT,IUAW) IF(NSECT .GT.0)GO TO 15 WRITE(TTY,110)NAME 110 FORMAT(1X,"?FILE ",3A2," NOT FOUND IN ACTIVE SUBCHANNEL LIST.") GO TO 5 C C TELL HOW BIG IT IS AND ASK WHERE TO START DUMPING. C 15 WRITE(TTY,115)NSECT 115 FORMAT(1X,"FILE HAS ",I5," SECTORS." *,/," STARTING SECTOR TO DUMP? _") READ(TTY,*)ISTRT IF(ISTRT)18,5,16 18 WRITE(TTY,116) 116 FORMAT(1X,"THE STARTING SECTOR MUST BE GREATER THAN OR EQUAL TO", */,1X,"ONE. ENTER 0 aTO EXIT.") GO TO 15 C C SEE HOW MANY SECTORS NEED TO BE DUMPED. C 16 WRITE(TTY,120) 120 FORMAT(1X,"HOW MANY SECTORS TO DUMP? _") READ(TTY,*)INUM IF(INUM)17,5,40 17 WRITE(TTY,170) 170 FORMAT(1X,"YOU CAN NOT DUMP A NEGATIVE NUMBER OF SECTORS" *,/, "ENTER 0 TO GET ANOTHER FILE OR THE POSITIVE" *,/, "NUMBER OF SECTORS TO DUMP") GO TO 16 C C GET THE OPTION LIST. C 40 WRITE(TTY,125) 125 FORMAT(1X,"ENTER OPTIONS OR /H FOR HELP: _") READ(TTY,126)IOP 126 FORMAT(80R1) IF( IOP(1) .NE. SLASH)GO TO 30 IF( IOP(2) .EQ. ONEHE)GO TO 5 C C FIRST CHAR IS A SLASH; SECOND IS EITHER H, OR USER REALLY NEEDS HELP. C WRITE(TTY,155) 155 FORMAT(1X,"OPTIONS AVAILABLE ARE:" *,/,1X,"A FOR ASCII OUTPUT" *,/,1X,"O FOR OCTAL OUTPUT" *,/,1X,"I FOR INTEGER OUTPUT" *,/,1X,"F FOR FLOATING POINT OUTPUT" *,/,1X,"H FOR HALF-WORD OUTPUT" *,/,1X,"/E TO EXIT.") WRITE(TTY,156) 156 FORMAT(1X,"TYPE IN THE SINGLE LETTER ABBREVIATION(S) OF THE" *,/,1X,"OPTION(S) YOU DESIRE IN ANY ORDER. FOR EXAMPLE," *,//,1X,"ENTER OPTIONS OR /H FOR HELP: FAH",/ *,/,1X,"WILL SELECT FLOATING POINT, ASCII, AND HALF-WORD OUTPUT.") GO TO 40 C C PARSE THE OPTION LIST AND TURN ON APPROPRIATE OPTIONS. C 30 IOP0=0 IOP1=0 IOP2=0 IOP3=0 IOP4=0 DO 111 I=1,LINEL IF(IOP(I) .EQ. OCT)IOP0=1 IF(IOP(I) .EQ. ASC)IOP1=1 IF(IOP(I) .EQ.FIXP)IOP2=1 IF(IOP(I) .EQ.FLTP)IOP3=1 IF(IOP(I) .EQ.HALFW)IOP4=1 111 CONTINUE C C INITIALIZE COUNTERS. C IPAGE=0 ILINE=60 ISECT=ISTRT-2 IBUF=-LEN C C ** MAJOR DUMP LOOP **. C DO 10 K=1,INUM DO 210 J=1,LEN 210 DBUF(J)=0 ISECT=ISECT+1 IBUF=IBUF+LEN C C ASK THE SYSTEM FOR A BUFFER FULL. C CALL EXEC(IRDF,ICON,DBUF,LEN,NAME,ISECT) ITOGL=1 C C ** MINOR DUMP LOOPs **. C DO 20 II=1,LEN IWORD=IBUF+II ILINE=ILINE+1 IF(ILINE .LE. 59)GO TO 129 IPAGE=IPAGE+1 C C LABEL NEW PAGE OF OUTPUT. C CALL PAGER(LST,IPAGE,NAME,INUM,IOP) ILINE=5 129 WRITE(LST,130)IWORD 130 FORMAT(/"*",I5,"/ ") IF(IOP0 .EQ. 0)GO TO 25 C C OCTAL FORMAT. C WRITE(LST,135)DBUF(II) 135 FORMAT("*",10X,O7) 25 IF(IOP1 .EQ. 0)GO TO 35 C C ASCII FORMAT. C WRITE(LST,140)DBUF(II) 140 FORMAT("*",20X,A2) 35 IF(IOP4 .EQ. 0)GO TO 45 C C HALF-WORD FORMAT. C RHALF=IAND(DBUF(II),MASK) LHALF=IAND(ISWAP(DBUF(II)),MASK) WRITE(LST,150)LHALF,RHALF 150 FORMAT("*",25X,O4,",,",O4) 45 IF(IOP2 .EQ. 0)GO TO 55 C C INTEGER FORMAT. C WRITE(LST,143)DBUF(II) 143 FORMAT("*",37X,I6) 55 IF(IOP3 .EQ. 0)GO TO 20 IF(II .EQ. LEN)GO TO 20 C C FLOATING POINT FORMAT. C IF(ITOGL .LT. 0)WRITE(LST,145)FPE(II/2) IF(ITOGL .GE. 0)WRITE(LST,145)FP(II/2+1) 145 FORMAT("*",46X,F15.7) ITOGL=-ITOGL 20 CONTINUE 10 CONTINUE GO TO 5 END FUNCTION ISWAP(IWORD) C THIS FUNCTION RETURNS AS ITS VALUE THE INTERCHANGED HALVES OF ITS C ARGUMENT. THE ALGORITHM IS AS FOLLOWS: C C FIRST, MASK OFF AND SAVE THE LOW ORDER HALF OF THE WORD. C ILOW=IAND(IWORD,377B) C C SECOND, MAKE A COPY OF THE ARGUMENT FOR LOCAL USE. C ISAVE=IWORD C C THIRD, MASK OFF AND SAVE ALL BUT THE SIGN BIT. THIS WILL CONVERT C A VERY SMALL NEGATIVE INTEGER TO A LARGE POSITIVE ONE. THIS IS C NECESSARY SO THAT THE DIVISION IN STEP FOUR WILL WORK PROPERLY. C ISAVE=IAND(ISAVE,77777B) C C FOURTH, DIVIDE THE LOCAL COPY OF THE ARGUMENT BY 2**(N/2) WHERE N C IS THE NUMBER OF BITS IN THE WORD. THIS WILL SHIFT THE HIGH ORDER C HALF OF THE WORD, LESS THE SIGN BIT, DOWN INTO THE LOWER N/2 C BITS OF THE WORD. IF THIS HAD BEEN A SMALL NEGATIVE NUMBER THE C DIذ*($VISION WOULD HAVE YIELDED ZERO, HENCE THE PRECAUTIONS TAKEN C IN THE THIRD STEP. C FIFTH, MASK OFF AND SAVE THE BITS THUS SHIFTED DOWN. C IHIGH=IAND(ISAVE/256,177B) C C SIXTH, IF THE ORIGINAL ARGUMENT WAS NEGATIVE, "OR" IN THE NOW C SHIFTED DOWN SIGN BIT. WE NOW HAVE BOTH THE HIGH AND LOW HALVES C OF THE WORD ISOLATED. C IF(IWORD .LT. 0)IHIGH=IOR(IHIGH,200B) C C SEVENTH AND LAST, MERGE THE TWO HALVES BY FIRST MULTIPLYING THE C ORIGINAL LOWER HALF BY 2**(N/2), THUS SHIFTING IT UP INTO THE C UPPER HALF OF THE WORD, AND SECONDLY "OR"ING IN THE ORIGINAL C UPPER HALF, MAKING IT THE NEW LOW ORDER HALF. C ISWAP=IOR(ILOW*256,IHIGH) RETURN C C THE SAME FUNCTION CAN BE REALIZED BY THE FOLLOWING ASSEMBLY CODE: C C ASMB,R C NAM ISWAP C ENT ISWAP C EXT .ENTR C IWORD NOP GETS ADDRESS OF WORD TO SWAP C ISWAP NOP ENTRY/EXIT POINT C JSB .ENTR FETCH ARGUMENTS C DEF IWORD HOW MANY AND WHERE TO PLACE ADDRESSES C LDA IWORD,I GET WORD TO SWAP C ALF,ALF TWO FOUR BIT CIRCULAR SHIFTS = A SWAP C JMP ISWAP,I GO BACK C END C END SUBROUTINE PAGER(LST,IPAGE,NAME,INUM,IOP) DIMENSION NAME(3),IOP(80) C C THIS SUBROUTINE WRITES THE HEADINGS ON THE OUTPUT LISTING. C WRITE(LST,101)IPAGE 101 FORMAT("1",70X,"PAGE ",I2) WRITE(LST,127)NAME,INUM,IOP 127 FORMAT(" DUMP OF FILE: ",3A2,5X,"# OF SECTORS DUMPED: ",I4, *5X,"OPTIONS SELECTED: ",80R1,/) WRITE(LST,128) 128 FORMAT(2X,"WORD",7X,"OCTAL ASCII LEFT RIGHT",3X,"FIXED", *4X,"FLOATING POINT") RETURN END END$ 5K*   22682-18060 1703 SC 0122 NAMR              H0101 LASMB,R,B,L NAM NAMR,7 ENT NAMR EXT .ENTR,$PARS EXT REIO,$LIBR,$LIBX * * * WRITTEN BY P.A.SWARTZ 83410 * HUGHES AIRCRAFT - T.E.L. * TUCSON, AZ * 10/17/76 * 1/31/77 MODIFIED FOR FILE OR LU INPUT * * * THIS SUBROUTINE EXTRACTS A FILE NAME (NAME, SC, CRN) * OR A LOGICAL UNIT FROM A BUFFER. CALLING SEQUENCE: * * CALL NAMR(IBUF,NAME,ISC,ICRN). * * IT IS ASSUMED THAT FIELDS ARE SEPERATED BY COLONS AND THAT * THE BUFFER ENDS WITH A BLANK. * * IF IBUF < 1K THEN IT IS ASSUMED TO BE A LU AND THE BUFFER * IS INPUT BY THIS ROUTINE. * * EXIT WITH A = 2 IF A FILE NAME WAS INPUT OR A = 1 IF A * LOGICAL UNIT WAS INPUT. * * IBUF NOP NAME NOP SC NOP CRN NOP NAMR NOP JSB .ENTR DEF IBUF * LDA IBUF,I ADA M1K SSA,RSS JMP NAMR1 USER GAVE BUFFER. * LDA .BUF STA T LDA M12 LDB DBLBL STB T,I CLEAR BUFFER ISZ T INA,SZA JMP *-3 * LDA IBUF,I IOR B400 PUT IN ECHO BIT. STA T JSB REIO INPUT FILE NAME DEF *+5 DEF P1 DEF T .BUF DEF BUF DEF P11 * LDA .BUF STA IBUF * * * NAMR1 LDA IBUF STA T * LOOP LDA T,I REPLACE ":" WITH "," AND LOOK FOR 0. ALF,ALF JSB CHECK JMP SCAN DONE * ALF,ALF JSB CHECK JMP SCAN+1 DONE STA T,I ISZ T JMP LOOP * * * SCAN ALF,ALF STA T,I * LDB IBUF COMPUTES BYTES IN BUFFER CMB,INB ADB T INB ADB B LDA IBUF POINT TO BUFFER JSB DOIT GO PARSE THE BUFFER. * * LDA .RBUF INA STA T LDA NAME LDB RBUF CPB P1 JMP *+3 NUMERIC PARAMETER MEANS LU. JSB MOVE MOVE NAME TO USERS BUFFER JSB MOVE JSB MOVE * LDA RBUF+5 DO SECURITY CODE STA SC,I * $ LDA RBUF+9 DO CRN STA CRN,I * LDA RBUF JMP NAMR,I * * * * DOIT NOP JSB $LIBR NOP JSB $PARS .RBUF DEF RBUF JSB $LIBX DEF DOIT * * * MOVE NOP LDB T,I STB A,I ISZ T INA JMP MOVE,I * * * * * CHECK NOP STA T1 SAVE WORD AND B177 ISOLATE LOW BYTE CPA BLANK JMP CHEK2 DONE WITH BUFFER. ISZ CHECK * CPA COLON CHECK FOR ":" RSS CHEK2 CLA,RSS LDA BM16 ADA T1 JMP CHECK,I HED CONSTANTS AND STORAGE A EQU 0 B EQU 1 * M12 DEC -12 M1K DEC -1024 B400 OCT 400 P1 DEC 1 P11 DEC 11 BM16 OCT -16 B177 OCT 177 BLANK OCT 40 * COLON OCT 72 * T1 NOP T NOP * BUF BSS 11 THESE 2 LINES MUST BE IN THIS ORDER DBLBL ASC 1, * RBUF BSS 34 * ZZZZZ EQU *+0 PROGRAM SIZE END FTN4,L,B PROGRAM TEST DIMENSION IBUF(15),NAM(3) C DATA LU/1/ C C C CLEAR THE INPUT BUFFER WITH BLANKS. CLEAR SECURITY CODE AND C CARTRIDGE NUMBER. C DO 10 I = 1,15 10 IBUF(I) =2H ISC = 0 ICRN = 0 C C C PROMPT SYSTEM COMMAND DEVICE FOR FILE NAME AND INPUT IT. C WRITE(LU,2) 2 FORMAT("? _") CALL EXEC(1,LU+400B,IBUF,14) C C C CONVERT AND WRITE OUT FIELDS C J = NAMR(IBUF,NAM,ISC,ICRN) IF(J .EQ. 2) WRITE(LU,3) J,NAM,ISC,ICRN 3 FORMAT(" A REG = "I2" FIELDS ARE "3A2,2I7) C IF(J .NE. 2) WRITE(LU,4) J,NAM(1),ISC,ICRN 4 FORMAT(" AREG = "I2," FIELDS ARE"3I7) C C C C CLEAR C ISC = 0 ICRN = 0 C C C PROMPT S.C.D. C WRITE(LU,2) C C C LET NAMR INPUT THE FILE NAME C J = NAMR(LU,NAM,ISC,ICRN) IF(J .EQ. 2) WRITE(LU,3) J,NAM,ISC,ICRN IF(J .NE. 2) WRITE(LU,4) J,NAM(1),ISC,ICRN C C C DONE C END  END$   22682-18061 1721 SC 0122 AUTOMATIC TEXT REPORT FORMATTER             H0101 FTN4,L C PROGRAM FORMT(3,45) C C C C PROGRAM DESCRIPTION C ------------------- C C THE PURPOSE OF THIS PROGRAM IS TO PRODUCE A LISTING OF A PRINTABLE C DOCUMENT WITH AUTOMATIC PAGE TITLES AND NUMBERING. IT ACCEPTS INPUT C FROM AN FMP FILE AND THEN RETRIEVES FROM THE USER INFORMATION ABOUT C HOW THE REPORT IS TO BE GENERATED. TYPE 0 FILES ARE ALSO ALLOWED C TO MAKE USE OF EXTERNAL DEVICES SUCH AS MAG TAPE OR CARD READER. C C PROGRAM EXECUTION C ----------------- C C THE PROGRAM IS CONVERSATIONAL AND IS EXECUTED AS FOLLOWS: C C RU,FORMT[,LUTTY] C C LUTTY --> CONVERSATIONAL TERMINAL LU C C CONVERSATIONAL DIALOGUE C ----------------------- C C RU,FORMT C C /FORMT: RTE AUTOMATIC TEXT LISTOR (25/MAY/77, LWS) C C /FORMT: ALL INPUT PARAMETERS ARE IN ASCII OR '/E' TO TERMINATE. C C C /FORMT: FILE NAME (NAMR)? (ENTER AN FMP FILE NAME C IN FORM OF NAMR, I.E. C NAME[:SC[:CR]]) C C /FORMT: #LINES/PAGE? (ENTER NUMBER OF LINES PER C PRINTED PAGE. YOU MUST C ACCOUNT FOR THE HEADING AND C NUMBER OF LINES AFTER THE C HEADING, SEE NEXT RESPONSE.) C C /FORMT: OUTPUT RECORD WORD LENGTH? (ENTER THE MAXIMUM SIZE OF EACH C OUTPUT RECORD. THIS USUALLY C INDICATES THE SIZE OF YOUR C LIST DEVICE.) C C /FORMT: START PAGE#? (ENTER THE STARTING PAGE NUMBER C FOR THE FIRST AUTOMATIC PAGE C TO BE NUMBERED.) C C /FORMT: #LINES SPACE FROM HEADER? (ENTER NUMBER OF LINES TO C SPACE DO>WN FROM THE HEADING C OF EACH PAGE.) C C /FORMT: #PAGES SKIP NUMBERING? (ENTER THE NUMBER OF INITIAL C PAGES TO SKIP AUTOMATIC PAGE C NUMBERING. IF AUTOMATIC PAGE C NUMBERING IS NOT DESIRED, JUST C ENTER A LARGE ENOUGH VALUE C THAT IS GREATER THAN THE TOTAL C NUMBER OF POSSIBLE PAGES.) C C /FORMT: TOP-OF-FORM CONTROL CHAR? (ENTER ANY CHARACTER THAT IS C TO BE USED TO SIGNAL TOP-OF- C FORM FOR A NEW PAGE.) C C /FORMT: HEADER (UP TO 132 CHARS)? (ENTER UP TO A 132 CHRARACTER C HEADING FOR EACH PAGE. THE C FIRST COLUMN SHOULD BE BLANK.) C C /FORMT: LIST DEVICE LU? (ENTER THE DEVICE LU WHICH THE C LISTING IS TO OCCUR.) C C /FORMT: TEXT NUMBERING (YES OR NO)? (ENTER YES TO AUTOMATICALLY AP- C PEND LINE NUMBERS TO EACH LINE C OF TEXT. THE LINE NUMBER OC- C CUPIES 8 PRINT POSITIONS AND C THUS WILL DETRACT FROM THE C OUTPUT RECORD LENGTH.) C C THE PROGRAM WILL THEN PROCEED TO LIST PRINT STATISTICS ON THE LIST C DEVICE ACCORDING TO YOUR ABOVE INPUTS, PAGE EJECT, AND BEGIN THE C TEXT LISTING. C C TO TERMINATE LISTING AT ANY POINT IN TIME, ENTER C C *BREAK,FORMT C C AND THE FILE WILL BE CLOSED AND LISTING TERMINATE. C C C WARNING C ------- C C THIS PROGRAM MAKES NO ATTEMPT TO ANALYZE THE FIRST CHARACTER OF C EACH LINE FOR INTERNAL PURPOSES OF CARRIAGE CONTROL. THUS, YOU MUST C BE CAREFUL TO NOT PUT CONTROL CHARACTERS WHICH ARE SENSITIVE TO YOUR C MAKE OF LINE PRINTER IN COLUMN 1. C C INTEGER LUN(5),IQ(2),DCB(144),INBUF(65),IRES(33),FNAME(20) INTEGER HEADER(61),TEXT,TLINE EQUIVALENCE(LUN1,LUN(1)),(LUN2,LUN(2)),(A,IQ,IA),(IB,IQ(2)) EQUIVALENCE(IRES1,IRES(1)),(IRES2,IRES(2)),(IRES5,IRES(5)) EQUIVALENCE(IRES3,IRES(3)),(IRES4,IRES(4)) EQUIVALENCE(IRES6,IRES(6)),(HEAD1,HEADER(1)) EQUIVALENCE(IRES9,IRES(9)),(IRES10,IRES(10)) EQUIVALENCE(FNAME1,FNAME(1)),(FNAME2,FNAME(2)),(FNAME3,FNAME(3)) EQUIVALENCE(DCB1,DCB(1)),(INBUF1,INBUF(1)),(INBUF4,INBUF(4)) EQUIVALENCE(INBUF5,INBUF(5)) DATA FNAME/20*2H /,TEXT/-1/,ICTRL/2H1 / C C... RETRIEVE SCHEDULE LU'S ... C CALL RMPAR(LUN1) C C... ESTABLISH ACTUAL LU'S ... C LUTTY=LUN1 IF(LUN1.EQ.0) LUTTY=1 LUTTY=IOR(LUTTY,400B) C C... GET FILE NAME ... C WRITE(LUTTY,989) 989 FORMAT(//"/FORMT: RTE AUTOMATIC TEXT LISTOR (25/MAY/77, LWS)"//) 10 WRITE(LUTTY,100) 100 FORMAT(//" /FORMT: ALL INPUT PARAMETERS ARE IN ASCII OR '/E'" -" TO TERMINATE."//" /FORMT: FILE NAME (NAMR)? _") A=REIO(1,LUTTY,FNAME1,10) IBB=IB IF(IB.GT.0) GO TO 20 C C... INPUT ERROR OR DEVICE TIME-OUT ... C 13 WRITE(LUTTY,150) 150 FORMAT(" /FORMT: INPUT ERROR.") GO TO 999 C C... CHANGE ANY COLONS (:) TO COMMAS FOR SYSTEM PARSE ... C C C THIS SUBROUTINE ACCEPTS A BUFFER CONTAINING AN ASCII STRING C (USUALLY AN FMP 'NAMR') AND CONVERTS ALL COLONS (:) TO COMMAS (,) C THIS ALLOWS THE USE OF THE SYSTEM PARSE ROUTINE (WHICH REQUIRES C COMMAS AS DELIMITERS) TO PARSE OUT FMP 'NAMR'S WHICH USE COLONS C AS DELIMITERS. C 20 DO 30 NW=1,IBB IF(IAND(FNAME(NW),77600B).NE.35000B)GO TO 35 FNAME(NW)=IOR(IAND(FNAME(NW),177B),26000B) 35 IF(IAND(FNAME(NW),177B).NE.72B)GO TO 30 FNAME(NW)=IOR(IAND(FNAME(NBW),77600B),54B) 30 CONTINUE C C... PARSE DOWN THE FILE NAME, SECURITY CODE, & CARTRIDGE REFERENCE ... C CALL PARSE(FNAME1,IBB*2,IRES1) IF(IRES1.EQ.2H/E) GO TO 999 IF(IRES1.EQ.2) GO TO 40 WRITE(LUTTY,102) 102 FORMAT(" /FORMT: FILE NAME NOT ASCII.") GO TO 999 40 IF(IRES9.LE.1) GO TO 50 WRITE(LUTTY,103) 103 FORMAT(" /FORMT: CARTRIDGE REFERENCE NOT NUMERIC.") GO TO 999 C C... ATTEMPT TO OPEN THE FILE EXCLUSIVELY ... C 50 CALL OPEN(DCB1,IERR,IRES2,0,IRES6,IRES10) IF(IERR.GE.0) GO TO 676 WRITE(LUTTY,111)IERR 111 FORMAT(" /FORMT: FILE OPEN ERROR"I5) GO TO 350 C C... #LINES/PAGE ... C 676 WRITE(LUTTY,104) 104 FORMAT(" /FORMT: #LINES/PAGE? _") A=REIO(1,LUTTY,INBUF1,3) IF(IB.GT.0) GO TO 1000 NLPAGE=56 GO TO 575 1000 CALL PARSE(INBUF1,IB*2,IRES1) IF(IRES2.EQ.2H/E) GO TO 350 IF(IRES1.LE.1) GO TO 70 WRITE(LUTTY,105) 105 FORMAT(" /FORMT: #LINES/PAGE NOT NUMERIC.") GO TO 676 70 NLPAGE=IRES2 IF(NLPAGE.LE.0) NLPAGE=56 C C... GET MAX OUTPUT RECORD LENGTH ... C 575 WRITE(LUTTY,585) 585 FORMAT(" /FORMT: OUTPUT RECORD WORD LENGTH? _") A=REIO(1,LUTTY,INBUF1,3) IF(IB.GT.0) GO TO 590 MAX=40 GO TO 252 590 CALL PARSE(INBUF1,IB*2,IRES1) IF(IRES2.EQ.2H/E) GO TO 350 IF(IRES1.LE.1) GO TO 690 WRITE(LUTTY,595) 595 FORMAT(" /FORMT: OUTPUT RECORD WORD LENGTH NOT NUMERIC.") GO TO 575 690 IF(IRES2.LE.61) GO TO 250 WRITE(LUTTY,692) 692 FORMAT(" /FORMT: OUTPUT RECORD WORD LENGTH > 61.") GO TO 575 C C... GET START PAGE# ... C 250 MAX=IRES2 IF(MAX.LE.0) MAX=80 252 WRITE(LUTTY,2000) 2000 FORMAT(" /FORMT: START PAGE#? _") A=REIO(1,LUTTY,INBUF1,3) IF(IB.GT.0) GO TO 2050 ISTRT=1 GO TO 72 2050 CALL PARSE(INBUF1,IB*2,IRES1) IF(IRES2.EQ.2H/E) GO TO 350 IF(IRES1.LE.1) GO TO 2060  WRITE(LUTTY,260) 260 FORMAT(" /FORMT: START PAGE# NOT NUMERIC.") GO TO 252 2060 ISTRT=IRES2 IF(IRES1.LE.0) ISTRT=1 C C... GET #LINES SPACE FROM HEADER ... C 72 WRITE(LUTTY,106) 106 FORMAT(" /FORMT: #LINES SPACE FROM HEADER? _") A=REIO(1,LUTTY,INBUF1,3) IF(IB.GT.0) GO TO 75 NISKIP=1 GO TO 69 75 CALL PARSE(INBUF1,IB*2,IRES1) IF(IRES2.EQ.2H/E) GO TO 350 IF(IRES1.LE.1) GO TO 65 WRITE(LUTTY,120) 120 FORMAT(" /FORMT: #LINES SPACE FROM HEADER NOT NUMERIC.") GO TO 72 65 NISKIP=IRES2 IF(NISKIP.LE.0) NISKIP=1 C C... GET #PAGES SKIP NUMBERING ... C 69 WRITE(LUTTY,108) 108 FORMAT(" /FORMT: #PAGES SKIP NUMBERING? _") A=REIO(1,LUTTY,INBUF1,3) IF(IB.GT.0) GO TO 460 INSKIP=0 GO TO 450 460 CALL PARSE(INBUF1,IB*2,IRES1) IF(IRES2.EQ.2H/E) GO TO 350 IF(IRES1.LE.1) GO TO 67 WRITE(LUTTY,130) 130 FORMAT(" /FORMT: #PAGES SKIP NUMBERING NOT NUMERIC.") GO TO 69 67 INSKIP=IRES2 C C... GET PAGE EJECT CONTROL CHARACTER ... C 450 WRITE(LUTTY,254) 254 FORMAT(" /FORMT: TOP-OF-FORM CONTROL CHAR? _") A=REIO(1,LUTTY,INBUF1,-1) 470 ICTRL=INBUF1/256 C C... GET LISTING HEADER ... C WRITE(LUTTY,109) 109 FORMAT(" /FORMT: HEADER? (UP TO 132 CHARS)?") A=REIO(1,LUTTY,HEAD1,-132) IHEDL=IB C C... GET LIST DEVICE LU ... C 95 WRITE(LUTTY,110) 110 FORMAT(" /FORMT: LIST DEVICE LU? _") A=REIO(1,LUTTY,INBUF1,3) IF(IB.GT.0) GO TO 90 LULST=6 GO TO 8080 90 CALL PARSE(INBUF1,IB*2,IRES1) IF(IRES2.EQ.2H/E) GO TO 350 IF(IRES1.LE.1) GO TO 155 WRITE(LUTTY,140) 140 FORMAT(" /FORMT: LIST DEVICE LU NOT NUMERIC.") GO TO 95 155 LULST=IRES2 IF(LULST.LE.0) LULST=6 C C... GET AUTOMATIC TEXT LINE NUMBERING ... C 8090 WRITE(LUTTY,8000) 8000 FORMAT(" /FORMT: TEXT NUMBERING (YES OR NO)? _") A=REIO(1,LUTTY,INBUF1,1)  IF(IB.GT.0) GO TO 8080 WRITE(LUTTY,150) GO TO 8090 8080 IF(INBUF1.EQ.2HYE) GO TO 8030 IF(INBUF1.EQ.2HNO) GO TO 8070 WRITE(LUTTY,150) GO TO 8090 8030 TEXT=0 8070 LUEJ=IOR(LULST,1100B) C C... LIST THE FILE ... C C PRINT CONTROL VARIABLES: C C ICTRL = EJECT CONTROL CHARACTER C ISTRT = START PAGE NUMBER C NLPAGE = #LINES/PAGE C NISKIP = #LINES FROM HEADER C INSKIP = #PAGES SKIP INITIAL NUMBERING C NL = ACTUAL #LINES/PAGE IN PRINT CONTROL LOOP C TLINE = CURRENT LINE NUMBER FOR NUMBERED TEXT OPTION C INBUF4=2H TLINE=1 300 NL=NLPAGE IF(INSKIP)304,304,333 304 DO 474 K=1,MAX 474 INBUF(K)=2H CALL CNUMD(ISTRT,INBUF(MAX-2)) INBUF(MAX-4)=2HPA INBUF(MAX-3)=2HGE CALL EXEC(2,LULST,INBUF1,MAX) ISTRT=ISTRT+1 333 IF(IHEDL.EQ.0) GO TO 3070 CALL EXEC(2,LULST,HEAD1,-IHEDL) IF(NISKIP)3000,3000,3070 3070 CALL EXEC(3,LUEJ,NISKIP) C 3000 DO 205 NLL=1,NL IF(IFBRK(LUTTY))3999,3001 3001 IF(TEXT)5400,5500 5500 CALL READF(DCB1,IERR,INBUF5,MAX,LEN) LLEN=LEN CALL CNUMD(TLINE,INBUF1) TLINE=TLINE+1 LEN=LEN+4 GO TO 5600 5400 CALL READF(DCB1,IERR,INBUF1,MAX,LEN) LENN=LEN 5600 IF(LENN.EQ.-1) GO TO 222 IF(IERR.EQ.0) GO TO 3333 WRITE(LUTTY,112)IERR 112 FORMAT(" /FORMT: FILE READ ERROR -"I5) GO TO 350 3333 IF(LLEN.EQ.-1) GO TO 222 IF(TEXT)8700,8750 8700 IF(INBUF1/256.EQ.ICTRL) GO TO 20066 GO TO 205 20066 TLINE=TLINE+1 GO TO 20077 8750 IF(INBUF5/256.EQ.ICTRL) GO TO 20077 205 CALL EXEC(2,LULST,INBUF1,LEN) C 20077 INSKIP=INSKIP-1 CALL EXEC(3,LUEJ,-1) GO TO 300 C C... PROGRAM BREAK ... C 3999 WRITE(LUTTY,3998) 3998 FORMAT(" /FORMT: PROGRAM BREAK - FILE CLOSED & LISTING TERMINATED -.") GO TO 350 C C... CLOSE FILE & PRINT DONE MESSAGE ... C 222 WRITE(LUTTY,355) 355 FORMAT(" /FORMT: END-OF-FILE{]*($.") 350 CALL CLOSE(DCB1,IERR) IF(IERR.EQ.0) GO TO 997 WRITE(LUTTY,169)IERR 169 FORMAT(" /FORMT: FILE CLOSE ERROR"I5) GO TO 999 997 WRITE(LUTTY,385) 385 FORMAT(" /FORMT: FILE CLOSED.") C 999 WRITE(LUTTY,210) 210 FORMAT(" /FORMT: END"//) C END END$ *   22682-18062 1710 SC 0222 INTEL 8080 ABSOLUTE PROGRAM ASSEMBLER            H0102 }C*********************************************************************** C C M8080 C C ROBERT T. NICHOLSON C C 2/14/77 C C*********************************************************************** C C M8080 IS A 2 PASS ABSOLUTE ASSEMBLER FOR THE INTEL 8080 PROCESSOR C CHIP. THE ASSEMBLY LANGUAGE USED IS AS DEFINED IN THE INTEL 8080 C ASSEMBLY LANGUAGE PROGRAMMING MANUAL, WITH THE EXCEPTION OF THE C FOLLOWING FEATURES, WHICH ARE NOT IMPLEMENTED IN THIS ASSEMBLER: C C 1) MACRO CAPABILITY (MORE POWERFUL MACRO FACILITIES ARE ALREADY C AVAILABLE). C 2) FULL EXPRESSION EVALUATION CAPABILITY (ONLY THE + AND - C OPERATORS WERE CONSIDERED NECESSARY). C C THE FORMAT OF THE BINARY OUTPUT IS: C C BYTE 1 - BYTE 2 = STARTING ADDRESS OF PROGRAM. C BYTE 3 - BYTE 4 = BYTE COUNT OF PROGRAM. C BYTE 5 - BYTE N = ABSOLUTE PROGRAM. C BYTE N+1 = CHECKSUM. (TOTAL OF BYTES 5-N) C C NOTE: ONLY COLUMNS 1-72 OF THE PARSED SOURCE STATEMENTS WILL C APPEAR ON THE OUTPUT LISTING. UNLESS OTHERWISE NOTED, C ALL ADDRESSES AND INSTRUCTIONS SHOWN ON THE LISTING WILL C BE IN OCTAL. C C*********************************************************************** C C VARIABLE USAGE: C C I1-I9 - TEMPORARY INDEXES. C IADDR - ABSOLUTE ADDRESS OF CURRENT INSTRUCTION. C IADDR1 - ABSOLUTE STARTING ADDRESS OF USER PROGRAM. C IBUFF1 - BUFFER FOR CURRENT SOURCE RECORD. C IBUFF2 - BUFFER FOR PARSED SOURCE RECORD. C ICHCK - CHECKSUM OF BINARY OUTPUT. (ONE BYTE) C ICOL - POINTER TO BEGINNING OF OP CODE FIELD. C IDCB - DCB (REQUIRED BY RTE FMGR). C IEOF - EOF ENCOUNTERED FLAG. C IERCNT - CURRENT ERROR COUNT. C IERR - FILE MANAGER CALL ERROR RETURN. C IF - CONDITIONAL ASSEMBLY FLAG. C ILNS - LINES REMAINING ON CURRENT PAGE. C INDEX - INDEX TO IOPTAB C IOPLIM - NUMBER OF OPCODES IN ,IOPTAB. C IOPTAB - OPCODE TABLE. FORMAT IS: C IOPTAB(X,1) - OP CHARACTER 1. C IOPTAB(X,2) - OP CHARACTER 2. C IOPTAB(X,3) - OP CHARACTER 3. C IOPTAB(X,4) - OP CHARACTER 4. C IOPTAB(X,5) - BYTE LENGTH OF INSTRUCTION. C IOPTAB(X,6) - INSTRUCTION TYPE. C IOPTAB(X,7) - INSTRUCTION CODE. C IPGNM - CURRENT PAGE NUMBER. C IRECNM - CURRENT SOURCE RECORD NUMBER. C ISM1 - NUMBER OF SYMBOL TABLE ENTRIES AT THE END OF PASS 1. C ISMNUM - CURRENT NUMBER OF SYMBOL TABLE ENTRIES. C ISMLIM - MAXIMUM NUMBER OF SYMBOL TABLE ENTRIES. C ISMTAB - SYMBOL TABLE. FORMAT IS: C ISMTAB(X,1) - SYMBOL CHARACTER 1. C . C . C ISMTAB(X,5) - SYMBOL CHARACTER 5. C ISMTAB(X,7) - CURRENT SYMBOL VALUE. C ITITL - "TITLE" BUFFER. C ITYPE - INSTRUCTION TYPE CODE (0-13). C LEN - LENGTH OF STRING RETURNED BY FMGR. C LULIST - LU OF LIST DEVICE. C LUPNCH - LU OF PUNCH. C NAME - SOURCE FILE NAME. C C*********************************************************************** COMMON IADDR,IERCNT,ILNS,IRECNM,NAME(5),IPGNM,ICHCK DIMENSION IDCB(144),IBUFF1(80),IBUFF2(80),IOPTAB(88,7), 1ISMTAB(200,6),ITITL(66) C C DUMMY ARRAYS FOR EQUIVALENCE STATEMENTS: C DIMENSION IOPTB1(88),IOPTB2(88),IOPTB3(88),IOPTB4(88),IOPTB5(88), 1IOPTB6(88),IOPTB7(88),ISMTB1(100),ISMTB2(100),ISMTB3(100), 2ISMTB4(100),ISMTB5(100),ISMTB6(100) EQUIVALENCE (IOPTB1(1),IOPTAB(1,1)),(IOPTB2(1),IOPTAB(1,2)), 1(IOPTB3(1),IOPTAB(1,3)),(IOPTB4(1),IOPTAB(1,4)),(IOPTB5(1), 2IOPTAB(1,5)),(IOPTB6(1),IOPTAB(1,6)),(IOPTB7(1),IOPTAB(1,7)) EQUIVALENCE (ISMTB1(1),ISMTAB(1,1)),(ISMTB2(1),ISMTAB(1,2)), 1(ISMTB3(1),ISMTAB(1,3)),(ISMTB4(1),ISMTAB(1,4)),(ISMTB5(1), 2ISMTAB(1,5)),(ISMTB6(1),ISMTAB(1,6)) EQUIVALENCE (LULIST,NAME(4)),(LUPNCH,NAME(5)) C C  INITIALIZE IOPTAB (OPCODE TABLE): C DATA IOPTB1 /1HA,1HA,1HA,1HA,1HA,1HA,1HC,1HC,1HC,1HC,1HC,1HC, 11HC,1HC,1HC,1HC,1HC,1HC,1HC,1HD,1HD,1HD,1HD,1HD,1HD,1HD,1HD,1HE, 21HE,1HE,1HE,1HH,1HI,1HI,1HI,1HI,1HJ,1HJ,1HJ,1HJ,1HJ,1HJ,1HJ,1HJ, 31HJ,1HL,1HL,1HL,1HL,1HM,1HM,1HN,1HO,1HO,1HO,1HO,1HP,1HP,1HP,1HR, 41HR,1HR,1HR,1HR,1HR,1HR,1HR,1HR,1HR,1HR,1HR,1HR,1HR,1HS,1HS,1HS, 51HS,1HS,1HS,1HS,1HS,1HS,1HS,1HT,1HX,1HX,1HX,1HX/ DATA IOPTB2 /1HC,1HD,1HD,1HD,1HN,1HN,1HA,1HC,1HM,1HM,1HM,1HM, 11HN,1HN,1HP,1HP,1HP,1HP,1HZ,1HA,1HA,1HB,1HC,1HC,1HI,1HS,1HW,1HI, 21HN,1HN,1HQ,1HL,1HF,1HN,1HN,1HN,1HC,1HM,1HM,1HN,1HN,1HP,1HP,1HP, 31HZ,1HD,1HD,1HH,1HX,1HO,1HV,1HO,1HR,1HR,1HR,1HU,1HC,1HO,1HU,1HA, 41HA,1HC,1HE,1HL,1HM,1HN,1HN,1HP,1HP,1HP,1HR,1HS,1HZ,1HB,1HB,1HE, 51HH,1HP,1HT,1HT,1HT,1HU,1HU,1HI,1HC,1HR,1HR,1HT/ DATA IOPTB3 /1HI,1HC,1HD,1HI,1HA,1HI,1HL,1H ,1H ,1HA,1HC,1HP, 11HC,1HZ,1H ,1HE,1HI,1HO,1H ,1HA,1HD,1H ,1HR,1HX,1H ,1H ,1H ,1H , 21HD,1HD,1HU,1HT,1H ,1H ,1HR,1HX,1H ,1H ,1HP,1HC,1HZ,1H ,1HE,1HO, 31H ,1HA,1HA,1HL,1HI,1HV,1HI,1HP,1HA,1HG,1HI,1HT,1HH,1HP,1HS,1HL, 41HR,1H ,1HT,1HC,1H ,1HC,1HZ,1H ,1HE,1HO,1HC,1HT,1H ,1HB,1HI,1HT, 51HL,1HH,1HA,1HA,1HC,1HB,1HI,1HT,1HH,1HA,1HI,1HH/ DATA IOPTB4 /1H ,1H ,1H ,1H ,1H ,1H ,1HL,1H ,1H ,1H ,1H ,1H , 11H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H , 21H ,1HI,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H , 31H ,1H ,1HX,1HD,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1HL,1H ,1HH,1H , 41H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H , 51HD,1HL,1H ,1HX,1H ,1H ,1H ,1HL,1HG,1H ,1H ,1HL/ DATA IOPTB5 /2,1,1,2,1,2,3,3,3,1,1,1,3,3,3,3,2,3,3,1,1,99, 11,1,1,99,100,1,0,0,0,1,0,2,1,1,3,3,3,3,3,3,3,3,3,3,1,3,3,1,2,1, 21,0,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,3,1,3,1,1,1,2, 30,1,1,2,1/ DATA IOPTB6 /11,7,7,11,7,11,12,12,12,3,3,7,12,12,12,12,11,12, 112,3,8,1,4,8,3,1j3,2,3,0,0,0,3,0,11,4,8,12,12,12,12,12,12,12,12, 212,12,6,12,9,5,10,3,7,0,11,11,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,4,3, 37,11,0,12,3,12,6,3,7,11,0,3,7,11,3/ DATA IOPTB7 /316B,210B,200B,306B,240B,346B,315B,334B,374B, 1057B,077B,270B,324B,304B,364B,354B,376B,344B,314B,047B,011B,0, 2005B,013B,363B,0,0,373B,0,0,0,166B,0,333B,4B,3B,332B,372B,303B, 3322B,302B,362B,352B,342B,312B,072B,012B,052B,1,100B,6B,0,260B, 40,366B,323B,351B,301B,305B,027B,037B,330B,311B,7B,370B,320B,300B, 5360B,350B,340B,017B,307B,310B,230B,336B,0,042B,371B,062B,2B,067B, 6220B,326B,0,353B,250B,356B,343B/ C C INITIALIZE ISMTAB (SYMBOL TABLE): C DATA ISMTB1 /1HA,1HB,1HC,1HD,1HE,1HH,1HL,1HM,1HS,1HP/ DATA ISMTB2 /1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1HP,1HS/ DATA ISMTB3 /1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1HW/ DATA ISMTB4 /1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H / DATA ISMTB5 /1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H / DATA ISMTB6 /7,0,1,2,3,4,5,6,6,6/ DATA ISMLIM/200/,ISMNUM/10/,IOPLIM/88/, 1IADDR1/0/,IERR/0/,IEOF/0/,IF/0/ C*********************************************************************** C GET FILE NAME AND LU OF LIST AND PUNCH; INITIALIZE VARIABLES IN C COMMON. OPEN FILE... IF ERROR, STOP: C*********************************************************************** CALL RMPAR(NAME) IF (LULIST .GT. 0 .AND. LUPNCH .GT. 0) GOTO 3 WRITE (1,2) 2 FORMAT (" ILLEGAL LIST OR PUNCH LU IN M8080.") STOP 3 IADDR=0 IPGNM=1 IRECNM=1 ILNS=54 IERCNT=0 WRITE (LULIST,5) IPGNM 5 FORMAT ("1INTEL 8080 ABSOLUTE PROGRAM ASSEMBLER - RTE VERSION", 110X,"PAGE",I7,/) CALL OPEN(IDCB,IERR,NAME) IF (IERR .GE. 0) GOTO 20 WRITE (LULIST,10) IERR 10 FORMAT (" FILE MANAGER ERROR ",I7,/) STOP C*********************************************************************** C C PASS ONE OF ASSEMBLEyR - READ SOURCE AND BUILD SYMBOL TABLE: C C*********************************************************************** 20 DO 25 I=1,40 25 IBUFF2(I)=2H CALL READF(IDCB,IERR,IBUFF2,40,LEN,IRECNM) IF (IERR .GE. 0) GOTO 40 WRITE (LULIST,10) IERR IF (LEN .GE. 0) GOTO 9000 IEOF=1 GO TO 999 C*********************************************************************** C UNPACK SOURCE BUFFER. C CHECK FOR LABEL ON CURRENT RECORD; IF LABEL IS FOUND, TRY TO C ADD IT TO THE SYMBOL TABLE. OTHERWISE, GO TO 200 TO PARSE OPCODE. C*********************************************************************** 40 I1=1 DO 45 I2=1,40 I3=IBUFF2(I2)/256 IBUFF1(I1)=I3*256+40B IBUFF1(I1+1)=(IBUFF2(I2)+40B-IBUFF1(I1))*256+40B 45 I1=I1+2 ICOL=1 IF (IBUFF1(1) .LE. 1H ) GOTO 200 IF (IBUFF1(1) .EQ. 1H; .OR. IBUFF1(1) .EQ. 1H*) GOTO 999 IF (IF .GT. 0) GOTO 200 IF (IBUFF1(1) .LT. 1H? .OR. IBUFF1(1) .GT. 1HZ) GOTO 130 IF (ISMNUM .LT. ISMLIM) GOTO 60 WRITE (LULIST,50) IRECNM 50 FORMAT (/," SYMBOL TABLE OVERFLOW IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 200 60 I1=ISRCH(1,IBUFF1,ISMNUM,ISMTAB(1,1)) IF (I1 .LT. 0) GO TO 80 WRITE (LULIST,70) IRECNM 70 FORMAT (/," DUPLICATE LABEL IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 200 80 ISMNUM=ISMNUM+1 DO 90 I1=1,5 90 ISMTAB(ISMNUM,I1)=1H I1=1 100 ISMTAB(ISMNUM,I1)=IBUFF1(I1) I1=I1+1 IF (I1 .EQ. 6 .OR. IBUFF1(I1) .EQ. 1H: .OR. 1IBUFF1(I1) .LE. 1H ) GO TO 120 GO TO 100 120 ISMTAB(ISMNUM,6)=IADDR ICOL=I1 GO TO 200 130 WRITE (LULIST,140) IRECNM 140 FORMAT (/," INVALID LABEL IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 C*********************************************************************** C DETERMINE TYPE OF INSTRUCTION BY SEARCHING OPCODE TABLE, AND C INCREMENvT ADDR APPROPRIATELY. IF LINE IS A COMMENT, OR IF LINE C CONTAINS AN ILLEGAL OPCODE, DO NOT INCREMENT ADDR. C*********************************************************************** 200 DO 210 I1=1,80 IF (IBUFF1(I1) .EQ. 1H: .OR. IBUFF1(I1) .LE. 1H ) GOTO 220 210 CONTINUE GO TO 999 220 DO 230 I2=I1+1,80 IF (IBUFF1(I2) .EQ. 1H;) GOTO 999 IF (IBUFF1(I2) .GT. 1H ) GOTO 240 230 CONTINUE GO TO 999 240 INDEX=IOPNM(I2,IBUFF1,IOPTAB(1,1)) ITYPE=IOPTAB(INDEX,6) IF (ITYPE .LT. 3 .OR. ITYPE .GT. 12) GO TO 250 C C STANDARD OPCODE (TYPE 3 TO 12): C IF (IF .GT. 0) GOTO 999 IADDR=IADDR+IOPTAB(INDEX,5) GO TO 999 250 IF (ITYPE .GE. 0) GO TO 260 C C ILLEGAL OPCODE: C GO TO 999 260 IF (ITYPE .GE. 1) GO TO 500 C*********************************************************************** C PROCESS PSUEDO INSTRUCTION (TYPE 0): C*********************************************************************** IF (INDEX .GT. 29) GO TO 270 C C END: C IEOF=1 GO TO 999 270 IF (INDEX .GT. 30) GOTO 280 C C ENDIF: C IF=0 GO TO 999 280 IF (IF .GT. 0) GOTO 999 IF (INDEX .GT. 31) GOTO 290 C C EQU: C IF (ICOL .EQ. 1) GOTO 999 I5=NEXT(I2,IBUFF1) IF (I5 .LE. 0) GOTO 400 I6=IEXP(I5,IBUFF1,ISMNUM,ISMTAB(1,1)) ISMTAB(ISMNUM,6)=I6 GO TO 999 290 IF (INDEX .GT. 33) GOTO 300 C C IF: C I5=NEXT(I2,IBUFF1) IF (I5 .LE. 0) GOTO 400 IF=IEXP(I5,IBUFF1,ISMNUM,ISMTAB(1,1)) GO TO 999 300 IF (INDEX .GT. 54) GOTO 330 C C ORG: C I5=NEXT(I2,IBUFF1) IF (I5 .LE. 0) GOTO 400 I6=IEXP(I5,IBUFF1,ISMNUM,ISMTAB(1,1)) IF (IADDR .EQ. 0) GOTO 320 WRITE (LULIST,310) IRECNM 310 FORMAT (/," ORG OUT OF SEQUENCE IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 999 320 IF (I6 .LT. 0) GOTO 450 IADDR1=I6 IADDR=I6 IF (ISMNUM .EQ. 10) GOTO 999 DO 325 I1=10,ISMNUM 325 ISMTAB(ISMNUM,6)=I6 GO TO 999 330 IF (INDEX .GT. 76) GOTO 340 C C SET: C IF (ICOL .NE. 1) ISMNUM=ISMNUM-1 GO TO 999 340 IF (INDEX .GT. 84) GOTO 999 C C TITLE: C GO TO 999 400 WRITE (LULIST,410) IRECNM 410 FORMAT (/," MISSING EXPRESSION IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 999 450 WRITE (LULIST,460) IRECNM 460 FORMAT (/," ILLEGAL EXPRESSION IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 999 500 IF (IF .GT. 0) GOTO 999 IF (ITYPE .GE. 2) GOTO 540 C*********************************************************************** C DB (TYPE 1): C*********************************************************************** I6=1 510 I4=NEXT(I2,IBUFF1) IF (I4 .LE. 0) GOTO 400 IF (IBUFF1(I4) .NE. 1H") GOTO 519 I5=0 I8=0 DO 516 I7=I4+1,80 IF (I8 .EQ. 1) GOTO 515 I8=1 IF (IBUFF1(I7) .EQ. 1H" .AND. IBUFF1(I7+1) .EQ. 1H") GOTO 516 I8=0 515 IF (IBUFF1(I7) .EQ. 1H" .AND. I8 .EQ. 0) GOTO 517 I8=0 I5=I5+1 516 CONTINUE 517 I4=I5/I6 IF (I4 * I6 .NE. I5) I5=I5+1 IADDR=IADDR+I5 GO TO 999 519 I5=1 DO 520 I7=I4,80 IF (IBUFF1(I7) .EQ. 1H,) I5=I5+1 IF (IBUFF1(I7) .EQ. 1H;) GOTO 530 520 CONTINUE 530 IADDR=IADDR+(I5*I6) GO TO 999 540 IF (ITYPE .GE. 3) GOTO 550 C*********************************************************************** C DW (TYPE 2): C*********************************************************************** I6=2 GO TO 510 C*********************************************************************** C DS (TYPE 13): C*********************************************************************** 550 I4=NEXT(I2,IBUFF1) IF (I4 .LT. 0) GOTO 400 I5=IEXP(I4,IBUFF1,ISMNUM,ISMTAB(1,1)) IF (I5 .*LT. 0) GOTO 450 IADDR=IADDR+I5 GO TO 999 C*********************************************************************** C END OF PASS 1 LOOP: C CHECK FOR IEOF FLAG. IF NOT SET, BUMP IRECNM AND GO READ NEXT C SOURCE RECORD. C*********************************************************************** 999 IF (IEOF .GT. 0) GOTO 1000 IRECNM=IRECNM+1 IF (ILNS .GT. 0) GOTO 20 ILNS=56+ILNS IPGNM=IPGNM+1 GO TO 20 C*********************************************************************** C END OF PASS 1: C PRINT SYMBOL TABLE. C*********************************************************************** 1000 IF=0 IEOF=0 DO 1100 I1=1,ISMNUM WRITE (LULIST,1010) (ISMTAB(I1,I2),I2=1,6),ISMTAB(I1,6) 1010 FORMAT (2H ,5A1,2H ,O7,3HB ,I7,3HD ) ILNS=ILNS-1 IF (ILNS .GT. 0) GOTO 1100 IPGNM=IPGNM+1 WRITE (LULIST,5) IPGNM ILNS=54 1100 CONTINUE C*********************************************************************** C PRINT 'NEXT ADDRESS' MESSAGE, PUNCH LEADR, PUNCH STARTING ADDRESS C AND BYTE COUNT. C*********************************************************************** WRITE (LULIST,1200) IADDR,IADDR 1200 FORMAT (/," END OF PASS 1. NEXT AVAILABLE ADDRESS =",O8,"B ", 1I7,"D.") CALL EXEC(3,1000B+LUPNCH,20) CALL EXEC(2,2300B+LUPNCH,IADDR1,1) IADDR=IADDR-IADDR1 I1=IADDR/256 CALL EXEC(2,2300B+LUPNCH,IADDR,1) C*********************************************************************** C C PASS 2 OF ASSEMBLER. C C********************************************************************** C INITIALIZE LOCAL VARIABLES, PRINT HEADER: C********************************************************************** IADDR=0 IADDR1=0 ICHCK=0 IEOF=0 IF=0 ILNS=54 IRECNM=1 ISM1=ISMNUM DO 2010 I1=1,66 2010 ITITL(I1)=1H IPGNM=IPGNM+1 WRITE (LULIST,2050) (ITITL(I),I=1,66),IPGNM 2050 FORMAT ("1",66A1,X,"PAGE",I5,/) C*********************************************************************** C REWIND SOURCE FILE: C*********************************************************************** CALL RWNDF(IDCB,IERR) IF (IERR .GE. 0) GOTO 2070 WRITE (LULIST,10) IERR WRITE (1,2060) 2060 FORMAT (" REPOSITION M8080 SOURCE TO FIRST RECORD.",/, 1" ENTER *GO,M8080 TO CONTINUE ASSEMBLY.") PAUSE C*********************************************************************** C READ AND UNPACK ONE RECORD: C*********************************************************************** 2070 DO 2080 I1=1,40 2080 IBUFF2(I1)=2H CALL READF(IDCB,IERR,IBUFF2,40,LEN,IRECNM) IF (IERR .GE. 0) GOTO 2100 WRITE (LULIST,10) IERR IF (LEN .GE. 0) GOTO 9000 IEOF=1 GO TO 2999 2100 I1=1 DO 2110 I2=1,40 I3=IBUFF2(I2)/256 IBUFF1(I1)=I3*256+40B IBUFF1(I1+1)=(IBUFF2(I2)+40B-IBUFF1(I1))*256+40B 2110 I1=I1+2 C*********************************************************************** C PARSE SOURCE RECORD: C*********************************************************************** 2150 I1=1 I2=1 DO 2160 I3=1,80 2160 IBUFF2(I3)=1H IF (IBUFF1(1) .EQ. 1H; .OR. IBUFF1(1) .EQ. 1H*) GO TO 2245 IF (IBUFF1(1) .LE. 1H ) GOTO 2190 C C MOVE LABEL TO NEW BUFFER: C DO 2170 I1=1,5 IF (IBUFF1(I1) .LE. 1H .OR. IBUFF1(I1) .EQ. 1H:) GOTO 2180 2170 IBUFF2(I1)=IBUFF1(I1) I1=6 2180 IBUFF2(I1)=1H: I1=I1+1 2190 IF (IBUFF1(I1) .GT. 1H ) GOTO 2200 I1=I1+1 IF (I1 .GT. 80) GOTO 2300 GO TO 2190 C C MOVE INSTRUCTION: C 2200 I2=8 IF (IBUFF1(I1) .EQ. 1H;) GOTO 2245 DO 2210 I3=I1,I1+4 IF (IBUFF1(I3) .EQ. 1H; .OR. IBUFF1(I3) .LE. 1H ) GOTO 2220 IBUFF2(I2)=IBUFF1(I3) 2210 I2=I2+1 I3=I1+5 2220 I1=I3 I2=13 2230 IF (IBUFF1(I1) .GT. 1H ) GOTO 2240 I1=I1+1 IF (I1 .GT. 80) GOTO 2300 GO TO 2230 C C MOVE REST OF SOURCE STATEMENT: C 2240 IF (IBUFF1(I1) .EQ. 1H; .AND. I2 .LT. 22) I2 = 22 2245 DO 2250 I3=I2,80 IBUFF2(I3)=IBUFF1(I1) IF (I1 .EQ. 80) GOTO 2300 2250 I1=I1+1 C*********************************************************************** C PRINT PARSED INSTRUCTION: C*********************************************************************** 2300 WRITE (LULIST,2310) IRECNM,(IBUFF2(I),I=1,72) 2310 FORMAT (1H ,I4,X,72A1) ILNS=ILNS-1 C************************************************************************ C DETERMINE INSTRUCTION TYPE: C************************************************************************ IF (IBUFF2(1) .EQ. 1H; .OR. IBUFF2(8) .EQ. 1H; .OR. 1IBUFF2(1) .EQ. 1H* .OR. IBUFF2(8) .LE. 1H ) GOTO 2999 ICOL=8 INDEX=IOPNM(ICOL,IBUFF2(1),IOPTAB(1,1)) IF (INDEX .GT. 0) GOTO 2340 IF (IF .GT. 0) GOTO 2999 WRITE (LULIST,2330) IRECNM 2330 FORMAT (/," UNRECOGNIZED INSTRUCTION IN LINE",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 2999 2340 ITYPE=IOPTAB(INDEX,6) C************************************************************************ C PROCESS INSTRUCTION BASED ON TYPE: C************************************************************************ IF (ITYPE .GE. 1) GOTO 2500 C*********************************************************************** C PROCESS PSUEDO INSTRUCTION (TYPE 0): C*********************************************************************** IF (INDEX .GT. 29) GOTO 2350 C C END: C IEOF=1 GO TO 2999 2350 IF (INDEX .GT. 30) GOTO 2360 C C ENDIF: C IF=0 GO TO 2999 2360 IF (IF .NE. 0) GOTO 2999 IF (INDEX .GT. 31) GOTO 2370 C C EQU: C GO TO 2999 2370 IF (INDEX .GT. 33) GOTO 2380 C C IF: C IF=IEXP(13,IBUFF2,ISMNUM,ISMTAB(1,1)) GO TO 2999 2380 IF (INDEX .GT. 5#4) GOTO 2400 C C ORG: C IF (IADDR .NE. 0) GO TO 2999 I1=IEXP(13,IBUFF2,ISMNUM,ISMTAB(1,1)) IF (I1 .GE. 0) GOTO 2390 WRITE (LULIST,460) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 2999 2390 IADDR=I1 IADDR1=I1 GO TO 2999 2400 IF (INDEX .GT. 76) GOTO 2460 C C SET: C IF (IBUFF2(1) .LE. 1H ) GOTO 2999 I1=ISRCH(1,IBUFF2,ISMNUM,ISMTAB(1,1)) IF (I1 .LE. 0) GOTO 2430 IF (I1 .GT. ISM1) GOTO 2420 WRITE (LULIST,2410) IRECNM 2410 FORMAT (/," ATTEMPT TO SET PREVIOUSLY DEFINED LABEL IN LINE",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 2999 2420 ISMTAB(I1,7)=IEXP(13,IBUFF2,ISMNUM,ISMTAB) GO TO 2999 2430 IF (ISMNUM .LT. ISMLIM) GOTO 2440 WRITE (LULIST,50) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 2999 2440 ISMNUM=ISMNUM+1 DO 2450 I1=1,5 ISMTAB(ISMNUM,I1)=1H IF (IBUFF2(I1) .EQ. 1H:) GOTO 2450 ISMTAB(ISMNUM,I1)=IBUFF2(I1) 2450 CONTINUE I1=ISMNUM GO TO 2420 C C TITLE: C 2460 IF (IBUFF2(13) .EQ. 1H" .OR. IBUFF2(13) .EQ. 1H') GOTO 2480 WRITE (LULIST,2470) IRECNM 2470 FORMAT (/," TITLE NOT IN CORRECT FORMAT IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 2999 2480 I2=1 DO 2490 I1=14,80 IF (IBUFF2(I1) .EQ. 1H" .OR. IBUFF2(I1) .EQ. 1H') GOTO 2999 ITITL(I2)=IBUFF2(I1) 2490 I2=I2+1 GO TO 2999 C 2500 IF (IF .NE. 0) GOTO 2999 GO TO (2510,2510,2550,2560),ITYPE C************************************************************************** C DB (TYPE 1) AND DW (TYPE 2): C************************************************************************** 2510 I1=12 2520 I1=I1+1 C C PROCESS ASCII STRINGS HERE,OR NUMERIC EXPRESSIONS AT 2529: C IF (IBUFF2(I1) .NE. 1H") GOTO 2529 I5=0 I8=0 DO 2526 I4=I1+1,80 I2=IBUFF2(I4) IF (I8 .EQ. 1) GOTO 2525 I8=1 IFA (I2 .EQ. 1H" .AND. IBUFF2(I4+1) .EQ. 1H") GOTO 2526 I8=0 2525 IF (I2 .EQ. 1H" .AND. I8 .EQ. 0) GOTO 2527 I8=0 I5=I5+1 I2=I2/256 CALL OUT(I2,ITITL) 2526 CONTINUE 2527 IF (ITYPE .EQ. 1) GOTO 2999 I4=I5/2 IF (I4 * 2 .EQ. I5) GOTO 2999 CALL OUT(1H ,ITITL) GO TO 2999 2529 I2=IEXP(I1,IBUFF2,ISMNUM,ISMTAB(1,1)) I3=I2/256 I4=I3*256 I4=I4+OVF(0) I4=I2-I4 CALL OUT(I4,ITITL) IF (ITYPE .EQ. 1) GOTO 2530 CALL OUT(I3,ITITL) 2530 I2=I1+1 DO 2540 I1=I2,80 IF (IBUFF2(I1) .EQ. 1H,) GOTO 2520 IF (IBUFF2(I1) .EQ. 1H;) GOTO 2999 2540 CONTINUE GO TO 2999 C************************************************************************** C SINGLE-BYTE INSTRUCTIONS WITHOUT MODIFIERS (TYPE 3): C************************************************************************** 2550 I1=IOPTAB(INDEX,7) CALL OUT(I1,ITITL) GO TO 2999 2560 IMOD=IEXP(13,IBUFF2,ISMNUM,ISMTAB(1,1)) I1=ITYPE-3 GO TO (2562,2580,2630,2640,2650,2650,2562,2800,2800,2900),I1 C************************************************************************** C SINGLE BYTE INSTRUCTION WITH ONE MODIFIER (TYPE 4): C************************************************************************** 2562 IF (IMOD .LT. 8 .AND. IMOD .GT. -1) GOTO 2570 2565 WRITE (LULIST,460) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 IMOD=0 2570 IMOD=IMOD*8 GO TO 2660 C************************************************************************* C SINGLE BYTE INSTRUCTION WITH TWO MODIFIERS (TYPE 5): C************************************************************************* 2580 IF (IMOD .LT. 8 .AND. IMOD .GT. -1) GOTO 2590 WRITE (LULIST,460) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 IMOD=0 2590 DO 2600 I1=14,80 IF (IBUFF2(I1) .EQ. 1H;) GOTO 2610 IF (IBUFF2(I1) .EQ. 1H,) GOTO 2615 2600 CONTINUE 2610 WRITE (LULIST,410) IRECNM  ILNS=ILNS-3 IERCNT=IERCNT+1 I2=0 GO TO 2620 2615 I1=I1+1 I2=IEXP(I1,IBUFF2,ISMNUM,ISMTAB(1,1)) IF (I2 .LT. 8 .AND. I2 .GT. -1) GOTO 2620 WRITE (LULIST,460) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 I2=0 2620 IMOD=I2 + IMOD * 8 GO TO 2660 C************************************************************************* C SINGLE BYTE INSTRUCTION WITH REG PAIR (TYPE 6): C************************************************************************* 2630 IF (IMOD .NE. 0 .AND. IMOD .NE. 2) GOTO 2565 IMOD=IMOD*8 GO TO 2660 C************************************************************************* C SINGLE BYTE INSTRUCTION WITH ONE MODIFIER (TYPE 7): C************************************************************************* 2640 IF (IMOD .GE. 8 .OR. IMOD .LE. -1) GOTO 2565 GO TO 2660 C************************************************************************* C SINGLE BYTE INSTRUCTION WITH REG PAIR (TYPE 8): C************************************************************************* 2650 IF (IMOD .GE. 7 .OR. IMOD .LE. -1) GOTO 2565 IMOD=IMOD/2 IMOD=IMOD*16 GO TO 2660 C C MERGE OPERAND WITH INSTRUCTION CODE: C 2660 I1=IOPTAB(INDEX,7)+IMOD CALL OUT(I1,ITITL) IF (ITYPE .LT. 9) GOTO 2999 I1=ITYPE-8 GO TO (2670,2670),I1 C************************************************************************* C OUTPUT 1 OR 2 DATA BYTES (TYPES 10 & 9): C************************************************************************* 2670 DO 2680 I1=14,80 IF (IBUFF2(I1) .EQ. 1H;) GOTO 2690 IF (IBUFF2(I1) .EQ. 1H,) GOTO 2700 2680 CONTINUE 2690 WRITE (LULIST,410) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 I2=0 GO TO 2710 2700 I1=I1+1 I2=IEXP(I1,IBUFF2,ISMNUM,ISMTAB(1,1)) 2710 I3=I2/256 CALL OUT(I2,ITITL) IF (ITYPE .EQ. 10 .OR. ITYPE .EQ. 11) GOTO 2999 CALL OUT(I3,ITITL) GO TO 29mK99 C************************************************************************* C UNMODIFIED INSTRUCTION WITH 1 OR 2 DATA BYTES (TYPES 11 & 12): C************************************************************************* 2800 I1=IOPTAB(INDEX,7) CALL OUT(I1,ITITL) I1=12 C GO OUTPUT DATA BYTES: GO TO 2700 C************************************************************************* C DS INSTRUCTION (TYPE 13): C************************************************************************* 2900 I1=IEXP(13,IBUFF2,ISMNUM,ISMTAB(1,1)) IF (I1 .GT. 0) GOTO 2910 WRITE (LULIST,460) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 2999 2910 IF (I1 .EQ. 1) GOTO 2930 DO 2920 I2=1,I1 CALL EXEC(2,2300B+LUPNCH,0,-1) 2920 CONTINUE 2930 CALL OUT(0,ITITL) IADDR=IADDR+I1-1 GO TO 2999 C*********************************************************************** C END OF PASS 2 LOOP: C CHECK FOR IEOF FLAG. IF NOT SET, BUMP IRECNM AND GO READ NEXT C SOURCE RECORD. C*********************************************************************** 2999 IF (IEOF .GT. 0) GOTO 3000 IRECNM=IRECNM+1 IF (ILNS .GT. 0) GOTO 2070 ILNS=54 IPGNM=IPGNM+1 WRITE (LULIST,2050) (ITITL(I),I=1,66),IPGNM GO TO 2070 C*********************************************************************** C PRINT "NUMBER OF ERRORS" MESSAGE: C*********************************************************************** 3000 WRITE (LULIST,3010) IERCNT 3010 FORMAT (/," END OF PASS 2. ",I7," ERRORS DETECTED.",/,"1 ") C*********************************************************************** C CLOSE FILE, PUNCH CHECKSUM & TRAILER, AND STOP: C*********************************************************************** 9000 CALL CLOSE(IDCB) ICHCK=ICHCK*256 ICHCK=ICHCK+OVF(0) CALL EXEC(2,2300B+LUPNCH,ICHCK,-1) CALL EXEC(3,1000B+LUPNCH,20) STOP END FUNCTION NEXT(I,IBr#UFF) C********************************************************************** C C 'NEXT' RETURNS THE COLUMN NUMBER OF THE BEGINNING OF THE FIELD C AFTER THE FIELD WHICH STARTS AT COLUMN I. IF NO NEW FIELD IS C FOUND, NEXT RETURNS A -1. C C********************************************************************** DIMENSION IBUFF(80) NEXT=-1 DO 10 I1=I,80 IF (IBUFF(I1) .LE. 1H ) GOTO 20 10 CONTINUE GO TO 999 20 DO 30 I2=I1,80 IF (IBUFF(I2) .EQ. 1H;) GOTO 999 IF (IBUFF(I2) .GT. 1H ) GOTO 900 30 CONTINUE GO TO 999 900 NEXT=I2 999 RETURN END FUNCTION ISRCH(I,IBUFF,ISMNUM,ISMTAB) C*********************************************************************** C C ISRCH SEARCHES THE SYMBOL TABLE FOR THE SYMBOL BEGINNING AT C COLUMN 'I' OF IBUFF. IF THE SYMBOL IS FOUND, ISRCH RETURNS C ITS INDEX. IF IT IS NOT FOUND, ISRCH RETURNS A -1. C C*********************************************************************** DIMENSION IBUFF(80),ISMTAB(200,6) ISRCH=-1 I2=I-1 DO 500 INDEX=1,ISMNUM DO 200 ICHAR=1,5 I3=I2+ICHAR IF (ISMTAB(INDEX,ICHAR) .GT. 1H ) GOTO 100 IBUFFI=IBUFF(I3) IF (IBUFFI .LE. 1H .OR. IBUFFI .EQ. 1H: .OR. IBUFFI 1.EQ. 1H+ .OR. IBUFFI .EQ. 1H- .OR. IBUFFI .EQ. 1H,) GOTO 1000 100 IF (IBUFF(I3) .NE. ISMTAB(INDEX,ICHAR)) GOTO 500 200 CONTINUE GO TO 1000 500 CONTINUE RETURN 1000 ISRCH=INDEX RETURN END FUNCTION IOPNM(I,IBUFF,IOPTAB) C*********************************************************************** C C IOPNM SEARCHES THE OPCODE TABLE FOR THE OPCODE BEGINNING AT C COLUMN 'I' OF IBUFF. SINCE IOPTAB ENTRIES ARE ARRANGED IN C ALPHABETICAL ORDER, IOPNM USES A BINARY SEARCH. IF THE OPCODE C IS FOUND, IOPNM RETURNS ITS INDEX. IF IT IS NOT FOUND, IOPNM C RETURNS A -1. C C*********************************************************************** DIMENSION IBUFF(80),IOPTAB(88,7) INDEX=44 IOFST=22 I2=I-1 DO 500 ICNT=1,9 DO 100 ICHAR=1,4 I3=I2+ICHAR IF (IBUFF(I3) .LT. IOPTAB(INDEX,ICHAR)) GOTO 200 IF (IBUFF(I3) .GT. IOPTAB(INDEX,ICHAR)) GOTO 300 IF (IBUFF(I3) .LE. 1H ) GOTO 1000 100 CONTINUE GO TO 1000 C C OPCODE IS LESS THAN IOPTAB(INDEX...) C 200 INDEX=INDEX-IOFST GO TO 400 C C OPCODE IS GREATER THEN IOPTAB(INDEX...) C 300 INDEX=INDEX+IOFST GO TO 400 400 IOFST=IOFST/2 IF (IOFST .LT. 1) IOFST=1 IF (INDEX .LT. 1 .OR. INDEX .GT. 88) GOTO 600 500 CONTINUE 600 IOPNM=-1 RETURN 1000 IOPNM=INDEX RETURN END FUNCTION IEXP(I,IBUFF,ISMNUM,ISMTAB) C*********************************************************************** C IEXP RETURNS THE VALUE OF THE EXPRESSION BEGINNING IN COLUMN C 'I' OF 'IBUFF.' THE EXPRESSION MAY CONTAIN LABELS, CONSTANTS, C AND THE OPERATORS + AND -. IF THE EXPRESSION CANNOT BE EVALUATED, C IEXP PRINTS AND ERROR MESSAGE AND RETURNS A VALUE OF -1 TO THE C CALLER. NOTE THAT IN SOME CASES, A -1 IS A VALID RETURN FROM C IEXP. C*********************************************************************** COMMON IADDR,IERCNT,ILNS,IRECNM,NAME(3),LULIST DIMENSION IBUFF(80),ISMTAB(200,6) IEXP=-1 IVAL=0 IOP=4 I1=I C C SCAN FOR NEXT NON-BLANK CHARACTER... EXIT IF NONE FOUND: C 50 IF (I1 .GT. 80) GO TO 900 IBUFFI=IBUFF(I1) IF (IBUFFI .GT. 1H ) GOTO 100 70 I1=I1+1 GO TO 50 C C IF REST OF LINE IS A COMMENT OR ANOTHER EXPRESSION, EXIT. C 100 IF (IBUFFI .EQ. 1H") GOTO 1000 IF (IBUFFI .EQ. 1H; .OR. IBUFFI .EQ. 1H,) GOTO 900 IF (IBUFFI .NE. 1H+ .AND. IBUFFI .NE. 1H-) GOTO 300 C C PROCESS OPERATOR (+ OR -): C IF (IOP .EQ. 1 .OR. IOP .EQ. 4) GOTO 200 110 WRITE (LULIST,120) IRECNM 120 FORMAT (/," INVA0LID EXPRESSION IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 999 C C ASSIGN 2 TO IOP IF -, 3 TO IOP IF + C 200 IOP=2 IF (IBUFFI .EQ. 1H+) IOP=3 GO TO 70 C C PROCESS LABEL OR VALUE- C FIND END OF LABEL FOR IINT ROUTINE: C 300 DO 310 I2=I1,80 IF (IBUFF(I2) .LT. 1H0 .OR. IBUFF(I2) .GT. 1Hz) GOTO 330 IF (IBUFF(I2) .GT. 1H9 .AND. IBUFF(I2) .LT. 1H?) GOTO 330 310 CONTINUE I2=81 330 I2=I2-1 C C IF LABEL IS A $, GET VALUE OF CURRENT ADDRESS. IF NOT, GO TO 350. C IF (IBUFFI .NE. 1H$) GOTO 350 I3=IADDR I2=I1 GO TO 500 C C CALL ISRCH TO DETERMINE IF VALID LABEL, OR CONSTANT: C 350 INDEX=ISRCH(I1,IBUFF,ISMNUM,ISMTAB(1,1)) IF (INDEX .LT. 0) GOTO 400 C C LABEL FOUND. GET VALUE, GO COMPUTE NEW VALUE FOR EXPRESSION: C I3=ISMTAB(INDEX,6) GO TO 500 C C NOT A LABEL... CALL IINT: C 400 I3=IINT(I1,I2,IBUFF) C C COMPUTE NEW VALUE FOR EXPRESSION: C 500 GO TO (510,520,530,530),IOP 510 WRITE (LULIST,120) IRECNM ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 999 520 I3=(-1)*I3 530 IVAL=IVAL+I3 550 IOP=1 I1=I2 GO TO 70 900 IEXP=IVAL 999 RETURN C C PROCESS ASCII STRING: C 1000 I1=I1 + 1 IF (IBUFF(I1) .EQ. 1H") I1=I1 + 1 I2=IBUFF(I1)/256 I1=I1+1 IF (IBUFF(I1) .EQ. 1H" .AND. IBUFF(I1+1) .NE. 1H") GOTO 1010 I3=IBUFF(I1)/256 I2=I3+I2*256 1010 IEXP=I2 RETURN END FUNCTION IINT(I1,I2,IBUFF) C*********************************************************************** C IINT RETURNS THE VALUE OF THE INTEGER CONSTANT IN COLUMNS 'I1' C THROUGH 'I2' OF 'IBUFF.' THE INTEGER CONSTANT MAY BE OF THE C FOLLOWING FORMS: C C XXXX DECIMAL CONSTANT C XXXXD DECIMAL CONSTANT C XXXXO OCTAL CONSTANT C XXXXQ B OCTAL CONSTANT C XXXXH HEX CONSTANT C XXXXB BINARY CONSTANT C C IF THE CONSTANT IS NOT IN ONE OF THE ABOVE FORMS, IINT PRINTS C AN ERROR MESSAGE BEFORE RETURNING. C*********************************************************************** COMMON IADDR,IERCNT,ILNS,IRECNM,NAME(3),LULIST DIMENSION IBUFF(80) IINT=0 IBASE=10 I4=I2 C C DETERMINE BASE OF CONSTANT: C IBUFFE=IBUFF(I2) IF (IBUFFE .GE. 1H0 .AND. IBUFFE .LE. 1H9) GOTO 200 IF (IBUFFE .NE. 1HO .AND. IBUFFE .NE. 1HQ) GOTO 110 IBASE=8 GO TO 190 110 IF (IBUFFE .NE. 1HH) GOTO 120 IBASE=16 GO TO 190 120 IF (IBUFFE .NE. 1HB) GOTO 130 IBASE=2 GO TO 190 130 IF (IBUFFE .EQ. 1HD) GOTO 190 140 WRITE (LULIST,150) IRECNM 150 FORMAT (/," UNDEFINED LABEL OR CONSTANT IN LINE ",I7,/) ILNS=ILNS-3 IERCNT=IERCNT+1 GO TO 999 190 I4=I2-1 IF (I4 .LT. I1) GOTO 140 C C EVALUATE CONSTANT: C 200 DO 300 I=I1,I4 I3=(IBUFF(I)/256)-60B IF (I3 .GT. 9) I3=I3-7 IF (I3 .GE. IBASE) GOTO 140 300 IINT=(IINT*IBASE)+I3 999 RETURN END SUBROUTINE OUT(I,ITITL) C************************************************************************** C OUT IS CALLED BY PASS 2 OF THE ASSEMBLER TO OUTPUT ONE BYTE OF C DATA TO THE PUNCH DEVICE, INCREMENT THE CURRENT ADDRESS, LIST THE C BYTE TO LULIST, AND SKIP TO THE NEXT PAGE OF THE LISTING WHEN C NECESSARY. C************************************************************************** COMMON IADDR,IERCNT,ILNS,IRECNM,NAME(3),LULIST,LUPNCH,IPGNM, 1ICHCK DIMENSION ITITL(66) C C PUNCH 1 BYTE: C IBYTE=I*256 I1=I 1 IF (I1 .LT. 256) GOTO 5 I1=I1-256 GO TO 1 5 CALL EXEC(2,2300B+LUPNCH,IBYTE,-1) ICHCK=ICHCK+I1 C C LIST BYTE: C WRITE (LULIST,10) IADDR,I1 10 FORMSNrplAT (42X,O5,7X,O3) ILNS=ILNS-1 IF (ILNS .GT. 0) GOTO 50 IPGNM=IPGNM+1 WRITE (LULIST,20) (ITITL(I1),I1=1,66),IPGNM 20 FORMAT ("1",66A1,X,"PAGE",I5,/) ILNS=54 C C INCREMENT ADDRESS: C 50 IADDR=IADDR+1 RETURN END END$ zr ORG 100Q ;------------------------------------------------------------------- ; ; M8080 TEST: ; ; THE FOLLOWING SHORT PROGRAM READS FROM AN INPUT DEVICE AND ; WRITES TO AN OUTPUT DEVICE. IN THIS CASE, BOTH "INPUT" ; AND "OUTPT" ARE SET TO DEVICE NUMBER 377 OCTAL, USUALLY THE ; FRONT PANEL. ; ;------------------------------------------------------------------- INPUT: EQU 377Q ;INPUT DEVICE NUMBER. OUTPT: EQU 377Q ;OUTPUT DEVICE NUMBER. START: IN INPUT ;READ ONE BYTE. OUT OUTPT ;WRITE ONE BYTE. JMP START ;LOOP. END #  22682-18063 1714 SC 0322 ENCRYPTION FOR RTE FMGR FILES             H0103 HPAL,L,"CYFER",0,3,99 BEGIN COMMENT ENCRYPTION PROGRAM FOR RTE FILE MANAGER FILES BENNETT MEYER THE SINGER COMPANY KEARFOTT DIVISION LITTLE FALLS, NEW JERSEY 07424 LATEST REVISION DATE IS NOTED AT FORMAT IDENT. THE NEED FOR ADEQUATE PROTECTION OF DATA STORED IN MASS MEMORY DEVICES AND COMPUTER SYSTEMS HAS LATELY BECOME A NATIONAL ISSUE, SINCE THIS INFORMATION CAN HAVE SIGNIFICANT VALUE AND SENSITIVITY. IT IS GENERALLY RECOGNIZED THAT ENCRYPTION PROVIDES A PRIMARY MEANS OF PROTECTING DATA DURING TRANSMISSION AND STORAGE, PROVIDED THAT ENCRYPTION TECHNIQUES OF ADEQUATE STRENGTH ARE USED. IN ORDER TO INSURE COMPATIBILITY OF SECURED DATA, THE NATIONAL BUREAU OF STANDARDS HAS DEEMED IT NECESSARY TO PROMULGATE A STANDARD METHOD OF DATA ENCRYPTION FOR NATIONAL USE. THE USE OF A STANDARD ALGORITHM PROVIDES DATA SECURITY DEPENDENT SOLELY UPON KNOWLEDGE OF A KEY. THE KEY IS SUPPLIED AT THE TIME THE DATA IS ENCIPHERED, AND IS ALSO SUPPLIED AT THE TIME THE DATA IS TO BE DECIPHERED. SINCE THE ALGORITHM ITSELF IS PUBLICLY KNOWN AND IMPLEMENTED FOR VARIOUS TYPES OF COMPUTER AND DATA TRANSMISSION SYSTEMS, THE SECURITY OF THE ENCRYPTED DATA DEPENDS UPON THE LARGE NUMBER OF BIT PERMUTATIONS PERFORMED IN RESPONSE TO THE CONFIGURATION OF THE KEY, AND THE EXCEEDINGLY LARGE NUMBER OF DIFFERENT KEYS THAT MAY BE USED. FOR THE NBS ALGORITHM, IT HAS BEEN ESTIMATED THAT IT WOULD TAKE SEVERAL HUNDRED YEARS OF CONTINUOUS COMPUTATION TO DECIPHER DATA CODED BY THIS ALGORITHM, IF THE CORRECT KEY WERE NOT KNOWN. THIS PROGRAM PERFORMS DATA ENCRYPTION AND DECRYPTION IN ACCORDANCE WITH THE DATA ENCRYPTION STANDARD (DES) OF THE NATIONAL BUREAU OF STANDARDS, SPECIFIED IN NBS PUBLICATION FIPS-PUB-46. THE DATA T&HAT IS PROCESSED BY THE PROGRAM IS TAKEN FROM AND STORED UPON FILES THAT RESIDE IN THE DISC STORAGE UNIT. THE FILE IS ENCIPHERED OR DECIPHERED IN BLOCKS CONSISTING OF 64 BITS, UNDER CONTROL OF A 64 BIT KEY. THE KEY ITSELF IS SYNTHESIZED FROM AN INPUT KEY STRING OF UP TO 128 CHARACTERS. DECIPHERING IS PERFORMED BY USING THE SAME KEY AS THE ORIGINAL CIPHERING OPERATION. THE OPTION TO CIPHER OR DECIPHER IS GIVEN AS A COMMAND. NO RESIDUE OF THE ORIGINAL DATA IS LEFT IN CORE OR ELSEWHERE AFTER THE PROGRAM HAS FINISHED AN OPERATION. THE PROGRAM HAS THE ADDITIONAL CAPABILITY OF PURGING DISC FILES SO THAT NO RESIDUE OF THE ORIGINAL DATA REMAINS IN THE FILE. NOTE THAT THE NORMAL METHOD OF PURGING FILES CAUSES THE DIRECTORY ENTRY TO BE DELETED, AND DISC SPACE TO BE MERELY MARKED AS PURGED. THE ACTUAL DISC SPACE USED BY PURGED FILES IS FINALLY OVERWRITTEN WHEN THE SPACE IS USED BY OTHER FILES OR WHEN THE DISC IS PACKED BY FILE MANAGER COMMANDS. SINCE THE ORIGINAL DATA IS NOT ERASED FROM THE DISC SPACE BELONGING TO THE PURGED FILE FOR A LONG PERIOD OF TIME, IT MAY OFTEN BE RECOVERED. HOWEVER, WHEN A FILE IS PURGED THROUGH THE USE OF THIS PROGRAM, THE ORIGINAL CONTENTS OF THE FILE ARE TOTALLY ERASED, AND THE FILE IS THEN DELETED BY THIS PROGRAM IN THE NORMAL MANNER. THEREFORE, WHEN THIS PROGRAM IS UTILIZED TO PURGE FILES, THERE IS NO WAY THAT THE ORIGINAL FILE DATA MAY BE RECOVERED FROM THE DISC. THIS PROGRAM OPERATES UPON FILE MANAGER FILES IN THE RTE ENVIRONMENT. THE ENCIPHERED DATA IS PLACED BACK INTO THE SAME FILE SPACE OCCUPIED BY THE ORIGINAL DATA, SO THAT THE CIPHERED AND UNCIPHERED DATA OCCUPY THE SAME AMOUNT OF DISC STORAGE. THUS, THE SAME FILE THAT ORIGINALLY CONTAINED THE UNCIPHERED CLEAR DATA WILL CONTAIN THE C IPHERED DATA AFTER THE PROGRAM IS EXECUTED. THE CIPHERING PROCESS CAN BE SAID TO BE PERFORMED "IN PLACE." RUNNING THE PROGRAM ------------------- THE PROGRAM IS ACTIVATED BY THE FOLLOWING RTE COMMAND OR ITS EQUIVALENT: ON,CYFER THE FOLLOWING ALTERNATIVE FORM MAY ALSO BE USED: ON,CYFER[,INLU[,OUTLU]] WHERE OPTIONAL PARAMETERS MAY BE SUPPLIED AS FOLLOWS: INLU - LOGICAL UNIT FROM WHICH INPUT COMMANDS WILL BE TAKEN OUTLU - LOGICAL UNIT TO WHICH OUTPUT MESSAGES WILL BE DIRECTED IF THE INLU PARAMETER IS GIVEN AND THE OUTLU PARAMETER IS EITHER NOT SPECIFIED OR IS ZERO, THEN BOTH INPUT AND OUTPUT WILL BE DONE WITH THE DEVICE SPECIFIED BY INLU. THE PROGRAM WILL REQUEST THE OPERATOR TO ENTER ONE OF THE FOLLOWING OPTIONS: C - ENTER THIS OPTION TO CIPHER A FILE. ANY TYPE OF DISC FILE STORED UNDER THE FILE MANAGER MAY BE CIPHERED. AFTER A FILE IS ENCIPHERED BY THIS PROGRAM, IT CANNOT BE LISTED, COPIED, OR READ BY THE FILE MANAGER. THE PROGRAM WILL REQUEST A KEY TO BE USED FOR THE CIPHERING OPERATION. KNOWLEDGE OF THE KEY MUST BE PRESERVED, SINCE THE FILE CAN BE DECIPHERED ONLY BY THE USE OF THE PROPER KEY. THE PROGRAM WILL ASK FOR THE NAME OF THE FILE TO BE CIPHERED, AND WILL THEN ASK THAT THE KEY BE ENTERED TWICE. THE KEY IS REQUESTED TWICE TO GUARD AGAINST TYPING ERRORS OR DATA ERRORS. AS THE USER ENTERS THE KEY, THE PROGRAM SUPPRESSES ECHO AT THE TELEPRINTER OR CRT TERMINAL. IN THIS WAY, A PAPER RECORD OF THE KEY IS NEVER CREATED, NOR IS IT VISIBLE ON A CRT DISPLAY SCREEN. D - ENTER THIS OPTION TO DECIPHER A FILE. THE PROCEDURE FOR DECIPHERING A FILE REQUIRES THE ENTRY OF THE FILE NAME AND KEY, IN THE SAME MANNER AS THE CIPHERING OPERATION. P - ENTER THIS COMMAND TO PURGE A FILE. THE PROGRAM FIRST ERASES THE DATA FROM THE FILE, AND THEN PURGES THE FILE IN THE USUAL MANNER. THE PROGRAM REQUESTS A CONFIRMATION BEFORE ERASING AND PURGING THE FILE. WHEN THE PROGRAM ASKS THE QUESTION "OK?", THE USER SHOULD FIRST VERIFY THAT HE HAS INDICATED THE PROPER FILE TO BE PURGED AND SHOULD THEN TYPE "YES" (IN THAT ORDER). Q - ENTER THIS OPTION TO CAUSE THE PROGRAM TO QUIT EXECUTION. END COMMENT; FORMAT IDENT ("CYFER 03/30/77"); INTEGER INLU, & FIRST PARAMETER FROM RTE OUTLU, & SECOND PARAMETER FROM RTE COMMAND, IERR, J, K, L; INTEGER ARRAY BUF [1:100], ABUF [0:3], BBUF [0:3], DCB [0:143], KEY [0:15, 0:2], RECORD [0:127]; INTEGER ARRAY PC1 [0:63] _ & PERMUTED CHOICE 1 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4, 1, 1, 1, 1, 1, 1, 1, 1; INTEGER ARRAY PC2 [0:47] _ & PERMUTED CHOICE 2 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32; INTEGER ARRAY SHIFTLEFT [0:63] _ & SHIFT LEFT (CN,DN) 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, ׮ 50, 51, 52, 53, 54, 55, 56, 29, 1, 1, 1, 1, 1, 1, 1, 1; LABEL START, RUN, FILEEND, DONE; PROCEDURE BITX (A, B); INTEGER A, B; CODE; PROCEDURE EXEC (A, B, C, D); VALUE A, B, D; INTEGER A, B, C, D; CODE; PROCEDURE CLOSE (DCB); INTEGER DCB; CODE; INTEGER PROCEDURE OPEN (DCB, IERR, NAME, IOPTN, ISECU, ICR); VALUE IOPTN; INTEGER DCB, IERR, NAME, IOPTN, ISECU, ICR; CODE; INTEGER PROCEDURE READF (DCB, IERR, IBUF); INTEGER DCB, IERR, IBUF; CODE; INTEGER PROCEDURE WRITF (DCB, IERR, IBUF, ISIZE, IREC); VALUE ISIZE, IREC; INTEGER DCB, IERR, IBUF, ISIZE, IREC; CODE; INTEGER PROCEDURE PURGE (DCB, IERR, NAME, ISECU, ICR); INTEGER DCB, IERR, NAME, ISECU, ICR; CODE; INTEGER PROCEDURE NEXTN (DCB); INTEGER DCB; CODE; & & & INPUT AND PARSE FILE NAME & INTEGER PROCEDURE NAMIN (INLU, NAME1, NAME2, NAME3, ISEC, ICR); VALUE INLU; INTEGER INLU, NAME1, NAME2, NAME3, ISEC, ICR; BEGIN INTEGER PNTR, N, X, LAST; INTEGER ARRAY ITEM [1:3], ITEMPNTR [1:3]; & & RETURN FUNCTION VALUE AS: & 0 = FILE NAME OK & -1 = FILE NAME NG & INTEGER PROCEDURE NAMECHAR (N); VALUE N; INTEGER N; BEGIN NAMECHAR _ 0; FOR N_N TO N+1 DO NAMECHAR _ ROTATE (NAMECHAR) + (IF ITEMPNTR [1] + N + 1 >= ITEMPNTR [2] AND BUF [ITEMPNTR [2] -1] = ":" THEN " " ELSE BUF [ITEMPNTR [1] + N]); END; & & EVALUATE NUMERIC VALUE & INTEGER PROCEDURE NUMBER (N); VALUE N; INTEGER N; BEGIN INTEGER X; NUMBER _ 0; X _ IF BUF [ITEMPNTR [N]] = "-" THEN ITEMPNTR [N] + 1 ELSE ITEMPNTR [N]; WHILE BUF [X] # ":" AND BUF [X] # "B" AND X # LAST DO BEGIN NUMBER _ (12-2*ITEM[N]) * NUMBER + BUF [X] - "0"; X _ X + 1; END; IF BUF [ITEMPNTR [N]] = "-" THEN NUMBER _ -NUMBER;  END; & & TEST FOR DECIMAL NUMBER & BOOLEAN PROCEDURE DECIMALNUMBER; BEGIN INTEGER P, Q; P _ Q _ IF BUF [PNTR] = "-" THEN PNTR+1 ELSE PNTR; WHILE BUF [P] >= "0" AND BUF [P] <= "9" DO P _ P + 1; DECIMALNUMBER _ IF (BUF [P] = ":" OR P = LAST) AND P # Q THEN TRUE ELSE FALSE; END; & & TEST FOR OCTAL NUMBER & BOOLEAN PROCEDURE OCTALNUMBER; BEGIN INTEGER P, Q; P _ Q _ IF BUF [PNTR] = "-" THEN PNTR+1 ELSE PNTR; WHILE BUF [P] >= "0" AND BUF [P] <= "7" DO P _ P + 1; OCTALNUMBER _ IF BUF [P] = "B" AND (BUF [P + 1] = ":" OR P+1 = LAST) AND P # Q THEN TRUE ELSE FALSE; END; & & GET FILE NAME & READ (INLU, #(50R1), FOR N_2 TO 51 DO BUF [N]); LAST _ 52; WHILE BUF [LAST-1] = " " AND LAST > 2 DO LAST _ LAST - 1; PNTR _ 2; FOR N_1 TO 3 DO & PARSE 3 ITEMS IN FILE STRING BEGIN WHILE BUF [PNTR] = " " AND PNTR < LAST DO PNTR _ PNTR + 1; ITEM [N] _ & FOUR POSSIBLE VALUES IF BUF [PNTR] = ":" OR PNTR = LAST THEN 3 & NULL STRING ELSE IF OCTALNUMBER THEN 2 & OCTAL NUMBER ELSE IF DECIMALNUMBER THEN 1 & DECIMAL NUMBER ELSE 0; & STRING ITEMPNTR [N] _ PNTR; WHILE BUF [PNTR] # ":" AND PNTR # LAST DO PNTR _ PNTR + 1; & MOVE PNTR TO START OF NEXT ITEM IF BUF [PNTR] = ":" THEN PNTR _ PNTR + 1; END; IF ITEM[1] = 0 AND ITEM[3] # 0 AND BUF[LAST-1] # ":" THEN BEGIN & FORMAT IS NAME:SC:CART NAMIN _ 0; NAME1 _ NAMECHAR (0); NAME2 _ NAMECHAR (2); NAME3 _ NAMECHAR (4); ISEC _ IF ITEM [2] = 0 THEN ROTATE (BUF [ITEMPNTR [2]]) + (IF BUF [ITEMPNTR [2] + 1] = ":" THEN " " ELSE BUF [ITEMPNTR [2] + 1]) ELSE NUMBER (2); ICR _ NUMBER (3); END ELSE NAMIN _ -1; END; & & & RETURN THE VALUE 0 OR 1 REPRESENTING A SELECTED & BIT OF AN ARRAY. THE ARRAY HAS 16 BITS PER WORD. & INTEGER PROCEDURE BIT (ARAY, BITNO); VALUE BITNO; INTEGER BITNO; & STARTS AT 1 INTEGER ARRAY ARAY; BEGIN INTEGER X; BITNO _ BITNO - 1; X _ BITNO MOD 16; & GET THE BIT NUMBER IF X=0 THEN BIT _ IF ARAY [BITNO \ 16] THEN 1 ELSE 0 ELSE BIT _ ((ARAY [BITNO \ 16] AND @77777) \ (2 ^ (15 - X))) AND 1; END; & & & PERFORM A PERMUTATION & PROCEDURE PERMUTE (FROM, DEST, PATTERN, LASTWORD); VALUE LASTWORD; & HIGHEST SUBSCRIPT INTEGER LASTWORD; INTEGER ARRAY FROM, DEST, PATTERN; BEGIN INTEGER J, K, L; FOR J_0 TO LASTWORD DO BEGIN L _ 0; FOR K_0 TO 15 DO L _ L + L + BIT (FROM, PATTERN [J*16+K]); DEST [J] _ L; END; END; & & & FILE MANAGER ERROR & PROCEDURE FMGRERR; BEGIN WRITE (OUTLU, #("FILE MANAGER ERROR", I4), IERR); GO TO FILEEND; END; PROCEDURE RMPAR (BUF); INTEGER BUF; CODE; & & & & & & BEGIN EXECUTION & RMPAR (INLU); IF INLU#0 AND OUTLU=0 THEN OUTLU _ INLU; IF INLU = 0 THEN INLU _ 1; IF OUTLU = 0 THEN OUTLU _ 1; FOR J_0 TO 55 DO PC1[J]_65-PC1[J]; & ALLOWS TABLE PER SPEC START: WRITE (OUTLU,#("TYPE C TO CIPHER, D TO DECIPHER, ", "P TO PURGE, Q TO QUIT")); RUN: WRITE (OUTLU, #("CIPHER/DECIPHER/PURGE/QUIT: _")); READ (INLU, #(2R1), COMMAND, J); IF COMMAND = "Q" OR COMMAND = "/" AND J = "E" THEN GO TO DONE; IF COMMAND # "C" AND COMMAND # "D" AND COMMAND # "P" THEN GO TO START; WRITE (OUTLU, #("FILE: _")); WHILE NAMIN (INLU, ABUF[1], ABUF[2], ABUF[3], J, K) DO WRITE (OUTLU, #("ERROR, ENTER FILE: _")); IF OPEN ( DCB [0], & DISC CONTROL BLOCK IERR, & ERROR PARAMETER ABUF [1], & FILE NAME 4, & OPTION WORD J, & SECURITY CODE K) & CARTRIDGE NUMBER THEN FMGRERR; FOR J _ 0 TO 127 DO RECORD [J] _ 0; IF COMMAp[ND = "P" THEN BEGIN WRITE (OUTLU, #("OK? _")); READ (INLU, #(R1), J); IF J = "Y" THEN BEGIN DO DO WRITF ( DCB [0], & DISC CONTROL BLOCK IERR, & ERROR PARAMETER RECORD [0], & RECORD BUFFER 128, & RECORD SIZE 0) & RELATIVE RECORD NO UNTIL IERR = -12 UNTIL NEXTN (DCB [0]) = -5; IF CLOSE (DCB [0]) THEN FMGRERR; IF PURGE ( DCB [0], & DISC CONTROL BLOCK IERR, & ERROR PARAMETER ABUF [1], & FILE NAME J, & SECURITY CODE K) & CARTRIDGE NUMBER THEN FMGRERR; END ELSE WRITE (OUTLU, #("FILE NOT PURGED")); GO TO FILEEND; END; WRITE (OUTLU, #("ENTER KEY: _")); &&& ECHO IS SUPPRESSED FOR FOLLOWING INPUT REQUESTS EXEC (1, INLU, RECORD [0], 64); WRITE (OUTLU, #(/, "AGAIN: _")); EXEC (1, INLU, RECORD [64], 64); WRITE (OUTLU, #(/)); FOR J _ 0 TO 63 DO IF RECORD [J] # RECORD [J+64] THEN BEGIN WRITE (OUTLU, #("KEYS MISMATCH, RESTART")); GO TO FILEEND; END; FOR J _ 0 TO 3 DO BEGIN ABUF [J] _ 0; FOR K _ J STEP 4 UNTIL 63 DO FOR L _ K STEP 4 UNTIL 63 DO ABUF [J] _ ABUF [J] + RECORD [L]; END; & & PERFORM KEY SCHEDULE CALCULATION & PERMUTE (ABUF, BBUF, PC1, 3); FOR J _ 0 TO 15 DO BEGIN PERMUTE (BBUF, ABUF, SHIFTLEFT, 3); IF J>1 AND J#8 AND J#15 THEN BEGIN FOR K _ 0 TO 3 DO BBUF [K] _ ABUF [K]; PERMUTE (BBUF, ABUF, SHIFTLEFT, 3); END; PERMUTE (ABUF, BBUF, PC2, 2); FOR K _ 0 TO 2 DO KEY [J,K] _ BBUF [K]; FOR K _ 0 TO 3 DO BBUF [K] _ ABUF [K]; END; & & SET FOR ENCIPHER OR DECIPHER & IF COMMAND = "D" THEN FOR J _ 0 TO 7 DO FOR K _ 0 TO 2 DO BEGIN L _ KEY [J,K]; KEY [J,K] _ KEY [15-J,K]; KEY [15-J,K] _ L; END; & & GET NEXT RECORD & DO WHILE READF ( DCB [0], & DISC CONTROL BLOCK IERR, -640 & ERROR PARAMETER RECORD [0]) & RECORD BUFFER #-12 DO BEGIN IF IERR THEN FMGRERR; FOR J_0 STEP 4 UNTIL 127 DO BITX (RECORD [J], KEY [0,0]); IF WRITF ( DCB [0], & DISC CONTROL BLOCK IERR, & ERROR PARAMETER RECORD [0], & RECORD BUFFER 128, & RECORD SIZE -1) & RELATIVE RECORD NO THEN FMGRERR; END UNTIL NEXTN (DCB [0]) = -5; & & & FILEEND: FOR J _ 0 TO 3 DO ABUF [J] _ BBUF [J] _ 0; FOR J _ 0 TO 127 DO RECORD [J] _ 0; FOR J _ 0 TO 15 DO FOR K _ 0 TO 2 DO KEY [J,K] _ 0; CLOSE (DCB [0]); FOR L _ 0 TO 143 DO DCB [L] _ 0; GO TO RUN; & & & DONE: WRITE (OUTLU, #("END")); END$ k6ASMB,R,L,C NAM BITX,7 ENT BITX EXT .ENTR * * * PERFORMS BIT SCRAMBLING ACTION FOR ENCIPHERMENT * AND DECIPHERMENT. (BENNETT MEYER) * * REV ASC 11,BITX 08/10/76 *MEYER* WORD NOP 4 WORD BUFFER KEY NOP 48 WORD BUFFER BITX NOP JSB .ENTR DEF WORD LDA WORD LDB 0,I STB BUF2 INA LDB 0,I STB BUF2+1 INA LDB 0,I STB BUF2+2 INA LDB 0,I STB BUF2+3 * * PERFORM INITIAL PERMUTATION * JSB PERMU FROM BUF2 TO BUF1 DEF IP.1 STB BUF1 JSB PERMU DEF IP.2 STB BUF1+1 JSB PERMU DEF IP.3 STB BUF1+2 JSB PERMU DEF IP.4 STB BUF1+3 * * PERFORM CIPHER FUNCTION * LDA =D-16 STA COUNT SET RECURSION COUNT * * PERFORM EXPANSION * LDA BUF1+3 FROM BUF1 TO BUF3 EXPAN LDB BUF1+2 RRR 2 XOR BUF1+3 AND =B177007 INSERT BITS 24-29 XOR BUF1+3 RRR 2 XOR BUF1+3 AND =B160177 INSERT BITS 20-25 XOR BUF1+3 RRR 11 STB BUF3+2 SAVE WORD 3 ALF,ALF RAL XOR BUF1+3 AND =B3777 INSERT BITS 17-21 XOR BUF1+3 LDB BUF1+2 INSERT BIT 16 RRR 2 XOR BUF1+3 ELA,CLE,ERA INSERT BIT 17 XOR BUF1+3 LDB BUF1+2 INSERT BITS 12-16 RRR 2 XOR BUF1+2 AND =B177747 INSERT BITS 12-13 XOR BUF1+2 RRR 3 RAR,RAR STA BUF3+1 SAVE WORD 2 LDA BUF1+3 ERA GET BIT 32 LDA BUF1+2 ERA INSERT BIT 32 RRL 3 XOR BUF1+2 AND =B160177 INSERT BITS 4-9 XOR BUF1+2 RRR 7 ALF COMPLETE WORD 1 * * PERMUTE AGAINST KEY * XOR KEY,I STA BUF3 ISZ KEY LDA KEY,I XOR BUF3+1 STA BUF3+1 ISZ KEY LDA KE(Y,I XOR BUF3+2 STA BUF3+2 ISZ KEY * * PERFORM BIT SELECTION FUNCTIONS * CLA LDB BUF3 RRL 6 ADA SEL1 STA BUF2 CLA RRL 6 ADA SEL2 STA BUF2+1 CLA RRL 4 LDB BUF3+1 RRL 2 ADA SEL3 STA BUF2+2 CLA RRL 6 ADA SEL4 STA BUF2+3 CLA RRL 6 ADA SEL5 STA BUF2+4 =BUF3 CLA RRL 2 LDB BUF3+2 RRL 4 ADA SEL6 STA BUF2+5 =BUF3+1 CLA RRL 6 ADA SEL7 STA BUF2+6 =BUF3+2 CLA RRL 6 ADA SEL8 STA BUF2+7 =BUF3+3 LDA BUF2,I ALF IOR BUF2+1,I ALF IOR BUF2+2,I ALF IOR BUF2+3,I STA BUF2 LDA BUF2+4,I ALF IOR BUF2+5,I ALF IOR BUF2+6,I ALF IOR BUF2+7,I STA BUF2+1 * * PERFORM PRIMITIVE FUNCTION P AND SCRAMBLE * JSB PERMU DEF PP.1 LDA 1 XOR BUF1 LDB BUF1+2 STB BUF1 STA BUF1+2 JSB PERMU DEF PP.2 LDA 1 XOR BUF1+1 LDB BUF1+3 STB BUF1+1 STA BUF1+3 * * REPEAT IF NOT FINISHED * ISZ COUNT JMP EXPAN * * PERFORM INVERSE OF INITIAL PERMUTATION * LDA BUF1 STA BUF1+4 STB BUF1+5 JSB PERMU DEF IPI.1 STB WORD,I ISZ WORD JSB PERMU DEF IPI.2 STB WORD,I ISZ WORD JSB PERMU DEF IPI.3 STB WORD,I ISZ WORD JSB PERMU DEF IPI.4 STB WORD,I JMP BITX,I * * * PERFORM PERMUTATION * PERMU NOP LDA PERMU,I STA PERM1 ADA =B100020 STA PERM2 LDA =D-16 STA PERM3 PERMA LDA PERM1,I GET BIT MASK AND PERM2,I GET THE BIT CLE,SZA CCE ELB ISZ PERM1 ISZ PERM2 [ ISZ PERM3 JMP PERMA ISZ PERMU JMP PERMU,I PERM1 NOP PERM2 NOP PERM3 NOP * * * ARRAY IP * IP.1 OCT 000100 58 OCT 040000 50 OCT 000100 42 OCT 040000 34 OCT 000100 26 OCT 040000 18 OCT 000100 10 OCT 040000 2 OCT 000020 60 OCT 010000 52 OCT 000020 44 OCT 010000 36 OCT 000020 28 OCT 010000 20 OCT 000020 12 OCT 010000 4 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 IP.2 OCT 000004 62 OCT 002000 54 OCT 000004 46 OCT 002000 38 OCT 000004 30 OCT 002000 22 OCT 000004 14 OCT 002000 6 OCT 000001 64 OCT 000400 56 OCT 000001 48 OCT 000400 40 OCT 000001 32 OCT 000400 24 OCT 000001 16 OCT 000400 8 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 IP.3 OCT 000200 57 OCT 100000 49 OCT 000200 41 OCT 100000 33 OCT 000200 25 OCT 100000 17 OCT 000200 9 OCT 100000 1 OCT 000040 59 OCT 020000 51 OCT 000040 43 OCT 020000 35 OCT 000040 27 OCT 020000 19 OCT 000040 11 OCT 020000 3 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 4 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 IP.4 OCT 000010 61 OCT 004000 53 OCT 000010 45 OCT 004000 37 OCT 000010 29 OCT 004000 21 OCT 000010 13 OCT 004000 5 OCT 000002 63 OCT 001000 55 OCT 000002 47 OCT 001000 39 OCT 000002 31 OCT 001000 23 OCT 000002 15 OCT 001000 7 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+3 DEF BUF2+3 DEF BUF2+2 DEF BUF2+2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 * * ARRAY IP-INVERSE * IPI.1 OCT 000400 40 OCT 000400 8 OCT 000001 48 OCT 000001 16 OCT 000400 56 OCT 000400 24 OCT 000001 64 OCT 000001 32 OCT 001000 39 OCT 001000 7 OCT 000002 47 OCT 000002 15 OCT 001000 55 OCT 001000 23 OCT 000002 63 OCT 000002 31 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 IPI.2 OCT 002000 38 OCT 002000 6 OCT 000004 46 OCT 000004 14 OCT 002000 54 OCT 002000 22 OCT 000004 62 OCT 000004 30 OCT 004000 37 OCT 004000 5 OCT 000010 45 OCT 000010 13 OCT 004000 53 OCT 004000 21 OCT 000010 61 OCT 000010 29 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 IPI.3 OCT 010000 36 OCT 010000 4 OCT 000020 44 OCT 000020 12 OCT 010000 52 OCT 010000 20 OCT 000020 60 OCT 000020 28 OCT 020000 35 OCT 020000 3 OCT 000040 43 OCT 000040 11 OCT 020000 51 OCT 020000 19 OCT 000040 59 OCT 000040 27 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 IPI.4 OCT 040000 34 OCT 040000 2 OCT 000100 42 OCT 000100 10 OCT 040000 50 OCT 040000 18 OCT 000100 58 OCT 000100 26 OCT 100000 33 OCT 100000 1 OCT 000200 41 OCT 000200 9 OCT 100000 49 OCT 100000 17 OCT 000200 57 OCT 000200 25 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 DEF BUF1+4 DEF BUF1+2 DEF BUF1+4 DEF BUF1+2 DEF BUF1+5 DEF BUF1+3 DEF BUF1+5 DEF BUF1+3 * * PRIMITIVE FUNCTION P * PP.1 OCT 000001 16 OCT 001000 7 OCT 010000 20 OCT 004000 21 OCT 000010 29 OCT 000020 12 OCT 000020 28 OCT 100000 17 OCT 100000 1 OCT 000002 15 OCT 001000 23 OCT 000100 26 OCT 004000 5 OCT 040000 18 OCT 000002 31 OCT 000100 10 DEF BUF2 DEF BUF2 DEF BUF2+1 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+1 DEaF BUF2+1 DEF BUF2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 PP.2 OCT 040000 2 OCT 000400 8 OCT 000400 24 OCT 000004 14 OCT 000001 32 OCT 000040 27 OCT 020000 3 OCT 000200 9 OCT 020000 19 OCT 000010 13 OCT 000004 30 OCT 002000 6 OCT 002000 22 OCT 000040 11 OCT 010000 4 OCT 000200 25 DEF BUF2 DEF BUF2 DEF BUF2+1 DEF BUF2 DEF BUF2+1 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+1 DEF BUF2 DEF BUF2+1 DEF BUF2 DEF BUF2+1 DEF BUF2 DEF BUF2 DEF BUF2+1 * * * * BIT ARRANGEMENT TABLE * * 0 1 2 3 PATTERN * == == == == ======= * 1 17 33 49 100000B * 2 18 34 50 40000B * 3 19 35 51 20000B * 4 20 36 52 10000B * 5 21 37 53 4000B * 6 22 38 54 2000B * 7 23 39 55 1000B * 8 24 40 56 400B * 9 25 41 57 200B * 10 26 42 58 100B * 11 27 43 59 40B * 12 28 44 60 20B * 13 29 45 61 10B * 14 30 46 62 4B * 15 31 47 63 2B * 16 32 48 64 1B * * * * SELECTION FUNCTIONS * SUP SEL1 DEF *+1 DEC 14,00,04,15,13,07,01,04 DEC 02,14,15,02,11,13,08,01 DEC 03,10,10,06,06,12,12,11 DEC 05,09,09,05,00,03,07,08 DEC 04,15,01,12,14,08,08,02 DEC 13,04,06,09,02,01,11,07 DEC 15,05,12,11,09,03,07,14 DEC 03,10,10,00,05,06,00,13 SEL2 DEF *+1 DEC 15,03,01,13,08,04,14,07 DEC 06,15,11,02,03,08,04,14 DEC 09,12,07,00,02,01,13,10 DEC 12,06,00,09,05,11,10,05 DEC 00,13,14,08,07,10,11,01 DEC 10,03,04,15,13,04,01,02 DEC 05,11,08,06,12,07,06,12 DEC 09,00,03,05,02,14,15,09 SEL3 DEF *+1 DEC 10,13,00,07,09,00,14,09 DEC 06,03,03,04,15,06,05,10 DEC 01,02,13,08,12,05,07,14 DEC 11,12,04,11,02,15,08,01 DEC 13,01,06,10,04,13,09,00 DEC 08,06,15,09,03,08,00,07 DEC 11,04,01,15,02,14,12,03 DEC 05,11,10,05,14,02,07,12 SEL4 DEF *+1 DEC 07,13,13,08,14,11,03,05 DEC 00,06,06,15,09,00,10,03 DEC 01,04,02,07,08,02,05,12 DEC 11,01,12,10,04,14,15,09 DEC 10,03,06,15,09,00,00,06 DEC 12,10,11,01,14,13,13,08 DEC 15,09,01,04,03,05,14,11 DEC 05,12,02,07,08,02,04,14 SEL5 DEF *+1 DEC 02,14,12,11,04,02,01,12 DEC 07,04,10,07,11,13,06,01 DEC 08,05,05,00,03,15,15,10 DEC 13,03,00,09,14,08,09,06 DEC 04,11,02,08,01,12,11,07 DEC 10,01,13,14,07,02,08,13 DEC 15,06,09,15,12,00,05,09 DEC 06,10,03,04,00,05,14,03 SEL6 DEF *+1 DEC 12,10,01,15,10,04,15,02 DEC 09,07,02,12,06,09,08,05 DEC 00,06,13,01,03,13,04,14 DEC 14,00,07,11,05,03,11,08 DEC 09,04,14,03,15,02,05,12 DEC 02,09,08,05,12,15,03,10 DEC 07,11,00,14,04,01,10,07 DEC 01,06,13,00,11,08,06,13 SEL7 DEF *+1 DEC 04,13,11,00,02,11,14,07 DEC 15,04,00,09,08,01,13,10 DEC 03,14,12,03,09,05,07,12 DEC 05,02,10,15,06,08,01,06 DEC 01,06,04,11,11,13,13,08 DEC 12,01,03,04,07,10,14,07 DEC 10,09,15,05,06,00,08,15 DEC 00,14,05,02,09,03,02,12 SEL8 DEF *+1 DEC 13,01,02,15,08,13,04,08 DEC 06,10,15,03,11,07,01,04 DEC 10,12,09,05,03,06,14,11 DEC 05,00,00,14,12,09,07,02 DEC 07,02,11,01,04,14,01,07 DEC 09,04,12,10,14,08,02,13 DEC 00,15,06,12,10,09,13,00 DEC 15,03,03,05,05,06,08,11 * * * * COUNT NOP BUF1 BSS 4 BUF2 BSS 4 BUF3 BSS 4 END 2%0.**0ASMB,R,L,C NAM NEXTN,7 ENT NEXTN EXT RFLG$,RWND$,.ENTR * * * MOVES FILE POINTERS TO NEXT EXTENT OF FMGR FILE. * THIS FUNCTION IS USEFUL IN ACCESSING A FILE * HAVING EXTENTS, WHEN OPENED AS A TYPE 1 FILE. * (BENNETT MEYER) * * FORTRAN FUNCTION REFERENCE: * NEXTN (IDCB) * * ALGOL FUNCTION REFERENCE: * NEXTN (IDCB[0]) * THE CODE PROCEDURE MUST BE DEFINED AS FOLLOWS: * INTEGER IDCB[0:143]; * INTEGER PROCEDURE NEXTN (IDCB); INTEGER IDCB; CODE; * * ASSEMBLER FUNCTION REFERENCE: * JSB NEXTN * DEF *+2 * DEF IDCB * * WHERE IDCB = DISC CONTROL BLOCK FOR FMGR CALLS * * THE FILE MUST BE OPEN AT THE TIME THE FUNCTION * IS CALLED. THE FUNCTION WILL ADVANCE THE DCB * FILE POINTERS TO THE BEGINNING OF THE NEXT EXTENT. * ANY SUBSEQUENT FILE ACCESSES WILL ADDRESS THAT POINT. * THE FILE MAY BE ANY FILE TYPE, AND MAY HAVE BEEN * FORCED TO TYPE 1 WHEN IT WAS OPENED. * THE FUNCTION WILL RETURN AN INTEGER * VALUE IN THE A-REGISTER, GIVING THE FILE MANAGER * ERROR CONDITION ENCOUNTERED, IF ANY. POSSIBLE * ERRORS ARE AS FOLLOWS: * 0 = NO ERRORS * -1 = DISC DOWN * -5 = NO MORE EXTENTS IN FILE * -11 = DCB NOT OPEN * * * REV ASC 11,NEXTN 08/10/76 *MEYER* DCB NOP NEXTN NOP JSB .ENTR DEF DCB CCA STA RFLG$ LDA DCB LDB DCB ADA =D14 STA DCB INA LDA 0,I INA JSB RWND$ RSS CLA CLB,INB STB DCB,I JMP NEXTN,I END %  22682-18064 1714 SC 0122 RTE SYSTEM DATE & TIME AUTO SCHEDULE             H0101 ~HPAL,L,B,"TIME",0,3,9 BEGIN COMMENT TIME REQUESTS THAT THE TIME OF DAY BE UPDATED. PROGRAM TIME THEN PROCEEDS TO SCHEDULE ANY PROGRAMS LISTED IN FMP FILE PSHED. & THE FMP FILE PSHED IS TYPE 4 WITH THE FOLLOWING FORMAT: 1. RECORD LENGTH - 5 TO 11 WORDS 2. WORD CONTENT - ASCII - NAME,RESOLUTION CODE,EXECUTION MULTIPLE,STARTING HOUR,MINUTE,SECOND,TENS OF MILLISECOND FOR EXAMPLE JAMES,4,24,8,10,0,0 & NOTE: IF THE ABSOLUTE STARTING TIME IS NOT SUPPLIED THEN THE PROGRAM WILL BE SCHEDULED AT THE START OF THE NEXT RESOLUTION CODE MULTIPLE. & J.D. REED NEELY PHOENIX FEB 21, 1977 & PROGRAM DECLARATIONS; & INTEGER CHARS,ERROR,I,INDEX,LEN,M,YEAR,ZERO := 0,PAGE:=@15414, LU; INTEGER B1,B2,B3,B4,B5,B6,B7,B8,B9; & DO NOT CHANGE THIS INTEGER LIST INTEGER MO,DAY,YR; & INTEGER ARRAY DCB[1:144],P[1:6],TIME[1:5], PARAMETER[1:2] := " "," "; INTEGER ARRAY ITIME[1:10]; INTEGER ARRAY IBUF[1:12],BIN[1:33]; INTEGER ARRAY PGMLOG[1:3] := "PG","ML","OG"; INTEGER ARRAY PSHED[1:3] := "PS","HE","D "; INTEGER ARRAY TOD[1:3] := "TI","ME"," "; INTEGER ARRAY LDPLG[1:3] := "LD","PL","G "; INTEGER ARRAY JOB[1:3] := "JO","B "," "; INTEGER ARRAY MONTHS[1:12] := 31,28,31,30,31,30,31,31,30,31,30; INTEGER ARRAY MON[1:12] := "AN","EB","AR","PR","AY","UN","UL","UG", "EP","CT","OV","EC"; INTEGER ARRAY IB[0:9] := "TM"; & FORMAT F0("PROGRAM TIME"2), F1(2/"CURRENT DATE: "2A2,I3","I5,5X"CURRENT TIME " I2":"I2":"I2,2/ "TO SET THE DATE AND TIME ENTER MONTH DAY,YEAR HR:MIN:SEC" 2/"DATE AND TIME IS? _"), F2(4X,2/"SYSTEM CLOCK - DATE: "2A2,I3","I5" TIME "I2":"I2":"I2), F3(3A2" IS AN INVALID PROGRAM NAME!"), F4(/"END$ TIME"/), F5(A2), F6(12A2), F7("MISSPELLED MONTH!"/), F8(","I4","I3","I2","I2","I2), F9(/"IS THE DATE AND TIME CORRECT? _"), F10(A2); & LABEL C1,E1,S0,S1,S2,T1,T2; & )0 OUTPUT OT1(FOR M := 1 TO 7 DO [ITIME[M]]), OT2(FOR M := 2 TO 4 DO [BIN[M]]); & EXTERNAL PROCEDURES & PROCEDURE ACODE; CODE; & PROCEDURE DATE (P1); INTEGER P1; CODE; & PROCEDURE EXEC (ICODE,PROG,RES,MTPLE,HRS,MINS,SECS,MSEC); VALUE ICODE,RES,MTPLE,HRS,MINS,SECS,MSEC; INTEGER ICODE,PROG,RES,MTPLE,HRS,MINS,SECS,MSEC; CODE; & PROCEDURE EXEC2 (ICODE,BUFR); VALUE ICODE; INTEGER ICODE,BUFR; CODE; & PROCEDURE EXEC3 (ICODE,BUFR,YEAR); VALUE ICODE; INTEGER ICODE,BUFR,YEAR; CODE; & PROCEDURE EXEC5 (P1,P2,P3,P4,P5); VALUE P1,P3,P4,P5; INTEGER P1,P2,P3,P4,P5; CODE; & PROCEDURE CLOSE (DCB,ERROR); INTEGER DCB,ERROR; CODE; & PROCEDURE FETCH (A); INTEGER A; CODE; & INTEGER PROCEDURE MESSS (P1,V1); VALUE V1; INTEGER P1,V1; CODE; & PROCEDURE OPEN (DCB,ERROR,FILE,OPT); VALUE OPT; INTEGER DCB,ERROR,FILE,OPT; CODE; & PROCEDURE PARSE (P1,V1,P2); VALUE V1; INTEGER P1,V1,P2; CODE; & PROCEDURE READF (DCB,ERROR,BUFR,NWDS,LEN); VALUE NWDS; INTEGER DCB,ERROR,BUFR,NWDS,LEN; CODE; & PROCEDURE WRITF (DCB,ERR,BUFR,WDS,RECORD); VALUE WDS,RECORD; INTEGER DCB,ERR,BUFR,WDS,RECORD; CODE; & & INTERNAL PROCEDURE & PROCEDURE TIMEOFDAY; & PROCEDURE TO FETCH THE TIME OF DAY. BEGIN EXEC3 (11,TIME[1],YEAR) END OF TIME OF DAY PROCEDURE; & COMMENT PROGRAM EXECUTION BEGINS HERE. ; FETCH (LU); IF LU = "WE" OR LU = 0 THEN LU := 1; COMMENT & IDENTIFY THE PROGRAM, REQUEST THE DATE AND TIME OF DAY AND THEN UPDATE THE RTE CLOCK.; & WRITE(LU,F0); T1: DATE(ITIME[1]); DAY := 0; WRITE(LU,F1,OT1); READ(LU,F6,FOR I := 1 TO 12 DO IBUF[I]); IF IBUF[1] = " " OR IBUF[1] = 0 THEN GO TO S0; FOR I := 1 TO 12 DO BEGIN B1 := IBUF[I] AND @177400; B2 := IBUF[I] AND @377; IF B1 = @20000 OR B1 = @27400 OR B1 = @35000 THEN B1 := @26000; IF B2 = " " OR B2 = ":" OR B2 = "/" THEN B2 := ","; IBUF[I] := B1 + B2; END; PARSE (IBUF[1],24,BIN[1]); YR := BIN[10]; IF YR MOD 4 = 0 THEN MONTHS[2] := 29 ELSE MONTHS[2] := 28; IF BIN[1] = 1 THEN FOR I := 1 TO 12 DO IF BIN[2] = I THEN GO TO T2 ELSE DAY := DAY + MONTHS[I] ELSE BEGIN MO := (ROTATE(BIN[2]) AND @177400) + (ROTATE(BIN[3]) AND @377); FOR I := 1 TO 12 DO IF MO # MON[I] THEN DAY := DAY + MONTHS[I] ELSE GO TO T2 END; T2: DAY := DAY + BIN[6]; IF I = 13 THEN BEGIN WRITE(LU,F7); DAY := 0; GO TO T1 END; IF YR < 1900 THEN YR := YR + 1900; IF BIN[6] < 1 OR BIN[6] > MONTHS[I] THEN BEGIN WRITE(LU,#("INVALID DAY VALUE")); GO TO T1 END ELSE IF YR < 1977 THEN BEGIN WRITE(LU,#("INVALID YEAR VALUE")); GO TO T1 END ELSE IF BIN[14] < 0 OR BIN[14] > 23 THEN BEGIN WRITE(LU,#("INVALID HOUR VALUE")); GO TO T1 END ELSE IF BIN[18] < 0 OR BIN[18] > 59 THEN BEGIN WRITE(LU,#("INVALID MINUTE VALUE")); GO TO T1 END ELSE IF BIN[22] < 0 OR BIN[22] > 59 THEN BEGIN WRITE(LU,#("INVALID SECOND VALUE")); GO TO T1 END; ACODE; WRITE(B1,F8,YR,DAY,BIN[14],BIN[18],BIN[22]); IB[0] := "TM"; IB[1] := B1; IB[2] := B2; IB[3] := B3; IB[4] := B4; IB[5] := B5; IB[6] := B6; IB[7] := B7; IB[8] := B8; IB[9] := B9; I := MESSS(IB[0],20); & & OUTPUT THE TIME OF DAY TO THE USER. & DATE (ITIME[1]); WRITE(LU,F2,OT1); WRITE(LU,F9); READ(LU,F10,I); DAY := 0; IF I # "YE" THEN GO TO T1; & & OPEN PSHED FMP FILE - TERMINATE IF FILE NOT FOUND. & S0: OPEN (DCB[1],ERROR,PSHED[1],1); IF ERROR < 0 THEN GO TO E1; & & SCHEDULE PROGRAMS LISTED IN PSHED FILE. & S1: READF (DCB[1],ERROR,IBUF[1],12,LEN); IF ERROR < 0 OR LEN = -1 THEN GO TO C1; LEN := LEN * 2;  FOR I := 1 TO 33 DO BIN[1] := 0; PARSE (IBUF[1],LEN,BIN[1]); IF BIN[1] # 2 THEN BEGIN WRITE(LU,F3,OT2); GO TO S1 END; & & CHECK FOR ABSOLUTE TIME - IF NOT SUPPLIED THEN CALCULATE A & START TIME. & INDEX := 6; FOR I := 1 TO 6 DO BEGIN P[I] := BIN[INDEX]; INDEX := INDEX + 4 END; IF P[3] + P[4] + P[5] + P[6] = 0 THEN BEGIN TIMEOFDAY; FOR I := 1 TO 4 DO IF I = P[1] THEN BEGIN P[7-I] := TIME[I] + 1; WHILE I < 4 DO BEGIN I := I + 1; P[7-I] := TIME[I] END; GO TO S2 END END OF ABSOLUTE START TIME CALCULATION; & SCHEDULE PROGRAM S2: EXEC (12,BIN[2],P[1],P[2],P[3],P[4],P[5],P[6]); GO TO S1; & & CLOSE FMP FILE PSHED. & C1: CLOSE (DCB[1],ERROR); & & TERMINATE PROGRAM & E1: WRITE(LU,F4) & END$ ASMB,R,L,B HED ** DATE - MONTH,DAY,YEAR AND TIME SUBROUTINE ** JDR NAM DATE,7 MAR. 10, 1977 ENT DATE EXT .ENTR,EXEC,MOD SUP SPC 1 * DATE RETURNS THE MONTH, DAY, YEAR, HOUR, MINUTE AND SECOND TO THE * USER. SPC 1 * CALL SEQUENCE * CALL DATE (ITIME) * WHERE ITIME IS A 7 WORD INTEGER BUFFER WHOSE RETURN FORMAT IS: * ITIME(1&2) 4 ASCII CHARACTERS CONTAINING MONTH * ITIME(3) INTEGER DAY OF MONTH * ITIME(4) INTEGER YEAR * ITIME(5) INTEGER HOUR * ITIME(6) INTEGER MINUTE * ITIME(7) INTEGER SECOND SPC 1 * J.D. REED - NEELY PHOENIX - MARCH 10 1977 SPC 1 TIME NOP USER BUFFER'S ADDRESS SPC 1 DATE NOP JSB .ENTR FETCH THE DEF TIME BUFFER ADDRESS. JSB EXEC FETCH DEF *+4 THE DEF D11 TIME DEF TBUFR DAY & DEF YEAR YEAR. SPC 1 * ADJUST FEB FOR LEAP YEAR. SPC 1 JSB MOD LEAP DEF *+3 YEAR DEF YEAR EQUALS  DEF D4 0MOD YR/4. LDB M30 FETCH LEAP YEAR VALUE. SZA LEAP YEAR? LDB M29 NO, FETCH NON-LEAP YEAR VALUE. LDA MDAY PUT CORRECT INA VALUE FOR FEB STB A,I IN TABLE. SPC 1 * FIND THE MONTH SPC 1 LDA MDAY INITIALIZE DAYS STA PNTR IN MONTH POINTER CLB B REG = MONTH BUFFER OFFSET LDA TBUFR+4 FETCH DAY OF YEAR D.1 ADA PNTR,I ARE WE SSA IN THIS MONTH? JMP D.2 YES - WE FOUND IT. INA NO - SAVE THE NEW DAY STA TBUFR+4 MINUS THE DAYS IN THE MONTH. ADB D2 INDEX THE MONTH BUFFER OFFSET ISZ PNTR AND DAYS IN MONTH POINTER. JMP D.1 TRY FOR THE NEXT MONTH. SPC 1 * RETURN THE MONTH IN ASCII TO THE USER SPC 1 D.2 ADB MONTH ADD BUFFER OFFSET TO B - REG. LDA B,I FETCH THE STA TIME,I MONTH IN INB ASCII AND ISZ TIME TRANSFER LDA B,I IT TO STA TIME,I USER. SPC 1 * TRANSFER DAY, YEAR AND TIME IN BINARY TO USER SPC 1 ISZ TIME TRANSFER LDA TBUFR+4 THE STA TIME,I DAY ISZ TIME AND LDA YEAR THE STA TIME,I YEAR. ISZ TIME NOW DLD TBUFR+2 TRANSFER STB TIME,I THE ISZ TIME HOUR, STA TIME,I MINUTES ISZ TIME AND LDA TBUFR+1 SECONDS STA TIME,I TO HIM. JMP DATE,I RETURN SPC 1 * CONSTANTS AND CORE ALLOCATION SPC 1 A EQU 0 B EQU 1 SPC 1 D2 DEC 2 D4 DEC 4 D11 DEC 11 SPC 1 M29 DEC -29 M30 DEC -30 MDAY DEF *+1 DEC -32,-29,-32,-31,-32,-31,-32,-32,-31,-32,-31,-32 MONTH DEF *+1 ASC 18,JAN FEB MAR APR MAY JUNEJULYAUG SEPT ASC 6,OCT NOV DEC SPC 1 PNTR NOP SPC 1 TBUFR BSS 5 SPC 1 YEAR NOP SPC 1 v END ASMB,R,L,B HED ** ALGOL EXEC CALL INTERFACE ** JDR NAM ALEXI,7 REVISED 8 25 76 ENT EXEC2,EXEC3,EXEC4,EXEC5,EXEC6,EXEC7,EXEC8 ENT ESTAT EXT EXEC,.ENTR SPC 1 * THE END STATEMENT IN AN ALGOL MAIN PROCEDURE AUTOMATICLLY * DECLARES THE EXEC AS AN EXTERNAL WITH A SINGLE INTEGER PARAMETER * CALLING SEQUENCE. THEREFORE, WITHOUT ANY FURTHER DECLARATION OF * TYPES OF EXEC REFERENCES THROUGH CODE PROCEDURES, ANY ATTEMPT TO * DECLARE THE EXEC WITH OTHER THAN ONE INTEGER PARAMETER RESULTS IN * AN ERROR. * ALEXI CIRCUMVENTS THIS PROBLEM BY PROVIDING MULTIPLE CODE-PRO- * CEDURES FOR EXEC CALLS HAVING 2 THRU 8 PARAMETERS. * IN ADDITION THE A-B REGISTER STATUS MAY BE OBTAINED BY FOLLOW- * ING THE EXECX PROCEDURE CALL WITH A CALL TO ESTAT (A,B) BEFORE * THE NEXT EXECX CALL. NOTE: B REGISTER RETURN OPTIONAL. SPC 1 * UPON RETURN FROM EXECX, THE B REGISTER FROM THE EXEC CALL * IS LEFT IN THE "A" REGISTER. THUS IF THE EXEC CALL IS AN * I/O CALL AND THE CALL IS USED AS AN INTEGER FUNCTION, THEN * THE VALUE OF THE FUNCTION IS THE TRANSMISSION LOG. * I.E. LEN := EXEC4 (1,LU,BUFR,40) UPON RETURN LEN = ACTUAL * WORD COUNT RECEIVED. SPC 1 * J.D. REED HAC-TUC 6/11/75 SPC 1 P1 NOP PARAMETER P2 NOP P3 NOP P4 NOP ADDRESS P5 NOP P6 NOP P7 NOP P8 NOP LIST. SPC 1 EXEC0 NOP ENTRY/EXIT POINT FOR ALL. JSB .ENTR FETCH THE PARMS DEF P1 PARAMETER ADDRESSES. CLA INITIALIZE THE PARAMETER. STA CNTR COUNTER AND A LDA EPARM POINTER TO THE EXEC STA PNTR PARAMETER LIST. LDA PARMS FETCH THE PARAMETER LIST. LOOP1 LDB A,I TRANSFER A PARAMETER ADDRESS STB PNTR,I OR A NOP. INA INDEX PARAMETER ISZ PNTR POINTERS. SZB IF A PARAMETER ADDRESS THEN ISZ CNTR BUMP COUNTER. ' CPA DONE ALL PARAMETERS TRANSFERRED? RSS YES - SET UP RETURN ADDRESS. JMP LOOP1 NO - LOOP. LDA EPARM CALCULATE RETURN ADA CNTR ADDRESS FROM EXEC AND STA RTURN STORE IN EXEC CALL. JSB EXEC DO RTURN NOP E1 NOP E2 NOP E3 NOP E4 NOP EXEC E5 NOP E6 NOP E7 NOP E8 NOP CALL STA REGS SAVE A-B STB REGS+1 REGISTER STATUS. LDA PARMS ZERO CLB LOOP2 STB A,I THE INA CPA DONE PARAMETER JMP EXIT JMP LOOP2 LIST. EXIT LDA REGS+1 PUT TRANSMISSION LOG IN "A" JMP EXEC0,I AND RETURN TO CALLER. SPC 1 * EXEC CALL A-B REGISTER STATUS RETURN ROUTINE SPC 1 AREG NOP A REGISTER STATUS RETURN ADDRESS BREG NOP B REGISTER STATUS RETURN ADDRESS SPC 1 ESTAT NOP JSB .ENTR FETCH PARAMETER DEF AREG ADDRESSES. LDA REGS FETCH A-B LDB REGS+1 REGISTER STATUS. STA AREG,I RETURN A REG. STATUS. LDA BREG DOES HE WANT SZA B REG. STATUS? STB BREG,I YES - GIVE IT TO HIM. CLB CLEAR B REG PARAMETER STB BREG ADDRESS FOR NEXT TIME. JMP ESTAT,I RETURN. SPC 1 * CONSTANTS & STORAGE ALLOCATIONS SPC 1 A EQU 0 SPC 1 EXEC2 EQU EXEC0 EXEC3 EQU EXEC0 EXEC4 EQU EXEC0 EXEC5 EQU EXEC0 EXEC6 EQU EXEC0 EXEC7 EQU EXEC0 EXEC8 EQU EXEC0 SPC 1 CNTR NOP SPC 1 DONE DEF EXEC0 SPC 1 EPARM DEF E1 SPC 1 PNTR NOP SPC 1 REGS BSS 2 SPC 1 END ASMB,R,L HED ** FETCH - ALGOL'S RMPAR ** JDR NAM FETCH,7 ENT FETCH SPC 2 * FETCH IS AN ALGOL PROCEDURE TO TRANSFER THE PARAMETERS PASSED * WHEN A PROGRAM IS SCHEDULED BY RTE. * * CALLING PROCEDURE - * PROCEDURE FETCH (A,B,C,D,E); * .0.* INTEGER A,B,C,D,E; * CODE; * * WHERE A THRU E ARE THE FIVE PARAMETERS PASSED BY RTE. * NOTE: IF LESS THAN 5 PARAMETERS ARE REQUIRED, ONLY THE ACTUAL * PARAMETER LIST NEED BE SUPPLIED AND DEFINED IN THE PRO- * CEDURE DECLARATION. SPC 1 * J.D. REED HAC-TEL 1/5/74 SPC 2 FETCH NOP LDA FETCH,I SAVE STA RETRN RETURN ADDRESS LOOP ISZ FETCH INCREMENT POINTER LDA FETCH AND LOAD VALUE. CPA RETRN POINTER = RETURN ADDRESS? JMP RETRN,I YES - RETURN LDA FETCH,I NO - FETCH THE VARIABLE ADDRESS STA ADDRS IN THE USER'S PROG. AND SAVE LDA B,I FETCH RTE PARAMETER & STA ADDRS,I RETURN IT TO USER. INB INDEX RTE PARAMETER POINTER JMP LOOP CHECK FOR ANOTHER PARAMETER SPC 1 B EQU 1 ADDRS NOP RETRN NOP SPC 1 END v80   22682-18065 1716 SC 0222 21MX EXTENDED INSTRUCTION SET SIMULATOR             H0102 ?ASMB,R,B,X NAM MXLIB,0 ("MX" INSTRUCTION SET--SIMULATED) 12/75 DLC SPC 3 * NAME SIZE(10) ENTRIES EXTERNALS * XINDX 112 .ADX,.CAX,.CBX,.CXA,.CXB IDRCT * .DSX,.ISX,.LAX,.LBX,.LDX * .SAX,.SBX,.STX,.XAX,.XBX * * YINDX 130 .ADY,.CAY,.CBY,.CYA,.CYB IDRCT * .DSY,.ISY,.LAY,.LBY,.LDY * .SAY,.SBY,.STY,.XAY,.XBY * .JPY,.JLY * * !1SFW 21 .SFW IDRCT * * !1CMW 35 .CMW IDRCT * * !1MVW 21 .MVW IDRCT * * !1MBT 25 .MBT IDRCT,.LBT,.SBT * * !1CBT 41 .CBT IDRCT,.LBT * * !1SFB 25 .SFB .LBT * * !1SBL 14 .SBL .LBT * * !1SBT 23 .SBT * * !1LBT 11 .LBT * * !1TBS 19 .TBS IDRCT * * !1SBS 19 .SBS IDRCT * * !1CBS 20 .CBS IDRCT * * !1DRK 17 IDRCT * END ASMB,R,B,X HED SIMULATION OF "X" INDEX REGISTER 21MX INSTRUCTIONS NAM XINDX,7 EXT IDRCT ENT .ADX,.CAX,.CBX,.CXA,.CXB ENT .DSX,.ISX,.LAX,.LBX,.LDX ENT .SAX,.SBX,.STX,.XAX,.XBX SPC 2 * * CALLING SEQUENCE: * JSB .ADX CALL SUB. OR OCT 105746 * DEF MEMRY(,I) * * * PURPOSE: * ADDS THE CONTENTS OF THE ADDRESSED MEMORY LOCATION * TO THE CONTENTS OF THE X - REGISTER. THE SUM * REMAINS IN THE X-REG. AND THE CONTENTS OF THE * MEMORY CELL ARE UNALTERED. * .ADX NOP STA ATEMP NEED REAL REG. LDA .ADX,I JSB IDRCT TRACK INDIRECTS,IF ANY LDA AREG,I GET ACTUAL VALUE ADA XREG DO ADDITION STA XREG LDA ATEMP ISZ .ADX JMEP .ADX,I SKP * CALLING SEQUENCE: * JSB .CAX CALL SUB OR 101741 * * * PURPOSE: * COPIES THE CONTENTS OF THE A-REG. INTO THE * X-REG. THE CONTENTS OF THE A-REG. ARE UNALTERED. * .CAX NOP STA XREG JMP .CAX,I SPC 3 * CALLING SEQUENCE: * JSB .CBX CALL SUB. OR OCT 105741 * * * PURPOSE: * COPIES THE CONTENTS OF THE B-REG. INTO THE * X-REG. THE CONTENTS OF THE B-REG. ARE UNALTERED. * .CBX NOP STB XREG JMP .CBX,I SPC 3 * CALLING SEQUENCE: * JSB .CXA CALL SUB. OR OCT 101744 * * * PURPOSE: * COPIES THE CONTENTS OF THE X-REG. INTO THE * * A-REG. XREG. IS UNALTERED. * .CXA NOP LDA XREG JMP .CXA,I SPC 3 * CALLING SEQUENCE: * JSB .CXB CALL SUB. OR OCT 105744 * * * PURPOSE: * COPIES X-REG. INTO INTO B-REG. X-REG. IS UNALTERED * .CXB NOP LDB XREG JMP .CXB,I SKP * * CALLING SEQUENCE: * JSB .DSX * * * * PURPOSE: * SUBTRACTS ONE FROM X-REG. IF THE RESULT OF THIS * IS ZERO, THE NEXT INSTRUCTION IS SKIPPED. THIS * IS THE SAME LOGIC AS THE ISZ INSTRUCTION. * .DSX NOP DECREMENT X AND SKIP IF ZERO STA ATEMP CCA SET A-REG TO -1 ADA XREG STA XREG SZA,RSS RESULT ZERO? ISZ .DSX YES, TAKE P + 2 LDA ATEMP JMP .DSX,I SPC 3 * * CALLING SEQUENCE: * JSB .ISX * * * * PURPOSE: * ADDS ONE TO THE X-REG. IF THE RESULT IS ZERO, * THE NEXT INSTRUCTION IS SKIPPED. THIS IS THE * SAME LOGIC AS THE ISZ INSTRUCTION. * .ISX NOP INCREMENT X AND SKIP IF ZERO ISZ XREG RSS NOT ZERO ISZ .ISX RESULT = ZERO, SO SKIP JMP .ISX,I SKP * CALLING SEQUENCE: * a JSB .LAX CALL SUB. OR OCT 101742 * DEF MEMRY(,I) ADDRESS TO ADD T X-REG. * TO ARRIVE AT EFFECTIVE ADDRESS * .LAX NOP LDA .LAX,I JSB IDRCT RESOLVE INDIRECT CHAIN, IF ANY ADA XREG ELA,CLE,ERA ASSURE DIRECT ADDRESS LDA AREG,I ISZ .LAX JMP .LAX,I SPC 3 * CALLING SEQUENCE: * JSB .LBX CALL SUB OR OCT 105742 * DEF MEMRY(,I) ADDRESS TO ADD TO X-REG. TO ARRIVE * AT EFFECTIVE ADDRESS * .LBX NOP STA ATEMP LDA .LBX,I JSB IDRCT ADA XREG ELA,CLE,ERA LDB AREG,I LDA ATEMP ISZ .LBX JMP .LBX,I SKP * CALLING SEQUENCE: * JSB .SAX CALL SUB. OR OCT 101740 * DEF MEMRY(,I) ADDRESS TO ADD TO X-REG. TO ARRIVE * AT EFFECTIVE ADDRESS * .SAX NOP STA ATEMP LDA .SAX,I JSB IDRCT ADA XREG COMPUTE EFFECTIVE ADDRESS ELA,CLE,ERA IGNORE BIT 15 (INDIRECT) STA AWORK LDA ATEMP STA AWORK,I ISZ .SAX JMP .SAX,I SPC 3 * CALLING SEQUENCE: * JSB .SBX CALL SUB OR OCT 105740 * DEF MEMRY(,I) ADDRESS TO ADD TO X-REG. TO ARRIVE * AT EFFECTIVE ADDRESS * .SBX NOP STA ATEMP LDA .SBX,I JSB IDRCT ADA XREG ELA,CLE,ERA ! STB AREG,I LDA ATEMP ISZ .SBX JMP .SBX,I SKP * CALLING SEQUENCE: * JSB .XAX CALL SUB. OR OCT 101747 * * * PURPOSE: * EXCHANGE THE CONTENTS OF A AND X-REG. * .XAX NOP STA ATEMP LDA XREG STA AWORK LDA ATEMP STA XREG LDA AWORK JMP .XAX,I SPC 3 * CALLING SEQUENCE: * JSB .XBX CALL SUB. OR OCT 105747 * * * PURPOSE: * EXCHANGE THE CONTENTS OF B- AND X-REG. * .XBX NOP STA ATEMP LDA XREG STB XREG LDB AREG LDA ATEMP JMP .XBX,I SKP * CALLING SEQUENCE: * JSB .LDX CALL SUB. OR OCT 105745 * DEF MEMRY(,I) ADDRESS TO LOAD FROM * * * PURPOSE: * LOADS THE CONTENTS OF THE ADDRESSED LOC. INTO * THE X-REG. * .LDX NOP STA ATEMP LDA .LDX,I JSB IDRCT LDA AREG,I STA XREG LDA ATEMP ISZ .LDX JMP .LDX,I SPC 5 * CALLING SEQUENCE: * JSB .STX CALL SUB. OR 105743 * * DEF MEMRY(,I) ADDRESS TO STORE INTO * * PURPOSE: * STORES THE X-REG. INTO THE ADDRESSED LOCATION. * .STX NOP STA ATEMP LDA .STX,I JSB IDRCT STA AWORK LDA XREG STA AWORK,I LDA ATEMP ISZ .STX JMP .STX,I AREG EQU 0 BREG EQU 1 XREG NOP ATEMP NOP AWORK NOP END ASMB,R,B,X HED SIMULATION OF "Y" INDEX REGISTER 21MX INSTRUCTIONS NAM YINDX,7 EXT IDRCT * ENT .ADY,.CAY,.CBY,.CYA,.CYB ENT .DSY,.ISY,.LAY,.LBY,.LDY ENT .JPY,.JLY ENT .SAY,.SBY,.STY,.XAY,.XBY SPC 2 * * CALLING SEQUENCE: * JSB .ADY CALL SUB. OR OCT 105756 * DEF MEMRY(,I) * * * PURPOSE: * ADDS THE CONTENTS OF THE ADDRESSED MEMORY LOCATION * TO THE CONTENTS OF THE Y - REGISTER. THE SUM * REMAINS IN THE Y-REG. AND THE CONTENTS OF THE * MEMORY CELL ARE UNALTERED. * .ADY NOP STA ATEMP NEED REAL REG. LDA .ADY,I JSB IDRCT TRACK INDIRECTS,IF ANY LDA AREG,I GET ACTUAL VALUE ADA YREG DO ADDITION STA YREG LDA ATEMP ISZ .ADY JMP .ADY,I SKP * CALLING SEQUENCE: * JSB .CAY CALL SUB OR 101751 * * * PURPOSE: * COPIES THE CONTENTS OF THE A-REG. INTO THE * Y-REG. THE CONTENTS OF THE A-REG. ARE UNALTERED. * .CAY NOP STA YREG JMP .CAY,I SPC 3 * CALLING SEQUENCE: * JSB .CBY MCALL SUB. OR OCT 105751 * * * PURPOSE: * COPIES THE CONTENTS OF THE B-REG. INTO THE * Y-REG. THE CONTENTS OF THE B-REG. ARE UNALTERED. * .CBY NOP STB YREG JMP .CBY,I SPC 3 * CALLING SEQUENCE: * JSB .CYA CALL SUB. OR OCT 101754 * * * PURPOSE: * COPIES THE CONTENTS OF THE Y-REG. INTO THE * A-REG. YREG. IS UNALTERED. * .CYA NOP LDA YREG JMP .CYA,I SPC 3 * CALLING SEQUENCE: * JSB .CYB CALL SUB. OR OCT 105754 * * * PURPOSE: * COPIES Y-REG. INTO INTO B-REG. Y-REG. IS UNALTERED * .CYB NOP LDB YREG JMP .CYB,I SKP * CALLING SEQUENCE: * JSB .DSY CALL SUB. OR OCT 105771 * * * * PURPOSE: * SUBTRACTS ONE FROM Y-REG. IF THE RESULT OF THIS * IS ZERO, THE NEXT INSTRUCTION IS SKIPPED. THIS * IS THE SAME LOGIC AS THE ISZ INSTRUCTION. * .DSY NOP DECREMENT Y AND SKIP IF ZERO STA ATEMP CCA SET A-REG TO -1 ADA YREG STA YREG SZA,RSS RESULT ZERO? ISZ .DSY YES, TAKE P + 2 LDA ATEMP JMP .DSY,I SPC 3 * CALLING SEQUENCE: * JSB .ISY CALL SUB. OR OCT 105770 * * * * PURPOSE: * ADDS ONE TO THE Y-REG. IF THE RESULT IS ZERO, * THE NEXT INSTRUCTION IS SKIPPED. THIS IS THE * SAME LOGIC AS THE ISZ INSTRUCTION. * .ISY NOP INCREMENT Y AND SKIP IF ZERO ISZ YREG RSS NOT ZERO ISZ .ISY RESULT = ZERO, SO SKIP JMP .ISY,I SKP * CALLING SEQUENCE: * JSB .LAY CALL SUB. OR OCT 101752 * DEF MEMRY(,I) ADDRESS TO ADD T Y-REG. * TO ARRIVE AT EFFECTIVE ADDRESS * .LAY NOP LDA .LAY,I JSB IDRCT RESOLVE INDIRECT CHAIN, IF ANY ADA YREG ELA,CLE,ERA ASSURE DIRECT ADDRESS  LDA AREG,I ISZ .LAY JMP .LAY,I SPC 3 * CALLING SEQUENCE: * JSB .LBY CALL SUB OR OCT 105752 * DEF MEMRY(,I) ADDRESS TO ADD TO Y-REG. TO ARRIVE * AT EFFECTIVE ADDRESS * .LBY NOP STA ATEMP LDA .LBY,I JSB IDRCT ADA YREG ELA,CLE,ERA LDB AREG,I LDA ATEMP ISZ .LBY JMP .LBY,I SKP * CALLING SEQUENCE: * JSB .SAY CALL SUB. OR OCT 101750 * DEF MEMRY(,I) ADDRESS TO ADD TO Y-REG. TO ARRIVE * AT EFFECTIVE ADDRESS * .SAY NOP STA ATEMP LDA .SAY,I JSB IDRCT ADA YREG COMPUTE EFFECTIVE ADDRESS ELA,CLE,ERA IGNORE BIT 15 (INDIRECT) STA AWORK LDA ATEMP STA AWORK,I ISZ .SAY JMP .SAY,I SPC 3 * CALLING SEQUENCE: * JSB .SBY CALL SUB OR OCT 105750 * DEF MEMRY(,I) ADDRESS TO ADD TO Y-REG. TO ARRIVE * AT EFFECTIVE ADDRESS * .SBY NOP STA ATEMP LDA .SBY,I JSB IDRCT ADA YREG ELA,CLE,ERA STB AREG,I LDA ATEMP ISZ .SBY JMP .SBY,I SKP * CALLING SEQUENCE: * JSB .XAY CALL SUB. OR OCT 101757 * * * PURPOSE: * EXCHANGE THE CONTENTS OF A AND Y-REG. * .XAY NOP STA ATEMP LDA YREG STA AWORK LDA ATEMP STA YREG LDA AWORK JMP .XAY,I SPC 3 * CALLING SEQUENCE: * JSB .XBY CALL SUB. OR OCT 105757 * * * PURPOSE: * EXCHANGE THE CONTENTS OF B- AND Y-REG. * .XBY NOP STA ATEMP LDA YREG STB YREG LDB AREG LDA ATEMP JMP .XBY,I SKP * CALLING SEQUENCE: * JSB .LDY CALL SUB. OR OCT 105755 * DEF MEMRY(,I) ADDRESS TO LOAD FROM * * * PURPOSE: * LOADS THE CONTENTS OF THE ADDRESSED LOC. INTO * THE Y-REG. * .LDY NOP STA ATEM*($P LDA .LDY,I JSB IDRCT LDA AREG,I STA YREG LDA ATEMP ISZ .LDY JMP .LDY,I SPC 5 * CALLING SEQUENCE: * JSB .STY CALL SUB. OR 105753 * DEF MEMRY(,I) ADDRESS TO STORE INTO * * * PURPOSE: * STORES THE Y-REG. INTO THE ADDRESSED LOCATION. * .STY NOP STA ATEMP LDA .STY,I JSB IDRCT STA AWORK LDA YREG STA AWORK,I LDA ATEMP ISZ .STY SPC 3 JMP .STY,I AREG EQU 0 BREG EQU 1 YREG NOP ATEMP NOP AWORK NOP SKP * CALLING SEQUENCE: * JSB .JLY CALL SUB. OR OCT 105762 * DEF MEMRY(,I) JUMPS TO HERE * PUTS ADDRESS OF THIS LOC. IN Y-REG. * .JLY NOP STA ATEMP LDA .JLY ALREADY CONTAINS P + 1 INA MAKE IT P + 2 STA YREG SET "Y" TO RETURN ADDRESS * LDA .JLY,I JSB IDRCT STA AWORK LDA ATEMP JMP AWORK,I SPC 3 * CALLING SEQUENCE: * JSB .JPY CALL SUB. OR OCT 105772 * * DEF MEMRY INDIRECT NOT ALLOWED * * PURPOSE: * TRANSFERS CONTROL TO THE EFFECTIVE ADDRESS, WHICH * IS COMPUTED BY ADDING THE CONTENTS OF THE Y-REG. * TO THE OPERAND ADDRESS. * .JPY NOP STA ATEMP LDA .JPY,I ADA YREG ELA,CLE,ERA IGNORE INDIRECT STA AWORK LDA ATEMP JMP AWORK,I END ASMB,R,B,X HED "SCAN FOR WORD" SUBROUTINE NAM !1SFW,7 * ENT .SFW EXT IDRCT (** * CALLING SEQUENCE: * PATTERN TO TEST FOR * ADDRESS OF FIRST WORD * JSB .SFW CALL SUB. * DEF CNT[,I] ADDRESS OF # OF WORDS, POSITIVE! * NOP RESERVED FOR MICROCODE, IF ANY! * * * * PURPOSE: * SCAN AN ARRAY SEARCHING FOR A WORD THAT MATCHES * THE WORD PASSED INTO ROUTINE. * * RESULTS: * IF A MATCHING WORD IS FOUND, RETURN WITH ADDRESS OF * MATCH IN B-REG. A-REG. UNCHANGED, CNT UNCHANGED. * IF MATCH NOT FOUND, B-REG. CONTAINS ADDRESS OF * ARRAY INCREMENTED BY CNT. A-REG. AND CNT UNCHANGED. * IN BOTH CASES THE CONTENTS OF "E" AND "O" ARE * NOT SAVED. * .SFW NOP STA ATEMP NEED A WORKING REG. LDA .SFW,I PICK UP PARAMETER JSB IDRCT FOLLOW INDIRECT CHAIN LDA AREG,I GET ACTUAL WORD CNT CMA,INA MPY BY -1 STA AWORK * ISZ .SFW ISZ .SFW SET UP FOR "FOUND" RETURN SZA,RSS COUNT = 0? JMP EXIT YES, WORD NOT FOUND LDA ATEMP RESTORE TEST WORD * LOOP CPA BREG,I THIS WORD EQUAL TEST WORD? JMP .SFW,I YES, RETURN P+1 * INB POINT TO NEXT WORD ISZ AWORK EXAMINED ALL? JMP LOOP NOT YET * EXIT ISZ .SFW YES, RETURN P+2 JMP .SFW,I * ATEMP NOP AWORK NOP AREG EQU 0 BREG EQU 1 END ASMB,R,B,X HED COMPARE WORD SIMULATOR NAM !1CMW,7 6/13/1975 ENT .CMW EXT IDRCT * * THIS SUBROUTINE IMPLEMENTS THE 21MX INSTRUCTION * "COMPARE WORDS". THE CALLING SEQUENCE IS THE * SAME AND THE RESULTS ARE THE SAME. * * CALLING SEQUENCE: * DIRECT ADDRESS OF ARRAY 1 * DIRECT ADDRESS OF ARRAY 2 * JSB .CMW CALL SUB. OR OCT 105776 * DEF SIZE[,I] ADDRESS OF WORD COUNT--POSITIVE * E NOP RESERVED FOR MICROCODE USE * JMP EQUAL THE ARRAYS ARE EQUAL * JMP LESS ARRAY 1 LESS THAN ARRAY 2 * .CMW NOP STB BTEMP MAKE REG. AVAIL. * STA ATEMP NEED A-REG. ALSO! LDA .CMW,I JSB IDRCT TRACK INDIRECTS--IF ANY LDA AREG,I GET ACTUAL COUNT ADB AREG STB BSAVE B-REG. RETURN VALUE CMA,INA STA WCNT WORD COUNTING LOOP SZA,RSS COUNT = 0? JMP NEQUL+1 YES, TAKE EQUAL EXIT LDA ATEMP RESTORE A-REG. * ISZ .CMW ISZ .CMW SET UP FOR EQUAL RETURN * LOOP LDB AREG,I GET AN ARRAY 1 WORD CMB,INB ADB BTEMP,I COMPARE TO ARRAY 2 WORD SZB JMP NEQUL WORDS NOT EQUAL! * INA EQUAL, CONTINUE LOOP ISZ BTEMP POINT TO NEXT ARRAY 2 WORD ISZ WCNT LOOKED AT THEM ALL? JMP LOOP NOT YET * LDB BSAVE ALL EQUAL AND DONE! JMP .CMW,I * NEQUL SSB RESULTS POS. OR NEG.? ISZ .CMW NEQ.,TAKE P+3 RETURN ISZ .CMW POS.,TAKE P+2 RETURN LDB BSAVE JMP .CMW,I AREG EQU 0 ATEMP NOP BTEMP NOP BSAVE NOP WCNT NOP END ASMB,R,B,X NAM !1MVW,7 ENT .MVW EXT IDRCT * * THIS IS A SIMULATION OF THE NEW INSTRUCTION "MVW" * THE PURPOSE IS TO MOVE A WORD STRING FROM PLACE TO * PLACE. THE CALLING SEQUENCE IS THE SAME WHICH MEANS * THE "JSB MVW" CAN BE REPLACE WITH "OCT 105777" * ON THE "MX" SERIES. * * CALLING SEQUENCE: * * AREG CONTAINS FROM ADDRESS * BREG CONTAINS TO ADDRESS * JSB .MVW CALL SUB. OR OCT 105777 * DEF CNT(,I) ADDRESS OF # OF WORDS TO MOVE * NOP USED BY MICROCODE ONLY * AREG CONTAINS ADDRESS OF NEXT * WORD TO BE MOVED, BREG CONTAINS * ADDRESS OF NEXT AVAIL. WORD *  CNT UNMODIFIED. * .MVW NOP STA FROM SAVE FROM ADDRESS LDA .MVW,I JSB IDRCT TRACK INDIRECTS, IF ANY LDA AREG,I PICK UP COUNT CMA,INA STA LCNT SET UP LOOP COUNTER SZA,RSS COUNT = 0? JMP EXIT YES, DO NOTHING * MLOOP LDA FROM,I STA BREG,I MOVE A WORD ISZ FROM INB BUMP ADDRESSES ISZ LCNT DONE? JMP MLOOP NO * EXIT ISZ .MVW ISZ .MVW CORRECT RETURN ADDRESS LDA FROM RECOVER NEW FROM ADDRESS JMP .MVW,I * FROM NOP LCNT NOP AREG EQU 0 BREG EQU 1 END ASMB,R,B,X HED SIMULATION OF "MOVE BYTES" 21MX INSTRUCTION NAM !1MBT,7 ENT .MBT EXT IDRCT,.LBT,.SBT SPC 2 * CALL SEQUENCE: * A-REG. TO CONTAIN SOURCE ADDRESS * B-REG. TO CONTAIN SOURCE ADDRESS * JSB .MBT CALL SUB. OR OCT 105765 * DEF CNT(,I) ADDRESS OF # OF BYTES TO MOVE * NOP RESERVED FOR MICROCODE * BOTH A & B INCREMENTED BY CNT * * .MBT NOP STA FROM SOURCE BYTE ADDRESS STB TO DESTINATION BYTE ADDRESS * LDA .MBT,I JSB IDRCT TRACK DOWN INDIRECTS LDA AREG,I PICK UP ACTUAL BYTE COUNT CMA,INA STA BCNT USE AS LOOP COUNTER * SZA,RSS COUNT = 0? JMP EXIT YES, DO NOTHING * LOOP LDB FROM JSB .LBT TAKE A BYTE STB FROM BYTE ADDRESS INCREMENTED BY LBT * LDB TO JSB .SBT PUT IT HERE STB TO PREPARE FOR NEXT BYTE, IF ANY. * ISZ BCNT MOVE ENOUGH? JMP LOOP NOPE * LDA FROM NEXT BYTE IN SOURCE ARRAY EXIT ISZ .MBT ISZ .MBT SET UP RETURN ADDRESS JMP .MBT,I B-REG. ALREADY CORRECT. * FROM NOP TO ? NOP BCNT NOP AREG EQU 0 END ASMB,R,B,X HED SIMULATION OF "COMPARE BYTES" 21MX INSTRUCTION NAM !1CBT,7 ENT .CBT EXT IDRCT,.LBT SPC 2 * CALLING SEQUENCE: * A-REG. TO CONTAIN STRING 1 ADDRESS * B-REG. TO CONTAIN STRING 2 ADDRESS * JSB .CBT SUB. CALL OR OCT 105766 * DEF CNT(,I) ADDRESS OF BYTE COUNT * NOP RESERVED FOR MICROCODE * JMP EQUAL THE BYTE STRINGS WERE EQUAL * JMP LESS STRING 1 LESS THAN STRING 2 * JMP MORE STRING 1 MORE THAN STRING 2 * * RESULTS: * ON ALL RETURNS B-REG. CONTAINS ORIGINAL VALUE * INCREMENTED BY "CNT". * ON EQUAL RETURN A-REG. HAS ALSO BEEN INCREMENTED * BY "CNT". * ON UNEQUAL RETURNS A-REG. CONTAINS STRING 1 * ADDRESS WHERE INEQUALITY FOUND. * .CBT NOP STA ARAY1 STB ARAY2 * LDA .CBT,I JSB IDRCT LDA AREG,I GET ACTUAL BYTE COUNT * ADB AREG STB BSAVE B-REG.'S RETURN VALUE * CMA,INA STA BCNT SET UP LOOP COUNTER SZA,RSS COUNT = 0? JMP NEQUL+1 YES, TAKE EQUAL EXIT! * ISZ .CBT ISZ .CBT SET UP FOR EQUAL RETURN * LOOP LDB ARAY1 JSB .LBT TAKE A BYTE FROM STRING 1 STB ARAY1 SAVE INCREMENTED BYTE ADDRESS STA BYTE1 * LDB ARAY2 JSB .LBT STB ARAY2 CMA,INA ADA BYTE1 STRING 1 MINUS STRING 2 * SZA EQUAL? JMP NEQUL NO ! ISZ BCNT EXAMINED ALL BYTES? JMP LOOP NO * LDA ARAY1 "A" SET TO ORIGINAL + CNT JMP .CBT,I "B" ALREADY CORRECT, EQUAL * RETURN ! * NEQUL SSA,RSS STRING 1 LARGEST? ISZ .CBT YES, SKIP TWO WORDS ISZ .CBT ELSE SKIP ONE * CCA Y ADA ARAY1 STRING 1 ADDRESS AT NON-MATCH LDB BSAVE STRING 2 ADDRESS + CNT JMP .CBT,I * ARAY1 NOP ARAY2 NOP BSAVE NOP BYTE1 NOP BCNT NOP AREG EQU 0 END ASMB,R,B,X HED SIMULATION OF "SCAN FOR BYTE" 21MX INSTRUCTION NAM !1SFB,7 ENT .SFB EXT .LBT * * CALLING SEQUENCE: * A-REG. TO CONTAIN TERMINATION BYTE AND TEST BYTE * B-REG. TO CONTAIN ADDRESS OF FIRST BYTE * JSB .SFB CALL SUB. OR OCT 105767 * EXIT IF BYTE FOUND TO MATCH TEST BYTE * EXIT IF BYTE FOUND TO MATCH TERMINATION BYTE * .SFB NOP STA ATEMP AND BMASK ISOLATE TEST BYTE STA TEST * LDA ATEMP ALF,ALF AND BMASK ISOLATE TERMINATION BYTE STA TERM * LOOP JSB .LBT FETCH A BYTE CPA TEST EQUAL TEST BYTE? JMP T.OUT YES * CPA TERM EQUALS TERMINATION BYTE? JMP DONE YES JMP LOOP NOPE, LOOK SOME MORE * DONE ISZ .SFB RETURN TO P + 2 LDA ATEMP RESTORE A-REG. JMP .SFB,I * T.OUT ADB M.1 DECREMENT B LDA ATEMP JMP .SFB,I RETURN TO P + 1 * ATEMP NOP TEST NOP TERM NOP BMASK OCT 377 M.1 DEC -1 END ASMB,R,B,X HED "SCAN BYTES LEFT" SUBROUTINE NAM !1SBL,7 ENT .SBL EXT .LBT * * CALLING SEQUENCE: * * LDA FILL CHARACTER TO REMOVE * LDB BYTAD BYTE ADDRESS TO START * JSB .SBL * B-REG. CONTAINS ADDRESS * OF FIRST OPEN BYTE * * PURPOSE: * USED TO REMOVE TRAILING BLANKS. * * .SBL NOP AND M377 ISOLATE BYTE TO REMOVE STA SAVE ADB M1 DECREMENT BYTE ADDRESS * SLOOP JSB .LBT FETCH IT CPA SAVE REMOVE THIS ONE? RSS YES JMP .SBL,I NO, DONE! * ADB M2 LBT INCREMENTSX B, JMP SLOOP THEREFORE, GO BACK 2 * SAVE NOP M1 DEC -1 M2 DEC -2 M377 OCT 377 END ASMB,R,B,X HED SIMULATION OF "STORE BYTE" 21MX INSTRUCTION NAM !1SBT,7 ENT .SBT SPC 2 * CALLING SEQUENCE: * A-REG. TO CONTAIN BYTE TO BE STORED * B-REG. TO CONTAIN BYTE ADDRESS * JSB .SBT CALL SUB. OR OCT 105764 * B-REG INCREMENTED BY ONE * .SBT NOP STA ATEMP AND MASK ISOLATE BYTE OF INTEREST ALF,ALF STA AWORK SAVE IT IN LEFT BYTE * STB BTEMP CLE,ERB CONVERT TO WORD ADDRESS, LDA BREG,I "E" = B SEZ 0 = STORE IN LEFT BYTE, THEREFORE SAVE RIGHT BYTE ALF,ALF SWAP BYTES AND MASK ISOLATE BYTE TO SAVE IOR AWORK MERGE BYTES SEZ WORD IN PROPER POSITION? ALF,ALF NO, SWAP IT BACK STA BREG,I REPLACE IN MEMORY * LDA ATEMP RESTORE A-REG. LDB BTEMP RESTORE B-REG. INB POINT TO NEXT BYTE JMP .SBT,I * ATEMP NOP BTEMP NOP MASK OCT 377 AWORK NOP BREG EQU 1 END ASMB,R,B,X HED SIMULATION OF "LOAD BYTE" 21MX INSTRUCTION NAM !1LBT,7 ENT .LBT SPC 2 * CALLING SEQUENCE: * B-REG. TO CONTAIN BYTE ADDRESS C JSB .LBT CALL SUB. OR OCT 105763 * BYTE REQUESTED IN RIGHT HALF OF A-REG. * B-REG. INCREMENTED BY ONE * .LBT NOP CLE,ERB PRODUCE WORD ADDRESS, BYTE FLAG IN "E" LDA BREG,I GET WORD SEZ,RSS 0 INDICATES LEFT BYTE ALF,ALF SWAP BYTES AND MASK ISOLATE BYTE OF INTEREST * ELB RESTORE "B" INB POINT TO NEXT BYTE JMP .LBT,I * MASK OCT 377 BREG EQU 1 END ASMB,R,B,X HED SIMULATION OF "TEST BITS" 21MX INSTRUCTION NAM !1TBS,7 ENT .TBS EXT IDRCT SPC 2 * * CALLING SEQUENCE: * JSB .TBS CALL SUB. OR OCT 105775 * DEF MASK(,I) ADDRESS OF WORD CONTAINING BITS TO TEST * DEF TARGT(,I) ADDRESS OF WORD TO TEST * ALL BITS TESTED WERE ON * ONE OR MORE TESTED BITS WERE OFF * .TBS NOP STA ATEMP LDA .TBS,I JSB IDRCT LDA AREG,I GET BITS TO TEST STA AWORK * ISZ .TBS POINT TO NEXT PARAMETER LDA .TBS,I JSB IDRCT TRACK INDIRECTS, IF ANY LDA AREG,I PICK UP WORD * ISZ .TBS SET UP FOR EQUAL RETURN * AND AWORK TURN OFF UNTESTED BITS CPA AWORK ALL TESTED BITS STILL ON ? RSS YES ISZ .TBS NO, SKIP ON RETURN LDA ATEMP JMP .TBS,I * ATEMP NOP AWORK NOP AREG EQU 0 END ASMB,R,B,X HED SIMULATION OF "SET BITS" 21MX INSTRUCTION NAM !1SBS,7 ENT .SBS EXT IDRCT SPC 2 * * CALLING SEQUENCE: * JSB .SBS CALL SUB. OR OCT 105773 * DEF MASK(,I) ADDRESS OF MASK * DEF TARGT(,I) LOC. WHERE BITS ARE TO BE SET * * .SBS NOP STA ATEMP LDA .SBS,I JSB IDRCT LDA AREG,I PICK UP ACTUAL MASK STA AWORK SAVE FOR LATER * ISZ .SBS POINT TO NEXT PARAMETER LDA .SBS,I JSB IDRCT STA TARGT NOW HAVE ADDRESS OF TARGET WORD * LDA TARGT,I IOR AWORK TURN ON SOME BITS STA TARGT,I RETURN TO SENDER * LDA ATEMP ISZ .SBS JMP .SBS,I * ATEMP NOP AWORK NOP TARGT NOP AREG EQU 0 END ASMB,R,B,X HED SIMULATION OF "CLEAR BITS" 21MX INSTRUCTION NAM !1CBS,7 ENT .CBS EXT IDRCT SPC 2 * * CALLING SEQUENCE: * JSB .CBS CALL SUB. OR OCT 105744 * DEF MASK(,I) ADDRESS OF MASK, OPTIONALLY INDIRECT * DEF TARGT(,I) ADDRESS OF WV#0.*ORD TO CLEAR BITS IN * * .CBS NOP STA ATEMP LDA .CBS,I JSB IDRCT TRACK INDIRECTS, IF ANY LDA AREG,I GET ACTUAL MASK CMA INVERT ALL BITS STA AWORK SAVE FOR LATER * ISZ .CBS POINT TO NEXT PARAMETER LDA .CBS,I JSB IDRCT STA TARGT NOW HAVE ADDRESS OF TARGET WORD * LDA TARGT,I PICK UP TARGET AND AWORK CHANGE IT A BIT STA TARGT,I * LDA ATEMP ISZ .CBS JMP .CBS,I * ATEMP NOP AWORK NOP TARGT NOP AREG EQU 0 END ASMB,R,B,X HED INDIRECT TRACKING SUBROUTINE NAM !1DRK,7 ENT IDRCT SPC 2 * CALLING SEQUENCE: * LOC. CONTAINING AN ADDRESS * JSB IDRCT * A-REG. HAS DIRECT ADDRESS * * RESULTS: * "B","E", AND "O" UNAFFECTED. * IDRCT NOP STA ATEMP CLA ELA STA AWORK SAVE "E" * LDA ATEMP PICK UP START OF CHAIN RSS LDA AREG,I GO ONE MORE LEVEL RAL,CLE,SLA,ERA TEST AND TURN OFF BIT 15 JMP *-2 PLAY IT AGAIN SAM! * STA ATEMP NOW HAVE DIRECT ADDRESS LDA AWORK ERA RESTORE "E" LDA ATEMP JMP IDRCT,I * AREG EQU 0 ATEMP NOP AWORK NOP END 0  22682-18066 1719 SC 0722 HP-IB PERFORMANCE UTILITY              H0107 'FTN4,L PROGRAM SPEED,3 C C C UPDATE 770516 G. GROSS C NEW VERSION!!!! C THIS IS A PROGRAM TO OUTPUT THE RESULTS OF ETIME C TO AN FMP FILE SPECIFIED BY THE USER. THE FILE C MAY LATER LISTED OR PLOTTED AT THE DISCRETION OF C THE USER. C C DOUBLE PRECISION COUT,OHED,UTL DIMENSION IBUF(60),IPBUF(33),IREG(2),IPRAM(5),NAM(3) DIMENSION IDCB(144),NAM2(3),NAM1(3),IPLOT(3),IBUFX(120) DIMENSION IETIM(3),MEM(3),ISEC(5) COMMON IUT2,IUT1,IUTL(2) EQUIVALENCE (IREG,REG,IA),(IREG(2),IB),(ISEC,SEC) EQUIVALENCE (NAM,IPBUF(2)),(ISECU,IPBUF(6)),(ICR,IPBUF(10)) EQUIVALENCE (ITYPE,IPBUF(14)),(ISIZ,IPBUF(18)) EQUIVALENCE (IPBUF(2),IPRS1),(IPBUF(6),IPRS2),(IPBUF(10),IPRS3) EQUIVALENCE (IPBUF(14),IPRS4),(IPBUF(18),IPRS5),(IPBUF(22),IPRS6) DATA IFLG/0/,IYES/2HYE/,NAM2/2HHP,2HIB,2H /,IBF/0/ DATA IETIM/2HET,2HIM,2HE /,MEM/2HME,2HMA,2HA /,IASC/2HNO/ DATA IPLOT/2HPL,2HOT,2HA / C C C CALL RMPAR(IPRAM) ILU=IPRAM(1) IF(ILU.EQ.0) ILU = 1 C======================================================== C PICK UP SYSTEM OVERHEAD FROM FILE 'HPIB' C COUT = COUNTS/SEC OUTSIDE OP-SYSTEM C OHED = SYSTEM OVERHEAD 0 0 THEN REPEAT := TRUE END OF CHECKSORT; & PROCEDURE FILEREAD (N); & READ RECORD N FROM SOURCE FILE INTEGER N; BEGIN READF (SDCB[1],ERROR,BUF[1],SIZE[2],X,N); IF IFMGR(ERROR,11,LU,SFILE[1]) < 0 THEN GO TO E1 END OF FILEREAD; & PROCEDURE FILEWRIT (N); & WRITE RECORD N TO DESTINATION INTEGER N; BEGIN WRITF (DDCB[1],ERROR,BUF[1],SIZE[2],N); IF IFMGR(ERROR,13,LU,DFILE[1]) < 0 THEN GO TO E1 END OF FILEWRIT; & PROCEDURE NAMR (FILE,SC,CART); & INPUTS AND PARSES A NAMR INTEGER SC,CART; INTEGER ARRAY FILE; BEGIN READ(LU,F2,FOR I := 1 TO 10 DO BUF[I]); FOR I := 0 TO 19 DO IF LDB(BUF[1],IZ) = ":" THEN J := STB(BUF[1],I,","); PARSE (BUF[1],20,RBUF[1]); FOR I := 1 TO 3 DO FILE[I] := RBUF[I+1]; SC := RBUF[6]; CART := RBUF[10] END OF NAMR; & PROCEDURE OPENFILE (DCB,FILE,SC,CART); & OPENS FILE TO DCB INTEGER SC,CART; INTEGER ARRAY DCB,FILE; BEGIN OPEN (DCB[1],ERROR,FILE[1],1,SC,CART); ERROR := IFMGR(ERROR,8,LU,FILE[1]) END OF OPENFILE; & PROCEDURE TOOBAD; & PROGRAMMATIC SORT KEY ERROR BEGIN IF NOT(ACTIVE) THEN BEGIN I := I + 12; WRITE(LU,F26,I); GO TO E1 END END; & COMMENT PROGRAM EXECUTION BEGINS HERE. FETCH TERMINAL LU AND IDENTIFY THE PROGRAM OR IF A PROGRAMMATIC SCHEDULE THEN PROCESS THE MAIL. ; FETCH (LU,I); IF LU < 0 THEN BEGIN EXEC4 (21,I,BUF[1],BLEN); FOR I := 1 TO 3 DO BEGIN SFILE[I] := BUF[I]; DFILE[I] := BUF[I+5] END; SSC := BUF[4]; SCART := BUF[5]; DSC := BUF[9]; DCART := BUF[10]; RECORDS := BUF[11]; NFIELD := BUF[12]; L := 13; FOR I := 1 TO NFIELD DO FOR K := 1 TO 4 DO BEGIN FIELDS[I,K] := BUF[L]; L := L + 1 END; FIELDS[NFIELD+1,1] := "/E"; ACTIVE := FALSE; LU := -LU END ELSE BEGIN IF LU = 0 OR LU > 64 THEN LU := 1; WRITE(LU,F0) END; COMMENT INPUT THE SOURCE FILE NAME AND MAKE SURE IT IS TYPE 2. ; IF ACTIVE THEN BEGIN WRITE(LU,F1); NAMR (SFILE,SSC,SCART) END; OPENFILE (SDCB,SFILE,SSC,SCART); IF ERROR < 0 THEN GO TO E99 ELSE IF ERROR # 2 THEN BEGIN WRITE(LU,F3); GO TO E99 END; COMMENT INPUT THE DESTINATION FILE NAME . IF IT DOES NOT EXIST THEN CREATE IT ELSE SEE IF IT IS OKAY TO REWRITE. ; D1: IF ACTIVE THEN BEGIN WRITE(LU,F4); NAMR(DFILE,DSC,DCART) END; LOCF (SDCB[1],ERROR,I,I,I,SIZE[1],I,I,SIZE[2g]); SIZE[1] := SIZE[1]\2; D2: CREAT (DDCB[1],ERROR,DFILE[1],SIZE[1],2,DSC,DCART); IF ERROR > 0 THEN GO TO S1; IF ERROR < 0 AND ERROR # -2 THEN BEGIN I := IFMGR(ERROR,3,LU,DFILE[1]); GO TO E1 END; FOR I := 1 TO 3 DO IF SFILE[I] # DFILE[I] THEN GO TO D3; IF DCART = SCART THEN BEGIN SCRATCH := TRUE; DSC := SSC; DFILE[1] := DFILE[2] := DFILE[3] := "JR"; GO TO D2 END; D3: IF ACTIVE THEN BEGIN WRITE(LU,F6); READ(LU,F7,I) END; IF I = "YE" OR ACTIVE THEN BEGIN OPENFILE (DDCB,DFILE,DSC,DCART); IF ERROR # 2 THEN BEGIN WRITE(LU,F8); GO TO E1 END END ELSE IF I = "NO" THEN GO TO D1 ELSE BEGIN WRITE(LU,F8); GO TO D3 END; COMMENT INPUT THE SORT FIELD DESCRIPTIONS. FIELDS ARE IN MAJOR TO MINOR ORDER. TERMINATE WITH A /E. ; S1: NFIELD := 0; FOR I := 1 TO FMAX DO BEGIN S2: IF ACTIVE THEN BEGIN WRITE(LU,F9,I); READ(LU,F7,FIELDS[I,1]) END; IF FIELDS[I,1] = "/E" THEN GO TO T1; IF FIELDS[I,1] # "AS" AND FIELDS[I,1] # "IN" AND FIELDS[I,1] # "RE" THEN BEGIN TOOBAD; WRITE(LU,F10); GO TO S2 END; NFIELD := NFIELD + 1; S3: IF ACTIVE THEN BEGIN WRITE(LU,F11,I); READ(LU,F7,FIELDS[I,2]) END; IF FIELDS[I,2] # "AS" AND FIELDS[I,2] # "DE" THEN BEGIN TOOBAD; WRITE(LU,F12); GO TO S3 END; IF FIELDS[I,1] = "AS" THEN BEGIN S4: IF ACTIVE THEN BEGIN WRITE(LU,F13,I); READ(LU,*,J) END ELSE J := FIELDS[I,3]; IF (J + 1)\2 > SIZE[2] THEN BEGIN TOOBAD; WRITE(LU,F14); GO TO S4 END; S5: IF ACTIVE THEN BEGIN WRITE(LU,F15,I); READ(LU,*,K) END ELSE K := FIELDS[I,4]; IF (K + 1)\2 > SIZE[2] THEN BEGIN TOOBAD; WRITE(LU,F16); GO TO S5 END; IF J > K THEN BEGIN TOOBAD; WRITE(LU,F17); GO TO S4 END; TOTAL := TOTAL + (K - J + 2)\2; FIELDS[I,3] := J - 1; FIELDS[I,4] := K - 1; END ELSE BEGIN S6: IF ACTIVE THEN BEGIN WRITE(LU,F18,I); READ(LU,*,FIELDS[I,3]) END; IF J > SIZE[2] THEN BEGIN TOOBAD; WRITE(LU,F19); GO TO S6 END; TOTAL := (IF FIELDS[I,1] = "IN" THEN TOTAL + 1 ELSE TOTAL + 3) END END; COMMENT ALLOCATE ENOUGH SYSTEM TRACKS TO DO THE JOB. TERMINATE IF ENOUGH TRACKS ARE NOT AVAILABLE. ; T1: IF ACTIVE THEN BEGIN WRITE(LU,F25); READ(LU,*,RECORDS) END; TRACKS := FIX((((FLT(TOTAL)*FLT(RECORDS)) + FLT(RECORDS)) / WPT) + 1.0); TRACKREQ := TRACKS OR @100000; EXEC5 (15,TRACKREQ,STRK,DLU,SECTORS); IF STRK = -1 THEN BEGIN WRITE(LU,F20); GO TO E1 END; COMMENT TRANSFER SORT FIELDS AND RECORD TAGGS TO SYSTEM TRACKS.; ; FLEN := TOTAL; TOTAL := TOTAL + 1; WRSET (RECORDS,FLEN,STRK,DLU); FOR I := 1 TO RECORDS DO BEGIN FILEREAD (I); K := 0; FOR J := 1 TO NFIELD DO BEGIN IF FIELDS[J,1] = "AS" THEN BEGIN FOR L := FIELDS[J,3] TO FIELDS[J,4] DO BEGIN BYTE := LDB(BUF[1],L); IF FIELDS[J,2] = "DE" THEN BYTE := @177 - BYTE; BYTE := STB(RBUF[1],K,BYTE); K := K + 1 END; IF K MOD 2 = 1 THEN BEGIN BYTE := STB(RBUF[1],K,0); K := K+1 END END ELSE BEGIN L := (K\2) + 1; IF FIELDS[J,1] = "IN" THEN BEGIN RBUF[L] := (IF FIELDS[J,2] = "DE" THEN BUF[FIELDS[J,3]] * -1 ELSE BUF[FIELDS[J,3]]); K := K + 2 END  ELSE BEGIN RFIX (BUF[FIELDS[J,3]],RBUF[L],FIELDS[J,2]); K := K + 8 END END END; SWRIT (RBUF[1],I); END; COMMENT SCHEDULE MSORT AND FIND OUT HOW MUCH SPACE WE HAVE. ; GTWDS (WORDS); WORDS := WORDS - (2 * NWPS); WORDS := WHOLESECTOR (WORDS); SORTRECORDS := WORDS\TOTAL; IF SORTRECORDS >= RECORDS THEN BEGIN SORTRECORDS := RECORDS; WORDS := TOTAL * RECORDS; PASSES := FALSE END; COMMENT NOW DO THE SORT. IF PASSES = TRUE THEN WE WILL HAVET TO DO SEVERAL PARTIAL SORTS ELSE WE CAN DO IT IN A SINGLE PASS. ; REPEAT := TRUE; IF PASSES THEN BEGIN P0: IF NOT(REPEAT) THEN GO TO X1; REPEAT := FALSE; LUTKSCTR := LTS (DLU,STRK,0); NEXTRECORD := SORTRECORDS + 1; NEXTSORT := 0; DOSRT (LUTKSCTR,WORDS,0,SORTRECORDS,FLEN,SFLAG,STATUS); P1: CHECKSORT; IF NEXTRECORD + NEXTSORT >= RECORDS THEN GO TO P0; NEXTRECORD := NEXTRECORD + NEXTSORT - ((SFLAG\3) + 2); NEXTSORT := (IF NEXTRECORD + SORTRECORDS > RECORDS THEN RECORDS - NEXTRECORD + 1 ELSE SORTRECORDS); TOTALWORDS := FLT(NEXTRECORD - 1) * FLT(TOTAL); TKS := TRACK := FIX(TOTALWORDS/WPT); NEXTRACK := TRACK + STRK; NEXTSECTOR := FIX((TOTALWORDS - (TKS * WPT))/FWPS); OFFSET := FIX(TOTALWORDS - ((TKS * WPT) + (FLT(NEXTSECTOR * NWPS)))); NWDS := NEXTSORT * TOTAL + OFFSET; NWDS := WHOLESECTOR (NWDS); LUTKSCTR := LTS(DLU,NEXTRACK,NEXTSECTOR); DOSRT (LUTKSCTR,NWDS,OFFSET,NEXTSORT,FLEN,SFLAG,STATUS); GO TO P1 END ELSE BEGIN LUTKSCTR := LTS (DLU,STRK,0); DOSRT (LUTKSCTR,WORDS,0,SORTRECORDS,FLEN,SFLAG,STATUS); CHECKSORT ENDYP640; COMMENT TRANSFER THE SOURCE FILE TO THE DESTINATION FILE. ORDER IS CONTAINED IN THE RECORD TAGS ON SYSTEM TRACKS. ; X1: RDSET (STRK,0); FOR I := 1 TO RECORDS DO BEGIN AREAD (TAG); FILEREAD (TAG); FILEWRIT (I) END; COMMENT IF SCRATCH FILE WAS USED THEN PURGE SOURCE FILE AND RENAME SCRATCH FILE TO SOURCE. ; IF SCRATCH THEN BEGIN PURGE (SDCB[1],ERROR,SFILE[1],SSC,SCART); NAMF (DDCB[1],ERROR,DFILE[1],SFILE[1],SSC,SCART) END; GO TO E2; COMMENT PROGRAM ABORT EXIT. PURGE SCRATCH FILE IF IT EXISTS. ; E1: IF SCRATCH THEN PURGE (DDCB[1],ERROR,DFILE[1],DSC,DCART); WRITE(LU,F21); COMMENT NORMAL PROGRAM EXIT ROUTE. CLOSE ALL FILES WHICH MAY BE OPEN. RELEASE SYSTEM TRACKS. ; E2: CLOSE (DDCB[1],ERROR); CLOSE (SDCB[1],ERROR); EXEC4 (16,TRACKS,STRK,DLU); E99: IF ACTIVE THEN WRITE(LU,F22); & END$ 06ASMB,R,B,L HED ** FIXUM - ALGOL IFIX/FLOAT INTERFACE ** JDR NAM FIXUM,7 DATE 3/31/77 ENT FIX,FLT EXT .ENTR,IFIX,FLOAT SUP SPC 1 * FIXUM PROVIDES AN ALGOL INTERFACE TO THE LIBRARY ROUTINES IFIX * AND FLOAT. SPC 1 * J.D. REED - NEELY PHOENIX - 3/31/77 SPC 1 P1 NOP SPC 1 FIX NOP JSB .ENTR FETCH ADDRESS DEF P1 OF REAL NUMBER. DLD P1,I FETCH REAL, JSB IFIX FIX IT JMP FIX,I AND RETURN. SPC 2 P2 NOP SPC 1 FLT NOP JSB .ENTR FETCH ADDRESS DEF P2 OF INTEGER. LDA P2,I FETCH INTEGER, JSB FLOAT FLOAT IT JMP FLT,I AND RETURN. SPC 1 END ASMB,R,B,L HED ** LTS FUNCTION - LU/TRACK/SECTOR PACH ** JDR NAM LTS,7 DATE 3/15/77 ENT LTS EXT .ENTR SUP SPC 1 * LTS PACKS THE DISC LU, STARTING TRACK AND SECTOR INTO A SINGLE * WORD HAVING THE FOLLOWING FORMAT. * * DISC LU BITS 15 & 14 * TRACK BITS 13 THRU 5 * SECTOR BITS 4 THRU 0 SPC 1 * CALLING SEQUENCE: I = LTS (LU,TRACK,SECTOR) SPC 1 * J. D. REED - NEELY PHOENIX - 3/15/77 SPC 1 LU NOP TRACK NOP SECTR NOP SPC 1 LTS NOP JSB .ENTR FETCH THE DEF LU PARAMETER ADDRESSES. LDA LU,I FETCH THE DISC LU, AND B1 SAVE ONLY THE LSB RAR AND ROTATE IT TO BIT 15. LDB TRACK,I FETCH THE BLF,BLF STARTING TRACK RBR NUMBER AND POSITION IT TO BITS 14-7. IOR B MERGE IT WITH THE DISC LU. IOR SECTR,I MERGE IN THE SECTOR. JMP LTS,I RETURN. SPC 1 B EQU 1 B REGISTER B1 OCT 1 SPC 1 END ASMB,R,B,L,C HED ** MSAUX - SUPPORT ROUTINES FOR SORT ** JDR \T NAM MSAUX,7 DATE 3/14/77 ENT WRSET,SWRIT,RDSET,AREAD EXT .ENTR,EXEC SUP SPC 1 * THESE ROUTINES PROVIDE SUPPORT FOR PROGRAM SORT. SPECIFICALLY IT * TAKES CARE OF PUTTING DATA ON THE SYSTEM TRACKS FOR SORTING * BY MSORT AND RETURNING THE TAGS FROM MSORT AFTER THE SORT. SPC 1 * J. D. REED - NEELY PHOENIX - 3/14/77 SPC 1 HED ** WRSET - INITIALIZATION FOR WRITING ** JDR * CALL WRSET (NREC,FLEN,TRACK,DLU) * * NREC = NUMBER OF RECORDS IN THE FILE * FLEN = RECORD LENGTH IN WORDS (EXCLUDING TAG) * TRACK = STARTING SYSTEM TRACK * DLU = SYSTEM DISC LU SPC 1 NREC NOP FLEN NOP TRAK NOP DLU NOP SPC 1 WRSET NOP JSB .ENTR FETCH THE DEF NREC PARAMETER ADDRESSES. LDA NREC,I SET NREC CMA,INA TO - NUMBER STA NREC OF RECORDS. LDA FLEN,I FETCH, CMA,INA NEGATE AND SAVE STA FLEN THE FIELD LENGTH. LDA TRAK,I FETCH AND SAVE STA TRAK THE STARTING TRACK. LDA DLU,I FETCH AND SAVE STA DLU THE DISC LU. JMP WRSET,I RETURN. HED ** SWRIT - WRITE BUFFER AND TAG TO DISC ** JDR * CALL SWRIT (IBUF,ITAG) * * IBUF = 1ST WORD OF BUFFER * ITAG = RECORD TAG SPC 1 REC NOP TAG NOP SPC 1 SWRIT NOP JSB .ENTR FETCH THE DEF REC PARAMETER ADDRESSES. LDA FLEN INITIALIZE THE STA RCNTR RECORD COUNTER. S.1 LDA REC,I FETCH A WORD JSB OUTWD AND WRITE IT TO THE DISC. ISZ REC BUMP RECORD POINTER. ISZ RCNTR RECORD TRANSFERRED? JMP S.1 NO - LOOP. LDA TAG,I YES - FETCH THE TAG JSB OUTWD AND WRITE IT TO THE DISC. ISZ NREC ALL RECORDS WRITTEN TO DISC? JMP SWRIT,I NO - RETURN. JSB POST YES - POST CURRENT BUFFER. JMP SWRIT,I RETURN. SPC 1 * ROUTINE TO WRITE A WORD TO THE OUTPUT BUFFER. SPC 1 OUTWD NOP STA BUFAD,I PUT THE WORD IN THE BUFFER. ISZ BUFAD BUMP BUFFER POINTER. ISZ BCNTR BUFFER FULL? JMP OUTWD,I NO - RETURN. JSB POST YES - POST IT TO THE DISC. JMP OUTWD,I RETURN. SPC 1 * ROUTINE TO WRITE THE OUTPUT BUFFER TO THE DISC SPC 1 POST NOP LDB BSIZE ANYTHING CPB BCNTR TO WRITE? JMP POST,I NO - RETURN. LDA BSIZE YES - CALCULATE CMA,INA BUFFER LENGTH ADA BCNTR IN WORDS. STA BLEN SAVE BUFFER LENGTH FOR DISC WRITE. STB BCNTR RESET BUFFER COUNTER TO -512. JSB EXEC OUTPUT DEF *+7 DEF D2 THE BUFFER DEF DLU DBUFR DEF BUFR TO THE DEF BLEN DEF TRAK DISC. DEF SECTR LDA DBUFR RESET THE STA BUFAD BUFFER ADDRESS. LDA SECTR BUMP SECTOR ADA D8 ADDRESS STA SECTR BY 8. CPA D96 END OF TRACK? RSS YES - UPDATE TRACK/SECTOR ADDRS. JMP POST,I NO - RETURN. ISZ TRAK INCREMENT TRACK NUMBER CLA AND SET THE STA SECTR SECTOR NUMBER TO ZERO. JMP POST,I RETURN. HED ** RDSET - INITIALIZATION FOR READING ** JDR * CALL RDSET (STRK) * * STRK = STARTING TRACK SPC 1 TRACK NOP SPC 1 RDSET NOP JSB .ENTR FETCH THE DEF TRACK PARAMETER ADDRESS. LDA TRACK,I FETCH AND SAVE STA TRACK THE STARTING TRACK ADDRESS. LDA FLEN RESET FLEN CMA,INA TO POSITIVE STA FLEN RECORD LENGTH. CLA CLEAR STA BCNTR BUFFER COUNTER STA SECTR AND SECTOR COUNTER. JSB INWDS FILL THE BUFFER. JMP RDSET,I RETURN. HED ** AREAD - RETURN A TAG TO USER ** JDR * CALL AREAD (TAG) * * TAG = SORTED RECORD NUMBER SPC 1 STAG NOP SPC 1 AR!EAD NOP JSB .ENTR FETCH THE USER'S DEF STAG TAG ADDRESS. LDA BCNTR CALCULATE ADA FLEN TAG OFFSET STA BCNTR IN BUFFER. LDB BSIZE IS TAG ADB A IN THE SSB PRSENT BUFFER? JMP A.1 YES - CONTINUE AFTER IT. STB BCNTR NO - SAVE NEW OFFSET. JSB INWDS FETCH ANOTHER BUFFER. A.1 LDA BCNTR CALCULATE THE ADA DBUFR TAG ADDRESS. LDA A,I TRANSFER THE STA STAG,I TAG TO USER. ISZ BCNTR BUMP BUFFER OFFSET. JMP AREAD,I RETURN. SPC 1 * ROUTINE TO FILL THE BUFFER FROM THE DISC. SPC 1 INWDS NOP JSB EXEC INPUT DEF *+7 DEF D1 512 WORDS DEF DLU DEF BUFR (8 SECTORS) DEF D512 DEF TRACK INTO THE BUFFER. DEF SECTR LDA SECTR UPDATE THE ADA D8 SECTOR STA SECTR ADDRESS. CPA D96 END OF TRACK? RSS YES - UPDATE TRACK/SECTOR ADDRESS. JMP INWDS,I NO - RETURN. ISZ TRACK BUMP TRACK NUMBER CLA AND RESET THE STA SECTR SECTOR ADDRESS. JMP INWDS,I RETURN. HED ** MSAUX CONSTANTS AND STORAGE ** JDR A EQU 0 A REGISTER SPC 1 BCNTR DEC -512 BLEN NOP BSIZE DEC -512 BUFAD DEF BUFR BUFR BSS 512 SPC 1 D1 DEC 1 D2 DEC 2 D8 DEC 8 D96 DEC 96 D512 DEC 512 SPC 1 RCNTR NOP SPC 1 SECTR NOP SPC 1 END ASMB,R,B,L HED ** MSHED - MSORT SCHEDULER ** JDR NAM MSHED,7 DATE 3/23/77 ENT GTWDS,DOSRT EXT .ENTR,EXEC SUP SPC 1 * MSHED PROVIDES AN ALGOL INTERFACE TO RTE FOR SCHEDULING MSORT * WITH WAIT AND RETRIEVING THE MSORT RETURN PARAMETERS. SPC 1 * J.D. REED - NEELY PHOENIX - 3/23/77 SPC 1 * SCHEDULE MSORT TO RETRIEVE THE NUMBER OF WORDS OF AVAILABLE * MEMORY. SPC 1 * CALL SEQUENCE: * GETWDS (WORDS); * WHERE WORDS = AVAILABLE MSORT WORDS. SPC 1 WORDS NOP SPC 1 GTWDS NOP JSB .ENTR FETCH RETURN DEF WORDS PARAMETER ADDRESS. JSB EXEC SCHEDULE DEF *+4 MSORT DEF D9 WITH WAIT DEF MSORT AND A DEF M1 MINUS 1 1ST. PARAMETER. LDA B,I UPON COMPLETION, FETCH STA WORDS,I THE NUMBER OF WORDS AVAILABLE JMP GTWDS,I AND RETURN IT TO SORT. SPC 1 * SCHEDULE MSORT TO DO THE SORT. SPC 1 * CALL SEQUENCE: * DOSRT (LTS,WDS,OFSET,NRCRD,FLEN,SFLAG,STATS); * WHERE: * LTS = DISC LU, TRACK & SECTOR * WDS = WORDS TO BE READ FROM DISC * OFSET = OFFSET TO FIRST RECORD * NRCRD = NUMBER OF RECORDS TO SORT * FLEN = FIELD LENGHT * SFLAG = RETURN SORT FLAG * STATS = RETURN SORT STATUS SPC 1 LTS NOP WDS NOP OFSET NOP NRCRD NOP FLEN NOP SFLAG NOP STATS NOP SPC 1 DOSRT NOP JSB .ENTR FETCH THE DEF LTS PARAMETER ADDRESSES. JSB EXEC SCHEDULE DEF *+8 DEF D9 MSORT WITH DEF MSORT DEF LTS,I WAIT AND DEF WDS,I DEF OFSET,I PASS THE DEF NRCRD,I DEF FLEN,I SORT PARAMETERS. LDA B,I RETURN THE STA SFLAG,I SORT FLAG INB AND LDA B,I STATUS STA STATS,I PARAMETERS. JMP DOSRT,I RETURN. SPC 1 * CONSTANTS SPC 1 B EQU 1 D9 DEC 9 M1 DEC -1 MSORT ASC 3,MSORT SPC 1 END ASMB,R,B,L HED ** RFIX - ROUTINE TO FIX A REAL FOR SORTING ** JDR NAM RFIX,7 REV. 5/3/77 ENT RFIX EXT .ENTR,.MANT SUP SPC 1 * RFIX TRANSFORMS A TWO WORD REAL NUMBER INTO A FOUR WORD DATA * STRING FOR A INTEGER SORT. SPC 1 * JIM REED - NEELY PHOENIX - 4/5/77 SPC 1 RADDS NOP REAL WORD ADDRESS FADDS NOP DATA ARRAY ADDRESS A.DFG NOP ASCENDING/DESCENDING FLG ADDRESS SPC 1 RFIX NOP JSB .ENTR FETCH THE DEF RADDS PARAMETER ADDRESSES. LDA A.DFG,I FETCH ASCENDING/DESCENDING KEY CLB AND SET FLAG CPA DE TO 0 IF ASCENDING CMB ELSE TO -1 STB A.DFG IF DESCENDING. SPC 1 * BREAK REAL INTO 4 WORDS SO WE CAN DO A WORD COMPARE SORT. SPC 1 LDA RADDS,I FETCH THE SIGN AND MSB. RAL ROTATE THE SIGN BIT AND B1 TO BIT 0, ISOLATE AND COMPLEMENT. SZB,RSS (AS: POS. = 1 / NEG. = 0) XOR B1 (DE: POS. = 0 / NEG. = 1). STA FADDS,I STUFF SIGN INTO BUFFER ISZ FADDS AND INDEX THE BUFFER POINTER. DLD RADDS,I FETCH THE EXPONENT. SWP SWAP REGISTERS AND EXP AND ISOLATE EXPONENT. RAR PUT EXP SIGN IN BIT 15. SSA IF NEGATIVE THEN FILL IOR NEXP IN THE BITS. SSB IF NEGATIVE NUMBER CMA THEN COMPLEMENT EXPONENT. LDB A.DFG IF DESCENDING ORDER SZB THEN TAKE THE CMA,INA THE TWO'S COMPLEMENT. STA FADDS,I STORE THE EXPONENT IN THE USER'S ISZ FADDS BUFFER AND BUMP THE POINTER. DLD RADDS,I EXTRACT JSB .MANT THE MANTISSA. ISZ A.DFG IF DESCENDING JMP *+3 THEN CMA,INA COMPLEMENT CMB,INB IT. DST FADDS,I STORE MANTISSA IN USER'S BUFFER JMP RFIX,I  AND RETURN. SPC 1 * CONTANTS SPC 1 B EQU 1 B REGISTER B1 OCT 1 B377 OCT 377 DE ASC 1,DE EXP OCT 377 HIGH OCT 177400 NEXP OCT 77600 SPC 1 END ASMB,R,L *** LOAD BYTE *** HED LOAD BYTE - MACRA ROUTINE * NAM LDB,7 * EXT .ENTR,.LOAD * ENT LDB * * THIS ROUTINE LOADS A BYTE FROM A SOURCE ARRAY * AND PUTS THE RESULT IN THE LOWER BITS OF THE * A REGISTER. * BASES NOP SOURCE BYTE ARRAY ADDRES INDXS NOP SOURCE BYTE ARRAY INDEX LDB NOP <<< LOAD BYTE ENTRY POINT >>> * JSB .ENTR GO & PICK UP CALLERS ADDRESSES. DEF BASES * LDB INDXS,I THE THE INDEX SSB IF INDEX<0, RETURN. JMP LDB,I LDA BASES GET SOURCE ADDRESS. JSB .LOAD GO AND GET THE BYTE. JMP LDB,I RETURN TO CALLER. * END ASMB,R,L *** STORE BYTE *** * HED STORE BYTE - MACRA ROUTINE NAM STB,7 * EXT .ENTR,.STOR,.CHAR * ENT STB * * THIS ROUTINE STORES A BYTE FROM A SOURCE ARRAY * INTO A SOURCE ARRAY. * BASES NOP SOURCE BYTE ARRAY ADDRESS INDXS NOP SOURCE BYTE ARRAY INDEX IBYTE NOP BYTE TO BE STORED STB NOP <<< STORE BYTE ENTRY POINT >>> * JSB .ENTR GO & PICK-UP CALLERS ADDRESSES. DEF BASES * LDB INDXS,I GET THE INDEX SSB JMP STB,I RETURN ON NEG. INDEX LDA IBYTE,I GET THE BYTE TO BE STORED. AND =B377 ISOLATE. STA .CHAR LDA BASES JSB .STOR GO STORE THE BYTE CLA JMP STB,I RETURN TO CALLER. * B EQU 1 * *...LITERALS... * END ASMB,R,L *** MACRA UTILITY ROUTINE *** HED MACRA UTILITY: LOAD A BYTE * NAM .LOAD,7 * ENT .LOAD,.CHAR * * ENTER: A = BYTE ARRAY ADDRESS * B = BYTE ARRAY INDEX * * RETURN: A = REQUESTED BYT#E IN LOWER BITS * .LOAD NOP CLE,ELA FIND DISPALCED ADB A WORD ADDRESS. CLE,ERB SET HIGH/LOW LOAD FLAG IN E. LDA B,I GET WORD WITH BYTE. SEZ,RSS LOAD HIGH OR LOW? ALF,ALF LOAD FROM HIGH BYTE AND =B377 ISOLATE THE BYTE STA .CHAR JMP .LOAD,I RETURN TO CALLER. * .CHAR NOP A EQU 0 B EQU 1 * *...LITERALS... * END ASMB,R,L *** MACRA UTILITY ROUTINE *** HED MACRA UTILITY: STORE A BYTE * NAM .STOR,7 * EXT .CHAR * ENT .STOR * * ENTER: A = BYTE ARRAY ADDRESS * B = BYTE ARRAY INDEX * .STOR NOP CLE,ELA FIND DISPLACED ADB A WORD ADDRESS. CLE,ERB SET HIGH/LOW LOAD FLAG IN E. LDA B,I GET WORD WITH BYTE. SEZ,RSS LOAD HIGH OR LOW? ALF,ALF STORE TO LOWER BYTE. AND =B177400 ISOLATE. IOR .CHAR MERGE IN OTHER BYTE. SEZ,RSS DO WE RESTORE THE WORD? ALF,ALF STA B,I PUT AWAY IN CALLERS BUFFER. JMP .STOR,I RETURN TO CALLER. * A EQU 0 B EQU 1 * *...LITERALS... * END ASMB,R,B,L HED ** FILE MANAGER ERROR PROCESSOR ** JDR NAM IFMGR,7 ENT IFMGR EXT EXEC,.ENTR SPC 1 * THIS FUNCTION CHECKS FOR FILE MANAGER ERRORS. IF THE ERROR * CODE IS < 0, THE ERROR MESSAGE IS PRINTED ON THE LOCAL TTY. * * IF ID IS >= 0, THE ERROR CODE IS RETURNED AS THE FUNCTION * VALUE. * * IF ID IS < 0 AND THE ERROR CODE IS < 0, THEN THE PROGRAM IS * ABORTED. SPC 1 * FORTRAN USEAGE EXAMPLE: * IF (IFMGR (IERR,ID,LTTY,NAME)100,200 SPC 1 * ASSEMBLY CALL SEQUENCE * JSB IFMGR * DEF *+4 * DEF IERR * DEF ID * DEF LTTY * DEF NAME * ON RETURN A = IERR SPC 1 * WHERE: * IERR = ERROR PARAMETER RETURNED FROM FILE MANAGER CALL. * ID = C,ALL IDENTITY CODE (NEGATIVE TO ABORT IF ERROR EXSISTS) * AS FOLLOWS. * 1 = APOSN * 2 = CLOSE * 3 = CREAT * 4 = FCONT * 5 = FSTAT * 6 = LOCF * 7 = NAMF * 8 = OPEN * 9 = POSNT * 10 = PURGE * 11 = READF * 12 = RWNDF * 13 = WRITF * LTTY = LOGICAL UNIT NUMBER OF DEVICE TO LIST ERROR SPC 2 * PARAMETER ADDRESSES SPC 1 IERR NOP ERROR CODE ID NOP FILE MANAGER CALL ID LTTY NOP LOGICAL UNIT TO OUTPUT ERROR MESS NAME NOP NAME OF FILE FILE MANAGER FILE ADDS. SPC 1 * ENTRY POINT SPC 1 IFMGR NOP JSB .ENTR USE .ENTR TO GET DEF IERR ADDRESSES OF PARAMETERS LDA IERR,I GET ERROR CODE SSA,RSS FILE MANAGER ERROR? JMP IFMGR,I NO, RETURN TO USER SPC 1 * ERROR! CONVERT ERROR TO ASCII AND PUT IT INTO OUTPUT BUFFER SPC 1 MPY M1 MULTIPLY ERROR BY -1 & THEN DIV .10 DIVIDE BY TEN TO GET TENS DIGIT. STA ERROR SAVE TEMPORARILY MPY .10 MULTIPLY BY 10 AND DIVIDE BY DIV .1 1 TO GET TENS VALUE ONLY ADA IERR,I ADD ERROR CODE, RESULT = - UNITS CMA,INA MAKE UNITS POSITIVE LDB ERROR GET TENS DIGIT BLF,BLF ROTATE IT TO HIGH HALF OF WORD IOR B OR IT WITH UNITS IOR ASC00 OR IN ASCII CONSTANT STA ERROR PUT ASCII ERROR CODE IN MESS BUF SPC 1 * ADD CALL ID AND FILE NAME TO BUFFER SPC 1 LDA ID,I GET ID CODE SSA IS IT NEGATIVE? CMA,INA YES - MAKE POSITIVE STA B IS CODE ADB M14 GREATER SSB,RSS THAN 13? CLA YES - OUTPUT $$$$$ FOR ID STA B SAVE ERROR CODE ALS MULTIPLY BY 2 AND ADA B ADD IT TO ITSELF (X3) ADA CALL ADD BUFR STARTING ADDS TO OFFSET  LDB EMES SET POINTER TO STB PNTR ID NAME CLB SET FLAG TO INDICATE NAME STB FLAG BUFFER HAS TO BE TRANSFERRED. NFILE LDB M3 SET COUNTER TO STB CNTR TRANSFER 3 WORDS LOOP LDB A,I GET ID WORD & PUT IT STB PNTR,I IN ERROR MESSAGE BUFFER INA INDEX ID AND ISZ PNTR ERROR MESSAGE POINTERS ISZ CNTR TRANSFER COMPLETE? JMP LOOP NO - TRANSFER NEXT WORD LDB FLAG SZB NAME ARRAY TRANSFERRED? JMP OUT YES - OUTPUT MESSAGE ISZ FLAG NO - SET FLAG TO SAY YES LDA NAME GET ADDRESS OF ARRAY IN A LDB NAMEB PUT OUTPUT BUFFER STB PNTR ADDRESS IN B JMP NFILE TRANSFER FILE NAME SPC 1 * OUTPUT ERROR MESSAGE SPC 1 OUT JSB EXEC DEF *+5 DEF WRITE DEF LTTY,I EMES DEF ERMES DEF M32 SPC 1 * CHECK FOR ABORT PROGRAM SPC 1 LDA IERR,I PUT ERROR CODE IN CASE WE RETURN LDB ID,I GET ID CODE SSB,RSS DO WE ABORT? JMP IFMGR,I NO - RETURN SPC 1 * ABORT PROGRAM SPC 1 JSB EXEC WRITE DEF *+5 "PROGRAM ABORTED!" DEF WRITE ON DEF LTTY,I THE DEF ABORT LOCAL DEF M16 TTY JSB EXEC ASK DEF *+2 RTE TO DEF .6 TERMINATE PROGRAM JMP *-3 JUST IN CASE RTE DOES NOT LISTEN SPC 1 * CONSTANTS, STORAGE ALLOCATION, AND MESSAGES SPC 1 A EQU 0 A REGISTER B EQU 1 B REGISTER SPC 1 * CONSTANTS SPC 1 .1 DEC 1 .6 DEC 6 .10 DEC 10 M1 DEC -1 M3 DEC -3 M14 DEC -14 M16 DEC -16 M32 DEC -32 SPC 1 * MISC. CONSTANTS SPC 1 ASC00 ASC 1,00 WRITE DEC 2 SPC 1 * NOP'S SPC 1 CNTR NOP UTILITY COUNTER FLAG NOP ID/NAME TRANSFER FLAG PNTR NOP W$" TRANSFER POINTER TO MESSAGE BUFFR SPC 1 * FILE MANAGER CALLS SPC 1 CALL DEF *+1 SUP 1 SPC 1 ASC 3,$$$$$ ID1 ASC 3,APOSN ID2 ASC 3,CLOSE ID3 ASC 3,CREAT ID4 ASC 3,FCONT ID5 ASC 3,FSTAT ID6 ASC 3,LOCF ID7 ASC 3,NAMF ID8 ASC 3,OPEN ID9 ASC 3,POSNT ID10 ASC 3,PURGE ID11 ASC 3,READF ID12 ASC 3,RWNDF ID13 ASC 3,WRITF SPC 1 * ERROR MESSAGE SPC 1 ERMES BSS 3 ASC 4,ERROR - ERROR NOP ASC 5, IN FILE NAM. BSS 3 NAMEB DEF NAM. SPC 1 * ABORT PROGRAM MESSAGE SPC 1 ABORT ASC 8,PROGRAM ABORTED! SPC 1 END D $ASMB,R,L,B HED ** ALGOL EXEC CALL INTERFACE ** JDR NAM ALEXI,7 REVISED 8 25 76 ENT EXEC2,EXEC3,EXEC4,EXEC5,EXEC6,EXEC7,EXEC8 ENT ESTAT EXT EXEC,.ENTR SPC 1 * THE END STATEMENT IN AN ALGOL MAIN PROCEDURE AUTOMATICLLY * DECLARES THE EXEC AS AN EXTERNAL WITH A SINGLE INTEGER PARAMETER * CALLING SEQUENCE. THEREFORE, WITHOUT ANY FURTHER DECLARATION OF * TYPES OF EXEC REFERENCES THROUGH CODE PROCEDURES, ANY ATTEMPT TO * DECLARE THE EXEC WITH OTHER THAN ONE INTEGER PARAMETER RESULTS IN * AN ERROR. * ALEXI CIRCUMVENTS THIS PROBLEM BY PROVIDING MULTIPLE CODE-PRO- * CEDURES FOR EXEC CALLS HAVING 2 THRU 8 PARAMETERS. * IN ADDITION THE A-B REGISTER STATUS MAY BE OBTAINED BY FOLLOW- * ING THE EXECX PROCEDURE CALL WITH A CALL TO ESTAT (A,B) BEFORE * THE NEXT EXECX CALL. NOTE: B REGISTER RETURN OPTIONAL. SPC 1 * UPON RETURN FROM EXECX, THE B REGISTER FROM THE EXEC CALL * IS LEFT IN THE "A" REGISTER. THUS IF THE EXEC CALL IS AN * I/O CALL AND THE CALL IS USED AS AN INTEGER FUNCTION, THEN * THE VALUE OF THE FUNCTION IS THE TRANSMISSION LOG. * I.E. LEN := EXEC4 (1,LU,BUFR,40) UPON RETURN LEN = ACTUAL * WORD COUNT RECEIVED. SPC 1 * J.D. REED HAC-TUC 6/11/75 SPC 1 P1 NOP PARAMETER P2 NOP P3 NOP P4 NOP ADDRESS P5 NOP P6 NOP P7 NOP P8 NOP LIST. SPC 1 EXEC0 NOP ENTRY/EXIT POINT FOR ALL. JSB .ENTR FETCH THE PARMS DEF P1 PARAMETER ADDRESSES. CLA INITIALIZE THE PARAMETER. STA CNTR COUNTER AND A LDA EPARM POINTER TO THE EXEC STA PNTR PARAMETER LIST. LDA PARMS FETCH THE PARAMETER LIST. LOOP1 LDB A,I TRANSFER A PARAMETER ADDRESS STB PNTR,I OR A NOP. INA INDEX PARAMETER ISZ PNTR POINTERS. SZB IF A PARAMETER ADDRESS THEN ISZ CNTR BUMP COUNTER. CPA DONE ALL PARAMETERS TRANSFERRED? 7RSS YES - SET UP RETURN ADDRESS. JMP LOOP1 NO - LOOP. LDA EPARM CALCULATE RETURN ADA CNTR ADDRESS FROM EXEC AND STA RTURN STORE IN EXEC CALL. JSB EXEC DO RTURN NOP E1 NOP E2 NOP E3 NOP E4 NOP EXEC E5 NOP E6 NOP E7 NOP E8 NOP CALL STA REGS SAVE A-B STB REGS+1 REGISTER STATUS. LDA PARMS ZERO CLB LOOP2 STB A,I THE INA CPA DONE PARAMETER JMP EXIT JMP LOOP2 LIST. EXIT LDA REGS+1 PUT TRANSMISSION LOG IN "A" JMP EXEC0,I AND RETURN TO CALLER. SPC 1 * EXEC CALL A-B REGISTER STATUS RETURN ROUTINE SPC 1 AREG NOP A REGISTER STATUS RETURN ADDRESS BREG NOP B REGISTER STATUS RETURN ADDRESS SPC 1 ESTAT NOP JSB .ENTR FETCH PARAMETER DEF AREG ADDRESSES. LDA REGS FETCH A-B LDB REGS+1 REGISTER STATUS. STA AREG,I RETURN A REG. STATUS. LDA BREG DOES HE WANT SZA B REG. STATUS? STB BREG,I YES - GIVE IT TO HIM. CLB CLEAR B REG PARAMETER STB BREG ADDRESS FOR NEXT TIME. JMP ESTAT,I RETURN. SPC 1 * CONSTANTS & STORAGE ALLOCATIONS SPC 1 A EQU 0 SPC 1 EXEC2 EQU EXEC0 EXEC3 EQU EXEC0 EXEC4 EQU EXEC0 EXEC5 EQU EXEC0 EXEC6 EQU EXEC0 EXEC7 EQU EXEC0 EXEC8 EQU EXEC0 SPC 1 CNTR NOP SPC 1 DONE DEF EXEC0 SPC 1 EPARM DEF E1 SPC 1 PNTR NOP SPC 1 REGS BSS 2 SPC 1 END ASMB,R,L HED ** FETCH - ALGOL'S RMPAR ** JDR NAM FETCH,7 ENT FETCH SPC 2 * FETCH IS AN ALGOL PROCEDURE TO TRANSFER THE PARAMETERS PASSED * WHEN A PROGRAM IS SCHEDULED BY RTE. * * CALLING PROCEDURE - * PROCEDURE FETCH (A,B,C,D,E); * INTEGER A,B,C,D,E; * CODE; * * WHERE A ѣTHRU E ARE THE FIVE PARAMETERS PASSED BY RTE. * NOTE: IF LESS THAN 5 PARAMETERS ARE REQUIRED, ONLY THE ACTUAL * PARAMETER LIST NEED BE SUPPLIED AND DEFINED IN THE PRO- * CEDURE DECLARATION. SPC 1 * J.D. REED HAC-TEL 1/5/74 SPC 2 FETCH NOP LDA FETCH,I SAVE STA RETRN RETURN ADDRESS LOOP ISZ FETCH INCREMENT POINTER LDA FETCH AND LOAD VALUE. CPA RETRN POINTER = RETURN ADDRESS? JMP RETRN,I YES - RETURN LDA FETCH,I NO - FETCH THE VARIABLE ADDRESS STA ADDRS IN THE USER'S PROG. AND SAVE LDA B,I FETCH RTE PARAMETER & STA ADDRS,I RETURN IT TO USER. INB INDEX RTE PARAMETER POINTER JMP LOOP CHECK FOR ANOTHER PARAMETER SPC 1 B EQU 1 ADDRS NOP RETRN NOP SPC 1 END ASMB,R,B,L,C HED ** MSORT - MEMORY SORT PROGRAM ** JDR NAM MSORT,3,200 DATE 3/11/77 ENT MSORT EXT EXEC,PRTN SUP SPC 1 * MSORT IS A MEMORY BUBBLE SORT PROGRAM WHICH WHEN USED IN CONJUNC- * TION WITH PROGRAM SORT FORMS A DISC SORT UNDER CONTROL OF THE RTE * OPERATING SYSTEM. SPC 1 * MSORT IS SCHEDULED WITH WAIT AND THE FOLLOWING PARAMETERS BY PRO- * GRAM SORT OR ANOTHER SUITABLE PROGRAM. * * PARAMETER DESCRIPTION * 1 DISC LU/TRACK/SECTOR NUMBERS OR -1 * DISC LU LSB IS 15 - TRACK # IS BITS 14 THRU 7 * SECTOR # IS BITS 6 THRU 0. * 2 NUMBER OF WORDS TO BE READ (RECORD LEN * # RECORDS) * + OFFSET TO 1ST RECORD * 3 OFFSET TO 1ST RECORD IN WORDS. * 4 NUMBER OF RECORDS TO BE SORTED. * 5 RECORD LENGTH IN WORDS EXCLUDING TAG SPC 1 * AT TERMINATION MSORT RETURNS THE FOLLOWING PARAMETERS. * * IF SCHEDULE PARAMETER # 1 = -1 THEN NUMBER OF FREE MEMORY WORDS * AVAILABLE TO MSORT FOR SORTING. * * IF SCHEDULE PARAMETER > 0 THEN ONE G OF THE FOLLOWING VALUES * * -2 = DISC ERROR & 2ND PARAMETER = DISC STATUS (EQT 5). * -1 = SCHEDULE PARAMETER # 2 WAS TOO LARGE. * 0 = RECORDS WERE IN SORTED ORDER UPON ENTRY. * >0 = RECORDS SORTED AND REWRITTEN BACK TO SYSTEM TRACKS. * (VALUE = NUMBER OF RECORDS REORERED.) SPC 1 * EXPECTANT SYSTEM DISC FORMAT IS A GROUP OF WORDS FROM A TYPE 2 * FILE RECORD THAT COMPRISE THE SORT KEYS PLUS ONE WORD EQUAL TO * THE RECORD NUMBER (TAG). THE SORT KEYS ARE IN MAJOR TO MINOR * ORDER. EACH GROUP OF WORDS AND TAG MAKE UP A NEW GROUP OF RECORDS * WHICH ARE CONTINUOUS IN A SET OF GLOBALE SYSTEM TRACKS. SPC 1 * IT IS THE RESPONSIBILITY OF PROGRAM SORT OR A SIMILAR PROGRAM TO * ALLOCATE SYSTEM TRACKS, FORMAT THE SYSTEM TRACKS, SCHEDULE MSORT * WITH THE PROPER PARAMETERS UNTIL A SORT IS ACHIEVED, RETRIEVED THE * TAGS FROM SYSTEM TRACKS, REWRITE THE ORIGINAL FILE AND FINALLY TO * RELEASE THE TRACKS. SPC 1 * NOTE: FOR RTE III LOAD MSORT INTO THE LARGEST PARTITION AND GIVE * IT THE WHOLE PARTITION. THE MORE MEMORY MSORT HAS TO WORK * WITH THE FASTER THE SORT. * * LIBRARY ROUTINE PRTN MUST BE MEMORY RESIDENT OR LOADED * BEFORE MSORT AS MSORT USES ALL MEMORY FOLLOWING ITS OWN * ENTRY POINT (MSORT). SPC 1 * J.D. REED - NEELY PHOENIX - 3/11/77 HED ** MSORT - SORT SECTION ** JDR * READ INTO MEMORY THE RECORDS THAT ARE TO BE SORTED SPC 1 START JSB DRD.W FETCH THE STUFF TO BE SORTED. SPC 1 * THE ACTUAL SORT IS DONE HERE. SPC 1 SORT ISZ NRCRD NEED TO MAKE ANOTHER PASS? RSS YES - LETS DO IT AGAIN SAM. JMP DONE NO - CLEAN UP AND TERMINATE. LDA NRCRD YES - INITIALIZE RECORD COUNTER STA CNTR FOR THIS PASS. CLA CLEAR THE STA DFLAG DONE FLAG. S.0 CXA COMPARE CYB THE NEXT CMW RLEN TWO RECORDS. NOP RECORDS ARE w-IN JMP S.1 PROPER ORDER. ISZ DFLAG SET THE NOT DONE FLAG. CXA MOVE THE HEAVY LDB TBUFR RECORD INTO THE MVW TLEN TEMPORARY BUFFER. CYA FLOAT THE LIGHT CXB RECORD UP MVW TLEN ONE RECORD. LDA TBUFR NOW DROP THE CYB HEAVY RECORD MVW TLEN DOWN ONE S.1 ISZ CNTR ALL RECORDS CHECKED THIS PASS? RSS NO - PROCESS NEXT SET. JMP S.2 YES - SEE IF WE ARE SORTED. ADX TLEN UPDATE THE ADY TLEN RECORD POINTERS AND JMP S.0 SORT THE NEXT PAIR. S.2 LDA DFLAG WERE ALL RECORDS SZA,RSS IN SORTED ORDER? JMP DONE YES - WRITE RECORDS BACK TO DISC. LDX FADD NO - REINITIALIZE THE INDEX LDY SADD REGISTERS (RECORD POINTERS). ISZ SFLAG INCREMENT SORT FLAG/COUNTER. JMP SORT DO ANOTHER SORT PASS. SPC 1 * NORMAL TERMINATION - REWRITE THE RECORDS IF NECESSARY SPC 1 DONE LDA SFLAG FETCH THE SORT FLAG. SZA,RSS WERE ANY RECORDS EXCHANGED? JMP EXIT NO - NO SENSE IN REWRITING. ISZ D1OR2 YES - MAKE READ A WRITE AND LDA SECTR RESET THE STA RQSTR SECTOR, LDA TRACK TRACK, STA RQTAK TOTAL LDA TWDS WORDS STA RMWDS TRANSFER LDA MBUFR AND BUFFER STA BPNTR ADDRESS POINTERS. JSB DRD.W REWRITE IT ALL BACK TO THE DISC. JMP EXIT RETURN. SPC 1 * ERROR EXITS SPC 1 DERR SSA,RSS PUT PROPER DISC RAL STATUS WORD INTO STA STATS SECOND RETURN PARAMETER. LDA M2 FETCH DISC ERROR FOR 1ST JMP E.1 PARAMETER. ERREX STB STATS STORE ACTUAL WORD COUNT IN 2ND LDA M1 PARAMETER AND WORD COUNT ERROR E.1 STA SFLAG IN FIRST PARAMETER. SPC 1 * EXIT - TERMINATION SECTION SPC 1 EXIT JSB PRTN RETURN THEd DEF *+2 SORT FLAG AND DEF SFLAG STATUS PARAMETERS. JSB EXEC TERMINATE DEF *+2 THE DEF D6 PROGRAM. SPC 1 * DISC READ/WRITE ROUTINE SPC 1 DRD.W NOP LDA RQSTR FETCH THE STARTING CMA,INA SECTOR AND CALCULATE ADA SRPTK THE REMAINING SECTORS. MPY D64 SECTORS X 64 = WRDS THIS TRACK. SWP STB WDPT SAVE WORDS/TRACK. CMB,INB REMAINING WORDS - WDS/TRACK = ADB RMWDS WORDS THIS REQUEST. LDA RMWDS PREPARE TO USE REMAINING WORDS. SSB,RSS CROSSING A TRACK BOUNDARY? LDA WDPT YES - ONLY READ TO END OF TRACK! STA RQWDS SAVE FINAL XFER WDS REQUEST STB RMWDS AND NEW REMAINDER. JSB EXEC MAKE DEF *+7 DEF D1OR2 I/O CALL DEF DISC BPNTR DEF MSORT TO EXEC DEF RQWDS DEF RQTAK FOR TRANSFER. DEF RQSTR SLA,RAL DISC ERROR? JMP DERR YES - TAKE ERROR EXIT. SSA DISC DOWN? JMP DERR YES-HOW IN HELL DID WE GET HERE? CPB RQWDS DID WE XFER WHAT WE ASKED? RSS YEP - KEEP A TRUCKING. JMP ERREX NO - WELL THAT ENDS THAT! LDA RMWDS FETCH REMAINING WORDS. SSA NEGATIVE? JMP DRD.W,I YES - XFER COMPLETE. SZA,RSS NO - MAYBE IT IS ZERO? JMP DRD.W,I YES - WE ARE DONE ANYWAY. ISZ RQTAK NOT DONE - INCREMENT DISC TRACK CLA NEXT SECTOR WILL ALWAYS STA RQSTR BE ZERO. LDA RQWDS AND BUMP ADA BPNTR MEMORY BUFFER STA BPNTR POINTER. JMP DRD.W+1 DO ANOTHER TRANSFER. HED ** MSORT - PERAMENT CONSTANTS & STORAGE ** JDR CNTR NOP SORT PASS RECORD COUNTER SPC 1 D1OR2 DEC 1 DECIMAL 1 OR 2 D6 DEC 6 D64 DEC 64 DFLAG NOP PASS SORT FLAG DISC DEC 2 DISC READ/WRITE EXEC CNTL WORD SPC 1 FADD NOP FIRST RECORD ADDRESS SPC 1 M1 DEC -1 M2 DEC -2 MBUFR DEF MSORT FWAM FOR RECORDS SPC 1 NRCRD NOP NEGATIVE RECORD COUNT SPC 1 RLEN NOP RECORD SORT LENGTH RMWDS NOP REMAINING WORDS TO BE XFERR'ED RQSTR NOP REQUEST SECTOR RQTAK NOP REQUEST TRACK RQWDS NOP REQUEST LENGTH IN WORDS SPC 1 SADD NOP SECOND RECORD ADDRESS SECTR NOP STARTING DISC SECTOR SFLAG NOP FINAL SORT FLAG (1ST RTN PARMTR) STATS NOP SORT STATUS (2ND. RTN PARMTR) SPC 1 SRPTK DEC 96 SECTORS PER TRACK TLEN NOP TOTAL RECORD LENGTH TRACK NOP STARTING DISC TRACK NUMBER. TWDS NOP TOTAL DISC READ WRITE WORDS SPC 1 TBUF BSS 66 TEMPORARY BUFFER TBUFR DEF TBUF TEMPORARY BUFFER ADDRESS SPC 1 WDPT NOP WORDS PER TRACK HED ** MSORT INITIALIZATION SECTION ** JDR * THE FOLLOWING CODE IS OVERLAYED DURING THE SORTING PROCESS. SPC 1 * PROGRAM EXECUTION BEGINS HERE. SPC 1 MSORT NOP LDA B,I FETCH 1ST PARAMETER. CPA M1 SORT OR AVAILABLE SIZE REQUEST? JMP C.1 AVAILABLE MEMORY CALCULATION. SPC 1 * INITIALIZE SORT PARAMETERS SPC 1 AND B177 SAVE THE STA RQSTR STARTING STA SECTR SECTOR. LDA B,I FETCH LU,TRACK & SECTOR PARA- ALF,ALF METER, ISOLATE RAL STARTING TRACK AND B377 NUMBER AND STA TRACK SAVE STA RQTAK IT. LDA B,I FETCH IT ONE RAL MORE TIME, ISOLATE AND B1 THE DISC LU LSB ADA DISC AND CALCULATE STA DISC THE DISC LU. INB FETCH THE SECOND PARAMETER LDA B,I AND SAVE TOTAL NUMBER STA TWDS OF WORDS TO BE STA RMWDS READ INTO MEMORY. INB INDEX TO THE 3RD PARAMETER, P0.*LDA B,I FETCH THE OFFSET ADA MBUFR AND INITIALIZE THE STA FADD 1ST RECORD POINTER. INB INDEX TO PARAMETER 4, LDA B,I FETCH IT, CMA,INA NEGATE AND STA NRCRD SAVE NUMBER OF RECORDS TO SORT. INB FETCH THE LDA B,I 5TH PARAMETER AND STA RLEN SAVE THE SORT RECORD LENGTH. INA ADD 1 SO AS TO INCLUDE THE TAG STA TLEN WORD AND SAVE AS TOTAL RECORD LEN. ADA FADD CALCULATE AND SAVE STA SADD THE SECOND RECORD ADDRESS. CAY PUT 2ND RECORD INDEX INTO Y. LDX FADD PUT 1ST RECORD ADDRESS INX. JSB EXEC INFORM RTE DEF *+3 THAT THE ENTIRE DEF D22 DISC RESIDENT AREA DEF D3 IS TO BE SWAPPED. JMP START START THE SORT. SPC 1 * RTE II/III AVAILABLE MEMORY CALCULATION SPC 1 C.1 LDA MBUFR SUBTRACT CMA,INA 1ST WORD OF ADA BKLWA AVAILABLE MEMORY FROM STA SFLAG LAST WORD AND SAVE RESULTS IN JMP EXIT 1ST. RETURN PARAMETER. EXIT. SPC 1 * TEMPORARY CONSTANTS SPC 1 B EQU 1 B REGISTER B1 OCT 1 B177 OCT 177 B377 OCT 377 BKLWA EQU 1777B LWA OF MEMORY IN BACKGROUND SPC 1 D3 DEC 3 D22 DEC 22 END MSORT "s0 # 22682-18068 1721 SC 0422 HP 2644/2645 BCS DRIVER D.05             H0104 /ASMB,R,L,C HED ** 264X BCS DRIVER ** NAM D.05 * * 23MAY77 * ENT D.05,I.05 ENT OPATN SUP * * INPUT/OUTPUT INTERFACE * ---------------------- * * D.05 WILL COMMUNICATE WITH THE HP 264X VIA THE 12966 BUFFERED * ASYNCHRONOUS DATA COMMUNICATION INTERFACE CARD. COMMUNICATION * FROM THE 264X KEYBOARD MAY BE IN EITHER CHARACTER OR BLOCK * MODE. THE TERMINAL CAN BE USED WITH "LINE STRAPPING", * OR "PAGE STRAPPING" AND HENCE A SINGLE LINE OR THE * ENTIRE DISPLAY MEMORY CAN BE TRANSMITTED AFTER BEING ENABLED * * * MAJOR FUNCTIONS * --------------- * * D.05 PROVIDES THE FOLLOWING MAJOR FUNCTIONS: * * 1. I/O CONTROL OF CTU,CRT,AND TERMINAL PRINTER * 2. READ OR WRITE REQUEST TO CTU WITH BINARY OR ASCII DATA. * 3. READ OR WRITE REQUEST TO KEYBOARD AND DISPLAY. * 4. STATUS REQUEST TO CTU AND KEYBOARD. * 5. WRITE REQUEST TO TERMINAL PRINTER * * * CTU CONTROL REQUEST * ------------------- * * (CONTROL SPECIFIC CTU, OR PRINTER AS SELECTED BY * SUB CHANNEL NUMBER) * * FUNCTION : * * 0 : CLEAR * 1 : READ * 2 : WRITE * * SUBFUNCTION : * BIT 8 BIT 6 * ----- ----- * 0: NO 0: ASCII * 1: ECHO 1: BINARY * * 3 : TAPE CONTROL * * SUBFUNCTION : * 0 : DYNAMIC STATUS * 1 : WRITE EOF * 2 : BACKSPACE ONE RECORD * 3 : FORWARD SPACE ONE RECORD * 4 : REWIND * 5 : BACKSPACE ONE FILE * 6 : FORWARD SPACE ONE FILE * 7 : WRITE EOV (END OF VALID DATA) * * * *NOTES ON CTU CONTROL REQUEST * * * A. A REWIND, BACKSPACE RECORD, OR BACKSPACE FILE WILL PERFORM * NO ACTION IF THE TAPE UNIT IS AT LOAD POINT. THIS CONDITION * WILL BE SET IN THE STATUS WORD (BIT 6 SET). * B. IF THE END-OF-TAPE MARK IS SENSED DURING A WRITE OPERATION, * AN END OF VALID DATA MARK WILL BE RECORDED AUTOMATICALLY. IF * A WRITE REQUEST WAS BEING PROCESSED, THE CURRENT RECORD WILL * BE RECORDED. IF A READ REQUEST WAS IN PROCESS THE CURRENT * RECORD WILL BE READ. THIS CONDITION WILL BE SET IN THE STATUS * WORD. * C. FOR FILE MOTION COMMANDS THE TAPE IS POSITIONED AFTER THE * FILE MARK. * D. READ REQUESTS WILL BE REJECTED IF THE TAPE IS AT EOV. THE * EOV MAY BE OVERWRITTEN WITH DATA OR A FILE MARK UNLESS THE * TAPE IS AT END-OF-TAPE. * E. DYNAMIC STATUS RETURNS THE STATUS IN EQT2 AND CAN * BE RETRIVED BY CALLING IOC WITH THE REGULAR STATUS CALL * SKP * * ASCII INPUT FROM KEYBOARD CHARACTER MODE * ---------------------------------------- * * THE DRIVER DETECTS WHETHER A CHARACTER MODE OR BLOCK MODE REQUES * WILL FOLLOW BY EXAMINING THE FIRST CHARACTER. IF IT IS A DC2 * THEN THE DRIVER ASSUMES THE ENTER KEY HAS BEEN PRESSED AND A * BLOCK TRANSMISSION IS PENDING. THE DRIVER RESPONDS WITH A DC1 T * TRIGGER THE BLOCK TRANSFERS. IF THE FIRST CHARACTER IS NOT A DC * THEN THE DRIVER ASSUMES A CHARACTER TRANSFER IS PENDING. * IN CHARACTER MODE THE TERMINAL TRANSMITS A CHARACTER AT A TIME A * THE KEY IS DEPRESSED. THE RECORD TERMINATION IS A CR OR RS. TH * DRIVER ECHOS A LF. * A RECORD TERMINATOR MUST BE ENTERED TO COMPLETE REQUEST, EVEN IF * USERS BUFFER IS FULL. TRANSMISSION LOG IS RETURNED IN B REG. * * ASCII INPUT FROM KEYBOARD BLOCK MODE * ------------------------------------ * * IN BLOCK MODE THE TERMINAL TRANSMITS EITHER A LINE AT A TIME (LI * STRAPPING) ON A PAGE (PAGE STRAPPING). THE DRIVER DETERMINES TY * OF STRAPPING BY A TERMINAL STATUS REQUEST. * A. LINE STRAPPING * THE TERMINATOR IS A CR WHICH IS NOT PASSED TO USER'S * BUFFER. IMBP+EDDED RS'S ARE NOT PASSED. * B. PAGE STRAPPING * THE TERMINATOR IS A RS WHICH IS NOT PASSED TO USER'S BUFFER. TH * LINE SEPARATORS CR, LF ARE PASSED TO USER'S BUFFER. * C. A "US"OR "RS" IS NEVER PASSED TO BUFFER * D. BLOCK READS ARE OF 2 TYPES: * 1. TERMINAL ENABLED (ENTER PRESSED) * 2. USER ENABLED ("ESC" SMALL "D" SENT) SKP * * CTU STATUS REQUEST (RETURNED IN EQT2) * ------------------ * * BIT * * 7 -END OF FILE SENSED. A FILE MARK HAS BEEN DETECTED DURING A PRIO * READ OPERATION OR A FILE MARK HAS JUST BEEN RECORDED. * 6 -LOAD POINT SENSED. CARTRIDGE TAPE IS AT OR BEFORE LOAD * POINT MARKER. MEANINFUL ONLY IF CARTRIDGE IS INSERTED. * 5 -END OF TAPE SENSED. THE CARTRIDGE TAPE HAS PASED OVER EARLY * WARNING MARKER IN THE TAPE AND AN END-OF-VALID DATA MARK HAS BEE * RECORDED AUTOMATICALLY. COMMANDS DIRECTING FORWARD MOTION OF TA * WILL BE REJECTED. THIS STATUS ONLY HAS MEANING IF A CARTRIDGE I * INSERTED. * 4 -READ\WRITE ERROR * A READ ERROR EXISTS IF THREE SUCCESSIVE ATTEMPTS FAILED TO READ * THE DATA IN THE RECORD. THE TAPE IS POSITIONED AFTER THE BAD * RECORD. * 3 -LAST COMMAND ABORTED. THE LAST COMMAND INITIATED FROM THE CPU O * KEYBOARD WAS UNSUCCESSFULLY PERFORMED. OTHER STATUS CONDITIONS * MAY BE CHECKED FOR CAUSE. * 2 -WRITE PROTECTED. THE FILE PROTECT TAB ON THE CARTRIDGE IS IN TH * POSITION TO PROHIBIT RECORDING OF DATA. THIS STATUS ONLY HAS * MEANING IF A CARTRIDGE IS INSERTED AND A RECORDING OPERATION HAS * BEEN ATTEMPTED. * 1 -END OF VALID DATA. THE CARTRIDGE TAPE DETECTED AN END-OF-VALID * DATA MARK DURING A PRIOR READ OR SEARCH OPERATION OR HAS JUST * COMPLETED RECORDING AN END-OF VALID DATA MARK. IN EITHER CASE, * THE TAPE IS POSITIONED BEFORE THE END-OF VALID DATA MARK. RECOR * OPERATIONS MAY BE EXECUTED TO OVERWRITE THIS MARK WITH DATA : * OR A FILE MARK, UNLESS THE TAPE IS AT END OF TAPE. * 0 -CARTRIDGE NOT INSERTED OR UNIT BUSY. * HED ** INITIATOR SECTION ** * * ON ENTRY TO DRIVER : * * (A) - ADDRESS OF EQT ENTRY * (B) - ADDRESS OF I/O REQUEST * D.05 NOP STA EQT SAVE EQT ADDRESS STA EQT1 INA STA EQT2 INA STA EQT3 STB REQ SAVE ADDRESS OF I/O REQUEST * LDA B,I STA CONWD ADB B2 LDA B,I * SSA,RSS GET EFFECTIVE ADDRESS OF BUFFER JMP *+4 ELA,CLE,ERA LDA 0,I JMP *-4 STA BUFAD * INB LDA B,I STA LENTH STA LINCT * * ADJUST REQUEST CODE AND 'CONWD' * LDA CONWD AND =B37700 ISOLATE SUB FUNCTIONS STA B LDA CONWD ALF AND =B17 ISOLATE FUNCTION STA REQCD SAVE REQUEST CODE IOR B STA CONWD MAKE 'CONWD' COMPATIBLE WITH 'BCS' * LDA EQT2,I IOR =B100000 STA EQT2,I SET DRIVER BUSY * LDA EQT1,I AND =B77 JSB SETIO CONFIGURE IO * CLB STB TEMP5 CLEAR INTERRUPT FLAG STB RLEN INITIALIZE RECORD LENGTH POINTER NOP <> SFS01 SFS CARD IF FLAG SET THEN POWER FAIL JMP D.055 FLAG NOT SET * JSB XMIT SET UP TO CLR INTERRUPT LDA BN5 CLR ALL CARD INTERRUPTS D.053 JSB OUT2 (0-377) CPA BN7 IS THIS ALL? JMP D.055 YES! FINISHED INA JMP D.053 DO IT AGAIN * D.055 LDA STRAP FOR BINARY CTU READ AND BN1 CLR SELECTED BITS STA STRAP BIT 0 (0\1=TERM.STAT. READ NO\YES) * LDA =D-40 INIT. CHAR. COUNT FOR ENAK STA SHAKE COUNT JMP D.051 * * BN1 OCT 100027 BN2 OCT 177737 BN4 OCT 10000 BN7 OCT 60377 B11 OCT 11 BN5 OCT 60000 * * * D.051 JSB CDINT LDA REQCD gfGET REQUEST TYPE SZA,RSS JMP CLEAR ALL CLEAR REQUESTS GO HERE * SWH1A NOP SWITCH (CRT OR CTU,LP) VIA 'RSS OR NOP' JMP I.251 YES! A CTU OR LP REQUEST * RAR THIS IS A CRT REQUEST SSA,SLA JMP I.25C THIS IS A CONTROL REQUEST. SSA,RSS JMP D.05W THIS IS A WRITE REQUEST JMP D.05R THIS IS A READ REQUEST * * CLEAR * CLEAR NOP LDA EQT2,I ELA,CLE,ERA STA EQT2,I JSB EXIT1 HED ** CONTINUATOR SECTION ** ****************************************************************** * SUBROUTINE INITIALIZES THE COMPLETION SECTION * * FOR ALL COMPLETION INTERRUPTS. * * ****************************************************************** * * I.05 NOP JSB OFF TURN OFF INTERRUPTS AND NOP SAVE REGISTERS ISZ TEMP5 SET CONT. FLAG CLC01 CLC CARD GET CARD STATUS LIA01 LIA CARD STA TEM12 STORE CARD STATUS AND B40 CHECK FOR BUFFER OVERFLOW SZA HAS IT OVER FLOWED? JMP EOOP9 YES,ERROR EXIT (B=3,XMISSON ERROR) LDB INTAD GET INTERRUPT ADDRESS LDA EQT2,I SSA JMP B,I REQUEST IN PROGRESS * * UNEXPECTED INTERRUPT * CLC04 NOP CLA,INA STA OPATN JMP DONE * LF OCT 12 B37 OCT 37 B20 OCT 20 B21 OCT 21 B22 OCT 22 B2 OCT 2 B.3 OCT 177775 B200 OCT 200 B17 OCT 17 B70 OCT 70 B33 OCT 33 B164 OCT 164 * OPATN NOP 'FLAG' FOR OPERATOR REQUEST SKP ************** FOR READ\WRITE **************** * * CONWD FOR READ\WRITE OPERATIONS IS: * * BIT MEANING * * 6 0\1 IS ASCII\BINARY * * 8 0\1 IS OFF\ON ECHO * ********************************************** * * D.05W CLB,RSS SETUP 'BADD' (RUNNING CHAR. ADD.) AND I05W1 NOpP 'LSTAD' (LAST CHAR. ADD.) LDA BUFAD GET BUFFER STARTING ADDRESS RAL,CLE MULTIPLY S.A. BY TWO STA BADD LDA LENTH GET BUFFER LENGTH CMA,SSA,INA,RSS COMPLEMENT,ARE THEY CHAR.? JMP I.W1 YES! CMA,INA MAKE POS AGAIN RAL MULTIPLY WORDS X 2 AND * I.W1 ADA BADD STA LSTAD STORE LAST CHAR. ADD. AT LSTAD CMA,INA MAKE LAST CHAR. ADD. NEG. ADA BADD - NO. OF CHAR. ARE NOW IN A REG. SZB JMP I05W1,I SZA,RSS IS IT 0 ? JMP I.W32 YES! IT IS ZERO * JSB TRAN1 GOTO OUTPUT SUBROUTINE * I.W32 JSB EORP END-OR-RECORD PROCESSING JSB ENAK JMP EOOP2 ABOVE NEEDED FOR INTERRUPT SKP ************************************************** * WRITES TO THE DISPLAY,CTU AND PRINTER. * * STARTING ADDRESS OF DATA IS 'BADD' * * "TEMP1" COUNTS THE NUMBER OF CHAR. IN ONE * * TRANSMISSION AND IS USED TO LIMIT THE TIME * * IN THE DRIVER FOR A SINGLE INTERRUPT. * * IF BUFFER IS NOT EMPTIED IN 1 CALL TO WE* * WILL WAIT FOR A BUFFER EMPTY INTERRUPT AND * * COMPLETE THE TRANSMISSION. * ************************************************** * * TRAN1 NOP JSB XMIT SET CARD FOR XMIT TRAN4 LDB BN2 SET FOR 33 CHAR.MAX STB TEMP1 IN ONE TRANSMISSION * TRAN2 LDB BADD GET BUFFER ADDRESS X 2 CLE,ERB DIVIDE BY TWO TO GET TRUE ADD. * LDA B,I GET WORD SEZ,RSS DO WE WANT UPPER OR LOWER CHAR.? ALF,ALF UPPER! SHIFT TO LOWER AND B377 LOWER! MASK WORD * SWH1B NOP SWITCH (CRT OR CTU,LP) VIA 'RSS OR NOP' JMP TRAN3 YES! IGNORE BELOW CHECKS * * LDB FILL DO NOT SEND "ESC" TO CRT ON SZB BINARY WRITE. JMP ON1 CPA ESC IS THIS AN ESCAPE? JMP OUT6B * ON1 CLB,IN:B SET B REG TO 1 ADB BADD ADD 1 TO BADD CPB LSTAD IS THIS THE LAST WORD? RSS JMP OUT6 NO! CONTINUE CPA B137 IS THIS A "_" UNDERSCORE? JMP EOOP8 YES! GO TO END OF OUTPUT PROCESSING JMP OUT6 * TRAN3 LDB FILL IS THIS BINARY? SZB,RSS JMP OUT6 THIS IS BINARY,OUTPUT CHARACTER CPA CR IS IT A ? RSS CPA LF IS IT A LINEFEED? RSS IT IS A CPA RS IS IT A JMP TRAN5 YES,TERMINATE ON OROR * OUT6 JSB OUT1 OUTPUT CHAR. TO CARD.CHAR. OUT6B ISZ BADD INCREMENT CHAR. COUNT LDB BADD GET CURRENT CHAR. ADD.R CPB LSTAD HAVE WE SENT LAST WORD? JMP TRAN5 THIS IS THE LAST CHARACTER ISZ TEMP1 INCREMENT CHAR. COUNT. JMP TRAN2 WE HAVE NOT SENT 33 CHAR. JSB EXIT1 WE HAVE SENT 33 CHAR. JMP TRAN4 NOW THAT CARD BUFFER IS EMPTY,RESTART TRAN5 JMP TRAN1,I * SKP *************************************************** * DOES KEYBOARD READ. IF FIRST CHARACTER * * A "DC2" THE DRIVER EXPECTS A BLOCK TRANSFER AND * * WILL SEND A DC1 TO TRIGGER IT. IF THE FIRST * * CHAR. IS NOT A "DC2" THE DRIVER ASSUMES A CHAR. * * TRANSFER. *************************************************** * * D.05R CLB,INB JSB I05W1 GO SETUP BADD AND LSTAD JSB TERST GO CHECK TERMINAL STATUS LDA CONWD CHECK IF ECHO SET AND B400 ISOLATE BIT 8 (SET ECHO) RAR,RAR MOVE TO BIT 4 RAR,RAR JSB ECHO SET/CLR = 20/0 ECHO JSB SPCH1 SET CR AND RS INT. LDB BN9 SET RUBOUT INT. JSB CDSET LDB BN40 SET CONTROL "D" INT. JSB CDSET LDA CONWD CHECK FOR USER ENABLED BLOCK READ AND B3000 BITS 9,10 WILL BE SET CPA B3000 JMP C05R3 THIS IS ENABLED BLOCK READ JSB DC1OT ENABLE TRANSFER CLB,INB JSB CDSET SET CARD FOR RECEIVE,CHAR.MODE JSB EXIT1 WAIT FOR INTERRUPT * JSB CHRIN GET CHARACTER CPA B22 IS IT A DC2? JMP C05R3 FIRST CHAR. IS A DC2 SKP * *******THIS IS A CHARACTER TRANSFER********* * * CLB LDA FILL IF BINARY KEYBOARD SET FOR CHAR. REC. SZA,RSS INB IT IS BINARY KEYBOARD JSB CDSET SET BLOCK OR CHAR RECEIVE (B=0\1) LDB BN2 SET CHAR. PROCESS COUNT. FOR 33 CHAR. STB TEM19 FOR ONE INTERRUPT. JMP CHPR8 * * CLRNT NOP LDB BN56 CLR. RUBOUT INT. JSB CDSET LDB B412 CLR. CONTROL "D" INT. JSB CDSET JMP CLRNT,I * B6 OCT 6 RS OCT 36 B377 OCT 377 B137 OCT 137 CR OCT 15 BN9 OCT 57712 BN10 OCT 40000 BN11 OCT 43612 BN12 OCT 41512 BN13 OCT 140000 BN40 OCT 40412 B177 OCT 177 B4 OCT 4 B3000 OCT 3000 B1512 OCT 1512 B3612 OCT 3612 BN56 OCT 17712 B412 OCT 412 SKP * ***********THIS IS A BLOCK TRANSFER********* * * C05R3 LDA STRAP THIS IS A BLOCK TRANSFER IOR BN10 SET BIT 14 =0/1 CHAR/BLK STA STRAP RESTORE SSA IS TERMINAL LINE STRAPPED? JMP C05R4 NO! IT IS PAGE STRAPPED * LDA CONWD CHECK FOR USER ENABLED BLOCK READ AND B3000 CPA B3000 JMP C05R5 LDA TEMP9 GET STATUS WORD ALF,ALF IS BUFFER EMPTY? SSA IF SO A "CR" WILL BE COMING JSB EXIT1 JSB CHRIN GET THE "CR" WHICH FOLLOWS JMP C05R5 THE DC2 FOR LINE STRAP ONLY * C05R4 LDB B1512 REMOVE CR INT. FOR PAGE (RS ONLY) JSB CDSET STRAP AND BLOCK MODE JMP C05R6 * * * C05R8 LDB CHPC2 STB INTAD SAVE RETURN ADDRESS LDB FILL IF BINARY CLR ALL INTERRUPTS LDA BN20 IF ASCII DO NOT CLR SPEC. CHAR. INTERRUPT SZB LDA BN30 DO NOT CLR. SPEC. CHAR. INT. JSB OUT2 JMP STC04 * * C05R5 LDB B3612 REMOVE "RS" INT. ("CR" ONLY FOR LINE) JSB CDSET FOR ASCII CTU, LINE STRAP AND BLOCK * C05R6 JSB CLRNT CLA JSB ECHO TURN OFF ECHO JSB DC1OT TRIGGER TRANSFER C05R7 JSB EXIT1 AND WAIT FOR INTERRUPT * SKP ********************************************** * PROCESSES DATA ON KEYBOARD AND CTU * * READ REQUESTS. "TEM19" COUNTS THE NUMBER * * OF CHARACTERS WE HAVE PROCESSED AND IS USED* * TO LIMIT THE TIME WE ARE IN THE DRIVER. * * FOR ASCII READS THE EOR IS DETECTED BY * * LOOKING FOR THE SPECIAL CHAR. BIT SET ON * * THE 12966 CARD. * * FOR BINARY EOR IS DETECTED BY THE CHAR. * * COUNT READ FROM THE TAPE. * ********************************************** * CHPRC LDA BN2 SET CHARACTER PROCESS. COUNT TO -33 STA TEM19 CHPCC JSB CHRIN GET CHARACTER CHPR8 LDB FILL SZB,RSS IS THIS BINARY? JMP CHPR9 YES,THIS IS BINARY * ********THIS IS ASCII******* * LDA TEM14 GET DATA WORD AND BN10 ISOLATE SPEC. CHAR. BIT SZA,RSS IS IT SPECIAL? JMP CHPR2 NO * SWH1C NOP SWITCH (CRT OR CTU,LP) VIA 'RSS OR NOP' JMP EOOP5 THIS IS CTU ASCII TRANSFER LDA STRAP GET TERMINAL STATUS AND BN13 ISOLATE PAGE(15) AND BLK(14) CPA BN13 ARE THEY BOTH SET? JMP EOOP2 YES,TERMINATE REQUEST LDA TEMP8 GET CHARACTER CPA B177 IS IT A RUBOUT? JMP RUB01 YES! GO PROCESS RUBOUT CPA B4 IS IT A CONTROL "D" (SET EOT) JMP CNTLD YES! GO SET EOT CHP9 JSB EORP FOR CHAR. OR LINE STRAP BLK REQUES JMP EOOP1 FIRST SEND * CHPR2 LDA STRAP SWH1D NOP SWITCH (CRT OR CTU,LP) VIA 'RSS OR NOP' JMP CHPR9 THIS IS A CTU ASCII READ AN,^<:6D BN10 ISOLATE CHAR\BLK BIT SZA IS IT BLOCK MODE? JMP CHPRA YES! SKIP BELOW CHECKS * LDA TEMP8 GET CHARACTER JMP LINFD CHAR. TRANSFER AND NOT HONEST SKP ******************************************** * IS CALLED IF RUBOUT INTERRUPT IS * * DETECTED. IT DELETES THE CURRENT RECORD * * AND OUTPUTS (/,CR,LF). * ******************************************** * * RUB01 LDA B134 OUTPUT A SLASH JSB OUT1 JSB EORP GO OUTPUT JSB EXIT1 EXIT WAITING FOR BUFFER EMPTY INTERRUPT JMP D.051 RE START INPUT * LINFD CPA LF IS THIS A LINEFEED? JMP CHPRC YES,GO GET NEXT CHARACTER CPA CR IS THIS A CR ? JMP CHP9 YES! IT IS A CR,EXIT CPA B4 IS FIRST CHAR. A CONTROL "D" ? JMP CNTLD YES! * CPA B10 IS THIS A BACKSPACE RSS RSS JMP CHPR9 NO! CONTINUE LDA BUFAD GET STARTING ADDRESS OF BUFFER RAL MULTIPLY BY 2 CPA BADD ARE WE AT STARTING ADDRESS? JMP RUB01 YES! PROCESS AS RUBOUT CCB ADB BADD DECREMENT CURRENT ADDRESS STB BADD CLE,ERB DIVIDE BY TWO TO GET TRUE ADDRESS LDA B,I GET ADDRESS IS A REG. AND BN15 MASK HIGH END ADA FILL ADD ASCII FILL CHARACTER STA B,I RESTORE JMP CHPR6 GO GET NEXT CHARACTER * <> <* B134 OCT 134 BN30 OCT 50037 BN15 OCT 177400 B40 OCT 40 B60 OCT 60 OENCE OCT 10000 * CNTLD CLA STA RETA SET AREG. EXIT JMP EOOP4 GO SET B REG. TO 0 AND EXIT * * CHPRA LDA TEMP8 CPA B37 REMOVE "US" RSS CPA RS REMOVE "RS" JMP CHPR6 CHPR9 LDB BADD GET CURRENT CHAR. ADD. CPB LSTAD IS BUFFER FULL? JMP CHPR6 YES BUFFER FULL LDA TEMP8 GET CHARACTER LDB BADD GET CHARACTER ADDRESS ISZ BADD INCREMENT CLE,ERB CONVERT TO WORD ADDRESS. SEZ,RSS IF E=0 THEN EVEN AND ALF,SLA,ALF HENCE SHIFT CHAR. TO UPPER 8.SKIP XOR B,I IF ODD ADDRESS XOR WITH CHAR. XOR FILL XOR FILL TO ADD FILL IF EVEN STA B,I REPLACE FULL WORD LDB BADD IS THIS THE LAST WORD? CPB LSTAD RSS YES IT IS JMP CHPR6 LDA FILL IF BINARY KEYBOARD REQUEST AND BUFFER ADA TEM10 FULL THEN EXIT CPA B60 JMP EOOP2 YES! EXIT * CHPR6 ISZ BINCT INCREMENT RECORD LENGTH COUNT.FOR RSS CTU BINARY READ ONLY. JMP CHPR7 THIS IS ALL FOR BINARY READ LDA TEMP9 GET STATUS WORD AND B200 MASK BUFFER EMPTY FLAG SZA IS BUFFER EMPTY? JMP C05R8 TEMPORARY ISZ TEM19 INCREMENT BUFFER COUNT JMP CHPCC IF NOT ZERO GET ANOTHER CHAR. LDB CHPC2 SETUP INTERRUPT RETURN STB INTAD STF01 STF CARD SET FLAG FOR IMMEDIATE INTERRUPT JMP EXIT4 THIS IS ALL WE CAN PROCESS,EXIT * CHPC2 DEF CHPRC * *********ONLY FOR CTU BINARY READ****** * CHPR7 LDA OENCE CLEAR INTERRUPT FOR JSB OUT2 BINARY EOR LDA TEMP9 GET CARD STATUS AND B4 ISOLATE INTERRUPT SZA IS IT STILL SET? JMP EOOP5 NO, GO TERMINATE CLA YES INTERRUPT STILL PRESENT JSB xOUT1 SEND NULL CHARACTER TO ALLOW JSB EXIT1 TO CLEAR (MAX 5 MSEC.) JMP EOOP5 SKP *************************************************** * DOES CTU AND PRINTER REQUEST PROCESSING * *************************************************** * * * I.251 LDA REQCD GET REQUEST TYPE(1-3) RAR SSA,SLA JMP I.25C THIS IS CTU OR LP A CONTROL REQUEST SSA JMP I.25R THIS IS CTU A READ REQUEST * *********CTU OR PRINTER WRITE REQUEST********** * CLB,INB JSB I05W1 GO SET BADD AND LSTAD LDB FILL SZA IS CHARACTER COUNT ZERO? JMP I25W6 NO! IT IS NOT ZERO SZB,RSS IS IT BINARY JMP REJ1 EXIT WITH A=1 I25W6 SZB IF BINARY MAX LENGTH IS D 256 JMP *+3 FOR ASCII MAX LENTH IS D 254 (NEDED CR,LF) ADA B400 RSS ADA D254 THIS IS ASCII SSA LESS THAN 254 CHARACTERS JMP REJ1 IT IS NOT,THEREFORE EXIT * * JSB CTPRP GO PREP. TERMINAL FOR TRANSFER LDA B144 JSB OUT1 OUTPUT LDA FILL GET FILL CHARACTER SZA IS IT BINARY? JMP I25W2 NO! THIS IS ASCII * ***********CTU BINARY WRITE******** * LDA LENTH GET BUFFER LENGTH SSA,RSS IF WORDS MULTIPLY X2 RAL SSA IF CHARACTERS (-) MAKE POS. CMA,INA JSB BINAS GO CONVERT TO ASCII AND SEND * * I25W2 LDA B127 OUTPUT TO INITIALIZE CTU TRANSFER JSB OUT1 * JSB EXIT1 GO EXIT AND WAIT FOR INTERRUPT * LDA FILL IS THIS BINARY SZA,RSS JSB ENAK THIS IS BINARY,GO HANDSHAKE JSB CDINT LDB LENTH GET WORD COUNT SZB IS IT ZERO?(ASCII ONLY,BINARY CHECKED * JSB TRAN1 ALREADY).IT IS NOT ZERO LDA FILL GET FILL CHAR. SZA IS IT BINARY JSB EORP NO! ;THIS IS ASCII,WRITE A "CR,LF" I25W5 JSB EXIT1 &&&&FOR INTERRUPT JSB CDINT JSB SPCH1 JSB DC1OT GO TRIGGER STATUS REPORT JSB EXIT1 WAIT FOR INTERRUT * * JSB CHRIN GET STATUS CHARACTER * STA TEM7 JSB CLRCD GET THE "CR" LDA TEM7 CPA B106 FAILURE? JMP I25W7 YES CLA RSS I25W7 LDA B10 SET BIT 3 IN EQT5 FOR PRINT FAIL LDB TEM10 IS THIS A PRINTER? CPB B64 JMP EOOP6 THIS IS A PRINTER JMP EOOP7 THIS IS A CTU * * TEM7 NOP TEMP STORAGE D254 DEC 254 B144 OCT 144 B127 OCT 127 B163 OCT 163 B122 OCT 122 B62 OCT 62 ENCE OCT 10004 SKP * ***********THIS IS A CTU READ REQUEST******** * I.25R LDB TEM10 IF READ FROM PRINTER REJECT CPB B64 JMP REJ1 LDB LENTH GET BUFFER LENGTH SZB,RSS IS IT ZERO? JMP CN3C YES --GO SKIP ONE RECORD CLB,INB NO!, IT IS NOT ZERO JSB I05W1 GO SET UP BADD,LSTAD JSB CTPRP GO PREP. TERM. FOR CTU TRANSFER LDA B163 JSB OUT1 OUTPUT LDA FILL SZA,RSS IS THIS BINARY? JMP I25R2 YES! THIS IS BINARY LDA B122 OUTPUT JSB OUT1 JSB EXIT1 * * THIS IS ASCII JSB SPCH1 SET AND INTERRUPTS JMP C05R6 GO TRIGGER TRANSFER FOR ASCII * * ****THIS IS BINARY READ***** * I25R2 LDA B62 OUTPUT <2> JSB OUT1 LDA B122 OUTPUT JSB OUT1 JSB EXIT1 #### JSB CDINT #### JSB SPCH1 SET FOR INTERRUPT JSB DC1OT TRIGGER BYTE COUNT JSB EXIT1 EXIT AND WAIT FOR INTERRUPT * LDA B.4 INITIALIZE TO READ 4 BYTES STA TEM19 CLA I25R5 ALF SHIFT UP STA TEMP1 AND STORE JSB CHRIN GET CHARACTER CPA RS IS IT A" RS"? JMP EOOP5 YES,THIS IS ALL AND B17 ISOLATE DATA IOR TEMP1 "OR" WITH LAST BYTE ISZ TEM19 IS THIS ALL?? JMP I25R5 NO! GET NEXT BYTE CMA,INA THIS IS ALL,COMPLEMENT STA BINCT STORE BINARY RECORD LENGTH. JSB CLRCD JSB DC1OT TRIGGER TRANSFER * * LDA ENCE ENABLE BINARY EOR INTERRUPT JSB OUT2 JMP C05R7 GO ENABLE TRANSFER SKP ***************************************************** * LINES IF OPTIONAL * * PARAM (+) OR PAGE EJECT IF * * OPTIONAL PARAM (-). ***************************************************** * I.25C LDA CONWD GET CONTROL WORD LSR 6 SHIFT RIGHT 6 PLACES AND B37 ISOLATE BITS <0-4> STA SUBCD STORE FOR LATER USE LDB TEM10 GET DEVICE TYPE CPB B64 IS IT A LP? JMP CN28C YES! IT IS A LP CPA B1 IS IT EOF? JMP CN1C YES! CPA B2  IS IT BACKSPACE RECORD? JMP CN50C YES! CPA B3 FORWARD SPACE? JMP CN3C YES! CPA B4 REWIND? JMP CN4C YES! SZA,RSS DYNAMIC STATUS JMP CN6C YES CPA B6 FORWARD SPACE 1 FILE? JMP CN13C YES! CPA B5 BACKSPACE FILE? JMP CN50C YES! CPA B7 WRITE EOV? JMP CN26C YES! * **************ILLEGAL CONTROL REQUEST************* * * JMP REJ2 * B1 OCT 1 B7 OCT 7 B65 OCT 65 B55 OCT 55 B160 OCT 160 B66 OCT 66 B103 OCT 103 * ******BACKSPACE 1 OR 2 RECORDS****** * BSR1 NOP BACKSPACE 1 LDB B61 GET LDA BSR1 JMP OVER1 BSR2 NOP BACKSPACE 2 LDA BSR2 LDB B62 GET OVER1 STA BACKR STORE RETURN ADD. STB TEMP SAVE 1 OR 2 LDA B55 OUTPUT JSB OUT4 LDA TEMP RETREIVE BS NUMBER JSB OUT1 LDA B160 OUTPUT JSB OUT1 LDA B70 OUTPUT JMP OUT5 * *********WRITE EOF************* * CN1C LDA B65 WRITE END OF FILE JSB OUT4 OUTPUT JMP OUT3 * ***********FORWARD SPACE RECORD************** * FSR1 NOP LDA FSR1 SAVE RETURN ADD. STA BACKR CN3C CLA STA LENTH LDA B3 SET CONTROL REQUEST STA REQCD BECAUSE MAY GET HERE FROM READ 0 ADA B300 SET FOR FORWARD RECORD IOR CONWD ALSO SET IN CONWD BECAUSE WILL EXIT STA CONWD LDA B160 JSB OUT4 CN3C1 LDA B61 OUTPUT JMP OUT5 * **********REWIND*************** * CN4C JSB CTPRP JMP OUT3 REWIND * **********DYNAMIC STATUS***************** * CN6C JSB CTUST GET CTU STATUS STA B LDA TEM11 GET DEVICE TYPE (OCTAL) RAL AND STRAP TEST EOF FSLAG FOR DEVICE SZA ADB B200 EOF FLAG IS SET. SET IN EQT5 STB TEM18 CLA SET FOR GOOD RETURN STA RETA JMP EOOP3 * **********FORWARD SPACE 1 FILE ************ * CN13C LDA B62 OUTPUT JSB OUT4 JMP OUT3 * ************BACKSPACE 1 FILE ************* * BSF1 NOP LDA BSF1 STA BACKR LDA B55 OUTPUT JSB OUT4 LDA B61 OUTPUT JSB OUT1 LDA B160 OUTPUT JSB OUT1 LDA B62 OUTPUT JMP OUT5 * ********WRITE END OF VALID DATA (EOV) * CN26C LDA B66 OUTPUT JSB OUT4 JMP OUT3 * *******SPACE LINES (PRINTER)************** * CN28C LDA SUBCD GET CONTROL REQUEST CPA B11 IS IT SPACE LINES? RSS JMP REJ2 ONLY LEGAL CONTROL TO PRINTER IS 11B JSB CTPRP PREP. TERM. FOR L.P. REQUEST LDA LINCT GET # OF LINES SZA,RSS IF ZERO CHANGE TO 1 INA JSB BINAS CONVERT TO ASCII AND SEND LDA B160 OUTPUT JSB OUT1 LDB LINCT GET OPTIONAL PARAM. IF (-) THEN T.O.F. SSB,RSS IF (+) THEN SPACE REQUIRED LINES. JMP CN3C1 OUTPUT LDA B62 OUTPUT * OUT5 JSB OUT1 OUT3 LDA B103 OUTPUT JSB OUT1 JMP I25W5 GO WAIT FOR REQUEST COMPLETION * OUT4 NOP JSB CTPRP JSB OUT1 JMP OUT4,I SKP *********BACKSPACE FILE AND RECORD******** * * BACKSPACE FILE AND RECORD REQUIRES SPECIAL PROCESSING * * TO POSITION AND SET STATUS AS A MAG. TAPE UNIT. THIS * * SPECIAL PROCESSING ENABLES THE USE OF EXISTING 'MTU' * * SUBROUTINES. IF THE TAPE IS POSITIONED AFTER AN EOF THEN* * IT WILL MOVE BEFORE THE EOF AND A FLAG SET IN 'STRAP' * * (BIT3/BIT2 =RIGHT CTU/LEFT CTU) WHICH IS EXAMINED BY * * A DYNAMIC STATUS REQUEST. THESE SPECIAL EOF FLAGS ARE * * NECESSARY BECAUSE THE 264X DOES NOT RETURN EOF STATUS * * BEFORE THE EOF MARK. * * *********************************************************** * * * CN50C LDA STRAP SET CN50C ENTRY FLAG IOR B10 BIT3 STA STRAP LDB RSS SET CN50C FLAG STB EOOP7 JSB BSR1 ISSUE BACKSPACE 1 RECORD JSB CTUST GET STATUS STA TEM18 AND B103 CHECK FOR L.P. SZA JMP EOOPB WE ARE THERE LDA TEM18 NOT AT L.P. AND B200 IF WE ARE AFTER EOF THE BIT 7 SET SZA,RSS JMP CN54C TAPE NOT AFTER EOF CN55C JSB BSR2 ISSUE BACKSPACE 2 RECORDS JSB CTUST IF AT EOF AGAIN WE ARE AFTER ANOTHER EOF STA TEM18 AND B103 CHECK FOR L.P. SZA JMP EOOPB LDA TEM18 AND B200 AND HENCE NO FORWARD SPACE SZA DO NOT SET 'STRAP' EOF FLAG IF JMP EOOPB BETWEEN EOF'S JSB FSR1 FORWARD ONE TO GET US BEFORE EOF * * LDA TEM11 GET DEVICE TYPE RAL FOR SETTING EOF FLAG IN 'STRAP' IOR STRAP BIT1/BIT2=EOF LCTU/EOF RCTU AND BN55 REMOVE CN50C FLAG STA STRAP RESTORE IT JSB CTUST GET STATUS IOR B200 ADD EOF BIT STA TEM18 JMP EOOPA * * CN54C LDA SUBCD TAPE NOT AFTER EOF CPA B2 IS THIS A BS RECORD? JMP EOOPB YES JSB FSR1 GET TAPE TO ORIGINAL POSITION JSB BSF1 BS FILE TO GET US AFTER EOF JMP CN55C NOW POSITION BEFORE EOF * RECIV NOP LDB B5 SET CARD UP FOR RECEIVE,CHAR. JSB CDSET CLA JSB ECHO TURN OFF ECHO STC05 STC CARD ENABLE INTERRUPT JMP RECIV,I HED ** CARD I/O SUBROUTINES ** **************************************************** * SUBROUTINE READS 1 CHARACTER FROM IO CARD* * AND PLACES IT ;oIN A REG. * * BOARD STATUS IS ALSO READ * * TEMP8=DATA * * TEMP9=BOARD STATUS * * **************************************************** * CHRIN NOP STC02 STC CARD PUT CARD IN DATA MODE LIA03 LIA CARD GET DATA WORD STA TEM14 STORE COMPLETE DATA WORD AT TEM14 AND B377 ISOLATE DATA CHAR.(0-7) STA TEMP8 STORE IT CLC02 CLC CARD PUT CARD IN STATUS MODE LIA02 LIA CARD GET STATUS WORD STA TEMP9 STORE IT LDA TEMP8 RESTORE DATA WORD STC03 STC CARD THIS IS NECESSARY JMP CHRIN,I INTERRUPT SKP *********************************************** * SUBROUTINE TRIGGERS BLOCK TRANSFERS * * FROM THE CPU. THIS IS DONE BY SENDING A * * DC1 TO TRIGGER THE TRANSFER AND * * THEN SETTING UP CARD TO RECEIVE DATA. * * CLEARING WILL CAUSE THE "CLEAR TO * * SEND" LINE TO DROP AND HENCE HOLD THE TERM. * * FROM TRANSMITTNG * *********************************************** * DC1OT NOP LDA CLRSB CLRTO INHIBIT TERM. TRANS JSB OUT2 THIS WILL HOLD ON TERM. OFF LDA B21 TO INHIBIT TRANS. UNTIL READY JSB OUT2 JSB EXIT1 WAIT FOR B.E. INTERRUPT LDB B4 JSB CDSET SET RECEIVE MODE AND SET JMP DC1OT,I * B5 OCT 5 BN55 OCT 177767 BN20 OCT 50077 B10 OCT 10 CLRSB OCT 40400 BN17 OCT 40040 B400 OCT 400 BN19 OCT 30003 BN21 OCT 50000 SKP ****************************************************** * SUBROUTINE SETS UP THE IO CARD PER B REG. * * 1/0 IS CHARACTER/BLOCK * * 1/0 IS TRANSMIT/RECEIVE * * 1/0 IS CLEAR/NOT CLEAR INTERUPT FLAGS * * 1/0 SPECIAL CHARACTER IS/IS NOT TO BE * * ADDED OR DELETED.SPECIAL CHARACTER} IS IN POSITION * * . 1/0 IS ADD/DELETE * * SPECIAL CHARACTER. * ****************************************************** * CDSET NOP LDA BN4 SET WORD1 IN A REG. SLB,BRS IOR B40 "OR" CHARACTER MODE BIT JSB OUT2 LDA BN17 SET WORD4 IN A REG(SET SBA) SLB,BRS IOR B400 "OR" TRANSMIT BIT JSB OUT2 LDA BN21 SET WORD5 IN A REG. SLB,BRS IOR B177 "OR" CLEAR INTERRUPTS JSB OUT2 LDA BN5 SET WORD6 IN A REG. SLB,RSS JMP OUT BRS,BRS BRS IOR B "OR" SPECIAL CHARACTER JSB OUT2 OUT JMP CDSET,I * * * ECHO NOP SET ECHO ON CARD PER A REG. IOR BN19 A =20/0 IS ECHO ON\OFF JSB OUT2 JMP ECHO,I SKP *************************************************** * SUBROUTINE INITIALIZES 12966 * * IO CARD. * * BELOW ARE THE INITIAL CONDITIONS FOR CONTROL: * * WORD 0 DO NOT SEND * * WORD 1 DO NOT SEND * * WORD 2 CE=1 STATUS REF. AND MASTER RESET * * WORD 3 CHARACTER FRAME CONTROL * * CHAR. SIZE=8 BITS * * NO PARITY * * ECHO ON (CRT REQUEST ONLY) * * ONE STOP BIT * * * WORD 4 INTERFACE CONTROL * * EXT. CLOCK * * DMA CONTROL OFF * * SBA/SCA ON * * CD (DATA TERM. READY) ON * * CA (REQUEST TO SEND) ON * * TRANSMIT MODE ON * * * WORD 5 CLEAR CARD INTERRUPTS * * * WORD 6 SPECIAL CHARACTER * :<:6* * * ALL USED SPECIAL CHARACTERS (EXCEPT * * RUBOUT) ARE CLEARD * * * *************************************************** * <> #<* CDINT NOP LDA BN22 JSB OUT2 SEND WORD 120004 * LDA BN19 SET A REG. = 30003 LDB TEM10 GET DEVICE TYPE ADB REQCD ADD REQUEST CODE CPB B61 IS IT A CRT IOR B20 YES! TURN ON ECHO JSB OUT2 IT IS OFF FOR CTU AND LP * LDA BN24 JSB OUT2 SEND WORD 40540 * LDA BN20 SEND WORD 50077 JSB OUT2 * * LDA BN25 SET A REG. = 60004 JSB OUT2 CPA BN26 CLEAR ALL USED SPECIAL INTERRUPTS JMP CDINT,I (4 THRU 36) INA JMP *-4 * * BN22 OCT 120004 B61 OCT 61 BN24 OCT 40540 BN25 OCT 60004 BN26 OCT 60036 ESC OCT 33 B136 OCT 136 B.4 OCT 177774 * ********************************************* * SUBROUTINE READS TERMINAL STATUS * * AND SETS 'STRAP' FOR : * * LINE STRAP\PAGE STRAP 0\1 (BIT15) * * TERM. STATUS READ 0\1 NO\YES (BIT 0) * ********************************************* * TERST NOP LDA STRAP GET TERMINAL STATUS TO SEE IF IT SLA HAS ALREADY BEEN READ JMP TERST,I IT HAS. RETURN. CLA JSB ECHO TURN ECHO OFF JSB SPCH1 SET SPECIAL INTERRUPTS LDA ESC OUTPUT ESCAPE JSB OUT1 LDA B136 OUTPUT CARROT. THESE TWO CHARACTERS JSB OUT1 PREP. TERM. FOR STATUS JSB EXIT1 EXIT AND WAIT FOR BUFFER EMPTY INTERRUPT * JSB DC1OT GO TRIGGER STATUS TRANSMISSION WITH DC1 JSB EXIT1 AND WAIT FOR CR OR RS INTERRUPT * LDA B20 JSB ECHO TURN ECHO ON LDA B.4 SET TO GET BYTE 1 STA TEMP1 JSB CHRIN GO GET CHAR..IT IS NECESARY TO READ AND B10 ISZ TEMP1 ESC AND \ BEFORE JMP *-3 READING DESIRED STATUS BYTE. RAR,RAR RAR,RAR MOVE TO SIGN POS. (LINE\PAGE =0\1) INA SET LSB FOR COMPLETED IOR STRAP ` STA STRAP JSB CLRCD GO CLEAR CARD JMP TERST,I SKP ************************************************* * SUBROUTINE OUTPUTS AN ENK TO TERMINAL * * AND WAITS FOR AN ACK. * ************************************************* * ENAK NOP CLA INHIBIT ECHO JSB ECHO LDA CLRSB CLR SBA TO INHIBIT TERM.TRANS JSB OUT2 LDA B5 OUTPUT ENK TO TERMINAL OTA20 OTA CARD JSB EXIT1 WAIT FOR B.E. INTERRUPT LDB B5 CLEAR INTERRUPTS AND SET CARD TO RECEIVE JSB CDSET JSB EXIT1 EXIT TO WAIT FOR INTERRUPTS JSB CHRIN GET CHARACTER TO EMPTY CARD LDA =D-40 RESET ENAK COUNTER STA SHAKE ENAK COUNT JMP ENAK,I SHAKE NOP SKP ************************************************ * SUBROUTINE READS THE CTU STATUS * * * *SET BIT0--UNIT BUSY OR CARTRIDGE NOT INSERTED* * BIT1--END OF VALID DATA * * BIT2--CARTRIDGE NOT WRITE ENABLED * * * * BIT3--LAST COMMAND ABORTED * * BIT4--READ\WRITE ERROR * * BIT5--END OF TAPE * * * * BIT6--LOAD POINT * * BIT7--END OF FILE * * * * THE CTU STATUS COMES IN THREE BYTES * * * * BYTE * * 1 : EOF - LP - EOT - WR. ERR(2645) * * 2 : CMD.AB.- W.P. - RD.ERR. -BUSY(2645) * * 3 : RD.ERR. - RD.ERR.(HARD) - EOD -C.I. * ************************************************ * CTUST NOP * JSB CTPRP GO PREP. TERMINAL FOR CTU TRANSFER LDA B136 OUTPUT <^> JSB OUT1 JSB SPCH1 SET CR AND RS AS SPECIAL CHAR. JSB DC1OT TRIGGER TRANSFER WITH DC1 JSB EXIT1 EXIT WAITING FOR CR OR RS INTERRUPT * JSB CHRIN GET DATA LDB B.5 INITIALIZE STATUS COUNT STB TEMP1 RSS * * CTUS1 JSB CHRIN GET CHARACTER ISZ TEMP1 ARE THESE STATUS BYTES? JMP CTUS1 NO! GO GET NEXT CHAR. AND B17 ALF STA TEMP1 JSB CHRIN GET STATUS BYTE NO. 2 AND B15 ISOLATE BITS 0,2,3 IOR TEMP1 "OR" BYTE 1 WITH BYTE 2 STA TEMP1 STORE IT TEMPORARILY JSB CHRIN GET BYTE 3 AND B4 CHECK FOR READ ERROR RAL,RAL MOVE TO BIT 4 IOR TEMP1 STA B LDA TEMP8 GET BYTE 3 AND B3 ISOLATE FIRST TWO BITS (WEN AND EOV) XOR B1 COMPL. C.I. IOR B OR WITH BYTES 1 AND2 XOR B10 COMPLEMENT BIT 3 AND B377 ISOLATE STATUS BITS * JSB CLRCD GO CLEAR CARD JMP CTUST,I * CTPRP NOP THIS SUBROUTINE PREPARES TERMINAL TO ACCEPT STA CTURW CTU CONTROL AND R\W REQUESTS LDA STRAP CHECK FOR KEYBOARD DISABLE BIT AND B20 (BIT4) SZA IF SET ALREADY DISABLED JMP OVER6 LDA ESC JSB OUT1 LDA B143 OUTPUT JSB OUT1 CLA JSB OUT1 CLA JSB OUT1 LDA B20 IOR STRAP SET KEYBOARD DISABLE BIT STA STRAP JSB EXIT1 JSB CDINT OVER6 LDA ESC JSB OUT1 OUTPUT LDA B46 JSB OUT1 OUTPUT <&> LDA B160 JSB OUT1 OUTPUT LDA TEM10 GET DEVICE JSB OUT1 LDA B165 LDB REQCD GET REQUEST TYPE CPB B3 IS IT CONTROL? JSB OUT1 YES, OUTPUT LDA CTURW RESTORE A REG JMP CTPRP,I * CTURW NOP SKP ************************************************ *SUBROUTIONEz TAKES A NO. IN A REG. * * (<1000D) AND CONVERTS TO ASCII WITH MSB * * AT BUFF1 AND LSB AT BUFF3. * *THE CHARACTERS ARE SENT MSB FIRST * ************************************************ * BINAS NOP SSA IS NUMBER OK? (POSITIVE) JMP BINAS,I NO! LDB BN50 LOAD B WITH DEC -1000 ADB A ADD NUMBER TO -1000 SSB,RSS IS SIGN ZERO? JMP BINAS,I YES! EXIT FOR NUMBER >999 LDB ADDRT GET BUFFER ENDING ADDRESS ADB B2 ADD 2 STB TEMP1 STORE IT AT TEMP1 BINA1 CLB DIV LF DIVIDE NO. IN A REG. BY 10 ADB B60 CONVERT TO ASCII STB TEMP1,I STORE IT. LDB TEMP1 GET NEXT ADDRESS ADB B.1 DECREMENT IT STB TEMP1 RESTORE IT SZA IS THE A REG.(QUOTIENT) =0 ? JMP BINA1 NO! GO DIVIDE A REG. AGAIN LDA ADDRT YES! IT IS ZERO ADA B.1 CPA TEMP1 ARE WE FINISHED? JMP BINA2 YES!NOW GO OUPUT CHAR. CLA NO,GO FILL REMAINING PLACES WITH JMP BINA1 ASCII <0> BINA2 LDB ADDRT GET MSD IN B REG. STB BTEM STORE IT FOR LATER USE LDA B.3 SETUP COUNTER STA BINCT I25W8 LDA B,I GET ASCII CHAR. IN A REG. JSB OUT1 GO SEND IT! ISZ BTEM INCREMENT ADDRESS POINTER LDB BTEM RESTORE IN B REG. FOR ISZ BINCT ISZ COUNT COUNTER JMP I25W8 THERE ARE MORE,GO GET 'EM JMP BINAS,I * BTEM NOP ADDRT DEF BUFF1 BUFF1 BSS 3 B.5 OCT 177773 B46 OCT 46 B165 OCT 165 B15 OCT 15 B143 OCT 143 SKP ************************************************* * SUBROUTINE IS GENERAL OUTPUT ROUTINE * * TO TERMINAL. CHAR. IS IN A REG. * ************************************************* OUT1 NOP GENERAL PURPOSE CHARACTER OUTPUT ROUTINE STA OUTMP SAVE FOR EXIT 9 LDA FILL IS THIS BINARY? IF SO WE DO NOT NEED SZA ENAK ISZ SHAKE ENAK COUNT JMP OUT1A JSB ENAK GO HANDSHAKE AND LET 264X CATCH UP LDA =D-40 RESET HANDSHAKE COUNTER STA SHAKE ENAK COUNT OUT1A JSB XMIT SET CARD TO TRANSMIT LDA OUTMP GET DATA OTA18 OTA CARD SEND TO TERMINAL JMP OUT1,I * * XMIT NOP SET CARD UP FOR XMIT LDA BN24 JSB OUT2 JMP XMIT,I OUTMP NOP * * OUT2 NOP GENERAL PURPOSE OUTPUT ROUTINE OTA10 OTA CARD FOR CARD COMMUNICATION JMP OUT2,I * SPCH1 NOP THIS SUBROUTINE SETS SPECIAL CHAR. INTERRUPTS LDB BN12 JSB CDSET SET INTERRUPT LDB BN11 JSB CDSET SET INTERRUPTS JMP SPCH1,I RETURN * * USINT NOP SUBROUTINE TO TEST FOR USER KEYBOARD INTERRUPT JSB ENAK GO SHAKE HANDS WITH TERMINAL LDA TEMP8 GET CHAR. CLB,INB CPA B6 IS IT A "ACK" ? RSS YES! NO INTERRUPT CPA RS RSS STB OPATN JSB CLRCD GET ALL CHAR. OFF CARD LDB BN2 SET CHAR. PROCESS COUNTER STB TEMP1 JMP USINT,I SKP *********************************************** * SUBROUTINE GETS DATA OF CARD UNTIL * * BUFFER EMPTY. * * *********************************************** * CLRCD NOP STA TEMP1 SAVE A REG. LDB B4 SET CARD TO RECEIVE AND CLR. INT. JSB CDSET CLRC1 JSB CHRIN GET CHARACTER LDA TEMP9 GET STATUS WORD ALF,ALF ISOLATE BUFFER EMPTY SSA IS IT EMPTY? JMP CLRC2 YES WE'RE FINISHED LDA TEM14 IS THIS A VALID CHARACTER? SSA JMP CLRC1 YES IT IS CLRC2 LDA TEMP1 RESTORE A REG. JMP CLRCD,I RETURN * B.1 OCT 177777 BN50 DEC -1000 * ******************************************&***** * ENABLES IO CARD INTERRUPT * *********************************************** * SETEM NOP SUBROUTINE TO SETUP IO CARD FOR RECEIVE CLC03 CLC CARD INHIBIT INTERRUPT JSB RECIV SET TERM TO RECIEVE JMP SETEM,I * REJ2 JSB SETEM SETUP CARD FOR EXIT LDA B2 RSS REJ1 CLA,INA CLB JMP D.05,I HED ** COMPLETION ROUTINES ** **************************************************** * IS USED FOR INITIATOR OPERATION WITH * * INITIATED EXITS (A=0), AND COMPLETION * * CONTINUATION EXITS . "TEMP5" INDICATES * * WHICH EXIT TO TAKE. * **************************************************** * EXIT1 NOP LDB EXIT1 GET CALLING PROGRAMS ADDRESS+1 STB INTAD STORE AT INTAD FOR INTERRUPT LDA BN20 CLEAR CARD INTERRUPTS JSB OUT2 STC04 STC CARD RE-INITIALIZE CARD FOR INTERRUPT EXIT4 CLA LDB TEMP5 GET INITIATION COMPLETION FLAG SZB,RSS JMP D.05,I INITIATION RETURN * LDA I.05 RETURN 'UNCOMPLETE' AS YET JSB ON * EOOP9 LDB B3 SET B=3 FOR XMISSION ERROR STB RETA A REG. EXIT JMP EOOP4 * ********************************************************* * DOES ASCII CTU AND DISPLAY WRITE EOR PROCESSING* ********************************************************* * * EORP NOP LDA CR OUTPUT A JSB OUT1 LDA LF OUTPUT A JSB OUT1 JMP EORP,I * * ******************************************** * ENABLES KEYBOARD IF IT HAS BEEN * * LOCKED BY A CTU REQUEST * ******************************************** * KEYBD NOP LDA STRAP AND B20 IS IT LOCKED (BIT 4) SET SZA,RSS JMP KEYBD,I NO! LDA ESC UNLOCK KEYBOARD JSB OUT1 LDA B142 JSB OUT1 OUTPUT JSB EXIT1 WAIT FOR INTERRUPT JSB CDINT LDA STRAP AND BN3 REMOVE KEYBD LOCK BIT STA STRAP JMP KEYBD,I * EOOP7 NOP IF CN50C FLAG IS SET(BIT3,'STRAP') JMP EOOPC THEN EOOP7 IS LDA BACKR IT IS SET JMP A,I * EOOP8 LDB TEMP1 THIS EXIT IS USED IF UNDERSCORE CPB BN2 IS ONLY CHAR. RSS * ********************************************************* * AND ARE ENTRIES FOR COMPLETION * * EXITS. THE TERMINAL OR CTU STATUS IS TEMPORARLY PUT * * IN TEMP5. * ********************************************************* * EOOP1 JSB EXIT1 EOOP2 CLA STA RETA SET A REG. EXIT LDA TRMST GET TERMINAL STATUS STA TEM18 JMP EOOP3 * EOOPC LDB REQCD IF CONTROL ALWAYS GET STATUS CPB B3 RSS SZA IF GOOD WRITE DO NOT GET STATUS EOOP5 JSB CTUST YES!,GO UPDATE CTU STATUS EOOP6 STA TEM18 * EOOPB LDA BN55 REMOVE EOF FLAG IN 'STRAP' LDB TEM11 BECAUSE TAPE HAS MOVED RBL XOR B LDB STRAP AND B STA STRAP LDA TEM18 SKP ****************************************************** * A READ TO END OF TAPE WILL GIVE BELOW STATUS * * STATUS * * 0 GOOD READ * * 40 END OF TAPE. GOOD RECORD READ * * 240 EOT+EOF. NO RECORD READ, * * SET FOR NR(A=1) EXIT * * 42 EOT+EOV * * 52 EOT+EOV+ABORT * * 52 EOT+EOV+ABORT * * * ****************************************************** * * ****************************************************** * A WRITE TO END OF TAPE WILL GIVE BELOW STATUS  * * STATUS * * 42 EOT+EOV GOOD RECORD WRITTEN * * 52 EOT+EOV+ABORT (NO RECORD WRITTEN)* * SET ET(A=1) EXIT * * * ****************************************************** * ****************************************************** * READ TO EOV IN MIDDLE OF TAPE * * STATUS * * 200 EOF * * 2 EOV * * 12 EOV+ABORT * * SET NR(A=1) EXIT * * * ****************************************************** * EOOPA AND B373 REMOVE WRITE PROTECT CPA B240 IF EOF+EOT THEN SET NR JMP OVER4 CPA B52 IF FAILURE ON WRITE JMP OVER4 DUE TO EOT DO THIS(SAVE REQ.) AND B10 CHECK FOR CMD ABORT CPA B10 JMP OVER4 SET N.R. CLB STB RETA SET A=0 FOR GOOD EXIT JMP EOOP3 OVER4 CLB,INB SET NR STB RETA SET A REG. EXIT *********************************************************** * IS ENTRY FOR B=0 (TRANS. LOG =0) EXIT. * *********************************************************** * EOOP4 CLA STA LENTH SET UP FOR B REG. =0 EXIT SKP ********************************************************** * SETS HP2644 CRT AND IO CARD FOR NEXT INTERRUPT * * OR REQUEST, AND SETS EITHER CTU OR CRT STATUS IN EQT2 * * * IT ALSO SETS THE TRANSMISSION LOG IN B REG. (+CHAR. OR * * + WORDS). IF LENTH =0 (VIA EOOP4) THEN B=0. * ********************************************************** * EOOP3 JSB STPUT SET STATUS IN EQT2 JSB KEYBD ENABLE KEYBD IF LOCKED JSB USINT WITH KEYBOARD ENABLED M JSB USINT JSB CLRNT CLR RUBOUT INTERRUPT JSB CLRCD GET ALL DATA OFF CARD JSB SETEM LDB BADD GET 2X LAST CHAR. ADDRESS CMB,INB MAKE NEG. ADB BUFAD SUBTRACT TWO TIMES STARTING ADD. ADB BUFAD CMB,INB LDA LENTH IF WORDS THEN DIV. BY 2 SSA JMP *+4 THESE ARE CHARACTERS SLB IS LSB SET? INB YES! INCREMENT SO EVEN FOR DIVIDE BRS DIVIDE TO CONVERT TO WORDS * SZA,RSS IF LENTH IS 0 THEN CLEAR B REG. CLB STB EQT3,I SET TRANSMISSION LOG * DONE LDA EQT2,I ELA,CLE,ERA CLEAR 'BUSY' BIT STA EQT2,I LDA I.05 JSB ON SKP * **************************************************** * INSERTS CORRECT DEVICE STATUS INTO EQT2 * **************************************************** STPUT NOP LDA EQT2,I GET CURRENT STATUS AND BN31 RE MOVE OLD STATUS IOR TEM18 OR NEW STATUS STA EQT2,I RESTORE IT JMP STPUT,I * * * BN3 OCT 100007 BN37 OCT 102100 B373 OCT 373 B142 OCT 142 B240 OCT 240 B106 OCT 106 B64 OCT 64 B300 OCT 300 B3 OCT 3 BN31 OCT 177400 B1100 OCT 1100 B4000 OCT 4000 B52 OCT 52 B600 OCT 600 B500 OCT 500 SKP * * ON AND OFF ARE USED TO SAVE AND RESTORE THE REGISTERS * ON INTERRUPT. * OFF NOP CLF 0 TURN OFF INTERRUPTS STA SAVEA SAVE "A" REGISTER STB SAVEB SAVE "B" REGISTER ERA,ALS SAVE "E" REGISTER AND SAVE "O" REGISTER AS ZERO SOC IS "O" REGISTER REALLY A ZERO? INA NO, SO SAVE IT AS A ONE STA SAVEE SAVE "E" AND "O" REGISTERS JMP OFF,I RETURN TO DRIVER * ON NOP STA ON SETUP RETURN ADDRESS LDA SAVEE GET "E" AND "O" REGISTERS SAVED BY "OFF" CLO RESTORE "O" REGISTER TO ZERO SLA,ELA RESTOR:E "E" REGISTER AND WAS "O" REALLY A ZERO? STF 1 NO, SO RESTORE "O" REGISTER AS A ONE LDA SAVEA RESTORE "A" REGISTER LDB SAVEB RESTORE "B" REGISTER STF 0 TURN INTERRUPTS ON JMP ON,I RETURN TO POINT WHERE INTERRUPT OCCURRED * SAVEA NOP STORAGE FOR "A" REGISTER SAVEB NOP STORAGE FOR "B" REGISTER SAVEE NOP STORAGE FOR "E"(BIT 15) AND "O"(BIT 0) REGISTERS HED ** I/O SETUP ROUTINE ** * SETIO NOP IOR BN37 CONSTRUCT STF STA STF01 STF IS 1021XX * IOR B400 CONSTRUCT LIA AND SAVE STA LIA01 STA LIA02 STA LIA03 * XOR B600 CONSTRUCT SFS STA SFS01 SFS IS 1023XX * XOR B500 CONSTRUCT OTA AND SAVE STA OTA10 STA OTA18 STA OTA20 IOR B1100 STA STC02 STA STC03 STA STC04 STA STC05 * IOR B4000 CONSTRUCT CLC,C AND SAVE STA CLC01 CLC,C IS 1077XX STA CLC02 STA CLC03 STA CLC04 * * LDA EQT1,I GET SUBCHANNEL TO IDENTIFY DEVICE LSR 6 SC=0 IS CRT (TEM10=60) AND B37 SC=1 IS L CTU (TEM10=61) STA TEM11 ADA B60 SC=2 IS R CTU (TEM10=62) STA TEM10 SC=4 IS PRINTER (TEM10=64) LDA CONWD GET CONTROL WORD LDB TEM10 GET DEVICE CPB B64 IS IT LP? CLA YES! SET FOR ASCII RAR BIT6 1\0 IS BIN\ASCII AND B40 ISOLATE BIT 5 XOR B40 REMOVE BIT 5 IF BINARY STA FILL SET FILL CHARACTER * LDA TEM10 CLB CPA B60 SET SWITCH CRT/CTU = RSS/NOP LDB RSS STB SWH1A STB SWH1B STB SWH1C STB SWH1D * CLB LDA STRAP AND B10 SZA LDB RSS STB EOOP7 SET/RESET BACKSPACE FLAG * JMP SETIO,I HED ** CONSTANTS AND TEMPORARY STORAGE ** * * EQU'jB@_ WAMSG ASC 10, >TRY INTERRUPT< DMSG ASC 10, ** BUTTON SENSED ** BUFFR BSS 100 INPUT ASC 2, UNS END START   ( 22682-18069 1730 SC 0122 TELL & TELL ALL INTER- TERMINAL MESSAGE SENDING             H0101 3wFTN,L PROGRAM SYSTK(2,30) C**** C PROGRAM TO ESTABLISH DIALOG BETWEEN C LU1 AND LU2. BOTH MUST BE DVR00 C TTY TYPE DEVICES. C C DATE: 7/14/77 C BY: DIGICON GEOPHYSICAL C J. CONNER C LOADER OPTIONS: RU,LOADR,99,,007 C C COMMANDS ARE: C TEXT - INITIALIZE READ OF CURRENT USER'S MESSAGE C SEND - OUTPUT MESSAGE TO NEXT USER - MORE TO COME C GIVE - OUTPUT MESSAGE TO NEXT USER - AND PROMPT C END - TERMINATE SYSTK C PROMPT IS ? C END OF TEXT IS ?? C C C SYSTK IS FOREGROUND DISK RESIDENT C UP TO 10/80 CHARACTER RECORDS MAY BE SHIPPED C PER TEXT COMMAND. CURRENT USER RETAINS CONTROL C OF PROMPT UNTIL GIVE COMMAND IS ISSUED. C C C SAMPLE DIALOG: (LU1) C *ON,SYSTK,LU1,LU2 C ?TEXT (ACCEPTS INPUT FROM LU1) C THIS IS A SAMPLE MESSAGE (ENTERED @ LU1) C ?? (END OF ENTRY - ENTERED AT LU1) C ?GIVE (SEND THE MESSAGE AND PROMPT) C I GOT YOUR MESSAGE (SENT BY LU2) C ?END (PROMPT GIVEN BACK, EOJ) C C C SAMPLE DIALOG: LU2 C C THIS IS A SAMPLE MESSAGE (SENT BY LU1) C ?TEXT (PROMPT GIVEN BY LU1) C I GOT YOUR MESSAGE (ENTERED @ LU2) C ?? (END OF ENTRY - ENTERED AT LU2) C ?SEND (SEND THE MESSAGE RETAIN PROMPT) C ?GIVE (GIVE UP THE PROMPT) C C**** DIMENSION ITEXT(400) DIMENSION ), BUF(40),NCHARS(10),IREG(2) EQUIVALENCE (IENTXT,IMCFN(5)),(),II2) EQUIVALENCE (REG,IREG),(IREG(2),IB),(IBUF1,IBUF(1)) DATA IPRMT/2H?_/,IMCFUN/2HTE,2HSE,2HGI,2HEN,2H??/,LU1,LU2/12,1/ C C GET PAIR OC CALL RMPAR(II) IF(II1.GT.0) LU1 = II1 F(II2.GT.0)  LU2 = II2 C C SET LUIN = LU1 C SET LUOUT = LU2 C 10 LUIN = LU1 LUOUT = LU2 IJMP = 2 GO TO 35 C C SET LUIN = LU2 C LUOUT = LU1 C 20 LUIN = LU2 LUOUT = LU1 IJMP = 1 C CGIVE PROMPT TO CURRENT LUIN C 35 CALL REIO(2,LUIN,IPRMT,-2 C AND FROM LUIN C REG = REIO(1,LUIN+ 400B,IBUF,-4) C C DETERMINE COMMAND TYPE C DO 50 I = 1,4 K=I IF(IBUF1.EQ.IMCFUN(I)) GO TO 51 50 CONTINUE C C INVALID COMMAND, GIVE LUIN ANOTHER PROMPT GO TO 35 51 CONTINUE C C GO TO COMMAND TYPE C G20,400),K C C TEXT SECTION: C NCHARS ARRAY CONTAINST C ITEXT CONTAINS MESAGE TO OUTPUT C 100 CONTI,400 IF(I.GT.10) GO TO 101 NCHARS(I)=0 101 ITEXT(I)=2H C C START LOADING MESSAGE C DO 110 I = 1,10 REG = REIO(1,LUIN+ 400B,IBUF,40) C C CHECK FOR END OF MESSAGE (?? - IN FIRST POSITION) C IF(IBUF1.EQ.IENTXT) GO TO 35 C C GET LENGTH OF THIS LINE C NCHARS(I)=IB C C LOAD ITEXT WITH CURRENT BUFFER, GET INDEXES INTO ITEXT C INDX1 = I*40 - 39 INDX2 = INDX1 + IB - 1 J=0 DO 105 K = INDX1,INDX2 J = J+1 ITEXT(K) = IBUF(J) 105 IBUF(J)=2 110 CONTIU CAN'T HAVE MORE THAN 10, GO GET ANOTHER COMMAND C GO TO 5 200 IGIV = 1 C C SECTION TO SEND MESSAGES C ANYMESSAGES? C 1 IF(NCHARS(1).NE.0) GO TO 202 C C NO - GO CHECK CH OPTIOT0 C YES - SHIP IT TO CURENT LUO= 1,10 C CHECK FOR END OF MESSAGE INUM = NCHARS(I) NCHARS(I)=0 IF(INUM.EQ.0) GO TO 320 INDX1= I*40 - 39 INDX2= INDX1 + INUM - 1 J= 0 DO 205 K = INDX1,INDX2 J = J+1 IBF()2H 205 IBUF(J) = ITEXT(K) 210 CALL REIO(2,LUOUT,IBUF,INUM) C C GIVESECTION,ET SWITCH C AND CHECK FOR A MEJSSAGE C 300 CONTIN IGIV = TO 201 C C IF IT WAS A SEND GO BACK TO PROMPT C (IGIV = 1) C IF IT WAS A GIVE SWAP LU'S C (IGIV = 2) C 320 GO TO (35,321),IGIV 321 GO TO (10,20),IJMP C C EOJ C 400 CONTINUE CALL EXEC(6) END END$ FTN,L PROGRAM SMESS(2,30) C**** C PROGRAM TO SEND OPERATOR MESSAGE C TO CURRENT TERMINALS (TYPE 0) ONLINE. C FIRST LINE OF FIRST MESSAGE IS G-DATE C AND TIME FOLLOWED BY OPERATOR TEXT. C SUBSEQUENT MESSAGES CONTAIN ONLY TEXT. C C DATE WRITTEN: 7/14/77 C BY: DIGICON GEOPHYSICAL C J. CONNER C C SMESS IS FOREGROUND DISK RESIDENT C UP TO 10/80 CHARACTER RECORDS MAY BE C SHIPPED VIA TEXT-SEND COMMAND. C DATA IS ENTERED AT SYSTEM CONSOLE ONLY. C C C COMMANDS: C TEXT - INITIALIZE TO READ FROM SYSTEM C CONSOLE. C SEND - SEND CURRENT MESSAGE TO EACH C TTY ONLINE. C END - TERMINATE SMESS C C PROMPT IS ? C END OF TEXT IS ?? IF LESS THAN 10 LINES C ENTERED. C C C SUBROUC TYME - FORMATS TIME AND DAY MESSAGE C JLIAN - CALULATES G-DATE FROM CURRENT C JULIAN DATE. COMPLIMENTS OF BOB C FEDEN - NAVOCEAN - CODE 8178. C C C SAMP USAGE: C *ON,SMESS C ?TEXT (ENTERED @LU1) C SYWN FOHOUR C ?? (E (SEND IT OUT) C ?END UTPUT AT TERMINALS: C **TIME: HR:MN:SC DATE: MM/DD/YEAR** C SYSTEM WILL BE DOWN FOR 1 HOUR C C C**** DIMENSION ITEXT(440),IMESS(400),II(5), * IMCFUN(4),IBUF(40),IDYTME(16), * NCHARS(11),ICHARS(10),IREG(2) EQUIVALENCE (IENTXT,IMCFUN(4)),(REG,IREG), * (IREG(2),IB),(IDYTME(1),ITEXT(2)), * (IBUF1,IBUF(1)),(II(1),II1),(NCHARS(2),ICHARS(1)), * (ITEXT(41),IMESS(1)) C DATA HTE,2HSE,2HEN,2H??/ DATA ITEXT(1)/2H**/,ITEXT(18)/2H**/,LU1/1/ C C GET SYSTEM LU IF NOT 1 C CALL RMPAR(II) IF(II1.GT.0) LU1=II1 C C GET CURRENT DAY AND TIME C NCHARS(1)=18 CALL TYME(IDYTME) ICNT=1 C C GIVE PROMPT TO LU1 C 35 CALL REIO(2,LU1,IPRMT,-2) C C GET COMMAND FROM LU1 C CALL REIO(1,LU1+400B,IBUF,-4) C C WHAT IS IT? C DO 50 I=1,3 K=I IF(IBUF1.EQ.IMCFUN(I)) GO TO 51 50 CONTINUE C C INVALID, GIVE LU1 ANOTHER PROMPT C GO TO 35 C C GO TO PROPER COMMAND TYPE C 51 GOTO (100200,300),K C TEXT SECTION: C ICHARS ARRAY COC IMESS ARRAY CONTAINS MESSAGE TO OUTPUT C 100 CONTINUE DO 101 I=1,400 IF(I.GT.10) GO TO 101 ICHARS(I)=0 101 IMESS(I)=2H C C LOAD MESSAGE C DO 110 I=1,10 REG=REIO(1,LU1+400B,IBUF,40) C C END OF MESSAGE? (?? IN FIRST POSITION) C IF(IBUF1.EQ.IENTXT) GO TO 35 ICHARS(I)=IB C C LOAD UP IBUF C INDX1=I*40-39 INDX2=INDX1+IB-1 J=0 DO 105 K=INDX1,INDX2 J=J+1 IMESS(K)=IBUF(J) 105 IBUF(J)=2H 110 CONTINUE C C CAN'T HAVE MORE THAN TEN ECOMDC GO TO 35 C C SEND SECTION: C NCHARS = NUMBER OF WORDS/LINE C ITEXT = MESSAGE TO SEND C IF ICNT = 2 DON'T SEND DAY-TIME MESSAGE C IT'S ALREADY BEEN SENT C 200 CONTINUE DO 210 I=ICNT,11 INUM=NCHARS(I) NCHARS(I)=0 IF(INUM.EQ.0) GO TO 211 INDX1=I*40-39 INDX2=INDX1+INUM-1 J=0 DO 205 K=INDX1,INDX2 J=J+1 IBUF(J)=2H 205 IBUF(J)=ITEXT(K) C C DETERMINE AVAILABLE LU'S A?ND SHIP C THE CURRENT MESSAGE TO EACH. SAME C AS AUTOR SENDS OUT POWER FAIL MESS C DO 209 NLU=1,64 CALL EXEC(100015B,NLU,IEQT5) C C SKIP UNDEFINED AND UNASSIGNED C GO TO 209 C C CHECK FOR TYPE '0' DEVICE GIVE C LINE A LABLE SO COMPILER DOES'NT C GRIPE. 1 IF(IAND(IEQT5,37400B)) 209,2,209 2 IF(NLU.EQ.LU1) GO TO 209 C C CHECK TO SEE IF SET DOWN C IF(IAND(IEQT5,140000B).EQ.40000B) GO TO 209 C C NOPE SEND IT OUT C CALL REIO(2,NLU,IBUF,INUM) 209 CONTINUE 210 CONTINUE C C SET ICNT = 2 FOR NEXT TIME THROUGH C 211 ICNT=2 C C BACK TO THE PROMPT C GO TO 35 C C EOJ C 300 CONTINUE CALL EXEC(6) END END$ FTN,L SUBROUTINE TYME(IBUF) C**** C SUBROUTINE TIME RETURNS 16 WORD(IBUF) C TIME AND DATE MESSAGE READY FOR PRINTING. C NOTE IDM IS RETURNED AS 2 IF LEAP YEAR C OR 99 IF BAD DATE OR 0 IF GOOD. C**** DIMENSION ITIME(5),IYEAR(1),IBUF(16) EQUIVALENCE (ITIME(4),IHR),(ITIME(3),IHM),(ITIME(2),IHS) CALL EXEC(11,ITIME,IYEAR) CALL JLIAN(IYEAR,ITIME(5),IDAY,IMNTH,IDM) IF(IDM.NE.99) GO TO 99 IMNTH = 0 IDAY = 0 IYEAR = 0 99 CALL CODE WRITE(IBUF,100) IHR,IHM,IHS,IMNTH,IDAY,IYEAR 100 FORMAT(6HTIME: ,I2,1H:,I2,1H:,I2,2X, * 6HDATE: ,I2,1H/,I2,1H/,I4) RETURN END END$ FTN,L SUBROUTINE JLIAN (IY,JUDY,ID,IM,LPYR) C ONVERTS JULIAN DATE INTO DAY, MONTH, YEAR FOR ANNOTATION IN OCEAN C IY = YEAR, JUDY = JULIAN DAY, ID = CALENDER DAY, IM = CALENDER MON C OMPLIMENTS OF BOB FEDEN - CODE 8174 - 17 NOV 1971 C - CODE 8178 - 17 NOV 1971 C MODIFIED: 17 JUNE 1977 C DIMENSION JJ(13), AA(12) INTEGER AA DATA JJ/ 0, 31, 59, 90, 120, 151, 181, 212, 243, 1273, 3$"04, 334, 365/ DATA AA/1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12/ LL=IY MM=JUDY IF (LL.LT.0) GO TO 10 IF (LL.EQ.0) GO TO 1 IF (MOD(LL,4).EQ.0) GO TO 4 1 IF (MM.LE.0.OR.MM.GT.365) GO TO 4 2 DO 3 K=2,13 IF (MM.LE.JJ(K)) GO TO 6 3 CONTINUE 4 LPYR=2 IF (MM.LE.0.OR.MM.GT.366) GO TO 10 IF (MM.LE.59) GO TO 2 IF (MM.EQ.60) GO TO 5 MM=MM-1 GO TO 2 5 II=29 K=3 GO TO 7 6 II=MM-JJ(K-1) IF (LL.EQ.0) GO TO 8 IF (MOD(LL,4).NE.0) GO TO 8 IF (MOD(LL,4).EQ.0.AND.MM.LE.59) GO TO 8 MM=MM+1 7 IF (LL.GE.10) GO TO 8 8 ID=II IM=AA(K-1) 9 RETURN C 10 WRITE(6, 11) LL,MM 10 LPYR = 99 GO TO 9 C END END$ 15$   22682-18070 1651 SC 0222 SDLS4 - ROUTINE TO READ INFO FROM CUPERTINO DIST             H0102 hFTN4,L C C VERSION 1 / 10 / 76 JRT C PROGRAM SDLS4,3,99 DIMENSION IPRAM(5),IREG(2),IREQ(20),IBUF(1153) DIMENSION ITITL(40),IDBLOK(43),IPBUF(33),IDCB(144),ISIZE(2) DIMENSION IDCB2(144) C INTEGER BATCH INTEGER YES,TPFORM,EOBFL INTEGER PGLABL(19),FILEFL,FNMBR INTEGER FINDF(27),FNAME(3),SC,CR,FTYPE,FSIZE,RECLN C EQUIVALENCE (X,IREG),(IA,IREG),(IB,IREG(2)) EQUIVALENCE (LU,IPRAM) EQUIVALENCE (TPFORM,ITITL),(IREEL,ITITL(40)) EQUIVALENCE (FNAME,IPBUF(2)),(SC,IPBUF(6)) EQUIVALENCE (CR,IPBUF(10)),(FTYPE,IPBUF(14)) EQUIVALENCE (FSIZE,IPBUF(18)),(RECLN,IPBUF(22)) C DATA BATCH/0/,NFILE/1/ DATA YES/2HYE/ DATA ITITL/35*2H ,2HRE,2HEL,2H #,2H: ,2H / DATA IREQ/20*2H /,ISIZE/-1,0/,FILEFL/-1/ DATA PGLABL/2H0 ,3*2H ,2H P,2HAR,2HT ,2HNU,2HMB,2HER,2H , 1 2H ,2H ,2HTY,2HPE,2H ,2H L,2HAB,2HEL/ C C C STATEMENT FUNCTIONS: C IWORD(I)=IBUF(INDEX+I) C C C C TAKE CARE OF THE AMENITIES FIRST... C CALL RMPAR(IPRAM) IF(LU.EQ.0)LU=1 ILU=LU+400B LLU=LU WRITE(LU,1000) 1000 FORMAT("/SDLS4: VERSION 2-28-76 JRT"/) C WRITE(LU,100) 100 FORMAT(/"/SDLS4: MAG TAPE LU = _") READ(LU,*)MTLU C C TRY TO LOCK THE MAG TAPE C X=LURQ(100001B,MTLU,1) C C C REWIND THE TAPE C 4 CALL EXEC(3,MTLU+400B) C C******************************************************* C C C MAIN LOOP C C 10 IF(BATCH.NE.0)CALL CLOSE(IDCB2,IERR) BATCH=0 IUPFL=0 IREQ=2H WRITE(LU,110) 110 FORMAT(/"/SDLS4: TASK: _") CALL REIO(1,ILU,IREQ,3) IF(IREQ.EQ.2HDI)GO TO 20 IF(IREQ.EQ.2HLO)GO TO 50 IF(IREQ.EQ.2HBA)GO TO 40 IF(IREQ.EQ.2HUP)GO TO 46 IF(IREQ.EQ.2HRE)GO TO 26 IF(IREQ.EQ.2HN )GO TO 87 IF(IREQ.EQ.2HLL)GO TO 85 IF(IREQ.EQ.2HLA)GO TO 21 IF((IREQ.EQ.2HEN).OR.(IREQ.EQ.2HEX))GO TO 90A C C C******************************************************* C C C ERROR SECTION C 11 WRITE(LU,111) 111 FORMAT("/SDLS4: INPUT ERROR!") GO TO 10 C 12 IF(INDEX.NE.0)GO TO 14 WRITE(LU,112) GO TO 10 C 14 IF(INDEX.NE.-4)GO TO 16 WRITE(LU,116)NFILE GO TO 10 C 16 WRITE(LU,117)INDEX GO TO 10 112 FORMAT("/SDLS4: END OF TAPE") 116 FORMAT("/SDLS4: BREAK AT FILE"I5) 117 FORMAT("/SDLS4: ERROR"I4". PLEASE REFER TO LISTINGS...") C 19 WRITE(LU,119)IERR 119 FORMAT("/SDLS4: FILE ERROR"I5) CALL CLOSE(IDCB,IERR) GO TO 10 C C TASK TO REWIND THE TAPE C 26 CALL GETRC(IBUF,MTLU,-3,INDEX,NFILE) GO TO 10 C******************************************************* C C C C DIRECTORY SECTION: C LIST THE ALL PROGRAM I.D. BLOCKS INTO C A SPECIFIED FILE - - FORMATTED FOR LINE PRINTER * DUMP * C 20 ASSIGN 21 TO IRETN WRITE(LU,121) 121 FORMAT("/SDLS4: LIST FILE: _") GO TO 501 C 21 IERR=-2 IF(FILEFL.GT.0)GO TO 19 IF(NFILE.NE.1)CALL GETRC(IBUF,MTLU,-3,INDEX,NFILE) CALL GETRC(IBUF,MTLU,0,INDEX,NFILE) IF(INDEX.LE.0)GO TO 12 IF(IWORD(1).EQ.0)GO TO 23 WRITE(LU,123) 123 FORMAT("/SDLS4: TAPE HAS NO LABEL!! ???") GO TO 26 C C PUT LABEL INFO INTO HEADER FOR LISTING C 23 IBUF(INDEX+16)=2H IBUF(INDEX+25)=2H IBUF(INDEX+31)=2H C DO 24 I=2,34 ITITL(I)=IWORD(I+1) 24 CONTINUE CALL CODE WRITE(IREEL,124)IBUF(INDEX+37) 124 FORMAT(I2) C C IF IT'S A 'LABEL' REQUEST, WE'RE DONE C IF(IREQ.NE.2HLA)GO TO 241 CALL REIO(2,ILU,ITITL,40) GO TO 10 241 CALL GETRC(IBUF,MTLU,0,INDEX,NFILE) IF(INDEX.LE.0)GO TO 12 IF(IWORD(1).NE.-2)GO TO 241 C C SET UP POINTERS... C 25 NLINE=0 TPFORM=2H PGLABL(2)=2HFI PGLABL(3)=2HLE PGLABL(4)=2H C C ID BLOCK LISTING SECTION C 30 ^IF(FILEFL.EQ.0)GO TO 31 ISIZE=FSIZE IF(ISIZE.EQ.0)ISIZE=-1 ISIZE(2)=RECLN CALL CREAT(IDCB,IERR,FNAME,ISIZE,4,SC,CR) IF(IERR.LT.0)19,33 C 31 CALL OPEN(IDCB,IERR,FNAME,0,SC,CR) IF(IERR.LT.0)GO TO 19 C LOOP C C 33 CALL GETRC(IBUF,MTLU,1,INDEX,NFILE) IF(INDEX)39,38,32 32 IF(IWORD(1).NE.4)GO TO 34 WRITE(LU,130) 130 FORMAT("/SDLS4: END OF DIRECTORY") GO TO 38 C 34 N=NFILE IBUF(INDEX+31)=IOR(IAND(IWORD(13),77400B),40B) IBUF(INDEX+11)=2H IBUF(INDEX+13)=IOR(IAND(IBUF(INDEX+13),77400B),40B) IBUF(INDEX+31)=2H C IF(NLINE/50*50.NE.NLINE)GO TO 36 CALL WRITF(IDCB,IERR,ITITL,40) TPFORM=2H1 CALL WRITF(IDCB,IERR,PGLABL,19) CALL WRITF(IDCB,IERR,PGLABL(11),2) C 36 CALL CODE WRITE(IDBLOK,136)N,(IBUF(INDEX+I),I=3,13),(IBUF(INDEX+J),J=18,44) 136 FORMAT(1X,I4,": "11A2,1X,27A2) CALL WRITF(IDCB,IERR,IDBLOK,43) IF(IERR.LT.0)GO TO 19 NLINE=NLINE+1 GO TO 33 C C END LOOP C 38 CALL WRITF(IDCB,IERR,ITITL,1) IF(IERR.LT.0)GO TO 19 39 CALL LOCF(IDCB,IERR,IREC,IRB,IOFF,ISEC) ITRUN=ISEC/2-IRB-1 CALL CLOSE(IDCB,IERR,ITRUN) IF(INDEX.LE.0)GO TO 12 IF(BATCH)42,10,42 C C******************************************************* C C C INITIATE BATCH MODE OPERATIONS - GET INPUT FILE C C BATCH FILE FORMAT: C C FILE NAME (NAMR) C STOCK NUMBER OR FILE NUMBER (FORWARD SEARCH ONLY IF GIVEN ST #) C . C . C FILE NAME C STOCK NUMBER OR FILE NUMBER C C ALL FIELDS MUST BE LEFT JUSTIFIED C IF A "/E" IS ENCOUNTERED, THE TAPE WILL BE RE-WOUND C C 40 ASSIGN 41 TO IRETN WRITE(LU,140) 140 FORMAT("/SDLS4: ENTER BATCH-FILE NAME: _") GO TO 501 C 41 IF(FILEFL.EQ.-1)GO TO 11 BATCH=1 CALL OPEN(IDCB2,IERR,FNAME,2,SC,CR) IF(IERR.LT.0)GO TO 19 C #42 CALL READF(IDCB2,IERR,IREQ,20,LEN) IF(IERR.LT.0)GO TO 19 IF(LEN.EQ.-1)GO TO 10 IF(IREQ.EQ.2H/E)GO TO 26 IB=LEN ASSIGN 51 TO IRETN GO TO 502 C C C INITIATE 'UPDATE MODE OPERATION': C SIMILAR TO BATCH EXCEPT THAT ONLY TAPE FILES WHOSE REV CODES C ARE GREATER THAT THOSE SPECIFIED IN THE REQUEST BATCH FILE C WILL BE LOADED C 46 IUPFL=1 GO TO 40 C C C*************************************************** C C LOAD / STORE REQUESTS C 50 ASSIGN 51 TO IRETN WRITE(LU,150) 150 FORMAT("/SDLS4: LOAD INTO FILE: _") GO TO 501 C 51 FNMBR=0 DO 552 I=1,20 IREQ(I)=2H 552 CONTINUE IF(BATCH.EQ.0)GO TO 551 CALL READF(IDCB2,IERR,IREQ,8,LEN) IF(IERR.LT.0)GO TO 19 IF(LEN.EQ.-1)11,58 C 551 WRITE(LU,151) 151 FORMAT("/SDLS4: ENTER STOCK # OR FILE #: _") CALL REIO(1,ILU,IREQ,8) 58 IF(IAND(IREQ,77400B).EQ.20000B)GO TO 11 IF(IREQ(4).NE.2H )GO TO 60 CALL CODE READ(IREQ,*)FNMBR IF(FNMBR.LE.1)GO TO 11 C C C TAPE SEARCH GIVEN FILE NUMBER C (ASSUME REWIND SPEED = 4 X READ SPEED AND ALL FILES SAME SIZE) C 57 IF(FNMBR.GT.NFILE)GO TO 52 ITIME1=NFILE/4+FNMBR ITIME2=NFILE-FNMBR IF(ITIME2.LT.ITIME1)GO TO 54 C CALL GETRC(IBUF,MTLU,-3,INDEX,NFILE) 52 DO 53 I=1,FNMBR-NFILE CALL GETRC(IBUF,MTLU,-1,INDEX,NFILE) IF(INDEX.LE.0)GO TO 12 53 CONTINUE GO TO 56 C 54 DO 55 I=1,ITIME2+1 CALL GETRC(IBUF,MTLU,-2,INDEX,NFILE) IF(INDEX.LE.0)GO TO 12 55 CONTINUE CALL GETRC(IBUF,MTLU,-1,INDEX,NFILE) IF(INDEX.LE.0)GO TO 12 C C TAPE IS NOW POSITIONED... C 56 CALL GETRC(IBUF,MTLU,0,INDEX,NFILE) IF(INDEX.LE.0)12,70 C C TAPE SEARCH GIVEN STOCK NUMBER (FORWARD SEARCH ONLY) C 60 CALL GETRC(IBUF,MTLU,1,INDEX,NFILE) IF(INDEX.LE.0)GO TO 12 DO 62 I=1,6 IF(IREQ(I).NE.IWORD(I+2))GO TO 60 62 CONTINUE C IF(IREQ(7).EQ.2H )GO TO 70 IF(IUPFL.EQ.0)GO TO 70 C IF CHANGE FROM ASCII TO DATE CODE, ASSUME DATE CODE IS MORE RECENT IF ((IREQ(8).EQ.2H ).AND.(IWORD(9).LT.2HA ))71,63 C 63 IF(IWORD(9).GT.IREQ(7))GO TO 71 IF((IWORD(9).EQ.IREQ(7)).AND.(IWORD(10).GT.IREQ(8)))71,42 163 FORMAT(9X,"REV CODE DISCREPANCY:") C C CHECK PROG TYPE, FIGURE OUT FILE TYPE, CREATE THE FILE C 70 IDSCRP=IREQ(7)-IWORD(9)+IREQ(8)-IWORD(10) IF(IDSCRP.NE.0)WRITE(LLU,163) C C IF UPDATE MODE, UPDATE THE BATCH-FILE TO HAVE NEW REV CODES C 71 IF(IUPFL.EQ.0)GO TO 711 IREQ(7)=IWORD(9) IREQ(8)=IWORD(10) CALL POSNT(IDCB2,IERR,-1) CALL WRITF(IDCB2,IERR,IREQ,LEN) C 711 ITYPE=IAND(IWORD(12),77400B) ITYPE=ITYPE+ITYPE/256 FTYPE=0 IF(ITYPE.EQ.2HSS)FTYPE=4 IF(ITYPE.EQ.2HRR)FTYPE=5 IF(ITYPE.EQ.2HAA)FTYPE=7 IF(FTYPE.NE.0)GO TO 72 WRITE(LU,170)ITYPE 170 FORMAT("/SDLS4: ILLEGAL PROGRAM TYPE: "A2) GO TO 10 C 72 WRITE(LLU,172)(FNAME(I),I=1,3),(IBUF(INDEX+I),I=3,10), & (IBUF(INDEX+I),I=18,44) 172 FORMAT(1X,3A2,": ",8A2,1X,27A2) IF(FILEFL.NE.-1)GO TO 74 ISIZE=FSIZE ISIZE(2)=RECLN IF(ISIZE.EQ.0)ISIZE=-1 CALL CREAT(IDCB,IERR,FNAME,ISIZE,FTYPE,SC,CR) IF(IERR.LT.0)19,75 C 74 CALL OPEN(IDCB,IERR,FNAME,0,SC,CR) IF(IERR.LT.0)GO TO 19 IF((FILEFL.NE.-1).AND.(IERR.GT.0))WRITE(LLU,174)FNAME 174 FORMAT(9X"DUPLICATE FILE NAME - - "3A2) FILEFL=IERR C C LOOP READ TAPE, LOAD FILE C C CHECK THE DATA TYPE (IWORD(1)): C TYPE C A) EOB BLOCKS => WRITE 0-LENGTH RECORD * 3 C B) EOF BLOCKS => WRITE EOF 4 C C) DATA BLOCKS => THAT'S FINE!!! -1 C D) PHYSICAL EOF => DONE! -2 C E) ELSE => E RROR C C * EXCEPT THE FIRST AND LAST ONES C C C ALSO, CHECK GETRC STATUS (INDEX): C C ANY ERROR (OR BREAK) ENCOUNTERED DURING PROGRAM LOAD WILL C RESULT IN THE LOAD FILE BEING PURGED (EXCEPT IF TYPE 0) AND C THE TAPE BEING POSITIONED BACK TO THE START OF THAT FILE C C IRECN=0 75 CALL GETRC(IBUF,MTLU,0,INDEX,NFILE) IF(INDEX.LE.0)GO TO 80 NWDS=IBUF(INDEX) IF(IWORD(1).NE.4)GO TO 755 CALL WRITF(IDCB,IERR,IBUF,-1) GO TO 75 755 IF(IWORD(1).NE.3)GO TO 76 756 IF(IRECN.NE.0)EOBFL=1 GO TO 75 76 IF(IWORD(1).EQ.-2)GO TO 77 IF(EOBFL.NE.0)CALL WRITF(IDCB,IERR,IBUF,0) EOBFL=0 IF(IWORD(1).NE.-1)GO TO 78 C IF(NWDS.EQ.0)GO TO 756 IRECN=1 CALL WRITF(IDCB,IERR,IBUF(INDEX+2),NWDS) IF(IERR.LT.0)19,75 C C EOF FOUND C 77 WRITE(LU,177) 177 FORMAT("/SDLS4: LOAD COMPLETE") GO TO 39 C C RECORD OUT OF SEQUENCE C 78 INDEX=-14 C C BREAK DURING LOAD: PURGE ACTIVE FILE (UNLESS TYPE 0) C SET TAPE TO START OF CURRENT FILE C 80 CALL CLOSE(IDCB,IERR) IF(FILEFL.EQ.0)GO TO 81 CALL PURGE(IDCB,IERR,FNAME,SC,CR) IF(IERR.LT.0)GO TO 19 81 CALL GETRC(IBUF,MTLU,-2,INDEX,NFILE) CALL GETRC(IBUF,MTLU,-1,INDEX,NFILE) GO TO 12 C C******************************************************** C C PRINT CURRENT FILE NUMBER C 87 WRITE(LU,187)NFILE 187 FORMAT("/SDLS4: CURRENT MAG TAPE FILE ="I5) GO TO 10 C C CHANGE LOG LU C 85 WRITE(LU,185) 185 FORMAT("/SDLS4: ENTER LOG LU: _") READ(LU,*)LLU GO TO 10 C C C********************************************************* C C C 'SUBROUTINE' TO OPEN AND CREATE REQUIRED FILES C C NOTES: INPUTS 'NAMR' C TRIES AN EXCLUSIVE OPEN ON THE FILE C IF IT EXISTS AS TYPE 1, CLOSE IT 'TILL NEEDED C IF NON-EXISTANT, FLAG IT AS 'NEEDED' C ( WHY TIE UP A FItLE (OR DISC) IF YOU HAVE TO SEARCH THE TAPE FIRST) C 501 DO 511 I=1,20 IREQ(I)=2H 511 CONTINUE X=REIO(1,ILU,IREQ,20) 502 DO 504 I=1,IB IF(IAND(IREQ(I),77400B).NE.35000B)GO TO 503 IREQ(I)=IOR(IAND(IREQ(I),377B),26000B) 503 IF(IAND(IREQ(I),177B).NE.72B)GO TO 504 IREQ(I)=IOR(IAND(IREQ(I),177400B),54B) 504 CONTINUE C IB=IB*2 CALL PARSE(IREQ,IB,IPBUF) IF(IPBUF.LE.1)GO TO 11 C FILEFL=-1 CALL OPEN(IDCB,IERR,FNAME,0,SC,CR) IF(IERR.GE.0)GO TO 512 IF(IERR.NE.-6)GO TO 19 GO TO IRETN C 512 FILEFL=IERR CALL CLOSE(IDCB,IERR) GO TO IRETN C C********************************************************** C C C END SECTION REWIND TAPE AND UNLOCK THE LU C C 90 CALL GETRC(IBUF,MTLU,-3,INDEX,NFILE) CALL LURQ(100000B,MTLU,1) 990 WRITE(LU,190) 190 FORMAT("/SDLS4: DONE!"/) C END END$ C ASMB,R,B,C * NAM GETRC,7 VERSION 4/24/75 JRT * ENT GETRC EXT EXEC,.ENTR,IFBRK * * * * * CALLING INFORMATION: * * IFLAG: -3 REWIND THE TAPE * -2 REVERSE 1 FILE (SET TAPE TO PREVIOUS FILE) * -1 FORWARD FILE (FIND EOF) * 0 FIND NEXT SEQUENTIAL RECORD * 1 FIND PROGRAM ID BLOCK * 2 FIND LIBRARY DIRECTORY RECORD * 3 FIND EOB BLOCK * 4 FIND AN EOF BLOCK * ELSE REWIND & START ALL OVER.... * * * IBUF IS 1153 WORDS LONG AND RESIDENT IN THE CALLING PROGRAM. * GETRC READS INTO IBUF FROM MAG TAPE (MTLU) AND SETS 'INDEX' * TO POINT TO THE DESIRED ITEM (RECORD). RECORD STRUCTURE ON * THE MTLS TAPE IS A HIERARCHY OF DATA RECORDS => LOGICAL RECORDS * => PHYSICAL RECORDS. GETRC KEEPS TRACK OF THIS CRAP. * WHEN DATA RECORDS ARE SPLIT BETWEEN TWO PHYSICAL MAG TAPE RECORDS * GETRC WILL MOVE THE FIRST PORTION OF THE RECORD INTO LOW-INDEXED * PART OF 'IBUF' THEN READ THE NEXT: MAG TAPE RECORD TO GET THE REST * OF THE DATA RECORD. THIS IS WHY 'IBUF' MUST BE 1153 WORDS LONG * EVEN THOUGH THE LARGEST MAG TAPE RECORD IS 1024 WORDS. THE * ROUTINE USES "CFLAG" AS A FLAG TO INDICATE A RECORD REQUIRES * CONTINUATION. MAG TAPE RECORDS ARE READ INTO 'IBUF' STARTING * AT IBUF(129) IN ORDER TO LEAVE ROOM FOR A POSSIBLE MOVE AS * DESCRIBED HERE. * * * GETRC RETURNS THE CURRENT PHYSICAL FILE NUMBER IN 'NFILE' * * RETURN FORMAT IN 'IBUF': * * IBUF(INDEX) = LENGTH OF DATA RECORD * IBUF(INDEX+1) = RECORD TYPE 1-4 AS ABOVE * 0 = TAPE LABEL RECORD * -1 = DATA RECORD * -2 = PHYSICAL EOF ENCOUNTERED * IBUF(INDEX+2) = FIRST DATA WORD * * * SKP * * * * RETURN FORMAT FOR 'INDEX': * * -14 = RECORD OUT OF SEQUENCE * -13 = ILLEGAL PROGRAM TYPE * -12 = DATA RECORD LENGTH > 255 * -11 = INTERNAL ERROR SEE LISTING * -10 = INTERNAL ERROR SEE LISTING * -9 = INTERNAL ERROR SEE LISTING * -8 = LOGICAL RECORD LENGTH ERROR * -7 = ILLEGAL RECORD LENGTH * -6 = LOGICAL RECORD OUTSIDE OF PHYSICAL BOUNDS * -5 = INTERNAL ERROR SEE LISTING * -4 = BREAK FLAG WAS SET * -3 = ILLEGAL LOGICAL RECORD TYPE * -2 = CHECKSUM ON DATA RECORD * -1 = CHECKSUM ERROR ON PHYSICAL RECORD * 0 = END OF TAPE * >0 = POINTER INTO IBUF FOR DESIRED RECORD * * NOTES: IPOINT IS LOCAL BUFFER POINTER * PMAX POINTS TO END OF LOGICAL RECORD * NMAX POINTS TO END OF PHYSICAL RECORD * LRLNTH IS LENGTH OF LOGICAL RECORD * * * * * SKP * * * IBUF BSS 1 MTLU BSS 1 IFLAG BSS 1 INDEX BSS 1 NFILE BSS 1 * GETRC NOP JSB .ENTR DEF IBUF * * SET UP OFT-USED5 ADDRESSES INTO DATA BUFFER * LDA IBUF ADA D128 SET ADDRESS OF START OF ACTIVE STA IB129 PART OF DATA BUFFER INA STA IB130 AND NEXT WORD,TOO. * LDA D129 SET RETURN-POINTER TO START OF STA INDEX,I DATA ARRAY AS WELL. LDA IFLAG,I CHECK FOR 'QUICKIE'S 1ST CPA DM3 JMP RWIND -3 = REWIND THE TAPE CPA DM2 JMP RVFIL -2 = REVERSE 1 FILE CPA DM1 JMP FWFIL -1 = FORWARD ONE FILE SSA IFLAG CAN'T BE <-3 OR >4... JMP RWIND ELSE TAPE REWINDS ADA DM5 SSA JMP PHYSR IF O.K., GET A DATA RECORD * *q * * SKP * * RWIND LDA B400 REWIND CODE... JSB TAPE GO DO IT... CLA,INA RESET MAG TAPE FILE # TO 1 STA FILE RTRN0 CLA '0' RETURN POINT (EOF RETURN) STA PMAX RESET ALL LOCAL POINTERS STA NMAX STA BPNTR LDA DM2 SET DATA WORD 2 = -2 STA IB130,I AS INDICATION OF EOF * RTRN1 LDA FILE '1' RETURN, PASS RESULTS TO CALLER STA NFILE,I JSB BCHK CHECK BREAK FLAG JMP GETRC,I * * REVERSE 1 FILE ON THE TAPE * RVFIL LDA B1400 REV FILE CODE JSB TAPE GO DO IT... LDA B1400 GO DO IT AGAIN... JSB TAPE LDA FILE ADA DM2 RESET THE FILE COUNTER SZA,RSS IF FILE # <=0 SET IT CLA,INA EQUAL TO 1 SSA CLA,INA STA FILE ELSE, IT'S O.K. * * FORWARD SPACE ONE FILE * FWFIL LDA B1300 FORWARD FILE CODE JSB TAPE GO DO IT... ISZ FILE INCREMENT FILE COUNTER JMP RTRN0 RETURN THRU 'EOF RETURN' * * SKP * * * START LOOKING FOR A TAPE DATA RECORD HERE * PHYSR LDA BPNTR IF LOCAL POINTER IS WITHIN LDB NMAX DATA BUFFER BOUNDS, THEN WE DON'T JSB .GE. NEED A PHYSICAL TAPE READ YET... SEZ,RSS JMP LR.1 SO GO GET THE NEXT LOGICAL RECORD! * PHSR2 JSB BCHK IF NEED A TAPE READ, CHECK BREAK LDA D129 FLAG FIRST. ALL O.K., PRESET RETURNED STA INDEX,I POINTER. RESET LOCAL RECORD CLA POINTERS ALSO. STA PMAX STA NMAX * JSB EXEC GO GET THAT MOTHA!!! DEF *+5 DEF ONE DEF MTLU,I IB129 NOP DEF D1024 STB TLOG SAVE TRANSMISSION LOG (AAMCO TOOT TOOT) * JSB EXEC IS IT AN EOF? DEF *+4 DEF D13 DEF MTLU,I DEF ISTAT * LDA ISTAT AND B200 SZA,RSS JMP GOT1 IF NOT AN EOF, PROCESS THE RECORD! * * EOF PROCESSING * LDA DM2 SET IBUF(130) = -2 TO SIGNAL CALLER STA IB130,I ISZ FILE INCREMENT FILE COUNTER ISZ EOTFL COUNT # OF EOF'S IN A ROW... JMP PCNT1 IF NOT 2 IN A ROW, CONTINUE CLA ELSE CLEAR EOF FLAG AND SIGNAL STA INDEX,I CALLER THAT THIS IS IT!!! STA EOTFL RESET EOT FLAG JMP RTRN1 TAPES ALL DONE!!! * PCNT1 CCA GOT 1 EOF, GET SET FOR STA EOTFL POSSIBLE NEXT ONE. LDA IFLAG,I IF OP CODE = 0 (FIND NEXT SZA,RSS SEQUENTIAL RECORD) THEN RETURN. JMP RTRN1 IF HE WANTS SOMETHING SPECIAL JMP PHSR2 GO TRY AGAIN * SKP * * * START PROCESSING MAG TAPE RECORDS HERE... * * CHECK TAPE RECORD'S CHECKSUM * GOT1 STA EOTFL RESET EOT FLAG LDA TLOG CHECK THAT RECORD WAS < 1024 LDB D1024 JSB .LE. SEZ JMP CHK.1 ALL'S O.K. GO TO CHK.1 LDA DM7 ELSE, -7 = ERROR CODE! .BAD STA INDEX,I THIS IS BAD GUY RETURN! JMP RTRN0 NOW TO 'EOF RETURN'! * CHK.1 LDB IB130 = DATA ADDRESS START LDA IB129,I GET SIO COUNT ARS CHANGE TO WORD COUNT ADA IB129 ADD STARTING ADDRESS STA END = END = DATA ADDRESS END LDA B,I yaSET UP CHECKSUM STA CHKSM LOOP1 INB INCREMENT ADDRESS CPB END = LAST ADDRESS? JMP CHK.2 YES, CHECK CHECKSUMS ADA B,I NO, KEEP ADDING.... JMP LOOP1 DO IT AGAIN, DO IT AGAIN, DO IT... * CHK.2 CPA B,I OURS = THEIRS??? JMP PH.OK YES, PHYS. RECORD O.K. CCA NO, ---- YOU!!! JMP .BAD * PH.OK STB NMAX SAVE 'END' AND MAX PHYS REC LDA IB130 ADDRESS. RESET WORK POINTER STA BPNTR * * SKP * * * START PROCESSING LOGICAL RECORDS HERE... * * THERE'S A LOT OF CHECKING TO DO: * 1) MAYBE WE ONLY NEED A DATA RECORD (ASCII LINE, ABSOLUTE RECORD * ETC.). IF WE ACTUALLY DO NEED A NEW LOGICAL RECORD GO TO '3)' * ELSE WE'RE STILL PROCESSING THE PREVIOUS ONE AND... * 2) IF WE'RE HERE, WE HAVE PROGRAM DATA SINCE MTLS INFO-RECORDS * MUST BY DEFINITION BE PROCESSED COMPLETELY BEFORE ASKING FOR * A NEW ONE. THUS, IF THE OP-CODE (IFLAG IN CALL) IS NOT A * REQUEST FOR NEXT-SEQUENTIAL-RECORD (0) IT IS FOR AN MTLS * RECORD AND THEREFOR EVEN IF WE ARE NOT DONE WITH THIS ONE WE * NEED A NEW ONE ANYHOW (GO TO '3)') ELSE GO PROCESS DATA... * 3) IF WE'RE DONE WITH THE LOGICAL RECORD SEE IF THERE'S ANOTHER * ALREADY IN MEMORY. IF NOT, GO GET ANOTHER MAG TAPE RECORD * (PHYSICAL READ VS. LOGICAL READ) * 4) THE LOGICAL RECORD LENGTH SHOULD BE CONSISTENT WITH PHYSICAL * RECORD BOUNDS. AS OF 4/75, THERE ARE MTLS TAPES OUT WITH ERRORS * IN PROGRAM ID BLOCK RECORDS (THEY'RE MISSING A WORD) SO THIS * CHECK CAN'T BE DONE YET. * 5) CHECK LOGICAL RECORD TYPE. IF IT'S AN MTLS RECORD, IT'S LENGTH * SHOULD AGREE WITH THE TABLE VALUES (SEE 'LNTAB') * * LR.1 LDA BPNTR LDB PMAX = BPNTR . IF WORK POINTER EXCEEDS JSB .GE. LOG REC POINTER, SO NEED A SEZ NEW LOGICAL RECORD. ELSE WE JMP GETLR xGOT DATA. CHECK THAT OP-CODE LDA IFLAG,I IS 0, OR ELSE WE NEED A SZA NEW LOGICAL RECORD. JMP NXTLR LDA PRGTP PROCESS DATA ACCORDING TO CPA SS PROGRAM TYPE (S, R, OR ABS) JMP SRC.2 IF TYPE = 'SS', HAVE SOURCE. JMP REL.1 ELSE CHECK FOR RELOCATABLE... * * SKP * * * GET A NEW LOGICAL RECORD * GETLR LDA BPNTR NEED A PHYSICAL RECORD FIRST? LDB NMAX (I.E. IS WORK POINTER OUT OF BOUNDS) JSB .GE. SEZ JMP PHSR2 YES, GET ONE * LDA BPNTR,I NO, GET LR RECORD LENGTH CMA,INA STA LRLNT SAVE IT. SSA,RSS IF (-) = WORDS JMP *+5 IF(+) = CHARACTERS. CONVERT CMA,INA TO (+) WORDS INA ARS STA LRLNT SAVE IT INA SET PMAX = POINTER + LENGTH + 1 ADA BPNTR STA PMAX THIS IS MAX LR ADDRESS * * TAKE AWAY *'S TO ENABLE THIS SECTION * * LDB NMAX IF LR BOUND EXCEEDS PHYS REC * JSB .GT. BOUND, THEN NO GOOD! * SEZ SET EOF (THIS SHOULD MUCK THINGS UP! * JMP RTRN0 * SKP * * * PROCESS A NEW LOGICAL RECORD... * * IF LENGTH >= 0 HAVE A DATA RECORD: SOURCE * RELOCATABLE * ABSOLUTE * * LENGTH < 0 & WE HAVE AN MTLS-INFO RECORD * * WORD 2 MEANING LENGTH * 0 TAPE LABEL 37 * 1 PROGRAM I.D. BLOCK 129 * 2 LIBRARY DIRECTORY 129 * 3 EOB BLOCK 1 * 4 EOF BLOCK 3 * * LDA BPNTR,I GET LENGTH AGAIN SSA IF < 0, PROCESS MTLS STUFF JMP .MTLS (CHECK IT FIRST...) LDA IFLAG,I CHECK OP-CODE: MUST BE = 0! SZA,RSS OR GET A NEW LOGICAL RECORD JMP SRC.1 IF = 0, WE HAVE DATA, O.K. JMP NXTLR ELSE GET NEXT LOGICAL RECORD. * *  SKP * * * PROCESS MTLS-INFO RECORDS * .MTLS CLA RESET 'CONTINUATION' FLAG STA CFLAG SO WE KNOW THAT NEXT DATA LDA BPNTR RECORD IS A NEW ONE... INA LDA A,I GET RECORD TYPE STA RECTP SAVE IT CPA IFLAG,I IS IT WHAT HE WANTS? JMP GOTIT YES, GO TO IT BABY!!! LDB IFLAG,I NO, WILL HE TAKE ANYTHING? SZB,RSS YES, WE GOT THAT, TOO! JMP GOTIT * NXTLR LDA PMAX GET NEXT LOGICAL RECORD STA BPNTR RESET WORK POINTER JMP GETLR GO THRU NORMAL CHANNELS. * * * SKP * * * * PROCESS MTLS INFO RECORDS * * * GOTIT CPA FOUR IF WITHIN 0 TO 4, O.K. JMP *+6 AND THREE CPA RECTP JMP *+3 LDA DM3 ELSE ERROR CODE = -3 JMP .BAD * ADA LNTAB INDEX INTO LENGTH TABLE LDA A,I AND VERIFY RECORD LENGTH CPA LRLNT IF AGREE, ALL'S WELL... JMP M.OK LDB BPNTR EXECEPTION!: THE LAST PROG ADB THREE ID BLOCK IN THE LIBRARY IS LDB B,I A SHORT ONE INDICATING THE END CPB .99 OF THE LIBRARY. IT'S FOR JMP M.OK PART NUMBER 99999-99 ETC LDA DM8 ELSE ERROR CODE = -8 JMP .BAD * M.OK STA BPNTR,I SET POINTERS, ETC: LDA IBUF SET (+) LR LNTH IN BUFFER CMA,INA SET 'INDEX' = INDEX INTO ARRAY ADA BPNTR SET LOCAL POINTER = PMAX INA SO NEXT ROUND GETS NEW RECORD STA INDEX,I IF HAVE ID BLOCK, SAVE PROG TYPE LDA PMAX RETURN TO CALLER LDB BPNTR STA BPNTR LDA RECTP CPA ONE RSS JMP RTRN1 * ADB TWELV GET PROG TYPE CHARACTER LDA B,I ISOLATE IT & DUPLICATE IT AND UPPER SO IT'S 'SS' OR 'AA' OR 'RR' STA B BLF,BLF IOR B STA PRGTP SAVE IT JMP RTRN1 RETURN * * SKP * * * PROCESS PROGRAM DATA * * SRC.1 ISZ BPNTR POINT TO DATA INFO LDA PRGTP CPA SS IS IT SOURCE DATA? RSS JMP REL.1 NO, CHECK FOR RELOCATABLE * * * SOURCE RECORDS (THE WORST) * * PHYSICALLY MOVE 'EM FROM WHERE THEY ARE (IBUF(129) OR ABOVE) TO * LOW IN THE BUFFER (IBUF(1)). GOTTA DO THIS 'CAUSE CR & LF NOT * NECESSARILY IN THE SAME WORD. SDLS (VS. MTLS) DOES SOME CLEANUP * OF TAPE RECORDS TO TRY TO HAVE THAT, BUT IT CAN'T BE GUARANTEED... * ALSO, PREFACE THE RECORD WITH FAKE LENGTH AND TYPE TO MAINTAIN * FORMAT COSISTENCY WITH MTLS-INFO RECORDS. * * * NOTES BBYTE: SOURCE/DESTINATION BYTE * DBYTE: POINTERS * DPNTR: DESTINATION BUFFER ADDRESS * LFFLG: LINE-FEED FLAG * * LDA B177 XOR SHIFT RE-SET: SOURCE BYTE POINTER STA BBYTE LINE FEED FLAG CLA CONTINUATION FLAG STA LFFLG LDB CFLAG IF IT'S NOT A CONTINUATION, RESET STA CFLAG THE DESTINATION BYTE POINTER AND SZB ADDRESS POINTER JMP SRC.3 SRC.2 LDA TWO NOTE: CONTINUATION OCCURS WHEN ADA IBUF A DATA RECORD IS SPLIT 'TWIXT STA DPNTR TWO MAG TAPE RECORDS. LDA B177 STA DBYTE * * SKP * * * * LOOP FOR PROCESSING SOURCE CODE * SRC.3 LDA BPNTR IF WE'RE OUT OF THE BUFFER LDB PMAX WE NEED A NEW RECORD JSB .GE. SEZ,RSS JMP SRC.4 CLA,INA STA CFLAG SET CONTINUATION FLAG JMP GETLR GO GET A RECORD * SRC.4 LDA BPNTR,I GET BYTE W/O PARITY AND BBYTE STA B AND DBYTE HAVE TO SHIFT IT? SZA IE. DO WE WANT THE CHAR WHERE BLF,BLF 'DBYTE' AIN'T? LDA B IF SO, SHIFT ALREADY! CPA HI.CR IGNORE IT IF IT'S RSS A CARRIAGE RETURN CPA LO.CR JMP IGNOwR CPA HI.LF IF IT'S A LINE FEED THEN RSS MAKE IT A SPACE AND SET CPA LO.LF THE LINE FEED FLAG RSS JMP STUFF ELSE STUFF IT IN BUFFER ALS,ALS LINE UP LF BITS WITH SPACE AND DBLSP (DON'T KNOW HI OR LO) STA LFFLG STUFF STA CHAR SAVE THE CHARACTER * LDA DBYTE GET GOOD BYTE FROM DESTINATION AND DPNTR,I IOR CHAR INSERT NEW CHARACTER STA DPNTR,I PUT IN DESTINATION BUFFER * LDA DBYTE RESET BYTE POINTERS XOR SHIFT STA DBYTE SLA ISZ DPNTR * * * SKP * * IGNOR LDA BBYTE SET UP NEXT SOURCE BYTE XOR SHIFT MASK STA BBYTE IF GETTING HIGH BITS NEXT, SLA,RSS INCREMENT WORD POINTER. ISZ BPNTR * LDA LFFLG GET A LINE FEED? SZA,RSS JMP SRC.3 NO, LOOP SOME MORE CLA YES, RESET THE FLAG STA LFFLG SET THE RECORD LENGTH LDA IBUF ADA TWO (2 FOR LENGTH & TYPE) CMA,INA ADA DPNTR STA IBUF,I * LDB IBUF RETURN RECORD TYPE INB CCA STA B,I CLA,INA SET POINTER = 1 STA INDEX,I JMP RTRN1 RETURN... * * SKP * * * RELOCATABLE & ABSOLUTE RECORDS * * REL.1 LDA CFLAG IS IT A CONTINUATION? SZA,RSS JMP REL.2 NO, CONTINUE NORMALLY LDA TEMP1 YES, RESET TEMP VALUES STA BPNTR LDA TEMP2 STA IB129,I OVERWRITE OLD SIO COUNTS WITH LDA TEMP3 NEW DATA STA IB130,I CLA STA CFLAG * REL.2 LDB PMAX LDA BPNTR,I GET ADDRESS OF FIRST NON- SZA ZERO WORD (RECORD LENGTH) JMP REL.3 GOT IT! GO PROCESS ISZ BPNTR CPB BPNTR IF RUN OUT OF DATA, GO JMP GETLR GET ANOTHER RECORD JMP REL.2+1 ELSE KEEP LOOKING * REL.3 AND UPPER ISOLATE WORD COUNT  CPA BPNTR,I A LEGITIMATE VALUE? JMP *+3 LDA DM12 NO, ERROR CODE = -12 JMP .BAD ALF,ALF GET BITS WHERE THEY BELONG.. STA RECLN YES, SAVE RECORD LENGTH LDB PRGTP PROG TYPE ABSOLUTE? CPB AA RSS JMP REL.4 NO, GO PROCESS RELOCATABLE * * SKP * * * ABSOLUTE RECORDS * * ADA BPNTR IF RECORD IS NOT ENTIRELY ADA TWO IN MEMORY, GO DO CONTINUATION STA END TRICK. ELSE PROCESS INA LDB PMAX JSB .GE. SEZ JMP CNTNU * LDB BPNTR CHECK THE RECORD'S CHECKSUM INB LDA B,I ABS.2 INB CPB END JMP ABS.3 ADA B,I JMP ABS.2 ABS.3 CPA B,I CHECKSUMS AGREE? JMP ABS.4 YES, GO ON... LDA DM2 NO, ERROR CODE = -2 JMP .BAD * ABS.4 LDA BPNTR SET TYPE - -1 ADA DM1 CCB STB A,I I@ ADA DM1 LDB RECLN SET LENGTH = ABS RECORD ADB THREE RECORD-LENGTH STB A,I LDA IBUF SET INDEX INTO ARRAY CMA,INA ADA BPNTR ADA DM1 STA INDEX,I ADB BPNTR RESET POINTER FOR NEXT RECORD STB BPNTR JMP RTRN1 RETURN * * SKP * * * PROCESS RELOCATABLE RECORDS * * REL.4 CPB RR IS PROG TYPE RELOCATABLE? JMP *+3 YES, CONTINUE LDA DM13 ELSE ERROR CODE = -13 JMP .BAD SOCK IT TO 'IM!!! ADA BPNTR IS RECORD ENTIRELY WITHIN STA END MEMORY? LDB PMAX JSB .GE. SEZ JMP CNTNU NO, GO GET CONTINUATION * LDA BPNTR INA LDB A,I GET 1ST VALUE INA LOOPR INA CPA END JMP REL.5 ADB A,I JMP LOOPR * REL.5 LDA BPNTR ADA TWO CPB A,I CHECKSUMS AGREE? JMP *+3 LDA DM2 NO, ERROR CODE = -2 JMP .BAD * ADA DM3 ?y CCB STB A,I ADA DM1 LDB RECLN STB A,I CMA,INA ADA IBUF CMA,INA INA STA INDEX,I LDA BPNTR ADA RECLN STA BPNTR JMP RTRN1 RETURN TO CALLER * * SKP * * * * RECORD CONTINUATION SECTION * CNTNU LDA PMAX CHECK IF THIS IS REALLY LDB NMAX NECESSARY JSB .GE. LDA DM9 SET ERROR CODE = -9 SEZ,RSS JMP .BAD * ADA DM1 SHOULD NOT HAVE CONTINUATION HERE. LDB CFLAG SZB JMP .BAD * ADA DM1 PRESET ERROR = -11 LDB BPNTR MUST NOW MOVE EXISTING DATA CMB,INB OUT OF THIS AREA INTO LOW BUFFER. ADB NMAX BUT ONLY FAR ENOUGH SO THAT STB NMOVE IT'LL BE CONTIGUOUS WITH CMB,INB NEW DATA TO BE READ IN. THIS ADB D131 PART CHECKS THAT THE MOVE IS SSB ENTIRELY WITHIN THE BUFFER. JMP .BAD * LDA NMOVE CMA,INA SAVE AS START, NEXT TIME. ADA IB130 CLACULATE END OF MOVE INA STA TEMP1 STA DPNTR LDB BPNTR LOOPM LDA B,I MOVE-LOOP... STA DPNTR,I ISZ DPNTR INB CPB PMAX RSS JMP LOOPM * LDA IB129,I SAVE DATA IN WORD-COUNT STA TEMP2 AND TYPE WORDS. LDA IB130,I STA TEMP3 CCA SET CONTINUATION FLAG STA CFLAG JMP PHSR2 GO READ THE MAG TAPE... * * SKP * * * * * * UTILITY ROUTINES * * * PERFORMS .OP. E = 1/0 FOR TRUE/FALSE * .LE. NOP CMA,INA A<=B IF B-A IS (+) ADA B CLE,SSA,RSS CCE JMP .LE.,I * .GE. NOP CMB,INB A>=B IF A-B IS (+) ADA B CLE,SSA,RSS CCE JMP .GE.,I * * SKP * * TAPE NOP IOR MTLU,I = CONTROL CODE STA CONWD JSB EXEC DEF *+ljf3 DEF THREE DEF CONWD JMP TAPE,I RETURN * * BCHK NOP JSB IFBRK CHECK BREAK FLAG DEF *+2 DEF * SSA,RSS IF SET, SET CODE = -4 JMP BCHK,I AND RETURN TO CALLER LDA DM4 JMP .BAD * * SKP * * * BUFFERS, CONSTANTS, AND STORAGE..... * * LNTAB DEF *+1 D37 DEC 37 * TABLE OF VALID MTLS D129 DEC 129 * RECORD LENGTHS DEC 129 * ONE DEC 1 * THREE DEC 3 * * FILE DEC 1 GETS MODIFIED... NMAX NOP INPUT TAPE-RECORD MAX ADDRESS PMAX NOP LOGICAL RECORD MAX ADDRESS EOTFL NOP END-OF-TAPE FLAG CFLAG NOP CONTINUATION FLAG NMOVE NOP * PRGTP NOP PROGRAM TYPE SS AA RR .99 ASC 1,99 SS ASC 1,SS RR ASC 1,RR AA ASC 1,AA RECTP NOP MTLS INFO RECORD TYPE LRLNT NOP LOGICAL RECORD LENGTH * BPNTR NOP DATA BUFFER POINTER DPNTR NOP DEST. BUFFER POINTER BBYTE NOP BUFFER BYTE SELECT MASK DBYTE NOP DEST. BUFR BYTE SELECT * * SKP * * CONSTANTS * * DM13 DEC -13 DM12 DEC -12 DM9 DEC -9 DM8 DEC -8 DM7 DEC -7 DM5 DEC -5 DM4 DEC -4 DM3 DEC -3 DM2 DEC -2 DM1 DEC -1 * TWO DEC 2 FOUR DEC 4 TWELV DEC 12 D13 DEC 13 D128 DEC 128 D131 DEC 131 D1024 DEC 1024 D1025 DEC 1025 * B177 OCT 177 B200 OCT 200 B400 OCT 400 B1400 OCT 1400 B1300 OCT 1300 UPPER OCT 77400 SHIFT OCT 77577 HI.CR OCT 6400 LO.CR OCT 15 HI.LF OCT 5000 LO.LF OCT 12 DBLSP ASC 1, * * * STORAGE * *q IB130 BSS 1 TLOG BSS 1 ISTAT BSS 1 CHKSM BSS 1 CHAR BSS 1 LFFLG BSS 1 TEMP1 BSS 1 TEMP2 BSS 1 TEMP3 BSS 1 END BSS 1 RECLN BSS 1 CONWD BSS 1 * *q A EQU 0 B EQU 1 * * END ޡlASMB,R,B,C * NAM GETRC,7 VERSION 4/24/75 JRT * ENT GETRC EXT EXEC,.ENTR,IFBRK * * * * * CALLING INFORMATION: * * IFLAG: -3 REWIND THE TAPE * -2 REVERSE 1 FILE (SET TAPE TO PREVIOUS FILE) * -1 FORWARD FILE (FIND EOF) * 0 FIND NEXT SEQUENTIAL RECORD * 1 FIND PROGRAM ID BLOCK * 2 FIND LIBRARY DIRECTORY RECORD * 3 FIND EOB BLOCK * 4 FIND AN EOF BLOCK * ELSE REWIND & START ALL OVER.... * * * IBUF IS 1153 WORDS LONG AND RESIDENT IN THE CALLING PROGRAM. * GETRC READS INTO IBUF FROM MAG TAPE (MTLU) AND SETS 'INDEX' * TO POINT TO THE DESIRED ITEM (RECORD). RECORD STRUCTURE ON * THE MTLS TAPE IS A HIERARCHY OF DATA RECORDS => LOGICAL RECORDS * => PHYSICAL RECORDS. GETRC KEEPS TRACK OF THIS CRAP. * WHEN DATA RECORDS ARE SPLIT BETWEEN TWO PHYSICAL MAG TAPE RECORDS * GETRC WILL MOVE THE FIRST PORTION OF THE RECORD INTO LOW-INDEXED * PART OF 'IBUF' THEN READ THE NEXT MAG TAPE RECORD TO GET THE REST * OF THE DATA RECORD. THIS IS WHY 'IBUF' MUST BE 1153 WORDS LONG * EVEN THOUGH THE LARGEST MAG TAPE RECORD IS 1024 WORDS. THE * ROUTINE USES "CFLAG" AS A FLAG TO INDICATE A RECORD REQUIRES * CONTINUATION. MAG TAPE RECORDS ARE READ INTO 'IBUF' STARTING * AT IBUF(129) IN ORDER TO LEAVE ROOM FOR A POSSIBLE MOVE AS * DESCRIBED HERE. * * * GETRC RETURNS THE CURRENT PHYSICAL FILE NUMBER IN 'NFILE' * * RETURN FORMAT IN 'IBUF': * * IBUF(INDEX) = LENGTH OF DATA RECORD * IBUF(INDEX+1) = RECORD TYPE 1-4 AS ABOVE * 0 = TAPE LABEL RECORD * -1 = DATA RECORD * -2 = PHYSICAL EOF ENCOUNTERED * IBUF(INDEX+2) = FIRST DATA WORD * * * SKP * * * * RETURN FORMAT FOR 'INDEX': * * -14 = RECORD OUT OF SEQUENCE *  -13 = ILLEGAL PROGRAM TYPE * -12 = DATA RECORD LENGTH > 255 * -11 = INTERNAL ERROR SEE LISTING * -10 = INTERNAL ERROR SEE LISTING * -9 = INTERNAL ERROR SEE LISTING * -8 = LOGICAL RECORD LENGTH ERROR * -7 = ILLEGAL RECORD LENGTH * -6 = LOGICAL RECORD OUTSIDE OF PHYSICAL BOUNDS * -5 = INTERNAL ERROR SEE LISTING * -4 = BREAK FLAG WAS SET * -3 = ILLEGAL LOGICAL RECORD TYPE * -2 = CHECKSUM ON DATA RECORD * -1 = CHECKSUM ERROR ON PHYSICAL RECORD * 0 = END OF TAPE * >0 = POINTER INTO IBUF FOR DESIRED RECORD * * NOTES: IPOINT IS LOCAL BUFFER POINTER * PMAX POINTS TO END OF LOGICAL RECORD * NMAX POINTS TO END OF PHYSICAL RECORD * LRLNTH IS LENGTH OF LOGICAL RECORD * * * * * SKP * * * IBUF BSS 1 MTLU BSS 1 IFLAG BSS 1 INDEX BSS 1 NFILE BSS 1 * GETRC NOP JSB .ENTR DEF IBUF * * SET UP OFT-USED ADDRESSES INTO DATA BUFFER * LDA IBUF ADA D128 SET ADDRESS OF START OF ACTIVE STA IB129 PART OF DATA BUFFER INA STA IB130 AND NEXT WORD,TOO. * LDA D129 SET RETURN-POINTER TO START OF STA INDEX,I DATA ARRAY AS WELL. LDA IFLAG,I CHECK FOR 'QUICKIE'S 1ST CPA DM3 JMP RWIND -3 = REWIND THE TAPE CPA DM2 JMP RVFIL -2 = REVERSE 1 FILE CPA DM1 JMP FWFIL -1 = FORWARD ONE FILE SSA IFLAG CAN'T BE <-3 OR >4... JMP RWIND ELSE TAPE REWINDS ADA DM5 SSA JMP PHYSR IF O.K., GET A DATA RECORD * *q * * SKP * * RWIND LDA B400 REWIND CODE... JSB TAPE GO DO IT... CLA,INA RESET MAG TAPE FILE # TO 1 STA FILE RTRN0 CLA '0' RETURN POINT (EOF RETURN) STA PMAX RESET ALL LOCAL POINTERS STA NMAX STA BPNTR LDA DM2 SET DATA WORD 2 = -2 STA IB130,I AS INDICATION OF EOF * RTRN1 LDA FILE '1' RETURN, PASS RESULTS TO CALLER STA NFILE,I JSB BCHK CHECK BREAK FLAG JMP GETRC,I * * REVERSE 1 FILE ON THE TAPE * RVFIL LDA B1400 REV FILE CODE JSB TAPE GO DO IT... LDA B1400 GO DO IT AGAIN... JSB TAPE LDA FILE ADA DM2 RESET THE FILE COUNTER SZA,RSS IF FILE # <=0 SET IT CLA,INA EQUAL TO 1 SSA CLA,INA STA FILE ELSE, IT'S O.K. * * FORWARD SPACE ONE FILE * FWFIL LDA B1300 FORWARD FILE CODE JSB TAPE GO DO IT... ISZ FILE INCREMENT FILE COUNTER JMP RTRN0 RETURN THRU 'EOF RETURN' * * SKP * * * START LOOKING FOR A TAPE DATA RECORD HERE * PHYSR LDA BPNTR IF LOCAL POINTER IS WITHIN LDB NMAX DATA BUFFER BOUNDS, THEN WE DON'T JSB .GE. NEED A PHYSICAL TAPE READ YET... SEZ,RSS JMP LR.1 SO GO GET THE NEXT LOGICAL RECORD! * PHSR2 JSB BCHK IF NEED A TAPE READ, CHECK BREAK LDA D129 FLAG FIRST. ALL O.K., PRESET RETURNED STA INDEX,I POINTER. RESET LOCAL RECORD CLA POINTERS ALSO. STA PMAX STA NMAX * JSB EXEC GO GET THAT MOTHA!!! DEF *+5 DEF ONE DEF MTLU,I IB129 NOP DEF D1024 STB TLOG SAVE TRANSMISSION LOG (AAMCO TOOT TOOT) * JSB EXEC IS IT AN EOF? DEF *+4 DEF D13 DEF MTLU,I DEF ISTAT * LDA ISTAT AND B200 SZA,RSS JMP GOT1 IF NOT AN EOF, PROCESS THE RECORD! * * EOF PROCESSING * LDA DM2 SET IBUF(130) = -2 TO SIGNAL CALLER STA IB130,I ISZ FILE INCREMENT FILE COUNTER ISZ EOTFL COUNT # OF EOF'S IN A ROW... JMP PCNT1 IF NOT 2 IN A ROW, CONTINUE CLA ELSE CLEAR EOF FLAG AND SILGNAL STA INDEX,I CALLER THAT THIS IS IT!!! STA EOTFL RESET EOT FLAG JMP RTRN1 TAPES ALL DONE!!! * PCNT1 CCA GOT 1 EOF, GET SET FOR STA EOTFL POSSIBLE NEXT ONE. LDA IFLAG,I IF OP CODE = 0 (FIND NEXT SZA,RSS SEQUENTIAL RECORD) THEN RETURN. JMP RTRN1 IF HE WANTS SOMETHING SPECIAL JMP PHSR2 GO TRY AGAIN * SKP * * * START PROCESSING MAG TAPE RECORDS HERE... * * CHECK TAPE RECORD'S CHECKSUM * GOT1 STA EOTFL RESET EOT FLAG LDA TLOG CHECK THAT RECORD WAS < 1024 LDB D1024 JSB .LE. SEZ JMP CHK.1 ALL'S O.K. GO TO CHK.1 LDA DM7 ELSE, -7 = ERROR CODE! .BAD STA INDEX,I THIS IS BAD GUY RETURN! JMP RTRN0 NOW TO 'EOF RETURN'! * CHK.1 LDB IB130 = DATA ADDRESS START LDA IB129,I GET SIO COUNT ARS CHANGE TO WORD COUNT ADA IB129 ADD STARTING ADDRESS STA END = END = DATA ADDRESS END LDA B,I SET UP CHECKSUM STA CHKSM LOOP1 INB INCREMENT ADDRESS CPB END = LAST ADDRESS? JMP CHK.2 YES, CHECK CHECKSUMS ADA B,I NO, KEEP ADDING.... JMP LOOP1 DO IT AGAIN, DO IT AGAIN, DO IT... * CHK.2 CPA B,I OURS = THEIRS??? JMP PH.OK YES, PHYS. RECORD O.K. CCA NO, ---- YOU!!! JMP .BAD * PH.OK STB NMAX SAVE 'END' AND MAX PHYS REC LDA IB130 ADDRESS. RESET WORK POINTER STA BPNTR * * SKP * * * START PROCESSING LOGICAL RECORDS HERE... * * THERE'S A LOT OF CHECKING TO DO: * 1) MAYBE WE ONLY NEED A DATA RECORD (ASCII LINE, ABSOLUTE RECORD * ETC.). IF WE ACTUALLY DO NEED A NEW LOGICAL RECORD GO TO '3)' * ELSE WE'RE STILL PROCESSING THE PREVIOUS ONE AND... * 2) IF WE'RE HERE, WE HAVE PROGRAM DATA SINCE MTLS INFO-RECORDS * MUST BY DEFINITION BE PROCESSED COMPLETELY BEFORE ASKʌING FOR * A NEW ONE. THUS, IF THE OP-CODE (IFLAG IN CALL) IS NOT A * REQUEST FOR NEXT-SEQUENTIAL-RECORD (0) IT IS FOR AN MTLS * RECORD AND THEREFOR EVEN IF WE ARE NOT DONE WITH THIS ONE WE * NEED A NEW ONE ANYHOW (GO TO '3)') ELSE GO PROCESS DATA... * 3) IF WE'RE DONE WITH THE LOGICAL RECORD SEE IF THERE'S ANOTHER * ALREADY IN MEMORY. IF NOT, GO GET ANOTHER MAG TAPE RECORD * (PHYSICAL READ VS. LOGICAL READ) * 4) THE LOGICAL RECORD LENGTH SHOULD BE CONSISTENT WITH PHYSICAL * RECORD BOUNDS. AS OF 4/75, THERE ARE MTLS TAPES OUT WITH ERRORS * IN PROGRAM ID BLOCK RECORDS (THEY'RE MISSING A WORD) SO THIS * CHECK CAN'T BE DONE YET. * 5) CHECK LOGICAL RECORD TYPE. IF IT'S AN MTLS RECORD, IT'S LENGTH * SHOULD AGREE WITH THE TABLE VALUES (SEE 'LNTAB') * * LR.1 LDA BPNTR LDB PMAX = BPNTR . IF WORK POINTER EXCEEDS JSB .GE. LOG REC POINTER, SO NEED A SEZ NEW LOGICAL RECORD. ELSE WE JMP GETLR GOT DATA. CHECK THAT OP-CODE LDA IFLAG,I IS 0, OR ELSE WE NEED A SZA NEW LOGICAL RECORD. JMP NXTLR LDA PRGTP PROCESS DATA ACCORDING TO CPA SS PROGRAM TYPE (S, R, OR ABS) JMP SRC.2 IF TYPE = 'SS', HAVE SOURCE. JMP REL.1 ELSE CHECK FOR RELOCATABLE... * * SKP * * * GET A NEW LOGICAL RECORD * GETLR LDA BPNTR NEED A PHYSICAL RECORD FIRST? LDB NMAX (I.E. IS WORK POINTER OUT OF BOUNDS) JSB .GE. SEZ JMP PHSR2 YES, GET ONE * LDA BPNTR,I NO, GET LR RECORD LENGTH CMA,INA STA LRLNT SAVE IT. SSA,RSS IF (-) = WORDS JMP *+5 IF(+) = CHARACTERS. CONVERT CMA,INA TO (+) WORDS INA ARS STA LRLNT SAVE IT INA SET PMAX = POINTER + LENGTH + 1 ADA BPNTR STA PMAX THIS IS MAX LR ADDRESS * * TAKE AWAYP *'S TO ENABLE THIS SECTION * * LDB NMAX IF LR BOUND EXCEEDS PHYS REC * JSB .GT. BOUND, THEN NO GOOD! * SEZ SET EOF (THIS SHOULD MUCK THINGS UP! * JMP RTRN0 * SKP * * * PROCESS A NEW LOGICAL RECORD... * * IF LENGTH >= 0 HAVE A DATA RECORD: SOURCE * RELOCATABLE * ABSOLUTE * * LENGTH < 0 & WE HAVE AN MTLS-INFO RECORD * * WORD 2 MEANING LENGTH * 0 TAPE LABEL 37 * 1 PROGRAM I.D. BLOCK 129 * 2 LIBRARY DIRECTORY 129 * 3 EOB BLOCK 1 * 4 EOF BLOCK 3 * * LDA BPNTR,I GET LENGTH AGAIN SSA IF < 0, PROCESS MTLS STUFF JMP .MTLS (CHECK IT FIRST...) LDA IFLAG,I CHECK OP-CODE: MUST BE = 0! SZA,RSS OR GET A NEW LOGICAL RECORD JMP SRC.1 IF = 0, WE HAVE DATA, O.K. JMP NXTLR ELSE GET NEXT LOGICAL RECORD. * * SKP * * * PROCESS MTLS-INFO RECORDS * .MTLS CLA RESET 'CONTINUATION' FLAG STA CFLAG SO WE KNOW THAT NEXT DATA LDA BPNTR RECORD IS A NEW ONE... INA LDA A,I GET RECORD TYPE STA RECTP SAVE IT CPA IFLAG,I IS IT WHAT HE WANTS? JMP GOTIT YES, GO TO IT BABY!!! LDB IFLAG,I NO, WILL HE TAKE ANYTHING? SZB,RSS YES, WE GOT THAT, TOO! JMP GOTIT * NXTLR LDA PMAX GET NEXT LOGICAL RECORD STA BPNTR RESET WORK POINTER JMP GETLR GO THRU NORMAL CHANNELS. * * * SKP * * * * PROCESS MTLS INFO RECORDS * * * GOTIT CPA FOUR IF WITHIN 0 TO 4, O.K. JMP *+6 AND THREE CPA RECTP JMP *+3 LDA DM3 ELSE ERROR CODE = -3 JMP .BAD * ADA LNTAB INDEX INTO LENGTH TABLE LDA A,I AND VERIFY RECORD LENGTH CPA LRLNT IF AjgGREE, ALL'S WELL... JMP M.OK LDB BPNTR EXECEPTION!: THE LAST PROG ADB THREE ID BLOCK IN THE LIBRARY IS LDB B,I A SHORT ONE INDICATING THE END CPB .99 OF THE LIBRARY. IT'S FOR JMP M.OK PART NUMBER 99999-99 ETC LDA DM8 ELSE ERROR CODE = -8 JMP .BAD * M.OK STA BPNTR,I SET POINTERS, ETC: LDA IBUF SET (+) LR LNTH IN BUFFER CMA,INA SET 'INDEX' = INDEX INTO ARRAY ADA BPNTR SET LOCAL POINTER = PMAX INA SO NEXT ROUND GETS NEW RECORD STA INDEX,I IF HAVE ID BLOCK, SAVE PROG TYPE LDA PMAX RETURN TO CALLER LDB BPNTR STA BPNTR LDA RECTP CPA ONE RSS JMP RTRN1 * ADB TWELV GET PROG TYPE CHARACTER LDA B,I ISOLATE IT & DUPLICATE IT AND UPPER SO IT'S 'SS' OR 'AA' OR 'RR' STA B BLF,BLF IOR B STA PRGTP SAVE IT JMP RTRN1 RETURN * * SKP * * * PROCESS PROGRAM DATA * * SRC.1 ISZ BPNTR POINT TO DATA INFO LDA PRGTP CPA SS IS IT SOURCE DATA? RSS JMP REL.1 NO, CHECK FOR RELOCATABLE * * * SOURCE RECORDS (THE WORST) * * PHYSICALLY MOVE 'EM FROM WHERE THEY ARE (IBUF(129) OR ABOVE) TO * LOW IN THE BUFFER (IBUF(1)). GOTTA DO THIS 'CAUSE CR & LF NOT * NECESSARILY IN THE SAME WORD. SDLS (VS. MTLS) DOES SOME CLEANUP * OF TAPE RECORDS TO TRY TO HAVE THAT, BUT IT CAN'T BE GUARANTEED... * ALSO, PREFACE THE RECORD WITH FAKE LENGTH AND TYPE TO MAINTAIN * FORMAT COSISTENCY WITH MTLS-INFO RECORDS. * * * NOTES BBYTE: SOURCE/DESTINATION BYTE * DBYTE: POINTERS * DPNTR: DESTINATION BUFFER ADDRESS * LFFLG: LINE-FEED FLAG * * LDA B177 XOR SHIFT RE-SET: SOURCE BYTE POINTER STA BBYTE LINE FEED FLAG CLA , CONTINUATION FLAG STA LFFLG LDB CFLAG IF IT'S NOT A CONTINUATION, RESET STA CFLAG THE DESTINATION BYTE POINTER AND SZB ADDRESS POINTER JMP SRC.3 SRC.2 LDA TWO NOTE: CONTINUATION OCCURS WHEN ADA IBUF A DATA RECORD IS SPLIT 'TWIXT STA DPNTR TWO MAG TAPE RECORDS. LDA B177 STA DBYTE * * SKP * * * * LOOP FOR PROCESSING SOURCE CODE * SRC.3 LDA BPNTR IF WE'RE OUT OF THE BUFFER LDB PMAX WE NEED A NEW RECORD JSB .GE. SEZ,RSS JMP SRC.4 CLA,INA STA CFLAG SET CONTINUATION FLAG JMP GETLR GO GET A RECORD * SRC.4 LDA BPNTR,I GET BYTE W/O PARITY AND BBYTE STA B AND DBYTE HAVE TO SHIFT IT? SZA IE. DO WE WANT THE CHAR WHERE BLF,BLF 'DBYTE' AIN'T? LDA B IF SO, SHIFT ALREADY! CPA HI.CR IGNORE IT IF IT'S RSS A CARRIAGE RETURN CPA LO.CR JMP IGNOR CPA HI.LF IF IT'S A LINE FEED THEN RSS MAKE IT A SPACE AND SET CPA LO.LF THE LINE FEED FLAG RSS JMP STUFF ELSE STUFF IT IN BUFFER ALS,ALS LINE UP LF BITS WITH SPACE AND DBLSP (DON'T KNOW HI OR LO) STA LFFLG STUFF STA CHAR SAVE THE CHARACTER * LDA DBYTE GET GOOD BYTE FROM DESTINATION AND DPNTR,I IOR CHAR INSERT NEW CHARACTER STA DPNTR,I PUT IN DESTINATION BUFFER * LDA DBYTE RESET BYTE POINTERS XOR SHIFT STA DBYTE SLA ISZ DPNTR * * * SKP * * IGNOR LDA BBYTE SET UP NEXT SOURCE BYTE XOR SHIFT MASK STA BBYTE IF GETTING HIGH BITS NEXT, SLA,RSS INCREMENT WORD POINTER. ISZ BPNTR * LDA LFFLG GET A LINE FEED? SZA,RSS JMP SRC.3 NO, LOOP SOME MORE CLA YES, RESET THE FLA G STA LFFLG SET THE RECORD LENGTH LDA IBUF ADA TWO (2 FOR LENGTH & TYPE) CMA,INA ADA DPNTR STA IBUF,I * LDB IBUF RETURN RECORD TYPE INB CCA STA B,I CLA,INA SET POINTER = 1 STA INDEX,I JMP RTRN1 RETURN... * * SKP * * * RELOCATABLE & ABSOLUTE RECORDS * * REL.1 LDA CFLAG IS IT A CONTINUATION? SZA,RSS JMP REL.2 NO, CONTINUE NORMALLY LDA TEMP1 YES, RESET TEMP VALUES STA BPNTR LDA TEMP2 STA IB129,I OVERWRITE OLD SIO COUNTS WITH LDA TEMP3 NEW DATA STA IB130,I CLA STA CFLAG * REL.2 LDB PMAX LDA BPNTR,I GET ADDRESS OF FIRST NON- SZA ZERO WORD (RECORD LENGTH) JMP REL.3 GOT IT! GO PROCESS ISZ BPNTR CPB BPNTR IF RUN OUT OF DATA, GO JMP GETLR GET ANOTHER RECORD JMP REL.2+1 ELSE KEEP LOOKING * REL.3 AND UPPER ISOLATE WORD COUNT CPA BPNTR,I A LEGITIMATE VALUE? JMP *+3 LDA DM12 NO, ERROR CODE = -12 JMP .BAD ALF,ALF GET BITS WHERE THEY BELONG.. STA RECLN YES, SAVE RECORD LENGTH LDB PRGTP PROG TYPE ABSOLUTE? CPB AA RSS JMP REL.4 NO, GO PROCESS RELOCATABLE * * SKP * * * ABSOLUTE RECORDS * * ADA BPNTR IF RECORD IS NOT ENTIRELY ADA TWO IN MEMORY, GO DO CONTINUATION STA END TRICK. ELSE PROCESS INA LDB PMAX JSB .GE. SEZ JMP CNTNU * LDB BPNTR CHECK THE RECORD'S CHECKSUM INB LDA B,I ABS.2 INB CPB END JMP ABS.3 ADA B,I JMP ABS.2 ABS.3 CPA B,I CHECKSUMS AGREE? JMP ABS.4 YES, GO ON... LDA DM2 NO, ERROR CODE = -2 JMP .BAD * ABS.4 LDA BPNTR SET TYPE - -1 ADA DM1 CCB STB J-A,I I@ ADA DM1 LDB RECLN SET LENGTH = ABS RECORD ADB THREE RECORD-LENGTH STB A,I LDA IBUF SET INDEX INTO ARRAY CMA,INA ADA BPNTR ADA DM1 STA INDEX,I ADB BPNTR RESET POINTER FOR NEXT RECORD STB BPNTR JMP RTRN1 RETURN * * SKP * * * PROCESS RELOCATABLE RECORDS * * REL.4 CPB RR IS PROG TYPE RELOCATABLE? JMP *+3 YES, CONTINUE LDA DM13 ELSE ERROR CODE = -13 JMP .BAD SOCK IT TO 'IM!!! ADA BPNTR IS RECORD ENTIRELY WITHIN STA END MEMORY? LDB PMAX JSB .GE. SEZ JMP CNTNU NO, GO GET CONTINUATION * LDA BPNTR INA LDB A,I GET 1ST VALUE INA LOOPR INA CPA END JMP REL.5 ADB A,I JMP LOOPR * REL.5 LDA BPNTR ADA TWO CPB A,I CHECKSUMS AGREE? JMP *+3 LDA DM2 NO, ERROR CODE = -2 JMP .BAD * ADA DM3 CCB STB A,I ADA DM1 LDB RECLN STB A,I CMA,INA ADA IBUF CMA,INA INA STA INDEX,I LDA BPNTR ADA RECLN STA BPNTR JMP RTRN1 RETURN TO CALLER * * SKP * * * * RECORD CONTINUATION SECTION * CNTNU LDA PMAX CHECK IF THIS IS REALLY LDB NMAX NECESSARY JSB .GE. LDA DM9 SET ERROR CODE = -9 SEZ,RSS JMP .BAD * ADA DM1 SHOULD NOT HAVE CONTINUATION HERE. LDB CFLAG SZB JMP .BAD * ADA DM1 PRESET ERROR = -11 LDB BPNTR MUST NOW MOVE EXISTING DATA CMB,INB OUT OF THIS AREA INTO LOW BUFFER. ADB NMAX BUT ONLY FAR ENOUGH SO THAT STB NMOVE IT'LL BE CONTIGUOUS WITH CMB,INB NEW DATA TO BE READ IN. THIS ADB D131 PART CHECKS THAT THE MOVE IS SSB ENTIRELY WIT#HIN THE BUFFER. JMP .BAD * LDA NMOVE CMA,INA SAVE AS START, NEXT TIME. ADA IB130 CLACULATE END OF MOVE INA STA TEMP1 STA DPNTR LDB BPNTR LOOPM LDA B,I MOVE-LOOP... STA DPNTR,I ISZ DPNTR INB CPB PMAX RSS JMP LOOPM * LDA IB129,I SAVE DATA IN WORD-COUNT STA TEMP2 AND TYPE WORDS. LDA IB130,I STA TEMP3 CCA SET CONTINUATION FLAG STA CFLAG JMP PHSR2 GO READ THE MAG TAPE... * * SKP * * * * * * UTILITY ROUTINES * * * PERFORMS .OP. E = 1/0 FOR TRUE/FALSE * .LE. NOP CMA,INA A<=B IF B-A IS (+) ADA B CLE,SSA,RSS CCE JMP .LE.,I * .GE. NOP CMB,INB A>=B IF A-B IS (+) ADA B CLE,SSA,RSS CCE JMP .GE.,I * * SKP * * TAPE NOP IOR MTLU,I = CONTROL CODE STA CONWD JSB EXEC DEF *+3 DEF THREE DEF CONWD JMP TAPE,I RETURN * * BCHK NOP JSB IFBRK CHECK BREAK FLAG DEF *+2 DEF * SSA,RSS IF SET, SET CODE = -4 JMP BCHK,I AND RETURN TO CALLER LDA DM4 JMP .BAD * * SKP * * * BUFFERS, CONSTANTS, AND STORAGE..... * * LNTAB DEF *+1 D37 DEC 37 * TABLE OF VALID MTLS D129 DEC 129 * RECORD LENGTHS DEC 129 * ONE DEC 1 * THREE DEC 3 * * FILE DEC 1 GETS MODIFIED... NMAX NOP INPUT TAPE-RECORD MAX ADDRESS PMAX NOP LOGICAL RECORD MAX ADDRESS EOTFL NOP END-OF-TAPE FLAG CFLAG NOP CONTINUATION FLAG NMOVE NOP * PRGTP NOP PROGRAM TYPE SS AA RR .99 ASC 1,99 SS ASC 1,SS RR ASC 1,RR AA ASC 1,AA RECTP NOP MTLS INFO RECORD TYPE LRLNT NOP LOGICAL RECORD LENGTH * BPNTR NOP 9HFB DATA BUFFER POINTER DPNTR NOP DEST. BUFFER POINTER BBYTE NOP BUFFER BYTE SELECT MASK DBYTE NOP DEST. BUFR BYTE SELECT * * SKP * * CONSTANTS * * DM13 DEC -13 DM12 DEC -12 DM9 DEC -9 DM8 DEC -8 DM7 DEC -7 DM5 DEC -5 DM4 DEC -4 DM3 DEC -3 DM2 DEC -2 DM1 DEC -1 * TWO DEC 2 FOUR DEC 4 TWELV DEC 12 D13 DEC 13 D128 DEC 128 D131 DEC 131 D1024 DEC 1024 D1025 DEC 1025 * B177 OCT 177 B200 OCT 200 B400 OCT 400 B1400 OCT 1400 B1300 OCT 1300 UPPER OCT 77400 SHIFT OCT 77577 HI.CR OCT 6400 LO.CR OCT 15 HI.LF OCT 5000 LO.LF OCT 12 DBLSP ASC 1, * * * STORAGE * *q IB130 BSS 1 TLOG BSS 1 ISTAT BSS 1 CHKSM BSS 1 CHAR BSS 1 LFFLG BSS 1 TEMP1 BSS 1 TEMP2 BSS 1 TEMP3 BSS 1 END BSS 1 RECLN BSS 1 CONWD BSS 1 * *q A EQU 0 B EQU 1 * * END 'H # ^ M7t N7C$O7FMP7Eq-Q7_'R7M S7pmy T7J`2V7o< X7E5Y7JI[7ݴO4\7Xa^7 b_7 u `7 Dja7 Xb7XaHc7Q7CL7CL7CLg7pv 7CL7CL7CL7CLm7Hn7"34o7#dJ 7%CL7&CL7'CL7(CL7*CL7+CL7,CLw7/OaHx70Qfy71`72OP{73sL |75[}76k~78^7;Db7p7u) q7r r7q s7Kt7K.u7D87CL7CLx7Bk!y7Qb"z7H 7 CL7 CL}75E~77L/@78L79B,7;CL~7D|7@ixB 7An 7C@7DB 7EB 7FB 7GB 7HB 7Ijww 7K{7L@ 7OP7RI$7SL7Vw:7XI.7[B 7]Z$7`Or7bK7cH7fg+ 7gS7 Go?7 G77@7 EkA7 Fy7 CLD7 | E7 "ERF7 #EOEG7 $GZI7 'Ap7 )D7 *A,7 -L 7 .bX7 /b 7 0sU: 7 2p| 7 3l 7 4l !7 7CL 7 `CL7 aCL7 cfJ 7 gCL7 ivW 7 j{Z 7 kD;7 lw| 7 nuw7 qwna 7 tCL7 vCL7 wCL7 xCL7 yCL7 |F7 }HV7 ~l^ 7 ph7 ]7 z 7 ~OI 7 hb 7 qS37 IN7 Wp 7 {LS 7 } 7 Aq 7 U7 K7 K827 {LS 7 X 7 \ 7 ^7 IVf7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 O7 H77 I7 IA7 JL7 JL}e7 nvX}f7|y݀ ^ ^ M7 -tq N7 /CGO7 0FP7 1EQ7 4_'R7 5MS7 6o,| T7 7JV7 9p X7 ;EY7 Z}^7 AeS_7 BuV `7 EC:a7 F[b7 G[+c7 HSu7 JCL7 KCL7 LCLg7 Np; 7 QCL7 RCL7 SCL7 TCLm7 WHXn7 [go7 \eb5 7 ^CL7 _CL7 `CL7 aCL7 cCL7 CL7 CLw7 PW x7 R#y7 ]k7 OP{7 s |7 [}7 lq~7 ^7 D#87 FB7 sF ~7 CL7 _Ll |7 CL7 Fh7 G7 G\7 Lou7 CLt7 CL7 ou 7 q 7 mc 57 J67 J>|7 CL7 CL:7 GB;7 Q<7 YAv?7 EW7 CL7 CLB7 x C7 O(D7 E&E7 WF7 v34G7 T\H7 Lq L7 UqM7 MN7 b4O7 I?P7 I0Q7 j R7 k_ T7 MPvU7 N V7 C7 CL7 CLY7 } Z7 EG7 CL7 CL]7 v ^7 N7 CL7 CLa7 O7 CL7 CLd7 @7 "CLf7 #^7 $CLh7 &E2i7 'O7 *CLk7 UX= l7 VM8R m7 WK n7 Zio7 [kp7 ]u q7 ^s{ r7 _t{ s7 `Kt7 aK)u7 bE7 dCL7 eCLx7 gBny7 hPFz7 iFm7 lCL7 mCL}7 oE~7 qL[7 rLk7 sB$7 uCL~7 vCL7 xD7 {Z 7 |ixB 7 }D7 ~EV7 EV7 ixB 7 ixB 7 EV7 i 7 {7 @ 7 P^7 I~7 L7 } 87 I?C7 B 7 m7 O7 L7 H7 o^ 7 S,7 6C7 8CL.7 :yl 7 =CL7 >CL7 ?CL7 @CL37 Bm:47 DA367 GZL77 HO87 IJ,97 LE:7 NJ3;7 OMvg<7 PI7 QCL>7 TL%?7 UGG@7 VEYA7 WK_7 CLD7 BE7 EF7 E=(G7 KT7 F7 I^f7 E37  7 aT7 @7 sc 7 p 7 l& 7 m !7 CL 7 CL7 CL7 `S 7 CL7 v 7 z 7 D;7 xt 7 F 7 wna 7 CL7 CL7 CL7 CL7 CL7 F7 H7 ~ 7 p7 ]{7 {/9 7 ~z 7 hq 7 r37 I7 Z07 x 7 }T 7 B 7 US?7 K 7 K7 {LS 7 O 7 a] 7 `7 Nf7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 O7 H 7 I7 I=s7 JL7 HJL}e7 ]}f7 y. ^ ^ M7 dtq N7 fCO7 gEBQP7 hEQ7 k`{R7 lMDS7 mnT T7 nJV7 pp X7 rEY7 sJ[7 t1\7 u[^7 xcE_7 zvG `7 |Bna7 }U\b7 ~W&fc7 P}q7 CL7 CL7 CLg7 p~ 7 CL7 CL7 CL7 CLm7 Gn7 o7 e 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Rx7 PW y7 ]\)7 OP{7 t,` |7 [}7 lYc~7 ^7 C!7 F7 y#; ~7 CL7 ` |7 CL7 G7 GT7 H 7 M{[u7CLt7CL7o+ 7r& 7l 57J67JB7CL7CL:7G;7 Ql<7"Y?7#E]7&CL7'CLB7)y C7*MeD7+E,E7-TF7.y34G7/TzH70L$ L71RpM72[+N73nٙO74IP75J)Q78k R79k T7;MuU7Dk7@CL7ACLY7C}u% Z7DEO7GCL7HCL]7KwQ? ^7uN7xCL7yCLa7|OI7~CL7CLd7@7CLf7^7CLh7EOi7N%7CLk7X l7N m7M( n7io7l~p7s q7l r7mp s7Kht7K)u7E`7CL7CLx7By7Nz7Gg7CL7CL}7E~7Lz7L7BP7CL~7CL7DZ7[g 7ixB 7B7EV7EV7ixB 7ixB 7EV7i 7{7@ 7P.C7I 7L7} 87I7B 7z7O7L7H7o^ 7S7O?7Ge@7EmA7O7CLD7C.E7EF7EY<G7N7D7G;37C$7x 7^7@9q7s 7p 7lD 7m- !7CL 7CL7CL7c 7 CL7 v 7z$ 7D;7wt 7R 7w| 7CL7CL7CL7CL7CL7F7H7"~ 7$p7']{7(z 7)~l^ 7*h/ 7.m71J %72]75xe 76|5! 79AR 7K*7?K7j{LS 7kU 7n\ٚ 7o`7pJ37q^7sCL7tCL7uCL7vCL7wCL7yCL7zCL7{CL7|CL7O؈7H 7I 7I?C7JL7JL}e7`P;}f7x% ^ ^ M7t N7CO7F3P7F"Q7`&R7MfS7n T7KV7q> X7EY7J[7۳&0\7Yl^7d:_7v `7Aa7Xb7[c7Qf7CL7CL7CLg7po 7CL7CL7CL7CLm7GRn7~o7f 7CL7CL7CL7CL7CL7CL7CLw7Qx7S(y70Zk71OP{72tY |73Y}74n#~76^79C7;F7>y@Y ~7@CL7B_\ |7DCL7GG]7IGS7JG7MJu7OCLt7PCL7Sk 7Tp# 7Uk 57WJ}67XJN7ZCL7[CL:7]H;7^Q5<7_XN*?7`E*7cCL7dCLB7fyl C7gRBD7hE2/E7jYffF7kx\G7UH7LH L7_ffM7ZEN7nO7JaP7JZQ7kK R7k T7MU7OLV7D27CL7CLY7}h Z7E]7CL7CL]7xWc ^7O677CL7CLa7O#7CL7CLd7AH7CLf7^7CLh7EV[i7M2Y7CLk7Y4 l7L m7K n7hfo7lp7uL q7qL r7rQ s7Kht7K'@u7E7CL7CLx7By7MDz7Ge7CL7 CL}7 EV~7 L7Mu7BP7CL~7CL7E 7Z 7ixB 7C47EV7EV7ixB 7ixB 7EV7i 7"|)7#@ 7&Pz7(Ic7)L7,} 87.I*71B 72C<73O7]M 7^H7ao^ 7bX7cF!7fCL7iE7jq7lCL7mCL7nCL7oCL7pCL7qCL7rCL7sCL7vE!7wvf7yHQ7zNc7{MR7|O7~CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N`7CL7D7CL7CL7yz 7CL7CL7CL7CL$7L'%7I&7Q87CL*7Lp,7MMz7CL.7z % 7CL7CL7CL7CL37mi47A367T77N087Df97F #:7J;7L<7H7CL>7ST?7G@7EA7S "7CLD7t E7EF7EG7R=_7DS47GD7$B7'@.#7(bI7)@7*s 7+p 7,l~k 7.mh !71CL 72CL73CL75c 78CL7:x# 7<| 7=E*7>yN 7?U!W 7@w 7CCL7DCL7ECL7GCL7HCL7KF7LI7O~' 7Qp7T]{7V{in 7W~ 7Xhm 7[p37^J%7__d 7x0 7| 7A 7U7K(I7Kb7{Z 7S 7^ 7af7Lf7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7PS7H7I7I7JQ7JQ}e7?e }f7Suu ^ ^ M7t N7CO7EP7EQ7`HbR7MPS7n T7KV7 q/ X7 EY7 J}[7 \7Z.9^7e `_7vr `7A<a7Y4b7Yc7Tc7CL7CL7CLg7pO 7!CL7#CL7$CL7%CLm7PGn7S4o7TfI 7VCL7WCL7XCL7ZCL7[CL7\CL7]CLw7`Mffx7aOaHy7bY7cOP{7et |7f[}7gng~7i^7lCp7mFu7p|R8 ~7sCL7u_= |7wCL7zGz7{G7|G7QQ%u7CLt7CL7j} 7o< 7kV 57JN67JV7CL7CL:7H/;7P,<7Q5?7E7CL7CLB7y C7VK~D7E6 E7WF7}uG7TfH7Lf L7]HM7X\N7lO7J9P7JvhQ7kw R7l& T7MTU7O28V7DL7CL7CLY7~# Z7EO7CL7CL]7w3 ^7Pz7CL7CLa7Q.`7CL7CLd7A7CLf7^7CLh7E]i7N7!CLk7$Y2 l7%NQ m7&M = n7)io7*l\p7,uk q7-o = r7.o8R s7/Llt70K/qu73|& 76CL77CLx79Ay7:Kz7;GC7>CL7?CL}7AE~7CL7DMIM7EB57GCL~7HCL7JE7MZ}W 7NixB 7OE9[7PEV7QEV7RixB 7|ixB 7}EV7~i 7} 7EV7PC7H7K:[7} 87JP7B 7DF-7O7M 7H7o^ 7Y7H+7CL7F=7sl7CL7CL7CL7CL7CL7CL7CL7CL7vf7vg7Dk37P7OxR7MR7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7NW27CL7D7CL7CL7{ 7CL7CL7CL7CL$7KM%7J&7Jͤ7CL*7L?,7B7CL.7v- 7 CL7 CL7 CL7CL37m47A367J77Dfg87~397F:7DJc3;7EL<7FH7HCL>7KU ?7LG@7MEA7MVO7OCLD7Qr E7SF$F7TE'G7UT|7XBVf7YDٚ7ZA@7]@*C7^`7_A 7as 7bp 7cl8 7dmi !7gCL 7hCL7iCL7k`׬ 7oCL7qy 7r|5! 7sE7t{= 7uV. 7vw 7yCL7{CL7|CL7}CL7~CL7F-7I$7~; 7qK7]7|C 7c 7h 7n7JFw7^7yl 7}I 7A 7U7J7J77{in 7QnH 7^33 7`\7K7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7P'27 H7 I7IK7JQ7JQ}e7udaM}f7t ^ ^ M7.uh N70CCO72DWP73FQ76`*JR77NS78@T79KlV7:q̩ X7K[7?R\7@Z^7Cc`_7Dw `7FAa7GX)b:[#c:R):CL: CL: CLg: p~ :CL:CL:CL:CLm:G@n:~4o:f :CL:CL:CL:CL: CL:!CL:"CLw:%Lqx:&Wy:([Q:)OP{:*u |:+Y,V}:,jx~:.^:1Ck:3G)S:6pӖ ~:8CL::ah |:dCL:gG :iG@5:jH\:mIu:oCLt:pCL:skgm :to :ukĜ 5:wJd6:xJ_4:zCL:{CL::}H;:~Pf<:Y?:EsZ:CL:CLB:z C:V:DD:E2/E:XF:qG:SH:L L:NM:H\N:]O:JjP:JzQ:k R:la7 T:MU:OIV:D:CL:CLY:~ Z:EV[:CL:CL]:y#; ^:PS:CL:CLa:Qr":CL:CLd:At@:CLf:^:CLh:Edi:VxE:CLk:Yp l:Mz m:K n:iffo:lp:s q:o\ r:n\) s:Lt:K6u:DIS:CL:CLx:Brdy:Q.Tz:G:CL:CL}:E~:-L.:.M!%:/BX:1CL~:2CL:4E:7Y :8ixB :9E::@:;@:=ixB :>ixB :?@:@i :B} :C@ :FP_:HI~:IK?:L} 8:NJP:QB :SLv:TO:VM :WI:Zo^ :[YJr:\G:^CL:aI~:bq:dCL:fCL:gCL:CL:CL:CL:CL:CL:~ə:tf:D3:GR:L:GR:CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N_#:CL:D"W:CL:CL:z :CL:CL:CL:CL$:K#%:JH&:ICx:CL*:K,:E{S:CL.:M:CL:CL:CL:CL3:m4:A36:O7:K8:|9:Fp::IVf;:J<: Gf: CL>:WO?:GP@:EA:YQf:CLD:r1 E:FI?F:EoG:WCy:A6f:D:@$: : :"^tT:#A:$s :%ph :&l :'m !:*CL :,CL:-CL:/f :ZCL:\x :]}; :^EZ:_y@ :bH:ew :hCL:iCL:jCL:kCL:lCL:pE:qI5G:tFv :vq:z]:{|j :|: :}hJ :qFf:Ja:V?:y :|ƚ :AH :U?:J:J:{ :V :^ :a#3:N@:^:CL:CL:CL:CL:CL:CL:CL:CL:CL:P@:HX:I:JQ:JQ:JQ}e:bj. }f:st ^ ^ M:!v}K N:#C O:$Dj@P:%EQ:(`L%R:*MS:+@۶T:,L V:-s15 X:/EY:0K'[:1\:2Zh^:6g_:7x `:9CNta::ZRb:;W\c:CL:?CL:ACLg:Cp̲ :ECL:FCL:GCL:HCLm:LGFn:O~o:Ph@ :RCL:SCL:TCL:UCL:WCL:XCL:YCLw:JGx:R)y:Y:OP{:wW |:Y}:lɧ~:^:C:Gz:o7 ~:CL:`D |:CL:GY:FW:H:Pu:CLt:CL:i8R :pZ :k1' 5:J6:Jc:CL:CL::IE;:OS<:Ym?:Ez:CL:CLB:zcz C:UnD:E2/E:TF:lG:IpH:L L:NHM:H=qN:\4O:JP:JQ:k R:lo T:N{U:OUV:D:CL:CLY:~; Z:EW:CL:CL]:yN ^:P: CL: CLa: Q5:CL:CLd:A2:CLf:^:CLh:E]i:Vc:CLk: Yo@ l:!JR m:"H n:Mhffo:Nlp:Pp q:Qnq r:Ro=q s:SLlt:TKCuu:UA&:WCL:XCLx:ZB)y:[SAz:\Gu:_CL:`CL}:bE~:dL:eM2}:fB:hCL~:iCL:kFE:n\^ :oixB :pDB:q@:r@:sixB :uixB :v@:wi :y{ey:z@ :}P e:I~:L:} 8:JP:B :PM:OJ:M :I :o^ :SK9<:?Gg:ACL>:CY6?:DH@:EEA:F[Fl:HCLD:Jq E:LFzFF:MEOG:NX1:zC33:{F:|B:@s:b :A:t' :ph :m :n0 !:CL :CL:CL:`q. :CL:y :U :E:{ :I :w :CL:CL:CL:CL:CL:E:I6/: :p*:]O:| :Fv :h :pL:Jzk:[):yl :}I :A :Sا:J:JYz:{ :Nq :` :`i:O:^:CL:CL:CL:CL:CL:CL:CL:CL:CL:Pb:H:I: I: JQ:JQ}e:^9}f:r^ ^ M:Wu N:ZC iO:[DoP:\EbQ:_`=R:`MS:aA$ZT:bLUZV:cs X:fEY:gK[:h\:iY%^:le_:my9 `:oDga:qW5b:rX4c:sP:uCL:vCL:wCLg:yp :{CL:CL:CL:CLm:Hn:~o:h :CL:CL:CL:CL:CL:CL:CLw:Kx:RQy:^:OP{:x |:Yg}:md~:^:D; :G-:tM ~:CL:] |:CL:G+:E:H% :G"u:CLt:CL:hÖ : o9X : j! 5: J6:J]c:CL:CL::I6;:N<:W?:EV:CL:CLB:z[ C:TaD:EE: KfF:!g34G:"G{H:#L L:$]cM:%XN:&lO:'JCP:(JQ:+k/ R:,l~k T:.N4U:/Oh7V:0Dy:2CL:3CLY:5)b Z:6E:9CL::CL]:Pj@:@CL:ACLa:CPY:mCL:nCLd:pA:sCLf:t^:uCLh:wEli:xU:{CLk:~Yp l:Oz m:LǮ n:hfo:mp:m q:i r:k s:KRt:KHu:CB:CL:CLx:By:R}#z:F:CL:CL}:E~:L$:M:B:CL~:CL:FP9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 1`h2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ :Z}W :ixB :E:@:@:ixB :ixB :@:i :{hM:@ :Pv:Iu:L:} 8:JP:B :SC:M:M :H:o^ :S:\]p?:HL@:EA:Xr:CLD:mi E:FgF:E%G:[c: :Bg:~:@ ?:`::Ap:DJ:~s :A:H!:CL :CL:CL:h6 :CL:y : :ET:|5! :y:x :CL:CL:CL:CL: CL: E;: IF: 7 : pJ: ]O: } : B=: i : pf: Jd: V:(: y : ~ : Aٚ : "U: #G: %J: ({ : )W : ,^b" : -^f: .I: /^: 1CL: 2CL: 3CL: 4CL: 5CL: 6CL: `CL: aCL: bCL: eP: fH"i: gI6: iI: lJW : oJW }e:U"}f:qЮ M: w+ N: C O: E0}P: EgQ: `@R: NS: o+ T: L=V: ty: X: EY: K)w[: Ʊ+\: X ^: eIi_: z* `: D a: Zkb: ZEc: R: CL: CL: CLg: p; : CL: CL: CL: CLm: Hjn: }go: iK : CL: CL: CL: CL: CL: CL: CLw: Fx: TLy: _W : OP{: xt |: YF}: l~: ^: Dg: Fھ: (pmy ~: +CL: -^ |: /CL: 2G0f: 3E: 4HH: 8Nuu: :CLt: ;CL: =fM : >o : @k 5: BJz6: CJTL: ECL: FCL:: HI;: IN4<: JQTR?: KE: NCL: OCLB: Q{ C: RS^D: SDpE: ULF: Va#G: WDH: XL L: YJ8RM: ZFxRN: [S^O: \JP: ]JQ: `l R: al T: cN[DU: OV: D: CL: CLY: ' Z: EZ: CL: CL]: zcz ^: PCN: CL: CLa: P: CL: CLd: B1 : CLf: ^: CLh: Ezi: T: CLk: Y l: N( m: K n: ho: lp: q q: m( r: i s: K t: KQu: A9j: CL: CLx: A/y: Ql~z: F5: CL: CL}: E~: M: M9: C : CL~: CL: FsP9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 1`h2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ : Z` : ixB : L#: FN=: FN=: ixB : ixB : F!O: i : {: @: P: Il: L: } 8: !JP: $B : &Lv: 'M: )L: *H: Uo^ : VS: Ys?: H@: FsA: M: CLD: lR E: F*F: EG: X: pA: u: n3: E: \: A: h : ax : !Hs<: #Lb!: %CL : &CL: 'CL: *`x : -CL: /{ : 0BUZ: 1Cpi: 2{ : 3S : 5x+ : 8CL: 9CL: :CL: ;CL: ^: e_: {q `: Ba: VW b: Zqc: Sٚ: CL: CL: CLg: pE : CL: CL: CL: CLm: G n:  o: k : HCL: ICL: JCL: KCL: LCL: NCL: OCLw: RM >x: SVy: TZ.: UOP{: Vz; |: WYy}: YhO`~: [^: ^D#: _F: bx ~: dCL: fc |: iCL: lGF-: mB: nH<: qH=u: sCLt: uCL: wf : xp : yl33 5: {J6: |JK5: ~CL: CL:: JP;: M~<: Yj?: EO: CL: CLB: {= C: QԮD: DLE: WkF: l=qG: CH: L L: L34M: H&fN: TO: JāP: KOQ: l~k R: m- T: NU: OV: E?: CL: CLY:  Z: E: CL: CL]: { ^: P: CL: CLa: P: CL: CLd: B: CLf: ^: CLh: Ei: T:CLk:Y l:NL m:L= n:io:m%Ip:m q:i{ r:i3 s: Lt:!KRu:"C:$CL:%CLx:'BFy:(Pw3z:)B:,CL:-CL}:/E2~:1M3$:2MTB:3C":5CL~:7CL:8G )P9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 1`h2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ :?\ :@ixB :BNڐ:DI"d:EI"d:HixB :IixB :JH:Ki :u{$}:v@*:yO:{I:|K:[:} 8:JP:EV:S:M:M :H:o^ :S&:RJP:CL*:Ln,:Fj:CL.:zr :CL:CL:CL:CL3:m4:A36: CFf7: @8: s9:Eh*::I;:J<:H3:=CL>:@[O?:AH@:BF-A:CO/:ECLD:Fmi E:HGF:IEtG:J[*q:Mk:NqX:Oj3:RHY:T`:UB,:Vhׄ :Wc :XJ|1:ZMX!:\CL :]CL:_CL:ae5 :dCL:f{ :g~ :hCSc:i{in :kp:oxH :rCL:sCL:tCL:uCL:vCL:EJ:I0:7 :p:]:}f :j> :i>? :r:I:X?:}: :hJ :B :T*:d :G&":{H :V? :]ٚ :_L:M:^:CL:CL:CL:CL:CL:CL:CL:CL:CL:Oa:H :I[g:HF: JW :JW }e:kv9}f: wo ^ M:,uG N:.CO:/E*P:0FQ:4`"R:5NS:6nT T:7M>V:8v- X::E>Y:;KC[:=Sq\:>W^:ieF_:j|9 `:lB:a:mXb:nXpc:oS:rCL:sCL:tCLg:vp :xCL:yCL:zCL:{CLm:Gn:Po:m :CL:CL:CL:CL:CL:CL:CLw:J8Rx:Qy:Y:OP{:{\ |:X}:g.~:^:C>:E:q ~:CL:b& |:CL:GV:A/:H[X:Mu:CLt:CL:dV :pD :k 5:J6:JL:CL:CL::H;:L<:YD?:G ):CL:CLB:|} C:PlD:DE:NF:eG:GffH:M L:G!HM:BfN:O{O:KP:K@%Q:m- R:me T:NU:OV:EZ:CL:CLY:0@4Z:1E:4CL:5CL]:7| z ^:9P.c:;CL:K:CL:CL}:El~:MD{:Mx:C :CL~:CL:G-aP9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 1`h2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ :Y :ixB :Px:J}:J#:ixB :ixB :J:i :zJ:@ :P :H:K4:} 8:JP:B :L<:M:L:H:o^ :Q:Eʘ:CL:EŞ:q:CL:CL:CL:CL:CL:CL:CL:CL: v: rs3: vf: OxR:MR:MR:CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N]:CL:"D :$CL:%CL:'}; :)CL:*CL:+CL:,CL$:/LZ%:0I&:3LS:^CL*:`L<,:aY.:cCL.:evh. :hCL:iCL:jCL:kCL3:mm4:oA36:rB7:s{8:tq,9:wE7,::yH|;:zJ<:{G<:|CL>:Yź?:H@:F A:K$:CLD:k E:GBF:EtG:X}:@:C:@A:J8:a:A:k) :b :Kj:N!:CL :CL:CL:c :CL:z[ :Gu:DY:{ :ch:xt :CL:CL:CL:CL:CL:E:I:7 :p:]:} :z[ :i[~ :o:I:W:| :~] :%Aٚ :(U~:*EG:+G:.{ :/Oi :2^"" :3_3:4OS3:5^:7CL:8CL:9CL::CL:;CL:CL:?CL:@CL:CN:DG=:EI2:GH}:JJQ:MJQ}e:l}f:lZ M:uZU N:C%O:F1P:F˕Q:`=R:MS:n T:NXV:w X:EY:K[: P\:X ^:e_:}q `:Aۙa:[qb:XBc:PH:CL:CL:CLg:p :CL:CL:CL:CLm:G2Jn:~io:o8> :CL:CL:CL:CL:CL:CL:CLw:H\x:Ny:[:OP{:| |:X}:h~:^:C:F7: x ~: CL:`> |:CL:Gg:Ak:HP|:HVu:CLt:CL:c/ : pc :"l{ 5:$Jd6:%Ja:'CL:PCL::RH ;:SLIG<:TV?:UF[G:XCL:YCLB:[|ƚ C:\NmD:]DE:_U\F:`apG:aERH:bM L:cD{M:d@ N:eNO:fKRP:gKTcQ:jmYk R:kn T:mNU:nOV:oE_:qCL:rCLY:t@`2Z:uEW:xCL:yCL]:{|C ^:}P :CL:CLa:P':CL:CLd:BN:CLf:^:CLh:Ei:Rb:CLk:Z; l:NR m:M n:i33o:lp:k=q q:h = r:i = s:Lt:K\u:C\:CL:CLx:B1 y:M4z:CZ:CL:CL}:E2~:MT:Ml:Cd:CL~:CL:GnP9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ :ZO :ixB :Mw:G:G]:ixB :ixB :Go:i :{Fe:@ :"O:$I~:%K=:(} 8:*Mo#:-B :.OPP:/M/:1L:2H:6o^ :7Sp:@CL:ACL:BCL:CCL:DCL:FCL:GCL:HCL:Ktp:Llg: vf:NMR:OV):POxR:RCL:SCL:|CL:~CL:CL:CL:CL:^:CL:CL:CL:No:CL:D:CL:CL:~l^ :CL:CL:CL:CL$:L*%:I&:Ip:CL*:K,:FӍ:CL.:H:CL:CL:CL:CL3:n14:A36:C7:Bg8:{9:E::Hf;:Kf<:I0:CL>:Y?:I@:F WA:KD|:CLD:l E:GgbF:EG:Y>:t:z@:sFg:JV:]3:A:g :`d :I:NT!:CL :CL: CL: bb :CL:{ :G:C:|& :M :x :CL:CL:CL:DCL:ECL:HF :JI-:M~ :Op:R]O:S}f :ToK :UiX :Xny:\I:][:`| :alD :dA :gT:jm :kHa:l{ :nR :q] :r`@:sN:t^:uCL:vCL:xCL:yCL:zCL:{CL:|CL:}CL:CL:O:HG:IC:H:JQ:JQ}e:^}f:j M:w- N:C)\O:E'P:G;Q:`.R:N S:x T:N_V:w X:EaY:K"[:.\:[^: e_:}c `:AZ#a:X:b:W&fc:P:CL:CL:CLg:p :CL:CL:CL: CLm:#Gn:&C4o:(ob5 :*CL:+CL:,CL:-CL:.CL:/CL:0CLw:3G{x:5O#y:6[p:7OP{:8| |:9X_}::h~:<^:@Cq:AF:Dx ~:FCL>dQ |>CL>Gu^> B> HZ> Lu>CLt>CL>c >p >l33 5>J 6>Jt>CL>CL:>G;>K<> Yc?>!F~>$CL>%CLB>'}R C>(MD>)DE>+DF>,MG>-sH>.L L>/M0M>0H5N>1UfO>2K8P>3KyAQ>6m R>7n`* T>9N;U>:OeV>;E>eCL>fCLY>h@Z>iF!O>lCL>mCL]>o|= ^>qOl>sCL>tCLa>vP7>xCL>yCLd>{BE>~CLf>^>CLh>Ei>Qc>CLk>Zr l>K\ m>J n>iLo>mdkp>k q>haH r>k\) s>Lt>Khu>@>CL>CLx>Afy>Kcz>D>CL>CL}>Ez~>Mdk>M]b>CD>CL~>CL>GP9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ >ZO >ixB >M>>HO >Ht>ixB >ixB >Hd>i >z~>B3>O>I~>L>} 8>M >B >T>L>Lq>H>o^ >Q>,Eʘ>.CL>1EN>2p>4CL>5CL>6CL>7CL>8CL>9CL>;CL>?sf>@t6g>ADt>BMR>CUf>DMR>FCL>GCL>HCL>ICL>KCL>LCL>MCL>N^>OCL>PCL>QCL>SN^j>UCL>WD >YCL>ZCL>\r >_CL>`CL>aCL>bCL$>dL^%>eI&>Q>CL*>LG,>Cu>CL.> O >CL>CL>CL>CL3>n@E4>A36>Cf7>GS38>z,9>D`:>Ii;>J<>Gg>CL>>[?>I0@>FA>Lo>CLD>lo E>GF>EG>[]a>B4>Ef:sFg>I>av>A?>k >`x >I>Mi!>CL >CL>CL>e >CL>z)B >} >E@>z$ >D >x0 > CL> CL>CL>CL>CL>F>)>IK>7 >p>]O>| >~s > i >#r0>&IL>'W>+| >,@}B>/B# >ZS6>[H~>\I>_| z >`S >c_UU >e`l>fM>g^>hCL>iCL>jCL>kCL>mCL>nCL>oCL>pCL>qCL>uN>vH>wIN>xHD>{JQ>|JQ}e>[@}f>k>H M>vn N>C-O>GP>GQ>`"R>NgS>@.T>N_V>w X>EgY>J[>Ӳ\>W^>f&_>} `>Ba:X:b>Zc>Ts4>CL>CL>CLg>pE >CL>CL>CL>CLm>Gn>go>nR >CL>CL>CL>CL> CL>!CL>"CLw>&Ix>'Tzy>(]R>)OP{>*|] |>+Y+}>,m~>.^>2C>3G>6ouq ~>8CL>:a |>@G>AE->BHxM>EHu>GCLt>HCL>KcP >Lpk >Ml 5>OJ6>PJb>RCL>SCL:>UIS;>VK9<>WVY?>XF>[CL>CLB>}~ C>TD>DE>AF>K G>m{H>L[ L>L M>H>N>TO>K`P>KQ>mi R>nB T>O6U>OV>E>CL>CLY>@Z>E>CL>CL]>|5! ^>Q>CL>CLa>QB>CL>CLd>A:>CLf>^>CLh>Ei>P>CLk>ZRm l>J. m>I n>i&fo>mzp>k q>e{ r>e) s>L t>Kpu>C/>CL>CLx>B+y>QНz>Ez>CL>CL}>E~>Mm>MK!>C E> CL~> CL> GBP9 fQgYbS4CL } CLCL FyCLCLU CL CL m  T CLCLCLBבM4@FfAI8DNFrGuHpY!Iny"J\#KA$LIO%MMi&NKp 'OJ3(QASCL*UDWCL-Y{H \CL]CL0_u65 2bF3dG۵4eG8gCL6h]iCL8k nCL:pBNsCL<upY =vCyCLzCL@IAE%BEnCLCLEIwHnIXۇ >[-F >ixB >M>H>H>ixB >ixB >G4>i >!zW>"@ >MO>OI~>PL>S} 8>UK>XB >YLS>ZI>\M>]H>`o^ >bQ>cEʘ>eCL>hE>iq>kCL>lCL>mCL>nCL>oCL>qCL>rCL>sCL>vu|>wlg>xA>yOxR>zV>{OxR>}CL>~CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N\@>CL>D>CL>CL>v >CL>CL>CL>CL$>L %>I\&>M9M>CL*>L,>L>CL.>z >CL>CL>CL>CL3>n94>A36>Gf7>D38>y29>DR:>I3;>Jf<>Gf>CL>>Yd?>I1 @>FA>I>CLD>m- E>G3F>EG>XC>!A3>"D>#@>&H>(aA>)Ap>*l >+a >,I=>.Lf!>0CL >1CL>2CL>5` >8CL>:y >;@Je>>zcz >@>Cx >FCL>GCL>HCL>ICL>JCL>NFNr>OIO>z >|pw>]>} >^ >i >p>I>V'u>},l >@.>A\ >U]R>IIw>Jg>| z >NO >f >`3>R>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>O(>H*>Ii>I >JL>JL}e>@Tz[}f>Kk'n M>u N>C5{O>HP>GQ>`R>MS> A+T> NV> v X>EY>K&[>{\>\l^>f^_>|UU `>D =a>@VHb>B[c>CVff>ECL>FCL>GCLg>Ip >KCL>MCL>NCL>OCLm>RHen>U~4o>Vm >XCL>YCL>ZCL>\CL>]CL>^CL>_CLw>bG{x>cPy>d_8R>eOP{>g{~K |>hXW}>ih;Z~>k^>nD&>pHF>sp ~>uCL>w^S |>yCL>G>G} >Ht>Ku>CLt>CL>co >ov >k 5>Jݔ6>J>CL>CL:>Hm;>Jn<>YHO?>F>CL>CLB>~l^ C>VND>DE>xF>HǮG>dQH>L L>PM>JN>^aHO>K|&P>KQ>mv R>n0 T>O1U>OکV>Et>CL>CLY>@Z>EW> CL> CL]> |5! ^> Q>CL>CLa>Ry->CL>CLd>BE>CLf>^>CLh>Ei> O>#CLk>&Z l>'J m>(J=q n>+h3o>,lp>.k q>/g{ r>0i( s>1Lt>2Kiu>3CD>5CL>6CLx>8Bny>9Sz>:B>=CL>>CL}>@E~>BMx>CM9>lC >nCL~>pCL>rG0>tX >u^^g>v_>wW4>yCL >{w >~CL>CL >P>CL>OP>M2>CL>OP>QoA>t. >OP>CL>CL>T >O>IP>K4>Q&>j>n> o!> iL"> U34#>4Gfg$>5I{.%>6Os&>7Kr'>8JP(>9D_>;CL*>>Z>@CL->B@=>ECL>FCL0>HC:2>JKXV3>KM\4>L@˹>NCL6>P]>QCL8>SC >VCL:>X| z >[CL<>]~s =>^A>aCL>bCL@>dJA>fJB>gCb>iCL>jCLE>lJH>n@>I>]^ >[- >ixB >Hؒ>EZ>E9[>ixB >ixB >E*>i >zJ>@>O>I>L>} 8>JP> B > Lv> H8> MC]> H> o^ > Q> F> CL> En> o8> CL> CL> CL> CL> CL> CL> CL> CL> wg> !k3> "}2> #}> $GR> %@xR> (CL> )CL> *CL> +CL> ,CL> -CL> .CL> 0^> 1CL> 2CL> 3CL> 4Nh> 6CL> aC > cCL> dCL> fx+ > hCL> iCL> jCL> kCL$> nLB[%> oI&> rQ> uCL*> wLB[,> xPk> zCL.> |FE> CL> CL> CL> CL3> n@4> A36> yY7> p 8> qS49> D+:> I#3;> JFf<> GFf> CL>> Y=K?> IP@> F){A> FY> CLD> kK E> GF> EG> Y.6> CA> E> A3> Gl> `|> ADq> kZY > bq > H> K!> CL > CL> CL> e[ > CL> x > )b > D> y1 > L)J > x > CL> CL> CL> CL> CL> FK> I]8> ~ > pN> (]> )|& > *@> +i > .n|> 1I> 2Z$}> 6| > 7@.> :A > =T > >I> ?KF> B| > CV > Fa > H`> IQf> J^> KCL> LCL> MCL> NCL> PCL> QCL> RCL> SCL> TCL> WOs> YH>> ZI[> [I$> ^JL> _JL}e> ]k}f>kI M> wY N> C?wO> IsP> G> Q> `{R> MS> o T> MuV> v% X> E߸Y> KM{[> 2\> Z=^> fv_> {r `> Ca> S(b> T c> NH> CL> CL> CLg> p > CL> CL> CL> CLm> Htn> go> l׷ > CL> CL> CL> CL> CL> CL> CLw> NǮx> Ry> ZL> OP{> z |> Z( }> kz~> ^> Dm> G> rz ~> CL> b |> !CL> $G@> %EX> 'Hg> *P8u> TCLt> UCL> Wc>w > Yp" > Zk 5> \JL6> ]J> _CL> `CL:> bJ3;> cIw<> dYHO?> eF> hCL> iCLB> kK C> lUrcD> mDZE> oCpF> pGG> quRH> rM]w L> sP4M> tKN> u`zO> vKqP> wLEQ> zn R> {n T> }O=2U> ~O$V> Z> CL> CLY> M Z> H> CL> CL]> @^> Qk> CL> CLa> RJW> CL> CLd> B)> CLf> ^> CLh> Ei> N;> CLk> Y l> L# m> KǮ n> hfo> m`p> nff q> gq r> h s> L t> Kju> A׾> CL> CLx> Bɀy> QTRz> GQ> CL> CL}> ET~> Mnv> M1> C/> CL~> CL> HG> Xw > bf> a>wW4> "CL > $yl > 'CL> (CL > )X> *CL> -OP> .Mj\> 0CL> 3OP> 4Qr"> 7rڟ > 9OP> ;CL> ?Tݦ > @E> A~ > B{> EQ> GaaH> HkR> It!> J^ "> KHf#> LE$> MI`%> NOI&> PL'> QJ (> RDL:> TCL*> WU6v> CL-> @> CL> CL0> CL!2> K(3> M 4> @h> CL6> ]> CL8> C > CL:> Ez> CL<> @C => @b> CL> CL@> JA> IB> C$> CL> CLE> J3H> ~=I> \TW > Yuc > ixB > J%g> DB> D_> ixB > ixB > DQN> i > zJ> @ > O> I> KA> } 8> JP> B > SC> H8> MG> H6> o^ > S Eʘ> CL> E> p{> CL> CL> CL> CL> CL> CL> CL> CL> lg> cVg> t6g> M>> MR> O34> CL> CL> CL> HCL> ICL> JCL> KCL> L^> MCL> OCL> PCL> QNE> SCL> VCU> XCL> YCL> [{in > ^CL> _CL> `CL> aCL$> cL,~%> dI&> gKA> jCL*> mL,> nBg> oCL.> qwl > tCL> uCL> vCL> wCL3> znL[4> |A36> ~xL7> r&f8> q@9> D_:> I;> Jc3<> F> CL>> [?> Id@> F/A> G > CLD> k/ E> GF> EtG> [> @> C33> ~i> E> ]W> A2> ju > b  > H> K!> CL > CL> CL> d > CL> x > AZ> D> yz > D$ > xP > CL> CL> CL> CL>CL>FPA>Ia>~s >p+G>]>},l >@> iJ >#r>&J>'YE1>*{w >+@;>.B >1S>3J>4KWG>7| >8R݊ >;aDD ><`3>=RY>>^>@CL>ACL>BCL>CCL>DCL>ECL>GCL>HCL>ICL>tO>uHG>vIo>xI*c>{JL>~JL}e> [K}f> Wky M>u=< N>CDuO>H6P>G>Q>_ R>M|S>n T>MaV>u X>E!Y>K[>\>Z^>eo_>{r `>B(a>Rb>V!Hc>P>CL>CL>CLg>p̲ >CL>CL>CL>CLm>Gn>o>l >CL>CL>CL>CL>CL>CL>CLw>Opx>Rpy>W\)>OP{>z |>Y}>i~> ^> D>G1B>|oQ ~>>c- |>@CL>CG$>EEƶ>FHn>IGku>KCLt>LCL>Od} >Po >Ql?} 5>SK.6>TKT>VCL>WCL:>YJf;>ZR<>[cѹ?>\F/>_CL>`CLB>b C>cTeSD>dDBE>fr=qF>gCqG>h]zH>iMr L>jJ{M>kDN>lY!HO>mKrP>nKQ>qm- R>rm4 T>tOWU>uOV>vEl>CL>CLY>@Z>ET>CL>CL]>|` ^>Q>CL>CLa>Qڦ>CL>CLd>A:>CLf>^>CLh>FRi>M*>CLk>Y l>NaH m>M# n>iٚo>l"p>lff q>j{ r>iff s>L t>Ko!u>D>CL>CLx>C6]y>Pz>C>CL>CL}>E~> M}> M"> B> CL~>CL>H >X >]ə>_>V>CL >wt >CL>CL >Z> CL>#OP>$MSA>&CL>)OP>*Qh>-rR >/OP>1CL>2CL>5T# >6A>7H>8G~f>;Q]>=k>>l>>?n!>hWL">iE#>j~$>kIV%>lOi&>nL*'>oJ7(>pDFm>rCL*>uR/>wCL->y@>{CL>|CL0>BE2>Kz3>M)4>@r\>CL6>]>CL8>CU>CL:>~ >CL<>~ =>@>CL>CL@>JnA>IB>C0>CL>CLE>JH>@vI>f >Y >ixB >G>C>>C>ixB >ixB >C>>i >zJ>@ >O>I8>L>} 8>JP>B >Lv>I>Mp>H>o^ >SEʘ>CL>E/>q>CL>CL>CL>CL>CL>CL>CL>0CL>3r>4cVg>5vg>6_>7b>9_>;CL>=CL>>CL>?CL>@CL>ACL>B^>CCL>ECL>FCL>GN8'>ICL>LC>NCL>OCL>Q}I >SCL>TCL>UCL>VCL$>YK%>ZIF&>]JY>`CL*>cK,>dY>eCL.>hT>jCL>kCL>CL>CL3>n[4>A36>p7>l38>hg9>Ddy:>Gvf;>I@<> F>CL>>X?>Iy@>F:A>Cr>CLD>jSk E>GLF>E\G>X>@ >B`>|f>D>_ɞ>A >ju >c >H2>J;!>CL >CL>CL>_i >CL>x >EW>D>xo >>>xP >CL>CL>CL>CL> CL> FT> Il>~ >p\>]>| z >c >j >r6f>J> Ulm>#{Z >$@-S>'B >+Tc>,J>-KJD>0| >1MiP >\iȉ >^a3>_S3>`^>aCL>bCL>cCL>eCL>fCL>gCL>hCL>iCL>jCL>nO>oHS_>pI>qI/>tJL>wJL}e>vBJ}f>Ol M>u_ N>CO'O>IP>GQ>_R>M9S>nT T>MV>u X>EY>J[>ϴܣ\>Z^>d_>z9 `>B Qa>SGb>VO\c>R#>CL>CL>CLg>p̲ >CL>CL>CL>CLm>Gfn>~Vgo>ln >CL>CL>CL>CL>CL>CL>CLw>FaHx>KRy>$Yu>%OP{>&yP7 |>'Z2}>(i}~>*^>.CDž>/G7>2z$ ~>4CL>6^ |>8CL>=E)>>HI>>AJu>CCLt>ECL>Gdz >HpM >Ik 5>KK 6>LJb>NCL>OCL:>QI/j;>RH<>SY,?>UC:>WCL>XCLB>Z@&C>[SOD>\D>E>^zfgF>_HLG>b(H>M L>P@M>KN>`\*O>KP>L'Q>me R>nQ T>O:tU>OϫV>U8>CL>CLY>@Z>E>CL>CL]>~ ^>P>CL>CLa>QK>CL>CLd>A">CLf>^>CLh>Ei>Lp>CLk>Y{ l>LG m>J n>ho>m%Ip>j q>c r>d s>Lt>Kfu>Cd>CL>CLx>C'y>NJz>G>CL>CL}>F~>Mv>M>Ct >CL~>CL> H> Xj >\>^h>T>CL >wl >CL>CL >>CL>OP>M9> CL>#OP>$Q`>'r* >QOP>SCL>TCL>WT >XNg>Yu>Zu&g>]Q>_g>`kR>al!>ba3">cMٙ#>dg$>eIM%>fOdi&>gLD-'>hJd(>jC>kCL*>nOm>pCL->r@>uCL>vCL0>xBɀ2>zJ3>{M24>|@>~CL6>]>CL8>BE>CL:>F!O>CL<>@b=>@C >CL>CL@>JāA>IUB>B%>CL>CLE>J3H>FI>k >]w >ixB >F>A^v>Al>ixB >ixB >A^v>i >zJ>@ >O>H">L>} 8>JP>B >Pۆ>IA>M>HI>o^ >R>Fq>CL>E>o>CL>CL> CL>!CL>#CL>$CL>%CL>&CL>)cVg>*cVg>+t6g>,Lh>-P}q>.N>0CL>2CL>3CL>4CL>5CL>6CL>7CL>8^>9CL>:CL>=N<|>?CL>BC#>CCL>DCL>F}~ >ICL>JCL>KCL>LCL$>OLd%>PJ&>RR>}CL*>L,>HCs>CL.>A>CL>CL>CL>CL3>nc4>A36>y 7>o98>s349>D1:>FY;>F<>Bf>CL>>YI?>I%@>F=sA>G>CLD>k E>G3F>EeG>Y^>|Y>@>y)>C>b>@>jb >d >G0>I>!>CL >CL>CL>e >CL>xe >EG>D>x+ >m>xP >CL>CL>CL>CL>CL>F[>Ij>~l^ >o*> ]> |} >' >j6 >o>J$>W/>{= >@>EB >HT>JJ>KK,>N| >OV3 >Rbb" >Sa33>TQ>U^>WCL>XCL>YCL>ZCL>[CL>]CL>^CL>_CL>`CL>dOK>eHU/>fI>gI.>jJL>mJL}e>V}f>Gl M>u=< N>CUO>J/P>GQ>_ĵR>MS>n$ T>M V>tR X>E-Y>J![>Ĵ\>Xi?^>d3:_>z9 `>Aa>Wzb>Wc>S>CL>CL>CLg>p̲ >CL>CL>CL>CLm>G .n>o>l > CL>CL>CL>CL>CL>CL>CLw>Gux>Ly>\ff>OP{>yW |>YC}>jO~>^>#C>$G3l>'rE ~>)CL>+b3 |>-CL>0G~s>2E>3Ha">6Pu>8CLt>9CL>=p;e >>kR 5>@J6>AJR>CCL>DCL:>FH;>GGrA=B?@4BBCLBCCL@BEJ˽ABGIBBHBBJCLBKCLEBMJZHBNC}IBOi) BRYuc BSixB BTH[BUBFBWBUZBXixB BYixB BZBcB[i B]zJB^@ BaOBcI~BdLBg} 8BJPBB BQX3BHVBM8kBI-Bo^ B@tB@LBCLBEBpTBCLBCLBCLBCLBCLBCLBCLBCLBcVgBdBqfBMRBU4BOxRBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN(EBCLBCӞBCLBCLBtx BCLBCLBCLBCL$BL %BI&BKBCL*B L ,B CdBCL.Bvv BCLBCLBCLBCL3Bn4BA36BD7BvFg8Bzy9B!C0:B#D3;B$F6fB*[*q?B+I@B,FGnAB-ImB/CLDBYk_ EBZGzFB[E5GB\[ B`@YBaC3Bb}gBeC8;Bgbv$Bh@Bij BjdR BkGuBlH!BoCL BqCLBrCLBtc BwCLByxWc BzB1 B{D4KB|wt B}Jv Bx BCLBCLBCLBCLBCLBFoBI]8B~# BouB]B{a B~ BjS BmiBJ2jBXB|C B@`2BB BS~BJKBKG`B| z BQnH Bd" B`3BQ33B^BCLBCLBCLBCLBCLBCLBCLBCLBCLBOBHYBI&BI3vBJLBJL}eB}[}f>H+QBA_jRBBMSBC' TBDLMVBEt XBGEYBHJڟ[BJ[\BKZr^BNc_BOzr `BQAڟaBRTbBSVcBURBWCLBXCLBYCLgB[pP BCLBCLBCLBCLmBG&nB}yoBk BCLBCLBCLBCLBCLBCLBCLwBLxBOyB_BOP{ByL |BZ_}Bj ~B]BCp$BG]Bzr ~BCLB^q7 |BCLBG}BGBHUBFuBCLtBCLBd Boa Bk- 5BJ6BJLBCLBCL:BGJ;BFOFBAGBs\HBL LBOfMBHT{NB\OBKEPBKQB l RB mv TB OvUBOVBEBCLBCLYB@QZBETBCLBCL]B{a ^BP,BCLB CLaB#PؔBMCLBNCLdBPAZBRCLfBT]BUCLhBWF!OiBXV B[CLkB]Y lB^J mB`I nBbhfoBclpBee qBfa rBhb sBiL>tBjKiuBkCBmCLBnCLxBpCZyBqIzBrG-aBuCLBvCL}BxF(~BzMyiB{LB|BgB~CL~BCLBHBX% BY 3BY6gBSDBCL BwB BCLBCL BBCLBOPBMN2BCLBOPBQjBrf BOPBCLBCLBTQ BQfBJBxBRBiBgqBfǯ!B`s4"BGS3#B~$BID%BOS&BLE'BJ(BCBCL*BMBCL-B@rBCLBCL0BB2BJ3BM[4B@BCL6B ]B!CL8B#BB&CL:B(FݱB+CLA5aIBAWZ BDixB BEixB BFBwBGBFBIBcBJixB BKixB BLBUZBMi BOzJBzEVB{OB}I~B~K6B} 8BJPBB BLvBGْBLsBIBo^ BmBEʘBCLBE&BpTBCLBCLBCLBCLBCLBCLBCLBCLBdlBcBlgBqB}Bx>BCLBCLBCLBCLBCLBCLBCLB\,BCLBCLBCLBN&BCLBCaBCLBCLB|ƚ BCLBCLBCLBCL$BL%BI&BKBCL*BK,B^uBCL.BVڃBCLBCLBCLB CL3B n4BAu6BB7B@g8BvY9BCO:BC;B@D,BFY ?BGI@BGFU ABHD BJCLDBLk=" EBNG}FBOEGBPY7BSABTCTBU}BXB)BY`,BZ@B\j B]d B^GB_H@!BbCL BcCLBdCLBf_ BiCLBlxt Bm@BnCBoxt BpKX Bqx0 BtCLBuCLBwCLBxCLByCLBFBIS<B}I BoB]B|& B Bjb Bp3BJ:BYroB{Z B@BB@ BR|BKBK6B{a BM Bhn BaBQ6fB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBOBH^ABI=B I4^B JLB JL}eBp_w}fBl MBuK NBCVIOBI$PBG_[QB_RBM-SBoI TBM VBt XBE'YBJ[By\BX^Be;_Bz `BBaBP4bBRcBPBCLBCLBCLgBp BCLBCLBCLBCLmBH nB}0oBk BCLBCLBCLBCLBCLBCLBCLwBFxBMW yBVBOP{By= |BX}Bi~B]BDBGj5BzF^ ~BCLB]J |BCLBGB0H<6B1H;}B4NuB6CLtB8CLB:f B;pȵ BJb6B?JBACLBBCL:BDH;BEQfBP@BCL ByN B CLB CL B 4BCLBOPBM^BCLBOPBQqjBrڟ BOPBCLB CLB"Sɰ B$M3B%GB&FgB)Q(eB+Y{B,]B-]R!B.Yٙ"B/H`#B0@Y$B1I5G%B3O&B\LKv'B]Jd(B^CB`CL*BbJmBeCL-Bg@BjCLBkCL0BmA2BoJ23BqMn94Bt@BvCL6Bx]ByCL8B{CB~CL:BFqBCLBF^!AB?R _B@OPDBCr EBEGFBFEeGBGZpBJsBKx BLo3BOk BP_,BQABRj BSgX B}DB~G`!BCL BCLBCLBcн BCLBx B@BCBx+ B@ BxH BCLBCLBCLBCLBCLBFBIHWB|& BnHB]OB{ B~ BjJ Br@BJLBVX\BCv8BE.{BBQ BROcBI5BIB{ BP Bd B`YBR3B^BCLBCLBCLBCLBCLBOPBOPBCLBCLBOpKBHxBIBI+KBJLBJL}eBYK}fB:o@q MBDu NBFCNqOBGHPBHGwQBK_RBLM SBMn TBOL VBPt XBRECYBSJ[BTV\BUX^BXd=j_BZzc `B\A aB]K bB^McB_IYBaCLBbCLBcCLgBepu BhCLBiCLBjCLBkCLmBnGv9nBq~4oBrk  BtCLBvCLBwCLBxCLByCLBzCLB{CLwB~E\xBM8RyBVBOP{By'A |BY}BlZ~B]BCBG* B} ~BOPBbR |BCLBG~BH$BHQBMCuBCLtBCLBfX BpH BlV 5BJd6BJBCLBCL:BQ ;BR?HBLq LBHfMBB=qNBVOBJPBK.QBl RBmJ TBNtUBO#VBDMB!CLB"CLYB$ ZB%ElB(CLB)CL]B*{Z ^B,P~qB.CLB/CLaB2QB4CLB5CLdB7@.B9OPfB;]BF(iB?QBAOPkBB[- lBCw33mBDw33nBGX3oFk\ pF^k qFW rFXǮ sF KwtF KuF EF OPFCLxFD%yFMazFFqFCLFCL}FE~FMFL)FD[vFOP~FCLF!IZF$X F%RgF&QF'J;3F)CL F,V'uF.CLF/CL F0_F1CLF4OPF5L<F7CLF:OPF;Q><Ffp,E FhOPFjCLFkCLFnS FoAFpu4FqsFtPFv]FwbW Fxd!FyU"Fz}#F{o$F|Iu%F}O&FL6'FJ(FCYFCL*FIFCL-F@bFCLFCL0F@}B2FJ9>3FMU4FGבFCL6F]FCL8FDFCL:FGgFCLHFBIF] F[J FixB FC>F@JeF@JeFixB FixB F@JeFEF{SFB3FO/FI~FLF} 8FJPFB FQFAפFNyFJPFo^ F-Ti[F0EʘF2CLF5EF6pʚF8CLF9CLF:CLFCLF?CLF@CLFCb,FDYgFEw#3FFMHFGkHFIiFKCLFLCLFMCLFNCLFOCLFPCLFQCLFR]FSCLFUCLFVCLFWN FYCLF\CWF^CLF_CLF`}~ FcCLFdCLFeCLFOP$FLb<%FJBU&FIAFCL*FMz,FUFCL.FHmFCLFCLFOPFCL3Fo4FAu6Fp37Fa 8F_,9FAi:FC;FD0FXWo?FI{@FFCAFN07FOPDFt EFGFFEGFX/Fq3FuFmF} F_KeFAFju Fg FDFF~!FCL FCLFCLFa[o FCLFxH FEWF D;F w F G" F x:D FCLFCLFCLFCLFCLFFFIT$F|} FnGF!]OF"{ F#~ F$j F(o#3F+JnF,WHF-EF.F~FXB) F[R F\HYF^I^sFa{in FbN Fej33 Ff`fFgT\Fh^FjCLFkCLFlCLFmCLFnCLFqOPFsOPFuCLFvCLFyO\/FzH}F|I&F}I$FJLFJL}eF [}fBoP MFu NFCGOOFGPFGTQF_=2RFMSFn TFLɀVFtj XFEYFJ[FѴk}\F\X^FcU_Fy `FAaFUbFY{cFT޹FCLFCLFCLgFqX FCLFCLFCLFCLmFGnF} oFk FCLFCLFCLFCLFCLFCLF CLwF#F#xF$M4yF%T\)F&OP{F(x |F)ZZ}F*j7~F,]F/CbkF0GcF3srb ~F6OPF9] |F;CLF>GF?IF@Hv!FDJ0uFFCLtFGCLFIe FJp FLl- 5FNJG6FOJFQCLFRCL:FUST;FWP!FbR "FcB#Fdq@$FeJE%FgOu&FhL'FiJ^K(FjC<FlCL*FnIFqCL-FsCpiFuCLFwCL0FyA/2F{Js3F|MI4F}HFCL6F]FCL8FCFCL:FGgRFCL]F?CLF@CLFACLFCNFECLFGC>FICLFJCLFLz? FOCLFxCLFyCLF{OP$F|L%F}Jc&FQbuFCL*FL>,FTwFCL.FHGFCLFCLFOPFCL3Fo&4FAu6Fqy7F\S38Fj 9FA<:Fp9;FwfgFV+?FI@FF}AFOX!FOPDFu' EFGFFEGFRFkyFp3Fh\F{ FbFAFj Fh FD_FF!FCL FCLFCLFf FCLFx FGFDGFvܹ Fp?.Fx# FCLFCLFCLFCLFCLFFFI[gF | F nF]OF{ F~# Fj" Fq@FAJ~FBSFDG=PFEGFGB FJSFKHRFLI.FO{LS FPV FTd" FU`FVSfFW^FXCLFYCLFZCLF\CLF]CLF`OPFaOPFcCLFeCLFhOPMFiHFjIFkI~FnJLFrJL}eFR}fFIn) MFt7K NFCE+OFIiPFGQF^@RFN%SFn}[ TFK:%VFr> XFEuYFJTL[FU\FY^Fd_Fz8 `FAaF{ǯbFA8RcFxǯFCLFCLFCLgFp FCLFCLFCLFCLmFFnF~)oFk F CLF CLF CLF CLFCLFCLFCLwFHǮxFM(yFXFOP{Ftߓ |FXl}Fi(~F]FC*F!GSF$t>u ~F&OPF)` |F+CLF.GF0JF1HF4OuF6CLtF7CLF:e# F;q+ FI6F?JDFACLFBCL:FmR ;FpN;F Tǥ?F Ic&@F Fq2AF QF OPDF zT EF )GFF *E GF +QZF .lF /pF 0hgF 2zG F 5b%F 6@6F 7j F 8i/3 F 9D%F :E!F >CL F ?CLF @CLF Bc>k F ECLF Gw F HBF IDGF KwQ? F LM F Mx F PCLF QCLF RCLF SCLF UCLF XFF YI]8F \|j F ^n<F a]OF bz F c~# F k\ F nvfF Jo{F XǀF HiF HGF B{ F R-F HF IwF {/9 F PX F e F `pF T`F ^F CLF CLF CLF CLF CLF OPF OPF CLF CLF O0RF HF IF IF JLF JL}eF L^f}fF:mC MF u " NF CCOF IPF GQF \CRF NWSF x TF JVF q XF E^YF J"[F  \F [4^F b_F zG `F AaF zW bF @xRcF wF CLF CLF CLgF "pk F $CLF &CLF 'CLF (CLmF +FnF V}4oF Wk4 F YCLF ZCLF [CLF ]CLF ^CLF _CLF `CLwF cFxF dMW yF eUF fOP{F hsߓ |F iY}F jo6Y~F l]F oBF pGErF sz ~F vOPF y_& |F {CLF ~GxF KM)F H1ZF MOuF CLtF CLF e F q\) F l 5F I[6F I_F CLF CL:F R:};F PGF ]HF Ks LF ~\MF yNF MW OF JPF JцQF o RF of TF NUF NzZVF D'<F OPF CLYF @QZF CaF OPF CL]F z ^F XF OPF CLaF RCF OPF CLdF GF OPfF ^F !CLhF #F>KiF $NH\F &OPkF 'Zq lF (\QmF )ZnF ,D33oF -hpF /^L qF 0V rF 1X sF 2L\tF 3LAquF 4FF 5OPF 7CLxF 9E yF :S)zF ;HVFF =OPF ?CL}F AG&"~F CLF DLF FD#F GOP~F ICLF KFyF MW٘ F NH4F OF4F PB F RCL F TF!OF WCLF CL F >(F CLF OPF L F CLF OPF QIF m( F OPF CLF CLF R@ F 33F v)F ^F PNF ^BF b>F a!F T"F Dfg#F {s3$F K%F Pc&F LG'F Jb(F B֐F CL*F H$F CL-F @nF CLF CL0F @42F J73F M'4F GF CL6F ]F CL8F BrdF CL:F GQF CLF T}?F IAq@F FvAF RF OPDF|} EFG6FFEeGFPFr0FvFmFy FaF@F j F!ixB F"CF#E!F&CL F'CLF(CLF+`' F.CLF0wl F1@QF2CL!F3vv F5wF8x FCLF?CLF@CLFCFFDIT$FG|C FJn<Fu]OFvzT Fw}; Fxk F{sF~JRPFUFI/jFHÕFBc FSFHFI`F{ FN5 FcH F`FfFQfF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFNFHFIFIFJLFJL}eF5p3 }fF n} MFt+ NFC@.OFIRPFGBQF[RFNwSF@۶TFJJeVFp5 XFE YFIۘ[F\F[D^FdJ_Fzc `FB<aFx>bFcF vF CLF CLFCLgFp( FCLFCLFVFD;FOPFCLYF@ZFBMFOPFCL]Fz)B ^FZ]FOPFCLaFRFOPFCLdF FqF OPfF ^FCLhFEiFM<FOPkFY lFZGmFZnFEoFhpF`8R qFY rF[ sF LPtF!L;uF"FF#OPF%CLxF'E2yF(Ql~zF)HؒF+OPF-CL}F/GX~F1LےF2L{F3DJF4OP~F6CLF8EF;WF FBFhCL FjEFmCLFnCL Fo=FpCLFsOPFtJYzFvCLFyOPFzPxF}j# FOPFCLFCLFR FeF^Fd)FP;Fh*FlgFk8R!FTf"FF#Fy33$FK%FPc&FKR'FJx(FBFCL*FHFCL-FAFCLFCL0F@2FJ3FM 4FG3+FOP6F]FCL8FCFCL:FGFCLK<-FAo^ FCPxFFEʘFHCLFKEuFMpFNOPFPCLFQCLFRCLFSCLFTCLFUCLFVCLFYYgFZNgF[cVgF]GHF^kHF_GHFaCLFbCLFcCLFdCLFeCLFfCLFgCLFi]FjCLFkCLFCLFNFCLFCFCLFCLFzr FCLFCLFCLFOP$FK%FJ&FLFCL*FL,~,FSFOP.FIFCLFCLFOPFCL3Fn4FA6F7Fs38Fv9F|R:Fp;FxFTc?FI@FF}AFSFOPDF@EFGȩFFEGFPFoLFsFjgFx F^UF@4F k F i| F CuF D!FCL FCLFCLFfE FCLFv F}I FCZFvR FM Fw F"CLF#CLF$CLF%CLF&CLF*F F+IAF.|` F0nOF3]OF\y F]|ƚ F^k FboٚFeJ%FfYGYFgI FhHFjBO\ FmQFnH-FpH"Fs{ FtVҍ Fwe Fx`@FyR9Fz^F|CLF}CLF~CLFCLFCLFOPFOPFCLFCLFNFHFIrFHFJGFJG}eF_}fFwo MFt` NFCGOOFJPFGsQFZRFNISFAlTFJAVFp/ XFDxYFIp[FV\FX^Fd_Fz `FDEaFy34bF@)cFx=qFCLFCLFCLgFp FCLFCLFCLFCLmF%Hi"nF(}LoF)h| F+CLF,CLF-CLF.CLF0CLF1CLF2CLwF5IpxF6MuyF7T F8OP{F9ri |F;[\}F]FACFBH^FE|oQ ~FGOPFK_ |FMCLFPGFQKFRH/.FUOuFXCLtFYCLF[i! F\r F]l 5FI6FI^FCLFCL:FQ;FNtFL*uFFxCFOPF CLxF E9[yF NszFIwFOPFCL}FG} ~FLFLuFD7FOP~FCLFEFX4a F F3F!CvgF"@vfF$CL F&EZFQCLFRCL FSyFTCLFWOPFXIIwFZCLF]OPF^M42Faf FcOPFeCLFfCLFiR FjZFkRlFlV#4FoPCXFq^FrcEFsb^!FtO"Fu{#Fvw$FwK$%FxO@&FyLp'F{J3(F|BF~CL*FHFCL-F@C FCLFCL0F~ 2FJ3FLt4FFFOP6F]FCL8FD_FCL:FFFCLl`F?GHF@kHFAGHFCCLFDCLFECLFGCLFHCLFICLFJCLFK]FLCLFMCLFNCLFPMFRCLF|CF~CLFCLFy] FCLFCLFCLFOP$FK%FJ&&FJSFCL*FLl,FSFOP.FJFCLFCLFOPFCL3Fn]4FAu6Fu37Fg338Fhٙ9Fz:FnY;FvFT~?FI@FFAFT{ZFOPDF@~EFGcFFEeGFPFmvfFr3FiVfFx6 F`F@NFk Fj' FCi(FD!FCL FCLFCLFa>' FCLFvK F| FCpiFu6 FFe FwS FCLFCLFCLFCLFCLF F7F I6/F|5! Fno1F]OFy F{ Fk= Fn\FFItFGW5FHJFJHFLB) FORFPHFQHFTzu FUMZ FXg FZ`ffF[T\F\^F]CLF^CLF_CLFaCLFbCLFeOPFfOPFhCLFiCLFmNFFnH}FoI{.FpHFsJGFtJG}eFZ^y}fF[r MFt` NFCCOFJPFG2sQFZ9RFNuSFo TFI VFo XFDhYFItk[FĴ\FZT^Fd%_Fz `FCحaFybF@cFugFCLFCLFCLgFo FCLFCLFCLFCLmFH_)nF}oFg F CLFCLFCLFCLFCLFCLFCLwFAW xFL)yFR{FOP{Fq# |F[U}Fm~F ]F#D!F$H+\F'zT ~F*OPF-_| |F/CLF2GoF3KF4H%F8LuF:CLtF;CLF=kh F>s F@m/ 5FBI6FCIFECLFFCL:JP6R;JPJ(T ?J)H@J*FAJ+UlmJ,OPDJ-AEEJ.GFJ/EGJXPRJZkyJ[oJ\gFgJ^w;R Jab%Jb@eJck. Jdj> JeC JfC!JjCL JkCLJlCLJnbE JqCLJsv JtB5JuC/JwuS[ JywJ|w3 JCLJCLJCLJCLJCLJFJI7J|R8 JnMJ]Jy J{ JkLl JrJIJT9 JJcJHJBO\ JRJH:JHJz[ JSDY JeU J`3JR3J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJNSDJH|.JIq2JHJJGJJG}eJyo }fF=tHw MJ1tq NJ4C=SOJ5J!PJ6GMQJ9YmRJ:NISJ;o; TJ Jmk 5JIoa6JJJCLJCL:JP{;JPKJROPfJT^JUCLhJWD̘iJXV%JZOPkJ[Xc lJ\^mJ]` =nJ`DfoJah>pJc\p qJdV=q rJeX33 sJfLCtJhK uJiF8JjOPJlCLxJnE9[yJoQezJpI/jJrOPJtCL}JvG~JxL,JyL$JzDɲJ{OP~J}CLJC=JW+ JF{3JD3JB4JCL JE*JCLJCL JpDJCLJOPJH~JCLJOPJJJb JOPJCLJCLJS+} JsJl`JpJPJgJe}qJag!Jd"JE9#Jv4$JK%JOs&JL'JJ(JB[)JCL*JH/JCL-J@JCLJCL0J}; 2JJ3JL%4JFFJOP6J]JCL8JDJ"CL:J$FEJ'CLAJ2J$LBJ5U J8CLJ9CLEJ;DuHJ=IJ@^.< JCixB JDixB JEDJFBɀJGAJHixB JIixB JKAҩJLEJNzJJO@ JzOJ|H\J}LJmlLJJPJEVJOBoJAJNyJLJo^ JNJMJCLJEJrJOPJCLJCLJCLJCLJCLJCLJCLJ`JXJk\JGHJkHJGHJCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJNJCLJCJCLJCLJxH JCLJCLJCLJOP$JK2+%JJk&JNJCL*JK,JTJOP.JJvhJCLJCLJOPJCL3Jnj4J Au6J o&f7J h8J`9Jx:JlY;JvYJTvP?J@Hh@JAFCAJBUJCOPDJDAkEJEGFJFEGJGPJJi0JKmJMe#4JNu JQb%JR@9qJSk=" JTju JUBJWCD!JZCL J[CLJ\CLJ^c!( JaCLJcu JdGJfB=Jgt4 JhL¤ Jiw JlCLJmCLJnCLJoCLJqCLJtFJuI$Jx|R8 Jzn;KJ]Jx0 J{= Jk[ JnfJI|;JWJJ&JHZJB JQ JH{JHJz JQ Jf J`&fJTJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJN SJHz^JInxJH1JJGJJG}eJh^_}fJuM MJt NJC6OJ JT%PJ!FAQJ$XݱRJ%NSJ&o TJ'HNVJ)mH XJ*D~XYJ,H[J-\J.\\r^J1b_J2z `J5B XaJ6x bJ7A0cJ8x\*J:CLJ;CLJoek JACLJBCLJCCLJlCLmJoG8nJr}PoJse( JuCLJwCLJxCLJyCLJzCLJ{CLJ|CLwJD >xJKyJR34JOP{Jo33 |J[d}Joz~J]JCJGJ O ~JOPJY |JCLJG.JK[JGJO^uJCLtJCLJkɺ Jr JmS 5JI]86JJJCLJCL:JOH;JK]&J ,KM'J -J(J .B J 0CL*J 2HzxJ 5CL-J 7A{J bCLJ cCL0J e7 2J gJi3J hLWN4J iF*J jOP6J l]J mCL8J oDJ rCL:J tFEJ wCLCLJ AOP$J BK %J CJp&J EOJ HCL*J KKV,J LT!J MOP.J NJJ PCLJ QCLJ SOPJ UCL3J Xn4J ZA6J \rf7J ]mg8J ^h9J aw:J cm&g;J uJ T_H?J HD@J F[AJ U$J OPDJ AEJ G{aFJ EGJ P}J iJ nfJ gJ s J aNJ @ J kZY J j J BJ B!J CL J CLJ CLJ _ J CLJ uS[ J CJ BJ t[ J C1;J w J CLJ CLJ CLJ CLJ CLJ FJ HJ { J n HJ ]J x J {/9 J ki J r3J I/J UϴJ J`J HJ Bc J RJ HqJ HJ z J M\ J g J `fJ VfJ ^J CLJ CLJ CLJ CLJ CLJ OPJ OPJ CLJ !CLJ %MJJ &HxJ 'Ig5J (HJ +JBJ VJB}eJ @ٌ}fJuvL MJ nt NJ pC1OJ qK1PJ rFQJ uXh:RJ vNSJ xn TJ yHcMVJ zl XJ {DlTYJ }H][J ~9\J \^J b_J {r `J APgaJ z{bJ A>cJ y*J CLJ CLJ CLgJ ou J CLJ CLJ CLJ CLmJ FnJ }ioJ dQk J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ FpxJ P(yJ U)J OP{J nUU |J \#}J m@\~J ]J CEJ GJ ' ~J OPJ V' |J CLJ FhJ KJ GJ NuJ CLtJ CLJ "k J #qz J $l 5J &IO6J 'InJ )CLJ *CL:J -N/};J 0G,cHJ ?KX LJ @a34MJ AVHNJ BM(OJ CJ}PJ DJ0QJ Gv RJ Hu TJ JL.AUJ KLPVJ LFpKJ MOPJ OCLYJ Q~Ü ZJ RB"J TOPJ VCL]J wQ? ^J _UJ OPJ CLaJ RJ OPJ CLdJ FJ OPfJ ^J CLhJ D- iJ TFBJ OPkJ Ww lJ \33mJ \ nJ EoJ hzMpJ ] qJ Y rJ ]Ǯ sJ K2tJ KAuJ FJ OPJ CLxJ E9[yJ NC%zJ IJ OPJ CL}J G:~J L9FJ KGJ D܌J OP~J CLJ BNJ WM J F34J D\J AtJ CL J DJ CLJ CL J J CLJ OPJ GKJ CLJ OPJ I+J ^FI J OPJ CLJ CLJ R J vJ NC3J SJ OJ Z5J `&gJ ^\!J R33"J Ay#J r$J K?%J O&J K['J JL(J AVJ CL*J H@J ICL-J K@J NCLJ OCL0J Q 2J SJH3J TL4J UFJ VOP6J X]J YCL8J [E9[J ^CL:J `F!OJ cCLo$k4J@A6JC~97JDl`8JEcL9JHv:JJsS3;JKz3JvT?JwHmP@JxF}AJyW=JzOPDJ{AEJ|Gi4FJ}EGJ~PtXJjgJo3Jg)JrF J^sJ Jkw Jk JBNJBy!JCL JCLJCLJe JCLJt J O JB+JtM JK Jwna JCLJCLJCLJCLJCLJFJHJ{H JnJ]Jxe J{ JkxB JmJH6JW7JJJGJB{ JRJHiJHJz JV Jh" J`vfJUJ^JCLJCLJCLJCLJCLJOPJOPJCLJ CLJ Mo#J HxJI]8JHJJBJ ?JBJCLJCLBJ{ CJS+ DJ B_EJ!i FJ#wGJ$[pHJ%K8] LJ&hfgMJ'[pNJ(~\OJ)JyLPJ*J֕QJ-w RJ.vh. TJ0KmUJ1LgVJ2FrwJ3OPJ5CLYJ7} ZJ8AҩJ:OPJvI ^J?^oJhOPJjCLaJmR!EJnOPJpCLdJrF?JtOPfJv^JwCLhJyC>iJzSFJ|OPkJ}V} lJ~\QmJ[GnJDoJghpJ^ qJYL rJZk sJKtJKhuJEJOPJCLxJE#yJKzJIJOPJCL}JG~JLJK[#JEJOP~JCLJAJW JEJC)J@lJCL JDJCLJCL Jؽ+JCLJOPJGr/JCLJOPJHJ\4 JOPJCLJCLJR JY\JQJXc3JO-J`Jg4Jg!JO "Jz@#Jm3$JK%JN&JKř'JJz(JAJCL*JH*JCL-J1r J4CLJ5CL0J7|= 2J9J#c3J:K4J;FJ]J?CL8JAEGJDCL:JFEJICLJ^T?J_HJ@J`F}AJaWTJbOPDJcAkEJdG\zFJeEGJfPljJiiiJjmJkdJlrh Jo`Jp2 Jqk Jrk JtB JuBE!JxCL JyCLJzCLJ|bq JCLJt>u J}I JBJsU: JgJwQ? JCLJCLJCLJCLJCLJFxJHxJ{ JnJ]{JwS Jzr JkxB JsiJHJTU3JJJG9JBn JRJHezJHbJzcz JPty JgU J`c3JUJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJM#sJHr5JIVJHJ%J=qJ(J=q}eJqۥ}fJu MJ@s NJBC/OJCLePJDF?QJGWRJHNSJJn`* TJKGWVJLkH XJMD?MYJOGr[JP<\JQY9^JUd"A_JV{UU `JW@!aJY{zbJZ@34cJ[vJ]CLJ^CLJCLgJn JCLJCLJCLJCLmJFsInJ}goJb׷ JCLJCLJCLJCLJCLJCLJCLwJAxJSyJUJOP{Jl |J]}Jp~J]JBJGbJc ~JOPJY |JCLJFJJe JG'JL]uJCLtJCLJlZ Jp~ Jku 5JIO6JIJCLJCL:JO \;JO3JHTN?JIH,@JJFoaAJKW/XJLOPDJMAEJNGOFJOE^GJPP|JSis3JTnJUe\JWq JZcJ[~c J\k_ J]k) J^A"J_A!JcCL JdCLJeCLJg` JjCLJlt' JmIEJnB)Jpr JqIU Jrw% JuCLJvCLJwCLJxCLJzCLJ}FJ~HJ{ Jn _J]{Jw Jy] Jk JofJHOJWJJJHJBc JQJHYJHJz7 JOz JjD J`JUJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLJHqLJIU JHJ J=qJJ=q}eJq]F}fJv_ MJ&tE NJ(C=SOJ)KPPJ*FGQJ-Wj0RJ.NSJ/@TJ0GNVJ2j XJ3DHYJ5G[J6>:\J7W}^J:d_J;{c `J>B&aJ?{.bJ@@fcJAv34JCCLJDCLJECLgJGn NCLNCLNCLNCLmN GLnN }vgoNbD NCLNCLNCLNCLNCLNCLNCLwN@xNNRyNV(NOP{N!k |N#]}N$qv~N&]N)CN+GN. O ~N0OPN3Wj |N5CLN8F,N9J)N;GNfOuNhCLtNiCLNkm$ Nmq Nnk/ 5NpIu6NqINsCLNtCL:NwNg;NzKyNOP~NCLN-AqN0Vd N1EN2C8N3@N5CL N7DN:CLN;CL N<"N=CLN@OPNAG3+NCCLNFOPNGG)NJZ NLOPNNCLNOCLNRRM$ NSwpNTnffNUc&fNXONZcLN[h0N\g\!N]U"N^BL#N_s$N`K$%NaN&NbK'NcJ(NdA-NfCL*NGxNCL-N~Ü NCLNCL0Nzcz 2NI3NKq4NENOP6N]NCL8NDVNCL:NENCLNTj?NH@NF]8ANWٰNOPDNAENG>|FNEGNPtXNkfNplNgNqa NcdN~{ Nk Nk/ NA{NAl!NCL NCLNCLNe NCLNsrb NElNB1 Nr# NNv NCLNCLNCLNCLN CLN#FzN$H~N'{Z N)mN,]{N-vv N.y@Y N0k| N3r\N6HN7S#N8J+N9HN;BO\ N>RpN@HAGNAHӀNDz NEV? NHif NI`LNJTNL^NMCLNNCLNOCLNPCLNQCLNUOPNVOPNXCLNYCLNLNHnNIJ(NHNJ=qNJ=q}eNiDU }fNkw} MNsz NNC>ONJPNFQNW%RNN3SNAOTNFVNi+ XNDFYNGrx[N0\N_^NdҶ_N{ `NCaN|bN@\cNwNCLNCLNCLgNnL NCLNCLNCLNCLmNH nN~ oNaI NCLNCLNCLNCLNCLNCLNCLwNA{xN NfyN QǮN OP{Njwx |N]}Nn~N]NCNGNFv ~NOPN!X |N#CLNNFbNPI0NQGNRFuNTCLtNUCLNXm NYpx NZk 5N\IP6N]I1N_CLN`CL:NcM;NfGR1p N?c N@XvfNA]9NDO#NFZ\NG]NH]&f!NId34"NJH#NK@ $NLK&X%NMNt#&NNKA'NOJ{a(Nx@NzCL*N|GJNCL-N~OI NCLNCL0NyN 2NIG3NKB4NENOP6N]NCL8ND_NCL:NEONCLNTy?NH @NFOANX[NOPDNAEENG%FNE}GNPNl4Nq,NhfNq= Na_N} Nk Nk NA2NA!NCL NCLNCLN`' NCLNr N~l^ NA:Nq NP%Nv( NCLNCLNCLNCLNCLN FbN HvN{= NmN]{Nu} NxP Nk| Nr#3NGMN SN!JN"H8N$Bk N'QHN(H'7N)HӀN-y N.M N1g@ N2a N3RlN4^N5CLN7CLN8CLN9CLN:CLN=OPN?OPNACLNBCLNmLWNNnHkNoIBNqHNtJ=qNuJ=q}eNFO}fNXxX MNs NNC6ONL*PNEQNVRNNSNph TNF+VNh2 XNCEYNGD[N\NQ^Nf8_N{r `NDaN{zbNcNwW NCLNCLNCLgNn4 NCLNCLNCLNCLmNH`nN}oN`w1 NCLNCLNCLNCLNCLNCLNCLwNE>xNLyNS >NOP{Niwx |N^L}Np;~N]NDNG|:N~ ~NOPNX |N CLN5FN6IqN8GN;KuN=CLtN>CLN@oA NBpF NCl 5NEI6NFINHCLNICL:NLK;NOOI>N TY?N GP@N FAAN WoN OPDN AgEN GSFN E۵GN PN iN lgN dYN oR N `ݴN }  N k N l5h N @N @!N CL N CLN CLN b N CLN r]\ N BEN A/N qHF N "Ja| N #vt N &CLN 'CLN (CLN )CLN *CLN UFN WHN Z{LS N \m/N _]{N `uD N axe N bk| N epfN iGynN jVN kKjN lH^=N nBh N qPN rHvN tHN wy N xT[\ N {b N |_c3N }PfN ~^N CLN CLN CLN CLN CLN OPN OPN CLN CLN LN HfjN I7N HoN J8RN J8R}eN "^n'}fN@y MN r NN C14ON LPN E|QN VRN OkSN o TN EVN g{ XN CEYN F+[N 經\N `4^N ekP_N { `N BJaN } >bN A8RcN xzN CLN CLN CLgN nAN H:BN BN CLN CLEN @;HN C^`IN nP N ixB N ixB N DN DN BɀN ixB N ixB NC.NEN{WYN@ NPNI~NLNr NKN"EVN#Q N$@N&LN'M N*o^ N-M7N.DN0CLN3E&N4qN5OPN7CLN8CLN9CLN:CLN;CLNCLNAXNBNgNCavgNDkHNEAuNFxNHCLNICLNJCLNKCLNtCLNvCLNwCLNx]NyCLNzCLN{CLN}NsN~CLNCNCLNCLNz NCLNCLNCLNOP$NJ|J%NKH&NK _NCL*NI,NVNOP.NL(NCLNCLNOPNCL3Nn/4NA6Nff7NW8NL339Nt:Npg;NxfgNT U?NGd@NF3vANWaNOPDNAENF>FNEӍGNPTNefNiLNa33Nox N_ N| Nl3 NlR N@RN@!NCL NCLNCLNaY NCLNrN NH$NB}Nq NI Nvv NCLN CLN CLN CLN CLNF۠NHN<{ N>l NA]{NBt NDx NEk| NHpINKG=zNLVNMKNNHjNQB NTPwNUH NVH9NYy@ NZP N]hD N^`3N`R`Na^NbCLNcCLNdCLNeCLNgCLNjOPNkOPNmCLNnCLNrK.NsH`NtI(NuHxNJ8RNJ8R}eN]E}fN {ds MNr9 NNC*ONL:yPNEYQNVRNO*SNo,| TNE>VNfR XNCEYNFJ[Nɶ\NT^Nf%_N{ `NAaN{RbNA >cNxNCLNCLNCLgNmל NCLNCLNCLN CLmN G[nN}|oN^j NCLNCLNCLNCLNCLNCLNCLwNFxNM(yNSN OP{N#f |N%]E}N&oև~N)]N,CN-G6NN0~@ ~N2OPN5R5 |N7CLN;FTNNTj?NG@NF){ANXNOPDNAENFqFNE}GNPoLNc3Ngc3N_INo{ N`|N| Nl& Nl~k N@QN@;!NCL NCLNCLN_/ NCLNr NCpNB"Nph NJ NvK NCLNCLNCLNCLNCLNF'NHwN{w NlGN&]{N'tM N(w N)k| N,nc3N0GN1WPiN2N_N3HtN5B N8QmN9HN;HN>y# N?O NBi@ NC`yNDT3NE^NGCLNHCLNICLNJCLNKCLNNOPNPOPNRCLNSCLNVKNWH[NXI gNZHo{N]J=qN^J=q}eN]!}fNn} y MNq NNC%ONK9PNEQNVRNO14SNoK TNDdVNe XNCDYNF[N\N]^Ne_N{ `NASaN|bNAffcNw8RNCLNCLNCLgNm NCLNCLNCLNCLmNGnN}oN]׷ NCLNCLNCLNCLNCLNCLNCLwNCBxNM8RyNSGNOP{Nf |N _̄}N o~N ]NCQNGZYN~ ~NOPNR |NCLNF- N HؒN"FON%IىuN'CLtNPCLNRrF NTp NUk- 5NWJM6NXINZCLN[CL:N]EZ;N^LND+NOP~NCLNALNUDi NC{3NBN<NCL NC:NCLNCL N g#N!CLN$OPN%FhRN'CLN*OPN+G> N.Vi N0OPN2CLN3CLN6Q N7WN8ON9TN^ N?dhN@b^!NAVfg"NBB3#NCu&g$NDK#%NEN<&NGK'NHJ5e(NI@fNKCL*NMFNPCL-NQ~z N|CLN}CL0Nx+ 2NH3NJ4NE*NOP6N]NCL8NC>NCL:NDXNCLNENzN@ NO/NI9NLNr NK?NB NPbN@NM NM No^ NMNB4NCLNENrNOPNCLNCLNCLNCLNCLNCLNCLN PgN NgNcVgNMHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NDCLNECLNFCLNGMNICLNLCyNNCLNOCLNQxe NSCLNTCLNUCLNXOP$NYJ_4%NZK&N]QۚN`CL*NbI ,NcUNdOP.NeL5NgCLNhCLNkOPNmCL3Npn4NqA6Ntg37Nu]8NvW9Nytk:N{p;N|xNT=s?NG@NF#ANXNOPDNArENFλFNE<GNP6NiNmNeyNn. NcZN|H NlD Nl N@AN@!NCL NCLNCLNc7 NCLNq N}R NA:NpA NлײNvW NCLNCLNCLNCLNCLNFNH`N{ N lBN]{Nt!N Nw Nk NrNFWNRlN^5NINBff N!Q|N#G8N$HЛN'y]w N(T= N+gff N,_N-TfN/^N0CLN1CLN2CLN3CLN4CLN8OPN9OPN;CLN\Rj-W"^Rj0df$_Rj1{U `Rj3AaRj5zHbRj6BcRj7w >Rj9CLRj:CLRj;CLgRjfmm RjiCLRjjCLRjkCLRjlCLmRjoFinRjr}oRjs] RjvCLRjwCLRjxCLRjyCLRjzCLRj{CLRj|CLwRjG4xRjNRyRjVW RjOP{Rje"# |Rj_ }RjqZ~Rj]RjC RjGXRj~@ ~RjOPRjU+ |RjCLRjFRjH+RjFȯRjOІuRjCLtRjCLRjr Rjpfg Rjkn 5RjJ8 6RjIoaRjCLRjCL:RjD;RjJnORjJOZPRjJnQRj~ RRj{ TRjIURjJVRjFRjOPRjCLYRj~s ZRj@C RjOPRjCL]Rj,s ^Rj._.Rj/OPRj1CLaRj4Q!fRj5OPRj7CLdRj9EV[Rj;OPfRj=^Rj>CLhRj@AiRjAVߑRjCOPkRjDT lRjEPmRjFSnRjGDoRjJf>pRjL` qRjMWff rRjN[q sRjOK`tRjPKhuRjQERjSOPRjUCLxRjWC/yRjXMs3zRjYH9QRj[OPRj]CL}Rj_GJY~RjaIDRjbHdRjcD,RjdOP~RjfCLRjAfRjU RjB|RjARj|RjCL RjC:RjCLRjCL RjRjCLRjOPRjFk8RjCLRjOPRjHRjU RjOPRjCLRjCLRjP Rjy3RjqfRjvRjNRj_0RjaRj`c!Rja33"RjD#RjuL$RjK"%RjN(\&RjK'RjJR{(Rj@WRjCL*RjFLRjCL-Rj~ RjCLRjCL0RjxWc 2RjH3RjJO4RjE%RjOP6Rj]RjCL8RjC>Rj CL:Rj DRjCLRj&T?Rj'G@Rj(F ARj)WRj*OPDRj+AERj,FzFRj-EGRj.PNRj1jFfRj2n\Rj3eRj5n Rj8cqRj9{̪ Rj:la7 Rj;l8 Rj<' Rj= !RjACL RjBCLRjCCLRjE^ RjHCLRjJqHF RjK|5! RjLCRjNo RjOLG RjPu RjSCLRjTCLRjUCLRjVCLRjXCLRj[FRjHRj{= RjlRj]{RjsU: Rjw% Rjk RjmLRjF@RjW^RjgRjJRjB) RjQRjGnRjHRjy@Y RjMm Rjg Rj_RjTRj^RjCLRjCLRjCLRjCLRjCLRjOPRjOPRjCLRjCLRjK9rRjHTGRjI RjH_)RjJ8RRjJ8R}eRjO]'}fRj~ MRjr NRjC?ORjLjPRjDRQRj VhRRj OMSRj n TRjDocVRjdc XRjCEYRjFd[Rj\Rjal^Rjd_Rj{ `Rj@aRj}bRjAHcRjvRj!CLRj"CLRj#CLgRjNmq1 RjQCLRjRCLRjSCLRjTCLmRjWFnRjZ~0oRj[] Rj^CLRj_CLRj`CLRjaCLRjbCLRjcCLRjdCLwRjg@qxRjiNyRjjUBRjkOP{Rjnd |Rjp^}Rjqp~Rjs]RjwBLRjxGZRj{~ ~Rj}OPRjUv |RjCLRjF*QRjHRjFRjKjquRjCLtRjCLRjr Rjpr Rjkt 5RjI\6RjI<RjCLRjCL:RjDB;RjHBɀyRj@JzRjAH*RjCOPRjECL}RjGGC~RjII`RjJHRjKD?RjLOP~RjNCLRjxA RjzT Rj{ARj|@њRj}{RjCL RjCuRjCLRjCL RjRjCLRjOPRjFORjCLRjOPRjHmRjT RjOPRjCLRjCLRjPX Rj`9RjV3Rj]|RjNRj[J>RjaqRj`L!RjUf"RjC3#Rjr$RjK%o%RjN6 &RjJ'RjJ^K(Rj^ RjCL*RjFRjCL-Rj| RjCLRjCL0Rjwna 2RjH3RjJi4RjE4RjOP6Rj]RjCL8RjC:RjCL:RjCRjCLRj T{Z?RjG@RjF(ARjXRjOPDRjA3ERjF FRjEGRjP7RjmRjqRjhRjmtQ RjbRj{b= Rj lo Rj!ll Rj#~ Rj$)b !Rj'CL Rj(CLRj)CLRj+bE Rj.CLRj0qt Rj2H$Rj3C4Rj4o,| Rj5k*Rj6u Rj9CLRj:CLRj;CLRj=CLRj>CLRjAFRjBH& Rjm{Z Rjom/Rjr]{Rjts T Rjuwl RjvkxB RjyrRj|FVRj}VxRj~lRjLCRjBu RjQ9RjGRjHRjy#; RjUi Rjjff Rj` RjTRj^RjCLRjCLRjCLRjCLRjCLRjOPRjOPRjCLRjCLRjK %RjHMRjIDRjHPRjJ=qRjJ=q}eRj5Q}fRj~ # MRjr NRjCORjKǪPRjD@QRjV{RRjOSRj{Z TRjD\RjV.9^Rjd) _Rj{ `Rj@TaRj|{bRjAcRjwW Rj CLRj CLRj4CLgRj7m Rj9CLRj:CLRj;CLRjCL8Rj @C4Rj CCL:Rj EC:Rj HCLRj ZTvP?Rj [Gfy@Rj \EARj ]XRj ^OPDRj _@ ERj `FUFRj aEGRj bPDRj fm<Rj gr&fRj his3Rj imw Rj laeRj m{N Rj ol~k Rj pl Rj q~] Rj r~s !Rj uCL Rj vCLRj wCLRj yb Rj }CLRj pX Rj A:%Rj Ci(Rj o Rj t8Rj u6 Rj CLRj CLRj CLRj CLRj CLRj FRj H[Rj { Rj mC"Rj ]Rj rE Rj v( Rj ki Rj r9Rj FRj S,Rj tQRj MRj B: Rj RsiRj GRj HaRj y Rj Ri Rj gٚ Rj `ffRj T`Rj ^Rj CLRj CLRj CLRj CLRj CLRj OPRj OPRj CLRj CLRj JdRj HC Rj HRj HRwRj #J=qRj &J=q}eRj w-}fRj~[} MRj =q NRj ?CORj @KzPRj AD{QRj EV{RRj FOxSRj G@TRj HDvVRj IdѦ XRj JC:QYRj LFl[Rj N \Rj O\\r^Rj Rc_Rj S| `Rj UB@aRj V{=qbRj WAcRj w4Rj CLRj CLRj CLgRj m Rj CLRj CLRj CLRj CLmRj GgnRj 9oRj [ Rj CLRj CLRj CLRj CLRj CLRj CLRj CLwRj B>xRj OQyRj UpRj OP{Rj d |Rj ^C}Rj qe~Rj ]Rj C"#Rj GARj ~s ~Rj OPRj V |Rj CLRj F(Rj GRj FRj LuRj CLtRj CLRj sb Rj p;e Rj kt 5Rj I6Rj IRj CLRj CL:Rj Eѕ;Rj H]Rj R( Rj OPRj CLRj CLRj P Rj ]fRj UPRj tRj NRj Z\)Rj `Rj _{!Rj Pff"Rj @l#Rj v4$Rj K#%Rj N!&Rj JҪ'Rj JQ(Rjr RjCL*RjERjCL-Rj| RjCLRj CL0Rj"x# 2Rj$HM3Rj%IK4Rj&ERj'OP6Rj)]Rj*CL8Rj,DRj/CL:Rj1CRj4CLLARj?GDBRj@ARjBCLRjDCLERjF{Z HRjHA,IRjKWZ RjuixB RjwixB RjxERjyFRRjzCwRj{j> Rj|ixB Rj}DRj~ERjzJRj@ RjP RjIRjK=Rjr RjK()RjB RjLvRj@RjLRjM Rjg+ RjMRjBWRjCLRjEaRjo8RjOPRjCLRjCLRjCLRjCLRjCLRjCLRjCLRj^3RjYfRjavgRjMHRjkHRjMHRjCLRjCLRjCLRjCLRjCLRjCLRjCLRj]RjCLRjCLRjCLRjMfRjCLRjC`RjCLRjCLRjw RjCLRjCLRjCLRjOP$RjJ%RjKз&RjQMRjCL*RjH+z,RjV`RjOP.RjLRj CLRj CLRjOPRjCL3Rjn\4RjRjIT ?RjJG\z@RjKExARjLX].RjMOPDRjNBMERjOFFRjPEGRjQPRjUnfRjVrs3RjWifRjXlS Rj\`WRj]z0 Rj^l Rj_m Rj`} Rja~24 !RjdCL RjeCLRjgCLRji] RjlCLRjno Rjoz$ RjpBrdRjqn RjsHjRjwup RjCLRjCLRjCLRjCLRjCLRjFRjH}Rj{ RjmKRj]Rjr RjvK Rjk[ Rjo3RjE RjUʫRj}RjOBRjB!H RjRRjGRjHRjx RjO]6 Rjq7w Rj`ffRjURj^RjCLRjCLRjCLRjCLRjCLRjOPRjOPRjCLRjCLRj JRj HB$RjHRjH<RjJ8RRjJ8R}eRjsA>1}fRj ,* MRj,r NRj/CORj0L+PRj1D@QRj4V~RRj5OSRj6A^vTRj7CVRj8cBR XRj:CVYRjXm^Rjib_Rjj| `RjlDUEaRjn~ bRjoAO\cRjpwRjrCLRjsCLRjtCLgRjwm RjzCLRj{CLRj|CLRj}CLmRjHNnRj}#4oRjZfh RjCLRjCLRjCLRjCLRjCLRjCLRjCLwRjE>xRjKyRjTzRjOP{Rjb33 |Rj_{}RjqΩ~Rj]RjCRjFRj~ ~RjOPRjQ5 |RjCLRjFRjGRjF^RjPQuRjCLtRjCLRjt\ Rjpr Rjk 5RjIM6RjIsRjCLRjCL:RjF;RjS DRjBTERj]RFRj}GGRj\HRjIf LRjB&fMRjzW NRjPuORjJAPRjJQRj@&RRj} TRjGURj0IVRj1F"Rj2OPRj4CLYRj6 ZRj7 Rj9OPRj;CL]Rj=q ^Rj?aRj@OPRjBCLaRjEPPIRjFOPRjHCLdRjJD4KRjLOPfRjN^RjOCLhRjQ@iRjRSRjokRjj!Rja "RjB#Rjy2$RjK$%RjN^&RjJL'RjJ?e(Rj O RjCL*RjEWRj CL-Rj ~24 RjCLRjCL0Rjx# 2RjH3RjI4RjH: RjOP6Rj]RjCL8RjGxRjCL:Rj!Ci(Rj#CLRj9T?Rj:G>|@Rj;EARjCClERj?F}FRj@E'GRjAONRjDglRjElRjGd RjHlz RjK`RjLz# RjMl8 RjNmm RjO}I RjQ} !RjTCL RjUCLRjVCLRjXb Rj[CLRj]p Rj^IRjA$ZRjn4a RjG RjuD RjCLRjCLRjCLRjCLRjCLRjF*RjH`Rj{Z RjmRRj]{Rjq Rju6 RjkLl RjmfRjE[RjXHYRjARjPfRjB!H RjQRjG:RjS8Rjx RjV: RjkDD Rj_RjUfRj^RjCLRjCLRjCLRjCLRjCLRjOPRjOPRjCLRjCLRjJ~RjH8,RjHRjH2RjJ8RRjJ8R}eRjZq}fRj@=p MRjq NRjCmORjK(PRjD7QRjVRRjO SRj!p3 TRj"CuVRj#cBR XRj$CWYRj&E[Rj'\RjP[B"^RjTc_RjU| `RjWCaRjX~bRjYBLcRjZyRj\CLRj]CLRj_CLgRjbm;; RjdCLRjeCLRjfCLRjgCLmRjjH2nRjn}oRjoY RjqCLRjrCLRjsCLRjtCLRjuCLRjvCLRjxCLwRj{ExRj|N=qyRj}W Rj~OP{Rjc |Rj_H}Rjsd~Rj]RjCgRjFORj}h ~RjOPRjPO |RjCLRjF jRjGRjFvRjFuRjCLtRjCLRjuA Rjo Rjk$ 5RjIU6RjHRjCLRjCL:RjG̶;RjRV33mRj?X\nRj@E oRjCdTupRjE]p qRjFUff rRjGW sRjIKQtRjJKJuRjKDRjLOPRjNCLxRjPBrdyRjQKOzRjRGRj|OPRj~CL}RjG~RjH^RjGRjD RjOP~RjCLRjARjT9 RjCRjExRjC8RjCL RjCpiRjCLRjCL RjRjCLRjOPRjFVRjCLRjOPRjI7`RjQ RjOPRjCLRjCLRjP@2 RjZRjO RjmgRjOVRj`Rjc\Rjb!RjU "Rjx&g#Rjz$RjK$%RjN^&RjJb'RjJR(RjU RjCL*RjERjCL-Rj@JeRjCLRjCL0Rjvܹ 2RjG3RjIj4RjE:RjOP6Rj]RjCL8RjDSRjCL:Rj C=Rj CLRj!T>*?Rj"G+g@Rj#EjARj$XRj%OPDRj&CERj'FrFRj(EGRj)PpRj,gRj-ls3Rj.e3Rj/l= Rj2a}Rj3zXI Rj4ll Rj5m Rj7|ƚ Rj8}: !Rj;CL RjF{VRAJԝuVRCCLtVRDCLVRGuS VRHo VRIkt 5VRKIpJ6VRLHaVRNCLVROCL:VRQGB;VRROP/CIVR@CLVRACLVRBw| VRECLVRFCLVRGCLVRJOP$VRKI%VRLK>&VRNH`VRQCL*VRTG%,VRUVVRVOP.VRWMVRYCLVRZCLVROPVRCL3VRm4VRA6VRy7VRk@8VRis39VRtF:VRq;VRxgVRS?VRG#@VRE@AVRX|VROPDVRCClEVRFiFVREGVRO1VRj3VRmVRefVRlI VRdHVRz0 VRl VRmm VR|C VR|= !VRCL VRCLVRCLVR^ VRCLVRp| VR| VRA"VRo VRRVRu ~ VRCLVRCLVRCLVRCLVRCLVRF4VRH VR{H VRmOVR]{VRp- VRuD VRk VRnyVR EQVR VmVR CVR R'VRB# VRR!VRGTVRHVRx VRO VRpn VR`VRVVR^VR CLVR!CLVR"CLVR#CLVRLCLVRPOPVRQOPVRSCLVRTCLVRWJ-8VRYH,bVRZH1VR[HXVR^J8RVRaJ8R}eVRaS}fVRG@ MVRyq% NVR{BOVR|LJPVR}DQVRVoRVROWSVRoXB TVRD ]VVRdm XVRC YYVREr[VRe\VRY ^VReb_VR|r `VRAaVR}8RbVR@ cVRvVRCLVRCLVRCLgVRm- VRCLVRCLVRCLVRCLmVRGP-nVR}4oVRZN VRCLVRCLVRCLVRCLVRCLVRCLVRCLwVRIBxVRL{yVRSffVROP{VRdUV |VR_q}VRr!~VR]VRC^VRF|VRB ~VROPVRO |VRCLVR EVR!G^VR"F<VR%Q uVR'CLtVR(CLVR+uiy VR,o VR-k$ 5VR/IHW6VR0HVR2CLVR3CL:VR5H$;VR6Kvh. CVR?PzcDVR@BLQEVRBkfgFVRCGW GVRDuHVREH LVRF@:MVRGwuNVRIO34OVRJJ)PVRKJ~]QVRL@ӷRVRNU TVRxGrUVRyHVVRzFQ"VR|OPVR}CLYVRA+ZVR~ VROPVRCL]VRq ^VR^LVROPVRCLaVRNkVROPVRCLdVRC.VROPfVR^VRCLhVR@XiVRNAjVROPkVRRE9 lVR\pmVRa33nVREoVRdpVR]z qVRX rVRX = sVRKhtVRKRuVRD}VROPVRCLxVRBcyVRQ5=zVRH#VROPVRCL}VRGJY~VRH)VRGnVRD3VROP~VRCLVRAW3VRT> VRC33VRDVRB&fVRCL VRCaVRCLVRCL VRVRCLVROPVRF1VRCLVROPVRJVRQz VROPVR CLVR CLVRP$x VRnVR``VR\ffVRO*VR_VReVRAcR!VRBTf"VRC@#VRDos4$VREK%VRFN~&VRGJ7'VRHJD(VRK: VRNCL*VRPEsZVRSCL-VRU| VRXCLVRYCL0VR[u 2VR]G3VR^I){4VR_EPVR`OP6VRb]VRcCL8VReDVRhCL:VRjCVRmCLVRk. VRixB VRE9[VREVR{DVREVVRP eVRIVRLVRr VRK/qVRB VRQVR@VRM VRM VRg+ VRM^VR@LVRCLVREVRp!VROPVRCLVRCLVRCLVRCLVRCLVRCLVR CLVR Y4VR NgVRdVRMHVRkHVRMHVRCLVRCLVRCLVRCLVRCLVRCLVRCLVR]VRCLVRCLVRCLVR MVR"CLVR$CVR&CLVR'CLVR)vh. VR,CLVR-CLVR.CLVR0OP$VR1I>%VR2K&VR5R?VR8CL*VR;G0,VRMLVR@CLVRACLVRCOPVRmCL3VRpm4VRrA6VRt[7VRuSS48VRvMٙ9VRyt4 :VR{qf;VR|wVRSj?VRG @VREAVRX{[VROPDVRBɀEVRF\OFVRE'GVROVRiVRmgVReVRl. VRdVRzXI VRl9 VRm- VR{ VR| !VRCL VRCLVRCLVRcM VRCLVRpY VRw| VRA:%VRn$ VRѣVRtY VRCLVRCLVRCLVRCLVRCLVRFXVRHVR{ VRmVR]{VRo VRtz VRk VRrɚVRE$mVRSVRD8VRTAVRB VRQNVRGVRHVRx VRU9 VRiٚ VR`c3VRVVR^VR CLVR CLVR4CLVR5CLVR6CLVR9OPVR:OPVRCLVRAJVRBH'VRCHfVRDHGVRGJ8RVRKJ8R}eVRK!}fVR+@ MVRbqN NVRdBOVReLtPVRfD eQVRiV\RVRkOqbSVRln TVRmCVVRnc XVRoC YYVREI[VR\VR]^VRd_VR|r `VRAPgaVR~RbVRAncVRvqVRCLVRCLVRCLgVRmLo VRCLVRCLVRCLVRCLmVRGnVR@oVRZ

xVRL)yVRSGVROP{VRdDD |VR_u}VRsH:~VR]VRC!jVRFVR@(~VR OPVR V' |VR CLVR E}GVR G!VR F?VR I~uVR CLtVR CLVR u~ VR pr VR k+ 5VR IGn6VR HVR CLVR CL:VR J;VR H%VR K}&VR MܪVR CL*VR GN^,VR VVR OP.VR N(VR CLVR CLVR OPVR CL3VR my4VR A6VR o7VR VS38VR Wf9VR tF:VR x&f;VR ~VR Tb)?VR F@VR EaAVR YVR OPDVR CEVR FMFVR EGVR OVR jVR pVR gVR k* VR cVR zF VR m VR m- VR {= VR |& !VR CL VR CLVR CLVR ^; VR CLVR pY VR EVR A+VR n VR I VR t4 VR #CLVR $CLVR %CLVR &CLVR 'CLVR +FVR ,H VR /{/9 VR 1lpVR 4]{VR 5p3 VR 6t VR 8j VR ;o3VR >DVR ?VPVR @D&xVR AU|VR CBQ VR FPfVR HGLVR IHzxVR Lxe VR ML VR PoD VR Q`|VR RUVR T^VR UCLVR VCLVR WCLVR CLVR CLVR OPVR OPVR CLVR CLVR IڊVR H VR HVR GVR J8RVR J8R}eVR ]s}fVR @r MVR r NVR BOVR LPVR CٞQVR VRVR O[SVR nT TVR CVVR d4 XVR B_YVR EF[VR \VR Xq^VR b_VR |* `VR @aVR {ǯbVR cVR u\*VR CLVR CLVR CLgVR m VR CLVR CLVR CLVR CLmVR FnVR }@oVR Z{c VR CLVR CLVR CLVR CLVR CLVR CLVR CLwVR EǮxVR N=qyVR UqVR OP{VR dfg |VR _*}VR q~VR ]VR BfVR HFqvVR K~@ ~VR MOPVR PQ~ |VR RCLVR VELVR WG_VR XFrwVR [H\uVR ]CLtVR ^CLVR av 7 VR bp VR cku 5VR eIs6VR fHVVR hCLVR iCL:VR kIL\;VR lOaCLVR?CLVRBO VRCs<VRDavgVREXVRHNVRJ[VRKaVRt^Y!VRuO"VRvv#VRwf$VRxK%VRyN&VRzK''VR{I(VR|@3VR~CL*VREVRCL-VR~ VRCLVRCL0VRvW 2VRGB3VRI(4VREJVROP6VR]VRCL8VRDVRCL:VRBVRCLVRT?VRF@VREaAVRXvTVROPDVRCHEVRFBFVREGVRP|GVRiVRnVRd)VRk VRaiTVRzv VRm VRm<8 VRz[ VR{ !VRCL VRCLVRCLVRc>k VRCLVRpPL VRDYVR@VRoXB VRVRt VR CLVR CLVR CLVR CLVRCLVRFVRH"iVR{= VRl,VR]{VRp VRu65 VRj" VR"p@VR%DgVR&SUVR'D*TVR(VܫVR*B5 VR-QVR.GVR0HpVVR3xWc VR4V- VR7kw VR8`@VR9VVR:^VRCLVR?CLVRhCLVRkOPVRmOPVRoCLVRpCLVRsIVRtH VRvH^VRwGVRzJ8RVR}J8R}eVRN)J}fVR a@E MVRr NVRBOVRKDPVRCQVRURVROQKSVRn TVRD ]VVRdQK XVRBYVREh[VRͷ\VR]p[^VRbMT_VR|8 `VR@1aVR|bVR@34cVRv34VRCLVRCLVRCLgVRlƲ VRCLVRCLVRCLVRCLmVRFnVR} oVRZJ VRCLVRCLVRCLVRCLVRCLVRCLVRCLwVRC)xVRLyVRSHVROP{VRdDD |VR`}VRr"S~VR]VR0BVR1FhVR4~ ~VR6OPVR9PR |VR;CLVR>EiVR@FVRAFDVRDMuVRFCLtVRGCLVRJv_; VRKp~ VRLk 5VRNIo6VROHϣVRQCLVRRCL:VRTH9Q;VRUPSKVRGVRD4KVRk_ VRixB VREWVREVRzVREVVROVRIRVRLVRr VRK1CVRB VRQVR@\(VRM VRM VRg+ VRL&VRUfVRCLVREVRoVROPVRCLVRCLVRCLVRCLVRCLVR$CLVR%CLVR(^VR)^gVR*cVgVR,MHVR-kHVR.jVR0CLVR1CLVR2CLVR3CLVR4CLVR5CLVR6CLVR8]VR9CLVR:CLVR;CLVRCLVRACmVRCCLVRDCLVRFuZ VRHCLVRICLVRJCLVRMOP$VRNI%VROKLo&VRRJaVRUCL*VRWG,VRXU_VRYOP.VRZN~VR\CLVR]CLVROPVRCL3VRmvV4VRA6VRl97VRU8VRU39VRtoq:VR};VRyS3VRTK?VRFЍ@VRE$AVRXVROPDVRCYEVRF-FVREv9GVROVRepVRj3VRaFfVRk6 VR_PVRze VRm- VRm<8 VRzT VR{ !VRCL VRCLVRCLVR_d VRCLVRoXB VR7 VR@RVRmJ VRCJ VRtz VRCLVRCLVRCLVRCLVRCLVRFRVRHVR{ VRlvVR]VRo VRt VRjׄ VR r VR DvVR UVRD6VRX<"VRBc VRPDVRGVRHiVRx:D VRON VRi" VR`)VR!TɚVR"^VR#CLVR$CLVR%CLVR&CLVRPCLVRSOPVRTOPVRVCLVRWCLVR[IVR\HVR]HVR^GVRaJ8RVRbJ8R}eVR[0s}fVRJA MVRzqm NVR|BOVR}LkPVR~CaQVRU`RVRO_SVR@}BTVRBZVVRa XVRBYVRE[VRI\VRU^VRc_VR|8 `VRA.aVR}8RbVRqcVRy\VRCLVRCLVRCLgVRl0 VRCLVRCLVRCLVRCLmVRFnVR~s4oVRY VRCLVRCLVRCLVRCLVRCLVRCLVRCLwVRD8RxVRL{yVRRpVROP{VR` |VRa L}VRurj~VR]VRBÂVRFuVRA1n~VROPVRQJ |VRCLVR!EVR#FYVR$F VR'OuVR)CLtVR*CLVR-u VR.o VR/jm 5VR1I6VR2H\VR4CLVR5CL:VR7J3;VR8NCLBVR@u CVRAO(DVRBBEVRDDFVREEGVRFuHVRGHx LVRHDMVRIA >NVRJSٚOVRKJ?pPVRLIjQVRMARVRN@r\TVROFUVRPGVVRQEΰVRSOPVR|CLYVR~@C ZVR},l VROPVRCL]VRo ^VREVROPVRCLaVRC=VROPVRCLdVRBVROPfVR^VRCLhVR iVRS~VROPkVRPǡ lVRg33mVRbnVREs3oVRdPpVR^\) qVRU rVRY sVRKtVRKuVRD,QVROPVRCLxVRAҩyVRQzNzVRI>VROPVRCL}VRG~VRGf VRF*VRDVROP~VRCLVR@rVRSG VRHnfVRIgVRFVRCL VRBEVRCLVRCL VRVRCLVROPVREv@VRCLVROPVRJVRO1 VROPVR CLVR CLVR Oө VR@4VRoVRVIVRMtbVRERVRJ!HVRL!VR\4"VR@ #VRmY$VRDK"%VREM&VRFK'VRGJ (VRH@VRJCL*VRLEdVROCL-VRQ~s VRTCLVRUCL0VRWup 2VRYG3VRZHx4VR[E5VR\OP6VR^]VR_CL8VRaDVRdCL:VRfBɀVRiCLZ:T\f?Z:Fd@Z:EpAZ:YZ:OPDZ:BnEZ:FSFZ:Em*GZ:O*Z:_6fZ:e6gZ:[Z:k Z:_Z: x Z:"m- Z:#m<8 Z:$y Z:%{ !Z:(CL Z:)CLZ:*CLZ:-_ Z:0CLZ:2m Z:3wB Z:4CZ:5k Z:6vFZ:8tU Z:;CLZ:dCLZ:eCLZ:fCLZ:gCLZ:jFZ:kGVZ:o{ Z:qlJ"Z:t]Z:uo Z:vs Z:wjJ Z:zqLZ:~DhZ:UBZ:D\Z:YMZ:B Z:PZ:GZ:H`iZ:x# Z:R3 Z:j Z:`fZ:T`Z:^Z:CLZ:CLZ:CLZ:CLZ:CLZ:OPZ:OPZ:CLZ:CLZ:IpJZ:GZ:HZ:G=Z:J8RZ:J8R}eZ:6T}fVR-@ MZ:qN NZ:BsOZ:LPZ:CHQZ:UdRZ:OfSZ:A:%TZ:BVZ:`1 XZ:AYZ:E [Z:\Z:^i?^Z:g_Z:|G `Z:C aZ:-~bZ:.A >cZ:/zfgZ:1CLZ:2CLZ:3CLgZ:6lW Z:8CLZ::CLZ:;CLZ:@07Z:@M Z:AM Z:Dg+ Z:FKZ:GblZ:ICLZ:LEZ:MoZ:NOPZ:PCLZ:QCLZ:SCLZ:TCLZ:UCLZ:VCLZ:WCLZ:ZX3Z:[PgZ:avgZ:R34Z:QRZ:GHZ:CLZ:CLZ:CLZ:CLZ:CLZ:CLZ:CLZ:]Z:CLZ:CLZ:CLZ:M;Z:CLZ:CZ:CLZ:CLZ:y]w Z:CLZ:CLZ:CLZ:OP$Z:J$%Z:K!&Z:LZZ:CL*Z:Gh,Z:V{Z:OP.Z:N<Z:CLZ:CLZ:OPZ:CL3Z:mT4Z:A6Z:h37Z:^338Z:R339Z:tN:Z:{f;Z:xgZ:S?Z:F@Z:EAZ:X'KZ:OPDZ:BPEZ:EFZ:E\GZ:O*Z:_\Z:eZ:\Z:j Z:`Z: x; Z: mJ Z: m<8 Z: yN Z: z[ !Z:CL Z:CLZ:CLZ:`d Z:CLZ:n}[ Z:x Z:CZ:ll Z:@ Z: t[ Z:#CLZ:LCLZ:MCLZ:NCLZ:PCLZ:SFZ:THZ:W{ Z:YlZ:\]Z:]o Z:_t Z:`j Z:cr Z:fDPZ:gTA Z:hDi|Z:iZwZ:kB Z:oOZ:pGBZ:qHRZ:tx Z:uQ3 Z:xqQ Z:y`LZ:{VfZ:|^Z:}CLZ:~CLZ:CLZ:CLZ:CLZ:OPZ:OPZ:CLZ:CLZ:ILZ:GZ:HZ:GɔZ:J=qZ:J=q}eZ:Y}}fZ:CJ( MZ:q NZ:BROZ:LO'PZ:CKhQZ:UxRZ:OmSZ:q+ TZ:BVZ:a XZ:AYZ:E[Z:e\Z:US3^Z:eU_Z:|G `Z:D:aZ:}HbZ:~LcZ:x>Z:CLZ:CLZ:CLgZ:l\O Z:!CLZ:"CLZ:#CLZ:$CLmZ:'HnZ:+| oZ:,Wr Z:.CLZ:/CLZ:0CLZ:1CLZ:2CLZ:3CLZ:5CLwZ:8FxZ:9M(yZ::TkZ:;OP{Z:>bDD |Z:@_,}Z:Ar~Z:D]Z:GCZ:HF4Z:K} ~Z:MOPZ:xP |Z:{CLZ:~EZ:FJZ:F(Z:L"uZ:CLtZ:CLZ:}o Z:pȵ Z:kO 5Z:I6Z:HЌZ:CLZ:CL:Z:EZ;Z:H'Z:{I(Z: O Z:CL*Z:EWZ:CL-Z:@Z:CLZ:CL0Z:v4 2Z:F3Z:H@4Z:DZ:OP6Z:]Z:CL8Z:DZ:CL:Z:B+Z:CLCLZ:?CLZ:BY#3Z:CPgZ:lavgZ:mRZ:nPffZ:pGHZ:rCLZ:sCLZ:tCLZ:uCLZ:vCLZ:wCLZ:xCLZ:y]Z:zCLZ:|CLZ:}CLZ:~N,Z:CLZ:CZ:CLZ:CLZ:y Z:CLZ:CLZ:CLZ:OP$Z:IV%Z:K&Z:H@Z:CL*Z:GP,Z:U-Z:OP.Z:O'Z:CLZ:CLZ:OPZ:CL3Z:ma4Z:A6Z:E`7Z:F 8Z:z9Z:t4 :Z:zٚ;Z:xZ:T?Z:FC@Z:EAZ:XZ:OPDZ:BEZ:EFZ:ECGZ:OmZ:RZ:XZ:QC3Z:ik Z:d Z:y Z:mYk Z:m<8 Z:x Z:zT !Z:CL Z:CLZ:CLZ:^; Z:CLZ:o Z:DZ:DXZ:n Z:fZ: t>u Z:5CLZ:6CLZ:7CLZ:8CLZ:9CLZ:H;Z:Az Z:CkެZ:F]Z:Gp Z:Hu' Z:Ij Z:MrFfZ:PDZ:QSZ:RD 'Z:S[DZ:UB Z:XOhZ:YGZ:[HFXZ:^w Z:_O Z:bj Z:c`fZ:dVfZ:e^Z:gCLZ:hCLZ:iCLZ:jCLZ:kCLZ:oOPZ:OPZ:CLZ:CLZ:I.Z:G Z:HyvZ:GZ:J=qZ:J=q}eZ:}fZ:E  MZ:q NZ:BsOZ:K_PZ:C"QZ:U^.RZ:OcSZ:o۔ TZ:CZmVZ:b XZ:AYZ:E|4[Z:иW\Z:]_J^Z:d"A_Z:|UU `Z: C)aZ: }bZ: @:cZ: xZ: CLZ: CLZ: CLgZ: lJQ Z: CLZ: CLZ: CLZ: CLmZ: HnZ: ~ oZ: Y Z: CLZ: CLZ: CLZ: CLZ: CLZ: CLZ: CLwZ: #C\xZ: %JyZ: &S >Z: 'OP{Z: *cfg |Z: ,_zH}Z: -sZ~Z: /]Z: 3CZ: 4ExZ: 7c ~Z: aOPZ: dP4 |Z: fCLZ: iEv Z: kFHqZ: lF1Z: oQ.uZ: qCLtZ: rCLZ: u~ = Z: vp Z: wk 5Z: yI>6Z: zH;Z: |CLZ: }CL:Z: D_;Z: K{CLZ: ?CL Z: @|Z: BCLZ: EOPZ: EMZ: CLZ: OPZ: GgZ: Ps Z: OPZ: CLZ: CLZ: N Z: }3Z: kS3Z: R Z: KwZ: IZ: MffZ: L4!Z: Sfg"Z: n#Z: bٚ$Z: K%Z: Mȉ&Z: K'Z: Iz(Z: B1Z: CL*Z: EZ: CL-Z: U Z: CLZ: CL0Z: u} 2Z: Fٞ3Z: H4Z: D/Z: OP6Z: ]Z: CL8Z: C{Z: CL:Z: B\Z: CLKZ: `EZ: bzJZ: d@ Z: gO/Z: iI+KZ: jLZ: mr Z: oK()Z: rB Z: sOZ: t@BZ: vLZ: wM Z: zg+ Z: |KZ: }hZ: CLZ: EZ: o8Z: OPZ: CLZ: CLZ: CLZ: CLZ: CLZ: CLZ: CLZ: ]əZ: NgZ: avgZ: P(Z: MffZ: GHZ: CLZ: CLZ: CLZ: CLZ: CLZ: CLZ: CLZ: ]Z: CLZ: CLZ: CLZ: MXZ: CLZ: CmZ: CLZ: CLZ: { Z: CLZ: CLZ: CLZ: OP$Z: I%Z: K#&Z: RXZ: CL*Z: G,Z: V-Z: OP.Z: O Z: CLZ: CLZ: OPZ: CL3Z: m4Z: A6Z: !vY7Z: "wٙ8Z: #i9Z: &t,:Z: (x ;Z: )uZ: ,S?Z: -Fi@Z: .EvAZ: /X Z: /OPDZ: 1BEZ: 2EIFZ: 2E+ GZ: 3OtZ: 7RZ: 8X4Z: 9Q0Z: ;h@ Z: >dZ: ?y Z: @mv Z: Am<8 Z: Bxt Z: Cz !Z: FCL Z: HCLZ: ICLZ: Kb  Z: NCLZ: PoXB Z: Q@Z: RDSZ: Tnn Z: VZ: t Z: CLZ: CLZ: CLZ: CLZ: CLZ: FZ: H`Z: z Z: knZ: ]Z: q3 Z: u Z: jq7 Z: qS3Z: DZ: O؍Z: D#Z: ]4Z: B Z: PuZ: GZ: H<Z: w Z: R* Z: jff Z: `Z: V3Z: ^Z: CLZ: CLZ: CLZ: CLZ: CLZ: OPZ: OPZ: CLZ: CLZ: IZ: GZ: H{FZ: GeZ: J=qZ: J=q}eZ: VUrD}fZ: uE MZ: q NZ: BOZ: KVPZ: CA?QZ: UVRZ: OXmSZ: o7 TZ: CYVZ: d? XZ: B#YZ: Eo[Z: \Z: H\n9^Z: Lbؾ_Z: M|UU `Z: OB8aZ: P}{bZ: QcZ: RvZ: TCLZ: UCLZ: WCLgZ: Zl"j Z: \CLZ: ]CLZ: ^CLZ: _CLmZ: bGnnZ: e}4oZ: gZ

T33 rZ:?ZaH sZ:@KtZ:AK uZ:BCZ:COPZ:ECLxZ:G@yZ:HPzZ:IJ3Z:KOPZ:uCL}Z:wH~Z:yFZ:zF6fZ:{DZ:|OP~Z:~CLZ:: Z:TP Z:q3Z:AZ:wIZ:CL Z:CpiZ:CLZ:CL Z:,Z:CLZ:OPZ:E_Z:CLZ:OPZ:G]Z:Q Z:OPZ:CLZ:CLZ:N3 Z:}fgZ:kS3Z:npZ:KZ:IZ:NZ:M!Z:K"Z:g4#Z:`$Z:K%Z:Mȉ&Z:Kd6'Z:Iu(Z: Z:CL*Z:EZ:CL-Z:~; Z:CLZ:CL0Z:up 2Z:Fn3Z:H4Z:DZ:OP6Z:]Z:CL8Z:CZ:CL:Z:BNZ:CLy HZ:@@IZ:Cm? Z:EixB Z:FixB Z:HFZ:IGZ:JDVZ:Klo Z:LixB Z:MF[GZ:NEZ:PzJZ:Q@ Z:TOZ:VIZ:XLZ:[r Z:]K$Z:`B Z:aPͫZ:b@HZ:dLZ:eM Z:hg+ Z:jKZ:khZ:mCLZ:pEZ:qo0Z:rOPZ:uCLZ:vCLZ:wCLZ:CLZ:CLZ:CLZ:CLZ:a<Z:YgZ:lgZ:PGZ:NZ:GHZ:CLZ:CLZ:CLZ:CLZ:CLZ:CLZ:CLZ:]Z:CLZ:CLZ:CLZ:N,Z:CLZ:CZ:CLZ:CLZ:x Z:CLZ:CLZ:CLZ:OP$Z:Iع%Z:Jg&Z:N%Z:CL*Z:G,Z:UZ:OP.Z:OK$Z:CLZ:CLZ:OPZ:CL3Z: m`J4Z: A6Z:p37Z:jf8Z:lg9Z:s5:Z:t3;Z:qFfZ:S?Z:FI?@Z:EgRAZ:WHZ:OPDZ:IEZ:ESFZ: EGZ:!O*Z:%T3Z:&Z Z:'RZ:(hM Z:,c>Z:-z4 Z:.m7 Z:/m<8 Z:0x Z:1y] !Z:4CL Z:6CLZ:7CLZ:9^ Z:o Z:?y Z:hDBZ:in Z:kGL Z:lt' Z:oCLZ:pCLZ:qCLZ:rCLZ:sCLZ:wF\Z:xHxZ:{z Z:}k`Z:]Z:p- Z:ua Z:jS Z:oZ:DZ:TZ:CZ:^[ Z:BǮ Z:NQlZ:GZ:H6kZ:w3 Z:M\ Z:jf Z:`@Z:VfZ:^Z:CLZ:CLZ:CLZ:CLZ:CLZ:OPZ:OPZ:CLZ:CLZ:H`Z:GMZ:H~Z:G5Z:J=qZ:J=q}eZ:k[}fZ: E9r MZ:q_] NZ:BKOZ:KMPZ:C'QZ:UG_RZ:O_SZ:of TZ:DVZ:d XZ:AYZ:E}-[Z:0\Z:1]^Z:5bT"_Z:6|c `Z:8A^aZ:9bZ::ARcZ:;ypZ:=CLZ:>CLZ:@CLgZ:ClJQ Z:ECLZ:FCLZ:GCLZ:HCLmZ:KG-nZ:N~)oZ:PZN Z:RCLZ:SCLZ:TCLZ:UCLZ:VCLZ:WCLZ:YCLwZ:\AxZ:]MyZ:^QǮZ:_OP{Z:bd |Z:d_}Z:es95~Z:h]Z:kC Z:EZ:}; ~Z:OPZ:P4 |Z:CLZ:ESZ:FEZ:F Z:HuZ:CLtZ:CLZ:}^ Z:q Z:kV 5Z:I6Z:HZ:CLZ:CL:Z:Iw;Z:QM(Z:~ Z:CL*Z:DZ:CL-Z:@Z:OPZ:CL0Z:v 2Z:F@3Z:H^4Z:DT5Z:OP6Z:]Z:CL8Z:CpZ:CL:Z:BNZ:CLZ:S#?Z:F*c@Z:E\pAZ:X<Z:OPDZ:MɰEZ:EFZ:EPGZ: OK$Z: LlZ: R3Z:KZ:g? Z:b5Z:ze Z:m Z:m- Z:w Z:y@ !Z:CL Z:CLZ:CLZ: aЊ Z:#CLZ:%o Z:&w Z:'CZ:Qn4a Z:SZ:Vs Z:YCLZ:ZCLZ:[CLZ:\CLZ:^CLZ:aFZ:bHWZ:ez Z:gk4Z:j]{Z:knT Z:lq Z:njE^ Z:qsPZ:tDZ:uQ"Z:vCZ:w_xZ:yB Z:}ObZ:~GJZ:H2Z:w Z:Qn Z:pȉ Z:`c3Z:VZ:^ Z:CLZ:CLZ:CLZ:CLZ:CLZ:OPZ:OPZ:OPZ:CLZ:H Z:G}Z:HZ:GZ:J=qZ:J=q}eZ:SE+}fZ:DZ MZ:q NZ:BOZ:KVPZ:B{QZ:U,RZ:OmSZ:oK TZ:D&VZ:d- XZ:BbYZ:EzB[Z:e\Z:YWx^Z: d_Z:"|c `Z:#A33aZ:%bZ:&@pcZ:'xRZ:)CLZ:*CLZ:+CLgZ:/l/ Z:1CLZ:2CLZ:3CLZ:4CLmZ:7F^nZ::}oZ:CLZ:?CLZ:@CLZ:ACLZ:BCLZ:CCLZ:DCLwZ:HC34xZ:IN.yZ:JTZ:KOP{Z:NdUV |Z:P_x#}Z:Qqd~Z:|]Z:B!Z:E~^Z:~24 ~Z:OPZ:T5 |Z:CLZ:EX'Z:F%Z:F3lZ:N3uZ:CLtZ:CLZ:~X Z:q+ Z:l 5Z:IA6Z:HZ:CLZ:CL:Z:G̶;Z:Nc{Sy?c|F@c}EVAc~WzcOPDcMEcE5FcE .GcOWhcLcRcKcf  c]cy cmi cm- cwB cy#; !cCL cCLcCLc_ cCLcouq cGXcCcme cO;cs cCLcCLcCLcCLcCLcEcHcz ckc]{cmJ cp^ cj6 co#3cDcScCyc`,cBh cNdcGcH*cw cM? ciD c`s3cVvfc^ cCLcCLc-CLc.CLc/CLc2OPc3OPc5OPc7CLc:H,c;Gcc~] ~cOPcR |cCLcEcFcF\cMշuc CLtc CLc ~D cr33 cl 5cIA6cH"cCLcCL:cF:;cK"<cYc?c~24 cOPcCLBc u Cc!MDc"AEc$]RFc%wHGc&^\Hc'Hؾ Lc)kMc*e8RNc+FYOc,F%Pc-G1Qc.B~Rc/ARTcXF4UcYFVcZDc[OPc]CLYc_{ Zc`z? cbOPcdCL]cfk ^cgqt ciOPckCLacmuS[ cnOPcpCLdcrAҩctOPfcv^cwCLhcy~z iczQmc|OPkc~PZ lclmcincn ocaipca qc[\ rc]z scKtcKEucC<cOPcCLxc@QycJ)zcJBUcOPcCL}cH#~cFcF;cD7cOP~cCLc~Ü cS^ c^FfckcfcCL cCZcCLcOP czcCLcOPcE';cCLcOPcF<cRKL cOPcCLcCLcN ceS3cQ3cX)c"Ic#Fc%Juc&I!c'I4"c(m3#c)bfg$c*K$%c+L&c,K/q'c-J(c0~ c3CL*c5Ec8CL-c:@`2cCL0c@xH 2cBF\3cCHpc4cDCcEOP6cG]cHCL8cJCUcMCL:cOBNcRCL<cTwS =cUE#cWOPcYCL@cM%AcF BcHrcCLcCLEcw3 Hc@SIcgn; cixB ci cF?cGecDcl ci cFcEcxc@ cOcI?CcKAcr cK cB cRjccLcLc&cg+ cKck cCLcEccrTcOPcCLcCLcCLcCLcCLcCLcCLcXfcNgcavgcMHcMHcicCLcCLcCLcCLcCLcCLcCLc]cCLcCLcCLcM-c CLc CcCLcCLcz % cCLcCLcCLcOP$cI%cJ&cPAc CL*c#GP,cLVpcMOP.cNOcOCLcPCLcSOPcUCL3cXm3{4cZA6c\B7c]u8c^}@9caqAF:cdp;cenl<cflLcgOP>chT&h?ciE@cjEPAckXJclOPDcmImEcnEFcoE*#GcpOvocrK9csQ ctIcve; cy_czy c{m c|m- c}vܹ c~x !cCL cCLcCLcaD cCLco c@4cDJcm ccs cCLcCLcCLcCLcCLcEcHcz cjdc]{cl9 co cj(# cq@cDz&cMcCca8cBh cOcGz'cH[cw cQ$ cjٚ c`VfcX c^ cCLcCLcCLcCLcCLc!OPc"OPc#OPc%CLc)Hc*GVc+HVc,HGc/J=qc2J=q}ec}f}fc E  McHq|} NcJBOcLJ PcMCQcxURcyOCSczo Tc{CVc|d4 Xc}BzYcE_[c\c[^ceo_c|c `c@Tac~bc@34ccxcCLcCLcCLgck cCLcCLcCLcCLmcFznc}oc[F cCLcCLcCLcCLcCLcCLcCLwcBxcKLycQ>cOP{cc |ca}ct~c]cBrcE7cAcEcFA1cGJucCLtcCLc~Z cq clX 5cIn6cH"cCLcCL:cD- ;cIi<cV{t?c~ c OPc CLBcvK CcL;[DcAwrEc]RFcyGcRHcHm Lce4Mc34Nc@gOcAF~PcBG+QcCB RcDATcEEjUcFFVcHDrcIOPcJCLYcL{a ZcMzT cOOPcQCL]cSk ^cTo cVOPcXCLacZt c\OPc^CLdc`BcbOPfcd^ceCLhcg~] ichNVAcjOPkckPP lclkmcmi{ncnoW ocqbpcs_ qctWR rcu[{ scvKtcxK`ucyBjczOPcCLxc@4ycPzcJ%gcOPcCL}cH*~cFcEicD(cOP~cCLc~ cS ckcm3cpcCL cDcCLcOP cscCLcOPcD٦cCLcOPcFLcR: cOPcCLcCLc Mې c gc3c R c u`cItcEkcI+cH>!cf"cw#cfL$cKH%cL&cK9r'cJ5(c@PcCL*c Ec#CL-c%@c'OPc)CL0c+xH 2c-F3c.H[4c/Cѣc0OP6c2]c3CL8c5Cc8CL:c:B?c=CL<c?wS =c@E cBOPclCL@coMAcpFBcqGcsCLctCLEcvx# Hcx}HIc{lHr c~i ci& cFcH[cE cm ci cFݱcEcxc@ cOpcIHWcLcr cK?cB cLvchcLcLfcg+ cKck cCLcEcqcOPcCLcCLcCLcCLcCLcCLcCLcNgcNgca3cMHcMHchHcCLcCLcCLcCLcCLcCLcCLc]cCLcCLcCLcNcCLcCcCLcCLcy@Y cCLcCLcCLcOP$cI%cJ&cM.c CL*c6F,c7V7Gc8OP.c9Onc:CLc;CLc>OPc@CL3cCm1Y4cEA6cGv7cHv338cI`s49cLp:cNig;cOo<cPjgcQOP>cRS?cSE6@cTEJMAcUWcVOPDcWD-EcXERFcYE+ GcZO~^c]K`c^Pc`Icad cdaceyʂ cfm4 cgm- chvR cjx !cmCL cnCLcoCLc_޿ cCLcoXB c| z cD_cmv ccsl cCLcCLcCLcCLcCLcEcHWcz$ cjc]cl8 cn cj cnvfcDqcPqvcCcc$cBh cN?_cGwcHcw| cNE cqw c a@c Zfc ^ c CLc CLc CLc CLc CLc OPc OPc OPc CLc Hc H7c Hc Hc J8Rc J8R}echH}fcE Mc 1q_] Nc 4BOc 5IWPc 6C<Qc aTRc bOjASc co Tc dCYVc fd? Xc gBtYc iEOn[c je\c k\wx^c ndNb_c o|q `c q@!ac s~bc t@hcc uy\c wCLc xCLc yCLgc |k? c CLc CLc CLc CLmc F`Inc ~ oc ZN c CLc CLc CLc CLc CLc CLc CLwc Bxc K=qyc Xpc OP{c c |c _}c s~c ]c Bc Erc @~c OPc PB |c CLc Et9c Ec F;ec LW3uc CLtc CLc ~o c pH c kT 5c I'6c Hc CLc CL:c B;c G,<c YW?c ~ c OPc CLBc vh. Cc QDc AgEc hFc AGc UQHc H8 Lc JMc (\Nc *h(Oc +FsPc ,GQc -BrRc .AhTc /EӠUc 0FVc 1D7c 2OPc 4CLYc 6| z Zc 7y c 9OPc ;CL]c =l~k ^c >n c @OPc BCLac Cs c EOPc GCLdc IDc KOPfc M^c NCLhc P~24 ic QXAc SOPkc TP\ lc Vmmc Wj\)nc Xpc oc [a>pc ]a qc ^X rc _\{ sc `Ktc aKMuc bB9c cOPc CLxc @yc Sazc J%gc OPc CL}c H*~c Fc E(c Dc OP~c CLc ~ c R c ac Zfc ic CL c CBc CLc OP c ec CLc OPc Dc CLc OPc E$c Q c OPc CLc CLc Mm c gFgc Ulc ufc Ic Gc KHc Jff!c O "c nٚ#c cL$c Kn8%c L&c !K'c "J(c %~Ü c (CL*c *EZc UCL-c WA:%c YOPc [CL0c ]x 2c _Fx3c `HF4c aCc bOP6c d]c eCL8c gBc jCL:c lB c oCL<c qwt =c rDZc tOPc vCL@c yM0Ac zEBc |Hc ~CLc CLEc wna Hc DF Ic oI c i& c j' c Fc H9Qc EZc mYk c j ^ c G )c Ec yc @ c Oc I}c Lc r c Kc B c Qc @c Lc Ljoc g+ c Kc k c CLc Ec pVc OPc CLc CLc CLc CLc CLc CLc CLc `C3c Pgc _yc Nzc L{c Sc CLc CLc CLc CLc CLc CLc CLc ]c CLc CLc !CLc "Mc $CLc 'Cc )CLc *CLc ,xP c .CLc /CLc 0CLc 3OP$c 4Iz%c 5J&c 8I{Qc ;CL*c =F#,c >Uc ?OP.c @OНc BCLc CCLc FOPc HCL3c Jm*<4c LA6c OC 7c PiL8c Qdf9c Tp:c Vd;c WjFg<c hٚc OP>c S{?c E@c E?lAc Wc OPDc D-Ec EFc E .Gc O%c Jc Pyc Ic d%o c dXc y`7 c m c m- c vW c xH !c CL c CLc CLc ` c CLc oK c H@c Dc mm c }0c s c CLc CLc CLc CLc CLc Emc H{Fc zr c j[Zc ]{c l c n c iJ c pc3c DRQc NUc Ch6c doc B}q c O*c Gr/c Hwc wna c Nq c p c a`c Zfc ^ c CLc CLc CLc CLc CLc OPc OPc OPc CLc H c Hc Hc H(c IJ8Rc JJ8R}ec Eg}fc E  Mc `q Nc bBzOc cHPc eC Qc hTRc iOjASc jn Tc kCVc lc Xc mBtYc pEJ[c qs\c rX^c uc1_c v|q `c w@1ac y@bc {@cc |x.c ~CLc CLc CLgc k c CLc CLc CLc CLmc F>nc ~oc ZW c CLc CLc CLc CLc CLc CLc CLwc }Hxc JW yc Rc OP{c cwx |c _W>}c ru~c ]c B c Ec U ~c OPc SK |c CLc Egc Ec F"cQibucCLtcCLc~`B cq- cl 5cI6cHcCLcCL:c EV[;c!S<c"Z?c#~@ c%OPc'CLBc)v Cc*TDc+AEEc-W=qFc.tfgGc/QzHc0H Lc1cLMc2a*Nc3DGOc4FPc5GQc6BRc7ATc8EUc:F)Vc;DcCLYc?{ ZcAy cBOPcDCL]cFk ^cGn cIOPcKCLacus T cwOPcyCLdc{Bcc}OPfc^cCLhc~ icWi;cOPkcPW+ lcm=qmchncn8R ocaqpc_ qcY rc\\) scK'tcK ucBRcOPcCLxc@ycN~ zcJ3cOPcCL}cH2~cFcEXcCBcOP~cCLc~24 cRn c^vfcWfcgfcCL cC.cCLcOP cl@}cCLcOPcD?cCLcOPcEcQz cOPcCLcCLcM cglcSfcWcHҕcFcJucIJ>!cPٚ"c rL#c e$c Kn8%c LO&c K'cJݔ(c~s cEWcACL-cCAcEOPcGCL0cIx:D 2cKF3cLH6[4cMCcNOP6cP]cQCL8cSB=cVCL:cXBc[CL<c]x+ =c^Dc`OPcbCL@ceMiAcfEBcgIciCLcjCLEclw4 HcnA IcqUD ctj' cujb cvF:cwHGcE9[cmv cjD cG&"cEcy$c@ cOcHcLcr cK cB cPIccLcLocg+ cKcjpcCLcExcpcOPcCLcCLcCLcCLcCLcCLcCLc^gcNgcb\cPffcKcSGcCLcCLcCLcCLcCLc CLc CLc ]c CLcCLcCLcMcCLcCmcCLcCLcx cCLcCLcCLc!OP$c"I1%c#Jz&c&Pic)CL*c,F,c-V2c.OP.c/Oc0CLc1CLc4OPc6CL3c9m94c;A6c=~7c>aY8c?k9cjov:cle;cml<cnjs4coOP>cpSt?cqEκ@crE4AcsWctOPDcuKEcvElFcwEhGcxOGczJgc|Pgc}Jc~c cdNbcyN cme cm cu cwt !cCL cCLcCLca/ cCLcn c cCBcmm c-cs cCLcCLcCLcCLcCLcEcHtczr cj)~c]cl~k cnn ci cpPcD4qcNcC cegcBu cOcGucILcw_ cR cpU c`cZfc^ cCLcCLcCLcCLcCLcOPcOPcOPcCLc1Hvc2H@c3H1c4H(c7J8Rc9J8R}ecQ}fcE McNrV NcQBOcRHNPcSC0QcVTRcWO_ScXn TcYCSVc[c& Xc\BzYc^E:[c_C\c`]UV^ccb_cd|q `cf@zBach|*bci34ccjxcCLcCLcCLgckx cCLcCLcCLcCLmcEDnc}gocZfh cCLcCLcCLcCLcCLcCLcCLwcBkxcNycR\cOP{ccDD |c_)z}crf~c]cBrcEhc~@ ~cOPcR~g |cCLcEv cE)cFTcHucCLtcCLc~ cr cl^6 5cI6c Hϣc CLc CL:cE*;cR<cZ4?c~# cOPcCLBcv CcS&DcA5EcW\)Fc|34GcUQHcGe LcwMc!spNc"QROc#FPc$GQc%BRc&B Tc'EUc(FaVc)Dwc*OPc,CLYc.z Zc/yl c1OPc3CL]c]kh ^c^mv c`OPcbCLacdrz cfOPcgCLdciB}ckOPfcm^cnCLhcp} icrUctOPkcuP] lcvqmcwlRncxo}q oc{apc}aL qc~Y rc[ scKtcL ucCcOPcCLxc@&ycTQzcJfcOPcCL}cH9Q~cFxcEcCcOP~cCLc~ cR* cSfcJycalcCL cBrdcCLcOP cVcCLcOPcCcCLcOPcE*cQ cOPcCLcCLcM cAcU34cXcHcFcJ(cI!cZL"cC3#cd$cK^%cL6&cJ!'c$J(c%B c'CL*c)Ec,CL-c.Bc0OPc2CL0c4x:D 2c6F3c7H'4c8C^c9OP6c;]c cGCcEcycEVcO/cI8cK6cr cKcB cPtc~4cM cLu]cg+ cKc^cCLcEcpTcOPcCLcCLcCLcCLcCLcCLcCLcYgcNgc^ cO34cKcRcCLcCLcCLcCLcCLcCLcCLc]cCLcCLcCLcMcCLcCcCLcCLcx cCLc CLc CLc OP$cIЍ%cJ`&cN"cCL*cF^,cUcOP.cOcCLcCLc OPc"CL3c$mGe4c&A6cQD7cR~8cSl9cVn):cWb ;cXiY<cYggcZOP>c[T?c\EŨ@c]E.2Ac^W8c_OPDc`N9EcaE_)FcbE BGccO67cfD#3cgIYchCfcib1 cmcmcny+ com cpm cqua crw3 !cuCL cwCLcxCLcz_ [ c}CLcnT cBFcCpcll ccs cCLcCLcCLcCLcCLcEcHxcz cj!c]cl& cn4a ci cs\cDcPcB/cgcB޸ cNcH@c_2cwQ? cKu crn caffc[c^ cCLcCLcCLcCLcCLcOPcOPcOPcCLcHXcH cIsc HXc#J8Rc&J8R}ecE ~}fcEa Mcr NcB3OcJPcBQcTRcO_Scn TcC Vcc F XcBvYcE*p[cո\cT^cd_c| `c@zBac{ǯbc{>ccv#cCLc CLc CLgck cCLcCLcCLcCLmcEnc}fgocY} cCLc CLc!CLc"CLc#CLc%CLc&CLwc)Dffxc*N yc+R)c,OP{c/b33 |c2_i}c3q~c5]c8BEc9ECc<~' ~c>OPcBTa |cDCLcGEKEKF KGLDuK CLtK CLK@ Kr^ Kl| 5KJ6KHKCLKCL:KCU;KO7<KR?K~ KOPKCLBK!vI CK"QDK#A-EK%o\*FK&AGK'`HK(G' LK)v{MK*qNK+QLOK,F~PK.GQK/CJRK0B.&TK1Ex1UK2F9VK3DxyK4OPK6CLYK8z ZK9x K;OPKeCL]Kgk ^Khm<8 KjOPKkCLaKmq KoOPKqCLdKsAҩKuOPfKw^KxCLhKz} iK{RQK}OPkKO5 lKpmKlGnKpJ= oKb{pK`8R qKY8R rK[# sKK*tKLuKD޹KOPKCLxK@yKMzKJKOPKCL}KH@~KF]KEKCѣKOP~KCLK} KR KSKJfKa)KCL KB1 KCLKOP Kt-CKCLKOPKCKCLKOPKD1KP KOPKCLKCLKM~ KfKS,KWfKHSKGKLKJ@!KK"Kwff#Ka$KKB%K,L>&K-K='K.Kp (K1~ K4CL*K6EK9CL-K;BK=OPK?CL0KAw 2KCF3KDHG4KEC+zKFOP6KH]KICL8KKBNKNCL:KPBKSCL<KUw3 =KVDKXOPKZCL@K]LAK^EBK_LKbCLKcCLEKew HKfH3IKglHr Kj Kj KFݱKHKEsZKm4 Kj KGnKEKxKEVKOpKI~KK)Kr KKKB KOK~KLKLzKg+ KKcKSKCLKEKqKOPKCLKCLKCLKCLKCLKCLKCLKPgKOK`9KMKKRKSHKCLKCLKCLKCLKCLKCLKCLK]KCLKCLKCLKNKCLK CmK CLKCLKz KCLKCLKCLKOP$KI%KJ>&KIbKCL*K!Fi,K"V2K#OP.K$OgK&CLK'CLK*OPK,CL3K.m4KXA6K[w37K\r8K]`L9K`n&:Kc`&f;Kdi3<KeiKfOP>KgTA?KhEF@KiE!AKjXKkOPDKlN<EKmEK6FKnEGKoOKrDIKsIKtC3Kvb/w KycKzx҆ K{n K|m K}tY K~w4 !KCL KCLKCLK_+ KCLKn`* K} KC~KlR KriKs KCLKCLKCLKCLKCLKEcKH]XKz[ Kj7K]Kk=" Kme Ki KrLKCKR4KBI&KhKB) KNJ4KILKst:KwB KP Kr. KaK[K^ KCLKCLKCLKCLKCLKOPKOPK OPK"CLK&H/K'H"iK(I(K)H@K,J8RK/J8R}eKTd4}fKE MKEq NKGBVOKIJBQPKJB\QKMTRKNO_SKOn TKPCVKQb XKSBtYKUE*p[KVE\KWaH^KZc _K[|9 `K@paK{ bK|BcKw >KCLKCLKCLgKkU KCLKCLKCLKCLmKEnK}S4oKX¼ KCLKCLKCLKCLKCLKCLKCLwKCxKJyKPKOP{Ka |K`a}KrR~K]KBBKEK~24 ~KOPKMV |KCLKE'KE]KFxCKJEuKCLtKCLK~ KqO Kk+ 5KJ6KHKCLKCL:KB=;KL^(<KX?K~OI K OPK CLBKv CKPIDKABEK`zFKQGKTHKG LK_MKWNKOKFPKGgQKCRKBPTKE[;UKFVK Dd)K!OPK#CLYKMz[ ZKNx KPOPKRCL]KTk=" ^KUmYk KWOPKXCLaKZq K\OPK^CLdK`A KbOPfKd^KeCLhKg}u% iKhOKjOPkKkOO lKmm mKnj=qnKopٚ oKrbtwpKt_ qKuW rKvY sKwK-tKxL/9uKyFf&KzOPK|CLxK~@yKT+zKJKOPKCL}KH9Q~KFKjKEKCKOP~KCLK} KQƕ KSS4KJyKa KCL KAqKCLKOP Kf0KCLKOPKCKCLKOPKDKO KOPKCLKCLKM~ K~ KuKm KH<KE޹KIqKHT{!KVٚ"Ko#Kb@$KK.%KKh&KJ'KK(K} K!CL*K#EZK&CL-K(BcK*OPK,CL0K.w% 2K0FA3K1H4K2C EK3OP6K5]K6CL8K8B"K;CL:K=AK@CL<KBwB =KCDKEOPKGCL@KJLAKKEBKLC|KOCLKxCLEKztz HK|@&IKp: Kj Kk. KFKH/KEKn Kj KGKEKxKEVKO`KIKK()Kr KK?KB KRK}KLKLyKg+ KKcKMIKCLKEKr7KOPKCLKCLKCLKCLKCLKCLKCLKPgKNgKaKM(KKKGHKCLKCLKCLKCLKCLKCLKCLK]KCLKCLKCLKMfKCLKC KCLKCLKzcz KCLKCLKCLKOP$KIЍ%K J&&K QKCL*KFĽ,KUKOP.KORKCLKCLKBOPKCCL3KFlI4KHA6KK@7KLs 8KMof9KOnU:KQh4;KRoy<KSlFfKTOP>KUTi?KVE|@KWE@AKXW`KYOPDKZNEK[E>FK\E7GK]O}KaE3KbKKcEs3Kd`ـ KgcOKhx!y Kjn0 Kkmm KltU Kmv !KpCL KqCLKrCLKu_/ KxCLKzmi K{I(-KBKk KF Ksrb KCLKCLKCLKCLKCLKE'KHC Kz Kj+K]Kj ^ Kmi Ki3 KoKCҶKSx*KBaKj5KB) KMKK˨K}}Kw4 KM Kjww KafKYK^ KCLKCLKCLKCLK CLK OPKOPKOPKCLKHKH!KIPKH#PKJ33KJ33}eK[-}fKE MK2q3 NK4BOK5J"PK6BQK9Tv;RK;OJ)SK`F XK?BvYKAE&[KBE\KlYH^Koab_Kp|9 `Kq@paKs}8RbKt@cKuz >KxCLKyCLKzCLgK}ka KCLKCLKCLKCLmKEDnK|oKV KCLKCLKCLKCLKCLKCLKCLwKAxKH=qyKSKOP{K` |K`F}Kt~K]KB:KEAK~24 ~KOPKNm^ |KCLKELKEKFqKP>uKCLtKCLKA!Kq/ KkV 5KJi6KHKCLKCL:KB;KJ)<KK?K~] KOPKCLBKv CKN|DK@EK`zFKBLGKWHKGJy LKZMKTNK|OKFPKGQKC3uRK Bh:TK EFkUK E0VK4D@K5OPK7CLYK9z$ ZK:xt KCL]K@j ^KAmYk KCOPKECLaKGqt KIOPKKCLdKMAҩKOOPfKQ^KRCLhKT},l iKUOKWOPkKXO lKYq(mKZnnK[o!H oK^c{pK`_ qKaW rKbZ sKdKDtKeL8UuKfH9QKgOPKiCLxKkAyKlPXzKmJZKoOPKCL}KH9Q~KF<KEwoKCKOP~KCLK}h KQe6 KSyKJ,KVfgKCL K@KCLKOP KYR KCLKOPK C\K CLK OPK DK N0 K OPK CLK CLK MY K `&fK TK PK H9K G(K KK I!K Ws3"K !h@#K "ag$K #K%K $K`&K %K9r'K &KA(K '@G}K )CL*K +EK .CL-K 0B1 K 2OPK 4CL0K 6wB 2K `F3K aG4K bBK dOP6K f]K gCL8K iAK lCL:K nAK qCL<K sw_ =K tDVK vOPK xCL@K {LAK |EBK }IqK CLK CLEK u ~ HK CIK ]# K k. K k) K FݱK HK EZK n% K kQ K GK EK xK EVK O/K HK K)K r K KK B K PtK }YK KCuK LzK g+ K KcK IK CLK EK slK OPK CLK CLK CLK CLK CLK CLK CLK YgK NgK _K LK M >K RK CLK CLK CLK CLK CLK CLK CLK ]K CLK CLK CLK NK CLK CK )CLK *CLK ,|= K /CLK 0CLK 1CLK 3OP$K 4I_%K 5J&K 8N"&K ;CL*K >F,K ?UŢK @OP.K AOK CCLK DCLK FOPK HCL3K Kl4K MA6K OZg7K Pe8K Qkٙ9K TnE:K Vg`;K Wqf<K XmyK YOP>K ZT'!?K [E@K \EAK ]X-K ^OPDK _NEK `E0FK aE7GK bOK CK HɚK Cc4K ` K ^K x K n% K mm K t!N K vY !K CL K CLK CLK ` K CLK m7 K { K B K kd K sK sU: K CLK CLK CLK CLK CLK EK H+zK z K j3wK ]K ii K mYk K i K p3K CK P8|K Bx@K kLK Bc K P]K M]K B"zK w% K S K r K `3K Y3K ^ K CLK CLK CLK CLK CLK OPK OPK OPK CLK GnK H#PK Ig5K H(K "J33K %J33}eK lJ7}fKGo MK cqn NK eB]OK fJ[PK gBQK jT_gRK kO?wSK ln TK nBVK oa XK pBYK rE"[K si\K t[^K wdX_K y|r `K z@paK ||pbK }{cK ~u K CLK CLK CLgK k K CLK CLK CLK CLmK EnK ~`oK W4 K CLK CLK CLK CLK CLK CLK CLwK @QxK J4yK OK OP{K afg |K _( }K q~K ]K B/cK ESK ~ ~K OPK Q΅ |K CLK EK DK FwK M uK CLtK CLK BK r\ K lE 5K J6K HK CLK !CL:K #B1 ;K $H3<K %Hz?K -~24 K /OPK 1CLBK 3v CK 4MODK 5@EK 7ZFK 8}fgGK 9RHK :G LK ;\ffMK uK OPkK OX lK qmK n nK o\) oK bzpK aL qK \ rK aaH sK KDtK LB[uK J0K OPK CLxK A$ZyK P~zK JmK OPK CL}K H9Q~K F)K E`K C K OP~K CLK }X K P K OK GٚK P,K CL K @K CLK OP K J)K CLK OPK BK CLK OPK DrK O K OPK CLK CLK MT K sK ngK g<K HK GK KK J@!K QL"K lg#K `$K K%K KƂ&K K'K K(K ~# K CL*K HEZK KCL-K MB}K OOPK QCL0K SwQ? 2K UF"3K VG=4K WBK XOP6K Z]K [CL8K ]B K `CL:K bBK eCL<K gwQ? =K hDK jOPK lCL@K oLҮAK pEVBK rCK tCLK uCLEK wu HK xAIK y`~w K |kh K }k_ K ~F:K H$K EWK nB K kK K GxK EK xK EVK OPK IŦK K4K r K K&K oK K PeK }(K LK LLK g+ K KFK GnK CLK EK qK OPK CLK CLK CLK CLK CLK CLK CLK YgK RfK YgK MK K\)K RpK CLK CLK CLK CLK CLKCLKCLK]KCLKCLKCLKNIKCLKCӞKCLKCLK!|C K#CLK$CLK%CLK(OP$K)IƏ%K*Ir&K-IK/CL*K2F,K3UK4OP.K5P)K7CLK8CLK;OPK=CL3K?lҽ4KAA{6KDf&g7KES8KF_ff9KIn:KKf;Ktpl<KumYKvOP>KwSh?KxE}@KyE AKyW[KzOPDK|MɰEK|E"iFK}EGK~OKBC3KGKA\K_ K`frKxy Kn% Kmm Ksl Kv- !KCL KCLKCLK^ KCLKnB KHdKCKl5h Kq4KsF KCLKCLKCLKCLKCLKEKHKz KjK]KixB Kl KiX Kn\KCKQKB{Kl1KBu KNFKOCKC"Kw KMK Kq KafK[K^ KCLKCLKCLKCLKCLK OPK OPK OPK CLKGKH*KI}KxKJyKQRKOP{K` |Ka1}Kt~K]KB$KEK' ~KOPKM |KCLKE:KDKF,KGyuKCLtK CLK AK qo Kk 5KI'6KHKCLKCL:KB};KFN<KN?K ~ K"OPK$CLBK&w CK'LDK(@EK*bFK+tfgGK,[34HK-Fn LK.]zMK/TzNK0}OK1FPK2FDQK3C^ERK4BTK5EFUK6ElVK7C4K8OPK:CLYKKlT>?KmEqL@KnEgAKoWKpOPDKqNEKrEFKsEhGKtOKvBC3KwGyKyAKz`k K}d) K~wڭ Kn% Kmm Ks Ku !KCL KCLKCLKaL KCLKm KBKDKjb KUKs8 KCLKCLKCLKCLKCLKE*KH0Kzcz KjWK]Ki Kl Kij KoKC'KOA KA[KmKB KO KPKCʄKwl KT Kr7w KaiK\IK^ KCLKCLKCLKCLKCLK%OPK&OPK'OPK*CLK-GѼK.H(K/IK0H5sK3J.K5J.}eK[}fK H MKJq NKMB֤OKNL/PKOBHQKRT*#RKSO[SKTnT TKUAVKW_x XKXB~YKZE"[K[H"\K\\r^K_dx_K|r `K@]aKzbKycKu=qKCLKCLKCLgKkcy KCLKCLKCLKCLmKEnK|oKV8> KCLKCLKCLKCLKCLKCLKCLwKEǮxKMuyKNKOP{K^DD |Ka}KsF~K]KBKE K}h ~KOPKMO |KCLKEKD{KFNKM|uKCLtKCLKAۦKpȵ Kk 5KI6KHKCLKCL:K Aҩ;K R5<K OF?K }~ KOPKCLBKwQ? CKSwDK@EKgQFKwfgGKXHKFv LK^MKUpNK~ROKFPK FQK!CpiRK"BTK#EFUK$EVK%CK&OPKPCLYKRz? ZKSw4 KUOPKWCL]KYk ^KZmm K\OPK^CLaK`pӖ KbOPKdCLdKfAKKgOPfKi^KkCLhKm| iKnTKpOPkKqO%V lKrj\mKsgnKtq oKwbpKy] qKzV. rK{Z33 sK|KtK}LHuK~LO/KOPKCLxKByKMzKK KOPKCL}KH@~KF VKE4KCpKOP~KCLK~Ü KPS KTfKGfKRvgKCL KK KCLKOP KS sKCLKOPKBKCLKOPKDOKL_ KOPKCLKCLKLT KY6gKQC3KJKGKEKIpKH!KX4"Ky33#K`&f$KJ%KK&KKx;'K K(K#@K&CL*K(EdK+CL-K-A"K/OPK1CL0K3uD 2K5F`3K6G4K7BbK8OP6K:]K;CL8K=B K@CL:KBDgKECL<KGvt =KIDuKKOPKMCL@KPLAKQEBKRLՑK|CLK}CLEKs HKIIKof Kk Kl3 KFݱKHKEVKn Kk KGeKEKxyKEVKOKI(KK-Kr KKKn`* KLvK}(KM KLLKg+ KK82KMB-KCLKEuKrKOPKCLKCLKCLKCLKCLKCLKCLKYٙKYgKagK_KG K_ > KCLKCLKCLKCLKCLKCLKCLK]KCLKCLKCLKMKCLKCԅKCLKCLKz$ KCLKCLKCLK OP$K I%K I֍&KNrKCL*KF,KVzKOP.KPKCLKCLKDOPKFCL3KIl4KJA6KM^337KNK8KOZg9KRm:KT`Fg;KUhg<KVeLKWOP>KXS?KYEb@KZD%AK[WdK\OPDK]MEK^EFK_EGK`OirKbDpKcIfKeCKf_T Kid) Kjv Kkn% Klm Kms Kou !KrCL KsCLKtCLKv]b KyCLK{k/ K}~@ K~D%KixB KKs KCLKCLKCLKCLKCLKEKH@Kz)B Kj#K] Kh" Kla7 KiL KrKCvsKP˙KAKo-KB) KNKReKCVKv KKu. Kj Ka#3K[K^ KCLKCLKCLK CLKCLKOPKOPKOPKCLKGEKH"iKIwKH*KJ33K#J33}eK@s}fKHG3SH3F8 L3JM3x N3dO3FP3F*Q3CGR3BjT3DU3EWV3C3OP3CLY3z[ Z3w_ 3OP3CL]3jSk ^3mJ 3OP3CLa3pX 3OP3CLd3@3OPf3^3CLh3|oQ i3RJP3OPk3O l3^\)m3[n3pG o3bp3_ q3X r3[B s3Kut3LOu3MY3OP3CLx3-BFy3.Sz3/K 31OP33CL}35H9Q~37E=38E'39C~33:OP~3~l^ 3AP7{ 3BIvf3Co3DEs33FCL 3H~] 3KCL3NOP 3QK@3TCL3WOP3XB3ZCL3]OP3^C3aK 3cOP3eCL3fCL3L^ 3SI3b3h33GL3E3I#3H&f!3BL"3b#3[f$3Jd%3Kx&3KA'3K(3~' 3CL*3E23CL-3AZ3OP3CL03u' 23FK633GV43B-3OP63]3CL83A3CL:3E@3CL<3v =3Dg3OP3CL@3LA3E0B3Jnt3CL3CLE3s8 H3BEI3q? 3l3 3lR 3F53 Hؒ3 ET3 n 3 k 3 H 3E3x3EV3OW@3I;3K$3r 3K#3 nB 3!R3#}(3$L3%LL3(g+ 3)KF3+[3-CL3XE3Zq3[OP3]CL3^CL3_CL3`CL3aCL3bCL3cCL3fNg3gNg3h`ɚ3j_3kG 3l_ > 3nCL3oCL3pCL3qCL3rCL3sCL3tCL3u]3wCL3xCL3yCL3zN3|CL3Cm3CL3CL3y# 3CL3CL3CL3OP$3I%3Iw&3J 3CL*3Fl ,3U#3OP.3P,93CL3CL3OP3CL33l~43A63[73b@83]g93m:3`l;3h<3ey3OP>3T6?3E;@3D-A3W3OPD3NDE3DlF3ELG3O3F 3K33E 3^J 3dpR3vg- 3n% 3m 3r 3u65 !3CL 3CL3 CL3"a 3%CL3'lR 3(I3*D3+i 3-30r+ 33CL34CL35CL37CL38CL3;E83? 3Kn03NCZj3OPƍ3PAS3Qp3TBz 3WNj3XS3YC3vܹ 3V 3v 3a3],3^ 3CL3CL3CL3CL3CL3OP3OP3OP3CL3G3HX3Id|3H3J(3J(}e3-R1}f3I M3qn N3BO3L P3BdQ3TR3OQKS3@`2T3ATV3^ X3BkY3D[3G\3T^3c8_3|r `3Apa3|b3{c3w8R3CL3CL3CLg3j 3CL3 CL3 CL3 CLm3Fn3{c4o3Uy 3CL3CL3CL3CL3CL3CL3CLw3FaHx3 Muy3!TL3"OP{3M^"# |3O`[}3Pt2~3R]3VB3WE3Z} ~3\OP3_M |3aCL3eE3fDW3gF3l3jHu3lCLt3mCL3pBD3qp# 3rkn 53tI63uHIe3wCL3xCL:3zAl;3{O<3|P?3~}h 3OP3CLB3wB C3S>D3@E3gF3~G3L{H3E L3JM3x=q N3dO3FP3E#Q3CR3B T3DU3Ec`V3C3OP3CLY3z Z3wl 3OP3CL]3iQ ^3ll 3OP3CLa3ph 3OP3CLd3A23OPf3^3CLh3|5! i3O3OPk3O. l3b33m3_Rn3mٚ o3cwSp3^u q3WG r3[# s3K|t3LSu3OK3OP3CLx3Bcy3P"z3KF3 OP3"CL}3$H9Q~3&Eא3'E3(Cq3)OP~3+CL3-~OI 3/O 30A31`333|f35CL 36~] 39CL3 3YCL3[CL3\CL3]CL3^CL3_CL3`CL3a]3bCL3cCL3eCL3fN3hCL3kCӞ3lCL3mCL3o{ 3rCL3sCL3tCL3wOP$3xIu%3yI&3{O3CL*3FS,3Vz3OP.3P3CL3CL3OP3CL33lp43A63^73Z83_93lM:3`3;3g <3c3OP>3Sp>?3E @3DeA3W9h3OPD3P 5E3DF3DaG3Oo83FP3K03D3^/ 3a3v 3n% 3m 3rk 3t4 !3CL 3CL3 CL3 ].B 3CL3lR 3{LS 3C3j' 3M3r 3CL3CL3CL3 CL3!CL3$E3%H'3)y 3+i3.]3/h 30k_ 31id 34sff38C839Oc3:@3;r:3=Bٚ 3@O!I3AU3BD1X3nv 3oK+ 3rrH 3saf3t\L3u^ 3vCL3xCL3yCL3zCL3{CL3~OP3OP3OP3CL3G'3H_3IU 3H3J.3J.}e3w }f3pIIk M3qn N3BO3L1P3B1 Q3SR3OmS3AT3AV3_M X3BkY3Di[3޹\3W6^3f܊_3| `3Ca3zb3yBc3ug3CL3CL3CLg3jq 3CL3CL3CL3CLm3G n3|o3Ufh 3CL3CL3CL3CL3CL3CL3CLw3 ~ x3 I{y34P35OP{38_"# |3;a}3]3ACV$3BE93E} ~3HOP3KOIc |3MCL3PE3QDE3RFc3VJSu3XCLt3YCL3[C3\r 3^kn 53`I"63aH03cCL3dCL:3fA^v;3gM<3hP~?3i} 3kOP3mCLB3ow% C3R5D3@sE3jQF3|QG3OH3E L3I{M3u N3c O3F$P3ET.Q3CR3BJT3DU3Er 3 @JP3 CnB 3 DR\3 F|93 GK+3 HLw03 Kg+ 3 LJn3 Ng3 PCL3 SE3 Ur3 VOP3 XCL3 YCL3 ZCL3 [CL3 \CL3 ]CL3 ^CL3 aPg3 bMg3 cYg3 _3 G 3 _ > 3 CL3 CL3 CL3 CL3 CL3 CL3 CL3 ]3 CL3 CL3 CL3 N3 CL3 Cԅ3 CL3 CL3 }f 3 CL3 CL3 CL3 OP$3 IS<%3 Iv&3 N3 CL*3 F2$,3 VO3 OP.3 O>3 CL3 CL3 OP3 CL33 l`43 A63 n@73 X83 ^3393 k:3 _;3 f4<3 b3 OP>3 S?3 D@3 DA3 WH3 OPD3 RnE3 Dw F3 DG3 O`3 Df3 I43 C 3 ^ 3 ]<3 vJ 3 n0 3 m 3 rs 3 tU !3 CL 3 CL3 CL3 aL 3 CL3 !l9 3 "J<3 #C3 %i& 3 &z3 'r 3 *CL3 +CL3 TCL3 UCL3 VCL3 ZE3 [H'3 ^z)B 3 `j J3 c] 3 dhb 3 ek 3 gh& 3 jqI3 mCj3 nS~3 o@f3 pt+$3 rB) 3 vNM3 wWgi3 xD3 {v 3 |U( 3 r 3 a3 \I3 ^ 3 CL3 CL3 CL3 CL3 CL3 OP3 OP3 OP3 CL3 Gr3 H3 II?3 H 3 J(3 J(}e3 &VD}f3[I M3 q N3 BO3 M*P3 BQ3 SR3 OjAS3 rk T3 A7aV3 ^ X3 BtY3 D[3 dj\3 Y(^3 c_3 | `3 D|4a3 |Bb3 }uc3 w >3 CL3 CL3 !CLg3 $k t 3 &CL3 (CL3 )CL3 *CLm3 -Hen3 0,o3 1T 3 3CL3 5CL3 6CL3 7CL3 8CL3 9CL3 :CLw3 =~Rx3 >Jy3 @S3 AOP{3 D] |3 F`}3 Gv~3 I]3 LD :3 NE,3 Q~24 ~3 SOP3 VWx |3 CL3 E3 D[3 F^.3 Ou3 CLt3 CL3 C5@3 qbN 3 k 53 I63 H33 CL3 CL:3 B;3 K<3 Ql?3 }h 3 OP3 CLB3 w% C3 PD3 @dfE3 VHF3 uG3 L{H3 En L3 _ >M3 W N3 @\O3 FP3 DQ3 CR3 BT3 DzU3 EV3 C3 OP3 CLY3 { Z3 vK 3 OP3 CL]3 iމ ^3 l5h 3 OP3 CLa3 pPL 3 OP3 CLd3 A3 OPf3 ^3 CLh3 { i3 XH3 OPk3 OWD l3 dm3 bn3 p= o3 bp3 ^ff q3 V r3 Z\ s3 K3t3 L[u3 P#3 OP3 CLx3 By3 Sz3 KU3 OP3 CL}3 H@~3 Er@3 D|3 C`s3 HOP~3 JCL3 L~z 3 NO& 3 ONL3 PB03 QK3 SCL 3 U}I 3 XCL3 [OP 3 ^u3 aCL3 dOP3 eB53 gCL3 jOP3 kDl3 nJz 3 pOP3 rCL3 sCL3 vK 3 wus33 xlg3 yh43 |G]I3 ~Gn3 K.3 I!3 M"3 w#3 _3$3 J%3 KwS&3 K|'3 K(3 F3 CL*3 EZ3 CL-3 A3 OP3 CL03 uD 23 EV33 G?43 B3 OP63 ]3 CL83 A:3 CL:3 F53 CL<3 vI =3 DQN3 OP3 CL@3 L*A3 E`{B3 FA3 CL3 CLE3 o H3 EI3 l* 3ll 3m 3F:3Iw3F!O3B 3l 3Hd3E3x3EV3O3!IZ3"K-3%r 3'JP3+n 3,Lv3.|93/L30Lq33g+ 34J36g38CL3;E33SG1?3DE@3DeA3W!3OPD3RZE3DWmF3DƌG3Oa3DS43I3CY3] 3a3vg- 3n 3l9 3q^ 3t/ !3CL 3CL3CL3\ 3CL3l 3  3 D3 i 3 li3r 3CL3?CL3@CL3CE3EH3Hy 3Jj3M] 3Nh 3Ok_ 3Ph 3Tm3WB3XQ%3YW3Zu3\Bh 3_NJ3aY63bD3ev 3fKu. 3irU 3jaS33k\f3m^ 3nCL3oCL3pCL3qCL3rCL3vOP3wOP3OP3CL3G\3G=3IA3H3J#3J#}e3 o}f3 I M3r+< N3BjO3KO'P3A5Q3SR3O[S3o+ T3@V3]/ X3BtY3D5[3Թr\3T^3a_3| `3Ca3}b3{ c3w(3 CL3 CL3 CLg3kh 3CL3CL3CL3CLm3Gn3|o3Tj 3CL3CL3CL3 CL3"CL3#CL3$CLw3'@x3(H\)y3)S{3*OP{3.]fg |30a}31t~33]36C37E 3:}h ~3=OP3hO |3jCL3mE3nDB3oF<3sM<u3uCLt3vCL3xC3zp 3{kV 53}IU63~H>3CL3CL:3Cpi;3H<3Q[:?3}; 3OP3CLB3w4 C3O;]D3@QE3oF3DffG3c\*H3D L3bfgM3XN3A(O3FFP3DQ3CXR3BoT3D]U3DV3C%3OP3CLY3|5! Z3u} 3OP3CL]3i& ^3l3 3OP3CLa3p$ 3OP3CLd3A3OPf3^3CLh3{/ i3V{3OPk3O; l3bm3`ffn3p o3bap3_ q3XB r3[3 s3Kt3LaSu3Qs3OP3CLx3B y3Ocz3Kr3OP3CL}3HVF~3EBQ3DL130CT31OP~33CL35~24 38N7 39Q3:C3;O 3=CL 3?~z 3BCL3EOP 3Hxe3KCL3NOP3OBi3QCL3TOP3UD\3XKc 3ZOP3\CL3]CL3`KV 3a\g3bS33cMg3fGF-3hEǮ3iK޹3jH.!3kG@"3u#3`f$3J%3Ka{&3Ko!'3Kd6(3} 3CL*3E23CL-3A3OP3CL03ua 23EU33G'l43B3OP63]3CL83B}3CL:3G )3CL<3vI =3D4K3OP3CL@3L~&A3EacB3Ds3CL3CLE3o H3B3I3pp 3m 3m<8 3F/3Iw3F>K3B 3l8 3Hs<3E3x3 EV3 O3IX3K+3r 3JP3n 3R3|93L3Ls3g+ 3 Jā3"jp3%CL3(E3)po3*OP3,CL3-CL3.CL3/CL30CL31CL32CL3]Yg3_Yg3`cVg3aI{3bGH3cQ3eCL3fCL3gCL3hCL3iCL3jCL3kCL3m]3nCL3oCL3pCL3qM3sCL3vCU3xCL3yCL3{{H 3}CL3~CL3CL3OP$3I:%3I>&3Q3CL*3Es,3Vk3OP.3O3CL3CL3OP3CL33l943A{63r73h@83c93kq:3f;3r<3mFf3OP>3Sh?3Dt@3DA3W3OPD3TsE3DP-F3D6G3O>3Dy3I3CP3] 3cT3v 3m 3l9 3qes 3sl !3CL 3CL3CL3`d 3CL3l 3D- 3DS3jD 3* 3%rk 3(CL3)CL3*CL3,CL3-CL30E$31H@34z7 36j39] 3;g 3c3x\*3CL3CL3CLg3j 3CL3CL3CL3CLm3Gm*n3 }@o3 Tӄ 3 CL3 CL3CL3CL3CL3CL3CLw3Dx3Ky3R\3OP{3_ |3co}3 sM;~3"]3%C$3'Er3R~ ~3TOP3WP` |3YCL3\E3^D.}3_FQ3bGu3dCLt3eCL3hC3ir1 3jk/ 53lI63mH;3oCL3pCL:3rC{;3sM9M<3tQ?3u} 3wOP3yCLB3{w% C3|MD3}@QE3bF3|{G3RH3Dϊ L3bfgM3YHN3AW O3FP3DJQ3CR3B T3DF|U3DV3C3OP3CLY3|5! Z3u 3OP3CL]3j ^ ^3l3 3OP3CLa3o 3OP3CLd3AK3OPf3^3CLh3{ i3Te3OPk3N l3bffm3_ n3o o3a|p3bQ q3X=q r3]\) s3JRt3Ldu3S3OP3CLx3C y3Rz3KM3OP3CL}3Hd~3E 3D3 CH3!OP~3#CL3%} 3'Nn> 3(G6g3)v3*C33,CL 3.@31CL34OP 37p3:CL3=OP3>Bq3@CL3COP3DE3GL+n 3IOP3KCL3LCL3OK# 3Px3Q[3RM3}G]I3FY3I3H\!3G"3mY#3l$3J%3KI&3Kg'3K6(3C3CL*3EG3CL-3A3OP3CL03u6 23Eɔ33Gh43Bx33OP63]3CL83A3CL:3GB3CL<3wna =3D- 3OP3CL@3LTA3EF7B3K3CL3CLE3o۔ H3DjI3c$ 3m<8 3mYk 3F/3I 3FL3B 3l 3H/3E3x3EV3O3I\3K3r 3JP3n}[ 3Lv3}3L3 Ls3 g+ 3 J 3k1>3CL3E3o83OP3CL3CL3CL3DCL3ECL3FCL3GCL3J^33K^Ff3Lavg3MI\3NGH3OQ3QCL3SCL3TCL3UCL3VCL3WCL3XCL3Y]3ZCL3[CL3]CL3^N,3`CL3cCa3dCL3eCL3g~# 3jCL3kCL3lCL3oOP$3pI%3qIt(&3sM3vCL*3yE,3zUz3{OP.3|P3~CL3CL3OP3CL33l43A{63g473a83X93l :3f;3o<3nl3OP>3S\?3DT@3D-A3W03OPD3S`E3DTF3DŤG3O^3Uf3ZC33R333] 3d3wZ 3m 3l9 3q 3sF !3CL 3CL3CL3\U 3CL3m<8 3F3 D3 jH 3C3r]\ 3CL3CL3CL3CL3CL3E3H13"z7 3$j &3']3(gJ 3)k. 3*hm 3.n31Bޒ32QF33{d34y-36Bz 39Oe3:\3i ^ ?k AOP CCLa Eo۔ GOP ICLd K@ MOPf O^ PCLh R{ i SRCe UOPk VNX l Wg(m Xn=qn Zq o \bp ^` q _UQ r aZR s bJt cLhu dU, eOP gCLx C/y R/z Kz OP CL} H]~ D C C: OP~ CL }~  N  F3 v  C CL A CL OP wv CL OP Bv CL OP EQ L+n OP CL CL K!X  [ WL OFf Ga" FQ J > H>! J@" s34# o$ J% K6& Ki' KD^(  }R  CL* E# CL- Al OP CL0 u 2 Ee3 F4 Bv OP6  ] !CL8 #A &CL: (H +CL< -w| = .D XOP ZCL@ ]L6A ^EMvB _IE aCL cCLE eoXB H gz6I j_8  lmv  nm  oF pI/j qF[G rB  sm  tH uE wx zEV {Oe! }Iu ~JP r  JP me  S }( L Ln g+  J lq CL E pR OP CL CL CL CL CL CL CL _p Ng ef K G R CL CL CL CL CL CL CL ] CL CL CL M CL C CL CL @C  CL CL CL OP$ H% Ie& H1 !CL* $E+, %Ui &OP. 'P )CL *CL -OP /CL3 1l4 3A{6 6kff7 7ag8 8XFg9 ;l[%: >e; ?of< @l  AOP> BTC4? CDM@ DDA EW9 FOPD GTE HDY<F IDαG JP LY@ M^c3 NV P^  Sc Tv;  Ume  Vl  Wp  XsU: ! CL CL CL _Z  CL l&  yz  Cpi i/3  Fga  rN  CL CL CL CL CL E H\p zT  j*5 ]  g  k  h/  o Bp TѸ z! {ey B)  Mg ^ C vY  QP  u  c0 \L ^  CL CL CL CL CL OP OP OP CL Gv G- I8 H  J# J#}e [on}f Jt M q3 N  BO !MP "AQ MSaR NO_S Oo T P@V R]f X SBkY UD[ VՑ\ WZn9^ ZcR_ [| ` ]A33a _}{b `yc aw cCL dCL eCLg hj6 kCL lCL mCL nCLm qFn tvgo uS xCL yCL zCL {CL |CL }CL ~CLw ~x IBy V4 OP{ \33 | a1} tM~ ] C Eh K ~ OP QK | CL E, C{ F% Pu CLt CL Ca pi  k+ 5 It6 H CL CL: C>; H`< R? }I OP CLB w4 C PvD @5E WF @aHG ZH D L _ffM W\)N @BO FPiP D&Q CR CJT D% U DV  D !OP #CLY %|& Z &uD (OP *CL] ,i\ ^ -k /OP 1CLa 3o 5OP 7CLd 9@۶ ;OPf =^ >CLh @{Z i AOy COPk DN l EfHm Fe\n Go{ o Jb!p L`z q MV\ r N] s OJt xLm*u yW  {OP }CLx CL!y Lz Kr OP CL} HVF~ D C C2 OP~ CL }h  M  I4 } D@ CL B CL OP |! CL OP B5h CL OP Et J OP CL CL K=!  u r N3 GQ F4 J Ip! K`" z,# a$ JK% K.& K^' Klg( D CL* E CL- A^v OP CL0 tY 2 E3 F4 Bi  OP6  ]  CL8 AL CL: H] CL< @wQ? = AD COP ECL@ HL~&A IE5B JHv LCL MCLE Onn H QEbI Rh;  Um  Vm4  WF/ XI/j YFi ZB  [mYk  \H ]E _x8 bEV cOs eH gJP jr  lJP om  pLv r} sL tLo wg+  xJ zlq CL E pT OP CL CL CL CL CL CL CL ^ Ng c3 Ip I{ P( CL CL CL CL CL CL CL ] CL CL CL NI CL C$ CL CL B CL CL CL OP$ He% IYb& RQ  CL*  E,  V OP. P CL CL OP CL3 kQ4 A{6 c37 al8  [ 9 #l}: $d; %n4< &m  'OP> (S? )D@ *D5A +WI9 ,OPD -R¨E .DXUF /D8G 0P+ 3Y#3 4^vf 5Vf 6_Y  9]L ;uc  p|  ?r ! BCL CCL mCL o]w  rCL tl  uJP vC wh(#  z=d }r1  CL CL CL CL CL E H_) z)B  j? ]  g!  j  hq  o3 Bʰ OX yZ ~Ye Bz  O `V D vK  NcI  jH  _3 Y| ^" CL CL CL CL CL OP OP OP CL G B GF I4^ H  J J}e zB}f JIN M qP N  BO  LP 4A]Q 7SR 8OcS 9n T :@0V ;\ X =BGY ?D[ @\ AO^ Da_ E| ` F@a I|#b J{Rc Kx\ MCL NCL OCLg Rj6 TCL VCL WCL XCLm [Fn ^~o _Rr aCL cCL dCL eCL fCL gCL hCLw k@x lIpy nQ  oOP{ [ | b} u ~ ] B! EI @0~ OP P}W | CL E C}y F,. GSCu CLt CL D pG  jm 5 Ij6 G݄ CL CL: CB; Fh< S%? }I OP CLB w C T=D @.#E j34F @#G NH Dg? L _ffM WzN  @pO  F'P  D3Q  CR  BgT  D}U  D&V  D  OP  CLY  | Z  uD  OP  CL]  hr ^  k="  OP  CLa  of  OP  CLd  AK  !OPf  $^  %CLh  '{= i  (Si=  *OPk  +N| l  ,f m  -fn  .qp o  1b;p  3\=q q  4S r  5WH s  6Jܪt  7Lpu  `W  aOP  cCLx  eC=y  fTz  hKc  jOP  lCL}  nH9Q~  pD  qCI  rC&f  sOP~  uCL  w}   yM   zH  {|Y  |@  ~CL  C  CL  OP  @  CL  OP  A  CL  OP  G  I&Z  OP  CL  CL  K   Yp  Uvg  Mff  GF-  Gٚ  K=q  J(!  ~&f"  c3#  Tf$  Jb%  KS&  K'  K(  }  CL*  (DY  +CL-  -AAh  /OP  1CL0  3t 2  5E|3  6F*4  7BN  8OP6  :]  ;CL8  >Ae  @CL:  BH  ECL<  Gw =  ID  KOP  MCL@  PLA  QE9B  RJ&  TCL  UCLE  Wn0 H  Y{I  \w?   _me   `n   aG )  bI=  cFxC  B   mv   H  E  x  EV  O  I(  J  r   JP  l   S.  }  L  Ls  g+   J  m  CL  EN  qg  OP  CL  CL  CL  CL  CL  CL  CL  Yg  Ng  avg  I34  Hz  Pff  CL  CL  CL  CL  CL  CL  CL  ]  CL  CL  CL  N  CL  C  CL  CL  Aq  CL  CL  CL  OP$  H|%  IM&  Kjq  CL*  E,  V@  OP.  P/  CL  CL  OP  !CL3  $kh4  &A{6  ([ 7  )P8  *S,9  Ul:  Wh ;  Xpg<  Yl  ZOP>  [Tw?  \D@  ]DA  ^W  _OPD  `TE  aDUF  bD8G  cPK<  eU  fZ4  hR   i_   l`X  mu   nm4   ol   pp$   rr !  uCL  vCL  wCL  y_ [   |CL  ~k   y]w   C  h     r#   CL  CL  CL  CL  CL  E  H]X  z)B   iS  ]   fJ   jb   hTQ   n  B  P6R  x  @   B   Oqa  b@   D  vAlCQ  ASR  BOcS  Cn T  E V  F\v` X  GBGY  ID[  JI\  KVuU^  Of_E_  P| `  Q@a  S@b  T@c  U}W   WCL  CL  CLg  j  CL  CL  CL  CLm  F{n  \o  RI  CL  CL  CL  CL  CL  CL  CLw  B\x  Juy  UB  OP{  [33 |  cS}  u~  ]  Bf  E?  ~ ~  OP  Qg |  CL  EL  CG   F  Iu  CLt  CL  D  pG   kn 5  Ic6  G  CL  CL:  C;  Ls<  T?  }I  OP  CLB  w% C  SD  @E  YHF  z >G  ^QH  D' L  _M  W\)N  @BO  EP  D Q  C޲R  CT  D U  DlsV  D8  OP  CLY  |& Z  t  OP  CL]  HhJ ^  Ik  KOP  MCLa  OoK  QOP  SCLd  U@  WOPf  Y^  ZCLh  \{ i  ]X;  _OPk  `N l  ag\)m  be n  co0 o  fap  h[z q  iSQ r  jW s  kJt  mLttu  nX  oOP  qCLx  sCy  tPzz  vK  wOP  yCL}  {H[~  }D]  ~C  C'  OP~  CL  ~z   Md   I   |  @3  CL  D  CL  OP  @f  CL  OP  AS  CL  OP  H8  H  OP  CL  CL  Kg   v  V,  N  G+7  GW   Kk  J!  s34"  T#  I $  J}3%  KEF&  KA' K( B CL* D CL- A+ OP CL0  sl 2 "Ee3 #F4 $BK0 %OP6 '] (CL8 *AAh -CL: /I : 2CL< 4v = 5C 7OP 9CL@ : Af4; BpFg< Cls3 DOP> ET+? FDɔ@ GDVA HWY IOPD JRwE KDQF LD8G MPI PUvg QZ4 RQf S_  Vd,q WuV  Xm4  Yl  [o  \rN ! _CL `CL aCL c^a  fCL ij  jI kC lgn  n qr  tCL vCL wCL CL CL E H` z %  i ]  f  jb  h7  si B P* x[: @, B޸  N5 d) C v-  QB2  uD  bc3 ]3 ^  CL CL CL CL CL OP OP OP CL F# G-  I,3  H(  J# J#}e nY}f  K] M &q|} N (BO )NP *A5Q -SxR /OS 0{w T 1w V 2[< X 3B>Y 5D[ 6c\ 8V ^ ;d}_ <| ` =@ۘa ?@ b h@c i|\ lCL mCL nCLg qk sCL tCL uCL vCLm zFJn }~Lo ~R CL CL CL CL CL CL CLw Ax Jy Q OP{ Z | _} x ~ ] B E  ~ OP QJ | CL Ec CA E O`u CLt CL D p/  kO 5 I\O6 G CL CL: Cpi; J< T-? }T OP CLB w% C RQ;D @ ?E ^F tG `\*H C L ^M W\)N @#O ERP DQQ CR BT CU DVV Dd OP CLY ~ Z tz 0OP 2CL] 4h ^ 5kQ 7OP 9CLa ;o =OP ?CLd A@`2 COPf E^ FCLh Hz i IV KOPk LN\ l Mf\m Ncpn Pnn o Rb<)p T[ q VTQ r WXu s XJɓt YLw0u Z^S \CL ]CLx _Bɀy `Iuz bK cOP eCL} gH~ iD9 jB kC> OP~ CL ~#  M [  l hٙ {g CL D CL OP C3m CL OP A CL OP H) Hi OP CL CL K)  Y@ Ti M G: Hc Kz J! M" @# cs3$ Js3% KD^& K<-' K( {a CL* D CL-  A  OP  CL0 sF 2 EOE3 F4 BW OP6 ] CL8 A  CL: IΘ !CL< #u = $C &OP (CL@ +LCA ,DB .L 0CL 1CLE 3m<8 H ]}P#I `]^  cnB  dn`*  eF/ fIL\ gF hB  ime  jH  kE mx pEV rOp tI  uK xr  zJP }m  ~Sz }( L LlA D  J|1 m CL E pT OP CL CL CL CL CL CL CL Y#3 P b KR H O CL CL CL CL CL CL CL ] CL CL CL M CL CU CL CL Bɀ CL CL CL OP$ H% I7`& N CL* Eق, V`F OP. P+ CL CL OP %CL3 (kP4 *A{6 ,_ٚ7 -ZL8 .U 9 1m: 3g; 4rl< 5oy 6OP> 7Th? 8DT@ 9DA :W ;OPD DЁG ?PB BUc3 CZ4 ERY F_  Iex JtxY  Km  Lll  Mouq  Or]\ ! RCL SCL TCL V^  YCL [jSk  ]@}B ^Cp _g/   q  CL CL CL CL CL EO HU/ zF^  i ] = f/  jD  h  rf BB PM w˜ A  B޸  N~- f C vW  Mm  rf  a [ ^  CL CL CL CL CL OP OP OP CL FQ G- I& H8, J# J#}e H-}f KUy M q N BO MeP A,XQ  T9[R !OS #@T $0 V %\H X &B>Y PDSS[ Q\ RS+a^ VbM_ W| ` YB a ZBb [C34c \A ^CL _CL aCLg dj fCL gCL hCL iCLm lGn p|\o qR^ sCL tCL uCL vCL wCL xCL zCLw }Cqx ~LBy R OP{ Z | cc} vq~ ] CE E B-~ OP L | CL EH C4 E Mu CLt CL D> pr  j 5 IB6 G CL CL: DY; Hj< U4? | OP CLB wl C P D @}E W\)F tHG RH C L bfgM Y >N AO ETP DQ CR CvT CU D@(V D4 OP CLY U Z tz  OP "CL] $hJ ^ %j 'OP )CLa +n -OP /CLd 1@Q 3OPf 5^ 6CLh 8z i 9N ;OPk en ?oq o Ba5<p Da q ET r F[ s HJt ILzu JT LCL MCLx OAy PJ';z Rj;M |CL }CL} G~ D> C C"  OP~ CL }~  L'   i3 |34 CL DZ CL OP MD CL OP B CL OP Iy9 H OP CL CL K  g) cC4 r` F F: J0 I! Qs4" @)# aY$ Jj% K=& K١' K( }~ CL* D CL- A OP CL0 r 2 E=(3 F|U4 B, OP6 ] CL8  A+  CL: I CL< u ~ = Cμ OP CL@ LA DELB EH- GCL ICLE KmYk H LHYvI Mie!  Pn}[  Qn  RF SIZ TF: UB  Vn  WH YE [x4 ^EV _Oy aI~ bK er  gJP jm  kLv m}( nL oLn rDj  sJ|1 vm xCL {E |pT }OP CL CL CL CL CL CL CL Pg OFf `  K H=q Op CL CL CL CL CL CL CL ] CL CL CL M CL C< CL CL A CL CL CL OP$ Hn% I->& I CL* E״, V% OP. P',  CL  CL OP CL3 k\4 A{6 Ul7 R338 D@9 l:  e; !q9< "l&g #OP> $S? %D@ &DA 'W2 (OPD )R^E *DHF +DG ,PA /Yp 1^c3 2U 3_1  6dQ 7txY  8m  9l  ;o,|  EO?Cj@EADG%uFCLtGCLIDeJpG Lj 5NI$6OGQCLRCL:TF;UKG<VUE?W| YOP[CLB]w C^OD_@ ?Ea_(Fbt(GcKHdCw LeV8RMfQ.Ngt >OEPCBQCRBgTCݪUD$$VD#OPCLY~OI Zt/ OPCL]h ^j OPCLan OPCLdAOPf^CLhz iG>FOPkN_ lj33mgnp oa8pZf qT rX=q sJLtL~zuGCLCLx@yOX$zhtCLCL}GB~DD}C" OP~CL}h  L-  { _ |4CL ECLOP VU+CLOP B#"CL%OP&Ig")I|- +OP-CL.CLYL Zf|[`\W&g_FaF+bJ{cI:!d@4"ef#fMg$gJ^K%hKz&iK'jK(kDmCL*oD- rCL-tAvOPxCL0zr 2|E+3}Fc4~BnOP6]CL8A+CL:I=CL<u65 =C{OPCL@L_AD#BMCLCLEn H@mIjQ n n GIZFB nB IwExEVOIK r JPn% T<}(LLqD@ JmmCL!E"r1#OP%CL&CL'CL(CL)CL+CL,CL/Ng0Ng1d2J3H=q4O\6CL7CL8CL9CL;CL]?CL@CLACLCMECLGCICLJCLLBwOCLPCLQCLSOP$THκ%UI$&XS [CL*E״,WOP.OCLCLOPCL3kx4A{6]L7W8AS39l:cg;n<kfOP>T^?Dt@D7AW!OPDTmEDF7FDGP=Y6g^FfU_ `t mi l n qHF !CL CLCL\ CLj DVBcg b q^ CLCLCLCLCLEHzr i ] = f ii gT oBP2v7BXBp Oh Ba#v4 LKu. Ps Qa`R\FfS^ TCLUCLWCLXCLYCL\OP]OP^OPaCLdF|eGfIgH kJ{lJ{}eLKw}fIKp Mq- NBOMPAQcQTROSp3 T@5V]# XBkYDd[<\[q^fp3_| `CaEqbEcACLCLCLgj CLCLCLCLmH\pn|goSY CLCLCLCLCLCLCLwC\xKkyQzOP{] |b}tɨ~]DEz @΢~ OP#P |&CL)EUo*Cq$+E.Lpu0CLt2CL4D|k5p 6jm 58IS6:G>;CL=CL:>F5;@K_<AV:-?B|j DOPFCLBHw CIN0 DJu ELXFMuzGNRHOCV LxUMyPHNzsO{DP|C*Q}CaR~BTCUD VDɲOPCLY} ZtM OPCL]hE^ ^i OPCLanQ OPCLdByOPf^CLhzT iHHOPkN}M li\)mgnpff oaWp] qV r\ sJtLuF\CLCLx@JeyP=ziCLCL}Ge~DʹEXC<OP~CL}h K BhfACL DCLOP ]T]CL OP B9  CLOPHIW OPCL@CLCLf DkEcGZIF_KEMI4NH!OFY"Ps3#QY$RJQ%SK&TKA'UKD(X|C [CL*]DB`CL-b@dOPfCL0hrn 2jE3kFO4leoCL6p]qCL8sc vCL:xI {CL<ua =CμOPCL@LgAD#BM֯CLCLEpPL HHIY n n G4IiNF5B n}[ IwExEVOIKr JPn Lv}(LLoC Jmo& CL EtOPCLCLCLCLCLCLCLPgXd<KJG RQ"CL#CL$CL%CL&CL(CL)CL*]+CL,CL-CL/M0CL3C05CL6CL8A:;CLT?D@DAWkOPDR̿EDCFDGP2UZ3Qf`. _FtV mi l n q !CL CLCL`x CLj } C=gX @f q3 CLCLCLCLCLE~vG%zcz i] f7 ixB g r#3BRv}CB޸  NJ i B6u 8U7 ;t <`=[>^ ?CLACLBCLCCLDCLGOPIOPJOPLCLOFbPGQI$SG-VJWJ}eY=}f4K& Mmq3 NoBFONeBPA`QT"ROSo T@V]LM XBYDh[a\QM^cd_| `BaBbDGcFCLCLCLgjC CLCLCLCLmG5n|oS/ CLCLCLCLCLCLCLwGxKyR34OP{\ | c<} v>7~ ] C E> BD~ OP P%\ | CL EVW C E PJu CLt CL C p/  "k1' 5 $IS6 %Ge 'CL (CL: *E; +Hӻ< ,V? -|`  /OP 1CLB 3v( C 4LD 5x E 7d34F `|QG aQH bB| L cVM dR34N euzO fDP gCaQ hCvR iCT jCUU kCV lDR mOP oCLY q~; Z rsF  tOP vCL] xh ^ yjD  {OP }CLa n4a  OP CLd B? OPf ^ CLh z i Ls OPk Nf l iGm c=qn nc o `p [u q T r W\ s Jt Lu Hf4 CL CLx @-Sy Jz a CL CL} Hd~ E F C  OP~ CL ~OI  Kc;  F @) Fl CL  D CL OP  \e CL OP ;BZp =CL @OP AH DHz  FOP ICL JCL ML J  Nk Od3 P[ SF@ UE VP WH\)! X " Yp33# ZHf$ [JE% \KN_& ]K' ^Kz( aFv  CL* C CL- @ OP CL0 r# 2 E323 FQ4 M CL6 ] CL8 |&  CL: H[ CL< uD = C: OP CL@ LNvA DRB L CL CLE pY H |HI hx|  B  B  GC IiN F/ B  n  I/j E x  EV O? Is K  r  JP mYk  T }&X L Lo D  J_C m CL E sl OP CL CL CL CL !CL "CL #CL &Yg 'Y (c *IQ +GH TR{ VCL WCL XCL YCL ZCL [CL ]CL ^] _CL `CL aCL bN dCL gC iCL jCL l@Q nCL oCL pCL sOP$ tH(% uI& xM  {CL* }E״, ~V\ OP. P CL CL OP CL3 kD54 A{6 Q7 O48 D9 lC: e; p< m OP> T? D@ D?A WQ OPD UE D>F DG P _g e \6f `  _A t1  m  l8  nB  p< ! CL  CL CL \Rp  CL iމ  D C/ g   qt  CL CL CL CL CL !Ey  "G %y  'i +] = ,eT  -i  .g  1sL 4B7 5Mf 6v 8C_ :B  =Oe >c` ?M[2 Bu  CJ  Gk@  Haf IZ3 J^ KCL LCL NCL OCL PCL QCL TOP VOP CL F GM I$ H J J}e @W }f JX M q N B$O MP A>Q U,R O+S o T h V [ X BY Dk[ \ V{^ bk_ | ` Bfa B>b C+c Bf CL CL CLg j  CL CL CL CLm Gv9n |go Q(  CL CL CL CL CL CL CLw DHx Nky U# OP{ Y | a}} v ~ ] C EK$ CH~ OP N | CL JEUo KCfA LE OI2u RCLt SCL UD@ Vo  WjD 5 ZI@6 [G ]CL ^CL: `E; aFh< bW;? c|5!  eOP gCLB ivܹ C jKTD kh E m]RF nsG oVffH pB֝ L qZM rSHN swfgO tDP uCQ vCR wCT xCU yCV zD {OP }CLY @Z s)~  OP CL] hr ^ kh  OP CLa n  OP CLd v  CLf ^ CLh y i O  CLk N7 l nm gn Do `p ` = q Z r Y) s Jt Lpu I6 CL CLx  y Lڗz X. CL CL} H ~ E= FNCOP~CL~OI K% CfzffBCL D"CL$OP 'dʨ*CL-OP.B.&0CL3OP4H@7Gc 9OP;CLCLCLEo+ HGh?Ij B B FIwFB n I=ExEVOI2K#r JPm OP}LLqC J_Co8CLEs(OP CL CL CL CL CLCLCL^I34?GH@Q=qBCLCCLDCLECLGCLHCLICLJ]KCLLCLMCLOMQCLSCnUCLVCLXB"[CL\CL]CL`OP$aHi"%bI &dOhxgCL*jE״,kUlOP.mP%oCLpCLrOPtCL3wkKS4A{6]97S8K9l:yY;wL<s9OP>T*?D@DAWjOPDTHED<@FDGPA$agl^PaK dsk m7 l8 me p^ !CL CLCL^ CLi }h D;gL F qes CLCLCLCLCL Eq Gz % i] =e i g p@B TY!wg"CA:$B޸ 'N(^Cg*Ẽ-u} .RYV 1{L 2a6f3[f4^6CL7CL8CL9CL:CL;CL?OPhOPjCLmFnGpI&qHtJ{uJ{}e[}f UK Mq3 NBOMPA-QUK-ROSoXB T~ V[ XBtYD\[h\Uۼ^e_|U `AaE&fbERcD}qCLCLCLgj/ CLCLCLCLmG:qn|goQM9 CLCLCLCLCLCLCLwB=qxIByT.OP{YUV |cq}vn~]CV$Ede~Ü ~OP0O |2CL5ER6C<7EV;Iiu=CLt>CL@DcBo9X Cji 5EI-6FGHCLICL:KE#;LM <MWҶ?N|` POPRCLBTv( CUUEDVo EX]FYw >GZKH[B L\UpM]QN^uO_DP`CuQaCRbC TcCUeCVfEBgOPiCLYk@Zt4 OPCL]hS ^k OPCLaoXB OPCLd|= CLf^CLh{ iOCLkM@ ln =minD oa8p_p qW r[8R sJzytL]uI}CLCLxc yP8zQCLCL}G~E1FNCOP~CL~s J JpC GICL  D CLOP jjCLOPBCLOP H0#G %OP'CL(CL+K. ,hg-a33.XFg1Fv!3I{\M]K!^t"_cs3#`F $aJ/ %bJd&cK)'dKmP(g{ jCL*lCScoCL-q@sOPuCL0wq3 2yEy3zFl 4{CL}CL6~]CL8{ CL:O CL<t =COPCL@L8AD8BGKCLCLEof H~0I_ B B G4I>G )B oK IL\ExEVOIS<JRr JPme S'|aLLqCn JPmCLEslOPCL$CL%CL&CL'CL(CL*CL-Yg.Yg/avg0IQ1J2Op4CL5CL6CL8CL9CL:CL;CL<]=CL>CL?CLANCCLEC$GCLHCLJ@MCLNCLOCLROP$SHL%TIq&VIQnYCL*\E؛,]U^OP._PRsCLCLOPCL3k,4A{6Q7Ol8Es39m%:w;vy<rgOP>S?D@DHAWOPDU-ED>FDĽGPK<ci`La bso mv l mi p3 !CL CLCL\ CLi I :C'fJ dgqHF CLCLCLCLCLEoGzr i ] ev  ii  gjU sC~OfzFCBٚ OM[9D!u "M.{ %rDD &a3'[3P^RCLSCLTCLUCLVCLWCL[OP\OP^CLaGzbGdIU eH_hJkJ}ewM}f@Ko MqB= NBDONPPA QUVROSo,| T~b V[J XBtYDRY[c\V^cƕ_|U `A)waCbBqcBRCLCLCLgjn CLCLCLCLmGn}VgoPK CLCLCLCLCLCLCLwF{xK yU#OP{Y |`H}ui~]C'EDAz~ OP#P |%CL(EX')C+E.N0u0CLt1CL3Dm5o 6j 58I\69G;CLEZ;?JE<@XJ?A|C COPECLBGv CHTTDIs EKi FL|{GMKzHNB LOVuMPRpNQu\*ORDPSCQ|CvR}C0T~CxUCVEOPCLYAZs)~ OPCL]h(# ^l5h OPCLao OPCLd@CLf^CLh}T iQ5CLkM lnpmhnIoa@p]Q qU rX sJNtLIuHoCLCLxFv yOzRCLCL}G&"~F F'COP~CL} JZ JBɚFlCL DCLOP n CL OP ACLOPF'G# OPCLCLFK Gi0HcI[<LFNJ4OO:PM{!QF "RiL#SLY$TJ$"%UJd&VK^'WK(Z}h ]CL*_C6]bCL-d@bfOPhCL0jq+ 2lEd3mF[4nBspCL6q]rCL8t{ wCL:zV8|CL<~w3 =C.OPCL@L::AD4BDXCLCLEof HI IiG B B GnI>GB B IZEyEVOIS<Jgr JPme PW|aLLqC JBUo8CLEsTOPCLCLCLCLCLCLCLYgYgavgF{ E!Lp#CL%CL&CL'CL(CL)CL*CL+],CL.CL/CL0Ns2CL5C7CL8CL9B1 CLAOP$BH8,%CI&FSCL*E,U|AOP. P  CL CLOPCL3kFX4A6X7Y@8FFg9m:vf; v4<!s"OP>#T7?$D}@%D|A&WT'OPD(TKE)DAF*D[G+PtX.m/t1j2bV 5]!6s( 7mh 8l 9mYk ;o !fCL gCLhCLj]n mCLoi pw rCsf/ uxq9 {CL|CL}CLCLCLElbGz i+]la7 qHF gM nLC0Q4$@{$B?B N(M9@CuZ O r{ aff\C3^CLCLCLCLCLCLOPCLCLGnGI4^GJ\J\}euXSc}f3K Mp N-B O.NP/C Q2UZ`R3OmS5oK T6} V7Z X8B}Y:DH[;.\I?G&"@B AB BIiNDEFxIEVJO/LI~MJPr RJPUn VQX}eYLZLnC J3mCLEaqOPCLCLCLCLCLCLCLYgYgcG G _ > CLCLCLCLCLCLCL]CLCLCLMfCLCCLCLAҩCLCLCLOP$HE%H&L"CL*EG,UIOP.PCLCLOPCL3k4A{6Ul7W89 m: wY;uٚ<rs3OP>S~?D@Dv9AVҚOPDTPED5FDGPEwi|pgfcvN "c;N#rO LmYk Ml Nm Po !SCL TCLUCLW^5 ZCL\i ^J_Du`f(r aC` bq eCLfCLgCLiCLjCLmEcYnGqy si2v]xkK yp$ zg!4 }pfD(SCUAqBH N]GeG߉u Rh j a[3^CLCLCLCLCLCLOPCLCLHNGHIGJ\J\}eaZkA}fKԢ Mq NBOMzPA{QU^.RO6So T } V!Zf X"BY$D[%g?\&R^*d_+|U `,@!a.Cb/ET{c0A}q2CL3CL5CLg8jV :CL;CL _ > CLCLCLCLCLCLCL]CLCLCLM;CLCUCLCL@nCLCLCLOP$Hl%H&L&xCL*E,TkOP.OCLCLOPCL3j14A{6J@7H38v9nA:x3;y9<u OP>S?D@DdAWh!OPDU>EDPFDGP6Rjq gFg c 5d6r 7mJ 9l~k :l ;oXB !>CL ?CL@CLB\Rp ECLHi I@JDKf LDt Mp PCLRCLSCLTCLUCLXEbqYG\z[ _iwbb] =ck. dp3 eg hpfkD&mSnBoB78B NnLG_[Gu6 K s al[Ff^CLCLCLCLCLCLOPCLCLH9GHo{FYJ =J =}eL[O}fL'Q M q|} N BO O-P At@Q UiR OS @T }= V Z; X BvY D1[ a\ Oٚ^ db_ |U ` B a @pb Ac Aٚ CL CL CLg #jB  %CL &CL 'CL (CLm ,GN^n /}o 0Oj  2CL 3CL 4CL 5CL 7CL `CL aCLw dAx eMy fU# gOP{ jW | mcv} nt~ p] sC tEgH uD_~ wCL zOIc | |CL E  H E PQu CLt CL Ep o  j`B 5 I86 H@ CL CL: DX; K< Y? @ CL CLB u C PiD 0 E gF yG X\H Bc L ]LM MGN rRO DiP CQ CR CT CK\U C~V c; CL CLY AZ }  CL CL] f/ ^ B CL CLa C  CL CLd B CLf ] CLh ' i Qc CLk N l D m (B n +[3o ,amp .dG q /^8R r 0az s 1JDt 2Ku 4J 6CL 7CLx 9r y :MeTz CL ?CL} AG} ~ CF4 DE Gy  JCL~ KCL M}X  OI  Psf Qlf Rp TCL  VEG YCL \OP  _i cCL OP A] CL OP Fc E>  OP CL CL Lm  H { | F$ H L4 K ! @3" mY# G$ JS% J!& K ' L'( {a  CL* B5 CL- @r OP CL0 o 2 E3 HC4 B CL6 ] CL8 y  CL: KT CL< u = aV "CL #CL@ &LA 'EGB (Hq *CL +CLE UrN H VLI Wq?  ZB  [B  \GC ]I/ _GC `B  aB  bIw cE ex hEV iO/ kHI lKj ooA qJP tB  vO x}( yL zK:[ }D@  ~RQ; m CL E t OP CL CL CL CL CL CL CL Yg Yg cVg G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL M CL D CL CL Bk! CL CL CL OP$ HY% I& OL CL* EG, T OP. O} CL CL OP CL3 j4 !A{6 $Q37 %L8 &E`9 )n: +z3; ,ys4< -w` .OP> /SC? 0Dac@ 1DSA 2V  3OPD 4TuE 5CF 6D|G 7O  9j  :of  B  O G Gh  u6  Ui  sU  `3 \Ff ^ CL CL CL CL CL CL OP CL CL H-J GkZ H Fy J J}e W[}f L M q- N BO N P AcQ U0R O+S At@T | V ZJ* X CVY D٦[ H\ IP{^ Ma_ N|U ` PCa QCb RCc SDG UCL VCL XCLg [j6  ]CL ^CL _CL `CLm cHVn g~4o hO  jCL kCL lCL mCL nCL oCL qCLw tBfx uN=qy vSH wOP{ zX | |dL} }v2~ ] CĢ E }; ~ CL O | CL D B  E Mu CLt CL EV oE  i 5 IQk6 HO CL CL: Dg; H< WIw? A+ CL CLB u C R$DD u E jpF |QG `H BL L ]\)M nfgN IYO DaP C_Q DR CbT CUCV_ CLCLY} Z~ CLCL]fTQ ^C!CL"CLa$C'CL(CLd*@R-CLf.]/CLh1@i2RF5CLk8N l9H=q m:F\) n=]o>aWp@`= qAY rBZL sCJXtDKcNuEJ<GCLHCLxJ yKPMzuM"wCLyCL}{G~}F~F O CL~CL}I I nkIl|CL EѕCLOP hCLOPAxCLOPF E> OPCLCLL I^f@33@^gFoH&fLYKk!Df"l#N$J %J&K<-'L2(~; CL*B+CL-@=OPCL0o۔ 2E%3H[4ByCL6]CL8y{  CL: JCL<u' =Uϴ?CL@CL@CLu{ADE7BEA|GCLHCLEJsU: HKKFIM@< OB PB RGQSI/TGQUB VB WI>XEZxg@[@ ^O`IgbLeoAgJPjB kQ m}nM oJPrDj sS"un3wCLEsaWOPCLCLCLCLCLCLCLYgX)kS3___CLCLCLCLCLCLCL]CLCLCLMCLD1CLCLz[ CLCLCLOP$H%IE&JnCL*E, g8 OP. O, CL CLCLCL3j4A{6Qg7P38F 9oq:Al;@<y!CL>$]s?%DB@&D?A'V(OPD)UqE*C8F+DG,O0jP1oi2g3d 6bk7s 8m<8 :l~k ;l5h f_?| `AD XaBCQbCDncEBkGCLHCLICLgLj NCLOCLPCLRCLmUHnX~yoYO [CL\CL]CL^CL`CLaCLbCLweFxfP8RygTLhOP{W |b}w~]DExBq~CLP` |CLDBh:EFiuCLtCLEQov i 5I_6GCLCL:Cμ;Hgp<Y?ACLCLBu CL~D EqHFAGQzHB]~ LxMnuNIQODYHPCIQDRCYTC-UC%V_CLCLYz Z@C CLCL] fE ^ DCLCLaDCLCLdAҩCLf]CLh@XiQ"CLk%N l&Iff m'G n*\o+aup-^ q.X r/[ s0Jat2K+u3Ia]CL^CLx`@AyaKzcM?eCLfCL}hG~jFlkF@]l@{nCL~oCLq}f tI uD(vClw@yCL {F?~CLOP hCLOPCeCLOPFF OPCLCLLq XYNgNgGL)QO!"`#O$J j%KT&Kl'K*(H6CL*BɀCL-t CLCL0l 2E3H 4BCL6]CL8y@ CL:M]]CL<u ~ =I(-%CL&CL@(K\WA*EB+AՐ.CL/CLE1tY H3@gI6jy 9EV:EV;EVEV?EV@EVAECxFEVHOJI~KLNoAPJPSB TLvV}ȈWM XIA[Eff \Q^mf=CLE&saWOPCLCLCLCLCLCLCLYgYgcVgFCDffCLCLCLCLCLCLCL]CLCLCLMCLD CLCLw CLCLCLOP$I%I&LCL*Fm,^FOP.O/CLCLCLCL3j4A{6Uf7O8}9p{:Ap;@f<| CL> Tk?D@@D<@AWaCLDTC4EC[FDGOrtIz3q3eI !["s #m- $lo %k/ &nn !RCL SCLTCLV]b YCL[iމ \Cw^C_f `FVX apӖ dCLeCLfCLhCLiCLlEUmH-Jp{ riYu]wkQ xp| yf/ |ofDdT6z7 Z>UB޸ NzHwHRu6 Q[ o `S3[C3^CLCLCLCLCLCLCLCLCLHA<G`{G$FlJ\J\}e`[I}fLXx Mq NB)OOPB!QU/RO_Sp T|q7 V Y X!CEY#D[$\%S^)c-_*| `,B^a-Cb.Cpc/Cp1CL2CL4CLg7j 9CL:CL;CLUD?Dc3@DXUAUpCLDSECFDGU?v{4sf҄ dr1 m lo k_ n% !CL CLCL\~g CLi| @QCμe 漱pӖ CLCLCLCLCLE;H6[{ i]j p3 f ,o/DH1O,4uD 6Vk8B^ ;P cCCLCLCLgj9 CLCLCLCLmGn~goNn CLCLCLCLCLCLCLwGffxIqyS{OP{V"# | bx} w/~ ]CE!IB>~CLOc |CLDbF/Ew!P u#CLt%CL'E(o33 )i 5+I6-H:.CLXCL:YB;[I<\W?]Cw`CLaCLBbv|%CK&DJ'EJB(H}R KCL*MBPCL-Rx UCLVCL0Xl 2ZEO3[Hϣ4CCL6]CL8y CL:Q݇CL<t =FCLCL@JAE{BAnCLCLEu H}bIj EVEVixB ixB ixB EVEVixB EzJEVP^HIK1Cr K EVLF`LIg+ SU?D\@DAUhCLDFEDdFEGU:y4vg `$q)g mm la7 kZY m !CL CLCL\ CLi\ vt B)dq ԰YpӖ CLCLCLCLCLE"JHj|5! i]j p fM sYElP!r #R&B= )OR*G+G.uZ /M^ 2j; 4`i5WC36^7CL8CL9CL;CLCL?CLACLDHEG}xFG\GFJJNJ}eF@}f'L; MrV NB3ONt<PB=eQUROTSo T{[~ VX XCFYD [\Q^f:_| `AaGbHcCJ>CLCLCLgj CLCLCLCLmGQn~)oM^ CLCLCLCLCLCLCLwCaHxJW yV(OP{U |e)}v~]CN2E,A@~CLN| |CL D F EKuCLtCLE_n @ij 5BIg6CHECLFCL:HA";IKK<JR?KB}NCLOCLBQu CRQeDS@\EUizFV}GWbfgHXB LZELM[#N\daHO]DMP^C" Q_DtR`C?TaDUbD~Ve@hCLiCLYku Zl@.nCLoCL]qfE ^rEZuCLvCLaxE{CLCLd@CLf]CLh@۶iM=CLkO/ lLW mJ) nj@obp`p qWH r[ sJbtK uK_<CLCLx@4yLzMCLCL}Ge~GCFCAhCL~CL K_ TdQKCL  C CLCL \VCLOPGBCLOPI+H9 OP!CL"CL%MA &L 'D(BH+G-I+.N/M@!0y"1`#2Dy$3J[%4K&5JҪ'6In(7B9CL*;BN>CL-@| CCLlCL0nm<8 2pE3qH4rCtCL6u]vCL8yyz {CL:}HCL<s)~ =\8CLCL@ILAEoBDCLCLEup HIIem i| EVB ixB ixB EVEVixB BzJEVPmU~?nE@oD AUmCLD|oQ ED݄FE_GU>w|tg\ eu|p m lR k m !CL CLCL^ CLi| ECe E4 p CLCLCLCLCLEH|5! i]j  p3  fTj  p` Eƭ U7 t  TW\ B  Nb GX G9 u  UW  i  `Ff V3 !^ "CL #CL $CL &CL 'CL (CL )CL *CL +CL /HR 0GXU 1G 2FW 5J{ 7J{}e[&}fL% M ut( N wBWO xN P yBNQ |UR }O8VS ~ouq T { V XO X DFY D[ e\ Lg^ cq_ | ` Aa G@b ET{c CY CL CL CLg j  CL CL CL CLm Gvn ~ o M  CL CL CL CL CL CL CLw A(x N=qy UB OP{ Vfg | a/2} u_~ ] C E9 } ~ CL O | CL D؅ G|S EQ Fu CLt CL EJ (odZ  )i: 5 +I 6 ,H7 .CL /CL: 1@; 2I8< 3Q0? 4A" 7CL 8CLB :u C ;MD <@l&E >CF ?RG @rH AC L BEcM CBN ET>O FDISP GC*Q HDR ICKhT JDU KDkV N{  PCL RCLY Stz Z U@ WCL XCL] Zf(r ^ [D ^CL _CLa aEZ CL CLd Aq CLf ] CLh Ai M$ CLk PI l KL m I n is3o ap `( q Z. r \ s Jt Ku G CL CLx @&y Q}z K CL CL} Ge~ GU F= AF~ CL~ CL 7  K!  Vp S M CL  sF  CL CL   CL OP HY CL !OP "K; %Hi  'OP *CL +CL VMK  WJa XB[3 Y@g \G  ^S8R _W  `W\! atٚ" be# cH9$ dJM% eL1& fK <' gIA( hH~ jCL* lBE oCL- qy  tCL uCL0 wl~k 2 yE3 zI 4 {C* }CL6 ] CL8 y1  CL: F5 CL< r = Ko# CL CL@ JA EB Bk! CL CLE vܹ H @PI Y  ixB  ixB  B  B  B  ixB  ixB  B  i  zJ EV P'T ID K/q nP] L EV Lv @> L Ib g+  SCL ?CL @CL AN CCL FD HCL ICL Kw4  MCL NCL OCL PCL$ SK% TIR& WK CL* GO, ^ OP. OtE CL CL CL CL3 j=p4 A{6 z7 ey8 Q9 w: G4; I< D CL> U? Eb@ D%A Vr CLD la7 E E1F EkZG UFK {s3 @ x h{  di q  l9  lR  jH  mJ ! CL  CL CL ]  CL i  t/  Cw e  ]  ph  CL CL CL CL CL EG H |oQ  ir ] jH  p3  f7'  p< F S+ q  K BO\  IRM: KG< LGt[ Ou}  PK  Sk  T`f UV W^ XCL YCL ZCL [CL \CL ^CL _CL `CL aCL dH fG? gGm hF kJ nJ}e Tp}f LK M s\ N B}O M.P AQ UR OTS of T {3 V X X D GY D[ \ M^ c>_ | ` @a FaHb F c F CL CL CLg j{  CL CL CL CLm Fn }o N  CL CL CL CL CL CL CLwExLyUOP{V |cd}vrj~]!Bh"ED%}h ~'CL)Q |,CL/D0B1E4L-ou6CLt8CL:ET;o I 6?HACLBCL:DB};EHj<FQ?HB1 JCLKCLBut CvQrDw@EyfFzv\G{PH}C]? L~UfMQNf\*ODHPCMQD$VRCY1TDUDV[CLCLYt!N Z@CLCL]fb ^DCLCLaECLCLd@uCLf]CLh@iQzCLkPǡ lJ= mIz niob Ypa qZ r[33 sJ4tJuH'7CLCLx@;yKzL CLCL}G0~GfF6fACL~CL^ K ZXSpCL x CLCL K CL OP HCLOPCL?CLhCL$kK%lI$&oI˔qCL*tHW,u]~XwCL.z_ |CL}CL~CLCL3j4A{6p 7n8a 9y+:I`;K <GfCL>Ud?E@DAVKkCLDv- EEPFE:qGU/BFAh߾ aeq^J l9 lD j> m !CL CLCL_d CLj ^ EBejU a5ph CLCLCLCLCLE9H|ƚ jh,]jkK p< f nF-)V3mi 5L%7BG :Q;F]q!?e@"@]4#Ay2$BI3%CL&DJ'EI(H~@ KCL*MByPCL-R{ UCLVCL0Xl5h 2ZE3[I){4\Cl^CL6_]CL8xo CL:N͓CL<rN =FCLCL@IAEBB1CLCLEt4 HDzIm \ ixB EVixB ixB j i ixB i {?TEVPeI(K?oM EVLvAKJPI g+ SVPs?E\@DAVCLDu6 EEwFE@GUcF8I3Dyl% ^}q l lD jD l8 !CL CLCL\C CLiމ | A+e/ @!m ph CLCLCLCLCLEiH/} jp]j pA e q33F:V0"mYk $SL<&B *P&+G,GV/v4 0N 3`j 4`36P7^8CL9CL:CL;CL=CL>CL?CL@CLACLEHr5FG\GG<HFQKJ{MJ{}eX}f'LP Mr NBLOMxPBJvQV+YROCSAT{ VX XDHYD[\R^bX_} `BoaI{bIQcECLCLCLgke CLCLCLCLmGn~9oND CLCLCLCLCLCLCLwHǮxNy\OP{V |e }u~]C:E|4AZ~CLN` | CL D GIEJ6uCLtCLE{nT iQ 5DI6EIGCLHCL:JB;KJo<LR?MB}PCLQCLBSt CTQDUAEWiRFXqW GYJuHZC L[JM\CN]XpO_D8P`C]QaD<RbCeTcEUdDyVg~ jCLkCLYmsc ZnAKqCLrCL]tfm ^uE@wCLyCLa{E}CL~CLdAKCLf]CLh@iM_CLkQ>j lJ) mJ ni3obVqpd q^# ra sK tK uGCLCLx@yL7zzNCLCL}G~GF9ArCL~CL L ]f^ VCL  u CLCL CLOPI@CLOPNF !OP#CL$CL'O˾ (M)F)*B3-I!/d 0iT{1g !2_3"4Yf#5A@$6I%7LΫ&8J'9I(:CBnACL-C{Z FCLGCL0n% 2E3I<4 C CL6 ] CL8x CL:HCL<r =ETCLCL@ I>A"EFB#B(V&CL'CLE)u H*I?I+fc .ixB /ixB 0k_ 1jb 2jb 3ixB 5ixB 6j> 7i 9{fdEVePrgI~hK)kpmM pB rLvsAuJPvI8yg+ zS-Vr@?.F@/EA0V22CLD4s E6EYF7EVG8Ux;G#4m Ae6Cqٵ Dl El5h Fi Gl !JCL KCLMCLO]n RCLTiމ Uw VAeXe YCy Zp ]CL^CL_CLaCLbCLeEcfHH}| k5B]jk qt eн r0FDWz BBz QGKGv T a `Qٚ^CLCLCLCLCLCLCLCLCLHoGacG FJ{J{}eY[}fL@ Ms\ NBOLpPBx3QV`ROQKSAT{n VX XD$JYD?[!\"Mv ^%b_'| `)D7a*J)b+J0c,D.CL/CLYCLg\lgC ^CL_CL`CLaCLmdHxnh@ oiM kCLlCLmCLnCLoCLqCLrCLwuK xvN yw[xOP{{V |}c}v~~^CE>} ~CLO |CLDG߉EpF5uCLtCLEKnhs i 5I16I.CLCL:C4;H<S?BɀCLCLBsl CNDAkE^FkGHǮHD<@ LXMRNhOD5PCgQDCRCxeTEUEFV{ CLCLYr+ ZAZ!CL"CL]$gX ^%Ez(CL)CLa,F.CL0CLd2@5CLf6^7CLh9AKi:Sl=CLk@Q lBNǮ mCM nFioGbpIb\ qJZB rK[ sLK&XtNK#uOHQCLRCLxT@-SyURzWQͬYCL[CL}G~GFFB,B/CL~CL@C L> ^^4XgCL ~l^ CLCL ϫCLOPIΘCLOPNHGK OPCLCLM?S [hGCYJ?g34lEj!e"^Ff#Cg$Ii%M &J}'IB(~ CL*ByCL-z CLCL0ll 2E3IK4CD CL6 ] CL8y CL:DCL<qt =U}CLCL@ J˽A"EB#C0MCLNCLEPx+ HQKIRn UB VB WixB XixB ZixB [B \B ]ixB ^B`{PIcEVdP_fIgK?jq$lLoixB qLvrAtKTuIxE^ yS,V:?-F$@.EA/V1CLD3x E5EF6EVG7UL:F;JDbSK>cTEǮVCLWCLYCLg\lz ^CL_CL`CLaCLmdHgRng`oiNn kCLlCLmCLnCLoCLpCLrCLwuHxvQ>ywZRxOP{{W |dY}v~^D :ElU} ~CLSh |CLE KBjEMLFuCLtCLEeo{ j5@ 5I6INCLCL:A/;M<S)?BCLCLBs CO"DAE]Fl\GRHD{ L VM R+N fqO D- PCjQDLRC`TE UE=^VV!CLCLYr+ ZAt@CLCL]g ^ EsZ#CL$CLa&E)CL*CLd,: /CLf0^1CLh3Ai4T7CLk:Q l;Mp mCL@CL0Bk=" 2DE53EIX4FDHCL6J]KCL8Mt4 PCL:RBEUCL<Wj> =YDg\CL]CL@`K0AaF4BbCcZdCLfCLEhu HiS&I o7  [;  ixB  EV ixB  ixB  i&  !ixB  "ixB  #i  %{ey (EV )Ps +I~ ,L /s" 1JP 4ixB  6E 7A aL bIg5 eA  fS VQ? Fc@ E9A V CLD q E EچF EzG U] Gg K3 (F3 *rK  -d .s:  /ll  0l5h  1i|  2lR ! 6CL  7CL 8CL :\  =CL ?k  @s  BB? Ci  DO  Ep-  HCL ICL JCL LCL MCL PE QH T}X  VlZ Y] [n`*  \sU:  ]e  `o cF [i }  N` B  S M G1 Gp v cCL dCL eCLg hlT  jCL kCL lCL nCLm qGln t4o uPx  wCL xCL yCL {CL |CL }CL ~CLw JGx Sy cz OP{ X | a!} w~ ^ C EN ~ ~ CL QJ | CL E+ B F" Nu CLt CL E7 o  jl 5 I6 I_ CL CL: A/; Ls < S(? By CL CLB s8 C NWD AE i>F tG PH D2 L JM C\N YuO D+P CQ D^\R CT ESU E{V D{ !CL "CLY $r Z %A  (CL )CL] +h ^ ,EV /CL 0CLa 2Fi 5CL 6CLd 8@ ;CLf <^ =CLh ?AW3i @N0 CCLk FR: l GJ) m HI\ n KiLo Lcdp NcaH q O]\ r P` s QKUt SKu TE VCL WCLx @4y R*Wz L> CL CL} GJ~ G FK; BX CL~ CL @ N "  af a3 ^ CL  w  CL CL   CL OP JL CL OP PB R\  CL CL CL Kk  Zg Uf Q M' iǯ ok n0! j" _# I$ Iλ% N& K' I( GM? CL* C' CL- |C  CL CL0 qHF 2 F 3 I=s4 D CL6 ] CL8 y  CL: Ae CL< qV = G CL CL@ HJ_CA JF$8B KC MCL NCLE P|oQ H R@I VfF`  YixB  ZixB  [kK  \j ^  ]j ^  ^ixB  _ixB  aj ^  bj[  d{ey gEV hPe jIW kKCu ns qJP tixB  uDF- vAפ xL zIJ( }@'s  ~S7U ?8F^@:EU/A;U^ =CLD?qˈ EAFFBEnGCS`GX4HO$IJ(Jsz vdwuV xll yl5h zixB {kd !~CL CLCL[; CLll C>BEk Bq CLCLCLCLCLEfH5s} m^(] =ouq t ex rFX\}f LB: StG@G9vh. P* fU a9Qf^CLCLCLCLCLCLCLCLCLH7GG%G'lJJ}e[d}f L5 MOr NQB7OZJʅP[BnQ^W[R`OmSaq9 Tbw Vc\5 XdDlTYfD|[g\iR.^lf_m}r `oBapHRbqM!HcrDtCLvCLwCLgmQ CLCLCLCLmGn}LoQ, CLCLCLCLCLCLCLwJGxTfy]ǮOP{Zwx |a}w`~^CEA} ~CLOuc |CLE+BsFlO@uCLt CL EV o j5@ 5I6IuCLCL:A;N:w<To?CwCLCLBs)~ C NH\D!BE#`=qF${.G%VH&E@ L(XhM)SN*g*O+D%P,Cv8Q-DfWR.CT/E{U0EV3}~ 6CL7CLY9sF Z:B)=CL>CL]hi& ^iFlCLmCLaoF?rCLsCLdu@-SwCLfy^zCLh|Ali}TWCLkRp lJ mI ni oc!pj qb rb sKk~tKVuDCLCLx@XyNzzQ9CLCL}GJ~GFNBYCL~CLAs b6fb,]3CL @CLCL ߱|CLCLJ_CCLOP4m 5P 8CL9CL:CL=M >\X?W9@EVgCN;oEgJ>FkGl!HU34"IK9#JA$KId%LM6&MK"'OIڊ(QFv TCL*VCi(YCL-[w3 ^CL_CL0aq+ 2cFB$3dI g4eDgCL6i]jCL8z CL:ACL<qˈ =GuCLCL@J,AF$8BCMCLCLEzT Hv5I)c ,B -B .ixB /ixB 0ixB 2EV3B \ixB ]E_|(bEVcPPeI~fLjrlJPoixB pDF-qELsLtI0w}[z xXyEʘ{CLEJtqCLCLCLCLCLCLCLCLt6gvgDk3O:MRMRCLCLCLCLCLCLCL^CLCLCLN! CLCUCLCLz CLCLCLCL$L%Ig&KCL*K,YpCL.PRCLCLCLCL3i4A6Oc37N48I9A[:%L,;&M <'HC3)CL>,UP?-G@.EgRA/V0CLD2zcz E4FKF5EnG6T:G,;J1CLkAR> lBL{ mCJ{ nFioGcBpIr qJm8R rKm33 sLKtMK%ouOB-QCLRCLx|@Xy}R1>z~G:CLCL}G~GwFPB'CL~CLAHO cd^f_3CL { CLCL !CLCLJFCLOPnn Qj CLCLCLND8 N3WdRfNg{k >jJ>!c"[Ff#L$I1%M&J}'Iľ( CL*CCL-xt CLCL0r# 2F@3I4ETCL6 ] CL8 {/ CL:A CL<r@3 =H[CLDCL@FJAHFIeBICLCLMCLEO@C HPE%ISlf VWG XixB YEVZm [m<8 \ixB ]ixB ^m `i b} eEVfP^hIpJiLltdnJPrixB sDF-tELvK=wI0z|_ {SfFGRGRCLCLCLCLCLCLCL^CLCLCLNCLCCLCLy@ CLCLCLCL$K#%J& SCL*LZ,YxCL.OsCLCLCLCL3 i4"A6$O7%K8&KL9)A:+Ki;,Lɚ<-G/CL>2U?3Hf@4EA5V^7CLD9o E;FFVL"?H@EAPCLDv( EFFEGUpH&gKHFgw3 cwڭ l lD i[ k !CL CLCLbE CLo Aҩ Aҩ!n$ #wF&qJ )CL+CL,CL-CL.CL2Ef3H6~] 8n}<] ==tx >xt ?e[ Br<FFnGW)Jw KH$NB{ yTK {GT|Gw4 T ^D _K3^CLCLCLCLCLCLCLCLCLI){GɔH_)GJ#J#}e#y>}ffKt Ms2 NBOIPC" QXUGRNSpPL TIV qh X DoY Ef[D\E_q^HcV}_Jv `KA)waMYbNYcPTzRCLSCLTCLgWnk[ YCLZCL[CL\CLm_Gnc~odXD fCLgCLiCLjCLkCLlCLmCLwqR{xrTys_tOP{usH |w`aA}xqL~z^CE~ ~CLTy |CLE`MDDFpKG2uCLtCLDrE k 5J5e6ICLCL:At@;Q<Uo`?ECLCLBs CNNDBEaqFwfgGOqHF LX{MSNg+O D%P CQ DR CT EUFaV}T CLCLYt4 ZC CLCL]m- ^ G4#CL$CLa&GC)CL*CLd,AO/CLf0^1CLh3B\i4W7CLk:S l;K m=J n@hٚoAdExpCq qlif rmlff snK{toK,uqAsCLtCLxv@ywJ$zxI {CL|CL}~G~G<FNBpCL~CLC/M= cc_CL B}CLCL CLCLJ˽CLOPt Y > CLCLCLHJyCPJ^)dqap!V"IFg#s$I%Mb^&J}'I(@h CL* @=6CL-9}T VRCLCLCL CL CL CL CL ^ CL CL CL N CL Da CL CL z  CL CL CL CL$ L % IE& !R[ $CL* 'L:', (UJ *CL. ,FT /CL 0CL 1CL 2CL3 5i4 7AH6 bPS37 cQ 8 dL39 gB: iK9; jLP< lGf nCL> pW? qH@ sEA tOvo vCLD xsU: E zFF {EG |VL Fl Ic3 D xʏ  c x҆  l9  lD  i[  k/ ! CL  CL CL ^  CL ouq  wna  A o,|  F8  r]\  CL CL CL CL CL E H ~s  n ] = t4  x  e[  rFf F \i FFD E B\  UN5 G H[ w|  OO  a"  _f (L )^ +CL ,CL -CL .CL 0CL 1CL 2CL 4CL 5CL 8IX 9G ;H ~ ^ C> E ~ ~ CL XTF | CL EsQ D FF K2u CLt CL D> !sfg  "l 5 %J^K6 &J6N (CL )CL: +C; TPe< VUk? WE] ZCL [CLB ]s C ^KD _C! E abHF bvBG cRqH dF L fbGM g]N hq8RO iD$VP jCQ kDR lDT nF+U oFV r}R  uCL vCLY xua Z yCpi |CL }CL] n ^ GgR CL CLa G CL CLd AO CLf ^ CLh Bi TZ CLk S l L m K\) n jo d p m q c r f{ s Kt K4u B CL CLx @by T+z GC CL CL} GB~ GH Fd A CL~ CL D̘ hC  dA ep `3 CL  y  CL CL   CL CL "K  %CL (OP +k.  ,T@9  /CL 0CL 1CL 3a 5U 6Nd 7x :P <^Q =b{ >`! ?f" @]3# AHL$ BIЍ% CMat& DJ' EI( F@7 HCL* JAe MCL- O{a  RCL SCL0 UqV 2 WG}3 IJ(4 F CL6 ] CL8 w3  CL: B+ CL< m = EsZ CL CL@ SA FkB C CL CLE BcH c5SI r  YX  ixB  EV EV EV ixB  ixB  EV i  | EV P52 I\O L v JP ixB  Lv H6 K IF A#?  X Es CL E q CL CL CL CL CL CL CL CL } t6g I4 pp xǯ q CL CL CL CL CL CL CL ^ CL CL CL NH CL C HCL ICL Ku  NCL OCL PCL QCL$ TK% UI& WJ ZCL* ]K6, ^V7G `CL. cP^ dCL eCL fCL gCL3 ji4 lA6 oZ&g7 pWC38 qT`9 sCC: uV); vTI< wQ4 yCL> |X,S? }H:@ ~EA K CLD j E G-8F EmG X/3 H K! G yɯ  b| y<  m  la7  ii  k ! CL  CL CL ]K  CL of  vt  A pPL  Y rE  CL CL CL CL CL E HR ~  o6] =u6 y# e[ oG$ ZlEFFn A #T$H %HT(w3 )R ,_U .`#3/J0^1CL2CL3CL5CL6CL7CL8CL9CL;CL>I?G=@HeAG EJ#HJ#}e fۭ}f Jo7 M3+v N3+CgO3+F=SP3+H-Q3+cBR3+ OjAS3+ z$ T3+ SEV3+ @X3+FY3+J5%[3+]\3+R^3+h_3+D*`3+A a3+s34b3+wW c3+l3+CL3+ CL3+!CLg3+#uO 3+%CL3+&CL3+'CL3+(CLm3++G&n3+/9o3+0z 3+2CL3+3CL3+4CL3+5CL3+6CL3+7CL3+9CLw3+f3+?OP{3+hCG|3+iQΩ}3+j]~3+m^3+pCrO3+qF7 3+tpmy ~3+vCL3+xe7 |3+{CL3+~H3+Je3+I3+Nu3+CLt3+CL3+aC 3+s! 3+p > 53+K863+K3+CL3+CL:3+Fb;3+FC<3+Y?3+G3+CL3+CLB3+AqC3+RD3+E5E3+l F3+r\*G3+gH3+M L3+cLM3+]fN3+p{O3+LplP3+L8Q3+w| R3+x+ T3+N;U3+OV3+Hc3+CL3+CLY3+EOZ3+GgR3+CL3+CL]3+CD^3+Qj53+CL3+CLa3+Rj 3+CL3+CLd3+F?3+CLf3+^3+CLh3+Hi3+Q3+CLk3+[ l3+C\ m3+F = n3+go3+l!+p3+0pǮ q3+1k r3+2k\ s3+3M!t3+4LCDu3+5C=3+7CL3+8CLx3+:D- y3+;SEz3+K3+CL3+CL@3+NA3+K9TB3+E3+CL3+CLE3+JH3+II3+n 3+Y: 3+ixB 3+J|13+DQN3+DnQ3+ixB 3+ ixB 3+!DnQ3+"i 3+$|3+%D3+(PW3++J 3+,L3+/E3+1L3+2BV3+]O3+^O3+aP(3+bHЌ3+ch 3+fS3+P`?3+Jlf@3+GLA3+w 3+CLD3+pmy E3+H#F3+$G-G3+%[`@3+)pY3+*u3++n3+.Z3+/\3+0F3+1aY 3+2^D 3+3EV[3+5Ge!3+8CL 3+9CL3+:CL3+y3+qdB3+rOP{3+tu3 |3+uP1}3+v`7~3+x^3+{C3+|G%3+p- ~3+CL3+euq |3+CL3+Ht3+Jao3+I3+Ipu3+CLt3+CL3+d 3+uj 3+p" 53+K863+K3+CL3+CL:3+Fb;3+FC<3+Y?3+G3+CL3+CLB3+AqC3+RD3+E5E3+l F3+r\*G3+gH3+M L3+cLM3+]fN3+p{O3+LplP3+L8Q3+w| R3+x+ T3+N;U3+OV3+Hc3+CL3+CLY3+EOZ3+GgR3+CL3+CL]3+CD^3+Qj53+CL3+CLa3+Rj 3+CL3+CLd3+F?3+CLf3+^3+CLh3+Hi3+Q3+CLk3+[ l3+C\ m3+F = n3+go3+l!+p3+0pǮ q3+1k r3+2k\ s3+3M!t3+4LCDu3+5C=3+7CL3+8CLx3+:D- y3+;SEz3+7m<8 7k_ 7D7i 7}s7E,O7P'T7J7L7Fa}7L7@7Lv7O7P(7Hκ7h 7S7Pc?7J=@7GA7C7CLD7t E7H F7GKG7[-7kk37p7i7[/7_37FJ7` 7^ 7E7G!7CL 7CL7CL7c 7CL7AL7C7Ed7B7Ml/7|R8 7 CL7 CL7 CL7 CL7 CL7E7I7Az7s'7]%7A7m 7j" 7p`7!H37"[7#C7N 7QA5 7TX07W{ 7YJw7Z^ 7[NT 7^bf 7__37`I7a^7dCL7eCL7gCL7hCL7iCL7kCL7lCL7mCL7nCL7qL7sH 7tI$7uG7xJaH7{JaH}e7_}f3+iJ M7xN N7C7O7A9 P7HˊQ7gR7OdS7pA T7K"V7q X7FY7J[7ة2\7P ^7d_7wr `7C8a7o.b7qc7nW 7CL7CL7CLg7t6 7CL7CL7CL7CLm7Hvn7~o7{׷ 7 CL7"CL7#CL7$CL7%CL7'CL7(CLw7+KRx7,W\y7-^q7.OP{7/sQ |70P}71`~74^77Dt78F 7CL7@cm |7BCL7FI7GI@7HI 7KQbuu7MCLt7OCL7yg_; 7zv# 7{s`B 57~K 67K67CL7CL:7IE;7Q<7X??7H7CL7CLB7C/C7ND7EE7`zF7oG7VuH7N " L7_ >M7Z\N7m O7L8P7LvQ7y1 R7y{ T7O%hU7OV7HK7CL7CLY7DZ7G7CL7CL]7D_^7Q(7CL7CLa7Q-7CL7CLd7F7CLf7^7CLh7H@i7Nn7CLk7[o l7M\ m7O n7j@o7lp7r q7nR r7q\ s7MIt7L;u7CE7CL7CLx7Dy7SEz7Ik7 CL7 CL}7 H~7L<7LA7r 7CL~7CL7@Kp7BUQ 7DZ7EZ7FZf7HCL 7K}; 7NCL7OCL 7Q4y7RCL7TCL7VEZ7YCL7ZCL7\q 7]B7`CL7aCL7bCL7eLt 7gL7hE7i@{37lS77nfE7oj7pe4!7qEf"7rng#7s^$7uI %7vNf&7xLt'7zMp (7{C,37CL*7HV7CL-7H7CL7CL07D%27L®37MY?47Ew7CL67]7CL87F7CL:7CB7CL<7D_=7F7CL7CL@7N)A7K'B7Fi7CL7 CLE7 JFH7z*[I7j 7Yuc 7ixB 7M7FN=7FN=7ixB 7ixB 7ET7 i 7"} 7#E,O7'P 7*J7+L7.Fa}70L71@ 74R 75O78P(7:H77P?7JO7@7HA7B\7CLD7p E7H)F7GzFG7[g7 n7 t7 o76[77`G79F7:b. 7;^ 7k 7HCL7JA7Ko,| 7LDV7MA7OY$7R| 7UCL7WCL7XCL7YCL7ZCL7]E$7_I7`A;7as 7e]""7fA:7gm 7hk= 7kq)7nH7]T7Br7u65 7@f 7Y-7Fk7H7@A7R 7^f 7^f7I,7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L7H7I 7Gܜ7JaH7JaH}e7Ogn}f7yl} M7 x N7 CO7 D+P7 I~Q7 fBR7 OS7 p3 T7 P?V7 {~8 X7 FY7 J1[7 ]Y\7 RzP^7 "g_7 $B*`7 &Ba7 (VGb7 )V4c7 *O7 ,CL7 -CL7 /CLg7 1tU 7 3CL7 4CL7 5CL7 6CLm7 bG5n7 eo7 h{׷ 7 lCL7 nCL7 oCL7 qCL7 rCL7 sCL7 tCLw7 wGHx7 yRy7 zaB7 {OP{7 |A|7 }Q+}7 ~^Z~7 ^7 DM7 F`7 q ~7 CL7 ci |7 CL7 I7 J7 I7 Gu7 CLt7 CL7 f;d 7 x1 7 ra 57 JR67 L>7 CL7 CL:7 Jf;7 P><7 V?7 Ge7 CL7 CLB7 CpiC7 V"'D7 E5E7 nHF7 n(G7 ^\H7 N* L7 c޹M7 _N7 r\O7 LP7 LQ7 y R7 zF^ T7 OBU7 OV7 HG7 CL7 CLY7 DZ7 G7 CL7 CL]7 DQN^7 Rq7 CL7 CLa7 (St7 *CL7 +CLd7 -F7 0CLf7 1^7 2CLh7 4HGi7 5M7 8CLk7 ;[ l7 7 %K?7 &Jn9@7 'HA7 )s 7 ,CLD7 .r E7 0HOIF7 1G(G7 2Z7 5li7 7q7 8j7 ;[ݗ7 <_87 =F 7 >dc 7 ?a 7 @Hd7 AJf!7 DCL 7 FCL7 GCL7 IhJ 7 LCL7 NA7 OAt@7 PEZ7 QAO7 ST| 7 T|& 7 WCL7 CL7 CL7 CL7 CL7 E7 IC7 A7 tY77 ]%7 A7 m 7 k 7 r#37 G47 `87 CZ7 t 7 AY 7 W7 I7 JR7 @+%7 X| 7 Z] 7 ^7 E7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Lĥ7 HG7 I$7 GӍ7 Jff7 Jff}e7 Se>}f7 kv M7 wC N7 C|O7 BhP7 IQ7 fFDR7 OnS7 o T7 MBV7 vA X7 FѢY7 JS[7 l\7 R.^7 He|C_7 Iz `7 KB/a7 Lrǯb7 Nr c7 Omh7 QCL7 RCL7 SCLg7 Uu7 7 WCL7 XCL7 ZCL7 [CLm7 ^Gn7 a~o7 b|U 7 dCL7 eCL7 fCL7 gCL7 iCL7 jCL7 kCLw7 nF)x7 oMHy7 pZ\7 qOP{7 rxG |7 tP̄}7 u`x~7 w^7 zD37 {Fk7 ~q ~7 CL7 ce |7 CL7 Iw7 H: 7 I7 M=u7 CLt7 CL7 cF 7 vm 7 q 57 K %67 Lp7 CL7 CL:7 I;7 P<7 Q<%?7 Ha7 CL7 CLB7 C:C7 UTD7 E~E7 rF7 yG7 \4H7 N9 L7 S0M7 \@N7 oqO7 LfP7 MbkQ7 z R7 z T7 OU7 PV7 T7 CL7 CLY7 DZ7H 7CL7CL]7D^7R7CL7CLa7S7CL7 CLd7"F7%CLf7&^7'CLh7)G'i7*LE7-CLk70Y% l71E m72Gf n75hfo76lp78rz q79naH r7:n s7;Mb^t7IC7Am 7Ck 7DIiN7Ei 7G{7HD7KO7MJ 7NL7QE7SL7U@ 7XLv7YO7[Ny7\He7]f 7`S7K?m?7Jo#@7HA7t 7CLD7t E7HP2F7GG7 Y7$mc37%r7&lH7)[B7*\7,F/7-c/ 7._ 7/Jf71M!73CL 74CL76CL78kK 7;CL7=AL7>ph 7?E7iB 7jT7k} 7nCL7oCL7pCL7qCL7sCL7vE7wI}7xB"7yt7|]%7}AL7mYk 7kQ 7ny7Gۑ7_7Cn<7BR7@p 7Y -7{/9 7H 7@Je7W 7_f 7_7If7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L7H!7I7G\7JaH7JaH}e7ja#}f7 hZ M7wH N7C3O7C\P7I$Q7fR7OS7o,| T7N4KV7vA X7F>Y70J'[72.\73O(^76bv$_77@8`79AFa7;Xb7RJ>7@CL7ACL7CCLg7Et0 7GCL7HCL7ICL7JCLm7NGMvn7Q~go7R| 7UCL7VCL7WCL7XCL7YCL7ZCL7\CLw7_Jx7`NǮy7aZL7bOP{7c~UU |7dPۈ}7f_k~7h^7kD 7F:7qV ~7CL7ba7 |7CL7I ^7G7I7Huju7CLt7CL7b- 7v/ 7q 57K67L#c7CL7CL:7JX;7O><7Y5?7H/7CL7CLB7DC7TڥD7EYE7cRF7mpG7buH7Ne L7_M7[#N7n!HO7M!jP7M^Q7y R7z T7O~U7P2V7H7CL7CLY7 D̘Z7 HVF7CL7CL]7EZ^7R7CL7CLa7S7CL7CLd7F/7"CLf7$^7%CLh7'G'i7(V7+CLk7.YMS l7/M m70O n73i3o7]lp7_r q7`m = r7an = s7cMwXt7dLGu7eE7gCL7hCLx7jEZy7kMz7mHd7pCL7qCL}7sH/~7uL|7vL7ys 7|CL~7~CL7K/77T^ 7Z7[7Zng7CL 7~Ü 7CL7CL 78j7CL7CL7N7CL7CL7r 7Bkh7CL7CL7CL7LP 7H7@^g7x 7U7:7B˅7A^!7"7j #7X$7I1%7Nd&7L'7L(7C7CL*7Hnm7CL-7A+7CL7CL07_m27L37Me47FQ7CL67]7CL87Fs7CL:7D7%CL<7'D=7)F>K7,CL7-CL@70N&A71K-zB72F274CL76CLE78JH7:@îI7>gP 7A[g 7BixB 7DO7EI"d7GI)7JixB 7KixB 7MI 7Ni 7P{7RD'7UP 7WJ$"7XL7\E7^L7_BV7PP7OJ7Ny7H,7h 7Sb7CL.7U7CL7CL7 CL7 CL37 p!T47A367Q77Ns387HC397Dob:7Bɚ;7H`<7D37CL>7K3?7J`@7 H"A7#rz 7%CLD7'r]\ E7QH=F7RG:G7SZU7Vg7Wlf7Xf7[[]!7\`67^Fwp7_e5 7`b[ 7aJ7cL!7eCL 7fCL7gCL7idE 7mCL7oAq7py 7qE7rB7sZZ 7t}: 7wCL7xCL7zCL7{CL7|CL7EJ7I7B*7t7]%7A/7ll 7l ^ 7r7H37cV7Bi7@7A=q 7Y7I/7J 7@`27P9 7`U 7`f7J37^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L-7H-J7Ij7G<7JaH7JaH}e7siٹ}f7gF MNtb NNCv`ONLdPNEQNVGRNPSNoXB TNF^VNhT& XNCEYNH^[NЯՐ\N[$^Ne'_N}U `NAaNpbN@J>cNwNCLNCLNCLgNmo NCLNCLN CLN CLmN5GPnN8~goN9bY N;CLNCLN?CLN@CLNACLNBCLwNExNFH yNHP4NIOP{NLi |NN_F}NOr~NQ^NTCiNUEڶNY~; ~N[OPN^W< |N`CLNdGGNeH NfGwNjHPuNlCLtNmCLNm49 Npr Nl^6 5NK6NJNCLNCL:ND̘;NFBIHNL LN{MNukNNy\ONLPNM=QN@RN O TNN')UNNCVNI1NOPNCLYNDZNBNOPNCL]Nv ^NV]eNOPNCLaNLwNOPN CLdN HaN OPfN ^N CLhN GiN PN OPkN V, lN V\)mN WffnN CfoN bpN \f qN V8R rN ZW sN LtN LHuN B=N OPN CLxN ~# yN "MzN #JPN %OPN CL}N J3~N KN IN FDN OP~N (CLN *BwN ,V N -G3N .D3N /A@N 1CL N 3DBN 6CLN 7CL N 9N ;CLN =CLN ?ETN ACLN CCLN Er N F[} N ICLN JCLN KCLN NP| N O_gN PVS3N Q[ N TTN VczN Wis4N Yg!N ZU"N [Af#N \lg$N ]J%N ^NF&N _M 'N `K(N bD'N CL*N NN CL-N DQNN CLN CL0N Y2N KG3N MXV4N FzN OP6N ]N CL8N G4N CL:N DN CLN U?N I @N GAN KݺN OPDN K EN G9FN FRGN Q N TN YN QN r] N ^N @wN cx N c N z N zF^ !N CL N CLN CLN c N CLN uS[ N @nN CN s N IbN y N "CLN #CLN $CLN %CLN 'CLN *FN +I_N .|` N 0myN 4]{N 5v N 6x N 7q7 N :rN =GyN ?QqN @F2N AHPN CBxR N FR2N J|j N KB\N L|= N MR N PjQ N R`LN SVfN T^N UCLN VCLN WCLN CLN CLN OPN OPN CLN CLN KN HN HN GN J=qN J=q}eN BT}fNw MN t( NN CldON LwPN FQN V>WRN Py:SN o,| TN FVN gP XN CEYN H =[N L\N _l^N cS_N ~ `N A DaN ~.bN }cN x=qN CLN CLN CLgN m` N CLN CLN CLN CLmN F*nN }oN bD N CLN CLN CLN CLN CLN CLN CLwN @xN H\yN RN OP{N i |N I]}N Jr ~N L]N OC*NGF)NK7 ~NuOPNxX. |NzCLN}G 3N~HNGNH uNCLtNCLNn Np Nl?} 5NK6NJFNCLNCL:ND_;NOI~N@KbINAIl;NBF4&NCOP~NECLNGByNJVDp NKExNLAgNM~NOCL NQCNTCLNUCL NVmNWCLNXCLNZ@N]CLN^CLN`q9 NaZ NfOPNiCLNjCLNmPO? Nn`NoTNpX<NsTc6NubNvgBNwf5!NB"Nn#NgY$NJ%NNc&NM'NKX(NBsNCL*NN! NCL-NDXNCLNCL0NO2NJ3NM 4NFNOP6N]NCL8NGCNCL:NDgNCLCLN?CLNhCLNkYgNlYgNmlgNnMHNokHNpMHNrCLNsCLNuCLNvCLNwCLNxCLNyCLNz]N{CLN|CLN}CLNMYNCLNCNCLNCLNy] NCLNCLNCLNOP$NKi%NIiN&NNkNCL*NJ,NX NOP.NJNCLNCLNOPNCL3NqV4NAu6NL 7NFf8NCg9Ns:Nis3;NsNVG?NHd@NFANONOPDN ENG FNFWGNQ9NVN[33NSNou N^?N@Nc Nc Ny Ny@ !NCL NCLNCLNe5 NCLNt[ NANC.N1s T N2{N3yz N6CLN7CLN8CLN9CLN;CLN>FN?IWNB|C NDmBkNG]{NHu6 NIw NKq NNr#3NQGNRT|NSG/NTHh_NVB NZQ N]| N^BN_|j N`UT NclD Nd`NeUfNg^NhCLNiCLNjCLNkCLNCLNOPNOPNCLNCLNKINHNHNG^NJ8RNJ8R}eN2W }fNxsB MNs NNCbhONKsPNEQNURNP|SNo TNE|VNgc XNCEYNGڟ[N)\NW^Nc{_N~9 `N@!aN~\bN~>cNyqN CLN CLN CLgNl NCLNCLNCLNCLmNFnN}oN`$ NCLNCLN CLN!CLN"CLN#CLN%CLwN(B\)xN)KkyN*RN+OP{N.h"# |N0]P}N1r~N\]N_BN`ENc O ~NeOPNhT |NjCLNnFNoHNpGNsM$uNuCLtNvCLNynQ Nzpr N{kT 5N}K6N~J'NCLNCL:ND4K;NQNU?NHr@NFعANReNOPDN@\ENG5FNF|.GNQNV@N[3NTNmR N`N Nd D Nc Nyz Ny1 !NCL NCLNCLN` NCLNs N{ NDSNr NAr Ny1 NCLNCLNCLN CLN!CLN$F1N%ILN){ N+mN.]{N/u N0wS N1quq N4qiN7GgBN9UN:GTN;HGN=Bu N@Q3lNC} NDBNE|5! NGL NJmUU NK`vfNLUNM^NNCLNOCLNQCLNRCLNSCLN~OPNOPNCLNCLNKNHNHNGNJ=qNJ=q}eNY}fNyxK MNtb NNC]jONK3PNEgQNURNP}SNnT TNE|VNf XNCGYNG[N}\Na ^Nc*_N~r `N@1aN}bN}W cNyBNCLNCLNCLgNl0 NCLNCLNCLNCLmNFynN}LoN`F NCLNCLNCLNCLN CLN CLN CLwNAffxNL34yNQkNOP{Ng |N]}Nrb~N]NEBNFEcNJU ~NLOPNOWL |NQCLNTFNUGԬNVGNZO;]uN\CLtN]CLN_o{ N`pfg Nbl{ 5NdK6NeJ$NgCLNhCL:NjD- ;NkQGNy^34HNzL- LN{|*MN|VffNN}{=qON~LPNMQN@9RN@j^TNLdžUNM$VNHNOPNCLYNBMZNANOPNCL]NuD ^N]NOPNCLaNPNOPNCLdNG̶NOPfN^NCLhNEiNM NOPkNT lNWmNYnNEaHoNbx8pN]3 qNV rNZ sNLjotNLuNBZpNOPNCLxN~ yNQHzN INOPNCL}NI~NJNHރNE?NOP~NCLNA NV> NA4N C N!YN#CL N%C>N(CLN)CL N*QN+CLN,CLN/PN1CLN2CLN4q3 N5YuD N8CLN9CLN:CLN=O N>oiN?f N@jNCSNEa\NFfNGefg!RkP@"Rkw#Rkm $RkJ%RkM&RkL8U'RkK(RkA"Rk CL*Rk L.RkCL-RkCBRkCLRkCL0RkHd2RkJ+3RkL4RkFaRkOP6Rk]RkCL8Rk!GRk$CL:Rk&DQNRk)CLRk;Uc?RkRhRk?OPDRk@@RERkAG4FRkBFuGRkCQRkFV3RkG[4RkHTRkIm RkLbؾRkMy RkOdq RkPd RkQy1 RkRxP !RkUCL RkVCLRkWCLRkYd Rk]CLRk_sl Rk`@XRkaDnQRkbrz RkcIji Rkdxo RkgCLRkCLRkCLRkCLRkCLRkFRkI]8Rk{ RkmRk]Rku Rkw RkqXB RknffRkG,8RkVRkHrRkHKRkB RkQRk}X RkBRk{a RkV? Rkj Rk`fRkUfRk^RkCLRkCLRkCLRkCLRkCLRkOPRkOPRkCLRkCLRkJ RkHRkHjRkGRkJBRkJB}eRkc[}fN_z^m MRku NRk C[ORk!KaPRk"EQRk%URRk&PSRk' TRk(En\VRk*f XRk+CyIYRk-GX0[Rk.Sq\Rk/X^RkZdpR_Rk[~* `Rk\AFaRk_}bRk`~zcRkaxgRkcCLRkdCLRkeCLgRkhm} RkjCLRklCLRkmCLRknCLmRkqFnRkt|oRku`#B RkwCLRkxCLRkzCLRk{CLRk|CLRk}CLRk~CLwRk@)xRkKyRkQ RkOP{RkgUV |Rk_}Rkrhg~Rk]RkBڠRkERkK ~RkOPRkX |RkCLRkFRkGϛRkGoRkFuRkCLtRkCLRkpI Rkrp Rklv 5RkK#6RkJ RkCLRkCL:RkC;RkO^NRk@OPkRkAUr@ lRkBO =mRkCRRnRkDE9oRkGbApRkIZk qRkJS rRkKV sRkLLc&tRkMKuRkNB3RkOOPRkQCLxRkS~@ yRkTPzRkUI>RkWOPRkYCL}Rk[Ik~RkJ]RkH}RkE`RkOP~RkCLRkARkU{ RkEgRkDDRk@ RkCL RkDGRkCLRkCL Rk`RkCLRkCLRkERkCLRkCLRkrn RkYA> RkOPRkCLRkCLRkP RkhRk`RkgRkRRkg:RklLRkku!RkK&g"RkA#Rkh3$RkJ}%RkNO&RkK'RkK(RkAoRkCL*RkLPRkCL-Rk}X RkCLRkCL0RkFL2RkJp3RkL_4RkFBRkOP6Rk]RkCL8RkGJYRkCL:Rk D;Rk CLRkU?RkH@Rk FARk!T8hRk"OPDRk#@وERk$GFRk%FsGRk&Q,6Rk(UvgRk)[3Rk+T Rk,lQY Rk/bRk02 Rk1d Rk2d/ Rk3x Rk5xH !Rk8CL Rk9CLRk:CLRk XRkCGYRkG33[Rk\Rk\^RkBb_RkC~8 `RkEC33aRkFbRkG}cRkIyaHRkKCLRkLCLRkMCLgRkPlo RkRCLRkSCLRkTCLRkVCLmRkYG%nRk\}4oRk]`#B Rk_CLRk`CLRkaCLRkbCLRkcCLRkeCLRkfCLwRkiCxRkjI\yRkkSW RklOP{RkogDD |Rkq^ɨ}RkspB~Rku]RkxCWRkyF.cRkc ~RkOPRkT |RkCLRkFxRkG1RkGRkLIGuRkCLtRkCLRkp Rkqt Rkk 5RkK6RkJ RkCLRkCL:RkC/;RkLlMzRk?IZRkAOPRkCCL}RkmI{~RkoJ$RkpHfRkqEHRkrOP~RktCLRkvAt@RkyU RkzB Rk{B3Rk||c3Rk~CL RkCRkCLRkCL Rk3`RkCLRkCLRk@RkCLRkCLRkq RkX RkCLRkCLRkCLRkO RkkRk`ɚRkcRkRhRkcRkhRkfg!RkT&f"Rk@ #Rkn@$RkJ!%RkND&RkKa'RkK9r(RkAURkCL*RkKKRkCL-Rk} RkCLRkCL0RkD2RkJJ3RkL"y4RkFV5RkOP6Rk]RkCL8RkGgRkCL:RkD4KRkCLixB Rk?ixB Rk@H9QRkAERkCzJRkD@ RkGO/RkIIQkRkJLRkMr RkOLRkREVRkSQRkU}ȈRkWLdRkXM Rk[o^ Rk]MRk^EBRk`CLRkcERkdv%RkeOPRkgCLRkhCLRkiCLRkkCLRklCLRkmCLRknCLRkPgRkNgRkdc3RkMHRkkHRkMHRkCLRkCLRkCLRkCLRkCLRkCLRkCLRk]RkCLRkCLRkCLRkMRkCLRkCRkCLRkCLRkv RkCLRkCLRkCLRkOP$RkK"%RkIS&RkORkCL*RkI",RkXRkOP.RkKE4RkCLRkCLRkOPRkCL3Rkp4RkA6Rk O337Rk Qf8Rk N39Rk r\:Rk p;Rk s34Rk U;?Rk HG@Rk FKARk U]Rk OPDRk A'ERk GyFRk FlGRk QARk WLRk ]&fRk V6gRk k Rk `6Rk ~c Rk e/ Rk !e Rk #x0 Rk $w !Rk 'CL Rk (CLRk )CLRk +^a Rk .CLRk 1r+ Rk 2D;Rk 3CL!Rk 4q Rk 5E[Rk 6xWc Rk aCLRk bCLRk dCLRk eCLRk fCLRk iFRk jIjRk m|& Rk omRk r]{Rk tu ~ Rk uw Rk vq Rk ynRk |FRk }WRk ~n%BRk IRRk B{ Rk RRk } Rk CURk {in Rk OO Rk mٚ Rk a\Rk VRk ^Rk CLRk CLRk CLRk CLRk CLRk OPRk OPRk CLRk CLRk JRk HRk HRk G=Rk J=qRk J=q}eRk 5Yڝ}fRk{F MRk tF NRk CQKORk JCPRk E$QRk UiRRk PUSRk z TRk En\VRk g( XRk CEYRk )G_[Rk *\Rk +Y^Rk .e_Rk /~8 `Rk 1DwVaRk 3~ǯbRk 4~cRk 5xRRk 7CLRk 8CLRk 9CLgRk CLRk @CLRk ACLRk BCLmRk EH}nRk H} oRk I`M9 Rk KCLRk LCLRk NCLRk OCLRk PCLRk QCLRk RCLwRk U|{xRk VJffyRk WQ\)Rk XOP{Rk \gUV |Rk ^_}Rk _o~Rk a]Rk CKRk FSRk c ~Rk OPRk V |Rk CLRk FURk HpVRk GRk Q8uRk CLtRk CLRk p Rk q Rk kT 5Rk Kx;6Rk JRk CLRk CL:Rk B;Rk I$ LvRk @}tRk AM Rk BM Rk Eo^ Rk GMRk HDRk JCLRk MEjRk Ouy)Rk POPRk RCLRk SCLRk TCLRk UCLRk VCLRk WCLRk CLRk YRk PRk avgRk MHRk kHRk MHRk CLRk CLRk CLRk CLRk CLRk CLRk CLRk ]Rk CLRk CLRk CLRk MRk CLRk CIRk CLRk CLRk v Rk CLRk CLRk CLRk OP$Rk K%Rk IO&Rk MRk CL*Rk Inx,Rk X)Rk OP.Rk KrRk CLRk CLRk OPRk CL3Rk p4Rk A6Rk LY7Rk F8Rk Ff9Rk r :Rk jg;Rk r3Rk U5?Rk H@Rk F6ARk U7/Rk OPDRk ATJERk GbFRk FaGRk Q*Rk UfRk ZRk SfRk k' Rk ^Rk ~oP Rk ex Rk e5 Rk xWc Rk w| !Rk CL Rk CLRk CLRk dM Rk CLRk r Rk ~l^ Rk C{Rk Hq Rk IR3 Rk Jx Rk NCLRk OCLRk PCLRk QCLRk RCLRk UFRk VI_Rk Z| Rk \mRk _]{Rk `t Rk aw Rk bq Rk eo3Rk hFDRk jYyRk k}Rk lIRk nB Rk qQRk t~OI Rk uC=Rk v{/9 Rk xVz Rk {k Rk |`fRk }VRk ~^Rk CLRk CLRk CLRk CLRk CLRk OPRk OPRk CLRk CLRk Ji4Rk HRk HRk GRk J=qRk J=q}eRk Ib%}fRk {fQ MRk tb NRk CPORk Kv`PRk EĉQRk UVRRk PJSRk p| TRk E,VRkf XRkCEYRkF[Rk.\RkXV ^Rkd,q_Rk~8 `RkCcaRkaHbRk@hcRkyRk!CLRk"CLRk$CLgRk'l@ Rk)CLRk*CLRk+CLRk,CLmRk/HnRk2}goRk4`M9 Rk6CLRk7CLRk8CLRk9CLRk:CLRk;CLRkHRkK) LRkkMRk}4NRkS >ORkL`PRkLQRkARRkA:TRkKXURkKVRkHRkOPRkCLYRkBwZRk@۶RkOPRkCL]Rks ^Rk[r/RkOPRkCLaRkPPRkOPRkCLdRkGJYRkOPfRk^RkCLhRkDuiRkUORkOPkRkT. lRkVmRkZ\nRkCoRkbpRk [{ qRk U rRk X sRk LQtRkKuRkARkOPRkCLxRk< yRk=I|zRk>I :Rk@OPRkBCL}RkDIE~RkFJ;uRkGGRkHERkIOP~RkKCLRkMA{RkOUI' RkQERkRIRkSC3RkUCL RkWC>RkYCLRk[CL Rk\Rk]CLRk^CLRkaOjRkcCLRkdCLRkfq RkgX=A RkjCLRklCLRkmCLRkpOc RkqcRkrZ|Rks_,RkvR}RkcT{RkhRkgh!Rk[3"Rk@l#Rk~&f$RkJg%RkNi&RkK١'RkJ3(Rk@ERkCL*RkJ˽RkCL-Rk|C RkCLRkCL0RkB)2RkId3RkK4RkF1RkOP6Rk]RkCL8RkFyRkCL:RkDRkCLARkIqBRk@pRkCLRkCLERkDgHRkJYIRkm4 Rk ixB Rk ixB Rk BRkH RkD_RkixB RkixB RkHVFRkERkzBcRk@ RkORkI4^RkLRkr Rk!LRk$EVRk&SXRk(}Rk)M Rk*M Rk-o^ Rk/MRk0DRk2CLRk5EaRk6u'Rk7OPRk9CLRk:CLRkCLRk?CLRkhCLRkkX3RklPgRkmjRknMHRkokHRkpMHRkrCLRktCLRkuCLRkvCLRkwCLRkxCLRkyCLRkz]Rk{CLRk|CLRk~CLRkMRkCLRkCRkCLRkCLRkvh. RkCLRkCLRkCLRkOP$RkK%RkIM&RkK@RkCL*RkI8,RkX`RkOP.RkKKRkCLRkCLRkOPRkCL3Rkp4RkAu6RkYy7RkMS38RkG39Rkqa:Rkwg;Rk|3RkUV ?RkHU@RkF6ARkUcRkOPDRkAZERkGFRkF_)GRkPWRkVyRk[3RkTɚRkjq Rka!Rk} Rkev Rkeд Rkwt Rkwl !RkCL RkCLRkCLRk_d RkCLRkq Rkz RkCRkpmy RkKf0Rk2w Rk5CLRk7CLRk8CLRk9CLRk:CLRk=FJRk>IWRkA|` RkCm(RkG]{RkHs RkIw% RkJp RkMsPRkPFPRkQUȃRkSAJRkTJFRkVBu RkYRcRk\~s Rk]CZRk^z Rk_N Rkcm Rkd`0RkeVfRkf^RkgCLRkhCLRkjCLRkkCLRkCLRkOPRkOPRkCLRkCLRkJ?eRkH|RkHچRkG\RkJ8RRkJ8R}eRkD}fRk{P MRkt0 NRkCSnORkJY#PRkEQRkUZ`RRkPNqSRkof TRkE4VRkf XRkCEYRkFJ[Rk \Rk^6^RkfJ_Rk~G `RkBeaRk@bRkcRk zRk CLRk CLRk CLgRklf RkCLRkCLRkCLRkCLmRkGnRk}oRk_N Rk CLRk!CLRk"CLRk#CLRk$CLRk%CLRk&CLwRk)C)xRk+LyRk,TRk-OP{Rk0f |Rk2^R}Rk3q~Rk]]Rk`C0RkbERke~z ~RkgOPRkjS< |RklCLRkoFRkqHv!RkrGhRkuKuRkwCLtRkxCLRk{p- Rk|q Rk}lj 5RkK^6RkJ/ RkCLRkCL:RkB;RkK'RkJb(Rk@RkCL*RkJRkCL-Rk{ RkCLRkCL0Rk@2RkI3RkK4RkFRkOP6Rk]RkCL8RkFRkCL:RkCRkCLARkI5BRkCTRkCLRkCLERkC HRkDZIRkp RkixB RkixB RkC/RkH RkDQNRkixB RkixB RkHVFRkERkzJRk@ RkORkJ=RkLRkr Rk LRk EVRkRrRk}RkM RkM Rko^ RkMRkE,RkCLRkERktRkOPRk"CLRk#CLRk$CLRk%CLRk&CLRk'CLRkPCLRkSYpRkTNgRkUavgRkVMHRkXkHRkYMHRk[CLRk\CLRk]CLRk^CLRk_CLRk`CLRkaCLRkb]RkdCLRkeCLRkfCLRkgMuRkiCLRklCɪRknCLRkoCLRkpx RksCLRktCLRkuCLRkxOP$RkyJ%RkzIIw&Rk}HujRkCL*RkI,RkX!RkOP.RkLERkCLRkCLRkOPRkCL3RkpwC4RkA6RkO47RkKg8RkH9Rkr(:Rkn&f;RkxRkU?RkHs@RkFARkVaRkOPDRkAbERkGFRkF_)GRkPХRkVfgRk[RkT3Rki Rkc Rk|Y RkeT RkfE Rkw Rkvt !RkCL RkCLRkCLRk`x RkCLRkqes RkFRkDBRkof RkRkw RkCLRk CLRk!CLRk"CLRk#CLRk&FRk'IKRk+|j Rk-mRk0]Rk1t' Rk2w4 Rk3pT Rk6p3Rk:F"FRk;T/RkGRk}pHRk~KN LRkl\MRkc NRkTzORkL@PRkLŭQRkB=eRRkA_TRkJURkKyVRkHNORkOPRkCLYRkB)ZRk@}BRkOPRkCL]Rksl ^RkYjRkOPRkCLaRkP5RkOPRkCLdRkFsRkOPfRk^RkCLhRkCuiRkSWRkOPkRkS lRkhmRkj(nRkE33oRka>pRk^ qRkV( rRk[8R sRkLftRkKuRkARkOPRk CLxRk@JeyRkPTzRkHؒRkOPRkCL}RkH~RkIsRkGtRkERkOP~RkCLRk ALRk#T~ Rk$LARk%MgRk&G3Rk(CL Rk*C4Rk-CLRk.CL Rk/(Rk0CLRk1CLRk3AKRk6CLRk7CLRk9q Rk:WV RkVS/CLuVSAUb[?VSBHd6@VSCFgAVSDVVSEOPDVSFAqXEVSGGFVSHF_)GVSIPVSMTVSNYfVSORPVSPh VSTc4VSU| VSVe VSWfb VSXwQ? VSYv- !VS\CL VS^CLVS_CLVSac VSdCLVSfq+ VSgDVVSDJVSo7 VSK VSwQ? VSCLVSCLVSCLVSCLVSCLVSF}VSI_VS|5! VSmVS]{VSs VSw% VSp VSnVSEcVSXVSBVSMiVSB VSQEVS~; VSC4VSz VSTj VSmn VS`3VSVfVS^VSCLVSCLVSCLVSCLVSCLVSOPVSOPVSCLVSCLVSIVSHVSHVSG<VSJ8RVSJ8R}eVS]^ }fRkd{ MVS%rc NVS'CMOVS(JPVS*E`QVS-UNRVS.PeSVS/oI TVSXDJVVSYd XVSZCEYVS\F[VS^\VS_\3^VSbe_VSc~c `VSdAPgaVSf@+bVSg~cVSiwHVSkCLVSlCLVSmCLgVSpl. VSrCLVSsCLVStCLVSvCLmVSyFnVS|}fgoVS}] VSCLVSCLVSCLVSCLVSCLVSCLVSCLwVS~RxVSJ >yVSSffVSOP{VSd |VS` }VSt(~VS]VSC^VSF VS~OI ~VSOPVST |VSCLVSFjVSGVSG8VSItVuVSCLtVSCLVSqX VSp VSkĜ 5VSK6VSJ<VSCLVSCL:VSH*;VSRHVSK3 LVSEMVSBENVS EROVS!L9PVS"LQVS#Bh:RVS$AʫTVS%J(UVS&KX VVS'HNOVS(OPVS*CLYVS,BMZVS-@VS/OPVS1CL]VS3s ^VS5YcZVS6OPVS8CLaVS;OfVSCLdVS?FVSAOPfVSC^VSDCLhVSFCpiiVSGRbVSIOPkVSKS) lVSLfmVSMhnVSPD@oVSQc7pVSS\\ qVSTU rVSUX sVSVLxtVSWK`uVSXAVSYOPVS[CLxVS@C yVSMZzVSHVSOPVSCL}VSH ~VSIVSGnVSEMVSOP~VSCLVSA2VST VSG;3VSL)VSDaVSCL VSC~VSCLVSCL VSеVSCLVSCLVSQAVSCLVSCLVSq VSV VSCLVSCLVSCLVSO9 VSlC3VS\fVS^ VSRlVSizVSnVSl!VSQL"VSy#VSr$VSJ %VSM&VSK'VSJgb(VS@;VSCL*VSIΘVSCL-VSy VSCLVSCL0VS~z 2VSId63VSK0Z4VSF<VSOP6VS ]VS CL8VS GQVSCL:VSCμVSCL&VSNVSCL*VSID,VSXZOVSOP.VSLVSCLVSCLVSOPVSCL3VSpk4VSAu6VS O7VS!D8VS"J9VS%r:VS&oٙ;VS'y9VS*Tx?VS+HT@VS,FAVS-Vm8VS.OPDVS/A\HEVS0GFVS1F^AGVS2PxVS5UVS6[ VS7S3VS8h VSf(r VS?f& VS@v VSAu !VSDCL VSECLVSGCLVSI^y VSLCLVSNq VSO|R8 VSxCVSyo۔ VS|E܃VSw VSCLVSCLVSCLVSCLVSCLVSFLVSIy^VS{a VSm}rVS]{VSr VSvt VSpn VSsVfVSE<VSUVSCF%VSN1VSB VSR&PVS7 VSC:VSzcz VSNcI VSp7w VS`ffVSUVS^VSCLVSCLVSCLVSCLVSCLVSOPVSOPVSCLVSCLVSIVSHVSHIVSG}VSJ8RVSJ8R}eVS|By }fVS| MVSsM NVSCHOVSKPVSElQVSBU0RVSCPSVSDoK TVSED ]VVSFdc XVSGB]YVSIF [VSK2\VSLX ^VSOe_VSP~c `VSQA DaVSSbVST~zcVSUx\*VSXCLVSYCLVSZCLgVS]l VS_CLVS`CLVSaCLVSbCLmVSfF*nVSi|oVSj] VSlCLVSmCLVSnCLVSoCLVSpCLVSrCLVSsCLwVSv{ xVSwJ{yVSxQLVSyOP{VSd |VS_}VSs\~VS]VSC4VSEVS ~VSOPVSV' |VSCLVSFbVSHRVSGwAVSIuVSCLtVSCLVSq VSp VSky 5VSJɓ6VSJEVSCLVSCL:VSKp;VSNGVS iHVS K LVS jBMVS_ >NVSCOVSL2HPVSLQVSBiRVSAkTVSJ{UVSK)VVSHGVSOPVSCLYVSCpiZVS@4VSOPVS!CL]VS"sc ^VS$] VS%OPVS'CLaVS*QwVS+OPVS-CLdVS/FVS1OPfVS3^VS4CLhVS6CDiVS7QQ%VS9OPkVS:T lVS;hmVSVS`LVSe >VSd#!VSF34"VSj33#VSd$VSJ%VSN&VSKe'VSJ=(VS@b_VSCL*VSIL\VSCL-VSxP VSCLVSCL0VS| 2VSI1C3VSK <4VSFWVSOP6VS]VSCL8VSGVSCL:VSCVS CLCVS@CLVSACLEVSCCpiHVSE}{-IVSHjy VSKixB VSLixB VSMCwVSNH*VSODQNVSPixB VSQixB VSRHGVSSEVSVzJVSW@ VSZOVS\IVS]LVS`r VSbLVSeEVVSfSsVSh}(VSiM VSjM VSmo^ VSoMVSDVSCLVSEVStVSOPVSCLVSCLVSCLVSCLVSCLVSCLVSCLVSPgVSKVSYgVSfVSkHVSf VSCLVSCLVSCLVSCLVSCLVSCLVSCLVS]VSCLVSCLVSCLVSMVSCLVSCӞVSCLVSCLVSxWc VSCLVSCLVSCLVSOP$VSJ%VSIVS Ul?VS HH@VS !FmAVS "WGVS #OPDVS $AcEVS %G3FVS &F\pGVS 'PVS *X4VS +\3VS ,V@VS .h VS 1`VS 2|H VS 3fE VS 4gd VS 5v VS 6ua !VS bCL VS cCLVS dCLVS fcM VS iCLVS kq VS l~; VS mCVS oo VS q]VS tvܹ VS wCLVS xCLVS yCLVS zCLVS |CLVS FVS IVS |` VS mDVS ]VS r VS vv VS pB VS nyVS EVS TneVS C`"VS O[VS B VS QRVS r VS CVS z7 VS V"q VS gȉ VS _VS RVS ^VS CLVS CLVS CLVS CLVS CLVS OPVS OPVS CLVS CLVS IVS HVS HfVS G<VS J8RVS J8R}eVS qeaI}fVS| MVS -s" NVS /CCOVS 1KʅPVS 2E2QVS 5U4^RVS 6OzSVS 7n TVS 8D ]VVS 9d_ XVS :BkYVS =F[[VS >y\VS ?].^VS BdA_VS C~q `VS D@ۘaVS FAbVS H@{cVS IyQVS KCLVS LCLVS MCLgVS PmF/ VS RCLVS SCLVS UCLVS VCLmVS YFnVS \}oVS ]]/ VS _CLVS `CLVS aCLVS bCLVS CLVS CLVS CLwVS @xVS IyVS T\)VS OP{VS d |VS ^ }VS t~VS ]VS CVS EƄVS ~] ~VS OPVS Q; |VS CLVS F\,VS GwVS FVS NַuVS CLtVS CLVS r = VS pr VS kR 5VS J6VS J. VS CLVS CL:VS J;VS J7EVS @zJVS CEVVS DO?VS FIBVS GLVS Jr VS LLVS OEVVS PQf VS R|aVS TM VS UM VS o^ VS MVS CVS CLVS EVS uhVS OPVS CLVS CLVS CLVS CLVS CLVS CLVS CLVS PgVS NVS YgVS MHVS kHVS g{VS CLVS CLVS CLVS CLVS CLVS CLVS CLVS ]VS CLVS CLVS CLVS M.VS CLVS CVS CLVS CLVS v VS CLVS CLVS CLVS OP$VS JL%VS IVS Ub[?VS H7@VS FAVS TSVS OPDVS A EVS GKFVS F[GVS PVVS UVS [VS T3VS gZ VS ^-VS | VS fb VS gL VS HvY VS It !VS MCL VS NCLVS OCLVS Qa[o VS TCLVS Vp- VS WGQVS XCVS ZoXB VS \VS _vt VS bCLVS cCLVS dCLVS eCLVS gCLVS jF}VS kIVS n{/ VS plVS s]{VS tr VS uvv VS wp0 VS zrVS }EbVS ~UAVS C7VS PDVS Bz VS QVS : VS DVS z % VS P+ VS m; VS a#3VS VVS ^VS CLVS CLVS CLVS CLVS CLVS OPVS OPVS CLVS CLVS ImVS HVS H;VS GVS J8RVS J8R}eVS \k[}fVS }g MVSsz NVSC@OVSJPVSEL5QVS"U0RVS#OSVS$n$ TVS%CSVVS&cv XVS(BnYVS*FM[VS+5\VS,Zl^VS/cZ_VS0~q `VS1@uaVS4qbVS5BcVS6x\VS8CLVS9CLVS:CLgVS=lh VS?CLVSACLVSBCLVSCCLmVSFFl nVSI|@oVSJ\ VStCLVSuCLVSwCLVSxCLVSyCLVSzCLVS{CLwVS~~=qxVSL)yVSQǮVSOP{VSc |VS_P}VSs~VS]VSBVSE*VS~ ~VSOPVSR&w |VSCLVSFBVSG9VSG-aVSM\uVSCLtVSCLVSr>w VSp VSk 5VSJO6VSJVSCLVSCL:VSJ;VSGAXVSCLVSCLEVSBHVSDeIVSjoR VS!ixB VS"ixB VS#C.VS%H9QVS&DnQVS'ixB VS(ixB VS)H*VS*EVS,zJVS-@ VS0OVS2IVS3LVS6r VS8LVS;EVVS=LvVS?|KqVShM VSiM VSlo^ VSnMVSoCyaVSqCLVStEVSutVSvOPVSxCLVSyCLVSzCLVS|CLVS}CLVS~CLVSCLVSYgVSG6gVSYVSfVSkHVSfzVSCLVSCLVSCLVSCLVSCLVSCLVSCLVS]VSCLVSCLVSCLVSMVSCLVSCʑVSCLVSCLVSv( VSCLVSCLVSCLVSOP$VSJK%VSIE&VSQsVSCL*VSHe,VSY0VSOP.VSM=VSCLVSCLVSOPVSCL3VSo]4VSAu6VSHf7VSPy8VSD39VSsq:VS{S4;VS{VSU?VSH)@VSFAVSQVSOPDVSADPEVSG3FVSFWGVSP~qVSV,VS[VST9VSg VSaQVS0| VS1f/ VS3g VS4v VS5tz !VS8CL VS9CLVS:CLVS<^5 VS@CLVSBp VSC~s VSDDVSEof VSGVSJvv VSMCLVSOCLVSPCLVSQCLVSRCLVSUFZVSVIVSY{/ VS[lVS_]VS`r VSavR VSboe VSepVShE;VSiS+VSk@[VSPVSB# VSRLVS VSDGVSy VSO VShUU VS`FfVSTɚVS^VSCLVSCLVSCLVSCLVSCLVSOPVSOPVSCLVSCLVSIzFVSH}VSHVSG5VSJ33VSJ33}eVSG~}fVS} MVSr NVSC?wOVS K)PVS EnQVS URVSOSVS@`2TVSCVVSc& XVSC:QYVSFo[VSܣ\VSZ^VScE_VS~ `VSAaVS@bVS @aHcVS!z(VS#CLVS$CLVS&CLgVS)l VS+CLVS,CLVS-CLVS.CLmVS1F[nVS\|goVS^\ VS`CLVSaCLVSbCLVScCLVSdCLVSeCLVSgCLwVSjD(xVSkKkyVSlQ.VSmOP{VSpc |VSr`}VSst}$~VSv]VSyBVSzERVS}} ~VSOPVSQ |VSCLVSF9VSGquVSFVSGduVSCLtVSCLVSr VSop VSk 5VSJZ6VSJ$VSCLVSCL:VSL`;VSQ'VSUH?VSH@VSFwAVSTVSOPDVS@EVSGtFVSFMGVSPqvVSTC4VSY4VSS#3VSg1h VScuVS!| VS"f VS#g3 VS$uZ VS%t !VS(CL VS)CLVS+CLVS-c>k VS0CLVS2p VS3{ VS4DuVS5oXB VS6JnD VS8vCLVS?CLVSBF4VSDIVSG{ VSIlVSL]VSMr VSNvt VSOo VSRnVS~E4VSVVS}vVSQ,6VSB+ VSQCHVS@VSD0VSy@ VSU VSj. VS`iVSUVS^VSCLVSCLVSCLVSCLVSCLVSOPVSOPVSCLVSCLVSIZVSHtVSH/VSGVVSJ.VSJ.}eVS6\}fVS~U MVSrt NVSC;0OVSK-PVSDQVSURVSO-SVSAHTVSCVVSc­ XVSCGYVSFح[VSܣ\VS\^VSa_VS ~ `VS CwVaVS @#bVS cVSz4VSCLVSCLVSCLgVSl* VSCLVSCLVSCLVSCLmVSFGѼnVSJ}YoVSK\  VSMCLVSNCLVSOCLVSPCLVSQCLVSRCLVSTCLwVSWA4xVSXI34yVSYR#VSZOP{VS]c |VS_`}}VSat\?~VSc]VSfCuVSgF,VSj}; ~VSlOPVSoQg |VSrCLVSuFVSvGVVSwFVSzLuVS|CLtVS~CLVSr VSo VSjH 5VSJ\z6VSJVSCLVSCL:VSLnA;VSMշHVSJ LVSiMVSxNVSS)OVSL PVSLQVSC3uRVSBTVSIŪUVSJVVSGVSOPVSCLYVSCZVS@VSOPVSCL]VSr1 ^VS_VSOPVSCLaVSQnVS OPVSCLdVSFiVSOPfVS^VSCLhVSB\iVSM.VSOPkVSS7 lVSrGmVSk{nVS Ds3oVS!aډpVS#\3 qVS$T rVS&Z sVS'L^tVS(LIuVS)AVS*OPVS,CLxVS.@nyVS/MDzVS0H9QVS2OPVS4CL}VS6Hk~VS8HVS9FVS:E?(VS;OP~VS=CLVS?A+VSBTGn VSCE3VSDEgVSEB3VSGCL Z;CpiZ;CLZ;CL Z;mZ;CLZ;CLZ; @QZ; CLZ;CLZ;q3 Z;V Z;CLZ;CLZ;CLZ;O2 Z;pZ;[Z;]&fZ;Q Z;!LYZ;"P{Z;#O!Z;$S3"Z;%g#Z;&U34$Z;'J%Z;(M<&Z;)KCu'Z;*I(Z;+@VZ;-CL*Z;/Hs<Z;2CL-Z;4xH Z;7CLZ;8CL0Z;:| 2Z;dH3Z;eJK4Z;fF5Z;gOP6Z;i]Z;jCL8Z;mH2Z;oCL:Z;qCpiZ;tCLZ;bU]?Z;cG@Z;dFhAZ;eVZ;fOPDZ;gA+EZ;GbFZ;F@TGZ;PuZ;RfZ;WZ;QZ;f Z;cZ;{g Z;f Z;g Z;up Z;t !Z;CL Z;CLZ;CLZ;_/ Z;CLZ;pX Z;GZ;D4KZ;of Z;,Z;v Z;CLZ;CLZ;CLZ;CLZ;CLZ;F'Z;IZ;{/ Z;lZ;]Z;r Z;vR Z;o Z;mfZ;E2Z;S||Z;{GZ;QZ;B# Z;QNZ;@BfZ;DD@Z; y# Z; L Z;k* Z;`fZ;UZ;^Z;CLZ;CLZ;CLZ;CLZ;CLZ;OPZ;OPZ;CLZ;CLZ;"I@+Z;$HnZ;%HZ;&GmZ;)J.Z;*J.}eZ;j}fVS~_ MZ;os\ NZ;qC62OZ;sJxPZ;tDѫQZ;wTXRZ;xONSZ;yqHF TZ;zC1VZ;{c­ XZ;}BtYZ;GD[Z;ܣ\Z;W^Z;cd_Z;~ `Z;DeaZ;A0bZ;@cZ;{\Z;CLZ;CLZ;CLgZ;k^ Z;CLZ;CLZ;CLZ;CLmZ;HnZ;}6goZ;\^ Z;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLwZ;C34xZ;K\yZ;QRZ;OP{Z;d |Z;`}Z;rK~Z;]Z;CZ;FRsZ;~z ~Z;OPZ;VS |Z;CLZ;FaZ;Gz'Z;G'Z;PouZ;!CLtZ;"CLZ;$r Z;&o Z;'jH 5Z;)J"Q6Z;*JUZ;,CLZ;-CL:Z;/KU;Z;0IĚFZ;=@{GZ;>sHZ;?J0 LZ;@BMZ;A~\*NZ;BS@OZ;CL^PZ;DLQZ;ECWRZ;FB-TZ;GIUZ;HJa?VZ;IGZ;JOPZ;LCLYZ;NC{ZZ;O Z;QOPZ;SCL]Z;UqJ ^Z;W^ZTZ;XOPZ;ZCLaZ;PZ;OPZ;CLdZ;FTZ;OPfZ;^Z;CLhZ;B8PiZ;Q5rZ;OPkZ;S lZ;rmZ;lQnZ;DfoZ;a+pZ;^ qZ;U8R rZ;X sZ;LtZ;LWNuZ;AZ;OPZ;CLxZ;@nyZ;K4zZ;H[Z;OPZ;CL}Z;H]~Z;HcZ;FZ;E5Z;OP~Z;CLZ;A$ZZ;T? Z;G3Z;GZ;DNfZ;CL Z;Ci(Z;CLZ;CL Z; Z;CLZ;CLZ;IiNZ;CLZ;CLZ;q Z;W9n Z;CLZ;CLZ;CLZ;O% Z;s3Z;_Z;`Z; OZ; tZ; |34Z; z8R!Z;M@"Z;df#Z;[ $Z;J%Z;MF&Z;K.'Z;Ixu(Z;@C Z;CL*Z;H9QZ;CL-Z;wS Z;!CLZ;"CL0Z;L{in 2Z;NHy3Z;OJ4Z;PFQZ;QOP6Z;S]Z;TCL8Z;VHdZ;YCL:Z;[CpiZ;^CLAu6Z;A@Y7Z;BB8Z;CoL9Z;EsZ:Z;G~;Z;H~LZ;KU@?Z;LGӓ@Z;MFXAZ;NV hZ;OOPDZ;xA'EZ;yGMFZ;zF.2GZ;{P?Z;~SٚZ;Y3Z;RZ;fij Z;aZ;{% Z;f Z;h Z;u' Z;tU !Z;CL Z;CLZ;CLZ;dp Z;CLZ;p Z;DZ;C:Z;o7 Z;Z;u Z;CLZ;CLZ;CLZ;CLZ;CLZ;FbZ;ImZ;{ Z;lpZ;]Z;r Z;v Z;ov Z;pZ;E2Z;PZ;zZ;RrZ;BB Z;RkZ;@^Z;DVbZ;y]w Z;V: Z;mf Z;`\Z;VfZ;^Z;CLZ;CLZ;CLZ;CLZ;CLZ;OPZ;OPZ;CLZ; CLZ; I+KZ; HmZ;HvZ;GZ;J.Z;J.}eZ;U[}fZ;$~0 MZ;[r NZ;]C-OZ;^JPZ;_DQZ;bURZ;dOSZ;eo+ TZ;fCVZ;gc XZ;hCWYZ;jF[Z;kܣ\Z;m_ϥ^Z;pcm_Z;q~9 `Z;sCaZ;tbZ;u@ cZ;vzW Z;xCLZ;zCLZ;{CLgZ;lm Z;CLZ;CLZ;CLZ;CLmZ;HnZ;}oZ;\r Z;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLwZ;HzxZ;LyZ;QLZ;OP{Z;d |Z;`I}Z;sl~Z;]Z;CZ;F%Z;~# ~Z;OPZ;R^ |Z;CLZ;F+9Z;GZ;FZ;F|guZ; CLtZ; CLZ;r Z;o Z;jH 5Z;I6Z;IZ;CLZ;CL:Z;J;;Z;G2GZ;(iHZ;)Jo| LZ;*c\MZ;+WNZ;,P)OZ;-LjPZ;.LzQZ;/Cv8RZ;0B1TZ;1IrUZ;2J3VZ;3G} Z;4OPZ;6CLYZ;8CZZ;9~ Z;;OPZ;=CL]Z;?qˈ ^Z;A]ƺZ;BOPZ;lCLaZ;oPzZ;pOPZ;rCLdZ;sFTZ;uOPfZ;w^Z;xCLhZ;zB iZ;|VZZ;}OPkZ;S3f lZ;umZ;nnZ;DHoZ;apZ;\ qZ;T{ rZ;Xu sZ;L7tZ;LaSuZ;AZ;OPZ;CLxZ;@yZ;IzZ;HZ;OPZ;CL}Z;H@~Z;HZ;FZ;E*"Z;OP~Z;CLZ;AKZ;TO Z;HnfZ;FFgZ;B Z;CL Z;Ci(Z;CLZ;CL Z;ٳgZ;CLZ;CLZ;QZ;CLZ;CLZ;q Z;Wmc Z;OPZ;CLZ;CLZ;N Z;n#3Z;Z0Z;[Z;NZ;w(Z;~>Z;|Q!Z;KL"Z;e#Z;[3$Z;JR%Z;M/L&Z;K'Z;I(Z;@VZ;CL*Z; HZ;4CL-Z;6yl Z;9CLZ;:CL0Z;<}I 2Z;>Ht3Z;?Jm4Z;@FTZ;AOP6Z;C]Z;DCL8Z;FHZ;ICL:Z;KCpiZ;NCLZ; `U+?Z; aG@Z; bFNAZ; cVZ; dOPDZ; eA2EZ; fG77FZ; gFGZ; hOZ; lTs3Z; mY@Z; nSZ; oe Z; r^)/Z; t{g Z; ug Z; vh6 Z; wt Z; xt>u !Z; {CL Z; |CLZ; ~CLZ; _޿ Z; CLZ; p^ Z; }X Z; CZ; of Z; RZ; u Z; CLZ; CLZ; CLZ; CLZ; CLZ; FZ; IZ; { Z; l+Z; ]Z; r Z; vt Z; oJ Z; oZ; E-}Z; R Z; zZ; S3Z; BJ= Z; QZ; @Z; DhZ; y@Y Z; L Z; o@ Z; `3Z; VZ; ^Z; CLZ; CLZ; CLZ; CLZ; CLZ; OPZ; OPZ; CLZ; CLZ; IZ; HmZ; HZ; G-Z; )J(Z; ,J(}eZ; _D[}fZ;~Z MZ; IsNi NZ; KC)\OZ; LJldPZ; MDrQZ; PU RZ; ROoSZ; Sof TZ; TC1VZ; Ud4 XZ; VC^KYZ; XF[Z; Y#[\Z; [X](^Z; ^dA_Z; _~9 `Z; aB#aZ; b@YbZ; c@cZ; {kZ; CLZ; CLZ; CLgZ; l( Z; CLZ; CLZ; CLZ; CLmZ; GenZ; }goZ; \r Z; CLZ; CLZ; CLZ; CLZ; CLZ; CLZ; CLwZ; |\xZ; MyZ; QZ; OP{Z; d |Z; __}Z; r~Z; ]Z; CZ; EvZ; ~s ~Z; OPZ; ULK |Z; CLZ; FZ; GZ; G!Z; K _uZ; CLtZ; CLZ; r Z; p Z; j 5Z; I 6Z; JZ; CLZ; CL:Z; Lhy;Z; Q5Z; vZ; s*!Z; S@"Z; f&g#Z; T$Z; JR%Z; MwX&Z; J!'Z; IF(Z; @Z; CL*Z; "GZ; %CL-Z; 'y Z; )OPZ; +CL0Z; -|ƚ 2Z; /Hi43Z; 0JO4Z; 1GZ; 2OP6Z; 4]Z; 5CL8Z; 7H/Z; :CL:Z; Z; CLZ; CLZ; CLZ; CLZ; CLZ; CLZ; CLZ; ]Z; CLZ; CLZ; CLZ; MZ; CLZ; CZ; CLZ; CLZ; y] Z; CLZ; CLZ; CLZ; OP$Z; JhJ%Z; Iz&Z; O&Z; CL*Z; H,Z; YZ; OP.Z; MYZ; CLZ; CLZ; OPZ; CL3Z; ob4Z; Au6Z; E7Z; H@8Z; Im 9Z; Lt :Z; Ovfg;Z; P{fZ; SUAB?Z; TG@Z; UFFAZ; VViZ; WOPDZ; XAg-EZ; YGFZ; ZF GZ; [OZ; _TZ; `Y4Z; aSfgZ; bf_7 Z; e_eZ; f{ Z; hg! Z; ihq7 Z; jtU Z; kt>u !Z; nCL Z; oCLZ; pCLZ; sc Z; vCLZ; xpY Z; yw Z; zDZ; {n Z; }iLZ; u6 Z; CLZ; CLZ; CLZ; CLZ; CLZ; FZ; ImZ; {w Z; k Z; ]Z; rs Z; v Z; o- Z; m3Z; E,Z; R ~Z; zBcZ; SZ; BE Z; PZ; @Z; DzZ; y Z; VNy Z; pU Z; `fZ; Q3Z; ^Z; CLZ; CLZ; CLZ; CLZ; CLZ; OPZ; OPZ;CLZ;CLZ;H1Z;HbZ;HZ;GZ;J(Z;J(}eZ; }mE}fZ; ~W MZ;:s. NZ;DQZ;AT%RZ;COzSZ;Do TZ;ECVZ;Fd? XZ;GCgJYZ;IF[Z;J1\Z;t\^Z;wc`_Z;x~r `Z;zA+aZ;{@bZ;|AcZ;}{\Z;CLZ;CLZ;CLgZ;lk Z;CLZ;CLZ;CLZ;CLmZ;FnZ;}VgoZ;[ Z;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLwZ;C)xZ;J(yZ;RZ;OP{Z;cfg |Z;_}Z;r~Z;]Z;CfZ;EZ;~z ~Z;OPZ;T'U |Z;CLZ;F+9Z;Gi~Z;G)Z;QJ8uZ;CLtZ;CLZ;s Z;o Z;k+ 5Z;Is6Z;JZ;CLZ;CL:Z;L^;Z;MI:VZ;?G@5Z;@OPZ;BCLYZ;DDZZ;E~' Z;GOPZ;ICL]Z;JqV ^Z;L[Z;MOPZ;OCLaZ;ROyZ;SOPZ;UCLdZ;WF!OZ;YOPfZ;[^Z;\CLhZ;^AiZ;_UZ;aOPkZ;bR lZ;cupmZ;eonZ;fDoZ;hapZ;j]\ qZ;lV rZ;mY\ sZ;nLtZ;oLyuZ;pA_Z;qOPZ;sCLxZ;u@RyZ;vPpIzZ;wGZ;OPZ;CL}Z;H~Z;HrZ;FZ;E Z;OP~Z;CLZ;@Z;S5 Z;J 3Z;KHZ;EZ;CL Z;C6]Z;CLZ;CL Z;qZ;CLZ;CLZ;: Z;CLZ;CLZ;p< Z;U@ Z;OPZ;CLZ;CLZ;M Z;mvfZ;XfZ;Z Z;K[Z;m34Z;tZ;q(!Z;A"Z;efg#Z;Yff$Z;K%Z; M1 &Z; K^'Z; I3(Z; @Z;CL*Z;G̶Z;CL-Z;{in Z;OPZ;CL0Z;|R8 2Z;H`3Z;J774Z;G'Z; OP6Z;"]Z;#CL8Z;%H$Z;(CL:Z;*CScZ;-CL@IZ;i_8 Z;lixB Z;mixB Z;nDQNZ;oHVFZ;pDXZ;qj> Z;rixB Z;tH*Z;uEZ;w{14Z;zEVZ;{P52Z;}IZ;~LZ;r Z;LZ;EVZ;LvZ;zZ;M Z;LZ Z;o^ Z;L2HZ;BWZ;CLZ;EDZ;tZ;OPZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;]Z;QgZ;YgZ;MHZ;GHZ;MHZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;]Z;CLZ;CLZ;CLZ;MIZ;CLZ;CZ;CLZ;CLZ;y Z;CLZ;CLZ;CLZ;OP$Z;J_4%Z;I&Z;KKZ;CL*Z;H,Z;YnZ;OP.Z;N UZ;CLZ;CLZ;OPZ;CL3Z;1oA4Z;2Au6Z;5|7Z;6yg8Z;7f9Z;:s~:Z;<@\;Z;=zLvZ;?OP>Z;@T|?Z;AGt@Z;BFVAZ;CV} Z;DOPDZ;EATJEZ;FG*~FZ;GGGZ;HPRsZ;JTC4Z;KZZ;MLPZ;Ne Z;QasZ;R{> Z;Sg>? Z;Th Z;Ut/ Z;Wt/ !Z;ZCL Z;[CLZ;\CLZ;^_ Z;aCLZ;cp$ Z;dG:Z;fDZ;gn$ Z;hHbN Z;iu Z;CLZ;CLZ;CLZ;CLZ;CLZ;F_Z;IZ;{LS Z;k0Z;]Z;r Z;v4 Z;om Z;ofZ;E( Z;UZ;~SZ;Ti[Z;BH Z;O.Z;@ɌZ;DuZ;x Z;MK Z;m Z;`@Z;TZ;^ Z;CLZ;CLZ;CLZ;CLZ;CLZ;OPZ;OPZ;OPZ;CLZ;H:Z;HVZ;H Z;G7Z;J(Z;J(}eZ;h\j}fZ;~ MZ;"sz NZ;%C&OZ;&K":PZ;'D~QZ;*URZ;+OSZ;,o TZ;-CKVZ;.cBR XZ;0CpIYZ;2Fn[Z;3j\Z;\]}^Z;_eS_Z;`~r `Z;aA33aZ;d@4bZ;eBcZ;fyqZ;hCLZ;iCLZ;jCLgZ;ml+ Z;pCLZ;qCLZ;rCLZ;sCLmZ;vF~nZ;y}@oZ;z[b5 Z;|CLZ;~CLZ;CLZ;CLZ;CLZ;CLZ;CLwZ;BxZ;KyZ;OpZ;OP{Z;bfg |Z;`g}Z;s.~Z;]Z;C-Z;F Z;~z ~Z;OPZ;T- |Z;CLZ;F?+Z;G6Z;GZ;IuZ;CLtZ;CLZ;sk Z;o Z;k\) 5Z;IE6Z;J Z;CLZ;CL:Z;K);Z;IZZ;+~s Z;,OPZ;.CL]Z;0q ^Z;2ZZ;3OPZ;5CLaZ;8NZ;9OPZ;;CLdZ;=EZ;?OPfZ;A^Z;BCLhZ;DAiZ;ET*Z;GOPkZ;HRh lZ;IsmZ;JmnZ;Kp= oZ;NapZ;P\ qZ;QUQ rZ;RW\ sZ;TLjtZ;ULuZ;VAZ;WOPZ;YCLxZ;[@yZ;\M2zZ;]G0Z;_OPZ;CL}Z;Ge~Z;HZZ;FZ;EZ;OP~Z;CLZ;@.Z;SՍ Z;H9Z;GZ;Bs4Z;CL Z;C'Z;CLZ;CL Z;Z;CLZ;CLZ;PoLZ;CLZ;CLZ;pY Z;VO Z;CLZ;CLZ;CLZ;M) Z;nZ;ZZ;[4Z;KZ;kuZ;rZ;p!Z;FY"Z;^#Z;S@$Z;K%Z;L`&Z;K3'Z;J9(Z;@Z;CL*Z;GZ;CL-Z;| Z;OPZ;CL0Z;|C 2Z;HW3Z;J 4Z;G.Z; OP6Z; ]Z; CL8Z;H2Z;CL:Z;CScZ;CLAZ;!HaBZ;"B Z;$CLZ;&CLEZ;P@JeHZ;R~xIZ;Uhx| Z;WixB Z;YixB Z;ZD_Z;[HdZ;\DZ;]ju Z;^ixB Z;_H*Z;`EZ;bzJZ;eEVZ;fOZ;hI0Z;iLZ;lr Z;oLZ;rB Z;sS_Z;uzRZ;vM Z;wLaSZ;zo^ Z;|L()Z;}BuZ;CLZ;EZ;tZ;OPZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;XfZ;M3Z;YgZ;MHZ;GHZ;MHZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;CLZ;]Z;CLZ;CLZ;CLZ;MfZ;CLZ;CZ;CLZ;CLZ;x Z;CLZ;CLZ;CLZ;OP$Z;JQ%Z;I&Z;H̾Z;CL*Z;Hz^,Z;YlZ;OP.Z;NMZ;CLZ;CLZ;OPZ;CL3Z;o4Z;Au6Z;!t7Z;"p38Z;#`f9Z;%s5:Z;'p;Z;(ufZ;+Tk?Z;,GW@Z;-F,3AZ;.V&Z;/OPDZ;0C.aEZ;1FFZ;2EGZ;3OjZ;6M6fZ;7RPZ;8LFfZ;9e Z;Q3d?`0d@KzdAI34dBNdECLdFCLdGCLdHCLdICLdJCLdKCLdL]dMCLdNCLdPCLdQMdSCLdVCdWCLdXCLdZxe d]CLd^CLd_CLdbOP$dcJ=%ddI&dfR5dCL*dHc,dYdOP.dNzdCLdCLdOPdCL3do4dAu6dw7dhff8dh9dr,:dl;dh<dhldOP>dU?dG8 @dF'AdWdOPDdCEdF1FdEuGdOdKVfdOdJpddG dddz0 dgx dhr ds dt[ !dCL dCLdCLd` dCLdo; dxt dCudnn d@f du65 dCLdCLdCLdCLd CLd Fyd Ixud{in dk<`d]dn% dqJ dn drdE d!Sd"Dd#Vd%BR d(Ojd)Ad*Zd-xP d/L dZs d[``d\Z0d]^ d^CLd`CLdaCLdbCLdcCLdfOPdgOPdiOPdkCLdnH~doHZdpHdqGvduJ#dvJ#}edYDG}fZ;~ Mdtb NdC(OdKσPdDQdTRdOySdn TdC.Vdc F XdCLNYdFb[dȵ9\d`E^ddN_d~ `d@ad@Qbd~zcdx>dCLdCLdCLgdl~ dCLdCLdCLdCLmdFgnd|yodZ[ dCLdCLdCLdCLdCLdCLdCLwdCxdMydN dOP{d"b |d%_}d&s~d(]d+BYd,Ed/}~ ~d1OPd5PO |d7CLd:F9d;F:dudBCLtdCCLdEt9X dFpr dGk=q 5dJI/6dKIdMCLdNCL:dPLLK;dSP%<dTZ*??dU@dWOPdYCLBd[w CdVDDdAEdaFdr GdUHdI7N Ldl>MdeNdF OdKPdLdQdDRdC`TdHUdI|VdFdOPdCLYdB+Zd~OI dOPdCL]dp^ ^d_kdOPdCLadPOdOPdCLddEdOPfd^dCLhdAidQ^dOPkdR% ldszmdn =ndoW odampd[ qdS rdW{ sdLtdLoudArdOPdCLxd@gvydIzdGdOPdCL}dG~dH%bdFe}dDydOP~dCLd@4dS dnd qfd ld CL dCdCLdOP d]2~dCLdCLdJd CLd#OPdNn dOT dRCLdSCLdTCLdWMv dXhdYQ dZVfd]IBd_x>d`~ da} >!dbBL"dc^Y#dd[ $deJ%dfL&dgK*'dhJ_4(di@EdkCL*dmGndpCL-dr~ dtOPdvCL0dx{ 2dzHF3d{I4d|Fd}OP6d]dCL8dGXdCL:dCZdCL<dyl =dF5dOPdCL@dN<|AdHyBdGdCLdCLEd|R8 HdFCIdo dixB dixB dDGdHddDdj dixB dH*dEdxdEVdOe!dHdLdr dLdB dP edz dM dLlAdo^ dLzd@LdCLdEdqdOPd CLd!CLd"CLd#CLd$CLd%CLd'CLd*Ngd+O)d,a3d-Kd.L34d/Mffd1CLd2CLd3CLd4CLd5CLd6CLd8CLd9]d:CLd;CLdMd?CLdBCdDCLdECLdGx dJCLdKCLdLCLdNOP$dOJ+g%dxI&d{Nxd~CL*dHQ,dYdOP.dNdCLdCLdOPdCL3dn4dAu6dl7dkff8di9dq_:dh;di<df33dOP>dUZq?dG @dF"7AdVdOPDdC+zEdFFdEGdO#dK3dOYdIfdds* dcLKdzXI dg dh dsU: ds !dCL dCLdCLdcM dCLdoI dFmdCDdm dC(du ~ dCLdCLdCLdCLdCLdFIdIidzu djd]dm<8 dpX dn d od Dd SdEpdWdB dN@dBdgLdBx0 dCV"q dFs dGadHZdJ^ dKCLdLCLdMCLdNCLdPCLdSOPdTOPdUOPdWCLdZH/d\H\pd]Id^GFdaJ#dbJ#}ed}}fdE@ # Mdr NdC'OdJJPdC/QdTTRdOtSdn TdC'dVdb- XdC:QYdFTK[d\dW7x^dcu_d~ `d@ad@bd@cdydCLdCLdCLgdlH dCLdCLdCLdCLmdF-nd}6godZQl dCLdCLdCLdCLdCLdCLdCLwdB\xd H\yd Q\)d OP{db |da/2}dtM~d]dBdEd}; ~dOPd!P` |d#CLd&F d(F4d)Fnd,L^(ud.CLtd/CLd2t d3oQ d4ku 5d6H6d7Id9CLd:CL:d=K_;d@MU<dAW_?dB@udlOPdnCLBdpx CdqU|DdrA!EdtcFdun >Gdvg{HdwI Ldx@qMdytHNdzSOd{KPd|L`Qd}DRd~CTdHUdIVVdF<dOPdCLYdB1 Zd} dOPdCL]dp3 ^d_ydOPdCLadPdOPdCLddEOdOPfd^dCLhd@idPSdOPkdQ ldpmdkpndq^ odaipd^= qdTaH rdY\ sdL<tdLudALdOPdCLxd@QydRzdGdOPdCL}dG~dH dFadD>dOP~dCLd@dS: dg3dkdgdCL dCdCLdOP dGcdCLd CLd Gd6CLd9OPddNqdOog!dPQ"dQcs3#dR^$dSJҪ%dTLCD&dUK-'dVJ_4(dY d\CL*d^GgRdaCL-dc7 deOPdgCL0di{ 2dkH5e3dlIF4dmFIdnOP6d]dCL8dFmdCL:dC=dCL<dy#; =dF:dOPdCL@dNJ4AdHBdB|dCLdCLEd} HdBLIdU dixB dixB dDSdHddE dk. dixB dH*dEdxd@ dOdI"dLdr dKCudB dQdz=d M d Lqd o^ d Lzd @Ld CLd E/d qd OPd CLd CLd CLd CLd CLd CLd CLd Pgd Ngd cs3d K\)d MGd Mffd "CLd #CLd $CLd %CLd &CLd (CLd )CLd *]d +CLd ,CLd -CLd /Md 0CLd 3Cd 5CLd 6CLd `x:D d cCLd dCLd eCLd gOP$d hJ#%d iI.&d lK2d oCL*d rHC,d sYJd tOP.d uNid vCLd wCLd zOPd |CL3d n4d Au6d mY7d d8d d349d p:d fٚ;d js4<d cd OP>d T?d F@d FjAd V @d OPDd C0Ed FFd E-Gd O$d KLd PS3d Id db d ad z{ d g3 d i d s T d s !d CL d CLd CLd _ d CLd o d Bd Bd m4 d ߰d tY d CLd CLd CLd CLd CLd F)[d IWd { d jd ]d l d p3 d no d nvfd (D d )R$d *E_d +Xvd -B d 1OVd 2Dd 3kyd 6xt d 7K+ d :u d ;a9d =[d >^ d ?CLd @CLd ACLd BCLd DCLd GOPd HOPd IOPd KCLd OHd PH_)d QI"7d RGd UJ#d VJ#}ed _1}fd2@JJ Md s1L Nd C%Od Jt<Pd CQd TRd OfSd o Td BVd b Xd C1RYd FG[d >:\d Z:P^d b'_d ~ `d @zBad bd ~ cd ud CLd CLd CLgd kn d CLd CLd CLd CLmd E*nd {ٚod ZQl d CLd CLd CLd CLd CLd CLd CLwd xd K\)yd Q>d OP{d a |d a=}d tt~d ]d Brd E؍d }~ ~d OPd O |d CLd FAd Fad Fd Gud "CLtd #CLd &tƨ d 'o d (k1' 5d *H,6d +Id UCLd VCL:d XK ;d YI.<d ZZ$?d [@`2d ]OPd _CLBd ax+ Cd bS"Dd cAEd e^QFd fl Gd gU{Hd hH, Ld iAMd ju=qNd kSOd lKPd mLAtQd nD4KRd oCSTd qHhUd rI6Vd sFbd tOPd vCLYd xA/Zd y}R d {OPd |CL]d ~o ^d bd OPd CLad P?d OPd CLdd E9[d OPfd ^d CLhd @id Od OPkd Q ld oRmd j\nd pu od a&4pd \\) qd U rd Xf sd L6td Lud Ad OPd CLxd @4yd P{zd GgRd OPd CL}d GgR~d Gfd FU0d Dd OP~d CLd @d R d igd kId f9d CL d Bd CLd OP d ^@d CLd !CLd #Ed %CLd (OPd +nT d ,T= d 6CLd 7CLd 8CLd ;LUL d V6gd AGd Ck >d DqHd Ep#!d FMff"d GiL#d HTs3$d IJL%d JKE&d LKP2'd MJhJ(d NA'd PCL*d RGnd UCL-d W d OPd CL0d z 2d H(3d I:4d F"d OP6d ]d CL8d Fd CL:d C'd CL<d x =d F?d OPd CL@d N5Ad HoBd B(Vd CLd CLEd }: Hd @[Id cb d ixB d ixB d DnQd Hs<d EZd kK d ixB d H*d Ed y)d EVd Od Iid Ld r d K?d B d S_d zd M d Lw0d o^ d Kd @Ld CLd Ed sd OPd CLd CLd CLd CLd CLd CLd CLd Ygd Ngd c9d N=qd Ipd MGd CLd CLd CLd CLd CLd CLd CLd H]d ICLd JCLd KCLd MMd OCLd QCd SCLd TCLd Vw d YCLd ZCLd [CLd ^OP$d _J%d `I&d bH d eCL*d hH/,d iY=d jOP.d kNMd mCLd nCLd pOPd rCL3d unȿ4d wAu6d z|347d {s 8d {o&f9d ~o:d o;d lFf<d ld OP>d U?d F@d FAd V;d OPDd CoEd FxuFd EGd O{|d J6gd Ogd Id c&. d `d zj d gn d i\ d rn d srb !d CL d CLd CLd cx d CLd o,| d | d Cd m d ךgd t4 d CLd CLd CLd CLd CLd Fd I]8dzu djd]dl do dnR dsfd D~d!Md"Ed#Y~d%Bq d)P d*Fi d+jd.xWc d/UrN d2y d3bffd5]fd6^ d7CLd8CLd9CLd:CLd:\dYa^dd_d~ `d@fad{bdBcdvaHdCLdCLdCLgdl50 dCLdCLdCLdCLmdE nd}godY dCLdCLdCLdCLdCLdCLdCLwdyxdIQydM(dOP{da |d`$}dt1X~d]dBdEd }~ ~d OPdSK |dCLdFJd?FdBLudDCLtdECLdHu" dIo| dJjH 5dLHY6dMIAdOCLdPCL:dRJ;dSM<dTY,?dU@`2dWOPdYCLBd[xH Cd\RDd]AEd_m34Fd`nGGdabHHdbH LdcAMdduzNdeT\OdfKPdgL7WQdhDJRdjC޲TdkH1IUdlIVdmF4&dnOPdpCLYdrAZds}I duOPdvCL]do ^dbdOPdCLadPyddOPdCLddEdOPfd^dCLhd@idNdOPkdQ ldomdmffndoz od`pd^G qdX rdZ sdLvGtdLGudAodOPdCLxd@ydMwzdGgRdOPdCL}dGC~dGwdF.AdDdOP~dCLd dRG df`d kd d3d CL dBdCLdOP db}dCLdCLdE9[dCLd"OPd%n d&TQ d(OPd,CLd-CLd0L? d1td2Yd3Wd6GAd8o.d9v\d:t4!d;R"dCLd?CLd@]dACLdBCLdCCLdEMudGCLdICydKCLdLCLdNz? dQCLdRCLdSCLdVOP$dWI%dXI|&dZQed]CL*d`H#P,daZ~dbOP.dcNdeCLdfCLdhOPdjCL3dnY4dAu6d|37di8df9dok:dgy;dl<djdOP>dU?dF_@dEAdVCdOPDdC!PEdF^!FdE^GdOdH`dN4dH&gdcns d_A)dzj dg di/3 dr dsU: !dCL dCLdCLd_LK dCLdo dGdCDdm dΊ7'dt dCLdCLdCLdCLdCLdFdI[gdz? d jd]dl doI dn& dodDVdMdFadZVdB d PNd!I?Ud"sd%x:D d&JĞ d*w d+`yd,\Id-^ d.CLd/CLd1CLd2CLd3CLd^OPd_OPd`OPdcCLdfH`dgHU/dhI`diGndlJ#dnJ#}edS6}fdH@ Mds NdCOdJ.PdCQdTRdOJ)SdnT TdBzVdb^! XdCVYdF6[dL`\dSŰ^df}_d~ `d@IadbdpcdwdCLdCLdCLgdkJj dCLdCLdCLdCLmdE+nd}IodY dCLdCLdCLdCLdCLdCLdCLwdxxdJ >ydN=qdOP{db |d`}duS~d]dBqd$E5d'~@ ~d)OPd,Q |d/CLd2Ed3FHqd4Fd7OІud9CLtd;CLd=u P d>o9X d?jH 5dAH6dBIdDCLdECL:dHK;dKPƜ<dLX6*?dM@udOOPdQCLBdSxt CdTQCKDdUAEdWEFdXjGdY]HdZHr8 Ld[c=qMd\W\)Nd]tOd^KrPd_L/cQdDeRdC*TdHnUdHVdF;dOPdCLYdAeZd},l dOPdCL]doXB ^da^ dOPdCLadOWdOPdCLddD̘dOPfd^dCLhd@`2idMdOPkdQ:t ldrffmdp\)ndoW od`pd^\ qdW rdZ. sdL^tdLudAZdOPdCLxd^ ydKzdGXdOPdCL}dGgR~dG2dEdDIdOP~dCLdFv dR? d[PdVdSydCL dAd CLd OP d|!dCLdCLdDdCLdOPdoXB dT= d!CLd$CLd%CLdPK dQndR\ffdSZdVFKdXpdYxgdZuR!d[ZL"d\wٙ#d^tٚ$d_J%d`K&daK'dbJR(dcFvdeCL*dgGudjCL-dl@;dnOPdpCL0drzu 2dtH 3duIw4dvF*dwOP6dy]dzCL8d|FRdCL:dBdCL<dxe =dFbdOPdCL@dNAdHScBdBdCLdCLEdz HdI[Idm dixB dixB dDSdHs<dE*dk_ dixB dH*dEdxdEVdOdI٢dLdr dK4dB dP=dz dM dLdo^ dKdEʘdCLdEdrgdOPdCLdCLdCLdCLd CLd!CLd"CLd%Yd&Lvfd'Pgd)Kd*L\d+M >d-CLd.CLd/CLd0CLd1CLd2CLd3CLd4]d6CLd7CLd8CLd9Mtd;CLd>Cd@CLdACLdCz dECLdFCLdGCLdJOP$dKI%dLIx&dOMcdQCL*d|H0,d}Ztd~OP.dNϽdCLdCLdOPdCL3dn)4dAu6doL7d_@8dis39dn:djg;dj<dodOP>dTxy?dF@dE AdVHdOPDdBEdFLFdE'GdO_YdDdIdCFfdb2 dbdzj dh di= dr]\ dr !dCL dCLdCLdb6 dCLdoXB d|& dE@dm4 dꨬ\dtU dCLdCLdCLdCLdCLdFdI_ dz? djSd] dla7 do dn doɚd D3d Nd Fd[@dB dPj@dLd~4dx# dQ dEuU dF`dG[dH^ dJCLdKCLdLCLdMCLdNCLdQOPdSOPdTOPdVCLdYHJMdZHXd\I|d]Gd`J#daJ#}edG}fd=@4 Md{s\ Nd}COd~KPdCQdTDRdOCSdn TdBVdbp XdCWYdF'[dv\d]^dd_d~ `d@,cad\bd~zcdyQdCLdCLdCLgdl*< dCLdCLdCLdCLmdEnd|FgodY dCLdCLdCLdCLdCLdCLdCLwdAxdJHydOdOP{dawx |d`P}dqK~d]dBZdEZd~ ~dOPd Pn |d"CLd%Fd&F d'F d)FfYud+CLtd,CLd.u>w d/o?} d1j 5d3H6[6d4Id6CLd7CL:d9K?m;d:L<d;Rc?d<@`2d>OPd@CLBdBxt CdCODDdDAkEdFgQFdGkGLc\*HLHP LLjQML^{NL{\*OLKPLL'qQLD{_RLD`TL GUL H8VL FL OPLCLYLAZL| LOPLCL]LoK ^L`JLOPLCLaLO[L OPL"CLdL$DVL&OPfL(^L)CLhL+@4iL,WAL.OPkL/QL lL0pmL1nHnL2oQ oL5`fypL7[ qL8T rL9W\ sL:LMHtL;LMuLeA@LfOPLhCLxLj: yLkKDWzLlGLnOPLpCL}LrGB~LtGLuELLvDLwOP~LyCLL{ L}Q L~ULRLRLCL LA LCLLOP LMwLCLLCLLDSLCLLOPLn LTt LCLLCLLCLLJ- Lo3L^FfL\LELo>LvBLtG!LP@"Lf&g#Lc&f$LJ%LK&LK'LKD^(L LCL*LGXLCL-L@`2LOPLCL0Lz 2LG3LIi4LE/LOP6L]LCL8LELCL:L-BEL0CL<L2x+ =L3FEL5OPL7CL@L:NAL;HGBLCLL?CLELA{w HLCCefILDk[ LFixB LHixB LID|LJHs<LKE9[LLk LMixB LNH*LOELQxLTEVLUOLWILXK)L[r L^K6LaB LbR0Ldz9LeM LfLLo^ LKLEʘLCLLELs/LOPLCLLCLLCLLCLLCLLCLLCLLPgLG6gLPgLLLILM(LCLLCLLCLLCLLCLLCLLCLL]LCLLCLLCLLMLCLLCLCLLCLL@۶LCLLCLLCLLOP$LI-%LIso&LHLLCL*LG,LZWuLOP.LOLCLLCLLOPL CL3L nw4LAu6Lr7L_ff8Lb39Ln:Lhf;Ls<LmfgLOP>LU>a?LF@LEALVgL OPDL!BEL"F5GFL#ExGL$OAL'D3L(IvfL)CvgL*b L-cL.y L/h6 LYi= LZrs L[rn !L^CL L_CLL`CLLb_= LfCLLhn LiDLjDLkmJ Lm]Lptj. LsCLLuCLLvCLLwCLLxCLL{E`L|I}Lz LjNL]Ll5h Lo Lm LrLDLMQLEVL\ELB3 LP*LM1LALx LM Ls L`LZ3L^ LCLLCLLCLLCLLCLLOPLOPLOPLCLLH7DLHZLI@LHLJ#LJ#}eLmMk}fd.@ ML)qn NL+COL,KrPL-Ct QL0TARL2O"SL3xH TL4BȚVL5b3Y XL6C(TYL8F![L9\L;Yd^L>c_L?~ `L@@?aLB@YbLC@hcLDxLFCLLHCLLICLgLLk LNCLLOCLLPCLLQCLmLUEHnLX|oLYY L[CLLCLLCLLCLLCLLCLLCLwLBxLKfyLNLOP{La |La (}Ls~L]LBRLFxL@ޝ~LOPLOX |LCLLE:LELF~LJuLCLtLCLLu8R Lnu Lk 5LH 6LILCLLCL:LJ;;LG&<LWk?L@JeLOPLCLBLxP CLN0 DLAdELrFLx\*GLdQHLG LLiML]NLzOLKPLKQLDNRLD,QTLGULHVLELOPLCLYL@۶ZL|` LOPL CL]L n ^L_SLOPLCLaLN@LOPLCLdLDSLOPfL^LCLhL @AiL!VYEL#OPkLLQO lLMnffmLNlGnLOo# oLR`fypLT\ qLUU rLVX sLWLEtLXLuLYA=LZOPL\CLxL^^ yL_PpIzL`HLbOPLdCL}LfG̶~LhGyLjE{LkD,LlOP~LnCLLp LrQ LsULtRLu[gLwCL Ly@=L|CLLOP L[$LCLLCLLD|LCLLOPLn LS LOPLCLLCLLIg LaLWLUlLELy\LpL}fg!LGfg"L]s3#LX$LJ%LK6&LK 'LKOI(LG=PLCL*LGQLCL-L@LOPLCL0Ly 2LGX3LI_ 4LELOP6L]LCL8LELCL:LBEL CL<L"x:D =L#F/L%OPL'CL@L*NAL+H6NBL,BgL.CLL/CLEL1zF^ HL3IL6Xۇ L9ixB L:ixB L;D|Lk L@ixB LAH*LBELDxLGEVLHOsLJIALKK+LNr LxK3L{B L|OL~y?LM LLLo^ LKLEʘLCLLELrLOPLCLLCLLCLLCLLCLLCLLCLLRYLG6gLYyLKRLIpLMLCLLCLLCLLCLLCLLCLLCLL]LCLLCLLCLLMLCLLCLCLLCLLB LCLLCLLCLLOP$LI1%LIp&LRzLCL*LGܜ,LZ5LOP.LN^LCLLCLLOPLCL3Lnh4LAu6Lo7LU348L^Y9L nM:L fy;L p3<L iYLOP>LTU?LF@LEƐALVMLOPDLBELF"7FLEiGLOOxLBF LCKVfLEE0LFa LIc&LJze LKhb LLii LMq LNr]\ !LRCL LSCLLTCLLV`׬ LYCLL[oK L\DSL^DL_mJ LaLdtM LgCLLhCLLiCLLkCLLlCLLoELpIoLs{ Luj7Lx] LylR L{oK Lm LnLC$LP`LEL]1LB LN<LOXLBLw LN Ln L`L[fL^ LCLLCLLCLLCLLCLLOPLOPLOPLCLLH#PLHaLI"LHLJLJ}eLaQ }fL@ MLrHZ NLCOLKCPLCQL"TzRL#O`SL$@rTL&BVL'b3Y XL(CWYL*F'[L+\L,_}^L/b_L1~ `L3BDaL4~bL5}cL6vL8CLL9CLL:CLgL>k L@CLLACLLBCLLCCLmLnF(nLq|C4oLrY LuCLLvCLLwCLLxCLLyCLLzCLL{CLwLx=qxLIyLO34LOP{La |L`A}Lrn ~L]LB-LF\L~ ~LOPLPƥ |LCLLEmLELFLPQuLCLtLCLLuA Lo Lj 5LG6LIwLCLLCL:LK;LO<LY`I?L@C LOPLCLBLy1 CLL/DLALELsFLFqGLjQHLG LLczMLW\)NLtOLL#PLKQLDVRLDHTLG#ULH\VLELOPLCLYL@}BZL| LOPLCL]Lnn ^L\FLOPLCLaLNL OPL CLdL5DuL7OPfL9^L:CLhL< iL=TL?OPkL@Q>j lLBq(mLCm33nLDo oLG`yFpLI\ qLJT rLKW sLLLCDtLMLuLNALOOPLQCLxLS@4yLTK zLUHzxLWOPLYCL}L[G~L]Gd;L^E6OL_DqL`OP~LbCLLd O LgQ% LhULiPyLj_LlCL Ln@LCLLOP LI\LCLLCLLDuLCLLOPLn LT. LCLLCLLCLLH Lf9L]L[LELnLtLr!LX4"LDy#LYٙ$LJ%LKX&LK 'LK(L@LCL*LGQLCL-L @RL OPL CL0L z)B 2L G3L IQk4L EeL OP6L ]L CL8L EV[L CL:L BɀL CL<L x =L F!OL OPL CL@L #N&AL $H+gBL %CL 'CLL )CLEL +zcz HL -@RIL 0e L 2i L 4i L 5DXL 6Hs<L 7EGL `l5h L aixB L bH*L cEL exL hEVL iO/L kISL lLL or L rK()L uB L vPL xyL yM L zLL }o^ L KL EʘL CLL EL s L OPL CLL CLL CLL CLL CLL CLL CLL XFgL N4L YgL K\)L JL N=qL CLL CLL CLL CLL CLL CLL CLL ]L CLL CLL CLL MYL CLL CL CLL CLL BL CLL CLL CLL OP$L I%L Il&L L^(L CL*L Ge,L [HL OP.L O1L CLL CLL OPL CL3L nR4L Au6L j337L [Y8L (b39L *n:L ,j;L -n<L .oLL /OP>L 0T7?L 1Fj@L 2ESAL 3UuL 4OPDL 5B EL 6F@FL 7EZ$GL 8O$-L ;FvgL ` L A_cHL By< L Ch L Eii L Fq^ L Grs !L JCL L KCLL LCLL NaL L RCLL Tn`* L Ux:D L VD;L Wmv L XE,( L Yt/ L ]CLL ^CLL _CLL `CLL aCLL EL IL z? L jL ]L l& L n L m_ L pL C$L SL EqL ^L B3 L NL PL CL w L Ri L p* L `L YL ^ L CLL CLL CLL CLL CLL OPL OPL OPL CLL H0L H^AL IL HL JL J}eL X[Q}fL@ ML r NL C OL K4PL CQL TgRL O*SL A^vTL BVL aL XL C YYL F.U[L ˫\L "R!l^L %bv$_L &~ `L (C@aL )@hbL *aHcL +vaHL UCLL WCLL XCLgL [k^ L ]CLL ^CLL _CLL `CLmL dGMnL goL hYj L jCLL kCLL lCLL mCLL nCLL pCLL qCLwL t{xL uLaHyL vOL wOP{L za |L }`-}L ~rӫ~L ]L CYL F9L ~OI ~L OPL X[ |L CLL E<L EL FL K{uL CLtL CLL u L o L j 5L G6L IXL CLL CL:L K;L L<L Z0?L @JeL OPL CLBL y# CL TDL AA;EL lFL zGGL X{HL Gv5 LL cRML W\)NL tGOL LZPL HAQL DRL D\TL GzUL HucVL EɝL OPL CLYL @ZL {a L OPL CL]L n4a ^L \L !OPL #CLaL &MvL 'OPL )CLdL +DnQL -OPfL /^L 0CLhL 2' iL 3R\# qL ?TǮ rL @Z=q sL AL@tL BLuL CBc&L DOPL FCLxL H@XyL ISzL KHL MOPL OCL}L QH~L SGPJL TEL UDiL VOP~L CLL r L Pޚ L QL NL `ɚL CL L @L CLL OP L v L CLL CLL D;L CLL OPL nn L Tʄ L CLL CLL CLL H- L c&fL WL YL E{}L p34L vBL t >!L EL"L X#L \ٙ$L J%L K&L J'L K(L Fv L CL*L GQL CL-L @.L OPL CL0L zT 2L G3L IA4L EL OP6L ]L CL8L DYL CL:L BɀL CL<L xe =L F L OPL CL@L NrAL HMBL BL CLL CLEL z)B HL GIL j L Ii& L Ki& L LDL MHs<L NEV[L Olo L Pi| L QH*L REL TxML WEVL XOPL ZI_L [LL ^r L `K&L dB L eRL gyBL hM L iLL lo^ L nKL qEʘL sCLL vE'L wqL xOPL zCLL {CLL }CLL ~CLL CLL CLL CLL NgL MpL YfL K\)L I\L PGL CLL CLL CLL CLL CLL CLL CLL ]L CLL CLL CLL ML CLL CUL CLL CLL @۶L CLL CLL CLL OP$L I%L IiN&L I L CL*L G,L ZL OP.L OkL CLL CLL OPL CL3LnF4LAu6Ls37Lh8Lwٙ9Ln=[:La;Lm <Lf9L OP>L!TY?L"FQk@L#EAL$V3L%OPDL&BEL'EFL(EHGL)OwL+DS4L-IL.CL/`^ L2` L3yʂ L4h L5ixB L6q L8q !L;CL L;LKg<LZF?L@JeLOPLCLBLy{ CLV&DLAELkGFLxGL\ffHLG| LLZ\)MLONLm{OLL:PLDyQLDԒRLDl$TLGeULH]VLE]LOPLCLYL )b ZL {/ L OPLCL]Lm ^L]LOPLCLaLN(ELOPLCLdLDuLOPfL!^L"CLhL$U iL&OLL(OPkL)Pڥ lL*smL+opnL,q oL/`&pL1`\ qL2Vp rL3Z sL4L=tL5LuL6CO L7OPL9CLxL;@yLDYL@HdLAEV[LBlo LCi LDH*LEELGx LJEVLKOPLMILNLLQr LSKjLVB LWPILYyL[M L\LL_o^ LaKLdEʘLfCLLiELjslLkOPLCLLCLLCLLCLLCLLCLLCLLNgLRfLY\LM >LILMffLCLLCLLCLLCLLCLLCLLCLL]LCLLCLLCLLM<LCLLCLCLLCLLBNLCLLCLLCLLOP$LI%LIfi&LQGLCL*LGV,LY9LOP.LOhLCLLCLLOPLCL3Ln*<4LAu6Le7LT8L gf9L m.:Lh ;LnS3<Lm3LOP>LTk?LF7@LE"ALV7GLOPDLBJvELEFLE:qGLO*LB LGfgL AL!` L$c_L%y L&hׄ L'ixB L)qV L*qt !L-CL L.CLL/CLL1b L\CLL_n L`B)LaE]Lbm LcC Lds LgCLLhCLLjCLLkCLLlCLLoELpItLsz Luj%7Ly] Lzk/ L{n L|mZY LqS3LCLSLDL_aLB LN&LSOLD"BLw LU L|" L`yL[3L^ LCLLCLLCLLCLLCLLOPLOPLOPLCLLGLHTGLItLH@TLJLJ}eLcZ}fL@ MLs NLCCOLK9 PLCQLT_gRLO*SL%o+ TL&C'dVL'b XL(BaYL*F(~[L+\L,[^L0dpR_L1~U `L3BfaL4@fbL5A >cL6z8RL8CLL9CLL;CLgL>k L@CLLACLLBCLLCCLmLFG!nLJ}vgoLKYӅ LMCLLNCLLOCLLPCLLQCLLRCLLTCLwLW|xLXIyLYOLZOP{L]b33 |L_`R}Ls~L]LC$LE*L~# ~LOPLR5 |LCLLELEwLFLLMBuLCLtLCLLtN LoV Ljm 5LH6LH:LCLLCL:LK);LPi<LZ ?L@C LOPLCLBLz CLUDLA`ELo=qFLpGLb >HLG[+ LL`MLSHNLqGOLKhPLD 9QLDRLDtTLGFCULHIVLEWLOPLCLYL~OI ZL{ LOPLCL]Lmi ^L^-LOPLCLaL O=oL OPL CLdLDQNLOPfL^LCLhL O iLQ[LOPkLP( lLnmLjRnLn= oL_<pL!^ qL"V\ rL#Y sL$L@tL%LTuL&CL'OPLQCLxLS@yLTLezLUI{LWOPLYCL}L[H~L]GZL_DL`DG&LaOP~LcCLLe LgP1 LhRLiJS3LjYfLlCL LnBrdLqCLLtOP LwHHLzCLL{CLL}CLCLLOPLnB LT LOPLCLLCLLG LbILV@LX4LE6 Lm\LsLqG!LAٚ"Lh@#Le@$LJ{a%LK&LK()'LK(L LCL*LGCLCL-L@۶LOPLCL0Ly 2LGg3LI<4LDp~LOP6L]LCL8LDnQLCL:LBLCL<LxWc =LELOPL!CL@L$N dAL%H jBL'IL)CLL*CLEL,zT HL.}=IL1akV L4jb L5jD L6DVL7HdL8EdL9l8 L:i& L;H*LxLAEVLBOPLEILFLLIr LKJLNB LOLvLQyLRM LSLXL~o^ LKLEʘLCLLELrLOPLCLLCLLCLLCLLCLLCLLCLL]LNgL^YL_LG L_ > LCLLCLLCLLCLLCLLCLLCLL]LCLLCLLCLLMLCLLCaLCLLCLLAOLCLLCLLCLLOP$LI(%LIc&LKLCL*LG(T,LYLOP.LO<LCLLCLLOPLCL3Ln4LAu6Lx7Ll&f8LjY9Lmu:L[;Les4<LbgLOP>L S7?L F@L EAL U#L OPDLBHIELEϣFLE$GLO/LB|LG3LAL_ Lc_LDy< LEh LFixB LGq+ LHqHF !LKCL LLCLLNCLLP_ LSCLLUn LVC/LWDLXm4 LYC0 L[s L^CLL_CLL`CLLaCLLbCLLeELgIuLjz Llj<Lo] Lpkh LqnB Lrm=" LuoLyCLzSL{CL|a~L~Bf LNLTLCLw LJ L~ L`|L\IL^ LCLLCLLCLLCLLCLLOPLOPLOPLCLLG۵LHH}LId|LH,bLJLJ}eLYYk}fL@u MLt( NLCOLKrPLB{QLTc6RLO14SLo TLC :VLb9 XLBtYL F[L">:\L#Z^L&e6_L'~U `L)A!aL*@+bL+@{cL-xL/CLL0CLL1CLgL4k L6CLL7CLL9CLL:CLmL=FnL@}ioLAY} LCCLLDCLLECLLGCL4CL4CL4CLw4|{x4Hy4Op4OP{4 bwx |4_}4r ~4]4C^4E&4}; ~4OP4PB |4 CL4#ET4$Er4%F$4)Ou4+CLt4,CL4.t 4/oƨ 41jȵ 543H644H46CL47CL:49J3;4:L;<4;Zn?4d@Je4fOP4hCLB4jzcz C4kU-D4l@%E4n_ >F4oqGG4pX34H4qGO> L4ro M4s_ > N4tI34O4uK_<P4vE{Q4wD3R4xDxyT4yG+U4zH4V4{E4|OP4~CLY4}I Z4{w 4OP4CL]4m ^4_=`4OP4CLa4O34OP4CLd4D;4OPf4^4CLh4~' i4W"4OPk4Pg l4Pm4PRn4l33 o4_p4]z q4V{ r4\G s4L:'t4Lu4E4OP4CLx4A$Zy4Pz4I\4OP4CL}4Ge~4F4D4D714OP~4CL4Fv 4O 4F)4sY4GI4CL 4C'4CL4OP 4d94CL4CL4,C>4.CL41OP44n 45Tʄ 47OP49CL4:CL4=F` 4>^4?Ng4AO4CE4En44GtH4Hrk!4IA@"4Jv33#4KiL$4LJqb%4MK[&4NK'4OK(4PAl4RCL*4TGC4WCL-4Y@4[OP4]CL04_y 24aG=34bI44cD?,4dOP64f]4gCL84D;4CL:4B4CL<4xH =4E4OP4CL@4NA4G\B4B4CL4CLE4zr H4z`I4\q 4ju 4j> 4DY4Hd4EsZ4ll 4j' 4H*4E4xܩ4EV4O4I4L4r 4J4B 4Sv4yC4M 4L4o^ 4K4Eʘ4CL4E4 q4 OP4 CL4 CL4CL4CL4CL4CL4CL4X4Pg4^f4_4_ > 4_ > 4CL4CL4CL4 CL4!CL4"CL4#CL4$]4&CL4'CL4(CL4)M4+CL4.C04XCL4YCL4[@A4]CL4^CL4_CL4bOP$4cI~%4dI`&4gL4iCL*4lG|,4mXk4nOP.4oO4qCL4rCL4uOP4wCL34ymq44{Au64~ag74a3384q@94l:4[y;4a&g<4\Fg4OP>4T?4E@4EpcA4U34OPD4HxME4E^F4EG4N4D#34I 4C 4_> 4a4y 4i/3 4i 4q 4q9 !4CL 4CL4CL4b(\ 4CL4oK 4Fb4DnQ4mi 4B 4sl 4CL4CL4CL4CL4CL4E4Is4z[ 4j94] 4k=" 4n 4m. 4q94 C4!S4"Cf4#b=04%B\ 4(N4*Vr4+D4.w| 4/S 42q" 43`vf44[46^ 47CL48CL49CL4:CL4;CL4?OP4@OP4AOP4CCL4FG4HHC4II_ 4JHp4MJ4NJ}e4ZD}f4.@w M4s1L N4C O4KPP4C EQ4Tv;R4O8VS4o T4CDV4b X4BiY4E[49\4^X.^4e(_4~ `4AFa4@xRb4@#c4w{4CL4CL4CLg4kB 4CL4CL4CL4CLm4Fαn4|o4YӅ 4CL4CL4CL4CL4CL4CL4CLw4zHx4Gy4Nz4OP{4b"# |4`P}4sQ~4]4C+4E94~ ~4 OP4 O |4CL4E4E~4FӍ4Fj3u4CLt4CL4u 4pc 4jk 54 H64!H4#CL4LCL:4NI;4OH<4PZSN?4Q@-S4SOP4UCLB4Wz C4XS~D4Y@%E4[^F4\o G4]WRH4^Fn L4_n( M4`^Q N4aHO4bJP4cGBbQ4eER4fDT4gG U4hH (V4iEy4jOP4lCLY4n}I Z4oz? 4qOP4sCL]4umh ^4v^4wOP4yCLa4|Og4}OP4CLd4Du4OPf4^4CLh4~ i4VD4OPk4P` l4Q\m4Pn4iB o4_!p4\W q4U r4YQ s4L#ct4Ldu4Ge4OP4CLx4A/y4Mz4Jw4OP4CL}4H#~4Ff4D4D714OP~4CL4 4On> 4FY4y24K4CL 4Ci(4CL4OP 4`4CL4CL4D4CL4OP4"nT 4#Sl 4%OP4'CL4(CL4+FQ 4,Yff4-O<4.Q341E43zG44@#45~!46If"47`f#48Z$49Jk%4:K^&4;K{'4 4 CL4 CL4 CL4 CL4CL4CL4CL4]4CL4CL4CL4M4ACL4CC4ECL4FCL4HA4KCL4LCL4MCL4OOP$4PIm%4QIZ&4TO?4WCL*4ZF,4[X*4\OP.4]O<4^CL4_CL4bOP4dCL34gms44iAu64kfL74lhff84mt@94pk:4rZ;4sa`<4t[4uOP>4vT;J?4wE@4xEi"A4yU4zOPD4{LE4EtF4DG4O!I4E|4J44EC44^ؐ 4]4yʂ 4i[ 4i 4p- 4qV !4CL 4CL4CL4_ 4CL4n% 4xo 4Du4mv 4A 4s 4CL4CL4CL4CL4CL4E4Il4z 4j=p4] 4kZY 4n 4m 4 qL4 CxB4S4C14ct&4B{ 4OZ4X4D64w| 4K 4t 4!`|4"Z4#^ 4$CL4%CL4&CL4(CL4)CL4,OP4-OP4.OP40CL44G45H446IU 47H4:J4Fv<4?Z`?4A@4BOP4DCLB4Fz[ C4GRD4H@HE4JhGF4KnfgG4LkfgH4NF L4On M4P^ N4QH O4RH~P4SG]Q4TEtR4UDxyT4VFTU4WGޮV4XEG4YOP4[CLY4]}I Z4^zF^ 4`OP4bCL]4dmh ^4f_4gOP4iCLa4lO4mOP4oCLd4DS4OPf4^4CLh4~ i4T4OPk4PRi l4Pm4PHn4m o4_}p4[ q4T r4XL s4Lt4Liu4I4OP4CLx4BUZy4Sjz4JP4OP4CL}4H@~4FM4Dq4D1d4OP~4CL4@A4Om 4B4sf4G6g4CL 4D4K4CL4OP 4 ~>4 CL4 CL4 D4 CL4 OP4 n 4 S 4 OP4 CL4 CL4 F. 4 Y\4 Mff4 OFf4 "E=4 $qfg4 %x\*4 &ug!4 '@"4 (Yٙ#4 )Vٚ$4 *Jb%4 +JW&4 ,K^'4 -K(4 .GC4 0CL*4 2GJY4 5CL-4 7A+4 aOP4 cCL04 ez7 24 gG`34 hHچ44 iD4 kOP64 m]4 nCL84 pD4K4 sCL:4 uBrd4 xCL<4 zxo =4 {E4 }OP4 CL@4 NA4 G(B4 BE4 CL4 CLE4 yN H4 @qI4 k 4 kQ 4 j 4 D4 Hd4 EZ4 m 4 ju 4 H*4 E4 y U4 EV4 O4 Ib4 K84 r 4 JP4 B 4 S4 yB4 M 4 LX4 o^ 4 Kc4 Eʘ4 CL4 Ej4 saW4 OP4 CL4 CL4 CL4 CL4 CL4 CL4 CL4 XP4 Mg4 Yg4 _4 G 4 _ > 4 CL4 CL4 CL4 CL4 CL4 CL4 CL4 (]4 )CL4 *CL4 +CL4 -M.4 /CL4 1C4 3CL4 4CL4 6Ae4 9CL4 :CL4 ;CL4 >OP$4 ?Ia%4 @IV}&4 BJn4 ECL*4 HF,4 IX_4 JOP.4 KO4 MCL4 NCL4 POP4 RCL34 Um44 WAu64 Zcs374 [e384 [bٚ94 ^jF:4 `Yٚ;4 a`y<4 bZ4 cOP>4 SA?4 E@4 EbA4 U|4 OPD4 Mu3E4 EK6F4 DG4 N4 E4 Ki4 Ei4 _T 4 ae4 y 4 i 4 i 4 pӖ 4 p- !4 CL 4 CL4 CL4 a/ 4 CL4 n}[ 4 I64 E4 mh 4 }4 sF 4 CL4 CL4 CL4 CL4 CL4 E4 I^!4 z 4 j>4 ] 4 kZY 4 n0 4 o 4 r&f4 CV4 RN4 C4 d4 B= 4 O/4 Y4 D]44 wna 4 P 4 tL 4 `f4 Z4 ^ 4 CL4 CL4 CL4 CL4 CL4 OP4 OP4 OP4 "CL4 %G 4 &H& 4 'IF4 (GV4 TJ4 WJ}e4 W}f4 @c M4 qsk N4 sCCO4 tK14P4 uCQ4 xTv;R4 zOTS4 {o T4 |C=DV4 }b9 X4 ~C YY4 E[4 \4 \&g^4 c_4 ~ `4 @!a4 @b4 qc4 x4 CL4 CL4 CLg4 kF 4 CL4 CL4 CL4 CLm4 Fzn4 }yo4 YӅ 4 CL4 CL4 CL4 CL4 CL4 CL4 CLw4 B=qx4 Hy4 N 4 OP{4 bwx |4 _}}4 sC~4 ]4 B4 Et4 ~ ~4 OP4 Sh |4 CL4 E4 EE4 F4 Q^u4 #CLt4 $CL4 &u 4 'o 4 (j 54 +I64 ,H4 .CL4 /CL:4 1G;4 2P <4 3ZV?4 4@&4 6OP4 8CLB4 :zr C4 ;QTD4 <@HE4 >^F4 ?i G4 @YHH4 AE L4 Bnfg M4 C^ N4 DH O4 EGP4 FHAGQ4 GE%R4 HDT4 IFU4 JGV4 KE4 LOP4 NCLY4 P}; Z4 QzF^ 4 SOP4 UCL]4 Wmv ^4 a4 OP4 CLa4 O]4 OP4 CLd4 D4 OPf4 ^4 CLh4 ~ i4 R4 OPk4 P[ l4 S\m4 SRn4 kp o4 `@p4 ] q4 W\) r4 X s4 Kt4 LlAu4 K34 OP4 CLx4 Bwy4 R-z4 J34 OP4 CL}4 H]~4 F~4 DzF4 D- 4 OP~4 CL4 @&4 Nf 4 Jٙ4 E4 S4 CL 4 D4 CL4 OP 4 V1 4 CL4 CL4 C>4 CL4 OP4 n 4 S 4 OP4 CL4 CL4 F2{ 4 a4 V,4 X4 E94 q4 t4 r>!4 J"4 i&g#4 e$4 JZ%4 I(&4 K'4 K(4 J 4 MCL*4 OG4 RCL-4 TAAh4 VOP4 XCL04 Zz 24 \G?C34 ]H44 ^C4 _OP64 a]4 bCL84 dD4 gCL:4 iBy4 lCL<4 ny1 =4 oE4 qOP4 sCL@4 vMA4 wGmB4 xJ34 zCL4 |CLE4 ~z7 H4 yI4 n 4 kK 4 kQ 4 DY4 Hd4 EZ4 mYk 4 j 4 H*4 E4 y-G4 EV4 O?4 Ic4 K64 r 4 JP4 B 4 QCl4 z4 M 4 L4 g+ 4 KU4 Eʘ4 CL4 E4 s%4 OP4 CL4 CL4 CL4 CL4 CL4 CL4 CL4 Pg4 N94 Yg4JG4H4GH4CL4CL4CL4CL4CL4CL4CL4]4CL4CL4 CL4!Mf4#CL4&C4(CL4)CL4*At@4-CL4.CL4/CL42OP$43IP%44IR&47O749CL*4OP.4?O4ACL4BCL4EOP4FCL34Im44KAu64vr74wnff84xv94zi:4~_s3;4d4<4h4OP>4To?4Et@4E[A4V4OPD4ME4E(F4DRG4O;D4F34K4E4^ 4dx4yʂ 4iQ 4i 4ph 4p !4CL 4CL4CL4_ 4CL4n}[ 4AH4EG4m 4D 4s 4CL4CL4CL4CL4CL4E4IV4z$ 4jEE4] 4kK 4nB 4n9 4p34C5Y4S-4Ct4e4Bq 4NR4[a4C4w_ 4N 4u* 4`l4[4^ 4 CL4 CL4 CL4 CL4CL4OP4OP4CL4AG4BHX4CI>[4EGv4HJ4IJ}e4[=}f4 &@ M4cs. N4eCCO4fJ P4gC EQ4jTnR4lOTS4mo T4nC5V4ob9 X4pCWY4rE~'[4s9\4uYٚ^4b_4~ `4@1a4b4@{c4vB4CL4CL4CLg4k7 4CL4CL4CL4CLm4Fj<n4}go4YӅ 4CL4CL4CL4CL4CL4CL4CLw4}Hx4IaHy4OaH4OP{4bUV |4_}4tV~4]4Bb4Eo4}R ~4OP4R |4 CL4 E4E4F 4IGu4CLt4CL4t 4o 4jG 54I64H4 CL4!CL:4#Ge;4$P8<4%V?4&@4(OP4*CLB4,z7 C4-O?D4.@hE40fF41nfgG42jH43Ec L44YM45P(N46k >O47GHP48Hv!Q49E4HR4:DrT4;F U4OP4hCLY4j}; Z4ky 4mOP4oCL]4qmv ^4s` I4tOP4vCLa4yO14zOP4|CLd4~D4OPf4^4CLh4~ i4OI>4OPk4P: l4bQm4^(n4kO\ o4`p4` q4Wp r4[8R s4Kt4LRu4K4OP4CLx4Cy4OPz4J|14OP4CL}4Hzx~4FM94Di4D,Q4OP~4CL4@Q4N8T 4Vٚ4P4_4CL 4EO4CL4OP 4U n 4CL4CL4C4CL4OP4n}[ 4SNT 4OP4CL4CL4F 4`g4Tg4Vfg4EdW4o40w >41s!43O"44g#45a33$46JO%47H&48KXb'49K(4<~OI 4?CL*4AGg4DCL-4FAW34HOP4JCL04Ly 24NG+K34OH44PD4QOP64S]4TCL84VD4YCL:4[Brd4^CL<4`y1 =4aEZ4cOP4eCL@4hMA4iG(B4jI4CL4CLE4yl H4F&EI4XGZ 4k) 4kK 4D4Hd4E4mv 4kQ 4H*4E4x4EV4O4H4K<-4r 4JP4B 4Lv4z 4L4L4g+ 4KU4Eʘ4CL4E4t4OP4CL4CL4CL4CL4CL4CL4CL4Yg4Ng4a4I\4H4R4CL4CL4CL4CL4CL4 CL4 CL4 ]4 CL4CL4CL4M4CL4C<4CL4CL4B)4CL4CL4CL4!OP$4"IC%4#IO@&4&Nk4(CL*4+F,4,X4-OP.4.O.40CL41CL4\OP4^CL34`m44bAu64exL74fjf84gf94ji :4leFg;4mk<4nj4oOP>4pS6?4qEt@4qERwA4rU4sOPD4uLE4uE!F4vDG4wOF4zE4{Jf4|EC44~_ $ 4cS4y+ 4i& 4i 4p 4ph !4CL 4CL4CL4_޿ 4CL4mi 4~l^ 4D- 4lD 4F4D 4s 4CL4CL4CL4CL4CL4E4IP4z[ 4jI4] 4k 4nn 4m_ 4p4C-54T24C 14g4BǮ 4N(4]"4CZ4wQ? 4M 4l 4`4Z6f4^ 4CL4CL4CL4CL4CL4&OP4'OP4(OP4*CL4-G04/H40IY41G44J45J}e4\}f4@Y M4Ot7K N4RC O4SJVP4TCjQ4WTnR4XO[S4Yo T4ZB#V4\a X4]C(TY4_E$[4h\4^`^4b+P_4 `4@a4|b4~c4w4CL4CL4CLg4k+ 4CL4CL4CL4CLm4FUmn4go4Y+ 4CL4CL4CL4CL4CL4CL4CLw4@x4I#y4N4OP{4` |4__}4q~4]4B4En4}~ ~4OP4V |4CL4EW4E|4F4Iu4CLt4CL4t 4o 4jS 54 I~64 Ht4 CL4 CL:4G-a;4MB<4W?+?4@4OP4CLB4y C4N,D4@E4_GF4k(G4l H4Es L4 Y >M4!ON4"j\O4$GMP4%HKQ4&E<R4'DT4PFpRU4QGyV4RD_4SOP4UCLY4W}I Z4Xy 4ZOP4\CL]4^mh ^4`^U4aOP4cCLa4eN[4fOP4hCLd4jD4lOPf4n^4oCLh4q~z i4rL04tOPk4vP$x l4w`m4x[n4ylW o4|`np4~[z q4T = r4V s4K;t4L:'u4J#4OP4CLx4C/y4Mz4Jm4OP4CL}4H~4FW4DI|4D+4OP~4CL4@}B4M[ 4Rc44N04\g4CL 4E9[4CL4OP 4o 4CL4CL4C~4CL4OP4m 4R\ 4OP4CL4CL4E 4_4S4V,4El4p344vQ4 t!4!N"4"r#4#^33$4$JD%4%H&4&Kz'4'Kظ(4(BF4*CL*4,F/4/CL-41At@43OP45CL047y@ 249G+K34:H44;C4]4?CL84ACμ4DCL:4FBk!4ICL<4Kxo =4ME4OOP4QCL@4|MA4}GB4~G4CL4CLE4w H4@I4` 4k 4k) 4EZ4Hd4E4m 4kK 4H*4E4x4EV4O`4Is4KCu4r 4JP4B 4S 4z 4L4L+4g+ 4Jn4Eʘ4CL4EΩ4sl4OP4CL4CL4CL4CL4CL4CL4CL4Yg4Ng4bf4J >4I4O4CL4CL4CL4CL4CL4CL4CL4]4CL4CL4CL4M4CL4Cy4CL4CL4@4 CL4 CL4 CL4OP$4I4^%4IL\&4I4CL*4Fb,4X4DOP.4EO4GCL4HCL4JOP4LCL34OmK44QAu64S@l74Tn384Uf&g94Xi:4ZeFg;4[if<4\iFg4]OP>4^T8?4_E~@4`EGA4aVr@4bOPD4cIE4dE"iF4eE3G4fOX!4iF34jK04kEC44l^ 4oa%;4px 4qj 4si 4tpmy 4upPL !4xCL 4yCL4zCL4|aL 4CL4m 4Go4Cw4k/ 4EAt 4s 4CL4CL4CL4CL4CL4E4I=s4z? 4j?4] 4j 4n% 4m=" 4ps34C.4S4B.4hw4B 4NO4^4C_4wB 4S 4u 4`P4[f4^ 4 CL4 CL4CL4CL4CL4OP4OP4OP4CL4Gp4H4I{.4Gv4#J4$J}e4[}f4@j M4>t0 N4@CO4AJqP4BBөQ4ETLbR4GOjAS x T BnV aO( X C(TY Ea[ v\  Zȉ^  c/_  ` @a }b }fgc w CL CL CLg k CL CL CL  CLm #FAn &}o (Xn *CL +CL ,CL -CL .CL /CL 0CLw 4Ax 5Jy 6Nf 7OP{ :` | d`b} etv~ h] kB~ lEK o~ ~ qOP tRU | vCL zEž {Ech |F Nzu CLt CL t^  o  jfg 5 I6 HK6 CL CL: F7 ; I< Z*?? K OP CLB y C L/D @hFE bGF oG hH E L ^34M T=qN oO GXP HKQ EAUR Dq8T FSTU GcIV D OP CLY | Z y{ OP CL] mJ ^ ]8 OP CLa N, OP CLd DS OPf ^ CLh ~@ i X OPk O| l aGm f n op o _ĵp [ q S r V s Kt L#cu Jr ,OP .CLx 0C6]y 1K4z 3Jm 5OP 7CL} 9H~ ;E OP~ @CL B@u DM  ESfg FLY G] ICL KE NCL QOP TPA WCL XCL ZCw ]CL `OP cl9  dQz fOP CL CL F  a W&g X E t( x s! E" nff# d3$ J9% Hk& K' K{( } CL* F5 CL- AW3 OP CL0 y]w 2 G~3 H:4 C OP6 ] CL8 CD CL: By CL< x = Ez OP CL@ MԄA GB C( CL CLE vt H |*I  hZ   k   k  E* Hd EW m4  k)  H* E y" EV Oy I$ K6 !r  #JP &oK  (OP *z  +L ,L /g+  XJ YEʘ [CL ^E< _s  `OP bCL cCL eCL fCL gCL hCL iCL lYg mRl n`` oL{ pH rO tCL uCL vCL wCL xCL yCL zCL {] |CL ~CL CL M  CL C CL CL A CL CL CL OP$ I(% IJ& Qۚ CL* F, Y\ OP. O CL CL OP CL3 mf4 Au6 TL7 C 8 z9 iN: e; kf< i OP> Tw? E(@ E?lA U OPD BRE EF EG OP1 Ul \#3 S, _  ^Ѕ x  jD  iQ  pPL  pA ! !CL "CL $CL &_  )CL +mi  ,yN  -DX .l&  1" 4s  7CL 8CL 9CL :CL ;CL ?E @I. Cz?  Ej7 H] = Iju  Jmi  Km="  Or3 RC* SOY TA2 Uj  WB  ZPA `ʩ C w4  L  t@  `` [3 ^  CL CL CL CL CL OP OP OP CL GZ$ H  I( G J J}e 1Er}f @N M s N CkO KNP BQ T9[R OfS @T BqV ` X C[Y E[ <\ \^ e_ 9 ` Bka }b @Qc w  CL  CL  CLg k9 CL CL CL CLm G&n | o W CL CL !CL "CL #CL LCL MCLw PAx QJffy SR TOP{ W` | Y`} Zu~ \] _Bv aE d~24 ~ fOP iRa | kCL nE? pE- qF tMWu vCLt wCL zt  {o{  |j/ 5 ~I6 G CL CL: E; G< X´?  OP CLB y C TD @pE bGF sQG kHH E L ^34M TN ozO Gh P HQ EGR DyT F3U GP<V E g OP CLY {H Z yz OP CL] m ^ [ OP CLa MKO OP CLd D; OPf ^ CLh } i W2- OPk O[ l dm ^pn k) o `p ]z q U r Z{ s Kډt L u  K !OP #CLx %Cy &O;z 'J )OP +CL} -Hzx~ /E; 0DQ 1DM 3OP~ 5CL 7@Q 9M@  :S\ ;L) <\4 >CL @EW CCL FOP I[, LCL MCL OCL! zCL }OP m  Qs CL CL CL G~  _f R Ul E x }4 {=q! B" j # d34$ J)% I[& KX' K( }f CL* F CL- AAh OP CL0 xo 2 G 3 H4 Cb OP6 ] CL8 B  CL: Brd CL< xt = EsZ OP CL@ MA G8B C CL CLE wl H E=I l  l5h  k  E9[ Hd E n  k_  H*  E  x EV Oy I* K- r  JP Bn  CR Ey FL HLG Kg+  LJā MEʘ OCL RE Ssl TOP VCL WCL XCL YCL [CL \CL ]CL `Pg aP6f bb, cLp dGH eO gCL iCL jCL kCL lCL mCL nCL o] pCL qCL sCL tM< vCL yC zCL {CL A2 CL CL CL OP$ I % IH& MO CL* Fp, Xd OP. Pl CL CL OP CL3 mGe4 Au6 N`7 C38 v9 i: gg; oL< mf OP> S-? E@ E(A U4O OPD C/E EF D&G N* W ^c3  Tɚ  _   b xV  jp  iQ  pA  p ! CL CL CL bE  CL  m  !J%g "D_ #k)  $y &sc  )CL *CL +CL ,CL -CL 0Eq 2I 5zr  7jY7 :] = ;i  V `y: X B_Y Eh[  \ T9^ e*_ 9 ` Da }Gb |\c wG CL CL CLg j CL CL CL CLm  H1n 5}io 6Wr 8CL 9CL :CL CL ?CLw BDx CJuy DNǮ FOP{ I_fg | K`} Lr/~ N] QC RE V~' ~ XOP [Tj | ]CL `E aE cF fG0Gu hCLt iCL kt  mpr  nj 5 H|6 G CL CL: F>K; P>< Rc? c OP CLB y C V{D @XE e >F oG iH E L ^\M TzN nO GuP HxMQ EK{R DseT FsU G6V Dw OP CLY {/ Z x OP CL] l ^ [- OP CLa M OP CLd D-  OPf ^ CLh  } i  Uj  OPk  N l  em  _ =n  m+ o  _p  Z3 q  Vp r  Y. s  Kt  Ku  M N  OP  CLx  Cpiy  Pz  J˽  OP  CL}  H~  !E  "C  #D  $OP~  &CL  (@gv  +M /   ,S6f  -K  .\  0CL  2EV  5CL  `OP  c4~  gCL  hCL  jB=  mCL  pOP  sn   tQ  wCL  xCL  yCL  |G+v   }_ٚ  ~Ts3  VS3  E  nH  u  rz!  w3"  qS4#  X$  J"Q%  IF&  KD'  Ll(  A  CL*  F?  CL-  A^v  OP  CL0  x 2  F3  Hw4  CT  OP6  ]  CL8  BM  CL:  BN  CL<  x0 =  El  OP  CL@  MA  GB  Ac  CL  CLE  w H  B!I  of   lo   l3   EZ  Hd  EV  n   k   H*  E  y  EV  Op  (I"7  )K)  ,r   .JP  1nB   2Q_   4yt  5L  7L  :g+   ;K  CL  AE   Br  COP  ECL  FCL  GCL  ICL  JCL  KCL  LCL  OY  PO   Q^  RIp  SJ  TP  VCL  XCL  YCL  ZCL  [CL  \CL  ]CL  ^]  _CL  `CL  bCL  cM  CL  C  CL  CL  @b  CL  CL  CL  OP$  I %  IE&  H]  CL*  F4,  XUH  OP.  P%  CL  CL  OP  CL3  mK4  Au6  IY7  K8  Dfg9  j:  k;  rٚ<  qS4  OP>  T!^?  Eyv@  EA  V  OPD  ME  E F  DG  N   W  ^33  T  `   di  xV   ju   i   p$   o۔ !  CL  CL  CL  ^   CL  mJ   Ae  D  k/   ]  sF   CL  CL  CL  CL  CL  "E  $I  'z$   )jO  T]   Ui   Vmm   Wl   Zs`  ^C  _O<  `A4  al>  cB   fOL  gc`  iBv  lwl   mJz   ptD   qb   rY  s^   uCL  vCL  wCL  xCL  yCL  |OP  ~OP  OP  CL  G*#  H#P  Id  G=  J  J}e  M}f k@ M  s N  C$O  KP  BxQ  T[R  O|S  p< T  B>V  `~ X  C[Y  E[  ᵔ\  Yc^  dN_  r `  Ca  C+b  Chc    CL  CL  CLg  jF  CL  CL  CL  !CLm  $HS_n  '~Fgo  (Wr  *CL  +CL  ,CL  .CL  /CL  0CL  1CLw  4wHx  5Gy  6M  8OP{  ;_ |  =aS}  >uI~  @]  CC  DE~  H~] ~  JOP  MSK |  OCL  RE  SD2  UF2  LLu  CLt  CL  t   oE   jG 5  H6  G  CL  CL:  F;  Q'<  Z-?  Fv  OP  CLB  y C  V%D  @=E  _ >F  nfgG  UH  DL L  ^QM  TN  oO  GP  HezQ  ETR  DtT  EU  G&V  D;  OP  CLY  { Z  x  OP  CL]  l ^  ^24  OP  CLa  Nb  OP  CLd  DJ  OPf  ^  CLh  }; i  ST  OPk  N l  im  cn  nk o  _Np  \ q  V{ r  Y s  Kht  KIu  O   OP  CLx  Cpy  SAz  J  OP  CL}  Hm~  Ek  C  Dy  OP~  CL  @X  L   P,  Jff  HZf  JCL  LE  OCL  ROP  UIce  XCL  YCL  [B  ^CL  aOP  dn   eR  hCL  iCL  jCL  mF   nfL  oQ  pUvg  sEȢ  um  vs  wq{!  xmg"  yY#  zE$  {J#%  |H"i&  }Ka'  ~L(  }h  CL*  F  CL-  Al  OP  CL0  xt 2  Fچ3  Hpc4  C'  OP6  ]  CL8  B  CL:  BF  CL<  x# =  Ed  OP  CL@  MA  GmB  E  CL  CLE  w_ H  A@I  T   l8   lR   E9[ Hd EV nB  l3  H* E x EV O Iw K" "r  $JP 'n}[  (P *z  +L -JP 0g+  1S  2Eʘ 4CL 7E 8sl 9OP ;CL CL ?CL ACL BCL E_S3 FP G_, HI II JPG tCL uCL vCL xCL yCL zCL {CL |] }CL ~CL CL M CL C CL CL B  CL CL CL OP$ HI% IB;& R CL* FA, Y#p OP. O( CL CL OP CL3 m*<4 Au6 Pٚ7 G8 E39 j: ml; ws3< r OP> S? Ev@ EA U OPD NEE E7F DG O? Y, _ Vp `J  cr x!y  jH  iQ  p  o+ ! CL CL CL a  CL l8  @X  C  k   Y  s)~  CL CL CL CL  1OP~ 3CL 5@-S 8Lv  9U :O4 ;[4 =CL ?F/ BCL EOP HO JCL LCL NCU PCL SOP Vn$  WS YOP ]CL ^CL aGB  bd cPff dSp gE~ im34 jsQ kqG! t@" X3# O$ J j% HRw& Ky$' L( ~ CL* F CL- AW3 OP CL0 xH 2 F3 Hfj4 B OP6 ] CL8 Bw CL: B? CL< x+ = EV[ OP CL@ MA GzFB B  CL CLE w H FAI ug)  l  l  EZ Hs< E n`*  lR  H* E  y$  EV  Os IM K/q r  JP n}[  RC z  M  Ji !g+  "T #Eʘ %CL (E )sl +OP -CL .CL /CL 0CL 1CL 2CL 3CL ^Yg _Ng `] bJ cGH dO\ fCL gCL hCL iCL jCL kCL lCL n] oCL pCL qCL rM. tCL wC yCL zCL |C ~CL CL CL OP$ H% I>& Ky CL* F~, X7 OP. O, CL CL OP CL3 m4 Au6 N7 E38 Aٚ9 k: m ; rg< r OP> T? Eo{@ EA VY OPD OE EgF DG O\u WC3 ]s3 Tf a5  av x  j  i  pY  of ! CL CL CL ^  CL n0  HU C> ll  r s  &CL 'CL (CL )CL +CL .Es /I< 2{  4jjO 7]  8i  :l~k  ;l  >r AC BT'! C@t Dol FB  JOS Kf|d LBh Owl  PK  Syf  T`f V[ٚ W^  XCL YCL ZCL [CL ]CL OP OP OP CL G H( IƏ G= J J}e TMq}f x@ M s? N BoO KP B=Q TDR OnS o T C.V b X CVY EM[ 쳉1\ Xv^ cO_ * ` Aa Cqb C)c @{ CL CL CLg kuy CL CL CL CLm G_n  |go  Y CL CL CL CL CL CL CLw Ax KRy O OP{ b |  ^U} !taA~ #] 'C]] PEs S},l ~ UOP XO | ZCL ^E| _D `FSO aFu cCLt dCL gt%  hnP  ij" 5 kH6 lGo nCL oCL: qG4; rK< sS? t~; vOP xCLB zy# C {T D |@E ~`F nHG ] H D^~ L TM O{N kW O GP H5Q E]R DtT E U FV D\0 OP CLY { Z xt OP CL] lD ^ `` OP CLa O.G OP CLd D_ OPf ^ CLh }f i JE OPk OD> l x=qm qn n o _bp \ q Tk r X{ s Kt Kγu Gf CL CLx By Kqz k|r CL CL} Hk~ Er@ D CB  OP~ "CL $@A &LH  '^33 (U3 *c3 ,CL -F[G 0CL 3OP 6E 9CL :CL  T*? El@ EA U OPD M@E E F DG O~^ U [ R a  ^f y<  k.  i  o  of ! CL CL CL aY  CL n`*  {in   D m7   s)~  CL CL CL CL CL Ey I "|C  $jZ ']  )i  *lR  +l  .r 1Ca 2NR 3@=% 5q_m 7B  :PY ;gɈ H/IG^JJ}e QY}f g@Zh M4t N6BO7KP8BQ;TReOSfo TgC~Vhc% XiC1RYkEo[l \n[H^qf$_r8 `tAauDbvE.cwBcyCL{CL|CLgj# CLCLCLCLmGn|&goZQl CLCLCLCLCLCLCLwA8RxIyPOP{cDD |`x}r ~]C"#E} ~OPQ |CLE&D-FJv}uCLtCLs p j 5H6GyCLCL:GB;G*<W;?~ OPCLBy# CRD@}EaQFo\*GdH,Dk9 L-T.M.O{N/kO0G]P1HQ2E^UR3DxyT4EiU5F6V6DB7OP9CLY;zT ZOP@CL]Bl& ^D`DEOPGCLaJNv<KOPMCLdOD;QOPfS^TCLhV}X iWKgYOPkZOR l[u(m\nRn]o o`_!pb] qcU) rdY sfKrtgKuEJCLCLx@yN#z^I!CLCL}H~ETECOP~CL L$ K3BgUfCL FCLOP D5 CLCLC~CLOPpA V CLCLCLG^ iC3U VٚEE{[a`>!}ٙ"e,#Rg$J&%I& KM' L;( ~; CL*FCL-AlOPCL0xt 2FI3 HH}4!B"OP6$]%CL8'Bk!*CL:,B?/CL<Yw3 =ZEG\OP^CL@aM>AbGiBcBeCLgCLEiwt Hk}_Ini pmYk rl sEV[tHs<uETvn wll xH*yE{x.|@ OsI K?r JPB S.zőM Ig+ Sl:@fy;AqL<Bj`COP>DT?EEpc@FE_AGVIBHOPDIHEJE FKEGLOz OU Q[lRRSb+ Vb$Wy\ Xkh Yiމ [o o !CL CLCL_+ CLoK H[E9[m s8 CLCLCLCLCLE}IS| jZ] jp lD lp nC O~ˣslB}q PvhBmw4 NE s"" `Zf^ CLCLCLCLCLOPOPOPCLFH*I GM JJ}eS}f MPs2 NRCmOSK"PUBQXU RYOLSZo,| T[CV\cv X]CCOY`E*[a2\b\^eeo_f8 `gAaiD@bjCBclBRnCLoCLpCLgsk( uCLvCLxCLyCLm|Fn}VgoZS CLCLCLCLCLCLCLwAuxJyQOP{d |_}r<~]B/E~ ~OPT; |CLEnE/5FPnuCLtCLtV o jc 5Ho6GoCLCL:GgR;O-|<Z&?~; OPCLBy# CQD Ec\*Fq(GVH D L!QLM"M(N#i=qO$G]P%GTQ&Ea;R'DrT(EU)F\V*D)i+OP-CLY/yl Z0x 2OP4CL]6lD ^8\9OP;CLa>M?OPACLdCDEOPfG^HCLhJ}: iKQ1MOPkNOqi lxuQmyn nzn{ o}_p\B qPff rV=q sKtKhuE.CLCLx@JeyRzUtWCLCL}Hd~EߵECOP~CL^ K{ ]C3]bٚCL FCLOP k[ CLCLC:CLOPp$ V CLCLCLG6 Dsr3Eci g!D"q#^$J%JW&KX'L1 (A¯CL*F?CL- A^v OPCL0x 2F73H:4BCL6]@CL8BA/ECL:GB8PJCL<Lw3 =ME@OOPRCL@UMAVGg5BWB%YCLZCLE\xe H]HujI^pp am bm cEddHs<eEgn hl iH[jElxZm@ pO?rIsLvr xJP{B OW@zRM IMg+ S4T*?5Et@6E A7U8OPD9EE:E F;EGCL< @wt = BE9[ DOP FCL@ IMѡA JGcB KEW MCL NCLE Pwt H QAI RW  Um4  VmYk  WE XHs< YFR [oK  \m  ]H[ ^E `x cEV O I* KA r  JP B  Sƣ z M  I g+  S (S7? )EqL@ *EA +U TOPD UEE VEGF WEG XO$ \a ]gl ^_#3 _c/  cbh dy  ek/  fiމ  go+  houq ! kCL  mCL nCL pa  sCL uoK  vy@  wD̘ yn  {m ~srb  CL CL CL CL CL Eul I!O }  jE ]  k="  l9  l'  r Ca SH | x B  PD d4 Q\ wna  R  v;  `3 [f ^ CL CL CL CL CL CL OP OP CL F H! IzF Gn J J}e {Lv}fz M 7u=< N 9CO :IP ;BRQ >U^.R ?OS @oK T BC~V Ccv X DCGY FE[ G\ H]^ Kcj_ MG ` N@1a PE=qb QDnc RE TCL UCL VCLg k_  CL CL CL CLm Fn }o [F  CL CL CL CL CL CL CLw Ax JHy P8R OP{ c | `s} qn~ ] B EE^ ~s ~ OP UZ | CL E Ej Fm Hnmu CLt CL t D  pM  jZ 5 H@6 G CL CL: I; NW< X? ~  OP CLB y# C MD h E ^pF m\G U34H B L Q>M M8RN i\O GP FQ EbR Dq8T EsU FV D/ OP CLY zF^ Z w_  OP CL] la7 ^ [; HOP JCLa ML NOP PCLd Ry@Y  UCLf V^ WCLh Y}I i ZST ]CLk `NU l azm bun eF33o f^p hZ q iT{ r jW\ s kKmPt lL4u mGP oCL pCLx r@;y sNz uK wCL yCL} {G0~ }F ~E} C OP~ CL @ Kk  Sٚ R3 \4 CL  F: CL OP  Ch  CL CL D4K CL OP pmy  W  OP CL CL F  q Z4 ]i D j q( nH! E" t3# V$J%Jd&K'L(U CL*EѕCL- At@"OP$CL0&x 2(FI3)H8,4*Dl,CL6-].CL80 3CL:5B 8CL<:x =;EV[=OP?CL@BMwACG\OBDGJFCLHCLEJx:D Ht~Iwh yn {m |E}H~FB mYk H*EyEVOyIK3r JPB QzюM Ig+ Sl4@Au6BT37CMS38Dv 9Gmu:Kk@;Lry<MmgNOP>OT?PEo{@QD%AQVROPDTJ^ETEFUD&GVOwZa)[g \_@^c a`bze cl diމ eo۔ fo !iCL kCLlCLn_޿ qCLsof tI>uDGwnn DD s CLCLCLCLCLEn0I$}: jo] k) mJ k oٚCU4l~k ^@bNYAOPCCLaFO|4GOPICLdKx0 NCLfO^PCLhR~ iSQQ%VCLkYNc lZwm[r\)n^Eٚo_^}paY qbS= rcWW sdK)teLIufFhCLiCLxk@QyQUzL/CLCL}GJY~F`EKCOP~CL@;K OOXCL F?CLOP J CLCLD_CLOPp W CLCLCLF nS3WVgZ3Dkr=qo!is3"KL#Ef$J&%J9& Kz' L#c( @f CL*ECL-A OPCL0xo 2FŨ3H94D CL6"]#CL8%~ (CL:*BE-CL</xP =0EG2OP\CL@_M>A`GWBaIcCLdCLEfx HgBIhq mn% nm oEZpHrF!OsB tm uH*vExx{EV|O~I|K4r JPB OPPzюM Irg+ Sq?OP>@S??AEm@BDnACUEDOPDELEFEFGDGHOK_ffLefM]s3NdO Q[Sz# Tl5h Ui& Vo+ WoXB !ZCL [CL]CL_b[ CLof AE#n >sF CLCLCLCLCLEtI#}u% k)'] k/ mi kމ m3D#?QDGtBJ= QZ]DElw T iU `@W^CLCLCLCLCLCLOPOPCLGHIlH*J J}eOV}f M#s N&CO'I7PPC*QSURTO SUAOTVCVWdQK XYCFY[E[\^\][T^`b._aUU `cC:aeG@bfFBcgD(iCLjCLkCLgnk~ qCLrCLsCLtCLmwG\nzVgo{[ }CLCLCLCLCLCLCLwCaHxLyR)OP{d33 |^u}r`~]CLE~] ~OPU/ |CLEsEFNuCLtCLs_; q ji 5H6GCLCL:Gu;G<S0o?@gvCLCLBy CQ+Dв E`RFnG\HBl LVW MR#N mqO!GmP"EvQ#E^UR$D8T%EUU&FV'D8(OP*CLY,z Z-w_ /OP1CL]3lo ^5g6OP8CLa;QaCLd@^ CCLfD^ECLhG@JeiHQKCLkNNP lO{33mPunSH@o|_Ip~Yf qR rV sJtL\uFCLCLx@C yJzJCLCL}GQ~F-EcCOP~CL@JeJ SR3\CL F:CLOP B CLCLD- CLOPp- Wmc CLCLCLF~ uf\_Dt8RzHaH!K4"t3#^ $J&%J$"&K3'LB[( CL*E CL- A OPCL0xP 2Fa3H+z4DCL6]CL8Fv FCL:HDGKCL<My =NE9[POPRCL@UMAVGYBXBZCL[CLE]y@ H^ElI_jy bn`* cme dEWeHfF!OgB hm4 jH*kEmxpEVqOsIltK/qwr yJP|B }R{OM Ilg+ S5T$@?6Er5@7D%A8V9OPD:NE&E;EF|@Q}~=q!J,"t#T$J&%J;&K'LAq(' CL*ECL-AfOPCL0xWc 2F3H.24DCL6]CL87 CL:D- CL<y =GCLCL@MAGBB[)CLCLEy HBOIa n n EHF/B n H*Ex@  O"I?C#K:[&r (JP+B ,Lv.{/L0IV3g+ 4S N_ > PCLQCLRCLSCLUCLVCLWCLX]YCLZCL[CLMCLCCLCLBECLCLCLOP$H%I->&MUCL*G0z,XOP.PF0CLCLOPCL3m54Au6SS47F8r9nLL:m;v,<nOP>S7?Eu@D AUOPDJeEEXFELGOujoɚfffW bXzF l8 i o+ oI !CL CLCLc CL pY  I E2 o; s CLCLCLCLCLEy I"7!}u% #kYN] =OrN Pvh. Qk TrWEgYR \M ^h`B) cPSdN~eD:ix jU mn n`fo[3p^qCLsCLtCLuCLvCLwCL{OP}CL~CLHGHGɔJJ}eR}f_~ Ms2 NC OIςPD\0QUȕRO Spmy TD}Ve| XDFYESR[޲\^^d_q `C"aC{bD0cCaHCLCLCLgkcy CLCLCLCLm!H)n$}Io%\ 'CL(CL)CL+CL,CL-CL.CLw1{x2Hfy3QR4OP{8e33 |:`Q};ps~=]@CAED~l^ ~GCLIW>' |KCLNEk*OCVxF=|Ku~CLtCLs o\ j" 5HR6HXCLCL:Gx;P%<T?AҩCLCLBx CN]D@ElFsGf=qHC L^MW>NtOGIPDԒQERRDaCTEEUFVBCLCLY{ ZAAhCLCL]mYk ^d+OPCLaSm]OPCLd@CLf]CLhAAhiR|CLkN lG( mD8R nT33o_p[ qU rZ# sJdtLkXuECLCLx@y P%z J CLCL}G`~GEvD\OP~CLA@DJ, E``FVS3Ga)ICL KGNCLQOP SO VCLWCLYFL\CL_OPbq cW fCLgCLhCLkE lt#4mYgn_S3qDsBtEuDG!wN9"xG,#yi$zJ%{JL&Kx;'LY ( CL*ECL-}X CLCL0x 2F3H?l4DpCL6]CL87 CL:C:CL<zF^ =GCLCL@L_AFBBuKCLCLEz % H~Il*  n  nB  EZH/F>KB n% H*Ey0@ O`IKA!r #JP&B 'S){H*M +IB.g+ /SCL?CL@CLCPglPgmavgoG p_ > q_ > sCLtCLuCLvCLwCLxCLyCL{]|CL}CL~CLMuCLC<CLCLA/CLCLCLOP$I%I%H&H`CL*GB,YOP.P%CLCLOPCL3l4Au6JS37Dٚ8s9n:sy;sf<s4OP>T?E^A@D-AUOPDFsEEFELGOwjPos4gPgE a.zj l i o of !CL CLCL_x= CLpA ~ E#o D9  t!N 4CL5CL6CL8CL9CLVp ?aFf ACL  CGX FCL IOP  LU  OCL PCL RFy UCL XOP [ouq  \W}  _CL `CL aCL G  EC4 m p33 EQ  G( Ju I+! A" qfg# Ll$ J j% JL& Ki' Kw( K  CL* E CL- zT  CL CL0 u ~ 2 F3 HV4 DD CL6 ] CL8 7  CL: Ow CL< zcz = Fs CL CL@ KA FnB B CL CLE {/9 H |<&I h  B  n}[  E H/ FL B  n}[  H9Q E x EV O I K8 r  JP B  Pl !{ "M  #I2 &o^  'S  i_ >  kCL lCL mCL nCL oCL qCL rCL s] tCL uCL vCL xMf zCL |C ~CL CL B CL CL CL OP$ I9% I#& R CL* GQ, ZK OP. O  CL CL OP CL3 m4 Au6 Ng7 B8 sY9 n): w; {4< t OP> S? EA<@ D}A Ur/ OPD FvE DF D>G N׮ i o| g  gr  ^ zF  m  j ^  pY  oI ! CL  CL CL cн  "CL $o  %BF 'D (oK  *# -t/  0CL 1CL 2CL 4CL 5CL 8Ee' 9IJ( <}u%  >kd A] = CrN  Dvb G!Hc EE CL CL CLg k  CL CL CL CLm G`{n ~vgo [-  CL CL CL CL CL CL CLw KzGx LK\)y MQ NOP{ Qd | S_} To~ W] ZCy [E ^~# ~ `CL bT | eCL hEu! iD  jF~ mKgu oCLt qCL ss%  to-  ui: 5 wI06 xH[ zCL {CL: }ET; ~J}u< Z6? Ci( CL CLB y C ND @AE lF tG WzH C< L pqM hN D8RO GP DQ EWR DeT EI"U FŃV {H  CL CLY xH Z C= CL CL] m ^ W CL CLa WH CL CLd @ CLf ] CLh Ai Q<_ CLkOZo lH8R mE\) n\s3o`[p]ff qV=q rX sJLtLN1uE֨!CL"CLx$Ay%QНz&JP)CL*CL},G:~.GA/E2|oQ 5CL~6CL8@:Iz ;d34=Z`>df@CL BGDCLGOP JO wCLxCLzG )}CLOPn V CLCLCLIYx FlxvYE~BEDW !@"gY#Kg$J j%J77&Ki'K:[(^ CL*EsZCL-y{ CLCL0t 2FI3Hi"4DCL6]CL8 CL:NRCL<z$ =F5CLCL@KAF7BBCLCLE|R8 HzIf B n EVH/F[G B  n  H9Q Ex4@ Os=I>K<-Ar CJRFB GLvI|=KM LI gOo^ PS\̓?E"i@DATKOPDMEDFDGN/} g m  e6g h7@ _zF mYk j ^ p n !CL CLCL_Z !CL#p$ $D;%EV&o (m,tM /CL0CL1CL2CL3CL6E]8IV;}u% =khh] ir jv kkxB osc3rEZsQ4vNx_jzBH }P~I I :xt JĞ uww `3[3^CLCLCLCLCLCLOPCLCLIUG}H:G7JJ}e(M}f s~ Muλ NC!OJPCQU-ROtSo۔ TDCVeR XD^YE&[By\\^e_ `A33aAHbET{cA{CLCLCLg2k 4CL6CL7CL8CLm;G#n>~`o?[ ACLBCLDCLECLFCLGCLHCLwK}fgxLIqyNP4OOP{Re |T]x#}Uq~W]ZCSA\EA_~l^ ~aCLcVS |eCLhEhsjD?kFH:uCLtCLrȴ o i 5IP6H(CLCL:D_;L/<Zv?D4KCLCLBy{ CN%D@dfEj\FzGGcRHCc Lp*MgNhHOG1PE(QEDRDwTEvbUGXV{a CLCLYwQ? ZCZCLCL]m ^J3CLCLaKCLCLd@=CLf] CLh A:i T}zCLkO lI\ mHL n\o`p^3 qW rZ{ sJҪtK{uDa!CL"CLx$AW3y&Lxz'Ip*CL+CL}-G~/GW0E&3: ^CL~_CLaAcIE dhe^3fhyhCL jHmCLpOP sR vCLwCLzMmA|CL}CLof V$w CLCLCLI IlAf~EBqFEc!x"ls3#Ks3$J j%J&Ky$'J(@CL*EV[CL-z7 CLCL0v 2FI3H4ECL6]CL8 CL:C CL<z =FݱCLCL@KMAFaBCCLCLE~s HG LI$\6 'B (n )EV*H+Fi,B -n /H9Q0E2x43@ 6O8I6/9K?KAEVCQE|x/FM GIJo^ KSW?E @DA[ CLDOEDeFDaGN qf xi of iN6 bMTzF m j p nT !CL CLCLbs !CL#p $y1 %E'o PE Qt[ TCLUCLVCLXCLYCL\EZO]Iw`}f bkmf] =gr hv( iki mopEpqTi[tuS[ vXxB |Oڶ}H~I x TC q `[3^CLCLCLCLCLCLCLCLCLIjGHFJJ}ePZ}f~d| Mt NC OKSnPCvQ U_R!OS#o T$D}V%e`E X&DhY(E.U[)\*Y;^.df_/9 `0@a2Bcb3Ac4B6CL7CL9CLgCL?CL@CLACLmDF&nH~yoI\ KCLLCLMCLNCLOCLPCLRCLw}{Rx~GHyPOP{e |_<}s~]C%Ee~l^ ~CLT- |CLEcDZFLuCLtCLs o^ j( 5Il6HSCLCL:Cp;P}<Z?FCLCLBzT CSFD@wE|{FBGeHC LpMhfgND!HOF؟PE\QEZRD|TEUGJV~# CLCLYwl ZCCLCL]me ^JCLCLaL| CL CLd A:%CLf]CLhB\iNCLkO lDJ\) mFI{ nH\oI`pK_3 qMY( rN\\ sOJNtPKuQCԉSCLTCLxVAyWS zYK[CL\CL}^H[~`GpaEbBdCL~eCLhBEjH k@Ylu3m{oCL qGtCLwOP zI }CL~CLX.zCLCLs U2F CLCLCLGp G{LwS3FTC GER!l"W4#B9$JS%JF&K9r'Je( CL*EV[CL-y{ CLCL0t 2F\3H}4FGCL6 ]CL8@4CL:BECL<z =F/CLCL@"KA#F1B$C&CL'CLE)@&H+BI,h /EV0EV1B 2B 3B 4EV5EV6B 7E9x=EV>O@IMAK=Dr FK3EVO|9LIS o^  SXy?EL@DnAYCLDBEE FEvGXtfzS4qj?t bؾzXI m4 j p$ n`* !CL CLCL_= CLpmy E@Eo O#tj. CLCLCLCLCLEYgI}; ks2] =r vI ki /s2F3QA6mm 7Eѕ:B\ =Q?Hy@I Cx0 DKI Gj H`3IWfK^LCLMCLNCLOCLPCLRCLSCLTCLUCLXIZGv[H1\G_JbJ}eSh}fi Mt NCcOK1PDQV#ROxSo TJ;Vr> XDsYE<[\Za^c__y `@aUbT=qcO+CLCLCLgl2 CLCLCLCLmF^n~o[- CLCLCLCLCLCLCLw}x I{y QǮ OP{ v\ |^}s ~]C EY~] ~CLU |CL"EY$Dt%FQ(P1u*CLt+CL.t- /pZ XjS 5ZI6[H]CL^CL:`C;aO1<bXK?cFfCLgCLBi{ CjSWDk@EmCBFnCGotHpC LqMsoNtM8ROuFPvE%QwEdRxDTyEUzGIV}~ CLCLYvI ZCCLCL]n% ^KyACLCLaL=CLCLdAW3CLf]CLhBiUCLkP] lJ mIp n]oa@pYq qSf rV{ sJNtKuuCScCLCLxAҩyO8zICLCL}Hd~GEBCL~CLB=I_ E&f|gB CL "El%CL&CL '(CL)CL,VC.CL/CL1y 2U@ 5CL6CL7CL:G ;IK3=}f>zAF_CCBDGEF#!Fw"G\#HC $IJ+g%JJz&KK"'LJ&(O@RCL*TE2WCL-YzF^ CLCL0t 2F3Hi"4F/CL6]CL8@;CL:B1 CL<{ =FCLCL@KAFfBB&*CLCLEAH@qId1 EVEVn m m4 EVEVm Ez>&EVPX?E@E+zAYCLDy{ EEFEacGX]tfzffq3k ^zv m j pY n !CL CLCLbTF CLph BUZDo CJ tx CLCLCLCLCLEId} kn] =r vI k[  nٚ#F$US?(x# *M,B^ /P60Hn*1HX4x 6S5 9jY :`3;V3<^=CL?CL@CLACLBCLCCLDCLFCLGCLJIKHLHZNGDgyJzJ}eX]}f. Mt NC?OIʅPD QW)RNSof TI'Vm, XEYED[\[^dl_qUU `@!aQkbSHcO4CLCLCLgl4f CLCLCLCLmFn~Lo[M9 CLCLCLCLCLCLCLwD4xJ >yMffOP{oUU |^} tC~ ]BEj~] ~CLU |ACLDE^}EDo FFGFuJCLtKCLMt NpD Oj;e 5RI6SIYUCLVCL:XD;YKR<ZV?[F(^CL_CLBaz CbLDc@EeB\)FfO{GgwHhD LiFMj@NkUOlF|PmEwQnElRoDTpEUqG|Vt} wCLxCLYzv Z{CCLCL]n ^JCLCLaKCLCLdA2CLf]CLhB5iNַCLkPf7 lL=q mK# nhfoaqp`=q q[8R r] sJtKcNuCCLCLxAqySzICLCL}Hs<~GX E C<* CL~ CLB J5 NIhHLCL DCLCL CL CL#R%CL&CL(|` )Uf* ,CL-CL.CL1G 2F33{4t7Fҝ9BǮ:G!H;E !Ws3#?{$@JId%AKD^&BK6'CIo(n qCL*sEZvCL-xy zCL|CL0~t 2F3Hb4ECL6]CL8K CL:ACL<{ =FCLCL@KDAFRBCCLCLEA"H|eI]& EVEVj i| i& @EVi EzJEVPvI oKCur LEVO|9M HRo^ YMICLEu}OPCLCLCLCLCLCLCL Yg Ng5d6d\7_8e:CL;CLCL?CLACLB]CCLDCLECLFMHCLKCMCLNCLPB\SCLTCLUCLVCL$XK8%YIg"&\S._CL*aI,c_'dOP.eP]fCLgCLhCLiCL3ll4nAu6X7T`8BL9tv:DP;F<ACL>Y?F\@EVAZCLD|` EE:FEGXSx}ٙuVgkl `zXI n% j o+ m4 !CL CLCL_ [ CLp |C Eo ҮltU  CL CL CL CL CL Em I }R  k ] = r  v  kLl  r) F?N Sм rN  !O1 $B3  'P (HY )H ,x  -L%  0jH  1`Ff 3V 4^ 5CL 6CL 7CL `CL bCL cCL dCL eCL fCL jI, kH  lHj  mG_ pJ tJ}eG}fM@\ M sk N CO HP D Q WR N ES xP T G ZV iF X EY EF[ ƴ|\ \8^ c_ n ` @a OQb QǮc K  CL CL CLg l@  CL CL CL CLm Fn }go ZJ  CL CL CL CL CL CL CLw ~ x Iy N=q OP{ j | `4} r~~ ] )B *EN -~] ~ /CL 1U | 4CL 7E\ 8D@ 9F CLt @CL Bu5@  Cp  Djr 5 FIK6 GIM ICL JCL: LE@; MQ^< NV ? PF? RCL SCLB Uz? C VW+KD W@E YA4F ZIG [{ H ]D<@ L ^G^M _BN `f޹O aFSOP bE!Q cE{SR DDžT FVU GV Ah CL CLY v Y-? F^!@ ERA Z2 CLD rk E FAF EѼG Xr xf ~0 us3 lV  c4 z{  n`*  j'  o  m ! CL  CL CL bA  CL p  y1  F of  ꠔ` tz  CL CL CL CL CL E I }  k ] = rz  vܹ  kLl  r Fr Sj wl  wna  B  RX HG H x  SS  Ij  J` KV3 L^ MCL NCL PCL QCL RCL SCL TCL VCL WCL ZI [H_ \Hm ^G}x aJ dJ}e M }f B@ M ~s N CCO HʅP CQ X~R MS AT F+V go X EY EJ[ \ [l^ c#_ lr ` Ba Rfb S >c P CL CL CLg l-^  CL CL CL CLm Gn ~vgo ZN  CL CL CL CL CL CL CLw px HRy Q OP{i |^e}q~]C/E>~l^ ~ CL"U |$CL'ES(DZ)F-P."u/CLt0CL2uff 3q J 5j 57I68I':CL;CL:=E;>P<?W?@FCCLDCLBFz$ CGU)DHAEJUFKc\*GtW\)HuD{ Lv[MwWzNxknOyF9PzFQ{ER|D T}F9U~G VACLCLYv- ZDBCLCL]nT ^L#CLCLaMCLCLd~ CLf]CLhB+iN|sCLkP| lKf mKk njob Yp^k qX\) r[. sK0ZtKVuB+?CLCLxB"yM2zM)\CLCL}H]~G,EeCY1CL~CLCwI `Vf`WCL qes CLCL xCLCLE CL CL k Uwu CLCLCL=F ?L3@E&fAB3DGtdFeGjHi=q!IU"JK#Kv3$LJ@M%ML)&NK?'OId(P@#'RCL*TEOWCL-Yz7 \CL]CL0_t/ 2aG(3bHV4cFpeCL6f]gCL8i lCL:nB qCL<sz? =uF/wCLCL@KxAF BBCLCLEB?HFInz1 ixB ixB EVEVEVixB ixB EVi {,EVP52IALo.M EVOp}M I`w/ YsM-CLEtOPCLCL CL CL CL CLCLl`avgt@d_e8RCLCLCLCLCLCLCL ]"CL#CL$CL%M'CL*C,CL-CL/n`* 1CL2CL3CL4CL$7L;%8I&;Gy=CL*hJb,i_kCL.n_YpCLqCLrCLsCL3ulƥ4wAu6zs 7{i&g8|bfg9x#:J ;Hy<GCL>YQf?F@EAZCLDgJ EF,FEGXJCGB4m baz n j63 o7 m7 !CL CLCL]b CLp BAo Rptz CLCLCLCLCLEPJU}h l<] =r wl k= oF`Uz RyB0 1S72H6k3H}^6x 8Mx ;hf <^3=Q33>^?CL@CLBCLCCLDCLECLFCLHCLICLLIMH@NHgRPGSJVJ}eF }f2@^ Ms. NCmOIŇPDQYRM"SA{TExVfW XEYEJ[\`l^c_l9 `D$aTfbSRcPCLCLCLgl  CLCLCLCLmHkn}oZN CLCLCLCLCLCLCLwERxL\yUOP{h"# |`J_}qz~] C? Ec~OI ~CLU/ |CLEPDFKfu!CLt"CL$v &qz 'j5@ 5)J6*J1,CL-CL:/D- ;0M<1X/N?2F]CL^CLB`zT CaP'3DbAdEdg*FetGfU{HgDL LhZ MiU4NjjOkF"PlF/QmERnDToFq:UpH0aVq@{sCLtCLYvv4 ZwDJzCL{CL]}o ^~KFCLCLaLCLCLd@4CLf]CLhByiVwCLkQK lMG mL nioaOp` q\R r]L sKUtK`uB(CLCLxBFyTCzICLCL}Hd~GEBfCL~CLCwJ bk3aTZ3CL vܹ CLCL 5CLCLVNKCLCL%i &U )CL*CL+CL.F[ /M@0F^f1Bf4HF6e7j{8j!9H3":C #;_S3$K3'?I(@@&BCL*DEsZGCL-Iz % LCLMCL0Ot' 2QG=s3RHW4SFvUCL6V]XCL8Z ]CL:_B CL<zr =GJCLCL@K>AFBCCLCLEBɀHCvI_V` j> jD B n`* n}[ lo j> n m> {(EVP.CHLoM EVLv}ȈLISd] Y<MCLEqːOPCLCLCLCLCLCLCLlgavgt6gdB_e CL CL CL CL CLCLCL]CLCLCLMCLCUCLCLx !CL"CL#CL$CL$'K.%PI|&SNVCL*XK,Y^[CL.^V'u`CLaCLbCLcCL3fl4hAu6jn7ko`8ld349oy8:qG;rI`<sEuCL>wY?xF@yE AzV|CLD~nn EFFEGX*+FgIDfo5 _)E{ n j63 o mh !CL CLCLcM CLqV @A p MqL t CLCLCLCLCLEIϥ~@ m] r v k/3 npFZvvh. vt B0 SHI> H#y %V (q"" )`f*U+^,CL.CL/CL0CL1CL2CL3CL5CL6CL9I@:H;HgR=G@JAJ}e^Y}f$@ Msk NCmOJTPD/QYRM{Sp3 TEVfo> XEYEK[\T^b._k `CaRbSffcRCLCLCLglz CLCLCLCLmHsn~poZJ CLCLCLCLCLCLCLwDHxIyWOP{h |_P}q~]CEˑ~z ~CLVb |CLEW?DF: HujuCLtCLw33 qn jH 5J;6JWCLCL:DD̘;EP*<FX?GF[GJCLKCLBMy CNUTDOAEQgFRpGSX\HTE3 LUK MVENWZkOXFPYFFDQZE>R[ET\F2U]He V^D+`CLaCLYcv4 ZdDQNgCLhCL]jo,| ^lL(nCLoCLarN\tCLuCLdw~ zCLf{]|CLh~BiPCLkQ lL mL{ njoamp`R qX rZ sKmPtKa{uDmCLCLxBUZyRHzHCLCL}H~GHEXBqCL~CLC.K ac4``Y4CL ' CLCL ߧlxCLCL PCLCLp< U2F CLCLCLG JB&f~3 J "c$h >%gaH!&S"'H|#(h$)I%*Lm*&+K',I(-@>/CL*1Ez4CL-6zcz 9CL:CL0GV3?H`4@Id<BCL6C]DCL8F@&CL:BCL<z$ = G CL CL@KMAG\BBbkCLCLEBHA-Iz  [- !ixB "EV#n $n %j' &ixB 'B )i +{5q.EV/P521I2L5pT7M :EV;OdfLgI"7ieb3 lXnMpCLsEtquOPwCLxCLyCLzCL{CL}CL~CLlgavgt\LPGMCLCLCLCLCLCLCL]CLCLCLNCLCCLCL} CLCLCLCL$Kr%I5&MiCL*L4,[CL.LCLCLCLCL3l]4Au6x7v48o9{u :L;JFf<H CL>XY?G/@EAQCLDj EFFEMGXV,GI-Jff.E/t 3]X4{s 5n 6j63 7of 8mJ !;CL =CL>CL@`q. CCLEqes F}X GAIp| JN) Kt4 NCLOCLPCLQCLSCLVE\WI=Z~ \m_] `r aw4 ck fp3FzIYyl QNB0 SH@H:y P g `Q^CLCLCLCLCLCLCLCLCLIHHeGJJ}eJa+}fA Ms" NCOJP D Q Z#GR MwSoI TEXVfo> XEYEV>[\\^a٨_k `B aSbWcc R4"CL#CL%CLg(l *CL+CL,CL-CLmXGun\~go][F _CL`CLaCLbCLcCLdCLfCLwiDxjL{ykV8RlOP{og |q^}rs~u^xCLyEu|~ ~~CLU |CLEcDSFMuCLtCLx! q k 5Jm6JtCLCL:EO;P8<X(?ETCLCLBy CTDAE[pFj#GO\HEG LIMBkNYOF PFZQERETFUHVACLCLYv- ZDSCLCL]o ^LfCLCLaNqCLCLdA+!CLf"^#CLh%Bi&T)CLk,R? l-M m.L n1jo2aډp4dk q6_ r7`B s8Klt9KRu:CuYL`?Gn@ERAOQCLDk EFZFE-GXE`G3Chu "a#{ $oK %j63 'oI (m- !+CL ,CL-CL/]< 2CL4qes 6{ 7B)8ph :t=tY @CLACLCCLDCLECLHE4IInxL~ Nn&z] ={s)~ |w }k rfFWvܹ y B THJH\y@Y O cD _yMٚ^CLCLCLCLCLCLCLCLCLIH HmGJJ}e:U }fB=  Ms\ NC iOJPD1dQZɳRMVSoK TEVf} XE YEc[ \ ]^e$_k `A٦aVٚbX cQcCL@CLACLgDmo FCLGCLHCLICLmLGbKnP@oQ[b5 SCLTCLUCLVCLWCLXCLZCLw]Ipx^Qy_U`OP{cg |e_d}fsR=~i^lCmEsp~] ~rCLtU |wCLzEf{DFcLuCLtCLw` qw ku 5J6JxCLCL:E;M9M<W?ECLCLBy1 CPSDBiEiFn{GI)HE LX4MSHNhOF7PFaQEORE'TG@UH7V~l^ CLCLYvHk~@GAEBB^lCL~mCLoC.rL^ scs3tb~fu]gwCL y@A|CL}CL ~2CLCLF[GCLCLoXB VXc CLCLCLFr NdEC L]fkjik!S3"MS3#u$I%LG&KQ'JP(@XCL*EѕCL-{ CLCL0vt 2GU3Ht4F<CL6]CL8@CL:Bk!CL<zcz =GCLCL@KcAGBBCLCLEC~H{³In? B B mv  l5h  lR 4B 5B 6lo 7B9{ey Y#? G@ EMA R CLD tM E GF E^G Yv D6f Fg B+3 w  c {̪  o;  jD  o;  m ! "CL  #CL $CL &ejU  )CL +q3  -xe  .B" /qV  1> 4u ~  7CL `CL bCL cCL dCL gE hIfL kFv  mn q] = rsl  sx  tk  woɚ zFW {Y yN  Q] B  U HNO Hm yl  X2  bf  `3 Mvf ^ CL CL CL CL CL CL CL CL CL I H Hb G J J}e 1P }fAD M r N C EO JQP D_Q [FtR MSoS n T EۚV g X ESY Esq[ )\ *] ?^ -e_ .lr ` /A<a 1X b 2Wc 3V 6CL 7CL 8CLg ;mq1  =CL >CL ?CL ACLm DGn G~4o H\^  JCL KCL LCL MCL OCL PCL QCLw TEfx UN>y VZ\) WOP{ Zh | ]_} ^r~ `^ cCc$ E} ~l^ ~ CL U= | CL Ei[ D F Fsu CLt CL uJ  r  k 5 J6 JJ CL CL: C.; O< Z? E CL CLB y C U-D B5E n >F hfgG ZH FK L XM SnN g4O F P FelQ ER EBT G#U IV };  CL CLY vW Z D_ CL CL] of ^ M CL CLa N CL CLd @b CLf ^ CLh Bi X&d CLk R l Ku m Jp n jLo b?p c q ![ r #`Ǯ s $Kt %KAu &A& (CL )CLx +Bk!y TSz VM XCL YCL} [H@~ ]G ^E _BS, aCL~ bCL dC: gM  hgh ieٚ j` lCL  nB? qCL rCL  st tCL uCL xVa zCL {CL }v-  ~W  CL CL CL G  Q3 I F3 M d i gq! d3" \3# F$ I&% L{& KmP' JW( @ CL* F( CL- {  CL CL0 u 2 Gb3 HW4 FD CL6 ] CL8 @ CL: Bn CL< z = G CL CL@ K5A G/B B CL CLE D4KH EI p  ixB  "m  #EV $m4  %m  &B  'n  (me  )l  +{ey .EV 0P 2I 3L 6se 8L ;j ^   Z5? Gf@ F<A Oh CLD of E GIdF EɔG Y GX JS3 Es3 xͭ  c |  o  jSk  o;  m ! CL  CL CL a  CL rE  {LS  HB+ IsF  JOi  Lu'  OCL PCL QCL RCL SCL VE XIT$ ['  ]o,= `]  at  bx+  ck  gq#3 jF k[a ny{  o{w  rB  uTe  vH^ xH {y#  |Qn  b  ` N3 ^ CL CL CL CL CL CL CL CL CL Iλ H HgR G  J J}e Jb@!}f @h M s1L N C iO JP DhQ [R ME,So; TF+Vg XESYEu[5\\^gN_m* `@aWzb!XaHc"Qk$CL%CL&CLg)m +CL,CL.CL/CLm2Fn5~o6] 8CL9CL:CLCL?CLwBIxCM(yDY >EOP{IiDD |K]}tp ~v^yC7zEqa}~s ~CLV |CLEpEF*IuCLtCLucT qw kt 5J6JCLCL:C6];Qc<U'&?FmCLCLBy@Y CUDBkEEu>Fw(GVGHFQ L[#MUpN^OFwPFoQERE[nTGRUI@V} CLCLYvA@CLACLxCBnyDOzEGHCLICL}KHO ~MHNEOB0QCL~RCLTDGWM` XfiYf[3Zb@\CL ^w3 aCLbCL c'fCLgCLiDSlCLmCLojSk pW sCLtCLuCLHCS MNgCA;3NN_(d:bn!lL"Z4#J$Id%M&Kbd'J8 (@RCL*ECL-{ CLCL0uZ 2Go3H4ICL6]CL8DCL:BCL<zT =H9QCLCL@K=AGABCf CL CLEDSHE-I` ixB ixB EVEVEVixB ixB EVi {ey!EV"P$I~%L(u m*JP-ixB .P*/A1L2H5o^ 7X8BM:CL=EY>qhCLiCLjCLkCLlCLnCLoCLpCLsttuuvfvp34wxzxqzCL{CL}CL~CLCLCLCL^CLCLCLN/}CLCCLCLs CLCLCLCL$KU%I˳&PCL*LP,^N&CL.K CLCLCLCL3l4A36Wf7XP8N9@L:Hٚ;I<DCL>Yi?H()@F.AHͶCLDh EG}3FEGY HK3Fy" ]3| o jSk o mm !CL CL0CL2]y 6CL8r+ 9A:Bk!;t' =x@uS[ DCLECLFCLGCLHCLKEJLI5GO RoU] Vt>u Wxe Xk [pp^FK_XGcxH dKUgAf jVpkHHhy O"j f `3Mp^CLCLCLCLCLCLCLCLCLIHHwGeJJ}e=x}f@dG Ms1L NC OJ/PDxyQ\%ZRM> S@4TFeVhT& X EUY E5[ \Z|r^fJ_m `AaXbZs4cSGCLCLCLgm !CL"CL#CL$CLm'GFn+4o,]Y .CL/CL0CL1CL2CL3CL]CLw`N>xaTǮyb[cOP{fi |h^44}io ~l^oC2pE1s~ ~uCLwX  |zCL}E>~E!mF N,uCLtCLu+ q- k=q 5Jd6JCLCL:C6];PW<UvA?ECLCLBy1 CQDBvE`\*Ff=qGMHHGc LYMSnNiOF<PF/QF6SRElTGUI0V~] CLCLYv( ZDJCLCL]pӖ ^LwCLCLaNdCLCLd~# CLf^CLhCiQCLk&X l'JR m(I3 n+ho,c p.i q/`B r0_ s1Kt2KN_u3B5CL7CLx9B5y:POz;GQ>CL?CL}AH~CHDFkEBk!GCL~HCLJDLN NdOeP`RCL T|& WCLXCL YOZCL[CL]@CLCLk. W CLCLCLG% MDfC<N daHgpd!vY"jg#Sf$I%M"&K-'J (@aCL*F!OCL-{/9 CLCL0u 2H 3H4FCL6]CL8@-SCL:BCL<zT =H*CLCL@KAGpJBCq$CLCLEDXHBIk>S n m4  B  B  B  B  me B B|(EVP.CIgK?tJP!ixB "RJq#Aפ%K <&HRQo^ RYSBMVCLYEDZq\CL]CL^CL`CLaCLbCLcCLdCLgt6ghlgivfjp\kxLmqoCLpCLqCLrCLsCLtCLuCLv^xCLyCLzCL{N}CLC<CLCL@XCLCLCLCL$L%J+&HCL*L,RdGCL.ICLCLCLCL3lJ4A36U 7P38IY9@T:K;N33<H3CL>Y?Hi@F){AICLDqHF EGFEEGY{ GaJ#3E[3{ cS}  o۔ jb  oK !m !$CL &CL'CL)d/ ,CL.r /AO0B2s)~ 3U 4u 7CL8CL9CL:CL;CL?E@ICK EoH] IuD Jy#; Lk OmRF<S]V6~yN AAf UCH\Hؒy W eU ^I3^CLCLCLCLCLCLCLCLCLJHHGvJJ}e3b}f@- MsM NC EOJPDDQ\xkRLLSAHTFVh XEZ<YE%[\]^f%_n8 `CaV!HbVc O CL CL CLgmC CLCLCLCLmHnDvgoE] GCLHCLICLKCLLCLMCLNCLwQVxRY{ySd\TOP{Xjfg |Z^_}[o~]^`CyaEd~' ~gCLiX |kCLnEoEQHpFAtMwuvCLtwCLysO zq |ji 5~J66J7CLCL:B ;M<LO?EZCLCLBy1 CQibDBKEyBFt4GXHGk LXxRMSGNgqOFLPFfQFMRE7TGEUIV' CLCLYw ZDYCLCL]qHF ^L`CLCLaMYCLCLd~  CLf ^CLhD4KiYzCLkYN lJW mJ. niodpjff q d{ r"f s#K:t$KHu%Cp'CL(CLx*By+Tcz,G/CL0CL}2Ha~4Hh5Fn6B%8CL~9CL;D>O% ?f@e3A_@CCL E@CLCL  CLCLQ CL CL sF  [lr CLCLCLGp NE|DOVs`ǯdd{! @Ff"!r`#"W$$I%%L&&KWy''JS((AyV*CL*,Fi/CL-1{Z 4CL5CL07w3 29HTL3:H4;G[eCL6f]gCL8i@XlCL:nC qCL<szF^ =tH@wCLxCL@{KA|GB}@#'CLCLEDXH@4Ijy ixB j EVB B m l3 B i {EVP52ICLuJPj L#E:yK4Hg+ YEʘCLEcsUCLCLCLCLCLCLCLCLvgt3COxRVRU CLCLCLCLCLCLCL^CLCLCLN2`CLC-CL.CL0^ 3CL4CL5CL6CL$8L%9I\&`X?aI @bF4^AcCeCLDgn0 EGFEGX$kBgEC4A;3|q cq| pY jb oK m !CL CLCLb CLr ~] Bs TY! u CLCLCLCLCLEH`' o] v( z$ k rF [tx:D w_ B{ TwHI` z %  Ry d _0L9^CLCLCLCLCLCLCLCLCL!J8 "H(#H%GM(J)J}ee}fy~ ^ Mns NpCOqJ.ZPrEQu\TRwMSxq TyG#/Vzi X|EUY}F"[~j\[)^eg_oc `DV>aY@bZcT\)CLCLCLgn CLCLCLCLmHn~o^ CLCLCLCLCLCLCLwIxZ y^)OP{k |[l}p?~^DF1F)b ~CLY |CLEE{SG UF4uCLtCLr  p !jS 5$Jݔ6%K 'CL(CL:)BN;+If_<,KM?-E /CL1CLB2y#; C3V%D5BE6rF7rgG9TH:Gf L;WMFRP?F^Q@F]tRAE)TBHCUCIVF)b ICLJCLYLwna ZMDPCLQCL]Sq^ ^TMVCLWCLaZOCLCLd: CLf^CLhDSiXrCLkY lKk mJ ni od[pj qez rd sKγtKIuBYCLCLxByRkzGCLCL}H~H&JF>BRCL~CLDzZ {ixB |EV}EV~EVixB ixB EVi {EVPCLCCLCLqes "CL#CL$CL%CL$(KϜ%)I&,I .CL*1L-g,2\S4CL.6F!O9CL:CL;CLxWba?yIf@zF1A}w_ CLDh EGFEGW DtG,C8}% `G} pA jp o m !CL CLCL^ CLs | z BUZs yu CLCLCLCLCLE`H7 p1] w {w k rfFЂY͟y@Y IB\ UHtHIz)B OO c `\L33^CL CL CL CL CL CLCLCLCLJ]cH(H@HCJFJ}eW}f}5< ^ ^ Mat NcC EOdInPfEQi]<RjM%Sko TlGVmjǫ XoE[#YpF-\[r6\s_r^vd_wo `yCazVGb{W\cQs4CLCLCLgn CLCLCLCLmHn~o_Ql CLCLCLCLCLCLCLwI34xWy_ >OP{lwx |\A}p`~^D Er ~CLZ7' |CL E E G0FK\uCLtCLqh p j 5JN6K#CLCL:B;QT<!Nu?"Ed$CL%CLB'yN C(T D*C E+^BF,k8RG.O34H/Ge L0XqM1R{N2hO\O3FcP4FQ5FrwR6ET7H=U8J/1V9@ML;CLwt Z?EBCLCCL]mr+ ^oMqCLrCLauOvCLxCLdyA|CLf}^~CLhDXiU|CLkZxF lKǮ mKp nhod#pm = qfL ri3 sKtKHuBCLCLxByNzH[CLCL}I~H;(FTHC?CL~CLEV[ixB ixB EVEVEVixB ixB EVi {EVPCIDLw+JPl5h LvELJRHg+ YBMCLEtCrCLCLCLCLCLCL CL CL6v7t6g8Dk39e:b;_=CL>CL@CLACLBCLCCLDCLE^FCLGCLICLJN5LCLOCPCLQCLSvI VCLWCLXCLYCL$\KƂ%]I&_PbCL*eK,f]zhCL.jElCLmCLnCLoCL3l4A6V7W8U9Bq:Lfg;K|<HCL>W1?Im*@FjAF%CLDj EGFEGWwG4J(E`}{? b|}  p^ jp n m !CL CLCLe CLr }T B=sU: U)  u  CL CL CL CL CL E H   pCl ]  wt  {  k  mi F _\ #x  $x  'A  *UZ +Hؒ -I! 0zF^  1X`  4df  5` 6N@ 7^ aCL bCL cCL dCL eCL fCL hCL iCL jCL mJx nH) pH qH0 tJ wJ}ea}f| ^ ^ M s N C iO H=P DQ ]u<R M,6S n T GV j X E`Y FQ`[ ʴܣ\ Yx^ b%_ p8 ` B8a Y^b [xRc W> CL CL CLg n  CL CL CL CLm Gn Fgo _{c  CL CL CL CL CL CL CLw Lx RQy _ OP{ m | ]K} q̄~ (^ ,Cْ -E 0c ~ 2CL 4Z D | 6CL :E$ ;Ez i Pi CLk T l L{ m K n iLo d#p qq q k r l33 s Kt KCuu A CL CLx By O;z Gx CL CL} H$~ HMM Fh5 B CL~ CL D ixB  lo  EV B  B  n}[  m  B  l>  { EV Pv I8 L v JP #l5h  %OPP &GQ (JP )I~ Tg+  UY VBM XCL [E \q ^CL _CL aCL bCL cCL dCL eCL fCL it6g jt6g kD6f mO+ nMR oP qCL rCL sCL tCL uCL vCL wCL y^ zCL {CL |CL }N(E CL C` CL CL  O  CL CL CL CL$ L% IV& N CL* K, [| CL. J+ CL CL CL CL3 l4 A36 Z7 X8 J49 B8: K3; J< Gg CL> X? IaS@ F@A JH CLD pX E GLF EG X9A F H E }У  c }/  p  j>  !n  "m ! %CL  &CL 'CL )_Z  ,CL .s  0B" 1B 2tj.  3Pa  4u  7CL 8CL :CL ;CL U JV A CL CLY x Z D CL CL] s8 ^ MO CL CLa NM CL CLd   CLf ^ CLh Ci Xk$CLkTƺ lN mM( njffod(pm\ qe rfk sL t KMwu!A#CL$CLx&By'U;z(G̶+CL,CL}.Hzx~0Hd1F2B14CL~5CL7D_:ixB ;ixB EV?ixB AixB BEVCi E{HEVIPY0?IZ@F"7AD=CLD?qes EAG}FBEGCYEJfGMNgHH4K~& L\M} Nph Oj> Qn Rm !UCL VCLWCLYbTF \CL^t>u `| aCUbtx cX= dv4 gCLhCLiCLkCLlCLoEpH)sU up]w% { k rF^y FbAE WIqIIwzr V cQ a3I\^CLCLCLCLCLCLCLCLCLJH6[H6HJ#J#}ech'}f uz] ^ ^ Mv NC O HBP!E7Q$^R%MLMS&n T'GʋV)j X+EnY,F|[-O4\.[]^1e_2pUV `4A)wa6ab7dc8[:CL;CLoM iCLjCLkCLlCLmoFnr~gos`- uCLvCLxCLyCLzCL{CL|CLwLaHxU)yc OP{m |^H9}r~^CkEȮ{ ~CL[!4 |CLFYE:GfPUuCLtCLp pS jfg 5K6KQCLCL:Cpi;MK<P.?ElCLCLBy CS{DCj{EcFtGeHH LKMC4NY4OIUPIQkd Rll TH{UJ VAQcCLCLYy]w ZDCLCL]srb ^MCL0CLa3Ni5CL6CLd8@;:CLf;^=CLh?D4Ki@XL5CCLkET6 lFL mHKz nJioLdpNt=q qOn rPnH sQLtRKMwuSBc&UCLVCLxXByYTzZGe]CL^CL}`Hm~bHcFdB1fCL~gCLiDYn n`* B B B B n}[ B B|@ OHLvJPl5h LvHYeK#Hg+ YCLcCLE<sbCLCLCLCLCLCLCLCLvfs3Dk3pxRqCLCLCLCLCLCLCL^CLCLCLNM CL CCLCL~ CLCLCLCL$K6%I&R CL*#Lc&,$Pc&CL.(DB*CL+CL,CL-CL30l42A36]Uf7^\S38_M9aB:cGf;dJY<eDYgCL>jYS?kIb<@lF8Am@>oCLDqr ErG!FsEGtXCxNyPzKL~& cE~(? p- j n mm !CL CLCLc7 CLt/ |} C4u X vW CLCLCLCLCLEH/ p ]wna {= k p@F]\y x AxR U,I5Iyz U7 cb" _I^CLCLCLCLCL%CL&CL'CL(CL+Jf-H;.H/H2J#5J#}ef;}fz| ^ ^ Mu. NC OH PE-Q_RMSoSn TH Vkr XEuIYF[$\ ]r^#e_$p `%@ۘa'[fb(]kc*U,CL-CL.CLg0pG 2CL3CL4CL6CLm9Fn<o=` @CLACLBCLCCLDCLECLFCLwIH>xKVyLdMOP{Pmwx |R\}Sm]~}^C/EFv ~CL[!4 |CLFH;EgGPuCLtCLns op j( 5K36KiCLCL:D- ;IXi<P{?E#CLCLBy] CVDCCEgFr\*Gd{HH( LTkMLBNaqOIPIQn`* Rn TI0UK2VA]CLCLYy ZDCLCL]s ^NCLCLaP9CLCLd@QCLf^CLh DVi V`) CLkX* lN mM8R nioepr. qk rlaH sL(tDKYKuEBGCLHCLxJBɀyKQSzLH[OCLPCL}RI :~THUGVB=XCL~YCL[E]^B _EV`EVak bk dEVeEVfk gEi} j@ mPvoIpLsvouJPxl5h yO{H-}L~Hg+ YBMCLENqCLCLCLCLCLCLCLCLvgvgC{3OxRVRU{CLCLCLCLCLCLCL^CLCLCLNTOCLCCLCLz CLCLCLCL$ LB[% I&J&GCL*L,_CL.FmCLCLCL CL3"l4$A36'Q&f7(Wi8)L 9,B:-H&g;.Jc3</Dg1CL>4X?5Iy@6FS<A7D9CLD;xe E=G!F>EG?XяBJ6gCLDI)#@df#c1#~K #q #ju #n #m !# CL # CL# CL#a< #CL#sl #} #Ca#t4 #E#v#&Z?#'I@#(Fg5A#)B#+CLD#-oXB E#/GRF#0E݄G#1Z #4L.f#5N#7J3#:@'#;ay#<~ #=qHF #>j #?n #@m !#DCL #ECL#FCL#H`' #KCL#Mt #O} #PC#Qvv #SR#VvY #YCL#ZCL#[CL#CL#CL#F #H1#U #pӓ#]#y] #}T #k= #pVf#G #\)#zF^ #y1 #As3 #W#In^#I#z #Tx #d #`#K#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#Kf#HF#I#H)#J(#J(}e#Scs8}f#by)1 ^ ^ M#v& N#CCO#FXP#E5Q#_R#M{S#|} T#HyV#l:z X#E$Y#GZ#[#P\# ][^#Lc!_#Mq `#N@ea#PYb#QXaHc#RU#TCL#UCL#VCLg#Yp #[CL#\CL#]CL#^CLm#aFn#d~o#ea^ #hCL#iCL#jCL#kCL#lCL#mCL#nCLw#qH.x#rUQy#ta#uOP{#xn |#z\}#{oR~#}^#B#E#} ~#CL#\ |#CL#F!#F+t#GB#N,u#CLt#CL#o+ #p > #jD 5#KXb6#Kt#CL#CL:#E#;#P,<#QzN?#E#CL#CLB#z7 C#SD#C:E#mpF#z(G#eHH#IC9 L#NHM#FN#kO#IU P#IQ#pmy R#p- T#IeU#KV#G#CL#CLY#@AZ#E##CL#CL]#tY ^#N#!CL#"CLa#%O #'CL#(CLd#*@}B#-CLf#.^#/CLh#1Ei#2R|#5CLk#8X l#9K m#:J n#=go#>fp#@n q#Ajk r#Bl{ s#CLAqt#DKpu#EC #GCL#HCLx#JBEy#KMz#LHs<#OCL#xCL}#zH~#|I #}GC#~B~#CL~#CL#E#XP #ixB #B#EV#EV#ixB #ixB #EV#i #{#EV#P.C#I"7#L#} 8#JP#me #Lv#I#K<-#H\#g+ #YJr#CU#CL#En#s; #CL#CL#CL#CL#CL#CL#CL#CL#vf#vf#K!#O #MR#P)#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N:R#CL#C#CL#CL#qHF #CL# CL# CL# CL$#Ko%#I&#M#CL*#Ln,#@FXb#BCL.#Dwt #FCL#GCL#ICL#JCL3#Mm4#OA36#QR)7#RX8#SL9#VC%:#XJg;#YK<#ZF,#\CL>#_YpH?#`I^@#aFoaA#c~; #fCLD#hi& E#jHjF#kEG#lX#pI #qL8#rHf#u@_#v^G#xh! #yq #zj #{o #m<8 !#CL #CL#CL#f #CL#tY #zcz #C#up #Q #vv #CL#CL#CL#CL#CL#E #H#: #q#]#y{ #}: #k= #mc3#G,8#]#z)B #x #AW #Uv# I# I#z[ #WO #d #a#J#^#CL#CL#CL#CL#CL#CL#CL# CL#!CL#$K#%Ha#'I:#(H{F#,J(#-J(}e#_}f#y ^ ^ M#tv N#vCO#wFDuP#xEQ#{_R#|MeCS#}@T#HV#m X#EuY#G+[#&0\#Y ^#d_#s* `#BSRa#\b#\c#S#CL#CL#CLg#p #CL#CL#CL#CLm#G32n# o#b» #CL#CL#CL#CL#CL#CL#CLw#N x#YW y#bW #OP{#p |#Z}#k~#^#C(#F#y]w ~#CL#] |#CL#F#Fv#Go#IGu#CLt#CL#m #o #j`B 5#Ki6#Ko#CL# CL:# CZ;#4O0<#5QН?#6E#9CL#:CLB#CPE#@j34F#ApG#BU)H#CIk L#D^QM#EYuN#FmO#GIQlP#HIuQ#Ko R#LpA T#NJYU#OK]V#PC#RCL#SCLY#Uzu Z#VE2#YCL#ZCL]#\ua ^#^Nv#`CL#aCLa#dO#fCL#gCLd#i@u#lCLf#m^#nCLh#Di#O#CLk#V) l#L m#K( n#jo#f np#l q#f{ r#h33 s#LFt#Kpu#C #CL#CLx#By#UWNz#Hzx#CL#CL}#H~#ID>#H#B#CL~#CL#EZ#Yuc #ixB #B#EV#EV#ixB #ixB #EV#i #|#EV#P#Iλ#KCu# } 8# JP# mv # T.9# Jd# K # H# g+ # YX.# Eʘ# CL# E# r# CL# CL# CL# CL# CL# CL# !CL# "CL# %t6g# &lg# 'Bf# )LB# *O# +M{# -CL# .CL# /CL# 0CL# 1CL# 2CL# 3CL# 5^# 6CL# 7CL# `CL# aNH# cCL# fC # hCL# iCL# k}: # mCL# nCL# oCL# pCL$# sK%# tJ+/&# wH# zCL*# |Kh,# }K # CL.# O# CL# CL# CL# CL3# m%4# A6# Ic37# Ks38#  9# CW :# H;# J<# E # CL># ZO?# I@# FfLA# ~] # CLD# h E# HF# E G# Z4# Fљ# I# E# @# bY# y # q^ # j # o # mYk !# CL # CL# CL# `6 # CL# uD # }; # D# v # Z# v # CL# CL# CL# CL# CL# E/# HM# ) # +q =# .]# 0z % # 1}; # 2kLl # 5r# 8G8# 9X%# x # AB\ # DT"# EI# FJ!# I{ # JO]6 # M` # O_)# PI# Q^# RCL# SCL# TCL# VCL# WCL# XCL# YCL# ZCL# \CL# _K# `Hfj# aI*c# bHRw# J(# J(}e# Jm}f#x/ ^ ^ M# u_ N# CAO# G\P# EtQ# _\R# MeCS# @T# IV# nJ* X# E Y# Gy[# R\# [^# d]_# tr `# Ca# WT{b# Zcc# S# CL# CL# CLg# p # CL# CL# CL# CLm# Hn# ~io# c+ # CL# CL# CL# CL# CL# CL# CLw# Nzx# W\y# d# OP{# q |# \w}# o( ~# ^# C]# FN# wQ? ~# CL# _ |# "CL# &FH# 'Fn# (Gn# +K/7u# UCLt# VCL# YnV # Zp > # [j 5# ]Kf6# ^KZ# `CL# aCL:# cC;# dMU<# eRL?# fDg# iCL# jCLB# lz C# mPD# nD E# phW F# qp{G# rSH# sI L# uJٚM# vCN# wY@O# xIcP# yIQ# |n R# }o T# JFU# L)V# CL# CL# CLY# {/9 Z# E2# CL# CL]# up ^# N+# CL# CLa# OE^# CL# CLd# @Je# CLf# ^# CLh# DVi# V# CLk# V l# Mz m# Lk n# ho# fQ|p# o q# h{ r# kf s# LOt# Ktu# C# CL# CLx# B=y# Tz# Hzx# CL# CL}# H/~# IuM# Hm# BPE# CL~# CL# DY# Y # ixB # Brd# !EV# #EV# $ixB # %ixB # &EV# 'i # ){# *@ # -P.C# /Ia# 0L# 3} 8# 6JP# 9B # :Lv# ;H8# =K()# >I~# Ao^ # BX# CEʘ# ECL# HE# Ir# KCL# MCL# NCL# OCL# PCL# QCL# RCL# SCL# VC3# W # HH# M# P# N # CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# N<|# CL# Cݑ# CL# CL# : # CL# CL# CL# CL$# L%# I&# P># CL*# L5,# ]^# CL.# M># CL# CL# CL# CL3# m8v4# A6# O7# Rf8# F9# Cv:# Op;# M\<# I# CL># Xz?# I@# FVA# Fv # CLD# ixB E# GF# EMG# X9# E# G# Cf# @ئ# a# y # qˈ # j # n # mh !# CL # CL# CL# g # CL# up # }: # HCμ# Ivc#$S#&CL#'CL#(CLg#*p #,CL#-CL#.CL#0CLm#3HRn#6fgo#7c #9CL#:CL#;CL#=CL#>CL#?CL#@CLw#CPx#DVy#EcL#FOP{#Jp |#t\y}#unuF~#w^#zC#{FN#}f ~#CL#^ |#CL#F̈́#F~#Gx#Ou#CLt#CL#m\) #o| #jr 5#Ke6#KZ#CL#CL:#D;#IT<#R?#DnQ#CL#CLB#zr C#NAjD#DZE#o\F#{=qG#jH#I> L#PuM#GN#\O#IiNP#IQ#n4a R#n T#JU#LdV#Cl#CL#CLY#{LS Z#D#CL#CL]#vW ^#M<#CL#CLa#N#CL#CLd#@#CLf#^#CLh#Di#X#CLk# V l# O m# N n#io#fp#l q#LVet#@Kvju#ACP|#CCL#DCLx#FBy#GSxz#HH#KCL#LCL}#NHs<~#PI#QH#RB#TCL~#UCL#WE@#ZZO #[ixB #\B #]EV#^EV#_ixB #`ixB #aEV#bi #e{#hEV#iP #kH6#lL#o} 8#qJP#uoK #vR -#wH8#L#I~#o^ #X܉#Eʘ#CL#E:#q#CL#CL#CL#CL#CL#CL#CL#CL#vg#t6g#C{3#P#OxR#MR#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N1#CL#C#CL#CL#s #CL#CL#CL#CL$# L%# I&# N#CL*#L,#K#CL.#|` #CL#CL#CL#CL3#!m%B4##A36#%Q7#&Q08#'I9#*C:#,MI;#-K|<#.H#0CL>#2Y?#3Iĥ@#4FT$A#5B{#7CLD#9kK E#;GPF#I@&#AI#CCL*#FLB,#GB#ICL.#Kzr #NCL#OCL#PCL#QCL3#Sm-4#UA36#XWi7#YT8#ZH 9#]C:#^O3;#_K4<#E3#CL>#Y?#Ig@#FS<A#C+z#CLD#k. E#GfF#E-G#Y\#E#G#C#A{Q#b"# #r# #j #o #m !#CL #CL#CL#b #CL#u #|` #Cμ#u #oZ#vI #CL#CL#CL#CL#CL#F#I o#Fv #pP#] #x #|j #ki #of#Gh*#Z#z)B #x #AE # V # I@#J%#{ #V #dȉ #`p#Iɚ#^#CL#CL#CL#CL#CL# CL#!CL#"CL##CL#'Lh#PHu#QHx#RHa#UJ(#XJ(}e#qϝ}f#wms ^ ^ M#sv4 N#uCcO#vEP#xEzQ#{_ׅR#|MeCS#}o T#~I V#nt X#E\Y#HJ[#.\#^g^#d%_#t `#Bla#Zkb#[J>c#T#CL#CL#CLg#p̲ #CL#CL#CL#CLm#Gvn#~o#cӅ #CL#CL#CL#CL#CL#CL#CLw#Qx#TǮy#h8R#OP{#qn |#[R}#p~#^#C#E_Y#{H ~#CL#^6 |#CL#F#F=#G#Ou# CLt#!CL##l5@ #%o #&j 5#(Kz 6#)K#+CL#,CL:#.F;#/Q<#0SD?#1D#4CL#5CLB#7z C#8VK~D#9D3cE#;hF#J L#?PW M#@GN#A\HO#BIP#CIaQ#Fl R#Gmi T#IJU#JLdV#KCI#MCL#NCLY#P| Z#QD#|CL#}CL]#u ^#OS#CL#CLa#P#CL#CLd#@n#CLf#^#CLh#Di#Wo#CLk#V l#L\ m#Lff n#do#gWp#n q#nW r#l s#L`it#Kx;u#C#CL#CLx#Bwy#P%z#H#CL#CL}#G'~#I#I?#BBz#CL~#CL#D#[ #ixB #B#EV#EV#ixB #ixB #EV#i #|H#EV#O#I#L#} 8#J#B #Lv#H8#JP#I~# o^ # Y.# Eʘ#CL#E#q#CL#CL#CL#CL#CL#CL#DCL#ECL#Hvf#I~#JDk3#KGff#LGR#NGR#PCL#QCL#RCL#SCL#TCL#UCL#VCL#X^#YCL#ZCL#[CL#\N8#^CL#aC#cCL#dCL#fr@3 #iCL#jCL#kCL#lCL$#nK%#oI&#rOBN#uCL*#xL,#y`҇#zCL.#}O7#CL#CL#CL#CL3#mA4#A6#^7#ZC38#Of9#C:#I;#Kff<#E#CL>#X?#Iڄ@#FUA#A>#CLD#j E#GF#EG#Xi#Ja#L#Ig#AA;#a# #r@3 #j #o #mi !#CL #CL#CL#d #CL#up #} #C#v #H#v #CL#CL#CL#CL#CL#!F#"I #%Fv #'p@#+]#,y #-} #.kxB #1ps3#4Gi#5[9#8zr #:y#; #=AO\ #@WjJ#AI۞#BJ##E{/9 #FT 'tdٚ 't`3'tL0't^'tCL'tCL't CL't CL't CL't CL't CL'tCL'tCL'tLn'tHpc'tHI'tHa'tJ('tJ(}e#A}f##v>% ^ ^ M't7v`4 N't9CO't:EʅP'tdEa;Q'tg_R'thM{S'tio T'tjIlV'tkn X'tmEY'toHe['tp\'tq]~^'ttfs_'tus `'twAa'ty\b'tzZc't{S't}CL't~CL'tCLg'tp 'tCL'tCL'tCL'tCLm'tG9n'tS4o'tcj 'tCL'tCL'tCL'tCL'tCL'tCL'tCLw'tWzx'tV{y'tk'tOP{'tp |'t[l}'tn~'t^'tC$'tE{|'t~# ~'tCL't_Ll |'tCL'tF'tFÝ'tG'tFu'tCLt'tCL'tlu 'tn 'tjl 5'tK6'tKU'tCL'tCL:'tFb;'tO3<'tT ?'tCSc'tCL'tCLB'tzF^ C'tVD'tDmRE'tv{F'tAٚG'te >H'tJ=s L't,QM't-K5N't.]s4O't/IOP't0IQ't3lD R't4m T't6KU't7LbV't8Cr't:CL't;CLY't=}: Z't>D'tACL'tBCL]'tDu ^'tFO7'tHCL'tICLa'tLP'tNCL'tOCLd'tQA$Z'tSCLf'tT^'tVCLh'tXDi'tYV't[CLk't^WA3 l't_P = m't`O n'tdd3o'tegxp'tgp. q'th r'tl{ s'tLaSt'tKu'tCO'tCL'tCLx'tBy'tO'z'tH'tCL'tCL}'tGx~'tJ'tIJ'tB'tCL~'tCL'tE*'t[; 'tixB 'tBn'tEV'tEV'tixB 'tixB 'tEV'ti 't{'tEV'tP52'tI='tK<-'t} 8'tJP'tB 'tQ<'tH8'tJP'tI~'to^ 'tY 'tEʘ'tCL'tE'tq'tCL'tCL'tCL'tCL'tCL'tCL't CL't CL't Cf'tA'tI3'tL)'tO\'tM)'tCL'tCL'tCL'tCL'tCL'tCL'tCL't^'tCL'tCL't CL't!NI{'t#CL't&C't(CL't)CL't+zT 't-CL't.CL't/CL'tXCL$'t[L1%'t\J@&'t_Rz'tbCL*'tdL\,'teU('tgCL.'tjL)'tlCL'tmCL'tnCL'toCL3'tqmO94'tsA6'tvY7'twV8'txJ#39't{C֘:'t}J ;'t~L#4<'tG9'tCL>'tZ~?'tI@'tFg5A'tB'tCLD'tk) E'tH F'tF~G'tZ'tI'tL3'tHnf'tAE't^~'t@0'trk 'tk 'to 'tm !'tCL 'tCL'tCL't^ 'tCL'tv- 'ty 'tDJ'tw 'tT 'tw 'tCL'tCL'tCL'tCL'tCL'tF'tI'tFv 'tq _'t]{'t{w 't~ 'tk 'tn'tHM5't_'t"{LS 't#y 't'A=q 't*Uv't+I't,J9't/{= 't0Q 't3g 't4_'t6L|'t7^'t8CL't9CL't:CL't;CL't=CL't>CL't?CL't@CL'tACL'tEL'tFHt'tGH7'tHHi"'tKJ('tMJ(}e'tcF}f'tv ^ ^ M'tw N'tCO'tFtP'tEQ't_R'tM-S'to T'tI;V'tnXm X'tEY'tH['t|u\'tZY^'tcq_'tt* `'tAPga'ti\b'tjc'te'tCL'tCL'tCLg'tqp 'tCL'tCL'tCL'tCLm'tFn'tPo'td{c 'tCL'tCL'tCL'tCL'tCL'tCL'tCLw'tQ.x'tTLy'tku'tOP{'tq |'t\O}'tm~'t^'tCd'tE't}X ~'tCL't_i |'t CL't FU't F'tH'tLSu'tCLt'tCL'tk 'to 'tjD 5'tK6'tK'tCL't CL:'t"E2;'t#N<'tLT{?'tME'tPCL'tQCLB'tSz C'tTU>D'tUDE'tWcLF'tXkuG'tY]zH'tZJv L't[^#M't\W=qN't]lO't^IP't_IQ'tblR R'tcm T'teK`<U'tfMV'tgC'tiCL'tjCLY'tl}h Z'tmE@'tpCL'tqCL]'tsv4 ^'tuOMN'twCL'txCLa't{P,'t}CL't~CLd'tAO'tCLf't^'tCLh'tEi'tU;7'tCLk'tWn6 l'tL m'tLaH n'teo'tgp'tl{ q'tfG r'tf# s'tLit'tKu'tC'tCL'tCLx'tB5y'tMz'tH'tCL'tCL}'tG~'tJ<^'tIr'tB'tCL~'tCL'tE'tZ 'tixB 'tD'tEV'tEV'tixB 'tixB 'tEV'ti 't|ʿ't@ 'tO'tI'tL't} 8'tJP'tB 'tPMp't?MR't@V^'tAOxR'tCCL'tDCL'tECL'tFCL'tHCL'tICL'tJCL'tK^'tLCL'tMCL'tNCL'txN=5'tzCL't|CҶ't~CL'tCL't| 'tCL'tCL'tCL'tCL$'tL%'tI&'tKO'tCL*'tMs,'tCv'tCL.'tyl 'tCL'tCL'tCL'tCL3'tmL`4'tA36'tS\7'tTf8'tI 9'tCZ:'tLc3;'tM`<'tHff'tCL>'tZY?'tI@'tFcA'tC~3'tCLD'tm E'tGgF'tEG'tZo'tG'tI'tF'tA)'tba't@h'tr 'tkQ 'to; 'tm !'tCL 'tCL'tCL'tg 'tCL'tw% 't{H 'tE2'ty1 'tPԚ'tw4 't CL't CL'tCL't8CL't9CL't=F/'t>I1'tA 'tCq+'tn]'to~ 'tp@}B'tqk| 'tur'txG 'tyZC't||oQ 't}{LS 'tAf 'tV\'tJ<'tJI't{Z 'tV- 'tc 't`f'tI't^'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tL'tH'tH'tH:'tJ8R'tJ8R}e'tc}f'tuj ^ ^ M'tv N'tC?O'tEoP't_EoQ'tba#R'tcMS'tdo T'teJV'tfo.Z X'thEY'tiHv['tko\'tl[^'todk_'tt `'t@a't`b'ta+c'tY('tCL'tCL'tCLg'tq: 'tCL'tCL'tCL'tCLm'tFn't~o'te 'tCL'tCL'tCL'tCL'tCL'tCL'tCLw'tTkx'tZǮy'tk'tOP{'trrY |'t[P}'tm+~'t^'tC1O'tF'ty ~'tCL't_xB |'tCL't F't G't H-'t O0u't CLt't CL't j 't n 't j~ 5't K:6't KX't CL't CL:'t G;'t K2<'t U#?'t DQN't CL't CLB't z C't !S&D't "D<E't $a34F't %o G't &_H't 'J8 L't (QzM't )I)N't +^QO't ,IP't -IrQ't /l5h R't 0m T't 2KÔU't 3MewV't 4DV't 6CL't 7CLY't a~ Z't bD't eCL't fCL]'t huS[ ^'t jN't lCL't mCLa't pOh't rCL't sCLd't uAҩ't xCLf't y^'t zCLh't |Edi't }T 't CLk't W l't O{ m't N n't do't gp't n q't if r't l s't Lyt't KDu't C't CL't CLx't AOy't Tʹz't IiN't CL't CL}'t H9Q~'t Jw{'t I 't A't CL~'t CL't D't Z 't ixB 't EZ't A't A$Z't ixB 't ixB 't A2't i 't |ʿ't @ 't P'T't I o't L't } 8't J't B 't Q5't I't K?'t I~'t o^ 't Y't Eʘ't CL't E''t q't CL't CL't (CL't )CL't *CL't +CL't ,CL't .CL't 1Cf't 2vf't 3C{3't 4GR't 5LJ>'t 6GR't 8CL't 9CL't :CL't ;CL't =CL't >CL't ?CL't @^'t ACL't BCL't CCL't EN?_'t GCL't ICy't KCL't LCL't NzT 't QCL't RCL't SCL't TCL$'t WKІ%'t WI&'t ZQ't ]CL*'t `L),'t a]h't cCL.'t Ik't CL't CL't CL't CL3't mW4't A36't T7't S8't Jf9't D8:'t Jɚ;'t Kg<'t FP't CL>'t Z5?'t Js@'t FtA't xt 't CLD't k E't H <F't EG't Z-'t Hf't KVf't H3't A't a't A?'t r 't kK 't ouq 't nB !'t CL 't CL't CL't eT 't CL't y@Y 't |` 't F7 't {LS 't Sw[ 't wna 't CL't CL't CL't CL't CL't F;s't Ib't @'t qH't ]'t r 't AK't k 't ns3't G't ^'t |oQ 't !{= 't %AW 't (V&'t )Jp't *Jɒ't U{w 't VU 't Yej 't [`@'t \I't ]^'t ^CL't _CL't `CL't aCL't cCL't dCL't eCL't fCL't gCL't kM't lH5't mH't nHp't qJ33't rJ33}e't ai}f't t ^ ^ M't wn N't CO't F-P't EQ't abTR't MS't o7 T't J4V't ou X't EMY't I['t O\'t X}^'t b_'t uG `'t @!a't X{b't [qc't UB't CL't CL't CLg't q 't CL't CL't CL't CLm't Fn't ~go't f 't CL't CL't CL't CL't CL't CL't CLw't RQx't X#y't g't OP{'t r |'t Z}}'t l~'t ^'t C't EZ't "{ ~'t $CL't &` |'t )CL't ,GP't -G9't .HH't /F[u't 1CLt't 3CL't 5jf 't 6oƨ 't 7k1' 5't 9K6't :Kγ't 'tY?'tJE@'tF|A'tx 'tCLD'tk. E'tGRF'tEG'tY'tL$'tN'tJ't BP0't ae't AW'ts)~ 'tkZY 'to 'tn !'t=CL 't>CL't?CL'tAa>' 'tDCL'tGx 'tH{ 'tIE9['tJ{ 'tKYG 'tLw 'tOCL'tPCL'tRCL'tSCL'tTCL'tWFR'tXI'tY@'tZqv$'t^]O't_~' 't`@'takQ 'tdl3'tgG'th`i'tk},l 'tm{ 'tpAJ= 'tsW'ttJ'tuJ֕'t{ 'tO 'td 't`@'tI't^'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tM>'tH'tI'tH'tJ8R'tJ8R}e'tKd]}f't 5ty ^ ^ M't>vԑ N't@CO'tBF^P'tCFQ'tF`YR'tGMOS'tHn T'tIJrV'tJp) X'tLE3Y'tNIV>['tOĘ\'tPXg^'tSd6_'tTv9 `'tU@a'tWZb'tX]޹c'tZT't\CL't]CL't^CLg'taq 'tcCL'tdCL'teCL'tfCLm'tiFbn't~o'tgY 'tCL'tCL'tCL'tCL'tCL'tCL'tCLw'tJx'tV8Ry't_'tOP{'tti |'t\}'tl~'t^'tC 'tE'tvY ~'tCL't\ |'tCL'tG9y'tG'tHU'tFwu'tCLt'tCL'tj 'to?} 'tk1' 5'tL.P6'tK'tCL'tCL:'tGJ;'tQ<'tV:-?'tF'tCL'tCLB'ty C'tPD'tDE'tkF'twHG'tvaHH'tKT& L't \!HM't VuN't jO't IP'tIFQ'tl5h R'tl T'tLC;U'tMmV'tE='tCL'tCLY't@JeZ'tE9['tCL't CL]'t"vY ^'t$Ncx't%CL't&CLa't)OB|'t+CL't,CLd't.C't1CLf't2^'t\CLh't^Ei't_Qr'tbCLk'tdX$ l'teMu m'tgM n'tid3o'tjh|p'tlp q'tnk r'tooL s'tpLGt'tqK*u'trC'ttCL'tuCLx'twAt@y'txRŐz'tyJ3't|CL't}CL}'tIΘ~'tJ'tJ i'tBs'tCL~'tCL'tDX'tY 'tixB 'tH'tAҩ'tA"'tixB 'tixB 'tA:'ti 't{'tEV'tP'tIO'tL't} 8'tJP'tB 'tTet'tL'tK()'tI~'to^ 'tYs'tEʘ'tCL'tE'tpT'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tBC3'tvf'tI3'tMR'tOxR'tMR'tCL'tCL'tCL'tCL'tCL'tCL'tCL't^'t$CL't%CL't&CL't(N"~'t*CL't-C<'t.CL't/CL't1s T 't4CL't5CL't6CL't7CL$'t:K%'t;I&'t>H\'t@CL*'tCLA,'tDCU'tFCL.'tHvR 'tKCL'tLCL'tMCL'tNCL3'tRmy4'tTA36'tWV7'tXR338'tYL9't[DfJ:'t]M3;'t^Lf<'t_I'tCL>'t[&#?'tJ\@'tFWA'tA2'tCLD'tl& E'tGF'tE%G't[@'tv<'t{Q'tt'tE't_o'tB^'th 'tc7 'tDY'tH]!'tCL 'tCL'tCL't`' 'tCL'tz7 'ttz 'tEO't{ 'tI 'tw 'tCL'tCL'tCL'tCL'tCL'tFQ)'tI't@V'tq>'t]O't~ 'to 'tk& 'tr'tH'tZӞ't} 't| z 'tA 'tV't i\ 't I='t {H 't P 't_ 't]\'tFC3't^'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL'tCL't!MF't"Hp't#I#'t%H'tPJ8R'tSJ8R}e't_Z\}f'tt. ^ ^ M'tmwf N'toC`O'tpF8UP'tqErQ'tta1{R'tvMS'twwl T'txKAhV'tyqw X't{EQY't|I|['t}p\'t[6 ^'te_'tw* `'t@a't`s4b'tb0c'tZ'tCL'tCL'tCLg'tqY9 'tCL'tCL'tCL'tCLm'tF[n't~)o'thU 'tCL'tCL'tCL'tCL'tCL'tCL'tCLw'tIx'tTfy't]k'tOP{'tu: |'t[# }'tnݭ~'t^'tC x'tEV'ty#; ~'tCL'tah |'tCL'tGK'tG'tHcN'tMu'tCLt'tCL'tg 't oQ 't!j 5't#LI6't$K{'t&CL't'CL:'t)HG;'t*Q<'t+V]?'t,EZ't/CL't0CLB't2y C't3N:wD't4D#E't6a*F't7tfgG't8iǯH't9Ks L't:KM't;T>N't'tX?'tJ @'tFA't@B'tCLD'tk) E'tGPF'tEG'tX'tmvf'trL'tl+4'tHZ't]'tBF'te/ 'tbTF 'tGC'tIiN!'tCL 'tCL'tCL'tii 'tCL't{= 'tv 'tE't |oQ 'tRU'tx# 'tCL'tCL'tCL'tCL'tCL'tF=B'tIm't@['tq%'t"]'t#~ 't$k/ 't&l ^ 't)pI't,H*'t-[|'t0} 't1|5! 't4A 't7X't9AIf't:Gj't={ 't>Y, 'tA` 'tB_3'tCH'tE^'tFCL'tGCL+\CL+\CL+\CL+\CL+\CL+\CL+\CL+\ L+\ Ho+\ IZ+\H`+\J8R+\J8R}e'tEm}f'tq ^ ^ M+\.x# N+\0C%O+\1FP+\3E5Q+\6a˂R+\7MS+\8@T+\9K+V+\:qZ X+\dE Y+\fIl[+\gq%\+\hZ'^+\ke)_+\lw9 `+\nBa+\oZb+\p[{c+\rSR+\tCL+\uCL+\vCLg+\xqh +\zCL+\{CL+\|CL+\~CLm+\Gn+\~4o+\h +\CL+\CL+\CL+\CL+\CL+\CL+\CLw+\Cx+\TLy+\^34+\OP{+\u# |+\Z}+\m~+\^+\C?+\Fm"+\t' ~+\CL+\bR |+\CL+\GK+\G+\H\+\Fu+\CLt+\CL+\i8R +\o- +\jD 5+\LZ6+\K;+\CL+\CL:+\G;+\QZ<+\V?+\F+\CL+\CLB+\y C+\N"&D+\EE+\`\*F+\mQG+\dH+\K L+\VM+\QN+\fO+\I&P+\JQ+\l~k R+\m<8 T+\LU+\NV+\,E+\.CL+\/CLY+\1@rZ+\2EO+\5CL+\6CL]+\8vt ^+\:Nd+\+\vY7?+\wJ"@+\xFA+\{xH +\~CLD+\l~k E+\GF+\EG+\Y+\l3+\r+\k3+\KW+\a.+\B+\d +\bb +\Fm+\Ha!+\CL +\CL+\CL+\a +\CL+\|5! +\xt +\EW+\}u% +\X +\xWc +\CL+\CL+\CL+\CL+\CL+\F0+\I+\@f+\r5+\]O+\~z +\kZY +\l' +\qp+\H7c+\`S%+\~OI +\}T +\AW +\W+\H+\Id+\"|& +\#P +\&`U +\'_+\(If+\)^+\+CL+\,CL+\-CL+\.CL+\/CL+\0CL+\2CL+\3CL+\4CL+\7Lm+\8Hc+\9H+\;H +\>J=q+\AJ=q}e+\h}f+\rM ^ ^ M+\[x N+\C'O+\EP+\E?Q+\a7R+\MrS+\@T+\KOV+\q X+\EŎY+\Io[+\o\+\];^+\cY_+\wr `+\Ca+\Z b+\[c+\Tq+\CL+\CL+\CLg+\qxq +\CL+\CL+\CL+\CLm+\Gܜn+\yo+\h +\CL+\CL+\CL+\CL+\CL+\CL+\CLw+\Ix+\Zfy+\`L+\OP{+\u1 |+\[fB}+\m"S~+\^+\C+\F?+\nQ ~+\CL+\`D |+\CL+\G`+\G+\Ho+\Mfu+\CLt+\CL+\ hs +\ n +\ jM 5+\LlA6+\L+\CL+\CL:+\I :;+\Q8<+\X)?+\DQN+\CL+\CLB+\y C+\VD+\ EE+\"Z.F+\#gpG+\LN H+\MK L+\NHkM+\OA}qN+\PV>O+\RIP+\SIQ+\Ulo R+\Vm T+\XLU+\YNF=V+\ZF,+\\CL+\]CLY+\_AZ+\`D+\cCL+\dCL]+\fup ^+\hOn+\jCL+\kCLa+\nP<+\pCL+\qCLd+\sC +\vCLf+\w^+\xCLh+\zFi+\{O}H+\~CLk+\X l+\LQ m+\K\ n+\do+\h"p+\oǮ q+\l r+\n{ s+\LŎt+\Ku+\Ck+\CL+\CLx+\@y+\N5Jz+\IZ+\CL+\CL}+\J ~+\Ky +\Jq+\AY+\CL~+\CL+\DB+\Z}W +\ixB +\M+\FN=+\FN=+\ixB +\ixB +\F!O+\i +\{ey+\EV+\P+\H+\L+\} 8+\JP+\B +\P+\Mo+\K4+\I~+\o^ +\Y+\Eʘ+\!CL+\$ER+\%rU+\'CL+\(CL+\)CL+\*CL+\+CL+\-CL+\.CL+\/CL+\2t6g+\3t6g+\4H+\5MR+\6VR+\7Vu+\9CL+\:CL+\CL+\?CL+\@CL+\A^+\BCL+\CCL+\DCL+\FN8+\HCL+\KC+\LCL+\MCL+\Ox0 +\zCL+\{CL+\|CL+\}CL$+\K%+\I&+\J~+\CL*+\L,+\Co+\CL.+\x +\CL+\CL+\CL+\CL3+\m4+\A36+\Q7+\O 8+\J49+\Dxx:+\J;+\L<+\G3+\CL>+\Yi?+\J5@+\F|A+\p< +\CLD+\mJ E+\G9F+\EG+\Z\{+\jh+\o+\h+\M+\_t+\B+\fE +\c +\H#+\J,!+\CL +\CL+\CL+\ejU +\CL+\| +\~z +\CB+\|= +\O' +\x +\CL+\CL+\CL+\CL+\CL+\ F++\ IR+\ @{+\rH+\]O+\}h +\kK +\l63 +\n0+\BHI+\D]+\G}T +\H{a +\KAG +\NV_+\Qr +\RH#+\S|R8 +\UV3 +\Xcȉ +\Y_3+\ZJc3+\[^+\\CL+\]CL+\_CL+\`CL+\aCL+\bCL+\cCL+\dCL+\fCL+\iLW+\jHM+\kH6+\lG+\oJ=q+\qJ=q}e+\_SH}f+\ qe ^ ^ M+\vn N+\C+O+\FoP+\EQ+\a^R+\N;0S+\ T+\JV+\p5 X+\EuY+\IT[+\ðL\+\\6^+\e_+\vc `+\Duda+\Xb+\Y)c+\Rp+\CL+\CL+\CLg+\qA +\CL+\CL+\CL+\CLm+\Hkn+\S4o+\ g» +\ CL+\ CL+\CL+\CL+\CL+\CL+\CLw+\Ekx+\W\y+\_H+\OP{+\ti |+\[}+\oa~+\^+\!Cf+\#Fz+\&nn ~+\(CL+\*^6 |+\,CL+\/GXT+\0G{+\2Hj+\5G2u+\7CLt+\8CL+\:g +\G+\|N=qH+\}K L+\~H\)M+\AN+\VO+\IP+\I\Q+\l5h R+\l9 T+\LU+\NS V+\E5+\CL+\CLY+\AZ+\D+\CL+\CL]+\u ~ ^+\OU+\CL+\CLa+\P.c+\CL+\CLd+\B +\CLf+\^+\CLh+\Fsi+\N+\CLk+\X l+\O m+\O\ n+\d3o+\iDp+\p q+\k{ r+\j s+\Lt+\Ku+\C+\CL+\CLx+\@gvy+\L4z+\I6+\CL+\CL}+\Jm~+\K_+\K+\B>+\CL~+\CL+\D;+\Y` +\ixB +\M+\GL+\Gϛ+\ixB +\ ixB +\ Gx+\ i +\5{+\6@ +\9P+\;I3+\+\CL+\C +\CL+\CL+\w3 +\CL+\CL+\CL+\CL$+\K%+\IΘ&+\MB+\CL*+\Lc&,+\P+\CL.+\: +\CL+\CL+\CL+\CL3+\m 4+\A6+\P37+\S8+\I9+\D:+\Jf;+\L6g<+\G<+\CL>+\ W?+\ J4@+\ FwA+\ o; +\ CLD+\ k/ E+\ G8F+\ EܜG+\ Yo+\ h+\ m+\ g+\ O+\ ]~+\ B|+\ d7' +\ bq +\ I6+\ JP!+\ CL +\ !CL+\ "CL+\ $e +\ 'CL+\ )|j +\ *@gv+\ +DX+\ ,}; +\ .M-# +\ /x +\ 2CL+\ 3CL+\ 4CL+\ 5CL+\ 6CL+\ bF^+\ cI@+\ d@d+\ er7++\ h]O+\ i}~ +\ jkh +\ klSk +\ on3+\ rHQ+\ s^\y+\ v} +\ w|j +\ zA=q +\ }VE+\ ~G+\ H+\ |} +\ T +\ c{ +\ _+\ IVf+\ ^+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ L=+\ HA<+\ H+\ Gɔ+\ J=q+\ J=q}e+\ .^!}f+\:q ^ ^ M+\ xs N+\ C.ZO+\ EDP+\ EQ+\ a>R+\ N ES+\ o T+\ KV+\ qA X+\ EY+\ I}[+\ &\+\ ZԠ^+\ c7_+\ v `+\ Ca+\ a:b+\ c.c+\ Z>+\ CL+\ (CL+\ *CLg+\ ,q +\ .CL+\ /CL+\ 0CL+\ 1CLm+\ 4H#Pn+\ 7go+\ 9g» +\ ;CL+\ CL+\ ?CL+\ @CL+\ ACLw+\ EFBx+\ FVffy+\ GZ+\ HOP{+\ It΁ |+\ JZ]}+\ Kkq~+\ M^+\ QD9+\ RF+\ Unn ~+\ WCL+\ Y^ׄ |+\ [CL+\ ^G_+\ `Ge+\ aH+\ K8u+\ CLt+\ CL+\ g +\ n- +\ jF 5+\ L6+\ KM+\ CL+\ CL:+\ Hzx;+\ PU<+\ Y?+\ D+\ CL+\ CLB+\ y# C+\ UD+\ EE+\ a*F+\ {G+\ U)H+\ Kѐ L+\ IQM+\ BT{N+\ WO+\ IP+\ I\Q+\ lD R+\ m T+\ MU+\ N\.V+\ E+\ CL+\ CLY+\ AKZ+\ D̘+\ CL+\ CL]+\ u65 ^+\ O+d+\ CL+\ CLa+\ O+\ CL+\ CLd+\ B +\ CLf+\ ^+\ CLh+\ Fmi+\ Mܪ+\ CLk+\ Y2 l+\ O33 m+\ N n+\ dfo+\ i܉p+\ p\) q+\ iff r+\ jk s+\ L:t+\ Ku+\ C4+\ CL+\ CLx+\  y+\ Rz+\ H+\ CL+\ CL}+\ "I~+\ $K+\ %K3+\ &B9 +\ (CL~+\ )CL+\ +DG+\ V]K +\ WixB +\ XJ_C+\ YFݱ+\ ZG )+\ [ixB +\ \ixB +\ ]F/+\ ^i +\ a{ey+\ b@ +\ ePv+\ gI+\ hL+\ k} 8+\ mJ9+\ pB +\ qSQ/+\ rM+\ tK&X+\ uH+\ xo^ +\ yY6+\ {Eʘ+\ }CL+\ ED+\ pU+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ vf+\ uL+\ C{3+\ GR+\ N+\ L34+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ ^+\ CL+\ CL+\ CL+\ N<|+\ CL+\ Cn+\ CL+\ CL+\ w +\ CL+\ CL+\ CL+\ CL$+\ L'%+\ Ir&+\ Rm+\ CL*+\ L$L,+\ ^\y+\ CL.+\ Pz+\ CL+\ CL+\ CL+\ CL3+\ n4+\ A36+\ L7+\ Jg8+\ !Ag9+\ #D+:+\ %Jff;+\ &L3<+\ 'J +\ )CL>+\ ,X?+\ -J2 @+\ .FA+\ 0z % +\ 3CLD+\ 5k_ E+\ 7GF+\ 8EDG+\ 9Z+\ h+\ AP+\ Bal+\ CBh+\ DeT +\ Fc +\ GG'+\ HI6!+\ KCL +\ LCL+\ MCL+\ Obs +\ RCL+\ U|ƚ +\ V@u+\ WDX+\ },l +\ oH+\ x +\ CL+\ CL+\ CL+\ CL+\ CL+\ E+\ I+\ @X+\ r+\ ]O+\ }R +\ k +\ lp +\ q0+\ Hc +\ Uv+\ ~24 +\ } +\ B +\ Um+\ |` +\ Ip+\ | +\ QB2 +\ d +\ `3+\ K+\ ^+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ CL+\ LU+\ H9+\ H+\ G<+\ J=q+\ J=q}e+\ ]| }f+\ q;[ ^ ^ M+\ vc N+\ C1O+\ F2P+\ F)GQ+\ bK-R+\ N$S+\ oI T+\ K$ZV+\ qLM X+\ IEY+\ JJ K[+\ K\+\ L["^+\ PeS_+\ Qw `+\ SBa+\ Tc\*b+\ Udc+\ V^\+\ XCL+\ YCL+\ [CLg+\ ]qI +\ _CL+\ `CL+\ aCL+\ bCLm+\ eGVn+\ ho+\ ih@ +\ lCL+\ mCL+\ nCL+\ oCL+\ pCL+\ qCL+\ rCLw+\ uGHx+\ wUQy+\ xd#+\ yOP{+\ zu0 |+\ {[H}+\ |mp~+\ ~^+\ D,+\ E +\ nQ ~+\ CL+\ b& |+\ CL+\ G+\ G+\ H+\ Leu+\ CLt+\ CL+\ gF +\ m +\ ji 5+\ L6+\ K+\ CL+\ CL:+\ Hؒ;+\ OBN<+\ X?+\ EsZ+\ CL+\ CLB+\ yz C+\ TD+\ DE+\ b{F+\ x>G+\ ^34H+\ K L+\ L#M+\ DN+\ YO+\ IwP+\ IFQ+\ l& R+\ l T+\M9U+\NV+\J`+\CL+\CLY+\CaZ+\E*+\CL+\CL]+\u} ^+\!OK+\#CL+\$CLa+\'P+\)CL+\*CLd+\,C +\/CLf+\0^+\1CLh+\3Gi+\4M+\7CLk+\:X l+\;Q( m+\+\dV\?+\eJ<@+\fFA+\iqes +\kCLD+\mm E+\oGF+\pEG+\qY+\ujP+\voH+\wh+\R+\^m+\Cv8+\f(r +\c!( +\H$+\J!+\CL +\CL+\CL+\g>? +\CL+\~ +\x +\D+\~ +\L~| +\y#; +\CL+\CL+\CL+\CL+\CL+\E+\I+\@UK+\q+\]+\}h +\kK +\l +\n+\Hz+\[::+\}X +\|` +\A +\ U+\zr +\Gx+\|ƚ +\S5 +\cD +\_f+\I+\^+\CL+\CL+\CL+\CL+\CL+\CL+\ CL+\!CL+\"CL+\%L+\'H4+\(H+\)G-+\-JB+\.JB}e+\]}f+\ pl ^ ^ M+\pxs N+\rC1O+\sFP+\uFs1Q+\xbR+\yN";S+\zoXB T+\{K2V+\|qZ X+\~E>Y+\JC[+\&\+\[a^+\dD3_+\w `+\Aa+\Z\b+\[)c+\S4+\CL+\CL+\CLg+\q*c +\CL+\CL+\CL+\CLm+\G>n+\~o+\hӄ +\CL+\CL+\CL+\CL+\CL+\CL+\CLw+\G >x+\Ty+\ck+\OP{+\u"# |+\Y}+\kC~+\^+\Cޠ+\F+\n ~+\CL+\^S |+\CL+\G˝+\Gܤ+\I&+\Ju+\CLt+\CL+\f +\m# +\jc 5+\L6+\K+\CL+\CL:+\H ;+\N<+\X?+\0D+\3CL+\4CLB+\6yl C+\7SsD+\8EE+\:\F+\;mqG+\]fM+\?VN+\@kfgO+\AIlP+\BJ&Q+\ElD R+\Fm T+\HMiU+\INV+\JJYz+\LCL+\MCLY+\OCμZ+\PDS+\SCL+\TCL]+\Vu6 ^+\XO5~+\ZCL+\[CLa+\^O +\`CL+\aCLd+\cC+\fCLf+\g^+\hCLh+\jGgi+\kO+\CLk+\X l+\O m+\N n+\e@o+\j' p+\mk q+\h r+\h s+\Ltt+\Ku+\D[v+\CL+\CLx+\@y+\Rz+\Hd+\CL+\CL}+\H ~+\K+\Kvw+\BI+\CL~+\CL+\D+\Y: +\ixB +\N+\H@+\H<6+\ixB +\ixB +\H9Q+\i +\|U+\EV+\Pv+\I+\L+\}?+\JP+\B +\ Sv+\ M?+\ JR+\I~+\o^ +\Y+\Eʘ+\CL+\EN+\p?k+\CL+\CL+\CL+\CL+\ CL+\!CL+\"CL+\#CL+\&vg+\'wg+\(D+\)\R+\+V8R+\,OxR+\.CL+\/CL+\0CL+\1CL+\2CL+\3CL+\\CL+\^^+\_CL+\`CL+\aCL+\bNB+\dCL+\gC+\iCL+\jCL+\lt +\nCL+\oCL+\pCL+\qCL$+\tK %+\uIE&+\xL;+\{CL*+\}LΫ,+\~Cq$+\CL.+\v+\W?+\J1 @+\FA+\B+\CLD+\l E+\GyF+\E=G+\[#+\n+\r+\kp+\S+\^}+\C+\c +\_ +\I +\L+!+\CL +\CL+\CL+\a< +\CL+\} +\s +\DX+\~s +\V?+\yN +\CL+\CL+\CL+\CL+\CL+\&E+\'I+\*@+\,qNd+\/]O+\0}; +\2kQ +\3l +\6rl+\9H+\:Zp+\>}X +\?|} +\BB +\EV8+\FC>+\GI+\J| +\KO +\Of +\P`P+\QL0+\R^+\SCL+\TCL+\UCL+\WCL+\XCL+\YCL+\ZCL+\[CL+\\CL+\Lڄ+\H2+\HR+\Gt+\JB+\JB}e+\I}f+\o ^ ^ M+\x N+\C3XO+\EtP+\F9Q+\bR+\N,S+\o,| T+\K+V+\q> X+\E)Y+\JV>[+\c\+\Wq^+\d[_+\v `+\AMa+\Zb+\[)c+\U+\CL+\CL+\CLg+\q" +\CL+\CL+\CL+\CLm+\FWn+\~4o+\i't +\CL+\CL+\CL+\CL+\ CL+\ CL+\ CLw+\MHx+\U)y+\b8R+\OP{+\u m |+\ZuF}+\m~+\^+\C+\F[+\nT ~+\!CL+\#` |+\&CL+\QG4+\RG+\TI%H+\WOP/u+\YCLt+\ZCL+\]f" +\^m +\_i 5+\bL6+\cLp+\eCL+\fCL:+\hG;+\iN <+\jY?+\kD_+\nCL+\oCLB+\qyz C+\rRD+\sE E+\usF+\v@J>G+\wj*H+\xQ@ L+\z_}qM+\{LN+\|c&gO+\}LP+\~OeQ+\lD R+\l T+\MU+\NֹV+\Eޢ+\CL+\CLY+\XZ+\G'+\CL+\CL]+\uD ^+\N+\CL+\CLa+\Oz+\CL+\CLd+\C=+\CLf+\^+\CLh+\G&"i+\WM+\CLk+\[2Z l+\P\ m+\N n+\e o+\ip+\m( q+\gG r+\h s+\Lt+\Ku+\EsZ+\CL+\CLx+\@gvy+\Rdz+\Hd+\CL+\CL}+\H~+\K+\K&+\B+\CL~+\CL+\!D+\#Z +\$ixB +\'M+\(H4+\)HB+\,ixB +\-ixB +\.Hd+\/i +\1{+\4EV+\5P+\7Hn+\8L+\<}?+\>JP+\AEV+\BLv+\CM/+\EJP+\FHI+\Io^ +\JY?+\KBr+\MCL+\PE+\QpT+\SCL+\}CL+\~CL+\CL+\CL+\CL+\CL+\CL+\}+\v+\C{3+\GR+\Kf+\GR+\CL+\CL+\CL+\CL+\CL+\CL+\CL+\^+\CL+\CL+\CL+\N.+\CL+\C+\CL+\CL+\wS +\CL+\CL+\CL+\CL$+\L%+\I&+\MN)+\CL*+\LC,+\R+\CL.+\N+\CL+\CL+\CL+\CL3+\nu4+\A36+\H&g7+\E38+\sFg9+\D:+\J&f;+\K<+\F+\CL>+\U?+\J+@+\FA+\F+\CLD+\l E+\GF+\EeG+\Y+\ lg+\ qٚ+\jc3+\T +\a(+\C+\cн +\_ +\Iw+\Lf!+\CL +\DCL+\ECL+\Gi +\JCL+\M}h +\Nqˈ +\OD|+\P}h +\RX+\Uyz +\XCL+\ZCL+\[CL+\\CL+\]CL+\`E1+\aI+\c@+\dqE+\g]O+\h~ +\ik +\jlH +\nof+\qH+\rZ+\u~OI +\v},l +\yA) +\}Vg+\ +\H +\} +\WS +\cn +\`i+\I+\^+\CL+\CL+\CL+\CL+\CL+\CL+\CL+\CL+\CL+\L:+\H*+\H+\G+\J=q+\J=q}e+\R^-a}f+\]o ^ ^ M+\x_ N+\C8VO+\FP+\FDQ+\aR+\N";S+\n T+\K$ZV+\qZ X+\EY+\Jrx[+\c\+\!\^+\$e_+\%v `+\&A33a+\)[fb+\*[c+\+S+\-CL+\.CL+\0CLg+\2q" +\4CL+\5CL+\6CL+\7CLm+\;Fn+\>go+\?iQk +\ACL+\BCL+\CCL+\DCL+\ECL+\GCL/DCLw/DJHx/DUy/D f /D OP{/D u |/D Z-}/D n~/D^/DC/DFs/DoXB ~/DCL/DeK |/DCL/D!H#/D"G/D$Ij/D'Iu/D)CLt/D*CL/D-egm /D.mF /D/i 5/D3L#6/D4L!/D6CL/D7CL:/D9G;/D:^UQJY/D?L/DAJP/DBI~/DEo^ /DFY/DGB</DICL/DLE/DMq/DPCL/DQCL/DRCL/DSCL/DTCL/DUCL/DWCL/DXCL/D[vg/D\t6g/D]Dk3/D^}/D_GR/D`F/DbCL/DcCL/DeCL/DfCL/DgCL/DCL/DCL/D^/DCL/DCL/DCL/DN. /DCL/DCz/DCL/DCL/Dy1 /DCL/DCL/DCL/DCL$/DL!%/DJ!&/DQz/DCL*/DL^,/DR>/DCL./DJ/DCL/DCL/DCL/DCL3/Dn4/DA36/DQ7/DR8/DF39/DD':/DIc3;/DK9/DVO?/DJ<@/DFEA/DBx3/DCLD/Dla7 E/DGF/DEG/DZK@/Dk/Do`/D hٙ/D U(/D[/DC/Da< /D^ /DI/DK?m!/DCL /DCL/DCL/Db /DCL/D ~ /D!qHF /D"D/D#7 /D%v5/D)y@ /D,CL/D-CL/D.CL/D/CL/DXCL/D[Em/D\I/D^@%U/D_qo/Db]/DcC/DdoXB /Del /Dhp3/DlHC/Dm[f/Dp} /Dq| /DtAB /DwX/Dx@/DyS/D|} /D~PW /Dc /D`y/DIf/D^/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DLز/DH& /DHZ/DG>/DJB/DJB}e/D%TN}f/D-nW$ ^ ^ M/Dy( N/DC7O/DGP/DFBQ/DaR/DNWS/Dn T/DK{V/Dqr X/DE Y/DJh[/D\/DY^/D#c-_/D$w9 `/D%@Ta/D'Y!Hb/D(Ync/D)Tf/D+CL/D-CL/D.CLg/D0qy /D2CL/D3CL/D4CL/D5CLm/D9Fyn/D<o/D=i_ /D?CL/D@CL/DACL/DBCL/DCCL/DECL/DFCLw/DIE.x/DJP4y/DK]>/DLOP{/DMu |/DNZI}/DPm~/DR^/DUCY/DVFJ/DYouq ~/D[CL/Dd |/DCL/DHH/DG]/DI/DPxu/DCLt/DCL/Dd /Dm! /Dj > 5/DM6/DL4/DCL/DCL:/DH*;/DLP/D7V2??/D8JP @/D9FA/D:D%/DoI E/D@G!F/DAF G/DB[G/DHi/DIm/DJg/DMUb/DO_0/DxCu/Dya[o /Dz^ /D{I/D~LR!/DCL /DCL/DCL/Dc /DCL/D~l^ /Dt /DD/Dr /D[+ /Dy /DCL/DCL/DCL/DCL/DCL/DE/DI/D@@/Dr!/D]/D /Dl8 /DmQ /Dq@/DHʼ/D^/D}h /D|= /D@H /DY$/DvR /DGo/D}: /DU /Dd; /D_f/DI3/D^/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DL/DH/DH`/DG /DJB/DJB}e/Dig}f/Dm| ^ ^ M/DEzQ N/DGC9 O/DHE1P/DIFwQ/DLa$R/DMNIsS/DNv T/DOKV/DQr[G X/DSE\Y/DTJ[/DUVE\/DV\^/DYeތ_/DZx9 `/D\@a/D^Y>b/D_^)c/D`Vn/DbCL/DcCL/DdCLg/Dfq /DiCL/DjCL/DkCL/DlCLm/DoF\n/Dr~Io/DsiR /DuCL/DvCL/DxCL/DyCL/DzCL/D{CL/DCLw/DEx/DSGy/D[/DOP{/DvP7 |/DZrj}/Dn{~/D^/DC2/DF+/Do7 ~/DCL/Dah |/DCL/DHR /DG /DI/DHdu/DCLt/DCL/DeV /Dm /Dj;e 5/DM46/DLE/DCL/DCL:/DHs<;/DKKCL$/DALp%/DBIYb&/DEJ/DGCL*/DJLy,/DKG/DMCL./DOvW /DRCL/DSCL/DTCL/DUCL3/DWn<4/DYA36/D\Z`7/D]V8/D^I9/DaD:/DcL;/DdJ|/DiT?/DjJG@/DkFA/Dn|oQ /DCLD/Dn`* E/DH <F/DF!G/DY/Dig/DnNg/Dh~g/DVG/D`6/DD1/D_d /D] /DKF/DL!/DCL /DCL/DCL/Di/3 /DCL/DFv /Dx /DDu/D@/Da&/Dy /DCL/DCL/DCL/DCL/DCL/DEH/DIľ/D@x/Dr0/D]""/D@;/Dl /D m. /D pvf/D H/D ]&0/D ~ /D } /D @ /D X/D Et/D Hw/D }f /D W /D d"" /D _3/D I3/D ^/D CL/D !CL/D "CL/D #CL/D $CL/D &CL/D 'CL/D (CL/D )CL/D ,L/D -H@/D /Hs/D 0Ge/D 3JB/D 6JB}e/DK}f/Dm ^ ^ M/D yzQ N/D {C;0O/D |F?P/D }F7Q/D aq\R/D NeS/D @bT/D L1 V/D sM X/D EY/D J[/D j\/D W^/D e_/D y8 `/D B@a/D YW b/D X c/D O/D CL/D CL/D CLg/D qh /D CL/D CL/D CL/D CLm/D G rn/D  o/D j /D CL/D CL/D CL/D CL/D CL/D CL/D CLw/D GW x/D RaHy/D ]/D OP{/D wO |/D Y>}/D l+~/D ^/D Ca/D F/D o ~/D CL/D fY |/D CL/D H_/D Gn/D I/D OLu/D CLt/D CL/D (e) /D )n7L /D +j" 5/D -MT6/D .LY /D 0CL/D 1CL:/D 3G;/D 4KjqEoE/D @j#F/D AypG/D Be(H/D CLʹ L/D DQcM/D EJnN/D F^O/D GJ@P/D HJ@*Q/D Km R/D Lnn T/D NNOU/D OO$}V/D PFn/D RCL/D SCLY/D UA"Z/D VD/D YCL/D ZCL]/D \vW ^/D ^N/D `CL/D aCLa/D cOL/D CL/D CLd/D DQN/D CLf/D ^/D CLh/D Gi/D T/D CLk/D Y l/D Pff m/D N n/D e&fo/D iCp/D j q/D h r/D kR s/D M\t/D Kau/D Dk/D CL/D CLx/D @y/D Kz/D IZ/D CL/D CL}/D IL~/D L\/D K/D B\/D CL~/D CL/D E*/D Z /D ixB /D N!/D I"d/D I"d/D ixB /D ixB /D H/D i /D {/D @ /D PW/D I./D L/D } 8/D JP/D EV/D Rm/D M /D L/D I~/D o^ /D Ya/D Eʘ/D CL/D EN/D p/D CL/D CL/D CL/D CL/D !CL/D "CL/D #CL/D $CL/D 'C8/D (c4/D )Hf/D *K5/D +O#/D UL/D WCL/D XCL/D YCL/D ZCL/D [CL/D \CL/D ]CL/D ^^/D _CL/D aCL/D bCL/D cN+)/D eCL/D hCJ/D jCL/D kCL/D ly /D oCL/D pCL/D qCL/D rCL$/D uL%/D vIQ&/D yQ/D {CL*/D ~KR,/D V= /D CL./D TJg/D CL/D CL/D CL/D CL3/D n4/D A36/D U7/D U8/D H09/D Dk:/D I<;/D J/D T/?/D JC]@/D FVA/D o /D CLD/D m<8 E/D HF/D F7DG/D [m*/D k/D p.g/D j3/D WN/D \^/D DC/D `d /D ^ /D H /D J!/D CL /D CL/D CL/D _+ /D CL/D 7 /D @;/D CB/D @/D R/ /D z /D CL/D CL/D "CL/D #CL/D $CL/D 'E/D (IM/D )@/D *s,/D -]/D /CSc/D 0o; /D 1mK /D 4ps3/D 7I/D 8^7/D ; /D I~/DAo^ /DBY/DCEʘ/DECL/DHE/DJo8/DtCL/DuCL/DvCL/DwCL/DxCL/DyCL/DzCL/D{CL/D~B`/Dvf/DH/DN/DMR/DP/DCL/DCL/DCL/DCL/DCL/DCL/DCL/D^/DCL/DCL/DCL/DN5D/DCL/DC$/DCL/DCL/Dx /DCL/DCL/DCL/DCL$/DKR%/DI\&/DP%/DCL*/DL,/DL(/DCL./DB/DCL/DCL/DCL/DCL3/Dn͹4/DA36/DXf7/D_g8/DK9/DD<:/DL;/DM/DS=?/DJ6@/DF>A/Dq /DCLD/Dnn E/DHF/DF:G/DYl/Df/Dj/De/D W/D _e/D D//D` /D^a /DGg/DH!/D=CL /D>CL/D?CL/DAgx /DECL/DG@/DH},l /DID̘/DJ@/DKW~= /DLzF^ /DPCL/DQCL/DRCL/DSCL/DTCL/DWE /DXIR/DZ@/D[s/D^]""/D_@A/D`l8 /Damh /Ddo/DgI */Dib\/Dl} /Dm}f /Dp@\ /DsXb/Dv}: /DwG0/D}R /DY /DeL /D`/DIi/D^/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DL|/DH(/DHM/DG/DJG/DJG}e/DKdc}f/D Zm ^ ^ M/Dy N/DCCO/DEP/DFFQ/D aq\R/D NwS/D w T/DLV/Dt" X/DE'Y/DJ[/D\/DWI^/Dc_/Dz `/DDa/D[xRb/DZLc/DNq/D!CL/D"CL/D#CLg/D%qa /D'CL/D(CL/D)CL/D+CLm/D.Hn/D1~o/D2k /D4CL/D5CL/D6CL/D7CL/D9CL/D:CL/D;CLw/D>Fx/D?Q=qy/Dhb/DiOP{/Djx |/DkYP}/Dmh!~/Do^/DrD5D/DsG%/Dvo۔ ~/DxCL/D{e |/D}CL/DH/DG/DI/DNH\u/DCLt/DCL/De6F /Dm /DjZ 5/DM|6/DLlA/DCL/DCL:/DG;/DI @=y/D?T6@z/D@Ha/DCCL/DDCL}/DFJ<~/DHLz/DIL/DJD4K/DMCL~/DNCL/DPEV[/DS[~ /DTixB /DVM*/DWFN=/DYFN=/D\j' /D]ixB /D^F/D_i /Da}/Db@ /DePe/DgHЌ/DiL/D} 8/DJP/DEV/DR/DM//DM/DHI/Do^ /DY/DEʘ/DCL/DE/DpT/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/Dvg/Dt6g/DDk3/DV4/DZ/DVR/DCL/DCL/DCL/DCL/DCL/DCL/DCL/D^/DCL/DCL/DCL/DN5D/DCL/DC=/DCL/DCL/Dv /DCL/DCL/DCL/DCL$/DK.%/DJBU&/DKW/D CL*/DL,/DC/DCL./Dx /DCL/DCL/DCL/DCL3/Do4/DA36/DS37/D \g8/D!J39/D$D:/D&Jg;/D'L0/D-U6v?/D.J,@/D/FZA/D1x /D\CLD/D^p| E/D`GF/DaF4G/Db[v~/Dejg/Dfnٚ/Dhhg/DkW/Dl`/DmD/Dn`EA /Do^5 /DpG/DqH!/DtCL /DvCL/DwCL/DydE /D|CL/D~K /Dx+ /DD|/D@u/D@j/Dz /DCL/DCL/DCL/DCL/DCL/DE /DIR/D@%/Dt/D]""/D@gv/Dl /Dm /Dr/DI/DZR/D~ /D|} /DAxR /DX</DDse/DH/D} /DR3 /DbU /D_3/DHy/D^/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DCL/DL}/DH@/DH{F/DG/DJG/DJG}e/D~'}f/Dmɩ ^ ^ M/DCBQO/D@FP/DAF$Q/DDaiR/DEN{^S/DFo T/DGL V/DHt X/DKEY/DLJi[/DM;g\/DNW"^/DQc_/DRz `/DTCsra/DU]b/DW_nc/DXR\/DZCL/D[CL/D\CLg/D^qA /DCL/DCL/DCL/DCLm/DH,bn/D~4o/DlD /DCL/DCL/DCL/DCL/DCL/DCL/DCLw/DDHx/DRy/D_/DOP{/Dy |/DW(}/Dj~/D^/DDO/DF/Dp3 ~/DCL/Dc |/DCL/DH/DG/DI/DG0Gu/DCLt/DCL/Dco /Dm /Dji 5/DM/6/DL|/DCL/DCL:/DG} ;/DI_e,/DCK^/DECL./DGy#; /DJCL/DKCL/DLCL/DMCL3/DPo4/DQA36/D|Ul7/D}T8/D~K9/DE=:/DO6g;/DM`/DT?/DJ/L@/DFA/D|ƚ /DCLD/DpY E/DGF/DFDG/DYq/Dr/Dqy/Dk/DXY/D\G/DDۨ/Db  /D^ /DGg/DI>!/DCL /DCL/DCL/Dcн /DCL/D@-S/DrN /DDX/D@/Dy/Dz? /DCL/DCL/DCL/DCL/DCL/DE/DI/D@"/Ds}/D]""/DD/Dp /Dm /Do/DI /D\/DA**/DFi/D@) /D Xk/D r /DHm/D~ /DT /De /D`ff/DI/D^/DCL/DCL/DCL/DDCL/DECL/DFCL/DGCL/DHCL/DICL/DML/DNH/DOHH}/DPGm/DSJG/DVJG}e/DT}f/Dk@ ^ ^ M/Dqy. N/DsCFO/DtGhP/DuFQ/DxabTR/DzN^S/D{oI T/D|M4V/D}v% X/DEY/DJ[/D\/DY[^/DcS_/D{U `/DBa/DYٚb/D\Gc/DPH/DCL/DCL/DCLg/Dq" /DCL/DCL/DCL/DCLm/DGn/D~go/Dm /DCL/DCL/DCL/DCL/DCL/DCL/DCLw/DDx/DSuy/D^/DOP{/Dz΂ |/DX!}/DkG~/D^/DD-S/DF`/D o ~/DCL/DeI |/DCL/DH/DFN/DI}/DMBu/DCLt/DCL/D!baH /D"n /D#j 5/D%M6/D&L/D(CL/D)CL:/D+G';/D,HVp+O/D?J=EP/D@J|1Q/DCo R/DDo+ T/DFNU/DGOV3,Ge3, CL3, CLY3, BZ3,DV3,CL3,CL]3,w% ^3,O3,CL3,CLa3,O3,CL3,CLd3, D3,#CLf3,$^3,%CLh3,'Hi3,(Q3,+CLk3,.Z7 l3,/PH m3,0O n3,3do3,4jmp3,6l q3,7h r3,8i s3,9M9Tt3,:K{u3,;D73,eCL3,fCLx3,h@=y3,iR*Wz3,jG3,mCL3,nCL}3,pI=~3,rL3,sLR3,tC 3,vCL~3,wCL3,yEZ3,|ZO 3,}ixB 3,~J_C3,E3,F!O3,ixB 3,ixB 3,F3,i 3,{3,@3,Ps3,I3,L3,~1]3,K3,EV3,R3,M3,Ny3,I~3,o^ 3,YN3,Eʘ3,CL3,E'3,pT3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,~3,tf3,C33,L 3,Pff3,N3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,^3,CL3,CL3,CL3,N&3,CL3,C3,CL3,CL3,v 3,CL3,CL3,CL3,CL$3,,L4%3,-I&&3,/Qm3,2CL*3,5L,3,6X3,8CL.3,:U3,CL3,?CL33,Bo)f43,DA363,GR73,HP383,II393,KEP:3,ML;3,NK3<3,OJ3,QCL>3,TU?3,UJ5@3,VFA3,Y} 3,[CLD3,]nB E3,_H F3,`FXG3,a[H3,em3,fr3,l>g3,Y-:3,_3,ES3,d 3,`d 3,F3,IS!3,CL 3,CL3,CL3,j 3,CL3,@Je3,q 3,E@3,@=3,vQ+3,zu 3,CL3,CL3,CL3,CL3,CL3,E3,I3,A3,s3,]""3,@=3,m 3,m 3,o3,I83,\F3,~ 3,|} 3,@h 3,X3,7 3,G:3,~@ 3,W 3,bU 3, _l3, G3, ^3, CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,LZ 3,H3,H6[3,G3, JG3,#JG}e3,Rӥ}f/D!je ^ ^ M3,fyE N3,hCO'O3,iG&P3,jFQ3,maSLR3,nNS3,ooXB T3,pMpV3,ruL X3,tE@Y3,uK[3,vA\3,wZ_J^3,zcu_3,{{ `3,}Aa3,]T{b3,]Lc3,Q 3,CL3,CL3,CLg3,qp 3,CL3,CL3,CL3,CLm3,G1cn3,o3,n3,OP{3,zk |3,XA}3,k~3,^3,C3,FPI3,o ~3,CL3,c<8 |3,CL3,H3,EF3,I3,Fu3,CLt3,CL3,aY 3,ml 3,i 53,MO63,L+3,CL3,CL:3,H;3,H <3, T?3,!DS3,$CL3,%CLB3,'z7 C3,(RBD3,)EYE3,+fgF3,,{>G3,-gBH3,.MW L3,/[M3,0VW N3,1j#O3,2IP3,3J2kQ3,6of R3,7p$ T3,9NUU3,:OV3,;G3,=CL3,>CLY3,@B Z3,AD̘3,DCL3,ECL]3,GwB ^3,IO z3,KCL3,LCLa3,OO/3,PCL3,QCLd3,SDQN3,VCLf3,W^3,XCLh3,ZHi3,Q53,CLk3,ZCo l3,Q. m3,P( n3,do3,jp3,p\ q3,n\) r3,n s3,MC]t3,Ku3,D3,CL3,CLx3,Ay3,Pz3,HVF3,CL3,CL}3,I~3,La3,Lr3,B3,CL~3,CL3,E3,\ 3,ixB 3,M3,FN=3,FN=3,j' 3,ixB 3,E3,i 3,} 3,@3,PC3,IW3,L3,}v3,K-3,EV3,Os3,L3,Ny3,H3,o^ 3,Yڠ3,Eʘ3,CL3,EG3,pT3,CL3, CL3, CL3, CL3, CL3, CL3,CL3,CL3,vg3,t6g3,C{33,MR3,VR3,OxR3,CL3,CL3,CL3,CL3,CL3, CL3,!CL3,"^3,#CL3,LCL3,MCL3,ONBC3,QCL3,SC13,UCL3,VCL3,Xy@ 3,[CL3,\CL3,]CL3,^CL$3,aL0#%3,bJL&3,dN@3,gCL*3,jL,3,kFn3,mCL.3,o|= 3,qCL3,rCL3,sCL3,tCL33,wo143,yA363,|Ni73,}Nf83,~Gp93,E:3,Js3;3,L9<3,H&g3,CL>3,V`F?3,J<@3,FA3,@X33,CLD3,pmy E3,H=F3,FeG3,Zj3,o3,q3,j3,Yf3,_N3,E,*3,bTF 3,_ 3,G3,I !3,CL 3,CL3,CL3,b 3,CL3,@}B3,vܹ 3,E#3,A$Z3,Bt3,{ 3,CL3,CL3,CL3,CL3,CL3,E3,I3,@t3,s3,]""3,AH3,mJ 3,m 3, p33,#IE3,$YpH3,'~ 3,(| 3,+A) 3,.X$k3,0BQ3,1H^3,4~l^ 3,5O3 3,8cn 3,9_3,:I3,;^3,=CL3,>CL3,?CL3,@CL3,ACL3,BCL3,DCL3,ECL3,FCL3,ILb<3,JH3,KH+z3,LG-3,xJG3,{JG}e3,~6 }f3,iM ^ ^ M3,xц N3,CSnO3,GP3,G*Q3,aHR3,NS3,o T3,M{V3,v^! X3,EY3,J[3,-A\3,Y;^3,cA_3,|8 `3,Ava3,]&fb3,]c3,Q=q3,CL3,CL3,CLg3,q 3,CL3,CL3,CL3,CLm3,Fn3,go3,n{c 3,CL3,CL3,CL3,CL3,CL3,CL3,CLw3,Kx3,T\)y3,`=q3,OP{3,{DD |3,Wf}3,if~3,^3,C3,Fdz3, o ~3, CL3, ` |3,CL3,Hd63,F43,IE3,@M9Mu3,BCLt3,CCL3,EcA 3,GnP 3,Hj 53,JMM63,KL3,MCL3,NCL:3,PHVF;3,QGV<3,RU?3,SE9[3,VCL3,WCLB3,YzT C3,ZQeD3,[EE3,]aBF3,^qfgG3,_a\H3,`M~ L3,ab8RM3,b] N3,cpO3,dIP3,eIQQ3,ho۔ R3,ip< T3,kNU3,lOV3,nG3,pCL3,qCLY3,sCUZ3,tDY3,wCL3,xCL]3,zwS ^3,N3,CL3,CLa3,Nh3,CL3,CLd3,D3,CLf3,^3,CLh3,H*i3,PP3,CLk3,Z l3,MQ m3,L\ n3,d o3,jp3,n q3,k r3,l s3,MNMt3,K#u3,A3,CL3,CLx3,@Ry3,Oz3,Hzx3,CL3,CL}3,I :~3,L%3,LoC3,Cr3,CL~3,CL3, EV[3, \Ǯ 3, ixB 3,N73,Go3,G3,kQ 3,ixB 3,H 3,i 3,{3,B33,P*3, Ir3,!L3,$~1]3,&K33,1EV3,2Qz3,3M#3,5Ny3,6I~3,9o^ 3,:Y3,;Eʘ3,=CL3,oE3,pp:3,rCL3,sCL3,tCL3,uCL3,vCL3,wCL3,yCL3,zCL3,}vf3,~)3,I33,OxR3,VR3,VR3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,^3,CL3,CL3,CL3,NA3,CL3,C3,CL3,CL3,z[ 3,CL3,CL3,CL3,CL$3,K%3,Jo&3,I3,CL*3,L,3,E>n3,CL.3,x:D 3,CL3,CL3,CL3,CL33,ot43,A363,T73,S#383,L 93,E":3,J3;3,LS3<3,H@3,CL>3,Vũ?3,JT@3,GiA3,U 3,CLD3,pPL E3,H"F3,Fz^G3,[3,p83,6u[33,7nk33,:Z3,;\~3,_ [ 3,@IiN3,JL&!3,LCL 3,MCL3,NCL3,PhS 3,TCL3,V@3,WA3,XDJ3,Y@3,[To3,^{= 3,bCL3,cCL3,dCL3,eCL3,fCL3,iE3,jI63,l@*3,msF3,]3,A 3,n 3,n& 3,o3,ISA3,[??3, O 3,| 3,AG 3,W3,u 3,Hؒ3,~s 3,W 3,]" 3,\f3,F3,^3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,L{3,H93,HB$3,G 3,JB3,JB}e3,[F)}f3,Ek( ^ ^ M3, wC N3, CWO3, FNqP3, GzQ3, aKR3, NS3, !n T3, "NSV3, #w3 X3, %EY3, &K[3, '\3, )U^3, ,d[_3, -~r `3, .A33a3, 0[b3, 1[)c3, 2Q53, 4CL3, 6CL3, 7CLg3, aq 3, cCL3, eCL3, fCL3, gCLm3, jFn3, n9o3, oo) 3, qCL3, rCL3, sCL3, tCL3, uCL3, vCL3, xCLw3, {L)x3, |Sy3, }dQ3, ~OP{3, }k |3, W\?}3, gN~3, ^3, Cx3, FG3, n ~3, CL3, ba7 |3, CL3, HH3, F~3, I-3, H=u3, CLt3, CL3, c 3, o| 3, khs 53, M63, L3, CL3, CL:3, HU;3, F<3, Q8?3, E@3, CL3, CLB3, zcz C3, OOD3, EE3, dpF3, oG3, \uH3, Mw L3, PRM3, IxRN3, ]qO3, IP3, JQ3, pY R3, ph T3, N˿U3, OaV3, Go3, CL3, CLY3, C=Z3, E3, CL3, CL]3, w ^3, N)3, (CL3, )CLa3, ,O 3, .CL3, /CLd3, 1D3, 4CLf3, 5^3, 6CLh3, 8H*i3, 9O3, 3, pWL?3, qJWl@3, rG A3, urN 3, xCLD3, zo E3, {H8F3, |FG3, }[3, lf3, rC43, j3, [ 3, _p3, D}3, bTF 3, _ 3, J|13, Lo!3, CL 3, CL3, CL3, e[ 3, CL3, @&3, BE3, D3, @R3, P 3, {in 3, CL3, CL3, CL3, CL3, CL3, E3, I3, @73, s<53, ]""3, AL3, me 3, nD 3, m33, IT*3, ^3, r 3, } 3, A\ 3, Wn3, y 3, GJ3, ~ 3, RJ 3, bD 3, _33, "H3, #^3, $CL3, %CL3, &CL3, 'CL3, )CL3, *CL3, +CL3, ,CL3, -CL3, 0L;3, 2HH}3, 3HgR3, 4G}3, 7JG3, 8JG}e3, _q}f3, kY ^ ^ M3,wJ N3,CcO3,E$^P3,GQ3,auR3,N'S3,n T3,OV3,xѦ X3,F Y3,K9 [3,\3,VS^3, f _3, ~ `3, @a3,Zb3,Yc3,Pn3,CL3,CL3,CLg3,r 3,CL3,CL3,CL3,CLm3,!FGn3,$4o3,%qn 3,'CL3,(CL3,)CL3,+CL3,,CL3,-CL3,.CLw3,1Lx3,2Q=qy3,3eH3,6OP{3,7~"" |3,8VQ}3,9j'~3,;^3,?CJ3,hEE3,kq+ ~3,mCL3,oc |3,qCL3,uH 3,vE3,wI%H3,zMշu3,CLt3,CL3,b1 3,pG 3,k 53,N S63,L3,CL3,CL:3,H;3,E.<3,Yt?3,EsZ3,CL3,CLB3,z$ C3,L0D3,E3E3,aF3,r=qG3,^H3,M[ L3,XM3,SN3,h8RO3,IӨP3,JQ3,p R3,qHF T3,N0U3,O[V3,G3,CL3,CLY3,CZ3,Dg3,CL3,CL]3,x ^3,NQl3,CL3,CLa3,N3,CL3,CLd3,EG3,CLf3,^3,CLh3,HO i3,Mܪ3,CLk3,Z l3,M m3,M n3,0do3,1jgp3,3n q3,4h r3,5i s3,6Mrt3,7Kru3,8Cz3,:CL3,;CLx3,=@y3,>Pz3,?G-a3,BCL3,CCL}3,EH ~3,GL3,HLs3,IC3,KCL~3,LCL3,NE]3,Q\5 3,RixB 3,SI>3,TBF3,UBc3,Vju 3,WixB 3,YBc3,Zi 3,\|۱3,]@ 3,`Ps3,bI3,cL3,fq3,hK83,kEV3,S(3,M3,N3,I~3,` 3,S3,'WO?3,(J\@3,)G'A3,,rs 3,.CLD3,0pӖ E3,2HHF3,3F;G3,\\ 3,_k 33,`o3,ah@3,dZ3,e\3,fE3,he5 3,ic 3,jD3,kF(!3,nCL 3,oCL3,pCL3,rjp 3,vCL3,x@3,y~ 3,zD3,{A3,|He 3,}{ 3,CL3,CL3,CL3,CL3,CL3,ES3,I٢3,A3,ss3,]""3,Al3,m 3,n~k 3,rC33,I%3,[n3,}h 3,xH 3,A 3,W{3,{= 3,I3,~ 3,X^ 3,W 3,_`3,Ep3,^3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,CL3,Lc3,HC3,H/3,Gt3,JL3,JL}e3,|^}f3,iXo ^ ^ M3,6w N3,8CjO3,9D P3,:GQ3,=a^R3,?NIS3,@@JeT3,AOV3,Bxp X3,DF)Y3,EKM{[3,Fb\3,HW)?^3,Kg] _3,L~U `3,NAa3,O[b3,QZfc3,RR3,TCL3,UCL3,VCLg3,Xr 3,ZCL3,\CL3,]CL3,^CLm3,Fqn3,~o3,q׷ 3,CL3,CL3,CL3,CL3,CL3,CL3,CLw3,D{x3,RQy3,^Q3,OP{3,~aH |3,W8}3,j~3,^3,CL3,F3,oI ~3,CL3,bo |3,CL3,H13,E\(3,I63,J>u3,CLt3,CL3,c = 3,p/ 3,l?} 53,N<63,L3,CL3,CL:3,Hzx;3,E<3,X?3,ET3,CL3,CLB3,z? C3,UD3,EE3,aF3,q4G3,]=qH3,M% L3,UqM3,P!HN3,dgO3,I P3, JaQ3, p- R3, q3 T3,NQU3,OV3,H3,CL3,CLY3,CZ3,E3,CL3, CL]3,!x ^3,#Oͻ3,%CL3,&CLa3,QPp3,SCL3,TCLd3,VE3,YCLf3,Z^3,[CLh3,]Hdi3,^M3,aCLk3,d[EE l3,eM m3,fMp n3,iefo3,jkp3,lq q3,mn r3,nl3 s3,oMt3,pK2u3,q@3,sCL3,tCLx3,v@Ry3,wSz3,xE3,{CL3,|CL}3,~H~3,Li3,Lz53,C3,CL~3,CL3,Ed3,Z 3,ixB 3,M3,E3,FN=3,ixB 3,ixB 3,EZ3,i 3,{3,BV3,Pr3,I3,L3,"3,K&X3,EV3,Lv3,M3,NG3,I~3,d] 3,SCL3,Ev4 3,GCL3,HCL3,OCL3,PCL$3,RKډ%3,SJr&3,~P3,CL*3,L,3,D3,CL.3,w_ 3,CL3,CL3,CL3,CL33,o43,A363,Gp73,BL83,tS393,CI:3,AFg;3,Ff<3,C3,CL>3,V?3,Jd1@3,G5eA3,qt 3,CLD3,of E3,HF/F3,FG3,Z\3,nt3,s43,mT3,\3,`L3,Es3,f 4 3,b(\ 3,Fi3,IZ!3,CL 3,CL3,CL3,cн 3,CL3,@X3,uD 3,D3,@3,A3,{ 3,CL3,CL3,CL3,CL3,CL3,F3, I٢3, @?3, sK3,]""3,A3,mJ 3,n8 3,ps33,H$3,W3,D~l^ 3,Es 3,HAG 3,KWPi3,LA3,MH/3,P~ 3,QO]6 3,Ub3 3,V`&f3,WIvf3,X^3,YCL3,ZCL3,[CL3,]CL3,^CL3,_CL3,`CL3,aCL3,bCL3,fLkX3,gHK63,hH3,iG3,lJG3,oJG}e3,X`t}f3,jE ^ ^ M3,wJ N3,CzO3,EMP3,H 'Q3,afR3,N1S3,A$ZT3,OlV3,y X3,F9 Y3,KTL[3,­>\3,Vٚ^3,hS_3,9 `3,C_a3,]b3,]zc3,T3,CL3,CL3,CLg3,r+ 3,CL3,CL3,CL3,CLm3,G5n3,Io3,s^ 3,CL3, CL3, CL3,CL3,CL3,CL3,CLw3,Fx3,S8Ry3,_ff3,OP{3,4 |3,Uf}3,f~3,^3,!C#3,"FW3,%uD ~3,'CL3,)a |3,+CL3,/HI3,0E4H3,1I3,4O}Hu3,6CLt3,7CL3,:` 3,;pF 3,7Uʫ?7Jf@7G8 A7q 7CLD7oK E7HF/F7FVG7\7o7l7p7j7[ݗ7_o7E7c 7`׬ 7HU7Jn!7CL 7CL7CL7f 7CL7@7qJ 7D7A+7U 7{ 7CL7CL7CL7CL7CL7Fw7I7@7rޖ7]""7A7l9 7nl 7 p7 H-7_%7^ 7z? 7A\ 7V`7I%H7I7 7UT 7"a 7#` 7%If7&^7'CL7(CL7)CL7+CL7,CL7-CL7.CL7XCL7YCL7\Lr7]HD7^H7`G7cJG7dJG}e7eGa}f3,:g ^ ^ M7vz N7CWO7EdP7G]Q7aDFR7NS7@T7OV7y X7F9 Y7Ksq[7>\7Xx^7fp3_7r `7Da7[b7\c7Qc7CL7CL7CLg7r 7CL7CL7CL7CLm7Htn74o7sfg 7CL7CL7CL7CL7CL7CL7CLw7HRx7U\y7iL7OP{7X |7V}7g~7^7D7F7nn ~7"CL7$d |7&CL7*H17+E7,I70H@u72CLt73CL75cM 76o 78l?} 57:N>E67;L7=CL7>CL:7@Hؒ;7AQpN<7BV3?7DB7GCL7HCLB7J{in C7KUND7LEWE7NeF7OvG7PcH7QMF L7SNM7TFN7U]=qO7VJzP7XJQ7Zqt R7[r# T7O9U7PV7H1Z7CL7CLY7CμZ7E]7CL7CL]7z)B ^7P)7CL7CLa7P7CL7CLd7E7CLf7^7CLh7Hs<i7WQ%7CLk7[x l7O{ m7NǮ n7cfo7k_p7q\ q7k) r7k= s7Mt7Khu7~OI 7CL7CLx7Ay7Q z7FE7CL7CL}7Hd~7Lr7L7DFm7CL~7CL7E7Z 7ixB 7M7G7Hv7 ixB 7 ixB 7 H[7 i 7{7A7P527I.7L7=7L7EV7 Lv7!M7#PB7LI~7Neb3 7QS7T!?7J@7GJMA7o 7CLD7m E7HD^F7FG7[17tk37x7mY7\!7\<7 Es7!c 7"a>' 7#I7$KF!7'CL 7(CL7*CL7,h 7/CL71@72r# 73D74A76{79{ 7=CL7>CL7?CL7@CL7ACL7DFE7EI7F@7Hr?7K]""7LAZ7MmJ 7Nn9 7yo 7|H7}]W7~ 7|} 7AE 7X-7E_7J=E7)b 7UFD 7aj 7^ٚ7F7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7LZ7H@T7H7G7JL7JL}e76w`}f75j9X ^ ^ M7vC N7CO7E`P7GfQ7a<R7NS7o T7OV7z X7FHeY7K_[7\7X^7b"_7@1`7Ca7Zb7Yc7Q57 CL7 CL7 CLg7r; 7CL7CL7CL7CLm7@H(n7Cgo7Dtb4 7FCL7GCL7HCL7ICL7JCL7KCL7MCLw7PJGx7QU#y7Rb7SOP{7T@t|7UW}7Vfj~7Y^7\DL^7]F7`s ~7bCL7def |7fCL7jH7kB}H7lH"7oPeu7qCLt7rCL7u^f 7vpS 7wl| 57yNA67zLW7CL7CL:7HO ;7Q+<7SE?7D7CL7CLB7| C7THD7EE7k >F7rǯG7]LH7M L7Q M7JGN7mJ>O7J P7KQ7q^ R7r]\ T7OXU7PCV7Hd7CL7CLY7CZ7E7CL7CL]7{= ^7Px7CL7CLa7Pձ7CL7CLd7E7CLf7 ^7 CLh7 Hi7 VV7CLk7[i l7O\) m7O n7c3o7k'p7pH q7j= r7m s7Mt7Lu7 DK7"CL7#CLx7%AW3y7&PQz7'Gn7*CL7+CL}7-Hd~7/Lپ70L71C~373CL~74CL76E79[ 7:ixB 7HZ7Ai 7BixB 7lHs<7mi 7o{7pB37sPe7uIB7vL7y7{L7~EV7S(7M7PB7I~7d] 7S7:Q]?7;J@7qV 7ACLD7Cp< E7EHIF7FFG7G[7Iqf7Jwf7Lp7O\#7P_o7QF7Rdp 7S_v 7TJ7VM"!7XCL 7ZCL7[CL7]b(\ 7`CL7bAH7cq 7dFR7eA7gNߤ 7h| 7kCL7lCL7mCL7nCL7oCL7E7Iڊ7@R7s 7]%7A7m- 7om 7rP7H7\F~7} 7| 7Aq 7WA7w_ 7IL\7Fv 7P+ 7a 7^S37Df7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7M 7HG7H@7GȬ7JQ7 JQ}e7gb}f7ue ^ ^ M7 x@! N7 CyO7 EJP7 !H:Q7 $aDFR7 %NS7 'o T7 (PRV7 )zK X7 +FNY7 ,K[7 ->;\7 .W^7 1gc_7 3@1`7 5Ba7 6Wb7 7[{c7 `S >7 bCL7 cCL7 dCLg7 grZ 7 iCL7 jCL7 kCL7 lCLm7 oGn7 ro7 ss^ 7 uCL7 wCL7 xCL7 yCL7 zCL7 {CL7 |CLw7 Lpx7 Rpy7 efg7 OP{7 @|7 U}7 j~7 ^7 D37 F/7 of ~7 CL7 b |7 CL7 G7 B07 I7 Gu7 CLt7 CL7 _V 7 o 7 kT 57 NB67 L7 CL7 CL:7 H[;7 P<7 Yt?7 C7 CL7 CLB7 | C7 SD7 EE7 `=qF7 y34G7 ^\H7 M$ L7 `\M7 ZN7 ^4O7 KP7 KJDQ7 r R7 r T7 OU7 PyV7 H$7 CL7 CLY7 DZ7 E7 CL7 CL]7 (zu ^7 *P17 ,CL7 -CLa7 0P˙7 1CL7 2CLd7 4ET7 7CLf7 8^7 9CLh7 ;H/i7 7 ixB 7 I 7 i 7 |7 B37 P7 pOg?7 qJW@7 rGkA7 uq 7 xCLD7 zp E7 |HF/F7 }FG7 ~\7 t7 y7 r|7 ])7 ^7 F7 e[ 7 `S 7 JP7 N0!7 CL 7 CL7 CL7 jD 7 CL7 Aҩ7 pmy 7 D7 Aҩ7 UK 7 |5! 7 CL7 CL7 CL7 CL7 CL7 E/7 I7 @7 sjL7 ]%7 B1 7 m 7 o<8 7 p7 H7 _M7 {H 7 p| 7 A 7 V7 }~ 7 Ge7 U 7 Y 7 c{ 7 !_7 "J37 #^7 $CL7 %CL7 &CL7 (CL7 )CL7 *CL7 +CL7 ,CL7 -CL7 1M7 2HL7 3H:7 4Gɔ7 7JL7 :JL}e7 d}f7 ev ^ ^ M7 Uv N7 WCO7 E!P7 H=Q7 aKR7 NS7 o T7 PiV7 {6 X7 Ff/Y7 Kp[7 \7 X)^7 h9_7 @`7 B)xa7 Z.b7 [c7 R7 CL7 CL7 CLg7 r, 7 CL7 CL7 CL7 CLm7 G*#n7 o7 t$ 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Hfx7 Sy7 cz7 OP{7 @|7 Trj}7 d~7 ^7 DV7 FA7 o,| ~7 CL7 bo |7 CL7 G7 Ap7 I7 Ou7 CLt7 CL7 _ 7 p > 7 lE 57 N^7?CL7@CL7ACL7CN7ECL7GC7ICL7JCL7tw| 7wCL7xCL7yCL7zCL$7}K%7~J &7Ll7CL*7L=,7E7CL.7w 7CL7CL7CL7CL37pK;47A367L77Ef87{97Bm:7E3;7G<7F7CL>7N'?7J@7GbA7s T 7CLD7r@3 E7H@F7GsG7ZF:7lVf7qf7j47\7\\7FG7dE 7a>' 7I7LC!7CL 7CL7CL7c_ 7CL7AL7u' 7D7A7T 7|R8 7CL7CL7CL7CL7CL7F^7I7 @7 sP7 ]%7B}7mm 7oYk 7CL7?CL:7iG;7jO<7kYqh?7lD- 7oCL7pCLB7r} C7sP͊D7tE{E7vbGF7ww8RG7xZ H7yN L7zM@M7{F34N7|[J>O7}K/P7~KQ7sF R7t T7O$U7PMV7Iq7CL7CLY7D- Z7E7CL7CL]7|} ^7P7CL7CLa7P7CL7CLd7E7CLf7^7CLh7Hi7Te7CLk7[ l7Mff m7Mp n7dfo7k p7m q7eaH r7f\) s7Mst7L(u7},l 7CL7CLx7At@y7L&z7BE7CL7CL}7Ge~7Lh7M'7E'7CL~7CL7F57Z` 7ixB 7O7G'7H% 7ixB 7ixB 70H 71i 73|74A 77P7M}$?7J@7GyA7q 7CLD7o E7 H;DF7 GG7 \r7j7p87i7\7`G7F7c_ 7a< 7I 7K !7CL 7CL7!CL7#fTQ 7&CL7(A7)w 7*EsZ7+Bw7,W 7.|oQ 71CL72CL73CL7\CL7]CL7`F7aI7bA(7dsJ7g](7hA7il9 7jo7 7mr6f7pH7q^u7t},l 7v} 7yA@ 7|Y7}C7~JU#7' 7V 7dD 7`I7I37^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L7HN7H7G7JW 7JW }e7,g}f76g ^ ^ M7vC N7CnO7EP7H"Q7a<R7NS7oK T7PV7| X7FmgY7K![7\7Yn9^7av_7@`7Aa7$Vb7%X:c7&Pff7(CL7)CL7*CLg7,r 7/CL70CL71CL72CLm75Fn78o79tw1 7;CL7CL7?CL7@CL7ACL7BCLw7EHfx7FOpy7G]7IOP{7J@|7KWk}7Lf%~7N^7QC7RFT7Vo,| ~7XCL7Zc |7\CL7_G7@=7H"7O8u7CLt7CL7^ 7pZ 7l{ 57N4:67LJ7CL7CL:7H ;7N<7Y7/?7Cμ7CL7CLB7~# C7OBND7E E7c=qF7}G7XH7N& L7Y@M7TN7hٙO7KP7L#Q7s)~ R7s T7PrU7PV7I=)7CL7CLY7DQNZ7E7CL7CL]7{ ^7PI7CL7CLa7Pc7CL7CLd7E7CLf7^7CLh7Hi7T7CLk7 [ l7 N\) m7 N. n7d3o7kjp7t33 q7m=q r7k s7Mdt7L:'u7C7CL7CLx7Aҩy7Jz7D7!CL7"CL}7$H[~7&L$7'M7PDs7RCL~7TCL7VF7X[J 7YixB 7[L&7]H7^H7aixB 7bixB 7cG7di 7f|7gBV7jP_7lI=s7nL7qE7sL7vEV7wLv7xO^7zN/7{I~7|d] 7Q7Eʘ7CL7E7pT7CL7CL7CL7CL7CL7CL7CL7CL7vf7wg7C{37O)7MR7MR7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N7CL7Cɪ7CL7CL7z[ 7CL7CL7CL7CL$7LE%7I&7M7CL*7L3,7S[\7CL.7F/7CL7CL7CL7CL37 pR47"A367%E`77&H 87'B97)B[t:7+@;7,Ef<7-BFf7/CL>72NI{?73Jz@74GyA77of 79CLD7;n E7=H<-F7>G#G7?ZL7Ci[47Dm47Eg37H\7I]37JGh7Kd 7L`q. 7NGo7OJZ!7RCL 7SCL7|CL7~h 7CL7Bc7zcz 7E@7BE7Q 7| 7CL7CL7CL7CL7CL7F7I7AAh7tA7](7A{7m4 7oi 7pFf7H&7^7|5! 7s 7@^ 7WL7u} 7H 7: 7T 7a3 7^7E7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L 7HD7H7G7JW 7JW }e7b"7}f7e ^ ^ M7v}K N7CO7D P7HQ7Da)R7EO S7Fn T7GP V7Hz X7JFvnY7KKb[7L\7PV^7Sf_7T@1`7UA33a7WXhb7XXJ>c7YPG7[CL7\CL7^CLg7`r 7bCL7cCL7dCL7eCLm7hFn7k~o7mt#B 7oCL7pCL7qCL7rCL7sCL7tCL7uCLw7yIpx7zQ.y7{_W 7|OP{7}@|7~X}7i~7^7C7F17o ~7CL7b& |7CL7GC7Cf7H7Gru7CLt7CL7^ 7p 7l& 57N/67L-7CL7CL:7Ge;7NY<7YO)?7C>7CL7CLB7~z C7MWD7F E7\ >F7kuG7N\H7N5) L7LM7FYN7Z\)O7 KP7 L&Q7rk R7s)~ T7P$U7PV7I't7CL7CLY7DXZ7E7CL7CL]7!{ ^7#Pp7%CL7&CLa7)Pw7+CL7,CLd7.E70CLf72^73CLh75HUi76SC<78CLk7;[ l7Lp n7@d33o7Akp7CpG q7Di r7FjǮ s7GMNt:L<u:~Ü :CL: CLx: A:y: Ryz: G:CL:CL}:H]~:Mp:M:Ds:CL~:CL:G-a:\Ǯ : ixB :"N:#H:$H:'j :(ixB :)G`:*i :,|*:-BV:0P^:2I;:4L:7E:9L:dEV:eQ:gO:iNy:jI~:kd] :nQ:oEʘ:qCL:tE:up,:wCL:xCL:zCL:{CL:|CL:}CL:~CL:CL:B:~9:I3:V4:Z:VR:CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N:CL:C :CL:CL:} :CL:CL:CL:CL$:K%:J@*&:N;:CL*:L,:EL:CL.:y] :CL:CL:CL:CL3:p4:A36:Bg7:N 8:Cf9:B:O|?:Jh@:GzA:r :,CLD:.r# E:/H/qF:0G gG:1Z:4h,:5l`:6f:9\ :;^:^ :?H:AK{m!:CCL :DCL:ECL:He[ :KCL:MBk!:N|oQ :OE@:PBk!:QM :R|ƚ :VCL:WCL:XCL:YCL:[CL:^F:_I:`Ab:at:d](:fA":gn :o :p6f:I3d:^|:@a:s8 :A :VNK:F^:Hy:K :P :d :`I:I3:^:CL:CL:CL:CL:CL:CL:CL:CL:CL:L:H::Hn:Gm:JW :JW }e:Q_w}f7eĺ ^ ^ M:vC N:CiO:DzP:HQ:a@R:OCS:n T: OsZV:"y| X:$F}Y:%Ka[:&A\:'VJ^:*ae_:,G `:-@a:/Y!Hb:XX#c:YS!H:[CL:\CL:]CLg:`r, :bCL:cCL:dCL:eCLm:hF\n:ko:ls{c :oCL:pCL:qCL:rCL:sCL:tCL:uCLw:xF\x:yPy:{aaH:|OP{:}~7 |:~XC}:h~:^:C_:F:{ ~:CL:d |:CL:Gh:D:H:N=u:CLt:CL:^Ǯ :o :k 5:N6:L:CL:CL::Go;:Me<:V?:F!O:CL:CLB:~ C:NAjD:EE:T.F:h(G:Q>H:N= L:^4M:Y >N:lO:CP:wS Q:q R:UT:P@UU:P%V:Hk:CL:CLY:DQNZ:E:CL:CL]:!{Z ^:"F :%CL:&CLa:(Ha:*CL:+CLd:-EW:0CLf:1^:2CLh:4Hi:5R~1:8CLk:;\ l::bQ?:cJb^@:dGA:g{ :jCLD:lq E:nHF:oG'G:p[{:uh:vl[3:wff:z[N:{_:|GN:}c/ :`b :HU:JZ!:CL :CL:CL:k/ :CL:A:: :D̘:B}:@#:} :CL:CL:CL:CL:CL:F P:I:As:s:]%:At@:m :o :m:H+:\w:@j^:t' :AE :W#:I+:J: :W :dj :`#3:I:^:CL:CL:CL:CL: CL:!CL:"CL:#CL:%CL:(LC:)H%!:*HI:,G:/JW :0JW }e:w}f:e ^ ^ M:u N:CiO:DvP:Hs<Q:aKR:OMS:c T:OZV:y] X:F{Y:KM[:]Y\:Z^:g˜_:c `:Ava:Z.b:Zcc:Sff:CL:CL:CLg:r :CL:CL:CL:CLm:Fn:4o:rӄ :CL:CL:CL:CL:CL:CL:CLw:Dffx:QLy:]:OP{:~ |:Vn}:j`~:^:CQ:F=:r@3 ~:CL:e |:CL:Go:C:HY:F2u: CLt: CL: ^/ :odZ :kP 5:M6:L:CL:CL::@Go;:AL;<:BQ}?:CFxC:ECL:GCLB:H~ C:IUxD:KEWE:LPF:MjG:OFH:PNjF L:Q[M:RUN:ShO:VoXB P:Wd Q:XCpR:ZZT:[PtU:\PV:]F:_CL:`CLY:bDnQZ:cEd:eCL:fCL]:h{ ^:i| :lCL:mCLa:oB:rCL:sCLd:uE:xCLf:y^:zCLh:Hi:Q:CLk:\ l:L3 m:L n:do:k4p:pǮ q:hf r:k{ s:MNt:LRu:~ :CL:CLx:B}y:Qz:F(:CL:CL}:H*~:M:M:E:CL~:CL:G`:[ :ixB :N:G:G(:ixB :ixB :Gx:i : |: B3:Pe:I0:L:E:KCu:EV:Lv:M:PB:I~:d] :"SCL:?CL:@CL:ACL:BCL:CCL:mCL:n^:oCL:pCL:qCL:sN:tCL:wC:yCL:zCL:|wB :CL:CL:CL:CL$:L)%:Iþ&:N0:CL*:K,:N.:CL.:El:CL:CL:CL:CL3:qM4:A36:B 7:Fvg8:~9:A::C4;:C<:DL:CL>:R>?:Jj@:G{A:|& :CLD:p E:H?F:G;G:Y:h3:lL:g:[(8:[o?:Gh:cM :_ :H:K)!:CL :CL:CL:dc :CL:B1 :A :D:B":GZ1:} :CL: CL: CL:4CL:5CL:8F#:9I::AYa:;sy:?](:@AO:Am7 :Bp% :Emf:HH:J\$:K@t:N~l^ :QA@ :TWr1:W| :YI:Z@A:[NO :^_"" :_^f:aFC3:b^:cCL:dCL:fCL:gCL:hCL:iCL:jCL:lCL:mCL:L:H:H:G-:JW :JW }e:dV}f: e ^ ^ M:wH N:CDO:DP:H Q: aHR: O;S: AT: O#V: y X: FwVY: KF[: \: WY^: h6_: ~ `: C1Aa: Wb: Z5c: S: CL: CL: CLg: r : CL: CL: !CL: "CLm: %Gxn: (~o: )r : +CL: ,CL: .CL: /CL: 0CL: 1CL: 2CLw: 5Hx: 6O\y: 7`k: aOP{: b~N |: cW;}: dhP~: f^: iC: jF}: mn ~: pCL: rbD |: tCL: wG[: xCM: yHR: }Lu: CLt: CL: _& : oX : kV 5: Mȉ6: L: CL: CL:: G;: Ls <: V\?: G: CL: CLB: ~ C: U9D: EE: RF: jBG: JW H: N@ L: SnM: M@N: bW O: lo P: e>t Q: CDR: SJT: OlU: PVRV: E: CL: CLY: DuZ: E9[: CL: CL]: { ^: zF^ : CL: CLa: B1 : CL: CLd: E: CLf: ^: CLh: Hi: P.: CLk: \ l: N8R m: M n: d@o: )l>p: *n\ q: ,h r: -i s: .MNt: /Lc&u: 0CC: 2CL: 3CLx: 5BFy: 6Pz: 7D: :CL: ;CL}: =H ~: ?M: @L: ADԒ: CCL~: DCL: FGQ: IZ : JixB : LM^: MH: NH: QixB : RixB : SG`: Ti : V{: XB3: [P_: ]I$: ^L: aE: cL: EV: R: M: PB: I~: aD : S: !SDP?: "J{@: #GA: &o+ : )CLD: +oK E: UH5F: VGKG: W[%k: Yh: [l3: \gP: _Z: `_: aG{o: bd/ : c`P : eH*: fJ !: iCL : jCL: kCL: ng3 : qCL: sBUZ: t{ : uE]: wBn: yoH: |}I : CL: CL: CL: CL: CL: F\: I: ALN: st:: ](: A$Z: mJ : pQ : rٚ: Ha: X<: @X:  : A : V,: @: HxM: @: T. : f" : ^f: Iff: ^: CL: CL: CL: CL: CL: CL: CL: CL: CL: Lq: H: H$: Ge: JW : JW }e: yBi!}f: f4 ^ ^ M: 2w+ N: 4CO: 5C(P: 6GzQ: :aKR: ;O?wS: x X: @Fx=Y: AK[: B\: DYs^: GhM1_: H~q `: JD_a: KTfb: LWqc: MP: OCL: PCL: RCLg: Ts : VCL: WCL: CL: CLm: H?ln: 4o: r : CL: CL: CL: CL: CL: CL: CLw: Fx: P >y: _: OP{: } |: W{}: iK~: ^: D :: FM: n`* ~: CL: eI |: CL: G : B: H: G2u: CLt: CL: _m : o : k- 5: M6: L: CL: CL:: G0;: L<: W?: F/: CL: CLB: ~ C: TKD: EE: cLF: sG: EH: N L: bM: ]N: qO: lR P: e!4 Q: ByR: RT: OmU: OV: E: CL: CLY: DZ: E : CL: CL]: { ^: y# : CL: CLa: IAf: LCL: MCLd: OE: QCLf: R^: TCLh: VIwi: WP: ZCLk: ][ l: ^Nz m: _Nu n: be@o: ckp: en q: fi=q r: gi s: hMNt: iLkXu: j@: lCL: mCLx: oBUZy: pO?z: qCL!: tCL: uCL}: wH ~: yM!: zM: |DM: ~CL~: CL: GQ: \ : ixB : MY: Go: H: j : ixB : F/: i : {ey: B3: PC: I: L: E: K?: EV: Lv: M: P(: I~: `w/ : XF: Eʘ: CL: E: s: CL: CL: CL: CL: CL: CL: CL: CL: t6g: r:I3:V:Z:VR:CL:CL:CL:CL:CL:CL:CL:^:CL: CL:!CL:"N:$CL:'Cn:)CL:*CL:,xt :.CL:/CL:0CL:1CL$:4K%:5J&&:8Jl:;CL*:=L=,:>F :@CL.:By :ECL:FCL:GCL:HCL3:KqbD4:tA36:wCY7:xFc38:y29:|Aq::~Al;:Es3<:A:CL>:Rs?:J@:GA:r@3 :CLD:q E:H3F:GT$G:X*:g :kk3:ef:Zj:_F:GE:b :_ :Go:Ik!:CL :CL:CL:g :CL:Aҩ:@-S:D4K:AZ:Tr :}f :CL:CL:CL:CL:CL:F^:I:AB#:sEl:]%:A:l9 :p}[ :q:H:]?:} :~] :AR :V%L:Ib:I&:@+:P̦ : c : `6f:L0:^:CL:CL:CL:CL:?CL:@CL:ACL:EL:FH:GH:HGm:KJQ:NJQ}e:dvZ}f: f@ ^ ^ M:iw N:kCO:lDqbP:mGe%Q:pa"sR:rO8VS:spPL T:tNV:uw X:wF|Y:K[:2\:Yp[^:d_:}UV `:Da:Yb:X:c:R:CL:CL:CLg:r :CL:CL:CL:CLm:H9n:@ o:q :CL:CL:CL:CL:CL:CL:CLw:Hzx:Vy:d:OP{:| |:W+}:l~:^:D=:FD:o ~:CL:eXB |: CL: G:A:H^:Ku:CLt:CL:^ :nT :ku 5:M6:L: CL:!CL::#G;:$KK<:%Y[?:&E:)CL:*CLB:,~ C:-T D:.E~E:0Q F:1j{G:2FBH:3N L:4b8RM:5]\)N:6pO:9l3 P::d Q:;BFR:=RZT:>NU:?OKV:hE:jCL:kCLY:mDSZ:nD:qCL:rCL]:t{ ^:uxP :xCL:yCLa:{Al:~CL:CLd:E:CLf:^:CLh:Ii:OZ:CLk:\ l:O m:O8R n:do:kp:i q:g\) r:g=q s:M8t:LvGu:B:CL:CLx:B"y:NQz:C:CL:CL}:H ~:M :L:D:CL~:CL:GJY:\ :ixB :M:Go:Go:j' :ixB :F::i :{ey:@:Ps:I:L:E:K=:EV:Ss:M3:P(:I~:`w/ :Yl:Eʘ:CL:1E:2sT::D;:E<:Fc3:CL>:S6?:J|@:GA:qJ :CLD:qHF E:H()F:GXG:Y#:b:gvf:bk3:YP:\:F:d :ax :G̶:I!:CL :CL:CL:f(r :CL:At@: y : D: A{: O :} :CL:CL:CL:CL:CL:F:IK:A1:s2: ]"":!@:"l :#p$ :&p3:)H':*]:.~ :/~ :2B = :]U:^AYa:`JH:a@8::dR* :gh :ha,:iOP:k^:lCL:mCL:nCL:pCL:qCL:rCL:sCL:uCL:vCL:yL:zH:|H:}G:JQ:JQ}e: a}f:eЪ ^ ^ M:w:a N:CO:E!P:GQ:aaR:O-S:of T:N_V:w X:F]Y:KwV[:٪{\:V9^:e_:}* `:Ca:ZLb:Xc:S8R:CL:CL:CLg:r :CL:CL:CL:CLm:Gn:ɚo:q :CL:CL:$CL:%CL:&CL:(CL:)CLw:,KǮx:-QǮy:._H:0OP{:1|_ |:2WI}:3fE~:6^:9D$::EJ:=q ~:?CL:Ab |:DCL:GGx:HB.:II:LL)u:NCLt:PCL:R_s :So\ :Tk 5:VM6:WL:YCL:[CL::\G:;:]Js<:^R?:E:CL:CLB:~Ü C:R_D:EE:RF:\HG:E=qH:N L:W=qM:PN:sO:k P:dM Q:B1 R:RT:NVU:NV:E?(:CL:CLY:DSZ:D:CL:CL]:{ ^:w :CL:CLa:@۶:CL:CLd:E:CLf:^:CLh:I i:N:CLk:\0# l:M# m:O8R n:do:k\p:n8R q:h r:jz s:M t:Lttu:Dr:CL:CLx:BNy:L"z:DnQ:CL:CL}: H*~: M : L :D:CL~:CL:F:X :ixB :M]]:Go:Go:ixB : ixB :!Fݱ:"i :${ey:%@ :PPP:RI-:SL:VE:XK?:[EV:\P:]I:`P(:aI~:b`w/ :eY}:fEʘ:hCL:kE!:lr:nCL:oCL:qCL:rCL:sCL:tCL:uCL:vCL:yu:zu:{I3:|OxR:~VR:V >:CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N&:CL:CV:CL:CL:Al:CL:CL:CL:CL$:L1 %:I&:NK:CL*:Kh,:P,9:CL.:F>K:CL:CL:CL:CL3:qe4:A36:AS37:wy8:pl9:A<::C0;:D<:D4:CL>:S?:Jz@:GA:uS[ : CLD:!n$ E:#H?F:$GVG:%Y:)h:*m:+gFg:.Y):/`X:0F*:2d :3a :4G:5J!:8CL :9CL::CL:CL>CL}>H*~> M#> L> D>CL~>CL>Fy>[ >ixB >Jā>F>K>FL>ixB >ixB >F[G>i >{ey>@ >"Pz>$H>%L>(E>*L>.EV>/Os>0I>2P(>3I~>6o^ >7Y>8Eʘ>:CL>eE>fp>hCL>iCL>jCL>lCL>mCL>nCL>oCL>pCL>slg>tr>uD3>vNR>wMR>yP{>{CL>|CL>}CL>~CL>CL>CL>CL>^>CL>CL>CL>N+>CL>C>CL>CL>{ >CL>CL>CL>CL$>L'%>IF&>LR>CL*>L.P,>T>CL.>K>CL>CL>CL>CL3>qpv4>A36>D37>zy8>s9>@:>C;>D3<>E<>CL>>SFy?>Jt@>GA>y]w >CLD>nB E>HF>GNG>Xw >ef>j33>dl>Yf>^>Fnz>_޿ >]n >,F>-H$!>0CL >1CL>2CL>4b6 >7CL>9A+>;@4>=A>?B >B} >ECL>FCL>GCL>HCL>JCL>MF#>NI >O@t>Pr>S]"">T@X>Ul >Vq >Zrf>]H >^Zxy>a}X >by] >eB >V4>HR>I3>@EO>O >dww >_vf>K)>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L>H>HF>Gg>JL>JL}e>?Z$}f:gf ^ ^ M>u N>C O>FkP>GPQ>`ӃR>OXmS>o T>MV>v X>FZrY>K,c[>\> XB^> g_> | `>Aa>X34b>Y(c>R>CL>CL>CLg>rb >CL>CL>CL>CLm>!G Bn>$go>&p >(CL>)CL>*CL>+CL>,CL>-CL>.CLw>ZDx>[OBy>\YG>]OP{>^{ |>_W$}>`l~>b^>fCZ>gF5>j|5! ~>lCL>nd0 |>pCL>tGԲ>uA>vH>yO0u>{CLt>|CL>a J >o >kbN 5>NSD6>L>CL>CL:>G;>IXi<>X?>D>CL>CLB>~s C>O8D>E5E>T.F>J{G>rzH>O L>QcM>K>N>^O>j P>eT Q>BR>M9@T>MEU>N16V>DL>CL>CLY>D|Z>DJ>CL>CL]>y ^>vh. >CL>CLa>c >CL>CLd>E>CLf>^>CLh>I i>M>CLk>\ b l>M{ m>M n>"do>#ktp>%r{ q>&o) r>'n s>(MNt>)LlAu>*BR>,CL>-CLx>/A:y>0HWz>1EV>4CL>5CL}>7H9Q~>9M'H>:L>;Ck>=CL~>>CL>@FxC>C[ >DixB >FMY>GH>HH>Ki >LixB >NG )>Oi >Q{ey>R@ >UP^>WH>XL>[E>K6>EV>R>H8>P(>I~>o^ >Y>Eʘ>CL>Ex>s>CL>CL>CL>CL>CL>CL>CL>CL>sc3>qI>D\>MR>VR>U\>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>C$>CL>CL>sl >CL>CL>CL>CL$>K2%>J&>O>CL*>L1,>E>CL.>z7 >CL>CL>CL>CL3> q4> A36>G7>~8>qf9>@:>@;>DY<>B,>CL>>T?>Jy+@>GdA> |ƚ >#CLD>Mp E>OHF>PGKG>QZ>TdP>Uh~g>Vbf>ZX >[]>\FA>]` >^_Z >_H*>`I!>cCL >dCL>fCL>hju >kCL>mA>nF>K>oC~>p@r>qI >r} >vCL>wCL>xCL>yCL>zCL>}F>~I>@>r>]"">@A>l5h >q,| >rp>G>Z9O> >y# >B >U>Fs>J>@F>WeJ >e >_>M>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>LZ>H>H>G>JL>JL}e>q^}f>h ^ ^ M>(v N>*ClO>+Eo>P>,GQ>/`OR>0O6S>1oI T>2MaV>3u X>6F_Y>7Ko[>8\>9[^>=z `>?Aea>ATT{b>BTc>CO>ECL>FCL>GCLg>Ir$# >KCL>LCL>NCL>OCLm>zFQn>}@fo>~oM9 >CL>CL>CL>CL>CL>CL>CLw>Lx>MHy>W>OP{>yǮ |>X}>j9~>^>C>F?>q ~>CL>c |>CL>G>B>H>Iu>CLt>CL>b >o >k 5>Nj6>LΫ>CL>CL:>G;>H<>Y0?>DX>CL>CLB>~l^ C>ND>EoE>CF>DG>{RH>O L>_uM>ZfN>m{O>n P>i Q>AOR>LQT>MGTU>MV>D>CL>CLY>DJZ>D%>CL> CL]> y# ^> yz >CL>CLa>AK>CL>CLd>E>BCLf>C^>DCLh>FIi>HLZ>JCLk>M\q l>NLR m>OM n>ReLo>Skp>UnR q>Vi r>Wh= s>YMt>ZLc&u>[C>]CL>^CLx>`Ay>aRdz>bEZ>eCL>fCL}>hH@~>jM(1>kL>lCd>nCL~>oCL>qF/>t[-F >uixB >wPx>xHpV>yI"d>ixB >ixB >H/>i >{ey>@ >PI>H\>L>E>K&X>EV>Lv>H8>P(>I~>o^ >Y>Eʘ>CL>E>r>CL>CL>CL>CL>CL>CL>CL>CL>r>s>vf>N\)>MR>P8R>CL>CL>CL> CL> CL> CL> CL>^>CL>CL>CL>N >CL>C>CL>CL>s >CL> CL>!CL>"CL$>%L6%>&J&>(J >+CL*>.LL_,>/DAY>1CL.>3w4 >5CL>6CL>7CL>8CL3>;q4>=A36>@E7>A| 8>Br`9>l@:>n~34;>oD9<>p@>rCL>>uS+?>vJ|@>wGLA>yvt >|CLD>~o7 E>H(F>GMG>XU>e>j$>cg>Y-:>`>F>bq >_ >J%g>K[!>CL >CL>CL>dE >CL>@>F>Ca>@۶>N >} >CL>CL>CL>CL>CL>F>I=>@>r}h>]""> >l3 >qI >o>G>\L;>@>zcz >A) >UI,>B[)>I%H>@F>M >h; >`)>Q0>^>CL>CL>CL>CL>CL>CL>CL>CL> CL>4L>6H&>7H5>8GH>;JG>`/E}f>jr ^ ^ M>Wvw N>YC"O>ZE?P>[H Q>^`R>_OXmS>ao,| T>bM V>cu X>eFUY>fK~&[>g7\>jV^>men_>nzV `>A a>Uqb>Vc>P>CL>CL>CLg>q >CL>CL>CL>CLm>Fn>~&go>o8> >CL>CL>CL>CL>CL>CL>CLw>~x>M >y>Y>OP{>y |>Y .}>i7~>^>C2>F1F>v ~>CL>_xB |>CL>Gc>C>H> Pu> CLt> CL> b- > o| > kT 5> No6> L> CL> CL:> GB;> H% <> Q?> D> CL> CLB> ~@ C> L&xD> EQ E> PF> !RG> "A4H> #O= L> $f=qM> %QN> &eO> )n P> *gL Q> +A2R> -QT> .MU> /MV> 0Dw> 2CL> 3CLY> 5D- Z> 6D- > aCL> bCL]> dyN ^> exe > gCL> hCLa> j@> mCL> nCLd> pE9[> sCLf> t^> uCLh> wI :i> xV}> {CLk> ~\ b l> LaH m> L) n> dffo> k=p> off q> k33 r> jW s> Mt> LTu> CY> CL> CLx> A"y> Rz> Ez> CL> CL}> H@~> M*> L}> Ca> CL~> CL> F7 > Z%\ > ixB > Px> Jk> Jk> ixB > ixB > I> i > {> EV> P'T> I~> L> e> K?> EV> Tz(> H8> PB> I~> o^ > E> Eʘ> CL> E> p> CL> CL> CL> CL> (CL> *CL> +CL> ,CL> /lg> 0`> 1t6g> 2LB> 3P> 4M> 6CL> 7CL> 9CL> :CL> ;CL> =CL> >^> ?CL> @CL> ACL> CN> ECL> GC> ICL> JCL> L{a > OCL> PCL> QCL> RCL$> UL%> VJ,&> XKR> [CL*> ^K{,> _Oo8> aCL.> cQ#> CL> CL> CL> CL3> q64> A36> B7> z,8> w9> @:> zY;> A|<> 4> CL>> R??> J}@> GӓA> rN > CLD> m4 E> H#F> GOG> Y> d> i+3> cs3> X> ]m> E*> c>k > `P > JP> K!> CL > CL> CL> ixB > CL> @> D̘> C'> @}B> Qg# > }; > CL> CL> CL> CL> CL> F#> Io> @> r#L> ]""> 7 > k > qf > o> G > [ι> ~Ü > y@ > Af > !Up> "I@> #I> $@C> 'V > *f > T`> UP<> V^> WCL> XCL> YCL> ZCL> \CL> ]CL> ^CL> _CL> `CL> cLw> eH-J> fH > gGti> jJG> kJG}e> `4}f> i ^ ^ M> u N> CO> FeP> GQ> `R> OfS> oK T> LMV> t X> FOY> K[[> x8\> X^> d_> z8 `> A33a> XBb> Z c> U> CL> CL> CLg> qƀ > CL> CL> CL> CLm> Fn> go> nfg > CL> CL> CL> CL> CL> CL> CLw> C34x> My> U)> OP{> y |> Z*}> m_~> ^> Cp> F> !{LS ~> #CL> %ch |> 'CL> *G> +CX> -Ho> 0GƩu> 2CLt> 3CL> 5b > 7o1 > 8kw 5> :Nk6> ;L> =CL> >CL:> @G;> AG<> BV.?> CDG> FCL> GCLB> I~ C> JT~D> KEQ E> MN\F> NNG> O~H> PO= L> QXM> RQqN> St>O> Vk P> Wdp Q> AqR> RKT> L}U> MWV> Do > CL> CLY> DZ> C> CL> CL]> xo ^> x > CL> CLa> A$Z> CL> CLd> E> CLf> ^> CLh> Ii> W Q> CLk> \` l> M33 m> MǮ n> d@o> kp> m q> iG r> lf s> MEt> LN1u> C<> CL> CLx> A y> Piz> D> CL> CL}> H2~> M-> L]> BR> CL~> CL> ET> Z > ixB > K> H> H> ixB > ixB > G&"> i > {݉> EV> P52> I~> L> ~> K > EV> OBo> JT> PB> H> o^ > I|*> LEʘ> NCL> QE]> Rp> TCL> UCL> VCL> XCL> YCL> ZCL> [CL> \CL> _cVg> `avg> avf> bG> cK>> dGR> fCL> hCL> iCL> jCL> kCL> lCL> mCL> n^> oCL> pCL> rCL> sN> uCL> xCa> yCL> zCL> |AAh> CL> CL> CL> CL$> Kd%> Iظ&> R> CL*> LlA,> U\> CL.> Go> CL> CL> CL> CL3> q4> A36> Bi7> vY8> s39> @ :> wy;> 3<> wY> CL>> RC#?> JwX@> GݔA> rs > CLD> l E> H F> GI?G> X> e;3> j > dh>X:>_>E>fq >c >G>I !>CL >CL>CL> dc >#CL>%@}B>&A^v>(CD>)@>+vd>.} >1CL>2CL>3CL>4CL>5CL>9F,>:Iw>;@.>?]"">@ O >Ak) >Bq >Em>HG">JX>u^ >vz)B >yAq >|Ue>}I>~J=E>@:g>M >eL >_>OP>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L>H&>H>Ge>JG>JG}e>+mdE}f> 5j 7 ^ ^ M>vn N>CpO>F¬P>GQQ>`R>O[S>n T>LV>t" X>F+Y>K.U[>]\>Zf^>cm_>y `>Aa>Zb>W\c>Rh>CL>CL>CLg>qG >CL>CL>CL>CLm> Fyn>S4o>m >CL>CL>=CL>>CL>?CL>@CLw>CDx>EMy>FW=q>GOP{>Hx |>IX}>Jm2~>L^>OCV>QE>Tt ~>VCL>Xad |>ZCL>]G>_C>`H\>cNݪu>eCLt>fCL>ib >jnn >kk 5>mN` 6>nL>pCL>qCL:>sG} ;>tG<>uXn?>vD;>CL>CLB>}h C>UyHD>EE>P >F>NG>p\H>OI L>XM>R N>tO>jp P>cM Q>B?R>RT>L|U>MV>DB>CL>CLY>CZ>C>CL>CL]>x ^>w >CL>CLa>@r>CL>CLd>D>CLf>^>CLh>Hi>Vm>CLk>\: l>L m>M n> d3o> ktp>fW q>d\ r>cL s>Mt>LJu>B5>CL>CLx>AHy>Oz>H>CL>CL}>!H]~>#M(1>$L>%B1 >'CL~>(CL>*EV[>,[- >.ixB >0M>1FN=>2FN=>5i >6ixB >7F/>8i >:{>;@ >>P e>hI~>iL>l~L4>nKj>rEV>sR>tI>vPB>wI$>zo^ >|m>Eʘ>CL>E >p>CL>CL>CL>CL>CL>CL>CL>CL>ls3>avg>vg>Pٚ>OxR>MR>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>Cɪ>CL>CL>@>CL>CL>CL>CL$>LKv%>I&>K+>CL*>L,>Fn>CL.>y >CL>CL>CL>CL3>qW4>A36>H7>@c38>x9>z:>@0;>Avg<>@>CL>>0Q?>1Jn9@>2GA>5} >7CLD>9o E>;H&F>=XU>@if>An>Bhf>EX>F`ݴ>GE|>Hf(r >Ib(\ >KHO >LKM!>OCL >PCL>QCL>Sgx >VCL>X@X>Yz >[Cw>\@4>^>a}u% >dCL>eCL>fCL>gCL>hCL>F6>Id|> >q>]"">~s >kZY >q7 >o>G>X.>K >z % >A{ >U >B>IH>@.>U >h"" >`f>OVf>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L*>H#P>H>GbK>JB>JB}e>^q}f>ij ^ ^ M>v N>CO>G'8P>GQ> `j;R>"OCS>#o T>$LFV>%sx X>'EֱY>(KI[>)L_\>*Ym^>.cxv_>/xU `>0Aa>2V8Rb>3Uc>\SW >^CL>_CL>aCLg>cq*c >eCL>fCL>gCL>hCLm>kFl n>no>pm >rCL>sCL>tCL>uCL>vCL>wCL>xCLw>{@x>}Ly>~VW >OP{>wL |>Y}>l;~>^>C=>F 5>vR ~>CL>] |>CL>G4>EIN>H>FAu>CLt>CL>b9X >n >k$ 5>NQq6>L>CL>CL:>GQ;>F}<>YHO?>D4K>CL>CLB>} C>T=D>E E>AF>F#G>nGH>Oh L>SM>\RN>oO>jSk P>e5 Q>B5R>MT>L1U>LV>C޲>CL>CLY>CZ>C4>CL>CL]>xe ^>x+ >&CL>'CLa>)A>,CL>-CLd>.D>1CLf>2^>3CLh>5HHi>7U>9CLk><\ l>=I m>>If n>Ado>Bkyp>Dg q>EfG r>Fh s>HMt>ILAqu>JB>LCL>MCLx>OA$Zy>PN[ez>QG'>TCL>UCL}>WH9Q~>YM&^>ZL@>[Bx>]CL~>^CL>EO>[ >ixB >P0>H6k>HI>>i| >ixB >HVF>i >{?T>EV>P>I~>L>~#>J>EV>P*>IA>N>Ied>o^ >eR>Eʘ>CL>E>q>CL>CL>CL>CL>CL>CL>CL>CL>lg>cVg>t6g>N5>MR>P>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>M>CL> Cy> CL> CL> vK >CL>CL>CL>CL$>K%>J&>K>CL*>L;,> Df>"CL.>$yN >&CL>'CL>PCL>QCL3>Tq4>VA36>YEɚ7>ZmY8>[k@9>]~:>_u4;>` <>az>cCL>>fR$?>gJi@>hGA>i@>kCLD>louq E>nH&F>oG9G>pZ+>th(>um>vf>yW6>z\$>{EG>}b  >~^D >IL>L!>CL >CL>CL>ex >CL>@&>srb >CL!> >>}X >CL>CL>CL>CL>CL>F6>Ih>' >qt>]>~24 >k >qf >r>Gs>Uh>@>zcz >B >Up>IW>I>@>P >e >`&f>P#3>^>CL>CL>CL> CL>!CL>"CL>#CL>%CL>&CL>)L>*H>+H~>,GY<>0JB>3JB}e>Wٴ}f>jh ^ ^ M>Mv N>OCSO>QG(P>RGrQ>}`>R>~O8VS>@RT>L"V>s X>EY>K[>Z\>Y^>d_>x `>B?a>VW b>U c>N&f>CL>CL>CLg>p >CL>CL>CL>CLm>Fn>@o>l >CL>CL>CL>CL>CL>CL>CLw>Ax>L\y>U>OP{>w* |>Yݭ}>ju~>^>C^>Fs>}I ~>CL>c |>CL>G}>Eq>H>L%u>CLt>CL>b >n\) >kC 5>N6>L>CL>CL:>H];>N<> e?> D> CL>CLB>~ C>TD>D(E>zF>~G>sQH>O_ L>Qs4M>J >N>_RO>Ei/3 P>Fe Q>GB\R>IMT>JLU>KL0V>MQ>NCL>OCLY>RNIZ>SDX>UCL>VCL]>Xzcz ^>YEsZ>\CL>]CLa>_D>bCL>cCLd>eDV>hCLf>i^>jCLh>lH i>mU|>pCLk>s[ l>tM m>uL n>xd3o>ykp>{f\) q>|dp r>}f33 s>~Mt>L3u>B#>CL>CLx>@y>L̷z>Ge>CL>CL}>H[~>MV>L>BO>CL~>CL>EZ>Z >ixB >M>I"d>I"d>ixB >ixB >I>i >{vm>EV>P>I g>L>}Z>JP>EV>P>HK>N\>I>o^ >_>Eʘ>CL>En>o>CL>CL>CL>CL> CL>!CL>"CL>#CL>&avg>'avg>)t6g>*}>+G>>,@xR>.CL>/CL>0CL>1CL>2CL>3CL>4CL>6^>7CL>8CL>9CL>:N d>?C>ACL>BCL>Dv4 >FCL>GCLBCLBCL$BLU%BJQ&B SBCL*BK,BS?BCL.BToBCLBCLBCLBCL3Bq4B A36B"~_7B#r8B$qfg9B'~):B)x;B*@\B/Q ?B0Jp@B1GAB4r B7CLDB9l EB;H%oFBdG7GBeZ=BhcxBih3BjbaBnWMBo_~BpE>Bq` Br^; BsI>BtK82!BwCL BxCLBzCLB|dR BCLB@4Bx0 BCB@-SB_B},l BCLBCLBCLBCLBCLBF1BIiB)b Bq(B]""B} Bk_ Bq۔ BrfBGYBW-B)b By] BB{ BS BIBJ3B@BR-E BgU BafBPB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBLABH(BHtBGVBJBBJB}eBlp}f>jZ ^ ^ MBBw NBDCOBEH;PBFGVQBI_ RBJO4SBKAHTBML}VBNr XBPE:YBQK[BRv\BS[r^BVc%_BXxq `BZCyaB[RbB\TcB]SB_CLB`CLBaCLgBcp BfCLBgCLBCLBCLmBG5nB~\oBl/ BCLBCLBCLBCLBCLBCLBCLwB@{xBKyBUpBOP{Bv |BX}BlS~B]BCBFBt ~BCLBaw |BCLBG:BE\BHˊBJuBCLtBCLBcb Bn- Bj 5BM6BL+BCLBCL:BG} ;BEWBCLBCLYBCpiZBDB"CLB#CL]B%w ^B&JB)CLB*CLaB,DXB.CLB/CLdBYDB\CLfB]]B^CLhB`H iBaT#BdCLkBg[\ lBhJ mBiJW nBlcoBmk/epBodQ qBp`R rBqa) sBrMJtBtL0uBuBgBwCLBxCLxBz@.yB{KY0zB|FBCLBCL}BH ~BMBLSBBBCL~BCLBE*B[ BixB BMBHdBH)BixB BixB BHBi B{14BEVBP'TBIBLB} 8BJPBB BR_2BH%wBNBI.Bo^ BZ<.BEʘBCLBEGBpdYBCLBCLBCLBCLBCLBCLBCLBCLBcfB`fBsBGRBLB K\B#CLB$CLB%CLB&CLB'CLB(CLB)CLB*\,B-CLB.CLB/CLB1NB3CLB5CB7CLB8CLB:{ B=CLB>CLB?CLB@CL$BCLVe%BDI&BFMշBICL*BLL,BMRBOCL.BQIBSCLBTCLBUCLBVCL3BYqš4B[Aff6Bt@7Bo8Bis39B}:Bw;B~&fBR"?BJlf@BGdABoXB BCLDBm EBH&XFBG){GB[RBeBk6fBd)BWЗB`BE#7B` B^a BI6BK !BCL BCLBCLBf BCLB@B@BCDB BJ B}T BCLBCLBCLBCLBCLBF7BImB~; BpB]""B}X Bk_ Bq+ BpfBGLBYNB  B y BB) BRBEBIB BQB2 Bh B`YBQB ^B!CLB"CLB#CLBLCLBNCLBOCLBPCLBQCLBRCLBUL0BWH@BXHh:BYGMvB\JBB]JB}eB]8}fBkm7 ^ ^ MBxw NBzCOB{FPB|GBQB_RBO-SB} TBKqVBrۢ XBE}YBKOn[B`\BZG^Bc_Bx9 `BDaBTHbBTkcBR BCLBCLBCLgBp_` BCLBCLBCLBCLmBHMnB}4oBk BCLBCLBCLBCLBCLBCLBCLwB}xBIaHyBSBOP{Bw |BZ}Bl~B]BDBFBq ~BCLB^ |BCLBGBEBHhB"K"uB$CLtB%CLB'c B)nz B*jD 5B,M6B-LB/CLB0CL:B2GC;B3PHBBOyV LBC]=qMBDXJ>NBEk!HOBHn PBIk_ QBJ@RBKFxCTBML/+UBNLVBOD eByCLBzCLYB|CZZB}DJBCLBCL]Bw ^BBnBCLBCLaBDBCLBCLdBDuBCLfB]BCLhBH iBSi=BCLkB[m lBJ mBI nBd&foBk'pB` qB`G rBa sBMztBL uBBBCLBCLxB@۶yBJ#zBHBCLBCL}BH#~BMBL.BBdBCL~BCLBDB[-F BixB BPxBI"dBI"dBixB BixB BIBi BzB@ BPBI~BLB} 8BJPBB B LvB GB NyBIBo^ BW8BEʘB@CLBCE1BDqBFCLBGCLBHCLBICLBKCLBLCLBMCLBNCLBQd3BRYgBSs3BTNBUMRBVP!HBXCLBZCLB[CLB\CLB]CLB^CLB_CLB`]BcCLBdCLBeCLBgNBiCLBkCBmCLBnCLBp| BsCLBtCLBuCLBvCL$BxK%ByIƢ&BH)BCL*BLϕ,BEnBCL.Byl BCLBCLBCLBCL3Bq>4BAff6Br7Bs38Bm9B|:BA;BA<BQk?BJ[@BGABxo BCLDBn4a EBHFBGGBYwvBe@BjBcQBWB\XBDoB ` B _/ B IB KU!BCL BCLBCLBc7 BCLB BFyBB B~' BM B| B"CLB#CLB$CLB%CLB&CLB)F?B*InxB-~] B0ppB3]B4}T B5kK B6rY B9m3BnB~FgoBk BCLBCLBCLB CLB CLB CLB4CLwB7@34xB8KyB9QLB;OP{Bj~B@]BCD6BDF)BGyN ~BJCLBLa. |BNCLBQH ^BREMBSH BWLluBYCLtBZCLB\d B]nC B_k J 5BaMp6BbLiBdCLBeCL:BgGQ;BhPB R5r?B JO7@B G6AB B}B CLDB (l3 EB *HFB +GjGB ,[>B /c&fB 0h6gB 1aB 4WB 5`B 7DB 8a- B 9`S B :JfB CL B ?CLB @CLB Bg/ B FCLB H B IFB JCB K~ B M"B P| B SCLB TCLB VCLB WCLB XCLB [FNrB \IfLB _~] B apmRB ]B |& B k B r B p#3B GB TB @B zF^ B AR B TB IB J0B ' B Ry B gb" B `c3B OVfB ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB L{B H(B HVB GEOB J=qB J=q}eB Mh}fB\lq ^ ^ MB v NB COB GT%PB GkQB __RB N(SB oXB TB KVB r XB EYB KM{[B \B Y^B c_B xq `B B״aB !UaHbB "TLcB $PB &CLB 'CLB (CLgB *p~ B TCLB UCLB VCLB XCLmB [GnB ^~4oB _k B aCLB bCLB cCLB dCLB fCLB gCLB hCLwB k@xB lK\yB mS(B nOP{B ov7 |B pY}B rkΩ~B t]B wDVB xEB {|5! ~B }CLB a |B CLB HB EB HB IuB CLtB CLB d B odZ B ky 5B M6B LBB CLB CL:B GC;B PMTCLxB @@۶yB ARzB BHdB ECLB FCL}B HH~B JM B KKB LBB NCL~B OCLB QDB T[~ B UixB B WMB H=B HmqB ixB B ixB B HVFB i B zQB EVB PB I~B LB } 8B JB B B LvB ELB NyB JPB o^ B SB EʘB CLB EB p +B CLB CLB CLB CLB CLB CLB CLB CLB c0B NgB lgB KB PB N\)B CLB CLB CLB CLB CLB CLB CLB ]B CLB CLB CLB NB CLB CB CLB CLB A+B CLB CLB CLB CL$B LH%B J}&B PB CL*B L ,B [{B CL.B TB CLB CLB CLB CL3B q4B HAu6B Jbfg7B Kc`8B Lc9B O|%:B Qw;B R~B WR?B XJJ@B YGҪAB \' B _CLDB alo EB cHFB dG oGB eYRB hcB iifB jbB mX BB o_ B pDB qf 4 B rcx B sIB tK?m!B wCL B xCLB zCLB |b B CLB  B ByB BB } B B |j B CLB CLB CLB CLB CLB FarB IaB ~ B p:0B ]B | B j B r$ B rfB G(B SB ^ B zcz B B8R B SB F B JB U B NO B g B `9B OB ^BCLBCLBCLBCLBCLBCLBCLBCLBCLBL BHBHTGB!GCB$J=qB'J=q}eB aeu}fB lN ^ ^ MBBwJ NBDC-OBEGrPBFGQBI_1RBJO SBKoXB TBtK"VBurw XBxFYByK[Bz \B{Z'^B~dH_Bw `BB'aBRbBT cBS0BCLBCLBCLgBp8T BCLBCLBCLBCLmBGInBoBk BCLBCLBCLBCLBCLBCLBCLwB|pxBL)yBRBOP{BvW |BYfB}Bn ~B]BCBE؍Bu ~ ~BCLBa=" |BCLBH BE{SBHBQuBCLtBCLBdf Bo- Bk 5BMB6BLuBCLBCL:BGX;BOeL`TB?KUUB@L VBACēBCCLBDCLYBFC ZBGD- BJCLBKCL]BLwt ^BNCBPCLBQCLaBSEdBVCLBWCLdBYDBB\CLfB]]B^CLhB`HؒiBaQmBdCLkBg[a lBhKR mBiK# nBlc@oBmjWxpBo` qBp^ rBq`) sBrMhtBsK١uBtBnBvCLBwCLxB@.yBS|AzBHkBCLBCL}BH~BMpBK܀BB&BCL~BCLBDB]< BixB BMxBG BH&}BixB BixB BH[Bi BzJB@ BP eBIg5BLB}BJPBB BQBE_BNyBJPBo^ BQ7BEʘB CLB EDBpBCLBCLBCLBCLBCLBCLBCLBCLBdfBYgBs BMRBV@B OxRB"CLB#CLB$CLB%CLB'CLB(CLB)CLB*]B+CLB,CLB-CLB/MB1CLB3CB5CLB6CLB8v B;CLBCL$BhK%BiJBU&BlKOBoCL*BrL~,BsEBtCL.BvFv ByCLBzCLB{CLB|CL3Bqۡ4BAu6Big7Bf&g8Bhٙ9B{!:B|;B4BRK?BJH@BGABq BCLDBm EBHFBG\GB[B\B`3BZgBVB]t BDp]Be Bb BI/BKӜ!BCL BCLBCLBh6 BCLB~ B~ BDB}u% BL B|` BCLBCLBCLBCLBCLBFxBIvB} BpB]""B|C Bjp Br3 BofBFBXBCLB2zT B6B\ B9Rk}B:GB;I@B>)b B?UT BBgD BC`3BDQfBF^BGCLBHCLBICLBJCLBKCLBOOPBPOPBRCLBSCLBVL{BWHBYHLBZG<@B]J=qB^J=q}eB^4}fBmd ^ ^ MBw NBCOBIPPBG'QB_.#RBNvSBoI TBKZVBr> XBF YBK6[B\B]P^Bc8_BwV `BA5aBSbBRqcBRBCLBCLBCLgBo BCLBCLBCLBCLmBFnB~goBkr BCLBCLBCLBCLBCLBCLBCLwBxBIaHyBRBOP{Bv{ |B Z }B m~B ]BCMBFNB} ~BCLB` |BCLBGzBEYABH-B#H]uB%CLtB&CLB(cF B)n/ B+k=q 5B-Mܝ6B.L{B0CLB1CL:B3G4;B\NuBBKBOPBCLxB@yBRrzBHdBCLBCL}BH ~BL$BKBB;7BOP~BCLBDBZB BixB BP0BH BI"dBixB BixB BH$Bi BzJB%EVB&O/B(IZB)LB,}2xB.JPB1B B3PB4AפB6NyB7JPB:o^ BBQ?BJG@BGfABo+ BCLDBmm EBHFBFGBZB_gBcQB\gBVQTBaBD:BbA B ^ B J+B M#!BCL BCLBCLBb[ BCLB~@ BvY BDB} BLv B|5! B!CLB"CLB#CLB$CLB%CLBQFBBRIiBU} BWo BZ]""B[| z B\ju B]rA B`ofBdGBeYFBfOGBgA0BiB BlRBmF=BnHfBq~; BrL Bvg3 Bw`3BxQfBy^BzCLB{CLB|CLB~CLBCLBOPBOPBCLBCLBLBH_BH9BG2JBJ=qBJ=q}eB^}fB(l8 ^ ^ MBv& NBCOBHʅPBGfQB^9RBNTSBo TBK{VBq. XBFYBK6[Bg?\BW^BdH_Bw `BA}-aBKǮbBMffcBKǮBCLBCLBCLgBo B CLB!CLB"CLB#CLmB&FinB)}9oB+j B-CLB.CLB/CLB0CLB1CLB2CLB3CLwB6AffxB8IByB9T.B:OP{B;uY |BBR?BJ9T@BGAB@7B OPDB#wB EB$HFB%F`GB&Y\,B)^B*cnfB+]4B.U B0_6B1D B2b(\ B3^a B4G0B5J;!B8CL B9CLB:CLB=h B@CLBB} BCu BDCBE|R8 BFM>- BG{ FCLFCLFCLF CLF CLF FFIF} FoF]""F{/ Fj FrPL Fn F G9F!W3F"OJF#C<F%B F)R'F*E1bF+H{2F.~Ü F/Uc F2gD F3_F4Q6fF5^F7CLF8CLF9CLF:CLF;CLFfOPFhOPFjCLFkCLFnLFoH7FpH1FrG*#FuJ8RFvJ8R}eBF]t}fBlR ^ ^ MFv NFCvOFHPFGQF^H[RFNSFn TFKW3VFq XFEYFK?[Fɭ\F\}^FcT_Fw9 `FA)waFKEbFLcFKLFCLFCLFCLgFo FCLFCLFCLFCLmFFnF}oFj#A FCLFCLFCLFCLFCLFCLFCLwF{xFI34yFWǮFOP{FuP7 |FZP}Fln~F]FCj\FFAFw ~F-CLF0ah |F2CLF5GF6GF7HF8GuF;CLtFe F?n F@jH 5FCM]6FDL=FFCLFGCL:FIGg;FJL/FS1?FJ(@FGAFEFOPDFxH EFH'@FFG oGFUFXF]4FVfFTF^FCcF_v F^'U FDFE!FCL FCLFCLFc/ F"CLF$}; F%t F&DXF(| F)~WF*{H F-CLF.CLF/CLF0CLF1CLF4FF6IF9}I F;oeF>]F?{ F@kQ FAr^ FDq`FGGMFIV|FJMyFKD FMBh FPQFQBFRGFU~s FVMx FZgU F[_FP#3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFLFHFH*FG"FJ8RFJ8R}eF)Wx}fF>mr ^ ^ MFwC NFC OFJj@PFG;$QF]ϼRFOSFq TFKHVFqZ XFEYFK\[Fs\FU^Fby_Fwr `F@aFJ4bFLxRcFKFCLFCLFCLgFo FCLFCLFCLFCLmF FnF }ٚoFiZ FCLFCLFCLFCLFCLFCLFCLwF|xFKyFS4FOP{Fu |F [1X}F!o~F#]FNCLFPF/FSv ~FUCLFWb& |FYCLF\G$F]GF_HUFbNkuFdCLtFeCLFge\ Fio1 FjkC 5FlM6FmL-FoCLFpCL:FrG );FsKtM FA} 8FCJPFFB FGRFHAFJNyFKJPFNo^ FxN!F{EʘF}CLFE FqgFCLFCLFCLFCLFCLFCLFCLFCLFbFYgFkIFkHFBFx FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFMFCLFCmFCLFCLF} FCLFCLFCLFOP$FL%FI\&FNOMFCL*FM7,FStFCL.FJ|1FCLFCLFOPFCL3Fq4FAu6FyFf7Fe8Fl9FzJU:F{@;F}4FSd?FJ@FGݔAFH/FOPDF w EF H1CFFGGFSFYF]FX3FSwF@a9FACFB` FC] FDBnFEDG!FHCL FJCLFKCLFMg FPCLFR}I FS}X FTCFU{LS FVNb FX{ F[CLF\CLF]CLF^CLF_CLFbFFcIFFf},l FioFl]""Fm{ Fnk For^ FrpFuG[sFvXvFwLjFyE{SF{Bh FRPF@%FFfF~] FU Fh. F`FQ9F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFLFGFHFG!FJ=qFJ=q}eFV`v}fFgnnJ ^ ^ MFv NFCOFJ֤PFGQQF]b`RFNSF@TFK$ZVFq/ XFERYFK`[Fh\F^^F"d_F#v `F&B?aF'JRbF(LcF)KkF+CLF,CLF-CLgF/o| F2CLF3CLF4CLF5CLmF8GdnF;}goFCLF@CLFACLFBCLFCCLFlCLFmCLwFp~=qxFqI34yFrTfFtOP{Futc |Fv[ɧ}Fwk~Fy]F|CaF}FcFxH ~FOPFa |FCLFGփFGWcFHFFNuFCLtFCLFfo FodZ Fk 5FMJ6FLwFCLFCL:FF;FJiFM2YFOPkF[W lF vffmF sHnF5F oF6kpF8] qF9W( rF:\\ sF;MtFOPF@CLxFB yFCR*WzFDIFFOPFHCL}FJH~FLLڨFMLFNC`sFOOP~FQCLFSCFV[g FWixB FYL+ FZIZF[IJF^ixB F_ixB F`IiNFbEFdzJFe@FhOFjIy^FkM Fnv:)FJPFB FQFAFPBFJPFo^ FNFEʘFCLFEFpFCLFCLFCLFCLFCLFCLFCLFCLFYgFYgFt6gFMHFkHFi=qFCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFMFCLFCFCLFCLF { F CLF CLF CLF OP$F L%F I&F LF CL*F Mvn,F T15F OP.F IF CLF CLF OPF CL3F !q4F #A6F &r37F 'f8F (d9F +y:F ,u ;F -|fF 0SO?F 1J6@F 2GAF 3IO@F 4OPDF 7vR EF aH8FF bG GF cRF foF gtIF hl4F kQ;F l]F mCmKF n`d F o^'U F pB1 F rC !F uCL F vCLF wCLF yaЊ F |CLF ~{a F @QF DF zu F @!m F {in F CLF CLF CLF CLF CLF FF IF } F oF ]F {w F |C F rmy F rF GeqF V8F KEF FNF Bh F RF  F EF ~# F MZ F h F ``F QF ^F CLF CLF CLF CLF CLF OPF OPF CLF CLF LF HF H:F GnF J8RF J8R}eF Xص}fFog ^ ^ MF COF ?KLMPF @GQF C]'RF EN_SF FA+TF GJ۶VF Hp) XF JESYF KK[F L\F MXV^F Qb_F Rv `F TCJaF UJbF VL cF WK\F YCLF ZCLF \CLgF ^oF, F `CLF aCLF bCLF cCLmF GܜnF }oF i't F CLF CLF CLF CLF CLF CLF CLwF @#xF KyF VuF OP{F t |F Z_}F o~F ]F C[F FVF v( ~F OPF ` |F CLF GF H[XF HF L;uF CLtF CLF ej F ny F kt 5F M 6F LF CLF CL:F FT;F IĚF Ss?F Js@F GAF IFF OPDF vY EF H8FF G\GF RF kfF o3F hS3F N?CF aiTF CF a F ^D F B}F B!F CL F CLF CLF g F CLF z F BF DYF y{ F L x F {= F CLF CLF CLF CLF CLF FF IEF | F n~F ]F { F |R8 F r| F q#3F GjF WF JF FmF Bh F RF ~l^ F EGF }~ F UW F h F `|F OF ^F CLF CLF CLF CLF CLF OPF OPF CLF CLF LAF HTGF HH}F JG<F MJ8RF NJ8R}eF _as}fF nb ^ ^ MF hwC NF kCOF lKKPF mGzQF p\ڎRF qNSF rr1 TF sJVF tpH XF vE YF xKg[F ydk\F z^x^F }en_F ~uq `F DudaF JbF K cF I:F CLF CLF CLgF o] F CLF CLF CLF CLmF HsnF }4oF h F CLF CLF CLF CLF CLF CLF CLwF AxF JyF X34F OP{F s_ |F [+}F oD~F ]F DF F9F u ~F OPF `63 |F CLF G˝F I!FH&FK+uFCLtFCLFe; Fo?} Fk+ 5FM6FLĥF!CLF"CL:F$F ;F%H`LlTF?KUF@LAhVFAI9FBOPFDCLYFFDZFGBFIOPFKCL]Fuw3 ^FvO=oFxOPFyCLaF{GoF}OPFCLdFGoFOPfF^FCLhFIiFVDFOPkFZ lFe=qmFb33nFB:oFi=pF^W qFXp rF\ sFMtFLuFCFOPFCLxF7 yFN?zFJFOPFCL}FI=~FLFLFCFOP~FCLFC=F]w FixB FI FIFIiNFixB FixB FIiNFEF{GF@ FOPFI~FM FsFJPFB FRrFAFP(FJPFo^ FMFE,FCLFEFpoF CLF CLF CLF CLF CLFCLFCLFCLF]3FFSp>?FI@FGAFJXFOPDFu6 EFH2+FFFxGFRAFe@FhٙFbfFK~JFa%;FB|Fa< F^a FAFB!FCL FCLFCLFaL FCLFz)B FDSFDBFy# FH$ F{ FCLFCLFCLFCLF CLF FǶFIF|j Fn}F]Fzu F{ Fr| Fq0F GiF!X EF"J7{F#GnF%Bff F(QF+}f F,DF.} F/L F2hj F3`IF4OF5^F6CLF7CLF9CLF:CLF;CLF>OPF?OPFiCLFkCLFnL~FoHvFpHFqGFtJ8RFvJ8R}eF^ }fFn ^ ^ MFw4 NFCOFK)\PFGQF\xkRFNSSFo۔ TFJ4VFo XFDuYFKA[Fc\FY{^Fc_Ft `FCyIaFJbFKqcFIpFCLFCLFCLgFo FCLFCLFCLFCLmFH nF~<oFh@ FCLFCLFCLFCLFCLFCLFCLwFAGxFL\yFUFOP{Fr) |F[}Fmz~F]FDFFvFtx ~FOPF0` |F3CLF6GF7J,F8H-F;KuF=CLtF?CLFAf FBn/ FCkw 5FEMf6FFL=FHCLFICL:FKE;FLGriFWFOPkF[ lFdmFa nFAoFi=pF` qF\ rFap sFMtFLeuFCaFOPFCLxF7 yFLzFJXFOPFCL}FIb~FL FLFCFOP~FCLFBFixB FixB FHGFIΘFIwFixB F ixB F IwF EF {5qF@ FOPFI~FM FqFJPFB FQFBwmF!P(F"JPF%o^ F'MzAF(DF*CLF-EF.slF0CLF1CLF2CLF3CLF]CLF^CLF_CLF`CLFcYgFdNgFek,FfMHFgkHFhg34FjCLFlCLFmCLFnCLFoCLFpCLFqCLFr]FsCLFtCLFvCLFwMFyCLF|CIF}CLF~CLF{ FCLFCLFCLFOP$FL}%FI&FHujFCL*FMo#,FTFOP.FKOFCLFCLFOPFCL3Fq4FAu6FA7Fr8Fnff9Fy.:F@;F~gFS"?FI0@FGyAFJFOPDFu EFH$FFFGFR*FfLFj FdFgFIMF^FB Fa< F^y FAFB\!FCL FCLFCLFg FCLF$y# F%@F&DBF'y1 F)Gx F*z[ F-CLF.CLF/CLF0CLF1CLF4F$F5IF9|oQ F;n`F>]OF?z F@{ FAr| FDq3FGGiFHX۞FJIbFKGJFMB\) FPRFS|= FTD|FU}u% FVU FYhY F[`s3F\Q F]^F^CLF_CLFCLFCLFCLFOPFOPFCLFCLFLFHFHFHFJ33FJ33}eF)\4}fFAo? ^ ^ MFvn NFC}OFIPFGQF\4tRFNmSFof TFJVFo< XFDoYFKF[F\F\I?^FeV_Ft `FBaFJbFL)cFIpFCLFCLFCLgFn: FCLFCLFCLFCLmF GnF }oFhj FCLFCLFCLFCLFCLFCLFCLwFAffxFMyFSFOP{Fr |F \I}F!pǂ~F#]F&CtFPF[FS~ ~FUOPFX_ |FZCLF]GޯF_JF`HFcLLuFeCLtFfCLFidR FjnT Fkkw 5FmMR6FnLFpCLFqCL:FsE;FtFzNF/ixB F0ixB F1IF3EF5{*$F6@ F9OF;IFFSا?FI@FGAFJ3FOPDFvv EFH?FF FGF R;F f&gFi Fc3FG/Fb' F_ FAZFB!FDCL FECLFFCLFHa FLCLFNy FO: FPD- FQxWc FRAXd FSz$ FVCLFWCLFYCLFZCLF[CLF^F<F_IFb|5! Fdn)Fg]OFiz)B Fj{/9 Fkr| Fnr FqGeqFrVFsI.FtH$RFvB^ FyRF}| F~D4KF}I FMiP Fh7w F_FOS3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFL&FH|FHFH FJ33FJ33}eFRYñ}fFim3 ^ ^ MFwWw NFCv`OFJxPFGpQF[RFN_SFoI TFHVFmt< XFDsYFKB[F8\FY^F cO_F!t `F#B KaF%|bF&#cF'xF)CLF*CLF+CLgF-n& F/CLF1CLF2CLF3CLmF6G32nF9}oF:g FJSU?JI@JGJAJJ>JOPDJv EJHFJFGJReJgJjJd3JEJ_aJBFJa J`b JA JAf!J CL J CLJ CLJg JCLJx0 J~# JC4Jwt JK JzT JCLJCLJCLJ CLJ!CLJ$FJ%IEJ(|C J*nJ-]OJ.y] JX{ JYr| J\nlJ_G_J`WYJaHJbHYJdB JgR)Jk|oQ JlDJm}T JnV? Jqg Jr_fJsQ6fJt^JuCLJwCLJxCLJyCLJzCLJ}OPJOPJCLJCLJLGJHJH(JHGJJ.JJ.}eJ\I}fJ,n ^ ^ MJv NJCkOJKcPJGBbQJZRJOkSJo; TJH)VJl,7 XJDfYJK[JՐ\JWU^Je'_Juq `JAaJ|bJ@ cJyJCLJCLJCLgJn JCLJCLJCLJCLmJ"GnJ%}4oJ&f J(CLJ)CLJ*CLJ,CLJ-CLJ.CLJ/CLwJ2QxJ3J4yJ4R)J5OP{J9nUU |J;\P}J]JACJBFhJE~l^ ~JHOPJK\& |JMCLJPGlJQI֍JRH!JVPuJXCLtJYCLJ[g 7 Jo JkC 5JM%E6JL\JCLJCL:JE2;JQpNOJrN PJp QJBMRJL TJKUJLaUVJIJOPJCLYJEZZJAqJOPJCL]JvJT ~?JI@JGAJJ:JOPDJ!v EJ#H=FJ$F1GJ%R%J(iJ)m3J*fɚJ-D J.`̬J/B^J0aD J1_+ J2A^vJ4AL!J7CL J8CLJ9CLJ;`x J>CLJ@x# JA~# JCCμJDw4 JETvJFz JICLJJCLJKCLJLCLJNCLJyFJzI^J}|& Jn/J]OJyN Jz Jr| Jm3JGR^JVJHMJHJB JRk}J|oQ JCJ|& JL} JhD J`JQ6fJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJL6JHFJHJHJJ.JJ.}eJEEQe}fJ[pv ^ ^ MJu_ NJCeOJJ PJG&QJYMRJO4SJo TJGVJkr XJ D^YJ JT[J l\J\^Je_JuG `JAPgaJ|bJ@4cJ{=qJBCLJCCLJDCLgJFn JHCLJICLJJCLJKCLmJOFEnJR}oJSe, JUCLJVCLJWCLJXCLJYCLJZCLJ\CLwJ_|QxJ`L#yJaR#JbOP{Jel |Jg\F}Jhoi~Jk]JnC|kJoF(Jrt ~JtOPJw][~ |JyCLJGJIJHHJHGuJCLtJCLJiX JoV Jkn 5JM=6JLGJCLJCL:JE;JR.h9JAv:JCvFf;JDtgJGTg2?JHI@JIGnAJJJJKOPDJNv EJOH=FJPFNGJQR$'JTiəJUlJVfJYB{JZbPJ\AJ]a- J^`S J_AAhJ`A:%!JcCL JdCLJeCLJhfE JkCLJmwQ? Jn}: JoC=Jvt JJy{ JCLJCLJCLJCLJCLJFJIJ|5! JnOJ]OJx0 Jz % Jr| JpffJG@3JS MJHJHMJB JS J|oQ JC:J| JU9 Jh JaJQ6fJ^JCLJCLJCLJCLJCLJ OPJ OPJ CLJ CLJ LY J HJ HJ HJ J33J J33}eJp}fJsj ^ ^ MJ .u NJ 0CbhOJ 1KtPJ 2FQJ 5YiRJ 6O_SJ 7o TJ `G]gVJ bjǫ XJ cD~XYJ eJ[J f*n\J gZn^J jb_J kuc `J mAaJ o}(bJ p@)cJ qzJ sCLJ tCLJ uCLgJ wnk[ J zCLJ {CLJ |CLJ }CLmJ F(nJ }fgoJ dR J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ {zxJ HfyJ PGJ OP{J k |J ]}J p( ~J ]J CZzJ FKJ uD ~J OPJ ^S |J CLJ GJ IYJ H J OLuJ CLtJ CLJ j/ J o?} J kn 5J M 6J L9>J CLJ CL:J D;J Q$J xTM?J yI%@J zGScAJ {JqXJ |OPDJ wB EJ H FJ FkGJ R]J nJ r`J kgJ AgJ ^%J AJ b J ` J AJ @!J CL J CLJ CLJ _+ J CLJ vI J }T J CJ u} J ͘|cJ y J CLJ CLJ CLJ CLJ CLJ FJ IJ {a J n^J ]J x J z % J r| J s#3J G$J SJ HJ H|J BxR J RfqJ !|j J #CJ $|` J %LLJ J (hj J )`J *Q6fJ +^J ,CLJ .CLJ /CLJ 0CLJ 1CLJ 4OPJ 5OPJ 8CLJ 9CLJ HJ ?HJ CJ33J FJ33}eJ P}fJ t ^ ^ MJ u NJ C\OJ KgfPJ FQJ XRJ OSJ n TJ G#/VJ j* XJ DlTYJ JwV[J c\J [l^J e_J u `J @TaJ {bJ @)cJ zJ CLJ CLJ CLgJ n4 J CLJ CLJ CLJ CLmJ FnJ }s4oJ cӅ J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ zxJ K\)yJ P8RJ OP{J k"# |J [}J q!~J ]J C<J F,J y{ ~J OPJ \TQ |J CLJ GJ IMJ HJ H uJ CLtJ CLJ k J o{ J k 5J L6J L8UJ CLJ CL:J D;J QlJT7?JIr@JG4}AJJ^JOPDJwQ? EJHTFJFGJRhJhJl4Jf3J@Jb|JAMZJbTF J` J@J@b!JCL JCLJCLJe JCLJvY J} JC Ju JNl Jyz JCLJCLJCLJCLJCLJ FJ IiJ{a Jn7J<]J=w3 J>yz J?rmy JBpJEGJGWJHHJIHJKBs3 JNQ[JQ| JRCJS|5! JTU7 JXhb" JY`,JZQ6fJ[^J\CLJ]CLJ^CLJ`CLJaCLJdOPJeOPJgCLJhCLJlLJmHJnHJoH JrJ33JsJ33}eJ`A}fJ u ^ ^ MJwt NJCVOJKPJFrwQJXoRJOSJn TJFVJi XJDHOYJJ@[Jǰo\J]""^Jc _Ju `J@!aJ|*bJ~gcJyJCLJCLJCLgJnD JCLJCLJCLJCLmJ F^ynJ }oJb JCLJCLJCLJCLJCLJCLJCLwJvxJMyJQ\JOP{J jUV |J"]%}J#n~J&]J)CJ*FtXJ-|R8 ~J/OPJ2\TQ |J4CLJ8GaJ9IJ:HzxJ=KuJ?CLtJhCLJkl Jlo Jmk 5JoLW6JpL*JrCLJsCL:JuD|;JvPNJO\OJs PJt' QJCRJKWTJK`<UJLVJI5JOPJCLYJEdZJAJOPJCL]Jup ^J\JOPJCLaJQDJOPJCLdJHJOPfJ^JCLhJG-aiJQJOPkJXc lJe mJenJBoJfkpJb\ qJ[ rJ]Q sJM8ktJLw0uJDRJOPJCLxJ)b yJOirzJJ3JOPJCL}JIk~JL$PJKJDJOP~JCLJB JixB JixB JFRJ0J3J1H/J2ixB J3ixB J4IJ5EJ7{J8@ J;PJ=I~J>LJAr JCM JFEVJGLvJI@JKPBJLLJOo^ JQM:JTEʘJVCLJYEJZoНJ[OPJ]CLJ^CLJ_CLJaCLJbCLJcCLJdCLJgYgJhNgJicVgJjGHJkkHJGHJCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJMJCLJCJCLJCLJw_ JCLJCLJCLJOP$JL9>%JI&JIf_JCL*JM,JU(JOP.JKJCLJCLJOPJCL3Jp݃4JAu6JEL7Jm8Jrs39Ju:Jo;JtgJT?JIX7@JGRAJJSJOPDJ x# EJ HTFJ FGJ RXJjJnJg3J~t JaȤJA JbTF Ja< J@bJ@u!JCL J CLJ!CLJ#_ J&CLJ(u} J)} J*ByJ+u J-N9 J.y@Y J1CLJ2CLJ3CLJ\CLJ]CLJaFJbIJe{/ Jgn&Jj]Jkw| Jly@Y Jmrmy JpnJtFJuX"CJvJWNJwHJyB J|Q(J| JCJ{ JM JhQ J`JPJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJKJHJHJHJJ.JJ.}eJ-_4}fJkw! ^ ^ MJvn NJCOOJL#PJFYQJX BRJOSJn TJFVJhJ XJD$JYJJf[J&\JY.^Jc7_Ju `J@1aJ%{\*bJ&}cJ(w4J*CLJ+CLJ,CLgJ.n4 J0CLJ1CLJ2CLJ4CLmJ7FHnJ:~<oJ;b J=CLJ>CLJ?CLJ@CLJACLJCCLJDCLwJG|xJHL34yJIQJJOP{JMi |JO\G}JQqH~JS]JVBJWFMfJX@(~JYOPJ]\E |J_CLJGJH-JHn*JMCuJCLtJCLJmF Jo Jk 5JL`6JLJCLJCL:JDQN;JO3FJy\GJfHJN LJgMJ[NJNROJs PJt[ QJDRJKUTJK7<UJLVJIJOPJCLYJE9[ZJAJOPJCL]Jt4 ^J\-dJOPJCLaJPkJOPJCLdJGJOPfJ^JCLhJF5iJP.JOPkJXɌ lJ Z(mJ [nJ AHoJfpJ]# qJW rJZ\) sJM.ctJLeuJD]JOPJCLxJ^ yJRzJJJOPJ!CL}J#I~J%KJ&K^J'D$JPOP~JRCLJTB JVixB JWixB JYETJZJBUJ[HdJ\ixB J]ixB J^JwJ_EJa{lJb@ JePJgIwJhLJkr JmM JqEVJrTJs@\(JuPBJvLJyo^ J{M<#J~EʘJCLJEuJpTJOPJCLJCLJCLJCLJCLJCLJCLJXJPgJlgJGHJkHJGHJCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJMJCLJCmJCLJCLJv JCLJCLJCLJOP$JL0#%JI:&JGJCL*JL,JTHJOP.JJKJCLJCLJOPJCL3Jp4JAu6J"@7J#k8J$i9J&tD:J(vf;J)tyJ,T?J-I=@J.GAJ/JWNJ0OPDJ3w EJ5HFJ6FGJ7R1J9i4J;ngJNU ?NI'@NF>ANK NOPDNvI ENG:FNF@GNRH.NgYNlN,eS3N/zK N0c N1@NN2b N3bTF N5@`2N6^ !N9CL N:CLN;CLN=_ [ N@CLNBu ~ ND~ NEB\NFt/ NHL<NKx NNCLNOCLNPCLNRCLNSCLNVFXNWI`NZ{ N\mN_]{Navt Nbxo Ncr^ NfrNFONUҕNkNHNB NQN}X NC{N{ NM Nh" N`s3NQN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNKlNHNHDNGNJ.NJ.}eNHE}fJw ^ ^ MNw NNCGOONLPNF$QN WSmRN OBSN@TNF:BVNh~ XNDHYNI =[No\NW^Ne|_Nvr `NAaNybN|cNx\*N!CLN"CLN#CLgN'm N)CLN*CLN+CLN,CLmN/FnNZ}goN[a N^CLN_CLN`CLNaCLNbCLNcCLNdCLwNg}xNiK\yNjONkOP{Nni |Np^ }Nqo~Ns]NvB<NxFNy@;~NzOPN}Z |NCLNGyNHcNHY+NP8uNCLtNCLNmbN No33 Nk 5NL^6NLNCLNCL:NCB;NN NNu>ONu ~ PNv4 QND_RNK TNJUNKVNH2NOPNCLYNDZNAt@NOPNCL]Ns ^NZ!NOPNCLaNPNOPNCLdNGN OPfN"^N#CLhN%FiN&O>N(OPkN)Xz lN*NffmN+KnN,@qoN/fNpN1]\ qN2UQ rN3Y=q sN4M tN5LEuN6DjN7OPN9CLxN;: yNNOT?NPI@NQFANRM<NSOPDNVy ENWGFNXFz^GNYR<N]liN^qgN_j<N`xv NdaNe@nNfb Nga Nh@4Nic !NlCL NnCLNoCLNqdM NtCLNvtY Nw~] NxANyt N{Lv N|x NCLNCLNCLNCLNCLNFNICN{ NmN]Nvt Nx NrA No,NF~NWAQNy%NI/NB NP N} NCμN{in NU( Nh N`\NQ6fN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNKYKNHNH,NG-NJ(NJ(}eN{^}fNw܃ ^ ^ MN2v& NN5CGOON6L;PN7FQN:WRN;OʅSNh XN@DHYNBH[NCs\ND]^NGb_NHvG `NJCaNKzW bNM}fgcNNxNxCLNyCLNzCLgN}mmI NCLNCLNCLNCLmNGqnN}4oNa NCLNCLNCLNCLNCLNCLNCLwNAxNPffyNNǮNOP{Nh |N]}No;Z~N]NC7NG 6N| ~NOPN\E |NCLNGnNHNHugNFuNCLtNCLNm Nn/ Nk7L 5NLS6NKNCLNCL:NC;NKACLNAOPNCCL3Nnp.4NpAu6Nrw@7Ns^ 8Nt_39Nws5:NyuS3;Nz{FfN}Ts?N~I@NFANONOPDN} ENGgFNFpcGNRrNg33Nl Nd3NzD N_UN@K;Nc!( Nbq N@N~; !NCL NCLNCLN_v NCLNt[ N NA/Ns NK1 Nxe NCLNCLNCLNCLNCLNFeNI+KN{w NmN]{Nu NxWc Nr3 No|NF[nNV͒N@NJ]NB@ NPN}h NCN{/9 NL Nh{ N`9NQ9N^NCLNCLNCLN CLN CLN5OPN6OPN9CLN:CLN=K1CN>H/N?HtN@GNDJ(NEJ(}eN^lo}fNxdH ^ ^ MN_v}K NNbCHONcLPNdEKQNgVRNhOSNiAAhTNjEۚVNkgň XNmDHYNoH[N+\NX^NdG_Nvc `ND"aN{RbN}cN{RNCLNCLNCLgNm NCLNCLNCLNCLmNH/nN}4oN`( NCLNCLNCLNCLNCLNCLNCLwNAxNKLyNRaHNOP{Nh"# |N\}Nr*~N]NCNGNw ~N OPN ]d |N CLN Gd N HVN H2N MOuN CLtN CLN n{ N n N j 5N Ly6N KډN CLN CL:N C:;N IbN I"N C\N OP~N CLN At@N ixB N ixB N EN JBUN H N ixB N ixB N JBUN EN {o]N EVN ON IN LN r N M N EVN QN N NyN M N o^ N MN EʘN (CLN +EN ,rmN -OPN /CLN 0CLN 1CLN 2CLN 3CLN 5CLN 6CLN 9^PN :YgN ;lgN MHN @CLN ACLN BCLN DCLN ECLN FCLN GCLN H]N ICLN JCLN KCLN MM<N OCLN QCN SCLN TCLN VuZ N YCLN ZCLN [CLN ]OP$N ^K%N _IY&N bLN CL*N L0,N U$N OP.N J`N CLN CLN OPN CL3N p4N Au6N c37N V8N R 9N s5:N qy;N t3N T]?N Hd@N F.AN Q{N OPDN 7 EN G FN FlGN QN iN m3N fN w N cV}N @N c>k N b. N : N ~l^ !N CL N CLN CLN c/ N CLN s N )b N A/N s8 N U!WN x+ N CLN CLN CLN CLN CLN FrN IN {Z N m\N ]{N u N xt N r$ N nVfN F6;N U2N BN !K@%N #B N &PN *~ N +CN Tz N UR3 N Xh&f N Ya6fN ZQN [^N ]CLN ^CLN _CLN `CLN aCLN eOPN fOPN hCLN iCLN lK <N mHFN oHN pG5N sJ(N tJ(}eN E}fN x ^ ^ MN vw NN CAON L4PN EQN V{RN O SN pӖ TN ExVN gE+ XN D GYN H[N DZ\N _X^N c _N vr `N D1AaN {bN cN {ǯN CLN CLN CLgN mZ N CLN CLN CLN CLmN HWnN }goN `M9 N CLN CLN CLN CLN CLN CLN CLwN { xN N\)yN R34N OP{N !h |N #\}}N $rE]~N &]N )CN +F(N .~; ~N 0OPN 3]>? |N 5CLN 8GNXN :H2N ;HTN >IuN @CLtN ACLN Dno N Eo8 N Fk$ 5N HLg6N IKN KCLN LCL:N NC.;N OGSCN T?N H@N FHAN SJN OPDN r EN GFN FjGN Q"NiiNm33Nf|Nx/ Na/rN NcjS Nb NU N}~ !N CL N!CLN"CLN$_ N'CLN)sF N+' N,AAhN-s N/mN2w N5CLN6CLN8CLN9CLN:CLN=FN>HNA{/9 NCm0NF]{NHu6 NIxWc NJrY NuoٚNxFRNyS?FNzCN{L3N~B NRj N~OI NCNz[ NOO Nh NalNQ9N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNJ NHNHŨNG}NJ(NJ(}eN/S}fN DyO ^ ^ MNuK NNCCONL%PNE3QNVhRNOSNo TNEVNg6 XNCEYNH[N'\NR:P^NazZ_Nv `NBaN}fgbN{cNy*N CLN CLN CLgNm= NCLNCLNCLNCLmN?GnNB}oNC_J NECLNFCLNGCLNHCLNICLNJCLNLCLwNO|34xNPIyNQSW NROP{NUh |NW^ }NXoO~N[]N^CɰN_FFNb{ ~NdOPNg[T |NjCLNmG1ONnHNoHY+NrJԝuNtCLtNvCLNo/ No9X Nk\) 5NLWN6NKNCLNCL:NCpi;NF4GGxN?ixB NhixB NiJ_CNjENl{NoEVNqONsIHWNtLNwr NyLN|EVN}O/N~NNyNM No^ NMNEʘNCLNENqNOPNCLNCLNCLNCLNCLNCLNCLNYgNNgNcVgNGHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNMNCLNC$NCLNCLNy NCLNCLNCLNOP$NKa%NIt&NJlNCL*NK6,NVyNOP.NI@NCLNCLNOPNCL3Np4NAu6NkS37N]8NX9N2sB:N4qL;N5tffN8T?N9H@N:FAN;SN' EN@G}FNAFi"GNBQЎNFiLNGm3NHfNIwq NL_ NNy NOcн NPc>k NQ~; NR}u% !NUCL NVCLNWCLNZat N]CLN_srb N`},l NaA{NbrE NdNgw3 NkCLNCLNCLNCLNCLNG lNHN{ Nm*<N]Nup Nx:D Nq Nr3NELNRND"NMBNB NQuN~ NCNz NO Nh N_ffNOfN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNJNHFNHNGNJ#NJ#}eNdP#}fNy? ^ ^ MN uK NN"CHON$LjPN%EptQN(VB#RN)PSN*o7 TN+EQ:VN,fK XN.CFYN0GC[N1R\N2\^N]c!_N^v `N`BJaNa|BbNcQcNdzNfCLNgCLNhCLgNkm+ NmCLNoCLNpCLNqCLmNtGBnNw}ɚoNx__ NzCLN{CLN|CLN~CLNCLNCLNCLwNw(xNK=qyNRpNOP{Ng |N]H}Npn~N]NCNFN@W~NOPNY |NCLNGNHNH9QNN@uNCLtNCLNoD NoV Nkn 5NLO6NK0NCLNCL:NC=;NQF^N?CLhNAEiNBW NDOPkNFV lNGQ=qmNHPnNI@oNLepNN]p qNOW rNP\ sNQLWtNRL>uNSD|NTOPNVCLxNX yNYP2zNZI=N\OPN^CL}NI=~NJ'NINCNOP~NCLNAt@NixB NixB NETNJ%gNGxNixB NixB NJmNEN{2NEVNONIHWNLNr NLNEVNLvN`NNyNM No^ NMNEʘNCLNENqNOPNCLNCLNCLNCLNCLNCLNCLNYgNYNrfNGHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NCLNCLN CLN MN CLNCɪNCLNCLNz NCLNCLNCLNOP$NKo%NIo&N P8N#CL*N&K^,N'V[=NPOP.NQIzNSCLNTCLNWOPNXCL3N[pz4N]Au6N`wS37Nam8Nbg39Nds :Nf{l;Ngw,NjT?NkH'@NlFANmTKNnOPDNo@TENpGFNqFfjGNrQuNvgFgNwjFfNxd34NyvX N|cqN}D Nd Nc N~ N} !NCL NCLNCLNa NCLNs T N| z NANrN NMm Nw NCLNCLNCLNCLNCLNG;NHN{LS Nm,_N]Nu' Nx# Nq۔ NoNENX|NDC=NN4NB NP/N~' NDNzr NRy Nhȉ N`NQ|N^NCLNCLNCLNCLNCLN!OPN"OPN%CLN&CLN)JN*HvN+HNN,GUN0J#N1J#}eN_}fNznd ^ ^ MNKv4 NNMCMONOLv`PNPESuQNSV/%RN|PCSN}o TN~EIVNf XNCFYNG[N\NUx^Nc__Nv `NAaN}bN~ cNyNCLNCLNCLgNm' NCLNCLNCLNCLmNFnN}goN_Ql NCLNCLNCLNCLNCLNCLNCLwNwxNKyNRNOP{Ng"# |N]}No~N]NC_NF[N@[~NOPNY |NCLNGzNG9NH-NH(uNCLtNCLNp No NkI 5NLG6NKGNCLNCL:NBM;N Q$!ONFw PNGy1 QNHE RNIJXTNKIUNLJ=VNMGNNOPNPCLYNRDZNS@NUOPNWCL]NYr1 ^N[]pN\OPN^CLaN`PNaOPNcCLdNeGXNgOPfNi^NjCLhNlDiNmVNoOPkNpVe lNrR33mNsQGnNtA3oNwepNyak qNz\ rN{` sN|LPtN}K uN~D}NOPNCLxNc yNMzNI NOPNCL}NI(-~NJ|NHʈNCSNOP~NCLNA^vNixB NixB NENJ%gNGNixB NixB NJmNEN{~N@ NO/NI~NLNr NLNEVNQN@NMvNM No^ N MNEʘNCLNENpNOPNCLNCLNCLNCLNCLNCLNCLN"YgN#XN$pN%GHN&kHN'MHN)CLN+CLN,CLN-CLN.CLN/CLN0CLN1]N2CLN3CLN5CLN6MN8CLN;CaNRlCLRlCLRlOPRlCL3Rlpf84RlAu6Rll37Rlhff8Rl ]9Rl#r:Rl$p;Rl%uRl(T?Rl)HQ@Rl*FARl+U Rl,OPDRl-@vERl.G{FRl/FjGRl0QoRl3iVfRl4l`Rl5f&gRl6vl5 Rl:aeRl;! RlddTj Rlec_ Rlf~24 Rlg|j !RljCL RlkCLRlmCLRlo`׬ RlrCLRltrn Rluz RlvAeRlwr]\ RlzRl}wQ? RlCLRlCLRlCLRlCLRlCLRlGRlHضRl{Z Rlm&Rl]Rlu65 RlxH Rlq RlnvfRlEzRlTneRlCʄRlOMRlB RlQaRl O RlDRlzF^ RlN5 Rlhb" Rl_fRlQ9Rl^RlCLRlCLRlCLRlCLRlCLRlOPRlOPRlCLRlCLRlJzyRlHRlHfRlGRlJ(RlJ(}eRlzW}fNz ^ ^ MRl4vn NRl6CUORl7L4PRl8E0QRl;V(RRlEQ:VRl@fo> XRlACGYRlCGY*[RlD|u\RlEZg^RlHdk_RlIw `RlLAaRlM}{bRlN}{cRlOzuRlQCLRlRCLRlSCLgRlVm/ RlYCLRlZCLRl[CLRl\CLmRl_FnRlb}oRlc_fg RleCLRlgCLRlCLRlCLRlCLRlCLRlCLwRlyQxRlKyRlRRlOP{Rlg"# |Rl]*}Rlsi~Rl]RlC>NRlFoLRl@f~RlOPRlZ |RlCLRlFhRlG0RlH#RlOpuRlCLtRlCLRlp Rloƨ RlkO 5RlL#c6RlKURlCLRlCL:RlB;RlPTCRlUT›?RlVH@RlWF ARlXURlYOPDRlZ@ERl[GFRlFjGRlQRlefgRlhS3RlbRlu̇ Rl_cHRl~y Rld RldE Rl} Rl|& !RlCL RlCLRlCLRlb  RlCLRlr Rlz RlBRlrz Rl!Rlw% RlCLRlCLRlCLRlCLRlCLRlGRlH@Rl{LS RlmRl]Rlt Rlx+ Rlq7 Rlr RlERlS;RlCjQRlORlBQ RlRxtRlFv RlDRlz RlT Rlhn Rl`iRlQ@Rl^RlCLRlCLRl CLRl CLRl CLRlOPRlOPRlCLRlCLRlJYRlHRlHfRlGRlJ(Rl J(}eRlwh }fRl{l ^ ^ MRlcu NRleCY#ORlfKXPRlgE:QRljVRRlkP'9SRllouq TRlmE_VRlof XRlpCpIYRlrG[Rls\RltX.^RlwfG_Rlxw9 `RlzA)waRl|}bRl}~>cRl~zRlCLRlCLRlCLgRlm RlCLRlCLRlCLRlCLmRlFnRl}oRl_{c RlCLRlCLRlCLRlCLRlCLRlCLRlCLwRl|xRlJyRlR)RlOP{Rlg33 |Rl^}Rlo~Rl]RlC%RlFRl{ ~RlOPRlZ |RlCLRlFRlG1RlH'7RlFuRlCLtRlCLRlp Rloj RlkI 5RlKE6RlKRRlCLRlCL:Rl BE;Rl!OOPRl@CLYRlBEZRlC@bRlEOPRlGCL]RlIqt ^RlK]|2RlLOPRlNCLaRlyP8RlzOPRl|CLdRl~GCRlOPfRl^RlCLhRlDiRlURlOPkRlV lRlQmRlO\nRl@oRldpRl\ qRlV rRlZff sRlL-tRlKuRlDyRlOPRlCLxRl}I yRlQ'lzRlHRlOPRlCL}RlI~RlJRlHW;RlCRlOP~RlCLRlAKRlixB RlixB RlF!ORlJRlGRlixB RlixB RlJ|1RlERl{RlEVRlORlIrRlLRlr RlKARlEVRlORl~RlNyRlM Rlo^ RlMRl@LRlCLRlERlqRlOPRlCLRlCLRl CLRl CLRl CLRl CLRl CLRlYpRlR33RlavgRlGHRlkHRlMHRl@CLRlACLRlBCLRlCCLRlDCLRlECLRlGCLRlH]RlICLRlJCLRlKCLRlLMXRlNCLRlQCRlSCLRlTCLRlVv RlYCLRlZCLRl[CLRl]OP$Rl^K[%Rl_IaX&RlbJWRleCL*RlgJw,RlhXNRliOP.RljIظRllCLRlmCLRlpOPRlrCL3RlupB4RlvAu6Rlyl7Rlz`g8Rl{c9Rlr:Rlq;RluRlT?RlH@RlFARlVRlOPDRl@ERlGFRlFjGRlQw/RlciRlfRl`s4RluN Rlc`Rl~y Rld Rld Rl} Rl{H !RlCL RlCLRlCLRl` RlCLRlrE Rlz RlB1 Rlrs RlA Rlv RlCLRlCLRlCLRlCLRlCLRl GRl HRl {Z Rlm;NRl]RltY Rlx Rlq Rlq@RlEeRlVRlARlPRl!B Rl%PSRl(c Rl)D- Rl*y Rl+NO Rl.h Rl/`9Rl0PRl2^Rl3CLRl4CLRl5CLRl6CLRl8CLRl;OPRlCLRl?CLRlBJ9RllH5RlmHRlnG-RlqJ(RlrJ(}eRlYM}fRl{] ^ ^ MRlu NRlCY#ORlKRPRlDQRlU_RRlP.ZSRlo; TRlEn\VRlf} XRlCULYRlF@[Rl \Rl["^Rlf_Rlwr `Rl@aRl}ubRl~\*cRl{RlCLRlCLRlCLgRlmm RlCLRlCLRlCLRlCLmRlF{nnRl}oRl_{c RlCLRlCLRlCLRlCLRlCLRlCLRlCLwRlAxRlK>yRlRRlOP{RlgUV |Rl_d}Rls~Rl]RlCiRlFRl| ~RlOPRl Z |Rl4CLRl7F&Rl8GRl9HRlCLtRl@CLRlBp RlCo RlDkV 5RlFK6RlGKKRlICLRlJCL:RlLCSc;RlMM2YRl Txy?Rl H@Rl FiARl URl OPDRl @ERl GFRl F_)GRl QSRl e,Rl hpRl bfRl tf Rl aRl @ Rl d Rl e Rl },l Rl {in !Rl CL Rl CLRl CLRl b Rl CLRl r Rl z Rl AfRl r Rl (J Rl )v( Rl ,CLRl -CLRl /CLRl 0CLRl 1CLRl 4G$Rl 5IsRl 8{ Rl :m;NRl >] Rl ?tY Rl @x:D Rl Aquq Rl DoVfRl GEC<Rl HWRl IURl KQ#Rl MB# Rl PPVRl S: Rl TD;Rl Uy{ Rl VU Rl YhQ Rl [`VfRl \Oc3Rl ]^Rl ^CLRl _CLRl `CLRl bCLRl cCLRl OPRl OPRl CLRl CLRl JRl HRl HRl G\Rl J(Rl J(}eRl (]oM}fRlB{: ^ ^ MRl Tv4 NRl VCRORl WKPRl DsQRl U۔RRl P#SRl o TRl En\VRl f XRl CCOYRl F[Rl .\Rl ]DD^Rl d_Rl w8 `Rl @aRl }fgbRl pcRl y\Rl CLRl CLRl CLgRl mIO Rl CLRl CLRl CLRl CLmRl FRnRl |goRl _Ql Rl CLRl CLRl CLRl CLRl CLRl CLRl CLwRl BRxRl KyRl RRl OP{Rl g |Rl ^w}Rl r8~~Rl ]Rl B߮Rl FZbRl ~; ~Rl OPRl ZTj |Rl CLRl FRl G]Rl HRl NkuRl CLtRl CLRl q Rl p Rl kz 5Rl K6Rl K4Rl CLRl CL:Rl C:;Rl KgKRl JwRl G`Rl ixB Rl ixB Rl J|1Rl ERl {Rl EVRl PCRl IRl LRl r Rl K/qRl EVRl SRl}ȈRlNURlM Rlo^ RlM^Rl@RlCLRlEcRlsCRl OPRl"CLRl#CLRl$CLRl%CLRl'CLRl(CLRl)CLRl,YgRl-Y3Rl.lgRl/kHRl0@Rl1kHRl3CLRl5CLRl6CLRl7CLRl8CLRl9CLRl:CLRl;]RlCLRl?CLRl@MRlBCLRlECҶRlGCLRlHCLRlIv RltCLRluCLRlvCLRlyOP$RlzK;D%Rl{IQl&Rl~PRlCL*RlI,RlXRlOP.RlJRlCLRlCLRlOPRlCL3Rlo4RlAu6Rlwٙ7Rlf98Rl`39Rlrv$:Rloy;RltyRlT?RlH@RlFUARlVRlOPDRl@ERlG4FRlFVGRlQ;YRll Rln3RlhRls Rl`|Rl~ Rle Rle Rl| Rlzu !RlCL RlCLRlCLRlc[ RlCLRlr RlDXRlALRlr# RlMi Rlvt RlCLRlCLRlCLRlCLRlCLRlG pRlI\Rl{LS RlmHRl] Rlt4 RlxH RlqXB Rl nfRlERlWORl}'RlRRl XRlC^KYRlF|[Rl \Rl[^Rlf)_RlwG `Rl@1aRl~zbRl@cRlxǯRlCLRlCLRlCLgRlm! RlCLRlCLRlCLRlCLmRlF9anRl}oRl_

Y?Rl?ARljCLRlkCLBRlmvW CRlnODRloC ERlq~FRlr~GRlsfHRltKԼ LRluDGMRlv@NRlwR ORlzy PRl{z[ QRl|E]RRl}ITRlHjURlJ2VRlG9RlOPRlCLYRlCBZRl@QRlOPRlCL]RlpPL ^RlZt*RlOPRlCLaRlO<RlOPRlCLdRlFݱRlOPfRl^RlCLhRlDiRlR2RlOPkRlT lRliffmRlfnRlB8RoRlclpRl\ qRlWp rRlY sRlL-tRlKuRlD71RlOPRlCLxRl~24 yRlMs3zRlHs<RlOPRlCL}RlHa~RlI}{RlGaRlCRlOP~RlCLRl@RlixB RlixB RlF[GRlJwRlG`RlixB RlixB RlJ|1RlERl{eyRlEVRlORlIMRlLRl0r Rl3KCuRl6EVRl7QRl9~Rl:N®Rl;M Rl>o^ Rl@M^RlA@ǠRlCCLRlFERlGpTRlHOPRlKCLRlLCLRlMCLRlNCLRlOCLRlPCLRlQCLRlTYgRlUNgRlVlgRlXGHRlYkHRlZMHRl\CLRl]CLRl^CLRl_CLRl`CLRlaCLRlbCLRld]RleCLRlfCLRlgCLRlhNIRljCLRlCTRlCLRlCLRly# RlCLRlCLRlCLRlOP$RlK3%RlIP&RlNDRlCL*RlIЍ,RlX>IRlOP.RlJVRlCLRlCLRlOPRlCL3Rloe4RlAu6Rl@Ff7Rlls38RlgY9Rlrn:Rl}f;RlyRlT0?RlHU@RlFmARlW5RlOPDRlA1nERlGFRlF\pGRlQK5Rlj RllRlffRls@ Rl_Rl~ Rle/ Rle Rl|` Rlz$ !Rl CL Rl CLRl CLRl^ RlCLRlr RlDVRlARlr RlD Rlvv RlCLRl CLRl!CLRl"CLRl$CLRl'GyRl(HRl+{LS Rl-mJ=Rl0] Rl1t Rl2x+ Rl\q; Rl_oٚRlbEXRlcTRld{RleR RlgB# RlkR2RllBqRlmKrRlpy RlqN Rlthww Rlu`RlvP3Rlx^RlyCLRlzCLRl{CLRl|CLRl}CLRlOPRlOPRlCLRlCLRlIڊRlHRlH RlGҥRlJ#RlJ#}eRlD}fRl2|F ^ ^ MRlw+ NRlCRORlKE+PRlDQRlURRlP@.SRlo TRlE,VRlfR XRlBvYRlF [RlBy\RlY^Rlea$_RlwUU `Rl@paRl@bRlAucRlyRlCLRlCLRlCLgRlmn RlCLRlCLRl$CLRl%CLmRl)FLnRl,}oRl-_'t Rl/CLRl0CLRl1CLRl2CLRl3CLRl5CLRl6CLwRl9A >xRl:K.yRl;UpRlURlJVRlGj8RlOPRlCLYRlCZRl RlOPRlCL]Rlp3 ^RlYyRlOPRlCLaRlNߞRlOPRlCLdRlFRlOPfRl^RlCLhRlCiRlQeRlOPkRlT}3 lRla(mRl^nRlAoRld\pRl_Ǯ qRlYf rRl\p sRlLΫtRlL uRlD[Rl OPRl CLxRl ~; yRlKgzRlHO RlOPRlCL}RlH~RlIVjRlG,RlCMRlOP~RlCLRl@.Rl!ixB Rl"ixB Rl#F[GRl$JwRl%G`Rl&ixB Rl'ixB RlPJ|1RlRERlT{eyRlWEVRlXPRlZI~Rl[LRl^r Rl`LRlcEVRldOpRlf}RlgPBRlhM Rllo^ RlnM^Rlo@ʇRlqCLRltERluoRlvOPRlxCLRlyCLRlzCLRl{CLRl}CLRl~CLRlCLRlYgRlPgRllgRlGHRlkHRlMHRlCLRlCLRlCLRlCLRlCLRlCLRlCLRl]RlCLRlCLRlCLRlM-RlCLRlC<RlCLRlCLRly] RlCLRlCLRlCLRlOP$RlK-%RlIM&RlK8RlCL*RlIŦ,RlXzRlOP.RlKR8RlCLRlCLRlOPRlCL3Rlo4RlAu6Rl@7Rl_g8Rlcs39Rlr,:Rlv;Rlz,RlT[?RlHvj@RlFmARl VRl!OPDRl"AbERl#GFRl$F`GRl%Q/Rl)gRl*jRl+eRl,sZ Rl/c=Rl1~oP Rl2eM Rl3ev Rl4| z Rl5z7 !Rl8CL Rl9CLRl:CLRl=e Rl@CLRlBr1 RlCD%RlDA:RlEq RlFDR RlGvh. RlKCLRlLCLRlMCLRlNCLRlOCLRlRG#RlSH6Rl{Z Rlm^Rl] RltU Rlx Rlq Rlr RlDcRlW6Rl{AsRlSL<RlBn RlQWwRl@.RlD{_Rlyz RlV Rlhs3 Rl`33RlP,Rl^RlCLRlCLRlCLRlCLRlCLRlOPRlOPRlCLRlCLRlI3RlH:RlHRlGuRlJ#RlJ#}eRlF[m}fRl_| ^ ^ MRlv& NRlCIsORlKPRlD,QRlURRlPJSRl TRl E%VRl fDu XRl C[YRlFb[Rl1\Rl]6 ^RldH_Rlwc `RlA DaRl@aHbRlAHcRlyRlDCLRlECLRlFCLgRlIlJ RlLCLRlMCLRlNCLRlOCLmRlRFQnRlU}goRlV_x RlXCLRlZCLRl[CLRl\CLRl]CLRl^CLRl_CLwRlb{xRldIyRleR{RlfOP{Rlif |Rlk]}Rllo~Rln]RlqBVRlsF7Rlt@5R~RluOPRlxY{ |RlzCLRl}FRlGeRlH@RlM@BuRlCLtRlCLRlq Rlp Rlk 5RlKM6RlK_RlCLRlCL:RlF;RlHHRlKZ LRlDGMRl@aHNRlRxRORlz PRl{in QRlElRRlITRlHURlJWVRlGCRlOPRlCLYRlCpiZRlK RlOPRlCL]Rl p^ ^RlYRlOPRlCLaRlNPRlOPRlCLdRlFyRlOPfRl^RlCLhRl CμiRl!PRl#OPkRl$T lRl%bmRl&^33nRl'ACoRl*dpRl,\p qRl-W= rRl.Z. sRl/LtRl0L"yuRl1CRl3OPRl4CLxRl6r yRl8RB~zRl9H9QRl;OPRl=CL}Rl?H/~RlAI5RlBGyRlCCRlDOP~RlFCLVTA+VT ixB VT ixB VT FVT IVT GQVTixB VTixB VTJmVTEVT{VTEVVTOVTHVTLVTr VT LVT#EVVT$P=VT&}VT'P(VT(M VT+o^ VT.M^VT/@DVT1CLVT4EVT5rUVT6OPVT8CLVT9CLVT:CLVT;CLVTdCLVTfCLVTgCLVTjY#3VTkNgVTlcVgVTmGHVTnkHVToMHVTqCLVTrCLVTtCLVTuCLVTvCLVTwCLVTxCLVTy]VTzCLVT{CLVT}CLVT~MVTCLVTCԅVTCLVTCLVTy VTCLVTCLVTCLVTOP$VTK&X%VTIIw&VTIVTCL*VTI,VTXVTOP.VTKVTCLVTCLVTOPVTCL3VTo;4VTAu6VTw37VTef8VTc39VTr:VTuf;VTwVTTl<?VTHo!@VTF=AVTUvVTOPDVTA]EVTGFVTFfjGVTQHVTiVTl&fVTf|VTsC VTaVT~: VTejU VTf(r VT{ VTy !VTCL VTCLVTCLVT_Z VTCLVTq VTEѕVTAHVT,qt VT-NB VT.vK VT2CLVT3CLVT4CLVT5CLVT6CLVT9FPVT:HRVT>{w VT@mVTC] VTDt>u VTEwt VTFqK VTImVTLD7VTNWVTO~HwVTPTAVTRB!H VTUQVTV@=PVTWDgVTZy]w VT\Ok VT_h VT``vfVTaQ3VTb^VTcCLVTeCLVTfCLVTgCLVTCLVTOPVTOPVTCLVTCLVTIVTHVTHVTGMVTJ#VTJ#}eVT-^}fRl|P ^ ^ MVTu NVTCO'OVTK3XPVTDQVTURVTP"SVTATVTEcVVTe XVTC^KYVTFY)[VT\VTZ^VTav_VTwq `VTBraVT{bVTAffcVTy\VTCLVTCLVTCLgVTmY VT CLVT CLVT CLVTCLmVTGBnVT~oVT^ VTCLVTCLVTCLVTCLVTCLVTCLVTCLwVT!}GxVT"JyVT$WVT%OP{VT(fwx |VT*]}VT+q%~VT-]VTXCiVTZFw:VT]~] ~VT_OPVTbYM |VTdCLVTgF7VThGVTjHKVTmIuVToCLtVTpCLVTrq VTto VTukĜ 5VTwK{6VTxKo!VTzCLVT{CL:VT~K;VTFxuVTDQVTOPVT!CLxVT#~ yVT$SYzVT%H#VT'OPVT)CL}VT+H~VT-IVT.GaeVT/CVT0OP~VT2CLVT4A:%VT7ixB VT8ixB VT9FVT:IVT;GQVTixB VT?J_CVT@EVTB{VTEEVVTFOVTHIjVTILVTLr VTNLVTQEVVTRSCVTT}VTVPBVTWM VTZo^ VTM^VT@VTCLVTEVTqVTOPVTCLVTCLVTCLVTCLVTCLVTCLVTCLVTPgVTLfVTeVTGHVTkHVTMHVTCLVTCLVTCLVTCLVTCLVTCLVTCLVT]VTCLVTCLVTCLVTMVTCLVTCmVTCLVTCLVTx0 VTCLVTCLVTCLVTOP$VTK(%VTIE&VTIVTCL*VTIP,VTYJVTOP.VTKVTCLVTCLVTOPVTCL3VTo 4VTAu6VT{g7VT\8VTf9VTra:VT vg;VT zFgVT TD?VTHi@VTFAVTV1VTOPDVTA8EVTG4FVTFgRGVTPVTj VTm VTffVTs+ VT_VT} VT!e VT"f7 VT#{Z VTLy !VTOCL VTPCLVTQCLVTTd VTWCLVTYqˈ VTZEV[VT[AVT\q VT^oeVTav- VTeCLVTfCLVTgCLVThCLVTiCLVTlF*VTmHnVTq{ VTsmbmVTv] VTwt' VTxw VTyp VT|pVTD<VTRVTBVTUVTB{ VTRvKVT@UKVTDVTy@Y VTVҍ VTh VT`VTQ9VT^VTCLVTCLVTCLVTCLVTCLVTOPVTOPVTCLVTCLVTIVTHjVTHkVTGTVTJVTJ}eVT^Q}fVTr|~ ^ ^ MVTvԑ NVTCQKOVTJPVTDQVT"URVT#PCSVT$ATVT%DVVT&e XVT(CEYVT*F-\[VT+1\VT,[C^VT/b _VT0w `VT2D KaVT4~ bVT5AffcVT6yVT8CLVT9CLVT:CLgVT=l VT@CLVTACLVTBCLVTCCLmVTFHnVTI}goVTJ^ VTLCLVTNCLVTOCLVTxCLVTyCLVTzCLVT{CLwVT~zxVTJ{yVTTVTOP{VTf |VT]zH}VTq~VT]VTCsVTFVT@F~VTOPVTZ |VTCLVTFlVTGmVTHVTPJuVTCLtVTCLVTq7 VTo VTj 5VTK6VTKo!VTCLVTCL:VTM;VTOeVT>T?VT?Hd6@VT@FoAVTAVVTBOPDVTCA;EVTlGFVTmFgRGVTnQ VTqigVTrl4VTsfVTup VTxcmVTy}1 VTze VT{f7 VT|{ VT}yN !VTCL VTCLVTCLVT_/ VTCLVTq VTDgVTAZVTqHF VTnVTv VTCLVTCLVTCLVTCLVTCLVTFVTH\VT{ VTm-VT] VTt[ VTx+ VTp VTp\VTD*VTQ2VTBvVTUhVTB&f VTQVT@|VTDVTy1 VTL% VThj VT`fVTR6fVT^VTCLVTCLVTCLVTCLVTCLVTOPVTOPVTCLVTCLVTIwVTH VTHVTGVTJVT J}eVT~}fVT| ^ ^ MVTLv& NVTNCQKOVTOKPVTPDQVTSURVTTPCSVTVp< TVTWDܭVVTXe XVTYCDYVT[F[VT\{\VT]\UV^VTacxv_VTbw9 `VTdCڟaVTe~>bVTfBcVTg|pVTiCLVTjCLVTlCLgVTol VTCLVTCLVTCLVTCLmVTH/nVT}4oVT^ VTCLVTCLVTCLVTCLVTCLVTCLVTCLwVTvQxVTKyVTR\VTOP{VTfwx |VT^# }VTr~VT]VTCVTFgVT@$~VTOPVTZ |VTCLVTFߨVTGXVTH VTFuVTCLtVTCLVTqQ VTo VTkI 5VT K{6VT KHVT CLVT CL:VT N~;VT OtVT ~L\uVT D 9VT OPVT CLxVT ~; yVT O zVT GeVT OPVT CL}VT Hd~VT HܷVT G@VT CVT OP~VT CLVT A:%VT ixB VT ixB VT F?VT JwVT G4VT i VT ixB VT JPVT EVT {~VT EVVT OVT HIVT LVT r VT LVT EVVT LvVT }(VT MQVT M VT o^ VT M^VT @VT CLVT EDVT pVT OPVT CLVT CLVT CLVT CLVT CLVT CLVT CLVT YgVT NgVT cVgVT GHVT kHVT MHVT )CLVT *CLVT +CLVT ,CLVT -CLVT /CLVT 0CLVT 1]VT 2CLVT 3CLVT 4CLVT 6MIVT 7CLVT :CӞVT VT T@?VT HZ4@VT F[AVT UVT OPDVT AEVT GFVT FeGVT PVT i&gVT l9VT f|VT qP VT aVT } VT e VT f& VT z[ VT x !VT CL VT CLVT CLVT dq VT CLVT q VT BVT AW3VT qt VT aVT v4 VT CLVT CLVT CLVT CLVT CLVT FѫVT HVT {Z VT lVT ] VT t VT w VT p VT oVT DxWVT RVT DVT V4VT B&f VT QVT @VT DVT y#; VT U VT gw VT ^VT OPVT ^VT CLVT CLVT !CLVT "CLVT $CLVT 'OPVT (OPVT *CLVT +CLVT WI`VT XHVT YHvVT ZGVT ]JVT `J}eVT a?}fVT|gi ^ ^ MVT {uλ NVT }CMOVT ~K`PVT DZQVT URVT P"SVT of TVT EVVT f' XVT CEYVT F[VT \VT Z^VT d:_VT w9 `VT BڟaVT @ bVT AucVT |{VT CLVT CLVT CLgVT lV VT CLVT CLVT CLVT CLmVT GvnVT }oVT ^ VT CLVT CLVT CLVT CLVT CLVT CLVT CLwVT uxVT IyVT SVT OP{VT f |VT ^}VT q4~VT ]VT CVT F4VT @.~VT OPVT ZTj |VT CLVT "F+VT #GOlVT $H0VT (M$quVT *CLtVT +CLVT -q7 VT .o VT 0k+ 5VT 2Kx;6VT 3K*VT 5CLVT 6CL:VT 9K;VT ;LB)VT @CLVT ACLBVT Cup CVT DVg DVT EBEVT GxFVT H~GVT I|{HVT JKC{ LVT Lp{MVT MczNVT ND8ROVT P{ PVT R|oQ QVT SERVT TIETVT VHDZUVT WIVVT F9VT OPVT CLYVT BZVT r VT OPVT CL]VT o ^VT ]VT OPVT CLaVT OНVT OPVT CLdVT FVT OPfVT ^VT CLhVT CDiVT M.VT OPkVT S lVT rmVT oznVT D.oVT dApVT `W qVT X rVT [ sVT LtVT LeuVT D eVT OPVT CLxVT  yVT LڗzVT GVT OPVT CL}VT HG~VT HfVT G5VT CVT OP~VT CLVT A:%VT ixB VT ixB VT F?VT JwVT GQVT i& VT ixB VT JBUVT EVT {#VT EVVT O/VT IrVT LVT r VT LVT EVVT RVT }(VT MVT M VT o^ VT M^VT @LVT CLVT EaVT pksVT OPVT ICLVT JCLVT KCLVT LCLVT MCLVT OCLVT PCLVT SYgVT TNgVT UlgVT VRVT WG(VT Xj{VT ZCLVT [CLVT ]CLVT ^CLVT _CLVT `CLVT aCLVT b]VT cCLVT dCLVT fCLVT gMVT iCLVT kCɪVT mCLVT nCLVT py VT sCLVT tCLVT uCLVT xOP$VT yK%VT zI>&VT |LaVT CL*VT IzF,VT YVT OP.VT L\VT CLVT CLVT OPVT CL3VT oxD4VT Au6VT b37VT Vf8VT X 9VT sJ :VT v3;VT yVT TZ=?VT HR@VT F~AVT RyVT OPDVT A\EVT GFVT FeGVT PVT g4VT lVT d3VT o VT _UVT }1 VT eT VT g VT zcz VT yz !VT CL VT CLVT CLVT _= VTCLVTq^ VT{/ VTA/VTqHF VTx`VTu VTCLVT CLVT!CLVT"CLVT#CLVT&FVT'HЌVT*{/9 VT-lzVT0]VT1tM VT2x# VT3p$ VT6oVT9D\EVT:SVT XVTD GYVTF״[VT\VT]V^VTd_VTwq `VTBaVT@#bVTBcVT}VTCLVTCLVTCLgVTlt VTCLVTCLVTCLVTCLmVTG,nVT}oVT^ VTCLVTCLVT CLVT CLVT CLVT CLVT CLwVTyxVTJ >yVTS(VT VTdlV 5VTfK}6VTgK"VTiCLVTjCL:VTlG&";VTmJƫEVVT?SVTi}-VTjLkVTkM VTno^ VTpM^VTq@VTsCLVTvE1VTwpVTxOPVT{CLVT|CLVT}CLVT~CLVTCLVTCLVTCLVTYgVTN|VTkyVTMHVTkHVTMHVTCLVTCLVTCLVTCLVTCLVTCLVTCLVT]VTCLVTCLVTCLVTMtVTCLVTCVTCLVTCLVTx VTCLVTCLVTCLVTOP$VTK%VTI>&VTJ)VTCL*VTIq2,VTZqVTOP.VTLGVTCLVTCLVTOPVTCL3VTo]D4VTAu6VTR37VTGS38VTDy9VTsd :VTA;VT|VTT?VTHH@VTF}AVTRVTOPDVTBEVTGFVTFgRGVTPVTRvgVTWVTR)VTof VT2cRVT3}1 VT4e VT5f& VT6z VT8y1 !VT;CL VTVTmOP{VTpg |VTs^Ħ}VTtrO~VTv]VTyCLVTzFKVT} ~VTOPVTY |VTCLVTGVTG^VTH#VTIquVTCLtVTCLVTr VTo VTk 5VTKr6VTK0ZVTCLVTCL:VTEZ;VTI VTQT?VTRH=@VTSFy^AVTTTMVTUOPDVTVB LEVTWGFVTXFfjGVTYPcVT]RVT^W`VT_QɚVT`m! VTdaVTe} VTff VTgg/ VThy] VTiyN !VTlCL VTmCLVToCLVTq_ VTtCLVTvq VTw~s VTxAҩVTyp- VTzCSP VT|uZ VTCLVTCLVTCLVTCLVTCLVTFVTHSVT{ VTlVT] VTtj. VTx# VTp}[ VTqVTDFVTV)VTECVTY-VTB VTP5VT@SVTD3VTx VTMiP VTjs3 VT`3VTT`VT^VTCLVTCLVTCLVTCLVTCLVTOPVTOPVTCLVTCLVTI/VTHVTHVTGtVTJ#VTJ#}eVTzZc}fVT}J ^ ^ MVT3u NVT5CT%OVT6JjPVT7Dl$QVT:UbRVT;P SVTEBVVT?fDu XVT@D GYVTBGz[VTCl\VTD`^VTGex_VTIw `VTJAPgaVTL~ǯbVTMB\)cVTNz{VTPCLVTQCLVTSCLgVT~l= VTCLVTCLVTCLVTCLmVTF-nVT}4oVT^| VTCLVTCLVTCLVTCLVTCLVTCLVTCLwVT|xVTJuyVTR)VTOP{VTf |VT]}VTr/~VT]VTC2VTFVT{LS ~VTOPVT[/ |VTCLVTGEVTGH.VTH VTP8uVTCLtVTCLVTs 7 VTp > VTkR 5VTKx;6VTK9rVTCLVTCL:VTE9[;VTGLDNVTAOVT|& PVT |& QVT ERVT HTVT HUVTI~VVTFӍVTOPVTCLYVTAZVTU VTOPVTCL]VTo ^VTE]VTFOPVTHCLaVTKPbVTLOPVTNCLdVTPFiVTROPfVTT^VTUCLhVTWBiVTXV]VTZOPkVT[S4 lVT\qmVT]lznVT^~f oVTac pVTc_= qVTdWB rVTeYǮ sVTfM/tVThL%uVTiDVTjOPVTlCLxVTn O yVToRݳzVTpGxVTrOPVTtCL}VTvH ~VTxH[VTyGVTzCVT{OP~VT}CLVTAOVTixB VTixB VTFVTJwVTGQVTjb VTixB VTJ3VTEVT{iVTEVVTOVTICVTLVTr VTM VTEVVTLvVT|9VTM8kVTM VTo^ VTL4Z<Au6Z<}27Z< }ٙ8Z< t9Z< s}:Z<}S3;Z<xFgZ<T?Z<H4@Z<FpJAZ<STZ<OPDZ<AEZ<GFZ<FdGZ<PZ<RZ<W3Z<R Z< lT Z<#^Z<$}1 Z<&f7 Z<'g[~ Z<(yN Z<)y !Z<,CL Z<-CLZ<.CLZ<0c7 Z<4CLZ<6q^ Z<7~ Z<8B=Z<9ph Z<:ycZ<;u Z<gCLZ<hCLZ<iCLZ<jCLZ<kCLZ<nFѫZ<oHZ<r{LS Z<ulZ<x] Z<yt[ Z<zx# Z<{p`* Z<~qZ<DOZ<TOqZ<EboZ<YZ<B3 Z<PEZ<A|Z<EZ<xo Z<S Z<kQ Z<`s3Z<T@Z<^Z<CLZ<CLZ<CLZ<CLZ<CLZ<OPZ<OPZ<CLZ<CLZ<IZ<HZ<H:Z<G\Z<J#Z<J#}eZ<:V}fVT~ ^ ^ MZ<u=< NZ<CROZ<J;PZ<DPQZ<URZ<PCSZ<o TZ<D?VZ<e XZ<DHYZ<,G[Z<-{\Z<.Wal^Z<1a_Z<2w `Z<3AaZ<6}bZ<7BcZ<8|Z<:CLZ<;CLZ< Z<rixB Z<sJ3Z<tEZ<v{PIZ<yEVZ<zOZ<}HЌZ<~LZ<r Z<M Z<EVZ<SXZ<|Z<NyZ<M Z<o^ Z<L/cZ<@LZ<CLZ<EZ<sZ<OPZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<PgZ<G6gZ<_3Z<GHZ<GHZ<GHZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<]Z<CLZ<CLZ<CLZ<NIZ<CLZ<C<Z<CLZ<CLZ<y#; Z<CLZ<CLZ<CLZ<OP$Z<K %%Z<IM&Z<O4mZ<!CL*Z<$IP,Z<%Z Z<&OP.Z<'LZ<(CLZ<)CLZ<,OPZ<.CL3Z<1o/4Z<3Au6Z<5F7Z<6|8Z<7wٙ9Z<:sr:Z<>{ ;Z<?x Z<BTY?Z<CH/q@Z<DFoaAZ<ETJgZ<FOPDZ<GAkEZ<HGFZ<IFdGZ<JP1Z<MPS3Z<NUPZ<PO3Z<Qk Z<TcZ<U} Z<VfTQ Z<Wgx Z<Xx Z<Yy@ !Z<CL Z<CLZ<CLZ<_ Z<CLZ<q^ Z<AZZ<CuZ<ph Z<pZ<u6 Z<CLZ<CLZ<CLZ<CLZ<CLZ<FZ<HZ<{Z Z<l=TZ<] Z<tM Z<x# Z<pB Z<rZ<DUZ<PQZ<EKMZ<ZLZ<B) Z<PZ<AZ<EZ<x Z<N(z Z<hs3 Z<` Z<OZ<^Z<CLZ<CLZ<CLZ<CLZ<CLZ<OPZ<OPZ<CLZ<CLZ<IZ<H"Z<HRZ<G5Z< J#Z< J#}eZ<NŐ}fZ<~" ^ ^ MZ<Pt NZ<RCKOZ<SJgfPZ<TDAYQZ<WUbRZ<YOoSZ<ZoI TZ<[DܭVZ<\e XZ<]DHYZ<_F[Z<`\Z<bds^Z<eaA_Z<fw `Z<g@aZ<i} >bZ<jBccZ<kzZ<mCLZ<oCLZ<pCLgZ<sl Z<uCLZ<vCLZ<wCLZ<xCLmZ<|FnZ<~4oZ<^Ӆ Z<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLwZ<}fgxZ<JuyZ<QzZ<OP{Z<e |Z<]&}Z<rw~Z<]Z<B>Z<FZ<}; ~Z<OPZ<Y |Z<CLZ<G cZ<GEZ<H Z<NKuZ<CLtZ<CLZ<s_; Z<pM Z<k 5Z<K*6Z<K?Z<CLZ<CL:Z<CB;Z<R+.FZ<B\)GZ<spHZ< J LZ<!AO\MZ<"|qNZ<#{OZ<&}f PZ<'}f QZ<(ERZ<)HTZ<+GKUZ<,I^VZ<-FZ<.OPZ<0CLYZ<2AZZ<37 Z<5OPZ<7CL]Z<9n ^Z<:\#ZZ<Z<sT?Z<tH?@Z<uFoaAZ<vU_zZ<wOPDZ<xAEZ<yGvFZ<zF^AGZ<{PIZ<RZ<W&gZ<R Z<k Z<aZ<}d Z<fq Z<g Z<x Z<y !Z<CL Z<CLZ<CLZ<b6 Z<CLZ<q Z<BwZ<C'Z<pA Z<n9.Z<u Z<CLZ<CLZ<CLZ<CLZ<CLZ<FZ<HZ<{LS Z<l>Z<] Z<s Z<w3 Z<p4a Z< nyZ<D]-Z<R_Z<E9Z<[Z<BE Z<P<Z<A2'Z<E%Z<xP Z<P Z<!h Z<"a`Z<#TZ<$^Z<&CLZ<'CLZ<(CLZ<)CLZ<*CLZ<-OPZ</OPZ<1CLZ<2CLZ<5IDZ<6HZ<8HZ<9G5Z<bZ<B=qcZ<zZ<CLZ<CLZ<CLgZ<lR Z<CLZ<CLZ<CLZ<CLmZ<FhmnZ<}4oZ<^ Z<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLwZ<CxZ<JyZ<SHZ<OP{Z<f |Z<^}Z<r~Z<]Z<BՑZ<FoLZ<' ~Z<OPZ<Y7 |Z<CLZ<GZ<GZ<H 'Z<HEuZ< CLtZ< CLZ<5sV Z<6pS Z<7k 5Z<9K}6Z<:K Z<pZ<`Q qZ<Z rZ<_\ sZ<M tZ<L uZ<CMZ<OPZ<CLxZ<@yZ<L7zzZ<GZ<OPZ<CL}Z<G0~Z<HZ<FZ<CZ<OP~Z<CLZ<AZ<ixB Z<ixB Z<FݱZ<JwZ<G`Z<j Z<ixB Z<J3Z< EZ< {!Z< EVZ< OZ< IrZ< LZ< r Z< M Z< EVZ< P52Z< |1Z< MgZ< M Z< o^ Z< L2HZ< BuZ< CLZ< "EZ< #pTZ< $OPZ< &CLZ< 'CLZ< (CLZ< )CLZ< +CLZ< ,CLZ< -CLZ< 0NgZ< 1N`Z< 2c Z< 3O{Z< 4NRZ< 5R34Z< 7CLZ< aCLZ< bCLZ< cCLZ< dCLZ< eCLZ< fCLZ< g]Z< hCLZ< jCLZ< kCLZ< lMXZ< nCLZ< qCZ< rCLZ< sCLZ< ux Z< xCLZ< yCLZ< zCLZ< }OP$Z< ~K%Z< Ib&Z< J=Z< CL*Z< I.,Z< ZdZ< OP.Z< MLZ< CLZ< CLZ< OPZ< CL3Z< o4Z< Au6Z< x7Z< g 8Z< f9Z< so3:Z< {;Z< xZ< TK?Z< H@Z< FjAZ< VZ< OPDZ< APEZ< GgbFZ< FTGGZ< PBZ< SZ< X33Z< RPZ< jĐ Z< ^{Z< }A] Z< f Z< g Z< x:D Z< y] !Z< CL Z< CLZ< CLZ< aY Z< CLZ< qV Z< BZ< CDZ< p Z< Z< up Z< CLZ< CLZ< CLZ< CLZ< CLZ< *FZ< +HpZ< /z Z< 1kZ< 4] Z< 5t!N Z< 6x Z< 7p% Z< :r#3Z< =DdkZ< ?RCZ< @EYRZ< A[Z< CB Z< FO`Z< GAO6Z< HEfNZ< Lx Z< MR3 Z< Ph" Z< Q`pZ< RQ9Z< S^Z< TCLZ< VCLZ< WCLZ< XCLZ< YCLZ< \OPZ< ]OPZ< `CLZ< aCLZ< HZ< HZ< H Z< G}Z< J#Z< J#}eZ< Z|}fZ<5~k ^ ^ MZ< u " NZ< CKOZ< JYPZ< DQQZ< UȕRZ< OSZ< oK TZ< DVZ< e| XZ< D GYZ< F[Z< 1\Z< dG^Z< b_Z< wV `Z< @uaZ< }bZ< AٚcZ< zfgZ< CLZ< CLZ< CLgZ< l( Z< CLZ< CLZ< CLZ< CLmZ< FN0nZ< }s4oZ< ^ Z< CLZ< CLZ< CLZ< CLZ< CLZ< CLZ< CLwZ< @{xZ< MHyZ< Q Z< OP{Z< f |Z< ]'}Z< q~Z< ]Z< $BHZ< %FBZ< (|oQ ~Z< *OPZ< UY{ |Z< WCLZ< ZG,Z< \FZ< ]GBZ< `KuZ< bCLtZ< cCLZ< fsI Z< gp" Z< hk 5Z< jKo6Z< kJZ< mCLZ< nCL:Z< pF[G;Z< qQ~'OZ< } PZ< }; QZ< EѕRZ< HTZ< GUZ< I>/VZ< FnZ< OPZ< CLYZ< @ZZ< ~Ü Z< OPZ< CL]Z< n4a ^Z< Y<Z< OPZ< CLaZ< N8'Z< OPZ< CLdZ< F!OZ< OPfZ< ^Z< CLhZ< ByiZ< SZ< OPkZ< S lZ< opmZ< iHnZ< @noZ< cYRpZ< _B qZ< X rZ< \ sZ< M tZ< L=uZ< C Z< OPZ< CLxZ< @yZ< N!zZ< G} Z< OPZ< CL}Z< G~Z< G`Z< FZ< CZ< !OP~Z< #CLZ< %AZ< (ixB Z< )ixB Z< *FݱZ< +JwZ< ,G`Z< -j Z< .ixB Z< /J3Z< 0EZ< 2zJZ< 6EVZ< 7O/Z< 9HZ< :LZ< =r Z< ?M Z< BEVZ< CLvZ< E{HZ< FMZ< GM Z< Jo^ Z< LL&Z< MBuZ< PCLZ< SEZ< TsaWZ< UOPZ< WCLZ< CLZ< CLZ< CLZ< CLZ< CLZ< CLZ< X4Z< KZ< bfZ< QzZ< N=qZ< Q=qZ< CLZ< CLZ< CLZ< CLZ< CLZ< CLZ< CLZ< ]Z< CLZ< CLZ< CLZ< MZ< CLZ< CZ< CLZ< CLZ< xH Z< CLZ< CLZ< CLZ< OP$Z< J%Z< Io&Z< HZ< CL*Z< I$,Z< Z%5Z< OP.Z< MZzZ< CLZ< CLZ< OPZ< CL3Z< o4Z< Au6Z< rL7Z< a 8Z< hff9Z< sd :Z< zٚ;Z< uyZ< T=s?Z< G@Z< FaAZ< UiZ< OPDZ< AEEZ< GU5FZ< FDGZ< P3pZ< QVfZ< VS3Z< QC3Z< i Z< b%Z< }A] Z< f Z< g Z< wt Z< y !Z< CL Z< CLZ< CLZ< a Z< CLZ< Iq^ Z< JEZ< KCZ< Lp$ Z< MG8 Z< Nua Z< QCLZ< SCLZ< TCLZ< UCLZ< VCLZ< YFȝZ< ZH)Z< ]z Z< _kZ< c] Z< dt!N Z< ewt Z< fp Z< iofZ< lDkZ< mSZ< oE;Z< p\Z< rB Z< uN3Z< vA|=Z< wF$Z< zx0 Z< {M Z< hf Z< aZ< TZ< ^Z< CLZ< CLZ< CLZ< CLZ< CLZ< OPZ< OPZ< CLZ< CLZ< H6Z< H(Z< H"Z< GZ< JZ< J}eZ< M[}fZ< f~ci ^ ^ MZ< tF NZ< CMOZ< JPZ< DQZ< UȕRZ< P SZ< o TZ<DVZ<e`E XZ<DHYZ<F[Z<{\Z<V^Z<c _Z<w `Z<@aZ<@pbZ< C:cZ<!{Z<#CLZ<$CLZ<%CLgZ<(l Z<*CLZ<,CLZ<-CLZ<.CLmZ<1F/nnZ<4~goZ<5^ Z<7CLZ<8CLZ<:CLZ<;CLZ<CLwZ<A{xZ<BJuyZ<DRZ<EOP{Z<He |Z<J]$}Z<Kom~Z<u]Z<xBrZ<zF%Z<}~z ~Z<OPZ<X |Z<CLZ<GpZ<FZ<GZ<NruZ<CLtZ<CLZ<sF Z<o Z<kT 5Z<Ko6Z<J}Z<CLZ<CL:Z<D;Z<OP/NZ<~>OZ<~24 PZ<}u% QZ<ERZ<HaTZ<GUZ<I.VZ<FBZ<OPZ<CLYZ<@bZZ<~OI Z<OPZ<CL]Z<n4a ^Z<XZ<OPZ<CLaZ<MZ<OPZ<CLdZ<FZ<OPfZ<^Z<CLhZ<Bk!iZ<RBZ<OPkZ<SP lZ<nzmZ<gpnZ< ~Y oZ< b pZ<\ qZ<U{ rZ<Yu sZ<M tZ<LZuZ<CZ<CLxZ<@@JeyZ<BSDzZ<CGuZ<EOPZ<GCL}Z<IGx~Z<KGlZ<LFoZ<MCZ<NOP~Z<PCLZ<RAZ<TixB Z<UixB Z<WFZ<XJwZ<YGnZ<Zk. Z<[ixB Z<\J%gZ<]EZ<_zJZ<`@ Z<cOZ<fIZ<gLZ<jr Z<lM Z<oEVZ<pQZ<r{HZ<sLZ<tM Z<wo^ Z<L#Z<BuZ<CLZ<E/Z<pTZ<OPZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<PgZ<M4Z<_yZ<NZ<O\Z<Q=qZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<]Z<CLZ<CLZ<CLZ<MIZ<CLZ<CZ<CLZ<CLZ<yl Z<CLZ<CLZ<CLZ<OP$Z<JP%Z<I{e&Z<PTCZ< CL*Z< I(,Z<Z+Z<OP.Z<MGZ<CLZ<CLZ<OPZ<CL3Z<nc4Z<Au6Z<}27Z<z8Z< w@9Z<#s3:Z<%zFg;Z<&vZ<)T?Z<*G{@Z<+FVAZ<,V,~Z<-OPDZ<.AcEZ</GCFZ<0F4GZ<1PZ<3Q0Z<5UZ<6PZ<7is Z<:`:"Z<;} Z<URZ<?P1SZ<@o TZ<ADܭVZ<Be| XZ<CD$JYZ<FF+[Z<G1\Z<H_^Z<KdpR_Z<Lw `Z<M@zBaZ<O@bZ<PBcZ<RzZ<TCLZ<UCLZ<VCLgZ<Yl J Z<[CLZ<\CLZ<^CLZ<_CLmZ<bFnZ<e}4oZ<f^ Z<hCLZ<iCLZ<jCLZ<CLZ<CLZ<CLZ<CLwZ<BǮxZ<J{yZ<QzZ<OP{Z<f |Z<_7}Z<q~Z<]Z<BZ<F" Z< ~Z<OPZ<X6 |Z<CLZ<GZ<FZ<GnZ<HDuZ<CLtZ<CLZ<sR Z<o Z<kT 5Z<Kd66Z<JZ<CLZ<CL:Z<F ;Z<MZ}Z<?OP.Z<@MgyZ<BCLZ<CCLZ<FOPZ<HCL3Z<Kn4Z<LAu6Z<Or7Z<Pe8Z<Qj339Z<Tr:Z<V}s3;Z<Wr4Z<ZTY?Z<[G@Z<\FMAZ<]VZ<^OPDZ<_A~EZ<G3FZ<F& GZ<P"Z<IYZ<NiZ<J@Z<h Z<bIZ<} Z<f& Z<hS Z<wQ? Z<y@ !Z<CL Z<CLZ<CLZ<`q. Z<CLZ<q Z<F~Z<CZ<pPL Z<;Z<u65 Z<CLZ<CLZ<CLZ<CLZ<CLZ<FkfZ<HZ<z Z<k>Z<]Z<s Z<v~ PZ<?~l^ QZ<@ERZ<AHs<TZ<CGUZ<DIIVZ<EFZ<FOPZ<HCLYZ<J@nZZ<K~] Z<MOPZ<OCL]Z<Qn ^Z<SX Z<|OPZ<~CLaZ<M$NZ<OPZ<CLdZ<F!OZ<OPfZ<^Z<CLhZ<BNiZ<QmZ<OPkZ<S) lZ<pmZ<jnZ<mz oZ<d#pZ<\ qZ<Uu rZ<Z sZ<MMtZ<LuZ<DZ<OPZ<CLxZ<r yZ<PQzZ<GgRZ<OPZ<CL}Z<G~Z<G„Z<FZ<CsQZ<OP~Z<CLZ<AZ<ixB Z<ixB Z<F5Z<JwZ<GnZ<kh Z<ixB Z<J%gZ<EZ<xZ<EVZ<OpZ<H"Z<LZ<r Z<M Z<EVZ<Q.Z<zZ<LjoZ<LVeZ<o^ Z<L&Z<@LZ<CLZ< EZ< s!Z< OPZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<CLZ<Y3Z<R Z<cVgZ<DNRZ<EMZ<FGHZ<HCLZ<ICLZ<JCLZ<KCLZ<LCLZ<MCLZ<NCLZ<P]Z<QCLZ<RCLZ<SCLZ<TMZ<VCLZ<YCZ<[CLZ<\CLZ<^} Z<`CLZ<aCLZ<bCLZ<eOP$Z<fJ%Z<gIx&Z<jLsZ<mCL*Z<oHI,Z<pZ Z<qOP.Z<rMZ<tCLZ<uCLZ<xOPZ<zCL3Z<}o4Z<~Au6Z<}7Z<m338Z<i&g9Z<rj:Z<l ;Z<j3Z<T0?Z<Gy@Z<FAAZ<VdZ<OPDZ<B*EZ<G#9FZ<FXGZ<P0Z<Ks3Z<PZ<KZ<g Z<bZ<}A] Z<g/ Z<hS Z<wl Z<yl !Z<CL Z<CLZ<CLZ<c Z<CLZ<q Z<GZ<CpiZ<p Z<E֌ Z<u' Z<CLZ<CLZ<CLZ< CLZ<CLZ<FKZ<HZ<z Z<k,Z<]Z<q Z<uS[ Z<o4 Z<!pZ<$D|Z<%TS Z<&DZ<'^#Z<)BH Z<-NZ<.BZ</TZ<2xe Z<3R Z<6lww Z<7`ɚZ<8XZ<:^ Z<;CLZ<CLZ<@CLZ<COPZ<DOPZ<EOPZ<GCLeHteHeHje He J#e J#}eZ<[}fZ<~C ^ ^ Me%t Ne'CJ)Oe(JPe)DQe,UdRe-PRSe/o; Te0E;aVe1f i Xe2DFYe4Fۘ[e5&0\e6_?J^e:b_e;x `ed@faef@{begAW cehzejCLekCLemCLgepk* erCLesCLetCLeuCLmexEne|}4oe}^Ӆ eCLeCLeCLeCLeCLeCLeCLwe} >xeKRyeSW eOP{ef |e]}ep+~e]eBeFe~ ~eOPeX |eCLeFeFBeGTeFueCLteCLes+ eo\ el1 5eJf6eJPeCLeCL:eL;eHE<eX@s?e@eOPeCLBext CeWFDeBEei FerGe_HeJ? Lek4MeD(Nej{Oe~ Pe~z QeEReHs<TeGuUeIVeFxCeOPe-CLYe/U Ze0~ e2OPe4CL]e6m4 ^e8[`e9OPe;CLae>NFe?OPeACLdeCFReEOPfeG^eHCLheJB1 ieKP DeMOPkeNR leOmffmePg=qneQp oeTcpeV^3 qeWV# reXZq seYM teZL#ue\D$e]OPe_CLxea~' yebMzecGeeOPegCL}eG~eG eFeCTeOP~eCLeA$ZeixB eixB eFeJweGnek) eixB eJ%geEexe@ eOeHeLer eM eB eLvezeM eLZ eo^ eLeEʘeCLeEeqҩeOPeCLeCLeCLeCLeCLeCLeCLePgePyeavgeNzeMeSeCLeCLe CLe CLe CLe CLeCLe]eCLeCLeCLeMeCLeC=eCLeCLe|& e CLe!CLe"CLe$OP$e%Jz%e&It(&e)J7e,CL*e/H,eXZVeYOP.eZMe\CLe]CLe_OPeaCL3edo4efAu6ehF347ei@ 8ejl9emq-:eqo9;ermg<esletOP>euT:?evG@ewF5GAexVeyOPDezB!Ee{G;Fe|F_Ge}PeH&geLc3eHeg< e^Ѕe}d eg[~ eh ev( eyN !eCL eCLeCLe`d eCLeqV eF~eD4Kep< edeu eCLeCLeCLeCLeCLeF2feHez[ ekHe]ep- etj. eo en&feDreR6eC.Be_|eBu eOgeCfe_13exWc eN e!r e"`e#Ype%^ e&CLe'CLe(CLe)CLe+CLe.OPe/OPe0OPe2CLe5HIe7He8Ie9H*eCLe?CLe@CLeA]eBCLeCCLeDCLeFMeHCLeJCeLCLeMCLeO|C ezCLe{CLe|CLeOP$eJ%eIn^&eH̾eCL*eH,eZ6oeOP.eMޠeCLeCLeOPeCL3en4eAu6ezٚ7edf8ec9ep_:en34;eq<ei4eOP>eTI?eGu@eF(AeWVeOPDeA2EeFVFeFGeO&eHs3eL4eGefo ec{e}A] egX eh ev ex !eCL eCLeCLea/ eCLeqHF eEeDBep eteu ~ eCLeCLeCLeCLeCLeFeHWez e j>e]eo esrb eoi eneDWe@OeAB78eC`eEB eHO5~eID eJeeMxH eNM.{ eRrD eS`eTYeU^ eVCLeWCLeYCLeZCLe[CLe^OPe_OPe`OPecCLefHegHxehI4^eiHCelJ#enJ#}ee^}fe ~O ^ ^ Meuh NeC> OeJsPeCQeU0ReP<SeAW3TeDAVee`E XeCEYeF[e\e_o^ec_ex9 `eCKae@beAcezHeCLeCLeCLgek eCLeCLeCLeCLmeGne}oe^j eCLeCLe CLe CLe CLe CLeCLwewxeFaHyeOeOP{ef |e^}ep_~e]e CeNe!Fؔe%}u% ~e'OPe*Z |e,CLe/F[e0Fe2Ge5Lue7CLte8CLe:r~ epe\R qeVk reX seMteLAueCeOPeCLxe}h yePFzeGCeOPeCL}eGQ~eG}eFeC2eOP~eCLe@}BeixB eixB eFeIeG} ek eixB eJ%geEe x]e5EVe6Oe8He9LeM eAB eBReEzՌeFM eGLaSeJo^ eLKeOEʘeQCLeTEceUpTeVOPeXCLeYCLeZCLe\CLe]CLe^CLe_CLebX ecNgedavgeeNefL\egQ ejCLekCLelCLemCLenCLeoCLeCLe]eCLeCLeCLeMeCLeCeCLeCLe}u% eCLeCLeCLeOP$eJ%eIfi&eQeCL*eH~,eZZSeOP.eMeCLeCLeOPeCL3en 4eAu6evY7edf8eig9ep^ :ew;ess3<eygeOP>eTg2?eG^K@eFAe WQe OPDe AEe F*Fe EGe Oe Ife N e Ie f e `:"e | e g e hJ e vh. e x !e CL e CLe CLe dTj e CLe !q e "Ce #C=e $o e &|ce *u ~ e -CLe .CLe /CLe 0CLe 1CLe 4F ie 6H~e az e cje f] e goK e hrz e io e lre pDCe qQme rB*5e sae uB e xO e yF8e zge ~xH e U e nw e a e X\e ^ e CLe CLe CLe CLe CLe OPe OPe OPe CLe Hpe Hr5e II?e HZe Je J}ee &P&}fe:} ^ ^ Me uh Ne C4Oe JPe CQe URe PNqSe pӖ Te DVe e'9 Xe CEYe F[e V\e V!l^e eo_e x9 `e C5ae Abe Ace zHe CLe CLe CLge +kˏ e -CLe .CLe /CLe 0CLme 3Gne 6}oe 7] e :CLe ;CLe CLe ?CLe @CLwe Ctxe EGffye FTǮe GOP{e JeUV |e L`#}e Mr~e O]e SCْe TFbe W}T ~e YOPe \ZTj |e ^CLe bFe cFe Ge Iwue CLte CLe rP e o9X e k J 5e Jt6e Ke CLe CL:e Ovo;e O<e Wd?e @Re OPe CLBe y Ce T#De AEe l\*Fe n(Ge \He IJ` Le ~=qMe s34Ne P8ROe  Pe ~ Qe F Re H#Te Gb`Ue H Ve FZe OPe CLYe U Ze }h e OPe CL]e m7 ^e ]SWe OPe CLae O>e OPe CLde EWe OPfe ^e CLhe Afie Me OPke R le pme fzne m33 oe bpe `( qe X( re [ se Lte Lue CWe OPe CLxe }h ye S&ze G&"e "OPe $CL}e &GJY~e (Gf e )Fe *C.ae +OP~e UCLe W@e YixB e [ixB e \F5e ]Ie ^Gne _k e `ixB e aJ%ge bEe dxde gEVe hOPe kI~e lLe or e qLe tB e uOe wze xLe yLc&e |o^ e ~Ke Eʘe CLe ENe oe OPe CLe CLe CLe CLe CLe CLe CLe _e P3e c3e Pffe L34e P >e CLe CLe CLe CLe CLe CLe CLe ]e CLe CLe CLe Mte CLe Ce CLe CLe }: e CLe CLe CLe OP$e J%e Ib&e Ne CL*e HY,e Zpe OP.e Me CLe CLe OPe CL3e !n4e "Au6e %A37e &_8e '_9e *p& :e ,n;e -s<e .pge /OP>e 0T?e 1GL@e 2FSAe 3WBe 4OPDe 5AEe 6FعFe 7E5Ge 8Oe ;Hs3e Ge ?e e Bave C| e Dg e Eh" e FvteFLtueGCѣeHOPeJCLxet~ yeuQzevG&"exOPezCL}e|GJY~e~GI eFeCJeOP~eCLe@eixB eixB eFݱeIeG} el3 eixB eJ%geEezJeEVePeIleLer eLeB eLvezeM eLfeo^ eKweEʘeCLeEjepSNeOPeCLeCLeCLeCLeCLeCLeCLePgeLe^eNeM >eOeCLeCLeCLeCLeCLeCLeCLe]eCLeCLeCLeMeCLeCeCLeCLe|` e CLe CLe CLeOP$eJ%eI[&ee^SA?e_G<@e`FAeaVҚebOPDecAEedF.FeeEGefO>eiEejJٙekEeleN+ eoc8ep|X erh(# esi etv4 euw !eCL eCLeCLeb eCLep< e@XeDeoXB e{et eCLeCLeCLeCLeCLeEeHeez? eje] en% eqes eoh ereD&eNeCieceB eP1eJQewex# eQ e hf e `e Tc3e^ eCLeCLeCLeCLeCLeOPeOPeOPeCLeHe Hve!Inxe"H}e&Je)J}eeX`}fe }Y ^ ^ Mehuwo NejCOelJPemCpQepUmbReqP<Sero۔ TesD}Vete XevC^KYexF?[ey\ezZ^e}gY_e~x* `eBae@beA>ce|aHeCLeCLeCLgek eCLeCLeCLeCLmeFne}ɚoe] eCLeCLeCLeCLeCLeCLeCLweypxeKRyeR\eOP{ee |e^*1}esR=~e]eCxeF |e{ ~eOPeW |eCLeFeF`ZeG߉eFăueCLteCLerV eoK ekz 5eJ6eK&XeCLeCL:eNF;eI<eO&?e@eOPe0CLBe2zT Ce3RDe4AEe6b >Fe7lGe8dQHe9I@ Le:~Me;s34NeeT,+?eG/@eFAeW0eOPDeC<EeFľFeEGeOeB9eFeB9ed e]e|Z ehb ei eu ew_ !eCL eCLeCLe` eCLepPL e|& eDJen etPHet4 eCLeCLeCLeCLeCLeEeHnez? ejde] em eq eoYk er#3e%De&Rٶe'Cҗe(de*B e-Oee/LMe0%/e3x# e4P e7i7w e8`3e9Ve;^ eCLe?CLe@CLeDOPeEOPeFOPeHCLeKH~eMHqLeNI}eOHeRJeUJ}eeT}fe}/ ^ ^ MeuG NeC OeJ^!PeC~3QeUmbRePY#Seo+ TeDvVed XeCyIYeF[el\eYQ^ed_ex8 `eAFaeAbeARce|eCLeCLeCLgekw eCLeCLeCLeCLmeFne}loe] eCLeCLeCLeCLeCLeCLeCLwey34xeJ4yeR)eOP{ee |e^}ep~e]eCe F'e )b ~eOPeV |eCLeF,eFDeG:eMueCLte CLe"r e#o e$ku 5e&J6e'K <eQCLeRCL:eUM;eVF<eYJ?eZ@e\OPe^CLBe`z$ CeaQcDebAEeddFees34Gef_HegID Leh~MeispNejPuOem@Pen: QeoF!ORepGoTerG4UesHoVetFeuOPewCLYey~; Zez} e|OPe~CL]el9 ^e[ZeOPeCLaeNEeOPeCLdeEeOPfe^eCLheALieUeOPkeR leoQmefQneq+ oeaKpe]. qeVp reZ seLteLueCeOPeCLxec yeMzeGBeOPeCL}eGe~eG+eFzReCG eOP~eCLeA2ei| eixB eFݱeIeG} elR ei eJeEezJeEVePe I~e!Le$r e&M e)B e*Qle,ze-Le.Lqe1o^ e3Ke6Eʘe9CLeOPe@CLeACLeBCLeCCLeDCLeECLeFCLeIYgeKNgeLcVgeMM(eNMeOOpeQCLeRCLeSCLe|CLe}CLeCLeCLe]eCLeCLeCLeMeCLeCeCLeCLe{ eCLeCLeCLeOP$eJ%eIJ&eNeCL*eH,eZeOP.eM.eCLeCLeOPeCL3en4eAu6e}@7ec8eaY9eooj:er4;ep<eweOP>eT<?eG @eFsAeWQ!eOPDeCEeFFeE5GeOeBeG#4eBs4ec( ecxve|%_ eh eiLl eu6 ew !eCL eCLeCLe` eCLe p$ e z e De o eet eCLeCLeCLeCLeCLeEEeFHweIz[ eKj eN] eOm4 eQp eRoJ eUreXDeYPweZCce[e"e^BR eaO[ebM$ecAefx egL ejrw ek`emYen^ eoCLepCLeqCLerCLetCLewOPexOPeyOPe{CLeHo{eHi"eIeHeJeJ}eeO5}fe"~ ^ ^ Meu NeCOeJYPeCvQeU^.RePNqSeo+ TeD}Ved- XeCFYeF?[eٳl\eYl^ebk_ex8 `eA<aeAnbeA!Hce{eCLeCLeCLgekW eCLeCLeCLeCLmeF%ne}Loe ] e"CLe#CLe$CLe%CLe'CLe(CLe)CLwe,uxe-K\ye.Oe/OP{e2e |e5^}e6q~e8]e;C[eGM,kHM-H% LM.~MM/sNM0PuOM1@nPM4^ QM5F(RM6GTM8G!UM9HDVM:EM;OPMeCLYMg~] ZMh} MjOPMlCL]Mnl9 ^MpZN MqOPMsCLaMvN&MwOPMyCLdM{EVM}OPfM^MCLhMAt@iMT'0MOPkMRyu lMmmMdnMm= oMbRpMZ qMT) rMX{ sMLtMLuMCMOPMCLxM yMK/~zMHMOPMCL}MHG~MFMFh5MCOMOP~MCLMAt@Mi MixB MFݱMIMG} Mlo Mi MJMEMxMEVMOlMIMLMr MM MB MLvMzMLMLw0Mo^ MKMEʘMCLMEuMpTMOPM-CLM/CLM0CLM1CLM2CLM3CLM4CLM7YgM8KfM9d M:LMM?CLM@CLMACLMBCLMCCLMDCLMECLMG]MHCLMICLMJCLMKM;MMCLMPCMRCLMSCLMU|C MWCLMXCLMYCLM\OP$M]J%M^I@&MaOMcCL*MfGF,MgZMOP.MMYMCLMCLMOPMCL3Mn%4MAu6Mwff7Mq@8Mh9Mo>:Mk ;Mql<Mn4MOP>MS`?MG j@MFAMWMOPDMCEMFFMETGMOJMD6fMHMDyMc MbaM|%_ Mhׄ MiLl Mu Mwl !MCL MCLMCLMc_ MCLMp My]w MD_Mo MMt MCLMCLMCLMCLMCLM E{M H{FMz MjM]Mm Mp| Mo- Mr&fMCMQKM BfM!fM#B M&OKM(NM)BeM,x M-Uc MXv MYaMZY\M\^ M]CLM^CLM_CLM`CLMaCLMeOPMfOPMgOPMiCLMlH]XMnHcMoIMpHMsJMvJ}eMt9}fM~9 ^ ^ MMu NMC"OMJCPMCjQMUK-RMP*SMo7 TMDocVMd XMCEYMF#[MƳ1\M]^Mb|_MxG `MA DaM@bM*cMypMCLMCLMCLgMk MCLMCLMCLMCLmMFiUnM|goM]D MCLMCLMCLMCLMCLMCLMCLwMwxMHLyMOaHMOP{M d |M"]3|}M#s~M&]M)CA2M*FM- ~M/OPM2W |M5CLM8FM9F.ZM:GM=JsuM?CLtMACLMCsL MDodZ MEk J 5MGIH6MHJMJCLMKCL:MNO;MQO}H<MRN?MS@MUOPMWCLBMY{/9 CMZO1DM[AEMf FMr=qGMj{HMHk LM}HMMt(NMPGOM@3PM@AQMF/RMGTMGUMHuVMEMOPMCLYM~ ZM|} MOPMCL]Mmv ^MYMOPMCLaMM.MOPMCLdMEMOPfM^MCLhMAW3iMRXMOPkMRk7 lMkGmMbRnMn oMcOpM^ qMY rM\3 sMLtMLuMC*MOPMCLxM@yMS zMHMOPMCL}MHk~MF MFZMCTMOP~MCLMAMi& M i| M F/M IM GM l8 Mi& MJMEMxMEVMOMHMLMr MM M"B M#QX3MMzUMNLMOLzMSo^ MUKMXEʘMZCLM]E/M^s M_OPMaCLMbCLMcCLMdCLMeCLMgCLMhCLMka)MlY#3MmjMnL\MoKRMpPMrCLMsCLMtCLMvCLMwCLMxCLMyCLMz]M{CLM|CLM}CLMMXMCLMCMCLMCLM{in MCLMCLMCLMOP$MJy%MI6&MMMCL*MG},MZb8MOP.MMMCLMCLMOPMCL3Mn4MAu6Mo&f7MV8MZ&g9Mo(:Mm@;Mr<MpS3MOP>MS_?MFV@MEAMVMOPDMCDEMFFMEEGMOM@vfMDM@Mb M^_M|%_ Mi MixB MuS[ M wB !M#CL M$CLM%CLM'_ M*CLM,p$ M.|& M/DnQM0o,| M2M5tz M8CLM9CLM:CLMll M?j' M@JwMAEMCxMnEVMoOMqI~MrLMvr MxM M{B M|RM~zMKMLLMo^ MKMEʘMCLMEMpMOPMCLMCLMCLMCLMCLMCLMCLMYgMQMpMLMNMO{MCLMCLMCLMCLMCLMCLMCLM]MCLMCLMCLMMMCLMCMCLMCLM| MCLMCLMCLMOP$MJ%MI+&MJ;4MCL*MG ,M[&MOP.MNIMCLMCLMOPMCL3Mn94MAu6M^ 7MCg8M]s39M oU:M j;M4q<M5oM6OP>M7S?M8F@M8EMAM9WBM:OPDMOMAB0MBF3MCBLMEc* MHbؾMI|%_ MJi[ MKi| MLu' MMv !MPCL MRCLMSCLMUax MXCLMZq M[CScM\DM]o M`/{Mct MfCLMgCLMhCLMiCLMjCLMnE~MoHz^Mzcz Mj\M]Mmi Mo Mom MnFfMC0MQzMB MhMB MO4 MQ><MCMw MNq MqD M`3MYM^ MCLMCLMCLMCLMCLMOPMOPMOPMCLMHC MHaMI MHMJMJ}eM`W }fMv~9 ^ ^ MM u_ NM BOM J`PM CGQM U!\RM P.ZSM ouq TM "DVM #eR XM $CEYM &FL[M '1\M (^"^M +cY_M -xUV `M .@aM 0B bM 1@+cM 2{\M 4CLM 5CLM 6CLgM bk M dCLM eCLM fCLM gCLmM jF/nnM m|4oM o]n M qCLM rCLM sCLM tCLM uCLM vCLM wCLwM {y{xM |F)yM }SM ~OP{M f33 |M _}M rS~M ]M CiM FM @~M OPM Wx |M CLM F}M F1M GM GuM CLtM CLM s% M p M kV 5M I6M JdM CLM CL:M M;M H̾<M O'?M @M OPM CLBM {LS CM LaDM ATEM aFM rRGM dHM H" LM XQMM N=qNM hOM @_wPM @.QM F:RM GTM FvUM HiVM EzM OPM CLYM }R ZM | M OPM CL]M m ^M XA)M (OPM )CLaM ,MLM -OPM /CLdM 1EZM 3OPfM 5^M 6CLhM 8A+iM 9V=M ;OPkM lffmM ?d nM @m oM CcUpM E_ qM FTz rM G[ sM HL^tM IM uM JCM KOPM MCLxM O@&yM PQl~zM QI(-M SOPM UCL}M WHs<~M YFM ZFDM [CA?M \OP~M ^CLM `AM cjD M i& M FݱM IM G} M l M jD M JwM EM xM EVM O/M IrM LM r M M M B M PrM zM KM LM o^ M KM EʘM CLM EM rZM OPM CLM CLM CLM CLM CLM CLM CLM _fM NgM avgM NM LQM NM CLM CLM CLM CLM CLM CLM CLM ]M CLM CLM CLM MM CLM CM CLM CLM } M CLM CLM CLM OP$M J%M I"d&M IM CL*M Gܜ,M Z#M OP.M NVM "CLM #CLM &OPM 'CL3M *n4M TAu6M Wc7M XdY8M Y\ff9M \o:M ]pL;M ^r <M _x34M `OP>M aS?M bF@M cE:AM dW7M eOPDM fCEM gF,FM hEGM iOM lE0M mK M nEiM oba M razZM t|Z M ui| M vi M wu ~ M xv( !M {CL M |CLM ~CLM c M CLM p M E M DBM o M ZڹM tx M CLM CLM CLM CLM CLM E\M H{FM z M jTM ]M m4 M o+ M n9 M ofM CM SM BWM ihM B M NGQM RJWM ChM wS M U7 M oj M `M X M ^ M CLM CLM CLM CLM CLM OPM OPM OPM CLM H7DM Hi"M !IM #HkM &JM 'J}eM I)}fM ~Vc ^ ^ MM ?t NM ABOM BJjPM CC\QM FU RM GPSM HoXB TM IDVM Ke XM LCDYM NF[M O\M PVx^M Sdl_M TxUV `M V@aM @4bM qcM yM CLM CLM CLgM k M CLM CLM CLM CLmM FnM }fgoM ] M CLM CLM CLM CLM CLM CLM CLwM wxM F)yM TM OP{M fwx |M ^9}M q~M ]M BM FtXM @~M OPM Wt |M CLM FrM FM GپM NuM CLtM CLM s\ M o M k=q 5M IfL6M JM CLM CL:M M ;M G,<M OJM?M @M OPM CLBM {= CM V\DM ALEM jQFM s34GM h(HM Gƃ LM WRMM NNM hfgOM @uPM @`QM F>KRM GbTM F UM H\VM EvM OPM CLYM } ZM |` M HOPM JCL]M Lm ^M NX&M OOPM QCLaM TMLM UOPM WCLdM YEsZM [OPfM ]^M ^CLhM `AiM aXk$M cOPkM dR-{ lM ek33mM fb(nM hl oM jbpM l\ qM nT=q rM oYQ sM pLWtM qMzuM rCwM sOPM uCLxM w@gvyM xNKzM yIiNM {OPM }CL}M Hs<~M F}5M F7NM CJM OP~M CLM AqM j> M j' M F/M IΘM GM m M j> M JwM EM xdM EVM O`M IM LM r M M M B M LvM zM K&M L<M o^ M KM EʘM CLM EuM qM OPM CLM CLM CLM CLMCLMCLMCLMYgMPMlgMLMNMNMCLMCLM CLM!CLM"CLM#CLM$CLM%]M&CLM'CLM(CLM*MM,CLM.C$M0CLM1CLM3~s M6CLM7CLM8CLM;OP$MMS?MFF@MEAMVMOPDMCGEMF}FMEmGMOM@4MD3M@vfMb|z M`\9M}A] Miމ Mi Mt Mvv !MCL MCLMCLM` MCLMq ME]MEdMp MyMtj. MCLMCLMCLMCLMCLMEMH}Mzcz MjYM]Mn Mo۔ Mn Mr)MCMRFMBMjMB3 MO4MSnMDJMw MJ M rw M `fM X M^ MCLMCLMCLMCLMMOP{Mf |M^D}Mr~M]MBMFZbM@,~MOPM X |M CLMFhMF,.MGMG&uMCLtMCLMs Mo Mkn 5MIK6M JbM"CLM#CL:M&NJ;M)Pe<M*O?M+@RM-OPM/CLBM1{/9 CM2WDM3APEM5`FM6mQGM7]HM8Go LM9X{MM:LNM;jOM<@PM=@7QM>FBRM?GOlTMhFUMiHQVMjE_MkOPMmCLYMo}R ZMp|} MrOPMtCL]Mvnn ^Mx\MyOPM{CLaM~NMOPMCLdMEV[MOPfM^MCLhMAiMW3MOPkMQt lMnmMfnMn0 oMacpM]{ qMUB rMZz sMLwtMM uMCyMOPMCLxM@yMLNzMIMOPMCL}MHzx~MFkMF)MCGMOP~MCLMAҩMj MjD MF/MIΘMGMm Mju MJwMEMxMEVMOPMI~MLMr MM MB MS(MzMK6MLMo^ MKMEʘMCLM2EM3r*M4OPM6CLM7CLM8CLM9CLM:CLM;CLM=CLM@NgMALMBbMCK=qMDIpMEMMGCLMHCLMICLMJCLMLCLMMCLMNCLMO]MPCLMQCLMRCLMTMMVCLMXCMZCLM[CLM]~Ü M`CLMaCLMbCLMdOP$MeJ%MfI&MiNRMCL*MG݄,MYWMOP.MN3MCLMCLMOPMCL3Mn4MAu6Mp7M`f8Mb9Mn9:Mjy;MfS3<McYMOP>MS?MF@MEچAMVnMOPDMCEMFsFME-GMOrM@YME M@Ma7 Mc*PM} Mj' Mi Mt4 MvY !MCL MCLMCLMb. MCLMqV MH#ME@Mph M6Mtj. M CLM CLMCLMCLMCLMEPMHWMzcz MjO?M] Mn% Mo+ M n M#sM&CM'NM)BM*kM,B M/OvM0TM1CGM\w3 M]PW MarUU Mb`s3McXfMd^ MeCLMfCLMhCLMiCLMjCLMmOPMnOPMoOPMrCLMuH"iMvHWMwIMxH M|JMJ}eMX}fM~A ^ ^ MMt NMBNOMJ4PMCQMTTRMPSMo,| TME>VMfo> XMCEYMF[Mϳ{ \MZe^Mb%_Mxq `M@uaMAffbMAcM{ MCLMCLMCLgMk MCLMCLMCLMCLmMFnM}oM^ MCLMCLMCLMCLMCLMCLMCLwMzxMI#yM$O34M&OP{M)f |M+]ݭ}M,r>7~M.]M1B M2FLM6)b ~M8OPM;X |M=CLM@Ff%MAFLMCGoMFKFuMHCLtMICLMKsY MMpA MNk 5MPIJ(6MQJMSCLMTCL:MWOS;MZN<M[Pf?M\@4M^OPMCLBM{= CMVDMAoEMoRFMq(GM`=qHMF' LMWzMMLQNMj34OM@PM@QMFFRMG5XTMFUMHHVMEMOPMCLYM~z ZM}: MOPMCL]Mo,| ^M^NMOPMCLaMP=MOPMCLdME9[MOPfM^MCLhMAiMUMOPkMR3 lMjmMaGnMo oMaq\pM`\ qMZ rM]k sMLtMMzuMCMOPMCLxM@ryMJszMJMOPMCL}MHm~MF[MF MCTMOP~M CLM A/Mj Mj> MFMIΘMGMmYk Mj MJwMEMxMEVMOMI~M LM#r M%M MPB MQS(MSzMTK<-MULXMXo^ MZKM]EʘM_CLMcEMdpMeOPMgCLMhCLMiCLMjCLMkCLMlCLMmCLMpY4MrNgMsavgMt_MuTzMvG MxCLMyCLMzCLM{CLM|CLM~CLMCLM]MCLMCLMCLMMfMCLMCMCLMCLM~ MCLMCLMCLMOP$MI%MI&MJƫMCL*MG-,M[[MOP.MN8'MCLMCLMOPMCL3Mnr4MAu6Mu7MVfg8Mg9Mm>:Mkg;Mh4<MgMOP>MS?MFd@MEAMW&MOPDMCuEMFlFMEGMOMCMHMD\M` M\5M} M jb M!i M"t M$vCLM@CLMACLMDEMEHMHzcz MJjRMM] MOnn MPpA MQnl M|r&fMCMM#MCMkMB\ MP2MUdMCHMw3 MRJ Mr3 M`MY3M^ MCLMCLMCLMCLMCLMOPMOPMOPMCLMHXMHMI^MH}MJMJ}eM6X}fMK~r ^ ^ MMu NMBOMJ<PMCQMTRMPSMo TMDܭVMf XMD GYMF[MU\MW^Mc _Mxq `M@paMA{bM @)cM zM CLMCLMCLgMkx MCLMCLMCLMCLmMF"nMF~|oMG^ MICLMJCLMKCLMLCLMNCLMOCLMPCLwMS@BxMTIaHyMUQkMVOP{MYf33 |M\^<}M]qy~M_]MbBMcF-MfK ~MiOPMlX |MnCLMqFqMrFiMsGMwN NuMyCLtMzCLM|s\) M}pfg M~k 5MIW6MJ\zMCLMCL:MN-S;MK<<MP?M@MOPMCLBM{LS CMUDMAkEMnHFMqfgGMlHMF{ LMW\)MMLQNMj34OM@PM@fQMFLRMG@5TMF{UMHDZVMErMOPMCLYM ZM} MOPMCL]Mo ^M`JMOPMCLaMQDMOPMCLdM E9[MOPfM^MCLhMAiMT5MOPkMRN lM\\mMVHnMl) oMabTpM ]u qM!Wu rM"Yz sM#L1tM$M uM%CpM&OPM(CLxM*@yM+SLzM-J,M/OPM1CL}M3H~M5FN!M6FVM7CcZM8OP~M:CLMkQ M?j MAG&"MBIΘMCGMDmv MEj MFIMGE5xd5EV5 O5 Ic5 L5r 5L5B 5Q5z5K+5L5o^ 5K5"Eʘ5$CL5'E5(ry5)OP5+CL5,CL5-CL5.CL5/CL50CL52CL55Pg56O457avg58Ez59_5:_5dCL5eCL5fCL5gCL5iCL5jCL5kCL5l]5mCL5nCL5oCL5qM-5sCL5uCɪ5wCL5xCL5z|} 5}CL5~CL5CL5OP$5Hp%5H~&5HD5CL*5GM,5ZF5OP.5NF5CL5CL5OP5CL35nt45Au65efg75T&f85Y95l:5dy;5b`<5i5OP>5S?5Fi@5EA5V5OPD5C/E5FT$F5EG5O5B`5G5Bs45amP 5b$5| 5j 5iމ 5t 5v5CL5CL5CLg5k 5CL5CL5CL5CLm5FAn5 }4o5 ^j 5 CL5CL5CL5CL5CL5CL5CLw5Ax5H\)y5NǮ5OP{5e |5 ^R<}5!q# ~5#]5&B5'F]D5+U ~5-OP5XW |5ZCL5]Fp5^F5`Gϛ5cHu5eCLt5fCL5hse` 5jp5@ 5klV 55mIW65nJ*~5pCL5qCL:5tL;5wH1<5xQl?5y@5{OP5}CLB5{w C5TD5AA;E5gF5p{G5oH5FU~ L5z M5c\* N5NRO5@P5@mEQ5FSOR5G)T5F U5H7V5E5OP5CLY5c Z5~24 5OP5CL]5p3 ^5`m5OP5CLa5R5OP5CLd5E9[5OPf5^5CLh5Ai5Q5OPk5R+ l5[ffm5Upn5jT{ o5a p5Z q5T. r5W s5Lt5Mu5C5OP5CLx5A$Zy5R@z5J_C5OP5CL}5Hؒ~5!F<5"F 5#Cj5$OP~5&CL5(Bc5+kK 5,j 5-G&"5.IΘ5/G50m 51kQ 52I53E55xd59EV5:O55SB'?5Fr@5EA5Va5OPD5CE5 F3vF5 E}xG5 Oj+5BC35F5B 5aV 5c5| 5j 5i& 5tx 5v !5CL 5CL5 CL5"cx 5MCL5Oq 5PE5QD5Spmy 5UOa5Xt[ 5[CL5\CL5]CL5^CL5`CL5cE5dH5gz$ 5ijm5l] 5mo 5nph 5pn8 5ssff5vC5wO#t5xD5yl5{B 5~O5Xy5CH5w 5Spi 5nD 5`5V5^ 5CL5CL5CL5CL5CL5OP5OP5OP5CL5H5HW5IE5H`5J5J}e5U\7}f5h~A ^ ^ M5tq N5CO5JŇP5CQ5TуR5PS5AKT5DAV5e X5D6KY5Fn[5{\5Z]^5#f%_5$x `5&Bfa5'A}qb5(@+c5)yp5+CL5,CL5.CLg51kҙ 53CL54CL55CL56CLm59Gn5=}4o5>^@ 5@CL5ACL5BCL5CCL5DCL5ECL5GCLw5JQx5KJ8Ry5LP5MOP{5xe |5z]y}5|o~5~]5Cj5F5c ~5OP5X. |5CL5F 5F5G’5O"u5CLt5CL5s+ 5pM 5k 55IK65I5CL5CL:5K0;5F<5Ql~?5@-S5OP5CLB5{ C5S=D5ALE5a{F5j\G5gQH5F* L5{ M5d{ N5O34O5@P5@Q5FTR5G,T5FU5H#V5E5OP5CLY5: Z5~] 5OP5CL]5p| ^5cN5OP5CLa5RD5OP5CLd5EV[5OPf5^5CLh5@i5 O5 OPk5 R( l5 Z\m5THn5i o5a"sp5ZR q5S r5WH s5Lt5@Lu5AC 5BOP5DCLx5FAHy5HP%z5IJ5KOP5MCL}5OHH~5QF'45RE[5SCl5TOP~5VCL5XBc5Zkh 5[kQ 5]F5^I 5_G5`m 5akK 5bI5cE5ez95hEV5iO5lI?C5mL5pr 5rL5uB 5vT'Q5xz5yJ 5zL~z5o^ 5K5Eʘ5CL5Ea5q5OP5CL5CL5CL5CL5CL5CL5CL5Ng5O45cC45E5_5_5CL5CL5CL5CL5CL5CL5CL5]5CL5CL5CL5MX5CL5C05CL5CL5|C 5CL5CL5CL5 OP$5 FR%5 H&5Ne5CL*5G,5Z5OP.5NF5CL5CL5OP5CL35"nxn45#Au65&d75'U85(a95+kX:5-\g;5._4<5/a50OP>51Rs?52Fed@53ExA54V?55OPD56CE57FF58EiG59O/5CcO5?JP5@CQ5DTPR5EP S5FAeT5GDV5He| X5ID?MY5KF[5M\5NZJ^5Qfv_5Rx9 `5TCQa5UAb5V@aHc5Wy*5ZCL5[CL5\CLg5_k 5aCL5bCL5cCL5eCLm5hGn5k} o5l] 5nCL5oCL5CL5CL5CL5CL5CLw5}Gx5IBy5O345OP{5e |5^0}5p~5]5C]5F5zF^ ~5OP5Y>k |5CL5F5F5G]5F5u5CLt5CL5sb 5p/ 5kI 55I;65I-5CL5CL:5J;;5OZ<5Qׄ?5@;5OP5 CLB5 { C5 RD5 A&E5 fF5 iG5 ] H5 E L5 {\* M5 c\* N5 N O5 @P5 @fQ5 FTR5 G3T5 FU5 HV5 EM5 OP5 CLY5  Z5 ~z 5 OP5 CL]5 p| ^5 "c5 #OP5 %CLa5 (R^5 )OP5 +CLd5 -EO5 /OPf5 1^5 2CLh5 4@i5 5M5 7OPk5 `Q l5 aZzm5 bT n5 cjff o5 f`p5 h\ = q5 iU r5 jYff s5 kLt5 lL~u5 nC5 oOP5 qCLx5 sAey5 tN z5 uJ 5 wOP5 yCL}5 {H~5 }Fz5 ~E5 Cl5 OP~5 CL5 B\5 k_ 5 k. 5 Fݱ5 I 5 G5 m4 5 kh 5 I5 E5 x5 EV5 O?5 I_5 L5 r 5 K+5 B 5 SC]5 z5 JP5 Ln5 o^ 5 K5 Eʘ5 CL5 E5 q5 OP5 CL5 CL5 CL5 CL5 CL5 CL5 CL5 Pg5 Ng5 avg5 _5 G 5 _ > 5 CL5 CL5 CL5 CL5 CL5 CL5 CL5 ]5 CL5 CL5 CL5 M5 CL5 *CI5 ,CL5 -CL5 /{ 5 2CL5 3CL5 4CL5 6OP$5 7FZ%5 8H`i&5 ;Km5 >CL*5 AG',5 BZx5 COP.5 DN;5 ECL5 FCL5 IOP5 KCL35 Nnh45 PAu65 Rl75 S\ٙ85 Te95 WjF:5 Y^g;5 Z`@<5 [d 5 \OP>5 ]SJ?5 ^FGn@5 _ENA5 `VD5 aOPD5 bBE5 cEF5 ESG5 O<5 E5 J5 E 5 ` 5 cr5 |~ 5 kw 5 i 5 t>u 5 uD !5 CL 5 CL5 CL5 a 5 CL5 ph 5 B\5 E5 of 5 G5 tM 5 CL5 CL5 CL5 CL5 CL5 E 5 H}5 z$ 5 jY5 ] 5 oI 5 q 5 n 5 q\5 Cd5 N5 D5 n 5 Bz 5 P 5 [5 D=F5 w 5 MZ 5 mj 5 `335 V5 ^ 5 CL5 CL5 CL5 CL5 CL5 OP5 OP5 OP5 CL5 GF5 H{F5 !IK5 "HJM5 %J5 )J}e5 TA0}f5~q ^ ^ M5 ht N5 jCO5 kJ*P5 mCQ5 pTR5 qPeS5 rqJ T5 sD@V5 teR X5 uD6KY5 wF[5 yV\5 z]B"^5 }a_5 ~x9 `5 Dna5 Bb5 @c5 {\5 CL5 CL5 CLg5 kҙ 5 CL5 CL5 CL5 CLm5 HVn5 }Fgo5 ] 5 CL5 CL5 CL5 CL5 CL5 CL5 CLw5 u\*x5 J(y5 M45 OP{5 efg |5 ]/}5 p~5 ]5 C5 F5 } ~5 OP5 X |5 CL5 F5 F<5 GK5 LSu5 CLt5 CL5 sR 5 p 5 khs 55 "I65 #I.5 %CL5 &CL:5 (K ;5 )P<5 *R? ?5 +@X5 -OP5 /CLB5 1{ C5 2QD5 3@E5 5eHF5 6lG5 7W=qH5 8EĮ L5 9{ M5 :c N5 ;O{O5 FZR5 ?GT5 @FU5 AGKV5 BEm5 COP5 ECLY5 GU Z5 H~24 5 JOP5 LCL]5 Np ^5 Pb~A5 QOP5 SCLa5 VR5 WOP5 CLd5 EO5 OPf5 ^5 CLh5 @۶i5 S5i5 OPk5 Qy l5 _=qm5 Y\)n5 n o5 `p5 _ q5 XH r5 ]L s5 Lyt5 Lu5 C5 OP5 CLx5 A{y5 L)z5 J 5 OP5 CL}5 H~5 E 5 E5 Ci(5 OP~5 CL5 B8P5 k 5 kh 5 F/5 I 5 G5 me 5 k_ 5 I5 E5 xd5 EV5 O5 I~5 L5 r 5 K5 B 5 P=5 z5 JP5 L_5 o^ 5 K5 Eʘ5 CL5 E5 qo5 OP5 CL5 CL5 CL5 CL5 CL5 CL5 CL5 Yg5 Ng5 avg5 _5 G 5 _ > 5 CL5 HCL5 ICL5 JCL5 LCL5 MCL5 NCL5 O]5 PCL5 QCL5 RCL5 TM5 VCL5 XC5 ZCL5 [CL5 ]| 5 `CL5 aCL5 bCL5 dOP$5 eF=%5 fH/&5 iHRy5 lCL*5 oGn,5 pZ/5 qOP.5 rN5 sCL5 tCL5 wOP5 yCL35 |n45 ~Au65 B375 p3385 b395 j:5 f4;5 eg<5 of5 OP>5 S+?5 F+K@5 EA5 V5 OPD5 BzE5 EضF5 EBG5 O45 D5 Il5 E95 ` 5 `$5 |H 5 k 5 j 5 t!N 5 u ~ !5 CL 5 CL5 CL5 c 5 CL5 pmy 5 @Q5 DG5 oI 5 ݞ*5 t>u 5 CL5 CL5 CL5 CL5CL5E5Hz^5zr 5jlr5] 5o; 5q9 5 n~k 5#r&f5&Cz5'Q-5)C5*ni5,Bq 5/Nd50\O51C@54w 55U 59n 5:a335;X 5<^ 5=CL5>CL5@CL5ACL5BCL5EOP5FOP5GOP5JCL5uG5vHqL5wI85xH@T5|J5J}e5 M,}f5 ] ^ ^ M5tE N5CO5HwP5CQ5TR5P S5p T5D}V5eR X5D-JY5Fn[5 \5X ^5boW_5xr `5CY)a5Ab5@Bc5z >5CL5CL5CLg5k 5CL5CL5CL5CLm5G%n5}o5]D 5CL5CL5CL5CL5CL5CL5CLw5vx5Ipy5O5OP{5e |5_mh}5qI~5]5 C5 F:5c ~5OP5W |5=CL5@F5AFme5CG95FLP=u5HCLt5ICL5Ks 5Mp 5NkĜ 55PH65QIq5SCL5TCL:5WMQ;5ZO(<5[R7?5\@;5^OP5`CLB5b{ C5cPlD5d@E5fj34F5ghGG5hg34H5iE L5jWM5kLN5lj\O5mA]P5n@aQ5oF\R5pGT5qFwU5rGփV5sE^U5tOP5vCLY5 Z5~OI 5OP5CL]5p ^5a5OP5CLa5Q 5OP5CLd5E*5OPf5^5CLh5@i5X5OPk5QQj l5`m5Yzn5n o5`p5] q5UB r5Y s5Lqt5Lu5Ck5OP5CLx5Ay5Nez5Jā5OP5CL}5I~5El5E|5Cd5OP~5 CL5 B?5k 5k) 5F/5I 5G5n% 5k 5I5E5xd5EV5Op5I 5 L5#r 5%K5(B 5)Lv5+z5,JP5-LX750o^ 51Kc52Eʘ55CL58E59pH5:OP5CL5?CL5hCL5iCL5jCL5m_5oNg5pavg5qF5rAH5sE5uCL5vCL5wCL5xCL5yCL5{CL5|CL5}]5~CL5CL5CL5M5CL5C5CL5CL5~# 5CL5CL5CL5OP$5F%5H&5R5CL*5GZ$,5Z5OP.5N5CL5CL5OP5CL35nY45Au65Dfg75}85fL95i:5e34;5hL<5j35OP>5Ri?5FS@5EA5Vc&5OPD5BE5EF5E5G5O<5B5G5C)5`i 5`5|lZ 5k 5j63 5t 5t !5CL 5CL5CL5_ 5CL5pmy 5} 50E*51o۔ 5356t>u 59CL5:CL5CL5AE5BHl5Ez 5GjS5J] 5Lo 5MqV 5Nno 5Qs5TCj5UN95VBջ5Xo5ZB 5]O5^]65_D+a5bw 5cJ 5flff 5h`5iX 5j^ 5kCL5CL5CL5CL5CL5OP5OP5OP5CL5G5Hk5I|5H@T5J5J}e53^}f5K ^ ^ M5t N5C O5HQP5C>Q5TR5P"S5o+ T5DV5eQ X5D$JY5F1[5{\5]^5c>_5x `5Ba5AHb5Auc5|{5 CL5 CL5 CLg5ki 5CL5CL5CL5CLm5GbKn5}o5]D 5CL5CL5!CL5"CL5#CL5$CL5%CLw5(tx5)G(y5*Op5,OP{5/e |51^}52on ~5\]5_C5`E5d ~5fOP5iVq. |5kCL5nFU5oFg5qG5tI~u5vCLt5wCL5ys 5{oƨ 5|l1 55~H65IV5CL5CL:5N#8;5K<5S0o?5@45OP5CLB5{w C5OD5@E5`F5oRG5WH5E L5VM5NN5h(O5A**P5@ Q5F^.R5GT5Fq:U5G˟V5EH5OP5CLY5~Ü Z5~# 5OP5CL]5p< ^5`5OP5CLa5Q;Y5OP5CLd5E 5OPf5^5CLh5@i5W?5OPk5Q! l5h\m5bQn5n = o5`Yp5`=q q5Z{ r5\ s5Lft5Lu5C5$OP5&CLx5(Ay5)S z5*J5,OP5.CL}50Iw~52E͝53Eh54C`s55OP~57CL59B1 5F/5?I 5@G5AnB 5Bk 5CI5DE5Gz5JEV5KO?5MIl5NK+5Qr 5SK&X5VB 5WT5Yz5ZJP5[L]5^o^ 5_Kc5Eʘ5CL5E5q5OP5CL5CL5CL5CL5CL5CL5CL5Yg5O)5cVg5Ip5D5KR5CL5CL5CL5CL5CL5CL5CL5]5CL5CL5CL5M5CL5CӞ5CL5CL5A"5CL5CL5CL5OP$5G%5H m&5Ng5CL*5GJ,5Z)5OP.5Nt5CL5CL5OP5CL35nP45Au65w375dY85\@95 iP:5 d;5 i<5 l5OP>5S`?5F@5EeA5VE5OPD5EE5EF5E-G5NQ5Dٚ5If5E&f5`b 5!c=5"|H 5#l5h 5$j63 5&t' 5'tz !5RCL 5SCL5TCL5Vb 5YCL5\p3 5]{/9 5^D5_o 5aX5dt>u 5gCL5iCL5jCL5kCL5lCL5oEX5pHi"5szcz 5uj@I5y] 5zn 5{qt 5|na7 5pp5C_5NF5Aؠ5pճ5B 5O5_;;5Ci5w 5O 5jY 5a5S35^ 5CL5CL5CL5CL5CL5OP5OP5OP5CL5G5HgR5IK5HC5J5J}e5a`A}f5y2 ^ ^ M5sj N5CO5IP5C|Q5 TR5!OS5"o T5#D}V5$en X5&D$JY5(F[5){ \5*Xȉ^5-du_5.x `50Aa52Ab53Ac54y56CL57CL58CLg5;k 5=CL5?CL5@CL5ACLm5DG(Tn5G}4o5H] 5JCL5KCL5MCL5NCL5OCL5PCL5QCLw5|{x5}IQy5M5OP{5e33 |5^- }5s~5]5C5E5c ~5OP5U |5CL5F5Fa5G5Pu5CLt5CL5tN 5o 5k 55H65JU5CL5CL:5M#;5Hc<5S}?5@;5OP5CLB5{in C5MD5@E5f=qF5zGG5hHH5E L5VffM5NN5h(O5A= P5@Q5FcR5FT5FesU5G]V5E35OP5CLY5~ Z5} 5OP5CL]5p| ^5^5OP5CLa5 P5 OP5 CLd5D5OPf5^5CLh5@i5U5OPk5P l5hpm5b(n5Dk o5G`"p5I_H q5JUff r5K[ s5ML^t5NLu5OC5POP5RCLx5TAҩy5URPKz5VK05XOP5ZCL}5\I~5^El5_E]45`C`s5aOP~5cCL5eB1 5hlR 5ik 5jF5kI 5lG5mn`* 5nl3 5oI5qE5szJ5vEV5wO5yI~5zK()5}r 5K85B 5Q5z5K 5LlA5o^ 5KU5Eʘ5CL5Eق5q5OP5CL5CL5CL5CL5CL5CL5CL5Yg5P5avg5I\5G(5Hz5CL5CL5CL5CL5CL5CL5CL5]5CL5CL5CL5Ns5CL5Cm5CL5CL5 Bc5CL5CL5CL5OP$5H %5H &5I5CL*5G<@,5 Z~75!OP.5"O1)5$CL5%CL5'OP5)CL35,nE@45.Au651uf752]g853[955iP:57v;58p<59v5:OP>5;SL?5Wp 5?OPD5@G;E5AEF5BE(TG5COB|5FF5GKf Gp `  ]Np  |   lo   j63   s   tx ! CL CL CL bTF  CL pPL  y#;  DJ ouq    #t/  &CL 'CL (CL )CL +CL .E /Hfj 2z7  4j- 7]  8n  9qt  ;nR  fr#3 iCW jN.  kAb lq> nB  qOͻ s` tC+ ww  xS'  {kY  |`, }R ^  CL CL CL CL CL OP OP OP CL G Hfj IH HF J J}e  V}f5 ^ ^ M s N BNO I-P CzQ T"R OS o7 T DCV d! X DHY F[ 鳉1\ ZWx^ e?>_ x ` Aa A4b Aٚc z CL CL CLg kM CL CL CL CLm ,G|n 0}4o 1\ 3CL 4CL 5CL 6CL 7CL 8CL :CLw =34x >IaHy ?O @OP{ Cd | E^L} GrR=~ I] LCXO MF: PU ~ ROP UV | XCL [F \FV5 ]G ^Fiu `CLt bCL dt  ep  fkĜ 5 HN6 I CL CL: MG; M< TC? @ OP CLB {Z C LSD @%E ozF yG pH En L V(M NzN h >O AMP @iQ FbR FT F`U GV E0 OP CLY ~ Z ~z OP CL] ph ^ ^{ OP CLa P% OP CLd D OPf ^ CLh @ni T; OPk P# l hQm an o o `p ^L q  W r  Y s  LQt  Lu  C OP CLx Aqy Pz K0 OP CL} I ~ E< EM Ca  OP~ "CL $B) &l  'l3  (F/ )I +G ,n}[  -lR  .I /E Y{[ \EV ]O _I~ `K3 cr  eL hB  jLv lz mK- nL~z qo^  rKU sEʘ uCL xEŞ yp zOP |CL ~CL CL CL CL CL CL _ Ng avg I E J > CL CL CL CL CL CL CL ] CL CL CL N, CL CҶ CL CL B= CL CL CL OP$ H% H & N CL* G-, ZPG OP. O0q CL CL OP CL3 nY'4 Au6 _,7 Mg8 J@9 j: i;  j3< !j3 "OP> #S5? $F@ %EA &V; 'OPD (H*E )E~F *E+ G +O[ /T9 0Y 1Rl 2`  5b 6{g  8l8  9jb  :sl  ;tj. ! >CL ?CL @CL C_޿  FCL Ho  Iy]w  JDY Ko,|  MQ Pt!N  TCL UCL VCL WCL XCL [E H_) zT  j*5 ]  n}[  q3  nD  pi CW NY] A rޖ Bz  O aO C w|  KI  j{  ` S ^  CL CL CL CL CL OP OP OP CL G Hk I HG J J}e MmS}f d ^ ^ M s N BO JDuP  CnQ  TR  O S ouq T C7V dC X D$JY FL[ \ \^ f_ x ` A<a A>b A!Hc  zG "CL #CL LCLg Oki RCL SCL TCL UCLm XFĽn [}yo \\I _CL `CL aCL bCL cCL dCL eCLw hwx jHRy kN\ lOP{ od"# | q^fB} rpk~ t] xC4 yFj@ |U ~ ~OP W | CL Fr FPi G Nu CLt CL t'  p5@  k- 5 H56 I CL CL: O; P< T?  OP CLB {LS C V,}D @E czF s34G ]H EN L ]RM U34N mO A_P AQ FiR FT F\cU GaV E# OP CLY ~' Z ~s OP CL] p ^ ^ OP CLa OR OP  CLd "DX $OPf &^ 'CLh )@Qi *R ,OPk -Ps l .em /`n 1n o 3`Fp 5_ q 6Y r 8Z\ s 9LMHt :Lu ;Cu CLx @A:y AMz BK\W DOP FCL} HI(-~ JE KEE LCcZ MOP~ OCL yB} |l8  }l5h  ~F I G n  lo  I E { y EV P Iy^ KA r  L B  Q z K1C L o^  KU Eʘ CL Ec pT OP CL CL CL CL CL CL CL ` Ng cVg I\ D H  CL CL CL CL CL CL CL ] CL CL CL Mf CL C CL CL DG CL CL CL OP$ H% H& O CL*  G .,  [  OP. O&W CL CL OP CL3 @n@4 BAu6 EiL7 FT8 GPf9 Ij0: Kl; LmS4< Mml NOP> OSJ? PF o@ QEMA RVL SOPD THE UEuF VE1cG WOB| ZUf [[ \T9 ]aY  `br a{r  cl  djb  esF  ftj. ! iCL jCL kCL nb  qCL so۔  t  uD vn`*  xO# t  CL CL CL CL CL E H\p z)B  j ]  n`*  q^  n5h  n C^ N AN^ tv B  O bC C wna  Ri  jٚ  a3 T` ^  CL CL CL CL CL OP  OP  OP  CL G- Ht I HG J J}e xO }f @^ ^ M /s N 2BqO 3JhP 4CYQ 7TR 8O-S 9oI T :CYV CL] @q ^ Bc{ COP ECLa HQZ IOP KCLd MD OOPf Q^ RCLh T@;i UO WOPk XP l Ygm Zan [m o ^`L%p `_ q aXW r b]( s dLIt eLu fC gOP iCLx kBy lKz nK oOP CL} I/j~ E E4 C^ OP~ CL Af l  lo  F/ I G n  l8  I E {/ EV O H L r  L B  R z L L o^  KU Eʘ CL E q OP CL CL CL  CL  CL  CL  CL  X  M  j  GH  Dff  Aff  CL  CL  CL  CL  CL  CL  CL  ]  CL  CL  CL  M  CL  Cm  !CL  "CL  $Bw  'CL  (CL  )CL  ,OP$  -He%  .H&  0K\  3CL*  6GP,  7Z=  `OP.  aOe  cCL  dCL  fOP  hCL3  kn,^4  mAu6  pc37  pU 8  qMS39  tjtK:  vm;  wq33<  xn,  yOP>  zS?  {F o@  |EA  }Wu  ~OPD  E5E  Ei"F  E5G  O  Vp  \g  T  a   ^?  {P   mm   j>   s   sF !  CL  CL  CL  `EA   CL  o   B  DB  nB   ebZ  t   CL  CL  CL  CL  CL  E  HW  z   j%  ]   vR   tz   n&   n  D  Q  A  |o  B   N  cu  CB  wna   O   j   (`  )Rf  *^   +CL  ,CL  .CL  /CL  0CL  3OP  4OP  5OP  8CL  ;G  HG  BJ  CJ}e  L}f @U^ ^ M  Zs N  \BO  ^KFP  _C<*Q  bTR  cONS  o T  CZmV  c4 X  DHY  F[  A\  S^  ay_  x `  @ۘa  G >b  D4c  B>  CL  CL  CLg  k  CL  CL  CL  CLm  F}=n  }o  [#B  CL  CL  CL  CL  CL  CL  CLw  vx  FaHy  Pu  OP{  b |  _}  s1X~  ]  B  E  )b ~  OP  T; |  CL  FX  F  G[  Ju  CLt  CL  uX   oa   k 5  H5s6  Is  CL  CL:  L;  Jy<  Ua?    "OP  $CLB  &{= C  'V#D  (@FE  *aQF  +t(G  Tb(H  UE+ L  V_M  WX{N  XnO  YAiP  ZA,XQ  [FmeR  \FT  ]FMU  ^G V  _E  `OP  bCLY  d~s Z  e~l^  gOP  iCL]  kp- ^  meb  nOP  pCLa  sRk  tOP  vCLd  xDnQ  zOPf  |^  }CLh  @i  MK  OPk  P` l  g33m  a(n  m3 o  `p  `\) q  X r  \R s  LAqt  Lu  C  OP  CLx  BEy  R*Wz  Ka  OP  CL}  I(-~  Eu  E   CQ  OP~  CL  A  m   l   F/  I  G  n   ll   IΘ  E  z  EV  O  I$  L  r   L  B   Lv  z  M   LΫ  o^   KF  Eʘ  !CL  $E  %r  &OP  (CL  )CL  *CL  +CL  ,CL  .CL  /CL  2Yg  3Ng  4l0  5H=q  6E  7Aff  9CL  :CL  ;CL  =CL  >CL  ?CL  @CL  A]  BCL  CCL  DCL  FM  HCL  JC  LCL  MCL  OAH  RCL  SCL  TCL  WOP$  I%  H% &  I<  CL*  G,  Z  OP.  Oh  CL  CL  OP  CL3  n-4  Au6  al7  V8  Ll9  j:  p ;  jFg<  q  OP>  Sf?  F o@  EA  W2  OPD  CE  E[F  E8G  O1  V  \  T  b;A   c  z   m<8   j>   s   sl !  CL  CL  CL  `   CL  of   H2  D-   m   G?   t'   CL  CL  CL  CL  CL  E~v  HJM  z   j*  ] =  n   qˈ   n3   p&f  Ci  S  @u  wZ  Bq   M  dݢ  B*  Jwna   KL%   OjY   P`  QT`  R^   SCL  TCL  VCL  WCL  XCL  [OP  \OP  ]OP  `CL  cG~_  dHz^  eI\  fHG  jJ{  kJ{}e  \}f  @^ ^ M  s2 N  BKO  KnP  C Q  U!\R  P S  o T  C :V  bA X  D GY  F[  \  Z^  aT_  x `  @a  DO\b  B\)c  ~ǯ  CL  CL  CLg  k  CL  CL  CL  CLm  Fhmn  }4o  Z[  CL  CL  CL  CL  CL  CL  CLw  \x  Ky O OP{ a | `z} sR~ ] BҮ E "~' ~ $OP 'SK | )CL ,F6 -E` /G7 2N,u 4CLt 5CL 7vb  9o  :k 5 N i\*O AP AQ FoR FGT FGU GV D` OP CLY ~@ Z ~@ OP CL] p< ^ ea OP CLa RWP OP CLd DJ OPf ^ CLh  i SQ OPk P l h =m bn n3 o `p \ q W r Y s L9>t L u C OP CLx B)y Su]z K OP CL} I~ E`) ET CA OP~ CL AL m<8  ll  F I G oK  m  IΘ E z EV  O  Il  L r  L  SV? F@ EWA V OPD B-E EMF E32G OMN WVg ]3 UY c  a! zF  mh   j>   srb   s ! CL CL CL b.  CL nn  H[ B  lD  F7  s  !CL "CL $CL %CL &CL )Ey  *H> -z?  /j( 2] = 4m  5qˈ  6n  9p3 A  hxx; jB  mN ne oB_ rwna  sT  vms3  xa  yX  z^  {CL |CL }CL CL CL OP OP OP CL Gn H} I1 HF J{ J{}e \e}f 7A7^ ^ M s. N B&O K*P BQ UR P*S oI T BV ak X CFY Fn[ 㲊\ Zl^ bZ_ xU ` @a Bb Anc } CL CL CLg k9 CL CL CL CLm FiUn }po Y CL CL CL 0CL 1CL 2CL 3CLw 6sQx 7Guy 8PW  9OP{ =` | ?_ج} @q(~ B] EBŭ FF- I~ ~ LOP ORǮ | QCL TF  UE֨ VG/ ZGu \CLt ]CL _vd  `oj  bkR 5 dHg6 eIK gCL hCL: kK; Oa< U? @Q OP CLB {/ C U|D @E cF t >G pH Es L X\M RQN hHO AP A=Q FpKR F T F@NU GV D OP CLY ~ Z } OP CL] p3 ^ d OP CLa RH OP CLd D-  OPf ^ CLh : i X OPk O l gm an nQ o _p ` = q X r \u s L1t Lu Nq  CL  CLx AW3y Ozz K OP CL} I~ EJt E"j C7 OP~ CL A{ !mv  #l  $G %I/ &G 'B  (m  )IΘ *E ,xd /EV 0O 3I~ \KA _r  aL dB  eS gz hL iL lg+  mKF nEʘ pCL tE' uo vOP xCL yCL zCL {CL |CL }CL ~CL Pg R) avg DH D D CL CL CL CL CL CL CL ] CL CL CL M CL Cݑ CL CL A CL CL CL OP$ IV% H0& MU CL* F, ZX, OP. OD CL CL OP CL3 n4 Au6 Zf7 Qg8 L 9 jp: eٙ; gy< h OP> S? E`@ EpcA W29 OPD BE E<F $E&G %O* 'Wi )]` *UP +bی  .` /y  0m  1j  3sU:  4s ! 7CL 8CL 9CL ;_/  >CL An0  BFm CC. Dk  F(  Isl  LCL MCL OCL PCL QCL TEs UH: XzT  Zi ^] = _mh  q  m  r) Cl M0 A! y  B  Os ff BE w_  L  q  `f V ^  CL CL CL CL CL OP OP OP CL G^ H~ I HE J{ J{}e F^}f _A` ^ ^ M sz N C$O L{P BQ U;R PS  @T  B(&V  ` X  CFY FTK[ By\ V^ bk_ xU ` AGa Eqb D@c Bz CL CL CLg "k $CL %CL 'CL PCLm SFyn V}s4o WX׷ YCL ZCL \CL ]CL ^CL _CL `CLw ct(x dH\)y eS( gOP{ j`"# | l`E]} mt~ o] rB" sF w~Ü ~ yOP |T | ~CL F  Ex G O`u CLt CL wɺ  odZ  khs 5 H 6 I CL CL: M[2; P8< U? @X OP CLB { C SjD @hE fF nHG }HH Eg L TM PN kGO AAP A]Q Fk8R FT F3U G3V D٦ OP CLY } Z }R OP CL] o ^ c. OP CLa Q OP CLd C OPf !^ "CLh $c i %W' 'OPk (O l )hRm *cGn +mq o ._xp 0` q 1Z r 2]f s 3L't 5L^u 6I 8CL 9CLx ;@y Kq ?OP ACL} CI~ EE4 FEr GC&f HOP~ JCL LAAh Om  Pm  QF RI/ SG |B  }mYk  ~I  E xd EV O I% K<- r  L B  O z L Lû g+  KF Eʘ CL E q OP CL CL CL CL CL CL CL Pg P6f cVg E F D CL CL CL CL CL CL CL ] CL CL CL M CL Cܪ CL CL @ CL CL CL OP$ I]8% H3& I? CL* FQ, ZD OP.  O  CL  CL OP CL3 m4 Au6 [37 IFg8 Aٚ9 Dj4: Fcl; Ge< Hdf IOP> JS? KE @ LEjA MW= NOPD OI E PE)F QEG RO67 VWi W]` XUf Ybh  \d_Z ]x  ^m  `j  as8  br ! eCL fCL gCL i_d  mCL om7  pCpi qD; rj  tD(N wsF  {CL |CL }CL ~CL CL Ep H0 zF^  i/ ] = l  q  md  nf Cg P @M y  B\  N@ g BXD wQ?  M=0  rٚ  ` Wf ^  CL CL CL CL CL OP OP OP CL  GMv  H} I8 H= J = J =}e t}ú }f B~^ ^ M +s2 N .BO /LJ)P 0BQ 3UiR 4OoS 5AAhT 6B V 8`@. X 9DFY ;F5&[ <\ =^ ^ @bP_ Ax ` CCSRa EEb FDc GCCLCLCLg k;  CL CLCLCLmGn}oX CLCLCLCLCLCL CLw#vQx$Fy%TL&OP{)_ |+`/}-rl~/]2C}$3F?6~ ~8OP;TD |fCLiFjEkGnG2uqCLtrCLtxk un/ vj 5yH76zI|CL}CL:L;Lh<V3O?@JeOPCLB{ CRvD@hEhGFtGoHER LU{MP4NkOA PApQFs1RFTF+yUG~VD8OPCLY}X Z}X OPCL]oXB ^bOPCLaQ[OPCLdC{OPf^CLh iUȐOPkOM lfm`nmxR o__p^ qY r^\) sL%5tLuM0CLCLx@4yK4zKOPCL}I~,E.E3/Co0OP~2CL4A6m4 7m<8 8F/:I/;GI ?EAxdDEVEO/GI6/HK+Lr NLQB RLvTzUKCuVLûYg+ ZK82[Eʘ]CL`E:aqcOPeCLfCLgCLCLCLCLCLPgQ0avgGE\)AGCLCLCLCLCLCLCL]CLCLCLMCLCCLCLACLCLCLOP$IHW%H6k&P xCL*F,YJOP.OACLCLOPCL3m4Au6Ws37J8AS39i:kY; gfg< j OP> S'? E@EpcAV OPDJZ3EE"iFEGO6W\Uvgb a3xy m  j !s T "rn !%CL 'CL(CL*at -CL/m X} YC[j \FEN ]s `CLaCLbCLcCLeCLhElbiH@Tl{LS niq] =rl5h sq um xpc3{Cd]|S }~~z`B NhܼAwB UrN jQ `pX ^ CLCLCLCLCLOPOPOPCLG>HyvI"H/J\J\}e\[}ftB^ ^ Msj NB&OKPPBQUdRPS{/9 TA4V`e XCFY F[!{\"R[^&br_'x `)D`a*Eb+DRc,C.CL0CL1CLg4k' 6CL7CL8CL9CLmOA5PAQFs1RF TF!UGoVDOPCLY}T Z},l OPCL]o ^a9OPCLaPLOPCLdCμOPf ^ CLh~' iTaOPkOȓ li =mc nnR o_p` qYf r] sLtL7uLW"!CL"CLxL yMPQzNK"POPRCL}TIw~VE \XEYCYZOP~\CL^@.`me amYk bG )dI/eGfB gm hI iEkxnEVoO`qI~rK&Xur xL{n |S~zLL`g+ K82EʘCLEpTOPCLCLCLCLCLCLCLXYLgac4E=qDffB=qCLCLCLCLCLCLCL]CLCLCLMXCLCCLCLBɀCLCLCLOP$I1%H8&NCL*F,ZOP.O9CLCL OP"CL3%m:4'Au6)Uf7*H8+Bf9.iK:0e;1e<2f3OP>4Sݱ?5Eٞ@6EkA7Wu8OPD9KYsE:EXF;E!GV@\4AUBc9 EaFxy Gn4a Hj Ir+ KrE !NCL OCLxCLz^a }CLmYk y# DYk E s CLCLCLCLCLEfHU/zcz il] =k) qHF m pC^St}!{XB N~iȜB?w4 K+ nD `Wf^ CLCLCLCLCLOPOPOPCLG+ HtIH#PJ =J =}e\}fB^ ^ Mrc NBOLuPBQQAURBOSCpmy TDAVE_ XFCEYIFs[Jl\Kb6 ^NbC _Ox `QCuaRGbSGcUCWCLXCLYCLg\j˚ ^CL_CLaCLbCLmeH(nh|4oiV kCLlCLmCLoCLpCLqCLrCLwu~=qxvH\)ywOxOP{^ |^}uӫ~]CE}~ ~OPN2 |CLEEFM0uCLtCLxcT m i 5G6IiCLCL:Kз;O1<W#?@OPCLB|C CPD@hE bHF kfgG nH DN L T>MPuNjOA߻PAQFqRFTFUG]VDiOPCLY} Z| OP CL]"nT ^$`%OP'CLa*Pf+OP-CLd/C1OPf3^4CLh6~s i7Q9OPk:O< l;j33m\S?]E@^EeA_We`OPDaFEbEFcE'lGdOrgXh^3iW0jb mdxnx on`* j r r]\ !CL CLCL_x= CLl z Dgj Ssc CLCLCLCLCLEd@HczF^ i] =k p- m r&fCZjRK}&|]UB OKjA w%  NT  k  a  Xf ^  CL CL CL CL CL OP OP OP CL G Hr5 I H !J\ $J\}eG}fB^ ^ M ct N fBO gL2P hB}HQ kUȕR lOS mo۔ T nA!}V p^ۣ X qCEY sE[ t\ uPg^ xbP_ yx ` |Ba }DHb ~Dnc B CL CL CLg k  CL CL CL CLm Gn Vgo VE  CL CL CL CL CL CL CLw wHx Iy Pu OP{ ] | `/} t~ ] C EZK ~ ~ OP Q5 | CL EE DP F Hu CLt CL yǮ  nu  j# 5 H6 Ied CL CL: M\; P*< (W? ):  +OP -CLB /|R8 C 0OI>D 1@E 3bHF 4lG 5gH 6Djn L 7TkM 8NN 9i=qO :A@P ;A;Q F U ?GOTV @D BOP DCLY E~ Z F|&  HOP JCL] Ln ^ N`? OOP QCLa TP UOP WCLd YC [OPf ]^ ^CLh `~@ i aO cOPk P l em an n o `5p _\) q V r ZQ s LCt Lu L CL CLx r y MMz J OP CL} I :~ D F' Cv OP~ CL @n nB  m  G I G B  me  I E x EV O I% K+ r  L n  Lv z; L L` g+  M Eʘ CL E pj OP CL CL CL CL CL CL CL Yg N4 avg E D Dff CL CL CL !CL "CL #CL $CL %] &CL (CL )CL *M TCL WCݑ YCL ZCL [A ^CL _CL `CL cOP$ dIs% eH<6& hM$q jCL* mF, nYՅ oOP. pO rCL sCL vOP wCL3 zmgg4 |Au6 Y7 Sf8 {9 iH?: o3; q@< oٙ OP> SW? E@ E[A Vr OPD D"E DF E!G OWh aP hg _4 c/  a w^  nn  ju  r  rs ! CL  CL CL a  CL la7  C  CSc i|  F3  s8  CL CL CL CL CL Ebq Ho{ zu  i? ] = j  p  m  p "CW #S` $}ި %}C 'BH  *N ,b} -N3 0w  1Ui  4oD  5` 6XC3 7^ 9CL :CL ;CL CL?CLBNgCNVfDcVgEEFDffHA >JCLKCLtCLuCLvCLwCLxCLy]{CL|CL}CL~MCLCCLCLBCLCLCLOP$H%H<&PƜCL*F,ZOP.OVCLCLOPCL3m4Au6U7Bf8zff9i:s ;oy<s,OP>S7?EF@ES_AWwOPDE6uED%FEGO"ahS3_cZ a!v n`* ju rz qJ !CL CLCL] CLlD IwDGixB Z s  CLCLCLCLCL=E]>HmAzcz CiF] =Gi& Hp$ Jm) Mr#3PCWQR_<RiS/ UB YO Z_[Gy^wl _K:T bj c`fdXf^gCLhCLiCLjCLlCLmCLpOPqOPsCLvGhH}ICH8,J\J\}ej)}f Cl^ ^ Mr' NBKOLPB0SQU+ROSo T@kV]/ XCEYE<[д]X\UŰ^b2_x `APaGffbD>cCCLCLCLg jI  CLCLCLCLmGn} oTj CLCLCLCLCL CL!CLw$t(x%I{y&Rp'OP{*[33 |-ā}.u'U~0]3CeN4E<7}f ~9OP=R^ |?CLjEmkD!lFgnFupCLtqCLs{x tm uj" 5xH6yIA{CL|CL:LK;H@<XG?' OPCLB{in CL/D@EczFkGdHD Lo=qMM(Nf OB PAQF{RFrwTEUG2OVD)OPCLY~ Z| OPCL]n ^]WOPCLaN!OPCLdu' CLf^CLh~' iRX&CLkO lpmlnI@o`} pb q]R r`) sKtLuNCLCLx yJlzJOPCL}Hd~D0FTH1A'C3CL~5CL7K :n ;n G?B AnB BICEExHEVIO/KI~LK()OoAQLTm UQWzYLZL]g+ ^SC<_EʘaCLdEepfOPhCLiCLkCLCLCLCLCL`9Pgj3DFAGCLCLCLCLCLCLCL]CLCLCLMCLCCLCLAqCLCLCLOP$H%H=&KCL*F,ZOP.OCLCLOPCL3mY-4Au6Y@7C38Ag9i: k; m< j` OP>S?E@ELAW[OPDK;EDuFEGOA c3j33a3c  b!vU~ "nB #j $r]\ %qt !(CL *CL+CL-_LK 0CL2k 3G\CSc^h b{cr fCLgCLhCLiCLkCLnEXoHgRr{ tiw]xi[ yo {mw ~r CURB|fB O\Emv O3 mj `ɚX3^CLCLCLCLCLCLOPOPCLG<HIrHJMJ\J\}ebWh}fsDK[^ ^ Msk NBOMPAQUROQKSo7 T$@)OV%]A X&CEY(E[*Z\+W^.ae_/x `0AZ#a2Gub3DW c4C{7CL8CL9CLgCL?CL@CLBCLmEF-nH{fgoIS׸ KCLLCLMCLNCLPCLQCLRCLwU{xVHfyWRXOP{[Z |^a}_sZ~]CEEMD@~OPNm^ |CLEF DFLIGuCLtCL|7L odZ i 5GV6I.CLCL:L;M<Y5?@}BCLCLBzr CV&D@Eh(FnGjpHD3 L\MUpNn4OBPAQFkRFVTEeUG%V|& CLCLY| z Z|= OPCL]m ^\OPCLa N@ OPCLd~ CLf]CLh@iO*CLkN lt=qm qzn#Lfo$`p&b{ q'\ rP] sQKbdtSLuTKHVCLWCLxY yZL>z[JP]OP_CL}aHO ~cDdFigvI jCL~kCLm~' on pn% rG&"sItGuB vn}[ wIxEzx}EV~OI~K&Xr Ll LvzVLJPg+ S&EʘCLEpOPCLCLCLCLCLCLCL^lPglgAAG|{CLCLCLCLCLCLCL]CLCLCLMCLC<CLCL@CLCLCLOP$H%HFX&!J$CL*'F;,(Z)OP.*OН,CL-CL/OP1CL34m246Au68Vfg79J8:D9=jZ:?u;@sFg<ArBOP>CS?DE@EEDAFVcGOPDHL'EIDȬFJEGKOCOjPq3QhfRdC }[Җ~u n0 j r# qt !CL CLCL`S CLk BFC/h Fga r CLCLCLCLCLEXHh:{/9 iȜ]n qJ mh pDBTbFOw9B Nʰ\vE;vܹ Tu rf `iX ^CLCLCLCLCLCLOPCLCLHH~IxuHW J J}e\DQ}fDG^ ^ MJrc NLCOMLPNBQQVRROySSouq TTe VV\l XWCEYYE1[Z]X\[U-^^a_`y `aAacF#bdD{ce@\gCLhCLiCLgmjW oCLpCLqCLrCLmuFnx{ozSn |CL}CL~CLCLCLCLCLwxHǮyRaHOP{[ |b}w"S~]C'EA~CLL3 |CLE"@;FYMuCLtCL|@ n J j 5H 6I*cCLCL:M;Nm<Y? ACLCLByz CWD@Ea{FkHGZRHDL L@\MiNo=qOB!PAQ FmeR!FRT"ElU#GV&{H (CL)CLY+y{ Z,},l .OP0CL]2me ^4a5OP7CLa:O2;OP=CLd?@-SBCLfC]DCLhF@iGTFBCLkN l w33m un Moapb{ qZ) r\{ sKBtL'uLCLCLx yPQ-zIOP"CL}$HVF~&D9'Fs*{/9 -CL~0CL2~s 4n 6nB 7G&"8I>9G:B ;n dIeEgxjEVkPnIHWoK?roAtLwm4 xTetzz{L|JPg+ T EʘCLEpOPCLCLCLCLCLCLCL^)NgcVgAHAff|{CLCLCLCLCLCLCL]CLCLCLMCLC<CLCLBCLCLCLOP$H%HR&QCL*FW,ZJOP.OICLCLOPCL3m 4Au6Tf7GS38x9j:,yg;-q<.u/OP>0Sk?1E@2EC A3WKa4OPD5MuE6DTF7E BG8ON;jfd AciBuk Cn Ej> FqJ Gq9 !JCL KCLLCLN^'U RCLTlo U| VCWi XF Yr \CL^CL_CL`CLaCLdEUeHc{ ih] =n0 r]\ mK p3DTYKWq9B3 NF[~Dvܹ K rU `c3X3^CLCLCLCLCLCLOPCLCLHr5HQI5GH$8JJ}eX\E}fE^ ^ Ms NC"OLPCQVROfSouq Tw V\ XCDY E[!1\"VI^%aȤ_'y `(@a*Fb+D(c,B.CL/CLXCLg\jh ^CL_CL`CLaCLmdFng~34oiR kCLlCLmCLnCLoCLpCLrCLwu~\*xvH\ywS8RxOP{{Zwx |}b5}~s~]C NE~z ~CLW[o |CLE KB6FHSuCLtCL~+ nC j 5H\p6I5GCLCL:M';KK<Y[?@=CLCLBxWc CVDD@GEbGF kfgG!Y >H"D L#@M$hN%oLO&B+P'A Q(F]tR)FQT*EU+FV.{Z 1CL2CLY4x# Z5}: 7OP9CL];mi ^=c-e>OP@CLaBP COPECLdG~# JCLfK]LCLhN@.iPP%RCLkUO9 lVvmXs nZM&foapaf qZ r\ sK5tKxuLHCLCLx7 yIzIL\OPCL}H~D!FgM CL~CL} B n}[ G4I>GB n I/ExdEVOISK oAK=n}[ Q{uULIg+ QEʘCLEpsOPCLCLCLCLCLCLCL`Ng lg G  _ >  _ > CLCLCLCLCLCLCL]CLCLCLMICL Cm!CL"CLLAOCLPCLQCLTOP$UH%VHSa&YL"[CL*^G,_Z`OP.aO0qcCLdCLgOPhCL3km4mAu6pOl7qI 8ruf9tkX:xty;yp3<zq3{OP>|S?}E"@~EC AW*POPDKEDFEPGOzk@pfh#3e aiTvg- m j q pX !CL CLCL_޿ CLl5h | BEh ͨ$ r CLCLCLCLCLEVHt{ iʿ]m- q3 m. mfEP^Nk]Bz "Pc#P@k$Ci((v( )Qn ,pD -`S3.Xf/^0CL2CL3CL4CL5CL6CL:OPyPW OP{Z |bq}w"S~]BE~z ~CLZ/ |CL E%s B FOuCLtCL~ mF iƨ 5@HA6AI+KCCLDCL:GM;JR<KZ#g?LAOCLPCLBRw CSSDT@EV~\*FW@{GXl=qHYDQ LZ` M[X34N\rzO]B7P^AuQ_FYR`F3lTbEUcFVe{/9 hCLiCLYkw Zl} nOPpCL]rnn ^tbWuOPwCLazP{OPCLd~s CLf]CLhAiJeCLkOG lB mA\ nO@oa|pb q[R r_ sK+tK[uMGCLCLx' yOziP0CLCL}H@~DFX@CL~CL} B n GI> G B  oK  I/Ez?EVP.CI~K$oAK?n !Lv#{H$L%IM(g+ )Q*Eʘ,CL/E0o81OP3CL5CL6CL7CL8CL9CL:CL=`3>Y6g?lgAG B_ > C_ > mCLnCLoCLpCLqCLrCLsCLu]vCLwCLxCLyM{CL~CӞCLCL@CLCLCLOP$H|%HZ&IbCL*G,[HOP.O)CLCLOPCL3lҽ4Au6E3748u&g9k:t`;qf<qS4OP>S?E@E:AVOPDHݢEDFEGOkkfqph3e buc m jp q^ pӖ !CL CLCL^ CLkd HDh * rz CL CL CL4CL5CL8EP^9Hs<{/ >iB] =Cl Dq EmQ HpC3KELNOP,RgWkTB}q WP9XG\YG\v( ]Q ak b`\cV3d^eCLfCLgCLiCLjCLkCLnOPCLCLIDG5H(GOJJ}eG}fF^ ^ Mu NCCOLPBؽQUROtSouq T~ V[< XD GYDb[϶Z\Q[^cr_yr `@1aG{b D@c E=q CL CL CLg j  CL CL CL CLm Fran ~o R^  CL CL CL CL CL CL CLw "~ x #HLy %PG &OP{ )Z"# | +cA} ,t~ .] 1B 3E؍ 6~s ~ `CL bSb | dCL gECS hB/ jF mHu oCLt pCL s~F  tn  ui 5 wHV6 xI- zCL {CL: ~NH; M6< W? A CL CLB w3 C P8D @E q(F xG `zH D L M >M ~N [34O BBzP A2Q FER F(T Eo$U FtV T CL CLY vv Z ~  CL CL] n`* ^ E CL CLa GgR CL CLd U  CLf ] CLh A:%i H CLk NL l F m C\ n \ffo a|p d q ] r ^\ s K.t K,u GWc CL CLx  y Oirz i|^ (CL *CL} ,H]~ .E  /F~ 0A 2CL~ 3CL 5}h  7B  8n  :F/ ;I> B  ?I/ @E BzJ EEV FO HIg5 JK&X MoA OK? Rm4  ST U|% VK= WI Zg+  [Q \Eʘ ^CL aE co8 OP CL CL CL CL CL CL CL Yg Ng lg G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL M- CL Cm CL CL BUZ CL CL CL OP$ I% Hd& Rf CL* G, [  OP. NY CL CL OP CL3 l4 Au6 M7 Gf8 wff9 k": v; w4< tf OP> S M? Ej @ E+zA V[ OPD IRE DF EG O  j q h@ e_  dJ u:  m  j>  "q  #ph ! &CL  'CL (CL *]+  UCL Xk)  YI/j ZCa [g  ]ں `r]\  cCL eCL fCL gCL hCL kEOw lHyv o{  rio u] vl3  wp  xl  {rٚ ~E  N7o O e B  O V I v(  K  l7w  ` Wf ^ CL CL CL CL CL CL OP CL CL H: G HL G> J J}e ]U}f sF^ ^ M s N C O MP CjQ !U`R "OtS #of T %~' V &[ X 'D?MY )D5[ *x7\ +Qq^ .cu_ 0yr ` 1@1a 3FBb 4C+c 5B 7CL 8CL 9CLg =j  ?CL @CL ACL BCLm EF]n H}o JQ,  LCL MCL NCL OCL PCL QCL RCLw Vy\x WHLy Q OP{ Y"# | aK} v ~ ] Bʻ E ~24 ~ CL Q | CL EMI Dz F Jeu CLt CL ~V  mZ  i8 5 I\6 IA CL CL: Lz; K< ZI ? B5 CL CLB x:D C T8sD @E x=qF 34G bHH D L t8RM kN ET{O BOP B}Q FDR F8T EnU FV T0 CL CLY u Z Aq CL CL] o ^ GJY CL CLa Hs< CL CLd Fv  CLf ] CLh A:%i L~ CLk NU l F m DaH n I\fo Jap La q M\3 r N]Ǯ s OK*t QK u RE g TCL UCLx W@y XNz Z_ \CL ]CL} _H~ aEH bFנ cA_/ eCL~ fCL h~s  kB  ln  mF nI> oG pB  qB  rI sE vx yEV zO |H }L oA K/q m  PO |gg L I" g+  Q Eʘ CL E o8 OP CL CL CL CL CL CL CL ] Pg pg G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL M CL Cܪ CL CL CLCLCLOP$I#%Hk&MQCL*"G,#Z$OP.%N'CL(CL*OP,CL3/l,41Au64Uf75Q386F98l::9;;z33<>S`??EJM@@EAAVBOPDCL_EDDvFEDGFNJk@KpthS3ufZ xazZyt {mi |jp }qHF ~p| !CL CLCL`' CLj C B)g[~ μr@3 CLCLCLCLCLEJ Ht{ iB]k p^ l sLE OtMWeOBq OUHv Sx r&f `X^CLCLCLCLCLCLOPCLCLH1GFHF J J}eWg}f F^ ^ MMt NOB&OPMSoPQCQTU-RVOCSWo; TX}[ VYZJ* XZDuWY\D[]\_Pal^bd) _cy* `d@afI:bgCchCjCLlCLmCLgpjG rCLsCLtCLuCLmFLan}oPV CLCLCLCLCLCLCLwxRxHyQ>OP{XDD |b`}w~]BHE}h ~CLP |CLECSE^UFs1OuCLtCL= m i^6 5I'6IW CL CL: J; JZ<X?ByCLCLBw3 CVD@EvFwGg{HD LpMh4NCO B[)P!BQ"FBR#FVT$EU%GV( +CL,CLY.u' Z/Bn2CL3CL]5n$ ^6Ik9CL:CLa=KӜ?CLhCLdj^ lCLfm]oCLhqAHirQ uCLkwO$ lyE mzC8R n}Z3o~b)dpg q_8R ra sK,tK!uECLCLx yQIzS#CLCL}Hd~E1GA#CL~CL~z B oK GCI>GB B IExEVOPIMLoAK<-l OPP|LIg+ SV*U?E/@EAVkOPDM֯EDoFDGNslyFfpf. bXtV m jp q+ pA !CL CLCL]< CLj y Cg ƈr# CLCLCLCLCLEVHj { i]k p3  lH  r#3E<QS jB O\uIuHjv Nq "r #a33$Y&^'CL(CL)CL*CL+CL-CL.CL/CL0CL3I?C]G^H _FYbJeJ}eVP`}fF|^ ^ M}sM NBOM"PC QUȕRO;S@T}xB VZJ* XD\YD[\Or^dpR_y* `AaDubD>cBqCLCLCLgja CLCLCLCLmFn~@oPZ CLCLCLCLCLCLCLw@)xMuyQOP{X33 |eR=}v~]BE} ~CLR |CL&E9^'E(F)F u,CLt-CL/ 0m" 1i 54IGn65Ii7CL8CL::Hzx;;Kp<HJD LKsMLk >NMF+ONBdPOBQPF;eRQFTRE^USGGB B IExEVOPISL oA Ll Q|9K<-Irg+ QEʘCLEnw OP"CL#CL$CL&CL'CLPCLQCLTb@UPgVcVgW_X_Z_\CL]CL^CL_CL`CLaCLbCLc]eCLfCLgCLhMjCLmCҶoCLpCLrt4 tCLuCLvCLyOP$zIU %{Hy&~K2CL*G *,k7eOP.NCLCLCLCL3ly4Au6P7@8t@9nm:E;FS3<@CL>W?E0@DAYdCLDPEDFDHGVyu3{fr3g b8txY m7 jp p p !CL CLCL] CLk uS[ Bwgn AK rs  CL!CL"CL#CL$CL'Ew;(Hh:,{ .i1]j2k 3p< 4l 7q9;Ev:\P7x^d]_y8 `C.UaIbFcE>CLCLCLgk < CLCLCLCLmGen~goPZ CLCLCLCLCLCL CLw DffxO#yP{OP{X |bL}w<~]DChEFqvH~Ü ~JCLLV׬ |OCLREFSD,QTFWMfuYCLt[CL]@ ^mc _i 5aI`6cIrdCLfCL:gG );iSi=<jZ|\?kD_mCLoCLBpx+ CrKTDs@gEtELFvOQGw@HxD Lyn(Mz` N{E\O|BtP}A Q~F<RFTEUGOTVzu CLCLYsl ZC CLCL]l~k ^I(-CLCLaJCLCLd@RCLf]CLhAiWCLkOT lI mH n\obpb q\L r^ sK)tKuHUCL CLx@-SyN>zJZCLCL}H~FfF<ACL~CL@"EV#EV$EV%EV&EV'EV(EV*EV+E-y$0EV1O3I~4K?7r 9LUZ?EQ@EAVCLDHdEDFEGUwsfz#3p3g etC] mh jp p o !CL CLCL_ CLk. tY Cgj F qJ CLCLCLCLCLEXH^A{ i]jl5h p- l o3E}Sgd ,K.B 1N2H=3H{6v 7T. ;jD <`f=Y`>^?CL@CLBCLCCLDCLECLFCLGCLICLLI^!MGNHOFESJTJ}e[}f]F^ ^ Mu NBۢOMPB֐QU/RO8VSA{T}= VZ; XDmYDT[Z\Ow^e_yG `D`aHbFcFCLCLCLgk < CLCLCLCLmH{Fn|oPR CLCLCLCLCLCLCLwAGxLQyROP{X |a}vV~]CF1 ~ ~ CLO |CLEwBތFLuCLtCL 1' !mA "h+ 5$I6%I'CL(CL:*E;+RB<,Z?-DXCLYCLB[wS C\VD]AE_I{F`RQGatHbD, LcKHMdG@NeKOfB\PgBQhF7 RjF+tTkEwUlGYOVmEHoCLpCLYrs ZsC/uCLwCL]xk ^yJn|CL}CLaL CLCLdAW3CLf]CLhAҩiLCLkOw lJz mIaH n[ocJRp_\ qYG rYf sK*tK %uCCLCLx@QyQ#zL(CLCL}Hs<~FFzRA5CL~CL@XEVEVB B B EVEVB ExdEVP'TI{.K<-r !L$B %L>'}$(JP)IZ,g+ .SCL?CLBa)CYgDu3EeF_G_ICLJCLLCLMCLNCLOCLPCLQ]RCLSCLUCLVMXCL[CTCLCL|` CLCLCLOP$I%Ho&KmCL*G`{,a@OP.NCLCLCLCL3lbS4Au6`7L8x9rE:G;E<DCL>U?E@E5sAVMCLDCBEEFEN^GUe;w~tgL csk mYk jb p< n !CL CLCL\^ CLk @-SBg   q CLCLCLCLCLEHi"{/ ir!]j"la7 #q+ Llp OmRETP\WpX XF>K[BxR ^Pc_G'`H9Qcvt eM hoU i`fjXfk^lCLnCLoCLpCLqCLrCLsCLuCLvCLyIS<zG{H }FII}e Q}f F^ ^ Mt NBʅONPC@QU/RO*Sr@3 T|" VY XDsYD[Ӷ\K^e_yG `CaEbEcF+CLCLCLgk: CLCLCLCLmHOn~c4oPV CLCLCL CL!CL"CL#CLw&zx'Ipy)T>*OP{-W |/d:}0x7~2]5D7F1:~@ ~V' |@CLCExDD?FFIH-uKCLtLCLN~ xl yh/ 5{I6|I~CLCL:D;Ou<XM?DGCLCLBwB CV DAE@FLGxRHE LN MIN^OBUPBQF<RF0TEUGyVSCLCLYs ZBMCLCL]kK ^J3CLCLaLCLCLdACLf]CLhAiV=CLkP` lL\ mKk n\fobpcL q\( r^. sK'@tKuGCLCLx@XyJߋzNzCLCL}H]~FFX Au CL~ CL@EVEVk jb j @JeEV@ju AECz+FEVHOJHKLNr PLSB TLvV}(WK <XIM[g+ \S Vth? EƐ@E\pAVCLDALEEpcFEGUVu| rgБ  ^D!s' "m<8 #jb $pA &n !)CL *CL+CL-] 0CL2j 4Al5Af6fb 7{8qˈ ;CLCL?CL@CLCElHlo{a qiWu]jvkw wpmy xlSk {r~ESu R8TB OeGHKv N lD a&fTY^CLCLCLCLCLCLCLCLCLIDGH#PFJJ}e7W}fNFe^ ^ Muwo NBONAPCoQURO8VSrz T|b VY;0 XDsYD[\MV ^f_yc `CaD>b D8Rc Ch4CL5CL6CLg9k ;CL=CL>CL?CLmBGMnE~FgoFOӄ HCLICLKCLLCLMCLNCLOCLwR{xSJyURVOP{YV |[d~}\w~^]aCcEf~ ~hCLjTy |lCLoEDmF[PQuCLtCLt lp i 5Ib6JCLCL:BE;N"<Yl?DJCLCLBwl CQDA=\ELFUGE HE3 LOML:N`kOBPB(VQFORF6STF4UG;V@kCLCLYr ZCCLCL]kQ ^JCL CLa Lu{ CL CLd @; CLf ] CLh Ai M0 CLk P8G l JH m I= n ]3o bp ]ff q W=q r Y s !K?t "Ju $G3 &CL 'CLx )@`2y *R&z ,L= .CL /CL} 1H]~ 3F 4FP 5A 7CL~ `CL b@R eEV fEV gixB  hixB  iixB  j@-S kEV lixB  mE o{.` rEV tP^ vI~ wL zr  |M  B  Lv }& L IQk g+  S 8V? 9F @ :EA ;WR =CLD ?| E AEfF BEG CV FsP Gy Iq6f Jh  Md Nr  Om-  PjSk  Qo  SnB ! VCL  WCL XCL Z`EA  ]CL _j  aFT bB ceд  ~x q  CL CL CL CL CL E H\p {a  j ]j k_  p  l63  n  FM RL gn  N}t Bz  O< G H v  Vz  mY  a@ U3 ^ CL CL CL CL CL CL CL CL CL I; Gm H( FH I I}e Un }fF^ ^ M u N BhO Nt<P !CQ $UR %NTS &qˈ T '{ V )X X *DuY TDv[ U\ VK^ Yea$_ [yc ` ]B?a ^Ecb _ERc `E bCL cCL dCLg hkj  jCL kCL lCL mCLm pGn s~o tN  wCL xCL yCL zCL {CL |CL }CLw xx Ly SH OP{ VDD | fU} wM;~ ] C E1 ~l^ ~ CL S | CL E E FA F;u CLt CL \)  k  i^6 5 I_6 JC CL CL: B; O< Z-? D̘ CL CLB v C OD AdE CF VG LH Eh^ L CQM yqN a*O BP BIQ FAR F-T F&U GʷV {  "CL #CLY %r Z &C= )CL *CL] ,ju ^ -J+ /CL 1CLa 3K 5CL 6CLd 8~l^  ;CLf <] =CLh ?Aҩi AVw CCLk FP l GL\ m HKp n K]o Lb p Nc. q P[ r Q\Q s RKgt SJu TG VCL WCLx @y O[z L CL CL} HG~ FT FF BE CL~ CL @= ixB  m<8  EV ixB  ixB  B  n  i  l  { EV P52 IJ( L mlL M  B  Lv ~ L I^! o^  S jVҚ? kFM@ lE^A mW nCLD pmv E rFF sEG tV5 w{L x@ yy2 zh  }b rU,  mm  jSk  o7  me ! CL  CL CL [;  CL jp  CB A eM  M  q  CL CL CL CL CL EC HX {a  ji ] k  p-  l  p33 FQt V l8  {Z  B  OGľGevR K jf `3T\^CLCL CL!CL#CL$CL%CL&CL'CL+I6/,G-H.F>1I2I}e `{}f Fɜ^ ^ MJuwo NtBOwNWPxBQ|U۔R}OS~qV T{X VX:y XDxYD[˫\N[^e_yq `B8aHcbIaHcEǮCLCLCLgkH CLCLCLCLmGpn~c4oN CLCLCLCLCLCLCLwBxKLyXOP{U |d|m}xa~]CE~@ ~CLP |CLEEG!FL.uCLtCL lp h 5Is6JqbCL CL: B8P; N< XM?DQNCLCLBA{QE@tHFAu=qGBVHCE LDTMEONFdhOGBPHBFQIFFDRJF?TKF+yULGVOz RCLSCLYUr]\ ZVCpiYCLZCL]\j> ^^K`CLaCLadMNfCLgCLdi kCLfl]nCLhpAiqPsCLkvPҹ lwL\) mK n]ocpb\ q[( rd( sKtJuFCLCLx@RyJpFzMCLCL}H9Q~G+F3B3CL~CLAixB ixB B B B ixB ixB B i {@EVPrI~LnM B Lv ~4 K3 IMo^ SW?F{.@EAWaCLDfq EEFE-GV#$B E@3i( _ar1 m jSk oXB m !CL CLCL`S CLju )b Be5 { q CLCLCLCLCLEѡHe}T jm)0]1k 2pӖ 3hJ 6rٚ9F4k;Ur/>s @PBB EQXFGGGeKvR LT[\ OjDD P`fQR9R^TCLUCLVCLWCLXCLYCL[CL\CL]CL`I0aGcH dGdgJjJ}e|Qg}fG *^ ^ Mt NBHON1PC9QU-RNSq T{j VXs XDxYD[ \L`^db_y `AGaJRbGcDRCLCLCLgk CLCLCLCLmGIn~oNY CLCLCLCLCL CL CLwCBxN=qyY{OP{U |b}w.|~]C}$E<!~ ~#CL&Tp |(CL+Ez,EA-Fc0MJu3CLt\CL^@+_lp `h- 5cIA6dJfCLgCL:iC;jMO<kXC?lD|oCLpCLBrv CsT#DtAEvcFwlgGxIHyE LzW M{B\N|WT{O}BðP~B`QFI)RF<TF9UGVz CLCLYrE ZCi(CLCL]j> ^KCLCLaM`CLCLd@CLf]CLhAiUCLkQ3 lL mK n\foc7p^ qY r[( sKtJuGmCLCLx@yQzJmCLCL}H~GzF0BJvCL~CLAAhixB $ixB %jb &ixB 'ixB (ixB )ixB +ixB ,k[ .{c1EV2PC4I~5K()8nF:M =EV>Lv?@BAJPCIQkFo^ GSV?F"@EMAWRCLDkh EEFEHGU@g E&f @8 j* d6rO l jD oK m- !CL CLCLZ4  CL"j #y $BE%f ']6Sqt VCLWCLXCLYCLZCL]E_Hb} dk8g]hkh ip| jN4p npFfqFSDrUxun wPƍyB5 }ST~GBGv NcI i `Q^CLCLCLCLCLCLCLCLCLI*cGHFffffff}e'K}f^G1c^ ^ Mu NB OMPCJQVRN3Sp T{! VX,7 XD|YD![\NT^c_y `!Aa"Fb#G(c%G'CL(CL)CLg,k~ .CL/CL0CL2CLm5Gn8~4o9N ;CLCL@CLACLBCLwEC{xFKyGV8RHOP{LUfg |Nd}Ow~Q]|Cf}E~] ~CLT- |CLEu!Ed!FsG:uCLtCL@,k/ h+ 5J6JLCLCL:D_;ImZ<ZSN?D%CLCLBu CPDAȾEVW FcGPHF] LV0MR+NfOBɀPBnQFTRF<TFMUHVP.cCLCLYr ZCi(CLCL]jb ^JZCLCLaLhyCLCLd@&CLf]CLhA"iR|CLk Qi+ l Mff m L = n]LocQpdff q]f r^33 sKřtJuFHqCLCLx@byDMzFMHCLICL}KG~MG%OF,qPB{RCL~SCLUAWixB Xm YB [ixB \ixB ]B ^n% _ixB `Bb{<eEVfPMhIZiK"moAoM rixB sLvt@vJPwIZzo^ {Y|BM~CLEZmPCLCLCLCLCLCLCLCLqS4lgAOxRVRVffCLCLCLCLCLCLCL]CLCLCLN(ECLCCLCL|j CLCLCLCL$K;%I f&L CL*KN_,]KCL.ai}CLCLCLCL3k4Au6 Ff7!{38"f&g9%{:'I|;(J`<)Ff+CL>.W?/Fu@0EA1Wʙ3CLD4mh E6FjF7EoG8V*U<@g=E>?l0~ CbDs] El FjD Gn l !CL CLCL T  CLj w_ Bh S @C CLCLCLCLCL E!H"O#iʿ%V 'l5h (qes *F -rٚ0F1G4i& 5oXB 6r9V D:G;GdKgO? jh{ ka,mPs3n^oCLpCLqCLsCLtCLuCLvCLwCLxCL|Is}G~HK6GAff Aff }eg}fGM^ ^ Mu NBhOM~PC]QV#RNSp T{ VX XD|YDP[ط<\P^b%_y `AZ#aI{bHRcFCLCLCLgl\O CLCLCLCLmFnoN» CLCLCLCLCLCLCLwA >x,Mffy-\ff/OP{2U |4dO}5xp~7^:COMR:NfOBPBSQFZRFFDTFxzUH%{VArCLCLYr# ZCDCLCL]jD ^JBUCLCLaKCLCLd~Ü CLf^CLhAiUCLkQ lL mK n[ocwSpcf q^B r^ sKtJ uF CLCLx@.yPSzKcCLCL} G0~ G;q F,qBCL~CLA/ixB ixB l5h kh kK ixB ixB k) i  {D#EV%P.C'I~(K1C+q2<-LXixB YLvZAw\JP]IV`g+ aSW1?G@EpAWCLDgL EF?CFEtiGV:("B4#I$Df%m )`*s +l ,j63 -n}[ .l~k !1CL 2CL4CL6Z 9CL;k_ i ABODCLECLFCLGCLHCLLE"MHSNSB'OfGQpww Sm TqJ VOm YoFR\Bs Ps V GGP |T/P g `Ny^CLCLCLCLCLCLCLCLCLI7GHG2J|^|^}eAr"}fTGw^ ^ Mt NBcOLPC`sQVhRNSp| T|6 VY XEYD[\ L^ b._ y9 `A)waIbMffcJ0CLCLCLgk CLCLCL CLm#FQnNoON QCLSCLTCLUCLVCLWCLXCLw[Ax]MGy^[_OP{bV |de}ev~g^kC<#lEMo~ ~qCLsT |uCLyE<zE`{F/~JEuCLtCL@lƨ h 5Jm6JݔCLCL:F!O;L/<SVY?CCLCLBu65 CVDB%EdFrRGTHFef LK&fMDHNYnOBEPBnQFYRFNTFyUHQV}: CLCLYr# ZCScCLCL]jSk ^KõCLCLaMfCLCLd~ CLf^CLhAiU=CLk"R} l#LaH m$K33 n'do(cp*hL q+^ r,` s-Kt.Ju/EW1CL2CLx4@۶y6Qz7Jw:CL;CL}=G~?GR@F'ABCCL~DCLFB)Hi& Ji KixB LixB MixB Nk Oi xixB yl {{ey~EVP=I~K?q?JPixB LSBO{KTI6/EM SGVũ?HG3@IEAJWNLCLDNk) EPF`FQEc3GRUUEVI4WCYn \dN]txY ^l8 _j63 `nB al5h !eCL fCLgCLiU lCLnkQ ou' qCrj sNd u]GwCLxCLyCL{CLCLFH1OȮacD; mJ r@3 O rfF~A8ph JmrVGH0QUFD `33 ^fG^CLCLCLCLCLCLCLCLCLIAGH G8 AY  AY }esd}fG3^ ^ M$t7K N'BO(K̨P)CQ,VR-NS.p| T/}[ V1Z- X4EY6D[7!\8Ue^;a)_EyFlIҏuCLtCL lQ h 5J6J8CLCL:EZ;Jv}<Z?CCLCLBt CTDBzEbFk >GQHFs L\MukN} >OBPBQFbRFelTFUHV|oQ CLCLYr# ZC~ CL4CL]6ju ^8KD:CL;CLa>ML@CLACLdC~ FCLfG^HCLhJAZiKOeNCLkQRI lRMu mSLR nVboWcpYfQ qZ`\ r[_ s\Kt]Ku^E@`CLaCLxc@ydMxzfMhCLiCL}kGe~mGgoF%3BCL~CLBcB B ixB ixB ixB B B ixB B{eyEVP^I\OLqJPixB EALI@{b S vVT ? wGj@ xEA yV; zCLD |j E ~FoF EjrG U- J3 J#3 EL o  ^m u)  l  j63  n  k ! CL  CL CL ^  CL k  y]  C k)  y g CL CL CL CL CL F^ H  QWw ]z H  n  sU:  W  q3 F( AJ r]\  xe  r V Gپ H S= W*  es3  `f J3 ^ CL CL CL (CL *CL +CL ,CL -CL .CL 2IRT 3Gɔ 4H  5G> 7AL  8AL }e y}fG)^ ^ M Su. N UBʅO VJP XCClQ [V4R \NS ]pA T ^~D V _[.[ X `E Y bD [ 0\ L^ a._ y ` @a Iqb Kc E&f CL CL CLg k  CL CL CL CLm Fn ~lo Pfg  CL CL CL CL CL CL CLw ~x L#y YG OP{ YUV | bp} vo~ ^ C F  ~; ~ CL S+ | CL EX' D F Pu CLt CL @ m5@  hw 5 Jz6 K# CL CL: DY; GZB< X$? C> CL CLB t C PD B{E WRF eW G !OH "F8 L #M{M $GN %\!HO &BRP 'BQ (Fc@R )FYT *FŃU +HmV V{  YCL ZCLY \r@3 Z ]Cpi `CL aCL] cju ^ dJ gCL hCLa kL lCL nCLd o}f  rCLf s^ tCLh vAi xV{ zCLk }R l ~Nq m M) n f33o cwSp n# q gu r e s Llt Kju D CL CLx @=y Pz I  CL CL} Gx~ Gr F' BZ CL~ CL BN ixB  m  B  ixB  ixB  B  n  ixB  lZ  {ey EV P I~ L r JP ixB  DF- A L I\ |_  Y A CL E\ m !CL "CL #CL %CL &CL 'CL (CL )CL ,t6g -t6g .C{3 /OB 0MR 2MR 4CL 5CL 6CL 7CL 8CL 9CL :CL ;^ =CL >CL ?CL @NJ4 BCL EC# GCL HCL J{=  LCL MCL NCL OCL$ RKh% SIw& VR CL* K#, Z CL. \@ CL CL CL CL3 k,4 A6 O7 K|8 B9 @~: MY; L< F` CL> U? G@ EIA R CLD kw E FF Ev9G T Fg I33 D\ q5  dD3 uٽ  l  j63  m4  k/ ! CL  CL CL ]y  CL ll  C4 D l  RU  n) CL CL CL CL CL F^ H Sj Y6 Ib"  o;  sl  S  qVf Foe @f vt  RM r9X T G HH ISo LX|  Pg7w  Q`&f RM| S^ TCL UCL WCL XCL YCL ZCL [CL ]CL ^CL aIfL bGu cH eGI gA  hA }e de}f Go^ ^ M uZU N BʅO JGOP C" Q V(R NS p3 T  V \ X ELY D[ !\ _V^ av_ y ` @a L#b Lc D CL CL CLg lf{  CL CL CL CLm Fn @o Q!  CL CL CL CL CL CL CLw AuxL34y\OP{Z |bC}s~^CEZ"~ ~$CL&Y |(CL+Em-C.G 1G0Gu3CLt4CL7I 8m 9i 5;K86CL?CL:AD;BQ8<CS0o?DDGCLHCLBJtU CKQCKDtB)EvUFwfGxKHyG- Lz\{M{WT{N|knO}BP~BiQFf&RF`ZTFDUHV|R8 CLCLYrk ZCpiCLCL]j ^JCLCLaKCLCLd@gvCLf^CLhAiPCLkR lQ mP{ neocphW qbL rck sLtKTuDHCLCLx@yR HzOE^CLCL}G~G}F0CCL~CLB\ixB ixB m l5h l3 ixB ixB lo i { EV P52 I~ LsJ>ixB ?DF-@AפBLCIF|_ GY6HEʘJCLMENMNmPCLRCLSCLTCLUCLVCLWCLXCL[~ \w^C{3_e`ba_cCLdCLeCLfCLgCLhCLjCLk^lCLmCLnCLpNqCLtC#vCLwCLt CLCLCLCL$L%IM&OeCL*LE,YCL.KMCLCLCLCL3k~4A6Ts37K98H09@:Ip;K|<ECL>UT?HV@EDAJɒCLDkQ EFFE}xGT"I< Mg G~f sQB cEv; l~k j63 mi k !CL CLCLW CL!m<8 "E*#By$me %P! (s*CL+CL,CL-CL/CL2F3I-4Tq5Vc7H :p| ;t4 

M >y?\(AOP{D[ |F`}Gu4~I^LC MEȮQ~; ~SCLUX[ |WCLZE[C]Fm`NOMubCLtcCLe~G gl hi 5jK6kK*CLCL:DV;P%<YW?DCLCLBtj. CVUDBE`LFn4GYGHGqo LZMTcNkO\OC PB@QFlRFnTF/UHVB;CLCLYr+ ZCCLCL]k ^L;CLCLaM̓CLCLd7 CLf^CLhAiV"'CLkSL lN mM = ndLodp k q daH r f3 s Lt KmuD<CLCLx@yOTzICLCL}G:~GF5 C9C"CL~#CL%B(k. )j *i| +ixB ,ixB -m .j /ixB 0mwv 3| ^EV_P*aIMbLes"gJPjixB kDF-lEJtnK&XoI'r|_ tYCuBMwCLzEED{m}CL~CLCLCLCLCLCLCLvfs3C{3_o_CLCLCLCLCLCLCL^CLCLCLNCLC`CLCLx0 CLCLCLCL$Kİ%In^&HCL*LP,WzCL.HCLCLCLCL3k!4A36N7I8K 9AP:K4;L<Gf$CL>&U5?'H@(E,A)Kn+CLD-n E/GF0EG1Tl4I6M7H8t ;^~jD @m7 Akw !DCL ECLFCLH]K KCLNn4a OAPBrdQn ROK UvKWCLXCLYCLZCL[CL^F HR*SxH] q u W9 rٚF@`2t Hs<qRVGH0TZ` eD ^L\^CLCLCLCLCLCLCLCLCLIGeHEGsA@ A@ }eRd G}feE[^ ^ Mu NB9OIςPBsQ WqR NTSpPL T@V_?w XElDYE X[\[DD^a_y `@ۘaKb Kc!FY#CL%CL&CLgQm& SCLTCLUCLVCLmYFan]}4o^Tj `CLaCLbCLcCLdCLeCLgCLwjB>xkM >yl]ǮmOP{p]wx |rav}st<~v^yB"zE}~ ~CLTSI |CLECGqI"uCLtCL}% m i33 5K6K?CLCL:C4;O<V ?EOCLCLBt>u CTDB,Ej#FtGUqHG LYW MTNY}qOCPBQFoRFvTG&UIHVGCLCLYsF ZCBCLCL]k ^LT>CLCLaM!CLCLd }X #CLf$^%CLh'Ai(W+CLk.Su l/Ku m0I{ n3dfo4d2p6j8R q7aG r8d{ s9Lt:K#u;A=CL>CLx@@ryAKzBIECLFCL}HG~JG@KF6fMC^OCL~PCLRB=}B ~B ixB ixB ixB EVB ixB E| EVPWI~LrJPixB DF-ELLI|_ YB* CLE\mCLCLCLCLCLCLCLCLvft6gD_o\_CLCLCLCLCLCLCL^CLCLCLNhCLCܪCLCL|ƚ CLCLCLCL$K%Ip&R CL* L>,WCL.FTCLCLCLCL3kf4DA36GK7HG,8IE39LAa:NJ;OLy<PGC3QCL>TUx?UI,@VEضAWN YCLD[srb E]G:F^EOG_T|bLAcP 4eJfv idjxy kl~k ljD mmh okZY !rCL sCLtCLvb6 yCL{n }~ ~C p^ J6xCLCLCLCLCLFH(Q* PG" r v( V. qfF@w| N;qQkGH>bU "[ g] `3OP^CLCLCLCLCL CL CLCLCLI8GHWGA33 A33 }eCw}fER^ ^ M5u. N7B7O8InP:C*Q=WR>NTS?p T@AVA` XCExYEE&[F6\GYg^b5_y `@ۘa L{b I c BǮCLCLCLgl& CLCLCLCLmFvn}o UO #CL$CL%CL&CL'CL(CL)CLw,Jx.Vy/b0OP{3` |5`}6r;~8^dBeF h}; ~jCLlVb |nCLqEƦsD3tGP%wJyuyCLtzCL}|L ~ml iX 5K#6KRCLCL:C/;KU<Z?F(CLCLBtM CPDBEZLFdpGR34HH LKMDNYuOCMPBQFBRFvTG_UIcuV@^CLCLYt ZF7 CLCL]mJ ^LKCLCLaM[CLCLd CLf^CLhBrdiRbCLkV< lMG mKL ndfoe@apk{ qd rd8R sL tK3uBCLCLx@۶y,T-z-Hk0CL1CL}3H[~5G6F867C^9CL~;CL=CSc?]! @j ^ AEVBixB DixB El5h FkQ GixB Hi J|MEVNPzPI~QLTtVJPYixB [DF-\EL^L_I"7b~WH cXhdA{fCLE``mCLCLCLCLCLCLCLCLt6gsC{3OxRVRV >CLCLCLCLCLCLCL^CLCLCLNy CLC CLCLw CLCLCLCL$L'%I&JSCL*KƂ,X<CL.TCLCLCLCL3k34A36 Ng7 HC38 H`9 B+:N;M<LiCL>U?IZ@EAJdSCLDof EG\zFE5G Td$L%O &J'x +ar,y+ -l~k .jD /m<8 Xk=" ![CL ]CL^CL`Z` cCLeo; f},l gB ip jKX lynCLoCLpCLqCLsCLvFwHxPyN.{Gw }sF vI Q qFЂ@v vW qƨOsH1ZHqU^ [ gf `fKf^CLCLCLCLCLCLCLCLCLIľGH`GA A }ej` }f}D^ ^ Mv`4 NB5OJP CdQ#X/`R$NS%pPL T'IpXV(or X*E=Y+ETL[,?\-ZL^1bؾ_2u8 `3@ea5\Rb6].c7Rh9CL:CL>V=??Ip@@EAAF!OCCLDEj EGG}3FHEGIUhLH|MK[4OG;3xy {_|y }l~k ~jD m- k=" !CL CLCL[-F CLpY y C:q C {CLCLCLCLCLF9HjQMGH u y UDY r#3F@+v JPr9XN.HYHUgd\ e ^Hf^CLCLCLCLCLCLCLCLCLJGtH/GDA@ A@ }e[h}fC^ ^ MDt NFBVOGG3PHC}yQKYqcRLN;0SNpPL TOHyVPleC XREYSEtk[T\U`@^Yd_Zp `[@ea]Xb^Wc_QaCLbCLdCLgfn hCLiCLjCLkCLmnFvnr~@osYj uCLvCLwCLxCLyCLzCLCLwJxM >y_ffOP{m |a$}oc~^BvEt~ ~CLW>' |CLF D#GXG uCLtCLxD nC i 5K36KbdCLCL:D;P<XN*?DnQCL CLB t!N C V) D C8;EgFkG^BHHU LJ)MCxRNYW OC9PB5QFRFNTGUIV~Ü !CL"CLY$uD Z%D_(CL)CL]+n ^-MD/CL0CLa2O \4CL5CLd7A :CLf;^Bi?XBCLkmT_ lnM33 moKǮ nreose5'pulz qve= rwe{ syLB[tzK7u{A}CL~CLx@yQPzG:CLCL}H~GF:BCL~CLC k k_ n m m m k_ m n {EVPlHLu mJPixB LvH JPI0B SCL?CL$BKU%CIu&FKHCL*KL},LRzNCL.PIESCLTCLUCLVCL3Xk14ZA36]P@7^I8_J@9bC:dP;eOC4<fM@gCL>jW|?kIc&@mE|AnHoCLDsU: EGaFEGVFvgI.fE4z8 c*z¦ l jSk m- kZY !CL CLCLcM CLp w% DBr G>|<CLCLCLCLCLFHS1KwGDD u y  X3  p3 FƆ @:g w  G0 sK M@y HQ5 H U \~g  `w  _3 I ^ CL CL !CL "CL #CL %CL &CL 'CL )CL ,I' -G /H: 0GѼ 2A  4A }e\٬}fBT^ ^ M ~vn N BVO FnP CBQ Z.R M S o۔ T GkV iz X EQY E8[ Z\ Z^ ci_ oc ` @a Y!Hb Xc Sff CL CL CLg m  CL CL CL CLm Fpn ~o ZJ  CL CL CL CL CL CL CLw Lx S{y c> OP{ k | ^>7} pg~ ^ Bg E U ~ CL WD | CL +F ,D -GS 0Nݪu 2CLt 4CL 6uH  7ny  9j 5 ;K56 CL ?CL: ADX; CPe< DY0? ED HCL ICLB Kt>u C LUED NCGE PbW F QmG RT H SH L TYHM UTN WhHO XCD&P YBQ ZFR \FT ]GU ^IV a7  CL CLY u} Z D CL CL] nT ^ MY CL CLa O CL CLd ~#  CLf ^ CLh B5i Ud CLk T l MaH m KW n d o ep pQ q g\ r j s LWNt K;Du AZ CL CLx @y LHz GJ CL CL} G0~ Gr FX CU CL~ CL Cw j>  EV EV i  i  EV EV i&  E }  EV PP HI L u JP ixB  P.C H8 JP I0 "FD  #Y  $Br &CL )E *m TCL UCL VCL WCL XCL ZCL [CL \CL _vf `vg aC{3 bOxR cVR dU) fCL hCL iCL jCL kCL lCL mCL n^ oCL qCL rCL sNb uCL xC zCL {CL |~24  CL CL CL CL$ L % I& Mշ CL* Lp, S CL. Hzx CL CL CL CL3 k14 A36 Q7 Kf8 GS39 CiX: Jg; Lf< G CL> X? IR@ EA H CLD w E GyF EG XI J L8 H {  a= {>  l~k  jSk  mm  k=" ! CL  CL CL _+  "CL %qHF  &u  'CB (s  *S  ,}o .CL /CL 1CL 2CL 4CL 7F 8H` 9T,+ :J vY  @y  AT9  Drٚ GF H@ > Kw4  Lv-  NsC PLQ QH{2 RH SUd V\U  df  _ L0 ^ CL CL CL CL CL CL CL CL CL J  G% H G= AY  AY }e *f` }f 6@׶^ ^ M u N BXO FP CQ Z+R MS { T GV j9 X E>Y E[ y\ \^ a_ oU ` @a \{b Xc QL CL CL CLg m  CL CL CL CLm F n ~o \4  CL CL CL CL CL CL CLw Kx Py ] OP{ JlUU | L\-} Mn~ O^ RBg SE W ~ YCL [Y | ]CL `F6 aE2 cG\ fH6u hCLt iCL kt  mn  nj > 5 qKG6 rKi tCL uCL: wCμ; xN< yZ? zEZ }CL ~CLB tU C R[D CyE a{F qW G WzH H L Y{M THN i&gO CO P BjQ FcR FlT HU JYV c  CL CLY vY Z D| CL CL] o ^ M: CL CLa N CL CLd   CLf ^ CLh BEi P^ CLk T l L= m JL n e@of ppH qiǮ rj\ sLdtK<-u@fCLCLx@yTzG`"CL#CL}%H ~'G~(Fj)C-+CL~,CL.C1Z}W 2ixB 3EV4B 5B 6ixB 8ixB 9B :i <} ?EV@PrBICLFvHJKi tRfuIIxK()yI"7|g+ }Xp~BMCLEŞm,CLCLCLCLCLCLCLCL wgE OxRVRUCLCLCLCLCLCLCL^CLCLCLNgCLCҶCLCLw| CLCLCLCL$L+%I&OeCL*LCD,]CL.F!OCLCLCLCL3k$4A36P7Lvf8Eɚ9Cd:K|;M <G3CL>Y? IP@ F@A |= CLDl9 EGFa+Zb-[34c.S}q0CL1CL2CLg4n 6CL7CL9CL:CLm=G7nhoi] kCLlCLmCLoCLpCLqCLrCLwuP{xvYuywhxOP{|m33 |~[}n=~^C)\FZb~ ~CL[T |CLFf%EvGKuCLtCLs nC jc 5KQ6KpCLCL:C{;LE<V.?DCLCLBup CNDCsEcgFqHG^pHH LZkMV@Ni5OCZPCQF\RFTHCqUJ=V: CLCLYv ZDCLCL]pX ^LÂCLCLaNCLCLdFv 1CLf2^3CLh5CZi7XY9CLkaY?bIR@cF Aftj. iCLDkjSk EmGFnEGoY~rJsNuIx| yc8z|lZ {l |jb }m kK !CL CLCL\C CLrn } D|t Z~jCLCLCLCLCLFI WY GԬFf v zcz Ux o33F@X3xo zF^ s7LIHHI(-V]h e _pJ@^CLCLCLCLCLCLCLCLCLJbH HG%'fR*fR}egM}fC ^ ^ MEvn NGB5OHHԀPID"(QL\xRMMSOA^vTPHVQk XSEYTF4,[U|\V].^Ze6_[q `]Ca^^pb_[cRqCLCLCLgn CLCLCLCLmH n,o^| CLCLCLCLCLCLCLwRxVGyfLOP{n |[{}m[~^CF\{ ~CL\ |CLFDE2GNkuCLtCLq nu ij 5K[6K|CLCL:DX;H<S?DV CL CLB v( C TDCE^34FkGWHIG LZHMU+NjOCPCRQFYRFTHrUJV@uD CL!CLY#x# Z$DZ'CLPCL]Rt ^TMVCLWCLaZOB|\CL]CLd_@4aCLfc^dCLhfD_igWjCLklYW lnNH moL nreosgDlpup33 qvi rwi sxL|tyKHuzA'C|CL}CLxAyR zG0CLCL}H*~H$zFBZCL~CLE9[[ ixB EVEVEVixB ixB EVi } EVP_I~LwcJ j> RH8JPI g+ Y(@Y/CLEo8CLCLCLCLCLCLCLCLC$vfDk3!K"Of#M%CL&CL'CL(CL)CL*CL+CL-^.CL/CL0CL2Nh4CL7C9CL:CLCL?CL@CLACL$DK%EI&HOpJCL*ML0,NJ PCL.RF?}CL~CLCLCL3kZ4A36Sf7K8G6g9DY:LY;O&f<JCL>Z}?IR@FAD>CLDk_ EGFEOGZ-HfK4Gy} a| l jb l9 kZY !CL CLCLcM CLr @C CtY S ~_CLCLCLCLCLF)[IVFFj x {in Y9E rٚG@f z  w| s33I :IwIZVF]y ` _DFE^FCLGCLHCLICLKCLLCLMCLNCLOCLSJbTHUH,VH XAY YAY }ef S}f| ^ ^ Mtvn NvBOwH&PyDbQ|\R}MS~qt THzVl XEYFe[{\Z^bǿ_rc `DaZb\cTqCLCLCLgoM CLCLCLCLmHngo_W CLCLCLCLCLCLCLwR34xY >yhOP{owx |]-}q2~ ^CtF6u ~CL]x |CLF[E'GT#I2u%CLt&CL(qq )mH +ia 5-Kh6.K0CL1CL:3Dg;4P,<5TQ?6D9CL:CLBCE@h4FAoGBYW HCIh LDL34MEE&fNFZOGCnP#C%Q#FR#FTT#HoU# KV# @;# CL# CLY#xe Z#E##CL#CL]#r ^#NH#CL#CLa#%P 5#'CL#(CLd#* #,CLf#.^#/CLh#1Di#2U#5CLk#7U l#9N m#:L n#eefo#ffmp#hs q#ii r#jk. s#kLt#lKMwu#m@Ƥ#oCL#pCLx#rA+y#sPz#tG#wCL#xCL}#zGe~#|HA#}FE#~BX#CL~#CL#E2#]K #ixB #EV#EV#EV#ixB #ixB #EV#i #} #EV#PC#I#KA#} 8#K #j #Lv#H8#JP#I#g+ #Xh#BM#CL#E#n#CL#CL#CL#CL#CL#CL#CL#CL#vf#vf#Hx#GR#Nc#Lf#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#Nb#CL#C#CL#CL#,{ #/CL#0CL#1CL#2CL$#4Lu%#5IiN&#8N N#;CL*#>L',#?S_#@CL.#BF?#ECL#FCL#GCL#HCL3#Kkd4#MA36#OO7#PIf8#QHs39#TD:#VM;#WM0<#XKL#ZCL>#]X?#^IVe@#_EA#`DQN#aCLD#cl~k E#eGF#fEG#gW0#D1#F3#B#}N #_#}A] #l #jp #mm #kw !#CL #CL#CL#b[ #CL#r #},l #D|#uS[ #|4##CL#CL#CL#CL#CL#F&#I$#U#F1#Fj #~ #} #U #qf#G#@I#y@Y #zcz #s/#H2#I(-#Ip#V6#] #e #`c3# I# ^# CL# CL#CL#CL#CL#CL#CL#CL#CL#J#H!#H #H#A33 # A33 }e#z}f(|, ^ ^ M#bvC N#dBO#eGtP#fDcpQ#j]R#kMVS#lo T#mHV#nl X#pEY#qFn[#s{ \#t\V^#we_#xr `#zC a#{Yb#}[)c#~T#CL#CL#CLg#oF, #CL#CL#CL#CLm#H@n#o#a  #CL#CL#CL#CL#CL#CL#CLw#P4x#UBy#[\#OP{#o |#\}#od~#^#CX#F#}: ~#CL#^(# |#CL#F2#F"#G#Qu#CLt#CL#q) #o1 #j~ 5#Ky$6#K#CL#CL:# DnQ;#!P<#"WL?##D̘#&CL#'CLB#)vܹ C#*ULuD#+CE#-|F#.D >G#/_H#0I L#1XM#2TEN#3j O#4CēP#5C4Q#6G1R#7G T#8HU#9KV#:@##O\#N&f#CL#CL#CL#CL#CL#CL#CL#^# CL#!CL##CL#LN]#NCL#QC#RCL#SCL#U{/9 #XCL#YCL#ZCL#[CL$#^L%#_ID&#aH#dCL*#gL^,#h_3#jCL.#lG:#nCL#oCL#pCL#qCL3#tk4#vA36#ySy7#zJf8#{Gf9#}D:#M;#M3<#K#CL>#Xj?#Ic&@#F A#Ca#CLD#mYk E#GF#EzG#W#D6f#GI#B#~\V #c{#~(? #l #j> #m #k !#CL #CL#CL#Zƥ #CL#srb #| #D#vW #ۥC###CL#CL#CL#CL#CL#F&#I%#Tq#E\(#F{ #x #| z #QO #pC3#G#@L#"z)B #$D#%s#&GgR#'I6#(Iw#*V/^#-^ #0a; #2_3#3Gf#4^#5CL#6CL#7CL#9CL#:CL#;CL#H#]I L#_Ws4M#`QcN#aVnO#bC~P#cC>XQ#dFR#eFDT#fIU#gKJ^V#hA #jCL#kCLY#my Z#nE*#qCL#rCL]#ts ^#vNZ#xCL#yCLa#O|4#CL#CLd#@#CLf#^#CLh#DQNi#N#CLk#Vul l#O# m#M\ n#e@o#g@p#paH q#lk r#kG s#Lt#KD^u#A #CL#CLx#A:%y#U'&z#Ge#CL#CL}#H@~#H#F/#Bt#CL~#CL#EG#[~ #ixB # EV# EV# EV# ixB #ixB #EV#i #} #@ #PC#H#L#} 8#J#"l ##Lv#$M3#'JP#(I#+g+ #,Y#.Eʘ#0CL#3E#4m#6CL#7CL#8CL#:CL#;CL#CL#AC{3#BC{3#lLA#mG#nGR#oGR#rCL#sCL#tCL#uCL#vCL#wCL#yCL#z^#{CL#|CL#}CL#N_##CL#CI#CL#CL#zu #CL#CL#CL#CL$#Kh%#I&#Pzc#CL*#LI,#V#CL.#L#CL#CL#CL#CL3#k4#A36#M7#L<8#E39#Dt:#Lf;#Og<#I#CL>#X*?#Iu]@#F$A#C^#CLD#nQ E#GPF#F.2G#XHY#D(#F{3#B #~C #``#~y #ll #j #m #k !#CL #CL#CL#`S #CL#t # }T # D# v( #5G #7~#9CL#:CL#;CL#i # @} # B@ # EPe# GI~# HL# K} 8# MK # Pn # QS# RM# TJP# UI# Xg+ # YS# Z?# Iw0@# F A# D# CLD# p E# G!F# EG# Zy# E# G# CY# ~& # !_5# "2 # #l # $j # %m # &k !# )CL # +CL# TCL# Vax # YCL# [tz # \|oQ # ]DJ# _vI # aC# b}# dCL# eCL# fCL# gCL# hCL# lF;s# mI# nSV# oD!n# qGs3 # sy # t| # vT-E # yof# |G# }@+# z)B # x # tM# E# I# I# U # ^; # dQ # _y# I # ^# CL# CL# CL# CL# CL# CL# CL# CL# CL# K# HH}# I # HIe# gff# gff}e# a~ }f# tz ^ ^ M# vC N# BO# G:yP# DfQ# ^1R# MS# oI T# IV# nʅ X# "ENY# #G1A[# $x\# %Xa^# )f_# *t `# ,Aa# -[Yb# .].c# /Vn# 1CL# 2CL# 4CLg# 6p@# # 8CL# 9CL# :CL# ;CLm# >FHn# Ago# Cd

y# Q` # ROP{# SrIc |# T[}# Un~# W^# Cv# Eá# w ~# CL# ^ |# CL# G # Fs# H# Iu# CLt# CL# nN # o^6 # jȵ 5# KG6# K# CL# CL:# D;# JL<# Xi?# D# CL# CLB# w C# PD# D3cE# xRF# DHG# cgH# I% L# ZT{M# a{N# u>O# k P# aЊ Q# z R# R/T# IU# KV# AN|# CL# CLY# {= Z# E # CL# CL]# tx ^# Jn# CL# CLa# F# CL# CLd# @# CLf# ^# CLh# Di# W# CLk# W: l# M m# L{ n# do# gp# u q# l) r# lz s# L t# KZ4u# AE # ICL# JCLx# LAOy# MSz# NHG# QCL# RCL}# TH~# VH_# WGH# YB{# [CL~# \CL# ^EV[# `Xb # aixB # bC# cEV# eEV# fixB # gixB # hEV# ii # k} E# l@ # oPC# qI# rL# u} 8# wJP# {n% # |Kֈ# }M# JP# HR# g+ # Xp# C# CL# E# m# CL# CL# CL# CL# CL# CL# CL# CL# Cl# C4# I# MO\# PR# \R# CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# NS# CL# CI# CL# CL# v # CL# CL# CL# CL$# L;%# I&#IJs#CL*#LkX,#X#CL.#Bn#CL# CL#!CL#"CL3#%k4#&A36#)UY7#*If8#+E9#.ERe:#0H;#1K0<#2Fg#4CL>#6X<?#7I@#8F(A#9A0#;CLD#=oI E#?GF#@EG#AX #EF#FJ#GE#J~& #Kb#t #um #vju #xm<8 #yl !#|CL #}CL#~CL#[ #CL#u65 #yN #D#wna #Pg #}j>#CL#CL#CL#CL#CL#FFM#I #Wi#C #G. #@#Fv #P #mٚ#G#K #z7 #x #t^5#E]#I#I#U}#^ #b"" #_#F#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#K>#HZ#I<#HP#j#j}e#`v}f# x8 ^ ^ M#v N#B0O#G1P#EQ#^R#MfS#n T#J4V#o X#EY#G[# \#Z^#df$_#u8 `#Aa#XxRb#Zs4c#VW #CL#CL#CLg#oj #CL#CL#CL#0CLm#3Fn#6S4o#7dN #9CL#:CL#CL#?CL#@CLw#CLpx#DW\)y#E]L#GOP{#Hr |#I[C}#Jn'~#L^#PCKO#QE#Tx ~#VCL#X_ |#[CL#^G#_F#`H#bF[u#dCLt#eCL#gm+ #in #jj" 5#Lp6#KR#CL#CL:#E;#Z,<#Yl?#D#CL#CLB#xWc C#SD#DiuE#gF#{ G#].H#JR L#`=qM#Y8RN#mpO#hq7 P#e Q#A"R#IT#IŪU#KV#JU#CL#CLY#GZ#EV[#CL#CL]#uD ^#D#CL#CLa#EsZ#CL#CLd#At@#CLf#^#CLh#Di#V#CLk#W_ l# Q\ m# OH n# d33o#hp#r q#k r#mG s#LTt#KYKu#AJ#CL#CLx#Aly#Qz#H#CL#!CL}#"H~#$I#&G#'B#)CL~#*CL#,Eѕ#/Z #0ixB #1A#2EV#3EV#]ixB #^ixB #_EV#`i #b} #c@ #fP e#iIV#jL#m} 8#oK()#rB #sOs#tM#vJP#wI o#zg+ #{XO#}Eʘ#CL#E#pW#CL#CL#CL#CL#CL#CL#CL#CL#EL#vf#C{3#M#Oh#M#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#NI{#CL#CT#CL#CL#u #CL#CL#CL#CL$#K%#I&#R#CL*#L?,#[0#CL.#Ll#CL#CL#CL#CL3#l4#A36#Rf7#H 8#$G,9#'Ex}:#(J`;#*M`<#+G#,CL>#/X?#0Iu@#1F9A#4)b #7CLD#9n4a E#;GF#dfo#?iCp#An q#Bh r#Cik s#DLût#FKa{u#GBg#ICL#JCLx#LAt@y#MOTz#NI/j#QCL#RCL}#|H~#~I2#G #BB#CL~#CL#F7 #[ #ixB #C#EV#EV#ixB #ixB #EV#i #} #@ #Pz#H#L#} 8#Jg#B #S.#M#JP#I#o^ #S#^[::?#_I@#`F=sA#aA~#cCLD#ep E#fGF#gE5G#hZ#lK#mN#nJ#rh #s]#t@e#umYk #vj #wmh #xl~k !#{CL #}CL#~CL#Z #CL#v4 #|oQ #E#x #H #}#CL#CL#CL#CL#CL#F6#I8#Y#Bn#G"" #{ #~ #Q3 #n#GJ1#@#{ #zr #uhs#CB#I#J%g#U#_= #d@ #`C3#F3# ^# CL#CL#CL#CL#CL#CL#CL#CL#CL#K^#Hk#IA#Hpc# ~##~}e#[}f#wm ^ ^ M#>vn N#@BO#AGP#BEQ#E_DR#GM S'u@T'uJV'up X'uEEY'u G['u R\'u \P^'ud_'uvUU `'uBa'uW.b'uZǮc'uR'uCL'uCL'uCLg'up 'uCL'uCL'u CL'u!CLm'u$GF7n'u'o'u(f 'u+CL'u,CL'u-CL'u.CL'u/CL'u0CL'u1CLw'u4NRx'u6by'u7kW 'u8OP{'u9tL |'u:Y }'u;j2~'ue^'uiCq'ujFz'umr]\ ~'uoCL'uqad |'usCL'uvGI'uxGF'uyH7'u|H|gu'u~CLt'uCL'um 'uny 'ujm 5'uKk6'uK#'uCL'uCL:'uEW;'uO<'uX´?'uD'uCL'uCLB'uxo C'uUYD'uD<E'uc\F'uwHG'uhH'uJN L'u_8RM'uZ&fN'umO'uj P'ugx Q'u@R'uHdT'uI U'uKDV'uAE 'uCL'uCLY'u}; Z'uDY'uCL'uCL]'uvH/L'u@B'uBCL~'uCCL'uEE'uGXX 'uHixB 'uJEW'uKEV'uLEV'uMixB 'uNixB 'uOEV'uPi 'uS} 'uT@ 'uWPv'uYI~'uZL'u]} 8'u_JP'ubB 'ucLv'ueO+ 'ugK)'uI'uo^ 'uS'uP4'uO)'uCL'uCL'uCL'uCL'uCL'uCL'uCL'u^'uCL'uCL'uCL'uNJ4'uCL'uC'uCL'uCL'uz 'uCL'uCL'uCL'uCL$'uK%'uJ&'uJa'uCL*'uLN1,'uM='uCL.'u}u% 'uCL'uCL'u CL'u CL3'u lGJ4'uA36'uK7'uGٚ8'uK39'uE:'uN;'uNɚ<'uL4'uCL>'u Y?'u!I@'u"FMA'u#@+%'u%CLD'u&mh E'u(GfF'u)E G'u*X'u.HQ'u/K'uXFf'u[@\'u]ae'u^A'u_m 'u`jH 'uam 'ubl !'ueCL 'ufCL'uhCL'ujaL 'umCL'uow_ 'upzu 'uqET'ury 'utT 'uv<'uxCL'uyCL'uzCL'u{CL'u|CL'uFFM'uIM'uZE'uB'uEf 'u| 'ur 'uX3 'um3'uG^-'u@'u| 'u{ 'uu+'uC.'uI'uJ,'uVV'u_Z 'uc" 'u_c3'uH'u^'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uKU'uHpc'uIQk'uH'u@3 'u@3 }e'utbEp}f'uwY ^ ^ M'u%w- N'u'BO'u(Fo>P'u*EQ'u-_WR'u.M|S'u/A:%T'u0KLV'u1r X'u3ELY'u4H1A['u6.\'u7Zq^'u:cLK_'u;xG `'u=Ca'u>X{b'u?]c'uAU4'uCCL'uDCL'uECLg'uGpo 'uICL'uJCL'uKCL'uMCLm'uPHpn'uS@3o'uTh 'uVCL'uWCL'uXCL'uYCL'u[CL'uCL'uCLw'uMGx'uWky'ul'uOP{'uvUU |'uY}'uj~'u^'uC'uF'ur ~'uCL'ub |'uCL'uGc7'uG'uHb'uMu'uCLt'uCL'um 'up/ 'ukV 5'uKE6'uL'uCL'uCL:'uG;'uXF<'ub?'uCB'uCL'uCLB'uy] C'uTqD'uDE'urF'uBLG'uYH'uK0l L'u`M'u]s4N'urgO'uk P'uhׄ Q'u@=R'uH2T'uIhU'uKV'uA]'uCL'uCLY'u} Z'uD'uCL'uCL]'u vh. ^'u FR'u CL'uCLa'uF'uCL'uCLd'uA:'uCLf'u^'uCLh'uE]i'uQ5'u CLk'u#X9 l'uLOff m'uMMR n'uPdo'uQi\p'uSp q'uUi r'uVj s'uWLt'uXKfu'uYB'u[CL'u\CLx'u^Aey'u_Uz'u`I 'ucCL'udCL}'ufH~'uhI3'uiHZ'ujB'ulCL~'umCL'uoEV'ur\5 'usixB 'utDY'uuA$Z'uvA$Z'uwixB 'uyixB 'uzA2'u{i 'u}} 'u~@ 'uPe'uH'uL'u} 8'uK 'uB 'uO;~'uOz'uK='uI@'uo^ 'uY('uEʘ'uCL'uE'un 6'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uD,'uDf'uH[3'uK'uO+'uM^'uCL'uCL'uCL'uCL'uCL'uCL'uCL'u^'uCL'uCL'uCL'uNe'uCL'uC0'uCL'uCL'u} 'uCL'uCL'uCL'uCL$'u L %'u!I&'u$PB'u'CL*'u*L,'u+`p~'u,CL.'u/U~'u1CL'u2CL'u3CL'u4CL3'u7lj(4'u9A36'u;R)7'u'uIY?'uJIJ@'uKFnxA'uM@'uxCLD'uzmYk E'u|H F'u}FjG'u~YC'uHf'uM'uG'u@'ua'uAm'um 'uj 'um 'um !'uCL 'uCL'uCL'ueM 'uCL'ux 'u| 'uE9['uz % 'u'u:'uCL'uCL'uCL'uCL'uCL'uFT'uIi'uW!'uA&'uE 'u~Ü 'u@'uWFD 'uof'uGv'u@9'u} 'u| z 'uu'uC'uJ<'uJ;'uV'u_ 'ub 'u_ 'uHs3'u^'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uK'u Hu'u Ic'u H:'ufH'ufH}e'uO}f'uvu ^ ^ M'uevQ N'ugBsO'uhFP'ujEQ'um_R'unMS'uoq3 T'upL?V'uqsjA X'usFjY'utHb['uv\'uwW^'uzeu|_'u{y `'uD[a'u\b'u\uc'uX)'uCL'uCL'uCLg'up 'uCL'uCL'uCL'uCLm'uHn'u@o'uiN 'uCL'uCL'uCL'uCL'uCL'uCL'uCLw'uJux'u[)y'u`>'uOP{'uw |'uY .}'ul~'u^'uDW2'uF'uqt ~'uCL'uce |'uCL'u Gtv'u G'u Hug'uKKu'uCLt'uCL'um 'up~ 'uk 5'uK6'uKw'uCL'uCL:'uE2;'u!J<'u"U%?'u#D'u%CL'u'CLB'u(yz C'u*S D'u+DFE'u,a34F'u.pBG'u/` H'u0K L'u1QHM'u2JN'u3bO'u6k P'u7h Q'u8@R'u9H]T'u;IU'uMR'u@PH'uBCL'uCCL'uDCL'uECL'uFCL'uGCL'uHCL'uI^'uKCL'uLCL'uMCL'uNNe'uPCL'uSC0'uUCL'uVCL'uXz 'uZCL'u[CL'u\CL'u]CL$'u`LR%'uaI&'udN|'ugCL*'ujL,'ukHFX'ulCL.'un} 'uCL'uCL'uCL'uCL3'ulv4'uA36'uRY7'uJ8'uBi9'uEf:'uJ;'uLf<'uGg'uCL>'u[Q/?'uI@'uFd|A'u@'uCLD'unn E'uG8F'uEѼG'u[y\'uH[3'uKf'uGS3'uAXw'u^~'uA'ume 'uj 'um4 'umYk !'uCL 'uCL'uCL'u_ 'uCL'u w 'u }u% 'u EZ'u z)B 'u e'u @lY'u CL'u CL'u CL'u CL'u CL'u FU'u Ig5'u S'u At'u E 'u ~ 'u @b'u S 'u p'u G'u !@@9'u %}; 'u &| 'u 'v'u (Bw'u )J3'u *Jm'u ,W5'u /_ 'u 3` 'u 4_f'u 5F'u 6^'u 7CL'u `CL'u bCL'u cCL'u dCL'u eCL'u fCL'u gCL'u iCL'u lL'u mH:'u nIzF'u oHv'u se='u ve=}e'u n}f'uvS] ^ ^ M'u vz N'u BO'u F P'u EQ'u _.R'u M S'u pY T'u LV'u t X'u F Y'u HM['u Ͳ5\'u ZÎ^'u dA_'u z `'u Cha'u \{b'u [c'u UaH'u CL'u CL'u CLg'u pu 'u CL'u CL'u CL'u CLm'u H2n'u ~o'u k 'u CL'u CL'u CL'u CL'u CL'u CL'u CLw'u P{x'u Zy'u [{'u OP{'u yww |'u YM}'u j2~'u (^'u +DN'u -F'u 0of ~'u 2CL'u 4_xB |'u 6CL'u 9G'u :H\'u 'u Z4H?'u Iٛ@'u FsA'u @X3'u CLD'u n4a E'u GF'u EG'u Y'u H4'u KQ'u F'u A'u bZ'u !A'u "n0 'u #j 'u $m 'u %mi !'u (CL 'u )CL'u +CL'u -[-F 'u 0CL'u 2xt 'u 3{/ 'u 4E'u 5{ 'u 6T;O 'u 9@'u ;CL'u CL'u ?CL'u BFI'u DIa'u EVl'u FA3'u HEn 'u J 'u KA'u LSB2 'u Oq0'u SG'u T@P5'u WU 'u }h 'u x'u BUZ'u Jf'u J 'u Wr'u _ 'u ` 'u _ 'u G'u ^'u CL'u CL'u CL'u CL'u CL'u CL'u CL'u CL'u CL'u LI'u H'u I'u H'u A 'u A }e'u 6e}f'u EtQ ^ ^ M'u u N'u BO'u EpP'u E{Q'u _R'u MrS'u o7 T'u MZV'u u X'u FY'u H['u \'u WV^'u dR_'u {UU `'u Ba'u ]cb'u [c'u S}q'u CL'u CL'u CLg'u p 'u CL'u CL'u CL'u CLm'u Gn'u  o'u k 'u CL'u CL'u CL'u CL'u CL'u CL'u HCLw'u KOx'u LU)y'u M_4'u NOP{'u Pz_ |'u QYc}'u Rhi~'u T^'u WD! 'u XFqv'u [zF^ ~'u ^CL'u `a_ |'u bCL'u eG'u fH/'u gH'u kLu'u mCLt'u nCL'u pj_; 'u qo 'u sl 5'u uK6'u vK'u xCL'u yCL:'u {D̘;'u |Q$!<'u }Yj?'u ~EZ'u CL'u CLB'u zcz C'u P%D'u EE'u j*F'u |{G'u hHH'u Kd L'u `M'u [N'u nuO'u l9 P'u i Q'u @R'u HT'u J/1U'u KAV'u B}'u CL'u CLY'u @Z'u D'u OP'u CL]'ux0 ^'uD'uCL'uCLa'uE'uCL'uCLd'uC 'u CLf'u!^'u"CLh'u$Ei'u%M0'u(CLk'u*Xj l'u,O m'u-NQ n'u0eٚo'u1ip'u3tL q'u4m{ r'u5mu s'u6Lt'u7Kp u'u8C 'u:CL'u;CLx'u=Ay'u>Rz'u?IiN'uBCL'uCCL}'uEHVF~'uGJD'uHI'uIB'uKCL~'utCL'uvF('uyZ` 'uzixB 'u{Jā'u|G'u}G4'u~ixB 'uixB 'uG4'ui 'u} 'u@*'uPI'uIB'uL'u} 8'uJP'uEV'uQ<'uO'uKA'uHe'uo^ 'uXp'uEʘ'uCL'uE'ul?'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uCL'uBd'uvf'uI3'uF'uGR'uGR'uCL'uCL'uCL'uCL'uCL'uCL'uCL'u^'uCL'uCL'uCL'uNOA'uCL'uCӞ'uCL'uCL'uv- 'uCL'uCL'uCL'uCL$'uKh%'uI&'uO4m'uCL*'u L,'u `)'u CL.'uN'uCL'uCL'uCL'u'uQZ\{?'uRI@'uSF,A'uV{= 'uYCLD'u[la7 E'u\H"F'u]F|G'u^Z'ubIf'ucLq'udGa'ugAc'ui`'ujBt'uknB 'ulk 'umn0 'unm !'uqCL 'usCL'utCL'uv` 'uCL'uxe 'u}u% 'uE'uz[ 'uS 'u@s'uCL'uCL'uCL'uCL'uCL'uFFM'uI`'uV+'u@'uEL 'u)b 'u@'uX]% 'ur'uG'u@zZ'u~ 'u}~ 'ux-'uB}'uJm'uJ˽'uWQ'u`' 'ue 'u_&f'uE'u^'uCL'uCL'uCL'uCL'uCL'u CL'u CL'u CL'u CL'uLtt'uHp'uI&'uH$'u@f 'u@f }e'ufed}f'u pr> ^ ^ M'u6uλ N'u8BO'uDFP'uFYQ'u`>R'uN,S'uo7 T'uNV'ux4 X'uF(Y'uIF['uٰ\'uXx^'ufG_'u~* `'uAoa'uZb'uYٚc'uRQ'uCL'uCL'uCLg'uqY9 'uCL'uCL'uCL'uCLm'uFn'uo'unx 'u"CL'u#CL'u$CL'u%CL'u&CL'u'CL'u(CLw'u,Qx'u-W y'u._'u/OP{'u0}u |'u1VX}'u2f~'u5^'u8C'u9F&'uCL'uAeuq |'uCCL'uFG'uGH'uHHY'uLNu'uNCLt'uOCL'uRhJ 'uSq 'u|l9X 5'u~KM6'uK'uCL'uCL:'uE;'uNR<'uWy?'uE@'uCL'uCLB'u{ C'uTӾD'uE,E'uhF'uuG'ugH'uKܬ L'uRBM'uJN'u_W O'ulD P'ugX Q'uB)R'uMT'uJ)U'uKV'uB'uCL'uCLY'u@Z'uD̘'uCL'uCL]'uzr ^'uA'uCL'uCLa'uE 'uCL'uCLd'uD'uCLf'u^'uCLh'uFi'uXn'uCLk'uY< l'uP8R m'uN n'uefo'ujp'utk q'uoz r'ul{ s'uMt'uKsu'uC9'uCL'uCLx'uAy'uNmz'uI'u CL'u CL}'uH@~'uJ{'uI 'uBuK'uCL~'uCL'uE'u[ 'uixB 'uEP'uFJk'uGJk'uKi| 'uLixB 'uMJ%g'uNi 'uP} 'uQB3'uTPl'uVI$'uWL'uZ} 8'u\JP'u`EV'uaP'uZB?'uJM@'uFA'u!|R8 'u$CLD'u&o E'u(HF'u)FGG'u*Z'u/o>g'u0u'u2m'u5F4'u6^'u7C&'u8e[ 'u9a/ 'u;M'u+][+?+]J"@+]FA+]zr +]CLD+]m4 E+]HF+]F)G+] [֜+]#n+]$tf+]%lf+])I+]*`+]+Dgl+],`P +]-^ +]/O+]0Q!+]3CL +]4CL+]5CL+]7a/ +]:CL+]<~ +]=x0 +]>DB+]@Fv +]B++]C@͊+]ECL+]FCL+]GCL+]HCL+]JCL+]MF+]NIv+]OZp+]P@r\+]REQ +]TB}+]UnQ +]WR +]Zn3+]HJ{+]@+]@F+] +]xr+]A++]F+]H[+]WJ+]`P +][ +]^+]D+]^+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]K+]HW+]I[+]HQ+]g{+]g{}e+]BK:}f+]Fr ^ ^ M+]w+ N+]CO+]DMP+]FQ+]`SR+]N7S+]o T+]OV+]zV X+]F0Y+]I[+]I\+]V^+] hd_+] @x`+] Aa+]Vb+]Yc+]S+]CL+]CL+]CLg+]ry +]CL+]CL+]CL+]CLm+] FCn+]#~go+]Lq +]NCL+]OCL+]PCL+]QCL+]RCL+]TCL+]UCLw+]XRx+]Y`y+]ZoR+][OP{+]\@i|+]]W}+]_h~+]a^+]dC^+]eF+]hoI ~+]jCL+]mc |+]oCL+]rH'W+]sIM+]tI3+]wMWu+]zCLt+]{CL+]}j! +]~p +]m 5+]L,6+]L++]CL+]CL:+]FE;+]LIG<+]R?+]E#+]CL+]CLB+]{ C+]UAD+]EIUE+]XF+]h4G+]UaHH+]Lm L+]\!HM+]WT{N+]k^O+]l3 P+]g[~ Q+]BcR+]M5T+]J1U+]KV+]D_+]CL+]CLY+]A:Z+]EG+]CL+]CL]+]{ ^+]BUZ+]CL+]CLa+]E+]CL+]CLd+]DS+]CLf+]^+]CLh+]G4i+]W.+]CLk+]^ l+]P8R m+]M n+] e o+]!kp+]#sǮ q+]$nff r+]%m8R s+]&MFt+](Ku+])D~+]+CL+],CLx+].Ay+]/U.z+]0J+]3CL+]4CL}+]6H~+]8J_+]9J+]KW?+]LJ8k@+]MFA+]Oy +]RCLD+]Tn4a E+]VHF+]WFC G+]XZ,c+][kf+]]q+]^i4+]aLA+]b]L+]cCA+]d`S +]e^ +]gLT+]iM>!+]kCL +]lCL+]mCL+]o]w +]rCL+]t}; +]uA^v+]wC+]x~ +]yO +]{@+]CL+]CL+]CL+]CL+]CL+]Fh+]Ii+]Ws+]@V+]E +]A+]m +]RJ +]p+]Hf+]@;+]@f+] +]xȴ+]A+] +]IL+]V+]a +]c" +]`3+]H\+]^+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+] L+] He+] I[g+] H+]ff+]ff}e+]yb`}f+]}q ^ ^ M+]*vԑ N+],C%O+]-DoP+].FQ+]2`yFR+]3NeS+]4~; T+]5P:V+]6|)\ X+]8FIKY+]9I[+]:\+]D+]E.SE+]U{F+]g*G+]N H+]L L+]\@M+]WcN+]kO+]l& P+]g[~ Q+]BER+]MT+]J:U+]KעV+]DNh+]CL+]CLY+]BFZ+]El+] CL+] CL]+] |` ^+]5Brd+]7CL+]8CLa+]:Ez+]=CL+]>CLd+]@DX+]CCLf+]D^+]ECLh+]GGJi+]HW +]KCLk+]N_z l+]OO=q m+]PL n+]Se3o+]Tl,Sp+]Vsk q+]Wm8R r+]Xk{ s+]YMXVt+]ZK*u+]\E5+]^CL+]_CLx+]aBEy+]bTpz+]cJ˽+]fCL+]gCL}+]iHU~+]kJ<+]lJ}+]mC0+]oCL~+]CL+]GJ+]\Ǯ +]ixB +]RǴ+]IV}+]J+]j +]ixB +]IiN+]i +]} +]A+]Pl+]IU +]L+]} 8+]K#+]EV+]R+]P"+]M +]I~+]o^ +]X+]Eʘ+]CL+]E״+]m,+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]C{3+] C+] Nd+] OxR+] VR+] VR+] CL+] CL+] CL+] CL+] CL+] CL+] CL+] ^+] CL+] CL+] CL+] N[+] CL+] C+] CL+] CL+] t +] "CL+] #CL+] $CL+] %CL$+] 'L%+] (J&+] +N+] .CL*+] 1ME,+] 2E+] 3CL.+] 5{in +] `CL+] aCL+] bCL+] cCL3+] fm4+] hA6+] jKi7+] kJg8+] lB9+] oF!:+] qOf;+] rO3<+] sLfg+] uCL>+] xYO@?+] yJG@+] zFoA+] |{ +] CLD+] p< E+] HF+] FQG+] \jY+] mg+] sh+] l&f+] N&+] _a+] D1+] b. +] _i +] I+] LG!+] CL +] CL+] CL+] cн +] CL+]  +] At@+] E+] @X+] kY+] @+] CL+] CL+] CL+] CL+] CL+] F,+] I\O+] Ry-+] @G}+] E +] BF+] n`* +] X +] rf+] H+] @+] ~l^ +] : +] x+] @۶+] o+ +] G'+] WM+] a[o +] af +] ^3+] E+] (^+] )CL+] *CL+] +CL+] ,CL+] .CL+] /CL+] 0CL+] 1CL+] 2CL+] 6K+] 7HgR+] 8IA+] 9H+] ;+] <}e+] r }f+]nd ^ ^ M+] Wv N+] YC/O+] ZD&P+] \FQ+] _`R+] `NS+] aAW3T+] bQ )V+] c| X+] FRSY+] J/N[+] H!\+] V^+] dU+_+] A8`+] B9a+] X#b+] [{c+] Su+] CL+] CL+] CLg+] rז +] CL+] CL+] CL+] CLm+] GMn+] o+] s^+] ?CL+] @CL+] ACL+] CNH+] ECL+] GC+] ICL+] JCL+] Lw +] OCL+] PCL+] QCL+] RCL$+] UK%+] VJ &+] I_e+] CL*+] Lû,+] Du+] CL.+] x +] CL+] CL+] CL+] CL3+] mg4+] A36+] DI7+] G8+] y39+] F6:+] J;+] Mf<+] Hɚ+] CL>+] W_?+] JR@+] GA+] {H +] CLD+] q E+] HF+] FjG+] Zm+] h+] mh+] g{4+] P+] `,+] DyN+] `׬ +] _ +] I :+] J;!+] CL +] CL+] CL+] d +] CL+] 7 +] A+] DV+] @C +] m I+] @]4+] CL+] CL+] CL+] CL+] CL+] F(t+] Ia+] T +] @3+] FD +] AH+] m +] T9 +] p9+] H+] @R+] @+] @8+] y =+] @b+] HF+] IH@+] KVm+] Oa +] R_s3 +] S_3+] TG+] U^+] VCL+] XCL+] YCL+] ZCL+] [CL+] \CL+] ]CL+] _CL+] `CL+] cK+] dH\p+] eI+] gH+] jg+] mg}e+] q}f+] l^i ^ ^ M+] wf N+] C4O+] D> P+] GQ+] `WnR+] NwS+] x0 T+] QnV+] } X+] F\@Y+] Jb[+] Ѯ\+] V=^+] a!_+] Ar`+] D.Ua+] ZǮb+] Yc+] S}q+] CL+] CL+] CLg+] s +] CL+] CL+]CL+]CLm+]Hyvn+]9o+]t8= +]CL+]CL+]CL+]CL+]CL+] CL+]!CLw+]$P8Rx+]&Z\y+]'gB+](OP{+])AK|+]*UM}+]+f~+]-^+]1D++]2G[+]5p$ ~+]7CL+]9g |+]+]V?+]JXV@+]GA+]rz +]CLD+]n E+]H!F+]FWG+]\&8+]!j8+]"oi+]$h3+]'RFq+](\w+])DyN+]*eT +]+c!( +],Go+].Ip!+]1CL +]2CL+]3CL+]5^ +]8CL+]:~ +];Al+]=D+]>@Q+]?N9 +]i@v+]kCL+]lCL+]mCL+]oCL+]pCL+]sF\+]tId|+]uS+]v@!+]xF* +]zAH+]|ll +]}Pq +]s+]H+]@+]A_+]@+]yo+]@R+]w_ +]I{+]Vv+]a +]^H +]^Ff+]E+]^+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]LU+]HRw+]Hض+]G^+]+]}e+]?c3I}f+]Jjed ^ ^ M+]y7I N+]C8VO+]E<P+]FQ+]`SR+]NIsS+]o+ T+]QV+]~9 X+]F^Y+]Jsq[+]I\+]UD^+]e_+]B`+]0C`a+]1ZEb+]2X c+]3Qs4+]5CL+]6CL+]8CLg+]:rb +]CL+]?CLm+]BH4n+]E#4o+]Gt +]ICL+]JCL+]KCL+]LCL+]MCL+]NCL+]OCLw+]SU#x+]TYy+]UbH+]VOP{+]WBE|+]XV4}+]YgK~+][^+]_DF+]`G+]cp ~+]eCL+]gfY |+]iCL+]Ht+]G +]J+]Lpu+]CLt+]CL+]aw +]o| +]l 5+]L6+]Lw0+]CL+]CL:+]Iw;+]V9<+]]\?+]E+]CL+]CLB+]} C+]PD+]EIUE+]aF+]q8RG+]WkH+]L L+]czM+]^:N+]qfgO+]jH P+]f 4 Q+]BcR+]M6]T+]JfU+]KV+]D+]CL+]CLY+]C Z+]Ez+]CL+]CL]+]~s ^+]BF+]CL+]CLa+]DS+]CL+]CLd+]E+] CLf+] ^+] CLh+]G&"i+]TW+]CLk+]Y< l+]Q33 m+]O n+]effo+]kp+]pR q+]kB r+] j s+]!Mzt+]"Ku+]#E%+]%CL+]&CLx+](By+])Q1z+]*Ib+]-CL+].CL}+]0HVF~+]2Kf+]3K:Z+]]D:+]_CL~+]`CL+]bGu+]d[J +]eixB +]gM+]hE+]jFN=+]mixB +]nixB +]oE+]pi +]r} +]sBRs+]vP52+]xInx+]yL+]|~ts+]~K)+]EV+]Lv+]P+]M+]I~+]eU +]S+]=T?+]>J\@+]?G-8A+]Bpmy +]ECLD+]FnT E+]HH-F+]IF G+]JZ+]Nl+4+]OqD+]Pkp+]SSX+]Ta!+]VD+]WfTQ +]Xb +]YF+]ZI!+]]CL +]^CL+]CL+]a/ +]CL+]: +]@n+]D+]@Je+]I? +]{+]CL+]CL+]CL+]CL+]CL+]E +]It+]U+]@+]Fȉ +]At@+]mJ +]Sn +]p+]H~+]@+]A$+]AB+]yo+]@}B+]vW +]G+]V"l+]b(\ +]c7w +]_\+]Hs3+]^+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]CL+]KI+]HF+]H+]G+]+]}e+]^e}f+]h^q ^ ^ M+]y N+]C> O+] DʅP+]!G/Q+]$`(R+]%NSS+]&o T+]'RO V+]P+ X+]RFkY+]TJ[+]U\+]VW8^+]Yc _+]ZB`+]\Ba+]]WEb+]^Wc+]`P+]bCL+]cCL+]dCLg+]fs +]hCL+]iCL+]kCL+]lCLm+]oGtn+]rɚo+]su +]uCL+]vCL+]wCL+]xCL+]zCL+]{CL+]|CLw+]Px+]XaHy+]^aH+]OP{+]C |+]S?}+]d-~+]^+]D9+]Fq+]q ~+]CL+]ef |+]CL+]H+]HAG+]J +]Hgpu+]CLt+]CL+]` +]p" +]lƨ 5+]L6+]L+]CL+]CL:+]IZ;+]Lo<+]RH?+]FxC+]CL+]CLB+]~Ü C+]NuD+]EIUE+]j\F+]ppG+]U\H+]L L+]b^M+]]\N+]rO+]k P+]g/ Q+]BɀR+]M[T+]J}wU+]L8V+]Dm+]CL+]CLY+]!CL!Z+]"E+]%CL+]&CL]+](: ^+])A^v+]+CL+],CLa+].D+]1CL+]2CLd+]4E+]7CLf+]8^+]9CLh+];GCi+] +]ixB +]EsZ+]i +]|+]B +]PC+]I+]L+]~+]K +]EV+]T5 +]Pj+]M+]I~+]eb3 +]S+]iU?+]jJT@+]kGA6A+]nrn +]qCLD+]sqV E+]uH#F+]vF|G+]v\m+]zf+]{k+]|d3+]T+]_3+]Dҷ+]e!4 +]b +]Fݱ+]HG!+]CL +]CL+]CL+]f +]CL+]K +]~l^ +]D_+]@n+]J% +]+]CL+]CL+]CL+]CL+]CL+]E+]I+]S9+] +]F&f +]Brd+]m7 +]Wc +]r3+]I+]@+]@+]@%+] yo+]@gv+]F+]IL\+]Va+]bq +]eQ +]`+]IS3+]^+]CL+]CL+] CL+]!CL+]"CL+]#CL+]%CL+]&CL+]'CL+]*K+]+HD+],HŨ+].GM+]0+]1}e+]_j}f+]f ^ ^ M/E y( N/E CJ)O/E EjP/EGQ/E`^R/ENS/Eof T/ES :V/E@]jX/EFx=Y/EJ[/E \/ETx^/Ea_/E Cx`/E"B6a/E#Xqb/E$Zc/E%RaH/E'CL/E(CL/E)CLg/E,s\. /E.CL/E/CL/E0CL/E1CLm/E4Gnn/E7io/E8wӅ /E;CL/EdCL/EeCL/EfCL/EgCL/EhCL/EiCLw/ElJ4x/EmUy/Eo`/EpOP{/EqC|/ErS}/EsaW>~/Eu^/ExC۽/EzG)S/E}q ~/ECL/Ef |/ECL/EI`/EG /EJYz/EM2Yu/ECLt/ECL/E_ /Ep /El 5/EME6/EL/ECL/ECL:/EIE;/ES1 l/E1PǮ m/E2O n/E4efo/E6kp/E8m q/E9h r/E:i3 s/E;Mt/E/E/TV?/EXJMd@/EYGU5A/E[vR /E^CLD/E`q3 E/EbHF/EcFG/Ed[e/Egi9/Einf/Ejh/EmUe/En^"Y/EoEO/Epg/ /EqcjS /EsG/EtIk!/EwCL /ExCL/EyCL/E{a[o /E~CL/E@/Ez)B /EEW/EA/E!/E/ECL/ECL/ECL/ECL/ECL/EE/EIo/ESV/E /EFww /EBɀ/Em /ER+ /Epf/EI-/E@U/E@O{/E@N/Eyo/E@Je/Ep| /EH/EW#/Eb /Ebs3 /E_f/EG/E^/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/EL'/EHD/EH/EG5/E~ff/E~ff}e/Ev5 }f/Ee ^ ^ M/E9zY N/E;CUO/Ec/EFk/EJ/EFZu/ECLt/ECL/E_h /Eq /El< 5/EL6/ELkX/ECL/ECL:/EH;/EH`s/E(CL/E)CL/E+wB /E.CL/E/CL/E0CL/E1CL$/E3LB[%/E4I;&/E7L%/E:CL*/E=K,/E>Q/E@CL./EBM/EDCL/EECL/EFCL/EGCL3/EJnU4/ELA36/ENHL7/EOJI8/Ex@P9/E{FP&:/E}NVf;/E~M3/EQ?/EJI@/EGjA/Ez /ECLD/Eouq E/EGF/EFG/E[2U/Eh/Em/Eg /EU+/E`/EE|/Ee /Eb /EG;/EI !/ECL /ECL/ECL/E] /ECL/E@/Ez$ /EE/EAAh/EO /E@)/ECL/ECL/ECL/ECL/ECL/EE/EI/ES}/EK /EE /EBN/Em7 /EQ? /Esvf/EIGk/E@f/EAe/EA|=/Eyo/E@4/EBɀ/EH9Q/EW*P/EbA /E b3 /E `,/E G/E^/ECL/ECL/ECL/ECL/ECL/ECL/ECL/E@CL/EACL/EDKo/EEHL/EFHŨ/EHG/EJ~/EK~}e/Ed[}f/Ed ^ ^ M/Efz N/EhCbhO/EiErP/EjH%Q/Em`mR/EnNS/EooI T/EpS{V/Eq@?X/EtFY/EuJ[/Ev\/EwW3^/Ezd_/E{C`/EA}-a/E\ub/EZRc/EQT{/ECL/ECL/ECLg/Ess /ECL/ECL/ECL/ECLm/EG n/E4o/Eyw1 /ECL/ECL/ECL/ECL/ECL/ECL/ECLw/EJGx/EYGy/Eh4/EOP{/EDG|/ET}/Ee~/E^/EC/EG ~/EqJ ~/ECL/Ejj. |/ECL/E I[~/E G//E JZ/EMu/ECLt/ECL/E` /Ep /EmD 5/EM6/ELu]/ECL/ECL:/E IΘ;/E!VC~/E?I3/E@N\/EAMR/EBO:/EDCL/EECL/EFCL/EGCL/EICL/EJCL/EKCL/EL^/EMCL/ENCL/EOCL/EQN^j/ESCL/EUC/EWCL/EXCL/EZzr /E]CL/E^CL/E_CL/E`CL$/EbL1%/EcI6&/EfRQ/EiCL*/ElLCD,/EmR/EoCL./EG4/ECL/ECL/ECL/ECL3/En4/EA6/EK47/EIg8/EC39/EF[:/EKp;/EMٚ/ERP?/EJ<@/EGA/E@[/ECLD/Eo7 E/EG9F/EFxG/E\$/Ep^f/Eu/Em3/EVU/E[|/EE/Efq /Ea/ /EG )/EJF!/ECL /ECL/ECL/Ea /E CL/E @/E w /E E@/E A/E RC /E @Q:/E CL/E CL/E CL/E CL/E CL/E F/E I=/E Y,/E : /E Eȉ /E BE/E mm /E V /E "s)/E %Iew/E &@./E '@/E (A|/E +yo/E -@&/E .v /E /I/j/E 1W/E 4c/ /E 7^ /E ``6f/E aF/E c^/E dCL/E eCL/E fCL/E gCL/E hCL/E jCL/E kCL/E lCL/E mCL/E pK/E qHL/E sH/E tG/E v~/E w~}e/E eE}f/Ef ^ ^ M/E { N/E CldO/E EP/E HmqQ/E `yFR/E NS/E o T/E S V/E @*X/E F Y/E Jo[/E ʬv\/E V.^/E by_/E D`/E A<a/E X+b/E Xc/E Q\/E CL/E CL/E CLg/E s /E CL/E CL/E CL/E CLm/E Fn/E |o/E y# /E CL/E CL/E CL/E CL/E CL/E CL/E CLw/E Nzx/E UaHy/E \/E OP{/E D|/E T }/E fM~/E ^/E (Cd/E )F/E -r ~/E /CL/E 1k6 |/E 3CL/E 6I(/E 7G(O/E 9J/E :Fu/E G/E Y^H/E ZN L/E [WT{M/E \PN/E ]eO/E `p| P/E ak) Q/E bBR/E MqT/E JnU/E LC;V/E E/E CL/E CLY/E DBZ/E E/E CL/E CL]/E @.^/E A/E CL/E CLa/E EV[/E CL/E CLd/E E/E CLf/E ^/E CLh/E Gi/E P/E CLk/E Zj l/E O m/E Nz n/E d@o/E kp/E nf q/E gq r/E h\) s/E Mst/E Kډu/E CQ6/E CL/E CLx/E C y/E S>9z/E I /E CL/E CL}/E Hk~/E K/E K/E EL/E CL~/E CL/E Hؒ/E \o /E ixB /E MJ/E E,O/E E,O/E ju /E ixB /E DS/E i /E {/E Bð/E P.C/E I/E L/E E/E K<-/E @ /E "Lv/E #O?/E %Ny/E &I~/E (e] /E +S/E REL?/E JE/@/E GbA/E @~/E CLD/E qV E/E H %F/E FضG/E Z1/E lL/E qNf/E jFf/E Vr/E _ /E F&/E eM /E ` /E E/E H!/E "CL /E #CL/E %CL/E 'hq7 /E *CL/E ,A+/E -r /E .E/E /B /E 0N /E 3A 3/E 5CL/E 6CL/E 7CL/E 8CL/E 9CL/E I"/E ?TK/E B /E EE /E GB1 /E Hm7 /E IYO /E Lr9/E OI/E Q@;/E RAX/E SAyV/E Vy/E W@/E x /E Ge/E X/E cjS /E `" /E _vf/E F6f/E ^/E CL/E CL/E CL/E CL/E CL/E CL/E CL/E CL/E CL/E KE/E HH}/E H/E G/E ~/E ~}e/E 0ab}f/E ?b ^ ^ M/E z N/E CxO/E BSoP/E HL#Q/E a$R/E NS/E oK T/E M'V/E t} X/E FY/E Kz[/E !\/E S^/E h_/E w `/E @a/E Yb/E Z c/E P)/E CL/E CL/E CLg/E s /E CL/E CL/E CL/E CLm/E Fn/E @ o/E yM8 /E CL/E CL/E CL/E CL/E CL/E CL/E CLw/E K\x/E HY8Ry/E I]Ǯ/E JOP{/E KxP7 |/E MR}/E Nc;~/E P^/E SC8/E TF[/E Wr]\ ~/E YCL/E \iU: |/E ^CL/E aI/E bF/E cJO/E fM6u/E iCLt/E jCL/E l^t /E mpk /E nmx 5/E qMi6/E rLy/E tCL/E uCL:/E wIL\;/E xQe/E6C\/E9k. /E:ixB /E;C/E|/E?Cy/EBPW/EDIH/EFL/EIE/EKK?/EtB-/EwS0/ExO3/EzNy/E{I~/E|i#A /EX/ECZ/ECL/EEN/Ep/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/EB/Evf/EI3/EZ/E]z/E[/ECL/ECL/ECL/ECL/ECL/ECL/ECL/E^/ECL/ECL/ECL/ENR%/ECL/ECd/ECL/ECL/E O /ECL/ECL/ECL/ECL$/EL%/EJ'&/EH/ECL*/ELVe,/EEV[/ECL./EwS /ECL/ECL/ECL/ECL3/Enp4/EA6/ERY7/EF38/EFf9/EFd:/ELC3;/ENVf/E SL?/E J[@/E GA/E} /ECLD/Eq E/E=H?F/E>F|G/E?]L/EBn/ECtfg/EDlf/EHWO/EI_=/EJFR/EKc /EL_ /EMD/ENGx!/EQCL /ESCL/ETCL/EVb(\ /EYCL/E[A{/E\qHF /E]D/E^A//E`V /EbA[ /EdCL/EeCL/EfCL/EgCL/EhCL/EkF0/EmI /EnXC/Eq: /EtEY /EvC/Ewn}[ /ES /Er/EJL/EA/EAz/EAyV/Ey/E@A/EC/EH/EX/Ec /Ea3 /E_/EE/E^/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/EK/EHY/EHa/EG}/E~33/E~33}e/E`g}f/E ld2 ^ ^ M/E{ N/ECpO/E@~P/EHbQ/EbR/ENjS/E} T/EIKV/En X/E"FkY/E#K[/E$>;\/E%Q^/E(g _/E)lU `/E*A33a/E,r޹b/E.uc/E/qG/E1CL/E2CL/E3CLg/E5sk /E7CL/E8CL/E:CL/E;CLm/E>F(n/Ei4o/EjzI /ElCL/EmCL/EnCL/EpCL/EqCL/ErCL/EsCLw/EvK>x/EwX34y/Ex]>/EyOP{/E}ifg |/ER}/Ed%/~/E^/EC&y/EFk/Erk ~/ECL/EhE |/ECL/EI/EF+t/EJ3/EFhu/ECLt/ECL/E]5 /Eq /EmD 5/EM`6/ELT/ECL/ECL:/EIp;/EQCK/E_SY3?/E`Jn9@/EaG3A/Edr /EfCLD/Ehp| E/EjH;DF/EkG G/El[/EplC3/Eqr3/Erjf/EuW/Ev]f/ExFG/Eyc_ /Ez^j /E{D/E|G:!/ECL /ECL/ECL/E]K /ECL/EAt@/Ep /ED̘/EB/EONe /EA/ECL/ECL/ECL/ECL/ECL/EF)[/EI=/EY/E: /EE /EBM/Eme /ES /Eqf/EIl/EA'/EA^v/EAݍ/Ey/E@/Ezr /EH/EXa~/Ec_ /EbU /E_/EF/E^/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ELU/EHj/EH/E$G/E&}/E'}}e/EbY}f/Eci4 ^ ^ M/EGz.b N/EIC^!O/EKACP/ELHQ/EOc R/EPNTS/EQA+T/ERFVV/ETgP X/EVF2Y/EWK[/EX\/EYR1^/E\b_/E]r `/EB״a/EW\b/E[c/ES/ECL/ECL/ECLg/Es /ECL/ECL/ECL/ECLm/EGn/Eo/E{ /ECL/ECL/ECL/ECL/ECL/ECL/ECLw/EM >x/ERy/E^)/EOP{/Em |/EQ}/Ebs~/E^/EC/EG'/Erz ~/ECL/Ej!N |/ECL/EI/EE/EJ/ENu/ECLt/ECL/E[Y /EqV /El 5/EMS6/EL0/ECL/ECL:/EI;/EPM/EUYN/EicO/Ejp P/Ecx Q/EC~R/E ST/E!JU/E"Lx$V/E#E/E%CL/E&CLY/EPEZZ/EQE/ETCL/EUCL]/EWAҩ^/EXz)B /E[CL/E\CLa/E^A$Z/EaCL/EbCLd/EdF/EgCLf/Eh^/EiCLh/EkG'i/ElN0 /EoCLk/Er[@ l/EsO m/EtN n/Eweo/Exj p/EziaH q/E{b r/E|b s/E}Mt/E~Ku/EA/ECL/ECLx/EC/y/EOz/EGQ/ECL/ECL}/EHk~/EL /EK/EE8/ECL~/ECL/EHU/E[~ /EixB /EI/EB /EC/EixB /EixB /EC/Ei /E} /ECy/EPC/EI/EL/EE/EL/EBc/ER -/EM/EPB/EI~/EiU /EX-/EBM/ECL/EE/Ep$n/ECL/ECL/ECL/ECL/ECL/ECL/ECL/ECL/E B/E!B9/E"K/E#MR/E$VR/E%V/E(CL/E)CL/E*CL/E+CL/E,CL/E-CL/E.CL/E/^/E0CL/E2CL/E3CL/E4N5/E6CL/E9C/E;CL/E%/EGIF&/EJQ~'/ELCL*/EOLH,/EPT5/ERCL./E|~ /ECL/ECL/ECL/ECL3/EoY4/EA6/EN 7/EG8/EAg9/EEW:/ECY;/EH/ESK?/EJ`@/EGcA/ErN /ECLD/EqHF E/EHYKF/EGG/E[y/Emf/Er3/Ekt/EXM/E`D\/EFG/Ec /E_ /EC/EGC!/ECL /ECL/ECL/Ec/ /ECL/EAAh/En$ /EDu/EA"/EP% /EA͹/ECL/ECL/ECL/ECL/ECL/EF!7/EI/EZ/E: /EE /EB/EnQ /EX3 /Ep3/E I/E AW3/E AY/Ezr /Eyo/E@/EDQN/EH2/EXss/Ed /EEc{ /EF`\/EGG3/EH^/EICL/EKCL/ELCL/EMCL/ENCL/EOCL/EPCL/ERCL/ESCL/EVK/EWHt/EXH@/EYG/E\|/E]|}e/EbbN}f/E`P ^ ^ M/Ew{| N/EzCFO/E{IFP/E|HݢQ/EcYRR/ENS/EAT/EM6]V/Et X/EFY/EK%[/E?\/ERr^/Ef_/E~UU `/ED!a/E[hb/E]c/EU)/ECL/ECL/ECLg/Es /ECL/ECL/ECL/ECLm/EHgRn/E@o/E{ /ECL/ECL/ECL/ECL/ECL/ECL/ECLw/EO)x/EVHy/Em/EOP{/E|_ |/ERJ_}/E`<~/E^/ED*p/EGb/Er@3 ~/ECL/EiF |/ECL/EI/EEYA/EJ_/E"G4u/E$CLt/E%CL/E'[' /E(p /E)l9X 5/E,M<6/E-L^/E/CL/E0CL:/E2H;/E3Pb O3-mJ P3-hq7 Q3-C>R3-NTT3- JpU3- LZV3- E93- CL3-CLY3-E2Z3-F3-CL3-CL]3-B^3-} 3-CL3-CLa3-B3- CL3-!CLd3-#G3-&CLf3-'^3-(CLh3-*Hi3-+Mշ3-.CLk3-1_V l3-2QH m3-3PǮ n3-6d3o3-7kڅp3-9k3 q3-:d r3-;e s3-dMvt3-eLu3-fBh3-hCL3-jCLx3-lCpiy3-mNWz3-nHzx3-qCL3-rCL}3-tHU~3-vL3-wK3-xFp3-zCL~3-{CL3-}IL3-] 3-ixB 3-K3-E,O3-E,O3-k) 3-i& 3-DQN3-i 3-|3-D3-PW3-I3-M 3-E3-L3-BV3-Q43-M3-Ny3-I~3-h 3-Xp3-Bd!3-CL3-E3-m3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-B3-Af3-I33-OxR3-VR3-VR3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-^3-CL3-CL3-CL3-N5D3-CL3-CJ3-CL3-CL3-vh. 3-CL3-CL3-,CL3--CL$3-0L%3-1J)&3-4L;3-6CL*3-9LD-,3-:ER3-x 3-ACL3-BCL3-CCL3-DCL33-FoQ043-HA63-KOvf73-LG83-MEVg93-PEh*:3-RH;3-SJ<3-TJ03-UCL>3-XSB?3-YJy+@3-ZGA3-]s 3-`CLD3-as E3-cH4F3-dGG3-e\<3-k(3-qfg3-i3-XBS3-\[3-F*3-aD 3-] 3-E3-HO !3-CL 3-CL3-CL3-hS 3-CL3-At@3-m 3-Du3-A3-Aɴ3-A3-CL3-CL3-CL3-CL3-CL3-F 3-I,3-[^3-: 3-EU 3-At@3-m- 3-Xz 3-o|3-I}$3-Ae3-B,3-z7 3-xu3-@3-I/j3-I3-Y3-dc 3-cY 3-` 3- H&f3- ^3- CL3- CL3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-L3-H3-H3-H3-}3-}}e3-W[}f/E'`o ^ ^ M3-b{B~ N3-dCY#O3-eN-P3-fI1Q3-ic R3-jNS3-kp- T3-lI `V3-mm X3-pFY3-qKA[3-r4\3-sT^3-vbv$_3-wmUU `3-yD%a3-z{gb3-|hc3-}z8R3-CL3-CL3-CLg3-t>M 3-CL3-CL3-CL3-CLm3-Hn3-@o3-| 3-CL3-CL3-CL3-CL3-CL3-CL3-CLw3-O{x3-Tfy3-nG3-OP{3-gfg |3-Q}3-^P~3-^3-DX3-G:3-r ~3-CL3-j!N |3-CL3-I[3-E3-J3-Oru3-CLt3-CL3-Ziy 3-p 3-l< 53-Mz63-MC]3-CL3-CL:3-I/;3- Oe<3-!W?3-"GB3-$CL3-&CLB3-'AC3-(NAjD3-*E E3-+saHF3-,zHG3-.hH3-/O L3-0YM3-1U)N3-2kO3-5m P3-6i Q3-7BR3-9N T3-:Jt\U3-;L V3-CL3-?CLY3-AE]Z3-BG3-DCL3-ECL]3-GBɀ^3-HA3-KCL3-LCLa3-NDZ3-QCL3-RCLd3-TG )3-WCLf3-X^3-YCLh3-[H/i3-L3-CLk3-^+b l3-QB m3-O n3-e33o3-k}p3-m q3-g\ r3-g s3-Mt3-L,u3-A3-CL3-CLx3-CZy3-Lhz3-G3-CL3-CL}3-Hm~3-L#g3-K3-Eޢ3-CL~3-CL3-I3-ixB 3-j 3-M^3-EFh3-EG3-m 3-kh 3-Ed3-i 3-}3-E,O3-PW3-I^3-L3-E3-L3-B33-Lv3-OG3-Ny3-I~3-h 3-X3-Bd!3-CL3-E3-q3-CL3- CL3- CL3- CL3- CL3-CL3-CL3-CL3-C3-Af3-KQ3-OxR3-VR3-VR3-CL3-CL3-CL3-CL3-CL3- CL3-!CL3-"^3-#CL3-MCL3-NCL3-ON63-QCL3-TC3-VCL3-WCL3-XuD 3-[CL3-\CL3-]CL3-^CL$3-aK%3-bJ;&3-eHgp3-gCL*3-jK,3-kG~3-mCL.3-oG3-rCL3-sCL3-sCL3-uCL33-wom43-yA63-|K73-}E383-~FY93-E:3-E;3-H<3-Hp3-CL>3-R-?3-Jz@3-GA3-tY 3-CLD3-t E3-H)F3-G/G3-[C3-kD3-q13-i3-X3-_ 3-F3-bA 3-^ 3-F3-Ik!3-CL 3-CL3-CL3-`׬ 3-CL3-A 3-ph 3-A3-A/3-D(N3-B13-CL3-CL3-CL3-CL3-CL3-F93-Iv3-Y3-: 3-D" 3-H3-pmy 3- S 3-#of3-&Ia3-'AW33-(B3-+{ 3-,y&3--@3-.vI 3-0IE3-2YN3-5d 3-8e 3-9`6f3-:G33-;^3-CL3-?CL3-@CL3-ACL3-BCL3-CCL3-ECL3-FCL3-ILE3-JH3-KHٞ3-LH3-O}L3-x}L}e3-~}f3-_~ ^ ^ M3-{A N3-CO3-ImP3-IQ3-e[R3-O`S3-p T3-CYV3-b X3-FY3-KRY[3-]Y\3-N(^3-f}_3-m `3-C"a3-V8Rb3-X c3-Tf3-CL3-CL3-CLg3-u T 3-CL3-CL3-CL3-CLm3-Hn3-go3-}Qk 3-CL3-CL3-CL3-CL3-CL3-CL3-CLw3-Ix3-S4y3-ap3-OP{3-e"# |3-P?}3-`# ~3-^3-DH3-FI3-rE ~3- CL3- i |3-CL3-I3-E&3-J3-HZu3-ACLt3-CCL3-EY0! 3-Fp 3-Gm 53-IMr63-KM 3-LCL3-NCL:3-OH@;3-PNz<3-QYAv?3-SHH3-UCL3-VCLB3-XBNC3-YQMD3-ZFzE3-\f\*F3-]maHG3-^apH3-_O L3-aZRM3-bPN3-cdBO3-em4 P3-fi\ Q3-hBR3-iMɰT3-kJ"U3-lLV3-mEM3-oCL3-pCLY3-rElZ3-sF/3-uCL3-vCL]3-xCL!^3-yB53-CL3-CLa3-E*3-CL3-CLd3-Gg3-CLf3-^3-CLh3-H$i3-Vg 3-CLk3-^@ l3-Q) m3-Pff n3-do3-kp3-o q3-g r3-haH s3-Mt3-Lu3-Bo3-CL3-CLx3-Cy3-P%z3-H]3-CL3-CL}3-H~3-L,3-K03-F~3-CL~3-CL3-I3- ixB 3- kK 3- M3- FXb3-F|3-mYk 3-k 3-FxC3-i 3-|U3-E,O3-PC3-I'3-L3-!E3-#L3-$BV3-'T3-)O3-+Ny3-,I~3--hӃ 3-0X-3-1B3-3CL3-6EY3-7o83-9CL3-:CL3-;CL3-CL3-?CL3-@CL3-ACL3-l}f3-m~ə3-nI33-oOxR3-pVR3-qVR3-sCL3-uCL3-vCL3-wCL3-xCL3-yCL3-zCL3-{^3-|CL3-}CL3-CL3-N;3-CL3-Cʑ3-CL3-CL3-{= 3-CL3-CL3-CL3-CL$3-L&%3-I&3-P.3-CL*3-L,3-F 3-CL.3-Ed3-CL3-CL3-CL3-CL33-o43-A63-T973-QL83-K|93-Dږ:3-F0;3-I3<3-I3-CL>3-Q?3-J}@3-GA3-u 3-CLD3-u E3-H"F3-GKG3-]3-i3-nf3-gP3-Xݱ3-^\k3-F3-`q. 3-] 3-G`3-I/!3-CL 3-CL3-CL3-]! 3- CL3- A3-4|C 3-6D3-7A:3-8Ue 3-9Bz3-CL3-?CL3-ACL3-DF 3-EI?C3-FZ3-I: 3-LE 3-NBUZ3-OnB 3-PS 3-Tr33-WIO3-XA~k3-YBF3-\z 3-]y3-^@3-_E3-`H]3-cXC3-fd 3-ic] 3-j]f3-kDf3-l^3-mCL3-nCL3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-L3-HW3-H3-G3-}L3-}L}e3-8gw}f3-E^ ^ ^ M3-{Q N3-CO3-J[GP3-I5Q3-d#R3-OQKS3-p T3-K2V3-px X3-FY3-KwV[3-\3-Q>^3- aC_3- |8 `3- Bia3- Wzb3- Zc3- R+3- CL3- CL3- CLg3- u) 3- CL3- CL3- CL3- CLm3- Gn3- 4o3- }Z 3- CL3- CL3- CL3- CL3- CL3- !CL3- #CLw3- &Mx3- 'U)y3- (gQ3- )OP{3- *y: |3- +P8~}3- ,^̄~3- .^3- 2C3- 3Fdz3- 6r ~3- `CL3- bhN |3- dCL3- hI3- iDD3- jJ 3- mPu3- oCLt3- pCL3- sY33 3- tqn 3- umZ 53- wMmO63- xM(3- zCL3- {CL:3- }G;3- ~N<3- Y?3- H23- CL3- CLB3- BC3- VDD3- EE3- g\F3- wfgG3- r\*H3- O3 L3- cM3- ^ N3- sO3- m P3- i= Q3- B5R3- N T3- J-U3- LV3- F3l3- CL3- CLY3- EZ3- F:3- CL3- CL]3- C:^3- Cu3- CL3- CLa3- F3- CL3- CLd3- G )3- CLf3- ^3- CLh3- Hi3- W3- CLk3- ^v l3- Q\ m3- O n3- ds3o3- k@p3- r q3- h3 r3- k s3- Mt3- L4u3- Bf3- CL3- CLx3- Cy3- S'z3- H$3- (CL3- )CL}3- +H$~3- -L9F3- .K3- /F%3- 1CL~3- 2CL3- 4J3- 7] 3- 8ixB 3- :M:3- ;FN=3- 3- [J>3- CL3- CL3- CL3- CL3- CL3- CL3- CL3- ^3- CL3- CL3- CL3- N33- CL3- C3- CL3- CL3- }u% 3- CL3- CL3- CL3- CL$3- LX7%3- I&3- N%3- CL*3- LaS,3- W3- CL.3- z$ 3- CL3- CL3- CL3- CL33- o43- A63- W73- My83- G93- D:3- C6f;3- H,<3- E33- CL>3- Oˑ?3- J}@3- GA3- t!N 3- CLD3- s E3- H'@F3- Gd|G3- [!3- "i3- #o3- %h3- (X3- )\s3- *GE3- +_Z 3- T]Z7 3- UFy3- VH!3- ZCL 3- [CL3- \CL3- ^c/ 3- aCL3- cA3- dA3- eJF3- gB3- iNa3- jAF3- lCL3- mCL3- oCL3- pCL3- qCL3- tF3- uIT$3- vUv3- y: 3- |EH 3- By3- m 3- W 3- pVf3- I13- A~k3- C"3- zu 3- x!3- @3- Ik3- I3- X}3- e!4 3- bU 3- `f3- G3- ^3- CL3- CL3- CL3- CL3- CL3- CL3- CL3- CL3- CL3- L8U3- H3- H3- G3- g=q3- g=q}e3- i`}f3- s^! ^ ^ M3- "z N3- $CO3- %FP3- &IQ3- )dR3- *O[S3- +o T3- ,KlV3- .qLM X3- 0GY3- 1K{;[3- 2P\3- 3N^3- 7h&_3- 8vUU `3- :Bza3- ;yQb3- p3- @CL3- ACL3- BCLg3- Du7 3- GCL3- HCL3- ICL3- KCLm3- NGY<n3- Q@o3- R~M9 3- TCL3- UCL3- WCL3- CL3- CL3- CL3- CLw3- JHx3- Yy3- aq3- OP{3- r |3- Og}3- ^X~3- ^3- C3- F93- r ~3- CL3- h1 |3- CL3- It3- De3- J3- Iu3- CLt3- CL3- Zȵ 3- qy 3- m 53- Mo#63- M63- CL3- CL:3- GX;3- M_<3- Y ?3- G'3- CL3- CLB3- BC3- V6D3- E1E3- c.F3- sG3- ^BH3- O7 L3- c޹M3- bN3- uO3- o P3- k Q3- BnR3- NT3- JיU3- LV3- F3- CL3- CLY3- EZ3- F~3- CL3- CL]3- D^3- AW33- CL3- CLa3- D3- CL3- CLd3- G3- CLf3- ^3- CLh3- Hs<i3- V3- CLk3- J[ l3- KPR m3- LO n3- OcYo3- Pk/ep3- Rs q3- Sk r3- Tl s3- UMt3- VLEu3- XBk3- ZCL3- [CLx3- ]Cy3- ^Rz3- _D̘3- bCL3- cCL}3- eH]~3- gLJ3- hL3- iF[G3- kCL~3- lCL3- nI3- qixB 3- rj' 3- tM&y3- uFN=3- vFN=3- ylR 3- zj 3- {FR3- |i 3- ~} 3- D3- P523- I3- L3- E3- L3- Bt3- RF3- O3- P(3- I~3- m 3- S3-tM?3-uJ@3-vGA3-xt>u 3-{CLD3-}s E3-H0ZF3-G{.G3-[2U3-m3-s33-l3-YK3-_'3-G<3-eM 3-` 3-G3-J+!3-CL 3-CL3-CL3-g 3-CL3-A3-A3-Bc3-B8P3-MSz 3-Ad3-CL3-CL3-CL3-CL3-CL3-F3-Ii3-X3-: 3-E 3-C/3-n 3-Wc 3-o33-I*J3-A3-C3-{in 3-x3-@3-wB 3-I 3-X3-e[ 3-a 3-_ 3-F3-^3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-CL3- CL3- L^3- H 3-HR3-GM3-|33-|3}e3-^~}f3- _ ^ ^ M3-Uy N3-WC[O3-XBRP3-ZIQ3-]foR3-^O[S3-_of T3-`DV3-ac3 X3-cG6Y3-dK~&[3-fP\3-gPka^3-jfm_3-ki `3-mAla3-npaHb3-ouEc3-pnfg3-sCL3-tCL3-uCLg3-wu 3-CL3-CL3-CL3-CLm3-G5n3-@fo3-4 3-CL3-CL3-CL3-CL3-CL3-CL3-CLw3-Ix3-RBy3-^343-OP{3-c |3-O}3-_p~3-^3-C]3-G'3-q3 ~3-CL3-h# |3-CL3-IV 3-Dw3-J3-Pu3-CLt3-CL3-[ 3- qV 3- m 53- Mp 63- MA3-CL3-CL:3-G;3-L<3-Qsf?3-G3-CL3-CLB3-BC3-UoD3-EE3- aF3-!t8RG3-"_H3-$OX L3-%is4M3-&c޹N3-'wO3-*o+ P3-+h Q3--B5R3-/S T3-0JU3-1M ?V3-2F@w3-4CL3-5CLY3-7EZ3-8Fs3-;CL3-DG^3-?}: 3-jCL3-kCLa3-mC3-pCL3-qCLd3-sG3-vCLf3-w^3-xCLh3-zHi3-{Uo3-~CLk3-\ l3-Q3 m3-P{ n3-do3-k:p3-qL q3-i r3-j s3-Mt3-LQu3-Bɀ3-CL3-CLx3-Dy3-Qvz3-DY3-CL3-CL}3-Hzx~3-LXD3-L73-F3-CL~3-CL3-J<3-ixB 3-j> 3-N3-H3-G3-l8 3-kQ 3-G3-i 3-} 3-Ds3-Pe3-J3-L3-E3-M 3-B33-R 3-P3-PB3-I~3-m 3-SCL3-?CL3-@CL3-ACL3-C^3-DCL3-ECL3-FCL3-HNO3-ICL3-LC3-NCL3-OCL3-Qzr 3-TCL3-UCL3-VCL3-WCL$3-YK%3-ZJs&3-]L>3-`CL*3-cK,3-dG3-fCL.3-hE3-jCL3-CL3-CL3-CL33-oD43-A63-V73-M83-K 93-D:3-B3;3-G3<3-Cvg3-CL>3-N+?3-J@3-G A3-t 3-CLD3-tz E3-HOIF3-IG3-Z3-i3-o3-hff3-Y,3-]ɂ3-GW3-cн 3-_ 3-H3-K?m!3-CL 3-CL3-CL3-`׬ 3-CL3-Af3-B}3-Cw3-Bk!3-N 3-A)j3-CL3- CL3- CL3- CL3- CL3-F3-IR3-T3-U 3-Es3 3-CSc3-o 3-Qz 3- rٚ3-#I3-$Ai3-%B3-(zu 3-)x!3-+@3-,EW3--Hm3-/XJ3-2e 3-]c 3-^`3-_H3-`^3-bCL3-cCL3-dCL3-eCL3-fCL3-hCL3-iCL3-jCL3-kCL3-nL;3-oH3-qHj3-rG3-t}L3-u}L}e3-c;:}f3-_1 ^ ^ M3-{| N3-CO3-FP3-IuQ3-fvR3-O6S3-ouq T3-I~V3-lO X3-GLY3-Ko[3-Ȩ.\3-Pq^3-aA_3-y `3-AZ#a3-Zb3-^c3-W3-CL3-CL3-CLg3-unA 3-CL3-CL3-CL3-CLm3-G|n3-lo3-I 3-CL3-CL3-CL3-CL3-CL3-CL3-CLw3-LaHx3-PHy3-\{3-OP{3-t3 |3-Od}3-^~3-^3-'Cu3-(F3-+r@3 ~3--CL3-/fX |3-1CL3-5IP3-6D 3-7J3-:I2u3-3-N07?3-J\@3-H A3-u 3-CLD3-u E3-H7F3-GG3-Z3-g43-l`3-eNf3-Y3-]¬3-G{o3-f(r 3-bq 3- Fb3-!H!3-$CL 3-%CL3-&CL3-)`EA 3-,CL3-.B3-/ O 3-0A3-1B3-3,3-4@x3-7CL3-8CL3-9CL3-:CL3-;CL3->F3-?I3-@Q3-C O 3-GEȉ 3-ICp3-Jn$ 3-KR 3-Nr 3-QI'3-RAR3-SC$83-~|& 3-x!3-@A3-I63-J,3-W3-e 3-eD 3-`3-I|3-^3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-CL3-LY 3-H3-H3-H73-|3-|}e3-3`}f3-@_ ^ ^ M3-y N3-C O3-DLMP3-I%Q3-f߉R3-OS3-o; T3-HzV3-l:z X3-GgY3-K[3-\3-N!l^3-fJ_3-qU `3-Aa3-sqb3-sgc3-o3-CL3-CL3-CLg3-u^ 3- CL3- CL3- CL3- CLm3-FŤn3-@1o3- 3-CL3-CL3-CL3-CL3-CL3-DCL3-ECLw3-IKLx3-JUy3-K[{3-LOP{3-Ol |3-QPn }3-R]p~3-T^3-XCI3-YFO3-\q ~3-^CL3-`g^ |3-bCL3-fIL3-gD]3-hJQ3-kOpu3-mCLt3-oCL3-qZW 3-rr9X 3-sn 53-vM63-wMP 3-yCL3-zCL:3-|H;3-}Kf<3-~W;?3-GJY3-CL3-CLB3-C C3-S&D3-FE3-`gF3-e(G3-Z\)H3-O L3-X M3-RfN3-u O3-mYk P3-fE Q3-D;R3-TT3-JU3-MV3-F73-CL3-CLY3-FZ3-FxC3-CL3-CL]3-D^3-y 3-CL3-CLa3-Af3-CL3-CLd3-G43-CLf3-^3-CLh3-Hai3-T?Z3- CLk3-\% l3-O m3-N8R n3-e3o3-kp3-q33 q3-k. r3-kG s3-Nt3-Lxu3-C3u3-CL3- CLx3-"D_y3-#NNz3-$H@3-'CL3-(CL}3-*H~3-,Lup3--L|3-.G]3-0CL~3-1CL3-3JBU3-6ixB 3-7jD 3-8JZ3-9C>3-:Cμ3-;lo 3-=j 3->D3-?i 3-A} 3-BEy'3-EPP3-GJP7L7E7M 7 Cy7 R7 O~7PB7I~7l8< 7S7NnL?7J@7HlA7t 7CLD7t E7H>F7G8G7[H7j7pA7i[47Y7_ 7G67hJ 7cjS 7EsZ7H!7CL 7CL7CL7g[~ 7CL7BF7@7B7B7L) 7@=7CL7CL7CL7CL7CL7F+*7I7S 7.~' 71FU 73Cp74n 75Vj 79sy7Ca7A|ƚ 7Bx7C@7Du} 7FH7HW7Kf7 7Ncs3 7O_`7PH07Q^7RCL7TCL7UCL7VCL7XCL7YCL7ZCL7[CL7\CL7`Ln7aH7bHV7cH 7e}7f}}e7a}f3-q^w ^ ^ M7yȥ N7C,O7AP7I&Q7hTR7O+S7o T7DCV7b X7GoY7Ke[7 O\7O^7c_7m* `7Aa7W\)b7Yc7U7CL7CL7CLg7u 7CL7CL7CL7CLm7Fn7@Xo7@A7CL7CL7 CL7 CL7 CL7 CL7CLw7Lx7Ry7`R7OP{7f |7N}7]~7^7 C'7!F=7%qJ ~7'CL7)j!N |7+CL7/I_!7XDz7YJ7\Jau7^CLt7`CL7bY^6 7cqR 7dn 57fMw67hMNM7jCL7kCL:7mH#;7nJZ<7oYAv?7pHs<7sCL7tCLB7vCZC7wR D7xEE7zjqF7{gpG7|^qH7}Om L7~g M7b!HN7ucO7mJ P7f(r Q7D_R7U'[T7JHU7LV7F7CL7CLY7F>KZ7F7CL7CL]7DY^7y 7CL7CLa7A7CL7CLd7G7CLf7^7CLh7Hi7Sl7CLk7\J$ l7Sz m7Q = n7d3o7kp7s q7mG r7m=q s7N 't7Lu7CM7CL7CLx7Dy7M"z7DY7CL7CL}7Ha~7L7L7 GT~7"CL~7#CL7%Jf7(ixB 7)k_ 7+L/c7,DM7-EN70m4 71l3 73E 74i 76|(77FN=7:O77O?7J@7HA7uD 7 CLD7 u' E7HD^F7GzG7Z7l7q7j$7ZTv7\7G"7f 7bTF 7Fb7I !7#CL 7LCL7NCL7PdE 7SCL7UBy7V: 7WC 7XC 7ZMu 7\@7^CL7_CL7`CL7aCL7bCL7fF(t7gIi7hU?7k~ 7nED 7pCμ7qoK 7rS 7vs,7yH7zAj7{C7~|R8 7x7@&7H*7I7XP7f/ 7c 7`7El7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7LP7H(7H7H7{7{}e7ZbP}f7b]A ^ ^ M7{%m N7CvO7F+P7IQ7gR7OdS7qes T7L}V7q# X7!GwY7"K[7#C\7$O^7'g_7(~r `7*@a7,[xRb7-[xRc7.T>70CL71CL73CLg75unA 77CL78CL7:CL7;CLm7>Fzn7A~go7C@H7ECL7FCL7HCL7ICL7JCL7KCL7LCLw7OLx7xR34y7y]7zOP{7|z_ |7}O3|}7~^U~7^7C7F" 7q ~7CL7e |7CL7IqS7E57J7Mu7CLt7CL7Zc 7r- 7nC 57MS67M[7CL7CL:7H;7I<7R H?7H9Q7CL7CLB7CC7PD7FE7dF7kGG7_H7O L7iM7efgN7xkO7k P7dR Q7DJR7U(T7JDU7LV7F7CL7CLY7FTZ7F7CL7CL]7D^7{ 7CL7CLa7B?7CL7CLd7G07CLf7 ^7 CLh7 Hi7 R7CLk7\Ej l7N m7MQ n7Abo7Bkp7DpG q7EjW r7Fk = s7GNGt7HL^u7ICa7KCL7LCLx7ND̘y7OKz7PH*7SCL7TCL}7VHؒ~7XL7YLK7ZG*7\CL~7^CL7`Jt7bEV7cEV7eC7fC7gC7hEV7iEV7jC47kE7m|ʿ7nF47qPW7tJP7uL7xE7zM 7{Cy7Lv7M7Ny7I~7lZ 7Q7D47CL7En7saW7CL7CL7CL7CL7CL7CL7CL7CL7C{3747I37@xR7LB7O7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7NH7CL7Ca7CL7CL7A^v7 CL7 CL7 CL7CL$7KR%7J`&7HP7CL*7LZ,7L{C7CL.7A7!CL7"CL7#CL7$CL37'p47)A67,N77-LY87.Gfg970Cp:72E;73H<74H 76CL>79N׮?7:JW@7;H)A7>K 7ACLD7B@E7lH@F7mGЍG7nX"7rl&f7sq7tjY7wZ+7x\ݒ7zH77{c 7|_+ 7}DQN7~GJY!7CL 7CL7CL7^a 7CL7Bɀ7@A7Cpi7CL!7@j 7@7CL7CL7CL7CL7CL7FD7Is7R7~s 7E{ 7BE7p| 7P 7r\7I7AD7Cd7|ƚ 7xȴ7@47F7J_C7X7fJ 7bff 7^7Ff7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7Ly7H7H7H7{L7{L}e7Y}f7^% ^ ^ M7Dyȥ N7FC(O7G@aP7HJ+Q7KhR7LOS7N@bT7OFW`V7PfR X7RGY7TL X[7USr\7VNka^7Yd}_7Ze `7\B9 a7]W b7_[ c7`RQ7bCL7cCL7dCLg7fu_ 7hCL7jCL7kCL7lCLm7oGn7@^fo7@]7CL7CL7CL7CL7CL7CL7CLw7KLx7T\)y7Y8R7OP{7a |7OpE}7\"S~7^7CR7F7qJ ~7CL7h]\ |7CL7I~7D7J7K!Gu7CLt7CL7Yo 7r& 7n 57M67MY?7 CL7 CL:7 H;7 I<|<7 V?7 I7 CL7 CLB7 CC7 O#D7 FzE7 n4F7 sG7 Z=qH7 P L7 kW M7 k!HN7 xO7 j63 P7 cjS Q7 DR7 U;T7 JU7 LKV7 !F7 #CL7 $CLY7 &FTZ7 'G7 *CL7 +CL]7 -EZ^7 .| 7 1CL7 2CLa7 4Bc7 7CL7 `CLd7 bG07 dCLf7 f^7 gCLh7 iHi7 jQ7 mCLk7 p\h l7 qP=q m7 rN n7 udo7 vk}p7 xs q7 yl r7 zl s7 {N %t7 |Lu7 }E-7 CL7 CLx7 EZy7 SNz7 D7 CL7 CL}7 H~7 L7 L7 G7 CL~7 CL7 J7 ixB 7 B 7 MN7 FN=7 FN=7 EV7 B 7 FL7 B7 |U7 F7 P e7 JP7 M 7 E7 M 7 B7 Rۭ7 M7 Ny7 I~7 lj 7 Q7 C7 CL7 E7 v:7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Dٚ7 uf7 D7 OxR7 VR7 V@7 )CL7 *CL7 ,CL7 -CL7 .CL7 /CL7 0CL7 1^7 2CL7 3CL7 4CL7 6Nt7 8CL7 :CH7 7 L?7 J@7 HOIA7 {a 7 CLD7 { E7 HMwF7 GG7 R 7 lC37 q7 j7 [7 _,7 H[7 dc 7 _+ 7 G07 K!7 CL 7 CL7 CL7 cjS 7 CL7 B=7 @-S7 Cp7 CL!7 PR? 7 @7 CL7 CL7 CL7 CL7 CL7 F+7 I[7 V7 ~s 7 EDD 7 B7 o,| 7 V߁ 7 sVf7 H~7 A7 CH7 } 7 yh7 @;7 { 7 IZ7 X7 gd 7 !Y. 7 "^37 #CFf7 $^7 &CL7 'CL7 (CL7 )CL7 *CL7 +CL7 UCL7 VCL7 WCL7 ZLG7 [H7 ]Ho{7 ^HF7 `y37 ay3}e7 dWD}f7] ^ ^ M7 y7I N7 DmO7 D7P7 IQ7 h>R7 PS7 AW3T7 HשV7 k X7 GY7 L5&[7 \7 M3^7 aGH_7 x `7 Ca7 Zb7 \!Hc7 U#7 CL7 CL7 CLg7 u( 7 CL7 CL7 CL7 CLm7 G n7 @fo7 @7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Iqx7 Oy7 ]7 OP{7 r |7 O}7 \~7 ^7 C7 G*7 q ~7 !CL7 #h |7 %CL7 (I7 )Dj7 *JI7 .K2u7 0CLt7 1CL7 3\7 7 4rp 7 6o& 57 8MS67 9Mn97 ;CL7 H@;7 ?H<7 @W?7 AI7 DCL7 ECLB7 GD_C7 HL0D7 IFzE7 Ka\F7 Lo>G7 MXH7 NP. L7 PbM7 Q]zN7 RpO7 UlR P7 Vg Q7 WDYR7 PT7 J¨U7 MV7 F7 CL7 CLY7 FZ7 H 7 CL7 CL]7 F^7 @47 CL7 CLa7 Cu7 CL7 CLd7 G:7 CLf7 ^7 CLh7 Hi7 P 7 CLk7 \h l7 Pk m7 N n7 f o7 k"p7 r3 q7 lp r7 l s7 N.t7 Lu7 E7 CL7 CLx7 Edy7 S:z7 D_7 CL7 CL}7 Ha~7 L7 MA7 H\7 CL~7 CL7 J˽7 ixB 7 B 7 Px7 Hk7 H~7 B 7 B 7 H/7 n"" 7 {7 FN=7 PI7 JP7 M 7 E7 M 7 BV7 S07 M7 Ny7 I~7 m 7 HQ7 IB<7 KCL7 NEق7 Or7 QCL7 RCL7 TCL7 UCL7 VCL7 WCL7 XCL7 YCL7 \BH7 ]vg7 ^HQ7 _VR7 a\7 bZ7 dCL7 eCL7 fCL7 gCL7 hCL7 iCL7 jCL7 l^7 mCL7 nCL7 oCL7 pN_7 rCL7 uC7 wCL7 xCL7 zy 7 |CL7 ~CL7 CL7 CL$7 LlA%7 J&7 Kjq7 CL*7 K,7 HkE7 CL.7 Fq7 CL7 CL7 CL7 CL37 p47 A67 J,77 L87 l97 C8%:7 Ec3;7 H|<7 G37 CL>7 K?7 Jƶ@7 HhA7 z? 7 CLD7 {LS E7 HcNF7 H&G7 L7 n7 t7 l7[ݗ7[7H[7d 7_+ 7I7Mgy!7CL 7CL7CL7 g 7#CL7%B7&~s 7'CL!7)C=7+@7,@P7.CL70CL71CL72CL73CL77F,78I79S#7<~ 7?EDD 7AB57BoI 7CW( 7Gpf7JH7KB3:7tC(7wy1 7xyh7y@C 7z~z 7{HG7}X&7g[~ 7a3 7_7FC37^7CL7CL7CL7CL7CL7CL7CL7CL7CL7LL7H7H_)7HK67g7g}e7+{e }f7 3`Q ^ ^ M7yE N7DkO7GnP7J.Q7gR7PS7sl T7P7 V7z X7GuY7L[7F\7P^7i=_7BU`7Da7p4b7xgc7v:7CL7CL7CLg7uV 7CL7CL7CL7 CLm7 Hn74o7@7CL7CL77K/?7J@7HvjA72y 75CLD76z? E78HhF79H5eG7:K:\7>i7?n37@h#37C[7D])7EHЗ7Gb 7H^ 7IG7JJ !7MCL 7NCL7OCL7Qa>' 7TCL7WC6]7XsF 7YCμ7ZC47[KG 7]@{7_CL7`CL7bCL7cCL7dCL7gF=B7hI7iW7~Ü 7E@ 7B+7n 7Qk 7q,7Hʼ7BA7CG7x 7y7@Je7I=7Ik7X77g 7c* 7`ɚ7I7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L67HR7H|7HRw7y7y}e7[_}f7i^ ^ ^ M7y6 N7DO7B":P7J_Q7i=R7P S7pPL T7GNV7i X7G@Y7Ld[7F\7 Ml^7#g_7$tU `7&Ca7'\@b7(\c7*T&f7,CL7-CL7.CLg70t^ 72CL73CL7\CL7^CLm7aHZn7d@do7fA'7hCL7iCL7jCL7kCL7lCL7nCL7oCLw7rJffx7sM{y7tZ7uOP{7xofg |7zN }7|\ ~7~^7D~-7F/7rE ~7CL7lK |7CL7I7E_7Jۥ7G%u7CLt7CL7Z 7sc 7oX 57NI:67M7CL7CL:7Ik;7PP<7dt<?7I{7CL7CLB7D̘C7V6D7EE7dF7nG7R)H7P L7dM7a\N7v*O7pX P7i Q7CZR7RT7JbU7MZV7F*7CL7CLY7F/Z7Hd7CL7CL]7FxC^7BN7CL7CLa7$F~7'CL7(CLd7*Hs<7-CLf7.^7/CLh71I6i72O^75CLk78\ l79P m7:O n7=d3o7>kp7@q33 q7AlQ r7Bj s7CNAt7DL!u7EE7GCL7HCLx7JEy7KQ5z7LEZ7OCL7PCL}7RH~7TLП7UM7VHd7XCL~7YCL7[K7^ixB 7_B 7M7Es7E7B 7B 7EW7mwv 7{7H7P'T7JP7M 7Fa}7M 7Cy7P*7M7M=7HЌ7lv 7S7^K?7_JS@7`HuA7cy 7eCLD7gzcz E7iHhF7jH)G7kJ7omњ7psK37ql7t[$o7u^)/7vHЗ7wd 7y_= 7zFb7{J!7~CL 7CL7CL7^5 7CL7C7q 7Cu7CZ7A 7@7CL7CL7CL7CL7CL7F;s7I7T-7~ 7E33 7C'7o 7Q 7sP7H7B+7D7z)B 7yh7@X7}u% 7I7X7g 7dUU 7aY7K7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L7H7 H7!H_7#y7%y}e7[(F}f7^ ^ ^ M7?x$ N7ACIO7BF+P7CJ`Q7Gg|tR7HP5|S7Io T7JO#V7Kx? X7MGY7NL\[7O\7QN[^7|d/_7}A`7Ba7W b7[Bc7Q޹7CL7CL7CLg7teH 7CL7CL7CL7CLm7Gn7Vgo7AB7CL7CL7CL7CL7CL7CL7CLw7Ex7Oy7[7OP{7@0|7N}7[~7^7DB7F7r@3 ~7CL7gHF |7CL7I7E1b7J7M+eu7CLt7CL7WF 7q$ 7mȵ 57M67M7CL7CL:7HO ;7FN<7X?7IL7CL7CLB7E*C7UD7FzE7ZF7_uG7 V4H7 P L7 UM7 Qs4N7 f.O7p< P7iމ Q7DR7UT7KZU7MoV7F-7CL7CLY7DF(Z7EIb7HCL7ICL]7KF^7L~ 7OCL7PCLa7RDG7UCL7VCLd7XH@7ZCLf7[^7]CLh7_I(-i7`NI7bCLk7e\% l7fPB m7gOW n7jdo7kk p7mp q7nl r7ojH s7qNI:t7rM\u7sF7uCL7vCLx7xF(y7yP8z7zD7}CL7~CL}7I~7L7N7H7CL~7CL7K)7ixB 7n 7L7D7D37B 7B 7DZ7l"! 7{7H7O7JP7M 7Fa}7M 7Cy7Lv7M7L7I~7lM8 7X7C7CL7Ec7o87 CL7CL7CL7CL7CL7CL7CL7CL7B>g7t6g7E!7[ 7^h7]&f7CL7 CL7"CL7#CL7$CL7%CL7&CL7'^7(CL7)CL7*CL7,N}t7.CL70C72CL73CL75xH 78CL79CL7:CL7;CL$7>L8U%7?JI&7ALIG7DCL*7GL-g,:R):CL.:| : CL: CL: CL: CL3:q64:A6:z7:zy8:e,9:Bj::Ay;:Eٙ<:D:CL>:"K?:#J@:$HfA:&wt :)CLD:+xe E:-HmPF:.H%G:/KLo:3hy:4m4:5f:8Z:9Zs::Hْ:;c :d^p :eE:gI=!:jCL :kCL:lCL:nd :qCL:sCL!:ts :uC:wC.:yTXG:z@:|CL:}CL:~CL:CL:CL:F*C:I:X:7 :Eb" :C:oI :WrN :pP:H:By:DG:y1 :yC:@gv:E:H:Xr:h6 :d :a|:OP:^:CL:CL:CL:CL:CL:CL:CL:CL:CL:Lo:H:H:H7:g\:g\}e:yF|}f7[ ^ ^ M:.{%m N:0CO:1HP:2J^Q:5f6R:7PNqS:8o7 T:9S V::AmX:l\:?P8^:Ca3_:DDc`:FB!a:Gqb:Htٙc:Inu:KCL:LCL:NCLg:Pt^ :RCL:SCL:TCL:UCLm:XGm*n:[@Ao:^A#:`CL:aCL:bCL:cCL:dCL:eCL:fCLw:Cx:P{y:X):OP{:C"|:OzH}:]W~:^:C:Fr:r]\ ~:CL:j>u |:CL:I:En:J:Fu:CLt:CL:ZM :rV :n 5:M 6:MJ:CL:CL::H@;:FII<:X$?:IE:CL:CLB:EOC:TD:FE:SF:^G:RaHH:PJ L:c\M:_nN:rǯO:of P:hr Q:DR:UT:KU:MjV:F:CL:CLY: F7 Z: K : CL:CL]:G^:|ƚ :CL:CLa:Cpi:CL:CLd:HVF:CLf: ^:!CLh:#I/ji:%M:'CLk:*\ l:+P m:,Pk n:/eo:Xkp:Zmf q:[k r:\i) s:]NMt:_Mdu:`E]:bCL:cCLx:eF/y:fO z:gDY:jCL:kCL}:mI :~:oL:pN):qH#:sCL~:tCL:vK):xixB :yn :{L:}E:~E:B :n :E9[:j[ :{ey:H:O:JP:M :Fa}:M :Cy:Ql:M:L[:H:lZ :YQP:C:CL:E:x:CL:CL:CL:CL:CL:CL:CL:CL:t:lg:B:VR:]z:[{:CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:Nq:CL:Cm:CL:CL: v :#CL:$CL:%CL:&CL$:)L8U%:*J0?&:,J:/CL*:2K,:3MQ:5CL.:7z :9CL::CL:;CL::QM#?:RJv@:SHTA:Uvܹ :XCLD:Zwna E:HiF:HG:R:`+3:e:_(:Y,:^,:H:b :^5 :F7 :Ik!:CL :CL:CL:e :CL:CSc:v:wCL:xCL:yCLg:|te :~CL:CL:CL:CLm:GPn:o:AV:CL:CL:CL:CL:CL:CL:CLw:Efx:Ly:Y:OP{:tt |:N*1}:]~:^:C:F.c:r ~:CL:iU: |:CL:IP:Ev:JG:Mu:CLt:CL:ZV :r :o& 5:M6:Mi:CL:CL::HVF;:E-<:Y?:I:CL:CLB:EC:T?ZD: EE:"Y{F:#e >G:$IH:%P L:&W>M:'QN:(e!HO:+of P:,h Q:-DYR:/VT:0KqU:1M`V:2F:4CL:5CLY:7F>KZ:8Kc:;CL:H ^:?|} :BCL:CCLa:EC=:GCL:HCLd:J| :MCLf:N^:OCLh:yHDi:zM:}CLk:\ l:Tff m:Sq n:dٚo:l3p:p3 q:l r:k( s:NGft:Mku:E\:CL:CLx:Fqy:Mz:D:CL:CL}:Iw~:L:N.:H:CL~:CL:K?m:ixB :oK :M':FN=:FN=:B :B :F>K:kww :{:G]:O:JP:L:Fa}:M :Cy:S :L:M :Hn:lL :YX.:D:CL:Eق:v%:CL:CL:CL:CL:CL:CL:CL:CL: tI: q3: vf: VR: [Y:VR:CL:CL:CL:CL:CL:CL:CL:@^:ACL:BCL:CCL:ENF:GCL:IC:KCL:LCL:Nw| :QCL:RCL:SCL:TCL$:VL#c%:WJ&:ZGv=:]CL*:`K,:aG/:cCL.:d|C :gCL:hCL:iCL:jCL3:mqϑ4:oA6:qb7:rg338:s_ٚ9:vB::x3;:yD|<:zC<:CL>:N~-?:J*@:HTA:wS :CLD:xt E:HcNF:HG:Uh:dA:j33:c:X:[5:H:dR :_/ :GJY:K+!:CL :CL:CL:aD :CL:CL!:w_ :C:Cpi:H :@n:CL:CL:CL:CL:CL:F6: I~: V:' :E :CSc:oI :O? :p<:H:BHI:Dɲ:!xWc :"yt:#@}B:$u :%IiN:'W:*h :-fww :.a :0O:1^:2CL:3CL:4CL:5CL:7CL:8CL:9CL::CL:;CL:>L:@Hx:AHƐ:BH :lx:mx}e:\!}f:^k ^ ^ M:yȥ N:DO:@P:JQ:iR:PGPS:oI T:G@KV:h X:G$Y:L?[:H!\:Owx^:d_:o8 `:A8a:ogb:s34c:m:CL:CL:CLg:tʚ :CL:CL:CL:CLm:Fn:@$o:A:CL:CL:CL:CL:CL:CL:CLw:Fx:Ny:Y(:OP{:i"# |:N%}:[ج~:^:Ck:F1:r ~:CL:j |:CL:Im: E : K:6Gdu:8CLt:9CL:;Yo :oE 5:@M݆6:AMƶ:CCL:DCL::FH;:GG<:HRv=?:IIw:LCL:MCLB:OEWC:PS D:QE1E:SY{F:Ta*G:UCQH:VP9 L:We>M:X`N:Yd{O:\o P:]hS Q:^DR:`UT:aKU:bMbV:cFT:eCL:fCLY:hF[GZ:iKc:lCL:mCL]:oHk^:{ :CL:CLa:B5:CL:CLd:F :CLf:^:CLh:A"`i:LL:CLk:\ l:Pu m:O n:do:l~p:t q:p8R r:oL s:N >t:Mu:E7.:CL:CLx:FxCy:L&z:D:CL:CL}:I~:M :N9{:H0:CL~:CL:K?m: ixB : n}[ : N: H: H: B : B : GQ: kww : {: G: O/: JP: L: Fa}: M : B: P^: !I: #M : $HЌ: %l : (Y: )C݀: +CL: .E: /s6: 1CL: 3CL: 4CL: 5CL: 6CL: 7CL: `CL: aCL: dw6g: et3: fCc4: gVR: h[34: jVR: lCL: mCL: nCL: oCL: pCL: qCL: rCL: s^: tCL: vCL: wCL: xN: zCL: }CH: CL: CL: x# : CL: CL: CL: CL$: L %: J;&: P^: CL*: Kظ,: Fպ: CL.: M: CL: CL: CL: CL3: q4: A6: Z`7: \g8: S9: BP~:: B ;: G3<: E: CL>: O?: Jv@: Ha{A: w : CLD: x E: HeF: H G: TU3: _p: efg: ^3: XI: ]T: H: cx : ^y : Hk: K!: CL : CL: CL: e!4 : )CL: +CD: -qHF : .C: /B: 0PW: 2: 4CL: 5CL: 6CL: 8CL: 9CL: X: A: : DE3 : FC6]: GoI : HT* : Ln: OHVN: PBza: QC: Tt : Uyt: V@: WG: XH: [W: ^i : ae : b`f: cO: ^: CL: CL: CL: CL: CL: CL: CL: CL: CL: L<: H: Ha: HO: gR: gR}e: 0D/1}f:;]Ge ^ ^ M: yȥ N: CRO:  P: J*Q: iR: PGPS: ouq T: BȚV: _ X: GY: L*[: l\: N^: an_: f `: APga: pb: rzc: o: CL: CL: CLg: te : CL: CL: CL: CLm: Fn: ~o: A: CL: CL: CL: CL: CL: CL: CLw: "Cx: #Ly: $S: %OP{: (^ |: *N}: +\ج~: U^: YC_: ZF: ]r@3 ~: _CL: ae+ |: cCL: gI: hE;: iJ: lO^u: nCLt: oCL: rZ( : srE : to- 5: vM6: wM: yCL: zCL:: |H$;: }Q<: ~W?: I{: CL: CLB: EC: QD: EE: OBF: XG: DH: Pf L: fLM: QN: eO: of P: hE^ Q: DR: U͌T: K lU: M_V: F: CL: CLY: FiZ: Ku: CL: CL]: H^: {in : CL: CLa: B: CL: CLd: Go: CLf: ^: CLh: qsLi: VC: CLk: \q l: O. m: M n: d3o: lĴp: r( q: mp r: lQ s: M*t: M*u: E: !CL: "CLx: $F?y: %JYz: 'D: )CL: *CL}: ,I/j~: .M5: /NE\: 1Ho: 3CL~: 4CL: 6K?m: 8ixB : 9n : ;N: : OxR: CL: CL: CL: CL: CL: CL: CL: ^: CL: CL: CL: N: CL: C: CL: CL: x:D : CL: CL: CL: CL$: L0%: J3&: QԮ: CL*: LQ,: N1: CL.: B?: CL: CL: CL: CL3: r04: A6: Ws37: Ts38: Qf9: B:: |f;: B<<: 4: CL>: P?: J@: HgA: w| : CLD: wS E: Hn8F: H)G: RV: Ia: Jfg: K`g: OW: P^3n: QH: RcjS : S^ : TH: VL3!: XCL : YCL: [CL: ]e : `CL: bCi(: crN : dC~: eCSc: gw: hq: kCL: lCL: mCL: nCL: oCL: rF/: sI: tWv: x : {Fj : }CU: ~q3 : Sm : np: H: B>: D: u : yx: @R: IΘ: J,: Wj: i[ : i{ : a&f: R: ^: CL: CL: CL: CL: CL: CL: CL: CL: CL: L: H: H: G%: g: g}e: gKЂ}f: r] ^ ^ M:yqn N:CO: CP:!JQ:$irR:%PJS:&ouq T:'CV:)aσ X:+GY:,Lh[:-r\:.M^:1hP_:2p `:3A<a:6[Yb:7Yc:8TE::CL:;CL:t :@CL:BCL:CCL:DCLm:GFn:J@Vfo:tA:vCL:wCL:xCL:zCL:{CL:|CL:}CLw:EǮx:Lqy:V(:OP{:h |:N( }:[F~:^:CF:G:rz ~:CL:j[ |:CL:J:F*:K :H% u:CLt:CL:YÖ :r :o 5:M6:MO:CL:CL::H;:P <:YAv?:I:CL:CLB:FRC:PlD:E~E:Q.F:YG:EH:Q ' L:WM:PN:d{O:of P:hE^ Q:DR:V#T:KU:MbV:G:CL:CLY:FZ:Kc:CL:CL]:H ^:{ :CL:CLa: BF: CL:CLd:H:CLf:<^:=CLh:@hti:CV:FCLk:H\+ l:JO m:KN n:Mcfo:Olp:PqR q:Rk8R r:SkB s:TNt:UM2u:VEA::h@;:iB <:jC9:lCL>:oRTn?:pJǟ@:qHgA:tv :vCLD:xv E:zHF:{IG:|OZ:`:f:` :V\:Z):I*t:c_ :^ :HO :K!:CL :CL:CL:`S :CL:Cw:p :CL!:CD: :~D:CL:CL:CL:CL:CL:Fh:Iq2:T<: :FY :CZ:n :NQ :p:H-b:B):D:Cѣ:yx:@:vh. :Ik:W!:i :b33 :^3:OS3:^:CL:CL:CL:CL:CL:CL:CL:CL:CL:L~:0H::1H:2G:5h:8h}e:y}f:]g ^ ^ M:SyT[ N:UCaO:VH$^P:WJQ:[hR:\P5|S:]oI T:^JV:_p/ X:aGY:bL[:cVF\:eN̓^:he(_:iwc `:jAa:q*b:pqc:mY:CL:CL:CLg:tm :CL:CL:CL:CLm:Fn:o:A:CL:CL:CL:CL:CL:CL:CLw:CaHx:Ny:UQ:OP{:s m |:N}:\~:^:C"#:FL:rN ~:CL:h@3 |:CL:J:E^U:J:P8u:CLt:CL:Z :r :o< 5:M6: Mc: CL: CL::Iw;:P<:Wk?:IL\:CL:CLB:FC:NzD:EE:aF:VG:IpH:Q3 L:eW M: `N:!s{O:$ouq P:%hS Q:&DSR:(UT:)K U:*M.V:+G`:-CL:.CLY:0FZ:2Kp:\CL:]CL]:_Iw^:`zcz :cCL:dCLa:fB :iCL:jCLd:lH:nCLf:o^:qCLh:sa$i:vV:D:yCLk:|\X l:}Q8R m:~O n:dLo:l"p:kB q:fG r:dff s:Nt:M;'u:Ej:CL:CLx:Fy:SNz:DX:CL:CL}:IE~:M5:Noe:HXr:CL~:CL:K\W:ixB :n :N:G:Ge:B :B :G:k"" :{ey:G~:O:JP:L:Fa}:M :Cy:Q :H8:L:HI:m@ :Y:C:CL:E!:xW:CL:CL:$CL:%CL:&CL:'CL:(CL:*CL:-cVg:.a:/t6g:0MR:1U:2OxR:4CL:5CL:6CL:7CL:8CL::CL:;CL:<^:=CL:>CL:?CL:AN:BCL:EC:GCL:HCL:Jw_ :MCL:NCL:OCL:PCL$:RLE%:SJ&:VL>:YCL*:\LP,:]G> :^CL.:{ :CL:CL:CL:CL3:rm4:A6:a 7:e,8:X 9:Aa::@;:Bٚ<:C:CL>:R ?:J/@:HeA:w :CLD:w E:HtF:H!hG:Qx:_(:d:^4:V:^.:Iz:b :] :Hzx:K!!:CL :CL:CL:dE :CL:C:t :Fi:C4:B :~:CL:CL:CL:CL:CL:F:I_:Vq: ^ : F. :C:oK :Ua :p:HUd:Bs:DAY:Dl$:yx:@: GgR:!I(-:#Ww::&i& :Qif :R`f:SQf:U^:VCL:WCL:XCL:YCL:ZCL:\CL:]CL:^CL:_CL:bLM:cH:eHa:fGn:ig:lg}e:X<}f:^ ^ ^ M:y N:CO:DP:KQ:iR:P5|S:o T:E_V:e X:GY:L[:9\:O^:b_:lG `:@a:nb:qRc:lT{:CL:CL:CLg:tl :CL:CL:CL:CLm:Fun:o:B+:CL:CL:CL:CL:CL:CL:CLw:Bx:KǮy:XQ:OP{:e |:NM;}:\~:^:!C:"F:%r ~:(CL:*fh |:,CL:/J.:0F=:1K':5H)u:7CLt:8CL::Zk :;r :=p~ 5:?N36:@M:BCL:CCL::EIE;:FP[2<:GX?:HI ::KCL:LCLB:NFRC:OLD:PEE:RHfF:SRBG:|FpH:}Q0) L:~d M:`N:sO:oI P:h(# Q:DZR:V-6T:K(U:MV:G:CL:CLY:FZ:J:CL:CL]:H^:y :CL:CLa:A:CL:CLd:H:CLf:^:CLh:^+i:Uj:CLk:\ l:NR m:M n:d33o:lU7p:o) q:k. r:j s:N~t:MBsu:E_:CL:CLx:Fy:R8$z:EO:CL:CL}:Ib~:MFN:N:H5:CL~:CL:KM:ixB :oK :N:H:H: B : B : G: k[ :{ey:G::O:JP:L:E:M :DD:GO;~:HI:JL:KHI:Ln :OYQP:PDŚ:RCL:UEx:VzK:XCL:ZCL:[CL:\CL:]CL:^CL:_CL:`CL:ckg:davg:evf:fMR:gVٚ:iOxR:kCL:lCL:mCL:nCL:oCL:pCL:qCL:r^:sCL:uCL:vCL:wN:yCL:|C:~CL:CL:x0 :CL:CL:CL:CL$:L.P%:J$&:IF:CL*:L,:G@:CL.:{ :CL:CL:CL:CL3:r 4:A6:U7:Z`8:Vf9:A::}9;:B<<:3:CL>:Q?:Jѩ@:Ha{A:wt :CLD:w E: HuF: H#9G:RB:_:e\:^њ:U:[):I[:bTF :^ :G::Jā!:!CL :"CL:#CL:%fJ :(CL:*DQN:,u :-E:.DQN:0:1~:3CL:4CL:5CL:6CL:8CL:;E:r3>Hz> BV> C4/> vR >ydZ>@b>IZ>JF>W>jD >h >`3>Q3>^>CL>CL>!CL>"CL>#CL>$CL>%CL>&CL>(CL>+LP>,He>-H>.G%>0x>2x}e:0L9}f::^JZ ^ ^ M>ty N>vCO>wGlP>yJQ>|i-XR>}P@.S>~oI T>H V>j\ X>G@Y>M[>i\>N^>g_>wUU `>@ۘa>WRb>T\)c>N>CL>CL>CLg>s# >CL>CL>CL>CLm>Fgn>@^fo>Bk>CL>CL>CL>CL>CL>CL>CLw>DGx>Jy>V>OP{>q"# |>N1}>]~>^>B!>F >rz ~>CL>j |>CL>J->F#{>Ky>Pu>CLt>CL>Y< >s/ >,px 5>.N6>/N>1CL>2CL:>4I;>5O/<>6Xf*?>7H>:CL>;CLB>=EC>>T>D>?EE>AD4F>BBǮG>C}GH>DQFU L>EeW M>Fa+N>Gt >O>Jo,| P>Kh Q>LDR>NUT>OKU>PLKV>QHB>SCL>TCLY>VG&"Z>WJ˽>ZCL>[CL]>]H*^>^|j >aCL>bCLa>dC=>fCL>gCLd>}; >CLf>^>CLh>M i>T>CLk>\΀ l>U m>T n>fo>lXp>n q>i r>hH s>NGt>MC]u>E>CL>CLx>Fy>Q*z>EZ>CL>CL}>IiN~>MT>N>H?>CL~>CL>K0>ixB >oK >M>Go>Go>B >B >F5>k[ >{ey>G>O?>JP>L>E>M >D > Q_ > I9>L>I>p >Q>E>CL>E>x_>CL>CL>CL> CL>!CL>"CL>$CL>%CL>(l >)d>*v>+MR>,V4>-OxR>/CL>XCL>YCL>ZCL>\CL>]CL>^CL>_^>`CL>aCL>bCL>dN>fCL>hC>jCL>kCL>mz >pCL>qCL>rCL>sCL$>uLC%>vJlH&>yJy>|CL*>K,>F>CL.>Jm>CL>CL>CL>CL3>rX4>A6>Z7>V,8>Rg9>@P:>};>CY<>@>CL>>O?>Jғ@>HrA>wS >CLD>wna E>HvjF>H3G>PX8>b>hI>a3>U+>\?>IO>dp >_x= >GB>K!>CL >CL>CL>aD >CL>Du>wt >Ez>D;>I~ >~oB> CL>!CL>"CL>#CL>$CL>'F->(I=>)S50>-@>0F" >2E>3p^ >4N >7sɚ>:Hc>;B>@r@3 >Ayhs>B@>Cr >DI>FWr>Ij> >Lh >M`3>OQɚ>P^>QCL>RCL>SCL>TCL>UCL>WCL>XCL>YCL>ZCL>L>HM>HS>H>w3>w3}e>`}f>]M ^ ^ M>y( N>CTO>IP>JQ>hIR>P.ZS>o T>KV>rM X>GY>M Q[>i\>P ^>c_>w `>@ۘa>r\*b>t*c>n>CL>CL>CLg>s% >CL>CL>CL>CLm>F^yn>o>BMn>CL>CL>CL>CL>CL>CL>CLw> Aux> OQy> U>OP{>tE |>NL}>^u~>^>Bv>F>r ~>CL>fX |>!CL>LJ)(>MF>NK>RIu>TCLt>UCL>WXR >Xr^ >Zo 5>\N)F6>]N3>_CL>`CL:>bI;>cO7<>dYO)?>eH/>hCL>iCLB>kEC>lU9D>mEsE>oMF>pCG>qzfgH>rQ\ L>sdM>t_8RN>ur=qO>xoK P>yg Q>zDR>|URT>}KU>~LV>Hd>CL>CLY>G`Z>J>CL>CL]>Go^>| >CL>CLa>Cw>CL>CLd>H>CLf>^>CLh>wi>T#>CLk>\Ͷ l>O33 m>Np n>do>lp>mL q>e) r>fR s>Mt>M?u>E^U>CL>CLx>Fݱy>P+%z>EG>CL>CL}>Iw~>Mdk>N>H0>CL~>CL>KM>ixB >n% >!N.>"H>#H>&B >'n >(GQ>)k >+{ey>,G>/O>1JP>3L>6E>8M >9D>=HU>?L>@I>AnM >DQ>EDŚ>GCL>JE>Kx>MCL>OCL>xCL>yCL>zCL>{CL>|CL>}CL>e#4>^3>wI>MR>Vu>OxR>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>CI>CL>CL> O >CL>CL>CL>CL$>L%>J&>Qe>CL*>LS,>Rl5>CL.>@>CL>CL>CL>CL3>rB4>A6>P37>Ul8>O339>@:>zٚ;>C<>@#3>CL>>Md?>JF@>Ho!A>wna >CLD>w E>Hy$F>H:G>N׮>_f>e,> ^f> U> ]>IN>c!( >^ >H*>K{m!>CL >CL>@CL>Bd >ECL>GDB>Iyl >JD>KC{>LG >N~<>PCL>QCL>RCL>TCL>UCL>XE>YI>ZR' >[@*>]F >_D̘>`p3 >bS_ >ess3>hH#b>iA5>jDnQ>mrE >nyhs>o@>pFm>rH/>tW>wj >zg3 >{a)>P>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L>H>H>H>w>w}e>L^}f>W\2 ^ ^ M>x N>CvO>HoP>K'Q>i\R>P S>o T>EXV>e| X> GY> M)w[> \>Nۼ^>b5_>lr `>@Ta>rb>sJ>c>l=q>CL>CL>CLg>s > CL>!CL>"CL>#CLm>'F[n>*o>,B^8>.CL>/CL>0CL>1CL>2CL>4CL>5CLw>8Ax>9L\y>:Vff>;OP{>>ewx |>@N{}>A]s~>l^>oB/>pFV>srk ~>uCL>wh |>zCL>}J#>~F">K}>NH\u>CLt>CL>X >rV >op 5>N2g6>N>CL>CL:>Jw;>N@<>UF?>H>CL>CLB>ETC>U)D>EdWE>RBF>@QG>s\H>Qt@ L>VRM>P(N>cHO>o P>gJ Q>DR>U T>KU>L V>Ht>CL>CLY>GZ>J˽>CL>CL]>G^>| >CL>CLa>CZ>CL>CLd>HU>CLf>^>CLh>g~i>S^>CLk>\ l>N m>M n>effo>kp>f q> a33 r> `f s> M݆t>4MC]u>5Eo>7CL>9CLx>:Fݱy>=Ez>?CL>ACL}>CI{~>DMq2>FN>GH*>ICL~>JCL>LK?m>NixB >Ol5h >QMw>RGo>TH>Wn`* >Xl >YFݱ>Zj >\{ey>]G>`O?>bJP>cL>fE>hM >iE,O>lLv>mGْ>oL>I6/>p >Q>D>CL>E >w>CL>CL>CL>CL>CL>CL>CL>CL>bf>^f>vl>MR>V>OxR>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>Cy>CL>CL>| >CL>CL>CL>CL$>L(%>J(K&> N0 > CL*> Ln,> Rc> CL.> |& > CL> CL> CL> CL3> rm4> A6> R 7> Z8> Py9> @]:> v4;> !A<<> "}L> $CL>> &K3?> 'Ji@> (Hy$A> +u > .CLD> 0u6 E> 2Hz F> 3H77G> 4N(> 7dFg> `d> a^> eU> fZ> gII> haj > i]y > jG> kJ!> nCL > oCL> qCL> sg[~ > vCL> xD> yxWc > zE@> {DS> |Mh > ~~m> CL> CL> CL> CL> CL> E> I> VÁ> @> F > D> oXB > T > r> G> A> Dt> CM> yl> @> IL> JBU> W[> k > gw > `ff> Q33> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> Ld> H> H> H> w> w}e> |a}f>\ ^ ^ M> -z N> /C.O> 0LP> 1JQ> 4i8R> 5P5|S> 6o T> 8GWV> 9i X> ;GY> =\> >OH^> Ah(_> Bu `> D@a> FWcb> GWkc> HQ> JCL> KCL> LCLg> Ns > QCL> RCL> SCL> TCLm> WFKyn> Z@o> \Bd> ^CL> _CL> aCL> bCL> cCL> CL> CLw> DGx> K y> R{> OP{> oUU |> N}> ^?~> ^> B.> FA> r ~> CL> j' |> CL> J.> E> K!> Ku> CLt> CL> Xhs > r > o9X 5> ND6> N> CL> CL:> J;;> NR<> W??> Hm> CL> CLB> EC> ToD> EIUE> DF> vG> @H> Q L> W\M> ON> cqO> o; P> h Q> D_R> UuT> KU> L V> H > CL> CLY> GZ> J3> CL> CL]> Gx^> |oQ > CL> CLa> C=> CL> CLd> H> #CLf> $^> %CLh> (aQi> +RQ> VCLk> Y\ l> ZM m> [N n> ^d o> _lmp> aju q> bd r> ccǮ s> dM t> eMC]u> fEy'> hCL> iCLx> kFy> lM1Oz> mEd> pCL> qCL}> sI~> uMw> vN> wH_> yCL~> zCL> |KF> ixB > m<8 > M> FN=> FN=> B > me > F!O> i> > {> G> O> JP> L> E> LZ > E,O> Lv> EL> L> IK> p > Q> D> CL> E1> v%> CL> CL> CL> CL> CL> CL> CL> CL> avg> cC4> vg> VR> [> VR> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> N> CL> "C> $CL> %CL> &x:D > )CL> *CL> +CL> ,CL$> /L3%> 0J &> 3K2> 5CL*> 8LJ,> 9F> ;CL.> ={/9 > @CL> ACL> ACL> CCL3> Er_4> GA6> JWs37> KXf8> LR 9> O@:> Pw@;> QAI<> R~> TCL>> WKc?> JW@> HA> u > CLD> vY E> HuF> H(G> NH> `4> fx> _3> UR> ]3> JAE> bs > ^'U > Fݱ> JP!> CL > CL> CL> b > CL> D> z > E> D> In > ~> CL> CL> CL> CL> CL> E> I> T/> @(> F > D> of > NLJ > qvf> H,y> Ad> Ca> {= > yl> @>  > Jā> V> kh > gY > a,> OS3> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> L> H/> Hp> H7> wL> wL}e> ^}f> [ ^ ^ M> ]zY N> _CO> `L4P> bJcQ> eh>R> fPRS> g|= T> hK+V> ip X> kGY> lM8[> nW\> oP^> rhd_> svU `> tA Da> voHb> wpc> xjJ>> zCL> |CL> }CLg> sW > CL> CL> CL> CLm> Fhmn> 4o> B> CL> CL> CL> CL> CL> CL> CLw> Ex> Mffy> T>> OP{> rp |> N}> _~> ^> B > F7 > r]\ ~> CL> g |> CL> J:u> E> K> J `u> CLt> CL> W > qw >o 5>NZ6>N>CL>CL:>JBU;>M6<>WL?>H>CL>CLB>!EC>"SD>#E=E>%HF>&spG>'@H>(Q L>)W5M>*PN>+c\O>.oXB P>/h(# Q>0DuR>2UhT>3KU>4LV>5HK>7CL>8CLY>:GZ>;J>>CL>?CL]>AG^>B|& >ECL>FCLa>HC >KCL>tCLd>vI >xCLf>y^>{CLh>}^i>Q9>CLk>\+ l>L33 m>L# n>cs3o>kp>faH q>b\ r>bk s>Mt>MGu>E)>CL>CLx>G )y>Kz>E>CL>CL}>I~>M~>N>HNO>CL~>CL>K82>ixB >mv >Mh>F[G>Fo>B >n >FxC>i >{>H>O?>JP>L>E>L>E,O>TI>EL>M >Ied>p >S">E9>CL>E >u'>CL>CL>CL>CL>CL> CL> CL> CL>avg>Yg>u0>VR>[Q>>CL>?CL>@CL>ACL>BCL>DCL>ECL>F^>GCL>HCL>ICL>KN>LCL>OC>QCL>RCL>Tx >WCL>XCL>YCL>ZCL$>\L%>]J@*&>`HG>cCL*>eL',>gF=>hCL.>jzu >mCL>nCL>oCL>pCL3>sr*4>uA6>wYf7>W8>U349>:>x4;>B<>@f>CL>>KK?>J@>Hx;A>vW >CLD>vh. E>HiF>H#G>P>aK3>g>`>U'>[">J8E>c >^j >G`>K"!>CL >CL>CL>cM >CL>D>c >D̘>CB>I; >~k>CL>CL> CL> CL> CL>ES>I>Sk>@ >>F{ >DV>pA >S >ri>H"y>AyV> Du>#s >%yl>&@>'| >(H/>*W @>-k >0iY >1a3>2P<>4^>5CL>6CL>7CL>8CL>9CL>;CL>=CL>>CL>iL>jH>kH>mH7>ow>pw}e>_ }f> [h ^ ^ M>zN N>CO>K|P>J Q>iGqR>PNqS>@T>E%V>dm X>GJY>M[>\>Nf^>e _>k8 `>Bua>jb>pc>l\>CL>CL>CLg>ss >CL>CL>CL>CLm>G0zn>o>B b>CL>CL>CL>CL>CL>CL>CLw>@x>M8Ry>R>OP{>e |>N8}>\~>^>CF>FoL>rN ~>CL>o@ |>0CL>3J0r>4E>5Ky>9L7u>;CLt>>V >?q1' >Aoj 5>CN]P6>DNt>FCL>GCL:>IJf;>JL<>KWH?>LI>OCL>PCLB>REC>SRbD>TE,E>V}F>Wr G>Xm34H>YQ L>ZWLM>[O4N>\sO>_oXB P>`h6 Q>aDSR>cUT>dK U>eLV>fH>hCL>iCLY>kGZ>J>CL>CL]>H ^>{H >CL>CLa>B>CL>CLd>H>CLf>^>CLh>[i>Q5>CLk>\ l>M( m>Lu n>c&fo>kp>g) q>c r>b s>Mt>MGu>E>CL>CLx>Gy>Iz>E]>CL>CL}>I~>M>N>H*>CL~>CL>K >ixB >k >M>> Go> Go> n% >l >F5>i> >{ey>H>O>JP>L>Fa}>MxB> D>#Qo>$EL>&M >'Ir>(p >+RJP>,D>.CL>1E>2qܙ>\CL>]CL>^CL>`CL>aCL>bCL>cCL>dCL>gavg>h^vf>ilg>jVR>k[34>lVR>nCL>pCL>qCL>rCL>sCL>tCL>uCL>v^>wCL>xCL>zCL>{Nz>}CL>Cm>CL>CL>z % >CL>CL>CL>CL$>L%>J&>K>CL*>KA,>K>CL.>MO>CL>CL>CL>CL3>ri4>A6>X7>\ff8>Z9>:>zY;>@<>@@>CL>>M"#?>J@>HrA>u >CLD>u65 E>H`F>H jG>U5>\>b>[>T>\>JG>`P >^ >G`>I!>%CL >&CL>'CL>)g >,CL>.DX>/B>1DY>2Cμ>3Ec >5~&>7CL>8CL>9CL>:CL>;CL>?F>@I>ARn>B@>DFȉ >FDX>Go >HUS >Kr>OG>PAO>QDP>T~OI >Uy>V@>WIiN>XI>ZV>]k >e@ >_>O>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>Lu>HY>Hp>H>x>x}e>3\bY}f>>Z> ^ ^ M>{1 N>CO>MP>JrQ>hcR>P<S>AHT>IwV>mg X>GqY>Lv[>\>P(^>azZ_>yq `>Ca>U:b>VW c>PO\>CL>CL>CLg>ss > CL> CL> CL> CLm>Hn>@ 3o>A@>CL>CL>CL>CL>CL>CL>CLw> E=qx>!MHy>"Qf>$OP{>%t@ |>&Os}>']~>Q^>TC>UFV>Yrk ~>[CL>]g9 |>_CL>bJ6>cEj>eKR>fFu>hCLt>iCL>kUR >mqP >nn 5>pN` 6>qNi>sCL>tCL:>vJm;>wLo<>xW?>yHd>|CL>}CLB>EC>QD>E E>w(F>tfgG>p34H>Qv L>f\*M>`\N>cO>oXB P>h6 Q>DgR>UT>KU>LV>H>CL>CLY>G'Z>J >CL>CL]>Go^>{in >CL>CLa>B>CL>CLd>Hؒ>CLf>^>CLh>Y*i>P[2>CLk>\ l>K m>K n>cfo>kTp>aB q>\ r>\ s>MJt>MAu>E%>CL>CLx>Gy>Sz> E >#CL>$CL}>&Ik~>(M>)N>*H>,CL~>-CL>/K)>2[g >3ixB >5M>6FN=>7FN=>:ixB >;ixB >=i >?{ey>@H>CO?>FJP>GL>JFa}>LMk>MCy>PLv>QE]>SM >|IC>}m >~Aư>E,>CL>E1>u'>CL>CL>CL>CL>CL>CL>CL>CL>_g>Pg>rf>VR>[h>VR>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>C>CL>CL>y{ >CL>CL>CL>CL$>L-g%>JJJ&>RX&>CL*>L@,>Q>CL.>D>CL>CL>CL>CL3>r4>A6>]7>X 8>W9>~`(:>oS3;>{l<>v33>CL>>M$?> J`@> H{A> rs >CLD>q E>HTF>HG>T٣>\>b>\>FTw>G^=>HII>Ia< >K^a >LF>MI!>PCL >QCL>RCL>Tb >WCL>YDX>[FxC>\D>]CB>^F#9 >`~z>bCL>cCL>dCL>fCL>gCL>jF>kIU>lQ>m@>oG >qD>roXB >tN >wr3>zG>{A6>|C4>)b >y>@>DY>J˽>Vs>lD >nn >cf>R>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>Lĥ>H>H>G%>w>w}e>^]6}f>kYV ^ ^ M>z N>CO>N P>J_Q>gR>P#S>rk T>K:%V>p X>GY>L[[>\> O^>#e)_>$vr `>&Dha>'l>b>(p4c>)m>,CL>-CL>.CLg>0s] >2CL>3CL>4CL>5CLm>9Hn><@o>>A >@CL>ACL>BCL>CCL>DCL>FCL>GCLwBxBJW yBT\BOP{B ri |B P}B ]~B ^BDWBFBr ~BCLBi |BCLBJ5B E{SB!K 3B$MfuB&CLtB'CLB*U> B+p" B,n J 5B.N^96B/NiB1CLB2CL:B4Jm;B5LuBE%BCLBCLxBGyBR&zBDBCLBCL}BI/~BMhBNaBGBCL~BCLBK0B\5 BixB BM^BE_BE3BkK BixB BEsZBi B{|BGoBOB.JPB/LB2Fa}B4LTB5CyB8QVB9EB;L[Br[B?E,BACLBDEBEs2BHCLBICLBJCLBKCLBLCLBMCLBNCLBOCLBR`iBSNgBTlgBUMRBWU4BXOxRBZCLB[CLB\CLB]CLB^CLB_CLB`CLBa^BcCLBdCLBeCLBfNMBCLBCBCLBCLB{ BCLBCLBCLBCL$BLVe%BI&BN]2BCL*BL,BJBCL.Bzr BCLBCLBCLBCL3Br4BA6B\7BZ98BSf9B}:Bv ;BA3BN?BJs@BH~ABr# BCLDBr EBHD^FBGGBVB^BdvgB]BT BZ3BJ GB d B `6 B FB I/!BCL BCLBCLBc BCLBDBFBDXBCBIc B ~!B"CLB#CLB$CLB&CLB'CLB*FB+IB,R ~B-@B/Fٚ BYDBZo B\RJ B_rBbGBc@BdDSBg@ABhyBi@bBjy# BkH BnUBql Bth Bu`BvR3Bw^BxCLBzCLB{CLB|CLB}CLB~CLBCLBCLBCLBLBHBHBGBxBx}eB_}fB*Y;n ^ ^ MB{ NBCoOBMSoPBJ/QBh"RBP.ZSBp3 TBDVBc­ XBGYBLv[Bߤ\BNP^BbC _Bj9 `BCaBi=qbBj:cBfEBCLBCLBCLgBsT` BCLBCLBCLBCLmB!HnB$~oB&AB(CLB)CLB*CLB+CLB,CLB.CLB/CLwB2BxB3K\yB4RB5OP{B8c |B:O}B<^~B>]BADI{BBFSBEr1 ~BGCLBIf$ |BLCLBOJBBPEv@BQK BRFuBTCLtBVCLBXUz BYpG BZm 5BN`6BN"BCLBCL:BJ|1;BKmBCLBCLBc BCLBCLBCLBCL$BL>%BJ&BJeBCL*BL4,BF<BCL.By BCLBCLBCLBCL3Br`4BAu6BV7BUY8BQ9B} :Bwf;B@gBP%?BJj@B H{AB#t/ B&CLDB(t>u EB*H/qFB+GsGB,X=B/]+4B0cHB1\3B5TB6^B7JEB8f7 B9bq B:FB;I !B>CL B?CLBACLBCgL BFCLBHDBIA2BJEBKDBLG BN}3ByCLBzCLB{CLB|CLB}CLBF&BIBSB@BGU BDBn BTh Bp&fBGB@wrBCeB~Ü By BBBIwBIBU]Bl Biٚ BaBRyB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBLBHABHBGBwBw}eBL[0}fBXY4 ^ ^ MB{# NBCtOBM9 PBJ#QBgyRBP1SB o7 TB HVB kr XBGYBL+[B\BNww^BgV\_Bw `BByaBAU+bBBVcBCPffBECLBFCLBGCLgBIr BKCLBMCLBNCLBOCLmBRGgnBUgoBWABYCLBZCLB\CLB]CLB^CLB_CLB`CLwBcB xBdN=qyBeRBfOP{Bhq |BiO}Bj^*1~Bl]BoCBpF0Bsr ~BvCLBxiF |BzCLBJ6BE BJZBNkuBCLtBCLBT Bo< Bm 5BNe6BN,BCLBCL:BJt;BJ BixB BE Bi B{=BFu^BOBJPBLBEBL_BCyBLvBABM BIwBmZ BaDJBE,BCLBEBv(BCLBCLBCLBCLBCLBCLBCLBCLBYgBNgBavgBMRBOxRBMRBCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBNBCLBCBCLBCLB@}BBCLBCLBCLBCL$BL*%BJX&BHBCL*BK,B EFB CL.B5NB7CLB8CLB9CLB:CL3B=s f4B?Au6BAQL7BBF38BCM@9BF|h3:BHo4;BI|BOQ?BPJcH@BQHy$ABSs8 BVCLDBXrn EBZH$FB[GЍGB\WB_`9B`fBb_aBeT_gBf\/ BgJ\EBhf7 Biaj BjFLBkIΘ!BnCL BCLBCLBb6 BCLBDB{in BE BD_BF B}{BCLBCLBCLBCLBCLBF)[BI BTB BG&f BDgBn BN% BoBGbB@BC/B)b Bz$B@BGCBJBUkBm Bh B`B Q6fB ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB LwB HB HB GB HzB Hz}eB[}fBXd ^ ^ MB 3{A NB 5COB 6N9PB 7J^QB bgRB cP9 SB do TB fIVB gm XB iGYB jL [B kC\B lOa^B og_B qsUV `B sB-\aB tm*bB unRcB vkB xCLB yCLB zCLgB }sD B CLB CLB CLB CLmB G(TnB ~oB ASB CLB CLB CLB CLB CLB CLB CLwB E\xB K yB Q=qB OP{B n |B P}B ^B~B ]B C1B FB q ~B CLB ges |B CLB J B DDB JGB GuB CLtB CLB Tfg B o B m" 5B N\e6B N,B CLB CL:B J|1;B JLB Qu?B Jd1@B H|AB pPL B CLDB p EB H"FB GwGB WXB bB hB bB T9[B ]!B JSEB e B _ B EB Jm!B CL B CLB CLB c B CLB D|B uS[ B EZB CB FIB }]B CLB CLB CLB CLB CLB F&B IB VdB ^ B G33 B D4KB o B R B mfB GB "@B $CB %7 B &zMB '@B (7 B )IL\B +ULB .mh B 1i B 3`B 4RC3B 5^B 6CLB 7CLB 8CLB 9CLB ;CLB CLB ?CLB BLB DHB EHB FGB IhffB Lhff}eB Y}fB XD ^ ^ MB {] NB COB LPB KQB hQ@RB P.ZSB ouq TB DVB cv XB GuYB L[B \B Ot^B g_B m `B AaB T bB UcB RB CLB CLB CLgB r B CLB CLB CLB CLmB FnB )oB A#B CLB CLB CLB CLB CLB CLB CLwB @xB KfyB TzB OP{B hDD |B PzH}B ]~B ]B CzB FHZB q ~B CLB h |B CLB J B EB J B O3uB CLtB CLB R B o: B m" 5B Nd6B HN6 B JCLB KCL:B MJm;B NIҏ~B M}B NB G]B CL~B CLB KmB [ B ixB B KFB D4KB DQNB ixB BixB BDQNBi B{gBFN=BOBJPBLBEB!M B"CyB%R.B&AB(LB)JPB*m B+YB,DB.CLB1EYB2u~B5CLB6CLB7CLB8CLB9CLB:CLB;CLBBGCLBHCLBICLBJCLBKCLBtCLBuCLBv]BxCLByCLBzCLB{N5B}CLBC2BCLBCLBwB BCLBCLBCLBCL$BL^%BI&BN=BCL*BL#,BQjBCL.B~ BCLBCLBOPBCL3Bs;4BA6BTL7BKL8BO9B{2:Bo;B|BR?BJ_@BHz ABq BCLDBqHF EBHFBGGBY$(BZ!B_BY 3BT B^ oBJEBb6 B] BEBHH!BCL BCLBCLBf& BCLB DBB y B DVB CBwB}cBCLBCLBCLBAF,BBIPBDQKBG BJG{ BLDJBMn BNTi BQqfBTGۑBW^ BXC{BZ} B[zIB\@}BB]GB^IEB`URBcm Bfi{ Bg`3BiT\Bj^BkCLBlCLBmCLBnCLBoCLBsOPBtOPBvCLBwCLBL&BHBH BGBu3Bu3}eBT{: }fB V ^ ^ MB{Q NBCNOBOSPBK#:QBfRRBP*SBo TBKVBq! XBGjYBL[Bԥi\BOJ^Bc4_B| `BAaBSffbBW5cBSB CLB CLB CLgB sc BCLBCLBCLBCLmBF~nB~oBA+BCLBCLB CLB!CLB"CLB#CLB$CLwB'~=qxB(N>yB)SW B+OP{B,x |B-PI}B.^~B0]B3CTB4FBB7q ~B:CLBCLBiJcBjE3BkJZBoHuBqCLtBrCLBtRt Buo- Bwl: 5BxNd6ByN8B{CLB|CL:B~Jt;BIJsBCLBCLdBH*BCLfB]BCLhBOiBUBCLkB\՗ lBKz mBI nBcoBjmpBa qB^3 rB] sBMrtBMuBD BCLBCLxBGJYyBMFzBG:BOPBCL}BI ~B0MB1NxB2GFB4CL~B5CLB7K\WB:[; B;ixB B=KB>E,OB?E,OBBi| BCixB BDDBEi BG{6BHFN=BKPBNJPBOLBREBTM BUB+BXLvBYBbB[M B\JPB]m B^W8B_CyaBaCLBdEDBesaWBhCLBiCLBjCLBkCLBCLBCLBCLBCLB^BXBavgBNBMRBMRBCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBNzBCLBCcBCLBCLBt BCLBCLBCLBOP$BK%BI@&BJsBCL*BL4,BSBCL.By BCLBCLBOPBCL3BsZ4BA6BO7BJٙ8BS9B z:B pf;B {BR?BJ\@BH}ABq BCLDBqV EBHFBG8GB X].B#RfB$WB&QB)SB*ZHkB+IJB,`6 B-] B.EdB/G!B2CL B\CLB]CLB_a>' BbCLBdDGBeCBfDnQBgCL!BiBBk}TBmCLBnCLBoCLBpCLBqCLBtF?BuI:BwN Bz B}G BDBoK BNQ Bs\BG4B: BDJB BzB@nBGBIwBUtWBm Bg{ B`PBQ9B^BCLBCLBCLBCLBCLBOPBOPBCLBCLBLŎBHpBH BGvBzBz}eBiJ}fBtVi ^ ^ MBz NBCOBLdPBJNQB&fRB'P SB)ouq TB*I;VB+m XB-G!YB.L.[B/\B0P^B3f_B5r `B6A33aB8eHbB9j{cB:h4BCLgB@r BCCLBDCLBECLBFCLmBIFnBL~goBN@BPCLBRCLBSCLBTCLBUCLBVCLBWCLwBZCxB[NzyB\SW B^OP{Bn |BQ%}B`~B]BC/$BFcBqV ~BCLBhn |BCLBJBDBJBPƜuBCLtBCLBS BoV Blp 5BNc6BNF|BCLBCL:BJ_C;BH@zr:B@v;BA{4BGS$?BHJ\@BIH~ABKzr BMOPDBN@#EBOHFBPGiGBQXo$B}RfB~W|BQ BR$"B^ЅBIRBc7 B_d BC{BEW!BCL BCLBCLBcx BCLBCBDBEBC BC5 B|BCLBCLBCLBCLBCLBFG5BIBP`B BGs3 BCBn BRHc BrBHyB BDBByBz=qB@XBFBHHBU"QBnB Bd B_BQ33B^BCLBCLBCLBCLBCLBOPBOPBCLBCLBLtBHB HRB G-B {B{}eBZW}fBW ^ ^ MBPz NBRC&OBSMZPBTJ3QBXgbNRBYPSBZo; TB[CYVB\a XB^GYB_L[B`9\BbO^BecLK_Bfir `BgA DaBiI bBjLcBkJnBmCLBoCLBpCLgBrrb BtCLBuCLBvCLBwCLmBzFsInB~~C4oB@<BCLBCLBCLBCLBCLBCLBCLwB|\xBIpyBRBOP{Bc |BPJ_}B_~B]BC 1BF#Bq ~BCLBg+ |BCLBJ}BDBKOBIXiuBCLtBCLBS Bn Bl?} 5BNX6BNWBCLB CL:BJ;BH6t QB&CRB(UTB)JUB*LVB+GB-CLB.CLYB0GnZB1JāB4CLB5CL]B7H#^B8}h B;CLBCBACLBBCLdBDGCBEOPfBG]FCLhFN iF VF OPkF[~ lFE\ mFD nFUoFk"pFcz qF_G rF^3 sFMitFMuFFFOPFCLxF GJyF!JzF"JZF$OPF&CL}F(JBU~F*MɾF+NIF.FIF/OP~F1CLF4KF6ZB F7ixB F8IF:D|F;DSFdixB FeixB FfDSFgDFi{bFjFFmP FoJ'FpLFs}FuM FwBXBFzRF{BF}LkF~JPFm FStFCyaFCLFEFu'FCLFCLFCLFCLFCLFCLFCLFCLF]3FNgFavgF@aHFAFCaHFCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN\@FCLFCFCLFCLFE@FCLFCLFCLFOP$FLB[%FJ6&FQFFCL*FL},FU<8FCL.FHFCLFCLFOPFCL3Fs4FA{6F|7F}8FAS39F,z):F.r;F/}F2S&?F3Jg@F4HAF5EnGF6OPDF7DMEF8HFF9GGF:XF=PF>VtF@PFCQ7FD]f_FEIWFFfJ FGc!( FH@RFIB!FLCL FNCLFOCLFQf FTCLFVC{FWAW3FXEFYCFZHe F]|F_CLF`CLFaCLFbCLFcCLFfFNrFgIKFQ9FU FGw FC{Fn4a FS Fq@FHFF FCpiFDFyFF@JeFCuFH[FTFn}[ FmU F`FRF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFLFHFHFGF{LF{L}eFZ]}fBW ^ ^ MF{] NFCOFNPFJmQFeRFPSFo,| TFJ;VFn XFGaYF L״[F!r\F"Q^F%g 9_F&y `F(@aF*J(bF+LcF,JF.CLF/CLFXCLgFZr. F]CLF^CLF_CLF`CLmFcFZnFf~oFg@kFiCLFjCLFlCLFmCLFnCLFoCLFpCLwFsA8RxFtI{yFuUQFwOP{FxuO |FyQC8}Fz`M~F|]FBFEFqHF ~FOPFhk |FCLFJFD^\FJrFPluFCLtFCLFTA Fo9X Flv 5FNL6FNkFCLFCL:FI;FGa qF?^z rF@^ sFAMy+tFBM2 uFCG3FDOPFFCLxFHGyFIQPzFKKFLOPFNCL}FPJ~FRMFSN5FTG!FVOP~FXCLFZKcFZ}W FixB FIiNFDFDFixB FixB FDVFDF{\FGoFP FJ:FM F} 8FM FB_FPbFAFNyFJPFm FSI[FCFCLFEFwFCLFCLFCLFCLFCLFCLFCLFCLF^ FXFavgF@#FAFC\FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFNQlFCLFC@FCLFCLFDFCLFCLFCLFOP$FLaS%F J+&F O§FCL*FL,FUZFCL.FJ3FCLFCLFOPFCL3F!s44F#A{6FND7FOAٚ8FPD39FSy8:FUp;FV|fgFYS7Y?FYJ@FZH6AF[HFF\OPDF]CiEF^H\FF_HGF`T]FdR8FeWgFfQfFiPJFj\$FlIYFme!4 Fna Fo| Fp@.!FsCL FtCLFuCLFwaY F{CLF}CμF~xo FETFC'FuGZF|6FCLFCLFCLFCLFCLFF[FIFNsF7 FG FC4Fm7 FM Ft3FHl!F FB=FEGFyF@4FA/FG )FU-FnT Fjs3 F`ٚFR\F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMFHFHFG5F{3F{3}eFVqi}fFX| ^ ^ MF7{B~ NF9CNOF;N!PFRFTdTFJUFKVFGoFCLFCLYFGJYZF@J;FBCLFCCL]FEG^FF7 FICLFLOPaFOCFQCLFRCLdFTHVFFVOPfFX]FYCLhF[MQiF^UF`OPkFa\9 lFbtGmFdspnFfMoFgjppFi` qFj\G rFl]\) sFmMtFnM\uFoGFpOPFrCLxFtG̶yFuR7zFwL,FxOPFzCL}FJ~FNFN4FGuFOP~FCLFK)F[ FixB FHdFDZFDFixB FixB FDFCF{mFGoFOFJ FM F} 8FM FBVFOFA˩FNFKFlº FQFCyaFCLFEF{hFCLFCLFCLFCLFCLFCLF CLF CLF NgFQ0FavgF@\FAFCqFCLFCLFCLFCLFCLFCLFCLF]FCLFCLF CLF!N>F#CLF&CF(CLF)CLF*DF-CLF.CLF/CLF2OP$F3Lz%F4J&&F7OI>F9CL*FFRh?FJ@FHUAFJRFOPDFC ^EFHDFFH/ GFRFTnfFY3FS3FOF^FIYFc>k F_= Fz % Fc !FCL FCLFCLFc FCLFCpFw| FEFB=FDH F|ddFCLFCLFCLFCLFCLFFarFIFOƄF FG FCpFm FSn FsVfFHjFr FB)FEFyF@&F@bFFFUGFo Fh3 F`FR\F^F CLF CLF CLF4CLF6CLF9OPF:OPFiF Ts F OPkF ]Y lF imF n{nF Fs3oF iapF ^ qF Z\) rF \ sF M*tF MwuF GF OPF CLxF GoyF R*WzF LtF OPF CL}F K ~F N!iF N7F GF OP~F CLF KF ] F ixB F GeF EGF E F ixB F ixB F DZF CF zAF FU{F OF IF LaSF waOF M F BVF LvF AF NͤF KmF iM8 F PF B F (CLF +E/F ,uF .CLF /CLF 0CLF 1CLF 2CLF 3CLF 4CLF 5CLF 8YgF :XF ;avgF <@F =AF >CF @CLF ACLF BCLF CCLF DCLF ECLF GCLF H]F ICLF JCLF KCLF LN8F NCLF QCdF SCLF TCLF VDXF XCLF YCLF ZCLF ]OP$F ^L%F _J0?&F bNF CL*F MH,F VF CL.F JFF CLF CLF OPF CL3F s4F A{6F ZL7F MS38F U 9F y":F z&g;F 4F RN?F J@F HAF K.F OPDF BREF HİFF HOGF QF SfgF X4F RfF O4 F YF Ir_F at F ^y F x0 F } !F CL F CLF CLF d F CLF CF B+F E@F BɀF Jv F |tF CLF CLF CLF CLF CLF Fd)F IF M]F ~; F G" F Ci(F mi F R F r F HF !' F "B1 F #FF $yF %@F &c F 'EV[F *UnF Uof F Xj F YaC3F ZQٚF [^F \CLF ]CLF _CLF `CLF aCLF dOPF eOPF gCLF iCLF lM06F mHeF nHtF oGF q{3F s{3}eF _v}fF WYm ^ ^ MF z NF COF NPF JHQF cFRF OSF oK TF L"VF r0} XF GYF MH[F ƥ\F SV ^F g1%_F |U `F @aF I4bF K޹cF JF CLF CLF CLgF r. F CLF CLF CLF CLmF F<nF ~oF ~#A F CLF CLF CLF CLF CLF CLF CLwF ~=qxF LyF RF OP{F y |F Q2}F am~F !]F $BF %EQF (q+ ~F *OPF -g |F /CLF 3JF 4J_F 5JKF 8K9uF :CLtF T( F ?n F @l\ 5F BN6 6F CNYF ECLF FCL:F HI;F IFC PF gJ QF DRF P7TF KUF L*VF IUF OPF CLYF GZF J3F CLF CL]F G^F EF OPF CLaF G:F OPF CLdF I F OPfF ^F CLhF LiF S%F OPkF \ lF omF h\)nF EoF ipF [\ qF TǮ rF W\ sF MtF M/uF H$RF OPF CLxF G'yF QzNzF L~&F OPF CL}F KF~F N3F N3F H F OP~F CLF K82F ixB F ixB F GCF EZF E*F ixB F ixB F E*F BfF zF EF OF IF LF uF M F BVF LvF A_F JPBF KK+F LhM F MPGF NBF PCLF SEjF Tx>{F VCLF WCLF XCLF YCLF [CLF \CLF ]CLF ^CLF aYgF bPgF ckF d@F eAF fCaHF hCLF iCLF jCLF lCLF mCLF nCLF oCLF p]F qCLF rCLF sCLF uN1F wCLF yCLF {CLF |CLF ~DBF CLF CLF CLF OP$F Lo%F J:`&F N"&F CL*F Mz,F W5F CL.F JF CLF CLF OPF CL3F s]4F A{6F Ol7F Pff8F Py9F x:F o;F {F R.>?F J]@F HAF KnF OPDF BEF HFF HgbGF Q3lF PF UF OPF NnF^FIEkFaY F^D Fw F|& !FCL FCLFCLF`x F!CLF#CScF$I F%ElF&BF'Fxl F)|fF+CLF-CLF.CLF/CLF0CLF3FoF4IXF5OvoF8~' F;Gf F>CF?mYk F@N FCrFFHFI' FJBFKF~FtyFv@Fw} FxDXFzU5F}ouq FjQ F`yFRF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFM5FH5FHkFGF{F{}eF']¸}fF >X ^ ^ MFz< NFCLOFNPFJ9QFdExRFOzSFoK TFH|VFk XFGYFM>[FT\FS^Fg_Fp8 `F@TaFbbFecFcFCLFCLFCLgFr; FCLFCLFCLFCLmFF.nF ~&goF }_ FCLFCLFCLFCLFCLF;FuE5I*F?LGFjtDFlM FmB3FpQFqA?FsPBFtK8Fuh FvPxFwBeFyCLF|E'F~yGFCLFCLFCLFCLFCLFCLFCLFCLFYgFPgFavgF@\FAFCFCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN07FCLFCdFCLFCLFC4FCLFCLFCLFOP$FL%FJD&FMOFCL*FM,FWFCL.FJFCLFCLFOPFCL3Fsۿ4FA{6FW&g7FU 8FSٚ9FxO:Fq;F}FQb?FJ8@FHAFL&FOPDFAWEFI FFHzyGF0PؔF4R$F5WQF6PgF9MF:]~F;Ix F@| !FCCL FDCLFECLFGdM FJCLFLC FMB\FODXFPB1 FQIz FS|FUCLFVCLFWCLFXCLFYCLF]FzF^J F_PzFb~ FeGU FgBrdFhll FiT; FrFHFF: FBFF5FyF F| FDJFUHFo Fj F`FR\F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFM?FH|FHnFGF{LF{L}eFQ_"}fFi]? ^ ^ MFy. NF C(OF O\PF JFQFdRFPSFo TFDAVFc XFGaYFM'[FT\FQ9^Ff_Fmq `F@TaF JbF!L+cF"H.F$CLF%CLF'CLgF)r F+CLF,CLF-CLF.CLmF1F#nF\~ oF^|j F`CLFaCLFbCLFcCLFdCLFeCLFfCLwFiG4xFkK\)yFlRQFmOP{Fpf |FrT}Fscl~Fu]FyB}FzExF}qV ~FOPFe |FCLFIFLpFJnFKuFCLtFCLF]D Fr& FoK 5FN%6FN9FCLFCL:FIZ;FETF&OPfF(^F)CLhF,L=iF/R F1OPkF2\`4 lF3^mF4anF5B3oF8hpF:_Ǯ qF;Z = rF<^ sF=MtF>MuF?GoF@OPFBCLxFDG0yFENzFGMFHOPFJCL}FMK/~FNNTFON,FPHFXFROP~FSCLFUK82FXixB FYixB FZF5F[FRF\EV[F]ixB F_ixB FEdFAX-FzFCFOFIwFLFsFM FEVFSC]FA#FPBFLFf FP0FBWFCLFEŞF{hFCLFCLFCLFCLFCLFCLFCLFCLFa FYgFdFkHFBFx\*FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN#FCLFCFCLFCLFC'FCLFCLFCLFOP$FL%FJN&FLF CL*F M,FWFCL.FJFFCLFCLFOPFCL3Fth4FA{6F!T`7F"Og8F#V9F&xj):F'eٙ;FPp3FSQN?FTJ@FUHAFVLnFWOPDFXA?;EFYI,~FFZHGF[PF_QfF`W9FaPFdMNFe\pFfHFhd Fia>' Fj{= Fk' !FnCL FoCLFpCLFrc FuCLFxBnFyw FzDZF{AҩF|J]9 F~|FCLFCLFCLFCLFCLFFFJFRwF~ FGH FB}Fl FQ FpfFHbF@AFCFG} FyF F|5! FCFPFo+ FiUU F`FRF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFME/FHFHqLFG$F{33F{33}eF|^tt}fFbb} ^ ^ MF2x]6 NF4COF6PhPF7IQF:c(RF;PSF<@TF=JVF>n XF@G:YFBM Q[FC\FDSg^FGdG_FHxc `FJAaFKIbFLKcFNH\)FPCLFQCLFRCLgF|rZ F~CLFCLFCLFCLmFFWnF9oFz^ FCLFCLFCLFCLFCLFCLFCLwFyxFLpyFNRFOP{Ft |FT}Fc,~F]FBFEFp ~FOPFd`* |FCLFISFMFJoFL0uFCLtFCLF_ Fr^ Fp > 5FN#6FN!FCLFCL:FI=;FN NKFEsZFixB FixB FEZF@FzWFCyFPFIFLûFrt7FM FEVFQFA FP(FLFe@ FNFBuFCLFEŞFzKFCLFCLFCLFCLFCLFCLFCLFCLF_\FPgFavgFCqFAFG(F CLF CLFCLFCLFCLFCLFCLF]FCLFCLFCLFN)FCLFCFCLF CLF"CF$CLF%CLF&CLF)OP$F*Ld%F+JX&F.L%F0CL*F3M],F4WF5OP.F6JۥF8CLF9CLFCL3F@s4FBA{6FE`s47FFY8FGX 9Jw:J oS3;J t9JQp?JJ @JHXAJLJOPDJ@EJIGFJHGJP4JOJTJN3J!L~J"_J#HJ$cjS J&`EA J'|= J(@!J+CL J,CLJ-CLJ/_ J2CLJ4Bk!J6wB J7DJ8AZJ9Dy= J;|JeCLJfCLJgCLJiCLJjCLJmFCJnJJoPX8Jr~z JuG JwAJxl~k JzN J}pFfJHJ@4JBMJGJymJ J{/ JCJQ>Jp$ Jj J`3JQ33J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJME/JHJHo{JGJR3JR3}eJ9Z}fFeud ^ ^ MJw NJCNOJOPJI˳QJbΉRJO7SJATJIVJl XJGYJL2[Jq\J,Ul^J/d_J0pq `J2C_aJ3czbJ4eRcJ5c>J8CLJ9CLJ:CLgJCLJ?CLJ@CLJACLmJEGnJH~ioJIy#A JKCLJLCLJMCLJNCLJOCLJPCLJRCLwJU\xJVKyJWO\JXOP{J[k |J]U)z}J^f~Ja]JdCgyJeF1Jp ~JOPJc |JCLJIJMJJ/JLuJCLtJCLJa+ Jr Jp" 5JN"6JNJCLJCL:JI;JQ$!J:Q5?J;JV@JOPDJA@EJCI\FJDHGJEOJHPDJJUfJKNfJNL> JO[JPHIJQbE JR_= JS~ JTA^v!JXCL JYCLJZCLJc{ JCLJAҩJAOJDJA$ZJJ J|xJCLJCLJCLJCLJCLJFtJI>J@J~OI JG{ JA Jl JT JnJHJ@ZaJCA?JG&JyTJ J{ JCaJRJpPL Jj7w J`JQ3J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJM<JHJHkJGJgzJgz}eJ\T}fJgL ^ ^ MJv}K NJ!COJ"OtPJ#IQJNb݉RJPO SJQ@}BTJRGVJSi XJUG@YJVL[JW7)\JXS^J\dpR_J]n `J_Dv]aJ`zGbJa@34cJbx>JdCLJeCLJfCLgJiq JkCLJlCLJmCLJnCLmJqHPnJt~9oJux's JxCLJyCLJzCLJ{CLJ|CLJ}CLJ~CLwJ~=qxJHǮyJOJOP{JsӠ |JS}JfP~J]JD JF_nJp3 ~JOPJc |JCLJIXJMJJJK+uJCLtJCLJau Js/ Jo 5JN#6JM6JCLJCL:JH;JQ~'KJCLJCLBJECJU-DJDRJEJgFJe >GJFHJQ LJ{MJwW NJK\OJm- PJkd QJFRJOTJK|UJLXVJKJ OPJ"CLYJ$HZJ%IpJ'OPJ)CL]J+FE^J-aYJ.OPJ0CLaJ3UJ4OPJ6CLdJ7IJ9OPfJ;^JJdP?JeJV@JfHİAJgLJhOPDJk@EJmInFJnHGJoO!JrOJsUAJtNəJxLJy^YJzH J{a[o J^ J' JAZ!JCL JCLJCLJc_ JCLJAqJG&"JFxCJAHJiJ|aJCLJCLJCLJCLJCLJFJIuJUJ~24 JG* JAJl JRA JmJHJ@QJCJG{JyTJ Jz[ JC/J TcJ p| Jiw J`3JQ6fJ^JCLJCLJCLJCLJCLJOPJOPJ CLJ!CLJ$M)J%HJ&HaJ(GJ+gGJ.gG}eJF9}fJg ^ ^ MJqv`4 NJsCOJtP PJuI4QJx`RJyPJSJzp3 TJ{OVJ}{a XJGYJLu[J\JVg^Je$_JnUV `JCaJzGbJ~cJv{JCLJCLJCLgJr JCLJCLJCLJCLmJH"inJ4oJwU JCLJCLJCLJCLJCLJCLJCLwJ@\xJJ4yJQzJOP{J@ߓ|JTz}Jc ~J]JD&JEEJouq ~JOPJb5h |JCLJI'JNJIJK6/uJCLtJCLJYm Jp/ Jm 5JN!6JMJCLJCL:JH;JQCKxzNJ?KzOJBmi PJCl QJDFRJFOTJGKUJHLxVJIK7xJJOPJLCLYJNH#ZJOIEJQOPJSCL]JUE^JVbJWOPJYCLaJ\W%HJ]OPJ_CLdJaIJcOPfJe^JfCLhJhKMiJiOOJkOPkJl\, lJm_mJnbffnJoAoJgZpJ[ qJU rJXf sJMtJM[uJHJOPJCLxJH@yJIrAzJMIJOPJCL}JL~JNrJMJHBJOP~JCLJI\JixB JixB JFLJF5JEWJixB JixB JEJAJJ{JCyJOJI gJLJpJKCuJEVJLvJ@ J P(J LJ eb3 J MYJ EʘJ CLJ EJ saWJ OPJ CLJ CLJ CLJ CLJ CLJ CLJ CLJ YgJ NgJ d)J hJ zJ kHJ !CLJ "CLJ #CLJ %CLJ &CLJ 'CLJ (CLJ )]J *CLJ +CLJ ,CLJ .N,J 0CLJ 2CHJ 4CLJ 5CLJ 7ByJ bCLJ cCLJ dCLJ fOP$J gL%J hJb&J kI~J nCL*J qMA,J rWB J sOP.J tKJ vCLJ wCLJ yOPJ {CL3J ~t\ 4J A{6J OFf7J K8J P9J u*:J if;J s@J P?J J@J HAJ LJ OPDJ K EJ IxFJ HGJ O5~J RFfJ WLJ PfJ K'J ^ J G"J dE J ` J ~ J AH!J CL J CLJ CLJ ^ J CLJ A/J @;J F(J A$ZJ 6 J |lJ CLJ CLJ CLJ CLJ CLJ FJ IJ TJ ~ J G J A^vJ la7 J N J oJ HNJ * J +CJ ,G0J -yTJ /r J 0zr J 1CJ 3TѸJ 6p J 9k J :`J ;Q6fJ =^J >CLJ ?CLJ @CLJ ACLJ BCLJ EOPJ GOPJ ICLJ JCLJ MMMJ NHJ OHWJ QGJ TgQJ WgQ}eJ E }fJ_ ^ ^ MJ v`4 NJ DOJ MPJ IwQJ _}2RJ PRSJ o+ TJ PVJ }+ XJ G YJ L[J )\J X^J e6_J n9 `J CmaJ {ǯbJ QcJ wJ CLJ CLJ CLgJ qƀ J CLJ CLJ CLJ CLmJ GnJ ~c4oJ v» J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ QxJ KyJ P4J OP{J A7w|J V}J f# ~J ]J CJ ECJ n ~J OPJ b |J CLJ HJ NJJ IqJ NWuJ CLtJ CLJ "X> J #mk J %la 5J 'N16J (MJ *CLJ +CL:J UH;J VPbJ OP~J CLJ IiNJ ixB J ixB J FJ FJ EJ ixB J ixB J F!OJ AJ {zJ CyJ OJ IHWJ L4J oJ "LJ %EVJ &TJ (@|J *P(J +LJ ,dr J -NJ .BuJ 0CLJ 3EJ 4u'J 5OPJ 7CLJ 8CLJ 9CLJ ;CLJ CLJ A^c3J BNgJ CkgJ DhJ E{J FkHJ HCLJ ICLJ KCLJ LCLJ MCLJ NCLJ OCLJ P]J QCLJ RCLJ SCLJ UN3J WCLJ CJ CLJ CLJ A/J CLJ CLJ CLJ OP$J Ly%J J_&J I'J CL*J M,J WoQJ OP.J KJ CLJ CLJ OPJ CL3J tM*4J A{6J T37J Lf8J S39J u(:J j;J sJ Pyd?J J6@J HAJ LeJ OPDJ Fv EJ I|FJ HzyGJ OJ NfJ T3J MJ KrJ ]J G{oJ d J a J ~# J @!J CL J CLJ CLJ a J CLJ AJ vW J F!OJ @nJ n{J |JJ CLJ CLJ CLJ CLJ CLJ FJ IJ STJ }h J G J @uJ k J HT; J KpC3J NHyJ Qc J RDGJ SGoJ UyTJ VFv J Wy J XBJ ZUJ ]pӖ J `gٚ J a`3J bS3J d^J eCLJ fCLJ gCLJ hCLJ iCLJ lOPJ nOPJ pCLJ qCLJ tL{J uH(J vHDJ xGgJ {hJ ~h}eJ K a}fJ "^ɲ ^ ^ MJ w NJ DkOJ KPJ IUQJ ^= RJ PSJ o TJ P/VJ |ԁ XJ GhYJ L X[J ѧo\J U^J gB_J n `J BtkaJ {>bJ ~cJ xJ CLJ CLJ CLgJ qA J CLJ CLJ CLJCLmJG.nJS4oJu JCLJCLJCLJCLJCLJCLJ CLwJ#BRxJ$LyJ%R34J&OP{J( |J)Up}J*e~J,]J/C]J0E-J3u ~J6OPJ9e |J;CLJ>HãJ?N_J@IJDIuJFCLtJGCLJIY JJp" Jtl 5JvN6JwM/JyCLJzCL:J|H/;J}PluJHJOPJCLxJHVFyJQazJLJOPJCL}JL~JN_JM@JH>bJOP~JCLJI J ixB J ixB J FJ GJEVJixB JixB JF>KJ@-J={sJ>BJAOJCIpJJDLûJGojJILJJ@ JMSQ/JO@H/JQP(JRLJSeM9 JTN :JUBoJWCLJZEYJ[v%J\OPJ^CLJ_CLJ`CLJbCLJcCLJdCLJeCLJhYgJiPgJjkJkhJl|JmkHJoCLJpCLJrCLJsCLJtCLJuCLJvCLJw]JCLJCLJCLJN*pJCLJCJCLJCLJAt@JCLJCLJCLJOP$JLlA%JJ[&JHgpJCL*JMlf,JWJOP.JKJCLJCLJOPJCL3JtT4JA{6JNg7JVS38JR9Jt:Joff;JsJP<?JJ۲@JHGAJLJOPDJ },l EJ IeFJ HpxGJNdJOhJT3JNQJKWJ_JG!Jb J_ J}; J@!J CL J!CLJ#CLJ%c[ J(CLJ*@J+xo J,EJ-@XJ/J0|&J3CLJ4CLJ5CLJ6CLJ7CLJ:FJ;JJQJ]D3RJP;SJof TJOdVJ{Sn XJGMfYJK[Js\JVB^Jg|_Jn `JB+jaJ|aHbJ~\cJyJCLJCLJCLgJqY9 J0CLJ2CLJ3CLJ4CLmJ7FynJ:~oJ;u  J=CLJ>CLJ@CLJACLJBCLJCCLJDCLwJG{ xJHKLyJIOJJOP{JL} |JMUC}JNd~JP]JSCUkJTEMNJWs8 ~JZOPJ]b& |J_CLJbHGJcNJdIuJhP%uJjCLtJkCLJZS Jpc Jl 5JM6JMJCLJCL:JHVF;JOMJUpNJvOJn PJn}[ QJGnRJOrTJKlUJLVJJ[JOPJCLYJGZJH/JOPJCL]JDQN^Jd+JOPJCLaJX&JOPJCLdJI JOPfJ^JCLhJIiJLJOPkJ[ lJ LmJ KnJ AHoJepJZ qJU{ rJWff sJMBtJM1 uJHJOPJCLxJHkyJPJ'P?J(J@J)HAJ*L*J+OPDJ.|C EJ0IIFJ1HaGJ2NJ5QiJ6VpJ7OJ;JFJax J?_ J@}T JA@`2!JDCL JECLJGCLJI]b JLCLJN@`2JO@JPEOJQ@JSJU{JWCLJXCLJYCLJZCLJ[CLJ^FJ_JJO_YJ}X JG J: Jl3 JN} JrJHJ~ JD|JG4Jy;J~; JyN JBnJTʆJq Jl J`3JSJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJL7JH~JH JGw JyffJyff}eJSNj}fJ` ^ ^ MJ v}K NJ DOJ IUPJ IIwQJ\pRJPRSJof TJO VJz62 XJG9YJK:[JC\JVJ^Jfw_Jor `J!AaJ"|{bJ#}cJ$xzJ&CLJ'CLJPCLgJRq: JUCLJVCLJWCLJXCLmJ[FnJ^~4oJ_tE JaCLJbCLJdCLJeCLJfCLJgCLJhCLwJkzxJlPHyJmNfJoOP{Jp|" |JqVrj}Jre\~Jt]JwC(JxE|J|r ~J~OPJah |JCLJHxJMJIV}JHuJCLtJCLJ\T Jo Jl 5JM6JMJJCLJCL:JH2;JO#OJoXB PJn QJG} RJO[TJKUJLЧVJJJOPJCLYJGZJHkJOPJCL]JD^JdJOPJCLaJXfJOPJCLdJ!IJ#OPfJ%^J&CLhJ(IiJ)N]2J+OPkJ,ZD9 lJ-EQmJ.CGnJ0@ oJ2e?pJ4[k qJ5Uu rJ6W = sJ8M tJ9M(uJ:HtJ;OPJ=CLxJ?HkyJ@L̷zJBLJCOPJECL}JHL&~JIN#=JJMJKH: JLOP~JNCLJPIJRixB JSixB J}F:J~G`JETJi JixB JFJ@X-J{/JAJO`JIpJJLqJnk2JM JB3JPtJСJP(JM Je JMZJBJCLJE:Ju'JOPJCLJCLJCLJCLJCLJCLJCLJNgJNJ`3JiJ}fgJkHJCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN(JCLJCJCLJCLJ@JCLJCLJCLJOP$JLN1%JJI&JN@JCL*JMk,JWnJ OP.J K;J CLJ CLJOPJCL3JtI4JA{6JQ7JH`8JL39JEsģ:JGiy;JHsYJKO9?JLJ@JMHUAJNLoJOOPDJR{LS EJTI9>FJUHJMGJVNy JYPtJZUgJ\NfJ_J}#J`_JaFRJba Jc^y Jd| Je@&!JhCL JjCLJkCLJmc{ JpCLJr@C JsF~JtETJu Jvq|Jy{dJ{CLJ|CLJ}CLJ~CLJCLJFJJJMJ}T JG" J Jla7 JT9 JsJHJ~z JDJGJy;J~ Jy JByJT6?Jq9 Ji J`JT`J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLSJ HxJHJGoJyJy}eJvw}fJc ^ ^ MJ-uwo NJ/DOJ0HPJ1IQJ4[ RJ5QSJ6o TJ8MVJ9wm XJ;G*)YJYb"^JAfs_JBoG `JEA?aJF{=qbJG|cNv34NCLNCLNCLgN qQk N CLN CLN CLNCLmNFnN}goNsx NCLNCLNCLNCLNCLNCLNCLwN"{xN#K>yN$NǮN%OP{N&z\) |N'X}N(fq~N*]N.C0N/ErN2wQ? ~N4OPN7` |N9CLNeHpNfM2NgId<NjP>uNlCLtNmCLNp^@ Nqp Nrm 5NtM6NuM{NwCLNxCL:NzGe;N{N]&NPNCL*NL{,NWNOP.NK@NCLNCLNOPNCL3Nt.4NA{6NJٙ7NGf8NKs39Nsk{:Nj&f;NtyNO?NJ@NHo!ANLmNOPDN y EN I'FN H6NGNNNOvfNTgNMfNJN^~NF\NdE N`׬ N|} N@!N!CL N"CLN#CLN%a N(CLN* N+C~N,EN.7 N/Dt NY{ N[CLN\CLN]CLN^CLN_CLNbFNdJ NeOj+Nh|ƚ NkH Nm)b Nnl NoPO NrrfNuHTNy~] NzDYN{G4N|y;N}~z N~y NBcNS`NqV Nk&f N`NT\N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNLjoNHvNH"iNGoNyffNyff}eN/[3}fNpe< ^ ^ MNt` NND";ONHdPNHmQN[ RNQ SNof TNMi(VNuς XNG"YNJ[N \NUJ^N"e6_N#oc `N$AZ#aN&{bN'~cN(vpN*CLN+CLN,CLgN/p N1CLN2CLN3CLN4CLmN7FxnN:~0oN;q» N>CLN?CLN@CLNACLNBCLNCCLNDCLwNGB>xNIL\yNJQ=qNKOP{NLy; |NMW}NNj-~NP]NSBNUENNX|` ~NZOPNcYk |NCLNHd6NLplNIRNGuNCLtNCLN_^ NqO NmG 5NM݆6NMpNCLNCL:NG0;NMN'Ob;?N(J@N)H\AN*LKN+OPDN.y EN0ICFN1HGN2ON6NN7SfN8LN;IN<]QN=F&N>e N?a N@|& NB !NECL NFCLNGCLNI_ NLCLNNr NO}u% NyEsZNz~Ü N{F4D N}zNCLNCLNCLNCLNCLNFNJ=NOMNN|} NG. N~] Nk NN Nr3NHpN~z NEZNGJYNy;N~@ Ny1 NB\NR̿Nqt Niٚ Na6fNTYN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNLPNHuNH%!NGqNyLNyL}eN{]/A}fNf ^ ^ MN t NN D%ON HPN HQNZnRNQ iSNof TNLwVNt XNGIYN@Jf[NA{\NCW;^NFd _NGoc `NHAFaNJzbNK|cNLuNNCLNPCLNQCLgNSpu NUCLNVCLNWCLNXCLmN[FpnN_~9oN`p NbCLNcCLNdCLNeCLNfCLNgCLNhCLwNlyxNmI34yNnONoOP{Npwm; |NqX }Nrj?~Nt]NxBJNyE0qNpX ~NOPN`p |NCLNHSNL`NIO@NN"uNCLtNCLNa Nqt Nm# 5NMܝ6NMfNCLNCL:NG;NMHNP LNuMNrNNHONp^ PNp QNG'RNNTNKUNLVN IN OPN CLYNGZNH2NOPNCL]NC.^NcCNOPNCLaNWh!NOPN CLdN"I=N$OPfN&^N'CLhN)HVFiN*V%N,OPkN-Y lN.EmN/CQnN0= oN3dpN5_ qN6WG rN7Z. sN8MtN9M uN:H5N;OPN=CLxN?HO yN@JѣzNBLcjNCOPNmCL}NpK~NqMQNrLgNsH: NtOP~NvCLNxHVFN{ixB N|ixB N}F5N~GNENj' NixB NG4NEN{ N@NO/NINLNmyNM NBVNQN~4NP(NM NeM9 NM]NB!VNCLNENwNOPNCLNCLNCLNCLNCLNCLNCLNYgNNgNcVgNMHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN$NCLNC NCLNCLN7 NCLNCLNCLNOP$NL)%NJ)&NN)NCL*NL%,NV=N OP.N K+.N4CLN5CLN8OPN:CL3NA{6NAC 7NBC8NCF9NFr:NHpFg;NItNLO,?NMJ@NNHIANOL()NPOPDNRxe ENTHdFNUH=GNVP9NZSyN[XN\RN_HmN`aNaE*Nbbs NdbE Ne{ Nf~s !NiCL NjCLNkCLNmdp NCLN~ NCwNI :N~# NyxNyNCLNCLNCLNCLNCLNFNJ NMN|5! NG" N~OI N| z NU NsS3NHW6N~ NE#NGCNy;N~ Nyl NB\NR"Nq3 Ni N`3NT`N^NCLNCLNCLN CLN CLN OPN OPN CLN CLN L5N H~N H(N GN xN x}eNW }fNiI) ^ ^ MN -uh NN /D.ZON 0HPN 2HQN 5YRN 6Q2SN 7of TN `KVN as XN cGYN dJ@[N f{\N gXr^N jb$_N koc `N lA<aN n{zbN o|cN pvaHN sCLN tCLN uCLgN wp N yCLN zCLN {CLN |CLmN FiUnN }\oN ob5 N CLN CLN CLN CLN CLN CLN CLwN {RxN JHyN O34N OP{N v |N Y}N ht~N ]N BN EN y@ ~N OPN aw |N CLN HERN LjN IN FuN CLtN CLN c N q N m 5N M#6N MNMN CLN CL:N G;N L;N nN?N oJ`@N pH9rAN qLN rOPDN tx0 EN vHFN wGoGN xPN |UN }k6fN ~]4N FN ]D-N EN bA N b. N { N ~l^ !N CL N CLN CLN _x= N CLN ~OI N B N F5N }; N µrN ykN CLN CLN CLN CLN CLN FN J3N M6]N {a N Gf N ~s N ~ N NoE N rٚN H<N ~l^ N E9[N GQN y;N }h N y@ N BcN Ry-N q N iD N a0N T`N ^N CLN CLN !CLN "CLN #CLN &OPN 'OPN *CLN +CLN .LN /HN 0HbN 1GN 4x33N 5x33}eN D;U}fN j/ ^ ^ MN Ot+ NN QD,ON SHPN THv!QN WYu-RN Q=TSN o TN KVN s[ XN GYN J[N $\N X^N eZ]_N o `N A33aN {kbN ~cN xkN CLN CLN CLgN pE N CLN CLN CLN CLmN FZnN ~@oN nQk N CLN CLN CLN CLN CLN CLN CLwN @pxN KyN PN OP{N v |N X}N j'U~N ]N BN EN x:D ~N OPN b |N CLN H8N KN IN MmsuN CLtN CLN c N q N n J 5N M6N M(N CLN CL:N G} ;N L;[NN?NJp@NH&XANK@NOPDNx ENHFNGGNP9NSNYgNR ND|NabNEjNc!( Nbq N{H N~] !NCL NCLNCLN_i NCLN|= N@`2NFN}: NFNyNCLNCLNCLNCLNCLNFTNJ2NN dN{/ NGȉ N~] N~ NQz Nr#3NH'N~OI NE2N GgRN y;N }; N y NByNQNq^ N>iw N?aN@S3NB^NCCLNDCLNECLNFCLNGCLNJOPNLOPNNCLNOCLNRLNSH,NUHNVH-JNXxfNYxf}eNF}fN k ^ ^ MNtuwo NNvD#ONwHvPNHiQNYRNQo>SNof TNKW3VNr XNGYNI[Nk}\NX ^NcH_No `NA<aNQbN~.cNxNCLNCLNCLgNpg0 NCLNCLNCLNCLmNFOnN}oNm NCLNCLNCLNCLNCLNCLNCLwNzxNK yNPNOP{Nw |NY5}Nk~N]N B N DoNz ~NOPN]J |NCLNH;SNKeNHNG"uN!CLtN"CLN$d\ N&qI N'mm 5N)Mr6N*LUN,CLN-CL:N/GgR;N0KMHN?O LNhXMNiR{NNjI34ONmq PNnqJ QNoHGRNqNTNrKgUNsL_VNtINuOPNwCLYNyGgZNzHN|OPN~CL]NCu^NcNOPNCLaNVONOPNCLdNHNOPfN^NCLhNGJiNSRNOPkNWml lNDffmNA(nNf oNc܋pN^ qNW rNZ= sNMitNLuNHJNOPNCLxNHVFyNNGzNKfNOPNCL}NK$~NLNKNH:NOP~NCLNH@NixB NixB NEZNGNFRNju NixB NG} NENzJN@΢NO/NIENLNr NM NBVNLvN}ȈNPBNM Nd NMMzN0B/N2CLN5EuN6u'N7OPN:CLN;CLNCLN?CLN@CLNCYgNDQLNEavgNFMHNGkHNIMHNKCLNLCLNMCLNNCLNOCLNPCLNQCLNR]NSCLNUCLNVCLNWN#8NYCLN\C0N^CLN_CLN`~l^ NcCLNdCLNeCLNhOP$NiL%NjJ &NJ=NCL*NK,NW)NOP.NJцNCLNCLNOPNCL3Ns#4NA{6NO 7NJ@8NJ9Nr :Nk4;Nt34NN_?NJb^@NHANKNOPDNx ENHFNG3GNP?NSNX33NQgNBN_8NEGNc>k Nb N{ N~24 !NCL NCLNCLNb NCLN| N@NF(N | N J#N x8NCLNCLNCLNCLNCLNFNJ'NO3TN{in NG N }~ N!~ N"R N%r N(H N,~# N-E*N.GBN/y;N0}f N1z)B N2BnN\QN_q NciD Nda3NeSFfNf^NgCLNhCLNiCLNkCLNlCLNoOPNpOPNrCLNsCLNwKNxHeNyHNzHQN|xfN}xf}eN `# }fN$l) ^ ^ MNuK NNDONGPNHqQNXRNQySNo TNKt@VNsk XNG#YNI[NЪ\NZ3^Ne6_No `NA)waN}bN~cNw4NCLNCLNCLgNp~ NCLNCLNCLNCLmNFF nN}4oNm NCLNCLNCLNCLNCLNCLNCLwNzxN$K=qyN%O34N&OP{N'w |N(WI}N)g~N,]N/BbN0DtN3t/ ~N5OPN8] |N;CLN>H+N?K_<N@HNCL7uNECLtNGCLNId J NJp NKm 5NMM6NNL~NPCLNQCL:NSGQ;NTKgN H NFNj NixB NGNEN{[N@NONImNLiNr N!M N"BVN%LvN'~<NPPBNQM NSdQj NTM6]NUBXNWCLNZEN[u~N\OPN^CLN_CLN`CLNaCLNbCLNdCLNeCLNhYgNiPgNjlgNkMHNlkHNmMHNoCLNpCLNqCLNrCLNsCLNuCLNvCLNw]NxCLNyCLNzCLN|NFN}CLNCҶNCLNCLN} NCLNCLNCLNOP$NK%NI&NHjNCL*NK,NXNOP.NJ'NCLNCLNOPNCL3Ns4NA{6N\S37N[8NWf9Nq:Nf@;Nn`NNt?NJS@NHTANKݺNOPDNy1 ENHAFNG GNP,NQNV3NPffNA"@N_NE#7Nc7 Nc!( N{/ N} !N CL N!CLN"CLN$]K N(CLN*{a N+AN,FqN-|ƚ N.ON0y_zN2CLN3CLN5CLN6CLN7CLN:F۠N;J:NNCLNCLNCLgNp8T NCLN CLN CLN CLmNFCUnN}4oNm NCLNCLNCLNCLNCLNCLNDCLwNGAxNHJyNIONJOP{NLvi |NMX}NNj\~NP]NSBNTDNX{/ ~NZOPN]] |N_CLNbHNcKxNdHݢNhJuNjCLtNkCLNmdF Nnq1' Npmi 5NrM6NsLNuCLNvCL:NxGC;NyJ)RmNm?RmJG@RmGARmKRmOPDRmy ERmHFRmGGRmP}RmURm[PRmTLRmu RmaJRmDoRmc Rmd( Rm{ Rm}h !RmCL RmCLRmCLRma/ RmCLRm{ RmBwRmF7 Rm|oQ RmK> RmyRmCLRmCLRmCLRmCLRmCLRmFRmJ RmRRmzu RmH; Rm}~ Rm} RmTv Rm,p3Rm/GRm2~@ Rm3ERm5H9QRm6yTRm7|= Rm8zu Rm9BRm;PgRm>q RmAj@ RmB`3RmDT\RmE^RmFCLRmGCLRmHCLRmICLRmJCLRmNOPRmOOPRmQCLRmRCLRmUKRmWI oRmXHRRmYHr5Rm[xRm\x}eRm_C}fNmluS ^ ^ MRmu NRmDkORmFVIPRmH QRmXQ|RRmQ)SRmof TRmJVRmrM XRmG&YRmIE[Rm?\Rm[^Rmf_Rmo `RmAaRm|bRm}W cRmwGRmCLRmCLRmCLgRmpG RmCLRmCLRmCLRmCLmRmF8ynRm}FgoRml RmCLRmCLRmCLRmCLRmCLRmCLRmCLwRm@xRmHRyRmPRmOP{Rmsx |RmZ}Rmk&~Rm ]RmBRmDߞRm| ~RmOPRm_xB |RmCLRmHRmKRmHfRm"KuRm$CLtRm%CLRm(eV Rm)q Rm*m 5Rm,M6Rm-L4Rm/CLRmXCL:RmZF;Rm[J-ARm.}MRm/PBRm0M Rm1dj Rm3MRm4BRm6CLRm9ERm:v%Rm;OPRm=CLRm>CLRm?CLRm@CLRmACLRmBCLRmDCLRmG^vfRmHPgRmId RmJMHRmKkHRmLMHRmNCLRmOCLRmPCLRmQCLRmRCLRmTCLRmUCLRmV]RmWCLRmXCLRmYCLRm[N URmCLRmCyRmCLRmCLRm|= RmCLRmCLRmCLRmOP$RmKI%RmI@&RmQZRmCL*RmK[,RmWARmOP.RmJRmCLRmCLRmOPRmCL3Rms>4RmA{6Rm\ٙ7RmZ8RmX9RmqW:RmhL;RmqRmOb;?RmJ<@RmG ARmKRmOPDRmw4 ERmHEFRmGrGRmPRmURm[c3RmTiRm}T Rm]RmDRmc Rmdc Rm{ Rm} !RmCL RmCLRmCLRm` RmCLRm {/9 Rm A$ZRm ERm {/ Rm Gx RmyRmCLRmCLRmCLRmCLRmCLRmFRmJRmQIRmz Rm!H33 RmL} RmM} RmNQ]6 RmQpLRmTG|RmW}~ RmXERmYHdRmZy;Rm[| Rm]{= Rm^BRm`PFRmcq RmfiH Rmg`RmhT\Rmi^RmkCLRmlCLRmmCLRmnCLRmoCLRmrOPRmtOPRmvCLRmwCLRmzKRm{IRm|HRm~H{FRmmRmm}eRm \}fRm(mV/ ^ ^ MRmtq NRmDORmFPRmH;}QRmXRRmQYSRmo۔ TRmJQVRmq XRmFYRmI0H[Rm׫\RmZ^RmeIi_Rmo `Rm@aRm|qbRmaHcRmxkRmCLRmCLRmCLgRmp RmCLRmCLRmCLRmCLmRmF7nRm}4oRmkr RmCLRm CLRm"CLRm#CLRm$CLRm%CLRm&CLwRm)AxRm*I34yRm+PRm-OP{Rm.s{ |Rm/Y}Rm0n/2~Rm2]Rm5BRm6DRm:|& ~RmRm Q?Rm J1 @Rm G6ARm KRm OPDRmwB ERmHFRmGnxGRmPRmQgRmV3RmPIRmz Rma}RmDp]Rm d Rm!d Rm"{w Rm$}: !Rm'CL Rm(CLRm)CLRm+]b Rm.CLRm0z Rm1ARm2GRm4{ Rm5G Rm7yARm9CLRm:CLRm;CLRmyRmSRpRmTOP{RmUsn |RmVZuF}RmXli~RmZ]Rm]BRm^D7Rmay ~RmcOPRmg^J |RmiCLRmlHrRmmJvRmnHJRmI uRmCLtRmCLRmf RmqR Rmm! 5RmMn96RmLmRmCLRmCL:RmFxC;RmPRm 1R0g?Rm 2J$\@Rm 3GARm 4KpRm 5OPDRm 8w ERm :HFRm ;GS<GRm BRm qJ Rm j Rm `fRm TRm ^Rm CLRm CLRm CLRm CLRm CLRm OPRm OPRm CLRm CLRm Kx;Rm I<Rm HRm HRm gRm g}eRm ^S}fRmo$ ^ ^ MRm tq NRm CoORm FLMPRm GQRm WRRm QSRm of TRm !JVRm "p XRm $G7YRm %H2[Rm 'L_\Rm (]D^Rm +dG_Rm Tpq `Rm U@aRm W}bRm X~gcRm Yx.Rm \CLRm ]CLRm ^CLgRm `p Rm bCLRm cCLRm dCLRm eCLmRm iF*nRm l~@oRm mifg Rm oCLRm pCLRm qCLRm rCLRm sCLRm uCLRm vCLwRm y|{xRm zL{yRm {URm |OP{Rm }sZt |Rm ~Z;}Rm lE~Rm ]Rm BRm DTRm y1 ~Rm OPRm ]d |Rm CLRm HsRm JRm HRm PuRm CLtRm CLRm g/ Rm q=q Rm mx 5Rm M=6Rm L#Rm CLRm CL:Rm F>K;Rm NRm YR;?Rm ZJM@Rm [GARm \KMRm ]OPDRm `w ERm bHFRm cG2GRm dPRm hTRm iYRm jSRm kv Rm n^)/Rm oD1Rm pd/ Rm qe Rm r{LS Rm t|ƚ !Rm wCL Rm xCLRm yCLRm {^'U Rm ~CLRm z7 Rm ARm GRm z[ Rm vRm xRm CLRm CLRm CLRm CLRm CLRm FRm JGRm OK$Rm y] Rm Gf Rm {/ Rm |oQ Rm N Rm qVfRm GsRm } Rm FRm HRm y#Rm | Rm |& Rm C Rm PRm qJ Rm j33 Rm `Rm T\Rm ^Rm CLRm CLRm CLRm CLRm CLRmOPRmOPRmCLRmCLRmKcNRmI RmIDRmH~Rmx3Rm!x3}eRm f}fRm pȴ ^ ^ MRm;t NRm=CORm>FjPRm@GQRmCWIRRmDQwSRmEof TRmFIVRmGo XRmIF&YRmKI[Rmth\RmuW>^Rmxb_Rmyp8 `Rmz@aRm|~gbRm~pcRmxLRmCLRmCLRmCLgRmoj RmCLRmCLRmCLRmCLmRmF&cnRm}ٚoRmh RmCLRmCLRmCLRmCLRmCLRmCLRmCLwRm@)xRmJffyRmOpRmOP{RmrL |RmZ\?}Rml\?~Rm]RmB|RmD Rm| ~RmOPRm^E^ |RmCLRmH /RmJ`RmHRmG3uRmCLtRmCLRmh Rmqu RmmF 5RmL6RmLPRmCLRmCL:RmE;RmMGRmSffHRmN{ LRmeW MRm |*NRm P!HORm t PRmt[ QRmHRRmM[TRmJURmKuVRmRmSE?RmJ@RmGARmK6RmOPDRmw ERmH'FRmG GRmPRmURm[33RmTLRmuX RmaRmCSRmd RmeT Rm{/9 Rm|} !RmCL RmCLRmCLRm^ RmCLRmyl Rm@rRmG&"Rmy] Rm)RmxLRmCLRmCLRmCLRmCLRmCLRmFRmJWRmL)Rmyz RmG" Rm{in Rm|5! RmQ RmsVfRmG\\Rm}f RmFRmHؒRmy#Rm{a Rm|} RmC/RmOժRmqJ Rmd Rm_pRmQfRm^RmCLRm1CLRm2CLRm3CLRm4CLRm7OPRm8OPRm;CLRmCLRm?CLRm@]RmACLRmBCLRmCCLRmEN#RmGCLRmICRmKCLRmLCLRmNy RmQCLRmRCLRmSCLRmUOP$RmVKM%RmWI&RmZI Rm]CL*RmJ3,RmXRmOP.RmKRmCLRmCLRmOPRmCL3RmsCL4RmA{6RmI 7RmMg8RmTg9Rmpe~:Rmg;RmogRmS@?RmI7@RmGARmKRmOPDRmw ERmHtFRmGGRmPLRmTRmZRmSfRmt9 Rm\\RmCRme Rmf/ Rm{ Rm|5! !RmCL RmCLRmCLRmb  RmCLRmxP Rm@RmFRmyz RmI* Rmx4RmCLRmCLRmCLRmCLRmCLRmFRmJXRmDԒRm y@Y Rm G Rm{ Rm{a RmTJ RmpRmGARm}u% RmFmRmI Rmy#Rm{/ Rm|= Rm CL!Rm"NoRm%qJ RmPj RmQ`fRmSSYRmT^RmUCLRmVCLRmWCLRmXCLRmZCLRm]OPRm^OPRm`CLRmaCLRmdK8RmfI~RmgIRmhHwRmkhRmnh}eRm]֮}fRmrs ^ ^ MRmuK NRmDORmEnPRmGQRmWmRRmQ)SRm{ TRmI.VRmnXm XRmFOYRmH<[Rm.\RmZ^Rmd_Rmp `RmAaRmaHbRmcRmwRmCLRmCLRmCLgRmo RmCLRmCLRmCLRmCLmRmF<nRm}oRmg RmCLRmCLRmCLRmCLRmCLRmCLRmCLwRm|{xRmIyRmNǮRmOP{RmpDD |RmZ}RmoL~Rm ]Rm#BRm$E3TRm'} ~Rm)OPRm,] |Rm/CLRm2HRm3JRm4HXRm5FuRm7CLtRm9CLRm;kV Rm LRm~n4MRmAO\NRmS@ORmu PRmu QRmH RRmMTRmJURmKVRmJaRmOPRmCLYRmGZRmGnRmOPRmCL]RmE^RmhbRmOPRmCLaRmY#pRmOPRmCLdRmH#RmOPfRm^RmCLhRmEViRmLRmOPkRmT\ lRmV mRmSnRmAoRmbpRm]k qRmV rRmY sRmMXVtRmLuRmGwARmOPRmCLxRmGeyRmJ[zRmJnRmOPRmCL}RmKM~RmKURmJTRmHRmOP~RmCLRmF/RmixB RmixB RmBɀRmHs<RmEdRmk RmixB RmHRmERmzRm EVRm ORm IRmM Rmr RmM RmEVRmO?Rm|9RmNURmDM RmEeb3 RmFMRmGE,RmICLRmLERmMu'RmNOPRmPCLRmQCLRmSCLRmTCLRmUCLRmVCLRmWCLRmZNgRm[NgRm\afRm]MHRm^kHRm_MHRmaCLRmcCLRmdCLRmeCLRmfCLRmgCLRmhCLRmi]RmjCLRmkCLRmmCLRmnN%bRmpCLRmsCRmtCLRmuCLRmwy RmzCLRm{CLRm|CLRmOP$RmK3%RmI&RmGRmCL*RmJ~,RmYNRmOP.RmKRmCLRmCLRmOPRmCL3Rmr4RmA{6RmVٚ7RmS8RmO9Rmpi8:Rmmy;RmwfRmS?RmI@RmGzyARmK>RmOPDRmw3 ERmH'FRmFxGRmQ 6RmQC3RmVfRmP6fRmrӮ Rm`RmCIRm e Rm f/ Rmzu Rm{H !RmCL RmCLRmCLRm\Ǯ RmCLRmx+ Rm@RmF/Rm xo Rm!FRm#xRm%CLRm&CLRm'CLRm(CLRm)CLRm-FLRm.JTLRm/CRm2x Rm5FU Rm7zF^ Rm8{ Rm9N} RmxVUxLqyVUyNVU{OP{VU~ofg |VU[}VUnP~VU]VUCGVUFVUz)B ~VUOPVU\ |VUCLVUH6VUIVUHXVUGruVUCLtVUCLVUmL VUq VUmi 5VUKbd6VULNVUCLVUCL:VUM;VUHH ?VUEVUCLVUCLBVU@۶CVUNDVUCEVUqFVUtGVUdHVUN* LVUjpMVU@\NVUS^OVUvTm lVU?WmVU@S =nVUAA*=oVUDcJRpVUF[ qVUGU{ rVUHX = sVUJMk}tVUKLuVULGdmVUMOPVUOCLxVUQHyVURH܂zVUSJ3VUUOPVUWCL}VUYK)~VU[KVUJ.VUG'VUOP~VUCLVUFVUixB VUixB VUBwVUHs<VUEdVUl3 VUixB VUH$VUEVUzJVUEVVUOVUIHWVUM VUr VUM VUEVVUPVUzVUP(VUM VUa4 VUMVUE,VUCLVUEVUslVUOPVUCLVUCLVUCLVUCLVUCLVUCLVUCLVUNgVUM\VUYgVUMHVUkHVUMHVUCLVUCLVUCLVUCLVUCLVUCLVUCLVU]VUCLVUCLVUCLVUNVUCLVUCVUCLVUCLVUy#; VU CLVU CLVU CLVUOP$VUK^%VUI&VUP*VUCL*VUJk,VUXRVUOP.VUK VUCLVUCLVU"OPVULCL3VUNrN4VUPA{6VUSP@7VUTIFg8VUUR9VUXp:VU[o`;VU\xVU_T,?VU`I@VUaGaAVUbJVUcOPDVUfw EVUhHVFVUiF(GVUjPzVUmU<VUnZVUpTVUqqc^ VUta9VUuB|VUvex VUwgL VUxz VUy{Z !VU|CL VU~CLVUCLVU\Ǯ VUCLVUw| VU@VUFxCVUx VUG VUxVUCLVUCLVUCLVUCLVUCLVUFڸVUJLVUQBVUx VUGȉ VUyz VU{ VUNoE VUofVUFVU} VUIEVUIpVUy VU{ VU} VUC.VUM/VUq VUnH VU`VUUVU^VUCLVUCLVUCLVUCLVUCLVUOPVUOPVUCLVUCLVU JRVU!I gVU"IVU#HtVU&i(VU*i(}eVU\iP}fVUv ^ ^ MVUDtE NVUFDOVUGEPVUIG UQVULW@uRVUMQSVUNALTVUOH0bVVUxls XVUzFYVU{H:[VU}\VU~Xx^VUc _VUqq `VUD]aVU}{bVU~LcVUw8RVUCLVUCLVUCLgVUo| VUCLVUCLVUCLVUCLmVUHMnVU}goVUdJ VUCLVUCLVUCLVUCLVUCLVUCLVUCLwVUxxVUK.yVUOBVUOP{VUnUU |VU\}VUl/~VU]VUC۽VUFVUz ~VUOPVU]x |VUCLVUH8VUIOVUH|VUNݪuVUCLtVUCLVUo>w VUq VUm 5VUKB6VULmVUCLVUCL:VUM;VUIVUOPVUCLVUCLVUCLVUCLVUCLVUCLVUCLVUPgVUOVU^)VUMHVUkHVUMHVU!CLVU#CLVU$CLVU%CLVU&CLVU'CLVU(CLVU)]VU*CLVU+CLVU-CLVU.N!VU0CLVU3CVU4CLVU5CLVU7xH VU:CLVU;CLVUVUTC?VUI@VUGPAVUJVUOPDVUxt EVUH@FVUFκGVUP6VURYVUWfVUR VUp} VUaȤVUB|\VUeд VUgx VUzr VU{ !VUCL VUCLVUCLVU_ VUCLVUv VU@VUEZVUvt VU&VUx[:VUCLVUCLVUCLVUCLVUCLVUFVUJ@MVURVUx:D VUH* VUy1 VU{ VUSm VUmVUFVU}T VUNʰVUIjVU y VU zu VU ~ VU4C4VU6MP]VU:q VU=m VU>aVU?VVfVU@^VUACLVUBCLVUDCLVUECLVUFCLVUIOPVUJOPVULCLVUNCLVUQJPVURIVUSI-VUTHpcVUWgVU[g}eVUE}fVUy ^ ^ MVUu. NVUD OVUEy:PVUFOQVUW"RVUQySVUp TVUG*VVUk XVUFYVUH[VU\VU[^VUd_VUq `VUCMaVU~.bVU}cVUwVUCLVUCLVUCLgVUo VUCLVUCLVUCLVUCLmVUH& nVU}4oVUd

u'VU ?OPVU ACLVU BCLVU DCLVU ECLVU FCLVU GCLVU HCLVU KNgVU LP@VU MaVU NGHVU OkHVU PMHVU RCLVU TCLVU UCLVU VCLVU WCLVU XCLVU YCLVU Z]VU [CLVU \CLVU ^CLVU _NVU aCLVU CVU CLVU CLVU w VU CLVU CLVU CLVU OP$VU K%VU I&VU LVU CL*VU JY,VU YoVU OP.VU KKVU CLVU CLVU OPVU CL3VU r_4VU A{6VU G7VU G8VU K9VU q:VU n;VU vfVU T?VU Id@VU G?eAVU JicVU OPDVU x EVU H*FVU FŨGVU PVU Rc4VU WfVU Q3VU o VU ]VU BIVU fb VU g VU zF^ VU z? !VU CL VU CLVU CLVU _v VU CLVU u VU {/ VU E]VU u VU *VU xVU CLVU CLVU CLVU CLVU CLVU FVU J0VU DqVU #w VU &HDD VU (x VU ){ VU +QO VU Vr VU YFWVU \|& VU ^cVU _IfVU by VU cz? VU d~] VU fC:VU hMVU kq VU ni" VU o`VU pUVU q^VU rCLVU tCLVU uCLVU vCLVU wCLVU zOPVU {OPVU ~CLVU CLVU JNVU IVU HVU HnVU zVU z}eVU ~}fVU )z ^ ^ MVU t{ NVU DOVU EcPVU FQVU W RVU QrSVU pA TVU G#/VVU j XVU FYVU G2[VU ܮ;g\VU Z^VU e_VU q `VU BaVU }bVU }cVU wVU CLVU CLVU CLgVU oF, VU CLVU CLVU CLVU CLmVU GnVU !}oVU "c VU $CLVU %CLVU 'CLVU (CLVU )CLVU *CLVU +CLwVU .@xVU /JyVU 0OVU 2OP{VU 5k |VU 7\̄}VU 8q~VU :]VU =CĢVU >EB|VU B| ~VU DOPVU G[[ |VU ICLVU LGNVU MIVU OH VU RL;[uVU TCLtVU UCLVU Wp VU q VU n J 5VU J6VU LVU CLVU CL:VU P);VU O1VUTa?VUI@VUG/AVUJ0?VUOPDVUwl EVUH FVUFGVUPLVU#SVU$X<VU%QVU&o= VU)aVU*AVU+g[~ VU-g VU.z VU/zT !VU2CL VU3CLVU4CLVU6[; VU9CLVUEVU?uS[ VU@z/VUBwQVUDCLVUECLVUGCLVUHCLVUICLVUtFғVUuJiVUvMP]VUyw VU}Hb" VUxWc VUz[ VUNC& VUr3VUFVU| VUwVUIVUyVUzcz VU~ VUCVUMDVUqt VUi VU`fVUVVU^VUCLVUCLVUCLVUCLVUCLVUOPVUOPVUCLVUCLVUJVUI VUHVUHdVUzVUz}eVU@WQ}fVU WzB ^ ^ MVUtb NVUD OVUEBQPVUF?QVUV.RVUQYSVUp3 TVUFVVUin XVUFZrYVU Gڟ[VU s\VU ]@^VUed_VUr* `VUBiaVU|bVU<}cVU=x>VU@CLVUACLVUBCLgVUDo& VUFCLVUGCLVUHCLVUICLmVUMGJnVUP}oVUQb VUSCLVUTCLVUUCLVUVCLVUWCLVUYCLVUZCLwVU]~xVU^N yVU_OVU`OP{VUck |VUf^p}VUgo~VUi]VUlC]VUmEIVUp~] ~VUrOPVUvY |VUCLVUGVUHVUHdVULpuVUCLtVUCLVUqJ VUp5@ VUm 5VUJM6VULVUCLVUCL:VUP ;VUKVUFTV?VUGI@VUHG"QAVUIIVUJOPDVUMw EVUOHlFVUPFGVUQPhVUTT9VUUYVUVRVUXn> VU[b|VU\A?VU]j VU^h6 VU_y{ VU`y !VUdCL VUeCLVUfCLVUhaj VUkCLVUu' VU{Z VUE*VUuZ VUEVUwpVUCLVUCLVUCLVUCLVUCLVUFVUJVUTQVUwB VUG VUxH VUz VUUa VUmfVUFVU| VUAVUJU#VUyVUz)B VU~' VUCVUMBVUqHF VUh" VU`VUUVU^VUCLVUCLVUCLVUCLVUCLVUOPVUOPVUCLVUCLVU JVU I$VU HVUH]XVUgzVUgz}eVUh}fVU{Y ^ ^ MVU/t{ NVU1DOVU2E)\PVU3FzpQVU^VRVU_Q2SVU`p$ TVUbFVVUci7 XVUeFYVUfG[VUg\VUhX9^VUkb2_VUmrc `VUoAaVUp} >bVUq@{cVUrzfgVUtCLVUuCLVUvCLgVUyo VU{CLVU|CLVU}CLVU~CLmVUGnVU}YoVUb VUCLVUCLVUCLVUCLVUCLVUCLVUCLwVU@#xVUMyVUOaHVUOP{VUk |VU\/}VUm6Y~VU]VUCVVUEͻVU{/9 ~VUOPVUY!( |VUCLVUGVUHؒVUHiVUIAuVUCLtVUCLVUq' VUq+ VUm 5VUIV6VULVUCLVUCL:VUO;VUHKVUixB VUixB VUC/VUHVUEdVUll VUi VUIwVUEVUz'VUEVVUOVUHVUM VUr VUM VUEVVUTz(VUxܠVUPBVUL]VUo^ VUMVUDVUCLVUE:VUwVUOPVUCLVUCLVUCLVUCLVUCLVUCLVUCLVUNgVU G6gVU PgVU MHVU kHVU iVUCLVUCLVUCLVUCLVUCLVUCLVUCLVU]VUCLVUCLVUCLVUNqVUCLVU CVU"CLVU#CLVU%vY VUPCLVUQCLVURCLVUTOP$VUUKy$%VUVI&VUYHjVU\CL*VU^J"Q,VU_Y#VU`OP.VUaLVUcCLVUdCLVUgOPVUiCL3VUlrR 4VUmA{6VUpN7VUqI8VUrG9VUur:VUwxf;VUxz33VU{Tk?VU|Iw0@VU}GAVU~IVUOPDVUwB EVUHFVUFGVUP 5VUVyVU[3VUUfVUm{[ VU]VUAyVUk VUh VUy@ VUy@ !VUCL VUCLVUCLVU]b VUCLVUtz VU{ VUDVUtY VUeVUwVUCLVUCLVUCLVUCLVUCLVUFVUInVUKpVUvI VUH@ VUw VUzT VUP VUsVUFoeVU|R8 VUDVUK)VUyVUy VU O VUDVU!MiVU%q+ VU(if VU)`VU*UVU+^VU,CLVU-CLVU/CLVU0CLVU1CLVU4OPVU5OPVU8CLVU9CLVUHVU?HZVUByVUCy}eVUPx-}fVU{2 ^ ^ MVUt` NVUDOVUD*PVUFFDQVUVRVUQ@SVUo TVUF^VVUhJ XVUFYVUG[VU\VUb9^VUcU_VUr9 `VUAaVU{.bVU}W cVUw4VUCLVUCLVUCLgVUn VUCLVUCLVUCLVUCLmVUFnVU}IoVUa VUCLVUCLVUCLVUCLVUCLVUCLVUCLwVUx xVUK\yVUPHVUOP{VUj |VU]K}VUn ~VU]VUC/$VUEݚVUFv ~VUOPVUX |VUCLVUGd VUHVU H4VU PƜuVUCLtVUCLVUq VUp VUl 5VUIg6VULVUCLVUCL:VUEN_;VUFF|gCLVU?CLVU@CLVUACLVUBCLVUCCLVUDCLVUF]VUGCLZ=CLZ=CLZ=NqZ= CLZ= CZ=CLZ=CLZ=v Z=CLZ=CLZ=CLZ=OP$Z=Kr%Z=I&Z=QQ%Z= CL*Z=#J,Z=$Y׭Z=%OP.Z=&L-Z='CLZ=(CLZ=+OPZ=-CL3Z=0rS4Z=2A{6Z=4@l7Z=5|8Z=6{s39Z=9rXc:Z=eys4;Z=fx@Z=iT?Z=iIlA@Z=jGiAZ=kIZ=lOPDZ=o{ EZ=qGFZ=rFGZ=sP Z=wMZ=xRc4Z=yLvfZ=zm- Z=}aZ=~@Z=kZY Z=h Z=yl Z=yN !Z=CL Z=CLZ=CLZ=].B Z=OPZ=NܻZ=UZ=EZ=t[ Z=ËZ=v*Z=CLZ=CLZ=CLZ=CLZ=CLZ=FLZ=IZ=IZ=v Z=H Z=wna Z=zF^ Z=N Z=sZ=FmZ=|5! Z=FZ=L Z=y Z=y Z= Z=DZ=LZ=p Z=q Z=`fZ=TZ=^Z=CLZ=CLZ=CLZ=CLZ=CLZ=OPZ=OPZ=CLZ=CLZ=-J{aZ=.IZ=/H"Z=0HXZ=2xfZ=4xf}eZ=Pc}fVU|L ^ ^ MZ=Ns NZ=PDkOZ=QD&PZ=SF1QZ=VVRZ=WQDuSZ=Xo۔ TZ=YExVZ=Zg XZ=\E-YZ=^Gb[Z=_Ր\Z=`UV ^Z=cdNb_Z=dr `Z=fAaZ=g{=qbZ=}ucZ=wW Z=CLZ=CLZ=CLgZ=n& Z=CLZ=CLZ=CLZ=CLmZ=FƌnZ=|oZ=` Z=CLZ=CLZ=CLZ=CLZ=CLZ=CLZ=CLwZ=B.xZ=K=qyZ=PW Z=OP{Z=h |Z=^}Z=r&~Z=]Z=C#Z=EDZ=}; ~Z=OPZ=Wt |Z=CLZ=GMpZ=HZ=HbZ=GJuZ=CLtZ=CLZ=q Z=p! Z=lƨ 5Z=Id|6Z=LtZ= CLZ= CL:Z=OI;Z=PZ=U?Z=I\@Z=GAZ=IZ=OPDZ=} EZ=H FZ=FGZ=PcZ=O Z=TLZ=N9Z=m Z=b|Z=@Z=k) Z=i\ Z=y1 Z=x !Z=CL Z=CLZ=CLZ=`x Z=OPZ=L=Z=^Z=EѕZ=t/ Z="Z=v$Z=CLZ=CLZ=CLZ=CLZ=CLZ=GZ=IZ=K)Z=vY Z=H Z=vI Z=y Z=RX Z= qfZ= FvZ={ Z=G1Z=LyZ=y#Z=yl Z=K Z=D4KZ=LZ=p Z="h3 Z=#`3Z=MT`Z=N^Z=OCLZ=PCLZ=QCLZ=RCLZ=TCLZ=WOPZ=XOPZ=ZCLZ=[CLZ=_JkZ=`I WZ=aHZ=bHPZ=egZ=hg}eZ=KP}fZ=| ^ ^ MZ=t NZ=DOZ=DPZ=FQZ=VRZ=Q$^SZ=of TZ=EVZ=g XZ=F1YZ=G[Z=Ր\Z=`.9^Z=d_Z=sr `Z=AFaZ=zW bZ=|pcZ=w8RZ=CLZ=CLZ=CLgZ=n Z=CLZ=CLZ=CLZ=CLmZ=FnZ=}goZ=`M9 Z=CLZ=CLZ=CLZ=CLZ=CLZ=CLZ=CLwZ=}GxZ=JyZ=QZ=OP{Z=iDD |Z=]cf}Z=o'~Z=]Z=BZ=E}Z=!Fv ~Z=#OPZ='XTF |Z=)CLZ=,G4Z=-H|Z=.H3Z=1NRuZ=4CLtZ=5CLZ=7s\ Z=8q7L Z=9l 5Z=Z=T?Z=IE@Z=FVAZ=IZ=OPDZ=~ EZ=HFZ=FGZ=PIZ=P3Z=UZ=P#3Z= k Z= ]TZ= @Z=k Z=i/3 Z=y Z=xP !Z=CL Z=CLZ=CLZ=]y Z=OPZ=KZ=`[Z=FaZ="t Z=#CSP Z=%u Z='CLZ=(CLZ=)CLZ=*CLZ=+CLZ=/GBZ=0J Z=1NuZ=4v Z=7G Z=9v( Z=:y] Z=;L Z=?p3Z=BFy`Z=m{in Z=nHZ=pMZ=sy#Z=ty1 Z=u@AZ=wDBZ=xK82Z=yp Z=|pH Z=}aZ=~XɚZ=^Z=CLZ=CLZ=CLZ=CLZ=CLZ=OPZ=OPZ=CLZ=CLZ=JWZ=IZ=HZ=HJMZ=yZ=y}eZ=#Zm-}fZ=7}̷ ^ ^ MZ=t NZ=COZ=DPZ=EQZ=V{RZ=QSZ=of TZ=E1VZ=gP XZ=F YZ=G<[Z=#\Z=X,^Z=f'_Z=sG `Z=AaZ={zbZ=}ucZ=wZ=CLZ=CLZ=CLgZ=nc Z=CLZ=CLZ=CLZ=CLmZ=F~$nZ=}oZ= `b5 Z= CLZ=4CLZ=5CLZ=6CLZ=7CLZ=8CLZ=9CLwZ==xRxZ=>IyZ=?QkZ=@OP{Z=Cg |Z=E^}Z=Fqp~Z=H]Z=LBZ=MEb;Z=Pc ~Z=ROPZ=UXTF |Z=WCLZ=[G#Z=\HSaZ=]H-Z=`HK}uZ=bCLtZ=cCLZ=fr Z=gq=q Z=hl 5Z=jH56Z=kLZ=mCLZ=nCL:Z=O;Z=LaZ= TK?Z= I*@Z= (FAZ= )Iw Z= )OPDZ= ,Fv EZ= .HFZ= /FGZ= 0P,9Z= 4SZ= 5YgZ= 6RZ= 7j Z= :bZ= ;@Z= ii Z= ?xo Z= @xt !Z= CCL Z= DCLZ= ECLZ= G`d Z= JOPZ= KMNZ= LaZ= MFZ= Pt[ Z= RZ= St+Z= UCLZ= WCLZ= XCLZ= YCLZ= ZCLZ= ]GAZ= ^J1Z= _OZ= cu} Z= H* Z= vW Z= y]w Z= RA Z= nZ= FxxZ= {/9 Z= GZ= MZ= y#Z= x Z= @&Z= DQNZ= K\WZ= p^ Z= kb" Z= a&fZ= VfZ= ^Z= CLZ= CLZ= CLZ= CLZ= CLZ= OPZ= OPZ= CLZ= CLZ= JDZ= IsZ= H@Z= HCZ= gZ= g}eZ= RMC}fZ=f} ^ ^ MZ= t NZ= CtOZ= DPZ= E_QZ= VdPRZ= PSZ= o TZ= EuVZ= g{ XZ= F!YZ= G?[Z= 8\Z= \>^Z= fb_Z= !s `Z= "AaZ= $|bZ= &*cZ= 'z4Z= )CLZ= *CLZ= +CLgZ= Un% Z= WCLZ= XCLZ= ZCLZ= [CLmZ= ^Fl nZ= a}c4oZ= b__ Z= dCLZ= eCLZ= fCLZ= hCLZ= iCLZ= jCLZ= kCLwZ= nxxZ= oJyZ= pN Z= rOP{Z= ug |Z= w_6Y}Z= xqǂ~Z= z]Z= }BHZ= ~E|Z= c ~Z= OPZ= W< |Z= CLZ= FhZ= H1ZZ= H'Z= KuZ= CLtZ= CLZ= sP Z= q Z= l 5Z= HA<6Z= L~Z= CLZ= CL:Z= O/;Z= I' Z= IiNZ= EZ= xdZ= EVZ= OsZ= IZ= M Z= r Z= M Z= EVZ= SzZ= vZ= MMZ= L|Z= o^ Z= M^Z= BWZ= CLZ= EZ= tZ= OPZ= CLZ= CLZ= CLZ= CLZ= CLZ= CLZ= CLZ= NgZ= KZ= YgZ= GHZ= GHZ= MHZ= CLZ= CLZ= CLZ= CLZ= CLZ= CLZ= CLZ= ]Z= CLZ= CLZ= CLZ= NZ= CLZ= CZ= CLZ= CLZ= u Z= CLZ= CLZ= CLZ= OP$Z= K/q%Z= I}&Z= IZ= CL*Z= I,Z= Z`Z= OP.Z= MνZ= CLZ= CLZ= OPZ= CL3Z= Hq_4Z= JA{6Z= Mpg7Z= Nf8Z= Ohff9Z= QrP:Z= Sv;Z= ToZ= WTD?Z= XIU@Z= YF.AZ= ZI_Z= [OPDZ= \@EZ= ]H FZ= ^FtGZ= _P9Z= cNC3Z= dSZ= eN9Z= fjo8 Z= iaZ= j@Z= lkd Z= mi| Z= nx Z= ox:D !Z= rCL Z= sCLZ= tCLZ= v^D Z= yOPZ= zNZ= {alZ= |Ff&Z= t[ Z= ]eZ= sUZ= CLZ= CLZ= CLZ= CLZ= CLZ= G8Z= JNZ= P;^Z= u6 Z= Iw Z= vY Z= yl Z= L" Z= oٚZ= FxxZ= z Z= Gh?Z= NZ= y#Z= x Z= @QZ= DgZ= JFZ= p3 Z= jw Z= a3Z= T`Z= ^Z= CLZ= CLZ= CLZ= CLZ= CLZ= OPZ= OPZ=CLZ=CLZ=J/Z=HIZ=HZ=HZ=fZ= f}eZ= iv}fZ= ~pp ^ ^ MZ=:tTg NZ=E$PZ=?ENbQZ=BVIRZ=CPSZ=Do TZ=EExVZ=Fh XZ=HFYZ=JG~&[Z=Kc\Z=tZwx^Z=wc_Z=xs `Z=y@aZ={{ǯbZ=}~=qcZ=~x.Z=CLZ=CLZ=CLgZ=m% Z=CLZ=CLZ=CLZ=CLmZ=FcnZ=}@oZ=_{c Z=CLZ=CLZ=CLZ=CLZ=CLZ=CLZ=CLwZ=y\xZ=IpyZ=OpZ=OP{Z=h33 |Z=^}Z=p~Z=]Z=BZ=E.Z=U ~Z=OPZ=WD |Z=CLZ=FߨZ=H Z=HZ=N4uZ=CLtZ=CLZ=tj Z=q Z=l 5Z=H,b6Z=LZ=CLZ=CL:Z=N;Z=FiOZ=z PZ=Z=T?Z=H@Z=F_AZ=IGKZ=OPDZ=AEZ=HFZ=Fr5GZ=PNZ=PS3Z=UZ=PfZ=hO Z=]YZ=@eZ=k Z=i| Z=x Z=x !Z=CL Z=CLZ=CLZ=_d Z=OPZ=O*Z=bKZ=F@wZ=t>u Z=bAZ=rZZ=CLZ=CLZ=CLZ=CLZ=CLZ=G2Z=J`Z=OZ=ua Z=H Z=vR Z=y] Z=P Z=p9Z=FvZ=z? Z=G]Z=O`Z=y#Z=xe Z=@gvZ=D|Z=JZ=p Z=1hL Z=3`Z=4TZ=5^Z=6CLZ=7CLZ=8CLZ=:CLZ=;CLZ=>OPZ=?OPZ=ACLZ=CCLZ=FJZ=GHZ=HHZ=IG}Z=Lg{Z=Og{}eZ=l~}fZ=Q ^ ^ MZ=js NZ=COZ=E1PZ=EmQZ=V2RZ=P~SZ=o TZ=EVZ=h~ XZ=F YZ=G}-[Z=K\Z=[al^Z=boW_Z=s `Z=@TaZ=|bZ=~cZ=xZ=CLZ=CLZ=CLgZ=m Z=CLZ=CLZ=CLZ=CLmZ=FSnZ=}<oZ=_fg Z=CLZ=CLZ=CLZ=CLZ=CLZ=CLZ=CLwZ=CaHxZ=K=qyZ=NzZ=OP{Z=h |Z=[ݭ}Z=o~Z=]Z=BZ=EZ=  O ~Z= OPZ=WD |Z=CLZ=FZ=HZ=HZ=H)uZ=CLtZ=CLZ=ty Z= q Z="l< 5Z=$H+z6Z=%LZ='CLZ=(CL:Z=+N0;Z=.PFfZ=EZ=xZ=@ Z=OZ=IBZ=M Z=r Z=M Z=&EVZ='LvZ=)vZ=*LZ=+LiZ=.o^ Z=0M^Z=1@@Z=3CLZ=6EZ=7v-Z=8OPZ=:CLZ=CLZ=?CLZ=@CLZ=ACLZ=DPgZ=ELlZ=FYgZ=GJHZ=HIpZ=ILZ=LCLZ=MCLZ=NCLZ=OCLZ=PCLZ=QCLZ=RCLZ=S]Z=TCLZ=UCLZ=WCLZ=XNZ=ZCLZ=\CZ=^CLZ=_CLZ=y1 Z=CLZ=CLZ=CLZ=OP$Z=K%Z=I&Z=Q5Z=CL*Z=I,Z=[Z=OP.Z=NZ=CLZ=CLZ=OPZ=CL3Z=q4Z=A{6Z=o7Z=m38Z=uL9Z=qW:Z=rY;Z=p&gZ=Tw?Z=H:@Z=FAZ=I+Z=OPDZ=AEZ=H#FZ=FvGZ=P]Z=DٚZ=HZ=D\Z=hU Z=bZ=@hZ=l Z=i Z=xWc Z=w !Z=CL Z=CLZ=CLZ=^ Z=OPZ=OZ=cZ=FZ=t Z=vZ= r8Z= CLZ= CLZ=CLZ=CLZ=CLZ=G.Z=JmZ=IZ=u' Z=I7w Z=u Z= x Z=!L/ Z=$r3Z='FvZ=Rz Z=SEZ=UPXZ=Yy;Z=Zx+ Z=[@RZ=\DSZ=]KMZ=^o+ Z=am Z=c`Z=dUZ=e^ Z=fCLZ=gCLZ=hCLZ=jCLZ=kCLZ=nOPZ=oOPZ=pOPZ=rCLZ=vJ jZ=wHZ=xHZ=yGZ={{Z=|{}eZ=V*3}fZ=e` ^ ^ MZ=tTg NZ=COZ=EWPZ=ERQZ=V#RZ=PSZ=o TZ=FVZ=i XZ=EYZ=Ga[Z=а\Z=]g^Z=b%_Z=t `Z=@aZ=}W bZ=~zcZ=x>Z=CLZ=CLZ=CLgZ=mO Z=CLZ=CLZ=CLZ=CLmZ=F>nZ=}s4oZ=_N Z=CLZ=CLZ=CLZ=CLZ=CLZ=CLZ= CLwZ=#{ xZ=$MyZ=%NǮZ=&OP{Z=)i33 |Z=,]X}Z=-pf~Z=/]Z=2BZ=3F1FZ=6xP ~Z=8OPZ=CLZ=AFTZ=BG1Z=CH\Z=FQZuZ=ICLtZ=JCLZ=Lt Z=Mr Z=Nl 5Z=QG6Z=RLZ=|CLZ=}CL:Z=O;Z=OZ= T4?Z= HG@Z=FAZ=JmZ=OPDZ=AEZ=G8FZ=FvGZ=PxZ=HLZ=LZ=H&gZ=h)% Z=` Z=@Z= l& Z=!j ^ Z="x+ Z=#w !Z='CL Z=(CLZ=)CLZ=+_ [ Z=-OPZ=.OZ=/c-Z=0EgZ=4tj. Z=6Z=7qZ=9CLZ=:CLZ=;CLZ=CLZ=AG(Z=BJxZ=CLq%Z=Ft fHٚ ftU fv f NQ f n3fFufz$ fC;AfQ4$fy;fwt f@fDfJtfof f!o f#`f$Vf%^ f&CLf'CLf(CLf*CLf+CLf.OPf/OPf0OPf3CLf6Jkf7HDf8Hf9H7fdg =fgg =}eZ=6]-}fZ=L[ ^ ^ Mft NfCNOfE14PfE:QfV(RfPSfo TfF$jVfi XfEYfGV>[fp\fZ^fc_ft* `f@eaf}{bf~gcfw >fCLfCLfCLgfm fCLfCLfCLfCLmfFnf}of`F fCLfCLfCLfCLfCLfCLfCLwfQxfMyfRfOP{fh |f_&}fnr~f]fBfF Sf~ ~fOPfX |fCLfF̜fGfHf,Fvuf/CLtf0CLf2u1 f3r\ f4m 5f7G6f8Lf:CLf;CL:f=N;f@Ly<fANTx?fBCpfDOPfFCLBfHAlCfINd$DfJBEfLXFfMeHGfNO34HfOKj LfPVMfQEzNfSjOfU{ PfVz$ QfWIbRfYLlTfZIbUf[JVf]HYf^OPf_CLYfaGCZfbFfdOPffCL]f@۶^fe~KfOPfCLafVYfOPfCLdfFfOPff^fCLhfBifPlfOPkfQ lf\33mfZ{nfkq ofapf^ qfWz rfYp sfMdtfLu]ufFYfOPfCLxfFyfQzfIwfOPfCL}fI~fI5fHSfG^fOP~fCLfDYfjb fixB fC:fHؒfEfn fk. fI/fEfxfEVfO;~fI6/fM f r fM fEVfSGfu9fM fLfo^ fL/cf@LfCLf!EŞf"vg f#OPf%CLf&CLf'CLf(CLf*CLf+CLf,CLf/NgfXLfYYgfZL\f[H\)f\Lf^CLf_CLf`CLfaCLfcCLfdCLfeCLff]fgCLfhCLfiCLfkNflCLfoCfqCLfrCLfty@Y fwCLfxCLfyCLf{OP$f|Ji%f}I;&fM|fCL*fIM,fZ7fOP.fNfCLfCLfOPfCL3fq[4fA{6fq7fr8fb@9fpe~:frg;fqFf<fqFffOP>fT?fHU@fF|AfM>NfOPDfB yEfG{FfFsGfPfFfKfFlfg faf@T!fl& fjD fx fwQ? !fCL fCLfCLf`b fOPfP]fe#fF/fs fBfqhf!CLf"CLf#CLf$CLf%CLf(Gf)Jpxf+Gwf.t4 f1I. f3s f4v f5P7. f8rYf;Ftf?zT f@B!fBR _fEy#fFw fG@fHDfKKkfNo7 fQr fRa fSYfT^ fUCLfWCLfXCLfYCLfZCLfOPfOPfOPfCLfIfHfH~fH(fg(fg(}efb)}ff2@)^ ^ Mft7K NfCOfE/PfEG!QfV *RfP1Sfouq TfF:BVfiF XfElYfG.U[fp\f\x^fd_Z_ftG `f@af}ubf~ cfx=qfCLfCLfCLgfm fCLfCLfCLfCLmfEnf}of`M9 fCLf CLf CLf CLf CLfCLfCLwf34xfMGyfO\fOP{fi |f^ .}fpH9~f]f!Bv4f"F=fN~ ~fPOPfSY |fUCLfXFfYGf[H\f^Muf`CLtfaCLfcw fesc ffmi 5fhGE6fiLyfkCLflCL:foN;frI?<fsN?ftCwfvOPfxCLBfzAeCf{M|Df|BEf~YFfbGfGHfK LfeMfcǯNfD >Of{ Pf{ QfIiNRfL[wTfIJUfJt\VfH0fOPfCLYfGZfEfOPfCL]f@gv^fco%fOPfCLafUsfOPfCLdfF[GfOPff^fCLhfB=ifWfOPkfQ lf_mf]nfnxR ofaCpf[ qfUB rfW3 sfMtfLrufFfOPfCLxfFyfP%zfIiNfOPfCL}fI~fI^fHʈf GSf!OP~f#CLf%Df(j> f)i f*Cf+H f,EWf-n% f.kK f/If1Ef3xf4@ f7Of9I%f:M f=r f?M fBEVfCP*fEu9fFM fGLXfJo^ fLL#fOEʘfyCLf|Ef}wf~OPfCLfCLfCLfCLfCLfCLfCLfNgfG6gfYgfMHfH\)fMGfCLfCLfCLfCLfCLfCLfCLf]fCLfCLfCLfN!fCLfCTfCLfCLfw fCLfCLfCLfOP$fJ%fI&fKfCL*fI0,fZfOP.fNmfCLfCLfOPfCL3fqK4fA{6fg7fb8fi9fp:fe3;fhs3<fd9fOP>fT?fHg@fFgAfO)fOPDfA,EfGFfFo{GfP[fF<f K&gf F f g+ fbhf@0fl5h fjD fwS fw !f@CL fACLfBCLfD] fFOPfGPYfHd-fJF fMs fOμfPpĩfRCLfSCLfTCLfVCLfWCLfZGf[Jlf\Of_t fbHf fds ffu fgK fjo3fmFsfpz7 frAfsRfvy#fxw fy@fzDVf{Ifouq fos3 f`ٚfX f^ fCLfCLfCLfCLfCLfOPfOPfOPfCLfIZfHfHƐfH&fg33fg33}efOTܮ}ffc@ߴ^ ^ Mft( NfCOfE|Pf E Qf V^Rf PSfo TfFHVfh XfEYfG)w[f)\fV?J^ff_ft `f@1af~bfqcf y34f"CLf#CLf%CLgf(m f*CLf+CLf,CLf-CLmf0E؛nf4} of5`w1 f7CLf8CLf9CLf:CLf;CLfCLwfA{xfBJyfCOaHflOP{foi |fq\Ħ}frr1X~fu]fxBmfyFf|{= ~f~OPfXE |fCLfFfGfGfIĚufCLtfCLfws fs( fm 5fGm6fLjofCLfCL:fMSA;fF<fO?fCwfOPfCLBfAlCfLDfBEfZFfkfgGf]\)HfKg LfA(MfzHNfSOf|& Pf{ QfIwRfLCTfI0UfJ`VVfH mfOPfCLYfGZfEfOPfCL]f@^fbfOPfCLafTfOPfCLdfFEfOPff^fCLhfB5ifVfOPkfQe6 lf gmf _=qnf kW of6aډpf8\ qf9V3 rf:X sf;MstfOPf@CLxfBFyfDNۈzfEI6fGOPfICL}fKI~fMIfNHKfOGDfPOP~fRCLfTDfVj fWi& fYD4KfZHf[Ef\nB f]k) f^If_EfaxfdEVfeOyfgIfhM fkr fmM fEVfLvfu9fM fL+fo^ fL fEʘfCLfEfuffOPfCLfCLfCLfCLfCLfCLfCLfNgfK9f^4fJHfHfP >fCLfCLfCLfCLfCLfCLfCLf]fCLfCLfCLfNfCLfCܪfCLfCLfu f CLf CLf CLf OP$f J%f I;&f I?f CL*f I,f Z<f OP.f Ndf CLf CLf OPf CL3f qE*4f A{6f !oL7f "is38f #p9f %o\:f 'mf;f (lf<f )nf *OP>f +T?f ,HMw@f -FAf .Pf /OPDf 0AJEf 1GFf 2Fi"Gf 3Oxf 7Ivff `Nf aHf bf f e^?f f@ f hlD f ijp f jw f kvܹ !f nCL f oCLf pCLf sa f uOPf vQOf wd5f xF6Sf {sc f ||^ f ~pf CLf CLf CLf CLf CLf GSf Jgbf J֕f tj. f I f s f up f S f r#3f F_f z f AUf SW f y;f w_ f Af Df K?mf oXB f sȉ f `ٚf YYf ^ f CLf CLf CLf CLf CLf OPf OPf OPf CLf I٢f Hf Hf H.2f |33f |33}ef |W}ffAN^ ^ Mf 0t Nf 2COf 3EhPf 5DQf 8U_Rf 9PRSf :ouq Tf ;FVf EטYf @G[f A\f B^^f Ee_f Ftr `f G@uaf I~bf KA(cf LzGf NCLf OCLf PCLgf SmA f UCLf VCLf XCLf YCLmf \E5nf _}of `_J f bCLf cCLf CLf CLf CLf CLf CLwf }(xf NLyf P4f OP{f iUV |f ^L}f p~f ]f BW"f F$Jf } ~f OPf Xb |f CLf Ff G/f Hf Kuf CLtf CLf y1' f rj f m`B 5f Gҥ6f Lc&f CLf CL:f O;f P<f Oir?f Cf OPf CLBf A Cf TKDf BEf SGFf kGf WHf K; Lf ozMf lNf KOf |oQ Pf {a Qf IRf L3Tf IUf JM9Vf Hf OPf CLYf G )Zf EWf OPf CL]f ' ^f af OPf CLaf #T Uf $OPf &CLdf (F/f *OPff T^f UCLhf WBnif XUf ZOPkf [Qi lf \d33mf ]anf _m of aa|pf c^G qf dT{ rf fW=q sf gMtf hLcuf iFff jOPf lCLxf nFiyf oLzf pI/jf rOPf tCL}f vIk~f xHf yHf zG8f {OP~f }CLf D|f j f j ^ f DnQf If Ef n`* f k_ f I f Ef xf EVf OPf I?Cf M f r f M f EVf Qjf u9f M f Luf o^ f L&f @Lf CLf E:f tf OPf CLf CLf CLf CLf CLf CLf CLf X4f Pff `f K=qf Hf Lf CLf CLf CLf CLf CLf CLf CLf ]f CLf CLf CLf NVf CLf "Cf $CLf %CLf 'tY f *CLf +CLf ,CLf .OP$f 0J{%f 0IV&f 3HHf 6CL*f 9H,f :[$f ;OP.f CLf >CLf AOPf CCL3f FqE4f HA{6f Ji7f Kff8f LdY9f On:f Qi,;f Rl<f Sjyf TOP>f UTOq?f VH7@f WFAf PSf OPDf @Ef GFf FbGf Of Ff KVff FYf fX f cEf y f lD f j f w| f vt !f CL f CLf CLf \ f OPf Q5f dZf F2f rn f f pǁf CLf CLf CLf CLf CLf GEf JXf IDf t>u f I f s)~ f uS[ f K( f q f F9f { f A}*f Ttf y#f wB f A+f Df Kof o,| f nf f a f X f ^ f CLf CLf CLf CLf CLf OPf OPf OPf CLf IHf Hf H(f H/f g{f Hg{}ef T}ff A^ ^ Mf `s Nf bCqOf cEJ)Pf dDpQf gU_Rf hP]Sf jo,| Tf kE1Vf lgP Xf nEYf oF[f po\f qYl^f ub+P_f vt `f w@af y~zbf zcf {yaHf }CLf CLf CLgf ma f CLf CLf CLf CLmf Enf }Fgof ^ f CLf CLf CLf CLf CLf CLf CLwf @#xf Nyf Oqf OP{f h |f ^Z}f o7~f ]f B*Uf F94f ~ ~f OPf X. |f CLf Ff Gh f Hf OeufCLtfCLf|=q fr fm 5fGP-6fLCDfCLfCL:f T;f#Q5<f$O&?f%Cf'OPf)CLBf+ACf,VDf-BEf/Z Ff0m34Gf1gQHf2Kv Lf3oMf4kHNf5K>Of8| Pf9{ Qf:I{RfJ6yVf?H"&f@OPfBCLYfDG&"ZfEEzfGOPfICL]fKr ^fuefvOPfxCLaf{TNf|OPf~CLdfFfOPff^fCLhfBrdifUfOPkfQMu lfemf^\nfn+ ofapfa qfX rfYk sfMtfLufFN=fOPfCLxfFTyfK4zfIwfOPfCL}fI~fH0fHvfG2sfOP~fCLfDJfkQ fjD fD_fIfEVfn fk fI fEfxdfEVfOsfI~fM fr fM fEVfRrfu9fLfLfo^ fLf@LfCLfEfu'fOPfCLf CLf CLf CLf CLfCLfCLfNgfLYfKf?M(fACLfBCLfCCLfDCLfFCLfGCLfHCLfI]fJCLfKCLfLCLfNNfPCLfRCfTCLfUCLfWwt fZCLf[CLf\CLf^OP$f_J5%f`IE&fcQvffCL*fhH,fi[+(fjOP.fkNfmCLfnCLfqOPfsCL3fvp4fwA{6fv337fm8fiL9fn<:fjl;fhL<fdfOP>fT2?fH(@fFAfRfOPDfA EfGFfFYGfOf@fD3f@fe)H f]f_f2 fla7 fjH fwQ? fvh. !fCL fCLfCLf_ fOPfQ fd0fE^UfrE f׻fpjfCLfCLfCLfCLfCLf Gf JOf KXft fI&f fr fua fP fnfF f z f"A5af#TNf&y#f'wl f(AAhf*DXf,Kf/oK f2tw f3a6ff4YIf5^ f7CLf8CLf9CLf:CLf;CLf>OPfhOPfiOPfkCLfnIfoH5fqI frH8,fug{fxg{}efY~}ffC^ ^ Mft7K NfC(OfDPfDQfURfP;Sfn TfEn\Vfgc XfEYfF[f)\f]^fbX_fu `f@]af}Hbf|#cfwfgfCLfCLfCLgfm fCLfCLfCLfCLmfEynf}6gof^ fCLfCLfCLfCLfCLfCLfCLwf~ xfK>yfTfOP{fgDD |f]}fpI~f]fAfF-f~' ~f1OPf4V |f6CLf9FUf;GJYffT~?fHj@fFvAfSfOPDf@0EfGpxFfFMGfORfzS4f@fzS4fe, fcf~c fla7 fkQ fw fv- !fCL fCLfCLf^a f&OPf'PXf(eMf)Ef,q f-@B f/pf2CLf3CLf4CLf5CLf6CLf9Gf:J:f;M!f?sl fBI. fDr fEuD fFL@- fIqIfLE"fOz$ fR@~OfST›fVy#fWvI fXAOfYDfZJ˽f\n f_r7w fapfX f^ fCLfCLfCLfCLfCLfOPfOPfOPfCLfIfH^fI-fH@Tf|f|}ef-Xb}ffECUI^ ^ MfsNi NfCOfDSPfDGQfUbRfPgSfn TfDdVfe XfE8YfFT[f+\f[^fc_fuq `f@6af|\bf{zcfwfCLfCLfCLgfm fCLfCLf CLf CLmf Es[nf}s4of] fCLfCLfCLfCLfCLfCLfCLwf@xfKyf P >f!OP{f$f |f&^'}f'q~fQ]fTA6fUFfY7 ~f[OPf^U |f`CLfcF9fdG*ffG fiP<ufkCLtflCLfn|= fpqbN fqm 5fsF6ftKډfvCLfwCL:fz[~;f}O<f~P ?fC:fOPfCLBfAqCfUDfBEfY >FfcGfwGHfJ LfG(MfC34Nf`=qOf}I Pf|` QfIRfKKTfH™UfJVfGfOPfCLYfG4ZfElfOPfCL]f~ ^fhfOPfCLafU~fOPfCLdfEfOPff^fCLhfBEifSlfOPkfQ! lfcmf]Rnfn33 ofa@pf] qfW=q rfW sfM&tfLĥufF4&fOPfCLxfF(yf Ozf!Hؒf#OPf%CL}f'IS~f)H+f*H<f+Gf,OP~f.CLf0Cf3kh f4ju f5DSf6I f7Ef8n f9l3 f;IfxfAEVfBOsfDI~fEM fHr fJM fMEVfNLvfPu9fQK-fRLf}o^ fKwf@LfCLfEufu'fOPfCLfCLfCLfCLfCLfCLfCLfNgfNfXfJHfKfM >fCLfCLfCLfCLfCLfCLfCLf]fCLfCLfCLfNfCLfCfCLfCLfw3 fCLfCLfCLfOP$fJ%fIk&fL&xfCL*fH,f[+(fOP.fO<fCLfCLfOPfCL3fpH4fA{6fkff7fVٚ8fXY9fm:fgf;fg<fcfOP>fTne?fG!@fFg5Af Tf OPDf A"Ef GYFf FB$GfO#f@gfE f@fcy fbf}n fl~k fkQ fEvI fFu !fICL fJCLfKCLfM]b fOOPfQNHfRdwfSDFfVq+ fXfYpf[CLf\CLf^CLf_CLf`CLfcGEfdJ%feJffhs fkI"" fn{/ fow fpMu fsoffvElfyzcz f{Sf|U?fy fv fAefDfK fn fxf fa<fZ)f^ fCLfCLfCLfCLfCLfOPfOPfOPfCLfIfHfIHWfHDfgQfgQ}efX[M}ffnC^ ^ Mfsj NfCROfDmPfD,QQfURfPSf TfDCVfd XfEpYfF[f`-\f ^^f#d_f$uG `f%A33af'{.bf({.cf)wf,CLf-CLf.CLgf1mEe f3CLf4CLf5CLf6CLmf:Fnf=}S4of>\I f@CLfACLfBCLfCCLfECLfFCLfGCLwNBLxNO{yNQN OP{N d |N_\}Nq,V~N]NAHNF1NFv ~NOPNU |N CLN#Fo6N%FN&GLN)GOuN+CLtN,CLN/~ P N0q N1m 5N3E6N4KN6CLN7CL:N:]IO;NeMU<NfQ?NgCNiOPNkCLBNmACNnTqDNoBZENqVffFNre >GNswHNtJi! LNuFMNvC{NNw`ONz} PN{|5! QN|I/RN~KTNHUNIVNG9NOPNCLYNG;ZNE]NOPNCL]N~OI ^Nh[NOPNCLaNUNOPNCLdNENOPfN^NCLhNAiNRNOPkNQ lNc\mN]ffnNl޸ oNaOpN] qNV\ rNWz sNMwXtNL uNFNOPNCLxNFyNPzNHNOPNCL}NI/j~NHNHNGNOP~NCLNC:Nk_ Nj ND4KNI/jNETNn Nl5h NINENy)NEVNOBoN,H@N-M N0r N2M N5EVN6SzN8v8N9K4N:L N=o^ N?KNA@LNCCLNFE:NGv%NHOPNJCLNKCLNLCLNMCLNNCLNOCLNPCLNSQNTPffNUYgNWGHNXQ=qNYGHN[CLN\CLN]CLN^CLN_CLN`CLNaCLNb]NdCLNeCLNfCLNgN#8NCLNCNCLNCLNw NCLNCLNCLNOP$NJK%NI&NINCL*NH ,N[KrNOP.NO|4NCLNCLNOPNCL3NpB4NA{6Nwٙ7N\ff8Ng339NmN;:NeY;Ni@<Nb4NOP>NTso?NGN@NFrANTNOPDNAuENGuFNGwGNONAINE|NANcJ N_ N}d Nl Nk. Nv NuZ !N CL N CLN CLN^ NOPNMu3NezNE?NpӖ NNpvNCLNCLN CLN!CLN"CLN%G N&J jN'N*pN*srb N-I NXq NYt NZP5 N]o3N`ENczT Ne@NfU-Njy Nkv NlA{NmDZNnJFNon Nrvff NtaNuY3Nv^ NwCLNxCLNyCLN{CLN|CLNOPNOPNOPNCLNINHNI]8NHC NfNf}eN]x}fN/D'^ ^ MNr NNCONDPNC9QNU0RNPFSN@TNCVNd4 XNE{YNF[Nದ\NV{^Nd@_Nuc `NBaNzGbNycNv*NCLNCLNCLgNmSy NCLNCLNCLN CLmN$GLnN'}oN(\  N*CLN+CLN,CLN-CLN.CLN0CLN1CLwN4xN5L#yN6O#N7OP{N:d |N<^\}N>qH~N@]NCBTNDFJNG~Ü ~NIOPNLR ( |NOCLNRFVNSFVNTGNWLuNYCLtN[CLN~ Nq+ Nm~ 5NE 6NKfNCLNCL:N];NKF<NQ}?NC:NOPNCLBNACNSNDNBZENa{FNfRGNspHNJ5 LNGGMNCQNN`=qON}h PN|& QNIkRNKTNHUNIQVNG̶NOPNCLYNGCZNEV[NOPNCL]N} ^NgNOPNCLaNUNOPNCLdNElNOPfN^NCLhNAiNQvNOPkNP lNamNWnNk oNa1{pN` qNY rNZ sNMb^tNLuN FN OPN CLxNEyNOp^zNH$NOPNCL}NI~NHhNHNF'NOP~NCLNC4N!k N#j NLDVNMI=NNENOoK NPlo NQINRENTyDNWEVNXONZIgN[M N^r N`M NcEVNeRNgvNhK6NiL Nlo^ NnKNo@LNqCLNtENuvNvOPNxCLNyCLNzCLN{CLN}CLN~CLNCLNOgNG6gNXNM(NH\)NMffNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN UNCLNCNCLNCLNvI NCLNCLNCLNOP$NJ%NIf&NJ4;NCL*NHt,N[NOP.NOyNCLNCLNOPNCL3Np4NA{6Nh7NQs48Nd9Nl:Nky;Ni<NhgNOP>NU?NG@NFVANU,dN OPDN!A EN"G0FN#F2GN$ON(xN)@N*zN+bן N/ciN0} N1l8 N2k=" N3vv N4u !N7CL N9CLN:CLN<]K N>OPN?NZN@eMNAENDpPL NFx[NHphZNJCLNKCLNLCLNMCLNNCLNzG N{IN|INsF NI Np Nt NK NrNEiMN{/9 NC&/NV_Ny#Nvv NALNE NK?mNn`* Nw3 NaNYfN^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNIg5NHNIlNH>NyfNyf}eNFW(}fNE6J^ ^ MNr NNCOND4PNCQNUtRNPSNATNC1VNcm XNEPQYN F[N \N _n^Ne `_Nu `NCaN{ǯbNz8RcNx\*NCLN@CLNACLgNEm NGCLNHCLNICLNJCLmNMGnNP}IoNQ\ NTCLNUCLNVCLNWCLNXCLNYCLNZCLwN]CqxN_LyN`ONaOP{Ndc |Nf`w}Ngtg~Ni]NmBNnFSNq~OI ~NsOPNvQY@ |NxCLN{F- NF{NG!NN4uNCLtNCLNR Np Nmc 5ND06NK,NCLNCL:N];NJ <NQ ?NC:NOPNCLBNACNS.DNB{ENc=qFNbGGNvpHNI LNG(MNCQNN`=qON~ PN|= QNIkRNK\TNHoUNIДVNGNOPNCLYNG4ZNE2N OPN CL]N }: ^NfA)NOPNCLaNU8NOPNCLdNEGNOPfN^NCLhN!A iN"PJN$OPkN%PC lN&b33mN'WnN(n&f oN+a#pN-_ qN.Yk rN/YR sN0MHtN1LuN2FN3OPN5CLxN7EyN8MzN9HN;OPN=CL}N?Hؒ~NAHPNCGݣNlFݱNmOP~NoCLNqCi(Nsk NtkQ NuDNwI=NxFRNyB Nzl N{IN|EN~xNEVNOPPNI(NM Nr NM NEVNPNu9NKNLNo^ NKNEʘNCLNENu'NOPNCLNCLNCLNCLNCLNCLNCLNO<NMS3NYgNKNJGNLNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN#NCLNC$NCLNCLNxo NCLNCLNCLNOP$NJk%NI*&NQ5rNCL*NHY,N[V5NOP.NOYN CLN CLN5OPN6CL3N9p4N;A{6N>`f7N?QL8N@hٙ9NBl:NDc;NEe<NFaYNGOP>NHTb?NIG@NJFRTANKURNLOPDNMAVxENNG"QFNOF)GNPONT@vfNUD3NV@NWbi NZ]WN[| N]ll N^kZY N_vK N`u65 !NcCL NdCLNeCLNg` NjOPNkPQNldNmDNo NIbNp\NCLNCLNCLNCLNCLNG NINIcNs T NI Np Nt[ NSB2 NpNE>Nz NDhNWNy#NvY NANE#NLjNn4a Nt N`fNZ#3N^ NCLNCLNCLNCLNCLN OPN OPN OPN CLN IRTN HN I~N H;N hpN hp}eN\y}fNEs+^ ^ MN +r NN -CON .D/PN 0CQN 3UZ`RN 4PSN 5ph TN 6C~VN 7c^ XN `E YN cFh[N d \N eV^N hdNb_N iu `N kCaN l{\bN m|cN oyQN qCLN rCLN sCLgN vl6 N xCLN yCLN {CLN |CLmN GnN }c4oN \  N CLN CLN CLN CLN CLN CLN CLwN A >xN IyN QkN OP{N cUV |N ^- }N q~N ]N CN F$JN ~z ~N OPN T- |N CLN FN FxCN G!N IuN CLtN CLN \ N p N l< 5N Dg6N JN CLN CL:N ];N H<N Ra?N CN OPN CLBN AqCN R'DN BvEN efgFN bHGN H=qHN I] LN HMN (CQNN )`RON ,~OI PN -}I QN .IRN 0KcTN 1HP(UN 2IaVN 3GN 4OPN 6CLYN 8G&"ZN 9E N ;OPN =CL]N ?|ƚ ^N @dN AOPN CCLaN FTN GOPN ICLdN KE*N MOPfN O^N PCLhN RAliN SON UOPkN VP2 lN WamN YWnN Zj oN \`pN ^^8R qN `Y) rN aXk sN bM06tN cLuN EN OPN CLxN EyN KzN H]N OPN CL}N Ha~N H<N GCN FaN OP~N CLN C'N l5h N kK N D_N IL\N FN B N ll N IN EN xN EVN Oe!N I~N M N r N M N EVN LvN uN K#N L7N o^ N KN EʘN CLN EN w`MN OPN CLN CLN CLN CLN CLN CLN CLN Q3N G6gN YgN LQN HRN M >N CLN CLN CLN CLN CLN CLN CLN ]N CLN CLN CLN NN CLN C N !CLN "CLN $y N 'CLN (CLN )CLN +OP$N UJj%N VI&N XN0 N [CL*N ^HZ,N _\DWN `OP.N aON cCLN cCLN fOPN hCL3N kpa@4N mA{6N ou&g7N pqٚ8N qo9N tl1:N vc@;N wf<N x`gN yOP>N zT?N {G@N |FHWAN }UcN ~OPDN AEN GFN FGN ON ~LN CPN ~9N a& N cnEN | N l9 N kw N v N tY !N CL N CLN CLN [ N OPN PVN fN E%N o۔ N ̲XN pNN CLN CLN CLN CLN CLN G N I^N LȐN r N I33 N p3 N s N Kce N nlN EN zF^ N E[N W)N y N vW N A"N EN J˽N !m N $zL N %b,N 'ZN (^ N )CLN *CLN +CLN ,CLN .CLN 1OPN 2OPN 3OPN 5CLN 8I:N :HN ;IN 5N D06N JcN CLN CL:N \;N Gy<N Ru?N C~N IOPN KCLBN MAqCN NPDN OBo$EN Q_ffFN RbGN SZHN TI LN UGMN VCpNN W`zON Z~z PN [}I QN \IRN ^Kv]TN _H3UN `IVN aGi~N bOPN dCLYN fGZN gDN iOPN kCL]N m|} ^N ocN pOPN rCLaN uTUN vOPN xCLdN zEZN |OPfN ~^N CLhN AAhiN NN OPkN P lN d =mN ZnN mc oN `mpN \z qN X rN Xf sN MtN LuN EN OPN CLxN EyN JZzN H9QN OPN CL}N Hm~N H"N GDN F=N OP~N CLN C N lR N kh N DN IZN FN B N l N JwN EN xN EVN LvN I=sN M Nr NM NEVNQNu@NJNL No^ N KN#EʘN%CLN(EN)wN*OPN,CLN-CLN.CLN/CLN1CLN2CLN3CLN6QN7MN8YgN9KzN:FN;KRN=CLN>CLN?CLN@CLNACLNCCLNDCLNE]NFCLNGCLNHCLNJNNKCLNvCNxCLNyCLN{xP N}CLNCLNCLNOP$NJhJ%NI&NKx`NCL*NHfj,N\NOP.NONCLNCLNOPNCL3Np:4NA{6Nj37Ni8Nmg9Nk/:Nb;Nf<N`NOP>NTi?NG3@NF?CANUcNOPDNA4UENG&FNFGNObN}NBɚN}S3NaS Nc{N| Nm Nk_ Nu Nt !NCL NCLNCLN^D NOPNPNe ND~NpPL N&NpNCLNCLNCLNCLNCLNGNIwNGN rE NI&f No Ns NOm N>tNADNDz NEE5NGXo$NJy NKv4 NLANOLZNPKNSm4 NVq3 NW`ٚNXYNY^ N[CLN\CLN]CLN^CLN_CLNbOPNdOPNeOPNgCLNjI$NkH$NmIiNnHwNqg33Ntg33}eNc}fN E^ ^ MNsz NNCǪONDLPNClQNU;RNPSNoI TNCVNd XNECYNFF[Nij \NY(^Nab_Nu `NB_aN{bNzGcNxzNCLNCLNCLgNl^ NCLNCLNCLNCLmNFnN }ioN [) NCLNCLNCLNCLNCLNCLNCLwN}fgxNQ\yNQ=qNOP{Ne33 |N ^}N!o5~N#]N'B N(E;N+7 ~N-OPN0Tj |N2CLN5F+9N7FN8GN9FuN;CLtN 5NkC6NlJbNnCLNoCL:Nr[2;NsFL<NvS3?NwCpiNyOPN{CLBN}AqCN~ODNBP0EN^34FNbGNWHNIS LNGffMNC34NN`zON~ PN}h QNI RNKmTNHUNIVNGHNOPNCLYNGZNDNOPNCL]N|C ^Nc.NOPNCLaNS NOPNCLdNDZNOPfN^NCLhNA$ZiNNNOPkNP lN^QmNX(nNkp oN`} pN^ qNZ{ rN\ sNM6tNMuNEĉNOPNCLxNEyNN*zNH[NOPNCL}NH~NH BNGxNFDNOP~NCLNCNl Nk_ NDXNIZN0F/N1B N2m N3JwN4EN6xN9EVN:O`NNU+?NG@NF2ANV2?NOPDNA!sENFFNFGNO\uN }ٙN C N}N` N_3N| NmJ Nk_ NuZ NtU !NCL NCLNCLN] N"OPN#PN$elrN%DN(p$ N*] N+p+N.CLN/CLN0CLN1CLN2CLN]G N^IKN_JCNcrz NfI Nho Nisc NjM NmnFfNpDʿNs{= NuFONwY6Nzy N{u} N|BN~]NKNmi Nv Na)NYfN^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNINHNIKNGNgGNgG}eN*R'}fN?F^ ^ MNs1L NNCǪOND9PNCScQNU0RNP\SNof TNDVNdm XNEKYNF_[NP\N[a^Na_Nu `NAaN$zbN&yqcN'wGN)CLN*CLN+CLgN.l* N0CLN2CLN3CLN4CLmN7F\nN:}0oN;[8> N=CLN>CLN@CLNACLNBCLNCCLNDCLwNG~RxNHJyNIONKOP{NNd |NP^%}NQri~NS]NVB*UNWEZN[~ ~N]OPNPƥ |NCLNFDNFu^NGuNMuNCLtNCLN@Npm NmA 5NC/6NJlNCLNCL:N[=;NN|s<NS?NCi(NOPNCLBNACNNrDNB1<ENVFNd\GNVHNI" LNGMNCQNN`zON~; PN}R QNI RNKFTNGUNIiVNG#NOPNCLYNFZNDNOPNCL]N| z ^NaeNOPNCLaNS)NOPNCLdNDNOPfN^NCLhN AKiN M+eN OPkNPq lN^ =mNW\nNj33 oN`pN^) qNY8R rNY3 sNM tNMzuNEdNOPNCLxN!EyN"QsfzN#HN%OPN'CL}NQHd~NSGNTGZ$NUFTNVOP~NXCLNZC N]ll N^k N_DXN`IiNNaF/NbB Ndm<8 NeJwNfENhxNkEVNlOsNnHNoM Nrr NtM NwB NxPNzu~N{K&XN|LNo^ NKNEʘNCLNENwNOPNCLNCLNCLNCLNCLNCLNCLNQC3NOc3NYgN_NTRNG NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNNCLNCyNCLNCLNw NCLNCLNCLNOP$NJD%NIy9&NO0NCL*NHr5,N_MNOP.NO,NCLNCLNOPN CL3N#p_4N%A{6N'bٚ7N(Q&f8N)d39N,k:N.ag;N/cٚ<N0_N1OP>N2T&?N3Gn@N4F+KAN5VaN6OPDN7A)pEN8FFN9EVGN:Oj+N>~LN?Cc4N@~9NA`Ɵ NDc NE| NFmv NGk NIu NJtM !NMCL NNCLNOCLNQ\Ǯ NSOPN|Q9N~e$ND1Nouq N NpNCLNCLNCLNCLNCLNGNINO;NrN NI No NsF NLlR Np,NDNz[ NFNNY)Ny NuZ NCNf=NJrNmh Nu N`NYfN^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNHNHNI NGMNfNf}eNg@}fNF_^ ^ MNr NNCONDPNCt QNEURNFP/SNGo TNHCVNIc& XNJE YNLFTK[NN{ \NOZ%^NRbv$_NSvr `NTAPgaNVy*bNWycNXvN[CLN\CLN]CLgN`l NbCLNcCLNdCLNeCLmNiF+nNl~oNmZJ NoCLNpCLNqCLNrCLNtCLNuCLNvCLwNy~xNzJGyN{PuN|OP{Nc |N_ }NsK~N]NANE^N~ ~NOPNTa |NCLNF)iNFLNG)NLuNCLtNCLN@#Np NmZ 5NCx6NJJMNCLNCL:N[V5;NR_<NT&?NCScNOPNCLBNACNMfDNBDEN ZFN ^GNZ\)HNH LNBMNgp NNGGON)b PN} QNI RNK)TNG<UNIMVNGNOPN CLYN!FݱZN#DN$OPN&CL]N({ ^N*a"N+OPN-CLaN0RN1OPN3CLdN5DXN7OPfN9^N:CLhN<@=iN=PPN?OPkN@Pd lNAUmNBRnNCj33 oNF`Qp6[ q6V r6W s6 L(t6 Mu6 E26 OP6CLx6EsZy6PK6)B 6*mYk 6+J6-E6/x62EV63O65H66L69r 6;M 6fB 6gK`6iu[p6jK6kL 6no^ 6pK6sEʘ6uCL6xE6yv%6zOP6|CL6~CL6CL6CL6CL6CL6CL6O6Ff6Pg6_6G 6G 6CL6CL6CL6CL6CL6CL6CL6]6CL6CL6CL6N6CL6C6CL6CL6y] 6CL6CL6CL6OP$6J1%6Iq&6OІ6CL*6Hk,6ac6OP.6P6CL6CL6OP6CL36o46A{66Y@76Z86Yٙ96j:6_;6d9<6_46OP>6T?6GU5@6F(A6U6OPD6BE6FF6EG6Ode6.}ٙ6/Bf60}@62`NK 65aXO66{r 67mi 68k 69uD 6:t' !6=CL 6?CL6@CL6B_ 6DOP6EQ6Fd6GE !6Ko 6LA 6Np6PCL6QCL6RCL6SCL6TCL6XG6YI6ZK6]r# 6`J] 6bof 6cs)~ 6dS| 6r#36Dd6zT 6G6Zh6y 6u6 6DY6i޲6K6m<8 6tw 6a36YY6^ 6CL6CL6CL6CL6CL6OP6OP6OP6CL6HR6H|6H6G6zf6zf}e6LY}fNF5^ ^ M6q N6CO6Dy:P6C;qQ6 UR6 PUS6 o T6 CZmV6cm X6EY6FL[6U\6Z^^6b._6v8 `6Aa6z{b6|aHc6x.6 CL6!CL6"CLg6&l 6(CL6)CL6*CL6+CLm6.En6Y|o6ZZ[ 6]CL6^CL6_CL6`CL6aCL6bCL6cCLw6gxRx6hIqy6iPu6jOP{6mcUV |6o_}6psn~6r]6vA6wE6z} ~6|OP6PB |6CL6F6F$6G6Ju6CLt6CL6@V6pD 6m 56CFf66Ji6CL6CL:6\;6Q<6T?6CSc6OP6CLB6AC6L"D6B-_E6ZF6YffG6V(H6H L6YG M6p N6YG O6U P6~ Q6I R6K82T6GuU6I4/V6G 6OP6CLY6FݱZ6DS6OP6CL]6{w ^6`X6 OP6"CLa6%R.>6&OP6(CLd6*D6,OPf6.^6/CLh61@i62W64OPk65P" l66Vm67Tn69i o6;`@p6=^ q6>WG r6@Yk s6ALt6BMTu6CE6DOP6FCLx6HE]y6IM"z6JG6LOP6NCL}6PHG~6RG}6SG6TFs6UOP~6WCL6YB6m 6l3 6D6Iw6F>K6B 6m 6J6E6y*s6EV6O6I86KCu6r 6M 6B 6T<6u[p6JP6L6o^ 6K6Eʘ6CL6E6ueR6OP6CL6CL6CL6CL6CL6CL6CL6P6f6G6g6Pg6_6G 6G 6CL6CL6CL6CL6CL6CL6CL6]6CL6CL6CL6N6CL6CU6CL6CL67 6CL6CL6CL6 OP$6 J#9%6 Ikz&6L&x6CL*6HM,6c6OP.6P?6CL6CL6OP6CL36"ö́46LA{66Nh@76Oa 86Pe96Sj-:6U_;6Vcٚ<6W^g6XOP>6YU|A?6ZG3@6[F$A6\UL6]OPD6^C+zE6_FPF6`EG6aO<6dA6eF<6gAg6h_ޘ 6k`96l{ 6mm 6nkd 6ou ~ 6qs !6tCL 6uCL6vCL6x\C 6zOP6{Q6|e6~EB6n% 6vB6p:6CL6CL6CL6CL6CL6G6I6@6r 6HD 6o 6s T 6K 6r36DW6zcz 6G36[D6y 6u 6FE6j16K6mm 6y. 6`6Z6^ 6CL6CL6CL6CL6CL6OP6OP6OP6CL6Ht6H(6HS6G6 {6!{}e6zk.}f6F}^ ^ M69q_] N6;CBO6F6 WzG6 PGH6 H L6 Y > M6 o N6Y > O6' P6~] Q6I R6K T6GYU6IV6@G6AOP6CCLY6EF/Z6FDX6HOP6JCL]6L{ ^6N` 6OOP6QCLa6TQ6UOP6WCLd6YDS6[OPf6]^6^CLh6`@i6aUZ@6cOPk6dOG l6eWm6fUn6gj o6j`p6l] q6mV r6nW s6oLt6pMu6rE6sOP6uCLx6wEGy6xL"z6yGo6{OP6CL}6Hm~6GXr6F6F6OP~6CL6BE6m<8 6l5h 6DX6I>6F>K6B 6m 6J%g6E6yo6EV6Oy6H6K36r 6L6B 6Q6uWr6JP6L6o^ 6K6Eʘ6CL6E6t6 OP6 CL6 CL6 CL6CL6CL6CL6CL6Oc36G6g6Ng6_6G 6G 6CL6CL6CL6CL6 CL6"CL6#CL6$]6%CL6&CL6'CL6)N6*CL6-Dz6/CL60CL62@64CL65CL66CL69OP$6:J%6;Ie&6>HK}6ACL*6CH"i,6ld?6mOP.6nPp6pCL6qCL6tOP6vCL36xo46zA{66}g76~L3386S96iO:6_9;6cS4<6]46OP>6UP^?6G @6F~A6V6OPD6BE6FF6EG6O1)6~s46C)6~46_+2 6d) 6z_ 6m4 6kd 6t4 6s !6CL 6CL6CL6^ 6OP6Qz6e6Df6n`* 6ڭ[6p6CL6CL6CL6CL6CL6G,6I6I@6qˈ 6Iww 6nT 6s 6R9 6nf6D36zT 6G6[6y 6ua 6H#6nB6K6 l 65jj 66`67Z368^ 6:CL6;CL6CL6AOP6COP6DOP6FCL6IH6JHw6LH6MGr6Pg\)6Sg\)}e6b#y}f6F|^ ^ M6kr N6mCeO6nDDP6oBQ6TR6PUS6o,| T6BV6bz X6EY6F[62\6X"^6b_6vc `6@ۘa6{b6zW c6v6CL6CL6CLg6lqo 6CL6CL6CL6CLm6En6}Io6YӅ 6CL6CL6CL6CL6CL6CL6CLw6} >x6Jy6N6OP{6bwx |6`}6 sĦ~6 ]6 AU6 E6 } ~6 OP6 RU |6 CL6 E+6 E6 Gx6 Gu6 CLt6 CL6 @6 !p 6 "l 56 #Bh66 %IM6 'CL6 (CL:6 +^;6 .M<6 /U^.?6 0C'6 2OP6 4CLB6 6AҩC6 7V D6 `BiE6 bSffF6 cWG6 dH=qH6 eHS8 L6 fY M6 gqG N6 hY O6 kK P6 l~s Q6 mI R6 nJT6 pGl[U6 qHV6 rFQ6 sOP6 uCLY6 wF/Z6 xDQN6 zOP6 |CL]6 ~zu ^6 di6 OP6 CLa6 R;66 OP6 CLd6 D|6 OPf6 ^6 CLh6 @i6 S6 OPk6 P  l6 Y =m6 Vpn6 j3 o6 `.p6 _\ q6 Y r6 X{ s6 Lt6 M u6 Ei46 OP6 CLx6 E9[y6 JYz6 H#6 OP6 CL}6 HU~6 G2b6 Fָ6 Fw6 OP~6 CL6 B6 mv 6 lo 6 D6 I>6 F>K6 B 6 me 6 J%g6 E6 x6 EV6 O6 I.6 K<-6 r 6 L6 B 6 Lv6 )uE6 +K$6 ,L6 /o^ 6 1K6 4Eʘ6 6CL6 9E6 :u6 ;OP6 =CL6 >CL6 ?CL6 @CL6 ACL6 BCL6 CCL6 FNg6 HL6 IX6 J_6 KG 6 LG 6 NCL6 OCL6 PCL6 QCL6 RCL6 SCL6 TCL6 V]6 WCL6 XCL6 YCL6 ZN%b6 \CL6 _D 6 aCL6 bCL6 B6 CL6 CL6 CL6 OP$6 J j%6 I^s&6 R?6 CL*6 G,6 f36 OP.6 PT6 CL6 CL6 OP6 CL36 o46 A{66 fL76 T86 X3396 iq:6 `y;6 d<6 _46 OP>6 T?6 FZ@6 F$A6 UZ6 OPD6 BؽE6 Fd|F6 EG6 O66 }ٙ6 Bɚ6 }fg6 _ 6 a6 z 6 m 6 k 6 tz 6 sU: !6 CL 6 CL6 CL6 \^ 6 OP6 RN6 e 6 D 6 n% 6 A 6 o6 CL6 CL6 CL6 CL6 CL6 GE6 I:6 M6 q 6 I* 6 !n 6 "sF 6 #K 6 &p6 )D 6 Uz)B 6 VF6 X\6 [y6 \uD 6 ]J6 _x 6 `Jr6 dl8 6 gy; 6 h`f6 iY6 j^ 6 kCL6 mCL6 nCL6 oCL6 pCL6 sOP6 tOP6 vOP6 xCL6 {H6 |Hl6 }Hl6 ~G[ 6 zz6 zz}e6 Yya}f6 F^ ^ M6 r N6 CO6 DJP6 BQ6 T"R6 PJS6 o T6 B#V6 a X6 DxY6 E[6 մ\6 _d^6 cO_6 v `6 @1a6 |34b6 zHc6 w6 CL6 CL6 CLg6 lS 6 CL6 CL6 CL6 CLm6 Enn6 |ٚo6 Y@ 6 CL6 CL6 !CL6 "CL6 #CL6 $CL6 %CLw6 ({x6 )Ny6 +O6 ,OP{6 /a |6 1`e}6 2r~6 4]6 6A06 9Eժ6 <~# ~6 >OP6 AQ5 |6 CCL6 FE6 HEX6 IG!6 LMu6 NCLt6 OCL6 RA;6 SpS 6 Tl 56 UBf66 WI6 OP6 CL:6 ]ۂ;6 K<6 UϤ?6 CU6 OP6 CLB6 AZC6 V=D6 AȾE6 SF6 WG6 HH6 H L6 CpM6 k > N6 HO6 @P6 ~ Q6 I R6 J˽T6 G8U6 HV6 F6 OP6 CLY6 FyZ6 D6 OP6 CL]6 z ^6 ea6 OP6 CLa6 R6 OP6 CLd6 DX6 OPf6 ^6 CLh6 @`2i6 QM6 OPk6 O\ l6 \m6 Yn6 d o6 `p6 _{ q6 Y r6 Yf s6 Lt6 M"u6 EZ6 OP6 CLx6 EZy6 I0z6 Hm6 OP6 CL}6 HH~6 G"6 FK6 Fb6 OP~6 CL6 B\6 m 6 Hl 6 IDZ6 JI>6 KFL6 LB 6 Mn 6 NJ%g6 OE6 Qx6 TEV6 UO6 XI|6 YL6 \r 6 ^L6 aB 6 bS͋6 dt6 eK1C6 fLG6 io^ 6 kK6 nEʘ6 pCL6 sE6 tsl6 uOP6 wCL6 xCL6 yCL6 {CL6 |CL6 }CL6 ~CL6 Pg6 Lg6 Y6 F346 Q\)6 GH6 CL6 CL6 CL6 CL6 CL6 CL6 CL6 ]6 CL6 CL6 CL6 N U6 CL6 D 6 CL6 CL6 B6 CL6 CL6 CL6 OP$6 I>%6 IV}&6 Nr6 CL*6 Gm,6 g6 OP.6 P}6 CL6 CL6 OP6 CL36 o46 A{66`s476L86W96i:6h;6eS3<6fg6OP>6T?6F@6F@A6U6 OPD6!BFE6"FAF6#EG6$Ni6'}g6(CP6*~36+_ $ 6.`s6/z0 60m 61l3 62tx 63s !67CL 68CL69CL6;].B 6=OP6>R6?f76AD#6Dm 6Em(6Gp6ICL6JCL6KCL6tCL6vCL6yG]6zI6{IK6~qt 6I 6nn 6s 6N4p 6r36C6{LS 6Ei6]V66y6u' 6L݃6@ 6K\6l~k 6t* 6`6Y6^ 6CL6CL6CL6CL6CL6OP6OP6OP6CL6H 6H`6HN6G56yL6yL}e6ERλ}f6 RGO ^ ^ M6rF N6CgO6D}P6B}HQ6TR6PCS6of T6BV6aw X6 DmY6 E[6 ܣ\6 U ^6cU_6vr `6@a6={ǯb6>zHc6?v6ACL6BCL6DCLg6Glk+ 6ICL6JCL6KCL6LCLm6OEJn6R}4o6TX 6VCL6WCL6XCL6YCL6ZCL6[CL6]CLw6`@x6aJy6bNz6cOP{6fa |6h^ .}6is~6l]6nAF6pE6s} ~6uOP6O: |6CL6E26Eΰ6GM6Lu6CLt6CL6A6o 6l 56C66IHW6OP6CL:6\;6J)<6VD}?6CU6OP6CLB6ALC6UID6AE6aQF6a34G6U{H6Gr< L6CM6DffN6XO6@?P6~Ü Q6I R6JT6GU6H/V6F26OP6CLY6EVZ6 D6 OP6 CL]6y{ ^6e6OP6CLa6S6OP6CLd6D6OPf6 ^6!CLh6#@C i6$O06&OPk6'NM l6(cm6)_Rn6*eٚ o6-a8p6/_G q60Yz r61Z8R s62L#t63M"u65EYA66OP68CLx6:Dy6;Qz6OP6hCL}6jHU~6lFl6mF6nFI)6oOP~6qCL6sB1 6vm4 6wll 6xE*6yI6zFL6{B 6|n% 6}J%g6~E6x6EV6O6H6L6r 6L6B 6Rۭ6t6K1C6LX6o^ 6K6Eʘ6CL6E6vL76OP6CL6CL6CL6CL6CL6CL6CL6Pg6Mf6Yg6E=q6LQ6GH6CL6CL6CL6CL6CL6CL6CL6]6CL6CL6CL6N6CL6D 6CL6CL6Al6CL6CL6CL6OP$6IA%6IO&6J&G6CL*6G,6gv60OP.61PS63CL64CL67OP69CL36;o_46=A{66@kff76A_386BW96Ei:6Gc4;6Hg<6I`6JOP>6KUm&?6LF@6ME`A6NVK6OOPD6PBJvE6QF-F6RE0G6SN6V}@6WC 6X}6Z^ 6]dN6^z{ 6_n0 6`l 6at>u 6br+ !6eCL 6gCL6hCL6j^ 6OP6QZ6e~K6G6n0 6Z6o|6CL6CL6CL6CL6CL6Gu6I[6N8'6qV 6KU 6n4a 6s 6P 6nɚ6C6z 6CE6]+6y6u ~ 6N=6B,R6Jn6lR 6u7w 6a)6Y336^ 6CL6CL6CL6CL6CL6OP6OP6OP6 CL6 Hw6HW6HW6GG6g =6g =}e6e7}f6H#^ ^ M6.rt N60CO61DP62B-Q6]TR6^PCS6`of T6aBV6baw X6cDcY6eE[6f\6g_x^6kcO_6lv `6m@a6o} >b6p|*c6qy6sCL6tCL6vCLg6ylFg 6{CL6|CL6}CL6~CLm6E:mn6~4o6X¼ 6CL6CL6CL6CL6CL6CL6CLw6Bx6K\y6Q.6OP{6a |6af}6s*1~6]6A6F1F6~# ~6OP6Q |6CL6E 6E|6F6J-Au6CLt6CL6B6p 6l 56D766I6OP6CL:6[D;6H<6V?6C 6OP6CLB6A{C6T/D6AE6%ZF6&c\*G6'VffH6(G L6)C\M6*CN6+XQO6,@3$P6/~z Q60I R61JT63FU64HoV65F66OP68CLY6:E#Z6;Cp6=OP6?CL]6Ay1 ^6Cd6DOP6FCLa6IR¨6JOP6LCLd6NC6POPf6R^6SCLh6U@&i6VX6XOPk6YN l6Za33m6[]n6\d\) o6_aWp6^=q q6U= r6Xk s6LPt6M$\u6ET6OP6CLx6Dy6P_z6J,6OP6CL}6H~6Fp6Fp[6F/6OP~6CL6A6n 6l 6E9[6I6F[G6B 6n`* 6J36E6z'6EV6O6I6L6r 6K?6B 6O6uHD6K$6L6o^ 6K6Eʘ6CL6EY6t6OP6CL6CL6CL6CL6CL6CL6CL6 Ng6 N`6 Yg6 Fp6Lp6GH6CL6CL6CL6CL6CL6CL6CL6]6CL6CL6CL6N6CL6"D 6$CL6%CL6'@.6QCL6RCL6SCL6VOP$6WIZ%6XIIw&6[MK6^CL*6`Gp,6ag?6bOP.6cP6eCL6fCL6iOP6kCL36moH46oA{66ru76sd86t^96wh.:6yc3;6zg4<6{b336|OP>6}T?6~F@6EjA6V56OPD6BSE6F&F6ErG6N*6|36Bg6}6^* 6a6zXI 6n% 6l3 6t' 6r !6CL 6CL6CL6\&w 6OP6P6d6D 6n0 6}O6oT6CL6CL6CL6CL6CL6G6I6Nʰ6q+ 6If 6n4a 6sF 6K 6pf6C6z 6B:6^56y6tY 6"O6#B6$K6'l& 6*tn 6+a 6,Y6-^ 6/CL60CL61CL62CL63CL67OP68OP69OP6;CL6>H_)6@Hb6AH6BG6Dzf6Ezf}e6W4}f6H{^ ^ M6rV N6CO6Dj@P6BvQ6TR6P@.S6n T6BqV6a X6D\Y6E[6\6V0[^6ci_6v `6@a6{Rb6{Lc6w6CL6CL6CLg6l 6CL6CL6CL6CLm6E9n6|go6X׷ 6CL6CL6CL6CL6CL6CL6CLw6B\)x6Ky6O6OP{6` |6_O}6t ~6]6@6F/6} ~6OP6N |6CL6E6E`6 F76 Qu6CLt6CL6B6q+ 6l< 56E]66I\6OP6CL:6EZ@|;6HGZB<6IWi?6JBE6LOP6NCLB6PA^vC6QS^D6RAdE6TbHF6U`\*G6Vc\*H6WF L6XL34M6YKN6ZaO6[@HP6^ Q6_IR6`JT6bFŃU6cH[V6dFn6eOP6gCLY6iDZ6jCa6lOP6nCL]6px0 ^6rd6sOP6uCLa6xR[6yOP6{CLd6}C:6OPf6^6CLh6@i6W<6OPk6N l6bQm6^n6c o6`Sp6Y3 q6U r6VW s6Lt6M"u6E=6OP6CLx6D|y6N~ z6Jt6OP6CL}6HVF~6Fj6FJR6F6OP~6CL6A"6n% 6m 6E 6I6F[G6B 6n}[ 6J%g6E6x6 EV6 OP6I6L6r 6K1C6B 6Lv6u[p6K6Li6!o^ 6#K6&Eʘ6(CL6+E:6,sl6-OP6/CL60CL61CL62CL63CL65CL66CL69Pg6:G6g6;Yg6GH6@CL6ACL6BCL6CCL6DCL6FCL6GCL ] CL CL CL  N#  CL DV CL CL BN CL CL CL OP$ I% IB;& P5 !CL* $GK, %g  &OP. 'Ps )CL *CL ,OP .CL3 1oM4 3A{6 6e@7 7Yٙ8 8i9 :h*: fi9; ggfg< hg iOP> jTn? kF@ lEA mU} nOPD oB+E pF"7F qEgG rN! u2 wC x y^  |` }z4  ~nB  l&  sl  rk ! CL CL CL _=  OP P f DP m  2 oB CL CL CL CL CL F I H q  I  me  r  S_  o Cu z7  C" _ y t4  P C K+ k  k  ` Yf ^  CL CL CL CL CL OP OP OP CL ,HD -Ht .H /G 2g{ 6g{}e ]}f6H^ ^ M Mq N OCLO PDyP QBGQ UTHR VP.ZS Wn$ T XBbV Ya$^ X ZDYY \E[ ^6\ _](^ bcq_ cv ` d@fa f|aHb gz8Rc v CL CL CLg l J CL CL CL CLm E4n |go X CL CL CL CL CL CL CLw @#x IBy PW  OP{ awx | `95} r~ ] @n Eo }X ~ OP Oa | CL Eo Ed F Fu CLt CL B p5@  l: 5 F<6 I% OP  CL:  YDz;  F*< W? Bw OP CLB AOC RD A`7E [F W G YH FQ L CM  CN !X34O "@cP %~' Q &IR 'JtT )FU *HGV +Fl ,OP .CLY XD_Z YC [OP ]CL] _xe ^ acnn bOP cCLa fRX gOP iCLd kC mOPf o^ pCLh r: i sU uOPk vN l x_m y[Rn zb3 o }`pp a q X r [ s Lt M#su E OP CLx DXy Lr|z Jm OP CL} HO ~ Fe F' F OP~ CL A n`*  m<8  DV I/ F[G B  n  J3 E x EV O I\ L r  K$ B  S u[p K& L o^  Kc @v? CL EN vBM OP CL CL CL CL CL  CL !CL $Ng %w &Ng 'E )L34 *GH ,CL -CL .CL /CL 0CL 1CL 2CL 3] 4CL 6CL 7CL 8N :CL =D% ?CL @CL AAAh DCL ECL FCL IOP$ JI% KI:& MK PCL* SG+, Tg UOP. VP XCL YCL OP CL3 o"J4 A{6 a37 X 8 c9 h: d; f3< a OP> U|? Fm@ EƐA VJ OPD BE FF E]G N ~ Cf ~4 ^#  c y  n`*  l&  s  r@3 ! CL CL CL \  OP O e G m  GU  o6 CL CL CL CL CL F Ir M^ p  Iw  m  r  K  q9 CRG  z   B ` y t  Q C& J k/  t  `3 Z&f  ^  !CL "CL LCL MCL NCL QOP ROP TOP VCL YH-J ZHz^ [H \G5 _zf `zf}e ]a}f HK^ ^ M wq_] N yCO {DP |B=eQ TR P'9S n T BESV ` X D~XY E[ ?\ Z[^ d) _ w ` @Ia {>b z >c w4 CL CL CLg l' CL CL CL CLm En }&go Y CL CL CL CL CL CL CLw @Bx KLy P OP{ `UV | _} rх~ ] @˽ E }h ~ OP OIc | CL !E #ET $F 'Mu )CLt *CL -B .oX  /m( 5 1Fo6 2I@+ 3OP 5CL: 8X; ;Oɖ<  U<? F(@ EA V+ OPD B.E F F ESG NY } B ~_ ]  c& yʂ  nn  l&  sc  r ! CL CL  CL  ]  OP O e+x D 9 mv  oH ol CL CL CL CL CL "F #I( $Jo, 'pӖ  *I.  ,m  -q  .NoE  2m 5C9 8zcz  9B  ;a >y ?tz  AR CC lKfv ok_  rl]  saf tY u^  wCL xCL yCL zCL {CL ~OP OP OP CL HX H I$ G݄ gG gG}e Z}f -I ^ ^ M r' N CvO D̨P B Q TR P'9S n T BiV a$^ X DlTY E1[ 6\ Z^ d) _ w9 ` @Ia {.b y*c wH CL CL CLg k CL CL CL CLm En }\o Y CL CL CL CL CL CL CLw 4B>x 5Oy 6N 7OP{ :a"# | <`} =ss!~ ?] B@F DE G}R ~ IOP LR~g | NCL REv SEW TF= WLu YCLt ZCL ]C@ ^p  _m/ 5 aFv6 bI cOP eCL: hXvT; kQpN< lX? mBn oOP CLB A2C P^D A5E gF a34G iH E L H=qM G(N fRO @P )b Q I/R J%gT FzJU HOV Fs OP CLY C.Z Bɀ OP CL] v( ^ abV OP CLa Q OP CLd C. OPf ^ CLh Fv i R  OPk Nt l cm ^=qn e o  `p  Yk q  T=q r  W\ s  Lt  M(u  D  OP  CLx  CBy  IVgz  K  OP  CL}  G'~  F~  EY  E  OP~  CL  A:%  "n   #m   $EZ  %I/  &FxC  'B   (n   )JBU  *E  ,x  /EV  0O  2IM  4L  7r   aK  dB   eLv  gu[p  hK <  iL  lo^   mKc  oV  qCL  tE  ut  vOP  xCL  yCL  zCL  |CL  }CL  ~CL  CL  Y  N  ^vf  E=q  O  GH  CL  CL  CL  CL  CL  CL  CL  ]  CL  CL  CL  N  CL  D   CL  CL  A   CL  CL  CL  OP$  I^%  I.&  R  CL*  Fn,  h  OP.  Pƍ  CL  CL  OP  CL3  o 4  A{6  p7  V38  `&f9  iD~:  kf;  j<  h&g  OP>  T?  FW@  EkA  U  OPD  B ZE  F<F  EMvG  N  (y  )@  +z  ,]   /`%  0z#   1n   2l5h   3s8   5q !  8CL  9CL  :CL  <^SI   >OP  ?P=  @e٫  BD  Emi   FF  Hoe  JCL  KCL  LCL  NCL  OCL  RF  SIs  TH>b  Wp   ZIQ   \m   ^q9   _Pq   br3  C@1  zF^   BH  b  y  t   Sj  Dbw  K  kw   w   c33  [f  ^   CL  CL  CL  CL  CL  OP  OP  OP  CL  H7  H:  I0  G  y  y}e  FB]}f ]IL^ ^ M  rc N  CSO  E!P  AQ  T R  P.ZS  n T  BV  aO( X  DZQY  E[  [\  Y^  dD3_  w* `  @SRa  yb  y\c  xz  CL  CL  CLg  k)  "CL  #CL  $CL  %CLm  )E n  T})o  UY  WCL  XCL  YCL  ZCL  \CL  ]CL  ^CLw  aC{x  bMy  cO{  dOP{  g` |  ja}  kr~  m]  o@   qE  t~OI ~  wOP  zRC |  |CL  E  E:  Gx  Ju  CLt  CL  B  p   m > 5  F;6  Hچ  OP  CL:  Y8;  PJ<  X?  B  OP  CLB  A2C  O4mD  A=\E  ]F  YffG  ^pH  E L  H=qM  G >N  fRO  @8P  U Q  IR  J+T  F`U  H (V  FpK  OP  CLY  C'Z  B  OP  CL]  vh. ^  `!  OP  CLa  Pn  OP  CLd  Ci(  OPf  !^  "CLh  $ O i  %O  'OPk  (Nh l  )affm  +^n  ,e o  /`p  1\ q  2T r  3VG s  4Ljt  5M.cu  6D  7OP  9CLx  ;C:y  LLK  ?OP  ACL}  CGB~  EFn  FE  GE5  HOP~  JCL  LA  On   Pm   QEd  RI  SFxC  TB   UoK   WJBU  E  x  EV  O  H  L  r   K  B   Ss  uSs  K  L  o^   KU  ^  CL  E  t  OP  CL  CL  CL  CL  CL  CL  CL  Pg  G6g  Pg  DH  L{  GH  CL  CL  CL  CL  CL  CL  CL  ]  CL  CL  CL  Nc  CL  D  CL  CL  A+  CL  CL  CL  OP$  I%  I't&  M*  CL*  F-,  gz^  OP.  P  CL  CL  OP  CL3  nU4  A{6  u7  iL8  _9  i:  m;  m`<  Hi3  IOP>  JUJ?  KF@  LEA  MVFa  NOPD  OBSE  PFF  QECG  RNn  V}  WC33  X}2  Y]6   \d ~  ]y   _n$   `l5h   as T   bq^ !  eCL  fCL  gCL  i[   lOP  mP  nef  oG  rmi   t  uo6  xCL  yCL  zCL  {CL  |CL  F  IW  Ikz  p<   I   m   p-   K&   q9  CC  {/9   B78  d/Z  y  tU   U$y  D.  K  kZY   uQ   `f  Z  ^   CL  CL  CL  CL  CL  OP  OP  OP  CL  G  H  I?C  G g g}e  t]}f  It^ ^ M -qn N /CO 1DۢP 2AQ 5TqR 6PS 7nT T 8BDV 9`@. X ;DHOY =E[ >j\ ?\^ Bc_ Cw8 ` D@6a Gwb Hxc Iw KCL tCL uCLg xk zCL |CL }CL ~CLm E n }Yo X CL CL CL CL CL CL CLw Bx Jy O34 OP{ `UV | `@\} sC~ ] @F E ~24 ~ OP Pn | CL E E F؟ Qu CLt CL C< p  l 5 GDg6 H OP CL: Y; N< Y:? Bk! OP CLB AC MշD A`E [{F XG V(H E{y L HM G(N fO @P  Q IkR  JT  FNU  G0V  Fq OP CLY BZ Bc =OP ?CL] Au ^ C_l DOP FCLa IO JOP LCLd NCL! POPf R^ SCLh U~ i VM XOPk YN] l ZaRm [^n \eٚ o _`p a[ = q bU r cV3 s dLt eM)u fD gOP iCLx kCpy mPz oLF pOP rCL} tGn~ vFX wE E OP~ CL AK n  m4  E9[ I FxC B  B  JBU E x EV O IZ L r  K B  OP uSs K LL o^  KF bl CL EY saW OP CL CL CL CL CL CL CL Ng  K`  b6f  E   LQ  GH CL CL CL CL CL CL CL ] CL CL CL NF CL  D{ "CL #CL %@Q 'CL (CL )CL ,OP$ -I% .I!& 1IT 4CL* 6F, 7g 8OP. 9QF* ;CL  {U1m? |Fs@ }EYA ~V@ OPD B E F F E>G N @g D @3 ]XX  cA yq  n  l5h  r  qt ! CL CL CL _  OP P e D mJ  ͷCc o CL CL CL CL CL FP I| NE p|  Iww  m7  p<  S  o3 CA zr  B3 ebr y tx  V D`\ JC k.  v3  `3 Y ^  CL CL CL 0CL 1CL 5OP 6OP 7OP 9CL H ?I; @G Cg Fg}e \L}f I(^ ^ M ^qP N `CO aDqP bB yQ eTzR fP S hxP T iAV j`\ X kD?MY Erx[ x7\ T^ c_ wUU ` @Ia x\b zc x CL CL CLg k CL CL CL CLm En @o XD CL CL CL CL CL CL CLw CaHx Kky N OP{ ` | a} sC8~ ] @F E ~ ~ OP U | CL E  D~  FШ  G:u CLt CL C q\)  mG 5 G6 H OP CL: Z=; !LE< "Y? #BUZ %OP 'CLB )AC *LD +AE -[F .[QG /O34H 0E=d L 2B=qM 3r N \R34O ]@΢P _K Q `I/R bIT cF9U eGgV fF gOP iCLY jB Z lB  mOP oCL] qu ^ s^g tOP vCLa yO9 zOP |CLd ~C/ OPf ^ CLh ~ i RM OPk N@A l ^{m \Hn c8R o a#p [\ q V\ r X s Lt M(u Dl OP CLx Ci(y O.z L OP CL} GX~ FD+ Eu Ed OP~ CL @ B  n  E9[ I F B  B  JBU E x EV Ol I L r  K  B  Lv uLC JR Lz o^  K82 %d 'CL *E +t -OP /CL 0CL 1CL 2CL 3CL 4CL 5CL 8Ng 9L :_6f ;Gff GH @CL ACL BCL CCL DCL ECL FCL G] HCL JCL KCL LN NCL QDJ RCL SCL U@ XCL YCL ZCL ]OP$ ^I6% _I& O§ CL* F, g8 OP. Qf CL CL OP CL3 n4 A{6 ]7 `&f8 Z9 iˏ: ky; j< h4 OP> Tl? Fa@ E^A Um OPD BE F\F E4G N_  C 33 ]"  _e yq  nT  l5h  rE  qHF ! CL CL CL [  OP QO eԬ D m-  B& o3 CL CL CL CL CL F7  Il  P/ p^  Iw  m<8  pPL  K  p C@1 z7   BZ "fkC %y &t[  PXu QDM RJ  VkQ  YtDD  Z`ɚ [Z  \^  ]CL ^CL `CL aCL bCL eOP fOP hOP jCL mG nHM oI*c pG tg = wg =}e Y}f I^ ^ M q N C/O D{P ATQ TgR PS @T A4V `e X D-JY EUE[ ǵ\ ]#^ cR_ wc ` Aa y{b y#c v CL CL CLg k CL CL CL CLm E.n } o W CL CL CL CL CL CL CLw @x Iqy Tf OP{ !_ | #`aA} $s~ &] (A" +E .}; ~ 0OP 3O | 5CL 8Eu! :D ;F\ >N Nu @CLt ACL DCH EpD  Fm" 5 HG6 IHt JOP LCL: OZ; RJ< SY? |BUZ ~OP CLB AC M$D A E SF WRG IQH E L B=qM q N Q O @P  Q I>R IΘT F#QU G̈V Fa OP CLY AfZ A: OP CL] u6 ^ ]6 OP CLa N OP CLd C  OPf ^ CLh ~l^ i X OPk NfP l ^\m \n d o `p \L q UR r WG s Lt M'u DJ OP CLx C6]y Mz Lj OP CL} G4~ F* ESA Ee OP~ CL @ B   n%   EZ  I   FxC B  B  JBU E x EV O/ I~ KA Er  HK < KB  LS' Nu[p OKj PLy So^  TK82 Vg XCL [E \v/ ]OP _CL `CL bCL cCL dCL eCL fCL iPg jM, k` lD mOQ nGH pCL qCL rCL tCL uCL vCL wCL x] yCL zCL {CL }N CL D CL CL BUZ CL CL CL OP$ I% I& OS CL* Fa, g}9 OP. QI CL CL OP CL3 n4 A{6 e@7 [ 8 U39 iڐ: j; k9< h` OP> US? FU@ E A Vh OPD BCE EF E+G  N ~L CFf ~4 \  dNb y\  n  l5h  rk  q ! CL  CL !CL #].B  %OP &Q (e< )D ,l  . /oÒ 1CL 2CL 3CL 5CL 6CL 9FP :IN ;G >pA  AI  Dl  Eo  FOiP r3C>c zr  Bz gytM YyD+Kfj u `fZ3^ !CL"CL#CL$CL%CL)OP*OP+OP-CL0Gܜ2H3I4GM7h\:h\}e .`0}f DJ^ ^ Mzq N|CUO}DmP~AQT_gRPS@TAV_ XDHYEUE[L`\Qa^b_wq `C/Oawbxcv34CLCLCLgkW CLCLCLCLmFn|goW  CLCLCLCLCLCLCLw{zxK>yR\OP{_"# |` }s~]AF5}h ~OPW |CLEk*D FVLW3uCLt-CL/DV0q+ 1l 53Gl64H_)6OP7CL::Ymh;=H<>Y??B1 AOPCCLBE@CFVK~DG@EI`zFJWRGKZ\)HLD LMBMNr=q NOQ OQ@~PS: QTIwRUI/TWFnUXGaVYFc@[OP\CLY^AW3Z_A/aOPcCL]eua ^g^OPCLaNOPCLdBOPf^CLh~# iW?OPkNg l_m\nd o`} p[ qT\) rUB sLtM$\uD2OPCLxC6]yL^zLÂOPCL}Gg~F2E0EOP~CL@B nB EsZI FB B JBUExEVOyIcL r  KjB OPu[pK&Lu]o^ K)gCLE saW!OP#CL$CL%CL&CL'CL(CL)CL,Rf-Mf.Yg/DHYL34ZGH\CL]CL^CL_CL`CLaCLbCLc]dCLfCLgCLhNjCLmDoCLoCLqAOtCLuCLvCLyOP$zIP%{I&}JSCL*F,gOP.QCLCLOPCL3nh4A{6c7V38W&g9iڐ:j;h<iyOP>Tv?FN@EAVSTOPDCuEE1FE!GN@3Dy@]' bx n l& r1 p- !CL CLCL] OPQdWE2l oCLCL!CL"CL#CL&F'IA(Oe+p$ /Jj 1l8 2o7 3N 6p99C:V_x XD GYE:[v\\"^br_w `D.UaxkbxgcvCLCLCLgk CLCLCLCLmGsn oV CLCLCL CL CL CL CLwzfgxIyNkOP{_"# |a}s ~]B"a FBL} ~NOPQ[[ |SCLVEeWDqYF\JEu^CLt_CLaDcq dl 5fGV6gHU/hOPjCL:mX;pG<qR?rB1 tOPvCLBx@۶CyVcDz@܆E|SF}WRG~P(HD LB=qMq NQROAJP^ QIRITE9UGkVFWOPCLY@۶ZAfOPCL]u ^cOPCLaOOPCLdBOPf^CLh} iUȐOPkNg l^Hm\Rnc0 o_ pY\ qS rT sLdtM uDOPCLxCScyM-zLvOPCL}F/~ETE E| OP~"CL$@X&B 'n}[ (E*I +F?,B -B .JBU/E1x]4EV5O`7IU 8L;r =K@B BODu[pEKmFLw0Io^ JK82LgNCLyEzu{OP}CL~CLCLCLCLCLCLNgK|YgEM >GHCLCLCLCLCLCLCL]CLCLCLNCLDCLCL@۶CLCLCLOP$I%I &LhCL*F ,g$OP.QCLCLOPCL3n?4A{6y 7ZL8^9i:mfg;lf<lOP>Tv?FI?@E AUROPDEEEFEFGN#yl@3z \  _6 x n l& r ph !CL CLCLA\ COPDQwEe\GE(Jl8 LsMotOCLPCLQCLSCLTCLWFXIbYH\p _I alo cof dL@- gppjC;m{ nApj7tyut/ w\LxDyKj u" `Z<^ CLCLCLCLCLOPOPOPCLGɔHI oGUgpgp}eL`\}faK8^ ^ Mr+< NCOD[P AlQ TP/ROdSt/ TAV_ XCFYE[L`\S=(^c _w9 `Daxgbx>c xz#CL$CL%CLg(k6 *CL+CL,CL-CLm1G=n4~go5W  7CL8CL9CL:CLCLwAypxBL#yCR34lOP{o_UV |r`X}srݭ~u]xB(yF(|~' ~~OP|L |CLE&Dl$G8>PuCLtCLE0!qz lv 5H06H;OPCL:WǸ;F)l<XC?B1 OPCLB@CUD@FEZ\)FZ\)GSHHDp LBMq NQROA!sP@AQIiNRI>TEUGVF:OPCLY@RZAOPCL]t ^d OPCLaPBOPCLdB=OPf^CLh}R iTOPkNM la33m _ n c^ o5`j;p7[q q8V{ r9VW s:Lt;M!uGHCLCLCLCLCLCLCL]CLCLCLNCLDCLCLB=CLCLCL OP$ I% I& P CL* F-, hd OP. Q~d CL CL OP CL3 n<4 A{6 _ٚ7 Sٚ8 [ 9 #i: %m4; &k9< 'j@ (OP> )Ue? *F8@ *EA +V ,OPD -GVE .EMF /E!G 0Na 4y2 5@3 6z, `\c  cdf$ dxg  en  fl&  gq  hp| ! kCL  mCL nCL p_  rOP sQz tf2 uD yl~k  { |o~ ~CL CL CL CL CL F Ic M o  I  lR  o,|  Sn  nvf C9 zT  A{h kj y t!N  ] D{ Ju j  y3  ` Z ^  CL CL CL CL CL OP OP OP CL G H I G gQ gQ}e {^S}fK{^ ^ M 4q N 6CYO 7D3P 8A{Q ;THR ouq T ?APV @_ X ACFY CE[ Dh\ E`""^ Ib_ Jw ` LCa Mx>b N{kc Oz QCL SCL TCLg Wkҙ  YCL ZCL [CL \CLm _GZ$n c|4o WI  CL CL CL CL CL CL CLw @\x Kky OQ OP{ _ | _wk} r#~ ] B~& E |C ~ OP O | CL E Dse FA Gu CLt CL E  q7L  l: 5 H6 H"i OP CL: W=; P8< Z3? B  OP CLB @C TWD @E SGF ZG K=qH D4I L BM q N R34O A4UP @(Q IZR I@T ElU G{V F' OP CLY @;Z Al OP CL] tU ^ b OP "CLa %P &OP (CLd *B +OPf U^ WCLh Y}; i ZQ \OPk ]N5 l ^_ =m _^zn `d# o c`Sp e] q fX r gXB s hLut iM!u jIp kOP mCLx oCy pNz rM: sOP uCL} wF:~ yE< {D |E] }OP~ CL @n B  n  EZ I  F B  B  JBU E y-G EV O I3 L r  J  B  O u[p K4 Lz g+  KF j CL E us~ OP CL CL CL CL CL CL CL O3 Lf ] G L{ GH CL CL CL CL CL CL CL ] CL CL CL N !CL $D &CL 'CL )A/ ,CL -CL .CL 0OP$ 1I% 2I`& 5L 8CL* ;F, Q+ ?CL @CL COP ECL3 Hn(4 JA{6 Lrf7 MYٙ8 Nj9 QiQ: Sifg; Ti< Ufg VOP> WU$y? F'@ E"A VC OPD GE E:F E#G N 4 D\ A \j  b" x  n  l&  q  p^ ! CL  CL CL [΅  OP Q9 eLP E l  xH o CL CL CL CL CL F IHW Iނ o۔  I;  lR  oK  K  r C9 zu  @ l& y t'  _X DX KZ jp  t  ` Z ^" CL CL CL CL CL OP OP OP CL G He I H yf yf}e V}f K܊^ ^ M _q3 N aCO bDP cAkQ fT@R hOS in T jAV k`1 X lCFY nD[ oh\ qSB^ tbP_ uw ` wB a xyaHb yypc zy }CL ~CL CLg kc  CL CL CL CLm FĽn })o W  CL CL CL CL CL CL CLw ~\*x JHy Q=q OP{ ` | `} sO~ ] B+  E{ } ~ OP OIc | CL E Dt F? MܪuCLtCLEpl m" 5H%!6HOPCL:!Ww;$RT<%Xڰ?&A(OP*CLB,@C-TaD.@E0ZF1WRG2E H3C6 L4AffM5nH N6QzO8AGP9@3Q:IB;R;IYbTE,?OPACLYC@-SZDAOFOPHCL]Jt/ ^tc[#uOPwCLayP}zOP|CLd~BOPf^CLh}f iO(OPkNz" l_zm^ncQ o_fpXk qT = rT sLtMuLbOPCLxD%yS'zLHOPCL}F~~E`DEROP~CL@`2B n EsZI FB B JBUExEVOI"7Lr J9B Pu[pK6Lzo^ KFiCLEutOPCLCL CL CL CL CLCLP#3G6gYgGH@CLACLBCLCCLDCLECLGCLH]ICLJCLKCLLNNCLQDSCLTCLV@XCLYCLZCL]OP$^I@%_HN&bH1eCL*gF,hh(`iOP.jQlCLmCLpOPrCL3un4vA{6v 7iL8a9i:f;h@<fOP>TM?F%@E AUDOPDGEEFE(TGN5DJD\e ^Yy n l& qt p3 !CL CLCL\ OPQwe%ENblD րotCLCLCLCLCL F Ib NEo IU l5h oK N< oC8z$ !@"m%y't )`*D+J.jSk 1k 2`3W5^"6CL7CL8CL9CL:CL>OP?OPhOPjCLmGoHjpHqHtgwg}eW"}fK0^ ^ MqN NCODXlPA`QT1ROSn TAЛV`! XDFYD[h\Y^bX_w `AaxLbwW cvCLCLCLgk6 CLCLCLCLmFcnYoW^ CLCLCLCLCLCLCLwB>xMW yOOP{_ |`}sK~]AEA~OP1Tp |3CL6E7DC8F;Lu>CLt?CLAEBp Cm 5FG6GHGHOPJCL:MXj;OQ<PVP?RASOPUCLBW@XCXSDY@HE[Z\)F\WG]O34H_C L`AMao\* NbQOcAZPd@?~QeIERfI8TgEUhGMViEُjOPCLY@;ZAOPCL]s ^bOPCLaPOPCLdBnOPf^CLh}I iM~OPkNbY lcffm_ne. o_WpY) qU rW\ sLtMuNOPCLxDBySzLOPCL}Fi~EaDlEDOP~CL@gvB oK EGIΘF: B  B  JP ExEVOyHRLr JB Rr!u6"L#Lz&o^ 'KF)k0+CL.E1/u=0OP2CL3CL\CL^CL_CL`CLaCLdQC3eFfYgDHhK iGHkCLlCLmCLoCLpCLqCLrCLs]tCLuCLvCLxNqzCL|D~CLCLAfCLCLCLOP$IC%H&RCL*F,glOP.QCLCLOPCL3mg4A{6ag7[Y8Y@9iQ:lFf;j<hOP>U?F$@E:AVOPDFEE|FE+GNz,Ay3[/ dixV o l3 qHF pY !CL CLCL] OPQr"fHL$E'lR )l*o^,CL-CL/CL0CL1CL4F5I^!6I}9o =I ?kd @o,| APE DpGC7'Jz)B L@|No'QyRs TaUDPVL6Yj63 \xf ^`3_Yf^"CLCLCLCLCLOPOPOPCLGHoHIH#Ph =h =}e)cX}fAL}^ ^ Mq NC1ODdPAQT&UROѦSoK TAV_ XCFYD@[h\Q^b%_wV `AawGbwcuǯCLCLCLgko5 CLCL CL CLmF0Vn}0oWr CLCLCLCLCLCLCLw@#xKy O{!OP{%_fg |'`[}Pt~R]UAVF9Y| z ~\OP_O |aCLdE{xeDL:fFjJP!ulCLtmCLoENpqt rm 5tG6uGvOPxCL:{Ys';~OO<Rl?A"OPCLB@-SCRCeD@'EUFY >GCHCB LAMi NNzOAlCP@RbQI8RImTEKUG>VEiOPCLYK Z@=OPCL]s ^aOPCLaP;^OPCLdByOPf^CLh},l iWOPkNP lZmYRnc o_n$pZp qVf rUL sLtM'uQ9OPCLxD|yNz!L"OP$CL}&FE~(E)DM*E7.+OP~-CL/@2B 3B 4EZ5IΘ6F7B 8B 9JP:EUL ?F#@E:AV OPD Cq$E E|F E-G NF@Df@\ c׏xV o l3 Dq Eo+ !HCL ICLJCLL[- OOPPQIQekRDmUl~k VmXoSR[CL\CL]CL^CL_CLbFcIHWeK_ho7 kHٚ mk/ nof oK rr#3uC/y{ {@R|p%ys bCKOj w `3Y|^ CLCLCLCLCLOPOPOPCLGHuH`H*zz}eVY"}foL#^ ^ M q NCWODPAO6QTROSn TAV`\ XCFYD[\[^"cB_#w `$AFa'wb(x=qc)w+CL,CL-CLg0kl 3CL4CL5CL6CLm9Fn<|o=W ?CLACLBCLCCLDCLECLFCLw}(xIyR OP{ `"# |a}sA~]A\WFN@~OPOX |CL Ey"DL:#F&QMu(CLt)CL,FM-o< .m( 50G61GU2OP4CL:7YD;:M9M<;S?dAfOPhCLBj@ACkQ.Dl@{EnUFoWGpKHqChf LrKMsp NtW OuA~kPv@fQwI8RxHTyEx1UzG0~V|E}OPCLY Z@OPCL]s T ^`POPCLaOoOPCLdByOPf^CLh} iX3OPkN\ l`zm`ncQ o_qp[ qWf rW{ sLtMuS OPCLxDSyLVzLOPCL}FL~EtD1E'OP~CL@JeB B EsZIΘF5B B JPExEVO^1HILr -JP0B 1Lv3u94L5Ly8o^ :K CLAEBv COPECLFCLGCLHCLICLJCLKCLNNgPG6gQPgRASJffTGHVCLWCLXCLYCLZCL[CL\CL^]_CL`CLaCLbN9dCLgDJCLCL@CLCLCLOP$Ir%H&IJsCL*Fi,g$OP.Q`CLCLOPCL3mЦ4A{6lL7a338[Y9iD~:Zf;a<]OP>T?F@EAUϴOPDB6EEFE+ GNz@y2\! _xy oK l3 p of !CL CLCL ^p  OPQgSeDl o9CLCLCLCLCL F"I6/#KH&o )I +k ,o7 -R+ Xn3\C_zT a@%bq"aeyfs hb iCщkJnj ^ qs r`sYt^"uCLwCLxCLyCLzCL}OPOPOPCLGHo{HH.2gGgG}e\ag}f,L^ ^ Mq NCODPA QTFROSn TAV_ XDFYD^[߶a\W^b_w `Aaw4bx.cw{CLCLCLgk5 CLCLCLCLm"En%~go&W )CL*CL+CL,CL-CL.CL/CLw3BRx4NLy5OQ6OP{9^ |;a}]AA0CFF} ~HOPKQ5 |MCLQE|_RDFmSF7TFuuVCLtWCLZF+[pr mc 5G6G=OPCL:Y;K(?<S ?AOPCLBK CO3D@wEUQFWRGBHCK L@Mi NMHOAP@j^QI~RHvTEfUG"VE OPCLY~l^ Z@`2OPCL]r ^`X(OPCLaO{|OPCLdBOPf^CLh|= iWOPkN l`\m_nes3 o_}2p\ff qYp rZp sLytM=uT>OPCLxDSy Snxz Kq OPCL}Fi~EgeDEOP~CL@AB B EsZIΘ F!B #B LJPMEOxREVSO?UHVK?Yr [JP^B _S_auEbK<-dLygg+ hJZjkPlCLoENptqOPsCLtCLuCLvCLwCLyCLzCL}Ng~MpYIG _ > _ > CLCLCLCLCLCLCL]CLCLCLNCLDJCLCL@.CLCLCLOP$IzF%Hb&OCL*Fq,fOP.QVCLCLOPCL3m4A{6dY7ag8X9ha:YY;^g<] OP>UUg?F<@E~AV^OPDB,EEFE!G NGQ#y$@g%yl'[ *d:+x ,oK -l3 .p /o !3CL 4CL5CL7[- 9OP:Q;e=Gܤ@l B4nCoECLFCLGCLICLJCLMFBNI0OHzouq }J k p$ Kr pvfBzcz ~s<ysF cxCK)i& un a9Z^"CLCLCLCLCLOPOPOPCLGrHpcHH4g =g =}eBW}fZLDF^ ^ Mpj NCODmPAMQSqROLSnT TAEV^( XCEY D[ \ ZS3^bP_x9 `@awubwcvACLBCLCCLgFkZ HCLICLJCLLCLmOEnR|oSWI UCLVCLWCLXCLZCL[CL\CLw_wx`JyaPW bOP{e] |h`}is?~k]mA oFpAu~rOPuM |wCLzE{DGFdMuCLtCLEr-o8 l 5GW6GOPCL:YS;I{Q<S?A^vOPCLB CND@l&EQRFWzGKHC# Lm34 MK Nu OAtP@@QI!RHmTEUUGVEOPCLY}R Z@JeOPCL] r]\ ^ _K OPCLaNDOPCLdByOPf^CLh|ƚ iUj OPk!Nr l"Mzm#N =n$c o'_p)Xff q*Rk r+SH s,Lu]t.Mu/U#0OP2CLx4D|y5Rz7K8OP:CL}ES?C@EAOP~CCLm pB qB rEWsIΘtF5uB vB wJPxEzx}EV~OsIRK8r JPB P_u[pLLzo^ JZk CLEvQOPCLCLCLCLCLCLCLNgLYgG _ > _ > CLCLCLCLCLCLCL]CLCLCLNCLDCLCLAfCLCLCLOP$Iu%H&O&CL*F,gsOP.QKCLCLOP CL34m46A{69bfg7:a338;U9=hPs:?Y;@^g<A[FgBOP>CTԙ?DF@EEeAFVIBGOPDHHfEIEFJEGKNmO~&fPC)Q~&fR[ UdVxD XoK Yl3 Zp< [ouq !^CL _CL`CLc\C eOPfQPge hDkl3 lq&oo CLCLCLCLCLFZILH)of Ij kw p^ L rB>z[ {XuysF dCRpKnii ~ c9[ ^ CLCLCLCLCLOPOP OP CL G[ Hh: H H-J z z}elTK}fK^ ^ M $q N &CO 'D6P (ApQ +SR ,OS -n T .A1V 0^_ X 1CDY 3D[ 4 \ 5T^ `bk_ axr ` c@!a ewub fxǯc gw{ iCL jCL kCLg okV  qCL rCL sCL tCLm wERn z~o {V%  ~CL CL CL CL CL CL CLw xRx Hy Pu OP{ ] | bE]} r!~ ] @Z F@ },l ~ OP Q | CL Ev  D  Fs1 Ku CLt CL EB pc  l 5 G6 Gܜ OP CL: X; G< S0o? AO OP CLB ' C MD @M$E `F Y >G N=qH Bl L |Q M ]\) N EzO A)P @Q HR HT ECU (FV )E *OP ,CLY .} Z /  1OP 3CL] 5rs ^ 7]W 8OP :CLa  oT0}? pE@ qEWA rU sOPD tJg8E uE;F vEG wN| z@g {Dٚ }@g ~[  ] x!y  oK  l3  pmy  oI ! CL  CL CL ^j  OP Q; e0 E k  3 o7 CL CL CL CL CL F I3v J= oXB  I  kK  pӖ  S  o B z  zz w y s  ef C#_ L iQ  u  `3 Z ^" !CL "CL #CL %CL &CL )OP *OP +OP .CL 1GH 2H` 3H6 4H@ 7gff ;gff}e S}f Kr^ ^ M Rp͸ N TC}O UDFP WA[Q SR OS n T A1V ^ X CEY DG[ ud\ VN^ a_ x* ` @a xb xc v* CL CL CLg k6  CL CL CL CLm EVn ~o V8>  CL CL CL CL CL CL CLw zHx IQy PG OP{ ] | a } u~ ] @3 F ~l^ ~ OP Q5 | CL Eg C F JZu CLt CL E o  l 5 G56 G  OP CL: X~; F< W;? A2 OP CLB c C LaD H@M$E Ja{F KWRG LUH MBz L N\HM OX\N PA{O QA"P R@;Q SHR THT UE7 U VF%V WE>n XOP ZCLY \} Z ]^  _OP aCL] cq ^ e[{ fOP hCLa kNJ4 lOP nCLd pBc rOPf t^ uCLh w|oQ i xQ[ zOPk {N# l |Gm }Gn b= o _ynp \. q V r W\ s Lst Mu W- OP CLx Dy PJBz K OP CL} F:~ E9 C D OP~ CL :  B  B  E I F B  B  J_C E x EV OPP IV K3 r  JP B  Tl[ vԈLL|o^ K jpCLEv%OP!CL"CL#CL$CL%CL&CL'CL*Ng+G6g-Yy.kH/@340x2CL3CL4CL5CL6CL7CL8CL:];CLN@CLCDECLFCLH@JCLKCLtCLwOP$xIZ%yH&|Mܪ~CL*F,g,OP.Q%CLCLOPCL3mo94A{6m 7Xf8V9ggt:X;^3<[ OP>T?E@EIeAVOPDL()EEFEGNz@y[ cuw oK l3 pA o; !CL CLCL[- OPPf+G!k @ o<CLCLCLCLCLFIDM1o; If j q+ K   q9Br{ yƲHi Kwn L`fMX\O^"PCLQCLRCLSCLTCLXOPYOPZOP\CL_G5aHWbHcHe{33f{33}eYE(}f L ^ ^ MqP NCxODP@UQSROSn TA!}V^ XCEYD [\Y ^a6B_x8 `@ayqbwcv34CLCLCLgk?u CLCLCLCLmEyn|goUZ CLCLCLCLCLCLCLw 34x IBy O OP{]fg |`q}r~]@˽FB&~OP Nm^ |"CL%EY&C'F>K*Q'u-CLt.CL0F1o\ 2lj 55G66Gv7OP9CL:;W(;>M<?Y0V?hAjOPlCLBn7 CoSDp@EeEr\(FsW\)GtBRHvBG. Lw| MxCpNy_HOzAP{@Q|HR}HT~E":UF;VD`OPCLY~OI Z7 OPCL]qt ^Y6OPCLaM@OPCLdBFOPf^CLh|C iO OPkMc lImInbY o_qp[) qU rW sLgtMuWOPCLxDyS)zLsOPCL}F?~DCZDmOP~CL: B B EIFB B J_CExEVOW@IK1Cr 2JP5B 6Pԙ8v9L:L|=o^ >JZ@k BCLEEŞFxgGOPICLKCLLCLMCLNCLOCLPCLSNgTFUPgVkHW}XkHZCL\CL]CL^CL_CL`CLaCLb]cCLdCLfCLgNiCLDCLCLBCLCLCLOP$IP%H&PCL*Fb,glOP.QCLCLOPCL3mp4A{6]&f7Mff8U9g:[`;`g<[4OP>U ?E@EGAVHOPDLsPEEFEGNl@D3@[ d:w) oK l3 p o ! CL  CL CL] OPPj@e\FlkK qoV)CLCLCLCL CL#F$I`&HÕ)o,| ,I .j /qHF 0O^ 3q)_Bbz dxez;hyis kg8lBnKݺqi| tu] ua vYIw^"xCLzCL{CL|CL}CLOPOPOPCLG]HPHGfHfH}e]}f0Lu^ ^ Mq NCldODPA QSROSn TA V^T XCEYC9[ⷭ\W9^a=_xG `@zBax=qbwcuRCLCLCLgk/ CLCLCLCLm%Eqn(~o*UO ,CL-CL.CL/CL0CL1CL2CLw6Aux7L\y8Nk9OP{<] |>a`}?sb~B]D@FFFI}I ~KOPNQ |QCLTEKzUC\VFf&YG3u[CLt]CL_Fpc lX 5H6H OPCL:WPi;R<Y'?AKOPCLB CV D@2E\(FWzGJHHB2u LC\MHzNhfgOAP@QHRHcNTEUFVDOPCLY~ Z~Ü OPCL]pӖ ^^ZOPCLaMOPCLdB1 OPf^ CLh| z iM'OPkM l@ffm} n_ o_pZ qU rW sL_tM6uW OP CLx DyO+'zLOPCL}Fq~DCrDEOP~CL !B "B $EW%I&F'B PB QJmRETxWEVXOsZHκ[K<-^r `JPdB eLvgvhLiLzlg+ mJojqCLtEuuuvOPxCLyCL{CL|CL}CL~CLCLPgG6gYgkH}fgkHCLCLCLCLCLCLCL]CLCLCLNqCLDJCLCLAqCLCLCLOP$II?%H&KfCL*F7,gOP.PCLCLOPCL3me4A{6o&f7Sfg8V@9f:Y`;`@<\@OP>T?Eچ@EIeA Vk!OPD"EE#EF$E&G%NM)@*D3+@g,[o /]m0v 2oK 3l 4o+ 5n !8CL 9CL:CL=\~g ?OP@PMAeBFlEk. G Ho[KCLLCLMCLNCLOCLRFSIr}O"oK J"" j q^ Mu oBnz7 wף{ys hjBKEi n3 `X ^ CLCLCLCLCLOPOPOPCLG HFHG5ff}eG`C}f_L~)^ ^ Mq NC^!ODAPAUG?E@EQAWOPDBEEYFE:qGN_#y@y[M' c=w) oK l of n !CL CLCL[v OP-Qq.frf/G2kw 4{F5oXK7CL8CL:CL;CLHG=g=qg=q}e4\Ե}fLNe^ ^ Mq% NCVOD`DPAQSOROfSn`* T@V^> XCEYC[\\^b_xUV `@Iawby*c vaH CL CL CLgj CLCLCLCLmEJn|oV#A CL CL"CL#CL$CL%CL&CLw)B\)x*Iy,NR-OP{X] |Zbd}[u~]]_@ZbF6cC=~dOPgP |iCLlE>nCoF:rLutCLtuCLxE yo zlp 5|Hh:6}HJM~OPCL:Y ;P <SOt?@۶OPCLB~; CULuD@EeF] GLHAJ Lh(MgNH=qOB}P@\QHRH 'TDUFQVDOPCLY~ Z} OPCL]p ^eOPCLaOvoOPCLdB}OPf^CLh{/ iX)OPkM l|\myna o^ZpYL qRp rS sLL_t Lu!Xo"OP$CLx&EGy'Sz)L"a*OP,CL}.F[G~0Dn1C62D3OP~5CL7: :B ;B F?B AB BJmCEExAHEVIOlKIuLK6Or QJPTB UQWvXLYLw0g+ JnjpCLEYvQOPCLCLCLCLCLCLCLNgG6gYgGHizMHCLCLCLCLCLCLCL]CLCLCLNCLDCLCLC CLCLCLOP$I,3%H &QCL*E,hD.OP.P#CLCLOPCL3m6T4A{6X7Pff8X339gP: h; mg< k4 OP>T٣?F-@EPAVOPDBEaEEYFEEOGNxg|3Bg|fZ  d3:!w) "o #l Lo Nn !QCL RCLSCLU^ WOPXQZf [F?^k `4naoJcCLdCLeCLgCLhCLkGKlImNpn sIȉ vjb wr xS {o~B9?zF^ v}ysrb jA9J{iLl lٚ `Z ^"CLCLCLCLCLOPOPOPCLFH:HGDfRfR}e`W7:}fxL$^ ^ Mq NCNqODcPA Q!SR"OfS#n`* T$@V%^i X'CEY)C[*\+T_J^.cE_/xc `0@6a2xb4xc5uR7CL8CL9CLgCL@CLACLBCLmEE> nH{oIVE KCLLCLNCLOCLxCLyCLzCLw}~zx~LByP4OP{] |_n }tх~]@F@~OPNP |CLE9^CF<JuCLtCLEio lv 5H6HjOPCL:Y;N%<Y?@=OPCLB~' CQQ%D@_Ef\*F] GHHA L\4M\{NQOBP@XQHwRH+TDUF2VDOPCLY~s Z~ OPCL]p ^fOPCLaPOP CLd A:OPf^CLh{ iV#OPkMl l@ypmBunC^p oF^^pHXff qIR rJS sKL=tLLZuMXXNOPPCLxRElySQi zULVOPXCL}ZF[G~\DU]C"^D_OP~aCLc fB gB hETiIjF5lB mB nJmoEqxltEVuLvwI~xKA{r JPB LvvLLqg+ Jnj:CLEtOPCLCLCLCLCLCLCLRFfG6gX3GHj34MHCLCLCLCLCLCLCL]CLCLCLNCLD CL CL B1 CLCLCLOP$I$%Ho&LZCL*E<,gߤ OP.!P"CL#CL&OP(CL3+m)4-A{6/kff70S81Xf94g}:6j;7o3<8mS49OP>:TB|?;Fj@OPD?B+E@EFAEP-GBNm@oDp@qZr t`puw;m vo wl youq zn`* !}CL ~CLCL[g OPQqfcjFk "o9CLCLCLCLCLG|IJ<n I j> tM KE n\B6z v*~ysrb k|B.Li= vU aY^"CLCLCLCLCLOPOPOPCLFH7DHjGҥg g }e^}fL6b^ ^ MEq NGCFOIDPJArQMSRNOcSOxP TPA0VQ^ۣ XRCEYUCi[V\W`^Zc*_[xq `\@fa^xLb`xcaukcCLdCLeCLghj jCLlCLmCLnCLmEEDn~fgoV8> CLCLCLCLCLCLCLw}(xKRyOOP{^ |a}si~]@mF}u% ~OPW[o |CLE CFN=QMuCLtCLEp;e l< 5HS6 H| OP CL: Y; K< Zg? @ OP CLB ~ C O1D  E Z=qF ^34G O34H A L \ffM \ >N ~O B#P @?Q HR HT DaU !FV "D+ #OP %CLY '}h Z (}  *OP ,CL] .p^ ^ 0^  1OP 3CLa 6N 7OP aCLd cA: eOPf g^ hCLh j{w i kU7 mOPk nMl l o{m pxn r_0 o t^tp vZ q xTL r yU\) s zL1t {Lu |Y }OP CLx Edy M8?z K OP CL} Fq~ D1i BC D OP~ CL   B  B  ET Jw F5 B  B  J|1 E x` EV Os ID KA r  JP B  Tz( v L Lo g+  Jn i CL E v% OP CL CL CL CL CL CL CL Pff M Yg GH i MH CL CL CL (CL *CL +CL ,CL -] .CL /CL 0CL 2N 4CL 6D 8CL 9CL ;@ >CL ?CL @CL BOP$ CIS% DH& GImZ JCL* ME, Nh m OOP. PQ` RCL SCL UOP WCL3 Zm24 \A{6 ^pY7 _r&f8 `]9 ch[: py; m3< qg OP> T-? F!O@ E[A V OPD BE EF E[G NGQ x4 @ y Z  b wp  o  l  oI  nB ! CL  CL CL \Rp  OP R< g G; k  {պ o/ CL CL CL CL CL G IW I nT  IU  jb  up  NN  r) B4 z$  v @p9 y sc  l Bj KiZ i  oȉ  a33 Z ^" CL CL CL CL CL #OP $OP %OP (CL +Fϙ TH4 UH VGM Y{ Z{}e W}fL^ ^ M qq3 N sCBQO uD3XP vAF~Q ySsnR zOMS {@-ST |@V }]# X CFY CI[ \ N^ c_ x ` Aۙa xLb x c v# CL CL CLg j  CL CL CL CLm F Xn ~|o V8>  CL CL CL CL CL CL CLw v\x Iy OaH OP{ \33 | b- } v~ ] @ G C3u~ OP W>' | CL E CH Ff& GHu CLt !CL $D^ %p  &lK 5 (Hچ6 )H$ *OP ,CL: /YP; 2I< 3TU=? 4@r 6OP 8CLB :~z C ;M~D <x E >_GF ?ZRG @IQH AA_8 L B\(M C[)N D~ǯO EB2P F@iQ GHR HHdT ID@(U JFV KDd MOP NCLY P~ Z R}R  SOP UCL] WpPL ^ V_ OP CLa LR OP CLd B} OPf ^ CLh {LS i S. OPk M l |{m wn _Y o _p YG q T{ r T s L$Lt L}u Z0 OP CLx EV[y Q z J OP CL} F?~ D B DI OP~ CL )b  B  B  EV Jw Fݱ B  B  J|1 E x EV O^1 I K4 r  JP B  RF v K<- Lo g+  J ja CL Ec u OP CL CL CL CL CL CL CL Rc4 HK IYg JGH Ki MMH OCL PCL QCL RCL SCL TCL UCL V] WCL YCL ZCL [N ]CL `D bCL cCL dA gCL hCL iCL lOP$ mI % nH2& qS$" sCL* vE, whRq xOP. yQ? {CL |CL OP CL3 m 4 A{6 k@7 m8 ^339 h: m; p3< o OP> U+? F.@ EbA Wm OPD AE E F EeG NW yFf @ y [R  d w  o,|  l3  o,|  n4a ! CL  CL CL ]  OP R) fՕ F2 kQ   oI^CLCLCLCLCLGfIWB{nT  I "j ^ #v ODY#P@QShROMS@}BT@V] XCEYC@[W\Z/^dX_x9 `C-\axRbxgcv#CLCLCLgjk CLCLCLCLmFn|oUfh CLCLCLCLCLCLCLw{=qxHRyNOP{\wx |bE]}t ~ ]AG+}}I ~MqnNrHOsBAPt@QuHRvH TDUEVDOPCLY~# Z|= OPCL]p$ ^PRsOPCLaIΘOPCLdAqOPf^CLh{ iPOPkM?S l|ffmxnp o_ׅpW qSB rT = sL0tLc&uZIOPCLxEzyS zK?mOPCL}F~ C B DOP~CL B B EJwFݱB B J|1Exd"EV#O/%H@&K1C*r ,JP/B 0OI_2wT[3K/q4LlA7g+ 8Jn:jbTj?F7@EdAW+OPDA\EEFEfGNC<G#4BɚZ ^v o l o n !CL CLCL0ZQZ 2OP3R 4f5Ed9j :CL?CL@CLACLCCLFGGIWH@eHKn$ NIU Pj QvI SKn Vr)YB4\zu ^v_BrbydsU: fn,gBhKkh j `T^ CLCLCLCLCLOPOPOPCLFƌH& H(G{{}e:Ys}fPKt^ ^ MqB= NC7OD P@QS\RO?wS@T@iV] XCGYC[\W^e_xr ` D&a wW b yaHc vaHCLCLCLgjs CLCLCLCLmGxn {go!UG]HA1 Lp\MoNHfOBPEPAQHRH!lTCUE}VDOPCLY}X Z}T OPCL]o۔ ^KnOPCLaG`OPCLdA"OPf^CLh{ iNxOPkLQ l{ =mwnq o_pWk qRB r$R s%Lt'LJu(ZD)OP+CLx-Ey.Nz0L#1OP3CL}5F~7C78B9D@:OP~~ AB BB CEWDJEFݱFB GB HJ|1JELz#JOEVPORISK1CVr XJP[B \R^w^_K3Ljog+ JnigCLEatOPCLCLCLCLCLCLCLNgLPYgGHi GHCLCLCLCLCLCLCL]CLCLCLNrCLDCLCL@.CLCLCLOP$H%H&HCL*E],iOP.QCLCLOPCL3m 4A{6 d7 ^8 ]9im:h3;ls3<p3OP>TK?F?C@EeAVPOPDB1EE~FEiGN2`!~f"C3#~$Z 'bؾPv Qo,| Sl Tn Ume !XCL YCLZCL\]b _OP`QEagbG%iek) fPxhpkCLlCLmCLnCLoCLrH 0sI,tPxn {J33 }j' ~w S oB4z7 vBi$ysF ojBKJhׄ ks3 `fT^"CLCLCLCLCLOPOPOPCLFƌH0H@Gff}efE#}f~K^ ^ M!q N#C9 O$DP%@Q(S\R)OJ)S*p T+@gV-^i X.CGY0C[1g\2V ^5d _6xr `9DQ`a:ypb;y*cCL?CL@CLgDj FCLGCLHCLICLmLG5nO{goPUQk SCL|CL}CL~CLCLCLCLwBxKRyOOP{]UV |aE}uF~]BT>F}~ ~OPU [ |CLE=CcZF?JDuCLtCLE^p kz 5IZ6HOPCL:Q?;J<Zg?@.OPCLB~# CTD5 EiFaQGPffHAM LvMr>NK.OB[PAQHwRG]TCUE$VDOPCLY{ Z|ƚ OPCL] o ^ Hk OPCLaE#OPCLdAOPf^CLhEz iFLHOPkJLG lKCmL@nMq oP_[RpR[ qSS rTV sULtVL7luW[=XOPZCLx\Ezy]Kz_L`OPbCL}dFL~fCshBiDujOP~lCLn~; pB qB rFRtJuF/vB wB xJyE{z2~EVOIcK"r JPB RwZK)Lhg+ JjCLEsaWOPCLCLCLCLCLCLCLNgKXGHi=qGHCLCLCLCLCLCLCL]CLCL CL NcCLDCLCLA/CLCLCLOP$H% H&#Q&CL*(EL,)h*OP.+Q-CL.CL1OP3CL36m~47A{6:o&f7;k@8ET?FFI?@GEi"AW`OPDAYEE7F EoG N^j ~3CFf}gZ dxv o,| l n m4 !CL CLCL!Ya #OP$Q@&f'Fn*k +s|-pл/CL0CL1CL3CL4CL7H)8I9J5Pdn gIf jjp kv lL@- or3rB8XuzF^ wuxB<|y}s8 p?)BLh i aC3Tff^ CLCLCLCLCLOPOPOPCLFHgHچGM|ff|ff}e+UB}fL2:^ ^ Mqm NC:yODNP@QSQ(ROfSn TALV^ XCyIYC[I\_8^d_xr `CAaxb{gcvCL,CL-CLg0jE 3CL4CL5CL6CLm9G&n<vgo=U{d ?CLACLBCLCCLDCLECLFCLwIxzxJIyLPuMOP{P]UV |Rb}Su'~U^XB3ZFg][C*~\OP_R&w |aCLdE"fCScgF*QGuCLtCLE'pl ky 5I}6H`OPCL:PХ;RX&<U5?@.OPCLB~ CTD5 EoFhGYHHASB Lv*Mr.NKROBdPAGQHkERGTCUEVDOPCLYzu Z| OPCL]ouq ^ETOPCLaC'OPCLdAOPf^CLhzu iXF OPk M l A\)m}pno o_}2pW qR rR sLtL&u[6OPCLxEV[yT=#z!M?"OP$CL}&E~(C)B*Dg,OP~.CLX~ ZB [B \FR]J%g^F/`B aB bJcEezJhEViOPkHlK&Xor qJPtB vOI_xw]%yK6zLaS}g+ ~JjICLEuOPCLCLCLCLCLCLCLNgG6gYgGHiGHCLCLCLCLCLCLCL^CLCLCLNCLDCLCLByCLCLCLOP$Is%HF&N:wCL*EA,gOP.Q0CLCLOPCL3l4!A6$A7%k48&fs39)i:,i;-ng<.j/OP>0T?1FU @2Eh:A3WM4OPD5B LE6EƐF7EG8NZBg?Z B^kDv Eo; Fl Gn Hmi !KCL LCLNCLP^a ROPSQTfUE'Xk [qACLCLCLCLCLH@IWH[n}[ Jf jH vI S p3B>zr t~B#ys8 qpBLG<h nb" a T^ CLCLCLCLCLOPOPOPCLFGHG VǮVǮ}e[KW}fL$^ ^ Mq NC@OEP@^QSQ(R OJ)S!nn T"A(V#^ۣ XLCGYNB[O-B\QP^Td_Ux `WBeaXx=qbYycZt\CL^CL_CLgbj dCLeCLfCLgCLmkFnn}ooUQk qCLrCLsCLtCLuCLwCLxCLw{@x|I{y}R#~OP{]wx |b}t L~^AfF0}X ~OP` |CLECv8FnG,uCLtCLE^pA lK 5I6H/OPCL:Qm;RQ;<UB?@rOPCLB}~ CSD EhHFkfgGOHA4 LWzMPNvpOBjPAnQHRHTCUEVTdOPCLY!z? Z"|R8 $OP&CL](q3 ^)D+OP-CLa/A1OP3CLd5A7OPf9^:CLhOPCLCLCLCLCLCLCLPgMS3YgGHiRGHCLCLCLCLCLCLCL^CLCLCLNHCLD2 CL CL A^vCLCLCLOP$I%H&AI+DCL*GE>,HfIOP.JQLCLMCLOOPQCL3Tl4VA6Yy337Z]8[`&f9]j<:_p;`m3<arٚbOP>cTc?dFfL@eEeAfVܫgOPDhBEiEFjE7GkNaMo~fpCc4q}rZ ubXvwZ xo; yl znn {m7 !CL CLCLYa OPQgG4k >qWCLCLCLCLCLHPINnn J; kZY wl Lx nS3BGzF^ tCZys)~ q B Khr j `Tc3^ CLCLCLCLCLOPOP OP"CL%F&GF(H)Gm,f/f}erO}fL2:^ ^ Mrq NtC@OuEPv@QySQ(RzO;S|n`* T}A1V~^ XCyIYB[\Zʫ^eC_x `A azGbycvCLCLCLgj_ CLCLCLCLmF8ynVgoUZ CLCLCLCLCLCLCLwwxMW yMHOP{] |aх}t~^AFFo ~OPA:|CLE0PClGaMWuCLtCLEqV l: 5I&6H OPCL:Te; Y6<4c@ ?5@7OP9CLB;~z C T? F~@ EgRA W OPD BE EDF E^G NL^ ~f C  }2 Z  dz w  oI  l  nB  mv ! CL  CL CL ^SI  OP Q f DQ lo  橆v q CL CL CL CL CL Hg Iq2 D*# n`*  J.  l3  wB  TYV  )of ,BTW /z  2sx 3CS} 6y 7s  9r' :BZ ;K` ?h  Bw  C` DUC3 E^" FCL GCL ICL JCL KCL NOP OOP QOP SCL VF WGv XH ZG^ ]f `f}e d}fLa!^ ^ M rez N CAO EP @LQ SQ(R O_S n T AV `! X CyIY B[ \ Vx^ e_ x ` AZ#a x>b yc tu CL CL CLg jt  CL CL CL CLm FMn o V)  CL CL CL CL CL CL CLw tfgx KLy N> OP{ _ | _q} t~ ^ A F wt ~ OP |֩ | CL #Ez $Cz %G (Lu *CLt +CL VEi Wqw  Xm( 5 ZI"6 [G \OP ^CL: aS8; dN < eXf*? f@ hOP jCLB l} C mPeD n' E pzGF qnG rNzH s@ L ttM uqHN vJO xBP yA2'Q zH"R {GXT |ClU }EV ~D OP CLY zcz Z {  OP CL] oXB ^ @; OP CLa ~  OP CLd A OPf ^ CLh z[ i T OPk L˄ l B =m @n p o _Wp \ q WQ r W. s L t L>u [^ OP CLx EsZy Rz L OP CL} EsZ~ Cu Brb DG OP~ CL ~]  B  B  FR J%g F/ B  B  J !E #z &EV 'O )H +K/q .r  0JP 3B  4Lv 6w 7L 8L_ ;o^  i @CL CE Eu' FOP HCL ICL JCL KCL LCL MCL NCL QYg RNg Tc UGH Vi WGH CL CL CL CL CL CL CL ^ CL CL CL N CL D CL CL C6] CL CL CL OP$ I(% H& N" CL* E\, fK OP. Q CL CL OP CL3 lk4 AH6 t7 \ff8 [9 j: h; m`< k3 OP> T? Fg@ EmA WFY OPD BjhE E@F EG N C3 G Bɚ [  ^ xg  oXB  l  n4a  mv ! CL  CL CL Y  OP R  fP Cp mh  E,  re CL CL CL CL CL JHu/ KI3v LB֐ On`*  SHf  Umm  Vw  WL  Zo ]Be `z  br dC gy hs  js kBC lK7 ohb  sm  t` uTc3 v^  wCL xCL zCL {CL |CL OP OP OP CL G G^ H G f f}e [N}f VL'^ ^ M r+< N CHO EP @Q STR O[S n}[ T B V a2 X CGY B[[ g?\ S3^g _xU `AawHbyctCLCLCLgj3 !CL"CL#CL$CLm'E״n*~4o+W4 -CL/CL0CL1CL2CL3CL4CLw7x=qx9My:M{;OP{>` |@aR}Ar!~C^FAMHEK} ~uOPx\7 |zCL}ECyG/I7uCLtCLEr ml 5I36HTGOPCL:Tc;T<b|?@OPCLB} CO?Dh Em34FjQGUH@0 Lv{Ms{NLxROBsPAQH/RG(TC{6UEVShROPCLYG;Z}R OPCL]o ^} OPCLa} OPCLdAҩOPf^CLhz iRzOPkL lDRmCpnrf o^p\ = qV\) rWǮ sL t Lu Z OP CLxEyRzLOP=CL}?EV[~ACq"CB}4DDEEOP~GCLI~' KB LB MFROJ%gPFQB RB SJTEVzJYEVZOP\I]K?ar cJPfB gTz(iwړjLkLaSno^ oJqgsCLvEwv OPCLCLCLCLCLCLCLYgK`0GHi\*GHCLCLCLCLCLCLCL^CLCLCLNCLDCLCLBUZCLCLCLOP$I(%H&JYCL*Ev,fOP.QCL CL OPCL3l4AH6n7ag8b39j@:q;q&g<sOP> Tso?!F@"EtA#WY $OPD%BE&E|F'E%G(Nm+A\,E`.@g/[ 2c-3yq 4ouq 5l3 6n% 8mh !;CL C =[?Y\@\^CfN_DxU `E@aHxbI{cJwLCLMCLNCLgQjb TCLUCLVCLWCLmZEn]}c4o^XD `CLbCLcCLdCLeCLfCLgCLwjxJ4yMOP{awx |a }rX~^A0E} ~OPUv |CLECF˕QeuCLtCLF8Rqz mm 5I6H9OPCL:S;Iҏ<b?AOPCLB~] CND EoFgQGVH@ Lv#MrLNK5OB5PAXQH4RGFT CYU EV D OPCLYG:Z}: OPCL]q^ ^{w OPCLa{  OP"CLd$A&OPf(^)CLh+{ i,P.".OPk0M d l1CGm2CGn3s o^^@p`Zf qaU rbW=q scL tdK$ue[ fOPhCLxjEykNzmLnOPpCL}rEl~tCq"uBwD\0xOP~zCL| O ~B B F>KJ3G )EVB JEzJEVO?ISLr JPB QwfLL_o^ JāiCLEwPOPCLCLCLCLCLCLCLXG6g^GHiGHCLCLCLCLCLCLCL^CLCLCLNrCLDCLCL%B}(CL)CL*CL,OP$-I %.H&1Nx4CL*6E/,7f8OP.9Q;CLSU?TGa@UExAVWWOPDXCEYF-FZEG[N^~3_DA[fa czXI o l& n mYk !CL CLCLZR OPR6fE oK Fީ sCLCLCLCLCLHI8An I p$ x M pfBIz pD y s u*DBG Jh6 n `T^ CLCLCL CL CL OPOPOPCLG7GHGgg\)g\)}e]M}fLd^ ^ Maq NdC]jOeEPf@\QiSARjOTSkn4a TlCaVmc4 XoCEYqC[r\sV*^vd_wx `x@ea{yBb|y#c}v34CLCLCLgj CLCLCLCLmEnvgoY CLCLCLCLCLCLCLwxIyOqOP{c |_B}r~^AFEt~ ~OPz |CLEVCѣG$FuCLtCLFor n 5IF6H:OPCL:RC;!Q<"_?#AK%OP'CLB)~OI C*M~D+T E-jpF.h >G/TH0A L1uM2r\*N3J>O4BP5Ag-Q6HR7GGtT9CS|U:EfV;O>CLY@H/ZA} COPECL]Fr ^Hy1 IOPKCLaMzF^ OOPQCLdSB}}OPf^CLh{LS iNOPkL} lFmG=qnq o^H[pYf qUG rT sLtKu\OPCLxEVyK zLq%OPCL}EG~CjBZD5OP~CLr B B F[GJ3G )EVB JEzJEVO?ILr JPB LvwgLLdo^ JāhE&CLENwOPCLCLCLCL CL CL CLNgG6g^33GHi GHCLCLCLCLCLCLDCLF^GCLHCLICLJNLCLODQCLRCLTCBWCLXCLYCL[OP$\I/%]H7&`P1cCL*eE,gf^kgOP.hQ=jCLkCLnOPpCL3slS4uAH6w]s37xW8y^9|k :~j34;o <k`OP>Tt?Gc@E~AWOPDCTEFFEeGN~3Cl}ٙ[g+ ^{> o7 l& m m<8 !CL CLCL_ OPRCg1ED;o+ ԏSs!ACLCLCLCLCLHBI(@% n JD q y1 S sfB|z o۹!Dr$y %s)~ 'v(Bq)K,h(# 0oL 1`2T3^ 4CL5CL7CL8CL9CLOPACLDGQEG=FHGG{{}eT7}fL|u^ ^ M"q N$CiO%E,P&AdQ*SAR+OjAS,nQ T-DJV.d X/CEY1C;[3>:\4]^7e_8x `9@a;y*bdyqceuhCLiCLjCLgmj oCLpCLqCLsCLmvEny}oz[#B |CL}CL~CLCLCLCLCLw}(xI{yNLOP{e |^K}rz~^@ZE}h ~OPp |CLEDGr/LuCLtCLFs nu 5Io6HJMOPCL:Q;F<SE?@OPCLB} CLhD ElRFg{GUHAw Lx\*MtNL:OBPAcQH*RG3TCNUEVEOPCLY,|5! Z-z /OP1CL]3p$ ^4w4 6OP8CLa:y@Y CLd@BBOPfD^ECLhG{Z iHPJOPkKL- lLDHmME\nNsE oQ^pSYG qTS rUT sWLUtXKuY[#ZOP\CLx^Ey_SzaL bOPdCL}fE2~ChBD/OP~CL B B F/J3G )EVB JEzJEVOpILr JPEVS'w1LLho^ J hFCLE:v%OPCLCLCLCLCLCLCLX33MS3ac4GHiGHCLCLCLCLCLCL CL ^ CL CLCLNCLDJCLCLBCLCLCL OP$!ID%"H&%K'CL**E,+f,OP.-Q/CLXCL[OP]CL3_lf4aAH6dg 7ed8feٚ9ik/:liy;mo<nj&foOP>pT?qGݔ@rEAsW)tOPDuC̏EvF0FwEGxNE|@}EVg~@[e cnE|%_ of l5h n4a mJ !CL CLCL[ OPRZ1gahEp ½:s ECLCLCLCLCLH}ILonT I s y Mu. n|Bz? mDBy s8 v0BAjK<h k a< T33!^ #CL$CL%CL&CL'CL*OP,OP-OP/CL2Gn3Gn5H6G9gcsCLCLCLgjO CLCLCLCLmEu*n~go]/ CLCLCLCLCLCLCLw@xIyO\OP{g |]}q~^@Em}~ ~OPW |CLEDwG WMOuCLt CL FH to oE 5J 6HFOPCL:Q";NH\<S?AKOP CLB"} C#KqhDL{d ENA8RFOtGP[{HQA1 LSyaHMTu.NULOVBRPWA~kQXHRYG3TZCTcU[EsV\Ept]OP_CLYa|} Zb{ dOPfCL]hp| ^iu} kOPmCLaox:D qOPsCLduB8PwOPfy^zCLh|{ i}XOPkM lBmCznr o^[2pX qR{ rT= sLltKu[OPCLxEyPzLOPCL}E*~CjB%D+OP~CL@B B F/JBUG )EVB JEzJ@ OHLr JPEVR.wM Lfo^ J hE&CL"En#w$OP&CL'CL(CL)CL*CL+CL-CL0Xvf1O 2_3GH4i5GH7CL8CL9CL:CLCL?^@CLACLBCLDNFCLHDJJCLKCLMAfxCLyCLzCL}OP$~Ib%HR&HCL*Eh,eOP.RvCLCLOPCL3lƥ4AH6i7x8f&g9kQ]:l;p3<k3OP>U6v?GN@EAX+OPDC/EFI?FEmGN@D@[ a}|Y o۔ lD m mJ !CL CLCL_ OPRf;ExqJ @ r~CLCLCLCLCLHǺI gKn  I{  u65  z[  S rS3B[z Aks2BDEy#FsF HwJIBuKJNgJ Qp"" R`fST3T^ UCLWCLXCLYCLZCL]OP_OP`OPbCLeGfG hH,iGOk{l{}eY}f L^ ^ MqN NC~OFwPAQS:NROjASnB TFHVh~ XCEYCs[[\Z"^b%_y9 `@awbxzctuCLCLCLgk t CLCLCLCLmEk9n~po_

p > 5@J6BHMCOPmCL:oQ;rRX<sZ?tA$ZvOPxCLBz} C{UOD|d E~nFm{GO{HA LwuMtNKOBPAzQHRG )TCZUEVE<OPCLY|& Z{ OPCL]p ^tx OPCLaw OPCLdB\OPf^CLh{a iWOPkMl lCmCns o^pYk qS rTQ sLtKu\BOPCLxFyL̷zLOPCL}E9[~Cq"BD,QOP~CL@C B B F>KJBUGEVB J@- zJ @ 6O8Ir9LJPAEVBLvDwEM FLhIo^ JJ Lh9OCLRE'SzTOPVCLWCLXCLYCLZCL[CL]CL`X3aNVfbYgcGHdizeGHgCLhCLiCLkCLlCLmCLnCLo^CLCLCLN9CLDCLCLCCLCLCLOP$I}%H&RCL*F,fDOP.R*CLCLOPCL3lҽ4AH6h37e@8ff9kv:hf;n3<k4OP>U@?Gd@EAW!OPD DE FaF EѼG O 2 ~ CP }y \*  `:" }&  o  lR  n  mYk ! CL  CL CL \  OP R gs< F{ #r@3  $Ain  &r )CL *CL +CL ,CL -CL 0HV 1I' 3M? 6o  aHD  cwl  d{  eL]  hqI kC! oz  ql8X rD uy# vsc  xx3 yBni {J# ~g  js3  `f T ^  CL CL CL CL CL OP OP OP CL G H  H G { {}e $Y2}fCL @CLw C~=qx DJy EO34 FOP{ Il | K];Z} LpP~ O^ Q@ā SEН V~ ~ XOP [r& | ^CL aE bE= cG QQ%u CLt CL GF tw  p 5 J)6 Hr5 OP CL: R; Rs< X? A2 OP CLB ~ C TڥD E E nGF n >G PffH @0 L Z\M SHN w4O BP AQ HR FT CgYU EV E$T OP CLY }f Z {=  OP CL] qHF ^ srb  OP CLa wB  OP CLd Bn OPf ^ CLh |5! i V= OPk M l Km KQn t o _ ?p Y q S r T s Lt K6u \A OP CLx F7 y Rz LX OP !CL} #EG~ %Cs &C| 'D/7 (OP~ *CL T@ VB  XB  YF>K ZJBU [G \EV ]B  ^J _@ azJ c@  fO hI| iL lr  nJP qEV rQ[ tw uM  vLo yo^  zJā |fna CL E {Ȝ OP CL CL CL CL CL CL CL Ng L< Yg GH hH GH CL CL CL CL CL CL CL ^ CL CL CL Nr CL D CL CL C' CL CL CL OP$ I% Hm& N CL* F5, e OP. R(z CL CL OP CL3 l4 AH6 !p7 "df8 #w@9 %k: 'i; (og< )l *OP> +T? ,Gd@ -EkA .W /OPD 0DE 1F}F 2E=G 3O( 7Ap 8E 9@3 :\  =c >}  ?p  Ala7  Bm  Cmh ! FCL  GCL HCL J`P  MOP NRj Ogb PFme Sr  U  VrqX CL CL CL CL CL H I2 OF oI  J7w  xWc  |}  T  n CD z  k܊ D} y# s  x B J, g  off  `3 T3 ^  CL CL CL CL CL OP OP OP CL G\ H H G g g}e U[}f LZ^ ^ M r+< N CO FNP BNQ S.R OjAS n`* T GV kH X DHY ID_[ J\ KW^ Ne_ Py* ` Q@SRa Sw8Rb TwW c Uu WCL XCL YCLg ]kH  _CL `CL aCL bCLm eE8n h~o jb»  lCL mCL nCL oCL pCL qCL rCLw vxx wHLy xSu yOP{ |m | ~\cf} l~ ^ @  Eڶ } ~ OP \J | CL E, E GJ Fu CLt CL F vD  q 5 J-86 Hz^ OP CL: T!; PƜ< R8$? A:% OP CLB ~@ C TD - E q(F kG ZzH A L x=qM u.N K OBPAzQG1RF TCwUElVE<OPCLY}~ Z{ OP CL]"qt ^#rn %OP'CLa)v( +OP-CLd/Bw1OPf3^4CLh6| i7T9OPk;MA lr3 oA^pC[H qDV rEW\) sFK;tGKduH\~mIOPKCLxuF>KyvR zxLyOP{CL}}E]~C{C%D- OP~CL@.B B FLJBUG&"EVB J @JzJ@ OI$Lr JPEVSwM Lu]o^ J f CLE{eOPCLCLCLCLCLCLCLPgG6gYgGHhHGHCLCLCLCLCLCLCL^CLCLCLNCLDCLCLA CL CL CLOP$I%H&^Uw?_G@`EIAaWbOPDcD'EdFFeEFGfOUiC<kGIlB|m\ p]q~ rp3 sla7 tn0 vm7 !CL CLCL\ OPRfFVsc Cn rCLCLCLCLCLHI9Mouq J] yz }f LN qYCr{ k DPy;s ytB-`J6 g  iL  `T^ CLCLCLCLCLOPOPOPCL G!H+z"Hٞ#G'd\*d\}e['}f L^ ^ Mls NnC)OpFY#PqBQtSRuOxSvnn TwHcMVxleC XzD?MY|D1A[}A\~]l^e_y8 `@IaxbxLcu=qCLCLCLgk~ CLCLCLCLmE2Jn)oc CLCLCLCLCLCLCLw~xJ8RyQzOP{n |\`}l%~^@Ez? ~OP[>t |CLECFGNzuCLtCLFx rv 5J=6H}OPCL:T>;0N0 <1Y:?2AW34OP6CLB8~] C9SD:T E[H?Aw L@x MAuNBxOCBPDAQEGRFG TGCUHEVIEOJOPLCLYN~z ZO{= QOPSCL]Uq9 ^Vrk XOPZCLa\v ^OP`CLdbBdOPff^gCLhi| ijR_OPkM [ lFffmE=qnq}q o^9pZ qU rV=q sLtKdu\hOPCLxFxCyNrzLOPCL}El~CCG?D.}OP~CL@EVB FiJPG&"EVB J @X-zJ@ OpHeLr JPEVOwLVeLyo^ Jā aN CLE{eOPCLCLCLCLCLCLCLP3G6gYg!GH"h#GH%CL&CL'CL(CL)CL*CL+CL-^.CL/CL0CL1N+3CL^D`CLaCLcAW3eCLfCLgCLjOP$kI3%lH&oHSrCL*tF,ufvOP.wRKyCLzCL}OPCL3l"4AH6m 7m8[Y9k:jg;p <ngOP>UHt?Gɓ@EnAVOPDEkaEFFFOGO~s4B}g] b2 pPL l~k n0 m !CL CLCLa OPRg{GDt HrCLCLCLCLCLI'I=sMOo IU zr ~@ S &o)C,{LS .j=/D3y;4sF 6z2"7BM8KH;g >e ?`3AP#3B^ CCLDCLECLFCLHCLKOPLOPMOPOCLSHTH2UHٞVGYg=q]g=q}ei-}fK^ ^ Ms? NCJOFPBfQSROxSn THVm XDQPYD\[{\X^cB_yG `@?avQbwcsCLCLCLgks CLCLCLCLmE.n~od_ CLCLCLCLCLCLCLwtHxH.yQOP{ pDD | \Ħ} l~^@Eo},l ~OPY7 |CL!FY"FY$G'GuQCLtRCLTGYVw=q Wr 5YJZ6ZH[OP]CL:`U ;cK]<dT% ?eAlgOPiCLBk~ ClQMDmP Eot(FpkGq^{HrA LswMttfgNuK޹OvCPwAQxGwRyGTzCVU{EܮV|Ee}OPCLY~Ü Z{LS OPCL]q ^rN OPCLavt OPCLdBOPf^CLh}I iPOPkM lD\mCnr o_pZ{ qT rVL sLtKdu];OPCLxFyKzMLOPCL}EsZ~CCiD:OP~CLA$ZEVB FxCJPG4EVEVJ  @t"{%#@&Oy(I)L,r .JP1EV2Lv5wl6M 7L|:o^ ;Jā=ZQ?CLBEC{eDOPFCLGCLICLJCLKCLLCLMCLPNgQL RPgSGH|h~GHCLCLCLCLCLCLCL^CLCLCLNCLD!pCLCLBCLCLCLOP$Iλ%H&QCL*F,fUOP.RCLCLOPCL3m414AH6j337efg8]&f9kj:k4;pff<m OP>T?G@EeAV OPDEEFعFFGOC33GB]F; ` p| l n4a m !CL CL CL ]Z7  OPRf~Ft XrMCLCLCLDCLFCLIINJIOKKJNo+ QIff S{w U VL Yp\C_{w ajbE#Wey;gs izyjA5kK|ng qkUU r`3tT3u^ vCLwCLxCLyCL{CL~OPOPOPCLHDH<HnGgzgz}e_J4}fTLJ^ ^ Ms NCOFۢPC0QS#sROSn TI'VnB XDuWYD [4T\ ]=(^d_yUU `@6avbvcs\CLCLCLgk CL CL"CL#CLm&E)Bn)o*f4 ,CL-CL.CL0CL1CL2CL3CLw6z(x7Gy8P:OP{;rH |GH#?hH#@GH#CCL#DCL#ECL#FCL#GCL#HCL#ICL#J^#KCL#MCL#NCL#ON#QCL#TD&#VCL#WCL#YCSc#[CL#\CL#]CL#`OP$#aI%#bH&#eN)#gCL*#Fv,#fkC#OP.#RZ#CL#CL#OP#CL3#m@4#AH6#_ٚ7#Sfg8#^Y9#k":#qfg;#pS3<#s#OP>#U!?#G@#F-A#V?#OPD#F0E#FF#F,bG#O#A6f#Es3#A@#]< #`#@9q#p #l #nB #m !#CL #CL#CL#aY #OP#R?#g#GB#u' #@ #rn#CL#CL#CL# CL# CL#I'#IZ#M}$#p$ #H #|& #^ #S #r #!Da#${ #&j#'EA}#*y;#+t #-{Z#/B0#XJR#[g #^jDD #_`ff#`T3#a^ #cCL#dCL#eCL#fCL#gCL#kOP#lOP#mOP#oCL#rHpc#tHC #uH@#vG#x{#y{}e#YZL}f#L^ ^ M#t N#CO#FJP#C\Q#S#sR#OS#n T#IV#o X#D\Y#D[#̲\#Y.9^#c_#yq `#@6a#xb#yc#uǯ#CL#CL#CLg#k #CL#CL#CL#CLm#En#go#g׷ #CL#CL#CL#CL#CL#CL#CLw# @aHx#!IaHy#"O##OP{#$sUU |#&[v}#'j~#)^#+@|1#-E$#0| ~#2OP#6]! |#8CL#;F@##Ub[?#G@#FA#VT#OPD#FE#GF#FB$G#P3p#@#D#~9#]J #b|#@h#p #l8 #n`* #m !# CL #!CL##CL#%]b #'OP#(R#)f#*G#-vK #.t.3#1ri#3CL#4CL#5CL#6CL#7CL#:I4#u #{>#Ao#Jn#g #e{ #`f#Tc3#^ #CL#CL#CL#CL#CL#OP#OP#OP#CL#HM#HIe#HV#G#{#{}e#.U_}f#FKn^ ^ M#s N#CO#FP#CQ#S+R#ONS#n}[ T#IV#o X#DcY#D٦[#+\#Y}^#d_#y `#@,ca#vb#xzc#s34#CL#CL# CLg# l #CL#CL#CL#CLm#En#@~go#Ai*;#GZB<#YxA?#A#OP#CLB#U C#ND#5 E#|{F#mG#OpH#A'i L#@4M#~zN#PO#CP#AŖQ#GԬR#F:T#CU#FV#E`#OP#CLY#U Z#{ #OP#CL]#sU: ^#R#OP#CLa#|= #OP#CLd#C#OPf#^# CLh# ~# i# X#OPk#L l#FQm#F{n#r o#`5p#Y# q#T r#W s#LCt#Ku#Z#OP# CLx#"Gy##Pbvz#%M#&OP#(CL}#*EO~#,C#-C#.DO#/OP~#1CL#3B"#6EV#7B #8F[G#9J_C#:G4#;EV## U?# G@#4F5GA#5V^#6OPD#7FݱE#8G/ F#9FZG#:PtX#>Aff#?E|#@AI#A^ #D^tT#F@6#GpX #Hll #In}[ #Jn% !#MCL #NCL#OCL#Ra- #TOP#USJ#Vg#WF#Zw4 #\#^rY8#`CL#aCL#bCL#cCL#dCL#gIF#iIv#jIL#mp< #I{ #}f #@b#RA #r#Dq#{H #l,#Er#yƨ#tj. #|W#A#K}#g #lb" #a #T#^ #CL#CL#CL#CL#CL#OP#OP#OP#CL#H#HTG#HV#Gm#h=q#h=q}e#\^}f#sJez^ ^ M# tb N# CO# F+P# CQ# S2R# !ONS# #n$ T# $JV# %p X# &DfY# (Ef[# )o\# *Xr}^# .d@_# /y9 `# 0@,ca# 2v\b# 3wuc# 4s34# 6CL# 7CL# aCLg# dlFg # fCL# gCL# hCL# iCLm# lD`n# pٚo# qj( # sCL# tCL# uCL# vCL# wCL# xCL# zCLw# }Bkx# ~N.y# PG# OP{# v |# Y`}# i/2~# ^# @m# ER# tY ~# OP# [/ |# CL# Fg# Hv# G# Ouu# CLt# CL# Dt# y5@ # u 5# J6# HŨ# OP# CL:# S7;# F:<# Qo?# A"# OP# CLB# : C# L^(D# =W E# hHF# cG# VH# A` L# [M# TN# x.O# C(P# AxQ# G:R# FT# D\U# F+yV# F# OP# CLY# : Z# {Z # OP# CL]# s ^# )W# *OP# ,CLa# .CD# 0OP# 2CLd# 4CU# 6OPf# 8^# 9CLh# ;~l^ i# OPk# ?L l# @Gm# AG\)n# Br3 o# E`=p# GYL q# HSz r# IT{ s# JL t# KKu# MY# NOP# PCLx# RGy# SNQz# UMi# VOP# XCL}# ZEV[~# \C# ]CI# ^DR# _OP~# aCL# cBrd# EV# B # F# J_C# G4# EV# EV# Jā# @# zJ# B3# OW@# IHW# L# r # JP# EV# Lv# wm # Mo## L# o^ # Jā# J# CL# E# ~'# OP# CL# CL# CL# CL# CL# CL# CL# P3# G6g# Ng# GH# h# GH# CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# N U# CL# D%# CL# CL# C# CL# CL# CL# OP$# J%# H&# Qw;# CL*# GL,# h5# OP.# RP# "CL# #CL# &OP# 'CL3# *mK4# TAH6# Wi7# Xbfg8# Ya339# [l&:# ]g;# ^mS4<# _i,# `OP># aUO?# bH @# cFNA# dU# eOPD# fF/E# gGNF# hFtG# iP[# m@3# nE # oAf# p^ # sbR# PPCS# Qn T# SKV# Tr X# UDhY# WE8[# \# WL^# d_# y `# @,ca# wub# wHc# s# CL# CL# CLg# l: # CL# CL# CL# CLm# E7n# ~4o# k # CL# CL# CL# CL# CL# CL# CLw# w >x# Iqy# O# OP{# yL |# Y)z}# m~# ^# @f# E# y#; ~# OP# [x |# CL# Fg# IE# H m# IFu# CLt# CL# Bs# y # tt 5# Jd6# Hf# OP# CL:# S;# Q9<# Wd?# Aҩ# OP# CLB#  C# QpND# - E# D{F# n(G# bGH# A] L# dM# ]\)N# @O# C2P# AQ# GR# FFT# HD3U# IFCV# JF$# KOP# MCLY# O@AZ# P{ # ROP# TCL]# Vt' ^# X]# YOP# [CLa# ]H## _OP# aCLd# cC6]# eOPf# g^# hCLh# j~ i# kV`)# mOPk# nLÕ l# oEpm# pE33n# qqxR o# t`p# vZǮ q# wR r# xU\) s# yLt# zKu# {Wٰ# }OP# CLx# G-ay# La"z# M# OP# CL}# EsZ~# C# Dz# DZ# OP~# CL# Bw# EV# B # F>K# J_C# G4# EV# EV# Jā# A# zJ# B3# Oe!# I# L# r # JP# EV# Tet# w\Y# Ny# L+# o^ # Jā# HM# CL# E'##OP#CL#CL#CL#CL#CL#CL#CL#Ng#G6g#Yg# GH#!hfg#"GH#$CL#%CL#&CL#(CL#)CL#*CL#+CL#,^#-CL#.CL#/CL#1N!#3CL#5D%#7CL#8CL#:Cμ#=CL#>CL#?CL#BOP$#CJ%#DH&#FO}H#ICL*#tGti,#uh*#vOP.#wR#yCL#zCL#|OP#~CL3#mɊ4#AH6#j 7#Xf8#jf9#l.>:#lL;#p4<#m#OP>#U_?#H#@#Fd|A#UZ#OPD#EuE#GlF#FG#P8#Ap#E#Ay#_T #]C#A#qV #l9 #nT #n !#CL #CL#CL#a/ #OP#T #gn>#Fv#x:D #E8 #q#CL#CL#CL#CL#CL#IiG#I;#Gw#q #Iww # #AL#O^ #p3#DK#|& #k1#E{# yF# t # }r#o@"#J%#h #>o #?af#@U#A^"#BCL#CCL#ECL#FCL#GCL#JOP#KOP#MOP#OCL#RI#SH^A#TH#VG#Y@=q#\@=q}e#[l"}f# GB^ ^ M#ws N#CaO#FFP#D71Q#SER#PS#n T#L1 V#s X#DoY#Ed[#c\#W?^#b%_#y `#@,ca#v*b#wuc#t#CL#CL#CLg#l@ #CL#CL#CL#CLm#E qn#~Vgo#l׷ #CL#CL#CL#CL#CL#CL#CLw#xx#J4y#O#OP{#y\) |#Yz}# g~# ^#@_C#E#w ~#OP#]>? |#CL#F`#I$# H ##Qu#%CLt#&CL#)/ #*y #+t 5#-Jݔ6#.H#/OP#1CL:#4T~;#7S'<#8X?#9A#;OP#=CLB#?@C#hSC<D#i E#kl=qF#lgQG#mZH#nASB L#o\M#pSHN#qCYO#rC<P#tAQ#uGR#vFT#wDWU#xFYV#yF#zOP#|CLY#~@uZ#{ #OP#CL]#tx ^#c #OP#CLa#M"#OP#CLd#CSc#OPf#^#CLh#~; i#Te#OPk#LN l#H{m#In#s o#`=p#ZaH q#SaH r#T s#LGt#K$u#W#OP#CLx#Gy#JMz#N#OP#CL}#E~#CW#D3#FXb#OP~#CL#BE#EV#B #FxC#Jm#GQ#EV#EV#J#A#zJ#BV#OW@#I#L#r #JP#EV#RQ\#1wR#2Ny#3L#6o^ #7Jā#8H"#:CL#=E#?~'#@OP#BCL#CCL#DCL#ECL#FCL#GCL#HCL#KPg#M{#NNg#OGH#Pi#QGH#SCL#TCL#UCL#VCL#XCL#YCL#ZCL#[^#\CL#]CL#^CL#`N$#bCL#dD#?#fCL#gCL#iBy#CL#CL#CL#OP$#J %#Hm&#MQ#CL*#G,#g~#OP.#R3#CL#CL#OP#CL3#m4#AH6#]&f7#X48#cL9#l9x:#gf;#ny<#js4#OP>#U<?#H8@#FtA#U#OPD#EE#GF#FG#P/#AI#E#@#_ #a٨#A#q #m #o #n !#CL #CL#CL#_ #OP# T$@# gAN# G*z#yl #?#r}h#CL#CL#CL#CL#CL#Iu#I&#NH#"qV #%H #' #(B#)L #,n#/Ev#2| #]k1#^ER#ayF#bt #d}I#ehN)#fJ}#ih(# #mk #na@#oTٚ#p^ #qCL#rCL#tCL#uCL#vCL#yOP#zOP#{OP#~CL#IL#Hd#H#G#gff#gff}e#a}f#)D 8^ ^ M#tTg N#C̨O#GHP#DWQ#SMYR#P*S#n T#LyV#t X#DuY#Eu[#ޯՐ\#X^#dJ_#y `#@0a#wfgb#wuc#u#CL#CL#CLg#l #CL#CL#CL#CLm#D`n#$Fgo#%m #'CL#)CL#*CL#+CL#,CL#-CL#.CLw#1{=qx#2Gy#4N#5OP{#6zg |#7V}#8i+~#:^#<@_C#?E#B{ ~#DOP#G]j |#ICL#LFX#NI#OH A#RHGu#TCLt#UCL#X~ #Yx #Zt J 5#\J 6#]Ha#^OP#CL:#U?;#R.<#X?#A:#OP#CLB#@;C#R'D#& E#oF#yQG#UQH#Aff L#yM#tN#L#O#CI:P#AQ#GLR#FsT#DWU#FzJV#F$#OP#CLY#@Z#{ #OP#CL]#t4 ^#fHL#OP#CLa#Po#OP#CLd#Cpi#OPf#^#CLh#Fv i#R#OPk#L l#I\)m#Hn#s3 o#`p#Y q#R r#T s#Lt#Lu#U#OP#CLx#Gy#SYz# M># OP# CL}#E~#C#D^C#DfW#OP~#CL#C/#EV#B #F[G#Jm#GC# EV#!EV#"J##A;#%zJ#&BV#QOPP#SIK#UL#Xr #ZJP#]EV#^PP#`v#aNy#bLu#eo^ #fJā#gGn#iCL#lE#m~'#oOP#qCL#rCL#sCL#tCL#uCL#vCL#wCL#zNg#{F3#}Ng#~GH#hfg#GH#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N%b#CL#D#?#CL#CL#Bɀ#CL#CL#CL#OP$#J*~%#H&#K+#CL*#G},#g#OP.#R#CL#CL#OP#CL3#m4#AH6#i&g7#kff8#bٚ9#l9x:#jg;#of<#l#OP>#U߇?#HR@#FA#UB#OPD#F?E#GF#FG#Q/#!~&f##B#$~#%_ #(]m6#)BF#*q #+m #-oK #.o !#1CL #2CL#3CL#5a #7OP#9T#:fD#;G*#>y #@O##Art.#CCL#DCL#FCL#GCL#HCL#KI#LI.#MP1#Pq #|J"" #~@`2#B#N< #o #EW-#|} #lp#Ewv#yx#u65 #|#ce#Jn#hE^ #d #a#U #^"#CL#CL#CL#CL#CL#OP#OP#OP#CL#I#Hj #H#G#h#h}e#@PD}f#XCg^ ^ M#s N#C[O#GCP#DQ#STR#P@.S#nT T#MV#v X# EY# E![# j\#W`^#e _#yU `#@0a#vb#x\*c#u#CL#CL#DCLg#GlJ #ICL#KCL#LCL#MCLm#PDn#S0o#To, #VCL#WCL#YCL#ZCL#[CL#\CL#]CLw#`Bx#aNy#cOB#dOP{#e| |#fWU}#gh~#i^#k@X#nEQ#qz)B ~#sOP#v] |#xCL#{Fe=#}JI#~H#P#u#CLt#CL#z #yh #tu 5#K <6#H#OP#CL:#W>q;#PTC<#T?#B #OP#CLB#@XC#Q+D# E#nGF#lG#\H#AL L#x\*M#SuN#xO#CP|P#AQ#GR#FT#DU#F!V#FA#OP#CLY#AKZ#{/ #OP#CL]#uD ^# e8R# OP#CLa#Q#OP#CLd#C#OPf#^#CLh#' i#P,#!OPk##M l#$J{m#%IHn#&sf o#)_p#+Y{ q#,R8R r#-U# s#.L t#/Ku#0U-#1OP#3CLx#5Gy#6RIez#8M#9OP#;CL}#=ET~#?D9#@D(#BDp~#COP~#ECL#GCi('vEV'vB 'vF'v Jm'v GC'v EV'v EV'v Jn'vAJ'vzJ'vAx'vO;~'vI%'vL'vr 'vJP'v EV'v!Lv'v#v'v$Ny'v%Lu'v&`w/ 'v'J'v(G'v+CL'v.EY'v/~''v0OP'v2CL'v3CL'v4CL'v5CL'v6CL'v7CL'v9CL'vdPg'veN'vfYg'vgGH'vhh'viGH'vkCL'vlCL'vmCL'voCL'vpCL'vqCL'vrCL'vs^'vtCL'vuCL'vvCL'vxN. 'vzCL'v|D$&'v~CL'vCL'vC='vCL'vCL'vCL'vOP$'vJ/%'vH&&'vI2'vCL*'vG,'vhe'vOP.'vR^'vCL'vCL'vOP'vCL3'vn(4'vAH6'vd 7'vXf8'v\@9'vlD:'vmf;'vn<'vp9'vOP>'vU͌?'vHk~@'vFA'vU6v'vOPD'vEE'vGdF'vF(G'vQF*'vAS3'vE&f'v@'v` 'vaXO'vB'vq 'vm- 'vo; 'vof !'vCL 'vCL'vCL'v_/ 'vOP'vS'vg%}'vG:'vzu 'v&'v,r'v.CL'v/CL'v1CL'v2CL'v3CL'v6I'v7I8'v8J'v;q 'v?I 'vA@'vBC/'vCM 'vFsvf'vIE'vL|oQ 'vNl''vPE|'vSy'vTup 'vVy'vW_'vXK'v[hb 'v^k 'v`a,'vaT'vb^"'vcCL'vdCL'veCL'vgCL'vCL'vOP'vOP'vOP'vCL'vId'vHl'vHj'vG'vz3'vz3}e'vV}f#AO^ ^ M'vt N'vC.O'vGiP'vDQ'vS\R'vP`ES'vnT T'vO V'vx X'vEY'vF['vh\'vU[^'vdH_'vy `'v@sa'vt(b'vyaHc'vt'vCL'vCL'vCLg'vmF/ 'v CL'v CL'v CL'v CLm'vDn'vo'vqY 'vCL'vCL'vCL'vCL'vCL'vCL'vCLw'v ~=qx'v!J(y'v"OQ'v$OP{'v% |'v&V}'v'f~'v)^'v+@P'v-ET'vYo; ~'v[OP'v^aQ |'v`CL'vcF'vdK'vfH-'viGSCu'vkCLt'vlCL'vny 'vpyh 'vqu^6 5'vsK6'vtHR'vuOP'vwCL:'vzW;'v}M<'v~Ql~?'vBE'vOP'vCLB'v@C'vPPD'v~ E'vAffF'vqG'v`H'vAi L'v@M'v~LN'vBO'vC\P'vBQ'vGR'vFu^T'vDӈU'vFJV'vFY'vOP'vCLY'vAt@Z'v{ 'vOP'vCL]'vu ^'vaR'vOP'vCLa'vP'vOP'vCLd'vCμ'vOPf'v^'vCLh'v@i'vN'vOPk'vM l'vG=qm'vGQn'vp޸ o'v`&p'vW33 q'vO r'vR\ s'vL't'vLu'vTr'vOP'vCLx'vGy'vPfz'v M0'v!OP'v#CL}'v%F~'v'D;Y'v(D{'v)D|'v*OP~'v,CL'v.C'v1EV'v2B 'v3FL'v4J|1'v5GQ'v7EV'v8EV'v9J'v:B'v'vUu?'vH@'vFA'vU1m'vOPD'vD܌E'v G}F'v FG'v QD'v~&f'vC33'v~'v`I 'v]'vC'vr# 'vmYk 'vo 'vof !'vCL 'vCL'v CL'v"ax 'vLOP'vMS'vNfR'vPH'vS{a 'vU'vVs~''vXCL'vYCL'vZCL'v\CL'v]CL'v`I'vaIL'vbQs'ver1 'vhH 'vjA{'vlC'vmP(z 'vpo'vsEp'vv| 'vxo'vyE<'v}yF'v~u 'vwXB'v]Y'vJ'vh 'va* 'v_'vR3'v^ 'vCL'vCL'vCL'vCL'vCL'vOP'vOP'vOP'vCL'vI'vHo{'vH'vGt'vh{'vh{}e'vUP}f'vn@^ ^ M'vt` N'vDO'vHyP'vEeQ'vSkR'vP/S'vn T'vPsV'v{ X'vE^Y'vFPg['vέ.\'vV^'ve_'vz `'v@0a'vt8Rb'vwHc'vu'vCL'vCL'vCLg'v mr 'v CL'v CL'v CL'vCLm'vDn'vgo'vt#B 'vCL'vCL'vCL'vCL'vCL'vCL'vCLw'v"}(x'v#Hy'v$PG'v%OP{'v&A|'v(U}'v)e`~'v+^'v-@I'v/EZ'v2t' ~'v5OP'v8` |'v:CL'v=F='v>KH'v?HT'vCJ0u'vmCLt'vnCL'vpsI 'vqy5@ 'vst 5'vuKA6'vvI'vwOP'vyCL:'v|X ;'vK@<'vU?'vBN'vOP'vCLB'v@C'vOkD'vP E'vxF'voG'vUQH'vAN L'vDM'vC N'vTO'vCgP'vBsQ'vGR'vF T'vEU'vFV'vFn'vOP'vCLY'vB8PZ'v| z 'vOP'vCL]'vvI ^'v`G'vOP'vCLa'vPS'vOP'vCLd'vD'vOPf'v^'vCLh'v@`2i'vT'vOPk'vM7 l'vHffm'vHn'vt o'v`p'vZff q'vV{ r'vX\ s'vL4t'vLUu'vTxy'vOP'vCLx'vGy'vMz'vM0'vOP'vCL}'vFT~'vDsY'vEF'vD'vOP~'vCL'vDG'v EV'v4B 'v5F'v6J|1'v7G`'v8EV'v9EV'v;Jn'vzJ'v?BU'vBOPP'vDI.'vEL'vHr 'vJJP'vK@ 'vNQ'vPv۹'vQP('vSL'vTd] 'vUJ'vVFna'vXCL'v[E 'v\Ξ'v]OP'v_CL'v`CL'vaCL'vcCL'vdCL'veCL'vfCL'viO'vj{'vkNg'vlGH'vmhH'vnGH'vCL'vCL'vCL'vCL'vCL'vCL'vCL'v^'vCL'vCL'vCL'vN+)'vCL'vD'vCL'vCL'vD'vCL'vCL'vCL'vOP$'vJX%'vH&'vO'vCL*'vHt,'vg{'vOP.'vR''vCL'vCL'vOP'vCL3'vnj4'vAH6'vX47'v\@8'vT&f9'vlWh:'v g4;'v ms3<'v j'v OP>'v U)?'v H@'v FA'v U}'v OPD'v E%E'v HF'v GSG'v Q'v ~'v Bf'v }y'v b 'v _'v Cc'v r 'v m7 'v o+ 'v pA !'v CL 'v CL'v "CL'v $` 'v &OP'v 'Sf*'v (g'v )H)'v ,~# 'v .DҲ 'v 0tK 'v 2CL'v 3CL'v 4CL'v 5CL'v 6CL'v aI'v cIl'v dCm'v gr 'v jH 'v lB"'v mD'v nM:T 'v rr)'v uF?N'v x},l 'v zq,'v {EgW'v ~yw'v v 'v s9^'v [+('v LNv'v h 'v j 'v a)'v T3'v ^ 'v CL'v CL'v CL'v CL'v CL'v OP'v OP'v OP'v CL'v J='v Ht'v Hj'v G'v zf'v zf}e'v .\2}f'vpzz ^ ^ M'v t N'v DCO'v HoP'v EQ'v SkR'v PgS'v n T'v QoV'v }8V X'v EY'v F['v <\'v S^'v g`_'v z9 `'v @0a'v )tub'v *x c'v +t'v -CL'v .CL'v 0CLg'v 3m 'v 5CL'v 6CL'v 7CL'v 8CLm'v ;DXn'v >s4o'v @ur 'v BCL'v CCL'v DCL'v ECL'v FCL'v GCL'v ICLw'v L{x'v MI\y'v NT'v OOP{'v PB`|'v QT}'v Rc~'v U^'v W@I'v YE'v \y@Y ~'v ^OP'v ab |'v CL'v Fx'v L/c'v HY'v Peu'v CLt'v CL'v rH 'v y5@ 'v tĜ 5'v KR6'v I=s'v OP'v CL:'v WI;'v I<'v X?'v B\'v OP'v CLB'v @C'v N]D'v ~ E'v hfgF'v mG'v [34H'v A= L'v @#M'v }8RN'v P@O'v CqP'v B'Q'v GľR'v F?T'v EEU'v GV'v Fy'v OP'v CLY'v BZ'v {a 'v OP'v CL]'v w ^'v `g'v OP'v CLa'v P*'v OP'v CLd'v DB'v OPf'v ^'v CLh'v @i'v X'v OPk'v MJn l'v Im'v H(n'v r o'v `Qp'v [p q'v T r'v V s'v L7lt'v Lu'v R'v OP'v CLx'v !G-ay'v "Kz'v $Mw'v %OP'v 'CL}'v )F~'v +D'v TEX'v UDa'v VOP~'v XCL'v ZDX'v ]EV'v ^B 'v _F'v `J|1'v aG`'v bEV'v cEV'v dJ'v eB-'v gzJ'v iCy'v lOl'v nIB'v oL'v rr 'v tJ'v u@'v xP'v zv#,'v {P('v |L'v }eb3 'v ~J+'v Fd<'v CL'v E'v @g'v OP'v CL'v CL'v CL'v CL'v CL'v CL'v CL'v Rf'v Mff'v Yff'v GH'v hfg'v GH'v CL'v CL'v CL'v CL'v CL'v CL'v CL'v ^'v CL'v CL'v CL'v N.'v CL'v D 'v CL'v CL'v DG'v CL'v CL'v CL'v OP$'v Jl%'v H&'v N='v CL*'v H,'v h"'v OP.'v R'v CL'v CL'v OP'v CL3'v n4'v !AH6'v $df7'v %is38'v &[Y9'v (l[%:'v *k4;'v +pf<'v ,l'v -OP>'v .U?'v /H@'v 0FA'v 1T'v 2OPD'v 3DE'v 4H0ZF'v 5G3vG'v 6Q&'v :Df'v ;Ic3'v 'v Cr 'v Dmi 'v Ep3 'v Fp !'v ICL 'v JCL'v KCL'v Mb6 'v POP'v QS'v RfW'v SHP'v Vr 'v 'v tL'v CL'v CL'v CL'v CL'v CL'v IK'v Iy^'v R'v s 'v G 'v B+'v EZ'v P5 'v n3'v Fs'v }; 'v mBk'v EP'v y-'v w 'v p,'v Z~'v L'v i\ 'v UD 'v ^3'v ^ff'v ^ 'v CL'v CL'v CL'v CL'v CL'v OP'v OP'v OP'v CL'v Jw'v H{F'v H:'v Gm'v gH'v gH}e'v x}f'v yc ^ ^ M'v t{ N'v D O'v IT%P'v EQ'v Sw;R'v PS'v o T'v R2V'v I~ X'v KEY'v LF['v M!\'v NU^'v Qh&_'v Rz* `'v T@0a'v VsQb'v Wu=qc'v Xs'v ZCL'v [CL'v \CLg'v _m3 'v bCL'v cCL'v dCL'v eCLm'v hDn'v ko'v lv 'v nCL'v pCL'v qCL'v rCL'v sCL'v tCL'v uCLw'v xzx'v zI{y'v {R'v |OP{'v }CD|'v ~Tn}'v eW~'v ^'v @I'v E'v v ~'v OP'v c |'v CL'v Fծ'v Lv4'v Ht'v Iu'v CLt'v CL'v p- 'v y 'v t 5'v KXb6'v Iu'v OP'v CL:'v W;'v H<'v U?'v Brd'v OP'v CLB'v A+C'v N ND'v ~ E'v wF'v k >G'v a{H'v A L'v wuM'vsN'vKO'vC}yP'vB0SQ'vGR'vFU{T'vEqU'vG>V'vFa'vOP'vCLY'vC6]Z'v| 'v OP'v"CL]'v$xe ^'v&`?'v'OP'v)CLa'v,P'v-OP'v/CLd'v1D|'v3OPf'v5^'v6CLh'v8@۶i'v9Wp'v;OPk'vI =n'v@s o'vB`qp'vDZ\) q'vFT. r'vGUL s'vHL>t'vILu'vJR!'vKOP'vuCLx'vwG4y'vxJz'vzM@'v{OP'v}CL}'vF~'vD'vE'vD'vOP~'vCL'vD'vEV'vEV'vF'vJ'vG`'vEV'vEV'vJ'vC-'vz$'vC'vLv'vI^!'vL'vr 'vK <'vBV'vLv'vv#,'vP('vLT'vd+ 'vJ+'vF'vCL'vEY'vJ'vOP'vCL'vCL'vCL'vCL'vCL'vCL'vCL'vNg'vM'vYg'vGH'vhG'vGH'vCL'vCL'vCL'vCL'vCL'vCL'vCL'v^'vCL'vCL'vCL'vN*p'vCL'vD%'vCL'vCL'vBE'v CL'v CL'v CL'vOP$'vJzy%'vH &'vM 'v>CL*'v@HV,'vAgf'vBOP.'vCRI'vECL'vFCL'vIOP'vKCL3'vMo4'vOAH6'vRf7'vSg48'vT^g9'vWlf^:'vYi3;'vZn<'v[lFf'v\OP>'v]U?'v^H@'v_F'A'v`S1'vaOPD'vbDE'vcHP2F'vdGU G'veQ'vhKs3'viPp'vjJ'vldV 'vo_''vpES'vqs8 'vrm 'vsp| 'vtq9 !'vCL 'vCL'vCL'vaЊ 'vOP'vSG1've'vIvS'v@n'vD 'vu:'vCL'vCL'vCL'vCL'vCL'vH:'vI|'vI\'vsrb 'vG 'vB'vF/'vN< 'vp'vFW'v}R 've'vD7O'vyF'vvt 'vne<'vY'vL:'vi= 'v k 'v `f'v Zf'v^ 'vCL'vCL'vCL'vCL'vCL'vOP'vOP'vOP'vCL'vJ'v H~'v!H'v"G$'v%hG'v(hG}e'vZ}f'v v= ^ ^ M'vkt` N'vmD2O'vnJv`P'voF/Q'vrSR'vtQS'vun T'vvRV'vw@X'vyEטY'vzG['v{M\'v}RU^'veb_'vz8 `'v@a'vrb'vuc'vr'vCL'vCL'vCLg'vo& 'vCL'vCL'vCL'vCLm'vDn'vS4o'vx^ 'vCL'vCL'vCL'vCL'vCL'vCL'vCLw'v}Hx'vIpy'vP4'vOP{'vEj|'vR}'v`'~'v^'v@I'vE'vp$ ~'vOP'vd |'vCL'vF'vL'vH~'vQu'vCLt'vCL'vk 'vx 'vt 5'vK`6'vI'vOP'vCL:'vX1[;'vGd<'vV?'vBn'vOP'v0CLB'v2A^vC'v4MwD'v5P E'v6o\*F'v8i\*G'v9dpH'v:A L'v;bM'v<\8RN'v=@#O'v>CP'v?B>Q'v@GR'vAFhRT'vBEU'vCG^V'vDF˕'vEOP'vGCLY'vICZ'vJ|} 'vLOP'vNCL]'vPx ^'vR`I!'vSOP'vUCLa'vXQ0'vYOP'v[CLd'v]DX'v_OPf'va^'vbCLh'vdA$Zi'veV,}'vgOPk'vhMz l'viM\)m'vjL(n'vkr o'v`up'vY q'vR r'vR\ s'vLB[t'vL u'vQ%'vOP'vCLx'vGQy'vRz'vL'vOP'vCL}'vGu~'vDH'vEA'vD'vOP~'vCL'vD'vEV'vEV'vF:'vJ'vGn'vEV'vEV'vJ'vC'vzJ'vE,O'vO'vI{.'vL'vr 'vK?'vA('vSQ/'vvč'vP('vL've'vUG?'vI@'vGA'vRsi'vOPD'vEJE'vHpF'vGrG'vQ-'vDS4'vIFg'vC'vdG 'v] 'vE'vsrb 'vme 'vp- 'vq !'vCL 'vCL'vCL'va 'vOP'vRP'vcH'vI0'vA'vׯ}0'vuG'vCL'vCL'vCL'vCL'vCL'vG'vIzF'vN U'vsl 'vGw 'vC 'vFs'vN 'vnp'vG('v} 'va9'v$Bk?'v'yF'v(v 'v*l.b'v+Wv'v-O'v0ixB 'v3f33 'v4a'v5Z9'v6^ 'v7CL'v9CL'v:CL'v;CL'v'vOPk'vMo l'vIm'vJ =n'vrs3 o'v`.p'vWp q'vP r'vRk s'vLIt'vLCu'vQ'vOP'vCLx'vGXy'vRRz'vL'vOP'vCL}'vH ~'vE&J'vF'vD'vOP~'vCL'vEG'vEV'vEV'vF?'vJ'vGn'vEV'vEV'vJZ'vD-'vz'vE,O'vO'vI'vL'vr 'vK-'v BuK'v#SC]'v%vZ'v&P('v'LC'v(fb3 'v)Jg'v+G'v-CL'v0E'v1~n'v2OP'v4CL'v5CL'v6CL'v7CL'v8CL'v9CL'v;CL'v>Ovf'v?w'v@Pg'vAGH'vBh('vCGH'vECL'vFCL'vGCL'vICL'vJCL'vKCL'vLCL'vM^'vNCL'vOCL'vPCL'vRN/}'v|CL'v~D'vCL'vCL'vCμ'vCL'vCL'vCL'vOP$'vJ%'vH&'vJ~'vCL*'vID,'vf*'vOP.'vS 'vCL'vCL'vOP'vCL3'vom4'vAH6'vgY7'v^Y8'vc9'vlf^:'vhY;'vn`<'vk'vOP>'vUp?'vI)@'vG3A'vR,'vOPD'vG-aE'vHDF'vG@G'vR3I'vBɚ'vG#4'vB9'vdG 'v_G'vF&'vs 'vn0 'vq9 'vr@3 !'vCL 'vCL'vCL'vd/ 'vOP'vR'vcL 'vI6'vALN'v'vu'vCL'vCL'vCL'vCL'vCL'v GeE'v I'v J.'vt>u 'vH 'vCZ'vG;'vP7. 'vss3'vFGR^'vI~ 'vL_d'vM@.'vPy-'vQwB 'vSj%'vTW 'vUP'vXi 'v\fY 'v]`'v^Y'v_^ 'v`CL'vaCL'vcCL'vdCL'veCL'vhOP'viOP'vjOP'vmCL'vpK+'vqHRw'vrH 'vsG'vw~8R'vz~8R}e'vc}f'vn ^ ^ M'vt` N'vDEO'vKhP'vFQ'vSR'vQ@S'vn T'vU|V'vB X'vEY'vGn['vͩ{\'vS?^'vai_'vzc `'vo a'v~b'vxc'vtH'vCL'vCL'vCLg'vp 'vCL'vCL'vCL'v CLm'vDn'vgo'v| 'vCL'vCL'vCL'vCL'vCL'vCL'vCLw'v~x'v Hky'v"P'v#OP{'v$GR|'v%Q}'v&b~'v(^'v*@;'v-EȮ'v0mh ~'v2OP'v5dT |'v7CL'v:GP'v+^GH+^CL+^-CL+^.CL+^/CL+^0CL+^1CL+^2CL+^3^+^4CL+^6CL+^7CL+^8N++^:CL+^=D+^?CL+^@CL+^AD- +^DCL+^ECL+^FCL+^IOP$+^JJ%+^KHH&+^NI+^PCL*+^SIy^,+^Tg+^UOP.+^VS3+^XCL+^YCL+^\OP+^]CL3+^`o4+^bAH6+^ezٚ7+^fi8+^gp9+^lm:+^l,;+^q<+^m3+^OP>+^U:?+^II@+^GR{A+^RI+^OPD+^FE+^HF+^G8G+^RC+^Cl+^G\+^BVf+^e +^]\+^F[+^tj. +^nB +^q +^r !+^CL +^CL+^CL+^c_ +^OP+^Q+^bמ+^J@+^AN+^AGZ +^u+^CL+^CL+^CL+^CL+^CL+^G(+^Io+^O 2+^t +^H@ +^C.+^G̶+^L +^q6f+^ G#+^ } +^^+^|nG+^yT+^w +^hI+^V,~+^Of+^i& +^c +^ `+^!Wٚ+^"^ +^#CL+^$CL+^&CL+^'CL+^(CL+^+OP+^,OP+^-OP+^XCL+^[Ki+^\H@T+^]H+^^G+^aPQ+^ePQ}e+^Xz}f'vFh ^ ^ M+^t` N+^DLMO+^K@.P+^G Q+^SR+^QhS+^oK T+^UV+^BiX+^F 8Y+^G[+^\+^P^+^f_+^z9 `+^o a+^saHb+^uǯc+^s+^CL+^CL+^CLg+^o] +^CL+^CL+^CL+^CLm+^Dn+^4o+^}G+^MOH+^NBU L+^OY8RM+^Ps#N+^QKcO+^RCP+^SB^Q+^TGt[R+^UFT+^VF)U+^WGV+^XH\+^ZOP+^[CLY+^EGZ+^},l +^OP+^CL]+^z ^+^^U+^OP+^CLa+^QV+^OP+^CLd+^E]+^OPf+^^+^CLh+^B i+^QM+^OPk+^N] l+^KHm+^Ln+^s o+^`9Vp+^Y3 q+^PaH r+^S s+^LQt+^LZu+^Pe3+^OP+^CLx+^Gy+^Nz+^LJ +^OP+^CL}+^HH~+^E}+^F+^D:+^OP~+^CL+^E+^EV+^EV+^F5+^J+^Gn+^EV+^EV+^JZ+^EJ+^{ey+^E2+^O+^I+^L+^r +^ L+^ Cy+^O+^v#,+^P+^L+^h +^Jk+^I$+^CL+^E+^}+^OP+^CL+^!CL+^"CL+^#CL+^LCL+^MCL+^NCL+^QP#3+^RG6g+^SPg+^TGH+^Vg+^WGH+^YCL+^ZCL+^[CL+^\CL+^]CL+^^CL+^_CL+^a^+^bCL+^cCL+^dCL+^eN/}+^gCL+^jD+^lCL+^mCL+^oD|+^qCL+^rCL+^sCL+^vOP$+^wJ%+^xH&+^{H+^}CL*+^I ,+^g+^OP.+^S+^CL+^CL+^OP+^CL3+^oa4+^AH6+^t7+^e38+^cs39+^lq:+^jFg;+^p3<+^k3+^OP>+^U]?+^Ih@+^GmA+^Q+^OPD+^G)E+^HAF+^GG+^R-+^C)+^G+^B&f+^e* +^_+^F+^u +^nn +^rs +^sU: !+^CL +^CL+^CL+^f +^OP+^Q +^bf+^I+^A+^@?= +^ug+^CL+^CL+^CL+^CL+^CL+^"Fh+^#I+^$Q91+^'t +^*H +^,C+^-HG+^/RW +^2p+^5G+^8} +^:^+^;ym+^>ym+^?w +^Bf+^CUm+^DO#+^Gj' +^Jbȉ +^K`vf+^LW<+^M^ +^OCL+^xCL+^yCL+^zCL+^{CL+^OP+^OP+^OP+^CL+^K+^H9+^H+^Gɔ+^r+^r}e+^W}f+^1b ^ ^ M+^u N+^DPO+^KrP+^GT~Q+^SR+^QS+^o T+^VV+^CX+^F$KY+^G'[+^㨊\+^Q}^+^er_+^z `+^@0a+^rgb+^vc+^r+^CL+^CL+^CLg+^o +^CL+^CL+^CL+^CLm+^DOn+^o+^~8= +^CL+^CL+^CL+^CL+^CL+^ CL+^ CLw+^yx+^Ly+^O34+^OP{+^HD|+^NĦ}+^^rj~+^^+^A@3+^CE+^Fo7 ~+^HOP+^Lg9 |+^NCL+^QG)+^RL+^SH+^VOu+^YCLt+^ZCL+^\\ +^]u\ +^^p 5+^aKCu6+^bJi+^cOP+^eCL:+^hZ`;+^jQ<+^kVr?+^mB+^nOP+^pCLB+^rB"C+^sUBD+^tL E+^vfzF+^wmpG+^xUpH+^yBVR L+^{ZM+^RN+^vqO+^CDP+^BjhQ+^GTR+^F>KT+^F^4U+^H V+^HXr+^OP+^CLY+^EZ+^}f +^OP+^CL]+^{ ^+^^8+^OP+^CLa+^Q+^OP+^CLd+^E+^OPf+^^+^CLh+^B\i+^P+^OPk+^N l+^MQm+^Mpn+^s o+^_p+^X8R q+^R = r+^T s+^LPt+^L u+^O+^OP+^CLx+^ Gy+^ MDz+^LB.+^OP+^CL}+^IS~+^E+^F(+^E+^OP~+^CL+^F+^EV+^EV+^!F+^"J+^#G} +^$EV+^%EV+^&JZ+^'E+^){m+^*F{)+^-O+^0I+^1L+^4r +^6L+^7Cy+^:Lv+^L~+^?hH +^@J+^AI"+^lCL+^oE+^p~n+^qOP+^sCL+^tCL+^uCL+^vCL+^wCL+^xCL+^zCL+^}Ng+^~F3+^Pg+^GH+^g+^GH+^CL+^CL+^CL+^CL+^CL+^CL+^CL+^^+^CL+^CL+^CL+^N(E+^CL+^D+^CL+^CL+^DV+^CL+^CL+^CL+^OP$+^JҪ%+^H&+^H+^CL*+^I,+^gc+^OP.+^S=+^CL+^CL+^OP+^CL3+^p 4+^AH6+^aY7+^UY8+^`&f9+^ly:+^if;+^of<+^k3+^OP>+^U?+^I@+^GA+^Qͬ+^OPD+^GE+^H6F+^GG+^R+^E+^Jff+^Df+^f!> +^^c@+^GE+^v( +^n +^rk +^s !+^ CL +^4CL+^5CL+^7eM +^9OP+^;Q+^BF+^?D+^@uP+^BCL+^DCL+^ECL+^FCL+^GCL+^JFѫ+^KI+^LI`+^OuS[ +^SHȉ +^UDJ+^VHm+^WK +^Zr&f+^]H'+^`}X +^b\0+^dyg+^gym+^hx+ +^jdZ+^kT+^lP+^ojb +^d" +^`ɚ+^Xff+^^ +^CL+^CL+^CL+^CL+^CL+^OP+^OP+^OP+^CL+^K2+^H0+^H+^Ge+^g+^g}e+^?k`}f+^\aW ^ ^ M+^u=< N+^DT%O+^K7P+^ GoQ+^ SR+^ QS+^ o T+^ W~V+^ D`X+^ F>wY+^ G[+^ O\+^ O^+^ d_+^ {r `+^ o a+^ sb+^ wc+^ tfg+^ CL+^ CL+^ CLg+^ o +^ CL+^ CL+^ "CL+^ #CLm+^ &Dn+^ )Io+^ * +^ ,CL+^ -CL+^ /CL+^ 0CL+^ 1CL+^ 2CL+^ 3CLw+^ 6Cx+^ 7K=qy+^ `O)+^ bOP{+^ cI |+^ dO}+^ e^~+^ g^+^ i@3+^ kEͻ+^ on4a ~+^ qOP+^ tfPL |+^ vCL+^ yG4+^ zL+^ |H+^ J6u+^ CLt+^ CL+^ [z +^ t +^ p 5+^ KB6+^ J+^ OP+^ CL:+^ Z;+^ P<<+^ Yqh?+^ C +^ OP+^ CLB+^ BUZC+^ VK~D+^ 5 E+^ hGF+^ k >G+^ R{H+^ Bj? L+^ wfgM+^ sQN+^ KLO+^ CP+^ Bx3Q+^ GrR+^ Ff&T+^ FU+^ H?V+^ H+^ OP+^ CLY+^ F Z+^ } +^ OP+^ CL]+^ | z ^+^ a@+^ OP+^ CLa+^ R+^ OP+^ CLd+^ E+^ OPf+^ ^+^ CLh+^ Bni+^ O+^ OPk+^ MQ l+^ N =m+^ N33n+^ r o+^ `p+^ (Yu q+^ )R\) r+^ +W s+^ ,LRt+^ -Lu+^ .Oe+^ /OP+^ 1CLx+^ 3Gxy+^ 4Loz+^ 6Lg+^ 7OP+^ 9CL}+^ ;IiN~+^ =El+^ >G+^ ?EA+^ @OP~+^ BCL+^ DF!O+^ GEV+^ HEV+^ IF+^ JJ+^ KG} +^ LEV+^ MEV+^ OK +^ PF-+^ R{<+^ SGo+^ VP e+^ XI+^ YL+^ \r +^ ^L+^ _D+^ bTz(+^ u9+^ P'2+^ Lٛ+^ lº +^ J+^ I"+^ CL+^ Ej+^ {e+^ OP+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ Ng+^ G6g+^ Ng+^ GH+^ g+^ GH+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ ^+^ CL+^ CL+^ CL+^ N#+^ CL+^ D+^ CL+^ CL+^ D+^ CL+^ CL+^ CL+^ OP$+^ J7%+^ H&+^ GA+^ CL*+^ J,+^ h+^ OP.+^ S;+^ CL+^ CL+^ OP+^ CL3+^ pG4+^ AH6+^ c7+^ [8+^ [Y9+^ lm:+^ f;+^ mٚ<+^ h+^ OP>+^ U ?+^ I@+^ GA+^ Qq+^ OPD+^ HE+^ I,F+^ H G+^ S+^ $@3+^ %D3+^ &@vf+^ 'fe +^ +[+^ TGh+^ Ux:D +^ Vn +^ Wr +^ Xtx !+^ [CL +^ \CL+^ ^CL+^ `g>? +^ bOP+^ cQ+^ dbDW+^ eJ+^ fB^+^ hb+^ iu6O+^ kCL+^ lCL+^ mCL+^ nCL+^ oCL+^ rF+^ tI+^ uN +^ xu +^ {ID +^ }D+^ ~HH+^ Q]6 +^ n+^ Hr+^ }: +^ Z"W+^ uW+^ yT+^ xt +^ b +^ T7+^ Q0+^ j +^ b3 +^ `C3+^ W+^ ^ +^ CL+^ CL+^ CL+^ CL+^ CL+^ OP+^ OP+^ OP+^ CL+^ L'+^ H)+^ H+^ GM+^ g+^ g}e+^ hk}f+^ _ ^ ^ M+^ $t` N+^ &DZO+^ 'KP+^ (G̶Q+^ +SR+^ ,QS+^ -o T+^ 0W2V+^ 1DfX+^ 2FFY+^ 3H*p[+^ 4N\+^ 5Owx^+^ 8bǿ_+^ :|8 `+^ ;@sa+^ =tb+^ >vc+^ ?t+^ ACL+^ BCL+^ DCLg+^ Fo +^ HCL+^ ICL+^ JCL+^ KCLm+^ NDqn+^ Q@#3o+^ S@Lb+^ UCL+^ VCL+^ WCL+^ CL+^ CL+^ CL+^ CLw+^ Bx+^ Jy+^ O#+^ OP{+^ I |+^ P%/}+^ ]U~+^ ^+^ @3+^ E+^ r]\ ~+^ OP+^ f |+^ CL+^ G:a+^ M[+^ H+^ NVAu+^ CLt+^ CL+^ W`B +^ tT +^ p 5+^ Kf6+^ JS+^ OP+^ CL:+^ [;+^ N3<+^ WS?+^ C'+^ OP+^ CLB+^ BC+^ U9D+^ 5 E+^ |pF+^ xG+^ QH+^ B L+^ x.M+^ s*N+^ KO+^ CP+^ B|Q+^ GeR+^ F`ZT+^ F#U+^ HkfV+^ G+^ OP+^ CLY+^ FTZ+^ } +^ OP+^ CL]+^ | ^+^ e+^ OP+^ CLa+^ T=s+^ OP+^ CLd+^ El+^ OPf+^ ^+^ CLh+^ Bi+^ N+^ HOPk+^ IM l+^ JMQm+^ KLffn+^ Lpf o+^ O`yFp+^ QYL q+^ RR r+^ SUk s+^ TLY t+^ UL^u+^ VO+^ WOP+^ YCLx+^ [Gy+^ \Jz+^ ^M+^ _OP+^ aCL}+^ cI~+^ eE+^ gGY<+^ hD+^ iOP~+^ kCL+^ mFL+^ oEV+^ pEV+^ qF/+^ sJ+^ tG+^ uEV+^ vEV+^ wK +^ xFX-+^ z{+^ {H+^ ~O+^ I+^ L+^ r +^ L+^ E,O+^ R+^ u9+^ Pi+^ Lm+^ m +^ JS+^ I"+^ CL+^ E+^ ~'+^ OP+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ Ng+^ N+^ Yg+^ GH+^ g+^ GH+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ CL+^ ^+^ CL+^ CL+^ CL+^ N+^ CL+^ D2+^CL+^CL+^DZ+^CL+^CL+^CL+^OP$+^J!%+^H&+^Q<_+^"CL*+^%JF,+^&h+^'OP.+^(ScG+^)CL+^*CL+^-OP+^/CL3+^2p4+^4A6+^6lg7+^7c8+^8b@9+^;l|:+^=g&g;+^>mg<+^?iFg+^@OP>+^AVk?+^BI-@+^CGLA+^DQ+^EOPD+^FH7%E+^GI3F+^HH6NG+^ISa+^tA+^vE0+^w@+^xf> +^{^+^|G)+^}y@ +^~n +^sU: +^t !+^CL +^CL+^CL+^f +^OP+^Q+^c+^J֕+^C+^%+^u +^CL+^CL+^CL+^CL+^CL+^G/+^I+^H>+^u +^I +^Ez+^IL\+^K +^t+^Hr+^}T +^X+^s^+^ym+^xP +^_+^SK+^Q+^j +^gD +^`y+^X3+^^ +^CL+^CL+^CL+^CL+^CL+^OP+^OP+^OP+^CL+^Le+^H0+^HV+^G5+^cu+^ cu}e+^p}f+^ [ ^ ^ M+^Lu_ N+^ND]jO+^OKCP+^PGKQ+^TSR+^URS+^Vo,| T+^XW;kV+^YD EX+^ZF:Y+^[HOn[+^]\+^^P.9^+^aa_+^b} `+^c@a+^et8Rb+^fyQc+^hug+^jCL+^kCL+^lCLg+^no +^pCL+^qCL+^rCL+^tCLm+^wDn+^@fo+^@"j+^CL+^CL+^CL+^CL+^CL+^CL+^CLw+^y{x+^K\)y+^N+^OP{+^H|+^Pv}+^^ݭ~+^^+^@;+^Ex+^n$ ~+^OP+^g |+^CL+^GT+^M9+^I->+^Kqhu+^CLt+^CL+^TH +^s > +^oj 5+^K6+^I+^OP+^CL:+^ [eE;+^ LZ<+^ SY?+^CL!+^OP+^CLB+^BwC+^U7D+^=W E+^@34F+^tG+^\H+^BX L+^wuM+^saHN+^KkO+^CP+^ BQ+^!GR+^"FU{T+^#G@U+^$HrV+^%G+^&OP+^(CLY+^*F~Z+^+}~ +^-OP+^/CL]+^1},l ^+^3gs<+^4OP+^6CLa+^9TM+^:OP+^EsZ+^hOPf+^j^+^kCLh+^mBEi+^nMq+^pOPk+^qM\ l+^rMzm+^sL(n+^tq+ o+^w`p+^yVff q+^zOf r+^{Qk s+^|Lb<t+^~Lu+^O7+^OP+^CLx+^Gy+^Lz+^MMz+^OP+^CL}+^I{~+^F"+^G,+^D+^OP~+^CL+^F+^EV+^EV+^F/+^J+^G+^EV+^EV+^KF+^Fff+^{+^H+^PCL+^?CL+^@CL+^COP$+^DJg%+^EH$&+^GOІ+^JCL*+^MJzy,+^NiY+^OOP.+^PSA+^RCL+^SCL+^VOP+^WCL3+^Zp64+^\AH6+^_q@7+^`_ٚ8+^aa9+^cl:+^enS3;+^fmfg<+^gn+^hOP>+^iV{?+^jI*@+^kGA+^Q+^OPD+^HAE+^IN1F+^HWG+^SZ+^A+^EL+^A+^gCr +^^+^H +^{ +^o +^sF +^u !+^CL +^CL+^CL+^g +^OP+^R+^e>+^JV+^B+^9P+^u;D+^CL+^CL+^CL+^CL+^CL+^G+^I+^GJY+^v+^O? +^o3+^H+^} +^V+^q+^ym+^ y +^ ^o+^ S+^ R+^k. +^`w +^`<+^V+^^ +^CL+^CL+^CL+^CL+^CL+^ OP+^!OP+^#OP+^%CL+^(L+^)HD+^*H(+^+Gҥ+^/g+^2g}e+^f}d}f+^Y9 ^ ^ M+^tu N+^wD_O+^xKP+^yH0Q+^|SR+^}R(S+^~o T+^WV+^D­X+^F6WY+^HwV[+^\+^P^+^h_+^~ `+^@0a+^r b+^uzc+^s+^CL+^CL+^CLg+^oښ +^CL+^CL+^CL+^CLm+^D?n+^yo+^@V+^CL+^CL+^CL+^CL+^CL+^CL+^CLw+^Aux+^K.y+^Rp+^OP{+^Ib"|+^OW}+^^~+^^+^@;+^E+^n ~+^OP+^e |+^CL+^Gu^+^Mh3+^I+^Lpu+^CLt+^CL+^&T > +^'qt +^(n 5+^*K6+^+IЍ+^,OP+^.CL:+^1Zy;+^4J<+^5X[?+^6CSc+^8OP+^:CLB+^ E+^@m\F+^AkG+^BZH+^CB L+^DxM+^EsqN+^FKO+^GCP+^HBQ+^IGzR+^JFjT+^KG7U+^LH8V+^NGRQ+^OOP+^QCLY+^RFZ+^T~# +^UOP+^WCL]+^Y} ^+^[gC+^\OP+^^CLa+^U(+^OP+^CLd+^E+^OPf+^^+^CLh+^C i+^L+^OPk+^Mn l+^KHm+^J\n+^p o+^`up+^X q+^RW r+^R s+^LlAt+^Lu+^O+^OP+^CLx+^Gy+^Rz+^Mm+^OP+^CL}+^I/~+^FO+^Gˀ+^D+^OP~+^CL+^Fy+^EV+^EV+^F:+^J+^G+^EV+^EV+^KF+^G+^{+^H +^O+^IE+^M +^r +^L+^FN=+^Os+^v#,+^P(+^L+^ lL +^ JS+^ I"+^ CL+^E+^}+^OP+^CL+^CL+^CL+^CL+^CL+^CL+^CL+^Ng+^G6g+^ X+^!GH+^#h+^$GH+^&CL+^'CL+^PCL+^QCL+^RCL+^SCL+^TCL+^V^+^WCL+^XCL+^YCL+^ZN*+^\CL+^_D+^aCL+^bCL+^dE+^fCL+^gCL+^hCL+^kOP$+^lJ%+^mHP&+^pN+^sCL*+^uJ,+^vhܼ+^wOP.+^xTN+^zCL+^{CL+^~OP+^CL3+^p4+^AH6+^Yٙ7+^UY8+^b39+^l:+^i3;+^o3<+^i+^OP>+^Vܫ?+^I>@+^H A+^R"+^OPD+^I3E+^IlAF+^HyG+^R+^@ +^Dg+^@+^gw1 +^]@+^HI+^|oQ +^o,| +^t/ +^v4 !+^CL +^CL+^CL+^g +^OP+^Rn^+^e+^J+^C`+^|^ +^u>+^CL+^CL+^CL+^CL+^CL+^G+^I+^N&+^vR +^IQ +^!F7 +^"I\+^#K +^'r#3+^*IE+^-} +^/T|+^0n+^3y+^4y@Y +^7]V6+^8St+^9QU+^P+^rBQ+^sGrR+^tF^.T+^uGjU+^vIaV+^wGE+^xOP+^zCLY+^|FZ+^}~OI +^OP+^CL]+^~OI ^+^g +^OP+^CLa+^V+^OP+^CLd+^EW+^OPf+^^+^CLh+^C6]i+^L4e+^OPk+^M l+^Qm+^Mn+^rW o+^_ p+^TH q+^OH r+^P s+^Lqt+^Lu+^O+^OP+^CLx+^Gy+^Qz+^Mw+^OP+^CL}+^Ik~+^Fw+^G5+^E$T+^OP~+^ CL+^G4+^EV+^EV+^F/+^J +^G+^EV+^EV+^KF+^G+^{ey+^HpV+^ PP+^"I٢+^#M +^'r +^)L+^*FN=+^-Lv+^/u9+^0Ny+^1L+^2m +^3Jn+^4HW+^6CL+^9E+^;{e+^CL+^?CL+^@CL+^ACL+^BCL+^CCL+^DCL+^GNg/FG6g/FNg/FGH/F h >/F GH/F CL/F CL/FCL/FCL/FCL/FCL/FCL/F^/FCL/FCL/FCL/FN$/FCL/FD /FCL/F CL/F"FE/F%CL/F&CL/F'CL/F)OP$/F*J!%/F+H&/F.M/F1CL*/F3J,/F4i^q/F5OP./F6Ti/F8CL/F9CL/FdOP/FfCL3/Fiq74/FkA6/Fmf7/Fnd8/FoZ9/Frl:/Fvgf;/Fwm/FzVũ?/F{JT@/F|HVA/F|RK/F}OPD/FI۞E/FISF/FH3G/FR?/F@l/FE3/F@/Fg /F^f/FH/F} /FoXB /Ft /Fvv !/FCL /FCL/FCL/FgJ /FOP/FRd/Ff9P/FJWN/FCl/Fə/FuLE/FCL/FCL/FCL/FCL/FCL/FH1,/FI/FI$/Fv( /FIUU /FFE/FI/FN /Fq9/FIC/F},l /FR/Fh_/Fy/Fyz /F\Q@/FSwr/FR4/Fk /Fcw /Faٚ/FW#3/F^ /FCL/FCL/FCL/F,CL/F-CL/F1OP/F2OP/F3OP/F5CL/F8M$\/F9Hh:/F;Hj/FO/FYCP/FZBbQ/F[GR/F\F^.T/F]GU/F^I0V/F_Gym/F`OP/FbCLY/FdGZ/Fe~s /FgOP/FiCL]/Fk~ ^/Fmg/FnOP/FpCLa/FrV[/FtOP/FuCLd/FwE/FyOPf/F{^/F|CLh/F~Cai/FWN/FOPk/FM l/FO\)m/FMn/FqT{ o/F`p/FZ{ q/FS r/FS=q s/FLw0t/FLu/FN/FOP/FCLx/FGy/FO$:z/FMY/FOP/FCL}/FI~/FF/FH6/FEA/FOP~/FCL/FG`/FEV/FEV/FFݱ/FJ /FG/FEV/FEV/FKF/FGf/F{ey/FI"d/FP e/FI/FM /Fr /FL/FFn/FT/Fu9/FMi/FLN/Fn' /FJ/FH*/FCL/F!E/F"{\/F$OP/F&CL/F'CL/F(CL/F)CL/F*CL/F+CL/F,CL/F/O3/F0G6g/F2Pg/F3GH/F4g/F5GH/F7CL/F8CL/F9CL/F:CL/F;CL/FCL/F?^/F@CL/FACL/FBCL/FDN/FECL/FHD /FJCL/FKCL/FMF(/FPCL/FQCL/FRCL/FTOP$/FUJ%/FVH&/FYL0/FCL*/FK,/Fh/FOP./FU/FCL/FCL/FOP/FCL3/FqF4/FA6/F`7/F_@8/F\9/Fl9:/Fi;/Fo/FV*?/FJ7@/FH9rA/FRsi/FOPD/FHzxE/FIF/FHzG/FQ/F}2/FC3/F}/Fh2 /F^/FHْ/Fr /Fo /Fu ~ /Fw !/FCL /FCL/FCL/Fhb /FOP/FS;/Ff+/FJ~/FC /FtaR/FuLE/FCL/FCL/FCL/FCL/FCL/FHY/FI6/FMj\/Fw /FG /F F//F IΘ/F L@- /Fp/FIe/F|= /FR/Fcw/Fy/Fy /F [x/F!SO/F"Qn/FMk /FPa&f /FQa /FSV/FT^ /FUCL/FVCL/FWCL/FXCL/FZCL/F]OP/F^OP/F_OP/FaCL/FeMe/FfHr5/FgH/FhG=/FkAaH/FnAaH}e/FS6}f/FW ^ ^ M/Fuλ N/FDpO/FKP/FH)Q/FS/R/FRS/FoK T/FXBV/FEIX/FFeHY/FIf[/F\/FO ^/Fe6_/F `/F a/Frgb/FtHc/FqH/FCL/FCL/FCLg/Fp; /FCL/FCL/FCL/FCLm/FDGn/FFgo/FA/FCL/FCL/FCL/FCL/FCL/FCL/FCLw/Fypx/FGHy/FNǮ/FOP{/FJ|/FN}/FaG~/F^/F @3/F"E /F%n ~/F'OP/F+f- |/F-CL/F0GE/F1M۽/F2Im/F5LƉu/F8CLt/F9CL/F;P /FM/Fs34N/FK\)O/FCP/FBQ/FGR/FFzT/FGU/FId]V/FH /FOP/FCLY/FGuZ/F~ /FOP/FCL]/F ^/Ffm/FOP/FCLa/FVR/FOP/FCLd/FE/FOPf/F^/FCLh/FCi/FX/FOPk/FN-; l/FNm/FLn/Ft o/F`[1p/FYz q/FT= r/FU s/FLyt/FLu/FN/FOP/FCLx/FGxy/FMz/FMN/FOP/FCL}/FIL~/FF/FHo/FEH/FOP~/FCL/FG/FEV/FEV/FF//FJ /FG/FEV/FEV/FKF/FH-/F{ey/F IIw/F P/FV&?/FJV@/FHUA/FR /FOPD/FIظE/FI4F/FHG/FQB/F@g/FDg/F@/Fh /F ]@/F I~/F @u/F o /Fu /Fw !/FCL /FCL/FCL/Fh(# /FOP/FS+/Fe#/FJc/FC/Fa/FuXP/F!CL/F#CL/F$CL/F%CL/F&CL/F)Hu//F*I/F+G/F.wQ? /F2H /F4F//F5J%g/F6N` /F9rɚ/FwHx/F?Hky/F@Nz/FAOP{/FCJ\|/FDN]}/FEb~/FG^/FI@3/FKE,/FOoK ~/FQOP/FTj |/FVCL/FYG/FZMf/F[Iu/F_Go>u/FaCLt/FbCL/FdL /FepG /Fgm 5/FiK6/FjJc/FkOP/FmCL:/FX;/FFU/F Uv?/F JwX@/F HuA/F Ra/F OPD/F KD|E/F I0F/F I %G/F (Q/F ,A/F -Ef/F .@/F /h! /F 2^/F 3I/F IU?/F JJ\@/F KHrA/F LR4/F MOPD/F NJmE/F OJF/F PI-G/F QQ/F UC</F VHC3/F WB/F XiI /F []/F ]I`d/F ^A//F _o /F `vY /F ax !/F dCL /F eCL/F fCL/F ih /F kOP/F lSK/F mff/F nJ+/F oC/F rs/F uuQ/F wCL/F xCL/F yCL/F zCL/F {CL/F ~H/F I/F G+4/F w /F Gf /F FL/F J3/F N% /F s/F J/F } /F V/F ^/F y/F zF^ /F Yq/F RϠ/F R!E/F ll /F h /F `f/F Z6f/F ^ /F CL/F CL/F CL/F CL/F CL/F OP/F OP/F OP/F CL/F N#/F H}/F H6/F GM/Fzff/Fzff}e/F rT}f/F M+ ^ ^ M/F,x N/F/D1O/F0L5{P/F1IEQ/F4SaR/F5SS/F6oXB T/F8YtV/F9GAX/F;F Y/FO^/FAcY_/FB@UU`/FC@0a/FFr b/FGuc/FHrk/FJCL/FKCL/FtCLg/Fvp /FxCL/FzCL/F{CL/F|CLm/FEn/F@Nfo/FB+/FCL/FCL/FCL/FCL/FCL/FCL/FCLw/FAx/FJy/FN/FOP{/FJ~|/FP }/Ff95~/F^/F@;/FEݚ/Fo; ~/FOP/Fj |/FCL/FGa/FN$/FI/FGJu/FCLt/FCL/FMy /Fp/ /Fn 5/FK6/FJx/FOP/FCL:/FXN;/FRH/FC L/FZ\)M/FRpN/FL+O/FD 9P/FBQ/FGpR/FFT/FHU/FI'V/FGL/F OP/F CLY/F H#Z/F /FOP/FCL]/F<@^/F>f`/F?OP/FACLa/FDV/FEOP/FGCLd/FIE/FKOPf/FM^/FNCLh/FPDi/FQUx/FSOPk/FTNT l/FUNm/FVLn/FWr o/FZ`Wnp/F\U. q/F]M r/F^O s/F_Lu]t/FaL0#u/FbM/FcOP/FeCLx/FgG'y/FhJpz/FjM/FkOP/FmCL}/FoJ,~/FqGH!/FrI/FsE~:/FtOP~/FvCL/FH[/FEV/FEV/FG&"/FJā/FG/FEV/FEV/FK)/FI/FzJ/FJt/FO/FJ:/FM /Fr /FL/FG/FLv/Fv#,/FLX/FM/Fu /FJц/FH/FCL/FE/F~n/FOP/FCL/FCL/FCL/FCL/FCL/FCL/FCL/FNg/FG6g/FY/FGH/Fiz/FGH/FCL/F CL/F CL/F CL/F CL/FCL/FCL/F^/FCL/FCL/FCL/FN/FCL/FDJ/FCL/FCL/FGg/F!CL/F"CL/F#CL/F&OP$/F'J9%/F(H!&/F*I/F-CL*/F0K,/F1j9/F2OP./F3UM/F5CL/F6CL/F8OP/F:CL3/F=r,4/F?A6/Fj~L7/Fkl&f8/FlmY9/Fnl:/Fpjg;/Fqn,/FtTd?/FuJ@/FvHA/FwS/m/FxOPD/FyJE/FzJF/F{IQG/F|Q0/F@/FD/F@g/FiA /F[WC/FIW/FB/Fp$ /Fv /Fy !/FCL /FCL/FCL/FgL /FOP/FTA/Fe/FJnt/FD\0/Fh|/Fuӑ/FCL/FCL/FCL/FCL/FCL/FHk/FI/FI/Fx /FI /FF/FJBU/FM+ /Ft/FJ/F}T /FU/F^Q/Fy/Fz /FX/FRI/FR/Fm /FcD /F`/FZ/F^ /FCL/FCL/FCL/FCL/FCL/FOP/FOP/FOP/FCL/F3N`/F4H/F5H/F6G/F9g\/F/FIb/FNzu/FCLt/FCL/F JÖ /F qz /F nI 5/FKA6/FJ/FOP/FCL:/FYC;/FRMN/F@CL/FCD/FDCL/FECL/FGH /FJCL/FKCL/FLCL/FOOP$/FPJ %/FQH&/FSI?/FVCL*/FYKډ,/FZir/F[OP./F\Uz/F^CL/F_CL/FOP/FCL3/Fr\4/FA6/Fp337/Fs38/Fag9/Fl&:/Fhٚ;/Fl3/FTvP?/FJ@/FHAA/FS\/FOPD/FK=E/FJ9TF/FIpG/FQ0/F~/FCFf/F}g/Fi /F]/FIL/FC=/FpPL /FwB /Fy# !/FCL /FCL/FCL/FgL /FOP/FTK/Ff/FJ/FD|/F착/Fv/FCL/FCL/FCL/FCL/FCL/FH/FI٢/FHv/Fx+ /FH /FFxC/FJ3/FNf /FqY/F K(/F } /FX-/F^0/Fy/Fz? /FX/FRw/FRh/Fmh /Fh&f /F!a/F"Z/F#^ /F$CL/F%CL/F&CL/FPCL/FQCL/FTOP/FUOP/FVOP/FXCL/F\N%/F]Ho/F^H/F_G/Fbh/Feh}e/Fa}f/F MH ^ ^ M/Fx# N/FDO/FLP/FIiNQ/FSiR/FSES/Fouq T/FZV/FGX/FFY/FI[/F\/FO[^/Fa_/F@c`/F@"a/FqHb/FtW c/Fs/FCL/FCL/FCLg/Fq: /FCL/FCL/FCL/FCLm/FEn/Fo/FC</FCL/FCL/FCL/FCL/FCL/FCL/FCLw/FB\x/FJW y/FOaH/FOP{/FK|/FP`}/Fh ~/F^/F@;/FE/Fo ~/FOP/F"g |/F$CL/F'HZ/F(N\@/F)J</F-Hu/F/CLt/F0CL/F2H{ /F3q /F5nC 5/F7K26/F8J/F9OP/F;CL:/F>Z;/FAP/FTb)?/FJ@/FH{A/FS/FOPD/FKqNE/FJTF/FIrG/FQ/F@g/FEC4/FAf/Fit /F]k/FJF/FC/Fpmy /Fw /Fz % !/FCL /FCL/FCL/F eT /FOP/FTQ/Ffq/FIj/FD_/Fv/Fver/FCL/FCL/FCL/FCL/FCL/F H/F!I/F"Ef/F%xt /F(I /F+Fq/F,J,/F-LN /F0qL/F3Khy/F6} /F8W7/F9\/FI3.TOq?3.K@3.IpA3.S3.OPD3.K+.E3.JrF3.IQG3.Q3.Ei3.Jff3.E`3.j* 3.]L3.J8E3.D|3.p< 3.x# 3.z !3.CL 3.CL3.CL3.h6 3.OP3.T3.f3.I|3.D3.Ӱ3.vL3.CL3.CL3.CL3.CL3.CL3.H 3.Iw3.K)3.x 3.HU 3.F3.JX3.O? 3.r33.K\3.}h 3.V3.[3."yƨ3.#{ 3.%Wʙ3.&RR3.'S33.+m 3..i" 3./`f3.0Y3.1^ 3.2CL3.3CL3.5CL3.6CL3.7CL3.:OP3.;OP3.N3.OP3.CLx3.H]y3.Mcz3.Mf3.OP3.CL}3.JF~3.G3.I3.F*3.OP~3.CL3.I 3.EV3.EV3.G43.Jn3.Go3.EV3.EV3.KF3.I3.zJ3.K 3.O3.JP3.L<3.r 3.M 3.I"d3.PI3.vR3.LT3.Mk3.!v 3."J΢3.#I[3.%CL3.(E3.)Ŀ3.*OP3.,CL3.-CL3..CL3.0CL3.1CL3.2CL3.3CL3.6Ng3.7G6g3.8Yg3.9GH3.:gQ3.;GH3.=CL3.?CL3.@CL3.ACL3.BCL3.CCL3.DCL3.E^3.FCL3.HCL3.ICL3.JN d3.LCL3.OD&3.yCL3.zCL3.{H3.~CL3.CL3.CL3.OP$3.K%3.H&3.G(3.CL*3.Lf,3.k)3.OP.3.S73.CL3.CL3.OP3.CL33.s 43.A63.uf73.rf83.fL93.l:3.g;3.n<3.hL3.OP>3.TOq?3.K/@3.I+A3.T3.OPD3.K,E3.JF3.IG3.R 3.@P3.Dٚ3.@vf3.j8h 3.^3.J\E3.E 3.p 3.x 3.z !3.CL 3.CL3.CL3.f7 3.OP3.T-3.fn3.IL\3.D23.w3.v3.CL3.CL3.CL3.CL3.CL3.Hx3.IM3.Ig3.x 3. HU 3.Fy3.Jm3.K& 3.t3.K3.A}R 3.CTO3.DZп3.Hy3.I{LS 3.KWh3.LR0g3.MS>3.PnB 3.ShD 3.T`f3.U[f3.W^ 3.XCL3.YCL3.ZCL3.[CL3.\CL3.`OP3.aOP3.bOP3.dCL3.gOU3.hHj3.jH3.kG3.myf3.nyf}e3.p}f3.JO} ^ ^ M3.x_ N3.DO3.M,6P3.IbQ3.SqR3.SHS3.~; T3.[VV3.HX3.FY3.Jv][3.\3.M)?^3.f'_3.@j`3.A Da3.sb3.v34c3.s3.CL3.CL3.CLg3.r 3.CL3.CL3.CL3.CLm3.En3.@Qo3. DU3. CL3. CL3. CL3.CL3.CL3.CL3.CLw3.A >x3.Ky3.Nz3.OP{3.L|3.R}3.k~3.^3. @m3."F[3.%pmy ~3.'OP3.+k' |3.-CL3.0Hld3.1Nd03.2J3.5Q<_u3.7CLt3.9CL3.;I 8 3.I"d3.ALv3.Cv3.DLŎ3.EM"3.FvM 3.GJ3.HJԭ3.JCL3.ME3.N{\3.POP3.RCL3.SCL3.TCL3.UCL3.VCL3.WCL3.XCL3.[Ng3.\G6g3.^X3._GH3.`gQ3.aGH3.cCL3.dCL3.eCL3.fCL3.gCL3.iCL3.jCL3.k^3.lCL3.mCL3.nCL3.N d3.CL3.D'3.CL3.CL3.Iw3.CL3.CL3.CL3.OP$3.K!%3.H&3.GSC3.CL*3.L,3.jI3.OP.3.S||3.CL3.CL3.OP3.CL33.s43.A63.l&f73.b83.cs393.l:3.fg;3.lf<3.iY3.OP>3.T4?3.KO@3.IHA3.T.T3.OPD3.LME3.JF3.JUG3.R(z3. ~_3. C<3. ~3. js 3. ]m63. JJ3. EZ3. p 3. y 3. {in !3. CL 3. CL3. CL3. i| 3. OP3. T>3. f3. I3. D3. BOv 3. "w43. $CL3. %CL3. &CL3. 'CL3. (CL3. ,H3. -I3. .Lu3. 1y 3. 4GD 3. 6Fm3. 7J3. `QO 3. cr6f3. gL)3. j~# 3. lTj3. mZ3. pyƨ3. q{w 3. sW3. tRL3. uS3. yn 3. |i 3. }`3. ~[33. ^ 3. CL3. CL3. CL3. CL3. CL3. OP3. OP3. OP3. CL3. O63. HR3. H3. G=3. yf3. yf}e3. Y}f3.;KI ^ ^ M3. y6 N3. DʅO3. MP3. IQ3. SR3. SS3. @-ST3. [V3. HXlX3. FY3. J[3. h\3. Nb^3. f)_3. @q`3. Ba3. q{b3. v#c3. sB3. CL3. CL3. CLg3. rb 3. CL3. CL3. (CL3. )CLm3. ,Fon3. /@C3o3. 1D3. 3CL3. 4CL3. 6CL3. 7CL3. 8CL3. 9CL3. :CLw3. =|\x3. >JHy3. ?Op3. AOP{3. BLf|3. CS}3. Dl~3. F^3. HA3. KFë3. Np< ~3. POP3. Smt |3. UCL3. XHt3. YNq3. [J3. ^J `u3. `CLt3. aCL3. cEV 3. q 3. nĜ 53. L63. K3. OP3. CL:3. [;3. J-A<3. X?3. D4K3. OP3. CLB3. E C3. V_D3.  E3. h(F3. lG3. Q H3. C L3. wfgM3. spN3. KzO3. DBP3. C Q3. GR3. FT3. IfU3. K?oV3. H3. OP3. CLY3. I{Z3. AK3. OP3. CL]3. A:^3. j3. OP3. CLa3. X.3. OP3. CLd3. F3. OPf3. ^3. CLh3. Di3. Q<_3. OPk3. O l3. Nm3. Nffn3. s o3. _Ip3. U33 q3. OǮ r3. P3 s3. Lt3. L8Uu3. Lg3. OP3. CLx3. Hmy3. Kٺz3. Mi3. OP3. CL}3. K ~3. HP3. Je^3. F3. OP~3. !CL3. #I3. &EV3. 'EV3. (GC3. )J3. *G3. +EV3. TEV3. UKU3. WI3. Yxd3. ZK3. ]O?3. _JP3. `L3. cr 3. eM 3. fIIw3. iLv3. kv3. lL3. mM(3. oyE 3. pJц3. qJ\3. sCL3. vE3. wΞ3. xOP3. zCL3. {CL3. |CL3. }CL3. CL3. CL3. CL3. Pg3. Kf3. Yg3. GH3. g343. GH3. CL3. CL3. CL3. CL3. CL3. CL3. CL3. ^3. CL3. CL3. CL3. N3. CL3. D*|3. CL3. CL3. I>3. CL3. CL3. CL3. OP$3. K1C%3. Hխ&3. H/3. CL*3. LŎ,3. j^33. OP.3. S3. CL3. CL3. OP3. CL33. sP43. A63. m73. b@83. eٚ93. l:3. j34;3. oFg<3. kL3. OP>3. TA ?3. Kl@3. !Ic&A3. "TS 3. #OPD3. $L 7E3. %JF3. &J"yG3. 'RF3. +A@3. ,E|3. -AI3. .j 3. 1]3. 2JK3. 4F 3. 5q 3. 6yl 3. 7{ !3. :CL 3. ;CL3. g>? 3. @OP3. BT3. CfЗ3. DI|3. EE3. H~3. JwT3. LCL3. MCL3. OCL3. PCL3. QCL3. TI3. UIg3. VM 13. yN 3. FU 3. G )3. J3. Kr 3. r3. Lm3. ~ 3. T@S3. Z[3. y3. {/ 3. V3. Q&3. R3. n 3. i 3. bC33. [3. ^ 3. CL3. CL3. CL3. CL3. CL3. OP3. OP3. OP3. CL3. O̥3. H"3. I\3. G%3. y3. y}e3. HX }f3. cHY ^ ^ M3. y N3. D]O3. MbhP3. JwQ3. SR3. SS3. @`2T3. [I V3. HrX3. G&Y3. J[3. \3. J.^3. eT_3. @x`3. Ca3. ub3. w(c3. s#3. CL3. HCL3. ICLg3. Lry 3. NCL3. OCL3. PCL3. QCLm3. TGPn3. W4o3. YDr3. \CL3. ]CL3. ^CL3. _CL3. `CL3. aCL3. bCLw3. e~x3. gHy3. hNk3. iOP{3. jMM|3. kSx"}3. llݭ~3. n^3. rAr3. sF3. vp- ~3. xOP3. {j[ |3. }CL3. H3. N3. Ib3. O-|u3. CLt3. CL3. F 3. q+ 3. n1' 53. L63. K"3. OP3. CL:3. [;3. I<3. W^?3. DX3. OP3. CLB3. E2C3. UD3. в E3. oF3. qfgG3. OpH3. CB L3. w8RM3. s34N3. KT{O3. DLP3. CYQ3. G1R3. F{)T3. JU3. Ks^V3. I[3. OP3. CLY3. IZ3. AK3. OP3. CL]3. BN^3.k:3.OP3.CLa3.Y3.OP3.CLd3.FE3.OPf3. ^3.!CLh3.#Ei3.$P,3.&OPk3.'N l3.(Jm3.*In3.+qq o3..`yFp3.0S\ q3.1M r3.2O s3.3LSt3.4L;u3.5L3.6OP3.8CLx3.:Hy3.;Jߋz3.=M3.>OP3.@CL}3.BK)~3.DH{3.EJ3.FF3.GOP~3.ICL3.KIb3.vEV3.wEV3.xGC3.yJ3.zG3.{EV3.}EV3.~KU3.J3.x3.K3.OP3.J23.LΫ3.r 3.M 3.IL\3.T<3.v3.L3.M-z3.yE 3.J΢3.Jԭ3.CL3.E3.~'3.OP3.CL3.CL3.CL3.CL3.CL3.CL3.CL3.Ng3.K3.Y6g3.GH3.gQ3.GH3.CL3.CL3.CL3.CL3.CL3.CL3.CL3.^3.CL3.CL3.CL3.NV3.CL3.D.3.CL3.CL3.IΘ3.CL3.CL3.CL3.OP$3.K>%3.HJ&3.Pst3.CL*3.LN,3.jBl3.OP.3.R3.CL3. CL3. OP3.CL33.s>43.A63.=h373.>a3383.?m93.Bl:3.Diy;3.EnFg<3.Ej43.FOP>3.GTK?3.HK @3.IIA3.JT{Z3.KOPD3.LL2E3.MJF3.NJJG3.ORiS3.SCf3.TG3.UC 3.Vj 3.Y\3.[JS3.\FxC3.]q9 3.^y{ 3._|R8 !3.bCL 3.cCL3.dCL3.gju 3.iOP3.jU#3.kfX3.lI}3.mE`3.pr73.rwW3.tCL3.vCL3.wCL3.CL3.CL3.I!3.I3.J3.y# 3.H 3.G3.J 3.RW 3.s3.L.3.~@ 3.T3.Yq3.yƨ3.{ 3.VK3.Q3.S3.o 3.hUU 3.ac33.[3.^ 3.CL3.CL3.CL3.CL3.CL3.OP3.OP3.OP3.CL3.O3. H3. I3. H3.y333.y33}e3.pSמ}f3. I ^ ^ M3.*yqn N3.,D[O3.-MnP3..J Q3.1TFR3.2SIS3.4@T3.6Z/V3.7GX3.8G Y3.9J[3.:\3.;M,^3.?e3_3.h@x`3.jDLa3.krzb3.lvc3.msq3.oCL3.pCL3.rCLg3.tr 3.vCL3.wCL3.xCL3.yCLm3.|Gn3.@lo3.D3.CL3.CL3.CL3.CL3.CL3.CL3.CLw3.Dx3.Lqy3.N 3.OP{3.M5|3.R}3.lt~3.^3.A3.Fz3.q ~3.OP3.mt |3.CL3.H3.N3.J)3.Kqhu3.CLt3.CL3.AN 3.p;e 3.n 53.Lu63.K?3.OP3.CL:3.[M;3.G<3.U?3.D_3.OP3.CLB3.EOC3.TqD3.5 E3.kGF3.kHG3.Q\)H3.CT} L3.w8RM3.s{N3.KO3.DVbP3.C(Q3.GR3.FT3.JM9U3.KV3.I{e3.OP3.CLY3.1J<Z3.2@=3.4OP3.6CL]3.8B5^3.:kS)3.;OP3.=CLa3.?Z3.@OP3.BCLd3.DFE3.FOPf3.H^3.ICLh3.KE9[i3.MO?3.OOPk3.PN. l3.QOm3.RNHn3.Sr# o3.V`@p3.XSp q3.YM r3.ZO s3.[L<t3.\LAqu3.]L׼3.^OP3.`CLx3.bH$y3.cJCz3.eMY3.fOP3.hCL}3.jK\W~3.H>3.J3.F3.OP~3.CL3.I{3.EV3.EV3.G`3.JZ3.G3.EV3.EV3.Kc3.J-3.z3.K3.O3.JP3.L3.r 3.M 3.J3.R03.wE3.L3.M43.yE 3.Jk3.Jԭ3.CL3.Ec3.AZ3.OP3.CL3.CL3.CL3.CL3.CL3.CL3.CL3.Ng3.MI3.Yg3.GH3.g\3.GH3.CL3.CL3.CL3.CL3.CL3. CL3. CL3. ^3. CL3.CL3.CL3.N3.CL3.D/3.CL3.CL3.J33.CL3.CL3.CL3.!OP$3."KJ%3.#H&3.&OІ3.)CL*3.+M,3.,k.3.-OP.3..R53.0CL3.1CL3.\OP3.^CL33.asP43.bA63.eg3373.fP383.gZ&g93.jl:3.lh4;3.ml<3.nkFg3.oOP>3.pTOq?3.qK]@3.rI1A3.sT3.tOPD3.uL=E3.vKtF3.wJoG3.xR;3.{@g3.|D3.}@g3.k= 3.]3.K^3.F/3.qes 3.zF^ 3.|ƚ !3.CL 3.CL3.CL3.fm 3.OP3.Ud3.f(3.I3.E?3.Y3.w@23.CL3.CL3.CL3.CL3.CL3.I23.I3.L:3.y 3.HU 3.G;3.J˽3.K 3.p3.L3.~ 3.T ~3.Xؽ3.yƨ3.| 3.V=3.Q3.Sb3.of 3.f 3.af3.[f3.^ 3.CL3.CL3.CL3.CL3.CL3.&OP3.'OP3.(OP3.*CL3..P 3.0H3.2I 3.3H3.6gH3.9gH}e3.s}f3.C׿ ^ ^ M3.Tz> N3.VD~O3.WMP3.XIQ3.[TR3.\TS3.^qHF T3.[nV3.HX3.GY3.K&[3.\3.K^3.d_3.@`3.D;a3.tW b3.vc3.s\3.CL3.CL3.CLg3.r 3.CL3.CL3.CL3.CLm3.Gn3.~ɚo3.D'3.CL3.CL3.CL3.CL3.CL3.CL3.CLw3.Cx3.My3.O3.OP{3.Mb"|3.S7}3.l%~3.^3.BIg3.F3.qHF ~3.OP3.il |3.CL3.H^3.N3.J-[3.Ju3.CLt3.CL3.Cw 3.pm 3.mH 53. L/963. K+3. OP3.CL:3.ZqK;3.F'<3.XK?3.Du3.OP3.CLB3.EC3.SND3.в E3. c F3.!fRG3."PH3.#Cm. L3.$YM3.%R{N3.&vO3.'D]P3.QC'Q3.RG\R3.SFT3.TJzU3.UKV3.VI:3.WOP3.YCLY3.[J+Z3.\@3.^OP3.`CL]3.bBE^3.dkg3.eOP3.gCLa3.iZ7(3.jOP3.lCLd3.nFL3.pOPf3.r^3.sCLh3.uEV[i3.vN3.xOPk3.yN l3.{Mm3.|Mn3.}tT{ o3.`yFp3.T q3.NǮ r3.P s3.Lt3.LCDu3.L݃3.OP3.CLx3.Hy3.I"+z3.M3.OP3.CL}3.Kz~3.HҺ3.J(3.F=3.OP~3.CL3.I3.EV3.EV3.G`3.JZ3.Ge3.EV3.EV3.Kc3.JI3.x3.K3.O3.JP3.L3.r 3.M 3.Jk3.QX33.wI,3.M3.M<3.y' 3.J33.JKD3.CL3.E3.@r3.OP3.CL3.CL3.CL3. CL3.!CL3."CL3.#CL3.&Ng3.'G6g3.(Yg3.*GH3.+g{3.,GH3..CL3./CL3.0CL3.1CL3.2CL3.3CL3.4CL3.6^3.7CL3.8CL3.9CL3.:N3.3.T`?3.KU@3.IA3.Tq3.OPD3.KE3.K1}F3.JG3.RT3.~3.C)3.}3.kt 3.]L3.K4f3.GX3.q3 3.z? 3.},l !3.CL 3.CL3.CL3.j 3.OP3.U3.f˘3.J3%3.E3.轙3.w3.CL3.CL3.CL3.CL3.CL3.IF3.I3.Q3.y 3.H 3.GJY3.JF3.RW 3.o33.MD3. ~ 3. S3. X}3.yƨ3.|C 3.V3.Q3.R3.o 3.e@ 3.Dai3.F[Ff3.G^ 3.HCL3.ICL3.JCL3.KCL3.MCL3.POP3.QOP3.ROP3.TCL3.WP-3.YH3.ZI 3.[Hw3.^h=q3.ah=q}e3.| }f3.E ^ ^ M3.|yE N3.~D|O3.MP3.J4Q3.TR3.T14S3.o۔ T3.[V3.HX3.GY3.KK[3.7\3.NE^3.c_3.@`3.Ca3.rzb3.t4c3.s3.CL3.CL3.CLg3.r/ 3.CL3.CL3.CL3.CLm3.G$n3.@3o3.Ef3.CL3.CL3.CL3.CL3.CL3.CL3.CLw3.@#x3.Iy3.N3.OP{3. M"|3. S|m}3.l~3.^3.B+3.F!3.qV ~3.OP3.nWc |3. CL3.#H3.$N|3.%JYz3.(Lu3.+CLt3.,CL3..s 3./pG 3.0mx 53.3L=63.4K+3.5OP3.7CL:3.9Zf;3.;F'<3.=W?3.>D3.@OP3.BCLB3.DEC3.ES^D3.F: E7fF7eHG7UQH7 Cq L7 wM7 s#N7 KEO7 DfWP7C3uQ7G9R7FT7JU7LV7JN7OP7CLY7J_CZ7@۶7OP7CL]7C=^7!k 7"OP7$CLa7'Z/7(OP7*CLd7,F7.OPf70^71CLh73Eli74N=76OPk77N l78Rpm79Rffn7:q3 o7e`p7gQ) q7hK3 r7iNaH s7jLt7kLEu7mL7nOP7pCLx7rHy7sRŐz7uMi7vOP7xCL}7{K~7|H7}K!7~E?7OP~7CL7I7EV7EV7Gn7JZ7H 7EV7EV7K7Jt7xd7K7O7JP7Mz7r 7M 7Jk7P.C7wf7M+7ME/7}'s 7J7JL7CL7E7~d;7OP7CL7CL7CL7CL7CL7CL7CL7P7G6g7Yg7_ > 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N7CL7D37CL7CL7J 7,CL7-CL7.CL71OP$72Ka{%73Hm&75N78CL*7;Mvn,7Ro7@CL7ACL7COP7ECL37Htu47JA67MXf77NV87OY97Qm3:7Uh;7Vny<7Wi,7XOP>7YTl?7ZK@7[IA7\T7]OPD7^KrE7_KLF7`J&G7aRB7dE97eJ,7gEɚ7lT 7\7Ksx7Gx7q 7{ 7} !7CL 7CL7CL7ixB 7OP7U7f7J7F=77'7v7CL7CL7CL7CL7CL7Ib7I|7Id<7z 7H 7GgR7J 7Kce 7sf7MOc7}~ 7S7X7y7|oQ 7U7Q7ST7o+ 7h 7a6f7[7^ 7CL7CL7 CL7 CL7 CL7OP7OP7OP7CL7Pl7H^7I@7H7h 7 h }e7yr}f3..xO ^ ^ M7czQ N7eDzO7fMP7gJDQ7kTR7lTJ*S7mo7 T7o\QV7pIDuX7qGY7rKsq[7t\7uJ^7xcj_7y@`7{BAa7|sBb7}uLc7rg7CL7CL7CLg7rז 7CL7CL7CL7CLm7Fdn7vgo7Eh7CL7CL7CL7CL7CL7CL7CLw7zx7H\)y7O#7OP{7Mc|7Sj}7m ~7^7Af7FХ7pX ~7OP7k' |7CL7H]7N7JP7Fu7CLt7CL7zR 7o< 7m;e 57LP67K$7OP7CL:7Y;7"P5<7#U?7$DV7&OP7(CLB7*EC7+R|D7, E7.n(F7/m34G70LQH71Co L72xM73sN74KHO75DnQP76C;qQ77GoR78FYT79JbU7:L;V7;J_7CLY7@JZ7A@7COP7ECL]7GCp^7IjF7JOP7LCLa7OY7POP7RCLd7TFi7VOPf7X^7YCLh7[Ei7Mw7OPk7N) l7ORm7On7t o7`p7T q7N\) r7P3 s7Lt7LCDu7L7OP7CLx7H y7R-z7Mɰ7OP7CL}7K~7I&E7KQ7F 7OP~7CL7IΘ7EV7EV7G`7K 7H 7EV7EV7K7Jq7xd7L{7O7JP7M$\7r 7M 7Jk7Lv7wk7MC]7MP 7}'s 7J7JKD7CL7ED7@<7OP7CL7CL7CL7CL7CL7CL7 CL7 Q7 M7^<7G 7Y7G 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7 N7"CL7LD5Y7NCL7OCL7QKF7TCL7UCL7VCL7XOP$7YKf%7ZH~&7]N:w7`CL*7cMd,7dg4w7eOP.7fR7hCL7iCL7kOP7mCL37pt47rA67tr77ukff87vhff97ym:7{hy;7|m,<7}ig7~OP>7TB|?7KN@7IA7TV7OPD7L9E7KQqF7JwG7R7Bi7G,7B7k 7\ݒ7KZ7H'77q 7{ 7~ !7CL 7CL7CL7k 7OP7U7f7J7F97Ѩ$ 7v27CL7CL7CL7CL7CL7I7IH7P7zT 7I* 7G7J 7R9 7o7M7}~ 7SA7X7 y7!| 7#U7$Q7%R7)pA 7,j&f 7-a37.[7/^ 70CL71CL72CL74CL75CL78OP79OP7:OP77EOP7GCL:7JZ;7LSM<7NU?7OD7QOP7SCLB7TF>KC7VQ~'D7W@E7XeF7ZfRG7[S >H7\Ca L7]ZM7^RN7_vqO7`DwP7aCKhQ7bGoR7cFۆT7dK+dU7eLhV7fJ7gOP7iCLY7kJZ7lA+7nOP7pCL]7rC^7tjR7uOP7wCLa7zY)7{OP7CLd7FT7OPf7^7CLh7Ei7L7OPk7OE l7NRm7NQn7tJ= o7`Qp7Uff q7O r7Rp s7Lit7LCDu7LL7OP7CLx7Hy7Qz7M7OP7CL}7KH~7IP7K 7F7OP~7CL7I7EV7EV7G7K 7H 7EV7EV7 K7 J7 xd7 M^7O7JP7M:>7r 7M 7Jk7Lv7w]7MU7 MWl7!}'s 7"J7#J7%CL7)E:7*@t:7+OP7-CL7.CL7/CL70CL71CL72CL73CL76N378F379Yf7:G 7;Y7CL7?CL7@CL7ACL7BCL7lCL7mCL7n^7oCL7pCL7qCL7sN 7tCL7wD5Y7yCL7zCL7}K>7CL7CL7CL7OP$7Kn8%7H&7M7CL*7Mȉ,7f7OP.7Ry-7CL7CL7OP7CL37tF47A67T77M487OY97m&:7l;7m<7n7OP>7S?7K@7IUA7Tb7OPD7KE7KKF7JϕG7Rz7@P7D37@vf7l 7\7K7H7rs 7{ 7~s !7CL 7CL7CL7iމ 7OP7V7fA)7IV7F7pt7v7CL7CL7CL7CL7CL7 I87 I-74Hs77zr 7:HD 7J 7AsY7DM7G~ 7JU7KYs7Nz7O|ƚ 7QU7RR 7SRn7Vp| 7Yjw 7[avf7\[f7]^ 7^CL7_CL7`CL7aCL7cCL7fOP7gOP7hOP7jCL7mPp7oHp7I7H7t37t3}e7Sn}f7z ^ ^ M7z N7DO7MxP7JyLQ7T*#R7TxS7o T7\<V7I,6X7G2JY7KI[7ǠO3\7K^7b^V_7@9`7AZ#a7sb7uc7saH7CL7CL7CLg7 s< 7 CL7 CL7 CL7 CLm7 FWn7 @.fo7 E7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 |x7 My7 T 7 OP{7 N|7 SG}7 "n~7 $^7 &Ac7 (Fq7 +q ~7 -OP7 1mna |7 3CL7 6H.7 7N7 `JM.7 cGo>u7 fCLt7 gCL7 iz/ 7 jpM 7 kl 57 nLn67 oKJ7 pOP7 rCL:7 u\5H;7 wSJ%<7 xU#?7 yD7 {OP7 }CLB7 FqC7 Pb D7 @5E7 uF7 rRG7 L\H7 C L7 ZRM7 RBN7 vO7 DP7 CTQ7 GR7 F/T7 K[U7 LV7 KZ7 OP7 CLY7 KFZ7 A27 OP7 CL]7 D^7 hP7 OP7 CLa7 Y(7 OP7 CLd7 F[G7 OPf7 ^7 CLh7 Eѕi7 MQ7 OPk7 O@H l7 Ppm7 Pn7 r= o7 `Sp7 V q7 PR r7 R\ s7 L6t7 LB[u7 L7 OP7 CLx7 I :y7 Pz7 M7 OP7 CL}7 LC~7 Iy7 K7 F77 OP~7 CL7 )I7 +EV7 ,EV7 -Gn7 .KF7 0H[7 1EV7 2EV7 4K7 5Jٙ7 6x7 7M^7 :O7 7 S?7 K@7 JEA7 T(7 OPD7 L E7 KEF7 JG7 Rw7 A7 EC47 @37 ls 7 ]7 LC7 H7 r@3 7 |oQ 7 ~; !7 CL 7 CL7 CL7 k 7 !OP7 "V:7 #fܸ7 $G7 %F6S7 &:7 'vރ7 )CL7 +CL7 TCL7 UCL7 VCL7 YI7 ZI7 [EM7 ^z? 7 bH 7 dH9Q7 eJ7 fR9 7 ir7 lM7 o~# 7 qVm7 rY(w7 uz 7 w|= 7 yU7 zRBj7 {SY7 ~p 7 gb" 7 a7 [ 7 ^ 7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 Px7 H7 I7 H 7 h7 h}e7 &e}f7 i. ^ ^ M7 z N7 DoO7 NCP7 JQ7 T=*R7 TS7 o T7 \V7 IX7 G="Y7 KT[7 \7 MX.^7 a_7 @9`7 !Aa7 #t8Rb7 $ugc7 %r\*7 'CL7 (CL7 *CLg7 ,s 7 .CL7 /CL7 0CL7 1CLm7 4Esn7 7o7 :E7 CL7 ?CL7 @CL7 ACL7 BCLw7 F}fgx7 GK=qy7 HPff7 IOP{7 JN|7 KS7}7 LnkC~7 O^7 QA827 SF7 Vp< ~7 OP7 j' |7 CL7 H7 O/7 J7{7 O^u7 CLt7 CL7 v( 7 n 7 k 57 L67 KcN7 OP7 CL:7 ];7 R;<7 Y`?7 DY7 OP7 CLB7 FC7 OI>D7 @"E7 jF7 hfgG7 T\)H7 C L7 uM7 q{N7 JO7 DP7 CiQ7 GR7 FT7 K'U7 LV7 K7 OP7 CLY7 KMZ7 AO7 OP7 CL]7 DJ^7 g37 OP7 CLa7 YYM7 OP7 CLd7 F[G7 OPf7 ^7 CLh7 Ei7 W 7 OPk7 O) l7 PHm7 Pffn7 q33 o7 _ׅp7 WG q7 Q r7 Sp s7 L|t7 LEu7 L7 OP7 CLx7 I/jy7 Oz7 M7 HOP7 JCL}7 ML?I~7 NI7 OK7 PFn7 QOP~7 SCL7 UJ37 XEV7 YEV7 ZGn7 [KF7 \H[7 ]EV7 ^EV7 `K7 aJ37 cx7 dM^7 gO7 iJP7 jMmO7 mr 7 oL7 pJk7 sS[7 uv7 vMz7 wMf7 x}'s 7 zK7 {KY7 }CL7 E7 {e7 OP7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Pg7 {7 Ng7 _ > 7 _ > 7 _ > 7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 NV7 CL7 D/7 CL7 CL7 K7 CL7 CL7 CL7 OP$7 K}%7 H&7 L;7 CL*7 N,7 de7 OP.7Ro7CL7CL7OP7CL37t47A67\77Ng87 Z97#l:7%i ;7&m<7'k7(OP>7)S?7*K΍@7+JMA7,TJ7-OPD7.ME7/KI4z7Ark 7B|ƚ 7Dc !7GCL 7HCL7ICL7Kh 7uOP7vVW7wfߒ7xGK7zF(7{ %7|v7~CL7CL7CL7CL7CL7Ij7I7Q ~7z 7H 7H*7Jn7KE 7o97NX7~# 7Uv7X7z 7} 7UjE7RZ7RN7q 7g 7aVf7[f7^ 7CL7CL7CL7CL7CL7OP7OP7OP7CL7Q<7H7I7H#P7hp7hp}e7{a}f7 z; ^ ^ M7z< N7EO7N~8P7JQ7=TWR7?TMS7@o T7B\V7CJ EX7DGTY7EK[7F\7HMFf^7Kgݥ_7L@9`7MAa7Oqfgb7PsBc7QqW 7TCL7UCL7VCLg7XsZ 7ZCL7[CL7\CL7]CLm7aExn7d4o7fFI<7hCL7iCL7jCL7kCL7lCL7nCL7oCLw7rAW x7sIy7tP7uOP{7vO |7S}7o)z~7^7AF7Fu7pX ~7OP7m_ |7CL7H7O[7J=7Hdu7CLt7CL7tu 7o 7lƨ 57LB67K7OP7CL:7^*S;7R <7X?7DZ7OP7CLB7FsC7N=D7@.#E7a{F7fG7FH7CQ L7u.M7qW N7 JO7 DNP7 Cq$Q7 G9R7 FT7KU7L V7L&7OP7CLY7Kv]Z7A|=7OP7CL]7Du^7g7OP7!CLa7$Y>7%OP7'CLd7(Fb7*OPf7,^7-CLh7/FRi71VV73OPk74OĜ l75Qm76Q n77s=q o7:_9op7P{ s7?Lzt7hLGu7iL7jOP7lCLx7nIZy7oNͯz7qM7rOP7tCL}7wLW~7xIˢ7yL 7{F7|OP~7~CL7J37EV7EV7G7K)7H*7EV7EV7K7J7x7M^7Op7JP7M47r 7L7JP7R\7v7M7Mo#7}'s 7J7K7CL7E17@N07OP7CL7CL7CL7CL7CL7CL7CL7Ng7Ng7Yg7_ > 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N7CL7D.7CL7CL7L&7CL7CL7CL7OP$7K%7Hj&72L)74CL*77N9,78b79OP.7:Rxt77SSU?7TK?@7UJTA7VT7WOPD7XKo#E7YK4:F7ZJG7[RWP7_~_7`CP7a}7bl 7e\ֺ7hL7iI7r 7},l 7 !7CL 7CL7CL7lD 7OP7Vv7fN7H7F7@] 7wS7CL7CL7CL7CL7CL7Ix7I7PY7{ 7HU 7H#7J37RHc 7p37N:7~@ 7V7X\7z 7}I 7US?7R7R 7qes 7f 7a7[37^ 7CL7 CL7 CL7 CL7 CL7OP7OP7OP7CL7Q}7H7I7H& 7nz7!nz}e7W(C}f7xX ^ ^ M7dz N7fEO7gNcP7hJɒQ7kTSR7lTS7mo T7o\ V7qJ14X7rGb/Y7sL'[7tO3\7uJka^7xgn _7y@9`7{@a7}tb7~v34c7rk7CL7CL7CLg7sW 7CL7CL7CL7CLm7En7Po7Fo7CL7CL7CL7CL7CL7CL7CLw7px7Hzy7PW 7OP{7N|7U>}7p<~7^7A7F7q ~7OP7ka |7CL7HČ7Ob7J7P%u7CLt7CL7wO 7p 7lp 57Lo67K7OP7CL:7_;7$Qz<7%UWN?7&E 7(OP7*CLB7,GC7-M9MD7.@.#E70[\F71aG72AHH73C? L74WfM75PN76t4O77DP78CyQ79G9R7:FT7;KU7 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7 CL7"N7$CL7&D4q7PCL7QCL7TL 7VCL7WCL7XCL7ZOP$7[K%7\H&7_K7bCL*7eNV,7fa-7gOP.7hRxt7iCL7jCL7mOP7oCL37rt47tA67vm377wi87xbٚ97{l&:7}k;7~lS4<7hg7OP>7SJ?7K@7J A7TE7OPD7JcE7K+F7J0G7RP7A7Ef7Ag7m6 7\G7LM7I7rn 7} 7@!7CL 7CL7CL7i[ 7OP7VV7e7H4@7F7@ؙ 7w3u7CL7CL7CL7CL7CL7IiG7I7M7{/9 7HU 7H7J7K 7r7Nc7~24 7!W7"X7%z 7&}u% 7(U!7)R/7*S7-q^ 70f3 72a\73[f74^ 75CL76CL77CL78CL7:CL7=OP7>OP7?OP7ACL7DQW7FHS7GI 7HH*7Ju7Ku}e7Y-}f7z ^ ^ M7z N7E<O7NP7JGQ7TWR7TS7of T7]OV7JcX7GgY7LA[7W\7MP^7f܊_7@9`7@ۘa7t(b7vaHc7r 7CL7CL7CLg7s 7CL7CL7CL7CLm7Eun7@<o7Ft@7CL7CL7CL7CL7CL7CL7CLw7zx7I34y7Q\7OP{7O|7T}7p~7^7@7F7q ~7OP7no |7 CL7 H7O7J7I˔u7CLt7CL7{9X 7q J 7l 57EL%67FK7GOP7ICL:7K_;7NPA<7OX&?7PE27ROP7TCLB7VG-aC7WL4eD7X@=E7ZZ=qF7[ZG7\KRH7]D L7^tM7`qW N7aJO7bD)P7cCQ7dGR7eFGT7fLVU7gMV7hK#7iOP7kCLY7nKxZ7oA7pOP7rCL]7tD^7vf27wOP7yCLa7{X7|OP7~CLd7FxC7OPf7^7CLh7F(i7U7OPk7O l7ORm7On7q\ o7_LBp7Vp q7N=q r7Q s7Lxt7LMHu7LJ 7OP7CLx7Iy7KAz7M7OP7CL}7Lg~7J7L_7F-7OP~7CL7JZ7EV7EV7G7K827H9Q7EV7EV7K7 K 7 x7M^7O7JP7M7r 7L7JYz7P'T7 v7!Ms7"M7#}I 7$Ky7%L7'CL7*E7+@t:7,OP7.CL70CL71CL72CL73CL74CL75CL78Ng79G6g7:Ng7;_ > 7<_ > 7=_ > 7?CL7ACL7BCL7CCL7DCL7ECL7FCL7G^:CL:CL:CL: N: CL:D5Y:CL:CL:Ly:CL:CL:CL:OP$:K%:I`&:K/7:!CL*:$Nu,:%b:&OP.:'RYz:)CL:*CL:-OP:.CL3:1t 4:3A6:6eٚ7:7Sٚ8:8_9::l::fi&f;:gm<:hk4:iOP>:jSx?:kK_@:lJ$\A:mT`:nOPD:oM,AE:pK#F:qJG:rRK:vB:wGp:xC3:ym,_ :|[o?:~Lh:J(K:r :~ :@Je!:CL :CL:CL:j :OP:V0:e:Gw:FV::w.:CL:CL:CL:CL:CL:I[:I":L:{LS :G :H:J :Q]6 :p\:Ns:~] :Y:X-:z:} :U :R:S{:qJ :iU :a:Z:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:Q:,H :-I:.H/:1h\):4h\)}e:n}f7~X ^ ^ M:Oy N:QE'8O:RNP:TJQ:WT_gR:XT7S:YoK T:[]V:\KbX:]G|eY:^Lh[:`\:aM^:dfl_:e@U`:f@ea:qW b:sc:p:CL:CL:CLg:t6 :CL:CL:CL:CLm:En:@+3o:FH:CL:CL:CL:CL:CL:CL:CLw:x:Ky:M8R:OP{:OO|:T_}:qR~:^:@3:F:q ~:OP:j |:CL:H/:P:JV:Pu:CLt:CL:wC :o :l 5:L66:Kk:OP: CL:: _,0;:PP<:XQ?:E:OP:CLB:G4C:M=D:@5E:\F:YG:F34H:De L: qM:!qGN:"JO:#DP:$CQ:%G(R:&FT:'L4U:(M@V:)Il:*OP:,CLY:/KZ:XB:YOP:[CL]:]E^:_fCM:`OP:bCLa:eX :fOP:hCLd:jF:lOPf:n^:oCLh:qF>Ki:rU|:tOPk:uOg l:vN\)m:wNn:xs o:{^Zp:}W q:~O r:Rff s:Lu]t:LMHu:LE:OP:CLx:Iy:Jez:MY:OP:CL}:L}m~:JC:Lr:G8>:OP~:CL:Jn:EV:EV:G:K82:HG:EV:EV:K:K:x:M:O:JP:M:r :L:J:Lv:v:M :M:}I :K :K:CL:ED:@:u:OP:CL:CL:CL:CL:CL:CL:CL:!Ng:"G6g:#Pg:$_ > :&_ > :'_ > :)CL:*CL:+CL:,CL:-CL:.CL:/CL:0^:2CL:3CL:4CL:5NV:7CL::D7(::Sg?:K@:J)A:TMI:OPD:MfE:K~F:JG:RWP:@f:Dٚ:@g:l :]b:LlY:Jw!:s T :~l^ :@u!:CL :CL:CL:gn :OP:V:f8:GS:FY:s:wi?:CL:CL:CL:CL:CL:IO:I:M'1:{w :F" :G0:J:LL :nC3:N}:~l^ : ZY: W : z:} :T:Rŋ:S(:r@3 :iU :a :Zf:^ :CL:CL: CL:!CL:"CL:MOP:NOP:POP:RCL:URB:VH$:WI:XH0:\h:_h}e:r@}f:z ^ ^ M:yzY N:|E<O:}N+P:~K3Q:TrlR:TS:oK T:]6V:KX:GY:L[:\:J^:e_:@U`:@a:tfgb:tc:s:CL:CL:CLg:t :CL:CL:CL:CLm:Een:@o:Fb:CL:CL:CL:CL:CL:CL:CLw:@x:Jy:M8R:OP{:OӠ|:T}:q~:^:@F:Fھ:qV ~:OP:n |:CL: H:"PN:#Jr:&Jvu:(CLt:)CL:,vl :-o9X :.lv 5:0Ltt6:1Kw:2OP:4CL::7^;::O<:;W?:OP:@CLB:BGQC:CUAD:D@XE:FZ F:G[QG:HK=qH:ID L:JVM:KPGN:LtW O:MDP:NCQ:OGLR:xF7T:yLY U:zMdV:{I::|OP:~CLY:K|Z:C:OP:CL]:E#^:hV:OP:CLa:Y`{:OP:CLd:F:OPf:^:CLh:FLi:TM):OPk:O l:Qffm:QRn:r o:]Zp:U q:N r:Q8R s:Lu]t:LPu:L:OP:CLx:IΘy:P :P_ > :Q_ > :SCL:TCL:UCL:VCL:WCL:XCL:YCL:[^:\CL:]CL:^CL:_N :aCL:dD8:fCL:gCL:jLr:kCL:lCL:mCL:pOP$:qKJ%:rI &:uJ;4:xCL*:zN,:{at8:OP.:RBj:CL:CL:OP:CL3:u54:A6:Zg7:Ng8:T9:l::m;:n<:qFf:OP>:S\?:Ki@:J1 A:T<:OPD:LE:K1F:JG:RZ:@<:E:@:mJ :\:Lz:J+:s8 :~' :@!:CL :CL:CL: iމ : OP: V: f3:H:F:H:wj:CL:CL:CL:CL:CL:IE:I:Qu: { :$Hw :&GB:'JX:(PT :+oٚ:.N`:1~s :3Y:4W::8z :9}~ :;T: ^ ^ M:z N:E>O:NP:K82Q:TP/R:TS:o; T:]V:KX:GY:L[:ܟ0\:K)^:e|C_:@U`:@pa:q >b:s*c:r:CL:CL:CLg:teH :CL:CL:CL:CLm:EX>n:s4o:F<:CL:CL:CL:CL:CL:CL:CLw:wHx: Gy: Mu: OP{:4Oe|:5UW>}:6q~:9^:;@:=Fc:@qHF ~:BOP:Ej |:HCL:KH:LP :MJ}:PKu:RCLt:TCL:Vp :Wo?} :Xk 5:ZLq6:[K:\OP:^CL::a_TJ;:dNm<:eX?:fET:hOP:jCLB:lGC:mV D:n@M$E:WF:]G:CH:D L:WLM:PuN:J@O:D+P:CzQ:GʉR:G T:LU:MXV:I+:OP:CLY:KZ:Bs:OP:CL]:El^:la:OP:CLa:Z=:OP:CLd:F?:OPf:^:CLh:Fii:SU:OPk:O l:N =m:NQn:sq o:^!p:T q:M r:Of s:Lyt:LQu:L7W: OP: CLx: Iy: S:z: M: OP: CL}: L~: J : L: Gj8: OP~: CL: KF: EV: EV: G: KF: HVF: EV: EV: K: "K: #xd: $M: 'O: )J: *Ny: -r : /L: 0JyL: 3Q: 5v: 6M: 7ME: `}I : bK: cK: eCL: hE: i{\: jOP: lCL: mCL: nCL: oCL: pCL: rCL: sCL: vRl: wG6g: xNg: y_ > : z_ > : {_ > : }CL: ~CL: CL: CL: CL: CL: CL: ^: CL: CL: CL: Ns: CL: D>f: CL: CL: L: CL: CL: CL: OP$: K{%: I &: I: CL*: N,: bM: OP.: R;6: CL: CL: OP: CL3: ub;4: A6: [7: S@8: Z9: lq:: fy;: l<: hf: OP>: SL?: K@: J9TA: T,: OPD: MiE: KF: JG: RYz: @g: E`: @: m7 : \g: L: K: )sc : *)b : +@r!: .CL : 0CL: 1CL: 3ii : 5OP: 6V_: 7e: 8HD: 9Fn: =|3r: ?wb: ACL: BCL: CCL: DCL: ECL: HIB>: II: KR$': N{ : QGU : SG: TJ_C: ULU : Xq : [O: ^~z : aYGY: bW: z : ~ : TvP: R: S7: r : g33 : aFf: [: ^ : CL: CL: CL: CL: CL: OP: OP: OP: CL: Rt5: H~: I"7: H4: v: v}e: =V}f:VtU ^ ^ M: {] N: EKO: NxP: KbQ: Tc6R: US: of T: ]ӝV: KWX: GY: L[: l\: LG^: d>_: @U`: @pa: qub: tfgc: q8R: CL: CL: CLg: t? : CL: CL: CL: CLm: E``n: $@o: &F}: (CL: )CL: *CL: +CL: TCL: VCL: WCLw: Z{x: [I\y: \L): ]OP{: ^P |: _T}: aq~: c^: e@: gF: jq+ ~: lOP: pm |: rCL: uH: vP=: wJ: zL;[u: }CLt: ~CL: pG : oV : k 5: Lp6: L: OP: CL:: ^sf;: Nr<: WI?: G ): OP: CLB: G} C: UD: @dfE: _ >F: ZG: CH: D L: tM: qHN: JO: DRP: CQ: GR: FT: LU: MV: I: OP: CLY: KqNZ: EB: OP: CL]: EV[^: mJ: OP: CLa: \E: OP: CLd: F~: OPf: ^: CLh: FxCi: R: OPk: O l: Om: O n: o\ o: "]u<p: $U q: %NB r: &PL s: 'L}t: (LX7u: )K: *OP: ,CLx: .Iy: /Rz: 1Ns: 2OP: 4CL}: 7Lp~: 8J: 9M: :Hmq: ;OP~: =CL: @K: CEV: DEV: EGx: FKU: GHd: HEV: JEV: LK: MK: Nx: OM: RO: TJP: UNy: r : L: JR>: S: v: M: M: }+ : K: K: CL: E: Ξ: OP: CL: CL: CL: CL: CL: CL: CL: P: F: X: ~: : |Q: CL: CL: CL: CL: CL: CL: CL: ^: CL: CL: CL: N: CL: DB: CL: CL: L!: CL: CL: CL: OP$: K %: IL&: IM: CL*: N,: b: OP.: R=_: CL: CL: OP: CL3: u4: A6: S@7: B&f8: R9: l[%:: fS3;: l<: g&g: OP>: S?F?: K@: J?A: T#: OPD: NE: K SF: J^G: R\[: U34: IZg: JT: Ks : N[: PLr: Se[ : T]h : UAZ: VF:!: ZCL : [CL: \CL: ^j> : `OP: aO: bf;s: cD: eG ): ft,: gw : iCL: jCL: kCL: lCL: mCL: pI:: rI: sI: v{ : yH* : {GB: |G&": }NC& : t: O,W: ~s : XqL: U: z$: ~24 : ND: Q_: SY: s)~ : eU : _: Xf: ^ : CL: CL: CL: CL: CL: OP: OP: OP: CL: R: Hf: I$: H8,: G=q: G=q}e: fUM3}f: s ^ ^ M:!z N:#E[GO:$N~P:%KgQ:(Tc6R:*US:+oI T:-^$@V:.LX:/GY:0L[:1&/\:3Jb"^:6dz_:7@r`:8@fa::s#b:;tc:y:OaH:OP{:PA|:U2}:r~:^:@:F:pӖ ~:OP:j |:CL:H:P9:Jm:G4u:CLt:CL:n :n\) :k\) 5:LkX6:L,~:OP:CL::]ē;:M<:X(?:Gg:OP:CLB:GBC:U]D:@sE:\F:YG:DH:E L:tM:qGN:J0O:DyP:CQ:GܤR:G;T:LU:MV:Iy:OP:CLY:KMZ:D:OP:CL]:E^:n: OP: CLa:\:OP:CLd:F:^:?CLh:AFi:CQ:EOPk:FO l:GR=qm:HP33n:Iq o:L]Gp:NS3 q:OO8R r:PS s:QLt:RL[u:SL :TOP:VCLx:XJ%gy:YQz:[N :\OP:^CL}:aL ~:bJ:cM=q:eGo:fOP~:hCL:jK:mEV:nEV:oG:pKU:qHs<:sEV:tEV:vK:wK:x:M:O:J:Ny:r :L:Jr:Rs:v:Ny:M :}Y :K:K:CL:E:A.:OP:CL:CL:CL:CL:CL:CL:CL:O:E:X<:{\*:}G:yp:CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N : CL: DGt: CL:CL:L:CL:CL:CL:OP$:KІ%:I&:H::CL*:"O ,:#am:$OP.:%R@:'CL:(CL:*OP:,CL3:/u4:1A6:4c7:5V8:6\9:8lL-:::eg;:;k<::>S1?:?K]@:hJBsA:iTK:jOPD:kM7E:lKF:mJGG:nRYz:rGf:sKg:tF:ux: :x\<:zL:}^ :~[~ :A:C.!:CL :CL:CL:iLl :OP:E\:eW:F:GF:n:w:CL:CL:CL:CL:CL:I9+:IF:L6:| z :ID :GJ:@.:Mu :nl:OK:~Ü :U:M?:zM:~OI :J:P:S:srb :jUU :aL:[3:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:R:H:I%:H::i\:0i\}e:h}f:qF ^ ^ M:Kz N:ME^O:NNP:PKsyQ:STjR:TU S:Uo T:W]AV:XKeBX:YGΩY:ZL״[:\-\:]M^:`c_:a@r`:b@]a:dsBb:ex=qc:gsaH:iCL:jCL:kCLg:t? :CL:CL:CL:CLm:ELn:@o:Fy:CL:CL:CL:CL:CL:CL:CLw:wx:Hzy:M:OP{:PD|:T}:q~:^:@:FI:pX ~:OP:o] |:CL:H:PJ:JdS:Mtgu:CLt:CL:x9 :o :l& 5:Lo6:L9>:OP:CL::];: L<: X~)?: F~:OP:CLB:G0C:T>D:@XE:bF:[\G:IQH:D7 L:sM:p*N:IO:DP:CQ: GR:!G(OT:"LU:#MV:$J:%OP:'CLY:*KmZ:+C:,OP:.CL]:0E^:2nD:3OP:]CLa:`]j:aOP:cCLd:eF:gOPf:i^:jCLh:lF?i:mQ5r:oOPk:pOw l:qTm:rSn:spz o:v]Op:xTW q:yNQ r:zPR s:{Lt:|L_u:}L :~OP:CLx:J;y:PTz:N9:OP:CL}:L~:J:Mj*:Gp:OP~:CL:K:EV:EV:G:KU:Hs<:EV:EV:K:K:xd:M:O:K:Ny:r :L:J:Q<:v:M<:MW:} :K":K:CL:E:C(k:OP:CL:CL:CL:CL:CL:CL:CL:Ng:G6g:Xf:~=q:~:{:%CL:&CL:'CL:(CL:)CL:*CL:+CL:,^:-CL:/CL:0CL:1N ::3CL:6DH[:8CL:9CL:;Lp:=CL:>CL:?CL:BOP$:CKІ%:DI&:FHc:ICL*:LO'.,:M`%:NOP.:ORBj:QCL:RCL:UOP:VCL3:Yu|4:[A6:^n7:__ٚ8:Zg9:l9x::e ;:j<:g4:OP>:S*b?:Ks@:JFA:T:OPD:LE:KF:JG:RI:F:K4:F^f:{ :[":MC/:^- :\ :~ :@r!:CL :CL:CL:i :OP:Ag:e4:F7:G/:u:w:CL:CL:CL:CL:CL:I7Y:IC:REL:|& :H :G} :z :Lz :oٚ:Omj:~ :R:MR: zE: ~z : H: M:R:sF :j@ :a9:[ :^ :CL:CL:CL:CL:CL:!OP:"OP:#OP:&CL:QR:RH7:SI':TH>:Wh:[h}e:EI}f:|S ^ ^ M:uz N:wEdO:xOP:zKo#Q:}TzR:~UdS:o T:^UV:LX:GY:Mm[:nQ\:L^:cnE_:@`:@]a:sb:vc:t >:CL:CL:CLg:t :CL:CL:CL:CLm:E<;n:lo:F:CL:CL:CL:CL:CL:CL:CLw:u=qx:Hy:N\:OP{:Pi|:T}:q~:^:@:FS:q^ ~:OP:i |:CL:H^:P_n:J:"GEEu:$CLt:%CL:'qn :)o :*k 5:+Lc6:,L<:-OP:/CL::2]$;:5LIG<:6X&?:7F:9OP:;CLB:=GeC:>SRD:?@dfE:Ak >F:BZ=qG:CaQH:DE L:EUM:FON:GspO:HDMP:ICWQ:JGR:KG>T:LM U:MN V:NI:OOP:QCLY:|KyZ:}Dt:~OP:CL]:F ^:nH:OP:CLa:]E:OP:CLd:F5:OPf:^:CLh:Fi:P[2:OPk:O l:Q =m:Opn:p o:] p:Sf q:O r:R s:Lt:Lfu:L:OP:CLx:JPy:O԰z:N U:OP:CL}:LȐ~:K:M@:G(:OP~:CL:Kз:EV:EV:HG:Kc:Hs<:EV:EV:K:K:x:M:O:K :Ny:r :L:J~:P:v:M: M: }r : K): K:CL:E:@t::OP:CL:CL:CL:CL:CL:CL:DCL:GR :HG6g:IPg:J~R:Kp:L|Q:OCL:PCL:QCL:RCL:SCL:TCL:UCL:V^:WCL:YCL:ZCL:[N:]CL:`DJ*:aCL:bCL:eL:gCL:hCL:iCL:lOP$:mK%:nI&:pG:sCL*:vO>,:w`\t:xOP.:yR?:{CL:|CL:OP:CL3:ue4:A6:T&f7:Ts38:R9:l#::e@;:k<:g&g:OP>:S&?:K]@:JHA:S`:OPD:MFE:KF:JNG:R6*:E:J:E>f:~=J :Ybz:Ma:_LK :]< :| z : !:CL :CL:CL:k/ :OP:}X : d: G8:G::wv:CL:CL:CL:CL:CL:I4:IHW:I.:|R8 :"H; :$GX:%wB :'N} :*t:-O:0 O :2O z:3J;:6zA:7~ :8G} :9J:CL>CL>CL> OP> OP> OP>CL>SE>H>I+K>HC >u3>u3}e:p}f:'t2 ^ ^ M>4{3 N>6EjO>7O EP>8KQ>;Tv;R>eU.ZS>fo,| T>h^XV>iKpX>jG!Y>kM [>l P\>nJdD^>qb_>r@`>s@Ia>upb>vrRc>wp{>yCL>{CL>|CLg>~tl >CL>CL>CL>CLm>E6n>@3o>Fb>CL>CL>CL>CL>CL>CL>CLw>y\x>N\y>N=q>OP{>PIc|>T}>q~>^>@>F]>q ~>OP>o{ |>CL>H>PX>J>N]u>CLt>CL>l^ >o >ku 5>L6>LI>OP>CL:>]*|;>K<>X?>F>OP>CLB>H9QC>SWD>@E>a34F>ZG>LH>E* L>,WM>-ON>.J >O>/DP>0CQ>1HR>2GT>3M.U>4N(V>5J~]>6OP>8CLY>;KZ>=OP>?CL]>AFi^>CmE>DOP>FCLa>H].>JOP>KCLd>MFݱ>OOPf>Q^>RCLh>TFi>UO>WOPk>YO l>ZQ{m>[Offn>\qT{ o>_]p>aS q>bN) r>cQf s>dL{t>eLou>fL6>gOP>CLx>Jmy>Nz>N+>OP>CL}>L~>K7~>M>GwA>OP~>CL>K>EV>EV>H9Q>K>H>EV>EV>K>K>xd>M>O?>K3>Ny>r >L>J>Lv>v>M>MJ>}I >K,>L >CL>E>@C>OP>CL>CL>CL>CL>CL>CL>CL> Ng> M> Yg> } >> ~=q>z>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N d>CL>!DJ*>#CL>$CL>'LȐ>)CL>*CL>+CL>-OP$>.K.%>/I&>ZGy>]CL*>`OV,>a`>bOP.>cROc>dCL>eCL>hOP>jCL3>mv94>oA6>qV@7>rV@8>sdf9>vl:>ze;>{kf<>|e@>}OP>>~SV?>Ks@>JIA>SΓ>OPD>L4rE>JJF>JNG>R!E>E>Jt>E>f>@*C>\$>Mxy>_ >] >y >} !>CL >CL>CL>h >OP>zr >d5>FA>G>ңty>wb>CL>CL>CL>CL>CL>I0>I=s>H>|} >H" >G>u65 >KF >n>O>~Ü >M]]>Jފ>!z=q>#~Ü >$G} >%H >'S=>*t>u >-k" >.a >/[f>0^ >2CL>3CL>4CL>5CL>6CL>9OP>;OP>>CL>AS4>BH>CI.>EHC>Hiz>Kiz}e>f.}f>p ^ ^ M>z N>EpO>NeBP>KhQ>TzR>URS>o,| T>]{ V>JX>GY>M+j[>ė\>Mj^>ba_>@`>@SRa>qb>tc>r>CL>CL>CLg>t? >CL>CL>CL>CLm>E8n>@0o>F>CL>CL>CL>CL>CL>CL>CLw>zx>Lpy>P >>OP{>O&|>U}>qM~>^>@m>FI>qes ~>OP>p |> CL> I>P5>J~>HUu>CLt>CL>h >nn >k% 5>L 6>LAq>OP>CL:>"]{{;>MKg<>NW&?>OFL>QOP>SCLB>UHdC>VR2D>W@hFE>Y`F>ZYHG>[NRH>\E L>]tM>^qN>_I4O>`DZP>aC4Q>bGR>cGKT>eMS3U>fNG'V>gK4>hOP>jCLY>lKZ>mCVJ>oOP>pCL]>rF5^>tl1:>uOP>wCLa>z\>{OP>}CLd>F/>OPf>^>CLh>Fݱi>Nݪ>OPk>O_ l>UQm>Sn>p= o>^[2p>UL q>O{ r>Q( s>Lt>Lru>LfN>OP>CLx>Jy>Mz>N=>OP>CL}>M"~>KXD>Mِ>G>OP~>CL>K>EV>EV>G>K>I"d>EV>EV>K>K>y0>M>Oy>K3>Ny>r >L>J> Lv>"wQ*>#Ny>$Mi>%}I >&K/>'L>)CL>,E>.@>/OP>1CL>2CL>3CL>4CL>5CL>6CL>7CL>:Ng>;M>>{ >?}G>@z(>BCL>CCL>DCL>ECL>FCL>GCL>HCL>J^>KCL>LCL>MCL>NN d>xCL>{DF>}CL>~CL>Lʻ>CL>CL>CL>OP$>K%>I~&>G >CL*>Om,>_z>OP.>R]>CL>CL>OP>CL3>v(4>A6>Xf7>U348>e@9>lM:>m&g;>m<>og>OP>>R?>K@>JHA>S>OPD>L{CE>JF>J7G>R*>E>J3>EH>A9|>\:>M>`' >^ >xH >{in !>CL >CL>CL>l >OP>yN >du[>FA>GҀ>}w1>wO>CL>CL>CL> CL> CL> I-^>I3v>Lu>| >G] >@F>Atx >BO\ >Er>HO>K~Ü >NLO>OG>Rz=q>S~ >TIk>UCL!>WR+>ZtU >]gff >_a33>`Zf>a^ >bCL>cCL>dCL>eCL>gCL>jOP>kOP>lOP>nCL>qSZ>sH>tI/>uHF>wu>xu}e>Wj}f>kR ^ ^ M>{ N>EtO>NDP>KpQ>TAR>UrS>ouq T>]V>KX>GY>M>[>˝\>M^>a_>@`>@a>tub>vc>r >CL>CL>CLg>t>M >CL>CL> CL> CLm>EJn>~o>GP>CL>CL>CL>CL>CL>CL>CLw>yx> J8Ry>!M>"OP{>#PE|>$T}>&qM;~>(^>*@|1>,FK<>/qes ~>1OP>5i |>7CL>:I>;P>?Pu>BCLt>CCL>mk >nnz >oj 5>qL6>rLD->sOP>uCL:>x\;>zJe<>{Xf*?>}F>K>OP>CLB>HC>Q[D>@pE>^\F>]=qG>I{H>E L>FM>zN>aqO>ETP>DQ>HR>GS T>Mr@U>NeSV>Ko#>OP>CLY>K}Z>C<*>OP>CL]>G^>jp>OP>CLa>\>OP>CLd>G>OPf>^>CLh>Fmi>N>OPk>O| l>R=qm>Q\)n>q o>^-p>U\) q>N r>R s>L&t>Lyu>Lt>OP>CLx>Jy>Kz>NR>OP>CL}>MB~>Kx#>M>GC>OP~>CL>K>EV>EV> G> K>4I"d>7EV>8EV>;K>=x>>M)\>AO/>CK<->DNy>Gr >IL>JJF>MT<>Owe#>PNy>QNy>R}  >TK3>UL>WCL>ZE>[Ξ>\OP>^CL>_CL>`CL>aCL>bCL>cCL>eCL>hQ>iG6g>jYg>k}>lp>m{ >oCL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N >CL>DGt>CL>CL>L>CL>CL>CL>OP$>K%>I#&>LL>CL*>Oi,>_">OP.>R_<>CL>CL>OP>CL3>vU4>A6>e@7>b8>d349>lV:>ds3;> j<> ff> OP>> Rf?> K@> JHA> S> OPD> KE> J*F> JNG> Q> F> K>f> F > B5> ["> M> `6 > ^ > w > z !> CL > "CL> #CL> %h > 'OP> *xo > ,c-> -F> .Gϛ> /z> 1wc> 3CL> 4CL> 5CL> 6CL> 7CL> bI(> cI,3> eJ]> h|ƚ > kG > mF5> ns > oK7< > rp> uO4> x~l^ > yKF> {EV[> |z=q> }~ > ~HG> A"> S> t4 > kf > `> [f> ^ > CL> CL> CL> CL> CL> OP> OP> OP> CL> S> HƐ> I1> HK6> hR> hR}e> /z }f>mn ^ ^ M> z N> E~O> NP> KQ> TR> Uy:S> o T> ^V> KCX> GY> MTK[> )\> K^> g_> @`> @!a> )rRb> *tGc> +p> -CL> .CL> 0CLg> 2t > 4CL> 5CL> 6CL> 7CLm> :ESn> >o> @G> BCL> CCL> DCL> ECL> FCL> GCL> ICLw> Lv\x> MHy> NMff> OOP{> PP.|> QT}$}> Sq]~> U^> W@m> YFF> \q ~> ^OP> ao@Y |> CL> I> P^> J> I'u> CLt> CL> b > n=q > j`B 5> L 6> LJ> OP> CL:> \Š;> IĚ<> Wa}?> F>K> OP> CLB> HC> P?wD> @pE> ^pF> ZG> JffH> E-y L> `=qM> ^{N> @O> E4P> D Q> HvR> GT~T> M U> NzZV> K> OP> CLY> KۏZ> CI:> OP> CL]> GC^> jA> OP> CLa> [g> OP> CLd> G> OPf> ^> CLh> Gi> Mi> OPk> O l> Mm> J n> r o> ^5p> V q> O r> Q s> LCt> L|u> Ll> OP> CLx> J3y> J#z> "Nh> #OP> %CL}> (MR~> )K> *N"> +F> TOP~> VCL> YK0> \EV> ]EV> ^G&"> `K> aI"d> dEV> eEV> gK> hK'> jx> kM> nOs> pL> qNy> tr > vL> wJۥ> zS+> |w`X> }Ny> ~Ny> }4 > K5M> K> CL> Ec> @> OP> CL> CL> CL> CL> CL> CL> CL> Ng> F > Ng> }> ~R> z> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> N > CL> DIC> CL> CL> LJ> CL> CL> CL> OP$> K%> I&&> O> CL*> O,> _> OP.> Rq> CL> CL> OP> CL3> !v[4> "A6> %Y7> &U348> 'V39> *k:> ,e3;> -k<> .f > /OP>> 0R?> 1K@> 2JHA> 3S\> 4OPD> 5KTcE> 6JF> 7JNG> 8Qe> ;E3> =E!> AB> B\Jl> DM> G`EA > H^'U > Iv > Jy !> MCL > NCL> PCL> Rl3 > TOP> WxWc > d> G*> Hv> > wT> CL> CL> CL> CL> CL> I'> I*c> G5X> | > I > F> sF > Ox > of> P"> ~s > J> E> z=q> )b > G> @> R> u > k > ai> [f> ^ > CL> CL> CL> CL> CL> OP> OP> OP> CL> S> Ha> I1> HM> h> h}e> b̋}f> e, ^ ^ M> z N> E|O> NEP> KQ> TwR> US> of T> I]}5V> JJۢX> KGY> LMe[> Mo\> NMÎ^> QgY_> S@`> T@a> Vrb> Wtc> XpB> ZCL> [CL> \CLg> _tʚ > aCL> bCL> cCL> dCLm> gEUn> j~o> mGMn> oCL> pCL> qCL> rCL> sCL> tCL> uCLw> y@x> zLaHy> {N.> |OP{> }Oc|> ~T6}> qǂ~> ^> @_C> FQ> qHF ~> OP> lh. |> CL> I> P'> J> PBu> CLt> CL> h > mZ > jc 5> M66> L9>> OP> CL:> \;> I <> Pe?> F>K> OP> CLB> HC> O1D> @`E> m\F> c=qG> KH> E+ L> aQM> ^N>A >O>EP>DQ>H R>G].T>M1U>NV>KZ>OP>CLY>KZ>CM>OP>!CL]>#G} ^>%ifH>&OP>(CLa>+[53>,OP>.CLd>0G>2OPf>4^>5CLh>7Gi>8LP>:OPk>;O8 l>=I=qn>>rc o>A_@p>CT\) q>DK r>EOaH s>FLt>GL~zu>ILy>JOP>tCLx>vJny>wMMz>yN{K>zOP>|CL}>Mh~>K>NB>G!>OP~>CL>KA>EV>EV>G4>Kc>H>EV>EV>K>Kl>y<>M>OP>L>Ny>r >L>J>R>w[>Ny>Ny>}D >K6>K>CL>E>} Z>OP>CL>CL>CL>CL>CL>CL>CL>Q>{>Ng>~>}>zH>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>DK>CL>CL>L*>CL> CL> CL> OP$>Kr%>I*Y&>O>?O,>@_>AOP.>BR>DCL>ECL>HOP>JCL3>Lv4>NA6>QTs37>RKL8>SV9>Vkj:>W\;>Xc <>Y] >ZOP>>[R?>\K@>]JE/A>^S6>_OPD>`K[E>aJ6F>bJG>cQ >gG>hL>iGS3>lCK>mY>oMj>s`EA >t^ >uv >vyN !>CL >CL>CL>jp >OP>xe >d!>FQ>G>qs>wZb>CL>CL>CL>CL>CL>I$J>I*c>J>} >G >F:>r >J >r>P>~] >J>El>z=q>7 >IZ>z >S>>ua > k > a > [>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>SR> H>!I4^>"HO>%v>&v}e>SiR}f> k ^ ^ M>h{1 N>jE{]O>lN~8P>mKQ>pTR>qUS>roK T>t]}V>uJ&X>wGY>xMC[>ya\>zL^>}fw_>~@`>@a>qb>u=qc>qG>CL>CL>CLg>t8 >CL>CL>CL>CLm>E0|n>@o>G:>CL>CL>CL>CL>CL>CL>CLw>{\*x>HLy>L>OP{>O|>Tu}>q~>^>@BU>FI>q ~>OP>mt |>CL>I0>PRs>J>Jەu>CLt>CL>^ >m( >i| 5>M"6>L+>OP>CL:>\]p;>Hx<>X?>F>K>OP>CLB>0HC>1N D>2@wE>4`F>5dG>6EzH>7E-y L>8a{M>9^pN>:@O>;E%P>=HR>>GnT>?MWU>@NV>AK.>BOP>DCLY>GKZ>HCd>IOP>KCL]>MG^>Oh">POP>RCLa>UZ>VOP>XCLd>ZG>\OPf>^^>_CLh>aGi>bOa>dOPk>eO l>fN{m>gJn>hpW o>k_Op>O q>IaH r>N s>Lwt>Lu>Lz>OP>CLx>Ky>R}#z>N>OP>CL}>Mh3~>K9>N]>G3>OP~>CL>K>>EV>EV>F/>Kc>H/>EV>EV>K>K >yO>M>Oe!>L>Ny>r >L>J>Q>wV>Ny>Ny>}/ >K@>K>CL>E'>}>OP> CL> CL> CL> CL> CL>CL>CL>Ng>G6g>Ng>}>}>zfg>CL>CL>CL>CL>CL>CL> CL>!^>#CL>$CL>%CL>&N >(CL>+DM>-CL>.CL>0L)>2CL>3CL>\CL>_OP$>`K%>aI.&>dO>fCL*>iO,>j^>kOP.>lR>nCL>oCL>rOP>tCL3>vvr4>xA6>{M7>|H&g8>}Vٚ9>kQ]:>a3;>b<>c>OP>>R>?>K@>J>A>S A>OPD>KE>JF>JG>Q>E>J3>E>D >\ >MC>`' >^ >u >xP !>CL >CL>CL>kh >OP>xWc >dI>G>H>ګv>ws'>CL>CL>CL>CL>CL>I#a>I#>KӜ>}T >G >F>qJ >O >p>P*U>~OI >$I>%D>&zA>'U >(Ib>*x+ >,S+>/u >2fff >3`f>4[f>5^ >6CL>8CL>9CL>:CL>;CL>>OP>?OP>AOP>CCL>FS>GH>HI4^>IHS_>Mh>Ph}e>c}f>a6 ^ ^ M>{%m N>ExO>N%P>KaQ>TR>US>oK T>]50V>JvX>GY>Ml[>EM\>Jw^>fs_>@`>@a>s\b>uc>q>CL>CL>CLg>t >CL>CL>CL>CLm>En>4o>Fr>CL>CL>CL>CL>CL>CL>CLw>xx>Hy>M4>OP{>Om:|>Te}>q~>^>@,>F3p>ph ~> OP> m| |>CL>I.>PV>J^>Ku>CLt>CL>_Ĝ >k% >hR 5> M36>!L5>"OP>$CL:>'\P;>RG<>SW?>TFE>VOP>XCLB>ZHؒC>[M D>\@E>^kF>_b(G>`F34H>aEJ! L>bF34M>c{N>db >O>eE/5P>fD+Q>gHR>hGgRT>iMU>jNV>kK>lOP>nCLY>qLjZ>rC>sOP>uCL]>wG^>ygZF>zOP>|CLa>Z>U>OP>CLd>G&">OPf>^>CLh>G4i>W>OPk>OO l>K{m>Hn>pR o>_ ?p>Q8R q>K r>NW s>L4t>Lu>Ly>OP>CLx>K y>Qkz>N>OP>CL}>M}$~>Kw>Nt>G>OP~>CL>K>EV>EV>FxC>Kc>Hs<>EV>EV>K>Kl>x>M>O`>L>Ny>r >L>J>"Ps>$wi>%Ny>&Ny>'}'s >(KF>)KY>+CL>.EN>/{\>0OP>2CL>3CL>5CL>6CL>7CL>8CL>9CL>=KC3>>Pg>?}>@~R>Az>CCL>ECL>FCL>GCL>HCL>ICL>JCL>K^>LCL>MCL>OCL>PN>RCL>}DM>~CL>CL>L>CL>CL>CL>OP$>K*%>I1&>N,>CL*>O̥,>^>OP.>Rz>CL>CL>OP>CL3>vۯ4>A6>]&f7>R8>_39>j:>[S3;>dS3<>\ >OP>>R ?>K@>J=A>R>OPD>KE>JYF>JWG>Qz>Eg>J>E>DmR>[>N>`S >]b >u65 >xt !>CL >CL>CL>h >OP>x0 >dS>G!>H(>>w>CL>CL> CL> CL> CL>I"y>I>PL>},l >F" >F:>r >K7< >Gn>JP;>M~ >NI>>OE>Pz=q>Qr >RHؒ>Sw >US >Yu >\kD >]`>^[s3>_^ >`CL>aCL>cCL>dCL>eCL>hOP>iOP>jOP>lCL>pS>qH>rI8>sHTG>vhH>yhH}e>h;}f>b ^ ^ M>{ N>EwO>N@P>KQ>TwR>U1S>oI T>]EV>JX>GY>M[>͜M\>L^>e_>@`>@a>r.b>uRc>q>CL>CL>CLg>tʚ >CL>CL>CL> CLm>Eyn>o>FU>CL>CL>CL>CL>CL>CL>CLw> 34x>!MHy>"Oq>#OP{>%O|>&T}>'qۈ~>)^>+@>-F>0pӖ ~>3OP>6j>u |>8CL>;I*a>=J_>ALZu>CCLt>DCL>F[ >Gj! Bh$ 5BM46BLOBOPB CL:B [;BGABRj?BK\@BJ9TABRBOPDBJEBJ FBJ#GBQ];BFc3BKdBEBEB[hBNB_޿ B]n BtU Bw3 !BCL BCLBCLBla7 BOPBxWc BcBFIBHKBÍMBw"BCLBCLBCLBCLBCLBI!BIBR;B}I BG BFBq BQ BoB PGB ~24 B ISBFiBz=qB BHGBw BRBv- Bg B`BYYB^ B CLB!CLB"CLB#CLB$CLB'OPB(OPB*OPB,CLB/SBXHϣBYI8BZHWB^hzBahz}eBs}f>F_ ^ ^ MB|z NB~EwOBNDuPBKQBTRBUSBo; TB]CVBJXBG~YBM[BSp\BK"^BekP_B@`B@aBr\bBspcBrBCLBCLBCLgBt? BCLBCLBCLBCLmBEjnBfgoBFBCLBCLBCLBCLBCLBCLBCLwB}GxBGyBO#BOP{BOq~|BT:}Bqu~B]B@wBEBpA ~BOPBo# |BCLB#I,2B$PPB%JuB(G,uB*CLtB+CLB.Z B/i^6 B0g 5B1M46B2Lm*B3OPB5CL:B8[??;B9FBOP~BCLBKfBEVBEVBFxCBKcBHGBEVBEVBLBKBxBMBOBK6BNyBr BLBJB LvB wnBNyBNyB}w BKJBK2BCLBEB~nBOPBCLBCLBCLBCLB CLB!CLB"CLBMNgBNPffBOYgBQSGBRSGBSRBUCLBVCLBWCLBXCLBYCLBZCLB[CLB\]B^CLB_CLB`CLBaN BcCLBfDJ*BhCLBiCLBkLBmCLBnCLBoCLBrOP$BsK.%BtI9&BwM*ByCL*B|O,B}^B~OP.BR\BCLBCLBOPBCL3Bw14BA6BX47BD8Bb9Bj:B^;Be34BRM:?BK @BJ2 ABRBOPDBJEBJFBJGBQABEɚBJBE+3BEPB\BNB_v B]! Bt!N BwQ? !BCL BCLBCLBh" BOPBxe Bd[BFBGfBBwBCLBCLBCLBCLBCLB I B!I<B"RfqB%}X B(Gf B*FB,q B-J B0pB3PEB6} B7H B8E B9zAB:' BEaB?~'B@OPBCCLBlCLBmCLBnCLBoCLBpCLBqCLBtPyBu{BvNgBwS >BxS(BzR{B|CLB}CLB~CLBCLBCLBCLBCLB]BCLBCLBCLBNBCLBDH[BCLBCLBLyBCLBCLBCLBOP$BKظ%BI;&BMBCL*BO,B^5BOP.BRBCLBCLBOPBCL3Bw+4BA6Bf7BM8BSٚ9Bi :B[l;BaBR+\?BK@BJ*ABR^BOPDBJ>EBJFBJGBQ$HBFYBKdBEBE6 BX-BN:B_ B] Bt!N Bw_ !BCL BCLBCLB m B OPB7xt B9dZ6B:FB;GfBB fp3 ~B hOPB klI |B mCLB pI `B rPm"B sJB vGVuB xCLtB yCLB |_$ B }i B ~g 5B M<6B LzB OPB CL:B Z;B MMB PuNB @{OB EPPB D`QB HGRB GTB N3 UB NVB KB OPB CLYB LZB C!B OPB CL]B Hk^B jB OPB CLaB ZUB OPB CLdB G;B OPfB ^B CLhB GXiB TB OPkB O" lB KQmB TnB t: oB ^kpB R qB L rB Nq sB LڄtB LSuB LrB OPB CLxB )KcyB *MCzB ,NB -OPB /CL}B 2M~B 3LLjB 4NB 5GEB 6OP~B 8CLB ;K_B =EVB >EVB @EB AKcB BH B CEVB DEVB FLB GKB HxB IMB LOB NK B ONyB Rr B TLB VJVB YTWB [wB \NyB ]NyB ^}{b B _KLoB `JB bCLB EB |B OPB CLB CLB CLB CLB CLB CLB CLB O4B KiB PgB |\B }B zHB CLB CLB CLB CLB CLB CLB CLB ]B CLB CLB CLB NB CLB DFB CLB CLB L5B CLB CLB CLB OP$B KA%B I>&B LZB CL*B O{,B ]B OP.B RQB CLB CLB OPB CL3B w94B A6B d 7B U 8B ]s39B ib:B ]f;B b3B R ~?B K{q@B J$\AB R3IB OPDB IEB JFB JGB QB EB JB DfB E~B \wB "MB %_i B ']Z7 B (t B )wB !B TCL B UCLB VCLB Xj63 B ZOPB ]x:D B `dB aFBB bGr/B cB dwB fCLB gCLB hCLB iCLB kCLB nIB oI<B pO3B s}u% B vHD B xF~B yp B zJ B }oB PDB } B H@B DnQB z=qB : B GB vh. B R]B v B kH B a#3B [fB ^ B CLB CLB CLB CLB CLB OPB OPB OPB CLB T$B HtB I<B HZB hffB hff}eB cx}fB |bا ^ ^ MB z NB EkOB N~PB !KQB $TRB %USB 'o,| TB )\VB *IXB +GYB ,M[B -o\B .MdD^B 2c_B 3@r`B 4@aB 6qbB 7rcB 8q >B :CLB xB JuyB QB OP{B NU|B S|m}B p~B ]B  B EB p ~B OPB n# |B CLB IB PKB JB NzuB CLtB CLB ^x B i B g 5B MC]6B LsB OPB CL:B [;B RBJAB?RIB@OPDBAI4zEBBJFBCJGBDPBHFBIKBJF3BuEBv[dByMDB|_/ B}].B B~srb Bvt !BCL BCLBCLBk BOPBx+ BdBFBGB)|Bw1UBCLBCLBCLBCLBCLBIBIBR _B} BH BFBo BQO BoBP@ZB} BH*BEWBz=qB: BFLBv BRBwB Bl33 B`3B[ B^ BCLBCLBCLBCLBCLBOPBOPBOPBCLBT BHtBI<BH\pBhBh}eBXV}fB bU ^ ^ MBI{ NBLEj@OBMN PBNKQBQTHRBRUSBSoXB TBU\GvVBVIXBXGYBYMd[BZo\B[K^B^c_B_@r`B`AaBcsbBdv\cBerkBgCLBhCLBiCLgBktl BnCLBoCLBpCLBqCLmBtEnBw}oBEBCLBCLBCLBCLBCLBCLBCLwBy{xBFyBOBOP{BN|BR}Bp\?~B]B BEBpPL ~BOPBj' |BCLBI1BP',BJBHGuBCLtBCLBYbN Bh Bf 5BMXV6BLqBOPBCL:B\.;B SOCLB?CLB@CLBCOP$BDK>%BEIB&BGKBJCL*BMO,BN^|BOOP.BPRBRCLBSCLBUOPBWCL3BZw4B\A6B_N7B`BL8BaR9Bch:Befg;BfeBiQ?BjKi.@BkJzABQBOPDBIEBJdFBJGBPhBEfBJ3BE9BF,B\iBMB^j B\ Bs)~ BvY !BCL BCLBCLBi BOPBw Bd(5BFnBGS Bj~BwTBCLBCLBCLBCLBCLBIBI-BR]B} BI BF?Bo BJ1 BpIBP4lB}u% BGeB CBB z9XB  B GB tz BR0Bw| Bhf B`B[fB^ BCLBCLBCLBCLBCLB"OPB#OPB$OPB&CLB*TbB+HDB,I@+B-H^AB0l B3l }eBol}fB]v ^ ^ MBvz NBxEhOByM'PBzKQB~TRBUSBo TB\kVBI~XBHMYBM [BSp\BN8^Bbv$_B@`BAaBsbBuzcBsBCLBCLBCLgBt BCLBCLBCLBCLmBEnBoBEBCLBCLBCLBCLBCLBCLBCLwBCxBIQyBQkBOP{BM3|BR}Bp~B]B BEBo ~BOPBl( |BCLBI vBP%BJBPBuB%CLtB&CLB(YĜ B)g B*f 5B,Mb^6B-LyB.OPB0CL:B3^K;B6RFBC]zGBDJ(HBEEj LBFEMBG{NBHbOBIElPBJDmQBKHTRBLGTBMNCUBNN}VBOKLBPOPBRCLYBUKZZBVDBWOPBYCL]B[H^B]l7B^OPBCLaB\-dBOPBCLdBGJYBOPfB^BCLhBGXiBRBOPkBO lBLmBJ33nBof oB_pBQH qBKW rBM sBLtBLouBLVhBOPBCLxBKyBIzBNBOPBCL}BM~BLBNSBG3BOP~BCLBK\BEVBEVBEZBKcBGBEVBEVBLBKBy BMBOBJPBNyBr BM BJBPtB wLB NyB NyB }Y BK6BJN*BCLBENB~qBOPBCLBCLBCLBCLBCLBCLBCLB"NgB$K3B%YgB&}B'~BP{ BRCLBSCLBTCLBUCLBVCLBWCLBYCLBZ]B[CLB\CLB]CLB^NHB`CLBcD?MBeCLBfCLBiKBjCLBkCLBlCLBoOP$BpK%BqIE&BtKWBwCL*ByO9,Bz]B{OP.B|RFB~CLBCLBOPBCL3Bw#4BA6BV@7BNs38BS9BhV:B\4;BcBQb?BK^9@BJABQBOPDBH^EBJFBJBGBPBBEBJ3BDBF4B[OBM|B^y B\Ǯ Br+ BvW !BCL BCLBCLBl9 BOPBw Bdk[BF<BGMB^BwXBCLBCLBCLBCLBCLBIBHBIEB"} B&Hw B(FB)o B*R9 B-tfB0P+@B3}u% B4G'B5EB6z9XB8 B9EZB:vI BCLBAEBB~'BCOPBECLBFCLBGCLFCLFCLFCLF CLF X4F K|FYgF~F@34F|QFCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLF NrF"CLF$D/F&CLF'CLF)K)F,CLF-CLF.CLF1OP$F2K%F3IH&F5JF8CL*F;O,Fd]FeOP.FfRFFhCLFiCLFkOPFmCL3Fpw4FrA6FtOg7FuJ@8FvQL9Fyhy:F}[9;F~c,FQqj?FKR[@FIAFQXFOPDFG EFJJFFJGFPdzFJ@FOFIFF0FZ_FMmF^ F\^ Fu6 Fx !FCL FCLFCLFhS FOPFx+ FdFEFF^F՟FwFCLFCLFCLFCLFCLFIFI<FOfF} FH FGgFmi FJY Fo3FP"F} FG'FFiFz5?F FBwFz$ FRFx F-j F.`3F/[fF1^F2CLF3CLF4CLF5CLF6CLF:OPF;OPFCLFASqFBHFDI@+FEH^AFHhzFKhz}eFi}fBUA ^ ^ MFfz.b NFEdOFLPFK2iQFTHRFVSFo,| TFWVFElXFHYFM[Fė\FP{^Fg_F@`FAaFsQbFtcFs34FCLFCLFCLgFs FCLFCLFCLFCLmFEPnF~oFD?FCLFCLFCLFCLFCLFCLFCLwFQxFK>yFOqFOP{FH{|FQ}Fm~F]F FE؍Fp ~FOPFg |F CLF IFO3TFJ@*FQTuFCLtFCLFJ FoK Fl 5FMp 6FLiFOPF CL:F"`g;F%QFhOPFjCLYFlKZFnD>rFoOPFqCL]FrH^FtlvFuOPFwCLaFz\LF{OPF}CLdFGQFOPfF^FCLhFG`iFQ5FOPkFO lFHmFEnFo oF_9opFTL qFK\ rFO\ sFLtFLuFLBFOPFCLxFJyFQzFNFOPFCL}FM~FLKFNqFG:jFOP~FCLFKwFEVFEVFFFKFI"dFEVFEVFL9FJ@FxFK=FOFJPFNyFr FM FJ˽F LvF"wF#NyF$NyF%| F&K0F'JԭF)CLF,EF.B F/OPF1CLF2CLF3CLF4CLF5CLF6CLF7CLF:NgF;G6gF_ > F?_ > F@_ > FBCLFCCLFDCLFECLFFCLFGCLFHCLFI]FKCLFLCLFMCLFNN FPCLFSD%FUCLFVCLFXIkFZCLF[CLFCLFOP$FK%FIH&FJFCL*FO,F\@ FOP.FRTFCLFCLFOPFCL3Fw4FA6FS@7FFf8FRY9Fh*:FZ;F_fFQ>?FKHO@FI{AFQ$FOPDFFEFJ{FFJ|GFP7 FA,FFvgF@FD#F^wFML6F^j F]K Fv- Fx !FCL FCLFCLFl8 FOPFx Fe FH[XFEHFFvxFCLFCLFCLF CLF CLF IFIedFJyLF}; FH FGxFn% FRJ FqpF P OF#~@ FLH[FMH2FNz5?FO FQDFRy1 FTSEFWx:D FZh"" F[a3F\[ffF]^ F^CLF`CLFaCLFbCLFcCLFfOPFgOPFiOPFkCLFnSFoHچFpICFqH`FuhHFxhH}eFu }fFLV ^ ^ MFy NFEcOFMbPFJQFTHRFU&SFoI TFVVFDBQXFH qYFM[F˝ė\FT^Ff8_F@`FAaFqbFtfgcFsBFCLFCLFCLgFs FCLFCLFCLFCLmFE nF~)oFBfFCLFCLFCLFCLFCLFCLFCLwF@{xFKyF OF"OP{F#G^|F$Q+}F%j3}~F']F) F,EժF/q+ ~F1OPF4h |F6CLF9HF:NLF Fk_ > Fl_ > FnCLFoCLFqCLFrCLFsCLFtCLFuCLFv]FwCLFxCLFyCLF{N FCLFDFCLFCLFH]FCLFCLFCLFOP$FKQ%FIJ0&FIFCL*FO,F\@FOP.FQFCLFCLFOPFCL3Fw4FA6FX47FGfg8FTL9Fgг:F_3;F_gFQ?FK=\@FIAFP4FOPDFEXEFJrFF JnGF OFAfFF34FAfFCoF]_FL F_ F]+ Fv Fyl !F CL F!CLF"CLF$jSk F&OPF'B6F(e%F*FF+E"'F.~F0vF2CLF3CLF4CLF5CLF6CLF:IF;IvFFCLFCLFCLgFss FCLF CLF CLF CLmF7EInF:~oFCLF?CLF@CLFACLFBCLFDCLFECLwFHyxFILyFJOFKOP{FLFG|FNQ}FOf~FQ]FS FUEFXpPL ~FZOPF^e; |F`CLFcHFdNW2FeIQFhPuFkCLtFlCLFnS Foq Fn 5FMw6FLw0FOPFCL:F`;FPJ F _ > F _ > F CLF CLF CLF CLF CLF CLF CLF ]F CLF CLF CLF NrF CLF D{F CLF CLF H*F CLF CLF CLF OP$F K %F IL\&F I'F CL*F OL,F \|FF OP.F Q%F CLF CLF OPF CL3F wR4F A6F b@7F _@8F ]9F gn:F (Xg;F )]F ,Pھ?F -K-@F .IAF /P6F 0OPDF 1ErEF 2JeFF 3JZ GF 4OF 7CYF 8Hs3F :CF =AF >](F @LG\F C_Z F D]h F Ew4 F Fy{ !F ICL F JCLF LCLF Nk=" F POPF QJ?pF Re>F SJF TDF UGF WvGF YCLF ZCLF [CLF \CLF ]CLF `I!F aI_ F bMF } F H F G-aF s F R F nF OF ~; F G:F GoF z1'F : F DGF zF^ F QJ}F x F k" F a#3F [fF ^F CLF CLF CLF CLF CLF OPF OPF OPF CLF SF HF IKF HfjF hRF hR}eF Uj;#}fFnWPq ^ ^ MF vw NF E]jOF JPF Jg8QF TRF VSF oXB TF U0VF B­XF H3YF Lح[F v\F TS^F "cA_F $@`F %AaF 's34bF (ugcF )t{F +CLF TCLF UCLgF Xs-a F ZCLF [CLF \CLF ]CLmF `EnF coF eA+F hCLF iCLF jCLF kCLF lCLF mCLF nCLwF r@BxF sIyF tOpF uOP{F vF|F wPO`}F xdC8~F z]F } F E<F of ~F OPF gt |F CLF HF NF IjF JuF CLtF CLF T F qw F n 5F M6F L_F OPF CL:F `%;F OM\tF ?L^uF @L:F AOPF CCLxF EJmyF FO.zF HNF IOPF KCL}F NM.~F OLbF PN6F QGvF ROP~F TCLF WKxF EVF EVF BnF JZF H*F EVF EVF L()F HٙF xF I"dF OyF JPF NyF r F M F I(-F SQ/F wF NyF NyF }'s F K2iF JԭF CLF EF @vWF OPF CLF CLF CLF CLF CLF CLF CLF NgF NF YgF _ > F _ > F _ > F CLF CLF CLF CLF CLF CLF CLF ]F CLF CLF CLF NF CLF DF CLF CLF HF CLF CLF CLF OP$F K%F IM&F HF CL*F O,F \ gF OP.F QF CLF CLF OPF CL3F w4F A6F HZg7F IZ8F J^g9F Mg@:F NY3;F O]F RPn?F SK<@F TIٛAF UP<F VOPDF WENbEF XJVFF YJB[GF ZOF ^@F _F34F `@gF c@EeF d^F gLF j_i F k] F lw F mzF^ !F pCL F qCLF rCLF th" F wOPF xP@kF yeGQF zHKF {DDF |F }ueF CLF CLF CLF CLF CLF I!F IrF JUF }; F H F FF wl F J F sYF OF )b F GxF HF z1'F : F CF | F QZF x F jQ F a F [fF ^F CLF CLF CLF CLF CLF OPF OPF OPF CLFSFHFIPFHfjFhFh}eF |t}fF Xvb ^ ^ MF4vc NF6EXlOF8JPF9JdSQFoXB TF?UVF@BXFCHYFDLe[FER\FFT[^FIay_FJ@`FKA)waFusbFwwucFxt(FzCLF{CLF|CLgF~s FCLFCLFCLFCLmFE&nF&goF@FCLFCLFCLFCLFCLFCLFCLwFwGxFIaHyFPFOP{FEq|FR }Fb\?~F]F FEFo ~FOPFg |FCLFHbdFMiFIkzFPUuFCLtFCLFS Fq Fnn 5FM6FLMHFOPFCL:Fa;FOeOPF@CL]FBH[^FDhFEOPFGCLaFJY=FKOPFMCLdFOGnFPOPfFR^FTCLhFVG`iFWNFYOPkFZOv+ lF[J(mF\EnF]_=q oF`_PpFbQf qFcL) rFdM{ sFeMdtFfLGuFgL8FhOPFjCLxFlJ|1yFmNszFoNߞFpOPFrCL}FuM~FvLFN؆FGFOP~FCLFKqFEVFEVFAҩFJ FGnFEVFEVFL BFH&fFxFI"dFOFJPFNyFr FM FI"dFR'FwƛFNFNyFy FK3FJԭFCLFEFAGuFOPFCLFCLFCLFCLFCLFCLFCLFNgFK9F YgF _ > F _ > F _ > FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFNFCLFD%F!CLF"CLF$GF'CLF(CLF)CLF+OP$F,K%F-IM&F0H=F3CL*F6OS,F7\vF8OP.F9Qr"F;CLFOPFhCL3Fkw4FmA6FoWs37FpJ@8Fq^g9FtfC:FvZ;Fw]FzPz?F{K@F|IAF}P9F~OPDFE/5EFJAFFJ'GFOE^F@3FF)F@3F~- F^{FK<F_ F^'U Fx# Fz !FCL FCLFCLFkw FOPFTFf3FGFDF̟1Fu2FCLFCLFCLFCLFCLFI$JFIpJFRj F} FHb" FEFy FQ FpFOF7 FG:FHzxFz1'F FCpF} FQ4$Fy FkDD F`F[fF^FCLFCLFCLFCLFCLF0OPF1OPF2OPF4CLF7SkF9HF:IS<F;Hh:F=wF>w}eFj}fFX ^ ^ MFYv4 NF[EWOF\JPF]JuQF`T{RFaV iSFcoXB TFdUFVFeBXFgH YFhL[Fiy\FjU%^Fgc_FA`FA)waFt(bFx\cFuFCLFCLFCLgFs FCLFCLFCLFCLmFE ?nF~4oF@kFCLFCLFCLFCLFCLFCLFCLwF~xFGHyFOFOP{FF|FPq}Fan ~F]F FEZFof ~FOPFgt |FCLFH/FNMFI?UFKtuFCLtFCLF Q F qO F n 5FM6FL[FOPFCL:Fbi;FN] F._ > F/_ > F1CLF2CLF3CLF4CLF5CLF7CLF8CLF9]F:CLF;CLFNF?CLFBD FDCLFECLFGG'FJCLFKCLFLCLFNOP$FOK%FPIO@&FSG(FVCL*FYO,FZ\EF[OP.F\QPF]CLF^CLFOPFCL3Fw4FA6Fe37FW8Fgf9Ff:F^;F]ٚFPK<?FK@FICAFO<FOPDFE5EFJ06FFJ GFOFAIFFfF@F{ߨ F]bFKF`6 F^- Fx Fzu !FCL FCLFCLFf& FOPFWpFfNFH FDhFÛɊFuFCLFCLFCLFCLFCLFI'FI'FLF}; FHw FEF|` FJY Fn3F OmjF ~ F GFI>Fz1'F FCμF~@ FRFy@Y Fk FaLF[fF^F CLF!CLF"CLF#CLF$CLFPOPFQOPFROPFTCLFWSGDFXHFZIWF[HeF^hpFahp}eFj}fF V ^ ^ MF|u NF~EUOFKrPFJFQFTRFU]SFo; TFW%VFDXFH/nYFLT[FP\FRT^FeC_FA`FAaFrbFvpcFsFCLFCLFCLgFsc FCLFCLFCLFCLmFEnF~ioF@a]FCLFCLFCLFCLFCLFCLFCLwF|\xFI{yFT>FOP{FH[O|FO2}Fb7~F]F FEFn}[ ~FOPFgV |FCLF"HF#NF$IKF'LZuF)CLtF+CLF-ths F.l< F/j 5F0MwX6F2LvGF3OPF5CL:F7_;;F:N\OPF@CLBFBH/CFCMDFD@(EFF]FFG[34GFHCHFIEY? LFJapMFK_(NFLAnOFMEPFODQFPHRFQGTFRMUFSNNwVF|KثF}OPFCLYFKFZFDFOPFCL]FH2^FgahFOPFCLaFYFOPFCLdFGuFOPfF^FCLhFG4iFLFOPkFP2 lFJmFF33nFo oF^pFSaH qFN rFN3 sFMtFLuuFLFOPFCLxFJ3yFL7zzFN׮FOPFCL}FMu~FLFNFGBFOP~FCLFJFEVFEVFA{FJ|1FF!OFEVFEVFK@FHFxFJkFOpFJPFM<Fr FM FH,HF O`F wF NyF NyFyj FK@FJԭFCLFEFxFOPFCLFCLFDCLFECLFFCLFGCLFHCLFKNgFMEɚFNPgFO_ > FP_ > FQ_ > FSCLFTCLFUCLFVCLFWCLFXCLFZCLF[]F\CLF]CLF^CLF_NFFaCLFdDFfCLFgCLFiGFkCLFlCLFmCLFpOP$FqK{%FrIP&FuG]FxCL*FzOj,F{[3 F|OP.F}Q'FCLFCLFOPFCL3Fw4FA6Fbfg7FTs38F\ٙ9Ff>G:FW;F]fFP?FJc@FIAFOFOPDFDɲEFJ'FFIGFNՃFAfFEF@3Fy F\9NFKsxF`6 F_i Fx Fz !FCL FCLFCLFk. FOPFV=Fe9FJF D:FA FuFCLFCLFCLFCLFCLFI(FI<FNUF }; F$H33 F&D%F'~] F(Q F+rF.OD,F1~24 F2G̶F3H F5z1'F6 F7E]F8}X F:QF=yl F@fٚ FAa6fFB[fFD^ FECLFFCLFGCLJCLJCLJ OPJ OPJ OPJ CLJS4JH(JIVJH\pJwJw}eFX}fF-|\ ^ ^ MJ2w NJ4EPOJ5K5{PJ6JQJ9TRJ;USJdoI TJfVrVJgDXJhHYJiL݋[Jj\JlR^JodJ_JpA9`JqAaJss\bJtucJus#JxCLJyCLJzCLgJ|r J~CLJCLJCLJCLmJEnJC4oJ@LbJCLJCLJCLJCLJCLJCLJCLwJ|34xJGyJOBJOP{JG|JO}JbG~J]J JEJm ~JOPJf< |JCLJGJO):JHNJL%uJCLtJCLJnn JjZ JidZ 5JMNM6JLdJOPJCL:J^1;JM~ J_ > J_ > J CLJ CLJ CLJCLJCLJCLJCLJ]JCLJCLJCLJN!JCLJDJCLJCLJ GJ#CLJ$CLJ%CLJ(OP$J)K%J*IQl&J+F J,CL*J/OI,JXZIJYOP.JZQJ\CLJ]CLJ`OPJbCL3Jdwu4JfA6Jics37JjO8JkS9Jnf :Jq[@;Jr_4JuO?JvJѩ@JwIAJxO_YJyOPDJzD$EJ{JFJ|IGJ}NaJ@JF J@JxU J^JK=hJ`P J`' JyN J{LS !JCL JCLJCLJfm JOPJS{JfIJJCJCJģJuJCLJCLJCLJCLJCLJI0JIAJKHJ}u% JHD JCμJU JJ JnfJODJ}u% JGJH*Jz-Jc JE J~s JR Jy JlD J`J[fJ^J CLJ!CLJ#CLJ$CLJ%CLJ(OPJ)OPJ*OPJ,CLJ0RJ1H(J2IU J3HWJ6jGJ9jG}eJf }fJvJ ^ ^ MJTv NJVEHOJWJPJXJQJTRJU$SJoI TJVVJD5{XJHYJL[JO3\JT}^Jbؾ_JA9`JAaJr>bJx.cJuLJCLJCLJCLgJr JCLJCLJCLJCLmJE nJ#4oJ JCLJCLJCLJCLJCLJCLJCLwJzxJG4yJPGJOP{JFi|JQ7}Jad~J]JȘ JEJu ~JOPJfPL |JCLJGJOpJIJJ6uJCLtJCLJw Jl33 Ji 5J M&.6J LOJ OPJCL:J^;JL~JxJI"dJOPJJJMJr JM JHP|JLvJwJMSJNyJyE JKMJJԭJCLJEmJx\JOPJCLJCLJCLJCLJ CLJ!CLJ"CLJ%NgJ&{J'NgJ(_ > J)_ > J*_ > J,CLJ-CLJ.CLJ0CLJ1CLJ2CLJ3CLJ4]J5CLJ6CLJ7CLJ9N&J;CLJ=D"WJ?CLJ@CLJBF!OJECLJFCLJGCLJIOP$JKK%JKIR&&JNPƜJyCL*J|O ,J}ZjJ~OP.JPJCLJCLJOPJCL3Jw4JA6JX337JI48JR339Je:JY33;J_lJO?JJ@JInAJO<JOPDJCEJIFJIJGJN[JA6fJFFgJ@3JvoP J^YJJQJa>' J`x Jy J{in !JCL JCLJCLJi JOPJR$JfJIJBJ}f'JuJCLJCLJCLJCLJCLJI6qJInxJK=J}X JH JCBJ@;JQN JrJNIJ }: J GJ HUJz(JFv JE JFv JR$Jy JAi JCaJD[fJE^JFCLJGCLJHCLJICLJKCLJNOPJOOPJPOPJRCLJURJWHVJXIQkJYHRwJ[wJ\w}eJW}fJ@Y$ ^ ^ MJwu_ NJyEE,OJzJFPJ{Jw!QJTRJUSJo,| TJTVJCXJGYJLF[JM\JT{^Jg6_JA9`JAaJukbJwfgcJu>JCLJCLJCLgJr JCLJCLJCLJCLmJEnJ~|oJ~$ JCLJCLJCLJCLJCLJCLJCLwJy34xJIyJOaHJOP{JEj|JPu}J `~J ]J  JEJn`* ~JOPJe |JCLJGJOmJH-J"LuJ%CLtJ&CLJ(A0! J)lX J*i 5J-M\6J.L@J/OPJ1CL:J4];J6L)HO CJ?VDJ@@HEJBmFJCc\*GJlGHJmED LJoFBMJp{RNJqbGOJrEPJsE'QJtHRJuHTJvM{UJwM4VJxKJyOPJ{CLYJ}JnZJ~EJOPJCL]JF^JgJOPJCLaJXiJOPJCLdJGQJOPfJ^JCLhJFiJV=JOPkJO? lJF=qmJDnJo oJ]JpJS qJK rJM sJL0tJLuJKJOPJCLxJK"yJSNzJNHJOPJCL}JMĢ~JLJMJGJOP~JCLJIJEVJEVJAKJJJDJEVJEVJK@JG(JxJGJOJJ JM`Jr JM JHWJTetJwJNyJ NyJ yE J4KHJ5JԭJ7CLJ:EVJ;whJCLJ?CLJ@CLJACLJBCLJDCLJECLJHNgJIKJJXYJK_ > JL_ > JM_ > JOCLJPCLJQCLJRCLJTCLJUCLJVCLJW]JXCLJYCLJZCLJ\N'J^CLJ`D(JbCLJcCLJeEV[JhCLJiCLJjCLJlOP$JmK^%JnIQl&JPJCL*JN,JYJOP.JPtXJCLJCLJOPJCL3Jw4JA6Jkٙ7JQs48JR39Jer:JXf;J\gJOe?JJ@JIL_AJNWJOPDJB1EJI:FJIGJNJC3JHJClJu J\$JJSEJa JaY Jy J{ !JCL JCLJ CLJ e J OPJ R&PJ f*RJ IqJ B_J J uJ CLJ CLJ CLJ CLJ CLJ I7YJ I{.J PJ }: J HD J DBJ @J !JY J $oٚJ 'NJ *| J ,G̶J -H*J .z(J /)b J 0DVJ 1@`2J 3Qr"J 6y J ag J b`3J d[fJ e^ J fCLJ gCLJ hCLJ iCLJ kCLJ nOPJ oOPJ pOPJ rCLJ uRlJ wHچJ xIMJ yHK6J |hpJ hp}eJ q}fJ(E؀ ^ ^ MJ v NJ E;0OJ J PJ JZ3QJ TDRJ USJ o TJ T_CVJ BmXJ GYJ L}-[J ҡ\J U_J^J gӀ_J AU`J A DaJ t4bJ wHcJ t{J CLJ CLJ CLgJ rj] J CLJ CLJ CLJ CLmJ DGnJ ~oJ }xJ F#yJ OJ (OP{J )D`|J *Rt}J ,`kC~J .]J 0 J 2EJ 5tx ~J 7OPJ ;ce |J =CLJ @GJ AOgHJ BHJ EIbuJ HCLtJ ICLJ KB6 J Ln J J Mjx 5J PL06J QL6J ROPJ TCL:J V\3;J YK< J o_ > J p_ > J rCLJ sCLJ tCLJ uCLJ wCLJ xCLJ yCLJ z]J {CLJ |CLJ }CLJ N#J CLJ D+dJ CLJ CLJ DJ CLJ CLJ CLJ OP$J Kr%J IR&J OJ CL*J N?,J ZJ OP.J P_nJ CLJ CLJ OPJ CL3J wB4J A6J nff7J Z&g8J fL9J e~@:J Xf;J ]FfJ O>'?J JJ@J I"yAJ NEJ OPDJ AՐEJ IFJ IUGJ MvJ @lJ EɚJ @J s J _J IJJ aЊ J aY J z % J {/ !J !CL J "CLJ #CLJ %hr J 'OPJ (R~8J )fJ *HvJ ,B J /tiJ 1u<J 3CLJ 4CLJ 5CLJ 6CLJ 7CLJ :I:J VJ AeBXJ GYJ L=[J L`\J T.^J e_J Ar`J @aJ r=qbJ ucJ tW J CLJ CLJ CLgJ r J CLJ CLJ CLJ CLmJ D?nJ ~fgoJ {º J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ H|{xJ IEzyJ JR34J KOP{J LC7|J MR<}J O_@\~J Q]J S J UEJ Xy# ~J ZOPJ ^g |J `CLJ cG[J dN[J eHJ hL0uJ kCLtJ lCLJ nC- J on% J pjr 5J sLϕ6J tL'J uOPJ wCL:J y\;J |J J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN.JCLJD+dJCLJCLJD%JCLJCLJCLJOP$JK*%JIR&&JNJCL*JN,JZqKJOP.JPJCLJCLJOPJCL3Jwi4JA6Jg337JS8JY39JeT:J[3;JaS3JNq?JJf@JHAJN_#JOPDJ@7EJIoFJI#GJ M\J @JE3J@Jrg? J_cHJat J?z7 J@{ !JDCL JECLJFCLJHd JJOPJKRʕJLgBJMH7JNAcJPhJQu<JSCLJTCLJUCLJVCLJWCLJZI>J\Ig5J]L J`|& JcH3 JeCBJf@JgKr JjnLJmNDJp|j JrGJsJwJtz Ju~Ü JvC~JwAJR _Jz JjU JafJ[ J^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJQ,JHJIJ(JH>Jh(Jh(}eJPb)}fJ nH ^ ^ MJu=< NJ E+OJ IbPJ JQJTARJUSJn TJRVJ@XJHYJK[J˫\JT^Jb_JAr`J@aJ!sbJ"wcJ#tuJ%CLJ&CLJ(CLgJ*rj] J,CLJ-CLJ.CLJ/CLmJ2DےnJ6~oJ7z4 J9CLJ:CLJ;CLJCLJhCLwJkAxJlJGyJmNJnOP{JoC$|JpR}Jra~Jt]Jv0 JxEJ{u ~J}OPJc7 |JCLJGiJNJHJHnmuJCLtJCLJR\) Jnz Jk- 5JLq6JLJOPJCL:J[ ;JJI( J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN2`JCLJD'JCLJCLJCUJCLJCLJCLJOP$JK%JIP&JNgJCL*JN`,J[pJ OP.J OНJ CLJ CLJOPJCL3JwpS4JA{6JZ&g7JP8J[339Je/$:J _`;J!^J$N ?J%JF@J&HAJ'N*J(OPDJ*~ EJ,IsFJ-HGJ.MdJ2AJ3GpJ\BJ]q J`]ɂJaHJcbq JdbE Jezcz Jf{H !JiCL JjCLJkCLJmgX JoOPJqRJrfz@JsG$Jt@Ju\}Jvu&JxCLJyCLJzCLJ|CLJ}CLJIEJIedJHgJ|j JH JCJ@JO JtJN]J|ƚ JGoJK JzJ~ JCUJB1 JQJz7 Jm* J`fJ[3J^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJQvHJHJIJ(JH:JhffJhff}eJup}fJWZ ^ ^ MJ-t{ NJ/E"OJ1HcPJ2I QJ5TARJ6TʅSJ7nT TJ8QxVJ9 XJ\J?V^JBg_JCA#`JD@aJFspbJHucJIsJKCLJLCLJMCLgJOr. JQCLJSCLJTCLJUCLmJXDnJ[}oJ\wӅ J^CLJ_CLJCLJCLJCLJCLJCLwJDxJKyJLJOP{JB|JRwk}Jd~J]J JEJtM ~JOPJa |JCLJGJJNJHyJMG5uJCLtJCLJ^ Jqy Jm~ 5JL 6JLJOPJCL:JZ;JI2 J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN#8JCLJD,LJCLJCLJB8PJCLJCLJ CLJ#OP$J$KU%J%IP&J(MJ*CL*J-N+,J.ZJ/OP.J0OeJ2CLJ3CLJ6OPJ7CL3J:w4*4JJIP?JJJ"@JKH|AJLM۽JMOPDJP|} EJRIMHFJSHGJ|MYJ~4JCJ~4Jp J`JHJb Jc Jzr J{H !JCL JCLJCLJf JOPJS=JgjJFJ J~nDJt JCLJCLJCLJCLJCLJIJjJIKJMJ|R8 JI33 JC JA:%JKT JrJM¤J| JGoJL BJz J~OI JB JBnJN,JzF^ Jj3 J`J[fJ^JCLJCLJCLJCLJCLJOPJOPJOPJ CLJ QJH,JII?JH5sJvfJvf}eJW;}fJd ^ ^ MJVt NJXE`OJYH,6PJZIQJ]TzRJ_TcSJ`n TJaPxCVJb}c XJdH%zYJeK[Jf\JhW]^Jki _JlA#`Jm@aJotbJpvcJqt >JsCLJuCLJvCLgJxq JzCLJ{CLJ|CLJ}CLmJDWnJ}goJu JCLJCLJCLJCLJCLJCLJCLwJCxJH yJLJOP{JAj|JS}Je~J]J JEeJx ~JOPJ` |JCLJG;IJNpwJHJJG(uJCLtJCLJe Jt7L JnĜ 5J LS6J L^JOPJCL:JX*;JI OPJ@CLaJB[JCOPJECLdJGGNOPfN^NCLhN FiN S1N OPkNO$ lN@mNznNnǮ oN\TpNY= qNQ\ rNTu sNLtNLlAuNKQNOPNCLxN KFyN"JzN$MlN%OPN'CL}N*M`@~N+LN,LTN-GTN.OP~N0CLN2IΘN4@gvN6EVN7AN8J N9CN:EVN;@;NeL NfBNgxNhBVNkOpNmICNoLPNrr NtM NuFN=NxPvNzvN{PN|NyN}p N~K.NJmNCLNEmNxNOPNCLNCLNCLNCLNCLNCLNCLNPgNKfNY#3NG N_ > N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN,NCLND3NCLNCLNANCLNCLNCLNOP$NKx;%NIO&NLNCL*NMl,NZNOP.NOjNCLNCLNOPNCL3Nw4NA{6N^7N[8Nefg9NdQ:NVFg;N,\@N/PB?N0J@N1HMwAN2MkN3OPDN6}X EN8I FN9HGN:NE&N=A@N>F N@@3NAoC ND^_NEG`NFc NGcjS NHz$ NI{H !NLCL NNCLNOCLNQe[ NSOPNTSNUg(WNVGgRNY O N[7N]tN_CLN`CLNaCLNbCLNcCLNfIPNgI%NMP]N{ NIQ NBNNAW3NM NnS3NM~N|& NGNLZNz JN~ NBENBNMDNzT Nk3 Na&fNZ3N^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNPENHNIGnNH1Nh\)Nh\)}eN[hf}fJk ^ ^ MNsz NNE"ONH7PNIHQNTrlRNT SN n TN"PRVN#|)\ XN%HYN&Ks[N's\N(Uԟ^N+eV_N-A*`N.AaNXrbNYukcNZrkN\CLN]CLN_CLgNaq NcCLNdCLNeCLNfCLmNiD&nNl~4oNnt8= NpCLNqCLNrCLNsCLNtCLNuCLNvCLwNzBxN{HkyN|PN}OP{N~~Y |NSg}Ne*~N]N? NEuN{H ~NOPN` |NCLNGNN NHFXNL%uNCLtNCLNg Ntu Nov 5NLkX6NLNOPNCL:NXw;NHujq oNA\lpNCU qNDN rNFP\ sNGLZtNHLfuNIK0NJOPNLCLxNNK yNOO zNQMN2NROPNTCL}NWMN2~NXKNYLNZG'N[OP~NCLNI(-N@uNEVNA:NJNCwNEVN@JeNLzNBNxNBƘNONINLTNr NM NEfNNSNvNP NNyNp NK(INJmNCLNEN{V1NOPNCLNCLNCLNCLNCLNCLNCLNNgNM\N`iNG N_ > N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN,NCLND6ANCLNCLNANCLN CLN CLN OP$N Kr%NIM&NLW3NCL*NM,NYNOP.NO1NCLNCLNOPN!CL3NLw4NNA{6NPQ7NQS8NRY9NUd):NW[s4;NX_4N[RL?N\I@N]H#AN^MSAN_OPDNb~Ü ENcHFNdH\zGNeO;DNi~fNjCNk}S3Nln7 No`]NqG3NrcM Nsc7 Ntz$ Nu{ !NxCL NyCLNzCLN}e!4 NOPNSKNg6NG;$N~] NlNsNCLNCLNCLNCLNCLNITfNINI7`N{ NI NANAW3NM NpNM4N| NH[NL6Nz1N}h NBNC NLNzT Nq NaN[3N^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNPtNHN IFN!H+zN%h =N(h =}eNb}fNn[' ^ ^ MNBtq NNEE%ONFH3XPNGI&QNJT_gRNKTSNLoK TNMOVVNO{ XNyH XYNzJ[N{E\N|Ue^Na=_NA*`N@aNu>bNv\cNu=qNCLNCLNCLgNqQ NCLNCLNCLNCLmND`nN~\oNsZ NCLNCLNCLNCLNCLNCLNCLwNyxNGyNP >NOP{N~@ |NVR}Nb/~N]N NEN} ~NOPN_ |NCLNFNNY]NH[NLyuNCLtNCLNiS NtV No 5NLY 6NLlNOPNCL:NWlr;NG& N_ > NCLNCLNCLNCLNCLN CLN"CLN#]N$CLN%CLN&CLN'N. N)CLN,D8N.CLN/CLN1AN3CLN4CLN5CLN8OP$N9KmP%N:IK&N=KN@CL*NBMg,NCYNlOP.NmNNoCLNpCLNsOPNuCL3Nxv-4NyA{6N|]7N}U 8N~cL9Nd:N[;N_yNS ?NI@NHjANMNOPDN~; ENHoFNH,OGNONApNFPN@Nmq N`NF>Nc7 Nd( Nz N{ !NCL NCLNCLNe!4 NOPNTNgNFN}T NۡDNrNCLNCLNCLNCLNCLNIZNINHa"N{LS NJ&f NAKNAlNL" NsNLbN|ƚ NI/jNLŭNy`BN}; NBNC=NKFNzcz N m N4`N5[fN6^ N7CLN9CLN:CLN;CLNMN dzHNN eapON fFpPN gEeQN hH0RN iH"TN jL`UN kLVN lI54N mOPN oCLYN qFxCZN rEN tOPN vCL]N xEd^N zjwN {OPN }CLaN ZjN OPN CLdN F5N OPfN ^N CLhN EiN PN OPkN N7 lN EmN B\)nN mf oN \,pN T qN Mz rN O sN LMtN LY uN JN OPN CLxN JyN PMzN LN OPN CL}N L~N KzN LN GnN OP~N CLN IEN @N EVN BFN K N Ci(N EVN @gvN LN AN xN B LN ON IN L|N r N M N DN PtN wIN POtN NyN m N (K!N )JԭN +CLN .EN /zKN 0OPN 2CLN 4CLN 5CLN 6CLN 7CLN 8CLN 9CLN NgN ?G N @_ > N B_ > N DCLN ECLN FCLN GCLN HCLN ICLN JCLN K]N LCLN NCLN OCLN PN8N RCLN UD7(N WCLN XCLN Y@N \CLN ]CLN ^CLN aOP$N bK`%N cIJ&N JN CL*N M!,N Y*N OP.N NN CLN CLN OPN CL3N v4N A{6N W7N E8N Vٚ9N d:N Z;N _fN S?N I@N G AN L߮N OPDN ~ EN H FN HkGN PoLN AfN EɚN @4N ls N `̬N F8N c N dq N z$ N { !N CL N CLN CLN f N OPN RN fvN FN |C N pN rN CLN CLN CLN CLN CLN I]zN HxN HYN { N JU N @XN A+N Q N tN !LDN $|} N &I N (LN +y|N T}I N UBNN VCZN WK"N Xzcz N [m3 N ]aLN ^[3N _^N `CLN aCLN bCLN cCLN eCLN hOPN iOPN jOPN lCLN oOֳN qHtN rIFN sH!N vi33N yi33}eN ^)}fN qz ^ ^ MN s NN EON H9PN I :QN TjRN T-SN n TN NVN yR XN H%zYN J[N ̥\N V^N gx/_N A1`N @aN uRbN xǯcN tHN CLN CLN CLgN q N CLN CLN CLN CLmN DnN ~34oN qD N CLN CLN CLN CLN CLN CLN CLwN wxN GHyN !ON "OP{N #|1~ |N %U*}N &fm~N (]N * N ,EN /|ƚ ~N 1OPN 5a |N 7CLN :FON ;MN N j_ > N lCLN nCLN oCLN pCLN qCLN rCLN sCLN t]N uCLN vCLN xCLN yN6N {CLN ~D7(N CLN CLN @C N CLN CLN CLN OP$N KU%N IGK&N JSN CL*N L,N YSN OP.N NqN CLN CLN OPN CL3N v4N A{6N X7N Og8N Zg9N dO:N \3;N _ N S?N I@N GdAN LN OPDN AQcEN HFN GGN P2N AffN F34N @N kU N`sNE*Nd7' Nd Nz N{ !NCL NCLNCLNd7' N!OPN"QNN$gN%F{N({a N)SN+r)N-CLN.CLN/CLN1CLN2CLN5IdN6HN7HN:z? N=Jw N?c N@@RNAJx NErNHL],NK|` NtHdNvLbNyxNz} N{B N|CpiN~JāNzT Nm Na`N[N^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNONH1NIHWNH(NN}eN)H!x}fN ErՐ ^ ^ MNt0 NNEONHWPNI QNTc6RNT SNn TNNVNx| XNH"YNJ[Nq&\NWB^Ng] _NA8`NAaNtbNwcNuNCLNCLNCLgNqM NCLNCLN CLN CLmN DnN~4oNo NCLNyNGONIOP{NJ| |NKWs}NLd|m~NN]NP NREeNVx ~NXOPN[` |N]CLN`F,NaMsNcG NfHHuNhCLtNiCLNklX Nmup Nnpl 5NpK6NqKډNrOPNvCL:NU;NE~O^1NhINiM Nlr NnM NpB֐NsLvNuvNvO$NwNyNxkH NyK!NzIEaN|CLNEvN|ڊNOPNCLNCLNCLNCLNCLNCLNCLNNgNG6gNYNG N_ > N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN8'NCLND6ANCLNCLN NCLNCLNCLNOP$NKA%NIE&NI5NCL*NL{,NY NOP.NNMNCLNCLNOPNCL3NvD4NA{6N]g7NQL8NYff9Ndk&:N^;N^S4NS~?NIh@NGANLvNOPDNAuENHFNGGN0PN4B3N5G3N6B`N7j9 N:_ N;EN=dE N>e N?z$ N@{in !NCCL NDCLNECLNGe NIOPNKONLf\HNMF+tNP{LS NRNSqgNUCLNVCLNWCLNYCLNZCLN]IeN^HN_PNbzT NeJ Ng~# Ni~s NjQ Np&fNLN|C NHNKPNy N|ƚ NANCwNI{NzF^ Nm@ Na N[fN^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNO:_NHNIFNHNBNB}eNRZ^_}fNktYS ^ ^ MN s NN EgONGPNHQNT[RNSvSNn TNMZVNw^ XNH YNI[N\NVD^Nf@_N A8`N!AaN$ubN%vcN&sN(CLN)CLN*CLgN,q N.CLN0CLN1CLN2CLmN]DnN`}oNanZ NcCLNeCLNfCLNgCLNhCLNiCLNjCLwNm{\*xNnH=qyNpNNqOP{Nrz |NsWn}Ntg~Nv]Nx N{EN~y@Y ~NOPN\& |NCLNF~NM"NG1NPuNCLtNCLNl Nu{ No 5NK6NKNOPNCL:NTʆ;NONOPNCLaNYFNOPNCLdN$FN&OPfN(^N)CLhN+DYiN,NRN.OPkN/N lN0CRmN1AffnN2oaH oN5\*pN7YL qN8OL rN9RG sN:LtN;LD-uN=JCN>OPN@CLxNBJāyNCKzNEL8NFOPNHCL}NKL*~NLJdNMKfNNGeNOOP~NQCLNSHNV@NWEVNXBcNYKcNZC.N[EVN\@N^L#N_B.NxNBVNONIrNM NoANM NBXBNTPNvNP(NNyNm NKNI"NCLNEN{oNOPNCLNCLNCLNCLNCLNCLNCLNQ`NKNYfNG N_ > N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN>NCLND9NCLNCLNU NCLNCLNCLNOP$NK)%NIC&NHUNCL*N Lf,N YN OP.NN UNCLNCLNOPNCL3NvG4NA{6N^7NKs38NYff9N!dXK:N#W;N$^ N'Tk?NPIL_@NQGANRL@NSOPDNTBDENUHqFNVG:GNWPeNZ~4N[CN]}@N^jT Naa@yNbEsNce Nddp Nez$ Nf{LS !NiCL NkCLNlCLNnbE NpOPNqNdNrg(WNsFNv{ Nx`Nzq6N|CLN}CLN~CLNCLNCLNIh_NHκNINy NJ33 N|= Nz NJx NpVfNKڒN| NG0NK0NxN|} NAONCwNJmNz)B Nnf N`N[N^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNNpNHNIFNHNiffNiff}eNxe}fNt ^ ^ MN.sM NN0E ON1HPN2HkQN5T[RN6SSN8n TN9L VN:v- XN}\N?WFg^NCe_NDA@`NE@aNGukbNHwfgcNIuNKCLNMCLNNCLgNPqp NRCLNSCLN|CLN}CLmNDnN}S4oNm NCLNCLNCLNCLNCLNCLNCLwNv\xNJyNPNOP{NzK |NW L}Nh~N]N? NEyN|` ~NOPN] |NCLNFl~NLNGNGo>uNCLtNCLNl NtĜ No 5NK*6NKQNOPNCL:NU;NRDN@EN]FN`zGNDHNEG LNbGMN_(NNAffONF8PNEQNHRNHTTNKUNKVNHNOPN CLYN EWZN FRNOPNCL]NE ^Ng#YNOPNCLaNXNOPNECLdNGFqNIOPfNK^NLCLhNNDiNOM~NQOPkNRMF lNSD(mNUA=qnNVop oNY\pN[V qN\O) rN]Rk sN^L%tN_LEuN`JNaOPNcCLxNeJ yNfJ1zNhL NiOPNkCL}NnL~NoJNpK2(NqGNrOP~NtCLNvHNy@۶NzEVN{BN}KN~C$NEVN@NK@NANxNB3NONIaNM NoANM NBVNRsNvNP(NNyNiw/ NKNHNCLNEN}DNOPNCLNCLNCLNCLNCLNCLNCLNQNG6gNNgNG N_ > N_ > NCLNCLN CLN CLNCLNCLNCLN]NCLNCLNCLNNENCLND8NCLNCLN)b N"CLN#CLN$CLN'OP$N(K%N)IA&N+GrN.CL*N1L/9,N2ZjN3OP.N4MXN6CLN7CLN:OPN;CL3N>v7l4N@A{6NC]g7NDy8NEU 9NGd=:RnX;Rn\gRn T?Rn I0#@Rn GARn L&RnOPDRnBERnHSFRnGGRnQARnBs4RnGٚRnBC3Rni Rn],=RnE>Rne RneM Rn z$ Rn!{= !Rn$CL Rn%CLRn'CLRn)dq Rn+OPRn,NRn-f|dRn.FRn1{ Rn2uGZRn4qRn7CLRn8CLRn9CLRn:CLRn;CLRnfIiGRngHRnhLRnly@ RnoJb" Rnq{H Rnrw RnsOZ Rnvr#3RnyK~Rn|{ Rn}GxRnJ_CRnyVRn|5! RnARnCpiRnJRnz % Rnlww Rn`Rn[fRn^ RnCLRnCLRnCLRnCLRnCLRnOPRnOPRnOPRnCLRnNRnHRnIARnH_RnwRnw}eRn2T}fNt ^ ^ MRnr NRnE ORnH#PRnHnQRnT_gRRnSbhSRnn$ TRnLVRnuς XRnGYRnIo[Rnҽ\RnX5V^Rnd_RnA@`Rn@aRnsbRnv{cRnsRnCLRn,CLRn.CLgRn0qa Rn2CLRn3CLRn4CLRn5CLmRn8DOnRn<}oRn=mU Rn?CLRn@CLRnACLRnBCLRnCCLRnDCLRnFCLwRnIAxRnJIyRnKOQRnLOP{RnMyA |RnNW+}RnPe~RnR]RnTq RnVERnY} ~Rn[OPRn_^ |RnaCLRndF[DRneLRnfG]RnNeuRnCLtRnCLRnl RntbN Rno8 5RnK6RnKRnOPRnCL:RnV;RnRQ; Rn_ > RnCLRnCLRnCLRnCLRnCLRnCLRnCLRn]RnCLRnCLRnCLRnNARnCLRnD6ARnCLRnCLRnFv RnCLRnCLRnCLRnOP$RnK%RnI?U&RnORnCL*RnKh,RnYORnOP.RnMRnCLRnCLRnOPRnCL3Rnv/4Rn A6Rn"U7Rn#G8Rn$W&g9Rn'd#:Rn+X;Rn,]4Rn/Tso?Rn0I@Rn1GARn2KݺRn3OPDRn4BcERn5H6FRn6G,GRn7Q!fRn:CRn;HRni RnAaiTRnBE5RnCf/ RnDex RnEz RnF{ !RnICL RnJCLRnLCLRnNdc RnPOPRnQMRnRgRnSF9RnV{/9 RnWtRnZqRnCLRnCLRnCLRnCLRnCLRnIkRnHRnNRny]w RnJww Rn{ Rnu RnL RnqRnKZRn{H RnG̶RnIRnyRn{a Rn@.RnCpiRnJZRny Rnjff Rn_ٚRnWS3Rn^ RnCLRnCLRnCLRnCLRnCLRnOPRnOPRnOPRnCLRnN`RnHkRnICRnH_Rnv3Rnv3}eRnWW\}fRnt3 ^ ^ MRn s NRn EORnGPRnHTQRnT[RRnS2SRnn$ TRnLVRnu? XRnGYRnIZ"[Rnҽ\RnX ^Rn d/_Rn!AG`Rn"@aRnLrgbRnMu=qcRnNsRnPCLRnRCLRnSCLgRnUqY9 RnWCLRnXCLRnYCLRnZCLmRn]DnRna}oRnbl׷ RndCLRneCLRnfCLRngCLRnhCLRniCLRnkCLwRnn@34xRnoHyRnpNRnqOP{Rnrxi |RnsWL}RnuiY~Rnw]Rnyq Rn{ERn~} ~RnOPRn]J |RnCLRnFBRnLu{RnGRnFuRnCLtRnCLRnlX Rns! Rnop 5RnKh6RnKRnOPRnCL:RnW;RnQCKKRn$OPfRn&^Rn'CLhRn)DBiRn*PRn,OPkRn-M lRn.B=qmRn0A =nRn1r oRn4\ pRn6S qRn7L{ rRn8N sRn9L{tRn:L<uRn;IbRnCLxRn@JyRnAQSzRnCK}RnDOPRnFCL}RnIL;~RnJJiRnKJ2RnLGRnMOP~RnOCLRnyHRn|@=Rn}EVRn~BwRnKRnCRnEVRn@RnKRn@ŰRnxdRnB3RnORnIiRnM RnoARnM Rn@RnLvRnvRnP(RnNyRnh RnKRnGpFRnCLRnE{}Rn~ RnOPRnCLRnCLRnCLRnCLRnCLRnCLRnCLRnNgRnMRnYgRn_Rn_Rn_RnCLRnCLRnCLRnCLRnCLRnCLRnCLRn]RnCLRnCLRnCLRnN=RnCLRnD3RnCLRnCLRn~ RnCLRnCLRnCLRnOP$RnJ%RnI=)&RnPRn CL*Rn KU,Rn YfRnOP.RnMRnCLRnCLRnOPRnCL3RnAuf4RnCA6RnFb7RnGU 8RnH^339RnJd:RnLYg;RnM^3RnPTt(?RnQH@RnRGtARnSKxRnTOPDRnUB0SERnVHFRnWGuGRnXPRn\~LRn]CfRn^}fgRn_h Rnb]wwRncEaRndgx RnfeT Rngz Rnhz !RnkCL RnlCLRnmCLRnoc RnqOPRnrNqRntfҺRnuFRnxz$ RnyrBRn{qHRnCLRnCLRnCLRnCLRnCLRnIlRnHaRnI8Rny RnJ Rnz Rnu ~ RnLlR RnrRnKRn{ RnGRnJmRnyRn{ Rn@RnCpiRnKfvRny Rnj Rn`RnYRn^ RnCLRnCLRnCLRnCLRnCLRnOPRnOPRnOPRn CLRnN!RnHRnIBRnH Rni =Rni =}eRnyT\}fRnt ^ ^ MRn2sNi NRn4EORn6H^!PRn7Ha"QRn:TP/RRn;SiSRnu XRnAHYRnBI X[RnC5\RnlXr^Rnoc׏_RnpAG`Rnq@TaRntu\bRnuy34cRnvvpRnxCLRnyCLRnzCLgRn|q Rn~CLRnCLRnCLRnCLmRnDnRn~ oRnl RnCLRnCLRnCLRnCLRnCLRnCLRnCLwRnyxRnFyRnNRRnOP{Rnx |RnW}Rnip~Rn]RncP RnEORn~ ~RnOPRn\ |RnCLRnF-RnL@RnGRnKuRnCLtRnCLRnl5@ Rns RnoV 5RnK6RnKRnOPRnCL:RnW;RnORn zT^?Rn {H@Rn |G`ARn }K5Rn ~OPDRn BLERn HFRn Gd|GRn P Rn AIRn EɚRn @Rn h Rn a_Rn DRn hr Rn f(r Rn zr Rn z[ !Rn CL Rn CLRn CLRn e5 Rn OPRn OMNRn g*{Rn FRn zcz Rn ~nDRn qxRn CLRn CLRn CLRn CLRn CLRn IlRn HRn LRn x Rn JDD Rn y Rn tz Rn Qk Rn r&fRn J Rn { Rn H Rn JZRn xRn {in Rn @Rn CwRn K?mRn y@ Rn m. Rn a&fRn Y3Rn ^ Rn CLRn CLRn CLRn (CLRn *CLRn -OPRn .OPRn /OPRn 1CLRn 5McRn 6HYRn 7ICRn 8H Rn :vLRn ;vL}eRn W}fRntG ^ ^ MRn Vs NRn XEkORn YH;0PRn ZHGQRn ^TP/RRn _SbhSRn `n TRn aL+VRn bu XRn GYRn I/O[Rn |v\Rn Yn^Rn e5_Rn AN9`Rn @ۘaRn v34bRn x>cRn tRn CLRn CLRn CLgRn p Rn CLRn CLRn CLRn CLmRn DHnRn }4oRn k Rn CLRn CLRn CLRn CLRn CLRn CLRn CLwRn tGxRn I\yRn OQRn OP{Rn yH |Rn W}Rn g ~Rn ]Rn cP Rn EpRn ~ ~Rn OPRn ]d |Rn CLRn FRn L Rn GRn L;uRn CLtRn CLRn l = Rn t Rn nĜ 5Rn K6Rn KRn OPRn CL:Rn W±;Rn LVRn WH0Rn XOPRn ZCLYRn \DYZRn ]ERn _OPRn aCL]Rn cCμ^Rn ekRn fOPRn hCLaRn kYYMRn lOPRn nCLdRn oF!ORn qOPfRn s^Rn tCLhRn vCiRn xV@Rn zOPkRn {M lRn |B\)mRn }@HnRn ~p oRn ]">pRn U qRn NaH rRn Q3 sRn LtttRn L(uRn IuRn OPRn CLxRn JmyRn OczRn K82Rn OPRn CL}Rn KZ~Rn J-Rn JjRn GuRn OP~Rn CLRn H@Rn ARn EVRn B Rn KRn DRn EVRn @۶Rn KRn ARn xdRn B3Rn O/Rn IRn M Rn oARn M Rn @ Rn SsRn vRn P(Rn NyRn h Rn KyRn GRn CLRn ERn }GRn OPRn !CLRn "CLRn #CLRn $CLRn %CLRn &CLRn 'CLRn *NgRn +G6gRn ,]əRn -G Rn /_ > Rn 0_ > Rn 2CLRn 3CLRn 4CLRn 5CLRn 6CLRn 7CLRn 8CLRn 9]Rn ;CLRn NGQRn @CLRn CD3Rn ECLRn FCLRn HBɀRn JCLRn KCLRn LCLRn OOP$Rn PJȩ%Rn QI7`&Rn TMcRn VCL*Rn Kn8,Rn ZifRn OP.Rn NRn CLRn CLRn OPRn CL3Rn u4Rn A6Rn R 7Rn D38Rn U9Rn c:Rn Y33;Rn ]ٚRn T٣?Rn H@Rn GIdARn KVRn OPDRn B9ERn GfFRn GOGRn PݠRn AyRn F)Rn @Rn g Rn ]Rn DRn i Rn fb Rn zr Rn z? !Rn CL Rn CLRn CLRn cjS Rn OPRn ORn g ;Rn FKVRn z % Rn u-Rn pRn CLRn CLRn CLRn CLRn CLRn IkRn HRn IRn x Rn KL Rn y{ Rn tx Rn JM Rn rfRn JzRn { Rn H]Rn JwRn xRn {/9 Rn @Rn C~Rn K)Rn y# Rn ln Rn `ٚRn ZRn H^ Rn ICLRn JCLRn KCLRn LCLRn MCLRn QOPRn ROPRn SOPRn UCLRn XMRn YHRn [I?CRn \HgRn _h33Rn bh33}eRn UG}fRn tw ^ ^ MRn }sz NRn EORn GvPRn H1ZQRn T@RRn SBQSRn n TRn L\VRn t XRn GϑYRn H[Rn R\Rn Vx.^Rn d_Rn AN9`Rn @TaRn ugbRn xcRn wRn CLRn CLRn CLgRn p Rn CLRn CLRn CLRn CLmRn DnRn }4oRn k Rn CLRn CLRn CLRn CLRn CLRn CLRn CLwRn vxRn GyRn PHRn OP{Rn y=p |Rn V}Rn f`~Rn]RncP RnEmRnz[ ~RnOPRn] |Rn CLRn#FARn$KrRn%GRn(IquRn*CLtRn,CLRn.l3 Rn/tC Rn0nĜ 5Rn2Ky$6Rn3KRn4OPRn6CL:Rn9W;RnEZRn@OPRnBCLBRnDF/CRnET$DRnF@ERnHbfgFRnIiGRnJN=qHRnKEA_ LRntD4MRnuzNRnva\ORnwF\PRnxE~QRnyI RRn{HETRn|JURn}JVRn~HhRnOPRnCLYRnDZRnElRnOPRnCL]RnCpi^RnkRnOPRnCLaRnYRnOPRnCLdRnERnOPfRn^RnCLhRnC:iRnV,}RnOPkRnM\ lRnB33mRn@nRno\ oRn]-pRnVff qRnOQ rRnRk sRnLotRnL0uRnIvSRnOPRnCLxRnJtyRnM4zRnK RnOPRnCL}RnK˨~RnIrRnJ5(RnGmRnOP~RnCLRnH@RnARnEVRnBRnKRnDRnEVRn@=RnKRn@URnxdRn@NRnORnIiRnM RnoARn M Rn @ RnR RnvRnP(RnNyRnFQdRn@CLRnCEjRnD} ZRnEOPRnGCLRnHCLRnICLRnJCLRnLCLRnMCLRnNCLRnQNgRnRMffRnSX RnTG RnU_ > RnV_ > RnXCLRnZCLRn[CLRn\CLRn]CLRn^CLRn_CLRn`]RnaCLRnbCLRndCLRneNCRngCLRnjD2RnkCLRnlCLRnnBwRnqCLRnrCLRnsCLRnvOP$RnwJK%RnI54&RnKx`RnCL*RnK>,RnZRnOP.RnNlRnCLRnCLRnOPRnCL3RnuY4RnA6RnV@7RnN8RnY9Rnc:Rncg;RnaRnTg?RnH@RnG77ARnK.RnOPDRnBERnGFRnGAGRnPRn~fRnC3Rn}Rng{ RnaRnDRnk Rnf Rnzcz Rnz !RnCL RnCLRn CLRn dp Rn OPRnPRnfՕRnFvRnz % Rn@) Rnp>RnCLRnCLRnCLRnCLRnCLRn!ImRn"HRn#J˽Rn&xH Rn)I Rn+y{ Rn-tx Rn.P Rn1rYRn4JWRn7{ Rn8HRn9JRn:yVRn;zu Rn<@Rn>C.Rn?J;Rnhy]w Rnkm Rnl`fRnm[fRnn^ RnoCLRnqCLRnrCLRnsCLRntCLRnwOPRnxOPRnzOPRn|CLRnMy+RnHFRnI?CRnHRnSRnS}eRnX»}fRn.u-h ^ ^ MRnsNi NRnE ORnH`PRnHQRnTDRRnS)\SRnn$ TRnLEVRnt XRnG{YRnH[Rnܩ \RnX-^RneT_RnAN9`Rn@TaRnuRbRnx cRnwHRnCLRnCLRnCLgRnpE RnCLRnCLRnCLRnCLmRnDnRn}9oRnkI RnCLRnCLRnCLRnCLRnCLRnCLRnCLwRnu=qxRnH\yRn1NLRn2OP{Rn3w |Rn4X+}Rn5is~Rn7]Rn9T Rn Rn}_ > RnCLRnCLRnCLRnCLRnCLRnCLRnCLRn]RnCLRnCLRnCLRnNCRnCLRnD/RnCLRnCLRnBcRnCLRnCLRnCLRnOP$RnJy%RnI3&RnIRnCL*RnK,Rn[~RnOP.RnN5RnCLRnCLRnOPRnCL3Rnu8n4RnA6RnZg7RnKs38RnRg9RncЃ:RnY ;Rn_34RnT?RnH'@RnG$"ARnK 3RnOPDRnBgERnGzFRnG/GRnPvRn~fRnDRn}RngA Rn%^DRn&DyNRn'lo Rn(f Rn)zT Rn+zcz !Rn.CL Rn/CLRn0CLRn2c Rn4OPRn5PoLRn6g `Rn8F?Rn;y] Rn<{պRn>pRn@CLRnACLRnBCLRnCCLRnECLRnHIlRnIHkRnJM@RnMx RnPJ RnRy RnSt RnTJ RnXr3Rn[JRn^{in Rn_H RnJ3Rny/Rnz? Rn@RnCpRnJ˽Rny@Y Rnp{ RnaRn[ Rn^ RnCLRnCLRnCLRnCLRnCLRnOPRnOPRnOPRnCLRnMC]RnHRnI=sRnHRnv3Rnv3}eRnuRn!IRRn"OPRn$CLxRn&J+yRn(Jw;zRn)J3Rn+OPRn-CL}Rn0K~Rn1IRn2I!Rn3GT~Rn4OP~Rn6CLRn8GRn:A2Rn;EVRn=CRn?KRn@E,ORnCEVRnDAKRnFKRnG@DRnHxRnI@RnLORnNI$RnOM RnSoARn}LRnEVRnKϑRnvTRnP(RnNyRne RnJvRnFNRnCLRnEVRn} ZRnOPRnCLRnCLRnCLRnCLRnCLRnCLRnCLRnNgRnERnX33RnG Rn_ > Rn_ > RnCLRnCLRnCLRnCLRnCLRnCLRnCLRn]RnCLRnCLRnCLRnNBRnCLRnD,LRnCLRnCLRnBRnCLRnCLRnCLRnOP$RnJ%RnI.&RnG:RnCL*RnJN,Rn[m*RnOP.RnNRnCLRnCLRnOPRnCL3Rnu4RnA{6RnTs37RnE8RnRg9Rn cl:Rn X ;Rn ^yRnT?RnHh@RnGSARnJRnOPDRnBERnGFRnG gGRnPRnAS3RnDF RnE@3RnFg$ RnIanRnJDURnKm RnLg! RnMz7 RnOz)B !RnRCL RnSCLRnTCLRnVc[ RnXOPRnYPF0RnZfRn[F!ORn_yN Rn`oڤRnbpRndCLRneCLRnfCLRngCLRniCLRnlImRnmHRnnI,RnqwS RntK RnvyN RnwtY RnxL Rn|rRnIiRn{in RnI RnJPRnyRnzr Rn@RRnCRnJZRny Rn{"" RnaYRn^yRn^ RnCLRnCLRnCLRnCLRnCLRnOPRnOPRnOPRnCLRnM6RnHRnI;RnG%Rnj33Rnj33}eRn`SZ#}fRnxvi ^ ^ MRns1L NRnEORnGMPRnGQRnT9[RRnReSRn nn TRn!KVRn"sjA XRn%GYRn&HW7[Rn'{\Rn(VJ^Rn+dD3_Rn,AUU`Rn-@ۘaRn0t4bRn1x.cRn2t >Rn4CLRn5CLRn6CLgRn8pg0 Rn:CLRnCLmRnADinRnD}oRnEj( RnGCLVVCLVVCLVVCLVV CLVV CLVV CLwVVwHxVVJGyVVMVVOP{VVu |VVX}VVi~VV]VVF_ VVErVV}R ~VV!OPVV$\7 |VV&CLVV)E#VV*K@VV,GVV/P8uVV1CLtVV2CLVV4o~ VV6u VV7o 5VV9KMw6VV:K\VV;OPVVeCL:VVhW;VVkQM VV]_ > VV_CLVV`CLVVaCLVVbCLVVdCLVVeCLVVfCLVVg]VVCLVVCLVVCLVVNJ4VVCLVVD'VVCLVVCLVVAVVCLVVCLVVCLVVOP$VVJK%VVI->&VVQ.VVCL*VVJ,VVZkVVOP.VVOVVCLVVCLVVOPVVCL3VVtH4VVA{6VVTs37VVFY8VVT9VVcT:VV[3;VV_VVTg?VVHOI@VVFVAVVJCVVOPDVVB@EVVGFVVG@GVVPtXVVAVVFfVVAVVfG VV^sVVDVV n VV gX VV z)B VV z % !VVCL VVCLVVCLVVd VVOPVVPF0VVgVVEVVy VVZ$gVV p_VV"CLVV#CLVV$CLVV%CLVV&CLVV)InVV+HVV,GVV/w VVZIٚ VV\y1 VV]uD VV^Pq VVas`VVdIVVh{= VViIZVVjJZVVkxVVlz7 VVm@bVVnCuVVoJVVpx VVsq"" VVuaC3VVv^yVVw^ VVxCLVVyCLVVzCLVV|CLVV}CLVVOPVVOPVVOPVVCLVVLWVVH5VVI7VVGVVjffVVjff}eVVj-}fVV4x+ ^ ^ MVVs" NVVEOVVGPVVGTQVVT1RVVRpSVVn}[ TVVJ}BVVVqA XVVG}MYVVH"[VVy\VV\)?^VVf[_VVA\r`VV@ۘaVVrgbVVvaHcVVspVVCLVVCLVVCLgVVpv VV CLVV!CLVV"CLVV$CLmVV'D)nVV*~\oVV+iK VV-CLVV.CLVV/CLVV0CLVV2CLVV3CLVV4CLwVV7~xVV8FyVV9M8RVV:OP{VVh~VV@]VVB7 VVDEhVVG~] ~VVJOPVVM[[ |VVOCLVVREVVSKVVTGVVVFTuVVXCLtVVYCLVV[pb VVuX VVo 5VVKR6VVKSVVOPVVCL:VVZC;VVROVVF{PVVEQVVIRVVHI>TVVIUVVJ0VVVH^VVOPVVCLYVVDZVVEVVOPVVCL]VVBUZ^VVhĀVVOPVVCLaVVXPVVOPVVCLdVVEVVOPfVV^VVCLhVVCL!iVVRVVOPkVVM_ lVVymVVwnVV] oVV\2pVVS qVVM rVVN sVVLetVVKuVVI"dVVOPVVCLxVV ILyVV Qi zVV JVVOPVVCL}VVKc~VVIQVVIVVGDVVOP~VVCLVVG;VVAOVVEVVVC=VV"KVV#E,OVVNEVVVOA$ZVVQKVVR@DVVSxܩVVT@ VVWOPPVVYIVVZM VV]oAVV_LVVcEVVVdSeVVfvVVgPBVVhNyVVieN VVjJVVkEuVVmCLVVpEVVq~`VVsOPVVuCLVVvCLVVwCLVVxCLVVyCLVVzCLVV{CLVV~NgVVQVfVVYgVVG VV_ > VV_ > VVCLVVCLVVCLVVCLVVCLVVCLVVCLVV]VVCLVVCLVVCLVVNJ4VVCLVVD#?VVCLVVCLVVA"VVCLVVCLVVCLVVOP$VVJy%VVI+&VVOVVCL*VVJ,VVYVVOP.VVOjVVCLVVCLVVOPVVCL3VVt4VVA{6VVW7VVSfg8VV[9VVc:VV]4;VV] VVTF?VVH6@VVFqAVVJ VVOPDVVBk!EVV Gs3FVV!FGVV"Pm"VV%}2VV&C3VV(}ٙVV)fpz VV,aȤVV-CSVV.pY VV/g VV0z VV1y !VV5CL VV6CLVV7CLVV9b(\ VV;OPVVFKVVBx VVD*VVEp$VVGCLVVHCLVVICLVVJCLVVKCLVVOIoVVxHVVyIhVV|w_ VVIn VVx VVu VVJ VVnffVVIwVV{ VVI{VVJZVVy =VVz % VV@VVCVVJ_CVVx VVu VVa@VV^yVV^ VVCLVVCLVVCLVVCLVVCLVVOPVVOPVVOPVVCLVVL VVHeVVI8VVGVVhVVh}eVVDhW}fVV[y^ ^ ^ MVVrc NVVEOVVG`PVVGb@QVVTRVVRaSVVn$ TVVI~VVVn XVVGnYVVHD[VV\VVX(^VVb|_VVAc`VV@aVVrbVVuzcVVtW VVCLVVCLVVCLgVVp( VVCLVVCLVVCLVVCLmVVDnVV}oVVhj VVCLVV CLVV CLVV CLVV4CLVV5CLVV6CLwVV9{ xVV:H>yVV VV _ > VV CLVV CLVV CLVV CLVV CLVV CLVV CLVV ]VV CLVV CLVV CLVV NDmVV CLVV D&VV CLVV CLVV AeVV CLVV CLVV CLVV OP$VV Jqb%VV I't&VV LVV CL*VV JF,VV ZVV OP.VV OJVV CLVV CLVV OPVV CL3VV t4VV A{6VV Q7VV HL8VV Yff9VV c:VV _g;VV _@VV TH?VV H@VV FwAVV J*VV OPDVV BGEVV GVFVV (FGVV )PzVV -@c3VV .Es3VV /@VV 0e˹ VV 3a dVV 4CVV 5qt VV 6h VV 8y VV 9y !VV CLVV @c VV BOPVV CPؔVV Ee8VV FFNVV IxWc VV KtyVV Lo|VV NCLVV OCLVV PCLVV RCLVV SCLVV VIoVV WHkVV XIVV [wl VV ^KU VV ax VV bu6 VV cQN VV ns3VV I*JVV { VV I\VV JPVV xVV y VV @VV CVV IVV x VV v VV `3VV ^|VV ^ VV CLVV CLVV CLVV CLVV CLVV OPVV OPVV OPVV CLVV L^VV HVV I8VV GVV gHVV gH}eVV Kg|}fVVcz ^ ^ MVV r NVV DIOVV GuPVV GLQVV T RVV RASVV n$ TVV I'VVV n XVV GmYVV H%[VV M\VV ]a^VV d&_VV Ac`VV @!aVV tbVV ucVV sVV CLVV CLVV CLgVV #p VV %CLVV &CLVV 'CLVV (CLmVV +DnVV V}4oVV Wg» VV ZCLVV [CLVV \CLVV ]CLVV ^CLVV _CLVV `CLwVV dw >xVV eEyVV fPHVV gOP{VV hq| |VV iZ}VV jk~VV m]VV o)n VV qELVV t| ~VV vOPVV yW[o |VV {CLVV EoVV JVV G.VV P?wuVV CLtVV CLVV r VV sm VV o8 5VV Kh6VV KUVV OPVV CL:VV ^;VV N"CL}VV @K)~VV BHVV CI*VV DG+VV EOP~VV GCLVV IF5VV LA{VV MEVVV NCVV PKVV QE,OVV TEVVV UAOVV WKVV @DVV xufVV @ VV OBoVV HVV M VV oAVV LVV EVVV LvVV vVV P(VV NyVV dӃ VV JVV EoBVV CLVV EVV zKVV OPVV CLVV CLVV CLVV CLVV CLVV CLVV CLVV PgVV MVV YgVV G VV _ > VV _ > VV CLVV CLVV CLVV CLVV CLVV CLVV CLVV ]VV CLVV CLVV CLVV NDmVV CLVV D%VV CLVV CLVV ByVV CLVV CLVV CLVV OP$VV Jj%VV I$&VV IAVV CL*VV J!h,VV YL`VV OP.VV PVV CLVV CLVV OPVV CL3VV t_4VV A{6VV b37VV OY8VV bfg9VV c:VV Z ;VV ^VV HTvP?VV IH#@VV JFAVV KM*VV LOPDVV MBGEVV NGCFVV OFDGVV PP]DVV TApVV UF34VV V@gVV We VV Z`VV [C@VV ]r# VV ^h6 VV _y VV `y]w !VV cCL VV dCLVV eCLVV gb VV jOPVV kPYVV lgVV mFsVV pw VV q}3 VV soVV uCLVV wCLVV xCLVV yCLVV zCLVV }ImVV ~HVV N1VV v( VV Jٚ VV x VV u VV J< VV rVV H VV zu VV ILVV JVV xVV y# VV @=VV CVV JXVV xe VV o VV a#3VV ^|VV ^ VV CLVV CLVV CLVV CLVV CLVV OPVV OPVV OPVV CLVV L0#VV HVV I8VV G^VV vVV v}eVV qW }fVV {ē ^ ^ MVV%r+< NVV'DoOVV(GPVV)FQVV,TFRVV.R%SVV/n TVV0I'VVV1n XVV3GMfYVV4G[VV5\VV7Y^VV:b_VV;Ac`VV<@aVV>t >bVV?v*cVV@tVVBCLVVDCLVVECLgVVGp VVICLVVJCLVVKCLVVtCLmVVxDnVV{}goVV|f VV~CLVVCLVVCLVVCLVVCLVVCLVVCLwVV@\xVVJyVVOpVVOP{VVofg |VV[P}VVl- ~VV]VV)n VVEP1VV{ ~VVOPVVW |VVCLVVE~0VVJCVVFVVFXuVVCLtVVCLVVsbN VVs VVn 5VVKk~6VVKrVVOPVVCL:VV_;VVL MVV{ NVVeGOVVFPVVEsQVVI RVVHa"TVVI'uUVVI^VVVHVVOPVVCLYVVEZVVDVV OPVV CL]VV A^VVeVVOPVVCLaVV VV_ > VVCLVVCLVVCLVVCLVVCLVV CLVV CLVV ]VV CLVVCLVVCLVVNE&VVCLVVD VVCLVVCLVVAfVVCLVVCLVVCLVV!OP$VV"JW%VV#I"d&VV&J `VV(CL*VV+I,VV,YTFVV-OP.VV.PVV0CLVV1CLVV4OPVV5CL3VV8t+4VV:A{6VV=\@7VV>Ts38VV?X9VVjc}:VVkXs3;VVl]s3VVoT?VVpG@VVqF AVVrOjVVsOPDVVtBEVVuG4}FVVvFNGVVwPVV{CfVV|G3VV}BVfVV~d VVbVVBVVrn VVh VVy VVy1 !VVCL VVCLVVCLVVcjS VVOPVVQBVVf1uVVFVVvv VV)VVo{VVCLVVCLVVCLVVCLVVCLVVIlVVHVVFպVVv VVJ VVxH VVu6 VVO=0 VVtVVHʼVVz VVJVVJāVVxVVyN VV@VVDVVJ VVx:D VV{ VVa`VV^|VV^ VVCLVVCLVVCLVVCLVVCLVVOPVVOPVVOPVVCLVVLlVVHRVVI4^VVGVV1gVV4g}eVVkt}fVV|Q ^ ^ MVVOq NVVQDOVVRFOPVVSFQVVWSRVVXR!SVVYnQ TVVZH0bVVV[lH XVV]G="YVV^G٦[VV``\VVaYJ^VVdcu_VVeAc`VVf@aVVhtHbVVixcVVjw(VVCLVVCLVVCLgVVoښ VVCLVVCLVVCLVVCLmVVDnVV}oVVe#A VVCLVVCLVVCLVVCLVVCLVVCLVVCLwVV@QxVVHyVVNVVOP{VVmfg |VV[ }VVn.~VV]VV VVENVV{/ ~VVOPVVWx |VVCLVVEX'VVJVVFkVVMuVVCLtVVCLVVu VVr VVo{ 5VVK`6VV KVV OPVV CL:VV^C;VVK!G VV3_ > VV5CLVV7CLVV8CLVV9CLVV:CLVV;CLVVCLVV?CLVVACLVVBNJ4VVDCLVVGD VVHCLVVICLVVKC VVNCLVVOCLVVPCLVVSOP$VVTJA6%VVUI 8&VVWPVVZCL*VV]I,VV^YE1VV_OP.VVOtVVCLVVCLVVOPVVCL3VVt&.4VVA{6VVS@7VVMٙ8VVXf9VVcj:VVX3;VV\gVVT$?VVG@VVFAVVQzVVOPDVVBQEVVG FVVFYGVVPVVBgVVGpVVB9VVc VV`QVVBVVsF VVh VVy VVx !VVCL VVCLVVCLVVat VVCLVVA+VVA"VVF!OVVvt VV)VVoaVVCLVVCLVVCLVVCLVVCLVVIpVVHVVG]VVvK VVJU VV x VV u VV LlR VVnVVHlVVz VVJ;VVK VVy%VVy VVAKVVDVVIVVx VV"xH VV#alVV$^|VV%^ VV'CLVVPCLVVQCLVVRCLVVSCLVVVOPVVXOPVVYOPVV[CLVV^KVV_HVVaI5GVVbG5VVehVVhh}eVVf}fVV~G ^ ^ MVVrV NVVDOVVFPVVFQVVS>RVVQSVV~ TVVGDVVVk XVVG+YVVG[VV˪\VV\G^VVe6_VVAc`VVA8aVVtbVVyaHcVVvVVCLVVCLVVCLgVVo VVCLVVCLVVCLVVCLmVVEnVV}oVVd[ VVCLVVCLVVCLVVCLVVCLVVCLVVCLwVVAGxVVHyVVPffVVOP{VVmDD |VV\7}VVlӪ~VV]VV VVEhVV!|` ~VV#OPVV&XE |VV)CLVV,E?VV-IQVV.FVV1JeuVV3CLtVV5CLVV7u5 VV8s VV9o 5VV;KEF6VV VV__ > VVaCLVVcCLVVdCLVVeCLVVfCLVVgCLVVhCLVVi]VVjCLVVlCLVVmCLVVnNH VVpCLVVsD%VVuCLVVvCLVVwBɀVVzCLVV{CLVV|CLVVOP$VVJ9%VVI&VVMVVCL*VVIK,VVY>VVOP.VVPVVCLVVCLVVOPVVCL3VVs4VVA{6VVZ7VVL338VVSٚ9VVc[:VVZ;VV^ VVT?VVG@VVFCAVVRVVOPDVVBp6EVVG jFVVF5GVVP VVCVVHVVC<VVd VVbxZ>x Z>AZ>D- Z> HaZ> w Z> w Z>a#3Z>^|Z>^ Z>CLZ>CLZ>CLZ>CLZ>CLZ>OPZ>OPZ>OPZ>CLZ>!KZ>"HZ>$I0Z>%G}Z>(h\Z>+h\}eVV$eC}fVV7# ^ ^ MZ>nq NZ>pDoOZ>qGPZ>rFsQZ>uSRZ>vQ+SZ>x TZ>yGkVZ>zk XZ>|GYZ>}G~&[Z>~ \Z>[Q^Z>d%_Z>Aj`Z>BaZ>r bZ>tcZ>s{Z>CLZ>CLZ>CLgZ>oL Z>CLZ>CLZ>CLZ>CLmZ>EnZ>}C4oZ>cӅ Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLwZ>~\*xZ>K\yZ>MZ>OP{Z>lwx |Z>\Q}Z>k~Z>]Z>@XZ>FZ>}f ~Z>OPZ>Uv |Z>CLZ>EE$Z>IZ>FZ>JƫuZ>CLtZ>CLZ>x+ Z>tI Z>o\ 5Z>KT6Z>K*Z>OPZ>CL:Z>-];;Z>0HD1X ?Z>2DuZ>4OPZ>6CLBZ>8DCZ>9V\DZ>:@=EZ>=bGGZ>>H=qHZ>?E@ LZ>@nfg MZ>AgNZ>BYG OZ>DFPZ>EFQZ>FI+RZ>GHXrTZ>HHUZ>IHVZ>JGZ>KOPZ>MCLYZ>OEZZ>PDZ>ROPZ>TCL]Z>V@^Z>WgZ>YOPZ>ZCLaZ>]V5Z>^OPZ>`CLdZ>bEV[Z>dOPfZ>f^Z>gCLhZ>BrdiZ>MiZ>OPkZ>Li lZ>tffmZ>r\nZ>^\) oZ>\JpZ>T = qZ>L rZ>O{ sZ>LOtZ>KxuZ>HZ>OPZ>CLxZ>I yZ>QzZ>IZ>OPZ>CL}Z>Jā~Z>HjWZ>HZ>G]Z>OP~Z>CLZ>F Z>A"Z>EVZ>C>Z>KUZ>DZ>@Z>A Z>KZ>EZ>x$Z>EVZ>OlZ>I gZ>M Z>oAZ>LZ>EVZ>LvZ>vϼZ>PjZ>NyZ>eb3 Z> JOZ> DZ> CLZ>EZ>|.Z>OPZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>O3Z>G6gZ>YgZ> G Z>!_ > Z>#_ > Z>%CLZ>&CLZ>'CLZ>(CLZ>)CLZ>*CLZ>+CLZ>,]Z>.CLZ>/CLZ>XCLZ>YNBZ>[CLZ>^D&Z>`CLZ>aCLZ>cBNZ>eCLZ>fCLZ>gCLZ>jOP$Z>kJ)%Z>lI&Z>oJ6Z>qCL*Z>tI,Z>uYnZ>vOP.Z>wPHZZ>yCLZ>zCLZ>}OPZ>CL3Z>s4Z>A{6Z>hff7Z>WL8Z>^ 9Z>c9:Z>X ;Z>Z@YFfZ>OP>Z>T?Z>G3@Z>FtAZ>S;Z>OPDZ>BOEZ>FFZ>FGZ>OZ>A4Z>EɚZ>@3Z>d4 Z>_PZ>BaZ>t>u Z>i\ Z>yN Z>x !Z>CL Z>CLZ>CLZ>c Z>OPZ>C_Z>dA5Z>EZ>u Z>Z>oZ>CLZ>CLZ>CLZ>CLZ>CLZ>I_KZ>HZ>O Z>u} Z> K Z>"wt Z>#u Z>$R Z>'p9Z>*H.JZ>.z? Z>/JZ>0JZ>1xZ>2x Z>3AZ>4DJZ>5IbZ>7w Z>:{ Z>;aZ><^|Z>=^ Z>>CLZ>@CLZ>ACLZ>BCLZ>CCLZ>FOPZ>GOPZ>IOPZ>KCLZ>NKuZ>OHWZ>PI.Z>QGZ>Tx33Z>Ux33}eZ>r}fZ>A^ ^ MZ>qB= NZ>DOZ>FPZ>F=QZ>SiRZ>QSZ>@TZ>G]gVZ>j% XZ>G qYZ>GwV[Z>\Z>Z(^Z>b_Z>Aj`Z>CaZ>u\*bZ>xǯcZ>u\*Z>CLZ>CLZ>CLgZ>o Z>CLZ>CLZ>CLZ>CLmZ>FLnZ>}0oZ>cj Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLwZ>~xZ>HǮyZ>P >Z>OP{Z>l"# |Z>]}Z>l~Z>]Z> @nZ> F^Z>| ~Z>OPZ>V |Z>CLZ>E'CZ>I]Z>FZ>NݪuZ> CLtZ>!CLZ>Ly' Z>Msk Z>Noj 5Z>PJN6Z>QKo!Z>ROPZ>TCL:Z>W\ ;Z>ZG L[Vch?Z>\DQNZ>^OPZ>`CLBZ>bDnQCZ>cV:DDZ>d@9EZ>fSffFZ>gc GZ>hBHZ>iE0 LZ>jnH MZ>khNZ>lZ=q OZ>mFfPZ>nF"QZ>oI0#RZ>pHa"TZ>qHvLUZ>rHˮVZ>sGZ>tOPZ>vCLYZ>xFZZ>yDnQZ>{OPZ>}CL]Z>@^Z>iZ>OPZ>CLaZ>VtZ>OPZ>CLdZ>E9[Z>OPfZ>^Z>CLhZ>BFiZ>LZ>OPkZ>L lZ>w\)mZ>r=qnZ>] oZ>\pZ>U qZ>O rZ>P{ sZ>LGtZ>KuuZ>HO Z>OPZ>CLxZ>IyZ>P͙zZ>IkZ>OPZ>CL}Z>J~Z>HE#Z>HjJZ>FZ>OP~Z>CLZ>EZ>AҩZ>EVZ>C:Z>KUZ>DXZ>@-SZ>AZ>KZ>EZ>x5Z>EVZ> O4Z>"IZ>#M Z>&oAZ>(LZ>+EVZ>,SƣZ>.vӼZ>/PZoZ>0M<Z>1d] Z>2J3Z>4E,Z>6CLZ>9EpZ>:{\Z>;OPZ>=CLZ>>CLZ>?CLZ>@CLZ>ACLZ>CCLZ>DCLZ>GNgZ>HG6gZ>IYZ>JG Z>K_ > Z>L_ > Z>NCLZ>OCLZ>yCLZ>zCLZ>{CLZ>|CLZ>}CLZ>~]Z>CLZ>CLZ>CLZ>NHZ>CLZ>D&Z>CLZ>CLZ>AZ>CLZ>CLZ>CLZ>OP$Z>J j%Z>I&Z>GZ>CL*Z>Ij,Z>XZ>OP.Z>P=Z>CLZ>CLZ>OPZ>CL3Z>s4Z>A{6Z>`7Z>N&f8Z>Q9Z>c.<:Z>\Y;Z>_L\ffZ>OP>Z>TX?Z>G3@Z>Fg5AZ>StZ>OPDZ>Bk!EZ>FFZ>FsGZ>OZ>~s4Z>Cc4Z>~9Z>d! Z>bWZ>BXZ>tz Z>i Z>y1 Z>xWc !Z>CL Z>CLZ>CLZ>a Z>OPZ>GZ>eZ>F(Z> vv Z> o*Z> o Z>CLZ>CLZ>CLZ>CLZ>CLZ>IZZ>@HZ>AH]Z>Du6 Z>HJ Z>Jw3 Z>Kv Z>LJ Z>OrZ>RGZ>Uz$ Z>VJZ>XJZZ>YxZ>Zxt Z>[A2Z>\DgZ>]ILZ>^w| Z>bzٚ Z>caLZ>d^|Z>e^ Z>fCLZ>gCLZ>iCLZ>jCLZ>kCLZ>nOPZ>oOPZ>pOPZ>sCLZ>vKKZ>wH{FZ>xI.Z>yG Z>hZ>h}eZ> S}fZ>LA^ ^ MZ>q NZ>D*OZ>FPPZ>FQZ>S/RZ>QSZ>@nTZ>GVZ>j* XZ>FYZ>GQ`[Z>ӭA\Z>\^Z>dz_Z>Aj`Z>DhaZ>u\bZ>wW cZ>tGZ>CLZ> CLZ> CLgZ> n Z>CLZ>CLZ>CLZ>CLmZ>GAnZ>},oZ>c Z>CLZ>CLZ>CLZ>CLZ> CLZ>!CLZ>"CLwZ>%AxZ>&H\)yZ>'N Z>)OP{Z>,k |Z>.[>7}Z>/lhg~Z>1]Z>3A\WZ>5F1Z>9{ ~Z>;OPZ>>V׬ |Z>@CLZ>CEZ>lI54Z>nFZ>qHuZ>sCLtZ>tCLZ>vz) Z>xsx Z>ynT 5Z>{JL6Z>|KRZ>}OPZ>CL:Z>[D;Z>ETNZ?Z>DQNZ>OPZ>CLBZ>D4KCZ>UDZ>@*CEZ>]=qFZ>]zGZ>JHHZ>DX LZ>nH MZ>iNZ>Z=q OZ>FPZ>F-QZ>I*YRZ>HsTZ>HIUZ>H,VZ>G} Z>OPZ>CLYZ>EZZ>DBZ>OPZ>CL]Z>@`2^Z>i%Z>OPZ>CLaZ>W('Z>OPZ>CLdZ>EZ>OPfZ>^Z>CLhZ>B)iZ>UZ>OPkZ>L|- lZ>t=qmZ>rffnZ>]f oZ>[pZ>T qZ>MǮ rZ>O sZ>L@tZ>KZuZ>HdZ>OPZ>CLxZ>HyZ>Np.zZ>IwZ>OPZ>CL}Z>J|1~Z>HZ>H?Z> FIZ> OP~Z>4CLZ>6EZ>8A/Z>9EVZ>;CμZ>=DZ>>@-SZ>?AZ>AKZ>DEZ>Fx9Z>IEVZ>JOe!Z>LIZ>NM Z>QoAZ>SLZ>VEVZ>WPrZ>Yv#,Z>ZP2,Z>[MZ>\d] Z>]JцZ>^E,Z>`CLZ>cEZ>e{\Z>fOPZ>hCLZ>iCLZ>jCLZ>kCLZ>lCLZ>mCLZ>nCLZ>NgZ>M3Z>YgZ>G Z>_ > Z>_ > Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>]Z>CLZ>CLZ>CLZ>NBZ>CLZ>D%Z>CLZ>CLZ>BEZ>CLZ>CLZ>CLZ>OP$Z>I)%Z>I&Z>Q5Z>CL*Z>IC,Z>X#Z>OP.Z>P94Z>CLZ>CLZ>OPZ>CL3Z>s4Z> A{6Z> Xf7Z> O338Z> OY9Z> c":Z> `9;Z> \  _Z> OP>Z> U#?Z> Gb@Z> FVAZ> TZ> OPDZ> A:EZ> FsFZ> F`GZ> O&Z> A\Z> F3Z> @Z> d Z> ^mZ> B^Z> !u ~ Z> "i[ Z> $y Z> %x# !Z> (CL Z> )CLZ> *CLZ> ,a Z> .OPZ> /L4rZ> 1fIZ> 2EZ> 5uZ Z> 7'Z> `o'Z> bCLZ> cCLZ> dCLZ> fCLZ> gCLZ> jIW Z> kH~Z> lGʉZ> oua Z> rJ Z> tw Z> vvW Z> wL Z> zoٚZ> }GZ> z Z> JFZ> J3Z> yZ> xH Z> AAhZ> DZ> J_CZ> wQ? Z> zȉ Z> aC3Z> ^|Z> ^ Z> CLZ> CLZ> CLZ> CLZ> CLZ> OPZ> OPZ> OPZ> CLZ> K!Z> Hr5Z> I*cZ> GUZ> gZ> g}eZ> 7f}fZ>vB^ ^ MZ> qn NZ> DxOZ> FPZ> EQQZ> S/RZ> Q@SZ> rs TZ> FVZ> jC XZ> FYZ> G9 [Z> I\Z> Z^Z> *boW_Z> +Aj`Z> -E"aZ> .uzbZ> /v\cZ> 0tZ> 2CLZ> 4CLZ> 5CLgZ> 7n: Z> 9CLZ> :CLZ> ;CLZ> @GnZ> C}6goZ> Db Z> FCLZ> GCLZ> HCLZ> ICLZ> JCLZ> LCLZ> MCLwZ> P|xZ> QIyZ> RN\)Z> SOP{Z> Vkwx |Z> X\5}Z> Zl~~Z> \]Z> _AEZ> `FzZ> c{ ~Z> OPZ> W[o |Z> CLZ> EZ> HZ> FZ> PuZ> CLtZ> CLZ> }s Z> s Z> n 5Z> J6Z> K?Z> OPZ> CL:Z> [B;Z> Qa S3?Z> D4KZ> OPZ> CLBZ> DCZ> TDZ> @.#EZ> [pFZ> \HGZ> HHZ> DL LZ> nH MZ> hNZ> Z=q OZ> F*PZ> F1QZ> I+RZ> HoTZ> HUZ> H`VZ> GYZ> OPZ> CLYZ> EZZ> DZ> OPZ> CL]Z> @^Z> ihkZ> OPZ> CLaZ> W'pZ> OPZ> CLdZ> DZ> OPfZ> ^Z> CLhZ> B}iZ> VsZ> OPkZ> L) lZ> yGmZ> wnZ> ^ oZ> [ pZ> SaH qZ> L rZ> N sZ> L7ltZ> !KXuZ> "H]Z> #OPZ> %CLxZ> 'HyZ> (L]zZ> )IEZ> +OPZ> UCL}Z> WJP~Z> YGZ> ZHZ> [FYZ> ]OP~Z> _CLZ> `EZ> cAZ> dEVZ> eCBZ> fKUZ> gDZ> i@;Z> jA"Z> lKZ> oEZ> qx{Z> tEVZ> uOW@Z> wI\OZ> xM Z> {oAZ> }LZ> EVZ> QZ> v#,Z> PZ> M*Z> d] Z> J0Z> DZ> CLZ> EZ> } ZZ> OPZ> CLZ> CLZ> CLZ> CLZ> CLZ> CLZ> CLZ> NgZ> PZ> Y\Z> G Z> _ > Z> _ > Z> CLZ> CLZ> CLZ> CLZ> CLZ> CLZ> CLZ> ]Z> CLZ> CLZ> CLZ> NFZ> CLZ> D%Z> CLZ> CLZ> C Z> CLZ> CLZ> CLZ> OP$Z> I.%Z> I]&Z> N0Z> CL*Z> I$,Z> YZ> OP.Z> Pm"Z> CLZ> !CLZ> $OPZ> &CL3Z> (s}q4Z> *A{6Z> -Xf7Z> .F38Z> /O9Z> 2c:Z> 4\`;Z> 5^ 6]S4Z> 7OP>Z> 8Tn?Z> 9Gqb@Z> :FHWAZ> ;TZ> ;OPDZ> =B)EZ> >FHFZ> ?FLGZ> ?OZ> CAZ> DEfZ> EAfZ> Gc Z> JbkZ> KB,Z> Lup Z> Mi Z> Nx Z> Ow !Z> RCL Z> TCLZ> UCLZ> Wb Z> OPZ> OVZ> f3Z> F"Z> v Z> Z> nBZ> CLZ> CLZ> CLZ> CLZ> CLZ> ITfZ> HwZ> KZ> u65 Z> J33 Z> wna Z> v- Z> QO Z> oZ> GQZ> z$ Z> JFZ> IZ> yZ> x# Z> A^vZ> DVZ> ISZ> w4 Z> z3 Z> aPZ> ^|Z> ^ Z> CLZ> CLZ> CLZ> CLZ> CLZ> OPZ> OPZ> OPZ> CLZ> J!Z> HkZ> I){Z> GܜZ> gZ> g}eZ> h}fZ> D?^ ^ MZ> q NZ> DOZ> FKPZ> EQZ> S&RZ> HQSZ> IoI TZ> KGVZ> Ljc XZ> NFhYZ> OG+j[Z> Ps\Z> QZ^Z> Ueb_Z> VAj`Z> XD7aZ> Ys*bZ> ZvcZ> [tHZ> ]CLZ> ^CLZ> `CLgZ> bn Z> dCLZ> eCLZ> fCLZ> gCLmZ> jGdnZ> m}oZ> ob Z> qCLZ> rCLZ> sCLZ> tCLZ> uCLZ> vCLZ> xCLwZ> {{ xZ> |HyZ> }PZ> ~OP{Z> k |Z> \}Z> nQ~Z> ]Z> AZ> FqvZ> {H ~Z> OPZ> W |Z> CLZ> E KZ> HZ> F$Z> FuZ> CLtZ> CLZ> C Z> sM Z> n 5Z> KT6Z> K8Z> OPZ> CL:Z> [p;Z> S  SR?Z> DZ> OPZ> CLBZ> CCZ> SDZ> @*CEZ> ZFZ> ]zGZ> I34HZ> D LZ>nH MZ>hNZ>Z=q OZ>FPZ>F;eQZ>I.RZ>HWTZ>G{UZ>H*VZ>GH.Z>OPZ>CLYZ>EV[ZZ> DZ>"OPZ>$CL]Z>&r ^Z>'hsZ>(OPZ>*CLaZ>-VEZ>.OPZ>0CLdZ>2DZ>4OPfZ>6^Z>7CLhZ>9A/iZ>:VmZ>=L4 lZ>>y =mZ>@wpnZ>A] oZ>D[{pZ>FSf qZ>GMf rZ>HO sZ>IL+tZ>JK'uZ>KH"Z>tOPZ>vCLxZ>xHyZ>yJzZ>zI Z>|OPZ>~CL}Z>J,~Z>GZ>GMZ>FZ>OP~Z>CLZ>EsZZ>A:Z>EVZ>DGZ>KFZ>DZ>@JeZ>AҩZ>KZ>EZ>xZ>EVZ>OsZ>HZ>M Z>oAZ>K8Z>EVZ>LvZ>v#,Z>P(Z>MZ>aw Z>JāZ>CZ>CLZ>EZ>{\Z>OPZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>NgZ>KZ>PgZ>G Z>_ > Z>_ > Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>]Z>CLZ>CLZ>CLZ>NDmZ>CLZ>D'Z>CLZ> CLZ> CZ> CLZ>CLZ>CLZ>OP$Z>I%Z>?KZ>ACL*Z>DH,Z>EZZ>FOP.Z>GP!Z>ICLZ>JCLZ>MOPZ>OCL3Z>Qsk4Z>SA{6Z>VX7Z>WD8Z>XO9Z>[c:Z>\[y;Z>]_s3^]3Z>_OP>Z>`Tj?Z>aGZ@Z>bF<AZ>cT0Z>dOPDZ>eC\EZ>fFFZ>gF=GZ>hOZ>l}Z>mClZ>n}2Z>oc Z>s]mZ>tB^Z>uu} Z>vi Z>wx Z>w3 !Z>CL Z>CLZ>CLZ>a[o Z>OPZ>RZ>f:Z>E,Z>u Z>|^ Z>nwZ>CLZ>CLZ>CLZ>CLZ>CLZ>IQZ>Hz^Z>MhZ>u ~ Z>J7w Z>w Z>vJK Z>r Z>GuZ>z Z>JZ>I{Z>yZ>wt Z>AlZ>DZ>JmZ>wl Z>{n Z> aS3Z> ^|Z> ^ Z> CLZ>CLZ>CLZ>CLZ>CLZ>OPZ>OPZ>OPZ>CLZ>JZ>HdZ>I$Z> GDZ>"vLZ>#vL}eZ>WS}fZ> DÞ^ ^ MZ>>qN NZ>hDOZ>iFPZ>jEQZ>mSRZ>nQwSZ>on TZ>qGVZ>rj0 XZ>tFYZ>uF[Z>vC\Z>wZp[^Z>zd_Z>|Aj`Z>~C\aZ>wfgbZ>x.cZ>v#Z>CLZ>CLZ>CLgZ>nq Z>CLZ>CLZ>CLZ>CLmZ>Fa0nZ>}oZ>c Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLwZ>uxZ>FqyZ>NZ>OP{Z>k |Z>[q}Z>m*~Z>]Z>A\WZ>F7 Z>{w ~Z>OPZ>Vq. |Z>CLZ>DZ>HȥZ>F-Z>MOuZ>CLtZ>CLZ>@LJZ>sl Z>pc 5Z>K56Z>K2+Z>OPZ>CL:Z>\~m;Z>Q5TY?Z>CZ>OPZ>CLBZ>0CCZ>1R_DZ>2@}EZ>4_FZ>5a34GZ>6M(HZ>7D* LZ>8nfg MZ>9hNZ>:Y OZ>;FPZ>=I?URZ>>HbTZ>?GfUZ>AGvVZ>BGCZ>COPZ>ECLYZ>FDZZ>HCμZ>IOPZ>KCL]Z>MFv ^Z>OhbZ>POPZ>RCLaZ>UVZ>VOPZ>XCLdZ>ZDZ>\OPfZ>^^Z>_CLhZ>aA"iZ>bUZ>dOPkZ>eL, lZ>fxHmZ>gwpnZ>ia{ oZ>k[ݗpZ>R qZ>MW rZ>P sZ>L%5tZ>K{uZ>HZ>OPZ>CLxZ>H]yZ>I.zZ>IZ>OPZ>CL}Z>Jw~Z>GZ>GݣZ>FZ>OP~Z>CLZ>E#Z>B Z>EVZ>CZ>KFZ>DZZ>@JeZ>A/Z>KZ>EZ>xdlZ>EVZ>O;~Z>IZ>M Z>oAZ>K)Z>EVZ>T5 Z>v#,Z>P(Z>M Z>`# Z>JZ>CyaZ>CLZ>EyZ>xZ> OPZ> CLZ> CLZ> CLZ>CLZ>CLZ>CLZ>CLZ>NgZ>G6gZ>XZ>G Z>_ > Z>_ > Z>CLZ>CLZ>CLZ> CLZ>!CLZ>"CLZ>#CLZ>$]Z>%CLZ>'CLZ>(CLZ>)NE&Z>+CLZ>.D(Z>/CLZ>0CLZ>2BwZ>]CLZ>^CLZ>_CLZ>bOP$Z>cI%Z>dIL&Z>gHjZ>iCL*Z>lH,Z>m\kZ>nOP.Z>oP}Z>qCLZ>rCLZ>uOPZ>vCL3Z>ys.4Z>{A{6Z>~]7Z>G38Z>X49Z>b(:Z>Xfg;Z>ZS3Y3Z>OP>Z>T#?Z>GB@Z>F3vAZ>TZ>OPDZ>CEZ>FFZ>F0GZ>OPZ>}Z>Cc4Z>~&fZ>cx Z>baZ>AZ>v- Z>i Z>x0 Z>w| !Z>CL Z>CLZ>CLZ>b Z>OPZ>SvZ>fZ>E3Z>u Z>ڥzyZ>nwZ>CLZ>CLZ>CLZ>CLZ>CLZ>IM#Z>Hr5Z>FZ>t Z>I Z>w Z>vY Z>O\ Z>rZ>GEZ>$z$ Z>%JZ>&IL\Z>'y"Z>(w Z>)ALZ>*DZ>,K Z>-vI Z>0uf Z>1aIZ>2^|Z>3^ Z>4CLZ>6CLZ>7CLZ>8CLZ>9CLZ>=OPZ>?OPZ>ACLZ>DJZ>EH^AZ>FI$Z>GGӍZ>KgZ>Ng}eZ>jD4}fZ>Ee^ ^ MZ>q NZ>DOZ>FPZ>EQZ>SORZ>QSZ>o,| TZ>GVZ>k XZ>FPYZ>F[Z>\Z>V^Z>b΋_Z>Aq`Z>B}aZ>wGbZ>xcZ>vBZ>CLZ>CLZ>CLgZ>nT Z>CLZ>CLZ>CLZ>CLmZ>F @nZ>}goZ>cj Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLwZ>wxZ>FyZ>NkZ>OP{Z>k |Z>[}Z>ls~Z>]Z>A Z>FLZ>{= ~Z> OPZ> V |Z>CLZ>DZ>H+Z>FZ>JuZ>CLtZ>CLZ>@Z>s Z>o 5Z>!KOI6Z>"K'@Z>#OPZ>%CL:Z>P];Z>SP8TW?Z>UCZ>WOPZ>YCLBZ>[CCZ>\RDZ>]@&bEZ>_X\FZ>`]GZ>aDHZ>bDy LZ>cnH MZ>dhNZ>eZ=q OZ>fF˕PZ>gF@wQZ>hI2ORZ>iHKjTZ>jGUZ>kGuVZ>lG1Z>mOPZ>oCLYZ>qD%ZZ>rC4Z>tOPZ>vCL]Z>x~; ^Z>zg5Z>{OPZ>}CLaZ>VZ>OPZ>CLdZ>DVZ>OPfZ>^Z>CLhZ>AiZ>TpZ>OPkZ>L+< lZ>|zmZ>zznZ>_ oZ>[wpZ>R qZ>Kz rZ>O sZ>LtZ>KruZ>G1Z>OPZ>CLxZ>HGyZ>PzZ>HZ>OPZ>CL}Z>J<~Z>GZ>G[Z>FZ>OP~Z>CLZ>EZ>BEZ>EVZ>CBZ>KFZ>DYZ>@;Z>AҩZ>KZ>EZ>xBxZ>EVZ>OZ>IZ>M Z>oAZ>!K?Z>$EVZ>%RۭZ>'v#,Z>(P(Z>)MZ>*`w/ Z>+JbZ>-CyaZ>/CLZ>2EZ>3|Z>4OPZ>6CLZ>7CLZ>8CLZ>9CLZ>:CLZ>;CLZ>=CLZ>@N9Z>ALc3Z>BYpZ>CG Z>D_ > Z>E_ > Z>GCLZ>HCLZ>ICLZ>KCLZ>LCLZ>MCLZ>NCLZ>O]Z>PCLZ>QCLZ>RCLZ>|NJZ>~CLZ>D*|Z>CLZ>CLZ>BEZ>CLZ>CLZ>CLZ>OP$Z>I%Z>I f&Z>P}Z>CL*Z>H,Z>V Z>OP.Z>PZ>CLZ>CLZ>OPZ>CL3Z>r4Z>A{6Z>XY7Z>I48Z>X9Z>b:Z>YFf;Z>\Z&fZ>OP>Z>Tp?Z>G)@Z>F+KAZ>UxZ>OPDZ>C:EZ>F=FZ>F#PGZ>OIZ>C33Z>GٚZ>BZ>cC? Z>]6Z>AZ>vv Z>iމ Z>x Z>wQ? !Z>CL Z>CLZ>CLZ>aL Z>OPZ>RIZ>e٫Z>EL5Z>u65 Z>NZ>nܥZ>CLZ> CLZ> CLZ> CLZ> CLZ>IHZ>HmZ>IZ>t Z>J; Z>wQ? Z>DvR Z>EMfz Z>HnvfZ>KGZ>Nz$ Z>OJnZ>QHZ>RyZ>Sw Z>TAZ>UDZ>VIZ>Wv Z>[y Z>\aYZ>]^|Z>^^ Z>_CLZ>`CLZ>bCLZ>cCLZ>dCLZ>gOPZ>hOPZ>iOPZ>lCLZ>oJZ>pHZZ>qI#Z>rGZ>uhQZ>yhQ}eZ>f}fZ>E^ ^ MZ>qm NZ>DOZ>F=PZ>EQZ>SRZ>Qv`SZ>o TZ>GVZ>k+ XZ>FYZ>Fۘ[Z>̮\Z>_.^Z>d8_Z>Aq`Z>B aZ>u.bZ>wcZ>u=qZ>CLZ>CLZ>CLgZ>nT Z>CLZ>CLZ>CLZ>CLmZ>ERnZ>}goZ>c Z>CLZ>CLZ>CLZ>CLZ>CLZ>CLZ>CLwZ>34xZ>I\yZ> QZ>"OP{Z>%k |Z>'[}Z>(n~Z>*]Z>,@nZ>.FNZ>2z ~Z>4OPZ>7Ty |Z>9CLZ>=HZ>?FV5Z>BJƫuZ>DCLtZ>ECLZ>G@Xgs! go8 5g K`6g Kmg OPgCL:g]O;gM<g^kU?gC:gOPgCLBgC4CgQGDg@Eg[34Fg Y(Gg!CQHg"DZ Lg#nH Mg$iNg&Z=q Og'FӍPg(FLQg)I+Rg*HWTg+GUUg,GVg-G4g.OPg0CLYg2CL!Zg3C~g5OPg7CL]g9~ ^g;fgdOPgeCLaghUgiOPgkCLdgmDSgoOPfgq^grCLhgtALiguRgwOPkgxL, lgzxHmg{wGng|`Ǯ og[J<pgSH qgM8R rgP{ sgLtgKhugG'gOPgCLxgH[ygPzgIwgOPgCL}gJ%g~gGsgG,gFIgOP~gCLgDYgB)gEVgDnQgK82gDg@JegAgKgEgxsgEVgO4gI;gM goAgKgEVgPgv#,gPBgM g`w/ gJgCyagCLgEjg|lgOPgCLgCLgCLgCLgCLgCLgCLgQ3gL33gPggG g,_ > g._ > g0CLg1CLg2CLg3CLg4CLg5CLg6CLg7]g9CLg:CLg;CLgCLgAD-4gCCLgDCLgFCugHCLgICLgJCLgMOP$gNI[%gOI :&gROgTCL*gWH,gXX۞gYOP.gZQ+}g\CLg]CLg`OPgbCL3gdr4gfA{6g[37gU 8gX9gb-:gW;g\&g<gZ gOP>gTF?gG@gF$AgUgOPDgCEgFFgFXGgOFg~&fgCc4g~4gc# gb'gAgv( gj ^ gxWc gw% !gCL gCLgCLg`6 gOPgRgfgFgt gǥgngCLgCLgCLgCLgCLgIDgHjgLgtU gJ7w gw% gv gJ g ofg Fgz gT0gHgygw| gAgEgIwgvt g y; g!afg"^|g#^ g$CLg%CLg'CLg(CLg)CLg,OPg-OPg/OPgYCLg\JR{g]HTGg^I gg_Gegcggfg}eggAU}fZ>GE^ ^ Mg}q NgDOgFPgErQgSRgQSgn TgGVgkd XgF[YgF![g \gU^ge*_gAq`gB,cagv#bgxLcgvgCLgCLgCLggn[ gCLgCLgCLgCLmgE\ng}ogc gCLgCLgCLgCLgCLgCLgCLwg@34xgIQygN gOP{gkfg |g[H}gow~g]g@gFJgz[ ~gOPg!U/ |g#CLg&D:g'HTg)F"g,Oug.CLtg/CLg1@6g3sZ g4oE 5g6Kf6g7K g8OPg:CL:g=]~;g@K<gAT?gBC4gDOPgFCLBgHC.CgIODgJ@EgLY >FgMY >GgNHzHgOD> LgPpQ MgQj\NgRZR OgSFPgTFRQgUI$RgVHGTgWG+UgXGaxVgYGMgZOPgCLYgBwZgCagOPgCL]g~] ^geogOPgCLagUI,gOPgCLdgDugOPfg^gCLhgAt@igPgOPkgL! lg{mgzQng_ og[pgW. qgM rgT) sgL tgK_ugHgOPgCLxgHygOzgIiNgOPgCL}gJ3~gGQ2gGqgFgOP~gCLgDYgB8PgEVgDBgK82gDg@JegA:gKg@DgxYg@ gOsgIHWgM g oAg KgEVgLvgv#,gN_gMdg`w/ gJ gBgCLgEg} gOPg CLg!CLg"CLg#CLgLCLgMCLgOCLgRNggSK|gTYggUG gV_ > gW_ > gYCLgZCLg[CLg\CLg^CLg_CLg`CLga]gbCLgcCLgdCLgfNI{ghCLgjD+dglCLgmCLgoBMgrCLgsCLgtCLgvOP$gxIs%gyI &g{KTg~CL*gHx,gZgOP.gQzgCLgCLgOPgCL3grE[4gA{6gOY7gK8gS9gb:gWFg;g\<gYYgOP>gS?gG@gF AgU+gOPDgCuEgF|FgF0GgO%g@3gE0g@gbyT g`gAWgwl gj' gx:D gvI !gCL gCLgCLgbq gOPgR}geJgFMgt gt gngCLgCLgCLgCLgCLg"I?g#HWg$LMg'tj. g+Iww g-v( g.vt g/Q1 g2r)g5FŞg8z$ g:gӅgygS8RgOP{g k33 |g[}go~g]g@|1gFxg@{= ~gCOPgFXq |gHCLgKDgLHigMFigQHDugSCLtgTCLgV@gWsk gYo 5g[Ki6g\Jg]OPg_CL:gb]NS;gdJ<gfM-?ggCgiOPgkCLBglCwCgnNDgox EgpYGFgrZGgsBHgtD$\ Lguo\* MgviNgwZR OgxF%PgyFXbQgzI%HRg{HP|TgF_UgG2OVgFgOPgCLYgBZgCZgOPgCL]g} ^gdggOPgCLagTgOPgCLdgDugOPfg^gCLhgA^vigTeSgOPkgL, lgxmgwng^s3 og[pgV qgM\) rgQ = sgL tgK[ugGgOPgCLxgG'ygMzgI gOPg CL}g J3~gG6gGUgFgOP~gCLgDgBUZgEVgD4KgK82gDZg@XgB g!Kg$Eg&xeg)EVg*O4g,Ig-M g0oAg2Jg5EVg7Qg9u9g:Ng;Mg<`w/ g=J'g>B<g@CLgCEgl} ZgnOPgpCLgqCLgrCLgsCLgtCLguCLgvCLgyNggzG6gg|Yg}G g~_ > g_ > gCLgCLgCLgCLgCLgCLgCLg]gCLgCLgCLgNOgCLgD)gCLgCLgAgCLgCLgCLgOP$gIfL%gI&gHgCL*gH^A,g[tgOP.gQugCLgCLgOPgCL3gr4gA{6gS37gKL8gS39gb:g_;g^Y<g`3gOP>gS?gF@gFAgUxgOPDgC~EgFlFgFOGgNgA6fgEɚg@ggby ga9gAgwB gjSk gx gv !gCL g CLg CLg4` g6OPg7RNg8fg:FIg=t g?9Pg@n}gBCLgCCLgDCLgECLgGCLgJI8BgKHgLG&gOtM gRI gTvY gVv gWKce gZr g]Fgg`z gbtFgcJFgfyghw4 giAgjE2glKgovh. gz ga`g^yg^ gCLgCLgCLgCLgCLgOPgOPgOPgCLgJ=gH4gI gG<gggg}eg?i8}fgVEh^ ^ Mgqm NgDOgFPgEfNQgSRg Q`Sg n}[ Tg G9Vg jh Xg F+Yg F[g VE\g ZT^g dQ_g Ax`g Aag sbg wcg u\*g CLg CLg CLgg n4 g CLg CLg CLg CLmg "E>ng %}4og 'cj g )CLg *CLg +CLg ,CLg -CLg .CLg 0CLwg 3w >xg 4Gyg 5N>g 6OP{g ak |g c[}g dl~g g]g i@Pg kF g n{Z ~g pOPg sXq |g vCLg yDg zHWg {Fg ~P Dug CLtg CLg Awg t+ g pM 5g Kh6g Jfg OPg CL:g \;g H<g HT?g C.g OPg CLBg CScCg McDg x Eg XFg YffGg CHg C" Lg s34 Mg s34Ng ] Og F7Pg F]tQg I 8Rg HITg FUg GVg Fg OPg CLYg BrdZg C g OPg CL]g } ^g bg OPg CLag T"g OPg CLdg D_g OPfg ^g CLhg AOig XVg OPkg L( lg ({ =mg )v\ng *^ og -[ pg /V qg 0M. rg 1Q sg 2Ltg 3KRug 4Gg 5OPg 7CLxg 9G:yg ;Kzg OPg @CL}g BJ;~g DGg EG1Xg FF{)g GOP~g ICLg KDSg MBcg NEVg PDBg QK82g RE g S@gvg TBEg VKg YEg [xx;g ^EVg _Oyg aIg cM g oAg Jg EVg Rsg u9g Ng MEg `w/ g Jg BLg CLg Eg }g OPg CLg CLg CLg CLg CLg CLg CLg Pgg Kg Ygg G g _ > g _ > g CLg CLg CLg CLg CLg CLg CLg ]g CLg CLg CLg N@g CLg D(g CLg CLg Ag CLg CLg CLg OP$g I[g%g Iq&g Ng CL*g HG,g ]g OP.g Qg CLg CLg OPg CL3g qo4g A{6g `s47g QL8g S9g bf:g X;g [g<g Y`g !OP>g "T?g #Fs@g $FAg %U)g &OPDg 'C4Eg (FZFg )EGg *Nbg U@g WE9g X@g Yb(d g \bTg FUg FVg Fg OPg CLYg A/Zg B g OPg CL]g }: ^g fg OPg CLag T2g OPg CLdg DJg HOPfg J^g KCLhg MA:%ig NV9g POPkg QK[ lg Ry =mg Swng U]8R og W[Upg YR3 qg ZKff rg \O sg ]Khtg ^KKug _G1g `OPg bCLxg dGyg eJ|zg fJ|1g hOPg jCL}g lJBU~g nF4g oG wg pFmeg qOP~g sCLg uDQNg xBrdg yEVg zDnQg {K)g |EZg }@gvg ~B)g Kg @Dg xTg @ g Lvg I-g Lg oAg JPg EVg P52g u9g Nyg Mg `w/ g Jg B>`g CLg Eg }g OPg CLg CLg CLg CLg CLg CLg CLg Ngg {g Ngg G g _ > g _ > g CLg CLg CLg CLg CLg CLg CLg ]g CLgCLgCLgNBCgCLgD(gCLgCLgC/gCLgCLg CLg#OP$g$IRT%g%IE&g(Og*CL*g-H1,g.]wg/OP.g0Qzg2CLg3CLg6OPg8CL3g:qۡ4ggIS?gJF_@gKE`AgtUȃguOPDgvCGEgwFJ(FgxEGgyNog}~Lg~Cg}2gb+ g_6gAhgw gju gw gvh. !gCL gCLgCLgb[ gOPgQS$gfcjgF\gtU ggn˗gCLgCLgCLgCLgCLgI(gHgM>Ngt' gI" gv4 gv4 gR goٚgFWgzr g~gKgygv gB"gEGgIwgv- gz ga6fg^yg^ gCLgCLgCLgCLgCLgOPgOPgOPgCLgIbg Hg I Wg G\ghgh}egh6b}fg Fظ^ ^ MgQpI NgTDTOgUFqPgVEh{QgYSRgZQ2Sg[n}[ Tg\G*vVg^j Xg`F^YgaFzB[gb\gc]^gff_ggA`gjAagktbglwcgmv\goCLgpCLgqCLggsn, gvCLgwCLgCLgCLmgE*)ng}ogc+ gCLgCLgCLgCLgCLgCLgCLwg|QxgGygO)gOP{gk |g\>}gpn~g]g@gE>g{= ~gOPgTy |gCLgDgHvgF gLugCLtgCLgBgs go 5g K]6g JLg OPgCL:gZ;gF]<g@6?gCggOPgCLBgCScCgRzDg: EgXFgY >GgHHg C Lg!BR Mg"Q Ng#p Og$FPg&FjQg'I'tRg(H4Tg)FBUg*FVg+F؟g,OPg.CLYg0A{Zg1B g3OPg5CL]g7} ^g8lg9OPg;CLag>U-g?OPgiCLdgkD%gmOPfgo^gpCLhgrA$ZigsUguOPkgvKN lgwxffmgyvngz]=q og}[CpgQ qgKff rgM sgKtgKEFugHgOPgCLxgGnygIzgJgOPgCL}gJBU~gF6gFHgFZgOP~gCLgD%gBgEVgD|gK)gEZg@ugB8PgKgEgxVFg@ gO^1gIS<gLgoAgJPgEVgLvgu9gNygMgo^ gJgBgCLgEg{egOPgCLgCLgCLgCLgCLgCLgCLgQgM#3gNggG g_ > g_ > gCLg1CLg2CLg3CLg4CLg5CLg6CLg7]g8CLg:CLg;CLgCLgAD(gCCLgDCLgECUgHCLgICLgJCLgMOP$gNII?%gOI&gRLegTCL*gWH,gX]gYOP.gZQ՚g\CLg]CLg`OPgaCL3gdq4gfA{6giN&f7gjL338gkSٚ9gbӠ:g^3;g[<gbgOP>gS?gF@gEAgUgOPDgCVJEgF;FgEGgNgCgHfgCga gbygAVAgx gj gw3 gvgzF^ ~gOPgTj |gCLg$D|;g&Hg'Eg*Kug,CLtg-CLg0BAg1sx g2o 5g4KS6g5Jg6OPg8CL:g;Zif;g>P<g@y?gACTgBOPgDCLBgFCi(CgGQJ8DgHu EgJVFgKYGgLP(HgMC LgNBR MgOR{ NgPp OgYF'PgZFlQg[I#Rg\H=Tg]FUg^FcVg_FBgOPgCLYgAeZgBgOPgCL]g|ƚ ^gmj?gOPgCLagVYgOPgCLdgD%gOPfg^gCLhgAigTgOPkgKܬ lgymgx{nga{ og[@pgTk qgK rgOk sgKtgK=ugHgOPgCLxgGCygQHzgK"gOPgCL}gJI~gF!gFgFKVgOP~gCLgDGgBngEVgDnQgK)gE*g@gBFgKg@DgxH g@ gLvg Ig LgoAgJPgEVgSgv8gNygMgo^ gJgBg CLg#Eag$} Zg%OPg'CLgQCLgRCLgSCLgTCLgUCLgVCLgYNggZG6gg[Pgg\G g^_ > g__ > gaCLgbCLgcCLgdCLgeCLgfCLggCLgi]gjCLgkCLglCLgmNEgoCLgrD'gtCLguCLgwB=gyCLgzCLg{CLg~OP$gIA%gH&gIgCL*gH,g^-gOP.gRgCLgCLgOPgCL3gq4gA{6gY37gTs38gSٚ9gb:gY;g^@<gYgOP>gS?gFR@gEچAgU1gOPDgC|EgF-FgEGgNkgz,gA6fgy gb?. g]¬gApgxWc gjH gw gv !gCL gCLgCLga>' gOPgP ge^gF}Vgt gEOg nȿg"CLg#CLg$CLg%CLg&CLg*I~g+Hg,G3g/sF g2Iw g4u} g5u6 g7N` g:tg=FRg@zr gBAD*gCNOAgFygGv gIBFgJEdgKJFgLu gOvU gPagQ^|gS^ g|CLg}CLg~CLgCLgCLgOPgOPgOPgCLgI{.gHgI gGgggg}eghP}fg0GZu^ ^ Mgq% NgD֤OgGPgEZQgS{ RgQ2Sgn4a TgGVgj XgFIKYgF8[g\g_"^ge_gA9`gAFagvBbgwcguLgCLgCLgCLggn, gCLgCLgCLgCLmgDng}ogc+ gCLgCLgCLg CLg CLg CLg CLwg~xgHygRBgOP{gk |g\fB}go}~g]gFȘ gHE$gK{ ~gMOPgPV |gRCLgVDegWGgXF<g[J `ug]CLtg_CLgaBbgbtt gcpx 5geKK6gfJggOPgiCL:glZ|;goR<gqs?grCY1gsOPguCLBgwCi(CgxPDgyв Eg{[Fg|YffGg}\HHg~C^ LgB MgR{ NgqG OgFPgFtQgI)RgH'TgFojUgFCVgF?gOPgCLYgA ZgBgOPgCL]g|C ^glgOPgCLagVgOPgCLdgDBgOPfg^gCLhgAigR gOPkgK lgxmgwpng^ og\)!pgR\) qgK rgOff sgKtgK9rugHRgOPg CLxgGgygPMzgKrgOPgCL}gJBU~gFgFgF?gOP~gCLg DGg#Bg$EVg%D|g&K)g'E*g(@g)BUZg,Kg/Eg1xdlg4EVg5OPPg7IU g8Lg;oAg=JPg@EVgAQ gCv+)gDNygEMOo^ OJOAO CLO EO}OOPOCLOCLOCLOCLOCLOCLOCLORlOGONgOG O_ > O _ > O"CLO#CLO%CLO&CLO'CLO(CLO)CLO*]O+CLO,CLO.CLO/NMO1CLO4D%O5CLO6CLO8BMO;CLOdCLOeCLOhOP$OiI9%OjH4&OlNWOoCL*OrGF,Os^@OtOP.OuROwCLOxCLO{OPO|CL3Oq64OA{6O`7OKL8OT9Obi:OXf;O\ <OZfOOP>OT?OF@OEϣAOUOOPDOCkEOF~FOEGONOy3OAOyOa^ ObhOAOx0 Oj Owna Ou !OCL OCLOCLOa OOPOQ,Of<OGOt OBOn%OCLOCLOCLOCLOCLOIOHOG@Os OJ Ou} Ou6 ON Or#3OEOz O-@=O/OYO2y"O3v O4BNO5EdO6JO7u} O:vU O^ O?CLO@CLOACLOCCLODCLOGOPOHOPOIOPOKCLOOI\OOPH& OQI ORGOUh33OYh33}eOh:=}fgaGx ^ ^ MOq_] NODOOF5PODQOSoROQ'SOn4a TOGkVOj XOFHeYOF@[O#\OY(^OeL_OA9`OA33aOukbOxcOu\*OCLOCLOCLgOm OCLOCLOCLOCLmODnO}oOcj OCLOCLOCLOCLOCLOCLOCLwO}xOI)yOM >OOP{OlDD |O[t}Ol L~O]O  O EO{ ~OOPOVx |OCLOD~OGپOF:O QuO"CLtO#CLO%BO&t O(q 5O*K>6O+JnO,OPO.CL:OY[;O\Q5<O^m?O_CTO`OPObCLBOdCwCOeNDOfo EOhY >FOi[\GOjNRHOkCB LOlBz MOmQ NOnpQ OOoFPOpFyQOqIROrH:TOsFRmUOtFVOuFOvOPOxCLYOzAeZO{BwO}OPOCL]O|& ^Ok͘OOPOCLaOVOOPOCLdOD;OOPfO^OCLhOAiOOOOPkOK lOypmOwpnO^ oO]<pOQ qOKk rOM sOK[tOK4uOGOOPOCLxOF/yONezOKOOPOCL}OJ%g~OFOFOF5OOP~OCLOD- OBwOEVOD|OK)OE9[O@OBcOKO@DOxyO@ OLvO!HO"LO%oAO'JPO*EVO+LvO-v O.MJO/MO2o^ O3JO4AO7CLO:E/O;{\OCLO?CLO@CLOACLOBCLOCCLODCLOHNs3OIwOJNgOKG OL_ > OM_ > OOCLOPCLOQCLORCLOTCLOUCLOVCLOW]OXCLOYCLOZCLONDmOCLOD%OCLOCLODOCLOCLOCLOOP$OI-%OH&OOOOCL*OG ,O_COOP.OR+\OCLOCLOOPOCL3Oq4OA{6OR37OFf8OX9Ob:OY;O\y<OZ OOP>OSK?OFr@OENAOUw8OOPDOCEOF@FOEmGOOO@c3ODO@lOa O\şOAmOxo Ok OwQ? OuZ !OCL OCLOCLO_ OOPOR Oe;OFoO u O On˗OCLOCLOCLOCLOCLOI~OHOK0Os O!J O#u} OLu OMJY OPo3OSEϾOVz OX@OZPO]y"O^v O_B\O`EdOaIpObu Oev OgaPOh^|Oi^ OjCLOkCLOlCLOnCLOoCLOrOPOsOPOtOPOwCLOzI>[O{H5sO|I oO}GOgOg}eO j-}fO%G^ ^ MOq|} NODςOOGPODFQOSw;ROQ62SOn TOGWVOjǫ XOFLYOF[Oԯ\O]:P^ObM_OA9`OAaOu\bOzcOwHOCLOCLOCLgOm\ OCLOCLOCLOCLmODnO}LoOcӅ OCLOCLOCLO!CLO"CLO#CLO$CLwO'@BxO(J(yO)MO*OP{O.l |O0[*1}O1l}~O3]O5 O7E~O:{ ~O=OPO@W |OBCLOEDkOFGOGFMOKGduOMCLtONCLOxC OyuE O{p~ 5O}K46O~JWOOPOCL:O\;OP."<OiА?OCL!OOPOCLBOCpCOM<DO EOX34FOX{GOFHOC LOBz MOQ NOpQ OOGPOFQOI*YROH0TOF@NUOFVOFOOPOCLYOAZOBOOPOCL]O| z ^OjOOPOCLaOV[=OOPOCLdODBOOPfO^OCLhO@iOM0OOPkOKѐ lOxmOw33nO]W oO\8<pOT qOM rOP sOKtOK2+uOGeOOPOCLxOFyOLozOL#OOPOCL}OI~O FuO FvO F*O OP~OCLODOBOEVOD|OKFOEGO@@OABOCKOD@DOExaOF@ OJOBoOLIwOMM OPoAORJPOUEVOVQ_ OXuqOYMOZM{O]o^ O^JO_A{OaCLOeE{}Of}ǣOgOPOiCLOjCLOkCLOlCLOmCLOnCLOoCLOsPpOtG6gOuNgOvG Ow_ > Ox_ > OzCLO{CLOCLOCLOCLOCLOCLO]OCLOCLOCLONHOCLOD'OCLOCLOCOCLOCLOCLOOP$OI!O%OH&OLOCL*OGӍ,O_8]OOP.OReOCLOCLOOPOCL3Oqm4OA{6OUY7OJff8OQs49Ob:O Xٚ;O \<O Z`O OP>OS j?OFs@OEAOTOOPDOCY1EOEFOEGONOy O@gOyFfOa O bO!A?O"y O$k O%w% O&u6 !O)CL O*CLO+CLO-b O/OPO1R|O2fO3G;$O6uS[ O7O9nO;CLOCLO?CLO@CLOCI6OlHOmO Ops OtJ Ovu Owu OxQ O{q,O~EOz? O@OR ~Oy&OvR OBrdOE]OI Ou Oy OafO^|O^ OCLOCLOCLOCLOCLOOPOOPOOPOCLOI"7OHB$OI@OG-OyOy}eO7|k@}fOxH:^ ^ MOq|} NODςOOG?PODQOS{ ROQ+SOn TOGpVOkVI XOFVYOF =[O\O[&g^Od_OAU`OAaOtHbOvqcOsO CLO CLO CLgO6mަ O8CLO9CLO:CLOpO S qO N rO Sz sO KAtO K-uO !GԬO #OPO %CLxO &FyO (K@zO *L}O +OPO -CL}O /I ~O 1FeO 2FbO 3F O 4OP~O 6CLO `DO bBɀO dEVO eDO fKFO gEGO h@O iBnO kKO l@DO mxZO n@ O rLvO tIO uM O xoAO zJPO }EVO ~SsO uO MO MvnO o^ O JO AAO CLO EO }O OPO CLO CLO CLO CLO CLO CLO CLO L4O G6gO NgO G O _ > O _ > O CLO CLO CLO CLO CLO CLO CLO ]O CLO CLO CLO NI{O CLO D,LO CLO CLO C O CLO CLO CLO OP$O I$%O H&O HujO CL*O G<,O _,O OP.O RyO CLO CLO OPO CL3O q`"4O )A{6O +Y37O ,Lf8O -QL9O 0b:O 2ZY;O 3\<O 4[S3O 5OP>O 6S?O 7Fc@O 8EAO 9UcO :OPDO ;CvEO NgO B}2O CBO D|O Ea^` O H`9O IAO JyN O KkK O Mw O Nu !O QCL O RCLO SCLO Ua O WOPO XRO ZeJO [FO ^u6 O `jO anO cCLO CLO CLO CLO CLO I O HO FcO s O I O vY O u O K O tO EiO z O @O SO y"O vv O BO EO JO u O vff O `3O ^|O ^ O CLO CLO CLO CLO CLO OPO OPO OPO CLO I WO HGO IO GO gO g}eO `j}fOH^ ^ MO q- NO DOO G`PO DQO S{ RO QSO n`* TO !H)VO "l XO $FXYO %F"[O '\O (X^O +e_O TAU`O UAaO WubO Xw >cO YuLO \CLO ]CLO ^CLgO am O cCLO dCLO eCLO gCLmO jDnO m}9oO ndQk O pCLO qCLO rCLO sCLO uCLO vCLO wCLwO z{RxO {J{yO |OO }OP{O m |O Z]}O lR~O ]O ? O EOO {w ~O OPO XA |O CLO D"O GwO FqO HڷuO CLtO CLO D=qO v O qo 5O K#6O J3O OPO CL:O ];O K<O c?O CGO OPO CLBO CCO SsDO * EO SffFO UGO L34HO B LO BR MO Q NO p OO GPO FQO I]RO HTO F UO FrVO FhO OPO CLYO K ZO !BO #OPO %CL]O '|& ^O )m$O *OPO ,CLaO /V0O 0OPO 2CLdO 4D%O 6OPfO 8^O 9CLhO ;@۶iO OPkO ?K lO @ypmO AwnO B^\ oO E\pO GU8R qO HN rO IR=q sO JKϜtO KK)uO LGO NOPO PCLxO RF?yO SI3zO ULO VOPO CL}O I~O FRO FMO FO OP~O CLO DO BO EVO DVO KFO EV[O @O BO KO @DO xTO @ O OBoO I2O M O oAO JPO EVO QX3O uLO NyO MpO o^ O JO AP1O CLO EO } ZO OPO CLO CLO CLO CLO CLO CLO CLO N3O G6gO XPO G O _ > O _ > O CLO CLO CLO CLO CLO CLO CLO ]O CLO CLO CLO NGQO CLO D/O CLO CLO CUO CLO CLO CLO OP$O I<%O H>&O P}O CL*O G,O _LjO OP.O HRwO JCLO KCLO MOPO OCL3O RqO4O TA{6O WY37O XF8O YLf9O [b2:O ]X;O ^[34<O _Y,O `OP>O aSi ?O bFV@O cEAO dUO eOPDO fCpiEO gEFO hEGO iN}O m~&fO nCPO o}2O pa& O s`O tAO uy# O wkZY O xv O yua !O |CL O }CLO ~CLO ` O OPO Rg*O f O GgRO u} O h|O nO CLO CLO CLO CLO CLO I"yO HkO HO srb O J O vv O u O L] O nlO EO zu O AO U,dO y"O vh. O BO KO JaoO up O xU Oa@O^|O^ OCLOCLOCLOCLOCLOOPOOPOOPO CLO#HO$HIeO%IO&GO)gO-g}eO i}fO I5M^ ^ MODq- NOFDOOGGRPOIDLQOtSsnROuQ2SOvn% TOwHyVOxl XOzF[YYO{Fs[O}\O~[g^OcZ_OA`OAaOvBbOwcOtHOCLOCLOCLgOnS OCLOCLOCLOCLmODpnO}oOdJ OCLOCLOCLOCLOCLOCLOCLwO{=qxOI#yOROOP{On |OZ}OlH9~O]Oq OEO{ ~OOPOX |OCLODOGLOFk8OLuOCLtOCLOD&gOv Oqhs 5OK6OJ*~OOPOCL:O\ɵ;OJ <O a\?O C@O OPO CLBOC:COR3DOh EOSGFOBڙ LO?BR MO@Q NOAp OOBGPOCFQODI ROEH*TOFFdUOGFVOHFvOIOPOKCLYOMFv ZONBk!OPOPORCL]OT|& ^OVo16OWOPOYCLaO\WO]OPO_CLdOaD;OcOPfOe^OfCLhOh@riOiWOkOPkOlK lOmy\)mOnwnOo^ oOr\#pOtR qOuK rOvM sOwKγtOK$uOG]OOPOCLxOFxCyOPbvzOLKOOPOCL}OI~OF@OF0OFOOP~OCLODOBOEVODOKFOEdO@OBwOKO@DOxO@ OO4OISOM OoAOJPOEVOLvOuONyOMk}Oo^ OJOAO CLO EaO} ZOOPOCLOCLOCLOCLOCLOCLOCLONOG6gONgOG O_ > O _ > O"CLO#CLO$CLO&CLO'CLO(CLO)CLO*]O+CLO,CLO-CLO/NE&O1CLO3D3O5CLO6CLO8CO;CLOOS?OFF@OE AOU4OOOPDOCGEOEFOEGON3OylO@OyOaF ObOAOy] Okw OvI OuD !OCL OCLOCLOc OOPOR8TOfOFvOu6 O$ OnOCLOCLOCLOCLOCLOI'OHOLNvOsrb OI Ov Ou OR OoOEqvOzu OAHbOVzO0y"O1vh. O2CDO4YՅO5I@O8ua O;ww O=ayO>^yO?^ O@CLOACLOBCLODCLOECLOHOPOIOPOJOPOMCLOPHOQHGORIOSGOVh =OZh =}eOe}fOI y^ ^ MOqm NODOOGPODQOSw;ROQ2SOn% TOH|VOl XOFczYOE[Oe\OZ^Oe3_OA`O@aOt{bOxLcOu OCLOCLOCLgOnL OCLOCLOCLOCLmODnO}4oOe8= OCLOCLOCLOCLOCLOCLOCLwO@QxOIByOMOOP{Oo33 |O[}Omg~O]O T O E!O{ ~OOPOY/ |OCLODROGBOFvO NruO"CLtO#CLO%D$O'whs O(q 5O*Km6O+J)O,OPO.CL:O1\;O\H<O^_?O_C>XO`OPObCLBOdC:COeQDOf EOhSffFOiUpGOjOHOkB LOlD MOmP NOnrR OOoGPOpFlQOqI fROrG'TOsE0UOtFVOuFYOvOPOxCLYOz ZO{B\O}OPOCL]O|C ^OoFOOPOCLaOX>IOOPOCLdODBOOPfO^OCLhO@.iOV,}OOPkOLR lO{mOzQnO`xR oO[pOQ qOJ=q rOPu sOKγtOKuOGvOOPOCLxOFqyOQzOMKOOOPOCL}OIL\~OF0BOF#cOF1OOP~OCLODBOB OEVODSOKFOEsZO@.OBOKO@DOxvO@ OO4OIOM O%oAO'JPO*EVO+TO-u€O.NyO/MgO2o^ O3JO5AO7CLO:EO;{eOCLO?CLO@CLOACLOBCLOCCLOECLOHMIOIG6gOJPgOKG OL_ > OM_ > OOCLOPCLOQCLOSCLOTCLOUCLOVCLOW]OXCLOYCLOZCLO\NCO^CLOD5YOCLOCLOCaOCLOCLOCLOOP$OI@%OH&OK9OCL*OG,O^OOP.ORǴOCLOCLOOPOCL3Oq14OA{6OQ7OB8OVfg9Ob:OZ;O\<O[gOOP>OS?OF7@OEAOU+OOPDOCvEOEIFOEGON5DOzOAIOy Oa? O^0OAOy Ok) Ov Ou !OCL OCLOCLO`P OOPOROfxOG O u O ~TOn'OCLOCLOCLOCLOCLOI'OH OOA Osc O!Ib" O#vY O$u O%JM OPqLOSEZOVzu OXB)OZXO]y"O^vY O_D_Oad3ObJ+OeuD Oirn Oj`Ok^|Ol^ OmCLOnCLOpCLOqCLOrCLOuOPOvOPOwOPOzCLO}H1O~HGOIOGOzOz}eO {!}fO%I^ ^ MOqN NODOOGPOEQOS{ ROQ$^SOn% TOHVOm;0 XOFlYOE[OԮ;g\OXo^Of_OA`O@aOvBbOwcOu>OCLOCLOCLgOnDF OCLOCLOCLOCLmODnO}goOew1 OCLOCLOCLO CLO!CLO"CLO#CLwO&}HxO'I34yO(S8RO*OP{O-owx |O/[z}O0l~O2]O47 O6E.O:{ ~OGOIHOB2 LODH MOQ NOs34 OOGPOFQOIROHKTOEsUOF)VOF"OOPOCLYO~z ZOBcOOPOCL]O|C ^OnWOOPOCLaOXa~OOPOCLdODQNOOPfO^OCLhO@iOTWOOPkOK lO =mO}nO^ oO[{pOU\) qOLǮ rOP sOKϜtOKuOGgROOPOCLxOFTyOOirzOMOOPOCL}OI~OFO FO FO OP~O CLODBOCOEVODOK OEsZO@.OBɀOKO@DOEx^OF@ OIO4OKI=OLM OOoAOQJPOTEVOUROWuOXNOYMk}O\o^ O]JO_A$OaCLOdEOe~QOfOPOhCLOiCLOjCLOkCLOlCLOnCLOoCLOrNs3OsG6gOtNgOuG Ov_ > Ow_ > OyCLOzCLO|CLO}CLO~CLOCLOCLO]OCLOCLOCLONJOCLOD4qOCLOCLOBOCLOCLOCLOOP$OI%OH-&OG"OCL*OGV,O_a.OOP.ORnOCLOCLOOPOCL3Oq44OA{6OR37OI 8OQL9Ob:O[,;O_,<O[O OP>O S?OF*c@OE|.AOUOOPDOCMEOEFOEGONNO~s4OCvgO}gOa|@ ObFO!AO"z7 O#k_ O$v O%u ~ !O(CL O)CLO*CLO-a O/OPO0Rj O1ffEO2GO5ua O7O8nO;CLOCLO?CLOBI)OCHOEG7srb 7Iww 7v 7 u6 7 NQ 7 t7ED$7z 7Ai7Y}57y"7vY 7E7i|7J7"ua 7%y 7'a337(^|7)^ 7*CL7+CL7,CL7.CL7/CL72OP73OP74OP76CL7:H7;HJM7dIj7eG7hh7kh}eO7kIQ}fOOH^ ^ M7q% N7DNO7G+P7EQ7SR7Q+S7{Z T7HNV7mg X7FqY7E[7\7Z^7b_7A`7Aa7u\b7v\c7uL7CL7CL7CLg7n% 7CL7CL7CL7CLm7DOn7}o7ew1 7CL7CL7CL7CL7CL7CL7CLw7{ x7J8Ry7O7OP{7o |7ZS}7oM~7]7F_ 7E7{LS ~7OP7XE |7CL7,D:7-G7.Fa72QJ8u74CLt75CL77Do78v 7:rƨ 57OP7@CL:7CZ;7FGEE<7H\y:?7ICCl7JOP7LCLB7NCC7OND7P E7R[QF7SV >G7T\H7UB> L7VE M7WR\ N7Xs O7YGP7ZFQ7[HR7\GT7]EU7^FwV7_FE7`OP7bCLY7d~24 Z7eBc7gOP7CL]7|5! ^7m7OP7CLa7X?7OP7CLd7DQN7OPf7^7CLh7@i7R7OPk7L l7tzm7rn7]&f o7[{\p7T q7N r7OQ s7Kt7Ku7GM?7OP7CLx7FLy7Ms3z7N7OP7CL}7HH~7Fc7Fx7E7OP~7CL7DQN7C7@7D7K 7EsZ7@۶7B7K7@D7xg@7@ 7 Lv7 IS7 L7oA7JP7EV7P7uH7N7Mk}7`w/ 7J67Bu7CL7"Ej7#} Z7$OP7&CL7'CL7(CL7)CL7*CL7,CL7-CL7XNg7YG6g7ZNg7[G 7\_ > 7]_ > 7_CL7`CL7bCL7cCL7dCL7eCL7fCL7g]7hCL7iCL7kCL7lNE&7nCL7qD37rCL7sCL7uC 7xCL7yCL7zCL7}OP$7~I%7Hs&7R 7CL*7G,7_d 7OP.7R7CL7CL7OP7CL37q3j47A{67N77uL87S97bO:7`;7_ <7dg7OP>7SE?7F"7@7EuA7U7OPD7CE7E$F7E{G7N7y7A#37y27a0 7]/7A7z 7k 7vt 7t !7CL 7CL7CL7a 7OP7R7fY7F^7u 7zy7 n~7"CL7#CL7%CL7&CL7'CL7*I+7+H7,HB7/sc 73J 75vW 76up 77O 7:n7=E,7@z 7BALA7DZп7Gy"7HvY 7IF7Kk7LJ7Ou ~ 7RsD 7Ta7U^|7V^ 7WCL7XCL7YCL7[CL7CL7OP7OP7OP7CL7H7HJM7I7G7h7h}e7fn}f77H^ ^ M7q N7DO7GP7DQ7SR7Q$^S7U T7HV7m, X7FmgY7E+[7\7W""^7dNb_7A`7B`a7v34b7xc7u7CL7CL7CLg7nc 7CL7CL7CL7CLm7E\n7~ o7eb5 7 CL7 CL7 CL7 CL7CL7CL7CLw7ux7Iqy7MW 7OP{7oUU |7Z}}7n ~7]7!@+7#FE7N{/ ~7QOP7TX |7VCL7YD 7ZGK7[F"7]Fhu7_CLt7`CL7bC7cwt 7erj 57gK67hJR7iOP7kCL:7nZU;7qR<7s[AA?7tC=7uOP7wCLB7yCC7zM_D7{h E7}[QF7~UG7L34H7B L7E\) M7R{ N7s O7G&P7F/Q7IVR7H T7E1U7FojV7F+t7OP7CLY7~Ü Z7By7OP7CL]7|C ^7kQ7OP7CLa7WԨ7OP7CLd7DB7OPf7^7CLh7@i7PP7OPk7K l7wm7v{n7as3 o7[wp7T q7M=q r7QL s7Kt7KTu7G77OP7CLx7F7 y7Lez7N! 7OP7CL}7HU~7F7F 7E7OP~7 CL7"DnQ7$C 7&@7'DV7(K 7)E7*@=7+B7-K7.@D7/xG71@ 74Lv76I277L7:oA7 7_ > 7CL7CL7CL7CL7CL7CL7CL7]7CL7CL7CL7NE7CL7D07CL7CL7Ci(7CL7CL7CL7OP$7H%7HH&7NW7CL*7G,7_l7OP.7R7CL7CL7OP7CL37q/'47A{67Q&f77|87Q97b:7VL;7Zg<7Z97OP>7S?7FS@7EpcA7U "7OPD7C9E7EF7EsG7N7z7AS37y7aE 7b87 A7 z[ 7 k 7 vR 7t4 !7CL 7CL7CL7`q. 7@OP7ARq7Bf7CGL7Fu 7Hv7In~7LCL7MCL7NCL7OCL7PCL7SI+7TH7VO 7Ysc 7\J 7^v- 7_uS[ 7`J1 7cpL7fE7j{ 7l@7m[ 7py"7qvY 7rH#7tk17uI7yt 7uD 7aP7^|7^ 7CL7CL7CL7CL7CL7OP7OP7OP7CL7H(7HM7I7G7iG7iG}e7Hdx}f7bH8^ ^ M7q|} N7DO7G[GP7DFQ7 SR7 Q'S7 @AT7 HcMV7 l X7Fo6Y7E}[7;g\7[^7ds_7A`7Ca7ub7zc7w7CL7 CL7!CLg7#nk[ 7%CL7&CL7(CL7)CLm7,Ft0n7/~go70ew1 72CL73CL74CL76CL77CL78CL79CLw7<{Rx7=Hfy7>N>7@OP{7Cn |7m[/2}7nn~7p]7r@7tFz7x{Z ~7zOP7}Xb |7CL7DR7G7Fa7Nu7CLt7CL7Cd7wo 7q- 57JR67J$7OP7CL:7[Z;7SJ%<7Z$O?7C97OP7CLB7CC7KAD7' E7SF7VGG7OH7Bo L7E M7S > N7t( O7G*zP7FBQ7HR7HT7EU7FiV7FA7OP7CLY7 Z7Brd7OP7CL]7| z ^7j7OP7CLa7W?(7OP7CLd7D4K7OPf7^7CLh7@i7NH\7OPk7KC l7um7tffn7^= o7[p7 V\ q7 P{ r7 S s75Kt76Ku77G478OP7:CLx7 7_ > 7CL7CL7CL7CL7CL7CL7CL7]7CL7CL7CL7NR%7CL7D.7CL7CL7B7CL7CL7CL7OP$7HI%7H&7 Kjq7 CL*7 Gg,7 _OG7 OP.7 S 7 CL7 CL7 OP7 CL37 q47 A{67 eٚ77 \ff87 V397 bx:7 Y4;7 \<7 Z7 OP>7 !S2O?7 "F @7 #EgRA7 $U 7 %OPD7 &CE7 'EF7 (Em*G7 )NH7 -A7 .E37 /@7 0aH] 7 3]$7 5A7 6{ 7 7kd 7 `vv 7 at !7 dCL 7 eCL7 gCL7 ib 7 kOP7 lQ7 me7 nF7 qu6 7 rzVW7 uo7 wCL7 xCL7 yCL7 zCL7 {CL7 ~I/.7 Hk7 J07 sU: 7 Iww 7 vK 7 u65 7 P 7 r7 E7 { 7 @7 ] 7 y"7 vY 7 I7 p>t7 J7 t 7 wj 7 a7 ^|7 ^ 7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 Hs7 HN7 I7 G7 w37 w3}e7 rW-K}f7H?X^ ^ M7 )q|} N7 ,DO7 -G;0P7 .EQ7 1SOR7 2Q'S7 3@QT7 4H!V7 5lm X7 8FhY7 9E[7 :\7 ;Z>^7 >e_7 ?A`7 ADda7 Cv#b7 Dxc7 Eu7 GCL7 HCL7 ICLg7 Kn, 7 NCL7 OCL7 PCL7 QCLm7 TGn7 W}go7 Xeb5 7 ZCL7 \CL7 ]CL7 ^CL7 _CL7 `CL7 aCLw7 wx7 Iy7 M7 OP{7 nUU |7 ]# }7 o q~7 ]7 A827 F&7 { ~7 OP7 Wx |7 CL7 D7 G7 F|7 Hu7 CLt7 CL7 C7 w 7 q 57 J967 J7 OP7 CL:7 \E;7 Q<7 Ya?7 C07 OP7 CLB7 CC7 RD7  E7 QF7 V >G7 JHH7 BNY L7 E M7 S N7 u O7 G/P7 FQ7 HR7 GT7 E+U7 Ff[V7 FQ"7 OP7 CLY7  Z7 BUZ7 OP7 CL]7 { ^7 lO7 OP7 CLa7 !WI97 "OP7 $CLd7 &D- 7 (OPf7 *^7 +CLh7 U@i7 VL7 XOPk7 YK l7 Ztm7 [s =n7 \^!H o7 _[p7 aU3 q7 bP r7 cTq s7 dKt7 eK u7 fG&"7 gOP7 iCLx7 kEy7 mIuz7 oN7 pOP7 rCL}7 tH$~7 vE7 wE7 xEn7 yOP~7 {CL7 }DB7 C=7 @;7 D7 K 7 EZ7 @7 C7 K7 @D7 xM7 @ 7 Lv7 I(7 L7 oA7 JP7 EV7 RC7 u[p7 N7 M`7 `w/ 7 J7 @@7 CL7 E7 } Z7 OP7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Ng7 G6g7 Py7 G 7 _ > 7 _ > 7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ]7 CL7 CL7 CL7 NM7 CL7 D)7 CL7 !CL7 #Bn7 &CL7 'CL7 (CL7 +OP$7 ,H%7 -H&7 /HK}7 2CL*7 5G,7 6__7 7OP.7 8SB'7 :CL7 ;CL7 =OP7 ?CL37 Bq47 DA{67 G_77 HWL87 IY@97 Kbql:7 M^,;7 N^<7 Ocg7 POP>7 QS5?7 RE@7 SE`A7 TU`7 UOPD7 VC`E7 WEF7 EfG7 NU7 ~f7 C7  7 a 7 a7 A7 {w 7 k 7 vY 7 t !7 CL 7 CL7 CL7 a>' 7 OP7 P7 fƙ7 G> 7 u 7 7 oI7 CL7 CL7 CL7 CL7 CL7 I07 H7 G8>7 sc 7 I 7 vK 7 uS[ 7 K 7 r7 D7 { 7 A7 ^1}7 y"7 vY 7 Lp7 z47 K$7 t4 7 wQ 7 `7 ^|7 ^ 7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 H[7 HJM7 I7 G7 g 7 g }e7 j }f7 Hc^ ^ M7 \q N7 ^D1O7 _G'8P7 aE !Q7 dSOR7 eQ62S7 f@gvT7 gH\V7 hl X7 jFaY7 lEC[7 m\7 nY^7 qdU+_7 rA`7 tE a7 utb7 wwc7 xu7 zCL7 {CL7 |CLg7 ~nDF 7 CL7 CL7 CL7 CLm7 Gn7 }po7 eb5 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 zGx7 F)y7 N7 OP{7 nwx |7 [9}7 n~7 ]7 AP7 F7 { ~7 OP7 Y |7 CL7 D7 G7 FY7 L0u7 CLt7 CL7C7wR 7qt 57J 67IX7OP7CL:7]j;7!O(<7"Xu?7$C7%OP7'CLB7)CC7*SD7+{d E7-QF7.UG7/QH70B>j L71E M72S > N73u O74G3P75FQ76H4R77H mT78EfU79FcV7:FD7;OP7=CLY7?@4Z7@BN7BOP7DCL]7F{/ ^7Hn7IOP7KCLa7vWԨ7wOP7yCLd7{DG7}OPf7^7CLh7@i7X7OPk7K_ l7}m7{\)n7bG o7[%p7V{ q7O r7Ru s7Kt7K <u7G7OP7CLx7EVy7Rz7N7OP7CL}7Hs<~7Eא7EY7EH7OP~7CL7DQN7CL!7@;7E 7K 7E7AK7C7K7@D7x7@ 7Lv7I7L7oA7JP7EV7Lv7u[p7N7M`7o^ 7J7@p7CL7E7} Z7OP7CL7CL7CL7CL7CL7CL7 CL7 Ng7K7Yg7G 7_ > 7_ > 7CL7?CL7ACL7BCL7CCL7D]7ECL7FCL7GCL7INH 7KCL7MD)7OCL7PCL7RCD7UCL7VCL7WCL7YOP$7[HR%7[H&7^P7aCL*7dGo,7e_d 7fOP.7gS!7iCL7jCL7lOP7nCL37qq47sA{67v[f77v_387wk@97bql:7X;7\4<7Ys37OP>7S?7E@7E[A7Uf7OPD7CzE7EF7E`{G7NX7|7B7|37a3 7`7A7{ 7l 7vCL7jHE7kHF7lI7mG7pg\7sg\}e7e8}f7Ho^ ^ M7q N7DO7GHP7DQ7SR7Q=TS7of T7HqV7l X7FVY7Er[7h\7\^7cS_7A`7Daa7vb7x.c7uR7CL7CL7CLg7nk[ 7CL7CL7CL7CLm7GBn7}ٚo7ew1 7CL7CL7CL7CL7CL7CL7CLw7wHx7Hy7O7OP{7n |7[}7m~7]7A7Fs7{a ~7OP7ZTj |71CL74D75GB76Fs7:M u7 7g_ > 7iCL7jCL7kCL7mCL7nCL7oCL7pCL7q]7rCL7sCL7tCL7vNM7xCL7zD)7|CL7}CL7D;7CL7CL7CL7OP$7HR%7H&7N7CL*7GH,7_7OP.7R7CL7CL7OP7CL37qp47A{67R377M87Y@97bm:7Zٙ;7]<7Z7OP>7R?7E@7EXA7T 7OPD7C*E7EF7E[ G7NsY7zg7Af7z,7aU 7`j7A7|C 7l3 7v 7tU !7CL 7CL7CL7c!( 7OP7Ow7f7GBb7%u6 7'?7(o7+CL7,CL7-CL7.CL7/CL72I173H74M\78sU: 7;I" 7=v 7>u6 7?Sm 7Bo7EDv7H{ 7K@7L`ٯ7Oy"7PvY 7RON7SB|y7TI7Wtz 7[rU 7\aS37]^|7^^"7_CL7CL7CL7CL7CL7OP7OP7OP7CL7H/7HH}7I7G7g7g}e7'oc}f7?H^ ^ M7qn N7DzO7GaP7DQ7S&R7Q@S7n T7H|V7m$ X7FPY7E[7C\7Wޔ^7c_7A9`7Ca7vpb7xkc7vB7CL7CL7CLg7nc 7CL7CL7CL7CLm7 Fbn7}fgo7ew1 7CL7CL7CL7CL7CL7CL7CLw7xx7HLy7N 7OP{7"n |7$[cf}7%lZ~7']7RA7SFK<7W{a ~7YOP7\Y |7^CL7aD7bG]7dFQ7gIu7iCLt7jCL7lC7nwO 7oqR 57qJ67rI7sOP7uCL:7x].;7{KY<7}W|F?7~C7OP7CLB7CC7PD7{d E7ZRF7XG7RpH7B L7F{ M7T N7v{ O7G;P7FQ7HsR7GT7E&U7FRmV7F%7OP7CLY7@AZ7BE7OP7CL]7{/ ^7mE7OP7CLa7W7OP7CLd7D%7OPf7^7CLh7@i7V 7OPk7K l7m7~=qn7a o7[p7Tff q7M r7PW s7Kt7Ku7Fv7OP7 CLx7"Ey7#NTxz7%Ne7&OP7(CL}7*HG~7,E7-E@7/E570OP~72CL74Dg76Ci(77@X78D7:JZ7;EW7 7_ > 7CL7CL7CL7CL7CL7CL7CL7]7CL7CL7CL7NM7CL7D)7CL7CL7C7CL7CL7CL7OP$7HR%7H&7J7CL*7Gx ,7_b7OP.7S"v7CL7CL7OP7CL37q 47A{67e77Vfg87U97bu4:7V;7Z<7X@7 OP>7 S?7 E@7 ENA7 U#7OPD7CE7EoF7EVG7N@7}fg7B7|37aF 7Day7EA7F| 7Gl5h 7Hv 7Jtj. !7MCL 7NCL7OCL7Q` 7SOP7TO 27Ve7WFi7Zu 7\t7]o7_CL7`CL7aCL7cCL7dCL7gI17hH7iOͻ7lsU: 7oI 7qu 7su} 7tJ 7wp7zDq7}{ 7@Z7b7y"7vY 7Q7Bo7Jc7tU 7vs3 7a7^|7^ 7CL7CL7CL7CL7CL7OP7OP7OP7CL7H7HE7I(7G7z337z33}e7\aE }f7lH^ ^ M7qN N7DO7GbhP7DQ7SR7Q9S7nT T7H6V7l X7 FbY7!E[7"\7#\^7'c_7(A9`7*C Qa7+w >b7,y\c7-v7/CL71CL72CLg74nk[ 76CL77CL78CL79CLm7x  G{y  NR  OP{ o | Z} n~ ] A) F;^ { ~ OP !Xq | #CL &D 'G (Frw +QMu .CLt /CL 1CZ 2w J  3rj 5 6J6 7IF 8OP :CL: e\; gI˔< iWh2? kCY lOP nCLB pC>C qOOD rd E tVGF uUG vE H wB8 L xFQ M yTz N zv{ O {G@5P |F:Q }HR ~GKT EpU FFV F OP CLY : Z A: OP CL] { ^ k OP CLa Wc OP CLd D OPf ^ CLh @}Bi U  OPk KW l {m yn ^{ o [ p T q L\ r O\ s Kt Ku F= OP CLx Ey Lmz N OP CL} H#~ E  E Eѕ OP~ CL DX Cw @X E* JZ EW A$Z C= K @D xf @  O;~ -IQk .L 1oA 3JP 6EV 7Q  9ul :Ny ;M\ >o^  ?J @@ BCL FED G~H HOP JCL KCL LCL MCL NCL OCL PCL TPg UKVf VPg WG  X_ >  Y_ > [CL \CL ]CL ^CL `CL aCL bCL c] dCL eCL fCL NJ CL D0 CL CL C6] CL CL CL OP$ H% H& IF CL* Go, _ OP. S[\ CL CL OP CL3 p4 A{6 [7 _38 ^ 9 bi: `; ^< cS4 OP> S? E@ EJMA Ue OPD C E E}F EQG N } Cvg ~f a=[  ^U A? }  lR  v4   t[ !  CL  CL CL a  OP O=o fS F  u  s| o CL CL  CL "CL #CL &I3 'HA (I +sU:  .Iٚ  Yu  Zv  [N4p  ^r aDl d{  f@ gcy ky& lvY  nR!E oC@ pJƭ stj.  vv  w` y^y z^  {CL |CL }CL ~CL CL OP OP OP CL H HC  I G S = S =}e T}f 1H^ ^ M q N DO GP EQ SR QDuS o T HV m, X FhY E8[ \ YB"^ do_ AU` Ba ub w{c v CL CL CLg nS  CL !CL "CL #CLm 'En *}o +eM9 -CL .CL /CL 0CL 1CL 3CL 4CLw 7{x 8Jy 9P :OP{ =o | @[V} AlM~ C] E@ GFB J{a ~ LOP PX | RCL UD- VG WF7 ZHu CLt CL Cw wR  q+ 5 JL6 I OP CL: \%; H\< Vw5? CA OP CLB C>C MD E E SHF V(G KRH A L E M T N v{ O GEGP FyQ H R GTT EgU F:V E OP CLY  Z A OP CL] { ^ jk OP CLa V OP CLd D% OPf ^ CLh @ui S OPk L l ym x(n _ff o [{p S q Nu r R33 s KMt JRu  F^  OP  CLx EZy Kz N OP CL} H ~ E E| E OP~ CL  DX "C. #@gv ME9[ NJZ OE PA$Z QCL! SK T@D Uxܩ V@  YOI_ [H" ]L `oA bJP eEV fLv hv iNy jM\ mo^  nJ o@p qCL tEj v~' wOP yCL zCL {CL |CL }CL ~CL CL Ng G6g Pg G  _ >  _ > CL CL CL CL CL CL CL ] CL CL CL NOA CL D4q CL CL D_ CL CL CL OP$ Hٞ% HR& Q CL* Gg, _ OP. S CL CL OP CL3 p4 A{6 V7 J@8 Uf9 bi: Xٚ; [< Y3 OP> Rs? E@  EDA !U"Q "OPD #CpE $EwF %EOEG &N *z@ +A#3 ,z -`}  0b' 1A? 2}f  3la7  5u  6tM ! 9CL :CL ;CL =b(\  ?OP AO Bf< CF Fup  H Io' KCL LCL NCL OCL xCL {I1 |H }G sF  I  uD  vW  O.{  pf D {  @ d5 y" vY  S " C KR8 t[  {  ` ^y ^  CL CL CL CL CL OP OP OP CL G HA< I G h h}e Hh}f H%^ ^ M q N DO GP E Q  SaR  QRS  n T  HV  me X FjY Eu[ ;g\ Z^ fN_ Ar` ABTLa Bu.b Cwfgc Du GCL HCL ICLg KnDF MCL NCL OCL QCLm TEŞn W}go XeM9 ZCL [CL \CL ]CL _CL `CL aCLw d{Rx eHfy fN> gOP{ ko | m[#} no,~ p] r@F tF: w{/ ~ zOP W>' | CL D^ G Fw Oeu CLt CL C wbN  qu 5 J6 IƏ OP CL: [m; G< U? C OP CLB CC L)D d E [34F Y >G RH A L E M S N v{ O GHP FyQ H>R GבT EYlU F4V Eɝ OP CLY  Z Aq  OP  CL] { ^ h  OP CLa U7/ OP CLd DG OPf ^  CLh "@gvi #P %OPk &K. l 'yGm (wn )a o ,[`p .V q /M r 1QǮ s 2Kt 3Ju 4F^ 5OP 7CLx 9Ezy :I[z   _ > CL CL CL CL CL CL CL ] CL CL CL NGQ CL D/ CL CL D; CL CL CL OP$ H% H& M5 CL* G^, _ OP. S&  CL  CL 5OP 7CL3 9p@4 ;A{6 >Wf7 ?H8 @Og9 Cbi: DW; E[< FYf GOP> HR^? IEt@ JE>A KTc LOPD MCsQE NEqLF OEIG PNU T UC V2 Wa  []X \Am ]~@  ^la7  _u}  `t/ ! cCL dCL fCL h`6  jOP kOJ lf mF up  Z oP CL CL CL CL CL I3 H L sF  I"  uS[  vb  nx\*c  ov34  qCL  rCL  sCLg  unS  xCL  yCL  zCL  {CLm  ~En  }go  ew1  CL  CL  CL  CL  CL  CL  CLw  z >x  GHy  Op  OP{  n |  [{}  l&~  ]  @  F6R  {/9 ~  OP  VEA |  CL  D  G  FD  Gu  CLt  CL  C-  v   qP 5  J46  I  OP  CL:  Z;  I<  T?  C  OP  CLB  CC  P.D  k E  VF  VffG  F{H  A L  F{ M  T N  v{ O  GM?P  (FQ  )HR  *GTT  +EJU  ,F-HV  -Ev  /OP  1CLY  2U Z  3A  5OP  7CL]  9{w ^  ;d  CLa  ARf  BOP  DCLd  FD  HOPf  J^  KCLh  M@gvi  NN  POPk  QK> l  RyGm  Sw n  U`33 o  W[ʵp  YV=q q  [NR r  \PB s  ]K3t  ^J u  _F  `OP  bCLx  E2y  Pz  MԄ  OP  CL}  Ge~  E  E  E  OP~  CL  C  C4  @  EG  JZ  EV  AAh  Ci(  K  E  x  EV  O;~  I  M   oA  JP  EV  Sl  v  Ny  MU  o^   J  A  CL  E  ~i  OP  CL  CL  CL  CL  CL  CL  CL  Pg  K3  Yg  G   _ >   _ >  CL  CL  CL  CL  CL  CL  CL  ]  CL  CL  CL  NE  CL  D.  CL  CL  B  #CL  $CL  %CL  (OP$  )Hض%  *H&  UIL  WCL*  ZGU,  [_  \OP.  ]S&  _CL  `CL  cOP  dCL3  gp4  iA{6  lm7  m\8  nW&g9  pbbQ:  rY,;  s\<  tXL  uOP>  vS?  wE@  xE<A  yU|  zOPD  {CE  |EjF  }EEOG  ~NK  }2  CY  ~4  a   ba  Ay  }   l~k   u   t!N !  CL  CL  CL  bq   OP  O  fwe  F"  tz   Ƞ   n  CL  CL  CL  CL  CL  I3  H  OA  s8   IUU   t   v  :I  z  ?z}e  k}f  H ^ ^ M  Vq% N  DO  F[P  DQ  S/R  QdS  n% T  GʋV  kVI X  F?^Y  E [  e\  \^  dl_  A`  Aܒa  tb  v34c  tW   CL  CL  CLg  n  CL  CL  CL  CLm  EQn  }o  eF  CL  CL  CL  CL  CL  CL  CLw  xx  GW y  P  OP{  m |  [H9}  o7~  ]  @_C  E  { ~  OP  W |  CL  D  Gx  FA  Lu  CLt  CL  B  v   qt 5  J6  I  OP  CL:  Z;  R<  T?  C  OP  CLB  ICC  JSD  K\] E  MV(F  NUG  OEH  PA L  QF{ M  RT N  Sv{ O  TGPP  UFQ  VHoR  WG̶T  XE=^U  YF!V  ZE3  \OP  ]CLY  _' Z  `Af  bOP  dCL]  fz ^  h\  iOP  kCLa  nP  oOP  qCLd  sD  uOPf  w^  xCLh  z@gvi  {M  }OPk  ~K l  A33m  {n  aY o  \Kp  VǮ q  OQ r  R= s  Kt  J9u  F  OP  CLx  Dy  Q>z  MD  OP  CL}  H2~  E  Ei  E  OP~  CL  C  C4  @  E   JZ  E  AAh  Cw  K  E  xr  EV  OPP  I?C  L  oA  JP EV QQF v, Ny MU o^  J A^ CL "E #} $OP &CL 'CL (CL )CL +CL ,CL -CL 0O33 1G6g 2Y4 3G  4_ >  5_ > 7CL 9CL :CL ;CL CL ?] @CL ACL CCL DNF FCL ID0 JCL KCL uA: xCL yCL zCL }OP$ ~H% H&& MG5 CL* GOE, _ OP. S8 CL CL OP CL3 p4 A{6 a37 Qf8 TL9 bbQ: Vg; ZFg< XFf OP> S? E@ E6[A U OPD CzE EcF E@G Nu }f B3 }g a/4  _Ke AVA ~#  l  u  t ! CL CL CL a/  OP P- er( E? tx  p nj CL CL CL CL CL I4 H H s8   I;   t   vK   K7<  sVf Dh  ?zu  A@ Bh Ey" FvY  HVk ID5 JK@ Nt!N  Qw  Raff S^y T^  UCL VCL XCL YCL ZCL ]OP ^OP `OP bCL eGE fH; gI hGt lg og}e T?}f  G^ ^ M q|} N D~O FNP DmQ S/R QhS n% T GWV jt X F/Y E[ j\ Y ^ dpR_ A` Aa vb xǯc v CL CL CLg nk[ CL CL CL CLm E+n }Yo d{c CL  CL  CL  CL  CL  CL CLw }(x I{y N OP{ l | [C} n?~ ] @3 "Ex %{/9 ~ 'OP *Wt | ,CL /Dw 1Gj 2FN= 5Lu 7CLt 8CL ;B:  O GT~P FƃQ HR GT E3kU FsV E OP CLY r Z A OP CL] zF^ ^ U OP CLa M>N OP CLd D OPf ^ CLh @`2i X3 OPk K l zm ypn b o \dp U q O = r Q=q s K-t Jgu F OP CLx Dy Ozz LJ OP CL} HVF~ Ex E_ E OP~ CL C{ C @ EZ J E AO Cw K 1E 3x 6EV 7Lv 9I0 :L =oA ?JP BEV CLv Ev# FNy GMP  Ko^  LJ MAL OCL RE S{q TOP VCL WCL XCL YCL [CL \CL ]CL `Q aG6g bYg cG  d_ >  e_ > gCL iCL jCL kCL CL CL CL ] CL CL CL NF CL D4q CL CL Ci( CL CL CL OP$ Hκ% H& P D CL* GF7, _ OP. RI CL CL OP CL3 ph4 A{6 eٚ7 G@8 ]s39 bZ: Zg; ]f< Z OP> SSp? E~@ E4A U? OPD CVE E]XF E;YG Ni ~ CFf  ~9  `V   aȤ ADq ~OI  l8  u6  s ! CL CL CL `d  OP P8| f1  FL #t!N  %) 'nN )CL *CL +CL ,CL -CL 0I4 1H 3G ^s)~  aI  ctx  dvK  eL{  hp lDY oz  q@ ri uy" vvK  xWa yD {K:\ ~t'  x  aC3 ^y ^  CL CL CL CL CL OP OP OP CL G  H; I G g  g }e %h[}f ;G.^ ^ M q3 N D9O FP D+Q SR QkS n`* T G]gV j* X F+Y Eud[ VE\ \33^ a_ A` Aa v#b {\c wfg $CL %CL &CLg (nc +CL ,CL -CL .CLm 1En 4}Fgo 5d't 7CL 9CL :CL ;CL CLw A@px BNy DOp EOP{ Hk | J[} Ko~ M] O@ RER U{LS ~ WOP ZW[o | \CL _D{T GN F\ JYu CLt CL AvF u  pȵ 5 JK6 I]8 OP CL: \; Q< TC? Bۤ OP CLB CScC R  _ > CL CL CL CL CL CL CL ] CL CL CL NDm CL D4q CL CL Cp CL CL CL OP$ H% HA& La CL* G?, _ OP. S CL CL OP CL3 p4 A{6 !`7 "CY8 #^ 9 &bS3: '\ٚ; (`9< )]f *OP> +S? ,ES@ -E0A .T /OPD 0CZE 1EU/F 2E5G 3N<| 7|l 8Bg 9}fg :`Ɵ  >a[ ?A @~OI  Al  Bu  Cs ! FCL GCL ICL Kbs  MOP NPCN OeG PEѕ Ss  } n CL CL CL CL CL I2 H~ Ih s T  I33  t!N  v4  R  nFf DH[ z?  @n k y" vc RwG TCL UCL VCLg XnDF [CL \CL ]CL ^CLm aEn d}o ecj hCL iCL jCL kCL lCL mCL nCLw q|\x sIy tMu uOP{ xkDD | z\} {p5~ }]   E  { ~ OP V | CL Dgm G1 FJ Q?u CLt CL @w uV  pM 5 J6 I=s OP CL: ]f; OBN< T$(? B OP CLB C6]C Q'D L E VffF V >G F34H AOF L F{ M T N v{ O  G].P  FqQ HR GoT EU FV E OP CLY : Z A2 OP CL] y ^  KH !OP #CLa %H@ 'OP )CLd +D -OPf /^ 0CLh 2@Jei 3V 5OPk 6K l 7y\)m 9w n :`R o =\p ?WQ q @Q8R r AR s BKt CJfu DFA1 EOP GCLxDyK\zL; OP CL} H~E\E3E@OP~CLC=Cμ@EGJETA^vC4!K$E&xs)EV*Lv-I^!.L1oA3JP6EV7Rۭ9v?":M;MNMfo^ gJ|1hAjCLnEDo{epOPrCLsCLtCLuCLvCLwCLxCL|Ng}N~YgG _ > _ > CLCLCLCLCLCLCL]CLCLCLNCCLD4qCLCLC'CLCLCLOP$H%H&HCL*G;Y,_ǐOP.S1CLCLOPCL3p54A{6Q&f7L8X9bV:Yy;\ٚ<ZgOP>S7?EY@E'AUOPDCL!EENFE0zGNL^y@gyg` `,@h-~OI .ll /ua 1s !4CL 5CL6CL8_i :OP;PFelAs CHDnnFCLGCLHCLJCLKCLNI0OHqLPK!Sr VI; Xs Zu [JM ^ofaD8dz$ f@gl y"v- Z8DIsl uY aP^|^ CLCLCLCLCLOPOPOPCLGH5sIG}gg}eCh͕}f F h^ ^ MpI NDOFPDBQSRQv`SnB TFViT X E@Y EG[ dk\ \q^dQ_B`APgau>bx.cwCLCLCLgnDF  CL!CL"CL#CLm&D?n*}4o+c+ -CL.CL/CLXCLYCL[CL\CLw_A >x`JyaNRbOP{ekUV |g[}im[~k]m oEr{ ~tOPxTSI |zCL}DKc~FEGuCLtCL@s o: 5Jv6I$OPCL:];L<S%?BOPCLBC CP."D5 ESHFVffGIHA(4 LFQ MT Nv\ OG^PFƃQH^RGTEUEVDOPCLY ZAOPCL]x ^IOPCLaF>KOPCLdDOPf^CLh @C i!UI#OPk$Kt l%|m&|{n'ac o*\p,SQ q-L33 r.N s/K}t0Ju1F!O2OP4CLx6C:y8J8z:L#;OP=CL}?H~AENBE CEDOP~FCLHC=JC>K@MEsZNJOETPAlQCSKVEXx[EVOHLoAJPEVOu9MWlMNMo^ J|1A{CLEjxOPCLCLCLCLCLCLCLNgK3PgG _ > _ > CLCLCLCLCLCLCL]CLCLCLN>CLD0CLCLC:CLCLCLOP$H$%H&OeCL*G2J,`0OP.S CL CL OPCL3p4A{6\7S@8X9bK:WS3;[<XY OP>!S!?"E@#E%!ALUMOPDNCWEOEEFPE*#GQNoUYVCW~X`e [b\@O]~@ ^l `uD as !dCL eCLfCLha< jOPkPumenFQqs sDtnmvCLwCLyCLzCL{CL~I0Hh:O zr IL sc u N p3D)zr }-n y"vW [jKDJ?psF z a#3^|^"CLCLCLCLCLOPOPOPCLGm*H4I@Gzfzf}esik}fE^ ^ M)p N+DO,FP-D{Q0SқR2Qo>S3n T4G#/V5i X7EY8E2:[9\;X^>bF_?B`@A33aBwbCy\cDvGCLHCLICLgKnS MCLNCLOCLxCLm|Dn}s4oc+ CLCLCLCLCLCLCLwy34xJyMOP{k |[/}m,~] EE| ~OPY!( |CLD)F/ENDuCLtCL@)u o 5Jk6IOPCL:]\;K<S9A?B~OPCLBCCO"D ES >FVGGNRHA LE MS Nv{ OGaPFȯQHRGwTDUEsVDOPCLY  Z @. OPCL]x ^G`OPCLa@DBOPDCLdFDGHOPfJ^KCLhM@;iNSlPOPkQKT lRymSx{nT`!H oW\GVpYT\) qZMQ r[PB s\Kut]Ju^Ey`OPbCLxcCyeI zgLhOPjCL}lI :~nE?oEpEqOP~sCLuCL!wCy@zEV[{JEAlC:KcExEVO4ILoAJPEVLvu9MMHo^ JmALCLE{\OPCLCLCLCLCLCLCLQG6gPgG _ > _ > CLCL CL CL CL CLCL]CLCLCLN?_CLD.CLCLDX CL!CL"CL%OP$&H%'H&)O@,CL*/G&,0`51OP.2R 4CL5CL7OP9CL3A{6ASٚ7BJ38BXf9mbD:oYFf;p\L<qZrOP>sS?tE@uE(AvUHwOPDxCWEyE;FzE"G{N\@z,A#3y3`! ^"Y@~24 m u65 s !CL CLCLa- OPPfaFF$s onsCLCLCLCLCLI0Hj Frn I sU: up NLJ tDzcz ~._o'y/v \D+Js y ac3^|^ CLCLCLCLCLOPOPOP CL5G]6H07I 8G;j\?j\}ejђ}fEe^ ^ MVpJ NXDOYFrPZD,Q^SR_Qo>S`n TaFVbi XdEYeE-\[g\hZa^kbؾ_lB`mAaotubv{csaHCLCLCLgn0 CLCLCLCLmDn}ob׷ CLCLCLCLCLCLCLwxxGyMOP{jfg |\_}n,~]? E@~OPT'U |CLDRFE IĚu CLt CL R  t  odZ 5 J_46 I OP CL: \F; I< R? B{ OP CLB CC N4D L E "UF #Y >G $L{H %@) L &F{ M 'T N (v{ O )GeP *FOQ +HPR ,GwAT -DU .EݕV /D 0OP 2CLY 4' Z 5@۶ 7OP aCL] cxH ^ dE fOP hCLa jC lOP nCLd pD rOPf t^ uCLh w@-Si xQ zOPk {KŨ l |}\)m }{\)n ~bQ o \p S q L r P s KmPt Jݔu Eΰ OP CLx Cy Qaz Lu{ OP CL} I~ E1# E E~: OP~ CL CD CB @ Ed Jn FR A{ Cμ Kc E xM EV Ol I( L oA JP EV T< u9 MA ME/ o^  J|1 AL CL E } Z OP CL CL CL CL CL CL CL *R  +G6g ,Pg -G  ._ >  /_ >  1CL 2CL 4CL 5CL 6CL 7CL 8CL 9] :CL ;CL =CL >N?_ @CL CD-4 DCL ECL GC JCL KCL LCL OOP$ PH% QHv& SJl VCL* YG, Z` l [OP. \S ^CL _CL bOP cCL3 pN4 A{6 Lf7 F8 XY9 b<: [; \4< ^` OP> S? E@ EA UU OPD CsQE E3F EG N yg @ z, `  bY @ ~  m  u  s ! CL  CL CL _  OP Q  fz F>K sU:  Ǩu n CL CL CL CL CL I/. H]X Ha" r  I  s  ua  Jx  nVf D  zF^  }1 pB y33 v4  ] DB KH s  #t  $a  %^y &^  'CL )CL *CL +CL TCL WOP XOP ZOP \CL _GOE `H1 aI o bG% fh\ ih\}e d}f D^ ^ M p-~ N DjO FXlP DUQ SR QYS n4a T F^V hT& X ElY Ez[ *n\ a[^ d_ B` Aa vb v#c t{ CL CL CLg n[  CL CL CL CLm DOn })o b  CL CL CL CL CL CL CLw ~zx IBy Nz OP{ i | [q} qH~ ] cP  Ev ~24 ~ !OP $W/ | &CL )C +F: ,E /Kfu 1CLt 2CL 5~  6s  7o33 5 9JU56 :HM ;OP =CL: @\'; CH< ER? MBk! NOP PCLB RB C SMD T E VX\F WWG [34H @r L E M T N v{ O GhP FGQ HR GhT DJU EV D٦ OP CLY 7 Z @ OP CL] x ^ D-  OP CLa B OP CLd D OPf ^ CLh @i N OPk Kـ l }m |Rn _&f o \0p Tp q Nu r PH s Kht Ju E$ OP CLx Cy Pw3z L~ OP CL} I/j~ E'2 D Ez OP~ CL C= D @. EV[ Jn FR A  C> Kc E xܩ EV OBo I L oA JP EV Q u9 Mo# M? Io^  JJ|1 KAY MCL PE R{\ SOP UCL VCL WCL XCL YCL ZCL [CL ^OY `G6g aYg bG  c_ >  d_ >  fCL gCL hCL iCL jCL lCL mCL n] oCL pCL qCL sN@ tCL wD/ yCL zCL |B+ CL CL CL OP$ H% HJ& MC CL* G, _A OP. S"v CL CL OP CL3 p84 A{6 g337 [8 ]s39 b": Yg; ]4< Z&f OP> S,? E@ EwA Ud OPD C3uE E*F EhG NOA }2 B3 }S3 `  \ @ }h  mm t sc !CL CLCLa[o OPP/eEsZ"r $%ny'CL(CL*CL+CL,CL/I-^0HW1K4r 7I :rn ;uS[ 

xDyJފ|srb yȉ a#3^|^ CLCLCLCLCLOPOPOPCLGAH/I GVhh}e$g+%}f 5Dzs^ ^ MpvS NDOFPD[QSRQYSnB TFPVgP XEͬYD[F\X^e6_B`A DatbxRcuCLCLCLgm CLCLCLCLm D&n |4o b/ CLCLCLCLCLwA}(xBJW yCMDOP{Hi"# |J]ۈ}Kp~M]OT QET|C ~WOPZ[ |\CL_C3`FaEeOkugCLthCLj~ kt mn 5oJH|6pHnqOPuCL:w[k;Fi<Q?B`>OPCLBBECL D& E[34FWGKH@û LF{ MS Nv{ OGjPFШQHPRG|STDKUEVDpOPCLY~ Z@gvOPCL]w_ ^BcOPCLaAOPCLdDOPf^CLh@iM'OPkKF l}\)m{na^ o \tp U qNB rP3 sK]tJduExOPCLxCZyO?zKOPCL} I=~"E#D$Eo%OP~'CL)C ,DG-@..E9[/Jn0FR1A 2C3Kc4E6xF9EV;O=I">LioAkJPnEVoLvqv/rMzsM8kvo^ wJmyAY{CL~E&{OPCLCLCLCLCLCLCLR<G6gNgG _ > _ > CLCLCLCLCLCLCL]CLCLCLNACLD1CLCLC>CLCLCLOP$Hj%Hؒ&P CL*G,_OP.RCLCLOPCL3p4A{6ZL7V8]L9b:Xs3;]s3<ZOP>S`f?EW@E AUOPDC*EEFE BGN^j3y4A#35y6_ϥ 9be#:@n;}; =mm >t4 ?sF !BCL CCLDCLF`P IOPJPKf\LFOr Q0Rn{TCLVCLWCLXCLYCL\I+]HL^O<brz eI. gr huD iLL p3C z ~rH2y7Lu `DdK.sU: yww `3^|^ CLCLCLCLCLOPOPOPCLG+ H)I G{L{L}eQNk}fjD0w^ ^ MpvS N DO FP DQS/RQDuSn TF:BVg XEYD[q%\_^f_B9`@a ub!xkc#uk%CL&CL'CLg*m ,CL-CL/CL0CLm3Dn^}4o_a aCLbCLcCLeCLfCLgCLhCLwkAffxlJ8RymN oOP{ri |t\}umq~w]yF_ {E{a ~OPUd |CLD FF H`uCLtCL~ tC n 5J96H7OPCL:Z;Nk<Q?BAOPCLBBCMqD EVGFV(GL\H@: LF{ MS Nv{ OGmPF˕QHRG[TDUE\VDmOPCLY~l^ Z@-SOPCL]wl ^@OP%CLa'@}B)OP+CLd-C.OPf0^2CLh4@i5W7OPk8K͘ l9~m:|Hn;`R o>\iRp@T = qAM rBO sCKVtDJuEEFOPHCLxJC6]yKNwzMKOOPQCL}SI=~UE \VDWEbXOP~ZCL\B^D%_@۶EdJnFACBKcExEVO^1IMLoAJ2EVQvFSMM6o^ J_CCCLErtzKOPCLCLCLCLCLCLCLPgMPgG _ > _ > CLCLCLCLCLCLCL]CLCLCLN>CLD.CLCLCUCLCL CL OP$ Ho% H&LCL*F,_JOP.RCLCLOP CL3#p}4%A{6'Q7PBf8QS39Tb:V_;W^<X`lYOP>ZS "?[Ez^@\EA]UN5^OPD_C0E`EFaEGbNFf},gBh}yi` laTm@BVn}X om- qt rs)~ !uCL vCLwCLy`6 {OP}Q ~eoE_rz yxnCLCLCLCLCLI+HEIrk Iٚ rk uS[ KF r3Cz[ ~#t0y33u} aD3K8sF uD aC3^|^ CLCLCLCLCLOPOPOPCLGH!IG"Z&Z}eW-}fD0^ ^ M=pJ N?DLO@FPACQESaRFQDuSGm4 THFVIg{ XKEzYLD݋[N*n\OZ^Ra_SBU`|@ۘa~wbwfgcvCLCLCLgmh CLCLCLCLmDbn}goa^ CLCLCLCLCLCLCLw~xJ(yN OP{h |]2}n ~])n EG O ~OPV' |CLD;FaEjP1uCLtCL~ t n 5J. 6HOPCL:Zh;R<Q?BPOPCLB BrdC UHD & E VGFUGO{H@: LE MT Nv\ OGnPFШQHRG`TDUEVDJOPECLYGFv ZH JOPLCL]NvW ^O~s QOPSCLaU~ WOPYCLd[C]OPf_^`CLhb icX7eOPkfK2 lgz(mhxffnia ol\pnV= qoP rpRǮ srKN_tsJLutEuOPwCLxyBwyzKz{K }OPCL}IZ~ERD{E\OP~CLBD4K@۶EJnFADKcExEVO^1I oLoAJ0EVS u9NyM4o^ JPEVCLEzOPCL CL CLCLCLCLCLNgG6gNgG _ > _ > CLCLCL CL!CL"CL#CL$]%CL&CL(CL)N@+CL.D-4/CL0CL2B)5CL6CL7CL:OP$;H}%S?Eo{@ DVA!U"OPD#C4/E$E F%D&G&N)Aff+F ,A-_ 0`i1@ 2},l 3m<8 5tz 6s !9CL :CL;CLea- gOPhQFjf/kE/nrN p_qnvLsCLtCLuCLwCLxCL{I)|H9}FrN I{ rN u R̦ s`Cɪzr ~9v9y33u} bTDK]s)~ } aI^y^ CLCLCLCLCLOPOPOPCLG ZHIGhGhG}ept`}fDd^ ^ MpY1 NDNO,F@P-C4Q0SaR2QHS3m T4E V5g( X7EY8D[9T\;\^>bMT_?BU`@@aBv#bCxcDtHGCLHCLICLgLm NCLOCLPCLQCLmUDnX}oY` [CL\CL]CL^CL`CLaCLbCLwe@\xfIygOBOP{h"# |\+}o~] } ED},l ~OPUx= |CLCLF,EG"uCLtCL~i s n+ 5J"Q6H{FOPCL:[L*;Q<Q?B#BOPCLBBUZCT?ZD ES(FWGKH@w, LE MS Nv{ OGquPFӍQHRG].TDUE{VDhOP CLY r Z  OPCL]u ^{LS OPCLa}T OPCLdC!OPf#^$CLh& i'V)OPk*K l+Lm,n-aff oX]ӁpZV q[Q# r\Q s]KHt^Jɓu`FaaOPcCLxeBUZyfSHzgKFiOPkCL}mI~oD>pDqE[nrOP~tCLvBEyDBz@={EW|Jn}F~ADGKcExAEVOI4^LoAJ+gEVOu9MM/Lo^ J_CHCLEzOPCLCLCLCLCLCLCLPgMffYgG _ > _ > CLCLCLCLCLCLCL]CLCLCLN8CLD/CLCLCpi!CL"CL#CL&OP$'Hx%(H&*Rl-CL*0F ,1`2OP.3R 5CL6CL9OP:CL3=p4?A{6B_@7CU8DS9Fb:HX3;I[S3<JXfKOP>LS}5?MEc@NDAOUzPOPDQBEREFSDGTN;Xy2Y@3ZyY[_ b } mJ tU r+ !CL CLCL_Z OPQ^eEq nvLCLCLCLCLCLI'H.2H`ir1 Iw qJ u J nfCzT |$wĉy33uZ cSD KHs T z&f `f^|^ CLCLCLCLCLOPOP OP CLFnHI-Gh\h\}ec}fD^ ^ MWp-~ NZDO[FP\CQ_SaR`Q62Sam4 TbEVcf XfEyYgD$[hc\i\I^ld%_mBU`n@!aqugbrwHcsv#uCLvCLwCLgzm[ }CL~CLCLCLmD+n}go`b5 CLCLCLCLCLCLCLwELxHǮyR)OP{g |\I}qB~]~ E}R ~OPX6 |CLCFE_L;[uCLtCL~Z s n 5J6H^AOPCL:\);OE<Q?B OP!CLB#B1 C$SbTD%~ E'SffF(V(G)PGH*@bp L+E M,S N-v{ O.GsP/FQ0HwR1G1T3DU4EbyV5Dp6OP8CLY:^ Z; =OP>CL]@u ^Bxo COPECLaG{/9 IOPKCLdMCOOPfy^zCLh|' i}Uk~OPkKo lm~n^h o]1pUz qN= rQ sKBtJ5uH!OPCLxBk!yQzK OPCL}I~DCDEQHOP~CLBDQN@EJnF!OADGKUEx[EVO^1ILoAJ%EVK(`u9MM)o^ J_CMICLE{}v%OPCLCLCLCLCLCLCLNg LY Ng G  _ > _ > CLCLCLCLCLCLCL@]ACLBCLCCLDN5FCLID/KCLLCLNCPCLQCLRCLUOP$VHpc%WH&ZM]CL*_F,``jaOP.bR'dCLeCLhOPjCL3mo4nA{6qag7rN&f8s_9vaJ:xY;y^<z\4{OP>Rd?E[@DATOPDB9EDFD#GN3y@y3_A; ^\ky | mYk tj. r !CL CLCL_ OPQfNEh{qˈ έ@npCLCLCLCLCLI%3H& L rs  Ij  q  vbxgcvCLCLCLgm CLCLCLCLmD9n})o`b5 CLCLCLCLCLCLCLw|xJffyNzOP{g |]}q+~]~ E|} ~OP` |CL C# F  E6Nku9CLt:CL<L =t >n 5AJ 6BHDCOPECL:H\;JL4e<LQk?MANOPPCLBRB1 CSR  e_ >  gCL hCL iCL jCL kCL mCL nCL o] pCL qCL rCL tN3 vCL xD-4 zCL {CL }BM CL CL CL OP$ Ha% HЛ& Iҏ CL* F, _ؾ OP. R8 CL CL OP CL3 o4 A{6 R337 B8 U9 a: `3; ^g< c, OP> S]? EN@ DA Uϴ OPD B=E DF DG M z @3 y3 _  c b  |  mYk  tM  r ! CL  CL CL aY  OP Q faF Ep q  4 na (CL *CL +CL ,CL -CL 0I$J 1H 2OC 5qJ  9IH  ;q  n }4o `8=  CL CL CL CL CL CL CLw |x I#y P OP{ g | \} !p/~ #] %0  'ER +} ~ UOP Vv | XCL [C \F ^F aIu cCLt dCL f  hu?}  inP 5 kI6 lH= mOP oCL: r\Xk; uI˔< wQi? xA yOP {CLB }B8PC ~Q+D ~| E SF UG OH @ L E M S N u O GxP FYQ H~R FT D^U E8V E,O OP CLY @Z ~s  OP CL] t ^ u}  OP CLa yN  OP CLd C{ OPf ^ CLh c i Qib OPk KJ l tHm sn _=q o ]Wp Rff q K r O = s K2+t Ju N OP CLx C~y T% z L 7 OP CL} I~ D DQ !E@ "OP~ $CL &CU )D_ *AK +EsZ ,Jn -F/ .A" /D4K 1KU 2E 4x 7EV 8O4 :H ;L >oA @J CEV DPP Fu9 GMg IM Lo^  MJP O[ QCL TEu U{J VOP CL CL CL CL CL CL CL Pg N Y G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL N<| CL D/ CL CL B CL CL CL OP$ HV% H& N4 CL* F, _ OP. RG CL CL OP CL3 o4 A{6 N7 F8 V9 a: X ; _< [ OP> SG? ED@ DܜA Uҕ OPD BΔE D=F D G N { Bs4 | _"  ^b ?  |  mh  t/  rE ! CL  CL CL _  OP HQ IeF JE MqJ  P] Qne SCL TCL UCL VCL WCL [I#a \H( ]Fպ `q  cIU  er#  fwna  gJM  ksc3 nC qz7  sx< tzO wy7L xu  ze |CR }Ku r  vD  aL ^y ^  CL CL CL CL CL OP OP OP CL F H I G' h = h =}e Pl}f fEA^ ^ M p N DO G)\P CQS&RQS)b TEVg( XEYD}-[ \]^a_B#`!C =a"wW b#xkc$u &CL'CL(CLg,m .CL/CL0CL1CLm4Fn7}o9`8= ;CLCL?CL@CLACLwExxFK\yGOHOP{KhDD |u[և}voH~y]{@X}F}I ~OPB|CLDEF$5FaQGuCLtCL@'mtC no 5I)6H8,OPCL:[;G <Qo_?ATOPCLBBFCPD~й EUFW\)GRpH LE MS Nv{ OGz'PFQHkRFTTDKUE)wVEq-OPCLY@Z~OI OPCL]t ^up OPCLax OPCLdCOPf^CLhFv iO7OPkK5 l x=qm vHn a o]f%pU qL) rP sK,tOP@CLxBDyCQ<%zEM^GOPICL}KIb~MDND1OE;POP~RCLTC6]VDnQWAYEZJ[F/\A"]DB^KU_EaxdldEVeOshI3iLloAnJ qEVrLvtu9uMJvMo^ JP^CLExOPCLCLCLCLCLCLCLR N NgG _ > _ > CLCLCLCLCLCLCL]CLCLCLN8CLD2CLCLD%CLCLCLOP$HM%Ho& PI CL*F ,_vOP.R%CLCLOPCL3o4A{6 ]&f7!S8"]g9%aE:'[Fg;(^3<)[*OP>+R?,E:@-DuA.U//OPD0BE1DF2DG3N7y38A9y3:_7 =by> ?|} imv jt!N krz !nCL oCLpCLr`6 tOPvQwfxE5{q }~nhCLCLCLCLCLI HGqˈ ID rz x N pICxBzT xl{y7Lup fqCK=rE x `^|^"CLCLCLCLCLOPOPOPCLFHHGWh =h =}e}f}fE4^ ^ M6pI N8DvO9GO'P:CQ>S&R?Q iS@K TAEVBgň XDEYED[G7(\HY ^Kba_LB*`NDaOvpbPwcRuLTCLUCLVCLgYm5 [CL\CL]CL_CLmbFne}of`F hCLiCLjCLCLCLCLCLw|xJuyN\OP{h |\}n~]@F S~ ~OPy |CLDbF7 FFuCLtCL@tT n=q 5I*6H6[OPCL:[O;H<P?AOPCLBBNCND~7 E[34FV >GWHM LE MS Nv{ O G} P FQ HzxR FT D9UE.VEdOPCLY@Z~OI OPCL]t ^u OP CLa"y $OP&CLd(C*OPf,^-CLh/7 i0Mc2OPk3KrQ l\xQm]vffn^`^ oa]u<pcR\ qdK rfM sgK()thJuiRjOPlCLxnDXyoM"zqMrOPtCL}vI~xD[yDzE4H{OP~}CLC6]D|AEJF>KAҩDQNKUExoEVOBoIZLoAJiEVTWu9M&.M=o^ JBUaCLE{^OPCLCLCLCLCLCLCLPgMNgG _ > _ > CLCLCLCLCLCLCL]CLCLCLN:RCL$D/&CL'CL(CD+CL,CL-CL0OP$1HF%2H&5J(7CL*:Fz,;_VS??WE1@XD}AYUZOPD[B'E\DѼF]DG^M}Bs4AI^_W ai |` m7 t' rk !CL CLCL`x OPQeEq-r nrCLCLCLCLCLIHK>q I r z$ O ofCl{Z w~ky;dup gC7 Jg8rz y7w a ^|^  CL CL CL CL CLOPOPOPCLF|H0HGg"g}ei}fF[^ ^ Mbp NdD-OeGcPfCQiSRjQHSk@TlF"Vnh)\ XpEGYqDo[rSq\s[)^vdx_wB*`zDa{tGb|uc}uǯCLCLCLgmn CLCLCLCLmG6n}o`M9 CLCLCLCLCLCLCLw@34xKyOaHOP{iUV |]Z}qG~]AFFl}T ~OPT |CLDtFYEM9MuCLtCLAB vM n 5I6H4OPCL:"[>;%R|<'Pv?(A)OP+CLB-BUZC.MD/~j E1V(F2VGG3Q\)H4 L5E M6S > N8u O9GP:FiQ;HUREV?E`@OPBCLYD@AZE~] GOPICL]Kt ^Lu6 NOPPCLaRy#; |OP~CLdCwOPf^CLh iV OPkK ltQmrRn] o\pUG qNu rT33 sK$tJuSOPCLxDyKizM[OPCL}I~D~0D8E.{OP~CLC'DSA$ZEdJF[GA:DnQK@Dx:@ OI$LoAJEVPbu9L>Mko^ JPdvCLEu{LOP CL CL CL CL CLCLCLOgO X)G _ > _ > CLCLDCLECLFCLGCLICLJ]KCLLCLMCLON5PCLSD/UCLVCLXC [CL\CL]CL_OP$`H;%aH&dLgCL*jFy,kf0lOP.mSk4nCLoCLrOPtCL3wp 4yA{6{Ff7|u8}QL9a:YFf;\&g<\gOP>Srh?E,b@DAUOPDBEDFDGMzAy^ _@'|C m s rN !CL CLCL` OPQfF"s)~ ؈LjncCLCLCLCLCLI#a H( Oq^ I" s |& M+ q0C_!z[ #v$@E(y?})ua +hq,Cu-J0r]\ 3un 4`f6^vf7^ 8CL9CL:CL7}p~]AnF_n{ ~OPU |CLD@FvErL0uCLtCLBhu oX 5Is6H7DOPCL:[w;R2<PŢ?AOPCLBBUZCL;D~ EV(FXGYH@ LE MS Nv{ OG\PFYQHQRFTDUDVF OPCLY-~# Z.~24 0OP2CL]4u65 ^5u 7OP9CLa;y =OP?CLd@CpiBOPfD^FCLhH O iIXdDKOPkLK. lMymNw nOb = oR\8<pTT qUL=q rVP sWK"tXJuYSZOP\CLx^E2y_S3zaMMcOPeCL}gH ~DoCE-OP~CLC/DA2EVJFiB D|K@Dx@ OILoAJEVLvv;$MkMMo^ JPe7&CLE/{!OPCLCLCLCLCLCLCLOc3G6gYG _ > _ > CLCLCLCLCLCL CL ] CL CLCLN4CLD2CLCLElCLCLCL OP$!H7D%"Hȥ&%Q(CL*+Fm,,fu-OP..SE/CLXCL[OP]CL3`p:04bA{6dYff7eWf8fZg9iaҷ:mZ;n^,<o[YpOP>qRd?rE& @sDAtUuOPDvBMEwDFxDYGyN|y}Afzg^ b|@h|5! m sl r@3 !CL CLCLb. OPQ=f--Fbs pѷno1CLCLCLCLCLI+H& IMq^ J33 tz } R rfCTz w6I@xRyGua iBJrN y a  ^|"^ #CL$CL%CL&CL(CL+OP,OP-OP/CL2F4H 5H6G?9`O\<`O\}eS}fG^ ^ MTpvS NVD&OWH`PXD1dQ[SRPtSo7 TG]gVjt XE%YDwV[\\^e3_B@`Dau.bw >cu CLCLCLgmS CLCLCLCLmGjrn}4obn CLCLCLCLCLCLCLw}xF)yNǮOP{l |[d}k~]AfF {Z ~OPWЊ |CLDFEwJSuCLtCL B vc  o 5Is6HDOPCL:\d;P<P?AOPCLB BcC!K8D"~s ELVGFMV(GNR34HO@ LPF{ MQS NRv{ OSG/PTFQUHD-RVFkTWDUXDVYF~ZOP\CLY^},l Z_~ aOPcCL]eu ^fu hOPjCLalz7 nOPpCLdrCSctOPfv^wCLhy~ izW Q|OPk}K l~ymxQnaff o[pU qK\) rO sKtJuTPOPCLxEyQvzNtOPCL}H~DfC(E,OOP~CLCZDVA2EdJFiBEDSK@Dx`EVOsI=LoAJEVTsAvC M[M o^ JPeWCLE}M } Z!OP#CL$CL%CL&CL'CL)CL*CL-O3.E/Ng0G 1_ > 2_ > 4CL5CL6CL8CL9CL:CL;CL<]=CL>CL@CLAN.CCLFD0GCLHCLJD|MCLNCLOCLzOP${H=%|H2&~LsCL*Fhm,f UOP.SCLCLOPCL3p*4A{6Z&g7Ws38Z9a:Zy;^<\4OP>R?E@DEATOPDCfAEDFDGMyAzg_&z ]@|& m s r@3 !CL CLCL`x OPRfNFs {n}CLCLCLCLCLI2H3Gymq IY t  ~  K  pCJ$z x@ByGCua Ejm)FBGK4Kr1 Nwf OaiP^|Q^ RCLTCLUCLVCLWCLZOP[OP]OP_CLbFcH dIfGiglg}ee}f H^ ^ Mp NDOHLMPD^\QSRPSo TG*Vk XEYDm[T\Wx^cƕ_B@`Coavbw4cv34CLCLCLgm CLCLCLCLmFn}goc CLCLCL CL CL CL CLwyxGyO#OP{m33 |[J_}k~]A FtX#{ ~%OP(XTF |*CL-D/F'0F3Pu5CLt6CL9B:vD ;p > 5=Iڊ6>HP?OPACL:l\(;oMQ<qPV ?rA9sOPuCLBwByCxODy~j E{VGF|W=qG}VHH~@R LE MT Nv\ OG\PFQHCsRF TDUDaVFOPCLY|R8 Z~24 OPCL]u} ^vW OPCLazr OPCLdCpiOPf^CLh~ iUoOPkK l|ffmx=qn` o[pU3 qN3 rQ\ sK%otJuSOPCLxEWyOlzN+OPCL}HVF~D\CE';OP~CLCDDAAhEJFxCBEDKE x}4EV5Os7H8L;oA=J@EVAQDv EMFM Io^ JJPLftNCLQER}SOPUCLVCLXCLYCLZCL[CL\CL_Ng`LaXbG c_ > e_ > gCLhCLiCLjCLkCLlCLmCLn]CLCLCLN8CLD/CLCLBnCLCLCLOP$HC%Hy&ICL*Fe,g&OP.S@CLCLOPCL3p34A{6N7B8Q&f9ad:_f;]fg<cs3OP>SK?E@DtAU2OPD DE DF DG NV z@ @ y3 _  bY @ |  m  sF  r# ! CL  CL CL b  OP R f\ F^. #srb  %?O &n (CL )CL *CL +CL -CL 0I; 1H-J 2J 5q  `I  bt4  c~s  eQ  hnf kCB nz  pw qA2 tyG uua  xk_C yB? zIV }rs  v"  a3 ^| ^  CL CL CL CL CL OP OP OP CL F H  H G hQ hQ}e %e3}f9G^ ^ M q N DO HO'P DxyQ SaR PS n T GWV k X ENY Dj[ T\ ^4^ bX_ B@` C9 a uRb wHc t4 CL CL CLg )mI  +CL ,CL -CL .CLm 1FF n 5}o 6cj  8CL 9CL :CL ;CL K GSCu CLt CL B vi  p 5 Iع6 HRw OP CL: \; K2< P-? A| OP CLB B+C UD ~- E SF UG K=qH  L FQ M T N w > O GP F%Q HVR F T CU DѸV FxC OP CLY }R Z ~  OP CL] v4 ^ v4  OP CLa z$  OP CLd Cpi OPf ^ CLh ~ i S~ OPk Kv l zm y33n ` o [p XH q N r S s K)t Ju S6 OP CLx !EVy "Mz $N1 %OP 'CL} )H@~ +DWX TC UE!m VOP~ XCL ZCD ]DX ^AAh _E `J aFxC bB) dDV fK iE kx" nEV oO^1 qIu rL uoA wJ zEV {Lv }v4 M4 Mz o^  JP fe CL E/ }  OP CL CL CL CL CL CL CL Qg G6g Pg G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL N1 CL D. CL CL A CL CL CL OP$ HC% H& Le CL* Fe, g OP. SV CL CL !OP #CL3 %p4 'A{6 *Rg7 +Pff8 ,T&f9 /a+: 1V4; 2ZFg< 3Y 4OP> 5R4? 6E@ 6DA 7T- 8OPD 9E@E :D-F ;DG MTz Nc\* OG PF7QH3RGTCPUD@VFz OP"CLY$}R Z%~24 'OP)CL]+uZ ^,u} .OP/CLa1z 3OP5CLd7Cpi9OPf;^ O i?QuAOPkCK lD{GmEzznFa( oI[^pKV\) qtP# ruQ svK()twJuxRNyOP{CLx}ETy~K9zM'1OPCL}HVF~DMhCE.OP~CLB DAOEsZJFxCB8PDKExnSEVOPPIMLoAJEVT iv7$Mk}Mo^ JPf CLE{}} OPCLCLCLCLCLCLCLNgL3PgG _ > _ > CLCLCLCLCLCLCL]CLCLCL N+ CLD.CLCLBM=CL>CL?CLBOP$CHC%DHM&GPlJCL*LFb,MfNOP.OSQCLRCLUOPWCL3Zp!T4[A{6^V@7_W&g8`X49ca:eY;f[g<gZ4hOP>iS?jE@kDtAlTmOPDnE,EoDEFpDLGqNt uC3w _ J b@e{a m s r !CL CLCL` OPRg#YF7 s T `|An~CLCLCLCLCLIKRH'Oq I3 tY  L/ pC8z$ v3,B% yG uS[ m7 BILq yH a3^|^"CLCLCLCLCL#OP$OP%OP'CL*Fo,H -I.G?0{31{3}eLX}f G^ ^ Mqp NsDOtH0~PuDQxSқRyP1S{n T|GV}k XEYDSS[L\W@^e_BN9`BnawHb{>cvCLCLCLgm CLCLCLCLmEn}4ocӅ CLCLCLCLCLCLCLwBfxGyO#OP{mwx |[}o ~]@FF*~ ~OPUx= |CLDFEVIuCLtCLBua p;e 5I6HB$OPCL:2\;4G(<6P'[?7Ah8OP:CLB~- E@OFAQGC| HDŝ LEi MFxNGY OHGPIFQJH0RKFTLCUMDVNFpKOOPQCLYS}R ZT} VOPXCL]ZuD ^[tz ]OP_CLaay cOPeCLdgCpiiOPfk^CLh O iOOPkKN l\)m~ffn` o[pSH qP rO= sK)tJuQOPCLxEyS3zL&OPCL}H~DBCEaOP~CLBɀDA^vEVJFBUZDXKExEVOW@I"7LoAJEVR5 u9 Mf M o^ JPfCLE~OPCLCLCLCLCL CL!CL$Q&F'Pg(G )_ > *_ > ,CL-CL.CL/CL0CL2CL3CL\]]CL^CL_CLaN(EcCLeD/gCLhCLjCZmCLnCLoCLrOP$sH@T%tHÕ&vLZyCL*|FY ,}g ;~OP.SCLCLOPCL3p4A{6Yٙ7WL8Y9a:^;`s4<e34OP>S?E@DtAU|OPDEEDFDGN07}2B},_ av@BV{ me srb qJ !CL CLCLbb OPQ1f E~:r n"n~CLCLCLCLCLIPH H0q^ &If (t ))b *R̦ -r0C/3zcz 6t7Buq:yC;uS[ =n _>B$?JBqˈ Fvs3 GaPH^|I^ JCLKCLLCLNCLOCLROPSOPTOPWCLZF`I[H \H]Gh{h{}eS'O}fGm^ ^ Mq% ND_OGPDQSiRPSn TGNVj XEzYD][)\^d^e_BN9`Bawby*cvCLCLCLgm CLCLCLCLmEHn}yoc CLCLCLCLCLCLCLw}xJy N OP{k |[ɧ}oΩ~]@mF&t{/9 ~OP WD |"CL%D &FQPESKguUCLtVCLXB%Zv > [pfg 5]IƏ6^H9_OPaCL:d[>;eFY <fPFK?gA,hOPjCLBlACmR5Dn~s EpUpFqSGGrEHs Lti MuyNvY OG9PFQH8RF TCUDVFYOPCLY} Z}: OPCL]uD ^tM OPCLay# OPCLdCi(OPf^CLh O iMOPkK_ l|{m{n`0 o[pR qLL rN sK'@tJuPOPCLxF(yQzKEOPCL}H~D8CώE4OP~CLC DY!A^v"E#Jā$F%BF&D(K+E.x1EV2OBo4I@5L8oA:JS=EV>Lv@v<AMSBMMEo^ FJPIg&uKCLNEO} ZPOPRCLSCL|CL}CL~CLCLCLNgK4Xf_ > _ > _ > CLCLCLCLCLCLCL]CLCLCLN,CLD/CLCLCCLCLCLOP$H2%H!&HCL*FS,g7QOP.SCLCLOPCL3p4A{6Zs37L8Yff9aJ:Y;\ff<[yOP>Sn?E0@DAUOPDEEDFDqGNOAxA#3z,_Ku  _)E @9q {H  m sc q !CL CLCL`x OPR,fDF~Gr IJnnzMCLNCLOCLPCLQCLTITfUHXWF˕Zq^ ]Iww _tz ` O aK dsgC'kz7 mtnB>qyGruS[ tn5uBp+vJ7zq^ }u ~a0^|^"CLCLCLCLCLOPOPOPCLFW<HIGgg}eIi}fXG^ ^ Mp ND;OGpPDGQSRPS n$ T F!Viz XEYDZ#[)\V^bC _BUU`A2au\*bwW cuR CL!CL"CLg$n% &CL(CL)CL*CLm-Es[n0}o1b» 3CL5CL6CL7CL8CL9CL:CLw=u\*x>G{y@R34AOP{Dj |F\;Z}Glg~]@_C F_ {/9 ~OPW[o |CLDFFM$uCLt CL"B #u $pc 5&Ib6'H4(OP*CL:-Z;0Rm<2P?3A4OP6CLB8A"C9QD:~j Ed]zFeQGfNzHgu Lhi MjzHNkZ=q OlGPmFQnH#RoFTTpCUqDEVrFsOPuCLYw}h Zx}I zOP|CL]~uS[ ^tj. OPCLayl OPCLdCZOPf^CLh O iSOPkK l|ffmyna o[`pQ{ qK rNff sK%otJuPOPCLxFyMxzKtOPCL}H~D-CEzOP~CLB DAlEVJāFBFDYKExEVOyIŦLoAJ EVT-u9.MC]/M 2o^ 3JP5fY7CL:Ey;}ǣ=OP?CL@CLACLBCLCCLDCLECLHRPIG6gKPgL_ > M_ > N_ > PCLQCLRCLSCLTCLUCLWCLX]YCLZCL[CL]N07^CLaD0cCLdCLfC.CLCLCLOP$H)%H&P#CL*FP,g0/OP.SWCLCLOPCL3p14A{6d347F 8T&f9b:V4;Z<Y33OP>SU?E @DAUI,OPDCzED}FDAGMyY@yg_3 b%@ { m sU: q !CL CLCLb  OPR fg EbrN niCLCLCLCLCLIQH G q #I %t '~' (Q +qff.CYz7 [tM*\C+_yGauD codAeK!hq kn] laLm^|o^ pCLqCLrCLsCLuCLxOPyOPzOP|CLFN0HgHIGHgg}eh }f"G,^ ^ MpY1 NDOGPD71QSRPSnn TFPVh2 XE%YDQ`[ݱ\_ZP^bY_BN9`AatbvaHct8RCLCLCLgm CLCLCLCLm EQn#~o$a &CL'CL(CL)CL+CL,CL-CLw0ux1IaHy2N\)3OP{7i33 |9]_}:nج~<^>@;@F |Czr ~FOPITp |KCLNDOF|PETH)uVCLtWCLYA6[t\) o 5I|6H(OPCL:Zh;RQ<O?A$OPCLBACOTD~ ER\FQ\)GDHY Lg34 Mw >NXQ OGPFQH RFTCUDVFOPCLY}R Z| OPCL]tz ^s OPCLax OPCLdCaOPf^CLh~ iX3OPkK ly\)mz{na o[^pP qJff rLf sKVtJuP}OPCLxETy K=ez K  OPCL}H ~D&CEOP~CLBDZA{EJ F?!BUZ"DMKPERx4UEVVOPPXIKYL\oA^JaEVbRdv,eL0fM jo^ kJPmgoCLrEjs{etOPvCLwCLxCLyCL{CL|CL}CLNgKYg_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLN8'CLD0CLCLDCLCLCLOP$H%H<&NCL*FN0,f/OP.RCLCLOPCL3p}4AH6[Y7Jff8T9b:_;^`<bfOP>S˲?E @DAUOPD C$E!D F"DqG#NI'}(B)},*_> -]/ 0{/ 1n 2s8 3q !6CL 7CL9CL;`S =OP>R' ?f0@Ea;Cr1 EGn[IICLJCLKCLLCLMCLxIM#yH{IM~q3 I srb ~s L] nyCRz)B teCCyGu65 pB DJFq v aS3^|^"CLCLCLCLCLOPOPOPCLFIHHIG{gHgH}eEch}fYF^ ^ Mo NDjOG/PDQ SR P1S n0 T F2Vh XE3YD>[\X33^cZ_BUU`BAaCvQbDxǯcEt8RGCLHCLICLgMmE OCLPCLQCLRCLmUE,nX~)oYa \CL]CL^CL_CL`CLaCLbCLwfz >xgH yhM{iOP{li"# |n\#}op}~q^t@+vF y{= ~{OPSy |CLCFFDEzQuCLtCLAĜs op 5I6H_OPCL:[O;P<P]?AlOPCLBAt@CN]D~ EU{FQzG}G H!A Lg34 Mv{NXQ OGJPF{QHRFTCUDVF7OP CLY }; Z | OPCL]s ^s T OPCLax+ OPCLdCZ!OPf#^%CLh&~; i(W *OPk+K l,HGm-IGn.ak o1[p3Q = q4JR r5NG s6Klt7Ju8OV9OP;CLx=Ey>T2z?JAOPlCL}nI~pDrqCrE4sOP~uCLwC yE zA{|E}J~F?BcDZKExEVOlILoAJEVLvv.[L4M o^ JPgzCLE/{\OPCLCLCLCLCLCLCLNgG6gYf_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLN,CLD0CLCLC.CLCLCLOP$H%H<&I˔ CL*4FJ,6g6OP.7Rf9CL:CL=OP?CL3Bp4DAH6F`f7GZ8Hfs39Kb:MX;N\4<OYgPOP>QSy?RE@SDMATUUOPDVB{EWDFXDLGYNr\~9^C _}ٙ`^$ cbd@e{ fn0 gs)~ iq^ !lCL mCLnCLaj OPRM:fSFrn n]kCLCLCLCLCLIM#G Kq Iȉ s)~ ~@ PE oC{ t^CͭyCuD qAJ_Cqt u al ^| ^  CL CL CL CL CL OP OP OP CL FG GV HI Gz gH gH}ecB}fG^ ^ M 7pg N aDO bG2P cCQ gS7R hPS in% T jFHV khE X mE)Y nD*p[ pp\ q\^ tdX_ uBUU` vAZ#a xuǯb yxc {s* }CL ~CL CLg m  CL CL CL CLm En ~Po a^  CL CL CL CL CL CL CLw {zx I34y P > OP{ i | \}$} p'~ ^   Eg B5h~ OP Sn | CL C F) E` Fƛu CLt CL A t  o\ 5 I&6 G OP CL: \; N < P? A= OP CLB AAhC MqD (~k E *U{F +VG ,IH -! L .g34 M /v{N 0XQ O 1GP 2F}Q 3G R 4FT 5CU 6DV 7Fk 8OP :CLY <}; Z =|&  ?OP ACL] Cr ^ Dq  FOP HCLa Jv  LOP NCLd PC. ROPf T^ UCLh W~ i XU ZOPk [K l \Km ]M\)n ^dY o a[Bp cP q K r LǮ s K <t J3u Px OP CLx EZy Pԃz J3 OP CL} IE~ D C7 EN OP~ CL C' EZ A  EV J F? Bc E  K E x EV Oe! IЍ L oA J EV Rz v+) L M  o^  JP g". CL Ert {B OP CL CL CL CL CL CL CL Pf Lg Yg _ >  _ >  _ >  CL CL CL CL CL CL CL ^ CL CL !CL "N1 $CL 'D3 (CL )CL +CZ VCL WCL XCL [OP$ \H% ]H& _O@ bCL* eFH, ff_ gOP. hR jCL kCL nOP oCL3 roK4 tAH6 wm7 xNs38 yTs39 {b h: }Z; ~^g< ^` OP> R? D@ DA U OPD EzE DvF DG M A@ E AS3 _ J  ` b  {  n0  s T  q3 ! CL  CL CL `P  OP RC e E8 r  Ӕ9 nd CL CL CL CL CL IO G O/ q  JH  r  ~  L]  qf Cy z?  sN D/ #yG $u65  &r{G 'A8 )J# ,qV  /rH  0ac3 1^| 2^  3CL 5CL 6CL 7CL 8CL ;OP =OP >OP @CL CFCU DG EH GGv9 I{f J{f}e P}f F/^ ^ M p N DpO GP DkQ S7R PS nQ T FW`V h2 X E\Y D33[ p\ X7x^ d>_ B\r` APga ub w8Rc sp CL CL CLg m_  CL CL CL CLm En ~go a  CL CL CL CL CL CL CLw zHx Hy M OP{ i | \} mhg~ ^ Ș  Eڶ {w ~ OP W/ | CL C F- E) Mu CLt CL A t  o\ 5 I@6 G- IOP KCL: M\; PK< RPҕ? SA  TOP VCLB XA$ZC YL%D Z~E E \T F ]XQG ^G(H _~` L afR M bv{N cW O dGP eFQ fHKR gFT hCU iD{V jF kOP mCLY o}R Z p{  rOP tCL] vrn ^ wq  yOP {CLa }vW  OP CLd C OPf ^ CLh ~ i T H OPk K l P33m Q\)n b0 o [J<p S q M. r N s Kt Ju O OP CLx Edy MWuz J OP CL} IiN~ D C7 E OP~ CL B E* A  E J F Brd EZ KExEVOyIaLoAJk"EV#RJq%v;$&L'M *o^ +JP-h/CL2Eu3} Z5OP7CL8CL9CL:CL;CL E_ > F_ > HCLICLJCLKCLtCLvCLwCLx^yCLzCL{CL}N.CLD2CLCLDCLCLCLOP$H%H&O/CL*FG,fzOP.RCLCLOPCL3oY4AH6W&g7Mٙ8T9b:W;\&g<XfOP>S?Dn@D>AUOPDIED7FDWGNc~fC33~_ `]@ { n4a r q !CL CLCL`' OPRffFrE { no CL CL CL CLCLING%I;>qt BK; Ds E} FKr IrfLC Oz? QsYHSDMVyGWu65 YsR0ZA_[KR^qHF am caFfd^|e^ fCLgCLhCLjCLkCLnOPoOPpOPrCLvFAwGHGuQYY}eW}f G.^ ^ Mp NDOG=PDQSқRPSn TFVVhԁ XE9YD<[ӱ7(\Z^eU_Bc`A<aukbvctCL CL CLg m CLCLCLCLmEn~oa CLCLCL CL!CL"CL#CLw&|\x'J4y(OaH*OP{-j |/]n}0mV~2^4 6E:| ~F@BrdAE*CKD@DExmF@ IOe!KHLLOoAQITEVULvXu9YLkZM\]o^ ^JBU`gbCLeEf} ZgOPiCLjCLCLCLCLCLCLNgG6gPg_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLN3CLD/CLCLCCLCLCLOP$HG%H&LCL*FH,fLOP.RCLCLOPCL3o4AH6Zg7Pٚ8Uf9 b: ^3; \33< `&f OP>S=?D@D%AUzOPDJ2kEDFDLGNOAz@yl^ !bX"@0#{ $n4a %r+ &q !)CL +CL,CL.at 0OP1Rr2e3E^s T abnidCLeCLfCLgCLhCLlIHmG=nFqqt tJb" vsc w}R xRW |r3C zr tDUyGu65 tCAKZq+ lw `f^|^ CLCLCLCLCLOPOPOPCLFE$GHVGShh}eag\}fwG)^ ^ Mq|} NDOGPD)iQ$SaR%PS'n`* T(FV)i8V X+EY,DA[-7(\.Xx^2e_3Bj`4Aa6w{b7y*c8u:CL;CL=CLg@m BCLCCLDCLECLmHDnL~oMb OCLPCLQCLRCLSCLTCLVCLwYxZJ4y[NǮ\OP{_j |\U}q L~^ E}I ~OPY |CLCF^.F4IuCLtCLAw\) o^6 5Ir6G OPCL:\;HK}<Pi?A OPCLB@CS D~E EOFUpG| H~ Le Mt(NW\) OGPF˕QH#RFFTCUDtVFDOPCLY~ Z{Z OPCL]rz ^p  OP CLa u' OPCLdCOPf^CLh~ iOOPkKN lMzm Nn!c o$[pp&R q'M rPO8R sQJtRJuSPDUOPWCLxYE*yZRW1z[Jm]OP_CL}aI~cDsdCeD3fOP~hCLjB+mEGnAoETpJāqFrBsE9[uKv@Dxxy@ |O^1~ILoAIEVQu9M(M/o^ JBUg#CLEy} OPCLCLCLCLCLCLCLQɚG6gYg_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLN1CLD-4CLCLBcCLCLCLOP$HX%H&H"CL*%FLa,&fCM'OP.(R*CL+CL-OP/CL32o44AH67Z&g78O3389Z&g9;b%:=X;>\ٚ<?ZY@OP>ASXz?BD=@CD%ADUrEOPDFEh{EGDFHDGIN+)M}2NClO~&fP^A S^|@K;~{ nQ r+ qt !CL CLCL_ OPRfzEs xntCLCLCLCLCLIDHH4qes KU s } Jx n#3C zF^ uqDfSyGu' umA Jq v a9^|^"CLCLCLCLCLOPOPOPCLFN0GFHYG] iH iH}ed}fF]^ ^ MOq NRD$OSGPTD1dQWSRXPtSYn% TZFV\i X^E=Y_DW7[` \a\^dd_eBj`gA Daiuzbjx\*cktmCLnCLoCLgqn0 tCLuCLvCLwCLmzDyn}~o~bY CLCLCLCLCLCLCLwxKLyNkOP{kfg |\}mC8~^ E| ~OPY>k |CLDFmeF:Q'uCLtCLAvk o 5Iq26GOP CL:[(J;Fu<P>?@OPCLB@CT=D~=J EO\FU\GDH~ L eG M!s34N"VH O#GP$FQ%GnR&FnT'CU(DveV)F*OP,CLY. Z/z 1OP3CL]5s ^6p- 8OP:CLaOP@CLdBCμDOPfF^GCLh O iMOPk Kb l O33m On d# o[BpT{ qP\ rO sJ!tJyuPOPCLxEyPzJ OP"CL}$I ~&C'CP(Ds)OP~+CL-B/EV[1A2E3Jā4F5B6EG8K9@D:xeEVgOliICjLmoAoIrEVsRruv?"vM:>wMzo^ {JBU}h2CLED} ZOPCLCLCLCLCLCLCLNgLYg_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLN,CLD/CLCLByCLCLCLOP$H%Hr&PICL*FUm,fOP.RCLCLOPCL3o4AH6\ff7Qf8e@9b-k:W;\<,ZY-OP>.S?/D@0D>A1Vq2OPD3CE4DF5DG6NH 9y;@4OPf6^7CLh9 O i:S _ > _ > CLCLCLCLCLCLCL^CLCLCLN3CLD2CL CL C: CLCLCLOP$H%H&NCL*Fb,f^kOP.R'!CL"CLMOPOCL3Roo4SAH6VZ&g7Wc8Xd349[b12:]a;^`<_b`OP>aS6?bE7@cD>AdUueOPDfC<*EgDFhD~GiN9l@mDٚo@p^` s\ݒt@eu{ vnn wrn xq !|CL }CL~CLb  OPS^e$TEs8 #n3CLCLCLCLCLIEHJqt J&f s ~ Sm n|CzT u3yDGyGu v@v6Ip ns3 ac3]3^ CLCLCLCLCLOPOPOPCL"Fy$G%%Hu&G)h =,h =}e`}fF+^ ^ MGq|} NIDOJG PKD.QNSaRxP;Sym TzGV{j9 X}EQY~D[\`N9^cH_Bx`@ۘauLbw{ct(CLCLCLgm CLCLCLCLmDn,obn CLCLCLCLCLCLCLwAW xHkyN>OP{k |\ }l~^F_ Ee|5! ~OPY>k |CLD=FpKF4&NVAuCLtCLA޹u p( 5Il6GҥOPCL:Zg; R< P`2?@OPCLB@rCR3D~& EYffF@U34GAOHB~ LCeG MDr=qNEVH OFG'PGF QHGRIF"TJC_UKDVLFMOPOCLYQ@AZRz TOPVCL]Xsrb ^Yr [OP]CLa_v- aOPcCLdeC>gOPfi^jCLhl imXoOPkpK lqOffmrO nsa ov[(8pxTH qyQ rzS sJftJKuROPCLxF7 yRB~zJOPCL}I~DsCIDOP~CLC/EdAF!OJāF:BnEV[Kc@-xR@ OIbLoAIEVQov*]M<M o^  JP gkCLEv}@OPCLCLCLCLCLCLCL R3!G6g"Pg#_$_%_'CL)CL*CL+CL,CL-CL.CL/^0CL2CL3CL4N-S6CL9D3;CLR?E@DVAU;OPDCZEDWFDGN33C~f^ bC @w{ n}[ rn qV !CL CLCL^j OPR<fsFNs 0 n CLCLCLCLCLIDH Jqes J t!N ~OI J o C/zT  upf D5yG6u 8wn9@;J>pӖ Au BaC3C^9D^"ECLGCLHCLICLJCLMOPOOPPOPRCLUFVG=WH`YFn\gR_gR}ec0R}fG^ ^ MqP NDgOGqPD?,QSRPSnB TGV Vj\ XE%YDJ[L\W^cZ_Bx`@ۘaubwGcs\CLCLCLgm CLCLCLCLmD?n~goc CLCLCLCL CL CL CLw |34x I{y Mu OP{ l | [_} l?~ ^ 7  Ek {H ~ OP V | !CL $D:5 %F" &FL )I$ u ,CLt -CL /A޹ 0u  1p 5 4Ij6 5Gҥ 6OP `CL: b[.; eQ?< gP6? h@ iOP kCLB m@C nQrD o~5 E qR{F rU34G s} > H u~ L vd M wr=qN xVff O yGP zFhRQ {GoR |FZT }C U ~DV FШ OP CLY @4Z z[  OP CL] s ^ r  OP CLa v  OP CLd Cμ OPf ^ CLh 7 i WF OPk K l LRm Lpn `J= o [Bp S q MB r N s Jft Ju R6* OP CLx Fy Rz JZ OP CL} Jw~ D9 D2 DF OP~ CL CZ EsZ A" ET Jā F: B Ed Kc @I y&5 @  )OW@ +IR ,L /oA 1I 4EV 5S  7ve 8M1  9M  Sv? E#P@ D A U OPD C*E DF DG N  @33 D @ ^  `z @h {  n  r  qV ! CL  CL CL `  OP S7 d E' t!N   n CL CL CL CL CL #I= $H  &JQ )qes  TID  Vt4  W~  XO  [n| ^CO bzcz  du_e eD+ hyG iu  kx. l@O mJ qp  tlf  u`f v\ w^  xCL yCL {CL |CL }CL OP OP OP CL F G HM F i33 i33}e d_}f /F(^ ^ M p N DO H";P DZQ SR PS nn T GV kH X E/Y D[ K\ ]J^ eB_ B` @Ta vBb xc u CL CL CLg m  "CL #CL $CL %CLm (DɁn +~4o ,c|  /CL 0CL 1CL 2CL 3CL 4CL 5CLw 8@x :HRy ;P8R (S>?)E9@*DA+U,OPD-FE.DF/DG0N; 4x5@36zg7^E :`c <@O={ >n ?r @qV !CCL DCLECLH`EA JOPKStf6tuFcxtY z\{nȿ~CLCLCLCLCLIB>HKqt I v  O LĞ oC{z vYDZyKu' x@4J(Kp n3 af^y^"CLCLCLCLCLOPOPOPCLG*#G۵H>F g=qg=q}ezeP}f FM ^ ^ Mp NDeOHCPDQ>SXR?PS@}f TAGVCk XEEYFE[G\H[.^Kdw_LB`OAaPtbQw >cRsaHTCLUCLVCLgZm \CL]CL^CL_CLmbE 8ne~4ofdN iCLjCLkCLlCLmCLnCLoCLws@xtH=qyuPvOP{n"# |[ .}m~^ Ezu ~OPVb |CLCFE~NݪuCLtCL@LJt pc 5Ii6GOPCL:\$;La<P?@DOPCLB@COɖD~C ETzF TG |\ H ~D L dQ M r=qNVff OGXPBQGRF>KTDUEVGUOPCLY@Zz OP CL]"sF ^#r %OP&CLa(v *OP,CLd.DG0OPf2^3CLh5' i6TT8OPk:K l;K\m _ > _ > CLCLCLCLCLCLCL^CLCLCLN)CLD*|CLCLD2CL3CL4CL6OP$7HV%8Hr&;J>CL*AG .,BeCOP.DS`ECLFCLIOPKCL3No4PAH6RX7SI8T]&f9Wb@O:YWg;ZZg<[X9\OP>]S?^EK6@_DA`UaOPDbH@EcDFdDGeNUh}@jB3k},_=L a@6{/ n$ rE qV !CL CLCL` OPSWeFt4 NnCLCLCLCLCLIEHO'q JU vI  K qC>z v6D܅yKu' yI@9Jp<  y  ` ^y^"CLCLCLCLCLOPOPOPCLGJ GU!H3"F${%{}eBƝ}fE5u^ ^ MhpvS NjDOkH$^PmDQpSXRqPSr TsH>VtlH XvEIYxE![y\zX"^}bMT_~B`Byau=qbvcrkCLCLCLgn% CLCLCLCLmEn~oe, CLCLCLCLCLCLCLw{ xF\yMOP{n |[M}o~^@PF>zu ~OPV |CLCGEETI_euCLtCL@}qu?} p" 5Ig56GOP%CL:(\ ;+Jy<-Pm?.@E/OP1CLB3@C4ND5~ E7YffF8RpG9|Q H:~ L;dQ M '_ > P_ > RCLSCLTCLUCLVCLWCLYCLZ^[CL\CL]CL_N3`CLcD)eCLfCLhBykCLlCLmCLoOP$pHh:%qH+&tI"wCL*zGH,{f}|OP.}Su~CLCLOPCL3o4AH6Rg7R 8^9b4:V;[S3<Y3OP>S??EU/@DAUOPDFlED FD~GNZy3Ay_9 ^0@{/ n r qV !CL CLCLat OPSZfDFtt!N hn6CLCLCLCLCLIB>H(NR q3 #I &wl '@u(Q +q .C1zr 3vd4D.8yG9u65 ;y<@B=J@p Cqٚ Da)F^|G^ HCLICLJCLLCLMCLPOPQOPROP|CLGc3G=H F{{}eOoo}fEU^ ^ Mp NDOHj@PDQSRPS THcMVl XF3YEE[8\`?^c_B`C5atbw(cs34CLCLCLgn CLCLCLCLmFn,of CLCLCLCLCLCLCLw{ xJyOOP{ o |Zy}lt~^@3FBz ~OPFV |HCLKCFLGeNE,QP uSCLtTCLV~5@ Xuv Yo 5[Ied6\G]OP_CL:b\c;eHӻ<gPϴ?h@iOPkCLBm@CnMDo~- EqQ FrRGsGHHt~ LudQ MvqGNwU OxFP{~s Q|G0R}FLTD2UE1VHOPCLY@`2Zzr OPCL]s ^tU OPCLax OPCLdD4KOPf^CLh iOOPkK lKmJnc. o[`pT qNk rNǮ sJitJzuQ,OPCLxF/yKzL= OPCL}J~DE DOP~CLCi(EWA/ETJā F5!Bɀ"E$K'E)xĞ-EV.Oe!0I'1L4oA6J=9EV:POMAo^ BJBUDheGCL#E#} Z#OP# CL# CL# CL# CL#CL#CL#CL#Ng#G6g#Pg#_ > #_ > #_ > #CL#CL#CL#CL#CL#!CL#"CL##^#$CL#%CL#&CL#(N*p#*CL#,D*|#.CL#/CL#1Ci(#4CL#5CL#6CL#8OP$#9He%#:H&#eQ5r#hCL*#kGn,#lf6#mOP.#nR'#pCL#qCL#sOP#uCL3#xoa4#zAH6#|R7#}Cg8#~Yٙ9#b):#Wg;#\<#Yf#OP>#S}5?#EgR@#D-A#U}#OPD#D)iE#D}F#DG#N#y #@#y#_ . #bk#@4#{/ #nT #r #qV !#CL #CL#CL#_= #OP#SuI#e͈#Fv#s #۠B#n+#CL#CL#CL#CL#CL#I?#H@#MZz#q3 #I #w4 #@#Kce #o3#C#zcz #v#E*#yK#,u65 #.zi#/@^#0J)#3p| #6vw #7af#9^|#:^ #;CL#CL#@CL#COP#DOP#EOP#GCL#KGO#LGU#MHw#NFq#Qhp#Thp}e#j}fVCR^ ^ M#pg N#DeO#HbhP#DQ#SaR#P~S#@-ST#HKV#lV X#E!Y#Eb[#\#W^#dR_#BU`#Da#vQb#xc#s#CL#CL#CLg#n, #CL#CL#CL#CLm#G7n#o#e #CL#CL#CL#CL#CL#CL#CLw#|px#Iy#Q#OP{#n33 |#[^d}#l!~#^#AM# Fh# z ~#OP#XA |#CL#Cר#GF#E#Fuu#CLt#CL#!~ #"u& #$o- 5#&I_6#'G\#(OP#*CL:#-[;#XGV<#ZPn?#[@r#\OP#^CLB#`@rC#aL;D#b}7 E#dO\F#eRpG#fD >H#g~ L#he M#iuN#jW\) O#kFZP#l@`2Q#mGR#nFBT#oDPmU#pEOxV#qHzx#rOP#tCLY#vK Z#wzr #yOP#{CL]#}t[ ^#~u ~ #OP#CLa#x #OP#CLd#D%#OPf#^#CLh# i#M #OPk#K l#K=qm#In#a o#[Bp#S q#Mk r#Np s#Kt#Ju#P[#OP#CLx#G;y#Kz#LnA#OP#CL}#J~#D#E=#D#OP~#CL#Cp#EW#A#F>K#Jā#F5#Bɀ#EW#Kc#@;#x~#@ #Oy#I#L#!oA##J#&EV#'Lv#)u[p#*Ny#,M#/o^ #0JP#2im#4CL#7E#8{\#9OP#;CL# #I_ > #J_ > #LCL#NCL#OCL#PCL#QCL#RCL#SCL#T^#UCL#WCL#XCL#YN. #[CL#D/#CL#CL#DB#CL#CL#CL#OP$#Hc%#H&#MW#CL*#G,#f#OP.#S6#CL#CL#OP#CL3#o4#AH6#XY7#\@8#d349#b12:#V`;#]<#Zٙ#OP>#S?#Eyv@#DA#TϏ#OPD#DE#DF#DG#N#CY#G#Cf#^ #\\#@#{ #n #r #qV !#CL #CL#CL#a>' #OP#S[\#e#FW#tY # |# n#CL#CL#CL#CL#CL#I<#H@#K#q #Jw # x #!A^v#"M+ #Nr9#QD#Tz$ #Vv|#WE#ZyK#[u65 #]z]#_@#`K##cpmy #fqj #gap#h^|#i^ #kCL#lCL#mCL#nCL#oCL#rOP#tOP#uOP#wCL#zGU#{GD#}G=#~F#x#x}e# Ww}f#!D `^ ^ M#pY1 N#DO#HǪP#DQ#SқR#PS#@;T#HV#m X#E}Y#E[#ԯl\#_Al^#e͛_#Br`#E+ja#vBb#{zc#u#CL#CL#CLg#nk[ #CL#CL#CL#CLm#GVn#yo#f4 #CL#CL#CL# CL#!CL#"CL#$CLw#'zx#(HLy#)Q#*OP{#-p33 |#/Z<}#0k`~#3^#6A6#7Fb#:z ~# #x_ > #y_ > #{CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N7o#CL#D/#CL#CL#D- #CL#CL#CL#OP$#Hj %#H+&#JD#CL*#G,#fA)#OP.#S"#CL#CL#OP#CL3#o4#AH6#^Y7#Lf8#Wf9# b4:# \3;# a4<# ]4#OP>#S4w?#E@#DA#U #OPD#D E#DF#DϙG#Ns#}#Cl#}#_B #!aE#"A)#${H #%n #&rE #'qV !#*CL #+CL#,CL#/c!( #1OP#2S\#3f1u#4GC#7u} #9^#:n#=CL#>CL#?CL#@CL#ACL#lI?#mH#oGD#rq^ #uJD #wy@Y #xA#yR #|r3#D[^#z #w #E#yK#uD #{-#@M#K6#p^ #nY #a0#^s3#^ #CL#CL#CL#CL#CL#OP#OP#OP#CL#H0#G#Hw#F#g#g}e#9ja}f#xCݝ^ ^ M#q N#DeO#H1P#DfQ#SқR#PS#of T#HV#nJ* X#F/Y#E[#+\#W4^# c-_# BU`#6Da#7uLb#8wGc#9t(#;CL# # _ > # _ > # CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# N-S# CL# D/# CL# CL# C:# CL# CL# CL# OP$# Ht%# H+&# GƩ# CL*# H9,# f7+# OP.# (S## )CL# *CL# -OP# /CL3# 2p#v4# 4AH6# 6TL7# 7M48# 8Wf9# ;b8:# =X;# >]<# ?Z3# @OP># ASg?# BE@# CDA# DUe;# EOPD# FDUE# GD F# HD8G# IN># L}S3# NB3# O|# P_ # S^tT# TAp# U{ # Vo # XrE # Yqes !# \CL # ]CL# ^CL# ``S # bOP# cS{# eJ# F# vR # # n`# CL# CL# CL# CL# CL# ID# H-J# Jz# q # H # z7 # B1 # JZh # of# D# z[ # x# E # yO# uD # {3# @# J# pPL # qb" # `# ^y# ^ # CL# CL# CL# CL# CL# OP# OP# OP# CL# Hv# G5# H8,# G(T# hp# hp}e# d}f#C^ ^ M# 'r N# )DO# *HP# +DQ# WSR# XPS# YnT T# ZIDV# [nN X# ]FjY# ^F-\[# ` \# aZx.^# dd _# eBr`# gCa# hub# iw{c# ksQ# mCL# nCL# oCLg# qns- # sCL# tCL# uCL# wCLm# zFĽn# }~ٚo# ~f # CL# CL# CL# CL# CL# CL# CLw# BǮx# Hfy# M# OP{# q"# |# Zn}# j~# ^# AM# F;^# |= ~# OP# Y>k |# CL# D;# G# Fd# Lu# CLt# CL# }; # v5@ # p > 5# I`6# G\# OP# CL:# Z ;# Q<# Qr?# @+# OP# CLB# AC# SzD# ~C E# \F# RG# J >H# !~ L# "e M# #t(N# $W\) O# %D=P# &CQ# 'G'R# (FT# )D0U# *EV# +I_,# ,OP# .CLY# 0~z Z# 1z # 3OP# 5CL]# 7uS[ ^# 9R# :OP# }~ # @OP# BCLd# DC:# FOPf# H^# ICLh# Kr i# LWP# NOPk# OK l# PRm# QPQn# Rb o# U[+p# WUu q# P r# P# s# K)t# Ju# NJ# OP# CLx# G:y# O~5z# P## OP# CL}# I~# Eq# F%# E# OP~# CL# DB# E# A:# F# Jā# Fݱ# B# EV# K# @D# x"# @ # O# I@# L# oA# J# EV# Oe!# u[p# Ny# L# o^ # JP# jʶ# CL# E# |{# OP# CL# CL# CL# CL# CL# CL# CL# Ng# O # YS3# _ > # _ > # _ > # CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# N*p# CL# D/# CL# CL# DJ# CL# HCL# ICL# LOP$# MH%# NH&# QRm# SCL*# VH,# Wf.# XOP.# YSΓ# [CL# \CL# _OP# aCL3# cp4# eAH6# hK&g7# iB8# jW9# mb8:# o]4;# p_34<# qb33# rOP># sS0?# tE@# uD5A# uT# vOPD# xDuE# yDF# zDُG# zND# ~~&f# C<# }ٙ# _ # av# A# { # oK # rE # qes !# CL # CL# CL# b  # OP# ShR# ft# Gr/# v- # Ň# nm# CL# CL# CL# CL# CL# ID# H7D# O67# qˈ # K # zcz # Bɀ# NoE # q33# D# z #y%#Dg#yO#uS[ #{#@#Jt#pA # lD #!a33#"^|##^ #%CL#&CL#'CL#(CL#)CL#-OP#.OP#/OP#1CL#4H#5G#7HY#8GXU#:z#;z}e# x}f# Cm^ ^ M#~q_] N#DO#G P#DQ#SiR#QS#n T#HzV#nJ* X#FT!Y#F33[# \#ZAl^#c#_#Br`#Ca#u>b#w{c#s##CL#CL#CLg#n#}f ~#OP#W>' |#CL#DM2#Gt[#F:#Miu#CLt#CL# {D # w7L # o: 5#Ic6#G#OP#CL:#=[;#@OvX<#BQ7?#C@#DOP#FCLB#HA$ZC#IR.D#J~C E#LTF#MRG#N} > H#O~ L#Qe M#Rt(N#SW\) O#TDUP#UDvKQ#VGJR#WF*T#XEFU#YFV#ZI;#[OP#]CLY#_} Z#`zu #bOP#dCL]#fuZ ^#hZ=#iOP#kCLa#mD#oOP#qCLd#sC#uOPf#w^#CLh#r i#V%#OPk#K l#MRm#L=qn#a= o#[pp#V\) q#P r#QR s#K2+t#J7u#N&#OP#CLx#Gy#Mz#O$-#OP#CL}#I=~#EG#FU0#E !#OP~#CL#D;#E#B #F/#Jā#Fݱ#B#E#Kc#@D#xZ#@ #OBo#I#L# oA# J#EV#Q<#u#Ny#M\#o^ #JP#g#CL# Ey#!}#"OP#$CL#%CL#&CL#'CL#(CL#)CL#*CL#.Qg#/M,#0^vf#1_ > #2_ > #3_ > #5CL#6CL#7CL#8CL#:CL#;CL#CL#?CL#hCL#jN$#lCL#nD/#pCL#qCL#sD%#vCL#wCL#xCL#{OP$#|H%#}H+&#M#CL*#H,#e#OP.#S#CL#CL#OP#CL3#o4#AH6#P37#F8#Rg9#b-k:#Z;#^4<#[ #OP>#R?#E@#DA#T̯#OPD#DE#D\F#D-G#Nv#}#Bf#|3#_) #``#Ap#{a #o,| #rE #qt !#CL #CL#CL#b #OP#SDP#e9 #F#vK #)#n#CL#CL#CL#CL#CL#ID#HA<#FШ#q #If #1z)B #2C=#3N< #6t#9D#}#j~#^#!@Z##F7 #&|5! ~#(OP#+Wx |#-CL#0D)#2G4#3E#^Iu#`CLt#aCL#d{ #ev~ #fo 5#hIfL6#iG\#jOP#lCL:#o\;#rL<#tQm?#u@"#vOP#xCLB#zA$ZC#{PnD#|}7 E#~WF#RG#BH#~ L#eG M#s34N#VH O#DP#DsQ#G(R#FT#EH;U#F=V#I#OP#CLY#~OI Z#z #OP#CL]#u ^#`##OP#CLa#JBU#OP#CLd#D#OPf#^#CLh# i#T~#OPk#Kѐ l#N m#Mn#dff o#\xp#WQ q#OH r#PG s#K:[t#J u#O4#OP#CLx#G} y#LE]z#N#OP#CL}#IZ~#Ev#Ff#E#OP~#CL#$D;#&ET#'BE#(F>K#)Jā#+Fݱ#,B #-ET#.Kc#/@#1x#2@ #5O#7Iλ#8L#;oA#=J #AEV#BSQ/#Du#ENy#FM #Io^ #JJP#Lg#NCL#QE#R~^#SOP#UCL#WCL#XCL#YCL#ZCL#[CL#\CL#_Ng#M3#^Y#_ > #_ > #_ > #CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N*p#CL#D/#CL#CL#CZ#CL#CL#CL#OP$#H%#H+&#I#CL*#H",#fYl#OP.#S#CL#CL#OP#CL3#p 4#AH6#Qs47#If8#Rg9#b<:#[s4;#]4<#Z4#OP>#SJ?#ED@#DA#Uya#OPD#DE#DUF#D;G#N#y3#A# y # _ # `G#A#{ #o; #rE #q !#CL #CL#CL#` #OP#S)#f# G]##v #%g#&n{#PCL#QCL#RCL#TCL#UCL#XIE#YHH}#ZI+#]qJ #`I #bz? #dC:#eK  #hnI#kE9E#nz #pz#qE1#tyO#vup #x|Ԣ#y@#zKR8#}p$ #o; #aC3#^|#^"#CL#CL#CL#CL#CL#OP#OP#OP#CL#I #Gn#H#GW#g#g}e#%l3a}f#dB9^ ^ M#q% N#D?O#GtP#DQ#SқR#Q=S#n`* T#I.V#n X#FY#Fs[#\#`D^#ci_#B`#!B33a#"vb##xc#$u#'CL#(CL#)CLg#+nS #-CL#.CL#/CL#1CLm#4En#7~4o#8gY #:CL#;CL# O#CP#EQ#G'R#FT#EU#FYV#I #OP#CLY#~ Z#z #OP#CL]#v4 ^#bf#OP#CLa#Ng#OP#CLd#DG#OPf#^#CLh# i#SQ#OPk#Ks l#Q{m#OQn# ` o# \2p#Uz q#Pu r#Q s#K6t#Ju#N#OP#CLx#Gy#Jؗz#DNv<#EOP#GCL}#II~#KE<#LF#ME#NOP~#PCL#RDX#UE#VBE#WFL#XJ #YFݱ#ZB #\ET#]KU#^@#`xr#a@{#dO^1#fIj#gL#joA#lJ'#oEV#pQ#ruq#tNy#uM #xo^ #yJP#{h#}CL#E#}y#OP#CL#CL#CL#CL#CL#CL#CL#R #G6g#Yg#_ > #_ > #_ > #CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N)#CL#D0#CL#CL#CD#CL#CL#CL#OP$#H)%#H+&#M#CL*# I9,#f2,#OP.#T #CL#CL#OP#CL3#p'4#AH6#J7# LY8#!R9#$b8:#&]L;#'\<#(aY#)OP>#*S?#+Ee@#,DA#-U#.OPD#/D E#0D5F#1DHG#2O4#5@#6E #7A#3#9_ޘ #| z #?oXB #@r #Aq3 !#ECL #FCL#GCL'wbA 'wOP'wR'w eʭ'w G]'w w_ 'wa'wn͹'wCL'wCL'wCL'wCL'wCL'wIL;'wHU/'wN5'w rs 'w#IU 'w%{H 'w&D;'w'Q 'w*p6f'w-E'w1{ 'w3vRT'w4E^'w7yO'w8u 'w:}#'w;u'wdI'whp$ 'wkp 'wlaff'wm^|'wn^ 'woCL'wpCL'wrCL'wsCL'wtCL'wwOP'wxOP'wzOP'w|CL'wIg5'wHO'wH'wG'wh'wh}e'wk}f#B^ ^ M'wq|} N'wDcO'wGP'wDwQ'wSқR'wQ'S'wn}[ T'wItV'wo X'wFDY'wFi['wܮ;g\'wXv ^'wfm_'wB`'wAa'wvb'wvQc'wrǯ'wCL'wCL'wCLg'wn[ 'wCL'wCL'wCL'wCLm'wEn'wo'wh 'wCL'wCL'wCL'wCL'wCL'wCL'wCLw'w.}Hx'w/Gy'w1L'w2OP{'w3rߓ |'w4Z|m}'w5j%~'w7^'w9@'w 'wz_ > 'w{_ > 'w}CL'w~CL'wCL'wCL'wCL'wCL'wCL'w^'wCL'wCL'wCL'wN('wCL'wD0'wCL'wCL'wD'wCL'wCL'wCL'wOP$'wH%'wH&'wO§'wCL*'wI~,'we'wOP.'wT/'wCL'wCL'wOP'wCL3'wp)4'wAH6'wM7'w@338'wR39'wb8:'wYL;'w]<'w['wOP>'wSZ?'wF@'wDA'wUZq'wOPD'wEAE'wDF'wDG'wOF'w}2'wCY'w!}'w"_ 'w%_N'w&B#2'w'| 'w(ouq 'w)r 'w+q^ !'w.CL 'w/CL'w0CL'w2b 'w4OP'w5S'w6f]'w8HP|'w;x+ 'wn'w@CL'wACL'wBCL'wCCL'wECL'wHIP'wIHfj'wJH'wMr# 'wPIj 'wR|} 'wTDX'wUKE 'wXs\'w[E'w{ 'wv d'wE+g'wyS'wu 'w~vO'wkL'wKa'wp 'wrf 'wa,'w^|'w^"'wCL'wCL'wCL'wCL'wCL'wOP'wOP'wOP'wCL'wI'wHw'wH'wG'whff'whff}e'wb'wwfgc'wsq'wCL'wCL'wCLg'wn, 'wCL'wCL'wCL'w!CLm'wLE_yn'wOo'wPh 'wRCL'wSCL'wTCL'wUCL'wWCL'wXCL'wYCLw'w\@x'w]Hfy'w^M'w_OP{'w`s# |'wbY}'wcl~'we^'wg@_C'wiF%'wl}T ~'woOP'wr^ׄ |'wtCL'wwDP'wxG'wyFl'w}O0u'wCLt'wCL'w{>w 'ww 'wpH 5'wIc6'wG'wOP'wCL:'w\h;'wH<'wS?'wA'wOP'wCLB'wAAhC'wM*D'w} E'wQ F'wR\G'wBH'w~q L'w` M'wgN'wR{ O'wC/P'wEa;Q'wG]R'wFpT'wFU'wFV'wIr'wOP'wCLY'w@Z'w{Z 'wOP'wCL]'wu} ^'w['wOP'wCLa'wO'wOP'wCLd'wD;'wOPf'w^'wCLh'w@i'wPA'wOPk'wL l'wRm'w Qn'w!dc o'w$]lp'w&S\ q'w'Mz r'w(N{ s'w*K?t'w+Ku'w,O'w-OP'w/CLx'w1G&"y'w2Qz'w4NV'w5OP'w7CL}'w9J;~'w;FW'wOP~'w@CL'wBDnQ'wEFR'wFB)'wGF!O'wHJ 'wIFݱ'wJC'wKFR'wMKU'wN@ff'wxx'wy@ 'w|O^1'w~IK'wL'woA'wJ%'w@ 'wR'wv'wM&'wM 'w`w/ 'wJE:'w^'wCL'wEw'w~''wOP'wCL'wCL'wCL'wCL'wCL'wCL'wCL'wQ 'wG6g'wYg'w_ > 'w_ > 'w_ > 'wCL'wCL'wCL'wCL'wCL'wCL'wCL'w^'wCL'wCL'wCL'wN+)'wCL'wD3'wCL'wCL'wDu'wCL'wCL'wCL'wOP$'wH%'wH&'wLL'wCL*'wI,'we 'wOP.'wTZ='wCL'wCL'wOP'wCL3'wpB4'w AH6'w W7'w C8'wR9'wbG:'wZ ;'w^S4<'w[ 'wOP>'wS,?'w@F@'wADA'wBUN5'wCOPD'wDEXE'wEDF'wFDG'wGO4 'wJz'wKA'wLy'wN`+ 'wQa'wRBX'wS|5! 'wTo 'wUr 'wVqˈ !'wZCL 'w[CL'w\CL'w^a 'w`OP'waRI'wbe'wcE'wgx:D 'wi'wjnB'wlCL'wmCL'wnCL'woCL'wqCL'wtIP'wuHj'wvIm'wyr@3 'wH 'w},l 'wE2'wKn 'wn'wE'w{LS 'wv*'wD@'wyX'wuZ 'w}'wd~'wJr'wp 'wrL 'wa33'w^y'w^ 'wCL'wCL'wCL'wCL'wCL'wOP'wOP'wOP'wCL'wI٢'wH0'wH'wG'wk'w k}e'wif7}f'wB,^ ^ M'w%q N'w'DDO'w(F'P'w)DQ'w,SR'w-Q+S'w/nn T'w0JRV'w1q! X'w3F'Y'w4G5%['w5 \'w6Xg^'w:f_'w;B`'w=Aa'w>vb'w?vc'w@r 'wBCL'wlCL'wmCLg'won% 'wqCL'wrCL'wsCL'wtCLm'wwE?n'w{~c4o'w|i{c 'w~CL'wCL'wCL'wCL'wCL'wCL'wCLw'wxzx'wHRy'wO'wOP{'wt% |'wXrj}'wlF~'w^'w@;'wF 'w| ~'wOP'wWt |'wCL'wDx'wG'wF'wG"Ju'wCLt'wCL'wxo 'wv 'wp/ 5'wIed6'wG'wOP'wCL:'w\\;'wF<'wS?'wA'wOP'wCLB'wA:%C'wLD'w}У E'wQRF'wRG'wG >H'w~Cm L'w_ > M'wc N'wO34 O'wCqP'wEoQ'wGR'wF7 T'wF9U'wG hV'wIr'wOP'wCLY'wA$ZZ'w{LS 'wOP'wCL]'wu} ^'w [u'w OP'w4CLa'w7NϽ'w8OP'w:CLd'wOPf'w@^'wACLh'wC@&i'wDO'wFOPk'wGK" l'wHMm'wIM =n'wJb o'wM\p'wOSz q'wPM r'wRO s'wSK=t'wTK u'wUO/'wVOP'wXCLx'wZFy'w[P[z'w]Mi'w^OP'w`CL}'wbJ|1~'wdFO'weGy'wfE'wgOP~'wiCL'wkDnQ'wnF'woB)'wF!O'wJ 'wFݱ'wC'wF'wKU'w@f'wx'wB3'wO^1'wI*'wL'woA'wJ''wB3'wS 'w_ > 'w_ > 'wCL'wCL'wCL'wCL'w CL'w CL'w CL'w ^'w CL'w CL'w CL'w N+'w CL'w D2'w CL'w CL'w DJ'w CL'w CL'w CL'w OP$'w H@%'w H&'w I'w CL*'w #I),'w $e'w %OP.'w &Tg'w (CL'w )CL'w ,OP'w .CL3'w 0pCl4'w 2AH6'w 5`7'w 6Yٙ8'w 7b9'w bbK:'w dX;'w eb`<'w f]f'w gOP>'w hS?'w iFS@'w iD=A'w jUD'w kOPD'w lEE'w mE F'w nE ZG'w oO@Q'w sy3'w tA@'w uy'w w` 'w z_'w {B 'w ||C 'w }o7 'w ~r+ 'w q !'w CL 'w CL'w CL'w dM 'w OP'w R'w f:'w FT'w y 'w s'w n'w CL'w CL'w CL'w CL'w CL'w IM#'w H5s'w Nk'w rk 'w I 'w ~] 'w EV'w R 'w qY'w F0'w {LS 'w x('w E'w yX'w u} 'w |'w `F'w J{'w pY 'w sj 'w `'w ^y'w ^"'w CL'w CL'w CL'w CL'w CL'w OP'w OP'w OP'w CL'w )IX'w *H'w ,H^'w -G'w /z3'w 0z3}e'w S}f'w@x^ ^ M'w -q N'w /DO'w 0F[GP'w 1E8Q'w 4SR'w 6Q@S'w 7nQ T'w 8KqV'w 9sM X'w ;F&Y'w 'w _ > 'w _ > 'wCL'wCL'wCL'wCL'wCL'wCL'wCL'w^'wCL'wCL'wCL'wN%b'wCL'w!D+d'w#CL'w$CL'w&C'w(CL'w)CL'w*CL'w-OP$'w.H`%'w/H&'w2PJ'w5CL*'w7J;,'w8f'w9OP.'w:TU'w'w|S?'w}F%@'w~EwA'wUv'wOPD'wFI)E'wE(F'wE#G'wO'wy'wA#3'wy3'waT 'w`$'wC.'w|oQ 'wo۔ 'ws)~ 'wr# !'wCL 'wCL'wCL'wb[ 'wOP'wR'wfx'wG 'wzr 'w}D'wo5'wCL'wCL'wCL'wCL'wCL'wIQ'wH;'wLr'wrE 'wJ 'w@'wFs'wK 'wr)'wF-'w{w 'ws\'wD'wy\)'wu 'ww'w\q'wJ'wpY 'ws33 'waf'w^|'w^ 'wCL'wCL'wCL'w CL'w CL'wOP'wOP'wOP'wCL'w=J'w?H''w@H)'wAG'wCx3'wDx3}e'wW}f'w }I ^ ^ M'w_r+< N'waDO'wbFσP'wcE?Q'wfSR'whQDuS'winB T'wjLcV'wkty: X'wmF&Y'wnG['woh\'wqZ ^'wteT_'wuB`'wvA<a'ww >b'wwGc'ws'wCL'wCL'wCLg'wnS 'wCL'wCL'wCL'wCLm'wEyn'wC4o'wm 'wCL'wCL'wCL'wCL'wCL'wCL'wCLw'wB\x'wGGy'wM8R'wOP{'wx |'wX7}'wj~'w^'w@<'wE 'w|& ~'wOP'w_ |'wCL'wD{T'wH'wFf'w PƜu'w CLt'wCL'wtT 'ww7L 'wp 5'wIc6'wG'wOP'wCL:'w\;'wRJP<'w TT?'w"A'w#OP'w%CLB'w&AHC'w(KD'w)} E'w*YGF'w,RG'w-L{H'w.~ L'w/_ > M'w0eN'w1O O'w2DP'w3EzQ'w4GJR'w5FT'w6FU'w7GQ$V'w8I'w9OP'w;CLY'w=B?Z'w>{/9 'whOP'wjCL]'wlvh. ^'wnX#'woOP'wqCLa'wtNJ'wuOP'wwCLd'wyD_'w{OPf'w}^'w~CLh'w@Ri'wM~'wOPk'wL J l'wV\)m'wVn'we o'w]<p'wU\ q'wN\ r'wP s'wK=t'wK:[u'wO#t'wOP'wCLx'wEZy'wKz'wM9@'wOP'wCL}'wJZ~'wF'wHF'wE'wOP~'wCL'wC'wF/'wBF'wET'wJ 'wF/'wC 'wF/'wKU'w@'wy U'wB3'wO^1'wI o'wL'woA'wJ+g'wBV'wLv'wv)'wP('wM 'web3 'wJk'wQR'wCL'wE'w@'wOP'wCL'wCL'wCL'wCL'wCL'wCL'wCL'w1R33'w2Oc3'w3Yg'w4_ > 'w5_ > 'w6_ > 'w8CL'w9CL'w;CL'wCL'w?CL'w@^'wACL'wBCL'wDCL'wEN&'wGCL'wJD''wKCL'wLCL'wND'wQCL'wRCL'wSCL'wVOP$'wWI@%'wXH&'w[Oy'w]CL*'w`Jj,'waf'wbOP.'wcTU3'weCL'wfCL'wiOP'wjCL3'wpz4'wAH6'wNL7'wEs38'w[f9'wb|:'wZٙ;'w\<'w['wOP>'wS?F?'wF/@'wEXA'wUx'wOPD'wFE'wE:F'wE5G'wO'w@3'wD'w@<'wa|@ 'w\3'wC'w|} 'wo 'wsF 'wr]\ !'wCL 'wCL'wCL'we!4 'wOP'wR̿'wef'wH2'w| z 'wΠB'wo@'wCL'wCL'wCL'wCL'wCL'wIY'wHU/'wHt'wr 'w Jn 'w @'w G'wRe 'wnf'wF'w{w 'wl'wC'wy\)'wv 'w!um'w"Z'w$KW'w'pY 'w*eff 'w+`'w,['w-^ 'w.CL'w0CL'w1CL'w2CL'w3CL'w^OP'w_OP'waOP'wcCL'wfJA6'wgH0'whHk'wjGe'wmh'wph}e'whw}f'w| ^ ^ M'wr+< N'wDO'wEjP'wE7Q'wSXR'wQO'S'wn`* T'wL V'ws X'wExY'wGr['wì0\'w[9^'wdpR_'wB`'wA)wa'wvBb'wvc'wsp'wCL'wCL'wCLg'wnDF 'wCL'wCL'wCL'wCLm'wEn'wPo'wm@ 'wCL'wCL'wCL'wCL'wCL'wCL'wCLw'wy{x'wH\)y'wMW 'wOP{'ww |'wW}'wjpE~'w^'w 'wEf'w&}: ~'w(OP'w+^" |'w-CL'w1D'w2H?'w3F'w6Gu'w8CLt'w:CL'wp 5'w@I`6'wAGkZ'wBOP'wDCL:'wG^8;'wJQ'<'wLU?'wMA7'wNOP'wPCLB'wRAHC'wSU9D'wT} E'wVT F'wWU34G'wX~R H'wY~H6 L'wZ^{ M'w[c N'w\O O'wDMP'wEQ'wGr/R'wF T'wFU'wGtV'wI+'wOP'wCLY'wBEZ'w{Z 'wOP'wCL]'wv ^'wY2'wOP'wCLa'wN0'wOP'wCLd'wDu'wOPf'w^'wCLh'w@.i'wL'wOPk'wK l'wRHm'wRHn'wb o'w]8p'wU\ q'wO r'wPk s'wK>t'wKD^u'wN'wOP'wCLx'wDy'wJTsz'wM'wOP'wCL}'wK)~'wF'wHrv'wD`'wOP~'wCL'wC4'wF/'wBF'wF!O'w J 'w F/'w C 'w F/'wKc'w@I'wx'w@'wO'wHЌ'wL'woA'wJ-8'wB!'w!QV'w#vC'w$P('w&M 'w'eb3 'wPJk'wQPx'wSCL'wVEw'wWΞ'wXOP'wZCL'w[CL'w\CL'w^CL'w_CL'w`CL'waCL'wdNg'weG6g'wfYg'wg_ > 'wh_ > 'wi_ > 'wlCL'wmCL'wnCL'woCL'wpCL'wqCL'wrCL'ws^'wtCL'wvCL'wwCL'wxN,'wzCL'w}D('wCL'wCL'wD'wCL'wCL'wCL'wOP$'wI%%'wH&'wL;'wCL*'wJ,'we'wOP.'wTt'wCL'wCL'wOP'wCL3'wpa4'wAH6'wX7'wZ8'wa339'wb:'wYg;'w],<'w['wOP>'wS9?'wF?C@'wE(A'wU~'wOPD'wGE'wEOF'wEHG'wO'w}g'wC)'w}@'wa 'w`'wD'w| 'wp 'wsrb 'wrE !'wCL 'wCL'wCL'wc 'w!OP'w"Rܘ'w#fG'w$H'w(| 'w*%'w+oe'w-CL'w.CL'w/CL'w0CL'w1CL'w5I^c'w6Ho{'w7NX'w:s 'w=I 'w?A$Z'w@Go'wAJZh 'wEp@'wHF'wK{ 'wMg5.'wNB'wQy`B'wRvH'w~ L'w^{ M'wc N'wO34 O'wD P'wE%Q'wG~R'wFT'wGU'wGV'wI'wOP'wCLY'wCZ'w{in 'wOP'wCL]'wwl ^'w\k'wOP'wCLa'wN'wOP'wCLd'wD|'wOPf'w^'wCLh'wAi'wU'wOPk'wL( l'w O =m'w OQn'wb޸ o'w]'p'wS q'wL r'wN s'wKAt'wKHu'wNU'wOP'wCLx'wDJy'wIOz'w!L'w"OP'w$CL}'w&K\W~'w(G'w)H}'w*EA'w+OP~'w-CL'w/C'w1F>K'w3BUZ'w4Fi'w5J 'w6F'w7C/'w8F>K'w9Kc'w:@'w@'wAO'wCI;'wDL'wGoA+_J-8+_B+_ R +_ u9+_ P(+_ M=+_d +_JC+_N+_CL+_E+_~'+_OP+_CL+_CL+_CL+_CL+_CL+_CL+_ CL+_#Ng+_%G6g+_&X4+_'_ > +_(_ > +_)_ > +_+CL+_,CL+_-CL+_.CL+_/CL+_1CL+_2CL+_3^+_4CL+_5CL+_6CL+_8N1+_:CL+_dD+d+_fCL+_gCL+_iCμ+_lCL+_mCL+_nCL+_pOP$+_qI8%+_rH<&+_uJZ+_xCL*+_{J,+_|eȉ+_}OP.+_~TdR+_CL+_CL+_OP+_CL3+_pY4+_AH6+_X337+_Vfg8+_V39+_b:+_Yٚ;+_]s3<+_\ +_OP>+_S`?+_FO@+_E5sA+_VIB+_OPD+_G2sE+_EfjF+_E]G+_OR+_| +_BVf+_|Y+_aH +_\!W+_D1+_| +_pA +_s +_r !+_CL +_CL+_CL+_dR +_OP+_RG+_eE,+_G!+_|R8 +_yc+_o+_CL+_CL+_CL+_CL+_CL+_I[+_Ho+_JA+_sU: +_J +_A+_Hd+_MI +_.r3+_1G'+_4{ +_6b+_7@+_:y`B+_o!+_?WY+_@K+_Cp +_Fg33 +_Ga`+_I[f+_J^ +_KCL+_LCL+_MCL+_NCL+_PCL+_SOP+_TOP+_UOP+_WCL+_ZJ+_\H8,+_]H+_^G+_anz+_dnz}e+_V7}f'wo| _ ^ ^ M+_rez N+_DLO+_EP+_DQ+_SR+_Qo>S+_n4a T+_LFV+_s X+_EY+_H/[+_1\+_\3^+_f6_+_B`+_A Da+_w{b+_wfgc+_sp+_CL+_CL+_CLg+_n, +_CL+_CL+_CL+_CLm+_DXn+_~o+_m +_CL+_CL+_CL+_CL+_CL+_CL+_CLw+_ ~=qx+_ H.y+_ N+_ OP{+_wN |+_X:}+_lt~+_^+_0 +_En+_}f ~+_OP+_ [5 |+_"CL+_%D.+_&G+_'F+_+Hu+_-CLt+_.CL+_Xs +_Yx +_[q 5+_]IP6+_^G32+__OP+_aCL:+_d`';+_gM<+_iUS?+_jATJ+_kOP+_mCLB+_oAC+_pUZ@D+_q} E+_sNF+_tR{G+_uFQH+_v L+_w] M+_xaN+_yNR O+_zD/P+_{ERQ+_|GgRR+_}FT+_~GE[U+_GaV+_Iv+_OP+_CLY+_DGZ+_{= +_OP+_CL]+_w% ^+_]e+_OP+_CLa+_O+_OP+_CLd+_D+_OPf+_^+_CLh+_AOi+_X +_OPk+_L=} l+_Mm+_Mn+_` o+_]Kp+_RL q+_M8R r+_NG s+_KCut+_KMwu+_M!+_OP+_CLx+_C{y+_Qoz+_Ly+_OP+_CL}+_K~+_G;q+_Hԅ+_D`+_OP~+_CL+_C+_FL+_BUZ+_Fi+_J +_F+_ C=+_"FL+_#KU+_$@I+_&z+_'@^+_*O+_,I^+_-L+_0oA+_2J-8+_3B<+_6PI+_8v?"+_:P(+_;M=+_Mv-+_@CL+_CE+_D~*e+_EOP+_GCL+_HCL+_JCL+_KCL+_LCL+_MCL+_NCL+_QQC3+_RG6g+_SPg+_T_ > +_U_ > +_W_ > +_YCL+_ZCL+_[CL+_CL+_CL+_CL+_CL+_^+_CL+_CL+_CL+_N+)+_CL+_D-4+_CL+_CL+_CL!+_CL+_CL+_CL+_OP$+_IHW%+_H&+_H\+_CL*+_K,+_f7+_OP.+_T8h+_CL+_CL+_OP+_CL3+_p4+_AH6+_V@7+_Hf8+_Wf9+_bj:+_b;+_``<+_ff+_OP>+_S~?+_F]8@+_EC A+_Vbn+_OPD+_GuE+_EyvF+_EpG+_P +_}g+_CFf+_G\+_bS +_`~M+_D^}+_|& +_pPL +_sF +_s)~ !+_CL +_ CL+_ CL+_ e[ +_OP+_R+_e+_G+_} +_+_o+_CL+_CL+_CL+_CL+_CL+_"IY+_#Hk+_LI$+_Os +_RI{ +_TA+_UH$+_WO^ +_Znp+_]G[s+_`{ +_b_,0+_cK+_fy`B+_gvR +_jm +_kVh+_lKZ+_op$ +_rj +_s`+_t[ +_u^ +_wCL+_xCL+_yCL+_zCL+_{CL+_OP+_OP+_OP+_CL+_J+_H=+_H+_G-+_i+_i}e+_j}f+_X{ ^ ^ M+_rV N+_DO+_E~P+_EAQ+_SR+_QdS+_n T+_LUZV+_s X+_EY+_H(~[+_1\+_WI^+_e_+_B9`+_Aa+_vpb+_vBc+_rL+_CL+_CL+_CLg+_nL +_CL+_ CL+_!CL+_"CLm+_%Dڪn+_)~o+_*nI l+_M\)m+_Mn+_cǮ o+_\p+_S q+_Mu r+_N s+_KKt+_KSu+_ML+_OP+_ CLx+_ Cwy+_ PFz+_Li2+_OP+_CL}+_Kf~+_G`+_H{+_D+_@OP~+_BCL+_DC.+_GFL+_HBc+_IFL+_JJ +_KF+_LC=+_MFL+_NKU+_P@+_Rx+_S@r+_VO+_XI+_YL+_\oA+_^J/ +__Bi+_bLv+_dvG+_ePi+_fM=+_ge@ +_iJI+_jMI+_lCL+_oE&+_p@K^+_qOP+_sCL+_tCL+_uCL+_vCL+_xCL+_yCL+_zCL+_Qɚ+_L +_Yg+__ > +__ > +__ > +_CL+_CL+_CL+_CL+_CL+_CL+_CL+_^+_CL+_CL+_CL+_N#8+_CL+_D/+_CL+_CL+_C/+_CL+_CL+_CL+_OP$+_IU %+_H&+_Op+_CL*+_K/q,+_f*R+_OP.+_SK+_CL+_CL+_OP+_CL3+_ p4+_ AH6+_c7+_R338+_^9+_b:+_Yf;+_]<+_[S3+_OP>+_S?+_Fl@+_ES_A+_V#$+_OPD+_GE+_E"F+_EG+_ P S+_$~&f+_%C +_&|3+_'cG +_*]K+_,D+_-|= +_.p| +_/s +_0s !+_3CL +_4CL+_6CL+_8e[ +_:OP+_;R*+_ugc+_?r +_ACL+_BCL+_CCLg+_En, +_HCL+_ICL+_JCL+_KCLm+_NDѢn+_Q~o+_Rn_ +_UCL+_VCL+_WCL+_XCL+_YCL+_ZCL+_[CLw+_^~x+_`Fy+_aM(+_bOP{+_cw |+_dW}+_ejg~+_g^+_jcP +_lE~+_o| ~+_OP+__= |+_CL+_D;+_H+_F+_Lu+_CLt+_CL+_s +_w- +_qo 5+_I=s6+_GL+_OP+_CL:+__;+_Iҏ<+_VL?+_AB+_OP+_CLB+_AC+_SRD+_} E+_R{F+_RQG+_KH+_~f L+_] M+_aN+_O34 O+_DD@P+_EQ+_GU6R+_EޢT+_GpU+_GV+_I+_OP+_ CLY+_ DSZ+_ { +_ OP+_ CL]+_ w| ^+_ ^0+_ OP+_ CLa+_ O+_ OP+_ CLd+_ D+_ OPf+_ ^+_ CLh+_ Ai+_ W?+_ OPk+_ !L7$ l+_ "S\)m+_ #Sffn+_ $d o+_ ']^p+_ )R= q+_ *L=q r+_ +N = s+_ ,KKt+_ -KVu+_ .Lf+_ /OP+_ 1CLx+_ 3B y+_ 4Nۈz+_ 6LZ+_ `OP+_ bCL}+_ dK~+_ fG+_ gI-+_ hD+_ iOP~+_ kCL+_ mCpi+_ oF[G+_ pBc+_ rE+_ sJ +_ tF+_ uCL!+_ vF[G+_ wKU+_ x@f+_ zxd+_ {B3+_ ~O+_ I;+_ L+_ oA+_ J2+_ B+_ R+_ v<+_ P5+_ M=+_ eH +_ JM+_ M_+_ CL+_ E+_ @+_ OP+_ CL+_ CL+_ CL+_ CL+_ CL+_ CL+_ CL+_ Ng+_ G6g+_ Pg+_ _ > +_ _ > +_ _ > +_ CL+_ CL+_ CL+_ CL+_ CL+_ CL+_ CL+_ ^+_ CL+_ CL+_ CL+_ N&+_ CL+_ D-4+_ CL+_ CL+_ C+_ CL+_ CL+_ CL+_ OP$+_ I`%+_ Hh&+_ O+_ CL*+_ K],+_ e9+_ OP.+_ (T+_ *CL+_ +CL+_ -OP+_ /CL3+_ 2p؋4+_ 4AH6+_ 7U7+_ 8H8+_ 9U 9+_ ;b:+_ =W3;+_ >\<+_ ?Zfg+_ @OP>+_ AS#?+_ BF@+_ CEbA+_ DV!+_ EOPD+_ FG1E+_ GEF+_ HE^G+_ IP+_ MyFf+_ NAf+_ Oy +_ Pb +_ S`+_ TD+_ U}T +_ Wp< +_ Xt!N +_ Ys !+_ \CL +_ ]CL+_ ^CL+_ `eT +_ cOP+_ R+_ fA)+_ H+_ ~# +_ A:+_ o+_ CL+_ CL+_ CL+_ CL+_ CL+_ If+_ HZ+_ IF+_ s +_ J" +_ B++_ I>+_ PE +_ nl+_ G+_ |& +_ Z+_ y^+_ ydZ+_ vI +_ h+_ Tc+_ L+_ pA +_ o{ +_ a+_ [f+_ ^ +_ CL+_ CL+_ CL+_ CL+_ CL+_ OP+_ OP+_ OP+_ CL+_ K&+_ HRw+_ H+_ G+_ h=q+_ h=q}e+_ kT}f+_z ^ ^ M+_ 'r N+_ )DO+_ +EPP+_ TE!mQ+_ WSwR+_ XQv`S+_ Y{ T+_ ZLV+_ [u2 X+_ ^ECY+_ _Hm[+_ `\+_ aY&g^+_ db%_+_ eB9`+_ fAa+_ hwb+_ jwc+_ ktW +_ mCL+_ nCL+_ oCLg+_ qn+_ OP{+_ x; |+_ X+}+_ g.{~+_ ^+_ q +_ E+_ }; ~+_ OP+_ _/3 |+_ CL+_ D+_ HCs+_ G+_ Ku+_ CLt+_ CL+_ rZ +_ x +_ q 5+_ I96+_ FH+_ OP+_ CL:+_ _y;+_ H<+_ VE?+_ A!s+_ OP+_ CLB+_ A2C+_ RD+_ }L E+_ VGF+_ SG+_ |Q H+_ } L+_ \ M+_ `N+_ !M O+_ "DRP+_ #EQ+_ $G;$R+_ %EjT+_ &GU+_ 'HV+_ (I֍+_ )OP+_ +CLY+_ -DXZ+_ .z +_ 0OP+_ 2CL]+_ 4w ^+_ 6]+_ 7OP+_ 9CLa+_ +_ _ > +_ _ > +_ CL+_ CL+_ CL+_ CL+_ CL+_ CL+_ CL+_ ^+_ CL+_ CL+_ CL+_ N%b+_ CL+_ D,L+_ CL+_ CL+_ DG+_ CL+_ CL+_ CL+_ OP$+_ Ied%+_ HHÕ&+_ KL+_ NCL*+_ PK,+_ Rf+_ ROP.+_ STC+_ UCL+_ VCL+_ YOP+_ [CL3+_ ^p4+_ `AH6+_ b[Y7+_ cU348+_ dc9+_ gbi:+_ i^@;+_ j^L<+_ kb+_ lOP>+_ mT?+_ nFU@+_ oEsA+_ pV+_ qOPD+_ rGE+_ sENF+_ tEG+_ uPN+_ xy33+_ y@+_ {yl+_ |c +_ ^?+_ Dۨ+_ },l +_ ph +_ t>u +_ t' !+_ CL +_ CL+_ CL+_ e +_ OP+_ RG+_ fi+_ G+_ }: +_ z++_ oM+_ CL+_ CL+_ CL+_ CL+_ CL+_ Il+_ HZ+_ Om+_ t/ +_ J +_ B+_ Ip+_ K +_ qy+_ Gy+_ | +_ YK+_ u|+_ y`B+_w +_f+_T +_Kf+_pPL +_k +_`+_[+_^ +_CL+_ CL+_!CL+_"CL+_$CL+_'OP+_(OP+_)OP+_+CL+_.K8+_0HY+_1Hx+_2Gm+_4zL+_5zL}e+_ U}f+_ zz ^ ^ M+_xs N+_zDpO+_{FhP+_|EuQ+_SwR+_Q)S+_ T+_Mi(V+_vA X+_EY+_H[+_\+_X^+_dҶ_+_BU`+_BFa+_w{b+_y#c+_s+_CL+_CL+_CLg+_nk[ +_CL+_CL+_CL+_CLm+_En+_~go+_o, +_CL+_CL+_CL+_CL+_CL+_CL+_CLw+_wGx+_Gy+_Nf+_OP{+_zt |+_WW}+_iQ~+_^+_@,+_F" +_|ƚ ~+_OP+__މ |+_CL+_D+_H"+_FI+_Mu+_CLt+_CL+_r +_y +_qT 5+_I6/6+_Fa+_OP+_ CL:+_ ^;+_G:<+_Vd?+_@+_CLB+_@AHC+_AR?D+_B}5` E+_DR34F+_ERQG+_FEH+_G} L+_H_ M+_IdN+_JP( O+_KD^\P+_LEZQ+_MG\uR+_NEKT+_OGU+_PH,V+_QJ!+_ROP+_TCLY+_VDVZ+_W{ +_YOP+_[CL]+_]w3 ^+__]+_`OP+_bCLa+_eP+_fOP+_hCLd+_jD+_lOPf+_n^+_oCLh+_qA/i+_rU+_tOPk+_uLH l+_vCm+_wBn+__=q o+_]Kp+_VL q+_Ou r+_Q{ s+_KJt+_KUu+_KR+_OP+_CLx+_DGy+_K(z+_LV+_OP+_CL}+_K~+_Gʮ+_I+_E +_OP~+_CL+_DX+_Fi+_Brd+_FxC+_J +_G )+_CZ+_FxC+_KU+_Aff+_xd+_BV+_O+_I-+_L+_oA+_JP+_B+_Pۆ+_ v+_ P+_ M+_ f +_JM+_K9+_CL+_Eu+_@`+_OP+_CL+_CL+_CL+_CL+_CL+_CL+_CL+_"Y\+_#LFf+_$Yg+_%_ > +_&_ > +_(_ > +_*CL+_+CL+_,CL+_-CL+_.CL+_/CL+_0CL+_1^+_3CL+_4CL+_5CL+_6N&+_8CL+_;D,L+_=CL+_>CL+_hD+_jCL+_kCL+_lCL+_oOP$+_pIi%+_qH&+_tJE+_wCL*+_yKa,+_zf+_{OP.+_|Tt+_~CL+_CL+_OP+_CL3+_qM4+_AH6+_Ws37+_Dfg8+_Y39+_bi:+_Xl;+_]&g<+_Z3+_OP>+_TC4?+_Fg@+_EoA+_V4+_OPD+_GE+_EF+_EɔG+_P+_}g+_Cf+_}S3+_c +_`+_D/+_}: +_pӖ +_t[ +_t/ !+_CL +_CL+_CL+_d +_OP+_R+_eC+_G`+_|& +_Q+_oY+_CL+_CL+_CL+_CL+_CL+_Ik+_HRw+_Ha+_t[ +_J +_C+_I+_K +_o+_H+_1|C +_3W޷+_4r'+_7ydZ+_8wB +_;e>+_+_ OP{+_ {"" |+_ V}+_ fZ~+_^+_@+_F|+_} ~+_OP+_^" |+_CL+_"D/+_#Ij+_$Fk+_'K"u+_)CLt+_+CL+_-rM +_.xv +_/p 5+_1I76+_2GL+_\OP+_^CL:+_`^I!;+_aFD<+_bVO?+_dA|+_eOP+_gCLB+_iAeC+_jQ<_D+_k}- E+_mTzF+_nRG+_o|\ H+_p| L+_q` M+_reN+_sP O+_tDhP+_uEQ+_vGP%R+_wET+_xH @U+_yHEBV+_zJOZ+_{OP+_}CLY+_DVZ+_{/9 +_OP+_CL]+_xWc ^+_^#)+_OP+_CLa+_QPB+_OP+_CLd+_D+_OPf+_^+_CLh+_A:i+_Te+_OPk+_La l+_Cm+_Bn+__&f o+_]Rp+_S\) q+_M=q r+_N{ s+_KJt+_KTu+_Kt2+_OP+_CLx+_Cμy+_Iz+_Ld+_OP+_CL}+_K~+_Gl+_If+_E+_OP~+_CL+_DJ+_FxC+_B+_F[G+_J +_G )+_CZ+_FxC+_KU+_AX-+_x+_BV+_$O+_&I+_'L+_*oA+_,JP+_-BƘ+_0Lv+_2v*]+_3P(+_5M+_6h +_7JM+_8Ju+_:CL+_=E&+_>@;+_?OP+_ACL+_BCL+_CCL+_ECL+_FCL+_GCL+_HCL+_KNg+_LK3+_MYg+_N_ > +_O_ > +_P_ > +_SCL+_TCL+_UCL+_VCL+_WCL+_XCL+_YCL+_Z^+_[CL+_]CL+_^CL+__N(+_CL+_D'+_CL+_CL+_D|+_CL+_CL+_CL+_OP$+_Ii%+_H&+_Gۤ+_CL*+_K,+_g+1+_OP.+_T+_CL+_CL+_OP+_CL3+_p34+_AH6+_R7+_Qf8+_cL9+_b:+_Yfg;+_^`<+_\Y+_OP>+_T ?+_F@+_EA+_V+_OPD+_HKE+_EF+_EG+_P+_zg+_@+_yY+_c +__=+_D}+_}X +_p- +_tU +_tj. !+_CL +_CL+_CL+_g! +_OP+_ R+_ f"y+_ H/.+_~] +_=%+_o+_CL+_CL+_CL+_CL+_CL+_Ih_+_HQ+_P(+_!tU +_$I3 +_&C6]+_'I+_PRty +_Tp3+_WHH+_Z|5! +_\W++_]p+_`ydZ+_awna +_cc+_eSDP+_fKt+_ip| +_ln +_m`+_n\I+_o^ +_qCL+_rCL+_sCL+_tCL+_uCL+_xOP+_zOP+_{OP+_}CL+_Kl+_H`+_Hϣ+_GȬ+_{+_{}e+_u}f+_-y ^ ^ M+_r N+_DO+_FʅP+_EQ+_SER+_QS+_ T+_N;V+_x X+_F)Y+_H[+_ڪ\+_W^+_d=j_+_Br`+_C a+_v{b+_xc+_s*+_CL+_CL+_CLg+_ns- +_CL+_CL+_CL+_CLm+_Fn+_o+_!p +_#CL+_$CL+_%CL+_&CL+_'CL+_(CL+_)CLw+_-@x+_.Gy+_/Mu+_0OP{+_1}m: |+_2VC}+_3eaA~+_6^+_8A +_:F=+_=| ~+_?OP+_B_Ll |+_ECL+_HD$+_II[+_JF+_MN6u+_OCLt+_QCL+_Sr( +_|y +_}p 5+_I86+_G+_OP+_CL:+_];+_Q<+_V)?+_A+_OP+_CLB+_A{C+_PUD+_}% E+_YGF+_RpG+_FH+_|9 L+__ M+_dN+_O O+_DseP+_EsQ+_G=PR+_EѕT+_H1IU+_Hc:V+_JQ+_OP+_CLY+_DZ+_{in +_OP+_CL]+_xt ^+_]+_OP+_CLa+_Q+_OP+_CLd+_D+_OPf+_^+_CLh+_B"i+_T+_OPk+_Ln l+_A m+_ n+_] o+_])p+_W q+_QaH r+_R8R s+_KJt+_KVu+_K=A+_OP+_CLx+_D;y+_H7z+_L+_OP+_CL}+_ Kr~+_ H +_ If+_E +_OP~+_CL+_DnQ+_FxC+_B+_FL+_J +_G )+_Ci(+_DF+_EKU+_FAX-+_Hx+_JBV+_MO?+_OI+_PL+_SoA+_UJP+_VCy+_YOy+_[v"_+_\P(+_]M=+_^h +__JK+_aJx+_cCL+_fE+_g@"+_hOP+_jCL+_kCL+_lCL+_mCL+_nCL+_pCL+_qCL+_tNg+_uLf+_vY3+_w_ > +_x_ > +_y_ > +_{CL+_|CL+_~CL+_CL+_CL+_CL+_CL+_^+_CL+_CL+_CL+_N'+_CL+_D%+_CL+_CL+_EO+_CL+_CL+_CL+_OP$+_Il%+_H&+_Qbu+_CL*+_K,+_f{+_OP.+_T>+_CL+_CL+_OP+_CL3+_q4+_AH6+_Q7+_E8+_Y39+_b:+_Y,;+_ ]4<+_ Z+_OP>+_S?+_Fع@+_EA+_VC+_OPD+_GבE+_F WF+_E G+_P+_@3+_Dp+_@Y+_c +_!_3+_"Do+_$}u% +_%q +_&t +_'tz !+_*CL +_+CL+_,CL+_/e +_1OP+_2R+_3eJ+_4G9+_7} +_9K+_:p_+_=CL+_>CL+_?CL+_@CL+_ACL+_DIk+_EHX+_FKB/Gt /GI /G CD/G J%g/G JZh /Gr/GHy/G|5! /GV /Gmn/GydZ/Gw /GbK}/G R+/G!L/G$p< /G(e /G)`/G*\I/G+^ /G,CL/G-CL/G/CL/G0CL/G1CL/G4OP/G5OP/G6OP/G9CL/GdKx/GeHd/GfHt/GgG}/Gjh =/Gnh =}e+_9p3v}f+_Sy+ ^ ^ M/Gr N/GDO/GFP/GEQ/GSR/GQLS/G@&T/GN_V/Gx X/GF@EY/GH[/G{ \/GX3^/Gd"A_/GB`/GDa/Gwb/Gwc/Grg/GCL/GCL/GCLg/GnL /GCL/GCL/GCL/GCLm/GGN^n/Go/Gq /GCL/GCL/GCL/GCL/GCL/GCL/GCLw/GAGx/GI\y/GN/GOP{/G|_ |/GW }/Gh;Z~/G^/GA(/GF/Gzr ~/GOP/G` |/GCL/G.D/G/IQ/G1F/G4J-Au/G6CLt/G7CL/G9rG /G;yb /GI96/G?G/G@OP/GBCL:/GE^J;/GHS{ /G__ > /G`_ > /GbCL/GcCL/GdCL/GeCL/GfCL/GgCL/GiCL/Gj^/GkCL/GlCL/GmCL/GoN$/GpCL/GsD(/GuCL/GvCL/GxE/G{CL/G|CL/G}CL/GOP$/GIs%/GH2&/GNk/GCL*/GL,/Gg/GOP./GS/GCL/GCL/GOP/GCL3/GqR4/GAH6/G_37/GZ8/Gag9/Gb1:/G_ ;/G]3/GTne?/GFA@/GE~A/GW>q/GOPD/GGE/GF%F/GFXG/GQ/G}/GC /G}S3/Gc /G`/GEa/G} /Gq+ /Gt /Gt !/GCL /GCL/GCL/GeM /GOP/GR/Gf3/GG/G }f /G"W/G#p6/G%CL/G&CL/G'CL/G(CL/G)CL/G-Ir\/G.HZ/G/L/G2t4 /G5IU /G7CD/G8J3/G:N4p /G=o/G@H/GC|` /GEVz/GFk/GIydZ/GJw3 /GM`-/GNR¨/GOKx/GRph /GUo /GV`f/GW\P/GX^ /GZCL/G[CL/GCL/GCL/GCL/GOP/GOP/GOP/GCL/GK/GHgR/GH,/GGM/Gi/Gi}e/G"k }f/G9y ^ ^ M/GrF N/GDO/GFj@P/GECQ/GSR/GRmS/G@JeT/GNBV/Gw X/GF@EY/GI [/GBy\/GT9^/Gc_/GB`/GEa/Gx\*b/Gwc/Gt >/GCL/GCL/GCLg/GnA /GCL/GCL/GCL/GCLm/GGmn/G 4o/G rj /GCL/GCL/GCL/GCL/GCL/GCL/GCLw/GA(x/GHzy/GQL/GOP{/G} |/GU}/Gf~/G"^/GMAc/GNF/GQ}: ~/GSOP/GV_ |/GYCL/G\E/G]JI/G^F-/GaPu/GcCLt/GeCL/Ggpz /Ghy /Gipx 5/GkI86/GlG/GnCL/GqCL:/Gt\jY;/GwQ^L/GAoA/GCJP/GDC/GGQ/GIvb/GJP(/GKM$\/GLiU /GMJU#/GNJ/GxCL/G{E:/G}~n/G~OP/GCL/GCL/GCL/GCL/GCL/GCL/GCL/GNg/GG6g/GY,/G_ > /G_ > /G_ > /GCL/GCL/GCL/GCL/GCL/GCL/GCL/G^/GCL/GCL/GCL/GN&/GCL/GD,L/GCL/GCL/GEZ/GCL/GCL/GCL/GOP$/GIv%/GHȥ&/GLP/GCL*/GL;,/Gfߒ/GOP./GS/GCL/GCL/GOP/GCL3/GqJ4/GAH6/GKL7/GEf8/GY39/Gb:/GX,;/G\3/GTd?/GG&@/GEϣA/GWM/GOPD/GGϛE/GF;F/GF2G/GQV/G |Y/G B`/G |4/G df /G\C/GEG/G}R /GqHF /Gu /Gu !/G@CL /GACL/GBCL/GDgd /GFOP/GGS}/GIe@/GJHj/GMFv /GNo/GPp/GRCL/GSCL/GUCL/GVCL/GWCL/GZIu/G[H]X/G\H5/G_t /GbJ; /GeCSc/GfJ%g/GgMu. /Gjs\/GmH4/Gp|oQ /GrVy/GsiP0/GwydZ/Gxw /Gz_/G{Rq@/GL/Gp /Gj /G`/G[f/G^ /GCL/GCL/GCL/GCL/GCL/GOP/GOP/GOP/GCL/GK/GHh:/GH/GG/Gj/Gj}e/GNS"}f/Ggw ^ ^ M/G s N/G DO/GFP/GEQ/GSR/GRS/Gof T/GO2V/Gy] X/GFKY/GI8[/G \/GU ^/G c*_/G!B`/G#Da/G$ugb/G%vc/G&r/G)CL/G*CL/G+CLg/G-n /G/CL/G0CL/G1CL/G3CLm/G6GFn/G9@!o/G:rӄ /GCL/G?CL/GACL/GBCL/GCCLw/Gn{Rx/GoI{y/GpO)/GqOP{/Gs" |/GtT}/Gue6Y~/Gw^/GzB/G{F/G~} ~/GOP/G` |/GCL/GE /GJq/GF/GH)u/GCLt/GCL/Goȴ /Gy;d /Gp5@ 5/GI*c6/GG/GCL/GCL:/GR;/GP<JC/G?OP/GACLx/GCDQNy/GDNz/GFLu/GGOP/GICL}/GLL#~/GMHo/GNJN/GOE !/GPOP~/GRCL/GTEG/GWF?/GXB/GYFL/GZJ /G[G/G\C./G]F?/G_Kc/G`BI/Gbx/GcB\/GfO/GhI%/GiL/GloA/GnJP/GoD/GO/Gv1/GP(/GM"/Glº /GJM/GJV/GCL/GE/G~n/GOP/GCL/GCL/GCL/GCL/GCL/GCL/GCL/GNg/GEf/GNg/G_ > /G_ > /G_ > /GCL/GCL/GCL/GCL/GCL/GCL/GCL/G^/GCL/GCL/GCL/GN'/GCL/GD+d/GCL/GCL/GD/GCL/GCL/GCL/G OP$/G I}%/G H&/G K+/G CL*/G Ld,/G f/G OP./G S/G CL/G CL/G OP/G CL3/G qde4/G AH6/G Pٚ7/G }fg8/G U 9/G #bĄ:/G %W;/G &\4/G )Tso?/G *G@/G +EA/G ,WD/G -OPD/G .GE/G /FXF/G 0FOG/G 1Q|:/G 4|/G 5Bf/G 6|/G `d /G c_b/G dE/G e}h /G fqes /G guD /G hua !/G kCL /G mCL/G nCL/G pd /G rOP/G sR+/G tf U/G uHv/G y' /G {b/G |pk/G ~CL/G CL/G CL/G CL/G CL/G Iu/G Hj/G Ki/G u' /G G /G Ci(/G I/G JY /G o/G I/G | /G W/G gi@/G ydZ/G x /G ]/G Q/G LG/G p- /G iH /G `#3/G Yf/G ^ /G CL/G CL/G CL/G CL/G CL/G OP/G OP/G OP/G CL/G L/G Hi"/G Hٞ/G GѼ/G h/G h}e/G {l}f/Gvњ ^ ^ M/G 7rc N/G 9D­O/G :GRP/G ;EQ/G >SR/G ?R6S/G @n T/G BOѕV/G Cz X/G EF_Y/G FI_[/G G\/G HX^/G Kdȉ_/G MB`/G OCya/G Pvb/G Qw(c/G Rs/G TCL/G UCL/G WCLg/G Yn /G [CL/G \CL/G ]CL/G ^CLm/G aFvn/G @o/G s^ /G CL/G CL/G CL/G CL/G CL/G CL/G CLw/G x/G HLy/G P/G OP{/G @W |/G Thg}/G d*~/G ^/G A/G F/G y ~/G OP/G a |/G CL/G E/G Jɒ/G F/G QCKu/G CLt/G CL/G o /G y# /G pm 5/G I6/G G/G CL/G CL:/G M;/G N) /G _ > /G _ > /G CL/G CL/G CL/G CL/G CL/G CL/G CL/G ^/G !CL/G "CL/G #CL/G $N%b/G &CL/G )D'/G +CL/G ,CL/G .C/G 0CL/G 1CL/G 2CL/G 5OP$/G 6I,%/G 7H&/G :IĚ/G =CL*/G ?L,/G @gN/G AOP./G BR/G DCL/G ECL/G HOP/G JCL3/G MqE4/G NAH6/G QG@7/G RFf8/G S^g9/G Vb1:/G Xg;/G ]S4/G T?/G G9@/G FsA/G W/G OPD/G GE/G FsF/G FjG/G Q/G ~_/G Cf/G }/G d8 /G ]/G E/G } /G q /G u /G u6 !/G CL /G CL/G CL/G h /G OP/G S?F/G e_/G H/G ~s /G {/G p3/G CL/G CL/G CL/G CL/G CL/G Iqt/G Hx/G N/G uS[ /G G /G Ci(/G JI/G Q3 /G r /G I4M/G |j /G W/G fn/G y`B/G x+ /G \f/G QW/G Lcj/G pX /G nD /G `/G ^y/G ^ /G CL/G CL/G CL/G CL/G CL/G OP/G OP/G OP/G CL/G L=/G Hk/G HHٞ/G IGu/G Kzff/G Lzff}e/G Vi}f/G v ^ ^ M/G gs1L N/G iDǪO/G jGP/G kF7 Q/G nSR/G oRE,S/G qnn T/G rPV/G s| X/G uFcY/G vI[/G wnQ\/G xUԟ^/G |f_/G }B`/G Bva/G wb/G zW c/G u/G CL/G CL/G CLg/G nh /G CL/G CL/G CL/G CLm/G F4n/G @ 3o/G t#B /G CL/G CL/G CL/G CL/G CL/G CL/G CLw/G }x/G K\y/G N\/G OP{/G @|/G Ty}/G eO~/G ^/G A82/G F_n/G y] ~/G OP/G `Sk |/G CL/G E /G KN/G F/GHu/GCLt/GCL/Gn) /Gy /Gpm 5/GI 6/GG/G CL/G!CL:/G#K);/G$LZOP/G@CLY/GBF Z/GC{ /GEOP/GGCL]/GIzcz ^/GK[]a/GtOP/GvCLa/GyP/GzOP/G|CLd/G~E#/GOPf/G^/GCLh/GBi/GOІ/GOPk/GL l/GFQm/GDzn/Gh# o/G]Wp/GSW q/GM# r/GO s/GKBt/GK_u/GJp/GOP/GCLx/GDy/GKAz/GM#/GOP/GCL}/GL~/GH/GJ/GE&/GOP~/GCL/GE/GF/GBw/GF?/GJ /GG/GC./GF:/GKU/GA/Gx/GAN/GOW@/GI8/GL/GoA/GJP/GE,O/GTW/Gv /GPB/GM/L/Gm /GJP/GJ/GCL/GEw/G@/GOP/GCL/GCL/GCL/GCL/G CL/G CL/G CL/GNg/GG6g/GYg/G_ > /G_ > /G<_ > /G>CL/G?CL/G@CL/GACL/GBCL/GCCL/GDCL/GE^/GGCL/GHCL/GICL/GJN./GLCL/GOD#?/GQCL/GRCL/GTCL!/GVCL/GWCL/GXCL/G[OP$/G\I%/G]H&/G`Hc/GcCL*/GeL,/GffL/GgOP./GhRZ1/GjCL/GkCL/GnOP/GpCL3/Gsq4/GtAH6/GwR7/G@8/GT9/GbK:/GZ3;/G\/GT0?/GGQ@/GFjA/GW2/GOPD/GGnE/GFoF/GFoG/GQz/G}ٙ/GB3/G}@/Gd /G_ɞ/GEN/G~ /Gq^ /Gu /Gu} !/GCL /GCL/GCL/GeM /GOP/GSAn/Ge`/GI8/G@?~/GћɊ/Gp0?/GCL/GCL/GCL/GCL/GCL/GIt-/GH/GJA/G up /G I] /GC./GJ,/GJw /Gn/GIew/G|` /GX>I/Gd/G yX/G!xH /G$[Q//G%Q]/G&K;/G)q /G,n /G-a3/G.^y/G/^ /G1CL/G2CL/G3CL/G4CL/G5CL/G9OP/G:OP/G;OP/G=CL/GhLm*/GiHm/GkH/GlGD/Goh/Grh}e/GkVe}f/Gu ^ ^ M/Gr N/GDO/GG5P/GF8Q/GSXR/GRoS/GnB T/GP V/G| X/GFY/GI[/G O\/GT ^/Gf&_/GB`/GB?a/GxLb/Gx=qc/Gs/GCL/GCL/GCLg/Go /GCL/GCL/GCL/GCLm/GE'n/Ggo/GtM9 /GCL/GCL/GCL/GCL/GCL/GCL/GCLw/G~\*x/GH\y/GO/GOP{/G@|/GTV}/Gg~/G^/G@/GFF0/Gy ~/GOP/G`b |/G0CL/G3E/G4J(/G5F/G8Q u/G:CLt/GoA /G?x /G@q 5/GBH16/GDG%/GECL/GGCL:/GHI/;/GJJە /G`_ > /Gb_ > /GdCL/GeCL/GfCL/GgCL/GhCL/GiCL/GjCL/Gk^/GmCL/GnCL/GoCL/GpN(/GrCL/GuD/GwCL/GxCL/GzC/G|CL/G}CL/G~CL/GOP$/GI%/GHͶ&/GIp/GCL*/GL^,/Ge^/GOP./GRc/GCL/GCL/GOP/GCL3/GqF4/GAH6/GJ@7/GC8/GT9/Gb:/GX;/G\Y/GT?/GGk@/GF+KA/GWq/GOPD/GH4E/GFF/GFG/GQ/G}2/GC /G}f/Ge' /G^f/GF8/G~# /Gqˈ /Gu /GvW !/GCL /GCL/GCL/Gg /GOP/GSW/GfG/GI/G@/Gn҈/Gpu ^ ^ M/Gsk N/GDѦO/GG$P/GFQQ/GSR/GRsS/Gn`* T/GPEV/G|7 X/GFKY/GI.[/Gs\/GVQ^/GgӀ_/GB`/GAބa/Gv*b/Gvc/Gr>/GCL/GCL/GCLg/Go{ /GCL/GCL/GCL/GCLm/GEk9n/G io/G t /GCL/GCL/GCL/GCL/GCL/GCL/GCLw/GC#x/GIy/GNR/GOP{/G@t|/GV'U}/Gf~/G"^/G$@|1/G&F/GQ} ~/GSOP/GV` |/GYCL/G\E&\/G]J/G^G;/GaHPu/GcCLt/GeCL/GgnB /Ghyl /Gip 5/GkHM6/GlGF/GnCL/GoCL:/GqHa;/GrItV~/G$H/G%JO/G'E/G(OP~/G*CL/G,E/G.F:/G/B/G0F[G/G2J /G3G&"/G4C/G5F/G6KU/G7Af/G9xr/G:B /G=O/G?I0/G@L/GDoA/GFJP/GGD/GJQ /GLv#/GMPB/GNM/L/GOl /GPJX/GQJr/GSCL/G~Ea/G@t:/GOP/GCL/GCL/GCL/GCL/GCL/GCL/GCL/GQs4/G{/GNg/G_ > /G_ > /G_ > /GCL/GCL/GCL/GCL/GCL/GCL/GCL/G^/GCL/GCL/GCL/GN$/GCL/GD /GCL/GCL/GD/GCL/GCL/GCL/GOP$/GI=%/GHo&/GPFf/GCL*/GM ,/Ge;/GOP./GQE/GCL/GCL/GOP/GCL3/Gqϑ4/GAH6/GI47/GB&f8/GT9/Gb:/GYg;/G_&f/GU ?/GG@/GFBA/GW/GOPD/GFzpE/GFF/GF$G/GR9 /G },/G B/G|4/Geq| /G_:V/GF4/G~@ /GqJ /Gv- /Gvv !/GCL /GDCL/GECL/GGg /GIOP/GKSJ/GLe/GMHH/GN@/GO/GPp]/GRCL/GSCL/GUCL/GVCL/GWCL/GZI/G[H/G\I/G_u} /GcHw /GeD/GfJP/GgO.{ /Gjn3/GmI/Gp| /GrZ/Gsb#r/Gwy7L/Gxx /GzY/G{P/G|L:/GqV /Gq /G`/G^|/G^ /GCL/GCL/GCL/GCL/GCL/GOP/GOP/GOP/GCL/GL/GHt/GH(/GG݄/Gh/Gh}e/GOm}f/Ggt ^ ^ M/Gs. N/G D7O/GH`P/GFQ/GSR/GRzS/Gn`* T/GP~V/G| X/GF)Y/GI݋[/G\/GVٚ^/G h_/G!C`/G#Aa/G$v{b/G%v\c/G&q/G)CL/G*CL/G+CLg/G-o. /G/CL/G0CL/G1CL/G3CLm/G6E32n/G9o/G:u /GCL/G?CL/GACL/GBCL/GCCLw/GFAux/GGH>y3/Nz3/OP{3/Am:|3/ Ud}3/ e1X~3/ ^3/@;3/E93/z)B ~3/OP3/` |3/CL3/E%s3/J3/!Gx3/$P8u3/&CLt3/'CL3/)no 3/+z\) 3/,q 53/.H63//GP3/1CL3/2CL:3/4HG;3/5H% <3/7[^?3/8AJ3/9OP3/;CLB3/eAC3/fU-lD3/g} E3/iR{F3/jRG3/kD(H3/l| L3/mC34 M3/n`z N3/o~R O3/pDP3/qE#Q3/rGR3/sET3/tI`U3/vI_V3/wJ3/xOP3/zCLY3/|G&"Z3/}|R8 3/~OP3/CL]3/{a ^3/a3/OP3/CLa3/SK3/OP3/CLd3/E9[3/OPf3/^3/CLh3/Ci3/MO3/OPk3/L l3/DHm3/B=qn3/j o3/]p3/S. q3/MR r3/O s3/KWyt3/Klgu3/J>3/OP3/CLx3/Dy3/Pz3/M*3/OP3/CL}3/L]~3/I3/K3/E)h3/OP~3/CL3/EW3/F3/Bɀ3/F!O3/Jā3/G&"3/C43/F3/Kc3/B-3/x3/BA3/Oe!3/I6/3/L3/oA3/JP3/EA3/-OBo3//v!3/0PB3/1M63/2mb4 3/3JX3/4J3/6CL3/9E3/:@t:3/CL3/?CL3/@CL3/ACL3/BCL3/CCL3/DCL3/GNg3/HM3/JYg3/K_ > 3/L_ > 3/M_ > 3/OCL3/PCL3/QCL3/RCL3/SCL3/UCL3/VCL3/W^3/XCL3/YCL3/ZCL3/\N&3/]CL3/`D$&3/bCL3/cCL3/eE@3/CL3/CL3/CL3/OP$3/I:%3/H&3/N]3/CL*3/M;',3/eW3/OP.3/QЎ3/CL3/CL3/OP3/CL33/qԈ43/AH63/R73/Og83/cs393/b:3/`;3/_Y<3/b&g3/OP>3/T?3/G@3/FZA3/W3/OPD3/F{)E3/FڊF3/FϣG3/RV3/}y3/C)3/}g3/f7 3/^-3/F!3/~] 3/r 3/vh. 3/v !3/CL 3/CL3/CL3/g 3/OP3/S"3/fN3/ I't3/ @=3/{Mi3/pl3/CL3/CL3/CL3/CL3/CL3/I'3/H3/M3/u 3/"H 3/$DJ3/%Jm3/'Ji" 3/*r@3/-I3/X|ƚ 3/Z[3/[`3/^yC3/_xP 3/bẌ3/cPR3/dL3/gqt 3/jv 3/k`f3/l^y3/n^ 3/oCL3/pCL3/qCL3/rCL3/sCL3/wOP3/xOP3/yOP3/{CL3/~L^3/Hx3/Hj3/G݄3/x33/x3}e3/VA}f3/)u ^ ^ M3/r N3/D[O3/H}P3/FQ3/SR3/R-S3/nn T3/PmV3/}T X3/FIY3/J_[3/ا\3/W^3/d_3/C`3/A)wa3/v#b3/vc3/r=q3/CL3/CL3/CLg3/om; 3/CL3/CL3/CL3/CLm3/En3/@3o3/v/ 3/!CL3/"CL3/#CL3/$CL3/%CL3/&CL3/(CLw3/+{\*x3/,Ky3/-OaH3/.OP{3//A|3/0S}3/2bO`~3/4^3/6@w3/8Eu3/;z ~3/=OP3/Aa |3/CCL3/FE-3/GJ3/HG3/KHSu3/MCLt3/OCL3/QnN 3/Rz+ 3/SqP 53/VH"63/WG3/YCL3/ZCL:3/H;3/GL<3/[F?3/A]3/OP3/CLB3/B C3/T8sD3/}% E3/TF3/Z=qG3/Q\)H3/|e L3/BR M3/`z N3/ O3/D+P3/DsQ3/FKR3/EwT3/IU3/I~V3/J;3/OP3/CLY3/GZ3/|oQ 3/OP3/CL]3/| ^3/a3/OP3/CLa3/ScG3/OP3/CLd3/EV[3/OPf3/^3/CLh3/C6]i3/L3/OPk3/LM l3/EGm3/Bzn3/hO\ o3/]Bp3/R q3/L r3/Nk s3/K[t3/Ko!u3/J0?3/OP3/CLx3/Cy3/Plz3/M-3/OP3/CL}3/Lu{~3/IBn3/K#3/ E%3/ OP~3/ CL3/EW3/F3/Bɀ3/F3/Jā3/G43/C3/F53/Kc3/B3/x3/B=3/ O`3/"IA3/#L3/NoA3/PJP3/QEf3/TLv3/Vv,3/WN=3/YM63/Zn  3/[JX3/\K%3/^CL3/aEw3/bAGu3/cOP3/eCL3/fCL3/gCL3/iCL3/jCL3/kCL3/lCL3/oNg3/pG6g3/qYg3/r_ > 3/s_ > 3/u_ > 3/wCL3/xCL3/yCL3/zCL3/{CL3/|CL3/}CL3/~^3/CL3/CL3/CL3/N*p3/CL3/D&3/CL3/CL3/E9[3/CL3/CL3/CL3/OP$3/Ig%3/HU&3/M53/CL*3/Mb^,3/gX"3/OP.3/Q\3/CL3/CL3/OP3/CL33/q43/AH63/^3373/S383/Y393/bĄ:3/WS3;3/\ <3/Yf3/OP>3/T:?3/Gz@3/FrA3/W3/OPD3/EE3/FAF3/F:G3/RM:3/y3/@33/yl3/eR 3/\3/F3/~z 3/ r1 3/!v 3/"wl !3/%CL 3/'CL3/(CL3/*h 3/,OP3/-S3/.e3//H3/0@3/2U"3/3p3/5CL3/6CL3/7CL3/8CL3/9CL3/=I'3/>H3/?L-3/Bv- 3/EG 3/GD3/HJ3/IPq 3/Mo33/xJ3/{|& 3/}\|F3/~_E3/yC3/xo 3/X*3/P3/K!3/q 3/o 3/`33/^y3/^ 3/CL3/CL3/CL3/CL3/CL3/OP3/OP3/OP3/CL3/M 3/H{F3/HR3/G%3/h3/h}e3/2o^'}f3/Qu?# ^ ^ M3/sNi N3/DO3/IE,P3/F"Q3/SR3/R{S3/nB T3/Q`V3/~* X3/FPY3/J[3/\3/U?^3/a%;_3/C`3/Aa3/wfgb3/w{c3/ sp3/ CL3/ CL3/ CLg3/o] 3/CL3/CL3/CL3/CLm3/@Dn3/Cgo3/Dw+ 3/GCL3/HCL3/ICL3/JCL3/KCL3/LCL3/MCLw3/Q~zx3/RHfy3/SN\3/TOP{3/UB"|3/VTS}3/Wc~3/Z^3/\ 3/^Ew'3/aw% ~3/cOP3/fb |3/hCL3/lE8w3/mK3/nGx3/qPu3/sCLt3/uCL3/wn 3/x{ 3/yrp 53/{H63/G3/CL3/CL:3/I/;3/F<3/[?3/Aw(3/OP3/CLB3/B}C3/SFD3/}T E3/YF3/WG3/TH3/| L3/B M3/`z N3/} O3/D>P3/D)Q3/FR3/EwT3/IU3/IV3/J3/OP3/CLY3/GxZ3/|} 3/OP3/CL]3/} ^3/` 3/OP3/CLa3/SK3/OP3/CLd3/El3/OPf3/ ^3/ CLh3/ Ci(i3/ N3/OPk3/L l3/JQm3/IGn3/i o3/]-p3/R{ q3/K r3/Mp s3/Kft3/Ktu3/J3/OP3/!CLx3/#CZy3/$N8z3/&M03/'OP3/)CL}3/,L~3/-Ie3/.KMz3//Et3/0OP~3/2CL3/4El3/7F53/8Bɀ3/9FxC3/:Jā3/;GC3/Kc3/@B3/Bx3/CCy3/nOy3/pIV3/qL3/toA3/vJP3/wE>3/zTB3/|v93/}N3/~M:>3/n 3/JZ3/MS3/CL3/E&3/AB3/OP3/CL3/CL3/CL3/CL3/CL3/CL3/CL3/Ng3/KC33/Y3/_ > 3/_ > 3/_ > 3/CL3/CL3/CL3/CL3/CL3/CL3/CL3/^3/CL3/CL3/CL3/N'3/CL3/D&3/CL3/CL3/DJ3/CL3/CL3/CL3/OP$3/IM%3/HU&3/L3/CL*3/M,3/b13/OP.3/Qx3/CL3/CL3/OP3/CL33/r43/A63/Yff73/Qf83/Z93/b:3/[3;3/]<3/\3/OP>3/U"Q?3/ G@3/ FA3/ W3/4OPD3/5FE3/6GF3/7FG3/8RH3/<}3/=C33/>}S33/?fW` 3/B_3/DF3/E~ 3/FrN 3/Gvܹ 3/HwQ? !3/KCL 3/LCL3/NCL3/Ph6 3/ROP3/SS3/Te3/UH>3/V@r3/W V3/Yp3/[CL3/\CL3/]CL3/^CL3/_CL3/bI3/dH3/eG3/hvY 3/kI@ 3/mD3/nJm3/oJ1 3/t3/JA3/| 3/^ˁ3/],3/yC3/y 3/W3/P3/Lڠ3/q 3/l 3/a33/^s33/^ 3/CL3/CL3/CL3/CL3/CL3/OP3/OP3/OP3/CL3/M-z3/H|.3/Hj3/G%3/hQ3/hQ}e3/Ws{}f3/wu4 ^ ^ M3/ s" N3/ DO3/ IhP3/ F Q3/ SR3/ RS3/ nB T3/ QnV3/ }7 X3/ "FY3/ #J<[3/ $'\3/ %Tl^3/ (eb_3/ )C`3/ *@ۘa3/ -vb3/ .uLc3/ /t >3/ 1CL3/ 2CL3/ 3CLg3/ 5oK 3/ 7CL3/ aCL3/ bCL3/ cCLm3/ fDn3/ i\o3/ jw@ 3/ lCL3/ mCL3/ oCL3/ pCL3/ qCL3/ rCL3/ sCLw3/ vBx3/ wI#y3/ yNL3/ zOP{3/ {A|3/ |T(}3/ }f*~3/ ^3/ ? 3/ EV3/ |& ~3/ OP3/ a |3/ CL3/ EH3/ Lr3/ G3/ H<u3/ CLt3/ CL3/ nh 3/ {X 3/ q 53/ H63/ G3/ CL3/ CL:3/ H;3/ P D<3/ [J?3/ AP3/ OP3/ CLB3/ B}C3/ RfD3/ | E3/ [\F3/ WRG3/ T H3/ |2 L3/ BR M3/ _ N3/ ~=q O3/ DP3/ DT5Q3/ FR3/ ET3/ I}U3/ IV3/ Jފ3/ OP3/ CLY3/ G0Z3/ |j 3/ OP3/ CL]3/ | ^3/ b3/ OP3/ CLa3/ R3/ OP3/ )CLd3/ +EsZ3/ ,OPf3/ .^3/ 0CLh3/ 2C.i3/ 3Vخ3/ 5OPk3/ 6L l3/ 7HQm3/ 8Gn3/ 9k o3/ <]p3/ >QH q3/ ?MW r3/ @LG s3/ AKgt3/ BKvju3/ CI3/ DOP3/ FCLx3/ HBMy3/ ILӧz3/ KMD3/ MOP3/ OCL}3/ QL~3/ SIa3/ TKq3/ UE3/ VOP~3/ XCL3/ ZE@3/ \F53/ ^B3/ _F?3/ `Jā3/ aG43/ bC3/ cFݱ3/ KU3/ B3/ xy3/ BD3/ O3/ Ig53/ L3/ oA3/ JP3/ FN=3/ R3/ v3/ Ny3/ M8k3/ p 3/ JYz3/ M3/ CL3/ E3/ AGu3/ OP3/ CL3/ CL3/ CL3/ CL3/ CL3/ CL3/ CL3/ R)3/ Kf3/ ^3/ _ > 3/ _ > 3/ _ > 3/ CL3/ CL3/ CL3/ CL3/ CL3/ CL3/ CL3/ ^3/ CL3/ CL3/ CL3/ N33/ CL3/ D"W3/ CL3/ CL3/ CL!3/ CL3/ CL3/ CL3/ OP$3/ IK%3/ H&3/ K3/ CL*3/ M ,3/ `-3/ OP.3/ QV3/ CL3/ CL3/ OP3/ CL33/ r43/ !AH63/ $R73/ %Ef83/ &Yٙ93/ (bK:3/ *[4;3/ +]ٚ<3/ TZ3/ UOP>3/ VUya?3/ WGg@3/ XF:A3/ YXd^3/ ZOPD3/ [FlE3/ \GF3/ ]GG3/ ^R3/ bx43/ c@g3/ dyFf3/ ef- 3/ h^63/ iG3/ j~Ü 3/ lrk 3/ mw 3/ nw !3/ qCL 3/ rCL3/ sCL3/ uf 3/ wOP3/ yS3/ zfD3/ {I+3/ |A|3/ }Y3/ ~p"3/ CL3/ CL3/ CL3/ CL3/ CL3/ I3/ H3/ O3T3/ vR 3/ Gٚ 3/ D3/ J 3/ L] 3/ pC33/ Jj3/ },l 3/ `3/ [m3/ yC3/ y1 3/ W('3/ Ph3/ K3/ q 3/ nQ 3/ `33/ ^y3/ ^ 3/ CL3/ CL3/ CL3/ CL3/ CL3/ OP3/ OP3/ OP3/ CL3/ MP 3/ H}3/ H3/ G%3/ h3/ h}e3/ }q}f3/ t7 ^ ^ M3/ 9sk N3/ ;DO3/ 3/ p 3/ JX3/ N3/ CL3/ E3/ @t:3/ OP3/ CL3/ CL3/ CL3/ CL3/ CL3/ CL3/ CL3/ Rl3/ F3/ Pg3/ _ > 3/ _ > 3/ _ > 3/CL3/CL3/CL3/CL3/CL3/CL3/CL3/^3/CL3/CL3/CL3/N43/CL3/!D!p3/#CL3/$CL3/&B3/)CL3/*CL3/+CL3/-OP$3/.Iw%3//H&3/2J3/5CL*3/7M<,3/8`3/9OP.3/:Q913/3/|UoN?3/}H @3/~FA3/Xm3/OPD3/ETE3/G0F3/G){G3/R3/@ 3/Df3/@c33/f75 3/]b3/G!3/~ 3/r 3/wQ? 3/w !3/CL 3/CL3/CL3/i 3/OP3/S3/ec3/H 3/@ӷ3/$3/pH3/CL3/CL3/CL3/CL3/CL3/I3/H3/Hmq3/v 3/H" 3/D3/JZ3/P 3/rP3/J 3/},l 3/b:S3/Y=3/yG3/y]w 3/V3/PO3/M(3/r 3/m 3/ac33/^|3/^ 3/CL3/CL3/CL3/CL3/CL3/ OP3/ OP3/ OP3/CL3/MwX3/H3/G=3/Ah{3/Dh{}e3/q?}f3/ t ^ ^ M3/_s" N3/aDO3/bHP3/cGQ3/fSR3/gRS3/h~l^ T3/iP~V3/k| X3/mF^Y3/nJk[3/o\3/pWO^3/sf/_3/tC9`3/wB6a3/u.b3/vBc3/saH3/CL3/CL3/CLg3/o. 3/CL3/CL3/CL3/CLm3/E~4n3/4o3/v/ 3/CL3/CL3/CL3/CL3/CL3/CL3/CLw3/{zx3/IaHy3/M3/OP{3/@|3/UH}3/d q~3/^3/@w3/E|3/w| ~3/OP3/_މ |3/CL3/EH3/L3/F3/ Iu3/ CLt3/ CL3/n| 3/z 3/rQ 53/HV63/F3/CL3/CL:3/HG;3/Q<3/[k{?3/A3/OP3/!CLB3/#A:C3/$P*D3/%} E3/'QF3/(Y(G3/)FpH3/+}P L3/,Cp M3/-` N3/.~R O3//D̘P3/0C_Q3/1GR3/2ET3/3JU3/4IV3/5J,3/6OP3/8CLY3/:HmZ3/;|} 3/=OP3/?CL]3/i|& ^3/k`FC3/lOP3/nCLa3/qPQ3/rOP3/tCLd3/vEZ3/xOPf3/z^3/{CLh3/}Ci3/~VYE3/OPk3/M l3/Cm3/Apn3/h!H o3/]u<p3/S= q3/L r3/N s3/Kp t3/K|u3/I}3/OP3/CLx3/Bcy3/I%z3/M23/OP3/CL}3/LJ~3/I3/K3/E 3/OP~3/CL3/D3/Fݱ3/B3/Fi3/Jā3/GC3/Cμ3/F/3/Kc3/A-3/xZ3/A߻3/OI_3/Is3/L3/oA3/JP3/FQ"3/O3/v13/N3/M?3/p 3/JV3/N3/CL3/E3/A.3/OP3/CL3/CL3/CL3/CL3/CL3/CL3/CL3/Ng3/G6g3/0XY3/1_ > 3/2_ > 3/3_ > 3/5CL3/7CL3/8CL3/9CL3/:CL3/;CL3/CL3/@CL3/ACL3/BN13/DCL3/GD#?3/ICL3/JCL3/KC 3/NCL3/OCL3/PCL3/SOP$3/TIλ%3/UH9&3/XI3/ZCL*3/]MB,3/^]]a3/_OP.3/`Q3/bCL3/cCL3/fOP3/hCL33/jrY843/AH63/T73/s83/R93/b:3/[g;3/` <3/]Y3/OP>3/U?3/H'@@3/FλA3/XA3/OPD3/FƃE3/GDF3/G<G3/Ru3/y3/@3/y 3/fte 3/_=3/GE3/~ 3/rE 3/w 3/x# !3/CL 3/CL3/CL3/g 3/OP3/T~3/f4P3/IJ03/A/?3/ȃ3/p3/CL3/CL3/CL3/CL3/CL3/Ij3/HA3/P63/v( 3/Fw 3/D3/J|13/Ji" 3/ qi3/J3/},l 3/cr3/X3/yG3/yz 3/VQ+3/P93/Ki3/ r1 3/$qD 3/%`3/&^y3/'^ 3/(CL3/)CL3/*CL3/,CL3/-CL3/0OP3/1OP3/2OP3/]CL3/`M{3/aHo3/bH:3/cG3/ey33/fy3}e3/z!}f3/t ^ ^ M3/s\ N3/DO3/HYP3/FAQ3/S&R3/RpS3/c T3/PxCV3/|1 X3/FNY3/J[3/J\3/U@^3/a_3/CU`3/Ba3/uzb3/vqc3/sQ3/CL3/CL3/CLg3/o] 3/CL3/CL3/CL3/CLm3/F)n3/4o3/vD 3/CL3/CL3/CL3/CL3/CL3/CL3/CLw3/BLx3/Jy3/Nz3/OP{3/@|3/Uu}3/f'~3/^3/@|13/F" 3/} ~3/OP3/a. |3/$CL3/'ED;3/(K#3/)Ff3/-Q5ru3//CLt3/0CL3/2nX 3/3zP 3/5r 53/7H63/8F3/:CL3/;CL:3/=G';3/>OO<3/@Zij?3/AA3/BOP3/DCLB3/FAC3/GOD3/H}T E3/JTzF3/KW G3/L|\ H3/M}7 L3/NB M3/O`z N3/P~R O3/QDP3/RB{Q3/SFۆR3/TE{ST3/UJ6yU3/VJV3/XJ3/YOP3/[CLY3/\IwZ3/^|} 3/_OP3/CL]3/|& ^3/^ 3/OP3/CLa3/OL3/OP3/CLd3/EZ3/OPf3/^3/CLh3/DGi3/UN3/OPk3/L" l3/F=qm3/E33n3/iO\ o3/]-p3/T q3/OaH r3/R{ s3/Kst3/KUu3/Iw3/OP3/CLx3/B)y3/Hz3/L3/OP3/CL}3/L~3/I3/KG3/E3/OP~3/CL3/D3/F/3/B 3/F3/Jā3/GC3/Cμ3/F3/Kc3/Af3/xuf3/B 3/Oy3/I_3/L3/oA3/ JP3/ Ff3/Lv3/v 3/N3/MA3/p 3/JU#3/N3/CL3/E3/B 3/OP3/CL3/ CL3/!CL3/"CL3/#CL3/$CL3/%CL3/PNg3/QG6g3/SPg3/T_ > 3/U_ > 3/V_ > 3/XCL3/YCL3/ZCL3/[CL3/\CL3/^CL3/_CL3/`^3/aCL3/bCL3/cCL3/eN)3/gCL3/iD%3/kCL3/lCL3/nD_3/qCL3/rCL3/sCL3/uOP$3/vI٢%3/wH9&3/zG3/}CL*3/M,3/\v3/OP.3/P3/CL3/CL3/OP3/CL33/r43/AH63/UY73/I83/[393/b:3/Z34;3/\<3/Z3/OP>3/U?3/H?@3/FA3/X E3/OPD3/FZE3/GXF3/GS<G3/RT3/}3/B3/}3/fB 3/]Y3/Gi~3/)b 3/r 3/w 3/xt !3/CL 3/CL3/CL3/hJ 3/OP3/TMI3/e3/IN3/AG3/떬3/pt3/CL3/CL3/CL3/CL3/CL3/I3/H3/ I3/#v 3/&GUU 3/(D3/*JX3/+O^ 3/.n93/1J^3/4},l 3/6d3/7W63/:yK3/;y@ 3/>U3/?P&t3/@Lv3/Cr]\ 3/Fn 3/G`3/H^y3/I^ 3/KCL3/LCL3/MCL3/NCL3/OCL3/ROP3/|OP3/}OP3/CL3/M3/H(3/H3/G3/iz3/iz}e3/m=N}f3/2t ^ ^ M3/s. N3/D1O3/HbP3/FQ3/S&R3/R S3/@T3/P V3/{~8 X3/F;Y3/Jh[3/q&\3/U^3/fl_3/CU`3/Ca3/ub3/vaHc3/r3/CL3/CL3/CLg3/oek 3/CL3/CL3/CL3/CLm3/F~n3/@o3/u 3/CL3/CL3/CL3/CL3/CL3/CL3/CLw3/ x\*x3/ J >y3/ NL3/ OP{3/@||3/T7}3/g ~3/^3/@3/Fc 3/y@ ~3/DOP3/G`b |3/JCL3/MEG3/NJ3/OG]3/RI2u3/TCLt3/VCL3/Xn 3/Yz 3/Zq 53/\HD63/]Fئ3/_CL3/`CL:3/bG̶;3/cM<3/eZ?3/fA3/hOP3/iCLB3/kA/C3/lMD3/n|Ȭ E3/oQF3/qWRG3/rH=qH3/s~6 L3/tCp M3/u` N3/v34 O3/wDP3/xBQ3/yG1R3/zET3/{JRU3/|J1V3/}K 3/~OP3/CLY3/I>Z3/|oQ 3/OP3/CL]3/| ^3/\3/OP3/CLa3/NQl3/OP3/CLd3/EW3/OPf3/^3/CLh3/D4Ki3/TK3/OPk3/Lf l3/Dm3/C33n3/iL o3/]Wp3/X q3/Pz r3/Q s3/Kst3/KUu3/I3/F3/Kc3/!A3/#xJ3/$A3/'OBo3/)IF3/*L3/-oA3//JP3/0Frw3/3S3/5v3/6PB3/7MC]3/9qI 3/:J\_3/;N3/=CL3/@EtC3/AB 3/BOP3/DCL3/ECL3/FCL7CL7CL7CL7CL7 Ng7 FP7 Xc37 _ > 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N*p7 CL7#D%7$CL7%CL7'D7*CL7+CL7,CL7/OP$70I%71HӀ&73Q76CL*79N,7:[`7;OP.7dPS7fCL7gCL7jOP7kCL37nrV47pAH67sQ77tEL87uTL97wb:7{ZY;7|_g<7}]47~OP>7U>?7HYK@7FnA7W7OPD7E=E7GlF7GjG7RI7yg7@7y7f 7_7Gi~7Fv 7r 7x 7x !7CL 7CL7CL7hS 7OP7TD7eoL7I7A7z4D7p؋7CL7CL7CL7CL7CL7I7H7P |7w% 7H; 7D7J;7J 7r7K7}: 7e^*7V7yO7y] 7U7P7Lz7rz 7,n 7-`f7.^y7/^ 70CL72CL73CL74CL75CL78OP79OP7;OP7=CL7@M7AH(7BH7CGe7Fxff7Gxff}e7V)}f3/Xu&X ^ ^ M7as1L N7dDO7eGP7fFwQ7SR7RS7@&T7OV7zK X7F#cY7J?[7J\7UI^7a_7CU`7Dia7vb7uc7rR7CL7CL7CLg7oU 7CL7CL7CL7CLm7G0zn7o7t 7CL7CL7CL7CL7CL7CL7CLw7{\*x7JGy7PH7OP{7 |7U}7g5~7^7AM7F7}: ~7OP7^ |7CL7E:F7 I7 F7 Pu7CLt7CL7no 7y~ 7q% 57H67Ft7CL7CL:7G;7LL<7 Zf?7!A7"OP7$CLB7&AfC7'LoD7(}5` E7*R{F7+WRG7,|Q H7-~kT L7/C34 M7X` N7Y} O7ZDwP7[BDQ7\FAR7]E]T7^JxU7_JO V7`K7aOP7cCLY7eIZ7f|oQ 7hOP7jCL]7l| ^7nZ77oOP7qCLa7tM57uOP7wCLd7yEW7{OPf7}^7~CLh7Dui7T7OPk7LW l7Epm7Cffn7iB o7\pp7U8R q7N3 r7P# s7K{t7Ku7H47OP7CLx7A:y7O z7L7OP7CL}7L~7J*.7K7E7OP~7CL7DJ7F/7B 7F7Jā7GC7C>7G )7Kc7A7xx;7BV7O7I27L7oA7JP7F?7SX7v37PB7M?7t 7JZ7N7 CL7#ED7$A.7%OP7'CL7(CL7)CL7*CL7+CL7-CL7.CL71P72G6g73X74_ > 75_ > 76_ > 78CL79CL7;CL7CL7?CL7@^7ACL7BCL7DCL7EN+)7GCL7JD-47KCL7LCL7NEsZ7QCL7RCL7SCL7VOP$7WI%7XH9&7ZO}H7CL*7N2g,7[7OP.7P7CL7CL7OP7CL37rk47AH67Z77Aff87Rg97bK:7^;7_`<7ag7OP>7U ?7HmP@7G A7X77OPD7EE7G|JF7G|G7R7~97Cc47}fg7g 7_D7Grv7c 7s T 7x:D 7x !7CL 7CL7CL7g>? 7OP7Tl<7f7IB;7A]7je7p7CL7CL7CL7CL7CL7I7H7K7wB 7GY 7 Dg7 J+7 LL 7n37K+W7}: 7e 7Ux7yO7y{ 7UQ7O7 K7#rE 7Nu 7O`7P^y7R^ 7SCL7TCL7UCL7VCL7WCL7[OP7\OP7]OP7_CL7bN^7dH7eHe7fG57ii7li}e7p}f7u6 ^ ^ M7rF N7DO7G>P7FVQ7SR7RpS7@;T7NV7y| X7FY7J[7\7W^7eS_7Cr`7DNa7wb7v#c7rǯ7CL7CL7CLg7n 7CL7CL7CL7CLm7Gn74o7tM9 7CL7CL7CL7CL7CL7CL7CLw7@{x7K y7Op7OP{7~0 |7U+}7h*1~7^7A7Fz7"zT ~7$OP7(_ |7*CL7-E37.IM7/F}72Hdu74CLt76CL78n 79y;d 7:p 57Fq7@CL7ACL:7CGn;7DK='<7FZ,?7GAZ7HOP7JCLB7LAC7MLƉD7N|` E7xR34F7yY >G7z|\ H7{~E L7|Cp M7}ap N7~~R O7D P7B\Q7FR7EchT7J}U7Ja?V7K}7OP7CLY7JZ7|C 7OP7CL]7|} ^7X7OP7CLa7L7OP7CLd7E7OPf7^7CLh7DVi7SQ7OPk7L˄ l7Cm7An7g( o7\Vqp7W q7NL r7O s7K~t7Ku7H7OP7CLx7AZy7Mz"z7L7OP7CL}7M#~7JI7K97E#7OP~7CL7D- 7F7C7F7Jā7GQ7C7G )7Kc7AI7x]Y7BV7O^17 I'7 L7 oA7JP7Go7Q7v17PB7@M<7At 7BJX7CN7ECL7HE7IAI7JOP7LCL7MCL7OCL7PCL7QCL7RCL7SCL7VO7WFFg7XNg7Y_ > 7Z_ > 7\_ > 7^CL7_CL7`CL7aCL7bCL7cCL7dCL7e^7gCL7hCL7iCL7jN-S7lCL7oD;7qCL7rCL7tD7vCL7wCL7xCL7{OP$7I%7H9&7M7CL*7NK,7Z/B7OP.7P7CL7CL7OP7CL37r47A67U37787R97b:7Z9;7]<7Zf7OP>7V?7H{@7GA7X- 7OPD7EE7GF7G@G7S7zg7A,7y27g[ 7\$7Gi~7' 7s)~ 7xt 7 y#; !7 CL 7 CL7CL7jb 7OP7T7f!7I7A7xp7p7CL7 CL7!CL7"CL7#CL7&I 7'H7(ND7,wna 7/Hw 71DQN72IL73Q1 76r&f79KKF7<}: 7>c7@U7CyS7lz % 7nU7oO7pL7srn 7vo 7w`f7y^s37z^ 7{CL7|CL7}CL7~CL7CL7OP7OP7OP7CL7N07H7HM7G7x7x}e7Ug}f78ukp ^ ^ M7s" N7DBO7GdP7FV5Q7SR7RpS7r T7NV7yn X7EY7J[7L\7U^7`ݴ_7C#`7E"a7x b7wc7uR7CL7CL7CLg7o] 7CL7CL7CL7CLm7Gn7@+3o7t( 7CL7CL7CL7CL7 CL7 CL74CLw77{x78Hy79N.7:OP{7;~= |7=U}7>h~7@^7CAL7DF 7Gx ~7IOP7M_މ |7OCL7RE)7SH+7TFv7WPu7ZCLt7[CL7]n- 7^y# 7_p 57bHf67cF7eCL7fCL:7hGC;7iJB.<7kY?7lA7mOP7oCLB7AC7VD7|A E7OF7U\G7FH7~cX L7C M7ap N7~R O7DP7BiQ7FR7EchT7JU7JwV7K7OP7CLY7J%gZ7|& 7OP7CL]7|C ^7X7OP7CLa7LE7OP7CLd7Eѕ7OPf7^7CLh7Di7R7OPk7LÕ l7Lzm7Jn7j}q o7\?p7R q7 M r7 N s7 Kzt7 Ku7 H^7 OP7 CLx7 Afy7 Jz7 L7 OP7 CL}7 M~7 Jdb7 L 7 E#7 OP~7 CL7 D7 G )7 C7 F7 Jā7 !GQ7 #C7 $G7 %Kc7 &AX-7 (x7 )BV7 ,O^17 .I$7 /L7 2oA7 4JP7 5H7 `P527 cu87 dP(7 eM:>7 fu 7 gJ_C7 hN"7 jCL7 mE7 nB 7 oOP7 qCL7 sCL7 tCL7 uCL7 vCL7 wCL7 xCL7 {Ng7 |G6g7 }Pg7 ~_ > 7 _ > 7 _ > 7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 N+7 CL7 D27 CL7 CL7 C:7 CL7 CL7 CL7 OP$7 I%7 H9&7 LS7 CL*7 N_#,7 YD7 OP.7 P7 CL7 CL7 OP7 CL37 rș47 AH67 KL77 J@87 a397 bK:7 Y;7 _3<7 [37 OP>7 U?7 H@7 G)A7 WW7 OPD7 EiE7 GF7 GG7 S7 ~&f7 CP7 }27 f 7 )_o7 *Gi~7 +: 7 ,sF 7 -x0 7 .y]w !7 1CL 7 3CL7 4CL7 6fTQ 7 8OP7 9TC7 :fcj7 ;I 7 <@%7 >7 ?p 7 ACL7 BCL7 CCL7 DCL7 ECL7 HIh7 JH~7 KJ7 Nw 7 QH] 7 SD- 7 TI7 UJ 7 Xn37 [Kic7 _},l 7 acL7 bT<7 yS7 z 7 T(7 O7 L7 r+ 7 r@ 7 `f7 ^y7 ^ 7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 NV7 H7 H7 G7 h7 h}e7 >o}f7]t٠ ^ ^ M7 s" N7 D$O7 FPP7 EQ7 SXR7 ROS7 o T7 NgV7 x_ X7 E5Y7 J[7 \7 Y ^7 dA_7 C#`7 D:a7 v34b7 v\c7 s7 CL7 CL7 CLg7 oF, 7 CL7 CL7 CL7 !CLm7 $G1cn7 'go7 (sW 7 *CL7 +CL7 TCL7 VCL7 WCL7 XCL7 YCLw7 \@x7 ]Jffy7 ^PW 7 _OP{7 a| |7 bVL}7 ch~7 e^7 hAз7 iFX7 mq ~7 oOP7 r_ |7 tCL7 wE37 xHf7 yG7 }H u7 CLt7 CL7 nJ 7 yȴ 7 pm 57 H 67 FJ7 CL7 CL:7 G&";7 I?<7 Y:?7 A7 OP7 CLB7 A C7 V`)D7 | E7 \F7 RG7 IH7 ~0E L7 C M7 ap N7 ~R O7 D/P7 BQ7 F"R7 EL5T7 JU7 JV7 K 7 OP7 CLY7 JmZ7 | z 7 OP7 CL]7 { ^7 [7 OP7 CLa7 M 7 OP7 CLd7 E7 OPf7 ^7 CLh7 DZi7 Q7 "OPk7 #L l7 $K=qm7 %Hn7 &k o7 )[%p7 +S q7 ,N r7 -Q s7 .K~t7 /KXu7 1HR7 2OP7 4CLx7 6Ay7 7Iuz7 9L87 :OP7 7 u 7 J_C7 Nи7 CL7 E{}7 A7 OP7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 P7 Eg7 Ng7 _ > 7 _ > 7 _ > 7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 N+7 CL7 D"W7 CL7 CL7 Ci(7 CL7 CL7 CL7 OP$7 J&%7 H9&7 J 7 CL*7 Nu,7 Y7 OP.7 P7 CL7 CL7 OP7 CL37 r47 A67 WL77 P387 Z&g97 bĄ:7 \f;7 `s4<7 ]7 OP>7 U?7 H@7 G:A7 X 7 OPD7 HEQHE7 IGyF7 JGPG7 KS7 Oy7 P@7 Qyl7 Rg 7 U^j7 WGE7 XK 7 YsU: 7 Zx 7 [y# !7 ^CL 7 _CL7 `CL7 cixB 7 eOP7 fT7 gfd7 hHͶ7 i@a7 lypP7 np7 pCL7 rCL7 sCL7 tCL7 uCL7 xI!7 yH7 zMp$7 ~w 7 Hٚ 7 C7 IΘ7 Om 7 r97 KS7 }T 7 bܠ7 T7 yO7 z7 7 T7 OA7 L7 s 7 t 7 `37 ^y7 ^ 7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 N7 Hj7 H7 G^7 w37 w3}e7 lU}f7 ug ^ ^ M7&sk N7(DO7)FkP7*EQ7-SR7/RDS70n T71N- V72w' X74EuY75J^[76'\78VB"^7;f}_7CAa7?x\*b7@xǯc7Au=q7CCL7ECL7FCLg7HoU 7JCL7KCL7tCL7uCLm7yF}=n7|po7}r 7CL7CL7CL7CL7CL7CL7CLw7}Gx7IBy7N\7OP{7| |7V}7gۈ~7^7A\W7Fƍ7| ~7OP7^ׄ |7CL7ET7Gf7G;7OEu7CLt7CL7nJ 7y 7p 57H67Fra7CL7CL:7G );7H/<7XP?7A7OP7CLB7At@C7U9D7|q E7TF7SG734 H7~e L7C M7a N734 O7DP7BQ7FBR7EeT7JU7J(V7K7OP7CLY7JBUZ7{ 7OP7CL]7{ ^7 ]t7 OP7 CLa7M7OP7CLd7=E7?OPf7A^7BCLh7DE*i7EP 7GOPk7HM l7IGm7JFn7Lh o7N\ep7PS{ q7RL{ r7SNB s7TKUt7UKou7VG]7WOP7YCLx7[AW3y7\Gz7^L7_OP7aCL}7dM2~7eJ$7fL87gE,O7hOP~7jCL7lCu7oG )7pC7qF:7rJā7sGQ7uCB7vG&"7wKc7A7xP7B37OBo7I7L7oA7JP7H7O7u7P(7M<7u 7JZ7N{7CL7EtC7AGu7OP7CL7CL7CL7CL7CL7CL7CL7Ng7F37Q97_ > 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7 N+7 CL7D{7CL7CL7B7CL7CL7CL7OP$7J %7HӀ&7If_7"CL*7$N#,7%YP7&OP.7'PO7)CL7*CL7-OP7/CL372r474A676Qf777J@878Z97;bK:7=Z ;7>]&g<7?ZFg7hOP>7iUc?7jH@7kGEA7lWv7mOPD7nDE7oGF7pG6G7qR7t@ 7uD7w@Ff7xgVC 7{_w7|G37} 7~srb 7y 7y !7CL 7CL7CL7gd 7OP7T7e!7H7@ӷ77p7CL7CL7CL7CL7CL7I7Hk7J7w3 7I. 7C{7I/7Kce 7n7KF7} 7a7T~7yO7zT 7T]7Ob7LS7s8 7q@ 7`37^y7^ 7CL7CL7CL7CL7CL7OP7OP7OP7CL7N7Hj7H7G7kp71kp}e7n^e}f7ub ^ ^ M7Ks1L N7MDUO7OE.P7PEQ7SSR7TRSoS7UnB T7VN4KV7Ww' X7YE%Y7[J[7\L\7]WD^7`b._7aC*`7cBa7dvb7fwW c7gtu7iCL7jCL7kCLg7o{ 7CL7CL7CL7CLm7E7n7o7r 7CL7CL7CL7CL7CL7CL7CLw7yx7JHy7P(7OP{7|j |7V}7fs~7^7@7F7w ~7OP7^q7 |7CL7EY7G17Gx7Fֵu7CLt7CL7o 7y = 7pȵ 57H67Fe7CL7CL:7F5;7GO<7X?7 A7 OP7 CLB7A^vC7T$D7| E7TRF7T=qG7@H7~(I L7C M7ap N7 O7D|P7BQ7FR7EK{T7K"U7JPV7 K#7!OP7#CLY7%JfZ7&{H 7(OP7*CL]7,{Z ^7._7/OP71CLa73Mh37\OP7^CLd7`E7bOPf7d^7eCLh7gEV[i7iP*7kOPk7lM%& l7mHpm7nFRn7ojq o7r\p7tT q7uN r7vO s7wKt7xKou7yGw7zOP7|CLx7~Ay7P8z7L7OP7CL}7M<#~7J7L[57E"'7OP~7CL7C.7G7C 7F57Jā7GQ7CB7G&"7Kc7AJ7xT7BV7Ol7I-7L7oA7JP7G7S7u7PB7M:>7u 7JS7N\7CL7Ej7Aܠ7OP7CL7CL7CL7CL7CL7CL7CL7O37F<7Ng7_ > 7_ > 7_ > 7CL7CL7CL7$CL7%CL7&CL7'CL7(^7)CL7*CL7+CL7-N.7/CL71DJ73CL74CL76C79CL7:CL7;CL7>OP$7?J j%7@H&7BGԦ7ECL*7HN,7IY^T7JOP.7KPw7MCL7NCL7POP7RCL37Us347WAH67ZUf77[O387\[Y97^b:7Xs3;7\<7[ 7OP>7U$?7H @7GMA7Xu7OPD7DE7GF7GzG7S$7x7@47yg7gg 7_"r7G7 7s 7y1 7y{ !7CL 7CL7CL7hb 7OP7T7ff7H7@<7z7p27CL7CL7CL7CL7CL7I7H7K 7w 7IY 7C7Ib7L1s 7r7Kf7} 7`~7Tz7yS7zcz 7 T/7 Or7 LR7sU: 7ss3 7`37^vf7^ 7CL7CL7CL7CL7CL7OP7OP7 OP7"CL7%N~7&H"7'H7QG7Th7Wh}e7V<}f7vNj ^ ^ M7rs N7tDO7uDP7vEQ7ySR7zRS7{n T7|MμV7~v: X7EGY7Jۘ[77)\7Y^7g1%_7C1`7Ba7w >b7w(c7s7CL7CL7CLg7o 7CL7CL7CL7CLm7Ean7@fo7r 7CL7CL7CL7CL7CL7CL7CLw7|34x7Hy7Mff7OP{7zm |7VzH}7i%~7^7@7F]D7{ ~7OP7^" |7CL7E[7G17G 7N\u7CLt7 CL7#nÖ 7$y 7%p 57'H67(FQ7*CL7+CL:7-F;7.FsM<70X]a?71Aw(72OP74CLB76A:%C77SޮD78|` E7:TzF7;R\G7<|Q H7>~! L7?C M7@`z N7A} O7IDp~P7JCQ7KFR7LE5T7MK'U7NJV7OK:\7POP7RCLY7|JZ7}{ 7OP7CL]7z ^7`7OP7CLa7M7OP7CLd7F>K7OPf7^7CLh7Ei7Ok7OPk7M5 l7Im7Jn7i) o7\Np7V q7O r7R = s7Kt7K*u7Gq7OP7CLx7@y7O z7LE7OP7CL}7ML~7J37L7E7OP~7CL7C~7G&"7C 7F57Jā7GQ7D7G47Kc7@7xuf7B37OBo7I(7L7oA7JP7G7R7u 7 Ny7 M:>7 u 7 JP7 O 7CL7E7@7OP7CL7CL7CL7CL7CL7DCL7ECL7HQ 7IFf7KPg7L_ > 7M_ > 7N_ > 7PCL7QCL7RCL7SCL7TCL7VCL7WCL7X^7YCL7ZCL7[CL7]N077_CL7aD!p7cCL7dCL7fD;7iCL7jCL7kCL7mOP$7nJ %7oHЛ&7rP[27uCL*7xN,7yYZ7zOP.7{PX7}CL7~CL7OP7CL37s47A67Vٚ77Hf87U 97bK:7]g;7_<7Z7OP>7U$?7H@7GU5A7X<"7OPD7DE7GF7GľG7S87}7CFf7~47gNk 7\}7F7@7s 7yN 7z % !7CL 7CL7CL7h 7OP7TS7f(.7HB7@\7㔋7 p7CL7CL7CL7CL7CL7I7H7I7wS 7I* 7 C=7!IiN7#P 7&ni7)KZ7,|= 7.`7/T72yS73zr 75Tt77O*78K7;srb 7>ow 7?`7@^y7A^ 7BCL7DCL7ECL7FCL7GCL:OP:OP:OP: CL: O7:H:Hx:G%:j33:j33}e7n}f7#uA ^ ^ M:1sNi N:4DwO:5C]P:6E&Q:9SR::RZS:;m4 T:dMScV:fu? X:hEY:iJ[:jEL\:kW^:ne1_:oC1`:rAa:swb:twW c:ut:wCL:xCL:yCLg:{oek :~CL:CL:CL:CLm:E4n:lo:q :CL:CL:CL:CL:CL:CL:CLw:{x:L34y:M:OP{:y |:X}:hP~:^:@I:F:| ~:OP:^S |:CL:ES:F:F9:G>Fu:CLt:CL:n :yS :pi 5:H6:F<:CL:CL::FE;:E<:W?:A_/:OP:CLB:AC:S D:|s? E:RF:RG:BH:} L:C M:ap N:34 O:DdP:C*Q:,FR:-E-T:.KEU:/KV:0KA:1OP:3CLY:5JZ:6{LS :8OP::CL]:_:?OP:ACLa:DL*U:EOP:GCLd:IFxC:KOPf:M^:NCLh:PEi:QN:SOPk:TM5 l:UEm:VCn:Wh&f o:Z\p:\Uff q:]N r:^P s:_K*t:`Ku:bFq:cOP:eCLx:g@y:MFz:L1:OP:CL}:M^~:K:L:E:OP~:CL:Ci(:G&":C/:F:Jā:GQ:D:G4:Kc:AJ:xL_:BV:O:Iu:L:oA:JP:HR:PM:u[p:Ny:M:>:u :JOZ:N_:CL:E/:@t::OP:CL:CL:CL:CL:CL:CL:CL:PI:KL:Yg:_ > :_ > :_ > :CL: CL: CL: CL: CL:CL:CL:^:CL:CL:CL:N4:CL:D&:CL:CL:EV[:!CL:"CL:#CL:&OP$:'J%:(HͶ&:+OW:-CL*:XNB,:YY)/:ZOP.:[PI:]CL:^CL:aOP:bCL3:es4:gAH6:ja7:kR338:lUY9:nbK::r[L;:s_fg<:t]f:uOP>:vU?:wH@:xG[A:yX :zOPD:{CE:|GF:}G_G:~S2O:~:C33:}2:g\ :_:F:@:s :yz :z)B !:CL :CL:CL:gJ :OP:TD:f:HQ5:@+%:{ B:p:CL:CL:CL:CL:CL:I6:H:MX:wS :H :B:I :JK :r):L:| :_3:T<:yO:z :SV:O:L: s :#n :$a:%^y:&^ :'CL:)CL:*CL:+CL:,CL:/OP:1OP:2OP:4CL:7Oh:8HM:9H:;G:=x33:>x33}e:V}f:v ^ ^ M:Ys1L N:[DmO:CdP:DQ:SER:ReBS:m T:M V:u@ X:EnY:J[:}\:V^:d_:C1`:A<a:xǯb:xkc:t4:CL:CL:CLg:o :CL:CL:CL:CLm:DGn:yo:p :CL:CL:CL:CL:CL:CL:CLw:@x:Hfy:P >:OP{:y33 |:VI}:f~:^:@<:Eo:|` ~:OP:^6 |:CL:EP:FJ:F:Lu:CLt:CL: o1 : y`B : p# 5:HR6:F%z:CL:CL::F/;:H@<:W?:AK:OP:CLB:@=C:RmD:|{ E:!TF:"SHG:#|Q H:M} L:NCp M:O` N:P~R O:QD\0P:RC6]Q:SFFR:TDT:UKa%U:VK*{V:WKI:XOP:ZCLY:\J Z:]{/9 :_OP:aCL]:czcz ^:e^:fOP:hCLa:kL B:lOP:nCLd:pF:rOPf:t^:uCLh:wF>Ki:xM:zOPk:{M l:|IQm:}Gn:~j33 o:\#p:VB q:OH r:P s:KZt:KZu:Fq:OP:CLx:@Xy:Jz:LO/:OP:CL}:Md~:K%I:LP:Et:OP~:CL:C=:G&":C/:F?:Jā:G`:DG:GC:Kc:@:xc:B3:Os:I2:L:oA:JP:H<6:Lv:u[p:Ny:M=:u :JR>:N:CL:E:A:OP:CL:CL: CL:"CL:#CL:$CL:%CL:(P:)F:*Y:+_ > :,_ > :-_ > :0CL:1CL:2CL:3CL:4CL:5CL:6CL:7^:8CL::CL:;CL:CL:AD$&:CCL:DCL:EE#:HCL:ICL:JCL:MOP$:NJ%:OH&:zMQ:|CL*:N[,:Y:OP.:P5:CL:CL:OP:CL3:s%4:AH6:]L7:Gfg8:U349:bK::Xs3;:\&g<:\Fg:OP>:Uv?:H@:GZA:X:OPD:CE:GF:GHG:SC:~f:C:}g:g6 :^G:F4:@A:sl :y :zF^ !:CL :CL:CL:g3 :OP:T:fՕ:H:@:q:p$:CL:CL:CL:CL:CL:I:HM:IɈ:w :I :B=:HH:O :ns3: LQ:|ƚ :_"*:T0}:yO:z :@S:AO$:BL):Es :Hrff :I`:J^y:L^ :MCL:NCL:OCL:PCL:QCL:UOP:VOP:WOP:YCL:\O:]HM:_H1:`H:chQ:fhQ}e:mv'}f: w ^ ^ M:sNi N:DcO:ClP:DfQ:SR:ROS:m T:LɀV:t X:EeY:J[:u\:W4^:b_:C8`:@a:wb:x.c:t:CL:CL:CLg:n :CL:CL:CL:CLm:Dлn: o:p :CL:CL:CL:CL:CL:CL: CLw: x\*x: Gy:M:OP{:x |:Wi}:j~:^:0 :Eb:|& ~:OP:"^q7 |:$CL:'EKz:(F%:)G U:,Ju:/CLt:0CL:2o;d :3yZ :4pF 5:7H6:8F::CL:;CL::=F/;:>QN<:@W?:AA= :BOP:lCLB:n@۶C:oP%D:p| E:rU{F:sU34G:tFH:u}p L:vCp M:w`z N:x} O:yDUP:zCG Q:{FfR:|DT:}K~NU:~KIuV:KM):OP:CLY:JZ:{ :OP:CL]:z % ^:]7c:OP:CLa:Kr:OP:CLd:F?:OPf:^:CLh:Fqi:M:OPk:M7d l:Hm:Fn:j3 o:[zp:U q:Q r:P8R s:Kt:Ku:F8:OP:CLx:@Xy:I"+z:LnA:OP:CL}:Ms~:KG:L:E1b:OP~:CL:CSc:G4:C=:Fݱ:Jā:G`:DG:GC:Kc:A-:xnS:BV:O4:I\:L:oA: JP: HZ:6Lv:8u[p:9Ny::M<:;u : :U_ > :V_ > :XCL:YCL:ZCL:[CL:\CL:]CL:^CL:`^:aCL:bCL:cCL:eN. :fCL:iD:kCL:lCL:nD̘:CL:CL:CL:OP$:J%:Hˊ&:K\:CL*:O,:Yq:OP.:P.c:CL:CL:OP:CL3:s=4:A6:QL7:D38:Tf9:bĄ::Y;:]<:Z:OP>:UU?:H@:G_4A:X:OPD:CE:G3F:GƏG:S:@3:Es3:@g:goZ :_Ke:F>: @A: s : y] : zcz !: CL : CL: CL: hE^ : OP: TJ: eh(: H8: @+%: x: p: CL: CL: CL: CL: CL: I|: "H": #J: &wS : )H&f : +Bn: ,Hm: -K : 0r3: 3L1S: 7| : a^}n: bT!^: eyS: fz : hSeq: iOh: jLfN: ms : qqww : r`3: s^|: t^ : uCL: vCL: wCL: yCL: zCL: }OP: ~OP: OP: CL: O.: He: H: H: j: j}e: U}f:2v ^ ^ M: r N: DeBO: DQKP: DQ: SR: RHS: ua T: M=V: u X: EhY: J}[: ⧚*\: Y^: dH_: C8`: @a: wb: wc: v{: CL: CL: CLg: n: : CL: CL: CL: CLm: DDzn: 4o: (p : *CL: +CL: ,CL: -CL: /CL: 0CL: 1CLw: 4Ax: 5JGy: 6Q\: 7OP{: 9y |: :Wn}: ;gM~: =^: ?T : AE: D{a ~: GOP: J_ |: LCL: OELb: PF: QG: ULu: WCLt: XCL: ZoD : [y : ]q 5: _H6: `F: bCL: cCL:: F;: R <: X?: A-: OP: CLB: @۶C: OD: |Lh E: R{F: X34G: |\ H: }W1 L: Cp M: ` N: ~R O: DOP: CWQ: F R: DT: KU: KbV: KM: OP: CLY: JZ: z : OP: CL]: z)B ^: Zm: OP: CLa: KF: OP: CLd: F: OPf: ^: CLh: Fi: La: OPk: M l: Hffm: EQn: i o: \0p: SW q: MG r: O{ s: Kt: Ku: E: OP: CLx: @y: J#z: L: OP: CL}: Mz~: Kh: L9: E: OP~: CL: C/: G4: C=: FxC: Jā: G`: DG: !GQ: "Kc: #Aff: %xnS: &BV: )O: TH: UL: XoA: ZJP: [H{: ^T: `u[p: aNy: bM:>: cu : dJM: eNa: hCL: kE: l@t:: mOP: oCL: pCL: qCL: rCL: sCL: tCL: vCL: yPg: zG6g: {Pg: |_ > : }_ > : ~_ > : CL: CL: CL: CL: CL: CL: CL: ^: CL: CL: CL: N. : CL: D: CL: CL: D- : CL: CL: CL: OP$: J%: H&: I: CL*: O,: Xc: OP.: P: CL: CL: OP: CL3: sJd4: AH6: Sٚ7: xL8: ^ 9: bĄ:: Y3;: ]g<: Z: OP>: U?: I@: GbA: X4:: OPD: C E: GyF: GŦG: S: }: !B: "}@: #g : &_': 'F: (@: *t : +y{ : ,zr !: /CL : 0CL: 1CL: 3fE : 5OP: 6T|: 8fՕ: 9Hy: :@N: ;%: CL: ?CL: @CL: BCL: CCL: FI|: GH:: HK: KwS : NI; : PB: RHzx: SKF : Vo: LG?: |& : ]6: T: yS: z : S1: OV: KF: sl : n : aVf: ^y: ^ : CL: CL: CL: CL: CL: OP: OP: OP: CL: O: H5: H: H7: iH: iH}e: ;l3}f: Zv ^ ^ M: sk N: DhO: DP: DkQ: SR: RZS: ~s T: Mi(V: uL X: EnY: J[: \: Wl^: dw_: C8`: A a: x>b: xc: u: CL: CL: CLg: nA : CL: CL: CL: CLm: IEZn: Lvgo: Mq : OCL: QCL: RCL: SCL: TCL: UCL: VCLw: Yrx: [G{y: \NR: ]OP{: ^yk |: _VA}: `jP~: b^: e : gE : jy ~: lOP: o^S |: qCL: uEI: vF d: wFպ: zJ^u: |CLt: }CL: ol : y : qO 5: H|.6: E: CL: CL:: FR;: RX<: Y ?: A#: OP: CLB: @.C: N:wD: |5 E: QF: RQG: IH: }" L: C34 M: `z N: }G O: DKP: CcZQ: F\R: DT: KU: KtHV: KU: OP: CLY: JZ: zu : OP: CL]: z % ^: ZJ: OP: CLa: Jn: OP: CLd: FxC:OPf:^:CLh:Fi:U:OPk:M2 l:Fm:C33n:h) o:\p:!S q:"M r:#O8R s:$K^t:%Kuu:'Ew:(OP:*CLx:,^ y:-P=z:/L:0OP:2CL}:5Mv~:6Kq:7Lb:8E4:9OP~:;CL:=CSc:@GC:ACL!:BF?:CJā:DG`:ED%:FGQ:HKU:IAt:Kxuf:tBV:wOBo:yI:zL:}oA:JP:H/:R :u[p:Ny:MA:u :JK:O :CL:E:A:OP:CL:CL:CL:CL:CL:CL:CL:Ng:G6g:Ng:_ > :_ > :_ > :CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N):CL:D:CL:CL:C=:CL:CL:CL:OP$:J%:H^&:H :CL*:O,:Xr:OP.:O:CL:CL:OP:CL3:s9^4:AH6:X 7:LY8: Y39: bĄ:: cL;:bg<:fff:OP>:UZ?:IU@:GjA:CY1E:?GF:@GľG:AS7:E~4:FC<:G}g:Hg" :K\A:MF*:N@:Ot!N :Py :Qz$ !:TCL :UCL:VCL:Yi[ :[OP:\U ":]f:^H:_@V:`q:ap:cCL:eCL:fCL:gCL:hCL:kI:lH::mGϛ:pw :tH" :vBk!:wHk:Q3 :t:LZn:| :]\:T:yO:z :S :OX!:L:s :s :a33:^y:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:O{:H5:Is:H :h:h}e:`qÜ}f: v͒ ^ ^ M:r N:DeBO:DtP: D2Q:#SR:$R> S:&: T:'M/V:(u X:*Ek]Y:+Jܑ[:,\:-X`^:1c]H_:2C@`:4B״a:5ukb:6x.c:7u\*:9CL::CL:n :hCL:iCL:jCL:kCLm:nF&n:qio:sq :uCL:vCL:wCL:xCL:yCL:zCL:|CLw:@x:Gy:T:OP{:yS |:Xe}:f~:^:@f:F^:v ~:OP:^q7 |:CL:EH:F!O:FxC:M+eu:CLt:CL:oZ :yh :pfg 5:Ht6:E:CL:CL::E;:Q<:YB?:Ax:OP:CLB:@C:LFD:|c E:WF:U34G:JHH:|J L:Cp M:` N:~R O:DCP:C\Q:FLR:D/T:KfU:K!V:KQ:OP:CLY:JZ:z[ :OP:CL]:z % ^:Z :OP:CLa:J:OP:1CLd:3F:5OPf:7^:8CLh::F:i:;W?:=OPk:>MR l:?DHm:@A=qn:AiO\ o:D\#p:FVu q:GN{ r:IPaH s:JKt:KKu:LE:MOP:OCLx:QU y:ROQ9z:TL:UOP:WCL}:ZMv~:[K:\M:]E:^OP~:`CL:bCSc:eGC:fCL!:gF5:hJ :iG`:kD4K:G`:Kc:AI:x4:BV:O:I*:L:oA:JP:I"d:P*:u:Ny:M=:u :JI:N:CL:E:A5:OP:CL:CL:CL:CL:CL:CL:CL:Ng:G6g:Yf:_ > :_ > :_ > :CL:CL:CL:CL:CL:CL:CL:^:CL:CL:CL:N,:CL:DJ:CL:CL: C': CL: CL: CL:OP$:J %:Hȥ&:P:CL*:O),:X:OP.:O :CL: CL:#OP:%CL3:(sM94:)AH6:,l&f7:-M48:.c9:1b::3Xg;:\] <:]ZFg:^OP>:_V?:`I@:aGlA:bX~:cOPD:dC=E:eGF:fGG:gS:j}:kC):m}y:ng :q`s:rF>:s@&:tt/ :uz % :vz !:yCL :{CL:|CL:~eT :OP:U8:f:H7%:@:\:p:CL:CL:CL:CL:CL:I:H:O:w :H :B8P:Hd:J< :pf:Lh":| :\F:T:yO:z$ :R):O]:L5:t' :nf :a3:^y:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:P:H:I\:H :z:z}e:f*}f:vV ^ ^ M:>sNi N:@D]jO:ADP:BDDQ:FSOR:GRS:H T:IMV:Juk X:LEfY:MKz[:O\:PW^:Sex_:TC@`:VCa:Wsqb:Xv34c:Yt >:\CL:]CL:^CLg:n :CL:CL:CL:CLm:Fn:o:p :CL:CL:CL:CL:CL:CL:CLw:yx:G(y:O{:OP{:y |:W4}:g~:^:@:Ff:},l ~:OP:]>? |:CL:E9^:F J:FO:Iu:CLt:CL:n :y;d :p > 5:Hpc6:E:CL:CL::E;:PS<:Y ?:A z:OP:CLB:@.C:KD:|-U E:VHF:R\G: @\H: |& L: C34 M: `z N: ~=q O:D<P:CYQ:FIR:DT:KU:KDV:KP:OP:CLY:JtZ:z :OP:CL]: y ^:"W:#OP:%CLa:'Jf:QOP:SCLd:UF:WOPf:Y^:ZCLh:\F5i:]V=:_OPk:aMJ l:bEm:cAn:dj o:g\p:iV= q:jO r:kQ\ s:lK0t:mKu:nE\:oOP:qCLx:sFv y:tMWuz:vL:wOP:yCL}:|My~:}K:MH:E:OP~:CL:Cpi:GQ:CZ:F5:Jā:Gn:D4K:G`:Kc:AX-:xj:BV:Oy:I:L:oA:JP:I"d:Lv:u[p:Ny:M:>:t :JH:N:CL:E:A:OP:CL:CL:CL:CL:CL:CL:CL:R :G6g:Y4:_ > :_ > :_ > :CL:CL:CL:CL:CL:CL:CL:^:CL:CL: CL:"N.:$CL:&D:(CL:)CL:+C{:.CL:/CL:0CL:3OP$:4J$"%:5H2&:7O::CL*:=O0R,:>Zx:?OP.:@OE:BCL:CCL:EOP:GCL3:Jsh4:LA6:OZ7:PI 8:QZ9:Sb::}Xf;:~^`<:[3:OP>:U?:I'@:GhJA:W:OPD:C4/E:GJF:GG:R:}f:C3:}fg:g1h :_ :FG:@-S:tM :z7 :z !:CL :CL:CL:g :OP:Ub[:fK:H: :@A: V:p:CL:CL:CL:CL:CL:I:H(:H :w :H :B:H9Q:N :qS3:Lr/:| :\^:S`:yO:z :Rʕ:O[:MSA:t :m :a0:^y: ^ : CL: CL: CL:CL:CL:OP:OP:OP:CL:P:H:DI:EHw:Ih:Lh}e:pu}f:u ^ ^ M:frF N:iDZO:jF6P:kD̘Q:nSR:oR%S:p T:qML!V:ru? X:uEjvY:vJ[:w5\:xY^:{d,q_:|CG`:~DLa:tub:uc:r:CL:CL:CLg:n :CL:CL:CL:CLm:G *n:o:p :CL:CL:CL:CL:CL:CL:CLw:}fgx:Hfy:M >:OP{:y |:WA}:h>~:^:A":F)V:}R ~:OP:^ |:CL: E$:F0:F9:L-ou:CLt:CL:nÖ :xƨ :p5@ 5:Hj6:Eu:CL: CL::"E;:#Pi<:%YX-?:&@:'OP:)CLB:+@C:,TWD:-|T, E:/Q F:0R34G:1{ H:2|, L:4C34 M:5` N:6~R O:7D5P:8CWQ:9F>KR::D;T:;KNU:OP:@CLY:BJIZ:Cz :EOP:GCL]>z % ^>V|> OP> CLa> JP>OP>CLd>F?>OPf>^>CLh>F5i>V) >OPk>M9 l>Im> DRn>!j o>$\8<p>&Vq q>'Q r>(R{ s>)Kt>*K6u>+E=>,OP>/CLx>1~l^ y>2K z>4L>5OP>7CL}>:My~>;Kٙ>dM!%>eE>fOP~>hCL>jCa>mGQ>nCZ>oF5>pJā>qGn>rDB>sGn>tKc>vA;>xx">yBV>|Os>~IM>L>oA>JP>I"d>Lv>u[p>Ny>M=>t >JC>O>CL>En>B >OP>CL>CL>CL>CL>CL>CL>CL>R3>L >Y#3>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N; >CL>D>CL>CL>D- >CL>CL>CL>OP$>J'%>Hy&>M>CL*>O4,>YcZ>OP.>Oݚ>CL>CL>OP>,CL3>/si4>1AH6>4W7>5B&f8>6Y39>8b1:>=]g<>>Zf>?OP>>@U|?>AI>@>BGhJA>CWi>DOPD>EBðE>FGbF>GG|G>HRl>L@l>MD\>N@<>Ofv >R^>SF[>T@-S>Ut[ >WzF^ >Xz[ !>[CL >\CL>]CL>_f >aOP>bUS>deD>eG1>^ >͟>p>CL>CL>CL>CL>CL>I3>H>Oqa>wS >IY >Aq>H[>L@- >p>Lv>|j >[>S~>yO>z >R>OP1>KL>t/ >n >`ٚ>^y>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>P>H>I>Hw>y>y}e>d?}f:v- ^ ^ M>"s. N>%DaO>&GP>'D2Q>*SR>+QS>,@T>-M'V>/uw X>YEjvY>ZK =[>[u\>\WT^>_c]H_>`CG`>cDa>dtb>ev\c>fsaH>hCL>iCL>jCLg>ln >oCL>pCL>qCL>rCLm>uGdn>xpo>yp >{CL>}CL>~CL>CL>CL>CL>CLw>Aux>Hzy>Nz>OP{>yK |>W%}>i~>^>A(>F'>{/9 ~>OP>^ |>CL>E>FL>FC^>Mu>CLt>CL>n >y( >o^ 5>He6>E>CL>CL:>E;>O3<>YRr?>@>OP>CLB>@C>V\D>| E>TRF>RG>p H>|V% L>C34 M>`z N>| O>D(P>C8Q>FSOR>DIST>KU> K$V>!K82>"OP>$CLY>&J;Z>'z? >)OP>+CL]>-y ^>/Xo>0OP>2CLa>4Jn>6OP>8CLd>:F~>>^>?CLh>AFݱi>BU->DOPk>EM1 l>FF\m>GBGn>Hg o>K[p>MVR q>NPu r>OP s>PKt>RKƂu>SE">TOP>VCLx>X~s y>YIYz>[L>OP>CL}>M}$~>K>M&>E>OP~>CL>CZ>G`>Ci(>F5>J >G} >DB>G} >Kc>A;>xc>BV>Oy>I>L>oA>JP>H\>Tz(>u>Ny>MC]>qw/ >JE:>P0>CL>E&>A.>OP>CL>CL>CL>CL>CL>CL>CL>Ng>G6g>Yg>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N*p>CL> Db> CL>CL>Du>CL>CL>CL>OP$>J-8%>Hy&>K\>CL*>!O5,>"XQ>#OP.>LO<>NCL>OCL>ROP>TCL3>Vsw4>XAH6>[Rg7>\A8>]U 9>`bi:>b^;>c^@<>db4>eOP>>fUȃ?>gI'@>hGi4A>iW>jOPD>kBbE>lGyF>mGG>nRB>q~>rCvg>s},>ufa >x`)>yFf>z@;>{tU >|zcz >}zu !>CL >CL>CL>fq >OP>UN>fy>H'7>@>>p>CL>CL>CL>CL>CL>I>H>H'>w >H >A/>H[>K >p>Lx>| >[\>S7>yO>z >RvK>OL>L>t>u >qD >a>^s3>^ >CL>CL>CL>CL>CL>OP> OP>!OP>#CL>&P)>(H>)I>*H_>-h >0h }e>na}f>v e ^ ^ M>Kr N>MDfO>NG P>OEnQ>zSR>|R%S>}@JeT>~M=V>u? X>EjvY>K2:[> O\>XG^>dA_>CN9`>E33a>u.b>vBc>rk>CL>CL>CLg>nq >CL>CL>CL>CLm>Gn>@o>q >CL>CL>CL>CL>CL>CL>CLw>C{x>Hy>Nf>OP{>y: |>W }>j~>^>Aր>Fr>y@ ~>OP>ba7 |>CL>E>F<>F^>Lu>CLt>CL>nq >y >p 5>Ha6>E>CL>CL:>E;>O<> Yxj?> @U> OP>CLB>@C>UD>|D E>\GF>WG>DffH>|I L>@B M>A` N>B{ O>CD.P>DC2Q>EER>FD T>GKU>HKV>IK/>JOP>LCLY>NJ+Z>Oz >QOP>SCL]>Uy ^>W[J>XOP>ZCLa>]LO>^OP>`CLd>bF:>dOPf>f^>gCLh>iFi>jTW>lOPk>mM5 l>nH =m>pCn>qf޸ o>t\p>vT q>wL) r>xO) s>yKt>zKu>{D>OP>CLx>}R y>Gz>M N>OP>CL}>Mv~>L>M(s>D>OP~>CL>CU>G`>Ci(>Fݱ>J >G} >DQN>G} >Kc>At>x|y>BV>OPP>H>L>oA>JP>HR>Rۭ>u>Ny>MG>pI >JE:>P0> CL> E>AZ>OP>CL>CL>CL>CL>CL>CL>CL>Pg>Ki>X>_ > >_ > > _ > >"CL>#CL>$CL>%CL>&CL>(CL>)CL>*^>+CL>,CL>-CL>/N+)>1CL>3D>5CL>6CL>8D|>;CL>=CL>@OP$>AJ1%>BHy&>lI>oCL*>rO3,>sY`{>tOP.>uO3>wCL>xCL>zOP>|CL3>sn4>AH6>QL7>I48>Tf9>bi:>ZL;>^fg<>]s3>OP>>U6?>I@>G^KA>W >OPD>C&fE>G}3F>GG>Rٶ>z>A#3>yY>g 2 >]>FR>@C >t >z >zu !>CL >CL>CL>hr >OP>Uz>f]>H:>@C>c&>pn>CL>CL>CL>CL>CL>IK>H~>Pf>wS >HD >Aq>G>RJ >qFf>Lw>|} >[8>S6>yS>zr >Rc>OH> L)>5tM >8r >9`3>:^y>;^ >=CL>?CL>@CL>ACL>DOP>EOP>GOP>ICL>LP)>MH>NI >OH_>RyL>SyL}e>m;%}f>v" ^ ^ M>ms\ N>DmO>GP>DQ>SR>R6S>o T>MpV>v^! X>Ec@Y>J[>C\>Vd^>c%_>CN9`>D2a>v\b>wc>u=q>CL>CL>CLg>nA >CL>CL>CL>CLm>GVn>go>qn >CL>CL>CL>CL>CL>CL>CLw>Ax>I#y>N>OP{>z |>W-}>h~> ^> A> F> x ~> OP> ]J |> CL> E> FD> FA1> MG5u> CLt> CL> n7 > y# > !p 5> #H\p6> $E> &CL> 'CL:> )EW;> *N<> ,Y ?> -@B> .OP> 0CLB> 2@C> 3UBD> 4|D E> 6R\F> 7WG> `|\ H> a{ L> cB M> d` N> e|Q O> fDP> gCQ> hFhR> iD- T> jLU> kKV> lK!> mOP> oCLY> qJ3Z> rz > tOP> vCL]> xz7 ^> z\I]> {OP> }CLa> LM> OP> CLd> F5> OPf> ^> CLh> Fi> S> OPk> M# l> J =m> En> h޸ o> [p> V8R q> N r> P s> Kt> Ku> D1> OP> CLx> } y> Pz> M> OP> CL}> Mk~> L> M,> D> OP~> CL> C'> Gn> Ci(> F?> J > G} > DQN> G} > Kc> A> xl> BV> O> H> L> oA> JP> HM> P*> u> Ny> MH> (qY > )JLu> *P0> ,CL> /E> 0AZ> 1OP> 3CL> 4CL> 5CL> 7CL> 8CL> 9CL> :CL> =P6f> >K> ?X> @G > AG > BG > ECL> FCL> GCL> HCL> ICL> JCL> KCL> L^> MCL> OCL> PCL> QN&> SCL> VD> XCL> YCL> [D- > ]CL> ^CL> _CL> bOP$> cJ2%> Hy&> K> CL*> O1;,> Xġ> OP.> O> CL> CL> OP> CL3> sr4> AH6> K7> B8> T9> bi:> Z4;> ^ <> Z> OP>> U?> H @> GYA> W> OPD> BE> GF> GUG> R'> ~4> C)> |> g! > `s> F>> @Q> t > z > { !> CL > CL> CL> fTQ > OP> U> f9> H/.> @> V> p{> CL> CL> CL> CL> CL> I`> H> H> w > H > A:> H[> JK > o> LqE> |oQ > "[ > #S> 'yS> (zr > *RD> +O,> TL> Wtj. > Zn* > [`3> \^y> ^^ > _CL> `CL> aCL> bCL> cCL> gOP> hOP> iOP> kCL> nP,> oHc> qI W> rH> uj=q> xj=q}e> oE}f> uu ^ ^ M> r N> DpO> FsP> DQ> SR> R!S> n T> ML!V> uL X> E\ Y> K[> ˨R\> V^> dG_> CN9`> Ca> vBb> xc> ug> CL> CL> CLg> o{ > CL> CL> CL> CLm> Fn> @ 3o> q/ > CL> CL> CL> CL> CL> CL> CLw> ~=qx> Jy> O> !OP{> "y= |> #W }> $jج~> '^> *A> +F> .{H ~> 0OP> 3]x |> 6CL> 9E(> :F\> ;F8> >L-ou> @CLt> BCL> Dn' > Eyl > Fp > 5> HHX6> IE.> KCL> MCL:> NE;> PM<> QYN?> @Y> OP> CLB> @C> T}zD> { E> T=qF> QG> EzH> {x L> B=q M> ^\ N> { O> DP> BQ> FR> D*#T> L mU> KV> K}> OP> CLY> IZ> z > OP> CL]> z7 ^> \^> OP> CLa> M@> OP> CLd> G-a> OPf> ^> CLh> Fi> SC<> OPk> MGB l> HRm> Dn> i( o> \Cp> T q> PQ r> SH s> Kt> Ku> D> OP> CLx> } y> Oirz> M> OP> CL}> MmA~> L> M'> E> OP~> CL> Ca> Gn> Cw> F> J > G} > DQN> G> Kc> Aff> xl> BV> OPP> I> L> IoA> KJP> LH<6> OLv> QuM> RNy> SMH> Uq  > VJI> WP0> YCL> \EV> ]AΏ> ^OP> `CL> aCL> bCL> cCL> eCL> fCL> gCL> jQ> kL> lX33> m_ > > n_ > > o_ > > qCL> sCL> tCL> uCL> vCL> wCL> xCL> y^> zCL> |CL> }CL> ~N(E> CL> D!p> CL> CL> D> CL> CL> CL> OP$> J3%> Hy&> P> CL*> O),> YM> OP.> Oy> CL> CL> OP> CL3> s+4> AH6> Q7> Cg8> V@9> bi:> Y&g;> ]<> [ > OP>> U5?> Hh@> GZA> W> OPD> B E> G}3F> GWG> R>zy>@>x>f >_ >FR>@Q>t >z >{ !> CL >!CL>"CL>$gL >'OP>(Uu>)f>*H m>- >/a>0pn>2CL>4CL>5CL>6CL>7CL>:I>;H>?w >CIff >EA/>FH2>GM >Jpy>uLop>x|oQ >zZ>{St>~yS>zr >RL>Oi>K\>tx >r@ >`f>^y>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>P(>Hi">I>H>B>B}e>/w}f> Dv ^ ^ M>r N>DuO>G/P>EQ>S&R>R> S>nB T>ML!V>u X>EfY>K)w[>\>W(^>d_>CUU`>Ba>uRb>zW c>u>CL> CL> CLg> n >CL>CL>CL>CLm>=FKyn>@o>Bq/ >DCL>ECL>FCL>GCL>HCL>ICL>JCLw>N}x>ONzy>PN>QOP{>RyQ |>SXs}>ThĦ~>W^>YA82>[F8>^~24 ~>`OP>c] |>fCL>iE >jFM>kF1@>nM$u>pCLt>rCL>tnX >uyS >vo 5>HS_6>E>CL>CL:>E;>M<<>Yg?>@D>OP>CLB>@C>SD>{/ E>QRF>SffG>@H>{ L>Bz M>_ > N>{ O>DP>B(Q>ER>DT>L mU>KV>J>OP>CLY>IwZ>z >OP>CL]>zT ^>\A>OP>CLa>N>OP>CLd>G>OPf>^>CLh> Fmi> R~1> OPk> MW l>Gm>C =n>fٚ o>\ap>U q>P r>Q) s>Kt>Kdu>D4>OP>CLx> }h y>!Mz>#M 1>$OP>&CL}>)Mk~>*L*>+M$>,E >-OP~>/CL>1C>4G} >5Cw>6F5>7J >8G} >:D_>;G>=AX->?x>hBV>kO^1>mI>nL>qoA>sJP>tH>xLv>zu>{Ny>|MH>}p >~J]>N>CL>EtC>A<2>OP>CL>CL>CL>CL>CL>CL>CL>RP>N>Yg>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N+>CL>D#?>CL>CL>DV>CL>CL>CL>OP$>J3%>Hy&>M>CL*>O ,>Yha>OP.>Oqa>CL>CL>OP>CL3>sg4>AH6>ZL7>A8>Vfg9>b:>W ;>[9<>Xg>OP>>US?>H@>0GWA>1W@>2OPD>3BoE>4GpxF>5G[G>6R>9@>:D3><@vf>=f >@_6>AFwp>B@`2>Ct >Dz[ >E{ !>HCL >JCL>KCL>Mg3 >OOP>PU>QeB>RGϛ>U^ >X >Yp|>[CL>\CL>]CL>^CL>_CL>bIx>dH}>eG>hwS >kH" >A">HVF>M >r,>Li >|j >Yr>So>yO>zr >QE>O%>M'>tU >s"" >`>^vf>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>P">H~>I W>H>h >h }e>Xn%}f>tu ^ ^ M>r N>D|O>GmP>ELQ>SR>RHS>m T>MZV>uς X>!EwY>"KB[>$}\>%Xe^>(c*P_>)C\r`>+Bia>,ugb>-xc>/u\*>1CL>2CL>3CLg>]n >_CL>`CL>bCL>cCLm>fEn>igo>jq >lCL>mCL>nCL>pCL>qCL>rCL>sCLw>v~x>wKy>xQ.>yOP{>{z |>|VV}>}j~>^>@>Fk>|} ~>OP>^(# |>CL>E>Fz>F">JP!u>CLt>CL>nX >yD >o 5>HM6>E>CL>CL:>El;>L<>Y?>@>OP>CLB>@C>RD>{ E>WF>RQG>IH>{) L>C34 M>` N>| O>C\P>BQ>ER>D T>L*U>KV>J>OP>CLY>I=Z>z >OP>CL]>%z ^>'\x>(OP>*CLa>-NS>.OP>0CLd>2G:>4OPf>6^>7CLh>9Ggi>:Q>=M\ l>>Em>?An>@h= o>C\p>EU\ q>FP\ r>HQ. s>IKt>JKu>KD;>LOP>NCLx>P} y>QK\z>SM>>TOP>VCL}>YMn~>ZL3>[M>\E8>]OP~>_CL>C>>G} >C.>F>J >G} >D_>G>Kc>A>xN>BV>O^1>I>L>oA>JP>H>T>u>N>MNM>p >JOZ>N>CL>EV>@t:>OP>CL>CL>CL>CL>CL>CL>CL>OP>G6g>Yg>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N'>CL>D"W>CL>CL>D- > CL> CL> CL>OP$>J2%>H2&>K>CL*>Oy,>YF>OP.>Oe>CL>CL>"OP>$CL3>'s4>QAH6>SV@7>TNL8>U[Y9>Xb:>ZYg;>[]l<>\Z`>]OP>>^Ugd?>_H@>`GOA>aW{>bOPD>cCScE>dGcF>eGxuG>fR>i}2>jC)>l}f>mf >p_A>qFR>r@n>st >tzu >u{/9 !>xCL >zCL>{CL>}ex >OP>U>fx>HXr>@>>pz>CL>CL>CL>CL>CL>I>Hx>M>wS >IU >A>H2>J >oٚ>Led>|j >Y>S~>yX>zcz >QҸ>OB>Ko>t >mw >aI>^y>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>Py>H>I W>H>"i{>%i{}e>n}f>u ^ ^ M>@r N>BDO>CG*P>DESuQ>HSR>IR^!S>Jme T>KMV>Lv X>NEVY>OK.U[>QSr\>RW^>}bX_>~C\r`>A%a>vb>wc>tfg>CL>CL>CLg>n >CL>CL>CL>CLm>E\n>S4o>qY >CL>CL>CL>CL>CL>CL>CLw>|34x>KǮy>O)>OP{>z |>V}>hA~>^>@|1>F',>{ ~>OP>^ |>CL>D>F>FV>QIu>CLt>CL>m >y >pr 5>HH}6>Ej>CL>CL:>E];>LP=<>Yo?>@>OP>CLB>@C>QMD>{ E> QF> Q G> GH> z L> BR M>_ N>|Q O>CP>BXQ>ER>DT>LU>KV>J>OP>CLY>DIZ>Ez >GOP>ICL]>Kz ^>L\#Z>NOP>OCLa>RN5>SOP>UCLd>WG>YOPf>[^>\CLh>^G )i>`P>bOPk>cMl l>dEGm>eAn>fg{ o>i\!p>kV8R q>lQ r>mQ s>nKt>oLu>pDo >qOP>sCLx>u} y>vJPz>xM<>zOP>|CL}>Mk~>L<>MH>E<>OP~>CL>D>G>C.>F/>J >G} >DnQ>G>Kc>Af>x>9>B>O>IHW>L>oA>JP>H>Rj>uR>PB>MNM>p >JU#>N >CL>E>AGu>OP>CL>CL>CL>CL>CL> CL> CL>P>K>Yg>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^> CL>!CL>"CL>$N5>&CL>)D"W>*CL>+CL>-D- >0CL>1CL>2CL>5OP$>6J0%>7H2&>9J}u>?O ,>@Z:>AOP.>BOY>DCL>ECL>GOPBCL3Bsc4BAH6B R 7B Vٚ8B [Y9BbN:BX;B[@BU?BH@BGBABWBOPDBC.EBG_4FBGpJGBRB#}@B$CFfB%|3B&f B*\B+F!B,@uB-u B.{ B/{LS !B2CL B3CLB4CLB7h B9OPB:UB;f+BdHiBe@nBhl~(BjpwBmCLBnCLBoCLBpCLBqCLBtI`BuH|.BvIBzw B}IY BABH[BQ BsYBLSB|} BX۞BSKBySBzcz BQBNBLwBt Bs Ba#3B^vfB^ BCLBCLBCLBCLBCLBOPBOPBOPBCLBPYBH BI(BHpBhRBhR}eBhR }f>uME ^ ^ MBr NBDOBHHPBEQB,SaRB.RoSB/n TB0N%VB1w XB3EGYB4K4,[B5EL\B7VQ^B:e_B;Cj`B=AaB>v*bB?xRcB@ugBBCLBDCLBECLgBGn BICLBJCLBKCLBLCLmBPE)BnBS}4oBTr+ BVCLBWCLBXCLBYCLBZCLB\CLB]CLwB`CqxBaK\yBbO\BcOP{Bd{ |BfVg}Bgf~B]B@,BE1B{H ~BOPB^r |BCLBD1BFABFBIquBCLtBCLBm+ ByA Bp" 5BHC6BEBCLBCL:BEd;BK B_ > B_ > BCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBN*pBCLBDBCLBCLBCBCLBCLBCLBOP$BJ1%BH^&BHڷB!CL*B$N,B%YB&OP.B'OB|B)CLB*CLB,OPB.CL3B1s4B3A6B6Qs47B7Lf8B8cL9B:bN:B<_;B=]bgB?OP>B@U^?BAHظ@BBG>|ABCWBDOPDBECEBFG\zFBGGd|GBHRBL|4BMCc4BN}yBOgd BR_ BSFBT@BUu65 BW{ BX{Z !B[CL BCLBCLBe BOPBUBf2BH-B@B,BpBCLBCLBCLBCLBCLBIuBHWBLBw BIUU BA"BH#BJ Bo3BL7~B]B BEMB|= ~BOPB_/3 |BCLBDBF'BFBQuBCLtBCLBm By Bo 5BH?l6BEBCLBCL:BEl;BK(?^B?CLhBAF:iBBOBNBDOPkBEMh lBFMGmBGI=qnBHiٚ oBK]pBMVR qBNQk rBOT( sBxKtByLuBzD\B|OPB~CLxB~l^ yBPTzBMBOPBCL}BM]]~BL@BLoBEd!BOP~BCLBDBGBCBF5BJ BGBD|BGBKcBABxYBABOBIBLBoABJPBFTBO`BuBP(BMSBp BJSBMBCLBEBAGuBOPBCLBCLBCLBCLBCLBCLBCLBNgBL)BYgB_ > B_ > B_ > BCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBN+BCLB D2B CLBCLBCBCLBCLBCLBOP$B@J/%BAH&BDGh?BFCL*BIN,BJZ=BKOP.BLO.GBNCLBOCLBROPBTCL3BVs4BXA6B[U 7B\Cg8B][Y9B`b:Bb[g;Bc]gBfUM}?BfH@BgG;ABhWrBiOPDBjCuEBkGZFBlG\OGBmRQBq|fBrCBs}S3Btg Bw^ɲByFBz@B{uS[ B{= B{in !BCL BCLBCLBg BOPBV4fBgBHB@X3B|cBpBCLBCLBCLBCLBCLBIBHBGBw BID BA/BHO BMW BtBL%sB|j BY BRByXBzcz BQBN9B LB t4 BmU Ba|B^pB^ BCLBCLBCLBCLBCLBOPBOPBOPB CLB#O B$HB&IB'HB*j{B-j{}eBr0}fBt" ^ ^ MBpr NBrDOBsGtPBtE`QBwSiRBxRSBzn0 TB{N_VB|wv XB~EYBJ[B \BVuU^BdX_BCj`B@aBwbBz >cBvBCLBCLBCLgBo BCLBCLBCLBCLmBD.nB~fgoBr BCLBCLBCLBCLBCLBCLBCLwBDxBIqyBOBOP{B|@ |BWI}Bi"S~B]B0 BEB} ~BOPBb |BCLBDbBFTBF@wBIuBCLtBCLBm+ Bz Boa 5BH=6BE9BCLBCL:BE;BJ` NB?~R OB@C>PBAAQBBERBCD)iTBDKUBEKpVBFJBGOPBICLYBKHZBLz BNOPBPCL]BR{LS ^BTZBUOPBWCLaBZNW2B[OPB]CLdB_G'BaOPfBc^BdCLhBfFiBgN|sBiOPkBjM( lBkHQmBlDnBnjq oB]@lpBS qBOR rBPu sBKtBLpuBDJBOPBCLxB~# yBP8zBMmABOPBCL}BMT~BL;BLBEfNBOP~BCLBDBGBCBF/BJ BGBD|BGBKcBAJBxoBBVBOW@BIBLBoABJPBFfBLvBvB P(B MUB p B J\_B MqB CLB EB AGuB OPB CLB CLB CLB CLB CLB CLB CLB X<B KB XB _ > B _ > B _ > B CLB CLB !CLB "CLB #CLB $CLB &CLB ']B (CLB )CLB *CLB ,N&B -CLB 0DbB 2CLB 3CLB 5CB `CLB aCLB bCLB dOP$B eJ/ %B fHˊ&B iQMB lCL*B oN,B pZlEB qOP.B rOMB sCLB tCLB wOPB yCL3B |s4B ~A6B X337B B8B X9B b:B Y33;B \B U??B H@B G9AB W+B OPDB CEB GWFB GT$GB RtB @B EiB @33B f B _5B FB @RB ua B {LS B {w !B CL B CLB CLB f B OPB V&B f 4B H2B @=PB ڔB pB CLB CLB CLB CLB CLB IB H B MB w B If B B}B HdB N B oB L B |j B YbB RB )yXB *zcz B ,QuB -NB .JB 2t B 5s; B 6`B 7^yB 8^ B 9CLB :CLB CLB AOPB BOPB COPB FCLB IOB JHB KI<B LH"iB OiB Si}eB o }fBt8 ^ ^ MB rez NB D)OB H^PB E!QB SRB R{SB m4 TB MBVB w% XB EYB J[B }\B Ya^B cE_B Cj`B @!aB x\*bB {cB wB CLB CLB CLgB nh B CLB CLB CLB CLmB D6nB oB r@ B CLB CLB CLB CLB CLB CLB CLwB BLxB IaHyB SB OP{B {/ |B VK}B f( ~B ]B F_ B EgHB vK ~B OPB ` ^ |B CLB DB G_B F;B PuB CLtB CLB mq B y B !o 5B #H:6B $EϑB &CLB 'CL:B )F;B *JB mOPB oCLYB qHkZB rz B tOPB vCL]B x{LS ^B zYB {OPB }CLaB N&B OPB CLdB GB OPfB ^B CLhB F[GiB MB OPkB MD lB HmB DnB gR oB ]">pB W{ qB Qk rB RǮ sB K3tB L uB D3B OPB CLxB } yB O'zB MHkB OPB CL}B MD~B L-mB LuB EbB OP~B CLB DB GB C4B F:B J B GB DSB GB KcB AffB xL_B BVB OB HB LB oAB JPB FN=B "SeB $v(B %P(B &MUB (p B )JXB *M3B ,CLB /E{}B 0AFB 1OPB 3CLB 4CLB 5CLB 6CLB 8CLB 9CLB :CLB =NgB >L3B ?NgB @_ > B A_ > B B_ > B DCLB FCLB GCLB HCLB ICLB JCLB KCLB L]B MCLB OCLB PCLB QN,B SCLB VDB CLB CLB CB CLB CLB CLB OP$B J(%B HD&B O1B CL*B N,B Y^B OP.B NDB CLB CLB OPB CL3B se4B A6B Z&g7B E&f8B T9B b:B Zٙ;B \B U?B H@B G/ AB W5B OPDB BjhEB GPFB GHWGB R0gB ~&fB CB }2B fz B ` B F*B @B u B {Z B { !B CL B CLB CLB fJ B OPB VKkB f,B H$RB K B B paB CLB CLB CLB CLB CLB IB H B GJB wt B I B B}B H B J B tB HKDB K|j B MXB NR̿B QySB Szcz B UQYB VNB WLB ZtY B ]n. B ^a3B _^yB a^ B bCLB cCLB dCLB eCLB fCLB jOPB kOPB lOPB nCLB qOB rHB tI$B uH#PB xiB {i}eB r*}fB t ^ ^ MB s. NB DrOB F*PB E5QB SRB RpSB },l TB M/VB u? XB EYB J[B Χ}\B X ^B bǿ_B Cq`B AaB vbB {cB xB CLB CLB CLgB n B CLB CLB CLB CLmBEnB~FgoBqY BCLBCLBCLBCLBCLBCLBCLwB!xB"KfyB#PGB$OP{B%yd |B&W}B(k~B*]B,T B.EvoB1{/9 ~B3OPB7^E^ |B9CLBFBAGAuBDCLtBECLBGnQ BHy BIpȵ 5BtH6[6BuE$BwCLBxCL:BzF(;B{I~OlB@I6/BALBDoABFJPBHFN=BKRjBMv+BNP(BOMUBPn{ BQJ_CBRMIBTCLBWEBXA'BZOPB\CLB]CLB^CLB_CLB`CLBaCLBbCLBePgBfKgBh^33Bi_ > Bj_ > Bk_ > BmCLBnCLBoCLBpCLBqCLBrCLBtCLBu]BvCLBwCLBCLBN#BCLBD"WBCLBCLBCZBCLBCLBCLBOP$BJ'%BHͶ&BMBCL*BN,BY{BOP.BNBCLBCLBOPBCL3Bs4BA6BX7BG8B]9Bb:BZg;B]yBUya?BHG@BG"QABWIBOPDBAqEBGDFBG9GB R@B @BE0B@YBf B\zWBFnzB@Bu B{Z B{ !BCL BCLBCLB g3 B"OPB#VKkB$fuBB%GTB))b B+peB,pB.CLB/CLB0CLB1CLB2CLB6IB7HB8MB;w B>I BhAqBiI BjQO BmofBqKBt|` BvX[BwRBzySB{zcz B}Q<B~NBK*uBu ~ Bu" Ba@B^vfB^ BCLBCLBCLBCLBCLBOPBOPBOPBCLBOcBHBISBH BiBi}eB+p.}fBGu\ ^ ^ MBrF NBDOBG"PBEQBSRBRSB TBLɀVBt XBEYBJb[B\BWy^Beތ_BCq`BBLaBw(bBy{cBw >BCLBCLBCLgB0n B2CLB3CLB5CLB6CLmB9EnB<}oB=pr B?CLB@CLBACLBCCLBDCLBECLBFCLwBI~xBJHfyBKOBMOP{BNxK |BOV}BPg~BR]BT@BVE>BZ} ~B\OPB_^q7 |BaCLBdDlBeGBgFpBjNNuBCLtBCLBn By Bp/ 5BH16BEBCLBCL:BF/;BHUBvP(BwMSBxn BzJ\_B{MIB}CLBEjBABOPBCLBCLBCLBCLBCLBCLBCLBNgBKBYgB_ > B_ > B_ > BCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBN$BCLBD$&BCLBCLBC4BCLBCLBCLBOP$BJ'%BH&BJBCL*BNgZ,BYBOP.BNBCLBCLBOPBCL3Bsj4BA6B[Y7BJ38B]g9B$bN:B%X;B&\lB)Uh?B*H@B+G AB,Wp B-OPDB.CEB/G6NFB0G&GB1R=_B5~s4B6CB7|3B8f B;`w|B=F/B>@bB?u6 B@{in BA{ !BDCL BECLBFCLBHeT BKOPBLVU|BMf@BNGBQ~ BS;;BTp5BVCLBXCLBYCLBZCLB[CLB^IsB_HxBG9Bw BI BABH BJ BtBKB|C BW׈BR'BySBzcz BQ#BNBL4rBu ~ Bt. B`3B^yB^ BCLBCLBCLBCLBCLBOPBOPBOPBCLBO^BHBISBHBh\Bh\}eBSq}fBv ^ ^ MBr NBDOBGhPBEQBSRBROSB TBLVBtF XBECYBJ[Bҽ\B Y1^B$dx_B%Cx`B'CCaBPv\bBQy{cBRv#BTCLBUCLBWCLgBYnh B[CLB\CLB]CLB^CLmBaFlnBd~<oBfo BhCLBiCLBjCLBkCLBlCLBmCLBoCLwBr@xBsK\)yBtOBuOP{Bvx |BwW}Bxk}$~B{]B}@BFBB|C ~BOPB] |BCLBDלBH"&BFBGruBCLtBCLBn Bz Bp > 5BH+z6BEBCLBCL:BF;BHLuB?CvB@OPBBCLxBD}: yBEJzBGLgBHOPBJCL}BMM(~BNLkBOL|BPEyBQOP~B|CLB~D%BGBCBG )BJBGBDBGxBKcBA;BxsBBVBOe!BIBLBoABJPBEsZBO?BvBP(BMSBn's BJ_CBM_BCLBEBAZBOPBCLBCLBCLBCLBCLBCLBCLBNgBG6gBYgB_ > B_ > B_ > BCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBN. BCLBDBCLBCLBD4KBCLBCLBCLBOP$BJ(%BH&BH B CL*BNZ,BYwBOP.BNnBCLBCLBOPBCL3Bs4BEA6BGg7BHO8BIfL9BLb:BNY;BO]&gBRU1m?BSH@BTG=ABUW0BVOPDBWDEBXG(FBYG GBZR3IB]z@B_AgB`y Baf Bd^{)BeF/Bf@BguZ Bh{w Bi{ !BmCL BnCLBoCLBqeд BsOPBtVBufBvGBzU B|1B}pwCBCLBCLBCLBCLBCLBIBHlBLڠBwS BI BALBHBMW BoBK~B|R8 BWBBRBySBzT BQ*BNBJBu' Br B`B^yB^ BCLBCLBCLBCLBCLBOPB OPB OPBCLBOQ8BHBI<BH!BizBiz}eB|jk}fBv ^ ^ MB7rc NB9D/OB:G~PB;EQB?SRB@ReSBA@TBBMpiVBCv% XBEEYBFJ[Fs\FWS^Fc!_F Cx`F CaF wGbF y\cFw(FCLFCLFCLgFoK FCLFCLFCLFCLmFFnF!}oF"p F$CLF%CLF&CLF'CLF(CLF*CLF+CLwF.~=qxF/GffyF0QF1OP{F2z6 |F4W}F5ji~F7]F9@ZF;FkFfz ~FhOPFl^b |FnCLFqD/FrH]FsFFvNuuFyCLtFzCLF|o+ F}z F~p > 5FH'6FE'FCLFCL:FF(;FGF5F@JFAGFBDVFCGFDKcFEA;FGxeFHBVFKOyFMIFFOLFRoAFTJPFUEfNFXLvFZv&]F[P(F\MUF]nb4 F^JcF_L9FaCLFeEFfA.FgOPFCLFCLFCLFCLFCLFCLFCLFPgFG6gFXvfF_ > F_ > F_ > FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN-SFCLFDJFCLFCLFDFCLFCLFCLFOP$FJ(%FHЛ&FQMFCL*FNI:,FYFFOP.FNFCLFCLFOPFCL3Fs*4FA6FP37FA38FSٚ9FbN:F a4;F ^4FTF?FHz @FFAFVFOPDFCEFG!hFFGGFQF}FCfF}2Ff F"`WF#F&F$@F%u} F&{ F'{ !F+CL F,CLF-CLF/gJ FYOPFZV.F[fF\GpF`~z Fav NFcpsFeCLFfCLFgCLFhCLFiCLFmIҠFnHfjFoJ`Frw FuH FwAt@FxHUFyN} F|r3FK}wF|C FW±FRFySFzT FP6FNrFL lFu65 Ft F`ٚF^vfF^ FCLFCLFCLFCLFCLFOPFOPFOPFCLFO+FHAFIFH#PFhFh}eFaU4}fF|v ^ ^ MFr' NFD1OF GGPF"E`QF%SqRF&RSF'@-STF(L+VF)t} XF+E=YF-JUE[F.R\F/X}^F2dҶ_F3C`F5DaF6wW bF7y34cF9w(F;CLF F_ > F_ > FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN#8FCLFDFCLFCLFD̘FCLFCLFCLFOP$FJ(%FHU&FNYFCL*FN,,FXFOP.FNqF!CLF"CLF%OPF'CL3F)sʺ4F+A6F.N7F/E8F0X9F3b:F4Wg;F5[9F8T?F9Hi@F:FAF;VFGFF?G oGF@QFD FEDS4FF~fFGf FJ`3QFKENFM@.FNu FO{w Fx{w !F{CL F|CLF}CLFd FOPFVJFgFGF}f FGFp^iFCLFCLFCLFCLFCLFIFHYFIFw FIDD FA2FHmFJ Fn FK_YF|5! FW8FR0FyOFzF^ FP#FNWFK FuD Fs F`F^yF^ FCLFCLFCLFCLFCLFOPFOPFOPFCLFNgFH)FIFH#PFhffFhff}eFj0}fFv# ^ ^ MFFr' NFHDOFIF~PFJE3QFMSRFNRSFO@C TFQKZVFRrw XFTEtbYFUJl[FV\FWV9^FZdȉ_F\C`F^EaF_uLbF`xcFauFcCLFdCLFeCLgFhn& FjCLFkCLFlCLFmCLmFpGnFs~oFunx FwCLFxCLFyCLFzCLF{CLFCLFCLwFQxFHyFRFOP{FuaH |FXp}Fi/~F]FAFFF} ~FOPFa |FCLFD؅FGFEFL}zuFCLtFCLFoZ Fy Fo| 5FH6FEFCLFCL:FF!O;FFII F_ > F_ > FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN+)FCLFD#?FCLF CLF DBF6CLF7CLF8CLF:OP$F;J% %FFaUtW?FbHS@FcFZAFdWvFeOPDFfC9EFgGFFhFGFiQ<Fl@33FmD3Fo@PFfl F` gFEsF@rFu F{in F{Z !FCL FCLFCLFg[~ FOPFV!FfSFFF|ƚ FwFp8FCLFCLFCLFCLFCLFIsFHB$FO Fw FI F@۶FH FQz Fq3FK=F{a FWFRiSF yOF z7 F P?F N?_F KF uD F sw F `3F ^yF ^ F CLF CLF CLF CLF CLF OPF OPF OPF CLF "NHF #HF $IF %H!F 'xF (x}eFUn}fFwVk ^ ^ MF kr NF mD[OF nGPF oE_QF sSRF tRldSF uoXB TF vKLVF wrM XF yEm,YF zI[F |V\F }X*^F b$_F C`F DۘaF v*bF xLcF wGF CLF CLF CLgF nA F CLF CLF CLF CLmF GnF }oF m F CLF CLF CLF CLF CLF CLF CLwF {xF GyF OF OP{F ud |F Y}F k~F ]F AF FF }X ~F OPF ^S |F CLF D.F GF EF LEuF CLtF CLF o`B F yA F o 5F H6F EoF CLF CL:F F ;F (O@GHF ?z LF @Cp MF Aap NF B@Q OF CC$PF DAQF EERF FCMTF GKFUF HJVF II5F JOPF LCLYF NGeZF Oy F QOPF SCL]F Ux ^F W]@F XOPF ZCLaF ]N F ^OPF `CLdF bH[F OPfF ^F CLhF EiF U#F OPkF M lF ApmF u =nF gh oF \;pF Q qF M rF N sF KMtF LuF CkF OPF CLxF |` yF NzF Ld$F OPF CL}F L݃~F KF KvF EF OP~F CLF D;F GF CμF FݱF JF GF DF GoF KcF @IF x<F @F OsF IF LF oAF JPF DF PͫF vGF PBF MNMF kH F JZF KF CLF EjF AFF OPF CLF CLF CLF CLF CLF CLF CLF PgF LF YpF _ > F _ > F _ > F "CLF #CLF $CLF %CLF &CLF 'CLF (CLF *]F +CLF TCLF UCLF VN$F XCLF [D$&F ]CLF ^CLF `CμF bCLF cCLF dCLF gOP$F hJ %F iH &F lH5F oCL*F qM۲,F rY.F sOP.F tN7oF vCLF wCLF zOPF |CL3F sԨ4F A6F X7F U348F [Y9F b:F \ٚ;F _4F U?F H:[@F F٢AF WI9F OPDF CEF FFF F|GF QڦF |fF CF }F e F `sF E5F @rF v4 F {w F {LS !F CL F CLF CLF e F OPF V F gS$F GldF |oQ F F p4F CLF CLF CLF CLF CLF IF HA<F GF w F IU F @}BF HؒF J F "rfF %KF ){H F +VF ,R|F /yOF 0z)B F 2P[F 3N07F 4LF 7uD F :sw F ^ F ?CLF @CLF ACLF CCLF DCLF GOPF HOPF IOPF KCLF ONp|F PHF QI F RH(F UiF i}eF nI}fF w ^ ^ MF rez NF DWOF G/PF ErQF SRF RzSF nQ TF KVF r0} XF EYF I[F {\F Y""^F e*_F C`F C^aF w >bF zGcF wGF CLF CLF CLgF n& F CLF CLF CLF CLmF FĽnF }6goF l F CLF CLF CLF CLF CLF CLF CLwF }GxF J{yF P(F OP{F um; |F XI}F k~F ]F AF FDF |= ~F OPF \7 |F CLF DF G F EΰF JhuF ICLtF JCLF Lo{ F Mw F Oo 5F QH 6F REF TCLF UCL:F WF>K;F XS CLF@CLFCOFDG6gFEPgFF_FG_FH_FJCLFKCLFtCLFvCLFwCLFxCLFyCLFz]F{CLF|CLF}CLFN"~FCLFD"WFCLFCLFC4FCLFCLFCLFOP$FJ %FHӀ&FM FCL*FM,FYGYFOP.FMFCLFCLFOPFCL3Fs4FA6FSfg7FH&g8F[339Fb:FWff;F[YFU7?FH(@FFAFVFOPDFCμEFFZFFFGFQF}yFC F|Fe F^{FESF@۶Fv F{in F{= !FCL FCLFCLFe!4 FOPFU FfFFF|5! F[F pF CLF CLF CLFCLFCLFIAFF4FF5JF6GF7DXF9GF:KcF;@tF=xF>@ FAOFCIuFDLFGoAFIJPFJBFMPWFPvJQFQP(FRMNMFSm FTJ`FUJ`FWCLFZEtCF[@t:F\OPF^CLF`CLFaCLFbCLFcCLFdCLFeCLFhNgFiG,FjX Fk_F_F_FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN*FCLFD"WFCLFCLFDQNFCLFCLFCLFOP$FI%FHӀ&FOFCL*FMo#,FYJFOP.FM<FCLFCLFOPFCL3Fs'4FA6FM7FH&g8FYٙ9Fb:F]Ff;F`@FT?FHj@FFwAFVpFOPDF CEF FFF FGF Qw/F}2FCF}fFer FaFDF@Fv- F{in F{ !FCL F CLF!CLF#fE F%OPF&UDF'gZF(G'F+{H F.+F/oDF1CLF2CLF3CLF\CLF]CLF`IFbHIeFcG,FfwQ? FiI. Fk FlH9QFmO=0 FpspFsJ6Fv{ FyU$yFzRRF}yKF~y FPfFNFLFuS[ Fn F`fF\F^ FCLFCLFCLFCLFCLFOPFOPFOPFCLFMFH;FI FHFhHFhH}eF.oW}fFrw3 ^ ^ MFq NFD+OFGPFEQFSiRFROSFn`* TFJVFqh XFEYFI[F\F[)^F&dw_F'C`F)BSRaF*wbF+xcF-wF/CLF0CLF1CLgF3n F5CLF6CLF7CLF9CLmFFdF/FeJFfGFgDXFiGFjKcFk@IFmx.Fn@ FqOPPFsIFtLFwoAFyJPFzB=F}SGFvGFP(FMNMFlº FJZFJԭFCLFEF@rFOPFCLFCLFCLFCLFCLFCLFCLFNgFMgFYgF_F_F_FCLFCLFCLFCLFCLFCLFCLF]FCLFCLFCLFN! FCLFD&FCLFCLFD4KFCLFCLFCLFOP$FI%FH9&FMFCL*FM4,FXFOP.FMFCLFCLF OPF"CL3F$s4F&A6F)S@7F*Jٙ8F+V9F.b:F0[`;F1` F4U?F5G @F6FAF7WHF8OPDF9CEF:F_FF;FƐGFxRnF?f= oFB\;pFDRW qFEL rFFO\ sFGKutJLuJC!PJOPJCLxJ {Z yJ LzJ LoJOPJCL}JLm~JKJJmJEJOP~JCLJBwJGJCJ GJ!JJ"GJ#DJ$GeJ&KcJ'@X-J)x9J*@ J-OJ/I%J0LJ3oAJ5JPJ6BJ9POJ;v.[JdPBJfMNMJglº JhJYzJiJԭJkCLJnEJo@rJpOPJrCLJsCLJtCLJvCLJwCLJxCLJyCLJ|NgJ}NJ~YgJ_ > J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN! JCLJD&JCLJCLJCBJCLJCLJCLJOP$JI-%JHӀ&JJZJCL*JM,JYJOP.JMcJCLJCLJOPJCL3Js#4JA6J`L7JU38J`9Jb2:J`@;J_,JU?JG{@JFAJWJOPDJCEJFFJF GJQPBJ~fJDyJ Je= JavJ,DyNJ.@=J/vK J0{Z J1z !J4CL J5CLJ6CLJ8e J;OPJFJAz JB|SJDoJFCLJGCLJICLJJCLJKCLJNIJOH;JPLJSv JVHٚ JY~ JZGJYJ[Q]6 J^r#3JaJJOPJCLdJGJOPfJ^JCLhJDZiJQJOPkJLW lJAQmJunJ gaH oJ"\}pJ$S\ qJ&NG rJ'Q sJ(KtJ)KuJ*BRJ+OPJ-CLxJ/z[ yJ0PzJ2L2J3OPJ5CL}J8L;~J9JJ:JJ;EzJCLJAByJCGJDCJEF/JFJJGGJIDJJGeJKKcJL@JNx)JQEVJROW@JTIЍJUKCuJXoAJZJPJBJLvJvC JPBJML{Jir JJYzJJԭJCLJEJ@cRJOPJCLJCLJCLJCLJCLJCLJCLJPٚJM3JYgJ_ > J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN#JCLJD&JCLJCLJCJCLJCLJCLJOP$JIЍ%JH9&JGJCL*JL4,JXJOP.JM5JCLJCLJOPJCL3Js4JA6J b@7J G@8J W9Jb:JX;J],JU?JG@JFAJV"JOPDJCEJFFJFpGJQJ ~J"CJ#}ٙJLeE JO]kJPDLJQ@=JRvh. JS{LS JTz[ !JXCL JYCLJZCLJ\cjS J^OPJ_UhJ`f*JaFbJez JgS7JhoJjCLJkCLJlCLJmCLJnCLJrIAJsH1JtHȥJwv( JzI J|~z J}GCJ~J Jn#3JIcJ{ JV!JQuJyKJy JPJMiJJJuD JqD J`3J^yJ^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJM(JHJIJH JhJh}eJgh}fJyg ^ ^ MJ"q NJ%D{OJ&G*PJ'EQJ*SRJ+R(SJ,n% TJ-J&VJ.o XJ0D|YJ2H|[J3]\J4Y[^J7d,q_J8C`J9AaJyQJ@CLJACLJBCLgJDn, JFCLJHCLJICLJJCLmJMEJnJx}LoJyiN J{CLJ}CLJ~CLJCLJCLJCLJCLwJFpxJHyJRJOP{JrDD |JȲ}JjC~J]J@BUJF1FJ|& ~JOPJ[ |JCLJD*JGJEiJNruJCLtJCLJqs Jx1 Jo 5JG6JEY%JCLJCL:JG4;JIJJԭJCLJE{}J@rJOPJCLJCLJCLJCLJCLJCLJCLJNgJK0JYgJ_ > J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN#JCLJ D)J CLJCLJDYJCLJCLJCLJOP$JI%JH&JRJCL*J!L,J"WJ#OP.J$LJ&CLJ'CLJ*OPJ,CL3J.s|4J0A6J3l&f7J4]L8J5`9J8b:J9Yٚ;J:^3J=T?J>G@J?FAJ@VJAOPDJBCn<EJCF FJlFGJmPХJq~s4JrDIJs}JteH JwanJyD Jz@=J{vh. J|{/9 J}z !JCL JCLJCLJd7' JOPJUJg6JF<Jy JMJoJCLJCLJCLJCLJCLJIJH!JO9Jvt JHȉ J~OI JGJLN JqPJI-J{ JV!JQuJyKJyz JOJMJJJuD JrD JaJ^yJ^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJLJHJISJH JxJx}eJt}fJz ^ ^ MJHq NJJDOJKFPJLEQJOSRJQR SJRn0 TJSIVJTnN XJUEYJWHNt[JX:\JZYP^J]d[_J^C9`J_@TaJav{bJbx=qcJcvJeCLJgCLJhCLgJjnc JlCLJmCLJnCLJoCLmJE?nJ}ٚoJi J _ > J _ > J CLJ CLJ CLJ CLJ CLJ CLJ CLJ ]J (CLJ )CLJ *CLJ ,N!J .CLJ 0D-4J 2CLJ 3CLJ 5E*J 8CLJ 9CLJ :CLJ I%J >H9&J AM'J DCL*J GLL_,J HXTJ IOP.J JLJ LCLJ MCLJ OOPJ QCL3J Tsi4J VA6J XUf7J YF8J ZW&g9J ]b:J _[`;J `_S3J cU?J G@J FWAJ WD0J OPDJ CQEJ FFJ F"GJ PJ zgJ A3J yJ e@ J ]J CƘJ @J vv J { J zr !J CL J CLJ CLJ ev J OPJ UJ fJ FJ y@Y J )J oJ CLJ CLJ CLJ CLJ CLJ IܞJ HJ GDJ vv J I J ~ J HJ RJ J rLJ I'J z J UJ QwJ yGJ yN J ORJ MJ KJ u65 J r J a3J ^yJ ^ J CLJ CLJ CLJ CLJ CLJ OPJ OPJ OPJ !CLJ $LdJ %H J &IJ (HOJ +iQJ ViQ}eJ j}fJ{W> ^ ^ MJ pq- NJ sDOJ tFIPJ uEQJ xSRJ yQwSJ zn% TJ {IVJ }n XJ ~EYJ H*p[J >;\J ]}^J b|_J C9`J @aJ wbJ xgcJ wW J CLJ CLJ CLgJ n, J CLJ CLJ CLJ CLmJ E2JnJ }poJ hӄ J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ BxJ IyJ QkJ OP{J q"# |J Z@\}J j~J ]J @,J F3pJ { ~J OPJ Wt |J CLJ DJ HwJ EQHJ LW3uJ !CLtJ "CLJ %r J &wt J 'p > 5J )G56J *EF+J ,CLJ -CL:J /G;J 0K<DGHJ ?x LJ AB=q MJ B_ NJ C~R OJ DBPJ EBQJ FEa;RJ GC TJ HIcUJ II@VJ JHWJ KOPJ MCLYJ OF~ZJ Pyl J ROPJ TCL]J Vv J _ > J H_ > J KCLJ LCLJ MCLJ NCLJ OCLJ PCLJ QCLJ R]J SCLJ UCLJ VCLJ WNFJ YCLJ \D-4J ^CLJ _CLJ aD- J cCLJ dCLJ eCLJ hOP$J iI%J jH9&J mIJ oCL*J rK ,J sXġJ tOP.J uLJ wCLJ xCLJ {OPJ }CL3J sn4J A6J QL7J C8J [f9J b:J Z;J ^9J U:?J G|J@J F}AJ WXQJ OPDJ CIEJ FrFJ FGJ P#J ~s4J CJ }fJ dW J avJ CJ @J vR J { J zF^ !J CL J CLJ CLJ bb J OPJ UJ fRJ FJ x J J oqJ CLJ CLJ CLJ CLJCLJIJHJMHkJvK JJ"" J}f JHJ JM J#oJ&IFJ)zu J+U(J-Q9J0yGJ1y#; J3OJ4MkJ5JJ8u' J;r" J^yJ?^ J@CLJACLJBCLJCCLJECLJHOPJIOPJJOPJtCLJxLiJyHNJzIJ{HJ~kJk}eJ i}fJ %{ ^ ^ MJp( NJDvOJG0~PJEQJSRJQSJ~s TJI'VJn XJE_YJH X[J\JV̓^Jd_JCU`JAaJvbJxgcJvQJCLJCLJCLgJnz JCLJCLJCLJCLmJE+nJ}4oJhU JCLJCLJCLJCLJCLJCLJCLwJ@\xJKRyJN>JOP{JqrY |JZ }Jm_~J]J @tJ FfJ{ ~JOPJ=Y[ |J?CLJBCJCHZJDE"JHMUuJJCLtJKCLJMs JNw JPo 5JRG6JSEJJUCLJVCL:JXGC;JYP5 OJlBoPJmBQJnEWRJoC9TJpIUJqIVJrHDJtOPJuCLYJwDZJy@Y JOPJCL]Ju ^JZJOPJCLaJMJOPJCLdJGgRJOPfJ^JCLhJDJiJMJOPkJM$[ lJAffmJunJg oJ\pJS( qJN rJP sJKtJKřuJB5JOPJCLxJ{ yJJzJK0JOPJCL}JK~JJ(]JIJEpJOP~J CLJ BɀJ GJDJFJJJGJDJH JKcJ@-JxJ@ JOJI3JLJ#oAJ%JPJ&@ޝJ)OJ+v-J,NyJ-M=J.f J/JMJ0HLeJ2CLJ5EaJ7@t:J8OPJ:CLJ;CLJCLJ?CLJhCLJkPgJmG6gJnYgJo_ > Jp_ > Jq_ > JsCLJtCLJuCLJvCLJwCLJyCLJzCLJ{]J|CLJ}CLJ~CLJNqJCLJD,LJCLJCLJCJCLJCLJCLJOP$JI}%JHӀ&JQJCL*JK,JYJOP.JL|JCLJCLJOPJCL3JsF4JA6JVfg7J@g8JZ9Jb2:J^Y;J^ JU`?JGe@JFq2AJW^JOPDJCEJFoaFJFr5GJP J}JCJ}yJdQh J]fJC.J@Jvt Jz Jz !JCL JCLJCLJd7' JOPJU1mJfSJF,Jx:D J3m(J5o["J7CLJ8CLJ9CLJ;CLJTJIOuUJHVJH=JOPJCLYJDZJy1 JOPJCL]Ju' ^J]&JOPJCLaJN!JOPJCLdJGXJOPfJ^JCLhJD%iJLRJOPkJM~ lJB(mJt=qnJe޸ oJ\JpJUp qJNk rJQ3 sJKz tJKuJB'J$OPJ&CLxJ(zr yJ)HgzJ*K J,OPJ.CL}J1K|~J2IJ3IxJ4EJ5OP~J7CLJ9BrdJFݱJ?JJ@GJADJBH JDKcJEEJGxTJJEVJKOe!JMIJNLJQoAJSJPJTB3JWLvJYv*]JZNyJ\MAJ]e J^JPJ_H*JCLJEJ@t:JOPJCLJCLJCLJCLJCLJCLJCLJNgJM3JYpJ_ > J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJN UJCLJD(JCLJCLJD4KJCLJCLJCLJOP$JIpJ%JHӀ&JNJCL*JKz,JYҦJOP.JLyJCLJCLJOPJCL3JsB4JA6J\@7JE8JZg9Jb:J Y9;J \JT?JGO@JFcAJVJOPDJC EJF]8FJFdGJPrJ~s4JDJ~JcD J a٨J!C.J"@J#vt J$z J%y !JPCL JQCLJSCLJUb JWOPJXU KJYg JZFJ]x+ J_Y5JaoEJcCLJdCLJeCLJfCLJgCLJjI+JlHJmHh_Jpu JsH" Ju|5! JvH#JwLlR JznvfJ}HէJz[ JRk}JQ|:JyGJxo JOkJM0JKfvJt Ju; J`J^yJ^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJKJHJIJGJh\)Jh\)}eJ_gH?}fJ||? ^ ^ MJp NJDtOJGE+PJ EMQJ#SRJ$QSJ%@TJ&I.VJ'm XJ)E]YJ*Ge[J,\J-Y\r^J0c1_J1Cr`J3C?aJ4vQbJ5xzcJ7wJ9CLJ:CLJ;CLgJ>m J@CLJACLJCCLJDCLmJGG+ nJJ}goJKh JMCLJNCLJOCLJQCLJRCLJSCLJ|CLwJ}xJGyJNJOP{Jp"# |J[{}Jov~J]JAJG<Jzu ~JOPJ[v |JCLJCUJHJJD-JQTuJCLtJCLJs JwR Jo 5JG6JEBJCLJCL:JH;JMGJDHJw LJC MJ` NJB OJBPJBQJEYRJC>TJIUJHVJHJOPJCLYJC~ZJy JOPJCL]Jt ^J_4JOPJCLaJ OVJ OPJ CLdJGJYJOPfJ^JCLhJDiJLoJOPkJL lJCmJDwGnJEh oJH]opJJUR qJKP rJLS{ sJMKk~tJNKuJOB+JPOPJRCLxJT{/ yJUQHzJVJ3JXOPJ[CL}J]K\W~J_ItJ`I?JaEJbOP~JdCLJfBJhGJiDGJkF/JlJJmGJnDJoH[JpKcJqEJsxELJvEVJwOsJzI$J{LJ~oAJJPJ@ JTJvJNyJM<JeY JJPJGjJCLJE}MJ@t:JOPJCLJCLJCLJCLJCLJCLJCLJNgJG6gJPgJG J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ]JCLJCLJCLJNJCLJD(JCLJCLJ CμJCLJCLJCLJOP$JIi%JHU&JJJCL*JK:[,JYJ OP.J!LGJ#CLJ$CLJ&OPJ(CL3J+sK4J-A6J0cf7J1Q&f8J2e9J4b:J6[;J7^ J:T<?J;G:@JOPDJ?CEJ@FKFJAFVGJBP;^JF}JGC3N|Nc N]=VN C.N @N v N z N y !NCL NCLNCLNbq NOPNU&Nf/NF'NxWc N /N!o2N#CLN$CLN%CLN&CLN'CLN+I۵N,HN-NsN0uZ N3IUU N5{/ N6GN7Kr N;p6fNfHVNiz NkQr"NlQjNoyKNpx NrOgHNsMNuJNxtY N{uH N|`ɚN}^yN~^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNKdNHNINGNqNq}eN _W}fJ} ^ ^ MNpY1 NNDONGT%PNFQNSERNQ)SN@TNISDVNn XNEYNG[N\N\o^NdX_NCr`NDbaNwbNxǯcNw(NCLNCLNCLgNns- NCLNCLNCLNCLmN.GnN1}oN2h+ N4CLN6CLN7CLN8CLN9CLN:CLN;CLwN>AxN@KyNAO#NBOP{NEp |NGZ'}NHm~NJ]NMBKNOGErNRzcz ~NTOPNWZ/ |NYCLN\C_N^H"N_D NbGEEuNdCLtNeCLNs Nw J No9X 5NG6NE>NCLNCL:NG̶;NJv N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNNCLND+dNCLNCLNCaNCLNCLNCLNOP$NIQk%NH&NINCL*NK,N[NOP.NLNCLNCLNOPNCL3Ns-P4NA6N\ٙ7NP@8N`9Nb2:Nbٚ;N ]S4N#T?N$G(@N%FS<AN&WN'OPDN(C2EN)F;FN*FJMGN+PUUN/~s4N0DN1},N2c4R N5aN6CN8@N9v N:z? N;y !N>CL N?CLN@CLNBd NEOPNFU9XNGg3 NHFNKxWc NLmNNo'NPCLNRCLNSCLNTCLNUCLNXINYH_NZHNu NI N{in NGNR NrNHeNz[ NPcNQ];NyKNx NOKNLNKNt4 Ntw N`N^vfN^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNKNH1NINGNiNi}eNLRK}fN|K ^ ^ MN pI NN DON GPN F QNSRNQJSNp^ TNISDVNn; XNEzYNG[NY\N\^Ne_NC`N!DMaN"wbN#{\*cNLw{NOCLNPCLNQCLgNSn, NUCLNVCLNWCLNYCLmN\H@nN_}oN`h NbCLNcCLNdCLNeCLNgCLNhCLNiCLwNlCxNmHǮyNnQ\NoOP{Nsq |Nu[2}Nvn44~Nx]N{BN|G'+N{ ~NOPNd}[ |NCLNC-NHNE gNNuNCLtNCLNs Nwu No8 5NG6NEY%NCLNCL:NG;NG2 N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNN#8NCLND.NCLNCLNDYNCLNCLNCLNOP$NI9%NHo&NQNCL*N J{,N \`ON OP.NLȐNCLNCLNOPNCL3N@s#b4NBA6NETf7NFP@8NGW&g9NIb2:NKZ3;NL]s3NOT?NPG@NQFEANRVNSOPDNTC$8ENUF,3FNVF=GNWPNN[~_N\C3N]}fN^c$ Na](NbCNd@Nevܹ Nfz$ Ngyl !NjCL NkCLNlCLNna- NqOPNrU%NsfHLNtFpNwx# NycNzo'DNCLNCLNCLNCLNCLNIANH_NHyNup NI N{= NGnNJi" Nn,NH0Nz[ NN׮NPkNyKNxe NO):NLNKNt Ny N`N^yN^ NCLNCLNCLNCLNCLN OPN OPN OPNCLNKOINHƐNINGNhNh}eNyg}fN} ^ ^ MN5pj NN7DJON8GVPN:EQN=SRN>QSN?oI TN@I `VNAm XNCEYNmGud[NnY\NoW^Nrb_NsC`NuCaNvuǯbNwwcNyu.N{CLN|CLN}CLgNm NCLNCLNCLNCLmNGnN|oNg׷ NCLNCLNCLNCLNCLNCLNCLwN} >xNG{yNPW NOP{Np |NZ}Nn/2~N]NBNFN{ ~NOPNY |NCLNCwNGeNE'NHuNCLtNCLNs Nw% No- 5NG6NEb/NCLNCL:NG`;NPyl N@OPNBCL]NCu ^NE`! NFOPNHCLaNKPxNLOPNNCLdNPFNROPfNT^NUCLhNWC4iNYV) N[OPkN\L lN]E\mN^z{nN_f= oNb^1pNdUaH qNeN rNfQ{ sNgKUtNhKuNiBNjOPNlCLxNn}R yNoLzNJNOPNCL}NK~NIZNHYNENOP~NCLND%NGeND%NFݱNJNGNE NH*NKcNENxBxNEVNONIrNK?NoANJPNEVNLvNvNNyNM6Ne NJFNFBNCLNEN@NOPNCLN CLN CLN CLN CLN CLN CLN NgN L3N PgN G N _ > N _ > N CLN CLN CLN CLN CLN CLN CLN ]N CLN CLN CLN N#8N CLN !D+dN #CLN $CLN &DN )CLN *CLN +CLN .OP$N /I*c%N 0H&N 2MfN 5CL*N `J,N a]dN bOP.N cLvN eCLN fCLN hOPN jCL3N msu4N oA6N rO7N sCg8N tV39N vb:N x\ff;N y_lN |TL?N }G=@N ~F9AN VN OPDN CEN FFN F.2GN P!hN zN A4N yFfN b N aN CN AN vI N zr N y@Y !N CL N CLN CLN c N OPN U+N g+N F-N xH N IfN oN CLN CLN CLN CLN CLN IAN H N ON uD N Ib" N {/9 N GN MI N pN GN z N N&N PN yKN xH N OiN LKN JrN tz N )sU N +`fN ,^yN -^ N .CLN /CLN 0CLN 2CLN 3CLN 6OPN 7OPN 8OPN :CLN >KN ?HfN @IN AGN Cy3N Dy3}eN BG }fN}7) ^ ^ MN _p NN aDnON bG'PN EZQN SERN QSN nT TN IJVN mH XN EzYN G\[N >\N ] ^N dJ_N C`N BaN u=qbN v*cN u.N CLN CLN CLgN n, N CLN CLN CLN CLmN G!nN }goN gY N CLN CLN CLN CLN CLN CLN CLwN BxN HyN QfN OP{N o |N Z-}N nS~N ]N BON F=N }X ~N OPN [M |N CLN CN GN DN L^(uN CLtN CLN t N v N o 5N G6N EdN CLN CL:N G;N R  N ?_ > N ACLN BCLN CCLN DCLN ECLN FCLN GCLN H]N JCLN KCLN LCLN MNN OCLN RD*|N TCLN UCLN WDGN CLN CLN CLN OP$N I%N H&N JYN CL*N Jk,N _N OP.N MN CLN CLN OPN CL3N r҇4N A6N R37N I8N V9N b:N Zg;N ^N TP*?N FA@N F0AN VPN OPDN E4HEN F(FN FGN ON @N Es3N @N cw N ]N C-N AN v N zcz N y !N CL N CLN CLN dc N OPN T-N fjN EN w N N oN CLN CLN CLN CLN CLN IN HN FN u' N I N z N GN P(z N tN GN Hz N JMzN KPN NyKN Ox# N QNN SLN TKN WtU N Zr3 N [a)N \^yN ]^ N _CLN `CLN aCLN bCLN cCLN fOPN hOPN iOPN kCLN nJN oHaN qIN rGN uhN xh}eN jM9}fN }o ^ ^ MN o NN DON GVPN E,QN SRN QSN nT TN IVN m XN EYN G;[N ˭b\N X^N d_N C`N B2:aN x.bN x>cN w >N CLN CLN CLgN n0 N CLN CLN CLN CLmN F6nN}LoNgn NCLNCLNCLNCLNCLNCLNCLwN\xNKǮyN ON!OP{N$p |N&Z}N'nz~N*]N-B BN.FjN/@j^~N0OPN3i8 |N6CLN9C}N:G\N;DN>N)uN@CLtNBCLNDt NEv NFodZ 5NHG6NIE``NKCLNtCL:NvGx;NwPeKANAoANCJPNFEVNGQNIu9NKNyNLM1 NMd NNJFNOFNNQCLNTEuNU@t:NVOPNXCLNZCLN[CLN\CLN]CLN^CLN_CLNbNgNcNLNdXPNeG Ng_ > Nh_ > NjCLNkCLNlCLNmCLNnCLNoCLNpCLNr]NsCLNtCLNuCLNvN"~NCLND'NCLNCLNCNCLNCLNCLNOP$NI%NH^&NJ0NCL*NJ?e,N`NOP.NMKONCLNCLNOPNCL3Nr4NA6NY@7NRg8NV39NbN:NZg;N\NT?NF@NF+KANVNOPDNEJENFFNFGNP SN zN A3N yYN c| Na=NBANAKNwl NzF^ Nx !NCL NCLNCLNax NOPN THN!fN"FjN&w3 N(N)oN+CLN,CLN-CLN.CLN0CLN3I@N4GN5IN8t N;Is3 N=z N>GXNhJ NknNnGQNqzu NsM;kNtP4NwyKNxx NzNdN|LN}JNtx Nq Na<N^yN^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNJNHNINGFNizNiz}eN(gkh}fND}U] ^ ^ MNp NNDONGpPNE\QNSRNQo>SNnT TNIDVNna XNEYNG'[Nuc\N\1^Nb8_NC`NA aNxbNx.cNxNCLNCLNCLgNm N1CLN2CLN3CLN4CLmN7FnN:}goNCLN?CLN@CLNACLNBCLNCCLNDCLwNH}fgxNIKyNJO{NKOP{NLqrY |NMZ-}NNmZ~NQ]NTAHNUG1BNX| z ~NZOPN[{ |N^CLNaCNbGNcEtNfITuNhCLtNjCLNsO Nv Nn 5NG6NEUNCLNCL:NG;NNK N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNNCLND'NCLNCLNE2NCLNCLNCLNOP$NI W%NH2&NQNCL*NJ,Na~<NOP.NMzNCLNCLNOPNCL3Nr4NA6NS37NI338N[9Nb:NY3;N[3N&T3^?N'F^@N(F#AN)V;N*OPDN+EXEN,EFN-F GN-PN1}N2CYN3}fN5bfy N8] vN9BՐN:AKN;w% N ONBPNBhQNE\RNC:TNGIUNGVNG&NOPNCLYNCZNy{ NOPNCL]Nu ^N^8NOPNCLaN Oj+N!OPN#CLdN%FmN'OPfN)^N*CLhN,CSciN-RN/OPkN1L lN2K mN3D nN4j. oN7]ӁpN9X qN:S rN;U# sNBYN?OPNACLxNC~OI yNDQzNzNEINGOPNICL}NKJ~NNHɦNOHENPEُNQOP~NSCLN}DGNH ND4KNGNJNGNEZNH9QNKcN@NxN@ NONINKANoANJPNEVNLvNu9NNyNM6NdU NJLuNFhNCLNEVN@pNOPNCLNCLNCLNCLNCLNCLNCLNR<NMyN^ NG N_ > N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNNCLND(NCLNCLNDNCLNCLNCLNOP$NI%NHy&NL"N CL*N I,Nb_NOP.NNVNCLNCLNOPNCL3Nr4NDA6NGT7NHJ@8NIc9NKb:NM\@;NN`NQT 7?NRF1@NSFANTV+NUOPDNVELENWEMFNXF7GNYON]~N^CN_}N`b NcavNdBùNfAKNgw4 Nhz % Nix0 !NlCL NmCLNnCLNpb. NsOPNtTNuf2NvGP%Nyw N{"N|orN~CLNCLNCLNCLNCLNI+NGNFINt4 NI&f Nz[ NGCNK& NrNGGwNz NN5NP9NyKNwS NNNLNLzNtM Nt N`N^yN^ NCLNCLNCLNCLNCLNOPN OPN OPNCLNJ{aNHNINGNi(Ni(}eN{k|6}fN{‹ ^ ^ MN7q% NN9DON:GcPNRoqHRorEΰRotFOuRovCLtRowCLRoyr2- Rozx1 Ro|nO 5Ro~G6RoEu*RoCLRoCL:RoG`;RoH6GRo?E*Ro@H9QRoAKcRoB@X-RoDxRoE@ RoHO^1RoJI$RoKLRoNoARoQJPRoTEVRoUQRoWu9RoXNyRoYM8kRoZd^ Ro[JLuRo\FNRo^CLRoaERobARodOPRofCLRogCLRoCLRoCLRoCLRoCLRoCLRoNgRoKRoYgRoG Ro_ > Ro_ > RoCLRoCLRoCLRoCLRoCLRoCLRoCLRo]RoCLRoCLRoCLRoNRoCLRoD,LRoCLRoCLRoDGRoCLRoCLRoCLRoOP$RoH%RoH&RoH% RoCL*RoI,Roc6RoOP.RoNRoCLRoCLRoOPRoCL3Ror4RoA6RoT7RoQL8Roe@9Rob:Ro `g;Ro ^fRo T:?RoFz@RoFARoVRoOPDRoE5ERoE FRoEGRoOMRo|34RoC Ro|RobC Ro_$Ro B Ro!AKRo"wB Ro#y Ro%xt !Ro(CL Ro)CLRo*CLRo,a Ro.OPRo/TRoXeRoZFRo]w| Ro_Ro`oRobCLRocCLRodCLRoeCLRogCLRojIRokHRolJCRoot RorID Rotz RouG} RowLL RozofRo}G#"Roz RoNqRoORoyKRow3 RoNRoLlRoJ6Rot>u Ros Ro`ٚRo^yRo^ RoCLRoCLRoCLRoCLRoCLRoOPRoOPRoOPRoCLRoJaRoHfRoIRoGRoi33Roi33}eRo_h6q}fRoy{?E ^ ^ MRopJ NRoDORoGPRoFQRo"SRRo#QSRo%n0 TRo&ItVRo'pH XRo)ElYRo*F[Ro+\Ro,YE^Ro0cƕ_Ro1C`Ro2@ۘaRo4zbRo5z(cRo6u Ro8CLRo9CLRo;CLgRo=n4 Ro?CLRo@CLRoACLRoBCLmRoEEnRoI}oRoJh RoLCLRoMCLRoNCLRoOCLRoPCLRoQCLRoSCLwRoVAGxRoWIyRoXQ=qRoYOP{RoZrx |Ro[Yх}Roi~Ro]RoAMRoFRoz ~RoOPRo` |RoCLRoD;RoHRoE8RoMuRoCLtRoCLRoqq Row1' Ron 5RoG6RoE RoCLRoCL:RoF/;RoN Ro_ > RoCLRoCLRoCLRoCLRoCLRoCLRoCLRo]RoCLRoCLRoCLRoNRoCLRoD/RoCLRoCLRoDRoCLRoCLRoCLRoOP$RoH%RoHM&RoRwGRoCL*RoI,RocRoOP.RoN(RoCLRoCLRo"OPRo$CL3Ro'r4Ro(A6Ro+Z&g7Ro,R8Ro-f9Ro0bK:Ro2YFf;Ro3[gRo6T?Ro7F@Ro8FARo9VÁRo:OPDRo;E@ERoORoAyYRoBARoDyYRoEb RoHazZRoIBRoJARoKwQ? RoLy{ RoMxWc !RoyCL RozCLRo{CLRo}dc RoOPRoTϏRog-URoG}Row RoqRonRoCLRoCLRoCLRoCLRoCLRoIܞRoH RoI=)Rotz RoJD Roz RoGJRoR̦ Ror3RoF.Roz RoSnRoP |RoyKRow RoNRoLWRoK|Rot!N RowU RoafRo^yRo^ RoCLRoCLRoCLRoCLRoCLRoOPRoOPRoOPRoCLRoJDRoHRoIRoGRohzRohz}eRoS}fRoz ^ ^ MRoDp͸ NRoFDORoGGWPRoHFhQRoKSRRoLQSRoN~Ü TRoOIVRoPou XRoRE@YRoSF[RoT\RoUZÎ^RoYd_RoZC`Ro[AFaRo]yQbRo^xǯcRo_v*RoaCLRocCLRodCLgRogm RoiCLRojCLRokCLRolCLmRooF#nRos}oRothj RovCLRowCLRoxCLRoyCLRozCLRoCLRoCLwRoDW xRoIyRoORoOP{Ror |RoZ}RojT~Ro]RoA\WRoG$Ro{ ~RoOPRoZ |RoCLRoCRoHRoE RoJSuRoCLtRoCLRoqaH RovA RonO 5RoG6RoERoCLRoCL:RoG;RoS8RoOPRoCLBRo ACRo S"DRo {%, ERoT=qFRoPGRoJHRoxZ LRoD( MRobH NRo@ ORoB PRoB QRoEXRRoCTRoGAURoGOTVRoFnRoOPRoCLYRo C/ZRo!zr Ro#OPRo%CL]Ro'u ^Ro)\Ro*OPRo,CLaRo/NRo0OPRo2CLdRo4FsRo6OPfRo8^Ro9CLhRo;C'iRoOPkRo?Lo lRo@G\mRoA{nRoCfY oRom]pRopT qRoqM rRorP sRosK<-tRotKuRouB%RovOPRoxCLxRoz~# yRo{L"zRo|I>Ro~OPRoCL}RoJP~RoHhRoH RoERoOP~RoCLRoC>RoH[RoDQNRoG )RoJRoGRoE9[RoHGRoKcRo@-Roxq(Ro@ RoOW@RoIλRoLRooARoJPRoEVRoORou9RoNyRoM:>Roeb3 RoJMRoFNRoCLRoERo@t:RoOPRoCLRoCLRoCLRoCLRoCLRoCLRoCLRoP\RoG6gRoPgRoG Ro_ > Ro_ > RoCLRoCLRoCLRoCLRoCLRoCLRoCLRo]RoCLRoCLRoCLRoN URoCLRoD,LRoCLRoCLRo E#Ro5CLRo6CLRo7CLRo9OP$Ro:H%Ro;H&Ro>MKRoACL*RoDIC,RoEdRoFOP.RoGN׮RoHCLRoICLRoLOPRoNCL3RoQr4RoSA6RoUa37RoVJ@8RoWZ9RoZbӠ:Ro\Y;Ro]\gRo`TA ?RoaF@RobEARocVRodOPDRoeE)hERofE@FRogEGRohORok@gRomERon@)RoobJ/ Ro_'RoBRoARowna Roy] Rox:D !RoCL RoCLRoCLRoa RoOPRoT>Roe9RoF؟Row3 RoDRonRoCLRoCLRoCLRoCLRoCLRoIRoH0RoIRotU RoI Roz RoH2RoJZh RonRoF$Roz$ Roc{LRoPRo yKRo w Ro NyRo LERo JGRo t Ro r Ro `ٚRo ^yRo ^ Ro CLRo CLRo CLRo CLRo CLRo OPRo OPRo OPRo CLRo !J"QRo #HNRo $IRo %G-Ro (h Ro +h }eRoh}fRoz) ^ ^ MRo np NRo pDFORo qFPRo rFQRo uSRRo wQwSRo x@}BTRo yIpXVRo zn XRo |EYRo }Fb[Ro ~\Ro [ ^Ro b$_Ro C`Ro BaRo zW bRo yaHcRo xkRo CLRo CLRo CLgRo m Ro CLRo CLRo CLRo CLmRo FnRo ~goRo h+ Ro CLRo CLRo CLRo CLRo CLRo CLRo CLwRo @\xRo MW yRo O34Ro OP{Ro qX |Ro Zp}Ro jy~Ro ]Ro ARo G9Ro {a ~Ro OPRo Zc |Ro CLRo CRo HRo ERo LuRo CLtRo CLRo qm Ro u Ro m 5Ro G6Ro E Ro (CLRo )CL:Ro +Gn;Ro ,R~1@ ORo ?BPRo @AQRo AE*RRo BCTRo CG ,URo DG5VRo EFRo FOPRo HCLYRo JC6]ZRo Kz Ro MOPRo OCL]Ro Qup ^Ro S_nRo TOPRo VCLaRo YO?Ro ZOPRo \CLdRo ^FsRo `OPfRo b^Ro cCLhRo CUiRo ORo OPkRo Lf lRo DmRo y33nRo gL oRo ]lpRo U qRo N( rRo Q sRo K;DtRo KγuRo BjRo OPRo CLxRo } yRo JszRo I>Ro OPRo CL}Ro J;~Ro HF Ro G Ro EbRo OP~Ro CLRo CRo H*Ro DQNRo FݱRo JRo GRo E9[Ro HGRo KcRo ERo x4Ro EVRo ORo IrRo LRo oARo JPRo EVRo LvRo u9Ro NyRo M6Ro d] Ro JIRo E Ro CLRo E}MRo @xRo OPRo CLRo CLRo CLRo CLRo CLRo CLRo CLRo YgRo P4Ro YgRo G Ro _ > Ro _ > Ro CLRo CLRo CLRo !CLRo "CLRo $CLRo %CLRo &]Ro 'CLRo (CLRo )CLRo +NqRo UCLRo WD*|Ro YCLRo ZCLRo \DRo _CLRo `CLRo aCLRo cOP$Ro dHچ%Ro eHh&Ro hJ&GRo kCL*Ro nIj,Ro odsRo pOP.Ro qO \Ro rCLRo sCLRo vOPRo xCL3Ro {r4Ro }A6Ro V7Ro G8Ro \ٙ9Ro b:Ro Ys3;Ro ]fRo S?Ro F@Ro EARo V0Ro OPDRo EERo EDFRo EGRo O7Ro zS4Ro ARo yYRo b> Ro aCRo B Ro ARo w| Ro y@ Ro x !Ro CL Ro CLRo CLRo cM Ro OPRo TRo fRo GhRo w Ro rRo nRo CLRo CLRo CLRo CLRo CLRo IRo H7DRo IRo tx Ro IDD Ro zF^ Ro GRo M+ Ro rfRo "FRo %z$ Ro 'pRo (QQRo ,yKRo -wna Ro /NbRo 0L+ Ro 1KKRo 4t' Ro 7w33 Ro 8`Ro :^yRo ;^ Ro CLRo ?CLRo ACLRo DOPRo EOPRo FOPRo HCLRo LIRo MHRo NIRo OGRo RizRo Uiz}eRo TZ)}fRo z ^ ^ MRo q NRo DORo F%PRo EsQRo SRRo QUSRo @RTRo I=uVRo nJ* XRo EYRo FL[Ro \Ro [J^Ro dpR_Ro C`Ro C?aRo wbRo y34cRo vpRo CLRo CLRo CLgRo mל Ro CLRo CLRo CLRo CLmRo GnRo }goRo g» Ro CLRo CLRo CLRo CLRo CLRo CLRo CLwRo y34xRo IyRo QLRo OP{Ro pDD |Ro [{}Ro lm~Ro ]Ro BvRo GRo } ~Ro OPRo Yx |Ro CLRo CRo H\Ro DRo HMuRo JCLtRo KCLRo Mq^ Ro Nw+ Ro Omi 5Ro RG݄6Ro SERo UCLRo VCL:Ro XG;Ro YPFfCLRo?CLRo@CLRoCPgRoDL4RoFYgRoGG RoH_ > RoI_ > RoKCLRotCLRouCLRovCLRowCLRoxCLRozCLRo{]Ro|CLRo}CLRo~CLRoNRoCLRoD&RoCLRoCLRoB RoCLRoCLRoCLRoOP$RoHٞ%RoH&RoJsRoCL*RoIJ(,RoekRoOP.RoORoCLRoCLRoOPRoCL3Rorw4RoA6RoQ7RoC8RoR9Rob:Rob4;Ro`fRoTC?RoFo@RoEARoVLRoOPDRoDERoEFRoE۵GRoO!RoARoFfRoA,Rob- Roa RoB|\RoARow Roy# Row !RoCL RoCLRoCLRocx RoOPRoT<Roe͈RoFvRow% Ro xRo n͹Ro CLRo CLRoCLRoCLRoCLRoHDRoAtj. RoDI33 RoGz)B RoHGRoIQN RoLoRoOFRoRzcz RoTvRoURARoYyKRoZw_ Ro\NL^Ro]LRo^KRoas RodwU Roe`Rog^yRoh^ RoiCLRojCLRokCLRolCLRonCLRoqOPRorOPRosOPRouCLRoIعRoG2JRoIRoGeRoiRoi}eRo em}fRo Mz ^ ^ MRopJ NRoDORoEPRoFQRoSRRoQv`SRo@TRoHVRome XRoEYRoF![Roխe\RoZl^RobGRo?EGRo@HVFRoAKcRoBERoDxyRoGEVRoHORoJI'RoKK:[RoNoARoPJ)RoTEVRoUQHRoWu9RoXNyRoYM)RoZa Ro[JOZRo\EuRo^CLRoaEuRob@t:RodOPRofCLRogCLRohCLRoiCLRojCLRokCLRoCLRoPgRoN&fRo]RoMHRokHRoMHRoCLRoCLRoCLRoCLRoCLRoCLRoCLRo]RoCLRoCLRoCLRoNRoCLRoD(RoCLRoCLRoCBRoCLRoCLRoCLRoOP$RoH(%RoH&RoQ5rRoCL*RoI-,RodRoOP.RoOSRoCLRoCLRoOPRoCL3Rory%4RoA6Ro_7RoEf8RoZ9Roc:Rog;Roj`Ro Tap?Ro F}@Ro EARoV#RoOPDRoD ERoENFRoEѼGRoOuRo~s4RoCRo~Roa Ro`RoBjRoARo w Ro!yl Ro#w !Ro&CL Ro'CLRo(CLRo*`x Ro,OPRo-T(Ro/gRo0G URo3wl Ro]Ro^nRo`CLRoaCLRobCLRodCLRoeCLRohIRoiH;RojJRomtM RopJ* Rosy RotGRouJ Roxn3Ro{FoeRo~zT Roy`RoRRoyGRowB RoN.RoKRoK&Rosl RosH Roa9Ro]3Ro^ RoCLRoCLRoCLRoCLRoCLRoOPRoOPRoOPRoCLRoIwRoF6RoIjRoGRoipRoip}eRo]e$1}fRoy{ ^ ^ MRopt NRoDUORoEPRoEQRoSORRoQ)SRop$ TRo$HVRo%l XRo'EYRo(F"[Ro)\Ro+Z*^Ro.cd_Ro/C`Ro1D|aRo2zGbRo3|34cRo4x Ro7CLRo8CLRo9CLgRo;n, Ro=CLRo>CLRo?CLRo@CLmRoDH<nRoG~goRoHf RoJCLRoKCLRoLCLRoMCLRoNCLRoPCLRoQCLwRoT}HxRoUHyRoVRRoWOP{RoZo33 |Ro][M}Ro^o~Ro]RoC3yRoGRo{w ~RoOPRoY |RoCLRoCRoHRoDeRoQFuRoCLtRoCLRoru Rowo Rom 5RoG}6RoERoCLRoCL:RoGg;RoIQnRo:SU?Ro;F@RoOPDRo?E-ERo@EFRoAEҥGRoBORoEzٚRoFBRoHy33RoIb< RoLaARoMBXRoNARoOw RoPyN RoQw !Ro}CL Ro~CLRoCLRobs RoOPRoTRofARoFƃRovI Ro)RooRoCLRoCLRoCLRoCLRoCLRoIRoH9RoK7xRot/ RoJ"" Roy] RoFqRoQ RonRoFLRozr Roy)RoS.RoyGRow4 RoN RoKARoJRos RotD Roa,Ro^yRo^ RoCLRoCLRoCLRoCLRoCLRoOPRoOPRoOPRoCLRoIRoE״RoI*cRoGERoi=qRoi=q}eRof}fRo{a ^ ^ MRoHpI NRoJD{ORoKE|PRoLE\QRoOSRRoPQSRoRof TRoSHVRoTl XRoVEIYRoWE[RoXA\RoY]L^Ro]e]_Ro^C`Ro`CaRoawbRobyqcRocwGRoeCLRofCLRohCLgRokmn RomCLRonCLRooCLRopCLmRosGnRow}goRoxf RozCLRo{CLRo|CLRo}CLRo~CLRoCLRoCLwRovxRoJ{yRoPRoOP{Roo |Ro[`}Rokz~Ro]RoCRoFRo{/ ~RoOPRo[v |RoCLRoCRoGRoDRoHNuRoCLtRoCLRor3 Rov Ron 5RoG}6RoERoCLRoCL:RoF;RoFOGgRo@OPfRoB^RoCCLhRoECZiRoFUVWOPkVWLU lVWHmVWnVW f oVW \pVWW qVWP rVWT sVWK<-tVWKXuVWB^VWOPVWCLxVW~ yVWO;zVWIwVWOPVWCL}VW J%g~VW"GVW#GrVW%FVW&OP~VW(CLVW*DGVW,H9QVW-DnQVW.G )VW0JVW1GVW2EV[VW3HVFVW4KcVW5EVW7xVW:EVVW;OVWeIQkVWfK4VWjoAVWlJ:VWoEVVWpLvVWru9VWsMVWtM&.VWu` VWvJIVWwFNVWyCLVW|E}MVW~@`VWOPVWCLVWCLVWCLVWCLVWCLVWCLVWCLVWPgVWO33VWYgVWGHVWkHVWMHVWCLVWCLVWCLVWCLVWCLVWCLVWCLVW]VWCLVWCLVWCLVWN'VWCLVWD/VWCLVWCLVWCVWCLVWCLVWCLVWOP$VWH%VWH&VWIpVWCL*VWH|,VWdVWOP.VWOaVWCLVWCLVWOPVWCL3VWry4VWA6VWa 7VWW8VWa9VWdEp:VWeFg;VWifgVWSK?VWF"@VWEAVWVFVW,OPDVW-EchEVW.EjFVW/E GVW0OVW3}gVW4CVW6}VW7a VW:^6VW;B5VWy1 VW?w| !VWCCL VWDCLVWECLVWG`6 VWIOPVWJTVWKf4VWMFVWPv VWRVWSoAVWUCLVWVCLVWWCLVWXCLVWZCLVW]I+VW^H7DVW_IZVWbt!N VWeI VWgy{ VWF>KVWKE VWnVWF'VWz VW{VWSVWyGVWw VWM.VWKcVWKG`VWsF VWv3 VW`ٚVW^yVW^ VWCLVWCLVWCLVWCLVWCLVWOPVWOPVWOPVWCLVWIVWF2$VWI:VWG\VWhVWh}eVWRcg}fRo|-h ^ ^ MVWpvS NVWDOVWEsPVWE QVWSRVWQSVWo TVWHVVWl XVWEYVWE[VW\VWWg^VW#c_VW$C`VW&B٦aVW'vpbVW(xgcVW)v34VW+CLVW-CLVW.CLgVWYmo VW[CLVW\CLVW]CLVW^CLmVWaGAnVWe}oVWff^ VWhCLVWiCLVWjCLVWkCLVWlCLVWnCLVWoCLwVWr|{xVWsFaHyVWtOVWuOP{VWxn |VWz\U}VW|l~VW~]VWBHVWF[VW| ~VWOPVWXs |VWCLVWCsVWGVWDyVWO/uVWCLtVWCLVWrH VWxV VWn 5VWG6VWEVWCLVWCL:VWFs;VWPVWXT\f?VWYF@VWYEAVWZWRVW[OPDVW\EEVW]FDFVW^EFGVW_OVWcyVWdAgVWeyFfVWfb= VWjb.VWkB#2VWlAVWmw VWny#; VWow_ !VWrCL VWtCLVWuCLVWwa VWyOPVWzT̯VW{fTmVW|FVWvK VWVWo`VWCLVWCLVWCLVWCLVWCLVWIӈVWH3VWHVWt' VWIw VWy VWF>KVWM VWo3VWFVWz? VW{6VWTvPVWyGVWwl VWMVWKxVWL4rVWs VWt VW`3VW^vfVW^ VWCLVWCLVWCLVWCLVWCLVWOPVWOPVWOPVWCLVWI=VWGVWILVWH VW hVW#h}eVWlVH}fVW|h ^ ^ MVW>o_ NVW@DOVWAFMPVWBEΰQVWESRVWFQ}SVWGn TVWIHqVVWJleC XVWLE\YVWMEC[VWN\VWOY6 ^VWzb%_VW|C`VW~BHaVWwbVWxcVWvVWCLVWCLVWCLgVWm VWCLVWCLVWCLVWCLmVWFnVW}oVWfr VWCLVWCLVWCLVWCLVWCLVWCLVWCLwVWExVWHǮyVWPVWOP{VWnwx |VW[f}VWl!~VW]VWBk]VWFVW{Z ~VWOPVWuc |VWCLVWCvVWGVWDRVWGLDuVWCLtVWCLVWrm VWv! VWn 5VWG~_6VWExVWCLVWCL:VWF;VWP#VWT~?VWF-@VWFDAVWWVWOPDVWEEVWF%FVWF GVWP:VW~_VWD,VW}VWa VW]VWBtVWAVWwS VWy VWwB !VWCL VWCLVWCLVWb(\ VWOPVWTxVWfZVWFIVWvv VW׮VWov"VWCLVWCLVWCLVWCLVWCLVWIVWH1VWHVWs VWIs3 VWy VWFLVWO^ VWpIVWF|VWz$ VW|(bVWUVWyGVWv VWMVWKbVWKVWs VW s&f VW `VW4^VW5^ VW6CLVW8CLVW9CLVW:CLVW;CLVW>OPVW@OPVWAOPVWCCLVWFIVWGGVWHII?VWJH"iVWMhVWPh}eVWbp}fVW|j ^ ^ MVWkp< NVWmD}OVWnFPVWoEQVWSwRVWQ}SVWn TVWHF5VVWlm XVWEtbYVWEr[VW\VWZ ^VWea$_VWC`VWA aVWx bVWy34cVWvVWCLVWCLVWCLgVWmI VWCLVWCLVWCLVWCLmVWFqnVW~)oVWf  VWCLVWCLVWCLVWCLVWCLVWCLVWCLwVWA8RxVWJyVWN\VWOP{VWn |VW\}VW n,V~VW ]VW B%FVW FVW r+ ~VW OPVW C\|VW CLVW C:VW G|SVW E3VW LuVW CLtVW CLVW s VW u VW m 5VW "Gjr6VW #EmVW %CLVW &CL:VW (F:;VW )N,VW T?VW FV@VW FAVW WŐVW OPDVW EgEVW FHWFVW FGVW PYVW A@VW FVW A4VW a VW bT"VW AVW AVW w VW x VW w% !VW CL VW CLVW CLVW `EA VW OPVW TgVW fVW F؟VW vY VW VW oPVW CLVW CLVW CLVW CLVW CLVW IҠVW H*VW G3VW sl VW I VW z)B VW FxCVW KE VW tVW "FVW %z$ VW (}VW )UVW TyGVW UvI VW WMNVW XKKVW YKVW \s VW `tf VW aalVW b^yVW c^ VW dCLVW eCLVW gCLVW hCLVW iCLVW lOPVW mOPVW nOPVW qCLVW tIVW uG-VW vIEVW wHVW zjffVW ~jff}eVW gk}fVW |< ^ ^ MVW qm NVW DqbOVW EPVW EeQVW S~RVW QSVW n`* TVW HKVVW kU XVW EYVW E [VW h\VW Z3^VW cj_VW C`VW A33aVW wubVW z{cVW vVW CLVW CLVW CLgVW m VW CLVW CLVW CLVW CLmVW FX#nVW |4oVW eb5 VW CLVW CLVW CLVW CLVW CLVW CLVW CLwVW @BxVWHyVWRVWOP{VWm |VW[}VWlR<~VW]VWAƙVWFDVW"mJ ~VW$OPVW%D|VW'CLVW+DVW,G^VW-EVW0MCuVW2CLtVW4CLVW6sL VW7vG VW8n7L 5VW:G\6VW;Eb/VW=CLVW>CL:VW@F/;VWAO OVWB֐PVWAQVWEVWT?VWG% @VWF*cAVWWVWOPDVWFEVWF}FVWF>GVWPQVW}@VWDfVW}fgVW aF VW bPVW AVWAVWwt VWxP VWvI !VWCL VWCLVWCLVWa/ VWOPVWTkVWfVW F~VW#u VW$n0VW'ooVW)CLVW*CLVW+CLVW,CLVW-CLVW0I݇VW2H"iVW3HvVW6sF VW9J VW;y VWCLVW?CLVW@CLVWACLVWBCLwVWE~xVWGIpyVWHNVWIOP{VWLm |VWN\U}VWOoc~VWQ]VWUAVWVFzVWY|& ~VW[OPVW^tOI |VW`CLVWdDYVWeGVWfE>VWiKuVWkCLtVWCLVWs1' VWw/ VWm 5VWGS6VWEVpVWCLVWCL:VWF;VWLVW+UtW?VW,G9@VW-F8AVW.X3VW/OPDVW0F EVW1FUFVW2FPGVW3P6VW7@vfVW8EVgVW94VW:`Y VW=^kVW>A(VW?AVWAx VWBx VWCv( !VWFCL VWGCLVWHCLVWJ`6 VWNCLVWRL}VWTSVWUFqVWXu VWY}cVW[oGVW]CLVW^CLVW_CLVWCLVWCLVWI۵VWHVWK-ZVWs VWIY VWyz VWGVWLN VWr,VWF VWz VW@!QVWW#VWyCVWv VWM]]VWKFVWK1VWsU: VWw VW`fVW^yVW^ VWCLVWCLVWCLVWCLVWCLVWOPVWOPVWOPVWCLVWIg5VWH& VWI8VWH VWzVWz}eVWYX-"}fVW| ^ ^ MVWwt NVWDmOVWFVIPVWEQVWS{ RVWQrSVWy{ TVWGVVWk XVW!EJYVW"Ef[VW#\VW%Z=(^VWPe_VWQC`VWR@ۘaVWTv34bVWUw(cVWVu VWXCLVWZCLVW[CLgVW^m VW`CLVWaCLVWbCLVWcCLmVWgFWnVWj}oVWkeF VWmCLVWnCLVWoCLVWpCLVWqCLVWsCLVWtCLwVWwBRxVWxIyVWyNfVWzOP{VW}m |VW\b}VWn~VW]VWAVWFqVWC,~VWOPVWUi |VWCLVWD"VWGxVWDwVWJ;4uVWCLtVWCLVWr VWwĜ VWm 5VWGH6VWEO5VWCLVWCL:VWG4;VWI_eVWOP~VWCLVWB+VWHVFVWDSVWG4VWJVWGVWEsZVWHs<VWKcVW@JVWxVW@ VWOVWIVWLVWr VWIVW@ VWQVWv#,VWLVWMVW`w/ VWJkVWHVWCLVWE:VW@rVWOPVWCLVWCLVWCLVWCLVWCLVWCLVWCLVWOVWG6gVWPgVWGHVWkVWMHVWCLVWCLVWCLVWCLVWCLVWCLVWCLVW]VWCLVWCLVWCLVWNrVWCLVWD/VWCLVW CLVW CVWCLVWCLVWCLVWOP$VWH%VWH&VWJ;4VWCL*VWEHZ,VWFePVWGOP.VWHPVWJCLVWKCLVWMOPVWOCL3VWRr44VWTA36VWWW7VWXF 8VWYV@9VW[e:VW]\S3;VW^ayVWaU@?VWbGId@VWcFDAVWdXJVWeOPDVWfEEVWgFPFVWhF^AGVWiPVWmBVWnG\VWoB&fVWpa7 VWsbZVWtAWVWuAVWwx VWxxt VWyvt !VW|CL VW}CLVW~CLVWc!( VWCLVWy#; VW{ VWFVWvW VW}LVWo'VWCLVWCLVWCLVWCLVWCLVWIVWHOVWLVWs VWI VWy VWFݱVWR VWrVWEvVWzr VWVWWwVWy?}VWvt VWMFVWKRVWKWVWs8 VWvH VWa\VW^vfVW^VWCLVWCLVWCLVWCLVWCLVWOPVWOPVWOPVW CLVW#I]8VW$H2VW%I3vVW&HVW(zVW*z}eVWW}fVW|a ^ ^ MVWD|M NVWFDpOVWGFPZ?ETQZ?SRZ?Q/SZ? @TZ? GVZ? k XZ? ElDYZ?Ea[Z?VE\Z?Y^Z?cA_Z?C`Z?B6aZ?vbZ?wGcZ?tZ?CLZ?CLZ?CLgZ?"m Z?$CLZ?%CLZ?'CLZ?(CLmZ?+F4nZ?.}`oZ?/dJ Z?1CLZ?2CLZ?3CLZ?5CLZ?6CLZ?7CLZ?8CLwZ?;BzxZ?dI\yZ?eOZ?gOP{Z?jm |Z?l[I}Z?moF~Z?o]Z?rAZ?sG"Z?w~24 ~Z?yOPZ?|U |Z?~CLZ?CZ?G߉Z?DZ?PxuZ?CLtZ?CLZ?rP Z?v Z?m~ 5Z?GC6Z?EMfZ?CLZ?CL:Z?Fs;Z?MZ?#T?Z?$G\z@Z?%FT$AZ?&WoZ?'OPDZ?(E1EZ?)FFZ?*FnGZ?+PZ?.@c3Z?/DZ?YZ?ZamP Z?]]@Z?^AmZ?_AZ?`x Z?axH Z?bvv !Z?fCL Z?gCLZ?hCLZ?j`x Z?mCLZ?ovv Z?p~s Z?qEZ?su Z?u0Z?voZ?xCLZ?yCLZ?zCLZ?{CLZ?}CLZ?IyZ?GZ?OZKZ?sc Z?H Z?x Z?FZ?K( Z?pZ?EۈZ?zF^ Z?Z?W@Z?y?}Z?v Z?M2Z?KրZ?JZ?s)~ Z?v Z?a3Z?^yZ?^ Z?CLZ?CLZ?CLZ?CLZ?CLZ?OPZ?OPZ?OPZ?CLZ?IMZ?H9Z?I1Z?GVZ?zffZ?zff}eZ?un}fZ?| ^ ^ MZ?.~ NZ?0DuOZ?1GkPZ?2E:QZ?5SRZ?6QO'SZ?8@TZ?9GVZ?:k XZ?\Z??]=(^Z?Cd/_Z?DC`Z?FC1AaZ?Gv34bZ?HwfgcZ?IvZ?KCLZ?LCLZ?NCLgZ?QmM Z?SCLZ?TCLZ?UCLZ?VCLmZ?YGfnZ?~oZ?dN Z?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?CLwZ?CxZ?IyZ?N>Z?OP{Z?m |Z?\95}Z?m+~Z?]Z?BZ?G91Z?| ~Z?OPZ?Xb |Z?CLZ?Ck7Z?HZ?DZ?G6uZ?CLtZ?CLZ?rl Z?v5@ Z?m" 5Z?G?6Z?ELZ?CLZ?CL:Z?GC;Z?JhOPZ??CL3Z?BqO4Z?DA36Z?Gh7Z?He@8Z?Id 9Z?Keo0:Z?M`;Z?N_YZ?yT&?Z?zGo@Z?{FcAZ?|WZ?}OPDZ?~EEZ?F-FZ?F}GZ?POZ?BC3Z?FZ?AZ?ar Z?bZ?AZ?AZ?x# Z?x# Z?vK !Z?CL Z?CLZ?CLZ?a Z?CLZ?u Z?|j Z?G'Z?u6 Z?Z?oZ?CLZ?CLZ?CLZ?CLZ?CLZ?I0Z?GZ?M 1Z?s8 Z?I Z?y#; Z?GZ?Pf Z?oZ?E<Z?zF^ Z?@wZ?XKZ?y;dZ?vR Z?MUkZ?TtZ?K[Z?s Z?t Z?a Z?^yZ?^ Z?CLZ?CLZ?CLZ?CLZ?CLZ? OPZ? OPZ? OPZ?CLZ?I@+Z?H?lZ?I2Z?GZ?BgZ?Eg}eZ?a}fZ?|> ^ ^ MZ?_ NZ?aDy:OZ?cG2PZ?dEQZ?gSw;RZ?hQ$^SZ?i@.TZ?jGDVZ?kk֤ XZ?nE=YZ?oE$[Z?p#\Z?qYl^Z?te_Z?uC`Z?wDaZ?ywubZ?zzHcZ?{w >Z?CLZ?CLZ?CLgZ?m Z?CLZ?CLZ?CLZ?CLmZ?HnZ?}4oZ?dJ Z?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?CLwZ?A4xZ?JyZ?NzZ?OP{Z?m |Z?\d}Z?kK~Z?]Z?CZ?GLZ?}X ~Z?OPZ?Y{ |Z?CLZ? CgZ? HZ? EZ?NݪuZ?CLtZ?CLZ?r Z?w% Z?la 5Z?GB6Z?EF+Z?CLZ?CL:Z?G );Z? GyOPZ?@CLYZ?BEZZ?Cy1 Z?mOPZ?nCL]Z?ps ^Z?qAlZ?sOPZ?uCLaZ?wA$ZZ?yOPZ?{CLdZ?}EZ?OPfZ?^Z?CLhZ?BiZ?VߑZ?OPkZ?K lZ?CmZ?w\)nZ?h oZ?\VqpZ?U qZ?O rZ?S sZ?K <tZ?K uZ?AZ?OPZ?CLxZ?} yZ?JzZ?JZ?OPZ?CL}Z?KF~Z?FHZ?F2Z?EZ?OP~Z?CLZ?BZ?HVFZ?DZ?FZ?JZ?GxZ?EZ?HZ?KcZ?@Z?x-Z?EVZ?OlZ?IZ?K4Z?r Z?IZ?EVZ?S'Z?u9Z?MY?Z?MZ?o^ Z?J3Z?FjZ?CLZ?EDZ?AGuZ?OPZ?CLZ?CLZ?CLZ? CLZ? CLZ? CLZ?4CLZ?7NgZ?8LZ?:YgZ?;G Z?<_ > Z?=_ > Z??CLZ?@CLZ?ACLZ?BCLZ?CCLZ?DCLZ?FCLZ?G]Z?HCLZ?ICLZ?JCLZ?LNZ?MCLZ?PD1Z?RCLZ?SCLZ?UDZ?XCLZ?YCLZ?ZCLZ?\OP$Z?]H^%Z?^Ha&Z?aLZ?dCL*Z?gH0,Z?hgahZ?iOP.Z?jPe3Z?kCLZ?lCLZ?oOPZ?CL3Z?q4Z?A36Z?d347Z?_8Z?]9Z?e>6:Z?[3;Z?^gZ?Uu?Z?Gy@Z?FkAZ?XZ?OPDZ?EdEZ?FFZ?FRGZ?PhZ?BZ?F)Z?AgZ?a Z?`Z?AVAZ?AZ?x+ Z?wt Z?v- !Z?CL Z?CLZ?CLZ?`' Z?CLZ?t4 Z?{ Z?G4Z?ua Z?vZ?oIZ? CLZ? CLZ? CLZ? CLZ? CLZ? H,Z? H Z? HtZ? s Z? Hf Z? x Z? GQZ? Kn Z? nٚZ? EZ? z7 Z? ChZ? !Y Z? %y?}Z? &vh. Z? (NOZ? )nfZ? *LXZ? -r Z? 0qD Z? 1`Z? 3^pZ? 4^ Z? 5CLZ? 6CLZ? 7CLZ? `CLZ? bCLZ? eOPZ? fOPZ? gOPZ? iCLZ? mI3vZ? nHA<Z? oI,3Z? pG^Z? sh(Z? vh(}eZ?db:}fZ?|P0 ^ ^ MZ? @Z=NZ? DtOZ? GnPZ? EAQZ? Sw;RZ? Q SZ? o TZ? GVZ? k XZ? EֱYZ? E%[Z? ɯl\Z? ]Al^Z? c _Z? C`Z? DbaZ? w(bZ? y34cZ? vqZ? CLZ? CLZ? CLgZ? mۄ Z? CLZ? CLZ? CLZ? CLmZ? HNnZ? }goZ? d_ Z? CLZ? CLZ? CLZ? CLZ? CLZ? CLZ? CLwZ? AxZ? I)yZ? OZ? OP{Z? mwx |Z? ]K}Z? k~Z? )]Z? ,CfZ? -G-Z? 0z ~Z? 3OPZ? 4@nG|Z? 6CLZ? 9CsZ? :H Z? ;EAZ? ?GuZ? ACLtZ? BCLZ? Dr Z? EwT Z? Gl\ 5Z? IGF76Z? JECvZ? LCLZ? MCL:Z? OFm;Z? PK"GZ? a34 HZ? bzH LZ? cFQ MZ? e NZ? Cp OZ? BPZ? AQZ? EK{RZ? CTZ? EUZ? En=VZ? FZ? OPZ? CLYZ? EZZ? y@ Z? OPZ? CL]Z? tx ^Z? @}BZ? OPZ? CLaZ? @Z? OPZ? CLdZ? EVZ? OPfZ? ^Z? CLhZ? B\iZ? UuZ? OPkZ? Kp lZ? DmZ? y nZ? gT{ oZ? \0pZ? Y qZ? P rZ? T sZ? K tZ? KQuZ? A:Z? OPZ? CLxZ? ~# yZ? IrAzZ? J3Z? OPZ? CL}Z? KU~Z? FZ? FZ? EuZ? OP~Z? CLZ? CaZ? HdZ? DVZ? G&"Z? JZ? GxZ? EZZ? H/Z? KcZ? EZ? x-Z? EVZ? OZ? I2Z? K1CZ? r Z? IEZ? !EVZ? "Q Z? $u9Z? &MrZ? 'M Z? *o^ Z? +J3Z? TEʘZ? VCLZ? YEZ? ZAGuZ? [OPZ? ]CLZ? ^CLZ? _CLZ? aCLZ? bCLZ? cCLZ? dCLZ? gPgZ? hP@Z? iPgZ? jG Z? k_ > Z? m_ > Z? oCLZ? pCLZ? qCLZ? rCLZ? sCLZ? tCLZ? uCLZ? v]Z? xCLZ? yCLZ? zCLZ? {N+Z? }CLZ? D(Z? CLZ? CLZ? CZZ? CLZ? CLZ? CLZ? OP$Z? Hj%Z? H&Z? IZ? CL*Z? G,Z? gZ? OP.Z? PxZ? CLZ? CLZ? OPZ? CL3Z? q4Z? A36Z? `7Z? Pٚ8Z? ]s39Z? e:Z? \4;Z? _LZ? UFK?Z? Gj@Z? FiAZ? W)Z? OPDZ? E(EZ? FEFZ? FjGZ? PZ? @ Z? DZ? @ Z? aa Z? _pZ? A;Z? AZ? x:D Z? w Z? v4 !Z? CL Z? CLZ? CLZ? "`S Z? %CLZ? 'tz Z? (z$ Z? )GZ? *tY Z? ,A? Z? .oȋZ? 0CLZ? 1CLZ? 2CLZ? 3CLZ? 4CLZ? 8H'Z? 9HZ? :JZ? =r Z? @IUU Z? Bx Z? CGZ? DLU Z? Hr,Z? KEGZ? NzT Z? OE"Z? QZZ? Ty?}Z? UvY Z? WO/Z? | Z? KZ? r+ Z? tDD Z? `ٚZ? ^yZ? ^ Z? CLZ? CLZ? CLZ? CLZ? CLZ? OPZ? OPZ? OPZ? CLZ? I$Z? H>Z? I*cZ? GZ? zZ? z}eZ? ,Z}fZ? D|e, ^ ^ MZ? @pNZ? DnOZ? GdPZ? EQZ? S{ RZ? QSZ? o TZ? G*VZ? kr XZ? FDYZ? E0H[Z? \Z? W(^Z? b%_Z? C9`Z? CgaZ? xbZ? ycZ? w >Z? CLZ? CLZ? CLgZ? m Z? CLZ? CLZ? CLZ? CLmZ? GnZ? }oZ? d't Z? CLZ? CLZ? CLZ? CLZ? CLZ? CLZ? CLwZ? JA8RxZ? KM4yZ? LOBZ? MOP{Z? Pm |Z? R\}Z? Sl~Z? V]Z? YC/$Z? ZF~Z? ]nQ ~Z? _OPZ? `D|Z? cCLZ? fCZ? gHdZ? hFLZ? kKuZ? mCLtZ? oCLZ? qrZ Z? rvx Z? sl: 5Z? uGA6Z? wE6Z? xCLZ? zCL:Z? {F5;Z? }G& Z?_ > Z?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?]Z?CLZ?CLZ?CLZ?NZ?CLZ?D%Z?CLZ?CLZ?CμZ?CLZ?CLZ?CLZ?OP$Z?H%Z?H&Z?NRZ?CL*Z?Gܜ,Z?f@Z?OP.Z?PZ?CLZ?CLZ?OPZ?CL3Z?q4Z?A36Z?[f7Z?L8Z?`&f9Z?d:Z?\;Z?` Z?T?Z?GN@Z? FYAZ? VZ? OPDZ? D?EZ? F_FZ?FGZ?P}Z?BVfZ?bEx Z?AbkZ?BA Z?DAZ?ExH Z?Fw Z?Gu} !Z?JCL Z?KCLZ?LCLZ?Oa Z?RCLZ?Ttj. Z?Uz Z?VGBZ?Wu ~ Z?YHZ?Zp:Z?]CLZ?^CLZ?_CLZ?`CLZ?aCLZ?dH7Z?eH+zZ?fHsZ?jr Z?mI Z?ox Z?pFݱZ?qQ Z?ttZ?wExZ?z Z?EZ?[Z?y?}Z?vt}fZ? q|v ^ ^ MZ?@=6NZ?DnOZ?GtPZ?EgQZ?S{ RZ?QSZ?nT TZ?H VZ?k+ XZ?!FYZ?"E[Z?#\Z?$\^Z?'d_Z?(C9`Z?*BaZ?,vQbZ?-wfgcZ?.uZ?0CLZ?1CLZ?2CLgZ?5m Z?8CLZ?9CLZ?:CLZ?;CLmZ?>GHnZ?i|goZ?jd

6Z?E-Z?CLZ?CL:Z?F(;Z?MX Z?_ > Z?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?]Z?CLZ?CLZ?CLZ?NZ?CLZ?D(Z?CLZ?CLZ?E]Z?CLZ?CLZ? CLZ? OP$Z? H}%Z?H&Z?O"Z?CL*Z?G,Z?fZ?OP.Z?PZ?CLZ?CLZ?OPZ? CL3Z?#q4Z?%A36Z?(_ff7Z?)Og8Z?)]9Z?,df:Z?.YL;Z?/_fgZ?2T?Z?3G77@Z?\FMAZ?]VZ?^OPDZ?_DEZ?`FFZ?aFsGZ?bPZ?fBgZ?gFfZ?hAfZ?ibP Z?l](Z?m@OZ?nAZ?pxH Z?qwna Z?ru !Z?uCL Z?vCLZ?wCLZ?y^SI Z?|CLZ?t Z?{LS Z?GgZ?t4 Z?+Z?pZ?CLZ?CLZ?CLZ?CLZ?CLZ?HZ?H0Z?HȥZ?rn Z?H Z?x Z?F/Z?L@- Z?tZ?Eb Z?{LS Z?FZZ?[Z?y;dZ?v- Z?QVZ?B[Z?LZ?rn Z?s3 Z?`3Z?]3Z?^ Z?CLZ?CLZ?CLZ?CLZ?CLZ?OPZ?OPZ?OPZ?CLZ?IZ?HEZ?I'Z?GZ?yZ?y}eZ?\BO}fZ?|o ^ ^ MZ?== NZ??DqbOZ?@GrPZ?BE\QZ?ESsnRZ?FQSZ?Gn TZ?HH!VZ?Ik+ XZ?KEIYZ?ME"[Z?NT\Z?OVS^Z?Rd_Z?SC9`Z?UB XaZ?Vv\bZ?WwcZ?YwfgZ?[CLZ?\CLZ?]CLgZ?mW Z?CLZ?CLZ?CLZ?CLmZ?FWnZ?}4oZ?dQk Z?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?CLwZ?~xZ?HyZ?MHZ?OP{Z?m |Z?Z}Z?o~Z?]Z?BZ?FoLZ?}u% ~Z?OPZ?ZE |Z?CLZ?DEZ?GZ?EZ?HuZ?CLtZ?CLZ?r, Z?w$ Z?m~ 5Z?GC6Z?E-Z?CLZ?CL:Z?Fi;Z?Jە Z?_ > Z?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ?CLZ? ]Z?!CLZ?"CLZ?#CLZ?%NVZ?'CLZ?)D-4Z?+CLZ?,CLZ?.DSZ?1CLZ?2CLZ?3CLZ?5OP$Z?7Hyv%Z?7H&Z?:JSZ?=CL*Z?@G,Z?AffEZ?BOP.Z?CPZ?ECLZ?FCLZ?HOPZ?JCL3Z?Mq}=4Z?OA6Z?QXf7Z?RK8Z?S_ٚ9Z?~d:Z?\;Z?`ٙZ?U4O?Z?G#@Z?F?CAZ?VZ?OPDZ?DѫEZ?FmFZ?F`GZ?PEZ?Z?D\Z?@fZ?b+ Z?b^VZ?@hZ?AZ?xWc Z?wB Z?u !Z?CL Z?CLZ?CLZ?a Z?CLZ?tM Z?}h Z?GZ?t Z?A Z?qZ?CLZ?CLZ?CLZ?CLZ?CLZ?HZ?H-JZ?KHZ?rE Z?Hf Z?xe Z?ElZ?S Z?r&fZ?ENZ?{ Z?FOZ?\KZ?y;dZ?v- Z?RlZ?CZ?LyZ?r Z? yQ Z? `3Z? ^yZ? ^ Z?CLZ?CLZ?CLZ?CLZ?CLZ?OPZ?OPZ?OPZ?CLZ?FH`Z?GHJMZ?HI"7Z?IG%Z?KzZ?Lz}eZ?Y.}fZ?| ^ ^ MZ?g NZ?iDsOZ?jGqbPZ?lEuQZ?oSkRZ?pPtSZ?qn TZ?rG1VZ?slm XZ?uEYZ?wDG[Z?xc\Z?y]V^Z?|bh_Z?}CU`Z?AaZ?xbZ?{ǯcZ?z(Z?CLZ?CLZ?CLgZ?mw Z?CLZ?CLZ?CLZ?CLmZ?FYnZ?}C4oZ?d

E:RZ??CԉTZ?@DOUZ?AEFVZ?BG,Z?COPZ?ECLYZ?GEZZhx hOPhCL]h sc ^h {Z h OPhCLah~OI hOPhCLdhEhOPfh^hCLhhBEihMh!OPkh"K lh#B{mh$tnh%fT{ oh(\ph*XL qh+QQ rh,T sh-K th.Kuh/B3h0OPh2CLxh4~ yh5Lzh6Jāh8OPh;CL}heK(~hgF hhEhiEOhjOP~hlCLhnB hpHs<hqDXhsG&"htJhuGxhvEWhwHhxKchyEh{xYh|@ hOphHhK<-hoAhIŦhEVhP h_ > hCLhCLhCLhCLhCLhCLhCLh]hCLhCLhCLhNhCLhD-4hCLhCLhChCLhCLhCLhOP$hHk%hH$&hLehCL*hG,hfhOP.hPh,CLh-CLh0OPh2CL3h5q4h7A6h9k7h:Y8h;`9h>d:hBZS3;hC_34<hDZyhEOP>hFT^?hGF@hHF/AhIVhJOPDhKDhEhLF{.FhMFLGhNOhQChRHLhTChUbqy hX_KehY@6hZAh[xWc h\w h]uS[ !haCL hbCLhcCLhe^'U hCLhtM h hF5htY hC` hqahCLhCLhCLhCLhCLhHhH1hOvhr hHf hx:D hD̘hLL hplhE5h{/9 hFh]Why;dhvW hShCWZhLhrE hs&f ha3h^yh^ hCLhCLhCLhCLhCLhOPhOPhOPhCLhHh HEh I~h Glhjhj}ehYv}fZ?{ ^ ^ Mh)@Nh+DtOh,Gt<Ph-EQhXSoRhYPSh[nQ Th\G1Vh]l Xh_EĨYh`D٦[hao\hbY^hfd@_hgCU`hhA33ahjvbhkxzchlv#hnCLhoCLhqCLghtm- hvCLhwCLhxCLhyCLmh|Fznh}c4ohdQk hCLhCLhCLhCLhCLhCLhCLwh@\xhIyhNfhOP{hm |h[P}ho~h]hBzhGHh| ~hOPhW |hCLhChH hE2hFuhCLthCLhr hu hl 5hG>6hE"hCLhCL:hF5;hL<hCI?h~s hOPhCLBh@ChS[lDh{ EhQzFhWzGhBHhz Lh Hz Mh!g Nh"J Oh#BwPh$AQh%EZRh&CTh'D;Uh(EVh)G#=h*OPh,CLYh.EsZZh/xe h1OPh3CL]h5sc ^h6zr h8OPh:CLah<}; h>OPh@CLdhBElhDOPfhF^hGCLhhIB}ihJSC<hLOPkhMJi lhNDQmhOxRnhPh ohS\GVphUZ8R qhVS\ rhWUp shYK %thZKMuh[B LhOPhCLxh~' yhK\zhJāhOPhCL}hK~P~hF =hEhEEhOP~hCLhC hHs<hDXhGhJhGhEWhHhKch@hyzh@ hOlhI}hK<-hoAhI3hEVhLvhu9hMUhM/ho^ hJ3hEʘhCLhEvh@t:hOPhCLhCLhCLhCLhCLhCLhCLhNghK9hNghG h_ > h_ > hCLhCLhCLhCLhCLh CLh CLh ]h CLhCLhCLhNhCLhD/hCLhCLhElhCLhCLhCLh!OP$h"Hc%h#H$&hNPhPCL*hSG,hTf6hUOP.hVP9hXCLhYCLh\OPh^CL3h`qo4hbA6heWs37hfMٙ8hgY9hjd:hkb3;hlb<hmdhnOP>hoT*?hpF@hqF!OAhrV%LhsOPDhtDTEhuFedFhvF8,GhwOh{Bh|Gh}B h~b' hah@OhAhxe hvI hu' !hCL hCLhCLha hCLht[ hAAhhG0hu h`hqhCLhCLhCLhCLhCLhHxhH2hOxhrz hI] hx:D hDGhSn hnhEh{/9 hFh^79hy?}hv hThCކhL^\hr ht h`h^S3h ^ h!CLh#CLh$CLh%CLh&CLh)OPh+OPh,OPh.CLh1H@h2H@Th3I gh5Gܜh8g h;g }ehJN}fh{ ^ ^ MhzL Nh}DwOh~GPhEQhSoRhP]Shn ThGVhk XhEֱYhDp[hK\h^^he5_hCU`h@ahx\bh|QchxhCLhCLhCLghm hCLhCLhCLhCLmhFF nh~Lohdfg hCLhCLhCLhCLhCLhCLhCLwhAxhJyhMhOP{hmDD |h\j}hlhg~h]hAΌhFeh} ~hOPhY |hCLhCnhGhEhLuhCLthCLhq h uj h l: 5h G<@6h EhCLhCL:hFq;hHV<hDm?h~ hOPhACLBhC@ChDRX&DhE{k EhGQFhHW\)GhIU34HhJzN LhLG MhM@Q NhNP OhOBPhPAQhQE%RhRCuThSDveUhTD0VhUG)hVOPhXCLYhZEV[Zh[xH h]OPh_CL]hasrb ^hby@ hdOPhfCLahh} hjOPhlCLdhnEdhpOPfhr^hsCLhhuAihvXbhxOPkhyJǠ lhzG\)mh{Gnhi oh\ph[. qhV rhV shK <thKduhB hOPhCLxh~ yhJzhJhOPhCL}hKT~hEhEohEWhOP~hCLhC hHs<hDXhGQhJhGhEWhHhKchEhxhEVhO?hIhLhoAhIh EVh TWh u9hM6hMho^ hJ3hEshCLhEh@BhOPhCLhCLh CLh!CLh"CLh$CLh%CLh(Ngh)K&gh*Pgh+G h,_ > h-_ > h/CLh0CLh2CLh3CLh4CLh5CLh6CLh7]h8CLh9CLh;CLhCLhAD0hBCLhCCLhmDJhpCLhqCLhrCLhuOP$hvHTG%hwH&hyLah|CL*hGx ,hf|dhOP.hPhCLhCLhOPhCL3hq_m4hA6hXY7hPff8hbfg9hd~:hY&g;h]<hYhOP>hT?hF@hFAhVdhOPDhDFmEhFQkFhF#PGhOrhAٚhFhAphbjf hah@OhAhxt hv( hu ~ !hCL hCLhCLh^SI hCLhtU hB}hG;ht4 h`>hqhCLhCLhCLhCLhCLhHmhH8,hP=hrk hI; hx hChKn hp<h Eoh7{= h8E<h:_h=y;dh>v h@VhAC+hBL hFrz hIr hJ`PhK^yhL^ hMCLhNCLhPCLhQCLhRCLhUOPhVOPhXOPhZCLh]Hh^H?lh_I!Oh`G-hdghgg}ehkl"}fh{Ĝ ^ ^ Mh@~NhDnOhG PhETQhSkRhPSh}X ThGVhk֤ XhEYhDح[hc\hW^hav_hCU`hAahw4bhwchv#hCLhCLhCLghmn hCLhCLhCLhCLmhF@nh}4ohdQk h CLh CLh CLh CLh CLh CLh CLwh zxh I)yh M >h OP{h m |h [#}h l~h ]h Ah FDh ~; ~h OPh !~$f |h #CLh &Ch (H h )FBh ,Lyuh .CLth /CLh 2q h 3v h 4l 5h 6GI6h 7Eyh aCLh bCL:h dFݱ;h eM~<h fE#?h g O h iOPh kCLBh mAKCh nQ5Dh o{ Eh qIpFh rUGh sD(Hh tzE Lh uGG Mh v Nh xP Oh yB Ph zA Qh {EJRh |CfTh }DaUh ~DVh Gh OPh CLYh DZh x h OPh CL]h s T ^h xt h OPh CLah |& h OPh CLdh Elh OPfh ^h CLhh A/ih WQ%h OPkh Jr lh F{mh @nh if oh [hxph W\ qh Rp rh SH sh K <th K{uh B h OPh CLxh ~ yh Lzh Jh OPh CL}h K|~h E#h Eh E9[h OP~h CLh Bh Hs<h Dh GCh Jh Gxh Eh Hh Kch Eh x΄h EVh )Oyh +Ih ,Lh /oAh 1Ih 4EVh 5Rh 7u9h 8M-zh 9Mh EHh ACLh DEh EΞh FOPh HCLh ICLh JCLh KCLh LCLh MCLh OCLh RQ3h SG6gh TX4h UG h V_ > h W_ > h YCLh ZCLh [CLh ]CLh ^CLh _CLh `CLh a]h bCLh cCLh CLh Nh CLh D/h CLh CLh C6]h CLh CLh CLh OP$h H?l%h H?&h Hh CL*h GbK,h fh OP.h Q*h CLh CLh OPh CL3h qE*4h A6h a7h J@8h Y@9h dn:h ZS3;h _<h \h OP>h T ?h F@h FsAh V|Qh OPDh DEh F8Fh F_Gh Oh @)h Eh 4h bh h ^h @ٛh Ah xt h vt h tY !h CL h CLh CLh a< h CLh t h Bɀh G} h t4 h @B h qh CLh CLh CLh CLh CLh "H`Sh #H6[h $P Sh 'r]\ h +I. h Uw h VB8Ph WR h ZpPh ]Dh `{w h bE2h d_h gy;dh hv4 h jWfh kD_h lKh or]\ h s| h taLh u^yh v^h wCLh xCLh zCLh {CLh |CLh OPh OPh OPh CLh Hfh H=h Ih Gh gh g}eh W}fh 2{ ^ ^ Mh A3Nh Dt<Oh GPh EiQh SoRh PSh @C Th GVh k֤ Xh EzYh D[h K\h Zc^h c_h CU`h B[ah xbh z{ch yqh CLh CLh CLgh mN h CLh CLh CLh !CLmh $Fnh '}vgoh (d

kC~h @]h CB 7h DF?h Hr@3 ~h JOPh KC)|h MCLh PD h QGh SGUh VIҏuh CLth CLh q h tĜ h m 5h Gd6h E"h CLh CL:h G;h JE<h Ey?h 7 h OPh CLBh ACh P*Dh {f Eh LFh UGh KHh z5 Lh H Mh AG Nh RQ Oh BfPh AŖQh EK{Rh CTh DJUh DVh Hh OPh CLYh DnQZh xP h OPh CL]h r+ ^h wQ? h OPh CLah {= h OPh CLdh EsZh OPfh ^h CLhh Afih Vh OPkh J lh Jzmh CHnh h oh [%ph Y3 qh T rh T) sh Jith Kuh B h OPh CLxh ~ yh Q zh Jh OPh CL}h K~h E#h Evh E"'h OP~h CLh HBch KHh LDh MG`h NJh OGh PEh RH$h SKch TEh Vx!h W@ h ZOh \IJ(h ]K6h `oAh bIh eEVh fLvh hu9h jM"h kLkh no^ h oJ%gh pEh rCLh uE&h v} Zh wOPh yCLh zCLh {CLh }CLh ~CLh CLh CLh Qh K3h Ngh G h _ > h _ > h CLh CLh CLh CLh CLh CLh CLh ]h CLh CLh CLh Nh CLh D(h CLh CLh C/h CLh CLh CLh OP$h H1%h HY&h Oh CL*h GP-,h g h OP.h Q#h CLh CLh OPh CL3h q>4hA6hZg7hQ8h^339hdga:h\`;h`f<h\lhOP>hTY?hF@h EMAh!Vkh"OPDh#DkEh$F!OFh%EGh&O_Yh*Bih+G6gh,A3h-b|z h1bXh2@h3AKh4x h5vv h6t !h9CL h:CLh]h hACLhCs hDChEG} hFtx hIhJqNhtCLhuCLhvCLhwCLhxCLh{HYh}H4h~O*hrN hI hwna hAt@hL" hn#3hDUh{ hElh`[hy;dhv4 hXNhD5hMhrN hoU hac3h]fh^ hCLhCLhCLhCLhCLhOPhOPhOPhCLhHhH@ThIhG5hhRhhR}ehIo}fh { ^ ^ MhANhDxOhGPhE Qh ShRh PSh @Th GVhk XhEYhD[h\h\J^h>d_h?CU`hBCxPahCv34bhDvchEuLhGCLhHCLhICLghLmC hOCLhPCLhQCLhRCLmhUGnhX~<ohYdx h\CLh]CLh^CLh_CLh`CLhaCLhbCLwheBkxhgJ(yhhOphiOP{hlm |hn[}holR<~hq]huBhvG#h} ~hOPh]! |hCLhD`1hGhGphQ8uhCLthCLhr( hvi hl 5hGH6hE/hCLhCL:hF;hG%<hFv?h7 hOPhCLBhAChO1Dh{ EhLFhWGhJHhzC LhI34 MhA NhS > OhBPhAhQhE h_ > hCLhCLhCLhCLhCLhCLhCLh]hCLhCLhCLhNhCLhD%hCLhCLhD;hCLhCLhCLhOP$hH+z%hH&hOhCL*hG=(,hfh0OP.h1Q2h3CLh4CLh7OPh8CL3h;qE4h=A6h@]7hAU348hBX49hDdXK:hFd;hG` <hHbhIOP>hJS7?hKFzF@hLEVAhMUhNOPDhOCEhPF FhQEUGhROhVShWY,hXQhYb h\[Җh^@h_Ah`x havY hbt !heCL hfCLhgCLhj`P hCLhs hD|hFyhtU hdhr%mhCLhCLhCLhCLhCLhHRhH8,hIHhr@3 hI] hw h@hR hrɚhDh{/ hEPha|hy;dhv4 hZbhDhMhr@3 hv ha3h^vfh^ hCLhCLhCLhCLhCLhOPhOPhOPh CLh Hh H>hIhGhr=qhr=q}eh]N}fh|%D ^ ^ Mh-A_aNh/Dy:Oh1GPh2E>Qh]S\Rh^PSh_@Th`GVhak XhdEYUYheD[hf&\hgWR}^hjd}_hkCU`hmDRYahovbhpvpchqu\hsCLhtCLhuCLghxm?% hzCLh|CLh}CLh~CLmhH=nh}4ohd't hCLhCLhCLhCLhCLhCLhCLwh{\*xhJW yhQfhOP{hm |h\4}hl<~h]hC/hGl_h}: ~hOPhVS |hCLhDyhGhG.hGZBuhCLthCLhro hw+ hl 5hG'6hE*)hCLhCL:hF;hMc<hG3'?hU hOPhCLBhAChMDh{, EhOFhVGGh$M(Hh%z Lh&Hz Mh'@ Nh)P( Oh1BPh2AҩQh3E\Rh4CWTh5D}Uh6DVh7HKh8OPh:CLYhUhLmhLh`w/ hJkhE5hCLhEjh} ZhOPhCLhCLhCLhCLhCLhCLhCLhMgh G6gh Ngh G h _ > h_ > hCLhCLhCLhCLhCLhCLhCLh]hCLhCLhCLhN hCLh!D-4h#CLh$CLh&DhPCLhQCLhRCLhUOP$hVH%hWHt&hZJoh]CL*h_G(T,h`_haOP.hbQ];hdCLheCLhhOPhjCL3hmp4hnA6hqby7hrV8hsSS49hvdEp:hx[S3;hyc <hz]s3h{OP>h|TK?h}F_@h~EAhVthhOPDhCSEhEFhEGhNDhQ0hWhO4hc hbh@4h@hx hv- htx !hCL hCLhCLh]! hCLhs hEhGhtz h@ hrAhCLhCLhCLhCLhCLhHHhH2hM/hr1 hJ hw h@hL@- hqYhDh{/ hEihb; hy;dhv4 h![th"Dh#L{Ch&r# h)x"" h*a@h+^yh,^ h.CLh/CLh0CLh1CLh2CLh6OPh7OPh8OPh:CLh=H:h>H<h@IhAGmhCwhDw}ehX }fh|g ^ ^ MhA3NhDwOhG3PhEQhSXRhPSho+ ThG1VhkU XhEYhE[hp\h]Al^hc8_hCU`hDahw >bhychuhCLhCLhCLghm7S hCLhCLhCLhCLmhH<nh}gohd't hCLhCLhCLhCLhCLhCLhCLwh|34xhHyhMhOP{hm |h\}hp~h]hC\hGIh}h ~hOPhY |hCLhDthGz'hG)h NRuh CLthCLhr huQ hl 5hG6hEhCLhCL:hFL;hEKY<hFG?hGFv hIOPhKCLBhMAChNLDhO{<} EhQOFhRXGhSDHhTy LhUI MhVB NhWS > OhXBPhYA׾QhZEBRh[CTh\CUh]D"Vh^H Ah_OPhaCLYhcCZhdxo hfOPhhCL]hjr@3 ^hks8 hmOPhoCLahqx hsOPhuCLdhwEGhyOPfh{^h|CLhh~AfihPIhOPkhJc lhJ\mhD nhi8R oh[phX= qhQ rhU shJthKxuhDhOPhCLxh~z yhSxzhJmhOPhCL}hK~hEnhE#QhDhOP~hCLhA+hHhDYhFhJhGhEWhHhK82hEhx՗hEVhOshI~hK)hoAhIhEVhPhv+)hL!hLh`w/ hJkhHhCLh!Eh"~h#OPh%CLh&CLh'CLh)CLh*CLh+CLh,CLh/Pph0G6gh1Pgh2G h3_ > h4_ > h7CLh8CLh9CLh:CLh;CLh]h@CLhACLhBCLhCNHhECLPD3PCLPCLPC~P CLP CLP CLPOP$PH%PHH&PL%PCL*PGh,P_POP.PQvvPCLPCLP"OPP$CL3P&p4P(A6P+]&f7P,\y8P-X9P0d6[:P3Z4;P4_Y<P5[@P6OP>P7S?P8FJ(@P9E~AP:VeNP;OPDPdCEPeEDFPfEGPgOPkUFgPl[3PmR3Pnc Pr`Ps@NPt@Pux0 Pvv4 Pwt[ !PzCL P{CLP}CLP` PCLPsrb PE@PFyPtU PS7PrRPCLPCLPCLPCLPCLPH?PH8,PPoLPr1 PHU Pw| Pr PR PoPD7P{ PEBPcPy;dPv4 P]PDJBPL;Prs Pu33 Pa#3P^pP^PCLPCLPCLPCLPCLPOPPOPPOPPCLPHPH;PIPGPhPh}ePi~}fh|z( ^ ^ MPBANPEDrOPFGrPPGE2QPJSQ(RPKPy:SPLo TPMGVPOkU XPPD|YPRE[PSL\PTYY^PWc7_PXCU`P[C7aP\wbP]w{cP^tP`CLPaCLPbCLgPem8 PCLPCLPCLPCLmPGnP}fgoPd

GPHzHPy LPI34 MPB NPS OPBPPAQP E@RP!C>TP"CUP#DWVP$HvP%OPP'CLYP)C:ZP*x P,OPP.CL]PXq ^PYq P[OPP]CLaP_vܹ PaOPPcCLdPeEOPgOPfPi^PjCLhPlA"iPmN6PoOPkPpJUF lPqJ(mPrDpnPsj oPv\?pPxX qPyQq rPzU\ sP{JtP|KuP}FlP~OPPCLxP~' yPPzPJfPOPPCL}PK(~PElPETPDPOP~PCLP@PH/PDYPG4PJPGPEWPHPK82P@PxyPEVPOPIPK)PoAPI=PEVPLvPvPLPLP` PJkPJԭPCLPEP{ePOPPCLPCLPCLPCLPCLPCLPCLPQPNC3PNgP G P!_ > P"_ > P$CLP%CLP&CLP(CLP)CLP*CLP+CLP,]P-CLP.CLP/CLP1N P3CLP5D1P7CLP8CLP:E]P=CLP>CLP?CLPBOP$PCH %PDH&PFQPICL*PLG,PM^mPNOP.POQcPQCLPRCLPTOPPVCL3PYpd4P[A6P]37PX38PU9Pd=:Pb ;P`<Pd&fPOP>PSDP?PF2@PEAAPUPOPDPCEPEFPEGPNPQ0PWLPOlPcD P_P@hP@=Px0 Pu Pt/ !PCL PCLPCLP^ PCLPsrb PD_PGXPtx P@ PrPCLPCLPCLPCLPCLPH;%PH9PN*Pr# PI Pw P~; PL" PqffPD3P{ PE9PcP y;dP v4 P _?PDPLlPqJ Pw PaPP^vfP^PCLPCLPCLPCLPCLP"OPP#OPPLOPPOCLPRHo{PSH;PTIPUG\PXzPYz}ePY}fP|0 ^ ^ MPpAeNPrDoOPsG­PPuE|QPxSIRPyPSPzo TP{GVP|k XP}DsYPE$[Pp\P[G^Pdȉ_PCU`PBmaPvbPvcPs*PCLPCLPCLgPm?% PCLPCLPCLPCLmPGJnP}|oPd

xPIpyPNfPOP{Pm |P\}Pn=~P]PBJPFP ~POPPXTF |PCLPD_JPGKPGP KRuP"CLtP#CLP%r`B P'wu P(mH 5P*G6P+D&P-CLP.CL:P0G;;P1JS<P2K?P37 P5OPP7CLBP9@=CP:PDP;{f EP=LFP>UGP?H\)HP@yE LPA[ MPBUp NPCe > OPKBDPPLAQPME:RPNCTPOCʱUPxDjVPzGP{OPP}CLYP~C>ZPx0 POPPCL]Pqˈ ^Pph POPPCLaPv4 POPPCLdPE@POPfP^PCLhPAiPLPOPkPJ) lPImPCnPjp oP\CpPW\ qPO{ rPS sPJ}tPK^uPIkPOPPCLxP~Ü yPLIzPJIPOPPCL}PKt2~PETgPDPDPPOP~PCLP@PH/PDYPGPJPGPEPHPK82PEPxlPEVPOlPI}PK3PoAPIP@ PQf P v gP LP LP `w/ PJkPQPCLPErtP~;RPOPPACLPBCLPCCLPDCLPECLPFCLPGCLPJO4PKG6gPMNgPNG PO_ > PP_ > PRCLPSCLPTCLPUCLPVCLPXCLPYCLPZ]P[CLP\CLP]CLP_N P`CLPcD0PeCLPfCLPhDuPkCLPlCLPmCLPoOP$PpH %PqHc&PtKOPwCL*PzF,P{^ POP.PQnPCLPCLPOPPCL3Ppye4PA6P]7PQ8POY9Pd2:PZ;P_Y<P[POP>PSNe?PF g@PEAPUPOPDPCEPEFPEGPNPP3PVPO33Pdצ Pbv$P@NP@Px PuZ Pt !PCL PCLPCLP`b PCLP t' P C P GQPtj. PA! PqPCLPCLPCLPCLPCLPH6PH7DPK.P r# P#H P&w P'~ P(Q"j P+r#3P.DoHP1| z P2E2P4dvP8y;dP9v4 P;`PRPP/SPo TPGVPk= XPDjYPE[Pְ\PY}^Pf3>_PCU`PAaPx\*bPx=qcPvBPCLPCLPCLgPmd PCLPCLPCLPCLmPG|nP~9oPc| PCLPCLPCLPCLPCLPCLPCLwP|{xPG4yPN POP{Pl |P [ǂ}P4pO~P6]P9BP:F*P=K ~P@OPPCZTj |PECLPHDmPIG@5PJG]PNN0uPPCLtPQCLPSr+ PTw PVl 5PXG76PYDɁP[CLP\CL:P^G;P_K<P`O?Pa7 PcOPPeCLBPg@CPhUDPi{, EPkL\FPlUpGPmDffHPny! LPo[34 MPTR NPdQ OPB\PPAQPERRPCTPCUPDZ_VPH'7POPPCLYPCZPxP POPPCL]Pq ^PpY POPPCLaPua POPPCLdPEZPOPfP^PCLhPAZiPXPOPkPJ? lPIzmPBnPi oP[ݗpPV qPO rPR sPJtPKuPKbPOPPCLxP~' yP R-zP JBUP OPP CL}P Kc~P E:.P D1P D/P OP~P CLP @QP H/P DP G&"P JP GP EP HP K82P EP xoP !EVP "OP $HP %K8P (oAP +IP ,@ P /RP 1uP 2LP 3LP 4` P 5JkP 6Xu&P `CLP cEuP d{PP fOPP hCLP iCLP jCLP kCLP lCLP mCLP nCLP qP@P rFP tNgP uG P v_ > P w_ > P yCLP zCLP {CLP |CLP }CLP ~CLP CLP ]P CLP CLP CLP NVP CLP D/P CLP CLP CpP CLP CLP CLP OP$P H%P Hc&P JƫP CL*P F,P _0}P OP.P QpP CLP CLP OPP CL3P pWN4P A6P ff7P RFf8P S9P d.:P ]fg;P a<P ^P OP>P S?P F o@P E:AP V;P OPDP CEP EFP E~_GP NP R3P YgP QVfP e P ]3P @P @۶P x P u6 P s !P (CL P )CLP *CLP ,^a P /CLP 1srb P 3@P 4FsP 5t/ P 7>P 8qP :CLP ;CLP CLP ?CLP BH.tP CH8,P DHHP Grs P JI7w P LwQ? P N|& P OL P RsP UDZvP X{a P YEiP [ejMP ^y;dP `v P bb,P cDMP MLP q P w P `P ^vfP ^ P CLP CLP CLP CLP CLP OPP OPP OPP CLP HS_P H9P I WP GeP yP y}eP 7S}fPS| ^ ^ MP s NP DhOP GPP E`QP S6RP PQSP n TP G*VP k XP DhYP Db[P \P \i^P b|_P C9`P AhaP vbP vcP uP CLP CLP CLgP mJ P CLP CLP CLP CLmP FŤnP ~FgoP cӅ P CLP CLP !CLP "CLP #CLP %CLP &CLwP ){xP *IyP +P >P TOP{P WmUU |P Y[m}P [lc~P ]]P `BgP aG*P dw ~P fOPP h}z |P jCLP mDi<P nG,P oG[P rHuP uCLtP vCLP xqT P yvM P zl1 5P }G76P ~D{P CLP CL:P G} ;P H<P P2?P 7 P OPP CLBP @CP T;DP {%, EP W\)FP Y(GP LHP yd LP \( MP U NP f OP B~PP A&QP EHRP CfTP C5UP DF|VP H3P OPP CLYP CpiZP x P OPP CL]P qˈ ^P of P OPP CLaP t P OPP CLdP E P OPfP ^P CLhP AiP W:P OPkP Jst lP K mP E\)nP j oP \)!pP [Ǯ qP P rP V33 sP J8tP KuP LP OPP "CLxP $c yP %RzP &J;P (OPP *CL}P ,Kc~P .E'2P /DP 0DP 1OP~P 3CLP 5@XP 8H/P 9DP :GP ;JP EP ?H$P @K82P AEP CxP FEVP GO/P IIedP JK3P MoAP OIP REVP TLvP VutP WLP LP ` P JkP ^P CLP EP }P OPP CLP CLP CLP CLP CLP CLP CLP PgP NəP PgP G P _ > P _ > P CLP CLP CLP CLP CLP CLP CLP ]P CLP CLP CLP N P CLP D.P CLP CLP EP CLP CLP CLP OP$P G%P H&P R+.P CL*P F ,P _pP OP.P Q(P CLP CLP OPP CL3P pN4P A6P T`7P J38P Py9P d'F:P Zf;P _ <P ZP OP>P Sp?P E@P EAP UP OPDP ClEP EFP EjrGP N9P Q&fP WC3P Oc3P e& P bMP @P @rP xP P Hup P Isl !P MCL P NCLP OCLP Q_ P TCLP VsF P W@`2P YGgRP ZtM P [z4DP ]qP _CLP `CLP aCLP bCLP dCLP gH%cP hH1P iJāP lrs P oI P qvR P r|5! P tO P wrC3P zDFP }|& P ~D5P fd!P y;dP v P cP DP MP q P n P a)P YP ^ P CLP CLP CLP CLP CLP OPP OPP OPP CLP HCP H5sP IP GP zP z}eP [W'}fP x{] ^ ^ MPtq NPDmOPGPPEvQPSERPPy:SPnB TPGVPkH XPDmYP!D[P" \P#Xt^P'bX_P(CU`P)A)waP+vqbP,xcP-t4P/CLP0CLP2CLgP5l P7CLP8CLP9CLP:CLmP=F{nnPA~4oPBc PDCLPECLPFCLPGCLPHCLPICLPKCLwPv|xPwHfyPxOpPyOP{P|mfg |P~\I}Pl2~P]PB(PFPrk ~POPPC|PCLPD.PG0FPGVPQmuPCLtPCLPqv Pt PkT 5PGO6PDPCLPCL:PG`;PJ;4<P ?P)b POPPCLBP@.CPSTDP{4 EPTFPZGP[QHPy LP[34 MPU34 NPd OPBzaPPAQPEV[RPCTPCUPD2VPGPOPPCLYPCμZPx+ POPPCL]Pq^ ^PoI POPPCLaPtj. POPP CLdP EP OPfP^PCLhPA"iPV P=OPkP>J lP?JffmP@DnPAjff oPD[{\pPFUǮ qPGNk rPHQu sPIJtPJK*uPKNYPLOPPNCLxPP@yPRNbSzPSJfPUOPPWCL}PZK~P[EP\DP]DP^OP~P`CLPb@}BPdH/PfDZPgGPhJPiGxPjEVPkH$PlK82PmEPoxPrEVPtOPvIMPwK8PoAPIP@ PLvPu?PLPLP`Q PJkP_)PCLPEnP~^POPPCLPCLPCLPCLPCLPCLPCLPNgPKPNgPG P_ > P_ > PCLPCLPCLPCLPCLPCLPCLP]PCLPCLPCLPN! PCLPD0PCLPCLPDP CLP CLP CLPOP$PG5%PH7&PL]PCL*PFv,P_POP.PQPCLP CLP"OPP$CL3P'p+G4P)A6P,TL7P-K`8P.O 9P0d:P2`3;P3`<P4aP5OP>P6R?P7E@P8EsAP9UzP:OPDP;CEPNePjTfPk[3PlRPmeĪ Pp_FPq@nPr@PtxP PuuS[ Pvs !PyCL PzCLP{CLP}_LK PCLPr P@RPFPt/ PBOv PrPCLPCLPCLPCLPCLPHPH6[PKiPr PI Pvu=< NP@DpOPAGLPPCEzQPFSARPGP`ESPHn4a TPIG^VPJkH XPKDxYPNDZ[PO \PP\T^PSd[_PTCU`PU@aPWv#bPYxLcPZv34P\CLP]CLP^CLgPam?% PcCLPdCLPfCLPgCLmPjFCUnP}oPc PCLPCLPCLPCLPCLPCLPCLwP~zxPJyPOPOP{Pm |P\}Pl~P]PAPF`&P|j ~POPPy |PCLPDPG1PGj8PFuPCLtPCLPqaH Ptw Pl 5PG76PDPCLPCL:PG&";PK<PBRZ?P~ POPPCLBP@۶CPRMDP{<} EPMGFP\ >GP NHP yŵ LP [ MP XQ NP d OPBx3PPAFQPE?RPCTPCsUPD% VPGePOPPCLYPCZPx# POPPCL]P!qJ ^P"of P$OPP&CLaP(tx P*OPP+CLdP-EZP/OPfP1^P3CLhP]A"iP^U;7P`OPkPaJT lPbD\mPc@=qnPdfH oPg[|pPiY qPjQf rPkV{ sPlJ tPmKx;uPnOVPoOPPqCLxPs@yPtKxvzPvJtPxOPPzCL}P|Kp~P~EPDPDPOP~PCLP@PHPDZPFPJPGxPEVPH$PK82PEPz BPEVPPvPI gPK=PoAPI~PEVPS_PuNPLsPLP`w/ PJkPblPCLPEaP} ZPOPPCLPCLPCLPCLPCLPCLPCLPOfPG6gPNgPG P_ > P_ > PCLPCLPCLPCLPCLPCLPCLP]PCLPCLPCLPNP$CLP&D0P(CLP)CLP+CP.CLP/CLP0CLP3OP$P4Ge%P5H &P7HP:CL*P=F*,P>_P?OP.P@QPBCLPCCLPEOPPGCL3PJpF4PLA6POW7PPP,8PQO339PSc:PU\;PV`g<PW[gPXOP>PYS ?PZEt@P[EdAP\UP]OPDP^CEP_EcFPEIGPNoPQ3PW&gPO)Pe/ Pa(P@nP@Px Pu' Ps !PCL PCLPCLP_= PCLPr PU PGJPtx P~bPrEPCLPCLPCLPCLPCLPHPH9PHPr PI PvY P{Z PO\ PsfPD%P|C PD-}PhPy;dPv4 PfPCM+PMPq3 Pn3 PaVfP ZP ^ P CLP CLP CLPCLPCLPOPPOPPOPPCLPH+zPH9PIPG P xffP"xff}eP~}fP{n` ^ ^ MPat( NPcDmOPdGPPfEyQPiSERPjPgfSPknQ TPlGVPmkVI XPnEYPpD~&[Pr7(\PsW[^Pvf=g_PwCU`Px@eaPzvQbP{wucP}u\*PCLPCLPCLgPm4 PCLPCLPCLPCLmPF$nP}oPcӅ PCLPCLPCLPCLPCLPCLPCLwPC)xPI{yPNPOP{Pm33 |P\}Pms!~P]PAPF8P~ ~POPP`63 |PCLPDkPG@5PG PLuPCLtPCLPqp Pt Plƨ 5PG6PDPCLPCL:P!G`;P"H<P#D@O?P$ O P&OPP(CLBP*@=CP+Q5DP,{%, EP.MFP/[GP0QHP1y LP2l=q MP3f NP4s OP5B~PP6A_QP7EG!RP8CHTP:CcUP;DVP P_ > PCLPCLPCLPCLPCLPDCLPFCLPG]PHCLPICLPJCLPLN PMCLPPD0PRCLPSCLPUCPXCLPYCLPZCLP\OP$P]G%P^H&PaOuPdCL*PgF,PhfPiOP.PjQuPkCLPlCLPoOPPqCL3Ptpߥ4PvA6Px[337PyT38PzR339P}c:P[Fg;P^g<P\ POP>PS?PE@PEVAPV)POPDPC^EPEZFPE>GPNPS\PYPQPe_ Pa.P@P@bPx Pu ~ Psrb !PCL PCLPCLP^ PCLPs T P}~ PG )Ptx PՔ9Pq PCLPCLPCLPCLPCLPHPH@TPKWGP r PHU Pvh. Pzu PN} PoPDP| z PC0P!iP%y;dP&v P(h= P)B[P*MP-q P0q. P1a#3P3ZfP4^P5CLP6CLP7CLP8CLP:CLP=OPP>OPP?OPPACLPEH"iPFH:PGI8G>8h8 h}ePO8}fP{y ^ ^ M8"s N8$DeBO8&GP8'EgQ8*SMYR8+P}S8, T8-GV8.jt X81EY82D[83)\84\9^87e?>_88CU`89AZ#a8dw{b8ey*c8fw8R8hCL8iCL8jCLg8mm 8oCL8qCL8rCL8sCLm8vFmn8y}ٚo8zc 8|CL8~CL8CL8CL8CL8CL8CLw8BLx8Hky8S8OP{8l |8\}8n~8]8A8F8~ ~8OP8X[ |8CL8D8GH8Fm8L&xu8CLt8CL8qj 8u 8l 58G68D08CL8CL:8Gg;8J-A<8DH?8~; 8OP8CLB8AC8P xD8{ E8R{F8XG8NRH8z L8a M8[ N8j\ O8BqP8AQ8E;R8CT8CQU8DRV8HJ8OP8CLY8CZ8wt 8-OP8/CL]81rk ^82p 84OP86CLa88u 8:OP8E*8@OPf8B^8CCLh8EAi8FQ8HOPk8IJ8 l8JB{m8K|Hn8Lj o8O[ p8QY q8RS r8STz s8TJ t8UKMwu8VQ8WOP8YCLx8[Ay8]Q8z8^Jm8`OP8bCL}8eKH~8fDp8gD8DV8OP~8CL8A8H8E 8G`8J8G8E8H8K828E8x8EV8P 8I8K/q8oA8I}8EV8Lv8uO8Ld8L8o^ 8J38fe8CL8Ev8ǒ8OP8CL8CL8CL8CL8CL8CL8CL8RY8F8P8G 8_ > 8_ > 8CL8CL8CL8CL8CL8CL8CL8]8 CL8 CL8 CL8 N d8CL8D08CL8CL8D8CL8CL8CL8OP$8G۵%8 H&8"O*8%CL*8(F,8)_d8*OP.8+Q8-CL8.CL8XOP8ZCL38]p48_A68bVٚ78cP@88dQ98fc:8jYy;8k[<8lYg8mOP>8nR?8oE@8pEFA8qUL 8rOPD8sCu}E8tEMF8uE+ G8vN8yR8{Yp8|Q 8}es 8]8@h8@8xo 8tY 8sc !8CL 8CL8CL8^ 8CL8s8 8| 8GC8tx 88q8CL8CL8CL8CL8CL8H8HB$8L(8r 8Hj 8v 8-_ > 8/CL80CL81CL82CL83CL84CL86CL87]88CL89CL8:CL8;N 8=CL8@D4q8BCL8CCL8ED8HCL8ICL8JCL8LOP$8MG%8NH&8yJ8|CL*8~F4,8_Qm8OP.8Q8CL8CL8OP8CL38p.48A68U378T388Q98c :8Y;8\<8[ 8OP>8SU?8E@8E9A8U,8OPD8CuE8E?lF8EG8NZ8R38W8Pf8fn 8b8@h8@8x 8t4 8sF !8CL 8CL8CL8_i 8CL8s)~ 8)b 8GJ8t 8m8r$8CL8CL8CL8CL8CL8Gg8HC 8J?p8qJ 8I; 8v4 8zcz 8PcI 8rP8 C8{ 8Br8j8y;d8v 8@k8AA8BN d8EqHF 8Hnw 8I`8KZf8L^ 8MCL8NCL8OCL8PCL8RCL8UOP8VOP8WOP8YCL8]G8^H:8_I8`G8ci(8fi(}e8YE}f8{@ ^ ^ M8s N8D`DO8H4P8ET.Q8SMYR8PNqS8@T8GkV8jh X8EY8Dm[8Sq\8Z.^8d3:_8Cr`8Ca8vQb8vc8t8R8CL8CL8CLg8m) 8CL8CL8CL8CLm8G=n8~o8c 8CL8CL8CL8CL8CL8CL8CLw8 ~x8 Iy8 O#8 OP{8lfg |8\44}8n~8]8B8G918~Ü ~8 OP8#ne |8%CL8(D8)G78*F8.P."u80CLt81CL83q9X 84u9X 86k 588G689D8;CL8G;8?GJ<8@E?8A7 8COP8mCLB8oAC8pMD8q{DA E8sRQF8tXG8uRpH8vyv L8we M8x_G N8yn( O8zBuKP8{AiQ8|EHR8}C޲T8~C.xU8CV8I%H8OP8CLY8C'Z8x# 8OP8CL]8r+ ^8qˈ 8OP8CLa8vY 8OP8CLd8E8OPf8^8CLh8A i8M68OPk8J l8Am8{n8ik o8[p8W q8P\ r8Sp s8Jdt8K()u8SJ8OP8CLx8B\y8MBz8Jā8OP8CL}8K5~8D8Dfe8D8OP~8CL8By8H8EZ8F/8J8Go8FR8Hؒ8Kc8E8x8EV8O8I~8K-8oA8 Iy^86EV87QCl89u8:L8;LA8>o^ 8?J%g8Ag8CCL8FE8GΞ8HOP8JCL8LCL8MCL8NCL8OCL8PCL8QCL8TMff8UG6g8VX 8XG 8Y_ > 8Z_ > 8\CL8]CL8^CL8_CL8`CL8aCL8bCL8d]8eCL8fCL8gCL8hNV8jCL8mD38oCL8CL8Ca8CL8CL8CL8OP$8G-%8H/&8L8CL*8F2,8g8OP.8Q08CL8CL8OP8CL38p@48A68T&f78Tf88Q`98c[:8Zf;8\<8Ys38OP>8S?8E@8E0A8Uv8OPD8CE8E6[F8EG8NH8S8Y8Q38fj 8 ^:C8 @h8 @R8 x 8 t 8 s)~ !8 CL 8 CL8 CL8 ^D 8 CL8 s T 8 | 8 F8 tz 8 D8 rE8 CL8 CL8 CL8 CL8 "CL8 %G8 &HK68 'K/8 *r 8 -IUU 8 /v 8 0z)B 8 2Mu. 8 5q6f8 `C<8 c| 8 dAi8 fl*8 iy;d8 kv 8 mmEC8 nA8 oM8 rq9 8 up 8 v`8 wZf8 y^ 8 zCL8 {CL8 |CL8 }CL8 CL8 OP8 OP8 OP8 CL8 G=8 H98 I\8 G 8 ip8 ip}e8 ZE}f83{S ^ ^ M8 s" N8 DmO8 H6P8 E>nQ8 SMYR8 PS8 @uT8 GV V8 j X8 EY8 D_[8 EM\8 XL^8 d&_8 C`8 D{;a8 y34b8 xc8 v8 CL8 CL8 CLg8 m[ 8 CL8 CL8 CL8 CLm8 HZn8 *}o8 +c 8 -CL8 .CL8 /CL8 0CL8 1CL8 3CL8 4CLw8 7A{x8 8Iy8 9N8 :OP{8 =lfg |8 ?\s}8 Aoɨ~8 C]8 FCI8 GG(8 Jqt ~8 LOP8 PsR |8 RCL8 UD 8 VG'8 WG'8 ZG,u8 ]CLt8 ^CL8 `qN 8 au{ 8 bkP 58 Ge68 Dk8 CL8 CL:8 G;8 M'<8 FBE?8  8 OP8 CLB8 AC8 LD8 {<} E8 OF8 XG8 H=qH8 y L8 ^ M8 W N8 gp O8 BsP8 AlQ8 EBR8 CT8 C U8 CV8 HA8 OP8 CLY8 C Z8 x+ 8 OP8 CL]8 s T ^8 q^ 8 OP8 CLa8 v4 8 OP8 CLd8 D̘8 OPf8 ^8 CLh8 Aei8 Te8 OPk8 J l8 Dm8 @n8 j o8 [ݗp8 V q8 Off r8 RQ s8 Jɓt8 Ku8 S]8 OP8 CLx8 By8 SNz8 JF8 OP8 CL}8 Kl>~8 Dz8 D`8 D8 OP~8 CL8 Bn8 H$8 !EZ8 "G )8 #J8 $G8 &ET8 'H8 (K828 )E8 +x8 VEV8 WO?8 YI=8 ZK()8 ]oA8 _I{.8 bEV8 cLv8 fu8 gL8 hLm8 ko^ 8 lJ38 nhH8 pCL8 sE&8 t~n8 uOP8 wCL8 xCL8 zCL8 {CL8 |CL8 }CL8 ~CL8 R)8 G6g8 Ng8 G 8 _ > 8 _ > 8 CL8 CL8 CL8 CL8 CL8 CL8 CL8 ]8 CL8 CL8 CL8 N,8 CL8 D28 CL8 CL8 E8 CL8 CL8 CL8 OP$8 GӍ%8 HK&8 Q.8 CL*8 FV,8 _f8 OP.8 QG8 CL8 CL8 OP8 CL38 p48 A68 \78 P88 Sfg98 c]:8 ] ;8 `s4<8 \s48 OP>8 R?8 E@8 EA8 Uw8 !OPD8 "CgE8 #E(F8 $ELG8 $N8 (X8 )_I8 *V38 ,f 8 /ar8 0@h8 1@8 2x 8 3t 8 4s T !8 7CL 8 9CL8 :CL8 <`x 8 ?CL8 As8 8 B{ 8 CG8 Etj. 8 Ft8 HrN8 JCL8 KCL8 LCL8 MCL8 NCL8 RG/8 SHL8 TJ8 WqJ 8 H 8 v 8 y 8 QO 8 rf8 Cݑ8 { 8 AO8 mw8 y;d8 v 8 nn8 A8 M@8 q+ 8 os3 8 `ٚ8 Z38 ^ 8 CL8 CL8 CL8 CL8 CL8 OP8 OP8 OP8 CL8 G8 H98 I8 G8 zff8 zff}e8 FUU}f8 `{h ^ ^ M8 sj N8 DjO8 GP8 E+Q8 SQ(R8 PS8 o+ T8 GGV8 jc X8 EGY8 DY*[8 \8 [s^8 cm_8 C`8 Cֺa8 vaHb8 wuc8 u8 CL8 CL8 CLg8 HmSy 8 JCL8 KCL8 LCL8 MCLm8 PH(n8 S}o8 UcU 8 WCL8 XCL8 YCL8 ZCL8 [CL8 \CL8 ]CLw8 ay34x8 bFy8 cOB8 dOP{8 gl33 |8 i\<}8 jl ~8 m]8 pCXO8 qF(8 t}~ ~8 vOP8 yW |8 |CL8 Dw8 G&8 F8 O§u8 CLt8 CL8 qaH 8 u| 8 l 58 G}68 D|8 CL8 CL:8 G;8 Kcy<8 Fx?8  8 OP8 CLB8 A$ZC8 KpD8 {DA E8 SGF8 YHG8 PffH8 y. L8 ^ M8 XQ N8 fR O8 Bh:P8 AdFQ8 EINR8 CuT8 CU8 CV8 Ie8 OP8 CLY8 BEZ8 x+ 8 OP8 CL]8 r ^8 qt 8 OP8CLa8u 8OP8CLd8D8OPf8^8CLh8AOi8 X38"OPk8#J0 l8$Cm8%n8&h o8)[p8+X q8,R\) r8-S s8/Jt80K u81S82OP84CLx86By87QНz88Jā8:OP8Kc~8@D8ADW8BD8COP~8ECL8GB8JH$8KEZ8tGQ8uJ8vG8wE8xH8zKF8{E8}x8EV8P8I8K/q8oA8Iy^8EV8P8u8M8LP8o^ 8J38h8CL8Em8~n8OP8CL8CL8CL8CL8CL8CL8CL8XP8Ng8^38G 8_ > 8_ > 8CL8CL8CL8CL8CL8CL8CL8]8CL8CL8CL8N8CL8D-48CL8CL8D%8CL8CL8CL8OP$8G%8H&8K_8CL*8F,8f~8OP.8QP8CL8CL8 OP8 CL38p48A68R398Ac*v:8Bag;8C`<8Db8EOP>8FS;?8GE@8HEA8IU28JOPD8KCE8LEF8MD>G8NNR%8RU8S[8TS8Uf 8Yak8Z@h8[@8\x 8]tj. 8^r !8aCL 8bCL8dCL8f^p 8iCL8ks)~ 8lz 8mF8ntM 8o8rrj@8tCL8uCL8vCL8wCL8CL8G8HO8LNv8qJ 8Hs3 8v- 8y 8MW 8r 8C8|C 8@8n8y;d8vW 8pd8A)j8Mc$8q 8s 8`f8^y8^ 8CL8CL8CL8CL8CL8OP8OP8OP8CL8G8 H6[8 I8 G>8zL8zL}e8oX }f8 {\ ^ ^ M8&r N8)DgfO8*GSP8+EMQ8.STR8/PgS80o,| T81GNV83jc X85EY86DRY[87)\88]l^8;bW_8n8}~0o8~cU 8CL8CL8CL8CL8CL8CL8CLw8tx8H\y8OaH8OP{8l33 |8[}8mp~8]8C x8Fe38~ ~8OP8U= |8CL8DS8G8F8Fu8CLt8CL8qaH 8u{ 8l9X 58G68D8CL8CL:8FxC;8GƩ<8GV ?8~; 8OP8CLB8A+C8P}D8{ E8PF8[G8M(H8z L8_ M8W N8f=q O8BlP8A]Q8ED;R8C4T8C$U8CwV8H8OP8CLY8BEZ8w 8OP81CL]83r ^84q^ 86OP88CLa8:v- 8CLd8@DnQ8BOPf8D^8ECLh8GA:%i8HW.8JOPk8KJ l8LEm8MApn8Ng3 o8Q[wp8SX q8TQW r8UT{ s8VJt8WKu8YQ8ZOP8\CLx8^C'y8_Oz8`J8bOP8dCL}8gKt~8hD8iDJc8jD{8kOP~8CL8B 8H$8E*8G8J8Go8F8Hؒ8Kc8E8xd8EV8O8He8K38oA8Iw8@ 8R08uC8M:>8L~8o^ 8J38hE&8CL8E8~;R8OP8CL8CL8CL8CL8CL8CL8CL8Ng8G6g8Ng8G 8_ > 8_ > 8CL8CL8CL8CL8CL8CL8 CL8 ]8 CL8 CL8CL8N8CL8D+d8CL8CL8CD8CL8CL8CL8 OP$8!GӍ%8"H&8$KW8'CL*8*Fw,8+f8,OP.8-Q8/CL80CL83OP8\CL38_p{48aA68d]378eSf88fW98hc2:8jZ4;8k` <8l\8mOP>8nS?8oEu@8pE A8qU~8rOPD8sCO E8tEF8uDyG8vN[8zSy8{Y8|Rf8}fp 8^Ѕ8@8@}B8x 8tM 8r+ !8CL 8CL8CL8a 8CL8s T 8zF^ 8GgR8tM 88rB8CL8CL8CL8CL8CL8G8HS_8H8qJ 8H 8vY 8y 8RW 8s8C<8|5! 8@8pQ8y;d8vW 8qO8AVv8M8pX 8x* 8a,8^y8^ 8CL8CL8CL8$CL8%CL8(OP8)OP8+OP8-CL80G 81H5s82I\83G86zL87zL}e8Y*}f8{\ ^ ^ M8Ns. N8QD`DO8RFP8SEEQ8VSd1R8WPFS8Xo T8YGGV8Zjr X8]EĨY8^DJ[8_7(\8Y^8dH_8C`8BCa8y{b8x=qc8vB8CL8CL8CLg8m 8CL8CL8CL8CLm8G9n8}4o8cU 8CL8CL8CL8CL8CL8CL8CLw8tx8Jffy8O8OP{8l"# |8[~}8n~8]8B8F<8} ~8OP8W- |8CL8Dq`8G:j8FШ8L~u8CLt8CL8q[# 8u| 8l 58Go68 D8 CL8 CL:8F7 ;8I~<8G?8~; 8OP8CLB8A2C8TӾD8{E E8S(F8\HG8\H8zC L8 ] M8!W N8"d O8#BlP8$Ai[Q8%EOR8&CT8'BU8PCV8QHP|8ROP8TCLY8VB Z8Wx# 8YOP8[CL]8]r ^8^r@3 8`OP8bCLa8dvR 8fOP8hCLd8jDnQ8lOPf8n^8oCLh8qA2i8rU8tOPk8uK6 l8vB(m8wF\)n8xhL o8{[%p8}X q8~Q r8T s8Jt8J u8Pq8OP8CLx8C6]y8Mz8Jm8OP8CL}8K~8D;8D?8D8OP~8CL8B8H$8E*8G&"8J8Go8F8Hؒ8KU8@8xr8@ 8Op8ID8K+8oA8Iu8@ 8Oy8uݪ8M\8L#8o^ 8J38hE&8CL8E8~{8OP8CL8CL8CL8CL8CL8!CL8"CL8%RY8&G6g8'Pg8(G 8)_ > 8*_ > 8,CL8-CL8.CL80CL81CL82CL83CL84]85CL86CL87CL89N 8;CL8=D,L8?CL8@CL8BD8ECL8FCL8GCL8JOP$8KG۵%8LH&8NRiq8QCL*8|Fl ,8}f18~OP.8Qq8CL8CL8OP8CL38p48A68\y78N88Py98c5:8Y3;8_<8^g8OP>8Sd?8Ej@8D=A8U8OPD8CgE8E F8DG8Nj8UY8[8S8f 8b8@w8@u8y 8t/ 8r !8CL 8CL8CL8^y 8CL8r 8zu 8GC8tj. 88r>C8CL8CL8CL8CL8CL8G8HRw8H{28qJ 8Ij 8v 8y{ 8M+ 8sf8C8 |& 8@8qN8y;d8vW 8slm8@48ML8p- 8Foj 8G`8H]8I^ 8JCL8KCL8MCL8NCL8OCL8ROP8SOP8UOP8WCL8ZG 8[H38\Is8]G8`o8ao}e8_r}f8{}7 ^ ^ M8xr N8zDZO8|FxP8}E\Q8SkR8PS8oK T8GV V8jǫ X8E>Y8DE[8Sq\8]4^8e_8C`8Aa8yb8yc8wH8CL8CL8CLg8m 8CL8CL8CL8CLm8Fn8~Yo8cj 8CL8CL8CL8CL8CL8CL8CLw8{x8Gy8M8OP{8l |8 \ }8oR~8]8Bq8F8}R ~8OP8U= |8CL8"Db8$G?}8%F28(Kjqu8*CLt8+CL8.q  _ > CL CL CL CL CL CL CL ] CL CL CL N : CL D0 CL CL DQN .CL /CL 0CL 2OP$ 3GU% 4H& 7LIG :CL* =Fc, >f*R ?OP. @R ACL BCL EOP GCL3 Jp4 LA6 N[337 ORl8 PO9 Sc.<: W\y; Xa< Yc ZOP> [R? \E`@ ]D-A ^U ) _OPD `E<E aEF bDئG cN6 fU34 g\ S3 g;  \ @] @gv y  t  r ! CL CL CL a[o  CL r  z %  F s   r  CL CL CL CL CL G HV Iv qJ  I33  vh.  y  S  sl Cn |  ] sM y;d vW  u @) N pӖ  rQ   `f  ]3  ^   CL CL CL CL CL OP OP OP CL Gm H0 H  G% "e #e}e [|}f8.{ZL ^ ^ M crez N eD_O fF14P gEXQ jShR kPS mn T nGkV oj0 X qECY rD<[ s}\ tW^ xbv$_ yC` {A|4a |z{b }xkc ~xz CL CL CLg mg CL CL CL CLm FAn ~<o c CL CL CL CL CL CL CLw yx Hy NL OP{ l | \W} nj~ ] B9 F ~ ~ OP X | CL DF G=P Fel Jv}u CLt CL q-  t  l1 5 Go6 DK  CL !CL: #Fm; $FO< %H? - O /OP 1CLB 3A$ZC 4S5iD 5{ E 7RpF 8Y(G 9GGH :y? L ;hH M Bk!P ?AlQ @EYR ACT BBU CC_V DH EOP GCLY IB Z Jx+ LOP NCL] PqJ ^ Qq SOP UCLa Wv YOP [CLd DnQ OPf ^ CLh A+i Ro OPk Jd l D =m  n g&f o [%p Y q S{ r U8R s Jt Ju O OP CLx C y Jüz JBU OP CL} K~ D D$r Dw OP~ CL BN H E9[ G&" J Go F!O H  Kc E x( EV O I K4 oA Is B3 S0 uq L L# o^  J3 g CL  E/  } Z  OP CL CL CL CL CL CL CL Ng G6g Pg G  _ >  _ >  CL !CL "CL #CL LCL MCL NCL O] QCL RCL SCL TN  VCL YD4q [CL \CL ^CSc `CL aCL bCL eOP$ fGU% gH)& jI lCL* oFW<, pe qOP. rR tCL uCL xOP zCL3 |p54 ~A6 ]7 R 8 O 9 c2: Z; ^< ZY OP> Sh? EV@ DA U OPD HE DF D G Nq T  Y Q g  b% @BV @`2 y  s  r ! CL CL CL ^  CL s)~  z  GQ sF  nJ8 r$ CL CL CL CL CL G_ HP JK q  I  vh.  y@  L  !rɚ $Cc '{  )  *t -y;d .vW  0v 2@p 3M`@ 6p  9r"  :`f ;^y <^  >CL ?CL @CL ACL BCL FOP GOP HOP JCL MG NH0 xH yG {z |z}e S.}f {F ^ ^ M rc N DaO FMP EOQ Sd1R PS nn T GV jt X EwY D:[ a\ Y^ cB_ C` Aa wb v34c v34 CL CL CLg mF CL CL CL CLm F|Un ~)o c CL CL CL CL CL CL CLw vx My O{ OP{ m33 | [8~} n~ ] B F   ~  OP [v | CL DG G2s @Fq CPu ECLt GCL Ip  Ju1  Kk 5 MGy6 ODc PCL RCL: TF; UK< VI`? W O YOP [CLB ]AC ^R.D _{f E aR\F bXG cGGH dy L ea M f[ N gh O hBgP iAdFQ jE?(R kC܅T lB|U mCV nH oOP qCLY sBMZ txWc vOP xCL] zq ^ {q OP CLa vK OP CLd Du OPf ^ CLh A$Zi P\ OPk Jd l F33m AQn gxR o \Z7p [ q S( r U s Jt JNu PEw OP CLx By Oz J OP CL} KD~ D D  DfW OP~ CL A"  H  E9[  G )  J  Go F!O H  KU @ x @  O` HЌ K) oA  Inx !BV $O &vf (L~ )L ,o^  -J3 /hE& 1CL 4E 5~ 6OP 8CL 9CL :CL CL ?CL BNg CL4 lYg mG  n_ >  o_ > rCL sCL tCL uCL vCL wCL xCL y] zCL |CL }CL ~N : CL D8 CL CL DX CL CL CL OP$ Gu% H& R CL* FP, f OP. Q CL CL OP CL3 pD!4 A6 Wf7 L8 Hs39 c&: \g; b< ]g OP> SSp? EG@ DA U OPD IVE DF D8G N5 Z3 a  X) gi  `= @' @Q y  sl  r ! CL CL CL a[o  CL r1  z7  FE sF  BK4   r23  CL 4CL 5CL 6CL 7CL ;G H y% L gp M b( N o\* O BXBP AWQ EG!R CWT BU CxV I%H OP CLY BɀZ x# OP CL] q ^ pY OP CLa u OP CLd D OPf ^ CLh Ai N OPk JlN l Em AGn i( o \;p Zf q S r U33 s Jt J6u Q; OP CLx By Pez J< OP CL} (Kz~ )Dm *C +DT ,OP~ .CL 0A 3H 4E9[ 5G&" 6J 7G 8FR 9Hؒ ;K) <@ >x AEV BO DI EK- HoA JIj KBV NLv Pv( QL# SL~ Vo^  WJ%g Yg [CL ^E _} Z `OP bCL cCL CL CL CL CL CL Pg K Yf G  _ >  _ > CL CL CL CL CL CL CL ] CL CL CL N CL D8 CL CL DX CL CL CL OP$ G% H& M CL* FE$, ^w OP. R CL CL OP CL3 o4 A6 V7 Mg8 Hs39 c": ^9; ag< ]f OP> R}? E<@ DUA U  OPD IAE DF DQG N+ U \p Sٚ g:  ` @ @Je y  sF  rk ! "CL #CL %CL ']  *CL Tr1  UzT  VGJY Ws  XA~  [rM) ]CL ^CL _CL `CL aCL dG~ fHN gP9 jq  mJD  ov  py]  qLU  tp, xC} {{  }~7 ~w y;d v  z @F!n A}|o BcU ECL FCL GCL HCL ICL JCL KCLw Owx PLQy QM{ ROP{ Um33 | W[\} l~ ] A F[ ~] ~ OP VEA | CL Dq` G  F Ou CLt CL p  t  ldZ 5 G6 D]' CL CL: Fs; FII< J? ~Ü OP CLB @C OD {, E PGF \(G HH y\ L FM wfgN W>O BS,P A\HQ E,OR CɨT B4U C~V IF OP CLY B=Z wt OP CL] q3 ^ o OP CLa tz OP CLd D OPf ^ CLh AKi L OPk Jb l Cm }n g+ o ]p W q P{ r RR s Jt J5u R HOP KCLx MBy NKz PJ_C ROP TCL} VKc~ XDZ  YC ZDL [OP~ ]CL _AZ aH cE9[ dG4 eJ fG gFR hHؒ iK) jE lx oEV qO` sI^! tK1C woA yIg5 zB3 }S v/' L~ L o^  J3 i CL E/ } Z OP CL CL CL CL CL CL CL Ng G6g Pg G  _ >  _ > CL CL CL CL CL CL CL ] CL CL CL N CL D4q CL CL Ci( CL CL CL OP$ Gt% H~& I CL* F6, _&u OP. R'  CL  CL "OP $CL3 'oÒ4 )A6 ,T7 -L8 .J@9 0c9: 2fL; 3df< 4gL 5OP> 6RI? 7E5s@ 8D۵A 9U :OPD ;IPE N= BU3 C[3 DSp Egc  HbF I@ J@; ty#;  us  vrN ! yCL zCL {CL }a<  CL r#  z[  Fy s  p rh CL CL CL CL CL G> HP NT qˈ  I  v(  y  S  nc3 C | z  } y{ y;d vW  |$ $z M p  x  ` ^y ^  CL CL CL CL CL OP OP OP CL G  H* Hx GF i i}e W}f {! ^ ^ M Ar+< N CDT%O EEP FE2Q IS&R JP<S K T LGV Mjt X PEXnY QDm[ Ro\ SZ"^ Va_ WC` XAPga [}b \}c ]|* _CL `CL aCLg dm1 fCL hCL iCL jCLm mFmn p}o qc@ sCL tCL vCL wCL CL CL CLw |{x Fy N OP{ m | \d} lR~ ] AR F ~ ~ OP X | CL DQ Gx F Fu CLt CL p  t  l1 5 GW6 DU CL CL: G4; K< J? ~ OP CLB @=C  NND  {DA E  P >F  [G IH y L FM vN V4O BOP A\HQ ER CT B)U CqHV JN OP CLY ByZ  w "OP $CL] &q+ ^ 'of )OP +CLa -t/ /OP 1CLd 3DS 4OPf 7^ 8CLh :@i ;X" =OPk >Jf l ?Fpm hAffn ig o l\]p nW q oO r pS s qJt rJu sYcZ uCL xCLx zBk!y {Sgz |J ~OP CL} KF~ DG C* DC OP~ CL Al Hؒ EsZ G J G F Hؒ K) E x EV O HR K&X oA Ia B3 O v? L7 L o^  J%g jQ CL Ej ~n OP CL CL CL CL CL CL CL Ng E3 Pg G  _ >  _ > CL CL CL CL CL CL CL ] CL CL CL N : CL 0D4q 2CL 3CL 5C. 8CL 9CL :CL H{& AOE DCL* GF,, H^e IOP. JR KCL LCL OOP QCL3 To4 VA6 XQ7 YLl8 ZJ,9 ]cj: __; `cg< a`g bOP> cR? dE.2@ eDDA fU gOPD hHE iDuF jDvG kNki S3 Yg Q3 g0  ]T @ @4 y#;  s  r@3 ! CL CL CL ]h  CL r  zcz  F s   rgi CL CL CL CL CL G HM L qˈ  I  vt  yl  L  n C~ {  |u zH y;d vW  |  @P  M  p|  tw  aS3 ^y ^  CL CL CL CL CL OP OP OP !CL %G &H%! 'H (G +i = .i =}e [K7}f z ^ ^ M nq- N pDO'O qETP rE=Q vSқR wONS x@}BT yG]gV zj\ X |EIY }C[ t\ ZX.^ e_ C` Ba A{b A^c A > CL CL CLg m. CL CL CL CLm G+n ~Po c@ CL CL CL CL CL CL CLw x Iqy O{ OP{ l | \_} nwl~ ] BR G'+ ~ ~ OP [ | CL D; F F}V L^(u CLt CL pq  $tV  &k 5 (G6 )D5p +CL ,CL: .G; /H1< 0KY0? 1~; 3OP 5CLB 7@۶C 8M=D 9{%, E ;PffF <_ >G =KH >yM L ?K>M @{\*N A^#O BBIP CA_/Q DE%R ECaT FBU GCbV HJ6  JOP KCLY MBcZ Owt POP RCL] Tq ^ Un WOP YCLa [sF ]OP _CLd Du OPf ^ CLh @۶i W OPk JJ) l Fm An hu o \%Zp Xq q Nf r S s Jyt J4u N CL CLx A:%y Mz JX OP CL} K?m~ D@ D7j D5 OP~ CL AH H EG G J G F H  K) E xZ EV OP I K  oA IX B3 Lv v/' L& Lû o^  J3  i  CL Ey {n5 OP CL CL CL CL CL CL CL Ng Mg Ng  G  !_ >  "_ > $CL %CL &CL 'CL PCL QCL SCL T] UCL VCL WCL YNV ZCL ]D2 _CL `CL bD̘ eCL fCL gCL iOP$ jG% kH{2& nO& qCL* tF!, u^ vOP. wR xCL yCL |OP ~CL3 o4 A6 Sfg7 L38 N9 c$: _; c< ` OP> R|? E#P@ DA U? OPD G4E D}F D^G NJ Vf \g UFg gS  ` @ @& y#;  sc  r# ! CL CL CL aY  CL r1  }I  Fs sF  ⶻ rM) CL CL CL CL CL Gw HH} Jƭ q  H3   vY  !yl  "T  %q  (Cvs +{a  -{b .{Z 2y;d 3v  5~( 6^ 7NY] :p^  =t  >aY @^y A^  BCL CCL DCL ECL GCL JOP KOP LOP NCL RG SH%! |H }G7 h( h(}e ^+}f z ^ ^ M r N DJO EP EtQ TR OS @T GNV j% X EY C[  P\ Y^ df$_ C` Ca Ab B&fc C\ CL CL CLg m%U CL CL CL CLm Gn }go c CL CL CL CL CL CL CLw z(x GW y PW  OP{ l | \V}  m;Z~  ] B G< ~ ~ OP |s | CL D< DF EFÝ ILu KCLt LCL Npt  Osm  Qk 5 SGO6 TDD VCL WCL: YG:; ZE<< [K? \~ ^OP `CLB b@rC cLD d{L E fMffF g[pG hH\)H iyOy L jHRM kwGN l[)O mBFP nAVxQ oE#R pCT qBrU sCQV tJ uOP wCLY yBNZ zwS |OP }CL] p ^ n OP CLa sc OP CLd DQN OPf ^ CLh @.i V OPk JMU l J{m Dn gQ o \Kp WB q O r Rff s JJt Ju NaM CL CLx @y PJBz J OP CL} K?m~ DJ D D*# OP~ CL  @ H EG GC J G F H  K) E x EV O I !K() $oA &IV 'B3 *S_ ,v  -L .Lq 1o^  2J%g 4j 6CL 9E/ :} CL ?CL @CL ACL BCL CCL DCL GNgM\NgG _ >  _ >  CL CL CLCLCLCLCL]CLCLCLNCLD1CLCL!C>$CL%CL&CL(OP$)G%*HxM&-J00CL*3F,4^5OP.6Rb7CL8CL;OPeCL3ho;4jA6lR7mE`8nN39qcv:u^&g;v[<w`4xOP>yS M?zE(@{DɔA|Uu}OPD~FEDmFDvGNHV3\Tgv a @y#; sF rs !CL CLCL]n CLrs AF?sF s7"rTCLCLCLCLCLG7HU/Iq^ H vR4?E@D<AUȃOPDFEDFDvGNnLYf`&fW3gl7 ^ @y1 s)~ qJ !CL CLCLa/ CLr1 @F!Osc BB rYCLCLCLCLCLG Hk O! q H u y@Y T pCf+{  {!}bLy;dMv4 O@GQ~RMsUp3 Xx" Ya&fZ\L[^\CL^CL_CL`CLaCLdOPfOPgOPiCLlGsmH"ioHMpGsCW vCW }eY`5}fz ^ ^ Mr ND<OEPEnQTnRO So۔ TGV Vjc XEYC+[Ʊ\SJ^e_C`C<aB&fbBcB>CLCLCLgm2 CLCLCLCLmHn}ob CLCLCLCLCLCLCLwBkxJyOpOP{ l |"]2}#qM;~&])CS*FK-|R8 ~/OP2[jU |5CL8D9F-:F=Q$!u?CLtACLCo Ds EkO 5GGV6HD/JCLKCL:MG0;OH@<xL?y~ {OP}CLB@.CR[D{, EVGFXGVHy LPMB=qNa*OB<PAMQEPRCTBPUC2VH&OPCLYBZwB OPCL]q ^~ CLCLaACLCLdD%OPf^CLh@biJ4;OPkJe( lJffmFQnxq o\iRpU qN{ rQ sJtJuICLCLx@yNmzjcCLCL}JF~DnEcDBOP~CL@HEV[ G J G F!O H K)ExMEVOIHWAK DoAFIKG@JLvLv<MLNLQo^ RJ%gTjpVCLYEtC[{e\OP^CL_CL`CLaCLbCLcCLdCLgPgiG6gjPgk_l_m_oCLpCLqCLrCLsCLuCLvCLw]xCLyCLzCLNCLD2CLCLECLCLCLOP$G~_%Hv!&PstCL*Es,_;OP.RCLCLOPCL3o4A6R37Dy8CY9cD:[34;`y<ZOP>Rg?E @DATOPDEE DF DG N@V3]9T3gȹ ab @y1 s T q !CL CL CL"^ %CL'rk )B*G+s ,@r\ .rC:0CL1CL3CL4CL5CL8GW9H:OV=q @Hf Cv4 ly@Y mL" pp3sC`v{a x{c[z~}y;d~v4 @,<MDp$ sUU ``\Ff^ CLCLCLCLCLOPOPOPCLGhH!H6Gnpnp}e,Xn}fCz18 ^ ^ Mr+< ND8VOE|PEGQTROSo; TFVjC XETYC[s\^^f_C`BaAubCcC4CLCLCLg mD  CL4CL6CL7CLm:Gn=~9o>b @CLACLBCLDCLECLFCLGCLwJxKI#yLPffNOP{Qk |S[}Tmwk~V]YCZFbP^} ~`OPcTp |eCLhDiFkFHqlFunCLtoCLo r k+ 5G6D_CLCL:G} ;FN<M?~ OPCLB@.CUD{ EQFX{GSGHyݬ LPHMBNaOB7PADPQE:RCTB3UCVHOPCLYBZw| OPCL]q9 ^@CLCLaAҩCLCLdD OPf ^ CLh @i Jԝ OPk J l J33m FQn { o \vp Yf q RL r VaH s JJt Jyu D CL CLx ^ y P~z h "CL $CL} &J~ (D) )EC *D# +OP~ -CL /@ 1Hؒ 2EV[ 4GC 5J 6G 7F/ `H aK) bE dxܩ gEV hO` kIW lK) ooA qIF r@  uS wu9 xL yL |o^  }J3 jp CL E } Z OP CL CL CL CL CL CL CL Q K Yg _ _ _ CL CL CL CL CL CL CL ] CL CL CL N CL D4q CL CL D CL CL CL OP$ G% Ht& Kg CL* ED, _  OP. R  CL CL OP CL3 o4 A6 Ts37 Dfg8 C339 (c=W: *XS4; +]y< ,Y -OP> .Rs? /E@ 0DA 1U 2OPD 3EɝE 4DF 5D8G 6N :`&f ;g <^ =g  @ae A  B@ Cy1  Er+  Fqˈ ! ICL  JCL KCL M`P  PCL Sr  TD UFxC Vs8  XK YrV [CL ]CL ^CL _CL `CL cG He Hm q3  H  u}  y#;  S$  s3 CV {  z X y;d v4  t( \ M9 pY  s"  ` [f ^ CL CL CL CL CL CL OP OP CL Ge H  H G yff yff}e Xa }fy ^ ^ M qN N D;0O EuP EQ TR OS o T F!V i X EfY C[ O\ Wf^ #a=_ $C` &BTLa 'BRb )Bc *A> TCL UCL VCLg YmJ  [CL \CL ^CL _CLm bG+ n e}go fbD  hCL iCL kCL lCL mCL nCL oCLw rAGx sKky tP vOP{ ykwx | {\C} |nA~ ~] B FT | ~ OP U | CL DG F FC Nu CLt CL o]/  rX  k7L 5 G6 D CL CL: G; E< N.\? ~  OP CLB @RC TD {%, E O\F Y(G HH z L PM BzN bW O B3:P A5Q E-R CT BU CV Hez OP CLY C Z w  OP CL] p< ^ @ !CL "CLa $A &CL 'CLd )D +OPf /^ 0CLh 2@i 3I' 5OPk 6J{ l 7Om 9K=qn :z o =]p ?[ q @S r AV3 s BJyt CJu DC\ FCL GCLx IK y JNNz L`<> NCL OCL} QKF~ SD TF UD WOP~ CL @ Hؒ Ed GC J G F/ H K) E x EV OP H K) oA IA @Y Pb u9 Ls LT o^  AF jp CL E ~-7 OP CL CL CL CL CL CL CL Q3 Kə Pg G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL N : CL D7( CL CL CD CL CL CL OP$ G% Hr& K] CL* E., ^ OP. Q CL CL OP HCL3 Ko4 LA6 OU7 PJ@8 QH99 TcD: Vg4; Wf< Xi YOP> ZR? [D@ \D}A ]U> ^OPD _FN=E `DVF aDG bN+) ec9 fj  haf ih!N  l[ m  n^  oy1  pr  qq ! uCL  vCL wCL y]b  |CL ~r@3  BM E s  ; q CL CL CL CL CL Gy H H+ q  H3  u  y1  L1s  tf CxB {  {x  y7L u  `6 J M o  x  ay ^vf ^ CL CL CL CLCLCLOPOPCLGH$8HG?"WR%WR}e aw}f y ^ ^ M=q N?D6O@EPAEL5QETуRFOSGo; THFVIi7 XKEYtC[v'\wZr^zb%_{C`}Awa~FbC)cAffCLCLCLgm/ CLCLCLCLmFHn}yobn CLCLCLCLCLCLCLw{xMySGOP{l"# |\I}oO`~]Ba?F} ~OPS |CLD;G?}F9JuCLtCLo2- rQ j 5G6DPCLCL:Gg;ImZ<Nͯ?~s OPCLB@gvCS8D{4 E ZF \(G BH z# LQ\MB.NbOB/PAJQE3RBU?BV@GAOPCCLYECuZFw HOPJCL]KpPL ^M@OCLPCLaRAUCLVCLdXBM[CLf^]_CLha@ibNVAeCLkhJu liVmjRpnmK3on]opp^\ qqWk rrZ{ ssJtuJpxuvD`CLCLxFv yLAz[BCLCL}K"~D4F {/9 CL~CL@HؒEdG&"JGxF/HK)ExEVO`HeK oAI;BVLvv#,M Lo^ Q lq CLEy{\OPCLCLCLCLCLCLCLNgQgYg G !_ > "_ > $CL%CL&CL'CL(CL)CL+CL,]-CL.CL/CL0Nr2CL5D5Y7CL8CL:E=CL>CL?CLiOP$jG%kHn&nQeqCL*sE,t^ЅuOP.vQ݇xCLyCL|OP~CL3o}=4A6R37H8Hf9c=:bf;fٚ<bOP>RM?D@DAUOPDGEDFDCGMe6glibhH ay  y@Y r q !CL CLCL`q. CLrk FbFysU: ݱqWCLCLCLCLCLGiHAH>q Hw u} y]w R sC<{H @~}B2y7L3u 5^K6G7N@:o۔ =r. >a@^vfA^BCLCCLDCLECLGCLHCLKOPLOPNCLRG}SH& THUGWyXy}e[T}fyk ^ ^ MrHZ ND1OENPGQTXROySoK TG1Vj9 XExYDz[|u\^R}^do_C`AaF{bCaHcD@CLCLCLgmO CLCLCLCLmF(n~ obn CLCLCLCLCLCLCLw@aHxJ(yOOP{k |\ }p%/~] B'q FS}u% ~CLWj |CLDR-F.ZF6au!CLt"CL$ngm %rv &jZ 5)G6*D,CL-CL:/Fm;0Jn<1Ol?2~@ \OP^CLB`@C CaR2Db{<} EdR34Fe_(GfA(HgzRK LhU#MiEǮNje(OkB-lPlA6QmEMRnCuToBUpBIVqc,sCLtCLYvD- Zwx+ yOP{CL]}pA ^~A$ZCLCLaBcCLCLd| CLf]CLhA+iO4mCLkJ^ lZ =mV=qnQo[%p^ qWH r[ff sJtJ uDSCLCLxFv yM zW)CLCL}Jm~E CF K CL~CLA2HؒEsZGJGxF>KHK)ExEVO/I$K)'oA)I4^*BV-S/v0M 1JP4o^ 5S7m89CL~J?OPACLBCLCCLDCLECLFCLGCLJNgLNgMY3NG O_ > P_ > RCLSCLTCLUCLWCLXCLYCLZ][CL\CL]CL_N :CLD2CLCLDJCLCLCLOP$Gg%Hk&KCL*Eƅ,^IOP.QjCLCLOPCL3o4A6Py7Kf8E`9d :`;e<`9OP>R̿?DM@DmAUYOPDHYEDvFDtGMKcjg`fi ^ K y@Y r q !CL CLCL] CL r  E F s qʙCLCLCLCLCLGHI qt SI7w Uu Vy]w WL@- Zsf]DH[`| bDIdy$gy7Lhu j\֝kG )lO oo sxb" ta u^s3v^wCLxCLzCL{CL|CL}CLOPCLCLHGH#PHGwffwff}e_d0}f$x ^ ^ Mr+< ND0~OE?PFsQU'ROSn TFVin XE YDwV[޲t\\$E^f"N_C`A)waBbAcAuCLCLCLgm CLCLCLCLm!F|Un$}o%b 'CL(CL*CL+CL,CL-CL.CLw1|x2Iqy3OaH5OP{8k |:\R};m*~=]@ABF8E}R ~GCLIZp |KCLNDPLQFW|OvXu~CLtCLns r^6 ji 5Gt6DyCLCL:G;G<P ?~# OPCLB@CQD{ ER{F]RGy Hz= LTMEzNeW OB+?PA3QE';RCXTB3UBV_CLCLYB+Zx+ OPCL]p3 ^A:CLCLaC6]CLCLd@`2CLf]CLhAiNCLkJq lZ=qmWnO3o]Gp^{ qW) rZ8R sJxtIquE1CLCLx y Pưz Wj CLCL}J_C~E2FACL~CLAODH EEsZFG4GJIGoJFiKIwLKcMEOx&REVSOUIVK+YoA\I.]BV`PۆbvcM dJPgo^ hT;jm,lCLoEjp~-7rOPtCLuCLvCLwCLxCLyCLzCL}Yg~RFfYgG _ > _ > CLCLCLCLCLCLCL]CLCLCLNVCLD0CLCLCL!CLCLCLOP$Gm%Hh_&JZCL*E,e#OP.QICLCLOPCL3p"4 A6L 7Gf8J9d~:g4;g<ifgOP>S$?D@DAUyaOPDIVEDF D*G!M$h,%o|'e(j +a[, -: .y@Y /rz 1qt !4CL 5CL6CL8_ ;CL=r >G0@GAsF CfDq6FCLGCLCLCLCL GZ Hκ JVqt I@ y] |= P pfD!}: "HA$tU'y7L)v4 +_,G"-O0of 3vj 4a@6^vf7^8CL9CL:CL;CLeCLfCLiOPkCLlCLpHvqH'rHnsGvk33yk33}eCY}fxԽ ^ ^ Mrt ND5{OEPEQU,RO6Sn TF>Vj XE3YD[ɲ P\] ^c_C`@aD!HbCpcDCLCLCLgmC CLCLCLCLmF<n~`oa CLCLCLCLCLCLCLw@xJffyQ.OP{kwx |]}o~],A-FN0}~ ~2CL5X |7CL:D.t;LDXES]u@CLtACLCnp Dr- EjF 5HG6ID?KCLLCL:NGg;OG"J<PP?QH[TCLUCLBW CXPPDY|D E[OF\]G]{ H^{ L_C34M`aQNaO34ObB0SPcA2'QdE2ReCTfBTUgCV`CLCLYAOZy OPCL]p| ^C/CLCLaD|CLCLdALCLf]CLhB\iN0 CLkJ lZmWnTfo^p\ qV rY sJpxtIuDCLCLxr yNzVLCLCL}J|1~EaEEBCL~CLAH  EsZ G4 J G FxCI KcEyDEVO?IK$oAI' Bv#Lv%wY'&M 'I*o^ ,Q.mXCL[E}M\}]OP_CL`CLaCLbCLcCLeCLfCLiPgjL4kYglG m_ > n_ > pCLqCLsCLtCLuCLvCLwCLx]yCLzCL|CL}NVCLD-4CLCLDCLCLCLOP$G%Hf4&RCeCL*E,frfOP.QvvCLCLOPCL3p:4A6K97C8I49d<:aFg;eg<aLOP>R?DU@DAUOPDI5EDFDGMjgqgfj `1?  y@Y r]\ qes !!CL "CL#CL%] (CL+s T ,Hzx-Cu.sF 0{1qԈ3CL5CL6CL7CL8CL;GV`#CLCLY@gvZCaCLCL]q3 ^ECLCLaE*CLCLdB+CLf]CLhBɀiMCLkJl lZmWnXffo^jEp^ qXW rY sJgbtIuE!CL"CLx$' y%Q}z'S )CL*CL},JI~.ET/Ev0B-l2CL~3CL5A8H 9E:G;JFxC?I @KcAECyFEVGO?II8JK)MoAOI"7xBl{Sƣ~wM IEo^ Qm,CLE{\OPCLCLCLCLCLCLCLPgNgc3G _ > _ > CLCLCLCLCLCLCL]CLCLCLMCLD/CLCLDCLCLCLOP$G%HcN&LlCL*Eu,e&xOP.QCLCLOPCL3p4A6OY7D8E39e: `3; bf< a, OP> R?D@DvAUqvOPDJaoED7FDiGMAhBoLCfDkA H]~NIh! J Ky@Y Lr@3 Mq9 !QCL RCLSCLU_ XCLZr [Go]E^s8 `BaqcCLdCLeCLgCLhCLkGlHmQ5pq sI vw3 w{= xNf {oD }; Mely7Lv PuE=Oo uH a^s3^CLCLCLCLCLCLOPCLCLI+KH)HgRGChh}e`f?}fuy ^ ^ Mr' NDROEFPDQ!URR"OxS#@T$F^V%i X(F@EY)D[*t\+\X^.c_/C`1B)xa2E\)b4A@c5B7CL8CL9CLgCL@CLACLBCLmmFnp}oq` sCLtCLvCLwCLxCLyCLzCLw}zx~I\yQOP{jUV |\}$}mP~]BB.F}R ~CLWj |CLD$DFTI_euCLtCLnɺ qt j 5G6EZCLCL:Fy;F<Q?B CLCLB} CLhD|Lh E_(F^{GO{H} L` MS4NpOB/PA(QEXRCuTBUCeV`CLCLYr ZALCLCL]r ^DCLCLaEV[CL CLd A 6CLf7]8CLh:B iCLkAJ8 lB\mDXnFY33oH^1pJ] qKXǮ rL[k sMJhJtNI@uOEQCLRCLxT@yULHzWPYCLZCL}\JBU~^F1_E`BRsbCL~cCLeAhH iEjGQkJlGnFxCoI KcExlEVOPISLoAI4^APwLIo^ Qo8CLE|OPCLCLCLCLCLCLCLYS3QafG _ > _ > CLCLCLCLCLCLCL ] CL CL CL N CL DB CL CL A/ CL CL CL OP$ G% Ha"& H/ CL* E, !e! "OP. #Q %CL &CL )OP +CL3 -p*4 /A6 2Qf7 3A38 4B`9 7f6: aD3; bD< c@ dOP> eS ? fD@ gDA hU: iOPD jJ E kD7F lDG mN. pfɚ qm  rdl tl  wc# xD  yr  zy@Y  {r#  |q9 ! CL  CL CL _i  CL r  G F( s  y q5 CL CL CL CL CL G! H P q  I33  w_  z  O  p D }X  N i y7L vW  I IL\ P o  rȉ  a< ^s3 ^ CL CL CL CL CL CL OP CL CL IS< (H( )HgR *GG -i\) 0i\)}e U}fyi ^ ^ M HrV N JDWO KJ":P LDQ OU|R POjAS R@=T SNnQV TzV X VFgY WDZ#[ X\ Y\wx^ ]c-_ ^Cr` `CQ`a aPRb bOc cP CL CL CLg m  CL CL CL CLm Gɔn }go `w1  CL CL CL CL CL CL CLw x HRy R# OP{ @y,| ^C} nb~ ] B G% } ~ CL X  | CL D" De FW KNu CLt CL ou  q+  i< 5 H6 Eu* CL CL: E; E< R}#? C  CL CLB }: C QD |kz E \ >F ]RG v\ H }D L E\M AN VO B%oP A.Q E;R CT C$U C_V _C CL !CLY #~OI Z $AL 'CL (CL] *r ^ +E2 VCL WCLa YE \CL ]CLd _B= bCLf c] dCLh fCSci gQF jCLk mJ l n[m oWn rX3o s^p u\Q q vW r wZG s xJjt yI|u zGב |CL ~CLx @4y Q5z N5D CL CL} J_C~ F> EN B+? CL~ CL A H E G4 J G FxC I  Kc E x @  O I~ L oA I\O BV Lv xz\ L^ IE o^  Q o CL E}M ~' OP CL CL CL CL CL CL CL Pg Q _S3 G  !_ >  "_ >  $CL %CL &CL (CL )CL *CL +CL ,] -CL .CL /CL 1N 3CL 5DIC 7CL 8CL :y@Y  =CL >CL ?CL BOP$ CH% DHa"& FRm ICL* LEu, Me$ NOP. OQ QCL RCL TOP VCL3 p4 A6 S@7 Dfg8 BL9 hQ: C; D< @g OP> R? D\@ D7A UCj OPD IbE DF DُG N+ jY q gl l  ` ~y  c  y@Y  r  q+ ! CL  CL CL ^  CL rs  EsZ E9[ r  qD r CL CL CL CL CL G H J q  IH  vI  z  Mu  r E }f  MC hf y7L v-  Iw I(- P of  uU  ` ]< ^ CL CL CL CL CL HCL KOP NCL OCL RI\O SH0 TH} UG_ XzL YzL}e Tf}f yk ^ ^ M prc N rD^!O tBJP uDQ xW}&R yNS zAT {I;V |m X FY D[ \ \-^ e_ mc ` D'a eb g+c g* CL CL CLg ma  CL CL CL CLm HYn }ɚo `F  CL CL CL CL CL CL CLw Ex JHy O OP{ j | ]t} r_~ ] CY G ~} ~CLZ( |CLD&OHyFYMCu!CLt"CL%ocT &qo 'i 5)H6*E:,CL-CL:/FE;0E;<1S?2C5CL6CLB8}T C9LED:| EJffH?~n L@l\MA@NCUODB)PEA3QFE>nRGC*THClUICVJ]TtCLuCLYw}X ZxAq{CL|CL]~rz ^ECLCLaECLCLdCCLf]CLhCiQCLkJy l}(m\n\Lo^Zpa qX r[p sJotIsuHCLCLx@QyJgzPm"CLCL}Jt~FhbEgBCL~CLAHEZGCJGFI/jKcExKEVOILoAIrBVSxܠLIЍ o^  Q mCLE~0CL?CLACLBCLCCLDCLECLHNgIQJavgKG M_ > N_ > PCLQCLRCLSCLTCLUCLVCLW]YCLZCL[CL\NI^CLaDGtcCLdCLfv hCLiCLjCLmOP$nH6[%oHcN&rO0tCL*wF @,eROP.QnCLCLOPCL3oa4A6J7A8D@9j@:FFg;D<ACL>[y\?D@DAUzOPDIEEDFDُGNgc3lgd)lD ^~c Fv y@Y q q !CL CLCL`b  CL qJ  C Er tPHrCLCLCLCLCLG Hκ J$qJ 'I@ )vܹ *z$ +QN .rٚ1E^4}: 6L~8ge;y7LIhP/loXB ouw pafq]r^sCLtCLvCLwCLxCLyCL|OPCLCLId|H9H GnzLzL}eUF!}f%z-F ^ ^ Mr NDMOA4PDQXdpRN%SpPL TFPVg~8 XF YDd[ڵ#[\\(^dl_m9 `CaR{bS4cR34CLCLCLgmy CLCLCLCLmH7Dn}\o_{c CLCLCLCLCLCLCLwB\)xK>y0PH1OP{4iwx |6]}7n<~9]FƍA~# ~CCLEY |GCLJD)LG'MFaNFuPCLtQCLTo Uq Vi^ 5XHC6YE؛[CL\CL:^F;_F<`S ?aCUdCLeCLBg|= ChQDi| EkYFbGG@H~+ LD8RM_HNE޹OB ZPADPQEL5RCWTCUCXV]`CLCLY| ZB"CLCL]r1 ^ECLCLaFLCLCLdB)CLf]CLhCwiPCLkK% lH mH n]&fo^p^H qX{ rX sJrKtI,uF CLCLx@gvyQl~zM&yCLCL} JBU~ F ENBbkCL~CLA"HEZG&"J GeFI KcE!x$EV%O?'IU (L+oA-I.BV2P^\y`]M ^Iao^ bQdflfCLiEj~wkOPmCLnCLpCLqCLrCLsCLtCLwYIxQs4ycz_|_}_CLCLCLCLCLCLCL]CLCLCLMfCLDBCLCLv4 CLCLCLOP$HRw%Hez&LRCL*F-,m]rOP.Q7CLCLCLCL3o4A6H7A,8E9l:D3;D<@c3CL>W ?D@DA_66CLDGED'FDGN8riyp3$m= 'bX(~ *7 +y@Y ,qˈ -p !0CL 1CL2CL5] 8CL:q ;C= XFYD?[j\Y^ b_ n ` B8aNbQcT\CLCLCLgm CLCLCLCLm!G%n$}4o%_Ql 'CLQCLRCLSCLTCLUCLVCLwYAx[L{y\Q]OP{`j |b^}cov~e]hC=jFS,m} ~oCLqVq. |sCLwD,xFyFPi|Nu~CLtCLo{ p~ j/ 5Ho{6FCLCL:FR;E-<T=#?DGCLCLB~ CNkD}5` ET\)FWGEHu LDM@NUJ>OB!PAHQED;RCTDUD4iV_>CLCLY|oQ ZBwCLCL]r# ^F~CLCLaFCLCLdC CLf]CLhC:iPJCLkK lH= mHL n"]o#^kp%^aH q'Zff r(] s)Jut*Iu+D-CL.CLx0@Ry1Lmz3Ly5CL6CL}8J3~:F;ECL~?CLAA:DFEF5FB GB HB JGKFݱLB ME-OyhP@ SO?}He~K<-oAIBvLvyKM I o^ Qa9CLEe}OPCLCLCLCLCLCLCLYgO b6fADEzCLCLCLCLCLCLCL]CLCLCLMCLDBCLCL@CLCLCLOP$HM%Hi&J&GCL*FS,d6OP.QFCLCLCLCL3o4 A6 Ks37 Mff8 K9nLL:If;G0<FlCL>VT?D@DmADWECLDGEOEIDFJDWGKY;OtS3P{QrRm U_V~ X Yy@Y Zq [p !^CL _CL`CLba fCLhr# iBjEkr+ mO#nrUqCLrCLsCLtCLuCLxGv{yH(zL'~qt If vt z? Sn oE}: o Ry33vPc?O{ACLBCLCCLgFm CLCLCL CLm G<@n}o_'t CLCLCLCLCLCLCLwBxL#yP OP{#kUV |%^R<}&n~(]+C0-FA0} ~2CL4Uv |6CL9DE;EL5dF<gH`suiCLtjCLmo{ np/ oi 5qH6rF_`tCLuCL:wFi;xE5<yT?zEO}CL~CLB@CN4D}To E^34F[GVffH LH޹MENZ>OB%oPAWQEaRCBTDveUDoV``CLCLY|& ZCZCLCL]r1 ^G;CLCLaGgRCLCLdCL!CLf]CLhCBiU4RCLkKGr lI mHG n\o_p_Ǯ q[\ r]Ǯ sJvtIuEG!CLCLx@yRzL~CLCL}Jw~F^E-CFTCL~CL,B/D_0D_1B 2B 3B 4EG6DS7B 8Ct:x;@>P@IALDr FIGCyJLvLy%NM OIgP`w/ SSW`?E,b@DAX CLD BEEDFE.GWrx9ngn? b~c  O y@Y q3  p !#CL $CL%CL']K *CL,rz -Bɀ/FXs Z[r-;]CL^CL_CLaCLbCLeGfHgNVyjqes mI] ovh. qz$ rL uns3xF{}I |oK }z y7LvQo qUU `Y^CLCLCLCLCLCLCLCLCLI|H^AH^Gh33h33}eZWR}fmzt ^ ^ MrHZ NDkOCPDQY!RMSo TG*vViqc XF&YDF[1\Z^"cgy_#n `$APga&Q=qb'Qs4c(R+CL,CL-CLg/nz 1CL2CL3CL4CLm8Fn;}4o<_x >CL?CL@CLACLCCLDCLECLwHBxILpyJRKOP{Nk |Q^^d}RoK~T]WB;XFr[} ~CLVS |CLD E'FA1KuCLtCLoȴ px i 5H16FCLCL:F~;E0<SE?ECLCLB@nCPD} E^FbfgGL{H@KN L34MsNNqOB"PAjQETRD%TDUDV`=CLCLY|& ZCpCLCL]qJ ^GCLCLaG̶CLCLdBFCLf]CLhDiRf CLk K. l I = mHz n]ffo_<p`\) q[ r\ sJutIEuCCLCLxAy Pz"L2HLCLMCL}OJw~QGRESCUCL~VCLXB ZBE\B ]oK ^mYk _me `CaBFbmv cAezItf@ jP'TlIamLpr rJ0sE,OvLvxyyLfzI{d] ~S/X?0E@1EwA2Y4CLD6@uE8EpcF9E0G:W=r3>y<?pAn Da.E~) F~; Gy@Y Hqt Ip< !MCL NCLOCLy` |CL~r @=Eѕsrb @lrnCLCLCLCLCLG7HxNsqes I" vv z? S m3F} y# L+y7LvWCLXCLZCLg\n% ^CL_CL`CLaCLmdFnh}goi^ kCLlCLmCLnCLoCLpCLrCLwuCBxvKywQxOP{{k |]}o~]BGFp}R ~CLVb |CLDEF/MuCLtCLpe` p! i 5H6FCLCL:Fi;D0<Q?E@CLCLB@-SCM=D}t ElFAG^QH@ L N>M J>N _ffO B&*P A}QEBRD TE+FUE VZICLCLY{ ZCCLCL]q ^Gx"CL#CLa%H(CL)CLd+B+.CLf/]0CLh2DGi3S'6CLk9L! l:J{ m;J( n>]o?_pAYk qBUz rCX slJttmIAunCpCLqCLxsA+ytPTzuJxCLyCL}{I~}G~ECCL~CLC=EVEVl8 j kh @۶@kQ @JzJ@ P eI~Lr JPEZLvz M Id] S\Y-?]Eٞ@^EFA_ZaCLDb} EdEٞFeEȬGfXkjt3k{|lrVgmoQ ZN~y ~ y@Y qV p !CL CLCL\ CLr  O Ezs8 HrCLCLCLCLCLGWINEqV I vv zr L1s mF8} t OZ y7L vK  H I= Q n  qww  aP \3 ^ CL CL CL CL CL CL CL CL CL IƏ Hj  H !G $g 'g}eIY}f{rx ^ ^ M gr N iCO jD P kD,Q nYR oM S pn T rG*vV si X uF`Y vD[ w\ x]8^ {e _ }o ` ~@a NT{b P >c Q CL CL CLg m  CL CL CL CLm Fvn }o ^  CL CL CL CL CL CL CLw Ax I)y Q OP{ kwx | ^;} ni~ ] B FN }h ~ CL X  | CL D E FI) H)u CLt CL q6F  q J  jA 5 H6 G CL CL: FL; H`s< (P?? )EO +CL -CLB .@C /OD 1~- E 2p\F 3@{G 5lH 6@׫ L 7@QM 8u.N 9OO :B&*P ;AQ EvbU ?ENV @NL^ BCL CCLY E{H Z FCu ICL JCL] LqHF ^ NN-S PCL QCLa SGe VCL WCLd Y@ [CLf ]] ^CLh `Ci aQ' CLk L} l JB m JQ n ]ffo ` 1p \L q X\) r Z s Jbt Ju DK CL CLx AOy QНz M CL CL} I~ G2b E C CL~ CL C ixB  j>  EV B  B  ll  lR  B  j  z EV P e I_ L m JP FN= Lv zd M  I eb3  Q V CL Ep }y OP CL CL CL CL CL CL CL `&f X4 cVg M O O CL CL CL !CL "CL #CL $CL %] 'CL (CL )CL *N  TCL WD7( YCL ZCL \pӖ  ^CL _CL `CL aCL$ dK% eI& hI  jCL* mH , n`) pCL. sa uCL vCL wCL xCL3 zox4 |A6 Z7 Q`8 K99 ts': Bg; F`< @f CL> Y>? F,3@ Ez^A Z CLD n E F-F EG Xi vP } s pO  c  ~  ~'  yN  qHF  p ! CL  CL CL `q.  CL r  }R  FL s8  \= r CL CL CL CL CL G˧ I J[ qes  I  v  z[  !SB2  $sVf 'Fv *}  +v4  ,u  .y7L /vK  0HH 1I/j 3R# 6n  9q]  :`f <[3 =^ >CL ?CL @CL ACL CCL DCL ECL FCL GCL KIλ LHn MH NG P{ Q{}e l;}f |G ^ ^ M rez N CO CP E4Q YR MoS m T G9V i+ X FY D[ \ Z^ fw_ o* ` @zBa Nb P}qc P CL CL CLg n0  CL CL CL CLm FGn ~&go ^  CL CL CL CL CL CL CLw A8Rx J >y Pff OP{ k | ]B} n9~ ] Bb F= }~ ~ CL Yx | CL D- E' FI) Q u CLt CL r2-  r33  j 5 II@6 JG@ LCL MCL: OF!O; PFa< QP8? RE UCL VCLB X@QC YOuD Z~s E \J4F ]YffG ^JffH _A$8 L `B=qM av*N b` O cB,P dADQ eE\R fD_T gEU hE6V jBC3 kCL mCLY n{ Z oC rCL tCL] uqes ^ wS$ yCL zCLa }Ry CL CLd B CLf ] CLh D4Ki Q CLk L l I= m I n ]ffo `>p \z q W. r V s Jt J#u C7 CL CLx At@y N8z I  CL CL} I ~ GH! F C CL~ CL C ixB  ixB  EV EV EV ixB  ixB  EVi z8~EVPILnFJPF?"OW@$z%M 'Iw(eb3 +Q-U/CL2Em3{e4OP6CL7CL8CL9CL;CLY_ ?Fy^@EAPCLDj EF^!FEeGXzAw3q `~) ~Ü yN q+ p| !CL CLCL[; CLr xH E s  5 sBCLCLCLCLCL>G?I<@Lq%Cqes FIY Iv( Jzu KLĞ Nsc3QFYT~ Uy XP[y7L\vY ]H^I :`Ry-cn fr3 hac3iWPj^kCLlCLnCLoCLpCLqCLrCLsCLuCLIHo{HG{{}e W}f }?E ^ ^ Mrc NCOCPE:QZ#RMSoSATGs;Vi XFYD![ϵ\_V^e_o `APgaR:bQcPO\CLCLCLgn,  CL CL CLCLmFWn~S4o_

DD'hEL5iFyjFBulCLtmCLprH qs/ rjm 5tI"76uGowCLxCL:zET;{If_<|P?}EѕCLCLB@4COD~ E]FdGLHAo* LQ MM@NaOB/PAlQEfNRDo TFUE'V@CLCLY{= ZD%CLCL]q9 ^X7CLCLaWCLCLd@nCLf]CLhCiUACLkMi] lI=q mHR n\Lo_p]Q qX rY sJtJ. uBCLCLxAt@yR^zI6CLCL}Ik~GYZFCCL~CL0D2kh 3kQ 4B 6B 7B 8mYk 9kh :B ;nZ ={#@EVAPzCH6DK#HnrJJPKGNOW@P{QLRI.Sc VQXUfZCL^Ert_{`OPbCLcCLdCLeCLfCLhCLiCLdYcgs__bCLCLCLCLCLCLCL]CLCLCLN$CLD9CLCL{H CLCLCLCL$K%I9&PCL*L,`CL.PCLCLCLCL3ot4A6w7n8d9w:Jg;Jg<J6gCL> YA? F@ EA P CLDo۔ EF{.FEȬGXA;3E~r0 _8 @ !~ "yN #q $p^ !'CL (CL*CL,a /CL1sc 2xe 3C\sF ]|`tbCLcCLdCLeCLfCLiG_kI`lMoqt rGs3 twB u{/9 vT* ysS3}F' t4 GCs vh. H I(-RA^ lU a<T\^CLCLCLCLCLCLCLCLCLIHjHSGgHgH}e]X1}fp}2 ^ ^ Mr NC*OCPE2QZrRM^!SA$ZTGpVjc XF?Y$Dֺ[%\&\}^*a}_+p9 `-Ca.S8Rb/Vc0Qf2CL3CL5CLg7nc 9CL:CL;CLE`FvMuCLtCLs49 sm k 5I76GCLCL:F;O-|<P?F(CLCLB@;CN|sDE E^)FbGS{HAs LV4MQNf5OB4PAҩQEwRDmTFNUFdV@zZCLCLY{ ZDJCLCL]q ^VCLCLaVYCLCLdA CLf ] CLh DiOCLkM9 lJf mJ{ n\o`Spa q] r`\ sJgt J;u!B##CL$CLx&Ay'RPKzPJSCLTCL}VI ~XGoZFk[D$]CL~^CL`DQNbixB cn dEVfm gm hB iB jm<8 km[ mzspEVqP.CsHIuK&xo'zJP{H~Lv}KAIЍdM9 QTiCLEw{O!OPCLCLCLCLCLCLCLlg`it6gKROMHCLCLCLCLCLCLCL]CLCLCLNCLD;CLCLAOCLCLCLCL$K%IR&KCL*M ,_ιCL.!L#CL$CL%CL&CL3(oV4*A6-{7.|l8/u92y:4G;5Jy<6F38CL>;X`?OOx@CLDBof ECFRFDE GEXo$ICJFKAMs| Pc Q? R~ Sy]w |q }pmy !CL CLCL`q. CLtj. y Ct rCLCLCLCLCLGING| H wna {LS Lx r&fF7R>x0 w_ Fk NH I(-OE^O]6 cb" ac3U ^CLCLCLCLCLCLCLCLCLIHkHG5hh}eJF}f~ ^ ^ MIr NKC,OLCPMEQPZRQMaSSpPL TTGDVUj XWF.YXD9[Y\Z^^^b%__p8 `aC9abTbcVGcdQffCLhCLiCLgknL nCLoCLpCLqCLmtHanw~ oy`#B {CL|CL}CL~CLCLCLCLwC34xP >yYHOP{l |]}p6~]CkG,~' ~CL[x |CLDgmEbFJMuCLtCLsn tP ko 5IM6GCLCL:ET;N<Q?ECLCLB@ACQvD EY4FgGSHB! LSffM}NTOB9PAQERDl$T!F:U"FiV#@[&CL'CLY){= Z*Du,CL-CL]/qt ^1L3CL4CLa7M@9CL:CLd-X ?.G8 @/EϣA0K[2CLD4j> E6F.F7E5G8XtC?uB B_mD@9qE~ Fy]w Gq Ipmy !LCL MCLOCLQd TCLVu65 W} YCDZtx [Ld ]o|`CLaCLbCLcCLdCLGIDEKf`Xw {Z LlR n3FDYdzcz OkE PH9IUI,V i aVfRf^CLCLCLCLCLCLCLCLCLIHlHGҥMM}e[]}f~4X ^ ^ Ms NCOC3PE ;Q[NRMldSn TGVjh X G ?Y!D[$\%Y_J^(cr_)pG `+Ba-T\b.W>c/Q YCLZCL\CLg^n& `CLaCLbCLcCLmfGȬnj34ok`- mCLnCLoCLpCLqCLrCLtCLww@)xxLyyVzOP{}m |]p}m~^CxFxFv ~CL\m |CLD|;E`FJuCLtCLs u l& 5IfL6GCLCL:F7 ;M<Qa?EWCLCLB CPPD@EVFcǯGBHB| LR)MNENc&gOB>PB LQERDTFUFVG4CLCLY{/9 ZDQNCLCL] qˈ ^"K$CL%CLa(MV*CL+CLd-@;/CLf1^2CLh4C4i5Tp8CLk:Nw l,_CL.J|1!CL"CL#CLLCL3OoI^4QA6TC7U}fg8Vz49X|:ZH`;[KL<\F^CL>aXY?bGk@cEAdO'fCLDhq EjFFkETGlXnFoIqDrx u`v@ew~ xyl yq zpmy !~CL CLCL^ CLu6 z DQNv m Il CLCLCLCLCLGHBrdV|`=qw { M:T nfF/VMz BECL S HI)VLN b" alR33^CLCLCLCLCLCLCLCLCLJ  Ht!HƐ"GD%M\)M\}ep }f}| ^ ^ MDs NFCOGCPHEQK[`RLMSMn`* TOGVxjt XzGIY{Ef[<\]P^d_p9 `AܒaTbWǮcS)CLCLCLgnT CLCLCLCLmGLns4oa  CLCLCLCLCLCLCLw@)xLQyRaHOP{mUU |]_}o+~^C/FHZ)b ~CL[ |CLDEF O&uCLtCLr t l- 5I~6GMCLCL:E;HD<Q?EZ CL CLB r CM=D@.#EXBFiGOHB LWǮMS8RNhfgO@BFPAB#BQBERCDTDFUEG+VFQHCLICLYK{in ZLDJOCLPCL]Rrs ^SK\WVCLWCLaZL\CL]CLd_@gvbCLfc^dCLhfC4igN%jCLkmN- lnLQ moL nre3os`pu`\ qv[ rw\W sxK"tyJVuzBSCLCLxA yS~zHO CLCL}I{~GFSCCL~CLDEVEVB n n EVEVoK E{ey@ P eI~Lp3VJJOy@M Ibe Q S CLE{<OPCLCLCLCLCLCLCLtfavgvf _!og"_$CL%CL&CL(CL)CL*CL+CL,^-CL/CL0CL2NM4CL7D?M9CL:CLCL?CL@CLACL$lK%mI&pLsCL*uK,w_xCL.zJ,}CL~CLCLCL3oE4AH6K7C8@49}:K3;N)<ICL>Ya?G@EAQcCLDw4 EGFE\GXDfH3Cy< b%@K;~s yl pX p^ !CL CLCLe!4 CLt x Cu C9 h mCLCLCLCLCLGHxA^ߏ`33w3 {in N} rFW' z %  x 6C: 9R:Hb;I1=V;@V C^ DaFfEP6fF^GCLICLJCLKCLLCLMCLOCLPCLQCLTJ)UH}WHXG5[M =^M =}e[ r}f}> ^ ^ Ms\ NCIOCRPED;Q\4tRM Snn THVk XG'rYE)w[\Zx^b_p9 `A)waV^bU34cO+CLCLCLgo& CLCLCLCLmFn~o` CLCLCL CL CL CL CLw EǮx NǮy Y OP{ mUU | \>} pTa~ ^ B> F Fv ~ CL [ | CL #D %E &G  )H6u +CLt ,CL /rJ  0tI  1k1' 5 3I=6 5G 7CL `CL: bFR; cOP/< dQ? eEd hCL iCLB k O C lQzD m@gE o^F pgG qZLH rC) L sJGM tB޹N uXxRO wBJvP xB;Q yER zD|T {G-U |GuV }A, CL CLY {LS Z D4K CL CL] r1 ^ K CL CLa Lb CL CLd @ CLf ^ CLh Cμi XV CLk Oz! l R m L\ n e o ap a\ q Z = r Y s K.t JWu Ae CL CLx Ay Q:z I CL CL} Ik~ GC FI Ce CL~ CL D EV EV n  m  EV EV B  m  E { @  )PW +IB ,L 0p 2Km 5B  6OBo 7Ag 9L :I ;eb3  >Sf CL CL zu  CL CL CL CL$ K% Ip& IXi CL* K., _@> CL. Jw CL CL CL CL3 oO4 A6 P7 Ki8 I9 ~w: Hp; KI< F CL> Ymh? Gd@ F'A M CLD u E GLF FG Y? H Kə F {,  ] @K; ~s  yl  pX  pmy ! CL  CL CL ^  CL uD  x  C~ u  O,Q  d !CL "CL #CL $CL %CL (G )H +Ax TdR[ W] XwS  Y}R  ZP   ]o3 aF b]r ezF^  gL iBs3  lT6 mI nI& pVT sMx  vb"  w`&f xQ, y^ zCL |CL }CL ~CL CL CL CL CL CL J= H HI G M M}e a}f /| ^ ^ M sk N D EO CeP EV[Q \R MS nB T HV k+ X G-Y E:[ 㵰\ \,^ e_ p ` @!a Wb Yc S CL CL CLg o|  CL CL !CL "CLm %Fn (~o )a   +CL ,CL -CL /CL 0CL 1CL 2CLw 5Ax 6Oqy 7V{ 9OP{ ]-} ?n~ A^ DBu EF IFv ~ KCL MZTj | OCL RD SE UF  Pu CLt CL r  ths  kĜ 5 I6 H CL CL: F!O; O< R? E# CL CLB ~ C UȐD @(E `LF hG UQH Ci L Zs4M TRN iHO BSP BRsQ E~R D~T GOTU GV @l CL CLY {Z Z D; CL CL] rk ^ Ld CL CLa Mw CL CLd @ CLf ^ CLh Cμi U7 CLk O2 l K m K n eٚo a,p f( q a r bW s K9rt JZu AZ CL CLx Ay M3z N  CL CL} I~ G Fx C| CL~ CL D HixB  JixB  KEV LEV MA$Z Nj>  O]<  PEV QB S|  U@  XP'T ZI= [L ^r  `JP dB  eO fB? hM  iI jeb3  mQ oEʘ qCL tE u{o wCL xCL yCL zCL {CL |CL ~CL CL t6g r Dٚ P}q OxR MR CL CL CL CL CL CL CL ^ CL CL CL NK CL D: CL CL vK  CL CL CL CL$ L% I& QԮ CL* K, _ CL. IL CL CL CL CL3 o(4AH6U37M8F39:Ivf;Lg<HCL> Yn?!H@"FI?A#@Rb%CLD'i[ E)GF*F& G+YA.N`/R0L3| 4aA5@9q7~z 8yl 9p :pmy !=CL ?CL@CLBd( ECLGt Hz IDKu tO v`xCLyCLzCL{CL}CLG7HaABh-]]UUw { Q n0F]zr DSBY U5H"I8UV: b `\P^CLCLCLCLCLCLCLCLCLJOHWHκGMM}et_M}f }Z% ^ ^ Msj NDOBIPEQ \R M~8S n4a TH7Vk XG:mYEm[<#[\=[^@b2_Aqr `B@aEWbFW\)cGRICLJCLKCLgMo PCLQCLRCLSCLmVFJnYs4oZa \CL^CL_CL`CLaCLbCLcCLwfD8RxhWyiT=qjOP{mn |o] }pn\~r^vBwFr ~CLZq |CLD"EG FuCLtCLso u9X l9X 5I6HCLCL:F/;N<R;?E2CLCLB~OI CT?ZD@hEWfFgBGT HC3 LL+MDٚNYffOB[)PBf QERDTGn+UHkV@FCLCLY{ ZDnQ CL CL]r ^LCLCLaN CLCLd@CLf^ CLh"Cμi#N&CLk(P> l)LQ m+L n-do/axp1d q2^3 r3` s4KGt5J]cu6CI8CL9CLx;A"y~mGnFxoCqCL~rCLtE#wixB xixB yEVzEV{EV|ixB ~ixB EVk {EVPzI@K<-s"JPoK QALId] QEʘCLEzKCLCLCLCLCLCLCLCLslgvf_qbCLCLCLCLCLCLCL^CLCLCLN-SCLD-4CLCLr CLCLCLCL$K١%IƢ&LRCL*K,`[1CL.3I6CL7CL8CL9CL3;oP4=AH6@R<7AF8BE9E@h:GHFf;HK<IFfJCL>MY?NH>@OFHWARFv UCLDVmm EXGFYE GZY{ ]H^Jٙ_F<b~й cbXe@0f~l^ gyl hp- ipmy !CL CLCLaL CLt {Z CuZ T& ]?CLCLCLCLCLGHASj],`w {/ R nlF(_cTy x BT{ V8H>I9UQm `" `P^CLCLCLCLCLCLCL CL CL JeHHG=MM}eb}f} ^ ^ M2s2 N\DO^B]P_EQb]1URcMYSd|j TeHjVfka XiGMfYjE[k\l]^ob"_pq9 `q@atV8RbuYcvRxCLyCLzCLg|o ~CLCLCLCLmF}=n~oa CLCLCLCLCLCLCLwMuxVGy`OP{nUU |[ɧ}o_~^BFn~OI ~CL\ |CLDTFGyLuCLtCLr u^6 l\ 5IF6H9CLCL:Fq;L0<RS?EGCLCLB~# CPzcD@cE%cF&mG'YGH(D L)WM*R4N+gxRO,B`P-BrdQ.EѕR0DT1GU2HfV3@5CL6CLY8z Z9D_;CLr ^@L lBCLCCLaFMbkHCLICLdKB8PNCLfO^PCLhRD4KiSXVCLkYPbA lZLQ m[JǮ n^dfo_aupe\ q^f r_=q sKLtJauAxCLCLxAqySzHCLCL}Iw~GTF1CCL~CLE#B B EVEVEVB B EVB} EVPWI~KrJkB QJYALIj`w/ QEʘCLEzKCLCLCLCLCLCLCLCLt6g lg D6f _ q bCLCLCLCLCLCLCL^CLCLCLN5CL!D#?"CL#CL%}; PCLQCLRCLSCL$VK%WI&ZHRy\CL*_L,`_PbCL.dIgCLhCLiCLjCL3lo#4nAH6qS7rN8sJ9v@:wI\;xKf<yGy{CL>~Y?HR@F.AGCLDs EGFE۵GYG 3IlEg~ \g@K;~] yl p- pmy !CL CLCL`S CLu xH Cvh. eUZXCLCLCLCLCLGߗHA?;l*],`@~; T; r#3GtY{ TsoB. "V=#I $IIw%TK(S +^ ,_-L/^0CL1CL2CL3CL5CL6CL7CL8CL9CL=J3>Hv?I<@HCLFL}e}o}f}9e ^ ^ Mt( NDOCPEvQ]RRMzS@uTH4Vl XGmYE[A\Yx^d[_r `B>aXpbZLcT CLCLCLgp CLCLCLCLmG=(n~gob/ CLCLCLCLCLCLCLwLxTykOP{o |[}k~^BF~' ~CL\& |CL D F d G+4KguCLtCLrr t l 5Iq6H_)ECLFCL:GF;II˔<JR~?KEzMCLOCLBP~ CQPDSA"@ETa{FVigGWUHXDfr LYY!HMZSHN[hW O\BjhP]BQ^EHR_ET`GUaH)Vb@!dCLeCLYgz ZhDQNkCLlCL]nr ^pKΌrCLsCLawLڠyCLzCLd|@nCLf^CLhDiWCLkP lLR mK=q ncobpfk q_\ r^u sKRtJjuAtCLCLxAqyQzGCLCL}I~GFFCClCL~CLE9[B n EVEVA:B ixB EVE |  @ P_I8K:[sIЍB QlAפ L!I^!"`w/ %SOxR?MRACLBCLCCLDCLECLFCLGCL^CLCL CL NJ4 CLDCLCL@CLCLCLCL$K#%I:& RQ;"CL*%LF,&^F(CL.*Ge-CL.CL/CL0CL33o45AH67Qg78O89F9dA/:fG3;gJ<hG3jCL>mY?mHo!@nFBAoFvqCLDsm EuGyFvEGwY{F^f|H[3}DT ay@4~] yz p p| !CL CLCLe CLuZ y1 DVwB X* WCLCLCLCLCLG_HAmnGa],`y]w } UDY mfFЂ`z[ DA W_IZ>U?H@FHWAU CLDh(# EGFEGZRnO QfMٙ@Aa8@д~OI yz p p !CL CLCL]w CLvCLCLCLCLCLGHAJo]/y  },l  V/P  m0GkaOz[ CaA WIHI{Q#P NZ7w O]3PKyQ^RCLSCLUCLVCLWCLXCLZCL[CL\CL_Jd`HaH1cH(fLiL}ebz}f|k ^ ^ Ms NDOBNPEFQ^HRMfSph TIlVmU XGYF[\Yϥ^c_s `C$aXQbZ cTCLCLCLgqQk CLCLCLCLmHn~oc+ CLCLCLCLCLCLCLwM(xUaHyefgOP{q |[}o~^!C"GQ%7 ~'CL*^ |,CL/EJ0F?1GX5P͊u7CLt8CL:sw ;u^ ZB?H@FFAACLDlo EGFEGZeOY S1 M3@]\@~@ yz p p< !CL CLCLe!4 CL!vW "y $D;%w| &Y5 (S+*CL+CL,CL.CL/CL2H`3H4Ar5pw8],`9xo ;| }Jl~L^PC֯QGHT} ~VCLX\b |ZCL]Et9_F*`GCcHNueCLtfCLisy jvc km5@ 5mJ$6nHkCLCL:F;N<S?DQNCLCLB| CRDAE`\*FkGZzHEB LXMSNhOB{PBQEFRE,OTH$UI5V@^CLCLYz ZDCLCL]r ^LCLCLaMޠCLCLd: CLf^CLhDnQiXF CLk QU l P# m NaH n dLo cp j. q d\ r b s Klgt Juu A CL CLx Ay T%z G4 CL CL} IZ~ !H+ "F #C4/ %CL~ &CL (EV[ +B  ,B  -@; .EV /EV 0B  1B  2EV 3B 6}  aEV bPW dI~ eK4 htX jIo mnB  nRT oEL qK8 rIa s`w/  vS )Zb? *HІ@ +FI?A ,E .CLD /r E 1GF 2E$G 3Zw  7Ff 8JD 9Eg Krt ?Jwu @A BCL CCLx EAy FSgz GH$ JCL KCL} MIp~ OH7 PF QCd SCL~ TCL VE ixB  ixB  Al @ F5 ixB  \o  A B }  EV PM I"7 K<- u? J"Q l  SX EL L Ir o^  S YZC? ZH@ [F`A ^| z  `CLD bhJ E dGF eEG fZ jMf kPa lL3 oAJ qa r@h s~24  tyz  up-  vp< ! yCL  zCL |CL ~a  CL u ~  w  C: vHE LYMSNh@OFRR?EJT@HkfUAIVB@+DCLECLYGz)B ZHDXKCLLCL]Nr ^PLTRCLSCLaVM-XCLYCLd[ O ^CLf_^`CLhbDicUfCLkiR}i ljLaH mkJ nndooclpqm( qshQ rti suKtvJuwAZCLCLxA/yQzGgRCLCL}Ib~HQF*CLCL~CLEixB ixB BBrdFixB \ Brdk } EVP52ILvIAkK LvELLIso^ SK{%?I&jI'mCL*oLF,pQ2rCL.tAwCLxCLyCLzCL3}o4~AH6Rf7L38Fl9B:L;Ol<JCL>W!?I @Fd|Av CLDgX EGLFEmGWRfNJfA!]-@e~# yz pӖ p !CL CLCLeT CLu ~ y C.u T NCLCLCLCLCLHHA~kq],`w {w X: o3FO_dy]w Jt1A= 4V_5Ie7I%8M;V >aD ?^f@KA^CCLDCLECLFCLGCLHCLJCLKCLLCLOK()PHRHκSH&VLWL}ec}fB^ ^ Msz ND%OAQKPEi4Q_{RMfSn TH!Vk9 XGYF`[\^P^cO_pr `AaX4bY8RcT\CLCLCLgq CLCLCLCLmG|n~po`- CLCLCLCLCLCLCLwMxZkykW OP{mDD |]aA}mb~ ^ CM GoA~OI ~CLYM |CLEyEHGU6 Lu"CLt#CL%{iy &wz 'mM 5*JO6+H -CL.CL:0E;1G2<2T`?3DB^CL_CLBa| z CbV,}DcAEe^)FfpQGgU)HhF  LiXpMjS8RNkghOlBPmBQnFRoEdTpHGUqIaVt@wCLxCLYzy Z{DQN~CLCL]r ^MCLCLaO9CLCLd~l^ CLf^CLhD|iPCLkRw lM3 mJ( neod.po qi=q re sKXtJuACLCLxAyM zGQCLCL}IE~HeFCY1CL~CLF ixB ixB B8PA"AixB ixB A"j> } EVPXj?I@FcAx CLDj> EGFEGXɨC^fEB!A1bX@~ y# pӖ p !CL CL CL ^y CLu xe D;u R+ MCLCLCLCLCL!H H"H#AC%qwP],`QwQ? R{LS SYeJ VrYFZ]n^x _x# bB eU'fI.gIhMlPW ocUU paiqO6fr^sCLtCLvCLwCLxCLyCLzCL|CL}CLK>HoHDH%!LL}eeh}f%C ^ ^ Msk ND'8O@cPEaQ_RMSn$ TGVj% XGYFk[ݴ\Yg^ds_pG `@ۘaZb`cXCLCLCLgrb CLCLCLCLmFϙn# o$`8= &CL'CL(CL)CL*CL+CL-CLw0Tfx1Xpy2efg3OP{6m |8^ }9n}~<^?Bv@GsC~z ~ECLGY{ |JCLMEwNEAOGRLIGu|CLt~CL|V vS m! 5J\z6HMCLCL:EV;OP/<TmV?EV[CLCLB|C CUh DB!EYW FozGR)HF?7 LXaHMSGNgOBPBQF1REmTHUI!V CLCLYy ZDCLCL]s T ^M1CLCLaOCLCLd~ CLf^CLhDSiVCLkR lKf mJ nc3odnpn. qlq rf sKtJuA|CLCLx A:y Rz G4CLCL}I~HxGBjCL~CLF7 Em Flo GEVHEVIC:Jn}[ KixB LEVMBO|tREVTP'TVI~WKAZv\I_kK `QaHeacK:[dIgo^ hSYK?I@FedA@3$CLD!o E#GKF$EgG%Y)D3*F3+C$.A/a(1@w2~ 3yz 4pӖ 5p !8CL 9CL:CL=gd @CLBt4 Cwt DC~Eu ~ FX#L)#CL# CL# CL# CL# CL#H#H#AX#qO#],`#xWc #{ #Yڪ #rS3# Fa#!\(_#$yN #%wna #(B = #+Vi#,It#-I #/L(#2Y #5Ww #6^#7JVf#8^#9CL#;CL#dCL#eCL#fCL#gCL#iCL#jCL#kCL#nKf#oH}#pHض#rH+z#uL#xL}eFhP}fC^ ^ M#sz N#D(O#@tP#E?(Q#_bR#MS#n}[ T#GV#jǫ X#GY#F[#˵1\#`N9^#f_#pUV `#@ua#Xb#Z&fc#S{#CL#CL#CLg#s1 #CL#CL#CL#CLm#Fn#~o#`M9 #CL#CL#CL#CL#CL#CL#CLw#Ox#[#y#\H#OP{#m |#^v}#nE~#^#-BV#.GD#1~OI ~#3CL#5Y |#8CL#;E##Z?#I;@#FvA#}: #CLD#p E#G3F#E>G#ZL#D#GNf#C^f#A#^<#@e# } #!y# #"pӖ ##p !#&CL #'CL#(CL#+` #.CL#0u #1x #2C:#3uS[ #5w#7KH#9CL#:CL#;CL#ixB #@\5 #AEV#Bl> #D|t#E@ #HP'T#JIy^#KL#N} 8#xI#{m #|Lv#}I}#L#IK#o^ #Q#BM#CL#E#~n#CL#CL#CL#CL#CL#CL#CL#CL#}#t#C{3#M}q#MR#NR#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N<|#CL#D/#CL#CL#y] #CL#CL#CL#CL$#K%#I&#L"#CL*#L{,#B#CL.#@#CL#CL#CL#CL3#oP4#AH6#E7#D,8#@Y9#DL:# O;# P<# K# CL>#Yi?#IVe@#FA#} #CLD#Akh E#CGyF#DE\G#EX#HD6f#JF#KB#NA#Ob#P@h#Q}~ #Ry# #SpӖ #Up !#XCL #YCL#ZCL#\bs #_CL#au #bx #dDJ#evW #fk#gJ#jCL#kCL#lCL#nCL#oCL#rG#sH#tA#uqXT#x],`#yyN #{}T #Z #r#F.#Z #z #x #Af #Vy#I#J#J#V3 #[3 #_#K3#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#KƂ#H#H6#HH}#L#L}e#fs }f#wB'^ ^ M#s N# D'O#!@P#"EqQ#%_jR#&MS#'U T#(H>V#)kr X#,G+Y#-F[#.6\#/]^#2c*P_#3q9 `#4A<a#7WǮb#8Xc#9R#;CL##OP{#m |#]q}#p~#^#B#GUN#~@ ~#CL#YM |#CL#E"#FC#Gt[#Gv=u#CLt#CL#y. #u8 #mm 5#J6#Hx#CL#CL:#E;#M'<#U;?#Bɀ#CL#CLB#{ C#MD#BvE#cǯF#sG#^H#FO L#Q M#JN#_W O#EP#F Q#|} R#~] T#ICU#J~`V#A,#CL#CLY#z Z#Cμ#CL#CL]#r ^#K#CL# CLa#4Lj#6CL#7CLd#9 #;CLf#=^#>CLh#@EOi#ATq#DCLk#FT!x l#HL{ m#IJ\) n#Ld3o#Me&.p#Oq# q#Ph r#QhǮ s#RK^t#SJu#TAt@#VCL#WCLx#YA2y#ZQzz#[Gu#^CL#_CL}#aI ~#cH#dG\#eB #gCL~#hCL#jEl#mixB #nixB #oEV#EV#EV#ixB #ixB #EV#kww #} #EV#P'T#HI#L#} 8#I#lR #Lv#I#L#I?C#o^ #Q#BM#CL#E#{z#CL#CL#CL#CL#CL#CL#CL#CL#vf#v #B9#p#x#qH#CL#CL#CL# CL# CL# CL# CL# ^# CL# CL# CL# N8# CL# D6A# CL# CL# y{ # CL# CL# CL# CL$# K%# I&# PI# "CL*# $L*,# %_# 'CL.# )G;# ,CL# -CL# .CL# /CL3# 1n4# 3AH6# 6G6g7# 7@48# `r`9# cD\:# eJFf;# fL<# gG3# hCL># kX4:?# lIf@# mFA# p}~ # sCLD# tmv E# vGF# wEG# xX6b# |B|# }E3# ~A# @g# a# @# } # y# # pӖ # ph !# CL # CL# CL# cjS # CL# uS[ # x # Cp# u6 # # I# CL# CL# CL# CL# CL# G# H# A# q6# ],`# x # {a # [ # nY# F# Y -# x # wB # AR # U# IƢ# J%# I # S5 # b"" # `f# Nf# ^# CL# CL# CL# CL# CL# CL# CL# (CL# )CL# ,K# -H# .H# 0HP# 3L# 4L}e# v\}f#Aq^ ^ M# Os N# QD%O# R@ǪP# SEgQ# V_R# WMS# Y@bT# ZH V# [k= X# ]G!Y# ^G[# _M\# `Yg^# e_# p `# B!a# [{b# Yc# T# CL# CL# CLg# r^ # CL# CL# CL# CLm# Gn# Yo# ` # CL# CL# CL# CL# CL# CL# CLw# KLx# Tky# Z # OP{# m |# \ݭ}# qt~# ^# Cx# G#  O ~# CL# U |# CL# E"# E3# G6# Nku# CLt# CL# | # ua # m( 5# JK6# H# CL# CL:# E*;# I'<# U?# C4# CL# CLB# {in C# U|D# B8E# a34F# i\*G# P{H# G L# X4M# SHN# hO# !FkP# "FQ# %vv R# &v T# (I_U# )J8V# *Ar# TCL# UCLY# Wz Z# XDJ# ZCL# [CL]# ]rN ^# _L# aCL# bCLa# eN;# gCL# hCLd# jc # mCLf# n^# oCLh# qE]i# rS5i# uCLk# xTm l# yI m# zH n# }c3o# ~etp# s q# mf r# n8R s# Kt# Ju# A# CL# CLx# At@y# Oz# GJY# CL# CL}# H~# Hm# G# Bg# CL~# CL# El# ixB # ixB # EV# EV# B # i& # \^ # EV# B# |t# EV# P'T# I~# L# } 8# I# k # Lv# J@# L# ID# o^ # SCL# AD/# BCL# CCL# Ex # HCL# ICL# JCL# KCL$# NL!%# OIF&# QK# TCL*# WL&,# \# CL.# Oqa# CL# CL# CL# CL3# o4# AH6# GS37# C8# |f9# D/:# LI;# K <# J # CL># Xk?# Ir@# FA# vY # CLD# j E# GJF# EG# Xe# @h# C# @A# A# ^# @]# }h # y# # p # p !# CL # CL# CL# `' # CL# uD # z % # C{# ua # G# I # CL# CL# CL# CL# CL# Gg# H:# @# p# ],`# x # {a # [f # o# F# W7A# y1 # w4 # A # Uqv# I# J# I&# IQ_ # La # NaFf# OO3# P^# QCL# RCL# SCL# UCL# VCL# WCL# XCL# YCL# ZCL# ^Lp# _H# `I2# aHC# eL# hL}e# [} }f# CO^ ^ M# t N# D%O# @ʅP# EwQ# _R# MS# @T# H7V# kd X# GY# G2:[# ?\# Z^# e_# p `# Ca# X\b# [xRc# S># CL# CL# CLg# r # CL# CL# CL# CLm# HGn# c4o# `( # CL# CL# CL# CL# CL# CL# CLw# Px# R\y#`#OP{#m |#\\}#nJ_~#^#C#G#!w ~##CL#%]L |#'CL#+E#,F#-GK#0H`u#2CLt#3CL#6}) #7vZ #8ml 5#:J6#;H{F#=CL#>CL:#@E9[;#AI<#BV3?#CDnQ#FCL#GCLB#I{w C#JUD#KB)E#urF#v} >G#wbH#xG[+ L#yPO\M#{HN#|^O#}FLP#~FQ#u R#vI T#IU#JV#@v#CL#CLY#z Z#D#CL#CL]#r@3 ^#M#CL#CLa#O1#CL#CLd#: #CLf#^#CLh#Eli#P#CLk#Tc l#K\) m#I n#d@o#fp#l q#h3 r#g s#Kdt#Ju#B #CL#CLx#Ay#LNz#GJY#CL#CL}#H~#I#G&#C.a#CL~#CL#E#ixB #ixB #EV#EV#BF#ixB #\o #EV#k #} #@ # P.C# Inx# L#} 8#I#=l8 #>Q#?H8#AL#BIHW#Eo^ #FQ#GEʘ#ICL#LE#N~!#PCL#QCL#RCL#SCL#TCL#UCL#VCL#WCL#Zvg#\t6g#]C{3#^}#_GR#`@xR#bCL#cCL#dCL#eCL#fCL#hCL#iCL#j^#kCL#lCL#mCL#oN; #qCL#sD#?#uCL#vCL#sF #CL#CL#CL#CL$#K%#J&#O#CL*#L ,#H#CL.#@4#CL#CL#CL#CL3#nB4#AH6#O)7#J8#Hf9#D:#Lg;#L6g<#J\#CL>#X?#IL@#FWA#q #CLD#i E#GF#E\G#YJ# B# H!# A#@#b#@n#}h #y# #p #ph !#CL #CL#CL#fE # CL#"u6 ##xt #$D#&u #(E#)Hb#+CL#,CL#-CL#.CL#0CL#3H#4H#5@#6pAJ#9],`#:x #;|5! #=[ #hq #kG[#lX#oy1 #pw #sB #vU#wI#yJQ#zH#}V #`{ #^3#JVf#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#L#H]X#H#HC#L#L}e#(@}f#6CG^ ^ M#t0 N#D(O#@P#EV[Q#_'R#MS#p T#H)V#kH X#G]Y#Gu[#M\#\ ^#c>_#q* `#Da#X+b#[4c#W#CL#CL#CLg#sc #CL#CL#CL#CLm#0H|.n#34o#5` #7CL#8CL#9CL#:CL#;CL##+Yk?#,I@#-F&A#.@#0CLD#2kK E#4GuF#5EG#6Y#:EL#;J@#[#Hn#L#L}e#We}f#iC^ ^ M#t N#D/O#@P#EQ#_'R#MS#o T#HV#ls X#GY#G[#\# Y^##c_#$rUU `#'Ba#PZLb#QXxRc#RS#TCL#UCL#VCLg#YrR #[CL#\CL#]CL#^CLm#aGn#d~Po#fb #hCL#iCL#jCL#kCL#lCL#mCL#nCLw#qN x#sWzy#tcz#uOP{#xo33 |#z\}#{o~#}^#Cx#G#| ~#CL#[5 |#CL#Es#F#G#NWu#CLt#CL#z D #w #nw 5#J6#HC#CL#CL:#EZ;#O<#VG?#EsZ#CL#CLB#{/ C#SD#BE#h{F#w{G#huH#G L#YM#SN#h@O#FLP#F"Q#wB R#xe T#IlU#K@XV#AE #CL#CLY#{/9 Z#D̘#CL#CL]#s8 ^#N#!CL#"CLa#%O*#'CL#(CLd#*@#-CLf#.^#/CLh#1Ei#2X7#5CLk#8T+ l#9K{ m#:I n#=do#>f}p#@p q#Ah r#Bg s#CKt#DJbu#EB#GCL#HCLx#JA/y#KUBz#LG#OCL#PCL}#RHU~#|IH#}HQ#C*#CL~#CL#E#ixB #ixB #Cμ#CZ#F#ixB #[ #Ci(#jZ #} #EV#P#I#K3#} 8#I#n`* #Ku#H8#L#I9#o^ #Q#B8#CL#E#~#CL#CL#CL#CL#CL#CL#CL#CL#C#vf#I3#}#GR#@xR#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#NJ#CL#D1#CL#CL#{ #CL# CL# CL# CL$# K'%#I&#L/#CL*#L,#^q@#CL.#DN#FCL#GCL#HCL#ICL3#LoI4#NAH6#PTL7#QKVf8#RI9#UD:#WM;#XPL<#YL3#[CL>#^W1?#_I@#`FA#aA z#cCLD#ek E#gGuF#hEG#iW#mG#nLT#oE!#r@hF#s^#tA#u} #wy #xp- #yp !#|CL #}CL#~CL#e[ #CL#v #y #D#w #Y #Gg#CL#CL#CL#CL#CL#H#I@#@#p #]/#{ #~' #\B #m)#G66#a#zcz #x #Aff #V7#J/#JyL#GI#X #_b" # `,#Mp#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#L#HN#I # HqL##L#%L}e#d3a}f#B)^ ^ M#Ftq N'xD4O'x@P'xEeQ'x` 1R'x MS'x o,| T'x HeV'xl X'xGY'xG['x\'x\^'xe_'xqU `'xB$a'xWb'xXc'xR'x CL'x"CL'x#CLg'x%sD 'x'CL'x(CL'x)CL'x+CLm'x.Gn'x1~S4o'x2cӅ 'x4CL'x5CL'x6CL'x7CL'x9CL'x:CL'x;CLw'xfTx'xgW\y'xha'xiOP{'xln |'xn\aA}'xppv~'xr^'xuCp$'xvG'xy}R ~'x{CL'x~]>? |'xCL'xF'xF'xG/'xIu'xCLt'xCL'xw| 'xup 'xnĜ 5'xJܪ6'xHZ'xCL'xCL:'xE;'xMܪ<'xVG?'xEV['xCL'xCLB'x{Z C'xRmD'xCoE'xapF'xvG'x[pH'xH y L'x]RM'xWqN'xkO'xFP'xFQ'xoK R'xo۔ T'xJ3U'xKk+V'xB'xCL'xCLY'x{= Z'xD'xCL'xCL]'xs ^'xM<'xCL'xCLa'xN$'xCL'xCLd'x@'xCLf'x^'xCLh'xEWi'xW'xCLk'x,U0 l'x.N m'x/O8R n'x2eo'x3g ap'x5q q'x6jB r'x7iR s'x8K١t'x9Jcu'x:B'x'x\k> 'x^} 'x_@ 'xbPe'xdI~'xeL'x} 8'xJ='xB 'xLv'xH8'xL'xI=s'xo^ 'xS'x)X"C?'x*I@'x+F&A'x,Cho'x.CLD'xXo7 E'xZGF'x[E%G'x\X"'x_E'x`I'xaD'xd@G'xebM-S'x?o; T'x@HV'xAl X'xDG~Y'xEH['xF2\'xGZ^'xJbV_'xKs9 `'xNA8a'xOYb'xPZLc'xQU'xSCL'xTCL'xUCLg'xXr 'xZCL'x[CL'xCL'xCLm'xG8n'x~fgo'xeF 'xCL'xCL'xCL'xCL'xCL'xCL'xCLw'xN>x'xXy'xiz'xOP{'xo |'xZ$}'xlE]~'x^'xCFA'xGPB'x} ~'xCL'x^q7 |'xCL'xF- 'xF'xGT'xQu'xCLt'xCL'xuu 'xv( 'xnbN 5'xJ 6'xHs'xCL'xCL:'xFL;'xK<'xVf?'xD'xCL'xCLB'x{ C'xPD'xCME'xaF'xsaHG'xYH'xH2 L'x] M'xW=qN'xlT{O'xG-aP'xG_[Q'x of R'x p T'xJdU'xKV'xB'xCL'xCLY'x{a Z'xD'xCL'xCL]'xt[ ^'xL'x CL'x!CLa'xLM'xNCL'xOCLd'xQAW3'xTCLf'xU^'xVCLh'xXEi'xYW.'x\CLk'x_Uv l'x`O m'xaN33 n'xdeffo'xegtp'xgr\ q'xhj r'xihR s'xjKwt'xlJdu'xmB'xoCL'xpCLx'xrAy'xsRz'xtH 'xwCL'xxCL}'xzH~'x|I'x}H{'x~BR'xCL~'xCL'xF'xEV'xEV'xA^v'x@='x@'xEV'xEV'x@'xE'x} 'xB3'xP'T'xH\'xL'x} 8'xJ%'xB 'xT'Q'xH8'xM 'xIJ('xo^ 'xS'x&CL'x)C'x+CL'x,CL'x.^ 'x0CL'x1CL'x2CL'x3CL$'x6Lu%'x7I&'x:L.'x=CL*'x@L(,'xAFE'xCCL.'xEBk!'xGCL'xHCL'xICL'xKCL3'xMn54'xOAH6'xzQ7'x{J8'x|EL9'xE<:'xK3;'xM<'xG'xCL>'xZ?'xIT@'xFA'xHzx'xCLD'xx# E'xG3F'xE<G'x['xL4'xQ3'xL3'x@h'x_0'xA'x} 'xy@ 'xq 'xpX !'xCL 'xCL'xCL'xb 'xCL'xyN 'x|} 'xEѕ'xzT 'xVi 'xFR'xCL'xCL'xCL'xCL'xCL'xH 'xI8'x@ 'xqH'x]33'x~@ 'x@'x\O 'xr#3'xGk'x]#Q'x{/ 'xz7 'xAq 'xV'xJic'xJ'xFE'x U9 'xc 'xa`'xO 'x^'xCL'xCL'xCL'xCL'x@CL'xACL'xBCL'xCCL'xDCL'xHLP'xIHt'xJIN'xKH'xNL'xQL}e'xfܛ}f'x~g ^ ^ M'xnt N'xpD;0O'xqA4P'xsEQ'xv`OR'xwMS'xxn T'xyI'V'xzn X'xH @Y'xH33['x|\'xYr^'xeF_'xt9 `'xAa'x[ b'x^c'xT'xCL'xCL'xCLg'xsk 'xCL'xCL'xCL'xCLm'xFn'xo'xf  'xCL'xCL'xCL'xCL'xCL'xCL'xCLw'xPx'xYffy'xf 'xOP{'xqk |'x[}'xld~'x^'xCx'xGW'x q ~'x CL'x_ |'xCL'xFGS'xGC'xG'xHu'xCLt'xCL'xs 'x v 'x!n 5'x#K 6'x$H'x&CL'x'CL:'x)Fq;'x*H<'x+V~?'x,D'x/CL'x0CLB'x2z C'x3ND'x4C8;E'x6X)F'x7tG'x8`=qH'x9Hs L'x:\uM'x;VN'xCL'x?CL'xACL'xBCL'xCCL'xECL'xHBi'xIt6g'xJC{3'xLb'xMq'xNq'xQCL'xRCL'xTCL'xUCL'xWCL'xXCL'xYCL'x[^'x\CL'x^CL'x_CL'xaN9'xbCL'xeC'xgCL'xhCL'xj~24 'xmCL'xnCL'xCL'xCL$'xL'%'xJ<&'xIĚ'xCL*'xLg,'xH7'xCL.'xC.'xCL'xCL'xCL'xCL3'xo+4'xA6'xS7'xK8'xBg9'xEd:'xLf;'xQ&f<'xK3'xCL>'xZo?'xI:@'xF٢A'xG'xCLD'x~ E'xG{F'xF0G'xZ'xMy'xQ3'x L'x A)'x _'x Bj'x } 'x y 'x q+ 'x q+ !'x CL 'x CL'x CL'x f 'x CL'x z7 'x } 'x E'x { 'x h'x EZ'x CL'x CL'x "CL'x #CL'x $CL'x 'H!'x (IS<'x )@'x *q]L'x -]33'x /@gv'x 0Aq'x 1] 'x 4n3'x 7G'x `^4'x c}T 'x d{H 'x gA}q 'x kVg'x lN$'x mJ'x nE'x qUrN 'x t^ 'x u_0'x vL'x w^'x yCL'x zCL'x {CL'x |CL'x }CL'x CL'x CL'x CL'x CL'x M'x H'x Ih'x H'x L'x L}e'x m}f'x}n ^ ^ M'x t` N'x D@.O'x AP'x EHQ'x `SR'x MS'x nn T'x JAV'x o  X'x HY'x H['x 䳗U\'x Y^'x cV}_'x uq `'x @!a'x X)b'x [ c'x S'x CL'x CL'x CLg'x r 'x CL'x CL'x CL'x CLm'x Fn'x )~@o'x *g 'x ,CL'x -CL'x .CL'x /CL'x 1CL'x 2CL'x 3CLw'x 6NRx'x 7Vy'x 8f'x 9OP{'x ;r |'x <[U}'x =m~'x ?^'x BB'x CG;Y'x Gu} ~'x ICL'x K[ |'x MCL'x PFV'x RGoJ'x SGo'x VO4mu'x XCLt'x YCL'x \qgm 'x ]up 'x ^mx 5'x `K 6'x aH'x cCL'x CL:'x G;'x Mi<'x V?'x C'x CL'x CLB'x zcz C'x QD'x CW(E'x [F'x zG'x ckH'x H_ L'x ]&fM'x VN'x k{O'x G P'x HQ'x p| R'x q T'x J¨U'x K؋V'x C'x CL'x CLY'x } Z'x DnQ'x CL'x CL]'x tU ^'x L'x CL'x CLa'x Mn'x CL'x CLd'x BE'x CLf'x ^'x CLh'x Fi'x UyH'x CLk'x V+( l'x K m'x I n'x do'x h(3p'x oaH q'x h33 r'x haH s'x L't'x Jeu'x B'x CL'x CLx'x @gvy'x O.z'x Hd'x CL'x CL}'x H]~'x I'x Hܲ'x B'x CL~'x CL'x E'x !A'x "@='x #BF'x $A'x %A"'x &A"'x 'A$Z'x (A:'x )@'x +}'x U@{'x XPC'x ZI'x [M 'x ^v'x `I٢'x cB 'x dP*'x eI'x gLn'x hI8'x ko^ 'x lS'x !Z]2?'x "J @'x #G A'x $CT'x &CLD'x (@E'x )HTF'x *FxG'x +Zm'x /} 4'x 1A8'x 2zf'x 5GQ'x 6`̬'x 8BU'x 9h 'x :a 'x ;C'x =G:!'x @CL 'x ACL'x BCL'x D_ 'x GCL'x J{ 'x Ku65 'x LAҩ'x M|j 'x NX 'x OE2'x SCL'x TCL'x UCL'x VCL'x WCL'x H 'x IA'x A'x qg'x ]33'x ' 'x n 'x ]Y@ 'x o#3'x GM'x bW'x |j 'x {in 'x A\) 'x VV4'x hb 'x Ip'x EsZ'x Q$ 'x a* 'x _'x L3'x ^'x CL'x CL'x CL'x CL'x CL'x CL'x CL'x CL'x CL'x M>'x H'x I,'x H'x L'x L}e'x Ne}f'x \zF ^ ^ M'x tb N'x DE+O'x AP'x EtQ'x `R'x M9S'x n0 T'x JC V'x ogf X'x G.Y'x H['x 1\'x Z^'x e3_'x u9 `'x @a'x W.b'x [ c'x IS^'x KCL'x LCL'x MCLg'x Os5. 'x QCL'x RCL'x TCL'x UCLm'x XFyn'x [,o'x \gn 'x ^CL'x _CL'x `CL'x aCL'x cCL'x dCL'x eCLw'x hMW x'x iVffy'x jc'x kOP{'x lr |'x n[R}'x ol~'x q^'x tB'x uF˙'x x} ~'x {CL'x }\7 |'x CL'x FdT'x GA'x Gǣ'x Fu'x CLt'x CL'x rS 'x u 'x m 5'x K>6'x H'x CL'x CL:'x G4;'x P<'x V?'x CU'x CL'x CLB'x z C'x VDD'x Cr6E'x d*F'x |G'x ZH'x H L'x `M'x YRN'x nO'x HP'x H5Q'x pY R'x ph T'x J0U'x L V'x D'x CL'x CLY'x ~ Z'x D;'x CL'x CL]'x s ^'xM۽'xCL'xCLa'xO'xCL'xCLd'xA'xCLf'x^'x CLh'x"Fi'x#T'x&CLk'x)Ve l'x*K( m'x+I n'x.do'x/hk`p'x1p8R q'x2hQ r'x4g s'x5Lt'x6Ju'x7B#'x9CL'x:CLx'x<@-Sy'x=MFz'x>Hs<'xACL'xBCL}'xDH@~'xFJD'xGI'xHB#'xJCL~'xKCL'xuD'xxEV'xyB 'xzET'x{EsZ'x}K'xEV'xixB 'xEsZ'xE'x}'x@ 'xP e'xI){'xM 'x} 8'xIλ'xB 'xP'xI'xL'xI){'xo^ 'xS'xQZ?'xRJ5@'xSGMA'xUw 'xXCLD'xZr E'x\H()F'x]FfG'x^ZČ'xaN3'xbQɚ'xcL'xfJ;'xg_)E'xhB'xihr 'xjbq 'xlF'xmI(-!'xpCL 'xqCL'xrCL'xtg 'xwCL'xy 'x@.'xD̘'xy 'xQ 'xDY'xCL'xCL'xCL'xCL'xCL'xH 'xI<'xA$Z'xr<'x]/'x|} 'xz$ 'x] 'xmff'xG'x^~'xz 'xyz 'xAff 'xV'xF'xH='xE.'xYuc 'x_ 'x_'xJ3'x^'xCL'xCL'xCL'xCL'xCL'x CL'x CL'x CL'x CL'xLT'xH'xIoa'xHt'xL'xL}e'x_9}f'x {6 ^ ^ M'x\t N'x^DVO'x`BmP'xaECQ'xd`zR'xeM|S'xf T'xgJ-SV'xho< X'xkGY'xlH['xm \'xnY)?^'xqeu|_'xrt `'xtBa'xvXb'xw\O\c'xxUQ'xzCL'x{CL'x|CLg'x~t? 'xCL'xCL'xCL'xCLm'xGVn'xS4o'xe8= 'xCL'xCL'xCL'xCL'xCL'xCL'xCLw'xLx'xTy'xgp'xOP{'xr# |'x[-}'xlN~'x^'xC"#'xG'xpX ~'xCL'x\ |'xCL'xFs'xGE'xGב'xGdu'xCLt'xCL'xt 'xvM 'xnC 5'xKf6'xI@'xCL'xCL:'xG&";'xO<'xWB?'xD̘'xCL'xCLB'xy C'xUYD'xCPE'x$]\)F'x%z4G'x&b4H'x'I+b L'x(`gM'x)[N'x*os4O'x+HjP'x,H0Q'x/oI R'x0o۔ T'x2K>U'x3LaUV'x4C'x6CL'x7CLY'x9~24 Z'x:DX'x=CL'x>CL]'x@tj. ^'xBNU'xDCL'xECLa'xHOv'xJCL'xKCLd'xMAO'xPCLf'xQ^'xRCLh'xTFi'xUSp&'xXCLk'x[V l'x\K m'x]I n'xc3o'xh'p'xtu q'xm33 r'xkR s'xLt'xJu'xB'xCL'xCLx'x@y'xT~z'xHVF'xCL'xCL}'xGe~'xJb'xIjj'xBx'xCL~'xCL'xD'xixB 'xixB 'xHs<'xH['xMQ'xixB 'x[- 'xH9Q'xmwv 'x} 'xEV'xP.C'xI~'xM 'x} 8'xI'xB 'xS_'xM'xM'xI.'xo^ 'xS'xY?'xJat@'xGdA'xl 'xCLD'xh E'xH(F'xFG'x[;'xJ,'xL{3'xHf'xI6'x_j'xBt'xhׄ 'xb 'xE'xHO !'xCL 'xCL'xCL'xh6 'xCL'xx0 'xz 'xDQN'xy 'x{'xDZ'xCL'xCL'xCL'xCL'xCL'xHR'xIA'xA 'xq'x]/'x}: 'x~24 'x^ 'xn'xG'x[*q'x{LS 'x y 'x#A 'x&VR'x(J'x)Jk'x*D'x-X 'x0a 'x1`'x2L'x3^'x5CL'x6CL'x7CL'x8CL'x9CL'x:CL'xCL'xAM('xBHY'xCIzF'xEH'xHL'xIL}e'xTG{}f'x}Ƭ ^ ^ M'xt` N'xDO'xA?P'xEѕQ'x`FR'xMS'x@-ST'xJnV'xo< X'xHY'xI['x|u\'x]^'xbI_'xu `'xCa'xZ.b'xZEc'xS'xCL'xCL'xCLg'xt6 'xCL'xCL'xCL'xCLm'xH n'x~fgo'xf  'xCL'xCL'xCL'xCL'xCL'xCL'xCLw'xRaHx'xS(y'xeu'xOP{'xs@ |'x\}'xmJ_~'x^'xC'xG'xy@ ~'xCL'x]j |'xCL'x FQ'x G8'x G'xN\u'xCLt'xCL'xt- 'xv 'xn7L 5'xKr6'xI>['xCL'xDCL:'xFG;'xGN<'xHWhZ?'xIEG'xLCL'xMCLB'xOy{ C'xPT D'xQCE'xSiǯF'xTG'xUd34H'xVIO L'xWOM'xXG^N'xZkO'x[HP'x\HQ'x^pmy R'x_p T'xaKOU'xbLPV'xdZ'xeCL'xfCLY'xiN9Z'xjF"'xlCL'xmCL]'xot ^'xqN5D'xsCL'xtCLa'xwO'xyCL'xzCLd'x|AO'xCLf'x^'xCLh'xF?i'xR'xCLk'xV\$ l'xM( m'xKaH n'xdo'xh~p'xrk q'xk=q r'xk33 s'xLt'xJ!u'xB 'xCL'xCLx'x@y'xTfsz'xH'xCL'xCL}'xGo~'xJ 'xI 'xBUZ'xCL~'xCL'xDY'xixB 'xixB 'xF:'xFL'xI'xixB 'x\ 'xFL'xj> 'x}Ď'xEV'xPLJ>'x@CL'xACL'xBCL'xCCL'xDCL'xFCL'xGCL+`^+`CL+`CL+`CL+` NC+` CL+`CI+`CL+`CL+`q +`CL+`CL+`CL+`CL$+`KQ%+`J 0&+`KK+`!CL*+`$L,+`%`K+`'CL.+`*O+`+CL+`,CL+`-CL+`.CL3+`1osK4+`3AH6+`6W7+`7Ts38+`8O 9+`:F:+`dL3;+`eP9<+`fL+`hCL>+`kV?+`lJ\@+`mGhJA+`plD +`rCLD+`thb E+`vGF+`wFlG+`xXT+`{H+`|J+`}F+`Hm+`_w+`A+`hׄ +`c +`Ed+`G!+`CL +`CL+`CL+``P +`CL+`xo +`{Z +`E+`z)B +`L\h +`D+`CL+`CL+`CL+`CL+`CL+`HR+`IP+`@ +`qϑ+`]/+`{ +`} +`^Rp +`q,+`G+`\&8+`{/9 +`y# +`B = +`T%+`Jao+`J~+`DJ+`NO +`X +`^p+`J3+`^+`CL+`CL+`CL+`CL+`CL+`CL+`CL+`CL+`CL+`My++`H+`,I+`-H+`1L+`2L}e+``=2}f'x}Ĥ ^ ^ M+`Mt N+`ODYO+`PAP+`QEPQ+`T`R+`UNS+`W@T+`XItV+`Yn X+`[GyY+`\I4,[+`]\+`^X^+`bd3:_+`ctr `+`eDzBa+`f\4b+`g\}qc+`V+`CL+`CL+`CLg+`s] +`CL+`CL+`CL+`CLm+`H|n+`~o+`e#A +`CL+`CL+`CL+`CL+`CL+`CL+`CLw+`T\x+`UBy+`eH+`OP{+`r{ |+`\}+`py~+`^+`D$+`GM_+`}T ~+`CL+`[T |+`CL+`F+`F-+`Gϛ+`G u+`CLt+`CL+`u +`v/ +`m 5+`Kvj6+`Ir+`CL+`CL:+`G;+`N%<+` W$?+` B+` CL+`CLB+`yz C+`SD+`CE+`cF+`AW G+`Y{H+`Il L+`LxRM+`E5N+`i>O+`HP+`HQ+`nQ R+` n T+`"KU+`#LV+`%C+`&CL+`'CLY+`)} Z+`*C+`-CL+`.CL]+`XsF ^+`ZM+`\CL+`]CLa+``N<+`bCL+`cCLd+`eA2+`hCLf+`i^+`jCLh+`lF:i+`mQ:+`pCLk+`sV l+`tNL m+`uL\ n+`xeo+`yiCp+`{s{ q+`|nG r+`~mW s+`Lt+`Ju+`B+`CL+`CLx+`~Ü y+`Snxz+`H/+`CL+`CL}+`Gx~+`J+`I֕+`BX+`CL~+`CL+`EZ+`ixB +`ixB +`CL!+`Bɀ+`C+`kQ +`ixB +`Bw+`k> +`} +`EV+`P52+`I+`K?+`} 8+`I+`B +`Q+`Mk+`M+`I9+`o^ +`SCL+`@rn +`BCL+`CCL+`DCL+`ECL$+`HK%+`IJ`&+`LPJ+`NCL*+`QLB,+`RRT+`TCL.+`VC+`YCL+`ZCL+`[CL+`CL3+`o4+`AH6+`V37+`P\8+`IP9+`F:+`M;+`M<+`L3+`CL>+`Wa?+`JA@+`G`A+`uD +`CLD+`oXB E+`GF+`FK6G+`Yp+`F+`IFg+`E>f+`H4+`a8+`B=+`i\ +`c +`E2+`G`!+`CL +`CL+`CL+`f +`CL+`y +`| z +`FL+`{LS +`+`Cɨ+`CL+`CL+`CL+`CL+`CL+`H +`Iv+`A +`qpv+`]33+`{w +`|ƚ +`^ +`of+` H +` \+`{Z +`y +`A\ +`Ve+`J"+`J+`D +`X +`^ +` _3+`!L+`"^+`#CL+`MCL+`NCL+`OCL+`PCL+`QCL+`SCL+`TCL+`UCL+`XMd+`YH+`[I+`\H+`_L+``L}e+`gc}f+`~G ^ ^ M+`|tTg N+`~DrO+`AkP+`EchQ+``R+`N;0S+`of T+`IV+`nXm X+`G2JY+`IA[+``-\+`Z~^+`f_+`t `+`Ca+`Z&fb+`\ٚc+`T>+`CL+`CL+`CLg+`sZ +`CL+`CL+`CL+`CLm+`H\pn+`4o+`dN +`CL+`CL+`CL+`CL+`CL+`CL+`CLw+`Ox+`Q=qy+`b+`OP{+`q~K |+`]Q}+`o`~+`^+`D?_+`F[+`u ~+`CL+`_\ |+`CL+`!FxG+`"F+`#Gľ+`'L.u+`)CLt+`*CL+`,x +`-v +`/o 5+`1KmP6+`2IpJ+`4CL+`5CL:+`7G;;+`8M@B<+`9X_N?+`:C6]+`=CL+`>CLB+`@yl C+`ARD+`BCFE+`Df.F+`ExG+`FTzH+`GIX L+`HX4M+`ICfN+`JX{O+`KHP+`LHQ+`Om R+`xn T+`zK2U+`{LۛV+`|C+`~CL+`CLY+`} Z+`D+`CL+`CL]+`r+ ^+`Mx+`CL+`CLa+`N+`CL+`CLd+`@+`CLf+`^+`CLh+`Fi+`Pe+`CLk+`V l+`Lff m+`IǮ n+`co+`h8p+`rz q+`i r+`if s+`Lt+`Ku+`B+`CL+`CLx+`@;y+`Rz+`Hs<+`CL+`CL}+`G~+`J+`I+`Bv+`CL~+`CL+`D+`EV+`EV+`EV+`EV+`EV+`EV+`EV+`EV+`E+`} +`EV+`O+`IQk+`K3+`} 8+`IЍ+` B +` P_+`M{+`L0+`I4^+`o^ +`Q+`Eʘ+`@CL+`CE+`D@L+`FCL+`HCL+`ICL+`JCL+`KCL+`LCL+`MCL+`NCL+`QC+`Rf+`SC{3+`Uq+`V|{+`Wq+`YCL+`ZCL+`[CL+`\CL+`]CL+`^CL+`_CL+`a^+`bCL+`cCL+`dCL+`eN7o+`gCL+`jC+`lCL+`mCL+`o@+`rCL+`sCL+`tCL+`uCL$+`wL*%+`xJ+&+`{JL+`CL*+`L,+`E+`CL.+`A+`CL+`CL+`CL+`CL3+`oC4+`AH6+`V7+`Pff8+`P9+`FWe:+`P&f;+`O<+`Of+`CL>+`Xk?+`J=@+`G[A+`Au+`CLD+`w E+`GF+`FMG+`ZMh+`Hd+`Lq+`G+`G6+`] +`B=+`i +`d +` DZ+` F/!+` CL +`CL+`CL+`ax +`CL+`xP +`{ +`EO+`y +`R E +`Cp+` CL+`!CL+`"CL+`#CL+`$CL+`(H,+`)Im+`*A+`+qe+`.]/+`/|C +`0}u% +`1^U +`4n3+`8H&+`9^ȣ+`+` XS ?+` Ji@+` GA+` (D+` )CLD+` +~ E+` -GF+` .F|.G+` /Y+` 2G+` 3Ks3+` 4F+` 7Fe+` 8a+` 9B=+` ;i +` Fi!+` ACL +` BCL+` CCL+` EdTj +` HCL+` Kx +` L{in +` MF+` Nz7 +` OQE +` PCSc+` SCL+` TCL+` UCL+` WCL+` XCL+` [H2+` \I+` ]@+` ^q{+` a]33+` b}I +` ~@ +` _ +` r+` HO+` ]z+` | z +` z % +` B +` T+` Io+` KC +` C+` V3 +` [D +` ^+` Jf+` ^+` CL+` CL+` CL+` CL+` CL+` CL+` CL+` CL+` CL+` N6 +` H+` I"+` H$+` L)+` L)}e+` Oda}f+`[C ^ ^ M+` t N+` DO+` xXm P+` FpQ+` b݉R+` N[GS+` oXB T+` DV+` d X+` HY+` I.[+` 8\+` \^+` d_+` g `+` Aa+` bHb+` eٙc+` "^+` $CL+` %CL+` 'CLg+` )t^ +` +CL+` TCL+` UCL+` VCLm+` YGn+` \go+` ^f +` `CL+` aCL+` bCL+` cCL+` dCL+` eCL+` fCLw+` jU34x+` k[#y+` ll+` mOP{+` pdUV |+` rZ}+` sl~+` u^+` yC+` zFS+` ~n% ~+` CL+` ^ |+` CL+` Fr+` G:j+` HO+` J u+` CLt+` CL+` uM +` v +` o 5+` Kr6+` Ioa+` CL+` CL:+` F;+` Kg<+` Y> ?+` F!O+` CL+` CLB+` zr C+` OD+` CiE+` ZǮF+` m34G+` Q=qH+` I L+` M!HM+` E>N+` ZO+` I&P+` IWQ+` n% R+` n T+` LU+` M2TV+` C+` CL+` CLY+` }h Z+` E+` CL+` CL]+` uS[ ^+` M۽+` CL+` CLa+` NQ+` CL+` !CLd+` #A+` &CLf+` '^+` (CLh+` +Fsi+` -O"+` 0CLk+` 3Wz l+` 4O\ m+` 5O8R n+` 8dLo+` 9i܉p+` ;o q+` L#ct+` ?Ku+` @CsQ+` BCL+` CCLx+` EAKy+` FPfz+` HHؒ+` JCL+` LCL}+` MG~+` OK+` QJ+` RBuK+` TCL~+` UCL+` WEO+` @=+` @+` B +` B +` B +` A+` @.+` B +` @+` |+` B3+` O/+` Hٞ+` M +` } 8+` J'+` B +` Q+` M+` M+` ID+` o^ +` S+` XX?+` YJ<@+` ZGA+` [B+` ]CLD+` _} E+` aGݔF+` bFxG+` c[5+` gC+` hH+` iCf+` lFCLY+`@} Z+`AE +`DCL+`ECL]+`Gy# ^+`IN+`KCL+`LCLa+`ON+`QCL+`RCLd+`TAZ+`WCLf+`X^+`YCLh+`[Fmi+`\N3+`_CLk+`bW l+`cO m+`dN. n+`gco+`hip+`joH q+`kjQ r+`li) s+`mL)t+`nK%ou+`oCk+`qCL+`rCLx+`tA2y+`uN z+`vH+`CL+`CL}+`G~+`KJ+`Jܔ+`B+`CL~+`CL+`E#+`B +`B +`EV+`EV+`Bw+`EV+`ixB +`EV+`E+`|۱+`@J+`O`+`I+`M +`} 8+`J+`B +`Lv+`M+`Ny+`I$+`o^ +`S+`U?+`J`@+`GA+`vv +`CLD+`r E+`HF+`FG+`YH+`Dk3+`H&g+`B&f+`E\+`]@+`Bt+`ii +`f +`DQN+`E!+`CL +`CL+`CL+`bs +`CL+`y +`{/ +`F +`z$ +`R] +`BE+`CL+`CL+`CL+`CL+`CL+`H +`IM+`@J+`p+`]/+`~# +` O +`_+ +`o3+`H&+`]B+`{= +`zcz +`Af +`S#+`J+`K=A+`0C+`3R9 +`6]Q +`7^6f+`8I+`:^+`;CL+`CL+`?CL+`ACL+`BCL+`CCL+`DCL+`HN+`JH1+`KI|+`LHЌ+`PLf+`QLf}e+`b}f+`| ^ ^ M+`uK N+`DO+`AnP+`FQ+`cR+`NS+`n T+`HV+`l X+`HWY+`I([+`K\+`\^+`bؾ_+`s9 `+`A)wa+`a b+`ec+`^{+`CL+`CL+`CLg+`s +`CL+`CL+`CL+`CLm+`G!n+`~go+`g/ +`CL+`CL+`CL+`CL+`CL+`CL+`CLw+`PGx+`\y+`Zf+`OP{+`o |+`[W}+`m~+`^+`CE+`G[+` n ~+` CL+`\(r |+`CL+`F[+`Gc+`Hzx+`Iu+`CLt+`CL+` r# +`!t\) +`"mH 5+`$K}6+`&I+`(CL+`)CL:+`+G-a;+`,J<+`-Y)|?+`.D4K+`1CL+`3CLB+`\y C+`^QD+`_D}E+`acF+`b|G+`chH+`dJD L+`e_M+`fZN+`hnO+`iIOP+`jIQ+`mm4 R+`nnn T+`pL^U+`qMV+`rD%+`tCL+`uCLY+`w~# Z+`xD+`{CL+`|CL]+`~tY ^+`M+`CL+`CLa+`N+`CL+`CLd+`AZ+`CLf+`^+`CLh+`Gi+`Mtg+`CLk+`W} l+`NR m+`MaH n+`do+`ip+`np q+`iQ r+`gR s+`L>t+`K&Xu+`CQ+`CL+`CLx+`Ay+`Kz+`H+`CL+`CL}+`G~+`Kr+`J+`BD+`CL~+`CL+`E#+`k) +`ju +`EV+`EV+`E+`ll +`ixB +`EV+`B+`} +`@ +`O+`I+`M +`&} 8+`(I+`+B +`,Qj+`-M+`0Ny+`1I +`4o^ +`5Q+`6Eʘ+`9CL+`+`U?+`J*@+`G5A+`o۔ +`CLD+`k E+`H %F+`FG+`Zj+`C+`E+`B4+`E+`bC +`B^+`i| +`fb +`DG+`E9[!+`CL +`CL+` CL+` e5 +`CL+`x0 +`{ +`E]+`xt +`\O +`Bw+`CL+`CL+`CL+`CL+`CL+`!HZ+`"I+`#@ü+`%p+`P]/+`Q| +`R~ +`S_! +`Vr+`YHl+`Z^I!+`]y] +`_x +`bA +`eV+`fJ7{+`gK+`hBB+`kTi +`n_3 +`o_+`pLɚ+`r^+`sCL+`tCL+`uCL+`vCL+`wCL+`yCL+`zCL+`{CL+`|CL+`Nt#+`H1+`I+`Hچ+`Lf+`Lf}e+`jgl}f+` |7 ^ ^ M+`u N+`DO+`AyP+`F4&Q+`cFR+`NS+`n T+`IOV+`nt X+`H Y+`I1[+`ݱa\+`\^+`bX_+`tq `+`@Ta+`Yb+`]Rc+`V+`CL+`CL+`CLg+`t^ +`CL+`CL+`CL+`CLm+`Fn+`"\o+`#g +`%CL+`&CL+`'CL+`(CL+`)CL+`+CL+`,CLw+`/J4x+`0UBy+`1a+`2OP{+`3q |+`4[ }+`6n`~+`8^+`;C+`+`TU?+`J&@+`GA+`kd +`CLD+` gx E+`"GPF+`#F\G+`$Ys+`'Dfg+`(F+`*C+`-D +`.`c +`/A+`0i| +`1g +`2C>+`3D!+`6CL +`8CL+`9CL+`;_Z +`>CL+`@wna +`Az % +`BDX+`Cxt +`Fh+`GBn/HCL/HCL/HCL/H CL/H CL/H H/HI/H@i/Hpq/H]//H{/ /H}I /H_ /Hp#3/HH/HXY/H!zcz /H"y /H%A /H)VFa/H*JI/H+JZ/H,B/H/P /H2[ /H3^p/H4J3/H5^/H7CL/H8CL/H9CL/H:CL/H;CL/HdCL/HfCL/HgCL/HhCL/HkNX/HlHƐ/HmI/HoHI/HrLH/HuLH}e+`FO}f+`|{ӷ ^ ^ M/Ht N/HD[O/HAdP/HFVQ/HcR/HN[GS/Hn T/HIDV/Hm X/HH!Y/HIi[/HȲ5\/HX(^/Hc>_/Hq9 `/H@a/Hrb/Hwc/Hp/HCL/HCL/HCLg/Hs /HCL/HCL/HCL/HCLm/HFn/Hio/Hf^ /HCL/HCL/HCL/HCL/HCL/HCL/HCLw/HG8Rx/HRy/H]R/HOP{/Hl |/H\#}/Hl~/H^/HB/HG /H.w| ~/H0CL/H2_/3 |/H4CL/H8F/H9G_/H:HL/H=Gu/H?CLt/H@CL/HCt /HDv /HEo?} 5/HGK^6/HHI/HJCL/HKCL:/HMG4;/HNHPE/HZs34F/H[}G/H\cRH/H]J L/H^q0M/H_kHN/HagO/HbHP/HcB?Q/Hem R/HgMBT/HLrU/HM=V/HC/HCL/HCLY/H}; Z/HDV/HCL/HCL]/Hvv ^/HMx/HCL/HCLa/HN1/HCL/HCLd/HAO/HCLf/H^/HCLh/HF/i/HS/HCLk/HWLB l/HN = m/HL n/He@o/Hip/Hlu q/Hfff r/He{ s/HLc&t/HKu/HCVJ/HCL/HCLx/HA2y/HTz/HHm/HCL/HCL}/HGgR~/HK/HJ/HBuK/HCL~/HCL/HDS/HixB /HixB /H @/H @/H D/H ixB /H\ /H@/Hk"" /H{ey/HEV/HO/HI/HL/H} 8/HI/H"B /H#R/H$M/H&Ny/H'I o/H*o^ /H+S/HT?/HJn9@/HGzA/Hl /HCLD/Hg3 E/HGF/HF:G/HZq/HCFf/HE/HA3/HC./H^-/HA2/Hi /H gn /H!C/H"Du!/H%CL /H&CL/H(CL/H*gn /H-CL/H/v /H0yN /H1D/H2w4 /H3Y= /H4B8P/H8CL/H9CL/H:CL/H;CL/HEd/H?ixB /H@]K /HA@۶/HBl /HD{ey/HGEV/HHO?/HJHI/HLK-/HO} 8/HyJS/H|B /H}Lv/H~M/HMY?/HI/Ho^ /HS/HT?/HJY?@/HGyA/HD>/HCLD/Hhr E/H@GF/HAFcG/HBX/HFC/HGF)/HHBH/HKCG/HLb/HM@O/HNi /HOh(# /HPCa/HRDG!/HUCL /HVCL/HWCL/HY_ /H\CL/H^vW /H_xP /HaDB/Hbvv /HcZI /HdA/HgCL/HhCL/HiCL/HjCL/HlCL/HoG/HpI/Hq@S/Hrq(/Hu](/Hvz /Hw|j /Hx`D /Hr3/HHT/H_/H{LS /H~ /HA /HU/HJZ/HKy/HBEa/HO /Hb33 /H`</HL/H^/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HN/HH$/HI /HHf/HL=/HL=}e/Hcj}f/HuBMn^ ^ M/Ht N/HDfO/H@P/HF_Q/H!c{R/H#M|S/H$~l^ T/H%GV/H&j X/H(H,Y/H)I[/H*\/H,Z ^/H/c!_/H0p `/H1Aa/H3\b/H4Z c/H5T/H7CL/H9CL/H:CLg/HCL/H?CL/H@CL/HACLm/HmF[n/Hp@o/Hqe /HsCL/HtCL/HuCL/HvCL/HwCL/HxCL/HzCLw/H}Nx/H~V >y/H_/HOP{/Hm33 |/H[ }/HoZ~/H^/HB/HG/HpPL ~/HCL/H_ |/HCL/HG$/HG/HH//HG>Fu/HCLt/HCL/H{ /HwP /Hp 5/HKk6/HJ3/HCL/HCL:/HF5;/HGkH/HK* L/Hl M/HgN/HzRO/HkK P/Hdc Q/HER/HU3T/HL3U/HMV/H@N/HCL/HCLY/H} Z/HDJ/HCL/HCL]/Hv ^/Hx /HCL/HCLa/HA2/H CL/H CLd/H5A^v/H8CLf/H9^/H:CLh/H/H gUL?/H hJWl@/H iGA/H jF[G/H lCLD/H nh E/H pG3F/H qFYG/H rX9/H vDI/H wF/H xC3/H {B/H |_cH/H }@/H ~i /H h6 /H C'/H C:!/H CL /H CL/H CL/H dE /H CL/H vR /H yN /H D- /H w| /H /H A/H CL/H CL/H CL/H CL/H CL/H G/H IŦ/H @C /H q+/H ],`/H | /H }; /H `p /H o3/H H/H Z/H { /H y /H A /H V4/H J/H KF/H B/H X2 /H b3 /H `Y/H Nf/H ^/H CL/H CL/H CL/H CL/H CL/H CL/H CL/H CL/H CL/H N̺/H H/H I/H (H/H +L/H .L}e/H F}f/HBt^ ^ M/H JuK N/H LD|O/H MAP/H NFhQ/H QcOR/H RMS/H S@T/H TIJV/H Vm$ X/H XH'JY/H YI[/H Z\/H [Yȉ^/H ^d=j_/H _s `/H bBa/H cZRb/H Yc/H T\/H CL/H CL/H CLg/H t]{ /H CL/H CL/H CL/H CLm/H Gvn/H o/H gn /H CL/H CL/H CL/H CL/H CL/H CL/H CLw/H Lx/H Ry/H [p/H OP{/H p |/H Z}/H k~/H ^/H C/H G!/H n ~/H CL/H a |/H CL/H GK/H G/H H/H L0u/H CLt/H CL/H xu /H v /H oa 5/H K6/H J=/H CL/H CL:/H Fs;/H FR/H !OT/H "KU/H #MV/H $@R/H &CL/H 'CLY/H )},l Z/H *D%/H UCL/H VCL]/H Xv ^/H YzF^ /H \CL/H ]CLa/H _A/H bCL/H cCLd/H eA"/H gCLf/H h^/H jCLh/H lG )i/H mU/H oCLk/H rWѳ l/H sN m/H uM\) n/H wd33o/H yip/H zmL q/H |dH r/H }g8R s/H ~LZt/H K u/H C/H CL/H CLx/H At@y/H Q5z/H Hm/H CL/H CL}/H G4~/H K;/H K]/H BE/H CL~/H CL/H D/H ixB /H ixB /H E9[/H D/H I /H ixB /H \Ǯ /H DY/H l /H {/H @ /H O//H IO/H L/H } 8/H I/H B /H Q /H M/H L/H I"7/H o^ /H Q/H BG/H CL/H E/H Ŀ/H CL/H CL/H CL/H CL/H CL/H CL/H CL/H CL/H !C{3/H "BQ/H #I3/H $M!H/H %MR/H &Nf/H (CL/H *CL/H +CL/H ,CL/H -CL/H .CL/H /CL/H 0^/H 1CL/H 3CL/H 4CL/H 5N[/H 7CL/H :C`/H @X/H ACL/H BCL/H CCL/H DCL$/H GK%/H HJ&/H KQN/H MCL*/H PL,/H QCR/H SCL./H UA:/H WCL/H CL/H CL/H CL3/H o4/H AH6/H V,7/H P,8/H M6f9/H F:/H I;/H K3/H V^?/H Jf@/H GlA/H vI /H CLD/H ii E/H GF/H F\pG/H ZG/H Bf/H F/H Bs4/H BD/H _/H A_*/H j ^ /H hJ /H B /H Cpi!/H CL /H CL/H CL/H d D /H CL/H w /H { /H E/H y /H Y/H A$/H CL/H CL/H CL/H CL/H CL/H G/H Iľ/H @-S/H q/'/H ]//H }R /H ~Ü /H ` /H o/H H^/H ]B$/H { /H z)B /H Ap /H WJ/H K /H KZ,/H A/H SS /H a3 /H `&f/H HMy/H I^/H JCL/H KCL/H MCL/H NCL/H OCL/H PCL/H QCL/H RCL/H TCL/H WN[/H XHk/H YI/H ZHЌ/H ]Lu/H _Lu}e/H H'}f/H @^ ^ M/H zv N/H |D O/H }B P/H ~FiQ/H bJR/H MS/H AKT/H J-SV/H oJ X/H H5Y/H I[/H R\/H Y^/H d_/H uc `/H Ca/H W>b/H ZHc/H S{/H CL/H CL/H CLg/H t8 /H CL/H CL/H CL/H CLm/H H^An/H fgo/H h /H CL/H CL/H CL/H CL/H CL/H CL/H CLw/H KLx/H Qfy/H \u/H OP{/H s |/H [!}/H k~~/H ^/HC\/HGF/Hn ~/HCL/H_ |/HCL/HGr/H Gs/H!H^/H$I_eu/H&CLt/H'CL/H*tB /H+u /H,o| 5/H.K`6/H/J3/H1CL/H2CL:/H4Fs;/H5F&EQcD/H?D6E/HAh8RF/HB{kG/HCWH/HDK L/HEhnM/HFcN/HGw8RO/HJd7' P/HKaL Q/HtBFR/HuIT/HwKs^U/HxL+V/Hy@D/H{CL/H|CLY/H~}f Z/HD/HCL/HCL]/Hwl ^/HJP/HCL/HCLa/HDu/HCL/HCLd/HA/HCLf/H^/HCLh/HGi/HU7/HCLk/HXn l/HPz m/HO n/Heo/Hi-p/Hm\) q/Hi r/Hnf s/HL]t/HK)u/HC/HCL/HCLx/HAy/HP$;z/HH/HCL/HCL}/HG-a~/HK[/HKO/HBX/HCL~/HCL/HE9[/HixB /HixB /HG&"/HF/HK/HixB /H\ /HF5/Hl /H{/H@ /HO/HI=/HL/H} 8/HJ/H B /H Q/H M/HL+/HI"7/H@</H@CL/HCE/HD{/HFCL/HGCL/HHCL/HICL/HKCL/HLCL/HMCL/HNCL/HQD/HRC{3/HSH/HTLxR/HUP^/HVNE/HXCL/HZCL/H[CL/H\CL/H]CL/H^CL/H_CL/H`^/HaCL/HcCL/HdCL/HeNR/HgCL/HjC/HlCL/HmCL/HnuZ /HqCL/HrCL/HsCL/HtCL$/HwK`%/HI&/HKT/HCL*/HLw,/H@/HCL./H}T /HCL/HCL/HCL/HCL3/Ho/4/HAH6/HRP7/HIc38/HHɚ9/HEF:/HK#3;/HLg/HVD?/HJs@/HGnA/Hm /HCLD/Hh" E/HGɓF/HFVG/HZƳ/HGg/HL</HE/HB[/Hav/HA/Hj ^ /Hhׄ /H B=/H C !/HCL /HCL/HCL/H`' /HCL/Hw /Hz /HE#/Hx0 /Hs/HAJ/H CL/H!CL/H"CL/H$CL/H%CL/H(G/H)I/H*@_w/H+qk~/H.]//H/}X /H0~ /H2`y /H5pY/H8H/H9Z!/H<{ /H=y# /HhAz /HkV\/HlKYs/HmK(/HoA/HrSȅ /Hu` /Hv`3/HwMP/Hx^/HyCL/HzCL/H|CL/H}CL/H~CL/HCL/HCL/HCL/HCL/HO?/HH/HIϥ/HH@/HK\/HK\}e/HuG}f/H*}X ^ ^ M/HvQ N/HDO/H@9 P/HFYQ/HcoR/HM{S/Ho T/HGV/Hj0 X/HHOY/HIo[/H㲊\/HZf^/Hdi_/Hl `/HCa/Hrcb/Ht0c/Hq >/HCL/HCL/HCLg/Hu( /HCL/HCL/HCL/HCLm/HHXn/H@3o/Hh /HCL/HCL/HCL/HCL/H0CL/H1CL/H2CLw/H5NLx/H6[By/H8b/H9OP{/HZ}/H?krj~/HA^/HDCѡ/HEF(/HIof ~/HKCL/HM`Sk |/HOCL/HRG/HSGi~/HUH/HXL-ou/HZCLt/H[CL/H]s\ /H_uK /H`o 5/HbK;6/HcJ. /HeCL/HfCL:/HhFݱ;/HiE~/HUc?/H$J\@/H%GA/H&@/H(CLD/H*i[ E/H+GbF/H,FIeG/H-Xġ/H1J/H2Mff/H3H/H6BD/H8]ww/H9A/H:j' /H;i= /H /H]q/H]//H}f /H~ /H`j /Hm/HH/H]Fq/H{ /Hz % /HA /HUgd/HK&/HKZ/HA"/HXX /HX /H_f/HL0/H^/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HOS /HH/HIE/HH/HLH/HLH}e/HN_}f/H]|) ^ ^ M/Hu. N/HDO/H@$P/HFQ/H d'}R/H M S/H o T/HEV/Hf' X/HHQY/HJm[/H\/HX2~^/Hd_/Hn* `/HBa/HXJ>b/HZT{c/HT/H CL/H"CL/H#CLg/H%ts /H'CL/HPCL/HQCL/HRCLm/HUGn/HY@fo/HZh /H\CL/H]CL/H^CL/H_CL/H`CL/HaCL/HcCLw/HfLx/HgZ=qy/Hhn(/HiOP{/Hli |/HnZ}/Hokp~/Hr^/HuC/HvFl/Hyo ~/H{CL/H}^6 |/HCL/HG /HGk/HH/HKgu/HCLt/HCL/HsC /HtR /Hov 5/HL 6/HJ)/HCL/HCL:/HF;/HDAy/H?L z/HAHؒ/HCCL/HECL}/HGG-a~/HIK/HJK/HKBr/HMCL~/HNCL/HPEsZ/HRixB /HSixB /H|Gn/H~G )/HJā/HixB /H\ /HG )/Hjww /H{ey/H@ /HO/HI/HL/H} 8/HJ/HB /HP.C/HO' /HL/HI/Ho^ /HS/HPW?/HQJ\@/HRGA/HSHR/HUCLD/HWi= E/HYGF/HZF>G/H[Y/H^H/H_L /H`H9/HcB@/HdaXO/HeA/HfjSk /HgixB /HhB\/HjB!/HmCL /HnCL/HoCL/Hq_ /HtCL/Hvx /Hw{ /HyE/Hzy{ /H|H6/H}@/HCL/HCL/HCL/HCL/HCL/HGW/HI/H@0;/HqsL/H]//H} /H~s /Ha [ /Hqf/HI/H[ o/H|R8 /Hz /HAW /HWL/HK,/HK]/HA`/HO /H^ /H`/HKf/H^/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HCL/HCL/H O/HH@/HIڊ/HH /HLH/HLH}e/H|^_}f/H|vs ^ ^ M/H1u N/H4DO/H5AmP/H6FQ/H9d2R/H:M S/H;ouq T/HH30L L30h*M30bN30us4O30oI P30jSk Q30@JeR30KT30KGU30LёV30A630CL30CLY30} Z30D30CL30CL]30xe ^30~] 30CL30CLa30B30CL30CLd30B}30CLf30^30CLh30G4i30R_30CLk30X| l30N( m30LaH n30eo30jp30r q30k r30naH s30Lft30K2+u30DL30CL30CLx30Aҩy30TGwz30H 30.CL30/CL}301G4~303L4304KШ305BE307CL~308CL30:E#30=ixB 30>ixB 30?E*30@D30AI>30BixB 30C]w 30DD30Fl> 30H{ey30I@ 30LO30NH,30OK430R} 830TI*30WB 30XQ30YON30[M 30\I@30`o^ 30aQ30bEʘ30dCL30gE'30} Z30CL30CL30CL30CL30CL30CL30CL30CL30C{330~30I330O30MR30P30CL30CL30CL30CL30CL30CL30CL30^30CL30CL30CL30NW230CL30Cy30CL30CL30z 30CL30CL30CL30CL$30K$%30J@&30ND30CL*30L,30A830CL.30~z 30CL30CL30CL30CL330o430AH630P3730H3830J930 FP&:30 Rff;30Qg<30P30CL>30X~?30J}@30GaA30A30CLD30jb E30GF30F7DG30[Pw30!C.g30"E30$B30'A130(`30)A30*jp 30+iމ 30,B)30-B\!30XCL 30ZCL30[CL30]d 30`CL30bxe 30c{ 30dE9[30eyl 30fY 30h@.30kCL30lCL30mCL30nCL30oCL30rG/30sIZ30u@330vqj30y]/30z|& 30{~24 30|aLK 30p30Iu30_30{ 30z)B 30A\ 30U30K/30KX30A30SCL30TCLx30VAOy30WS'z30YI :30[CL30]CL}30^GJY~30`LA{30bLF30cB30eCL~30fCL30hEO30jixB 30kixB 30lDV30nDB30oIZ30pixB 30q\o 30rDQN30sl> 30u{ey30v@ 30yO`30{I~30|L30} 830I30B 30Lv30Oz30M 30H30o^ 30S30AVm?30BJ@30CGXA30Fp| 30ICLD30Kj E30MGF30NF:G30OYX30zpT30{v330|nf30B_30^D30BF30h 30bb 30FR30JP!30CL 30CL30CL30bE 30CL30y 30j 30@30{= 30J;% 30@30CL30CL30CL30CL30CL30G30In30@!30q30]/30|ƚ 30uZ 30ai 30rf30I=h30[30{ 30t 30A 30W @30w 30J30A30P 30_D 30`C330JS330^30CL30CL30CL30CL30CL30CL30CL30CL30CL30P'230H30J=30I30 Lf30 Lf}e30_}f30y7 ^ ^ M30PtF N30SDvO30TB'8P30UFIQ30XdR30YM"S30Zo; T30[JC V30\o X30_H_`Y30`J[30a\30b[$D^30ecV}_30fuq `30hAa30j|Yb30k}c30lw{30nCL30oCL30pCLg30rt 30uCL30vCL30wCL30xCLm30{Fn30vgo30g 30CL30CL30CL30CL30CL30CL30CLw30Qx30\4y30_30OP{30o |30Zd}30lۈ~30^30B30G'+30y ~30CL30a |30CL30GO@30G30Hv30Hu30CLt30CL30pz 30t\) 30n$ 530L6630 J'30 CL30 CL:30F;30O<30S~?30FE30CL30CLB30y] C30V:DD30DfE30efgF30{LG30SH30Ly L30lEM30 fs4N30!yO30$l P30%e5 Q30&BR30(Si T30)KhU30*L2V30+AB30-CL30.CLY300} Z301DS304CL305CL]307xe ^308z % 30;CL30B30ACL30BCLd30lB)30nCLf30p^30qCLh30sGCi30tQbu30wCLk30yX l30zO m30|N n30~d@o30i܉p30s. q30mp r30m) s30Lm*t30K:[u30Dt30CL30CLx30Aey30Rz30E*30CL30CL}30Gg~30LvZ30La30BUZ30CL~30CL30EO30ixB 30ixB 30Gx30Gn30MMz30ixB 30] 30G} 30m> 30{ey30@230P30I30L30} 830J+g30B 30Q 30O30M 30H30o^ 30SCL30?N@30ACL30DC`30FCL30GCL30H|j 30KCL30LCL30MCL30NCL$30QK%30RIV&30UQ30WCL*30ZLKv,30[W 30]CL.30_|C 30bCL30cCL30cCL30eCL330go430iAH630lTg730mQ9830nL 930FEI:30M;30Lg<30Kg30CL>30WL?30J@30Gi4A30n}[ 30CLD30la7 E30GF30F;G30Z 30n30sP30l30F30`30B|\30gx 30b 30Ib30M!30CL 30CL30CL30bb 30CL30{ 30n 30BM30|j 30T7 30@30CL30CL30CL30CL30 CL30 G30 IZ30 @F30 q30 ]3330 ~ 30 k_ 30 a+ 30 nf30 I030 `!30 } 30 w 30 A 30 VM30 !e 30 "H230 $@30 %UrN 30 (^D 30 )^330 *J330 +^30 ,CL30 -CL30 /CL30 0CL30 1CL30 2CL30 3CL30 4CL30 6CL30 aO30 dH(30 eI|30 fH30 iL30 jL}e30b}f30y ^ ^ M30 uK N30 DO30 ~& P30 FaQ30 f!R30 MS30 o T30 E1V30 f' X30 HcY30 K[30 &\30 S^30 c4_30 nc `30 A<a30 Xhb30 Z.c30 RJ>30 )CL30 *CL30 +CLg30 -t| 30 /CL30 0CL30 1CL30 3CLm30 6F1n30 9~4o30 :j#A 30 CL30 ?CL30 @CL30 BCL30 CCLw30 FPffx30 GY4y30 HhG30 IOP{30 Mh |30 OZ+}30 Pj- ~30 R^30 UBG30 VGA30 Yr ~30 \CL30 ^\ |30 `CL30 cGB30 C30 H\30 Ou30 CLt30 CL30 lb 30 sA 30 mA 530 L7l630 J330 CL30 CL:30 F;30 OT<30 Y7/?30 E9[30 CL30 CLB30 y] C30 U-D30 DE30 dF30 @G30 XH30 Lf L30 f\*M30 _ٚN30 sO30 j P30 eT Q30 CaR30 QoT30 KU30 LjV30 A30 CL30 CLY30 ~ Z30 DV30 CL30 CL]30 xe ^30 x# 30 CL30 CLa30 AK30 CL30 CLd30 C~30 CLf30 ^30 CLh30 GgRi30 P>30 CLk30 X l30 M m30 Mk n30 d@o30 ipp30 r q30 l3 r30 n s30 Lpt30 KEFu30 C 30 CL30 CLx30 ALy30 Qi z30 !D- 30 $CL30 %CL}30 'F~30 )Lw30 *L30 TC030 VCL~30 WCL30 YE30 [ixB 30 \ixB 30 ]JP30 _Jw30 aP730 dixB 30 e]< 30 fJ%g30 gm[ 30 i{ey30 j@ 30 mO30 oI30 pL30 s} 830 uJ)30 xEV30 zQ30 {Ob30 }L 30 ~H30 o^ 30 Q30 Eʘ30 CL30 E30 ~'30 CL30 CL30 CL30 CL30 CL30 CL30 CL30 CL30 ~30 w30 I330 MR30 V30 OxR30 CL30 CL30 CL30 CL30 CL30 CL30 CL30 ^30 CL30 CL30 CL30 N^j30 CL30 Cy30 CL30 CL30 v 30 CL30 CL30 CL30 CL$30 L %30 J0&30 K230 CL*30 Le,30 B30 CL.30 AO30 CL30 CL30 CL30 CL330 "o430 $AH630 'N730 (L830 )I930 ,Fm:30 .L;30 /O<30 0M930 1CL>30 4Xk?30 5J@30 6GtA30 9t 30 !30 SCL 30 TCL30 UCL30 Wh(# 30 CL30 }; 30 pӖ 30 Cμ30 ~] 30 GU 30 @}B30 CL30 CL30 CL30 CL30 CL30 G730 I30 @x,30 q30 ]630 7 30 kK 30 a 30 r30 IK30 Z30 |} 30 o 30 B 30 V=30 ejU 30 G30 @30 W 30 b 30 _330 JVf30 ^30 CL30 CL30 CL30 CL30 CL30 CL30 CL30 CL30 CL30 Nؚ30 HŨ30 IzF30 HP30 L30 L}e30 ]}f30 t" ^ ^ M30 tE N30 DO30 AGOP30 FQ30 He-R30 IMPS30 Jo T30 KHV30 LlZ X30 NHa0Y30 OJ[[30 P*n\30 RYc^30 UdH_30 Vt `30 WAa30 YYb30 ZZǮc30 [SH30 ]CL30 _CL30 `CLg30 bt? 30 dCL30 eCL30 fCL30 hCLm30 kFPn30 n<o30 okr 30 qCL30 rCL30 sCL30 tCL30 uCL30 wCL30 xCLw30 {NRx30 |Xy30 }f.30 ~OP{30 q |30 Y}30 iX~30 ^30 B530 G30 x ~30 CL30 `Sk |30 CL30 GMp30 C~330 Hv!30 G7u30 CLt30 CL30 lo 30 r< 30 m 530 L<630 JC30 CL30 CL:30 Fs;30 O<30 Y?30 E30 CL30 CLB30 z)B C30 TvD30 DkE30 oF30 qG30 hfgH30 L L30 dM30 ^)N30 oO30n P30i Q30BNR30MޠT30KyU30LV30B330CL30CLY30 Z30D- 30!CL30"CL]30$y@ ^30%{ 30'CL30(CLa30*B\30-CL30.CLd300C303CLf304^305CLh307GJi308OO30;CLk30>Y6r l30?O{ m30@N8R n30Cdfo30Djep30FtR q30Gl{ r30Hnu s30ILzt30JKRu30tCo30vCL30wCLx30yA y30zPlz30{Fݱ30~CL30CL}30F~30L30LY30B930CL~30CL30F30ixB 30ixB 30JBU30I30Px30ixB 30]Z7 30I30mwv 30{ey30@30PI30Ig530L30} 830JS30EV30Lv30ON30L30H30o^ 30Q30Eʘ30CL30E30~'30CL30CL30CL30CL30CL30CL30CL30CL30vf30vf30Dk330MR30U30MR30CL30CL30CL30CL30CL30CL30CL30^30CL30CL30CL30NA30CL30C`30 CL30 CL30 u 30CL30CL30CL30CL$30=L%30>J \&30AI30DCL*30FLL,30GA30ICL.30K| 30NCL30OCL30PCL30QCL330So8430UAH630XGp730YG830ZEi930]F:30_M;30`Og<30aK30bCL>30eW?30fJv@30gGR{A30hAŖ30jCLD30ll E30nGF30oF=G30pY30sk30tp30vjA30L30^30CmK30d 30`EA 30J30MN!30CL 30CL30CL30`x 30CL30| 30{ 30Ca30|j 30l3/30@j^30CL30CL30CL30CL30CL30Gg30I30@30qۡ30]3330~' 30kd 30a 30rf30I930Y"30zu 30z % 30A޸ 30V[30 lR 30 F:30 @.30ON 30^ 30_f30K`30^30CL30CL30CL30CL30CL30CL30CL30CL30CL30"N30$H30%IT$30&H)30)Lf30,Lf}e30Q}f30 t8 ^ ^ M30ou=< N30qDO30rBnP30tF Q30wdR30xN S30yo T30zJV30{qA X30}HiUY30~J [30c\30Wx^30d/_30v `30@a30r b30t>c30pq30CL30CL30CLg30t? 30CL30CL30CL30CLm30F*n30o30l 30CL30CL30CL30CL30CL30CL30CLw30Qx30Zy30b30OP{30rp |30Y}30mq~30^30Bhy30G30t!N ~30CL30]X |30CL30G[ 30DB30H30Nmu30CLt30CL30j 30s( 30mS 530LAq630JW30CL30CL:30Fݱ;30O@<30W ?30EV30CL301CLB302z7 C303STD305DpE306g\F308}G309X#H30:M L30;]M3030Y&P?30J@30GDA30Ko#30CLD30k) E30G{F30GG30\30l30pvg30j30N 30`X30C30d( 30` 30I 30L!30CL 30CL30CL30g 30CL30} 30u 30DB30}: 30BB 30@`230CL30CL30CL30CL30CL30Go30Is30@$30qg30$]630%~] 30&lR 30'b6 30*s330-Io30.Y)301} 302@=306B 309V#$30@30?XX 30B^ 30C^330DJVf30F^30GCL30HCL30ICL30JCL30KCL30MCL30NCL30OCL30PCL30SMJ30TH30UI.30WH 30ZL30]L}e30Z>}f30s ^ ^ M30t+ N30D~8O30|p P30GkQ30f,R30MS30vI T30DV30d? X30HraY30J[30\30Y^30b_30l `30Aa30W&fb30Y!Hc30U30CL30CL30CLg30t? 30CL30CL30CL30CLm30F3n30 o30kI 30CL30CL30CL30CL30CL30CL30CLw30Mx30Wy30`30OP{30 f |30 YU}30 l5~30^30BW"30F/30v- ~30CL30\7 |30CL30 Gh30!F?30"Hi30#Fu30%CLt30'CL30Qhgm 30RrV 30Sl 530ULAq630VJk30XCL30YCL:30[Fs;30\Nr<30]Ym?30_FL30aCL30bCLB30dz7 C30eRD30fEE30hUF30irgG30jV{H30kM;[ L30miM30ncǯN30ownO30qm<8 P30rf(r Q30tB R30uS T30wK>U30xL8JV30yA30{CL30|CLY30~ Z30D30CL30CL]30wS ^30y 30CL30CLa30AAh30CL30CLd30C/30CLf30^30CLh30GBi30N%30CLk30Y l30K m30J n30d33o30jjp30wff q30p{ r30p3 s30Lt30Kbdu30D330CL30CLx30A^vy30M}z30Gu30CL30CL}30F~~30L30M6$30BV30CL~30CL30E30ixB 30ixB 30I>30IL\30Px30i 30] 30 I 30!m 30#{ey30$@ 30'P e30)Hx30*L30-} 830/JP303B 304Lv305O' 307M 308Hٞ30;o^ 3030V:?30J@30GBA30| 30CLD30k) E30GF30FA<G30Yd30k30o330i30P30[`30CA30cн 30 _ 30 Jm30 Mk!30CL 30CL30CL30c 30CL30~24 30o 30A30} 30Ey30F@T30HCL30JCL30KCL30LCL30MCL30PG30QInx30R@K30SqY30W]630X} 30Ykd 30Zbb 30]rf30`IY30aT_H30d}f 30e|5! 30hB) 30lU2&30ow3 30pH@30q@30rM.{ 30u`w 30v_Ff30wL030x^30zCL30{CL30|CL30}CL30~CL30CL30CL30CL30CL30M30H30I30H 30L30L}e30ESxX}f30Qpl ^ ^ M30s N30DgfO30A4P30GH.Q30eZR30MS30@uT30H0bV30kVI X30H_`Y30K Q[30㰷\30 W^30d:_30s `30BV>a30[J>b30]s4c30Uf30CL30CL30CLg30s( 30CL30 CL30!CL30"CLm30%Fُn30)o30*jw1 30,CL30-CL30.CL30/CL300CL301CL303CLw306Qx307U#y308c309OP{30Z"S}30?m2~30B^30EB30FG ~7|= ~7CL7 `D |7 CL7GWl7F7H[X7Mpu7CLt7CL7hɺ 7r?} 7l 57LF67 J}37"CL7#CL:7%F;7&Mշ<7'U?7(F:7+CL7,CLB7.zT C7/PD70E,E72Y8RF73qG74Z\)H75Mo L76Ts4M77MN78pO7;i\ P7ddM Q7eB=R7gNTT7hK lU7iKV7jAx7lCL7mCLY7o^ Z7pD|7sCL7tCL]7vx ^7w|` 7zCL7{CLa7}A7CL7CLd7CL!7CLf7^7CLh7Gi7Mc7CLk7Yˍ l7N{ m7L n7dffo7jp7r=q q7kL r7l s7L1t7K`u7D e7CL7CLx7@y7K$z7G`7CL7CL}7F?~7L_7M-7B97CL~7CL7E7ixB 7ixB 7J37I7P" 7i 7]w 7Jw7mwv 7{7@ 7P.C7H7L7} 87JP7EV7Tl[7OC7M 7H7,o^ 7-SCL7?CL7@CL7Cvf7Dvf7FI37GMR7HV7IOxR7KCL7LCL7MCL7NCL7OCL7QCL7RCL7S^7TCL7UCL7VCL7XN/}7YCL7\CI7^CL7_CL7azcz 7dCL7eCL7fCL7gCL$7LC%7Jc&7Nk7CL*7Lb<,7CY7CL.7}; 7CL7CL7CL7CL37p47AH67K|77Eɚ87F 97FU:7N ;7M0<7Mg7CL>7Vp?7J4@7GCA7p 7CLD7kw E7HF7GG7[ 7kg7p{37j47R7`7D 7dE 7_ 7K)7N!7CL 7CL7CL7i= 7 CL7 ~s 7 qˈ 7By7~ 7T!7@Q7CL7CL7CL7CL7CL7G7IU7@7 p7#]67$} 7%l~k 7&b 7)rf7-I[r7.Wj7Y}: 7Z{a 7]B( 7`T٣7cy]w 7dG:7f@7gW9E 7jY; 7k]7lJ37m^7nCL7oCL7qCL7rCL7sCL7tCL7uCL7vCL7xCL7{M7|H)7}Is7~G7L7L}e7G}f7q~ ^ ^ M7tTg N7D^O7BۢP7GQ7dR7MS7AHT7JrV7p) X7HF Y7 K@[7 EM\7 X)?^7e_7w* `7D)wa7n}qb7r޹c7n7CL7CL7CLg7t6 7CL7CL7 CL7"CLm7MH0n7Pgo7Qj#A 7SCL7TCL7UCL7VCL7XCL7YCL7ZCLw7]Tx7^Uy7_c 7`OP{7at |7cYy}7dmb~7f^7iCu37jG57mz ~7pCL7ra |7tCL7wGK7xFƃ7yH@7}P?wu7CLt7CL7h 7q\) 7lp 57LH67Jx7CL7CL:7F;7L<7W?7Fi7CL7CLB7z C7N,D7E,E7U#F7q(G7YH7M L7cM7]T{N7r\O7fq P7cx Q7AZR7IT7KU7K V7A7CL7CLY7N9Z7F_7CL7CL]7x ^7H7CL7CLa7DQN7CL7CLd7CL!7CLf7^7CLh7Gi7Mf7CLk7 Y2 l7!M m7#K n7%dfo7&kp7(t\) q7*l) r7+q s7,L{t7-KZ4u7.DG&70CL71CLx73@y74Rlz75Gx78CL79CL}7;F/~7=M 7>M2}7?BRs7ACL~7BCL7EE7HixB 7IixB 7KJā7LJ|17NPX7yixB 7z]K 7{J7|mwv 7~{7B37P7IUN5?7JJ@7KGLA7Nof 7QCLD7Sj E7UGLF7VF1G7WY7Zl7[q(7\if7_Si7a`Q7bC7ce/ 7da 7fK7gN(E!7iCL 7jCL7lCL7ne[ 7qCL7s} 7txt 7uG`7v~] 7wR9 7x@47CL7CL7CL7CL7CL7G 7I?C7^ 7p7]67~] 7ll 7bP 7nf7In7]?F7} 7{a 7AH 7UG7v 7H7@7Q 7a 7^7Mf7^7CL7CL7CL7CL7CL7CL7CL7CL7 CL7 M7 H7H7G7Lf7Lf}e7wa}f7qX ^ ^ M7/tTg N71D\O72|% P73FQ77fR78MS79t T7:DV7;d? X7=HOY7>Kh[7?F\7AW4^7lc _7mk `7oD[a7pZb7qZc7rSٚ7uCL7vCL7wCLg7yt 7{CL7|CL7}CL7~CLm7Han7io7k 7CL7CL7CL7CL7CL7CL7CLw7Lx7SHy7_47OP{7f |7Y}7jd~7^7C-7G1B7r]\ ~7CL7a |7CL7GT7D~F7H7I~u7CLt7CL7i 7r 7l 57LG67JJ7CL7CL:7F;7L><7T&?7F7CL7CLB7z[ C7OrD7E,E7aQF7wfgG7XBH7Nd L7d*M7^+N7rO7g>? P7d( Q7@R7HT7KNU7 LV7 A 74CL75CLY76@-SZ78D7:CL7;CL]7=y# ^7>E27ACL7BCLa7DD7GCL7HCLd7JCi(7MCLf7N^7OCLh7QGi7RV 7UCLk7XYu l7YL m7ZK n7]effo7^k\ p7`tG q7an r7bn8R s7cL t7dKQu7eAk7gCL7hCLx7j@Ry7kSAz7mGJY7oCL7CL}7F~7M7MO7B37CL~7CL7El7ixB 7ixB 7Jā7Jm7Ol7ixB 7]n 7J|17l 7{ey7@7PI7H7L7}ML7JP7EV7Oy7M7M 7H7o^ 7S7 U:?7 J@7 GJMA7 AE7 CLD7 i& E7 GF7 F#PG7 Y=7 mg7 r7 lf7 TX7 ^b7 CS7 eд 7 a>' 7 Kf7 N!7 CL 7 CL7 CL7 a 7 CL7 ~z 7 zF^ 7 B+7 ~' 7 S- 7 @&7 CL7 CL7 CL7 CL7 CL7 Gi7 IGn7 U 7 pĩ7 ]67 }u% 7 l& 7 c< 7 r37 Iw7 ]7 |j 7 {Z 7 B\ 7 U,d7 sc 7 (GJ7 )@u7 *PX 7 -as3 7 /`7 0Lf7 1^7 2CL7 3CL7 4CL7 5CL7 7CL7 8CL7 9CL7 :CL7 ;CL7 >M7 @HR7 AHj7 BG7 EL7 HL}e7 ek\}f7q ^ ^ M7 cu=< N7 DNqO7 AZP7 FQ7 exR7 MPS7 p T7 HcMV7 kVI X7 HE$Y7 J[7 p\7 WdD^7 d_7 sc `7 Ca7 a#b7 fEc7 ]\)7 CL7 CL7 CLg7 t 7 CL7 CL7 CL7 CLm7 HGn7 c4o7 l/ 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 J8Rx7 V4y7 a#7 OP{7 o |7 Y (}7 l1W~7 ^7 Cg7 Fv7 xo ~7 CL7 ]J |7 CL7 GWl7 Cu7 HV7 Pu7 CLt7 CL7 h^5 7 rK 7 l 57 LI67 J7 CL7 CL:7 !G );7 "Kx`<7 #X@s?7 $E7 'CL7 (CLB7 *zT C7 +V%D7 TE E7 V\F7 WpBG7 X^H7 YM L7 ZU{M7 [O\N7 \dO7 _nB P7 `j Q7 a@R7 bH$T7 dKjBU7 eL!|V7 fA7 hCL7 iCLY7 k@-SZ7 lDG7 oCL7 pCL]7 ry ^7 s: 7 uCL7 wCLa7 xC7 {CL7 |CLd7 ~C 7 CLf7 ^7 CLh7 GBi7 VZ7 CLk7 Z2 l7 L{ m7 K{ n7 d33o7 k}p7 u q7 mH r7 p s7 L&t7 KN_u7 CD7 CL7 CLx7 7 y7 R/z7 G7 CL7 CL}7 Fs~7 M,7 M2}7 B 7 CL~7 CL7 E7 ixB 7 ixB 7 KF7 Jā7 PW7 ixB 7 ] 7 Jn7 m 7 {ey7 @7 Pe7 I\O7 L7 } 87 J+g7 EV7 !T 7 "O# 7 $M 7 %HI7 (o^ 7 )SBf7 ?vf7 @C{37 AGR7 BNT{7 CK޹7 ECL7 FCL7 GCL7 HCL7 JCL7 KCL7 LCL7 M^7 NCL7 OCL7 PCL7 RN$7 TCL7 VC7 CL7 CL7 |ƚ 7 CL7 CL7 CL7 CL$7 L%7 J@*&7 MC7 CL*7 Lq,7 E7 CL.7 ~ 7 CL7 CL7 CL7 CL37 o[47 AH67 Z77 N387 L97 FB:7 K;7 ML<7 I7 CL>7 W?7 J@7 GK5A7 Ff7 CLD7 j' E7 GF7 FG7 [7 i|7 n6f7 hp7 V>W7 \07 C7 d 7 `P 7 K7 N]!7 CL 7 CL7 CL7 hr 7 CL7 | 7 y 7 @7 } 7 !-7 @7 CL7 CL7 CL7 CL7 CL7 G7 IO7  7 p7 ]337 C7 n4a 7 c>' 7 Kqf7 NJ87 OZ7 R}: 7 S{ 7 VA\ 7 YWQ7 ZG7 [HSa7 ]@`7 `W9E 7 ca 7 d` 7 eOS37 f^7 gCL7 hCL7 jCL7 kCL7 lCL7 mCL7 nCL7 oCL7 qCL7 tMk}7 uH7 vH"7 wG\7 zLf7 ~Lf}e7 W}f7 p ^ ^ M7 t N7 DMO7 B5{P7 FBQ7 f nR7 M|S7 o T7 J`2V7 o X7 H,Y7 J[7 ѱ\7 ZJ^7 c _7 v `7 Ca7 `5b7 dxRc7 ]7 CL7 CL7 CLg7 s 7 CL7 CL7 CL7CLm7Gn7~4o7k^ 7CL7CL7CL7CL7CL7CL7 CLw7#N=qx7$Vy7&a7'OP{7(s |7)[x}7*o#~7,^7/C71FF74u ~76CL78\b |7:CL7=GF-7>D 7@H/7CG2u7ECLt7FCL7Hg@ 7Jqz 7Kl^6 57uLP67vJ7xCL7yCL:7{G;7|J/<7}X´?7~D7CL7CLB7z % C7V D7E,E7fzF7saHG7X#H7M L7gJ>M7aN7uEO7p^ P7kK Q7A2R7Lk]T7KB*U7LeV7B77CL7CLY7@4Z7Cu7CL7CL]7w% ^7}~ 7CL7CLa7CU7CL7CLd7C7CLf7^7CLh7Gi7V,}7CLk7Zj l7L m7KH n7effo7kp7v# q7p{ r7oW s7LCt7KHu7C07CL7CLx7~s y7P&z7GB7CL7CL}7F~7M;[7M'7B67CL~7CL7 DX7 ixB 7ixB 7J7J7P7=ixB 7>]< 7?J7Am 7C{ey7D@ 7GP'T7IIJ(7JL7M} 87OJ$7RB 7SLv7TM7VM 7WI~7[o^ 7\S7V.?7J/@7GScA7Eѕ7CLD7i& E7GF7FG7Y7j7o&f7i!7!V\7#a, 7$C07%ev 7&bs 7(KH7)Mv!7+CL 7,CL7-CL70`' 73CL75} 76s 77Cu78} 79Y 7:@7=CL7?CL7hCL7iCL7jCL7mG7nI_7q 7sqJ7v]337x},l 7yk 7zcx 7}o7Izh7_7| 7{in 7A 7VL"7z7 7IE7@Q7NO 7Z 7^vf7J37^7CL7CL7CL7CL7CL7CL7CL7CL7CL7M7H7H7GȬ7Lf7Lf}e79g-}}f7HoO ^ ^ M7t+ N7DVIO7y P7GTQ7gR7M[S7o۔ T7DdV7c X7HY7Jܑ[7+\7[p[^7d=j_7i9 `71B a72XxRb73]\c74V76CL78CL79CLg7;s 7=CL7>CL7?CL7@CLm7CGen7GC4o7HiR 7JCL7KCL7LCL7MCL7NCL7OCL7QCLw7TPx7UVy7V^#7WOP{7Ze"# |7\Yj}7]k{~7`^7cCD7dG7gtx ~7iCL7k`H |7CL7G0f7G17HM7N@u7CLt7CL7jL 7rdZ 7l 57LVe67J7CL7CL:7G;7I<7WD?7EV[7CL7CLB7y] C7UD7E&E7e(F7rzG7UH7N L7mhM7hnN7l.O7m4 P7fm Q7AҩR7RT7KqU7KV7B7CL7CLY7@Z7C7CL7CL]7w ^7z[ 7CL7CLa7AZ7 CL7 CLd7 B7CLf7^7CLh7Gui7U7CLk7ZW( l7L m7K n7d3o7 l(p7"r\) q7#m r7$o33 s7%Lt7&KHu7'C*7)CL7*CLx7,}~ y7.O԰z7/F:71CL73CL}7]F~7_MEd7`M` 7aA7cCL~7dCL7fD_7hixB 7iixB 7kJ7lJP7nPx7qixB 7r\Ǯ 7sJ_C7tk> 7v{ey7w@ 7zP^7|I$7}L7} 87I7B 7Q 7M7M 7I~7o^ 7S7AVg?7BJ@7CGWA7DE7FCLD7Hi\ E7JGKF7KFG7LZ|7Nl7Ppg7Qjf7TV7U_"r7VC[p7Wg>? 7Xb 7YK\W7[N`!7^CL 7_CL7CL7ejU 7CL7| 7s8 7BN7{ 7'7 7CL7CL7CL7CL7CL7GH7Is7 7qV7]337|` 7n 7c 7q&f7I7Z7{ 7zT 7Ah 7Wʙ7u 7G7@C 7WV 7`j 7_7Hvf7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7M7H~7H7G7 LH7 LH}e7{}f7s#V ^ ^ M7Pu " N7RDKO7T9 P7UG[Q7XfBR7YMS7Zo T7[GV7\h X7^H Y7`K#[7a\7bZq^7eb8_7fpq `7hB2:a7iYnb7kYHc7lV07nCL7oCL7pCLg7rs 7tCL7uCL7wCL7xCLm7{G]n7~9o7h 7CL7CL7CL7CL7CL7CL7CLw7Xx7ZǮy7d7OP{7lUU |7\K}7mj~7^7C N7Go7w ~7CL7]>? |7CL7G47F3l7Hd7Fu7CLt7CL7i 7rj 7l& 57LWN67Jz7CL7CL:7F;7I5<7Z-?7FR7CL7CLB7yl C7T1D7E*xE7`.F7spG7XH7N* L7ahM7]޹N7rO7"jp P7#eд Q7$BR7&OT7'JU7(KV7)AD7+CL7,CLY7.@Z7/C72CL73CL]75w ^76xo 78CL79CLa7;@7>CL7?CLd7AB57DCLf7E^7FCLh7HG`i7IT7LCLk7OZd l7PL m7QK n7|eo7}k,p7p. q7i r7j s7Lt7KF/u7C/7CL7CLx7|ƚ y7Nrz7Gx7CL7CL}7Fy~7MQA7Mp7A;7CL~7CL7D%7ixB 7ixB 7H 7G7K7ixB 7]K 7G7jZ 7|W7EV7P.C7H,7L7} 87IZ7B 7S7vWc?7wJ@7xGVA7y@7{CLD7}h E7GJF7F!G7[ 7B37D37A@7U7_ 7B|7hr 7c 7J7M!7CL 7CL7CL7c 7CL7z 7~24 7Eѕ7{ 7U\ 7 7CL7CL7CL7CL7CL7G7I7^ 7q7]337| 7}X 7c- 7 n`7Il7\tc7|oQ 7z[ 7Ap 7Vgw7H7I547@.7#R 7&]w 7'_7(L,7)^7*CL7+CL7,CL7.CL7/CL70CL71CL72CL73CL77M&78H|79H7:H7=L)7>L)}e7bQ}f7r( ^ ^ M;t( N;DFO;@UP;GQ;"e[R;#MS;$o T;%HV;&l X;(HeY;*J[;+U\;,Zr^;/cj_;0sr `;2A݋a;3Yffb;5Xqc;6Rf;8CL;9CL;:CLg;dt? ;fCL;gCL;iCL;jCLm;mFQn;p4o;qg ;sCL;tCL;uCL;vCL;xCL;yCL;zCLw;}Rpx;~Wy;f>;OP{;p |;[$x};n ~;^;Bv;G ;w4 ~;CL;^ |;CL;G4;E;HNO;Lu;CLt;CL;iM ;qz ;lV 5;LQ6;J;CL;CL:;Fs;;HD<;Wh?;E;CL;CLB;y1 C;RیD;E2/E;FF;[qG;F\H;N?w L;a34M;]=qN;pYO;i| P;e Q;AR;LT;JU;KV;A;CL;CLY;: Z;C:;CL;CL];w ^;@;-CL;.CLa;/CL!;2CL;3CLd;5B+;8CLf;9^;:CLh;;hUG?;iJ@;jGU5A;lq ;oCLD;qh E;sGF;tF#PG;uY(;wB!;yD;z@vf;}R3b;~bM;BO;hJ ;c ;JZ;M"#!;CL ;CL;CL;b  ;CL;yz ;{ ;E9[;z)B ;rP; ;CL;CL;CL;CL;CL;G;I; ;q]L;]/;|5! ;} ;d  ;p3;I;W.;{ ;zr ;A ;V#;Iނ;J6 ;@;RJ ;_ ;^f;JVf;^; CL;!CL;"CL;#CL;%CL;&CL;'CL;(CL;)CL;,Mȉ;.H;/I,3;0HJM;3L);6L)}e;x%X}f;r ^ ^ M;Qt N;SDAO;TAP;VGPQ;Ye4R;ZMS;[oI T;IV;n X;H XY;J[;\;\ϥ^;eP1_;tU `;Aa;[Yb;Xc;R;CL;CL;CLg;tt ;CL;CL;CL;CLm;Fun;go;gY ;CL;CL;CL;CL;CL;CL;CLw;Sx;[{y;f=q;OP{;rX |;[M};n}~;^;BW;G;{= ~;CL;_| |;CL;G*;F ;H-;Hu;CLt;CL;i8R ;p ;khs 5;L0#6;J; CL; CL:; F?;; Gk<;Y0V?;FL;CL;CLB;xo C;Q5rD;EE;B\)F;U{G;EǮH;N[6 L;OM;RYN;lǯO;"d D P;#a Q;LAR;MIZT;OJuU;PK-V;QAc;SCL;TCLY;Vr Z;WD;ZCL;[CL];]xWc ^;^I\;aCL;bCLa;dC ;fCL;gCLd;iBF;lCLf;m^;nCLh;pGQi;qR;tCLk;wZ  l;xKp m;yJz n;|co;}lp;of q;i r;h s;Lt;KMwu;Cj;CL;CLx;~# y;Kz;G;CL;CL};F~;Mo_;M7 ;B;CL~;CL;DG;ixB ;ixB ;D|;DG;I/j;ixB ;\ ;D%;l> ;{;@ ;P52;I;L;} 8;J0;B ;SJF;M;M ;H;o^ ;S;V1?;J{@;G_4A;m ;CLD;i\ E;GF;FpG;[ e;E;G;C;O;](;Bsr;h ;dc ;J_C;L~&!;CL ;CL;CL;g ;CL;zF^ ;| ;E;{H ;;r ;CL;CL;CL;CL;CL;G;I;r ;p݃; ]33; | ; } ;d6 ;rf;IU;X;@{ ;Az ;DB ;GV ;HJ3%;IJr;M@;NV? ;Q] ;R]3;SI3;T^;UCL;VCL;XCL;YCL;ZCL;[CL;\CL;]CL;_CL;bN2g;cHϣ;dIT$;eHo{;hLH;lLH}e;Z|v}f;r ^ ^ M;t N;D<O; P;GQ;dR;MS;n T;HyV;l X;HY;J%[;.\;VzP^;bP_;nG `;A33a;rb;sc;p*;CL;CL;CLg;t]{ ;CL;CL;CL;CLm;FTn;fgo;g» ;CL; CL; CL; CL; CL; CL;CLw;V >x;Vy;b;OP{;k"# |;[};khg~;^; BT;!G;%z7 ~;'CL;)_& |;+CL;.G%;/E;1HD-;4Ku;6CLt;7CL;9g ;;o ;L6;?J;ACL;BCL:;lFb;;mFv<;nY?;oE;rCL;sCLB;ux C;vO`D;wEE;yFF;zWG;{{\*H;|Nk L;}JM;~DN;XO;j P;k. Q;^ R;@T;JU;KV;Ar;CL;CLY;Fv Z;DJ;CL;CL];x ^;J˽;CL;CLa;EsZ;CL;CLd;Bk!;CLf;^;CLh;Gni;RK;EV;I/;ixB ;\ ;E;i ; {;4EV;5PC;7IW;8L;;} 8;=J0;@B ;ALv;BM{;DM ;EI~;Io^ ;JS;T?;J@;GeA; w ; CLD; hq7 E; GF; EG; X<; l; q; kp; P ; ]); BU; eT ; `b ; GC; KF!; CL ; CL; CL; `6 ; #CL; %{ ; 'z[ ; (C>; )|& ; +; . O ; 1CL; 2CL; 3CL; 5CL; 6CL; aG; bIM; e ; gp; j]33; k|ƚ ; lk ; mdTF ; qr; tIj; uV|; x{H ; ynQ ; |B) ; U; gd ; H;  ; N ; \ٚ ; ^; I3; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; N3; HŨ; IL; HC ; Lf; Lf}e; +i(}f;9pX ^ ^ M; t N; D<O; ~ P; G"Q; e|BR; MOS; n T; En\V; e X; HY; K[; |u\; [X^; d_; m `; @ۘa; (Yub; )[Qc; *W; ,CL; -CL; .CLg; 0s ; 3CL; 4CL; 5CL; 6CLm; 9FIn; <go; =g ; ?CL; @CL; BCL; CCL; DCL; ECL; FCLw; IQx; JRaHy; K\; MOP{; Pi |; RZ}; SmC~; U^; XBt; YFF; ]y ~; _CL; a_& |; cCL; G); E,; HAG; Ku; CLt; CL; fiy ; oQ ; jD 5; L6; J6; CL; CL:; FT;; Es<; SĚ?; FT; CL; CLB; xo C; MG5D; DE; F; PG; sH; N L; bRM; ^N; rO; me P; i Q;  R; JFT; K3U; KV; AN; CL; CLY; Fv Z; D|; CL; CL]; xo ^; A; CL; CLa; C; CL; CLd; B=; CLf; ^; CLh; Gi; QpN; CLk; Z. l; Ku m; J{ n; do; lIp; q q; kG r; j\ s; L&t; KRu; C ; CL; CLx; "~ y; #Rz; $F/; 'CL; (CL}; *F~~; TM{=; UM@-; VB}H; XCL~; YCL; [DJ; ^ixB ; _ixB ; `Gx; aGn; cM; fixB ; g]K ; hG; il ; l{ey; m@ ; pP'T; rI?C; sL; v} 8; xJ; {B ; |Sƣ; }L; M ; I~; o^ ; S; 7Wc?; 8Js@; 9GOA; :N6; ;CLD; =iLl E; ?GF; @EUG; A[ ; Ef3; FkI; Ge; JQx; K`w|; LC7; Ma ; O^y ; PH; QJ!; TCL ; UCL; VCL; hq7 ; CL; |5! ; }T ; D; | ; iL; ~ ; CL; CL; CL; CL; CL; G; I8; 7 ; p^i; ]33; |= ; lD ; d. ; r; Iu; W׈; |} ; x# ; B!H ; S; Fi ; G1; K ; W* ; _ ; _#3; M ; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; M; H; I g; G; L); L)}e; q}f; o ^ ^ M; tq N; ID2O; JA(P; KG3+Q; NdR; OMS; Pn}[ T; RHeV; Sl X; UHdY; VJ[; W5\; XW^; [c_; ]s* `; ^@a; `WHb; aUc; bQ ; dCL; eCL; fCLg; is ; kCL; lCL; mCL; nCLm; qF6n; to; uhU ; xCL; yCL; zCL; {CL; |CL; }CL; ~CLw; Opx; Rpy; _; OP{; o |; Z6Y}; lm~; ^; BW; F; y1 ~; CL; _މ |; CL; G!; F; H_; J u; CLt; CL; dR ; n J ; j5@ 5; L 6; JҪ; CL; CL:; F;; D<; W?; F; CL; CLB; x C; TD; DE;}HF;N\)G;kH;Nm L;_M;Z&fN;mO;nT P;i Q;A^vR;L<T;K vU; KoV;!A߻;#CL;$CLY;&c Z;'D;;*CL;+CL];-x ^;.~ ;1CL;2CLa;4BM;7CL;8CLd;:B;=CLf;>^;?CLh;AGi;BP ;ECLk;HZxF l;IKG m;JJ n;ud o;vmBp;xqǮ q;yi r;zj# s;{Lt;|K^u;}Ct;CL;CLx;} y;Rݳz;G;CL;CL};F~;MzS;MF;A ;CL~;CL;D%;ixB ;ixB ;H ;G;M;ixB ;]! ;Gx;l[ ;{ey;@ ;Ps;H6;L;} 8;IA;B ;Lv;I;M ;I~;o^ ;Su ;ACL;BCL;CCL;DCL$;GL#c%;HI &;KH-;MCL*;PLd,;QDa;SCL.;U{/ ;WCL;XCL;YCL;ZCL3;]pA4;_AH6;bE&f7;c@8;d}S39;fFD:;hIp;;iJvf<;jG;lCL>;oV{?;pJz@;qGH|A;rB^;tCLD;vi& E;wGF;EG;Y#;g;l;f;Q2;]%f;CI;b ;_+ ;H;J3!;CL ;CL;CL;bq ;CL;|& ;C;CB;}: ;B>l ;~ ;CL;CL;CL;CL;CL;G;I;~ ;p;]6;} ;k/ ;ds ;rf; I; W; }X ;C4;B8R ;S;s ;H; ;M ;gj ;`f; Q33;!^;#CL;$CL;%CL;&CL;'CL;(CL;)CL;+CL;,CL;/M;0H ;1H;2GM;6LH;9LH}e;ZD}f; mu ^ ^ M;&v& N;(DO'O;)}$ P;+Gt[Q;.dR;/MOS;0AT;1EV;2d_ X;4H>Y;5J[;7Ҽ\;8Y;^;;e _;Ca;?Wb;@Xc;BR;DCL;ECL;FCLg;Hts ;JCL;KCL;LCL;NCLm;QGn;|o;}i;OP{;d |;Y};jB~;^;CP];Fk;sl ~;CL;a |;CL;G3;Fn;Hmq;Fosu;CLt;CL;fJ ;nu ;jS 5;L&6;J!;CL;CL:;F;;PFf<;Y:?;F/;CL;CLB;y C;UD;DYE;GHF;V(G;kH;NW L;fM;a*N;u=qO;n P;g Q;A"R;RET;JU;KxV;B!;CL;CLY;: Z;D4K; CL; CL]; y ^; }I ;CL;CLa;Bɀ;CL;CLd;C;CLf;D];ECLh;Fmi;HPX;ICLk;Jl;KIJm;LItn;M]o;Nkfp;OIzq;PIr;QIs;R]zt;S]u;U;VCL;WCLx;X y;Y z;]DY;`CL;aCL};cFL~;eM;fMn;gB4;iCL~;jCL;lDnQ;nixB ;oixB ;qG4;rFݱ;sJ;tixB ;u]n ; F/;k[ ;{;@ ;P'T;Ig5;L;} 8;J;B ; Pe;!H8;#L;$I~;'o^ ;)Savg;?A;@GR;AL;BGR;DCL;ECL;GCL>CL>CL>CL>CL> ^> CL> CL> CL>N#>CL>C>CL>CL>|& >CL>CL>CL>CL$> L%>!I&>#Me>&CL*>)L,>*D>,CL.>.A{>0CL>1CL>2CL>3CL3>6p4>8AH6>;~7>d8>ex9>gE0:>iMy;>jI<>kJ4>mCL>>pV?>qJvn@>rG:A>tw >wCLD>yii E>{GF>|E۵G>}Z>B9>E3>Aa>Q&>ay>B>f7 >c{ >Ib>K~P!>CL >CL>CL>ex >CL>z >@>EV[>z >W >~@ >CL>CL>CL>CL>CL>G>Iϥ>)b >o>]33>}R >}~ >e >pvf>I<>]O>|& >{LS >B >TC>H->Iw>Fv >Spi >d >aS3>P9>^>CL>CL>CL>CL>CL>,CL>-CL>.CL>/CL>3Mz>4H>5H>6H>9L >f&}f;o> ^ ^ M>Xvc N>ZDMO>[AǫP>\G Q>_dAR>`MS>ap| T>bGWV>di7 X>fH&cY>gK[>)\>W ^>e*_>q `>Da>Tb>YO\c>Sff>CL>CL>CLg>s< >CL>CL>CL>CLm>Hln>~o>iN >CL>CL>CL>CL>CL>CL>CLw>A{x>K.y>T>OP{>m |>[z}>jP~>^>CL>FR>xe ~>CL>_/3 |>CL>GMp>FQ">H_>Ku>CLt>CL> f > o\ > jk 5>L-g6>Kj>CL>CL:>F;>OO<>Y?>E>CL>CLB>y1 C>T1D> Du E>"w >F>#JG>$p\H>%No L>&_M>'[N>(oLO>+gX P>,c Q>-BR>/N0T>XJ_U>YKzV>ZA>\CL>]CLY>_K Z>`D>cCL>dCL]>fy ^>gB >jCL>kCLa>mD|>pCL>qCLd>sCD>vCLf>w^>xCLh>zGoi>}M>CLk>Zj l>L m>K n>f@o>m;p>oW q>i( r>j s>Lt>KZ4u>Cz>CL>CLx> y>OX$z>GB>CL>CL}>F?~>MQ>Mgm>B>CL~>CL>Dg>ixB >ixB >E >DV>IiN>ixB >\ >D>l[ >{ey>@ > PP>"I>#L>'} 8>)I>,B >-PM>.H8>0L>1I~>4o^ >5S6Eʘ>8CL>;E>?CL>@CL>ACL>BCL>CCL>DCL>ECL>FCL>Iuɚ>Jlg>L~i>MGR>NM0>OGR>QCL>RCL>SCL>TCL>UCL>VCL>XCL>Y^>ZCL>[CL>CL>N#>CL>C>CL>CL>},l >CL>CL>CL>CL$>L %>J"&>Hd>CL*>Lϕ,>B >CL.>| >CL>CL>CL>CL3>p9z4>AH6>Dfg7>Ap8>@g9>Ek:>J ;>J<>Hf>CL>>Wc?>J_@>G A>H?>CLD>jb E>G|JF>EG>Z>E>I >Df>O>`>BO>fTQ >d D >I>J!>CL >CL>CL> _x= > CL>y >@;>D̘>zT >L@J>~ >CL>CL>CL>CL>CL>"G>#I٢>N~' >Pop>S]33>U~OI >V7 >We/ >Zr>]I?:>^V>a|& >b{w >eB33 >hTY>jIr>kJ>n >oN >rdn >s`I>tO3>u^>wCL>xCL>yCL>zCL>{CL>|CL>~CL>CL>CL>M/>H>I->HX>L >L }e>D}f> oi ^ ^ M>u N>DHO>BP>G)Q>cR>MS>of T>IOV>ny X>H#Y>J.[>Ҽ\>\^>cE_>u `>Ba>S4b>Uc>R34>CL>CL>CLg>sD >CL>CL>CL>CLm>"Gn>&go>'iZ >)CL>*CL>+CL>,CL>-CL>.CL>0CLw>3B.x>4K.y>5R>6OP{>7rb |>9Y}>:kB~><^>?Cy>@F >C}u% ~>ECL>H` |>JCL>MGe >NF8>OHs>{MCu>}CLt>~CL>eƨ >n+ >j 5>L26>K >CL>CL:>G;>Nz<>X?>DX>CL>CLB>y1 C>R;D>DmRE>~F>G{G>zfgH>Nx L>^M>ZT{N>mO>fE P>cM Q>AeR>I{T>J1U>KnV>AN>CL>CLY> Z>DG>CL>CL]>yl ^>H>CL>CLa>DZ>CL>CLd>C >CLf>^>CLh>Gi>L>CLk>Zn l>M = m>Kf n>eo>mQp>o q>if r>i = s>Lt>K]u>C>CL>CLx> y>Mhz>G>CL>CL}>F:~>M>MN>A%>CL~>CL>D|>ixB >ixB >D>C4>G>ixB >\ >C>k[ > {ey> @ > Pe>IB>L>} 8>I>B >R>>J>M >I~>!o^ >"XO>#C=>2CL>5Ej>6w>8CL>9CL>:CL>=CL>>CL>?CL>@CL>Cv4>lk>mvf>nF)>pGR>qGR>sCL>tCL>uCL>vCL>wCL>xCL>yCL>z^>|CL>}CL>~CL>N"~>CL>C>CL>CL>{ >CL>CL>CL>CL$>K%>I+&>O>CL*>L ,>a9>CL.>B>CL>CL>CL>CL3>p44>AH6>}ٙ7>z@8>@39>EN:>H;>Jf<>K>CL>>Y ?>Ji@>G!hA>A>CLD>i E>GF>EȬG>[>B9>EVg>@>LS>]>BX>fq >dc >H>JX!>CL >CL>CL>gj >CL>y > ^ > D> y >5BF >6}h >9CL>:CL>;CL>=CL>@G̏>BI٢>E~ >Go->J]33>K~ >L~ >Me[ >Pr>SIA >UX>X| >Y{LS >\B: >_S>`Iظ>aJ>d~; >eWG >hcD >j_>kOY>l^>mCL>nCL>oCL>CL>CL>CL>CL>CL>CL>N>H>I[g>H>L >L }e>5ZO#}f>n ^ ^ M>vz N>DNqO>A!P>GquQ>cR>MŇS>oXB T>GV>jh X>H3 Y>J [>\> Y^> dJ_> l9 `> Ba> lb> oǯc> k*> CL> CL> CLg> r > CL> CL> CL> CLm> GbKn> Fgo> i_ > CL> CL> !CL> "CL> $CL> %CL> &CLw> )E.x> *P(y> +SW > ,OP{> /g |> 2Z*1}> 3jp~> 5^> `CF> aF> d{ ~> fCL> i`b |> kCL> nG|> oFE> pH> tHZu> vCLt> wCL> ye[# > zo > |j 5> ~L16> Kj> CL> CL:> G&";> Mw<> YN?> D> CL> CLB> y#; C> PJD> D]E> u F> GGG> pH> Nת L> Q.M> JN> ^O> e>t P> b6 Q> @}BR> Hs<T> JKU> KkV> A> CL> CLY> K Z> D> CL> CL]> y ^> H@> CL> CLa> DQN> CL> CLd> B > CLf> ^> CLh> Gi> R_> CLk> ZG l> N33 m> L n> do> lkp> l q> gff r> g s> Lt> K\u> C> CL> (CLx> *@y> +K2z> ,G> /CL> 0CL}> 2Fy~> 4M> 5MB> 6Bs> 8CL~> 9CL> ;DnQ> >ixB > ?ixB > @Bɀ> ABc> BF> CixB > D[~ > EBrd> Fj> > I{ey> J@ > MP.C> OHI> PL> S} 8> UJP> XB > YLv> ZI> \LG> ]I~> `o^ > bY(> cA> CL> E/> u'> CL> CL> CL> CL> CL> CL> CL> CL> qf> c&f> us3> }> GR> @xR> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> N> CL> C> CL> CL> ca> CL> CL> CL> CL$> K%> Iþ&> Nm> CL*> L,> U> CL.> I> CL> CL> CL> CL3> p,4> AH6> E7> }8> B9> E.:> IP;> J`<> Hp> CL>> W#?> J~@> G% A> pY > CLD> "i E> $GɓF> %EDG> &Y> +@h> UCq> V~i> YK]> Zak> \B|\> ]fm > ^e/ > _H> aI!> dCL > eCL> fCL> ia > lCL> nz > p: > qEl> rz > sNyg > t} > xCL> yCL> zCL> {CL> |CL> G> I.> ~' > o4> ]/> }h > ~z > e > nl> I?:> X> | > {/9 > Aq > T+> I> K > ~' > MiP > cDD > _> P<> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> N!> HI> IpJ> H> L > L }e> s_}f> yn>C ^ ^ M> =u. N> ?DJ)O> @A6P> BGpQ> Ed@R> FMS> Go; T> HEV> IfW X> KH0VY> MJ*[> N P\> OYWx^> Rf4_> Sn `> UAa> VVb> WT.c> R34> CL> CL> CLg> ry > CL> CL> CL> CLm> GFn> Vgo> ix > CL> CL> CL> CL> CL> CL> CLw> Gx> M4y> V> OP{> j"# |> Y}> k[~> ^> C> Ge> qHF ~> CL> `p |> CL> G> F>K> H~> Ou> CLt> CL> dV > n > j > 5> L66> K> CL> CL:> G;> L<> X ?> EG> CL> CLB> y1 C> N]2D> D/E> F> I{G> nH> N L> ^J>M> YN> ]HO> j> P> g>? Q> @gvR> HT> K(U> KeV> A> CL> CLY> : Z> HC> KCL> LCL]> Nxo ^> O@C > RCL> SCLa> UB> XCL> YCLd> [B> ^CLf> _^> `CLh> bGi> cW Q> fCLk> iZ l> jK{ m> kJff n> nd3o> ol޶p> ql q> rg r> sgH s> uLt> vKQu> wC> yCL> zCLx> |: y> }Jpz> ~G> CL> CL}> F:~> M> M> Bb> CL~> CL> D> ixB > ixB > A/> A{> F> ixB > \Rp > A > k > {ey> @ > PP> I~> L> } 8> JP> B > Ss> H1> Lu> I~> o^ > X > Eʘ> CL> E> x{Q> CL> CL>CL>CL>CL>CL>CL>CL>lg>avg>t6g>GR>LY>GR>!CL>#CL>$CL>%CL>&CL>'CL>(CL>)^>*CL>,CL>-CL>.NV>0CL>3Cz>5CL>6CL>7v >:CL>;CL>=CL$>@L %>AJ&>DM>FCL*>IL7,>JA>tCL.>v}X >yCL>zCL>{CL>|CL3>~p34>AH6>Cl7>A8>{9>EX:>I ;>Jp<>Gɚ>CL>>X-?>Jp@>G#9A>mYk >CLD>j ^ E>GF>EG>[V>@>C3>~4>IE>`p>B3>f >e5 >H9Q>I6!>CL >CL>CL>f >CL>z % >Fv >D>z >D(N >}u% >CL>CL>CL>CL>CL>G_>I> >o>]33>},l >~ >e >rf>I1> XHY> { > zu >B. >SU>=K>>@~ >AVk >Ee >F_3>GQ33>H^>ICL>JCL>KCL>MCL>NCL>OCL>PCL>QCL>SCL>VN>WI>XI>YH>\L >`L }e>[}f> mRR ^ ^ M>u N>DBQO>B'P>GǣQ>cJRR>MS>o T>HqV>k֤ X>H3Y>Ja[>R\>[^>dNb_>r9 `>A<a>Ub>Wc>Vn>CL>CL>CLg>rK& >CL>CL>CL>CLm>Fn>o>hU >CL>CL>CL>CL>CL>CL>CLw>D{x>My> S >> OP{> o33 |>[$x}>o3|~>^>B>G>{in ~>CL>_& |> CL>$GO>%H(>&H\>'FCVu>)CLt>+CL>-eJ >.n >/jM 5>1L=6>2K>4CL>6CL:>8Fݱ;>9J <>:Y?>;E>>CL>?CLB>iyl C>jQD>kD E>muRF>nE\)G>oiH>pN- L>qRJ>M>rd N>sw4O>vn P>wjSk Q>y@gvR>zIpT>|JU>}KV>~AD>CL>CLY>r Z>C>CL>CL]>xP ^>@>CL>CLa>C>CL>CLd>Bw>CLf>^>CLh>G0i>V>CLk>ZR l>LG m>K\) n>d33o>lvp>h q>bp r>b s>Lt>KQu>CCl>CL>CLx>@;y>Q)z>GgR>CL>CL}>FE~>M>L>B]W>CL~>CL>D̘>ixB >ixB >A">AO>F!O>ixB >\5 >A^v>l> >{/>EV>P >1I>2L>5} 8>7J=>:B >;L*>>M >?I~>Bo^ >CSDEʘ>GCL>JE/>Kw>MCL>NCL>OCL>PCL>QCL>SCL>TCL>UCL>Xkg>Yc0>Zw>[GR>\M>]KH>_CL>`CL>bCL>cCL>dCL>eCL>fCL>g^>hCL>iCL>kCL>N >CL>C>CL>CL>z >CL>CL>CL>CL$>L%>J?p&>Hc>CL*>L,>Yq>CL.>Cμ>CL>CL>CL>CL3>p 4>AH6>@ 7>t8>y 9>D:>H;>J<>H>CL>>V?>JK@>G/ A>|oQ >CLD>j' E>G3F>E\G>X>~>Af> {> H)P>^\k>Ba>f& >e >G>H!>CL >CL>CL>a- >CL> y@ >"K >#E>$zF^ >%R >'}I >*CL>+CL>,CL>-CL>.CL>1G>2I>^~ >`oI>c]/>d|5! >e}I >fe >io3>lI>m\T>p|& >rz >uB >xT5>yJOZ>zJ>}~ >~O >c >_|>P6f>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>Ml>I>I>HS>L >L }e>%b!}f>-n^ ^ ^ M>vԑ N>DHO>CkP>GXQ>bR>MS>n T>IZV>mH X>H*Y>JL[>\>\0[^>c_>s `>@Ta>Ufb>Vc>TT{>$CL>%CL>'CLg>)r >+CL>,CL>-CL>.CLm>1Fn>44o>6g >8CL>9CL>:CL>;CL>=CL>>CLw>BCx>CLQy>DU>EOP{>Hp |>J\}>Kk~>N^>QBÂ>RF>Uy# ~>WCL>Y_\ |>\CL>_G>H)c>HT>Lu>CLt>CL>fF >n >jG 5>LAq6>K >CL>CL:>F/;>H<>Y?>E>CL>CLB>y@Y C>VqaD>DZE>jF>MW G>fRH>N L>aYM>\ٚN>ogO>jp P>eT Q>A+R>LT>J8U>JkV>A">CL>CLY>Fv Z>DG>CL>CL]>x# ^>E>CL>CLa>F>K>CL>CLd>BN>CLf>^>CLh>Gi>UY>CLk> Z l> LQ m> Kz n>do>l#p>i q>bǮ r>c\) s>Lt>KGu>B(>CL>CLx>~; y>Rz>Gn>!CL>"CL}>$Fb~>&Ms>'L>PB>RCL~>SCL>UD>WixB >XixB >Z@=>[@X>\@>]ixB >^ixB >_@=>`i >b{*>eEV>fP.C>hIr>jL>m} 8>oI>rB >sLv>tGՓ>vM >wI~>zo^ >{S|B<>~CL>E^>w>CL>CL>CL>CL>CL>CL>CL>CL>l>avg>t6g>L>P)>Nz>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N d>CL>C>CL>CL>z[ >CL>CL>CL>CL$>L%>I &>MK>CL*>K{,>^>CL.>T>CL>CL>CL>CL3>ol4>AH6> {37>!c8>"k49>%D':>'I0;>(Kvg<>)H&g>+CL>>-V?>.J2@>/G!hA>0DM>2CLD>4j E>6GF>7E5G>8X>;A>=@A>@F>AbC >BBF>Cg! >DgL >EGB>GH#!>JCL >KCL>LCL>Nc_ >QCL>Sy]w >|A>~D>y@ >Q) >} >CL>CL>CL>CL>CL>H>I>~ >ö́>]/>|& >} >e_ >n>I *>[>{ >z)B >AH >TB|>J>J>~l^ >T >fw >_3>R>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>M >I W>I(>H>L>L}e>`u}f>p ^ ^ M>vw N>DO'O>CHP>GQ>b]R>MfS>{/ T>IV>nXm X>EH"Y>GJ[>HP\>I[V^>Le _>Ms `>N@a>PQ\)b>QWqc>SWz>UCL>VCL>WCLg>Yr$# >[CL>\CL>^CL>_CLm>bFn>ego>ff >hCL>iCL>jCL>kCL>mCL>nCL>oCLw>rBx>sMffy>tV(>uOP{>vq{ |>x[}>ym~>{^>~B>FP>} ~>CL>]X |>CL>G>H&}>HXr>ITu>CLt>CL>gR >n >jk 5>LE6>Kl>CL>CL:>G;>FS<>Y?>FL>CL>CLB>x C>VYED>D-E>zF>F#G>oRH>N_ L>^M>Y}qN>lO>e P>b  Q>A R>IpT> J}U>JיV>A/?>CL>CLY>~ Z>Cμ>CL>CL]>xH ^>K\W>CL> CLa>!E9[>$CL>%CLd>'BN>*CLf>+^>,CLh>.Gi>/T#>2CLk>5Z4 l>6IG m>7GH n>:d@o>;lXp>=gB q>>c r>?f# s>@LSt>AKHu>BBN>DCL>FCLxB|& yBQ0zBG`BCLB CL}B Fi~B M_BLYaBABCL~BCLBDBk Bk_ BEVBEVBEVBm Bk_ BEVBm B!{o]B$EVB%OB'I B)LB,} 8B.J$"B1mYk B2PbB3ELB5M B6I~B9o^ B:LvB;CBeCLBhErtBitBlCLBmCLBnCLBoCLBpCLBqCLBrCLBsCLBvkyBwc3BxqgBz`=qB{_B|cB~CLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNsBCLBCBCLBCLBz[ BCLBCLBCLBCL$BL,%BIw&BOBCL*BL,BJLuBCL.BAҩBCLBCLBOPBCL3Bp 4BAH6B|7Bi8Bl39BDs:BC3;BDFgBW?BJ+@BGABF"BCLDBp EBGFBEMGBZ BABD1BBEB_B,ApB-g>? B.gj B/GQB0G!B3CL B4CLB5CLB8c B;CLB=w B>@B?CB@v- BBBE|= BHCLBJCLBKCLBLCLBMCLBPH BQIFBT BVoBY],`B[z B\{ B]f D B`pPBcH BdUcBgz By1 BA BU BJBKB~] BPty BfDD B_fBP<B^BCLBCLBCLBCLBCLBCLBCLBCLBCLBMBIBIBHSBLBL}eBBZ}f>q6 ^ ^ MBu NBDSoOB@ PBGKQBbRBMOSB@TB ERVB e& XB HYB J[BO4\B` ^Be_Bg `BBxPaBhubBjcBj BCLBCLBCLgB rK& B"CLB#CLB$CLB%CLmB(GenB+oB,e#A B/CLBXCLBYCLBZCLB[CLB\CLB]CLwB`C34xBaNkyBcSW BdOP{Bgc |Bi\s}Bjp (~Bl^BoC[BpF˙Bt~z ~BvCLBx]L |BzCLB}G8B~GBHBBJͤuBCLtBCLBe Bm Bi 5BLL_6BK-BCLBCL:BFm;BPCLB?CL}BAFi~BCMI BDL.BEABGCL~BHCLBJCBMEVBNEVBOEVBPB BQB BREVBSEVBTB BVEBX{eyB[EVBP^BI~BLB} 8BJPBm<8 BQ.BELBM BI\Bo^ B\BBMBCLBEBv!BCLBCLBCLBCLBCLBCLBCLBCLBavgB_BlVfB_BqBbBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNBCLBC$BCLBCLB|5! BCLBCLBCLBCL$BL%BJ&BI'BCL*BL,BQB CL.B AfBCLBCLBOPBCL3Bp 4BAH6B7Bq8Btٚ9B Cn:B"Df;B#F<BPXr?BQJH@BRG%ABSCGBUCLDBWx+ EBYGzFBZEGB[Z.B^|2B_AtBazgBdDfBe_~BfA;Bgg[~ BhgJ BiGBjG4!BmCL BoCLBpCLBrb BuCLBww Bx@RByEZBzw B{Mi B}|ƚ BCLBCLBCLBCLBCLBHBIľB~ BoB]/By B{/9 Bf( Bq6fBHBY B{w By BB5 BRBJ+BKB~24 BRy Bc B`BOB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBN %BI(BIBHBLBL}eB{`}fBo ^ ^ MB5wt NB7DLMOB8BPB:G QB=b RB>MOSB?AKTB@E|VBAe XBCGΩYBDJ[BF2\BGVJ^BJbM_BKmUU `BMC aBNR4bBOWqcBxUB{CLB|CLB}CLgBq BCLBCLBCLBCLmBH7DnBoBdV BCLBCLBCLBCLBCLBCLBCLwBCaHxBK.yBS8RBOP{BhDD |B\}Bo%/~B^BCBFBtj. ~BCLB^J |BCLBGBH ABH6kBNDuBCLtBCLBe^5 Bm( Bi 5BLN16BK3BCLBCL:BF;BPB@CLBACL]BCvW ^BDDZBGCLBHCLaBJE2BMCLBNCLdBPB BSCLfBT^BUCLhBWGCiBXS}B[CLkB^Z lB_J = mB`J8R nBccٚoBdk pBfe qBg_z rBh` sBiL}tBjK3uBkABmCLBnCLxBp{LS yBqQzBrGBuCLBvCL}BxF[G~BzMLkX,B?RNBACL.BCCDBnCLBoCLBqOPBsCL3Bvp 4BxAH6Bzv 7B{e@8B|jf9BCw:BC3;BDfgBXu?BJi@BG\zABABCLDB~24 EBGݔFBFA<GBY^B~fBB|B{BCiBbBABgX BhE^ BFyBF!BCL BCLBCLBdM BCLBxWc B@BEBx# BM>- B|j BCLBCLBCLBCLBCLBH:BIqB}h BoMB]/B{ B| BfE BnlBHSBXB|C Bz BB BS^BJ BK2iB ~ B4SS B7e B8`fB9Q33B:^B;CLBCLB?CLB@CLBACLBBCLBCCLBDCLBHNkBIIBJIBKH5BNLBOL}eB^}fBo8 ^ ^ MBkvC NBmDFOBnEPBoGBbQBb<)RBMpSBq TBGVBjh XBGYBJ[B.\B\Q^Ba_Bq `BD33aBVٚbBVcBR4BCLBCLBCLgBq BCLBCLBCLBCLmBHnBoBf BCLBCLBCLBCLBCLBCLBCLwBC#xBMffyBRBOP{Bn |BY}Bl6Y~B ^B CXB GB n% ~B CLB ` ^ |B CLB GB HaB HyB IuB CLtB CLB f% B m" B i^ 5B "LMH6B #K=B %CLB &CL:B (Fݱ;B )OCLB ?CLB B^PB C]B Et#4B FOB GMRB HMRB JCLB KCLB LCLB MCLB NCLB PCLB QCLB R^B SCLB TCLB UCLB WMB XCLB [CB ]CLB ^CLB `}; B cCLB CLB CLB CL$B Lb<%B J 0&B NAB CL*B Ltt,B SUB CL.B DB CLB CLB OPB CL3B p04B AH6B vY7B f38B ff9B C g:B F;B D,B Y?B J@B G3AB }; B CLDB wt EB G FB FjGB [eEB @YB C33B }B C,B ]~NB AB g3 B h" B FqB F[G!B CL B CLB CLB `q. B CLB xWc B @;B D;B x B  B |` B CLB CLB CLB CLB CLB H:B JB #}h B %o)fB (]/B )z B *{a B +fc B WofB ZIB [TwB ^| z B _z B bB B eT+sB fJ7B gK/B k}h B lO? B odDD B p`FfB qQ#3B r^B sCLB tCLB vCLB wCLB xCLB yCLB zCLB {CLB }CLB NB IB IB HB LB L}eB aN}fB oF ^ ^ MB wt NB DMOB EPB G QB a RB M̨SB of TB I'VB me XB GYB K[B ݱO\B Y^B df_B s9 `B C =aB R:bB S!HcB U)B CLB CLB CLgB q B CLB CLB CLB CLmB H'nB "4oB #fI B %CLB 'CLB (CLB )CLB *CLB +CLB ,CLwB /FpxB 0KyB 1R)B 3OP{B 6p |B 8Zv}B 9l`~B ;^B >CB ?FձB Cu ~B ECLB G` |B ICLB LG~B MH7B OHY+B RPuB TCLtB UCLB Wem B m B i| 5B LKv6B KMwB CLB CL:B F:;B NRVB A]B CLB CLYB ~l^ ZB D;B CLB CL]B w ^B |C B CLB CLaB BrdB CLB CLdB A:B CLfB ^B CLhB GCiB QrB CLkB Zk lB I mB I\) nB d3oB lpB d3 qB _ rB c sB LqtB K7uB C;qB CLB CLxB  yB OJMzB GXB CLB CL}B F[G~B MD{B L~B C(B CL~B CLB DSB n B me B EVB EVB HA2B IB B JixB B KEVB LEB O{wB P@ B SP eB UHB VLB Y} 8B [JPB ^n B _LvB `EB bLB cIλB fo^ B h_PB kEʘB nCLB qEB rtB tCLB uCLB vCLB wCLB xCLB yCLB zCLB |CLB c3B YB cVgB GRB N&fB LqB CLB CLB CLB CLB CLB CLB CLB ^B CLB CLB CLB MB CLB C$B CLB CLB x B CLB CLB CLB CL$B Lg%B I&B J7B CL*B L,B SB CL.B cB CLB CLB OPB CL3B p?)4B AH6B|7Bp38Bus39Bn :BCff;BDYBWB ?B J{@B!GAB$r B'CLDB(mh EB*G FB+FpGB,YgB0AaB1CvgB2B5BvB6aeB7A_*B9g3 B:ii B;F!OBH 'YB?KyH[B@o\BAZ^BDgN_BFtU `BHBSRaBIR bBJS!HcBKSBMCLBNCLBOCLgBQq BTCLBUCLBVCLBWCLmBZG-nB]vgoB^f B`CLBbCLBcCLBdCLBeCLBfCLBgCLwBjE.xBkKRyBlSBnOP{Borm; |Bp[{}Bqj~Bs^BvCBFBz ~BCLB_ |BCLBG~BGpBHyBG7FuBCLtBCLBc Bm BidZ 5BLJ6BK_BCLBCL:BF;BL]CLxBh~ yBiLڗzBjG`BmCLBnCL}BpFb~BrMUBsLBtBIBuOP~BwCLByD_B|ixB B}ixB B~EVBEVBBɀBixB B[; BEVBm"" B{݉B@ BPWBI~BLB} 8BJ/ BB BSBAפBLBJ=Bo^ B[BEʘBCLBEtCBuaBCLBCLBCLBCLBCLBCLBCLBCLBaYBNgBk4B@xRBGRBG4BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBMBCLBCɪBCLBCLBs BCLBCLBCLBCL$BL %BIk&B0K]B3CL*B6LkX,B7SB9CL.B:{ B=CLB>CLBAOPBCCL3BEp"4BGAH6BJ~47BKg38BLjY9BOBK:BQB;BRDvfBWWeB?BXJ@BYG4AB\la7 B_CLDB`hq7 EBbGFBcFGBd[NPBgr3Bhw@BinBABBa_BABg BiQ BEBEW!BCL BCLBCLB`' BCLBx0 BAeBD- BxWc BL B{a BCLBCLBCLBCLBCLBHRBI٢B}T BnBB]33B{LS B|R8 Bf BpBIUBYBRBK B)b BB\) BQ˃BIFBJ8B}u% BNE Bd{ B `B R B ^B CLBCLBCLBCLBCLBOPBOPBCLBCLBOtBIBIBH^B#LB$L}eB`<}fBm? ^ ^ MBgw- NBiDcOBjEJPBkF{QBna@RBoMSBpn TBrJVBso< XBuGYBvKZ#[Bw\BxZٚ^B{cr_B}t `BAraBP(bBSHcBTfBCLBCLBCLgBqA BCLBCLBCLBCLmBG?nB oBf BCLBCLBCLBCLBCLBCLBCLwBExBMW yBQ BOP{Bri |B[}Bn~B^BCDBFBxo ~BCLB_| |BCLBG@BF BHtBMeuBCLtBCLBc Bl Bi 5BLS6BK`BCLBCL:BFs;BJ}uA7=B@CLBACLYBC~ ZBDC4BGCLBHCL]BJvK ^BK| BNCLBOCLaBQB)BTCLBUCLdBWA/BYCLfBZ^B[CLhB]G} iB_PWBCLkBZeZ lBC33 mBB nBc@oBk:pBfp qBb rBcǮ sBLntBKSuBCQ6BOPBCLxB: yBOzBG4BCLBCL}BF[G~BM^BLPBBBOP~BCLBDBixB BixB BEVBEVBBrdBixB B[; BEVBj[ B{hMBEVBPvBI~BLB} 8BI'BB BLvBABLc&BJ Bo^ BWr1BDŚBCLBEeBtB CLB CLB CLB CLB CLBCLBCLBCLBb\BYIBpB}B@xRB}BCLBCLBCLBCLB CLB!CLB"CLB#^B$CLB%CLB&CLBPMBRCLBTCBVCLBWCLBYrs B\CLB]CLB^CLB_CL$BbK%BcIþ&BeOpBhCL*BkL0,BlTBnCL.Bpz[ BrCLBsCLBvOPBxCL3B{p 4B|AH6BA,7Bv 8ByY9BAX:BC3;BCBU7/?BJp@BGABkw BOPDBg3 EBGFBFB$GBXYBliBpBiC3B@ئB^BABgJ Bj63 BEBEV[!BCL BCLBCLBdp BCLBx BABDJBx BMd B{ BCLBCLBCLBCLBCLBHjBIЍB|& BnB]33B {in B!|` B"f B%nfB(IyB)X\B*A5B+BB-B( B1QB2I/jB3IB6}I B7Sx B:dww B;_C3BCLB?CLB@CLBBCLBCCLBDCLBECLBFCLFavgFYffFlgF SF aF \F CLFCLFCLFCLFCLFCLFCLF^FCLFCLFCLFMFCLFCyF CLF!CLF#u F&CLF'CLF(CLF)CL$F+L5%F,J<&F/I<F2CL*F5K2,F6SRF7CL.F:OFdCLFeCLFhOPFjCL3FlpM]4FnAH6Fqk@7Frc8Fs_39FvAi:FxD;FyE`F{U`?F|JE/@F}GAF~A5FOPDFk EFG4FFFGF\FifFmFf`F FbFADqFh Fj FEV[FE!FCL FCLFCLF` FCLFw FCFD4KFwl F[̰F{ FCLFCLFCLFCLFCLFHjFIƏF|` FnF]33Fz F{ Ff FmfFIGFUFCFDFB{ FR~8FHؒFIF} FNT FdQ F`3F,RF-^F.CLF/CLF0CLF2CLF3CLF6OPF7OPF9CLF:CLF>NF?IjF@IFAHFDLFEL}eFHo}fBLnI) ^ ^ MF`uλ NFcDYOFdCHPFeFQF`RFM̨SFn$ TFFVFh7 XFGYFJo[F\FW^Fay_Fo9 `FA DaFJ@bFLcFM0FCLFCLFCLgFq FCLFCLFCLFCLmFFnF)oFeb5 FCLFCLFCLFCLFCLFCLFCLwFF#xFKǮyFTLFOP{Fj |FZ]}FlTa~F^FB׼FFХFvv ~FOPF]x |FCLF GF GU6F HbFK8uFCLtFCLFdP Fl33 Fh 5FLQ6FKD^FCLFCL:FF;F OtFK#uFDFOPFCLxF@C yFRzFG:FOPFCL}FFm~FMOnFM7FCFOP~FCLFDFnB Fn% FEVFB FB FB FnB FB FBF{?TFEVFPFIFK)FvoFJPFme FRFAFL[FJPF!o^ F#S@F&BMF(CLF+EVF,ujF.CLF/CLF0CLF1CLF2CLF3CLF5CLF6CLF9_ffF:PgF;avgF]F@CLFACLFCCLFDCLFECLFFCLFGCLFH^FICLFJCLFLCLFMMFOCLFQCFSCLFTCLFVAlFYCLFZCLF[CLFOP$FL%FIF&FRFCL*FLL_,FSJFCL.FJfFCLFCLFOPFCL3Fp P4FAH6F~37Fl8Fh9FAa:FnFg;Fr4FUz?FJ2 @FGfyAFEFOPDFr EFGFFE}GFUSFkFoFhS3F~L F_FAhFh(# Fj FEFD!FCL FCLFCLFdq FCLFwt FBwFDFwB FLF{in FCLF CLF CLF CLF CLFH&KFIF|oQ FnmF]33Fz F{ Ff F nF#IFLTFME+FNEgFPB&f FSRFTHFVIBFY| FZR F]kȉ F^_F_RF`^FaCLFcCLFdCLFeCLFfCLFiOPFjOPFmCLFnCLFqN{FrIFsIFtHFFxLFyL}eFBO}fFnFy ^ ^ MFwY NFDOOFGYPFFQF_jRFN4SFn TFGVFk XFG>YFJl[F̳ \F\ ^Fb΋_Fp* `F@aF{RbF@cF@FCLFCLFCLgFpO FCLFCLFCLFCLmFFnFIoFe8= FCLFCLFCLFCLFCLFCLFCLwFFpxF L{yF!SF"OP{F%mUU |F'\/2}F(lpE~F*^F-BF/FF2},l ~F4OPF7]3 |F9CLFGF?HTFBMcuFDCLtFECLFHcm FIm FJh/ 5FLLKv6FMK!FOCLFxCL:FzFy;F{PF Ur/?F J@F GEAF GF OPDFr EFGFFEGFSzSFnS3FsFk4F}D F`9FAFhE^ F k. F!CF"F!F%CL F&CLF(CLF*`' F-CLF/xWc F0@F1E2F2w F4X{F7{/9 F;CLFCLF?CLFBH4FCIFFn|C FqnMFt]33Fuz Fv{ Fwf FznF}I F~TqFF'FFWFB FRFHTFI F| FNO Fgȉ F`c3FR3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFNFIFIFHFLFL}eF4e}fFHm ^ ^ MFv NFDHOFG~8PFF˕QF^ORFN[GSFn TFGpVFl XFFYFJ[F\FV^Fd_FpUV `F@aF|BbF~ǯcF F4CLF5CLF6CLgF8p8T F:CLF;CLFF 8U2?F 9J @F :G% AF ;HTF F QuF CLtF CLF cM F lv F h 5F L:'6F JF CLF CL:F F;F OEF OPF CL}F G'~F MwF M5F DF OP~F CLF BEF B F B F B F B F B F B F B F B F EF {/F @ F P eF IQkF M F rNF JPF n}[ F RF A˩F LF JPF o^ F P^F EʘF CLF EF u'F CLF CLF CLF CLF CLF CLF CLF CLF _F PF cVgF MHF kHF gpF CLF CLF CLF CLF CLF CLF CLF ^F CLF CLF CLF MF CLF CF CLF CLF xP F CLF CLF CLF OP$F K'%F I&F IPF KCL*F NL(,F OTF POP.F SK0F UCLF VCLF YOPF ZCL3F ]p4F _A6F b~7F cr`8F dr99F f}:F ht ;F itF lU?F mI@F nGiAF oIF pOPDF sxt EF uGJFF vEGF wRlF zglF |kfF }efF z F ]TF AF hr F k) F CwF E#!F CL F CLF CLF _d F CLF v F @`2F DF vY F F z[ F CLF CLF CLF CLF CLF H(F IF {a F nY'F ]/F y] F {/9 F g F rF IF RF GcF GSF B FS$FH*FHF|` FP* Fg{ F`)FRF^F CLF!CLF"CLF$CLF%CLF(OPF)OPF+CLF-CLF0NلF1IF2IF3HF6LF:L}eF Q/}fF m ^ ^ MF}wJ NFDVIOFF PFFQF\pRFNSFn TFGkVFkr XFFrYFK[FO\FX^Fb_Fpr `F@zBaF|bF~cF@FCLFCLFCLgFpW FCLFCLFCLFCLmFF<nF~4oFeF FCLFCLFCLFCLFCLFCLFCLwF@xFJ4yFRBFOP{Fk |F\9}Flۈ~F^FBRFFХF~] ~FOPF]3 |FCLFGXTFJFHa"FHuFCLtFCLFeJ F mi F i& 5F L6FJqbFCLFCL:FF!O;F@FACLFBCLBFDyN CFER5DFFCj{EFH`RFFIrGFJRHFKN LFLELMFMANFNTOFQjD PFRgX QFSDRFUKo#TFVJUFWJVFXHh_FYOPF[CLYF]BZF^AF`OPFbCL]Fdu ^FfZUFgOPFiCLaFlNFmOPFoCLdFqGFrOPfFt^FuCLhFwG )iFU"FOPkFZs lFomFlpnFBeoFgxpF`ff qFW rF\ = sFLb<tFL1uFELFOPFCLxFAAhyFRzFIΘFOPFCL}FH2~FMsFM)FDAYFOP~FCLFC'FB FB FEVFB FB FB FB FB FEF{gF@ FPvFI~FLFp(F J/ F l8 F P_FAFLûFJPFo^ FP0FBMFCLFEF u'F"CLF#CLF$CLF%CLF'CLF(CLF)CLF*CLF-_,F.PgF/lgF0MHF1kHF2gF4CLF6CLF7CLF8CLF9CLF:CLF;CLF<^F=CLF?CLFhCLFiMFkCLFnCFpCLFqCLFrx0 FuCLFvCLFwCLFzOP$F{K{%F|J&FOFCL*FL,FT FOP.FK6FCLFCLFOPFCL3Fp4FA6Fu&g7Fe8Fk9F|-E:Fll;FtFU?FI@FG#AFJFOPDFx EFGFFEVGFRFe3FkpFd)FyƓ FaJFAFhr Fl FCL!FD!FCL FCLFCLFc FCLFvh. F~] FDJFuZ FVFz FCLFCLFCLFCLFCLFH!FIuF|5! F1n<F4]/F5y#; F6z$ F7g/ F:sc3F>IF?TFF@HFAGFCBp FFRM:FGHFHH\FK|5! FMQ FPi FQ_FRR&fFS^FTCLFUCLFVCLFXCLFYCLF\OPF]OPF_CLFaCLFdNFeI@FfIxuFgHFjLFL}eF_E}fFoV< ^ ^ MFw:a NFDXlOFFPFFQF[RFNSFn TFG1VFj% XFFYFK[F+\F[^Fd_FpV `F@paF|QbFBcF@pFCLFCLFCLgFp FCLFCLFCLFCLmFF,nFVgoFdJ F CLF CLF CLF CLFCLFCLFCLwF@xFJyFV >FOP{Fk |F]n}Fm'U~F^F"BAtF#FF&xt ~F)OPF,\ |F.CLF1GGF2JF3H6kF_OhxuFaCLtFbCLFdc Fel: Fgh+ 5FiK6FjJ$FlCLFmCL:FoF(;FpLFU<8?FI@FG:AFL|FOPDFwna EFG|JFFF7GFR1FgfF mlF eIF x Fb F@FhJ Fl3 FCUFDB!FCL FCLFCLF_ FCLF!v F"} F#D_F%u' F&Et F'zcz FRCLFSCLFTCLFUCLFVCLFZH F[IŦF^{ F`nFc]/Fdx0 Fey Ffg>t FirٚFlIFnVFoHݢFpH4@FrBh FuR[FvGFwHzxFz| z F{PHc Fhff F`fFTF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFN%FI FIpJFHFLFL}eF&]D}fFdl ^ ^ MFwJ NFDWOFFldPFFШQFZRFOSFn`* TFG#/VFj% XFFT!YFJ[FR\F[}^FbX_Fq `F@?aF |bF"QcF#F%CLF&CLF'CLgF)oښ F+CLF-CLF.CLF/CLmF2FdnF5~oF6d_ F8CLF9CLF:CLFCLF?CLwFBzxFCJ(yFDPFEOP{FIk |FK\}FLp?~FN^FQB.FRFF}~' ~FOPF[ |FCLFGBFJFHBFGh?uFCLtFCLFd' Fl Fh 5FK6FIzFCLFCL:FF ;FIىFCLFCLFCLFCLFCLFCLFCLF^FCLFCLFCLFMFCLFCFCLFCLFw_ FCLFCLFCLFOP$FK~%FJ &FLsFCL*F L,FSFOP.FKFFCLFCLFOPFCL3Fo4FA6F},7F u38F!s 9F#y:F%l3;F&t&fF)Uȃ?F*Iq@F+GAF,NaF-OPDF0vK EF2GFF3FgGF4R,F7n\F8t\F:liF;w F>^F?@nF@h FAlR FBBFCC>!FFCL JCLJCLJc[ J CLJ u J|` JDQNJt4 JQ Jz7 JCLJCLJCLJCLJCLJH#JIJ!{a J$n/J'],`J(xe J)z % J*g[ J-oJ0IөJ1YJ2I_J4H`iJ6B( J9QJ:GKJ;HiJf{ JgS Jjg"" Jk`C3JmRJn^JoCLJpCLJqCLJrCLJtCLJwOPJxOPJzCLJ{CLJ~NkJIJIiJHz^JLJL}eJb&}fFn  ^ ^ MJvc NJDY#OJFE,PJF2QJZrRJOSJnB TJFVJj\ XJFdaYJJe[Jڳ1\JYY^Jc4_Jq8 `J@"aJ{RbJ#cJJCLJCLJCLgJo JCLJCLJCLJCLmJEsnJC4oJd't JCLJCLJCLJCLJCLJCLJCLwJ,vxJ-R34yJ.RpJ/OP{J2k |J5\1W}J6mU~J8^J;BJ QJDRJK)TJJUJJzVJHJOPJCLYJCi(ZJAJOPJCL]Jt ^JZ&JOPJCLaJPJOPJCLdJGJOPfJ^JCLhJFiJUbJOPkJY$ lJjmJgnJB<)oJf~YpJ] qJXk rJZH sJLm*tJLEuJF JOPJCLxJAҩyJN'nzJJ+JOPJ CL}J Hm~J Mq2JMGzJD}JOP~JCLJBk!JB JB JEVJEVJB JEVJB JEVJ EJ"{TJ#@ J&PvJ(HJ)LJ,nBJ.JPJYn% JZP*J[@J]LzJ^JPJao^ JdNJeGJgCLJjEaJku'JlOPJnCLJoCLJpCLJqCLJrCLJtCLJuCLJx^JyNgJzavgJ{GHJ|kHJ}GHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJMJCLJCJCLJCLJw JCLJCLJCLJOP$JKz%JJ&JKfJCL*JL=,JSAJOP.JJJCLJCLJOPJCL3Jo4JA6JwS37Jq8Jv9Jy:Jm,;Jv@JU<?JI@JGSAJO{JOPDJv EJGKFJFGJRDJ i4J!oC3J"gJ$w1 J'brJ(@0J)hׄ J*l~k J+BJ,Cw!J/CL J0CLJ2CLJ4^ J7CLJ9t J:| J;DJCLJ@B1 JCB JDB JEEVJFEVJGEVJHEVJJB JKEVJLEJN{JO@ JzP'TJ|I){J}LJmJJPJB JLvJ@xJLyJJJo^ JNJFuJCLJEwJuJOPJCLJCLJCLJCLJCLJCLJCLJYgJO4JavgJGHJkHJGHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJMvJCLJCӞJCLJCLJvh. JCLJCLJCLJOP$JK`%JJ,&JIkJCL*JL<,JTkJOP.JJƭJCLJCLJOPJCL3Jo?4J A6J x97Jqfg8J}9JxW:Jn`;JuJUH?J@I@JAGAJBO:JCOPDJFwl EJHG3FJIEGJJRKJLfJNləJOepJPvM JSaJT@ JUhׄ JVl JWBrdJXC !J\CL J]CLJ^CLJ`c>k JcCLJet[ Jf{ JgCpJis JjL Jky] JnCLJoCLJpCLJqCLJsCLJvH5JwIqJz{ Jn*J],`Jw| Jyl Jgx JmJIJX<JI0JH:JB!H JR6*JG9JHLJ{ JSa Jhw J`3JR\J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJMJH1JIWJHlJLqJLq}eJj]b}fJn~ ^ ^ MJ"wH NJ$DY#OJ%FPJ&FaQJ)Y?RJ*OQKSJ+zr TJ-FtVJ.i8V XJ0F3YJ1Is[J2V\J3R^J6cO_J8q9 `J9@6aJ;|*bJ<*cJ=@J?CLJ@CLJACLgJlo JnCLJoCLJpCLJqCLmJtEZnJw~oJxb/ J{CLJ|CLJ}CLJ~CLJCLJCLJCLwJF#xJMuyJU)JOP{Ji |J\C}JqF~J^JAJFpJ~ ~JOPJY>k |JCLJGJJ;JH AJJuJCLtJCLJd} Jm Jh 5JKp6JIJCLJCL:JEd;JENJTOJlD PJk. QJDRJJTJJX%UJJVJHgJOPJCLYJBZJAJOPJCL]J t ^J YBRJ4OPJ6CLaJ9P%J:OPJFLJ@OPfJB^JCCLhJEEѕiJFSUJHOPkJIYC lJJfHmJKenJLB\oJOf pJQ]Ǯ qJRV rJSZQ sJTLhtJULEuJVE5JWOPJYCLxJ[A/yJ\J)zJ]J<J_OPJaCL}JcH~JeM0hJfLݡJgDJiOP~JkCLJmB}JoB JB JEVJEVJEVJEVJB JEVJEJ{J@ JOJIJLJr JJPJB JT^J@(:JM JKJo^ JNJE5DJCLJEwJv8cJOPJCLJCLJCLJCLJCLJCLJCLJYgJK4JdJGHJkHJGHJ CLJ CLJ CLJ CLJ CLJ CLJ CLJ ^J CLJ CLJ CLJ MJ CLJ C#J CLJ CLJ v4 J CLJ CLJ CLJ OP$J KH%J JH&J "HZJ $CL*J 'L[,J (TtJ )OP.J *JJ ,CLJ -CLJ 0OPJ 2CL3J 4oŴ4J 6A6J apg7J bl8J cs 9J fw:J gm;J hqJ kV&?J lIx@J mGAJ nNJ oOPDJ r{ EJ tGKFJ uEGJ vQJ yeIJ zk6fJ {c`J |u J ^sJ y J h J l J B?J B=!J CL J CLJ CLJ ^ J CLJ s J |& J CpJ sc J GJ y# J CLJ CLJ CLJ CLJ CLJ H:=J IsJ {/ J nuJ ],`J wQ? J yN J g J oJ IlJ UCJ IJ H7J B. J RyJ GJ HDJ {Z J O J f J ^J Qs3J ^J CLJ CLJ CLJ CLJ CLJ OPJ OPJ *CLJ +CLJ .M!J /HJ 0IMJ 1HaJ 5LqJ 8Lq}eJ lvu}fJn ^ ^ MJ Sw NJ UDWOJ VF4PJ WF?QJ ZY4RJ [OTSJ ]@TJ ^FPVJ _i XJ aFYJ bI|4[J cO4\J _(^J b!_J q `J AֻaJ |bJ |qcJ ~>J CLJ CLJ CLgJ oek J CLJ CLJ CLJ CLmJ FαnJ ~4oJ ar J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ AxJ P4yJ T=qJ OP{J i |J ]g}J o|m~J ^J BfNJ FؔJ ~ ~J OPJ X |J CLJ F2J IRJ GJ QuJ CLtJ CLJ e J m;e J h 5J Kd66J IJ CLJ CL:J E*;J JԝJ VO?J I]@J FAJ MJ OPDJ |& EJ GFJ FGJ RJ c3J iLJ b#3J t| J bWJ 2 J h J m- J B}J Bk!!J CL J CLJ CLJ d/ J CLJ s J |` J C{J s)~ J xJ yN J CLJ CLJ CLJ CLJ CLJ H< J IЍJ { J nIJ ](J v J x J g5 J r#3J I8J SJ IJ HdJ BG J RJ GJ H>bJ H{/9 J IU J Lh{ J MafJ OS9J P^J QCLJ RCLJ SCLJ TCLJ VCLJ YOPJ ZOPJ \CLJ ]CLJ `M]J bHJ cIHWJ dHYJ gLqJ jLq}eJ ao}fJ p!R ^ ^ MJ w+ NJ DSoOJ F;0PJ F1QJ XDRJ OJ)SJ AKTJ E VJ g XJ FYJ H[J k}\J Xr}^J cS_J q `J CEaJ z4bJ }GcJ zJ CLJ CLJ CLgJ o J CLJ CLJ CLJ CLmJ GnJ 6goJ `( J CLJ CLJ CLJ CLJ CLJ CLJ CLwJy\xJLyJQRJOP{Jh"# |J]95}Jo~J^JC xJ GPJ#}h ~J&OPJ)Z |J+CLJ.FOJ/IJ0GJ4GVuJ6CLtJ7CLJ9f J:mD JKe6J?IJACLJBCL:JDD;JEQXuJF dJOPJCLxJB\yJRHzJI\JOPJCL}JH/~JLJLnZJD=JOP~JCLJB8PJB JB JEVJEVJEVJEVJB JEVJEJ{'PJ@ J OJ IHWJ LJr JJPJ=B J>OJ?`JAM JCK?JFo^ JHNJIBeJKCLJNEJOu'JPOPJRCLJSCLJTCLJUCLJWCLJXCLJYCLJ\YgJ]Rc4J^dJ_GHJ`kHJaGHJcCLJdCLJeCLJgCLJhCLJiCLJjCLJk^JlCLJmCLJnCLJpMJrCLJtCJvCLJwCLJt JCLJCLJCLJOP$JK&X%JJ&JOrJCL*JK,JTSJOP.JJYzJCLJCLJOPJCL3Jo4JA6Ji97J`s48Jig9Jvks:Jx ;JwJU ?JII@JFAJMJOPDJ~] EJG3FJFOGJR,Ji|JnS3JiiJ s J aJ ~ Ji JmYk JA"JB!JCL JCLJCLJ^ JCLJs J{ J DJJ!r J$gJ'y J*CLJ+CLJ,CLJ-CLJ.CLJ2H@J3I1J6{ J8mDJ;](Jg Jir3JmI?JnUJoIJpHwJrBh JuRJvGgRJwH8Jz{ J|M Jg; J`JRYJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJM=JH|JIEJHOJLqJLq}eJ$Pq{}fJ9qxY ^ ^ MJwWw NJDEOJF> PJE#QJXVRJO[SJqes TJEVJgo XJFqYJHF[J5\JYl^Jc _JqU `JCaJ{.bJ~kcJz(JCLJCLJCLgJoF, JCLJCLJCLJCLmJ2HCnJ5 oJ6_N J9CLJ:CLJ;CLJCLJ?CLwJB@34xJDLaHyJERpJFOP{JIh33 |JK^O`}JLo7~JN^JQCNJSG)SJV~ ~JXOPJ[[ |J]CLJ`FJbIJcGJfNuJhCLtJiCLJg Jmȵ JhV 5JKz 6JIHWJCLJCL:JD_;JPJ)U?J*I0#@J+FϥAJ,L-J-OPDJ0~24 EJ2GFJ3F GJ4RkJ8kJ9oJ:hJ;s J>^ J?~oP J@i/3 JBmv JCAJDA!JGCL JHCLJICLJKd JNCLJQrz JRz$ JSEZJTr# JUN JVxo JYCLJZCLJ\CLJ]CLJ^CLJH<JIJ{ JmՠJ](Jup Jwt Jgv JpٚJHʼJWJIJGJBxR JQ'+JGQJH3Jz JV JhUU Ja6fJQ<J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLزJH:JI8JHFJLRJLR}eJUa}fJru( ^ ^ MJ w NJD<OJFxPJEeQJXMRJOqbSJo7 TJE|VJg6 XJF 8YJHY)[J\JZa^J"d>_J#q `J%BaJ&zbJP|qcJQxJSCLJTCLJUCLgJWo6 JYCLJZCLJ\CLJ]CLmJ`GnJc~4oJd_Ql JfCLJgCLJhCLJjCLJkCLJlCLJmCLwJppxJqMyJrSJsOP{Jwg |Jy\V}Jzrp~J|^JCOJFJ~s ~JOPJY[ |JCLJFxJIaXJG(JHuJCLtJCLJhaH Jn% JiV 5JK6JI|JCLJCL:JD;;JOɖV8R rJ?Y sJ@LOtJAL*uJBFJCOPJECLxJGB5yJHOJMzJIIkJKOPJMCL}JOHk~JQLJRLmJSDdJ|OP~J~CLJBUZJB JB JEVJEVJEVJEVJB JEVJEJ{Z,J@ JOJH6JLJr JJPJB JQJ~4JM JLJo^ JMJBuJCLJEtCJuJOPJCLJCLJCLJCLJCLJCLJCLJYgJNgJdlJkHJ@\JkHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJMJCLJCJCLJCLJy@Y JCLJCLJCLJ OP$J K%J J&J KUJCL*JK,JTJOP.JJ'JCLJCLJOPJECL3JHow4JJA6JMt@7JNeS38JOi`9JQu`:JSn ;JTt3JWV&?JXI@JYFAJZLmJ[OPDJ^~ EJ`GFJaF GJbQJdgJelC3JgdJhs JkbJl~K JmiLl Jnmi JoAHJqAl!JtCL JuCLJvCLJx^ J{CLJ}rN J~z JCpiJr]\ JIP Jx0 JCLJCLJCLJCLJCLJHEJJ J{w JmJ](JuD Jwt Jg Jq6fJHJWJJ}JHJBn JQ@eJGCJH4Jz? JM.{ Jg"" JaJQ9J^JCLJCLJCLJCLJ CLJOPJOPJCLJCLJL^JHJI/JH<JLRJLR}eJ^Һ}fJsP ^ ^ MJ:v4 NJEq-QJBWRJCO_SJDouq TJEEXVJFf XNEYNH&[N\N [^N e_N q `NBaN{LbN~gcNz >NCLNCLNCLgNo NCLNCLNCLNCLmN"GInN%~goN&^| N(CLN)CLN*CLN+CLN-CLN.CLN/CLwN2zHxN3LByN4ON5OP{N8gUV |N:]I}NdpH~Nf^NiC6]NjFQNm7 ~NoOPNsV |NuCLNxF̈́NyI#NzG]N}KTuNCLtNCLNiW Nm Ni33 5NK6NIiNCLNCL:NC>;NN4OP~N@CLNBBENEB NFB NGEVNHEVNIEVNJEVNKB NLEVNNENP{!NQ@ NTP52NVI4^NWLNZr N\JN_B N`Q Nb}zNcM NdLNgo^ NMvN@NCLNENvdJNOPNCLNCLNCLNCLNCLNCLNCLNYgNNgNcVgNkHN@pNkHNCLNCLNCLNCLNCLNCLNCLN^NCLNCLNCLNMѡNCLNCyNCLNCLNzr NCLNCLNCLNOP$NJ%NJ?&NINCL*NKQ,NT@NOP.NJ+NCLNCLNOPNCL3N oc4N A6Nlf7N`g8Ndl9Nt:NnY;NryNVD:?NI @NF|ANL,NOPDN ' EN"GxFN#F_GN$QqN&lN'pN(iVfN*s N-bPN.~(? N/ii NXm4 NYANZA!N]CL N_CLN`CLNbb NeCLNgr@3 Nh{LS NiCNkr# NlM_ Nmxe NpCLNqCLNrCLNsCLNtCLNxHBfNyIN|{ N~mN](NuD Nwt Ngд Np3NH\NWNJQNHNBxR NPNG6NH6kNz$ NT[\ Nfn N`fNQ9N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNLiNHNI$NH?lNLRNLR}eNl_޺}fNtW ^ ^ MN$u. NN&D1ON'F5PN(Eq-QN,W RN-O_SN.o TN/E;aVN0f XN2EYN3G[N5j\N6YWx^N9f_N:rr `N|\cN?yNBCLNCCLNDCLgNFn& NHCLNICLNJCLNLCLmNOGnNR||oNS^ NUCLNVCLNWCLNXCLNYCLN[CLNCLwNzxNKkyNONOP{NgUV |N]}}Nowl~N]NBNFN}T ~NOPNW>' |NCLNF¢NHsNGNM2YuNCLtNCLNiiy Nl NhĜ 5NK6NINCLNCL:ND;NLNFV ?NGH@NHFANIKwNJOPDNMr ENNGyFNOFGGNxQN{ngN|rN}k6fN~rg N]N~(? Ni| Nme N@۶N@۶!NCL NCLNCLN^p NCLNr]\ Nz ND%Nr@3 NIq Nx+ NCLNCLNCLNCLNCLNHENIAN{ NmZN](NuS[ Nx Ngд Nq&fNH'NVNJwNHoNB NPNG,NH;}Nzcz NN(z NgY N`3NRN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNL3NH@NI gN H:N LRNLR}eN^Sn}fNtn, ^ ^ MNQv}K NNSD%ONTFrPNUE;QNYWqRNZOTSN[ouq TN\DܭVN]e^ XN_EYN`G [Nb\Nc^a^Nfc _Ngr9 `NhAZ#aNj}8RbNk}cNlzHNoCLNpCLNqCLgNsnA NuCLNvCLNwCLNxCLmNF nN|c4oN^j NCLNCLNCLNCLNCLNCLNCLwN@QxNLByNO)NOP{Nf"# |N^2}Np{~N]NB-NFN ~NOPNW |NCLNFNHNG(NIuNCLtNCLNj J Nm! NhR 5N K6N IgN CLNCL:ND- ;NKCLN@CHNBCLNCCLNEx:D NHCLNICLNJCLNMOP$NNJ%NOK &NQPzcNTCL*NWJN,NXTNYOP.NZJN\CLN]CLN_OPNaCL3Ndoj4NfA6Ni]97NjRY8NjT39Nmt4 :Nou ;NuyNU?NH@NFANKNOPDNr ENGFNF0GNQ'Nh#3NkNefgNru NaiTN~{ NiQ Nn0 N@N@!NCL NCLNCLNbE NCLNrk N|5! NDNq NC> Nx NCLNCLNCLNCLNCLNHUqNJN{/ N m-N ](N t4 N w N gT N r N GN U#N JN IN B N QeN G!N H<6N zF^ N R-E N gL N `lN !R3N #^N $CLN %CLN &CLN 'CLN (CLN ,OPN -OPN /CLN 0CLN 3LN 5HٞN 6I N 7H6[N bLRN eLR}eNZ }fNu*+ ^ ^ MN t NN D!ON FCPN E ;QN W@uRN OqbSN oXB TN DVN eQ XN EYN G[N \N T0[^N dD3_N r* `N AaN ~>bN }ucN }{N CLN CLN CLgN n4 N CLN CLN CLN CLmN F4nN |goN ^ N CLN CLN CLN CLN CLN CLN CLwN @xN MyN Q\)N OP{N f |N ^U}N p~N ]N BN FN ~; ~N OPN S |N CLN )FN *HN +GN /QuN 1CLtN 2CLN 4im N 5l{ N 6h=q 5N 9K-6N :I@N N CLN CLN OPN CL3N ov4N A6N j7N [ 8N a 9N s~:N l,;N qFfN V?N HA@N F(AN MN OPDN : EN GxFN FwGN QRkN hgN kٙN d3N r N b%N } N i& N n% N @gvN @Q!N CL N CLN CLN ^ N CLN q N @N CBN q N tN wS N "CLN #CLN $CLN &CLN 'CLN *Hb#N +JN .{LS N 0mN 3]%N 4t N 6wQ? N 7g N :rfN =GNN >TN ?JN @I9N BBH N FQN GGN HHAGN Kz N LPe N Of* N P`3N QR3N S^N TCLN UCLN VCLN WCLN CLN OPN OPN CLN CLN KN HN IN H0N L3N L3}eN Uz2}fN 4uJ ^ ^ MN u=< NN DON E*PN DQN WRN OqbSN o TN DVN e`E XN EVYN Gk[N >:\N cB"^N c-_N r8 `N @TaN }4bN |cN {\*N CLN CLN CLgN n[ N CLN CLN CLN CLmN FnN }yoN ] N CLN CLN CLN CLN CLN CLN CLwN CxN M{yN RpN OP{N f |N ^J_}N q~N ]N JBN KFLN O~ ~N QOPN TR |N VCLN YFN ZHVFN [GoJN ]FuN _CLtN `CLN biu N cl N eh1' 5N gK6N hIpJN jCLN kCL:N mD;N nHN OPN CLaN Q#N OPN CLdN EZN OPfN ^N CLhN BiN MN OPkN U3 lN `mN [HnN A oN e*pN _\ qN Y rN _\) sN LtN KuN EN OPN CLxNAlyNRIezNI :NOPNCL}NG'~NKϔNK$NDNOP~NCLN!@N$B N%B N&EVN'EVN(EVN)EVN+B N,EVN-EN/zJN0@ N3PN5IN6LN9r N;JN>B N?RzNA}HNCM NDM NGg+ NIMqNJ@LNtCLNwEDNxtNyOPN{CLN|CLN}CLNCLNCLNCLNCLNYgNNgNavgNGHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNMNCLNCnNCLNCLNt NCLNCLNCLNOP$NJ%NK*u&NLNCL*NJE,NUNOP.NJlHNCLNCLNOPNCL3Noc4NA6Nf7N[338Na9Ns~:Nm;Nt@NVJ?NH@NFANP-NOPDN@nENGpxFNFwGNQaNgfNk4NdNr1f N ^=N }d N j Nn4a N@4N@!NCL NCLNhCLwNkAW xNlKzyNmPNnOP{Nqe |Ns]}Ntrs!~Nw]NzBlN{FN~~ ~NOPNY7 |NCLNF|NHNG0FNNDuNCLtNCLNiP NkP Nh=q 5NKo6NIT$NCLNCL:ND;NGHOPN@CLxNB@yNCPOzNDH NFOPNHCL}NJGo~NLKNMJNNDNOOP~NQCLNS@;NVB NWB NXEVNYEVNZEVN[EVN\B N]EVN^ENazNb@ NePvNgI@NhLNkr NJPNB NPlN}ĈNM NM Ng+ NMLN@LNCLNENtNOPNCLNCLNCLNCLNCLNCLNCLNYgNNgNavgNGHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNM.NCLNCNCLNCLNtz NCLNCLNCLNOP$NJ%NK6&NJN CL*NI,NU>aNOP.NJsNCLNCLNOPNCL3Nov"4NA6NnS37N ]38N!eٚ9N$sd :N&og;N'vgN*U?N+H@N,F{.AN-R8TN.OPDN/@6 EN0GdFN1FGGN2QDN]gFgN_l N`eNaqe Nd`̬Ne} NfjSk Ngn`* Ni Nj !NmCL NnCLNoCLNq_x= NtCLNvqt NxDNyD4KNzq+ N{kN|wna NCLNCLNCLNCLNCLNHs_NINzu NlQN]%Nsl Nv Ng NrNGIHNU$yNJZNH0NBH NQINGoNHDNy NR3 Nj NaNR\N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNKfNHNHNH"iNL3NL3}eN{R-;}fNt# ^ ^ MN5t NN8D ON9D}PN:DQN=V RN>OqbSN?o TN@D ]VNBdC XNCEYNEF2[NFZ\NG_}^NJcƕ_NKrc `NM@aNO~zbNP}4cNQ|NSCLNTCLNUCLgNXm N[CLN\CLN]CLN^CLmNFOnN|oN\ NCLNCLNCLNCLNCLNCLNCLwNAxNKǮyNRNOP{NdUV |N_}Nq~N]NBO/NF,N~; ~NOPNRU |NCLNF[DNHNGU6NHLuNCLtNCLNi} Nk+ Nh 5NK6NI5GNCLNCL:NC>;NF-FIM,N?UjN@OP.NAJNCCLNDCLNGOPNICL3NKoW4NMA6NPu7NQkg8NRi99N}s3:N~o;NuNUo?NH@NFrANS@NOPDN@uENGQFNFwGNQ<NmNrNjfNpu Nc]HN|X Nj NnQ N N !NCL NCLNCLN` NCLNqHF NH]NCNpPL NPcI NwB NCLNCLNCLNCLNCLNHvNINzu Nl7N]%Nsc Nv Ng NoٚNGNWFNKPNH<NBH NP^NG]NHD-Ny@ NPA NhU N_NQ6fN^N CLN CLN CLN CLNCLNOPNOPNCLNCLNK5NHNHeNEHXNHL3NIL3}eNa]}fNu1M ^ ^ MNduwo NNfDGONgDYPNhDQNlVRNmOSNnn TNoC{VNpc{^ XNqEYNsFބ[Nu<\NvQ.^Nyd/_Nzrq `N{@aN}}{bN~~cN{>NCLNCLNCLgNmh NCLNCLNCLNCLmNFGnN{oN\ NCLNCLNCLNCLNCLNCLNCLwNAHxNNfyNRNOP{Nc |N`}Nq|m~N]NB9NF[N~ ~NOPNPO |NCLNF6NGNG\uNK\uNCLtNCLNjz Nkw Nh 5NK6NIN!CLN"CL:N#C.;N%E RpCVV?RpDH@RpEFrARpFU RpGOPDRpH@ERpIGMFRpJFwGRpKPRpNg3RpOk,RpPd3RpQpk RpT`LRpU|Z RpVjH RpXn}[ RpY O RpZ~; !Rp]CL Rp^CLRp_CLRpa_d RpdCLRpgp- RpH]RpCRpp^ RpRpwl RpCLRpCLRpCLRpCLRpCLRpHrwRpJkRpz Rpl%Rp]%Rpr RpvW Rpg RpnlRpF!RpTRp[iRpIRpB+ RpQ-RpFRpHBRpy# RpRv RphUU Rp`ffRpTfRp^RpCLRpCLRpCLRpCLRpCLRpOPRpOPRpCLRpCLRpKRpHRpH RpH Rp L3Rp L3}eRpf6}fNvD ^ ^ MRp't0 NRp)DORp*DPRp+D7QRp.VRRp/O_SRpXn TRpZCVRp[c^ XRp\EYRp^Fl[Rp_˫\Rp`^8.^RpcdN_Rper9 `Rpf@paRph|#bRpi|cRpjzW RplCLRpmCLRpnCLgRprmަ RptCLRpuCLRpvCLRpwCLmRpzF5nRp}{IoRp~[ RpCLRpCLRpCLRpCLRpCLRpCLRpCLwRpBRxRpOyRpQfRpOP{Rpcwx |Rp^n}Rpr~Rp]RpB*URpFRp~; ~RpOPRpRo |RpCLRpF$RpG:RpGcRpNuRpCLtRpCLRpjY Rpk Rpg 5RpKL6RpHRpCLRpCL:RpC=;RpPRprV>y?RpsH{@RptFkARpuV RpvOPDRpwA|ERpxGGFRpyF_GRpzPRp|f`Rp}jc3Rpc9RpoB Rp_Rp|%_ Rpk Rpn Rp~ Rp~s !RpCL RpCLRpCLRp_ RpCLRpph RpGRpCRpo Rp×Rpvܹ RpCLRpCLRpCLRpCLRpCLRpHfRpI>Rp{LS Rpl/Rp]%Rpr+ RpvK Rpg Rpp\RpFRpSGRphRpJ85RpB@ RpRRpFRpH?Rpy]w RpN Rpm Rpa#3Rp U Rp"^Rp#CLRp$CLRp%CLRp&CLRp'CLRp+OPRp,OPRp.CLRp/CLRp2JRp4HSRp5HRp6H7Rp9LRp\RpX^Rpe_Rpr `Rp@]aRp|bRp}cRp{=qRpCLRpCLRpCLgRpm RpCLRpCLRpCLRpCLmRpF!nRp}oRp[- RpCLRpCLRpCLRpCLRpCLRpCLRpCLwRpBRxRpNkyRpTRpOP{Rpc33 |Rp`g}Rprp~Rp]RpBRpFVRp~ ~RpOPRpTa |RpCLRpF:RpGfRpG(ORpHxuRp CLtRp CLRp jf Rp k Rph 5RpKV6RpHRpCLRpCL:RpBM;Rp@PORpUqJ PRpVr QRpWERRpXIZTRpZG.URp[HlNVRp\E:Rp]OPRp_CLYRpa} ZRpb@&RpdOPRpfCL]Rphn ^RpjXUHRpkOPRpmCLaRpoMޠRpqOPRprCLdRptD4KRpvOPfRpx^RpyCLhRp{B}iRpTs RpOPkRpTg lRp^mRpZnRpA3oRpdLpRp_H qRpW rRp[G sRpKtRpK^uRpEDRpOPRpCLxRp@yRpQ)zRpH]RpOPRpCL}RpG~RpJ%RpJ1RpDhRpOP~RpCLRp' RpEVRpEVRpEVRp@RpEVRpEVRpEVRpEVRpERpzJRp@ RpORpI"7RpLRp r Rp JPRpB RpLvRp}YRpM RpM Rpg+ RpMRpEʘRp CLRp#ERp$tRp%OPRp'CLRp(CLRp)CLRp*CLRp,CLRp-CLRp.CLRp1YgRp2QiRp3avgRp4GHRp5kHRp6MHRp8CLRp9CLRp;CLRpCLRp?CLRp@]RpACLRpBCLRplCLRpmMԄRpoCLRprCRpsCLRptCLRpvx RpyCLRpzCLRp{CLRp~OP$RpJv%RpK\W&RpLRpCL*RpH,RpUcRpOP.RpKRpCLRpCLRpOPRpCL3Rpo"J4RpA6RpjY7Rpc&f8Rpcg9Rpr:Rpq;RpuRpUD?RpHn8@RpFg5ARpV^RpOPDRp@NERpGFFRpFwGRpPRphfRplfRpefRpod RpcRp| RpkK Rpn}[ Rp~24 Rp~@ !RpCL RpCLRpCLRp`׬ RpCLRpq RpERpCRpo7 RppRpv RpCLRpCLRpCLRpCLRpCLRpH_kRpIARpz Rp l=Rp6]%Rp7r Rp8v4 Rp9g RpbRpMy@Y RpNT߁ RpRl33 RpS`FfRpTU3RpU^RpVCLRpWCLRpYCLRpZCLRp[CLRp^OPRp_OPRpaCLRpcCLRpfJ3RpgHRphHٞRpiHRplLRpL}eRp^1}fRp v* ^ ^ MRpuK NRpD$ORpDPRpDHQRpVMRRpOWSRpo TRpCwVRpb XRpEYRpFC[Rp÷c\Rp]I^Rpd%_Rpr `Rp@SRaRp}{bRp}GcRp}(RpCLRpCLRpCLgRpm1 Rp CLRp CLRp CLRp CLmRp F&nRp }VgoRp [M9 Rp CLRp CLRp CLRp CLRp CLRp CLRp CLwRp AxRp K\yRp SRp OP{Rp b |Rp _}Rp pi~Rp #]Rp &BRp 'FRp *~ ~Rp ,OPRp /S |Rp 2CLRp 5FRp 6G9Rp 7GFRp bP#uRp dCLtRp fCLRp hk[# Rp ilX Rp jgm 5Rp lK&X6Rp mH,Rp oCLRp pCL:Rp rBE;Rp sPINRp OqORp rz PRp sc QRp EѕRRp I=TRp Gd2URp HF+VRp ERp OPRp CLYRp }I ZRp @ARp OPRp CL]Rp n$ ^Rp WRp OPRp CLaRp MsRp OPRp CLdRp CμRp OPfRp ^Rp CLhRp AfiRp SRp OPkRp S lRp _mRp [nRp AxRoRp dEpRp `G qRp X{ rRp \z sRp KtRp KuRp E2Rp OPRp CLxRp @yRp R HzRp H*Rp OPRp CL}Rp GJ~Rp JٽRp IRp DaCRp OP~Rp CLRp ' Rp *EVRp +EVRp ,EVRp -A2Rp .EVRp /EVRp 0EVRp 1EVRp 2ERp 4zJRp 6@ Rp 9PRp ;I"Rp Rp UUg?Rp H`@Rp FbARp Vo_Rp OPDRp A]ERp GBFRp FGRp P9Rp jvfRp m3Rp fRp od Rp a.Rp { Rp k Rp n$ Rp } Rp } !Rp CL Rp CLRp CLRp _i Rp "CLRp $p3 Rp %BRp &BRp (of Rp )CJ Rp *vv Rp UCLRp VCLRp WCLRp XCLRp ZCLRp ]H[Rp ^IqRp a{ Rp clRp f]""Rp gr Rp hu} Rp jg Rp mq)Rp pFKRp qVȉRp rpvRp sK{mRp uB Rp yP_Rp zFIRp {H?Rp ~y#; Rp O Rp gw Rp _3Rp T\Rp ^Rp CLRp CLRp CLRp CLRp CLRp OPRp OPRp CLRp CLRp JRp H)Rp HnRp G=Rp LRp L}eRp )Z}fRp hw~ ^ ^ MRp u " NRp DORp D]PRp DZQRp VERRp OSRp n TRp CwVRp b XRp EYRp F[Rp <\Rp \^Rp d]_Rp r `Rp @?aRp "|bRp $}cRp %{Rp 'CLRp (CLRp )CLgRp ,m Rp .CLRp 0CLRp 1CLRp 2CLmRp 5FdnRp 8}oRp 9[M9 Rp ;CLRp CLRp ?CLRp @CLRp ACLRp BCLwRp E@xRp FLyRp GR34Rp IOP{Rp Lb"# |Rp N_}Rp Os ~Rp Q]Rp TBRp UFRp ~Ü ~Rp OPRp RǮ |Rp CLRp F jRp Ge%Rp G9Rp FuRp CLtRp CLRp k) Rp kO Rp h% 5Rp K0Z6Rp HچRp CLRp CL:Rp B;Rp N0Rp OPfRp ^Rp CLhRp AiRp RXRp OPkRp SX lRp jmRp h33nRp C33oRp d.pRp a qRp W rRp \ sRp K[tRp KuRp DRp OPRp CLxRp @yRp PԃzRp H Rp OPRp HCL}Rp JGn~Rp LJRp MI Rp ODd)Rp POP~Rp RCLRp T@4Rp VEVRp WEVRp XEVRp YAlRp [EVRp \EVRp ]EVRp ^EVRp _ERp az1mRp dEVRp eORp gHRp hLRp kr Rp mJPRp pB Rp rSlRp t}(Rp uM Rp vM Rp yg+ Rp {MRp ~EʘRp CLRp ERp slRp OPRp CLRp CLRp CLRp CLRp CLRp CLRp CLRp YgRp NgRp avgRp GHRp kHRp MHRp CLRp CLRp CLRp CLRp CLRp CLRp CLRp ]Rp CLRp CLRp CLRp MRp CLRp CRp CLRp CLRp t Rp CLRp CLRp CLRp OP$Rp J=%Rp Kg&Rp H]Rp CL*RpH,RpUP^RpOP.RpKRpCLRpCLRpOPRpCL3Rpo4RpA6Rp"r7Rp#iL8Rp$zff9Rp&r}:Rp(r;Rp)xfRp,V5?Rp-HP2@Rp.F`ARp/W{Rp0OPDRp1@|ERp2G=FRp3EGRp4PRp7f|Rp8j4Rp9cfRp:n Rp=_A)Rp?{b= Rp@k/ RpAn RpB}I RpC}u% !RpFCL RpGCLRpHCLRpKa- RpvCLRpxo+ Rpy@RpzCRp{n}[ Rp|M5 Rp}vK RpCLRpCLRpCLRpCLRpCLRpH]RpIRp{ RplRp]""Rpr# Rpu6 Rpg RpofRpF!^RpXBRps&RpLHRpB RpP[RpFRpH@Rpy RpU Rphٚ Rp`S3RpT3Rp^RpCLRpCLRpCLRpCLRpCLRpOPRpOPRpCLRpCLRpJ[RpHRpHtRpGRpLRpL}eRp|_}fRp w ^ ^ MRp t NRpD ORpD%PRpDQRpWRRp>OnSRp?n TRp@BVRpAaσ XRpBE YRpDE[RpE\RpGX ^RpJf/_RpKrV `RpL@?aRpN~\*bRpO@YcRpP}W RpRCLRpTCLRpUCLgRpXm RpZCLRp[CLRp\CLRp]CLmRp`FnRpd oRpeZ't RpgCLRphCLRpiCLRpjCLRpkCLRpmCLRpnCLwRpqAxRprLpyRpsRRptOP{Rpw_ |Rp_}Rpt}~Rp]RpB BRpFRp~@ ~RpOPRpU |RpCLRpFRpG5XRpFRpLuRpCLtRpCLRpm=q RpkT Rpg 5RpK,6RpH6RpCLRpCL:RpBn;RpLƉXq rRph\{ sRpiKtRpjKuRpkD̘RplOPRpnCLxRppAyRpqMPzRprG'RptOPRpvCL}RpxGX~RpzJ"Rp{IRp|DaCRp}OP~RpCLRp@;RpEVRpEVRpEVRpARpEVRpEVRpEVRpEVRpERp{URpEVRpPH`,Rp?Ub[Rp@OP.RpAKcRpBCLRpCCLRpFOPRpHCL3RpKn4RpMA6RpOr7RpPb8RpQf`9RpTr:RpVvf;RpWyRpZUҕ?Rp[HB@Rp\F]8ARp]W)Rp^OPDRp_@JERp`G@MFRpaFGRpbPRpdf4RpfkRpgd<Rphne RpkcRpz Rpk Rpn Rp|& Rp},l !RpCL RpCLRpCLRp^a RpCLRpoXB Rp{ RpCRpn% RpL RpvW RpCLRpCLRpCLRpCLRpCLRpH^RpI.Rp{ RplRp]""Rpq3 Rpu65 Rpg RpmRpELRpVRptURpMRpB# RpQNRpYRpRl5Rpx RpN7. Rpj" Rp`RpTRp^RpCLRp CLRp CLRp CLRp CLRpOPRpOPRpCLRpCLRpJ9RpH/RpHRpG5RpLRpL}eRp]}fRpy5 ^ ^ MRpbs NRpeDkORpfDCPRpgC̏QRpjVB#RRpkOSRpln TRpmBVRpoa@ XRpqE@YRprE@[Rps\Rpt\^Rpwf=g_Rpxr `Rpz@IaRp|}bRp}A0cRp~zRpCLRpCLRpCLgRpm RpCLRpCLRpCLRpCLmRpF nRp|oRpY RpCLRpCLRpCLRpCLRpCLRpCLRpCLwRpB=qxRpLpyRpQ RpOP{Rp`33 |Rp`5}RprM~Rp]RpB&RpG Rp} ~RpOPRpQ; |RpCLRpE2RpG RpFVRpLuRpCLtRpCLRpn9 Rpk=q Rpgm 5RpK6RpI WRpCLRpCL:RpG̶;RpL%GOVRp?ERp@OPRpBCLYRpD}R ZRpEc RpGOPRpICL]RpKn}[ ^RpM^RpNOPRpPCLaRpSP"RpTOPRpVCLdRpXC{RpZOPfRp\^Rp]CLhRp_AOiRpQ$!RpOPkRpSM lRpimRpc=qnRpBoRpcpRp\q qRpS\) rRpX sRpLtRpKuRpDwRpOPRpCLxRpA$ZyRpJߋzRpGRpOPRpCL}RpGC~RpJjRpI RpDcpRpOP~RpCLRp@RpEVRpEVRp@-SRpARpEVRpEVRpEVRpEVRpERpzJRpEVRpPvRpIRpKCuRpr RpJPRpB RpLvRp}(RpLRpM Rpg+ RpMRpEʘRpCLRpErtRptRpOPRp CLRp CLRp CLRpCLRpCLRpCLRpCLRpYgRpPٚRpcLRpGHRpkHRpMHRpCLRpCLRpCLRpCLRp CLRp!CLRp"CLRp#]Rp$CLRp&CLRp'CLRpPMRpRCLRpUCRpWCLRpXCLRpYw Rp\CLRp]CLRp^CLRpaOP$RpbJ&%RpcK_<&RpfORphCL*RpkHJM,RplUzRpmOP.RpnKJRppCLRpqCLRptOPRpuCL3Rpxn4RpzA6Rp}e37Rp~V8Rp_y9Rpr:Rpvfg;RpyRpUi?RpH2+@RpFRTARpWERpOPDRp: ERpG9FRpEGRpPRpgRpm4RpffRpn/, Rpb|RpzXI Rpl5h RpnT Rp|} Rp|ƚ !RpCL RpCLRpCLRpa- RpCLRpn$ Rpx RpDZRpm Rp۩Rpu RpCLRpCLRpCLRpCLRpCLRpHVYRpI_Rpz RpluRp]""Rpq Rpt4 Rpg Rp!r#3Rp$EMRp%TRp&tRp'NRp*Bh Rp-RWPRp.FRp/HBRp2xP Rp3V- Rp6i{ Rp8`ٚRp9T)Rp:^Rp;CLRpOPRp@CLRpACLRpBCLRpCCLRpDCLRpECLRpFCLVXYgVXNgVXavgVX GHVX kHVX MHVX CLVXCLVXCLVXCLVXCLVXCLVXCLVX]VXCLVXCLVXCLVXMiVXCLVXCzVX CLVX!CLVX#wna VX&CLVX'CLVX(CLVX*OP$VX+J$"%VX,KA&VX/LVX2CL*VX5HC,VX6UϴVX7OP.VX8LVX9CLVX:CLVXeOPVXgCL3VXjnK4VXlA6VXnr7VXonff8VXppY9VXsrA:VXu|g;VXvy3VXyUe;?VXzH$@VX{FHWAVX|WVX}OPDVX EVXG:FVXEVGVXPQVXg4VXm VXeVXm VX^bVXy< VXlo VXn VX{ VX|` !VXCL VXCLVXCLVX^5 VXCLVXm VXvK VXBVXm- VXN! VXuZ VXCLVXCLVXCLVXCLVXCLVXHIVXIVXzu VXlVX]""VXph VXtz VXgT VXnVXEVXW޷VXvaVXNVXB0 VXPRVXFVXHEVXx0 VXO? VXl VX`fVXT9VX^VXCLVX,CLVX-CLVX.CLVX/CLVX2OPVX4OPVX6CLVX7CLVX:IVX;HVX=H;VX>GVXALVXBL}eVX_{}fRpM|F3 ^ ^ MVX]s NVX_CNOVX`D9PVXbCQVXeVB#RVXfOSVXgo TVXA4VVX_M XVXEYVXE[VXI\VXXx^VXf%_VXs9 `VX@?aVX|bVX@J>cVXy#VXCLVXCLVXCLgVXlF VXCLVXCLVXCLVXCLmVXF qnVX|VgoVXW VXCLVXCLVXCLVXCLVXCLVXCLVXCLwVXB xVXL#yVXOVXOP{VX^ |VX`hg}VXuy~VX]VXBVXFYVX~] ~VXOPVXO |VXCLVXEEVXFVX FVX QQ%uVXCLtVXCLVXp VXk VXh$ 5VXJe6VXI0VXCLVXCL:VXK;VXGCLVX?CLVXACLVXBCLVXCCLVXDCLVXECLVXF]VXGCLVXHCLVXICLVXKMwVXMCLVXOCVXQCLVXRCLVXTx# VXWCLVXXCLVXYCLVXOP$VXJ %VXK&&VXJ-AVXCL*VXH9,VXU5VXOP.VXLNvVXCLVXCLVXOPVXCL3VXno4VXA6VXi7VXb@8VXZ9VXr:VXw;VXzyVXU)?VXH?@VXFGnAVXX4:VXOPDVX^ EVXG<FVXE=GVXP`&VXkS3VXp33VXhVXl_o VXaVXy VXl VXnT VX{ VX{a !VXCL VXCLVXCLVXaj VXCLVXm VXv VXC VXk=" VXqkVXu VXCLVXCLVXCLVXCLVX CLVX H=VX I\VXz VXlVX]""VXp3 VXtM VXgT VXoVXE{nVX SOVX!yQVX"O>VXLB@ VXPQgVXQF}VXRHEVXUxt VXVV"q VXYhw VXZ`ffVX[T\VX]^VX^CLVX_CLVX`CLVXaCLVXbCLVXfOPVXgOPVXiCLVXjCLVXmIVXoHjVXpHVXqG$VXtLVXwL}eVXs#}fVX}}a ^ ^ MVXt NVXCPOVXC7PVXCqQVXV>WRVXO SVXn TVXA"VVX_k XVXEKYVXEv][VX˸\VXY ^VXfb_VXs* `VX@IaVX}ubVX@cVXy*VXCLVXCLVXCLgVXm!m VXCLVXCLVXCLVXCLmVXF nVX|oVXW VXCLVXCLVXCLVXCLVXCLVXCLVXCLwVXCxVXQ=qyVX!OVX"OP{VX%] |VX'c}VX(t;Z~VX*]VX-B VX/FYVX2~s ~VX4OPVX7P |VX9CLVXF VX?FVX@FOuVXBCLtVXCCLVXFq0! VXGl- VXHh J 5VXJJX6VXKI+KVXMCLVXNCL:VXyL}m;VX|P^VXCLVXCLVXwt VXCLVXCLVXCLVXOP$VXJ %VXK &VXIqVXCL*VXH0,VXVCVXOP.VXLgVXCLVXCLVXOPVXCL3VXnvL4VXA6VXZ37VXM8VXN9VXs0:VXx;VXyFgVXU?VX HT@VX FFAVX X6VX OPDVX @2iEVXG9FVXEnGVXP[VXkffVXpvgVXhffVXm& VXd/VXyʂ VXl VXn VX{/9 VX {/ !VX#CL VX$CLVX%CLVX'^SI VX+CLVX-o VX.{LS VX/CBVX0k VX2vVX5uS[ VX8CLVX:CLVX;CLVXVX CLVX CLVX5CLgVX8m/ VX:CLVX;CLVXVX FDAVX ?WYVX @OPDVX A@`EVX BG77FVX CEGVX DP*VX GjVX Ho|VX IhpVX Jkx VX NaVX O{ VX Pm- VX Qn VX Rz VX S{ !VX VCL VX WCLVX YCLVX [cjS VX ^CLVX `pX VX a}R VX bCVX cl~k VX M_ VX u VX CLVX CLVX CLVX CLVX CLVX H4VX IVX zcz VX l :VX ]%VX p3 VX t/ VX gv VX ofVX EVX VVX BsVX R VX Bk VX PpVX FVX HBVX x+ VX V3 VX mU VX `VX T`VX ^VX CLVX CLVX CLVX CLVX CLVX OPVX OPVX CLVX CLVX I=VX HWVX HRVX GVX LVX L}eVX ^3}fVX~|p ^ ^ MVX tF NVX CۢOVX D";PVX !C4QVX %VQTRVX &OySVX 'p$ TVX (AVVX )_[ XVX +EYVX TEi[VX VE\VX W] ^VX Zf_VX [sUV `VX \@?aVX ^34bVX _@cVX a{.VX cCLVX dCLVX eCLgVX hmSy VX jCLVX kCLVX lCLVX nCLmVX qEZnVX t~4oVX uV- VX wCLVX xCLVX yCLVX zCLVX |CLVX }CLVX ~CLwVX CBxVX K\yVX OVX OP{VX ^33 |VX a}VX r ~VX ]VX AVX FVX }h ~VX OPVX Tj |VX CLVX EYVX FNVX F"VX K/7uVX CLtVX CLVX qs VX k/ VX g 5VX J]c6VX I*cVX CLVX CL:VX M2;VX LeVX mU?VX nG9@VX oFJ(AVX pX,SVX qOPDVX r@\EVX sG-8FVX tEGVX uP9VX wffVX xlVX zdVX {l{ VX ~aVX {/ VX mh VX n VX z VX {w !VX CL VX CLVX CLVX ]Z7 VX CLVX q VX Fv VX DVX l VX OA VX t VX CLVX CLVX CLVX CLVX CLVX H0DVX IVX z VX k;VX ]%VX p| VX t VX g VX nVX D VX WqVX D'+VX S,VX B@ VX PVX F7VX H?VXx VXL VXgf VX_3VXUVX^VXCLVXCLVXCLVXCLVX CLVX#OPVX$OPVX&CLVX'CLVX*IVX,HWVX-HVX.G}VX1LVX2L}eVX `&}fVX ~7 ^ ^ MVXusM NVXxCOVXyDYPVXzCQVX}VERVX~O|SVXn TVXBDVVX`# XVXE3YVXE^[VXi\VXUO^VXff _VXsc `VX@IaVXA8RbVX@#cVXyVXCLVXCLVXCLgVXl VXCLVXCLVXCLVXCLmVXE~nVX{oVXV VXCLVXCLVXCLVXCLVXCLVXCLVXCLwVXD4xVXKfyVXPuVXOP{VX_fg |VX`}VXtO~VX]VXAVXFFVX} ~VXOPVXO, |VXCLVXEhsVXFoVXFOVXJ>uVXCLtVXCLVXqo VXk VXg# 5VXJ36VXI#VX CLVX CL:VXL`;VXI<|CLVX?CLBVXAu CVXBO-|DVXCBsEVXE`=qFVXFx\*GVXGP >HVXHJ LVXIEMVXJ@NVXKTfOVXNvMVXhCLVXkCVXlCLVXmCLVXow VXrCLVXsCLVXtCLVXwOP$VXxJ %VXyJ~&VX{K@VX~CL*VXG,VXV;VXOP.VXLVXCLVXCLVXOPVXCL3VXnN}4VXA6VXn7VX_g8VXa339VXsg:VXzFg;VXuVXU?VXG}@VXF?CAVXXvTVXOPDVXAEVXG% FVXE-GVXOVXefVXjgVXciVXlD VXdRVX{% VXmi VXo VXz)B VX{LS !VXCL VXCLVXCLVXdTj VXCLVXq VXA+VXDVXlo VX*VXt VXCLVXCLVXCLVXCLVXCLVXH VXJ VXzr VXk^VX]%VXpPL VX0tj. VX1g5 VX4qFfVX7DEVX8RVX:D\VX;SVX=B5 VX@R:}VXAF7VXBH: VXEwS VXGV1 VXJm&f VXKc6fVXLVVXM^VXNCLVXOCLVXQCLVXRCLVXSCLVXVOPVXWOPVXZCLVX[CLVX^Ig5VX_HVX`HVXaGVXeLVXhL}eVXX}fVX~.7 ^ ^ MVXtF NVXCŇOVXDPVXCQVXV:RVXO|SVX@;TVXBbVVX`R XVXE%YVXEK[VX\VX]^VXf_VXs9 `VXAZ#aVX@bVX@ cVXypVXCLVXCLVXCLgVXl VXCLVXCLVXCLVXCLmVXF=nVX|c4oVXW4 VXCLVXCLVXCLVXCLVX CLVX CLVX CLwVXAW xVXMuyVXQVXOP{VX` |VX_}VXs/~VX]VXB5,VXFVX"} ~VX$OPVX(P |VX*CLVX-EgVX.FfVX/FyVX2PuVX]CLtVX^CLVX`q33 VXal1 VXbg# 5VXeI*6VXfI,3VXhCLVXiCL:VXkK;VXlFhOVXv PVXv4 QVXERVXHdTVXF7?UVXGVVXDxyVXOPVXCLYVX|j ZVXr VXOPVXCL]VXn$ ^VX[gVXOPVXCLaVXO6VXOPVXCLdVXBVXOPfVX^VXCLhVX@}BiVXVZVXOPkVXRϵ lVXm(mVXiffnVXB=oVXapVX`\) qVXW rVX\z sVXL7ltVXLuVXD)iVXOPVXCLxVXALyVXRLzVXGVXOPVXCL}VXG~VXIaVXHVXD:VXOP~VXCLVX@C VX%EVVX&EVVX'AlVX(Ci(VX)EVVX*EVVX+EVVX,A{VX-EVX/zbVX1@ VX4P.CVX6I6/VX7LVX:r VXVXUCj?VXGe@VXF?CAVXX$kVXOPDVX@ EVXG FVXEvGVXOVXdVXkVX a3VX kǥ VX bFVX{% VXm VXo VXy{ VX{ !VXCL VXCLVXCLVX] VXCLVXq VX BVX!DVX#l8 VX$~VX%tx VXPCLVXQCLVXRCLVXSCLVXUCLVXXHVXYJVX\z VX^l*VXa]%VXbph VXctz VXeg5 VXhrVXkD<VXlUVXmD VXnT]VXpB\ VXsPuVXuFvVXvH7%VXyw3 VXzLLJ VX}lU VX~`fVXVfVX^VXCLVXCLVXCLVXCLVXCLVXOPVXOPVXCLVXCLVXILVXHlVXHWVXG>VXLVXL}eVX$X-}fVX`}d ^ ^ MVXs NVXCOVXD(PVXCqQVXV'RVXOxSVX@TVXB#VVXak XVXEzYVXErx[VXC\VXWfg^VXfNW_VXsr `VXBaVX~gbVX@\cVX yVX"CLVX#CLVX$CLgVX'l VX)CLVX+CLVX,CLVX-CLmVX0GnVX3|#4oVX4W VX6CLVX7CLVX9CLVX:CLVX;CLVXMVX{NVXQOVXvI PVXv QVXERVXHVFTVXFUVXGVVXDBVXOPVXCLYVX{ ZVX7 VXOPVXCL]VXm ^VXYVXOPVXCLaVXN,VXOPVXCLdVXBcVXOPfVX^VXCLhVX@`2iVXV`)VXOPkVXQ lVX mpmVX i=qnVX ~ oVXapVX`{ qVXXk rVX[ sVXL>tVXLGuVXDRVXOPVXCLxVXA+yVXPzVXDGVXFOPVXHCL}VXJG0~VXLIgVXMHtGVXND.}VXPOP~VXRCLVXT@-SVXVEVVXWEVVXXAVXYC4VXZEVVX\EVVX]EVVX^AVX_EVXa{PIVXdEVVXePVXgIVXhLVXkr VXmJVXpn VXqRVXt{HVXuLVXvM VXyg+ VX{L3VX~EʘVXCLVXEvVXslVXOPVXCLVXCLVXCLVXCLVXCLVXCLVXCLVXYgVXN3VX`&fVXi VXxVXkHVXCLVXCLVXCLVXCLVXCLVXCLVXCLVX]VXCLVXCLVXCLVXM>VXCLVXCVXCLVXCLVXua VXCLVXCLVXCLVXOP$VXI%VXJ&VXP}VX CL*VXG,VXVkVXOP.VXLZVXCLVXCLVXOPVXCL3VXn4VXA6VX"Ay7VX#n8VX$pY9VX&s}:VX(~ ;VX)xyVX,U7?VX-G@VX.F+KAVX/XVX0OPDVX1@HEVX2G FVX3EGVX4OVX7PVX8UVX9OgVX:kq VX=aVX>|%_ VX@n% VXAoK VXBy@ VXCzu !VXFCL VXGCLZ@CLZ@b Z@ CLZ@ qV Z@C4Z@DZ@la7 Z@/Z@t[ Z@CLZ@CLZ@CLZ@CLZ@CLZ@ H Z@"J Z@%z? Z@'k$Z@*]%Z@+p Z@,t/ Z@-g Z@0rٚZ@4D7Z@5QZ@6E'3Z@7U;Z@9B Z@dPNZ@eFvZ@fH2Z@jw Z@kSx Z@nl Z@oa3Z@pYIZ@q^Z@rCLZ@tCLZ@uCLZ@vCLZ@wCLZ@zOPZ@|OPZ@~CLZ@CLZ@I1Z@Hh:Z@H{FZ@GZ@LZ@L}eZ@roy}fVX}1g ^ ^ MZ@uK NZ@C[OZ@D$PZ@CQZ@VRZ@OfSZ@} TZ@BxaVZ@` XZ@EMYZ@EC[Z@ฬ\Z@Zr^Z@e;_Z@s `Z@DaZ@|aHbZ@}(cZ@u Z@CLZ@CLZ@CLgZ@l Z@CLZ@CLZ@CLZ@CLmZ@H2nZ@}yoZ@X Z@CLZ@CLZ@CLZ@,CLZ@.CLZ@/CLZ@0CLwZ@3{\*xZ@4IyZ@5PZ@6OP{Z@:` |Z@<`X}Z@=s# ~Z@?]Z@BC`@Z@CFZ@F~l^ ~Z@IOPZ@LULK |Z@NCLZ@QE&Z@RF#{Z@SFqZ@WMuZ@YCLtZ@ZCLZ@\pu Z@]kI Z@_gF 5Z@aJ)6Z@bI:Z@dCLZ@eCL:Z@N<|;Z@OZ@Uʫ?Z@ G5@Z@!FAZ@"XZ@#OPDZ@$@BEZ@%F'FZ@&EGZ@'OqaZ@*PS3Z@,VZ@-OZ@.j Z@1dZ@2| Z@3n`* Z@4oK Z@6yN Z@7z !Z@:CL Z@;CLZ@_ Z@ACLZ@CqV Z@EEZ@FDZ@Gl Z@IaZ@Lt>u Z@OCLZ@PCLZ@QCLZ@SCLZ@TCLZ@WHZ@XIBZ@[z Z@k$Z@]%Z@o Z@t!N Z@gx Z@q6fZ@DZ@OrZ@E(Z@VZ@Bh Z@Q$Z@FAZ@H-Z@w Z@N Z@m Z@`LZ@VZ@^Z@CLZ@CLZ@CLZ@CLZ@CLZ@OPZ@OPZ@CLZ@CLZ@I Z@HbZ@HuZ@GZ@LZ@L}eZ@Im}fZ@\|| ^ ^ MZ@t NZ@COZ@ DPZ@ CnQZ@ URZ@O&SZ@pA TZ@B#VZ@ak XZ@E YZ@E-\[Z@\Z@\̓^Z@e_Z@sU `Z@C_aZ@}fgbZ@ |34cZ@!u.Z@#CLZ@LCLZ@MCLgZ@Ql Z@SCLZ@TCLZ@UCLZ@VCLmZ@YG-nZ@\}4oZ@]X Z@`CLZ@aCLZ@bCLZ@cCLZ@dCLZ@eCLZ@fCLwZ@j@#xZ@kHyZ@lP >Z@mOP{Z@p` |Z@ra}Z@sq~Z@u]Z@yCtyZ@zF4Z@}} ~Z@OPZ@V |Z@CLZ@EVZ@F"Z@FsZ@JuZ@CLtZ@CLZ@p1' Z@kĜ Z@g 5Z@J=6Z@I@+Z@CLZ@CL:Z@Mi;Z@KAD8Z@?OPZ@ACLxZ@CAt@yZ@DKn zZ@FGQZ@HOPZ@JCL}Z@LGX~Z@NI,Z@OH2Z@xDZ@yOP~Z@{CLZ@}@Z@EVZ@EVZ@AҩZ@CBZ@EVZ@EVZ@EVZ@B Z@EZ@xdZ@EVZ@O/Z@IZ@LZ@r Z@JZ@n Z@PZ@zZ@K/qZ@M Z@g+ Z@LCZ@EʘZ@CLZ@EZ@saWZ@OPZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@YgZ@PfZ@aZ@OZ@NZ@GHZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@]Z@CLZ@CLZ@CLZ@M۽Z@CLZ@CzZ@CLZ@CLZ@u Z@CLZ@CLZ@CLZ@OP$Z@I%Z@ J&Z@ LZ@CL*Z@GȬ,Z@UZ@OP.Z@M2Z@CLZ@CLZ@BOPZ@DCL3Z@Fm4Z@HA6Z@K}7Z@Lr&f8Z@MfL9Z@Pso3:Z@Qy;Z@RvZ@UUT?Z@VG3@Z@WFAZ@XXcZ@YOPDZ@Z@EZ@[FFZ@\E۵GZ@]OZ@aT&fZ@bY@Z@cSZ@dh0 Z@hb%Z@iz Z@jn Z@ko Z@lx Z@mzT !Z@pCL Z@qCLZ@sCLZ@ua< Z@xCLZ@zouq Z@{DZ@DZ@kw Z@jZ@t Z@CLZ@CLZ@CLZ@CLZ@CLZ@GZ@IľZ@z Z@knZ@]""Z@o+ Z@t!N Z@gx Z@mfZ@DrZ@RIZ@E*Z@WZ@Bff Z@PZ@FZ@H)cZ@w| Z@PW Z@l Z@`Z@YffZ@^Z@CLZ@ CLZ@ CLZ@ CLZ@ CLZ@OPZ@OPZ@CLZ@CLZ@IZ@HU/Z@HtZ@GZ@LZ@L}eZ@n}fZ@|y ^ ^ MZ@ et` NZ@ gCOZ@ hD1PZ@ iCQZ@ lU-RZ@ mO&SZ@ nof TZ@ oAVZ@ q`~ XZ@ sEYZ@ tE:[Z@ u\Z@ v`[^Z@ yd_Z@ zs `Z@ }B(aZ@ ~@aHbZ@ @ cZ@ y{Z@ CLZ@ CLZ@ CLgZ@ l Z@ CLZ@ CLZ@ CLZ@ CLmZ@ GInZ@ |oZ@ XD Z@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLwZ@ ypxZ@ LQyZ@ NǮZ@ OP{Z@ _DD |Z@ b}Z@ sd~Z@ ]Z@ CZ@ FZ@ ~ ~Z@ OPZ@ Q5 |Z@ CLZ@ EZ@ FZ@ F(Z@ J)uZ@ CLtZ@ CLZ@ q) Z@ l^ Z@ h 5Z@ J 6Z@ IlZ@ CLZ@ CL:Z@ K;Z@ Fw3 QZ@ ?ERZ@ @H*TZ@ BEIUZ@ CF VZ@ DCZ@ EOPZ@ GCLYZ@ IzT ZZ@ J} Z@ LOPZ@ NCL]Z@ Pme ^Z@ RdZ@ SOPZ@ UCLaZ@ XQZ@ YOPZ@ [CLdZ@ ]B"Z@ _OPfZ@ a^Z@ bCLhZ@ ^ iZ@ SUZ@ OPkZ@ RU lZ@ rmZ@ mnZ@ } oZ@ apZ@ c qZ@ V33 rZ@ ]\ sZ@ LEtZ@ LuZ@ CZ@ OPZ@ CLxZ@ AyZ@ RrzZ@ G'Z@ OPZ@ CL}Z@ G )~Z@ HZ@ HwZ@ DZ@ OP~Z@ CLZ@ @Z@ EVZ@ EVZ@ B Z@ DBZ@ EVZ@ EVZ@ EVZ@ BcZ@ EZ@ {#Z@ EVZ@ PIZ@ H,Z@ K<-Z@ r Z@ JRZ@ nB Z@ RrZ@ z8Z@ LZ@ M Z@ g+ Z@ KZ@ EʘZ@ CLZ@ ErtZ@ siZ@ OPZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ _IZ@ NgZ@ bpZ@ RZ@ MHZ@ R{Z@ !CLZ@ "CLZ@ #CLZ@ $CLZ@ %CLZ@ &CLZ@ 'CLZ@ (]Z@ *CLZ@ +CLZ@ TCLZ@ UMhZ@ WCLZ@ ZC>Z@ \CLZ@ ]CLZ@ _vY Z@ aCLZ@ bCLZ@ cCLZ@ fOP$Z@ gI.%Z@ hJ &Z@ kHAZ@ mCL*Z@ pGm,Z@ qU?Z@ rOP.Z@ sMZ@ uCLZ@ vCLZ@ yOPZ@ {CL3Z@ }m4Z@ A6Z@ u&g7Z@ `f8Z@ bٚ9Z@ sFS:Z@ x;Z@ r9Z@ T?Z@ G@Z@ EAZ@ W!Z@ OPDZ@ ' EZ@ FFZ@ EɔGZ@ O5~Z@ PZ@ V@Z@ PZ@ fʭ Z@ bv$Z@ y`7 Z@ n Z@ n Z@ xWc Z@ y !Z@ CL Z@ CLZ@ CLZ@ ^D Z@ CLZ@ mi Z@ vv Z@ EZ@ kh Z@ Z@ s Z@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ GZ@ IZ@ z$ Z@ k7eZ@ ]""Z@ !oK Z@ "sc Z@ #gjU Z@ &nfZ@ )DdZ@ *R'Z@ ,DZ@ -YSZ@ /Bn Z@ 2O?Z@ 3GMZ@ 4MZ@ 7wQ? Z@ 8K Z@ VZ@ ?^Z@ @CLZ@ ACLZ@ CCLZ@ DCLZ@ ECLZ@ HOPZ@ IOPZ@ KCLZ@ MCLZ@ PH Z@ QHJMZ@ RH_)Z@ SGoZ@ VLZ@ L}eZ@ YĄ}fZ@ ~4 ^ ^ MZ@ s NZ@ COZ@ C{PZ@ CDQZ@ URZ@ O*SZ@ o TZ@ A[VZ@ _k XZ@ Ec@YZ@ En[Z@ r\Z@ Q`^Z@ d:_Z@ t `Z@ AaZ@ ~RbZ@ ~cZ@ wZ@ CLZ@ CLZ@ CLgZ@ l Z@ CLZ@ CLZ@ CLZ@ CLmZ@ GnZ@ #4oZ@ V Z@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLZ@ CLwZ@ {xZ@ LByZ@ PZ@ OP{Z@ \ |Z@ c"S}Z@ u/~Z@ ]Z@ BZ@ FZ@ ~z ~Z@ OPZ@ RǮ |Z@ CLZ@ ErjZ@ EZ@ FvZ@ JJSuZ@ LCLtZ@ NCLZ@ PsR Z@ QmD Z@ RhP 5Z@ TIV6Z@ UIfLZ@ WCLZ@ XCL:Z@ [LM;Z@ ^OBNpZ@ c qZ@ Y rZ@ _ sZ@ LEtZ@ L&uZ@ CַZ@ OPZ@ CLxZ@ A yZ@ QszZ@ FmZ@ OPZ@ CL}Z@ Fݱ~Z@ HZ@ GRZ@ D Z@ OP~Z@CLZ@: Z@EVZ@EVZ@B)Z@DnQZ@@Z@EVZ@EVZ@BnZ@EZ@{/Z@"EVZ@$P eZ@&IMZ@'K<-Z@*r Z@,JRZ@/m Z@0RZ@2zZ@3LZ@4M Z@7g+ Z@9KZ@CLZ@AEjZ@BsOZ@DOPZ@FCLZ@GCLZ@HCLZ@ICLZ@JCLZ@KCLZ@tCLZ@wXFgZ@xN3Z@y^Z@{O\Z@|M(Z@}Q Z@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@]Z@CLZ@CLZ@CLZ@MZ@CLZ@C2Z@CLZ@CLZ@w Z@CLZ@CLZ@CLZ@OP$Z@I%Z@J&&Z@RbZ@CL*Z@G,Z@UXHZ@OP.Z@MZ@CLZ@CLZ@OPZ@CL3Z@m'4Z@A6Z@^37Z@U8Z@a9Z@rA:Z@@3;Z@sZ@Uf?Z@G]c@Z@EjAZ@WZ@OPDZ@ATJEZ@F|FZ@EtGZ@OZ@RvgZ@X4Z@SZ@e Z@]Z@x; Z@oK Z@n Z@x Z@y !Z@CL Z@CLZ@CLZ@ ` Z@ CLZ@mYk Z@w Z@D|Z@kQ Z@<Z@?sl Z@BCLZ@CCLZ@DCLZ@ECLZ@FCLZ@JGZ@KIZ@Nz Z@PkZ@S]""Z@Tn% Z@UrE Z@VgjU Z@ZslZ@]DwnZ@^OVZ@_DZ@`ZZ@bB Z@eP0Z@fGZ@h^#Z@kwB Z@lQ_ Z@ol Z@paffZ@qWVfZ@r^Z@tCLZ@uCLZ@vCLZ@wCLZ@CLZ@OPZ@OPZ@CLZ@CLZ@HضZ@H1Z@HYZ@GyZ@LZ@L}eZ@vW>~Z@h]Z@kBfZ@lG Z@p)b ~Z@rOPZ@uRU |Z@wCLZ@zEa5Z@{ERZ@}FnZ@PzcuZ@CLtZ@CLZ@s- Z@l Z@h=q 5Z@J 6Z@IJ(Z@CLZ@CL:Z@M0;Z@PF~Z@@HvZ@AGyZ@BCZ@DOP~Z@FCLZ@Gr Z@JEVZ@KEVZ@LBUZZ@MDZ@N@JeZ@PEVZ@QEVZ@RBZ@SEZ@UzJZ@XEVZ@YPZ@[I~Z@\K8Z@_r Z@aK#Z@dl Z@eP*Z@hzZ@iLZ@jM Z@g+ Z@KZ@EʘZ@CLZ@EVZ@qZ@OPZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@X<Z@LgZ@`0Z@O\Z@N=qZ@Q Z@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@]Z@CLZ@CLZ@CLZ@M֯Z@CLZ@C$Z@CLZ@CLZ@xt Z@CLZ@CLZ@CLZ@OP$Z@I%Z@J|1&Z@NZ@CL*Z@Gp,Z@UZ@OP.Z@MDZ@ CLZ@ CLZ@ OPZ@CL3Z@m$4Z@A6Z@r7Z@ig8Z@e9Z@rK:Z@t@;Z@o3Z@ Uz?Z@!G5e@Z@"E@AZ@#WZ@$OPDZ@%AEZ@&F FZ@'EmGZ@(O1Z@,JZ@-N4Z@.IZ@/eMa Z@2d3:Z@3w` Z@]o,| Z@^n Z@_w Z@`y !Z@cCL Z@dCLZ@eCLZ@h_/ Z@kCLZ@mla7 Z@nBwZ@oE@Z@pi[ Z@qKZ@rsF Z@vCLZ@wCLZ@xCLZ@yCLZ@zCLZ@}Gp#Z@~IuZ@zT Z@jZ@]""Z@n0 Z@qt Z@g[ Z@oZ@DlZ@S"Z@DvZ@[Z@B Z@NqZ@HZ@fhiZ@w4 Z@Q[ Z@mf Z@`FfZ@WS3Z@^Z@CLZ@CLZ@CLZ@CLZ@CLZ@OPZ@OPZ@OPZ@CLZ@HZ@HpZ@HU/Z@GlBZ@LZ@L}eZ@qB}fZ@@W>^ ^ MZ@*tb NZ@,CaOZ@-CPZ@.B+QZ@1URZ@3O14SZ@4r TZ@5@rPVZ@6]/ XZ@7DjYZ@9EV>[Z@:\Z@CL3Z@Am4Z@CA6Z@En7Z@F`8Z@Gis39Z@Jq:Z@LoY;Z@MjٙZ@PT!?Z@QG@Z@REچAZ@SW{Z@|OPDZ@}AEZ@~FFZ@EGZ@O"Z@IfZ@MZ@IZ@dP Z@dZ@w Z@oI Z@n Z@w4 Z@x !Z@CL Z@CLZ@CLZ@^'U Z@CLZ@kd Z@F(Z@DZ@h Z@YZ@s Z@CLZ@CLZ@CLZ@CLZ@CLZ@GZ@IKZ@zcz Z@jZ@]""Z@kQ Z@o,| Z@gM Z@pZ@DbZ@N7Z@D6Z@\&8Z@Bz Z@PZ@J+Z@nZ@w Z@L Z@LZ@`Z@Y3Z@^ Z@CLZ@CLZ@CLZ@CLZ@CLZ@ OPZ@ OPZ@ OPZ@ CLZ@HZ@H2Z@HZ@GvZ@LZ@L}eZ@EZw}fZ@@q^ ^ MZ@^s2 NZ@`CcOZ@aCPZ@bBbkQZ@eUxRZ@fO-SZ@gph TZ@i@VZ@j\5 XZ@kD\YZ@mEK[Z@n\Z@oQ6^Z@reo_Z@tt8 `Z@u@aZ@w|bZ@x|34cZ@ywW Z@{CLZ@|CLZ@}CLgZ@lFg Z@CLZ@CLZ@CLZ@CLmZ@FnZ@}4oZ@SY Z@CLZ@CLZ@CLZ@CLZ@CLZ@CLZ@CLwZ@@{xZ@IyZ@PZ@OP{Z@Y |Z@c }Z@u~Z@]Z@BQZ@FZ@~ ~Z@OPZ@R~g |Z@CLZ@ED;Z@E Z@FvZ@ NzuZ@CLtZ@CLZ@sy Z@k Z@h7L 5Z@J$"6Z@I Z@CLZ@CL:Z@Ky;Z@!I<|OPZ@@CLYZ@Bxo ZZ@C} Z@EOPZ@GCL]ik ^iXZOi OPi CLai L2iOPiCLdiAHiOPfi^iCLhi~ iiOiOPkiQ? litRmi t\)ni!@|)oi$`<pi&\L qi'T{ ri(Y si)LOti*L3ui+D0i,OPi.CLxi0Ayi1JJzi2F:i4OPi6CL}i8F>K~i:HD;i;GidCifOP~ihCLij}h ilEVimEVinBnioDYiq@irEVisEVitCiuEiwzJizEVi{Oi}Ii~Lir iJikh iTiz iLiM ig+ iKiP0iCLiEtCiqiOPiCLiCLiCLiCLiCLiCLiCLiYgiN`i_S3iNiJiP >iCLiCLiCLiCLiCLiCLiCLi]iCLiCLiCLiMْiCLiCaiCLiCLiwS iCLiCLiCLiOP$iI%iJlH&iH%iCL*iG>,iTDiOP.iM/iCLiCLi-OPi.CL3i1m44i3A6i6`&f7i7QL8i8hff9i:q*:ihi?OP>i@UZ?iAF@iBEAiCWiDOPDiEAҩEiFFFiGE}xGiHNՃiLKgiMP3iNLYiOb iR]NpiTv2" iUof iVnT iWv iXxe !i[CL i\CLi]CLi`a icCLiej ifDZigCig iGJ isrb iCLiCLiCLiCLiCLiGiI iz)B iji]ii= in4a igM ipiDRQiT%iC i]6iB) iN^iKiyzYiv iU il i`3iWVfi^iCLiCLiCLiCLiCLiOPiOPiOPiCLiH5iHGiHiGiLiL}ei].Y}fZ@@^ ^ Mit+ Ni!COi"DPi#B&Qi&UZ`Ri(O`Si)o Ti*@?5Vi+]/ Xi,D~XYi.EA[i/ \iYZ^i\f[_i]tG `i^@Tai`}Gbia|cibvpidCLifCLigCLgijl"j ilCLimCLinCLioCLmisF~$niv~IoiwR iyCLizCLi{CLi|CLi}CLiCLiCLwiCxiJHyiOiOP{i[ |ib}ivG~i]iBcjiFvi~ ~iOPiR ( |iCLiEE$iD%iFliJEuiCLtiCLit33 ik ih 5iJ$"6iHiCLiCL:iH;iF<iYYo?i~] iOPiCLBivt CiSDiAgEiWRFirGiU{HiGQ LiIpMi}NifǯOiy]w PixWc QiFRi G0Ti"ETUi#F:Vi$C2i%OPi'CLYi)xo Zi*} i,OPi.CL]i0k ^i2Pi3OPi4CLai6Hi8OPi:CLdiOPfi@^iACLhiC~] iiDOiFOPkiGQ(> liHtmiJt\)niKqE oiN`fpiP^\) qiQVG riRY siSLZtiTL6uiUD iVOPiXCLxiZ@yi[RziFiOPiCL}iFR~iH*iGniCiOP~iCLi}h iEViEViBwiE i@iEViEViC=iEizJiEViPiHiLir iJRik iQ iyiLiM ig+ iKiZQiCLiE&ipTiOPiCLiCLiCLiCLiCLiCLiCLi_4iPi_yiM >iL{iOpiCLiCLiCLiCLiCLiCLiCLi]iCLiCLi CLi M!i CLiCiCLiCLix+ iCLiCLiCLiOP$iI %iJb&i Ri#CL*iNG .,iOTiPOP.iQMLiSCLiTCLiVOPiXCL3i[mj?4i]A6i`j7iaq8ibhٙ9idp:ifmf;igi<ihgiiOP>ijU,?ikFϥ@ilEЌAimW7inOPDioArEipFfLFiqEm*GirOmiuI<ivN`iwIixbD i{e1i|uk i}of inT ivY iwt !iCL iCLiCLi\ iCLijH iAiF(ig/ iH isF iCLiCLiCLiCLiCLiGiImiz ijfi]""ih6 im ig/ ioٚiDAiT$@iC"i^<iB) iNOiM|kiA ivܹ iL} il i`3i[fi^ iCLiCLiCLiCLiCLi OPi!OPi#OPi%CLi(Hi)HLi*H~i+Gi/Li0L}ei\ʴ}fi@҂^ ^ MiHsj NiJCOiKCrPiLB=eQiOU;RixO Siyo Tiz0 Vi|[ Xi}DYYiE<[i\iU^if3>_itUU `i@ai|34bi|civBiCLiCLiCLgil iCLiCLiCLiCLmiF_`ni}ٚoiR  iCLiCLiCLiCLiCLiCLiCLwiA >xiKyiO\iOP{iZ33 |ic }ivr~i]iBPiG Ti~ ~iOPiQ |iCLiEF iD)iFiK!GuiCLtiCLit ik/ igH 5iJ%6iHiCLiCL:iF7 ;iL<i Y ?i ~24 i OPiCLBiw CiRDiAEiWFirGiWzHiGP Li@eGMiB_NiCCfOiEy PiFx QiGFRiHGBTiJEBUiKFViMBiNOPiPCLYiQxP ZiR} iTOPiVCL]iXkh ^iZKۏi[OPi]CLai_F(iaOPicCLdie@igOPfii^ijCLhil~ iimNAjioOPkipQG liqvffmirvGnisn oiv`qpix_ qiyWH ri{\G siL_tiL;uiDkiOPiCLxi@yiQziFiOPiCL}iEѕ~iHiGN[iCaiOP~iCLi}R iEViEViBɀiE*i@۶iEViEViCi(iEixiEViOiI4^iKCuir iKilo iLviyiLiM i g+ i Ki ^$iCLiEijiqOiOPiCLiCLiCLiCLiCLiCLiCLiYgi!M#3i"`9i#Li$KRi%O\i'CLi(CLi)CLi*CLi+CLi,CLi.CLi/]i0CLi1CLi2CLi3M>i5CLi8Cyi:CLi;CLi=x:D i@CLi@CLiACLilOP$imI%inJX&iqN\itCL*ivG|,iwU*ixOP.iyMfi{CLi|CLiOPiCL3ime4iA6ig7ig8icf9ip:ii;ig@<ie@iOP>iT?iF@iEŨAiWiOPDiAEiFKFiE]GiNiG6giLiGiaM id]iv iouq inT iv4 iw !iCL iCLiCLi^a iCLikw i@XiFiihr i* is iCLiCLiCLiCLiCLiGiIiz ij3wi]""igJ il ig im3iD6AiPziD 'i_.Vi B i6Oi7Nki8B$i;v ii UG?i F@i E$Ai Wri OPDi AEi F:Fi ELGi Ni Gpi L<i Hi `oT i ayi vU~ i ouq i nT i u6 i wna !i CL i CLi CLi a i CLi k) i { i Ci hq7 i i r+ i CLi CLi CLi CLi CLi GxKi I8i "z % i $j#i ']""i (hq7 i *k) i +fR i Vpi YDi ZNUi [D 'i \`!i ^B i bPr.i cOi dCi gvt i hV i krb" i l`i m\c3i o^ i pCLi qCLi rCLi sCLi uCLi xOPi yOPi zOPi |CLi HYi HPi H\i GѼi Li L}ei K }fi (Aΐ^ ^ Mi r Ni ClOi D#Pi AQi URi O*Si o Ti @Vi ^"; Xi DYYi E@[i ڹ\i X=(^i eE_i t `i @ai zbi zci vi CLi CLi CLgi k? i CLi CLi CLi CLmi FX#ni }ٚoi !S¼ i #CLi $CLi &CLi 'CLi (CLi )CLi *CLwi -} >xi .I\yi /Pi 1OP{i 4\UV |i 6`}i 7s~i 9]i iU@?iF|@iE)AiWiOPDiAEiF'FiE=(GiNҡi @33i!E&fi#@i$_- i'_Ai(vU~ i)ouq i*nT i+uD i-wl !i0CL i1CLi2CLi4\ i7CLi9k=" i;vR iQiURiO;Sio Ti@Vi]Y XiDYYiEPg[i G\i R ^i d>_it9 `i@ai{ bi} >ciCLi?CLi@CLgiCl+ iFCLiGCLiHCLiICLmiLFKyniO{oiPTU iRCLiTCLiUCLiVCLiWCLiXCLiYCLwi\zxi]Kyi_O#i`OP{ic[fg |ieaӫ}ifr8~ih]ikB0imGHTip~ ~irOPiuN |iwCLiESiDuiF|iOP/uiCLtiCLiy. im iht 5iJ 6iILiCLiCL:iI\;iK<iY?i~] iOPiCLBix CiNDiAEEi[{FiqGiUHiG$ Li{Min(NiP >OizF^ Piy@ QiF(RiGnTiE UiEViCqiOPiCLYiyl Zi|oQ iOPiCL]i kh ^i Bi OPiCLai@XiOPiCLdiAW3iOPfi^iCLhi} iiWmi OPki!QV li"tffmi#t{ni$sc oi'api)b qi*\\ ri+_ si,LX7ti.LKvui/Cui0OPi2CLxi4@yi5Jzi6Fi8OPi:CL}iGi?FihCiiOP~ikCLim}R ipEViqEVirBisEZitA2iuEVivEViwCiyEi{xi~EViOPiIriLir iKiB iLviyBiLiM ig+ iKif iCLiEiqiOPiCLiCLiCLiCLiCLiCLiCLi]iPyiX iL34iLiN=qiCLiCLiCLiCLiCLiCLiCLi]iCLiCLiCLiMviCLiCiCLiCLix iCLiCLiCLiOP$iI[%iJ3&iQiCL*iF,iSiOP.iM\iCLiCLi0OPi2CL3i5m%4i6A6i9j7i:UY8i;T9i>n[::i@l;iAiy<iBg&giCOP>iDT?iEFfL@iFEFAiGViHOPDiICBEiJFSFiKE0zGiLNiOS6fiPWiRQiiS_- iVciWwZ iXouq iYn iZtY i\vt !i_CL i`CLiaCLic_+ ifCLihl5h ij ikF(ij ^ i_irE iCLiCLiCLiCLiCLiGEiI iz7 iji]""ii\ ij ifp ir#3iCݑiM}iCiib;iBǮ iP 5iR<iDivv iQ3 isY ia i]Yi^ iCLiCLiCLiCLiCLiOPiOPiOPiCLiH=iHGiIi GӍi LiL}eiQ}fiC(^ ^ Mi(uG Ni*COi+CRPi,B=eQi/T%Ri0OJ)Si1oK Ti2A(Vi\^[G Xi]D^Yi_E@[i`VF\iaZ^idd_ietr `ig@aii}4bijzucikwimCLinCLioCLgirki iuCLivCLiwCLixCLmi{F=ni~~4oiU's iCLiCLiCLiCLiCLiCLiCLwi~zxiO\yiNkiOP{i] |ibR<}iuB~i]iBiGOi~s ~iOPiUZ |iCLiE]iDiFiHHuiCLtiCLiy inI ih 5iI6iIiiCLiCL:iIL;iH=<iR8$?i~z iOPiCLBixe CiMtgDiA1EiX\FigGidQHiG LiZMiL34NilOi%zr Pi&y Qi'F(Ri(G`Ti*D;Ui+EVi-Choi.OPi/CLYi1y Zi2|C i4OPi6CL]i8k ^i9@`2i;OPi=CLai?~@ iAOPiCCLdiEA+iGOPfiI^iJCLhiL}R iiMVRaiOOPkiPQ liQqmiRo=qniTn{ oiV`piXbp qiZ[L ri[]( si\LMHti]LSui^CCi_OPiCLxi@RyiR/ziGiOPiCL}iF(~iGziFָiCiOP~iCLi} iEViEViC iEWiA^viEViEViDiEixiEViOiIU iLir iKiB iSiy%iLiM ig+ iKigHiCLiEiq^iOPiCLiCLiCLiCLiCLiCLiCLiYgiG6giNgiK iIiPGiCLiCLi CLi CLi CLi CLiCLi]iCLiCLiCLiMiCLiCiCLiCLixWc i CLi!CLi"CLi$OP$i%I~%i&J&&iQN%iTCL*iWF,iXTGiYOP.iZMi\CLi]CLi_OPiaCL3idll4ifA6ihj7ii[l8ijS,9imnU:iooL;ipn<iqhirOP>isU[)?itFQk@iuEAivWYiwOPDixG0EiyFFizE$Gi{NiU)iZiSpi_ ic iw;m iouq in it ivK !iCL iCLiCLi_ iCLilR iFmiE*iiLl iŊir iCLiCLiCLiCLiCLiG7iImiz7 ij i]""ii[ ij if/ ir&fiCiN(iC~icEiB iPj@iStiDivh. iR i!l i"_3i#Zi$^ i%CLi&CLi(CLi)CLi*CLi-OPi.OPi/OPi2CLi5H,bi6HCi7I,3i8Gܜi]i?CLi@CLiBCLiCMԄiECLQCQCLQCLQwt Q CLQ CLQ CLQOP$QIxu%QJ&QKWQCL*QFj<,QT QOP.QMQCLQCLQ!OPQ#CL3Q%lZ4Q'A6Q*d37Q+Rl8Q,W49Q/mq:Q1o ;Q2pY<Q3gfQ4OP>Q5U`?Q6F=s@Q7ERAQ7WQ8OPDQ:IEEQ:EFQ;E$GQdNQhQC3QiW QjOQl_J Qo])Qpw Qqof Qrn Qst>u QtvQT?QF2@QE"AQVgQOPDQIEQEMFQE(TGQNQQ`QW9QPQ_6 QdoQw) QoXB Qn Qs Qv- !QCL QCLQCLQa>' QCLQl QF QFxCQj ^ QtQrk QCLQCLQCLQCLQCLQG$QIQzF^ Qj\Q]""Qh Qj Qf Qr3QCQR QChQeh(QB QPxQV5QDQ vK Q UFD Qq Q`Q[3Q^ QCLQCLQCLQCLQCLQOPQOPQOPQCLQ"HQLHB$QMIXQNGQQLQTL}eQE}fQD^ ^ MQlt( NQnCOQoCLPQqAQQtTRQuOFSQvph TQw@؁VQx^ XQyDZQYQ|E[Q}\Q~L(^Qd"A_Qt `Q@aQ{gbQ{=qcQwQCLQCLQCLgQk QCLQCLQCLQCLmQFnQ{4oQUQk QCLQCLQCLQCLQCLQCLQCLwQA(xQJ4yQNRQOP{Q]"# |Qax#}Qt ~Q]QB BQFХQ} ~QOPQQg |QCLQEeQDQFfQHAuQCLtQCLQ!{M Q#n1' Q$h 5Q&HA6Q'IKQ)CLQ*CL:Q-Kƙ;Q0LL<Q1V ?Q2~ Q4OPQ6CLBQ8x CQ9SDQ:A`EQ<_FQ=nGQ>eHQ?FI LQ@[34MQAM >NQBmOQE{ PQFz QQGF/RQHGTQJDUQKE(VQLC/QMOPQOCLYQyy ZQz|} Q|OPQ~CL]Qk ^QxP QOPQCLaQyl QOPQCLdQA+QOPfQ^QCLhQ}X iQPiQOPkQQZ lQo{mQmpnQm oQ`mpQ`\ qQX rQ\( sQLGtQLkXuQCkQOPQCLxQ@yQLzQH@QOPQCL}QFi~QGKQFQCQOP~QCLQ~l^ QEVQEVQCZQFQA"QEVQEVQDSQEQxAQEVQOQHQLQr QK&XQB QQQy%QLQM Q g+ Q KQ jpQCLQEQslQOPQCLQCLQ@CLQACLQBCLQCCLQDCLQG` QHG6gQIXQJKzQLLQQMNQOCLQPCLQQCLQRCLQSCLQTCLQUCLQV]QWCLQYCLQZCLQ[M֯Q]CLQ`CQbCLQcCLQdu6 QgCLQhCLQiCLQlOP$QmIoa%QnJ &QqRTQsCL*QvFF ,QwTQxOP.QyMIQ{CLQCLQOPQCL3Ql/4QA36QZ7QG8QR39Qm:Qj3;Ql3<QfFgQOP>QU?QF$@QERAQWYQOPDQJ<EQE FQE(TGQNQZQafQX4Q_l QdNQwZ QoI Qn Qs Qu} !QCL QCLQCLQ] QCLQl QAlQ EWQ i Q HD| Q rk QCLQCLQCLQCLQCLQG1QIWQzF^ Qj~AQ!]""Q"h Q#j Q$fM Q(pfQ+CrQ,TQ-CZ*Q.ffEQ0B) Q3OQ5WQ6DQ9vK Q:L Q=t Q>cs3Q?^yQ@^ QBCLQCCLQlCLQmCLQnCLQrOPQsOPQtOPQvCLQyGQ{H>Q|IfLQ}G-QLQL}eQ ]}}fQ!D^ ^ MQs? NQCDOQCPQAQQTRQO?wSQo TQ@iVQ]w XQDlTYQE [Qҹ9\Q^_J^Qc_Qt `Q@uaQ{bQ}cQwQCLQCLQCLgQl QCLQCLQCLQCLmQEnQ|FgoQT QCLQCLQCLQCLQCLQCLQCLwQD(xQHLyQNQOP{Q[ |Qbmi}Qsɨ~Q ]Q4B lQ5FxQ8~ ~Q;OPQ>O_ |Q@CLQCEVWQDDQEFQIPuQKCLtQLCLQN{m QOn% QQh 5QSH}6QTI0QVCLQWCL:QYK;QZHYv<Q[Yl?Q\~l^ Q^OPQ`CLBQbxo CQcS$"DQd@EQf_ffFQgiGQhfHQiF LQj]MQkQNQlo\*OQo{LS PQz7 QQF>KRQGgTQDUQEVQC&fQOPQCLYQy1 ZQ|oQ QOPQCL]Qk ^Qv( QOPQCLaQx0 QOPQCLdQ@QOPfQ^QCLhQ},l iQOOQOPkQQ= lQpffmQo(nQmٚ oQ`^pQc qQZB rQ] sQL tQLpuQCeQOPQCLxQ@yQJzzQHdQ OPQ CL}Q FxC~Q G BQ FQ CfQ OP~Q CLQ } Q EVQ EVQ CwQ F/Q A/Q EVQ EVQ DQ EQ xQ EVQ OQ !IrQ #K=Q &r Q (K"Q +B Q ,LvQ .y%Q /LQ 0M Q 3g+ Q 5KQ 6jlQ `CLQ cEQ dtQ fOPQ hCLQ iCLQ jCLQ kCLQ lCLQ mCLQ nCLQ qYgQ rNQ sPgQ tKRQ vKRQ wMHQ yCLQ zCLQ {CLQ |CLQ }CLQ ~CLQ CLQ ]Q CLQ CLQ CLQ MQ CLQ CʑQ CLQ CLQ u Q CLQ CLQ CLQ OP$Q IfL%Q I&Q NQ CL*Q F3,Q T15Q OP.Q MQ CLQ CLQ OPQ CL3Q l4Q A6Q \g7Q K`8Q Q9Q m:Q kg;Q p<Q j@Q OP>Q T?Q FS@Q EAQ V͒Q OPDQ IL\EQ EFQ E*#GQ O%Q SfQ XQ Qs4Q _R Q ]¬Q v Q o; Q n$ Q sU: Q up !Q CL Q (CLQ )CLQ +^ Q .CLQ 0kd Q 1{w Q 2F/Q 4ixB Q 5G3 Q 6r]\ Q 9CLQ :CLQ ;CLQ HQ EI LQ ]=qMQ QNQ o\*OQ {w PQ z7 QQ F7 RQ GTQ DUQ E}VQ C/Q OPQ CLYQ y ZQ |` Q OPQ CL]Q k) ^Q u65 Q OPQ CLaQ w Q OPQ CLdQ @=Q OPfQ ^Q CLhQ }T iQ XQ OPkQ Q S lQ pmQ offnQ q oQ _ĵpQ _ qQ V rQ YR sQ KRtQ Lu]uQ C>XQ OPQ "CLxQ $@yQ %R*WzQ &Hs<Q (OPQ *CL}Q ,F~Q .F|Q /FQ 0CkQ 1OP~Q 3CLQ 5~ Q 8EVQ 9EVQ :C.Q ;F>KQ EVQ ?DQ @EQ ByDQ EEVQ FO/Q II\OQ JK6Q Mr Q OK)Q RB Q STQ Uy%Q VK8Q WM Q g+ Q KQ jQ U>a?Q F o@Q EWAQ WQ OPDQ I:DEQ EٞFQ E+GQ N|Q Q3Q W9Q PfQ _u Q d/Q vg- Q o,| Q Hn$ Q Ir Q JuD !Q MCL Q OCLQ PCLQ Ra Q UCLQ WkK Q XwB Q YFyQ [h Q \|Q ]rN Q `CLQ aCLQ bCLQ cCLQ eCLQ hG lQ iIQ lz7 Q njPQ q]""Q rhE^ Q sj Q ufTj Q xq9Q {CK Q |SuIQ }CQ ~h_EQ B) Q NQ Z&Q DQ v- Q V Q l* Q ` Q ZfQ ^ Q CLQ CLQ CLQ CLQ CLQ OPQ OPQ OPQ CLQ GQ HB$Q I}Q GVQ LQ L}eQ \W 0}fQ uD^ ^ MQrez NQCOQC̨PQAQQTRQOFSQof TQ@VQ\Y XQ DZQYQ#Es[Q$$\Q%Off^Q(c_Q)t `Q*@aQ,|bQ.|cQ/y#Q1CLQ2CLQ3CLgQ6k Q8CLQ9CLQ;CLQQ{OP{Q~ZDD |Q`}Qtd~Q]QB QF1Q~] ~QOPQS |QCLQE&\QDZQFfQLuQCLtQCLQ}N Qmx Qh 5QHM6QH`QCLQCL:QK;QNݪ<QXq?Q~24 QOPQCLBQy CQP DQABEQfFQgGQVHQE LQN=qMQBRNQ`OQ{/ PQz QQF>KRQFmTQDUQEwIVQCQOPQCLYQy ZQ| QOPQCL]Qk_ ^Qsc QOPQCLaQvK QOPQ CLdQ AQOPfQ^QCLhQ|& iQOPkQ?Q lQ@q(mQAoffnQBoY oQE`pQGc= qQHZ rQI[) sQJK6tQKLyuQLCJQMOPQOCLxQQ@yQSRzQTHmQVOPQXCL}QZF?~Q\FϟQ]FjQ^CkQ_OP~QaCLQc} QeEVQfEVQhC.QiF[GQjBEQkEVQlEVQmDQnEQpxAQsEVQtOBoQvHQwK/qQr QK$QB QPQ9U%2?Q:F\@Q;EAQHREQ?EЌFQhE-GQiO"QmU34Qn[33QoSS4Qp_L Qsd,qQuuc Qvo Qwn$ QxrE Qyt !Q|CL Q}CLQCLQ\Ǯ QCLQj Qc QEGQg QE[Qr@3 QCLQCLQCLQCLQCLQG]QIQy Qj*Q]Qh Qj QfE Qr)QC<QQPQCCQi,QB޸ QO Q\TQD7QvW QK+ Qq" Q`fQ]pQ^ QCLQCLQCLQCLQCLQOPQOPQOPQCLQGMQHEQIQGQL{QL{}eQA}fQEI@^ ^ MQBs\ NQDCOQEDkPQGAQQJTͶRQKO8VSQLn TQM VQN[ XQODcSYQRD[QSq&\QT^^QWcm_QXu9 `QY@aQ[~\bQ\{cQ^z >Q`CLQaCLQbCLgQek2 QgCLQhCLQjCLQkCLmQEnQ|oQS QCLQCLQCLQCLQCLQCLQCLwQ@xQKyQNQOP{QY |Qc{}Qv~Q]QB*UQFjQE"'~QOPQN |QCLQE QDXQFBQLuQCLtQCLQ} Qm Qh 5QHY6QHچQCLQCL:QK;QKG<QWIw?Q}h QOPQ CLBQ y@Y CQ O&DQ A&EQ^{FQpGQ[QHQE? LQMMQANQ_(OQ{a PQz QQF>KRQFTQDx3UQElnVQC̏Q OPQ"CLYQ$zr ZQ%{ Q'OPQ)CL]Q+k ^Q,rz Q.OPQ0CLaQ2up Q\OPQ^CLdQ`@۶QbOPfQd^QeCLhQg| iQhV QjOPkQkPQ lQlo(mQmm\)nQnp oQq`pQs` qQtX rQu] sQvKEtQwL|uQxC0QyOPQ{CLxQ}@yQPlzQH QOPQCL}QF:~QFQFWQCQOP~QCLQ}f QEVQEVQC4QFxCQB8PQEVQEVQEZQEQxMQEVQOQIQK1CQr QK&XQB QP eQy6QKQM QF8< QKQiQCLQE}MQs.HQOPQCLQCLQCLQCLQCLQCLQCLQYffQN0QYgQHQHQKQCLQCLQ$CLQ%CLQ&CLQ'CLQ(CLQ*]Q+CLQ,CLQ-CLQ.MYQ0CLQ3CʑQ5CLQ6CLQ8xWc Q:CLQ;CLQQT?QE`@QE{FAQVQOPDQGEQEaFQE.GQNQRfQWQQ Q_" QaQuo Qo Qn$ QrN Qtj. !QCL QCLQCLQ^ QCLQj QG )QDQg3 QQr# QCLQCLQCLQCLQCLQFQI}Qy{ QizQ]Qgn Qj Qf7' QrfQC4qQP?QClQiQB Q O67Q ]lQ D1Qv QPty Qn3 Q`Q]9Q^ QCLQCLQCLQCLQCLQ OPQ!OPQ"OPQ$CLQPGTQQHDQRIzFQSHQVL{QZL{}eQW}fQE^ ^ MQqs? NQtCOQuCPQvAڦQQyTRQzOSQ{oXB TQ|~ VQ~[ XQDcSYQD[QJ\QK^Qb_Qu9 `Q@paQzHbQ{\cQvQCLQCLQCLgQk QCLQCLQCLQCLmQEnQ~c4oQR QCLQCLQCLQCLQCLQCLQCLwQAxQJW yQNzQOP{QX |Qb+}Qvw~Q]QB(QF Q} ~QOPQ` |QCLQEQD$VQFQ!ILuQ#CLtQ$CLQ'} Q(m Q)hw 5Q+HS_6Q,HQ.CLQ/CL:Q2K;Q5H<Q6W!?Q7}h Q9OPQ;CLBQ=yN CQ>MܪDQ?A"EQAcFQBiRGQCOQHQDEj LQEMGMQFBzNQG`=qOQJ|& PQKz QQLFERQMFTQODhUQPEXVQQCQROPQ|CLYQ~z ZQ{/ QOPQCL]Qk) ^QrN QOPQCLaQu' QOPQCLdQ@bQOPfQ^QCLhQ|} iQTaQOPkQP lQo{mQm{nQn oQ`FpQ_Ǯ qQWz rQZ( sQKtQLcuQB=QOPQCLxQ@yQMFzQIQOPQCL}QF~QFQFB,QCQOP~QCLQ}I QEVQEVQCQF?QBUZQEVQEVQE9[QEQxq(QEVQOQIQK6Qr QK)QB QRQ y(Q K Q L[QEU QKQj×QCLQEQqQOPQCLQDCLQECLQFCLQGCLQHCLQICLQLXlQML3QNYgQP^\QQ_ > QR_ > QTCLQUCLQVCLQWCLQXCLQYCLQZCLQ\]Q]CLQ^CLQ_CLQ`M!QbCLQeCɪQgCLQhCLQjy QlCLQmCLQnCLQqOP$QrI2%QsI6&QvNQyCL*Q{FM,Q|SUQ}OP.Q~MxQCLQCLQOPQCL3Qle4QA6QM47Q@48QC 9Qn :Qmg;QrFf<QjlQOP>QUG?QEj@QEr5AQW5QOPDQGEQE FQE-GQNMQQs4QU3QOfQ_ QalQu QoK Qn QqJ Qt>u !QCL QCLQCLQ_Z QCLQ j> Q IpQFRQg QQr QCLQCLQCLQCLQCLQFZQIQ!z[ Q#iaQ&]Q(gx Q)j Q*f Q-r#3Q0C,NQ1RQ2DA#Q3jQ6Bf Q9O"Q:_SQ;DSQ>v4 Q?T QBpٚ QD`QE]QF^ QGCL9CL9CL9CL9 CL9 OP9 OP9OP9CL9G\9HB$9Ii9H9L\9L\}eQXp}fQ'E|^ ^ M96s N98CiO99C3P9:AQ9eTHR9fOS9go T9i~ V9jZB X9kDlTY9mDi[9n\9oVwx^9raE_9tuq `9u@pa9wzHb9x{.c9ywW 9{CL9|CL9}CLg9k?u 9CL9CL9CL9CLm9EDn9}go9Q 9CL9CL9CL9CL9CL9CL9CLw9\x9JW y9O9OP{9X |9b'}9u~9]9B(9F9t/ ~9OP9~4\ |9CL9E9D 9G9QGu9CLt9CL9} 9mG 9hz 59H5s69H9CL9CL:9L;9P<9X6*?9} 9OP9CLB9y]w C9LeD9@E9UpF9,gpG9-U34H9.E L9/MM90BN91`zO94|` P95z Q96FER97FT99DWU9:EI"V9;C9CLY9@{/ Z9A{ 9COP9ECL]9Gk ^9Hr@3 9JOP9LCLa9Nt 9POP9RCLd9T@9VOPf9X^9YCLh9[|R8 i9\R9^OPk9_P l9`t\m9arRn9bq o9e`p9g_ q9VH r9Z s9KQt9Lcu9Bө9OP9CLx9@y9J5z9IL\9OP9CL}9Fݱ~9FX9F*9C9OP~9CL9}T 9EV9EV9C9F:9B9EV9EV9EV[9E9xr9EV9O9I(9K=9r 9K 9B 9Lv9x9K()9L]9E 9_ > 9CL9CL9CL9CL9CL9CL9CL9]9CL9 CL9!CL9#M۽9%CL9'CI9)CL9*CL9,x 9/CL9XCL9YCL9[OP$9\I!O%9]I&9`K/79cCL*9fE,9gT<9hOP.9iML9jCL9kCL9nOP9pCL39slh49uA69wF379xyg89yE99|nP:9~eS3;9h<9d9OP>9Tԙ?9Ea@9EjA9VH9OPD9GE9E5F9E#G9NW9R39W39Q&f9_O 9eS9t 9o 9n 9q 9t' !9CL 9CL9CL9\o 9CL9j ^ 9CB9F9fJ 9@v 9qJ 9CL9CL9CL9CL9CL9F9I~9zF^ 9iٴ9]9gL 9j 9f D 9q,9C"\9S9D%9kh9 B 9#N9$` 9%D9(u 9*KI 9-rQ 9.`f9/]@90^ 91CL92CL94CL95CL96CL99OP9:OP9CL9AG9BH=9CI[g9EH9HL\9IL\}e9Xo}f9EU^ ^ M9u N9CO9C_P9A2Q9T{R9O`S9q T9~ V9Zf X9DlTY9D[9K\9Tl^9aT_9u* `9@pa9|b9{c9w9CL9CL9CLg9kZ 9CL9CL9CL9CLm9En9}4o9Qw0 9CL9CL9CL9CL9CL9CL9CLw9|x9HLy9NL9OP{9X33 |9a}9u\~9]9B#9FoL9| ~9OP9X. |9CL9 EKz9 C!9 F9Fn u9CLt9CL9}' 9m 9hP 59H69H9CL9CL:9M\;9"KA<9#Y ?9L}h 9NOP9PCLB9Ryl C9SKD9T@gE9VZzF9WgpG9XZ H9YE L9ZxR M9\a N9]M(O9_|j P9`{ Q9aFER9cFT9dD=rU9fE2V9gC9hOP9jCLY9l|` Z9m{a 9nOP9pCL]9rk) ^9sr# 9uOP9wCLa9yt 9{OP9}CLd9@9OPf9^9CLh9|& i9Pl9OPk9Po l9oQm9m\)n9pn o9`p9_ q9UH r9Y s9Kt9Lu9B9OP9CLx9@}By9Pz9Ip9OP9CL}9F~9F8g9Fx9C9OP~9CL9|& 9EV9EV9Cμ9F9Bn9EV9EV9E9E9x9EV9Oy9IK9K=9r 9JP9B 9S 9x9K69!L]9$E_ > 9?_ > 9ACL9BCL9CCL9ECL9FCL9GCL9HCL9I]9JCL9KCL9LCL9NM9xCL9zCӞ9|CL9}CL9v 9CL9CL9CL9OP$9I%9I &9I'9CL*9EΩ,9TD9OP.9M̓9CL9CL9OP9CL39liq49A69B79n389@ 99mq:9bFf;9k@<9cg9OP>9TX?9E@9E`A9V9OPD9IV}E9EuF9EPG9N}9Vf9Z9Sp9^P 9ba9t1 9n 9n}[ 9qHF 9s !9CL 9CL9CL9^p 9CL9ii 9} 9Dg9f(r 9H= 9q 9CL9CL9CL9CL9CL9 Fe9 I~9 z % 9iʿ9]9f 9ju 9e 9Ap,9DC 9FSh9GCM9Hl*9JBR 9MN 9Nb9OD#9Ru 9TRv 9WrY 9X`9Y]39Z^ 9[CL9]CL9^CL9_CL9`CL9cOP9dOP9fOP9hCL9kG9lH8,9mIN9oH9rL\9sL\}e9]L}f9E^ ^ M9sM N9CO9CVP9AQ9TDR9OS9o T9} V9YT X9DlTY9D [9úK\9Pa^9as_9u8 `9@zBa9|pb9{ǯc9y9CL9CL9CLg9kvA 9CL9CL9CL9CLm9ERn9 }4o9 PN 9 CL9CL9CL9CL9CL9CL9CLw9{Rx9Iy9SH9OP{9X"# |9b}9!x L~9#]9&B#9'F/9*}f ~9,OP90X  |92CL95E;.96C497F9:Miu9=CLt9>CL9@}y 9Al: 9Bh\) 59mH69nHi"9pCL9qCL:9sLd$;9vH<9wYc?9x} 9zOP9|CLB9~yl C9S D9@'E9SGF9jQG9YHH9ED L9x M9a N9MffO9| P9{in Q9FER9FT9DU9E kV9C9OP9CLY9|} Z9{ 9OP9CL]9kK ^9qˈ 9OP9CLa9tz 9OP9CLd9@9OPf9^9CLh9{a i9N39OPk9Pg l9qm9offn9n o9`yFp9^p q9V{ r9Z s9Kt9Lu9B9OP9CLx9@y9QSz9I9OP9CL}9F~9FK9E9Cu9OP~9CL9} 9EV9EV9C>9Fݱ9 Bw9 EV94EV95E96E98x9;EV9I%9?K89Br 9DJP9Gn`* 9HPM9Kxz\9LK+9MLZ 9PD 9QKU9SkF9UCL9XEa9Yq9ZOP9\CL9]CL9^CL9`CL9aCL9bCL9cCL9fYg9gNL9hYf9i^9j_ > 9k_ > 9nCL9oCL9CL9CL9CL9CL9CL9]9CL9CL9CL9M<9CL9C#9CL9CL9x 9CL9CL9CL9OP$9Hx%9IE&9Q59CL*9EN,9T/ 9OP.9M9CL9CL9OP9CL39l^49A69Hs379{g89@ 99m:9_;9jٙ<9d39 OP>9 Tk?9 EW@9 EVA9 W'p9 OPD9 LVhE9 EPF9 ELG9 N9 R 9 V9 O9 _ 9 a9 t 9 n 9 n}[ 9 pX 9 sc !9 CL 9 CL9 CL9 ].B 9 #CL9 %ii 9 &v- 9 'ET9 (fE 9 )JG 9 +q 9 .CL9 /CL9 0CL9 1CL9 2CL9 5F9 7Iu9 by 9 di9 g]O9 hfTQ 9 ijp 9 je_ 9 np39 qB9 rT9 sC9 tm 9 vB3 9 yN#89 zcu9 |Dhn9 u} 9 P̦ 9 rUU 9 a<9 \9 ^ 9 CL9 CL9 CL9 CL9 CL9 OP9 OP9 OP9 CL9 G9 H/9 IJ(9 G9 L\9 L\}e9 )^W|}f9@E^ ^ M9 tq N9 CO9 CWP9 AQ9 TwR9 NS9 n T9 } V9 YH X9 DuWY9 Do[9 \9 R^9 c*_9 u8 `9 @a9 {gb9 {ǯc9 x\9 CL9 CL9 CLg9 *ks 9 ,CL9 -CL9 /CL9 0CLm9 3E<n9 6} o9 7PZ 9 9CL9 :CL9 ;CL9 =CL9 >CL9 ?CL9 @CLw9 Cvx9 DJ >y9 EO9 FOP{9 JX |9 La}9 Mu~9 O]9 RB{9 SFN9 V}; ~9 YOP9 \R |9 ^CL9 aE(+9 bC%9 cF9 Kgu9 CLt9 CL9 ~ 9 mi 9 hz 59 H#P69 H^A9 CL9 CL:9 M;9 P<9 ZB3?9 } 9 OP9 CLB9 y]w C9 S D9 @E9 W F9 gQG9 OpH9 Ec L9 xR M9 ap N9 MGO9 |= P9 {H Q9 FLR9 FT9 CU9 DV9 C9 OP9 CLY9 |R8 Z9 | 9 OP9 CL]9 k ^9 q 9 OP9 CLa9 tj. 9 OP9 CLd9 @9 OPf9 ^9 CLh9 { i9 W'9 OPk9 P l9 o=qm9 m n9 q. o9 `bp9 b\) q9 Xff r9 \H s9 Kt9 Lu9 B9 OP9 CLx9 @y9 Pԃz9 I9 "OP9 $CL}9 &F~9 (E9 )Eʮ9 *C}y9 +OP~9 UCL9 W},l 9 YEV9 ZEV9 \C>9 ]F/9 ^Bɀ9 _EV9 `EV9 aE9 bE9 dy'9 gEV9 hOp9 jI=9 lK89 or 9 qJP9 tn 9 uLv9 wxz\9 xK$9 yLVe9 |D@ 9 }KF9 j9 CL9 E{}9 q9 OP9 CL9 CL9 CL9 CL9 CL9 CL9 CL9 Pg9 N9 ]g9 ^Q9 _ > 9 _ > 9 CL9 CL9 CL9 CL9 CL9 CL9 CL9 ]9 CL9 CL9 CL9 M9 CL9 Cܪ9 CL9 CL9 w 9 CL9 CL9 CL9 OP$9 H(%9 I&9 M9 CL*9 E=,9 St9 OP.9 Mѡ9 CL9 CL9 OP9 CL39 l@,49 A69 #FY79 $o89 %Af99 (m;:9 )dL;9 *j3<9 +d@9 ,OP>9 -T?9 .Eb@9 /EH}A9 0V9 1OPD9 2MkE9 3E,bF9 4DG9 5N¿9 8X49 9\9 :Uvg9 ;^ 9 ?eV9 @s 9 An 9 Bn}[ 9 Cp 9 Ds T !9 GCL 9 ICL9 JCL9 L[~ 9 OCL9 Qi= 9 RA9 SE9[9 UeT 9 We49 q3 9 CL9 CL9 CL9 CL9 CL9 F9 Ii9 z[ 9 i9 ]O9 f 9 j63 9 e 9 nf9 Bӹ9 Q^9 B9 m9 B 9 N9 e69 Cn9 u 9 K 9 r* 9 a39 Z39 ^ 9 CL9 CL9 CL9 CL9 CL9 OP9 OP9 OP9 CL9 Gz9 H'9 I=s9 GV9 L\9 L\}e9 WeP }f9 F>P^ ^ M9 sNi N9 CO9 CP9 A|=Q9 T R9 NTS9 o,| T9 }/3 V9 Z X9 DZQY9 Dv[9 q\9 HO?^9 Kdx_9 LuUV `9 M@a9 P{.b9 Q{ǯc9 RwH9 TCL9 UCL9 VCLg9 YkUb 9 [CL9 ]CL9 ^CL9 _CLm9 bE.n9 e}go9 fPZ 9 hCL9 jCL9 kCL9 lCL9 mCL9 nCL9 oCLw9 rxx9 sK>y9 uN\9 vOP{9 yX33 |9 {b}9 |wۈ~9 ~]9 A9 F19 } ~9 OP9 Q |9 CL9 E 9 C9 Fj9 J;4u9 CLt9 CL9 } 9 l| 9 h$ 59 HG69 HV9 CL9 CL:9 M;9 L<9 Wp?9 } 9 OP9 CLB9 yl C9 Q^D9 @E9 XF9 iG9 ZH9 D L9 MM9 CQN9 a{O9 } P9{ Q9FER9FqT9CU9DXV9C\9OP9CLY9|C Z9{/ 9OP9 CL]9"kQ ^9#qV 9%OP9'CLa9)t!N 9+OP9-CLd9/@91OPf93^94CLh96{ i97XS99OPk9:Pf7 l9;pm99CL9CL9CL9CL9CL9CL9CL9]9CL9CL9CL9M9CL9C9CL9CL9vܹ 9 CL9 CL9 CL9OP$9H%9Iv&9I9>CL*9@Ef,9AS69BOP.9CM9ECL9FCL9IOP9KCL39Ml49OA369RN379S|3489TBs499Wm:9Yl3;9ZoY<9[n49\OP>9]T?9^EIe@9_E>A9`Vv9aOPD9bP;^E9cE0F9dDُG9eN9gW39h\9iU9k^ 9nb΋9os: 9pn 9qnn 9rpPL 9srn !9wCL 9CL9CL9^ 9CL9hׄ 9I 9D- 9e/ 99qt 9CL9CL9CL9CL9CL9F9Ic9z 9i9]O9e 9j 9e 9n39B9Q$H9B9n,9B 9Nd09f:9CU>9uZ 9S 9 k 9 b`9 ]9 ^ 9CL9CL9CL9CL9CL9OP9OP9OP9CL9Gg9H!9 I89!Gn9$L\9&L\}e9C}f9 E^ ^ M9=t N9hCpO9iC P9jA1nQ9mTR9nN(S9ooK T9p}/3 V9qY X9sD6KY9uD[9v \9wP^9zekP_9{uc `9|@a9|pb9{.c9x>9CL9CL9CLg9k[ 9CL9CL9CL9CLm9EDn9|go9P` 9CL9CL9CL9CL9CL9CL9CLw9}x9O{y9P9OP{9X |9b:}9wrj~9]9A9Fdz9}; ~9OP9U/ |9CL9E(9Cpi9FZ9P\u9CLt9CL9}gm 9l 9h=q 59HX69HE9CL9CL:9J˽;9Gr<9U?9}; 9OP9CLB9y]w C9P D90@E92TRF93gQG94^pH95D L96MGM97BzN98_HO9;}: P9<{ Q9=FER9>FqT9@CU9ADV9BCv9COP9ECLY9G|} Z9H| 9JOP9LCL]9NjH ^9Op- 9QOP9SCLa9Usl 9WOP9YCLd9[@9]OPf9_^9`CLh9b{in i9cV{9eOPk9fPE l9go=qm9hm\)n9jnL o9`up9aL q9Yf r9[ s9Kut9L<u9B59OP9CLx9@uy9K`$z9I9OP9CL}9Fm~9E9EV9Cg9OP~9CL9|= 9EV9EV9C9G&"9C9EV9EV9FR9E9y09EV9Op9I"9K#9r 9JP9m 9Lv9x19K$9M 9C 9K)9jp9CL9Ea9 rx9 OP9 CL9 CL9CL9CL9CL9CL9CL9_9Pff9dvg9H 9F\9K=q9CL9CL9CL9 CL9!CL9"CL9$CL9%]9&CL9'CL9(CL9)M9+CL9.C90CL91CL93y1 9]CL9^CL9_CL9bOP$9cH%9dIU&9gMe9jCL*9lEJ,9mSuI9nOP.9oN 9qCL9rCL9uOP9wCL39zk49{A369~O 79zٚ89B`99m(:9e3;9n`<9hL9OP>9T[?9E>@9E4A9V9OPD9O[E9E F9DG9N59T9X9Qɚ9^v+ 9_F9rO 9nT 9n`* 9pY 9r !9CL 9CL9CL9\Rp 9CL9hJ 9G9E#9d 9G 9qV 9CL9CL9CL9CL9CL9FǶ9I]89y] 9iO9]O9e 9i 9e 9p<9B9Sj9Bٙ9o9&C 9)N079*g)9+C9.u6 9/N5 92mw 94a395\396^ 97CL98CL99CL9;CL9F9\o\*G9]X\H9^DzZ L9`MffM9aBzN9b`O9d}f P9f{ Q9gFER9hFbT9jCU9kDV9lC9mOP9oCLY9q|& Z9r{w 9tOP9vCL]9xj ^9yp 9zOP9|CLa9~s 9OP9CLd9@9OPf9^9CLh9{= i9Ud9OPk9P l9qGm9on9mT{ o9`qp9]{ q9Vz r9X s9Kt9Lu9Bi9OP9CLx9@uy9O_z9I9OP9CL}9F~9E 9Ek9Cd9OP~9CL9|} 9EV9EV9DG9G49C 9EV9EV9F!O9E9xd9EV9P e9H9JP9r 9JP9 m 9!R9$y 9%K <9&M 9)C 9*K)9,j9.CL91Ev92q93OP95CL96CL97CL99CL9:CL9;CL99Tk?9E @9E,bA9V9OPD9PpE9DF9DRG9O9U9Z|9S9^ 9eP19s@ 9n 9n`* 9o 9r# !9CL 9CL9CL9\Rp 9CL9h 9A9E9ejU 9|M9q9 9CL9CL9 CL9 CL9 CL9F9IV9{ 9i9]O9e[ 9iQ 9e[ 9Fr 9JB9KR9LB9Mq9OC 9RNq9Sh:29UC>9Xu6 9YL} 9\o7w 9]`@9^ZC39_^ 9aCL9bCL9cCL9dCL9eCL9hOP9jOP9kOP9mCL9pGB9qH9sI09tG9wL=9zL=}e9W}f9E^ ^ M9t N9CO9C5P9@gQ9TzR9NS9p T9|S V9X X9D$JY9Dtk[9˻*\9Q@^9e_9uq `9@pa9@pb9@Qc9}{9CL9CL9CLg9k}K 9CL9CL9CL9CLm9F n9}o9O 9CL9CL9CL9CL9CL9CL9CLw9CaHx9Jy9 Qf9!OP{9$V |9'c}9(v~9*]9-A9.F91} ~94OP97Xb |99CL9F9BNku9DCLt9ECL9G}'  !lV  !g 5 ! Ht6 ! H$8 ! CL !CL: !H; !O< !Tfs? !}; !OP !CLB !yz C !MD !@l&E !\HF !g{G !eH ! D(W L !!U34M !"GHN !#iO !&} P !'|oQ Q !(F7 R !)F[GT !+CU !,DaV !-CW !.OP !0CLY !2{ Z !3{H !5OP !7CL] !9j> ^ !:pPL !dOP !fCLa !hsU: !jOP !lCLd !n@n !oOPf !q^ !sCLh !u{ i !vS !xOPk !yO l !zpm !{nn !|q o !`p !] q !Wp r !Y s !Kt !Lu !B !OP !CLx !@`2y !R? z !J3 !OP !CL} !G~ !Ee !EE !CY !OP~ !CL !|  !EV !EV !DB !GC !C/ !EV !EV !F>K !E !xd !EV !O` !I?C !JP !r  !JP !l  !P !y !K  !M  !B  !K) !l;s !CL !E !r !OP !CL !CL !CL !CL !CL !CL !CL !Yg !Qg !_ !GH !,GH !.GH !0CL !1CL !2CL !3CL !4CL !5CL !6CL !7] !9CL !:CL !;CL !CL !AC !CCL !DCL !E~z !HCL !ICL !JCL !MOP$ !NH% !OI& !RK{ !TCL* !WE 8, !XShR !YOP. !ZN !\CL !]CL !`OP !bCL3 !dk@4 !fA36 !]97 !HL8 !Aff9 !ml!: !f4; !sFg< !iFg !OP> !U7? !D@ !EA !WL !OPD !P',E !D݄F !D-G !O;D !Z !_ !Xf !^b|  !c= !rЫ  !n$  !nQ  !oXB  !q ! !CL !CL !CL !_  !CL !h  !wS  !D4K !d  !sY5 !q  !CL !CL !CL !CL !CL !FG !IT$ !z  !it !]O !e  !i=  !e>k  ! r#3 ! B ! R !B !rt !BR  !N !i !B  !u  !Ti  !k  !`3 ! Y !"^  !#CL !$CL !%CL !&CL !(CL !+OP !,OP !-OP !/CL ![G2J !\H@ !]I. !^G !aL= !dL=}e !T}f9GE^ ^ M !|sj N !~CO !Dt<P !@Q !TnR !N3S !n$ T !|6 V !XeC X !DFY !DxO[ !ė\ !S"^ !d_ !u ` !@]a !}4b !|c !x !CL !CL !CLg !k !CL !CL !CL !CLm !F Xn !}9o !O+ !CL !CL !CL !CL !CL !CL !CLw !@x !LQy !O !OP{ !VDD | !dR<} !vi~ !] !Af !FY !~# ~ !OP !!j | !#CL !&E( !(C !)F  !,K='u !.CLt !/CL !2}  !3k  !4g`B 5 !6Hc6 !7H"i !9CL !:CL: !Y ? !?}; !AOP !CCLB !Eyl C !FLZD !G@sE !IX34F !JoG !K\H !LCW L !MMffM !NB=qN !O_O !R}R P !S|` Q !TF>KR !UFTT !WCtU !XDsV !YCW !ZOP !CLY !{w Z !{/ !OP !CL] !j63 ^ !o !OP !CLa !r !OP !CLd !@Q !OPf !^ !CLh !zu i !Q !OPk !OX l !qm !o\n !m o !`"p !_ q !XR r !ZH s !KDt !LXu !B !OP !CLx !@Xy !P͙z !JX !OP !CL} !G~ !EE !E& !CM !OP~ !CL !|  !EV !EV !D4K !G` !CZ !EV !EV !F[G !E !xd !EV !Pv !I~ !JP ! r  ! JP !lo  !Lv !y !K !M  !Aw0  !KF !jp !CL !E}M ! r !!OP !#CL !LCL !MCL !NCL !OCL !QCL !RCL !UYg !VQ !WYg !XGH !YGH !ZMH !\CL !]CL !^CL !`CL !aCL !bCL !cCL !d] !eCL !fCL !gCL !iM !kCL !mC !oCL !pCL !r| !uCL !vCL !wCL !zOP$ !{Hv% !|I}& !~K9 !CL* !Eb, !S !OP. !N.  !CL !CL !OP !CL3 !k4 !A36 !P@7 !@8 !@l9 !m: !hFf; !s< !p !OP> !Tj? !D-@ !EA !V !OPD !OE !DF !DG !O1) !TC4 !Xf !Q !^}  !_  !r  !n  !nB  !oK  !q ! !CL !CL !CL ![-  !CL !h(#  !{/  !DX !d/  !27 !pX  !CL !CL ! CL !!CL !"CL !%F" !&IJ( !)z  !,i{ !/]O !0d/  !1h"  !2e!(  !5r#3 !8B~ !:R !;B !B  !ANq !BjA !CB !Gu  !HM  !Knff  !L`0 !MW3 !N^  !xCL !yCL !zCL !{CL !|CL !OP !OP !OP !CL !G! !H@ !I( !G !L= !L=}e !YE}f !2F^ ^ M !tF N !CO !DP !@Q !TgR !NۢS !r@3 T !{>? V !W X !CEY !Dh[ ! P\ !Jw^ !c_ !u9 ` !@fa !{gb !{Lc !wfg !CL !CL !CLg !k2 !CL !CL !CL !CLm !E*n !}Lo !ND !CL !CL !CL !CL !CL ! CL ! CLw ! \x !M8Ry !L !OP{ !U | !c} !y( ~ !A] !DA9 !EF !H}~ ~ !KOP !NX | !PCL !SEY !TB- !UF !YJau ![CLt !\CL !^~+  !_k  !agl 5 !cH/6 !dH* !fCL !gCL: !iK); !jGV< !kW? !l}I !nOP !pCLB !ry@Y C !sKD !t@XE !vaQF !wqG !x_GH !yC) L !zMffM !{AN !_GO !}h P !|j Q !F7 R !FET !CaU !D`V !C{ !OP !CLY !z$ Z !{/ !OP !CL] !iމ ^ !oK !OP !CLa !r@3 !OP !CLd !@A !OPf !^ !CLh !z$ i !Oy !OPk !O l !sm !qQn !p o !_p !_z q !Y\) r !]u s !Kt !L1u !B\ ! OP ! CLx ! @`2y !NQz !Jm !OP !CL} !Fݱ~ !E  !E  !CD& !OP~ !CL !|oQ  ! EV !"EV !#DQN !$Gn !%Ci( !&EV !'EV !(FxC !)E !+x !.EV !/O !2IS !3JP !6r  !8JP !;k  !y. !?J !@M  !CA#?  !lKF !nlh !pCL !sE !ut !vOP !xCL !yCL !zCL !{CL !|CL !}CL !~CL !Yg !QL !_, !I !F !Jff !CL !CL !CL !CL !CL !CL !CL !] !CL !CL !CL !M !CL !C !CL !CL !@A !CL !CL !CL !OP$ !H% !It& !RQ; !CL* !E, !S !OP. !NM !CL !CL !OP !CL3 !kE4 !A36 !Ol7 !x&g8 !{9 !m: !d9; !o3< !n !OP> !U? !D@ !EA !Ww !OPD !PƍE !D F !D#G !OY !Q&f !V !P !^+b  !eIi !q.  ! n}[  ! nB  ! n  !5q9 ! !8CL !9CL !:CL !<\C  !?CL !Ag3  !CI !DD !EcM  !G]  !Jp-  !MCL !NCL !OCL !QCL !RCL !UF !VI4^ !Yz)B  ![iYt !_]O !`d  !ahr  !be  !erf !hBn !iP !jA} !luR !nB3  !NϽ !kF !BL !up  !MK  !sD  !a33 !]@ !^  !CL !CL !CL !CL !CL !OP !OP !OP !CL !GP !H@ !I$ !G !L= !L=}e !GVjQ}f !^F/^ ^ M ! t7K N ! CO ! D&P ! @kQ ! TjR ! NۢS ! p T ! z& V ! W9 X ! CEY ! DPg[ ! `,\ ! P^ ! b%_ ! u9 ` ! @zBa ! Bb ! C{c ! A ! CL ! CL ! !CLg ! $k`V ! &CL ! 'CL ! (CL ! )CLm ! ,En ! /|ٚo ! 1M^ ! 3CL ! 4CL ! 5CL ! 6CL ! 7CL ! `CL ! aCLw ! e~\*x ! fNy ! gPH ! hOP{ ! kUUV | ! mc2} ! nw~ ! q] ! tAq ! uF94 ! x} ~ ! zOP ! }f | ! CL ! E ! B ! Fzp ! P u ! CLt ! CL ! k  ! k  ! g 5 ! H6 ! H#P ! CL ! CL: ! K ; ! O< ! Y? ! }T ! OP ! CLB ! y1 C ! SD ! @`E ! UF ! p\G ! PH ! C- L ! MGM ! BN ! `O ! } P ! |= Q ! F7 R ! F>KT ! CHU ! DF|V ! C: ! OP ! CLY ! z Z ! { ! OP ! CL] ! ii ^ ! n`* ! OP ! CLa ! q ! OP ! CLd ! @ ! OPf ! ^ ! CLh ! (zcz i ! )M\ ! +OPk ! ,O l ! -nHm ! .mn ! 0o) o ! 2`p ! 4`L q ! 6Y# r ! 7[ s ! 8Kt ! 9Lu ! :BZ ! ;OP ! =CLx ! ?@;y ! @KDWz ! AJt ! COP ! ECL} ! GFs~ ! ID ! JD ! KC2 ! LOP~ ! NCL ! P{  ! SEV ! TEV ! UD4K ! VG}  ! WC. ! XEV ! ZEV ! [F ! \E ! ^xx; ! aEV ! bO/ ! I ! J ! r  ! JP ! k  ! Lv ! y6 ! JR ! M  ! @Z  ! KF ! lR8 ! CL ! E ! sl ! OP ! CL ! CL ! CL ! CL ! CL ! CL ! CL ! Y ! M ! ^g ! H=q ! FQ ! JH ! CL ! CL ! CL ! CL ! CL ! CL ! CL ! ] ! CL ! CL ! CL ! M< ! CL ! C ! CL ! CL ! ~s ! CL ! CL ! CL ! OP$ ! Hyv% ! Il2& ! Le ! CL* ! D, ! S ! OP. ! N ! CL ! CL ! OP ! CL3 ! kf4 ! A36 ! O 7 ! s8 ! C339 ! !m: ! #g; ! $rf< ! %ry ! &OP> ! 'T? ! (De@ ! )E A ! *We ! +OPD ! TOE ! UD F ! VD G ! WOK ! [T ! \Z0 ! ]T&f ! ^^`  ! ae1 ! bqo  ! dnn  ! en4a  ! fn`*  ! gq ! ! jCL ! kCL ! lCL ! o^j  ! rCL ! tgj  ! uI ! vD ! wcjS  ! y6 ! }ph  ! CL ! CL ! CL ! CL ! CL ! F ! I% ! y  ! iF ! ] ! cн  ! hS  ! d  ! r, ! B` ! Qn ! A ! v- ! C\  ! Nq ! l ! BR ! ua  ! UrN  ! l""  ! _3 ! Yp ! ^  ! CL ! CL ! CL ! CL ! CL ! OP ! OP ! OP ! CL ! G ! H! ! I!O ! G ! L ! L}e ! yX*}f ! F)^ ^ M ! 3tTg N ! 5CQO ! 6D3P ! 8@Q ! ;TR ! z V ! ?W= X ! @CEY ! BD5%[ ! DG\ ! EM9^ ! Ha3_ ! Iur ` ! J@zBa ! L@b ! M@:c ! O~\ ! QCL ! RCL ! SCLg ! VkI ! CL ! CL ! CL ! CLm ! F5n ! }Fgo ! L( ! CL ! CL ! CL ! CL ! CL ! CL ! CLw ! @x ! N\)y ! O ! OP{ ! Uwx | ! aB} ! v7~ ! ] ! A ! Flj ! ~# ~ ! OP ! v | ! CL ! E ! B ! F{ ! Fu ! CLt ! CL ! @c ! k$  ! g;e 5 ! H6 ! H ! CL ! CL: ! L:; ! K< ! Z? ! | ! OP ! CLB ! y C ! SD ! @dfE ! X34F ! jQG ! UpH ! C L ! M(M ! BN ! _ >O ! ~# P ! | Q ! F/R ! F/T ! C5U ! D--V ! C ! OP ! CLY ! z Z ! {Z ! OP ! CL] ! i/3 ^ ! mv ! OP ! HCLa ! Jp ! LOP ! NCLd ! P@ ! ROPf ! T^ ! UCLh ! Wz7 i ! XX ! ZOPk ! [O3 l ! \r=qm ! ]q =n ! ^r o ! a_bp ! c^B q ! dW r ! eZk s ! fKz t ! gLu ! hBw ! iOP ! kCLx ! m@C y ! nNz ! pJP ! rOP ! tCL} ! vF~ ! xD! ! yD ! zC$ ! {OP~ ! }CL ! {w  ! EV ! EV ! DB ! G ! C4 ! EV ! EV ! F ! E ! xnS ! EV ! O ! H ! J ! r  ! JP ! j  ! Q  ! y2 ! K < ! M  !   ! M^ ! jp ! CL ! Ek9 ! u~ ! OP ! CL ! CL ! CL ! CL ! CL ! CL ! CL ! Pg ! P3 ! Yg ! G ! Fp !M !CL !CL !CL !CL !CL !CL !CL !] !CL !CL !CL !M۽ ! CL !#CI !%CL !&CL !(|R8 !+CL !,CL !,CL !/OP$ !0Hl% !1Id& !4I˔ !7CL* !9D., !:S^ !;OP. !CL !?CL !BOP !DCL3 !Gkq4 !HA36 !KP,7 !t@338 !uE9 !xm: !zjg; !{u33< !|v  !}OP> !~T/? !DM@ !EgA !W f !OPD !OE !DF !DG !O=o !Z !_ !XY !]ܥ  !^{) !q  !n`*  !n4a  !n  !p ! !CL !CL !CL !ZR  !CL !f&  !@۶ !Cp !c  !TK !p<  !CL !CL !CL !CL !CL !F !I !z$  !iA !] !cjS  !gJ  !d[  !r  !BM !S$ !A !w !C  !N !m| !B{k !uD  !L  !o*  !` !\Vf !^  !CL !CL !CL ! CL ! CL ! OP !OP !OP !CL !=F& !>H  !?I !@Ge !DL !GL}e !Y(}f ! Gf^ ^ M !_t N !aCO !bD@.P !e' Q !fTR !gOS !in`* T !jy!4 V !kU X !lCEY !nD[ !o\ !pG}^ !ta8_ !uu ` !v@?a !B\b !Dc !AG !CL !CL !CLg !k% !CL !CL !CL !CLm !En !~ o !Lw2 !CL !CL !CL !CL !CL !CL !CLw !Ax !Iy !O34 !OP{ !S | !d} !xf~ !] !Ac !Fdz !~@ ~ !OP !mB | !CL ! E| ! Bjh ! F !Miu !CLt !CL !f  !kz  !g 5 !HG6 !G  !CL !CL: !LC; !"L4e< !#Y? !$|& !&OP !(CLB !*x C !+QۚD !,@EeE !.ZF !/fRG !0_HH !1CZ L !3MffM !4B\)N !5_HO !7~OI P !8},l Q !:F/R !;FT !=C)U !>D3V !?C !hOP !jCLY !ly Z !m{ !oOP !qCL] !rhׄ ^ !tl !uOP !wCLa !yp^ !{OP !}CLd !c !OPf !^ !CLh !y{ i !Wv !OPk !O l !qm !q =n !p o !`p !a= q !XQ r !\k s !Kgt !Lu !U !CL !CLx !@Ay !M8?z !JP !OP !CL} !F5~ !D !D  !C !OP~ !CL !{/9  !EV !EV !D| !G !C: !EV !EV !F !E !x !EV !O !Ig !JP !r  !JP !k)  !Q !y)S !L !L !~&  !Qs !lM !CL !E/ !sl !OP !0CL !1CL !3CL !4CL !5CL !6CL !7CL !:Yg !;N  !<_3 !=H=q !>G !@J !BCL !CCL !DCL !ECL !FCL !GCL !HCL !I] !KCL !LCL !MCL !NM !PCL !SCI !UCL !VCL !X !ZCL ![CL !\CL !_OP$ !`H_)% !aI]& !dS5i !fCL* !iDH, !jS` !kOP. !N !CL !CL !OP !CL3 !kG4 !A36 !Mٙ7 !A8 !Jf9 !n5: !m,; !w < !us4 !OP> !US? !D@ !EA !WG !OPD !P[E !DF !DHG !OQ !Q !U !N !]W  !eb !p  !nB  !n%  !m  !pPL ! !CL !CL !CL ![v  !CL !f  !u6  !DnQ !bq  !Ho  !p|  !CL !CL !CL !CL !CL ! Fh ! I o !z)B  !iJ} !] !c!(  !gx  !d  !pf !B= !SV ! A !!xG !#B)  !'NP !(nh !)BUt !,u65  !-M?  !0p  !1`S3 !3[ !\^  !]CL !^CL !_CL !`CL !bCL !eOP !fOP !gOP !iCL !mFy !nH#P !oIj !pGF !sL !uL}e !^}f !GM^ ^ M !t N !CO !D@P !@RbQ !TR !OS !n$ T !x V !U X !CEY !D[ !ŸE\ !K}^ !`̬_ !u ` !@6a !F b !G >c !B !CL !CL !CLg !kZ !CL !CL !CL !CLm !E*n !}4o !KJ !CL !CL !CL !CL !CL !CL !CLw !Cx !Ky !Op !OP{ !R | !dt} !wi~ !$] !'Ar !)FQ !,~24 ~ !.OP !1i | !3CL !6E !8Bq !9F  !CLt !?CL !B  !CkV  !DgZ 5 !FG 6 !GGe !ICL !JCL: !MLZ; !PNN< !Q[<? !R|} !TOP !VCLB !Xx C !YPD !Z@AE !\XQF !]f=qG !^Y >H !_C@ L !T=qM !FN !fO !~l^ P !}T Q !F(R !FRT !C ]U !DkV !Cf !OP !CLY !y1 Z !z !OP !CL] !hr ^ !l !OP !CLa !p$ !OP !CLd ! !OPf !^ !CLh !y@ i !V !OPk !O: l !rm !qn !n o !`np !\ q !U\) r !W) s !K\t !Lu !S !CL !CLx ! O y !Lez !I !OP !CL} !Fݱ~ !D !Do !C !OP~ !CL !zr  !EV !EV ! D| ! G ! Cμ ! EV ! EV !F5 !E !x !EV !O !I !JP !r  !JP !!j  !"Lv !$yG !%L !&JP !Q~WH  !RS^ !Ul5 !WCL !ZE& ![saW !\OP !^CL !_CL !`CL !aCL !bCL !cCL !eCL !hYg !iNg !jdP !kH !lHz !mJ !oCL !pCL !qCL !sCL !tCL !uCL !vCL !w] !xCL !yCL !zCL !|M !~CL !C !CL !CL ! O !CL !CL !CL !OP$ !HL% !IU & !M$ !CL* !D, !SL !OP. !N] !CL !CL !OP !CL3 !k84 !A36 !M@7 !Df8 !KL9 !n: !i ; !sy< !s34 !OP> !T? !D5@ !DVA !V !OPD !N(E !DF !DyG !OK$ !R !Y !Q` !]  !d ~ !p2  !n4a  !n%  !mh  !pY ! !CL !CL !CL !!^  !%CL !'f/  !(D4K !)Ca !*b  !+F  !,p^  !/CL !1CL !2CL !3CL !4CL !7Ft !8I W !;z?  !>iQ !A] !Bb[  !Cg  !Dd.  !Gp !JB- !LS !MA=z !Ny^ !PB  !SNJ !|oXK !}AǾ !u'  !V"q  !r]  !` ![ !^  !CL !CL !CL !CL !CL !OP !OP !OP !CL !F !HX !I !G !L !L}e !+\!}f !BG]X^ ^ M !t N !CO !DYP !@Q !UG_R !O S !n T !y/ V !UF X !DFY !D6[ !\ !H`^ !c _ !u ` !@"a !D(b !Ezc !G0 !CL !CL !CLg !k= !CL !CL !CL ! CLm ! EBn !}4o !Kfg !CL !CL !CL !CL !CL !CL !CLw !E@x !FLpy !GO !HOP{ !LS33 | !NdV} !OzH9~ !Q] !TAW !UF] !VBo|~ !XOP ![MeJ | !]CL !`E !aB !bF8 !fIu !hCLt !iCL !k@ !lkz  !ng5@ 5 !pG6 !qGu !sCL !tCL: !wLE; !zH< !{V)? !|| !~OP !CLB !x C !O7D !@AE !S(F !fG !PH !C=b L !TM !FN !f=qO !~s P !} Q !F(R !ETT !BU !CV !C !OP !CLY !yN Z !y{ !OP !CL] !hr ^ !m !OP !CLa !p3 !OP !CLd !' !OPf !^ !CLh !yN i !T~ !OPk !O%V l !qffm ! pn ! p o !` 1p !] q !Vff r !Z s !KOIt !LWu !Rr !CL !CLx !~l^ y !IKz !Ik !!OP !#CL} !%F/~ !'D !(E> !)C !*OP~ !,CL !.zT  !0EV !1EV !3DS !4Gx !5C !6EV !7EV !8F/ !9E !;x !>EV !?O !AH !CJP !Fr  J i  SJF y% L I |_  Q l< CL Eg r OP CL CL CL CL CL CL CL #Yg $Ng %_ 'DH (Cp )G +CL ,CL -CL .CL /CL 0CL 1CL 3] 4CL 5CL 6CL 7M< 9CL dC fCL gCL i}  kCL lCL mCL pOP$ qH:% rIO@& uHӻ xCL* zDb, {T |OP. }Nr CL CL OP CL3 k$+4 A36 N7 I 8 K&g9 nm: jٙ; s< sL OP> T? D}@ DA Vp OPD OE DܜF DaG O2 Sp Y@ Qi \Tc  ^tT p  n4a  n0  mm  of ! CL  CL CL Z  CL f  J_C C c  V pA  CL CL CL CL CL F I z[  i9b ] b6  f  dTF  .r9 1Bs 2R 3AK 5y 7Bf  :O  ;pK  U? D @ DA W3 OPD O1)E DF DG OS S Z0 RP ]%  e pj  n0  n0  ll  ouq ! CL   CL  CL  [g  CL g!  EO D c[  E  p$  CL CL CL CL  CL #Fg LI O{  QiP T] Ua  Wf(r  Xd(\  [q@ ^B| _T  `A azQ cB޸  gN^ hq?{ iA\ lu  mM  ps  qac3 s\ t^  uCL vCL wCL yCL zCL }OP ~OP OP CL F Hg Is G L L}e \|}f ,Hx^ ^ M tb N CO D-P r Q U-R O S n T y V Uc X D GY C[ ݸ\ I^ fD-_ uV ` @6a Fhb Jc E CL CL CLg j#  CL CL CL CLm  En #}0o $KV  'CL (CL )CL *CL +CL ,CL -CLw 0AW x 2L34y 3P4 4OP{ 7R | 9b<} :y~ <] @A AFw: BB~ COP FQY@ | HCL LD; MBM^ NF OFu yCLt zCL }@Z ~k1'  f 5 G6 G CL CL: M*; KF< S ? |&  OP CLB xt C LZD @9E WzF izG SGH B L SHM F\N fO ~' P }f Q F!OR EѕT B U CԡV Ca OP CLY z)B Z y  OP CL] h(# ^ mh  OP CLa p^  OP CLd of  CLf ^ CLh yN i I< CLk Nv l x m wn F&fo a7p ]u q V r Zf s KJt Lu Q* CL CLx  } y  Lz  d CL CL} F~ D F7N C OP~ @CL By  EEV FEV GD HGo IDG JEV KEV LG ME PxVF SEV TO VH WJP Zr  \J! _ixB  `Lv bz  cL dI( g|_  iQ klq mCL pErt qq rOP tCL uCL vCL wCL xCL zCL {CL ^< Ng ^ D Cp G CL CL CL CL CL CL CL ] CL CL CL M CL C CL CL @A CL CL CL OP$ H%!% IB;& M CL* D, S" OP. NV CL CL OP CL3  j-4  A36 Q`7 Ns38 J39 o: o; vg< vg OP> Tw? D@ DA V OPD N@E DuF  DG !O/ $Vf %]  &U< '\K  *c +p  ,n  .n  /l~k  0oXB ! 3CL  4CL 5CL 7^  ;CL =f  >|5!  ?Cw @cx  A} Bp  nCL oCL pCL qCL rCL uF vI$ z{  |ico ]O aЊ  f 4  ct  qs3 An S7 @ɫ {= B޸  N< r- A` u  V  lf  ` ]6f ^  CL CL CL CL CL OP OP OP CL FA G I G L L}e AW}f }HQ^ ^ M t0 N C{O E!P  Q VR O S n T y/ V U+ X D GY C״[  \  J1^ 6eP1_ 7u ` 8@"a :HRb ;Hc =A ?CL @CL ACLg Dj{  FCL GCL ICL JCLm MEn P}vgo QLM9  SCL TCL UCL WCL XCL YCL ZCLw ]@x ^KRy _QǮ `OP{ dS | fdх} gxf~ i] lA mF> }~ ~ OP y^& | CL D  BRs Fw Mmsu CLt CL @ kz  f 5 GV6 G CL CL: L; M < ZLw? |`  OP CLB xH C M9MD @E W=qF tG VH B L T\)M F\N fzO ~; P }u% Q F!OR ET BU CV CVJ OP CLY y@ Z z)B  OP CL] g ^ mJ  OP CLa p3  OP CLd xt  CLf ^ CLh zcz i I_e #CLk &N9 l 'xHm (wn +E33o ,`[p .\= q /TH r 0Y s 1Jt 2L7u 3OZ 5CL 6CLx `}f y aIz ci r eCL fCL} hE~ jD lFh5 mB4 nOP~ pCL ry@  tEV uEV vDV xG yD4K zEV {EV |G4 }E xdl EV O? I( JP r  J! i  S z  L I |_  Q lq CL E}M t OP CL CL CL CL CL CL CL af M6f `s4 H H K CL CL CL CL CL CL CL ] CL CL CL M> CL CI CL CL ~l^  CL CL CL OP$ Hw% I;& H *CL* ,D, -SA .OP. /N 1CL 2CL 5OP 7CL3 :j4 ;A36 >Mٙ7 ?HL8 @~L9 Co\: Et@; Fx< G} HOP> IU? JDu@ KD%A LV2 MOPD NPE ODF PDG QO' Ta33 Uhg W_4 X\q  [b+P \pF  ]n  ^n  _l5h  `n ! CL  CL CL ZR  CL g!  z?  D cx  Fe  pY  CL CL CL CL CL FB I. {/9  imh ] bb  f(r  c-  pf A Tw AO { B)  N! u| a]T u ~  LC&  rL  ` ]6f ^ CL CL CL CL CL CL OP OP CL FL G^ H G L L}e ] }f HM^ ^ M (t N *CO +ECP V7 Q WVR XNS Zof T [y V \VGO X ]CEY _Ci[ `\ aIJ^ ed"A_ fu ` g@a iDٚb jGffc kC mCL nCL pCLg sj  uCL vCL wCL xCLm {En }o L  CL CL CL CL CL CL CLw @x K.y R) OP{ S | e9} wH~ ] AW F_ }~ ~ OP c<8 | CL D B4 F L%u CLt CL @a k J  gZ 5 G6 G CL CL: L; N"&< S? |5!  OP CLB xe C TD @"E Z=qF gG !WH "B[ L $TM %FQN &eO ( O P *}; Q +FR ,ET .B?U /CV 0C9 1OP 3CLY 5z7 Z 6z  8OP :CL] l Wym xGn D3o a<p [ q R r V s Jt L!u I{ CL CLx |& y OX$z d CL CL} E~ E  FΑ BR OP~ CL y]w  EV EV DnQ Ge DQN EV EV GC E x EV O IF JP r  JP k_  P z  K Ir |_  Q jp CL E q OP CL CL CL CL CL CL CL ^Y Q9 bS4 K F34 K CL CL CL CL CL CL CL ] CL CL CL M CL C0 ICL JCL K@ NCL OCL PCL SOP$ TH % UI5& XQ9 ZCL* ]D, ^S" _OP. `NH bCL cCL fOP gCL3 jj4 lA36 oU7 pL8 qm9 to-: uk3; vu< wt9 xOP> yTޭ? zD@ {D݄A |VD }OPD ~O$-E DeF D^G O6 `s4 h, `&f ])  c  pU  me  m  k  n ! CL  CL CL [  CL f  I6 Ca b.  ˩ o  CL CL CL CL CL F| I. {LS  iP ] b.  f  cD  n` B 2 R B {# B{  O' aY Il2 "u ~  #NcI  &lH  '`f ([f *^ +CL ,CL -CL .CL 0CL 1CL 4OP 5OP 7CL ;F H AL BL}e dV}f Gw^ ^ M t( N CyO DyP AQ V2R NS o,| T yx V VC X CEY C9[ g\ Ll^ b_ v ` @"a FQb Hqc Ek CL CL CLg j  CL CL CL CLm Eقn }io Lb5  CL CL CL CL CL CL CLw Dx LaHy O OP{ S33 | bv} x ~ ] Ar F( }~ ~ CL k | CL DT N FN DEXu  CLt  CL  @{ k%  gc 5 G6 G CL ?CL hCL jCL kCL lCL m] nCL oCL pCL rM. tCL vC` xCL yCL {@ ~CL CL CL OP$ H!% I0& Mi CL* D, Srh OP. Ne CL CL OP CL3 j4 A36 K7 B8 mg9 oK: }; z< uf OP> T|? De@ DA V OPD OE DF DG O ^vf e3 ^ ]  ]- o<  m  m  k  nn ! CL  CL CL _/  CL f&  Ge C b  > o+  CL CL CL CL CL 0Fz 1I( 4{=  7i<= :] ;bb  b DRc D( CL CL CLg k  CL CL CL CLm Fran  }Lo  L8=   CL  CL CL CL CL CL CLw CBx Mffy PW  OP{ TDD | f}  v!~ "] %B8 &F_n )~l^ ~ ,CL .w | 0CL 3DT \H0 ]F aOɖu cCLt dCL fA gkt  ig 5 kH26 lG nCL oCL: rL/; uPl< vV? w}~  zCL |CLB ~vv C R~1D @AE cF }G X34H B L qGM _N }O U P } Q FRR ET B~U C^QV CA OP CLY { Z xP  OP CL] f ^ }:  CL CLa A CL CLd @X CLf ] CLh |= i L CLk NĤ l zm xn Pfo aq\p ^( q V r X=q s Jt Lu K5 CL CLx } y L@z P_ CL CL} $E~ &E 'F (B% )OP~ +CL -y  0EV 1EV 2D 3H[ 4D| 5EV 6EV 8Gn 9E ;xS >EV ?O AI( BJP Er  GJP Jk  KR Mz  NK) PIX S}  TQ Vjp XCL [Ea \s/ ]OP _CL CL CL CL CL CL CL c Ng c0 J I{ M CL CL CL CL CL CL CL ] CL CL CL M CL CI CL CL ~  CL CL CL OP$ HC % I+& H< CL* DѢ, S OP. Nl! CL CL OP CL3 jl4 A36 Ts37 Y8 u&g9 pi8: z3; z< wٚ OP> U? D@ DӍA W OPD  QmE  DTF  DЁG  O( c N E ]  d6 o  m4  me  kZY  n4a ! CL  CL !CL #Z%\  &CL Pf  QK  RC Sb  Ux Yo۔  \CL ]CL ^CL _CL `CL dFy eI- h{LS  jiTw m] ndq  of  pcj  tr wB xN yE  zwl |B=  P ]_ E u ~  Ku.  sL  ` ]< ^ CL CL CL CL CL CL OP CL CL Gs G H H&  L L}e UE}f fH`^ ^ M s N C O DP @@Q VsR NS @T yx V V* X DHY D^[  I\ !G^ $`_ %v9 ` 'Ba )E b *F:c +D > -CL .CL /CLg 2k?u  4CL 6CL 7CL 8CLm ;G]n >}4o ?KJ  ACL BCL DCL ECL FCL GCL HCLw KBfx LM >y NOaH OOP{ RS | |cC} }w~ ] B/ Fu ~Ü ~ CL y? | CL D E F Hu CLt CL A k/  f8 5 H}6 G CL CL: Lw; N]< Y? ~  CL CLB ua C MD @EeE cRF rG ]H CEY L y\M iRN B>O c P } Q ER EZT B]#U C8fV @ CL CLY x+ Z x  OP CL] fq ^ ~s  CL CLa AW3 CL CLd  @.  CLf ] CLh }; i LR CLk NC l yGm xpn EUo Fap H\ q ITff r JXz s KJt LLku MK  OCL PCLx R}f y SPz UOw' WCL XCL} ZE~ \F V ]F _B{ `OP~ bCL dzT  fEV gEV hDX iH* kDS lEV mEV nG oE qx tEV uO? wI- xJP {r  ~JP n}[  Lv z  K  IB ~\  Q jQ CL E tj OP CL CL CL CL CL CL CL ` O _f D C{ G CL CL CL CL CL CL CL ] CL CL CL Mv CL C CL CL  A CL CL CL OP$ H\p% I+& R  CL* DG, S!  OP. !N #CL $CL 'OP )CL3 +j94 -A36 0M47 1C8 2}fg9 5pX: 7Dp; 8@ < 9B&f :OP> ;Tb? VC ?OPD @PE ADmF BDαG CO- Fj Gphy^z [| o  m4  me  kQ m4 !CL CLCL\5 CLg vCLwADffxBMyCR{DOP{GS |Ic+}Ky3}~M]PCxQFzT~@ ~VCLX] |[CL^D$_Gn`FcJ-AufCLtgCLA/k f 5Hv6GCLCL:J;I<ZE? CLCLBt CTD@M$EQ FeGSHC^ L@qMpNEO P} QETRElTBHfUC!V} CLCLYu6 Zx OPCL]fTQ ^' CLCLaACLCLdAKCLf]CLh~ iM* CLk Nqi l @Q m}nV3oa8p_ qWk rZG sJtL(uMjCLCLx} y Jz"O$CL%CL}'F~)F7*F+C,OP~.CLXz [EV\EV]D^H9Q_DV`EVaEVbGcEfxiEVjOlImJPpr rJ!uB vTBxzmyK()zI'}S ~S/T?0DT@1DA2VV3OPD4R'E5DF6D8G7O ;jY_X AcBo Cm Eme FjH Gmi !JCL KCLLCLO^ RCLTgd UG&"VCμWc Y>of CLCLCLCLCLFrI-{in ix]{h n`* c mCRK+lBu P"\EsZu ~ V- s `[f^CLCLCLCLCLCLOPCLCLH#PG*#H(GLL}eYO_}fH2^ ^ Muwo NCODPA]Q"V{R#N^SLr TNz VOW֥ XPD^YRD [S$\TG^WfNW_Yv8 `[Ca\Bb]D8Rc^C `CLaCLbCLgfkH hCLiCLjCLkCLmnHnq}osM4 uCLvCLwCLxCLyCLzCL{CLwAxKLyTOP{UUV |eJ_}xk~]CiF[y ~CL@|CLDG)FkN0uCLtCLA$k/ gk 5H6GCLCL:H;Mq<T!?@CLCLBu' CQaD@.#Ec\*FvQG] HCe7 Ly\MizNBLO' P} QEREzTB0 UC2VB`>!CL"CLY$sl Z%y@Y 'OP)CL]+f ^,@b/CL0CLa2B 4CL5CLd7A:CLf;]~' i?OBCLkENd lFDq mGBk nJWoKapM_z qOV=q rxZW syJytzLUu{J}CL~CLx~24 yOzPCLCL}FL~FZFCYOP~CL{ EVEVDZHGDEVEVGExEVO?HJPr JgoK Oz8LI$@'s SfT?gD @hDѼAiVOjOPDkQWElD}FmDُGnO@Qpjlqp3sh,t_ w\Cxp ym zm {j m !CL CLCLZQZ CLh I D4Kd ^of CLCLCLCLCLFoI9{ il]i oI c sS3D8P4Mi B  O^ VEu ~ KW rY `ٚ[f^CLCLCLCLCL CL#OP&CL'CL*H+G,H3.GV1L4L}eLY_}fHlv^ ^ Mtu NvCyOwEbhPxAxQ{VwLR|N4S~q^ T| VX XDsYDB[q&\M?^e _vUU `CmaD!HbAcBCLCLCLgkZ CLCLCLCLmGn}goN/ CLCLCLCLCLCLCLw~ xJyQLOP{V |dM}w ~]CyFA|5! ~CL3 |CLEGe%GE-uCLtCL@k- hV 5H6G>CLCL: J<; N< Y?4@b7CL8CLB:tY C;N=D<@EeE>cF?eG@VffHACk LB@qMCr NDGOG PH}~ QIERJEGTLB&"UMCVNBDPCLQCLYSr ZTHVFWCLXCL]Zfm ^[Bn^CL_CLaaB+cCLeCLdfAeiCLfj]lCLhn ioPICLkN lIff mF n[ٚoaSLpa q[ r_\ sJtLWuJjCLCLx~z yM4zR CLCL}F~FrXFvu' CL~CLz$ EVEVE HVFDEVEVGxEx&EVOIM JP r  JP B  Lv z K? I @Z  S S? D@ DɔA Ue; OPD PbPE DF D^G O 2 k#3 p h `6  eB p  mi  m  jSk  m7 ! CL  CL CL \  CL gJ  A D dp  l~( of  CL CL CL CL CL Fm5 IC {  iß ] (i  )n  *bP  -n 0D{ 1T- 4O4m 7fs 9B)  F.Z Au  BQ|  Fl  G_ɚ HZ33 I^ JCL KCL MCL NCL OCL PCL SOP UCL WCL ZH( [G \G ]F> aL bL}e p}n}fH^ ^ M t0 N CO EP A/Q VXR N,S p T | V Y X EVY DTL[ F\ O^ d3:_ vc ` B=a ELb Bc C CL CL CLg kJ  CL CL CL CLm GOEn }|o N  CL CL CL CL CL CL CLw Ax K=qy UB OP{ X | c} u"~ ] CE EJ y{ ~ CL z% | CL #E&\ $G %FT (LZu *CLt TCL V@ Wko  Xg 5 ZH6 [Gt ]CL ^CL: `I; aO< bZ=? dA fCL gCLB iup C jPD k@9E mrF n{G ocH qCo L rKM sELN tU34O w P x} Q yER zEGT |B!U }C DV ~CFT CL CLY qˈ Z B" CL CL] gn ^ CSc CL CLa Ca CL CLd @ CLf ] CLh @i Q$ CLk OM l IR m F n \ٚo aDFp ` q Xff r Z s Jt L]u K  CL CLx ~; y L|z O1) CL CL} FxC~ F F x  CL~ CL z[  EV EV E9[ !Hd "DY #EV $EV %G &E (xj +EV -O /Iw 0K 3r  5JP 8B  9Q ;zю  W CL CL CL CL CL CL CL ] CL CL CL MY CL C CL CL @ CL CL CL OP$ Hκ% I't& N:w CL* EB, a OP. M CL CL CL CL3 j^34 A36 I7 @8 xs49 ry: Bg; @c3<   OP> S~? D@ DA Uc OPD QyYE DF D-G N jg p i aB  b$ pj  m  m  j  m<8 ! CL  CL CL \  CL gL  vK  C: c_  a of  CL HCL ICL JCL KCL OFj~ PIW S{  Ui X] Yi=  ZnQ  \b  _s bD| cOG fO hdB jBǮ  nP) oG pG su'  tSK  ws{  x`f z]< {^ |CL }CL ~CL CL CL CL OP CL CL H G G5 F L L}e OC}f VG^ ^ M uZU N CvO EXlP AݍQ VXR NS pmy T } V YT X EY Dd[ $\ NP^c_vq `A݋a@bB=qc@hCLCLCLg k #CL$CL%CL&CLm)Gdn,}go-O /CL1CL2CL3CL4CL5CL6CLw9{\*x:I)yP-@CLACL}CF~EF+FFI} LCL~MCLO{ QEVREVSE9[THs<VDWEVXEVYGoZE\x"_EV`O/bIcKCufr iJlB mRo{rpLqI otA' uS&\wA?'D^@(D5A)U *OPD+QE,DF-DG.N͓1i&g2oVf4f35ax 8b59pj :m7 ;m4 E/Y?Dj[@F\AP=^Ec*P_Fv `HAvaIFbJEcKC MCLNCLPCLgSkc UCLVCLWCLXCLm[FEn_}\o`N bCLcCLdCLeCLfCLgCLiCLw@xKRyP(OP{W |bǂ}uy~]BʻE~ ~CLs |CLE*GFF4uCLtCLAFkT gȵ 5H6GCLCL:G0;KK<T?At@CLCLBt CPID@`Em{F|GbHClb LK\)ME.NU#O@P~ QEWREV[TB.@U C$V Co CL CLYpӖ ZBk!CLCL]fq ^C~CLCLaCCL CLd"A%CLf&]'CLh)@i*N]-CLk0O l1I=q m2FaH n][o^a|p`aaH qaZ3 rc^ sdJteKufH.uhCLiCLxk ylMznM[pCLqCL}sF~uFXvFw@yCL~zCL|{ EVEVEGHDZEVEVGEx_EVOpIbK/qoAKB Lv{LI-B SCL?CL3Bj4CA6FY7GM8H@49Ks!):MB;NB#4<O@QCL>SUp?TD-@UDAVZXCLD[PIE\DF]DG^NnguLlga cdpj m7 m4 i l !CL CLCL]b CLg HDXd( ~of CLCLCLCLCLFZ5Ii{ iK]{i n bx n#3DQKw_ ZB O1PIu' Spi x* `3]f ^ CL CL CLCLCLCLCLCLCLHGGacF\LL}e[!}fHb0^ ^ M_t` NaCObDOPcB`QfV>WRhNgSipY Tj|r VkY XmEĨYnDg[o*n\qQ ^tbC _uvr `vA<axBcbyDcz@aH}CL~CLCLgkw CLCLCLCLmFMn}IoN CLCLCLCLCLCLCLwE\)xLaHyTkOP{V |b}xج~]BF=|j ~CLz. |CLE"G'FvOTuCLtCLAuk gfg 5H6GCLCL:FE;R< Xpq?!BE$CL%CLB'u C(LSD)@QE+fzF,o\*G-_ >H.Cf L/c=qM0Y8RN1tHO2@P5~@ Q6EZR7E@T9BBU:C9MV;GU=CL>CLY@p< ZABk!DCLECL]GfE ^HC>KCLLCLaNCQCLRCLd|@~CLf]CLh@iMWCLkO lK mI n]oa7pb = qZ r_8R sJbtKouH@CLCLx yQC zOhCLCL}F~FFAIfCL~CL|j EVEVEdH/EZEVEVGeEyEVOHJoAK6EVL3{HKmID X^CLEcsOPCLCL CL CL CL CLCLYgQgd34z__CLCLCLDCLECLFCLGCLH]JCLKCLLCLMMOCLRCTCLUCLWo YCLZCL[CL\CL$_JQ%`I[&cRp\eCL*hF,i[jOP.kN. mCLnCLoCLpCL3si[4uA6wT37xK8yH9|t:~D;C\<ApCL>U-?DE@DAUhCLDMEDFELGVmYsc3k,bv \sp mv m ii lo !CL CLCL[5 CLhE^ CDDudE ؏>of CLCLCLCLCLFhIs{w iß]{i o,| bq. oS3"E0#O &eT (P*B -Pھ.Ha0H<3u' 4O 7l 8`9\Ff:^CL?CL@CLBCLCCLDCLECLIDG .Ge Ff L L}eQΫ}fHH^ ^ M%uwo N'CzO(CP)B Q-V6R.N>S/o+ T0{>? V1X X5E߸Y6Dq[7\8G^d`_ev `fAahC{biD)cjBklCLnCLoCLgrkV tCLuCLvCLwCLmzFn~}oN CLCLCLCLCLCLCLwELxPffyQ=qOP{UDD |d$}vwk~]BF ~# ~CLuFu |CLE'CGMFIuCLtCLACk+ g5@ 5H6H CLCL:F>K;P1<[ ~?CpiCLCLBu COD@l&Eo F@#GZHCq LFJ>MA8RNUfO@)P~@ QEREGTBYUCS|VFW-CL.CLY0p Z1Ci(4CL5CL]7f ^8DnQ;CLDB@CLACLdC@FCLfG]HCLhJAiKQNCLkQP lRJz mSG nV\@oWbpYcp qZZ r\\ s]Jt^K{u_IsoaCLbCLxd^ yeNrzgKݺCLCL}Fݱ~GsFAʫCL~CL~ EVEVEdHE*@XEVH[ExdEVPIAJPr LEVK{HJPID Y[&eCLEJtOPCLCLCLCLCLCLCLYgOavgM@P!HN CL CL CL CL CLCLCL]CLCLCLMCLCmCLCLvtU<?uD@vD}AwUL yCLD{DE}DlF~E:qGT$l|rkpb cpDP mh m i= kd !CL CLCL[J CLh(# zF^ DJc Wpof CLCLCLCLCLFIr{ iʿ]{i= o bb rEqvSVd MFB OvoHH*#u65 $LC& 'lf (`L)Z*^,CL-CL.CL/CL0CL1CL3CL4CL5CL8I9G7;Gm*CL?CL@CLACLBCLC]ECLFCLGCLHMuJCLMCOCLxCLzy |CL}CL~CLCL$KS%I&M$qCL*G1c,\)OP.NiCLCLCLCL3j4A6Qf7H`8Ag9v%:Hf;G<ECL>U?E:@E@AV;CLDv EE7DFErGU6vry2q\ci ^}p! mYk m i\ k !CL CLCL_/ CLgJ r DVd7' 1fof CLCLCLCLCL F Iv{ i]{i o; bEA CpFEGPJn}[ KJ NB{ QQ(SGKTGnWu65 XU9 [nU \`p][3_^`CLaCLbCLcCLdCLfCLgCLhCLiCLlI onG5oGpGQsLvL}eD}fHĔ^ ^ Mt NCROCpPAQV6RNbhSo Tz/ VWr XFYDNu[Ǻ$\L ?^d_v `@aBcbE.cF{CLCLCLgk CLCLCLCLm Fbn }6goMI CLCLCLCLCLCLCLwCqxM4yOpOP{!T |#b- }$xO~&])BT>+F9.~@ ~0CL2h+ |4CL7E(+8E:F=OSu?CLt@CLBAlk$ mgc 5oI6pHorCLsCL:uC;vR<wS ?xC'{CL|CLB~t COuD@hEGFSGCHCg LN MJN^xRO@P5P~l^ QEREOTBUCVHHCLCLYo+ ZCCLCL]g[~ ^DCLCLaD̘CLCLd@CLf]CLhA+iL)CLkP lL mI n]obpaz q\\) r` = sJtKk~uG].CLCLx@-SyPizLPCLCL}Fs~G!*FjAVxCL~CL~ ixB ixB  EV B 4B 5ixB 6ixB 7B 8j :xd=EV>P e@I~BJEr GM JEVKLvM|rNK$OI-RE^ SXUVEWCLZEED[s]OP_CL`CLaCLbCLcCLdCLeCLhaiYfklgld\m_neuCLCLCLCLCLCLCL]CLCLCLM<CLC$CLCL| CLCLCLCL$K|%I&LCL*GkZ,\CL.aSCLCLCLCL3iz4A6Y,7N8N9wrV: E; Hc4< C#3 CL> U3? E@ E2A Vf CLD sU: E EwF EWG UT zS4 @l xi d.  d=j py+  mJ  m  h  !l3 ! $CL  %CL &CL (Z4  ,CL .hr  /BF 0D 1dp  2Nh]  3of  6CL `CL aCL bCL cCL fF  gIw j{H  mi p]{ qi  roXB  sb'  vns3 yEǕ {U ~t!N  R* BaH  P Gld Ge uD  MK  qf  `c3 [3 ^ CL CL CL CL CL CL CL CL CL Hx G5 G G6 L L}e 2_͖}fBI^ ^ M t{ N CQKO D%P BPEQ V2R NmS o T zJ V W X FXY Dg[ \ H^ e_ v ` @a )Db *D4c +AW  .CL /CL 0CLg 3k  5CL 6CL 7CL 9CLm  6U? 7E~@ 8EDA 9VwI ;CLD =v E ?EF @EG AUe; C@3 DD F4 GdZ  J^\k KpF  Lm<8  Mm  Nh  Pk/ ! SCL  TCL UCL W\a  CL h  E Cp e/  M  of  CL CL CL CL CL FǶ I |  j1T ]{ i  o;  bS  o E5 Ws h  Lj Bff  PO Gu G uD  PHc  o.  ` [Ff ^ CL CL CL CL CL CL CL CL CL H| G> G Fa L L}e `N]}f H$^ ^ M s N CJO D>P B[Q JV:R KNt<S Lo7 T Mz V NW X PFY RDi[ S\ TR^ Wf_ Xv ` Y@a [ERb ]E\c ^ER `CL aCL bCLg ek  gCL hCL jCL kCLm nFHn q~o rM  tCL uCL vCL xCL yCL zCL {CLw ~AW x Kky Q OP{ T | dP} w~ ^ B= FJ }f ~ CL Q; | CL D HE F' Kyu CLt CL A k\)  gc 5 I'6 H CL CL: B; M < T? CU CL CLB t' C PD @E \F gaHGU{HDt LSMS^NdpO@mEP~Ü QEREdTBUCVKث CL!CLY#ouq Z$D%'CL(CL]*h(# ^+D.CL/CLa1EG4CL5CLd7@:CLf;^A2i?RBCLkEQ- lFL\ mGJG nJ\oKb]pua3 qv[ rwY sxJ!tyKYKuzI|CL}CLx@JeyQzzLsPCLCL}Fy~GEjFYB&*CL~CL: m l3 ixB ixB B n% ixB ixB BxdEVPCL?CL$BK%CI&FPoICL*KKa,L[kNCL.Qb~SCLTCLUCLVCL3Yi4ZA6]y7^n8_ml9bzd):dG3;eJ<fEc3hCL>jVf?kEI@lE]XAmWooCLDqq+ EsEƐFtEGuUwCgFvgBHej eZ]p m<8 m hq7 kw !CL CLCL] CLh EVE2d Q\of CLCLCLCLCLFIb|C j]i o,| a qF) Tt kQ  I(-BaH RfGG(uS[ T/P lj `&fW ^!CL#CL$CL%CL&CL'CL)CL*CL+CL.H6/GC1G2Fv5L8L}eFu}f H^ ^ M{tE N}CT%O~D?PBQV>WRN[GSoXB T{ VXs XF.8YD|4[\JM^eC_w `@paHs4bI)cDCLCLCLgl-^ CLCLCLCLmFD<n~LoNY CLCLCLCLCLCLCLwxP(ySuOP{V33 |dև}w~^B-8F5}X ~CLR |CLD GFpMfuCLtCLA1l| 2gM 54I+K65I 7CL8CL::B);;Km<Vf?F5G@EnAV4CLDq9 EEFEGUC8FPAg baqL m- mi hE^ k=" !CL CLCL[5 CLi\ @QBeд O o CL$CL%CL&CL'CL*F?+IE/| 1k4]5j 6o 7ad :o>F%?[+(Br DNJ4FB=q IRcJGKGԬOua PO]6 SkY T`UQV^XCLYCLZCL[CL\CL]CL_CLCLCLH|GCGF;LL}ea' }fH^ ^ Ms1L NCWOE/PBoQVhRNeSouq T}\ VZ XF[YYD[¹dj\Q^dH_w8 `@faEǮbG}qcC)CLCLCLgl CLCLCLCLmF*n~o O  CL CL CLCLCLCLCLwC34xQLyZROP{X |b# }v7~!^$B#%F[P}R ~SCLUU/ |WCLZD:[E \FJ`GSCubCLtcCLeA`fl9X hgx 5jI16kI){mCLnCL:pBE;qHq<rXl?sDvCLwCLBysl CzP?wD{AXwE}]=qF~hW GQHD LV{MP8RNdO@P~' QEREzTCNUD)V[CLCLYpY ZB=CLCL]kQ ^ECLCLaF7 CLCLd@CLf^CLhAW3iSCLkQ lM\ mK=q n\fobpbp q`W r`Q sK,tKk~uD_CLCLx@yNp.zNiCLCL}FL~ Glc!FqD#A%CL~&CL(@*nB +n% ,ixB .ixB /ixB 0B 1n% 2ixB 3B5{/8EV9Pr;IV@?F9@Er5AVCLDw3 E EϣF EqG U[@vfC ~VgkH diqr m mi h k=" !ECL FCLGCLI]b MCLOi[ Py QDGRgn TpuWo۔ [CL\CL]CL^CL_CLbF4cIg| ikGl]{mkZY np oa rrvFDwUzo,| |O~Bk RҁGGup Uc e `fT\^CLCLCLCLCLCLCLCLCLHG`{GVFLL}eTv@ }feHm^ ^ Muλ NChODVPBQVwRNpSof T}i VZʅ X FsY!DPg["r\#W-^&c_'wUU `(@SRa+IJ>b,HLc-C{/CL0CL1CLg4m= 6CL8CL9CL:CLm=Fon@~4oAP'u CCLECLFCLGCLCLCLCLw Ex Qfy VW  OP{X |c }tk~^BoF ~# ~CL!U |#CL&D'F(F+MOu.CLt/CL1A2l 3gF 56IF67IK9CL:CL:dB";eH<fTʹ?gDnQjCLkCLBms CnMDoAEq[{FrdGsM >HtD LuUpMvQkNwd*Ox@8P{~; Q|EWR}ElTCUDiV]aCLCLYp ZBCLCL]k ^F7 CLCLaFCLCLd~# CLf^CLhAW3iKCLkQ? lML mK8R n\fobpe q_ r_3 sK=tKo!uHCLCLx@yS,zJ˽CLCL}Fi~G|FjACL~CL@=EVEVixB ixB ixB EVEVixB E{,EV-Pl/I@0J3p3V5JP8]! 9K:@$<HA BS[q^CL_CL`CLaCLbCLcCLdCLe^fCLCLCLN,CLC$CLCLv( CLCLCLCL$KƂ%I&MCL*K:,Z(CL.XCLCLCLCL3i4A6Gp7},8x9~c:I;J<GS3CL>VKk?FP@Ez^AVDCLD{H EEϣFE}xGU`2B3E4@l  dz r1  m  mi  g j !CL CLCL]Z7 CLiQ t' Cμh  M !o+ $CL%CL&CL(CL)CL,F-I-X| Zk]]_k_ `p aav dn`gF`hXlEkn m~OI pBE sSL<tGuGϛxu yP }j; ~`ffRFf^CLCLCLCLCLCLCLCLCLIG}xGGLL}e _%x}f1H~^ ^ Ms? NCoOCPCQVgRN{^SoXB T}Q VZB XFYD[\P^bCLwAAGxBOaHyCZDOP{GX |Ic{}Jv/3~M^PBQF#T}I ~VCLXP |[CLDH)cF$5KuCLtCLA'l- g! 5Ii6IlCLCL:C;Hڷ<UF?D̘CLCLBs CN3DAEgqFf\GX34HE LMMFqN[xRO@P~ QERETD UDV^CLCLYp3 ZB CLCL]k=" ^FCLCLaFCLCLd} CLf^CLhAW3iSCLkR@{ lL m JW n d&fo cFpa33 q[ff r^ sKJtKpuFCLCLx@yNiAzJmCL CL}"Fݱ~LGMF~NAsPCL~QCLSA2Vk Wj> XixB YixB ZB [l8 \ixB ]ixB ^Ba{eydEVePsgI.hJ9kqmJPp]n qDF-r@tLuHx|_ yY.{AY}CLEpTCLCLCLCLCLCLCLCLt6glgvfMRVRUCLCLCLCLCLCLCL^CLCLCLN CLCyCLCLx CLCLCLCL$K١%I&Q^CL*K,YCL.SCLCLCLCL3ir4A6I 7 Ef8!EL9#:%Jf;&L<'H,)CL>,U3?-F@.EMA/U11CLD3m E5FF7EG8T8h;Bg=Fq>A?mc B`Crxt Dmm Em Ggn Hj !KCL LCLMCLO\ zCL|j63 ~u' BEi= QpY CLCLCLCLCLFIZ|& lF]{l& qes a r FHaZ)tx Q'B&f T^GGԬu6 S e3 _fNp^CLCLCLCLCLCLCLCLCLIGOG}GLL}eGE}fH^ ^ Mt NCzOCmPAB QDW"RENSFouq TG~ ^ VIZ XKF6YLD[M\NW"^QaC_Sw9 `T@IaVGbWGcXCaHZCL[CL\CLg`m bCLcCLdCLeCLmhFnk~olQ#A oCLpCLqCLrCLsCLtCLuCLwyD8RxzS4y{YOP{X |b }u+~^BF@[~CLR |CLDD0FIiuCLtCL@l g 5I[6ICLCL:DZ;I2<U?CCLCLBsF CODA̝EapFrG[)H EN L [M V@N k!HO@P QEWRETDnBUEFV\Lp m?J{ nBd@oCc pmdk qo^\) rpc = sqKTtrKjusE uCLvCLxx@yyP&zzI}CL~CL}Fy~GXFAvmCL~CLAOixB ixB m k_ k_ ixB ixB k_ j {eyEVPzIrJrJP] DF-AëLH|_ Y@JCLEo8CLCLCLCLCLCLCLCLt6glgvf_p_CLCLCLCLCLCLCL^CLCLCLNCLCCL CL w 6CL7CL8CL9CL$dTOq?eFz@fE^AgTniCLDjo ElF$FmEGnSVQDgH4Cn~ drЫ mm m4 g3 j !CL CLCL`b CLkQ AAhDSi= JRp CLCLCLCLCLFIq} l]kd q a+ r F Y hS  z  B5  T" G G' u  T=  e  `f Q3 ^ CL CL CL CL !CL "CL $CL %CL &CL )I+K *G ,GE -G" 0L 3L}e`.}fG^ ^ M vtTg N xCsO yCWP {BZQ ~W5R NSS o T }& V Zʅ X FY DW7[ \ M^ a_ w ` @6a JO\b Kc GG CL CL CLg n  CL CL CL CLm En ~ɚo QM9  CL CL CL CL CL CL CLw E>x Ry ]\ OP{ Y"# | bYc} t]~ ^ B  E ~z ~ CL Z | CL D C F P u CLt CL *@Ţ +m >  ,h$ 5 .Ir6 /I 1CL 2CL: 4D; 5Gh?< 6V)? 7Ci( :CL ;CLB =s C >MfD ?BE AXaHF BdaHG CR)H DE L E[aHM FUN GjaHO I@΢P K~; Q LER MEZT OD'U PEfV QEV SCL TCLY VpPL Z WC' ZCL [CL] ]kQ ^ _M aCL bCLa IΘ CL CLd @u CLf ^ CLh Ai S' CLk R l N# m Kf n do bp f q _ r dk s Kft K\u DR CL CLx @y Qz N CL CL} F~ G F A CL~ CL A n}[  nB  ixB  ixB  ixB  B  n`*  ixB  B { EV PI I~ K rf JP ixB  Ee Bb K I |_  Y Eʘ CL E o CL CL CL CL !CL "CL #CL $CL '4 (p3 )C3 *_ TqG U_ WCL XCL YCL ZCL [CL \CL ^CL _^ `CL aCL bCL dN fCL iC kCL lCL nv(  pCL qCL rCL sCL$ vK% wI& zKW ~CL* K, V CL. Jt CL CL CL CL3 i4 A6 M7 G38 @9 @I: II; K#3< F CL> !St? "FX@ #EFA $S7 &CLD (u} E *F3vF +Ev9G ,R /Gf 0K>f 2F 3oy  6cV} 7s(  8m  9m  :g  ;j ! ?CL  @CL ACL CY_  FCL Hkw  ID KD% Li  NM( Qp3  TCL UCL VCL CL CL G] I }f  m| ] lR  q  a  of Fg: [ vY  Z A{  V H5 Q u}  P  eD  a9 Qf ^ CL CL CL CL CL CL CL CL CL IM G^ G< G L L}e NDU}f *GP^ ^ M u N CwO CP C/Q Wy\R NIS o7 T ~ V [ X F Y DZ#[ \ Rx.^ e_ wV ` H@6a KI34b LHc MAn OCL PCL QCLg Sn  UCL WCL XCL YCLm \Fn _@ 3o `Q,  bCL cCL eCL fCL gCL hCL iCLw lJx mUy o^ pOP{ sZ"# | ua7} vv~ x^ {BQ }F, ~] ~ CL U | CL D F  F G2u CLt CL @Ro m/  h 5 I6 I8 CL CL: EZ; S< V_? D_ CL CLB s T C M0D B)E efgF j{G JW H E L [fM WN jgO @XP ~ Q ER EWT E$ U E V | CLCLYp ZCDCLCL]kw ^VCL CLa"V+$CL%CLd'@-S*CLf+^-CLh/Ai0Lv3CLk5S B l7M# m8I n;dYodǮ q?] r@_ sAKvjtBKN_uCDECLFCLxH@ryIMTzKN%buCLvCL}xFq~zG{F|A>~CL~CLAB B ixB ixB B B ixB ixB E{eyEVPPH"KrJPixB {eAK/qI%|_ Yn&M CLEslCLCLCLCLCLCLCLCLvflgC{3MRMRP(CLCLCLCLCLCLCL^CLCLCLNCLCCLCLyN  CL CL CL CL$K%I&`K?aG@bEAcJeeCLDgr EiFLFjEGkJ-[nD;3oG4pC^fqp t[us' vmm m g jSk !CL CLCLaЊ CLk) A/Cjb _X p^ CLCLCLCLCLG,I~ n4]kd q a niFW^-1}X OˑA V/^G HK u  Yf fU `fR6f^CLCLCLCLCLCLCLCLCL"Inx$G%GȬ'G+L/L}eh}f G*^ ^ Myt7K N{C|O}DmP~B%QWRNSo7 T@gV]/ XFYD[9\Rwx^f_w `@?aHbJcE޹CLCLCLgo{ CLCLCLCLmF @ns4oRr CLCLCLCLCLCLCLwK=qxVHycǯOP{\UV |b'}uv~^B5FK~24 ~CLTD |CLDDFK<uCLtCL@SmS 0gm 52I63I5CL6CL:8E2;9R3<:Vh?;D>CL?CLBAr CBM|DCB)EEb4FFgQGGLqHIF0 LJK>MKD)NLiLOM@=PP~Ü QQERRETTEx1UUFVX{LS [CL\CLY^o Z_DbCLcCL]ek ^gSiCLjCLaSCLCLd@CLf^CLhAiRCLkSNL lLp mIW nd3ocpd33 q\ r`Q sKtKRuBCLCLx@.yQsfzHzxCLCL}F~~GF AQcCL~CLAixB ixB ll k) k ixB ixB k_ kww {EVPP IS KTssJixB px;AפLI){ |_ !YJr"ix $CL&Bf*o,CL-CL.CL/CL1CL2CL3CL\CL_vf`v33bHfc_doǯebgCLhCLiCLjCLkCLmCLnCLo^pCLqCLrCLtNuCLxCazCL{CL}z$ CLCLCLCL$K{%IE&OCL*L,KC CL.JCLCLCLCL3i}4AH6O)7G38{9A:J;L3<GvfCL>G?GC@EFAE+CLDo EFMFEkZGF&aD1GS3C{3q_ dusk m m g[~ j63 !CL CLCL`6 CL%k '{H (E#)jp +RRH.pmy 1CL2CL4CL5CL6CL9G:J&>~# @nC]Dll Eq Fa JpMFN[Ryl Sw VA{ YV#ZG[H0^v TL fb" `Q33^CLCLCLCLCLCLCLCLCLI=GGɔG"LL}e+F}fGE^ ^ Muλ NCOCldPBQWRNSof T@rPV^> XFYDa[i\\x^d_x `@?aH.b J>c CY CLCLCLgoF, CLCLCLCLmFn|oSn  CL!CL"CL$CL%CL&CL'CLwRJ(xSSyTbuUOP{Y] |[a}\u( ~^^aBbF2f~z ~hCLjSh |lCLoDpCrFuO8uwCLtxCL{~ |m }h+ 5I6ICLCL:D;Qm<V ?|5! CLCLBrz CRsDB!EdFk >GRBHFS LX4MT5NhO@P~; QEVREWTEUFAVPLCLCLYof ZC.CLCL]k ^JCLCLaLfCLCLd@CLf^CLhB}iLyCLkS lK mI8R nco cp"p33 q#f r$h s%Kt&KZ4u'C-)CL*CLx,@y-Rz/Hؒ1CL2CL}4F~~6G8FK9@ ;CL~A@m<8 Am CixB DixB EixB FoK Gm HixB IBK{NEVOP'TQI~SK$~rKIrixB f EfjK8I|_ Xիix CLA^KmCLCLCLCLCLCLCLCLBt6gC{3_oǯ_CLCLCLCLCLCLCL^CLCLCLNCLCmCLCLv CLCLCLCL$K%I@&HPCL*K,M< CL. HCLCLCLCL3iR4AH6RP7Ic38DB09GBL:IM;JL<KJMCL>OFm?PG[@QE|.ARDqTCLDV@XEXF6/FYE(TGZE^J_Mt`DasK dc=ftc gm hm igL jj63 !nCL oCLpCLr[K uCLwk yvCP?B-QBX/`RCNSDo TE@gVF^ XF`YDl[s\ZS3^d[_ x* `@,caM>bNzcFBCLCLCLgn CLCLCLCLm!Fdn$}o%T (CL)CL*CL+CL,CL-CL.CLw2Q\x3U#y4d\5OP{8^DD |:aU};t~e^iB&jFm~ ~oCLqT- |sCLwE KxD$yF*|GVu~CLtCL~ m h1' 5Im6ICLCL:C~;L;[<Wa?ACLCLBs CRwGDBTEc\FgGT HFv LM4MF NZ O@ P~l^ QEVRETF4UFVFCLCLYp$ ZCpiCLCL]k/ ^JCLCLaLCLCLdACLf^CLhB8PiWsCLkSj lM mK33 ne ocopm{ qh rjR s,Kt-KRu.A20CL1CLx3@y4Oz5H#8CL9CL};F?~=G>F?AdACL~cCLfAB B ixB ixB  ixB  EV B  ixB E} EVPII$KmrKI ixB "o8%EL'J (HR+|_ -SK?GQ@E}AJ,CLDBEF7FE*#GK FfHDua c  tV !m "m #g[~ $j !'CL (CL*CL,a>' /CL1l 2}I 3B 4ll 6PI 7pӖ :CL;CLCL?CLBGCJUF~ HoZmK]OMnB Nr Oa RrٚUFٗV\VY{ [@B = T܄GG vh. Yc dY `3M^CLCLCLCLCLCLCLCLCLIƏG%GG>L=L=}e6d}fF^ ^ Mu_ NC-OCY#PCQXRNSo7 TAc*V_ XF`YDp[\\J^av_xG ` @,ca J >b N=qcGCLCLCLgp CLCLCLCLmFn @ o!UZ #CLLCLMCLOCLPCLQCLRCLwUHxVZ\)yWhYOP{\`UV |^`V}_s_~a^dB&eFi~' ~kCLmW[o |oCLrEtD#uFxKuzCLt{CL~{ nT hR 5I6I$CLCL:B;O`<W1p?DCLCLBu' CRԢDB{EeHFm{GZHFs LZzMU{NiO@"P} QERETFXUGmCV| CLCLYp3 ZC>CLCL]l8 ^JZCLCLaL+CLCLd@CLf^CLhB iTBCLk"S$ l#LaH m$If n'do(dp*p33 q+i r,l s-K{t.K?u0A2CL3CLx5@y6Nlz7F[G:CL;CL}=F~?H@FAAACCL~DCLFAIixB KixB LkQ Mj ^ NB OixB xZB yj' znZ |} EVP_GKmseI8ixB xELJHn|_ S, Y CL.NYCLCLCLCL3@i4BAH6EN7FI48GA9JC0:LO0;MQ <NL6gPCL>RN?SGV@TEAUN/}WCLDYCE[FLF\EVG]MbDdF3eCfv i_Pju^ lm mm ng/ oj !rCL sCLuCLwa/ zCLlD DBElR Mh pX CLCLCLCLCLFIЍ~ o/]Onn s)~ a qF\(_u x Az V0GHvt Tx  `3  ^ L ^ CLCLCLCLCLCLCLCLCLIG}G=GR!L=$L=}ea}f~Dm^ ^ MCtE NnCQOoBPpBZQsXzRtNSvo TwAЛVx` XzGY|D [}\~U^a_xc `@6aMbPffcMGCLCLCLgp0 CLCLCLCLmF n}\oV8> CLCLCLCLCLCLCLwT.xUy_ >OP{awx |aH}rl~^BF=~s ~CLT |CLE$D5FO>uCLtCL{ nz h- 5I 6I^!CLCL:BUZ;N|s<WF?Fq CL CLB5uZ C6UED7BE9mpF:vG;aHT&fN?h{O@@ӷPC| QDEREETGF~UHGVK{w NCLOCLYQp ZRDUCLVCL]Xm7 ^ZL/c\CL]CLa`MbCLcCLdeAHhCLfi^jCLhlBFimU CLkTP" lMk mJH ndfod.pr3 qn ro) sKƂtK?uACLCLx@yU zL-8CLCL}F~H)FXAlCCL~CLB jb j' kQ i i| l5h jD i n> } EVPIG^K" s I ixB  ~< H5r K H@ |_  X܉ Eʘ CL E p$n CL CL CL CL CL !CL "CL #CL &C33 'vf (I3 *_ +p ,_ .CL /CL 0CL 1CL 3CL 4CL 5CL 6^ 7CL `CL aCL cN6 eCL gC iCL jCL lw  oCL pCL qCL rCL$ uK2% uIɈ& xM {CL* ~L, VN CL. IΘ CL CL CL CL3 i_4 AH6 M7 Oc38 I 9 C: K3; M&g< I@ CL> PMf? GrK@ EA P: CLD x:D E FrF EHG O  Fl H Dٚ v'  c  uc  m  m  g/  j ! CL  CL CL [  CL l8  C Bɀ l  [t  q9  CL CL CL CL CL F (I +~]  -oq 1]O 2oI  3s  4a  7qf :FЂ <_Lj ?w_  @AH CB\  FU# GG  HH# Lv  MR*  P];  Q_ RJ3 S^ UCL VCL WCL XCL YCL ZCL \CL ]CL ^CL aI bG G5 GV L= L=}e j2Y}fDH3^ ^ M t0 N CnO BP CEQ YKR NS o7 T BV a]k X G>Y E0H[ \ Z9^ b_ x ` @?a Jb O c E CL CL CLg p  CL CL CL CLm F qn ~#4o V  CL CL CL CL CL CL CLw Mux "UQy #ap $OP{ '`wx | )`d} *qfB~ U^ XB YF( \~' ~ _CL aUd | cCL fE0P hDh iF lGo>u nCLt oCL rwN  snw  thu 5 vIR6 wIy^ yCL zCL: |B; }L< ~Wo6? FE CL CLB v- C SD B=E c>F lLG TH G_$ L WLM QfN f5O @ P z Q ETR ET FU H WV {/  CL CLY q Z DB CL CL] nB ^ K CL CLa M$ CL CLd A CLf ^ CLh Byi X CLk Tw l N = m J) n cLo d?p !q8R q "k r #ou s $Kt %KJu &@ (CL *CLx +@y -SVYz .I 1CL 2CL} 4F~ 6H;( 7F( 8A :CL~ ;CL =Brd @B  AB  BixB  CixB  DixB  EB  GB  HixB  IE K}7 NEV OPI QG^ RK$ Ur  WJ ixB  AGu I ) K H |_  Y( @ CL E pz CL CL CL CL CL CL CL CL C t6g C{3 _ q _ CL CL CL CL CL CL CL ^ CL CL CL N6 CL CT CL CL w3  CL CL CL CL$ K% J& If_ CL* L, Wr CL. H/ CL CL CL CL3 i4 AH6 Mff7 J6g8 EL9 DK: K; M3< I CL> QP? G@ EIA Qͬ CLD I| E KFF LEWG MP PEL RHɚ SDy Tw  Wf XvU~  Ym  Zm  \g/  ]j ^ ! `CL  aCL bCL dd(  hCL jmh  ky1  loXB  mmJ  nRU oqes  sCL tCL uCL vCL wCL zG, {I~ ~  o ] pӖ  uS[  a  pI F [T ~]  Dg A  W  H HU v  Y  af  `3 Mvf ^ CL CL CL CL CL CL CL CL CL J$" Gm G GH L\ L\}e nb}f rAj^ ^ M.t0 N0CgO2DfP3CUQ6YטR7NjS8of T9EV:k X=GBY>EV>[?A\@Vo^Cc!_Dx `E@6aHfbIiRcJ`>tCLuCLvCLgxp( {CL|CL}CL~CLmFn~oW CLCLCLCLCLCLCLwLx]Ly]OP{m |_Z}qj~^B lFA$~@ ~CLU= |CLE/iDFNuuCLtCLw) mm h 5I@6ICLCL:A";IĚ<W?FCLCLBvI CNDB_EnFC)Gc HG LZkMUNjO@}BPwt QERETFfU HXTV | CLCLYq9 ZDQN=CL>CL]@n ^AKFDCLECLaHLi2JCLKCLdM@bPCLfQ^RCLhTBiUUXCLk[U l\M m]JG n`e oaeGpcp=q qdj33 rem sfKtgKRuh@jCLkCLxm@.ynQ5=zoG0rCLsCL}uFs~wHD;GA-CL~CLBB B ixB ixB B B ixB ixB E|EVPCF&K)sJPixB BIK?I|_ Y!<B CLEpʚCLCLCLCLCLCLCLCL Dk3 vg Dk3 N=qMROaHCLCLCLCLCLCLCL^CLCLCLN@CL"Cܪ$CL%CL'v( *CL+CL,CL-CL$/KІ%0JC&3Rb6CL*9Le,:XG;CL.=H@hCLiCLjCLkCL3ni(4pAH6rR337sP,8tG\9wD0:yKL;zMf<{If}CL>R?G4@EAKCLDv EFFEGQG\JF3y bwZ mm m g/ j !CL CLCL^p CLm wt i& mv W q CLCLCLCLCLG H~OI o]q vK a+ mfG_]{/ }: A UHJH\w% Q 0Z 1_I2L3^5CL6CL7CL8CL9CL;CLCLAJhJBGDDHH}EGHL\IL\}ed}fB&^ ^ Mdu NfC=OhBPiCv8Q\)!RNT&Sof THVmIs XGUYE[\^U^ba_p `@?ac5bfcbCLCLCLgp0 CLCLCLCLmFMn}oY CLCLCLCLCLCLCLwQ.xYy`\OP{n"# |`}p0~^BFk~ ~CLW< | CL E< D2GxI"uCLtCLtÖ n hP 5I6ICL CL:"A;#Q$!<$W?%G )(CL)CLB+w3 C,UyHD-BE/z4F0DG1bGH2G L3LBM\BRN]WO^@YPawl QbERcETeGDUfHVi{ lCLmCLYoqes ZpDnQsCLtCL]vo ^wL yCLzCLa}Nd0CLCLd@-SCLf^CLhB5iRCLkUi lM. mJu ncfoepqH ql{ rkW sK6tKVu@?CLCLx@ryMzGCLCL}F~HRG/ACL~CLC6]ixB ixB B oK EVixB Z B lww } EVPCFK()ssJPixB CeJ$%K8&H)|_ +Y_ ,Br.CL1EED2pSN4CL5CL6CL7CL8CL:CL;CL%J:`&SCL*L^,W-0CL.H@CLCLCLCL3i͘4AH6\7Zf8OFf9Dk:Pp;R<N9CL>R/?G7@EAGCLDme EFFEmGR2HɚJ;3GNfy dw mm m g/ j !CL CLCL_ CLn x jb nQ Xy  q  CL CLCLCLCLGG~' oQ]sU:  w_ !a $m'G$P]Sz$ T},l WA [U\H|]H`wQ? aU dSj e\ɚgI3h^iCLjCLkCLmCLnCLoCLpCLqCLrCLvJvwGDxH@TyG|L{~L{}edA}f@y ^ ^ Mt NC̨OA8VPCrQ]RN So TG9Vi XG\YE.[ѷe\\^d,q_n `@,cad{bgc`LCLCLCLgp CLCLCLCLmEn~4oZ{c CLCLCLCLCLCL CLw#Lx%Uy&aQ'OP{+kwx |-_}$}.sQ~1^4B 5FS9~ ~;CL=WY |?CLBESCEEFHJuJCLtKCLMt Om# Ph 5RI}6SI}CL~CL:A;Q<X/N?GnCLCLBx CUDC EcFy34G`RHH LYffMS8RNXO@1Pw3 QF RETGfUHNV|ƚ CLCLYqJ ZDCLCL]q+ ^MRCLCLaNxCLCLd~l^ CLf^CLhBiOІCLkU lN# mK) ndoe5pl\) qi\ rjk sLtKVu@*CLCLx@=yUezECLCL} F:~ Ho GQ ACL~CLCk_ kh n`* m m<8 mv k) Em<8 Fm H|UKEVLPlNFuOK&RsXITJPWixB XD{YH8[J]Hn`| aY?bBd!dCLgEAho8jCLkCLlCLmCLnCLpCLqCLrCLuI3vCK3wI3x_yp34z_|CL~CLCLCLCLCLCL^CLCLCLN:RCLCCLCLr CLCLCLCL$Kd6%IF&VH CL*Lz,TCL.HdCLCLCLCL3i޲4AH6Q7T&f8L9EP: Mɚ; P<M CL>Sf?Hj@EٞAJ5PCLDvܹ EFFEGR H+3!If"E&zrh 'f"(xV )m *mi +gL ,j' !/CL 1CL2CL4bTF 7CL9o7 :{LS ;n% =n ?ZBr# ECLFCLGCL#CL#CL#GS#F;# ~ # o#]""#t #xt #av #p#G8#Xj#Ah#Gj8#A #!UJ#"Hm##H#&w| #'T #*fȉ #+`#-N#.^#/CL#0CL#1CL#3CL#4CL#5CL#6CL#7CL#8CL#dJ#eG #fHO#gGe#jL{#nL{}e?@9}fM@D^ ^ M#u N#CO#AkP#C|Q#_SR#N$S#} T#G ZV#iT X#GIY#E[#\#^(^#dk_#n `#@a#is4b#k4c#d#CL#CL#CLg#p; #CL#CL#CL#CLm#F$n#~4o#\4 #CL#CL#CL#CL#CL#CL#CLw#Lpx#X34y#fǯ#OP{#k |#_}#qI~#^#B##FP#~ ~#CL#Xs |#-CL#0E_e#2ENb#3Ff#6OOu#8CLt#9CL#hV 5#@I6#AI.#CCL#DCL:#FA;#GP <#HXn?#IG#LCL#MCLB#Oy C#PSD#QC[E#Sg\F#TrG#U\H#VH9 L#WK\M#XC:N#YWO#\@P#]y Q#^F!OR#_ET#aGU#bIAV#e} #CL#CLY#r Z#D|#CL#CL]#rk ^#MC\#CL#CLa#Ne#CL#CLd#' #CLf#^#CLh#Bwi#X#CLk#VX1 l#L m#I n#do#fp#rp q#m r#pW s#L>t#KP2u#Au#CL#CLx#@y#Tiz#E#CL#CL}#Fq~#Hy#Gto#A;#CL~#CL#D%#B #B #j> #ixB #ixB # EV# B # ixB # B#} E#EV#Ps#FT#K##r`#JP#ixB #DF-# H8#"JP##H#&@Qi #'Yl#(A#*CL#-Eb/#.q#XCL#YCL#ZCL#\CL#]CL#^CL#_CL#`CL#cC{3#dC3#eI3#f@xR#hq#ib#kCL#lCL#mCL#nCL#oCL#pCL#qCL#s^#tCL#uCL#vCL#wNC#yCL#|CT#~CL#CL#@Je#CL#CL#CL#CL$#KV%#I&#KT#CL*#L,#N#CL.#HO #CL#CL#CL#CL3#j4#AH6#Z7#V,8#R 9#E:#K ;#M|<#G3#CL>#TdR?#H)@#E@A#MD#CLD#|` E#FF#EG#S#D~f#Fc3#C.g#{ #_b#y`7 #m- #m #gj #jSk !#CL # CL#!CL##\ #&CL#(q #*@#+Hd#,q #.C#1r]\ #4CL#5CL#7CL#8CL#9CL# Y#F"[#Y\#]^#gN_#nc `#B'a#e(b#gc#b#CL#CL#CLg# p; # CL# CL#CL#CLm#Gdn#~Lo#\r #CL#CL#CL#CL#CL#CL# CLw##J >x#LWy#M`R#NOP{#Qj |#S_}#Ut~#W^#ZBd#[G;#^ ~#`CL#bY!( |#eCL#hEc#iE#jG#=#mHuju#oCLt#qCL#sob #tlX #ugfg 5#wIr6#xI#zCL#{CL:#}A/;#~O^<#Y ?#Fi#CL#CLB#y C#PD#C}E#|qF#AG#`H#Hqm L#X{M#LpN#X O# P#zcz Q#FER#F(T#GKU#I{V#~# #CL#CLY#srb Z#DX#CL#CL]#rz ^#L#CL#CLa#M[#CL#CLd#@#CLf#^#CLh#C6]i#W:#CLk#X l#M m#J n#d o#gΛp#uR q#l r#mp s#L t# K_u#!A_##CL#$CLx#&AKy#'Sjz#)F#+CL#-CL}#/F~#1HY#2G2#3B#5CL~#6CL#8E#:kQ #;i #=m<8 #>lR #?EV#@k #AixB #Bl #CB#E} #HEV#IPr#KFBm#MK?#xsG#zJP#}ixB #~E#H8#K#Hx#AM8 #Y #Eʘ#CL#En#o8#CL#CL#CL#CL#CL#CL#CL#CL#vf#t6g#Dk3#N\#MR#O#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N>#CL#C#CL#CL#@#CL#CL#CL#CL$#LU%#J$&#I7#CL*#L,#O}#CL.#G#CL#CL#CL#CL3#jEE4#AH6#P@7#N 8#H99#E:# K3;# Ni<# J4#CL>#Uʫ?#HA@#EA#Jl#CLD#pX E#AG F#BEG#CU#GE!#HH3#IDg#L{ #MeB#Ny #Om<8 #Qm #Rgx #Sjb !#VCL #WCL#XCL#Ze #^CL#`q #a{ #bJf#cq #eTXG#hrE #lCL#mCL#nCL#oCL#pCL#sG^#tH#x)b #zo #]""#up #yl #ad #p3#G4#V#@#@y#A޸ #U #Hs#I&#w #Yc #c #`@#M&f#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#K#G%#H~#G #L#L}e#eF}f#sz ^ ^ M#vz N#!CO#"@~8P#$C+zQ#'aR#(N ES#)@T#*FV#+i X#-G/Y#/F-\[#0\#1V.^#4cA_#5n `#7Cma#8icb#9i\c#;`#=CL#>CL#?CLg#Aqa #CCL#lCL#mCL#oCLm#rGn#u~4o#v\ #xCL#yCL#zCL#{CL#}CL#~CL#CLw#Lx#\y#ik#OP{#j |#^>}#p~#^#CN2#F#r ~#CL#[ |#CL#Eu!#EQH#G/#Pu#CLt#CL#o #l #g 5#I6#J#CL#CL:#BE;#K3<#Ym?#Fy#CL#CLB#y@ C#PJD#CsE#_F#yaHG#R)H#H L#[34M#V(N#jBO# P#{ Q#FTR#F/T#H%{U#IV#} #CL#CLY#s Z#D#CL#CL]#srb ^# L#4CL#5CLa#8M:#:CL#;CLd#=@X#@CLf#A^#BCLh#DCL!i#EVg #HCLk#KX@ l#LN m#ML n#Pdo#Qhp#Ss q#Tn8R r#Up8R s#VL t#WKfu#XA#ZCL#\CLx#^Ay#_QPz#`F(#cCL#dCL}#fF[G~#hH#iG#jC #lCL~#mCL#oEsZ#ixB #ixB #B #B #EV#ixB #[-F #B #k> #} #EV#P# qV?# rHP2@# sEA# tM'1# vCLD# xnn E# zFF# {E>G# |V|# Gf# J# Eg# |[ # b$# y # mJ # m # gX # j !# CL # CL# CL# ^- # CL# q # @# IL\# q # A# r+ # CL# CL# CL# CL# CL# G2# Im# U # o# ]""# uS[ # y#; # b # r# G# Wqz# y # | # B\ # S"# Hb# I%H# x# # N # a # _3# M# ^# CL# (CL# )CL# *CL# +CL# ,CL# .CL# /CL# 0CL# 3KV# 4G# 5HR# 7G=# :L# =L}e# @\}f#z{; ^ ^ M# Xu N# ZCO# [A!P# ]C]Q# `bNR# aMS# bz)B T# cG9V# iz X# G,Y# FM{[# .\# ^^# cV}_# oG `# DGa# eb# kW c# bٙ# CL# CL# CLg# qxq # CL# CL# CL# CLm# Hjn# go# ] # CL# CL# CL# CL# CL# CL# CLw# T=qx# c\y# h# OP{# k |# ]5}# pݭ~# ^# C# F# ~OI ~# CL# Z |# CL# E# Eo# G;$# Gu# CLt# CL# oM # la # gk 5# Iz6# J@M# CL# CL:# BF;# L<# XGO?# F# CL# CLB# y C# UD# !C]E# "a\F# #yG# %V >H# &H L# 'TcM# (ON# )c O# T P# U|} Q# VF[GR# WFET# YHRU# ZIhV# ]} # _CL# `CLY# bsl Z# cD# fCL# gCL]# it/ ^# kMv# mCL# nCLa# qNo# sCL# tCLd# v # yCLf# z^# {CLh# }C'i# ~U)# CLk# Y B l# O33 m# L( n# eo# hp# w = q# t=q r# wǮ s# Lt# Kiu# A/# CL# CLx# Ay# Nuz# E# CL# CL}# E~# H# G# Cxe# CL~# CL# E# ixB # ixB # B # B # B # j' # ixB # B # l # } # EV# Ps# Fv# K8# t# JP# i| # Lv# I# K3# H# D # Xի# D`# !CL# $U9# &m# (CL# )CL# *CL# +CL# ,CL# -CL# .CL# /CL# 2B# 4vf# 5I3# 6_# 7o.# 8_# :CL# ;CL# # W?# HV@# E6A# U2&# CLD# u ~ E# FF# EG# WAQ# Hnf# J3# GS3# |Lh # ci# y # mJ # m # g # ju !# CL # CL# CL# d # CL# q # { # sU: # p| # O # s)~ # CL# CL# CL# CL# CL# G3t# I)# )b # o6/# ]%# u # y # b' # m3# G# ZƳ# H7 # IA # LA # OT# PI# QIF# UxH # VX2 # Yaw # Z`vf# [L# \^# ]CL# _CL# `CL# aCL# bCL# cCL# eCL# fCL# gCL# jK4# kG # mHe# nG# qL# rL}e# ^}f# z ^ ^ M# v N# CgO# A`P# CI:Q# btwR# MŇS# s T T# GdV# iz X# G*)Y# Fe[# ƶ\# Sl^# eV_# oUU `# CV>a# Vb# Z>c# Tq# CL# CL# CLg# q20 # CL# CL# CL# CLm# HGn# go# ] # CL# CL#CL#CL#CL#CL#CLw#SGx#Yuy#g#OP{#l"# |# _%}#"rH~#$^#'C>#(F#+Fv ~#-CL#0[ |#2CL#5E#6Eq-#7G:j#:M9Mu#=CLt#>CL#@n #Amc #Bh+ 5#EIE6#FJ`#HCL#ICL:#JBN;#tQ^<#uYqh?#vF#xCL#zCLB#{y{ C#}T$D#~CiE#`kF#tG#UH#H L#JM#BN#W\)O# P#},l Q#FTR#F/T#HIU#JV#} #CL#CLY#sF Z#DS#CL#CL]#tz ^#M#CL#CLa#N#CL#CLd#A$Z#CLf#^#CLh#Bi#S%#CLk#V9 l#N33 m#K. n#do#h Wp#tG q#paH r#pf s#Lt#Kp u#A]#CL#CLx#Ay#Rz#E#CL#CL}#Ez~#H#G\#B#CL~#CL#El#B # B # n`* # m<8 # EV# B #ixB #m<8 #B#} #=EV#?P.C#AFf#BKT#Et#GK#Jjb #KLv#LI#NKm#OHI#RD #SYJr#TC#WCL#ZE:#]m,#_CL#`CL#aCL#bCL#cCL#dCL#eCL#fCL#ivf#kt6g#lE0#mPٚ#nOxR#oMR#qCL#rCL#sCL#tCL#vCL#wCL#CL#^#CL#CL#CL#N7o#CL#CH#CL#CL#u #CL#CL#CL#CL$#K%#I+&#F#CL*#LD-,#N#CL.#D#CL#CL#CL#CL3#jqn4#A6#O337#J38#Il9#F> :#Li;#O <#JP#CL>#XJ?#Ho!@#FA#QI # CLD# qJ E#FnF#E-G#XS#D\#F#Ch#|% #cd#z{ #mJ #m #g3 #j !#"CL ##CL#$CL#&^j #)CL#+r# #,@#.n #/q #1ZO#4sc #7CL#8CL#9CL#:CL#O#~ P#}h Q#F[GR#FET#HU#JEV#}h #CL#CLY#t!N Z#DX#CL#CL]#u ~ ^#M#CL# CLa# NVy#CL#CLd# #CLf#^#CLh#Bwi#RT#CLk#W  l# O{ m#!L n#$e3o#%hp#'u33 q#(p3 r#)q) s#*L0t#+Kuu#,Ah#.CL#/CLx#1Ay#2Uz#\E#^CL#_CL}#aE9[~#cH#eH#fC#hCL~#iCL#kE#mixB #nixB #pEV#qB #rEV#sixB #t[; #uB #vm[ #x} #{EV#|PW#~F=#K#u#K#ju #T5 #I#K+#HR#Ew #Xh#BM#CL#E#m,#CL#CL#CL#CL#CL#CL#CL#CL#BC3#}2#C{3#GR#LJ>#GR#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N1#CL#C#CL#CL#zT #CL#CL#CL#CL$#K%#JZ&#P D#CL*#%L1,#&K#(CL.#*D#,CL#-CL#.CL#/CL3#2j4#4A6#7Rl7#8O48#9K9#;F:#=NL;#>NL<#?L#ACL>#D[\?#EH@#FF'A#GOk#ICLD#KiLl E#LG&F#ME$G#OZ#RFf#SJ#UD~f#X~ #Yc#Zz #[mh #]m4 #^g #_jH !#CL #CL#CL#`P #CL#r# #DB#E9[#r]\ #Kf0#s #CL#CL#CL#CL#CL#G#H)# O #oF#]%#v( #zr #bb #rf#Hy#Z#^ #Ae#B #U`2#H#I>#x0 #V? #cQ #_f#M33#^#CL#CL#CL#CL#CL#CL#CL#CL#CL# Klg# H #H#G#L#L}e#a ,}f#yEe ^ ^ M#av N#cCO#dA P#eCQ#iaR#jMS#ksrb T#mGV#njr X#pG)BY#qF5[#r\#sXJ^#wb$_#xp9 `#zB a#{Zb#|ZHc#}T#CL#CL#CLg#qM #CL#CL#CL#CLm#Gacn#&go#^ #CL#CL#CL#CL#CL#CL#CLw#S{x#X#y#d#OP{#l |#]}#o'~#^#CL#F#z7 ~#CL#\TQ |#CL#E#E#Gz#Iu#CLt#CL#m #l #hP 5#J 6#J3#CL# CL:#"B;##O}H<#$Y`I?#%G#(CL#*CLB#,{ C#-QD#.CE#0XpF#1i G#2QzH#3IP L#4L{M#6SN#7gxRO#:~; P#;~l^ Q##XHY?#H@#F0A#M#CLD#r E#G&F#EG#W#H#M#F#~k #c#{N #mh #m4 #g #j !#CL #CL#CL#bs #CL#r# #~z #I # r+ #q #sl #CL#CL#CL#CL#CL#G#H# ~ #"oJ#%]%#&v #(zT #)b #,p<#/H6z#0Xd^#3~ #4@#8A) #;V#D'y.DE'y0]F'y1tuG'y2TH'y3Iw L'y4ZM'y5T&fN'y6k{O'y9}u% P'y:|` Q'y;c{ R'yIU'y?J?V'yB} 'yECL'yFCLY'yHtU Z'yID'yLCL'yMCL]'yOvܹ ^'yQM0'ySCL'yTCLa'yVJ'yYCL'yZCLd'y\U 'y^CLf'y_^'yaCLh'ycBi'ydN'yfCLk'yW\ l'yO m'yMp n'yeo'yi[p'yv33 q'yq( r'yp s'yL-gt'yKu'yAڦ'yCL'yCLx'yAOy'yRz'yE'yCL'yCL}'yD~'yI'yH'!'yBΔ'yCL~'yCL'yF'yEV'yEV'yn% 'ym 'ym 'yEV'yEV'ym 'yE'y} 'yEV'yPv'yF3'yL'yt-'yJP'yl5h 'yL<'yMW'yK6'yH,'yFD 'yY'yF'yCL'y Em'y m'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yDk3'yA'yN'y_'yb'y_'y!CL'y"CL'y#CL'y%CL'y&CL'y'CL'y(CL'y)^'y*CL'y,CL'y-CL'y.N3'yXCL'y[C'y]CL'y^CL'y`y#; 'ybCL'ycCL'yeCL'yfCL$'yiK%'yjJ&'ykF3'ymCL*'ypL,'yqQ'ysCL.'ytGX'ywCL'yxCL'yyCL'yzCL3'y}k4'yA6'yCl7'yB38'yF9'yF{:'yT;'yTg<'yR'yCL>'yXT?'yH@'yFFA'yO''yCLD'yy E'yGH|F'yEG'yWR'yG,'yKg'yF'y~ 'y^D'y{r 'ym7 'ym 'yh 'yk !'yCL 'yCL'yCL'y\Ǯ 'yCL'yrn 'yy# 'yI\'ysF 'yZz 'yt' 'yCL'yCL'yCL'yCL'yCL'yG'yI('y~; 'yo'y"]('y#w4 'y$z 'y%b 'y(qf'y+I#'y,_'y-A'y/Hݢ'y1B 'y4UZ'y5I3'y6IqC'y9x 'y:Q_ 'y>b] 'y?^3'y@L`'yA^'yBCL'yCCL'yECL'yFCL'yGCL'yHCL'yICL'yJCL'yLCL'yOK'yPHg'yQH'ySGn'yVL'yYL}e'yiw&}f'ywF ^ ^ M'yvԑ N'yCO'yAP'yD0Q'yaKR'yM[S'youq T'yHeV'ylH X'yG4Y'yG/N['y6\'y[x^'yeL_'yrr `'yAPga'yY0b'yZ\)c'yTs4'yCL'yCL'yCLg'yq 'yCL'yCL'yCL'yCLm'yFn'yVgo'ya 'yCL'yCL'yCL'y CL'y CL'y CL'y CLw'yOQx'yWy'ya'yOP{'yn |'y]}$}'yl~'y^'yB'y GPB'y#y ~'yNCL'yP^ׄ |'yRCL'yUF/'yVFc'yWG'y[G:u'y]CLt'y^CL'y`l 'yamG 'ych=q 5'yeJ#96'yfJ'yhCL'yiCL:'ykB5;'ylH<'ymR#p?'ynGn'yqCL'yrCLB'yt} C'yuQD'yvD E'yx\uF'yylzG'yzLaHH'y{I L'y|^M'y}XN'y~lHO'y@NP'y@xQ'ypPL R'ys T'yIGFU'yJV'y~ 'yCL'yCLY'yt!N Z'yE'yCL'yCL]'yw| ^'yK'yCL'yCLa'yJ'yCL'yCLd'yU 'yCLf'y^'yCLh'yC/i'yLh'yCLk'yW+ l'yN\ m'yLQ n'ye&fo'yip'yu q'ypW r'yt s'yL,~t'yK?u'yB7'yCL'yCLx'yA{y'yQIz'yE'yCL'yCL}'yD%~'yI0'yHD,'y B'y"CL~'y#CL'y%G )'y(B 'y)B 'y*B 'y+oK 'y,EV'y-B 'y.ixB 'y/B 'y0E'y3} 'y4@2'y7Pr'y9Fd'y:L'y=u'y?K8'yBk 'yCT'Q'yDM'yFL'yGH'yJFD 'yKY]'yMEʘ'yOCL'yzEu'y{pT'y}CL'y~CL'yCL'yCL'yCL'yCL'yCL'yCL'yvf'yt6g'yC{3'yMR'yMR'yO)'yCL'yCL'yCL'yCL'yCL'yCL'yCL'y^'yCL'yCL'yCL'yN&'yCL'yC0'yCL'yCL'yz 'yCL'yCL'yCL'yCL$'yL%'yJF&'yP'yCL*'yLG,'yDH'yCL.'yBUZ'yCL'yCL'yCL'yCL3'yk:=4'yA6'yJ\7'yG8'yH09'yF:'yR;'yRy<'yQ'yCL>'yZa?'yH@'yFedA'yMf'yCLD'yp^ E'yG[F'yEG'yZ'y Jf'y M'yI'y~s 'ycZ'y| 'ym 'yme 'yh(# 'y@k !'yCCL 'yECL'yFCL'yHejU 'yKCL'yMsF 'yNyl 'yOK 'yPt>u 'yRU% 'ySt>u 'yVCL'yWCL'yXCL'yZCL'y[CL'y^G'y_J;'yb' 'ydpL'yh]('yiwna 'yjz 'ykbd 'yno'yqH 'yr^'ysA2'yuA'ywA 'yzTM'y{IZ'yI'yy#; 'yYuc 'yb"" 'y_f'yM#3'y^'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yK'yHw'yHR'yHg'yL'yL}e'yRcժ}f'y`wb< ^ ^ M'yvQ N'y C=O'y B@P'y D[vQ'ya5<R'yMS'yr+ T'yI60V'ym X'yG8Y'yGud['yA\'yZc^'yd_'ysUV `'yA)wa'y!WT{b'y"]kc'y$V}q'y&CL'y'CL'y(CLg'y*r+ 'y,CL'y-CL'y.CL'y0CLm'y3FЁn'y6Yo'y7b 'y9CL'y:CL'y;CL'y;'y[<'ye?'yF'yCL'yCLB'y~; C'yVD'yD'E'y]zF'yjG'yRqH'yI> L'y] M'yXfN'yls4O'yBeRP'yBUQ'ys T R'ytz T'yIGU'yJV'yLK'yCL'yCLY'yGgRZ'yF>K'yCL'yCL]'yxP ^'yLYM'yCL'yCLa'yL'yCL'yCLd'yFv 'yCLf'y^'yCLh'yCSci'yW'yCLk'y W> l'y P m'y4N n'y7cfo'y8jAp'y:zu q'y;w r'y<{( s'y=L1t'y>Ku'y?Bɀ'yACL'yBCLx'yDAy'yEOCaz'yFF?'yICL'yJCL}'yLD~'yNI9X'yOH,'yPC_'yRCL~'yTCL'yVGJY'yXixB 'yYixB 'yZEV'y[EV'y]Bɀ'y^i& 'y_\ 'y`EV'yaB'yc} 'yd@ 'ygP'T'yiF 'yjL'ymvQ'yJ'ym 'yK'yM'yL'yI~'yg+ 'yS'y /Y.?'y 0I'@'y 1FtA'y 2DD'y 4CLD'y 5j E'y 7GF'y `EG'y aXnl'y d~'y eAf'y f|^g'y i@'y kdH'y l| 'y mq9 'y nj 'y o} 'y pD;!'y sCL 'y tCL'y vCL'y x_/ 'y {CL'y }t[ 'y ~o۔ 'y ~24 'y tx 'y `'y tj. 'y CL'y CL'y CL'y CL'y CL'y G'y J'y  'y pot'y ],`'y w| 'y tM 'y b׬ 'y r3'y Hr'y Z'y Eka'y wB 'y A 'y V'y It('y IӨ'y yN 'y O 'y cU 'y _'y Lp'y ^'y CL'y CL'y CL'y CL'y CL'y CL'y CL'y CL'y CL'y L='y HX'y H6'y Hw'y L'y L}e'y MQ}f'yw' ^ ^ M'y CwWw N'y ECO'y FBP'y GDpQ'y Ja&4R'y KNgS'y LpPL T'y NIV'y On X'y QGO5Y'y RGT['y S4T\'y T\l^'y Wc1_'y Yt `'y Z@Ta'y \\(b'y ]Zc'y ^T'y `CL'y aCL'y bCLg'y q 'y CL'y CL'y CL'y CLm'y Fpn'y 4o'y dJ 'y CL'y CL'y CL'y CL'y CL'y CL'y CLw'y S >x'y V8Ry'y _H'y OP{'y r% |'y \}'y ly~'y ^'y B'y F;'y wQ? ~'y CL'y ` ^ |'y CL'y Fj'y F'y G'y Hӻu'y CLt'y CL'y k 'y nz 'y hR 5'y JId6'y J 'y CL'y CL:'y C>;'y Q?<'y UL?'y F'y CL'y CLB'y ~] C'y UD'y DZE'y ckF'y sG'y ZH'y I L'y \M'y WfN'y kRO'y D|P'y DQ'y q^ R'y r T'y IJU'y K<V'y U 'y CL'y CLY'y "t' Z'y #E*'y &CL'y 'CL]'y )z ^'y +K'y UCL'y VCLa'y YM'y [CL'y \CLd'y ] 'y `CLf'y a^'y bCLh'y dCai'y fXH'y hCLk'y kW* l'y lNp m'y mL n'y pe33o'y qjmp'y swu q'y ur) r'y vs\ s'y wL9>t'y xK~u'y yC/'y {CL'y |CLx'y ~Aqy'y NGz'y E'y CL'y CL}'y C{~'y Ig'y H'y C'y CL~'y CL'y GJ'y ixB 'y ixB 'y BUZ'y A/'y F>K'y ixB 'y [~ 'y B 'y k"" 'y } 'y @ 'y Pr'y F;1'y L'y v'y J'y n% 'y Lv'y M'y L'y I~'y g+ 'y X܉'y Fq'y CL'y E{}'y n3'y CL'y CL'y CL'y CL'y CL'y CL'y CL'y CL'y E0'y BH'y K'y }'y GR'y F'y !CL'y #CL'y $CL'y %CL'y &CL'y 'CL'y (CL'y )^'y *CL'y ,CL'y -CL'y .N)'y 0CL'y 3C'y 5CL'y 6CL'y 7t>u 'y :CL'y ;CL'y 'y XRg?'y I:'@'y Fq2A'y A'y CLD'y hJ E'y GF'y EG'y W'y k#3'y o3'y i'y D'y a('y }d 'y eM 'y bb 'y Cpi'y EV!'y CL 'y CL'y CL'y aL 'y CL'y uS[ 'y t 'y kd 'y tx 'y V^G'y tz 'y CL'y CL'y CL'y CL'y CL'y F''y IR'y r 'y p'y ],`'y vܹ 'y jSk 'y b 'y pf'y H̎'y \1'y @L'y A'y Ac 'y W'y vK'y7CL'y8CLB'y:~ C'y;U|D'ygpF'y?rgG'y@RH'yAI L'yB\^M'yCW N'yD[fO'yEF P'yFF=Q'yIph R'yJq3 T'ytI}U'yuK V'yv@@9'yxCL'yyCLY'y{tU Z'y|E2'yCL'yCL]'yz)B ^'yL}m'yCL'yCLa'yN'yCL'yCLd'y@'yCLf'y^'yCLh'yCi'yW}'yCLk'yWa l'yM m'yL n'ycfo'yj)p'yv q'yt r'yw3 s'yLD-t'yKu'yC'yCL'yCLx'yB}y'yUFz'yF'yCL'yCL}'yCi(~'yI'yIN>'yB'yCL~'yCL'yG'yixB 'yixB 'yC='yB'yGx'yixB 'y\Ǯ 'yB 'yk[ 'y}s'yEV'yPm,'y@CL'yACL'yBCL'yCCL'yECL'yFCL'yGCL'yHCL'yKD;3'yLC'yML'yNG'yOK5'yPGR'ySCL'yTCL'yUCL'yVCL'yWCL'yXCL'yYCL'yZ^'y[CL'y]CL'y^CL'y_N+'yaCL'ydC'yfCL'ygCL'yhsF 'ykCL'ylCL'ymCL'ynCL$'yqK%'yrIþ&'yuG'ywCL*'yLP,'yCg'yCL.'yDnQ'yCL'yCL'yCL'yCL3'yk14'yAH6'yJI7'yOl8'yP9'yFc:'yPL;'yR|<'yM'yCL>'yZP?'yIZ @'yFfLA'yH2'yCLD'yh E'yGuF'yEG'yZ)'yjvf'yn'yg'yG#'yd%'y}n 'y` 'y_ 'yD%'yE2!'yCL 'yCL'y CL'y eд 'yCL'yu 'yc 'yo 'yt 'yN= 'yt4 'yCL'yCL'yCL'yCL'y!CL'y$F'y%Hb'y(K 'y*q)z'y-],`'y.~ 'y/l& 'y1c< 'y4p3'y7H4'y8\8'y;: 'yx'y6Wfy'y7ap'y9OP{'y:r\ |'y;\}'y^'yAB'yBFo'yF} ~'yHCL'yJ^ |'yLCL'yOF'yPF\'yRGT'yUNu'yWCLt'yXCL'yZh 'y\m > 'y]g 5'y_Ja6'y`J}'ybCL'ycCL:'yeC;'yfMq<'ygV?'yhF'ykCL'yCLB'y O C'yTD'yD7@E'yapF'yjaHG'yQH'yJ&k L'y]EM'yWN'yj*O'yG4P'yGfQ'yo7 R'yp^ T'yJU'yKuV'y@}B'yCL'yCLY'yu Z'yE]'yCL'yCL]'yz ^'yLX'yCL'yCLa'yN!'yCL'yCLd'yU 'yCLf'y^'yCLh'yDBi'yV`'yCLk'yW l'yM = m'yK. n'yc3o'ykp'yz# q'yuz r'yxW s'yLFt'yK'u'yC)L'yCL'y CLx'y B"y'y Tz'y E'yCL'yCL}'yCU~'yI'yIP'yC'yCL~'yCL'yGo'yixB 'y ixB 'y!Cw'y"C'y#Hd'y$ixB 'y&\ 'y'C 'y(k 'y*} 'y-EV'y.Pe'y0F*'y1K'y\w'y^J'yakh 'ybLv'ycM'yfJ'ygI~'yjg+ 'ykS'yY?'yIkX@'yFfLA'yI'yCLD'y$h E'y&GkF'y'EG'y(Y'y+j'y,o'y-j 'y1IUO'y2bW'y3} 'y4a 'y5_ 'y6D- 'y7EV[!'y;CL 'y' 'yp'yHg'y]'y' 'yA2'yA 'yUY'yH'yI'yy 'yPA 'yZ3 'y^3'yG'y^'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yL1 'yGɔ'yH"'yG\'yL'yL}e'yId,}f'yZrm ^ ^ M'yv N'yC[O'yBcP'yD8Q'y aCR'y NmS'y @T'y J-SV'y oY# X'yGQY'yH6['y4T\'yZL^'yb_'yt `'yBwVa'ydhb'ye>c'y^'yCL'y CL'y!CLg'y#r 'y%CL'y'CL'yPCL'yQCLm'yTGGn'yWgo'yXc@ 'yZCL'y[CL'y]CL'y^CL'y_CL'y`CL'yaCLw'ydO34x'yeVffy'yfbfg'ygOP{'yir |'yj\`}'ykmy~'ym^'ypB'yqG*'yut ~'ywCL'yy^r |'y{CL'y~F'yFn'yG'yJZu'yCLt'yCL'yl 'yn 'yhu 5'yJx6'yJP'yCL'yCL:'yD;'yI~<'yY?'yE'yCL'yCLB'yFv C'yRXD'yD+E'ygQF'ypaHG'yU\H'yJQN L'y\@M'yWN'yjO'yGP'yH AQ'yn R'yo,| T'yJ1U'yKV'y@K'yCL'yCLY'yu Z'yE@'yCL'yCL]'yzT ^'yM1O'yCL'yCLa'yNd'yCL'yCLd'yc 'yCLf'y^'yCLh'y Di'y"U'y$CLk'y'XZE l'y(Nk m'y)Lq n'y,dffo'y-kjp'y/w\ q'y1s r'y2uz s'y3LL_t'y4K*u'y5B'y7CL'y8CLx'y:B"y'y;Sz'y 'y|H'yEV'yPP'yF0V'yK 'y} 8'yJP'yl5h 'yK'yO'yJP'yI~'yg+ 'yS'yLWʙ?'yMIy@'yNFrA'yOF1'yQCLD'ySh E'yUGzyF'yVEvG'yWWY'yYj 'yZn1'y[h('y_KgE'y`bX'ya} 'ybcx 'yca[o 'ydC4'yeD̘!'yhCL 'yjCL'ykCL'yme 'ypCL'yrt 'ys@۶'ytx+ 'yvtU 'yw^ 'yxu65 'y{CL'y|CL'y}CL'y~CL'yCL'yF܇'yHe'y 'yq&'y],`'yv 'yi 'yc[o 'yr 'yI 'y]p'y@.'yA^v'yA+ 'yXu'yHխ'yIK'yy 'yX 'yRU 'y]'yGf'y^'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yCL'yLx'yG'y H@'y GDg'yL'yL}e'ywkx}f'yw ! ^ ^ M'y.u N'y0C3O'y2BgP'y3D%Q'y6btwR'y7NT&S'y8@T'y9IV'y:nN X'y=GdY'y>HzB['y?P\'y@] ^'yCfD-_'yDtUU `'yFCa'yGc.b+adYc+a\W +aCL+aCL+a CLg+a r +a CL+aCL+aCL+aCLm+aHn+aɚo+ab׷ +aCL+aCL+aCL+aCL+aCL+a CL+a!CLw+a$QLx+a%U{y+a&`g+a(OP{+a)q; |+a*[}+a+o2~+a-^+a0C+a1G.`+a5v- ~+a7CL+a9_/3 |+a;CL+afF+agF+ahGw+alPu+anCLt+aoCL+aqou +asn +ati 5+avJ6+awJ+ayCL+azCL:+a|D;+a}PMT<+a~ZL?+aF:+aCL+aCLB+a@C+aQsD+aDBE+ac\*F+am*G+aZH+aJy L+aIpM+aB N+aWO+aHGP+aH{Q+ame R+an}[ T+aJkBU+aL0V+a@+aCL+aCLY+avR Z+aEZ+aCL+aCL]+az7 ^+aMc+aCL+aCLa+aN+aCL+aCLd+a@+aCLf+a^+aCLh+aEV[i+aTӾ+aCLk+aX( l+aM m+aK n+acfo+al p+av q+aq. r+atk s+aLPt+aKu+aCR+aCL+aCLx+aBFy+aRz+aFq+aCL+aCL}+aC'~+a,ID+a-I+a.B+a0CL~+a1CL+a3G0+a6ixB +a7ixB +a8C+a9Bw+a:GC+a;ixB +a<\^ +a>Bɀ+a?j> +aA} +aB@ +aEPW+aGF0V+aHK()+aK} 8+aMKCu+aPlR +aQLv+aRO+aTJ+aVI~+aYg+ +aZS+a XU?+a IX@+aF|A+aFel+aCLD+ai| E+aGF+aEG+aXHY+ak+ao+ahg+a M +a!br+a"} +a#fq +a$c +a%C+a&E!+a)CL +a+CL+a,CL+a._+ +aYCL+a[uS[ +a\wt +a]pӖ +a_tx +a`U +aaua +adCL+aeCL+afCL+agCL+ahCL+alF+amH@T+ap +arq+au]/+avvv +awi +aycY +a|n+aI0+a]+a@+a@0;+aAH +aU+au +aH$+az +aP +ae@ +a_+aL+a^+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aL+aG5+aH{F+aG7+aL+aL}e+a`d}f+aqy ^ ^ M+auλ N+aCO+aAP+aDDQ+abR+a NPS+a!s T+a"JAV+a#o.Z X+a%GyY+a'H<[+a(x\+a)Z^+a,c׏_+a-t `+a/DW7a+a0bb+a1e >c+a3]\+a5CL+a6CL+a7CLg+a9r +a;CL+aCL+a?CLm+aBH n+aEgo+aFdx +aHCL+aICL+aJCL+aKCL+aMCL+aNCL+aOCLw+aROx+aSYffy+aT]+aUOP{+aVrP7 |+aX\x"}+aYkx~+a[^+aD+aF+auD ~+aCL+a_Q |+aCL+aF+aFv+aH+aH3u+aCLt+aCL+am +aov +ai^ 5+aJ6+aK+aCL+aCL:+aCB;+aQG<+aU?+aF?+aCL+aCLB+a@JeC+aO3D+aDNmE+a]F+arG+aNH+aJ L+aWT{M+aR{N+ag*O+aHYP+aH0Q+ami R+an% T+aJU+aLSV+a@ޝ+aCL+aCLY+aw% Z+aEl+aCL+aCL]+az ^+aM+aCL+aCLa+aN;+aCL+aCLd+a@+a CLf+a ^+a CLh+aEi+aS+aCLk+aX{ l+aO m+aMG n+acٚo+akp+at q+an r+ap# s+a LVet+a"Ku+a#C+aMCL+aNCLx+aPB\y+aQQTRz+aRFxC+aUCL+aVCL}+aXCi(~+aZJD+a[J-+a\C+a^CL~+a_CL+aaH+adixB +aeixB +afDG+agC4+ahI=+aiixB +aj\ +akC+allww +ao} +arEV+asPl+auF0V+avL+ay} 8+a{K3+a~m<8 +aSv+aP+aJg+aI~+ag+ +aQ+aBM+aCL+aG^+at+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aDt+aB3+aL +aO:+aMR+aMR+aCL+aCL+aCL+aCL+aCL+aCL+aCL+a^+aCL+aCL+aCL+aN++aCL+aCn+aCL+aCL+ay1 +aCL+aCL+aCL+aCL$+aK%+aI&+aIw+aCL*+aLN,+aAO+aCL.+a } +a"CL+a#CL+a$CL+a%CL3+a(kJ4+a*AH6+a-UFg7+a.WVg8+a/Mg9+a1GjK:+a3Qg;+a4S4<+a5O+a7CL>+a:[J?+a;I@+a_+aXj `+aZCZ#a+a\|b+a]*c+a^xc+a`CL+aaCL+abCLg+adrb +agCL+ahCL+aiCL+ajCLm+amHn+apgo+aqdV +asCL+atCL+avCL+awCL+axCL+ayCL+azCLw+aHRx+aW.y+aefg+aOP{+afDD |+a\,V}+akR~+a^+aC+aF+aq ~+aCL+aa) |+aCL+aF+aG@+aH+aPfu+aCLt+aCL+aliy +aoV +ai< 5+aJ6+aK+aCL+aCL:+aD;+aPTC<+aY?+aF+aCL+aCLB+a @C+a M=D+a Dq.E+a WF+anuG+aNH+aJ L+aHM+aBEN+aW>O+aHP+aIQ+amJ R+an0 T+aJU+aLsV+a@N+aCL+a CLY+a"w Z+a$EO+a&CL+a(CL]+a){/9 ^+a+M+a-CL+a.CLa+a1NX+a3CL+a4CLd+a6@+a9CLf+a:^+a;CLh+a=Fi+a>S+aACLk+alX8S l+amOW m+anMQ n+aqdfo+arl;1p+atsf q+aun r+avoG s+axL[t+ayKu+azC +a|CL+a}CLx+aByy+aOez+aFy+aCL+aCL}+aC~+aJM+aJm+aBg+aCL~+aCL+aH#+aixB +aixB +aCμ+aCi(+aG+aixB +a\ +aCw+al> +a} +a@ +aPz+aF.+aL+a} 8+aJ+aB +aLv+aP+aJ+aI~+ag+ +aSCL$+aAKϜ%+aBJQ&+aERQ+aHCL*+aJLu,+aK[+aMCL.+aO|& +aRCL+aSCL+aTCL+aUCL3+aWl*4+aYA6+a\R 7+a]Q8+a^JI9+aaGU:+acR ;+adQff<+aePc3+afCL>+aiYS?+ajI@+akF=A+alFD+anCLD+akw E+aG4F+aEG+aX*+aF+aH3+aE!+aLh4+aal+a~c +ag +ag>? +aDg+aEZ!+aCL +aCL+aCL+adE +aCL+av +aA$Z+aq +au} +a`+auZ +aCL+aCL+aCL+aCL+aCL+aF+aGV+a@/+aqr+a]/+axo +azT +ac +a p)+a Im+a Y+a A+a B!+a AB +a WCy+a Ha"+a Ik+a zr +a T$ +a \ +a ^3+a I+a ^+a CL+a CL+a CL+a CL+a CL+a !CL+a "CL+a #CL+a $CL+a (L +a )G+a *Hz^+a +G+a .L+a 1L}e+aK$?}f+avD5 ^ ^ M+a uv N+a wCO+a x} P+a yDQ+a |e&.R+a }NWS+a ~r T+a ERV+a gE+ X+a GnY+a I`[+a Ę\+a Z ^+a c_+a n `+a Bga+a bub+a fc+a c.+a CL+a CL+a CLg+a rU +a CL+a CL+a CL+a CLm+a G n+a &go+a f  +a CL+a CL+a CL+a CL+a CL+a CL+a CLw+a Jx+a Zy+a cL+a OP{+a i |+a Y}+a l4~+a ^+a Ci+a F+a wna ~+a CL+a ad |+a CL+a F+a GWc+a H_+a Gv=u+a CLt+a CL+a j +a )n7L +a *i?} 5+a ,J6+a -K)+a /CL+a 0CL:+a 2D;+a 3N"<+a 4X9?+a 5F+a 8CL+a 9CLB+a ;@۶C+a p+a tff q+a p( r+a sL s+a Lc&t+a K^u+a D_+a CL+a CLx+a B5y+a M׺z+a F5+a CL+a CL}+a C~+a J +a J`+a C\+a CL~+a CL+a Hd+a ixB +a ixB +a B+a B+a Fݱ+a ixB +a \ +a Bn+a l"! +a } +a @ +a Ps+a F5+a L+a } 8+a L+a B +a OBo+a O+a KT+a H+a g+ +a S+a YP?+a IP@+a FA+a EF+a CLD+a j E+a GF+a EG+a Y}+a F+a I+a DI+a K)+a d+a h! +a g/ +a g[~ +a D%+a D!+a CL +a CL+a CL+a _ +a CL+a vK+a?H+aBg+ +aCS+a\q?+aI@+aFgA+aEe+aCLD+aj E+aGF+aETG+a[+a F+a I+aE0+aIE+a`+a< +a=g>? +a>gj +a?D+aTDg!+aWCL +aXCL+aYCL+a[g +a_CL+aavI +ab|& +acr +advt +af[+ajvW +amCL+anCL+aoCL+apCL+aqCL+auF+avF+aw@&+ap+a]6+ay1 +a{= +ad  +ao3+aIݮ+aW!+aB+aA_+aAq +aUc+aI5+aJ+az[ +aWs +abww +a_@+aJ+a^+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aCL+aM+aHp+aH+aH +aL+aL}e+afcq}f+a Yp ^ ^ ^ M+a!x N+a#C O+a$C@.P+a%EwQ+a(dȒR+a)N~S+a+rE T+a,JRV+a-pl X+a/GqY+a0I[+a1\+a2\$E^+a^d_+a_uq `+a`A)wa+abrRb+acuc+adn+afCL+agCL+aiCLg+akr +amCL+anCL+aoCL+apCLm+asFn+aw~4o+axhj +azCL+a{CL+a|CL+a}CL+a~CL+aCL+aCLw+aLBx+a^y+aeW +aOP{+apDD |+aY}+ag~+a^+aC+aGF*+an}[ ~+aCL+a`H |+aCL+aG`+aGT+aHU+aPeu+aCLt+aCL+adt +aldZ +ah1' 5+aJ 6+aK&X+aCL+aCL:+aD- ;+aN<+aRk?+aFy+aCL+aCLB+aAC+aUD+aDq.E+aXF+ah >G+aMW H+aK L+a[M+aUN+aiO+aIP+aJ$Q+am<8 R+am T+aK|U+aM(V+a$BN+a&CL+a'CLY+a)x Z+a*E+a,CL+a-CL]+a/} ^+a1O+a3CL+a4CLa+a7P+a9CL+a:CLd+a+anV?+aoI@+apFA+aswt +avCLD+axj E+azG9F+a{EѼG+a|VQ+aB+aEVg+aA4+aG+7+aa+a@e+ag>? +ag +aC4+aCu!+aCL +aCL+aCL+aeT +aCL+awS +a@A+as +aw +aƙ+avh. +aCL+aCL+aCL+aCL+aCL+aFڸ+aF+aK +apn+a]:+az +a{ +adTF +apC3+aJu+aV(+aBg+aC+aAf +aUQ+aIr+aJ+a{ +aT. +a!dD +a"`3+a#N0+a%^+a&CL+a'CL+a(CL+a)CL+a+CL+a,CL+a-CL+a.CL+a/CL+a2M+a4H(+a5H+a6H'+a9L+ab+a[#c+aT&f+aCL+aCL+aCLg+aq +aCL+aCL+aCL+aCLm+aF2n+a}go+ah +aCL+aCL+aCL+aCL+aCL+aCL+aCLw+aKx+aUy+a\W +aOP{+ag |+aZ}+ai<~+a^+aB݃+aF+anT ~+aCL+a_i |+aCL+aGS+aGZI+aIA+aH, u+aCLt+aCL+a b +a k- +a gm 5+aJ6+aK+aCL+aCL:+aDG;+aQ<+aUh?+aFL+aCL+aCLB+aEAC+aFTD+aGD|E+aId34F+aJqW G+aKNH+aLK)H L+aMYM+aNTRN+aOi>O+aPJP+aQJM.Q+aTmm R+aUm T+aWLOU+aXM@V+aYB+a[CL+a\CLY+a^y# Z+a_F +abCL+acCL]+ae}h ^+agO+aiCL+ajCLa+amP+anCL+apCLd+aq@u+atCLf+au^+avCLh+axFi+azN]+a|CLk+aYq l+aO\) m+aM n+aco+alJp+ar{ q+ajL r+al) s+aL~zt+aKu+aE+aCL+aCLx+aC=y+aQ:z+aH[+aCL+aCL}+aD~+aK<+aK+aC+aCL~+aCL+aH +aixB +aixB +aC+aBn+aF+aixB +a\Rp +aBw+ajZ +a} +aEV+aPC+aFX#+aK6+a} 8+a K6+aB +aDF-+aM+aK++aH,+ag+ +aY+aBG+aCL+a E+a!o8+a#CL+a$CL+a%CL+a&CL+a'CL+a)CL+a*CL+a+CL+a.vf+a/}+a0Dk3+a1Kk+a2O +a3M(+a5CL+a7CL+a8CL+a9CL+a:CL+a;CL+aCL+a?CL+aACL+aBN+aDCL+aGC/ICL/ICL/Ix# /I CL/I CL/I CL/I CL$/IL0%/IJGf&/IG3/ICL*/IL:',/I\/ICL./IQO/I!CL/I"CL/I#CL/I$CL3/I&lf4/I(AH6/I+D37/I,B8/I-m9/I0Gu!:/I2Jf;/I3L/I8U?/I9Iڄ@/I:FA/I;@3$/IeCLD/IgiLl E/IiGdF/IjE$G/IkU/InB&f/IpD/IqA#3/ItF /I} /I@ /IP_/IFI/IKA/I} 8/IK3/IB /ILv/IM/IK /II~/Ig+ /IY/IEʘ/ICL/IEQ/Im,/ICL/ICL/ICL/ICL/ICL/ICL/ICL/ICL/IAg/Iwf/IC{3/I Kq/I!P4/I"Mff/I%CL/I&CL/I'CL/I(CL/I)CL/I*CL/I+CL/I,^/I-CL/I/CL/I0CL/I1N=5/I3CL/I6C/I8CL/I9CL/I:x /I=CL/I>CL/I?CL/I@CL$/ICL,%/IDIb&/IGR$D/IICL*/ILL ,/IMH`i/IOCL./IQE*/ITCL/IUCL/IVCL/IWCL3/IYl4/I[AH6/IE&f7/IEs38/I@9/IGO2:/IJg;/IMFf/IX"C?/IIw@/IFdA/IEޢ/ICLD/Ijp E/IG5F/IEG/IXS/IG/IJ 3/IFP/ID/I`/I@w/Igd /IgJ /IC6]/IC6]!/ICL /ICL/ICL/IgX /ICL/Iw /I{H /Is /Iw| /Ia;/Iv /ICL/ICL/ICL/ICL/ICL/IF}/IF/IFv /Ip|/I]:/IzT /I{H /Ids /Iq&f/I JA/I Z/I Bo/I BG/IA /IW0/IJb(/IJۥ/I{= /IX^ /Ic33 /I_ /IL|/I^/I CL/I!CL/I"CL/I#CL/ILCL/INCL/IOCL/IPCL/IQCL/ITN/IVH9/IWID/IXHC/I[L/I^L}e/Ikު}f/Ikx ^ ^ M/Ixx N/I{C3O/I|CNP/I}EQ/Id:;R/INvS/I@T/IJJeV/Io X/IGb/Y/IJ[/Il\/IWr^/IdpR_/IvUU `/IBa/IWb/IZRc/IU/ICL/ICL/ICLg/Ir /ICL/ICL/ICL/ICLm/IGnn/I~4o/Ihj /ICL/ICL/ICL/ICL/ICL/ICL/ICLw/IEx/IUy/Id/IOP{/Isǯ |/IZ*}/Ii~/I^/IC/$/IG/In ~/ICL/Ie |/ICL/IG6/IG/I I2O/I#G,u/I%CLt/I&CL/I(aR /I*kI /I+gfg 5/I-J6/I.K&X/I0CL/I1CL:/I3D;;/I4PPDE/I@j*F/IA|G/IBU#H/ICKR L/ID]M/IEY8RN/IFmhO/IGJE:P/IHJzQ/IKl9 R/ILm T/INLWMU/IOM{bV/IxBZ/IzCL/I{CLY/I}zT Z/I~FL/ICL/ICL]/I~] ^/IO/ICL/ICLa/IPB/ICL/ICLd/IA/ICLf/I^/ICLh/IFݱi/IM/ICLk/IYh' l/IO m/IM33 n/Id3o/IlCp/IrW q/In r/Io{ s/ILu]t/IKu/IET/ICL/ICLx/ICpiy/IObz/IG/ICL/ICL}/ID;~/IKjz/IK/IDd)/ICL~/ICL/II6/IixB /IixB /IAҩ/IA^v/IF/Ii /I] /IAl/Im[ /I} /I@ /IPW/IFMI/IK?/I} 8/IJ /IB /IS_/I M/I KT/I I~/Io^ /IY/IF|/ICL/IEu/I@m/IBCL/ICCL/IDCL/IECL/IGCL/IHCL/IICL/IJCL/IMC/INvg/IOC{3/IPMR/IQOxR/IRMR/IUCL/IVCL/IWCL/IXCL/IYCL/IZCL/I[CL/I\^/I]CL/I_CL/I`CL/IaN5D/IcCL/IfC/IhCL/IiCL/Ijxe /ImCL/InCL/IoCL/IpCL$/IsKR%/ItJF&/IwM/IyCL*/IMG,/IBs/ICL./I)b /ICL/ICL/ICL/ICL3/Il4/IAH6/IG7/IL8/IF9/IG+ :/IJ;/IMc4/I[?/II:@/IF_A/IC /ICLD/IjH E/IGF/IEG/I[/IC/IEɚ/IB[3/ICC/IcLK/I@6/Igd /Ih6 /ICU/IBM!/I CL /I CL/I CL/I `EA /ICL/IyN /I~24 /IvK /Izcz /I[ /IvI /ICL/ICL/ICL/ICL/I CL/I#F*/I$F/I' /I)pR/I,]:/I-{ /I.| /I0d[ /I3r/I6K/I7^}n/I8CP|/I9H|/I;AR /I>WY/I@J֕/IAK'/Il{LS /ImP /Ip` /Iq_\/IrIs3/It^/IuCL/IvCL/IwCL/IxCL/IyCL/I{CL/I|CL/I}CL/I~CL/IN9/IH?l/II5G/IHK6/IL3/IL3}e/Ij}f/I(jp ^ ^ M/Iy. N/ICO/IA?P/IEVQ/Id}R/INS/IAT/IH V/Ik X/IGcY/IJ][/Iޯ\/IZb^/Ie)_/Imq `/ICڟa/Irb/It!Hc/In8R/ICL/ICL/ICLg/Iry /ICL/ICL/ICL/ICLm/IH@Tn/I)o/Ihӄ /ICL/ICL/ICL/ICL/ICL/ICL/ICLw/ILBx/I ZǮy/I Zz/I OP{/I7i33 |/I9Y}/I:m7~/I<^/I?C/I@G-/ICo ~/IFCL/IHb |/IJCL/IMH/INGT/IOIL\/ISOu/IUCLt/IVCL/IXaL /IYj /I[gZ 5/I]Kl6/I^K;D/I`CL/IaCL:/IcD;/IdOK/ICL/ICL]/I} ^/IOp/ICL/ICLa/IPe3/ICL/ICLd/IAt@/ICLf/I^/ICLh/IFi/IL4e/ICLk/IY`C l/IN m/ILǮ n/Ido/IlIp/IvQ q/IlǮ r/I o\ s/I Lyt/I Ku/I ER/I CL/I CLx/I Cwy/I N>z/I G/I CL/I CL}/I Du~/I K/I Kڮ/I D/I CL~/I CL/I I/j/I ixB /I ixB /I B/I B /I !G/I "i& /I #]< /I $B)/I &n[ /I (} /I )B3/I ,Pr/I .F[/I /KA/I 2} 8/I 4KA/I 7B /I `Lv/I aM/I cK /I dHЌ/I go^ /I iY/I jBU/I lCL/I oE /I pn/I rCL/I sCL/I tCL/I uCL/I vCL/I wCL/I yCL/I zCL/I }D/I ~vvf/I I3/I MR/I OxR/I MR/I CL/I CL/I CL/I CL/I CL/I CL/I CL/I ^/I CL/I CL/I CL/I N2`/I CL/I C&/I CL/I CL/I z /I CL/I CL/I CL/I CL$/I K%/I Jw&/I H%/I CL*/I L^,/I IL/I CL./I }: /I CL/I CL/I CL/I CL3/I lX4/I AH6/I MI7/I O)8/I I9/I G Q:/I I;/I Ls4/I Z7?/I Iڄ@/I FA/I @/I CLD/I k E/I G7F/I EtG/I (Z/I ,Dfg/I -F/I .Cc4/I 1Bz/I 2b J/I 3A_*/I 4g[~ /I 6h /I 7B/I 8B!/I ;CL /I b/I ]=qc/I X#/I CL/I CL/I CLg/I "rCY /I $CL/I %CL/I &CL/I 'CLm/I *H^n/I V~4o/I WjE /I YCL/I ZCL/I [CL/I \CL/I ]CL/I ^CL/I _CLw/I cLqx/I dYuy/I e]R/I fOP{/I il |/I kY7}/I lk~/I n^/I rD-S/I sGe/I voI ~/I xCL/I zb3 |/I |CL/I H-/I G/I I/I Gdu/I CLt/I CL/I ` /I j /I g 5/I K"6/I KV/I CL/I CL:/I D;/I N|/I MV7?/I NI@/I OF.A/I Ru /I UCLD/I Wj E/I XGF/I ZE5G/I ZVn/I ^Dk3/I _Gf/I `Ch/I dA/I ebh/I fA?/I gg/ /I hh /I iBw/I jBn!/I mCL /I oCL/I pCL/I reT /I uCL/I wz % /I x}f /I yvt /I {y] /I |YN /I }wB /I CL/I CL/I CL/I CL/I CL/I F/I FA/I @/I q./I ]=q/I {in /I |ƚ /I e!( /I q/I J\/I ]z/I C6]/I B/I @ /I X_/I K /I K 3/I { /I UT /I cU /I _f/I LI/I ^/I CL/I CL/I CL/I CL/I CL/I CL/I CL/I CL/I CL/I N/I HK6/I I /I H[/IL3/IL3}e/I |gw}f/I i ^ ^ M/I/y N/I2CzO/I3C P/I4F Q/I7d2R/I8N~S/I9s T/I:J&V/I;o.Z X/I>GZY/I?J[/I@\/IAY ?^/IDfw_/IEvc `/IGCna/IHWb/IJYRc/IKR /IuCL/IvCL/IwCLg/Iyrb /I{CL/I}CL/I~CL/ICLm/IH,bn/Igo/Ij( /ICL/ICL/ICL/ICL/ICL/ICL/ICLw/II{x/IXy/I\/IOP{/Is |/IY.}/Ij~/I^/ID/IG,/Io ~/ICL/Ic7 |/ICL/IHOP/IG/II/IOeu/ICLt/ICL/Ia:^ /Ijr /IhV 5/IK46/IK^/ICL/ICL:/ID;/IM= /I} /I@ /IP*/IF/IL/I} 8/IK#/IB /I}/IM/IL/II~/Io^ /IY6/IEʘ/ICL/IE/IlmB/ICL/ICL/ICL/ICL/ICL/ICL/ICL/ICL/IC4/I~g/I K!/I N /I MR/I P(/ICL/ICL/ICL/ICL/ICL/ICL/ICL/I^/ICL/ICL/ICL/IN:R/ICL/IC&/I!CL/I"CL/I$xWc /I'CL/I(CL/I)CL/I*CL$/I-K%/I.J6&/I0Rs/I3CL*/I6Lb<,/I7G/I9CL./I;H/I=CL/I>CL/I?CL/IhCL3/Ikl4/ImAH6/IpF7/IqL8/IrI9/ItF:/IvK;/IwN`/I}Rٶ?/I~IN@/IFA/Is T /ICLD/Ij E/IGF/IEG/ISQ/IDa/IF/IC8/IA&/IbV/IAm/IgL /Ih /IB/IBUZ!/ICL /ICL/ICL/I_= /ICL/Iy# /I|C /IuS[ /Ix /IWײ /Iw| /ICL/ICL/ICL/ICL/ICL/IF/IF/I@;/IrP/I]:/Iz /I| /IeM /Irf/IJ/I]/IBz/IBq/I@aH /IX"/IJ/IJ/I{/ /IRi /IaU /I_`/II/I^/ICL/ICL/I0CL/I2CL/I3CL/I4CL/I5CL/I6CL/I7CL/I;N/IHl/IAL3/IEL3}e/Ih9(}f/Ii ^ ^ M/I_y? N/IaCO/Ib@FP/IcFFDQ/Ife4R/IgN­S/Iiq T/IjGzV/Ikic X/IGhY/IJ[/I\/IZ^/Ido_/Ikr `/IBa/Iyb/I}c/Iv/ICL/ICL/ICLg/Ir, /ICL/ICL/ICL/ICLm/IGn/Igo/Ij, /ICL/ICL/ICL/ICL/ICL/ICL/ICLw/IL{x/I\ >y/I^/IOP{/If |/IYɨ}/Ij ~/I^/IC/IG/Io,| ~/ICL/Ief |/ICL/IHn5/IG/I I/I GZBu/ICLt/ICL/I_ɺ /Ij" /Ig# 5/IKG6/IKk~/ICL/ICL:/ID;/IL;CL/I?CL/I@CL/IACL/IBCL/ICCL/IDCL/IF^/IGCL/IHCL/IICL/IJN9/ILCL/IOC/IQCL/IRCL/ITw /IVCL/IWCL/IXCL/IYCL$/I\K%/I]I&/ILs /ICL*/ILû,/IC:/ICL./IA/ICL/ICL/ICL/ICL3/Im 4/IAH6/IF7/IM38/IL9/IF:/IKp;/IMٚ/ISJ?/IIG@/IFA/IzF^ /ICLD/Ik E/IGLF/IEMG/IT /IC/IG%/ID3/IAB/Ia/IAW/Ik /I_ /IBN/IJ3!/ICL /ICL/ICL/IfJ /ICL/Iy /Ir /Ivv /Iy /I]3\ /Iw /ICL/ICL/I CL/I CL/I CL/IF*/IF/I@f/Ir/I]=q/IAq/Is8 /IejS /Ir/IJ/I aIL/I!BR/I$p^ /I'@T{ /ISY'/IVs /IWJā/IX{H /IYYa /I\a /I]_\/I_I3/I`^/IaCL/IbCL/IcCL/IdCL/IfCL/IgCL/IhCL/IiCL/IjCL/InNB/IoHS_/IpI$/IqHr5/ItLR/IwLR}e/Ij}f/Ihz~ ^ ^ M/Iy N/IC,O/I@P/IF Q/IfBR/INS/Ip| T/IFV/Ih7 X/IGjRY/IJ2[/Iʮe\/IZB^/Id&_/Ip `/IB:a/Ib*b/If&gc/I^/ICL/ICL/ICLg/IrR /ICL/ICL/ICL/ICLm/IG0n/IS4o/Ij#A /ICL/ICL/ICL/ICL/ICL/ICL/ICLw/IOQx/I]=qy/I]f/I OP{/I#lDD |/I%Y}/I&i~/I(^/I,CN/I-GÖ/I0n ~/I2CL/I4c |/I6CL/I:Hg/I;F8/I/IV?/II0@/IFA/IEB/I CLD/Ikw E/IGyF/IEeG/IXF/Iu+3/I{s3/ItD/ID/Ia/IB/Iju /I d /I!Fb/I"JF!/I%CL /I&CL/I'CL/I)at /I-CL/I/| /I0t' /I1u /I2{ /I4vlo/I7w /I:CL/ICL/I?CL/IBF/ICF|/ID@wr/IFr"31]@31|R8 31iމ 31 e7 31 p)31Jx31\U31@31gj 31@3 31X31dM 31G31 { 31!Q 31$]w 31%_P31'G331(^31)CL31*CL31+CL31,CL31.CL31/CL310CL311CL312CL316NgZ317H>318I319H031dLq31gLq}e/I4S}f/IEh ^ ^ M31x$ N31CO31C;0P31E)Q31exR31OS31pmy T31IV31o< X31GaGY31Jo[31\31YS4^31d,q_31u `31Aa31cb31fzc31].31CL31CL31CLg31rb 31CL31CL31CL31CLm31G+n31~o31j 31CL31CL31CL31CL31CL31CL31CLw31JW x31ZRy31_W 31OP{31rg |31Y}31j~31^31C^31GtL31nT ~31CL31`Sk |31CL31Hn531D31IM31,Gu31.CLt31/CL311^ 313iK 314gM 5316Kbd6317K319CL31:CL:31W?31?G31BCL31CCLB31EFC31FU3D31GDLE31IkW F31Jz >G31KWH31LL L31MsqM31Nn!HN31O@O31Ru65 P31Sh Q31TGR31Vc T31WMQ`U31XNlV31YBn31[CL31\CLY31^} Z31_F 31bCL31cCL]31e ^31f@31CL31CLa31DV31CL31CLd31B31CLf31^31CLh31Hi31T}z31CLk31Zj l31O\) m31M= n31e o31l0 p31r q31lz r31ru s31L&t31L0u31AM31CL31CLx31Bny31Q#z31C>31CL31CL}31 ~31L 31LyK31EU31CL~31CL31I31ixB 31ixB 31G31G`31M31ixB 31\^ 31G31lww 31}K31@ 31Pz31 F 31 L31} 831L31B 31QQF31M31K331Hκ31o^ 31Y631Eʘ31 CL31#E31$k 31&CL31'CL31(CL31)CL31*CL31,CL31-CL31.CL31YC31Zt6g31[C{331\M)31]MR31^N޹31`CL31bCL31cCL31dCL31eCL31fCL31gCL31h^31iCL31jCL31lCL31mN.31oCL31rC31sCL31tCL31vy# 31yCL31zCL31{CL31|CL$31Ll%31Jw&31O031CL*31L\,31_931CL.31 31CL31CL31CL31CL331mgg431A631Q3731Pf831N931F:31PS3;31R4<31Nf31CL>31Y;$?31J/@31FEA31DT531CLD31kh E31G3F31EG31Z31u31z331sY31H%w31^%31Bù31g3 31bq 31H31L!31CL 31CL31CL31c/ 31CL31{ 31q9 31 v 31!z 31$j31'x+ 31*CL31+CL31,CL31-CL31.CL311F313F=314@;315s}318]=q319z$ 31:jD 31;e 31?p331BJ31CY31D@k31Gm 31J@ 31MX631Phb 31RF31S|5! 31TU 31W]"" 31X^f31YG31Z^31CL31CL31CL31CL31CL31CL31CL31CL31CL31M<31H%!31H31G31Lq31Lq}e31$O}f311gF ^ ^ M31y N31C,O31AP31F"Q31fs"R31O-S31s T T31IV31o< X31Gu*Y31K[31 \31V^31c]H_31q `31Aa31|xRb31@{c31z031CL31CL31CLg31rז 31CL31CL31CL31CLm31Fnn31 ~6go31 k 31 CL31CL31CL31CL31CL31CL31CLw31Lx31Z\y31a31OP{31m |31 X}31!hfB~31#^31NC 31OGCH31Rn$ ~31TCL31W`b |31YCL31\H{31]A31^I931aM0u31dCLt31eCL31g^ 31hi 31ig 531lKy$631mK31oCL31pCL:31rE#;31sJ<31tX_N?31uH31xCL31yCLB31{G4C31|OD31}EE31_F31ppG31TH31LP L31iM31dN31x\*O31lR P31ejU Q31EsZR31VeT31MCU31M'V31@31CL31CLY31}; Z31E31CL31CL]31@&^31r 31CL31OPa31y@Y 31CL31CLd31CU31CLf31^31CLh31HVFi31ST31CLk31ZU l31O8R m31M n31_ffo31l3p31rL q31k r31m = s31LZt31L.Pu317 31CL31CLx31B8Py31 Oz31!Hk31$CL31%CL}31'A~31)L-m31*L31+E31-CL~31.CL310I313ixB 314ixB 315H316H318N31;j' 31<]! 31=H$31>m> 31@}31A@31EP*31GF31HL31K} 831MK&31xEV31yR31zM31|K631}Hn31o^ 31XO31Eʘ31CL31E31l<31CL31CL31CL31CL31CL31CL31CL31CL31E931t6g31I331MR31VR31OxR31CL31CL31CL31CL31CL31CL31CL31^31CL31CL31CL31N-S31CL31C31CL31CL31zr 31CL31CL31CL31CL$31L'%31JE&31N31CL*31L,31G31CL.31~ 31CL31CL31CL31CL331mw431AH631EVg731Jf831K931GK:31N3;31Pf<31Kə31 CL>31 [?31 J5@31FA31B8P31CLD31l& E31GLF31E۵G31\{31Bs31Cw31Dpf31GK131Hap$31IC31Kd 31L_޿ 31MIΘ31OMok!31QCL 31RCL31SCL31VgL 31YCL31[} 31\p$ 31]y@ 31^}T 31`31cxe 31gCL31hCL31iCL31jCL31kCL31nF31oF31p@31rr31u]DD31v} 31wl 31xe 31{nf31I31[p31A31nn 31A33 31Wk31qes 31F31|` 31U_ 31a 31^31J331^31CL31CL31CL31CL31CL31CL31CL31CL31CL31Mf31H31HM31G31L31L}e31`z}f31ggd ^ ^ M31xs N31CO31~` P31F@wQ31 h(3R31"OJ)S31#ph T31$EV31%fo> X31'GY31(J[31)b\31+Yr^31.e;_31/o `310A)wa312_b313e^c314[34316CL318CL319CLg31;r 31=CL31>CL31?CL31@CLm31CFُn31ofgo31pk  31rCL31sCL31tCL31uCL31vCL31wCL31xCLw31|R#x31}_y31~`ǯ31OP{31j33 |31WH}31iF~31^31B31G31u ~31CL31b9 |31CL31Hd631@+%31H31Hu31CLt31CL31[> 31i 31g 531K631K31CL31CL:31EG;31JE<31Yc?31H[31CL31CLB31GnC31FhD31E"E31daHF31wG31W\H31LP L31hM31bN31vO31k P31d Q31C.R31TH>T31LU31M)2V31A/?31CL31CLY31~ Z31El31CL31CL]31@r^31q 31CL31OPa31 w 314CL315CLd317C6]319CLf31;^31Hi31?RԢ31BCLk31DZ l31FO m31GM{ n31I^o31Kl!+p31Mt q31Nm r31Onp s31PLt31QLL_u31T~ 31WCL31XCLx31ZBy31[NiAz31\Fi31_CL31`CL}31bA~31dLW[31eL,31fE31hCL~31iCL31kI31nixB 31oixB 31I 31I>31Px31i 31]< 31I31m 31} 31@ 31P^31F31KCu31} 831J31B 31E31Mg31L31Hx31o^ 31Q31D31CL31E31lq31CL31CL31CL31CL31CL31CL31CL31CL31B331vf31H31MR31OxR31MR31 CL31 CL31 CL31 CL31 CL31 CL31 CL31 ^31 CL31 CL31 CL31 N2`31 CL31 C131 CL31 CL31 y 31 CL31 CL31 CL31 CL$31 L%31 I@&31 "J&G31 %CL*31 (Lw0,31 )Dg31 *CL.31 ,| 31 /CL31 0CL31 1CL31 2CL331 5m431 7A631 aM731 bL)831 cKf931 fGsS:31 hK;31 iM0<31 jH331 lCL>31 nWKa?31 oJ\@31 pG jA31 sy] 31 vCLD31 xkd E31 zGF31 {EG31 |Y!H31 r31 v431 n31 M)31 `31 C 31 d( 31 `6 31 J31 M!31 CL 31 CL31 CL31 _Z 31 CL31 | 31 s)~ 31 w 31 z 31 TI 31 x 31 CL31 CL31 CL31 CL31 CL31 F_31 F31 @31 sW31 ]=q31 }R 31 C.31 f( 31 p331 I^31 a8!31 @31 p^ 31 A 31 Wp31 wt 31 GJY31 | 31 P 31 c 31 _31 K331 ^31 CL31 CL31 CL31 CL31 CL31 )CL31 *CL31 +CL31 ,CL31 /M(31 1H31 2H31 3G31 6Lq31 9Lq}e31 dk$}f31d! ^ ^ M31 SwC N31 UCO31 WB`P31 XGQ31 [gWR31 \OTS31 ]p3 T31 ^I V31 _n X31 bG|eY31 cJ״[31 \31 Xp[^31 bX_31 uV `31 @a31 bnb31 e4c31 \R31 CL31 CL31 CLg31 r 31 CL31 CL31 CL31 CLm31 Fn31 o31 k  31 CL31 CL31 CL31 CL31 CL31 CL31 CLw31 Ox31 Zy31 ^aH31 OP{31 r |31 Y}31 g~31 ^31 B31 G31 vW ~31 CL31 cm |31 CL31 H>31 EAU31 H-31 LBQu31 CLt31 CL31 Z>w 31 i 31 f 531 K631 K31 CL31 CL:31 D;31 IG<31 Y:?31 Ha31 CL31 CLB31 GC31 D31 E.SE31 aBF31 pqG31 d34H31 !Lږ L31 "jYM31 #ZkN31 $i=qO31 'k P31 (c Q31 )BɀR31 +S@T31 TLrU31 UL&V31 V@31 XCL31 YCLY31 [}R Z31 \E31 ^CL31 `CL]31 aA^v^31 bp3 31 eCL31 hOPa31 kv 31 nCL31 oCLd31 qB31 tCLf31 u^31 vCLh31 xHi31 yQr31 |CLk31 Z l31 N m31 L8R n31 _ffo31 kڅp31 tff q31 p r31 p. s31 L#t31 L\u31 Fv 31 CL31 CLx31 B y31 Lz31 GB31 CL31 CL}31 At@~31 Lm;31 Lǻ31 EG31 CL~31 CL31 IL31 ixB 31 ixB 31 J_C31 J31 P31 ixB 31 ]K 31 J331 nZ 31 } 31 @ 31 P_31 F31 L31 } 831 K:[31 B 31 F 31 M31 L31 He31 o^ 31 Q31 @31 "CL31 %Ee31 &jp31 (CL31 )CL31 *CL31 +CL31 ,CL31 -CL31 /CL31 0CL31 3C 31 4C)31 5L331 6MR31 7U31 8MR31 :CL31 ;CL31 =CL31 >CL31 ?CL31 @CL31 ACL31 B^31 CCL31 DCL31 ECL31 GN831 ICL31 KC31 MCL31 NCL31 Pyz 31 SCL31 TCL31 UCL31 VCL$31 L%31 J,&31 Gy31 CL*31 L&,31 M;k31 CL.31 DX31 CL31 CL31 CL31 CL331 mՠ431 AH631 Lg731 If831 F931 G]:31 K4;31 M<31 H331 CL>31 S`?31 Jo#@31 G A31 tY 31 CLD31 kw E31 GF31 FG31 VT31 oL31 sf31 m^g31 O#31 _:V31 C-31 b[ 31 _ 31 JZ31 Mc$!31 CL 31 CL31 CL31 eд 31 CL31 }: 31 x 31 x+ 31 {H 31 I 31 x 31 CL31 CL31 CL31 CL31 CL31 F31 Ft31 @{31 s.31 ]=q31 ~ 31 vW 31 fc 31 r31 It31 [31 @31 Iqes 31 LA= 31 OWN31 Rsl 31 SGgR31 T|ƚ 31 UX 31 Xc 31 Z`331 [Lf31 \^31 ]CL31 ^CL31 _CL31 aCL31 bCL31 cCL31 dCL31 eCL31 fCL31 jM=31 kHV31 lI@+31 mHX31 pLq31 sLq}e31 _ }f31 b ^ ^ M31 w N31 CO31 @RP31 F:Q31 gR31 O&S31 o,| T31 HV31 l X31 GyY31 K[31 Ƭ\31 ]^31 d_31 oq `31 @ۘa31 r&gb31 uT{c31 o&g31 CL31 CL31 CLg31 r. 31 CL31 CL31 CL31 CLm31 Fpn31 yo31 j, 31 CL31CL31CL31CL31CL31CL31CLw31Nx31[aHy31^31OP{31j |31!YF}31"i~31$^31(B31)Gu31,qes ~31.CL310b |312CL316H$317D318H31;N0 u31=CLt31>CL31A[ 31Bj5@ 31Cf 531EK631FK31HCL31ICL:31KE;31tHL<31uW4?31vH 31yCL31zCLB31|G̶C31~zD31EIUE31dQF31tG31eH31M L31]M31W\)N31jO31j> P31c Q31C R31S7T31LU31L_V31@R31CL31CLY31} Z31Ed31CL31CL]31AW3^31o 31CL31OPa31vh. 31CL31CLd31B31CLf31^31CLh31Hai31Q'31CLk31Z l31O m31ML n31_s3o31lp31s\ q31o r31r=q s31Lڄt31LX7u31C31CL31CLx31BUZy31Jz31C.31CL31CL}31Bc~31L31LB31D31CL~31CL31I 31 ixB 31 ixB 31 J331I31N31ixB 31<] 31=I31>kww 31@} 31AB331DPs31GFn31HL31K} 831MK:[31PB 31QLv31RM31TL31UHx31Xo^ 31YQ31ZEʘ31\CL31_EWW31aj31cCL31dCL31eCL31fCL31gCL31hCL31iCL31jCL31mvf31n~31pI331qK31rO31sM^31uCL31vCL31wCL31CL31CL31CL31CL31^31CL31CL31CL31N:R31CL31C31CL31CL31x 31CL31CL31CL31CL$31Kh%31Je&31Q31CL*31Lc&,31Yn31CL.31EV[31CL31CL31CL31CL331n!431AH631Oc3731N831I931Go:31Off;31Q<31M|31 CL>31 T?31 J}@31 G=A31n 31CLD31k=" E31GeF31FG31X31m31q31k331"QN31#aGH31$Bh31%b 31&_ 31'J31)L!31+CL 31-CL31.CL310d7' 313CL315| 316~ 317wt 319{ 31;iI31>y 31iCL31jCL31kCL31lCL31mCL31qF31rFY31s@x31ts f31w]=q31x|R8 31yl 31{f 31~nf31IZ31Z31A31ph 31A 31Vd31w 31GC31| 31Ry 31b; 31af31M31^31CL31CL31CL31CL31CL31CL31CL31CL31CL31M!31HN31IM31H=31Lq31Lq}e31;\}f31Ad4 ^ ^ M31x N31CO31u P31FcQ31gFR31OfS31p T31F+V31ga X31Gu*Y31K[31 \31V^310b_311o `312@ea314Wzb315Zc317T319CL31:CL31;CLg31=r 31?CL31@CL31BCL31CCLm31FF%n31Io31Jk 31LCL31MCL31NCL31OCL31QCL31RCL31SCLw31VPx31W\W y31X]f31YOP{31\j |31_Y$x}31`jW~31b^31eB31fG31ix:D ~31kCL31c4 |31CL31H31CXx31H 31KDu31CLt31CL31Z8R 31ij 31f8 531K631K.31CL31CL:31EV[;31H <31XM?31G-a31CL31CLB31G0C31{N*D31EXE31p\F31o\G31`H31ML L31jM31eN31y#O31j P31c!( Q31B+R31ST31KU31LL[V31A+31CL31CLY31~z Z31E9[31CL31CL]31@r^31tz 31CL31 OPa31 @831CL31CLd31CZ31CLf31^31CLh31Ii31PW31CLk31Z l31 N m31!L( n31$]fo31%lvp31'r q31(n r31)pz s31*L^t31+LY u31.},l 311CL312CLx31\Afy31]R/z31^DG31aCL31bCL}31dC ~31fL31gLܷ31hD31jCL~31kCL31mI/31pixB 31qixB 31rJBU31sI31uP31xjD 31y]Z7 31zI31|nww 31~} 31@31P^31F31L31} 831J31B 31SG31M31M 31I\31o^ 31Q31Eʘ31CL31Eu31m31CL31CL31CL31CL31CL31CL31CL31CL31B31vg31C{331OxR31VR31U431CL31CL31CL31CL31CL31CL31CL31^31CL31CL31CL31N;31CL31C 31CL31CL31w 31CL31CL31CL31CL$31K%31J &31$NVA31'CL*31*Lw,31+DL31-CL.31/~ 311CL312CL313CL314CL3317n%B4319AH631L931@G:31BM;31CO<31DKI31FCL>31IWe?31JJz@31KFA31Nr 31PCLD31Rk E31TGdF31UEG31V[31Zk31[p331\jY31_R)31a31C[p31bq 31` 31J31M[!31CL 31CL31CL31b(\ 31CL31} 31C31{a 31}: 31Eov31yN 31CL31CL31CL31CL31CL31F 31F31@)31rx31]@31{a 31k 31fp 31o331I#31WA31A$31qt 31A\) 31V31{ 31Go31} 31RYV 31b 31`331I`31^31CL31CL31CL31CL31CL31CL31CL31CL31 CL31 MM31H031I231G-31L31L}e31@ }f31b# ^ ^ M31Yx N31[CO31\B%P31]FQ31`f6R31aOMS31b@T31cIV31enXm X31gGl Y31hJ[31i\31j[^31mc_31nu `31pBma31rX#b31sZǮc31tU3431vCL31wCL31xCLg31zr 31}CL31~CL31CL31CLm31G$n31o31ln 31CL31CL31CL31CL31CL31CL31CLw31Lx31[py31^)31OP{31r |31X}31iA~31^31B31G31m4 ~31CL31aQ |31CL31H31B<31H\31Nu31CLt31CL31YB 31iV 31fK 531K631K31CL31CL:31E;31FO<31Z?31E31CL31CLB31GC31}D31!EXE31"`>F31$nuG31%a\H31&Mef L31'OxRM31(IQN31)]fO31,i\ P31-dM Q31.B+R310MT311KjBU312LZV313A|=315CL316CLY318Fv Z319D31@^31@}; 31BCL31EOPa31FCi(31HCL31ICLd31KCi(31NCLf31O^31PCLh31RIi31SO(31~CLk31Zt l31M m31Jk n31^3o31lp31u q31p\ r31p s31L7t31LY u31C31CL31CLx31B1 y31Qzz31ET31CL31CL}31Ci(~31L31L31C31CL~31CL31I(-31ixB 31ixB 31J331I31P31ixB 31] 31I31m 31} 31@ 31PM31F&31K:[31} 831K31EV31K31M31M 31I31o^ 31Q31D& 31CL31Ec31jaN31CL31CL31CL31CL31CL31CL31CL31CL31 vf31 t6g31 C{331P31OxR31MR31CL31CL31CL31CL31CL31CL31CL31^31CL31DCL31ECL31GN#831HCL31KC031MCL31NCL31Pw 31SCL31TCL31UCL31VCL$31XL'%31YJ&31\I531_CL*31aLtt,31cL B31dCL.31f| 31iCL31jCL31kCL31lCL331on^431pAH631sHf731tE831uBi931xG͜:31zJp;31{L<31|G`31~CL>31V?31Jlf@31FA31B,31CLD31kZY E31GzF31EG31Y31gf31k331ff31Sh31^31C31cx 31`׬ 31J31L!31CL 31CL31CL31g3 31CL31~l^ 31Cp31z)B 31}f 31_k31yz 31CL31CL31CL31CL31CL31F31 G)<31 @31rC31]=q31|` 31kZY 31fR 31p031I?31U,d31@31 zr 31$A 31'U31* 31+G31,},l 31-T 310`D 311^3312Lɚ314^315CL316CL317CL318CL319CL31;CL31CL31AL:31CH31DI31EG݄7Lq7Lq}e31i }f31a ^ M7!x N7#CzO7$A;0P7%FQ7(fd.R7)NJS7+AT7,IV7-m X7/Gk9Y70J٦[71D\72X ^76cƕ_77p9 `79Crxa7:qb7;u\c7dp7fCL7gCL7iCLg7kr 7mCL7nCL7oCL7pCLm7sG%n7vio7xl׷ 7zCL7{CL7|CL7}CL7~CL7CL7CLw7N x7_{y7cR7OP{7l |7XA}7j)z~7^7C7Gqj7n4a ~7CL7c |7CL7H G7C+z7Hy7Ibu7CLt7CL7[ 7j( 7g 57L67K7CL7CL:7F(;7E<7Yl?7EG7CL7CLB7GuC7~>D7EQ E7aF7pG7WǮH7M L7b!HM7^:N7q{O7g P7c!( Q7AR7MT7KNU7LiV7Af7CL7CLY7@Z7,D7/CL70CL]72K ^73CU76CL79OPa7:D7 z!H y{!t@"]#Jٙ$Ig%M=&K]'I٢(BCL*FCL-nQ !CL"CL0#j'2PHK3QI o4RGTCL6U]VCL8XCB[CL:]CD`CL<by{ =dH]fCLhCL@kLAlG:Bm@foCLpCLErE2Ht~IwqJ 7ixB 7ixB 7IiN7Iw7M7ixB 7\5 7I/j7kww 7|۱7B37PW7F7K1C7} 87L7EV7C7M7M 7I%7o^ 7Q7Eʘ7CL7Ek97i{7CL7CL7CL7CL7CL7CL7CL7CL7vf7~i7Dk37K.7O 7MG7 CL7 CL7 CL7 CL7 CL7CL7CL7^7CL7CL7CL7N/}7CL7Cm7CL7CL7w% 7!CL7"CL7#CL7$CL$7'K%7(J<&7+I[7-CL*7XL,7YXc7[CL.7^L7`CL7aCL7bCL7cCL37eny$47gAH67jI77kF3487lF97oG:7qK#3;7rL<7sHff7tCL>7wS?7xJf@7yF'A7z@`7|CLD7~i E7GF7E-G7Uϴ7h 37l37gY7T 7_j7C%7e 7c!( 7Jm7L!7CL 7CL7CL7bE 7CL7| 7B=7C7{/ 7_7y@ 7CL7CL7CL7CL7CL7F]7G47c 7qw7]=q7} 7kw 7g!4 7r7H7X 7~ 7rE 7B\ 7 Uv7# 7%H 7&}: 7'O 7*c"" 7+`S37,L7-^7.CL70CL71CL72CL73CL74CL76CL77CL78CL7;L*7 Q7gR7NS7@QT7FV7f X7GnY7JF[7#\7VG^7d}_7o9 `7DzBa7]Rb7`ǯc7Y7CL7CL7CLg7r 7CL7CL7CL7CLm7Hn7~go7m 7CL7CL7CL7CL7CL7CL7CLw7Ix7Y8Ry7d*7OP{7jwx |7X}7j/~7^7D7G'7oI ~7CL7^q7 |7CL7 H7 F7 H 7Qsu7CLt7CL7`5@ 7lj 7h 57L;67K7CL7CL:7F;7 Iى<7!X ?7"C7MCL7NCLB7PF5C7R|D7UEh3E7Wm*F7XspG7YXqH7ZMn L7[aM7\\(N7]oO7`gL P7adE Q7bA2R7cIiNT7eK`<U7fLV7gA7iCL7jCLY7l@JeZ7mD7pCL7qCL]7s~@ ^7tE7wCL7xCLa7{E 7~CL7CLd7C6]7CLf7^7CLh7Iwi7M7CLk7Z l7M\ m7J3 n7do7mfp7s q7o# r7m s7Mt7L;u7DB7CL7CLx7Aҩy7Oz7GB7CL7CL}7DS~7Lے7L 7B L7CL~7CL7GJ7Y' 7ef7fs37`37CL 7u 7CL7CL 77CL7CL7M7CL7OP7hE^ 7 i.u 7"CL7$CL7%CL7'S 7)Ovf7*I7+U87.J70R71[{72WH!73e@"74W0#75F $76I%77ME&78Ms'79KU(7:D\7Fs7ACL-7C@X7FCL7GCL07I~# 27LJ37ML47NA7xCL67y]7zCL87|A+7CL:7A:7CL<7~24 =7AW37CL7CL@7JZA7KB7B7CL7CLE7HH7F4GI7X 7ixB 7ixB 7H7H9Q7Mq7ixB 7]Z7 7Hd7k[ 7} E7@ 7P^7G^7K67} 87L7B 7CBh7M7M 7ID7o^ 7S^7Eʘ7CL7E7g7CL7CL7CL7CL7CL7CL7CL7CL7D7t6g7C{37O{7MR7MR7CL7CL7CL7 CL7 CL7 CL7 CL7 ^7CL7CL7CL7N5D7CL7CҶ7@CL7ACL7Cu6 7FCL7GCL7HCL7ICL$7LKM%7MJC&7OQ7RCL*7ULS,7VG(7XCL.7Z@7\CL7]CL7^CL7_CL37bn{F47dAH67gP,77hI 87iE097kGT:7mMg;7nN<7oJ7qCL>7tQ?7uJ^@7vGA7x{in 7{CLD7jD E7GF7E5G7T 7nD7rs37l7Tq7aT7BO7dR 7`q. 7I(-7Lt !7CL 7CL7CL7d/ 7CL7z 7o 7)b 7zcz 7Sz 7y 7CL7CL7CL7CL7CL7FR7G7~Ü 7q7]:7|= 7 la7 7 g[ 7o7H7]c7~z 7~ 7A 7TM7Cٞ7G7"}: 7#U( 7&d"" 7'`|7(Lf7)^7*CL7,CL7-CL7.CL7/CL70CL71CL73CL74CL77L78H79H7:G7>L37?L3}e7c(}f7hh M7vC N7CۢO7B7P7GQ7gR7N~S7r T7IV7nN X7G~4Y7J[7F\7YD^7bX_7u `7Ca7_b7cRc7^q7CL7CL7CLg7rז 7CL7CL7CL7CLm7HU/n7go7j( 7CL7CL7CL7CL7CL7CL7CLw7Hx7Py7^7OP{7s |7[}7nd~7^7Dc7F67uS[ ~7CL7a |7CL7G47H'77H7Fu7CLt7CL7 d 7 mȵ 74jr 576L9>677KA79CL7:CL:7K;7=Qv<7>Z?7@D7BCL7CCLB7EFsC7GyjD7JE`{E7LaQF7MsG7NYGH7OM L7P_M7Q[fN7RnHO7Ui\ P7Veд Q7W@C R7XHmT7ZKoU7[LV7\Au7^CL7_CLY7a@`2Z7bD7eCL7fCL]7h} ^7iCp7lCL7mCLa7oD7CL7CLd7C7CLf7^7CLh7Ii7L7CLk7[ l7N{ m7J n7d3o7np7t q7q# r7t s7M t7L^u7C!P7CL7CLx7Aҩy7NTxz7Gx7CL7CL}7E~7L7L#7BJv7CL~7CL7GB7Y 7g337ff7`f7CL 7 w_ 7 CL7 CL 7 Z7 CL7 CL7 M7 CL7 OP7 i= 7 hm 7 CL7 CL7 CL7 SƆ 7 Xg7 Q7 |7 !JV7 #Qs47 $T.7 %Tk!7 &~s4"7 'efg#7 ([$7 )I%7 *M#s&7 +MT'7 ,Kt(7 .Dl7 /CL*7 1Fm7 4CL-7 6@gv7 aCL7 bCL07 d~ 27 fJ37 gL47 h@ӷ7 jCL67 k]7 mCL87 oAAh7 rCL:7 tF/7 wCL<7 y@=7 zA7 }CL7 ~CL@7 JA7 JSB7 B7 CL7 CLE7 HaH7 CPTI7 e< 7 ixB 7 ixB 7 IiN7 Iw7 N7 ixB 7 \Rp 7 I/j7 l 7 } 7 @ 7 PP7 G^7 K-7 } 87 J7 B 7 Lv7 M7 M 7 IK7 o^ 7 R37 @ 7 CL7 Em7 g7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 C{37 vf7 C{37 M7 MR7 Nq7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 (CL7 *CL7 +CL7 ,N077 .CL7 1CI7 3CL7 4CL7 5v( 7 8CL7 9CL7 :CL7 ;CL$7 >K%7 ?I &7 BK7 DCL*7 GLS,7 HC7 JCL.7 L~24 7 OCL7 PCL7 QCL7 RCL37 Tnw47 VAH67 YF 77 ZDf87 [E97 ^G|[:7 _Pɚ;7 `O4<7 aM7 cCL>7 UJ?7 JJ@7 G A7 A~7 CLD7 i E7 GyF7 EG7 XJ7 g37 k37 e7 TT7 cj7 A?7 c 7 a 7 J;7 KF!7 CL 7 CL7 CL7 f 7 CL7 z)B 7 Cp7 x0 7 y 7 Sa 7 y@ 7 CL7 CL7 CL7 CL7 CL7 F7 G7 ~ 7 p݃7 ]:7 |} 7 kh 7 g5 7 oٚ7 H7 \87 A7 A z7 B 7 T%7 E7 IP7 },l 7 V"q 7 b 7 _7 LC37 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 "LX7 $H 7 %HR7 &G7 )L37 *L3}e7 b}f7 mU M7 ou " N7 rCTO7 s|c P7 tGQ7 wh WR7 xN4S7 ypӖ T7 zF$jV7 {f X7 ~GY7 J[7 )\7 [DD^7 b_7 i9 `7 Ba7 sb7 xǯc7 s{7 CL7 CL7 CLg7 s% 7 CL7 CL7 CL7 CLm7 Gn7 go7 iR 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Jx7 VHy7 ^7 OP{7 d |7 Y}7 i`~7 ^7 C7 G7 p ~7 CL7 ` |7 CL7 Gf7 HcN7 H7 Kmu7 CLt7 CL7 "dq 7 #mD 7 %i 57 'L+67 (K7 *CL7 +CL:7 -E;7 .ICx<7 /Wn?7 0Du7 3CL7 4CLB7 6F/C7 8|UD7 :EdWE7 d*H7 ?M0 L7 A^BM7 BYHN7 Cn >O7 Em P7 FjSk Q7 H@R7 IHkT7 KKJ^U7 LLCV7 MB)7 OCL7 PCLY7 Q@gvZ7 SD7 UCL7 VCL]7 }T ^7 BUZ7 CL7 CLa7 E]7 CL7 CLd7 C7 CLf7 ^7 CLh7 Hi7 T7 CLk7 Z l7 L m7 Ip n7 dLo7 n;p7 w q7 s{ r7 t= s7 Mt7 Lu7 D7 CL7 CLx7 B+y7 Lz7 G7 CL7 CL}7 EO~7 Lڨ7 L 7 B7 CL~7 CL7 H7 Xh 7 c7 d347 ^c37 CL 7 vW 7 CL7 CL 7 7 CL7 CL7 MY7 CL7 OP7 h 7 g 7 CL7 CL7 CL7 SF 7 h7 `7 \D7 J7 [7 \47 [!7 |f"7 ig#7 ]$7 Ij%7 M9T&7 Mp '7 KL(7 Hv 7 JCL*7 LZ,7 PCL-7 R@gv7 UCL7 VCL07 X~ 27 ZJ`37 [L47 \@n7 ^CL67 _]7 aCL87 cA 7 fCL:7 hF7 kCL<7 m@=7 n@7 qCL7 rCL@7 tJ˽A7 vJjoB7 wB7 yCL7 zCLE7 |I/jH7 ~AeI7 o 7 ixB 7 ixB 7 H7 HG7 M7 ixB 7 [~ 7 Hd7 jZ 7 |7 @ 7 P^7 G^7 K37 } 87 K&7 B 7 Qo7 M7 L7 IZ7 o^ 7 S7 C7 CL7 EŞ7 h7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 A37p7E>f7GR7OaH7Kq7CL7CL7CL7CL7CL7CL7CL7^7 CL7!CL7"CL7$N/}7%CL7(C7*CL7+CL7-wQ? 70CL71CL72CL73CL$75K2%76J&&79KT77Wr?7J>@7GA7B7CLD7i\ E7GbF7EDG7Z7k37od7i7UZ`7ae7AMZ7aD 7^j 7Hؒ7K !7CL 7CL7CL7a 7CL7yN 7q+ 7sU: 7xt 7]J^7y 7CL7CL7CL7CL7CL7F$7G%7~] 7p7]67@7n`* 7g 7o37H7W7A7@#7A޸ 7 Uc7 DĞ7 H27}T 7N 7? 72g 75CL76CL77CL7:S 7;U7K7J7ixB 7\ 7F[G7j 7}77@ 7Pe7G^7K87} 87L7B 7R -7M_7L7Is7o^ 7R7Eʘ7CL7E7g7CL7 CL7 CL7 CL7 CL7 CL7CL7CL7Cl7qg7DNf7K57OaH7O:7CL7CL7CL7CL7CL7 CL7!CL7"^7#CL7$CL7&CL7'NB7)CL7,C$7-CL7.CL70x 73CL7\CL7]CL7^CL$7aK6%7bJh&7dO(7gCL*7jL,7kJK7mCL.7oF7qCL7rCL7sCL7tCL37wn47yA67|L77}Qg87~J,97GK:7J;7L<<7H7CL>7Xk?7JMd@7GA7C7CLD7i E7G4F7EG7[g7i37nf7h7TT7`7A27h" 7e 7G7I!7CL 7CL7CL7` 7CL7y 7A27o+ 7x 7ZX 7yz 7CL7CL7CL7CL7CL7FǶ7F7~OI 7pڭ7]67z? 7ju 7g 7o37$H7%_7&A7) 7,A 7/U72 73Ib75|= 76R 79g 7:`ff7;Mi7<^7=CL7?CL7@CL7ACL7BCL7CCL7DCL7FCL7GCL7JL7KH 7LHN7MGw 7QL7TL}e7g}f7(l9 M7v N7CvO7B_P7G|SQ7f7NR7NS7o T7JV7pv_ X7GY7J![7Ҽ\7Z ^7e_7wr `7Aa7Ub7[qc7S >7CL7CL7CLg7s5. 7CL7CL7CL7CLm7G .n7~4o7iK 7CL7CL7CL7CL7CL7CL7CLw7H\x7Rpy7e(7OP{7tp |7Yۈ}7m0~7^7C/$7 G7 ~s ~7CL7`63 |7CL7GI7HR7Hv7Fiu7CLt7CL7d! 7!mȵ 7"i^6 57$L67%K١7'CL7PCL:7RF5;7SOa<7TQ?7UF57XCL7YCLB7[GC7\CPTD7]EYE7_YffF7`j*G7aRqH7bM L7c_0M7dZfN7eokO7hk. P7if/ Q7j@}BR7lL2T7mK"U7nL_V7oA7qCL7rCLY7t@Z7uEO7xCL7yCL]7{},l ^7|By7CL7CLa7Eѕ7CL7CLd7Bc7CLf7^7CLh7Hi7U7CLk7Z l7N m7Kf n7_Yo7nsVp7s{ q7r\) r7q s7M!t7Khu7D~F7CL7CLx7C y7Qb"z7GJ7CL7CL}7EZ~7Lŭ7L'7C7CL~7CL7H7Fe7a^f7c7]f7CL 7w3 7CL7CL 707CL7CL7M7CL7"OP7%h 7&^W 7)CL7*CL7+CL7-gW70N371F72C.g75J77J78O79P!7:If"7;y #7MNM&7?L'7@J(7AB7CCL*7F}7HCL-7J@n7MCL7NCL07Py@ 27RJ37SM47~ 7CL67]7CL87 O 7CL:7A:7CL<7vW =7x 7CL7CL@7NqA7JB7C$87CL7CLE7K82H7uuI7g3 7ixB 7ixB 7Gn7G7M^7ixB 7\Rp 7G47l"! 7} 7@ 7PI7G^7L7} 87Km7B 7DF-7L7M 7IpJ7o^ 7Rf7AY7CL7EY7g7CL7CL7CL7CL7CL7CL7CL7CL7B7 lg7 Bg7 PO\7 MR7 MR7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7DNB7FCL7HC7JCL7KCL7Mw| 7PCL7QCL7RCL7SCL$7VL %7WI&7YI˔7\CL*7_L,7`DV7bCL.7c}I 7fCL7gCL7hCL7iCL37ln]47nAH67qK|77rJ87sC397uG]:7wO;7xP<7yM7{CL>7~VZ?7JXV@7G'A7}h 7CLD7ii E7GdF7EG7W@7d7hy7c7T7^R-7@7` 7_ 7G:7IZ!7CL 7CL7CL7eд 7CL7x 7pY 7H 7x 7ի7yN 7CL7CL7CL7CL7CL7F7 F\7~z 7q7]67x 7k 7h 7p7H7V7 Ak7# 7&Ac 7)U7+E7,H7%7/|& 70XP 73`3 74^75J376^78CL79CL7:CL7;CL7CL7?CL7@CL7ACL7DLe7EH 7GHp;GlB;L;L}e7F}f7l M;%u_ N;'CoO;){. P;*GQ;-g5yR;.MS;/oXB T;0DV;1d X;3GNY;5J[;6|u\;7X ^;:c`_;;kr `;dAa;fZzb;hZc;iTE;kCL;lCL;mCLg;os+ ;qCL;rCL;tCL;uCLm;xF#n;{Po;|i_ ;~CL;CL;CL;CL;CL;CL;CLw;H>x;U)y;`k;OP{;ffg |;YF};k ~;^;B;Gp;zF^ ~;CL;`b |;CL;G;Ht;H;Jou;CLt;CL;a ;l ;h/ 5;K6;K;CL;CL:;FL;;N<;Q?;H;CL;CLB;HC;CPTD;E4E;Y4F;lǯG;LH;N-; L;\M;X N;lzO;gX P;dc Q;@`2R;IT;JU;LQV;@;CL;CLY;- Z;.E;1CL;2CL];4} ^;5E;8CL;;OPa;=F,;?CL;@CLd;BB};ECLf;F^;GCLh;IH i;JT;MCLk;PZ& l;QOu m;RL\) n;U^fo;Vnp;Xt q;Yo r;Zo s;[M%Et;\L>u;^Bk!;`CL;aCLx;cC y;dQ<%z;eGC;CL;CL};E~;Ly;L;C~;CL~;CL;Iw;Y}s ;d3;b;^{3;CL ;uZ ;CL;CL ;;CL;CL;M;CL;OP;g ;gDy ;CL;CL;CL;Ts ;F;};z;JyK;X;XQ;UB!;AS3";_ff#;P3$;I%;M*&;L';J(;B;CL*;iw;CL-;@;CL; CL0; r 2; Jc3;L4;|= ;CL6;];CL8;@;CL:;F:; CL<;"A2=;#~ ;&CL;'CL@;)J,A;+IxB;,A߻;.CL;/CLE;YHGH;ZFzNI;\`CC ;_ixB ;`ixB ;aF>K;bET;cJ|1;dixB ;e[- ;gE;hjww ;j|;k@ ;nPI;pG^;qL;t} 8;vK3;yn ;{zK;~I;M ;Iw;o^ ;R;;@;CL;E;f ;CL;CL;CL;CL;CL;CL;CL;CL;C$;vg;C{3;GR;N\);L;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NP;CL;C;CL;CL;v ;CL;CL;CL;CL$;K%;I&;LF;CL*;L-g,;Qs;CL.;Fi;!CL;"CL;#CL;$CL3;&o4;(AH6;+H7;,F38;-~L9;0G:;1I;;2JI<;3G4;5CL>;8Q?;9JU@;:GiA;=u ;?CLD;AhE^ E;CGɓF;DEG;ER:;Iet;JjY;Kdf;NTM;Oa;P@N;Rf(r ;SdM ;TG;UHzx!;XCL ;YCL;ZCL;d D ;CL;xe ;|R8 ;K;w ;P_ ;y#; ;CL;CL;CL;CL;CL;F;G;~s ;p;]6;w_ ;ii ;h7 ;of;HX;Z;@1;)b ;AH ;S;FG;Il;| ;Spi ;a ;_;L3;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;Lq;H7;H";GOE;L;L}e;af}f;jy M;Lvԑ N;NCO;OA|P;PGymQ;TexR;UMrS;Vqˈ T;WHNV;Xls X;ZGY;[Jd[;]R\;^X^;ad,q_;bs9 `;c@a;eTb;fVc;hQ;jCL;kCL;lCLg;ns< ;pCL;qCL;rCL;tCLm;wFn;z&go;{g ;}CL;~CL;CL;CL;CL;CL;CLw;E=qx;Qfy;_W ;OP{;p |;Y};m>~;^;Bf;Gp;| ~;CL;_ |;CL;G;H>b;H ;Q8u;CLt;CL;b^5 ;lƨ ;h 5;K6;L;CL;CL:;E;;M*<;Q?;G';CL;CLB;H@C;BD;EE;JF;czG;EH;NQ L;]&fM;YN;lLO; g P;!dp Q;"~' R;#GJT;%JpU;&L<V;): ;+CL;-CLY;.~# Z;/E;2CL;3CL];5~24 ^;6GJY;9CL;;CL;CL;CL; CL3;"n4;$AH6;'V7;(Fc38;){s39;,G+:;.L`;;/Jf<;0J,;1CL>;4P?;5J)@;6FAA;9~ ;b;fWRc;hSG;jCL;kCL;lCLg;ns ;CL;CL;CL;CLm;F n;~ɚo;f ;CL;CL;CL;CL;CL;CL;CLw;H\x;Oy;^;OP{;t |;\8~};l~;^;B;GW;~24 ~;CL;^ׄ |;CL;G;H;H;Gu;CLt;CL;d ;lv ;i 5; K 6; L); CL; CL:; F/;; Vj~<; Q?; GgR; CL; CLB; HUC; AưD; EE; NF; e(G; GGH; Nqi L; \HM; XN; mO; g3 P; e!4 Q; ~l^ R; GoT; "K>U; #KV; &)b ; )CL; *CLY; ,}f Z; -E]; /CL; 0CL]; 2}R ^; 3H]; 6CL; aOPa; bEi; dCL; eCLd; gA$Z; jCLf; k^; lCLh; nGi; oRB; rCLk; uZ l; vL m; wJ( n; z^o; {ozp; }tG q; ~l( r; m) s; M t; L u; Dg; CL; CLx; C{y; Obz; F; CL; CL}; E ~; L;; LH; BZ; CL~; CL; I; Y ; ^33; _; Y; CL ; vR ; CL; CL ; ϴy; CL; CL; K; CL; OP; gj ; dU ; CL; CL; CL; S[ ; E|; }; |Y; JC; T; V; V@!; l"; X #; L $; H%; L&; MV'; J(; A; CL*; X; CL-; )@; ,CL; -CL0; /~ 2; 1Je3; 2L{4; 3Gw; 5CL6; 6]; 7CL8; 9B8P; F; ACL<; C@=; D ; GCL; HCL@; JJIA; LI?B; MA5; OCL; PCLE; RHH; TB00I; Um? ; XixB ; YixB ; ZDX; [DnQ; \H; ]ixB ; ^[ ; _DS; `j"! ; c{; @ ; O; F1; K1C; } 8; K; m ; C; H8; M ; I; g+ ; Q'; A|; CL; E; fe; CL; CL; CL; CL; CL; CL; CL; CL; t6g; lg; CA; GR; Mn; K; CL; CL; CL; CL; CL; CL; CL; ^; CL; CL; CL; N8'; CL; Cɪ; CL; CL; up ; CL; CL; CL; CL$; Lp%; JH&; I; CL*; LN1,; TK; CL.; F; CL; CL; CL; CL3; n4; AH6; !F7; "F38; #Dy9; %FQ:; 'H;; (I)<; )FC3; +CL>; VR?; WI@; XFڊA; YEG; [CLD; ]{ E; ^GpxF; _EG; `S; dg8; ej3; fefg; iSd1; kc; l@0; mejU ; nc ; oE; pG!; sCL ; uCL; vCL; xc7 ; {CL; }wQ? ; ~wS ; Du; u ; ; x ; CL; CL; CL; CL; CL; F|; I; ~# ; o; ]33; vv ; i ; h/ ; r; H; U5; ~ ; ~ ; B\ ; T"; I; I^s; |oQ ; V ; c ; `s3; Ms3; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; LAq; H; Hm; G32; !L; $L}e; A}f;my M; Av N; DD?O; E}L P; FGQ; IfR; JMS; Ko; T; LDV; Md! X; PGUY; QI٦[; RĘ\; SUH^; VbI_; Wlq `; @a; Y >b; ]\c; W\); CL; CL; CLg; s% ; CL; CL; CL; CLm; F}=n; o; f ; CL; CL; CL; CL; CL; CL; CLw; Fx; Xy; _{; OP{; f |; Y}; j ~; ^; B; G; }X ~; CL; ]3 |; CL; Gx; H; Ho; Iu; CLt; CL; cS ; l< ; hT 5; L6; L%; CL; CL:; DY;; J7<; O;?; HG; CL; CLB; H C; /D; EwE; OBF; dQG; FBH; Om L; O M; JffN; ^O; e P; bA Q; )b R; GT; JU; KV; HN; JCL; KCLY; M| Z; NE; QCL; RCL]; T@A^; UJ+; XCL; [OPa; \E; ^CL; _CLd; aA; dCLf; e^; fCLh; hFi; iQ; lCLk; oZu l; pMff m; qJ3 n; t^o; uovp; wt33 q; xn r; yqaH s; zMMt; {Lu; |E-; ~CL; CLx; Dy; Mz; Fb; CL; CL}; D~; LbL; LH; D 9; CL~; CL; J,; YW ; _; _t; Y3; CL ; u65 ; CL; CL ; ɹF; CL; CL; K\W; CL; OP; i ; d ; CL; CL; CL; S?D ; X<; RP; R; Juu;S;Vn;VO\!;@";h3#;Ul$;H%;LO&;MC]';J(;Ao*;CL*; R;;"CL-;$@X;'CL;(CL0;*7 2;,J3;-L4;.Gdm;0CL6;1];2CL8;4A:%;7CL:;9F5;A+=;?~] ;BCL;CCL@;EI A;GIB;I@و;KCL;tCLE;vGgH;x*I;{[= ;~ixB ;ixB ;D;C4;Go;ixB ;\^ ;C:;j ;{;@ ;P;Fm;K();} 8;K?;m<8 ;E;H8;M ;I=;g+ ;P5;B;CL;E;f;CL;CL;CL;CL;CL;CL;CL;CL;t6g;u;D;3;Kk;O;Lf;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;N5D;CL;Ca;CL;CL;u ;CL;CL;CL;CL$;K%;I&; NH\; CL*;Lo,;E:;CL.;F!O;>CL;?CL;@CL;BCL3;Dn4;FAH6;IB7;JB38;K9;NF:;OI<;;PI<;QFvg;SCL>;VV4f?;WI@;XG jA;YE;[CLD;]n E;_GF;`EG;aVV4;dha;el;ff3;jS+;k`;l@BV;mb ;n` ;oDnQ;pET!;tCL ;uCL;vCL;c ;CL;w ;E;C;v ;N) ;x ;CL;CL;CL;CL;CL;FvA;I?C;~# ;o;]6;vR ;iމ ;h ;o3;HT;Y;@;@C;B5 ;RdG;wS ;Hm;|C ;SK ;d ;^;M;^;CL;CL; CL; CL; CL; CL;CL;CL;CL;L[;G;H`;G;L;L}e;`dn}f; l` M;:v N;GQ;idR;jN$S;k@nT;lHcV;nl X;pGY;qJ[;ro\;s[^;vd_;wsU `;yAa;{Yub;|X c;}S >;CL;CL;CLg;r ;CL;CL;CL;CLm;F&n;~ɚo;g/ ;CL;CL;CL;CL;CL;CL;CLw;F#x;R34y;[;OP{;p |;Z+};i]~;^;B;;G[;{H ~;CL;^b |;CL;G;H ;Hv!;Ou;CLt;CL;c ;l ;ij 5;KX6;L=;CL;CL:;F:;;Q<;\v?;GB;CL;CLB;IC;D D;ETE;WF;cG;DHH;0O&;M ';J3(;Ab;CL*;Ni?;CL-;@;CL; CL0;"~; 2;$Jĥ3;%L4;&GJY;(CL6;)];*CL8;,@4;/CL:;1B;\CL<;^~s =;_}f ;bCL;cCL@;eIiNA;gI"B;h@;jCL;lCLE;nFLH;p|ԢI;s[} ;uixB ;wixB ;xC;yC.;zG;{ixB ;|[ ;}C4;~j> ;{;EV;O;F];K;} 8;L;k ;P;H8;M ;I;g+ ;Lv;BM;CL;Ea;f ;CL;CL;CL;CL;CL;CL;CL;CL;tf;cVg;vf;GR;U;M;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NA;CL;C;CL;CL;v ;CL;CL;CL;CL$;K %;$I&;'NA;*CL*;,Lb<,;-Z? ;/CL.;1E;4CL;5CL;6CL;7CL3;:n4;;AH6;>F37;?I<8;@~&f9;CE:;ELS3;;FJl<;GJ;ICL>;KY]?;LIA@;MFA;NN9;PCLD;Rl8 E;TGdF;UEG;VYK;Xj;Zng;[g3;^S;_^G;@;cн ;b(\ ;DV;F7 !;CL ;CL;CL;^p ;CL;v ;r ;Cpi;t ;QK ;xWc ;CL;CL;CL;CL;CL;Fy;H;} ;o;]33;u ;h" ;h ;p;H;Zs;@A;: ;B\ ;S^;H;IR;| ;NO ;j ;as3;O3;^;CL;CL;CL;CL;CL;CL;CL;CL;CL; L9>; H;HK6;GL;L;L}e;c~c}f;l| M;Xv N;ZDAO;[CP;]GCQ;`d R;aMS;bA$ZT;cJuV;do X;fGY;gJ[;is\;jY^;mfQ_;nu `;pCa;q`\*b;rbc;tZR;vCL;wCL;xCLg;zs1 ;|CL;}CL;~CL;CLm;HGn;|o;f ;CL;CL;CL;CL;CL;CL;CLw;Ex;UBy;^;OP{;s# |;Z};kz~;^;C#;H@;x ~;CL;^S |;CL;Gˆ;Gn;Hd;Ixu;CLt;CL;cA ;l- ;i 5;K~6;LF;CL;CL:;D;;PƜ<;Qb"?;G;CL;CLB;HmC;ED;ElE; SuF;!aQG;"BH;#N7 L;$^YM;%ZLN;&mhO;)h6 P;*e!4 Q;+~@ R;,G} T;.JU;/L1V;2~' ;5CL;6CLY;8{ Z;9EZ;Ki;|Or;CLk;Z l;O{ m;K n;a@o;op;q\ q;l3 r;q3 s;M t;L^u;D;CL;CLx;D_y;R z;Fb;CL;CL};D~;L;;LPD;C;CL~;CL;J;p ;`;f3;]d;CL ;u ;CL;CL ;Ã;CL;CL;K82;CL;OP;i| ;[I ;CL;CL;CL;d;U<;Ovf;@3;JR;K\);R;U)!;i&g";X4#;H$;Hf%;L6&;Mn9';J3(; A|; CL*; I=;CL-;: ;CL;CL0;x 2;J 3;L4;DG<;FCL6;G];HCL8;J{w ;MCL:;OFL;RCL<;TzF^ =;Uu ;XCL;YCL@;[IA;]H9B;^@Y;aCL;bCLE;dDH;eeI;gf ;jixB ;kixB ;lC;mB;nF/;oixB ;p[~ ;qBw;ri ;u{ey;xEV;yP ;{F2$;|K;} 8;K;k ;Lv;JP;L;I;g+ ;Lv;E;CL;E;eg;CL;CL;CL;CL;CL;CL;CL;CL;vg;cVg;vf;Kk;OY;LY;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NGQ;CL;C; CL; CL;{ ;CL;CL;CL;CL$;L'%;JLu&;F4;CL*;LJ,;X";!CL.;#E;&CL;'CL;(CL;)CL3;+n4;-A6;0G37;1IY8;2B99;5Ev:;7J;;8J<;9H;:CL>;=Y<?;>I4@;?GA;@L};BCLD;DkQ E;FGkF;GEG>Y>ff>k3> ef> S8> a > >e >bs >C:>E*!>CL >CL>CL>c >CL>wl > B>"Cu>#u' >$L >%x# >(CL>)CL>*CL>,CL>-CL>0F\>1HЌ>4} >6o'>9]33>:ua >di >ehJ >hm>kH>lXJ>o7 >p' >sA >wS7>xB=e>yI>|{a >}U >e >`y>OS3>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L]>G=>H@T>Gd>L>L}e>$]q}f;l M>wt N>DO> P>G1Q>eR>M/S>q T>DV>c3 X>GƅY>I[>+\>W^>c!_>k: `>Dfa>^ b>ac>Y}q>CL>CL>CLg>s >CL>-CL>.CL>/CLm>2Hn>5C4o>6e#A >8CL>9CL>;CL>=CL>>CL>?CLw>BEǮx>CRy>DW>EOP{>Ie |>KYх}>Lj~>N^>QD@>RG>Uo,| ~>XCL>Z_& |>\CL>_G>`G>aHY>eI_eu>gCLt>CL>f >lv >i?} 5>Kz6>LQ>CL>CL:>DQN;>O}H<>Qɶ?>F5>CL>CLB>H/C>E sD>E&E>}fgF>JGG>oH>Nd L>PO\M>IN>]O>k) P>hE^ Q>~@ R>GJYT>JU>KV>7 >CL>CLY>{LS Z>E>CL>CL]>| ^>CSc>CL>CLa>ET>CL>CLd>@=>CLf>^>CLh>FEi>Nx>CLk> Z l> L m> J n>ds3o>op>o# q>k=q r>m) s>Lt>L u>E>CL>CLx>Dy>Ryz> Fi>#CL>$CL}>&DS~>(L2>)Lf%>*CfA>,CL~>-CL>/J;;p ;`;f3;]d;CL ;u ;CL;CL ;Ã;CL;CL;K82;CL;OP;i| ;[I ;CL;CL;CL;d;U<;Ovf;@3;JR;K\);R;U)!;i&g";X4#;H$;Hf%;L6&;Mn9';J3(; A|; CL*; I=;CL-;: ;CL;CL0;x 2;J 3;L4;DG<;FCL6;G];HCL8;J{w ;MCL:;OFL;RCL<;TzF^ =;Uu ;XCL;YCL@;[IA;]H9B;^@Y;aCL;bCLE;dDH;eeI;gf >ZixB >[ixB >\C/>]Bɀ>^G )>_ixB >`[- >bB>cj[ >e{ey>f@ >iP52>kF>>lK3>o} 8>qL>tm4 >uT>vI>xL>zIg>}g+ >~Oy>Eʘ>CL>E>fe>CL>CL>CL>CL>CL>CL>CL>CL>v3>k\>vf>GR>N >L>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N\>CL>C>CL>CL>|j >CL>CL>CL>CL$>K%>J&>Q>CL*>L{,>D>CL.>GgR>CL>CL>CL>CL3>n%4> AH6>#F 7>$F 8>%Bg9>'EV:>)H@;>*I4<>+F>-CL>>0[/?>1I@>2GA>3G>4CLD>6i\ E>8GxF>9EҥG>:[L>=ii>>n>?fg>BR[>Cb%>E@>Ff >GdM >HCB>IE!>LCL >MCL>NCL>Qbb >TCL>Vw_ >W~24 >XC>YuZ >[>x >CL>CL>CL>CL>CL>F>H>~ >of>]33>vR >j ^ >h >r >H[>T>@^>@C>B >Tw>z? >Hd>{H >P >d. >`I>OI>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>LvG>G=>H9>G Z>L>L}e>[rI }f>oG M>vn N>D O>B.P>G6Q>eR>M[S>!of T>"GV>#jU X>MG{Y>NJ[>Ot\>PZ6^>Sc_>Uq9 `>WC-\a>X` b>Yac>ZZ>\CL>]CL>^CLg>ar, >cCL>dCL>eCL>fCLm>iH!n>lio>mf  >oCL>qCL>rCL>sCL>tCL>uCL>vCLw>yE\)x>zNfy>|W\)>}OP{>m |>ZE]}>k~>^>D>GA>xe ~>CL>^r |>CL>G>G>Hez>Qvu>CLt>CL>fh >mi >i^ 5>K~6>LS>CL>CL:>DnQ;>N`<>R? ?>Gn>CL>CLB>HC>DD>E.SE>AF>FG>m{H>NZ L>RM>\ >N>nuO>of P>j Q>~@ R>JT>J]U>KV>Fv >CL>CLY>!{ Z>"E>%CL>&CL]>(| ^>)@>+CL>,CLa>.D>1CL>2CLd>4@b>7CLf>8^>9CLh>;F(i>?CLk>BZȵ l>CK# m>DI n>Gdo>HpUp>Jm{ q>Kg. r>Lh=q s>ML!t>NL>u>OD>yCL>zCLx>|DVy>}Q0z>Fq>CL>CL}>D|~>L8]>L>C[_>CL~>CL>JP;p ;`;f3;]d;CL ;u ;CL;CL ;Ã;CL;CL;K82;CL;OP;i| ;[I ;CL;CL;CL;d;U<;Ovf;@3;JR;K\);R;U)!;i&g";X4#;H$;Hf%;L6&;Mn9';J3(; A|; CL*; I=;CL-;: ;CL;CL0;x 2;J 3;L4;DG<;FCL6;G];HCL8;J{w ;MCL:;OFL;RCL<;TzF^ =;Uu ;XCL;YCL@;[IA;]H9B;^@Y;aCL;bCLE;dDH;eeI;gf >ixB >ixB >C.>C/>H[>ixB >]K >CL!>k[ >{ey>@ >O>F>>L>} 8>L>kh >Lv>I>L>I>g+ >Lv>BM>CL>E>f >CL>CL>CL>CL>CL>CL>CL>CL>t,>avg>t6g>MH>MR>O>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>NK>CL> Cɪ> CL> CL>xt >CL>CL>CL>CL$>L'%>@Iw&>BM>ECL*>HL,>IC=>KCL.>M}f >PCL>QCL>RCL>SCL3>UnG4>WA6>ZFY7>[A@8>\@Y9>_E&:>`I;>aK0<>bG>dCL>>gZ<?>hJ @>iGA>jBv>lCLD>nh E>pGF>qE5G>rY>uf>vjњ>xdf>{R>`z>? >eM >c7 >D>F(!>CL >CL>CL>aY >CL>vI >y#; >D- >u' >e8>w >CL>CL>CL>CL>CL>FE>HŨ>~ >o$k>]33>t >hJ >h >rɚ>HF>V`F>@V>^ > B@ >R>Ge>H>{/ >R >c >`>OP>^>CL>CL>CL>CL> CL>"CL>#CL>$CL>%CL>(LlA>*G>+H'>,G>/L>2L}e>p9}f>p( M>wu N>yDO>{EP>|GYQ>dR>MS>o T>I'V>na X>GY>J[>O\>Z{^>g*`_>tr `>B]a>Ub>Vc>R>CL>CL>CLg>r; >CL>CL>CL>CLm>G}n>4o>e$ >CL>CL>CL>CL>CL>CL>CLw>D8Rx>Oy>X>OP{>qӠ |>[}>k~>^>Cx>G@e>} ~>CL>_| |>CL>G>G>Hd>G6u>CLt>CL>gq >mm >i 5>Kl6>LT>CL>CL:> DQN;> K!G<>4Rk?>5H*>8CL>9CLB>:HC>;CGD>=E E>>@F>@EfG>AfH>BN= L>CRBM>DKN>E_(O>Ho P>Iju Q>J@R>LKrT>MJ}U>NK1V>QFv >SCL>TCLY>Vzu Z>WE>ZCL>[CL]>]}f ^>^@>aCL>bCLa>dD4K>gCL>hCLd>j@۶>mCLf>n^>oCLh>F!Oi>L>CLk>Z l>Ku m>J. n>do>oRp>lf q>hff r>iG s>Let>Ku>AU>CL>CLx>C{y>Pưz>FxC>CL>CL}>D|~>LMT>L>C*>CL~>CL>Jf>X. >_>`>Zg>CL >vW >CL>CL >Ҷ8$>CL>CL>L> CL> OP> j > fB > CL> CL> CL> Sf > I$> Bɚ> @<> J > RaH> Vu> U{!> n3"> Z&g#> E9$> H%> L&> !L>'> "J(> #AD> %CL*> 'IL\> *CL-> ,@> /CL> 0CL0> 27 2> 4K 3> 5M4> 6Gw> `CL6> a]> bCL8> d > gCL:> i@۶> lCL<> n~l^ => o~24 > rCL> sCL@> uIA> wHB> yA> {CL> |CLE> ~GH> @)lI> Z > ixB > ixB > C> C.> G> ixB > [ > C4> j[ > {ey> EV> Pv> F!> L> } 8> JP> lR > Ξ> I '> L> I> g+ > LL> B<> CL> Ert> e7&> CL> CL> CL> CL> CL> CL> CL> CL> lg> avg> w3> GR> Ns4> M> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> (N4> *CL> ,C> .CL> /CL> 1up > 4CL> 5CL> 6CL> 7CL$> 9L %> :I&> =H> @CL*> CLG,> DTne> ECL.> HN> JCL> KCL> LCL> MCL3> Pn4> RAH6> TH7> UDf8> VC 9> YD:> [HI;> \I3<> ]Eɚ> _CL>> bT?> cJ2@> G;A> x0 > CLD> h6 E> GLF> EG> S> dh> h> c[3> Rd> ]\>  > aD > ` > D> E!> CL > CL> CL> dq > CL> w > H]> E> u > Oi > w3 > CL> CL> CL> CL> CL> FG> H> } > n > ]33> v4 > j > h& > mf> Hէ> X"> A"> @3> B > Ss> z > HH> { > T$ > dU > `3> OS3> ^> CL> CL> CL> CL> CL> CL> CL> !CL> "CL> %L> &G> 'H> (G B> TL> UL}e> _}f>q M> rv N> tD'O> uE=P> wG`Q> zdR> {N%S> |of T> }JV> ~p=T X> GxY> J"[> +\> YP[^> c_> u9 `> A5a> nRb> rc> m*> CL> CL> CLg> rZ > CL> CL> CL> CLm> GMvn> go> e > CL> CL> CL> CL> CL> CL> CLw> BRx> M4y> V4> OP{> q\) |> Zcf}> l~> ^> Cbk> G];> w_ ~> CL> _ |> CL> G$> HR> H[X> Lou> CLt> CL> "g% > #m > %i 5> 'K6> (L`i> *CL> +CL:> -DV;> .FM<> /R?> 0FR> 3CL> 4CLB> 6H/C> 7BZ`D> 8DkE> :~=qF> ;DW G> =N L> >`zM> ?\ >N> @n4O> Cn P> Di& Q> E@;R> GKLT> HJU> IKV> J@8:> LCL> MCLY> O{ Z> PDV> SCL> TCL]> V|C ^> W@Q> CL> CLa> D> CL> CLd> A:%> CLf> ^> CLh> F!Oi> S> CLk> Z l> J. m> HǮ n> d3o> oRp> l q> eǮ r> g\ s> Let> Khu> DaC> CL> CLx> D;y> Olz> F> CL> CL}> D~> L^> L> BD> CL~> CL> J+> X > ]3> `0> ZQ> CL > tY > CL> CL > > CL> CL> L> CL> OP> hb > dx > CL> CL> CL> Sj > Q> F> D> J,|> PW > R> RJ>!> l"> \y#> J$> H%> M-z&> Lg'> Jz(> B7> CL*> HH > JCL-> L' > OCL> PCL0> R~ 2> TK3> UL4> VH<> XCL6> Z]> [CL8> ]K > `CL:> bF > eCL<> g@4=> h O > kCL> lCL@> nJA> pHɓB> qA> sCL> tCLE> vH9QH> x~I> {aX > ~ixB > ixB > C4> C=> G> ixB > ]K > CZ> j"! > {ey> EV> P'T> F X> K3> } 8> K)> l > F)> Hac> M > I> g+ > Lv> BU> CL> E> fe> CL> CL> CL> CL> CL> CL> CL> CL> avg> `C3> sl> L> MR> P> CL> CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N=5>CL>C> CL>!CL>#tM >&CL>'CL>(CL>)CL$>,Kh%>-J7{&>/RCe>2CL*>5L%,>6I>8CL.>:A>=CL>>CL>?CL3>Bn4>DAH6>GLY7>HE8>I@c39>KDk:>uH ;>vJg<>wE>yCL>>|TW?>}J%E@>~FAA>}: >CLD>n E>GF>EG>T>fi>k>df>R$">_p>y >cx >ax >D_>FE!>CL >CL>CL>_ >CL>w% >u >E>t >>w >CL>CL>CL>CL>CL>F>I>}u% >n>]33>w% >i >i >p33>HԾ>T>@> >B >T(>Hf>H>{w >M > cn > ^> M)> ^>CL>CL>CL>CL>CL>CL>=CL>>CL>?CL>BL~z>CGV>EH>FG Z>IL>LL}e>^H}f> "p M>jvQ N>lD3XO>mBE,P>nGGtQ>qdR>rMS>so,| T>tEBV>veC X>GY>J[>\>[g^>e `_>mG `>AZ#a>Ub>Vc>Q>CL>CL>CLg>rb >CL>CL>CL>CLm>G *n> o>f4 >CL>CL>CL>CL>CL>CL>CLw>A >x>My>Y>OP{>hwx |>Z}>k>~>^>C#>Gx>} ~> CL> ^ |>CL>G>G>H^>QGu>CLt>CL>f, >m >i 5>!K6>"Ld>$CL>%CL:>'D;>(PFf<>)R?>*FR>-CL>.CLB>0HC>2@3ID>4DE>6F>7@G>8aH>9N L>;Q&fM>=mxRO>?f 4 P>hc!( Q>j@4R>kHdT>mJssU>nKu1V>p@A>sCL>tCLY>v{ Z>wE>zCL>{CL]>}{w ^>~JZ>CL>CLa>DV>CL>CLd>A2>CLf>^>CLh>F(i>VK~>CLk>Z l>KW m>J n>e33o>os&p>lL q>gk r>j s>Lt>Ku>D*>CL>CLx>DJy>MCz>F>CL>CL}>D~>L_>L>A:>CL~>CL>I/>XN >]>]>W&g>CL >vI >CL>CL >">CL>CL>M">CL>OP>g[~ >c >CL>CL>CL>2S@ >3N0>4P>5H[3>8JV>:Tz>;X#>=pg">?Y#>@Dٚ$>AH^%>BM-z&>CL'>DJJ(>G}T >JCL*>Mkϻ>OCL->Qr >SCL>TCL0>V~# 2>XK*3>ZMs4>[H>]CL6>^]>_CL8>a@}B>dCL:>fFE>iCL<>k@`2=>~ >CL>CL@>J3A>HܪB>A>CL>CLE>H/H>|AI>e >ixB >ixB >C4>C/>H9Q>ixB >[- >CL!>j> >{ey>EV>Pv>Es>Km>} 8>K3>me >Qf >G>L>I>g+ >Lv>BM>CL>E>f>CL>CL>CL>CL>CL>CL>CL>CL> avg> avg> uf> Kc>MR>N>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N5> CL>#CH>%CL>&CL>'w% >*CL>+CL>,CL>-CL$>0Ll%>1I&>\K@>^CL*>aLR,>bD>dCL.>f@R>hCL>iCL>jCL>kCL3>nn4>pAH6>s|Ff7>tCvg8>uE09>wD:>yK;>zJY<>{Iٚ>}CL>>Y@?>J @>FA>E5>CLD>q E>GJF>E-G>Y(>fC3>k>dg>R>c>VZ >eT >c >DJ>EZ!>CL >CL>CL>c[ >CL>w >@>EV>t >L >w| >CL>CL>CL>CL>CL>F/>IA>}f >ny>]33>wS >jD >i! >p3>H_>Y~>' >~ >BE >&R>>(Cl>)I%>,{LS >-U >0e >1`>2OL>4^>5CL>6CL>7CL>8CL>9CL>;CL>=CL>>CL>ALu>CGn>DH>EG r>HL>IL}e>_}f>o9 M>w4 N>D4O>EP>G3Q>cwSR>MŇS>oK T>HcMV>k֤ X>G{Y>J K[>{ \>X^>f_>rUU `>Aa>S(b>Sc>TE>CL>CL>CLg>r >CL>CL>CL>CLm>Fϙn> o>f  >CL>CL>CL>CL>CL>CL>CLw>Bzx>Ly>Y(>OP{>n |>\E]}>k~>^>B>G(>{ ~>CL> ]d |> CL>G>G>HcN>G u>CLt>CL>g J >nV >i 5>K6>LaS>CL> CL:>"EG;>#O@<>$SY?>%E*>PCL>QCLB>SH2C>TC(D>UDE>WhF>X{ G>YYH>ZN L>[UxRM>\R\N>^^YO>`g P>ah Q>b O R>c T>eJU>fKoV>i^ >lCL>mCLY>o{/9 Z>pD>sCL>tCL]>v{ ^>xL>zCL>{CLa>}G )>CL>CLd>@.>CLf>^>CLh>F/i>U>CLk>Zk l>K{ m>J = n>c3o>oNp>mG q>g r>jL s>Lt>Ku>C>CL>CLx>DBy>Qb"z>F>CL>CL}>D~>LU>Lci>A,>CL~>CL>IE>X >\>_Ng>X>CL >tY >CL>CL >>CL>CL>M%>CL> OP>#f7 >$a2 >'CL>(CL>)CL>,S_ >-RY>.K>/I33>2Jq>4Q>5S^>6UJ>!>7r&f">8U#>9FFg$>:H%>;M1 &>>J(>@zu >CCL*>Fy>HCL->J~24 >MCL>NCL0>P}T 2>RK<3>SMM4>|Hy>~CL6>]>CL8>@>CL:>FR>CL<>@=>~ >CL>CL@>JA>HB>ALN>CL>CLE>HH>F^LI>Y8 >ixB >ixB >Ci(>C>G>ixB >[~ >C/>i >{>EV>Pv>E>K>} 8>K>mv >O>EL>L>IЍ>g+ >Db>E+>CL>E״>gV>CL>CL>CL>CL>CL>CL>CL>CL>avg>avg>s3>GR>M>KH> CL> CL> CL> CL>CL>CL>CL>^>CL>CL>CL>N+>CL>DC1>ECL>FCL>H|& >KCL>LCL>MCL>NCL$>QK%>RI&>TKW>WCL*>ZL ,>[\>]CL.>`Tz>aCL>bCL>cCL>dCL3>gn4>iAH6>l~f7>m}8>nu9>qDT:>sFl;>tG<>uC`>wCL>>yYW?>{J @>|FA>~: >CLD>i E>GLF>EEG>YJ>d>i`>b3>R C>c->! >`׬ >_ >D>E@!>CL >CL>CL>b6 >CL>vK >B>EV[>tU >~>wQ? >CL>CL>CL>CL>CL>FT>Ii>} >n}h> ]33>v- >jD >i/ >m>H>W)>| >~# > B+ >#S=>$E>%HG>({/9 >*Q3 >-e >/`y>0O>1^>2CL>4CL>5CL>6CL>7CL>8CL>:CL>;CL>?Ln>@G>AH>CG>FL>GL}e>T}f>p MB&uZU NB(D;OB*FY#PB+G+4QB.bHRB/MfSB0o TB1IpXVB3m XB5GJYB6I^[B7By\B8[D^B;bؾ_Bes `Bf@TaBhUbBiVٚcBjQs4BlCLBmCLBnCLgBqrR BsCLBtCLBuCLBvCLmByFnB|~oB~e, BCLBCLBCLBCLBCLBCLBCLwBAxBNLyBUBOP{Bp |B[}Bl~~B^BBÂBGfBz? ~BCLB]j |BCLBGyBGBHOBJuBCLtBCLBhH Bn7L Bi 5BKř6BLZ BCLBCL:BEZ;BLBqBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN'BCLBC<BCLBCLB@gvBCLBCLBCLBCL$BK%BJ&BO"BCL*BLt,BFBCL.B@BCLB CLB!CLB"CL3B$nu4B&AH6B)}27B*sl8B+u9B.C:B/Hg;B0F3B6Z?B7J@B8F>AB;~# B=CLDB?n% EBAGFBBEGBCZBFifBGo0BHffBKQBLcBM2 BOdp BPc!( BQBnBRD!BUCL BVCLBWCLBZ^; BCLBv BvW BC>Bt BEtBw4 BCLBCLBCLBCLBCLBF'BI}B} BnVOB]33Bv( Bi[ Bi>? BrBHBV B~s Br BB^ BRCBHBIB{ BN BgH B`fBOVfB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBLBGBGeBGLBLBL}eBA }fBqx MB!u NB#DAOBLFcPBMGBbQBPb4RBQM"SBR@TBSJJeVBUo XBWGUYBXJc[BY.\BZYx^B]bY_B^u `BaB6aBbS{bBcU#cBdUqBfCLBgCLBhCLgBjq BmCLBnCLBoCLBpCLmBsGInBv~ٚoBwf ByCLB{CLB|CLB}CLB~CLBCLBCLwBExBQLyBT.BOP{Bs@ |BZ}BjT~B^BCBGj5Byl ~BCLB\E |BCLBGlKBHBH:BP>uBCLtBCLBgP Bn1' BjM 5BK6BLY BCLBCL:BE ;BHPCLfB?^B@CLhBBF>KiBCS&BFCLkBIZh lBJI mBKHR nBNd33oBOnpByg8R qBzd) rB{eR sB}LtB~KϜuBEBCLBCLxBD|yBSRzBFqBCLBCL}BDV~BLIBLJBC}yBCL~BCLBIBXm BZgBZfBU.fBCL BAOBCLBCL BBCLBCLBM?BCLBOPBr Bhm BCLBCLBCLBS BI3BC8BB3BJqBSO\BYBU!BZ"BF#Brf$BH"%BMA&BL'BJhJ(BB}BCL*B`mBCL-B@BCLBCL0B: 2BK[3BM34BH5B CL6B ]B CL8B BCL:BBFBCLBqBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN&BCLBCyBCLBCLBzu BCLBCLBCLBCL$BL%B Jj&B IBCL*BL#,BFpKBCL.BAҩBCLBCLBCLBCL3Bn@4B!A6B#A6f7B$n8B%wٙ9B(Cy:B*Fg;B+G3B0Yڌ?B1J#s@B2GAB3D'B5CLDB7x EB9GȩFB:EȬGB;YB?g^fB@l`BAe@BlQxBm`QBn@Bpc[ Bqa>' Br BsA!BvCL BwCLBxCLBzejU B~CLBx# BHHBC.Bvܹ BM[ Bw BCLBCLBCLBCLBCLBFBIDB|= BnUB]6Bv Bi BiL BoBH4BYE1B@ޝB@dBB^ BQ-Bt BGoBzu BW Bgٚ B_fBOPB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBLBGBGBFnBLBL}eB_F}fBq MBDBQOB@APBAGVQBDcURBEMSBFA$ZTBGEVBHdW XBKGYBLJ[BM\BNX^BQd ~_BRl `BTCaBVUbBWW޹cBXQ\BZCLB[CLB\CLgB^q B`CLBbCLBcCLBdCLmBgHOnBj~ٚoBkg׷ BmCLBnCLBCLBCLBCLBCLBCLwBELxBS8RyBRqBOP{BgDD |BZ}Bh~B^BC!BGBqˈ ~BCLB`> |BCLBG{BH&}BHdBHjuBCLtBCLBd Bmfg Bj > 5BKІ6BLeBCLBCL:BEZ;BNCL@B ALT>AB BJ6BB CAqXB ECLB FCLEB HH$HB J~IB Mo B PEVB QEVB REVB TEVB UEVB V@B WEVB XEVB YEB [{`B \@vB _OB aEB bLB } 8B K B oK B ΞB EjiB M B IB g+ B [{B DB CLB Eb/B hB CLB CLB CLB CLB CLB CLB CLB CLB c|B YgB lgB pB x>B qB CLB CLB CLB CLB CLB CLB CLB ^B CLB CLB CLB NB CLB CB CLB CLB ~ B CLB CLB CLB CL$B L<%B J&&B K8B CL*B Ln,B R B CL.B DnQB CLB CLB CLB CL3B n4B A6B zٚ7B o&f8B u9B "C6T:B $I4;B %GgB *UH?B +J=@B TGIdAB UEB WCLDB Y EB [GFB \F&GB ]Tl<B `dqB aiB bcB eQCB f^\kB g@B hbA B ia[o B k|& B l !B oCL B pCLB qCLB sa< B vCLB yy B zz B {D4KB |xH B ~^B wl B CLB CLB CLB CLB CLB FhB IB |= B n9)B ]6B w3 B iމ B i[~ B o3B H B UB AB @SB B+ B SRB C7B IV}B z B N  B h33 B `FfB OB ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB LB G^B GB FyB LB L}eB ~\ }fBn: MB 8v`4 NB :D/OB ;D PB =GyQB @bpRB AMSB Bph TB CI'VB Dme XB FGYB GJ[B I\B JX?^B Me _B Nt `B PD$aB QTkbB RU{cB TR:B VCLB WCLB CLgB qxq B CLB CLB CLB CLmB HSnB ~ٚoB g» B CLB CLB CLB CLB CLB CLB CLwB BxB N yB T\)B OP{B q\ |B Yt}B k!~B ^B DcxB G|B q+ ~B CLB a |B CLB GB H=B Hn*B JSuB CLtB CLB dR B l- B i 5B Kr6B LB CLB CL:B E*;B OSBCLBCLBCLBCLBCLBCLBCLBCLBeBd BuBMRBVRBOxRBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNBCLBCBCLBCLB~] BCLBCLBCLBCL$BLq%BJ,&BNBCL*B Ly,B JIBCL.BE9[BCLBCLBBRQ?BSJQ @BTGhJABW{ BYCLDB[ua EB]HFB^FxGB_P.cBb]BcciBdZxBgQBh_"rBiABkg Bld Bm@BnB5!BqCL BrCLBsCLBua BCLBy] BAHBDBxP B Bwl BCLBCLBCLBCLBCLBGBIB| Bn]kB]:By#; BjD Bij BrBI'BTJgBBmOB{ BB8R BR)Bq BHBz BQ BeUU B`3B OB ^B CLB CLBCLBCLBCLBOPBOPBCLBCLBLBGFBGBFB"L3B%L3}eB`}fB m MBjw:a NBlD.ZOBnDMPBoGQBrbRBsN;0SBto TBuJnVBvp=T XByGYBzK K[B{*n\B|YO^BcE_BtUU `BB!aBis4bBmcBjBCLBCLBCLgBqp BCLBCLBCLBCLmBH nBoBh BCLBCLBCLBCLBCLBCLBCLwBEzxBP8RyBRaHBOP{Bo |BY}Bj~B^BD UBG6NBw ~BCLBbD |BCLBG BGBHvBO#uBCLtBCLBb BkP BiX 5BK66BLBCLBCL:BEW;BMKG{OB@i/3 PBAg QBBB)RBDMMTBEJzUBFK"HVBGAIfBICLBJCLYBL|5! ZBMD|BPCLBQCL]BS}u% ^BT~l^ BVOPBXCLaBZC'B\OPB^CLdB`AҩBcCLfBd^BeCLhBgFxCiBhPzcBkCLkBZ lBIz mBHp nB\oBmQpBe qB`k rB_ sBLtBL uBDiBCLBCLxBC'yBMfzBGBCLBCL}BD~BLqBLsBCBOP~BCLBJBUBX BXhBXBSBCL B| BCLBCL BȵBCLBCLBMLBCLBOPBp BjT BCLBCLBCLBSq BQ>gBJ#3B GfB JBG!HBJ4BJu!BZ"BF#Bq3$BIy^%BN&BLP'BJ(B| BCL*BCQB"CL-B$A+B'CLB(CL0B*r 2B,K3B-L4B.HB0CL6B1]B3CL8B]@۶B`CL:BbDBdCLBYN5?BZJ<@B[GH|AB^o BCLDBkd EBGFBF^AGBMBZ0B]3BWBPB`BAmB` B^- BCBE!BCL BCLBCLBe!4 BCLB{w BETBEBzr BK Bw BCLBCLBCLBCLBCLBGuBI#B}T BnB]:Bz Bju BiX Bp`BI-BXlEBB5B@BBW BQBxP BDBz BS' B hf B `B QB ^BCLBCLBCLBCLBCLBOPBOPBCLBCLBL:BGB GB!FHB$L3B%L3}eB^}fBk- MBkw4 NBmD'OBnAPBoF,QBrbRBsNSBtof TBuE1VBwf' XByGzYBzK =[B{G\B|TS^Bci_Bn `BA%aBMbBOJ>cBLBCLBCLBCLgBqI BCLBCLBCLBCLmBGnBs4oBh| BCLBCLBCLBCLBCLBCLBCLwB@)xBMyBRBOP{Bh |BZ }Bjj~B^BCxBG<BxH ~BOPBa) |BCLBG~BFBHTBJuBCLtBCLB[ Bj B!gk 5B#Ll6B$L{B&CLB'CL:B)E;B*JͤJnNB?VOBAj PBBhS QBCBRBENTBFJUBGK9VBIABJCLBKCLYBM|= ZBNC:BQCLBRCL]B|{ ^B}CpiBOPBCLaBEZBOPBCLdBABCLfB^BCLhBFiBOBCLkBZ lBGB mBE=q nBZoBlpBa\ qBZQ rB[aH sBL=tBLY uBDi=BOPBCLxBBEyBP&zBFݱBCLBCL}BD~BLrBLBDcpBOP~BCLBIwBX_ BWBXvfBRBCL BM<BCLBCL B6 BCLBCLBMBCLBOPBsU: Bk BCLBCLBCLBS BR33B KLB HB JBT&fB[)BY>!BSٚ"BF #Bo$BIr%BM&BLR'BJ(B}: BFCL*BHFBKCL-BMABPCLBQCL0BS 2BUK3BVME4BWI fBYCL6BZ]B[CL8B]@.B`CL:BbDJBeCLCLB?CLBBOPBDCL3BFoy4FA6F{7F wg8F i`9F Bz{:FD4;FEFNe?FJ@FG AFBFOPDFw EFG{FFFGFM"F[vfF!_3F"YF%OF&bF'AF(cx F)aЊ F*@F,B !F/CL F0CLF1CLF3aD F6CLF8{/ F9u65 F;EFdzr FewhFfw4 FiCLFjCLFkCLFmCLFnCLFqGFrI8Fu},l Fwn!Fz]=qF{z[ F}i[ F~i FnlFIRXFW9hFB FCFB5 FRXF{ FB\Fz FM Fg; F`3FPF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMEFGFG'FFFL3FL3}eFeR}fBd{ MFwt NFD OFGDuPFFNQFaq\RFNISFouq TFHשVF,l XF.G+YF/K33[F0G\F1\a^F4d}_F6s `F7AZ#aF9KT{bF:L\cF;J >F=CLF>CLF?CLgFBqX FDCLFECLFFCLFGCLmFJG'lnFM~S4oFNivTF@JPFCB FDBZFLAFNLFOJPFRo^ FTPXFVE,FXCLF[E:Fg,*FCLFCLFCLFCLFCLFCLFCLFCLF^gFPgFavgFkHFCQF{FCLFCLFCLFCLFCLFCLFCLF^FCLFCLFCLFNFCLFCFCLFCLF{ FCLFCLFCLFOP$FL%FJk&FQFCL*FLU{,FOHFCL.FI=FCLFCLFOPFCL3FoF4FA6Ft37Fkg8Fk9FBFN?FI@FGkAF FF OPDF wS EFGҪFFF GFLFYfF]>gFWFOFbPFBtFa F_ F|R8 F ~Ü !F#CL FLCLFMCLFOe FRCLFU{ FVH@FWE]FXy FYLv FZwQ? F]CLF^CLF`CLFaCLFbCLFeFFfIVFi|& FknkFo]:Fpz FqiLl Fri FupLFxIvFyX4:FzC F|CēF~Bk FQAF{ F@۶Fz FT Fg F`\FQ3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMTFGUFGFF-FL3FL3}eFY__?}fFa MFw- NFDOFI(PFF7QF_RFN(SFo; TFIDVF n XF"F|YF#KPg[F$\F%WX^F)d_F*t `F+AaF-{zbF.}4cF/y{F1CLF2CLF4CLgF6pG F8CLF9CLF:CLF;CLmF>F#nFAoFChU FECLFFCLFGCLFHCLFICLFJCLFKCLwFNDxFxP8RyFySFzOP{F}o |FZ}Fk~F^FC!jFG%Fy@ ~FOPF` |FCLFGFHFHeFOWuFCLtFCLFXY FgM Ff& 5FLZ6FL=FCLFCL:FF;FO?FYDFZOP~F\CLF^G&"FaX# FbPgFcNfFdG\FfCL FhGgRFkCLFlCL FmFnCLFoCLFrM$FtCLFwOPFzt/ F{f FCLFCLFCLFS FV3FN>gFM@FJFSFTHFS4!FWf"FDٚ#Fn$FJO%FN&FLu]'FJ{(FC FCL*Fg?FCL-F@`2FCLFCL0F~z 2FK3FMF4FHsFCL6F]FCL8F@FCL:FDBFCLFPD?FI7@FF>AFHRFOPDFy1 EFGdFFFGFLXFXњF\FW4F N*F `iF4A?F5b(\ F6` F7x# F8z !F;CL FCLF@d D FCCLFE{ FFy1 FGDFHx FIL FKwna FNCLFOCLFPCLFQCLFRCLFUG]FWI_ FZ|& F\nmF_]=qF`yN Fah Fbi FeofFiICFjYFkCY1FlDNhFnB^ FQ'F{ F@Fz FQB2 Fh F`3FQ9F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFM+FGҥFGyFFαFL3FL3}eFI_0}fFa{+ MF w NF DmOF JcPF F1QF ^*4RF O?wSF p TF I `VF m XF F 8YF K[F G\F Zka^F e?>_F u9 `F @aF }bF BcF y#F "CLF #CLF $CLgF &p F (CLF *CLF +CLF ,CLmF /FnF 2~goF 3g/ F 5CLF 6CLF 7CLF aCLF bCLF cCLF dCLwF g|xF hQyF iTLF jOP{F no |F p[}F qo~F s^F vBF wG"F zv ~F }OPF _ |F CLF G+F HF HF KKuF CLtF CLF XbN F f F f- 5F L6F L-gF CLF CL:F E;F O RF MTF JUF KNVF CF OPF CLYF ' ZF C=F OPF CL]F y ^F VF OPF CLaF MzF OPF CLdF HkF OPfF ^F CLhF GXiF (L7F *OPkF +Z? lF ,|QmF -y\)nF .D)oF 1lspF 3f qF 4a rF 5e{ sF 7MEtF 8M*uF 9E F :OPF AeyF ?MzF @H F BOPF DCL}F FFL~F HLF ILTF JD>F KOP~F MCLF OGF QW F RLlF SIPF TD@F VCL F XETF [CLF \CL F ]F _CLF `CLF bMF CLF OPF t F f, F CLF CLF CLF S F zS4F uɚF sF JZF L4F NF MG!F Y@"F Af#F m3$F J%F N+&F L'F J}(F CF CL*F _~F CL-F @gvF CLF CL0F ~@ 2F K83F MY?4F HF CL6F ]F CL8F @bF CL:F DJF CLF R?F I+@F FAF KEF OPDF { EF GɓFF FGF M`F WxF [gF U<F #Ma<F %]%fF &AF 'c{ F (a F )u ~ F *w_ !F -CL F .CLF 0CLF 2`x F 5CLF 7zT F 8DF 9DXF :xWc F F CLF CLF CLgF p w F CLF CLF CLF CLmF IF?nF L~ٚoF Mf F OCLF PCLF QCLF SCLF TCLF UCLF VCLwF Y@xF ZNfyF [S8RF \OP{F _oDD |F bZn }F cnA~F e^F hBÂF iF F l| ~F nOPF r^6 |F tCLF wGlF xHO F yHtF |IbuF CLtF CLF X F fX F f9X 5F LU6F L F CLF CL:F E;F M%FJ&FKFCL*FL@,FQh FOP.FHVFCLFCLFOPFCL3Fo]4FA6Fx7FnS38Fu9F@Ne:Fyf;F|FS@?FI@FFAFMFOPDF{ EFGFFFOGF NţF X^fF \3FWFLU F_FAhFb Fa Frn Fu' !FCL FCLFCLF fq F#CLF%y F&{LS F'DF(x# F)Np F+w F.CLF/CLF0CLF1CLF2CLF5GF6IYF:|j FCLF?CLFACLFBCLFCCLFDCLwFGB>xFHOyFIVFJOP{FMo |FP\}FQks~FS^FVBrFWG;FZzcz ~F\OPF`_ |FbCLFeGFfHFgHFjNguFCLtFCLF[ 8 Ffp Ff^6 5FK6FK.FCLFCL:FE;FJF>QRF@CLFCE:FDe7&FEOPFGCLFHCLFICLFJCLFKCLFLCLFNCLFQXFRPgFSlC3FTk(FU~FVkHFXCLFYCLFZCLF[CLF\CLF^CLF_CLF^FCLFCLFCLFN dFCLFCFCLFCLFy{ FCLFCLFCLFOP$FL%FJ&FJB.FCL*FLP,FR9FOP.FI[FCLFCLFOPFCL3Foze4FA6Fz,7Fny8Fv 9F~:Fx4;FylFTI?FIp@FFAFOFOPDFz[ EFGzFFF GFO$FVfFZ3FUPFKFb"FAhFd D Fat Fq Fs !FCL F CLF CLF aj FCLFy FD|FDFw FN= Fw FCLFCLFCLFCLFCLF"GF$I`F'| FQn}hFT]:FUxP FVhJ FWj6 F[ofF^IlF_YF`CFaCClFcB5 FfQFiy FkK Flz? FmM" Fph Fq`LFrQ9Fs^FuCLFvCLFwCLFxCLFyCLF|OPF~OPFCLFCLFM@FG}FGyFFAFLFL}eF`7}fFdm MFv NFD"OFG;0PFEɝQFZRFO+SFo TFHVFmt< XFEYFJ[Fl\FUa^Fd=j_Fu `F@aF{ bF#cFy\FCLFCLFCLgFo+ FCLFCLF CLF!CLmF$F{nnF'~goF(f F*CLF+CLF-CLF.CLF/CLF0CLF1CLwF4QxF5RQyF6Q=qF8OP{F;n |F=[f}F>m%~F@^FCBpFDG,6FGy@Y ~FJOPFM] |FOCLFRGFSHGF|H|FM$quFCLtFCLF` FgM Fg`B 5FK{6FKFCLFCL:FE;FHujOFn PFm QFDRFMqTFJUFK_SVFG;FOPFCLYF@ZFByFOPFCL]FxH ^FZFOPFCLaFPFOPFCLdFF7 FOPfF^FCLhFFLiFU-lFOPkFYL lFkHmFd\)nFB+oFipF` qF[ rF\R sFMtFMJuFE#FOPF CLxF AHyF Q>zF I :FOPFCL}FGg~FLTFLoFE`FOP~FCLFDEGFFWl FGEFIBFJC.gFLCL FNE9[FPCLFRCL FS^FTCLFUCLFWJFZCLF\OPF_r F`b FcCLFdCLFeCLFhSL FisFjnS3Fkl&fFnJuuFpHFqLBFrKH!FtY@"FuC#Fvcf$FwJy%FxN6 &FyLCD'FzJ}(F{BF}CL*FeFCL-F' FCLFCL0F{ 2FKvn3FME/4FGGtFOP6F]FCL8FBFCL:FCFCLjF?~FAkHFCCLFDCLFECLFFCLFGCLJCLJCLJ^JCLJ CLJ CLJ N J CLJCJCLJCLJx JCLJCLJCLJOP$JKo%JJ&J!H]J$CL*J&LQ,J'RJ(OP.J)IJ+CLJ,CLJ/OPJ1CL3J4o]D4J5A6J8zS47J9s38J:m9Je}I:Jgxy;JhzJkT&?JlIWN@JmFqAJnQJoOPDJq| EJsG4FJtF GJuPJxWJy[JzUhJ}JJ~be#JAJbb J` JpY Jr]\ !JCL JCLJCLJb JCLJx J| JCJvh. JMu Jw| JCLJCLJCLJCLJCLJGJIg5J| JnmJ]:Jwna Jh JjS Jo JIh2JYJDJBJB33 JR/Jy@Y J Jz? JR Jh J``JQ9J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJMJ,GMJ-GzJ/FJ2LJ3L}eJ^1}fFjSf MJPwC NJRD OJTFPJUE]QJXZ9RJYOSJZp$ TJ[GVJ\k֤ XJ^E{YJ`JH[Ja\JbZ^Jebh_Jfu `Jg@uaJ}W bJ@ cJyJCLJCLJCLgJoek JCLJCLJCLJCLmJFdnJ~4oJeM9 JCLJCLJCLJCLJCLJCLJCLwJv34xJNzyJRBJOP{Jl |J[}Jl~J^JB}JGYJw| ~JOPJ[ |JCLJGJHJHJGOuJCLtJCLJc Jh Jh1' 5J K6J KvjJ CLJ CL:JE;JFOJSJR!JY"JA#Jjf$J J%J!N6&J#L#'J$Jݔ(J%Bp6J'CL*J*[eJ,CL-J.~ J0CLJ1CL0J3zr 2J5Kn93J6M,4J8FJ9OP6J;]JBMJACL:JCC:JFCLJ~ JkHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNJCLJCJCLJCLJwt J CLJ CLJ CLJOP$JK%JJ&JFJCL*JL1,JQfJOP.JIJCLJCLJOPJ!CL3JLoa4JNA6JQ|7JRt8JSp9JU|h3:JWvFf;JXygJ[T?J\I8U@J]FعAJ^R~J_OPDJb~ EJdGFJeF GJfPJhUAJjYJkSJnJ4*Joa[Jp@Jqc_ JraY Jso Juq9 !JxCL JyCLJzCLJ|c JCLJwS JE@JC JuZ JK%p Jw| JCLJCLJCLJCLJCLJGJIaJ|j JnrJ]6Jv( Jh" Jjq7 Jm3JIBJWI9JDl$JBk!JB. JRPJxo J@Jz JRJ JiD J`vfJR\J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLJGJG}xJFLJ"LJ#L}eJ\e.}fJm MJAwJ NJCD iOJDFPJEEjQJHYfRJIOSJKo۔ TJLG1VJMjc XJOEasYJxJ[JySq\JzX^J~aXO_Ju `J@uaJ~ǯbJcJz8RJCLJCLJCLgJo JCLJCLJCLJCLmJFW<nJoJc JCLJCLJCLJCLJCLJCLJCLwJ{xJKyJQ>JOP{Jkwx |J\}Jm'~J^JBJGVJv- ~JOPJZq |JCLJGJHJHiJM uJCLtJCLJfD Jk+ Ji1 5JK`6JKKJCLJCL:JEO;JEFJtHGJ] HJMu LJ] MJY4NJE.OJ@oXB PJAo QJBE@RJDM[TJEJ͔UJFK-6VJGG8JHOPJJCLYJL@ZJMBFJOOPJQCL]JSvt ^JUX JVOPJXCLaJ[O$J\OPJ^CLdJ_EJaOPfJc^JdCLhJfEliJhS'JiOPkJkX lJlfmJm_znJnCLoJqgpJs^ qJtUf rJuZp sJvLAtJwMwuJxDEJyOPJ{CLxJ@}ByJLzJIwJOPJCL}JGJY~JLbJLJE9JOP~JCLJCJV) JB3JCPJ|3JCL JDuJCLJCL JňXJCLJCLJHJCLJOPJqes J_ JCLJCLJCLJS JKJI)JHJ JZJ S4J SJ Qc!Je"JAg#Jn$JJ%JN%&JM/'JJL(J|` JCL*JplJCL-J!~@ J$CLJ%CL0J'zcz 2J)K[3J*M4J,FOJ-OP6J/]J0CL8J2C/J5CL:J7CJ:CLJOT?JPI@JQFAJRST(JSOPDJU^ EJWGLFJXFGJYPJ\VpJ][gJ^TgJaIJb_aJd@eJea Jf`x Jgn0 JhpPL !JkCL JlCLJnCLJ_޿ JCLJw4 Jy{ JBɀJt J Jwna JCLJCLJCLJCLJCLJGJIDJ|` Jn:J]6Jv Ji\ Jjr Jns3JIZJU@JDwJAJB0 JR/Jxe J@&Jz$ JMiP Ji@ J_ٚJ Q3J ^J CLJ CLJ CLJ CLJ CLJ OPJ OPJ CLJ CLJ LJ GJ GpJ FJ LJ L}eJ[}fJp^K MJ 7v}K NJ bD EOJ cFiPJ dEZQJ gXRJ hO-SJ io TJ jFVJ ki* XJ mE YJ oI[J pĘ\J q^y^J tcV}_J uvr `J v@zBaJ y|bJ z~=qcJ {x\J }CLJ ~CLJ CLgJ n J CLJ CLJ CLJ CLmJ FN0nJ ~,oJ b/ J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ vpxJ JHyJ TJ OP{J j"# |J \}J p~J ^J B{CJ G.`J )b ~J OPJ W[o |J CLJ GIJ HdJ H$RJ O}HuJ CLtJ CLJ g J k7L J i?} 5J K6J KJ CLJ CL:J EZ;J DlF7J ?OPJ ACLYJ B@ZJ CB8PJ EOPJ GCL]J Iv ^J KWJ LOPJ NCLaJ QNJ ROPJ TCLdJ VEJ XOPfJ Z^J [CLhJ ]DZiJ ^R2J `OPkJ aX lJ b`mJ c\nJ BaHoJ gpJ [k qJ T rJ Xu sJ L4tJ MwXuJ DJ OPJ CLxJ )b yJ K zJ HHJ OPJ CL}J GQ~J LKJ LJ EJ OP~J CLJ CDJ VC J B9J CTJ }6fJ CL J DQNJ CLJ CL J oJ CLJ CLJ HJ CLJ OPJ q+ J ^A J CLJ CLJ CLJ Rm J t3J nJ lJ J;J NJ YJ P!J [f"J EL#J pg$J Jb%J NG&J Lڄ'J Jx(J }h J CL*J ~XJ CL-J } J CLJ CL0J yz 2J K23J Lڄ4J !FJ #OP6J %]J &CL8J (C6]J +CL:J UCpiJ XCLJ EUd?J FH;@J GFƏAJ HTCJ IOPDJ J@KEJ KGFJ LFpGJ MQ4J OTJ QX4J RRљJ UIl_J V_)EJ W@'J c J a>' J mYk J o !J CL J CLJ CLJ e[ J CLJ vv J DJ B=J tM J `J wB J CLJ CLJ CLJ CLJ CLJ GJ I+KJ |` J n$J ]6J v J i J j J qJ HJ R4J D`J @+J B0 J SJ wS J @JeJ z J V: J m J aJ R\J ^J CLJ CLJ CLJ CLJ CLJ OPJ OPJ CLJ CLJ LttJ GJ GqJ FJ LJ L}eJ Kj}fJ r- MJ Uu_ NJ WDOJ XF[PJ YDԒQJ \XlRJ ^PCSJ _o; TJ `FPVJ ahp XJ bDxYJ dI*q[J e+\J f\3^J jc4_J kvG `J l@faJ n{LbJ o|{cJ pw4J rCLJ sCLJ uCLgJ wn J yCLJ zCLJ {CLJ |CLmJ FKynJ ~oJ a^ J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ w >xJ LyJ RaHJ OP{J iDD |J \c}J p&~J ^J ByJ GJ ~ ~J OPJ VP |J CLJ Ge J HJ G:J FuJ CLtJ CLJ hɺ J k J h 5J KE6J JJ CLJ CL:JD;JEi]J?CL8JAC=JDCL:JFC'JICLJ3UL ?J4H@J5FAJ6TcJ7OPDJ8@^EJ9GKFJ:FGJ;Q4J?T4JhX3JiRPJlH2Jma,Jn Jpa>' Jq_d Jrl8 Jsn !JvCL JwCLJxCLJ{ax J~CLJv4 J{ JBEJt!N JiJw% JCLJCLJCLJCLJCLJGJI J|oQ Jn J]33Ju} JhJ Jj JrJHJTޭJEJ@JB JSJw| J@uJzcz JO1 Jg J`JR\J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJL,~JGJGlBJFJLJL}eJrE}fJ sP MJDu NJFDmOJGFHPJIDrQJLWRJMPeSJNof TJOFPVJPh XJQDoYJSHu[JUC\JV[#^JYb_JZvc `J[@paJ]{bJ^}fgcJ`wfgJbCLJcCLJdCLgJfnq JhCLJiCLJjCLJCLmJF?nJ~oJa4 JCLJCLJCLJCLJCLJCLJCLwJu=qxJO34yJQ\)JOP{Jh |J]}Jo~J^JByJGNJc ~JOPJY!( |JCLJG,JH JGܤJK _uJCLtJCLJiF JkR Jh/ 5JK6JJ{JCLJCL:JD̘;JP[2 Jk3JeJcJJCJO{JTHJU!Jg33"JP#JH$JJ%JN&JLi'JJ^K(JAJCL*J^I!JCL-J~@ JCLJCL0J%xP 2J'Jg3J(Ltt4J)FRJ*OP6J,]J-CL8J/C J2CL:J4CZJ7CLCL@JAM"AJBJ'BJCCJECLJGCLEJICHJJCIJKk JNixB JOixB JPC>JQEJREJSixB JTixB JUEdJVEJYzJJZ@ J]OJ_EJLJr JM JEVJRۭJJM JLJo^ JM9@JFbJCLJEJblJOPJCLJCLJCLJCLJCLJCLJCLJ`9JNgJlgJ@pJAJCpJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNIJCLJCaJCLJCLJv4 JCLJCLJCLJOP$JKu%JJBU&JKJCL*JJ,JRMJOP.JIUJ CLJ CLJOPJCL3Jo,=4JA6J{7JwS38Ju9Jx:Jt;Jv4J"U>?J#H@J$FAJ%TqFJ&OPDJ'@˹EJPGFJQF%!GJRQ,JUT3JVYJWRљJ[HrkJ\cmJ]h! J^a>' J_^ J`l3 JanB !JdCL JfCLJgCLJi^ JlCLJnua JoGJpCJrsl JtU2aJwwl JzCLJ{CLJ|CLJ}CLJ~CLJGJIsJ|` Jn)J]33Ju ~ JhS JjJ JrٚJH]JUJE6uJ~ JBO\ JRŋJw_ J@JzT JPe Jh J`JQfJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJKwJGMJGbKJFJLJL}eJtI }fJtEw MJ6v NJ8DmOJ9EPJ:D\QJ=WRJ>P'9SJ?q TJAE VJBga XJCDmYJEH/[JF.\JG[^JJb_JLvq `JM@faJO|\bJP}(cJQxJSCLJ|CLJ}CLgJnc JCLJCLJCLJCLmJF-nJ~S4oJ`M9 JCLJCLJCLJCLJCLJCLJCLwJtxJR34yJPJOP{Jh"# |J]8~}JnP~J^JBk]JGHTJr ~JOPJV |JCLJG$JGJGJQuJCLtJCLJkj Jl Ji 5JKІ6JJJCLJCL:JDV;JOu ^JG\JHOPJJCLaJMOJNOPJPCLdJREѕJTOPfJV^JWCLhJYCBiJZOeJ\OPkJ]Vڇ lJ^\\mJ_WnJ`AfoJcf3pJe\ qJfVff rJgZ = sJhLtJiMIuJjCJkOPJmCLxJo} yJpOzJqHJsOPJuCL}JwGQ~JyLaJzKJ{EJ}OP~JCLJB?JV~ JAJCFfJyJCL JCJCLJCL JLJCLJCLJH]JCLJOPJpmy J\ JCLJCLJCLJR۔ JufJoɚJl3JJ^jJPGJV0JU !Js3"JT#JB&f$JJy%JN&JL'JJhJ(JA"JCL*J Xa~JCL-J}; JCLJCL0Jxo 2JJ3JL=4JF JOP6J]JCL8J!CJ$CL:J&CpJ)CLNU?NH@NFANUNNOPDN@ENGFNF*GNQ9NU3NYNTNHHNbN~) N`x N_LK Nk) Nm !NCL NCLNCLNd NCLNt Nxo NCμNr NMqL Nvܹ NCLNCLNCLN,CLN-CLN0GN1I*cN4|` N6n(N9]/N:t[ NKNOPfN^NCLhNCiNNVANOPkNV, lN^GmNYHnNAHoNepN\ qNTR rNWk sNLStNM@uNC}yNOPNCLxNz$ yNMPzNHdN OPN"CL}N$GJY~N&KqN'KUN(EN)OP~N+CLN-AN/U N0@N1BN3wN5CL N7C:N9CLN:CL N<N=CLN>CLN@HmNBCLNEOPNHo NI[I NLCLNMCLNNCLNQR NRRNSGpNTDNfNWJVNYH\NZLN[Lp!N\4"NFFg#Nhٙ$NJ%NN&NL'NJc(N@iNCL*NTNCL-N|= NCLNCL0Nw 2NJc&3NL 4NENOP6N]NCL8NB NCL:NCNCLNU?NH@NFUANUpNOPDN@۶ENGFNF(GNQ5NUNZngNS3NH8Nb[N"{ N$mܼN(]/N)s N*gL N+j N.pN1GN2WvN4E{SN7}h N:Bk N=QN@w NA@NBz NCN NGiL NH`33NIQNJ^NKCLNLCLNNCLNOCLNxCLN{OPN|OPN~CLNCLNK_NGtNGDgNFsINLNL}eN[}fNnx!+ MNt NNC(ONEXPNDVbQNWRNP.ZSNAHTNDVNeQ XNDaYNGxO[N\NX^Na8_Nv `NCֺaN~bN~zcNz >NCLNCLNCLgNm2 NCLNCLNCLNCLmNHwnN}oN^+ NCLNCLNCLNCLNCLNCLN CLwN wGxN KyNQNOP{Ne |N_ }Np ~N@]NCC2NDGNG~ ~NIOPNMS! |NOCLNRG cNSGNTGNWH:uNZCLtN[CLN]nɺ N^l N_i& 5NbKƂ6NcJNeCLNfCL:NgDJ;NiKCLNARh NBC3NChNla33NoJZNqOJ>NrSffNsR!NtR"Nu@Ff#Nvcf$NwJ%NxN&NzL:'N{JJM(N|@HN~CL*NPNCL-N|oQ NCLNCL0Nv 2NJ1 3NKظ4NE~NOP6N]NCL8NBENCL:NC.NCLS NixB Ni NB NFRNE9[NixB NixB NENENzJN@ NPNE:NLNr NM NEVNP eN~4NM NM No^ NMNCyaNCLN EN `N OPN5CLN6CLN7CLN8CLN:CLN;CLNNU&?NH@NFoANUQNOPDNA_ENGFNF& GNQqNSNX NRFfNGfNc!N}& N`b N_ Nj Nl !NCL NCLNCLNa NCLNs NtU N BN qV N P N vv N CLN CLN CLN CLN CLN G)~N IFN { N mN ]/N s T N fTQ N j N rٚN !G9N "T/N #EN '~ N *B{ N -QF*N 0x+ N 1AN 2y N 3Spi N 6iw N ``N aRN b^N cCLN dCLN eCLN gCLN hCLN kOPN lOPN nCLN oCLN sK?N tG5N uG4N vFiUN yLN |L}eN Fr}fN]y2 MN t NN C*ON E{]PN CMQN VaRN P@.SN p- TN DAVN dѦ XN D^YN G/[N ӳ2\N _@^N ep_N v `N CaN ~>bN ~cN z(N CLN CLN CLgN m N CLN CLN CLN CLmN HWnN }oN ^ N CLN CLN CLN CLN CLN CLN CLwN zfgxN NyN (ON )OP{N ,e"# |N .]N}N 0s(~N 2]N 5CN 6GnN 9~ ~N ;OPN >U+ |N ACLN DFN EGjN FGrN INAuN KCLtN MCLN OoV N Plv N Qip 5N SKƂ6N TJN VCLN WCL:N YD4K;N ZI CLN ?CLN @CLN ANN CCLN FCܪN HCLN ICLN Ks N MCLN NCLN OCLN ROP$N SK@%N TJ \&N WPN CL*N I[,N RN OP.N IRN CLN CLN OPN CL3N o-4N A36N kg7N i`8N i9N u:N sg;N tYN Uq?N H{@N F[AN VN OPDN AgEN GFN F#PGN PN UN XN RN G:N ]YN } N ].B N [- N jD N lo !N CL N CLN CLN b N CLN s8 N JPN B5N q9 N N vCLtN?CLNBp:^ NCm( NDi< 5NFKř6NGJ|JNICLNJCL:NtDB;NuHujHNLS LNsMNqW NNAٚONsc PNup QNFRRNK82TNHUNIVNFWNOPNCLYNc ZNA+NOPNCL]Nq ^NZNOPNCLaNOA NOPNCLdNGQNOPfN^NCLhNC'iNVg NOPkNVc@ lN`zmN]QnNBFfoNdȒpN\z qNU rNYQ sNLdtNM&.uNBNOPNCLxNy1 yNP&zNH#NOPNCL}NG-a~NKXDNJNEchNOP~NCLN@=NU" N|gNN t,N CL N CpiNCLNCL NN NKCLNLCLNMCLNPQK NQpfNRifNTfNVJfNXPHNYUaHN[T!N\e@"N]J3#N^^33$N_J%N`Mܝ&NaLP'NbJk(Nc@xNeCL*NhMRNjCL-Nl}h NoCLNpCL0Nru 2NtIA3NuKmP4NvE3NwOP6N]NCL8NBNCL:NCScNCLKNDYNixB NixB NF>KNENzJN@ NPNE:NK4Nr NM NB NPWN}zN M N M N o^ NMNByNCLNE1NaNNOPNCLNCLNCLNCLNCLNCLN CLN#^3N$X<N%avgN'kHN(pN)kHN+CLN,CLN-CLN.CLN/CLN0CLN1CLN3]N4CLN5CLN6CLN7MN9CLNCLN?CLNisU: NkCLNlCLNmCLNpOP$NqK6%NrIV&NuNNwCL*NzI<,N{R N|OP.N}JHNCLNCLNOPNCL3No.4NA36Nsl7Nng8Nu`9NuF:Nq4;Nw NUJ?NHf@NFANVNOPDNAvmENG|JFNF GNP#NT9NX$NR3NFN_N| N`' N^- Ni& Nl3 !NCL NCLNCLN_ NCLNr NsU: NBNp< NVNv NCLNCLNCLNCLNCLNG=jNI2N{ NlܳN]/NrE Ne Nj Nm3N2G!RN3RN4F:N7)b N:B0 N=Q(N@x NBAeNCy@ NDN(z NGjU NH`lNIR3NJ^NLCLNMCLNNCLNOCLNPCLNSOPNUOPNWCLNXCLN[JN\G N^GN_FGNbL{NcL{}eNc}fNB{i MNsj NNCxONDPNCQNVRNP`ESNo TND}VNdm XNDlTYNF[Ny\N`h^Nd_Nv `NA%aN34bNpcNzNCLNCLNCLgNm1 NCLNCLNCLNCLmNG^nN}loN]/ NCLNCLNCLNCLNCLNCLN CLwN @xNNǮyNNLNOP{Nd |N_\?}NoW~N]NCP]NG$N ~ ~N"OPN%Q |N'CLN+FN,G*N-GP%N.FuN0CLtN1CLN\p N]lQ N^i 5N`Kİ6NaJfyNcCLNdCL:NfDG;NgGCLN?CLNBQ NCoNDhNEgNHJ^jNJN=qNKSffNLT!NMV3"NNM#NO~$NPJz%NQM&NRL'NSIq(NT@XNVCL*NYLN[CL-N]@NCLNCL0Nv 2NI3NK34NENOP6N]NCL8NBNCL:NC=NCLANHFBNCNCLNCLENAKHN@FIN`~w NixB NjD NBcNF[GNDVNixB NixB NFiNENzJN@ NP'TNDNK+Nr NM NB NLvN}ȈNM NM No^ NMNB3NCLN EjN aNN OPNCLNCLNCLNCLNCLNCLNCLN_\NXNcVgNkHNANkHN CLN!CLN"CLN#CLN$CLN%CLN&CLN']NQCLNRCLNSCLNTNNVCLNYCܪN[CLN\OPN_sU: NbCLNcCLNdCLNgOP$NhK%o%NiI&NkLhNnCL*NqH,NrRNsOP.NtJNvCLNwCLNyOPN{CL3N~n4NA36N~_7Nyg8Nk9Nt:Nr;NvyNU!?NHU@NFy^ANUNOPDNAAENGqbFNFGNPcNTnfNX)NQ4NFN`ݴN|X N\ N[g Ni| Nk !NCL NCLNCLNb NCLNr NG`NBNp| NLӮ Nu} NCLNCLNCLNCLNCLNGCNI,3N{in NlN]/Nr]\ Ne NjJ N!n|N$F!N%Vz)N'SN*U N-B@ N0QeN3yN N4A N5yz N6T N:jD N;`#3NCLN?CLNACLNBCLNCCLNFOPNGOPNICLNKCLNNJnNOGFNPGNQF4N|L{N~L{}eN^c}fN\{ MNu NNC3ONDPNC]QNV{RNPUSNo TNDCVNcv XNDcSYNFf[N\N]^Nd_Nv `NAZ#aN~bN~cNyNCLNCLNCLgNm NCLNCLNCLNCLmNGnN~oN\ NCLNCLNCLNCLNCLNCLNCLwN@qxNMyNOBNOP{Nd |N^4}N t~N ]NC"NG=N~24 ~NOPNVS |NCLNEFzNFFfNGGFNKKYuNMCLtNNCLNPq NQm( NSij 5NUK 6NVJVNXCLNYCL:N[C;N\EMRN?R NAQz!NB]"NCB9#NDB$NEJ%NFM&NGL{'RqI(Rq@EORqCL*Rq KFRq CL-Rq@4RqCLRqCL0Rqv 2RqIwS3RqJ4RqERRqOP6Rq]RqCL8RqBɀRq"CL:Rq$CURq'CLRqkHRqCLRqCLRqCLRqCLRqCLRqCLRqCLRq]RqCLRqCLRqCLRqNRqCLRqCҶRqCLRqCLRqsU: RqCLRqCLRqCLRqOP$RqK%RqI&RqJMRqCL*RqHa,RqSDPRqOP.RqJ RqCLRqCLRqOPRq,CL3Rq/n@4Rq0A36Rq3D\7Rq4|38Rq5Af9Rq8t`:Rq:p9;Rq;sfgRq>UV?Rq?HB@Rq@FnxARqAVRqBOPDRqCAERqDGi4FRqEF(GRqFP2RqHTRqIWRqKRFfRqNFRqObVRqP|Z RqQ` RqR^y RqSiLl RqTkw !RqXCL RqYCLRqZCLRq\^; Rq_CLRqar]\ Rqby RqcBRqepPL RqgPRqu6 RqCLRqCLRqCLRqCLRqCLRqG7RqIRq{in RqlRq]/Rqr@3 Rqe>t RqjJ RqoRqFORqScGRqfcjRqA=RqB5 RqR$Rqy RqAZRqyN RqM\ Rqjn Rq`fRqRRq^RqCLRqCLRqCLRqCLRqCLRqOPRqOPRqCLRqCLRqJ;RqGRqGRqF'JRqL{RqL{}eRqgE}fNP|> MRq&sM NRq(CORq)D1PRq*C*QRq-VXRRq.PCSRqXouq TRqYCVRqZc­ XRq[DcSYRq]F#[Rq^ܣ\Rq_]r^Rqcd_Rqdw9 `RqeA DaRqgBbRqh~cRqizuRqkCLRqlCLRqnCLgRqqmU RqsCLRqtCLRquCLRqvCLmRqyFnRq| oRq~\4 RqCLRqCLRqCLRqCLRqCLRqCLRqCLwRq@qxRqO#yRqPffRqOP{Rqcfg |Rq^]}Rqp~Rq]RqBRqGKRq~24 ~RqOPRqVb |RqCLRqFzRqF/RqGBbRqPuRqCLtRqCLRqqdZ Rqm" Rqi 5RqKQ6RqJFRqCLRqCL:RqC;RqDlCLaRqAMRqBOPRqDCLdRqFF:RqHOPfRqJ^RqKCLhRqMB+iRqNTpRqPOPkRqQU3 lRqR]mRqS[nRqTBHoRqWdpRqY\=q qRqZT rRq[W sRqL>tRqM'uRqAʫRqOPRqCLxRqz yRqJzRqGRqOPRqCL}RqFm~RqJtRqI RqE1bRqOP~RqCLRq@RqTB Rq}fRq@fRqvPRqCL RqC6]RqCLRqCL RqGRqCLRqCLRqGeRqCLRqOPRqof RqYJ RqCLRqCLRqCLRqQ RqjgRqe\RqbRqJuuRqS >RqW.RqW !RqWf"RqB&f#Rqk$RqJ%RqMJ&RqL'RqJ(Rq@RqCL*RqJRqCL-Rq} Rq CLRq CL0Rq vK 2RqIH3RqJ4RqETRqOP6Rq]RqCL8RqBFRqCL:RqB RqCLRqCLRqCLRq!OPRq#CL3Rq&nf4Rq'A36Rq*w37Rq+j38Rq,m339Rq/s:Rq1t;Rq2u4Rq5U~?Rq6H3@Rq7FfLARq8VRq9OPDRq:@ERq;G_4FRqVRqRd? XRqSDYYRqUF[RqVܣ\RqXZl^Rq[c*P_Rq\w9 `Rq]@TaRq_~zbRq`~\*cRqayRqcCLRqeCLRqfCLgRqimC RqkCLRqlCLRqmCLRqnCLmRqqFnRqu|oRqv\^ RqxCLRqyCLRqzCLRq{CLRqCLRqCLRqCLwRqv{xRqKfyRqOqRqOP{RqdDD |Rq_}Rqr0~Rq]RqBRqG/Rq~ ~RqOPRqR |RqCLRqF]RqF?RqG2sRqJuRqCLtRqCLRqqo Rql Rqi 5RqK 6RqJH|RqCLRqCL:RqC4;RqONRqE\ORqvW PRqvI QRq FRRq!JTRq#GURq$H̗VRq%EJRq&OPRq(CLYRq*|j ZRq+@RRq-OPRq/CL]Rq1ph ^Rq3WRq4OPRq6CLaRq9MfRq:OPRqETRq@OPfRqB^RqCCLhRqmBUZiRqnSRqpOPkRqqT^ lRqr`mRqs] nRqtB3oRqwcOpRqy]u qRqzW33 rRq{X = sRq|L1 tRq}MuRq~ARqOPRqCLxRqz[ yRqI7zRqGXRqOPRqCL}RqFݱ~RqJRqI8RqE"'RqOP~RqCLRq@RqS RqARqCARqz6fRqCL RqC'RqCLRqCL RqhRqCLRqCLRqGoRqCLRqOPRqof RqX RqCLRqCLRqCLRqQ΀ Rqr`Rql3Rqi3RqJmRqIfRqNERqM!Rqa3"RqD#RqyY$RqJ%RqM݆&RqL'RqI(Rq@RqCL*RqJ+RqCL-Rq} RqCLRqCL0Rqu} 2RqI3Rq J4Rq DRq OP6Rq5]Rq6CL8Rq8B?Rq;CL:Rq=BRq@CLRq +U7/?Rq ,H"@Rq -F\OARq .VKRq /OPDRq 0AERq 1GR{FRq 2F0GRq 3PRq 6U3Rq 7YpRq `SIRq dG]IRq ed) Rq f{% Rq g`q. Rq h^SI Rq ih Rq jj !Rq nCL Rq oCLRq pCLRq r`' Rq uCLRq wrz Rq xA$ZRq yCi(Rq {o Rq |T2Rq }u65 Rq CLRq CLRq CLRq CLRq CLRq G,6Rq I(Rq {w Rq lRq ]/Rq q Rq e Rq j Rq r3Rq F8 Rq TRq r`QRq EZRq B Rq QIRq zF^ Rq ARq y Rq ON Rq j Rq `fRq R\Rq ^Rq CLRq CLRq CLRq CLRq CLRq OPRq OPRq CLRq CLRq I-Rq GRq FRq F3Rq L{Rq L{}eRq |H}fRq}; MRq 9uwo NRq ;CORq Rq VCLRq WCLRq YCLgRq \m Rq ^CLRq _CLRq `CLRq aCLmRq FvnRq }4oRq \^ Rq CLRq CLRq CLRq CLRq CLRq CLRq CLwRq txRq MHyRq Q\Rq OP{Rq d"# |Rq ^}Rq q~Rq ]Rq BoRq G"Rq ~l^ ~Rq OPRq Uv |Rq CLRq F@Rq FRq GH.Rq HujuRq CLtRq CLRq q' Rq mr Rq i 5Rq K6Rq JRq CLRq CL:Rq Ca;Rq ORq U{?Rq H@Rq FU ARq WlrRq OPDRq AERq GQFRq HF GRq IPVRq MUgRq NY3Rq OSRq RG2Rq ScRq T{r Rq U]+ Rq W\5 Rq Xhq7 Rq Yj !Rq \CL Rq ]CLRq ^CLRq `_LK Rq dCLRq fqJ Rq g| z Rq hCpiRq ip Rq kxpRq nu ~ Rq qCLRq sCLRq tCLRq uCLRq vCLRq yG.Rq zI#Rq }{= Rq lRq ],`Rq q Rq e Rq jr Rq rɚRq F Rq TRq rޖRq FRq B Rq Q1Rq z$ Rq BERq xo Rq QP Rq j Rq `S3Rq RyRq ^Rq CLRq CLRq CLRq CLRq CLRq OPRq OPRq CLRq CLRq IRq G}xRq FRq FRq L{Rq L{}eRq kVr}fRq }7 MRq*s? NRq,CʅORq.DhPRq/CQRq2V/%RRq3P'9SRq4oI TRq5DCVRq6d XRq8DaYRq:E[Rq;6\RqOPRq@CLaRqCOARqDOPRqFCLdRqHERqIOPfRqK^RqMCLhRqOA:iRqPQvRqROPkRqST~ lRqTimRqUfnRqVBoRqYb8hpRq[[ qRq\T rRq]W sRq^LtRq_MuRq`ARqaOPRqcCLxRqe|} yRqfNzRqgG-aRqiOPRqkCL}RqmF~RqoJMRqpI;*RqqE RqsOP~RquCLRqwA:%RqS]S RqL<RqNRqH!RqCL RqC'RqCLRqCL RqRqCLRqCLRqGuRqCLRqOPRqouq RqX RqCLRqCLRqCLRqQ Rq~əRqlRq_fRqJ4*RqRRqURqU:!Rqjf"Rq@3#Rqefg$RqJ%RqM&RqKϜ'RqI(Rq@RqCL*RqIwRqCL-Rq @Rq CLRqCL0Rqw 2RqH3RqJD4RqD2RqOP6Rq]RqCL8RqBcRqCL:RqB+Rq"CLRq9U1?Rq:H @Rq;FLARqAERq?GWFRq@F GRqAPw:RqEURqFY4RqGT4RqJG]IRqKbyRqL{r RqM\U RqOZ RqPhE^ RqQjb !RqTCL RqUCLRqVCLRqXbTF Rq[CLRq^q^ Rq_HRq`BMRqao۔ RqbKv_ Rqct RqfCLRqgCLRqiCLRqjCLRqkCLRqG'RqI;Rq{in RqlRq],`Rqq^ Rqe!4 Rqj RqpRqERqWIRqq5RqHJRqB RqPRqz[ RqBFRqxP RqS RqiU Rq`pRqRRq^RqCLRqCLRqCLRqCLRqCLRqOPRqOPRqCLRqCLRqIRqGzRqF#RqF @RqL\RqL\}eRqb_P}fRq}; MRqr NRqCʅORq D&PRq!CQRq%V>WRRq&PNqSRq'o TRq(DCVRq)dC XRq*DmYRq,E[Rq.M\Rq/X^Rq2fv_Rq3wG `Rq\@aRq^A!HbRq_A(cRqazuRqcCLRqdCLRqeCLgRqhm* RqjCLRqkCLRqlCLRqnCLmRqqFOnRqt~@oRqu\4 RqwCLRqxCLRqyCLRqzCLRq|CLRq}CLRq~CLwRqyxRqNyRqPffRqOP{Rqc |Rq^}Rqpw~Rq]RqBgRqFRq} ~RqOPRqQ |RqCLRqERqFRqFۆRqOuRqCLtRqCLRqr+ Rql Rqiv 5RqK}6RqIRqCLRqCL:RqC/;RqLP=^Rq?CLhRqAA/iRqBP\RqDOPkRqES lRqGjmRqHiznRqIBaHoRqLbMpRqN^ = qRqOX rRqPY sRqQLutRqRMuRqSA&RqTOPRqVCLxRqX}I yRqYLkzRqZG4Rq\OPRq^CL}RqF:~RqJ*.RqI&DRqETRqOP~RqCLRqALRqS< RqH4RqJ#3RqCRqCL RqCL!RqCLRqCL RqRqCLRqCLRqGRqCLRqOPRqn$ RqV5 RqCLRqCLRqCLRqQ? Rql4RqbIRqXFgRqJCRqI{RqR)RqU\!Rqeٚ"Rq #Rqis3$RqJ%RqM&RqL>'RqJ(Rq^ RqCL*RqHRqCL-Rq: RqCLRqCL0RqwB 2RqH3RqJ'4RqE RqOP6Rq ]Rq CL8Rq Bk!RqCL:RqByRqCLRqARqCRqCLRqCLRqCLRqCLRqCLRqCLRqCLRq]RqCLRqCLRqCLRqNRqCLRqCaRqCLRqCLRqqes RqCLRqCLRqCLRqOP$RqJ%RqI&RqKNRqCL*RqGѼ,RqTRqOP.RqL RqCLRqCLRqOPRqCL3Rqn4RqA36RqBs47Rq s38Rq!p9Rq$s:Rq&vY;Rq'ys4Rq*U<?Rq+G@Rq,FDARq,W%HRq-OPDRq/@ERq/GR{FRq0FOGRq1PwRq4WRq5\Rq6UgRq:G>Rq;b JRq<{P Rq=^; Rq>] Rq?g Rq@j ^ !RqCCL RqECLRqFCLRqH]K RqKCLRqMqV RqNrz RqOBɀRqPo RqRP RqSt Rq~CLRqCLRqCLRqCLRqCLRqG-RqIERq{Z RqlRq],`Rqp RqdTj Rqjq7 RqnvfRqE2RqXRqr^RqJ RqBG RqQRq{/9 RqBcRqx RqMx Rqi Rq_@RqNٚRq^RqCLRqCLRqCLRqCLRqCLRqOPRqOPRqCLRqCLRqIrRqGuQRqFئRqFRqL\RqL\}eRqRa }fRq}\ MRq s" NRqC̨ORqCPRqCi(QRqVIRRqP@.SRqo TRqCDVRqb^! XRqDuYRqDE[RqE\RqF_]^RqJdҶ_RqKwUU `RqL@paRqNbRqO@aHcRqPyqRqRCLRqSCLRqUCLgRqXmSy RqZCLRq[CLRq\CLRq]CLmRq`F3 nRqc~goRqe[#B RqgCLRqhCLRqiCLRqjCLRqkCLRqlCLRqmCLwRqq|QxRqrN>yRqsU\RqtOP{Rqwa33 |Rqy`1}Rqzs.~Rq}]RqBMRqFRq} ~RqOPRqS |RqCLRqE,RqF\RqFݱRqFuRqCLtRqCLRqr{ RqmS Rqi9X 5RqKF/6RqJ&RqCLRqCL:RqD;RqKgL(tRq@M06uRqAAݍRqBOPRqDCLxRqF} yRqGJMzVYGCVYOPVYCL}VY F~~VY J [VY IVYDVYOP~VYCLVYAVYS VYHgVYLvfVYC4VYCL VYB VYCLVY CL VY!t+VY#CLVY$CLVY&GJVY(CLVY+OPVY.nB VY/Tb VY2CLVY3CLVY4CLVY7Q6 VY8pfVY9cVY:[VYeJ$VYgMVYhRBVYiQ!VYj[ "VYlOl#VYm{$VYnJ%VYoM&VYpLp'VYqJ(VYt~ VYwCL*VYyGeVY|CL-VY}}u% VYCLVYCL0VYuZ 2VYHhJ3VYJ;4VYEVYOP6VY]VYCL8VYBVYCL:VYByVYCLCLVY@CLVYACLVYBCLVYCCLVYD]VYECLVYFCLVYGCLVYIN VYKCLVYMCʑVYOCLVYPCLVYRuS[ VYUCLVYVCLVYWCLVYYOP$VY[JJ%VY\I&VY^HSVYaCL*VYdGm,VYeTǥVYfOP.VYgL0VYCLVYCLVYOPVYCL3VYno14VYA36VYq7VYg8VYkٙ9VYsZ:VYwf;VYx`VYU@?VYG@VYF=sAVYWwVYOPDVYA'CEVYGMFVYFGVYP!hVYWVY\ 3VYUVYG VY`VYz{ VY[ VYZB VYg VYiQ !VYCL VYCLVYCLVYbs VYCLVYph VYFVYB)VYoK VY6 VYt VYCLVYCLVYCLVYCLVYCLVYG-VYIKVY {= VY lVY],`VYph VYd VYjb VYpfVYEgVYRuVYzlVYK!VY BB VY#RlVY&{ VY'BVY(xt VY)Vҍ VY,i" VY.aVY/RVYX^VYYCLVYZCLVY[CLVY]CLVY^CLVYaOPVYbOPVYdCLVYfCLVYiIMVYjGpVYkFVYlEZVYoL\VYsL\}eVYF }fRq~Z; MVYrV NVYC@OVYCIPVYCsQQVYU_RVYP<SVYn TVYBxaVVY` XVY@ZYVYE[VYɶ>:\VYXP^VYdpR_VYwc `VY@SRaVY}ubVY@cVYwfgVYCLVYCLVYCLgVYkx VYCLVYCLVYCLVYCLmVYFnVY~4oVYY VYCLVYCLVYCLVYCLVYCLVYCLVYCLwVYwfgxVYO{yVYSGVYOP{VY#` |VY%`(}VY&t^e~VY(]VY+B5VY,FVY/}f ~VY2OPVY5R&w |VY7CLVY:E?VY;FIVYpVY_ qVYX rVY[B sVYL?tVYME/uVYB#BVYOPVYCLxVY~ yVYIzVYGVYOPVYCL}VYF~VYIVYHMVYEVYOP~VYCLVYAVYR VYI3VY MVY E3VY CL VYBMVYCLVYCL VYDVYCLVYCLVYGnVYCLVYOPVY n4a VY!T= VYLCLVYMCLVYNCLVYQQG VYRhffVYS[FfVYTSyVYWJVYYLVYZQVY[P@!VY\]s3"VY]Aff#VY^bfg$VY_J%VY`M&VYaL*'VYbJ(VYe~Ü VYhCL*VYjGBVYmCL-VYo^ VYrCLVYsCL0VYuv 2VYwHB3VYxI4VYyE';VYzOP6VY|]VY}CL8VYCVYCL:VYBVYCL VYk_ VYA2VYGVYC:VYixB VYixB VYG} VYEVY{VYEVVYP.CVYCֱVYKVYr VYM VYB VYQ VY}%VYK?VYM VYg+ VYL8VY@VYCLVYEVY^[VYOPVYCLVYCLVYCLVY CLVY!CLVY"CLVY#CLVY&XVY(PgVY)avgVY*} >VY+E=qVY,pVY.CLVY/CLVY0CLVY1CLVY2CLVY4CLVY5CLVY6]VY7CLVY8CLVY9CLVY;N :VYVYUs?VYG@VYF7AVYWYVYOPDVYAWEVYGIdFVYFGVYP-VY^fVYa3VYUvgVYGVY^bVYze VY_x= VY]+ VYg[~ VYixB !VYCL VYCLVYCLVY` VYCLVYp^ VY| z VYB+VYn VYD[VYtj. VYCLVYCLVYCLVYCLVYCLVYG*eVYI?CVY{w VYlVY],`VYpX VYd7' VYjS VY rٚVY E]VYT"VY@ VYMVYBh VYQfVYA| z VYBBVYCxWc VYDPJ VYGj&f VYH`VYJRVYK^VYLCLVYMCLVYNCLVYOCLVYQCLVYTOPVYUOPVYWCLVYXCLVY\I.VY]GdVY^FVY_FVYbL{VYeL{}eVY\h}fVYE~ MVYs. NVYCOVYCPVYCēQVYU0RVYP.ZSVYoK TVYBSVVY`~ XVY| YVYE[VY0\VYY^VYc]H_VYwc `VY@IaVY}ubVY@cVYzW VYCLVYCLVYCLgVYkB VYCLVYCLVYCLVYCLmVYF nVY}oVYY VYCLVYCLVYCLVYCLVY CLVY CLVY CLwVYu xVYMyVYRVYOP{VY` |VYacf}VYr!~VY]VYB0VYFݠVY"}~ ~VY$OPVY(R |VY*CLVY-EVY.FfVY/G VY2OruVY5CLtVY6CLVY8s VY9ml VY:iv 5VY=Jb6VY>I>VY@CLVYACL:VYCJ;;VYlEdzKRVYITVYFUVYGVVYE:VYOPVYCLYVY}; ZVY@gvVYOPVYCL]VYp ^VY^wVYOPVYCLaVYQ`VYOPVYCLdVYEVYOPfVY^VYCLhVYA^viVYMiVYOPkVYT lVYeffmVY_=qnVYBboVYb;pVY\{ qVYU = rVYXQ sVYLU{tVYMQuVYB-lVYOPVYCLxVY O yVYQMjzVYGgVYOPVYCL}VYF~VYIVYHܲVYDVYOP~VYCLVYA"VYR޿ VYHVYLgVYCVYCL VYBEVYCLVYCL VY kVY CLVY CLVY5FmVY8CLVY:OPVY>n VY?TQ VYBCLVYCCLVYDCLVYGP VYHpgVYIfVYJ`3VYMIdVYOKVYPP >VYQO!VYRT"VYSr#VYTZ$VYUJ%VYVM&VYWK'VYXJ (VY[~; VY^CL*VY`G;VYcCL-VYe~z VYhCLVYiCL0VYkuS[ 2VYmH3VYnIЍ4VYoE<VYOP6VY]VYCL8VYCVYCL:VYBrdVYCLVY U6v?VY GN@VY F2AVY WZyVY OPDVY AREVY GA6FVY FGVY PEVY U VY YfVY SVY GVY b%VY { VY \o VY [ VY gd VY i/3 !VY CL VY CLVY CLVY _ VY CLVY s8 VY @VY D_VY n}[ VY 嬸[VY t>u VY CLVY CLVY CLVY CLVY CLVY G"?VY IAVY {/9 VY l@VY ]/VY p VY dM VY j6 VY +r3VY .E-}VY /P7 VY 0BVY 1OxVY 3B VY 6QM_VY 9|oQ VY ;BVY VY U4?VY G@VY F/AVY WVY OPDVY A$EVY GBFVY EGVY OVY TVY XVY RVY FrFVY e VY |7 VY _i VY \ VY f VY h !VY CL VY CLVY CLVY c7 VY CLVY s VY DQNVY DVY nT VY ݒVY t' VY CLVY CLVY CLVY CLVYCLVYG(VYIbVY{ VYl4VY]/VYp VYdTj VY j(# VY#rVY&EVY'PVY(CKVY*PVY,BaH VY/QVY2|ƚ VY3BVY4x VY5SS VY8jD VY:`iVY;TYVY<^VY=CLVY>CLVY?CLVYACLVYBCLVYEOPVYFOPVYHCLVYJCLVYuHVYvGQVYwFVYxF]VY{L{VYL{}eVY s}fVY Y MVYq NVYCSOVYCPVYCClQVYURVYP SVYA2TVYCVVYaL XVY@YVYE[VY>\VYYʫ^VYd_VYw9 `VYCaVY~zbVYA{cVY{gVYCLVYCLVYCLgVYk VYCLVYCLVYCLVYCLmVYGnVY}0oVYX VYCLVYCLVYCLVYCLVYCLVYCLVYCLwVY}HxVYNyVYP(VYOP{VYaUV |VY `}VY s ~VY ]VYCLVYGmVY<} ~VY>OPVYAP` |VYCCLVYFEQVYGFmeVYIFVYJFuVYLCLtVYMCLVYOsT VYQl9X VYRh/ 5VYTJ:6VYUIAVYWCLVYXCL:VY[MR;VY^NVYjN VYkMG!VYldf"VYm{#VYn]g$VYoJ%VYpM{&VYrK 'VYsI(VYv~z VYxCL*VYzF?VY}CL-VY}T VYCLVYCL0VYu 2VYGЍ3VYI4VYE`VYOP6VY]VYCL8VYDVYCL:VYBVYCLCLVY?CLVYACLVYBCLVYCCLVYDCLVYECLVYF]VYGCLVYHCLVYJCLVYKNVYMCLVYOCVYQCLVYRCLVYTtU VYWCLVYXCLVYYCLVY\OP$VY]J%VY^I&VY`J/VYcCL*VYfG ,VYgTVVYhOP.VYiLҮVYkCLVYCLVYOPVYCL3VYn4VYA36VYg7VYls38VY^9VYsY:VY~g;VYz3VYU,?VYGd@VYF+KAVYX VYOPDVYAvmEVYG<FVYEGVYO؍VYUvgVYZVYTVYEVYdwVY{% VY]K VY[~ VYf VYhׄ !VYCL VYCLVYCLVY^- VYCLVYs VYw VYDQNVYm VYC$VYsl VYCLVYCLVYCLVYCLVYCLVY GVY I}VY{ VYkVY]/VYp VYdE VYj VYrVYD VYPVYC5VY!RAVY#BG VY&QVY)}T VY*BVY+w VY,Lf VY0j VY1`33VY2T`VY3^VY\CLVY]CLVY^CLVY`CLVYaCLVYdOPVYeOPVYgCLVYiCLVYlHVVYmGQVYnFVYoFfVYrL{VYvL{}eVYv}fVYO@ 2 MVYqn NVYC+OVYCPVYCWQVYURVYP.ZSVYq TVYBVVYaO( XVYBfYVYF X[VY̷>\VY[X^VYfs_VYwq `VYDaVYbVY@cVY{VYCLVYCLVYCLgVYl J VYCLVYCLVYCLVYCLmVYH`nVY|ٚoVYY+ VYCLVYCLVYCLVYCLVYCLVYCLVYCLwVYwxVYKyVYR#VYOP{VY&`UV |VY(ax#}VY)uuF~VY+]VY.C֯VY/GRkVY3}f ~VY5OPVY8P4 |VY:CLVY=EVY>FXbVY@FVYCKRuVYECLtVYFCLVYHt1 VYJl VYKi?} 5VYMI6VYNJ!hVYPCLVYQCL:VYTLg;VYWJDVYBvEVYpQFVYQGVYr\*HVYJ LVYMVY|aHNVYHOVYzr PVYz)B QVYFLRVYIbTVYFUVYGVVYE"'VYOPVYCLYVY}~ ZVY@}BVYOPVYCL]VYp ^VY[G#VYOPVYCLaVYOoVYOPVYCLdVYEVYOPfVY^VYCLhVYA$ZiVYVj~VYOPkVYR! lVYemVYa\)nVYB/\oVYbpVY]u qVYV rVYXq sVYLrtVYM`uVYB9VYOPVYCLxVY@yVYKOzVYFVYOPVYCL}VYFq~VYIPVYH5VYD,VY OP~VY CLVY AfVYS VYIK3VYHVYB VYCL VYB VYCLVYCL VYKVYCLVYCLVY GVY#CLVY&OPVYPn$ VYRT VYTCLVYVCLVYWCLVYYPGS VY[y VY\mPVY]uVY`IVYbI:VYcMnVYdL!VYeQf"VYfr#VYgYٙ$VYhJɓ%VYiMvn&VYjK|'VYkI(VYn~] VYqCL*VYsFLVYvCL-VYx}~ VY{CLVY|CL0VY~up 2VYGM3VYIy^4VYFVYOP6VY]VYCL8VYD|VYCL:VYBnVYCLKVYOPVYCL@VYLڠAVYGBVYB*VYCLVYCLEVY~ HVYCIVYo VYkh VYlR VY@۶VYG} VYC=VYixB VYixB VYGVYEVYzJVYEVVYO/VYB|VYK8VYr VYM VYB VYOVY|3yVYK:[VYM VYg+ VYLVYBuVYCLVY!EVY#^IcVY$OPVY&CLVY'CLVY(CLVY)CLVY*CLVY+CLVY,CLVY/X3VY0PVY1avgVY3kHVY4@\VY5kHVY7CLVY8CLVY9CLVY:CLVY;CLVYVYU!?VYG@VYF,3AVYWVYOPDVY@EVYG9FVYE%GVYO VYStVYXVYQVYDVYc{VY{ VY^ VY\a VYf/ VYh !VYCL VYCLVYCLVYd/ VYCLVYr+ VYCwVYC:VYmv VY{VYs VYCLVYCLVYCLVYCLVYCLVYGVYIVYz VYl>VY ],`VY o; VY c VY iJ VYr#3VYD2VYTT{VYD-}VYS_VYB VYPVYG}f VYHDVYIw VYJV VYMi3 VYN`VYOTٚVYP^VYRCLVYSCLVYTCLVYUCLVYVCLVYZOPVY[OPVY]CLVY^CLVYaHaVYbGMvVYdF}=VYeFcVYhL{VYkL{}eVYW}fVYH@U MVYr NVYC`OVYD~PVYCַQVYURVYPeSVYpPL TVYBiVVY` XVYCEYVYF[VY<\VY].^VYdo_VYw `VYB[aVY{ bVY~ǯcVYyVYCLVYCLVYCLgVYl VYCLVYCLVYCLVYCLmVYGnVY|C4oVYY VYCLVY CLVY CLVYCLVYCLVYCLVYCLwVY~xVYM{yVYOVYOP{VY` |VY_}VYsS~VY!]VY$C$VY%GAVY(}T ~VY*OPVY-Of |VY0CLVY3E|VY4G-aVY5FnVY8Q5ruVY:CLtVYst VY?lj VY@i 5VYBI6VYCJ=VYECLVYFCL:ZAJ ;ZAF"xt =ZA?F7 ZAAOPZACCL@ZAFLҮAZAGGBZAIBZAKCLZALCLEZAN~ HZAP@=IZASVj ZAVk) ZAWl ZAX@=ZAYGZAZC ZA[ixB ZA\ixB ZA]H ZA^EZAazJZAdEVZAeOZAfB|ZAK$ZAr ZAM ZAB ZASsZA{HZAKmZAM ZAg+ ZAL^ZA@LZACLZAEZA^ZAOPZACLZACLZACLZACLZACLZACLZACLZA_ZANgZA`gZAMHZAGHZAfZACLZACLZACLZACLZACLZACLZACLZA]ZACLZACLZACLZANZACLZACZACLZACLZAw_ ZACLZACLZACLZAOP$ZAJ|J%ZAI&ZALEZA CL*ZA G5,ZATZAOP.ZAL݃ZACLZACLZAOPZACL3ZAm@4ZAA36ZAW7ZA Y8ZA!Mg9ZA$s:ZA&~;ZA'xYZA*T?ZA+G@ZA,F(AZA-WNZA.OPDZA/@EZAXGZFZAYFGZAZP^ZA]RZA^W ZA`PpZAcE ZAdaEZAe{> ZAf\ ZAg[Y@ ZAhfb ZAih !ZAmCL ZAnCLZAoCLZAq_޿ ZAtCLZAvr]\ ZAw{in ZAxC6]ZAzl ZA|ZAs ZACLZACLZACLZACLZACLZAFGZAIkZA{= ZAkғZA],`ZAn ZAc7 ZAi ZArٚZADZAPZADeEZAU!ZAB ZAQZA~ ZAL>ZAw ZAM\ ZAk ZA`fZAVfZA^ZACLZACLZACLZACLZACLZAOPZAOPZACLZACLZAHAZAG5ZAFoZAFPZAL\ZA L\}eZA|SUz}fVY> MZA>rc NZA@COZAAJPZABCԉQZAEU?RZAGOSZAHp$ TZAIBVZAJak XZAK_ YZAMF"[ZAN\ZAPV^ZASb!_ZATw `ZAVBAaZAW|bZAX|pcZAY|ZACLZACLZACLgZAje ZACLZACLZACLZACLmZAGWmnZA|goZAY ZACLZACLZACLZACLZACLZACLZACLwZA{xZAOyZANZAOP{ZAa"# |ZA`M;}ZAts~ZA]ZACOZAG`ZA} ~ZAOPZARRp |ZACLZAE>ZAG ZAF؟ZALeuZACLtZACLZAs\) ZAm( ZAiv 5ZAIE6ZAJU5ZACLZACL:ZAKP;ZAO0ZAMUT?ZANGb@ZAOFAZAPWZAQOPDZAR@UEZASG$"FZATEGZAUOjZAYKZAZPZA[K3ZA^CPZA`` gZAaz¦ ZAb\ ZAcZ%\ ZAdfE ZAehb !ZAhCL ZAiCLZAkCLZAmc ZApCLZArq3 ZAsGJZAtC ZAum ZAwfZA{sU: ZACLZACLZACLZACLZACLZAFZAI0ZA{/9 ZAkZA],`ZAoK ZAc{ ZAin ZApZAD]ZAP|GZADXZAVeNZAB@ ZAQZA@!ZAaZAw ZAU ZAjn ZA`3ZAT`ZA^ZACLZACLZACLZACLZACLZAOPZA OPZA CLZA CLZAHZAGZAFbZAF@ZAL=ZAL=}eZAw}}fZAiA MZA7rez NZA9B]OZA:HPZA;C4QZA>TRZA?OSZA@o۔ TZAACVZACb XZAlu YZAnE[ZAo\ZApbE^ZAscE_ZAuwV `ZAwAaZAx{ bZAy}cZAz}8RZA|CLZA}CLZA~CLgZAiv* ZACLZACLZACLZACLmZAGnZA}4oZAY ZACLZACLZACLZACLZACLZACLZACLwZAAHxZAMyZARQZAOP{ZAa |ZA_*}ZAp~ZA]ZAC2ZAFZA}u% ~ZAOPZASZ7 |ZACLZAEsZAFZAFnZAGuZACLtZACLZAsC ZAl ZAh 5ZAIpJ6ZAJcZACLZACL:ZAL8;ZAMcOZA7{w PZA8zu QZA9FbRZA:ITZAD;ZA?OPZAACLYZAC| ZZADAZAFOPZAHCL]ZAJr@3 ^ZALaZAMOPZAOCLaZARSZASOPZAUCLdZAWDXZAYOPfZA[^ZA\CLhZA^@=iZA_SbTZAaOPkZAbPty lZAcjmZAdbnZAeC>oZAhcNpZAj`( qZAkY rZAlZ=q sZAmLItZAnMuZAoBXZAOPZACLxZA@uyZAO zZAF?ZAOPZACL}ZAFi~ZAHZAGPZADLZAOP~ZACLZAA"ZAS ZAGfZAF ZA~ZACL ZACZACLZACL ZAnZACLZACLZAH#ZACLZAOPZAnn ZAT ZACLZACLZACLZAOk ZAwZAo3ZAvlZA I`ZA L{ZA Q.ZA P!ZA U3"ZA uL#ZA Z$ZA J%ZA M\&ZA Ko!'ZA IU (ZA ~l^ ZA CL*ZA EZA CL-ZA @=ZA CLZA CL0ZA vR 2ZA !G3ZA "IP4ZA #EDZA $OP6ZA &]rZA 'CL8ZA )Ci(ZA ,CL:ZA .BEZA 1CLs:ZA @t;ZA Aps4ZA DTz?ZA EGu@ZA FFAZA GWOZA HOPDZA IB;7EZA JGFZA KEGZA LOZA OK3ZA QPZA RJZA UB_ZA VcƕZA Wy< ZA X]y ZA Y\C ZA [fE ZA \hq7 !ZA _CL ZA `CLZA aCLZA c_ ZA CLZA pPL ZA s ZA CaZA m<8 ZA Ro?ZA s8 ZA CLZA CLZA CLZA CLZA CLZA FrZA HZA {LS ZA kZA ],`ZA o ZA cM ZA i ZA ofZA DZA T*ZA DZA W_ZA Bk ZA OZA A_ZA khZA w| ZA N ZA j ZA `fZA VfZA ^ZA CLZA CLZA CLZA CLZA CLZA OPZA OPZA CLZA CLZA HZA G rZA FFZA F4ZA L=ZA L=}eZA Eo}fZAT MZA (q NZA *BOZA +ExPZA TCpQZA XTnRZA YOSZA Zo7 TZA [B0VZA \a XZA ]u/ YZA _Eح[ZA a+\ZA b\^ZA ee_ZA fw `ZA gA33aZA i}bZA j~zcZA l|ZA nCLZA oCLZA pCLgZA siB ZA uCLZA vCLZA wCLZA yCLmZA |F nZA ~oZA Y@ ZA CLZA CLZA CLZA CLZA CLZA CLZA CLwZA x=qxZA QkyZA QLZA OP{ZA ` |ZA `aA}ZA rw~ZA ]ZA BhZA FZA } ~ZA OPZA Sh |ZA CLZA EZA FjZA FZA LuZA CLtZA CLZA s ZA l ZA ip 5ZA J 6ZA J[ZA CLZA CL:ZA L;ZA I'OPZA @CLaZA CRZA DOPZA FCLdZA HDZA JOPfZA L^ZA MCLhZA O@iZA PQۚZA ROPkZA SQ lZA TqzmZA Uh =nZA W~q oZA b4pZA ]\ qZA UB rZA X sZA L:'tZA MuZA B%oZA OPZA CLxZA @gvyZA L1zZA FZA OPZA CL}ZA Fq~ZA HzZA G ZA DZA OP~ZA CLZA AlZA R ZA FgZA EZA ~ZA CL ZA BZA CLZA CL ZA UXZA CLZA CLZA GgRZA CLZA OPZA n}[ ZA T= ZA CLZA CLZA CLZA O ZA x9ZA q6fZA x0ZA I\ZA LQZA PZA Op!ZA X33"ZA {#ZA \ٙ$ZA JL%ZA M^&ZA Ka'ZA I?C(ZA ~z ZA CL*ZA EZA CL-ZA @rZA CLZA CL0ZA u 2ZA G3ZA I:4ZA EOZA OP6ZA ]ZA CL8ZA C>ZA CL:ZA HBZA KCLZA5Tx?ZA6GTL@ZA7FAZA8WbaZA9OPDZA:BoEZA;GFZA MZAEq NZAHBOZAIErPZAJCQZAMTgRZANOSZAOo TZAPBqVZARay XZAS|| YZAUEֻ[ZAV;f\ZAW]H^ZAZe _ZA[w `ZA\AaZA_zbZA`|*cZAa{zZAcCLZAdCLZAeCLgZAhjGI ZAkCLZAlCLZAmCLZAnCLmZAqFnZAtVgoZAuX׷ ZAwCLZACLZACLZACLZACLZACLZACLwZA}fgxZAM{yZAOqZAOP{ZA` |ZA`{}ZAs~ZA]ZABŭZAGZAr ~ZAOPZAUi |ZACLZAEZAFDZAFZAQ'uZACLtZACLZAtNZAE OZA| PZA{ QZA FiRZA!ITZA#FdUZA$GVZA%DZA&OPZA(CLYZA*{H ZZA+@JeZA-OPZA/CL]ZA1p ^ZA3bZA4OPZA6CLaZA9R?ZA:OPZAtZA}MuZA~B*ZAOPZACLxZA@nyZAKGzZAFZAOPZACL}ZAF~ZAHQZAG`}ZAD#ZAOP~ZACLZAAOZAR/ ZA@3ZA@3ZAuZACL ZAB=ZACLZACL ZARZACLZACLZAGQZACLZAOPZAn% ZAS ZACLZACLZACLZAO ZAwgZAo|ZAvfZAIBZAHqZAM@ZAL:!ZAW"ZAvf#ZATs3$ZAJ5%ZAM<&ZAKf'ZAIs(ZA~ ZACL*ZAEZZACL-ZA@ZAOPZACL0ZAwl 2ZA0G3ZA1I'4ZA2E1bZA3OP6ZA5]ZA6CL8ZA8Ci(ZA;CL:ZA=B=ZA@CLZA+T܄?ZA,G6N@ZA-EAZA.VZA/OPDZA0BEZA1FAFZA2EGZA3O`ZA^HfZA`L33ZAaG(ZAdA=\ZAecAZAfx ZAg^ ZAh\~g ZAjf(r ZAkhS !ZAnCL ZAoCLZApCLZAr_ ZAuCLZAxo7 ZAy@;ZAzGgZA{l8 ZA|p ZA}s T ZACLZACLZACLZACLZACLZAF=BZAIZA{Z ZAkZA],`ZAo,| ZAa< ZAi ZAofZAD<ZAT&ZADZAYOZAB{ ZAOZAEZAlZAwQ? ZAO]6 ZAm ZA`ZAVZA^ZACLZACLZACLZACLZACLZAOPZAOPZAOPZACLZAHaZAG BZAFeZAF ZAL\ZAL\}eZA|P }fZA@; MZA7q- NZA9C#OZA:EPZALYAZA?GFBZA@KdKZACCLZADCLEZAFy HZAHxmIZAK^iw ZAMlo ZAOmv ZAP@ZAQH ZARBwZASi& ZA|i| ZA}Hs<ZA~EZAz BZAEVZAOZABfZAK$ZAr ZAM ZAB ZALvZAzZAK&XZALjoZAg+ ZAKZAaZACLZAEaZA\ZAOPZACLZACLZACLZACLZACLZACLZACLZANgZAG6gZAYgZAGHZAGHZAGHZACLZACLZACLZACLZACLZACLZACLZA]ZACLZACLZACLZAN,ZACLZACZACLZACLZAy@Y ZACLZACLZACLZAOP$ZAJk%ZAIb&ZARZACL*ZAG,ZAVkZAOP.ZAMLZA CLZA CLZAOPZACL3ZAm/4ZAA36ZAl7ZAs38ZAwff9ZADq:ZAEs;ZAFkZAITr?ZAJG @ZAKEAZALVcZAMOPDZANBEEZAOF\FZAPEGZAQOSZATGfZAUL8ZAVG6gZAY@`ZA[^.ZA\x ZA]W ZA^V3 ZA_f 4 ZA`h(# !ZAcCL ZAeCLZAfCLZAh^ ZAkCLZAmo ZAn{= ZAoFqZApl ZArBZAsr ZAvCLZAwCLZAxCLZAyCLZAzCLZA~F+*ZAIRTZA{ ZAkZA],`ZAl8 ZA`EA ZAiX ZAr3ZADZASOZACHZAZZABf ZAPQZAHZAoulZAwB ZAQm ZAk&f ZA`ZAVZA^ ZACLZACLZACLZACLZACLZAOPZAOPZAOPZACLZAHOZAGVZAFZAF}=ZAL=ZAL=}eZAr@}fZA@ Mjqn NjCBQOjCPjC1HQjTv;RjO8VSjof TjBVjak XjBYjEC[j\jW1^jf_jxr `j@!ajzbj }cj {j CLj CLjCLgjj jCLjCLjCLjCLmjFk$nj}IojX j CLj!CLj#CLj$CLj%CLj&CLj'CLwj*|Qxj+KRyj,Q.j.OP{jY_ |j[a}j\t~j^]jaBCjbG*jf}u% ~jhOPjkPQZ |jmCLjpEjqEjsFjvL%ujxCLtjyCLj{t1 j}lE j~iK 5jI6jJEjCLjCL:jL;jJ<jY?j@XjOPjCLBjx Cj~|DjAEjZFjlGj\(HjH[ LjuLMjpNjD@Oj|ƚ Pj|} QjFRjHTjF;UjGKVjCujOPjCLYjyN Zj@jOPjCL]jo+ ^j`jOPjCLajPbjOPjCLdjC jOPfj^jCLhj@4ijU"jOPkjQS ljq\mjhRnj@\oj"`pj$]W qj%Vff rj'W=q sj(LN1tj)Muj*Aj+OPj-CLxj/@}Byj0P?zj1H[j3OPj5CL}j7Fy~j9Hj:G'`j;DjCLj@@jCR% jD~əjE{gjFmgjHCL jJBjMCLjPOP jSh" jVCLjWCLjYF/jCLjOPjm jP5 jCLjCLjCLjO jp jejljH1jKEjOjN.!jWL"ju#jS3$jJ%jL&jK'jJ8 (j}I jCL*jE jCL-jAejOPjCL0ju 2jG3jH4jDjOP6j]jjCL8jB8PjCL:jB5jCL<jw3 =jEjOPjCL@jLAjGQkBjEjTz?jF@jEjAjVijOPDjB8EjF8FjEGjO<jGgjL jFj} jc8jxhH jV jT jev jg !j!CL j"CLj#CLj&b j)CLj+o j,Fv j-E@j.l3 j0[j4r j7CLj8CLj9CLj:CLj;CLj>Fj@IvjC{ jEk_CjH],`jIjb jJ] jKi[~ jNmjzDvj{S8j|C:j}\KjBh jPjLnj@ jw4 jV jo@ j`fjVj^jCLjCLjCLjCLjCLjOPjOPjOPjCLjH(jGjG ZjFЁjL=jL=}ej0D@}fj{@( Mjqn NjC7OjBPPjBbQjTv;RjO6Sjo; TjBVj`j XjBYjE[js\j_0[^jdw_jx8 `j@!ajybj|Qcj|pjCLj CLj CLgjk8k jCLjCLjCLjCLmjF_`njA}YojBW jECLjFCLjGCLjHCLjICLjJCLjKCLwjOzHxjPMyjQQLjROP{jU_ |jW` }jXr~jZ]j^Byj_Gjb}; ~jdOPjgO |jiCLjmExjnEjoFjrG:ujtCLtjuCLjxth jyl jzi?} 5jI6jJ*~jCLjCL:jJ3;jFO<jZ?j@QjOPjCLBjx+ Cj|ރDjA|EjZRFjiRGjR34HjH+ LjCMjvNjTzOj} Pj|oQ QjFRjHaTjF0UjGVjC޲jOPjCLYjy Zj jOPjCL]jo ^j_hWjOPjCLajPjOPj CLdj Caj OPfj^jCLhj@ijSƂjOPkjQK ljm\)mjcnjm oj`pj[. qjSG rj VR sj!LMHtj"Muj#Aj$OPj&CLxj(@yj)N>zj+Hj-OPj/CL}j1F5~j3Gj4Gj5D|j6OP~j8CLj:@jləj?gljACL jCB\jnCLjqOP jt] jwCLjxCLjzF!Oj}CLjOPjm- jO jCLjCLjCLjOg jpljejkpjHҕjJjNfjM{!jV"jnٚ#j\$jJ %jLû&jKϜ'jJV(j} jCL*jD̘jCL-jAjOPjCL0jt 2jG3jH\4jDjOP6j]jCL8jB jCL:jBnjCL<jwB =jEjOPjCL@jL!AjGCBjI0#jCLjCLEjx Hj|Ijn jm<8 jme j@jHGjBnj jb j j' j Hj4Ej6xj9EVj;OPjK+jAr jCM jFB jGLvjIz jJK6jKLqjNg+ jPKjQg/jSCLjVEjW[DjYOPj[CLj\CLj]CLj^CLj_CLj`CLjaCLjdPgjeMgjf^gjgGHjiGHjjGHjlCLjmCLjnCLjoCLjCLjCLjCLj]jCLjCLjCLjNjCLjCjCLjCLjv jCLjCLjCLjOP$jJM%jIQ&jHgpjCL*jGe,jX5jOP.jNJjCLjCLjOPjCL3jm4jA6jp7jm8jg49jo|:jyg;jog<jvjOP>jTd?j F@j EAj VCj OPDj BzaEj F(Fj E{Gj Nj G,j L3j Fj }% j b΋j x j Q j PHc j eM j g[~ !j CL j CLj CLj ^a j #CLj %n`* j &vK j 'Cj (ju j *\j -rn j 1CLj 2CLj 3CLj 4CLj 5CLj `FEj aINj d{/9 j gk=j j](j ki[ j l\o j miL j psj sDj uP[j vCj w]j yB) j |Pej }Nj ~B+j w% j L j o&f j `j Y3j ^ j CLj CLj CLj CLj CLj OPj OPj OPj CLj HXj Ggj G2Jj Fj L=j L=}ej *Js}fjx@=j Mj qn Nj C0~Oj B3XPj B-Qj TqRj OSj of Tj A>Vj _jA Xj BrYj E[j \j Z^j bX_j xG `j @aj (zHbj )|cj *{.j ,CLj -CLj .CLgj 1j j 3CLj 5CLj 6CLj 7CLmj :F;1nj =~ oj >V j @CLj ACLj CCLj DCLj ECLj FCLj GCLwj JA8Rxj KPGyj MRj NOP{j Q^ |j Sat}j Tr~j V]j YBzj [GGj ^}I ~j `OPj cOa |j CLj EN1j ENbj FhRj Kguj CLtj CLj tdZ j k j h 5j I6j J1j CLj CL:j J ;j M<j W?j @Qj OPj CLBj x+ Cj z@EDj ABEj `=qFj dGj X\Hj Gd Lj CMj vNj TROj }X Pj | Qj FRj H/Tj FUj G8Vj Dj OPj CLYj y] Zj ^ j OPj CL]j of ^j ]nj OPj CLaj OHj OPj CLdj C'j OPfj ^j CLhj : ij Pj OPkj QO lj n\)mj dnj ns3 oj `j;pj [ qj T{ rj X{ sj LAqtj MFuj AYj OPj "CLxj $@}Byj %K2zj &H j (OPj *CL}j TFݱ~j VG=j WFj YDo j ZOP~j \CLj ^@j `Q j am4j bgj c^ j eCL j gAҩj jCLj mOP j pJ@- j sCLj tCLj vEj yCLj |OPj l9 j OTt j CLj CLj CLj Oe j r9j g4j kj Hj Jj O j [Y!j `"j D#j pY$j K%j L&j L>'j JW(j |& j CL*j DSj CL-j AZj OPj CL0j tx 2j Gv3j H4j Dp~j OP6j ]j CL8j Aj CL:j Brdj CL<j vt =j EZj OPj CL@j LAj G2Bj I]j CLj CLEj wna Hj !GͧIj "]^ j %mYk j &n j '@;j (HVFj )Bj *ju j +jb j ,Hj -Ej /xj 3EVj 4OPj 5BlTj 7K j :r j j T?j F@j ExAj Vj OPDj B6Ej FpJFj EeGj Nj FPj Kj Ej { j ]Cj w;m j MiP j L j d j f !j CL j CLj CLj a- j CLj m4 j IZj HCpj IjD j Jgfj Kr j NCLj OCLj PCLj QCLj SCLj VE;j WIjj Z{ j \k0j _](j `hJ j b[-F j ci/ j foj iDj jT*j kCj l^j nB j rNj sP_j tCWZj wwl j xVz j {q j |aVfj }[j ^j CLj CLj CLj CLj CLj OPj OPj OPj CLj Hj Gj G[j Fj Lj L}ej JN:E}fj @ Mj rc Nj C Oj ATPj BmOQj Tc6Rj OqbSj o; Tj ALVj ^T Xj BiYjE[j\jY^jd_jxG `j@uaj|bj{gcjyjCLj!CLj"CLgj%kz+ j'CLj(CLj)CLj*CLmj-Fnj1{goj2U^ j4CLj5CLj6CLj7CLj8CLj:CLj;CLwj>A(xj?QǮyj@Y >jAOP{jD\ |jFcd}jHtd~jJ]juBv4jvGNjy}: ~j{OPjN2 |jCLjE8wjE!mjF[GjQXujCLtjCLju jkR jh 5jI6jJ3jCLjCL:jKH;jN;<jX!?j@C jOPjCLBjxWc CjALDjAEjhfgFjpQGj^HjG LjB=qMjxzNjU34Oj} Pj|j QjF?RjHTjF UjGsVjD`jOPjCLYjzT Zj jOPjCL]jo ^j_jOPjCLajOMjOPjCLdjCi(jOPfj^jCLhjFv ijN:wjOPkjQC lj lmj c33nj p ojapj` qjX rj]8R sjL'tjOPj@CLxjB@}ByjCJ*zjEI jGOPjICL}jKFݱ~jMGjNF؉jODijPOP~jRCLjT@ujVQR6 jWhfjX`9jYWij[CL j]A"j`CLjcOP jfRi jiCLjjCLjlEjoCLjrOPjulo jvN 3 jCLjCLjCLjOSM jqyjd jj)jHjjI jMO\jL#!ja "jI#jr&f$jK %jLf&jL''jJTL(j{ jCL*jD%jCL-jA"jOPjCL0jt/ 2jGk3jHv4jDsejOP6j]jCL8jAqjCL:jBcjCL<jvK =jEj OPj CL@jLȐAjG%BjKnijCLjCLEju HjIj^K jm jnB j @uj!Hs<j"Bj#j j$ju j%Hj'Ej)xj,EVj-OPj.BHOj0Kj3r j5M j8B j9P ej;zjjT-?jF@jESAjVʲjOPDjAEjFWFjEQGjNvjE3jJ1jDfjzSO j_jvg- jQ jO? jd7' j0f7 !j4CL j5CLj6CLj8] j;CLj=l j>~l^ j@CjAi= jCjFr jICLjJCLjKCLjLCLjNCLjQE`jRHjUzu jWk jZ](j[gJ j]Y j^id jarFfjdDmyjeOhjfC2jg_CjiB{ jPjPjD<9jv jL< jrȉ ja3jZ@j^ jCLjCLjCLjCLjCLjOPjOPjOPjCLjGjGvjGOjGhjLjL}ejCR;}fjAp Mjs? NjC4OjBoPjBC3QjTP/RjO[Sj o Tj @7Vj ]/ Xj BfYjE|4[j#\jPX^jf%_jxUV `j@uaj|qbj|*cjzHjCLjCLjCLgj"km j$CLj%CLj&CLj'CLmj+FMnj.{ioj/T j1CLj2CLj3CLj\CLj]CLj_CLj`CLwjc{=qxjdVyjeRjfOP{ji[33 |jla}jmu~jo]jrBq%jsG*jv},l ~jxOPj|N` |j~CLjE3jDjFTjKUujCLtjCLjuD jk jh- 5jI5G6jJ+gjCLjCL:jK ;jJ&G<jU'&?j@4jOPjCLBjxt CjBDjAJEjPFjlRGjZzHjGd LjD{Mj{ NjVHOj} Pj} QjF?RjHkTjEGUjGeVjDPjOPjCLYjzcz Zjc jOPjCL]joXB ^jcjOPjCLajPNjOPjCLdjCjOPfj^jCLhj~ ij$Xgj&OPkj'P lj)fmj*\nj+mR oj.`upj0_Q qj1Y=q rj2]=q sj3L tj4M uj5Akj6OPj8CLxj:@}Byj;PbvzjOPj@CL}jBF~jDGjEFjFD\0jGOP~jICLjK@`2jNQ; jOgvfjPaYjQWjSCL jUAOjXCLj[OP j^xI~ jCLjCLjE]jCLjOPjl8 jMa jCLjCLjCLjO jqjdjjjH4jIjN&fjL!jX33"jw@#jb$jK%jL1&jK;'jJF(j{ jCL*jCjCL-jAҩjOPjCL0js 2jG_3jH4jDOjOP6j]jCL8jA"jCL:jBNjCL<ju} =jEljOPjCL@jL߮AjG'BjH/j CLj CLEju Hj~ГIjgP jm jn`* j@gvjHjBcjj jj jH jEj yj#EVj$Oj%BHj'K)jRr jUM jXB jYLvj[ywj\Lj]Lzj`g+ jbKjchE&jeCLjhEyji[jjOPjlCLjnCLjoCLjpCLjqCLjrCLjsCLjvNgjwOc3jxYgjyGHjzGHj|GHj~CLjCLjCLjCLjCLjCLjCLj]jCLjCLjCLjNjCLjCjCLjCLjy@Y jCLjCLjCLjOP$jJ%jI0&jK2jCL*jGT,jVũjOP.jN UjCLjCLjOPjCL3jm94jA6j}27j}8jf9jn:jm;jn&f<jojOP>jTF?jFh@jEFAjUjOPDjA,EjF>[FjE>GjN}jC$jGgjBQj x j#`Ugj%v t j&Mx j'L j(c{ j)e !j,CL j-CLj/CLj1a j4CLj6m j7r]\ j8F>Kj9i j:IU j[j$\j_Y^jdw_j xc `j Aaj {kbj z4cjy*jCLjCLjCLgjke jCLjCLjCLjCLmjFF%njI}ojJS jMCLjNCLjOCLjPCLjQCLjRCLjSCLwjWzHxjXQ.yjYTfjZOP{j][wx |j_b}j`s~jb]jfBŭjgG'jj}R ~jlOPjoc |jqCLjuE(+jvDjwFjzG%uj|CLtj}CLju jk- jh 5jI6jIjCLjCL:jJm;jFo<jUL?j@4jOPjCLBjxt CjBZDjA{QEjUFjlRGjUHjG& LjnfgMjYNj~Oj~ Pj}; QjFRjH2TjECUjGYOVjC4jOPjCLYjy Zjr jOPjCL]jn ^jcWjOPjCLajPj OPjCLdjBjOPfj^jCLhj~s ijWjOPkjP@ ljmmjcGnjo= oj!`1pj#_ qj$Wff rj&[u sj'Ktj(Muj)Aj*OPj,CLxj.@uyj/PTzj0IiNj2OPj4CL}j6F/~j8Ggj9F6j:DGj;OP~j=CLj?@jBP jCjjDcjE\S3jGCL R@C RCLR OP R IE RCLRCLRERCLROPRl RM= R CLR!CLR"CLR%N R&qR'dfR(jYR+H8R-L{R.PuR/Nq!R0^g"R2D,#R3W&g$R4J7%R5L&R6KM'R7J2(R:{H ReCL*RgCRjCL-RlAҩRnOPRpCL0Rrs T 2RtGY3RuHqL4RvDRwOP6Ry]RzCL8R|ARCL:RB8PRCL<RuD =REROPRCL@RLARG!OBRFYRCLRCLERt HREWIRk/ Rn Rn}[ R@RH/RBcRk. RkQ RHRERxdREVRORBHRK/qRr RM RB RT iRyBRLRLRg+ RKRhE&RCLREyRZROPRCLRCLRCLRCLRCLRCLRCLRPgRG6gR_ٚRkHRkHRkHRCLR,CLR-CLR.CLR/CLR0CLR1CLR2]R3CLR4CLR6CLR7MR9CLRCLR@v RCCLRDCLRECLRHOP$RIJ=%RJI &RLGAROCL*RRGP-,RSVRTOP.RUNW2RWCLRXCLRZOPR\CL3R_m&4RaA6Rdk@7RegY8Rfls39Rnu]:Rh;Rm,<RhROP>RTfz?RFK@REARVX\ROPDRA~ERF"7FRE'lGRN8'RC RG~fRB`Rx+ RaȤRu RJN RH Rc!( Re !RCL RCLRCLR]< RCLRla7 RE@RFTRhb RRr1 RCLRCLRCLRCLRCLRERH(Rz RjR](Rg RX$ RhJ Rr33RDR S}R CR _lRBf RORSgRDHRv RL< RkU R`RVR^ RCLR!CLR"CLR#CLR$CLR'OPR)OPR*OPR,CLR/GRXGRYGR[G!R^LRaL}eRt}fjAr MR{t NR~C2ORBvPRBQRT-RRO?wSRAOTR@VR\ XRBfYREM{[R\RL^Rb+P_Rxq `RCsaR}bR|cRzW RCLRCLRCLgRk; RCLRCLRCLRCLmRGnR}IoRS RCLRCLRCLRCLRCLRCLRCLwRDffxRM >yRT\)ROP{R[ |Rc}Rvd~R]RCRGrR~24 ~ROPR Y>k |R"CLR%ECSR'DrR(FsR+LZuR-CLtR.CLR1u R2lK R3h$ 5R5Hϣ6R6IR8CLR9CL:R;J;;R@AR@OPRBCLBRDxWc CREBHDRFALERHlFRIkGRJX\HRKFՐ LRLhHMRMZNRNzORQ~OI PRR}I QRSFRRTH#TRVEoURWGHVRXCmRYOPR[CLYRy ZRc ROPRCL]Rn`* ^Rb ROPRCLaRPROPRCLdRB\ROPfR^RCLhR~24 iRUROPkROߌ lRkmR` =nRo oR_xpR\ qRT rRX sRKtRM݆uRAڦROPRCLxR@gvyRNTxzRIkROPRCL}RG~RGFRRF} RD5ROP~RCLRK RP}/ Rg3Ra)R[FfRCL R: RCLROP RDSM RCLRCLRDR CLROPRl5h RLM RCLRCLRCLRNf Ru4Rfs3RhR HR"KR#O{RLN>!RMLf"RNv #RPVfg$RQJ%RRKw&RSK'RTJ[(RW{ RZCL*R\C{R_CL-RaAҩRbOPRdCL0Rfr 2RhGM3RjHTG4RkC/RlOP6Rn]RoCL8RqA^vRtCL:RvARyCL<R{u ~ =R|EV[R~OPRCL@RLARGBRJRCLRCLERu ~ HR}IRnP Rn`* Rn R@XRHRBUZRkh RkK RIRERzJREVRORBFRKRr RM RoK RPtRy%RK3RLRg+ RKRjRCLRERYSROPRCLRCLRCLRCLRCLRCLRCLRNgRG6gRYgRkHRkHR kHR"CLR#CLR$CLR%CLR'CLR(CLR)CLR*]R+CLR,CLR-CLR/NR1CLR3CIR5CLR6CLR8v R;CLRRT?RF.@RE}ARV`FROPDRDERF FREGRNl!RBgRGRBfRv Re;Ru] RJz RHi" Rb. Rdq !RCL RCLRCLR` RCLRlo RIpRFbRi\ RRrs RCLRCLRCLRCLRCLREȗRHRzcz RjR](Rfq RV Rhm Ro RCRR0RCR^RB= R NR T5R D eRvt RVk RjU R``RT`R^ R@CLRACLRCCLRDCLRECLRHOPRIOPRKOPRMCLRPGRQGRRH RSGRWLRXL}eRg}fR1Awb MRrs. NRtC0~ORvBPRwA%QRzT*#RR{OQKSRq TRw VR[ XRC[YRE'[Rc\R\a^Re)_Rx `RD)aR}{bR~.cR|pRCLRCLRCLgRk3 RCLRCLRCLRCLmRH7DnR~oRS RCLRCLRCLRCLRCLRCLRCLwRB>xRS{yRTzROP{RYfg |Rc}Rw8~~R ]R CRGj5R}R ~ROPRX |RCLRED;RDZRFs1R"Q?uR$CLtR%CLR'uF R)k R*hu 5R,H}6R-I]8R/CLR0CL:R3Kr;R6M<R7O ?R8@R:OPRx:D CR@A_DRCA=\ERlaQFRmfGRoOHRpFyI LRqi=qMRrZ\)NRszHORv~z PRw}; QRxFRRyGeTR{EUR|G5VR}B4R~OPRCLYRx ZR~ ROPRCL]Rm ^RaqROPRCLaRP|ROPRCLdRBrdROPfR^RCLhR}h iRSROPkRP3 lRopmRcnRlff oR_pRb qRZ = rR\8R sRKAtRMpuRAݍROPRCLxR@gvyRKzRI ROPRCL}RG~RG"RFU0RD#ROP~RCLR~ RP- R`R]3RVfRCL R RCLROP Ru RCLRCLRDQNRCLR OPR6l5h R7K R:CLR;CLRR Sм?R F@R Eo{AR UR OPDR IER EFR EGR NyR DfR HR CYR v R eER tV R M R Ku. R at R c !R CL R CLR CLR ] R CLR k R l R ETR g R G R q R CLR CLR CLR CLR CLR ER HxR zT R jR ]%R ev R U R hq R qs3R CR UR CsR ^R (Bf R +OR ,VD:R -CR 0vv R 1Mx R 4o" R 6`fR 7VR 8^ R 9CLR :CLR ;CLR =CLR >CLR AOPR BOPR COPR FCLR IGR JGR KHR LG ZR OLR QL}eR ]}fR'A MR s NR CBQOR Co>PR B ZQR TRR OSR pPL TR ~ ^ VR Zy XR C(TYR E[R q&\R L^R d}_R x `R BaR |bR ~=qcR }R CLR CLR CLgR k@@ R CLR CLR CLR CLmR GtnR ~9oR RI R CLR CLR CLR CLR CLR CLR CLwR } >xR NLyR R#R OP{R Y |R b-}R w7~R ]R CR G,R }~ ~R OPR V |R CLR E8wR D\R FR JuR CLtR CLR u3 R !kP R #h 5R %H6R &I gR (CLR )CL:R +J;R TH|g<R UO[?R V R XOPR ZCLBR \x+ CR ^@{~DR aA)ER cUFR dizGR eW\)HR fF& LR gkMR h]RNR i~ROR l~ PR m} QR nF:RR oGTR qEUR rGtVR sBR tOPR vCLYR xw ZR y~# R {OPR }CL]R mi ^R `R OPR CLaR PR OPR CLdR B?R OPfR ^R CLhR }f iR P%R OPkR P lR l33mR `ffnR m oR `1pR ^3 qR V rR Z sR KtR MuR AR OPR CLxR @gvyR IozR J3R OPR CL}R G-a~R GR F:R DR OP~R CLR ~ R OH R [c3R ]əR WLR CL R ~ R CLR OP R @A R CLR !CLR #DgR &CLR )OPR ,k R -JK R 0CLR 1CLR 2CLR 5N| R 6efgR 7`R 8^R ;GR =C4R >H=qR ?GG!R @X33"R Bz4#R CX $R DJJ%R EK&R FK'R GK=(R HGnR JCL*R LC6]R OCL-R QAR SOPR UCL0R Wq3 2R G3v3R H5s4R C6]R OP6R ]tR CL8R @R CL:R AҩR CL<R tz =R E#R OPR CL@R LAR FBR NyR CLR CLER sl HR FDIR c R n R oK R @XR HR B)R k R k R I/jR ER xdR EVR OR ADR KR r R LR mv R QR y%R K()R LXR ER |Tl?R }E1@R ~EmAR V{R OPDR KER E@FR EGR NR D4R IvfR D,R t7 R eIiR tC] R I R H R a[o R cM !R CL R CLR CLR _ R CLR j R x R EGR f R lR q^ R CLR CLR CLR CLR CLR ER HR z)B R jR ]%R e R T. R hTQ Rr\RCRS||RCR^RBf RORWIRD-}R!vY R"Uc R%k3 R&`S3R(VR)^ R*CLR+CLR,CLR-CLR/CLR2OPR3OPR4OPR6CLR:GuR;GRRCLROPRk/ R I7 R#CLR$CLR%CLR(NH R)eR*aR+_R.GrR0ERR1IR2H!R3Mٙ"R4r#R5^Y$R6Ju%R7K\&R8Kr'R9J(R<{LS R?CL*RiBRlCL-RnAZRpOPRrCL0Rtp 2RvG3RwH$84RxC0RyOP6R{]jR|CL8R~@RCL:RARCL<Rt' =REROPRCL@RLARFBRCRCLRCLERrs HRIRie! Rn RB REVRHRB Rk Rk RI=RERzJREVRPRAGRKRr RLRmYk RQRyRK:[RLRD@ RKURjRCLREuRXHROPRCLRCLRCLRCLRCLRCLRCLRXc3RM\R]3RGHRGHRMHR0CLR1CLR2CLR3CLR4CLR5CLR7CLR8]R9CLR:CLR;CLRCLRACyRCCLRDCLRFx RHCLRICLRJCLRMOP$RNIi%ROI&RRKRUCL*RWG>,RXVaRYOP.RZNR\CLR]CLR`OPRbCL3Rdl4RfA6RipY7Rjd348RklL9Rmu:Rgf;Rk&g<RjROP>RTi?RE:@REh:ARV3ROPDRKEREFREGRN9RDRIhRD1Rt RdkRs] RG} RF S R` Rbs !RCL RCLRCLR]h RCLRjD RIZRD- Re5 Rƹ-Rqt RCLRCLRCLRCLRCLREmRHRzF^ Rj6R]%Rdq RU9 R h(r R pLRC}ROoRCR^lRBff RPRYC RDORv- RN R!o" R"`fR$YR%^ R&CLR'CLR(CLR*CLR+CLR.OPR/OPR0OPR2CLR^GR_GR`H?lRaFRdLzRhLz}eR\}fRAP MRsz NRCSnORB$PRA:QRT-RRO SRo TR| VRX XRBfYRE [R\RHWw^Rd_Rxr `RAaR|bR|QcRz >RCLRCLRCLgRk6 RCLRCLRCLRCLmRGnR~4oRO RCLRCLRCLRCLRCLRCLRCLwR}GxROpyROROP{RW33 |Rd}Rw]~R]RCRFR} ~R$OPR'qH |R)CLR,E$R-CMR.FfR2L;uR4CLtR5CLR7v/ R8jx R:g 5RCR?CLR@CLRBzu RECLRFCLRGCLRJOP$RKI%RLIf&RNPlRQCL*R|G.,R}V R~OP.RNY]RCLRCLROPRCL3Rl4RA6Rkٙ7RgY8Rm 9RmYq:Re3;Ri<RhROP>RTc?REϣ@RE^AARVxROPDRKBEREFRELGRNRE4RI3RDNfRsc3 RdGRra RHw RF9 R` Rat !RCL RCLRCLR^p RCLRi RIpRCRex RKF Rq9 RCLRCLRCLRCLRCLRE|RHIRy RjsR]""Rd D RTu Rg RofR CTR UR CR ^xRB) RN~RZ:RDRv4 RT[\ Ru; RD`REZfRF^ RHCLRICLRJCLRKCLRLCLRPOPRQOPRROPRTCLRWGx RYG7RZHB$R[FR^LuR_Lu}eR^%}fR7Bu# MRztq NR|C:yOR}C6PR~AZQRTRRNJSRo TR| VRX[ XRBnYRD[R`,\RY[^Rd_Rx `RA)waR|bR{cRyqRCLRCLRCLgRj RCLRCLRCLRCLmRFnR}|oRN׷ RCLRCLRCLRCLRCLRCLRCLwR@BxRMffyRQ=qROP{R V |Ra }Rwɨ~R]RBRFR~ ~ROPRQ |R!CLR$EGR%C\R&FR)PuR+CLtR-CLR/v R0jS R1gi 5R3G'6R5HwR7CLR8CL:R:K;R=G L<R>Pi_?R?~Ü RAOPRCCLBREx CRGz} D:@%E:UF: i=qG: LH: E3 L: FQM: pQ N:VGO:Fv P:~OI Q:FR:GT:EP_U:FV:B:OP:CLY:v( Z:}; : OP:"CL]:$k=" ^:&\:'OP:)CLa:,K:-OP:/CLd:1A/:3OPf:5^:6CLh:8|C i:9V :;OPk:dO8 l:em m:fb\n:gmz o:j_p:l]Q q:mW = r:nX3 s:oKt:pM,u:qA:rOP:tCLx:v@;y:wMz:yJX:{OP:}CL}:GJY~:F:Eӻ:Cԉ:OP~:CL:}: :N :m :^ :mg:CL :{ :CL:OP :s$ :CL:CL:D:CL:OP:l& :H :CL:CL:CL:M :V:I33:P@:G'^:E:I{:HH!:H":f&g#:Qf$:JN%:JR&:Ko':I(:y] :CL*:Bw:CL-:A:OP:CL0:pA 2:F3:Gn4:Bތ:OP6:.]l:/CL8:1@X:4CL::6AO:9CL<:;s =:OP:@CL@:CLA:DF(B:EJ:GCL:HCLE:JqHF H:L~6!I:OaM :RB :SB :TEV:UHؒ:VAҩ:WlR :Ylo :ZIZ:[E:]xd:`EV:aP:bALN:dJ:gr :K1C:l3 :R:y%:K:L~z:Br :K):jp:CL:E:Y:OP:CL:CL:CL:CL:CL:CL:CL:Ng:G6g:Pg:~R:_:_:CL:CL:CL:CL:CL:CL:CL:]:CL:CL:CL:M:CL:Cy:CL:CL:{ :CL:CL:CL:OP$:I`%:I&:KW:CL*: G,: VT: OP.: NP:CL:CL:OP:CL3:l,4:A6:c7:`&f8:r&f9: lǠ::"^;:#fٚ<:$e`:%OP>:&T U?:'E@:(ES_A:)U:*OPD:+MXOE:,EF:-DG:.N7:XD:ZI:[DD:\s :_`:`ra :aK:T :bIce :d_i :eaj !:hCL :iCL:jCL:l\ :oCL:ri :sm- :tC:uejU :vDA :wpX :zCL:{CL:}CL:~CL:CL:E:H:z :j:]"":cx :TC :gv :qVf:C.:T:Cn.:^k:B :OU>:[&:D:u :NE :q{ :`:Zf:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:Gc3:G:H*:F:Lu:Lu}e:v[}fR/B M:.t N:1C*O:2BP:3AcQ:6TR:7N3S:8o7 T:9| V::X[ X:Db[:?^\:@LT^:Cap$_:Dx `:EAa:H~=qb:I}{c:J{k:LCL:MCL:NCLg:Qj :SCL:UCL:VCL:WCLm:ZFfn:|go:N׷ :CL:CL:CL:CL:CL:CL:CLw:u\*x:OaHy:O:OP{:V |:c+}:v~:]:B:F:AVx~:OP:Q-F |:CL:E<:C:Ft:I"u:CLt:CL:yq :j :gfg 5:G|6:Hu:CL:CL::Kb;:N<:P&?:~s :OP:CLB:w C:ED:@E:UF:gG:S >H:DW L:G(M:r=q N:X{O: P:~z Q: FR: G} T: E$ U: F9V:B:OP:CLY:v Z:| :OP:CL]:kQ ^:ZD:OP:CLa:!Jt:#OP:MCLd:OA:QOPf:S^:TCLh:V{a i:WU:YOPk:ZO l:[km:\`n:]oJ= o:`_H~p:b\. q:cT r:dX s:eKat:fM,u:gA&:iOP:kCLx:m@4y:nK`$z:oJ|1:qOP:sCL}:uGgR~:wFgz:xE:yC :zOP~:|CL:~|= :Nf :mFf:^g:m3:CL :z :CL:OP :~s :CL:CL:CB:CL:OP:l :IH :CL:CL:CL:MH :X):K`:Q:F:E޹:I:HH!:K":pg#:U$:J?e%:Jg&:K-':I9(:}f :CL*:B5:CL-:BE:OP:CL0:p- 2:FA3: Gl4:!B:"OP6:$]l:%CL8:'@X:*CL::,A:%:/CL<:1s =:2D:4OP:6CL@:9LA::FB:CL:?CLE:Aqˈ H:C|0&I:F[= :IB :JB :KEV:LH :MA:Nl :Ol8 :xIiN:zE:|x:EV:Pv:ALN:JP:r :K :lR :P:yR:JP:Ly:B :KF:k@:CL:EY:YS:OP:CL:CL:CL:CL:CL:CL:CL:Pg:KC3:Yg:34:_:_:CL:CL:CL:CL:CL:CL:CL:]:CL:CL:CL:M:CL:C:CL:CL:~l^ :CL:CL:CL:OP$:I:%:IO&:J:CL*:F,:U:OP.:Nڐ:CL:CL: OP: CL3:lY4:A6:e@7:T8:^9:l&::Aag;:Bg<:Cgg:DOP>:ET?:FE(@:GEGA:HV:IOPD:JNrE:KElF:LDG:MO:OJ3:PMX:RCc4:SrS :V^ɲ:WrЫ :XH :YF :Z_ :\` !:_CL :`CL:aCL:c^ :fCL:hj' :jy{ :kD:le :n?O:qp :tCL:uCL:wCL:xCL:yCL:E:H:z)B :j\:]%:c[ :Sx :g :r :Cy:N:CVL:^T:B{ :PV:]?:D^:u :Tu :tU :`p:[f:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:GN^:G:H: F: Lz:Lz}e:nhFT}f:Cv M:*t0 N:,C)\O:.BP:/A/Q:2SxR:3NS:4o T:5| V:6Y% X:8BzY::Dֺ[:;&/\:j ^:@b+P:AOP:CCLa:FM?:GOP:ICLd:KA :MOPf:O^:PCLh:R{ i:SRo:UOPk:VOA l:Wmm:Xc =n:Yo o:\^Ip:^\ff q:_U( r:`Wz s:aKt:bMpu:dAD:eOP:gCLx:i@y:jIz:kJ:mOP:oCL}:GJ~:F?:E:C:OP~:CL:|` :N!V :s:by:pg:CL :yl :CL:OP :C;E :CL:CL:C:CL:OP:lD :Gh[ :CL:CL:CL:M& :V:I:O:F:F:J{:I!:Ks3": of#: Yٙ$: J2%: J&: K)': I(: y# : CL*: Bc: CL-: B): OP: CL0: pA 2: F3: G4: B: OP6: ]l: !CL8: #@`2: &CL:: (AO: +CL<: -sF =: .D: 0OP: 2CL@: 5M%A: 6FƐB: 7Nh: aCL: bCLE: dq H: fAI: gfF` : jB : kB : lEV: mH : nA: oll : pl : qIw: rE: tx: wEV: xP: zA:Q: |JP: r : K: j : T: y$: JP: Lu]: A : JZ: k6: CL: E: Y<: OP: CL: CL: CL: CL: CL: CL: CL: Ng: G6g: Ng: 34: _: _: CL: CL: CL: CL: CL: CL: CL: ]: CL: CL: CL: N: CL: C: CL: CL: Brd: CL: CL: CL: OP$: I%: I&: Q9: CL*: F,: V): OP.: N>: CL: CL: *OP: ,CL3: .lC4: 0A6: 3r7: 4k8: 5u&g9: 8k:: 9d,;: :dg<: ;kg: : =S?: >EV@: ?E9A: @Vz: AOPD: BPVE: CE=F: DDG: EO z: IB3: JGf: KB|: Lr{ : PcT: Qr B : RE! : SDp : T^; : U`b !: XCL : YCL: [CL: ]\&w : `CL: bi/3 : cH: D: d( : @f : p< : CL: CL: CL: CL: CL: E]: H: z % : j>&: ]"": b[ : SS : gM : r : B: S A: Cq: ^;: B) : NJ: ^<: D: u6 : M : q3 : `: Zf: ^ : CL: CL: CL: CL: CL: OP: OP: OP: CL: G7: G|: H : Fk: Lp: Lp}e: Y}f:C0 M: t N: !C$^O: "BP: #@Q: 'SR: (N=S: )oI T: *{d V: +W X: TB~Y: VD<[: X{ \: YPuU^: \d ~_: ]xU `: ^@a: `{b: a~Lc: b{R: eCL: fCL: gCLg: jjP : lCL: mCL: nCL: pCLm: sFun: v}go: wN/ : yCL: zCL: {CL: |CL: ~CL: CL: CLw: z(x: JHy: Oq: OP{: T |: c_}: wS~: ]: BG: F: @R~: OP: Sh |: CL: EA: C8: FFD: MBu: CLt: CL: w : jM : g 5: GI6: HV: CL: CL:: K;: H=<: Q?: ~ : OP: CLB: w3 C: @D: @gE: UF: j\G: R\H: D" L: GffM: rz N: WO:  P: !~' Q: "FyR: #GCT: %DU: &F:V: 'C: (OP: *CLY: ,w Z: -|oQ : /OP: 1CL]: 3jp ^: 5dX: 6OP: 8CLa: :N: : jE: lx: oEV: pO: qA(T: sJP: vr : xJ: {j : |Lv: x: JP: Lf: @Q : J: jp: CL: E: Xٸ: OP: CL: CL: CL: CL: CL: CL: CL: Yg: L: _f: ~R: _: _: CL: CL: CL: CL: CL: CL: CL: ]: CL: CL: CL: M: CL: C0: CL: CL: @۶: CL: CL: CL: OP$:H%:Iy9&:Jn:CL*:F^y,:V~:OP.:ND:CL:CL:!OP:#CL3:&k4:(A6:+s37:,kff8:-sY9:/k7%::1k4;:2rg<:3oFg:4OP>:5S,?:6E.2@:7E,bA:8V1:9OPD::PhE:;E F::I!:Cg":d#:Aff$:JR%:J6&:K':He(:xP :CL*:B1 :CL-:BE:OP:CL0:1o 2:3FD3:4Gi4:5Bv:6OP6:8]:9CL8:;@r:>CL::@C6]:CCL<:EsF =:GD:IOP:KCL@:NL]A:OFB:PLŭ:RCL:SCLE:Uo H:W~I:ZCΫ :]B :^B :_EV:`I:aAO:bm<8 :dmYk :eI:fE:hxd:kEV:O:@d:JP:r :J:k. :RXG:x:JP:LaS:@Qi :Jn:k:CL:E:Xd:OP:CL:CL:CL:CL:CL:CL:CL:Yg:Pg:b:GH:S:GH:CL:CL:CL:CL:CL:CL:CL:]:CL:CL:CL:MX:CL:Ca:CL:CL:@A:CL:CL:CL: OP$: H%: Io&:L7:CL*:FCU,:V:OP.:Ni:CL:CL:OP:CL3:"k4:$A6:'qfg7:(h@8:)rf9:+k ::-lf;:.r@<:/n:0OP>:1Sj?:2E @:3EA:\V@:]OPD:^UE:_DF:`DG:aO:eD:fI):gDI:hq5P :kfQ:lp :mKR :oH :p]+ :q_x= !:tCL :uCL:vCL:x[; :|CL:~h :~ :D:cx :O:pA :CL:CL:CL:CL:CL:Eo:Hpc:z % :i:]"":a :S :f :r :B:R:Cf:^8:B) :Nҡ:_:D:ua :LoE :w :`f:V:^ :CL:CL:CL:CL:CL:OP:OP:OP:CL:G:Gp:H%!:F:Lp:%Lp}e:c}f:C  M:@s N:BCO:CB#P:D@;"Q:GTFR:HNS:Jo,| T:Ky[ V:LV X:MBY:OD[:PO4\:QE1^:Uf%_:Vx `:W@pa:Y}Gb:Z{\*c:[{:]CL:^CL:CLg:jUa :CL:CL:CL:CLm:F[n:|o:Lw2 :CL:CL:CL:CL:CL:CL:CLw:@x:Nfy:Q :OP{:S |:e}:xJ~:]:Br:F:~; ~:OP:Oc |:CL:D:B:F::JP!u:CLt:CL:x :i :f< 5:G6:HX:CL:CL::KP;:F<:S?:} :OP: CLB: w_ C: |DD:@E:Z F:hG:iH:Cɓ L:h(M:WN:yQO:@nP:Fv Q:F:R:GT: DaU:!EV:"Cѣ:#OP:%CLY:'| z Z:P{a :ROP:TCL]:Vi& ^:XPݠ:YOP:[CLa:]I ::_OP:aCLd:cA:eOPf:g^:hCLh:jz? i:kX:mOPk:nO2 l:osffm:pin:qp o:t_Dp:vc{ q:wY3 r:x\ s:zKmPt:{Mܝu:|B-l:}OP:CLx:@Xy:S>9z:J:OP:CL}:G~:E:E*:Cu}:OP~:CL:{w :L- :I:L:E:CL :|& :CL:OP :}> :CL:CL:C=:CL:OP:kd :E :CL:CL:CL:K :ZL:W3:X33:FCL::@D%:CCL<:EsU: =:FDnQ:HOP:JCL@:MLYMA:NF}B:OK}:QCL:SCLE:}ouq H:~pI:YO :B :B :EV:I:AAh:mv :m :I:E:xd:EV:O:@n:JP:r :Jg:k. :PI:yF:JP:L]: :J:jI:CL:E:ZQ:OP:CL:CL:CL:CL:CL:CL:CL:Yg:Ng:aP:GH:GH:GH:CL:CL:CL:CL:CL:CL:CL:]:CL:CL:CL:MI:CL:C=:CL:CL:Bc:CL:CL:CL: OP$: H%: Ig"&:PƜ:CL*:F<,:V:OP.:N:CL:CL:EOP:GCL3:Jk4:LA6:N\@7:Oc38:P[9:Sk\::Un34;:Vq<:Wq:XOP>:YS?:ZDM@:[E A:\V-6:]OPD:^T܄E:_DF:`DG:aOB|:dK:fP3:gJ:hqi :keS:lpg :mI  :nGn :p]< :q_/ !:tCL :uCL:vCL:x_ :{CL:~gJ :kw :Cμ:c :I>:pY :CL:CL:CL:CL:CL:Ej:H:{ :iO:]"":aD :R :f/ :n:Bj:PB:C':]R:B :Nߞ:`Q:D W:uS[ :V :u; :`f:ZC3:^ :CL: CL:CL:CL:CL:OP:OP:OP:CL:F:Gn:HA<:Fُ:"Lp:#Lp}e:\7}f:C M:=tE N:@BO:ACnP:B@> Q:ESqR:FN~S:Gouq T "y>t V "U X "BY " D [ " 3\ " P^ "b "SA? "D^@ "EOA "VY "OPD "UlmE "D-F "DG "O] "K "Pg "JX "r^  "eL " pDP  "!F9  ""D2  "#\U  "$^y ! "(CL ")CL "*CL ",Z}W  "/CL "1gx  "2yN  "4Ca "5b  "7 ":o۔  "=CL ">CL "?CL "ACL "BCL "EEa "FH "Iy  "Ki "N] "Pa  "QQ  "RfM  "Up3 "XBF "YN "ZC0^ "]t "B  "OW "`C "C "u'  "K  "n3  "`c3 "Zf "^  "CL "CL "CL "CL "CL "OP "OP "OP "CL "F "Gi "H0 "F "Lp "Lp}e "7C }f "D#c M "s N "CGO "BP " Q "SxR "NWS "qˈ T "y V "U X "BGY "D][ "^\ "Ll^ "cZ_ " y ` " @zBa " ~b "c "{ "CL "CL "CLg "jZ "CL "CL "CL "CLm "FOn ""|o "#LF "MCL "OCL "PCL "QCL "RCL "SCL "TCLw "W@px "XQ=qy "ZPG "[OP{ "^R | "`c} "ay~ "c] "fB_ "hFƍ "k}T ~ "mOP "pTSI | "rCL "uD= "wBQ "xFSO "{Mu "}CLt "~CL "xF  "iQ  "f 5 "G%6 "H "CL "CL: "K); "Fo< "TNZ? "|= "OP "CLB "w% C "z D "@AE "X34F "gG "MH "CO L "cM "VN "u\*O "@CP "^ Q "F~R "F5T "D(U "E.V "DfW "OP "CLY "{ Z "{ "OP "CL] "h ^ "Fs "OP "CLa "C  "OP "CLd "AK "OPf "^ "CLh "y i "TZ "OPk "O l " q =m "!g33n ""of o "%^@p "']. q "(UH r ")Y s "+KOIt ",Mu "-Bv ".OP "0CLx "2@}By "3Nz "4K" "6OP "8CL} ":G~ "CD "?OP~ "ACL "C{=  "FLK  "GHf "HK0 "IEɚ "KCL "M@ "xCL "{OP "~Y "CL "CL "B "CL "OP "l&  "Dl "CL "CL "CL "KŨ  "_y "YI "Yff "E "H  "M > "L{! "MS3" "ls3# "K4$ "IV% "J& "KL' "IR( "x "CL* "Aq "CL- "B  "OP "CL0 "n% 2 "F 3 "G4 "Bc& "OP6 "] "CL8 "@Je "CL: "E] "CL< "rk = "D4K "OP "CL@ "L^\A "F?lB "E- "CL "CLE "me H "I " m4  "B  "B  "EV "Iw "AK "me  "n  "I "E "Ax2 "DEV "EOp "F@ "HJP "Kr  "MJP "Pj'  "QE "Sy&" "TK "UL[ "X~\  "ZJā "\jaN "^CL "aE "bZQ "cOP "eCL "fCL "gCL "hCL "iCL "kCL "lCL "oYS3 "pM "qYg "rGH "sGH "tGH "vCL "wCL "xCL "zCL "{CL "CL "CL "] "CL "CL "CL "Mf "CL "D "CL "CL "@ "CL "CL "CL "OP$ "H% "IU & "NN "CL* "F*, "U "OP. "N7 "CL "CL "OP "CL3 "kRr4 "A6 "_7 "Yff8 "R9 "l^: "t`; "t< "| " OP> " So? " EO@ " EA " U( "OPD "S(9E "D݄F "DG "Oá "L3 "Q "Kd "r  "c* "o<  "Dp  " C  "!\  ""^p ! "%CL "&CL "'CL ")]y  "-CL "/g  "0E@ "1B "2b.  "3@f  "4o  "8CL "9CL ":CL ";CL "k "~]t "B)  "N "aZw "C "u  "S5  "tw  "` "[33 "^  "CL "CL "CL "CL "CL "OP "OP "OP "CL "FC "Gm* "H#P "FR "Lk "Lk}e "3X}f "C M "s N "CO "C̨P "c Q "SR "N^S "oK T "x V "UF X "BY "DM{[ "\ "I^ "e_ "y ` "@pa "|\b "}c "{ " CL " CL "4CLg "7i "9CL ":CL ";CL "kz " *K) " ,OP " .CL} " 0Gu~ " 2EUO " 3D " 4C' " 5OP~ " 7CL " az$  " cK  " dKf " eP " gFY " iCL " jA$Z " mCL " pOP " sFn " vCL " wCL " yB " |CL " OP " kd  " DM " CL " CL " CL " Kѐ  " _ " Yg " Z9 " EW " F) " KT{ " I)! " N9" " @# " `$ " I% " J& " KU' " J/ ( " {/9 " CL* " AZ " CL- " B} " OP " CL0 " m 2 " Ev3 " F4 " B! " OP6 " ] " CL8 "  " CL: " E " CL< " r# = " D " OP " CL@ " L_A " F7DB " K " CL " CLE " n4a H " G%I " T  " )B  " *B  " +EV " ,Iw " -@. " .n  " /n%  " 0I  " 1E " 3y " 6EV " 8O " 9@t " ;JP " >r  " @JP " CixB  " DE " Fy " GK&X " HL[ " K|_  " LJ  " Nht5 " QCL " TE? " UZQ " VOP " XCL " YCL " ZCL " [CL " \CL " ]CL " ^CL " bNg " cP " _f " GH " GH " GH " CL " CL " CL " CL " CL " CL " CL " ] " CL " CL " CL " M " CL " D " CL " CL " B  " CL " CL " CL " OP$ " H% " IO@& " O1 " CL* " F, " Vu  " OP. " O  " CL " CL " OP " CL3 " k!R4 " A6 " X 7 " U8 " Pg9 " mN;: " lg; " v < " q  " OP> " Rz? " E@ " DA " T? " OPD " PxE " D݄F " DG " O9 " L " Q3 " K` " sE  " ^ " o-  " C%  " B`  " \Rp  " ^5 ! " CL " CL " CL " Z4  " CL " !gL  " #K7 " $B~ " 'b(\  " (I.  " )o  " TCL " VCL " WCL " XCL " YCL " \EP^ " ]H " `y{  " ci " f]"" " g`q.  " hP  " ie  " lof " oB " qS " rCy " s] " uB)  " xN " yaw " zC " ~tY  " M  " s  " ` " [ " ^  " CL " CL " CL " CL " CL " OP " OP " OP " CL " F " Gr " H " F " Lp " Lp}e " (]e}f "C} M " sM N " CO " CP " Fv Q " S>R " NmS " nT T " xR V " UF X " B,Y " D5%[ " \ " Gg^ " aQ_ " y9 ` " @SRa " "@4b " #c " $\ " &CL " 'CL " (CLg " ,i " .CL " /CL " 0CL " 1CLm " 4F1=n " 7|o " 9Lb5 " ;CL " CL " ?CL " @CL " ACLw " E{zx " FKy " GQ " HOP{ " KRUV | " Mc} " Nz~ " Q] " TBJ " UFG " } ~ " OP " U | " CL " DT " B " F@w " Ju " CLt " CL " xff  " iV  " f33 5 " G6 " G$ " CL " CL: " I; " FO< " Uk? " |} " OP " CLB " wl C " @]D " @&bE " ZF " dG " VH " B? L " aM " TN " rO " @fP " @Q " F?R " FT " CU " EvbV " Dz " OP " CLY " z % Z " {/9 " OP " CL] " gn ^ " @ " OP " CLa " }h " OP " CLd " @ " OPf " ^ " CLh " yl i " NN " OPk " N' l " qm " hn " p o " ^ip " _ q " V8R r " Xf s " K()t " Mu " Dy " OP " CLx " Ay " HOXz " IK?m " KOP " MCL} " OGQ~ " QE0< " RDs  " TCo " UOP~ " WCL " Yzcz  " [K  " \I " ]O " ^F3 " `CL " bB) " eCL " hOP " kE} " nCL " oCL " qB " tCL " wOP " zlD  " {ED! " ~CL " CL " CL " KV  " ` " [c3 " Y " E " H " NT{ " K ! " B" " p# " Df$ " IE% " Jb& " Kvj' " Jy( " zu " CL* " A " CL- " B} " OP " CL0 " mh 2 " E3 " F4 " AՐ " OP6 " ] " CL8 " Fv " CL: " ET " CL< " q^ = " C " OP "CL@ "L_A "FFB "I "CL "CLE "m H "C}I "c  " B  "!B  ""EV "$I  "%@ "&nB  "'n`*  "(I  ")E "+x ".EV "/O "0@b "2JP "5r  "8JP ";ixB  "y  "?L "@L] "C|_  "DJ "Ff  "HCL "KE "tZ" "uOP "xCL "yCL "zCL "{CL "|CL "}CL "~CL "Ng "O< "Yg "GH "GH "GH "CL "CL "CL "CL "CL "CL "CL "] "CL "CL "CL "Mf "CL "D "CL "CL "@u "CL "CL "CL "OP$ "Hyv% "IGK& "H "CL* "F, "U "OP. "OZK "CL "CL "OP "CL3 "k<4 "A6 "Q7 "KL8 "K9 "mu: "g; "p< "o  "OP> "Q|:? "D@ "DA "R "OPD "OgHE "DDF "DG "Npw "Lq "Q "Jg "s  "_8 "o<  "E3  " C  " \5  " ^ ! "CL "CL "CL "\  ">CL "@gJ  "AI{ "CC "Dc!(  "FXh "IoXB  "LCL "MCL "NCL "PCL "QCL "TEI$ "UH "X{  "Zi| "]] "_`b  "`Pty  "aeн  "dnc3 "gB "hPS "iC̟ "k^ "mBH  "pN "qb:S "rD) "ut  "vP̦  "q&f  "`3 "[3 "^  "CL "CL "CL "CL "CL "OP "OP "OP "CL "FW "Gs "H  "G| "Lk "Lk}e "FR }f " C M "s N "CCO "ChP "Fv Q "TNR " NS " o T " yx V " U X " BPY "D$[ "J\ "H'^ "d/_ "yr ` "@SRa "@b "@34c "{ "CL "CL " CLg "#i "%CL "&CL "(CL ")CLm ",F0Vn "/|4o "0L "2CL "3CL "5CL "6CL "7CL "8CL "9CLw "<@x "=M4y ">M "hOP{ "kS | "md_} "nx ~ "p] "sB> "tF "x} ~ "zOP "}Q | "CL "D "AV "FL "H/u "CLt "CL "x1  "h  "fQ 5 "H 6 "G "CL "CL: "Hzx; "K< "V ? "|oQ "OP "CLB "vI C "GD "@E "T\)F "k >G "[H "B L "a34M "SHN "r=qO "@xP "@Q "FR "FqT "C5U "EaV "D) "OP "CLY "z Z "zT "OP "CL] "g ^ "|R8 "OP "CLa "z "OP "CLd "@-S "OPf "^ "CLh "y1 i "W "OPk "NH/ l "pm "dQn "p o "2]p "4^B q "5U) r "6X s "8Kt "9M݆u ":Y" " "CL "CL "CL "K|  "d) "_@ "ZL "EY "EH "Jn "Hf! "D" "c3# "H9$ "I% "J& "K' "K ( "D "CL* "AH "CL- "A: "OP "CL0 "mYk 2 "E3 "FĽ4 "A "OP6 "] "CL8 "7 "CL: "FR "CL< "qes = "C "OP "CL@ " L9A " F)B " M " CL "CLE "n}[ H "C I "l  "B  "B  "EV "I  "@ "n}[  "n  "IΘ "E " yO "#EV "$O "%@b "'JP "*r  ",JP "/ixB  "1P "3y: "\K# "]LZ  "`|_  "aJ "cfk "eCL "hE "iZQ "jOP "lCL "nCL "oCL "pCL "qCL "rCL "sCL "vPg "wQ "xbp "yGH "{GH "|GH "~CL "CL "CL "CL "CL "CL "CL "] "CL "CL "CL "M "CL "D  "CL "CL "A "CL "CL "CL "OP$ "Hfj% "IA& "P "CL* "F q, "U- "OP. "O=o "CL "CL "OP "CL3 "k 4 "A6 "Q97 "M@8 "K49 "m1: "g; "o< "n, "OP> "Q? "D@ "DA "SE "OPD "TԙE "DѼF "DG "NI "Kə "Pg "J~g "t>M  "c` "$o<  "%I  "&G}  "'\&w  "(^'U ! "+CL "-CL ".CL "0\&w  "3CL "5gn  "6w|  "7D_ "9c/  ";  ">o;  "ACL "BCL "CCL "DCL "FCL "IEA "JH" "Mz %  "Oio "R] "S`x  "UP̦  "Ve7  "Yn "\AV "]N "^C "_^ "B  "O;D "b "C "t4  "Q  "w  "` "Z "^  "CL "CL "CL "CL "CL "OP "OP "OP "CL "FV "Gx "H "GP "Lk "Lk}e ";W)}f "C/ M "tTg N "CO "CRP "~ Q "T=*R "NS "r1 T "yx V "Uo X "BPY "D6[ "+\ "N[^ " c_ " y8 ` " @fa "Cb "Cfc "A) "CL "CL "CLg "is "CL "CL "CL "CLm "!F5n "$|io "%L "'CL "PCL "QCL "SCL "TCL "UCL "VCLw "YCx "ZNy "[Su "\OP{ "`R | "bb} "cz/~ "e] "hBB. "iFP "m},l ~ "oOP "rQ΅ | "tCL "wD "xA "zF? "}LRu "CLt "CL "w  "h  "fV 5 "H6 "G "CL "CL: "H; "Hnm< "Vh? "|C "OP "CLB "v C "}XD " E "R{F "c G "LH "B L "apM "TN "r O "@P "@&Q "F~R "FmeT "CU "EI"V "D "OP "CLY "zu Z "z[ "OP "CL] "g! ^ "xt "OP "CLa "x "OP "CLd "@4 "OPf "^ "CLh "x i "QCK "OPk "N+ l "rm " fpn ""off o "$]Zp "&\z q "(T r ")WaH s "*Kt "+Mܝu ",P ".CL "/CLx "1~s y "2Nsz "4lY "6CL "7CL} "9Fy~ ";E! "OP~ "@CL "By  "EK_  "FKL "GNg "HFf "JCL "LB "OCL "ROP "}Aw "CL "CL "B  "CL "OP "l5h  "ED! "CL "CL "CL "Ki  "cs3 "\6f "W "E "H޹ "NL "NT{! "CFf" "gFg# "Df$ "I^% "J|J& "K' "K<-( "x "CL* "A+ "CL- "A/ "OP "CL0 "mm 2 "E3 "Fd4 "B "OP6 "] "CL8 "c "CL: "Fb "CL< "p = "C "OP "CL@ "L-8A "EDB "K4 "CL "CLE "m H "~dI " T  " B  "B  "EV "I  "@ "n  "n  "I "E "y "EV "DP  "E@P "GJP "Kr  "MJP "Pi  "QP= "Sy!V "TK() "UL[ "X|_  "YJw "[hE& "]CL "`E "a[ "bOP "eCL "fCL "gCL "hCL "iCL "jCL "kCL "nYff "oQ "pb@ "rGH "sGH "tGH "vCL "wCL "xCL "yCL "zCL "{CL "}CL "~] "CL "CL "CL "M- "CL "D "CL "CL "AW3 "CL "CL "CL "OP$ "HX% "I:D& "MW "CL* "Fe, "U]R "OP. "OP1 "CL "CL "OP "CL3 "ky4 "A6 "X7 "Vy8 "I 9 "m: "dg; "m4< "l "OP> "S ? "D@ " DܜA " T "OPD "UZE "DF "DG "Nn "Lq "Q "K4 "u  "e|C "op  "HZh  "Ftp  "[  " ] ! "$CL "%CL "&CL "([v  "+CL "-gd  ".kd  "0Cw "1b.  "3a "6o  "9CL ":CL ";CL "=CL ">CL "AE=d "BHe "Ey  "GiP0 ] `  P  ejS  oI A N B ] BH  O b. Cu t  MZ  !uٚ  #`3 $[ %^  &CL 'CL (CL *CL +CL .OP /OP 0OP 3CL 6Fx 7G}x 8H 9G eLk fLk}e "3Ln}f "C  M s N C=O C/P  O Q T R N1S }h T y V Uqb X BtY C[ \ H^ a[_ yG ` @ea Db EHc D) CL CL CLg i  CL CL CL CLm Fbn |po LM9  CL CL CL CL CL CL CLw {x K\)y Q=q OP{ S"# | g~} v~ ] BO Fݠ }X ~ OP T- | CL D  AD -F@w 0Q8u 2CLt 3CL 5x  7hbN  8f 5 :H 6 ;GlB =CL >CL: @GB; AE[< BW?+? C|&  EOP GCLB Iv C K{vmD Nu E PVGF QhG RNH SBg L TgpM UXN VvO W@P X@$Q YFR ZF^T [CU \E0V ]D ^OP `CLY by Z cz?  eOP gCL] fb ^ t>u  OP CLa up  OP CLd @ OPf ^ CLh xP i I OPk N l t\)m in q=q o ]Wp `=q q VǮ r ZaH s Kt Mu M CL CLx | y N%z g CL CL} F~ E4 E Bb OP~ CL x  J  L O< Fc3 CL  C  CL OP  t   CL  CL C CL OP l~k  E  CL CL CL  KN  !e "]3 #Y\ &E (HǮ )K *J! +s34" -a # .|$ /I% XJm& YK' ZKf( [@^ ]CL* _A{ bCL- dA fOP hCL0 jm 2 lE3 mF4 nC oOP6 q] rCL8 t~Ü  wCL: yF/ |CL< ~pX = C OP CL@ L'A EB G CL CLE m H FI h  B  B  EV I/j @u n  oK  I E y EV O @, JP r  JP ixB  S y( K4 LZ  |_  IΘ i CL E [ OP CL CL CL CL CL CL CL Xf G6g ^ i  hG !kH #CL %CL &CL 'CL (CL )CL *CL +] ,CL .CL /CL 0M 2CL 5Da 7CL 8CL 9~;  CL AOP$ BHM% CI4z& EG HCL* KE, LUw MOP. NO` PCL QCL TOP UCL3 Xk4 ZA6 ^47 Uf8 GS39 mN;: h; pS3< oFg OP> S*b? DӍ@ DA TD OPD VE D5F DG O: Lq Q KC3 u  d[ o_Z  FH?  D2  [  ]+ ! CL  CL CL _=  CL g  mJ  C' b   o  CL CL CL CL CL E5B H]X zT  iA ] `6  O  e>k  p AS N C? ] BH   P  c  C`| t  V:  rU  `f Z&f ^  CL CL CL CL CL !OP "OP #OP MCL PFj< RGy SH TF WLk XLk}e S(}f 5Ci M stb N uCgO vBP w@Q zTMR |NS }@T ~y/ V V X B~Y C}[ ė\ J^ fX_ yc ` Bea Db EEc C\ CL CL CLg i2  CL CL CL CLm G`{n |4o LF  CL CL CL CL CL CL CLw @x OaHy P OP{ R | ct} x~ ] Bh F }~ ~ OP jx | CL D BJv F #Ju %CLt &CL (x  )hbN  +f 5 -H06 .G32 0CL 1CL: 3G'; 4Kx`< 5WH? 6{a  8OP :CLB yjD A5 E CXF Dj\G ELH FB.y L GgpM HY(N IxO J@fP K@VQ LFtR MF2T NC}U OEwV xE  yOP {CLY }xWc Z ~y]w  OP CL] eT ^ q  OP CLa s  OP CLd @ OPf ^ CLh xt i L OPk NW> l sm in o o ]4p ^ q YaH r Z33 s K t Mu K CL CLx | y K!z ] CL CL} Gg~ Et F B  OP~ CL xt  J  L Q| E  CL  C/ CL OP  ^  CL CL BM CL OP  l   G   CL CL CL K=  v lg e @E{} BH\ COJ> EL+! F" Gl&f# HF $ II1% JJgb& KK' LK{( OxH  RCL* TAO WCL- YA [OP ]CL0 _la7 2 aEx 3 bFJ4 ce{ eCL6 f] hCL8 jzF^  mCL: oEZ rCL< tq = uC4 wOP yCL@ L^A E B F CL CLE mYk H #I n?  B  B  EV I/j @; oK  B  I E x EV Op @ JP r  JP ixB  Lv x J LVe |_  I j͏ CL E [ OP  CL  CL  CL CL CL CL CL Pg M ]3 kH k kH CL CL CL CL  CL !CL "CL $] %CL &CL 'CL (M< *CL -D  /CL 0CL 2A 4CL 5CL 6CL 9OP$ :H9% ;I->& >R' ACL* CEZ, lUP mOP. nOF pCL qCL tOP vCL3 xj`4 zA6 }ZL7 ~V8 F9 m?F: f; n@< m OP> S? D@ DA T] OPD TkE D}F D6G O{ L Q J ur  b o  D  C  [g  ]K ! CL  CL CL Z4  CL g  |C  BE c  ٦ n  CL CL CL CL CL E. Hj  y]  i] ] `EA  O  e  r&f A R=_ C| ] B޸  N. c9 Co; t   K  4p"  6` 7Y 8^  9CL :CL ;CL =CL >CL AOP BOP COP FCL IFY  JGp KG LF PLk SLk}e J}f (C M mtE N oBO BP  Q TMR NpS AfT yjU V Vr X | Y C[ \ Kl^ b_ y ` DKa Ekb Gc G( CL CL CLg g  CL CL CL CLm HK6n }po L8=  CL CL CL CL CL CL CLw Aux Nky V{ OP{ R | cv} x2~ ] C2 F&t }; ~ OP U | CL E B:} FV5 Hu CLt CL #x  $hP  %f| 5 'H<6 (G'l *CL +CL: -Gg; .Gd< /XJ? 0{  2OP 4CLB 6vh. C `}ިD c* E eX34F fgG gKH hAU L iPHM jLN k[qO l@P m@3Q nF{)R oFT pCcU qEV rD܌ tOP vCLY wx Z yxH  zOP |CL] ~e ^ of  OP CLa qˈ  OP CLd A OPf ^ CLh xt i Q  OPk MT l v\m l33n nq o ^Zp ^ q U{ r X( s Jt M#u J΢ CL CLx |& y Jz P CL CL} GX~ E G B% OP~ CL x  J\l  O S@ EL CL  CL! CL OP  b΋  CL CL Cw CL )OP ,k  -Dl  0CL 1CL 2CL 5K3  6x` 7l  8gP ;E\ =G >L) ?K ! @rs3" A^# BAS3$ CIH% DJ\z& EK)' FKo!( Iy]w  LCL* N@ QCL- SA UOP WCL0 Yl 2 [E03 \F4 ]Y `CL6 a] bCL8 vܹ  CL: E CL< p = C4 OP CL@ K[A E^B D/ CL CLE l H GSCI U  B  B  EV I= @; B  B  I E x EV O   JP r  JP ixB  S S\? D5@ D-A U OPD V/^E DF DtG O R W P vF  \5 o<#  C,  A  [  \ ! CL  CL CL ^;  CL f&  E BF a  їk n  CL CL CL CL CL E' Hm zT  ii ] _޿  P*  d  oٚ A  Ow Cͭ ]\ Bz  #O $b &M )tU  *T.  -uf  .` /[f 0^ 2CL 3CL 4CL 5CL 6CL 8CL ;OP CL AF] CGuQ DG EG HLk KLk}e N}}f #Co M s N BO BE,P c Q TR NS s8 T w7 V Tbh X { Y C^[ EM\ GJ^ c _ y9 ` Ca Dffb G>c F  CL CL CLg i  CL CL CL CLm HYn })o KQk  CL CL CL CL CL CL CLw |x LQy T OP{ Q | b} y~~ ] C֯ E @l~ OP N | CL D B  F Lu CLt CL w'  hC  ho 5 HF6 G] HCL ICL: KG; LI < MXɎ? N{w  POP RCLB TvV hD iOP kCLY my@ Z nx  pOP rCL] te ^ u~l^  xCL yCLa {A ~CL CLd w3  CLf ] CLh xH i Q CLk Mw l t m j{n Ms3o ^kp ^ q Uu r WB s Jt Mu P< CL CLx |` y Kz S  CL CL} F~ Fn F B OP~ CL x0  J  H9 IFg C3 CL  CSc CL OP  lf  CL CL C CL !OP $l  %Cv%  (CL )CL *CL -KH>  .z /lC3 0f 3Es 5I 6NT{ 7M! 8@l" 9dY# :{s3$ ;Iw% K6' ?Kq( By@Y  DCL* F@gv ICL- KAW3 uOP wCL0 yl5h 2 {E3 |F4 }D CL6 ] CL8 u  CL: EV CL< p- = Cp OP CL@ KhA EB C2 CL CLE lo H @I e  B  B  EV IL\ @; B  B  I E y U EV Os ɘ  JP r  JP ixB  Lv xz\ K M  |_  I  k$m CL E [ OP CL CL CL CL CL CL CL Pg Oc3 _6f  GH  GH  GH CL CL CL CL CL CL ] ?CL @CL ACL BM DCL GDz ICL JCL L}I  NCL OCL PCL SOP$ TH@% UI & XH [CL* ]E, ^V _OP. `OL bCL cCL fOP hCL3 jjl4 lA6 o]97 pc&f8 qMg9 tm0S: vk; wq< p OP> S-? D@ DѼA UL  OPD TcE DɔF D*G Oc R W P w  d n҂  Bl  A  Zƥ  \^ ! CL  CL CL Y  CL f&  M2 C bTF  ϳ/ n  CL CL CL CL CL E z HS_  y   ix ] _LK  PJ  d  r) B  R\ D ]ۂ B)  !O4  "^ #Fa &tj.  'L  +r;  ,`p -[3 .^ /CL 0CL 2CL 3CL 4CL 5CL 8OP :OP b Dnc D CL CL CLg h  CL CL CL CLm Gn ~@o J  CL CL CL CL CL CL CLw A(x NRy Q\) OP{ P | e} ys~ ] C F 5 A=~ OP O | CL 2DG 4A 5En 8P8u :CLt ;CL >xb  ?g  @f 5 BH^A6 CGB ECL FCL: HG; II< JYg"? K{LS  MOP OCLB Qv- C SyD Vk E XdQF Yt >G ZcH [AKK L \XM ]TN ^cO _@YP `@b_Q aFQ"R bFT dCU eDV fDm gOP iCLY ky Z y]  OP CL] eT ^ @4 CL CLa B? CL CLd {a  CLf ] CLh z)B i Oɖ CLk MH l ym m n Lo _p \33 q T\) r W s J4t Mu M$N CL CLx |C y Nz St CL CL} F ~ F> F B OP~ CL xP  Ik  S@ Q P CL   Ci(  CL OP  bX'  CL CL Cp CL OP !lD  #C1  %CL 'CL (CL +KY  ,z -o0 .i 1E\ 3_ff \c  ]_R! ^of" _df# `Dٚ$ aI% bJ!h& cJ' dKz( eBv gCL* i@X lCL- nA2 pOP rCL0 tlR 2 vE%3 wFY4 xBq zCL6 {] |CL8 ~t!N  CL: K CL< p$ = Cw OP CL@ K'A EȬB Ey CL CLE l H II qz  B  B  EV IL\ EV B  B  Jw E x EV O   JP r  JP ixB  RF xz\ JP M  |_  I j CL E [ OP CL CL CL CL CL CL $CL 'Xvf (M\ )Yg *GH +GH ,GH .CL /CL 1CL 2CL 3CL 4CL 5CL 6] 7CL 8CL :CL ;M  =CL @Dz ACL BCL DA GCL HCL ICL LOP$ MH7% NI& PS SCL* VE+, WV: XOP. YO  [CL \CL ^OP CL3 jgv4 A6 Ul7 PS38 Jy9 mN;: k; r < q OP> S~? Dm@ DA Uh OPD UE D}F DϙG O R{3 WQ Pg xY  ` n  CΫ  B  Z  \a ! CL  CL CL \5  CL f  Mɰ Ar a-  O n  CL CL CL CL CL E H]X y{  in ] _   Pty   d  nVf Bb Q DP ]= B)  Ni \6 E2 t[   R-E  #uL  $`y %[3 '^ PCL QCL RCL SCL UCL VCL YOP ZOP \CL _G aGz bH+z cG7 fLk gLk}e dn}f >C  M s2 N B,O CP : Q TR NS p T vA V T X AY C[ \ I4^ `]_ y ` BIa F:b Dc EE CL CL CLg i  CL CL CL CLm Gn ~ o J+  CL CL CL CL CL CL CLw CaHx P(y SG OP{ P | e} wzH~ ] CT Fc !}f ~ #OP '_މ | )CL ,Dw -B .F9 2Iu 4CLt 5CL 7x  8i&  9f- 5 N bHO @P @vQ F>KR E]T BU DV D OP CLY z Z y]  OP CL] eM ^ c  CL CLa A: CL CLd }  CLf ] CLh {LS i P CLk M l xm mn Po aZp Zp q Rf r Vk s J|Jt M u OQ CL CLx | z y Oz P CL CL} F/~ F FM B OP~ CL xH  IZC  G E I  CL  Cpi CL  OP   sp  CL CL B= CL OP l  DD  GCL HCL ICL LK\  MzS4 Nnff Oh3 REs TL{ UQ. VO)! WN" Xv33# YQ&f$ ZI3% \J=& ]K<-' ^Kk~( axWc  cCL* e@gv hCL- jAO lOP nCL0 pk/ 2 rE3 sG4 ue wCL6 x] yCL8 {up  ~CL: WT CL< qes = Cpi OP CL@ KA EVB BXB CL CLE nB H BEHI X   B  B  EV IL\ EV B  B  Jw E y' EV O/   JP r  JP m  Os xz\ K1C M   |_  I g CL Ej [ OP CL CL CL CL CL CL  CL #]g $Ng %_f &GH (Sff )GH +CL ,CL -CL .CL /CL 0CL 1CL 3] 4CL 5CL 6CL 7M 9CL CL ?CL A@ CCL DCL ECLOP$H %I&K(? CL*E,UܧOP.NCLCLOPCL3jR4A6 Q7!S,8"Gfg9$m:&s9;'u4<(r3)OP>*Si ?+D$@,DA-TX.OPD/T|E0DȬF1D׾G2OE5W&g6\I7U8y\ ;e'dnN fLoE hIF jZB k\5 !nCL oCLpCLrZ4 uCLxg[~ y{/ zD{c!( }7n}[ CLCLCLCLCLErHaz7 iZ]f& S' dq rC PȷE]JBٚ Oz ^IEƶtM N5 tw `ZC3^CLCLCLCLCLCLOPCLCLG}xGG-E\LkLk}e}Mt}f 7D* M:s NBHIQATRBN~SCpPL TEvA VFT7 XGBbYIC5[Jc\KD^Nf}_Py `RAaSBzbTA8RcUBHWCLXCLYCLg]i, _CL`CLaCLbCLmeGHn~goJ CLCLCLCLCLCLCLw@xSyTOP{Q |c}y<~]CxF]DDG~CLMV |CLDOEEZ_uCLtCLyT hC fV 5HX6Gv9CLCL:FT;K<ZL?z OPCLBuZ C{D5 EUFg{GOpHA& Ld*M ^qN kO @;P @RbQF&aRETBJUDjVDOPCLY}h Z|5! CLCL]dE ^BN"CL#CLa%BE(CL)CLd+^ -CLf.]XCLhZ|5! i[Q^CLk`L% lb~(mctnfQog`pi]G qjV = rkX slJ\ztmMeunP)pCLqCLxs|` ytMzvRNxCLyCL}{Fi~}Fد~FBOP~CLx0 H IF<ICL DBCLOP ^.< CLCLBCLOPl Cs CLCLCLKja ~rjfEh3IxRNLq!xs4"c#~f$I%I.&Ke'KwS({= CL*@}BCL-AO OP"CL0$k 2&E3'GF4(D*CL6+]-CL8/tU 2CL:4N~7CL<9p =:CZCL@AKABEBCH~ECLFCLEHn`* HIBIJs MB NB OEVQIZREVSB TB UJVEXx[EVO] JPr JPlo Pxz\K1CLX7|_ IitCLEu[9OPCLCLCLCLCLCLCLYINgdvgGHQGHCLCLCLCLCLCLCL]CLCLCLMKCLD CLCLr CLCLCLOP$H6[%IL&LCL*E,U;OP.N CL CLOPCL3j4A6O 7O8E99n&:tg;t< q!OP>"SA?#DȬ@LDAMUZqNOPDOTEPDѼFQDGROUVDV[XT3[z \`|]n ^O _L `ZQZ b\Rp !eCL fCLgCLi[-F lCLnf& pr qB}ra sG tnn wCLxCLyCL{CL|CLEHty iI]Oe>t UFD dE pfCSUE ]B) MZ<E't>u Oz q&f `Z3^CLCLCLCLCLCLOPCLCLG=FFE~4LkLk}es\}fD M+t0 N.B{O/F'8P0@SQ3TR4N~S5pY T6w/ V7T X9BzY;DB[<Ց\=GP^@b'_AyU `BAZ#aEE\)bFD@cGBICLJCLKCLgNiv yCLzCL{CL|CLmG7n}goID CLCLCLCLCLCLCLw{xNkySOP{P |dH}wg~]BF^} ~CLe |CLDkIEL;uCLtCL|R h% f 5HO6GCLCL:Ge;FO<[?@?zr OPCLBu6 CykDL E]zFj{GX34HA. L\MXNfOAP@QQFCREzTBUDUVD OP CLY @&Z} CLCL]d7' ^BnCL@CLaBCDECLFCLdH@=KCLfL]MCLhO} iPPSCLkVMs lW}mXrn[QYo\`pp^`( q_Y raZu sbJ\ztcM#udKZ,fCLgCLxi|& yjIRzlSnCLoCL}qF/~sFtFuBvOP~xCLzyl G M4JMCL DJCLOP I7 CLCLBECLOPk C1 CLCLCLKs |piEdWHzMK!A3"hٙ#A@$Iz%I&KOI'K(Anq CL* @CL-A2OPCL0jH 2E3GV4BCL6]CL8!sc $CL:'P)CL<+p^ =-SCLCLOPCL3jB4 A65Ll76Sy87F 99nb:;z;OP>?S?@Dm@ADȬABU%COPDDU EEDFFD-GGOZJVtK[LTO{/ PdkQn SP UNq WZ}W X\ ![CL \CL]CL_\ bCLeg fn gChb jmnQ CLCLCLCLCLE8Hezu i[]fE Ws d ns3D QwF]B OW\Et!N Tx uw c3[3^CLCLCLCLCLCLOPCLCL HQ F E EΩ Lk Lk}ejNQ}fE M %sz N 'BǪO (DP )@Q ,U'R -NS .o۔ T 0w7 V 1T2 X 2C:QY 4D)w[ 5$\ 6H.^ ac_ cy ` dA)wa fEb gFBc hDR jCL kCL lCLg piub  rCL sCL tCL uCLm xFn {}o }I  CL CL CL CL CL CL CLw {x Oqy S OP{ QDD | e} xu~ ] B; Flj Aj~ CL RC | CL D  J E Nݪu CLt CL ~iy  hI  f 5 Hj 6 G CL CL: G; I< Y? ~s  CL CLB t4 C |D  E dF h(G JffH AU L f.M `N mO AJP @Q F)R E~:T BLU DI2V b]^ )CL *CLY ,} Z -}R  0CL 1CL] 3d( ^ 4Bw 7CL 8CLa :Cw CLd ? O  BCLf C] ECLh G} i HP8 JCLk MM l OC m P~n S[o T`[p Vb q W]Q r X^L s YJbt ZMEu [Ly ]CL ^CLx `}I y aJqz cS CL CL} Fb~ F FH s  CL~ CL y  H  b, \S3 a3 CL  D CL OP  o% CL CL C  CL OP ll  C  CL CL CL KN  x d f` E K O+ N\)! Ef" s# L $ I% I& K>' K( x+  CL* @n CL- A2 OP CL0 kQ 2 E3 Hp4 L8 CL6 ] CL8 s  CL: #R %CL< 'p3 = )bd TCL UCL@ XLO/A YEB ZA8 \CL ]CLE _n`* H `L I bjoR  dB  fB  gEV hIZ iEV jB  kB  lJ mE ox rEV sO u~  wJP zr  |JP lR  Lv y` K) M  }  DF  iq CL Eu [o OP CL CL CL CL CL CL CL Ng Ng ^ _ _ _ CL CL CL CL CL CL CL ] CL CL CL MK CL D  CL CL @۶ CL CL CL OP$ HQ% I & H CL* E, U/E OP. N  !CL "CL %OP 'CL3 *j 4 ,A{6 .Ng7 /N98 0CY9 3n: 5x; 6{f< 7w 8OP> 9S? :D@ ;D\A SRE ?D>F @DG AO  CV E[f FTf I|P  Jb Kn  LPe  MNO  PZƥ  Q\U ! UCL  VCL WCL ZR  CL gx  }h  BUZ b   s7" nB  CL CL CL CL CL EP Hu zr  i ] g/  Y  ct  r Dmy Rfq G)H ] B  N! L C- t!N  MZ  tٚ  ` \vf ^ CL CL CL CL CL CL OP CL CL H EΩ E F Lk Lk}e w}f F֐ M s N IB O JDP K@_wQ NU4^R ONmS Po T Qx( V RU* X TCEY VD\[ W\ XHٚ^ [dX_ \y ` ]@a `Db aFpc bF{ dCL eCL fCLg ii  kCL mCL nCL oCLm rFئn u}34o vJӅ  xCL zCL {CL |CL }CL ~CL CLw @x M(y RQ OP{ R"# | `} y~ ] B Fl } ~ CL e; | CL Dk Cq$ EF Ju CLt CL }  h7L  e/ 5 H 6 GM CL CL: F; FBI< [? @A CL CLB tz C@Dh E_FgGI34HB LkMg#NvQOAuP@|QFREv@T!BQU"DUV#]M%CL&CLY(y@Y Z) O +CL,CL].c ^/Cpi2CL3CLa5D4K8CL9CLd;A:%>CLf?]@CLhB7 iCPJFCLkINA lJI mKG8R nv]owa&4pya qz[Ǯ r{] s}Jvt~LuLCLCLx} yNp.zOb;CLCL}F~G ;Fy CL~CLz)B H% aV,\CL E]CLOP `ECLCLDnQCLOPl D CLCLCLKŨ I|3yEQqpQ!I33"r#M4$Iz%I,&K='K(BvCL*}R CL-A CL CL0 j 2E3HD4MCL6]s ACL:DO4 FCL<Ho۔ =IIkMCLNCL@QKARF*BSB'UCLVCLEXm HYDMIZg ]B ^B `EVaIiNbEVcB dB eJfEhxkEVlOm~8 pJPsr uJPB POy]AKJP RX&f֍CLE[OPCLCLCLCLCLCLCLXPY\avgE@CLCLCLCLCLCLCL]CLCLCLMCLD CLCLA{CLCL CL OP$ H% I&PCL*E],],OP.MokCLCLCLCL3 jF4"A{6%Uf7&W48'I39)ov:+{;,}<-xg/CL>2[gl?3D@4DA5TH6OPD7StE8DF9DMG:OT[?Tj@"kalo- mP nOk p[ q] !tCL uCLvCLx_/ {CL}i IDb Qn4a CLCLCLCLCLE8H~zr ip]OgX [ c- oDPnG \B PG'Gt!N V: p `3\Ff^CLCLCLCLCLCLOPCLCLI oEŞEZF3LffLff}ebrg }f F}H MCt7K NEBOFCt<PG@DQJU,RKNbhSLo7 TNxTj VOUT XPDHYRD2:[S\TKf^W`j_Yz `Z@a\Cb]Hc^D(`CLaCLbCLgfj$ hCLiCLjCLkCLmFn}s4oJ| CLCLCLCLCLCLCLw}fgxM4yR#OP{Q |efB}w~]BF}f ~CLTSI |CLDHF#{EXuCLtCL} h+ e/ 5HY6GCLCL:EsZ;FC<Z3?@CLCLBtj. C |eD 0 ErRFuzGnGHB, Lo=qMjqNyqOA#P@QEREGTC}UDqV]WCL CLY"vh. Z#@A&CL'CL])c_ ^*CB-CL.CLa0DS2CL3CLd]A{`CLfa]bCLhd@ieQmhCLkkN llH mmEp np]oqa&4ps`z quZu rv] swJtxLY uyIR{CL|CLx~~24 yOzO3CLCL}F~G%FW~ CL~CL{ H uflp)CL ETCLOP ]zCLCLQCLCLq E CLCLCLKv IY{s3z,FSVd?TD@UDAVY8XCLD[TE\DpF]DG^O#tb\#3c`dZ>fg}h hdio_Z jR݊ lQm mcx ne !qCL rCLsCLuZ` yCL{i\ |J}D~c{ ~n4a CLCLCLCLCLE+RH:{ i]hS [- c rDS@\EB O`G:HBt!N K uD `3[3^CLCLCLCLCLCLCLCLCLHEESF(2LkLk}eY}fFh0 M7t7K N9BcO:CP;AQ>U0R?NbhS@ouq TBxp VCU7 XDDZQYFD.U[Gdj\HH^Ke _Mz* `N@aPDbQFaHcRE|CL}CL~CLgj CLCLCLCLmF=n}4oKx CLCLCLCLCLCLCLwA(xMyPHOP{S33 |b?}xM;~]BF#@Y~CLN |CLDI&EVItVuCLtCL~D h eT 5H6HwCLCL:D;F7<Z?BCLCLBv C@,=Do EZFkGJHHBfB LAHM{RN KO A4UP @8Q E֨REL5TCWUDRV]9CLCLYt Z@=CLCL]Edp ^FDICLJCLaLE#NCLOCLdQ@4TCLfU]VCLhX@gviYQ5\CLk_N l`J maG( nd\Loea8pgb qiZ rj_ skJtlL!umKFoCLpCLxr~Ü ysJWzuMwCLxCL}zFݱ~|G>*}F~@CL~CL}X H N>gHHF$CL F?CLOP BHCLCLZaCLCLejU EU? CLCLCLK If|3yFVٚ[Z!E9"m33#H$I%J&J' J3( C" CL*~ CL-~# CLCL0m<8 2FG3HU/4 C"CL6$]%CL8'sc *CL:-L$/CL<1oK =2F/5CL6CL@9KjA:E۵B;A=CL>CLE@rn HBA:OIEb ixB ixB ixB ixB  ixB  ixB  ixB  ixB  i x`EVO JPr JgEV Lv"z #K $I'g+ (Q*b,CL/E:1\52OP4CL5CL6CL7CL8CL9CL:CLe_gPghavgic j_ke >mCLnCLoCLpCLqCLsCLtCLu]vCLwCLxCLzMY|CL~D CLCL@JeCLCLCLOP$I%HN&GCL*F_`,ZOP.MCLCLCLCL3i(4A{6Uf7J8F9q:Bfg;C <A CL>W-0?Dm@DAWBCLDIbEDFEGWKa[3` Y ^op W @ U( f h" !CL CLCL_= CLi= ph ,B-c /3n4a 6CL7CL8CL9CL:CL=Ed@?HB{/9 DiG]Hh I\ Lc OpfSE0TOWm<8 YR[B ^P_HaHs<dt/ eV1 o `C3WP^CLCLCLCLCLCLCLCLCLIDF#EaGFa0LkLk}e/M}fF Mt( NB@ODcPAhQU;RNbhSoXB Ty!4 VV9 XDYYD:[$\MT^c_z8 `@aGbFhc A) CL CLCLgj\ CLCLCLCLmFpn|4oK[  CL!CL"CL#CL$CL%CL'CLw*}x+N.y,P-OP{XS |Ze}[w>7~^]aBd$bFe}R ~gCLiT |lCLoD pI^sqEޢtN,uvCLtxCLz} {h |f?} 5~H6Hh:CLCL:Du;E=<[?DCLCLBvY C}Dx Em\Fx GLQHBΥ LHMET{NQqOAIfP@aQEREV[TCnUD5V]CLCLYsF ZAZCLCL]eT ^ECLCLaECLCLdACLf]CLh@iN0 CLkNO lK mHz n\foap bH q"^B r#^ s$Jt%LZu&F(CL)CLx+c y,Pz.M0CL1CL}3F~5GR6F7AF~9CL~:CL<~Ü ?H @NAHBF3DCL Fx0 ICLJCL KMCLNCLQUiSCLTCLViQ WF3 ZCL[CLCLL4 I.f xFMRfQq!Ng"|l#Pf$IЍ%KA&J'J_4(y]w CL*~ CL-~ CLCL0kZY 2F3Ho{4C%CL6]CL8r CL:ECL<n =F[GCLCL@K"AEBBCLCLEup H~#Ia kh kQ ixB ixB ixB mYk kK ixB m>  x EVP JPr KEVLvz>JPIm"g+ #SV?E@DAWCLDx0 EEFE[GVFa[`!YX@EedGo T S5 dR g[~ !CL CLCLZ%\ "CL%iQ &{ 'D|(dq *-nB 0CL2CL3CL4CL5CL8Ey9H^<{LS ?iB]Ch D\ Ec Hm3KEj5LS^xr zUI|Bff P6GH At>u LC& k `WC3^CLCLCLCLCLCLCLCLCLIFREtCFwLkLk}e*j@$}fzFi MsM NBOCPAnQURRNSoXB TyT VVh XDfYDI[l\MJ^b_zG `@]aC)bDcE\)CLCLCLgj  CL CL CL CLmFVTn|goL#A CL@CLACLBCLCCLDCLECLwHxxJOQyKR#LOP{OTUV |QbI}Rv(~T]XBRYF\} ~^CL`T |bCLfDgIhEkMշumCLtnCLq~A rhT sf 5uI6vHϣxCLyCL:{D;FeL<[B?DCLCLBu CD@XEjpFn >G[HC+ LJMFfNS0OA[P@΢QE{REUTDCUDV]5=CLCLYr ZB"CLCL]f& ^ECLCLaF!OCLCLd@CLf]CLhAKi M+e CLkO; lM mI n]oa p` qXp r[ sJtL'uICL CLx" y#Mz%Li2'CL(CL}*G~,Gbj-Fj.Ad0CL~1CL3@6I0& 7O8Gf9Dg;CL =~l^ @CLACL BCCLlCLnCwqCLrCLto uG4 xCLyCLzCL}Lf ~IfAp|GAPUBS!G"sFg#N$I%K&JK'J (H)CL*~ CL-~; CLCL0kZY 2E3H:4CCL6]CL8s CL:MxCL<nn =F(CLCL@JAEFBBCLCLEwB H|Iml j ^ ixB ixB ixB B k. ]! ixB BxEVP.C9 JPr  L5EV6Lv8zю9K#:I=o^ >SV?E}@E AWACLDo; EEqLFEGV[\3b[h AB _Y  p!  S  R  i\  kK ! CL  CL CL ^-  CL jp  H] C  d  C  nQ  CL CL CL !CL "CL &EO 'Hf *{  ,j4 /] 0ii  1]  3cx  6p3 aEl bU' eq^  gQ iB  mO nGľ oH rtM  sUc  vqY  x` yV3 z^ {CL |CL ~CL CL CL CL CL CL CL I Fc Eq F Lp Lp}e Z)}fqF M sM N B;O D;0P AYaQ UmbR NuS oI T zq V WH X DmY D%[ 鹎\ JQ^ f_ zUV ` @]a Es4b F4c Fp CL CL CLg jχ  CL CL (CL )CLm ,FMIn /}o 0L  2CL 3CL 5CL 6CL 7CL 8CL 9CLw R @OP{ CT | Ee!} Fv~ H] KBC LFD P}I ~ RCL TSn | VCL YDk ZE2 \Fp ]Fu _CLt `CL b~ P  iQ  fQ 5 I/6 I  CL CL: EW; H@< Z? B5 CL CLB u65 C }FD @pE }GF D >G zGH Ci2 L Q&fM MO\N Z.O AkP @*Q EwR EnGT DUU EV J+ CL CLY r Z A CL CL] f(r ^ E CL CLa Fi CL CLd :  CLf ] CLh Ai RQ CLk O~ l Mp m JR n dٚo a˂p f33 q _p r `Q s Jt Ku Gqu CL CLx ^ y Oez LՑ CL CL} F/~ Gp FTH A "CL~ #CL %@}B 'IuF  (Yp )Z&g *O TCL  Vw  YCL ZCL  [d ]CL ^CL `B  bCL dCL ff  gG4  jCL kCL lCL oL*  pI qBg r@3 uGF- wR34 xW yV! zGٚ" {t@# |OY$ }I% ~K& J' J( )b  CL* @A CL- U  CL CL0 j 2 E3 HY4 C CL6 ] CL8 sl  CL: DJ CL< n = \ CL CL@ JFA E5B B CL CLE wt H NI X  ixB  ixB  ixB  ixB  ixB  j>  ixB  ixB  k[  xd EV Pe   "JP %r  'L *EV +Lv -| /L 0I 3o^  4S V? E1@ E0A W CLD s E EYF EsG V#$ \t b@ [T A fm py+  X  V:  i\  kZY ! CL  CL CL Z}W  CL j63  q  EW f  K  nn  CL CL CL CL CL JE LH1 O{  Qjc U] Vi  W]h  Yc[o  \p&f _F aV dt!N  fw  iBH  lO nGu oG stj.  tL  wo  x`ff zV {^ |CL }CL ~CL CL CL CL CL CL CL I< Fb Eb/ F= Lp Lp}e __}f bFV M tE N BaOCPA"QURNuSof TzJ VWa XDuYDH[\ MV^$a__%zUV `&@SRa)E=qb*E.c+D-CL/CL0CLg3j 5CL7CL8CL:CLm=FN0n@goBM4 DCLECLGCLHCLICLJCLtCLwwA{xxT.yyS{OP{~U33 |cV}wR~^BKCLCLaFT CL CLd K CLf^CLhXqTL!\@"S#f$IpJ%K0&J'J(@CL*@}BCL- CLCL0j 2E^3H 4CWCL6]CL8tj.  CL: KUCL<m =MN2CLCL@LAF/BBCLCLE"xo H#FOI$i 'B (B )ixB *ixB +ixB ,B -B .ixB 0B2zBc5EV6PC7 9KM iEVjLvl}1mK&nIqo^ sSW?Fj@ES_AW'CLDy EEnFEG0Vk3b34h6g5`8B:cT;p PUqTǮ!c`"\\#r$I{.%L &J'J:({Z CL*@bCL-@CLCL0lD 2E3H4CCL6]CL8tU CL:DCL<m =H CL CL@K/AF1BCmCLCLEzT H@QIy5 l8 k) !ixB "ixB #EV$m4 %ixB &ixB 'BQzJTEVUPWWɘ YKj\n^M _BVbLvd}zeJfI|io^ jSWPi?FU @EtA WV"CLD$n% E&FF'EG(Vl+c,h,-a 0CSK1]2pj 4Yf 5WG 8l 9n}[ !CL@[ DCLFj Gvܹ HCIfE KCNn RCLSCL|CL}CL~CLEII?|5! j]j ^SI c>' pFfFLSK{Z PBB RG{GҀt M ab" _fP ^CLCLCLCLCLCLCLCLCLIFqyEVFLLpLp}eKhK}fE M tb N B0ODPAFQURN{^SA/T{x VX XEYD:[\ESV ^Hd_Iz `KC.aLIbMGRcNDuPCLRCLSCLgVk+ XCLYCLZCL[CLm_HpnbIocN eCLfCLgCLhCLiCLkCLlCLwoF)xpYW yq[34rOP{uUwx |wd}yw~{^~C^G },l ~CLP |CLDnCFOWuCLtCL} j/ f| 5I6ImCLCL:E;Gk<TU=?BCLCLBs C@]DA`Ec.FeGU\HDh LUMR+N^34OAuPA*QFR EѕT D"UEV\hG q?a( r@c. sAKXbtBKuCIECLFCLx@yQzO CL CL} G~GhF6ACL~CLAK% ab[ CL  w_ #CL$CL %&CL'CL*U,CL-CL/f/ 0K3 3CL4CL5CL8M[ 9N>g:G;FfGHhKiOjN!kP"lD#3#m]$oI}%pLu]&qJɓ'rI(u|oQ xCL*z@=}CL-@-SCLCL0la7 2E 3Hچ4CHCL6]CL8t CL:BCL<n =HGCLCL@KAF(BCɨCLCLE|j H@:IV ixB ixB l5h j j jD ixB kQ k z6EVP^ɘ K#oM B Lv@AJPI8o^ Sb?q@q4BCLCCLDCLFCLGCLHCLICLJ^KCLLCLMCLONqQCLSDUCLVCLXxP [CL\CL]CL^CL$aL %bIq&ePgCL*L<,ZCL.UGCLCLCLCL3h4A6F 7Fg8g9|V:Ii;K<H,CL>WI?FY@Er5AWCLDph EFFExGV7GfVgk,d34Dkdfq; V UT l n !CL CLCL]y CLk |& AW3f Q|p n  CL CL CL CLCLE\Ig5| kZ]""j' ^ c/ !nf$F%ZU)r *wS -BW XR@AYGrZG]t ^U7 bd&f ca)dQe^gCLhCLiCLjCLkCLmCLnCLoCLpCLsI<uFevEwFzLp{Lp}eat}fF,k Ms NB OCPBpQVMRNmSt[ T|J VY XELYDA[ӹdj\J^a3_zr `DaM!HbM!HcERCLCLCLgk CLCLCLCLmHnFgoO CLCLCL CL!CL"CL#CLw'DW x(Vy)]*OP{-W"# |/d<}0wK~3^6CY7F#:} ~S |@CLDEEE !FF:IIAuLCLtMCLO} Pi^ Ri 5TI6UI WCLXCL:ZEV[;[K3<X!?C CLCLBs C|VDATEY(Fg\GMffHDD LS!HMPN]T{OAPA,XQF REwTDUESVD>rCLCLYp ZBFCLCL]hS ^KCLCLaH[CLCLd CLf^CLhB?iMCLkW lN mL) ndffodpi{ qcǮ rf sKstK[uI CLCLx@4yO?zKCLCL}GB~ G F A$ZCL~CLA:K c&fcafCL @CLCL  "CL#CLNX^PCLQCLSn TK) WCLXCLYCL\M ]K^D_@gbGHdHeM(fL!gml"hb,#iCf$jIm%kL&lJJ'nIs(oAqCL*sAKuCL-w@`2zCL{CL0}m 2FG3H4CCL6]CL8t4 CL:CpiCL<m =H$CLCL@KΌAF:B@"CLCLE} H|I4~ B B ixB ixB ixB B B ixB B{_EVPs JRpLixB LvA JPIg+ SCL?CL@CLB^CCLDCLECLGNFICLKD MCLNCLxz7 {CL|CL}CL~CL$L*%I&M\CL*L{,YCL.J CLCLCLCL3h4A6J37H8Df9~T:Gp;I<G CL>WN?F[@EAWCLDw4 EF oFEw GV?CFqADBeq WV X` k_ m !CL CLCL_+ CLj tj. )b gX XRn CLCLCLCLCL E I| kJ]k p3 Bc EqffHFh"IUyaKBLWmNB=q QSRGSGבVtY XSS [` \`]Nf^^`CLaCLbCLcCLdCLfCLgCLhCLiCLlI%nFzoEŞpFisLpvLp}eh }fOEg Mt` NCOCrPB~QVRNSrk T| VY XEhYDW7[׹i\Q=(^f˞_z `CaJO\b Kc F CLCLCLglͼ CLCLCLCLmH7nc4oO !CL"CL#CL$CL&CL'CL(CLw+Cx,Xy-].OP{1V |4cD}5w~7^:C;F>~ ~ACLCQ5 |mCLpE:FqEV[rF^vGo>uxCLtyCL{}` |jM }hu 5Iع6I1CLCL:EsZ;Le<YÓ?CCLCLBsc C}DAET\)FcGT.HE# LRBMP8RN\nOAPA6QFRETE@UF+yV|& CLCLYpmy ZB CLCL]h ^T^CLCLaTJCLCLd~ CLf^CLhB8PiUbCLkX7 lM mJ ndocph qeH ra sKXtKuECLCLx@y R#pz Mf5CL6CL}8G} ~:GU;FCL~?CLAByD]C EaPFafG[YICL K~ NCLOCL PvQCLRCLUSWCLXCLZsF [Cs ^CL`CLaCLceteIK3fD 3gCjH!lQzmUnU{!]"Q&f#l&f$I%LU&Jݔ'I({Z CL*{ CL-@uCLCL0g 2F)3HD4CCL6]CL8o CL:@۶CL<eд =DnQCLCL@dAFOBDwCLCLE^ HmI Y  kK  j'  ixB  ixB  B  lR  ixB  ixB  B {݉ EV P^ @ K  qe JP ]!  E B !K() "I^! &g+  'Q (@` *CL -E}M .W8 0CL 1CL 2CL 3CL 4CL 6CL 7CL `CL cvg duf eE fMR gU{ hMR jCL lCL mCL nCL oCL pCL qCL r^ tCL uCL vCL xN9 zCL }D% CL CL wl  CL CL CL CL$ Kh% I& H|g CL* K, X CL. R CL CL CL CL3 h4 A6 K7 Hf8 E9 S: L; LVf< Ks3 CL> V? F@ EpA Wy CLD j' E FKF EG UG Da F B3 CW( e r  X  X  kZY  m ! CL  CL CL Z  (CL *k)  +G -  .h  /W  0o  3CL 4CL 5CL 7CL 8CL ;F   U2&? G j@ EA Ni CLD n`* E FsF EG T D4 Gp Bg A" er rf X2 X k. mJ !CL CLCL_v CL!jH "~ #D4K$i\ %O&o; )CL+CL,CL-CL.CL1F2H5|= 8m!;]c AnDF7FZVIu JAluB xT<yGzGw~u65 WS cD `3Ly^CLCLCLCLCLCLCLCLCLI^!FF>FLpLp}e%C}f wFB MuZU NC OCCPBQW<RNSq3 T~p V[< XE\YD[r\VN9^c _z `AaKzbL cH&fCLCLCLgm& CL CL CL CLmGuQn}loP{c =CL>CL?CL@CLACLBCLCCLwFDffxHYffyI\ffJOP{MX |OaĦ}PtK~R^VCQWF Z}h ~\CL^O |`CLcEeEdfFs1iPJukCLtlCLo~ pjm qg 5sJS6tJ vCLwCL:Cu;F<[.?D- CLCLBr+ C},DAsEW.Fl\*GJuHE0 LVRMUpN`.OBPAQcQF"RETEҷUF~VQ 6CLCLYqV ZC/CLCL]i ^JCLCLaLoCLCLd CLf^CLhBrdiR CLk YN lL{ mJ3 ndod(pf) q_ rb3 sKtKuDCLCLx@y Ioz"K$CL&CL}(G} ~)G+FH,A{.CL~/CL1B3Wr 4`35`6Zf8CL :@=CL>CL ?$.iCLjCLlL"anCLpCLqof sJ uCLwCLxCLz`p|Y(}P~NxHSUZEVR!mFf"`3#D6f$Il%MJ&J'Iq(@4CL*{LS CL-@۶CLCL0j' 2Fl3H/4BfCL6]CL8p3 CL:@CL<f =D- CLCL@ZAFtBD,CLCLE~ HfHQIv B B ixB ixB ixB EVB ixB B{EVP^@>J rwJ0ixB 1F2A4JP5I\O8C 9Q:EʘTC?G@M@EAAN(CLDv EFFEx GS[\EfHC$@d[ra X2 Yc k l ! CL  CL CL `q. CLju s EWi| Q&cof CL CL!CL"CL#CL&F+'H+}; -m#0]""1la7 2p- 3b ^ofbFcW}fy hP<jB mToGpGsua tTx w` x_ yJVf{^|CL}CL~CLCLCLCLCLCLCLIoaF׾FQFLpLp}eEZ}foF Mt NC=OCDuPBQWj0RN4Sqes TK V]! XEYD[8\T^g1%_z `AaMW bJucD}qCLCLCLgnOP{AY |Cb}Eu~G^JC.jKFwN} ~PCLSP |UCLXEaYDiZF\]KuCLtCL}y jZ gk 5J)6J% CLCL:Bɀ;I-<[o?D|CLCLBr CzjDB@EX)FjGQHF7C LTMQcN^)OB%oPAZQF/RETF$:UGNlVACLCLYqˈ ZCScCLCL]iމ ^J+CLCLaKCLCLd@QCLf^CLhBiTs CLkY lK= mJ ndoe:p m= q gk r h s K:tKuENbCLCLx@yRazKFCLCL}Gn~G~F AF"CL~#CL%B'A RcSd^fT]3VCL X~' [CL\CL ]^CL_CLbZdCLeCLgs hHGK kCLlCLmCLorOqO{3rEsCFfvH xNySzU!{c&f"|V#}wٙ$~I%MO7&J'I(DCL*zu CL-@CLCL0jSk 2F"3He4C%CL6]CL8o CL:@CL<f 4 =DCLCL@BAFBCCLCLECwHk6IY lR kK ixB ixB B mv ixB ixB B|EVP.C@bK s^"J%ixB &DF-'Aפ)J*IpJ-Aw0 .Q/Eʘ1CL4E6V8CL9CL:CL;CLCL?CLBt6gDt3EC{3FMٚGMRHOYJCLKCLLCLMCLOCLPCLQCLR^SCL|CL}CLN2`CLD CLCLy CLCLCLCL$K%Ir&GCL*K^,U CL.SYCLCLCLCL3i(4A6Q|7R8L39A:Gf;J&f<G3CL>T U?Gk@E;AJ/CLDm EFiFEGSAnCfFFgB~t c_s X^ Yuc j la7 !CL CLCLZ CLj  F~ E i[  [/ o CLCLCLCLCLFIS<E}: Gm"J]Kl~k Lp- Nb QrTF$U^Xu Yz? \B `UaGbGeu fPHc ib{ j`lM3m^nCLoCLpCLrCLsCLtCLuCLvCLwCL{I|FH}FT~FLpLp}e j}fE Msz NC,OC1PBQW RNBRSq T@ V^0~ XEYD[۹\T^cA_{9 `AFaJb JcDٚCLCLCLgmn CLCLCLCLmG&n!~go#S/ %CL&CL'CL(CL)CL*CL,CLw/NǮx0Yy1g342OP{5[ |7a)z}9sR~;^>C ?FB} ~DCLGQ΅ |CLE C{ FHq GyuCLtCL{k ji gk 5JJM6JECLCL:B;GV< [?"D%CL&CLB(rn C*@ZbD-Bo$E/cLF0i>G1NfH2F2 L3T\)M4QfN5^{O6B9 P7AkQ8F>KR9F dT:FYU;GVf|j iCLjCLYlr# ZmC.pCLqCL]sj ^uKwCLxCLa{M }CL~CLdA^vCLf^CLhBiUrcCLkYP lL8R mJk n`oe&.pfp qaL re sKϜtKXuECLCLx@yLzK|CLCL}G~HFA[CL~CLC DYahb;3`4CL s)~ CLCL 踐7CLCLGCLCLev I7 CLCLCLsĻ[)RTQ3HO,Su-S!.sf"/kg#1M$2I(%3M&4K'5J(8~Ü ;CL*=zu @CL-B@DCLFCL0Gj63 2JFS3KH4LCNCL6O]PCL8Ro+ UCL:W@=ZCL<\f(r =]E9[`CLaCL@cDTAeFABf@CLCLEC~HjIm ixB ixB B me EVixB [ n j {eyEVPC@tK t<[JPixB FE^JPI@Z QEʘCLEVgCLCLCLCLCLCLCLCLsPlgvf}F}CLCLCLCLCLCLCL^ CL CL CL N(CLDaCLCLy]w CLCLCLCL$K%Il&"QZ%CL*(K,)W*CL.-NF/CLXCLYCLZCL3]i@4_A6aRf7bO8cLg9fA:hL`;iM9<jJ3lCL>nSt?oG@pEAqG’sCLDul EwFFxEhGyS}Ff~IgE|` bsL2 Xm^ Ya j k !CL CLCL\5 CLkh ~ A2j Ytof CLCLCLCLCLF$Io}h nt*]""l p bP ofF\UvY IA V͒GHuZ T. "a #`3$L&^'CL(CL)CL*CL+CL-CL.CL/CL0CL3I&5F6Fa07F:Lp=Lp}eIk}fD M[u " NC9OBPBQWMRNmSp- TA!}V_x XECYDe[+\X0[^b_{9 `AaNs4bQfcH\CLCLCLgm CLCLCLCLmFn}oT CLCLCLCLCLCLCLwMx] yfOP{] |a*}t~^BF} ~CLRRp |CLE4CCFY KAu CLt CLz?} kI g 5JTL6JkCLCL:Bk!;K<Yu?DXCL CLB"r CLAgDOBEQ^FRjpGSQLHTF LUSMVPNW]LOXBJvPYALQZFOR[FT\FU]GHV`{LS cCLdCLYfrN ZgCjCLkCL]mj ^oK_qCLrCLauMwCLxCLdzB}|CLf~^CLhC iO^CLkZ lK( mI ndffoepqz qg rjQ sKtK'uDBCLCLx@yTczH#CLCL}G~H F9A|CL~CLB g cnfd$^CL x+ CLCL CLCLBNCLCLf KK CLCLCLf\ Y!Q "N%Hm'RJ>(Uf)U\!*nS3"+cg#,K$.I^!%/M&0K)'1J/ (4} 7CL*9{ ;CL-=@}B@CLACL0Ck 2EF@3GH4HDrJCL6K]LCL8Np| yCL:{A~CL<fq =DnQCLCL@gwAFBDOCLCLEBFHdI\TW i& i m lR lR k i lo m {EVPW@zKsJPixB FELJPIC Q@-CLEU(CLCLCLCLCLCLCLCLt6guLDS4_b_CLCLCLCLCLCLCL^CLCLCL N* CL CCLCLy CLCLCL@CL$BK%CI&FLICL*LL5,MVNCL.PHGSCLTCLUCLVCL3Yi<=4[A6]P7^_ٚ8_Rf9bB[t:dIg;eN0<fH3hCL>jS{ ?kG@lEAAmJQoCLDqw% EsFFtECGuRyFK3zH{D3z b"s X Z4 j> k) !CL CLCLc!( CLk/ s A+iމ NJ o+ CLCLCLCLCLF:ID~24 o]""m4 qt b׬ rFЂ[J y  BɀB\ TFG̶Hvu Z bj _c3K^!CL"CL#CL$CL%CL&CL(CL)CL*CL-I.F0Fu1Fp4Lu7Lu}eb}fC M}t( NCROBTPB1QX6RNbhSp TAV`! XENYDv[H"\\^eC_{* `@aL:bN\cFhCLCLCLgn CLCLCLCLmFn}oT} CLCLCLCLCLCLCLwLBx]yg34OP{_ |aV}s~^BfF~ ~CLTa |CLEnDMFzpQ+uCLtCLy+  j  gm 54JW65Jb7CL8CL::Bn;;P < aS? bGd@ cEA H CLD r# E FF ETG S} E G C zj  ^ t  X  Y_  jp  k. ! CL  CL CL a-  CL l  D A kQ  \  p$  CL CL CL CL CL FK I ~z  oZm ]"" of  r  b׬  p3 F| ` zF^  U  A  U G HB v-  UW  aD  _f L ^ CL CL !CL #CL $CL %CL &CL 'CL (CL TI٢ UG VF WFq ZLu ^Lu}e i}fCC M {t N }CaO ~B@P CQ X R N{^S p< T AmV `1 X EY E[ e\ [^ d,q_ {G ` @ۘa K\b Ncc E޹ CL CL CLg oK  CL CL CL CLm FЁn }34o Vb4  CL CL CL CL CL CL CLw NLx ]Ry j OP{ ^ | _} t~ ^ B8 F ~] ~ CL R | CL #E $D,Q %F (J^u *CLt ,CL .w  /kw  0gH 5 2J6 3J 5CL 6CL: 8B; 9O0< :[? CL ?CLB Ar C CA9D FBE H^F IpBG JMHH KGs L LTfM MQHN N`s4O OBP PAQ RFZR SFA1T TGXU UHV VD~ CL CLY | Z D4K CL CL] m ^ L* CL CLa N= CL CLd   CLf ^ CLh C i U| CLk Y l Lq m Ju n effo f+p n8R q lff r l s Kt KƂu Bn CL CLx @۶y N~ z I  CL CL} G0~ H2 F A** CL~ CL C> P  bS4 c ^^g CL  yz  CL CL  H CL CL X CL CL gJ  T  CL CL CL PC]  Ng F C H V Z Zs4! kٙ" [# GI$ HIW% IMj& JK?' KJN( N}R  QCL* SA" VCL- X@ [CL \CL0 ^qV 2 `G6/3 aH4 bE dCL6 e] fCL8 hx  kCL: mAt@ pCL< rof = sH vCL wCL@ zKA {G<B }@) CL CLE BH BAI h  lR  l5h  n}[  m<8  mYk  n`*  l5h  mYk  o"!  { EV P52 @i K t J ixB  Fh Gɗ JP Ia @'s  X- Eʘ CL E W8 CL CL CL CL CL CL CL CLvfvgCoxqCLCLCLCLCLCLCL ^!CL#CL$CL%NH 'CL*C+CL-CL/x0 2CL3CL4CL5CL$8K`%9I&;Q ?CL*BK,DVGCL.JUtCLuCLvCLwCL3yipA4{A6~O337P8E`9C:H;KS3<H#3CL>T?G@EAJCLDy EFZFEZ$GSQGtIqEdzb ^<uLX Xb ZR jD j !CL CLCL\a CLmJ BEF[Gl U% p^ CLCLCLCLCLFLI@~l^ ov"]%ph sF b׬ nfF[x  |  Aٚ TH@OBoPCVJQXaRNSp| TB(&Va@ XFYEC[A\Uϥ^bW_{UU `@eaOhbQ=qcHCLCLCLgpo CLCLCLCLmFn}oW4  CL CL CL CL CLCLCLwRx[34ynOP{_fg |_}qR<~^"B#F&U ~)CL+V6 |-CL0EǍ1D3G6Hu8CLt9CLCLCLaNCLCLdACLf^CLhCi(iO/CLkZL lN mL nefofpp qo rp\) sLtK*uACLCLx@rySkzG̶CLCL}Hzx~HE#F?ACL~CLD;B cs3d_4CL 1Bn4CL5CL 6p7CL8CL;P%=CL>CL@s ANf DCLECLFCLHoKMLC3MA3PI}RIpSNTM!U{"V\@#W~$XId|%YMB&ZJ}'[JO(^~# aCL*c| fCL-h kCLCL0kd 2Gs3Hϣ4DCL6]CL8r CL:ACL<g =FLCLCL@pAGcB)b CLCLEG;HjIb EVEVixB ixB ixB EVEVixB E{EVP.CApIK&XsGKixB DF-Hea J Ij ~\ XFEʘCLEXCLCLCLCLCLCLCL CL#D$t3%C{3&o=q'q(q*CL+CL,CL.CL/CL0CL1CL2^3CL\CL]CL_NbaCLcC`eCLfCLhx kCLlCLmCLnCL$qL %rJ&tLwCL*zLX,{W}CL.HUCLCLCLCL3iz<4A6T7R8Q9C˫:H;L<IfgCL>T ?H@EAN>CLD@C EG jFEGT"EG6gCy#> `]v Xb Zƥ j63 jH !CL CLCL_/ CLme w D_m- lwWp< CLCLCLCLCLFR$IfL'~24 )oe,]%-uS[ .w /b׬ 3o 6G7\ :y ;}I >Aq AV%CHxMDHPGv HV K^f L^MIfO^PCLQCLRCLSCLUCLVCLWCLXCLYCL]J!h^G2J_FqGWmLzLz}eO{}fCL?CLDcwSFNfGG6gHEKIl_MRNT\OS!Pwff"Qd3#RC$SI%}N4:&~J'Ja(@NCL*A:CL-@`2CLCL0rk 2G3H64GquCL6]CL8y] CL:BCL<pӖ =ICLCL@KniAGmBBnCLCLEDGH}:IJ #~ixB #ixB #B #B #B #i& #ixB #B #l"! #|t#EV#PI#E#JR#vG#K#ixB #E#J(#J!#Ir#~WH #Y#Bd!#CL#F[#Xyu#CL#CL#CL#CL#CL#CL#CL#CL#Aٚ#t6g#H#og#q#q#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N9#CL# Cܪ#"CL##CL#%pmy #(CL#)CL#*CL#+CL$#-K%#/J \&#1NAj#4CL*#7L^,#8T #:CL.#CL#?CL#@CL#ACL3#Di4#FA6#IT7#JP48#KGf9#MD:#OJ3;#xLf<#yIc3#{CL>#~Vh.?#Hz @#FA#I#CLD#tM E#GbF#EG#Uܧ#E#Hf#Dt#w7 #b5#w #Y #[g #j #jb !#CL #CL#CL#a #CL#oK #vh. #Cw#n}[ #W#qHF #CL#CL#CL#CL#CL#FOZ#I}#~ #o@#](#tj. #v( #bP #pFf#GGw#X"#|R8 #@C #A #UH#H0#I#w% #Ws # ` # `f# Iy# ^#CL#CL#CL#CL#CL#CL#CL#CL#CL#CJx#DGo#EF#FH #IL#LL}e#HQd}f\AI M#jv N#lC}O#m} P#nCQ#q[^R#sMOS#to T#uFV#vh> X#xF9Y#yF X[#z\#ZzP^#d:_#n `#@zBa#].b#]Rc#U#CL#CL#CLg#pu #CL#CL#CL#CLm#FSn#}6go#Z{c #CL#CL#CL#CL#CL#CL#CLw#Nx#].y#n#OP{#jfg |#_}#pa~#^#BVh#G T#y# ~# CL# Ud |#CL#F$#E#GS#Nu#CLt#CL#s- #ky #h+ 5#!J96#"J#$CL#%CL:#'C{;#(Sl<#)[?#*Fs#-CL#.CLB#0u} C#1CD#2C E#4bF#5qG#6OQH#7H L#8YRM#9WN#:b4O#=U P#>@;Q#?ejU R#@aЊ T#lH=U#mIV#pBF#sCL#tCLY#vv- Z#wDX#zCL#{CL]#}ouq ^#M 1#CL#CLa#K|#CL#CLd#B8P#CLf#^#CLh#Ci#TZ#CLk#]: l#Np m#L=q n#`33o#ihp#rk q#p33 r#qG s#L$Lt#KІu#@r#CL#CLx#@.y#S"z#G#CL#CL}#H ~#H#GXT#A#CL~#CL#DZ#Rȗ #cg#d3#_3#CL #@#CL#CL #H#\CL#]CL#`R\#bCL#cCL#er1 #fb #iCL#jCL#kCL#nQ #p\3#qWL#rS3#uH#wS(#xW&f#yT=q!#z`3"#{Rf##|o$#}IRT%#~N&#J'#J(#@H#CL*#Ca#CL-#@X#CL#CL0#v- 2#H}3#I\4#GK#CL6#]#CL8#}X #CL:#C#CL<#t =#I#CL#CL@#LdA#HyB#@#CL#CLE#DYH#~cI#oI #EV#EV#n #m #m #EV#EV#m #E#{#@ #Pv#Cֱ#K #v#$L#'i #(La#)H8#+K?#,I~#/B #1Q#2BM#4CL#7E1#8X~#:CL#;CL#CL#?CL#ACL#BCL#Evf#Ft6g#GDk3#H}#IGH#JGR#LCL#MCL#OCL#PCL#QCL#RCL#SCL#T^#UCL#VCL#XCL#YNDm#[CL#^C#_CL#CL#zF^ #CL#CL#CL#CL$#K%#J}&#I#CL*#L,#PI#CL.#G̶#CL#CL#CL#CL3#j#4#A6#Ol7#Q38#Gf9#E:#O;#NP<#I3#CL>#X?#H@#FXA#M#CLD#y#; E#GzF#F G#XN#G#Kd#Fg#xsm #aT#ze #Z4 #\^ #j' #j63 !#CL #CL#CL#`q. #CL# qV # x # tM # p3 #N5? #r@3 #CL#CL#CL#CL#CL#FR#H6[#~24 #!om#$](#%wt #&yN #'c #Snf#VG#W][:#Z' #[AZ#^Aٚ #aVm#cIF#dI#gwS #hQ #k_ #l\i#mDf#n^#pCL#qCL#rCL#sCL#tCL#vCL#wCL#xCL#yCL#|KA#~G#GF7#GU#L#L}e#_6L}f# M#u N#CO#@P#C\Q#]ӁR#ME,S#p3 T#HV#leC X#F>wY#F[#ڶh\#\ZP^#dG_#rG `#Ca#YW b#Zfc#WL#CL#CL#CLg#p #CL#CL#CL#CLm#HRwn#\o# _R #"CL#$CL#%CL#&CL#'CL#(CL#)CLw#,Lx#-Z y#/eW #0OP{#3o33 |#5\A}#6l~#8^#;C#G#QH#Ip L#WM#UQN#`cO#BrP#BQ#q R#sc T#I_U#JV#@#CL#CLY#x Z#E#CL#CL]#r ^#N#CL#CLa#Pl#CL#CLd#B#CLf#^#CLh#F?i#W#CLk#V l#Q\) m#P( n#eLo#ip#{ q#rk r#t3 s#L\t#K>u#A #CL#CLx#@=y#Nz# H# CL# CL}#H~#IU#H:0#BY#CL~#CL#DZ#|c #Dc#Ee#F`#HCL #Jz #MCL#NCL #O #PCL#QCL#TL#VCL#WCL#YpPL #ZZ( #]CL#^CL#_CL#ak#d\ 3#eTx#fQ>g#iI#kOp#lV8R#mU\!#no3"#obS4##pK$#qIxu%#rN0&#sJ'#tJ5e(#vA/#xCL*#zD#|CL-#~U #CL#CL0#p- 2#I+3#J4#G)#CL6#]#CL8#~ #CL:#C#CL<#uZ =#Jw#CL#CL@#NtA#HB#A]#CL#CLE#DH#iۋI#_8 #ixB #ixB #B #B #EV#jb #\ #B #B#} #@ #P#C#K)#} 8#K1C#l #RC#H8#KCu#I"#!g+ #"Q#$Eʘ#&CL#)E#*Y#,CL#-CL#/CL#0CL#1CL#2CL#3CL#4CL#7vf#8t6g#9D#:MR#'zkTq?'zlI@'zmF}A'zpp 'zsCLD'zuiQ E'zwG}F'zxFpG'zyS'z|G'z}K'z~F.f'zx 'z`$'zz0 'zZn 'z] 'zj63 'zj63 !'zCL 'zCL'zCL'z]K 'zCL'zq 'z~24 'zD'zq^ 'zQ 'zr 'zCL'zCL'zCL'zCL'zCL'zFXe'zGO'z~# 'zp'z],`'zw 'zy]w 'zc>' 'zrٚ'zH'z['z~s 'zA'zB 'zU#'zIo'zI'zx 'zQ[ 'z^w 'z^'zG'z^'zCL'zCL'zCL'zCL'zCL'zCL'zCL'z,CL'z-CL'z1Ku'z2Gt'z3Gi'z4G}'z7L='z;L=}e'zeK}f#|z։ M'zXv N'zZCO'z[A'P'z\DAYQ'z`^WmR'zaM^!S'zbo T'zcI60V'zdn X'zfFS:Y'zgG=['z\'z[^'zbW_'zsUV `'zBa'z\ >b'z].c'zVff'zCL'zCL'zCLg'zp 'zCL'zCL'zCL'zCLm'zGn'z4o'z` 'zCL'zCL'zCL'zCL'zCL'zCL'zCLw'zQLx'zVy'zg#'zOP{'zp |'z]<}'zo"S~'z^'zC'zF'zy1 ~'zCL'z_ |'zCL'zFD'zFhR'zG]'zJu'zCLt'zCL'z pR 'z mi 'z iK 5'zKj6'zKr'zCL'zCL:'zD;'zMc<'zWҶ?'zG )'zCL'zCLB'zw C'z C;AD'z!DE'z#f>F'z$nHG'z%XaHH'z&IS L'z'Z&fM'z(WN'z)bO'z*DBP'z+DT5Q'z.r R'z/s8 T'zYIhU'zZJV'z[A,X'z]CL'z^CLY'z`y Z'zaE2'zdCL'zeCL]'zgs ^'ziMs'zkCL'zlCLa'zoM'zpCL'zqCLd'zsB 'zvCLf'zw^'zxCLh'zzG} i'z{VxE'z~CLk'zZk l'zR m'zO n'zeo'zk'p'zu=q q'zoW r'zoR s'zLzt'zKu'zA_'zCL'zCLx'zA$Zy'zT z'zH@'zCL'zCL}'zH9Q~'zI'zHu/'zB'zCL~'zCL'zF7 'zTY 'zb'zd'z^'zCL 'zuS[ 'zCL'zCL 'zܲ'zCL'zCL'zB5'zCL'zCL'zf 'zf 'zCL'zCL'zCL'zRM$ 'zL'zD\'zA;3'zI'z Hk'z"Kf'z#K!'z$b@"'z%U#'z&{$'z'Im%'z(NØ&'z)J''z*JC('z+A'z-CL*'z/D'z2CL-'z4@C 'z7CL'z8CL0'z:wQ? 2'zG'z@CL6'zA]'zBCL8'zD 'zGCL:'zID|'zLCL<'zNv ='zOJw'zRCL'zSCL@'zVLfA'zWI5B'zYA"'z[CL'zCLE'zFRH'zF AI'zdOR 'zixB 'zixB 'zEV'zEV'zEV'zixB 'z[ 'zEV'zj> 'z{'z@ 'zP 'zC'zKT'z} 8'zL'zlo 'z~n'zH8'zL'zIR'zg+ 'zT'zA'zCL'zE'zZQ'zCL'zCL'zCL'zCL'zCL'zCL'zCL'zCL'zO'zr'zC.g'zLaH'zO'zM'zCL'zCL'zCL'zCL'zCL'zCL'zCL'z^'zCL'zCL'zCL'zNA'zCL'zC$'z CL'z CL'z sF 'zCL'zCL'zCL'zCL$'zL'%'zJ0?&'zM*'zCL*'zLJ,'zT_H'z CL.'z"C{'zMCL'zNCL'zOCL'zPCL3'zSjQa4'zTA6'zWO7'zXJf8'zYC39'z\EA:'z^R;'z_Q <'z`P'zbCL>'zdRǴ?'zeI&@'zfF_ A'ziwQ? 'zlCLD'znjb E'zoGF'zpE<G'zqR _'zuF'zvJ'zwEx'zxz/ 'z|bX'z}{/ 'z~Z 'z]h 'zjD 'zjSk !'zCL 'zCL'zCL'zb 'zCL'zr 'zB'zDnQ'zr 'zTg 'zrn 'zCL'zCL'zCL'zCL'zCL'zFar'zG'z~' 'zphZ'z],`'z{ 'z},l 'zc[o 'zrٚ'zH/3'z]'z7 'zA'zB 'zU'zIk'zI'zx:D 'zX 'zb 'za'zJVf'z^'zCL'zCL'zCL'zCL'z CL'z"CL'z#CL'z$CL'z%CL'z(K3'z*GT'z+GuQ'z,G'z/L='z2L=}e'zfw}f'z z M'zxuZU N'zzCUO'z{BP'z|D|Q'z_9oR'zM/S'zp T'zJV'zogf X'zFXY'zG['z6\'z[8.^'zf_'zuc `'zAa'zdb'zbW c'z\4'zCL'zCL'zCLg'zq 'zCL'zCL'zCL'zCLm'zG(Tn'zgo'zcj 'zCL'zCL'zCL'zCL'zCL'zCL'zCLw'zLqx'zX34y'zc'zOP{'zr |'z[/2}'zm~'z^'zC.j'zFK'z{ ~'zCL'z`63 |'zCL'zF'zFШ'zGT'zP\u'zCLt'zCL'zoD 'zm 'zi 5'zK_6'zKu'zCL'zCL:'z DX;'z I<'z Z?'z F~'zCL'zCLB'zx C'zBD'zD}E'zcF'z@igG'zAWH'zBIУ L'zCXM'zDUJ>N'zEa{O'zFEP'zGF.ZQ'zJo7 R'zKp| T'zMI U'zNK+dV'zOAN'zQCL'zRCLY'zTz Z'zUD̘'zXCL'zYCL]'z[tM ^'z]L''z_CL'z`CLa'zcM'zeCL'zfCLd'zhC 'zkCLf'zl^'zmCLh'zoGi'zpUj'zsCLk'zvZ l'zwT m'zxSW n'z{eٚo'zk>Hp'zo q'zkL r'zl s'zLt'zK{u'zB2'zCL'zCLx'zAOy'zUrz'zHa'zCL'zCL}'zH ~'zI‹'zHD'zBV'zCL~'zCL'zF?'zT 'zd'zf'za4'zCL 'zt 'zCL'zCL 'zж'zCL'zCL'zAf'zCL'zCL'zfE 'zf 'zCL'zCL'zCL'z R| 'z ]9'z Vf'zQs4'zI6'zU4'z[:'zX\!'zj3"'z^)#'z@$'zIK%'zNW&'zKa{''zJ`('zBx3'z CL*'z"D̘'z%CL-'z'}T 'z*CL'z+CL0'z-w3 2'z/I3'z0J|J4'z1H&'z3CL6'z4]'z5CL8'z7@C 'z:CL:'zEW'zACL'zBCL'zCCL'zDCL3'zGjlr4'zHA6'zKP6f7'zLL8'zMHs39'zPEv:'zRMff;'zSN<'zTK'zVCL>'zXN?'zYI@'zZF<A'z]zu 'z`CLD'zbz7 E'zcGF'zdEG'zeM'ziF'zjI 'zkE&f'zozϮ 'zap$'z| 'zZO 'z] 'zjb 'zjp !'zCL 'zCL'zCL'zgx 'zCL'zs 'zAL'zD'zs T 'zE'zs 'zCL'zCL'zCL'zCL'zCL'zFW~'zHG'z~Ü 'zpл'z]/'zzr 'z{ 'zcx 'zpf'zHZ'zZ'zFv 'z@'z As3 'z Wd'z I'z J 'z xt 'z Y 'z bL 'z aFf'z K3'z ^'z CL'z CL'z CL'z CL'z CL'z CL'z CL'z CL'z CL'z K'z !G$'z "G'z #G 'z &L\'z )L\}e'z[5}f'zyb} M'z v& N'z D=SO'z BwP'z EQ'z `mR'z MS'z o T'z JV'z qA X'z FY'z G['z '\'z [^'z IfN_'z Jv `'z K@a'z MZs4b'z NY^c'z OUp'z RCL'z SCL'z TCLg'z Vs% 'z XCL'z YCL'z ZCL'z [CLm'z _Fn'z bgo'z ce$ 'z eCL'z fCL'z gCL'z hCL'z iCL'z jCL'z lCLw'z oGx'z pVy'z qc>'z rOP{'z st |'z t[}'z um-~'z x^'z {B'z |F'z qes ~'z CL'z aZY |'z CL'z G&k'z GP'z H'z JSu'z CLt'z CL'z n0! 'z mi 'z i8 5'z KH6'z KcN'z CL'z CL:'z D;'z O?<'z \.b?'z Gg'z CL'z CLB'z y C'z D'z D}E'z s*F'z zGG'z _H'z JlN L'z XqM'z WN'z cO'z HO P'z HAQ'z n R'z o T'z JLPU'z KV'z B5h'zCL'zCLY'z{/ Z'zD'zCL'zCL]'zv ^'zMi'zCL'zCLa'z"N/}'z$CL'z%CLd'z'B'z*CLf'z+^'z,CLh'z.JFi'z/Si='z2CLk'z5[\" l'z6P\) m'z7N n'z:ds3o'z;k=p'z=rL q'z>l( r'z?naH s'z@Lt'zALu'zBB('zDCL'zECLx'zGAHy'zHRŐz'zII/j'ztCL'zwCL}'zyI~'z{J 'z|IE)'z}B'zCL~'zCL'zFxC'zUY 'za'zc'z^'zCL 'zB'zCL'zCL 'zK''zCL'zCL'zQ'zCL'zCL'zup 'zj 'zCL'zCL'zCL'zRe 'z^4'zV4'zQnf'zI'zLp'zN'zOh!'zd"'zX4#'zx$'zI:%'zNt&'zKvj''zJ[('zB L'zCL*'zD'zCL-'z~ 'zCL'zCL0'zx 2'zJ$L3'zJ4'zHU'zCL6'z]'zCL8'zK 'zCL:'zEG'zCL<'zx ='zI='zCL'zCL@'z LŭA'z IB'z A 'zCL'zCLE'zFLH'zz2I'z>jQ 'zAEV'zBEV'zCB 'zEB 'zFB 'zGEV'zHEV'zIB 'zJE'zL} 'zM@{'zPPr'zRG^'zSK?'zWwFy'zYK/q'z\m 'z]C'z^H8'z`L'zaI'zdg+ 'zeRv'zfCij'zhCL'zkE'zl['znCL'zpCL'zqCL'zrCL'zsCL'ztCL'zuCL'zvCL'zCq'zl'zI3'zpp'zx\'zq'zCL'zCL'zCL'zCL'zCL'zCL'zCL'z^'zCL'zCL'zCL'zN<|'zCL'zC$'zCL'zCL'z{ 'zCL'zCL'zCL'zCL$'zL%'zJH&'zM$q'zCL*'zL,'zO=o'zCL.'zD'zCL'zCL'zCL'zCL3'zj4'zA6'z SI7'z O38'z H9'zE:'zH;'zK <'zFS3'zCL>'zSJ?'zI@'zFedA'zKS'zCLD'z^ E'z G{aF'z!EG'z"Rq'z&Fљ'z'Ih'z(D'z+{2 'z,ci'z-}1 'z.[; 'z0^D 'z1j 'z2jH !'z5CL 'z6CL'z7CL'z9] 'zDDO'z?{ P'zAE8Q'zDaR'zENgS'zFp< T'zGFAV'zHgD X'zKG qY'zLHL['zMp\'zNX?^'zQc4_'zRi `'zS@ea'zVqٙb'zWtc'zXp{'zZCL'z[CL'z\CLg'z_s+ 'zbCL'zcCL'zeCL'zfCLm'ziFwn'zo'zgD 'zCL'zCL'zCL'zCL'zCL'zCL'zCLw'zOx'zVy'zh'zOP{'zewx |'zYG}'zj~'z^'zB'zF'zp ~'zCL'zad |'zCL'zGB'zGi~'zH3'zN|su'zCLt'zCL'zlA 'zn=q 'zi< 5'zK-6'zKS'zCL'zCL:'zDX;'zN<'zZ=?'zG&"'zCL'zCLB'z{ C'zCտD'zD/E'z dQF'z tG'z ozH'z J`e L'z W\M'zTN'z_ >O'zHP'zI Q'zn R'zoI T'zJv.U'zKlV'zBE'zCL'zCLY'z|j Z'zE9['z"CL'z#CL]'z%w ^'z'N׮'z)CL'z*CLa'z,PI'z.CL'z/CLd'z1jU'z^CLf'z_^'z`CLh'zbH@i'zcR'z#Vq?'z$Iu@'z%F=A'z&L:'zPCLD'zRAE'zTGaF'zUF0G'zVU'zZHf'z[KQ'z\Gf'z_{ 'z`a'za~c 'zb[ 'zd^ 'zejH 'zfk !'ziCL 'zjCL'zkCL'zmaЊ 'zqCL'zsv4 'zt~z 'zuqes 'zvt!N 'zw] 'zxt 'z{CL'z}CL'z~CL'zCL'zCL'zFJ'zGr'z' 'zq'z]/'zy{ 'z{ 'zc 'zq0'zHg'z_Y'zAk'zBjh'zA33 'zX'zJv'zS'zy1 'zW9E 'z_U 'z^33'zDf'z^'zCL'zCL'zCL'zCL'zCL'zCL'zCL'zCL'zCL'zL'zGu'zGܜ'zGl'zL'zL}e'zwj0}f'zu+ M'z1v N'z3DRO'z5@7P'z6EyQ'z9aR'z:NuS'z;n T'zG'zWzH'zJ L'zU34M'zRN'z]޹O'zI-P'zIbQ'znn R'zo T'z JU'z L/+V'z Bn'zCL'zCLY'z| Z'zEsZ'zCL'zCL]'zyl ^'zO'zCL'zDCLa'zGPr.'zICL'zJCLd'zLC'zQCLf'zR^'zSCLh'zUGoi'zVPS'zYCLk'z\X4a l'z]MǮ m'z^Kq n'zado'zbj݃p'zdt{ q'zeq r'zfqR s'zgLt'zhLuu'ziC'zkCL'zlCLx'znA"y'zoNbSz'zpH'zsCL'ztCL}'zvG~'zxJ'zyJA'z{B'z}CL~'z~CL'zFm'zkV 'zb~f'zd'z^'zCL 'z@A'zCL'zCL 'z'zCL'zCL'zF5'zCL'zCL'zy] 'zfB 'zCL'zCL'zCL'zi)'z^'zW'zT 'zIQw'zL 'zQ\)'zSu!'zaFf"'zO#'zx$'zI.%'zN&'zKg''zJ`('zB['zCL*'zAq'z CL-'z@'zCL'zCL0'zt 2'zJ73'zK4'zG'zCL6'z]'zCL8'zyl 'z!CL:'z#F7 'z&CL<'z(q ='z)E'z,CL'z-CL@'z0bA'z1JVeB'z3A'z5CL'z6CLE'z8JnH'z9JOI'z:YR 'z=B 'z>B 'z@B 'zAB 'zBEV'zCB 'zDixB 'zEB 'zFE+b} +bB3+b PI+b G^+b L+b} 8+bK?+bB +bO+bI+bM +bJ"Q+bg+ +bQX+b DQ+b"CL+b%Eu+b'\Ը+b)CL+b*CL+b+CL+b,CL+b-CL+b.CL+b/CL+b0CL+b3C+b4vg+b6C{3+b7MR+b8VW +b9OxR+b;CL+bdCL+beCL+bfCL+bgCL+bhCL+bjCL+bk^+blCL+bmCL+bnCL+bpNC+bqCL+btC+bvCL+bwCL+by|ƚ +b|CL+b}CL+b~CL+bCL$+bLkX%+bJ&+bQQ%+bCL*+bLg,+bE +bCL.+bA +bCL+bCL+bCL+bCL3+bk54+bA6+bO)7+bO8+bFf9+bFt:+bM;+bP#3<+bK3+bCL>+bYl?+bI7l@+bFƏA+bC+bCLD+brN E+bGF+bFcG+bXN+bDD+bF3+bBg+b|< +b_R9+bVZ +b\o +b^j +bk +bkK !+bCL +bCL+bCL+bf +bCL+bv +b O +bI+bwl +bS&l +btj. +bCL+bCL+b,CL+b-CL+b.CL+b1FI+b2G5+b5 +b8q֩+b;]33+bd +bAp3+bDI*J+bE]C+bGA+bHB;+bJA8R +bMX[+bNIe+bOJZ+bRyl +bTY +bWcȉ +bX`vf+bYKf+bZ^+b[CL+b\CL+b^CL+b_CL+b`CL+baCL+bbCL+bdCL+beCL+bM+bG+bG+bG}+bL+bL}e+bc[}f'zt M+bvn N+bE O+bB2P+bEQ+ba7R+bO?S+br# T+bJ۶V+bp5 X+bG?Y+bH[+bȮh\+bZ.9^+be_+bwUU `+b@pa+b\b+b\W c+bTz+bCL+bCL+bCLg+bt +bCL+bCL+bCL+bCLm+b FE$n+b vgo+bh +bCL+bCL+bCL+bCL+bCL+bCL+bCLw+bP >x+b]y+bh8R+bOP{+btؿ |+bY (}+b!j>~+b#^+b&BX+b'F+b*r ~+b,CL+b/b5h |+bYCL+b\GL+b]G+b^HM+baIiu+bdCLt+beCL+bgjC +bhno +biiƨ 5+blKA6+bmKI+boCL+bpCL:+bqD̘;+bsG)H<+btYE?+buF/+bwCL+byCLB+bz} C+b|Dw)D+b}DV&E+b~aF+bpG+bYW H+bJ L+bRpM+bON+b[pO+bIP+bIQ+bn R+bo,| T+bK UU+bLV+bBM+bCL+bCLY+b|= Z+bE+bCL+bCL]+b{LS ^+bO/+bCL+bCLa+bPv+bCL+bCLd+bC/+bCLf+b^+bCLh+bHGi+bOp+bCLk+bXv l+bO m+bM\) n+bcfo+bl~p+bwH q+bs# r+brB s+bLt+bL u+bD$V+bCL+bCLx+bAy+bSRz+bH+bCL+bCL}+b G~+b"J.+b#J+b$C"+b&CL~+b'CL+b)G )+b+U +b-b+b.c+b/_+b1CL +b3r +b6CL+b7CL +b8+b:CL+b;CL+b>X+b@CL+bACL+bCmh +bDn +bGCL+bHCL+bICL+bLSO +bMI+bNBQ+bOL+bRI#T+bTL{+bUQ\+bVP(!+bWa3"+bXN#+bYf$+bZI%+b[OH&+bK'+bJk(+bBp+bCL*+bEsZ+bCL-+bA+bCL+bCL0+b{ 2+bJ3+bKw4+bH>+bCL6+b]+bCL8+b@+bCL:+b}R +bCL<+by@ =+bI+bCL+bCL@+bLbA+bJB+bAJ+bCL+bCLE+bF5H+bPI+bi +bixB +bixB +bEV+bEV+bC=+bixB +b[ +bEV+bo +b} +b@ +bPC+bG^+bL+b} 8+bL+bB +bOO+bI+bM +bJ/ +b g+ +b P^+b A3#+bCL+bE1+b[ŧ+bCL+bCL+bCL+bCL+bCL+bCL+bCL+bCL+bvf+b t6g+b!H+b"MR+b#U+bLMR+bNCL+bPCL+bQCL+bRCL+bSCL+bTCL+bUCL+bV^+bWCL+bYCL+bZCL+b[NE+b]CL+b`C<+bbCL+bcCL+bdu +bgCL+bhCL+biCL+bjCL$+bmL<%+bnJWN&+bqNk+btCL*+bwL,+bxMk+bzCL.+b||R8 +b~CL+bCL+bCL+bCL3+bkx-4+bA6+bSI7+bI48+bE9+bE:+bK;+bK<+bI+bCL>+bZss?+bIZ @+bFعA+bA+bCLD+bj E+bGF+bF\pG+bYd+bC3+bFc3+bB3+b| +bc+b@9q+b]K +b_ +bk=" +bk_ !+bCL +bCL+bCL+bc +bCL+bw +b@+b@u+bw +bDC+bt +bCL+bCL+bCL+bCL+bCL+b!FPA+b"H>+b& +b(qϑ+b+]6+b,{ +b-} +b.dE +b1p+b5Ij+b6Z+b7BuK+b8C<*+b:AT{ +b=Wp+b>Ix+b?JS+bCy +bDSpi +bG`UU +bH_+bIH`+bJ^+bKCL+bMCL+bNCL+bOCL+bxCL+byCL+b{CL+b|CL+b}CL+bMWl+bG+bG+bG+bL+bL}e+bZcR}f+bgsP M+bwJ N+bEO+b| P+bE Q+bc;QR+bOmS+b@T+bEBV+be5| X+bG8Y+bIh[+b\+bV^+bb"_+bm* `+bBa+b[aHb+bX4c+bR+bCL+bCL+bCLg+bt +bCL+bCL+bCL+bCLm+bGhn+bFgo+bh| +bCL+bCL+bCL+bCL+bCL+bCL+bCLw+b J{x+b Uy+b d+b OP{+bh |+bYd}+bh{~+b^+bAB͟+bBG=+bEo۔ ~+bHCL+bJ_ |+bLCL+bOG:a+bPG+bQHFX+bUOSu+bWCLt+bXCL+bZh +b[mfg +b\ip 5+b_Kp 6+b`KL+bbCL+bcCL:+beDZ;+bfOI><+bg\H?+bhHk+bkCL+blCLB+bn~ C+boC<D+bpDRJE+br]\F+bso\G+bt\{H+buJ L+bvR#M+bwOqN+bx[QO+byI&P+bzJQ+bn R+boXB T+bKZU+bL+V+bCi(+bCL+bCLY+b}R Z+bE+bCL+bCL]+b{Z ^+bO8a+bCL+bCLa+bPqv+bCL+bCLd+bB +bCLf+b^+bCLh+bHs<i+bN;+bCLk+bY l+bO m+bN n+beo+bl~p+by q+bw r+bt s+bL^t+bL'u+bDP+bCL+b CLx+b B)y+b Tpz+bH+bCL+bCL}+bGn~+bK+bK[#+bC9+bCL~+bCL+bG-a+bV 0 +b a+b!cs3+b"]+b$CL +b&p$ +b)CL+b*CL +b++b,CL+b-CL+b/F7 +b2CL+b3CL+b5hq7 +b6p +b9CL+b:CL+b;CL+b>Si1 +b?Q+b@K4+bAFљ+blI+bnO+boS+bpT!+bqd34"+br[3#+bszS4$+btI~%+buO2&+bvK'+bwJ(+bxB+bzCL*+b|E+bCL-+bAL+bCL+bCL0+b{ 2+bK63+bL 4+bH+bCL6+b]+bCL8+b7 +bCL:+bU +bCL<+bz =+bH+bCL+bCL@+bLA+bJNB+bA+bCL+bCLE+bFݱH+bO/I+bu +bixB +bixB +bEV+bEV+bDG+bixB +b[~ +bEV+bk +b}7+bEV+bPC+bG^+bL+b} 8+bL+bB +bBow+bI+bM +bJP+bg+ +bO+bEʘ+bCL+bES+b\Ը+bCL+bCL+bCL+bCL+b CL+b CL+b4CL+b5CL+b8C+b9vf+b:L+b;N+b+b ZP!+b [b"+b \T&f#+b ]n,$+b ^I4^%+b _N&+b `K'+b aJd(+b bB+b dCL*+b fEsZ+b iCL-+b kAe+b nCL+b oCL0+b q{ 2+b sKvn3+b tL+4+b u@i+b wCL6+b x]+b yCL8+b {@+b ~CL:+b | z +b CL<+b z)B =+b I +b CL+b CL@+b L!A+b K/LB+b A@+b CL+b CLE+b FyH+b NeI+b ^ +b ixB +b ixB +b @+b @;+b E +b ixB +b [- +b @X+b k +b } +b EV+b P'T+b G^+b K"+b } 8+b K +b B +b tU+b I+b L+b JP+b g+ +b Lv+b AL+b CL+b E+b \Ը+b CL+b CL+b CL+b CL+b CL+b CL+b !CL+b "CL+b %B+b &t6g+b 'C+b (N\)+b )MR+b *O+b ,CL+b -CL+b /CL+b 0CL+b 1CL+b 2CL+b 3CL+b 4^+b 5CL+b 6CL+b 7CL+b 9NA+b ;CL+b =C+b ?CL+b @CL+b BuD +b ECL+b FCL+b GCL+b HCL$+b KKγ%+b LJ&+b NK2+b QCL*+b TLE,+b UA}+b WCL.+b Al+b CL+b CL+b CL+b CL3+b l `4+b A6+b Bg7+b },8+b zff9+b ER:+b Jٙ;+b Lg<+b Jg+b CL>+b Q?+b Iw0@+b FuA+b BM+b CLD+b kw E+b GF+b F7G+b Q;+b @4+b Bg+b ~s4+b }D +b `ݴ+b AVA+b ^a +b _ +b k +b la7 !+b CL +b CL+b CL+b dq +b CL+b y@Y +b ~s +b vv +b y +b K"+b u +b CL+b CL+b CL+b CL+b CL+b FR+b G +b  +b qʙ+b ]6+b { +b } +b d +b o3+b J+b X;j+b Cn+b Dr+b AT{ +b VH+b J#+b K^+b zF^ +b HV3 +b Kc +b L`+b MI+b N^+b OCL+b QCL+b RCL+b SCL+b TCL+b UCL+b VCL+b XCL+b YCL+b \N+b ]G^+b ^H+b `HO+b cL+b fL}e+b B>}f+b DqW$ M+b w N+b E4O+b @[P+b E]Q+b bR+b OS+b p< T+b HV+b m, X+b GaY+b J[+b \+b Xa^+b d_+b oq `+b Ca+b rqb+b qc+b m+b CL+b CL+b CLg+b t +b CL+b CL+b CL+b CLm+b Hjn+b o+b hӄ +b CL+b CL+b CL+b CL+b CL+b CL+b CLw+b H.x+b Ty+bd34+bOP{+bj |+bY}+bk# ~+b^+bC;+bG+b!nQ ~+b#CL+b&dB |+b(CL+b+GvH+b,GB+b-H+b0KGu+b3CLt+b4CL+b6g' +b7l +b8iK 5+b;K~6+bCL+b?CL:+bADV;+bBOW<+bCT=#?+bDGJY+bGCL+bHCLB+bJ@C+bKA,D+btDeE+bvfLF+bwp*G+bx\ffH+byJi L+bzWLM+b{T&fN+b|_O+b}JjP+b~JQ+bo; R+bo۔ T+bL U+bM V+bC]+bCL+bCLY+b} Z+bE+bCL+bCL]+b}I ^+bOR[+bCL+bCLa+bP<+bCL+bCLd+bD+bCLf+b^+bCLh+bHzxi+bLl+bCLk+bY; l+bQ3 m+bO n+be o+bm!p+bu q+brk r+bqL s+bLt+bLGu+bA#+bCL+bCLx+bAOy+bQz+bF+bCL+bCL}+bF/~+bK+bL?+bC4+bCL~+bCL+bGQ+bVq +bb+bcs3+b^+bCL +bu} +bCL+bCL +bQ+bCL+b CL+b DJ+bCL+bCL+bi +bp= +b=CL+b>CL+b?CL+bBSk +bCK+bDDk3+bE@f+bHI',+bJ@+bKC:+bLCB!+bMT3"+bNK3#+bOiL$+bPI%+bQNM&+bRL'+bSJ:(+bTCM+bVCL*+bXET+b[CL-+b]At@+b`CL+baCL0+bc|R8 2+beKk}3+bfL54+bg@+biCL6+bj]+bkCL8+bm@}B+bpCL:+br{/ +buCL<+bw{ =+bDg+bCL+bCL@+bLrA+bKb^B+bB^+bCL+bCLE+bGH+bMI+bj +bixB +bixB +bAҩ+bA{+bFݱ+bixB +b[~ +bA +bk +b} +bEV+bPL(%+b?Jm&+bjO0+bmCL*+boLZ ,+bpDg+brCL.+bt{in +bwCL+bxCL+byCL+bzCL3+b}l+4+b~A6+b@7+bCf8+b~9+bEv:+bM6f;+bNi<+bJ|+bCL>+bOS?+bIS@+bFA+b@a+bCLD+bm- E+bGF+bEG+bNE+bi+bn6f+bhg+b@}+b`6+bB,+bk/ +bfTQ +bAt@+bDX!+bCL +bCL+bCL+bfJ +bCL+b{ +bEZ+bD+b{in +b+bu +bCL+bCL+bCL+bCL+bCL+bF?+bGo+b@+bqN+b]:+b{ +bn +bdA +bq+bJ;+bXF+bAҩ+b1mJ +b5A) +b8Vm8+b;qHF +bT +bAcUU +bC`3+bDIf+bE^+bFCL+bGCL+bHCL+bJCL+bKCL+bLCL+bMCL+bNCL+bOCL+bSNG+bqVH+brK+ L+bsX M+btTN+bu_HO+bvJP+bwJ{Q+bzoXB R+b{o T+b}Lc)U+b~MV+bDz+bCL+bCLY+b~; Z+bE*+bCL+bCL]+b{ ^+bO1+bCL+bCLa+bO+bCL+bCLd+bD+bCLf+b^+bCLh+bHi+bV`+bCLk+bY l+bOz m+bMaH n+beٚo+blip+btaH q+bn r+bn s+bM/t+bLMHu+bCַ+bCL+bCLx+bA{y+bPC+bAH2+bCB\)+bDD+bED!+bFm"+bGK4#+bHn,$+bII(%+bJM&+bKK'+bLK (+bMD+bOCL*+bQF~+bTCL-+bV@+bYCL+bZCL0+b\|R8 2+b^K\3+b_L;4+bA+bCL6+b]+bCL8+bA:%+bCL:+by +bCL<+b{/ =+bDu+bCL+bCL@+bLt A+bKB+bC+bCL+bCLE+bHkH+bAI+bq] +bixB +bixB +bBE+bA+bG4+bixB +b[~ +bA"+bk[ +b|e+b@ +bPC+bG^+bK4+b} 8+bL+bEV+bzJ+bI+bL+bJP+bo^ +bLv+b@+bCL+bE:+b[X+b CL+b CL+b CL+b CL+bCL+bCL+bCL+bCL+bvg+bs +bDfg+bM}q+bMR+bOY+bCL+bCL+bCL+bCL+b CL+b!CL+b#CL+b$^+b%CL+b&CL+b'CL+bPN++bRCL+bUC+bWCL+bXCL+bZB +b\CL+b]CL+b^CL+b_CL$+bbL(%+bcI\&+bfG+biCL*+bkL ,+blR++bnCL.+bpF+bsCL+btCL+buCL+bvCL3+bylgO4+bzA6+b}|Y7+b~{28+bwٙ9+bE:+bHy;+bK#3<+bF`+bCL>+bQ?+bI@+bFA+bAŖ+bCLD+bo7 E+bGF+bEG+bP +bO.g+bR+bN4+bAwr+ba+bBO+b{ +b{/ +bB5+bB !+bCL +bCL+bCL+ba< +bCL+b{in +b} +bFE+bz +b߃/+bv^f+b@D3+bA^+bBCL+bCCL+bDCL+bECL+bGCL+bHCL+bICL+bJCL+bKCL+bOM+bPG+bQH+bRG+b}L+bL}e+bzvL}f+b-l< M+bwJ N+bD&O+bA&P+bEQ+bbR+bOMS+bo T+bI/V+bn X+bG?Y+bJ+j[+b\+bYG^+bc_+bu `+bAܒa+bY0b+bWzc+bSR+bCL+bCL+bCLg+bs +bCL+bCL+bCL+bCLm+bGMvn+b@$o+bi_ +bCL+bCL+bCL+bCL+bCL+bCL+bCLw+bHx+bWy+b_8R+bOP{+bs# |+bZ }+bj1~+b ^+b CG+bG#+bn ~+bCL+bb |+bCL+bGZ+bDF&a+bEH+bHG>Fu+bJCLt+bKCL+bNgB +bOl- +bPiƨ 5+bRK6+bSK+bUCL+bVCL:+bXEZ;+bYMms<+bZY?+b[Fq+b^CL+b_CLB+ba} C+bcAOlD+bfDE+bhj\F+bim#G+bj\4H+bkKDF L+blZ M+bmWEN+bncO+boJP+bpJCQ+bsn R+bto T+bvLU+bwMiV+bxE !+bzCL+b{CLY+b}K Z+b~D+bCL+bCL]+bz)B ^+bPA$+bCL+bCLa+bQS$+bCL+bCLd+bE*+bCLf+b^+bCLh+bI=i+bVw+bCLk+bYp l+bO\) m+bMG n+bd33o+bm4$p+bwff q+bq{ r+boH s+bMt+bL=u+bC4+bCL+bCLx+bAqy+bN~ z+bG+bCL+bCL}+bG-a~+bL+b LoC+b A+bCL~+bCL+bF[G+bVP +baFf+bcC4+b^A+bCL +btU +bCL+b CL +b! +b"CL+b#CL+b%A"+b(CL+b)CL+b+f& +b,k* +b/CL+b0CL+b1CL+b4S" +b5`ɚ+b6Z`+b7Vk3+b:H+b+b>N!+b?r3"+b@`0#+bAE$+bBI o%+bCM!&+bDKM'+bEJ (+bF@Bf/JCL*/Jl/J CL-/J ~l^ /JCL/JCL0/Jz? 2/JKXV3/JL0#4/JA_/JCL6/J]/JCL8/JAO/JCL:/J D%/J#CL/J:S?/J;I@/J^/J?CLh/JAI=i/JCUx/JECLk/JHYG l/JIN. m/JJL n/JMco/JNmp/JPn q/JQi\ r/JSj s/JTMt/JULu/JVC/JXCL/JYCLx/J[B y/JLz/JG0/JCL/JCL}/JGX~/JL/JLf%/JB\/JCL~/JCL/JF>K/JQ, /Jd{3/Jf/Jac4/JCL /Jv /JCL/JCL /JX/JCL/JCL/JAe/JCL/JCL/Jf& /J]d /JCL/JCL/JCL/Jdi/JT/JH&g/JE3/JH/JN/JQq/JPu!/JY"/JPf#/Js$/JH`%/JM&/JK'/JJz(/J@P5/JCL*/JY$/JCL-/J}R /JCL/JCL0/Jt 2/JKA3/JLU{4/J@N/JCL6/J]/J CL8/J ~ /JCL:/JEG/JCL/J(U?/J)I@/J*F.A/J+B$/J-CLD/J/mm E/J1GbF/J2EG/J3W!/J6B/J7E /J8AI/J@9q/J?| z /J@|R8 /JABE/JBBF!/JECL /JGCL/JHCL/JJf(r /JMCL/JOv /Jx| z /JyDX/J{v /J|` /J}v /JCL/JCL/JCL/JCL/JCL/JFZ5/JH/JFv /JqW/J]33/J|oQ /J~ /Je /Jq/JI /J`/J@/J@6 /J@ff /JXo/JJ/JJ/J{/9 /JZ /J`U /J_3/JJVf/J^/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JM/JH/JH9/JH/JL/JL}e/J|k*}f/Jpa M/Jt N/JD?wO/J@KP/JEHQ/JcdR/JN%S/Jof T/JAF^V/JBg X/JDG Y/JEI[/JF P\/JG[^/JJeg_/JKo `/JMAa/JOY4b/JPYc/JQU/JSCL/JTCL/JUCLg/JWrb /JZCL/J[CL/J\CL/J]CLm/J`F~n/Jco/Jde /JfCL/JgCL/JiCL/JjCL/JkCL/JlCL/JmCLw/JpG8Rx/JqXy/Jrc/JtOP{/Jwj |/Jy[?}/Jzl~/J^/JB/JGHT/Jm ~/JCL/J_ |/JCL/JG /JGoJ/JHF/JP8u/JCLt/JCL/JeB /JjH /Jh 5/JK*6/JKϜ/JCL/JCL:/JE;/JJp q/J?h3 r/JAi s/JBM%Et/JCL,u/JlCY/JnCL/JoCLx/JqAfy/JrSz/JsG/JvCL/JwCL}/JyG`~/J{L/J|L/q/J}BZ/JCL~/JCL/JE/J@܆/Jd/Jf/Jah/JCL /JuS[ /JCL/JCL /JQ/JCL/JCL/JA/JCL/JCL/Jf& /J]u /JCL/JCL/JCL/J`D/JZ3/JS@/JN/JH/JN/JQc/JP>!/J_ٚ"/JP#/Jt,$/JH%/JM&/JKo'/JJb(/JC$8/JCL*/J]/JCL-/J~ /JCL/JCL0/Ju6 2/JKT3/JLi4/J^ /JCL6/J]/JCL8/J~ /JCL:/JEd/JCLlI/J?t /JBixB /JCixB /JDEV/JEEV/JFB/JGixB /JH[~ /JIEV/JKi /JM{/JPEV/JQPC/JSG/JTK?/JW} 8/JYK8/J\B /J]Lv/J^H8/J`L/JaJP/Jdo^ /JfLv/JgD/JiCL/JlEg/JmYsi/JoCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/Jvg/Jwf/JD/JKf/JO /JK/JCL/JCL/JCL/JCL/JCL/JCL/JCL/J^/JCL/JCL/JCL/JNE&/JCL/JC#/JCL/JCL/J| /JCL/JCL/JCL/JCL$/JL%/JI&/JHx/JCL*/JK,/J[/JCL./JQq/J CL/J CL/J CL/J CL3/J lsh4/J A6/J I<7/J G#48/J G9/J EP:/J J;/J Ivf/J V?/J IΫ@/J FA/J ~ /J CLD/J !jH E/J #G5F/J $EeG/J %Xo$/J (@vf/J )C/J +C/J .@g/J /`=/J 0@BV/J 1| z /J 2|` /J 3Aq/J 5A!/J `CL /J aCL/J bCL/J de>t /J gCL/J iv /J jz$ /J lC'/J mvb/J EZ c/J FT./J HCL/J ICL/J JCLg/J Mr^ /J OCL/J PCL/J QCL/J RCLm/J UFn/J Xo/J Yc /J \CL/J ]CL/J ^CL/J _CL/J `CL/J aCL/J bCLw/J Ix/J Wy/J aQ/J OP{/J o33 |/J ]1W}/J n (~/J ^/J B+/J GG/J wB ~/J CL/J _xB |/J CL/J G$/J GGt/J Hh/J Fu/J CLt/J CL/J f, /J l1 /J hV 5/J K6/J KϜ/J CL/J CL:/J F;/J IĚM/J pN/J sO/J r P/J fm Q/J CDR/J ^fT/J LU/J N:V/J B\/J CL/J CLY/J  Z/J DS/J CL/J CL]/J xt ^/J | /J CL/J CLa/J C=/J CL/J CLd/J DnQ/J CLf/J ^/J !CLh/J #Ii/J $T5/J 'CLk/J )Y l/J +M= m/J TK n/J Wd&fo/J Xmp/J Zp q/J [kH r/J \m s/J ]M%Et/J ^Lu/J _C /J aCL/J bCLx/J dAy/J eSz/J fG`/J iCL/J jCL}/J lGX~/J nL/J oK /J pB/J rCL~/J sCL/J uEG/J wEM1/J ygf/J zi3/J {d/J }CL /J u' /J CL/J CL /J n/J CL/J CL/J B8P/J CL/J CL/J g! /J [C /J CL/J CL/J CL/J jj/J Of/J H>f/J D/J II/J M!H/J Pu/J OB!/J Y"/J NC3#/J vl$/J H@%/J MS&/J L1 '/J J~(/J Bۤ/J CL*/J T</J CL-/J } /J CL/J CL0/J t 2/J J3/J L 4/J ~ /J CL6/J ]/J CL8/J }X /J CL:/J El/J CL/J Eʘ/J CL/J EtC/J Yf|/J CL/J CL/J CL/J CL/J CL/J CL/J CL/J CL/J vf/J t3/J vf/J q/J x/J q/J CL/J CL/J CL/J CL/J CL/J CL/J CL/J ^/J CL/J CL/J CL/J N=5/J CL/J C#/J CL/J CL/J 7 /J CL/J CL/J CL/J CL$/J K%/J Ja&/J S/J CL*/J Li,/J X9/J CL./J J+/J CL/J CL/J CL/J CL3/J l4/J A6/J O47/J P8/J P9/J E.:/J H;/J J`/J V1?/J I@/J FEA/J @h/J CLD/J l E/J GF/J E}G/J Y/J @{3/J Df/J g/J H@T/J I_/J J@/J K{ /J L|C /J MA/J OA !/J RCL /J SCL/J TCL/J V_ [ /J YCL/J [vܹ /J \{ /J ^Cpi/J _wna /J ac /J dvܹ /J gCL/J hCL/J iCL/J kCL/J lCL/J oFm5/J pH/J s~ /J ur\/J x]33/J y{LS /J {~@ /J |e /J q9/J IU/J [/J ~ /J  /J @ /J W /J I/J J~/J {LS /J Q[ /J ^j /J ^vf/J Gf/J ^/J CL/J CL/J CL/J CL/J CL/J CL/J CL/J CL/J CL/J M/J H)/J HM/J H /J L/J L}e/J aM}f/J p9 M/J u N/J"D"O/J#CP/J$EQ/J'bpR/J(MS/J)@T/J+I V/J,mg X/J.FqY/J/I[/J0P\/J1^U^/J4bv$_/J5rG `/J8Aa/J9WEb/J:Zc/J;T=q/J=CL/J>CL/J?CLg/JAr /JDCL/JECL/JFCL/JGCLm/JJGn/Ju,o/Jvb/ /JxCL/JzCL/J{CL/J|CL/J}CL/J~CL/JCLw/JIx/JW.y/J`g/JOP{/Jofg |/J\$x}/Jmcf~/J^/JB߮/JH 6/Jv- ~/JCL/J] |/JCL/JGy/JF7/JHH/JKgu/JCLt/JCL/Je /Jj;e /Jgk 5/JK6/JK/JCL/JCL:/JF;/JHV^/J@CLh/JBIki/JCRv/JECLk/JHYR l/JIN3 m/JJL\) n/JMdffo/JNm?Hp/JPo q/JQi r/JSiR s/JTM.ct/JULu/JVB~/JXCL/JYCLx/J[Aey/J\S|Az/J]G/J`CL/JaCL}/JcGC~/JeK /JfKk/JgBV/JiCL~/JjCL/JlEZ/JoWM /Jpcɚ/Jqf&g/Jr_/JtCL /Jv@/JCL/JCL /J/JCL/JCL/JW5/JCL/JCL/Jof /Jc /JCL/JCL/JCL/JTn /JTf/JLf/JWVg/JIt/JHH/JKR/JKk!/Jt"/J]s3#/JIFg$/JH%/JMF&/JL^'/JJx(/J@/JCL*/Jk&N/JCL-/J}: /JCL/JCL0/Jz7 2/JJٛ3/JL4/JH!l/JCL6/J]/JCL8/J By/J CL:/JEG/JCLS /J)B /J+B /J,B /J-B /J.B /J/EV/J0B /J1B /J2B/J4} /J7EV/J9P'T/J;Gr/J/JnH8/JpL/JqJP/Jtg+ /JuE/JvEʘ/JxCL/J|Ej/J}YI/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/Jvf/Jw/JB/Jp/Jx /Jq/JCL/JCL/JCL/JCL/JCL/JCL/JCL/J^/JCL/JCL/JCL/JN8'/JCL/JC</JCL/JCL/J{H /JCL/JCL/JCL/JCL$/JL0#%/JJe&/JK/JCL*/JL#,/JF>K/JCL./JAt@/JCL/JCL/JCL/JCL3/JlO4/JA6/JP7/JQ08/JG9/JE:/JNg;/JM/JW>q?/JI0@/JFA/JE-/JCLD/JvR E/J0GF/J1EVG/J2YVm/J6Ak3/J7D/J8@)/J; /J{ /J?|5! /JAA/JBAAh!/JECL /JFCL/JGCL/JI_d /JLCL/JNwt /JP| z /JQD/JRx# /JSU. /JTvܹ /JWCL/JXCL/JYCL/J[CL/J\CL/J_Fo/J`Hض/Jc~; /Jer^1/Jh]6/Jjzcz /Jk}R /Jf /Jnc3/JI/J`J/J /JU /JA /JW /JI/JJ/J{Z /JT /J^33 /J^p/JFf/J^/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JM*/JH$8/JH_)/JH_/JL/JL}e/JSc/JvOP{/Jyo |/J{\}/J|q~/J~^/JCO/JG/Jr ~/JCL/J^E^ |/JCL/JGag/JF/JHf/JP͊u/JCLt/JCL/Jj /Jk /Jh\) 5/JL^6/JK/JCL/JCL:/JF(;/JGdG/JQRH/JL& L/J^fM/J[4N/JgpO/Jl& P/Jgj Q/JBER/JMyT/JKU/JL}V/J@S/JCL/JCLY/J Z/JC/JCL/JCL]/JtY ^/Jxt /JCL/JCLa/J%@/J(CL/J)CLd/J+C/J-CLf/J/^/J0CLh/J2J<i/J3Qۚ/J6CLk/J8Y l/J9M{ m/J;Kff n/J=do/J>lmp/J@p\) q/JBnaH r/JCk s/JDM2t/JELu/JFB /JHCL/JICLx/JKA+y/JLQz/JMFݱ/JPCL/JQCL}/JSG~/JUK/JVK]/JWB/JYCL~/JZCL/J\Fq/J_T /Jc/Je/J`|/JCL /JC./JCL/JCL /J</JCL/JCL/JB/JCL/JCL/JwQ? /J[8] /JCL/JCL/JCL/JT /JU3/J[/JW/JIp8/JIf/JM/JPٚ!/J`"/JR33#/JJg$/JI%/JM&/JK'/JJ(/J{LS /JCL*/Jx/JCL-/J}: /JCL/JCL0/Jy 2/JK3/JL4/JHa/JCL6/J]/JCL8/JB /JCL:/JE9[/JCL/JTQ?/JI@/JG3A/JA)p/J CLD/J"|oQ E/J$GF/J%FGG/J&U/J)B/J+I3/J,A/J/T /J0c>/J1@/J2{a /J3|& /J4AH/J6@=!/J9CL /J:CL/J;CL/J=fq /J@CL/JBwna /JD{ /JEC~/JFwB /JGaKH /JHvI /JKCL/JLCL/JMCL/JOCL/JPCL/JSF/J|H/J /JrJS/J]33/Jy /J}u% /JfE /Jr /JI|;/J`-/J~z /J~z /JAaH /JWQ/JJ/JJ/J{Z /JY` /Ja3 /J^/JH)/J^/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JCL/JMN/JH+z/JHfj/JH/JL/JL}e/JGl=}f/JuB M/JuZU N/JD EO/JAlP/JE%Q/J a R/J MsS/J p T/JHM{V/Jkd X/JFWY/JI5&[/JV\/J[^/Jc_/Jp `/JDD'a/JEY >b/JFZ.c/JGR/JICL/JJCL/JKCLg/JMq /JPCL/JQCL/JRCL/JSCLm/JVHon/JY~ٚo/JZ`M9 /J\CL/J]CL/J_CL/J`CL/JaCL/JbCL/JcCLw/JfF)x/JgV8Ry/Jh`R/JjOP{/Jmmwx |/Jo\}/Jpr~/Jr^/JuC/JvGc/Jy}f ~/J|CL/J~] |/JCL/JGI/JF/JHg/JI?u/JCLt/JCL/Jm /Jl{ /Jh 5/JL56/JKU/JCL/JCL:/JF/;/JEt/J;L u/JCL/J?CLx/JA@uy/JBOz/JDF/JFCL32CL}32Gg~32Kü32 Jt32 B32 CL~32 CL32F7 32W 32c32e32`32CL 32E232CL32CL 3232CL32 CL32"AH32$CL32%CL32'| z 32)a 32+CL32,CL32.CL320T 321Nd323FA324B3327I328A032:D{32;C!32dd"32eT|#32fA#3$32gIfL%32hMF&32iK!'32jJu(32kA32mCL*32pi32rCL-32t~ 32wCL32xCL032zz 232|K2332}LC432~HЛ32CL632]32CL832D32CL:32EZ32CL<32zu =32A32CL32CL@32L}mA32HB32A32CL32CLE32GH32~I32d1 32EV32EV32l8 32k_ 32EV32EV32l3 32k 32E32|G32EV32P'T32G^32L32} 832K 32l3 32DF 32H832L32JP32g+ 32E32Eʘ32CL32E32ZQ32CL32CL32CL32CL32CL32CL32CL32CL32-t6g32.lg32/vf320MR322VR323OxR325CL326CL327CL328CL329CL32:CL32;CL32<^32>CL32?CL32@CL32ANA32CCL32FCT32HCL32ICL32KvR 32MCL32NCL32OCL32PCL$32SLZ%32TJ&32WQG32YCL*32\L,32]Yg32_CL.32aJ32dCL32eCL32fCL32gCL332l432A632S3732R33832G932D:32I33;32K <32Gg32CL>32S?32J @32GZA32zF^ 32CLD32s E32GF32FG32V;32D32FK332A32 32bF32@e32{ 32| 32A32@!32CL 32CL32CL32d 32CL32wl 32{ 32B32vh. 32Wn32v 32CL32CL32CL32CL32CL32F32 HЌ32 U 32r v32]3332} 32: 32fq 32pL32I*32X32~OI 32!D32$An 32'V32(R932)Jnt32,{in 32-Tu 32X^ 32Y^32[G32\^32]CL32^CL32_CL32`CL32bCL32cCL32dCL32eCL32fCL32iMs32kH7D32lHqL32mH32pL32sL}e32G}f/Jxc> M32u N32CO32@P32DJQ32aR32MldS32p T32GzV32j X32F`Y32H[32ʳ\32]4^32cA_32o* `32Csa32[Qb32]c32Uq32CL32CL32CLg32rCY 32CL32CL32CL32CLm32Gen32~4o32__ 32CL32CL32CL32CL32CL32CL32CLw32Mux32Ty32`32 OP{32#l |32&^1W}32'oW>~32)^32,C32-F320U ~322CL325[ |327CL32:G)#32;FhR32C32@CL32ACL32Cu6 32FCL32GCL32HCL32ICL$32KLd%32LJm&32OJ>32zCL*32}Lb<,32~P32CL.32H32CL32CL32CL32CL332l432A632Rl732L832DS4932Dz:32Ky;32Jl<32I32CL>32SZ?32Jz@32GfyA32nB 32CLD32g! E32G!F32FG32V32Bɚ32E32A32}7 32_f32 32{H 32| z 32@.32@X!32CL 32CL32CL32_ 32CL32u6 32z % 32B32tU 32R/ 32v 32CL32CL32CL32CL32CL32FO32Hϣ32 32q32]/32w| 32 { 32 f 32mٚ32ID32\5H32|C 32}T 32AA}q 32DU32EJl32FJU#32J{w 32KO 32N^ 32O_Ff32PHf32Q^32RCL32TCL32UCL32VCL32WCL32XCL32YCL32[CL32\CL32_Ms32`H=32aHW32bH32fL32gL}e32al}f32E} M32u. N32CO32@ P32DQ32bK-R32MSoS32pPL T32FV32hbh X32FY32I[32ɴ\32Z"^32e(_32mq `32Aa32b >b32dJ>c32[#32CL32CL32 CLg32 q 32 CL32 CL32 CL32 CLm32 GKn32 ~4o32 ] 32 CL32 CL32 CL32 CL32 CL32 CL32 CLw32 Nx32 V4y32 `L32 OP{32 "i |32 $^s}32 %s>~32 '^32 *CS32 +F{32 /' ~32 1CL32 3Y!( |32 5CL32 `F32 aFC^32 cG32 dFu32 fCLt32 gCL32 iuh 32 kov 32 lj 532 nL!632 oKІ32 qCL32 rCL:32 tDG;32 uOoh<32 vZ-?32 wD32 zCL32 {CLB32 }wt C32 ~CWZD32 EE32 dF32 uRG32 ]=qH32 L( L32 c&gM32 _{N32 k0O32 mYk P32 j ^ Q32 |ƚ R32 F(T32 K9U32 L|V32 @l32 CL32 CLY32 ~Ü Z32 D;32 CL32 CL]32 r ^32 E32 CL32 CLa32 F32 CL32 CLd32 BE32 CLf32 ^32 CLh32 Jwi32 N0 32 CLk32 Z> l32 NH m32 L n32 do32 mp32 v8R q32 r r32 t{ s32 MMdt32 Lu32 A32 CL32 CLx32 @y32 Q:z32 C=32 CL32 CL}32 A/~32 KZ32 JV32 Ax32 (CL~32 )CL32 +FxC32 .W 32 /c32 0f[332 1``32 3CL 32 5{= 32 8CL32 9CL 32 :32 ;CL32 @32 ACL32 BCL32 Dn 32 E] V 32 HCL32 ICL32 JCL32 MU6 32 NPy32 OI^f32 PE|32 SH32 UO 32 VR32 WQ\)!32 X]"32 YN#32 Zo3$32 [IpJ%32 \Mw&32 ]Kr'32 ^J(32 _A>32 aCL*32 U32 CL-32 }f 32 CL32 CL032 xP 232 K332 LΫ432 H32 CL632 ]32 CL832 @gv32 CL:32 D32 CL<32 y# =32 IΘ32 CL32 CL@32 NmA32 J?B32 @32 CL32 CLE32 GuH32 D&xI32 nP 32 B 32 B 32 B 32 B 32 B 32 B 32 B 32 B 32 B32 |*32 EV32 P e32 I$32 K)32 } 832 K32 ixB 32 DF 32 H832 L32 JP32 g+ 32 E32 Eʘ32 OP32 E+32 Ti32 CL32 CL32 CL32 CL32 CL32 CL32 CL32 CL32 vf32 u432 !EC432 "y432 #{ 32 $y#32 &CL32 'CL32 (CL32 )CL32 *CL32 TCL32 UCL32 V^32 WCL32 XCL32 YCL32 [NC32 \CL32 _Cԅ32 aCL32 bCL32 dzu 32 gCL32 hCL32 iCL32 jCL$32 lK%32 mI&32 pR-32 sCL*32 vL,32 wU$32 xCL.32 zEѕ32 }CL32 ~CL32 CL32 CL332 l432 A632 R33732 Q832 Il932 D:32 Dfg;32 C9<32 B32 CL>32 T2?32 I7@32 GTLA32 D32 CLD32 s E32 GF32 F9G32 V 32 B32 Eɚ32 Ay32 }- 32 cr32 ~] 32 {/ 32 {a 32 @n32 K !32 CL 32 CL32 CL32 `d 32 CL32 tU 32 @A32 A32 rk 32 h32 v 32 CL32 CL32 CL32 CL32 CL32 F632 H32 ": 32 $qF32 ']/32 )vJ%g32 ?Jj32 B{ 32 CR-E 32 F`D 32 G`i32 HH3332 I^32 KCL32 LCL32 MCL32 NCL32 OCL32 PCL32 RCL32 SCL32 TCL32 WM32 H:32 H32 Hg32 L{32 L{}e32 N[}f32 i@d< M32 tb N32 CO32 H P32 DQ32 bR32 M> S32 of T32 FAV32 g X32 F.Y32 Hb[32 y\32 ^Î^32 d_32 l `32 APga32 c&gb32 bc32 ]E32 CL32 CL32 CLg32 qQ 32 CL32 CL32 CL32 CLm32 Gn32 ~go32 ]n 32 CL32 CL32 CL32 CL32 CL32 CL32 CLw32 IQx32 Vy32 `g32 OP{32 i |32 `P}32 r~32 ^32 C32 F32  ~32 CL32 WY |32 ICL32 LF32 MF>K32 NG32 QKfu32 TCLt32 UCL32 Wyk 32 XpG 32 Yjȵ 532 \K632 ]KE32 _CL32 `CL:32 bD;32 cMq<32 dZ?32 eD- 32 hCL32 iCLB32 jw| C32 lCWZD32 mEE32 n[pF32 pnuG32 qVH32 rLږ L32 sdM32 tagN32 umO32 xn0 P32 yi/3 Q32 z@-SR32 {JāT32 }K. U32 ~L;V32 @[32 CL32 CLY32 ~; Z32 C32 CL32 CL]32 rk ^32 ^ 32 CL32 CLa32 C32 CL32 CLd32 B32 CLf32 ^32 CLh32 Jwi32 R32 CLk32 Z> l32 N m32 L n32 do32 m Ip32 yq q32 r r32 t\ s32 MGt32 L0u32 AG32 CL32 CLx32 @y32 Nz32 Ae32 CL32 CL}32}h ~32KVr32JGY32A32CL~32CL32F!O32R 32b;332dq32`32 CL 32"u} 32%CL32&CL 32'vn32(CL32*CL32,@}B32.CL32/CL321k 322[ 325CL326CL328CL3232HUp!32Ii4"32JVy#32KB $32tIk%32uMd1&32vK'32wJx(32xA/?32zCL*32}OWh32CL-32}h 32CL32CL032s T 232K332Lg432Hs<32CL632]32CL832@C 32CL:32D32CL<32p =32Eѕ32CL32CL@32]+4A32JB32 32CL32CLE32JfH32imI32A(~ 32ixB 32ixB 32EV32B 32EV32ixB 32Z 32B 32m 32} 32EV32P32G^32L32} 832K32ixB 32w32H832L32JP32FD 32KK32Eʘ32OP32E:32J:32 CL32 CL32 CL32 CL32CL32CL32CL32CL32D,32?KǮ32@O3432BMff32DCL32ECL32FCL32GCL32HCL32ICL32JCL32K^32MCL32NCL32OCL32PNGQ32RCL32UCI32WCL32XCL32YzT 32\CL32]CL32^CL32_CL$32bL9>%32cJ?p&32fLBQ32hCL*32kLq,32lOO32nCL.32pE*32sCL32tCL32uCL32vCL332l׹432A632Yp732O33832P,932D&:32Df;32FY<32C 32CL>32O?32JM@32GNA32l 32CLD32fq E32GF32FC G32PF32E32I^f32Bf32~ 32a32~: 32{/ 32{ 32@;32Fv !32CL 32CL32CL32^D 32CL32t4 32Fv 32A 32r+ 32 @]32 v 32CL32CL32CL32CL32CL32F}32Hh:32 32q932!]/32"vY 32#zr 32$f 32'r32*I A32+Y32/} 320~24 323A3 326UD327J)328JqX32;{ 32_32m `32@a32e(b32e>c32Zq32CL32CL32CLg32qh 32CL32CL32CL32CLm32F6n32o32]Y 32CL32CL32CL32CL32CL32CL32CLw320Ix321Zky322a324OP{327i |329^x}32;st~32=^32@B32BF32E{ ~32GCL32I[[ |32KCL32OF32PFt32QG32UP8u32WCLt32XCL32Zz?} 32\p! 32]k1' 532_K632`K32bCL32cCL:32eC;32fJZ<32gT?32hD̘32kCL32CLB32w C32B)D32E=E32r>F32u\G32W=qH32M L32e8RM32c\*N32o.O32m4 P32h" Q32At@R32L`T32J]U32K]V32@32CL32CLY32~ Z32C32CL32CL]32rk ^32} 32CL32CLa32BN32CL32CLd32C32CLf32^32CLh32J+i32M32CLk32Z l32Nq m32LaH n32eo32mp32s\ q32n r32maH s32M@t32L u32A_32 CL32 CLx32 @y32 Rz32AAh32CL32CL}32yz ~32KY32Jm32A232CL~32CL32E*32 Xq 32!d432"f|32#`32%CL 32'wS 32*CL32+CL 32,32-CL32.CL321Tʆ323CL32\CL32^j 32__\ 32bCL32cCL32dCL32gUI' 32iL32jE 32kEnf32nIB32pR32qX32rV!32s[3"32tP,#32uAf$32vIK%32xMNM&32yKo'32zJrK(32{AY32}CL*32N[32CL-32~z 32CL32CL032y#; 232K332L^432H432CL632]32CL832@432CL:32E32CL<32vh. =32G32CL32CL@32MNA32JB32A32CL32CLE32FH32o>I32Z 32lo 32l5h 32B 32B 32B 32nB 32lR 32B 32B32} 32EV32P5232G'32L32} 832K1C32j 32m# 32$H832&K632'JP32*g+ 32+E32-Eʘ32/OP320Eb/321C323CL324CL325CL326CL327CL329CL32:CL32;CL32>vf32?t6g32@C{332ApaH32BxR32Cq32ECL32FCL32HCL32ICL32JCL32KCL32LCL32M^32NCL32OCL32QCL32RNN32TCL32WC$32XCL32YCL32[w 32^CL32_CL32CL32CL$32L#c%32J{x&32GJ32CL*32Lc,32F32CL.32El32CL32CL32CL32CL332l432A632I4732F832A932C:32E;32D4<32C32CL>32MI$?32JM@32G%A32AO632CLD32q9 E32G3F32FG32Mk32Dy32F332B32} 32^s32VZ 32{/ 32{ 32 32~Ü !32CL 32CL32CL32d 32CL32vW 32~ 32CD32t4 32 4n32 vI 32CL32CL32CL32CL32CL32F[32Hl32: 32q932 ]3332!xo 32"|} 32#g 32&p332RI!032SW32V 32W 32ZA}q 32]U\32^N<|32_VJ32c{ 32dX| 32g^ 32h^f32iDf32j^32kCL32mCL32nCL32oCL32pCL32qCL32rCL32tCL32uCL32xN332yH;32zHW32{H32L32L}e32 {ˆ }f32ZB M32u N32CO32@PP32FC^Q32cR32MS32oXB T32GV V32i X32FY32IxP[32ص?\32[(^32b΋_32o `32@!a32cgb32d{c32]32CL32CL32CLg32rK& 32CL32CL32CL32CLm32FVn32go32_

| ~32@CL32B] |32DCL32GF`32IG32JGپ32MJDu32OCLt32PCL32S 32|r 32}l\ 532K632K32CL32CL:32D̘;32I<32\I?32D32CL32CLB32v C32A)D32E&E32`F32kG32ZfH32MK9 L32^BM32[N32gJ>O32l P32gn Q32AR32LfNT32J1U32K_V32A_32CL32CLY32 O Z32CL!32CL32CL]32rN ^32U 32CL32CLa32C32CL32CLd32C:32CLf32^32CLh32Ii32WCa32CLk32Z l32N m32MaH n32eo32m0mp32vq q32n( r32n( s32M@t32Lu32A32CL32CLx32@Qy32 RIez32 A32 CL32CL}32y ~32J32Jt32A32CL~32CL32E232DXY 32Eac432Fcg32G]432ICL 32K@gv32NCL32OCL 32P32QCL32RCL32TC6]32WCL32XCL32Zs 32[a 32^CL32_CL32`CL32cU 32d_ 432eWɚ32fS332iH32kO32lS!H32mQ!32n[f"32oR #32pzff$32qIGn%32rM&32sKA'32tJv(32vB[)32xCL*32zL32|CL-32~}T 32CL32CL032x 232K332L432D32CL632]32CL832@32CL:32E*32CL<32yN =32J32CL32CL@32N|A32K'B32A32CL32CLE32H/H32:VI32d 32EV32EV32m4 32l8 32l8 32EV32EV32l8 32E32} 32 @ 32P 32G32L32} 832K&32j 32~h432!I32#L32%JP32(g+ 32)E32*Eʘ32,OP32-E32.@L320CL321CL322CL323CL325CL326CL327CL328CL32;t6g32MR32?V32@OxR32BCL32DCL32ECL32FCL32GCL7CL7CL7^7CL7 CL7 CL7 NA7 CL7Cm7CL7CL7vh. 7CL7CL7CL7CL$7LG%7J&7!Q7$CL*7&LM,7'N[7)CL.7+D7.CL7/CL70CL71CL373l475A678I 779B87:y97eC':7g@g;7hB<7iFg7jCL>7mPë?7nJ/@7oGA7pG]7rCLD7tx:D E7vGbF7wF G7xP7{B7|E47~AX7}D 7_N7@7{ 7{H 7 7~] !7CL 7CL7CL7c 7CL7vܹ 7|& 7Cp7tx 7E^ 7vI 7CL7CL7CL7CL7CL7Fg7HY7K 7p7]337x 7| 7g 7r37I>Q7X,S7@/7' 7B 7R37J7J7{ 7R* 7a 7^)7F7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7.N?/7/HW70H72H75L78L}e7]x}f32SEsM M7Uu N7XCO7Y@LP7ZFU{Q7]cJR7^M S7_oI T7`GV7aj9 X7dFY7eI[7f>:\7g\m^7a_7or `7@!a7bW b7bc7]\)7CL7CL7CLg7r$# 7CL7CL7CL7CLm7Fn7~go7`8= 7CL7CL7CL7CL7CL7CL7CLw7Hx7TǮy7b(7OP{7lDD |7^}7o<~7^7B7Fj7{ ~7CL7\(r |7CL7Fr7Gy7G]7Iu7CLt7CL7{o 7 r 7 lK 57 Kİ67 K.7CL7CL:7E;7O-|<7YE?7CD7CL7CLB7v- C7}dD7 E.SE7"]ǮF7#j{G7$RH7%Md L7&bM7'`LN7(kO7+f& P7,c Q7-At@R7.J T7XJU7YKV7ZA=7\CL7]CLY7_c Z7`C 7cCL7dCL]7fq ^7gD7jCL7kCLa7mC47pCL7qCLd7sC7vCLf7w^7xCLh7zJ3i7{VA(7~CLk7Z+ l7P m7Mf n7dLo7mh!p7r{ q7nǮ r7n s7MAt7L"yu7A.7CL7CLx7~l^ y7LXz7A7CL7CL}7x ~7J7K]7A~k7CL~7CL7D̘7Xd 7d37e7_~f7CL 7zF^ 7CL7CL 7ۊs"7CL7CL7B}7CL7CL7o 7`Pb 7CL7CL7CL7U'* 7_47XFg7T7I7]q7 aQ7!`ǯ!7"Mg"7#E#7$l3$7%IpJ%7&M&7'LG'7(JrK(7)B7+CL*7-K)70CL-72|} 75CL76CL078xe 27:K#37;M 47>} 7ACL67B]7CCL87E@7HCL:7JEO7MCL<7Ox =7PK)7SCL7TCL@7WNeA7XKNMB7YB#B7[CL7CLE7HؒH7BzI7j 7ixB 7ixB 7EV7B 7@7i 7\ 7B 7B7} 7@ 7O7G7K:[7} 87K7i 7C-57H87L7JP7g+ 7DF 7@-7OP7F~$7Eʘ7CL7CL7CL7CL7CL7CL7CL7CL7B07lg7E+37OxR7VR7OxR7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7NTO7CL7C7CL7CL7 vY 7 CL7 CL7 CL7CL$7LT%7JP&7K7CL*7Ld,7Q<7CL.7Al7"CL7#CL7LCL7MCL37Pm 47QA67TR377URY87VH 97YBA:7[A;7\C <7]7_CL>7aR/?7bJ6@7cG% A7d@7fCLD7hkw E7jGF7kF*G7lRV7oDX7qG,7rC7u} 7vb7w@07x{ 7y{ 7{ 7|~# !7CL 7CL7CL7]n 7CL7vt 7zr 7C7t>u 7|c(7v 7CL7CL7CL7CL7CL7Fs7H77 7pq7]337x 7|j 7g/ 7of7IV7]7@?~7 7A 7Uq7J7J/7{ 7P9 7aD 7^37H07^7CL7CL7CL7CL7CL7CL7 CL7!CL7"CL7%Nk7'Hk7(H7)H,b7,L7/L}e7U}f7C M7MtF N7OCRO7x@P7yF;eQ7|cMR7}MAS7oK T7G@KV7in X7FY7IM[7\7]^7b+P_7n `7@a7Zfb7\c7T7CL7CL7CLg7r 7CL7CL7CL7CLm7Fj<n734o7_Ql 7CL7CL7CL7CL7CL7CL7CLw7K\)x7Yuy7fz7OP{7kfg |7^O}7p~7^7B7GH7 ~7CL7\ |7CL7F`7Fm7Gʉ7Mu7CLt7CL7{W 7r- 7l 57KƂ67Kd7CL7CL:7 DZ;7 M<7 X?7 C7CL7CLB7u C7B>@D7EE{E7e4F7@oG7AU34H7BM L7C`\*M7D^#N7EhO7He P7IfE Q7J@R7KAT7MJU7NKָV7OP7QCL7RCLY7T' Z7UCD7XCL7YCL]7[t4 ^7\KU7_CL7`CLa7bF(7eCL7fCLd7hDG7jCLf7k^7mCLh7oJPi7pT#7rCLk7uZu l7vP\) m7wNk n7zdffo7{mop7u q7raH r7pu s7MIt7Lu7AdF7CL7CLx7 y7Q.Tz7BE7CL7CL}7x0 ~7J7K 7B7CL~7CL7DZ7C 7e37e7_f7CL 7rk 7CL7CL 7м:7CL7CL7Af7CL7CL7fq 7[ 7CL7CL7CL7 d[7 T 7L87F7I7^{7f=q7bO\!7^"7R#7B9$7Ioa%7M&7KR'7Jm(7B#7 CL*7"J+7%CL-7'|& 7*CL7+CL07-xWc 27/K370MM471A,73CL674]75CL878C7:CL:77VU^?7WJ@7XG!hA7[|R8 7^CLD7_kZY E7aG3F7bF G7cUn7gB7hEnf7i@7l}L 7nb87o@7{ 7{ 7~ 7}h !7CL 7CL7CL7aD 7CL7wna 7zu 7D7u 7o47wl 7CL7CL7CL7CL7CL7F|7H7r 7q4 7]337yN 7} 7gM 7r7Iu7Zr7@%7A"7A 7UH7Jv7K7 { 7 U_ 7 a 7 `)7 I\7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 N7 Hpc7 Hk7 H/7 L7 !L}e7So}f7C#a M7 gt N7 iCO7 j@P7 kFQ7 nc3R7 oMS7 p~] T7 qGGV7 ri X7 uFY7 vJ:[7 w6\7 xX^7 {c7_7 |oc `7 }Aa7 ^b7 \c7 T>7 CL7 CL7 CLg7 qG 7 CL7 CL7 CL7 CLm7 Fn7 0o7 `w1 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 H\)x7 ]y7 j*7 OP{7 l |7 ^R}7 p`~7 ^7 B 7 GT7 v ~7 CL7 ] |7 CL7 F˴7 Gb@7 G7 Ou7 CLt7 CL7 y 7 r 7 l 57 K67 Kx7 CL7 CL:7 D̘;7 L><7 YԱ?7 Cμ7 *CL7 +CLB7 -u C7 .C#D7 /EAE7 1e{F7 2lgG7 3V4H7 4M L7 5g M7 6f޹N7 7oO7 :p^ P7 ;k. Q7 <| R7 =IwT7 ?K/ U7 @L3V7 AA$7 CCL7 DCLY7 F)b Z7 GC{7 JCL7 KCL]7 Mq ^7 NA:%7 QCL7 RCLa7 TD7 VCL7 WCLd7 YD7 \CLf7 ]^7 ^CLh7 `J|1i7 aS 7 CLk7 ZH l7 O m7 L n7 aYo7 nMp7 |k q7 x r7 uB s7 MY?t7 LGu7 B37 CL7 CLx7 K y7 Oz7 F7 CL7 CL}7 }I ~7 K\7 KcV7 A׾7 CL~7 CL7 EG7 Xwy 7 f7 e7 `i7 CL 7 sU: 7 CL7 CL 7 …7 CL7 CL7 B7 CL7 CL7 g>? 7 e 7 CL7 CL7 CL7 U= 7 e 37 K 7 G7 I/7 ]>7 cg7 a*!7 Jff"7 }ٙ#7 e$7 IHW%7 M&7 L?'7 Ju(7 @<7 CL*7 k17 CL-7 ~# 7 CL7 CL07 y 27 !Ki37 "M47 %} 7 (CL67 )]7 *CL87 TA7 WCL:7 YE7 \CL<7 ^y =7 _BE7 bCL7 dCL@7 fMA7 hK B7 iBEa7 kCL7 lCLE7 nI H7 oDI7 phZ 7 sixB 7 tixB 7 uEV7 vEV7 wB 7 xixB 7 z[ 7 {EV7 |k[ 7 ~} 7 @ 7 O7 Gr7 K1C7 } 87 L7 m 7 Lv7 H87 K+7 JP7 g+ 7 E7 Eʘ7 OP7 G^7 BM7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 vf7 vf7 I37 KǮ7 O7 M{7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 NW7 CL7 CӞ7 CL7 CL7 ~] 7 CL7 CL7 CL7 CL$7 #K%7 $I&7 &P7 )CL*7 ,L],7 -Y.7 /CL.7 1}~ 7 3CL7 4CL7 5CL7 6CL37 9mC"47 ;A67 >Pf77 ?O487 @K97 BA5:7 DEC4;7 EF@<7 FB\7 HCL>7 KXWo?7 LJ'@7 MGA7 O~Ü 7 RCLD7 Tll E7 VGF7 WFG7 X?7 D;37 F37 B7 |P 7 `|7 @7 {w 7 {/ 7 ~l^ 7 }; !7 CL 7 CL7 CL7 g 7 CL7 x# 7 {LS 7 D7 v 7 Dh3 7 w% 7 CL7 CL7 CL7 CL7 CL7 Fq7 Hj7 @7 qE7 ]67 z 7 ~] 7 gjU 7 rf7 I 7 Y67 @7 @7 B 7 U/E7 KB7 Xh7 {/ 7 X| 7 \ 7 _37 Fٚ7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Oy7 Hv7 Hu7 H<7 L7 L}e7 [8}f7 B% M7 Zt` N7 ]CO7 ^AP7 _FRQ7 bbR7 cMVS7 d@T7 eGV7 fk X7 iF&Y7 jJ^[7 kl\7 lY^7 odN_7 pp `7 rC_a7 s[aHb7 tZRc7 vSu7 xCL7 yCL7 zCLg7 |r 7 ~CL7 CL7 CL7 CLm7 Gmn7 4o7 b 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Ex7 SW y7 \{7 OP{7 mwx |7 \}7 o/~7 ^7 C427 Ga7 up ~7 CL7 ]x |7 CL7 F7 Gx7 H7 Ju7 CLt7 CL7 t- 7 qu 7 k 57Kډ67K7CL7CL:7D;7JI(<7[*?7CB7CL7CLB7 u6 C7!CD7"EE{E7$cRF7%lLG7&KH7'M L7)[)M7*XN7+vO7.m- P7/e Q70B\R71R_T73KEU74L6vV75AU77CL78CLY7:AZ7;D%7=CL7>CL]7@r ^7Ay# 7DCL7ECLa7GA"7JCL7KCLd7uD7xCLf7y^7zCLh7|Ji7}Ro7CLk7Zȵ l7M=q m7K n7e@o7n]p7t q7qG r7o8R s7MmOt7L%5u7Bn7CL7CLx7@ny7Mcz7G&"7CL7CL}7@~7Km57Ko7A7CL~7CL7E7XtP 7fVg7g7a7CL 7u 7CL7CL 7ݲ7CL7CL7B8P7CL7CL7f 7e 7CL7CL7CL7U6 7d7[vf7V7J^j7]7a7`k!7H"7w#7_y$7I+K%7Mz&7K$'7Ju(7{ 7 CL*7 uzQ7CL-7}X 7CL77?X?7hJ+@7iGA7l@7nCLD7pl E7rGF7sFG7tY7xC7yFl7zBL7}}T 7~^#7@67{in 7{ 7~ 7}X !7CL 7CL7CL7b 7CL7wt 7z 7D4K7u 7LW7wB 7CL7CL7CL7CL7CL7Fp7H7@7q7]67yz 7}I 7g 7q37I17Yn 7@?7A7AR 7V7Jފ7Jn7{H 7Pe 7`f 7_ 7F7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7O47H~7Hi"7HIe71L74L}e7`}f7 ~G M7Ru " N7TCvO7U@P7VEQ7Zbx8R7[MsS7\A^vT7]GV7^j X7`FY7aJ{;[7bP\7dY^7gcƕ_7ho `7jDda7k[xRb7[c7S7CL7CL7CLg7q 7CL7CL7CL7CLm7H:n7s4o7a 7CL7CL7CL7CL7CL7CL7CLw7Gx7Ry7]Ǯ7OP{7l |7]l}7r`~7^7C7GU7z ~7CL7][~ |7CL7G7GL7Hw7Hu7CLt7CL7s 7pl 7kI 57 K67 K 7 CL7 CL:7C:;7GƩ<7\g?7Ci(7CL7CLB7up C7BD7EXE7jF7t8RG7OH7Nz L7 dM7!ahN7"mO7%j P7&e Q7'BR7)MT7*JKU7+K؋V7,@7.CL7/CLY71~@ Z72C=7]CL7^CL]7`q ^7aw3 7dCL7eCLa7g@.7jCL7kCLd7mD_7pCLf7q^7rCLh7tJmi7uQ7xCLk7zZ l7|N m7}M( n7d3o7op7t q7o r7oL s7Mwt7L u7BO7CL7CLx7@y7Q5z7G )7CL7CL}7A~7K7Ku7B7CL~7CL7EV7[] 7cg7d7^7CL 7t 7CL7CL 7շUr7CL7CL7A7CL7CL7fJ 7] 7CL7CL7CL7d.7M7Df7@f7Jњ7^)7bfg7a4!7A3"7l3#7\,$7I%7Mk}&7K'7Ja(7@7%CL*7'e 7+CL-7,|ƚ 7/CL70CL072t 274Ks375M4478| z 7;CL67<]7=CL87?}I 7BCL:7DE*7GCL<7Iq =7J@7MCL7NCL@7QOA7SJ{B7TA7VCL7WCLE7YGH7ZT*I7\] 7^ixB 7ixB 7EV7EV7CZ7ixB 7\^ 7EV7l[ 7}d7EV7P 7Gp7L7} 87L7l3 7Lv7I7L7JP7g+ 7E7Eʘ7CL7En7dv7CL7CL7CL7CL7CL7CL7CL7CL7vg7lg7B37N\)7MR7O7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7NOA7CL7Cm7CL7CL7t 7CL7 CL7 CL7 CL$7L.P%7Jb&7N7CL*7LL,7A7CL.7{Z 7CL7CL7 CL7!CL37$mW 47&A67QM477RI87RD,97UA:7WHg;7XKS3<7YF37[CL>7^Y'?7_J,@7`G#A7aA 7bCLD7dm<8 E7fGF7gFG7hXG7lBf7mEd7nA\7q} 7r`17s@7t{Z 7v{ 7w} 7x}I !7{CL 7|CL7}CL7`b 7CL7w4 7z)B 7D%7tY 7e47w_ 7CL7CL7CL7CL7CL7Fe7H7: 7p7]337y@Y 7} 7gv 7qf7IH7VKk7@-S7A7AǮ 7Uz7J7K7{ 7Q[ 7bU 7`vf7JVf7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7O)7H}7 Hh:7"HH}7%L7(L}e7IH }f7~0 M7Et{ N7GCO7I@xP7JEsQ7MbΉR7NMYS7Op T7PGzV7Qj* X7SG Y7}J9 [7~U\7Y^7dH_7o `7C8a7a#b7a{c7]>7CL7CL7CLg7r 7CL7CL7CL7CLm7HTGn7o7` 7CL7CL7CL7CL7CL7CL7CLw7Hfx7UQy7f7OP{7lDD |7^e}7qZ~7^7C7GZ7}: ~7CL7]! |7CL7G1O7Ga7Gw7Leu7CLt7CL7sĜ 7p 7kn 57Kİ67K:7CL7CL:7Cp;7Eն<7\g?7D7CL7 CLB7 ua C7 A<D7EM1E7fF7nHG7LH7N9 L7eM7b4N7mO7m P7DhS Q7EB}R7GM0T7HJU7IK'V7J@7LCL7MCLY7O}f Z7PC7SCL7TCL]7Vr ^7W|& 7ZCL7[CLa7]Brd7`CL7aCLd7cA:7eCLf7g^7hCLh7jIi7kPo7nCLk7pZ l7qN m7sLW n7udo7wovp7xt q7zo\) r7{mL s7|Mt7}L'u7~Bf7CL7CLx7@=y7Taz7F/7CL7CL}7Bw~7KŎ7KƢ7BEa7CL~7CL7F!O7Yv 7cg7c37]s37CL 7u6 7CL7CL 7ˆ_7CL7CL7C7CL7CL7g! 7c 7CL7CL7CL7U% 7P\7Gfg7C7 K-7i7i\7j!7s"7jFf#7Xf$7I%7MNM&7KG'7Jd(7B7CL*7cKj7 CL-7"},l 7%CL7&CL07(y 27*J37+M247.|j 71CL672]73CL875A$Z78CL:7:E7=CL<7?z7 =7@A^v7CCL7DCL@7GLq%A;JB;A;CL; CLE; HUH; SI;n ;ixB ;ixB ;EV;EV;Bɀ;ixB ;[; ;EV;j ;} ;!EV;"P e;$I$;%K4;(} 8;*Km;-l5h ;/~m;2H8;5KT;6JP;9g+ ;:DF ;;Eʘ;eCL;hJP;i{e;kCL;lCL;mCL;nCL;pCL;qCL;rCL;sCL;vt6g;wq;xvf;yGR;zMn;{KT{;}CL;~CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NU;CL;CӞ;CL;CL;sc ;CL;CL;CL;CL$;L9>%;JWN&;I;CL*;L&,;S2O;CL.;R;CL;CL;CL;CL3;m}r4;A6;HL7;A6f8;zf9;B:;Q@;;N3<;Nl;CL>;S?;J-z@;G A;{w ;CLD;l3 E;G3F;FwG;R;C;F4;AX;|c ;cH;,@;-{Z ;.{ ;/}X ;0|= !;3CL ;5CL;6CL;8gd ;;CL;=w3 ;>{a ;?DX;@u ;BAXd ;Cw| ;FCL;GCL;HCL;ICL;JCL;MFj~;OH`;R ;Tp;W]6;XyN ;Y}: ;Zgд ;]qff;`IH;bX;c@8:;dA;fB0 ;S;J7;K ^;{a ;WS ;cU ;`c3;L0;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;O);Ho;H~;HG;L;L}e;BX}f7~h M;t+ N;CRO;@P;E&Q;c;QR;M"S;o T;GV;j X; GY; J[; \; ^P^;d]_;p* `;Bma;f\*b;dgc;_{;CL;CL;CLg;rU ;CL; CL;!CL;"CLm;%GMn;(~o;)a  ;,CL;-CL;.CL;/CL;XCL;YCL;ZCLw;]Jffx;_Q\)y;`d;aOP{;dl |;f]Z};go>~;i^;lCN;nF;q| ~;sCL;u]x |;wCL;zG3;{GEG;}G8;PBu;CLt;CL;s ;p ;kw 5;K6;Kr;CL;CL:;Cu;;JZ<;T ?;E;CL;CLB;u6 C;CL;?CL};AC'~;CK;DKM;EA;GCL~;HCL;JFq;LY ;Mdh;Ne1;Ob4;QCL ;St4 ;VCL;WCL ;X;ZCL;[CL;Pu;CL;CL;g ;cOU ;CL;CL;CL;T ;Kg;C^f;@ ;K;X;\R;ZE!;A";yl#;\$;H%;MY?&;KE';Jc(;Bq;CL*;[;CL-;}h ;CL;CL0;y 2;J+3;M9T4;|` ;CL6;];CL8;A+;CL:;E;CL<;y =;A$Z;CL;CL@;LHA;JlAB;A*;CL;CLE;H/H;II;W ; ixB ; ixB ; EV; EV; B;ixB ;]Z7 ;EV;j ;}s;EV;O;Gv;K;} 8; J;#l ;MlqE;RH8;TK ;UJP;Xg+ ;YDF ;ZEʘ;\CL;`E;a@t:;cCL;dCL;eCL;fCL;gCL;hCL;iCL;jCL;m};nw3;pD;qO34;rMR;sMR;uCL;vCL;wCL;xCL;yCL;zCL;|CL;}^;~CL;CL;CL;N\;CL;C;CL;CL;}; ;CL;CL;CL;CL$;L0%;J&;P;CL*;L,;B;CL.;@;CL;CL;CL;CL3;m4;A6;D@7;Cc48;z49;CS{:;I;;JL<;G;CL>;O'?;J*@;GA;v ;CLD;mYk E;GF;FG;N];Cf;FT;A3;!{2 ;#b;$A;%{Z ;&{ ;'}T ;(|& !;+CL ;,CL;-CL;0c ;3CL;5x ;6{a ;7D;8w ;9B ;:w ;>CL;?CL;@CL;ACL;BCL;EFcA;FI ;I)b ;Lp#v;O]6;xy ;y}u% ;zg ;}r9;IN;Zq;@;A;;B8R ;T7;J;Kj;{ ;P ;aU ;_;I;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;OU;HW;H:;HL;L;L}e;9ZvW}f;~ M;u. N;CvO;@~P;EBQ;cR;MS;of T;HV;kH X;GY;JOn[;'\;[^;bX_;q9 `; Apa; W\b; W5c;Pu;CL;CL;CLg;rb ;CL;@CL;ACL;BCLm;EGY<n;H~o;Ia ;KCL;LCL;NCL;OCL;PCL;QCL;RCLw;UJ >x;VKy;W_W ;YOP{;\m |;^\};_mC~;a^;dC:;eFw;h}f ~;kCL;m]n |;oCL;rG;sGe%;tH;vF|u;xCLt;yCL;{s ;o ;kO 5;K*6;K6;CL;CL:;Ci(;;P\<;Vb?;F5;CL;CLB;v4 C;@cD;EIUE;O{F;h(G;JGH;N@ L;ZM;[N;g{O;ixB P;i& Q;@R;AT;JU;K΃V;@;CL;CLY;} Z;D4K;CL;CL];sl ^;K82;CL;CLa;ET; CL; CLd;A;CLf;^;CLh;IEi;N;CLk;ZT l;O\ m;M n;!e33o;"pFIp;$o3 q;%j r;&j s;'MmOt;(Lu;)C4;+CL;,CLx;.Aly;/Rz;1G );3CL;4CL};6C~;8L;9L;;B*;=CL~;>CL;@F;BYY ;CdFg;ld3;m_;oCL ;qv ; |*; @ ;5O;7GH;8K=;;} 8;=Kj;@n% ;Bgd;EH8;GK ;HJP;Lg+ ;MDF ;NEʘ;PCL;SD ;TA;VCL;WCL;XCL;YCL;ZCL;[CL;]CL;^CL;a ;bvl;cC{3;dMR;eU\;fMR;hCL;iCL;jCL;kCL;mCL;nCL;oCL;^;CL;CL;CL;NW2;CL;C;CL;CL;: ;CL;CL;CL;CL$;L>%;Jj&;HH;CL*;L,;H[X;CL.;{a ;CL;CL;CL;CL3;m4;A6;I<7;Eg8;A9;Cy:;O,;;L<;K\;CL>;M?; J @; FA; )b ; CLD; r1 E; GF; EFG; L; Cљ; F{3; B; {z ; __; A; {Z ; { ; | ; | !; CL ; CL; !CL; #` ; &CL; (y ; )| ; *E; +x0 ; -C ; .w3 ; 1CL; 2CL; 3CL; 4CL; 5CL; `Far; bI4^; eFv ; goe; j]6; kz ; l~@ ; mh ; prf; sI0; tZ; v@Y; w@; yB ; |SV; }KO; ~J; { ; O ; d ; _3; M3; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; O ; H; H; HTG; L; L}e; -\}f;{} M; u. N; CtO; AHP; EzQ; c$R; MS; oXB T; HV; leC X; G 8Y; JM[; o\; \.^; cgy_; r8 `; A33a; X{b; (Y!Hc; )W; +CL; ,CL; .CLg; 0rU ; 2CL; 3CL; 4CL; 5CLm; 8Gn; ;#4o; =c ; ?CL; @CL; ACL; BCL; CCL; DCL; ECLw; HPx; JMy; K`=q; LOP{; Oo"# |; Q[!}; Ro!~; T^; WB; YF4; \}T ~; ^CL; `_ |; bCL; F; Gm; Hw; KOu; CLt; CL; phs ; pl ; k 5; Kr6; L ; CL; CL:; CB;; PP<; [*?; G} ; CL; CLB; w C; C(D; EQ E; N F; hHG; xH; Nf L; ]kM; ZN; fEO; pӖ P; k Q; @.R; K}T; K;U; L^V; A; CL; CLY; } Z; DX; CL; CL]; u' ^; @; CL; CLa; D; CL; CLd; BN; CLf; ^; CLh; Iwi; M; CLk; Z4 l; M m; K n; c3o; oޗp; s q; l r; l s; MY?t; Lu; C; CL; CLx; !Aҩy; "Q&z; #G`; &CL; 'CL}; )C~; +L5; TLI; UC)L; WCL~; XCL; ZGX; ]X' ; ^c`; _cVg; `^; bCL ; du ; gCL; hCL ; i8\; jCL; kCL; mC ; pCL; qCL; sj ^ ; th ; wCL; xCL; yCL; |TO ; }Qg; ~IFg; Ff; Lo; a*; h; i>!; h"; W#; K$; H%; M2 &; Ko'; Jv(; { ; CL*; }6; CL-;  ; CL; CL0; { 2; J}3; MR4; B; CL6; ]; CL8; EZ; CL:; { ; CL<; v =; At@; CL; CL@; LsPA; J4B; AY; CL; CLE; HH; CGI; n ; ixB ; ixB ; @; @; DQN; ixB ; [ ; @-S; !k ; $|; %@ ; (O; *I$; +L; .} 8; 0K; 3n}[ ; 5u’; :H8; ; OD?; I@; FЍA; Lq%; CLD; r E; GpxF; EFG; O"; Cl; F<; B; }- ; _R9; AVA; {= ; {w ; |j ; | !; CL ; CL; CL; If ; LCL; Oy ; P{ ; QC:; RwB ; SI? ; TwS ; WCL; XCL; YCL; [CL; \CL; _F[; `I; c)b ; eo;; h]6; iy@Y ; j} ; lh7 ; op; rJ-; sY%; t@H; uBf; wBB ; zR?; {K; }J; | z ; V ; aU ; _@; L; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; O; H:; H; HW; L; L}e; S]~}f; zy M; t N; CNO; ĄP;EQ;b>R;MS;o T;IaV;mU X;G"Y;J٦[;c\;[^;!ed_;"t9 `;#@a;%[ b;&ZLc;'T.;*CL;+CL;,CLg;.qM ;0CL;1CL;2CL;4CLm;7Fn;:4o;;e, ;=CL;>CL;?CL;ACL;BCL;CCL;DCLw;GPx;HNfy;Icǯ;JOP{;tqb |;u[};vnL~;x^;{BՑ;}FHZ;wl ~;CL;_Q |;CL;Fߨ;E;G;Pu;CLt;CL;l ;n+ ;j;e 5;KT6;L!;CL;CL:;D;;P D<;Y{?;FE;CL;CLB;x C;Dw)D;E`{E;{ F;jaHG;yH;N L;eM;bN;m+O;mYk P;f(r Q;BwR;ST;KCU;LOV;@;CL;CLY;~s Z;D;CL;CL];wt ^;z$ ;CL;CLa;BF;CL;CLd;B;CLf;^;CLh;H$i;O7;CLk; Z|7 l; P\ m; O n;e@o;p0p;q. q;MP t;?L*u;@D;BCL;DCLx;FB8Py;GNz;HGn;KCL;LCL};ND;~;PLi;QL^;RC;TCL~;UCL;WG̶;YY& ;ZcVg;[bf;\^l;^CL ;`v ;cCL;dCL ;er;fCL;hCL;jC=;lCL;mCL;ojD ;qi? ;sCL;tCL;vCL;Tr ;J4;Ay;~g;L;Z;];]>!;Bg";e#;Ll$;H%;L&;Ku';Jx(;BF;CL*;q;CL-;@.;CL;CL0;}X 2;J3;MDF4;}: ;CL6;];CL8;Ae;CL:;|} ;CL<;y =;AH;CL;CL@; LlA; K\B; A;CL;CLE;HؒH;AQI;W+ ;ixB ;ixB ;@;;EV;D_; ixB ;!]K ;"EV;#k> ;%{;&@ ;)P;+I~;,L;0} 8;2K+;5m<8 ;6C;7H8;9L;:JP;=g+ ;>DF ;h@ ;jCL;mE;nC;pCL;qCL;rCL;sCL;uCL;vCL;wCL;xCL;{rs3;|lVf;~vf;Oh;MR;MR;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NY];CL;CH;CL;CL;x:D ;CL;CL;CL;CL$;L %;I &;H;CL*;LWN,;@H;CL.;E*;CL;CL;CL;CL3;m4;A6;@f7;{8;z9;C:;K#3;;IFg<;Il;CL>;SQF?;I@;FA;E;CLD;s E;GF;F7G;R\;A;Ef;@f;}=% ;a ;Ah;0{= ;1{w ;2|R8 ;3|oQ !;6CL ;8CL;9CL;;d ;>CL;@x ;A|& ;BCi(;Cvv ;DL ;Fw ;ICL;JCL;KCL;LCL;MCL;PFR;QH;U~Ü ;Wod_;Z]6;[y ;\}u% ;]hb ;`q;cJh0;dX;eA;gC ;iB. ;R;Bv;BR;| z ;PHc ;d ;`Ff;N;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;O;HR;Hp;HRw;L;L}e;D_}f;vQ M;uwo N;DO;BP;F9Q;bR;MS;t4 T; K$ZV; qZ X; G.Y; J[;#\;Y^;cS_;w `;@!a;bub;_>c;\(;CL;CL;CLg;rr* ;"CL;#CL;$CL;%CLm;(Fn;+~o;,h ;.CL;/CL;1CL;2CL;3CL;\CL;]CLw;`GGx;aL#y;bY;dOP{;eum |;fYW>};gkK~;i^;lB;mF;px ~;sCL;u^S |;wCL;zF7;{D/7;|H-;~Fu;CLt;CL;i ;n7L ;jr 5;K=6;L5;CL;CL:;D4K;;N<;Y7/?;G;;CL;CLB;{= C;D&xD;E2/E;FBF;].G;EH;O L;g\M;eN;oO;k=" P;d( Q;C=R;SnT;K#2U;KGV;@;CL;CLY; O Z;E;CL;CL];{LS ^;xe ;CL;CLa;AAh;CL;CLd;B\;CLf;^;CLh;Hki;Vqa;CLk;Z l;Op m;NL n;&dYo;'ohp;)s q;*l r;+l s;,MMdt;-L;u;0}u% ;3CL;4CLx;6Aҩy;7La"z;8G;;CL;D~;@L;AML;BE g;DCL~;FCL;HHVF;JY ;K`f;La;M\(;OCL ;Qu' ;TCL;UCL ;VO;WCL;XCL;ZC;]CL;^CL;k ;mC ;CL;CL;CL;T[ ;L^g;Dfg;A4;L;[p;^aH;]!;l&f";`3#;D,$;Hض%;LP&;K{';J(;B;CL*;bU;CL-;AH;CL;CL0;~# 2;J3;M-z4;}; ;CL6;];CL8;A;CL:;{in ;CL<;yN =;A{;CL;CL@;LsPA;KMB;B";CL;CLE;I(-H;@3I;a ; ixB ; ixB ; @; @; EG;ixB ;[; ;@;k ;{ey;@ ;P;I$;K1C;} 8; K";#n ;$Lv;%J;'L;PJP;Sg+ ;UDF ;VEʘ;XCL;[E;\CC;^CL;_CL;`CL;aCL;bCL;cCL;dCL;fCL;ilg;jc;kt6g;lP8R;mMR;nMR;pCL;qCL;rCL;sCL;uCL;vCL;wCL;x^;yCL;zCL;{CL;}N`;CL;C;CL;CL;y{ ;CL;CL;CL;CL$;L+%;J"&;PW;CL*;Ln,;D;CL.;z ;CL;CL;CL;CL3;n 4;A6;uf7; 8;t9;C(:;G;;H\<;EC4;CL>;VL?;Ik@;F\A;xP ;CLD;p< E;GF;F&G;W>q;A;C;@ ;zQ ;b΋;AVA; {/9 ;!{w ;"| ;#| !;&CL ;'CL;)CL;+aЊ ;.CL;0y#; ;1: ;2Cμ;3x+ ;4C ;5w ;9CL;:CL;CL;CL;CL;FI;Hx;} ;o(;]6;{/ ;U ;h/ ;nff;J;X;B1 ;C{L;B = ;R;D ;EE;{ ;Mx ;e"" ;^<;JS3;^;CL;CL;CL;CL;CL;CL; CL; CL; CL;O;H;H;Ha;L;L}e;4XvG}f;rB M>u N>DO>@P>FgQ>d DR>NIsS>of T>E1V>f i X>G(ZY>J[>K\>V^>a_>m `>AFa>Vٚb>SRc>P>CL>CL>$CLg>&qa >(CL>)CL>*CL>,CLm>/G32n>2c4o>3f >5CL>6CL>7CL>8CL>9CL>;CL>?I{x>@Hfy>AU>BOP{>Eh |>GZd}>Il_~>K^>NC8>OGp>R~# ~>TCL>V_ |>YCL>\G>>]G>^H,H>Pu>CLt>CL>j >o{ >jD 5>Kbd6>L&>CL>CL:>EsZ;>H/<>YW?>F>CL>CLB>z C>D`D>DE>DF>DffG>pH>OC L>`>M>\N>gO>d P>a Q>@R>HdT>JיU>K!V>Aw(>CL>CLY>@C Z>D_>CL>CL]>wl ^>K0>CL>CLa>E>CL>CLd>B>CLf>^>CLh>H#i>Q.>CLk>[D| l>Mf m>L n> do> ozp> k=q q>e r>d( s>M)t>LD-u>CL>CL>CLx>Aly>M8?z>G>CL>CL}>E~>!M$>"L>#B&>%CL~>'CL>PG} >SX >T^f>Uaq>VY>XCL >ZvI >]CL>^CL >_@>aCL>bCL>dBw>gCL>hCL>jk >ki >nCL>oCL>pCL>sT1 >tVS3>uN>vL3>yL.>{S>|WǮ>}U!>~ag">N#>@33$>Ht%>M&>Kq'>J(>@8>CL*>D9>CL->@;>CL>CL0>|= 2>JVe3>M4>G>CL6>]>CL8>D;>CL:>FE>CL<>} =>Bc>CL>CL@>LA>JB>Bg>CL>CLE>IH>[xI>cb >ixB >ixB >G`>F>K>ixB >[ >G>l> >{ >@ >!O>#I~>%K&X>(} 8>*K->-B >.F>>/EL>1L>2JP>5o^ >6DF >7Eʘ>9CL>=D>?CL>ACL>BCL>CCL>DCL>ECL>FCL>GCL>Javg>K_>Ls>MK>OO>PN&f>RCL>SCL>|CL>}CL>~CL>CL>CL>^>CL>CL>CL>NTO>CL>C>CL>CL>|5! >CL>CL>CL>CL$>L@%>J+/&>G>CL*>LD-,>Uf>CL.>H>CL>CL>CL>CL3>n4>A6>y7>j38>pl9>C0:>H;>H)<>H@>CL>>V} ?>J(@>G A>~ >CLD>n$ E>GF>F/G>Vz)>Aff>F3>O>I>>>bT">B̤>b >_ >Hd>I!> CL > CL> CL> bs >CL>|C >A>C>y{ >N >x >CL>DCL>ECL>FCL>GCL>JFx>LI>O O >QpJ>T]=q>U{a >V| >Wi >Zn>]I?>_Zu>br >cA>fAH >iT 7>jCC>kDfW>n|oQ >oP >rf" >t`y>uR&f>v^>wCL>xCL>yCL>zCL>|CL>}CL>~CL>CL>CL>ME/>H>HC>G>L>L}e>_`}f>t M>u " N>D O>BxP>Ff&Q>cR>NMS>o,| T>HV>ls X>G2JY>J[>Ⰽo\>Y^>c_>s `>@a>T5b>UJ>c>T5>CL>CL>CLg>q >CL>CL> CL>!CLm>$F>n>'@o>(f >*CL>+CL>,CL>-CL>/CL>0CL>1CLw>4Cx>5Ky>6X>7OP{>:o |><[H9}>>mpE~>@^>CC#>DGtL>Gw3 ~BCLB`D |B CLB G4B GBHvBFOuBCLtBCLBjF Bn Bjr 5BKcN6BL>BCLBCL:B E;B!F> B{vmB@ BOBGtBK6B} 8BJPBB BuBENrBK:[BJPBo^ BuB@BCLBEBES~BCLBCLBCLBCLBCLBCLBCLBCLBagB_gBtpBGRBNzBMBCLBCLBCLBCLBCLBCLBCLB^B CLB CLB CLB NJBCLBCBCLBCLB} BCLBCLBCLBCL$BL%B J&B"Qw;B%CL*B(Lm*,B)QoB+CL.B-KB/CLBXCLBYCLBZCL3B]nj4B_A6Bbb@7Bcjl8Bd^Y9BfB,:BhD;BiE4BoP?BpJ1 @BqGABsp$ BvCLDBxnQ EBzGFB{F3GB|QK5B|YBBnfB{BG>yB^R-BBjBc B` BH BI!BCL BCLBCLBgj BCLB{ BA/BB\Bx0 BK) By BCLBCLBCLBCLBCLBFbBHB~ Bp B]:B|& B~@ Bin BoBIBXBABA BBB BRB@NBA=B|} BV Bi B`6fBSB ^B!CLB"CLB#CLB%CLB&CLB'CLB(CLB)CLB*CLB-M\B/H|B0HuB1H4B4LB5L}eB]c}fBs MBSuZU NBUDOBWCPBXFQB[bK-RBM|SBo TBJXVBo XBGGYBJ[B\BZ^Be(_Bv9 `B@eaBSbBTT{cBSBCLBCLBCLgBp BCLBCLBCLBCLmBFnB4oBg» BCLBCLBCLBCLBCLBCLBCLwBHLxBGuyBT>BOP{Bs |BX$}Bl q~B^BB BG!fBn ~BCLBaw |BCLBGABHI>BHQBKWuBCLtBCLBi;d Bn\) Bjk 5BKg6BLWNB CLB CL:B E2;BN"&BMRBMRBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNJ4BCLB C=B CLB CLB} BCLBCLBCLBCL$BL%B@J%&BBLBECL*BHL^,BI@BKCL.BM~@ BOCLBPCLBQCLBRCL3BUo4BWA6BZg 7B[j8B\a339B^B :B`Ei;BaE33BgM?BhJ@BiG&ABkx BnCLDBpo EBrGFBsFGBtNBvw\BxOByus3BEB_ BABc!( B`S BGxBHzx!BCL BCLBCLBb BCLBy BABABvR BBy BCLBCLBCLBCLBCLBFѫBHB~# BoXB]:B{Z B}f BiJ BrBI*JBUqBArBABBL B RVB @B A&B|j BM Bh BaBRYB^BCLBCLBCLBCLBCLBCLB CLB!CLB"CLB%MHB'HB(HB)HcB,LB/L}eBX"}fBrz MBuw4 NBwDOBx PBzFQB}bRB~N0~SB@ATBD?VBdQK XBGNMYBJ[BG\BW^Bd:_Bh `BAaBSbBWLcBSBCLBCLBCLgBp̲ BCLBCLBCLBCLmBG|nBgoBhU BCLBCLBCLBCLBCLBCLBCLwBDHxBGyBVffBOP{Be33 |BZ}Bi ~B^BBBGcBy#; ~BCLBa=" |BCLBGagBH)cBHKjBPAuBCLtBCLBho Bn/ Bj`B 5BKh6BL[BCLBCL:B EG;B QmOBHof PBIh QBJA{RBLQqTBMJ+UBNKQVBOA^vBQCLBRCLYBT^ ZBUDBXCLBYCL]B[zr ^B\~ B_CLB`CLaBbBBeCLBfCLdBhBnBkCLfBl^BmCLhBoG0iBNBCLkBZD lBL=q mBK( nBdoBnFpBe qBe rBe sBM$\tBL"yuBCBCLBCLxBB\yBS|AzBG:BCLBCL}BF~BM"BLҮBBQBCL~BCLBHBY(> B\B\\BVBCL Bv B {/B @ B P B I~B LB } 8B JB B B ^qB AפB K-B JPB o^ B \vB EʘB CLB CֱB C3B CLB CLB CLB CLB CLB CLB CLB CLB aB YgB qgB G8RB KT{B GRB CLB CLB CLB CLB CLB CLB CLB ^B CLB CLB CLB N:RB CLB CaB )CLB *CLB +x# B .CLB /CLB 0CLB 1CL$B 4L%B 5J9&B 8GB :CL*B =LB[,B >KAB @CL.B BF/B DCLB ECLB FCLB GCL3B Joy4B LA6B OS37B PU8B Q[9B SBU:B UE;B VEB \K?B ]IU@B ^FZAB azT B cCLDB n EB GJFB E%GB KlB jYB rB jc3B BB be#B AmB c/ B a/ B GuB Go!B CL B CLB CLB d B CLB y] B @B AZB vB CLB CLB CLgB p B CLB CLB CLB CLmB HnB 4oB h B CLB CLB CLB CLB CLB CLB CLwB ExB KzyB U\B OP{B o |B YO}B h~B ^B C{B GB ua ~B CLB ` |B CLB GyB HJB H9QB HuB CLtB CLB !g@ B "mȵ B #iƨ 5B %Kf6B &LY B (CLB )CL:B +E;B ,P8OE LB ?bMB @^aHNB Ai&gOB Di& PB EeM QB FBRB HN~TB IJ%UB JKVB K@B MCLB NCLYB P@ZB QDZB TCLB UCL]B Wz ^B { B CLB CLaB AB CLB CLdB B1 B CLfB ^B CLhB GxiB M'B CLkB Z̦ lB Jp mB JG nB d&foB mpB h qB d{ rB c\ sB MtB LuB CBB CLB CLxB BɀyB RŐzB G} B CLB CL}B E~B MB L@B CFTB CL~B CLB H$B XD* B ]B ]B U^fB CL B tz B CLB CL B mjB CLB CLB F>KB CLB CLB n B h\e B CLB CLB CLB TCz B Y3B YB OFfB L#3B N\)B V >B X34!B `"B I33#B @l$B H~%B M*&B K'B JJ(B @B CL*B DhB ICL-B K@bB NCLB OCL0B Q| 2B SKT3B TM*4B UHB WCL6B X]B YCL8B [CScB ^CL:B `FB cCLCL3B@o'D4BBA6BE\S37BF\ٙ8BGU9BJA:BtA;BuDBzMޠ?B{IΫ@B|FAB}FBCLDBp^ EBGoFBE5GBM>B_3BfiB^YB@Bb%BA Bc[ Bb BGBGC!BCL BCLBCLBc_ BCLBx0 BA$ZBDBu ~ BR7Bx BCLBCLBCLBCLBCLBFǶBH B| BnrB]6Byl B{ BjS BnlBI$BSsB@9BBBB) BR$B@"BAB|R8 BON Blww Bas3BV3B^BCLBCLBCLB CLB CLBOPBCLBCLBCLB=LB>HB@HBAHuBDLBEL}eBa&?}fB !p MBcu_ NBeD`OBfFPBgFQBjaiRBlN%SBm~24 TBnJVBop=T XBqGF+YBrJOn[Bs7(\Bt\>^Bc__Bv9 `BDaBSbBUcBPBCLBCLBCLgBpv BCLBCLBCLBCLmBHЌnBoBh| BCLBCLBCLBCLBCLBCLBCLwBExBK yBV4BOP{Bt( |BZR<}Bi4~B^BDBGBz ~BCLBaK |BCLBGB H^B HB JhuBCLtBCLBf Bm Bi 5BKYK6BL]BCLBCL:BD;BNMB2PnNB3\(OB6e>t PB7b[ QB8ARB9IkTB;Jt\UBBvPu?BwI@BxFAByOB{CLDB}y EBGnFBEeGBPljBVB\BU<B| B`B@Bc[ BbE BFyBF!BCL BCLBCLBbs BCLBwS BA2BCBt BJ) Bx BCLBCLBCLBCLBCLBFBH(B|} Bn B]:By B{Z Bjq7 BpfBIBW5BCBDQNBB BPBACL6B@]BACL8BCC BFCL:BHHBKCLBcR?BdI@BeFsABfL%FBgOPDBj}h EBlGJFBmF'GBmRlBpUfBqZfBrS#3Bsx9 Bw^Bx@4Byc7 Bzbq B{F[GB|F(!BCL BCLBCLBe BCLBwna B@BD%Bt' B0Bxt BCLBCLBCLBCLBCLBFBHCB| BmsB]:By B{ Bj BsVfBIBSnBE-BEBB BRBC2BB ZB {a BT/P Bk B`BVfB^BCLBCLBCLBCLBCLBOPBOPB!CLB"CLB%LB&HB'HB)Hj B,LB/L}eBR}fBps` MF u. NFD OFEcPFF!OQFa<RFMSFo7 TFHKVFkH XFG#YFJ$[F`-\F].^F"e _F#rG `F%BPgaF&LbF'McF(HF*CLF,CLF-CLgF/p0 F1CLF2CLF3CLF4CLmF7GӍnF;goFdf FfCLFgCLFhCLFiCLFjCLFkCLFlCLwFp~zxFqHǮyFrWLFsOP{Fvn |FxZ#}Fyk%/~F{^FCLFFFv ~FCLF_ |FCLFGFG]FH<6FKuFCLtFCLFi Fmr Fj 5FK>6FLIFCLFCL:FE ;FIM2 tF?L|uF@EjFAOPFCCLxFEC4yFFM2zFGF5FJCLFKCL}FME~FOLFPL7FQEFROP~FTCLFVJ<FYX FZQLF[RTF\LhF^CL F`DQNFcCLFdCL FexFfCLFgCLFXFCLFCLF| Fd FOPFCLFCLFT FHFAFMFK0FU\FZ=qFY!F]"FR#FAٚ$FH%FNQ&FL1'FJ(FAFCL*F`FCL-F@FCLFCL0F{ 2FKs3FM1 4FHdFCL6F]FCL8FBɀFCL:FHaFCLFP?FIT@FFAFKFOPDF}: EFG5FFFS_GFQ F!TF#ZF$SF%u! F(aNF)@]F*c F+b[ F,EdF-F/!F1CL F2CLF3CLF5a F8CLF:v F;AFNFSROFi PFfE QFC'RFJBUTFJ<UFJ+VFFSOFOPFCLYFAZFDuFCLFCL]Fw3 ^F[FOPFCLaFO[FOPFCLdFG )FOPfF^ FCLhFGiFUh F!OPkF"[ lF#D\ mF$BaH nF'G@oF(jgpF*`p qF+] rF,[3 sF-M^tF.L~uF/E\F1OPF3CLxF5DyF6L)zF7FF:CLF;CL}F=F ~F?LeF@LCFAEFBOP~FDCLFFIFHX2 FIGFJGXFKDFMCL FxTqFzCLF{CL F|F~CLFCLFXFCLFCLFx# Fc` FCLFCLFCLFT& FF8F}Fz@FLFPFYHF^B!FS"FGٚ#Fyg$FIU %FN&FLc&'FJl(FA\FCL*F[FCL-F@FCLFCL0Fzu 2FJ!3FM74FHFCL6F]FCL8FBcFCL:FHFCLFGBG~FIM FJK:[FMo^ FOOFPGFSCLFVEUFWC3FYCLFZCLF[CLF\CLF]CLF^CLF_CLF`CLFcYgFdNgFfavgFgMHFhkHFiiFkCLFlCLFmCLFnCLFoCLFpCLFrCLFs^FtCLFuCLFvCLFwNFyCLFC$FCLFCLFy FCLFCLFCLFOP$FL|%FJ&FKqhFCL*FLf,FSFOP.FIpFCLFCLFOPFCL3Fo,4FAH6FPy7FS8FOl9F@"d:FyS3;FvLFQHT?FI@FFAFK;FOPDFv- EFGFFFDGF OP1F P3FVFOFr/ FcEF@K;Fc_ FbA FDFE!FCL FCLFCLF e[ F#CLF&w F'G:F(DF)r F*M F+x F.CLF/CLF0CLF2CLF3CLF6FڸF7HOF:|5! FK~F (LHF )LTF *EF +OP~F -CLF /H*F 2W F 3H`F 4G3F 5E9F 7CL F bPr.F dCLF eCL F fMF gCLF hCLF kY3F mCLF nCLF pua F qc,p F sOPF uCLF vCLF yT- F ztF {nF |l3F KF JF MRF N!F T"F H#F v$F J%F Nk&F K'F JU5(F A=F CL*F VF CL-F 7 F CLF CL0F zr 2F Jm3F M8k4F HF CL6F ]F CL8F BNF CL:F G'F CLF Q+?F IS@F FAF KF OPDF w4 EF G7FF F#PGF NE&F S,F XF RlF o@ F aAF @9qF c F c F DF DZ!F CL F CLF CLF b6 F CLF vh. F DQNF CuF r F Aq F w F CLF CLF CLF CLF CLF FF !HMF $|& F &mbmF )]6F *z F +{/ F Tj F WqYF ZIF \UF ]Hv!F ^G#=F `B F cQ91F dFF eBqF h{Z F iN5 F lm@ F n`fF oVF p^F qCLF rCLF sCLF uCLF vCLF yOPF zOPF |CLF }CLF L:F HF HF HRwF LF L}eF Y"}fFp MF vC NF COF GIsPF F$QF _\RF MfSF o,| TF Fm8VF h7 XF FqYF Jk[F  \F X ^F b_F l `F AaF @:bF @cF wW F CLF CLF CLgF p w F CLF CLF CLF CLmF #GnF &~oF 'f F )CLF *CLF +CLF ,CLF -CLF /CLF 0CLwF 3@\xF 4KyF 5S4F 6OP{F 9l |F ;Z}F GF _HHF OWD LF yMF uNF C4OF j' PF hr QF C{RF JPTF JVUF JTVF GJF OPF CLYF CZF CF OPF CL]F xt ^F ]F OPF CLaF T@SF OPF CLdF HF OPfF ^F CLhF H*iF STF OPkF [- lF p\mF knF ChoF jWxpF d qF `3 rF b. sF MftF MGuF EF OPF CLxF DJyF RzF GF OPF CL}F F~~F LPF LXxF DRF OP~F CLF F~F W` F HF K3F HF3F JCL F LFTF OCLF PCL F Q]*F RCLF SCLF VZF XCLF YCLF [tz F \b F cCLF eCLF fCLF iTV F jrF kl3F lkF oK/F qGF rUQF sK!F tNs3"F uF#F vv$F wJ%F xO&F yL,'F zJL(F {B yF }CL*F SF CL-F U F CLF CL0F z 2F J=3F M(4F G-aF OP6F ]F CL8F C F CL:F GF CLXF?NgF@avgFAMHFCkHFDhHFFCLFGCLFHCLFICLFJCLFKCLFtCLFu^FwCLFxCLFyCLFzNF|CLFCTFCLFCLFy# FCLFCLFCLFOP$FLu%FJ&FLFCL*FK,FRwFOP.FIFCLFCLFOPFCL3Fo%4FAH6FH&g7FFl8FK9F|):Ft;FqFQ?FIlA@FFAFKFOPDFx+ EFGFFFGFM۽FRFX3FRFmZ F^F@Fd D Fd FDFD|!FCL FCLFCLFa FCLFu6 F@FCpiFr1 FDp Fw F CLF CLF CLF CLF CLFFrFH@TF={ F?mzFB]6FCy FD{/ FEjׄ FHqpFLHFMViFNHFOG.FQB) FTQFUGFVBFY{/9 F[P F^o. F_`3F`VfFa^FbCLFcCLFeCLFfCLFgCLFjOPFkOPFmCLFoCLFrL&FsHIFtH FuHXFLFL}eF[}fF q MFu NFCOFJ9PFF}VQF]ӁRFNgSFn TFHVFm XFF\@YFJwV[Fв\F_^FdNb_FlUU `F@eaF\bF@4cFwFCLFCLFCLgF o[ F CLF CLFCLFCLmFF-nFoFf FCLFCLFCLFCLFCLFCLFCLwF"BǮxF#IyF$W.F%OP{F)o |F+[7}F,oa~F.^F1BF2GF5s ~F8OPF;_ |F=CLFhG[FiK#FjHFnGuFpCLtFqCLFsf! Ftm Fvi 5FxK>6FyKF{CLF|CL:F~DnQ;FN OFju PFi QFDGRFJ3TFJDUFJÑVFH5FOPFCLYFCwZFC FOPFCL]FxWc ^F]3FOPFCLaFTFOPFCLdFIFOPfF^FCLhFH]iFRFOPkF[ lF`mF\nFAoFiZpF\f qF\ rF_k sFMTtFM^uFE| FOPFCLxFDyFPzFH[FOPFCL}FF/~FLQFLUF0DVF1OP~F3CLF5DF7Wc F8JF9JgF:GgFDFACLFBCL FCE_FDCLFFCLFHZ FJCLFKCLFMs FNae FQCLFRCLFTCLFVT FWrFYoiFZpF\KF^MF`RhFaQ!Fb^ "FcS#FdH3$FeJy%FfOS&FgLY 'FhJSc(FiAFkCL*FQFCL-FU FCLFCL0F{ 2FJo3FM\4FFqFOP6F]FCL8FDGFCL:FGQFCLFQ~d?FIJ@FFľAFLFOPDFxH EFGFFFGFM@FPٚFVFOFkUb F_bF@Fd7' Fd FD;FD!FCL FCLFCLFcн FCLFup F| FCFrz FH@9Fw_ FCLFCLFCLFCLFCLF&FF'H0F*|& F,mrF/]6F0y F1{w F2j" F6rF9HCF:TYF;IhFB}q FAQ FBG̶FCC EFF{ FHR FKl&f FL`fFMVfFN^FOCLFPCLFRCLFSCLFTCLFWOPFXOPFZCLF\CLF_LFHFHFHXFLFL}eFBN}fFsp. MFvw NFCPOFIPFFs1QF\JRFN^SFn TFHVFm;0 XFEYFJ"[FR\F[g^Fe_Fl `F@uaFbF@cFxFCLFCLFCLgFo FCLFCLFCLFCLmFFnFoFf  FCLFCLF CLF CLF CLF CLFCLwFCqxFK yFSFOP{Fofg |FZ}Fl#~F^F B8F!FF$z ~F'OPFR_ |FTCLFWGSFXKFYHTF]M.uF_CLtF`CLFbh FcmM Fej;e 5FgK46FhKAFjCLFkCL:FmCw;FnL0FQn?FI+@FFAFM FOPDF EFGFFFGFM`FPfFVFP#3FiF Fb5F@ FdE Fc FCFCp!FCL FCLFCLF_d FCLFu F^ FCFr F VFwB FCLFCLFCLFCLFCLFFoFH)F| z F!mF$]6F%yz F&{ F'j F*r3F-HF.Ti[F0IF1GoF3Bs3 F6QF7GF8C^EF;z F}fFbr9a MJ6vc NJ8COJ:GEPJ;FnQJf[$RJgNSJhn TJiHM{VJjl XJlE`YJnI[Jox\Jp[^^Jsf_Jtl `Ju@zBaJw~bJxaHcJzvJ|CLJ}CLJ~CLgJom; JCLJCLJCLJCLmJFnJ|oJe JCLJCLJCLJCLJCLJCLJCLwJxJDyJPJOP{Jn |J[1X}Jo'~J^JB{JFJ} ~JOPJ^(# |JCLJGJK_JH>bJN0uJCLtJCLJg- Jm Ji 5JK#6JKhJCLJCL:JCi(;JJԝJ>Ro?J?I@J@FƏAJAO؍JBOPDJC@TEJDGFJEF GJFM۽JJQJKVJLPffJMh JPcJQ@JRdq JSd JUC4JVC !JYCL JZCLJ[CLJe JCLJu JH9QJCJr]\ JM8Jw JCLJCLJCLJCLJCLJFJHJ|` JmjJ]6Jy J{H Jk\ JrٚJHmJTGJJ2kJGľJB\ JQ5JH/JCJz? JV- Jls3 Ja3JT3J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLJHJHJHZJLJ L}eJMZ}fJqM MJOu NJQCROJRFPJSFsQJVZRJXN3SJYn TJZH>VJ[l XJ]EYJ^I[J_nR\J`^3^Jde_Jemr `Jf@SRaJh~bJi@34cJjwGJlCLJmCLJoCLgJqoek JsCLJtCLJuCLJvCLmJyFsInJ|goJ~e$ JCLJCLJCLJCLJCLJCLJCLwJD4xJIyJRJOP{Jn |J[*1}Jn~J^JBZJFJ{/9 ~JOPJ^ |JCLJGu^JKJHFXJFiuJCLtJCLJg Jmfg Jj 5JK6JKbdJCLJCL:JD- ;JIpJ|a=q qJ}] rJ~_L sJM'tJM3uJEZJOPJCLxJC'yJIzJHJOPJCL}JG~JLQJLgJDdJOP~JCLJCpiJVپ JG(JC3JCfJCL JDJCLJCL JlJCLJCLJYZJCLJCLJtM Jb& JCLJCLJCLJT|h Jl3JfiJd)JKJHJL JK !JWf"JGS3#Jv $JJ%JOO&JK'JJM(J@'JCL*JzXJCL-J~ JCLJCL0J{LS 2JJn3JL4JF-JOP6J ]J CL8J ETJCL:JFJCLJ)R-?J*I @J+F_AJ,QyYJ-OPDJ.@NEJ/GFJ0FXGJ1NJ5R3J6X3J7QJ8g J;brJ=@ J>d J?d/ J@CScJAB!JlCL JmCLJoCLJqa- JtCLJvv JwF/JxCJyr J{"Jv JCLJCLJCLJCLJCLJGJH)J|` JmiJ]6Jx J| z Jk Jq&fJHSJRJJt<JG9JB JRJHiJDJz$ JNf Jm J`fJUFfJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJL}JHJHIJHWJLJL}eJ{j{}fJq|W MJ;v& NJ=COJ>Fy:PJ?FxQJBZ9RJCO SJDn TJEGVJGlm XJIEYJJI[JKR\JLZ!l^JOan_JPmr `JQ@IaJT}ubJUcJVvJXCLJYCLJZCLgJ\o J^CLJ`CLJaCLJbCLmJeF\nJh~oJieM9 JkCLJlCLJnCLJoCLJCLJCLJCLwJ{RxJF)yJQ\)JOP{Jm |J\9}Jlk~J^JBCJFJz7 ~JOPJ\J |JCLJGe JKրJHQ5JKuJCLtJCLJhT Jm JjZ 5JK()6JKZ4JCLJCL:JE ;JHYvzJ CL-J  O J CLJ CL0J z$ 2J J[3J L4J F?J OP6J ]J CL8J F>KJ CL:J (FJ *CLA!RIJ Ar; J DEVJ EEVJ FEVJ GEVJ HB J I@XJ JEVJ KEVJ L@JJ NzJ P@ J SOJ UI~J VLJ Yr J [JPJ ^m4 J _DF J `J bL`J cM J g+ J KJ EʘJ CLJ EJ DJ OPJ CLJ CLJ CLJ CLJ CLJ CLJ CLJ YgJ NgJ avgJ GHJ kHJ GHJ CLJ CLJ CLJ CLJ CLJ CLJ CLJ ^J CLJ CLJ CLJ NJ CLJ CݑJ CLJ CLJ x J CLJ CLJ CLJ OP$J Kř%J Kb&J H|gJ CL*J K'@,J SJ OP.J JHJ CLJ CLJ OPJ CL3J n4J AH6J Rl7J e8J \9J uI:J rY;J tgJ R"?J IU@J FľAJ R*J OPDJ @EJ GFJ F!GJ !OIJ %R33J &XPJ 'QiJ (fw J +_J Ub J Vdp J Wd J XC J YBUZ!J \CL J ]CLJ _CLJ aa J dCLJ fup J gB}J hCwJ iqt J k+J ovܹ J rCLJ sCLJ tCLJ uCLJ vCLJ yG1J zH+zJ ~| J mS}J ]6J x J | z J k J o J H5J S'J JJ GJ B5 J R6*J GnJ D~FJ zr J Q J iٚ J _pJ T`J ^J CLJ CLJ CLJ CLJ CLJ OPJ OPJ CLJ CLJ LaSJ HضJ HκJ HYJ LJ L}eJ kkV }fJrY MJ )uK NJ +COJ ,FT%PJ -F,.QJ 0YfRJ 1O-SJ 2n TJ 3GVJ 5kH XJ 7E}fYJ 8IW[J 9C\J :\^J =bǿ_J >mUU `J @@?aJ B@34bJ C} >cJ DvJ FCLJ GCLJ HCLgJ Jn J MCLJ NCLJ OCLJ PCLmJ SFJnJ V,oJ Wd_ J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ zxJ DyJ OJ OP{J l |J [}J n~J ^J B7WJ FJ ~ ~J OPJ \ |J CLJ GZ$J KHJ H3J PuJ CLtJ CLJ hH J mZ J i 5J K?6J KZ4J CLJ CL:J E;J G"AJ'J`BJ(B&J*CLJ+CLEJ-G )HJ/~ IJ2^O J5EVJ6EVJ7EVJ8EVJ9EVJ;@gvJEJ@znJA@ JDOJFI~JGLJJr JtJPJwB JxFvJyJ{LJ}M Jg+ JKJJԭJCLJEJC/qJOPJCLJCLJCLJCLJCLJCLJCLJ^YJPgJk6fJGHJkHJGHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJN+JCLJCJCLJCLJw JCLJCLJCLJOP$JKJ%JK&JFOJCL*JK,JSJOP.JJPJCLJCLJOPJCL3Jn]4JAH6JOY7JSS48JU9Jt:Jn@;Jr,JR$?JHM@JF6AJ P^J OPDJ @~EJ GȩFJ F'GJO#tJP4JVJOJJR?JHγ@JFAJN&JOPDJ@EJGFJF(GJN<JRJXJQJ$d J'`J)~) J*e/ J+e J,Bk!J-A!J0CL J1CLJ3CLJ5_ J8CLJ:t/ J;{ JJCLJCLBJy@Y CJCDJCEJbFJ{GJ\HHJM LJ{ MJw4NJFQOJnQ PJnT QJEORJITJJ}UJJO VJGeJOPJCLYJC=ZJBJOPJCL]Ju ^J`JOPJCLaJT&hJOPJCLdJHO JOPfJ^J CLhJ"FiJ#TJ%OPkJ&W lJ'bmJ(`\nJ)B3oJ,fkpJ.b\ qJ/] rJ0^. sJ1LNtJ2LuJ3DkJ4OPJ6CLxJ8ByJ9KzJ:IwJCL}J@G~JBL JCL JDDJFOP~JHCLJJBJLVJ JMEJNB3JOAk3JQCL JSD%J~CLJCL JJCLJCLJOJCLJCLJr@3 J]S JOPJCLJCLJS J@fJzS4JwgJK]JNǮJR{JRh!JUY"JAٚ#Jp $JJ%JP&JK6'JJx(JAxJCL*JTCJCL-J} JCLJCL0Jx 2JJ 3JLS4JF7JOP6J]JCL8JFJCL:JEJCLJS?JH@JFUAJM!JOPDJ@EJGFJF& GJO(J PJV3JPJd! JcJ~] JejU Je JB)JAH!JCL JCLJCLJ c J#CLJ%t/ J'D̘J(E J)o7 J+ J.vR J1CLJ2CLJ3CLJ5CLJ6CLJ9G$J:H)J={ J?mzJB]33JDv( JEz[ JFk= Nq&fNG#N QN JmN GdmN BY NR!ENH mNEINNz NSx Nf N`C3NUN^NCLN CLN!CLN"CLN#CLN&OPN(OPN*CLN+CLN.KN/H\N1H N2HB$N5LN8L}eJ+R@}fJsRd MN~w+ NNCʅOND PNEQNWRNO4SN{ TNEVNhbh XNEYNHe[NV\N[E^Ne_NmV `NDcaN\bN|pcNuzNCLNCLNCLgNm NCLNCLNCLNCLmNHonN}goNa NCLNCLNCLNCLNCLNCLNCLwNzxNJyNO{NOP{NiUV |N\}Nq~N]NCNG~dN)b ~NOPNXs |NCLNG%NJ;NGN-MuN/CLtN1CLN3ik N4m N5i?} 5N7K?6N8KmN:CLN;CL:N=DnQ;N>DNSK?NH@NFANLNOPDN@4ENGFNF GNO!NS,NYNRfNc NcdN} Ne NeT NAN@!NCL NCLNCLN_ NCLNs NFNDNo; NٝNvY NCLNCLNCLNCLNCLNG'NHFN{ Nm ]N]33Nv Nz)B Nk= NpfNGLNQNIoNFݱNB+ NRNHNEvNy NM\ N k; N ``N UfN ^NCLNCLNCLNCLNCLNOPNOPNCLNCLNKANHN HN!H:NLL{NPL{}eNF}fN3tO MNnu NNpCDONqD{PNrE^UQNuWuRNvOMSNwo TNxEuVNzgc XN{DuYN}H1[N~\N\^Ne(_NmV `NC6aNbN~cNxkNCLNCLNCLgNm NCLNCLNCLNCLmNHnN}goN_J NCLNCLNCLNCLNCLNCLNCLwN|xNHyNQLNOP{Ng |N]}NqL~N]NCMNFN ~NOPNX. |NCLNGNINGԬNNNuNCLtN CLN"jL N$lE N%idZ 5N'K&X6N(JN*CLN+CL:N-D;;N.PsttuMN?pqNN@B=qONCof PNDpPL QNEERNFI\TNHJAdUNIJVNJGeNKOPNMCLYNOCZNxBk!NzOPN|CL]N~u65 ^N_NOPNCLaNRNOPNCLdNH9QNOPfN^NCLhNEiNU"NOPkNW, lNdmNa{nNAǮoNfJpN` qN\ rN^ sNLtNLuNDNOPNCLxNByNRB~zNHؒNOPNCL}NGx~NKϔNKjND NOP~NCLNB"NUz NCNAN@NCL NCuNCLNCL NNCLNCLNWaNCLNCLNq N[, NCLNCLNCLNS Ni9N{ N{N KN O N SNS0!Njf"NX#NBL$NJ%NO˻&NK'NJO(N@NACL*NDOHNFCL-NH}u% NKCLNLCL0NNw 2NPI3NQK4NRFNSOP6NU]NVCL8NXFN[CL:N]EsZN`CLN~hNLNM Ng+ NKNGNCLNENC3NOPNCLNCLNCLNCLNCLNCLNCLNNgNNgNcVgNMHNkHNMHN CLN CLN CLN CLN CLNCLNCLN]NCLNCLNCLNNsNCLNCNCLNOPN!t N#CLN$CLN%CLN(OP$N)K`%N*J&N-K='N/CL*N2I,N3SzSN4OP.N5JeN7CLN8CLN;OPN=CL3N?nS4NAA{6NlCY7NmFY8NnCFf9Nqr˪:Nry,;Nsu33NvSj{?NwH?@NxF}ANyLnNzOPDN{@tEN|GyFN}FGN~ONTLNXYNQNcgb NaN}S NeT NejU NA N@b!NCL NCLNCLNdq NCLNsc N@ND%Nn`* NhNv- NCLNCLNCLNCLNCLNG#'NHWN{w NlN]33NuD Nyz Nk= No NFNTlNM$NFNB\) NOJNGz'NENy NV- NlU N`3NVfN^NCLNCLNCLNCLNCLNOPNOPN CLN CLN5KWyN6HN7HN9H1NN 3CL-N 5}f N 8CLN 9CL0N ;v 2N =Ik~3N >Ko4N ?FШN @OP6N B]N CCL8N EFN HCL:N JE9[N MCLN dS%X?N eHlg@N fFjAN gKN hOPDN i@EN jGFN kF@GN lOáN oRlN pXFgN qQ|N rb N u_TN v| N xf 4 N ye N zA:%N {@gv!N ~CL N CLN CLN ` N CLN r@3 N zT N CBN nB N wFN u N CLN CLN CLN CLN CLN G3tN H_)N {LS N l{N ]/N t N xo N k= N nIN F[N RqN h1N G\uN B8R N P=N FƃN EN y@ N MK N l N `N VN ^N CLN CLN CLN CLN CLN OPN OPN !CLN "CLN %K$N &HƐN 'HN (H*N ,L{N -L{}eN u9M}fN v MN Ku. NN MCON ND-PN ODQN RVRN SOWSN Tof TN VDVN We`E XN DjYN G[N M\N Yv ^N dH_N m `N AaN bN ~\*cN wfgN CLN CLN CLgN mi_ N CLN CLN CLN CLmN GOEnN }goN ] N CLN CLN CLN CLN CLN CLN CLwN yxN J >yN SGN OP{N e |N _ }N q2~N ]N C N F N ~z ~N OPN Sw |N CLN FN IYbN G`N JuN CLtN CLN l N k N h+ 5N K6N JN CLN CL:N C:;N NK LN vMN qNN HBON KpӖ PN Lq^ QN MERN NIkTN PIUN QIVN RGN SOPN UCLYN WCUZN XB\N ZOPN \CL]N ^t>u ^N `\N aOPN cCLaN fQ0N gOPN hCLdN jGN lOPfN n^N oCLhN qDiN rTN tOPkN vU lN wdmN x^nN yBfoN |e?pN ~_k qN ]G rN ak sN LtN LuN D\N OPN CLxN B+yN N#zN Hs<N OPN CL}N GB~N KuhN KN DgN OP~N CLN AqN Uv N C8N BdN N CL N Ci(N CLN CL N ЄDN CLN CLN AON CLN CLN p| N Y N OPN CLN CLN S% N gN afN _ffNJNONSNS{!NF3"Ng#Ni&g$NJ%NO&NK'NJ(N@~N CL*N"L N%CL-N&}T N)CLN*CL0N,v 2N.I()3N/K4N1FN2OP6N4]N5CL8N7FN:CL:NNQR'?NRHU@NSF^!ANTLNUOPDNVA7ENWGxFNXFGNYOmN[P3N]V\N^ON_b+ Nb_Nc|Z Ndf7 Nef Ng@=Nh@!NkCL NlCLNmCLNocjS NrCLNtrs NvH[NwDNm7 NNuZ NCLNCLNCLNCLNCLNG<NHU/N{ Nl$lN]/Nt Nxo Nk= Nq0NFtNOWNwqNHYNBaH NQpNFqNFRNyz NUrN Nn"" NafNVfN^NCLNCLNCLNCLNCLN OPN OPN CLNCLNJ NHNHNHNL{NL{}eNd}fN w3 MN9u NND=QNiVRNjO SNko7 TNlD`VNmd XNoDhYNqG1[Nrx7\Ns]e^Nvd_Nwn9 `NxAPgaN{@J>bN|cN}wW NCLNCLNCLgNmV NCLNCLNCLNCLmNGnN}poN\ NCLNCLNCLNCLNCLNCLNCLwNBxNH\yNR34NOP{Nefg |N^}NpO~N]NBhNFN)b ~NOPNV |NCLNFONI-NGNOZuNCLtNCLNmĜ Nk Nhu 5NK56NJdNCLNCL:NC;NL7vN?OP>N@S?NAHB@NBFYANCNNDOPDNEAENFGzyFNGFGNHOmNLQC3NMWVgNNPpNOa NRbNS{g NTfTQ NUeT NW@RNXK !N[CL N\CLN]CLN_` NCLNq NE#ND- Nl9 NB Nu NCLNCLNCLNCLNCLNGCNHH}N{ Nk)N]/Nsl Nwt Nk/3 NqvfNF5SNTN~NJ 0NBH NO NF4&NF)GNyN NN7. Nl N`fNV3N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNJNH7NH}NHNL\NL\}eNY}fNy. MN%uwo NN'C~8ONPCPNQD}QNTVRNUO+SNVoXB TNWCVNYcv XNZDfYN\Grx[N]\N^_^Nac&_Nbnr `Nd@aNf~ bNg}cNhxRNjCLNkCLNlCLgNom9 NrCLNsCLNtCLNuCLmNxFnN{~,oN|\ N~CLNCLNCLNCLNCLNCLNCLwNGxNI)yNQ=qNOP{NdDD |N]}NrA~N]NBNFN~OI ~NOPNS |NCLNFNING;NL%uNCLtNCLNn Nl33 Nh 5NK6NJNCLNCL:NCL!;NKOPN@CLdNBGJYNDOPfNF^NGCLhNIDiNJR'NLOPkNMUރ lNNazmNOZHnNPA|)oNSdpN}`( qN~Z rN\ sNLtNLuND.}NOPNCLxNBFyNJzNH9QNOPNCL}NG} ~NK!NJ2NDO!NOP~NCLNANU+ NBNBN3NCL NCUNCLNCL NNCLNCLNV&NCLNCLNp NW NOPNCLNCLNRw N_\NU)NrNJNTRNWNV!NS"NG#Nvf$NJ%NO6&NK'NI)(N NCL*NK82NCL-N|C NCLNCL0Nt 2N H3N KOI4N FN OP6N]NCL8NFENCL:NDuNCLN+S7?N,H1C@N-FS<AN.QN/OPDN0@eEN1Gi4FN2F_GN3OáN6T|N7ZfN8SpN9a. N{P N?f/ N@e NA@QNB7 !NECL NFCLRrCLRr`q. RrCLRr q Rr ~ Rr CRr lD RrmNRruD RrCLRrCLRrCLRrCLRrCLRrGJRrH=Rr{ Rr!l Rr$]/Rr%s Rr&w Rr'k/3 Rr*rɚRr-ERr/T0Rr0@Rr1K&Rr3B Rr6PRr7ERr8FMRrdy RreR9 Rrhns3 Rri`c3RrjW3Rrk^RrlCLRrnCLRroCLRrpCLRrqCLRrtOPRruOPRrxCLRryCLRr|JaRr}HRr~HtRrH RrL\RrL\}eRrR*}fNzK5 MRrt+ NRrC[ORrCPRrDqQRrVoRRrOmSRro; TRrCVRrcP XRrDcYRrF[Rrܵ\RrRc^Rra_RrnUV `Rr@!aRr@+bRr*cRrx>RrCLRrCLRrCLgRrl0 RrCLRrCLRrCLRrCLmRrFLnRr|oRr[ RrCLRrCLRrCLRrCLRrCLRrCLRr-CLwRr0EkxRr1G4yRr2PffRr3OP{Rr6c |Rr8^}Rr9r~Rr<]Rr?BpRr@GRrC~ ~RrEOPRrHV׬ |RrKCLRrNFbRrOHhRrPGRrSGLDuRrUCLtRrWCLRrYo RrZl?} Rr[i 5Rr]K 6Rr^JRr`CLRraCL:RrcD;;RrdIGRrSHRrLN LRrypMRrtNRrD^ORrr PRrrn QRrERRrIiNTRrI*0URrI5VRrFzRrOPRrCLYRrA/ZRrARrOPRrCL]Rrr ^Rr^RrOPRrCLaRrPRrOPRrCLdRrGXRrOPfRr^RrCLhRrC4iRrQRrOPkRrT lRrgmRranRrBoRrdpRr`\ qRr[ rRr^ = sRrL^tRrLuRrD RrOPRrCLxRrB)yRrQUzRr H#Rr OPRr CL}RrGgR~RrJRrJRrD:RrOP~RrCLRrA RrT RrCRrB4Rr@hRr CL Rr"C Rr$CLRr&CL Rr'Rr(CLRr)CLRr+AqRr.CLRr/CLRrYp3 RrZW\ Rr\OPRr^CLRr_CLRrbRJ Rrcc0RrdVIRreY#3RrhJRrjK>RrkN&fRrlL!RrmU3"RrnG,#Rros34$RrqJ%RrrOh&RrsKEF'RrtIo(RrwU RrzCL*Rr{JfRr~CL-RrFv RrCLRrCL0Rru6 2RrHqb3RrK4RrFTRrOP6Rr]RrCL8RrFRRrCL:RrD- RrCLMHRr?kHRr@MHRrBCLRrCCLRrDCLRrECLRrFCLRrGCLRrHCLRrJ]RrKCLRrLCLRrMCLRrNMXRrPCLRrSCRrUCLRrVCLRrXup RrZCLRr[CLRrCLRrOP$RrJ:%RrJZ&RrJRrCL*RrHV,RrSERrOP.RrKRrCLRrCLRrOPRrCL3Rrnu4RrA{6Rr`s47RrN&f8RrTg9Rrq:Rro;Rrs RrS?RrH@RrFHWARrSƧRrOPDRr@ERrGVFRrF7GRrO RrXRr_#3RrWRra RrcRrz Rrfm RrfTQ Rr@Rr~Ü !RrCL RrCLRrCLRr`׬ RrCLRrp< RrzT RrCZRrk Rr!Rru ~ RrCLRrCLRrCLRr CLRr CLRrGHIRrH)Rr{/9 Rrl>Rr],`Rrs T RrwQ? Rrk Rrr33Rr!ERr"PhRr#AORrLLGRrNBH RrQQ,RrREHRrTFqRrWx RrXP Rr[s Rr\`#3Rr]VfRr^^Rr`CLRraCLRrbCLRrcCLRrdCLRrgOPRriOPRrkCLRrlCLRroJlRrpH;RrrHo{RrsHRrvL=RryL=}eRrw }fRrYz MRru=< NRrCORrCiPRrDyQRrVERRrOSRro TRrC*VRrcP XRrD\YRrF٦[Rrжh\Rr]L^Rra_Rrn9 `Rr@aRr@)bRr@cRrxRrCLRrCLRrCLgRrl RrCLRrCLRrCLRrCLmRrFnnRr}oRr[b5 RrCLRrCLRrCLRrCLRrCLRrCLRr CLwRr#xRr$FyRr%ORr&OP{Rr)b |Rr,_}Rr-q ~Rr/]Rr2BsPRr3FhRr6~] ~Rr9OPRrCLRrAFJRrBH~RrCG4RrGKuRrICLtRrJCLRrLoD RrMl RrNi1 5RryK6RrzJRr|CLRr}CL:RrCB;RrH:CLRr?CLRr@CLRrBMfRrCCLRrnC<RrpCLRrqCLRrsuD RrvCLRrwCLRrxCLRrzOP$Rr{J%Rr|JJJ&RrHxRrCL*RrH,RrSRrOP.RrKзRrCLRrCLRrOPRrCL3Rrny4RrA{6RrQ7RrM,8RrV@9Rrqf:Rrq4;RrsRrTMI?RrH @RrFAARrU RrOPDRr@ERrGK5FRrEVGRrORrV#4Rr[4RrURr`r RrcYRrzv Rrf Rrfq Rrr Rr~l^ !RrCL RrCLRrCLRr^SI RrCLRrp RrIRrCuRrk) Rrm IRrt4 RrCLRrCLRrCLRrCLRrCLRrGMRrHpRrz RrkoRr ],`Rr s Rr5wna Rr6k Rr9pC3RrAcRr?MRrAB: RrEQ RrFEpRrGFRrJxP RrKO RrNkn RrO`\RrPS RrR^RrSCLRrTCLRrUCLRrVCLRrXCLRr[OPRr\OPRr^CLRr_CLRrbJ9RrdHRreHeRrfGRriL=RrlL=}eRrPn}fRrL{Dm MRrs NRrCORrCtPRrC/QRrV+YRRrO SRro; TRrCZmVRrb| XRrDYYRrFy[Rröv\RrV&g^Rrd&_Rrn `Rr@zBaRr@bRrpcRry#RrCLRrCLRrCLgRrl RrCLRr CLRr CLRr CLmRr FznRr |oRr ZN Rr CLRr CLRr CLRr CLRr CLRr CLRr CLwRr {RxRr F)yRr TLRr OP{Rr b |Rr _w}Rr r~Rr "]Rr %BURr &F8Rr *~# ~Rr ,OPRr /QY@ |Rr 1CLRr 4F@Rr 5H*Rr 7G>Rr bPuRr dCLtRr eCLRr go Rr ikz Rr jh 5Rr lK#6Rr mJ|JRr oCLRr pCL:Rr rCu;Rr sFOMRr t(NRr DORr s PRr s QRr FRRr IETRr HURr H|VRr FRr OPRr CLYRr A{ZRr ARr OPRr CL]Rr q ^Rr `yRr OPRr CLaRr Q8xRr OPRr CLdRr F!ORr OPfRr ^Rr CLhRr BMiRr NRr OPkRr T lRr hHmRr affnRr BoRr dVpRr `p qRr YaH rRr \ sRr LStRr LuRr CRr OPRr CLxRr AqyRr N>zRr GRr OPRr CL}Rr GC~Rr J?Rr J>ARr DRr OP~Rr CLRr A^vRr )T}3 Rr *F34Rr +EHRr ,EiRr .CL Rr 0BERr 3CLRr 4CL Rr 5Rr 6CLRr 7CLRr :T*Rr !Rr T^"Rr UNf#Rr Vv$Rr WJ%Rr XN&Rr YKJ'Rr ZJ&(Rr ]~Ü Rr `CL*Rr bI/jRr CL-Rr ~ Rr CLRr CL0Rr u 2Rr G3Rr JL4Rr FhRr OP6Rr ]Rr CL8Rr ERr CL:Rr CRr CLRr S`?Rr G@Rr F5GARr U<Rr OPDRr @ERr GCFRr EGRr OJRr V#4Rr \ffRr URr ` Rr a[Rr z4 Rr f Rr f Rr ~' Rr } !Rr CL Rr CLRr CLRr a- Rr CLRr pPL Rr BUZRr CRr j Rr 崵Rr t Rr CLRr CLRr CLRr CLRr CLRr GZfRr H&Rr zu Rr "kjRr %],`Rr &r Rr 'vI Rr (k\ Rr +oRr .E2Rr 0Q&Rr 1A2Rr 2OK$Rr 4B=q Rr 7Q-Rr 8ERr 9FfRr S& Rr Ak{ Rr B`3Rr CRYRr D^Rr ECLRr GCLRr HCLRr ICLRr JCLRr MOPRr NOPRr QCLRr RCLRr UJ jRr VHRr WH_)Rr GRr L=Rr L=}eRr ^*)}fRr g{|S MRr t` NRr C~8ORr CŇPRr CQRr V\RRr O SRr o; TRr C'dVRr bO XRr DuWYRr FUE[Rr \Rr Xka^Rr eo_Rr n `Rr @zBaRr @xRbRr 34cRr vRr CLRr CLRr CLgRr lՎ Rr CLRr CLRr CLRr CLmRr FgnRr }oRr Z_ Rr CLRr CLRr CLRr CLRr CLRr CLRr CLwRr CaHxRr H yRr O34Rr OP{Rr a |Rr _{}Rr t/~Rr ]Rr BAtRr FGRr } ~Rr OPRr IP |Rr LCLRr OFH;Rr PHRr QFRr TJMuRr VCLtRr XCLRr Zo Rr [kw Rr \ht 5Rr ^K 6Rr _JaRr aCLRr bCL:Rr dC>;Rr eE"VRr EnRr OPRr CLYRr AZRr At@Rr OPRr CL]Rr q ^Rr ^gRr OPRr CLaRr PRr OPRr CLdRr FmRr OPfRr ^Rr CLhRr BiRr MRr OPkRr T lRr jzmRr d(nRr BQoRr cJpRr ^{ qRr Z rRr \Ǯ sRr LtRr L uRr CRr OPRr CLxRr A/yRr L&zRr GRr OPRr CL}RrG-a~RrJRrJRrD RrOP~RrCLRrAHRrT] RrLYRrN+4RrL3Rr!CL Rr#BERr&CLRr'CL Rr(Rr)CLRr*CLRr,F[GRr/CLRr0CLRr2pPL Rr3Vz Rr6CLRr7CLRr8CLRr;Q Rr<|PRr=o|Rr>m3RrAJњRrCX{RrD\RrEZ!RrFR"RrGC3#RrHx&g$RrJJ%RrKN[&RrtK'RruJ (Rrx7 RrzCL*Rr|HRrCL-Rr~ RrCLRrCL0Rrs 2RrG63RrJ4RrFhRrOP6Rr]RrCL8RrFRrCL:RrCRrCLMHRr?kHRr@MHRrBCLRrCCLRrDCLRrECLRrFCLRrHCLRrICLRrJ]RrKCLRrLCLRrMCLRrONRrPCLRrSCRrUCLRrVCLRrX{ Rr[CLRr\CLRr]CLRr_OP$Rr`J%RraJ*w&RrdPIRrgCL*RriHD,RrkS RrkOP.RrlK.RrnCLRroCLRrrOPRrtCL3Rrwn*<4RrA{6RrT37RrZL8RrR9Rrq:RrvY;RrsYRrT~?RrGf@RrF/ARrVRrOPDRr@ERrG?eFRrE5GRrORrT0RrZiRrSgRr` o Rr^Rry Rrf& Rrg[~ Rr~@ Rr}f !RrCL RrCLRrCLRr\ RrCLRrp3 Rrx0 RrDRrjH RrARrtj. RrCLRrCLRrCLRr CLRr CLRrG\6RrHCRrz? Rrl :Rr],`Rrqt Rru Rrj Rrq#3Rr!DRr"RRr#AtRr$Q/Rr&B33 Rr*R]Rr+E$Rr,FaRr/xe Rr0L< Rr3pU Rr4`s3Rr5U3Rr7^Rr8CLRr9CLRr:CLRr;CLRr=CLRrhOPRriOPRrkCLRrlCLRroIqRrqHRrrHS_RrsGRrvLRryL}eRrY'}fRr Z{͟ MRru. NRrCy:ORrCσPRrCQRrVRRrOSRro,| TRrCaVRrbld XRrD$JYRrF D[Rrж<\Rr[^RrdH_Rrn `Rr@]aRr@bRr@{cRrx=qRrCLRrCLRrCLgRrl RrCLRrCLRrCLRrCLmRrFX#nRr}oRrZ{c RrCLRrCLRrCLRrCLRrCLRrCLRrCLwRr~xRrHyRrQ>RrOP{RrbDD |Rr_Ӫ}Rrs!~Rr]Rr2B2HRr4GRr7~; ~Rr9OPRr' |Rr>CLRrAFRrBGבRrDGjRrGG.uRrICLtRrJCLRrLo RrNl33 RrOhP 5RrQJ6RrRJaRrTCLRrUCL:RrWCμ;RrXPb  RrGRrJ1RrF$RrCL RrB=RrCLRrCL Rr~RrCLRrCLRrr Rr!CLRr"CLRr$of Rr%Tʄ Rr'OPRr*CLRr+CLRr.QW Rr/K Rr0FqRr1G,Rr\JhRr^UJ>Rr_W Rr`R!RraU "RrbFf#Rrcy2$RrdJ%RreN,&RrfKH'RrgI(Rrj~ RrmCL*RroH9QRrrCL-Rrt~ RrwCLRrxCL0RrzsU: 2Rr|G3Rr}Ju4Rr~F~RrOP6Rr]RrCL8RrFRRrCL:RrC~RrCLCLRr?CLRr@CLRrANsRrCCLRrFC0RrHCLRrICLRrKxe RrMCLRrNCLRrOCLRrROP$RrSJ%RrTJ%g&RrWMRrYCL*Rr\H@,Rr]T Rr^OP.Rr_LTRrCLRrCLRrOPRrCL3Rrn4RrA{6RrW97RrL338RrT39Rrq:Rrp;Rrs RrTq?RrG@RrF#ARrVRrOPDRr@֠ERrG6NFRrEGRrO1RrR RrXPRrQRr_ Rr_|Rryq Rrgd RrgL Rr} Rr},l !RrCL RrCLRrCLRrc[ RrCLRroXB RrFqRrERrj RrR| Rrt/ RrCLRrCLRrCLRrCLRrCLRrGURrHeRrz RrlbSRr],`Rrqes Rr v4 Rr jׄ Rr ns3RrDvRrYRrAoRrSRrB( RrQRrEWRrFcRrx+ Rr Ws Rr#m Rr$b3Rr%U6fRr&^Rr'CLRrQCLRrRCLRrSCLRrTCLRrWOPRrYOPRr[CLRr\CLRr_IRr`HYRraH>RrcG5RrfLRrgL}eRraa2}fRrL{ MRruh NRrC[ORrC@PRrCv8QRrV2RRrOBSRro; TRrCaVRrbp XRrD?MYRrF-\[Rr\RrV ^RrcE_Rro9 `Rr@SRaRrA!HbRrA!HcRryRrCLRrCLRrCLgRrl RrCLRrCLRrCLRrCLmRrFJnRr}S4oRrY} RrCLRrCLRrCLRrCLRrCLRrCLRrCLwRrBxRrLyRrRRrOP{Rrb |Rr_'}Rrp~Rr]Rr B$Rr!G91Rr$}~ ~Rr&OPRr*Q; |Rr,CLRr/FRr0GRr1F9Rr4LuRr7CLtRr8CLRr:pC Rr;ku Rru 2RrlGfL3RrmJW4RrnF~RroOP6Rrq]RrrCL8RrtF!ORrwCL:RryCZRr|CLu Rr@CLRrACLRrBCLRrEOP$RrFJ%RrGJ&VZJSVZCL*VZ G-,VZ SVZ OP.VZ LVZCLVZCLVZOPVZCL3VZn4VZA{6VZLf7VZNs38VZV39VZ!q i:VZ#q;VZ$t3VZ'S?VZ(G@VZ)F$AVZ*VgVZ+OPDVZ,A5EVZ-G/ FVZ.EUGVZ/OVZ1Q`VZ2V3VZ4P6fVZ5_ VZ8b+PVZ9yq VZ:g>? VZ;f VZd}T VZe|j !VZiCL VZjCLVZkCLVZm]b VZpCLVZro7 VZsC/VZuEVZvkQ VZx4nVZ{s VZ~CLVZCLVZCLVZCLVZCLVZGMVZHr5VZ{/9 VZlVZ],`VZqHF VZu} VZj VZqPVZDFVZRrVZAVZT|VZB VZRYzVZEVZF9VZx VZM.{ VZl VZ`iVZUVZ^VZCLVZCLVZCLVZCLVZCLVZOPVZOPVZCLVZCLVZIVZHYVZH9VZGVZL=VZL=}eVZxXeh}fRr:|D MVZ7sk NVZ9COVZ;CPVZCLEVZ@A^vHVZB{oIVZEqq VZH@uVZI@JeVZJ@VZKB VZLEVVZMAKVZO@JeVZP@-SVZQEVZS{#VZT@ VZWP eVZYI~VZZK4VZr VZLVZB VZQIVZ}VZLVZLVZg+ VZKVZEʘVZCLVZEUVZDOVZOPVZCLVZCLVZCLVZCLVZCLVZCLVZCLVZ_,VZNgVZjVZMHVZkHVZMHVZCLVZCLVZCLVZCLVZCLVZCLVZCLVZ]VZCLVZCLVZCLVZMVZCLVZCVZCLVZCLVZu VZCLVZCLVZCLVZOP$VZJ%VZJ&VZG%VZCL*VZG,VZShRVZOP.VZLVZCLVZCLVZ OPVZ CL3VZmߔ4VZA{6VZW47VZ]8VZ_9VZp>:VZz ;VZuVZT?VZGK@VZ FAVZ!W$VZ"OPDVZ#ArEVZLG% FVZME۵GVZNOVZQSVZRZVfVZTS3VZU__! VZXcTVZYy VZZgj VZ[fm VZ\|} VZ^|R8 !VZaCL VZbCLVZcCLVZea< VZhCLVZjpY VZkz VZmEVZnk VZoY-VZpsl VZsCLVZtCLVZuCLVZvCLVZxCLVZ{G/VZ|HoVZ{in VZlVZ],`VZrN VZvv VZj VZr3VZDrVZSjVZATYVZVVZB VZPVZE,VZG )VZwt VZT߁ VZo@ VZ`lVZUVZ^VZCLVZCLVZCLVZCLVZCLVZOPVZOPVZCLVZCLVZIlVZHVZH0VZGlVZL=VZL=}eVZoi}fVZ|"L MVZ,t` NVZ/C5OVZ0CePVZ1CHQVZ4V2RVZ5O SVZ6o TVZ7CpLVVZ9b| XVZ:DQPYVZNx^VZAd[_VZBo8 `VZC@6aVZF@bVZGcVZHx\VZJCLVZKCLVZLCLgVZOl VZzCLVZ{CLVZ|CLVZ}CLmVZF1=nVZoVZZfh VZCLVZCLVZCLVZCLVZCLVZCLVZCLwVZ}xVZFyVZQ\VZOP{VZcUV |VZ_}VZs ~VZ]VZB`VZG7VZ~ ~VZOPVZW |VZCLVZEVZGVZG3VZImZuVZCLtVZCLVZp J VZl?} VZhz 5VZJ6VZJZVZCLVZCL:VZK6;VZL&x LVZB=qMVZ}HNVZIhOVZvY PVZ vY QVZ F7 RVZ H TVZ GUVZH~VVZFVZOPVZCLYVZB\ZVZ@.VZOPVZACL]VZBo+ ^VZD[::VZEOPVZGCLaVZJO%VZKOPVZMCLdVZOGVZQOPfVZS^VZTCLhVZVBUZiVZWVNVZYOPkVZZTk lVZ[n\mVZ\hnVZ^B3oVZ`cpVZbbff qVZc] rVZe^ sVZfLtVZgM]uVZhC2VZiOPVZkCLxVZmA:%yVZnMzVZoGVZqOPVZsCL}VZuF~VZwIVZxIrVZyCkVZzOP~VZCLVZ@VZS VZL<VZIVZDVZCL VZCVZCLVZCL VZeVZCLVZCLVZQ2VZCLVZCLVZq3 VZUT VZOPVZCLVZCLVZQ VZxC3VZnٚVZls3VZJVZKVZTRVZXq!VZS@"VZC#VZm33$VZJ3%VZN &VZK'@'VZJ(VZ)b VZCL*VZ GgRVZ CL-VZ~ VZCLVZCL0VZt 2VZGE3VZJR4VZF/VZOP6VZ]VZCL8VZFVZ"CL:VZ$Ci(VZ'CL@XVZ?@gvVZ@BUZVZAEVVZCAVZl@XVZm@uVZnEVZpzJVZq@ VZtPVZvIVZwK()VZzr VZ|LVZB VZLvVZ}(VZLVZL<VZg+ VZKVZEʘVZCLVZEVZDְVZOPVZCLVZCLVZCLVZCLVZCLVZCLVZCLVZXVZPgVZ`3VZMHVZkHVZMHVZCLVZCLVZCLVZCLVZCLVZCLVZCLVZ]VZCLVZCLVZCLVZNVZCLVZCVZCLVZCLVZw| VZCLVZCLVZCLVZOP$VZJy%VZI&VZOVZCL*VZG,VZS,VZOP.VZLVZCLVZCLVZOPVZCL3VZmߔ4VZA{6VZH&g7VZ Hs38VZ OY9VZ5q:VZ7o&f;VZ8rVZ;S?VZW @VZ?OPDVZ@AnqEVZAG!hFVZBEܜGVZCO;VZFSIVZGY#3VZIRVZJ_6 VZMdVZNy VZOg VZPg VZQ{ VZS{H !VZVCL VZWCLVZXCLVZZ`P VZ]CLVZ_o+ VZ`x VZbEZVZckK VZeu VZhsF VZkCLVZlCLVZmCLVZnCLVZCLVZGVZH|VZ{ VZl;1VZ],`VZq^ VZuZ VZj VZr0VZDICVZOVZ@VZXqLVZB VZQ VZE2VZGVZwS VZP VZl VZ`0VZVVZ^VZCLVZCLVZCLVZCLVZCLVZOPVZOPVZCLVZCLVZIEVZHFVZH*VZ G VZ L=VZ L=}eVZeR:}fVZ{ MVZ $t NVZ &C5OVZ (CPVZ )CWQVZ ,V#RVZ -OSVZ . TVZ /CDVVZ 0b XVZ 2DHOYVZ 4Etk[VZ 5\VZ 6^^VZ ac7_VZ boc `VZ cAaVZ fbVZ g~\*cVZ hwuVZ jCLVZ kCLVZ lCLgVZ ol( VZ qCLVZ sCLVZ tCLVZ uCLmVZ xFnVZ {{yoVZ |Z't VZ ~CLVZ CLVZ CLVZ CLVZ CLVZ CLVZ CLwVZ BRxVZ GyVZ NzVZ OP{VZ bwx |VZ ^k}VZ rǃ~VZ ]VZ BVZ U VZ T!VZ WL"VZ Aٚ#VZ @ $VZ J%VZ N&VZ J'VZ I(VZ ~ VZ CL*VZ GQVZ CL-VZ }h VZ CLVZ CL0VZ s 2VZ G-3VZ I'4VZ FBVZ OP6VZ ]VZ CL8VZ FݱVZ CL:VZ CDVZ CLVZ 3S`?VZ 4G@VZ 5FAVZ 6W5VZ 7OPDVZ 8A>EVZ 9GFVZ :EGVZ ;OK$VZ >U)VZ ?ZəVZ ATVZ B_=L VZ EdVZ Fyq VZ Gg VZ Hgd VZ I{in VZ K{ !VZ NCL VZ OCLVZ PCLVZ R]b VZ UCLVZ Wof VZ FVZ EZVZ jb VZ VZ s VZ CLVZ CLVZ CLVZ CLVZ CLVZ GSVZ HMVZ {= VZ kVZ ],`VZ p- VZ u' VZ j VZ pLVZ D!pVZ RmVZ @)VZ ZVVZ B. VZ R4VZ EeVZ G)VZ w VZ O VZ k" VZ `|VZ T`VZ ^VZ CLVZ CLVZ CLVZ CLVZ CLVZ OPVZ OPVZ CLVZ CLVZ I$VZ HVZ HVZ GUVZ LVZ L}eVZ R\}fVZ |A MVZ uwo NVZ COVZ HC2PVZ ICjQVZ LV *RVZ MO6SVZ N@TVZ OCVVZ Pb XVZ RD?MYVZ TE8[VZ U \VZ VW ^VZ Ydx_VZ Zo `VZ \C KaVZ ^B=qbVZ _@cVZ `xǯVZ bCLVZ cCLVZ dCLgVZ glV VZ iCLVZ kCLVZ lCLVZ mCLmVZ pGvnVZ s|goVZ tY VZ vCLVZ wCLVZ yCLVZ zCLVZ {CLVZ |CLVZ }CLwVZ AuxVZ H>yVZ OaHVZ OP{VZ aUV |VZ _}VZ saA~VZ ]VZ BLVZ G]VZ ~z ~VZ OPVZ VP |VZ CLVZ EVZ G7VZ GVZ L;[uVZ CLtVZ CLVZ p. VZ l9X VZ h7L 5VZ Jb6VZ JcVZ CLVZ CL:VZ K!;VZ GEEOPfVZ@^VZACLhVZCAiVZDTFBVZFOPkVZGSq lVZIp33mVZJo{nVZKD*=oVZvcHpVZxaQ qVZyZp rVZz]z sVZ{LwtVZ|MzuVZ}C+zVZ~OPVZCLxVZAeyVZJ ezVZGQVZOPVZCL}VZF~VZIVZI4VZCVZOP~VZCLVZ@VZS VZN3VZMXVZHVZCL VZBVZCLVZCL VZhVZCLVZCLVZ~; VZCLVZCLVZp3 VZS VZCLVZCLVZCLVZQ+ VZwfVZpVZləVZJ}#VZGHVZKVZKc!VZRY"VZA3#VZls3$VZJb%VZNL&VZK)'VZIλ(VZ}~ VZCL*VZF/VZCL-VZ@nVZCLVZCL0VZt4 2VZG3VZI4VZFVZOP6VZ]VZ CL8VZ FݱVZCL:VZC'VZCLEVVZ@OPVZBCL@VZEMEAVZGHnBVZHFVZJCLVZKCLEVZM| HVZOƛIVZRie! VZU@VZV@uVZW@.VZXBVZYEVVZZA$ZVZ[@uVZ\AKVZ]EVZ_zVZbEVVZcOVZfHVZgK3VZjr VZlLVZoB VZpQ<_VZr|]VZsLVZtLGVZwg+ VZKVZEʘVZCLVZEPVZDVZOPVZCLVZCLVZCLVZCLVZCLVZCLVZCLVZYgVZNgVZac4VZMHVZkHVZMHVZCLVZCLVZCLVZCLVZCLVZCLVZCLVZ]VZCLVZCLVZCLVZMVZCLVZCʑVZCLVZCLVZv( VZCLVZCLVZCLVZOP$VZJJ%VZI&VZ L"VZ CL*VZG,VZUiVZOP.VZLVZCLVZCLVZOPVZCL3VZm4VZA{6VZ E7VZ!E98VZ"K`9VZ$pD:VZ&p`;VZ'qfVZ*T?VZ+G@VZ,ExAVZ-WVZ.OPDVZ/@zZEVZ0GFVZ1EDGVZ2OdeVZ6UFgVZ7ZVZ8TVZ9^ VZx VZ?g VZhgX VZizu VZj{ !VZmCL VZnCLVZoCLVZraЊ VZuCLVZwnn VZxA/VZyD- VZzi/3 VZ{A0 VZ}s VZCLVZCLVZCLVZCLVZCLVZFVZHVZ{LS VZlqVZ](VZo VZs VZjq7 VZqC3VZC=VZUȃVZ@6uVZ\pVZB) VZPVZEVZG7VZw3 VZTj VZi VZ`3VZVVZ^VZCLVZCLVZCLVZCLVZCLVZOPVZOPVZCLVZCLVZIVZHVZHVZG$VZLVZL}eVZ{YZ}fVZ |C MVZ7uZU NVZ9COVZ:C EPVZ;BtQVZ>V^RVZ@OWSVZAAOTVZBBqVVZC` XVZDDHYVZFEh[VZGg?\VZIXG^VZLeB_VZMo `VZODkaVZPA4bVZQ@\cVZRyVZUCLVZVCLVZWCLgVZZmEe VZ\CLVZ]CLVZ^CLVZ_CLmVZcHvnVZf|oVZgXn VZiCLVZjCLVZkCLVZCLVZCLVZCLVZCLwVZzfgxVZG >yVZSVZOP{VZ_ |VZ_K}VZs2~VZ]VZCVZGqVZ}~ ~VZOPVZPB |VZCLVZEVZFVZF=VZPQuVZCLtVZCLVZq VZk\) VZg 5VZJy6VZJ]cVZCLVZCL:VZJ3;VZQ[VZT?VZG{a@VZE:AVZWVZOPDVZ@nEVZ G&FVZ!EɔGVZ"OfVZ%Q`VZ&W|VZ'QLVZP^ VZSbVZTw` VZVh6 VZWgx VZXzT VZYz[ !VZ\CL VZ]CLVZ^CLVZ`\U VZdCLVZfmi VZgw4 VZhCVZihb VZj}*VZksU: VZoCLVZpCLVZqCLVZrCLVZsCLVZvFVZwHVZz{in VZ}lVZ](VZn VZrn VZjb VZqVfVZCyVZTԙVZVZ^VZB VZPhVZEVZGAVZw VZLQ VZvU VZ`3VZVfVZ^VZCLVZCLVZCLVZCLVZCLVZOPVZOPVZCLVZCLVZHVZHVZHgVZG5VZLVZL}eVZjW}fVZ}RJ MVZ&sj NVZ(CzOVZ)BLPVZ*BbkQVZ-U+RVZ.O SVZ0q^ TVZ1APVVZ2_x XVZ3D6KYVZ5E[VZ6\VZ7XH^VZ;d6_VZCaVZ?AW bVZ@@xRcVZAx VZCCLVZECLVZFCLgVZIl VZKCLVZLCLVZMCLVZNCLmVZQHB$nVZ}})oVZ~V VZCLVZCLVZCLVZCLVZCLVZCLVZCLwVZQxVZF{yVZPVZOP{VZ]fg |VZapE}VZs~VZ]VZC1VZF" VZ} ~VZOPVZQY@ |VZCLVZEaVZF{)VZFƃVZHuVZCLtVZCLVZr( VZkw VZhP 5VZJ6VZJH|VZCLVZCL:VZI;VZPEVVZ@PVZBHVZCK?VZFr ZBLZBnB ZBRIZB{ZBK3ZB LZB g+ ZBKZBEʘZBCLZBEHZBDOZBOPZBCLZBCLZBCLZBCLZBCLZB CLZB!CLZB$PgZB%Q0ZB&YgZB'kHZB(xZB)kHZB+CLZB-CLZB.CLZB/CLZB0CLZB1CLZB2CLZB3]ZB4CLZB5CLZB7CLZB8MZB:CLZBeCmZBfCLZBgCLZBivI ZBlCLZBmCLZBnCLZBqOP$ZBrJs3%ZBsI&&ZBuLZBxCL*ZB{G,ZB|U3ZB}OP.ZB~L/ZBCLZBCLZBOPZBCL3ZBm4ZBA6ZBFY7ZBA,8ZBC339ZBp:ZB@3;ZBwZBT?ZBGd@ZBEٞAZBX9AZBOPDZBAN|EZBF)FZBEEGZBO-ZBS@ZBYZBRZB^v+ ZB^DZBw^ ZBhq7 ZBgX ZBy ZBzcz !ZBCL ZBCLZBCLZBbE ZBCLZBmYk ZBzT ZBC{ZBhS ZB[GZBs8 ZBCLZBCLZBCLZBCLZBCLZBFZBH|.ZB{ ZBkZB](ZBnn ZBrz ZBjE^ ZB.rZB1CIZB2SZB4ZB5`ZB7B ZB:P6RZB;EZBbZB~RcZBwZBCLZBCLZBCLgZBmF/ ZBCLZBCLZBCLZBCLmZBGnZB}goZBUV ZBCLZBCLZBCLZBCLZBCLZBCLZB CLwZB AffxZB ERyZBRpZBOP{ZB\fg |ZBaH}ZBu=~ZB]ZBCxZBF3pZB}u% ~ZB!OPZB$S |ZB'CLZB*EZB+F9ZB,FZB/HSuZBYCLtZB[CLZB]s ZB^k- ZB_h 5ZBaJ6ZBbJA6ZBdCLZBeCL:ZBgJBU;ZBhL/!ZBJP3"ZBKzff#ZBL_$ZBMJ%ZBNN%&ZBOJ'ZBPI(ZBQ@UZBSCL*ZBUEZBXCL-ZBZFv ZBCLZBCL0ZBs 2ZBF3ZBI4ZBFZBOP6ZB]ZBCL8ZBFZBCL:ZBBZBCLIZB]^ ZB@ZB@ZBA^vZBC4ZBEVZBAOZB@ZBAҩZBEZBzJZBEVZBOZBHZBKmZBr ZBLZBnB ZBLvZB{HZBK-ZBLdZBg+ ZBKZBEʘZBCLZBEZBDRZBOPZB CLZB CLZB CLZB CLZBCLZBCLZBCLZBYgZBMgZB^gZBQ\)ZBOpZBGHZBCLZBCLZBCLZBCLZBCLZB!CLZB"CLZB#]ZBLCLZBMCLZBNCLZBPMZBQCLZBTCUZBVCLZBWCLZBYy] ZB\CLZB]CLZB^CLZB`OP$ZBaJfy%ZBbI&&ZBePUZBhCL*ZBjGn,ZBlVZBmOP.ZBnLÂZBoCLZBpCLZBsOPZBuCL3ZBxmC4ZBzA6ZB|Kf7ZB}C8ZB~Dfg9ZBq.:ZByg;ZBugZBT"?ZBGO@ZBEϣAZBWZBOPDZBBEZBFڊFZBEGZBOSZBOZBTVgZBO<ZB^Y ZB_5ZBwp ZBh ZBg3 ZBy@Y ZBz)B !ZBCL ZBCLZBCLZB]! ZBCLZBn`* ZBEZBD_ZBh ZBٝ+ZBs T ZBCLZBCLZBCLZBCLZBCLZBFLZBHmZB{ ZBkSZB](ZBnQ ZBr@3 ZBj(# ZBrٚZB"C<ZB#P_ZB$PZB%b+ZB'B ZB+PZB,EZB-H ZB0wna ZB1L< ZB4lw ZB5` ZB7V3ZB8^ZB9CLZB:CLZB;CLZBCLZBAOPZBBOPZBDCLZBECLZBIHZBJH~ZBKGeZBLG?ZBOLZBzL}eZBN}fZB]ڼ MZBs. NZBCj@OZBC}PZBBSQZBU-RZBOtSZBp^ TZBAEVZB^T XZBDHYZBEW7[ZBW\ZB^^ZBds_ZBo `ZBB"aZB@bZB@xRcZBwfgZBCLZBCLZBCLgZBlƲ ZBCLZBCLZBCLZBCLmZBGHnZB~s4oZBUfh ZBCLZBCLZBCLZBCLZBCLZBCLZBCLwZBQxZBHyZBQZBOP{ZB]wx |ZB_O}ZBuW>~ZB]ZB C9ZB FZB},l ~ZBOPZBT |ZBCLZBBEi[ZBDEZBEFaZBHM<uZBJCLtZBKCLZBNst ZBOkhs ZBPht 5ZBRJs36ZBSJ8 ZBUCLZBVCL:ZBYL;ZB\H<z@#ZB?]$ZB@J%ZBANQq&ZBBJ\z'ZBCI`(ZBn} ZBqCL*ZBsEWZBvCL-ZBx@ZB{CLZB|CL0ZB~t!N 2ZBFٞ3ZBIv4ZBFzZBOP6ZB]ZBCL8ZBFZBCL:ZBBnZBCL&4ZBA{6ZBB37ZBx8ZBAf9ZBqW:ZBA;ZByffZBSU?ZBG3@ZBEAZBVZBOPDZBBEZBFKFZBEGZBOB|ZBQZBUZBP,ZB] ZBd"AZBwZ ZBh ZBhS ZBxP ZByz !ZBCL ZBCLZBCLZBb  ZBCLZBl9 ZB~] ZBDuZBg ZBћ%ZBr+ ZBCLZB CLZB CLZB CLZB CLZB FZB HcZB z[ ZB knZB ](ZB nB ZB rk ZB j ZB ns3ZB CZB R:ZB ZB dZB Bs3 ZB #OZB $F;eZB %S$ZB (wQ? ZB )Vҍ ZB ,o3 ZB .`ZB /VZB 0^ZB 1CLZB 2CLZB 3CLZB 5CLZB 6CLZB aOPZB bOPZB dCLZB eCLZB iHZB jHwZB kG۵ZB lG0ZB oLZB pL}eZBk}fZBN@0  MZB u. NZB ChOZB CPZB B>QZB URZB OmSZB o+ TZB AVZB ^[G XZB CEYZB ENt[ZB Ǹs\ZB M^ZB eS_ZB p9 `ZB AaZB @\bZB cZB wfgZB CLZB CLZB CLgZB lFg ZB CLZB CLZB CLZB CLmZB G>nZB }oZB T ZB CLZB CLZB CLZB CLZB CLZB CLZB CLwZB ~xZB FyZB SZB OP{ZB ] |ZB bج}ZB u~ZB ]ZB *C#ZB +GZB .}~ ~ZB 0OPZB 3Y_ |ZB 5CLZB 9ElZB :EZB ;F~ZB >OuZB @CLtZB ACLZB Dt ZB El33 ZB FhbN 5ZB HJ{a6ZB IJ+gZB KCLZB LCL:ZB NK\W;ZB OEZB R\?ZB Gi@ZB EfAZB UŢZB OPDZB BPEZB FFZB EGZB NzZB OZB UZB PIZB ]l ZB dZB v ZB hJ ZB hb ZB x+ ZB y1 !ZB CL ZB CLZB CLZB ]+ ZB CLZB ll ZB up ZB D_ZB g ZB >ZB r ZB CLZB CLZB CLZB CLZB CLZB FlZB HMZB z ZB k ZB ](ZB nn ZB rz ZB i ZB r3ZB CZB OZB ~J. ZB@CLZBACL:ZBDL;ZBFQibGZB\(HZBI LZBw4MZBqfgNZBDOZByN PZBy1 QZBF[GRZBHVFTZBFtUZBG0~VZBDZBOPZBCLYZB@AZZB@JeZBOPZBCL]ZBn% ^ZB_ZBOPZBCLaZBO)ZBOPZBCLdZBDZBOPfZB^ZBCLhZB@iZBMZBOPkZBQv lZBj=qmZBinZB@{oZBcOpZB`\) qZBZ= rZB] sZBLPtZBMuZBBZBOPZBCLxZBAAhyZBP<zZBF5ZBOPZBCL}ZBF7 ~ZBIdZBHrvZBC:ZBOP~ZBCLZB@ZBS_ ZBIZBFZBChZBCL ZBByZB CLZB CL ZB 'ZB CLZBCLZB@ZBCLZBo ZB?Pyz ZBBCLZBCCLZBDCLZBGQ7I ZBHmvfZBIafZBJc&fZBMG/ZBOMW ZBPSuZBQS!ZBRI"ZBSLl#ZBTvf$ZBVJ%ZBWN&ZBXJ'ZBYJ#(ZB\}I ZB^CL*ZB`EsZZBcCL-ZBe@bZBgOPZBiCL0ZBku 2ZBmF3ZBnI?C4ZBoFbZBpOP6ZBr]ZBtCL8ZBvEZBCL:ZBB\ZBCLZBRw?ZBFX@ZBE AZBU&ZBOPDZBBEaEZBFFZBEm*GZBNMZBQZBW4ZBQZB\ ZBcZBw^ ZBh ZBh ZBw3 ZBx !ZBCL ZBCLZBCLZBaD ZBCLZBm ZBCZBD%ZBh ZBE ZBr ZBCLZBCLZBCLZBCLZBCLZBFȝZBH;ZBz$ ZBjTZB](ZBof ZBr ZBi ZBpfZBCoZBTfzZB}jZBhZBB ZB3NdZB4HtZB5gZB8wl ZB9V1 ZBZBSV?ZBFϥ@ZBEAZBVWZBOPDZBB"EZBFq2FZBEUGZBNZBJZBO4ZBK3ZB\0 ZBbXZBwM ZBhׄ ZBh ZBw4 ZBxP !ZBCL ZBCLZBCLZB]n ZBCLZBmYk ZBDuZBCpiZBhb ZB{LZBrk ZBCLZBCLZBCLZBCLZBCLZBFZBH/ZBz$ ZBj2ZB](ZBm7 ZBp3 ZBi ZBqfZBCZB SjZB!}%ZB"jZB$Bf ZB'O/ZB(JOZZB)uZB-vI ZB.K+ ZB1l ZB2bfZB3W ZB4^ ZB5CLZB7CLZB8CLZB9CLZB:CLZB=OPZB>OPZB@OPZBBCLZBEH.2ZBFHtZBGGZBIG]ZBLLZBOL}eZBW;}fZB,@ MZBu NZBCYOZBCPZBAQZBURZBOfSZBo; TZBB6VZB`Nq XZBCVYZBE.U[ZBe\ZB_^ZBcm_ZBpq `ZB@ۘaZBDbZBBLcZBZBCLZBCLZBCLgZBl# ZBCLZBCLZBCLZBCLmZBFnZB|oZBWr ZBCLZBCLZBCLZBCLZBCLZBCLZBCLwZB{xZBF\yZBO{ZBOP{ZB_ |ZB`%0}ZBtH~ZB]ZBBZB FWZB } ~ZBOPZBP%\ |ZBCLZBEVZBEh{ZBFZBDMCuZBGCLtZBHCLZBJs1' ZBKk ZBLh1' 5ZBOJJ6ZBPJZBRCLZBSCL:ZBUJ|1;ZBVL ZB2j33ZB3``ZB4avgZB7EZB9RZB:XZB;Yff!ZB`L$ZB?J%ZB@N6&ZBAJ'ZBBKj(ZBE| kCL*kE*kCL-kA+k OPk CL0k u 2kFR3kH4kEukOP6k]kCL8kDkCL:kBckCL<k!v =k"EGk$OPk&CL@k)M+Ak*GbBk+Jk-CLk.CLEk0x Hk2}Ik5a0 k8AKk9@۶k:B8Pk;DVkd@ukfA{kg@۶khCkiEkkxdknEVkoOkqI~krK/qkur kwLkzl5h k{O/k}zk~LkLkg+ kKkEʘkCLkEEDkDkOPkCLkCLkCLkCLkCLkCLkCLkNgkL3kPgkQkLQkO34kCLkCLkCLkCLkCLkCLkCLk]kCLkCLkCLkMtkCLkCʑkCLkCLkxe kCLkCLkCLkOP$kJ8 %kI&kKkCL*kGd,kVkkOP.kMkCLkCLkOPkCL3kl4kA{6k@7k,[8k-efg9k0p8:k2r;k3jg<k4lk5OP>k6TA?k7Fg@k8EFAk9V_k:OPDk;AcEkNkAKVfkBOvfkDJ4kE\ kH^NkIv kJhׄ kKh" kLv kMx:D !kQCL kRCLkSCLkU` kXCLkZl8 k[x k\Cwk^g k_H@9 k`rN kcCLkdCLkeCLkfCLkCLkF|kHkz kjlk](kj kn% kiX ko3kCvskSk|(klkB kNBCkLvk@kv( kT. ks k`kW k^kCLkCLkCLkCLkCLkOPkOPkOPkCLkH kHr5kGkG'kLkL}ek_\cS}fZBJ Mks NkCT%OkCPkAQkURk O|Sk!oK Tk"BVk#_ Xk$CCOYk&E0H[k(\k)U^k,f@_k-pr `k.@uakXAbkY@)ck[xgk]CLk^CLk_CLgkbl( kdCLkeCLkfCLkhCLmkkFnkn{gokoW4 kqCLkrCLksCLkuCLkvCLkwCLkxCLwk{\xk|F34yk}Q=qk~OP{k_fg |k`}ks~k]kB`kF\k} ~kOPkO` |kCLkEqkE6ukFȯkOukCLtkCLks' kkC kh$ 5kJzy6kIkCLkCL:kF:;kI<k[u?kU kOPkCLBkuS[ CkC4<DkBHEkiRFk@{GkiRHkI LknMkENk`=qOkz)B Pky QkFiRkH2TkFUkF VkDBkOPkCLYk!| Zk"' k$OPk&CL]k(l8 ^k*ZYk+OPk-CLak/Mk1OPk2CLdk4Bnk6OPfk8^k9CLhk;@ikOPkk@Q lkAl=qmkBknkC} okFb0pkH_ qkIX33 rkJ\L skKLtkLMukMBYkNOPkPCLxkR@gvykSL&zkTFkVOPkXCL}kZE~kHkGkBokOP~kCLkFv kS40 kA@ku`krkCL kAkCLkOP kGekCLkCLkLkCLkOPkme kQs kCLkCLkCLkQ kjkaPkb6fkEXkSkYffkY!kC"kl#k[33$kJ%kN1&kJJ'kKF/(k|ƚ kCL*kDkCL-kAAhkOPkCL0ktY 2kFW3kHض4kDkOP6k]kCL8k Dk CL:kBUZkCL<kvh. =kE2kOPkCL@kM0AkGBkJ]k CLk!CLEk#x HkMrIkPk kSAkT@=kUBFkVDkW@kXA kY@=kZC=k\Ek^xkaEVkbOkdI%keK&Xkhr kjLkmk knLvkpz_kqLkrLûkug+ kwKkyBWk{CLk~EkDkOPkCLkCLkCLkCLkCLkCLkCLkRlkM#3kYgkNzkL34kOkCLkCLkCLkCLkCLkCLkCLk]kCLkCLkCLkMkCLkCykCLkCLkxe kCLkCLkCLkOP$kJ+g%kIӨ&kHNkCL*kFk,kVkOP.kM!kCLkCLkOPkCL3kl4kA{6ku&g7kr8kpY9k!o:k#xg;k$l <k%tgk&OP>k'S::?k(F@k)EjAk)Uk*OPDk,AEk,F%Fk-E-Gk.Nsk1F3k2Kək3G@k5[[X k8`pk9wZ k:h" k;hׄ kMk[qNkuOkzcz Pky]w QkFqRkHTkF\cUk FVk D1dk OPk CLYk|} Zk7 kOPkCL]klo ^kakOPkCLakOOkOPk CLdk"Cak$OPfk&^k'CLhk)^ ik*Uk,OPkk-Qy lk.lffmk0mQnk1qq ok4b^pk6] qk7Y rk8Z. sk9Lutk:Muk;B6kCLxk@@JeykAJTszkBFTklOPknCL}kpE~krHb-ksGktBkuOP~kwCLky~ k|R k}Hk~BdkxVfkCL kAkCLkOP kIHkCLkCLkIkCLkOPkn kQ% kCLkCLkCLkP kmgk`ikakDkN=qkTzkU{!kZs3"kr#khff$kJ5%kMl&kJ'kKOI(k}f kCL*kDkCL-kAekOPkCL0kt4 2kF|.3kHS4kD kOP6k]kCL8kDkCL:kA:kCL<kv =kE*kOPkCL@k M Ak GBk A:k5CLk6CLEk8y Hk:CIk;qJ k=A$Zk?@k@BrdkAE kB@.kCAkD@kECwkFEkHykKEVkLOkNI~kPK"kSr kULkXll kYQk[zk\Lk]L`k`g+ kbKkcPkeCLkhENMkiDkjOPklCLknCLkoCLkCLkCLkCLkCLkYgkQ3kYgkNRkNRkPffkCLkCLkCLkCLkCLkCLkCLk]kCLkCLkCLkMtkCLkCakCLkCLkwt kCLkCLkCLkOP$kJ%kI@&kOkCL*kF,kVvkOP.kMkCLkCLkOPkCL3k l_4k A{6k dY7k \ff8k o9k o :k i`;k j<k gk OP>k S?k Fnx@k EvAk Vh.k OPDk A_Ek FFk E7Gk NY]k Dٚk IFgk E0k [y k "dk #w k %h" k &i k 'u} k (wQ? !k +CL k ,CLk -CLk /`x k 3CLk 5m<8 k 6GCk 7FxCk `hr k aJ k brs k eCLk gCLk hCLk iCLk jCLk mFk nHk qz k tjk w](k xhE^ k yl~k k ziL k }pfk CEk UVk {k qk B k Nߞk Ok Cg(k vt k S k {@ k a33k Zk ^ k CLk CLk CLk CLk CLk OPk OPk OPk CLk Gk HgRk H0k Gek Lk L}ek a^"}fkvP Mk tTg Nk COOk C^Pk A/Qk UZ`Rk OSk n Tk BVk ` Xk CFYk )E[k *A\k +_^k .b%_k /p `k 1@uak 3bk 4ck 5vk 7CLk 8CLk 9CLgk =k k ?CLk @CLk ACLk BCLmk EF 'nk H|ok IV k LCLk MCLk NCLk OCLk PCLk QCLk RCLwk U@xk WI{yk XNk YOP{k \_ |k ^a44}k _tM~k a]k BCk Fk ~OI ~k OPk S |k CLk Egk EAUk Fk I˔uk CLtk CLk s+ k kbN k h$ 5k J. 6k J$"k CLk CL:k Cpi;k E<k Y?k  k OPk CLBk uZ Ck @ Dk AEk [QFk y{Gk X34Hk H! Lk xzMk fNk NOk z Pk y Qk FxCRk HTk F@NUk FVk DJk OPk CLYk |= Zk ~z k OPk CL]k lR ^k dbk OPk CLak P2k OPk CLdk CZk OPfk ^k CLhk : ik TKk OPkk Qѫ lk m=qmk nnk o ok #b^pk %` qk &Z rk '\k sk (Lytk )Muk *Bk +OPk UCLxk W@C yk XQ?zk ZF(k [OPk ]CL}k _E~k aH:?k cGXTk dBEk eOP~k gCLk i~ k kR6 k l~k mu9k ng)k pCL k rAZk uCLk xOP k yJ{k {CLk |CLk ~Hؒk CLk OPk n k P k OPk CLk CLk P k mlk `k b3k DV&k XQk ^34k ^)!k R33"k u&g#k `$k J%k M/&k K%o'k K"(k },l k CL*k Dk CL-k Ak OPk CL0k tU 2k Fx3k H4k Dk OP6k ]k CL8k Dk CL:k Ak CL<k v =k E k OPk CL@k !MAk "GBk #Bk %CLk &CLEk (w3 Hk *~`sIk -rI} k 0A2k 1AKk 2Bk 3E9[k 4AKk 6Ak 7@k 8Ck 9Ek ;yk >EVk ?Ok AIk BK"k Er k GLk Jlo k KLvk Mzkk NLk PL4k Sg+ k UKk VYqk CLk Ek Dfk OPk CLk CLk CLk CLk CLk CLk CLk Ypk Pgk ^k MHk O34k NRk CLk CLk CLk CLk CLk CLk CLk ]k CLk CLk CLk Mk CLk Ck CLk CLk w k CLk CLk CLk OP$k J%k Ig&k OWk CL*k FY,k V1k OP.k Mْk CLk CLk OPk CL3k ld4k A{6k ~f7k E8k uf9k nu]:k m3;k i<k h33k OP>k S{?k FU@k EdAk Vk OPDk AEk EFk DGk Nk D3k Ik E9k Z? k d>k wZ k h k i k up k w !k CL k CLk HCLk J] k MCLk Oll k P}f k RFk ShS k TI k Ur k XCLk YCLk ZCLk \CLk ]CLk `F k aHC k dz k fjk i](k jg k ll& k mi>? k ppfk sCk tUk u{^ik vtk xB k |Nk }Q$k ~Ck v k L k xff k `k ZC3k ^ k CLk CLk CLk CLk CLk OPk OPk OPk CLk Gk Hj k HJMk G\k Lk L}ek T^ }fk  Mk u Nk CKOk CPkAsQkU;RkOmSko TkAVk_ XkCEYkEf[k\kU[^k!c_k"p `k#@ak%@aHbk'~=qck(wk*CLk+CLk,CLgk/kl k1CLk2CLk4CLk5CLmk8Enk;|gokCLk?CLk@CLkBCLkCCLkDCLkECLwkH{xkIFykJUQktOP{kw^ |ky`:}kzuĦ~k|]kBGkGk} ~kOPkN2 |kCLkEi[kEkFkNukCLtkCLks kkĜ kho 5kJ16kJTLkCLkCL:kDS;kQ<k[1?k7 kOPkCLBku Ck~DkAEk]FktGk[HkGh Lkx\*Mkf=qNkN\Okz Pky QkFxCRkG̶TkF(UkFs VkDbkOPkCLYk}X Zk~# kOPkCL]kl5h ^k]kOPkCLakMkOPkCLdkCkOPfk^k CLhk r ik SޮkOPkkQ lkiRmkk nknH ok>apk@^G qkAY rkB[# skCL_tkDMrukEAkFOPkHCLxkJ@JeykKPưzkLFkNOPkPCL}kREl~kTHUkUG'`kVB^kWOP~kYCLk[ k^R k_p<k`ləkaaPkcCL keA"khCLkkOP klJ knCLkoCLkqGoktCLkwOPkmJ kN kCLkCLkCLkPxo kq6fkc9kc9kD kRQkX\kYff!kX"kt#kg33$kK%kMp&kKV'kK(k| kCL*kDkCL-kAkOPkCL0kt 2kFyv3kH4kDkOP6k]kCL8kDGkCL:kAk CL<k v =k DZkOPkCL@kMAkGBkM"#kCLkCLEkv HkKIk]& k AAhk!AKk"Bnk#Edk$A2k&Ak'AKk(Ck)Ek+xMk.EVk/Osk1I~k2Kk5r k7Lk:m k;S>k=zk?LkhLkkg+ kmKkn^kpCLksEktDkuOPkwCLkxCLkyCLkzCLk|CLk}CLk~CLkPgkO4kYgkMkNkNzkCLkCLkCLkCLkCLkCLkCLk]kCLkCLkCLkMkCLkCkCLkCLkwt kCLkCLkCLkOP$kIA%kIa&kKkCL*kFA,kV:kOP.kNkCLkCLkOPkCL3kl4kA{6kk7kq8klL9kmq:knFg;ki<kiS3kOP>kSf*?kF9@kERwAkV0kOPDkA͓EkEtFkDGkN~-kFkJkFfkZV] kdJkv; kh k0i k1t k3v( !k6CL k7CLk8CLk:_ k=CLk?l~k kA@۶kBETkCg3 kDH7 kEq kHCLkICLkJCLkLCLkMCLkPEkQHmkTz kVjkY](k[g k\l k]i! k`p)kcC kdT{Zkez4AkfuIpkiB\ kNkRwkCkvR kRh kuw k`k[fk^ kCLkCLkCLkCLkCLkOPkOPkOPkCLkGkHekHwkGkLkL}ekD\چ}fk@;$ Mkt NkCHOkCPkAfQkURkOtSkn TkA>Vk_M Xk CEYk D[k \kR^kf_kq9 `k@1akbkBckvkCLkCLkCLgkkn k!CLk#CLk$CLk%CLmk(Eunk+|ok,UZ k.CLk/CLk1CLk2CLk3CLk\CLk]CLwk`{=qxkaF{ykcQzkdOP{kg^ |ki`}kjr~kl]koBVhkqGNkt}; ~kvOPkyO` |k{CLk~E5kD'kF\kMKukCLtkCLks kk kh7L 5kJ/ 6kJkkCLkCL:kC~;kQs<kZز?k7 kOPkCLBkv4 Ck|bDkA̝Ek]zFktGGkgHkG~ LkYMkJNkj\Ok{/9 Pky QkFRkGTkF|UkF[|VkDq8kOPkCLYk}; Zk~# kOPkCL]kl ^kSkOPkCLakJkOPkCLdkBEkOPfk^kCLhkFv ik%Q5k&OPkk(Q lk)o\mk*o{nk+q ok.aqpk0]= qk1XR rk2[Q sk3LMHtk4Muk5Axk6OPk8CLxk:@&yk;N8zkOPk@CL}kBE~kDGlkEFokFBkHOP~kJCLkL~ kNR2< kOrs3kPi3kQ[kSCL kUB8PkXCLk[OP k\K&k^CLk_CLkGkCLkOPkm kOQ kCLkCLkCLkP9 klk^lk_kC.kPkWkkWf!kD"kl&f#k]$kK%kM &kKT'kJ(k|= kCL*kDXkCL-kAkOPkCL0ks 2kFt3kHt4kDkOP6k]jkCL8kCBkCL:kAkCL<kv( =kDkOPkCL@kM AkGoBkL kCLk CLEk w_ Hk }CoIkh kAAhkAkBkEkAAhkAkAkDGkEkxk EVk!Ok$Hk%KmkPr kRLkUm4 kVPstkXzkYLkZL~k]g+ k_Kk`ackbCLkeE?kfDkgOPkjCLkkCLklCLkmCLknCLkoCLkpCLksNgktM3ku^FfkvMffkwKkyPHk{CLk|CLk}CLk~CLkCLkCLkCLk]kCLkCLkCLkMkCLkCIkCLkCLkw_ kCLkCLkCLkOP$kI%kI&kHkCL*kF,kV DkOP.kN=kCLkCLkOPkCL3kl4kA6kz47k@ 8kg9kmL:kkl;kj<kgkOP>kSs?kF"7@kE@TAkVOkOPDkArEkEFkDGkNkAykE`kA\kY kbC k v; k"h k#i k$t k%vh. !k(CL k)CLk*CLk-]y k0CLk2l k3Hk4E@k5h k6E_F k7q k;CLkCLk?CLkBEkCH~kFz$ kIjgvkL](kMgn kNkd kOi kRqc3k}BkT UkyWkvLkB kN׮kSUkC kvv kM kx k`3k[ k^ kCLkCLkCLkCLkCLkOPkOPkOPkCLkGokH`kHvkG}kLkL}ek6\2}fk@Ys MktE NkC=SOkCPkB QkU RkOqbSkn TkAVk_ XkCEYkD[kI\k]$D^kd_kq8 `k@uak ~zbk |Qck ukCLkCLkCLgkk~ kCLkCLkCLkCLmkDEunkG~gokIV#A kKCLkLCLkMCLkNCLkOCLkPCLkQCLwkU{xkVDHykWPkXOP{k[_ |k]a}}k^s+~ka]kdB\1keGkh~ ~kjOPkmRa |kpCLksE ktDkuFkvF/`ukxCLtkzCLk|shs k}lV k~h7L 5kJi6kJi4kCLkCL:kBE;kO7<kY?k kOPkCLBkv- Ck}{DkAEkXQFkuGkQRHkGD LkYGMkJGNkizOk{in PkzT QkFRkG:TkEUkFBVkD|kOPkCLYk}h Zk} kOPkCL]kk/ ^kL kOPkCLakG`kOPk CLdkDJkOPfk^kCLhk)b ikOOkOPkkQk lkn =mknpnkrp ok aCpk"] qk#YQ rk$Z sk%L>tk'Muk(Ak)OPk+CLxk-@yk.L;zk/F~k1OPk3CL}k5E~k7G=k8F!k9Bk:OP~k~; kAQ kBrikCj kD[4kFCL SASCLSOP SKS CLS CLS F7 SCLSOPSn SP SCLSCLSCLSP SmlS^gS ^YS#CW(S%PS&V(S'V4!S)Hf"S*wff#S+`$S,J!%S-L&S.K()'S/J7(S2|& S5CL*S7DS:CL-SdA"SfOPShCL0Sjs 2SlFd3SmHi"4SnDSoOP6Sq]jSrCL8StCμSwCL:SyAҩS|CL<S~v( =SDYSOPSCL@SM?ASG^!BSKSCLSCLESxt HS|)ISor SAOSA$ZSBwSEWSAlSA"SA$ZSDQNSESxSEVSOSHSKSr SLSn`* SP."SzSLSLSg+ SKSbSCLSESDFSOPSCLSCLSCLSCLSCLSCLSCLSNgSLS]3SLSK\)SPffSCLSCLSCLSCLSCLSCLS,CLS-]S.CLS/CLS0CLS2MS4CLS6CԅS8CLS9CLS;x:D S>CLS?CLS@CLSBOP$SCI^%SDIf&SGQsSJCL*SMFĽ,SNVYSOOP.SPMSQCLSRCLSUOPSWCL3SZl4S\A{6S^DS47S_r8S`u9Scm7:Ser;Sfk<SgmSOP>SR̿?SF o@SE+zASUSOPDSCSESEFSDGSNSAfSE`SA3SYx S]Sv; Sh SiLl St/ Sv- !SCL SCLSCLS_ SCLSl Sz7 SEWSh(# S>Sqˈ SCLSCLSCLSCLSCLSESHoSz$ SjV]S](Sg Sk Sh& SrSBSQ'+SwQSxPS B) S O(SUsSDSvh. SPty Ss S`SZS^ SCLSCLSCLSCLS CLS#OPS$OPS%OPS'CLS+GlBS,H\pS-HS.GSYLS]L}eSSj}fk|@ MSwuK NSzC-OS{D.ZPS|B QSTRSOXmSSo TSAVS`j XSCDYSD[Ss\STL^Sc7_Sqc `S@aS~bS|cSt8RSCLSCLSCLgSk SCLSCLSCLSCLmSE*nS|oSVw1 SCLSCLSCLSCLSCLSCLSCLwSyxSEySNSOP{S_33 |S`*1}Sq~S]SBPSGwS} ~SOPSO |SCLS!DS#E!mS$FS'J"uS)CLtS*CLS-s S.k S/h 5S1I6S2JFS4CLS5CL:S7AK;S8LZ<S9Uօ?S:~ SCLBS@vS#M!SMC"SNq#SOa33$SPJ %SQL&SRK-'SSJ(SV|= SYCL*S[DS^CL-S`AfSbOPSdCL0Sfsc 2ShFM3SiH`4SjD_SkOP6Sm]jSnCL8SpC4SsCL:SuASxCL<SzwB =S{DS}OPSCL@SLwASGpJBSB3SCLSCLESy HSDISs5 SA^vSA2SBSESASA"SA2SDSSESySEVSOPSHSKSr SLSB SPeSzeSLSLٛSg+ SKSd7wSCLSEUSERSOPSCLSCLSCLSCLSCLSCLSCLSNgSNgS`9SN\)SKSMSCLSCLS!CLS"CLS#CLS$CLS%CLS&]S'CLS(CLS)CLS+NS-CLS/C<S1CLS2CLS4y{ S7CLS8CLS9CLS;OP$S=I%S>I&S@N"SCCL*SFF,SGVSHOP.SIM֯SKCLSLCLSNOPSxCL3S{l64S}A6S@Y7Sl8Sk49Smu:Sjg;Skff<Sc3SOP>SS??SE@SE!ASV5SOPDSHs<ESE|FSDGSNSAffSEɚSASX+ Sa3Sv Si\ Sii Ssl Su} !SCL SCLSCLS^y SCLSl SDSB\Sh SܿvSq^ SCLSCLSCLSCLSCLSE$SHMSzr Sj#S](SgJ Sk Sh SmSBSOSv:Sz=pSB SO=oSWI9SDS vY S P* Snb" S`SYS^ SCLSCLSCLS@CLSACLSDOPSEOPSFOPSICLSLGRSMHVSNH(SOGSSLzSTLz}eSV}fS- MSos NSqCOSrDPSsB^QSvTRSwO;SSxo TSzAmVS{`y: XSD GYSD[S\SU4^Sb _Sqq `S@paS}bS}cSuSCLSCLSCLgSkuy SCLSCLSCLSCLmSFMnS{4oSV SCLSCLSCLSCLSCLSCLSCLwS{xSG{ySOaHSOP{S^ |Sac}Sq~S]S BB.S G/S} ~SOPSO |SCLSDSESFaSO uS CLtS!CLS$r S%k S&ho 5S(I 6S)J*~S+CLS,CL:S.A;S/JW<S0Tp?S1~l^ S3OPS5CLBS7vW CS9ADScRFS?t >GS@VGHSAFŧ LSBYffMSCK=qNSljQOSo{ PSp{ QSqFRSrGuTStESUSuFVSvD^\SwOPSyCLYS{|C ZS|}I S~OPSCL]Sk_ ^SFSOPSCLaSBSOPSCLdSDSSOPfS^SCLhS~ iSWSOPkSQT lSj\mSknSq!H oSacpS[ff qSX{ rSY\) sSLtSM uSAuSOPSCLxS@QySQzSGnSOPSCL}SF/~SGySF`SBSOP~SCLS~z SQ#~ ScC4S]S]9SCL S@uSCLSOP SJ|SCLSCLSESCLSOPSn$ SPyz SCLS CLS CLS6Ow S7pS8`S9``SHS?M4S@N !SAM"SBsf#SCrf$SDJ%SELkX&SFK5'SGJ3(SJ{ SMCL*SODnQSRCL-STAҩSVOPSXCL0SZs)~ 2S\F.23S]H\p4S^D$VS_OP6Sa]jSbCL8SdCwSgCL:SiA:SlCL<Snw| =SoDXSOPSCL@SLASGiBSC!PSCLSCLESx:D HSBIS[} SAlSAAhSBSESA"SAҩSAAhSDSESxSEVSOPSI;SK-Sr SLSB SLZSz SLSLASg+ SKScSCLSESEC_S OPS CLS CLS CLS CLS CLS CLS CLS PgS N3S bS M(S K S MS CLS CLS CLS CLS CLS CLS CLS ]S CLS CLS CLS MS !CLS $CS &CLS 'CLS )w_ S +CLS ,CLS -CLS 0OP$S 1Ig%S 2Ij&S 5K/7S `CL*S bF,S cV7GS dOP.S eNVS gCLS hCLS kOPS mCL3S olsh4S qA6S tn37S uoL8S vgY9S yl:S {n3;S |o3<S }hgS ~OP>S Rҁ?S E6@S EAS UGS OPDS HnES EFS D6GS N¿S A#3S EgS AٚS X S dS u S i\ S iLl S sU: S up !S CL S CLS CLS ^'U S CLS kZY S BnS A/S ev S ~vS q S CLS CLS CLS CLS CLS EJS GuS z7 S jS ]%S gj S kw S h S o S B>S T S sS }eS Bf S NS YS DS vS >HPS ?H6S @GeS CLzS DLz}eS V'}fS$^W MS _uλ NS aCOS bCPS cBo|QS TͶRS OSS nT TS AVS _ XS DHYS D[S H"\S WE^S d_S qr `S @paS |bS cS wS CLS CLS CLgS k S CLS CLS CLS CLmS FMnS ~IoS V) S CLS CLS CLS CLS CLS CLS CLwS |QxS I\yS NS OP{S ] |S a}S t~S ]S B7WS G%S ~ ~S OPS Y!( |S CLS DS ElS FS NuS CLtS CLS r S lE S h1' 5S Ik6S J S CLS CL:S B;S Hnm<S ![PW?S "~] S $OPS &CLBS (v4 CS *@;DS UAgES VcFS Ws\GS YP(HS ZFyI LS [XMS \K=qNS ]i OS `|& PS a{ QS bF?RS cGgRTS eEsUS fEVS gD5S hOPS jCLYS l| z ZS m}f S oOPS qCL]S sk_ ^S tCpS uOPS wCLaS yA^vS {OPS }CLdS DGS OPfS ^S CLhS ~ iS UxS OPkS Q lS p=qmS qnS pf oS acpS ]u qS Yff rS [ sS K{tS MOuS AҩS OPS CLxS @JeyS PQ-zS G'S OPS CL}S Fi~S GTS Fe}S BS OP~S CLS ~s S P/ S \S XvfS [S CL S @S CLS OP S IbS CLS CLS ES CLS OPS m7 S Pyz S !CLS "CLS #CLS &Oo S 'gS (cfS )avgS ,BcS .I)S /OS 0Q!S 1Pff"S 2C#S 3bٚ$S 4J%S 5L=&S 6K*'S 7JX(S :{ S =CL*S ?DQNS BCL-S DAfS FOPS HCL0S Jr+ 2S LF3S MHV4S NCS OOP6S Q]jS RCL8S TC=S WCL:S B}S CL<S vI =S DXS OPS CL@S LAS G_BS DS CLS CLES w| HS  IS eY S A{S AOS CS F!OS AS A/S AAhS DS ES xS EVS OS I~S K S r S LS B S DF S z S LS LS g+ S KcS cS CLS ES EeS OPS CLS CLS CLS CLS CLS CLS CLS XYS NgS ^FfS NzS K=qS MS CLS CLS CLS CLS CLS CLS CLS ]S CLS CLS CLS M;S CLS CS CLS CLS vY S CLS CLS HCLS KOP$S LI%S MI~I&S PG9S RCL*S UF,S VVS WOP.S XN2`S ZCLS [CLS ^OPS _CL3S blC4S dA6S g`&f7S hWs38S id9S kl0:S mnf;S nm33<S ogٚS pOP>S qRTn?S rE@S sEAS tTrS uOPDS vGϛES wE{FFS xDĽGS yNUS |AS }EgS ~AS X S d S u S i\ S ii S r+ S t !S CL S CLS CLS _v S CLS k S y] S FxCS f S §e4S q S CLS CLS CLS CLS CLS EѡS GS z % S jBlS ]%S gx S kK S h S r0S BӹS RS s $S @OSB SOdeSZhSDSv- STx Srf S`S W33S!^ S"CLS$CLS%CLS&CLS'CLS*OPS,OPS-OPS/CLS2G'lS3HJMS5IsS6G$S9LzSFO<S?K*?S@~s SBOPSDCLBSFv4 CSH~@DSJA`7ESLg{FSMo GSNapHSOF3H LSQXMSRKNSSi OSU|` PSV{LS QSWF?RSYGXTSZEUS\EɪVS]D`S^OPS`CLYSa{ ZSc}X SdOPSfCL]Shkh ^Si@SkOPSmCLaSo SqOPSsCLdSuC'SwOPfS^SCLhS~@ iST5SOPkSP lSkmSi(nSof oSa#pSaR qSZL rS_3 sSKwtSMғuSASOPSCLxS@4ySMfzSHSOPSCL}SF~SG, SFB,SBSOP~SCLS~l^ SP S\gSY6gS]SCL S@SCLSOP SKP SCLSCLS ElS CLSOPSlR SNP SCLSCLSCLSOyV SvSaFfSagS"B8S$GS%MW S&N!S'K"S(xL#S)_$S*J%S+Lu&S,K['S-J+g(S0{= S3CL*S5D4KS8CL-S:A"SCL0Shr 2SjF 3SkHF4SlCuSmOP6So]SpCL8SrBMSuCL:SwA:SzCL<S|vKSB SA/SAOSE SESxSEVSOPSI"7SKTSr SLSm4 SE|Sz SKASLSg+ SKFSbDSCLSESDSOPSCLSCLSCLSCLSCLSCLSCLSPgSNSYgSL34SIpSKSCLSCLSCLSCLSCLSCLSCLS]SCLSCLSCLSMXSCLS2CS4CLS5CLS7v S9CLS:CLS;CLS>OP$S?I%S@It&SCRzSECL*SHG Z,SIT SJOP.SKMSMCLSNCLSQOPSSCL3SUlQ4SWA6SZk@7S[a 8S\j 9S_l:S`j;SaoS3<SbifScOP>SdQoA?SeEI@SfE ASgSTShOPDSiGBbESjEpcFSkDtGSNSCc4SGfSCYSWT Sea$SuLX Sh SiLl Srz Stz !SCL SCLSCLS]! SCLSkZY SHSF!OSf 4 Sd2SqV SCLSCLSCLSCLSCLSESG Szr SjkS]%Sg! SkQ Sh/ SnSBSQM_Sr%mS@SB) SNS \TS DLSv SNT St Sa&fSUS^ SCLSCLSCLSCLSCLSOPS OPS!OPS#CLS&GS(HK6S)I(S*GS-LzS.Lz}eSLb{}fS @ MSqtE NSsC?OStCPSuALQSyTzRSzOSS{n$ TS|@MVS}\5 XS~CEYSD״[SH"\SV^Sb%_SqU `S@SRaS{\*bS{RcSu\*SCLSCLSCLgSk SCLSCLSCLSCLmSEnS|oST+ SCLSCLSCLSCLSCLSCLSCLwSv\xSFqySP4SOP{S[ |S`}Sucf~S]SB-8SG'+S@~SOPSN$ |SCLSDלSDֿSF\SI uSCLtSCLSt33 S$k S%gm 5S(IS6S)IS+CLS,CL:S.C.;S/Dj<S0OX$?S1~@ S3OPS5CLBS7vW CS9|_DSoGS@X34HSAE9 LSB^QMSCONSDnOSG| PSH{ QSIF~RSJGJYTSLEo$USMEiVSNCSOOPSQCLYSS{/9 ZST|ƚ SVOPSXCL]SZkK ^S[} S]OPS_CLaS| SOPSCLdSBSOPfS^SCLhS}~ iSQlSOPkSP lSgmSfGnSq= oSa|pS` qSZ rS]p sSK.tSMOuSASOPSCLxS@;ySK zSI/jSOPSCL}SF~SFSFSB SOP~SCLS~l^ SPH S_gS[33SYSCL S7 SCLSOP SKMSCLSCLSDSCLSOPSk_ SM SCLS CLS CLS O^e SffS`Sa3SASVSZLS\!SOY"S{s3#Sg$SJ%SK&SJ5'SJ(SJzS!CL*S#DS&CL-SPASROPSTCL0SVq 2SXF3SYH7D4S[C\S\OP6S^]S_CL8SaBMSdCL:SfASiCL<Sku6 =SlDSnOPSpCL@SsL݃AStG8BSuCSwCLSxCLESzt4 HS|UISr SA SA^vSCSF[GSB)SASA^vSE9[SESznSEVSOSI~SK <Sr SLSl SPstSz SK?SL^Sg+ SKFSe7&SCLSESDSOPSCLSCLSCLSCLSCLSCLSCLSNgSMSYgS_SV(SG SCLSCLSCLSCLSCLSCLSCLS]SCLSCLSCLSMS!CLS$C<S%CLS&CLS(w S+CLS,CLS-CLS0OP$S1Ii%S2Ij&S4N0 S7CL*S:G,S;TBSS~R?SE@SDVAST"SOPDSG8ESE[FSDGSM^SClSGpSBfSWG SbSt Sh Si= Srs St>u !SCL SCLSCLS_v SCLSj Sx SEGSeд S[SqHF SCLSCLSCLSCLSCLSESH1Sz7 Sj^3S]%Sf Sj Shq SoٚSBDSN<SqʙSA{SB SP S^3SD+aSv4 ST Sq Sa9SW<S^ SCLSCLS CLS CLS CLSOPSOPSOPSCLSF>SHLSHSG<SFLuSGLu}eSFP}fS@ MSbs NSdCOSeC|PSfAQSiTjRSjO&SSkn$ TSm@VSn\Y XSoCEYSqD[SrVF\SsRJ^Swc4_Sxq `Sy@]aS{}ubS||QcS}v\SCLSCLSCLgSjE SCLSCLSCLSCLmSEϑnS~oSS/ SCLSCLSCLSCLSCLSCLSCLwSB=qxSG8RySQ.SOP{SZwx |S`̄}Su~S]SB%SG*S}: ~SOPSR |SCLS DSS DwSFjSNuSCLtSCLSu P Sk Sh 5SH6SIŦSCLSCL:S!Cw;S"P<S#Om?S%~] S'OPS(CLBS*v- CS,yUDS/A5ES1UQFS2qGS3SHS4E LS5^pMS6O34NS7n >OS:|ƚ PS;{ QS;X{!;D";d34#;]&f$;J%;KX&;K'@';J=(;|j ;CL*;DG;CL-;A;OP;CL0;q3 2;E3;H)4;CR;OP6;];CL8;BM;CL:;Aq;CL<;u =;D;OP;CL@;LȐA;G'B;I$;CL;CLE;t' H;GLDI;j ;.A;/Al;0C ;1FxC;2BUZ;4A:;5A^v;6Ed;7E;9xd;;S4w?;E@;DvA;U=;OPD;JdSE;E/F; DG; M; Ap; E;A3;WJ ;];txY ;h ;i= ;q^ ;s !;CL ;CL;CL; ] ;#CL;%jb ;'H;(E9[;)dR ;+;.q ;YCL;ZCL;[CL;]CL;^CL;aE;bHC;ez7 ;gj5;j]%;lf ;mj ;nhTQ ;qnY;tB;uOB|;vqj;wA`;zB\ ;}ON;~_ۜ;D;u ;L ;mb" ;a33;W;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;F;HD;H:;G;Lu;Lu}e;+A%}fSA5 M;r N;C%O;CѦP;AQ;TP/R;OS;nT T;=" V;[ X;CFY;D[;\;T^;"f<_;#r9 `;$@]a;'{\b;(zuc;)tH;+CL;,CL;-CLg;0j ;3CL;4CL;5CL;6CLm;9EGn;<~Po;=Q ;?CL;ACL;BCL;CCL;DCL;ECL;FCLw;IBLx;JH>y;LQ\);MOP{;PY |;Rdj};St}~;U];XB$;ZGHT;},l ~;OP;XA |;CL;D^;D6x;FV;Mu;CLt;CL;v ;k7L ;gm 5;H56;I;CL;CL:;D;;Oe<;Oq?;~24 ;OP;CLB;v- C;D;A)E;W F;nG;XQH;E L;M >M;x N;^34O;} P;{a Q;FR;GgT;E.U;EzV;C;OP;CLY;{in Z;|ƚ ;OP;CL];j ^;w ;OP;CLa;x ;OP;CLd;B5;OPf; ^; CLh; }: i;Ws;OPk;P l;dm;cpn;m{ o;`p;`\) q;Z r;\ s;Kt;Mcu;A/; OP;"CLx;L@y;MQz;NIk;POP;RCL};TF~;VF;WE;XBq;YOP~;[CL;]~l^ ;_Om ;`g;b^g;cky;eCL ;g} ;iCL;lOP ;mML;oCL;pCL;rDX;uCL;xOP;{k ;|JK ;~OP;CL;CL;O"+ ;Y3;Q ;R;A;QL;W.;W>!;Ks3";p#;\ff$;Jk%;Kİ&;K+';J1(;z ;CL*;D;CL-;A;OP;CL0;qˈ 2;E%3;HX4;CV;OP6;];CL8;C ;CL:;Aҩ;CL<;tz =;D;OP;CL@;LeA;G+KB;I;CL;CLE;s H;BI;_8 ;!A;#Al;$C ;%F?;&B;'A:;(A{;)EZ;*E;,xd;/EV;0O;2I~;3JP;6r ;9L; ;CL;CL;CL;CL;CL;CL;CL;];CL;CL;CL;M;CL;C<;CL;CL;r ;CL;CL;CL;OP$;Iy^%;I[&;M$;CL*;F,;T|;OP.;Ny;CL;CL;OP;CL3;k4;A6;r7;a38;ls39;k:;g;;i3<;l`;OP>;Rn^?;EF@;DA;U;OPD;KE;D F;D{G;N ;4;D@;@Ff;Vʻ ;c>;sk ;h ; ii ; qHF ; s !;CL ;CL;CL;a ;CL;Ai ;Bz % ;CF(;DdE ;F;IpX ;LCL;NCL;OCL;PCL;QCL;TE;UH<;Xy ;[j ;^]%;_fq ;`jp ;ah7 ;do`;gB;hOU;jp:;kA;mB{ ;pO;qar;rD;uu} ;wVk ;zq ;{a;W<;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;Fƌ;H<;H;G;Lu;Lu}e;F]Lt}f;B!f M;t+ N;C,O;D(P;AgQ;T1R; OS; n T; ~> V; Z X;CGY;D[;G\;O^;d:_;r* `;@fa;{b;{c;u;CL;CL;!CLg;$j ;&CL;'CL;(CL;)CLm;,En;0~lo;1PR ;3CL;4CL;5CL;6CL;7CL;8CL;:CLw;=wfgx;>H\)y;?Oq;@OP{;CX |;mc};nu$x~;q];tB!;uG;x}f ~;zOP;}VP |;CL;Dk;Cv;Fk;FT~u;CLt;CL;xm ;kz ;h 5;Hm6;Im;CL;CL:;E;;M<;PT?;~ ;OP;CLB;vW C;@D;@E;[34F;nG;V(H;EA_ L;MGM;y N;] O;},l P;{ Q;FR;FT;E.U;E]V;C;OP;CLY;{= Z;|} ;OP;CL];j ^;u ~ ;OP;CLa;wQ? ;OP;CLd;Bc;OPf;^;CLh;| i;W;OPk;O~ l;bm;`n;nf o;`(p; ^\) q;4Y r;5\# s;6K`t;7M u;8AJ;9OP;;CLx;=@y;>Pz;?Ik;AOP;CCL};EF:~;GF?;HEk;IBl;JOP~;LCL;N~s ;QOVx ;Rh,;S^3;Tky;VCL ;X{a ;[CL;^OP ;_NnL;aCL;bCL;dDQN;gCL;jOP;mkZY ;nIk ;CL;CL;CL;N ;Y@;Q;Sfg;A;QǮ;W ;Z>!;O";uL#;\ٙ$;J[%;Kd&;J';J<(;zF^ ;CL*;C;CL-;A;OP;CL0;pX 2;E\3;GV4;C;OP6;];CL8;BE;CL:;A; CL<; sF =; DS; OP; CL@; L-A; G B; C;q; CL; CLE; q H; CGI; joR ; A; A{; C/; F:; B; B ; A{; E; E; "xd; %EV; &P; (I ; )JP; ,r ; .K ; 1kh ; 2DF ; 4y%; 6J!; 7Lٛ; bD ; cKF; egT; gCL; jE; kD; lOP; nCL; oCL; pCL; qCL; sCL; tCL; uCL; xNg; yK3; zXvf; {_; |G ; }_ > ; CL; CL; CL; CL; CL; CL; CL; ]; CL; CL; CL; M; CL; C; CL; CL; A; CL; CL; CL; OP$; IX%; IR&&; NN; CL*; FV,; Th; OP.; Nq; CL; CL; OP; CL3; k4; A6; c7; d8; `L9; kv:; `3;; eg<; c ; OP>; Q?; E @; DѼA; S; OPD; LtE; DF; DyG; M; Bg; Fvg; B; V ; eZ]; s ; h ; i[ ; )p- ; *s !; -CL ; .CL; /CL; 1\C ; 4CL; 7jD ; 8IΘ; 9FR; :d ; cn;?mT{ o;Baip;D\B q;EY{ r;F\ = s;GKt;HMu;IA;KOP;uCLx;w@y;xLZ0z;yI;{OP;}CL};F5~;E0;Ez;Bg;OP~;CL;~ ;N1 ;c|;Vٚ;Sy;CL ;zcz ;CL;OP ;R>;CL;CL;D;CL;OP;k ;HGK ;CL;CL;CL;Nv ;i;[4;`;Ag;Q>;W;W!;IY";#;l$;JC%;K&;J';Jӓ(;~ ;CL*;C;CL-;A ;OP;CL0;p 2;E[3;Gɔ4;Cq$;OP6;];CL8;C/; CL:; B1 ;CL<;s =;D|;OP;=CL@;@LA;AGB;BI3;DCL;ECLE;GqV H;I{ߨI;Lr# ;OA";PA ;QC;RFݱ;TB;UBE;VA;WE;XE;Zz;]EV;^PI;`IU ;aJP;dr ;fK#;ik ;jRQ;;ly6;nK;oL~;rCD ;sK82;ug;wCL;EZ;DO;OP;CL;CL;CL;CL;CL;CL;CL;^;Rc4;b3;I;C;K ;CL;CL;CL;CL;CL;CL;CL;];CL;CL;CL;M;CL;C;CL;CL;U ;CL;CL;CL;OP$;I%%;IA&;J;CL*;FF,;T`; OP.; N; CL; CL;OP;CL3;ku4;A6;b@7;f8;n@9;j:;u;; n9<;!q;"OP>;#S ?;$DM@;%DA;&U-;'OPD;(RE;)DF;*DZG;+Mt;.E;/J6g;0Eɚ;1V ;4^;5rO ;6h" ;7i= ;9pA ;:r !;=CL ;>CL;?CL;i_/ ;lCL;oh ;pF;qD;rcM ;sIx ;tp< ;wCL;yCL;zCL;{CL;|CL;E;H8,;zcz ;i;]"";ex ;iމ ;gT ;o;BKO;T;m41;C{,;B) ;NV;eC;C;u6 ;Uc ;n ;`3;Rs3;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;F1;H);H;G};Lp;Lp}e;s]}f; E M;sM N;CO;CcP;0@۶Q;3TR;4O`S;5AAhT;7| V;8Y, X;9CyIY;;D|[;a;Ezb;F{kc;GuR;ICL;JCL;KCLg;Oj~ ;QCL;RCL;SCL;TCLm;WH,bn;Z}o;\Nn ;^CL;_CL;`CL;aCL;bCL;cCL;dCLw;hx x;iERy;jP;kOP{;W33 |;cs!};v~;];C;GL;}X ~;OP;U= |;CL;D ;C;FSO;Gu;CLt;CL;} ;j ;gx 5;HX6;I&;CL;CL:;E;;G<;Qi ?;|= ;OP;CLB;v C;}OnD;@cE;XQF;o G;Z\)H;Dr L;YM;LpN;kO;} P;|j Q;FR;F5T;D,U;DTV; CT; OP; CLY;| Z;{ ;OP;CL];j> ^;q ;OP;CLa;tj. ;OP; CLd;"B);$OPf;&^;'CLh;)|& i;*Rf;,OPk;-O l;.h =m;/hn;0m o;3`p;]]\) q;^XH r;_[\ s;aK*t;bMu;cA};dOP;fCLx;h@y;iJz;jJm;lOP;nCL};pF/~;rE;sD;tBbk;uOP~;wCL;y~ ;|NK[ ;}UY;~P;O;CL ;| z ;CL;OP ;Q;CL;CL;CB;CL;OP;k) ;G ;CL;CL;CL;N* ;j<;]&f;`3;A9|;SW ;X\;Yu!;Mٙ";Df#;f&g$;J6N%;K&;J ';K (;y ;CL*;Ca;CL-;A{;OP;CL0;q 2;E;Y3;G}4;C;OP6;];CL8;C.;CL:;$C6];'CL<;)t =;*DnQ;,OP;.CL@;1L}A;2FB;3Lz;5CL;7CLE;9qes H;:IJsI;;e< ;>Aҩ;?A;@C=;AF;BB ;CB);DA;EF!O;FE;HzJ;KEV;MPC;OI~;PJP;Sr ;UK;Xk ;YLL;[yV;\JR;]L;Cn ;KF;is^;CL;EH;C3;OP;CL;CL;CL;CL;CL;CL;CL;X3;Pٚ;dc3;I;C;K;CL;CL;CL;CL;CL;CL;CL;];CL;CL;CL;M;CL;C;CL;CL;B);CL;CL;CL;OP$;I(%;I8&;Q';CL*;FE$,;T*;OP.;Nxg;CL;CL;OP;CL3;ka4;A6;o7;fL8; r&f9; kr:; lg;;l4<;h;OP>;R׍?;DT@;DA;U_;OPD;PE;DnF;DraG;NTO;D3;H3;Dp;V! ;#b;$r ;%h ;&i= ;'o۔ ;Pr1 !;SCL ;UCL;VCL;X[v ;[CL;]h ;^u6 ;_EW;`c ;bP ;cp| ;fCL;gCL;hCL;iCL;jCL;nE;oH%!;rz7 ;ti|;w]"";xe ;yi ;{gv ;~o3;BC/;Rܘ;l;C;B޸ ;M;fU;C;u ;Ku. ;p ;`;T`;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;Fp;H$8;H$;G;Lp;Lp}e;bE!}f;F M;u N;CO;CP;@Q;"TFR;#OS;$r]\ T;%{J V;&X[ X;'CyIY;*D}-[;+q&\;,\r^;/f_;0rq `;2Dga;3}b;5{c;6uǯ;8CL;9CL;:CLg;=jD' ;?CL;@CL;BCL;CCLm;FH_)n;I}o;JN ;LCL;MCL;NCL;PCL;QCL;RCL;SCLw;~ypx;Hy;N=q;OP{;V |;d .};xG~;];D;Fn;} ~;OP;ZTj |;CL;Dΐ;C{L;Fv;K@u;CLt;CL;w ;kP ;hI 5;Hpc6;I;CL;CL:;F[G;;O<;Qz?;| ;OP;CLB;v4 C;z D;@E;R\F;xzG;hH;Dp L;Y(M;KN;jQO;} P;|& Q;FR;FݱT;D>U;DV;Cl;OP;CLY;} Z;{a ;OP;CL];j ^;q^ ; OP; CLa; tj. ;OP;CLd;Brd;OPf;^;CLh;{a i;O;EOPk;FO l;GjRm;Hhn;Io0 o;L`p;N_8R q;OZ r;P\) s;QK't;RM@u;SAnq;TOP;VCLx;X@y;YQWz;[J;]OP;_CL};aG~;cE;dD;eBa;fOP~;hCL;j~# ;lM ;mP;nQC3;oOc3;qCL ;s{H ;vCL;yOP ;zN<|;|CL;}CL;DG;CL;OP;kK ;Gh[ ;CL;CL;CL;Mb ;iVf;[3;a<;A`;F;LB;MG!;O33";Df#;p33$;J+g%;KmP&;J ';K(;y]w ;CL*;CSc;CL-;Al;OP;CL0;p^ 2;E .3;G4;DQN;OP6; ];CL8;C{;CL:;D_;CL<;s =;DnQ;OP;CL@;"L}A;#FB;$LfN;&CL;'CLE;)p H;+@I;.akV ;1A/;2A;3CL!;5G;6C;7B);8A;9F>K;:E;  #DF  #yf  #K" # L # C  # JZ #h  #CL #E #DY #OP #CL #CL #CL #CL #CL #CL #CL #"Ng ##L  #$_S3 #%Jff #&C #'IQ #*CL #+CL #,CL #-CL #.CL #/CL #0CL #1] #2CL #4CL #5CL #6M #8CL #;Ca #dCL #fCL #g #jCL #kCL #lCL #oOP$ #pH% #qI+& #sKW #vCL* #yFJ, #zT,+ #{OP. #|Nq #~CL #CL #OP #CL3 #k4 #A6 #YS37 #UFg8 #T`9 #j: #kFg; #k&g< #e #OP> #R1? #D}@ #DeA #T #OPD #IE #DRF #DG #N, #U #Z #Sٚ #Uރ  #e #rxt  #h  #i=  #of  #qJ ! #CL #CL #CL #^j  #CL #hׄ  #I #E #c/  #D  #pPL  #CL #CL #CL #CL #CL #Eq #H #y  #i #]"" #d  #iLl  #g5  #of #-B< #.R[ #/kf #0C #2B)  #5MԄ #6h #8B #;up  #M #sKN #tj{O #w~# P #x} Q #yFR #zF:T #|DnBU #}DqV #~C` #OP #CLY #~24 Z #{ #OP #CL] #j ^ #q3 #OP #CLa #tz #OP #CLd #A #OPf #^ #CLh #{/ i #M~ #OPk #Ov+ l #km #hn #o o #`Ӄp #`L q #Z r #[z s #Kt #Mu #A_ #OP #CLx #^ y #Pz #JI #OP #CL} #G~ #EH #DG #BXB #OP~ #CL #~OI  #MS  #PS3 #N #Mg #CL #~# #"CL #%OP #&K #(CL #)CL #+D #.CL #1OP #4kZY  #5G #8CL #9CL #:CL #=M  #>k@ #?[ #@XFg #C@ #EV{ #F[) #G^{! #H33" #Ic&f# #JG$ #KJ % #LK^& #NJd' #OJ( #PCJ #RCL* #TC6] #WCL- #YAW3 #[OP #CL0 #of 2 #EL3 #GW4 #Eُ #OP6 #] #CL8 #C #CL: #EV[ #CL< #t = #DY #OP #CL@ #LoA #FB #J(K #CL #CLE #ph H #DWI #k  #A #A #C #G&" #C= #B8P #A #F[G #E #zJ #EV #P  #HI #JP #r  #K3 #ixB  #C #yR #K& #L` #Cº  #J #f  #CL #E #Df #OP #CL #CL # CL # CL # CL # CL # CL #Yg #Ng #Yg #K #DG #H\) #CL #CL #CL #CL #CL #CL #CL # ] #!CL #"CL ##CL #LM #NCL #QC #SCL #TCL #V} #XCL #YCL #ZCL #]OP$ #^H% #_I#& #bK #dCL* #gFQ, #hS #iOP. #jN #lCL #mCL #pOP #rCL3 #tko4 #vA6 #yX337 #zU348 #{\,9 #~k 1: #j; #lS4< #ig #OP> #QA? #D@ #DA #S #OPD #FE #D=(F #DG #M #T #Y #SI #Vqy  #e #r  #h"  #i/3  #oK  #qt ! #CL #CL #CL #[  #CL #hq7  #wQ?  #E] #c  #K #p3  #CL #CL #CL #CL #CL #E #H0 #{  #i< #]"" #dTj  #h"  #gjU  #r0 #B1 #Rw # k\i #!D ##B)  #'O #(i} #)B #,ua  #-K+  #0qL  #1`i #3V #4^  #5CL #6CL #7CL #8CL #:CL #=OP #>OP #?OP #ACL #EFCU #FH #GH #HG #KLp #OLp}e #aV}f #+GS{ M #t0 N #CO #CP #@UKQ #S7R #OkS #p T #|E^ V #Y% X #C^KY #Dtk[ #\ #T̓^ #b%_ #r ` #BWa #{b #zuc #uL #CL #CL #CLg #jdB #CL #CL #CL #CLm #Gtin #}lo #M #CL #CL #CL #CL #CL #CL #CLw #Bx #Ly #NL #OP{ #Wfg | #cG} #t~ #] #C> #F` # }; ~ # OP #j | #CL #D #C #F #ALu #CCLt #DCL #F@ #Hk7L  #IhO 5 #KH<6 #LI #NCL #OCL: #QG'; #RI5< #SS3? #T}I #VOP #XCLB #Zu} C #\@zpD #_@'E #aeF #bypG #cRH #dD L #eYffM #fK=qN #giO #j~OI P #k|& Q #lFR #mFT #oDYwU #pDV #qC #rOP #tCLY #v~OI Z #w{ #yOP #{CL] #j63 ^ #q9 #OP #CLa #t/ #OP #CLd #BF #OPf #^ #CLh #{Z i #X; #OPk #OI l #im #fRn #n33 o #`p #`L q #Xq r #[) s #K t #Nu #A[ #OP #CLx #@y #N5z #J%g #OP #CL} #F~ #E' #D #BL #OP~ #CL # ~OI  # M49  # O #Ns3 #M#3 #CL #@n #CL #OP #LM #CL #CL #C{ #!CL #$OP #'k="  #(Gc #*OP #-CL #.CL #1MI  #2k3 #3\ٙ #4Y6g #7@܆ #9Q=q #:W. #;WǮ! #<{L" #=]3# #>N$ #?J% #@KS& #AK/q' #BJy( #mzr #pCL* #rC6] #uCL- #wA:% #yOP #{CL0 #}of 2 #DR3 #Gw 4 #GH #OP6 #] #CL8 #Cμ #CL: #ET #CL< #tM = #D4K #OP #CL@ #L}mA #FЌB #DX #CL #CLE #p| H #C0I #rd  #A #A" #CL! #GC #CZ #BF #A" #F #E #zn #EV #P #HR #JP #r  #K+ #ixB  #Lv #y< #Jg #L #C  #L%F #f  #CL #E #D; #OP #CL #CL #CL #CL #CL #CL #CL #Ng #Ng # cL # J # C #4HR #6CL #8CL #9CL #:CL #;CL #] #?CL #@CL #BCL #CN #ECL #HCI #ICL #JCL #LAK #OCL #PCL #QCL #TOP$ #UH% #VI& #XPFf #[CL* #^FS, #_TQ #`OP. #aN͓ #cCL #dCL #fOP #hCL3 #kk=4 #mA6 #UY7 #Tg8 #Xl9 #k 1: #j3; #kS3< #j  #OP> #Q=? #D@ #DA #S  #OPD #GE #D"F #D G #L #T` #Y #S3 #W=  #c #r  #h  #i/3  #n$  #q9 ! #CL #CL #CL #^'U  #CL #i  #KU #D #c  #̢) #p$  #CL #CL #CL #CL #CL # E # H # zT  # i # ]% # d(  # h  # gM  # rI # B# # Qm # j # Dc # B޸  # N. # jι # !B]/ # $uS[  # %Qn  # (vf  # )` # *Zf # +^  # -CL # .CL # /CL # 0CL # 1CL # 5OP # 6OP # 7OP # aCL # dF/n # fHp # gHA # hG # kLp # nLp}e #L\}f #FGݹ M # tF N # C O # DP # @TQ # S/R # OS # pmy T # }\ V # Y;0 X # CCOY # DRY[ # T\ # Nx^ # f`_ # r ` # BCa # Bb # Bc # ~ # CL # CL # CLg # jC_ # CL # CL # CL # CLm # G5n # }go # N # CL # CL # CL # CL # CL # CL # CLw # C{x # Ly # O # OP{ # X | # b} # w~ # ] # C # G)S # (}h ~ # +OP # .l | # 0CL # 3D # 4CJ # 5F # 7FBu # 9CLt # :CL # <@ # =k=q  # ?h% 5 # AH$86 # BI # DCL # ECL: # GG0; # HEi< # ISD? # J} # LOP # NCLB # Pu C # R@nD # U@HE # WiF # XnGG # Y[H # ZC L # [YffM # \KN # ]j\O # `~z P # a}f Q # bFR # cFxCT # D>YU # DV # C\ # OP # CLY # }R Z # |& # OP # CL] # i& ^ # pPL # OP # CLa # s # OP # CLd # A: # OPf # ^ # CLh # {= i # V # OPk # O l # km # i =n # n o # `1p # _ q # Yq r # ] s # K t # Nu # AM # OP # CLx # K y # Kz # J; # OP # CL} # G~ # D> # C # B2 # OP~ # CL # }~  # L  # P # N0 # MS3 # CL # AK # CL # OP # Km # CL # CL # Cμ # CL # OP # k/  # H # !CL # #CL # $CL # 'M  # (l # )] # *Z&g # U@h # WQ\) # XW\) # YXB! # ZB" # [`# # \Df$ # ]J % # ^KJ& # _J' # `Jc( # aE # cCL* # eC' # hCL- # jA+ # lOP # nCL0 # pp3 2 # rD83 # sGjr4 # tH # uOP6 # w] # yCL8 # {C. # ~CL: # F? # CL< # tU = # D; # OP # CL@ # L}mA # FB # Fk # CL # CLE # pA H # }rI # \  # A: # A" # CZ # G` # C. # BF # Aҩ # F # E # x # EV # O # I~ # JP # r  # K() # j ^  # R  # y6 # Kj # L # B  # K # g # CL # E^ # D # OP # CL # CL # CL # CL # CL # !CL # "CL # %Xf # &O  # 'Yg # (L\ # )C # *HR # ,CL # .CL # /CL # 0CL # 1CL # 2CL # 3CL # 4] # 5CL # 6CL # 8CL # 9M # ;CL # >C  # ?CL # @CL # B # ECL # FCL # GCL # JOP$ # KH% # LIL& # NJ # QCL* # TFMI, # UTt # VOP. # WO # CL # CL # OP # CL3 # kA\4 # A6 # ]37 # c8 # \ٙ9 # k : # p; # lY< # tg # OP> # R? # D@ # D~_A # T # OPD # NHE # DF # DdG # M7 # T # Yٙ # Sy # W*  # bX # rЫ  # h  # i/3  # nQ  # ph ! # CL # CL # CL # \o  # CL # i  # |C  # DS # dc  #  # pY  # CL # CL # CL # CL # CL # Eh # H # z %  # i # ]"" # dTj  # h(#  # g!4  # q # B # M@ # j5 # Dٷ # B  # O, # lN # B) # uD  # O"j  # q.  # `i # HY # I^  # KCL # LCL # MCL # NCL # OCL # SOP # TOP # UOP # WCL # ZF # \H # ]Hp # ^G # aLp # dLp}e # W/}f # c # {g # CL # CL # CLg # ju # CL # CL # CL # CLm # Fn # }ɚo # O # CL # CL # CL # CL # CL # CL # CLw # x\*x # FQy # RaH # OP{ #Y | #bO} #trj~ #] #Cj\ #F #} ~ #!OP #$Q | #&CL #)DI #*C0 #+Fv #/Ku #1CLt #2CL #4@ #5k\)  #7hI 5 #9H)6 #:H` #p #] q #Y\) r #[{ s #Kt #Nu #AŖ #OP #CLx #@y #K6z #JI #OP #CL} #G~ #D& #Cu #B #OP~ #CL #}  #L  #Q9 #Kf #Jf #CL #AZ #CL #OP #H # CL # CL # C{ #CL #OP #=l  #>I] #ACL #BCL #CCL #FME  #Gn #HY #IT0 #L@ #NN=q #OTL #PU{! #QH" #R{# #SUl$ #UJ=% #VK:[& #WKH' #XJt( #[{ #^CL* #`C' #bCL- #dAAh #fOP #hCL0 #jp 2 #lD3 #nGZ$4 #oIO #pOP6 #r] #sCL8 #uC' #CL: #G ) #CL< #t = #D4K #OP #CL@ #Li2A #FB #Ma #CL #CLE #qV H #A{I #jQ  #B  #Aҩ #C4 #Gn #C4 #BUZ #A/ #F5 #E #x #EV #O` #I~ #JP #r  #K+ #k.  #LZ #y> #K3 #L # Aw0  # Kc # hE& #CL #EG #DO #OP #CL #CL #CL #CL #CL #CL #CL #Xf # M3 #!Yg ##K  #$C #%H #'CL #(CL #)CL #*CL #+CL #,CL #-CL #/] #0CL #1CL #2CL #3M #5CL #8C  #:CL #;CL #=@ #?CL #hCL #iCL #lOP$ #mHŨ% #nI& #qN0  #tCL* #vFF, #wS" #xOP. #yOB #{CL #|CL #OP #CL3 #k4 #A6 #\7 #\ff8 #Vf9 #k-: #j; #og< #kY #OP> #R? #D@ #DuQA #T #OPD #PE #CF #DN0G #M #Vy #[Ff #Ti #X@7  #`G #s:  #h  #i  #n  #p ! #CL #CL #CL #]<  #CL #i  #F!O #D-  #d  #} #o+  #CL #CL #CL #CL #CL #E] #H' #y  #iß #]"" #dq  #g  #g  #r #B #S #jm #EB #1B)  #4O< #5mq[ #6A #9u65  #:O  #=rD  #?`vf #@Yf #A^  #BCL #CCL #DCL #FCL #GCL #JOP #KOP #LOP #OCL #RF q #SH) #TH #UG< #YLp #\Lp}e #Xt}f #4G{ M #tE N #CO #D P #@lQ #T R #O8VS #o۔ T #. V #[ X #C^KY #DM{[ #c\ #N ^ #cxv_ #r ` #AZ#a #C:b #C\c #A #CL #CL #CLg #j #CL #CL #CL #CLm #Fn #}4o #PV #CL #CL #CL #CL #CL #CL #CLw #@#x #Hfy #Q #OP{ # Zfg | # c1} # x~ #] #CD #G  #} ~ #OP #o@Y | #CL #!Db #"C ##FhR #&P*u #(CLt #)CL #,@}q #-l^6  #.h=q 5 #0H6 #1H #3CL #\CL: #^Hm; #_O< #`T? #a}: #cOP #eCLB #gu} C #i}[D #l@E #n_HF #oqGG #pP(H #qCԹ L #rY >M #sJHN #ti\*O #w~ P #x}R Q #yFR #zFT #|DU #}DkV #~C$ #OP #CLY #| Z #{LS #OP #CL] #ii ^ #l #OP #CLa #qt #OP #CLd #B  #OPf #^ #CLh #{/9 i #I #OPk #O l #q =m #nn #o o #_j`p #^H q #XaH r #Z=q s #Kt #Nu #Y) #CL #CLx #Fv y #MeTz #f #CL #CL} #F~ #D #CI #B& #OP~ #CL #};  #Lc  #B #{ #w #CL #B #CL #&OP #'H #)CL #*CL #,C: #/CL #2OP #5m-  #6Jl #8CL #:CL #;CL #>M-  #?xi #@d3 #Adl #D@h #FM #GR) #HSu! #Ig33" #JV,# #K{&f$ #LI% #MK.& #NJ{' #OJ( #R{ #UCL* #WDg #ZCL- #\A:% #^OP #CL0 #p 2 #DA3 #GMv4 #I۞ #OP6 #] #CL8 #C' #CL: #G #CL< #u = #D-  #OP #CL@ #L\A #FB #C  #CL #CLE #p H #(I #r+  #BE #A/ #C #G #C #Bc #A #F/ #E #x #EV #O #I~ #JP #r  #K8 #k  #F #y/ #K= #L #AM8  #K  #g/ #CL # E # E? # OP # CL #CL #CL #CL #CL #CL #CL #Yg #Kf #Yg #K #C #H #CL #CL # CL #"CL ##CL #$CL #%CL #&] #'CL #PCL #QCL #SM. #UCL #WC #YCL #ZCL #\Aҩ #_CL #`CL #aCL #cOP$ #eH% #eI& #hNN #kCL* #nFF , #oT #pOP. #qN  #sCL #tCL #vOP #xCL3 #{jw4 #}A6 #l&f7 #bٚ8 #U9 #kB`: #ks4; #l< #j  #OP> #Q? #De@ #DpA #S` #OPD #OE #C׾F #DN0G #M" #V\ #[vf #T #X  #_ #s  #h  #i  #m  #pPL ! #CL #CL #CL #^j  #CL #j ^  #B #EV #dR  #ܵ #o+  #CL #CL #CL #CL #CL #E #H@T #zF^  #i #]"" #d  #g  #fR  #"of #%B) #'M #(jc #)E` #+B  #.O #/n #0A #4u'  #5S5  #8rff  #9`P #:W\ #;^  #=CL #>CL #?CL #@CL #ACL #DOP #FOP #GOP #ICL #LEZ #MH0 #OH #PG- #SLp #|Lp}e #]M}f #,Gj M #t N #C?O #DqbP #@lQ #Tc6R #O?S #of T # V #\ X #CGY #D,c[ #v\ #T^ #e͛_ #s ` #A33a #Bqb #D4c # #CL #CL #CLg #jvE #CL #CL #CL #CLm #Fin #}4o #Q8= #CL #CL #CL #CL #CL #CL #CLw #BLx #Jy #PG #OP{ #Z | #cN} #tL~ #] # C # FF #~] ~ #OP #p | #CL #E  #C #F2 #FLou #ICLt #JCL #L@F% #MkĜ  #Nh J 5 #QH06 #RH #TCL #UCL: #WHm; #XK< #YU? #Z}: #\OP #^CLB #`u} C #b{8D #e@'E #fU\F #htG #iPH #jC L #kYGM #lJHN #mizO #p O P #q} Q #rF~R #sFbT #uCIU #vDVV #wC #xOP #zCLY #||C Z #}z #OP #CL] #i[ ^ #l #OP #CLa #ph #OP #CLd #C' #OPf #^ #CLh #{= i #HK} #OPk #N l #sffm #pHn #r o #_ĵp #_ = q #[Ǯ r #[ff s #KMt #Nu #K #CL #CLx #~ y #O&z #h= #CL #CL} #G4~ #D #E1 #B-l #OP~ # CL #}  #K  #p #lL #jf #CL #C  #CL #OP #I8 #!CL #"CL #$C #'CL #*OP #-m  #.K #1CL #2CL #3CL #6M$[  #7y4 #8e #9e #<@ #>Tk #?[34 #@V(! #A{&f" #Bhy# #CI $ #EIV% #FKm& #GK ' J( }  CL* CSc CL- A+ OP CL0 pӖ 2 D43 G@4 J| OP6 ] CL8 BM CL: "F %CL< 'uS[ = (D *OP ,CL@ /LCA 0F)B 1K 3CL 4CLE 6rs H 8JsI 9[g]  ;B) eA fC: gG hCμ iBc jA kG ) lE nx qEV sO uI~ vJP yr  {K6 ~k)  BZ` y L L A#?  JZ e7& CL E Ee OP CL CL CL CL CL CL CL Ng PS3 `C3 MH GH GH CL CL CL CL CL CL CL ] CL CL CL M CL Ca CL CL A CL CL CL OP$ H% H& H CL* FBm, T: OP. N CL CL OP CL3 jι4 A6 -g7 .gFg8 /^ 9 2kB`: 4g; 5ig< 6iL 7OP> 8P˙? 9D]@ :DjrA ;Rxt C[F ?DTG @MUk BVp D[ ETɚ FYO  Ib Js  Kh  Li  Mmh  OpY ! RCL  SCL TCL V\U  YCL [iމ  ]|R8  ^Cu _d  a  do۔  gCL CL CL CL CL E] HL z %  iY ]% d  gx  f  r3 B# PF j| E B  Nܻ oa Al u'  K  v3  `f Yff ^  CL CL CL CL CL OP OP OP CL ED H0 Hv G Lp Lp}e aXRe}f #LG& M s N  CO !D̨P "@UQ %TR &OFS (o T )@)OV *\ X +CFY -D1A[ .>:\ /Wa^ [e_ \s9 ` ]Aa _Cb `Cc a@{ cCL dCL fCLg ijS  kCL lCL mCL nCLm qF6n t}c4o vQ!  xCL yCL zCL {CL |CL }CL CLw |px Ey S OP{ Z | b|m} v~ ] Bu F } ~ OP _Q | CL E2 Co F FM#u CLt CL   k  hC 5 HZ6 HŨ CL CL: G; H< VU? }T  OP CLB u C yhD @'E _ >F oG [pH C`p L XM JffN iO 7 P }; Q F?R F/T !CU "DEV $C  %OP 'CLY ({/ Z *zr  +OP -CL] /i/3 ^ 0k  2OP 4CLa 6pA  8OP :CLd OPf @^ ACLh C{= i DL-o FOPk GN l Hrm Jpn Kp o N_9op P_ q Q[. r R[aH s SK{t TNu UHs WCL XCLx Z~ y [Jz eU CL CL} G~ EBQ E B3 OP~ CL ~  Kx  x2 s3 jf CL  C~ CL OP  H CL CL C CL OP m  L;  CL CL CL M  { jg i0 @{ R X34 Yff! wٙ" c# Pff$ I% K & J' K&( {  CL* CSc CL- A OP CL0 ph 2  D?3  G/4  J  OP6 ] CL8 B= CL: Gn CL< u6 = D-  OP !CL@ LL>A MFB NC PCL QCLE Sqt H UADI XjQ  [B8P \A ]C> ^G _C aBrd bA: cG&" dE fy* iEV jO lH\ mJP pr  rK) uj  w{  yxb zK {L ~@Q  J bl CL E D OP CL CL CL CL CL CL CL Ng Ng ^ GH GH GH CL CL CL CL CL CL CL ] CL CL CL MY CL C CL CL Al CL CL CL OP$ H$% HY& P\ CL* F , S OP. Nţ CL CL OP CL3  jd4 "A6 %^7 &V8 'L9 *k$j: +h; ,ky< -i9 .OP> /Os? 0D[@ 1DdA 2P 3OPD 4K~PE 5CF 6DZG 7L ;TC4 YF9  AeF Cs'  Dh  Ei  Fmm  Go۔ ! JCL  KCL MCL O`S  zCL |j63  }Fb ~Cw d/  5 o۔  CL CL CL CL CL Ew; H  {/9  iwb ]"" d7'  gL  fp  nvf B'0 NW j- Ep B  O4  qP Ak u'  Uc  vٚ  `f X ^  CL CL CL CL CL OP OP OP CL E. H.2 H G Lp Lp}e S}f F M uK N CO @DY#P A@LQ DTуR EO;S Fo T G@V H\ X JCDY LD[ ML`\ NYP^ Qb΋_ Rs* ` S@Ta VA{b WBc X ZCL [CL \CLg _j  aCL cCL dCL eCLm hFn k~c4o lR4  nCL pCL qCL rCL sCL tCL uCLw xy34x yLBy {QǮ OP{ Z | aR} t5~ ] B F? }h ~ OP Wj | CL E~ C= F Ju CLt CL ~}  l&  h7L 5 Ho{6 H CL CL: FL; Gͧ< Wa? |ƚ  OP CLB u C @HD  @gE  _F  mG WH Bޔ L KǮM GHN VO U P } Q F?R FET CpU D0V B OP CLY !{/ Z "y  $OP &CL] (i ^ )lD  +OP -CLa /p|  1OP 3CLd 5C~ 7OPf 9^ :CLh <{= i =PI ?OPk @O l Aom Bo =n Cp o n_n$p p\u q qV\) r rY( s tKt uNu vI& xCL yCLx {} y |Nz ~X CL CL} G'~ E F; B6 OP~ CL ~]  K  Rf P3 L3 CL  Cu CL OP  Cpi CL CL C4 CL OP mv  LM  OP CL CL LH  ~ j i&g @\ K Q\ Q! c" V# z$ I% J& J ' K( z$  CL* BM CL- A+ OP CL0 p- 2 D3 G%4 g ; CL6 ]  CL8  r  6CL: 8GC ;CL< =u6 = >D @OP BCL@ EL7WA GFAB HLO JCL KCLE Mqˈ H O} I Rrd  UB8P VA: WC: XGx YD ZBrd [B  \GC ^E `y< cEV dO fH gJP jr  lK+ oj ^  sa x K& LC BI  J  ^ CL E: D OP CL CL CL CL CL CL CL Yg M `i I F{ H CL CL CL CL CL CL CL ] CL CL CL M CL C CL CL B} CL CL CL OP$ H% H& M CL* Fe, S` OP. N CL CL OP CL3 j4 A6 \y7 X38 !K39 #k/: %og; &m< 'r33 (OP> )N? *DXU@ +D[ A ,O -OPD .JE:E /CLF 0DYG 1LR 4TVg 5Y 6Rg 7Y  bed cs]  dh  fi  gll  hp ! kCL  lCL mCL o\&w  sCL uiމ  vw  wCSc xd  z }o۔  CL CL CL CL CL Et H zT  in ]"" d(  gx  f/  s B, MԄ j< E: B޸  OF rA A u'  Jz  vDD  `3 Z ^  CL CL CL CL CL CL OP OP CL E H+z H G Lp Lp}e z[D}f F'W M 7s. N 9C=O :CP ;@|Q ?TR @OCS Aof T BZY V C[J X DCEY FD[ H\ IU=(^ Ld) _ MsG ` N@ea PBb QE=qc RB\) UCL VCL WCLg Zj  \CL ]CL ^CL `CLm cFn }o QM9  CL CL CL CL CL CL CLw Bx Ky Q OP{ Y | a q} u ~ ] BE F } ~ OP X. | CL DI C( FN Oau CLt CL }  kV  g 5 Hl6 H CL CL: F; PƜ< W!? |  OP CLB u} C @D @sE Z=qF n >G [pH B L KRM GN V >O ' P ~ Q FR FT CU D V B OP CLY { Z y  OP !CL] #i\ ^ $mJ  &OP (CLa *p-  TOP VCLd XB ZCLf \^ ]CLh _{ i `N| cCLk fOc l gzpm hwzn kE o l_<p n[{ q oW3 r pW8R s qKt rN<u sH uCL vCLx x}; y yQlz {M۽ }CL ~CL} G~ E F: B1 OP~ CL ~24  JN  U3 Sf LP CL  C. CL OP  n  CL CL C CL OP lD  I  CL CL CL Ml  Y h g  @.# IB OQ Pff! K&g" zS4# OFf$ I% J& J' K( @1 CL* B CL- A$Z "OP $CL0 &pmy 2 (DC3 )G)<4 *h ,CL6 -] .CL8 0}  3CL: 5F 8CL< :ua = ;D =OP ?CL@ BL-A CFB EN GCL HCLE Jp H KC)I L[  OBF PB  QC RG SD% TB UBE WG` E xܩ EV O I~ JP r  K+ ixB  m$ y' K= Lq B  J  [# CL DD DO OP CL CL CL CL CL CL CL Ng Lc3 Yg J E Hz CL CL CL CL CL CL CL ] CL CL CL M CL C$ CL CL ^  CL CL CL OP$ He% H6& G2 CL* FM, R OP. Nt CL CL OP CL3 jT4 A6 H]7 IZ8 JR9 MkB`: Og; Pk < Qh ROP> SM{? TDN^@ UDN^A VL  WOPD XI=)E YCF ZDHG [K] ^`ɚ _f3 a^g bZ5>  ed% frЫ  gh  hi  ilo  koXB ! nCL  oCL pCL r^  uCL wiQ  yHa zB {c  } o۔  CL CL CL CL CL Eo GM y  iOz ]"" d D  gn  f  nL BP P` kFX E B)  Na Tne pӖ  u  PA  vٚ  `f [  ^ CL CL CL CL CL CL OP OP CL EP H5s H G= Lk Lk}e }A }f Eɰ M 8u N :C?O ;DUP <@Q ?UR @OTS Ao,| T C}i V DYT X ECEY GD+j[ H\ IV^ ue_ vsUV ` w@ea yBLb zCc {A }CL ~CL CLg j  CL CL CL CLm FJn }o O  CL CL CL CL CL CL CLw zx Iqy RQ OP{ X | dZ} w[~ ] Bw F ~# ~ OP w | CL D$ Cj F Mu CLt CL @u k  g 5 HM6 Hx CL CL: I; N< X[? |j  OP CLB u} C @HD @dfE WF u G RH Bv3 L  NzM  J4N  ZLO  P } Q FR F!OT CU =DV >BE ?OP ACLY C|` Z Dy@  EOP GCL] Ii= ^ Jn`*  LOP NCLa Pq^  ROP TCLd V|  YCLf Z^ [CLh ]|j i ^N] aCLk dN l exm fu=qn iDo j`p l] q mY r n[ s pKp t qN!u rG&" tCL uCLx w}f y OJMz NsY CL CL} Fm~ Fv F BBz OP~ CL ~'  JhV  Qs4 Og G3 CL  C. CL OP  qJ  CL CL C~ CL OP l  H  CL CL CL Mb:  @c3 g  ff @.#  HR  N   O! D" zy# U$ I*% J& J' K+( z  CL* B CL- !A+ #OP %CL0 'p< 2 )EEO3 *GbK4 +Fk8 -CL6 .] 0CL8 2{  5CL: 7F5 :CL<  C H  CL CL CL CL CL CL CL ] CL CL CL M CL C CL CL B8P CL CL CL OP$ H% H& S$" 0CL* 3F X, 4Q  5OP. 6N 8CL 9CL CL3 @jc04 BA6 EQ7 FQ8 GMy9 Jk>: Kq ; Lo< Mq@ NOP> OLm? PDA@ QDBA RKR SOPD TH 'E UCF VD9aG WJj Z` [f \_S3 ]Z?  aay br  ch  di\  el&  fn ! iCL  kCL CL ]Z7  CL iLl  vR  A c  F  o  CL CL CL CL CL Ei G۵ {LS  ifH ]"" d7'  gJ  fM  q, B+ S˲ mvV E B)  Ne M> fb  u  P̦  s  `P [vf ^ CL CL CL CL CL CL OP OP  CL F] H> He GF Lk Lk}e \Q}f G M 0u N 3CO \DP ]@Q `UG_R aOTS bo,| T c| V dY X fCEY hDE[ iM\ jSL^ ma_ nsc ` o@ua rH.b sDc tAR vCL wCL xCLg {jI  ~CL CL CL CLm Fnn }o OU  CL CL CL CL CL CL CLw @px K\y RQ OP{ W | a_} wa~ ] B_ F8| }I ~ OP u | CL E Cj F- Fw'u CLt CL @J l9X  g 5 HG6 H CL CL: J%g; I~< X?? }  CL CLB u C  D &@dfE (\ >F )nGG *U34H +B L ,PM -M >N .[#O 1^ P 2~ Q 3FR 4ET 6CU 7D V 8C- 9OP ;CLY =|= Z >y{  @OP BCL] Di= ^ EnT  GOP ICLa Kr1  MOP OCLd Q@Q TCLf U^ VCLh X} i YM' \CLk _NE l zffm w=qn I33o ap ^{ q [\) r ^{ s K-t N!u Kr CL CLx }f y Jez OU> CL CL} F~ F+ E B? OP~ CL ~OI  J$  Rl QVf Hi CL  C CL OP  k.  CL CL C CL OP l~k  H6$  OP CL CL Mv  @h f ef @ R Xp Y!  A"  m #  Kf$  I%  J& J' KV( |  CL* B+ CL- A+ OP  CL0 "pPL 2 $E3 %G4 &DB PCL6 Q] RCL8 TzF^  WCL: YH \CL< ^s = _CB aOP cCL@ fLA gFoB hM jCL lCLE np H oFI pfM  sBc tB) uD vGe wD_ xB yB8P zG |E ~x EV Op I~ JP r  K&X ixB  a x L L Br  J VT CL Bo E OP CL CL CL CL CL CL CL Yg Pff ^  K D( HR CL CL CL CL CL CL CL ] CL CL CL M CL Ca CL CL A:% CL CL CL !OP$ "Ht% #H0& %K{ (CL* +F, ,R -OP. .N 0CL 1CL 3OP 5CL3 8jeS4 :A6 =[ 7 >]8 ?S,9 Akz: Cy; Dqs3< Ex` FOP> GKj? HD5@ ID:qA JI KOPD LFE MCyF ND*G OIj RhI So |f }[\  _R9 rf  h  i  kd  n ! CL  CL CL \  CL i  J; Bɀ c  dg o  CL CL CL CL CL Ef Ge z  ico ] jSk  n$  fq  s\ C: N p{ Ex Bٚ  O* O e  u  L}  j{  _ WS3 ^ CL CL CL CL CL CL OP CL CL F  HRw  HR  G Lk Lk}e T8}f G[ M Ut N WCO XC+P ZB3Q ]UaR ^OMS _oXB T `|(# V aY, X bCEY eDF[ f]\ gM^ je_ ks ` l@a nB޹b pF{c qA0 sCL tCL uCLg xja  zCL {CL }CL ~CLm FYn },o N»  CL CL CL CL CL CL CLw ~x I{y S OP{ V | b(} w~ ] BJ EZ ~# ~ CL U | CL E$ Mgy F Du CLt CL @@ kR  g 5  HqL6  H CL CL: IL\; FE< Y? A CL CLB u ~ C }D  @hFE "XF #lzG $[\H %C L &X\M 'T>N (bGO +@P ,~24 Q -FxCR .ET 0CxU 1CbV 2C^ 3OP 5CLY 7~l^ Z 8{  :OP iLl ^ ?AO BCL CCLa EBCLCLd@CLf]CLh ~ i MiCLkNt lA m nRoap] qX rZ. sKtNuI CL!CLx#} y$Op^z&M\(CL)CL}+Fm~-F.Eg0BM^1OP~3CL5~ 7I 8`ɚ9Z4:ZidCL fD- iCLlOP oqˈ rCLsCLuDQNxCL{OP~l GW7 CLCLCLMK @fjvfj@Ee].daHdB!C"s#Gfg$IB%J&J'K(: CL*B1 CL-AOOPCL0o+ 2E3G4CCL6]CL8y@Y CL:IwCL<rs =FsCLCL@L#AFWBCrCLCLEof H@bIe BrdB8PD4KH ,D|-Bw.BF/G0E2x5EV7OP9I~:JP=r ?K BixB D\Ey%FLGLJB KJMSIOCLRB6KSE-UOPWCLXCLYCLZCL[CL\CL]CL`PgbNgc_ffdFe@fERCLCLCLCLCLCLCL]CLCLCLMCLCCLCL^ CLCLCLOP$Hs%Hھ&KCL*F&,ROP.N~CLCLOPCL3jQa4A6W37Ws38Jٙ9k:og;mg<tyOP>J?D(T@D-AHOPDEECiUFD>GHbjP q hS3 \. dsqٵ h" i\ k nQ !CL CLCL`6 CL i "x0 #B\$bA &)of ,CL-CL/CLXCLYCL\E_]G`z % bi<=f]gj' ho ifTj lpfoCkpMru sETuB xOyN|d }u ~ V]% uD `Y^CLCLCLCLCLCLOPCLCLGF7GHGLkLk}e&N,}f G_ Ms NCeODgP@uDQUaRO[Souq T{[~ VXs XDHYDL[L`\O'^dX_s9 ` @a"F#b#F{c$BE&CL'CL)CLg,jx .CL/CL0CL1CLm4FN0n8}o9M ;CLCL?CL@CLBCLwE|xFHyGQHOP{KV"# |Mc}Nw~Q]TBCUFKX|= ~ZCLe7 |CLDlFF)GLuCLtCLAk J g 5H6H;CLCL:H#;O<Z?ACLCLBup CC7D@hFEYffFl GR{HC7 L].MW=qNdO@P~24 QFiRETCuUCVCOPCLY Z~OI CLCL]iLl ^CL!CLCLaCpiCLCLd@ACLf]CLh iOO CLk NJ lBf m@ nVLoap^R q[ rZH sJ:tNuJMCLCLx ~ y!Qsfz#Qe)MCLNCL}PF~RG[SETB^UOP~WCLY \I ]U^G3_NaCL cDVfCLiOP kp nCLoCLqEѕtCLwOPzl8 {FV' }OPCLCLM }ge@w\aQb >!of"^ #Gٚ$I%Jzy&J 'K=(CfCL*B1 CL-A^vOPCL0of 2Ey3H8,4dCL6]CL8y CL:JXCL<q =F7 CLCL@KMAF~BBPCLCLEo H|.Ird "Brd#B8P$D_%H[&DS'B(BUZ)G*E-x0EV1OP3I~4JP7r 9K&XXC?y>@K3ALTD@Q FJHP6JCLLAFMDOOPyCLzCL{CL|CL~CLCLCLNgNg`ɚG G _ > CLCLCLCLCLCLCL]CLCLCLMfCLCCLCLB=CLCLCLOP$H%HJ&PCL*F!,Q&OP.N*pCLCLOPCL3jC"4A6Ng7O8Df9k(:pL;oL<pOP>I*?D@D]AGSOPDDECX#FD 'GHpVkrɚj3\  `] q.  hׄ  h  kK n% !CL CLCL[Y@ ACLCixB DJ;EBMGc ID(NLo7 OCLPCLQCLRCLTCLWE]XG[{ ]iN`]ai co+ dfE gnjCkQlxmEpB) sMLtLewdp xu ~ yJ y `vfZ3^CLCLCLCLCLCLOPCLCLGGVGeGsLkLk}eI~J }fHU MsM NCOC P@Q UiR OTS oI T{/ VXm XD6KYD1A[9\K^a6B_sr `@paBT{bAcA!CL"CL#CLg&jJk )CL*CL+CL,CLm/FGn2}lo3L 5CL7CL8CL9CL:CL;CL\\ s?Jt@NtuAKPCCLDCLxF~# yGKzITKCLLCL}NG~PG"QERBSOP~UCLW@gvZIw [JI\Ap]C_CL aE]dCLgOP hAdFjCLkCLmFmCLOPmh Fxk CLCLCLM Fghh@Qe8Ro\n8R!Cl"t#$I%Jk&J'K!(C{CL*BUZCL-tz CLCL0mm 2EE3Hl4F=CL6]CL8y# CL: CL! CL< pmy = FR CL CL@ JZA FZB G9 CL CLE p^ H {+I _V`  B BF DB H* "DV #B $BUZ %Go &E (xl +EV ,O? .I$ /JP 2r  4Kj 7ju  bV cy% dL eL h@Qi  iJ|1 kN mCL oA[ pDt rOP tCL uCL wCL xCL yCL zCL {CL ~Yg Yٙ aY G  G  _ >  CL CL CL CL CL CL CL ] CL CL CL M CL C CL CL AK CL CL CL OP$ H^% Hv& I- CL* F#, Qdp OP. N6 CL CL OP CL3 j2 4 A6 Qg7 L8 K99 k: x; |4< w OP> H? Cy@ D|A G3+ OPD C`E C>F CPG G  fs3 l0 cɚ ]j  +e  ,q)g  -hׄ  .h  /k  0m ! 3CL  5CL 6CL 8]+  ;CL =ixB  >{H  ?EV[ AbE  BG^u  Co  FCL GCL HCL ICL KCL NEYg OG Rz)B  Tii! W] Xi  Zo  [f(  ^p< aCI bSs c|^  D Bٚ  M JX dc  t  Rh  wU  `3 Yf ^ CL CL CL CL CL CL OP CL CL G= GuQ G[  G5 Lk Lk}e B\}fHh M u N C%O C P @nQ Uq/R O;S o; T z V Wa X DhY D7[ \ J""^ e _ s ` @]a Bzb D@c Bf CL CL CLg j  CL !CL "CL #CLm &F7n )~o *L  TCL VCL WCL XCL YCL ZCL [CLw ^~x `HLy aP bOP{ eUfg | gbQ} hw&~ j] nB+  oF7 r~# ~ tCL v{ | xCL {Dz }IL\ ~F L%u CLt CL A  ko  g`B 5 H`6 H CL CL: G; M*< [4? Bɀ CL CLB uS[ C @/iD @E hGF zG UH Cv L hfgM dN sQO @=PP ~s Q FLR ET CIU CbV y]w  CL CLY x Z @ CL CL] i[ ^ DG CL CLa C CL CLd BE CLf ] "CLh $@i %P> 'CLk *O. l +G m -FQ n /\o 1ap 3c# q 4aL r 5bq s 6Jt 7N u 8LF :CL ;CLx =~] y >Ldz @Sd BCL CCL} EG-a~ GG _! IY" l3# B$ IA% J`& Jw' JK( @a CL* B} CL- z  CL CL0 l8 2 E3 H\p4 D/7 CL6 ] CL8 wS  CL: D CL< o = ET CL CL@ JāA FQB F, CL CLE o+ H KI or  Bn BUZ DnQ H9Q D Bɀ Bc Ge E Ix LEV MOp OG5 PJP Tr  VK  Yj  [e6 \y% ]L ^L a@'s  bR_ dN fCL hAW iD1  lOP nCL oCL pCL qCL rCL sCL tCL w^) xPg za {_ |YG }[34 CL CL CL CL CL CL CL ] CL CL CL M CL C  CL CL @u CL CL CL OP$ HŨ% Hݢ& Oa CL* F&, Tʆ OP. MO CL CL CL CL3 ji4 A6 b7 T38 L339 mk: z4; 3< w4 OP>H>b?C@C#AFOPDFEC FCGGj p33f3]J !ci"p $hׄ %h" &j 'mv !*CL +CL,CL.[ 2CL4i 5I>6Du7bE 9A c{RCLgAk  CCLDCLECLGCLmJF3 nM}goNL#A PCLQCLRCLTCLUCLVCLWCLwZ~x[F#y\QL]OP{aT |cc }dw~f]iB jFGm~l^ ~pCLro@Y |tCLwEFTFFuCLtCLBbk$ gA 5I6HCLCL:FxC;Ib<[T?CCLCLBu' C~dD@HE]FvGP(HC LhfgMd\NspO@SP~l^ QFERETCK\UD*Vx CLCLYvK)?C2@CAFzpOPDJ6ECFCGGxrC4 xVf!og"^3A %]'pF (h )h" *jp +mYk !.CL /CL0CL3\5 ^CL`i a~l^ bCcbs dH fof iCLjCLkCLlCLmCLpENrHK6u{Z wilz]{i |ouq }e qfD<TN,pmBٚ NM[tY t N pL `iZ3^CLCLCLCLCLCLCLCLCLH<GEFGLffLff}ed^_}fIű Muh NCOCcP@Q$URR%O4S&o T'z7 V(W= X*EbYY,D8[-h\.H[^1c=_2sU `3@Ia5Bb7Cc8@Y:CL;CLA:?H*@ECxYFEVGOII~JKMr OK?RB |~h4}zk~M IZg+ QPCLCEROPCLCLCLCLCLCLCLYgPgcVg~kz{}W CLCLCLCLCLCLCL]CLCLCLNCLCCLCLv CLCLCLOP$I%H&ICL*EB,Q8xOP.LZCLCLCLCL3iٴ4A6a7QL8K9p@8:C;E3<Ag CL> M? C@CĽAL|CLDMiEC5FCGNs)x3EpfF^R IdxJq Kh Lhׄ Mj63 Nll !RCL SCLTCLV^p YCL[j \Ci(^E]_c!( `@p aoXB dCLeCLfCLhCLiCLlE{mHXp{w riu]wj' xp| ye_ |qDSo,| VIBB Ny# { t T ws3 `s3Z^CLCLCLCLCLCLCLCLCLHo{GFGSLkLk}e`X?}fJ Ms NCOD&PAE Q"UVR#O*S$o; T&zb V'WU X)EY*D:[+c\,P^/e_1s `2@SRa4Eb5D0c6p8CL9CL:CLg>k6 @CLACLBCLCCLmFF$n}goL8= CLCLCLCL CL CL CLw|QxH.yQzOP{U |c%0}w~]BF)"~# ~$CL&Z |(CL,Dn-G.F1LZu3CLt4CL7B8j 9g;e 5;I+K6dI$fCLgCL:iEd;jQ.<kZF?lEoCLpCLBrt CtDw@Eyg{Fz@aHG{]H|C͎ L}@fM~{=qNJW O@P~Ü QF>KREѕTCPUD>YV{a CLCLYs ZA/CLCL]i ^E*CLCLaDCLCLdACLf]CLhAiLCLkOX lI mGH n]fobCp_q q\L r\ sJ9tLiuGwCLCLxr yPTzK"CLCL}G`~GwCFTHACL~CLAH SgSk3,N+4.CL 0: 3CL4CL 5,7CL8CL;U;=CL>CL@w3 AH DCLECLFCLIMl JGfK|Lv33O@HQ]RaS^!Tt3"U`s4#VM@$WJ%XKL&YJ`'ZJ!h(] `CL*bBeCL-g~ CLCL0pX 2E}3H4D}CL6]CL8x CL:D̘CL<of =ECLCL@JZAF-JBB5CLCLEx:D HAIk k jb EVB @-Sl8 ixB B BxEVOI+KJr K"B @QzLI o^  SO6?C@CAN9CLDNEC0VFCķGN#tzr`_v `1qr hׄ hׄ i l !CL CLCL[ CLkw CwBcн A| oXB CLCLCLCLCLE_H{ !i$]%ju &p| 'eн *qI.D/Tw2t 4T6B 9OMN:GCKR}ETTCNUDVVy CLCLYr ZBCLCL]i ^EGCLCLaECLCLdAKCLf]CLhAiQCLkP lI\) mG=q n]3ob~p_ qZk rZff sJgtLguF dCLCLx yK,zP[CLCL}G`~GFQACL~CLAt@ I !U"Vf$P&CL (t *CL+CL -.CL/CL2Q՚4CL5CL7jp 8I ;CLP[?D&@D3AO3CLDNFECFD @GPrgxip`\s e$qٵ hׄ hׄ i l~k !CL CLCL_ CLk t>u Cc noXB  CL CL CLCLCLE*Hj{ iH]k ph  e{ #n&EBT'T~;*q -V/B 2O3G 4Dp~7u 8V- YVf?^@CLACLCCLlCLmCLnCLoCLqCLrCLuHJMvGwG .xG|Lk}Lk}eq}fVJ  Msz NC OCPA\HQUeRO;SoXB T{L VXW XEYDOn[жa\Or^dl_t9 `@6aDffbCcC34CLCLCLgkl CLCLCLCLmF"n}oM CLCLCLCLCLCLCLwCxIyQ\)OP{U |c@\}u~] BQ4Gw7| ~9CL;e |=CLADBGCEFJhuHCLtICLLBgMjD Ng/ 5PIc6QIUSCLTCL:VEV;WJa<XZV?YE2\CL]CLB_tj. Ca~DdA"EfD >FgW>GhNHiD LjFBMkBRNlNqOm@{P O QF>KRETCV0UDqVx CLCLYr# ZBNCLCL]j ^ECLCLaEdCLCLdACLf]CLhB"iQ5CLkP lJQ mGH n\ obp^ q\R r[ sKtLVeuICL CLx K y Pz M\ CL CL} GX~ G. FL" B> CL~ CL A I  W Xvf P CL  z[  CL !CL  "Q #CL $CL &C~ )CL *CL ,oK  -I  /OP 2CL 3CL 6NJ  7I `B ay dA fV g^34 h^q! i}ٙ" j{# kWf$ lId% mLJ& nJD' oI( r}  uCL* wA" zCL- |~  CL CL0 p| 2 E3 H4 DaC CL6 ] CL8 wQ?  CL: K; CL< oK = E CL CL@ JāA FB B0 CL CLE z? H |#I hZ  m<8  m  k  jb  j  B  m<8  j>  B x EV PI I~ JP r  L EV DE {H JP I o^  Q QR CL )E *D +OP -CL .CL /CL 0CL 1CL 3CL 4CL 7^ 8Q 9bٚ :M@ ;OQ CL ?CL ACL BCL CCL DCL ECL F] GCL HCL JCL KN) MCL PC QCL RCL Tx0  WCL XCL YCL ZCL$ ]Ki% ^I:& `Hnm cCL* E, T ~ OP. LȐ CL CL CL CL3 i?4 A6 ^7 Q8 Hf9 u: GL; G< Ef CL> Q? D@ D?A Q CLD D|E DF DdG Q  { @l x a  cS q  h  h  ixB  lo ! CL  CL CL [g  CL j  Ge B c[  ϊ of  CL CL CL CL CL E H_) | z  jl ] j  p^  e7  r) E Oo $r#  &Tt (BH  +P TD1d UDu Xu'  ZL  ]w""  ^a3 _Z3 `^ aCL cCL dCL eCL fCL gCL iCL jCL kCL nHV oG qG)< rGQ uLk xLk}e NCj}fLI M t N C!O D P AeQ UmbR OMS @T {[~ V X:y X E>Y DL[ ˶\ J&f^ dx_ tr ` A2a Bb Es4c B CL CL CLg k;  CL CL CL CLm Fn }o M^  CL CL CL CL CL CL CLw B=qx Jy !Q "OP{ %V33 | (b} )w~ +] .BfN /Go 2xo ~ 4CL 7{-_ | 9CL F: ?E_u BCLt CCL EB Fk  GgZ 5 JI}6 KI MCL NCL: PD; QPA< RZ? SEd VCL WCLB tM C }2D A-E NLF _HG EH DX L NHM ON XqO @^P ~ Q FLR F T C\U D0V |  CL CLY qt Z Bn CL CL] kQ ^ Eѕ CL CLa EZ CL CLd A{ CLf ] CLh B1 i K CLk P l I m HG n \o bap ` q [ r YL s K6t LHu Gf CL CLx ^ y JYz MD CL CL} G`~ G FY Bg CL~ CL Aҩ J^  Z3 Z Sy CL  sF  CL CL   CL CL HBɀ JCL LCL Mk  OI]  QCL SCL TCL WMȇ  XH Y@3 Zy ]A=\ _I  `L aM@! bF34" cy33# dW$ eIo% gLQ& hJgb' iIF( jB% lCL* nA qCL- s O  vCL wCL0 yof 2 {E3 |Hf4 }D CL6 ] CL8 w_  CL: Gn CL< n = Eѕ CL CL@ JA FwB B CL CLE { H |9I q!  ixB  ixB  lo  kK  kh  ixB  ixB  kh  i  zJ EV Pz HR JP mt M  @ E  |5JPIAo^ QQRCLEDOOP!CL"CL#CL$CL%CL&CL'CL*cVg+avg-qy.a/_0dp2CL3CL4CL5CL6CL8CL9CL:];CLR?D@DzARwCLDCi(ED|FDGQ~Af|Yb \!Wq hׄ h iLl l !CL CLCL_ CLkZY { BwcM u[ouq CLCLCLCLCLEH|& jC" ] j  p< e mu BQaEBW HQ5IFJF7Mu65 NUi Qn* R`TS U^VCLWCLXCLZCL[CL\CL]CL^CL_CLcHS_dG-eG,fG,iLkkLk}eR}f EJX Mu NC&OC-PAQURO-SAOTz VW֥ XEYDNu[c\Q ^av_t* `CaCbFpc34CLCLCLgk^ CLCLCLCLmGno MI  CL CL CLCLCLCLCLwAHxJW yVOP{U"# |ai}x!~!^$C"#%Gc(t/ ~*CL,A|/CL2Dל3H*4F7I5u9CLt;CL=B8>jc ?g 5iI6kJSlCLnCL:oDS;pQZ<r[?sDuCLwCLBxt Cz D}AoEN.Fn{GN HD LP4MNNZkO@*PFv QFTRFTCtUDVzu CLCLYq3 ZBk!CLCL]j ^ECLCLaECLCLd@CLf^CLhB}iR2CLkQ+h lM mL = n\ocpaq q]( r\{ sKcNtL?uI&CLCLx yPzQ,6CLCL}Gu~G2FkB;CL~CLAJE 0^vf1^A2WL4CL 6|= 9CL:CL ;Sa?E(@DASUCLD EDFEVGS(gBQ|Pf erf hׄ hJ i l5h !CL CLCL[g CLj r BEd ﭒuouq CLCLCLCLCL%E&HY)|& +jk.]0j 1pmy 2ex 5o38F6;9RC>AB5 DR#oEFFFIuS[ JL Ng; O`ffPQ6fQ^RCLSCLUCLVCLWCLXCLYCLZCL\CL_HZGG2JG#LpLp}eF=4}f=Iη Mu NC.ZOCZPAFQURO8VSr Tz VWU XE%YD^[Y\K^e_tG `D/aFhbEcGCLCLCLgk/ CLCLCLCLmHj n~oM   CL CL CL CL CLCLCLwGxQyWOP{Ufg |c}}yA~^"C#F&}I ~PCLRno |UCLXE~YHZF(]N|su_CLtaCLcB^dk egH 5gI6iJ-8jCLlCL:mD4K;oN"<p[o?qDXsCLuCLBvs Cx|WD{AȾE}cRF~w(GWLHD LQ=qMNHN[ O@ P7 QFTRFRTCUDKVxo CLCLYp- ZB8PCLCL]j> ^ETCLCLaECLCLd@4CLf^CLhA:iTCLkQdj lL mK n]LocJRpfff qcB reQ sK?tL(uI}CLCLx' yIy8zKcCLCL}!GQ~#G$Fu%B['CL~)CL+A -K .]s3/]0Y(2CL 4A 7CL8CL 9q:CL;CL=Jm@CLACLCrk DH GCLHCLICLLN MJNDO@RB=|PH}SO\~S!c"]#xf$Ik%LX&J'Iڊ(} CL*ACL- CLCL0pY 2E݄3HƐ4D!nCL6]CL8wna CL:CCL<n}[ =EOCLCL@IEAEVBCtCLCLEc HAiIi) EVEVixB ixB j EVB ixB E{DEVPzI~Jnk2M BDF  JR I o^ QQRCLEDOOPCLCLDCLECLFCLGCLHCLKlgLb\Mt@NKzPO#QM^SCLTCLUCLVCLWCLXCLYCL[^\CL]CL^CL_NaCLdCfCLgCLiy]w kCLlCLmCLnCL$qL>%rI5&uLBQxCL*zI&,{Uj}CL.`-7CLCLCLCL3iX4AH627v 8os49{x:Hp;J<GgCL>SL?E]X@DuATKCLD} EEFEGSNeBD(@K3i8 dus h" hJ h k !CL CLCLaL CLkd DQNA g N o CLCLCLCLCL!E"H%|` 'j5+]"",kQ -p .e[ 1p4FB5X9y1 ;Rԫ=BH @QwAFI)BF4Eup GWG g `3P3^CLCL CL CL CL CL CLCLCLHYGMG32G!LpLp}eaT}fcJ) M9sz N;C4OdCPeAQhUȕRjO;Sks Tl{d VmX XoEYpDd[q\sP"^vc7_wtc `yC@azIb{Gc|E CLCLCLgk| CLCLCLCLmHn34oMr CLCLCLCLCLCLCLwI)xUBy\8ROP{UDD |d&}v~^CFp} ~CLUi |CLDGFENruCLtCLBj hP 5I6JIdCLCL:E*;IĚ<?D4KCLCLBs C~D-AE/M{F0dG1@H2E< L3UM4SN5`T{O7A|P9r Q:F[GR;F(T=CU>DVAx DCLECLYGp< ZHB KCLLCL]Nju ^OERCLSCLaUFXCLYCLd[@n]CLf_^`CLhbB1 icQ fCLkQ@ lLq mK3 ndLocYRpi# qc rb33 sKGtL&uGCLCLxr yQzKCLCL}GC~GF`A CL~CLA{LD ``g[<CL wna CLCL ò=CLCLV~zCLCLj Gc CLCLCLN H4@yCRpV{ V{! eS3" P\# o&f$ Io%L &JC'I(},l CL*B"CL-~;  CL!CL0#ouq 2%Ev3&H4'D%)CL6*]+CL8-w XCL:ZI]CL<_n =`GgcCLeCL@gJAiFBjCvlCLmCLEo~] HqaItrI} wixB xixB ykQ zi& {B |ixB }Z ~j' k {eyEVPeHJp3VM CDor@#oJIHo^ QPCLEDcOPCLCLCLCLCLCLCLrgr&fvfa_daHCLCLCLCLCLCLCL^CLCLCLNCLCUCLCLx CLCLCL CL$#K%$IU &'LR)CL*,JN,-Rw/CL.2`3CL4CL5CL6CL39iQ4;AH6>F7?y 8@|9B}':DL6g;EJ<FIfHCL>KRz?LES@MD%ANRsiPCLDRr@3 ESEFTFGUQXDYGS3ZC [i ds h" hJ hJ k) !CL CLCL]K CLkQ B1 @`2fb Go7 CLCLCLCLCLEHpc| kZG]""l& q eM o3FrTU}~ QjB. RFFۆu N \ ^,N^CLCLCLCLCLCL CL CL CLH`GeG4G7LpLp}e\}fI5 M_tF NaC8VObCPcABQfVRgOXmSiqHF TjzJ VkW* XmEIYnD`[o\pJP^tc1_utq `wBaxG >byHǮczD)|CL}CLCLgkփ CLCLCLCLmGMn4oM CLCLCLCLCLCLCLwD8RxPyXOP{Uwx |`}vl~^CFw|= ~CLP |CLDCHF98J>uCLtCLBk hC 5I36JeCLCL:D_;PP<[o? D#CL$CLB&s C(|D+B%E-U)F.oG/QH0E L1WM2TN3`=qO4Ag-P5@X3Q6G R7F7T9CޑU:E'V;Q =CL>CLY@D%ZABnCCLDCL]Fk. ^GFJCLKCLaMFxCxCLyCLd{A^v~CLf^CLhB?iTyCLkR^ lI\ mG( ndocpg{ qdk rfaH sKdtL,~uE7CLCLx yIzKӜCLCL}Gg~GޢFA/?CL~CLAҩML _g`3[3CL {a CLCL /CLCLZ-CLCLjb Hc CLCLCLNc$ IC <DJ0R{X#!\"R#ml$I|%L&JM'I8( {/9 CL*B?CL-~ @CLACL0CoXB 2EFO3FH4GDaCICL6J]KCL8Mx:D PCL:RA2UCL<Wn$ =XFm[CL\CL@^JA`F.2BbCdCLeCLEg~z Hi|Il[} om4 pm qixB rixB sixB tB um vixB wBy{EVPrI~Jp M EVE@JPIMo^ SIg;?J<@FpBCL>mR'?nF@oEApSqCLDsy# EuEFvEWmGwR3I{H&g|If}E0~kK cEs h" hJ h k) !CL CLCL]n CLk u @g! CBF o CLCLCLCLCLFHN} k;]""nQ s e>k r&fF~Wu y# Bff QF*Fu6 S' a; `s3M&f^CLCLCLCLCLCLCLCLCLHwG  GR H 5Lp8Lp}e[`}fI MWs NYC8VOZCP[AJQ^V\R_OTS`p Ta|6 VcYW XeEYfD`[g\hOٚ^ke _lt9 `oAaI#bHcDCLCLCLgk CLCLCLCLmGen@oN» CLCLCLCLCLCLCLwJuxU\yaOP{WUV |crj}v(~^CJFx}T ~CLQJ |CLD H  F< ERu CLt CL B k$  h$ 5 IЍ6 Jw CL CL: C4; OE< [.? C CL CLB t C |GD !BZE #^QF $y\G %W.H &F L 'W>M (V >N )bW O *A>P +@jQ ,G[R -FIT .DRU /E[;V 0P 2CL 3CLY 5rs Z 6B8P aCL bCL] dj ^ eE hCL iCLa kF5 nCL oCLd q:  tCLf u^ vCLh xB1 i yM0 |CLk R# l L m J\ n d3o d Dp j) q dq r b s K>t L(u E CL CLx ' y Rdz L< CL CL} Fm~ G< F` Az CL~ CL B1  Mv  a a \f CL  A CL CL  ٓt CL CL RI CL CL rn  De  CL CL CL y!8 V O L Dp H=q L34 LQ! d" Yy# u9$ I~% MG& I' I"( (J )CL* +~'  .CL- 0  3CL 4CL0 6iމ 2 8F"i3 9H4 ;DnQ =CL6 >] ?CL8 As  DCL: F@ ICL< Ke = LD OCL PCL@ ScmA TFTGB UDkj WCL XCLE ZA^vH [j\GI j  EV EV ixB  ixB  nB  EV j'  ixB  E {ey EV PM I J p M  ixB  DF  A J I o^  S uS? vFt@ wE#PA xT@S zCLD |zF^ E ~E~F EkZG SE G~f JD E0 lJ  `  t  i\  h  h  k ! CL  CL CL b6  CL lR  A2 @ i  K+ o+  CL CL CL CL CL F P HU/ }I  l ]"" o۔  u65  e/  r3 F YB @; X B#  S  FU{ "FpK %u  &V  )d  *`3 +My -^ .CL /CL 0CL 1CL 2CL 4CL 5CL 6CL 7CL :H HM ALp DLp}e `}f I M s2 N C;O C/P A_Q VR O;S ph T ~ V [r X EY Dg[ 0\ P^ a_ t ` Aha I{b I:c D CL CL CLg l  CL CL CL CLm G;Yn }&go PZ  CL CL CL CL CL CL CLw DW x R34y ] OP{ Y | a} ukD~ ^ C2 Fӈ } ~ CL S | CL D DB F$5 Ju CLt CL Bݲ l^6  h=q 5 I6 J CL CL: IC~; JMG5< K[? LD% OCL PCLB Rtj. C T~RWD WBE YXpF Zq >G [Z.H \F L ]NM ^LN _WLO `AP a@;"Q bG_[R cFcT dD1U eEV fN. hCL iCLY kEZ lC. oCL pCL] rkK ^ sF  vCL wCLa yF[G |CL }CLd @X CLf ^ CLh B?i S  CLk S l Jp m I{ n eYo d}p kf q cf r d\) s Kt Lu C( CL CLx ^ y OGz H CL CL} Fs~ G F' Ah CL~ CL B? O  `x `` [) CL  wt  CL CL  CLCLC4CLCLj I&Z CLCLCL!D#KQ$D#3%@(EȢ*P+R,QR!.i&g"/^#0Dp$1I%2MJ&3J]c'4I(7~' :CL*nT?oF@pEGAqT`sCLDupmy EwEFEHGS$FIE!o _u^ i\ hJ hq7 k !CL CLCL]w CLmv BUZB)k Tg p CLCLCLCLCLF PH`} md]""qJ w4 e!( r Fn \U ~ BUZB TFwFNu Q cf  `f!Lf"^#CL$CL&CL'CL(CL)CL*CL+CL-CL0H1H?l2G}3Hs7Lu:Lu}ef}f I) MsM NCTOC"PBtQVRO`SpPL TA7aV_ XF(YD[<\U8.^b_t `A)waK\)bKkcDCLCL$CLg'l )CL+CL,CL-CLm0FWn3}`o4T 6CL7CL9CL:CL;CLFuCLtCLB%ala h 5J6JCLCL:C{;Nz<[?DCLCLBs T C}H`DB_EWFo\*GIaHHF LN MSW N_O@P|ƚ QFRFLTDKUE1VEuCLCLYt/ ZC=CLCL]ll ^La?CLCLaFCLCLd@CLf^CLhBk!iVj~ CLk Sc l Lu mJ nd3odPpl qk{ rg\ sLltL,uEMCLCLx@y R7z!G0$CL%CL}'G~QHRFSAPUCL~VCLXBZxq \_3]`^[A`CL b7 eCLfCL ghCLiCLlV(nCLoCLqpPL rK uCLvCLwCLyp{J|C}@<FfLPPn!o"e3#K$I%Mf&Jy'Iľ(@CL*@nCL- CLCL0n% 2F3Hyv4ELCL6]CL8vW CL:AeCL<g/ =DCLCL@}\"AFBC܅CLCLEEVHkxI B B ixB ixB ixB B B  ixB "B$|'EV(P**I~+Kj.rķ0K63ixB 5~8A:K;Ir>g+ @YJrAEʘCCLFEGD͓ICLJCLKCLLCLMCLOCLPCLQCL|t6g}lg~C3q(x>qCLCLCLCLCLCLCL^CLCLCLN'CLD CLCLx CLCLCLCL$K%I~I&OkCL*K,RCL.[3 CLCLCLCL3i4e4A6S,7Q8H 9Aa:O<;M <L#4CL>R?G@EkARCLD| EFRTFEw GQDHLKFqo bؾ v  i  hJ  hb k !CL CLCLaY CLnn DCEBUZFla7 IjcLp| OCLPCLQCLRCLSCLWE"XH[~@ ]n[I`]""asl bxo de grٚjFGkX"n7 oArB\ vSVwE_xE:{vY |T/P dUU `ɚL^CLCLCLCLCLCLCLCLCLHHWGFHLuLu}eIs4}fH Ms NCeBO CP BQWD@RNJSp^ TG@KVjt XFIKYDy[<\[^bX_tc ` Aa"Z.b#[)c$T&CL'CL(CLg+m .CL/CL0CL1CLm4Fئn7fgo8W4 :CLCL?CL@CLACLwDQxFSyGi.OP{nfg |`} rĦ~ ^B͟FB}T ~CLQ |CLDDF6S"KYu$CLt%CL'@q'(m *h 5,J776-J /CL0CL:2C4;3N<4\ <?5Fݱ8CL9CLB;s Ce|VDhCMEifǯFjxLGl`\HmG@ LnW.MoTkNp`&gOq@HPt{ QuF?RvFbTxDUyF"iVzF2|CL}CLYt ZC~CLCL]m ^RCLCLaQCLCLd@CLf^CLhB+iVDCLkSM lJf mIG ndoetpj qg re{ sLZtLuBtCLCLx@gvyPzJZCLCL}Gg~HF ACL~CLB k ab(\ٙCL z$ CLCL ~CLCLDJCLCL-oK .W~ 1CL2CL3CL6P 7J38Dy:@Q@T AQk!Bo9"Cg4#DN0$EI%FM&GJ'HI(K@NCL*PCuSCL-U~Ü XCLYCL0[uZ 2]Fx3^HW4_EaCL6b]cCL8e| CL:ACL<p =HHCLCL@KAFBBCLCLEBEH~~IY ixB ixB m4 l8 EVixB Z}W l o> } EVPIKjtdKmixB AAפK"I~g+ Y.EʘCLEDOCLCLCLCL CL CL CL CLvgr`vfOpMRPCLCLCLCLCLCLCL^ CL!CL"CL#N%CL(D *CL+CL-zcz /CLXCLYCLZCL$]L-g%^I\&aNַcCL*fL:',gSiCL.kI\nCLoCLpCLqCL3siOz4uAH6x\p7yZ8zL9}A:I;K<FC3CL>REL?G @E:AQCLDn$ EFFEGQ];H3JEr a=wp i/3 hJ hS kQ !CL CLCL\5 CLo AAhBmv X` pӖ CLCLCLCLCLEH~OI n3]%uS[ z % e ni F!]#@9$Cq&A )T*D-+DL.v 0O]6 3dj 4a35Mc36^7CL8CL:CL;CLCL@CLACLDHEHi"FHHHKLzLLz}eeyx}f'F Ms NCyOA"PC'QXRNMSp$ TGVj XFaYD[.\\a^d_oUU `@ۘaZ\bZkcU{CLCLCLgm CLCLCLCLmFn~oY CLCLCLCLCLCLCLwMxPHybuOP{lUU |`{}qm~^BÂG1B ~ ~ CLW |CLDE<FQP?wuCLtCL} nu  h 5#JN6LJiNCLOCL:QC;RJe<S\?s?TFyWCLXCLBZsF C[|D^C?E`eFay\GbNfHcG LdUqMeRNg^QOh@Pjx QkF~RlFxCTnEkUoFVpBrCLsCLYuuS[ ZvD- yCLzCL]|m ^~LCLCLaMCLCLd CLf^CLhBwiRFCLkT( lM mK ncffoeΕpo qj= riQ sLtL#cuBgCLCLx@QyL&zFCLCL}G-a~H%bFSACL~CLC P aFfa] CL xo CLCL W,CLCLI "CL#CL%h6 &Z )CL*CL+CL.PL /a30Y1Rq4G#6R7Vff8U!9s ":i#;Lg$S?H @EFAKfvCLDwS EFFFQGRHHKVfFt _KexV i= h hb k !CL CLCL`P CLo۔ | AZn PM q CLCLCLCLCLF9H ~z  n/]%v_n `@a]&fbZqcSCLCLCLgm CLCLCLCLmF?n4o[b5 CLCLCLCLCLCLCLwXxUByhuOP{kDD |_u}qj~^BGk~# ~ CL X |5CL8Dn:E`;F>Lu@CLtACLD|w Eo& Fi^6 5HJl6IK%oKCLLCL:ND;OO/<P\r?QF~TCLUCLBWt!N CY{/D\CyE^`>F_rG`KLHaG} LbU\McQRNd]ǮOe@kPhxt QiFRjFTlECUmGVnHwCLCLYv ZCBCLCL]n`* ^KUCLCLaL]CLCLd@CLf^CLhBMiVCLkTB lM mK neof!plff qh re) sLtLGuAxCLCLx@QyUzGCLCL}Gg~ H/] F Ab CL~ CL CSc gzT  c cs3 ^ CL  @ CL CL   CL CL K CL CL !sc  "T  %CL &CL (CL )c ,Sf -M .Va 1G 3M 4O4 5Pff! 6k4" 7X # aF$ bIW% cMf& dJ' eIu( f@ hCL* jA  mCL- o@ rCL sCL0 utz 2 wGA3 xH)4 yF( {CL6 |] }CL8 x  CL: Bc CL< i = E2 CL CL@ fA G gB @l CL CLE E.{H dI r;  EV EV j>  ixB  ixB  EV EV ixB  E { @  P I K& sÝ K8 i  C EL L I~ g+  S R?? H@ EA Md CLD 7 E FF E~_G R G J D3 u8|  `= y  i[  h  hb  k. ! CL  CL CL cM  CL p3  yz  B" n  PO  qt  CL CL CL CL CL F H ~s  nN ]( w4  {  e  n3 F [k   A A)  T3^ !EC "E4 %w  &W9E  )e  *a +Mp T^ VCL WCL XCL YCL ZCL \CL ]CL ^CL _CL bI( dH eHj  fI~ iL jL}e `X2}fDD| M sM N CrO @"P CQ ZtR MwS oK T GV iT X FlY E_[ \ ]^ e'_ n ` @a Wqb X+c S@ CL CL CLg m  CL CL CL CLm Fn 4o \  CL CL CL CL CL CL CLw Px TǮy g# OP{ k"# | ^~} rc~ ^ #Bb $G[ '~s ~ *CL ,Z7' | .CL 1E%s 2EV 3F 7Gu 9CLt :CL N cRO @h/P y Q FR FyT FQU GV GF CL CLY wB Z C CL CL] oXB ^ L CL CLa M CL CLd ~  CLf ^ CLh Ci(i VD CLk U l L m K\ n e o fp np q hG r fk s L(t L u @֠ CL CLx @gvy Sz G&" CL CL} GC~ HF  F Anq CL~ CL D Q;>  a bf ^ CL  |ƚ  CL CL  T CL CL V CL CL qJ  ] V  CL CL CL HP  J^3 KYg LSI OGr Q~=q R@p S\! Tuf" Uf9# VJ,$ WI% XM& YK+' ZIq( [ATJ ]CL* _EZ bCL- d}  gCL hCL0 j{ 2 lG3 mH4 nG pCL6 r]j sCL8 ur  xCL: zBw }CL< sF = I CL CL@ KA GXB @ CL CLE DgH GAI YR  k)  jD  B  B  EV lo  ixB  B  B { @  P I){ K&X t K1C k  F EL L I} g+  Xp Eʘ CL E DCLCLCLCLCLCLCLCLt6gtDDM> MR!O#CL$CL&CL'CL(CL)CL*CL+^,CL-CL/CL0NK2CL5C6CL7CL9w| CL?CL$BL0#%CI &ERfHCL*KL;,tW7vCL.xK+zCL{CL|CL}CL3i4AH6U 7Sy8M6f9B:N;L <J3CL>T"?Hl@E7AH+CLDr# EG:FEGS7FIK3Ev b'y ii hׄ hq7 kK !CL CLCL^ CLpX x+ Bo O~ qˈ CLCLCLCLCLFHo~ o]%x0 |& e!( mfGY0  AL A TEP* Aa" BaCMD^FCLGCLHCLICLJCLLCLMCLNCLOCLRII?THUHfjVIYL\L}e_}f CL?CLBitx CjBDkC:Em[Fnp\GoQHpHs LqXMrV@Nsb(Ot@#Pw{ QxFݱRyF:T{FU|HCV}DCLCLYw3 ZDCLCL]p ^L*CLCLaM.CLCLd' CLf^CLhCμiSNCLkV lKǮ mJff ncLogq?pv{ qq# rp{ sL-gtLuACLCLx@}ByQ^zGCLCL}G`~HPFòAIfCL~CLDuQ b;3b^њCL tz CLCL aCLCLEsZCLCL0f 1^ 4CL5CL6CL9Q :Z;STu?H&X@EAGCLDn EG3FE7GTGIJ(E3wQ dGz# i h" h kZY !CL CLCL_ CLq+ v BEpY Cr# CLCLCLCLCLFH~Ü o/](y } e/ rGX7@yB!B\ %TH&E'E+w ,SK /a" 0_6f1I2^3CL5CL6CL7CL8CL9CL;CLF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuR~ ce`CL sU: CLCL ᭕CLCLSCLCLf7 _ CLCLCLR} ]WQS3"G$Aff%D@&D!'Gf"(v#)Sfg$*I~%+M8&,KV'-I(.A0CL*2E5CL-7}h :CL;CL0=)b 2?HU3@I4AGCCL6D]ECL8H@uJCL:LBOCL<Qt =SI}CLCL@L AGλBA]CLCLEEZHAwIc ixB ixB EVEVEVixB [g EVk"" {@ PI\OJPuK m DF H1tK8IHWg+ SgT?hH5@iEAjGglCLDnn EoG. FpEGqTAuDvG\wCyw |cV}}z0 ~i h" hr kw !CL CLCLdc CLq w| BpX P rk CLCLCLCLCLE"H~ n]](zT ~24 e/ o G8]v AA T›EEtw WG _ww afJ3^CLCLCLCL!CL"CL#CL$CL%CL(I*H+H5,I/L0L}e`}f@_" M# t( N# C~8O# B_P# DQ# ]R# MAS# o7 T# IwV# m X# F|Y# Fa[# \# [s^# c׏_# s `# BRYa# YO\b# [#c# U# CL# CL# CLg# om; # CL# CL# CL# CLm# Gn# ~ٚo# c # CL# CL# CL# CL# CL# CL# CLw# Uqx# ZǮy# c=q# OP{# qW |# \@\}# n=~# ^# C$# GtL# |R8 ~# CL# ^r |# CL# FY# G# GB# *Hu# ,CLt# -CL# 0s # 1qu # 2k J 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu# 5S8 # 6^# 7`# 8[3# :CL # # X5?# HX@# F*cA# Rv# CLD# |& E# G3F# FGG# X"# F# I3# Ei# yq # ^b# |Z # jD # i # h" # k !# CL # CL# CL# ejU # CL# sF # ~Ü # B# r # Bt# srb # CL# CL# !CL# "CL# #CL# &FE# 'Hj# *7 # -o!# 0],`# 1|= # 2@4# 3ejS # 6p`# 9G9# :Tt(# F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu'{S} '{['{[P'{Z|'{CL '{s '{!CL'{"CL '{#D'{/CL'{XCL'{ZC{'{]CL'{^CL'{`k. '{aae '{dCL'{eCL'{fCL'{ibK'{kO{3'{lF'{mF '{pG/'{rB '{sD'{tDH!'{v`3"'{wT#'{x|$'{yIi%'{zMv&'{{Kd''{|J9('{}Bv'{CL*'{c'{CL-'{~Ü '{CL'{CL0'{vv 2'{I3'{Ja4'{IR'{CL6'{]'{CL8'{' '{CL:'{D'{CL<'{pA ='{F[G'{CL'{CL@'{QWA'{IXbB'{C'{CL'{CLE'{G'H'{XwI'{u '{"ixB '{$ixB '{%EV'{&EV'{'EV'{(ixB '{)\^ '{*EV'{+k '{-|'{/@ '{2P='{4I'{5J'{8} 8'{:L'{=EV'{>K'{?H8'{AL'{BIV'{Eo^ '{FS'{W?'{I@'{FU A'{@;'{CLD'{l9 E'{GF'{EG'{W'{Nf'{Rf'{ Mg'{ |D '{ b^V'{D '{kw '{i[ '{i '{l !'{CL '{CL'{CL'{d '{CL'{v- '{!|= '{"C'{#vv '{LZ '{MtU '{PCL'{QCL'{RCL'{TCL'{UCL'{XF'{YH'{Z@'{[pu#'{^]/'{`7 '{aA:%'{be_ '{eq'{hH;'{i` $'{jB y'{kCn<'{nAR '{qVm8'{rBތ'{sCCl'{vy '{wU( '{z`ff '{|` '{}F3'{~^'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{JY'{I W'{IA'{I'{L{'{L{}e'{Lh}f'{{X M'{tE N'{CO'{}8V P'{F(Q'{bi4R'{M!S'{n T'{EV'{e X'{FY'{G['{$\'{VAl^'{b_'{n8 `'{@1a'{aqb'{ccc'{^)'{!CL'{"CL'{#CLg'{%p '{(CL'{)CL'{*CL'{+CLm'{.Fn'{1ٚo'{2f '{4CL'{6CL'{7CL'{8CL'{9CL'{:CL'{;CLw'{>KRx'{?U#y'{Ae'{BOP{'{Eh |'{GY}'{Hj(~'{J^'{MB'{NG'{zw ~'{|CL'{~aQ |'{CL'{Ft'{Gב'{Go'{M_u'{CLt'{CL'{qs '{r '{kR 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu'{X '{]`'{]i'{]4'{CL '{| '{CL'{CL '{'{CL'{CL'{C/'{CL'{CL'{la7 '{ag '{CL'{CL'{CL'{h'{['{R)'{N'{G6'{C+'{FB'{E!'{fL"'{^f#'{{&f$'{IM%'{M&'{KX''{J?e('{DJ'{CL*'{b?'{CL-'{~ '{CL'{CL0'{vI 2'{J>3'{J4'{I'{CL6'{]'{CL8'{B'{ CL:'{ E '{CL<'{qHF ='{F[G'{CL'{CL@'{@SA'{AIp B'{BCa'{DCL'{FCLE'{HIH'{IRaI'{Jj '{MB '{NB '{OEV'{PB '{RB '{SB '{TB '{UB '{VB'{X{'{Y@'{\P*'{^H'{_J '{b} 8'{dK<-'{hB '{iP '{jH8'{lL'{mIU '{po^ '{qS'{%Y -?'{&I@'{'F\OA'{(Gw'{*CLD'{,v4 E'{.G3F'{/E<G'{0Y!'{3K4'{4NVf'{5Ig'{9| '{:^s'{; '{i '{?ll !'{CCL '{lCL'{mCL'{o^ '{rCL'{tvY '{uy '{vC:'{xvK '{yW '{zt '{}CL'{~CL'{CL'{CL'{CL'{F'{H\'{@'{pڭ'{]/'{ '{At@'{e '{m3'{H'{`ԭ'{B'{Jq'{AxR '{Vt'{L#'{Cd'{y '{Q$ '{Y{ '{^3'{E'{^'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{Jl'{IS'{IQk'{I '{L\'{L\}e'{yd g}f'{z" M'{tF N'{CO'{ @P'{ FU{Q'{6baR'{7MHS'{8n T'{9HV'{:m$ X'{G['{?]X\'{@Yԟ^'{Cdf_'{DtG `'{E@pa'{G[b'{H\c'{JV0'{LCL'{MCL'{NCLg'{Pp '{RCL'{SCL'{TCL'{VCLm'{YFvn'{\4o'{]g '{_CL'{`CL'{aCL'{bCL'{dCL'{eCL'{fCLw'{iLaHx'{jT\y'{kb'{lOP{'{op |'{X}'{i~'{^'{B'{G{'{rk ~'{CL'{^ |'{CL'{Fh'{G'{G'{KDu'{CLt'{CL'{qN '{r '{k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu'{^< '{]'{]f'{_'{CL '{B='{CL'{CL '{ʫo'{CL'{CL'{C'{CL'{CL'{vv '{aU '{ CL'{ CL'{ CL'{ Wt '{ J3'{ @'{ |34'{ GM'{ B.'{ D4'{ Ec!'{ a3"'{ Y3#'{ A$'{ I\O%'{ M&'{ Kİ''{ J\z('{ Dy'{ CL*'{ b$'{ CL-'{ "} '{ $CL'{ %CL0'{ 'zT 2'{ )JKv3'{ *J4'{ ,M'{ .CL6'{ /]'{ 0CL8'{ 2C>'{ 5CL:'{ 7E '{ bCL<'{ dq9 ='{ eF>K'{ hCL'{ iCL@'{ l]A'{ mIB'{ nC'{ pCL'{ qCLE'{ sHH'{ t^I'{ ua '{ xEV'{ yEV'{ zB '{ |B '{ }B '{ ~EV'{ EV'{ B '{ E'{ |͓'{ B3'{ P'{ H'{ K'{ wFy'{ L'{ B '{ Lv'{ I'{ L'{ IM'{ o^ '{ S'{ q'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ ^'{ CL'{ CL'{ CL'{ N'{ CL'{ C$'{ CL'{ CL'{ @X'{ CL'{ CL'{ CL'{ CL$'{ (L<%'{ )J:`&'{ +Gͧ'{ .CL*'{ 1L<,'{ 2S A'{ 4CL.'{ 6EZ'{ 8CL'{ 9CL'{ :CL'{ ;CL3'{ >kV4'{ @A6'{ CPg7'{ DI 8'{ EBg9'{ GE@@:'{ IF;'{ JK<'{ KH'{ MCL>'{ PY>?'{ QI'@'{ RFrA'{ SLd$'{ UCLD'{ V|C E'{ XG5F'{ YEeG'{ ZYI'{ ]G'{ ^Kf'{ _Fl'{ b| '{ cb'{ @BV'{ l3 '{ ii '{ i '{ l9 !'{ CL '{ CL'{ CL'{ gd '{ CL'{ wQ? '{ |` '{ D'{ w '{ V '{ u ~ '{ CL'{ CL'{ CL'{ CL'{ CL'{ F'{ H'{ @a'{ qZu'{ ]33'{ @Je'{ Aҩ'{ f '{ nC3'{ H-b'{ _\'{ A'{ Cl'{ A!H '{ WW'{ DJ'{ D'{ y '{ Y '{ af '{ `Y'{ I'{ ^'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ J|J'{ I g'{ I_'{ I'{ L'{ L}e'{ cF"}f'{z M'{ XtE N'{ ZC+O'{ \@[P'{ ]F Q'{ `bR'{ aM(S'{ b{ T'{ cHNV'{ dls X'{ gFIY'{ hGh['{ i\'{ jV^'{ mcS_'{ noc `'{ o@a'{ qub'{ sv{c'{ tr'{ vCL'{ wCL'{ xCLg'{ zpԀ '{ |CL'{ }CL'{ CL'{ CLm'{ Fwn'{ fgo'{ h| '{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CLw'{ Jffx'{ R)y'{ efg'{ OP{'{ kDD |'{ Y4}'{ lN~'{ ^'{ B'{ GP'{ z)B ~'{ CL'{ bD |'{ CL'{ FU'{ G'{ H'{ Nu'{ CLt'{ CL'{ qo '{ sS '{ ldZ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu'{ w '{ ]f'{ ]H'{ Z'{ CL '{ C'{ CL'{ CL '{ b'{ CL'{ CL'{ !DB'{ $CL'{ %CL'{ '}T '{ (cz '{ +CL'{ ,CL'{ -CL'{ /gK'{ 1U4'{ 2Jg'{ 3F'{ 6G:'{ 8D}q'{ 9KǮ'{ :M!'{ ; "'{ =us3#'{ >V$'{ ?I%'{ @M&'{ AL''{ BJY('{ C@'{ ECL*'{ GYT'{ JCL-'{ L@C '{ OCL'{ PCL0'{ Rw 2'{ TJjo3'{ UJi4'{ VI'{ CL6'{ ]'{ CL8'{  '{ CL:'{ EV['{ CL<'{ qes ='{ FxC'{ CL'{ CL@'{ RafA'{ I3B'{ D"'{ CL'{ CLE'{ HkH'{ iI'{ j4' '{ EV'{ EV'{ B '{ B '{ EV'{ EV'{ jD '{ B '{ E'{ |'{ B3'{ PM'{ I'{ L'{ wc'{ L'{ EV'{ Qs'{ L'{ M '{ IF'{ o^ '{ Y5'{ Eʘ'{ CL'{ EZ'{ E''{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ Cc4'{ vg'{ Hx'{ N5'{ MR'{ O'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ CL'{ ^'{ CL'{ CL'{ CL'{ Nz'{ CL'{ C'{ CL'{ CL'{ H} '{ KCL'{ LCL'{ MCL'{ NCL$'{ QLS%'{ RJF&'{ TQI'{ WCL*'{ ZLvG,'{ [Rr'{ ]CL.'{ _GX'{ aCL'{ bCL'{ cCL'{ dCL3'{ gk@4'{ iA6'{ lO 7'{ mH8'{ nC 9'{ pE/:'{ rB;'{ sG <'{ tDI'{ vCL>'{ yZq?'{ zICD@'{ {FUA'{ |H~'{ ~CLD'{ uD E'{ H F'{ G@+G'{ Z3'{ G3'{ J 3'{ E'{ } '{ a'{ @w'{ la7 '{ ixB '{ j' '{ m<8 !'{ CL '{ CL'{ CL'{ `x '{ CL'{ w% '{ y '{ Ca'{ w '{ ͹Ib'{ uS[ '{ CL'{ CL'{ CL'{ CL'{ CL'{ F'{ H'{ @}'{ q~'{ ]33'{  '{ B'{ fE '{nf'{H4'{Z'{B'{Cd'{Az '{Vo_'{C'{C'{!zF^ '{"ON '{%^* '{&`'{'J3'{(^'{*CL'{+CL'{,CL'{-CL'{.CL'{/CL'{1CL'{2CL'{3CL'{6J'{7I*c'{9Im'{:I'{=L'{@L}e'{ Z}f'{ z M'{'t+ N'{)CpO'{+D;P'{,F+tQ'{/b~R'{0MsS'{1A:%T'{2JV'{3q X'{5F7Y'{7G[['{8x\'{9Ux^'{F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu'{T '{Y3'{Yg'{Xl'{CL '{s '{CL'{CL '{¯v'{CL'{CL'{D_'{CL'{CL'{h '{o2 '{CL'{CL'{CL'{T0 '{R'{H'{F{3'{Gh'{F'{I'{I{!'{ kS3"'{ gl#'{ E|$'{ I"%'{M&'{K''{J\z('{E:'{CL*'{o('{CL-'{@۶'{CL'{CL0'{ } 2'{"Jg3'{#KD^4'{$J>'{&CL6'{']'{PCL8'{SCi('{UCL:'{WE'{ZCL<'{\z$ ='{^K '{aCL'{bCL@'{eN'A'{fJpB'{gD71'{iCL'{jCLE'{lHH'{n|I'{r`` '{uixB '{vixB '{wEV'{xEV'{yB '{zixB '{{[~ '{|EV'{}k> '{} '{@Y'{Pr'{I'{L'{} 8'{KA'{EV'{Rz'{Mo'{M '{I'{o^ '{Xp'{GC]'{CL'{JP'{E('{CL'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{C{3'{vf'{I3'{K'{Of'{M'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{^'{CL'{CL'{CL'{Ni?'{CL'{C'{CL'{OP'{s '{CL'{ CL'{!CL'{"CL$'{$LI%'{%JA&'{(HE'{+CL*'{.L=,'{/Q_'{0CL.'{2H#'{5CL'{6CL'{7CL'{8CL3'{;k-4'{=AH6'{?J37'{@Gf8'{AC9'{DDob:'{FEg;'{GJ<'{HH'{JCL>'{LY?'{MI@'{NFA'{Qmi '{|CLD'{~jSk E'{H F'{F*G'{Z!'{D3'{Gf'{C'{}7 '{ab'{A'{mJ '{i '{j '{m4 !'{CL '{CL'{CL'{gX '{CL'{x '{|} '{D'{y '{k"'{v '{CL'{CL'{CL'{CL'{CL'{F-'{Hf'{@wr'{q'{]6'{@'{B"'{f '{r#3'{H6z'{W'{B'{D&'{A '{V!'{C'{C'{zu '{V1 '{_ '{`Ff'{I3'{^'{CL'{CL'{CL'{CL'{CL'{CL'{CL'{ CL'{ CL'{ J'{I=s'{I'{I'{L'{L}e'{r}f'{xU6 M'{'t+ N'{)CpO'{+D;P'{,F+tQ'{/b~R'{0MsS'{1A:%T'{2JV'{3q X'{5F7Y'{7G[['{8x\'{9Ux^'{F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu+cT +c[g+c]|+c[Y+cCL +cw% +c!CL+c"CL +c#9+c%CL+c&CL+c)N +c+CL+c,CL+c.i +c/u +c2CL+c3CL+c4CL+c7T> +c8Rvg+c9Hd+c:Dg+c=G2+c?D{+c@GG+cAG!+cB[3"+cCQg#+cll&f$+cmI0%+cnM4&+coKD^'+cpJ(+cr@[+csCL*+cuFO+cxCL-+czB}+c}CL+c~CL0+c@&2+cKA3+cK4+cJw!+cCL6+c]+cCL8+cD%+cCL:+cF+cCL<+c|oQ =+cKU+cCL+cCL@+cNA+cJB+cD+cCL+cCLE+cIiNH+cwI+ch +cixB +cixB +c@gv+cEV+cD+cixB +c\^ +cEV+cl[ +c|+cA~+cPM+cI+cK+c} 8+cL+cEV+cLv+cM+cM +cI+co^ +cXO+cEʘ+cCL+cF7+cE+cCL+cCL+cCL+cCL+cCL+cCL+cCL+c CL+c4Cq+c5vf+c6K4+c7OxR+c8MR+c9MR+cCL+c?CL+c@CL+cACL+cBCL+cC^+cDCL+cFCL+cGCL+cHNu+cJCL+cMC+cOCL+cPCL+cSvh. +cVCL+cWCL+cXCL+cYCL$+c\Lr%+c]JTj&+c_Iq+cbCL*+ceL7,+cfRV+chCL.+cj@r+clCL+cmCL+cnCL+coCL3+clA4+cA6+cK37+cLg8+cF)9+cC:+cB3;+cG@<+cD9+cCL>+cX/3?+cI@+cFA+cD+cCLD+cl E+cGF+cGGnG+cY+cH9+cJI+cE+c~C +c`~M+cA+cnn +ci +ck) +cn !+cCL +cCL+cCL+ce +cCL+cy{ +c|& +cD+czT +c [+c vܹ +c CL+c CL+c CL+c CL+c CL+c FB+c H+c @8+c p+c ]6+c Af+c C=+c g!4 +c of+c Hm +c Y|}+c !C]+c "Dz}f'{xU6 M'{'t+ N'{)CpO'{+D;P'{,F+tQ'{/b~R'{0MsS'{1A:%T'{2JV'{3q X'{5F7Y'{7G[['{8x\'{9Ux^'{F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu+c Un +c Yy+c Y4+c Y+c CL +c v4 +c CL+c CL +c +c CL+c CL+c E+c CL+c CL+c iމ +c v' +c CL+c CL+c CL+c T5> +c F8+c {+c vFg+c GF-+c FY+c O+c LxR!+c s"+c k#+c H$+c I-%+c M&+c Kn8'+c J(+c F$5+c CL*+c OO+c CL-+c B"+c CL+c CL0+c @&2+c Kd13+c K١4+c J+c CL6+c ]+c CL8+c Du+c CL:+c Gg+c CL<+c | =+c K7+c CL+c CL@+c NʰA+c !JB+c "EB+c $CL+c %CLE+c 'IH+c )uI+c Ts$ +c WixB +c XixB +c YAO+c Z@۶+c [E +c ]ixB +c ^\^ +c _@+c `k +c b} +c cAk+c fP*+c hI-+c iK&+c l} 8+c nL+c qEV+c sRs+c tM+c vLu+c wI+c zo^ +c {S+c Mn+c CL+c CL+c CL+c CL+c CL+c CL+c CL+c ^+c CL+c CL+c CL+c NY]+c CL+c C+c CL+c OP+c w +c CL+c CL+c CL+c CL$+c L.P%+c J&+c L0+c CL*+c Lo,+c R;6+c CL.+c F/+c CL+c CL+c CL+c CL3+c l`4+c A6+c "H7+c #E8+c $9+c &C:+c (CL;+c )Gf<+c *E+c ,CL>+c /Wj?+c 0I`@+c 1FEA+c 2Cf+c 4CLD+c 6l3 E+c 7GF+c 8FG+c 9Z<+c =FY+c >I+c ?D+c Bo +c Db+c EBI+c Fn +c Giމ +c Hk/ +c In !+c LCL +c NCL+c OCL+c Qaj +c TCL+c VzF^ +c W} +c C +c z)B +c Q) +c w% +c CL+c CL+c CL+c CL+c CL+c FPA+c H+c @]I+c p+c ]6+c B)+c C+c g[ +c n3+c H#+c \*+c Ct+c DAY+c Af +c U K+c C$8+c Ck+c { +c O +c ] +c ^ٚ+c E9+c ^+c CL+c CL+c CL+c CL+c CL+c CL+c CL+c CL+c CL+c K +c Im+c I+c J+c L+c L}e+c a"/}f'{xU6 M+c uwo N+c Co>O+c B?wP+c G]Q+c fR+c N$S+c ouq T+c I'V+c m$ X+c FY+c HH[+c Ip\+c JTJ^+c Mcgy_+c Nv9 `+c OAPga+c Qb8Rb+c Scqc+c T_G+c VCL+c WCL+c XCLg+c Zrj] +c \CL+c ^CL+c _CL+c `CLm+c cG1cn+c fvgo+c gp +c iCL+c kCL+c lCL+c mCL+c nCL+c oCL+c pCLw+c sF\x+c uZ\y+c vc+c wOP{+c xr( |+c yV}+c ze~+c |^+c CN+c HC+c o; ~+c CL+c b5h |+c CL+c G7+c H+c H+c LƉu+c CLt+c CL+c lŢ +c sfg +c m;e 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu+c U +c WQ+c W+3+c V+c CL +c vW +c CL+c CL +c ӭ +c CL+c CL+c H+c CL+c CL+c iQ +c w +c CL+c CL+c CL+c T@P +c U3+cM3+cIq+cGU+cE+cH\)+cH>!+co`"+ca3#+cE&f$+cI$%+cMM&+cKo'+c J(+c!C4+c#CL*+c%Eε+c(CL-+c)A/+c,CL+c-CL0+c/^ 2+c1K`3+c2K4+c3K+.+c5CL6+c7]+c8CL8+c:D+c=CL:+c?Fm+cBCL<+cD| =+cFK+cHCL+cICL@+ctNA+cuJGB+cvE9[+cxCL+cyCLE+c{IH+c}u<I+cvp +cixB +cixB +cA+cAO+cFL+cixB +c\^ +cAl+cm"" +c{ey+cA+cPM+cIA+cK+c} 8+cL+cEV+cLv+cM+cL+cI+co^ +cX+cEʘ+cCL+cFhm+cEe+cCL+cCL+cCL+cCL+cCL+cCL+cCL+cCL+cB`+ct6g+cC{3+cN+cMR+cP+cCL+cCL+cCL+cCL+cCL+cCL+cCL+c^+cCL+cCL+cCL+cNaM+cCL+cC+cCL+cCL+cx:D +cCL+cCL+cCL+cCL$+c LKv%+c JH&+cP+cCL*+c+c[V h?+c\It@+c]FA+c^B+c`CLD+cblD E+cdGF+ceFG+ceY+chDg+ciG+cjC^f+cn@ ?+co^-+cpBX+cqo,| +cri +csl +cto,| !+cwCL +cCL+cCL+cg>? +cCL+czcz +c} +cBw+cz)B +cMQ +cw_ +cCL+cCL+cCL+cCL+cCL+cFI+cH+c@r\+cp@+c]6+cB+cC+cg +co+cH+cZ+cB+cC+cB +cS`+cC+cC+c{ +cU +cb +c`3+cI+c^+c CL+c CL+c CL+c CL+c CL+cCL+cCL+cCL+cCL+cK"+cI{.+cIZ+cJ$"+cL+cL}e+c^}f+c t7s M+c;v& N+c=CO+c?A_P+chG Q+ckg&R+clMrS+cmoI T+cnIwV+com X+crGPY+csH[+ctSq\+cuU6 ^+cxc_+cyq8 `+czAa+c}rs4b+c~u.c+cn+cCL+cCL+cCLg+cry +cCL+cCL+cCL+cCLm+cGLn+cIo+cq» +cCL+cCL+cCL+cCL+cCL+cCL+cCLw+cGW x+cWy+ca+cOP{+cl |+cU}+ce+~+c^+cC5+cH' +co ~+cCL+cb |+cCL+cGf+cI +cI+cIGu+cCLt+cCL+cl +csȵ +cnI 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu+cV +cWC3+cV+cVNf+cCL +cwl +cCL+cCL +c_+cCL+cCL+cDZ+c0CL+c1CL+c3iމ +c4w +c7CL+c8CL+c9CL+cS+c?QL+cBG>y+cDHǮ+cEJO\+cFHL!+cG]"+cHQ#+cIx`$+cKI %+cLMO&+cMK'+cNJ(+cOC+cQCL*+cSFN+cVCL-+cXB1 +cZCL+c\CL0+c^@A2+c`Kd3+caL4+cbK)+cdCL6+ce]+cfCL8+chDY+ckCL:+cG;+cCL<+c}X =+cK+cCL+cCL@+cN|A+cK\B+cD+cCL+cCLE+cIH+cFDI+c_V` +cixB +cixB +cBn+cB)+cG4+cixB +c\Ǯ +cBF+cm +c{+cB +cP+cIZ+cKm+c} 8+cL+cEV+cP+cM+cM +cH+co^ +cS+cCL+cCL+cCL+cCL+cCL+cCL+cCL+c^+cCL+c CL+c!CL+c#NN+c%CL+c'C+c)CL+c*CL+c,y] +c/CL+c0CL+c1CL+c2CL$+c]L6%+c^J&+c`K+ccCL*+cfL,+cgI2O+ciCL.+ckH+cmCL+cnCL+coCL+cpCL3+csl4+cuA6+cxQf7+cyMg8+czDf9+c|Cb :+c~GVf;+cHff<+cHf+cCL>+cT[?+cI(@+cFnA+cA+cCLD+cl E+cGF+cF*G+cZ;v+cC<+cF+cB +c* +cbY+cB5+co +cj ^ +clR +cof !+cCL +cCL+cCL+cb +cCL+cz % +c| +cB+cy] +cI +cw +cCL+cCL+cCL+cCL+cCL+cF8+cH+c@?~+cpv+c]6+cAf+cC6]+cgv +cq\+cH?+cXe+cBZp+cCG+cB\ +c$T+c%B+c&CNO+c*|& +c+M^ +c.^ +c/_3+c0F+c1^+c2CL+c4CL+c5CL+c6CL+c7CL+c8CL+c:CL+c;CL+cF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu+c!U{ +c"W+c#XFg+c$W3+c&CL +cPvR +cSCL+cTCL +cUS+cVCL+cWCL+cYI/+c\CL+c]CL+c_i +c`xLX +ccCL+cdCL+ceCL+chTP +ciP3+cjH+3+ckE3+cnGU+cpEz+cqIB+crK&f!+cs`"+ctMS3#+cujFf$+cvI%+cwM &+cxK'+cyJ(+czCG+c|CL*+c~GK+cCL-+cB +cCL+cCL0+c@X2+cK3+cL(4+cF+cCL6+c]+cCL8+cE+cCL:+cE+cCL<+c}T =+cK +cCL+cCL@+cO%A+cK+B+cEJ+cCL+cCLE+cIΘH+cPI+c +cixB +cixB +cC +cBw+cF5+cixB +c[- +cBɀ+ck> +c|+cB]+cP+cIl+cK++c} 8+cL+cEV+cLZ+cM+c!M4+c"I+c%o^ +c&S+cSV?+cJ @+cG&A+c@\+cCLD+cl E+cGF+cF9G+cY+cv+c|+cw1+c +c`~M+cB3+cx +csF +cC.+cH[!+cCL +cCL+cCL+cgn +cCL+c{Z +cz % +cCpi+c{ +cJj +cwS +cCL+c CL+c CL+c CL+c CL+cF*C+cH+c@> +cp5+c]:+cC+cA+cgT +cEq33+cHH+cIY&P+cJC+cLDd)+cNB +cQT.T+cRCJ+cSC`+cV|R8 +cWU +cZ`D +c\`Y+c]Hf+c^^+c_CL+c`CL+caCL+ccCL+cdCL+ceCL+cfCL+cgCL+ciCL+clKA+cmI+cnJ +coJ"Q+crL+cvL}e+c^b,}f+cs( M+cv N+cC[O+cDP+cFQ+cfR+cN%S+cq+ T+cItV+cnʅ X+cG7Y+cHT[+c̰\+cUX.^+ce5_+cx9 `+c@ۘa+c\ٚb+c^:c+cX+cCL+cCL+cCLg+cr +cCL+cCL+cCL+cCLm+cFn+cgo+cr +cCL+cCL+cCL+cCL+cCL+cCL+cCLw+cK.x+c XBy+c!c.+c"OP{+c#tE |+c$U44}+c&g# ~+c(^+c+Bw+c,Ht+c/o ~+c1CL+c4d0 |+c6CL+c9G++c:H+c;I_+c?K$u+cACLt+cBCL+cDkj +cEsD +cGm 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/KUη /K V/K Vf/K Vf/K CL /Kup /KCL/KCL /K%/KCL/KCL/KF/KCL/KCL/Ki /Kzڭ /K"CL/K#CL/K$CL/K'T}3 /K(_f/K)Uq/K*R^f/K-G/K/y/K0#/K1@h!/K2d"/K3Zf#/K4@P$/K5I%/K6M&/K7K'/K8Jܪ(/K9D/K;CL*/KeFO/KhCL-/KjB"/KmCL/KnCL0/Kp@-S2/KrK|3/KsL34/KtD~/KvCL6/Kw]/KxCL8/KzE2/K}CL:/KK /KCL&/KKQr/KNCL*/KPL,/KQT/KSCL./KUAq/KXCL/KYCL/KZCL/K[CL3/K^m4/K`AH6/KbM,7/KcMy8/KdE39/KgCW:/KBFf;/KGɚ/KR?/KJ @/KGA/K~ /KCLD/Kll E/KG:F/KFC G/KZ=/Kf3/Kk/Ke,/KC/K^/KCR/Ka /K_Z /KF/KG!/KCL /KCL/KCL/K` /KCL/K}h /KC4/KD4K/K}X /KDh3 /Kx /KCL/KCL/KCL/KCL/KCL/KF-/KHp/K@?/Kp4/K]=q/KB /Kn4a /Kh 4 /Ks)/K H/K Y^/K C /KC޲/KB /KU/KCA/KC\/K|oQ /KM /K` /K` /KI3/K ^/K!CL/K"CL/K#CL/K%CL/K&CL/K'CL/K(CL/K)CL/K*CL/K.KZ4/K/I/KXI/KYJ /K\L/K_L}e/K\}f+cDr* M/K~vc N/KC.O/KAcP/KGqQ/Kf}R/KN7S/K@uT/KHV/Kka X/KGhY/KI[/Ko\/KVJ^/Kd3:_/Ko8 `/KB*qa/KtRb/KuHc/Krq/KCL/KCL/KCLg/Kry /KCL/KCL/KCL/KCLm/KG?n/Ko/Kq /KCL/KCL/KCL/KCL/KCL/KCL/KCLw/KIx/KT\y/K^B/KOP{/Kjwx |/KVх}/Ke|m~/K^/KC</KHiS/KpY ~/KCL/K!ef |/K#CL/K&G/K'H/K(I~I/K,KTu/K.CLt/K/CL/K1iV /K2rv /K4m" 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/K7UC /K8[/K9\1/K:[/Kw /KACL/KBCL /KC/KECL/KFCL/KHE/KKCL/KLCL/KNk. /KOsj /KRCL/KSCL/KTCL/KWTվ /KXS#3/KYKs3/KZG/KG/K{ǯ/K@/KAn!/Ky "/Kk#/KL$/KH%/KM&/KLN1'/KJ(/KD/KCL*/Kj/KCL-/KB/KCL/KCL0/KA:%2/KK]3/KL/94/KE/KCL6/K]/KCL8/KE/KCL:/KE/KCL /K{ey/KB L/KPr/KIw/KL/K } 8/K L/K B3/KO`/KM/KMo#/KH/Kd+ /KS/KS%X?/KJs@/KG:A/KsF /KCLD/Kmi E/KHF/KFH}G/KZ/Kd3/Ki/Kcf/KE/Ka3/KD^}/K` /K_ /KG} /KH!/KCL /KCL/KCL/Khb /KCL/K@Je/KBɀ/KE/K r /K!Pa /K"xH /K%CL/K&CL/K(CL/K)CL/K*CL/K-F/K.H/K/@r\/K0pĩ/K4]@/K5B/K6oK /K7h7 /K:r)/K=H/K>]?/K?C/KADW/KCA /KFW&/KGC/KHD/KK| /KLWeJ /Kxc@ /Kya/KzI/K{^/K|CL/K}CL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KKq/KIi/KIŦ/KI-/KL3/KL3}e/K!c<;}f/K1p M/Kw N/KCtO/K@P/KGH.Q/KgyR/KNPS/KAT/KDCV/Kc F X/KGY/KI[/K*n\/KUr^/Kc&_/Kl `/KCa/KVb/KYc/KU/KCL/KCL/KCLg/Kr. /KCL/KCL/KCL/KCLm/KHn/K#4o/Kr /K CL/K CL/K CL/K CL/KCL/KCL/KCLw/KD4x/KXy/Kb/KOP{/KBfDD |/KDV*1}/KFe~/KH^/KKC1/KLHI/KOo ~/KQCL/KTch |/KVCL/KYH /KZH/K[I/K_Ju/KaCLt/KbCL/Kd` /KeqV /Kgl9X 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/KU) /K\,/K[3/KZ/KCL /Kx+ /KCL/KCL /K/KCL/KCL/KF~/KCL/KCL/Kl3 /Ks! /KCL/KCL/KCL/K^jE/KUT/KK+3/KI3/KG#/KB/KE /KET{!/Kis3"/K^ #/KE&f$/KH%/KM`&/KL'/KJ(/KD=/KCL*/Km/KCL-/KCU/KCL/K CL0/K @2/K Ki3/KL,~4/KE/KCL6/K]/KCL8/KD/KCL:/K /KCL\Ǯ /K?GC/KAnww /KC{ey/KlAk/KoPs/KqIu/KrKCu/Ku} 8/KwM /Kx@ /K{KT/K|M/K~M/KH/Kf /KS/K6RI?/K7J@/K8G+gA/K;oXB /K>CLD/K?m4 E/KAH F/KBFOG/KCYU/KGf/KHk/KIe4/KLG/KM^s/KOD}/KPbE /KQ`q. /KRH]/KSI!/KVCL /KWCL/KYCL/K[d D /K^CL/K`@/KaAAh/KbE/Kc@/KdN$5 /Kfx /KiCL/KjCL/KkCL/KlCL/KmCL/KF-/KH/K@/Kq\/K]@/KC4/Ko7 /Khb /Kr/KH/K[ /KDa/KB[)/KB = /KUd/KC%/KDe/K|ƚ /KO]6 /K` /K_/KIl/K^/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KK/KIT$/KI/KIF/KLR/KLR}e/Kdbb;}f/KdgE2 M/K w N/K CO/K CPP/K H1ZQ/K $f~YR/K %N^S/K &|5! T/K 'J`2V/K (pH X/K *FY/K +I8[/K -dk\/K .R[^/K 1e?>_/K 2yc `/K 4Da/K 5^{b/K 6].c/K `T\/K bCL/K cCL/K dCLg/K fr /K hCL/K iCL/K kCL/K lCLm/K oH n/K rgo/K ssfg /K uCL/K vCL/K wCL/K yCL/K zCL/K {CL/K |CLw/K Lx/K W y/K bH/K OP{/K u |/K T|m}/K g~/K ^/K D*p/K G%/K o ~/K CL/K f$ |/K CL/K H5/K I/K I/K Lu/K CLt/K CL/K ^@ /K o8 /K k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/K Uރ /K [3/K \Ng/K Yf/K CL /K vܹ /K CL/K CL /K p/K CL/K CL/K F/K CL/K CL/K kh /K ~% /K (CL/K )CL/K *CL/K -U&` /K .N/K /D3/K 0B/K 3F$/K 5C:/K 6E&f/K 7DW !/K 8Xf"/K 9Z`#/K :D\$/K L'/K ?K(/K B O /K ECL*/K G_/K ICL-/K KEW/K NCL/K OCL0/K QBn2/K SKi3/K TL'4/K UFL/K WCL6/K Y]/K ZCL8/K \F:/K _CL:/K a@Je/K CL/K P@/K N./K CL/K CL/K CL/K CL/K CL/K CL/K CL/K ^/K CL/K CL/K CL/K N/K CL/K CU/K !CL/K "CL/K #z)B /K &CL/K 'CL/K (CL/K )CL$/K TL8U%/K UI<&/K XJ/K ZCL*/K ]Ltt,/K ^[ /K `CL./K bH/K eCL/K fCL/K gCL/K hCL3/K jmk4/K lAH6/K oP6f7/K pJ8/K q@g9/K tB4:/K u@;/K vHff/K |S\?/K }I@/K ~GGA/K n /K CLD/K mJ E/K GF/K FQG/K [/K fs3/K kf/K d/K I/K ^g/K E#7/K `b /K ^ /K H/K I!/K CL /K CL/K CL/K e /K CL/K @b/K @/K Ez/K  /K ӫ/K xo /K CL/K CL/K CL/K CL/K CL/K E/K I/K @^/K q/K ]@/K D/K o; /K hm /K n/K H/K Z2!/K CW/K @$/K A /K "VW/K #C/K $D0/K (} /K )TL /K ,^ww /K -`3/K .I/K /^/K 0CL/K 2CL/K 3CL/K 4CL/K 5CL/K 6CL/K 7CL/K 9CL/K :CL/K =K/K >IGn/K ?I|/K AI/K DLR/K ELR}e/K E}f/K e, M/K y( N/K CIO/K @eP/K GQ/K gR/K NiS/K pPL T/K G@KV/K i X/K FY/K IOm[/K \/K Sm^/K eL_/K m8 `/K Ca/K u\b/K vJ>c/K nR/K CL/K CL/K CLg/K r /K CL/K CL/K CL/K CLm/K HqLn/K `o/K t- /K CL/K CL/K CL/K CL/K CL/K CL/K CLw/K Kx/K Zzy/K ^\/K OP{/K g |/K T<}/K f ~/K ^/K D7o/K Gb/K o ~/K CL/K fPL |/K CL/K HT/K I?/K I0/K Ku/K CLt/K CL/K [ /K o& /K kP 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/K XUd /K Y]f/K Z]3/K [\a/K ]CL /K _v /K"{ey/K#B#/K&P/K)I/K*K1C/K-} 8/K/L/K0BV/K3L%/K4MW/K6Ny/K7H/K8f /K;S/KRf?/KIA@/KGU5A/KsF /KCLD/KmJ E/KG7F/KFOG/KY\/Kis3/Kn3/Kg/KK/K`)/KE#7/K`b /K^- /K H9Q/K I!/K CL /KCL/KCL/Ki /K=CL/K?@/K@{ /KAE/KB@/KCe</KDy#; /KHCL/KICL/KJCL/KKCL/KLCL/KOE`/KPI./KR@wr/KSqۡ/KV]@/KWD/KXoI /KYhJ /K\ny/K_Hw/Ka]A/KbB/Ke~] /KhAh /KkWXQ/KlC/KmDk/Kp}: /KrVz /Ku^w /Kv_ /KwF@/K^/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KK/KI@+/KIj/KI/KLR/KLR}e/KCk:}f/K b~ M/Kx N/KCO/KAP/KHqQ/KgxR/KN~S/Ko T/KE6V/Kf62 X/K F.Y/K Ij[/K I\/KQ^/Kd _/Kq `/KBa/KYub/K[c/KW5/KCL/KCL/KCLg/Ks /K CL/K!CL/K"CL/K$CLm/K'Gn/K*o/K+ur /K-CL/K.CL/K/CL/K1CL/K2CL/K3CL/K4CLw/K7KǮx/K8Yy/K9]f/K:OP{/K>j |/KhS}/Kie!~/Kk^/KnC/KoG/Ksof ~/KuCL/Kwe+ |/KyCL/K|Hp/K}IR/KIb/KK='u/KCLt/KCL/K[Ĝ /Kn+ /Kj 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/KU /K[K4/K[^g/KZ/KCL /Kx /KCL/KCL /Kչu/KCL/KCL/KE/KCL/KCL/Kl& /KZ /KCL/KCL/KCL/KU#5 /KO3/KEf/KD(/KG/KSW /KV}q/KWc!/Ku"/Key#/KLvf$/KH%/KM&/KL'/KK'(/KC/KCL*/KK _/KCL-/KF/KCL/KCL0/K1Bɀ2/K3K]3/K4Kk4/K5FA/K7CL6/K8]/K9CL8/K;F/K>CL:/K@@-S/KCCL/KOxR/KCL/KCL/KCL/KCL/KCL/KCL/KCL/K^/KCL/KCL/KCL/KNOA/KCL/KC/KCL/KCL/Kzr /KCL/KCL/KCL/K CL$/K LKv%/K J&&/KK/KCL*/KL-,/KD/KCL./K /KCL/KCL/KCL/K CL3/K"m4/K$AH6/K'M7/K(S8/K)G9/K,B_:/K.FC3;/K/N/K\T7?/K]IŎ@/K^GOA/K_Dg/KaCLD/Kcn E/KeGzF/KfFGG/Kg[#/Kik1/Kkp.g/Kli/KoMU/Kp]/KqE,*/Krax /Ks_LK /KuHH/KvJn!/KyCL /KzCL/K{CL/K}`׬ /KCL/K@/KwS /KEV[/K@X/KY /Kyl /KCL/KCL/KCL/KCL/KCL/KE/KI:/K@./Kr|/K]DD/KD/Ko /Ki /Kr/KH/K^/KBs/K~' /K@ /KY;/KCa/KDk/K}f /KPHc /K_" /K``/KH0/K^/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KCL/KK/KI//KIed/KI/KLq/KLq}e/KhӦ}f/KbG6 M/KAyE N/KCCO/KDEP/KFH;}Q/KIfU:R/KJNuS/KKo T/KLL}V/KMr X/KOFY/KQI[/KR\/KST ^/KVcq_/KW{ `/KYB&a/KZgpb/K\hHc/K]d/K_CL/KCL/KCLg/Ksc /KCL/KCL/KCL/KCLm/KGn/Ko/Kv /KCL/KCL/KCL/KCL/KCL/KCL/KCLw/KGHx/KV{y/Kb{/KOP{/Kx |/KT}/Kdd~/K^/KC/KG&/Ko۔ ~/KCL/Ke |/KCL/KH/KI}/KI/KM5u/KCLt/KCL/KZŢ /Ko9X /Kj 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu/K \9 /K Zə/K Z/KZ/KCL /Kwt /KCL/KCL /Ke/KCL/KCL/KFm/KCL/KCL/K!m /K"@=/K%CL/K&CL/K'CL/KRUh /KSMg/KTE3/KUAff/KXH/KZRQ/K[UQ/K\U!/K]ey"/K^Sy#/K_Cc4$/K`He%/KaM&/KbLc'/KcKh(/KeD!n/KfCL*/KhX/KlCL-/KnF/KqCL/KrCL0/Kt@2/KvK#3/KwK4/KxF,/KzCL6/K{]/K|CL8/K~Fi/KCL:/K@n/KCL /K{ey/KBv/KPۆ/KIb/KK-/K} 8/KM /KB/KK/KI/KNy/KH/Kh /KSCL/KACI/KCCL/KDCL/KF{ /KHCL/KICL/KJCL/KKCL$/KNLVe%/KOJe&/KRG/K}CL*/KLe,/KFx/KCL./KCw/KCL/KCL/KCL/KCL3/Kmw4/KA6/KP@7/KP@8/KG#49/KB:/KIc3;/KL3/KTJ?/KI@/KGNA/KGԬ/KCLD/Knn E/KGbF/KFWG/KY/KhD/Kmvf/KgP/KN/K_,/KE/Kaj /K_/ /KI/KKW!/KCL /KCL/KCL/KeT /KCL/KAH/Ky /KA/K@/Kzz/Ky /KCL/KCL/KCL/KCL/KCL/KF/KI1/K@/Kr/K]DD/K D;/K o /K i>? /Ko3/KHq/K[0./KB/K /K@R /KEXEx/KFCμ/KGD/KJ}; /KKV: /KO` /KP^/KQD#3/KR^/KSCL/KTCL/KUCL/KWCL/KXCL/KYCL/KZCL/K[CL/K\CL/K`K'/KaI){/KbIu/KcI-/KfLq/KiLq}e/KT}f/Ka* M/Kx# N/KCO/K~ P/KHaQ/Kg R/KNIS/Kof T/KE,V/Kdc X/KFY/KIZ[/K\/KTg^/Kc_/Ki8 `/KAa/Ktb/Ksc/Knn/KCL/KCL/KCLg/Ks1 /KCL/KCL/KCL/KCLm/KGF7n/K4o/Ku /KCL/KCL/KCL/K CL/K CL/KCL/KCLw/KJGx/KZ\y/K[/KOP{/Kc |/KU}/KfV~/K^/K"C/K#HA/K&of ~/K(CL/K*d$ |/K-CL/K0Ha/K1I/K2I/K5I2u/K8CLt/K9CL/K;X /KF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33 Vk 33 ^f33]333]33CL 33vh. 33CL33CL 33033CL33CL33E33CL33 CL33"lD 33# 33&CL33'CL33(CL33+Q 33,Pf33-H[333/D331H[V333R334V}q336U!337k"338_#339Eg$33:H%33;M&33dLd'33eK(33h@33kCL*33mb 33pCL-33rF33uCL33vCL033xB5233zK333{K433|FT33~CL633]33CL833G433CL:33 33CL<33@R=33G`33CL33CL@33OA33K:>B33F"33CL33CLE33J3H33GI33^ 33ixB 33ixB 33H$33HVF33M33ixB 33\Ǯ 33Hs<33l 33{ey33BXB33P33I33K/q33} 833M 33BV33PS33I33Ny33I~33h 33SCL33?CL33ACL33BNY]33DCL33GCݑ33ICL33JCL33K{ 33NCL33OCL33PCL33QCL$33TLT%33UJ+&33XQ33ZCL*33]L=,33^]u33`CL.33bJ<33eCL33fCL33gCL33CL333n =433AH633Nə733T833H933Bx:33E3;33H<33H333CL>33UJ?33I~@33GdA33CV33CLD33mYk E33G5F33FmG33[y\33fx33k6f33jg33P 33`s33E|33`b 33_ 33IS33JZ!33CL 33CL33CL33hb 33CL33@.33}; 33@=33^ 33G|F 33y 33CL33CL33CL33CL33CL33E/33I 33@uD33sF"33 ]@33 C33 o 33ij 33r&f33H33[;33B{33C33@k 33X33L33C33"} 33#U 33&]ٚ 33'_ 33(G6f33)^33+CL33,CL33-CL33.CL33/CL33XCL33ZCL33[CL33\CL33_K33`I!O33bIpJ33cIE33fLR33iLR}e33];_}f/K;_;q M33xk N33C*O33BP33H`iQ33gDR33NSS33oK T33FV33f X33FY33I[33\33SX^33di_33qU `33AZ#a33Xb33Y@c33S33CL33CL33CLg33sk 33CL33CL33CL33CLm33G n334o33v/ 33CL33CL33CL33CL33CL33CL33CLw33L#x33Xqy33c33OP{33k |33T=}33fg~33^33!C`33"G33&ouq ~33(CL33*dQ |33,CL33/HmL331J 332IK335Pu337CLt338CL33;Z{ 33F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33SV( 33UYg33VZi33WZ!33YCL 33[wS 33CL33CL 3333CL33CL33F7 33CL33CL33k 33@^33CL33CL33CL33N 33Q33GI33D433I33X33[)33\!33eٚ"33[g#33E3$33H%33M&33Ln'33L (33C33CL*33P33CL-33G33CL33CL033C233K 333K433F33CL633]33CL833G&"33CL:33@n33CL<33@.=33G33CL33CL@33O-A33K<B33F233CL33CLE33 JH33 D"I33 { 33ixB 33ixB 33Hd33Ge33M33ixB 33\Rp 33H 33k 33{ey33A:33 Pԙ33"Iu33#K:[33N} 833PM 33Q@33TLv33UL33WNy33YH33Zh 33]X33^BG33`CL33cEtC33fB33hCL33iCL33jCL33kCL33lCL33mCL33oCL33pCL33sA33tvg33uDg33vKL33wNq33xL433zCL33{CL33}CL33~CL33CL33CL33CL33^33CL33CL33CL33NX33CL33C33CL33CL33{= 33CL33CL33CL33CL$33Lf%33I0&33M33CL*33L,33U33CL.33G33CL33CL33CL33CL333nC433A633Ti733Y833M933B:33@;33G3<33D,33CL>33SVQ?33I7@33G~A33BZ33CLD33l9 E33G}F33FG33Z33g<33 lg33!ef33%QJ33&\\33'E33(`6 33)^ 33*H33+J!33.CL 330CL331CL333` 336CL338@r3397 33:@33; 33=Y f 33>z7 33ACL33BCL33CCL33DCL33ECL33HE33JHM33K@33LsK33O]@33xC33yo; 33zi 33}r 33I>Q33`X33B33A233@{ 33Y33OT33T33} 33PX 33`ȉ 33`33H3333^33CL33CL33CL33CL33CL33CL33CL33CL33CL33K33I33Il33Iq33LR33LR}e33=h}f33;`ؽ M33w N33C0O33DnP33H^Q33fR33NS33oK T33KeV33q X33FY33I5[33g?\33S(^33e_33 w `33 A Da33 ugb33wc33s33CL33CL33CLg33s 33@CL33ACL33BCL33CCLm33FFn33J@fo33Ku 33MCL33NCL33OCL33PCL33QCL33RCL33TCLw33WHǮx33XY(y33Y_433ZOP{33[s |33\TB}33]gG~33`^33cC-33dG33go,| ~33iCL33ld |33nCL33qHS33rJ"33sI33vIJsu33yCLt33zCL33] 33nV 33k\) 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33u^ 33`33_f33Zf33CL 33x 33CL33CL 33ʹ33CL33CL33E33CL33CL33k/ 33tL 33CL33CL33CL33[Q33Q`33Hf33E33 I33 _W 33_33`L!33l3"33`f#33K4$33H%33Mǟ&33LF'33L.P(33C/33CL*33h33CL-33F33!CL33"CL033$' 233&K333'KU433)F$33*CL633,]33-CL833/D;332CL:334 337CL<339y =33:B33=CL33>CL@33AZA33BKQ B33CFf33mCL33nCLE33qMV$H33tUg%I33vb( 33xju 33zj ^ 33{H33|Hs<33~P033l5h 33ixB 33H33B33{ey33B+33Pƽ33IHW33KCu33} 833M 33@33Qz33L33N33HЌ33fY 33X 33A|33CL33F@33Ap33CL33CL33CL33CL33CL33CL33CL33CL33B33t6g33C{333MR33V8R33OxR33CL33CL33CL33CL33CL33CL33CL33^33CL33CL33CL33Ng33CL33C33CL33CL33{ 33CL33CL33CL33CL$33Lp%33J@&33ImZ33CL*33 L,334D336CL.338: 33;CL33;CL33=CL33>CL333@ne433BA633EL733FV833GH9933JB:33KG|;33LMi<33MKf33OCL>33RR4?33SJ @33TG~A33U@33WCLD33Yo E33[HF33\FG33][Q33`l|33aq333bjA33fR+33g` 33hEj33i`b 33j^- 33kIk33lKM!33oCL 33CL33CL33g 33CL33@b33x 33@33 33X$^ 33zcz 33CL33CL33CL33CL33CL33F33Ht33@ 33s>33]@33C33oI 33in 33o333H33b33Bn33z 33@O\ 33X 33Cl33C33~# 33X 33^* 33 _)33 F6f33 ^33 CL33 CL33 CL33 CL33 CL33 CL33 CL33 CL33 CL33 K33 I33 Ih33 I33 LR33 LR}e33e}f33d M33 `w N33 bCO33 c} P33 dH"Q33 ghFR33 hNjS33 i T33 jC*V33 la4 X33 nGY33 oI[33 p>\33 qS5U^33 td_33 vgq `33 xAFa33 ya b33 zbc33 {[)33 }CL33 ~CL33 CLg33 s-a 33 CL33 CL33 CL33 CLm33 Fn33 o33 u 33 CL33 CL33 CL33 CL33 CL33 CL33 CLw33 GGx33 ]y33 _33 OP{33 bUV |33 Up}33 d$x~33 ^33 C#33 H33 n ~33 CL33 b5h |33 CL33 H+33 I33 IH33 Pu33 CLt33 CL33 WD 33 m > 33 jc 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33 ,`l/ 33 .[c333 /[33 0Z333 2CL 33 4x 33 6CL33 8CL 33 9N33 :CL33 ;CL33 =F33 @CL33 ACL33 Cmv 33 DwV 33 GCL33 HCL33 ICL33 KSw33 MLA33 NC33 O@433 RJm33 TU33 UW533 VVٚ!33 WXY"33 XN3#33 Yu$33 ZHx%33 [M݆&33 \LZ '33 ]LKv(33 ^D.33 `CL*33 a_k#33 bCL-33 Fs33 CL33 CL033  233 Lj333 K433 Fg33 CL633 ]33 CL833 D33 CL:33 @R33 CL<33 y{ =33 C33 CL33 CL@33 TLA33 KqB33 F33 CL33 CLE33 K0H33 II33 ~e 33 jD 33 i 33 Go33 G} 33 N33 k 33 ixB 33 G33 B33 {ey33 BV33 Pͫ33 I033 L33 } 833 M 33 @f33 Lv33 L33 P(33 Hn33 f 33 X33 Aq33 CL33 Fd33 ET33 CL33 CL33 CL33 CL33 CL33 CL33 CL33 CL33 C333 Af33 I333 !MR33 #V33 $OxR33 &CL33 'CL33 (CL33 )CL33 *CL33 +CL33 TCL33 V^33 WCL33 XCL33 YCL33 ZN_33 \CL33 _C<33 aCL33 bCL33 d{ 33 fCL33 gCL33 hCL33 iCL$33 lLL_%33 mJ&33 pL;33 sCL*33 uLH,33 vDcp33 xCL.33 zAH33 }CL33 ~CL33 CL33 CL333 nq433 A633 HVg733 L833 Hɚ933 CW:33 Gvf;33 L<33 K33 CL>33 R?33 J'@33 GA33 y 33 CLD33 oXB E33 H=F33 FG33 [>33 l333 s 33 j 33 S>33 `,33 EB33 aL 33 ^ 33 G33 I!33 CL 33 CL33 CL33 e 33 CL33 A233 u 33 Al33 @;33 S 33 z 33 CL33 CL33 CL33 CL33 CL33 F33 H33 !@P33 "s{33 %]DD33 &Cp33 'o; 33 (iJ 33 +q333 .H{33 /a 33 1CSc33 4{LS 33 7A 33 :W33 ;C33 F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33 nk_ 33 p[333 q\6f33 rZ33 tCL 33 vwQ? 33 yCL33 zCL 33 {rh33 |CL33 }CL33 F33 CL33 CL33 l& 33 v 33 CL33 CL33 CL33 [33 X33 JS333 H|33 K -33 Y33 [+33 [J>!33 R"33 EL#33 p33$33 I\%33 M&33 Lp'33 Ln(33 D#33 CL*33 bR33 CL-33 G33 CL33 CL033 Bn233 L333 Kh433 F33 CL633 ]33 CL833 D33 CL:33 @33 CL<33y =33Ci(33CL33CL@33W7AA33KzB33G33CL33CLE33!LSH33$JDI33% 33(ixB 33)ixB 33*DnQ33+DG33,I 33-ixB 33/\5 330D%331l 333{ey334B 337Pb339IQk33:L33=}33?M 33@A33CLv33EMC33GP(33HH33Ih 33tY]33uBM33wCL33zF33{D33}CL33~CL33CL33CL33CL33CL33CL33CL33Cg33vg33C{333K33OB33M033CL33CL33CL33CL33CL33CL33CL33^33CL33CL33CL33NY]33CL33C$33CL33CL33z 33CL33CL33CL33CL$33LH%33J2k&33Q33CL*33L-g,33X33CL.33R33CL33CL33CL33CL333n/433AH633K3733T 833Ki933C;:33B9;33G<33E`33CL>33Q1B?33J3@33GyA33o,| 33CLD33m E33 H?F33 FG33 Y33k333rVg33hf33=T33>](33?EB33@`q. 33A^D 33BDB33CF!33GCL 33HCL33ICL33Kc/ 33NCL33PA233Qq9 33RAAh33T@-S33VC33Yz[ 33\CL33]CL33^CL33_CL33`CL33dF%33eH33fA|33gtk33j]DD33kC33loXB 33mj6 33po33tHk833uY33vCy33z[ 33@xR 33X33C`33C33~z 33R 33\ 33` 33H033^33CL33CL33CL33CL33CL33CL33CL33CL33CL33L33I33H`33I33LR33LR}e33VTRF}f33 U_ M33vc N33CO33B P33HvQ33hQ@R33NԁS33At@T33IV33n5 X33 FyY33!J[33"\33#WM^33&e_33(r `33*Duda33+|b33,|qc33-v33/CL330CL331CLg334ss 336CL337CL338CL339CLm33F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33Ry 33Z333\(33X33CL 33xH 33CL33CL 33֦h33CL33CL33F/33CL33CL33j 33| 33CL33CL33CL33SX 33a33XFg33V33K33]E33bW 33c!33V,"33H#33os4$33H%33M&33L}'33L6(33AN|33CL*33mBv33CL-33F33CL33CL0331B}2333L'r3334K4335F337CL6338]339CL833;EZ33>CL:33@@u33CCL<33E{ =33FCp33ICL33JCL@33MOA33NKqB33OF33QCL33RCLE33TI\H33UB}4I33Vq? 33YixB 33ZixB 33\Aҩ33]Al33^F?33_ixB 33`]Z7 33aA{33bl 33d{33eB33hP33kIs33KCu33} 833M 33BV33Ql33Mw33P(33H33h 33X33B+33CL33F333D33CL33CL33CL33CL33CL33CL33CL33CL33vf33t6g33Dk333K 33O33M{33CL33CL33CL33CL33CL33CL33CL33^33CL33CL33CL33NU33CL33C33CL33CL33x 33CL33CL33CL33CL$33L[%33 I&33 LƉ33CL*33L,33Wr33CL.33A33CL33CL33CL33CL333n͹433 AH633#J733$Sp833%F3933'C:33)B&f;33*G3<33+D33-CL>330Rd?331J!@332GA33]q3 33_CLD33am4 E33cH F33dFG33e[33ihI33jn;333kf33nT33o_ 33pE*33qa/ 33r^p 33tB"33uDB!33xCL 33yCL33zCL33|k 33CL33AO33n 33A 33@u33L33{ 33CL33CL33CL33CL33CL33F,33H;33A$Z33s[33]DD33C33oI 33jq7 33pC333H^}33[133C33zu 33@ 33X33C33C33~ 33X 33a 33`33HP33^33CL33CL33CL33CL33CL33CL33CL33CL33CL33L,33I 33Is33I*33Lq33%Lq}e33C}f33aA M33!w N33#CO33%@rP33&HjQ33Qj#RR33RNvS33SpPL T33TDV33UdW X33XFY33YJ>[33Zh\33[U a^33^d_33_o8 `33aCa33cg*b33deW c33e]33gCL33hCL33iCLg33ksk 33mCL33oCL33pCL33qCLm33tHdn33wo33xt$ 33zCL33|CL33}CL33~CL33CL33CL33CLw33Opx33Wy33\33OP{33i |33TC}33g1W~33^33D!33G33n ~33CL33cm |33CL33G<33JBU33I33H u33CLt33CL33Y0! 33mk 33jfg 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu33dp 33Y@33Y33W33CL 33w 33 CL33!CL 33#.33$CL33%CL33'Fb33)CL33+CL33-lD 33.u 331CL332CL333CL336]o338Yf339O33;MS333=LQ533@\}q33A`\*33B`!33Czff"33Dj#33E]&f$33FIs%33GM&33HL'33ILo(33JDQ33LCL*33OM'33RCL-33|G )33CL33CL033C'233L;333K433FL33CL633]33CL833E33CL:33@}B33CL<33z =33Cpi33CL33CL@33O].A33K{B33Gx33CL33CLE33ILH33@I33f 33i& 33ixB 33B33Bn33IZ33k_ 33] 33B33B33|W33Bl33P33I33K633} 833M 33@33K33M33P(33I~33h 33S33R*?33J@33GA33A33CLD33nn E33G!F33FG33Y׭33i`33o&f33h33UK-33`33E[33e>t 33b 33DX33E!33CL 33CL33CL33e 33CL33A33A33A33@-S33MO7 33{= 33CL33CL33CL33CL33 CL33F(t33H/33@33sV33]@33E@33n 33jJ 33o33HP33 [J33"Ci33%z 33)AxR 33,Up33-C33.C332~ 333Oi 336_3 337_339H333:^33;CL33=CL33>CL33?CL33ACL33CCL33DCL33ECL33FCL7LL7I7I87J;7 LR7 LR}e33_}f33_؀ M7-vQ N7/CO70DP71HQ75huR76NS77o T78KOV79q. X7dFY7eJQ`[7fv\7gS^7jc>_7kzr `7nBa7oZ޹b7p[34c7qR7sCL7tCL7vCLg7xsk 7zCL7{CL7|CL7}CLm7G%n7@3o7uI 7CL7CL7CL7CL7CL7CL7CLw7Jx7Uy7]f7OP{7w |7U1}7gK~7^7C7Hr7xWc ~7CL7c<8 |7CL7Gq7Jo,7I7JLu7CLt7CL7 7nt 7jD 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7V 7Y7]f7X7CL 7vܹ 7CL7,CL 7-%7.CL7/CL71F!O74CL75CL77lD 78~ 7;CL7 7|*7BM7P=7IM7K87}Z7M 7@ 7Q7M7P(7I~7fj 7Xի7A7 CL7 E7 EC_7CL7CL7CL7CL7CL7CL7CL7CL7Bnf7w7B7O7MR7 MR7"CL7#CL7$CL7%CL7&CL7'CL7(CL7*^7+CL7,CL7-CL7.NP7XCL7[C7]CL7^CL7`z 7cCL7dCL7eCL7fCL$7hL5%7iJ&7lR7oCL*7rL;,7sM7tCL.7v~@ 7yCL7zCL7{CL7|CL37o=J47A67G77Mp87E397BF:7Df;7H&g<7D\7CL>7TY?7J-z@7GNA7C'7CLD7n% E7G9F7FκG7\7fg7l7ff7UV7]!7E7ev 7c>k 7F7H@!7CL 7CL7CL7dTj 7CL7@b7@}B7@R7 7mc7{Z 7CL7CL7CL7CL7CL7F#7H7@7r 7!]DD7"C 7#n0 7$_ 7'r7*IU7+ZqK7,B*7.A@70A 73Vʲ74HJ75Seq78~; 79S5 7<^Y 7>_7?G7@^7ACL7BCL7CCL7DCL7FCL7GCL7HCL7ICL7JCL7NL!7OH7PI+K7QI*7TJR7WJR}e7t}f7a M7v N7CtO7} P7HQ7iVZR7NS7of T7EBV7eR X7GY7JZ#[7\7S?^7eތ_7iq `7Ba7n>b7pc7n7CL7CL7CLg7sc 7CL7CL7CL7CLm7Gn7o7u 7CL7CL7CL7CL7CL7CL7CLw7Hzx7\Hy7_ff7OP{7cUV |7 T4}7 fN~7 ^7C7H0g7xH ~7CL7c |7CL7G7J67 HN7#Mu7NCLt7OCL7QX 7Rn 7Si 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7jUA 7kYX7lYff7mW7oCL 7qx 7tCL7uCL 7v`7xCL7yCL7{DZ7~CL7CL7kK 7sw 7CL7CL7CL7j 7R7Kf7F37M7Tq7W7XxR!7xL"7o#7]$7I-%7M&7L,~'7LB(7Ce7CL*7P7CL-7F7CL7CL07@Je27LGf37KA47F@w7CL67]7CL87E27CL:7' 7CL<7@=7GQ7CL7CL@7O3TA7K{B7F~7CL7CLE7 K\WH7!G*I7"n\ 7%ixB 7&ixB 7'Fi7(F7*K7.ixB 7/\ 70F/71l> 73|V74B77Pͫ79I7:L7=}u7?M 7@@ 7DK]7EM7GPB7HH7Ie{c 7LS7RE?7J(@7GLA7@:g7CLD7l E7G9F7FIG7 Y7 e7kS37e7Ud7`"E7E7e 7c>k 7@G7AIw!7DCL 7ECL7FCL7H\o 7KCL7N@R7O~Ü 7PD7Q 7RSW 7SC6]7VCL7WCL7YCL7ZCL7[CL7^F"7_H57`Rl7al7c[ 7fC'7gn% 7hHtp 7krf7nH27oJ}7pC 7szcz 7tq7wW7xCa-7yC 7zM7O 7_ 7`7G7^7CL7CL7CL7CL7CL7CL7CL7CL7CL7L(7Is7I3v7I7zff7zff}e7RfD}f7Q_ M7v4 N7CO7 BP7 HQ7iR7NS7o T7F^V7g~8 X7G qY7Jo[7\7Rr^7dU+_7r* `7A״a7Yub7!\c7"Tz7$CL7%CL7&CLg7(s1 7*CL7,CL7-CL7.CLm71GBn74go75v 77CL79CL7:CL7;CL7CLw7AEx7CX)y7l`R7mOP{7pk |7rU }7seW~7u^7yC~7zH;7}nB ~7CL7cm |7CL7Gx7J7I7J"u7CLt7CL7Y 7ml 7j" 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7Ub 7]+47\7Zng7CL 7zr 7CL7CL 7߱c7CL7CL7D7CL7CL7j63 7sU 7CL7CL7CL7fs 7Vk37YX7Wd7M7[B7^7^!7@l"7p#7^33$7I%7M6&7L1 '7L+(7r 7 CL*7 m374CL-76Fq79CL7:CL07< 27>LR[37?K47@FQ"7BCL67C]7DCL87FEZ7ICL:7K~ 7NCL<7Py =7QCU7TCL7UCL@7XPA7YKvB7ZF7\CL7]CLE7_IH7aH2I7bbu 7eixB 7fixB 7gF7hF>K7kK7nj 7oixB 7F[G7l[ 7{7B=7Pԙ7IŦ7L7}ML7M 7EV7RQ;7M7P(7Hκ7d 7S7 gR/?7 hJ1 @7 iGA7 j@)7 kCLD7 mm4 E7 oGiF7 pF1G7 q[d7 ufs37 vkf7 we6g7 zU-7 {`7 |E7 }e 7 c!( 7 G7 IiN!7 CL 7 CL7 CL7 c{ 7 CL7 @7 A27 E7 : 7 H 7 SuI7 CL7 CL7 CL7 CL7 CL7 F-7 HI7 U7 d7 { 7 E7 o 7 S| 7 p37 H#b7 DnQ7 BK7 y 7 qx7 X7 C/7 Ca7 Q7 S5 7 a 7 _f7 IFf7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 L*7 I7 IA7 I7 z7 (z}e7 ]Z}f7_ M7 Fwn N7 HCtO7 IDRP7 JI fQ7 Mh>R7 NNS7 Po T7 QK/V7 Rs X7 TGY7 UJa[7 Vv\7 WT^7 [cq_7 \z* `7 ^Aa7 _}b7 `|*c7 avg7 cCL7 CL7 CLg7 s 7 CL7 CL7 CL7 CLm7 Gn7  o7 u 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Lpx7 YGy7 \7 OP{7 uy, |7 U9}7 h~7 ^7 Ca7 Hn^7 n% ~7 CL7 c7 |7 CL7 G7 Jr7 I7 M u7 CLt7 CL7 X 7 m 7 i< 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7 V` 7 Z[47 Z7 Yg7 CL 7 y 7 CL7 CL 7 )7 CL7 CL7 D7 "CL7 #CL7 %k/ 7 &y 7 )CL7 +CL7 TCL7 WN~ 7 YN7 ZE37 [A7 ^NC7 `_(7 c`g7 da!7 ez4"7 fs #7 gb@$7 iH%7 jMc&7 kL$L'7 lL+(7 mCf7 oCL*7 qM$q7 uCL-7 wF~7 zCL7 {CL07 }BE27 LO37 Kq47 F 7 CL67 ]7 CL87 G`7 CL:7  7 CL<7 @u=7 G`7 CL7 CL@7 OfA7 K`B7 F7 CL7 CLE7 K|H7 ~I7 rg 7 i& 7 ixB 7 G7 GQ7 M;7 k_ 7 ixB 7 Gn7 B7 {7 B7 Pۆ7 I٢7 L7 }7 M 7 EV7 Lv7 M7 PB7 H7 c 7 !Sg7 8Kf7 9MR7 :OxR7 ;MR7 =CL7 >CL7 @CL7 ACL7 BCL7 CCL7 DCL7 E^7 FCL7 GCL7 ICL7 JNb7 LCL7 OCy7 PCL7 TOP7 z 7 CL7 CL7 CL7 CL$7 LP%7 J6&7 M7 CL*7 L,7 DvK7 CL.7 7 7 CL7 CL7 CL7 CL37 o47 A67 Xc377 WVg87 I 97 BK:7 C\;7 H<7 H<7 CL>7 Raf?7 J+@7 G7A7 ~s 7 CLD7 n E7 GF7 F,G7 Z7 hٙ7 m7 f[37 U7 \$7 Ej7 dM 7 a 7 I :7 JF!7 CL 7 CL7 CL7 ^- 7 CL7 @C 7 BF7 D7 r 7 P| 7 a77 CL7 CL7 CL7 CL7 CL7 FB7 H7 W>q7 `dR7 EU 7 B7 m 7 O 7 p\7 JH7 KB7 LC7 Oy 7 QqX7 SX7 TC$87 UC97 VT7 YW @ 7 \`" 7 ]^7 ^F 7 `^7 aCL7 bCL7 cCL7 dCL7 eCL7 fCL7 hCL7 iCL7 jCL7 mL,~7 nI7 oIP7 qI7 szL7 tzL}e7 bO}f7 ^ M7 v}K N7 CO7 | h P7 HQ7 jf^R7 N~S7 o,| T7 CuV7 a X7 G'rY7 Jk[7 ˬ>;\7 R'^7 bX_7 g9 `7 A33a7 a:b7 dc7 ^347 CL7 CL7 CLg7 s-a 7 CL7 CL7 CL7 CLm7 FRn7o7u 7CL7CL7CL7CL7CL7CL7CLw7G8Rx7Y8Ry7^p7 OP{7$a33 |7&UR<}7'dR~7)^7,CB7-HX71n}[ ~73CL75c |77CL7:G7;Jt<7=I$7@HHu7BCLt7CCL7E[@ 7GmZ 7HjG 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7Pd 7X 7Xg7X37CL 7x 7CL7CL 7`7CL7CL7D7CL7CL7k 7uxt 7CL7CL7CL7PY 7\D7Tf7P\7NG7lz7maH7o>!7"7oL#7\,$7I\%7Mܝ&7Ln'7L(7D7CL*7Ay7CL-7^ 7CL7CL07ig27LT.37K\47E7CL67]7CL87E 7CL:7~ 7CL<7zr =7C 7CL7 CL@7 O(A7 KB7F<7CL7CLE7v 7AixB 7BixB 7CH7EH*7GN7Jj ^ 7K]w 7LHG7MB7O} 7PB7SP7UI7VL7Z} 7\M 7_EV7`P>7aM7cPB7dHκ7eeb3 7hS7Q9?7J(@7GA7!{/9 7$CLD7&mh E7(GF7)FRG7*[7-hg7.n7/g^f73VI74`L75E76c7 77a< 78I 79K?m!7d_7?ur `7@Aa7BZ\b7D[34c7EU\7GCL7HCL7ICLg7Kr 7MCL7OCL7PCL7QCLm7TFQn7W4o7Xu 7ZCL7[CL7]CL7^CL7_CL7`CL7aCLw7dE\)x7eWǮy7f\7hOP{7kp |7Uz}7df~7^7C%7H@A7t ~7CL7c |7CL7G(7JR>7H7Pb u7CLt7CL7Z 7n/ 7jZ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7V7 7Z7[7Zd7CL 7@7CL7CL 7Y7CL7CL7D7 CL7 CL7 j 7 {D 7CL7CL7CL7N 7L7D@77Oa7fH7iq7jxR!7 I"7!t@#7"\$7#I%7$M&7%L'7&L$L(7'DZ7)CL*7+I7/CL-71K 7\CL7]CL07__[27aLN37bKa{47cE7eCL67f]7hCL87jG-a7mCL:7pF[G7sCL<7u@=7vF/7yCL7zCL@7}O1A7~K|B7F$57CL7CLE7KFH7@>I7b: 7ixB 7ixB 7H7H*7M'7ixB 7\Rp 7HG7k> 7{7B=7Pͫ7I7L7}v7M 7EV7LZ7M7PB7H7eb3 7Sf7K7%OY7&M{7(CL7)CL7*CL7+CL7,CL7-CL7.CL70^71CL72CL73CL75N_76CL79C7;CL7y#; 7ACL7BCL7CCL7DCL$7FLP%7HJ&7JM07MCL*7PL*,7Q]ē7SCL.7UG7WCL7XCL7YCL7ZCL37]o;(47_AH67V77O387F397BA:7Bc3;7If<7Ff7CL>7Q?7J&.@7GA7w_ 7CLD7l5h E7GF7FG7Ze7j 7o7h37U`7`7E|7d 7bTF 7Ib7J !7CL 7CL7CL7d( 7CL7@&7C~7D77 7IU 7qDs7CL7CL7CL7CL7CL7FI7I7Qf7Zt*7Is3 7BF7m4 7V/P 7 rf7 Gx7 A(7A7y@ 7q7V|7C7Cpi7TH7\^ 7V&f 7 [f7!W 7"^7#CL7$CL7%CL7&CL7PCL7QCL7RCL7SCL7TCL7WL.P7YI 7ZI]87[I7]z7^z}e7^ğ}f7` M7|u N7~CO7DNP7I!Q7hR7NmS7@=T7M/V7u3 X7G.Y7Jn[7\7Tg^7cZ_7} `7Ba7\4b7Yc7T7CL7CL7CLg7s 7CL7CL7CL7CLm7G0n7@C3o7u^ 7CL7CL7CL7CL7CL7CL7CLw7IBx7V(y7_u7OP{7{ |7Uy}7fK~7^7Cv7H)7n4a ~7CL7g |7CL7"GԲ7#J;7$H7'H!u7)CLt7*CL7-Y8 7.la 7/j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu7FSљ 7GVX7HX7IX7KCL 7Mw| 7PCL7QCL 7R07SCL7|CL7~D̘7CL7CL7i 7zڭ 7CL7CL7CL7N 7X7P#37L7P7jB7n@7mg!7{&f"7m3#7[33$7H%7M&&7LZ'7KϜ(7~ 7CL*7lۿ7CL-7 7CL7CL07jb127LM37K47E7CL67]7CL87G )7CL:7 7CL<7 =7Fݱ7CL7CL@7O)A7K]B7F.Z7CL7CLE7JH7AI7j 7ixB 7ixB 7Go7G7M^7 ixB 7 ]< 7 G7 k[ 7}7Bo|7Pƽ7I?C7L7}`7M 7FEV7GQI7HM7JPB7KH7Leb3 7OS7Qh?7J'@7GA7|R8 7CLD7mm E7 G F7FG7[i7e7k(7df7UG_7]ww7EG7a- 7`' 7Ha7J3!7"CL 7#CL7$CL7'c7 7*CL7,^ 7-E#7.DnQ7/~ 70N} 72u75CL76CL77CL78CL79CL7SL7@W޷7BG3 7DBy7En% 7FTi ;r;G; A; B; z ;qp;Uҕ;C$;Ej;V;^ ;Y ;_;Uf;^;CL; CL;!CL;"CL;#CL;$CL;%CL;'CL;(CL;+L-g;,I\;-IU;/I;1{;2{}e70bM}f7-` M;xw+ N;zDO;{} P;|HXQ;i R;N{^S;A^vT;FV;f} X;G<;Y;J[;\;T^;d_;jc `;D Xa;rs4b;t >c;n4;CL;CL;CLg;r/ ;CL;CL;CL;CLm;Hbn;4o;t ;CL;CL;CL;CL;CL;CL;CLw;Lx;W\y;]Ǯ;OP{;d |;U7};g~;^;D;HV;ouq ~;CL;c |;CL;GV;J;H;Oeu;CLt;CL;,X ;-l ;.iQ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu;DVg ;FW[3;GWf;HV;JCL ;Lx ;OCL;PCL ;Q;RCL;SCL;UEZ;XCL;YCL;[k ;\{V ;_CL;`CL;aCL;dNۡ ;eH3;f@K3;gy2;QQ;f;i ;iq!;u";cL#;V$;H%;M&;Ln';K{(;C;CL*;z;CL-;~' ;CL;CL0;jb12;LJ$3;K4;E;CL6;];CL8;F;CL:;)b ;CL<;~z =;F;CL;CL@;NVyA;KB;F_;CL;CLE;IH;fXI;sɔ ;ixB ;ixB ;H*;G;N;j ; ] ; G; nww ; {;B;P;I2;L;} ;M ;EV;Lv;M;!N_;"I~;#eb3 ;&S;S-D?;I@;GA;J;CLD;mh E;G5F;F"G;Z7;c;h;bf;U?;`;E|;a ;_ ;I6;J!;CL ; CL;!CL;#]n ;&CL;(@-S;)E@;*DX;+~ ;.T;/ybO;1CL;2CL;3CL;4CL;5CL;8FH;:IS;;V;G ;@Brd;An0 ;BP ;En3;HG{;JAW3;KB;Ny ;On;QT;RC;SCt ;TU;W`' ;[Uff ;_;V;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;L*;I;IL;I;iQ;iQ}e;.E}f;,_ M;v N;D$O;AP;HeQ;h'R;NS;p T;G*V;i X;G-Y;J[;\;T(^;b_;tr `;Dma;]s4b;]c;U4;CL;CL;CLg;rb ;CL; CL; CL; CLm;HDn;~o;t- ;CL;CL;CL;CL;CL;CL;CLw;E\x; Uy;!];"OP{;Mo |;OUM;};Qf̄~;S^;VD~-;WH;Zn4a ~;\CL;_c |;aCL;dG;eJ);fH6;jG%u;lCLt;mCL;oY ;pl ;ri| 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu;Q ;\g;\S3;\\;CL ;x+ ;CL;CL ;Zo;CL;CL;E#;CL;CL;k ;u ;CL;CL;CL;R̋ ;V;A;{;Q;f=q;is4;i!;nٚ";by#;Z9$;H%;M|&;L4';KG(;DB;CL*;G;CL-;~Ü ;CL;CL0;jp2;LP3;K4;E;CL6; ];!CL8;#E ;&CL:;(r ;+CL<;-{in =;.C.;1CL;2CL@;5NRA;6KNB;7FJ;9CL;:CLE;PI;?f( ;BixB ;CixB ;DHؒ;EH;GP0;JixB ;K\Ǯ ;LH;Mn> ;O|;yB2;|Pۆ;~Ii;L;};M ;EV;Lv;Mc;Ny;I~;d] ;S;CWFY?;DI@;EGA;FO67;HCLD;Jm E;LGF;MFG;NZΗ;Rd3;Sif;Tc;WU ;X_%;YEX;Za ;\_+ ;]I;^K0!;aCL ;bCL;cCL;e] ;hCL;j@;lD;mD;;n~l^ ;oH ;qz;sCL;tCL;uCL;wCL;xCL;{F7;I;QI ;Sx;G33 ;BF;n0 ;QO ;r;G;AG8;A;y ;n;Sl;C ;C;Vz);ax ;\ ;``;WVf;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;L';H;II?;IЍ;z3;z3}e;o_}f;o`0 M;#v4 N;%CqO;&CP;'HaQ;+gKR;,N1S;-p T;.KV;/rۢ X;1GQY;2J[;4uc\;5X#^;8e_;9xU `;;C`a;F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu;U ;a3;b;]C3;CL ;v ;CL;CL ;3`;CL;CL;E;CL;CL;ju ;zڭ ;CL;CL; CL;4Q ;5Jy;6A#3;7v;:R73;j!;?{";@W&g#;AN$;BH%;CMi&;DLjo';EK.(;FD$V;HCL*;JJ;4;NCL-;P~l^ ;SCL;TCL0;VbP2;XLC3;YKz 4;ZEYA;\CL6;]];_CL8;aF:;dCL:;fFL;hCL<;j@=;lFݱ;oCL;CL@;O:A;K4B;F{);CL;CLE;KH;DI;c ;ixB ;ixB ;H;HG;Mx;ixB ;\ ;Hd;k[ ;{;A;P;I;KA;}ML;M ;EV;OW;M;N;I~;d] ;S; X?; I@; HA; EQ; CLD; l E; GF; GG; [; f3; k; e; T; ]C; E,*; `d ; _/ ; I6; JF!; CL ; CL; CL; c_ ; CL;  ; AL; D; ~ ; K%p ; {w!; CL; CL; CL; CL; CL; F@; I; U%; Q; F3 ; B8P; n0 ; V ; p@; GM; A*; AD; y] ; qdZ; R.>; B; Ci(; Uj; +bs ; .`" ; /_3; 0Wf; 1^; 2CL; 3CL; 5CL; 6CL; 7CL; 8CL; 9CL; :CL; F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu; uV=T ; wc&f; xcf; y^; {CL ; }xo ; CL; CL ; H; CL; CL; Ez; CL; CL; k) ; z` ; CL; CL; CL; P ; Pf; H; Eɚ; R; fq; j:; i!; hff"; Z#; E3$; H%; M:>&; L'; K(; D; CL*; IA; CL-;  O ; CL; CL0; df2; L1}3; K4; E_; CL6; ]; CL8;F;CL:;@;CL<; =;G;CL; CL@;#ONA;$KyB;%E;'CL;(CLE;+cH;,@>I;/p5 ;2i| ;3ixB ;4H*;5Go;7N;:kK ;;ixB ;=G;>nZ ;@|(;AB,;DPƽ;FI ;GK();K} 8;uM ;xEV;yQ5r;zI;|PB;}I~;~d] ;S; V?; J@;H A;|& ;CLD;=m E;?H F;@GG;A\&;Ecf;Fi+3;Gc;JT";K];LEE;Mc ;Na- ;OIZ;QJF!;TCL ;UCL;VCL;X` ;[CL;]: ;^D;_DY;a~l^ ;bJ ;d|;fCL;gCL;hCL;iCL;jCL;mFL;oI;pR;qO ;sG ;uBE;vm4 ;wSB2 ;r;G;@U;Cv8;z ;qS;P!h;C(;C;U;d D ;Xf ;^;V3;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;L/9;I\;I(;I;{L;{L}e;b`}f; ]_b M;uwo N;CO;DvP;HLQ;fR;NS; of T;!K"V;"rۢ X;$GY;&J[;'b\;(VT^;+e'_;,{9 `;.ANa;/u=qb;1uc;2p34;4CL;5CL;6CLg;8r ;:CL;CLm;iGon;l o;mt- ;oCL;pCL;rCL;sCL;tCL;uCL;vCLw;yG(x;zSy;|^;}OP{;~vA |;Uwl};hp~;^;C;HQ;pX ~;CL;b5h |;CL;G{;G2s;H;HDu;CLt;CL;XC ;lQ ;i- 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu;Q ;j3;ky;f;CL ;xH ;CL;CL ;'n;CL;CL;EZ;CL;CL;l ;vs ;CL;CL;CL;Q, ;M6f;Dg;B&f;S#s;h@;0k8R;1j!;2ff";3f#;4N`$;5H%;6M&.&;7L&';8K(;9D";;CL*;=tL;ACL-;C ;FCL;GCL0;Hj*2;L2g3;K4;E;;CL6;];CL8;F;CL:; ;CL<;@Je=;F~;CL;CL@;OTA;KwB;m7 ;CL;CLE;DH;x/]I;tv ;j ^ ; ixB ; H ; H/;P0;k_ ;ixB ;H;o"! ;} ;A;PO;I ;K);!} 8;#M ;&EV;(L;)H8;+PB;,I~;-a ;0S;S?;JA@;HA;s8 ;CLD;m7 E;H&F;G$G;Z~;j$;o;i3;TN;a,;E5;$e ;&` ;'Jw;)Mv!;+CL ;,CL;-CL;/c!( ;2CL;5 ;6z % ;7E;8~ ;:s;;|iV;=CL;>CL;?CL;ACL;BCL;EFC;FI ;GW.;HM;JGj ;LB";Mm ;OV ;Rnf;UH ;V@X;WC\;Z{ ;[qK;]NY;^LDX;K;U;d ;`DD ;`y;X;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;LB[;I ;I ;I;h ;h }e;:Q}f;^Z M;v N;DkO;|? P;HQ;h~R;N3S;o; T;C~V;ay X;GjY;K$[;>\;U^;d) _;gU `;A|4a; eHb; fc; bٙ; CL;CL;CLg;rb ;CL;CL;CL;CLm;G-n;go;tb4 ;!CL;"CL;#CL;$CL;%CL;&CL;PCLw;SE x;TQy;UWL;VOP{;Yc |;[UR};]d~;_^;bCi;cH@A;fq9 ~;hCL;kg+ |;mCL;pGI;qF;rH";uNuu;xCLt;yCL;{W ;|mx ;}iE 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu;VnP ;ef;f`;a;CL ;y@Y ;CL;CL ;ȳE;CL;CL;E2;CL;CL;mh ;zH ;CL;CL;CL;OU ;Mp;D;B[3;S;kٙ;o5;m:!;e@";W#;K3$;Hx%;M7&;L';K(;D`;CL*;V;CL-;r ;!CL;#CL0;%d%2;'L03;(K4;)E%;+CL6;,];-CL8;0F;2CL:;4@;7CL<;9@=;;F/;=CL;?CL@;BNA;CLiB;FxP ;ICL;JCLE;LfH;7wTI;;a ;=ixB ;?ixB ;@I;AI=;CNY;FixB ;G\ >IZ>l> >{ņ> A> PP>I">K3>}>M >EV>Lv>H8>P(>I~>d] >!S"Eʘ>$CL>'Ew>(ES~>*CL>+CL>,CL>-CL>/CL>0CL>1CL>2CL>5t6g>6s>7BL>8N\>9MR>;P^>eCL>fCL>gCL>hCL>iCL>jCL>kCL>l^>nCL>oCL>pCL>qNJ>sCL>vCݑ>xCL>yCL>{|& >}CL>~CL>CL>CL$>L[%>Jq&>JS>CL*>K ,>XB>CL.>JX>CL>CL>CL>CL3>p4>AH6>7>s8>i9>Ck*:>L;>L <>L3>CL>>R5?>JG@>H%oA>n4a >CLD>lR E>H F>G oG>[2>n6f>t@>mY>Sq>`w|>Ea>cjS >^- >Jm>M!>CL >CL>CL>_x= >CL>@&>vv >E9[>~ >G>}?3>-CL>/CL>0CL>1CL>2CL>5FI>6I>7V|Q>8Kn>:F >=Aҩ>>me >?S$ >Bm3>EH-b>F@>GCSc>J{ >Kr1>NM >ODE>PEFh>QU>Te >W` >X^>YWL>Z^>\CL>]CL>^CL>_CL>`CL>aCL>cCL>dCL>eCL>L>I>Hx>I>hp>hp}e>A}f;{] M>v N>DGO>E`P>HCsQ>gdR>NS>}: T>KV>rw X>G"Y>K[>Ȭ˪\>TDD^>e3_>zc `>A)wa>nb>p{c>j34>CL>CL>CLg>r >CL>CL>CL>CLm> Fئn>go>tw1 >CL>CL>CL>CL>CL>CL>CLw>H>x>Py>Y8R>OP{> w m |>!V# }>"iA~>$^>'C>(H>+vK ~>.CL>XgV |>ZCL>]G>^G )>_HR>cO`u>eCLt>fCL>hWV >im`B >ki 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu>Wr >g>i[4>`g>CL >x+ >CL>CL >>CL>CL>E@>CL>CL>lo >zڭ >CL>CL>CL>O >F>}fg>xf>S>mQ>h>h!>cL">Yg#>N$>HM%>MQ&>LW'>JR(>~ >CL*>`mC>CL->~ >CL>CL0>eL2>L.3>K4>ET>CL6>]>CL8> Fq>#CL:>%' >(CL<>*@=>+F>.CL>/CL@>2O67A>3L1B>6yz >9CL>;CLE>=B H>A}5I>Eg >HixB >IixB >JI>KH$>MN>QixB >R]w >SH>Tl[ >V{>XBV>[P_>I>KA>}ML>M >EV>O>H8>PB>I~>a >SEʘ>CL>E>DB>CL>CL>CL>CL>CL>CL>CL>CL>wf>j>}>L)>OQ>Mٚ>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N9>CL>C`>CL>CL>{ >CL>CL>CL>CL$>LP%>J &>PS>CL*>LS,>L>CL.> Bc> CL>CL>CL>CL3>p4>AH6>@)7>{8>lg9>C:>I33;>K#3<>Gf>!CL>>LQG?>MJ5@>NH8A>Qp- >SCLD>Um- E>WGPF>XGG>YZ>]l>^ri>_k>bT1>c_>dE>fc7 >g_ [ >hIΘ>jM!>lCL >mCL>nCL>pex >sCL>v@b>wvv >xE>y@`2>zF\ >||>~CL>CL>CL>CL>CL>FcA>I(>Q5>J>GY >Af>m >VC >r#3>H=>@>B~>z[ >r1>L>A>C>U6v>fTQ >bj >`>\>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L8U>I$>H>I>z33>z33}e>z]}f>h^CL M>.vw N>0DO>1~> P>2H*Q>5iR>6NS>8AKT>9DocV>:cj X>=K2:[>>\>?W ^>CdG_>Dgr `>FB(a>Gl b>HoHc>Iku>KCL>MCL>NCLg>xq >zCL>{CL>|CL>}CLm>Gn>Io>sZ >CL>CL>CL>CL>CL>CL>CLw>K>x>OQy>VH>OP{>a |>UӪ}>fi~>^>Cq>H>o ~>CL>a/ |>CL>Ga>F>H>Gu>CLt>CL>W6 >kbN >h/ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu>W2 >gK3>i>`&f>CL >y1 >CL>CL >Go>CL>CL> E*> CL>CL>mJ >yJ >CL>CL>CL>AO >BK&g>CBɚ>D@33>GS>Ic>Jg#>Kg!>L`">MSf#>OPy$>PH:%>QMd1&>RLJ'>SJ(>TC:>VCL*>XO1>[CL->]^ >`CL>aCL0>cheL$3>fK4>gDɲ>iCL6>j]>kCL8>mF[G>pCL:>rU >uCL<>w@==>xF:>{CL>CL@>O):A>L~B>x >CL>CLE>CH>|/rI>nP >ixB >ixB >I=>I>Px>j >ixB >I/j>nZ >z>BV>Pe>I>L>}u>M >EV>Lv>Jd>PB>I~>d] >S @ > CL>E^>D>CL>CL>CL>CL>CL>CL>CL>CL>t>cVg>vg> L>!Pu>"N>$CL>%CL>&CL>(CL>)CL>*CL>+CL>,^>-CL>.CL>0CL>1NBC>3CL>6C>7CL>8CL>:z >=CL>>CL>?CL>@CL$>CLCD%>lJ &>nND>qCL*>tLi,>uE>wCL.>y7 >{CL>|CL>}CL>~CL3>p-g4>AH6>~7>r98>g49>C:>EI;>F<>B3>CL>>R?>J+@>H<-A>A>>CLD>m E>GF>FMG>Z>kp>qS4>jl>T>\>E>e5 >ax >Jt>M!>CL >CL>CL>ax >CL>@.>xWc >Ed> >H >|>CL>CL>CL>CL>CL>Fh>I g>U>Ig>Gb" >A>mh >P >n>HO>@wr>C >z >rb> K0> y# >4Dg>6U>9fJ >=_>>Z)>?^>ACL>BCL>CCL>DCL>ECL>FCL>HCL>ICL>JCL>ML >NI>OH>QIA>ThR>WhR}e>\$}f>^$ M>wC N>DO>B3XP>G߉Q>h WR>NS>AHT>G1V>i8V X>GY>KPg[> \>TE^>e_>sr `>D!a>XQb>Xc>UxR>CL>CL>CLg>r >CL>CL>CL>CLm>Hr5n>~4o>t- >CL>CL>CL>CL>CL>CL>CLw> @)x> Muy> S >> OP{> mfg |> V}> hz~> ^> D> Hh> nB ~> CL> e |> CL> G˝> Eq-> H> #OEu> %CLt> &CL> (W > *l > +iK 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu> iWn > jbS4> kd> lZ> nCL > py]w > sCL> tCL > uVG> vCL> wCL> yEZ> |CL> }CL> m<8 > yC > CL> CL> CL> Oߌ > M> E > A> S> g> k> k8R!> g"> XFg#> Bg$> H%> Mp&> LL'> JҪ(> C> CL*> Kt> CL-> @> CL> CL0> fO2> LG3> K>4> D> CL6> ]> CL8> F/> CL:> ' > CL<> @=> F> CL> CL@> O4A> LB> AS> CL> CLE> |H> HUI> s > ixB > ixB > (I> )I/> +P7> .jb > /ixB > 0I > 1o> > 3zJ> 4A> 7PC> 9IW> ;KCu> >}ML> @L> CEV> DLv> EI> GPB> HI~> I`Y > LDF > MEʘ> OCL> SE> TD> VCL> WCL> XCL> YCL> ZCL> [CL> \CL> ^CL> alg> bavg> ct6g> M> MR> OJ>> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> NGQ> CL> C> CL> CL> z? > CL> CL> CL> CL$> LF%> JTj&> I > CL*> LZ,> JI> CL.>  > CL> CL> CL> CL3> p54> A6> A7> w@8> jf9> Cw:> E4;> G\<> DFg> CL>> RV?> J$\@> H8A> B> CLD> mi E> G}F> FMG> Y> l> r> k> TA> a, > Eg> d > `S > K > NY]!> CL > CL> CL> "^D > %CL> '@> (z % > )EO> *U > TRU> U|e> WCL> YCL> ZCL> [CL> \CL> _Fo> `I> aNTO> bIw> eG] > gAZ> hmJ > iO.{ > lr> oHY> r@A> sBE> tz > vr> wJP> xD> yEG> {Um> ~g>? > c > _f> [> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> L,> H> H> I> zff> zff}e> TeFR}f> (^| M> vz N> CIO> CP> G8Q> fR> NS> p< T> JV> q/ X> G 8Y> J[>  \> XC^> "dNb_> $v9 `> &Da> 'qb> (rc> )n(> +CL> ,CL> .CLg> 0r > 2CL> 3CL> 4CL> 5CLm> 8Hn> <o> =u > ?CL> @CL> ACL> BCL> CCL> DCL> FCLw> IA{x> JLy> KRB> LOP{> MqH |> NWK}> OeA~> R^> UD8> VGm> n0 ~> CL> f- |> CL> G> E2> IV> Ga@u> CLt> CL> V) > jm > iX 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu> Wk > eD> h> _ٚ> CL > x# > CL> CL > > CL> CL> E9[> CL> CL> mYk > x > CL> CL> CL> OĜ > M> Dy> A> T> jJ>> nfg> nG!> V"> EL#> 4$> Hچ%> Mu&> K'> JN(> D[> CL*> K> CL-> @&> CL> CL0> g2> KJ3> K١4> D> CL6> ]> HCL8> JF(> MCL:> Or > RCL<> T@=> UF> XCL> YCL@> \O>'A> ]L)FB> `y] > cCL> dCLE> fBH> h@{$I> ksp > nixB > oixB > pI > qIw> sP0> vixB > w\^ > xI>> zl > |zJ> }BV> Pr> I> K?> } 8> L> EV> P x> I!!> PB> I%> `w/ > xd> Eʘ> CL> EWW> D> CL> CL> CL> CL> CL> CL> CL> CL> rf> avg> vg> GR> M> KT{> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> N5> CL>C>CL>CL>y# >CL>CL>CL>CL$>LCD%> J^&>#L>&CL*>(K ,>)R>+CL.>.NJ4>0CL>1CL>2CL>3CL3>5pK4>7A6>:7>;sY8>?C4:>AF`;>BGS3<>CCg>ECL>>GTU?>HJ#s@>IH/qA>J@>tCLD>vl E>xG!F>yFMG>z[>}n>t6g>l>T}>`~M>E>fb >a< >J >N!>CL >CL>CL>c >CL>@n>| >E>)b >>|>CL>CL>CL>CL>CL>F*>I>TB>HM>G >A^v>mYk >T9 >m>Hg> >B}>z >rb>Ip>w >C:>TB>g >a >_f>[>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L&>I>H>I'>iQ> iQ}e>l}f> \_ M>Qw N>SDkO>U@NqP>VHJQ>YgR>ZN(S>[o T>\DJV>]c X>`GY>aK[>bY\>cV(^>fcA_>gkV `>iBa>kW b>lX+c>mT>oCL>pCL>qCLg>sq >uCL>wCL>CL>CLm>H n>~4o>t >CL>CL>CL>CL>CL>CL>CLw>D4x>Nfy>Su>OP{>f"# |>Un}>e}~>^>C>G>of ~>CL>a/ |>CL>G>D>I>Nu>CLt>CL>Wr >k >iX 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu>X%a >f0> h@>!_\>#CL >%x# >(CL>)CL >*>+CL>,CL>.EZ>1CL>2CL>4lo >5x >8CL>9CL>:CL>=O >>O3>?E>hCf>kTP/>mj*>nkR>ol!>p_">qE9#>r@4$>sHκ%>tMwX&>uLS'>vJ (>wD>yCL*>{K='>~CL->@>CL>CL0>gN2>K3>K4>Dl>CL6>]>CL8>F7 >CL:>7 >CL<>@=>F?>CL>CL@>O@QA>L"B>xo >CL>CLE>E8H>sI>akV >ixB >ixB >I/>IL\>Nڐ>ixB >]w >IiN>l[ >zJ>BV>P52>I~>K:[>} 8>L>EV>Lv>Hi`>PB>I(>`w/ >j.>Eʘ>CL>2E>3Db>5CL>6CL>7CL>8CL>9CL>:CL>=CL>@avg>A_f>Bvf>CGR>DL >EGR>GCL>HCL>JCL>KCL>LCL>MCL>NCL>O^>PCL>QCL>SCL>TN-S>VCL>YC>ZCL>[CL>]y#; >`CL>aCL>bCL>cCL$>fLN1%>gI&>jQX>CL*>Ld,>T>CL.>@>CL>CL>CL>CL3>prK4>A6>s37>l8>i&g9>B:>Df;>Fٚ<>Bɚ>CL>>R9?>J/L@>H0ZA>tx >CLD>lR E>HF>FG>Y>i>p >i>T >],=>Es>ex >a >J>MY!>CL >CL>CL>cjS >CL>@R> }: > E> ~; > F0 >{ڵ>CL>CL>CL>CL>CL>F>I>N>G9>G >A+> l9 >!RA >%sI>(Hp>+7 >,CD>-zu >.r>/H$>0DS>1E*>\Td>_h >bb >c^>dY3>e^>fCL>gCL>iCL>jCL>kCL>lCL>mCL>nCL>pCL>sL >tI>uHt>vJ=>xy>zy}e> ]}f>^x M>vw N>CO>DP>HQ>f R>N(S>o۔ T>I~V>m X>GY>J[>Э\>UKa^>e `_>vUU `>BHa>U\b>THc>O{>CL>CL>CLg>qa >CL>CL>CL>CLm>Gn>o>t >CL>CL>CL>CL>CL>CL>CLw>E>x>$M >y>%U>&OP{>'rp |>(U#}>)g%~>,^>/C>0H:>3uS[ ~>5CL>7f |>:CL>=Gޯ>>DP>?I>@EXu>BCLt>DCL>FW >Gk1' >Hh 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu>_Wb >cg>g>^)>CL >y@ >CL>CL >>CL>CL>D>CL>CL>l5h >wxY >CL>CL>CL>Oc >M>E>Eg>TD>jp>n >>l\!>[">Dy#>@33$>Hϣ%>M|&>L'>J7(>D>CL*>J>CL->: >CL>CL0>gu2>K3>K4>C\>CL6>]>CL8>E>CL:>~ >CL<>@=>FL>CL> CL@> OgA> LB>}T >CL>CLE>H>AI>h >ixB >ixB > IiN>!I >#Px>&jb >'] >PI/j>Qn> >TzJ>UA>XPP>ZIpJ>[K+>^} 8>`L>cEV>dPA>eG>gPB>hI>lo^ >nbla>qEʘ>sCL>vES>wD>yCL>zCL>{CL>|CL>}CL>CL>CL>CL>avg>aP>sf>L\>PW >N>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N+>CL>C<>CL>CL>y >CL>CL>CL>CL$>L|%>I&>K>CL*>L;,>E:>CL.>~l^ >CL>CL>CL>CL3>p84>AH6>xL7>lg8>c9>BX:>Cp;>E<>B<>CL>>"Q ?>#J8k@>$H8A>'n >)CLD>+la7 E>-H&F>.FeG>/[>3g.f>4mf>5ff>8T>9a>:E,*>;g >=dE >>Jm>@L!>BCL >CCL>DCL>F_/ >ICL>LK >MA>N@4>O} >Q>R{Z,>|CL>}CL>~CL>CL>CL>F>I\>S@>F>GD >@>l9 >NC& >mf>HtP>~s >A>zcz >r{>G>~OI >D>T>hb >b >^3>X>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L>I>H>JU>h\>h\}e>QQe}f>F^ M>w:a N> D"O> B$^P> HUQ>eR>N_S>of T>I V>m, X>GY>K:[>uc\>VZP^>Dci_>EpG `>GAGa>Hkb>Inc>Jm{>LCL>MCL>OCLg>Qqp >SCL>TCL>UCL>VCLm>YG]n>]~o>^uI >`CL>aCL>bCL>cCL>dCL>eCL>gCLw>j@aHx>kO{y>lRq>mOP{>pk |>rW}>terj~>v^>yC>zHP>}p3 ~>CL>a) |>CL>G>D#>I 8>Lpu>CLt>CL>Vq >lE >hP 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu>X]l >_>aFf>Z>CL >x# >CL>CL >T>CL> CL>DV>CL>CL>k >uO >CL>CL>CL>O >M>D3> C>#Tz>%d>&i>>'hH!>(W&g">)B#>*z$>+Hκ%>,Mt&>-L4'>.J}(>/D>1CL*>3J >6CL->8Fv >;CL>>f"2>@KJ3>AKظ4>BC/>DCL6>E]>GCL8BEBCL:B ~] B CLB2m B4zJB5BVB8PWB:I_B;K&XBf} 8BhLBkEVBlLEBmELBpNBqJ+gBto^ Bv\vByEʘB{CLB~EBDBCLBCLBCLBCLBCLBCLBCLBCLBbBYgBl BLBBP!HBNBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN. BCLBCBCLBCLBy BCLBCLBCLBCL$BLtt%BJ@&BIBCL*BK,BD4BCL.BN|BCLBCLBCLBCL3BpJ4BAH6Bvf7Bp8B^39BBA:BD;BFpBP?BJ3@B,HBAB/nn B2CLDB4lD EB5HjFB6FGB7Y0^B;dBBB`̬BCDoBDfJ BEc BFJnBHM N!BJCL BKCLBLCLBOc/ BRCLBT BUAHBV@BW} BXwBZzB]CLB^CLB_CLB`CLBaCLBdFBeHBfLO/BgFEBH. B@rBl9 BS BtBHw B~@ BBBz Br{BG-aBALBEBSBhJ Bds3 B_BZB^BCLBCLBCLBCLBCLBCLBCLBCLBCLBL'BIBHaBJ By33By33}eBXW1}f>]Hp MB uG NBD EOBA PBHQBfFDRBNSBof TBE%VBd XBG YBJ[B\BS^B!c#_B"nG `B#APgaB%TbB&TcB(PffB*CLB+CLB,CLgB.q" BXCLBYCLB[CLB\CLmB_GvnBb4oBcu BeCLBfCLBgCLBiCLBjCLBkCLBlCLwBo@xBpO#yBqTBrOP{Bvh33 |BxVZ}Byf~B{^B~CRBH Bt ~BCLBf| |BCLBGzBDBHBG"uBCLtBCLBW BkO BiV 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuBW BaBe1B]|BCL Bw BCLBCL B{*BCLBCLBDBCLBCLBk Buxt BCLBCLBCLB O< B!SB"K0B#H3B&Tv;B(k{B)n}qB*q!H!B+S"B,G#B-Ks3$B.H%B/Mo#&B0Kd'B2J(B3C*B5CL*B7J B9CL-B;|5! B>CLB?CL0BA`12BCK83BDK4BECBGCL6BI]BJCL8BLEV[BOCL:BQ~l^ BTCLBtQ?BuJk@BvH=AByy]w B{CLDB}k. EBG FBFκGB[glBdYBi3Bc>fBSB] vBDBf7 Bcн BJBLfN!BCL BCLBCLBb BCLB BABE#B}u% B˻OaBzQBCLBCLBCLBCLBCLBFBH^BSBEBG B@Bl BR9 BnlBHw B}~ BA/Bz7 BrBFBDBDBSjBi\ B j B!`3B"\@B#^B$CLB&CLB'CLB(CLB)CLB*CLB+CLB,CLB.CLB1L B2I WB3HB4JSB7hB;h}eBXe}fB^>j MBwf NBDOBCVPBH5QBdRBNSBo,| TBIaVBn5 XBGYBKs[BW\BXJ^Bc_Bwr `BA DaBRxRbBUcBOYBCLBCLBCLgBq ( BCLBCLBCLBCLmBFnB4oBu BCLBCLBCLBCLBCLBCLBCLwBE.xBOyBSBOP{Bt |BW}Bi~B^BCBGlBr# ~BCLBe |BCLBGxBDZBIBKuBCLtBCLB WS B k/ B i9X 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuBJXQ BKaBLbBMZs3BOCL BQy@Y BTCLBUCL BV'BWCLBXCLBZDQNB]CLB^CLB`kh Bato BcOPBfCLBgCLBjOm BkNgBlIlBmIhBpT}Brk!HBsoǯBto!BuP@"BvGfg#BwAff$BxHN%ByMcH&BzLu'B{Jy(BCBCL*BKWBCL-B} BCLBCL0Bc׏2BK3BK 4BC>XBCL6B]BCL8BEBCL:B}h BCLCLB?CLB@CLBBCLBmYgBnavgBouBpGRBqLBBrGRBtCLBuCLBvCLBxCLByCLBzCLB{CLB|^B}CLB~CLBCLBN#BCLBCTBCLBCLBzF^ BCLBCLBCLBCL$BLCD%BJ}&BM<BCL*BL,BYBCL.B}u% BCLBCLBCLBCL3BpTw4BA6Bm7B_8B]39BB0:BCY;BE BRC#?BJ @BH2+ABABCLDBj EBG5FBFNGBYqBd8Bj$Bcs3BSBaBDBh(# Be BJBLpl!BCL BCLBCLB^SI BCLB ~Ü B BB4E B5} B6Fr B8zzB:CLBCLB?CLBBFBCHBDOxBEEBGHD BJ@JeBKl8 BLN4p BOrfBRHtPBU}h BVA^vBWz)B BXr(BZEB[z)B B\C4B^SBaiLl Bdf"" Be`9Bf]Bg^BiCLBjCLBkCLBlCLBmCLBnCLBCLBCLBCLBLBIBHBJ jByBy}eB6].3}fB ] MBv NBD OB@PBH@QBeVRBNuSBo,| TBErVBfo> XBGYBJ[BӮ\BV ^BcS_B i `B @TaB ibB jcB iB CLB CLB CLgB pP B CLB CLB CLB CLmB FqnB ~4oB u B CLB CLB CLB CLB CLB !CLB "CLwB %|QxB &K=qyB 'SuB (OP{B ,d |B .W}B /g#~B 1^B 4BB 5GЎB `wna ~B cCLB e`p |B gCLB jGNB kD:B mHJB pIҏuB rCLtB sCLB uW~ B wk+ B xhw 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuB X B ]dB ]VfB UfB CL B xWc B CLB CL B B CLB CLB DB CLB CLB n% B sj B CLB CLB CLB Nf B TB KfB IhB TSB fB j34B jaH!B R33"B E#B If$B HŨ%B Ms&B L*'B J(B CB CL*B J&GB CL-B }R B CLB CL0B b2B Ki3B K64B BB CL6B ]B (CL8B *DXB -CL:B /E9[B 1CLAB @CLB ACLEB Dw<HB EFUIB HaX B KixB B LixB B MH$B NHVFB PNB SixB B T]Z7 B UHs<B Wl> B YxdB ZBVB ]PvB _IB `K)B c} 8B K&XB EVB RJPB E&B NyB JPB o^ B SB EʘB CLB EB DwB CLB CLB CLB CLB CLB CLB CLB CLB `3B YgB lgB KB NB M >B CLB CLB CLB CLB CLB CLB CLB ^B CLB CLB CLB N(EB CLB C0B CLB CLB { B CLB CLB CLB CL$B LE%B IV&B L&xB CL*B L,B FVB CL.B OCB CLB CLB CLB CL3B pU-4B AH6B pFf7B jf8B cs39B AX:B !Dy;B "EYB 'S?B (J @B )HAB T} B WCLDB Xk. EB ZGFB [FGB \[u B `c+3B ahffB bb 3B eSB f`B hDglB ifb B jd( B kI\B lK82!B oCL B pCLB qCLB s`׬ B wCLB y~ B zD|B {D̘B || B ~B z:B CLB CLB CLB CLB CLB FB HB OB DmB HU B  B lD B R̦ B pPB HoB } B @.B |5! B r$B E@B DB DB SB i B kH B `B ^pB ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB LB IB HkB J;B j\)B j\)}eB ~@}fB u]b MB 4v NB 6D OB 7BqPB 8HQB ;d?RB =NwSB >@nTB ?GVB @hJ XB BGIYB CJ٦[B D\B FV^B Id3:_B Jrq `B LAaB MT=qbB NTkcB OQEB QCLB SCLB TCLgB Vp B CLB CLB CLB CLmB GhnB oB sI B CLB CLB CLB CLB CLB CLB CLwB D8RxB NyB S8RB OP{B m |B V}B g~B ^B C xB H)3B xH ~B CLB f |B CLB G<B EޢB HB IquB CLtB CLB Xz B lv B i 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuB X B c0B c9B ^8B CL B wna B CLB CL B B CLB CLB C:B CLB CLB me B rp B CLB CLB CLB NO B HO4B IF4B JDyB MT_gB OlB Pn4B Qn!B RR "B TDfg#B U| $B VH%B WM{&B XLo'B YJ(B ZCB \CL*B ^I7B aCL-B c}R B fCLB gCL0B idA2B kKC]3B lK4B mBB oCL6B p]B qCL8B sDB vCL:B xFyB {CLCLB?CLBA{ BCCLBDCLBECLBFCL$BILP%BJJ;&BuPTCBxCL*BzLn,B{DBB}CL.B: BCLBCLBCLBCL3Bp\H4BAH6Bv7Bl38BiL9BAŨ:BC;BDBS_?BJd@BHlAB@0BCLDBk) EBGFBFpGBYB[Ba33B[YBRB]<BDLBdR Bc BIkBJ!BCL BCLBCLBbE BCLB~ BGBDB|} BGպ ByBCLBCLBCLBCLBCLBFRBHBS6BD$BHY B Bl5h BQ Bo3B H:B }h B B)BCDBr1'BDBw BCBF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuBpXv Bq^3Br^gBsW4BuCL Bwy@Y BzCLB{CL B|YB}CLB~CLBC:BCLBCLBmYk Bq BOPBCLBCLBM? BS#3BLgBGBTBaBeٙBe!BN"BL#BD@$BH%BMғ&BL 'BJ(BC;qBCL*BIBCL-B} BCLBCL0Bf"N2BK'3BK4BB{BCL6B]BCL8BDBCL:BFbBCLBCLBCLEBjkHBC{IBq! BixB BixB BHdB0H[B2M[B5ixB B6\^ B7H9QB8l[ B:xB;BVB>PIB@IBBK:[BE} 8BGLBJEVBKQ<_BLABNPBBOJPBRo^ BTQBWEʘBYCLB\EB^DB`CLBaCLBbCLBcCLBdCLBeCLBfCLBgCLBjYgBPgBavgBGRBLBK5BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNBCLBC#BCLBCLBz[ BCLBCLBCLBCL$BLaS%BJ{x&BJBCL*BKh,BXkBCL.BB8PBCLBCLBCLBCL3BpP54BAH6Bqf7Bd8Bj9BA:BA;BCɚB TU?B J6@B HAB @BCLDBj EBG7FBFGBZBWfB\DBVS3BQ{Bb!BD B c B!at B"ISB#JBU!B&CL B'CLB(CLB*] B.CLB0}u% B1HB2D;B3{in B]B^yB`CLBaCLBcCLBdCLBeCLBhF"BiHBjLOBkC.BmH BoFv Bqkd BrMR BurBxHoB{}u% B|DuB}DB~r-BD- B| B@JeBSBi Be&f B_ٚB[fB^BCLBCLBCLBCLBCLBOPBOPBCLBCLBL;BHBHvBJ BxBx}eB]D%}fB/_x MBw:a NBDOB~ PBGQBd?RBNiSBAAhTBD5VBc XBGYBJ[B\B%U0[^B(bV_B)gr `B+DrxaB,O:bB-OcB.LhB1CLB2CLB3CLgB5p~ B7CLB8CLB9CLB:CLmB>HnBAoBBp BDCLBECLBFCLBGCLBICLBJCLBKCLwBN}xBOIyBPU34BQOP{BTc |BWWj}BXiW>~BZ^B]DVB^HBm ~BCLBc |BCLBGxBE!BHխBIFuBCLtBCLBX BkO Bhhs 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuBXN B`fB_B]dBCL Bw% BCLBCL Bñ'oBCLBCLBCBCLBCLBl~k Bpa BOPBCLBCLBM BO{3BGBH4BTͶB`s4Be >BhW !B U"B Q#B H$B HS%BM&BL'BJ3(BBBCL*BJeBCL-B} BCLBCL0B fv2B"J>3B#L4B$BBzB&CL6B']BPCL8BRDBUCL:BWF?BZCL BxB@BBOBIHWBK:[B} 8BK4BEVBEBABPBBJPBo^ BOBEʘBCLBEBDcBCLBCLBCLBCLBCLBCLBCLBCLBaBYgBcVgBC)BABG >BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNBCLBCܪBCLBCLBz)B B"CLB#CLB$CLB%CL$B(L\%B)I&B,MWB.CL*B1Kd,B2^ B4CL.B7W~B9CLB:CLB;CLBp}4B@A6BCi47BD``8BEl9BHA[:BIGy;BJEgBMUQ?BNJ @BOH ABPEjBQOPDB|n EB~GFBFGBY BoBsBl3BOiB`BCBa B_ BHmBF!BCL BCLBCLBa BCLB|oQ BC4BCB{ BWnByqBCLBCLBCLBCLBCLBFbBHBTBCrBH{ B' B~s BT; BniBHB} BEBF(BrEBCuBABwt BS^Bj63 Bg B`iB]yB^BCLBCLBCLBCLBCLBOPBOPBCLBCLB Lm*B I@B HYBJ BkBk}eBd|}fB`k MBZwJ NB]DOB^B;PB_Ha"QBbcRBcNpSBdpA TBeG^VBgjU XBiFYBjJ[Bkj\BlT?^Boc_Bpsr `BsCSaBtJ(bBuLcBvI34BxCLByCLBzCLgB|p BCLBCLBCLBCLmBHnB@oBoE BCLBCLBCLBCLBCLBCLBCLwBD(xBL34yBTRBOP{BnUU |BX4}Bi~B^BDBGB{ ~BCLBd |BCLBGBGwBH^BP xuBCLtBCLBYgm Bl\ Bi33 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuB'X B([gB)[3B*S3B,CL B/Q-B1CLB2CL B3B4CLB5CLB7CScB:CLB;CLB=u B>oG BACLBBCLBCCLBFM BGQ`FH|FHVgFTXF gF lqF l!F T&f"FEL#Fuf$FH%FNR&FL'FJ(FB\FCL*FJYFCL-F}u% F CLF!CL0F#c2F%J*3F&LJ4F'BF)CL6F*]F+CL8F-EF0CL:F2FbF5CLA6FAbٚ7FBVf8FCT9FFA1:FGBf;FHC3FKST?FLJ @FMHAFNHFOOPDFRv EFTGFFUFGFVXؽFZkF[nfF\h@F_K+F`_:VFaCv8Fba Fc_d FeH9QFfFT!FCL FCLFCLFa FCLF{ FF!OFCFz FHM FyFCLFCLFCLFCLFCLFFrFHضFNvFBFHf Fc F@4FQ FrFfFHF}X FFFFFr9XFC/FDgFr1 FSyFjp Fdff F`@F]<F^FCLFCLFCLFCLFCLFOPFOPFCLFCLF LF I;F HMF JFwLFwL}eF^}fBa1_ MF-uwo NFXC(OFYDePFZHwQF]bx8RF^NT&SF_o۔ TF`JXVFbp/ XFdF YFeK0G[Ff9\FgW^Fjc_Fkt `FnB*aFocbFpfgcFqeFsCLFtCLFuCLgFxpg0 FzCLF{CLF|CLF}CLmFG-nFc4oFmӄ FCLFCLFCLFCLFCLFCLFCLwF|pxFQ=qyFUBFOP{FpDD |FX95}Fj'~F^FCFGi|Fvt ~FCLF_& |FCLFGFHdFHˊFG3uFCLtFCLFYJ Fk Fh 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuF"X. F#T0F$OF%KF'CL F*WF,CLF-CL F.4F0CLF1CLF3CF5CLF6CLF8{ F:m F;OPF>CLF?CLFBMqK FCL33FDB!FEAFHTFJjBFKozFLn{!FMK&g"FN@g#FOv33$FPI;%FQNU&FRL'FTJy(FUBPFWCL*FYJeF[CL-F}; FCLFCL0Fd2FJ3FLy4FAFCL6F]FCL8FDFCL:FFFCLFSj{?FJ @FH %AFJFOPDFv- EFH FFF~GFSAFn3FsYFl0FHmFbFCFb  F`S FGeFF7 !FCL FCLFCLF]+ FCLFz FFFCwFy# F*Fy?FCLFCLFCLFCLFCLFFeFH7FR]FB+?FIww FFv F@FMu F"m3F%I *F)}X F*H F+GuF,rEF-B=F.EF/o; F1S_F4ju F8d F9`F:\C3F;^FCLF@CLFACLFDOPFEOPFGCLFHCLFLLqFMI_ FNI(FOJ2FzhF}h}eFi˺}fFa0 MFv NFCOFCPFHKQFbRFNMSFo TFEn\VFeQ XFFYFK[F\FV?^FboW_Fn8 `FB KaFIJ>bFLfcFI+FCLFCLFCLgFpG FCLFCLFCLFCLmFGnF,oFm FCLFCLFCLFCLFCLFCLFCLwFCxFM(yFTFOP{Fh |FX6Y}Fh[~F ^FCFGpF{ ~FOPFb |FACLFEG~FFH*FGH5FJNuFLCLtFNCLFPY FQl1 FRhz 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuFiX FjRFkMFlIFnCL FqR)FsCLFtCL FuY<FvCLFwCLFyC6]FCLFCLFzF^ Fja FCLFCLFCLFM FLFBFBFU?F`.FlRFm!FLf"FA#Fy$FIB%FN&FL4'FJd(FBHFCL*FJFCL-F}f FCLFCL0Fdl2FJ3FLG4FAO6FCL6F]FCL8FD_FCL:F F?F CLFR ?FI@FG AFKbFOPDFu EFHFFFGFQF mF r3F4jF8FGF9`=F:B|F;a F<`d F=G:F>ET!FACL FBCLFDCLFFb6 FICLFKy]w FLEFMBFNxP FOK+ FQyEQFTCLFUCLFVCLFWCLFXCLF[FeF\H~F]P]F_AhFaI@ Fc~ Fdc FeT FhrC3FkI(xFn}f FoHFGFrEFBUZFFFn FSsFjH Fef F_3F\C3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFL*FIsFIHWFJ@MFvfFvf}eFO`}fFPb MF u. NF CNOF HPF H.uQF a|RF NBRSF ouq TF IZVF mU XF FYF K9 [F G\F W6^F cu_F uG `F AaF J)bF !McF "I4F $CLF %CLF &CLgF (p_` F *CLF +CLF -CLF .CLmF 1GQnF 4~oF 5m F 7CLF `CLF bCLF cCLF dCLF eCLF fCLwF i~=qxF jNyF kSF mOP{F nr = |F oXs}F pj(~F r^F uCWF vGF zuZ ~F |OPF cYk |F CLF GF HsF HȥF F6uF CLtF CLF Y F kT F h 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuF X F QF KF GfF CL F HF CLF CL F ۠F CLF CLF NcF CLF CLF yz F j# F OPF CLF CLF MR F Q+3F GF GٚF U^.F ggF h(F h!F J3"F K#F E3$F Jl%F Ng&F L'F (JZ(F )A¯F +CL*F -IF 0CL-F 2} F 4CLF 5CL0F 7g2F 9J~z3F :L4F CL6F ?]F @CL8F BDF ECL:F GF:F JCLF hR?F iI0@F jG6AF kK F lOPDF ovW EF pH=FF qFGF rQF vnIF wr3F xkIF {DFF }`,F ~BF b(\ F a[o F GJF EW!F CL F CLF CLF `EA F CLF yz F DF C/F xWc F ?OF ysF CLF CLF CLF CLF CLF FF H$F NՃF A]F Iff F ~l^ F )b F Q]6 F pF IFF }: F IZF G̶F rEF AF GF ph F StF j F c F _fF [3F ^F CLF CLF CLF CLF CLF OPF OPF !CLF "CLF %LUF &IF 'IedF )JK5F ,MF /M}eF fA}fF ah MF MwH NF OCOF PF":PF QHQF UaaRF VN;0SF WoXB TF HM{VF lH XF FYF K6[F 8\F ]wx^F e_F nr `F A33aF cbF e >cF dF CLF CLF CLgF p F CLF CLF CLF CLmF GnF ~4oF mU F CLF CLF CLF CLF CLF CLF CLwF C)xF M{yF UqF OP{F i |F Yrj}F i4~F ^F C,F GF t!N ~F OPF _= |F CLF GWF IF HF LLuF CLtF CLF Z F l?} F hR 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuF X F RF MIF Ic3F CL F IFF LCLF MCL F NCpF PCLF QCLF SXF UCLF VCLF XxWc F Zi F \CLF ^CLF _CLF bN F cL)F dAgF eC F hUaF jb >F kfF lh}q!F mMٙ"F nB`#F oy2$F pJK%F qN&F rLq'F tJN(F uAF wCL*F yJԝF {CL-F }}: F CLF CL0F g 2F J~z3F L~4F FF OP6F ]F CL8F G&"F CL:F FEF CL}GF@CLFACLFBCLFCCLFDCLFECLFFCLFG^FICLFJCLFKCLFtNFvCLFyCF{CLF|CLF~| FCLFCLFCLFOP$FL%FI\&FQ$FCL*FL,FT6FOP.FJFCLFCLFOPFCL3Fp54FB6Fm 7F^Y8Fdl9F@q::FC;FD3FSVQ?FI@FG{AFK[FOPDFu EFH <FFFGFPFkFoFh\FB_Fb%FB3FbE FaЊ FG;FEO!FCL FCLFCLF]w FCLFxt FDFB=Fwna FIf' FyEQFCLFCLFCLFCLFCLF FF HF OFAFIY F} F<~' F=N F@qiFCIbFF},l FGILFHH*FIr=qFJALFLHFMrk FORFRk FUd FV_FW[3FX^FZCLF[CLF\CLF]CLF^CLFaOPFbOPFeCLFfCLFiMFjIFkIq2FmJQFovFpv}eF^T}fF b MFuλ NFCqOFFPFGwQFaRFN0~SFo,| TFEVFfK XFFɁYFK6[Fư\FU^FbX_Fo `FAaFJ}qbFKqcFHcFCLFCLFCLgFo FCLFCLFCLFCLmF FknF }oF l FCLFCLFCLFCLFCLFCLFCLwFyxFMuyFSW FOP{Fi |F"Y .}F#l4~F%^F(CF)GF,w ~F/OPF2^6 |F4CLF7GF8JCF9HF=LBQuF?CLtFhCLFjYɻ Fkk7L Fmh\) 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuFW FPpFJFIqFCL FEFCLFCL FyFCLFCLFY!FCLFCLFvI FgU FCLFCLFCLFN& FO FCTFDFURFb>FgFg!FP"FFf#Fv33$FJ3%FO[F&FL'FJ5e(FAcFCL*FJFCL-F|C FCLFCL0Fe2FJT3FL4FF@wFOP6F]FCL8FGBFCL:FEFCLFSU?FIϕ@FGAFL&FOPDFv4 EFHFFFpGFQHF"kffF#ofF$jF'@F)^)/F*BFF+bq F,bTF F-FmF.E!F1CL F2CLF\CLF^aЊ FaCLFcwt FdCFeBUZFfwl FhXFixFlCLFmCLFnCLFoCLFpCLFsG,FtHRFuS+Fw@ FyJ] F{}I F|~@ F}T* Fns3FIyF}T FJPFHGFrQFA2FH[Fsl FSWFk Fc7w F`fF[fF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFM3FIFIzFFJScFjzFjz}eFh\R}fFjb MFv NFCOF$H\PF%GQF)`RF*N,SF+o TF,I.VF-mIs XF/FYF0K6[F2\F3[V^F6dN_F7tq `F8@aF:JbF;M!HcF=HF?CLF@CLFACLgFCoj FECLFFCLFHCLFICLmFLF~nFO@oFPk FRCLFSCLFTCLFVCLFWCLFXCLFYCLwF\BRxF]L{yF^S{FOP{Fq |FY }Fk (~F^FBKFGFxH ~FOPFb |FCLFGSFKUFHFIىuFCLtFCLFY Fl Fh=q 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuFW}7 FN`FJfFFFCL FEVFCLFCL F]FCLFCLFG} FCLFCLFvt Fg F CLF CLF CLFN,o F}FrFuFUNF^F]ǮF^!FJ@"FB3#Ft@$FJ%FO̥&FL4'F J4}(F!AF#CL*F%JFPCL-FRD_FUCLFVCL0FXOI>2FZJ3F[LN4F\F~F]OP6F_]F`CL8FbGxFeCL:FgEVFjCLLS,F?TUF@OP.FAK0>FBCLFCCLFFOPFHCL3FKp4FMB6FOm47FPdf8FQgf9F|@):F~Gg;FDٚFT?FI-@FGAFL FOPDFwQ? EFHFFFGFQe)FfFk#3FefF} F`FB=Fb Fb. FFFD̘!FCL FCLFCLF_= FCLFx# FCFCpiFw_ FGc FxFCLFCLFCLFCLFCLFGFH{FFNF@PFJD F}T F~ FPE FrFIF| FJFFHFrVF@۶FGFuS[ FS5Fk=" FjU F`fF]pF^FCLF CLF CLF CLF CLFOPFOPFCLFCLFMHFIFIFJMFEu3FFu3}eF^}fFbTl MFdu NFfCOFgKPFiG9QFl_ ?RFmNSFno TFoI/VFpor XFrFYFtJ[Fu8\FvWÎ^Fydl_FzuV `F{@aF}zW bF~~\*cFvFCLFCLFCLgFoL FCLFCLFCLFCLmFF2nF~oFj, FCLFCLFCLFCLFCLFCLFCLwF|{xFPHyFRFOP{Frn |F[7}Fmn~F^FB;FGqjFvܹ ~FOPF` |FCLFGF K ^F HHFQ.uFCLtFCLFY33 Fj Fg 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuF.W F/PgF1K3F2H&gF4CL F6EF8CLF9CL F;WFOP.J?K9JACLJBCLJDOPJFCL3JIpz4JKB6JNls37JO`38JPZ99JR:JT|;JU{4JXT?JYI@JZGAJ[KJ\OPDJ_x# EJaH=FJbF^GJcQ)JflJpfJjYJ{ JaJBjJb JcjS JFbJD!JCL JCLJCLJ\ ( JCLJx JB+JC4Jw JV~Jy JCLJCLJCLJCLJCLJGJH|.JPJ@JIY J| J}~ JN JpS3JIcJ|= JK0JI JrEJ@JGoJu JSJkK JgD JaJ^J^J CLJ CLJ CLJ CLJCLJOPJOPJCLJCLJMWlJIJICJJH|JjpJ"jp}eJoHv}fFa MJivԑ NJkCOJlKPJmG[QJp]RJqN(SJrn TJsI'VJuoY# XJwEYJxJ9[Jy8\Jz\^J}bX_Jvr `J@aJy\bJ|cJv34JCLJCLJCLgJo JCLJCLJCLJCLmJFnJ#4oJiQk JCLJCLJCLJCLJCLJCLJCLwJyxJL\yJQǮJOP{Jq |JZ}Jl_~J^JBJGX/J~# ~JOPJ` |JCLJGvHJJJHJGuJCLtJCLJYT Jjȵ Jg 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJ3X J4MgJ5J6gJ6F4J8CL J:EdJ=CLJ>CL J?JACLJBCLJDBFJFCLJHCLJJuS[ JKe8! JMOPJOCLJPCLJRN W JTsYJUkpJVogJYTJ[UJ\^JY!JN"JG#Jx$JJ%JO&JL('JK(JFJCL*JyJCL-JEV[JCLJCL0Jd}2JK8k3JM 4JEJOP6J]JCL8JGeJCL:JEOJCLJTO?JI@JG|JAJKJOPDJxWc EJHFJFGJRJkIJoJhJyZx J]JBjJc Jc JF!OJDQN!JCL JCLJCLJb. JCLJx J@JCwJwS JIP Jy-JCLJCLJ CLJ!CLJ"CLJ%G*eJ'HoJ(QJ+ J.H" J0|C J1} J2US J5pJ8I#J<}T J>KsyJ?IsoJBrAJC@C JDGJEuD JGS"vJJkZY JMcUU JO`Jx\YJy^JzCLJ{CLJ|CLJ~CLJCLJOPJOPJCLJCLJMUJIJIJJCJpQJpQ}eJ]%}fJbD MJvԑ NJCOJI=TPJGQJ\pRJO4SJnT TJI'VJn XJE)YJJJ[J8\JZޔ^Jc_Jv* `J@paJybJ~.cJugJCLJCLJCLgJo& JCLJCLJCLJCLmJFdnJ~4oJh J CLJ CLJ CLJCLJCLJCLJCLwJxxJKLyJPW J@OP{JCp |JE[}JFn~JH^JLBJMG-JPuZ ~JROPJU_i |JWCLJ[G[J\J=EJ]HJ`M{[uJbCLtJdCLJfZ! Jgjk Jhgk 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJX JNJJgJFc3JCL JE*JCLJCL JJCLJCLJAҩJCLJCLJtz Jc JCLJCLJCLJM& Jz4Ju`JwfJTP/JYJ\ >JYO\!JO33"JF#Jx$JJ%JO7&JL'JK(JBuKJCL*J@JCL-J E2J CLJCL0JZ 2JKH3JM4JFwJOP6J]JCL8JH[JCL:JE#J"CLIwJ?H J@H[JAixB JBixB JCGJlEJnxJo@ JrOJtIJvLJynxJ{M J~EVJLvJ@p!JP(JLJo^ JMNJBuJCLJEJF=JOPJCLJCLJCLJCLJCLJCLJCLJ]JPgJavgJGHJkHJGHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJN JCLJCJCLJCLJy JCLJCLJCLJOP$JLx%JI6&JH-JCL*JL,JU JOP.JKJCLJCLJOPJCL3Jpf4JA6Jn7J\8J`g9J |:J4tg;J5v4J8TY?J9I@J:GhJAJ;KJ_J 6vG `J 7@aJ bzW bJ c~\*cJ dvJ fCLJ gCLJ hCLgJ jn J mCLJ nCLJ oCLJ pCLmJ sFnJ v~goJ wg J yCLJ {CLJ |CLJ }CLJ ~CLJ CLJ CLwJ AxJ P{yJ XJ OP{J o |J [9}J k@~J ^J BJ GJ y] ~J OPJ ^ׄ |J CLJ GTJ J=J HJ JI(uJ CLtJ CLJ ^ J k J h 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJ W J ~J m3J tJ CL J DJ CLJ CL J @J CLJ CLJ AW3J )CLJ *CLJ ,srb J -bw J /OPJ 1CLJ 2CLJ 5M' J 6yJ 7o3J 8pvgJ ;SJ =bHJ >\RJ ?Y!J AT"J BD@#J Cs$J DJ%J EN~&J FLP'J GKϜ(J HAlCJ JCL*J LEwJ OCL-J QE J TCLJ UCL0J XTt2J YKA3J ZL!4J [F J \OP6J ^]J _CL8J aGJ CL:J EJ CLJ T@?J Iy@J GR{AJ KJ OPDJ w_ EJ GFJ FGJ R J i&gJ nJ g<J v;" J c1J BjJ cM J dTj J EJ CB!J CL J CLJ CLJ \ J CLJ z)B J @J CJ vY J GZ1J y uJ CLJ CLJ CLJ CLJ CLJ G0J HJ S6J ~l^ J Hw J z$ J |R8 J N% J mJ IJ |& J KJ IHJ #rZJ $r J %GCJ &wB J (S50J +k) J .e J 0`9J 1]S3J 2^J 3CLJ 4CLJ 5CLJ 6CLJ 8CLJ ;OPJ CLJ ?CLJ CMJ DIWJ EItJ FJ@MJ IjzJ Ljz}eJ Z}fJ h MJ w:a NJ COJ G9 PJ FQJ ZtRJ OMSJ @TJ H7VJ l XJ EasYJ J"[J p\J X^J ff _J vc `J BaJ y*bJ }{cJ u\J CLJ CLJ CLgJ o J CLJ CLJ CLJ CLmJ GnJ oJ fI J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ {\*xJ NyJ RaHJ OP{J n33 |J [J}J l~J ^J CJ G* J 7 ~J OPJ ] |J CLJ G@J JuJ HNOJ I~uJ CLtJ CLJ `P J HkT J Ihu 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJ `WE J aBJ bsFgJ ctfJ eCL J gDJ jCLJ kCL J l,7J mCLJ nCLJ pAAhJ sCLJ tCLJ vr+ J wb8H J ~CLJ CLJ CLJ Mn J qJ hfJ m J SqJ \}qJ ]J Yu!J c"J Q3#J E$J J%J N&J Lw'J K(J EJ CL*J }J CL-J E#J CLJ CL0J P%2J KT3J LA4J FJ OP6J ]J CL8J GJ CL:J EJ CLJUY?JId@JGCAJKwJOPDJv EJG FJFGJQ9Jg)Jl4JeJt{ Ja9JB#2J c[ J d J EV[J C!JCL JCLJCLJJlOP{Joo |Jq\}Jrjm~Ju^JxC\JyGUNJ|~ ~J~OPJ]L |JCLJGpJJ}JHD-JPxuJCLtJCLJ_T Jk Jg 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJWa JD@Jr&fJw\JCL JDJCLJCL JߪgtJCLJCLJAJCLJCLJrN J`' JOPJCLJCLJM@ JefJZiJ]gJSiJQRJV@JT !Ja"JXl#Jzff$JJ%JN&JL^'JLZ(JCJCL*J2pJ4CL-J6E J9CLJ:CL0J=ML2J>J3J?L4J@FJAOP6JC]JDCL8JFGJICL:JKEZJNCL%JI&JO?JCL*JKj,JSJOP.J K J"CLJ#CLJ&OPJ'CL3J*p P4J,B6J/a 7J0Yf8J1Z9J3y<:J]r33;J^tgJaUD?JbIJ@JcG1AJdKSJeOPDJhw EJjG FJkFtGJlQڦJod3Jqis3JraJsr JvaHJwAJxc JyeM JzEZJ|C.!JCL JCLJCLJ^y JCLJxe J: JC Jt J~JyJCLJCLJCLJCLJCLJG9JHZJM:J}: JH Jz7 J|` JPT JsLJIJ| JKJIVJrMJ~z JFJy# JS(9Jk_ Jds3 J`J]3J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJ%LŎJ&IrJ'I/J(J77J+v3J,v3}eJY}fJi MJJw NJLC;OJMG'PJNF:QJQYRJSOSJTp TJUHjVJVm$ XJXEYJYI[JZo\J\[G^J_dw_Jv `JCaJzbJcJvQJCLJCLJCLgJn JCLJCLJCLJCLmJHyvnJ~oJdN JCLJCLJCLJCLJCLJCLJCLwJ{ xJLByJQJOP{Jn |J]t}Jo}~J^JCJG0Jz ~JOPJ^(# |JCLJG KJJzJH%JFuJCLtJCLJ`2- Jku Jh 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJV JA 4Jk3Jp33JCL JDQNJCLJ CL J!YJ#CLJ$CLJ&@rJPCLJQCLJSq JU_ւ JcCLJeCLJfCLJiM[ JjgJk\Jlp3JoSJqZRJraJs]!JtXY"JuN#JvC$JwJ%JxNs9&JyL'JzL((J{B!J}CL*Jh׿JCL-JDJCLJCL0JK2JJĥ3JL 4JF%JOP6J]JCL8JGJCL:JDJCLJT?JI4@JG%AJK1JOPDJw EJGFJFfjGJQIJdJj Jc0JqV JcJAJc JeT JDJCZ!JCL JCLJCLJ[ JCLJw JAJBJs JJxJ CLJ CLJ CLJ CLJCLJG7JHB$JMJJ| JJD JDy@ JE{ JGN% JJrJMH{JP|oQ JRKEJSIEJVrQJW~ JXGJZy@Y J\S;J_k_ Jbdȉ Jc`vfJd^Je^JfCLJhCLJiCLJjCLJkCLJnOPJoOPJrCLJsCLJvLuJwIJxI WJyJ8 J|vJ}v}eJK }fJj MJu NJCOJG\PJFsQJXRJO|SJo TJG1VJl:z XJEgYJI [Jӱ\J^B^Jd_Jv `JBaJxbJ|34cJt >JCLJCLJCLgJ nq JCLJCLJCLJCLmJGnJ~poJdQk JCLJCLJCLJCLJ!CLJ"CLJ#CLwJ&uRxJ'M4yJ(QkJ)OP{J,m |J/[t}J0n~J2^J5C[J6FJ9~' ~JbNLhuNCLtNCLN a:^ N k N hĜ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuN#Vҡ N$@ N%k3N&p)N(CL N*D- N-CLN.CL N/N0CLN1CLN3DN6CLN7CLN9q N:^ NdOPNgCLNhCLNkM Nll&fNma NncɚNqSNsP4NtU34NuTǮ!Nv^ "NwO #Nxzff$NyJb%NzNV&N{L^'N|L*(N}ArNCL*Na1NCL-NDNCLNCL0NJ2NJo3NL4NENOP6N]NCL8NG`NCL:NDNCLCLNAYgNBYgNCavgNDGHNEkHNFMHNHCLNICLNKCLNLCLNMCLNNCLNOCLNP^NQCLNRCLNTCLNUN :NWCLNZCN[CLN\CLN^wQ? NaCLNbCLNcCLNfOP$NgK%NI&NLNCL*NK,NSNOP.NKTNCLNCLNOPNCL3No4NB6Nrs37Nc`8Nl39NwrV:Nrٚ;NtNT?NI@NG ANJNOPDNvR ENGFNFZGNQ<Nf3NlNefgNp)~ Nb%NA;Ncн Ne NDNC'!NCL NCLNCLNaj NCLNwB NDSNB8PNr N 7N xYN CLN CLNCLNCLNCLNG9NH0NP˙N| z NJ"" Nx N {LS N!U& N$o3N'HN*|` N,KݺN-HNYrMNZ}u% N[GN\z)B N^S,Nak Ndd" Ne_Nf\Nh^NiCLNjCLNkCLNlCLNmCLNqOPNrOPNtCLNuCLNxLsNzI(N{IN|J0N@)N@)}eN JP}fN k* MNvC NNCONFPNF4QNX~RNOqbSNo+ TNGVNkr XNEPQYNH.[Nٲ\NZ^Nd_Nw* `NB"aNy#bN}GcNvNCLNCLNCLgNm NCLNCLNCLNCLmNG{nN}LoN c N"CLN$CLN%CLN&CLN'CLN(CLN)CLwN,BzxN.NyN/UN0OP{N3l |N5\I}N6lZ~N8]NF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuNV1 NE3NoNsNCL NDNCLNCL NeNCLNCLNH@NCLNCLNq N^FI NCLNCLNCLNL NxVfNoNqfNSQ(NS)NWNW !NX33"NK&g#Nzٚ$NJy%NNU&NLE'NL*(NAeNCL*N\ |NCL-ND̘NCLNCL0NG2NJaS3NLaS4NFRNOP6N]NCL8N G`N CL:NDNCLN+U\?N,I@N-G jAN.JZN/OPDN2y EN4G7FN5FFGN6Q3lN9eN;kNF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuN VN NA\Nl9NsYNCL NDNCLNCL NNCLNCLNAN CLN!CLN#q3 N$^ N'CLN(CLN)CLN,Li N-mFfN.c0N/d3N2SN4RqN5WT{N6U4!N7Q"N8@3#N9k@$N:J%N;NrP&NCLN@CLNANNCCLNFCNGCLNHCLNJv NMCLNNCLNOCLNROP$NSKl%NTI/&NVHK}NYCL*N\J,N]T5N^OP.N_L0NaCLNbCLNeOPNfCL3Niol4NkA36Nnqfg7Nocs38N\ff9Nv,y:Nr;Nv NU;?NHd@NFnANJNOPDN~ ENGܪFNF=GNQANh6gNlNf0Nnu NcN@NNd NfJ NDNB!NCL NCLNCLN\ NCLNt NHNAZNqˈ NGo~ Nx>NCLNCLNCLNCLNCLN G:N HN MfN z N K N x N { N NC& N rN H*N |5! N KcN HN rZN |j N F[GN } N "RZN %k N (eٚ N )`|N +]9N ,^N -CLN .CLN /CLN 0CLN 2CLN 5OPN 6OPN `CLN aCLN eL#cN fIN gI%N hJ-8N jg33N kg33}eN^=}fNnJQ MN vQ NN CON EsPN FJQN WRN O6SN o TN G*vVN j\ XN EWYN G[N 4T\N VB^N b_N wc `N AFaN |aHbN }cN wGN CLN CLN CLgN n% N CLN CLN CLN CLmN GnN }4oN bn N CLN CLN CLN CLN CLN CLN CLwN x xN MffyN QLN OP{N k |N ]s}N nO`~N ]N CN G1BN (~ ~N *OPN -YjS |N 0CLN 3FN 4I+N 5GN 8O uN :CLtN e[# N ?l| N @hP 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuN WV N Xx3N YiN ZqfN \CL N ^CBN aCLN bCL N cbN CLN CLN @rN CLN CLN qes N ] N CLN CLN CLN LC N cfN YyN \S3N S#sN V^N ZN Z\!N EL"N w3#N of$N JJ%N Na&N LL_'N K(N AIfN CL*N UN CL-N DuN CLN CL0N E2N JU3N L'4N EN OP6N ]N CL8N G&"N CL:N EN CLN T?N H@N FAN JRN OPDN ~] EN GFN F:GN QHTN !k,N "o3N #hٙN $m N 'bXN (@0N )d7' N +gd N ,C:N -Bk!!N 0CL N 1CLN 2CLN 4aD N 7CLN :s N ;IN oa MN u NN CON E/PN F$5QN WRN OSN ouq TN GVN jC XN Ek]YN G[N \N ^ ^N bߋ_N w9 `N AaN |{bN }cN u N CLN CLN CLgN m} N ICLN JCLN KCLN LCLmN OFvnN R}9oN Tb N VCLN WCLN XCLN YCLN ZCLN [CLN \CLwN `{RxN aI)yN bP4N cOP{N fj |N h\}N in0~N l]N oB=N pGS$N s7 ~N uOPN xY!( |N {CLN ~FN I}N GKN HPuN CLtN CLN f( N lX N ht 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuN Ut N y N ifN qN CL N CN CLN CL N ֱN CLN CLN @nN CLN CLN p N [C N OPN CLN CLNL=} NrNg Nj33NRNSffNWNVH!NCY"Nt3#Nj$N J%N!NA&N"L'N#K(N$AN&CL*N)SPN+CL-N-DJN0CLN1CL0N3D2N5I3N6K١4N7EN8OP6N:]N;CL8N=FmN@CL:NBDNECLN^T?N_H@N`FANaLZNbOPDNe~ ENgGFNhF7DGNiQ6NNlcfNmfNoa<Npm{ Ns_~Nt@ NudE Nvg[~ NwCwNB)!NCL NCLNCLN\ NCLNsc NHVFNAqNq3 NJ NwNCLNCLNCLNCLNCLNGKNH NS::Ny NH Nw4 Nz NN Nn3NG N|5! NKNHNr-N{ NEN: NRN k Nf N_#3NZ3N^NCLNCLNCLNCLNCLNOPNOPNCLNCLN"K١N#IN%I/N&J/N)iN,i}eN]}fN p/ MNruK NNtCONvDPNwE'QNzWKRN{OSN|oI TN}FVN~hp XNE^YNG[NP\NX^Nb΋_Nw9 `N@eaN{=qbN{cNwHNCLNCLNCLgNm NCLNCLNCLNCLmNFnN}oN` NCLNCLNCLNCLNCLNCLNCLwNy\xNJGyNTNOP{Nh |N]Ħ}No~N]NBÂNFN~ ~NOPNT |NCLNF}NIYbNG} NJuNCLtNCLNghs Nk/ Nh=q 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuNAU NBuLNCfC3NDnINFCL NHCuNKCLNLCL NMONNCLNOCLNQ@ANTCLNUCLNWp NXY N[CLN\CLN]CLN`L=} NamNbd NceٚNfR73NhWNi[#NjZs4!NkD"NuL#Nj$NJ3%NN&NLI'NK(N@aNCL*NQZNCL-NCBNCLNCL0NCZ2NI3NK4NENOP6N]NCL8NF5NCL:NDYNCLNUd?NHk@NF.ANO`NOPDN: ENGFNF7DGNQ\NfVgNj33NcgNl< NcjN Nd Ng NC/NA!NCL NCLNCLN\ ( NCLNs T NFLNA:Nqes NB N%wN'CLN(CLN)CLN*CLN,CLN/GR?N0HN1NgN4y N7H N9v N:z$ NF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuNUWa Nw\NiNpNCL NCNCLNCL NONCLNCLNC=NCLNCLNp< NX NOPNCLNCLNL J NoNhNl3NR73NYN]N\4!NK&g"N@Y#Nt$NJ%NM&NKh'NK(N@~NCL*NPNCL-NDNCLNCL0NC2NI3NKs4NENOP6N]N CL8N"GN%CL:N'DN*CLBN8r N;CLNC'HN?C IN@j NCixB NDixB NEINFIwNHH[NIixB NJixB NKH NLENNzJNQEVNRPN|I"7N}K?Nr NLNEVNLvN~4NM NM No^ NM^NBuNCLNENF=NOPNCLNCLNCLNCLNCLNCLNCLNYgNRPNaFfNMHNkHNMHNCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNMNCLNCNCLNCLN{ NCLNCLNCLNOP$NK %NI&NKpNCL*NI,NUQNOP.NLLNCLNCLNOPNCL3N o|4N A36N u7Ne8Ng9Ntv:Nv9;NxNT?NHd@NFHANPNDOPDNG^ ENHGLFNIF7DGNJQI NNd)NOgfNPalNRl% NUcNV2 NWdp NXg3 NYBNZAZ!N]CL N_CLN`CLNbax NeCLNgr NhC>NiAeNjpPL Nlu&NnxPNpCLNqCLNrCLNsCLNtCLNxGR?NyH NzLN}y1 NH{ Nv- Nz)B NUDY NsVfNG>bN|oQ NK!NH:NrĜN{ NFiN@NR?Nk Ng* N`S3N]3N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNKNI}NI8NJ-8Nt3Nt3}eNlV}fNnsE MN)tE NN+CON,DdPN.EoQN1VRN2OSN3oI TN4DVN5en XN6E YN9G@[N:\N;]^N>c_N?w `N@@aNB}bND}cNEwuNGCLRsCLRsCLgRsmY RsCLRsCLRsCLRs CLmRs FpnRs}ɚoRs^ RsCLRsCLRsCLRsCLRsCLRsCLRsCLwRsxzxRsJyRsSHRs OP{Rs$d |Rs&^}Rs'q>~Rs)]Rs,BRs-FRs1~] ~Rs3OPRs6QY@ |Rs8CLRs;Fy/RsdHfRsfGSRsiGKuRskCLtRslCLRsoi Rspkt Rsqhhs 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRsT RszٚRsm RstfRsCL RsCScRsCLRsCL RsRsCLRsCLRsXRsCLRsCLRsp RsW} RsCLRsCLRsCLRsLL RskS3RsafRscRsR/RsSO\RsWRsW=q!RsJff"Rs~#Rsj$RsJ%RsM&RsK2'RsK(Rs@r\RsCL*RsO؍RsCL-Rs@RsCLRsCL0RsB1 2RsIq3RsK>4RsERsOP6Rs]RsCL8RsGRsCL:RsDXRsCLew RsAixB RsBixB RsCHRsDI RsFH[RsGixB RsHixB RsIHRsJERsLzJRsOEVRsPO?RsRIVRsSK4RsVr RsYKARs\EVRs]LvRs_~Rs`LRsaM Rsdo^ RsfM^RsgBWRsCLRsERsDF-RsOPRsCLRsCLRsCLRsCLRsCLRsCLRsCLRsaRsYgRsk#3RsMHRskHRsMHRsCLRsCLRsCLRsCLRsCLRsCLRsCLRs]RsCLRsCLRsCLRsNRsCLRsDzRsCLRsCLRsy@Y RsCLRsCLRsCLRsOP$RsK%RsI~I&RsIJsRsCL*RsI,RsURsOP.RsMxRsCLRsCLRsOPRsCL3Rs oz4Rs A36Rs7Rsn8RsmFf9Rst0U:Rsuf;RswRsTC?RsH@RsFARsQRsOPDRs@?ERs GFRs!F9GRs"Q<Rs%kRs'oRs(hfRs)k5 Rs,a@yRs-~] Rs.dR Rs/hE^ RsXBRsZA^v!Rs]CL Rs^CLRs_CLRsa[ RsdCLRsfqHF Rsg@gvRsi@Rsjo Rsl_kRsmxyRsoCLRspCLRsqCLRssCLRstCLRswGVRsxGRsyO\uRs|x RsHw Rsv- Rsz RsO=0 RsrRsG WRs|R8 RsLHRsHRsrRsz? RsFRsARsSwrRsk_ Rsl{ Rs`Rs^Rs^RsCLRsCLRsCLRsCLRsCLRsOPRsOPRsCLRsCLRsKx;RsI}RsI<RsJ+gRsuRsu}eRsll}fRsot MRs(t NRs+C-ORs,CvPRs-E7.QRs0VnRRs1OʅSRs2oI TRs3DvVRs4d! XRs6EYRs8F$[Rs9$\Rs:\^Rs=c>_Rs>w `Rs@@zBaRsB|\bRsC~cRsDxgRsFCLRsGCLRsHCLgRsKmE RsNCLRsOCLRsPCLRsQCLmRsTFenRsW}FgoRsX]D Rs[CLRsCLRsCLRsCLRsCLRsCLRsCLwRs@xRsO#yRsQ.RsOP{Rse |Rs`4}Rspn~Rs]RsBRsG1BRs~ ~RsOPRsR |RsCLRsF@RsHRsG URsMcuRsCLtRsCLRskB Rsk/ RshC 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRsT Rs{Rsm RsuRsCL RsC6]RsCLRsCL Rs0RsCLRsCLRsURs CLRs CLRs p RsW} RsCLRsCLRsCLRsLҧ Rsk6fRs`fRsefRsQȟRsVRs ]T{Rs!a !Rs"RY"Rs#H#RsL{&f$RsMJ%RsNNp|&RsOL'RsPK(RsQ@HRsSCL*RsVOiRsXCL-RsZ},l Rs]CLRs^CL0Rs`@A2RsbIYK3RscK 4RsdFRseOP6Rsg]RshCL8RsjG;RsmCL:RsoDRsrCLIy9&RsAH6RsDCL*RsGIzF,RsHUcRsIOP.RsJMRsLCLRsMCLRsOOPRsyCL3Rs|oul4Rs~A36Rsu7Rshٙ8Rs{9Rst}:Rs{g;Rsv33RsT?RsH@RsFARsS RsOPDRs@IERsGcFRsF=GRsPRsgRskRsepRskF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRs@TDD RsA{RsBmFfRsCtRsmCL RsoCL!RsrCLRssCL RstQRsuCLRsvCLRsxB"Rs{CLRs|CLRs~q RsWmc RsCLRsCLRsCLRsLb Rsu9RskgRsnpRsQ9RsS4RsYRsX+!RsUf"RsQ`#RsG$RsJ%RsN;&RsL'RsKWy(Rs@sRsCL*RsNRsCL-Rs| RsCLRsCL0Rs@;2RsIA3RsJd4RsFRsOP6Rs]RsCL8RsFRsCL:RsDSRsCLEVRs?O^RsB}ȈRsCLRsDM RsGo^ RsIM^RsJBWRsLCLRsOEGRsRDF-RsTOPRsVCLRsWCLRsXCLRsZCLRs[CLRs\CLRs]CLRs`_gRsaXRsbcgRscMHRsdkHRsfMHRshCLRsiCLRsjCLRskCLRslCLRsmCLRsnCLRso]RsCLRsCLRsCLRsN RsCLRsCIRsCLRsCLRsv RsCLRsCLRsCLRsOP$RsJ9%RsIso&RsRRsCL*RsIN,RsUIRsOP.RsM RsCLRsCLRsOPRsCL3Rso`4RsA36Rst7Rsf98RsjY9Rssޣ:Rsxs3;Rsy3RsU ?RsH@RsFARsTRs OPDRs @}ERs GFRs F=GRs Q Rs g Rs kS3Rs eS3Rs l Rs cdRs ~K Rs ex Rs hq7 Rs B}Rs @!Rs CL Rs CLRs CLRs bA Rs CLRs r1 Rs !z Rs "ARs $ouq Rs &Rs 'y-Rs )CLRs *CLRs +CLRs ,CLRs .CLRs 1Gd\Rs 2GѼRs 3RdRs 6x Rs aH Rs cu Rs dz)B Rs fV= Rs inRs lFRs o|j Rs qbRs rJRs urRs vz % Rs xFqRs yA/Rs {S=Rs ~kh Rs f3 Rs _fRs \3Rs ^Rs CLRs CLRs CLRs CLRs CLRs OPRs OPRs CLRs CLRs K2+Rs IxuRs HRRs J%Rs A#Rs A#}eRs &i(}fRs'v MRs t{ NRs CUORs DXlPRs EGQRs VRRs OSRs o; TRs DVRs e XRs DxYRs Fsr[Rs y\Rs [^Rs dNb_Rs w `Rs @SRaRs ~bRs (aHcRs )yqRs +CLRs ,CLRs -CLgRs 0l Rs 2CLRs 4CLRs 5CLRs 6CLmRs 9F=nRs <|oRs =] Rs ?CLRs ACLRs BCLRs CCLRs DCLRs ECLRs FCLwRs IB\)xRs JOyRs LV(Rs MOP{Rs Pf |Rs R^f}Rs Sp<~Rs U]Rs YBa?Rs ZG%Rs ]~@ ~Rs _OPRs bR |Rs CLRs FRs Ha"Rs GqRs I+uRs CLtRs CLRs k Rs lQ Rs hI 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRs Tc Rs w@Rs j<Rs q@Rs CL Rs CZRs CLRs CL Rs Rs CLRs CLRs @;Rs CLRs CLRs q Rs W Rs OPRs CLRs CLRs L Rs nIRs h3Rs iiRs Q|VRs Q=qRs UxRRs UaH!Rs Y"Rs UY#Rs B3$Rs Jc%Rs NN&Rs LZ'Rs K,(Rs @_wRs CL*Rs M]]Rs CL-Rs | Rs CLRs CL0Rs K 2Rs I"3Rs J4Rs !F Rs "OP6Rs $]Rs %CL8Rs 'G )Rs *CL:Rs TD_Rs WCLRs ET?Rs FH@Rs GFARs HT Rs IOPDRs J@ERs KGFRs LF4GRs MPRs QhfRs RlRs SgRs Tkݍ Rs Wb%Rs ~: Rs ev Rs hE^ Rs ARs @!Rs CL Rs CLRs CLRs ] Rs CLRs q^ Rs | Rs AORs o7 Rs Ml/Rs xRs CLRs CLRs CLRs CLRs CLRs Go;Rs GRs S?Rs w3 Rs I Rs u ~ Rs y{ Rs P Rs n6fRs FpMRs |} Rs iRs JVRs rRs y Rs ERs BUZRs SRs kK Rs hf Rs `)Rs ]C3Rs ^Rs CLRs CLRs CLRs CLRs CLRs OPRs OPRs CLRs CLRs KlRs IvRs HRs J#9Rs i{Rs i{}eRs ^}fRs w- MRs Wsk NRs YC/ORs ZDVPRs [EQRs ^VwLRRs `OSRs ao,| TRs bDVRs ce'9 XRs dDxYRs fFI[Rs g\Rs i\^Rs ld@_Rs mw `Rs n@faRs p~LbRs q~gcRs rxǯRs uCLRs vCLRs wCLgRs zl Rs |CLRs }CLRs ~CLRs CLmRs F.nRs }oRs ]n Rs CLRs CLRs CLRs CLRs CLRs CLRs CLwRs AxRs O{yRs SRs OP{Rs eDD |Rs `W}Rs o-~Rs ]Rs BRRs GkRs } ~Rs OPRs R |Rs CLRs F)Rs HGRs FRs PMTuRs CLtRs CLRs lcT Rs k Rs g 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRs%S Rs&wyRs'mRs(p)Rs*CL Rs,CZRs/CLRs0CL Rs1xRs2CLRs4CLRs6@ARs8CLRs9CLRs;qt RsRsTl<?RsHt@RsFRARsTKRsOPDRs@ERsGFRsF6[GRsPRse6gRsiRsc9Rsj Rs_,Rs~: Rse Rsh RsAt@Rs@R!RsCL RsCLRsCLRs[K RsCLRsrs RsB"RsA{Rsp RsKeU RsxRs CLRs CLRs CLRs CLRsCLRsGzRsGmRsQRsw_ RsH Rsu Rsz RsO Rs!o3Rs$FARs'|} Rs)mRs*KRs-rRs/y# Rs0EdRs1B=Rs3RRs6k. Rs9i Rs:_Rs<[3Rs=^Rs>CLRs?CLRshCLRsiCLRskCLRsnOPRsoOPRsqCLRsrCLRsvJRswIrRsxHxRsyJ Rs|hRsh}eRs^}fRs w MRsu=< NRsC ORsD֤PRsDQRsVURRsPSRso,| TRsE,VRsfDu XRsDxYRsF(~[RsִZ\RsZx.^Rsd_Rsx `Rs@SRaRs}W bRs@cRsxgRsCLRsCLRsCLgRsl RsCLRsCLRsCLRsCLmRsF(2nRs}YoRs]׷ RsCLRsCLRsCLRsCLRsCLRsCLRsCLwRs|xRsL{yRsSRsOP{Rs0g |Rs2^o}Rs3q0~Rs5]Rs9BCRs:FRs=~@ ~Rs?OPRsBWЊ |RsDCLRsHF)RsIH8RsJG(ORsMGh?uRsOCLtRsQCLRsSlZ RsTl?} RsUht 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRsSO RsDtRs@fRsc4RsCL RsCRsCLRsCL RstRsCLRsCLRs@4RsCLRsCLRsqˈ RsX=A RsCLRsCLRsCLRsKnY Rs{&fRsofRsn@RsQ RsPRsURsU34!Rs\ff"RsO33#Rsx$RsJɓ%RsNQq&RsL'RsK <(Rs@&RsCL*RsLQRsCL-Rs| RsCLRsCL0RsFv 2RsHf3RsJJM4RsF dRsOP6Rs]RsCL8RsFyRs CL:Rs DRsCLRs%U?Rs&Hi@Rs'F&ARs(U2&Rs)OPDRs*A)pERs+GJFRs,F:GRs-P?Rs0dYRs1gfRs3ac4Rs4jK Rs7`LRs8~K Rs9fTQ Rs:gJ Rs;A+Rs<@gv!Rs@CL RsACLRsBCLRsD` RsGCLRsIqˈ RsJGRsLAfRsMpY RsNL RsPxxRsRCLRsSCLRsTCLRsUCLRsWCLRsZGo;Rs[GȬRs\ORs_w RsH@ RsuZ Rsz)B RsUȅ RspRsFRs| Rsr^RsM+RssRsy@Y RsEZRsC/RsRlRskQ Rsj Rs_Rs]fRs^RsCLRsCLRsCLRsCLRsCLRsOPRsOPRsCLRsCLRsJRsIsRsI-RsJ!hRss{Rss{}eRsN`wd}fRsSw_ MRstq NRsC ORsDPRsDmQRsVMRRsPSRso; TRsE;aVRsf XRsDxYRsE[Rsܣ\Rs W^Rs#d_Rs$x9 `Rs%@SRaRsP|bRsQ@{cRsRwRsTCLRsUCLRsVCLgRsYlՎ Rs[CLRs]CLRs^CLRs_CLmRsbF%znRse}oRsf^U RshCLRsjCLRskCLRslCLRsmCLRsnCLRsoCLwRsrv{xRssLyRsuTRsvOP{RsygUV |Rs{]}Rs|p~Rs~]RsB=RsFؔRs~ ~RsOPRsX  |RsCLRsF- RsHcNRsGJRsK6/uRsCLtRsCLRslr Rsl9X Rsh$ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuRsS RsIc3RsF3RsERsCL RsCpRsCLRsCL Rs@:RsCLRsCLRs@-SRsCLRsCLRsr# RsX RsCLRs CLRs!CLRs$K\ Rs%BRs&sPRs'mRs*Q Rs,VRs-YRs.ZE!Rs/N"Rs0| #Rs1k@$Rs2J{%Rs3N'r&Rs4K 'Rs5Ji(Rs6@cRs8CL*Rs;K|&Rs=CL-Rs?|oQ RsBCLRsCCL0RsE~Ü 2RsGH53RsHJ94RsIFRsJOP6RsL]RsMCL8RsOFRsRCL:Rs|DRsCLRspTg?RsqHa{@RsrF=ARssU5RstOPDRsuASERsvGFRswF?lGRsxPؔRs|dvgRs}gfRs~a3RsjB RscRs~{ Rsf Rsgn Rs@=Rs@;!RsCL RsCLRsCLRs]K RsCLRsqt RsH2RsARsp3 RsE Rsx RsCLRsCLRsCLRsCLRsCLRsGgRsGRsNRsv( RsH Rsua Rsy RsQ? RsrRsERs |` RsyRsNiRsrRsy RsDRsCRsS50Rsj Rsjw Rs`fRs ^ffRs!^Rs#CLRs$CLRs%CLRs&CLRs'CLRs*OPRs,OPRs.CLRs/CLRs2J3Rs3IrRs4IRs6J#9Rs8tRs9t}eRs]J}fRsw MV[sj NV[COV[D)PV[DQV[VIRV[PSV[o,| TV[E,VV[fo> XV[D^YV[F[V[ #[\V[!_ ^V[$d>_V[%xr `V[&@IaV[(}4bV[)@+cV[+w{V[-CLV[.CLV[/CLgV[2l$ V[4CLV[5CLV[7CLV[8CLmV[;F nV[f}oV[g^U V[iCLV[jCLV[kCLV[mCLV[nCLV[oCLV[pCLwV[s|pxV[tKLyV[uQV[wOP{V[zf |V[|]}V[}quF~V[]V[B;V[F/V[} ~V[OPV[R^ |V[CLV[F7V[H6kV[G V[O(uV[CLtV[CLV[l V[kP V[h 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[S| V[I4V[FV[E3V[CL V[Ci(V[CLV[CL V[_5V[CLV[CLV[DV[CLV[CLV[q V[X V[CLV[CLV[CLV[Kk+ V[u3V[glV[c3V[PoV[-\V[.aV[/^p!V[0D"V[14#V[2wٙ$V[3J{%V[4N3&V[5K'V[6J(V[7@CV[9CL*V[;K V[>CL-V[@|C V[CCLV[DCL0V[F~@ 2V[HH33V[IJ-84V[JEV[KOP6V[M]V[NCL8V[PFxCV[SCL:V[UCBV[XCL'AV[cITBV[eA`V[gCLV[CLEV[@AHV[}IV[r# V[ixB V[ixB V[H V[I>V[HdV[ixB V[ixB V[IwV[EV[xdV[@ V[O?V[IV[K)V[r V[LV[EVV[LvV[|9V[LV[M V[o^ V[L#V[@0V[CLV[EV[F=V[OPV[CLV[CLV[CLV[CLV[CLV[CLV[CLV[XV[NV[cV[MHV[kHV[MHV[CLV[CLV[CLV[CLV[CLV[CLV[ CLV[ ]V[ CLV[ CLV[CLV[NV[CLV[CIV[CLV[CLV[y1 V[CLV[CLV[CLV[ OP$V[!J%V["I]&V[%PV['CL*V[*H,V[+U?V[,OP.V[-MV[/CLV[XCLV[[OPV[]CL3V[_nx4V[aA36V[dlg7V[ee,8V[fcf9V[it?.:V[jyl;V[kzV[nTe ?V[oHT@V[pF(AV[qTJV[rOPDV[sAG8EV[tG3FV[uFDGV[vPV[zk3V[{oVfV[|hٙV[}iZ V[c V[~{ V[f V[g V[@V[@!V[CL V[CLV[CLV[Y_ V[CLV[q3 V[H9QV[AV[of V[wV[y<V[CLV[CLV[CLV[CLV[CLV[G^V[GMV[OV[v V[H&f V[tY V[yN V[OK V[qV[EV[| V[@ V[OV[sV[xo V[DgV[CV[SV[j V[g V[`vfV[]V[^V[ CLV["CLV[#CLV[$CLV[%CLV[(OPV[*OPV[,CLV[-CLV[0JxV[1InxV[2IV[4J$"V[6tV[7t}eV[N}fV[w3 MV[Ut NV[WCvOV[XDPV[YDѫQV[V6RV[OYSV[~ TV[EgVV[f XV[DjYV[Eۙ[V[5\V[S%^V[ed_V[x* `V[@aV[~bV[@J>cV[xRV[CLV[CLV[CLgV[l V[CLV[CLV[CLV[CLmV[FJnV[}VgoV[^@ V[CLV[CLV[CLV[CLV[CLV[CLV[CLwV[xxV[KkyV[Q\)V[OP{V[gDD |V[^}V[nM~V[]V[BEV[F/V[~OI ~V[OPV[WL |V[CLV[F%V[H mV[G!V[G7FuV[CLtV[CLV[ lm V[ l V[ h 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[#Sk V[MH+3V[NE[3V[OC{3V[QCL V[SCV[VCLV[WCL V[XZV[YCLV[ZCLV[\FsV[_CLV[`CLV[bq V[cX V[fCLV[gCLV[hCLV[kKV[EV[xdV[EVV[OpV[I|V[K-V[r V[LV["B V[$R;V[&|ZV['LV[(M V[+o^ V[-L()V[.@LV[0CLV[3ESV[6DF-V[8OPV[:CLV[CLV[?CLV[@CLV[ACLV[D^V[EOV[FavgV[GMHV[IkHV[JMHV[LCLV[MCLV[NCLV[OCLV[xCLV[yCLV[zCLV[|]V[}CLV[~CLV[CLV[MV[CLV[CV[CLV[CLV[yN V[CLV[CLV[CLV[OP$V[J4%V[IW&V[PMTV[CL*V[H,V[UQV[OP.V[MV[CLV[CLV[OPV[CL3V[o4V[A36V[]`7V[\8V[a9V[tUt:V[@;V[}V[T&?V[HL@V[FAV[UV[OPDV[AjEV[GFV[FDGV[PydV[jV[oiV[hV[iU V[^{V[~: V[g/ V[gj V[@`2V[K !V[CL V[CLV[CLV[_/ V[CLV[q V[G&"V[A{V[p3 V[ e4V[ yV[ CLV[CLV[CLV[CLV[CLV[GMV[GMV[SCV[BvY V[EH V[Htj. V[Ix V[JU& V[MnV[PE_V[S| V[TBV[VPV[ZtvV[[x V[\DXV[]D4KV[_SBV[bkK V[ed V[f]3V[hZ@V[i^V[jCLV[kCLV[lCLV[mCLV[oCLV[rOPV[sOPV[uCLV[vCLV[zJpxV[{IiV[I$V[J% V[h\V[h\}eV[ e}fV[ x MV[t+ NV[C-OV[DPV[DQV[V+YRV[OoSV[AKTV[E_VV[f XV[DuYV[Eح[V[ڴ\V[br^V[e_V[x8 `V[ BaV[ ~bV[ cV[ yV[CLV[CLV[CLgV[l}) V[CLV[CLV[CLV[CLmV[G>nV[ }oV["^ V[$CLV[%CLV[&CLV['CLV[(CLV[)CLV[*CLwV[.|pxV[/KyV[0RV[1OP{V[4f |V[6^+}V[7o~V[:]V[=BV[>G%V[A~ ~V[COPV[nW |V[qCLV[tFV[uGBV[vG8V[yMpuV[|CLtV[}CLV[m+ V[l?} V[hO 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[Sf V[EfV[CFfV[ADV[CL V[CpiV[CLV[CL V[6V[CLV[CLV[@V[CLV[CLV[pX V[W V[OPV[CLV[CLV[K9 V[wgV[jPV[fV[PV[T޹V[Z=qV[Z=q!V[H&g"V[u#V[i$V[Jɓ%V[N &V[K.'V[J(V[@=PV[CL*V[JPV[CL-V[|& V[CLV[CL0V[~# 2V[HN3V[J4V[EV[OP6V[]V[ CL8V[ FLV[6CL:V[8CV[;CLGJYV[@OPV[BCL@V[EO67AV[FHBV[GBV[ICLV[KCLEV[M' HV[NH, IV[Ol V[RixB V[SixB V[THV[UI/V[VHs<V[WixB V[XixB V[YIV[[EV[]xV[`EVV[aOV[cI-V[dK/qV[gr V[iLV[lB V[mPUV[o|V[LV[M V[o^ V[L{V[@LV[CLV[EGV[DF-V[OPV[CLV[CLV[CLV[CLV[CLV[CLV[CLV[YgV[P@V[d3V[MHV[kHV[fRV[CLV[CLV[CLV[CLV[CLV[CLV[CLV[]V[CLV[CLV[CLV[NV[CLV[CV[CLV[CLV[w V[CLV[CLV[ CLV[ OP$V[ J4%V[ IR&V[ MV[ CL*V[ He,V[ UV[ OP.V[ N@V[ CLV[ CLV[ OPV[ CL3V[ n4V[ A36V[ c7V[ TL8V[ !Z&g9V[ $tv:V[ %yg;V[ &{V[ )T?V[ *HCu@V[ +FAV[ ,UV[ -OPDV[ .A"EV[ /G}3FV[ 0FEGV[ 1P)V[ 5jV[ 6ofV[ 7g V[ `i V[ db+PV[ e}1 V[ fgx V[ gg V[ h@&V[ ic !V[ lCL V[ nCLV[ oCLV[ q^5 V[ tCLV[ vq^ V[ wF>KV[ xAV[ yo,| V[ {F/ V[ }xZV[ CLV[ CLV[ CLV[ CLV[ CLV[ GA V[ G$V[ RV[ v- V[ ID V[ t/ V[ x V[ Q V[ oV[ EeV[ | V[ C>V[ QV[ v^5V[ xt V[ D4KV[ DuV[ ReV[ j V[ f V[ `fV[ ]V[ ^V[ CLV[ CLV[ CLV[ CLV[ CLV[ OPV[ OPV[ CLV[ CLV[ JQV[ IedV[ I*cV[ J!hV[ hGV[ hG}eV[ {[3}fV[x] MV[ ;uwo NV[ =COV[ >DoPV[ ?DuQV[ CV#RV[ DOoSV[ EA{TV[ FE>VV[ Ge XV[ HEYV[ JEy[V[ LZ\V[ MT>^V[ Pd_V[ QxG `V[ SCaV[ T~kbV[ UAO\cV[ WxV[ YCLV[ ZCLV[ [CLgV[ ^l& V[ `CLV[ aCLV[ cCLV[ CLmV[ H#PnV[ }loV[ ]Y V[ CLV[ CLV[ CLV[ CLV[ CLV[ CLV[ CLwV[ zfgxV[ K.yV[ Q.V[ OP{V[ fUV |V[ ^f}V[ p~V[ ]V[ C]]V[ GV[ ~ ~V[ OPV[ W |V[ CLV[ F.V[ GfV[ GZIV[ KKuV[ CLtV[ CLV[ me` V[ l^ V[ hI 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[ S$^ V[ LFfV[ IV[ H9V[ CL V[ C{V[ CLV[ CL V[ uV[ CLV[ CLV[ @JeV[ CLV[ CLV[ p- V[ !W} V[ $CLV[ %CLV[ &CLV[ )K8] V[ *{V[ +qfgV[ TpV[ WPV[ Y[hV[ Z_V[ [_n!V[ \Mff"V[ ]u#V[ ^m $V[ `Jd%V[ aM&V[ bK'V[ cJ(V[ d@$V[ fCL*V[ hIV[ kCL-V[ m{H V[ pCLV[ qCL0V[ s} 2V[ uH+g3V[ vI4V[ wEV[ xOP6V[ z]V[ {CL8V[ }FLV[ CL:V[ CV[ CLCLV[ @CV[ BCLV[ CCLV[ EvR V[ HCLV[ ICLV[ JCLV[ LOP$V[ NJ%V[ OIX&V[ QKRV[ TCL*V[ WH,V[ UV[ OP.V[ NUV[ CLV[ CLV[ OPV[ CL3V[ n[4V[ A36V[ `37V[ Vf8V[ W39V[ tg:V[ x;V[ {V[ T0?V[ H8@V[ F}AV[ UsV[ OPDV[ A;EV[ GyFV[ FDGV[ PV[ l9V[ qV[ iVfV[ iM V[ d,qV[ } V[ g V[ h V[ K V[  O !V[ CL V[ CLV[ CLV[ [-F V[ CLV[ pX V[ DV[ A V[ oI V[ yV[ xuV[ CLV[ CLV[ CLV[ CLV[ CLV[ G=jV[ GTV[ KV[ u V[ H V[ sl V[ x V[ NQ V[ sYV[ E@V[ |C V[ CǶV[ RV[ w^V[ xWc V[ DnQV[ DV[ R V[ j V[ IhD V[ J`V[ K^ V[ L^V[ MCLV[ NCLV[ PCLV[ QCLV[ RCLV[ UOPV[ VOPV[ YCLV[ ZCLV[ ]J5eV[ ^IaV[ _I+KV[ `J#V[ ctV[ dt}eV[ X'}fV[ x MV[ t( NV[ CSOV[ DBQPV[ DmQV[ V'RV[ OSV[ qHF TV[ D`VV[ e'9 XV[ E`YV[ F D[V[ 6\V[ `^V[ bؾ_V[ xUV `V[ CaV[ ~bV[ @)cV[ xgV[ CLV[ CLV[ CLgV[ lG V[ CLV[ CLV[ CLV[ CLmV[ H_)nV[ }oV[ \ V[ CLV[ CLV[ CLV[ CLV[ CLV[ CLV[ CLwV[ }HxV[ M{yV[R#V[OP{V[d |V[^K}V[oYc~V[]V[CwV[GV[!~' ~V[$OPV['U |V[)CLV[,F52V[-GV[.GV[2ITuV[4CLtV[5CLV[7n V[8lj V[:h 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[xS5 V[yI3V[zFfV[{D,V[}CL V[CL!V[CLV[CL V[|V[CLV[CLV[ V[CLV[CLV[p- V[Te V[CLV[CLV[CLV[L ! V[r3V[d V[b3V[PV[[#V[ZcV[Z!V[R3"V[D@#V[lg$V[J5%V[MO&V[K 'V[Jw(V[' V[CL*V[IV[CL-V[{ V[CLV[CL0V[},l 2V[H3V[I4V[EV[OP6V[]V[CL8V[FxCV[CL:V[CV[CLV[ Tr?V[ H.@V[FuAV[UV[OPDV[AXEV[GwFV[FCGV[OV[j)V[ogV[ggV[i@ V[aV[}/ V[ gJ V["g V[#Fv V[$~Ü !V['CL V[(CLV[)CLV[+_d V[.CLV[1ph V[2CV[3@V[4oI V[5yV[7xV[9CLV[:CLV[CLV[iG;V[jGV[kLV[nuZ V[rH" V[tsU: V[ux V[vUa V[ysc3V[|EFV[| V[C[V[S"V[xbNV[x# V[DuV[DV[R V[jp V[i" V[`V[^V[^V[CLV[CLV[CLV[CLV[CLV[OPV[OPV[CLV[CLV[J#V[I[gV[IV[JV[u33V[u33}eV[5Wz}fV[7y MV[s2 NV[C/OV[DPV[DOQV[V'RV[PSV[p TV[CYVV[d& XV[E\YV[F-\[V[x7\V[]r^V[d) _V[1xc `V[3BiaV[4}8RbV[5AffcV[6xgV[8CLV[9CLV[;CLgV[>lv V[@CLV[ACLV[BCLV[CCLmV[FGnV[I}<oV[K[8> V[MCLV[NCLV[OCLV[PCLV[QCLV[RCLV[TCLwV[WzxV[XK=qyV[YV4V[ZOP{V[]c |V[__}V[`r\~V[c]V[fC$V[gGqV[j} ~V[OPV[R^ |V[CLV[FV[GvV[GV[PuV[CLtV[CLV[o5@ V[kĜ V[h\) 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[S V[K4V[GgV[EfV[CL V[C=V[CLV[CL V[;7\V[CLV[CLV[HV[CLV[CLV[ph V[T. V[OPV[CLV[CLV[ Lz V[ t@V[ gV[ h@V[PV[Q\V[VffV[UJ>!V[HL"V[s34#V[ls3$V[J5%V[Mȉ&V[Kd6'V[JX(V[r V[ CL*V["IiNV[%CL-V['z V[*CLV[+CL0V[-| 2V[/G3V[0I4V[1EV[2OP6V[\]V[]CL8V[_FyV[bCL:V[dCV[gCLV[9CL*V[OP.V[?NI{V[ACLV[BCLV[DOPV[FCL3V[Ins4V[KA36V[NH7V[OA8V[OE9V[Rt`:V[Tw@;V[UzV[XTv?V[YH#@V[ZFrAV[[V>yV[\OPDV[]A.EV[^Gs3FV[_FCGV[O V[V,V[\ٙV[U<V[h V[_V[| V[h6 V[h V[~Ü V[~ !V[CL V[CLV[CLV[]w V[CLV[pPL V[@۶V[AV[n V[:V[wTV[CLV[CLV[CLV[CLV[CLV[G.V[GV[KݺV[up V[H3 V[s V[w V[P V[s\V[D V[| V[DsV[TdV[xV[w V[DSV[DZV[RV[jSk V[f V[_ɚV[\3V[ ^V[ CLV[ CLV[ CLV[CLV[CLV[OPV[OPV[CLV[CLV[IV[IRTV[IV[JV[ uLV[!uL}eV[C}fV[z MV[gsk NV[iCOV[jDFPV[kDYHQV[nV(RV[oPSV[qpA TV[rD-VV[sdQK XV[uEYV[vFOm[V[wj\V[x^?J^V[|d_V[}xc `V[BBaV[}4bV[@{cV[xǯV[CLV[CLV[CLgV[lG V[CLV[CLV[CLV[CLmV[GnV[|VgoV[ZN V[CLV[CLV[CLV[CLV[CLV[CLV[CLwV[@aHxV[PW yV[Q>V[OP{V[d |V[`}V[ra~V[]V[COV[GV[}h ~V[OPV[P |V[CLV[EV[G3+V[FV[FBuV[CLtV[CLV[oX V[l?} V[hT 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuV[3S?D V[4FV[5D#3V[6A(V[8CL V[:C=V[=CLV[>CL V[?'oV[@CLV[BCLV[CFRV[FCLV[GCLV[Ipmy V[JUC V[MCLV[OCLV[PCLV[SKC V[||V[}rV[~sYV[PNV[WV[\0V[^:!V[J"V[x&g#V[j3$V[J5%V[M#&V[Ko'V[JId(V[K V[CL*V[HV[CL-V[{= V[CLV[CL0V[}f 2V[G13V[I4V[EV[OP6V[]V[CL8V[FqV[CL:V[C4V[CLV[T?V[H@V[FoaAV[UZV[OPDV[@&EV[GnFV[FC GV[OV[RV[YgV[R3V[gP V[aV[}  V[hb V[h(# V[~OI V[ ~ !V[CL V[CLV[CLV[[; V[CLV[ph V[ V[AV[o7 V[V[ wGFV["CLV[#CLV[$CLV[%CLV[&CLV[)GV[*GV[,Q}V[/uD V[2I" V[4s)~ V[5w| V[6N4p V[9npV[=DV[@| z V[ADV[CVV[FwlV[Gw ZCD%ZCE9[ZCQZCj63 ZC hD ZC `,ZC Z33ZC ^ZCCLZCCLZCCLZCCLZCCLZCOPZCOPZCCLZCCLZCIZCIKZC IZC"JRZC%hGZC(hG}eV[B}fV[{ MZCns? NZCpCvOZCqD6PZCrD:QZCvV'RZCwONSZCxp$ TZCyD&VZCzd XZC|EpYZC}Fg[ZC\ZC\+a^ZCd ~_ZCxq `ZCAބaZC~zbZC@cZCxZCCLZCCLZCCLgZCl`7 ZCCLZCCLZCCLZCCLmZCG6nZC|oZC[#B ZCCLZCCLZCCLZCCLZCCLZCCLZCCLwZCxxZCJyZCSZCOP{ZCe |ZC^z}ZCp/~ZC]ZCCZCG_ZC}~ ~ZCOPZCOIc |ZCCLZCEZCG ZCFZCKuZCCLtZCCLZCphs ZCl ZChbN 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZCD4ZC?A1ZC@<ZCBCL ZCDCi(ZCGCLZCHCL ZCIp8ZCJCLZCKCLZCM@RZCPCLZCQCLZCSp- ZCTT ZCVOPZCYCLZCZCLZC]K ZC^os4ZC__yZC`[ ZCcP:ZCei\ZCfoZCgoǯ!ZCE"ZCj#ZC^g$ZCJ%ZCM &ZCK'ZCJF(ZCK ZCCL*ZCHaZCCL-ZC{in ZCCLZCCL0ZC} 2ZCG3ZCI4ZCEZCOP6ZC]ZCCL8ZCF:ZCCL:ZCCZCCLZCT`?ZCH @ZCFmAZCUnZCOPDZC@EZCGeFZCF8,GZCObZCRPZCXZCR33ZCfp ZCdXZC}/ ZCh ZCh6 ZC}h ZC~ !ZCCL ZCCLZCCLZC` ZCCLZC pmy ZC!~ ZC"AlZC#oK ZC%=dZC'vbZC)CLZC*CLZC+CLZC,CLZC-CLZC0G lZC2GuQZC3JRZC6u ~ ZC9I ZC;sF ZCZCCLZCCLZCCLgZClI ZCCLZCCLZC CLZC CLmZCGLnZC{poZC[#B ZCCLZCCLZCCLZCCLZCCLZCCLZCCLwZCx\*xZCLaHyZC Q\)ZC"OP{ZCMc |ZCO_I}ZCPr~ZCR]ZCUB"ZCVG5ZCZ~24 ~ZC\OPZC_U޿ |ZCaCLZCdEHZCfFZCgFZCjNuZClCLtZCmCLZCppf ZCql ZCrh 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZCSG ZCCZC@ZC|4ZCCL ZCCDZCCLZCCL ZCJZCCLZCCLZCJ%gZCCLZCCLZCpA ZCT ` ZCOPZCCLZCCLZCKe ZCiZCa3ZC^vfZCO ZClZCs#ZCrg!ZCBs4"ZCi#ZC[33$ZCJ%ZCMғ&ZCK'ZCJ1(ZC' ZCCL*ZCHaZCCL-ZC{Z ZCCLZCCL0ZC|C 2ZCG=3ZCI=4ZC EۼZC!OP6ZC#]ZC$CL8ZC&FZC)CL:ZC+CpZC.CLZCFT>?ZCGG@ZCHFfLAZCIUZCJOPDZCK@XEZCLGScFZCMF+zGZCNONZCRV3ZCS\@ZCTUfZCUfh ZCXbZCY| ZC[hJ ZC\hq7 ZC]}X ZC^}; !ZCaCL ZCbCLZCcCLZCf[- ZCiCLZCko+ ZCl{LS ZCmCZCnnn ZCoF ZCqv ZCtCLZCuCLZCvCLZCwCLZCxCLZC{GZCGfZCOZCt4 ZCIY ZCr ZCwQ? ZCM ZCp@ZCDZC{ ZCC#ZCX^ZCw^ZCwna ZCD- ZCEZCQS$ZCi& ZCmUU ZC`IZC^VfZC^ZCCLZCCLZCCLZCCLZCCLZCOPZCOPZCCLZCCLZCIZC I7ZC I-ZC JRZCh=qZCh=q}eZCo\,}fZCp|& MZC0sk NZC2COZC3DhPZC4CaQZC7V *RZC9PSZC:o+ TZC;C{VZCEiYZC?F?[ZC@]\ZCB] ^ZCmds_ZCnx9 `ZCoA<aZCq~>bZCr~cZCsyZCvCLZCwCLZCxCLgZC{lO ZC}CLZC~CLZCCLZCCLmZCFnZC}goZCZS ZCCLZCCLZCCLZCCLZCCLZCCLZCCLwZCAffxZCNLyZCPZCOP{ZCdUV |ZC_O}ZCo~ZC]ZCB;ZCGZC~# ~ZCOPZCV6 |ZCCLZCEZCG ZCG*ZCG>FuZCCLtZCCLZCr+ ZCl ZCi 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZCS ZCFAZC~4ZC4ZCCL ZCCL!ZCCLZC CL ZC ZC4CLZC5CLZC7UZC9CLZC;CLZC=p ZC>T ZC@CLZCBCLZCCCLZCFK2 ZCGf&gZCH\gZCIXZCLN ZCNW.ZCO]fZCP]f!ZCQ@Y"ZCRof#ZCS_3$ZCTJ%ZCUM&ZCWKe'ZCXJ(ZCZ ZC]CL*ZC_HZCbCL-ZCd{w ZCgCLZChCL0ZCj|& 2ZClGW3ZCmIr4ZCnE]ZCoOP6ZC]ZCCL8ZCF?ZCCL:ZCCpZCCLZC T7?ZC G@ZC F]8AZC UZC OPDZC @ EZC GCFZC F(GZC OmZC RlZC XfZC aZC eZ ZC _ ZC |X ZC h" ZC g ZC | ZC } !ZC CL ZC CLZC CLZC _ ZC CLZC o۔ ZC y ZC DVZC o; ZC ZC uzQZC CLZC CLZC CLZC CLZC CLZC F7ZC GZC OPZC t ZC In ZC s8 ZC w_ ZC S ZC oZC *DZC -{ ZC .CZC 0Ys'ZC 3yƨZC 4wB ZC 6DBZC 7EZC 9QsZC F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZC rS ZC sF<ZC t|ZC u ZC wCL ZC yC/ZC |CLZC }CL ZC ~)CZC CLZC CLZC AZC CLZC CLZC p ZC S ZC CLZC CLZC CLZC J ZC kfZC cZC _ZC M !ZC a#ZC g\ZC gB!ZC C "ZC q#ZC Yff$ZC J%ZC NSD&ZC KG'ZC I(ZC ~ ZC CL*ZC HZC CL-ZC }I ZC CLZC CL0ZC |= 2ZC G,3ZC Inx4ZC EZC OP6ZC ]ZC CL8ZC FqZC CL:ZC C.ZC CLZC Tt(?ZC GK@ZC FWAZC UqvZC OPDZC AJEZC G2FZC F GZC OZC PgZC V6gZC P4ZC dl ZC c-ZC | ZC h ZC hb ZC |oQ ZC |& !ZC JCL ZC LCLZC MCLZC O\ ZC RCLZC ToK ZC Uw% ZC VDZC Wm ZC ZZC [t ZC ]CLZC ^CLZC _CLZC `CLZC aCLZC eFZC fGZC gKZC jt[ ZC mH ZC or]\ ZC pvh. ZC qM ZC upLZC xDZC {{w ZC |CsrZC ~ZZC y7ZC w ZC DQNZC EѕZC QX/ZC i ZC h ZC `ZC ]0ZC ^ZC CLZC CLZC CLZC CLZC CLZC OPZC OPZC CLZC CLZC I(ZC I,3ZC HZC J;ZC gZC g}eZC ZTK}fZC Y~G MZCrez NZCC}OZCCPZCC4QZC!U_RZC"OoSZC#o TZC$CVZC%b3Y XZC(ESYZC)F#[ZC*!\ZC+a.^ZC.d&_ZC/x `ZC0@aZC3@bZC4A8RcZC5zZC7CLZC8CLZC9CLgZCCLZC@CLZCACLZCBCLmZCEFnZCHٚoZCIY ZCKCLZCuCLZCvCLZCwCLZCxCLZCyCLZCzCLwZC}DxZC~N\)yZCS(ZCOP{ZC` |ZCa}ZCp~ZC]ZCBZCGgSZC} ~ZCOPZCU |ZCCLZCEZCFZCFZCL"uZCCLtZCCLZCtE ZCn ZCi 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZCR' ZCFqZC~ZCYZCCL ZCB=ZCCLZCCL ZC'ZCCLZCCLZC~ ZCCLZCCLZCo ZCR ZCCLZCCLZCCLZCJO ZCkS3ZC c3ZC _4ZC LU ZCapZChW ZCg!ZCL"ZC{s3#ZC<^ $ZC=J%ZC>N-&ZC?K*'ZC@Iλ(ZCC~z ZCFCL*ZCHGZCKCL-ZCM: ZCPCLZCQCL0ZCS} 2ZCUG{.3ZCVIX4ZCWEZCXOP6ZCZ]ZC[CL8ZC]F/ZC`CL:ZCbCwZCeCLZCMZCGHZCCLZCCLZCCLZCCLZCCLZCCLZCCLZC]ZCCLZCCLZCCLZC!NZC#CLZC%C ZC'CLZC(CLZC*x ZC-CLZC.CLZC/CLZC2OP$ZC3JU5%ZC4IX&ZC6PeZC9CL*ZCOP.ZC?N3ZCiCLZCjCLZCmOPZCnCL3ZCqn@4ZCsA36ZCvp7ZCwo8ZCxkٙ9ZCzt4 :ZC|yY;ZC}rfZCTRS?ZCG@ZCFNAZCUI,ZCOPDZCA?EZCGFZCEGZCOU>ZCQiZCV3ZCQZCd. ZCdZC{s ZCi ZCh ZC{a ZC|` !ZCCL ZCCLZCCLZC]< ZCCLZCnn ZCw4 ZCD4KZCm ZCҮZCt<'ZCCLZCCLZCCLZCCLZCCLZCF ZCG5ZCKZCt ZCH ZCrz ZCv ZCP ZCpZCDdZC{= ZCCZC\6ZCxZCvܹ ZCD;ZCEZCQ,ZCi| ZCpb" ZCc6fZC0afZC1^ZC2CLZC4CLZC5CLZC6CLZC7CLZC:OPZCCLZC?CLZCBI}ZCCI"7ZCDHZCFIBZCIE(ZCLE(}eZCFU}fZC@- MZCjr NZCCOZCCjPZCC̏QZCU_RZCPSZCof TZCBVZCa4 XZCE YZCF[ZC\ZCQ^ZCc_ZCx `ZC@ۘaZCbZC@\cZCyZCCLZCCLZCCLgZCl2 ZCCLZCCLZCCLZCCLmZCFnZCS4oZCX ZCCLZCCLZCCLZCCLZCCLZCCLZCCLwZC}xZCJyZCOZCOP{ZC`DD |ZC_Q}ZCs~ZC]ZCBZCGZC } ~ZC OPZC[ |ZCCLZCEvZCFZCFZCHڷuZCCLtZCCLZC t ZC!n1' ZC"i 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZCaR ZCbGZCc~9ZCd@<ZCfCL ZChB=ZCkCLZClCL ZCm<.ZCnCLZCoCLZCrMzAZCtCLZCuCLZCwo+ ZCxS ZC{CLZC|CLZC}CLZCJ ZCefZC]9ZCY#3ZCKZC[#ZCaZCaB!ZCBf"ZCs#ZC^3$ZCJҪ%ZCM,&ZCK:['ZCI(ZC~OI ZCCL*ZCGuZCCL-ZCFv ZCOPZCCL0ZC}h 2ZCG~3ZCIB4ZCEZCOP6ZC]ZCCL8ZCF(ZCCL:ZCCScZCCLLZC?LaSZCBo^ ZCDKZCGEʘZCICLZCMENMZCPDF-ZCROPZCTCLZCUCLZCVCLZCWCLZCXCLZCYCLZCZCLZC]X)ZC_PZCYgZCP(ZCMZCSGZCCLZCCLZCCLZCCLZCCLZCCLZCCLZC]ZCCLZCCLZCCLZCNZCCLZCCZCCLZCCLZCx ZCCLZCCLZCCLZCOP$ZCJL%ZCIW7&ZCMZCCL*ZCG%,ZCXZCOP.ZCNZCCLZCCLZCOPZCCL3ZCnP4ZCA36ZCa 7ZCe8ZCl9ZCs:ZCr;ZCoZCTK?ZCGu@ZCFEAZCU_ZCOPDZCAuEZCGFZCE5GZCOLZCKZCQ ZCKZCbg ZC bZC {- ZC i ZCh ZC{w ZC{ !ZCCL ZCCLZCCLZC\U ZCCLZCn`* ZC|` ZC CZC!m ZC#V~ZC$sZC'CLZCPCLZCQCLZCRCLZCSCLZCVFZCWGZCXIZC\s ZC_I ZCapӖ ZCbsc ZCcN ZCfsyZCiD~ZCl{/9 ZCnB7ZCp]ZCsy =ZCtv ZCuD- ZCvFRZCxPZC|ii ZCkY ZC`IZC^yZC^ZCCLZCCLZCCLZCCLZCCLZCOPZCOPZCOPZCCLZCIjZCI.ZCHZCIZCwZCw}eZC#P}fZC @w MZCqn NZCCwOZCCPZCC QZCURZCOSZCouq TZCC=DVZCbp XZCEYZCF[ZCh\ZC`^ZCdQ_ZCx `ZC@eaZC!~>bZC"cZC#xRZC&CLZC'CLZC(CLgZC+l ZC-CLZC.CLZC/CLZC1CLmZC4FanZC7|vgoZC8Yj ZC:CLZC;CLZCF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuZCRx ZCCTZCo`ZCufZCCL ZCC6]ZCCLZCCL ZC(ZCCLZCCLZCGZCCLZCOPZCpX ZCU ZCOPZCCLZCCLZCK)H ZCdZC[ZCWZCJZC[{ZCaqZCaB!ZCGfg"ZCkff#ZC\$ZCJ%ZCM*&ZC K9r'ZC I(ZC  O ZCCL*ZCGZCCL-ZCr ZCOPZCCL0ZCE}X 2ZCGG3ZCHI'4ZCIEOZCJOP6ZCL]ZCMCL8ZCOEZCRCL:ZCTCScZCWCLU348ZC?f9ZCBrh:ZCCrg;ZCDo3ZCGTG?lGV@lF:AlU@lOPDlBDElFFlE-GlONl Jl Nl Jla l`pl| liLl lhE^ l{ l{/ !lCL lCLlCLl\ l"CLl$o+ l%Cl&E#l'o l*l+sil-CLl.CLl/CLl0CLl1CLl5FZ5l6G-l7J:`l:s leIH lgoK lhqHF liN} lmrflpDxWls{ ltBHlv_lyyTlzvR l|Dl}ElPliLl ltn l`l_)l^lCLlCLlCLlCLlCLlOPlOPlOPlCLlIS<lI$lI~lIlOlO}el*lt}fZC@GC MlsNi NlCxOlD/PlC%QlUȕRlONSlo TlD@Vlen XlDoYlF[l^\lU^la_lxU `l@al~bl@{clyBl,CLl-CLl.CLgl1l l3CLl4CLl6CLl7CLml:Fcnl=~Pol>[M9 l@CLlACLlBCLlDCLlECLlFCLlGCLwlJB>xlKNylLQlNOP{lQe |lS^i}lTov~lV]lYB)lZG<l^qes ~l`OPlcc |leCLlElFzlGXlGulCLtlCLlsB ln7L li 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDulR l@ljlq#3lCL lB lCLlOP la lCLlCLlFblCLlOPlqJ lV lCLlCLlCLlK lclY,lXc3l Jml [lbfglb >!lA"lf#l`$lJ%lN&lKq'lJb(l: lCL*lGgl!CL-l#@l%OPl'CL0l)| 2l+G3l,I W4l-DEl.OP6lX]lYCL8l[E l^CL:l`CSclcCL<leyl =lfF liOPlkCL@lmNkAloHBlpB@lrCLlsCLElu{/ HlvCIlwml lzi| l{j> l|Hؒl}J3l~HlixB lixB lJBUlElxdl@ lO?lIlK$lr lLlB lLvlylLlLhlo^ lKlEʘlCLlElDF-lOPlCLlCLlCLlCLlCLlCLlCLlPglKlYlO34lMfflGHlCLlCLlCLlCLlCLlCLlCLl]lCLlCLlCLlN dlCLl!C<l#CLl$CLl&{LS l(CLl)CLl*CLl-OP$l.JD%l/I[&l2Hl4CL*l7G,l8Z1il9OP.l:ONllTS?lUG8 @lVF5GAlWTMlXOPDlYCuElZFFl[EȬGl[O=olGlMIlHVgla{ ldNbl| lii lh lz? l{/ !lCL lCLlCLl]y lCLlp lHmlEOloI lalsM9lCLlCLlCLlCLlCLlF@lHlIElsc lI&f lnB lp$ lO=0 lrflDoHl{= lAul`lly-lvY lC>lEVlPrli ll l`l^|l^lCLlCLlCLl CLl CLlOPlOPlOPlCLlI9lI(lI@+lIluffluff}elWx}fl Ml_s NlaCyOlbDaPlcChoQlgU/RlhOSlio TljEVlkf62 XllDjYlnF[lpM\lq]^ltb'_lux `lv@alx~blyBcl{xl}CLl~CLlCLgllv lCLlCLlCLlCLmlF-nl}gol\ lCLlCLlCLlCLlCLlCLlCLwlw(xlK\ylQzlOP{lf33 |l^.{}lr ~l]lBlG l}R ~lOPlUZ |lCLlElFlG(OlK@ulCLtlCLlsL ln J li 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDul.R| l/@l0i l1ol3CL l5C l8CLl:OP l=Y l@CLlACLlCGClFCLlIOPlLq lMV lOOPlyCLlzCLl}K l~glX<lW`lI;lYHl`=ql_!l{L "ld #lY3$lJ%lN!&lK'lJd(l lCL*lG-alCL-l@ulOPlCL0l|& 2lG|3lH4lDlOP6l]llCL8lElCL:lC=lCL<ly =lElOPlCL@lNAlHeBlBlCLlCLEl{Z HlAIlrI} li lj lHؒlJBUlHlixB lixB lJPlElxdlEVlOlIMlK1Clr l Ll B lR'ly%lM lLjolo^ lKlBEʘlDCLlGEZlKDF-lMOPlOCLlPCLlQCLlRCLlSCLlTCLlUCLlX_3lZPl[Ygl\Opl]PGl^Ql`CLlaCLlbCLlcCLldCLlfCLlgCLlh]liCLljCLlkCLlmN :loCLlqC lsCLltCLlvx lyCLlzCLl{CLlOP$lJ>|%lI]&lQbulCL*lGM,lY͟lOP.lO9lCLlCLlOPlCL3ln2 4lA36lvf7lof8lmg9lq:lp;ln3<lp33lOP>lT›?lG @lF0AlUlOPDlCYElFFlEGlOlIlNglJla, lal| lixB l h" l zF^ l { !lCL lCLlCLl\ lCLlpY lElDln llrl!CLl"CLl$CLl%CLl&CLl)F8l*H l+Kl.s8 l2I&f l4mi l5o l6MR l9o33lF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDulR@{ lzl[lljYlCL lBMlCLlOP lk) lCLlCLlGlCLlOPlp3 lU lCLlCLlCLlK lglXc3lW3lI',l h(l o.l p{!l Bf"l i&g#l _$l K%l MJ&l K'l KV(l ~' l CL*l G4l CL-l @l OPl CL0l | z 2l Gu3l H4l !DSl "OP6l $]jl %CL8l 'Dl *CL:l ,C/l /CL<l 1y =l 2El 4OPl 6CL@l aNAl bHgbBl dBl fCLl gCLEl izcz Hl k}Il nu< l qj ^ l rj l sHl tJPl uIl vixB l wixB l xJPl yEl |xdl EVl O?l IDl K/ql r l Ll B l Ol y%l Ll Lol o^ l Kl Eʘl CLl EEDl Fel OPl CLl CLl CLl CLl CLl CLl CLl ^l Oll ^)l PHl Ll Ql CLl CLl CLl CLl CLl CLl CLl ]l CLl CLl CLl N dl CLl Cl CLl CLl x l CLl CLl CLl OP$l J6N%l I[&l Ol (CL*l +GF,l ,Z)l -OP.l .O?l 0CLl 1CLl 4OPl 5CL3l 8n4l :A36l =i7l >b@8l ?o9l Aq2a:l Ct;l Dl <l Etl FOP>l GT?l HG@l IF$Al JUl KOPDl LCdEl MFFl NEGl OOSl SG3l TMl UH3l V` l Y_Al Z|H l \ixB l ]hׄ l ^y l _z !l bCL l cCLl CLl ] l CLl o+ l A^vl E l n`* l Ml rϱl CLl CLl CLl CLl CLl F3Ol Hl L8l s T l H l l l o,| l O l pPl Dh l { l @yl cMl xul vW l Cpl Edl P8|l h l i l _fl ^3l ^l CLl CLl CLl CLl CLl OPl OPl OPl CLl I@l I-l I_ l Il hRl hR}el R3K}flh[ Ml Vr Nl XCzOl YD<Pl ZBZQl ]UdRl ^PSl `o Tl aD;Vl bd Xl cD~XYl eF#[l f#[\l ga,^l kb$_l ly `l m@ۘal o~>bl p~zcl qy{l sCLl uCLl vCLgl yl l {CLl |CLl }CLl ~CLml F.nl }4ol Z{c l CLl CLl CLl CLl CLl CLl CLwl }Hxl Oyl Q\)l OP{l c |l ]w}l r~l ]l Bbl Gcl } ~l OPl U/ |l CLl Esl FTl FШl F(ul CLtl CLl t D l mx l i& 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDul "R' l #ol $Pl %a l 'CL l )Bnl ,CLl /OP l 2hb l 5CLl 6CLl 8Fݱl ;CLl >OPl Ap$ l BTe l ECLl FCLl GCLl JKfi l Kpc4l La)l Mal PHZl R_(l Sel Td*!l UG"l Vcs3#l Wb3$l K.%l M&l KD'l K(l )b l CL*l G&"l CL-l Al OPl CL0l | 2l GpJ3l H4l Gel OP6l ]jl CL8l Il CL:l CUl CL<l y@ =l El OPl CL@l NAl HvBl Al CLl CLEl y Hl |Il dů l jD l kQ l Il J_Cl Iwl ixB l ixB l J_Cl El xl EVl Ol Iul K()l r l Ll B l Lvl y%l Ll Lsl o^ l Kl Eʘl CLl El DF-l OPl CLl CLl HCLl ICLl JCLl KCLl LCLl OYgl PKs3l RPgl SNzl TLl USHl WCLl XCLl YCLl ZCLl [CLl \CLl ^CLl _]l `CLl aCLl bCLl dNl eCLl hC0l jCLl kCLl mw3 l pCLl qCLl rCLl tOP$l uJ)%l vIX&l yLl |CL*l G,l YWl OP.l OZKl CLl CLl OPl CL3l n<4l A36l @7l t8l i&g9l pc:l u ;l p <l rYl OP>l S?l F@l F<Al Tl OPDl CEl FFl EGl OYl Gl Mffl HC3l `\s l cl |H l i l i l yz l z !l CL l CLl CLl \&w l CLlo l| lEln`* ln{lrDlCLlCLlCLlCLlCLl F.l!Gnl"ONl%r+ l)I l+lo l,o l-Lz l0n)l3Dcl6{ l8@l:e/l=xl>u l?C~l@E@lBPlEhׄ lHk33 lJ_3lK] lt^luCLlvCLlwCLlyCLlzCLl}OPl~OPlOPlCLlHlI lIpJlIUlglg}elh}fl  Mlq NlCzOlCPlC9CQlURlP#Slouq TlC1VlcBR XlDaYlF[l?\lXE^lan_ly `l@!al}bl@)clxzlCLlCLlCLglk lCLlCLlCLlCLmlF!nl}4olZ{c lCLlCLlCLlCLlCLl CLl CLwlwfgxlN>ylQlOP{l_1}l?sU~lB]lEB6lFG4lI}I ~lKOPlOQ |lQCLlTEylUFElVFlYLul\CLtl]CLl_tN l`m lai33 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDulQ+ lrlRla<lCL lBNlCLlOP lg3 lCLlCLlFݱlCLlOPlp- lV5 lOPlCLlCLlK lo3l`0lavglH4lQ>lW lW!lF3"lr&f#lZ$lK:[%lM@&lK*'lLZ(lc lCL*l Fsl CL-lA^vlOPlCL0l|C 2lGm3lHa4lDulOP6l]lCL8lDl!CL:l#Cl&CL<l(y =l)El+OPl.CL@l0NAl2HyBl3B<l5CLl6CLEl8zF^ Hl9G,Il:cD l=jb l>k. l?HlhJ_CliIwljixB llixB lmJmlnElpxdlq@ ltOlvIpJlwK lzr l|LlB lR3lya@lLlLqlo^ lKlEʘlCLlEGlDF-lOPlCLlCLlCLlCLlCLlCLlCLlYglL3lY\lNzlOlPlCLlCLlCLlCLlCLlCLlCLl]lCLlCLlCLlNlCLlCIlCLlCLlxP lCLlCLlCLlOP$lJ"Q%lIU &lJlCL*lG,lYlOP.lOmlCLlCLlOPlCL3ln4l1A36l4u7l5tٚ8l6j339l9pC:l;v;lOP>l?T6?l@F@l@F(AlAUDlBOPDlCCElDFUFlEEGlFN|lJA#3lKFlLBlN_ lQbYlR|7 lSi| lTi lUy lVz !lYCL l[CLl\CLl^^D laCLlco+ ldy1 leDlgoXB li0ljrlCLlCLlCLlCLlCLlF,lGVlKblrn lI lll lo lPq lps3lDcl{ l@lfՕlylu} lC.lE@lP[lh lh l_3l^S3l^lCLlCLlCLlCLlCLlOPlOPlOPlCLlHlI!OlI&lIRlgl g}eliNF}fl_@ Ml%q Nl'CwOl(DPl*CZQl-UcRl.P Sl/ouq Tl0DdVl1e| Xl2DhYl\F8[l^\l_^/^lbai_lcyr `ld@alf{ǯblh}GcliulkCLllCLlmCLglpk lrCLlsCLluCLlvCLmlyEunl|}ol}\  lCLlCLlCLlCLlCLlCLlCLwlxxlOaHylRplOP{lgUV |l]$}lp&~l]lBlG ~l ~lOPlRU |lCLlEhslFXblFlMulCLtlCLltQ lm li 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDulQv lolO33l]0lCL lAl&CLl)OP l+me l.CLl/CLl1F?l4CLl7OPl:rE l;X lJCLlKCLlLCLlOJ lPtylQb@lRcflUGWlW_HlXf lYeH!lZQ"l[Dy#l\{$l^K2+%l_M &lK'lL3(l@8lCL*lF/lCL-lAlOPlCL0l| 2lGk3lHN4lDaClOP6l]lCL8lDlCL:lC lCL<ly =lEWlOPlCL@lN3AlHnBlBolCLlCLEl{ HlDIll lju lkh lH$lJmlI lixB lixB lJlElxdl@ lOlHxlK"lr lLlB lO/lyQFlKAl Lyl o^ lKlEʘlCLlE^lDF-lOPlCLlCLl CLl!CLl"CLl#CLl$CLl'YglQO)lRYglSQlTL\lUS(lWCLlXCLlYCLlZCLl\CLl]CLl^CLl_]l`CLlaCLlbCLldNqlfCLlhCljCLlkCLlmz lpCLlqCLlrCLluOP$lvJ!h%lwIR&lyGo>l|CL*lGv,lYlOP.lO|4lCLlCLlOPlCL3ln4lA36l|7lB8ly9lo:lkf;lm9<ljS3lOP>lTQ?lFF@lF AlU^ lOPDlCkElFFlEGlO%l@YlDl@l^fl l^l|Y li li lxP lzr !lCL lCLlCLl\&w lCLlq l@۶lEOlpA llrlCLlCLlCLlCLlCLl F,l!Hl"J|l&rE l)H l+m l,o l-LN l0r,l3D_l6{ l9@ul:hl=y^l>u l?Cpl@E]lBP lFh lIqww lJa lK`lL^lMCLlNCLlPCLlQCLlRCLl}OPl~OPlOPlCLlH lIlIMlIl[xRl[xR}el\_K}fl Mlq- NlC~8OlDPlCQlU|RlP5|Slo7 TlEVlga XlDfYlF[l]X\lV}(^lc]H_ly* `l@al}ubl|clvlCLlCLlCLglk4 lCLlCLlCLlCLmlE+nl~Lol]» lCLlCLlCLlCLlCLl CLl CLwl|{xlP >ylRaHlOP{lh |l]}lq~l]lEBlFGDlI}f ~lKOPlOU |lQCLlTE^}lUFglVFlZGul\CLtl]CLl_s l`nO lbi 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDulxQ9 lyslzXl{dl}CL lB?lCLlOP lp3 lCLlCLlElCLlOPls)~ lZ lCLlCLlCLlJ lpglc0lclGl\lclbfg!lT"lL#lr&f$lK %lM&lKz'lLE(l@VlCL*lF/lCL-lAҩl OPlCL0l} 2lGj3lH4lDISlOP6l]lCL8lDVlCL:l!C l#CL<l%z =l'El)OPl+CL@l.NAl/HyBl0Bތl2CLl3CLEl5z Hl6BAIl7r+ l:j l;k_ lI l@i| lAixB lBJlCElExlF@ TOTITK+Tr T LT B TLvTy2TLTL|To^ TKTEʘTCLTET"DF-T$OPT&CLT'CLT)CLT*CLT+CLT,CLT-CLT0^T1NgT2^3T3O34T4JT6Q\)T8CLT9CLT:CLT;CLTdCLTeCLTfCLTg]TiCLTjCLTkCLTlN TnCLTqCTsCLTtCLTvz[ TxCLTyCLTzCLT}OP$T~J'%TIN&TR%TCL*TG,TZg?TOP.TOHBTCLTCLTOPTCL3Tn 4TA36Tg 7T]&f8Tk9To:Ti;Tm3<TgTOP>TS ?TF_@TFDATTTOPDTCkETF[FTEGTO<TBTFTBT^r TcAT}d Ti Ti Txt Tz !TCL TCLTCLT_ TCLTqt THTETpA T:Trt.TCLTCLTCLTCLTCLTF'TH TNT.r T1IU T3n4a T5of T6P5 T9nTF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuTPZ Ti9TMITafTCL TATCLTOP Tx0 TCLTCLTFiTCLTOPTr TZ TCLTCLTCLTK TnT`T``TG>yT\TbTb(!TRY"THf#Tw@$TK%TL!&TK:'TKm(T@fTCL*TFmTCL-TBETOPTCL0T|& 2TGj3TH4TDL:TOP6T!]T"CL8T$DXT'CL:T)CT,CL<T.z[ =T/ET1OPT3CL@T6NAT7HBT8B T:CLT;CLET>zu HT@@ITCu TEj TFk_ THH TIJ|1TJI/jTKi TLixB TMJTNETPxTSEVTTOTWI$TXK4T[r TLTB TP."Ty* TM TLTo^ TKTEʘTCLTETF=TOPTCLTCLTCLTCLTCLTCLTCLTYTNgTa3TNTJHTO{TCLTCLTCLTCLTCLTCLTCLT]TCLTCLTCLTNTCLTC TCLTCLTy TCLTCLTCLTOP$TJ1%TIL\&TO^TCL*TGm,TZTOP.TOB|TCLTCLTOPT CL3T n4TA36Tqٚ7TUY8Ta 9To7u:Tiy;Tns3<ThfTOP>TS?TF@TEATTT OPDT!CET"FzFFT#EOGTLO"TPCTQHfTRDfgTS] TVbTW}A] TXiQ TZixB T[x T\y] !T_CL T`CLTaCLTc]< TgCLTip- TjI{TkDTlo TmsPTor-;TqCLTsCLTtCLTuCLTvCLTyF"TzHwT{ITr TH" TnB Tof TL1s TrTD8T{= T~Tl[TxTu TC4TETOrThr Tn; T`#3T^3T^TCLTCLTCLTCLTCLTOPTOPTOPTCLTI@TITITITyLTyL}eTmU.}fTh~3 MT(s NT*C1OT+Dy:PT,CbQT/U;RT0PGPST1o TT2EVT4e& XT5DuYT7F[T8{\T9\^TyG `T?@aTAy\bTByqcTCtTECLTFCLTHCLgTKkk TMCLTNCLTOCLTxCLmT{F 'nT~~#4oT^+ TCLTCLTCLTCLTCLTCLTCLwTx\*xTJyTNzTOP{Te |T]}Tr~T]TBTG,6T~ ~TOPTWj |TCLTETFTGTJuTCLtTCLTs Tn Ti 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuTP TcTLFfT\@TCL TAqTCLTOP Tz)B T CLT CLT FsTCLTOPTq+ TX TACLTBCLTCCLTFK TGrTHdFgTIdTLGTN[TOapTP`ǯ!TQT"TRB#TSx$TTK#%TUL&TVKz 'TWI(TZ^ T]CL*T_F5TbCL-TdBk!TfOPThCL0Tj|oQ 2TlGi3TmH4TnDWToOP6Tq]TrCL8TtDXTwCL:TyC/TCL<T{ =TEVTOPTCL@TNRATHBTBVTCLTCLETy HT|*ITg Tk. Tk THTJTI/jTi& TixB TJTETyTEVTOTITK6Tr TLTB TQ5rTy!VTM TLiTo^ T KT EʘTCLTE\TDF-TOPTCLTCLTCLTCLTCLTCLT CLT$YgT%KC3T&XPT'NT(JT)O{T+CLT,CLT-CLT.CLT0CLT1CLT2CLT3]T4CLT5CLT6CLT8NT:CLTCLT?CLTAvR TlCLTmCLTnCLTqOP$TrJ5e%TsIIw&TuLTxCL*T{G,T|YT}OP.T~ObTCLTCLTOPTCL3Tnf4TA36To7TX8Tc9Tn:Tgf;Tk9<ThYTOP>TTV?TF@TEATUTOPDTCn<ETFpJFTEGTO9TAٚTFTBC3T]M T^mT|X TiQ Ti[ Tw3 Ty !TCL TCLTCLT^ TCLTp^ TETDYTn TQ TrTCLTCLTCLTCLTCLTFTH TJKTrz TI Tn To+ TPq TpPTD#?T {= T5~~T6m.T9xRT:u T;CTOTBh TEo TF`VfTGaVfTH^TICLTJCLTLCLTMCLTNCLTQOPTROPTTOPTVCLTYHضTZI$T[IAT\I"T`gTcg}eTUi}fT~$ MTsk NTCOTDo>PTC'QTU%(RTP.ZSTo TTDYVTd! XTEYTF[TV\T^ ^TdX_TyG `T@aT{bT|cTw >TCLTCLTCLgTk TCLTCLTCLTCLmTF nT}oT\ T CLT CLT CLT CLT CLT CLT CLwT wxT LyT UpT OP{T dDD |T _Ω}T prj~T ]T BT F_T ~s ~T OPT #U |T %CLT (ET )FpKT *GCT .IuT 0CLtT 1CLT 3tB T 4ny T 6j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuT tPv T uf3T vOT w^T yCL T {AOT ~CLT OP T @uDT CLT CLT F?T CLT OPT o+ T WJ T CLT CLT CLT J T nT `T ``T FT f=qT l=qT k!T UY"T zٚ#T mg$T J%T L&T Ku'T J (T r T CL*T FyT CL-T BT OPT CL0T |C 2T Gi3T HqL4T DaCT OP6T ]T CL8T DXT CL:T C/T CL<T z[ =T EѕT OPT CL@T *NAT +HcBT ,B!T .CLT /CLET 1y]w HT 2EIT 3e T 6kh T 7k T 8H$T 9JT ;I=T JT ?ET AxwT DEVT EO`T GIWT HK&XT Kr T NLT QB T RLvT Ty T ULT VLT Yo^ T [KT ^EʘT `CLT cE?T DF-T OPT CLT CLT CLT CLT CLT CLT CLT YgT G6gT YgT KT I34T O\T CLT CLT CLT CLT CLT CLT CLT ]T CLT CLT CLT NT CLT CT CLT CLT u T CLT CLT CLT OP$T J&%T IE&T J0T CL*T Ge,T YT OP.T OT CLT CLT OPT CL3T m4T A36T j 7T WL8T jf9T n:T kf;T o34<T l T OP>T TH?T F@T EAT U|T OPDT CET FnxFT EGT OirT @)T D3T @3T ^3A T "cT #| T $iQ T %i| T &wna T 'yz !T +CL T TCLT UCLT W\a T ZCLT \p3 T ]A:%T ^E@T `n T biIT cqET eCLT fCLT gCLT hCLT jCLT mFT nGT oOT rr]\ T uI T wm T xp T zL" T }nT D=T { T }ךT oT ymT u T C:T ET OVT hq7 T p] T bT bs3T ^ T CLT CLT CLT CLT CLT OPT OPT OPT CLT HDT IT I>T IT gT g}eT b]}fT 3 MT s. NT C5OT !D4PT #CAQT &URT 'P@.ST (o7 TT )D5VT *dQK XT +DxYT .F[T /\T 0^ ^T 3d_T 4yUU `T 5@aT 7|BbT 9|34cT :vaHT CLgT AlR T CCLT ECLT FCLT GCLmT JEBnT M}poT N\4 T PCLT QCLT SCLT TCLT UCLT VCLT WCLwT ~RxT NyT QzT OP{T d |T `e}T r~T ]T B5T FT }~ ~T OPT RU |T CLT EiT Fc@T FcT PuT CLtT CLT ty T n T jM 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuT PP T fɚT M,T ^33T CL T @gvT CLT OP T BT CLT CLT F[GT CLT OPT p< T X T CLT CLT CLT It T sYT ZT a3T FWKT ZT aQT `!T Og"T v #T Y$T HJN%T ILe&T JK>'T KJ:(T N T QCL*T SFT VCL-T XBT ZOPT \CL0T ^|C 2T `Gi3T aHY4T bDYHT cOP6T e]T fCL8T hDT kCL:T mCDT pCL<T rz =T sET uOPT wCL@T zNAT {H3BT |BEaT ~CLT CLET y1 HT G.IT m4 T k_ T l3 T HؒT JT I=T jD T ixB T J T ET y&5T @ T OT HIT K&T r T LT B T L"T xhT LT LXT o^ T KT EʘT CLT ET DF-T OPT CLT CLT CLT CLT CLTCLTCLTYgTNgT`VfTKTITMGTCLTCLTCLT CLT!CLT"CLT#CLT$]T%CLT&CLT(CLT)N dT+CLT.CݑT/CLT0CLT2x T5CLT6CLT7CLT:OP$T;J%TG4TACL*TDG,TEY0TFOP.TGOjTICLTJCLTuOPTvCL3Tym34T{A36T~wff7TVٚ8Tjf9Tn):Tkff;Ttf<TllTOP>TS?TF@TEATT٣TOPDTCkETFedFTEGTOLTB3TFTBT\ TcxvT| Ti Ti| Tw% Ty#; !TCL TCLTCLT^ TCLTp T| TEV[To TA TqTCLTCLTCLTCLTCLTF\TGVTM2Tr@3 TI Tm Tp$ TO Tq&fTDzT{ T|eTpTyxTup TC{TFRTO7T hb Ttf T`iT`T^TCLTCLT?CLTBOPTDOPTEOPTGCLTJHTKI&TLJ TNIUTQGTTG}eTYh}fT @ MTor NTqCOTrDePTsCQTvTXRTP<STo TTDVTen XTEYTF[T\T]^Td]_Tyc `T@aT{kbTycTu\TCLTCLTCLgTl9 TCLTCLTCLTCLmTEnT~ oT\ TCLTCLTCLTCLTCLTCLTCLwT{RxTLyTRTOP{Te |T^}ToL~T]T B5T G9T} ~TOPTT |TCLTETFs1TFTGuTCLtT CLT#tX T$nt T%i< 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuT;P TKiT?ZTiCL Tk@&TmCLTpOP TqC4TsCLTuCLTvFTyCLT|OPTqHF TX TCLTCLTCLTI TmYTV,TaFfTF%-TTT[34T[#!TH"TH4#TvY$TJ%TLL_&TK'TJ(T@'TCL*TFmTCL-TBTOPTCL0T|& 2TGi3THV4TDG&TOP6T]TCL8TDTCL:TCL!TCL<T{ =TETOPTCL@TN)ATHbBTBYTCLTCLETy1 HTBITq Tk TlR TH/TJTIL\Tj> TixB TJāTETxT@ T2OPT4IT5KT8r T:LT=B T>RT@y.TALTBLXTFo^ THKTKEʘTMCLTPENMTSDF-TUOPTWCLTXCLTYCLTZCLT[CLT]CLT^CLTaPgTbLgTcYgTdMHTeGHTff ThCLTiCLTkCLTCLTCLTCLTCLT]TCLTCLTCLTNTCLTC`TCLTCLT{ TCLTCLTCLTOP$TJ&%TI@&TRTCL*TG,TYTOP.TO}TCLTCLTOPTCL3Tma4TA36Td37Tefg8Te@9To!:Tk33;Tt<Ti4TOP>TS-?TF@TEچATUQTOPDTCETF[gFTE|GTNTD,T HT DfgT \ T]TT}  Tiމ Ti Tv( Ty !TCL TCLTCLT\ TCLT!p T"zr T#DT$o۔ T&lT(qT*CLT+CLT,CLT-CLT.CLT1FT2GT\J T_r1 TbJD TdnB Tep^ TfL Tir#3TmDTp{ Tr|T(TsrQTvy`BTwup TxCμTyF T|OAThS Tk33 T_\T^T^TCLTCLTCLTCLTCLTOPTOPTOPTCLTHxTI.TJTIUTiTi}eT&GbT%ycT&uT)CLT*CLT+CLgT.l T0CLT1CLT2CLT4CLmT7F nT:}goT;]n T=CLT>CLT?CLT@CLTBCLTCCLTDCLwTG} >xTHLyTIR\TJOP{TNf |TP^}TQq[~TS]TVB|TWGOT[} ~T]OPTVx |TCLTETFs1TFTKjquTCLtTCLTtF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuTOk Tf3TLT[33TCL T@TCLTOP T{/9 TCLTCLTETTCLTOPTqV TY > TCLTCLTCLTI Tm)TSTa3TEWT KT UT Z.!T M4"T zff#Tnff$TJL%TL7l&TK'TJ(T@4TCL*TFݱTCL-TB=TOPT!CL0T#|C 2T%Ged3T&HY4T'DRTPOP6TR]TSCL8TUDTXCL:TZCL!T]CL<T_{w =T`ETbOPTdCL@TgNAThH{aBTiBUTkCLTlCLETny HTpAEITsu Twk Txlo TyHTzJT{IL\T|j T}i T~JTETxT@ TO/TI-TK()Tr TLTB TPzcTy TLTLXTo^ TKTEʘTCLTEWWTDF-TOPTCLTCLTCLTCLTCLTCLTCLTNgTG6gTYgTGT_T_TCLTCLTCLTCLTCLTCLTCLT]TCLTCLTCLTN :TCLTCܪTCLT CLT"{/ T%CLT&CLT'CLT*OP$T+J%T,I=&T.OkT1CL*T4G,T5ZMT6OP.T7OT9CLT:CLT=OPT>CL3TAm4TCA36TFf7TG]s38THk49TJo3:TLd9;TMm3<TNgTOOP>TPT~?TQF[@TREATSUpT|OPDT}CuET~FUFTEv9GTO"T@ TEC4T@T]F Tb^VT}S Tiމ Tiމ Tv Ty !TCL TCLTCLT^ TCLTpX TCZTETp3 T TqTCLTCLTCLTCLTCLTFTHTMhTr# TJH Tn Tp^ TO? TniTDaT{/9 T|TtTyTuS[ TC>TFTOcThE^ Tof T`3T`PT^TCLTCLTCLTCLTCLT OPT OPT OPTCLTHTI-TJ TIThTDh}eTTǁ}fT MT_r NTaCWOTbDPTcCoQTfTRThP\STio7 TTjE_VTkf XTlE YTnF[Tol\Tq^s3^Ttf _Tuy `Tv@eaTx|#bTyyQcTzu.T}CLT~CLTCLgTlK TCLTCLTCLTCLmTFnT}goT]׷ TCLTCLTCLTCLTCLTCLTCLwT~RxTK=qyTQzTOP{Tg |T]mi}To~T]TBTGeT~s ~TOPTX. |TCLTETFT G#TOyuTCLtTCLTtK To8 Tj~ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuT.O3 T/{T0L)T1ZT3CL T5~ T8CLT;OP TCLT?CLTAETDCLTFOP<q <Y/ <OP<CL<CL< I8 < n< Y4<`&f<EY<N<Qf<RB!<B"<`#<T&f$<J%<L!&<Kγ'<KU(<@8:<CL*<!G )<$CL-<&B<(OP<*CL0<,|& 2<.G^!3</H[4<0DL<2OP6<4]<5CL8<7D<:CL:<dCZ<gCL<<i{ =<jE<lOP<nCL@<qNA<rHxB<sBb<uCL<vCLE<xxP H<z~I<}f <l3 <l8 <H<J <IL\<j <i& <Jn<E<xd<@ <O`<IHW<K:[<r <L<B <Lv<yb<L<L+<o^ <K<Eʘ<CL<E<DF-<OP<CL<CL<CL<CL<CL<CL<CL<Yf<G6g<^)<Gff<_<_<CL<CL<CL<CL<CL<CL<CL<]<CL<CL<CL<N<CL<C<CL<CL<,z % <.CL</CL<0CL<3OP$<4IV%<5I:&<8L<:CL*<=G,<>ZS<?OP.<@P<BCL<CCL<FOP<HCL3<Jn4<LA36<Od37<Pa8<Qu&g9<Tn:<Va;<Wgf<<Xds3<YOP><ZSh?<[Foa@<\EЌA<]T<^OPD<_CaE<`F6/F<aEhG<aO/<e@Ff<fEC4<g@g<\ <c<}d <i& <iމ <vK <x !<CL <CL<CL<]Z7 <CL<q3 <J3<E<p| <_6<q<CL<CL<CL<CL<CL<F <H<PS<rs <Iȉ <n <ph <L/ <p9<C<{ <z<vc<y33<uD <C<F!O<O<h6 <kU <`3< `< ^< CL< CL<CL<CL<CL<OP<OP<OP<CL<H7<I&<I<I<"h\<%h\}e<Kp}fT M<s? N<CO<DǪP<Cu}Q<TR<PY#S<o T<E_V<f X<EY<F[<ijP\<a.^<b J_<y9 `<@a<|b<zc<v\<CL<CL<CLg<lO <CL<CL<CL<CLm<F5n<}o<^ <CL<CL<CL<CL<CL<CL<CLw<uzx<Ky<QR<OP{<h |<!\?}<"r#~<$]<'Bz<(G<,~; ~<.OP<1V |<3CL<6E4<7FI<9GS<CLt<?CL<Bt <Cp" <Djr 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu<O= <T`<A,<Oc3<CL <~ <CL<OP <GH<CL<CL<Eѕ<CL<OP<r <Y <OP<CL<CL<I <Zə<Nə<V6g<E=<R<X)<X!<@ "<h@#<Yٙ$<Jy%<L,&<K'<J(<@Je<CL*<G<CL-<B<OP<CL0<|& 2<GJ(3<HW4<DG<OP6<]<CL8<DX<CL:<Cpi<CL<<{ =<E<OP< CL@< NA<HB<B+<CL<CLE<xt H<FI<j <Blo <Cl <DH<EJā<FIZ<Gk. <HjD <JJ<KE<Mx<N@ <QOP<SI'<TK4<Wr <YL<\B <]R <_x <`L<bL<eo^ <gK<jEʘ<lCL<oEZ<rDF-<tOP<vCL<wCL<xCL<yCL<{CL<CL<CL<Pg<KL<Yg<_<G <G <CL<CL<CL<CL<CL<CL<CL<]<CL<CL<CL<NH<CL<C`<CL<CL<v( <CL<CL<CL<OP$<I%<I6&<H<CL*<G,<Y<OP.<PG<CL<CL<OP< CL3< n4<A36<_@7<W8<jf9<m:<fL;<ly<<h<OP><S ?<F>[@<E~A<U(<OPD< CFTE<!EF<"EHG<#N<'<(D3<)@<*]- <-c </}1 <0j ^ <1j <2u <3xe !<6CL <7CL<9CL<;`S <>CL<@r+ <AF?<BF<Cp^ <m8<oq<qCL<rCL<sCL<tCL<uCL<xF-<zH<{H4<~r <I] <o; <p <Rty <t3<CU<{/9 <y<x <yo<uD <CB<F/<Ou<h6 <o <`f<a<^<CL<CL<CL<CL<CL<OP<OP<OP<CL<H<I<<I<I<I{<I{}e<m[G}f<B? M<r N<CO<D1P<CQ< THR< P\S<4o7 T<5EIV<6f X<7EY<9F[<; \<F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu<O"+ <Rvg<A@<P<CL <~Ü < CL< OP < F< CL< CL< E< CL< OP< q < Y < CL< CL< CL< ImU < [ < N< U< "E < $W=q< %\H< &\H!< '33 "< (b@#< )U3$< *J%< +LU&< -K'< .K7(< /@V< 1CL*< 3G )< 6CL-< `B < bOP< dCL0< f| 2< hG23< iHL4< jD< kOP6< m]< nCL8< pD_< sCL:< uCi(< xCL<< z{ =< {EV< }OP< CL@< NVA< HB< Bs< CL< CLE< xH H< F)I< p: < l8 < m < H< Jā< IZ< kh < jb < JZ< E< x< @ < Oy< I(< K&X< r < K<-< B < Lv< xz\< L< L+< o^ < Kc< Eʘ< CL< EA< DF-< OP< CL< CL< CL< CL< CL< CL< CL< X4< M< `0< _< G < G < CL< CL< CL< CL< CL< CL< (CL< )]< *CL< +CL< ,CL< .N< 0CL< 2C< 4CL< 5CL< 7vY < :CL< ;CL< < SQF?< F g@< EA< T< OPD< C9CE< E@F< E4G< N< E< K3< Fvg< \ < a9< ~oP < j63 < j63 < u < x+ !< CL < CL< CL< ]Z7 < CL< s < I< E< ph < `< q< CL< CL< CL< CL< CL< F< H< O< qJ < IU < ouq < q < L@- < o< C < {LS < yo< yI< yS< uD < D< F7 < N< h(# < ss3 < a3< a`< ^ < CL< CL< CL< CL< CL< OP< OP< "OP< $CL< 'H< (I< )I< +I< ViG< YiG}e< Fq}f<@ M< tq N< vC)O< wDZP< xC0Q< {TR< |PcS< ~o T< EBV< f X< EY< F [< &0\< _$D^< bߋ_< y `< @a< }b< zW c< v\< CL< CL< CLg< l`7 < CL< CL< CL< CLm< En< ~go< ^ < CL< CL< CL< CL< CL< CL< CLw< zHx< H\)y< T< OP{< g |< ]}< qb~< ]< Bz< Gh< ~ ~< OP< T |< CL< E6< FxC< !F< $Lpu< &CLt< 'CL< )t; < +o < ,jk 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu< BNӴ < CSy< D@3< FP@< HCL < I < LCL< OOP < R{/ < UCL< VCL< EW< CL< OP< r1 < Y < CL< CL< CL< H < i < U3< Yff< DՏ< Nz< T>< T!< Aff"< ig#< X33$< Jb%< L&< K'< K(< @D< CL*< F< CL-< BM< OP< CL0< |` 2< G!O3< H=4< D < OP6< ]< CL8< D< CL:< Cpi< CL<< { =< DB< OP< CL@< MkA< HB< Bx3< CL< CLE< vK H< qnPI< ta < l < m<8 < H< J< IZ< k) < ju < K < E< x< @ < Ol< I< K&< r < K)< B < ILv< Kxz\< LL< ML< Po^ < QKF< REʘ< TCL< WE< ZDF-< \OP< ^CL< `CL< aCL< bCL< cCL< dCL< eCL< hY< iG6g< javg< kL34< mM< nS >< pCL< qCL< rCL< sCL< tCL< uCL< vCL< x]< yCL< zCL< {CL< |N< ~CL< C< CL< CL< w < CL< CL< CL< OP$< I%< I0&< Pzc< CL*< Gv,< Y< OP.< P< CL< CL< OP< CL3< n&4< A6< d7< f&g8< iL9< l:< h3;< s<< l&g< OP>< R[?< F@< EYA< TE< OPD< CQE< EF< E'lG< N>< Dfg<IP<D3<\2 <bW<~c <jD <j63 <u <wS !<CL < CL<!CL<#a <&CL<(s <)H<+F~<,pӖ <-C9 </q<1CL<2CL<3CL<5CL<6CL<9E<:H)<;L<>q <AI <Co <Eq <FSm <Iq<tCI<w{= <yyg<zz} <~x<uD <D<FE<O<h <u <`f<`f<^<CL<CL<CL<CL<CL<OP<OP<OP<CL<H<I W<I<I<b{<b{}e<-Z}f< ) M<s1L N<C+O<DyP<CQ<TDR<PgfS<o T<EuV<f X<EY<F[< \<X^<c7_<y `<@ۘa<|\b<yc<tH<CL< CL< CLg< l?] <CL<CL<CL<CLm<>F Xn<A}4o<B^ <ECL<FCL<GCL<HCL<ICL<JCL<KCLw<NwHx<PL#y<QQ<ROP{<UhUV |<W^ L}<Xo>~<Z]<^Bz<_GV<b~; ~<dOP<gX. |<jCL<mEž<nF <oG8><rMwu<tCLt<vCL<tN <p <j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu<N <d<R<`L<CL <: <CL<OP <G<CL<CL<EsZ<CL<OP<rz <Z <OP<CL<CL<H <k4<X< \6f< D<U<\<[aH!<G"<tfg#<j3$<J%<KM&<K'<K(<@\<CL*<Fs< CL-<"C <$OP<&CL0<(|oQ 2<*G3<+H14<,D <-OP6</]<0CL8<2Du<5CL:<7Ci(<:CL<<<{ =<=EW<?OP<iCL@<lN~-A<mHB<nB<pCL<rCLE<txe H<v@mI<yr <|m <}mYk <~H<J<IZ<k <j <K <E<xd<@ <O<I<K<r <K3<EV<Q<xz\<L<Lu<o^ <KF<Eʘ<CL<E<DF-<OP<CL<CL<CL<CL<CL<CL<CL<Yg<M<avg<GH<GG<N=q<CL<CL<CL<CL<CL<CL<CL<]<CL<CL<CL<N<CL<C<CL<CL<z[ <CL<CL<CL<OP$<I1%<I->&<1MO<4CL*<6G,<7Y<8OP.<9P1<;CL<<SR ?<TF@<UEFA<VTfz<WOPD<XCkE<YEF<ZE .G<[Ni?<^B3<_F<`Bf<b\H <ed<f~ <gjb <hjp <iu <jw !<CL <CL<CL<] <CL<t!N <El<Fy<qV <t?=<r<CL<CL<CL<CL<CL<E<H7D<I<q <I <pY <q <L{ <rf<Cʑ<{= <xf<|<x<uD <D- <FT<O67<h <q <aC3<a`<^<CL<CL<CL<CL< CL< OP<OP<OP<CL<H<I(<I<I,<z<z}e<Uj@}f< M<^s N<`CO<aDIP<cCHQ<fTwR<gPCS<ho T<iFV<jh X<lEAY<nF[<o\<p[(^<scY_<ty `<u@!a<w|\b<yxc<zug<|CL<}CL<~CLg<l4f <CL<CL<CL<CLm<Fon<~o<_{c <CL<CL<CL<CL<CL<CL<CLw<y{x<Juy<P4<OP{<i |<](}<n~<]<B{<GHT<c ~<OP<XA |<CL<Ej<F/<G<Hxu<CLt<CL<ts <q$ <kn 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu<-NN <.f</W<0\3<2CL <4~' <7CL<:OP <;@<=CL<>CL<@EO<CCL<FOP<Ir <J\T <MCL<NCL<OCL<RH0? <Sk@<TXY<U[<XD6<ZV{<[V{<\X{!<]A"<^e3#<k4$<J%<KE&<K'<J(<@}B<CL*<G )<CL-<CU<OP<CL0<|ƚ 2<G-3<H+z4<D e<OP6<]<CL8<Du<CL:<Ci(<CL<<{H =<Eѕ<OP<CL@<Nq/A<HB<Bө<CL<CLE<x H<}SI<aX <m<8 <mv <H<Jn<IZ<k <kQ <KF<E<zT<@ <O<IH<K <r <L< EV< QJ8< xz\<L<L<o^ <KF<Eʘ<CL<E^<DF-<OP<!CL<"CL<#CL<$CL<%CL<&CL<'CL<S_p<TNg<Uc<VGH<WFQ<XN\)<ZCL<[CL<\CL<]CL<_CL<`CL<aCL<b]<cCL<dCL<eCL<gN <iCL<kC<mCL<nCL<p{H <sCL<tCL<uCL<xOP$<yI%<zI)&<|J<CL*<Gv,<Y<OP.<PN<CL<CL<OP<CL3<n24<A36<n@7<^38<m9<mQ:<fl;<pf<<k<OP><Sx*?<F@<EA<U0<OPD<C>E<EaF<EG<N<E<Kf<Eɚ<\t <^~<~y <jp <j> <ua <w !<CL <CL<CL<`x <CL<sc <BF<F <qes <u;<rI<CL<CL<CL<CL< CL<#E<$H><%I<)q <,I <.pA </qˈ <0R+ <3rٚ<6C0<:{in <<Ir<yf<yf}e<U%}f<[ M<s N<CO<D7P<CQ<TwR<PRS<o۔ T<FPV<h X<EY<F״[<x\<[^<e$_<y `<@ea<|#b<zGc<t<CL<CL<CLg<lR <CL<CL<CL<CLm<F&n<~4o<`#B <CL<CL<CL<CL<CL< CL< CLw<xx<J8Ry<PG<OP{<jUV |<\J_}<okD~<]<EB~&<FGN<I ~<KOP<OX |<QCL<TE<UG W<VG<ZOpu<\CLt<]CL<_t^5 <`qO <bk+ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu<xNE <ye3<zZ`<{`g<}CL <|& <CL<OP <B<CL<CL<E]<CL<OP<r <]R <CL<CL<CL<H;_ <m<Z9<\f<DZ<IB<OB<O!<D"<n#<hff$<JJ%<Kγ&<K'<Jzy(<@<CL*<G<CL-<CU<OP< CL0<} 2<F3<H*4<C<OP6<]<CL8<DJ<CL:<Ci(<!CL<<#| z =<$E<&OP<(CL@<+NA<,HB<-Bo</CL<0CLE<2xt H<5{I<7joR <:mv <;m <=H$<>Jn<?IZ<@k <Ak. <BKF<CE<Ex<F@  $O $IM $K1C $r  $ L $ EV $Lv $x $L $Lû $o^  $KF $Eʘ $CL $EED $ DF- $"OP $$CL $%CL $&CL $'CL $(CL $)CL $*CL $-]g $/L $0^ $1G $2Fp $3N=q $5CL $6CL $7CL $8CL $:CL $;CL $dCL $e] $fCL $gCL $hCL $jN $lCL $nC $pCL $qOP $uz $wCL $xCL $yCL $|OP$ $}I% $~I(-& $G $CL* $G, $Y $OP. $Pyd $CL $CL $OP $CL3 $n,^4 $A36 $U37 $K8 $P39 $m{: $eY; $q,< $jf $OP> $S ? $F"7@ $EA $U0 $OPD $DWE $EF $EG $N $Xg $^ $U3 $\  $c  $~  $j>  $ju  $u  $w3 ! $CL $CL $CL $]w  $CL $qJ  $~  $F[G $q+  $ $rA $CL $CL $CL $CL $CL $ES $H: $L $-q  $0J.  $2p^  $4q  $5L{  $8o3 $;C $>{w  $@xO3 $A@B $Ex $Fu65  $GD; $HFq $JOD $Mh(#  $Px  $Qbp $Sbs3 $T^  $UCL $VCL $WCL $XCL $ZCL $]OP $^OP $_OP $aCL $eHo $fI  $gJ j $I~ $hff $hff}e $AM}f<_# M $s N $CO $EP $CQ $T R $ONS $o T $Fm8V $hJ X $DxY $Fܒ[ $²x\ $Zg^ $eE_ $yU ` $@a $|*b ${\*c $wu $CL $CL $CLg $lp $CL $CL $CL $CLm $F&cn $}o $ `b5 $ CL $ CL $CL $CL $CL $CL $CLw $wx $My $Q\) $OP{ $j | $]L} $mĦ~ $!] $%B $&GbG $) O ~ $+OP $.Y | $XCL $\F j $]Gq $^G $aGa@u $cCLt $eCL $gt33  $hqO  $ik% 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $N4  $f $U  $]g $CL $}h $CL $OP $H $CL $CL $E@ $CL $OP $r  $] $CL $CL $CL $Jm  $m  $Y, $[) $DV& $Nz $P $Qz! $WL" $@# $u$ $J% $KA& $K{' $J( $@ $CL* $G $CL- $C/ $OP $CL0 $}T 2 $F3 $H)4 $C $OP6 $] $CL8 $!D4K $$CL: $&Cpi $)CL< $+| = $,E $.OP $0CL@ $3NoA $4HyB $5Bɀ $7CL $8CLE $:x0 H $;HnmI $ $y $L $L $o^  $KU $Eʘ $CL $E $DF- $OP $CL $CL $CL $CL $CL $CL $CL $] $Mg $a $GH $E $N\) $CL $CL $CL $CL $CL $CL $CL $] $CL $CL $CL $N  $CL $C $CL $CL $y@Y $CL $CL $CL $OP$ $I% $I%H& $P  $CL* $G, $Y $OP. $PX $CL $CL $OP $CL3 $n?4 $ A36 $ X37 $P8 $N9 $m>: $gy; $s < $nٙ $OP> $R ? $F-@ $EA $T $OPD $D2E $EЌF $E]G $N $#Yy $L`&f $MWC3 $O]yl  $RaH $S~K  $Tj  $UjH  $VtY  $Ww| ! $ZCL $\CL $]CL $_`d  $bCL $dqˈ  $ez[  $fEZ $hq9  $j $kr, $mCL $nCL $oCL $pCL $rCL $uE $vH3 $wP# $zq  $}I  $p<  $rs  $R  $pFf $C ${w  $w=] $@  $xR $u65  $DJ $FxC $N  $h(#  $n&f  $`f $`\ $^ $CL $CL $CL $CL $CL $OP $OP $OP $CL $Hx $I  $J $I~ $i $i}e $jj}f $g~\ M $&sM N $(CJO $)DP $+CQ $.T R $/PY#S $0wna T $1FV $2i* X $3DuY $6Fv[ $7R\ $8[g^ $;b_ $y $P $OP{ $j | $]~} $n~ $] $B $G? $U ~ $OP $YM | $CL $F $G $G9 $KKu $CLt $CL $tH  $qĜ  $k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $Mm  $bI $O $_ $CL $}~ $CL $OP $Hf $CL $CL $E@ $ CL $OP $r  $], $@CL $ACL $BCL $EKs  $Fm $HYf $I[f $LD  $MJ4 $OPu $PPH! $QF" $Rh# $SKf$ $TJ}3% $UK.& $VK' $WJ( $X@U $ZCL* $\G $_CL- $aC/ $cOP $eCL0 $g| 2 $iFض3 $jH*4 $kC $lOP6 $n] $oCL8 $qDJ $tCL: $vCi( $yCL< ${{ = $E $OP $CL@ $NsA $HbB $B $CL $CLE $x H $CκI $u<  $m4  $n  $H $J $IZ $lR  $k_  $K82 $E $xd $@  $O $IM $K4 $r  $L $EV $R $yF $L $Lٛ $o^  $KU $Eʘ $CL $ EU $ DF- $OP $CL $CL $CL $CL $CL $CL $CL $Yg $G6g $c  $K\) $I{ $!GH $#CL $$CL $%CL $&CL $'CL $(CL $)CL $*] $,CL $-CL $.CL $/N+ $1CL $4Cn $6CL $7CL $9y $;CL $ $S? $F7@ $EA $UL  $OPD $DgE $EضF $E%G $NϽ $U $\, $Sp $^E\  $^ $~K  $j  $j  $t  $w4 ! $CL $CL $CL $]n  $CL $qˈ  $}h  $E $q  $@  $r@d $CL $CL $CL $CL $CL $E $H,b $K/ $q  $I  $p-  $r@3  $L/  $r  $C ${w  $wGF $@ $y $ uD  $ D_ $4F $6O4  $9h(#  $bs3 $@^ $ACL $BCL $CCL $DCL $ECL $IOP $JOP $KOP $MCL $PHo{ $RI $SJ,O $TI{. $Vzff $Wzff}e $Y~}f $~ M $s N $CO $DP $CQ $T R $P`ES $@T $FVV $i X $DsY $F[ $.\ $Y"^ $b5_ $y ` $B7a $zb $xLc $u $CL $CL $CLg $la $CL $CL $CL $CLm $Gn $}Io $`- $CL $CL $CL $CL $CL $CL $CLw $~\*x $M{y $ P $ OP{ $ j | $ ]t} $ p{~ $ ] $ Bh $ FM $ ~; ~ $ OP $ Z | $ CL $ F $ G $ GT $ "OBNu $ $CLt $ %CL $ (t-  $ )q/  $ *k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $ iM`  $ jb, $ kO $ l_3 $ nCL $ pr $ sCL $ vOP $ wH $ yCL $ zCL $ |E@ $ CL $ OP $ r  $ ]0 $ CL $ CL $ CL $ K>  $ m) $ Z  $ \@ $ C $ ] $ cz $ cz! $ E" $ Yٙ# $ J$ $ Jw% $ KI& $ KD' $ J( $ @l $ CL* $ Gg $ CL- $ C/ $ OP $ CL0 $ }T 2 $ F3 $ H*4 $ C! $ OP6 $ ] $ CL8 $ D $ CL: $ Ci( $ CL< $ {H = $ E $ OP $ CL@ $ NA $ HbB $ B $ CL $ CLE $ xo H $ B,I $ FY  $ (n  $ )n%  $ *H $ +J $ -IZ $ .l  $ /k  $ 0KF $ 1E $ 3x $ 4@  $ 7O $ 9I. $ :K3 $ =r  $ @L $ CEV $ DP D $ Fy[ $ GL $ HL $ Ko^  $ LKc $ MEʘ $ OCL $ REQ $ UDF- $ WOP $ ZCL $ [CL $ \CL $ ]CL $ ^CL $ _CL $ `CL $ cYg $ N $ by $ K $ I $ Rp $ CL $ CL $ CL $ CL $ CL $ CL $ CL $ ] $ CL $ CL $ CL $ N : $ CL $ Da $ CL $ CL $ y@Y $ CL $ CL $ CL $ OP$ $ I3% $ I!& $ Mtg $ CL* $ G, $ ZP $ OP. $ P $ CL $ CL $ OP $ CL3 $ n-4 $ A36 $ R7 $ P@8 $ R39 $ m: $ mFf; $ rL< $ ug $ OP> $ S? $ F?C@ $ EA $ U`2 $ OPD $ DE $ E@F $ E+G $ O $ U3 $ [P $ S $ _:  $ b $ ~K  $ jH  $ j  $ t  $ w% ! $ CL $ CL $ CL $ `  $ !CL $ #rs  $ %EO $ &ET $ 'pX  $ )p $ *rp $ TCL $ UCL $ VCL $ XCL $ YCL $ \E $ ]H* $ ^IM $ aq  $ dI  $ gp  $ hr]\  $ iR  $ lt $ oC $ r{  $ tva3 $ uAW $ yx9 $ zuD  $ {Du $ |Ge $ ~Om $ h(#  $ uw  $ _ $ a\ $ ^  $ CL $ CL $ CL $ CL $ CL $ OP $ OP $ OP $ CL $ Hb $ I  $ J77 $ Iy^ $ yff $ yff}e $ )\5}f $ (~ M $ sM N $ CO $ D]jP $ C4Q $ TR $ PJS $ AT $ FV $ i8V X $ DuY $ F[ $ `-\ $ \s4^ $ b^V_ $ z ` $ "Ca $ $Bb $ %Ac $ & $ (CL $ )CL $ *CLg $ -ls $ 0CL $ 1CL $ 2CL $ 3CLm $ 6Hn $ 9}4o $ :`$ $ CL $ ?CL $ @CL $ ACL $ BCL $ CCLw $ F@)x $ HK\)y $ IQk $ JOP{ $ Mj | $ O\>} $ Po~ $ R] $ VC $ WFؔ $ ~ ~ $ OP $ Z | $ CL $ F") $ F9 $ G $ G2u $ CLt $ CL $ t#  $ q  $ kz 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $ M  $ ^ $ L  $ [3 $ CL $ K $ CL $ OP $ G $ CL $ CL $ E9[ $ CL $ OP $ r  $ ], $ OP $ CL $ CL $ KW  $ mP $ YS3 $ [ $ C $ V $ ] $ ]! $ @Ff" $ h# $ I3$ $ Jqb% $ K;& $ K' $ KJ( $ @2 $ CL* $ GJY $ CL- $ C/ $ OP $ CL0 $ H|ƚ 2 $ JFض3 $ KH)4 $ LC% $ MOP6 $ O] $ PCL8 $ RC $ UCL: $ WCpi $ ZCL< $ \{ = $ ]EV $ _OP $ aCL@ $ dNA $ eH3B $ fB $ hCL $ jCLE $ lx H $ n@I $ qb  $ sn%  $ unB  $ vH $ wJZ $ xIZ $ yl8  $ zk  $ {KF $ |E $ ~x $ @  $ Oe! $ I~ $ K3 $ r  $ L $ EV $ Lv $ yN $ L $ M  $ o^  $ Kc $ Eʘ $ CL $ E $ DF- $ OP $ CL $ CL $ CL $ CL $ CL $ CL $ CL $ Yg $ Pf $ Yg $ L $ IQ $ Q $ CL $ CL $ CL $ CL $ CL $ CL $ CL $ ] $ CL $CL $CL $NH $CL $D  $CL $CL $xo $CL $ CL $!CL $$OP$ $%Id% $&I 8& $(J $+CL* $.GM, $/Z $0OP. $1Po $3CL $4CL $6OP $8CL3 $;n3z4 $=A36 $@Uf7 $AKf8 $BPy9 $DnU: $Fg; $GrFf< $Hm $IOP> $JSFy? $KFE@ $tERA $uU $vOPD $wCHE $xEF $yE/G $zO  $~W $\ $UP $_A;  $a $~(?  $j  $k  $t[  $w4 ! $CL $CL $CL $]  $CL $q  $I $Ed $p  $1f $rr $CL $CL $CL $CL $CL $EU $H&  $J $q  $I  $q  $rk  $L  $r&f $C ${  $v, $A˝ $xy $uD  $D $L $OF $h(#  $kw  $` $_S3 $^ $CL $CL $CL $CL $CL $OP $OP $OP $ CL $ HW $ I $J9 $Iy^ $C@ $>C@}e $b}f $ ~6 M $Ysj N $[CO $\DP $]CQ $`TR $aPNqS $cq3 T $dFV $ei X $fD|Y $hF[ $iĘ\ $j[^ $nd_ $oz9 ` $qCoa $r@b $s{c $t{. $vCL $CL $CLg $l{ $CL $CL $CL $CLm $H_)n $~<o $`$ $CL $CL $CL $CL $CL $CL $CLw $@Qx $K y $R $OP{ $jDD | $\} $m$x~ $] $C $Fh $)b ~ $OP $Z | $CL $F-  $F $G $ Nuu $ CLt $ CL $s  $q/  $kO 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $'L,  $(\ $)L4 $+Vٚ $-CL $/7 $1CL $4OP $5D~ $7CL $8CL $:EG $=CL $hOP $krE  $l] $oCL $qCL $rCL $uL)  $vm $w\, $x^f ${Cb $}I\ $~O $P! $Jf" ${&f# $U34$ $Jgb% $L& $L' $KZ( $@ $CL* $GC $CL- $C' $OP $CL0 $| 2 $F3 $H)4 $C $OP6 $] $CL8 $C $CL: $Ci( $CL< ${ = $E $OP $CL@ $Nf[A $HbB $Brd $CL $CLE $y#; H $|ddI $l N  $n`*  $n`*  $H $JZ $IZ $l  $l5h  $KU $E $x $@  $O $Im $K+ $r  $L $EV $Qe $0y_ $1M  $2M $5o^  $6Kc $7Eʘ $9CL $ $Sl? $FK@ $E:A $T $OPD $DE $ERF $E2JG $N $W| $] $V $_n  $[r $~(?  $kQ  $j  $t/  $v( ! $CL $CL $CL $_d  $ CL $ q  $HU $DZ $q+  $7' $rw $CL $CL $CL $CL $CL $E $H+z $ L $#q  $&Ib"  $(r  $*r  $+RW  $.o $1CҶ $\{  $^u $_BP. $bx $duD  $eE* $gQ  $hOb $kh6  $nlw  $o`f $q^3 $r^ $sCL $tCL $uCL $vCL $xCL ${OP $|OP $}OP $CL $HM $I!O $J!h $I $h( $h(}e $S}f $~4 M $s N $CO $DrP $CQ $UR $PY#S $p T $FV $h X $EY $F[ $}\ $Z^ $f_E_ $zq ` $Ca $Db $Aٚc $@J> $CL $CL $CLg $l $CL $CL $CL $CLm $Hn $&}4o $'` $*CL $+CL $,CL $-CL $.CL $/CL $0CLw $4vx $5Ky $6OB $7OP{ $:jwx | $<]Ta} $=oR~ $@] $CCK $DFoL $G~ ~ $IOP $LY7 | $OCL $RF6 $SG  $TG $WHu $ZCLt $[CL $]sf  $^q-  $_kP 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $LT  $]0 $Mf $Sf $CL $~' $CL $OP $CSc $CL $CL $EV[ $CL $OP $s  $^W $CL $CL $CL $LL  $v4 $a $_, $C? $IQ $OB $O! $AS3" $l&f# $Gٚ$ $J\z% $LC& $K١' $K( $@| $CL* $G; $CL- $C/ $OP $ CL0 $ }T 2 $Fx3 $H*4 $C $OP6 $] $CL8 $C> $CL: $Ci( $CL< $!{ = $"EV $$OP $&CL@ $QN\A $RHB $SB# $UCL $VCLE $Xy#; H $YHI $Zu  $]n  $^n  $`H $aK  $bIZ $cm  $dlo  $eKU $fE $hzJ $i@  $lO $nI- $pK" $sr  $uL $xEV $yPe ${y@ $|M  $}M/ $o^  $Kc $@- $CL $EWW $DF- $OP $CL $CL $CL $CL $CL $CL $CL $Yg $G6g $Yg $N $I34 $Qz $CL $CL $CL $CL $CL $CL $CL $] $CL $CL $CL $N $CL $DJ $CL $CL $xt $CL $CL $CL $OP$ $I% $I& $N0  $CL* $GE, $Y $OP. $Pn $CL $CL $ OP $"CL3 $%nC4 $'A36 $)e7 $*dFg8 $+Og9 $.nz: $0e; $1of< $2kٚ $3OP> $4S? $5FK@ $6EjA $7US $8OPD $9D E $:EF $;E5G $ 8S`f? 9FGn@ :E:A ;U9X EF ?E5G @O 2 CW D] EVf G` 8  Jdw K~]  LkZY  Mk.  Nsl  OvY ! SCL  TCL UCL W`S  ZCL \r  ]BF _El `q9  aB  crgi eCL fCL gCL CL CL Ec H: Oo8 q  Jf  pX  r  RJ  p Cݑ {H  u6O C$m y  uS[  F( W M h6  l  ` ^| ^  CL CL CL CL CL OP OP OP CL H7D I){ J I j j}e aYc}f $~O M s N  CO "DP #D.Q &U|R 'P5|S (p T )FV *iT X -ECY .F[ /Ę\ XW2}^ [b%_ \z* ` _Aba `ELb aBHc b* dCL eCL fCLg il  lCL mCL nCL oCLm rGw n u}go va   yCL zCL {CL |CL }CL ~CL CLw {x MHy P OP{ kDD | ]- } n( ~ ] C} EZ U ~ OP Xs | CL F; GM? G P'3u CLt CL s  q-  kw 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu L+<  ]9 QVf Xvf CL  @X CL "OP  #Cu %CL &CL (EZ +CL .OP 1r  2^  5CL 6CL 7CL :L  ;u` <_3 =^33 @B= BTǮ CZ DZ! Eu" G^# HL$ IJH|% JL& KK' LLMH( M@b OCL* QG-a TCL- VCL! XOP ZCL0 | 2 FŨ3 H,b4 CR OP6 ] CL8 C{ CL: Ci( CL< { = EV OP CL@ NtA HbB B@ CL CLE y1 H B7I g  n  n  H K  IZ mYk  l  Kc E zJ @  OP IO K r  L EV Lv y  L MM o^  Kc E CL E DF- OP CL CL CL  CL  CL  CL  CL Yg Pg _I JH I34 GH CL CL CL CL CL CL CL ]  CL "CL #CL LN d NCL QD1 SCL TOP Wz[  ZCL [CL \CL _OP$ `IU% aI& cMB fCL* iG, jZY kOP. lP nCL oCL qOP sCL3 vn H4 xA36 {U7 |MS38 }Hf9 m: k,; qٚ< s OP> S,? FI?@ E"A T  OPD DE EMF E7G N W3 ^3 V `  `"E ~K  k  k.  sF  v- ! CL  CL CL ]y  CL qJ  ~s  EZ p  mD ra CL CL CL CL CL E۔ HE Ia q  IUU  q  r+  L  sL C !{/  #uZp $Ch 'y (ua  )G +\ ,M 0h6  3j3  4`  5^y 6^  7CL 9CL :CL ;CL F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu _K  `X aMٙ bS dCL  f@ iCL lOP  ox  rCL sCL uEZ xCL {OP r1  \  CL CL CL Ly  u4 _ff ] B Pff V4 W! D@" pY# M@$ JA6% K& KA' Lz( @V CL* GC CL- CL! OP CL0 | 2 FŨ3 H-J4 C* OP6 ] CL8 DB CL: Cw  CL<  |& = Eѕ OP CL@ NsYA HvB BO CL CLE y H @I !r+  $B  %oK  &H$ (KF )IZ *m  +m  -K 0E 2zJ 3@  6O` 8I$ 9K? L BEV CQe mx1 nL oMk ro^  sKc uTi wCL zE\ }DF- OP CL CL CL CL CL CL CL Yff N| Yg K Lp Q CL CL CL CL CL CL CL ] CL CL CL N CL D  CL CL {/  CL CL CL OP$ I% I& Jv} CL* Gm, Zw OP. P CL CL OP CL3 nVO4 A36 W&g7 UFg8 J39 m: g; r3< oL OP> SK? FL@ E:A U OPD C/E EF E7G Om 4T 5Z0 6S 7`g  ;` <~K  =k  >kK  ?s  @v ! CCL  DCL FCL H`  KCL Mrs  Nz  OC  Pq  Sf Tr\ VCL WCL XCL YCL ZCL ^Eڬ _H+z `J cq  fI  hq  is T  jR*  ns` C {/  u< C x ua  H2 b, M h6  q""  ` ^y ^  CL CL CL CL CL OP OP OP CL H' I,3 I Iy^ vff vff}e Sf}f F~N M s N CO DMP D Q UR PgfS pPL T FtV h X ESY Gf[ \ W}^ !d_ "zG ` #A<a %Gb 'C{c (Bz *CL +CL ,CLg /l  1CL 2CL 4CL 5CLm `G1cn c}o d`  fCL gCL iCL jCL kCL lCL mCLw p|{x qN\y sP > tOP{ wjDD | y\R} zmt~ |] CG E ~Ü ~ OP Y/ | CL FF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu KN  Yf NC3 Ti CL  At@ CL OP  A2 CL CL Ez CL OP r  \_  OP CL CL (L  )u *_ٚ +^  .Bm 0MW  1S 2S! 3Af" 4d# 5Hf$ 6J77% 8KI& 9K' :LS( ;@~ =CL* ?G&" BCL- DCSc FOP HCL0 J|} 2 LF3 MH-J4 NCk OOP6 Q] RCL8 TC WCL: YCw \CL< ^| = _EV aOP cCL@ NpwA HB B CL CLE y H }I u  B  B  H KF IZ m  m<8  K E zJ @  O IH K() r  M  EV Lv x L M= o^  M \Ը CL ECv DF- OP CL CL CL CL CL CL CL Yg G6g Xl J I\ S( CL CL CL CL CL CL CL ] CL CL CL N CL Dn CL CL "{Z  $CL %CL &CL )OP$ *I% +I& VG YCL* [G<, \Z\{ ]OP. ^PS `CL aCL dOP fCL3 in(4 jA36 mb7 nQ8 oG9 rnU: tt; uy< v| wOP> xSk4? yFQk@ zEA {U@ |OPD }CHE ~EF E:qG Ow ^ f  ] a  cU ~]  kd  kh  sU:  vW ! CL  CL CL ]+  CL rN  A" B q  ʃ_ rgi CL CL CL CL CL E G J{ q  I7w  q  s8  M1  r Cy {  u\ C9 xj ua  R* I M "h6  %m  &` (^y )^ *CL +CL ,CL .CL /CL 0CL 3OP 4OP 6CL :H) ;I. F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu UK)  VB0 Wu XA ZCL  \B) _CL bOP  cB eCL fCL hE kCL nOP qrN  r\  tOP vCL wCL zL  {v  |_@ }]3 Bv xz  |! C" kS3# N9$ J2% KE& K' L( @Q CL* GC CL- Ca OP CL0 |j 2 F;3 H/4 CD OP6 ] CL8 CB CL: C~ CL< |R8 = E OP CL@ N`A H3B B CL CLE x H H5I c$  B  B  H$ KF IZ m4  mv  K  E "zJ #@  &Oy (I. )K() ,r  /M  2EV 3L0 5xl 6L 7Ly :o^  ;R' =^ ?CL BE EDF- GOP JCL KCL tCL uCL vCL wCL xCL {X |F3 }X K I{ Qz CL CL CL CL CL CL CL ] CL CL CL N CL DV CL CL {/  CL CL CL OP$ I% I& R CL* G , Za OP. P  CL CL OP CL3 n1X4 A36 Z37 Qs48 K9 nq: n3; |< w OP> S? FP@ E A T OPD D>E EF E=(G O `| g _ٚ b+  bX ~oP  l&  kh  s)~  v4 !  CL   CL  CL _ [  CL r]\  Brd ?q  A Br~ DCL ECL FCL HCL ICL LEX MGM NK  Qq  TI7w  Wq  Xsrb  YQ  \pf _D b{/  du& eCQ ix! juS[  k@. lA nM qh6  tt.  u_f w`f ^ CL CL CL CL CL CL OP OP CL HY I2 Is I i i}e AS&}f ~9 M s N CFO DP DJQ V:R P/S p| T FV  iqc X  EY  G[ &\ Y^ c_ zc ` Aa FYb Ezc B޹ CL CL CLg  lG  #CL $CL %CL &CLm )Fn ,}ٚo -`  0CL 1CL 2CL 3CL 4CL 5CL 6CLw :wGx ;N=qy F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu KQ  BL tf A CL  Bɀ CL OP  C CL CL EsZ CL OP rN  \N4  OP CL CL L  v c9 a B_ MG R\ Tk! p" N3# @3$ J0% KX& K' Lo( @ CL* GQ 2CL- 4CZ 6OP 8CL0 :|} 2 C @OP6 B] CCL8 ED-  HCL: JC4 MCL< O|ƚ = PEѕ ROP TCL@ WNaMA XHB YB [CL \CLE ^x H _G*I `q4  cB  dB  eH gK) hIZ ime  jm  K E x @  O? I JP r  M  EV R x L L o^  SƂ aN CL EG DF- OP CL CL CL CL CL CL CL `f Ng ef Gff FQ N CL CL CL CL CL CL CL ] CL CL CL N  CL  C  CL CL A^v CL CL CL OP$ I% I1& Nn CL* !Ge, "Z,c #OP. $P &CL 'CL *OP ,CL3 /n,4 0A36 3\7 \Q38 ]L9 `o,B: bp ; c|< d}3 eOP> fS? gF]8@ hEA iUd jOPD kDE lE`F mE>G nNv qb rhp t` ubD  x_ y~]  zla7  {kw  |s  ~uZ ! CL  CL CL ]!  CL r@3  I{ B  pX   r CL CL CL CL CL E GE PMf q  I7w  q  s  M:T  n9 D*| |&  u D$] y" up  B C~ Mu h6  un  ` ` ^ CL CL CL CL CL CL OP OP $CL (HRw )I4^ *I +I .i 1i}e I&}f ~" M Lsj N NCO PD,6P QD[vQ TV\R UPS VpPL T WF-V Xi+ X [E5Y \G![ ] \ ^]P[^ d_ zq ` @a CaHb FJ>c Cf CL CL CLg lf  CL CL CL CLm Fn }4o a4  CL CL CL CL CL CL CLw t >x Kky QR OP{ j | \} m~ ] C E  O ~ OP Xb | CL F2z HB G’ Qmu CLt CL s  s(  k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu K%P  zg Df FP  CL  "C' %CL POP  QD SCL TCL VEZ YCL \OP _r  `\s  cCL dCL eCL hL  iw jd k^ nB< pe ql\* rlL! s@l" tefg# v@$ wJ. % xK& yL%5' zLc( {@ }CL* G` CL- Cw OP CL0 { 2 F3 H<4 C! OP6 ] CL8 D CL: Bɀ CL< zu = FL CL CL@ NRA HB C, CL CLE yN H CI w".  B  B  Hؒ K) IL\ n  me  K E x @  Os I JP r  M   EV !Pzc #y@ $L %K:[ (o^  *Ty ,aN .CL 1EU 4DF- 6OP 8CL 9CL :CL ;CL CL ?CL B^c3 CRY Dc EG FF GN ICL JCL LCL MCL NCL OCL PCL Q] RCL SCL }CL ~N CL C CL CL D CL CL CL OP$ I% I& Iq CL* Gܜ, Znm OP. P CL CL OP CL3 n4 A36 \S37 N`8 N9 p: |; @Ff< } OP> Sm]? FV@ EA Uu OPD D2E FF E?G NY j3 p g c  _3 ~:  l  kw  r  uS[ ! CL  CL CL _=  CL rN  G ) E q3  W r  CL  CL  CL CL CL EM Ge R$' q  H  Ew4  Fz)B  GPf  Jo33 MD4q Q}:  Suv TDDK Wyo Xu  YEl ZEO ]Mu `h6  cuL  d_3 e^C3 f^ gCL iCL jCL kCL lCL mCL qOP sCL tCL wHG xI2 yIn {I ~h{ h{}e e)}f } M s N CgO DyP EQ VwLR PcS p^ T FV i7 X F^Y G R[ Աa\ XP^ cV}_ z ` @Ta Cb Fpc B CL CL  CLg l  CL CL CL CLm F#n ~o ar  CL CL  CL !CL #CL $CL %CLw (@x )J8Ry *T=q +OP{ .k | 1\$x} 2ouF~ 4] 7C 8E ;~Ü ~ >CL @XA | BCL EFE FDGFUuCLtCLs q  khs 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJ<  ~_!A6f#Df%CL 'Cu)CL,OP -Eo/CL0CL2E25CL8OP;s d]u fOPiCLjCLmL_ nzo`3p^FfsBLQuSHvT wSG!xz"yd3#zK3${J1%|Ka&}L('~Ld(@\CL*G} CL-COPCL0{H 2FF3H.24DԒCL6]CL8DVCL:BCL<z[ =GXCLCL@MkAHGBC9CLCLE{= HAIakV B B H$K)IL\nB n KEx@ OI oJPr LEVLvy%L-J0o^ 1T^k3[D5CL8E;DF-=OP?CL@CLACLCCLDCLECLFCLIYgJQKaLGMF34NN=qQCLRCLSCLTCLUCLVCLWCLX]YCL[CL\CL]N_CLbC<dCLeCLfD4KCLCLCLOP$I%I&L-oCL*G,ZOP.PjCLCLOPCL3nl4A36X337Mٙ8E9pъ:z;}L<zS3OP>S?F_@E5AU,dOPDDjEFFECGNhm33dvgc b~K ll k) r up !CL CLCL^'U CL rz  C E q3 B:* rCLCLCLCLCLEMHgPOqJ "I7w $vܹ %z 'N4p *p3-D^X} ZuXP[D\&^xH_u6 aDbDdMghE^ js3 k`3l`n^oCLpCLqCLrCLsCLuCLxOPzCL{CL~HOI6/IIii}eY}f} Mt7K NC@ODzPEZQV~RP|SpPL TFĒVi XF]'YFQ[߰\X"^c>_z `@aEzbE cBECLCLCLgl CLCLCLCLm"F#n&~)o'a4 )CL*CL+CL,CL-CL/CL0CLw3A(x4My5Q>6OP{9j |<[F}=m ~?]BCCEFr ~ICLKY/ |MCLPFI#QESG VKuXCLtYCLs\) qu kw 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJ BDG3CL D%CLOP CCLCLECLOPs ] CLCLCLLO }fca3B1<X^^!b3"Xl#|f$J;%K&L'LaS(@CL*G )CL-COP CL0 {H 2 F3H 4EwCL6]CL8A/CL:BCL< z =!GoLCLMCL@PMAQHWBRCTCLUCLEW| HY~I\x+ _B `B aH$bK)cIZen}[ fnB hKkEmxdn@ qOysItKwr yL|EV~Pz<M JPo^ TV bCLEDF-OPCLCLCLCLCLCLCL`gPgcVgG G G CLCLCLCLCLCLCL]CLCLCLN CLCCLCLFqCLCLCLOP$I:%I&Q.CL*H0,ZOP. P+"CL#CL&OP(CL3+n6Q4,A36/Y@70O81Cg94q|:6{@;7~3<8~99OP>:R?;Fc@OPD?D71E@FFAEF7GBN[Ed FjgGaId LaM~] Nmm Ok xr yu65 !}CL ~CLCL^a CLr @-SEq _r=CLCLCLCLCLEȗH4Jƭr Iٚ vܹ z N} rD}~ uf{DyDxRuZ E DZN5DhE^ nU `Y` ^CLCLCLCLCLCLOPCLCLHVI.IpJIzz}eM}f}Z MEs NGC;OIDZPJE<QMVCRNPNqSOp^ TPF-VQin XTFpYUFy[V \WZl^Ze _[z9 `\@!a_Cb`BcaBcCLdCLeCLghm  kCLlCLmCLnCLmqFnt~Poua wCLyCLzCL{CLCLCLCLw@{xNLyOpOP{j |\}mF~]BhE ~CLY |CLFXE>GBNRuCLtCLs} qu kR 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuJ) zS4}ٙCL DCL OP !B#CL$CL&EW)CL,OP/sl 0] 2OP4CL5CL8M 9~i:c;a>Bi@ZA`B`\*!CcL"l[l#my2$oJ?e%pK&qL'rLaS(s@uCL*wFzCL-|C~OPCL0{a 2F3H4ECL6]CL8AHCL:BnCL<z =HCLCL@MV$AHQBB/CLCLE~ H{PIi) B B HK)IL\n n}[ KExd@ OlIQkK$r LEVQzM Jo^ QSCLE``DF- OP CL4CL5CL6CL7CL8CL9CL<^=Xf?avg@_AY >BZDCLECLFCLGCLHCLICLKCLL]MCLNCLOCLQNRCLUCWCLXCLZDnQ]CL^CL_CLaOP$bIg%cI&fLiCL*lH,b,m[Q/nOP.oPEwCLCLOPCL3n:4A36Sf7I48Ay9r:y;}34<z4OP>Sg?FS<@EAUOPDCEF\FE@GNiah`C3dP ^tT~oP mJ k rk u ~ !CL CLCL^ CLrE |} E r  8 r CL CL CL CL CL Eǰ HO Ko r#  Hf  vܹ  z$  N}  r#3 D #~  &v9 'D| *x9 +u}  ,E -EV /N 2hE^  6ub"  7` ``3 a^ bCL cCL eCL fCL gCL hCL kOP mCL oCL rH\p sI$ tI0 uIŦ yiH |iH}e Za}f~W M s N CO DfP EQ VR PY#S @rT FV i X FRY F[ ϰ\ Z}^ eE_ zr ` Aֻa E5b Bfc C  CL CL CLg l  CL CL CL CLm G9n ~go a   CL CL CL CL CL CL CLw @aHx HRy P OP{ )j | +\B} -oy~ /] 2C,A 3E 6}R ~ 8CL ;Zq | =CL @FYt AE BGx FH(u HCLt ICL Ks  Lqu  Nkt 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu J?  B @ @$ CL  Eѕ CL OP  {  CL CL F/ CL OP t'  ]d=  OP CL CL M%  xə d `i B O34 Z Z ! w" j3# E9$ JB% K& K' L6( @+ CL* F CL- ~  CL CL0 z 2 Ff3 H 4 E CL6 ] CL8 At@ CL: B CL< z = G' CL CL@ MMA HGB BC3 CL CLE !@-SH "HI #b[  &B  'B  )H$ *K) +IZ Tn  Un  WK ZE \xd ]@  `O` bI- cL gr  iL lEV mLv ozN pM  qIE to^  uQ wPx yCL |EH DF- OP CL CL CL CL CL CL CL `&f Ng bg G  _ >  G  CL CL CL CL CL CL CL ] CL CL CL N  CL C CL CL AAh CL CL CL OP$ I% I& I CL* HG, [E OP. P% CL CL OP CL3 no4 A6 Q`7 AS38 @ 9 #rrl: %xl; &|s3< '{  (OP> )R?? *F9@ +EA ,T -OPD .CE /EF 0E32G 1N : 4hS3 6og 7e3 8d  ;b <~  =m  >k  @rN  AtY ! DCL  ECL FCL H]!  KCL Mrn  O{  PFR Qq  SfQ Tr7 VCL WCL CL CL CL E Ha N& r1  Hf  v  zr  NN  n3 D ~#  v Dq xĜ u  E# E@ N5 hE^  eww  _Y ^ ^ CL CL CL CL CL CL OP CL CL He I( I I gH gH}e SU} }f K~! M sj N CԀO DtP DQ VwR PuS AfT F{V ic X FY FQ[ HL\ IZ?^ LfJ_ Mz ` PCxPa QDb RBHc S} UCL VCL WCLg [md  ]CL ^CL _CL `CLm cHn f}o h`$  jCL kCL lCL mCL nCL oCL pCLw t@Qx uIQy vO# wOP{ zj"# | |\Ħ} }p q~ ] C F6R U ~ CL [jU | CL FT E G O&u CLt CL t9X  r  kO 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu J'6  w s sY CL  F CLOP A@CLCLG-aCLOP!sF "\N4 $OP&CL'CL*M7d +F,u4-pY0B2w3}G4}W !5tٚ"6_g#7Dy$8JE%9K&:K';K(<@2>CL*@FCCL-E}X HCLICL0Ky# 2uF3vH4wEޢyCL6{]|CL8~AW3CL:BcCL<z =H[CLCL@LwAHIdBCoCLCLE@HGkIE! B B HdK)IL\n n K@DzJ@ OsIŦLr LEVLvzюM IŦo^ QMyCLEDF-OPCLCLCLCLCLCLCL^PgavgG _ > G CL CL CL CL CLCLCL]CLCLCL=N9?CLADzCCLDCLFw ICLJCLKCLMOP$NI%OI&RGa@UCL*XH]X,Y[YZOP.[Ot]CL^CL`OPbCL3en@4gA6i]37jOl8kLl9nr˪:p{g;q} <ry34tCL>wZۂ?F@E|.ATQOPDCEEϣFE)<GMn4u|kpe a[~ m4 k r# t !CL CLCL_ CLr }I BEq^ Ɋms CLCLCLCLCLEHqLQ,6r1 I v( zcz  O=0  nfDK~OI wLD$x9v DDN_!h $sU %a&bp(^)CL*CL+CL,CL.CL/CL2OP4CL5CL9Hj:I';HF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuSJ TwpUsVs XCL ZG )]CL`OP a@UcCLdCLfGiCLOPs \ OPCLCLLH GuipfB8a*h8Rhu!^"[#CY$JH|%K_&K?'KV(@4CL*FCL-},l CLCL0y]w 2Fκ3H74ECL6]CL8A^vCL:BCL<z7 =HCLCL@L AHK5B@ӷ CL CLE A2HCIcZ B B H$K82IL\oK oK K@Dz$@ !Op#I=s$L'r )L-EV.RQ0{{1M 2IM]o^ ^Q`M_bCLeEhDF-jOPlCLnCLoCLpCLqCLrCLsCLv`LwNgxavgz_{W|X~CLCLCLCLCLCLCL]CLCLCLNCLDVCLCLvh. CLCLCLOP$IZ%I&RQ;CL*Hn,[ OP.OfCLCLOPCL3nE@4A6W`7Qs48N&f9sJ :@f;B<@CL>W?F$@EjA_aCLDCEEFE*#GMOvf$~%t#4&f )\(0*~ +n -k/ .r /tY !2CL 3CL4CL6]< 9CLBk!?rs ABs? DCLFCLGCLHCLICLLEMH8,NQ><RrN UI WvI Xz? YLz \n_E^~@ G0cxv- E DYMhE^ t" `^y^CLCLCLCLCLCLCLCLCLHz^I,3H\Ih =h =}eAQ}f:DR Ms NCODOPDQV{RPSq^ TF$jVh X F>Y F^[ \ ZD^b_z `C+jaC bChcBCLCLCLgm2  CL!CL"CL#CLm&HCnR~oS`8= UCLVCLWCLXCLYCL[CL\CLw_x`LyaQ=qbOP{ei |g\}in~k]nDoF`r} ~tCLwZq |yCL|F^}EK~GJͤuCLtCLt% q kn 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuI# {x0w\CL GCLOP DCLCLQCLCLt>u \ OPCLCLL J~g|wS3BT[b(b!Q3"F3# jY$!JK5%"Ku&#KXb'$K=(%@'CL*)Fq,CL-.}T 1CL2CL04y{ 26F(37H48F%:CL6;]AlACL:CBFCL<Hz =IHGLCLMCL@PLAQHPBRC |CL}CLEB?HAIm? B B HK82IL\B B K@Dze@OI"K1Cr M EVE{HM I"o^ QMICLEADF-OPCLCLCLCLCLCLCLdFgYgk3AG(GCLCLCLCLCLCLCL]CLCLCLN9CLDCLCLwQ?  CL CL CLOP$J%I&OCL*H~,gOOP.OoECLFCLGCLHCL3Kn8t4MA6OZg7PU 8QJy9TtY*:VC3;WD<XB,ZCL>\VL?]F){@^Eo{A_WyaCLDcEsZEeEƐFfEJGgX4ktl| mq3nhJ qb5r~ sn% tk/ vq wtj. !zCL {CL|CL~_+ CLsc }~ BNr@3 srCLCLCLCLCLEGvQPr]\ I w {= P mfEu~l^ zr XxvK A2AҩNhb  tٚ a)`C3^CLCLCLCLCLCLCLCLCLH;I. H"!Iľ%h(h}eXa}fG MCs NEC OFDsPGDֿQVRP/Sqes TF+Vhԁ X FGY F([ \ [^d_zV `BaB\bBRcBCLCLCLgmM  CL!CL"CL#CLm&G-n*~#4o+_R -CL.CL/CL0CL1CL2CL4CLw7}fgx8Kzy9OaH:OP{ei |g] }ilӪ~k]nCYoFzrFv ~tCLwX[ |yCL|FW}E֨~GO"uCLtCLtB qP k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuIY JJ1G(CL ECLCL ԺeCLCLB)CLCLz ] V CLCLCLM& KC3|v)BkEr>rrR!v "f`#Ks3$JM%KX&K/q'J(@HCL*F[GCL-,|& /CL0CL02y 24F35H&46G8CL69]:CL8`W`?aF[g@bEAcX7eCLDgA$ZEiFFjEGkWAQntfgo| qrLrim u_tv~ wnQ xk yq zt[ !~CL CLCL]K CLsc y Cq sCLCLCLCLCLEJGPrk H v z L nc3E~l^ xt R"xyvh. A:%ANl!hE^ l" `3^3^CLCLCLCLCLCLCLCLCL"HŨ#I7$I-%I*(h +h }e]Y}f MFt7K NHCVOJDt<PKEQNVROPSPqt TQFAVRi XUG XYVFJ[W}\X[^[e;_z `AaET{bGcA0CLCLCLgmw CLCLCLCLmG n~po_J CLCLCLCLCLCLCLwrRxK\yQLOP{i |]A}pA~]CF_n ~CLW |CLFSEGwFuCLtCLt q J kV 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuI* KLHC3CL Ci(CLCL xMCL CL"AOMCLNCLP|& Q\s SOPVCLWCLZMan [`ɚ\E]Ag`B{bgqcndnH!euL"f\ff#gI $hJ:%iL&jJ'kJ(l@nCL*pF/sCL-u|j xCLyCL0{xH 2}G W3~H:4GCL6]CL8A+CL:BMCL<y =HzxCLCL@M AHFB@ CLCLECH{zI[g] EVEVB B B EVEVB EzJ@ OIKr M EVLv|_M IWd] QP0CL"EA%DF-'OP)CL*CL+CL,CL.CL/CL0CL3c34Pg5ef6eG7_8_;CLCL?CL@CLACLB]CCLECLFCLGNICLLDNCLOCLxw4 {CL|CL}CL~CL$J%I%H&HCL*I9,iOP.PCLCLCLCL3n&4A36Z37YS38N39w:D;G,<C`CL>Xί?F@EAYCLD}h EFbFEFGXP?q,xən@i`< bV~oP nn k/ q t>u !CL CLCL`b CLs y Fr# lsCLCLCLCLCLE$G R{ rk H v z RJ o33AFE~ F~] GFqHxIvv JBKCNNQhE^ Tj Ua3V[W^XCLZCL[CL\CL]CL^CL_CLaCLbCLeHNfI:gIiIlh oh }ea}fN$ Ms NCODPETQVRPRSqV TK2Vr_ XGYF[²`-\[r^gEr_x8 `AaQbRBcPHCLCLCLgm CLCLCLCLmGn ~9o _W  CL CLCLCLCLCLCLw} >xMffySOP{vN |]!}qYc~]"C#Fj@&U ~)CL+X |-CL0FI#1E2G6MXu8CLt9CL;t =qu >khs 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu|J }O)~OJ#3CL CCLCL OCLCLAHCLCL}; [\ OPCLCLN JٙAzIBiǯpp\!~"bS4#L $J%L1 &K#'J(@CL*F7 CL-|j CLCL0w 2G'3HM4GkCL6]CL8A:%CL:BMCL<y{ =HCLCL@MAHIdB@tCLCLE D4KH GI b΋ 6EV7EV8B 9n :oK <@X=EV>oK ?EA{CB@ EO/GI3HK?Kr MM PEVRPUT|9UM VI=Web3 ZS Y? FX@ F@A X[ CLD } E FzF F(G Y* rf z o i  "b $~  %n}[  &kd  'q  (t>u ! +CL  ,CL .CL 0]K  3CL 5s  6y  7FL `rz  bAXd  ds fCL gCL hCL iCL jCL nE oHJM pNu srz  vIL  xv  yz?  zL"  ~q F?N ~  {H  ~  x9 vt  E@ El NB hE^  js3  `L [ ^ CL CL CL CL CL CL CL CL CL H I9 I g J j y y}e bY>}f;S M sj N CO BbhP DZQ WR OS q9 T JV o X G$Y F[  \ (Z9^ +bV_ ,s ` .Aa /SHb 0Sffc 1R34 4CL 5CL 6CLg 9m  ;CL F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu J  XA X Of CL  D% CL CL  ţɄ CL CL Ae CL CL }  [Ԣ  OP CL CL N  Jp A( } B [ b4 c! F3" v# P$ I٢% LH& K' J( @? CL* F7  CL- |`  !CL "CL0 $wB 2 &G=s3 'HW4 (G *CL6 +] TCL8 VA YCL: [BM ^CL< `y@ = aH dCL eCL@ hLA iHDB kB mCL nCLE pDH qFMI rm`  uEV vEV wn`*  xmv  yEV zEV {mv  }me  ~E {G @  P  Ia K  r  M  @  Qe }( M  I c׷  S MZI? NG9@ OFAA PPa QCLD St/ E UG jF VF]XG WYx {&f @h w#3 jt | CL FL Eѕ G Iu CLt CLtF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu)K!X *^.g+]f,V.CL 0~ 3CL4CL 5Cp6CL7CL9A2CL?CLACLBCLCCLDCLGavgHa3IlgJK\)KNLLOCLPCLQCLRCLSCLTCLUCLV^WCLYCLZCL[N]CL`D2bCLcCLex gCLhCLiCLjCL$mK2%nI&qK3sCL*vJ,wh$OP.QnCLCLCLCL3mq4A6 7jY8gf9{ $:G ;K3<GCL>W{?G@FbAE{SCLDg EGH|FFdGVEBEd@kR cV}~oP n$ l qHF s !CL CLCL\ CL sF  z7  C  r1 F tspCLCLCLCLCLEHz^SΓ r #I %vK &zF^ 'L *o9-FW1~Ü 2@n3B4xy5v 6E@7E]:M=hE^ hgD i`jXk^lCLnCLoCLpCLqCLrCLtCLuCLvCLyH1zI2{I:}JSci{i{}e[|&}f Ms NC;OA)PE-QYRNuSo+ TH>VkH XGYF[ڴk}\a^d&_pq `A)waQbRfcM!HCLCLCLgm CLCLCLCLmGKn4o_fg CLCLCLCLCLCLCLwAuxR#yYff1OP{4m"# |6^}7nX~9^F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuK afbfgZCL tY CLCL +CLCLACLCLjD [' CLCLCLM MٙEC4Cڌ[\`&g_![3"Rf#wy$Ig%LlA&Jc'Jb(@2CL*F:CL-{a CLCL0w 2Ged3Hfj4FfCL6]CL8 A$Z CL:BCL<y@ =HCLCL@MaAHDB@ot CL!CLE#EH$AI%Z (ixB )ixB *EV+EV-EV.j' /ixB 0EV1lZ 3{ey^EV_OaIbK()eoAhM iBvlLvn~4oM pIwqdQj tQvP0xCL{E~DF-OPCLCLCLCLCLCLCLavg`lg`_cRCLCLCLCLCLCLCL^CLCLCLN UCLDCLCLvt CLCLCLCL$K%Ip&JCL*K`,jlrCL.^`CLCLCLCL3n4A6|Ff7|348x99|:$GY;%Kg<&G (CL>+Wz?,Gc@-FVA.E/CLD1m E3G[F4F$8G5W[19J:I3;D#3F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuL `fa$Y4CL } CLCL 汧CLCLDCLCLp Z( CLCLCL!M "J6g#@vf$'E)]*a{+aq!,R "-H4#.h$/I%0LaS&1Jf'2JJ(3A15CL*7F:CL-<{ ?CL@CL0Bw_ 2DG}3EHj4FG,HCL6I]KCL8MAOCL:RB |CL<~y =I :CLCL@MYAHMBAPCLCLEEOH?Iq? B B B B B B B B B{EVOIS<K oM EVR.M Id] SnY'?oGݔ@pFS<AqIPrE H vt z[ Q rF@ 7 } NxvI D̘DPhS aff  `f!W"^#CL$CL&CL'CL(CL)CL*CL+CL-CL0H1I g2Ii3J/6z7z}e@~}fK M s NCOBPEQZ'RNBRS~l^ TGzVjC XGYF[5\`[^"e)_#oG `$A33a&Rb'U)c(Pu*CL,CL-CLg0m 2CL3CL4CL5CLm9G+nd0oe^ gCLhCLiCLjCLlCLmCLnCLwqCqxrR34ysW\tOP{wk |z]I}{rz~}^C;kEժ7 ~CLX(\ |CLFLEGLSuCLtCLtN q+ k+ 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuLΰ g)g `CL B}CLCL 66CLCLMCLCLpPL Z\ CLCLCLM ]xjV 3F%-^fb,a!-d3".`#/Bɚ$1I=%2L&3J'4J(5@7CL*9G{ ACLBCL0Dx 2FG3GHs4HG5XJCL6K]LCL8NAlQCL:SB VCL<Xx =YI(-\CL]CL@`M)\AaHVBbC dCLeCLEgEOH}BIw]? jb ixB EVB @Xk_ ixB EVB{eyEVOHKmr1#M kK Km@LI`+ QBMCLEDF-CLCLCLCLCLCLCLCLlavgvgMRVOxRCLCLCLCLCLCLCL ^ CL CL CLNR%CLD CLCLzr CLCLCLCL$ L%!I&#L)&CL*)L&,*U,CL..DBXCLYCLZCL[CL3^m4`A6c{7du8ep39g*4:iH<;jK`<kFmCL>pW!?qH@rF`AsC&fuCLDwi ExGkFyEGzW'p~AfEA\p c 2 n l& q s !CL CLCLZ CLt/ |& C:srb ŋxCLCLCLCLCLF/H0U+rE GD { ~ N oGn' K C.xwl DDPhS d@ `6fW!^"CL#CL$CL%CL&CL(CL)CL*CL+CL.H0I3v1I}2J:5i{8i{}euҮ}f MVsM NXCOZAP[EL5QZRNgSA:%TG9Vi+ XG&YFW[\Z(^b_o9 `BۙaSbT cRxRCLCLCLgm CLCLCLCLmGnC4o^ CLCLCLCLCLCLCLwDxQyWOP{k |]4}n_~^CNFK7 ~CLY[ |CLF=ZE]GMCuCLt CL t  qO  j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuLMf1 Md3Nd$O]QCL S~z VCLWCL XYCLZCL\D_CL`CLbfq cY fCLgCLhCLkO l[mRK3nPqGsYt]u] !vSٚ"wIY#xjY$yIW%zL&|K6'}J{a(~@CL*FݱCL-{a CLCL0y 2GM3H4GDCL6]CL8AlCL:CUCL<x =HCLCL@LAHeBB}CLCLEEGHE-IW< ixB ixB EVEVEVixB ixB EVk[ {eyEVP IK&XseL jD !R"A+$L%I{.(o^ )Q+BM-CL0E3DF-5CL6CL7CL8CL9CL:CL;CL=CL@lAaBsCpDx=qEqHCLICLJCLKCLLCLMCLNCLO^xCLzCL{CL|N7o~CLDCLCLz$ CLCLCLCL$K%J6 &ICL*L,WB CL.I\CLCLCLCL3m44A6Hf7A38y9@+:I3;L<GCL>Xy?H()@F_ADCLDmm EGrKFElGX"EIc3CsG cy o l& pX srb !CL CLCL\Ǯ CLuZ }T Cpi sF  NWS  y-GCLCLCLCLCLF8H3@UECr FF Lv Mz OS| Rp3UFX^ Y{ Zc [y&]w ^DX_DaQOdhS gcw h`iUfk^lCLmCLnCLoCLqCLrCLsCLtCLuCLyHzI9{IJ77zz}e a}f @ Msj NC"OAPE.{Q[7URN ESATGV Viz XG"YFܒ[״5\\ʫ^b_oc `D)waR\b Sٚc O34 CL CLCLgnL CLCLCLCLmHngo^Ӆ CL!CL"CL#CL$CL%CL&CLw)C\x+S4y,UB-OP{0k |2^}3r~5^9D!:F=~OI ~?CLAZq |CCLoF*QpE`qGtHuvCLtxCLztÖ {q+ |j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuI e d{3d]HCL } CLCL CLCLB}CLCLmh Z( CLCLCLO a<XVGW>[Y[f!UY"I#s$Inx%L&K&X'Ju(A'CL*FݱCL-|R8 CLCL0x 2G^3He4GymCL6]CL8~Ü  CL: CL!6CL<8x =9Hs<qCLCLCLCLCLCLCL^CLCLCLNH CLDCLCL{ CLCLCLCL$Kİ%I& O3 CL* Kř, ` CL. X;j CL CL CL CL3 m@4 AH6 P37 M38 G9 @X: KVf; L4< !H3 #CL> %W @? &HI@ 'FfLA *z  -CLD /t E 0GrKF 1EG 2W 6D 7Gf `B3 at  e^tT f@' go,|  hlD  iq  js ! mCL  oCL pCL rc>k  uCL ww4  x{  yCL! zrN  }[> ~z! CL CL CL CL CL F6 H! PD rn  G*  vR  z?  W  r9 F @ |}  ^  x wB  D DZ RǴ hS  d  ` V3 ^ CL CL CL CL CL CL CL CL CL H I; I J y y}e }jO}fz{ M 3t N 5CO 6BP 8Eh{Q ;[zR GV ?jC X AGIY CF[[ D\ E[^ Hc_ Io ` KCa LXfb NUc OS8R QCL RCL SCLg Un,  WCL YCL ZCL [CLm ^Hn aVgo b_Ql  CL CL CL CL CL CL CLw Dx Ry Y OP{ lDD | ]} p)z~ ^ DDm F1 {Z ~ CL [>t | CL F( Fw GJ Ou CLt CL t  q1'  j# 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu Nr  eD e#4 `3 CL  Bk! CL CL   CL CL A: CL CL t4  ['  CL CL CL PC]  N9 !E "B! %H< '\ > (`\ )_H! *``" +U3# T~$ UI~% VL& WK/q' XJy( ZAQc [CL* ]G-a `CL- b|`  eCL fCL0 hy{ 2 jG3 kH4 mG oCL6 p] qCL8 sAt@ vCL: xCw {CL< }xWc = ~Hm CL CL@ MA H{aB @  CL CLE E]H CκI p:  B  B  B  oK  EV B  ixB  B  E {ey @  Pv H K= t JP ju  Px B_v L Ii o^  Q Eʘ CL E DF- CL CL CL CL CL CL CL CL tf lg   MR VR !OxR #CL $CL %CL 'CL (CL )CL *CL +^ ,CL -CL .CL 0NB 2CL 4D{ 6CL 7CL 9|`  CL ?CL$ BL% CIE& EPMT HCL* KLE, LX NCL. QK RCL SCL TCL UCL3 m4 A6 N37 H08 E 9 A>T: J,; L < Gf CL> XvT? Hg@ FvA J3% CLD qˈ E GdF EܜG X F  I D u_  b @n oI  lR  q  s ! CL  CL CL _  CL wQ?  y  C4 r  N  z CL CL CL CL CL F5 H@ W rn  G  z  ~  RJ  m3 F @* |  @`2 x w_  D DX RT hb  `  ` RY ^ CL CL CL CL ICL JCL KCL LCL MCL QH RI@+ SI@ TI^ Whp Zhp}e ^=}f r M ytTg N {CJO |B!P }ETQ [R MŇS p3 T GpV j X GY G[ l\ [Q^ dQ_ p* ` Buda Vb W\)c U# CL CL CLg nS  CL CL CL CLm Hn ~4o `F  CL CL CL CL CL CL CLw Gx X34y ]=q OP{ l | ]} m̄~^D F_nx ~CL\q |CL!F1"F3l#G%Fu'CLt(CL*t{ +q -k7L 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuCO[ DhDEfFalHCL JxP uCLvCL w5xCLyCL{A~CLCLk [ CLCLCLP JD@~HZ\Ra4`q!i"_ٚ#F$I%LU&KWy'Jn(A+CL*DgCL-|ƚ CLCL0y#; 2H:3Hn4GCL6]CL8A+CL:CCL<x0 =HCLCL@M*AHbBB]CLCLEEHBrIr+ ixB ixB EVEV@JeixB [-F EVl { EV OILucX?HZ@FAFCLDl~k EGyFEUGX'K D HCgvt c@eoXB lo q s !CL CLCL Zƥ #CL%w &y 'BM(r *V,{ .CL/CL0CL1CL2CL5F:7H8W(;r >G33 hvܹ izu jP moqFαr@&u|ƚ v@uwyxw| yDVzD}R8Thb d3 a3V3^CLCLCLCLCLCLCLCLCLI I@+IIii}e*GP}f*~m MtTg NC&OBkPEQ\GVRMSo THVk XGYG&[4T\]^f)_pr `AaUbX cP{CLCLCLgn0 1CL2CL3CL4CLm7Gn:Yo;`( =CL?CL@CLACLBCLCCLDCLwGPxIUyJ\KOP{NmDD |P]?}Qo~S^WCĢXF5[~@ ~]CL_[ |bCLeFEfFfgGjKuCLtCLsB qz kO 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuO\ eea33CL y CLCL xCLCLA:CLCLh ^ CLCLCLQg ]gTRIY)]&f]c!i`"_6f#F $I% L & Kx;' J~( A CL*E@CL-}T CLCL0z 2HH|3I4 G"CL6#]$CL8&A)CL:+C.CL<0x =1H\CL]CL@`M/$AaHbBd^ gCLhCLEjEHl@PIoXGZ rll sl tEVuB vB wn yl8 zB {B}|EVOIVK:[t-K8kQ P ALI}g+ Y]EʘCLECvDF-CLCLCLCLCLCLCLCLt6glgvf_b_CLCLCLCLCLCLCL^CLCLCLN@CLD CLCLu65 CLCLCLCL$Ko%J&&&K)CL*,Ly,-S.CL.0H3CL4CL5CL6CL39m΄4;A6=X 7>V38?Pٚ9BA+:DL;ELP<FK0HCL>KXv?LHd@MFANG!PCLDQsrb ESGFTElGUXyZEx[H\C^w\ _@eof la7 q s !CL CLCL] CLw4  O Bs T Qs | CLCLCLCLCLF2fGlVr G { ~ Ti o3F!@-S}I @QyCw DVDRhq7 ` `fTY^CLCLCLCLCLCLCL CL CLI/IFI}I,vfvf}ebV}f~ M[s N]CO^B}P_E~Qc\RdMOSeof TfH!Vgkr XiG XYjGH[ll\m[.^pc#_qq9 `sASatWbuY}qcwQzyCLzCL{CLg}nA CLCLCLCLmGn4oa  CLCLCLCLCLCLCLwLx\y].OP{m |^}lج~^CyF~ ~CLZM |CLFXFWGN]2uCLtCLsL qO j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu(O )e3*d3+a-CL /@r2CL3CL 4W'5CL6CL8B";CLr ?_ BCLCCLDCLGQ? HMpIDIJB>gMIOY4P]ǮQ]E!Ra"S[<#|E$}I%~L&KMw'J(A CL*FiCL-}: CLCL0{ 2Hu3I5G4GxCL6]CL8ACL:DCL<x =HCLCL@M,AAHBCZCLCLEF!OH}I] EVEVB B B EVEVB E|@ PHK)trJkh LvAKAI^!g+ Y+ BM CLEb/DF-CLCLCLCLCLCLCLCLFt6gGlgIvfJtRKx LtRNCLOCLPCLQCLRCLSCLUCLV^WCLXCLYCL[N; \CL_DaCLbCLdwB gCLhCLiCLjCL$lK%mJ &pPsCL*vLWN,wR\yCL.zHk}CL~CLCLCL3m4A6U7T8J,9BG]:MI;L<K#3CL>Y>?H`@FAGnCLDx EGyFE GXo$EgHDwp a@]o l~k q s !CL CLCLc/ CL u  zr BUZs T|UCLCLCLCLCLFBGS!"r %FD 'wQ? ({ *W_ -q 0Fa3@4| 5@A6y"8w 9D:DF^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuP e4faCL ,~] /CL0CL 13CL4CL6B\9CL:CLO_!PT"QP#R|l$SI%TMT&UK?'VJ(WA;YCL*[F^CL-`}I cCLdCL0fv 2H3Ii4G8CL6]CL8~ CL:D- CL<pX =G`CLCL@AOAH B@p.CLCLEM(H\Ij j i& EVB @l3 ixB B B} @ OI~K)ucJPj OBNAפLIi g+  Y Cp CLELDF-CLCLCLCLCLCLCLCL t6g!k@"vf#MH$MR%O 'CL)CL*CL+CL,CL-CL.CL/^XCLZCL[CL\Ng^CLaDcCLdCLey{ hCLiCLjCLkCL$nL4%oI&rKx`tCL*wLD-,xVRzCL.|HVFCLCLCLCL3m4AH6O 7L8Df9B4:Lfg;Kg<IgCL>X?I @FAqV CLDk. EGFF"iGXHYFKəE0x( cS o lo p- srb !CL CLCL`' CLs zT A"t/ IP |sCLCLCLCLCL FI"G #UZ&s )G +wna ,{in -S 1n4GC7: 8} 9@n:y;w D@PcCh F^DD G^fHR3I^KCLLCLMCLNCLOCLPCLRCLSCLTCLWIy^XIAZI}[Iskk}e\}f} Mt NCOAPEQ]KRMSof TH|VlH XGyYG?[ \\ޔ^c_q `AaYٚbY >cQ\CLCLCLgn CLCLCLCLmG Bnoa CLCLCLCLCLCLCLw LaHx V(ycOP{n |[2}oR<~^CJE,w4 ~!CLL\ 4 |NCLQFf%RFQSG1WO#uYCLtZCL\rk ]p _k 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuuP ve6gwe3xbzCL |t CLCL &{CLCLBCLCLgj `> CLCLCLQv L{3C3A,J8W[{[)!u4"e#Pٚ$I:%M;'&KEF'J(ACL*GCCL-}h CLCL0y@ 2He3I4H*CL6]~CL8AҩCL:D_CL<y# =I6CLCL@"MMzA#IB$@k&CL(CLE*F(H+I?I0gn; 3ixB 4ixB 5EV6EV7EV8ixB 9ixB ;EV >} ?@ BPDIEK6HuJKTMlR NPstOEzL{I~~g+ YBECLESDF-CLCLCLCLCLCLCLCLt6glgvf_b_CLCLCLCLCLCLCL^CLCLCLNZCLDaCLCLx CLCLCLCL$K%I+&JSCL*LD-,_CL.H@CLCLCLCL3m44AH6MS37L8Hɚ9B:J9;L3<G3 CL> Y ? I+@ FzAo+ CLDl EGcF@E GAY(wDE3EHFC3HySy KbCLg@o6 BCLlCLmCLnCLmqFnt~oua wCLxCLzCL{CL|CL}CL~CLwP(xUy` OP{oUU |\}oj~^C.jEáy@Y ~CL\ |CLFkF:GG uCLtCLr1 p j 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuQ^ dTfga3CL |oQ CLCL ;CLCLBrdCLCLm7 b CLCLCL Q  K4B&f5@$8J6:U;Yf3#?Qg$@I%AM06&BK0Z'DJ(EAvmGCL*IGgRKCL-M~OI PCLQCL0SyN 2UI3VIϥ4XHJYCL6[]|\CL8^A:aCL:cDVfCL<hz)B =iJwlCLmCL@MvAIVB@qCLCLEFݱHDmI]# B B B B B B B B B} @ P I$K<-uK)k LvE^K6IpJg+ YBMCLEDF-CLCLCLCL CL CL CL CL }3 r vf _ b _ CL CL CL CL CL CL CL ^ CL CL CL Nj CL DV !CL "CL $y  'CL (CL )CL *CL$ -Ko% .J & 0QԮ 3CL* 6Lf, 7X5 aCL. cHa eCL fCL gCL hCL3 kms4 mA6 pV7 qU)8 rQL9 uC9: vN\; wP< xL zCL> }WUq? ~I<@ FA J CLD u' E GxF EuG WH Dg G C y;  ` !  o  l~k  p  s ! CL  CL CL \o  CL s  z  AL t  Sn  | CL CL CL CL CL F6 G R s)~  GU  w  {H  T3  r G:   }  @r y% wS  D-  DJRhr _ٚ ^R^CLCLCLCLCLCLCLCLCLIIFIrInxipip}e f}f| M Ttq N VCO WBP XFRQ \]ϼR ]MŇS ^^ T _HשV `l X bG,Y cGv[ \ ^V ^ b_ r ` Aa [:b ZLc T CL CL CLg o  CL CL CL CLm Gn c4o bY  CL CL CL CL CL CL CLw RQx Yy aaH OP{ owx | [*} nwl~ ^ C3y E }T ~ CL ]d | CL Fu Fȯ G K{u CLt CL r8R  pk  jm 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu $Q*  %b3 &c '_S3 )CL  +Fݱ VCL WCL  X` YCL ZCL \C/ _CL `CL cv(  fc  lCL nCL pCL uQm  wRf yH3 |Ef J Y}q \H ]! f" YS3# E`$ I@% M=& K' J( B CL* HU CL- ~'  CL CL0 z 2 IN_3 J4 Hr CL6 ] CL8 B CL: D CL< z = IiN CL CL@ MJA IhB @΢ CL CLE "G )H (~I ,u  :EV ;B  >B  @B  AEV BEV CixB  DB  EE H}u I@  LP \Y6? ]IU{@ ^F1A _Gm aCLD crz E eGF fEG gY iE jHf lD, my  p^ q  rof  sl  uph  vs ! yCL  zCL {CL }_+  CL tM  z  B+ t  @n }y CL CL CL CL CL F, Gt Y_ s8  F  x#  | z  W  n G_ U    AO y = wS  C/ Cp R¨ h  _UU  ^ Q, ^ CL CLCLCLCLCLCLCLCLIIKICIm"s\)%s\)}e V`}f | MItb NKC OtBPuEQx^*4RyMS{AOT|IwV}mU XG:mYH[nR\WP^b_s `CiaZbZcSnCLCLCLgo CLCLCLCLmHn~goc CLCLCLCLCLCLCLwN xUaHyaOP{q |[~}n~^CF\~ ~CL_ |CLFXG_GoQ<_uCLtCLr q jF 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuCL?CLhCLiCLjCLlCLm^nCLoCLpCLrNgsCLvCxCLyCL{wt ~CLCLCLCL$L?%I &GCL*Lu,HJCL.CCLCLCLCL3m4A6Uf7W8Uc39C:J`;M<L<CL>X%?Iw0@FAs8 CLDl3 EGFFGX"FJEs3zr _ o۔ l ph s)~ !CL CLCLex CLt | CUu6 Q^ ~BCLCL0CL2CL3CL6F07G$8W;sF >FUU @x B| CXz Fp3IGL' M NAAhPy =Qw RCaSCuURXh [\D \^^Of_^`CLaCLbCLcCLeCLfCLgCLhCLiCLIAIFIIoayy}eb0}f|K Mtb NCOBbPF:Q^ORM"Ss TIVn XGCvYH][ʲ`-\`^eS_tq `DFaZfbZcTcCLCLCLgo CLCLCL CLm Hn~goc CLCLCLCLCLCLCLwL34xXyb OP{!q, |"Zk}#kb~&^)DJ4*F-s)~ ~/CL1^ |\CL_F`G;aGndG:ugCLthCLjq kq+ lk 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu}L d<e`CL tU CLCL űCLCLC'CLCLh \< CLCLCLjQGFK^bb!pg"bf#J$Im%Ms&K6'J9(A=CL*ECL-)b CLCL0t[ 2I:3J4HVCL6]CL8},l CL:Ed&CL<(rz =)Eѕ,CL-CL@/IA1IIB2AG4CL5CLE8OWhH:eI J} K@ NPePI^!QLT} 8VK1CYm [O\EL^M _Ig+ QBMCLE?DF-CLCLCLCLCLCLCLCLAqS4vfLJ>OYM{CLCLCLCLCLCLCL^CLCLCLNoCLDCLCLu CLCLCLCL$L,%IӨ&Q9CL*Ls,aNNCL.GQCLCLCLCL3m)4AH6 \47 W 8 V9D_:O ;P3<LCL>Xy?I@F*Al CLD!h E#GF$EG%XNPFgRI^fSE!Vz WbWX@Yo+ Zl [p ]s8 !`CL aCLbCLd_+ gCLiu ~ j|& lCL!mu nz͟p~rCLsCLtCLvCLwCLzFA{G|PsU: Ew y#; } S rG ~ AyVwt CCSh ]D ^ɚQ,^CLCLCLCLCLCLCLCLCLJ;IGnI(Iryy}en{1}fj{ M&t N(CO)BDuP*F#{Q-^R.MDS/p3 T0J;V2ogf X4GGY5H[6\7Z^:b%_C+ja?g*b@f cAaCCLDCLECLgHp JCLKCLLCLMCLmPHEnS~o}dR CLCLCLCLCLCLCLwJxTy\OP{rG |[6Y}jg~^D0Fp| ~CL_i |CLFDGmG̶MuCLtCLp pk kR 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDuO cgbk3CL @CLCL CLCLD- CLCLf f,  CL CL CLRG cgYVK[]cgaQ!q@"`#DK0$EIw%FMf&HKo'IJ(JASLCL*NEQCL-S UCLVCL0XuD 2ZI3[JK4]H_CL6`]aCL8c} fCL:hEkCL<mr =nF7 qCLrCL@uoAvJBwA%yCLzCLE}KHaIof ixB ixB EVEVEVj' ixB EVl> }@ PWIK?} 8JPm LvELLIWg+ QBMCLEPFCLCLCLCLCLCLCLCLvfu|AMRV}qOxRCLCLCLCLCLCLCL^CL CL!CL#Ne$CL'D)CL*CL,u' /CL0CL1CL2CL$4Kd%5I&8M;CL*>L|,?YH@CL.BF>KECLFCLGCL#CL3#m 4#A6# Wf7# R 8# QL9#D:#Li;#N)<#J33#CL>#YW%?#IB@#FA#U #CLD#!m E##GF#$EMG#%XӶ#(B!#*D3#+A#3#.{%, #/a3#0@BV#1pY #2l8 #4p #5s T !#8CL #9CL#:CL#dZ #gCL#iuS[ #kzF^ #lC#mu} #nO #p~#rCL#sCL#uCL#vCL#wCL#zFI#{GF#|R#srb #F7w #~ #U #Q #rٚ#He#@#@+#Bh#yV#x #C{#N#U #hJ #\] #_3#O#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#J. #IP#I#I#y33#y33}e#nc}fz M#t N#CDO#{e P#FhRQ#-`"R#.MS#/pY T#1DCV#2cm X#4GLY#5Hy[#6C\#7R^#:c_#Bv]a#?Y0b#@Wc#AS#CCL#DCL#FCLg#Ho #JCL#KCL#LCL#MCLm#PGܜn#S)o#Ue#A #WCL#XCL#YCL#ZCL#[CL#\CL#^CLw#aP{x#bW>y#c]#dOP{#ge |#Z<}#m.~#^#C#FD#| ~#CL#_i |#CL#F`#Gw#G#Ku#CLt#CL#p_; #qt #khs 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu#~ #fnf#f #a#CL # #CL#CL ##CL#CL#C=#CL#CL#h #]d= #CL#CL#CL#!hk#%NL#&D4#(A#*L2#,[34#-_#/^!#Xp "#Y^##ZF $#[I\O%#\MI&#]K١'#^K(#_BN#aCL*#cE#fCL-#h^ #kCL#lCL0#nt 2#pJ"y3#qJ4#rHm#tCL6#u]#vCL8#x} #{CL:#}EV#CL<#r+ =#E#CL#CL@#[ZA#J?B#A #CL#CLE#Hs<H#mEeI#Ww #ixB #ixB #EV#EV#E*#jD #\Rp #EV#n #} #@ #P^#I#K1C#} 8#JP#n #Lv#G#L#I #g+ #Q#C|#CL#ECv#E#CL#CL#CL#CL#CL#CL#CL#CL#!vf##v#$B#%OxR#&VR#'VR#)CL#*CL#+CL#,CL#-CL#/CL#0CL#1^#2CL#3CL#4CL#6Ny #8CL#:D##XK8?#I@#FBA#EH#CLD#lo E#GF#E\G#X #D#G~f#Cf#{f #]#@0#p #l8 #p< #r !#CL #CL#CL#\ #CL#t #x #B#v4 #cJ#~#CL#CL#CL#CL#CL#F9#G#VT#s #FUU #z$ #~OI #Th # o# G#@ >#A#B#yV#x# #Bc#C#U`#h #V # ^3#"O3##^#LCL#MCL#OCL#PCL#QCL#RCL#SCL#UCL#VCL#YJ^K#ZIW#[I#\I#`j33#cj33}e#C)}f#z$ M#tF N#CnO#@P#FHqQ#_bR#MS#pY T#GV#jr X#G:mY#Is[#5\#P^#e_#q `#A%a#[Qb#[c#U#CL#CL#CLg#p w #CL#CL#CL#CLm#Gn#~lo#eM9 #CL#CL#CL#CL#CL#CL#CLw#Sx#Tfy#]#OP{#m |#Z}#j%~#^#C#F,#"rs ~#$CL#&_Q |#(CL#+F#-G#.G#1Ixu#3CLt#4CL#7p #8pF #9k7L 5 J6!K#CL$CL:&D;'P<<P[Ă?QEdTCLUCLBWu' CY#D[CE]i>F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu#OL2#yb4#ze3#{`#}CL #t4 #CL#CL #m#CL#CL#Cμ#CL#CL#gx #\ #CL#CL#CL#r#S@#K#FK3#L> #^#b#b!#bf"#\ff##x`$#IGn%#MBs&#Kh'#K(#BM#CL*#E#CL-#: #CL#CL0#u} 2#Jc&3#K:[4#I f#CL6#]#CL8#~@ #CL:#E#CL<#s =#Fs#CL#CL@#|HA#JB#B#CL#CLE#MFAH#j<I# c # ixB # ixB #Al#AK#F!O#ixB #\5 #A#m"" #} #@@ #CPe#EI"#FK)#I} 8#KK&X#NB #OQr#PH #RL#SI^#Vo^ #XSƂ#Y@#[CL#^Eg#aDF-#cCL#dCL#eCL#fCL#gCL#hCL#jCL#kCL#nt6g#os3#pC{3#qO#rMR#sMR#uCL#vCL#xCL#yCL#zCL#{CL#CL#^#CL#CL#CL#N^j#CL#D#CL#CL#w3 #CL#CL#CL#CL$#K%#I&#NVA#CL*#L+,#C-#CL.#GgR#CL#CL#CL#CL3#m4#A6#U7#U38#M49#D:#Jy;#M9<#Hg# CL># Zf?# I@#FqA#Bt#CLD#mJ E#GJF#E\G#Z>U#C #Eg#Ag# {DA #!_o#"@]##pA #$l #%p #&s T !#*CL #+CL#,CL#.dM #1CL#3u6 #4y]w #5C#7vt #8C#:~Q#CL#?CL#ACL#lF.#mG#nY#qs #tEU #v|ƚ #w@A#yX #|n3#H,y#@6 #A=#B Z#yo#x+ #B#C'#U<8#h #Z #^S3#N#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#JK#Ig5#I6#I#jH#jH}e#8XB}f#7zV M#t N#CJO#BtP#FQQ#_xR#MS#o۔ T#IV#nʅ X#G7Y#I9 [#|u\#P^#b%_#t `# Aa#4Z b#5Yc#6R:#8CL#9CL#:CLg#F^xzG_PH`Hx LbKMcGNdSHOf^ Pg| QiFݱRjF:TlGUmH`VnC?pCLqCLYrxe ZtCBvCLwCL]yph ^{Kn}CL~CLaLCLCLd@QCLf^CLhC~iPWCLkU] lM\ mKk neog"pt qm{ rl sL4tLu@ CLCLx@}ByLkzFsCLCL}G`~HPFòAIfCL~CLDu#t? #a#cg#\3#CL #up #CL#CL #ȕ#CL#CL#C:#CL#CL#g>? #_K@ #CL#CL# CL# eS# `# W0# SD# Ld_# i># mB# l޹!# i"# [l## ~9$# I3v%# M4&# K:'# K?(# C`s# CL*# E# CL-# @# !CL# "CL0# $u} 2# &J 3# 'K~4# (I# *CL6# +]# ,CL8# /7 # 1CL:# 3F# 6CL<# `s =# bF:# dCL# fCL@# i])A# jJB# kAx# mCL# nCLE# pH/H# q[@I# rdK # uixB # vixB # wA# xAAh# yE # {ixB # |\ # }AO# ~k # } # @ # P=# I# K)# } 8# K8# B # Kp# Hac# L# IZ# o^ # SU# Eʘ# CL# EQ# DF-# CL# CL# CL# CL# CL# CL# CL# CL# }# q#3# Dp# GR# Mٚ# LaH# CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# No# CL# C# CL# CL# xWc # CL# CL# CL# CL$# (K%# )I&# ,S# .CL*# 1LCD,# 2]# 4CL.# 7NF# 9CL# :CL# ;CL# m 4# @A6# CK7# DJ8# EC 9# HD:# JHs3;# KJP<# LF3# MCL># PX m?# QI@# RFA# U{/ # XCLD# Ymm E# [GzF# \EG# ]W.# aEg# bGI# cCf# |5 # b# @# pPL # ll # p< # r+ !# CL # CL# CL# _= # CL# u # }; # Cp# v( # Kܝ # }# CL# CL# CL# CL# CL# F/# GM# T># sF # FU # { #  # RHc # o# HX# @# AG# B # yo# xWc # A# Bn# T# hׄ # ^ # ^f# O# ^# CL# CL# CL# CL# CL# CL# CL# CL# CL# J# Iq2# I# I# Nq# Nq}e# ^}f#w M# at N# cC"O# dz P# fFLQ# ia"sR# jMŇS# ko T# lDV# md X# oG7Y# qIf[# r+\# sQ'^# vdG_# wg `# xAFa# z]b# |\O\c# }T # CL# CL# CLg# o # CL# CL# CL# CLm# G*#n# ~o# f^ # CL# CL# CL# CL# CL# CL# CLw# Nx# [{y# ]k# OP{# d |# Y}# jl~# ^# C]]# F;^# t' ~# CL# `b |# CL# Fծ# G:# H# Gu# CLt# CL# n0! # p( # jF 5# Jz6# LR# CL# CL:# D;# !LF<# "Ua?# #E# &CL# 'CLB# )~Ü C# +~D# .Du E# 0R{F# 1gG# 2JGH# 3IQ L# 4QM# 6BN# 7KHO# 8HyP# 9H5Q# #uZ?#vI@#wGA#y~z #|CLD#~mJ E#GF#E}G#ZMh#Cf#F#B3#{k #b#@#pmy #l #p #r+ !#CL #CL#CL#]K #CL#v #| #C#w ##|#CL#CL#CL#CL#CL#F3O#G#O`#s #G@ #|R8 #K #O #sl#H<# #Bk!#B#yo#xe #B?#BE#T#h" #` #^f#OVf#^#CL#CL#CL#CL# CL# CL# CL# CL# CL#J#Iq2#I-#y33#@y33}e#Zg}f# w M#^u N#`CO#aArP#bFVQ#eaR#fM|S#go T#iGpV#jjr X#lG,Y#mI[#n\#oOf^#re_#tr9 `#uA Da#wZb#Zc#TT{#CL#CL#CLg#p( #CL#CL#CL#CLm#F>n#o#gY #CL#CL#CL#CL#CL#CL#CLw#RaHx#Y(y#a{#OP{#m |#YK}#l2~#^#C4#E#y# ~#CL#_\ |#CL#F#G'#G# L>u#CLt#CL#nɺ #p #k 5#J{6#L^#CL#CL:#D4K;#K@<#Tw?#E#"CL##CLB#%~ C#'{D#*Du E#,Y(F#-pQG#.L{H#/I{ L#0T>M#1PN#2\{O#3I P#4I>Q#7r# R#8rn T#:J]U#;LV#CL#?CLY#i|R8 Z#jE#mCL#nCL]#px ^#rMbk#tCL#uCLa#xN8#zCL#{CLd#}A/#CLf#^#CLh#EZi#M#CLk#Vr l#NW m#L n#i&fo#ip#rQ q#l) r#k s#Lt#L'u#C*#CL#CLx#By#S3z#IE#CL#CL}#GJY~#Jj#Jk#B~#CL~#CL#F>K#T #c!#fi#`g#CL #pmy #CL#CL ##CL#CL#D#CL#CL#g #i #CL#CL#CL#R #W#Oc3#K#MN#c\#g4#gY!#`L"#Uf##y2$#0I%#1M3&#2L,~'#3K%o(#6 #9CL*#;kPO#=CL-#?@Q#BCL#CCL0#E}T 2#GKO73#HL%54#IIQ#KCL6#M]#NCL8#PBM#SCL:#U{H #XCL<#Zz)B =#[CU#^CL#_CL@#bMGA#cJ*B#dB#fCL#gCLE#iHO H#kI#T #ixB #ixB #Brd#B #GQ#ixB #\^ #B)#m #} #@ #PI#I$#K<-#} 8#Km#B #Lv#Hi`#L#I#o^ #SU#CLc#CL#F#DF-#CL#CL#CL#CL#CL#CL#CL#CL#vf#vg#C{3#Pn#MR#MR#CL#CL#CL#CL#CL#CL# CL# ^# CL# CL#CL#Ni#CL#CI#CL#CL#y #CL#CL#CL#CL$#!K%#"Jb(&#%G9#(CL*#*LaS,#,CH#-CL.#/} #2CL#3CL#\CL#]CL3#`m4#bA6#dX7#eTg8#fQ`9#iE3:#kM#3;#lO<#mJ#oCL>#qXa~?#rJ @#sGSA#t@y#vCLD#xkK E#zGF#{EҥG#|X#F#IY#D#|-U #a#@h#p #l9 #p #r !#CL #CL#CL#\&w #CL#v #yl #C{#x #p:#|B#CL#CL#CL#CL#CL#F)[#H$8#V#t' #Gj #~Ü #@n#PT #n#HD# #BN#C~#y#x #B1 #B=#Tޭ#i\ #aL #_f#Q#^#CL#$CL#&CL#'CL#(CL#)CL#*CL#+CL#-CL#0K,#1Iy^#2I)#3I6#7k =#:k =}e#Qr }f#x* M#Xs N#ZC"O#[B":P#\F2Q#_`R#M/S#of T#IV#nN X#G?Y#J_[#7(\#N^#ci_#sq `#@ۘa#s\b#u&gc#s*#CL#CL#CLg#p~ #CL#CL#CL#CLm#FEn#o#h@ #CL#CL#CL#CL#CL#CL#CLw#Pffx#WǮy#\#OP{#n |#Xۈ}#m L~#^#Cj#E#x ~#CL#` |#CL#F&#H"&#H#QFu#CLt# CL# m # p #kbN 5#J76#Lm*#CL#CL:#D;#GH<#TmV?#F(#CL#CLB#7 C#!z(D#$DE#&eW F#'rG#PWH#QIУ L#RgqM#STcN#T`O#UIP#VIQ#Yqes R#Zr T#\K<U#]L[V#_C#aCL#bCLY#d| Z#eE#hCL#iCL]#kz % ^#mM?#nCL#pCLa#rNb#tCL#vCLd#wAf#zCLf#{^#}CLh#Ei#Wھ#CLk#V9 l#IL m#G n#go#ip#t q#r r#rf s#Lt#L'u#D#CL#CLx#By#Qz#Ib#CL#CL}#GC~#J#J#B}H#CL~#CL#F#Tt #e4#h#b#CL #s #CL#CL #Q#CL#CL#Cpi#CL#CL#g #j50 #CL#CL#CL#S/q #a^f#Z0#T3#!M##hG#%h4#&j!#'`"#(Z0##)~f$#*Hj%#+M=&#,K'#-K=(#0@#3CL*#6i#8CL-#:@#=CL#>CL0#@},l 2#BKz3#CL:'4#D@*#FCL6#G]#HCL8#JC=#MCL:#O@#RCL<#|{ =#}A{#CL#CL@#L)A#JB#B?#CL#CLE#H9QH#I#f #ixB #ixB #B#B#Fݱ#ixB #[J #Bn#k> #} #@ #PW#IM#K?#} 8#K<-#B #Lv#H@#L#J:#o^ #R3#Eʘ#CL#Ert#DF-#CL#CL#CL#CL#CL#CL#CL#CL#A3#~i#I3#KH#VR#Of#CL#CL#CL#CL#CL#CL#CL#^#CL#CL# CL# N# CL#C$#CL#CL#w #CL#CL#CL#CL$#DK%#EI&#HN#JCL*#MKh,#N[#PCL.#STk#UCL#VCL#WCL#XCL3#Zn|4#\A6#_Pf7#`Ni8#aJ6g9#dEb:#fL;#gL<#hJy#jCL>#lY_ ?#mJ@#nG A#o@u#qCLD#sj ^ E#uGF#vE-G#wYGY#zF #|I8#}D#|s? #_5#A2#ph #m #ph #r !#CL #CL#CL#\^ #CL#w #z #DQN#x #M>- #}1#CL#CL#CL#CL#CL#F,#H>#UM}#t!N #F #|C #^ #S #sS3#Hd# #B8P# CSc#y#x #B"#Bɀ#UO#i #\ #]9#M#3#^#CL#CL# CL#"CL##CL#$CL#%CL#&CL#'CL#+KU#,IzF#-I)#.I8#0x#1x}e#c ]}f# vN M'|xN N'|CBO'|o P'|HL#Q'|bRR'|NS'|o T'|EQ:V'|en X'|GHY'|J!['|}\'| O^'|#cR_'|$m `'|%@!a'|(Z\b'|)Yuc'|*SO\'|,CL'|-CL'|.CLg'|0p8T '|2CL'|4CL'|5CL'|6CLm'|9Fn'|dvgo'|eh| '|gCL'|iCL'|jCL'|kCL'|lCL'|mCL'|nCLw'|qP{x'|rTy'|t_G'|uOP{'|xh"# |'|zY }'|{k~'|}^'|B'|EV'|q ~'|CL'|z |'|CL'|Gi'|HxM'|J7{'|F(u'|CLt'|CL'|m '|r^6 '|ldZ 5'|J6'|Ly'|CL'|CL:'|D|;'|I5<'|T?'|E'|CL'|CLB'|~; C'|w8D'|DE'|e >F'|ypG'|]RH'|IY L'|V8RM'|RN'|^O'|IVP'|IQ'|ph R'|qV T'|K>U'|LV'|Dy'|CL'|CLY'|}f Z'|E'|CL'|CL]'|z ^'|M\'|CL'|CLa'|N'|CL'|,CLd'|.B)'|1CLf'|2^'|3CLh'|5Ei'|6WP'|9CLk'|E3 n'|Aho'|Bipp'|Dq\ q'|El{ r'|Fk) s'|GLt'|HLu'|ID/'|KCL'|LCLx'|NBy'|PPz'|QIw'|TCL'|UCL}'|WG;~'|YK '|ZKL'|[BN'|]CL~'|^CL'|`F?#Tt #e4#h#b#CL #s #CL#CL #Q#CL#CL#Cpi#CL#CL#g #j50 #CL#CL#CL#S/q #a^f#Z0#T3#!M##hG#%h4#&j!#'`"#(Z0##)~f$#*Hj%#+M=&#,K'#-K=(#0@#3CL*#6i#8CL-#:@#=CL#>CL0#@},l 2#BKz3#CL:'4#D@*#FCL6#G]#HCL8#JC=#MCL:#O@#RCL<#|{ =#}A{#CL#CL@#L)A#JB#B?#CL#CLE#H9QH#I#f '|cixB '|dixB '|eB8P'|fAҩ'|gFi'|ixB '|\ '|Aҩ'|k[ '|}'|@ '|P*'|I3'|K3'|} 8'|K'|B '|Lv'|IE'|L'|J'|o^ '|Q^'|Eʘ'|CL'|EQ'|DF-'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|C.g'|t6g'|Dk3'|P'|OxR'|MR'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|^'|CL'|CL'|CL'|Nb'|CL'|C'|CL'| CL'| v '|CL'|CL'|CL'|CL$'|K{%'|Iظ&'|O'|CL*'|L%,'|NZ'|CL.'|!@'|$CL'|%CL'|&CL'|'CL3'|*n4'|,A6'|.R7'|/N8'|XM@9'|[E>n:'|]IP;'|^K<'|_Gs4'|aCL>'|cX۞?'|dJ.c@'|eG A'|hw '|kCLD'|mkQ E'|oGF'|pEܜG'|qYJ'|tDg'|uG'|wB'|z} '|{^'||Ay'|}pӖ '|~m '|pӖ '|s T !'|CL '|CL'|CL'|cjS '|CL'|wS '|z '|D'|x '|Eov'|}'|CL'|CL'|CL'|CL'|CL'|F)['|HY'|S,'|t>u '|Ff '|} '|@Q'|W '|p3'|H$'|: '|Cpi'|DG'|y'|x0 '|BN'|B'|U '|i '|T" '|]I'|J'|^'|CL'|CL'|CL'|CL'|CL'|CL'|CL'| CL'|!CL'|%KmP'|&Ir'|'I''|(I|'|*pff'|+pff}e'|[O}f'|v1 M'|Iz.b N'|LCBO'|MBP'|NHӀQ'|Qa˂R'|RNS'|Sof T'|THV'|Vls X'|XGCvY'|YJ>['|Z\'|[R^'|d_'|s `'|@a'|Yb'|Xc'|VG'|CL'|CL'|CLg'|p_` '|CL'|CL'|CL'|CLm'|Fdn'|qgo'|i_ '|CL'|CL'|CL'|CL'|CL'|CL'|CLw'|Jx'|XaHy'|^#'|OP{'|pwx |'|YW>}'|m# ~'|^'|BM'|Fh'|p< ~'|CL'||O |'|CL'|Ga'|H'|KM)'|M\u'|CLt'|CL'|m '|pc '|kw 5'|K 6'|L'|CL'|CL:'|DX;'| M<'| U^.?'| E'|CL'|CLB'|~ C'|G.D'|DE'|s{F'|@YG'|c=qH'|J L'|UqM'|R\N'|]O'|IP'|J@Q'|"p3 R'|#pӖ T'|MK}U'|NLV'|OD>r'|QCL'|RCLY'|T}h Z'|UE'|XCL'|YCL]'|[z ^'|]NX'|_CL'|`CLa'|cNQ'|eCL'|fCLd'|hA:'|kCLf'|l^'|mCLh'|oEi'|pV'|sCLk'|vWHO l'|wFq m'|xD n'|{hs3o'||juCp'|~rp q'|o r'|n\ s'|Mt'|Lu'|D/7'|CL'|CLx'|BEy'|N.\z'|Ip'|CL'|CL}'|G;~'|K<'|K{'|BRs'|CL~'|CL'|F:'|UV '|cf'|e3'|`'|CL '|v '|CL'|CL '|ѹ'|CL'|CL'|Cw'|CL'|CL'|h '|j '|CL'|CL'|CL'|S '|e'|^<'|['|N'|ap'|e'|d!'|W"'|R #'|qS4$'|H%'|M5&'|LI''|KXb('|@.'|!CL*'|$o<'|&CL-'|(@='|+CL'|,CL0'|. 2'|0K(3'|1LlA4'|2@K'|4CL6'|5]'|6CL8'|8C '|;CL:'|=C'|@CL<'|B},l ='|CA"'|FCL'|GCL@'|JLPA'|KJ\B'|MBV'|OCL'|xCLE'|zHH'|{HK}I'||T '|ixB '|ixB '|B '|Bn'|Go'|ixB '|\^ '|B'|m '|}'|@ '|P'|I{.'|K&X'|} 8'|J!'|B '|Lv'|I'|L'|J''|o^ '|PƜ'|Eʘ'|CL'|Em'|DF-'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|Bi'|w'|C{3'|O4'|OxR'|MR'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|^'|CL'|CL'|CL'|Nd'|CL'|C'|CL'|CL'|wQ? '|CL'|CL'|CL'|CL$'|Kh%'|J9&'| ImZ'|CL*'|Ln,'|C'|CL.'|}f '|@CL'|ACL'|BCL'|CCL3'|Fn4'|GA6'|JQ7'|KN 8'|LJ9'|OE:'|QLf;'|RMf<'|SJ3'|UCL>'|WY?'|XJ6@'|YG;A'|\s)~ '|_CLD'|aj E'|cGF'|dEG'|eYI'|hD3'|iG'|jCY'|n}T '|o_'|pAm'|qpX '|rm '|sp- '|ts !'|xCL '|yCL'|zCL'|d '|CL'|xH '|z '|E#'|y{ '|z'|}W1'|CL'|CL'|CL'|CL'|CL'|F'|H'|U:'|tj. '|G; '|}X '|@u'|Wc '|p0'|I'|' '|A'|A'|y'|x '|B"'|B='|US?'|iLl '|_33 '|_'| P3'| ^'| CL'| CL'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|K'|I'|J '|I'|i'|"i}e'|x| }f'|u M'|@{Q N'|BCςO'|l}u P'|mI#Q'|pbR'|qN;0S'|r@bT'|sE>V'|teC X'|wGQY'|xJg['|yL\'|zQ^'|}c*P_'|~g `'|Aa'|pBb'|oc'|l޹'|CL'|CL'|CLg'|pg0 '|CL'|CL'|CL'|CLm'|G%n'|mo'|iQk '|CL'|CL'|CL'|CL'|CL'|CL'|CLw'|Tx'|Uy'|b'|OP{'|b |'|Z'}'|iz~'|^'|CC\'|Ga'|q9 ~'|CL'|% |'|CL'|H0'|HpV'|Kf'|O^u'|CLt'|CL'|l '|m '|k 5'|K36'|L'|CL'|CL:'|D;'|MO<'|U3?'|E]'|CL'|CLB'|~ C'| DD'| DE'|4rF'|5{\G'|6XaHH'|7JMU L'|8TRM'|9RN'|:SO'|;JP'|'| XU?'| JE/@'| G% A'| o+ '| CLD'| j E'| GӓF'| FS_G'| YH'| D 3'| Fg'| B0'| } '| bM'| B^'| q+ '| m<8 '| pX '| s8 !'| CL '| CL'| CL'| ^ '| CL'| x '| { '| DX'| yl '| K '| }S'| CL'| CL'| CL'| CL'| CL'| F'| Hj'| SzS'| tU '| G '| (}u% '| )@'| *QO '| -q3'| 0I.'| 3 '| 5Aq'| 6A^v'| 7y'| 8x '| 9B8P'| :B'| '| :jK4'| ;ac4'| <\D'| ?N '| A['| B_)'| C_(!'| Dd"'| E\ff#'| F2$'| GH%'| HML{&'| IK}''| JKmP('| M~' '| PCL*'| RBah'| UCL-'| W@'| CL'| CL0'|  2'| J3'| LM4'| @2i'| CL6'| ]'| CL8'| Ca'| CL:'| DQN'| CL<'| ~Ü ='| AZ'| CL'| CL@'| LVhA'| JOB'| B{'| CL'| CLE'| HH'| CI'| T '| ixB '| ixB '| B '| Bn'| FL'| ixB '| \ '| B'| j> '| } '| @ '| Pl'| I;'| K3'| } 8'| K1C'| B '| Qc'| J'| M '| JP'| o^ '| O'| Eʘ'| CL'| Eb/'| DF-'| CL'| CL'| CL'| CL'| CL'| CL'| CL'| CL'| vf'| r '| B'| K\'| Nz'| L'| CL'| CL'| CL'| CL'| CL'| CL'| CL'| ^'| ICL'| JCL'| KCL'| LNZ'| NCL'| QC'| SCL'| TCL'| VxP '| XCL'| YCL'| ZCL'| [CL$'| ^K6%'| _I&&'| bQ^'| eCL*'| gLWN,'| h]_'| jCL.'| lDV'| oCL'| pCL'| qCL'| rCL3'| un-4'| vA6'| yZ 7'| zP8'| {Hf9'| ~ERe:'| ML;'| O<'| K'| CL>'| Y?'| J-z@'| G+gA'| wQ? '| CLD'| jb E'| GF'| EG'| Z='| B'| F'| B!'| } '| a!'| A'| qHF '| mJ '| q '| sF !'| CL '| CL'| CL'| \o '| CL'| w '| z7 '| CL!'| xt '| T/ '| }34'| CL'| CL'| CL'| CL'| CL'|F'|H5'|Vb'|tz '|F '||} '|@4'|P '|!pY'|$IGk'|'U '|(A'|)AH'|*y'|,x '|-A"'|.B\'|0U]R'|3i '|6YD '|7\'|8L3'|:^'|;CL'|CL'|@CL'|ACL'|BCL'|CCL'|DCL'|GK'|IIU'|JJ#9'|KI1'|uxf'|vxf}e'| e) }f'| TuM M'|x_ N'|C0O'|BHP'|H\Q'|bK-R'|NwS'|qV T'|IlV'|nJ* X'|GdY'|J['|\'|P^'|cR_'|t `'|Ca'|Yb'|Xc'|S'|CL'|CL'|CLg'|q '|CL'|CL'|CL'|CLm'|Hn'|~o'|hӄ '|CL'|CL'|CL'|CL'|CL'|CL'|CLw'|Qx'|TRy'|a'|OP{'|r{ |'|Y}'|k}~'|^'|DU'|G['|n4a ~'| CL'| bR |'|CL'|IQ}'|H3'|Hp'|y q'|qR r'|s8R s'|M.ct'|LCDu'|E'|CL'|CLx'|CL!y'|Sz'|G:'|CL'|CL}'|Fݱ~'|Kü'|L'|C'|CL~'| CL'| Gn'|V '|f3'|hٙ'|c'|CL '|w_ '|CL'|CL '|&'|CL'|CL'|C'|!CL'|"CL'|$g '|%eI '|(CL'|)CL'|*CL'|,ZD'|/P'|0Hnf'|1E&f'|4N3'|6_'|7b'|8aq!'|9h@"'|:i#'|;Jf$'|Kz''|?K_('|hC'|jCL*'|lh'|pCL-'|rAAh'|uCL'|vCL0'|xz[ 2'|zJ3'|{LJ4'|~~ '|CL6'|]'|CL8'|E'|CL:'|@'|CL<'|v ='|zr '|CL'|CL@'|L}mA'|JnB'|B<'|CL'|CLE'|GH'|JOI'|aX '|ixB '|ixB '|B'|BE'|F?'|ixB '|[- '|BE'|k '|} '|@ '|P_'|Io'|K<-'|} 8'|K1C'|B '|Lv'|I'|M '|JP'|o^ '|O'|Eʘ'|CL'|EQ'|DF-'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|CL'|BL'|t6g'|0C{3'|2L{'|3Pff'|4Nf'|6CL'|7CL'|8CL'|9CL'|:CL'|;CL'|=CL'|>^'|?CL'|@CL'|ACL'|CN_'|DCL'|GC`'|ICL'|JCL'|Lyz '|OCL'|PCL'|QCL'|RCL$'|TL %'|UJQ&'|XJ~'|[CL*'|^L:,'|_S'|`CL.'|b}; '|eCL'|fCL'|gCL'|hCL3'|kn[4'|A6'|SS47'|Q8'|J6g9'|E:'|HI;'|K)<'|G '|CL>'|X?'|J1 @'|G-8A'|Bf'|CLD'|kw E'|GF'|E\G'|X'|D'|H'|C3'|} '|]z'|A'|qes '|mYk '|q '|sF !'|CL '|CL'|CL'|[ '|CL'|xP '|{in '|DX'|z '|'|~ '|CL'|CL'|CL'|CL'|CL'|F'|H~'|X'| t '| G '|} '|@'|Q? '|n3'|I~'|r '|C''|Bk!'|y&'|x '| BN'|!B'|#U_'|'i '|*WUU '|+[f'|,I'|-^'|.CL'|/CL'|1CL'|2CL'|3CL'|\CL'|]CL'|_CL'|`CL'|cL'|dI'|eJ-8'|fI'|jiz'|miz}e'|@jX}f'|Es M'|v N'|DJO'|}k P'|GQ'|cHR'|NIS'|pmy T'|CV'|b- X'|GY'|J9['|î\'|NB"^'|do_'|j9 `'|Bpa'|Zb'|Y8Rc'|TH'|CL'|CL'|CLg'|rr* '|CL'|CL'|CL'|CLm'|H n'|~vgo'|k  '|CL'|CL'|CL'|CL'|CL'|CL'|CLw'|Lpx'|X34y'|\8R'|OP{'|dDD |'|Xc}'|k95~'|^'|%D9'|&F['|)l ~'|,CL'|.`Sk |'|0CL'|3H'|4EV'|5I7`'|7FNu'|9CLt'|:CL'|K'|CL'|CL]'|{/9 ^'|O'|CL'|CLa'|P['|CL'|CLd'|B'|CLf'|^'|CLh'|Ei'|R3'|CLk'|X '|]Z7 '|B'|n"" '|} '|@ '|P_'|I.'|L'|} 8'|K#'|EV'|O'|J'|M '|JP'|o^ '|Lv'|Eʘ'|CL'|Ert'|DF-'|CL'|CL'|CL'|CL'|CL'|CL'|CL'| CL'|#Aٚ'|$t6g'|%Dk3'|'MR'|(U{'|)OxR'|+CL'|,CL'|-CL'|.CL'|/CL'|0CL'|2CL'|3^'|4CL'|5CL'|6CL'|8Ne'|9CL'|CL'|?CL'|AxH '|DCL'|ECL'|FCL'|GCL$'|IKh%'|JJU&'|MM~'|PCL*'|SL,'||D*'|}CL.'|} '|CL'|CL'|CL'|CL3'|nt4'|A6'|W7'|Wi8'|I39'|Ei:'|L0;'|K3<'|H3'|CL>'|Z?'|JT@'|G3A'|C>'|CLD'|k E'|GF'|EMG'|Z'|F'|H'|Dp'|}7 '|^c@'|BF'|q3 '|mv '|q+ '|sc !'|CL '|CL'|CL'|\ '|CL'|y '||5! '|D'|z[ '|L x '|~D'|CL'|CL'|CL'|CL'|CL'|F-'|Hx'|R>'|t '|F '|}; '|@'|Re '| rf'| I'|@'|B'|B'|y&'|y '|B '|Bn'|Ui'|Di '|GZ3 '|H^f'|IM'|J^'|KCL'|MCL'|NCL'|OCL'|PCL'|QCL'|RCL'|TCL'|UCL'|XL_'|YI'|ZJ2'|\Iu'|^xff'|_xff}e'|a}f'|W??'|?DQN'|BCL'|DCLB'|E' C'|GjD+dE=E+dUF+do\*G+ddBH+d K L+d PM+d M^N+d XO+d JۥP+dK*Q+do+ R+dpmy T+dM6U+dM4V+dE +dCL+dCLY+d^ Z+dEV+dCL+d CL]+d"z[ ^+d$O!+d&CL+d'CLa+d*OD+d,CL+d-CLd+d/C +d2CLf+d3^+d4CLh+d6Ei+d7Q5+d:CLk+deXv l+dfP=q m+dgN n+djio+dlkTp+dnsR q+dop r+dpq{ s+dqMAt+drLaSu+dsA+duCL+dvCLx+dxBUZy+dyPz+dzE+d}CL+d~CL}+dF~+dL1+dL+dB+dCL~+dCL+dFy+dV +deNf+dg<+de+dCL +dwB +dCL+dCL +dd+dCL+dCL+dD+dCL+dCL+di| +dpʏ +dCL+dCL+dCL+dTv +dW4+dP+dL+dNiY+d`c+dc+dcz!+dd"+daf#+dGf$+dH"%+dMe&+dLl'+dK(+d@{+dCL*+dB}+dECL-+dGA^v+dJCL+dKCL0+dMK 2+dOK3+dPLW4+dQA:+dSCL6+dT]+dUCL8+dWD+dZCL:+d\z[ +d_CL<+da| =+dbBɀ+deCL+dfCL@+dL(A+dK"B+dC+dCL+dCLE+dI=H+dFI+dT +dixB +dixB +dG`+dG+dM^+dixB +d]K +dG4+dnZ +d}H+d@b+dP=+dI+dKA+d} 8+dJR+dEV+dO+dJT+dM +dJP+do^ +dOW+d@+dCL+dEb/+dDF-+dCL+dCL+dCL+dCL+dCL+dCL+dCL+dCL+dD+dw3+dDk3+dP+dOxR+d ^xR+d CL+d CL+d CL+dCL+dCL+dCL+dCL+d^+dCL+dCL+dCL+dNd+dCL+dCԅ+dCL+dCL+d!xo +d#CL+d$CL+d%CL+d&CL$+d)L'%+d*J+&+d-Mi+dXCL*+dZLG,+d[I+d]CL.+d_} +dbCL+dcCL+ddCL+deCL3+dhn]4+djA6+dl_g7+dmX38+dnL339+dqE:+dsL3;+dtO <+duJ+dwCL>+dyYș?+dzJ}@+d{GBA+d~pY +dCLD+dk/ E+dGF+dEG+dZ +dk+do3+dh;3+dC+d]+dC+daL +d_= +dH]+dIL!+dCL +dCL+dCL+d\5 +dCL+d} +d@+dF!O+d|& +dN +du+dCL+dCL+dCL+dCL+dCL+dF!7+dH+dYź+du ~ +dG"" +dU +dl +dSm +dns3+dI+d@/+dAd+dxo +dx+dy1 +d BUZ+d!BM+d#V@+d&i& +d)^" +d*_\+d+P+d-^+d.CL+d/CL+d0CL+d1CL+d3CL+d4CL+d5CL+d6CL+d7CL+d:LM+dI+dAn+dDn}e+d_Ǝ}f'|2q96 M+dx_ N+dEO+d}k P+dGMQ+dd@R+dO[S+drk T+dDV+dd| X+dGY+dKz[+d˪\+dP$^+dcu_+dg8 `+dATa+dqb+dpxRc+dn}q+dCL+dCL+dCLg+drZ +dCL+dCL+dCL+dCLm+dGHn+d4o+dl +dCL+dCL+dCL+dCL+dCL+dCL+dCLw+dQ x+dWfy+da+dOP{+db |+dX}+dh~+d^+dC+dFe3+dt ~+dCL+dc |+dCL+d HI+d Cm+d H9+dQu+dCLt+dCL+dh D +dn +dk 5+dK6+dL+dCL+dCL:+d E2;+d!J><+d#W?+dLD+dOCL+dPCLB+dR@-SC+dT}D+dVE=E+dX\{F+dYkHG+d[]H+d\K L+d]OfM+d^LpN+d_XqO+d`JP+daK;Q+ddo۔ R+depmy T+dgMU+dhNNwV+diEq+dkCL+dlCLY+dn@QZ+doE+drCL+dsCL]+duz ^+dwOk+dyCL+dzCLa+d}O+dCL+dCLd+dC+dCLf+d^+dCLh+dFEi+dPe+dCLk+dX l+dO= m+dM n+djo+dkAp+dq. q+do) r+dm s+dMP t+dL\u+dDB+dCL+dCLx+dA:y+dNWz+dCZ+dCL+dCL}+dFL~+dL`x+dL+dBs+dCL~+dCL+dF?+dV +dbg+dd+d`+dCL +dwB +dCL+dCL +d럗j+dCL+dCL+dD+dCL+dCL+diLl +dq +d"CL+d#CL+d$CL+d'TA +d(Yff+d)R33+d*N+d-NA+d/Z+d0^ +d1]!+d2i`"+d3f#+d4Hs3$+d5Hx%+d6Mz&+d7K'+d8K(+d9@+d;CL*+d=F+d@CL-+dBA{+dECL+dFCL0+dH' 2+dJKQ 3+dKLٛ4+dLBa+dNCL6+dO]+dxCL8+dzDX+d}CL:+d{ +dCL<+d| =+dB +dCL+dCL@+dLA+dK)B+dC+dCL+dCLE+dI>H+dFI+dg +dixB +dixB +dH$+dHVF+dM+dixB +d\Rp +dHs<+dl"! +d} +d@ +dPM+dInx+dKCu+d} 8+dK6+dEV+dLv+dH8+dLjo+dJP+do^ +dOP/+d@<+dCL+dM +dDF-+dCL+dCL+dCL+dCL+dCL+dCL+dCL+dCL+dvf+dt6g+dE3+dMٚ+dMR+dO+dCL+dCL+dCL+d CL+d CL+d CL+d CL+d^+dCL+dCL+dCL+dN[+dCL+dCa+dACL+dBOP+dFw +dHCL+dICL+dJCL+dKCL$+dNL%+dOJ%&+dRH:+dUCL*+dWLC,+dXQ,6+dZCL.+d\E+d_CL+d`CL+daCL+dbCL3+den4+dfA6+diZi7+djQ8+dkG,9+dnEؖ:+dpH;+dqK<+drH6f+dtCL>+dvY{ ?+dwJ{@+dxGScA+d{mi +dCLD+dk E+dGF+dEG+dY+di+do+dh@+dGF-+d_cH+dDU+de +db +dIp+dK82!+dCL +dCL+dCL+d_ +dCL+dr +d +dDX+d@+dV+d~+dCL+dCL+dCL+dCL+dCL+dF+dH+dQz+du' +d G* +d c +d m +dTJ +dr +dI+d@+dB~+dzT +dx+dyN +d} +dC+d Vk+d#j' +d&Y; +d'_ +d(O+d*^+d+CL+d,CL+d-CL+d.CL+d/CL+d1CL+d2CL+d3CL+d4CL+d7L+d8IZ+d:IB+d;I+d=y+d>y}e+dg }f+dpBS M+dv N+dE/O+d@}P+dG1Q+dd.R+dO+S+dq9 T+dFPV+dg~8 X+dGDY+dK[+dh\+dQ^+db_+dp* `+dAra+dYb+dZzc+dUJ>+dCL+dCL+dCLg+drr* +dCL+dCL+dCL+dCLm+dGbKn+d~4o+dl» +dCL+dCL+dCL+dCL+dCL+dCL+dCLw+dIx+dXQy+d`+dOP{+dk |+dYkC}+dh~+d^+dCN+dFD+dnn ~+dCL+dbD |+dCL+dG6+dCd+dI+dF[u+d CLt+d CL+d6hT +d7n=q +d8k 5+d:Ko6+d;L+d=CL+d>CL:+d@EG;+dAIA<+dBX9?+dDDV+dFCL+dGCLB+dI C+dK{LD+dNEQ E+dPWF+dQl\G+dRQLH+dSK19 L+dUYM+dVU34N+dWa#O+dXKP+dYKagQ+d\of R+d]pPL T+d_MÌU+d`N=V+daEs+dcCL+ddCLY+df@Z+dgEѕ+djCL+dkCL]+dmz ^+doOT+dCL+dCLa+dO+dCL+dCLd+dC'+dCLf+d^+dCLh+dFxCi+dP+dCLk+dX l+dO m+dM\ n+dho+dlJp+dqf q+dn=q r+do=q s+dMZ(t+dLlAu+dA/+dCL+dCLx+dAt@y+dKz+dF(+dCL+dCL}+dF[G~+dL+dL+dB-+dCL~+dCL+dFi+dVR +d f+d hS3+d d+d CL +d v4 +d CL+d CL +d E+d CL+d CL+d DV+d CL+d CL+d hׄ +d rf +d CL+d CL+d CL+d T +d YI+d Q+d !N+d $N +d &c+d 'i\+d (h0!+d )Z`"+d *S@#+d +p3$+d ,HI%+d -M4&+d .K'+d /K(+d 2 O +d 5CL*+d 7R +d bCL-+d dA +d gCL+d hCL0+d j@2+d lKxB3+d mL:4+d nB5h+d pCL6+d q]+d rCL8+d tD+d wCL:+d y{in +d |CL<+d ~| =+d B+d CL+d CL@+d LA+d KgB+d C+d CL+d CLE+d IiNH+d CzxI+d n! +d ixB +d ixB +d H+d Hs<+d Mt+d ixB +d ]K +d H+d l[ +d } +d @ +d PC+d IQk+d K:[+d } 8+d KCu+d EV+d R +d H8+d L+d JP+d o^ +d Lv+d Eʘ+d CL+d FsI+d DF-+d CL+d CL+d CL+d CL+d CL+d CL+d CL+d CL+d BQ+d t6g+d Dk3+d Nz+d MR+d MR+d CL+d (CL+d *CL+d +CL+d ,CL+d -CL+d .CL+d /^+d 0CL+d 1CL+d 3CL+d 4Nb+d 6CL+d 9C0+d ;CL+d +d XS ?+d J@+d GcA+d q +d CLD+d k E+d GF+d EFG+d Z+d n3+d t+d kٙ+d J+d `D\+d Es+d c +d `6 +d I+d K>!+d CL +d CL+d CL+d d/ +d CL+d @+d }h +d E9[+d @Q+d Kz +d ~]+d CL+d CL+d CL+d CL+d CL+d F+d H+d Q9+d u +d G33 +d  +d lo +d V$ +d s+d I+d @+d Au+d wB +d x+d yz +d ~# +d CL!+d V+d jSk +d ^ +d !^+d "O+d #^+d $CL+d %CL+d &CL+d (CL+d )CL+d *CL+d +CL+d TCL+d VCL+d YL +d ZI2+d [I+d \I W+d ^y+d `y}e+d aIO}f+d6pr M+d ~x@! N+d E4O+d C[P+d GJYQ+d chRR+d O7S+d ph T+d IV+d o< X+d GY+d J[+d \+d Q^+d dA_+d uq `+d Aa+d tb+d ucc+d p+d CL+d CL+d CLg+d r +d CL+d CL+d CL+d CLm+d G=(n+d 4o+d lD +d CL+d CL+d CL+d CL+d CL+d CL+d CLw+d G >x+d Ry+d \{+d OP{+d o |+d X}+d iK~+d ^+d CmA+d F[+d n ~+d CL+d !_މ |+d #CL+d &G:+d 'C<+d (I$+d +KKu+d .CLt+d /CL+d 1h +d 2n- +d 3kn 5+d 6K{6+d 7L+d 9CL+d :CL:+d XG?+d ?D;+d BCL+d CCLB+d Er C+d GxD+d JEAE+d LY4F+d Mm*G+d NS4H+d OKP/ L+d PI M+d QDN+d RPO+d SKP+d TKE4Q+d Wo R+d pA T+d NU+d N#V+d E+d CL+d CLY+d @Z+d E+d CL+d CL]+d z7 ^+d Nq+d CL+d CLa+d O^+d CL+d CLd+d B+d CLf+d ^+d CLh+d F~i+d Nm+d CLk+d Y, l+d N m+d M n+d ifo+d lQ~p+d sH q+d qW r+d q33 s+d MZ(t+d Lu]u+d D +d CL+d CLx+d @y+d S z+d F:+d CL+d CL}+d Fi~+d L+d Lo+d B1+d CL~+d CL+d F~+d Vl +d _+d `4+d ]x+d CL +d xH +d CL+d CL +d +d CL+d CL+d D|+d CL+d CL+d iQ +d p +d CL+d CL+d CL+d U +d M+d F+d Bnf+d N+d Ibfg+d Jf=q+d Kh!+d L\ff"+d NRg#+d Oo$+d PH%+d QM~&+d RKWy'+d SKw(+d TBt+d VCL*+d XI+d [CL-+d ]Al+d `CL+d aCL0+d c@2+d eKE3+d fLw4+d gA+d iCL6+d j]+d kCL8+d mD+d pCL:+d r{ +d uCL<+d w| =+d xB=+d {CL+d |CL@+d LA+d KfB+d C<+d CL+d CLE+d \<H+d AI+d \q +d ixB +d ixB +d I+d I=+d Px+d j +d ] +d IZ+d nww +d } +d @ +d P+dW?+dJN@+dGnA+dvI +dCLD+dkd E+dGF+dE=G+dYb+dkf+dp3+djc3+dM\+d_N+dE+dc!( +d`b +dJm+dL!+dCL +dCL+dCL+df +dCL+d@+d},l +dEd+d@+dK6z +d}˜+dCL+dCL+dCL+dCL+dCL+dF#+dH(+dX?+du} +dGww +d +dl8 +dVj +dn +d I+d @+dAW+dw +dy/+dy] +d<~ +d=CD+d?UZ+dCj +dF^UU +dG^ff+dHOf+dI^+dJCL+dLCL+dMCL+dNCL+dOCL+dPCL+dQCL+dSCL+dTCL+dWL+dXI(+dYI8+dZHƐ+d^j +daj }e+d\d}f+d 1q%o M+dwWw N+dE4O+d~ P+dFTQ+ddKR+dOBS+dpmy T+dDV+dc X+dGZY+dJ[+d\+dN^+deIi_+dl9 `+dAPga+dX)b+dWHc+dT+dCL+dCL+dCLg+dr +dCL+dCL+dCL+dCLm+dGn+do+dk +dCL+dCL+dCL+dCL+dCL+dCL+dCLw+d E\x+d Uy+d [+d OP{+dfUV |+dX}+dk~+d^+dCV+dF3p+dn ~+d CL+d"cv |+d$CL+d'Gl+d(B+d)IL+d-Pnu+d/CLt+d0CL+d2i" +d3n +d5kO 5+d7Kg6+d8L+d:CL+d;CL:+d=DnQ;+d>G"<+d?Y?+dhF?+dkCL+dlCLB+dn O C+doCD+dpE=E+dr]=qF+dsv{G+dtSW H+duKvI L+dvJM+dxERN+dyQ O+dzK P+d{KJDQ+d~o R+dp$ T+dN6U+dNgV+dE+dCL+dCLY+d@=Z+dE+dCL+dCL]+dz7 ^+dO+dCL+dCLa+dOu+dCL+dCLd+dBɀ+dCLf+d^+dCLh+dF:i+dN +dCLk+dYS l+dPu m+dOk n+dho+dlp+dp q+dn r+dpaH s+dM`t+dL~zu+dB@L+dCL+dCLx+dAKy+dS]=z+dG+dCL+dCL}+dF~+dL+dL+dB+dCL~+dCL+dFy+dV +d_~f+d`+d\+dCL +dw +dCL+dCL +d+dCL+dCL+d1D;+d4CL+d5CL+d7j' +d8o|v +d;CL+d+dWz?+dJ{@+dGvA+dw +dCLD+dk. E+dGF+dFOG+dZ+dkٙ+dq+dj+dP&+d^ +dF +da +d_ [ +dJ+dL!+dCL +dCL+dCL+ddR +dCL+d@b+drz +dD+d@n+d瞩+d}+dCL+dCL+dCL+dCL+dCL+dF+dH+dY!+dvW +dGw +d%' +d&l5h +d'S +d*o +d-IU+d.@+d/A0+d3v +d4yt+d5y +d6B+d7Cpi+d9V?0+dN+dF-+dn$ ~+dCL+dcYk |+dCL+d!G$+d"D+d#I+d&G u+dPCLt+dRCL+dThƨ +dUn=q +dVkO 5+dXKd66+dZL#+d\CL+d]CL:+d_D;+d`G"J<+daYO)?+dbF+deCL+dfCLB+dh~s C+diBZD+djE\E+dlaF+dmv#G+dncǯH+doKR L+dpI:M+dqDN+drP{O+dsK#P+dtK_Q+dwouq R+dxp T+dzNf=U+d{N}V+d|E@+d~CL+dCLY+dAKZ+dE+dCL+dCL]+dz7 ^+dPA+dCL+dCLa+dQS$+dCL+dCLd+dB=+dCLf+d^+dCLh+dFsi+dM +dCLk+dYo@ l+dO8R m+dN( n+diLo+dlp+dl q+dk = r+dj=q s+dMet+dLsu+dDD+dCL+dCLx+dA$Zy+dRz+dE*+dCL+dCL}+dFxC~+dL+dLb+dB+dCL~+dCL+dF+dV +dag+dc +d_\+dCL +d!v +d$CL+d%CL +d&,+d'CL+d(CL+d*D%+d-CL+d.CL+d0hb +d1h +d4CL+d5CL+d6CL+d8Tc6+d;UY+d+dI/j+dN+dixB +d\ +dIL\+dl[ +d|+d@ +dPe+dI"+dK/q+d}+dK+dEV+dL%+dJ+dM +dJP+do^ +dK8+dEʘ+dCL+dEQ+d DF-+d CL+dCL+dCL+dCL+dCL+dCL+dCL+dCL+dt6g+dkI+dvg+dN+dEMR+dFP!H+dHCL+dICL+dJCL+dKCL+dLCL+dMCL+dOCL+dP^+dQCL+dRCL+dSCL+dUNo+dWCL+dZC+d\CL+d]CL+d^z)B +daCL+dbCL+dcCL+ddCL$+dgK%+dhJ-[&+dkS+dmCL*+dpLc,+dqR)3+dsCL.+du@R+dxCL+dyCL+dzCL+d{CL3+d~o4+dAH6+dMg7+dF 8+d},9+dE5[:+dJ3;+dK<+dJl+dCL>+dTC?+dJ@+dGwA+dn4a +dCLD+dkh E+dGF+dF G+dXY+dj+dp.g+dj+dQp+d]+dE*+dbTF +d_ +dJX+dL0!+dCL +dCL+dCL+da +dCL+d@+d@b+d Bɀ+d @+da+d}+dCL+dCL+dCL+dCL+dCL+dE+dH +dR+d vY +d#G +d% +d&m +d'P +d+r)+d.Im+d/@+d0A%+d3w| +d4yhs+d5z)B +d6Bɀ+d8CSc+d:V1+d=k +d@Q +dA[Vf+dCH+dD^+dECL+dFCL+dGCL/LCL/LCL/LCL/LCL/LCL/LCL/L L7/L I /L I,/L HM/Lx3/Lx3}e+dm}f+dTqIB M/L5x N/L7ESoO/L8| P/L9GQ/LddaR/LeOS/LfAT/LhD;V/Lib| X/LkH Y/LlK$[/Lm\/LnO6 ^/Lqc{_/Lsf `/LuBuda/LvX{b/LwXxRc/LxTz/LzCL/L{CL/L}CLg/Lr /LCL/LCL/LCL/LCLm/LGyn/L~go/Lk  /LCL/LCL/LCL/LCL/LCL/LCL/LCLw/LGx/LXpy/Lcg/LOP{/Lb |/LX}/Ll~/L^/LCx/LF/Ln ~/LCL/L`D |/LCL/LGV/LF/LI/LJLu/LCLt/LCL/Li /Ln /Lk=q 5/LKcN6/LLN/LCL/LCL:/LCB;/LFNCL/L?CLY/LAA+Z/LBET/LECL/LFCL]/LHzF^ ^/LJPT/LLCL/LMCLa/LOQ"/LQCL/LRCLd/LTB=/LWCLf/LX^/LZCLh/L\F/i/L]L&x/L`CLk/LcY l/LdL{ m/LeKu n/Lj o/Llp/Lq q/Ln r/LpQ s/LMd1t/LLu]u/LB=/LCL/LCLx/LAy/LPz/LC/LCL/LCL}/LFb~/LM /LMH/LBө/LCL~/LCL/LF/LS /Lc3/Le/L`/LCL /Lx /LCL/LCL/LCL/LCL/LD|/LCL/LCL/Lh /Lm'B /LCL/LCL/LCL/LUa /LS1/LL/LI8/LN/L[34/L^/L^!/Le3"/L\#/LBVf$/LI%/L MG&/L K'/L K (/L^ /LCL*/LG,/LCL-/LA^v/LCL/LCL0/L@-S2/L Ke3/L!L4/L"BF/L$CL6/L%]/L&CL8/L(DS/L+CL:/L-z /LXCL/LMUp?/LNJ@/LOGA/LRm /LTCLD/LVlR E/LXGF/LYF G/LZZ/Lk3/Lpf/Lj/LSsn/L]t /LEB/Lev /Lc /LJ;/LL0!/LCL /LCL/LCL/L_/ /LCL/L@;/LwQ? /LBN/L: /LDR /L~O/LCL/LCL/LCL/LCL/LCL/LE$/LHV/LQ)/LvR /LG"" /L /Lll /LP /Lrf/LIi/L@/LA_/Lx /Ly/Lzcz /Lv M/LZx]6 N/L\E> O/L^A/P/L_F'Q/Lbd R/LcOLS/LdAT/LeGs;V/Lfiz X/LhGY/LjKW7[/Lk:\/LlS^/Loe(_/LprG `/LrD&a/LsZ b/Lu]c/LvV/LxCL/LyCL/LzCLg/L|r /L~CL/LCL/LCL/LCLm/LHWn/L4o/Lln /LCL/LCL/LCL/LCL/LCL/LCL/LCLw/LE=qx/LUqy/L_/LOP{/Lnwx |/LX_}/LkM~/L^/LD /LG(/Lo; ~/LCL/Lef |/LCL/LG/LCG/LI5/LO^u/LCLt/LCL/Lh| /Ln/ /Lk% 5/LKi6/LM /LCL/LCL:/LDX;/LEܸG/L*^34H/L+L. L/L-VM/L.RN/L/_(O/L0KcP/L1KQ/L4of R/L5o T/L7NֹU/L8OdV/L9F</L;CL/LAZ/L?FR/LBCL/LCCL]/LEz % ^/LGPF0/LICL/LJCLa/LMP/LOCL/LxCLd/LzCpi/L}CLf/L~^/LCLh/LGi/LV/LCLk/LY7 l/LQǮ m/LO n/Liffo/Llp/Lq q/Lm{ r/Lm) s/LMb^t/LLqu/LA}/LCL/LCLx/LAt@y/LN>z/LFs/LCL/LCL}/LF~/LM"/LM=q/LB /LCL~/LCL/LF/LWS\ /LcL/Le/L`Vf/LCL /Lw /LCL/LCL/LCL/LCL/LD/LCL/LCL/Ljp /Lr- /LCL/LCL/LCL/LU /Le/L_/L\Ng/LNN/L_/Lcs4/Lc!/LV"/LNf#/Lx2$/LI %/LMQ&/LKM'/LK:(/L@/L CL*/L HYv/LCL-/LAZ/LCL/LCL0/L@}B2/L@L 3/LAL 4/LBG/LDCL6/LE]/LFCL8/LHD/LKCL:/LM{ /LPCL /Lz} /L{@۶/LP_/LI^!/LL/L}/LK?/LEV/LKg/LI/LM /LJP/Lo^ /LE/LEʘ/LCL/LEY%/LDF-/LCL/LCL/LCL/LCL/LCL/LCL/LCL/LCL/Lvf/Lt6g/LDf/LMR/LU/LMR/LCL/LCL/LCL/LCL/LCL/LCL/LCL/L ^/L CL/L CL/L CL/LNS/LCL/LC/LCL/LCL/Lz /LCL/LCL/LCL/LCL$/L K%/L!J&/L#J>/L&CL*/L)L(,/L*C/L,CL./L.@/L0CL/L1CL/L2CL/L3CL3/L6o(4/L8A6/L;Jg7/L/LpTC4?/LqJ@/LrGA/Ltn$ /LwCLD/Lym E/L{GF/L|F(G/L}X8/Lk/LpK3/LjP/LT/L^k/LEX/LfE /Lbs /LKj/LN !/LCL /LCL/LCL/L^ /LCL/L@/Ly@Y /LB/Lr /LB/L~/LCL/LCL/LCL/LCL/LCL/LE/LH/LQr/Lvt /LF{ /L@R/Lm<8 /LP(z /Lr/LIqM/L@/LB/Lz /Ly/Lz /L} /LSj/LV#/Lk) /L` /L^/LO/L^/LCL/LCL/LCL/LCL/LCL/LCL/LCL/LCL/LCL/LM/L/L H /L Il/L HƐ/L6y33/L7y33}e/L@Z}f/Lp, M/LUx N/LWE;0O/LXAJP/LYGDQ/L\cR/L^O6S/L_r T/L`HV/Lal X/LcHY/LdK~&[/Lf?\/LgNG^/Ljc=_/Lkp `/LmC٦a/Lnugb/LouLc/Lm/LCL/LCL/LCLg/Ls% /LCL/LCL/LCL/LCLm/LHn/L~o/LnJ /LCL/LCL/LCL/LCL/LCL/LCL/LCLw/LJ(x/LRy/L[q/LOP{/Lk |/LWhg}/Ljz~/L^/LD@/LFj/Lp$ ~/LCL/LfY |/LCL/LG/LA]/LIY/L Gu/L CLt/L CL/L g /L p~ /L m 5/L Kx;6/L M=/L CL/L CL:/L E2;/L E/L kUԽ?/L lJ*@/L mGbA/L po,| /L rCLD/L tn E/L vGF/L wF"iG/L x[/L |k/L }pg/L ~j3/L U/L `|/L E/L d7' /L ` /L K"/L M[!/L CL /L CL/L CL/L _ /L CL/L @R/L sF /L Bw/L @/L M`B /L ~/L CL/L CL/L CL/L CL/L CL/L E/L He/L T/L v /L F /L @/L mv /L Q /L q/L I_/L @/L Ai/L q /L y7L/L z /L Brd/L F?/L V/L k /L b"" /L `)/L OVf/L ^/L CL/L CL/L !CL/L "CL/L #CL/L $CL/L %CL/L 'CL/L (CL/L +M /L ,I/L -IK/L .H|/L 1y/L 2y}e/L `}f/L o M/L Py N/L REt<O/L S@*P/L UGvQ/L e)R/L OYS/L q T/L EV/L e X/L H$Y/L KI[/L k}\/L O1^/L d_/L oUU `/L C Ka/L [{b/L [xRc/L V}q/L CL/L CL/L CLg/L sc /L CL/L CL/L CL/L CLm/L H!n/L o/L p /L CL/L CL/L CL/L CL/L CL/L CL/L CLw/L FaHx/L Upy/L \/L OP{/L j |/L VS}/L iuF~/L ^/L D/L F/L o۔ ~/L CL/L g |/L CL/L H /L  /L Ik/L K/7u/L CLt/L CL/L gT /L o /L m( 5/L Kl6/L M.c/L CL/L CL:/L E;/L D1/L!hH!/L"\S3"/L#OP#/L$rs3$/L%Is%/L&Mp&/L'L'/L(L (/L)C/L+CL*/L-K/L1CL-/L3B8P/L6CL/L7CL0/L9@۶2/L;L`3/LCL/L?CL/L@CL$/LCLC%/LDJs&/LGK/LICL*/LLL~z,/LMQRk/LOCL./LQ} /LSCL/LTCL/LUCL/LWCL3/LYoȋ4/L[A6/L^T97/L_S8/L`K9/LcD:/LdNI;/LeM3/LkT?/LlJ@/LmGA/Lpm /LrCLD/Ltk_ E/LvGF/LwF3G/LYuN/Lm/LsK3/Ln/LV2/L`ݴ/LEG/LdM /L`S /LIp/LL!/LCL /LCL/LCL/L`q. /LCL/L@-S/Lw /LA/L~ /LN3 /L~:/LCL/LCL/LCL/LCL/LCL/LE/LH5/LX1/Lv /LFD /LA+/Ln$ /LT3 /Lm/LIHU/L @L/L A-/L r# /LyG/Lz /Lrk /LD_/LVyq/Lkd /L^ /L^C3/LNf/L^/LCL/L CL/L!CL/L"CL/L#CL/L$CL/L%CL/L'CL/L(CL/L+M2 /L,I</L-IM/L.H/L2k/L5k}e/L^ғ}f/L oYW M/L{x N/L}EO/L~CP/LGvQ/LdPR/LOoS/Lq T/LKKV/Lq! X/LHD<Y/LKb[/L\/LNV^/Lb_/Lx `/LBAa/Lhb/LeW c/L`L/LCL/LCL/LCLg/Ls /LCL/LCL/LCL/LCLm/LGn/L@o/LqD /LCL/LCL/LCL/LCL/LCL/LCL/LCLw/LHx/LSffy/L\/LOP{/Lu; |/LV}/Lf3}~/L^/LC</LF/Lp3 ~/LCL/LdT |/LCL/LH=%/L /LI/LP[2u/LCLt/LCL/LfW /Lp /LlX 5/L0Kvj6/L1M6/L3CL/L4CL:/L6FR;/L7C/LVIB?/LJ@/LG5A/Ln /LCLD/LmYk E/LGdF/LF<G/L[B/Lj/LoH/Lh4/LV/L_/LE5/Lb. /L_x= /LI/j/LKc!/LCL /LCL/LCL/Lb /LCL/L@Je/Lv /LD/L@X/LJ J /LM^/LCL/LCL/LCL/LCL/LCL/LEl/LHW/LVyq/Lv /LFL /LA+/Lm /LV$ /Lq3/LI8/L@(/LBRs/L y{ /L yO/L z[ /L DG/LGJ/LVK/Ll& /LXff /L^/LOS3/L^/LCL/LCL/LCL/LCL/L CL/L!CL/L"CL/L#CL/L$CL/L'M/LQI&/LRIq2/LSH/LUz33/LVz33}e/L^}f/Lm M/Ltyȥ N/LvEYO/Lx{ P/LyGQ/L|f7NR/L}P'9S/L~p< T/LB(&V/L_14 X/LH;1Y/LK~&[/L2\/LOJ^/LeZ]_/Ldc `/LAia/LWfb/LYffc/LS/LCL/LCL/LCLg/Ls /LCL/LCL/LCL/LCLm/LGn/L@o/Lp /LCL/LCL/LCL/LCL/LCL/LCL/LCLw/LJ >x/LU#y/L]./LOP{/L_UV |/LVx}/Liu~/L^/LC/LF%/Lp^ ~/LCL/Lb |/LCL/LHH /L ~ /L!I/L"Fu/L$CLt/L%CL/L(edZ /L)p/ /L*lE 5/L,Kg6/L-M*/L/CL/L0CL:/L2F;/L3CBGF/LC}uG/LD]=qH/LEL L/LG\@M/LHfs4N/LIr&gO/LLl P/LMeд Q/LNCaR/LPTT/LQNU/LRN;V/LSDg/L}CL/L~CLY/LBZ/LE/LCL/LCL]/L|` ^/LvI /LCL/LOPa/L@%U/LCL/LCLd/LE/LCLf/L^/LCLh/LS,i/LS~/LCLk/LZ"Q l/LP{ m/LN n/LdLo/LkPp/Lq8R q/Lm# r/Ll s/LMt/LLu/L| z /LCL/LCLx/LALy/LQHz/LE/LCL/LCL}/LF~/LMzS/LM]b/LCC/LCL~/LCL/LGg/LX` /LiL/Ll/Lg/LCL /LwS /LCL/LCL/LCL/LCL/LE/LCL/L CL/L k) /L x /LCL/LCL/LCL/LV: /LZ>f/LQQ/LN /LN/LDf&g/LEi>/LFiL!/LG`"/LHW&g#/LJB`$/LKI\%/LLM&&/LMLZ '/LNL-g(/LOC*/LQCL*/LSO&/LVCL-/LXB/L[CL/L\CL0/L^A2/L`LĂ3/LaM44/LbDS|/LdCL6/Le]/LfCL8/LhF//LkCL:/Lm~ /LpCLK%/L?I6&/LBRX/LDCL*/LGL,34C34CL.34 A34 CL34 CL34CL34CL334o434A634[734\834Pf934D:34J33;34Lf<34I3334!CL>34$T?34%J!@34&GA34(o 34+CLD34-oK E34/GF340FJMG341Y345mvf346r347l34:WW834;]-34dF34edp 34f` 34gH/34jKj!34lCL 34mCL34nCL34pf 34sCL34uAO34vx# 34xG34yAK34zJ{ 34|Ho34~CL34CL34CL34CL34CL34E34H34S34wl 34F 34A 34n 34W 34qf34Iew34@034C34| 34yS34z 34p- 34Du34VV34lR 34^ٚ 34^f34Pf34^34CL34CL34CL34CL34CL34CL34CL34CL34CL34M534I34Ii34H34z3334z33}e34z^a7}f/L(l M341xs N343EjO344B`P345HQ348eOZR349PNqS34:p| T3434NCL34OCL34PCLg34SsL 34UCL34VCL34WCL34XCLm34[GHn34^go34`qn 34bCL34cCL34dCL34eCL34fCL34gCL34CLw34I\x34Rqy34[34OP{34n"# |34V}34g~34^34C34F*34of ~34CL34b3 |34CL34H>34@#34IE34Ku34CLt34CL34e7 34pA 34ky 534Kq634M 34CL34CL:34Fq;34B<34Zp?34D34CL34CLB34@C34wJD34EWE34dF34~=qG34\H34Lʹ L34\M34X34N34cO34 lD P34 e>t Q34 CpR34TT34NzU34N V34D34CL34CLY34BZ34D34CL34CL]34{a ^34u} 34!CL34$OPa34'~l^ 34*CL34+CLd34-E234/CLf34Y^34ZCLh34]Oi34`S34bCLk34eZ"Q l34fOp m34hM\ n34jco34lj݃p34nr=q q34ooH r34pp3 s34qMt34rLu34u{ 34xCL34yCLx34{Aly34|O1z34}A34CL34CL}34F~34MQ34MRo34Cp34CL~34CL34G34X# 34lC334lL34gFg34CL 34z 34CL34CL34CL34CL34EsZ34CL34CL34mm 34{ 34CL34CL34CL34Vˆ 34U34Nf34K!34N34bH34c34e(!34d "34Wf#34D$34I %34MN&34Lo'34LD-(34DG34CL*34J-A34CL-34EsZ34CL34CL034B"234 M 334!Mat434"D`34$CL634&]34'CL834)F34,CL:34.)b 341CL<343@&=344F347CL348CL@34;NA3434QUqv?34RJ@34SGKA34VpY 34YCLD34[nT E34\GF34]F[G34^Z;34bm$34cs334dl>g34gXM34i[34jFnz34kf/ 34lbb 34nKh34oN{K!34qCL 34rCL34sCL34vg 34yCL34{Al34|vR 34}F 34~A34KX 34~34CL34CL34CL34CL34CL34E34I&34XN34w_ 34G 34B}34nT 34V 34m34I|;34@34A34s8 34y734{ 34o 34F/34V34l 34^D 34^P34OS334^34CL34CL34CL34CL34CL34CL34CL34CL34CL34M34I34Ioa34H34yf34yf}e34\1+}f34lu M34w+ N34ENqO34@P34HwQ34f\R34PRS34~Ü T34D@V34dQK X34GPY34K[34x\34L9^34c`_34m `34Aa34Yb34[xRc34X34CL34CL34CLg34s{` 34CL34CL34CL34CLm34G*#n34o34r 34CL34CL34CL34CL34CL34CL34CLw34Ix34Wfy34\434OP{34g |34WN}34f%/~34^34Cty34F&t34o; ~34CL34b8 |34CL34 H 346 347I=348L u34:CLt34;CL34>eo 34?p 34@l8 534BK634CM 34ECL34FCL:34HF:;34IAi<34JZ s?34KF34NCL34OCLB34Q@C34RDWD34UE1E34Wa34F34XG34YTkH34ZM[ L34\o.M34]l&gN34^x O34ak P34bd Q34cCZR34eT|T34fNlU34gN16V34hD34jCL34kCLY34mCwZ34nDZ34CL34CL]34|} ^34w 34CL34OPa34@˹34CL34CLd34EW34CLf34^34CLh34L i34Q34CLk34Z!34 4e3"34 5Z&g#34 6zٚ$34 7I<%34 aMW&34 bM'34 cL(34 dC޲34 fCL*34 h],=34 kCL-34 mG&"34 pCL34 qCL034 sB234 uMh334 vM434 wIN34 yCL634 z]34 {CL834 }F34 CL:34 @;34 CL<34 @=34 F/34 CL34 CL@34 NA34 MB34 z 34 CL34 CLE34 wm}H34 OI34 Z< 34 i& 34 i| 34 Go34 G} 34 N34 k 34 ixB 34 G34 nZ 34 }34 B334 PW34 I334 KA34 E34 K)34 EV34 Q34 J,34 L34 JP34 d] 34 DF 34 @Y/34 CL34 Ep34 DF-34 CL34 CL34 CL34 CL34 (CL34 )CL34 +CL34 ,CL34 /B334 0wf34 1D34 2VR34 3\34 4Z޹34 6CL34 7CL34 9CL34 :CL34 ;CL34 ^34 ?CL34 @CL34 BCL34 CNaM34 ECL34 HCm34 ICL34 JCL34 Lz)B 34 OCL34 PCL34 QCL34 RCL$34 UL%34 VJ \&34 YR~134 [CL*34 ^L(,34 _D34 aCL.34 c~l^ 34 CL34 CL34 CL34 CL334 p-434 A634 PS3734 Mp834 Ki934 Dz:34 Kp;34 Mc4<34 Ii34 CL>34 U?34 J@34 GfA34 n 34 CLD34 n}[ E34 GzF34 FwG34 [34 m834 rVg34 l34 Yi34 _\u34 G34 d7' 34 `EA 34 G34 Jā!34 CL 34 CL34 CL34 `S 34 CL34 BUZ34 x 34 @34 At@34 V34 S34 CL34 CL34 CL34 CL34 CL34 EU34 H34 P34 w 34 G 34 B8P34 me 34 R+ 34 rɚ34 I034 AG34 CO34 wB 34 yp34 !{in 34 #t 34 $G34 &V34 )l 34 TXn 34 U^f34 VP 34 W^34 XCL34 ZCL34 [CL34 \CL34 ]CL34 ^CL34 _CL34 aCL34 bCL34 eL34 fI:34 gI}34 hH34 kz34 lz}e34 PD}f34>l M34 w4 N34 E[GO34 C[GP34 H5Q34 e<R34 PuS34 AT34 JgvV34 o X34 H*Y34 K [34 ¨ O\34 P0[^34 fim_34 w `34 Cfa34 Xb34 [)c34 UQ34 CL34 CL34 CLg34 s\. 34 CL34 CL34 CL34 CLm34 HGn34 @o34 r 34 CL34 CL34 CL34 CL34 CL34 CL34 CLw34 Iqx34 X\y34 [{34 OP{34 u,` |34 UB}34 i,V~34 ^34 !C34 "F!34 %o ~34 (CL34 *a |34 ,CL34 /H34 2~Ü 34 3I/j34 5PBu34 7CLt34 8CL34 :fb 34 ;o 34 =l{ 534 ?K*634 @M(34 BCL34 CCL:34 EF;34 FB<34 GZ s?34 HG34 KCL34 LCLB34 N@JeC34 P@D34 SFzE34 U]F34 VtW G34 W_GH34 M L34 iRM34 g#N34 r=qO34 k_ P34 d/ Q34 CR34 U'[T34 NS U34 NV34 E34 CL34 CLY34 CZ34 DZ34 CL34 CL]34 | ^34 w 34 CL34 OPa34 @34 CL34 CLd34 EW34 CLf34 ^34 CLh34 K i34 P34 CLk34 Zb l34 N m34 M n34 do34 kp34 t q34 t=q r34 uf s34 Mt34 Lu34 |} 34 CL34 CLx34 B}y34 Jz34 B 34 CL34 CL}34 Fm~34 M 34 M34 D34 CL~34 CL34 G34 X 34 lH34 j34 e434 CL 34 {LS 34 CL34 CL34 CL34 CL34 My34 CL34 CL34 m- 34 ~ 34 CL34 HCL34 ICL34 LV 34 Mi34 Ncf34 O^34 RN34 TaQ34 Ud\34 Vd!34 Wg4"34 Xb#34 YEg$34 ZIS%34 [M4&34 ]M'34 ^M+(34 _@Y34 aCL*34 cb534 fCL-34 gGJY34 jCL34 kCL034 mBw234 oM334 pM434 qE34 sCL634 u]34 vCL834 xF34 {CL:34 }@-S34 CL<34 @gv=34 DV34 CL34 CL@34 OBA34 MZB34 } 34 CL34 CLE34 sH34 ^I6I34 @ 34 kQ 34 j> 34 E 34 D34 K34 l 34 ixB 34 D34 B34 } 34 BV34 P5234 Ig34 L34 E34 K<-34 EV34 K34 J(34 LN34 JP34d] 34DF 34Eʘ34CL34E``34DF-34CL34 CL34!CL34"CL34#CL34$CL34%CL34&CL34)vf34*q334,Dt34-P34.OxR34/MR341CL342CL343CL344CL345CL347CL348CL349^34:CL34;CL34NQl34@CL34BC 34DCL34ECL34G{ 34JCL34KCL34tCL34uCL$34wL%34xIg&34{Kp34~CL*34M ,34C34CL.34c 34CL34CL34CL34CL334p434A634S734S834Mff934Dр:34Hvg;34J3<34GY34CL>34U*;?34JA@34G A34o۔ 34CLD34o E34G5F34FG34Y34mf34s34lə34Y34\[34G`34e 34a 34E34H!34CL 34CL34CL34d7' 34CL34By34wna 34A^v34B}34V34Q34CL34CL34CL34CL34CL34E34H34X.34x+ 34 F 34 Bn34 n 34V 34nf34[34bI{.34cH34fi34ii}e34F}f34 :mz M34v N34ELMO34zr P34H8Q34fR34PnS34r1 T34B#V34_ X34H:HY34L([34ė\34Lۼ^34eu|_34d `34D\a34\ٚb34[pc34U3434CL34CL34CLg34s 34CL34CL34CL34CLm34Hn34go34s's 34CL34 CL34 CL34 CL34 CL34CL34CLw34HLx34Xqy34\G34OP{34^ |34Us!}34g~34^34!D34#G*34&o ~34(CL34*a |34,CL34/H343~' 344I345FOu347CLt348CL34;d@ 34

34=l& 534?K634hM<34jCL34kCL:34mG;34nNOM<34oZ;[?34pF34sCL34tCLB34v@C34x@ND34{FE34}^)F34~q(G34S >H34Ml L34^)M34]N34hٙO34k/ P34dp Q34CR34UET34N7U34MV34EZ34CL34CLY34D- Z34D34CL34CL]34| ^34wna 34CL34OPa34@34CL34CLd34E34CLf34^34CLh34Jti34O34CLk34Zah l34P m34Pk n34dYo34k=p34rG q34n) r34oaH s34Mlt34Leu34|& 34CL34CLx34B y34REz34B}34CL34CL}34Gg~34M934M34DZ34CL~34CL34G} 34 X 34 lH34 j34 e434 CL 34 {LS 34 CL34 CL34 CL34 CL34 My34 CL34 CL34 m- 34 ~ 34 CL34 HCL34 ICL34 LV 34 Mi34 Ncf34 O^34 RN34 TaQ34 Ud\34 Vd!34 Wg4"34 Xb#34 YEg$34 ZIS%34 [M4&34 ]M'34 ^M+(34 _@Y34 aCL*34 cb534 fCL-34 gGJY34 jCL34 kCL034 mBw234 oM334 pM434 qE34 sCL634 u]34 vCL834 xF34 {CL:34 }@-S34 CL<34 @gv=34 DV34 CL34 CL@34 OBA34 MZB34 } 34 CL34 CLE34 sH34 ^I6I34 @ 34k. 340j 341DV342DB343K)344ll 345ixB 346D_348B34:}34;BV34>Pe34@I34AL34DE34FKA34IEV34JR.34KJX34ML!34OJP34Peb3 34SDF 34T@34VCL34YEg34\E34^CL34_CL34`CL34aCL34cCL34dCL34eCL34fCL34ivg34jp334kCFf34MR34VH34OxR34CL34CL34CL34CL34CL34CL34CL34^34CL34CL34CL34Nl34CL34Cݑ34CL34CL34zu 34CL34CL34CL34CL$34Lu%34J<&34Hgp34CL*34M,34D*#34CL.34U 34CL34CL34CL34CL334pt434A634W9734V#4834O3934Dk:34G#4;34Jvf<34G34CL>34V?34J@34 GgA34 p 34CLD34of E34GF34FG34[E34kk334p34j^g34YM34^b34 Grv34!dp 34"`P 34#E]34$H@!34'CL 34(CL34)CL34+gJ 34/CL341B\342vh. 343@.34\A{34^li34_34aCL34bCL34dCL34eCL34fCL34iE34jH34kZP34nxt 34qFff 34tBy34un$ 34vVL 34yo34|I34}A`34~D$34vv 34yC34{ 34u65 34G34W34mJ 34aUU 34^34OS334^34CL34CL34CL34CL34CL34CL34CL34CL34CL34Lڄ34IA34I34H34i34i}e34^Or}f34;k\ M34v}K N34EO34AxP34GQ34f3R34PY#S34sc T34F:BV34g6 X34(G~4Y34*K[34+|v\34,O ^34/b?_340q* `342Ca343ZǮb345Yc346S{348CL349CL34:CLg34CL34@CL34ACL34BCLm34EHRn34H@)o34Ir 34KCL34LCL34NCL34OCL34PCL34QCL34RCLw34UM >x34VSffy34X]\)34YOP{34\kwx |34^Un}34_g~34^34D}t34F34n ~34CL34ad |34CL34Hu34~# 34H34Nu34CLt34CL34d 34o| 34mȵ 534L 634M@34CL34CL:34G );34N]2<34Z$?34F>K34CL34CLB34^ C34DD34FTE34UF34nG34TfH34M L34kM34gpN34sBO34k P34d Q34CR34T:T34NU34MV34E%34CL34CLY34DuZ34DY34CL34CL]34|} ^34 wl 34 CL34OPa34@ML34CL34CLd34E34CLf34^34CLh34Ji34N34 CLk34#Z|7 l34$PL m34%Off n34Pco34Rkp34Tt q34Uq r34VqG s34WMt34XLNu34[|ƚ 34^CL34_CLx34aBy34bQzNz34cB}34fCL34gCL}34iG&"~34kMZ34lMV34mD34oCL~34pCL34rGB34uU 34vg34wi34xd334zCL 34|yN 34CL34CL34CL34CL34F34CL34CL34ll 34xLX 34CL34CL34CL34i@ 34^{334Wf34T334O(34`>34ck34eٙ!34Es3"34AI#34g $34I+K%34M&34L:'34M((34DE34CL*34MS34CL-34GX34CL34CL034@234M334M434Eޢ34CL634]34CL834E*34CL:34@u34CL<34|j =34C~34CL34CL@34!NQlA34"MB34%{a 34(CL34)CLE34+qP2H34-gI34.a 341ixB 342ixB 343D_344D345JP347ixB 348[- 349D%34:mwv 34<}34=Aҩ34@P'T34BI34CL34FE34HL34KEV34MLZ34NJ\34PL34QJP34Reb3 34}DF 34~@J34CL34JP34DF-34CL34CL34CL34CL34CL34CL34CL34CL34vf34lg34C{334OxR34MR34MR34CL34CL34CL34CL34CL34CL34CL34^34CL34CL34CL34NU34CL34C34CL34CL34yN 34CL34CL34CL34CL$34L %34JU#&34Q834CL*34L,34QUN34CL.34}h 34CL34CL34CL34CL334q434A634I734F 834| 934D:34F;34I<34FY34CL>34 Up?34 J@34 HA34n`* 34CLD34m E34GF34FkG34Y34m34rQ34ElL34HZv34I_e34JGh34Kdp 34L`P 34MF[G34NI=!34QCL 34SCL34TCL34Vd 34YCL34[BF34\v4 34]F34^A34`dg34bf34dCL34eCL34fCL34gCL34hCL34kEm34mH^34nQ߱34qx 34tF 34vBc34wn 34xRA 34{rf34~Ig34A*34CW34uZ 34yC34| z 34u 34G34W!34m7 34W 34^34O334^34CL34CL34CL34CL34CL34CL34CL34CL34CL34L34IA34I34Hx34gf34gf}e34`tH}f34k M34w+ N34EO34@v`P34HQ34fR34PNqS34 qJ T34!GdV34"i X34%GZY34&K[34'*\34(O:P^34+ea$_34,l `34/Bba340s4b341sc342p344CL345CL346CLg348sc 34;CL34CLm34AH-Jn34D@o34Er| 7CL7CL7CL7CL7CL7 CL7 CLw7 Lx7Z\)y7YH7OP{7gfg |7V}$}7j~7^7DK7F%7!t ~7#CL7%a |7'CL7*Gx7-~s 7/I70Ipu72CLt73CL76e\ 77q 78m 57:L,67;MG7eCL7fCL:7hG;7iM<7jZ1?7kFE7nCL7oCLB7qK C7s}D7vF 0E7xWF7ynG7zYuH7{NN7wO7k P7dp Q7CμR7U#T7MrU7MV7E~:7CL7CLY7DVZ7D7CL7CL]7| ^7v 7CL7OPa7@&7CL7CLd7E7CLf7^7CLh7Ii7M7CLk7Z l7M. m7LR n7co7lzbp7oq q7l( r7lR s7Mt7LUu7} 7CL7CLx7BFy7P2z7B"7CL7CL}7G-a~7M7M7E37CL~7CL7G7Y 7`7b7,]g7.CL 70z 73CL74CL75CL76CL78E7;CL7k 7?~- 7BCL7CCL7DCL7GWWO 7Ie7J^f7K\7NOH7P`g7Qc7Rd34!7S}"7Trf#7UWf$7VI.%7WMc&7XM'7YM/L(7\~ 7_CL*7aa7dCL-7fG7CL7CL07B27M937M47E7CL67]7CL87Fm7CL:7@r7CL<7A2=7F7CL7CL@7O%A7M˻B7Am7CL7CLE7z_]H7K\I7mR 7ju 7j ^ 7Hd7H 7N7lR 7ixB 7H*7B7}˜7BV7PW7I7K=7E7L7EV7Qr7J<7 M}7 J7 eb3 7DF 7@-7CL7G^7DF-7CL7CL7CL7CL7CL7 CL7!CL7"CL7%vf7'}37(H7)MR7*V!H7+OxR7-CL7.CL7/CL7XCL7ZCL7[CL7\CL7]^7^CL7_CL7`CL7bNH 7dCL7fC7hCL7iCL7ky 7nCL7oCL7pCL7qCL$7tLC%7uJ&7wK+7zCL*7}L,7~G7CL.7~ 7CL7CL7CL7CL37qIk47A67L77H87B97D@:7H;7K3<7Gc37CL>7Tl<?7J*@7HTA7o۔ 7CLD7o E7G F7FNG7[w7oL7s7m7Z7`-7G=7ejU 7a 7I 7L6!7CL 7CL7CL7a 7CL7By7w 7GgR7A7D 77!CL7"CL7#CL7$CL7%CL7)E/7*I 7+St7.y 71F 73BUZ74n 75P 78r97;I7=A7>C7AvY 7ByC7C|R8 7Du 7EG7GW: 7Jm 7N\ 7O_7POf7Q^7RCL7SCL7TCL7VCL7WCL7XCL7YCL7ZCL7[CL7L7IA7I7H$7zL7zL}e7\I}f76l M7v`4 N7EbO7@P7HeQ7fR7PcS7q9 T7EIV7e| X7GY7Kh[7R\7L9^7b"_7oq `7B_a7[Qb7Zc7Wf7CL7CL7CLg7rR 7CL7CL7CL7CLm7GȬn7@Do7sW 7CL7CL7CL7CL7 CL7 CL7 CLw7Gx7S4y7\H7OP{7h |7V }7fV~7^7D7F`7"p ~7LCL7NbR |7PCL7TGP7WU 7XH7YIu7[CLt7]CL7_em 7`q 7al 57cL067dMA7fCL7gCL:7iGJ;7kMQ<7lZ?7mFR7pCL7qCLB7s: C7u|D7wEE7y[F7zzG7|c\H7}NjF L7~jYM7WRN7c\*O7k P7d/ Q7CR7UN5T7MU7M=IV7Ei7CL7CLY7EZ7D7CL7CL]7|} ^7v4 7CL7OPa7r 7CL7CLd7EG7CLf7^7CLh7bi7M7CLk7Z l7T m7Tk n7c33o7l,Sp7p q7l r7mff s7Nt7Mu7|& 7CL7CLx7B1 y7N_z7D%7!CL7"CL}7$GgR~7&N7)M7*D7,CL~7-CL7/G73Y 74h~g75j)76cf78CL 7:z[ 7=CL7>CL7?CL7@CL7BF 7ECL7FCL7HmYk 7I~s 7LCL7MCL7NCL7yWn 7zb7{[337|Wnf7O087a#7b{7c!7{"7w#7^ $7I4^%7MB&7L'7M9T(7CS7CL*7NX7CL-7Gn7CL7CL07B8P27Ni37Mn47EV7CL67]7CL87F(7CL:7@7CL<7A+=7G7CL7CL@7NA7MB7{a 7CL7CLE7@~H7J `I7UbZ 7k 7kK 7IiN7Iw7Px7mv 7ixB 7I 7B7}%7BV7PW7I7KA7 E7 L7EV7Lv7H87Ny7J97eb3 7DF 7A@-7CCL7FE7IDF-7KCL7LCL7MCL7NCL7OCL7PCL7QCL7SCL7V 7Wt6g7XC{37YU\7ZVR7[VR7]CL7^CL7_CL7aCL7bCL7cCL7dCL7e^7fCL7gCL7hCL7jNE7lCL7oC07pCL7qCL7s{ 7vCL7wCL7xCL7yCL$7L%7IF&7LR7CL*7L,7D?7CL.7 7CL7CL7CL7CL37qR47A67L 77J,87EVg97D:7Ip;7K3<7Hٚ7CL>7R?7J@7HmA7p< 7CLD7p E7GF7FЌG7Z(7p7t7m7 [k7 _[7 G`7 ex 7a 7J+7L!7CL 7CL7CL7_v 7CL7Brd7wQ? 7 B7!A7"N 7$p7&CL7'CL7(CL7)CL7+CL7.E7/IN70Z%573yN 76Fff 78BN79o 7:P 7=mf7AI7BA]7CC7nv- 7oy7p|j 7qxe 7rG7tW @7xm 7{] 7|^37}O\7~^7CL7CL7CL7CL7CL7CL7CL7CL7CL7Lg7IC7I[7H7l=q7l=q}e7"^}f7_lHL M7u=< N7EO7CvP7H/Q7edR7PCS7p- T7JV7pv_ X7GY7K [7+\7P^7ex_7vr `7Aa7rcb7vc7r7CL7CL7CLg7rb 7CL7CL7CL7CLm7Gxn7 @;3o7 sN 75CL76CL77CL78CL79CL7:CL7;CLw7>Jx7@Yy7A^\7BOP{7Cq |7DT}7EhU~7G^7KC 7LFw7On ~7QCL7Sb |7VCL7YGߗ7\c 7]H7^Mu7`CLt7bCL7de9X 7ep 7fl 57hL67iMA7kCL7mCL:7nG} ;7Lp<7[?7F[G7CL7CLB7 C7zPD7E E7UF7mG7[qH7N L7kW M7i N7sgO7kw P7dM Q7CR7U?T7MU7LJV7E7CL7CLY7EZ7DY7CL7CL]7|ƚ ^7ua 7CL7OPa7~s 7CL7CLd7EV7CLf7^7 CLh7 m'ci7 L7 CLk7 ZD l7 O8R m7 N n7 dffo7 lkp7 qp q7 nB r7 k s7 Mlt7 M u7 | 7 CL7 CLx7 !BFy7 "Lz7 #BN7 &CL7 'CL}7 )GQ~7 +NF7 ,M7 -D7 /CL~7 1CL7 3G7 5Tt 7 6j{37 7m7 `g7 bCL 7 d{/ 7 gCL7 hCL7 iCL7 jCL7 lE7 oCL7 pCL7 rm7 7 sz 7 vCL7 wCL7 xCL7 {`k 7 |iL7 }a37 ~^7 O;7 ^{7 ap7 b!7 wff"7 p#7 Zf$7 I@+%7 MM&7 MJ'7 MT(7 : 7 CL*7 mns7 CL-7 Gx7 CL7 CL07 At@27 N"37 M47 En7 CL67 ]7 CL87 E7 CL:7 @7 CL<7 ~ =7 DX7 CL7 CL@7 NyA7 McB7 { 7 CL7 CLE7 I<H7 M+I7 c$ 7 ixB 7 ixB 7 I/j7 H 7 Px7 ixB 7 \5 7 H7 m 7 (}7 )BV7 -PW7 /I7 0L7 3E7 5L7 8EV7 :R'7 ;H87 =M7 >K7 ?eb3 7 CE7 D@7 HCL7 KEg7 NDF-7 PCL7 QCL7 RCL7 SCL7 TCL7 VCL7 WCL7 XCL7 [}27 \p7 ]C{37 ^OxR7 _VR7 `Vff7 bCL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 NE&7 CL7 CI7 CL7 CL7 z % 7 CL7 CL7 CL7 CL$7 L0%7 JTj&7 N]7 CL*7 Ld,7 Q+}7 CL.7 ~] 7 CL7 CL7 CL7 CL37 qg;47 AH67 K77 O87 Eɚ97 D:7 Kg;7 K@<7 K 7 CL>7 SuI?7 J@7 HA7 n 7 CLD7 m E7 GF7 F:G7 [7 p7 v337 o7 [^7 ^7 Gi~7 d D 7 `6 7 J<7 L!7 CL 7 CL7 CL7 _޿ 7 CL7 #A:7 $u 7 %@7 &A+7 'N9 7 )@t7 +CL7 TCL7 UCL7 WCL7 XCL7 [E7 \I g7 ]UԽ7 `y 7 cF 7 eB\7 gn`* 7 hP 7 krɚ7 nI7 oA7 pC|7 su6 7 ty7 u|ƚ 7 wz[ 7 xG7 zW;7 }n4a 7 _Q 7 ^6f7 Q337 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 L`i7 II?7 I,7 H7 {337 {33}e7 'c }f7dl M7(u N7*ERO7+B@.P7,HAQ7/f R70PjS71{ T73IV74n X76H(2Y77K[78L\79L^7=f@_7>x9 `7hAa7iZ\b7jZc7kTL7mCL7oCL7pCLg7rs 7tCL7uCL7vCL7wCLm7{Gn7~4o7t$ 7CL7CL7CL7CL7CL7CL7CLw7Dx7Sy7]7OP{7ti |7U}}7dq~7^7C7F7n ~7CL7c |7CL7G 7@\7I7I_eu7CLt7CL7fJ 7qR 7m 57L67Mb^7CL7CL:7G;7KR<7[?@?7G07CL7CLB7K C7FIID7F%-E7VF7pG7aH7O%V L7lM7j#N7u>O7k P7d Q7DGR7UpT7M3U7L V7E7CL7CLY70E#Z71EO74CL75CL]77~ ^78vK 7;CL7>OPa7AK 7DCL7ECLd7GEsZ7JCLf7K^7LCLh7O\i7RV7UCLk7X[ l7YN m7ZNG n7]dLo7^mN#p7`q\) q7an( r7bk s7dNt7eMu7h 7jCL7CLx7B\y7Q?z7F!O7CL7CL}7G~7M7M7E 7CL~7CL7G7Z$ 7d7gg7b7CL 7y{ 7CL7CL 77CL7CL7D7CL7CL7l 7}# 7CL7CL7CL7W 7Uf7Lњ7J7O=7d{7i\*7jg!7b"7g#7Pff$7IK%7M&7M;''7Mvn(7@&7CL*7b+7 [Z7 CL-7G7CL7CL07Bw17G27N737MW47FB7CL67]7CL87GC7"CL:7$@b7'CL<7)A =7*Fi7-CL7.CL@71OnA72MB7]7 7`CL7aCLE7dH7eFvI7hV J7i~OI K7lIKL7nZn 7qk) 7rkQ 7sH 7tH/7vP07ym 7zixB 7|H7}B7}(7BO7PI7Iλ7KCu7E7L7EV7R'7H87Ny7K7dU 7E7A3#7CL7E``7DF-7CL7CL7CL7CL7CL7CL7CL7CL7vg7q7C7\7[7VR7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N\@7CL7C7CL7CL7zT 7CL7CL7CL7$CL$7&L>%7'Jl&7+Q7-CL*70L,71DaC73CL.75c 78CL79CL7:CL7;CL37=q47?AH67BLvf77CG87DBC397GDV:7HH3;7IKf<7JG6g7LCL>7OPtX?7PJ@7QH1CA7Tp^ 7VCLD7Xo E7ZH#F7[G G7\[_7jY7o7hg7Z+7^j7FG7e 7a- 7I7Lk]!7CL 7CL7CL7^y 7CL7AAh7u 7} 7@47Q 7k7CL7CL7CL7CL7CL7Ey7Hx7R7y{ 7F3 7B8P7n 7P 7pf7I{R7@^7BE7u} 7y7} 7wB 7GgR7V.7n$ 7ZH 7^l7Of7^7CL7CL7CL7CL7CL7 CL7 CL7 CL7 CL7L$L7IF7IK7H;7H7H}e7yi}f7l M7u. N7E'O7wo P7I,Q7hR7PQS7A"T7AV7]r X7HLaY7K[7F\7L}^7eS_7ec `7Ca7]=qb7^c7Xp7CL7CL7CLg7s% 7CL7CL7CL7CLm7H?ln7o7vn 7CL7CL7CL7CL7CL7CL7CLw7F34x7Sy7Y7OP{7_ |7S<}7fmi~7^7D87Fg7o ~7CL7bD |7 CL7 G7@Q7I :7LIGu7CLt7CL7eH 7r^6 7mi 57IL67JM|7LCL7MCL:7OG;7PJl<7QVm?7RF7UCL7VCLB7X@C7YAXD7ZF!QE7\S(F7]h >G7^MuH7_OjH L7`i\*M7afzN7bq@O7ekw P7fdq Q7gCR7iU[T7jLU7kLaUV7lE7nCL7pCLY7qEZ7sE9[7vCL7wCL]7y ^7zw3 7}CL7OPa7@x,7CL7CLd7Ez7CLf7^7CLh7W\i7Uk~7CLk7[Sv l7M{ m7L) n7bffo7mQp7o q7j= r7i s7Nt7Mku7 7CL7CLx7B+y7Rv=z7D7CL7CL}7G} ~7M7 M 7DM7CL~7CL7G07Z1 7ep7g 7b37CL 7{a 7 CL7!CL 7" p7#CL7$CL7&E7)CL7*CL7,m- 7-z;m 70CL71CL72CL74n0 76Vp77L78IP7;O7=k7>l7@m!7Ac&f"7BZ&g#7CN$7DIK%7EM&7FL'7GM}(;C;CL*;Vm+; f-e; CL-;G;CL;CL0;A1;g2;N0X3;M4;F3l;CL6;];CL8; EV[;"CL:;$@۶;'CL<;)A=;+F;-CL;/CL@;2NzA;3MB;6zF^ ;9CL;:CLE;d@NH;eCI;fk>S J;gKu K;i\wL;jZn ;lixB ;nixB ;oHؒ;pH;rNQ;uixB ;v\Rp ;wH/;xn ;z} ;{B;~O;I;L;E;L;EV;Kg;H8;NL;K <;eb3 ;DF ;@;CL;EJ;DF-;CL;CL;CL;CL;CL;CL;CL;CL;vvf;lg;B+3;OxR;VR;V;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;N_;CL;C;CL;CL;y# ;CL;CL;CL;CL$;L%;J`&;J;CL*;Lx,;O;,CL.;.~ ;0CL;2CL;3CL;4CL3;6q.4;8AH6;;Ay7;;HPO?;IJ@;JHCuA;Mn ;PCLD;Rmh E;TGF;UGjG;VY;Yg;[kg;\eg;_YS;`[;aF>;bc/ ;d`6 ;eI{;gK\!;CL ;CL;CL;_LK ;CL;AW3;w3 ;Gg;@`2;GZ ;~;CL;CL;CL;CL;CL;E;H/;P;y ;Fȉ ;Aq;mi ;O ;sFf;I;@;Cu;AT;y;}: ;{LS ;G4;Vx;n ;] ;^ff;Rf;^;CL;CL;CL;CL;CL;CL;CL;CL;CL; L; IL; I g; Hk;{;{}e;_}f7k M;avC N;cEO;dBǫP;fHQ;igDlR;jPS;kqV T;lI60V;nmt< X;pHiUY;qK[;sc\;tNg^;wd ~_;xwG `;zDza;{Z&fb;}Zc;~U;CL;CL;CLg;sW ;CL;CL;CL;CLm;Hln;fgo;v» ;CL;CL;CL;CL;CL;CL;CLw;Fx;Sy;VH;OP{;swx |;UJ_};g%~;^;D};FW;o ~;CL;b~k |;CL;G;@Q;HH;N@u;CLt;CL;e9 ;rE ;mȵ 5;K6;M;CL;CL:;G;;I<;Y?; Fs;#CL;$CLB;&@;C;(@D;+FTE;-W.F;.g*G;/N.H;0Oz! L;1l5M;2jYN;4tO;6j P;8c Q;9CR;;UnT;E`;@CL;ACLY;CE*Z;DEG;GCL;HCL];J@-S^;Kwl ;NCL;QOPa;T ;VCL;WCLd;YEd;CLf;^;CLh;SFyi;Tl:;CLk;[EE l;O# m;O n;do;m%Ip;rk q;m8R r;k s;N 't;Mu; ;CL;CLx;By;Q^z;B;CL;CL};GQ~;M;MX;E| ;CL~;CL;H*;Ya ;ef;g;cɚ;CL ;y@ ;CL;CL ;y;CL;CL;E*;CL;CL;k. ;}XI ;CL;CL;CL;W ;S;Jf;H3; O4; cE; h(; g !;kff";X#;K$;IS<%;N^&;M4';MJ(;@n;CL*;c{+;^{;CL-; G:;#CL;LCL0;NB1;OK@2;QN"3;RMn4;SF[G;UCL6;V];XCL8;ZGC;\CL:;^@;aCL<;cA=;eFb;gCL;iCL@;lOA;mMB;nA;pCL;qCLE;tvZH;uAI;xn J;yON K;|I?hL;~Z4 ;ixB ;ixB ;H[;G;N;kh ;]! ;Go;m> ;{;BN;Pv;Io;L;E;L;EV;PA;Jd;P(;K ;d ;DF ;A;CL;N;DF-;CL;CL;CL;CL;CL;CL;CL;CL;s3;svg;vf;U;VR;VR;CL;CL;CL;CL;CL;CL;CL;^;CL; CL;!CL;#Nu;$CL;'Cm;)CL;*CL;,y@Y ;/CL;0CL;1CL;2CL$;4L %;5J&;8JL;;CL*;>LkX,;?I*Y;@CL.;B} ;ECL;FCL;GCL;HCL3;Kq4;MAH6;OE7;xB38;y}29;|D:;~F;;H3<;E;CL>;R?;J@;HN_A;n$ ;CLD;m E;GF;GG;[U;hg;l;f;XV;\;F;eM ;aЊ ;H;K!;CL ;CL;CL;]b ;CL;B};x ;H;At@;K ;~g;CL;CL;CL;CL;CL;F;I$;W;y ;F ;A;nT ;P7. ;nf;IP;@x;Cq$;x ;y;}I ;{LS ;F;V;o,| ; ^s3 ; _ ; Q33;^;CL;CL;CL;CL;CL;CL;CL;@CL;ACL;DL4;EI>[;GI;HH;J{;K{}e;]+}f;k M;iu N;kE=O;lyU P;nH|Q;qhR;rPgS;sqHF T;tBiV;u_jA X;wHuY;xK[;z\;{JU^;d _;e `;C Xa;}b;}*c;|;CL;CL;CLg;s# ;CL;CL;CL;CLm;GUn;go;vY ;CL;CL;CL;CL;CL;CL;CLw;J4x;QRy;XQ;OP{;^ |;T.};dU~;^;DDm;F8|;s8 ~; CL; cJ |;CL;H;@|;H;Fu;CLt;CL;eX ;q ;n+ 5;K6; Mp;"CL;#CL:;%F;;&H<;'U?;(Fb;+CL;,CLB;.@nC;0@oD;3EE;5NRF;6`\*G;7GH;8OQ L;9fRM;:dBN;;oO;>k. P;?dE Q;@D%R;BUT;lLZU;mL V;nE;pCL;qCLY;sE2Z;tE*;wCL;xCL];z@;^;{v ;~CL;OPa;@;CL;CLd;EW;CLf;^;CLh;Qi;S;CLk;[ l;K m;K{ n;c33o;lIp;n q;h r;hf s;N3t;Mu;@;CL;CLx;By;Oz;Bn;CL;CL};GX~;M;Mb;EL;CL~;CL;H];Uη ;fx;gf;bp;CL ;z % ;CL;CL ;|;CL;CL;EZ;CL;CL;lD ;~> ;CL;CL;CL;W_4 ;S4;LK4; G3;4O;6b}q;8e;9g !;:g33";;Rg#;N~&;@L';AM(;BA;DCL*;FXus+;G[K;JCL-;LG;OCL;QCL0;SC1;TJS2;VNS3;WM4;XFc;ZCL6;[];\CL8;^GgR;aCL:;cA:%;fCL<;hA:=;iF/;lCL;mCL@;OA;M\B;z)B ;CL;CLE;CvH;AII;V J;PJ K;IZL;W ;k. ;j ;Hd;H ;N>;l ;ixB ;H*;B;|W;By;P.C;I;K?;E;L;EV;KK;J,;P(;K ;d ; DF ; A; CL; F3; E; CL; CL; CL; CL; CL; CL; CL; CL; u; l9; vg; U{; VR; VR; CL; CL; CL; !CL; "CL; $CL; %CL; &^; 'CL; (CL; *CL; +N_#; -CL; 0CҶ; 2CL; fCL; hz? ; kCL; lCL; mCL; nCL$; qKh%; rJ&; uO; xCL*; zL\,; {D; }CL.; Fv ; CL; CL; CL; CL3; q 4; AH6; A37; vFg8; x99; D`:; I3;; H3<; I#3; CL>; Q՚?; J&@; H_A; p$ ; CLD; oK E; G!F; G!OG; Y{ ; h3; mFf; g; W; _Ke; G; e>t ; ax ; I=; L!; CL ; CL; CL; ^ ; CL; Aq; wQ? ; @; @.; Opz ; ~11; CL; CL; CL; CL; CL; F; I=s; R;; )z % ; ,G ; .Aҩ; 0nB ; 1Pq ; 4sY; 7I~; 8@; 9C5; }I ; @sc ; AGQ; CV_; FoXB ; I_w ; J`; KQf; L^; MCL; OCL; PCL; QCL; RCL; SCL; TCL; VCL; WCL; ZLI; [I8; \IL; ]H; `z; az}e; d?}f;k M; uK N; E_O; BhP; IQ; hR; PS; p T; H>V; k9 X; HyY; K[; \; KN^; d_; u `; Bia; aBb; cgc; ^#; CL; CL; CLg; sW ; CL; CL; CL; CLm; Gn; o; v ; CL; CL; CL; CL; CL; CL; CLw; Ipx; Ty; Zz; OP{; pDD |; Tb}; e4~; ^; C; F?; o+ ~; CL; "cv |; $CL; 'G; (@; )I; UKu; WCLt; XCL; Zco ; \s5@ ; ]m 5; _K6; `Mf; bCL; cCL:; eFm;; fHnm<; gX?; hF; kCL; lCLB; n@C; pnD; sE{E; uFaHF; v[{G; w@{H; xOE L; yXM; zU{N; {`O; ~kQ P; d( Q; DR; UsT; L\U; K V; ET; CL; CLY; EZZ; Ed; CL; CL]; @^; v ; CL; OPa; Fv ; CL; CLd; E; CLf; ^; CLh; P6i; R; CLk; [@ l; N=q m; M3 n; d33o; mp; l q; f) r; f s; M`t; M(u; @b_; CL; CLx; By; Mz; DQN; CL; CL}; Gn~; MD; M+; !Ez; #CL~; $CL; &Hd; )Z"Q ; *g; +h; ,c[3; .CL ; 0|R8 ; 3CL; 4CL ; 5O; 6CL; 7CL; 9EG; ;R?;JE@;Hk~A;n ;CLD;m E;G:F;G-G;Zd;fQ;k3;ey; WSm; ^:C; F;c_ ;`S ;I;LM!;=CL ;>CL;?CL;A_v ;DCL;FA;Hy1 ;IAL;J@&;KJԀ ;M};OCL;PCL;QCL;RCL;TCL;WF i;XH);YV};\z ;_G ;aB?;bn4a ;cO ;gn3;jIy;k@r\;lC2;oxe ;pyh;q}X ;r~# ;sG;vUj;o ;eDD ;a@;Uf;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;L>;I?C;I!O;HM;j33;j33}e;K]/}f; Ziw M;tF N;EO;{{^ P; I Q; juCR; PS;p T;B[4V;_jA X;HY;KP[;H!\;J3^;eP1_;dr `;Aa;m{b;kٙc; l;"CL;#CL;$CLg;'tU ;)CL;*CL;+CL;,CLm;/G<@n;2go;4w@ ;6CL;7CL;8CL;9CL;:CL;;CL;lp;@p\ q;Aj r;Bk\) s;CNt;DM5u;E@X3;GCL;HCLx;JC y;KJ)z;LB8P;OCL;PCL};RGgR~;TMf;VM;WE;YCL~;ZCL;\H#;^Y ;_g;`jh;ad;cCL ;eyN ;hCL;iCL ;jO;kCL;CL;E;CL;CL;kh ;~% ;CL;CL;CL;W21 ;Vf;N`;L3;OQ;[;^#;_!;of";_#;Og$;IX%;N)F&;LZ';M(;C;CL*;P+;^?;CL-;H@;CL;CL0;Cw1;H2;NA3;Mr4;FJ;CL6;];CL8;GX;CL:;A{;CL<;B\=;F; CL; CL@;OͻA;MZB;| z ;CL;CLE;BH;~vI;l J;G"K;!ISL;#VNy ;&ixB ;'ixB ;(Hd;)H ;,N;/ixB ;0\o ;1H[;2m ;\{;]Bo;`O;bI;cKA;fE;hL;lEV;mLv;nI";pP(;qK;rc ;uDF ;vA3#;xCL;{Eb/;~DF-;CL;CL;CL;CL;CL;CL;CL;CL;lg;cVg;wp;O;MR;MR;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NTO;CL;C<;CL;OP;yz ;CL;CL;CL;CL$;K2%;J&;Q;CL*;LG,;J;CL.;}I ;CL;CL;CL;CL3;q4;AH6;F7;@f8;@49;D:;%F|;;&Hvg<;'E;)CL>;,QX?;-J8@;.H|A;1n4a ;4CLD;6l9 E;8H <F;9G1G;:X`;?ey;@j3;AdK3;DV;E_m;FFwp;Gd ;Hax ;JI;LK!;NCL ;OCL;PCL;R_i ;UCL;WA$Z;Xx ;ZGn;[ ;\@ؙ ;^}';CL;CL;CL;CL;CL;F;H ;O;z ;GD ;A;n0 ;OZ ;sL;I;@[;Bh;xH ;yh;}X ;y{ ;Fs;U;o ;c ;`l;T\;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;L';I=s;I;H;{;{}e;\Z{}f;k M;v& N;FO;BiP;IQ;h"R;PS;p3 T;GV;i X;!HY;"K[;#\;$K3^;'dNb_;Qtc `;SAMa;TXb;UUc;VQf;XCL;YCL;[CLg;]t ;_CL;`CL;aCL;bCLm;eGvn;h@ o;jxw ;lCL;mCL;nCL;oCL;qCL;rCL;sCLw;vDW x;wMy;y\;zOP{;}n"# |;Sq};d~;^;C;Eg;n ~;CL;c |;CL;G;AG8;I ;FT$u;CLt;CL;dY ;r ;nC 5;K{6;MY?;CL;CL:;Fs;;F<;[?;F[G;CL;CLB;AKC;zD;EwE;MGF;Z.G;BH;Oa L;Z M;WLN;aO;k_ P;d Q;DR;UST;L-XU;KXV;ESu;CL;CLY;E#Z; EO;#CL;$CL];&A$Z^;(u ;*CL;-OPa;0 O ;3CL;4CLd;6Ed;9CLf;:^;;CLh;>M֯i;AP8;DCLk;G[ l;HO m;IN n;Lco;Mmdkp;Ol q;PgW r;Qg s;RNt;|M3u;}@;CL;CLx;C'y;Sjz;DS;CL;CL};G~;Mq;M{;Em;CL~;CL;HG;ZX ;f;i0;b;CL ;{/9 ;CL;CL ;Y;CL;CL;D;CL;CL;k/ ;|\ ;CL;CL;CL;Vß ;Sf;J;Gp;O#;jQ;o;l!;j3";_3#;HL$;IK%;N&;Md';M(;AZ;CL*;e+;[L;CL-;A";CL;CL0;Yw1;M2;NB3;M4;F$5; CL6; ]; CL8; GJY;CL:;A;CL<;BF=;F;CL;DCL@;GOA;HMeB;K},l ;NCL;OCLE;R{H;S{I;V_6 J;W~K;ZI,L;\Y ;_j ;`jb ;aH*;bGo;dN;gl ;hixB ;jG;kB;m{ey;nB;qO;sI;tK?;wE;yL;|EV;}PP;HG;P(;K;eb3 ;DF ;@`;CL;EV;E*;CL;CL;CL;CL;CL;CL;CL;CL;cVg;avg;sf;MR;OxR;MR;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NI{;CL;C;CL;CL;zT ; CL;CL;CL;CL$;K{%;JQ&;KF;CL*;L?,;C;CL.;!Fv ;#CL;$CL;%CL;&CL3;)q>4;+AH6;.z47;/ky8;0m 9;2C+:;4L;;5K<;6Jff;8CL>;;R4?;Y> et> j> d>V\>`w|>Fe>e >b(\ >I :>KE!>CL >CL>CL>_x= >"CL>$A2>%y1 >&Fm>' >*/>+|>-CL>.CL>/CL>0CL>1CL>5F>6I*c>7Tfz>:z % >eGD >gA>hnT >iQ >lp >oI>q@> >rC>uy1 >vyh>w}I >xu' >yGQ>{U>~o >_L >^>Q33>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>K$>I@+>I#>H>ip>ip}e>*O2}f;jUf M>t{ N>F(O>| P>HQ>iR>QHS>p$ T>CV>b X>HdY>Kv[>\>LQ^>.d_>/gG `>0APga>3w{b>4wc>5wu>7CL>8CL>9CLg>;t. >=CL>?CL>@CL>ACLm>DFHn>Go>Hw >JCL>LCL>MCL>NCL>OCL>PCL>QCLw>TC34x>UL)y>WS>XOP{>[`wx |>]T}>^e~>`^>dCc>eF S>nT ~>CL>bo |>CL>GL>@>Hf>Jlu>CLt>CL>b| >r- >mx 5>KM6>MY?>CL>CL:>G;>FE<>YW?>F>CL>CLB>AC>wD>EXE>HfF>U\G>EkH>Or L>kM>h(N>rO>k_ P>d Q>CBR>UT>LU>KV>E5>CL>CLY>E Z>E@>CL>CL]>@^>t >CL> OPa>~] >CL>CLd>E>CLf>^>CLh>LҮi>OS>"CLk>%[ l>&L33 m>'LQ n>*cٚo>+m7p>-k q>/gL r>Xg s>YMt>ZM5u>[@EO>]CL>^CLx>`Cy>bR#pz>cF/>fCL>gCL}>iG~>kM>lM->mEv@>oCL~>qCL>sH9Q>uZ >vb>wc>x] >zCL >|{ >CL>CL >Y>CL>CL>EsZ>CL>CL>l >| >CL>CL>CL>V >Q&f>J#3>Gfg>P$>c>gB>g!>f">Yff#>vf$>IA%>MJ&>L'>L(>A>CL*>WP+>X>CL->A>CL>CL0>^%1>Kjq2>N0X3>MO4>Ey>CL6>]>CL8>G-a>CL:>A>CL<>BN=>F> CL>"CL@>$OjA>&MB>'B^>)CL>*CLE>-w6H>.yI>1\ J>2Y K>5IL>7V >:ixB >;ixB >=H9Q>?N>BixB >C\Rp >DHVF>Fn[ >H{ey>IB>LP>NIA>OK:[>RE>TM >WEV>XLv>YH{>[P(>K>eb3 >DF >@p>CL>EQ>Ee>CL>CL>CL>CL>CL>CL>CL>CL>l4>cVg>t>P>MR>MR>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>NE>CL>C>CL>CL>z >CL>CL>CL>CL$>K%>J?p&>L>CL*>L=,>N>CL.>A>CL>CL>CL>CL3>r4>AH6>y7>l38>qy9> C:> G;>J <>Gp>CL>>Pr?>J!@>HoA>n >CLD>l E>H F>G3vG> W_>LhX>Mng>Ng>QU>R`D\>TF>>Ue >VaL >WIiN>YL !>[CL >\CL>]CL>_cM >cCL>eA>fx >g@A>h@X>iG >k|>mCL>oCL>pCL>qCL>rCL>uFh>vID>wV>zy >~G >A>nT >Tv >nf>I,>@Bf>C8>y >y>}I >} >G>U,d>p$ >e >`,>U3>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>K$>IJ(>I>H>i>i}e>iZ}f>h8 M>t N>EO>FsP>HQ>iwR>PS>o T>FV>hbh X>HJY>KG[>\>K^>d3:_>r `>Aa>_8Rb>]޹c>YO\>CL>CL>CLg>s >CL>CL>CL>CLm>F(n>go>wU >CL>CL>CL>CL>CL>CL>CLw>@aHx>Ky>Qk>OP{>k |>Tw}>ekC~>^>CN2>F>n$ ~>CL>b |>CL>G>@>H>O^u> CLt> CL>c >r >m" 5>K6>MP >CL>CL:>@Gg;>AE#<>BS ?>CF[G>FCL>GCLB>IA2C>JGD>KEXE>Mp\F>NO34G>O|\H>QP L>RZM>SXN>Tb}qO>Wk_ P>Xd Q>YCR>[UT>\KU>]KDV>^E1b>`CL>aCLY>cE Z>dEsZ>gCL>hCL]>j@=^>kw3 >nCL>qOPa>r@>tCL>uCLd>wE>zCLf>{^>CLh>Ki>N6>CLk>[D l>N3 m>N n>d o>lp>j8R q>bz r>d s>Mt>M=u>@`>CL>CLx>C y>Pz>Aq>CL>CL}>GX~>M>M#>EM>CL~>CL>Hk>Z# >]3>_>Xl>CL >z > CL> CL > L> CL>CL>DZ>CL>CL>kQ >|`7 >CL>CL>CL>VG > TH>!Jf>"F>%Px>'fL>(iH>)h4!>*d">+T#>,Ay$>-IB%>.MV&>/L^'>0Ld(>1D$>3CL*>5La+>7^s>:CL-><@>?CL>@CL0>BbI1>CJv}2>mN'23>nMp4>oE>qCL6>r]>sCL8>uG>xCL:>{AO>}CL<>BUZ=>FxC>CL>CL@>OA>M3B>r >CL>CLE>~H>wKI>h J>A K>I_L>Ws >ixB >ixB >H*>Go>M!>ixB >\ >G>l >{ey>BHI>O>I>K:[>>L>EV>P D>Gu>P(>Kj>eb3 >DF >@p>CL>EZ>DF->CL>CL>CL>CL>CL>CL>CL>CL>lg>avg>r3>N> MR> P4>5CL>6CL>7CL>8CL>9CL>:CL>;CL><^>=CL>?CL>@CL>ANI{>CCL>FC>HCL>ICL>Ky] >MCL>NCL>OCL>PCL$>SK%>TJ&>WN|>YCL*>\L6,>]R >_CL.>a} >dCL>eCL>fCL>gCL3>ir:4>kAH6>n7>ouL8>j39>C:>I;>Hc4<>I33>CL>>P?>J@>HA>nB >CLD>ll E>H F>G){G>XJ>fH>l>eg>V+Y>`3Q>FG>d D >`x >H>Kc!>CL >CL>CL>e5 >CL>A^v>y]w >}R >^ >w>{>CL>CL> CL> CL> CL> Fu> Hx> O> y > HU > AL> mJ > Ux > sL> I> @`2> BR> xH > yP> }: > !y > "F> $Uz> 'pPL > *c > +`&f> ,U> .^> /CL> 0CL> 1CL> 2CL> 4CL> 5CL> 6CL> 7CL> `CL> cL$L> eIC> fI$> gH> iz33> jz33}e>V,8}f>i; M> t` N> F O> GP> HQ> ipR> P~S>  T> F"V> g6 X> H6Y> K[> +\> N^> d_> j `> Aa> xb> {c> uǯ> CL> CL> CLg> t > CL> CL> CL> CLm> F#n> ɚo> v > CL> CL> CL> CL> CL> CL> CLw> A(x> Iy> V >> OP{> e |> T}> cO`~> ^> C^> FS> x ~> )CL> +aZY |> -CL> 1G > 2@8:> 3I`> 4F>u> 6CLt> 7CL> :an > ;s > >K6> ?MQ> ACL> BCL:> DF/;> EE <> FXC?> HF> JCL> LCLB> MAAhC> OBD> PE=E> Rg{F> S@#G> TdH> UP/ L> VZM> WVN> XaQO> [k P> \dp Q> ]C>R> _UT> `KfU> aKV> bE,O> CL> CLY> EZ> El> CL> CL]> A+^> x > CL> OPa> AJ> CL> CLd> E> CLf> ^> CLh> KUi> M2Y> CLk> [F l> L m> L. n> cfo> lMp> kQ q> g r> h s> N3t> M=u> @?~> CL> CLx> C y> Ozz> Brd> CL> CL}> GJY~> M> N> EQH> CL~> CL> H> Y^ > bI> c3> \4> CL > zr > CL> CL > S > CL> CL> E#> CL> CL> k > { > CL> CL> !CL> $Vy > %U3> &Nf> 'Kə> *P> T_{> Uc> Vc޹!> Wg "> X_y#> YAS3$> ZI9%> [MB&> \L'> ]L#c(> `}f > cCL*> ed%+> g\[> iCL-> k@R> nCL> oCL0> qe51> rI<|2> tNc3> uM4> wE@> yCL6> z]> {CL8> }G> CL:> A> CL<> BF=> F>K> CL> CL@> OA> M*B> { > CL> CLE> @8H> K{I> l J> n! K> I_L> W @ > j' > i| > Gx> Gn> N07> k > ixB > G} > n> > {ey> BY> P> IX> K8> > L> EV> K> EL> P(> K> `w/ > DF > Eʘ> "CL> %E?> (DF-> *CL> ,CL> -CL> .CL> /CL> 0CL> 1CL> 2CL> 5cVg> 6dY> 8rVg> 9MR> :OxR> ;MR> =CL> >CL> ?CL> @CL> ACL> CCL> DCL> E^> FCL> GCL> HCL> JNK> LCL> OC0> QCL> RCL> TzF^ > VCL> WCL> CL> CL$> Kr%> J6&> H%> CL*> L/9,> Di=> CL.> A> CL> CL> CL> CL3> r=4> AH6> r7> Cl8> r9> C:> G#4;> Hp<> E> CL>> N?> J{@> HA> o > CLD> mJ E> HF> G#G> V)> hg> m> f> U/> ^{> FS> ejU > a- > H> K !> CL > CL> CL> e[ > CL> @> z % > |j > ~ > S> {> CL> CL> CL> CL> CL> Fu> Hi"> Vq> y > GU > AAh> n > Ti > n> KIpd> L@H> MB> Px > Qy> R}: > Szcz > TF> VU,d> Yp| > ]`U > ^_vf> _R> `^> aCL> bCL> cCL> eCL> fCL> gCL> hCL> iCL> jCL> nL> oI.> pI> qHyv> tj> wj}e> q1}f> :g M> tF N> FHO> G3P> HQ> j R> PtS> AlT> D5V> c X> HCY> K[> Υi\> I^> cj_> m `> C~'a> SGb> Sc> Mff> CL> CL> CLg> s > CL> CL> CL> CLm>Hn>o>v/ >CL>CL>CL>CL>CL>CL>CLw> x>"JW y>#S4>$OP{>'eUV |>)T}>*eɧ~>,^>0CI>1F>4n}[ ~>6CL>8a |>:CL>>G4>?@n>@H>CIu>ECLt>GCL>Ib^ >JqC >Kl 5>uK6>vM]>xCL>yCL:>{Fm;>|DI<>~[$?>GgR>CL>CLB>AAhC>@D>EtE>ppF>@#G>hH>PH L>izM>gqN>qO>k P>d/ Q>CR>UZT>K2U>K V>E.{>CL>CLY>DZZ>E]>CL>CL]>@.^>w| >CL>OPa>@a>CL>CLd>E>CLf>^>CLh>Ji>LE>CLk>[/ l>K m>KaH n>c3o>mN#p>d{ q>baH r>bff s>Mt>M2u>^ >CL>CLx>CDy>M"z>Aҩ>CL>CL}> Gg~> MZ> Me>D>CL~>CL>>Y >?]H>@bf>A[>CCL >Ey@Y >HCL>ICL >J>KCL>LCL>NE]>QCL>RCL>Tkw >Ux >XCL>YCL>ZCL>]VnP >^O>_Hf>`E>cP>ei>fo>gn!>h]">jT`#>krs3$>lI:%>mM &>nL'>oKI(>pC޲>rCL*>tN,+>uY>CL->@>CL>CL0>b%1>H 2>N3>Mܝ4>E>CL6>]>CL8>Fݱ>CL:>@>CL<>B)=>E>CL>CL@>Ow'A>MB>Br>CL>CLE>tH>OohI>Y J>c$ K>IL>U >ixB >ixB >G>G`>N> jb > ]< > Gn>n >{ey>B~>P >IC>K:[>~>L> EV>!Q5r>"EL>$PB>%K>'`w/ >*DF >+Eʘ>-CL>0Eg>3DF->5CL>6CL>7CL>8CL>9CL>;CL>=CL>hc>iYg>jlg>kOxR>lVR>mVR>oCL>qCL>rCL>sCL>tCL>uCL>vCL>w^>xCL>zCL>{CL>|NR%>~CL>C >CL>CL>zu >CL>CL>CL>CL$>K%>J)&>PƜ>CL*>LVe,>F/>CL.>FT>CL>CL>CL>CL3>r#L4>AH6>w,7>pY8>nٚ9>C<:>Gf;>I <>Es3>CL>>O?>J@>HDA>n$ >CLD>l~k E>G!F>GG>Y(w>hD>mFf>fs3>Uc>\G>F>e[ >a- >Hzx>K !>CL >CL>CL>aY >0CL>2@>3y@Y >4D%>5~ >6JG>9{ey>;CL>=CL>>CL>?CL>BF#>CH2>EN+>Hy >KH&f >M@۶>Nn >OPE >Rt >UIh2>X@>YB>[x >\yh>]},l >^z >_G>aU(>dp >gc" >h`L>jTY>k^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L >I0>I>Hv>z>z}e>6aE6}f>Ii3 M>uK N>FcO>EMP>HQ>haR>PtS>qes T>HV>l X>HئY>K[>\>M"^>e_>pV `>D$a>mJ>b>ls4c> kW > CL> CL> CLg>s >CL>CL>CL>CLm>Hn>c4o>v >CL>CL>!CL>"CL>#CL>$CL>%CLw>(AW x>)Oy>+R>,OP{>/k |>1T\}>2fi~>\^>_Dg>aFw:>dnn ~>fCL>ha |>jCL>mH >o@q>pHD>sOu>uCLt>vCL>ya >zp( >{l 5>}K>6>~Mp>CL>CL:>F?;>C<>Z?>GJ>CL>CLB>A:%C>@$D>DLE>gF>{=qG>t(H>Pf7 L>iM>gN>bO>k) P>d Q>CR>U{T>KKU>KeV>E4>CL>CLY>DYZ>EsZ>CL>CL]>A^>w >CL>OPa>@>CL>CLd>Du>CLf>^>CLh>Ji>Vc>CLk>[7 l>M33 m>L n>cffo>lBp>%hG q>&c r>'e s>(Mt>)M$\u>, >/CL>0CLx>2Cpiy>3K=ez>4A">7CL>8CL}>:F~>=M>>Di>@CL~>ACL>CH>FY >G]H>H]f>IV>KCL >M{LS >PCL>QCL >Rf>SCL>TCL>WP0>YCL>ZCL>\j' >]wV >CL>CL>CL>Va >Sf>K4>J#3>Q >r>lǯ>ls4!>O ">Q`#>E$>I7%>Mv&>L'>K(>Cz>CL*>K2+>W¬>CL->@u>CL>CL0>e1>R|2>M3>M4>DZ>CL6>]>CL8>F~>CL:>@=>CL<>BE=>Ez>CL>CL@>O`A>MB>C>CL>CLE>mfH>NVAI>]^ J>_+ K>IL>W* > ixB > ixB > GC> F/>M>ixB >\ >F>l >{ey>Bbk>P>I">K=>"0E>$L>'EV>PL.>REZo>TN>UK>V`w/ >W@j>ZEʘ>\CL>_EL>bDF->dCL>eCL>gCL>hCL>iCL>jCL>kCL>lCL>ocg>pYg>qlg>rMR>tV>>uOxR>wCL>xCL>yCL>zCL>{CL>|CL>}CL>^>CL>CL>CL>NBC>CL>C>CL>CL>y] >CL>CL>CL>CL$>L'%>J&>N:w>CL*>Lu],>Q>CL.>}h >CL>CL>CL>CL3>r"4>AH6>w@7>w,8>ls39>CZ:>D@;>D<>Bf>CL>>Or?>J@>HA>n >CLD>l5h E>G F>FG>Wv>cf>ing> b>#U8*>%\p>&E>'eM >(aD >)G>*J!>-CL >.CL>/CL>2^ >5CL>7 >8yN >9Fb>:} ><`>={X>?CL>ACL>BCL>CCL>DCL>GF'>HH">IU>Ly >PG >R@r>Sme >|N >mf>IW>K >Af>xt >y|>}T >zu >G-a>T$>pӖ >cL >_p>TY>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>K>I8>I>H\p>i>i}e>yg. M>u=< N>FeO>A> P>Hs<Q>iCR>PS>p T>BV>` X>HЁY>K;[>\>JX.^> d_> j `> B٦a>Tb>Uc>Tz>CL>CL>CLg>s] >CL>CL>CL>ECLm>HH n>K4o>Lv/ >NCL>OCL>PCL>QCL>SCL>TCL>UCLw>XBkx>YIy>ZR{>[OP{>_b |>aT}>beK~>d^>gD! >hE>kx ~>nCL>paQ |>rCL>uHD>x^ >zH>{FZu>}CLt>~CL>a= >q% >l< 5>K6>Mr>CL>CL:>F;>B<>Y?>H]>CL>CLB>AlC>~D>DE>czF>nHG>[pH>P2 L>hW M>eN>`kO>kK P>dTj Q>CR>UhT>KwU>K;V>D>CL>CLY>DXZ>E*>CL>CL]>Ae^>v( >CL>OPa>@;">CL>CLd>D̘>CLf>^>CLh>I i>Vj~>CLk>"[ l>$J\ m>%I{ n>(c3o>)lsp>+f= q>,ck r>-dq s>.Mt>/Mu>2' >5CL>6CLx>8Ci(y>9Qz>:A>=CL>>CL}>@G )~>BM>CM>DD)>FCL~>GCLBHBYt B^$B _6fB WB CL Bzcz BCLBCL BBCLBCLBGBCLBCLBiQ BwC] B!CLB"CLB#CLB&VN B'RB(JB)G;3B,QQB.sB/tRB0q!B1M"B2AS3#B3m3$B4I;%B5Mǟ&B6LN'B7K(B8CB:CL*BdIw+Be^"YBhCL-Bj BmCLBnCL0Bpc!1BqN|s2BsMS3BtM4BuEABwCL6Bx]BzCL8B|FqBCL:B@uBCLCLB?^B@CLBBCLBCCLBDN@BFCLBIC$BKCLBLOPBOz BRCLBSCLBTCLBUCL$BXL%BYJr&B[HHB^CL*BaL@,BbRfqBdCL.BfCBBCLBCLBCLBCL3BqN4BAH6Bwg7Bs38Bp39BB;:BE33;BEPBP?BJmO@BHABm7 BCLDBkd EBGFBFGBYҦBdBifBbBTTB]BEBdp Ba>' BGBJ%g!BCL BCLBCLB^ BCLB@4Bxt BFsB~@ BH B{@BCLBCLBCLBCLBCLB F+*B HB OKBy@ BH] B@Bm BO\ BrBIA B  B!B+B"x B#yhB$|= B%|C B&GB(TB+p B/aff BX^fBYQ33BZ^B[CLB\CLB]CLB_CLB`CLBaCLBbCLBcCLBdCLBhKBiI5GBjHIBkHK6Bmz33Bnz33}eB_y}f>g MBtq NBFVOBFPBHQBfFRBPSBp^ TBJ;VBogf XBH*YBKF[BŤ\BO5U^BbV_BxUV `BB*qaBmJ>bBmJ>cBj{BCLBCLBCLgBs BCLBCLBCLBCLmBGnB4oBur BCLBCLBCLBCLBCLBCLBCLwBA{xBJ >yBPBOP{Br |BUs!}Bf<~B ^B$CB%E7B(q ~B*CLB,aQ |B.CLB2HB3@B4IB7KuB9CLtB:CLB=b- B>p B?lX 5BAK6BBM|BDCLBECL:BGFxC;BHB:BYjBZi!B[`"B\O3#B]z$B^I8%B_M&B`M 'BaK(BbCBdCL*BfI+BgX}BjCL-Bl BoCLBpCL0Brdf1BsMJ2BuM3BvM<4BwD>ByCL6Bz]B{CL8B}FTBCL:B@BCLCLB?CLB@CLBACLBCCLBD^BECLBFCLBGCLBIN5BJCLBMCBOCLBxCLB|zu B~CLBCLBCLBCL$BKh%BI&BQMBCL*BL`i,BDBCL.BCwBCLBCLBCLBCL3Br4BAH6By 7Bny8Bkff9BB:BE3;BFBPձ?BJcH@BHABmi BCLDBk EBG6FBF"GBXؽBbBgBaTBTB`%BEsBb6 B_ BGJBIb!BCL BCLBCLB_/ BCLB@QBx BC B~24 BpuB{BCLBCLB CLB CLB CLBF PBIBT By BHUU B@@XBBl& BCR BFoBII*JBL7 BMBrdBNA+BOy|BP|& BRBɀBSGBUTMBXq B[e@ B\`3B]VB^^B`CLBaCLBbCLBcCLBdCLBeCLBfCLBhCLBiCLBlKBmI0BnHMBoH<BsjzBvjz}eBspn }fB=h MBu NBFaOBB PBIJ0QBgRBPSBp3 TBAVB]f XBHYBKc[B̥\BK^Bd_BdG `BAaBVbBScBOfBCLBCLBCLgBs BCLB CLB CLB CLmBGEOnBoBtb4 BCLBCLBCLBCLBCLBCLBCLwBDGxB P(yB!RB"OP{B%^"# |B(UYc}B)d~B+^B.CNB/E؍B2t4 ~B5CLB7a=" |B9CLBHЛBBOuBlCLtBmCLBob Bpq Brl{ 5BtK6BuMy+BwCLBxCL:BzF;B|At^UB@CL BBzu BECLBFCL BG‚BHCLBICLBKC>BNCLBOCLBQj ^ BRs BUCLBVCLBWCLBZVQ B[V~fB\M3B]ITB`QBbdpBciHBdhW !BeO3"BfE3#Bg{g$BiI(%BjM&BkM6'BlKX(BmC4BoCL*BJS+B`9BCL-BU BCLBCL0Bed1BL%2BMf>3BMh4BDL:BCL6B]BCL8BFBCL:B@BCL B {jB BVB OB I~B LB ~L4B KjB EVB R B AB !PBB "JPB %o^ B 'X"B *EʘB ,CLB /EcB 2DF-B 4CLB 5CLB 6CLB `CLB aCLB bCLB cCLB dCLB g^B hYgB ir9B jNB lMRB mMRB oCLB pCLB qCLB rCLB sCLB tCLB uCLB w^B xCLB yCLB zCLB {N7oB }CLB C0B CLB CLB |} B CLB CLB CLB CL$B L%B J"&B L}zB CL*B L>,B J)B CL.B AB CLB CLB CLB CL3B r4B AH6B m37B i&g8B l9B B*%:B E;B EIB R.>?B J]@B HXAB n4a B CLDB k EB GFB FGB ZB cB hB b 3B T&UB abB ESB dq B at B HB J˽!B CL B CLB CLB *c B -CLB / O B 0z7 B 1@B 2|C B 3H3s B 5{/B 7CLB 9CLB :CLB ;CLB B CLB CLB CLgB s] B CLB CLB CLB CLmB GnB @toB sW B CLB CLB CLB !CLB #CLB $CLB %CLwB (D4xB )NǮyB *S{B +OP{B Wowx |B YUz}B Zd~B \^B _CnB `EB cw ~B fCLB he7 |B jCLB mH B nC B oHB qEuB sCLtB tCLB vb B xr B ym" 5B {K06B |M|B ~CLB CL:B E;B M9MB CLkB [R lB Kz mB K nB c33oB kTpB !_ qB "\L rB #] sB $MtB %LuB &@B (CLB )CLxB +CL!yB ,R HzB -EsZB 0CLB 1CL}B 3GX~B 5MB 6M!%B 8DB :CL~B ;CLB =HHB ?Yc B @\gB A\fB BV6gB DCL B Fy@ B ICLB JCL B KB LCLB MCLB OCB RCLB SCLB Uh" B Vs B CLB CLB CLB U+ B LB D3B DB Q]B gB lB i !B K"B E#B Ag$B IS%B MA&B L'B Kp(B CoB CL*B J}u+B \!WB CL-B  B CLB CL0B bؾ1B J/2B M>3B Mb^4B DB CL6B ]B CL8B ETB CL:B  B CLB Q?B JWl@B HABm BCLDBk EBGLFBFnGBX\BdBiBcB"SB#a!B$DۨB&eT B'b[ B(HB)KF!B,CL B-CLB.CLB0dTj B3CLB6~' B7zcz B8@`2B9| B:hU2BCLB?CLB@CLBBCLBCCLBFF)[BGH@BHNBKy1 BvH Bx: Bym B{TYV B~spBIjB~; BCBB}BySB|} BsU: BDBTBqV Ba B^BTYB^BCLBCLBCLBCLBCLBOPBCLBCLBCLBL^BIBHBH5sBzLBzL}eB:Pܳ}fB viw MBt NBFo>OBHPBHQBfs"RBPSB{ TBC*VBa@ XBHُYBK[B\BLP^B e8v_B e `B AFaB gQbBg34cBgBCLBCLBs B@CLBACLBBCLBCCLmBGFnBJ6goBKsI BMCLBNCLBOCLBPCLBQCLBSCLBTCLwBWDuxBXMHyBYR)BZOP{B]_ |B`Ud}Bae~Bc^BfCLBgE&BjoK ~BlCLBoa |BqCLBtHBuBBvILBKWuBCLtBCLBc Bq Bm 5BK6BMy+BCLBCL:BEZ;BMcM"B?MBhCBkCL~BlCLBnHdBpYJ Bq^Br^ BsX<BuCL Bw{ BzCLB{CL B|ZB}CLB~CLBGBCLBCLBi Bs BCLBCLBCLBUF BN3BE0BABQBo>Bq4Bm4!BYff"BN#Bls3$BI%BM/&BL'BKZ4(BBBCL*BIb+BY5BCL-B BCLBCL0Bh|1BH62BM)3BMWl4BCSBCL6B]BCL8BEBCL:BA{BCL\^ B?Hs<B@l[ BB{$}BCBVBFOBHI_BJLBM} 8BOJPBREVBSR5BTBhBVP(BWJRBZo^ B\STB_EʘBaCLBdEijBgDF-BjCLBkCLBCLBCLBCLBCLBCLBCLB`BPgBcVgBG >BGRBGRBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN(EBCLBCʑBCLBCLBw BCLBCLBCLBOP$BKh%BJ"&BNRBCL*BLg,BQcBCL.B)b BCLBCLBOPBCL3Br234BAH6B]L7B [Y8B aY9B Ay:BC;BDBR?BJI@BHUABme BCLDBk) EB GɓFB!FЌGB"ZB&[3B'_B(YaB+R;B,`D\B.DB/at B0_i B1IB3Kv]!B]CL B^CLB_CLBb` BeCLBg~] Bh{ BiDuBj{in BlBmzBoCLBqCLBrCLBsCLBtCLBwF#BxHqLByTCB|y BH{ B Bkd BPT Bm3BI|;B~' BDBB"ByhsB|R8 BwB BA+BSΓBqes BdH BaBW#3B^BCLBCLBCLBCLBCLBOPBOPBCLBCLBL,~BIjBH1BH/BhBh}eBlv }fBi MB(tb NB*F^!OB+JŇPB,HQB/etRB1PQSB2ATB3FVB4h XB6HYB7Ktk[B8VF\B:LJ^B=c_B>rc `B@CaBAMbBBOcBCKqBFCLBGCLBHCLgBJs5. BLCLBMCLBNCLBPCLmBSGenBV@oBWsI BYCLBZCLB[CLB\CLB^CLB_CLBCLwBE\)xBM8RyBQkBOP{Bk |BU}Be}~B^BCѡBFBzr ~BCLBc |BCLBGaBB5hBHYBPb uBCLtBCLBcD Br9X Bl: 5BK6BM<BCLBCL:BE;BMVBD:BCLBCLYB C>ZB EZB CLBCL]BA^BAeBOPBCLaBDBOPBCLdBCScB!CLfB"^ B#CLhB%HzxiB&QBQCLkBT[v% lBUG= mBVFG nBY_ffoBZkEpB\`8R qB^ZaH rB_\ sB`MTtBaLزuBb@LBcOPBeCLxBgCyBhMzBiGBkOPBmCL}BoH#~BqMOBrLYBsCqBuOP~BwCLByHmB{YO B|\B}\S3B~UBCL BBrdBCLBCL BHzxBCLBCLBQ8xBCLBCLBjb Bp' BCLBCLBCLBUz BW3BLYBIBQB^BBbٙBb!H!BK"B@4#BpY$BI o%BM!&BLϕ'BKXb(BBBCL*BI+BYBCL-B~ BCLBCL0Bed1BP82BL3BM4BC`sBCL6B]BCL8BEGBCL:B DB#CLILB@V BBixB BDixB BEHBFHVFBHM^BKixB BL[~ BMHs<BNEBP{BQBVB|OBIABLB} 8BJPBEVBLvBBBP(BK-Bo^ BPxBEʘBCLBEWWBDF-BCLBCLBCLBCLBCLBCLBCLBCLBYgBNgBcBxBD >B~BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN(EBCLBCIBCLBCLB} BCLBCLBCLBOP$BL^%BJ &BHBCL*BLJ,BR0BCL.BGoB CLB CLB OPBCL3Br4BA6Bl37B]8Bag9BAL:BECc4;BFDBIT(?BJJ<@BKH}ABMFv BOOPDBRwQ? EBTGFBUFIGBVWBYXTB[\B\VS3B_PB`^6BaD/Bbbs Bc` BdGBeHs<!BiCL BjCLBkCLBm^p BpCLBr}~ Bszu BtDBv{Z BwG8 Byz[B{CLB|CLB}CLB~CLBCLBFBHFBO/Bx BHٚ B Bk BN} Br BIB~ BD̘BCBydZB|& B' Bvܹ BSBq Bdw B`3BVfB^BCLBCLBCLBCLBCLBOPBOPBCLBCLBLrB IBH;BHB{ffB{ff}eBw],}fBj MB0u=< NB2F*OB4I PB5H AQB8d=RB9PeSB:s)~ TB;FW`VByF+R\F,OP{F/ewx |F1VK}F2g5~F4^F7DmF9F#Fdp ~FfCLFh`> |FjCLFmG6FoAAFpH FqFuFsCLtFtCLFwc Fxqz Fyk 5F{K6F|MF~CLFCL:FF~;FL&xS lFAf mFD nFPfoFiFR?FJH@FHuAFFrwFOPDFx# EFG FFFGFTFX<F\3FVFOZDF\5FDglFb F`b FC:FE*!F"CL F#CLF$CLF&_ F)CLF+} F,{ F.DnQF/z F0D F2yF4CLF5CLF6CLF7CLF9CLFSsFAx FDH{ FF~OI FGjD FHO\ FKoFOIFR~] FSE FTE9[FUypFV{ FWBk!FXp| FZRFq3 Fdj F`3FWF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFLFIFHFHFh\Fh\}eF0Z9}fFwj MFt NFE1OFIǫPFH$RQFc RFOSFph TFDvVFc XFHYFKv][Fҽ\FKg^Fe$_FmG `FCaFJ}qbFK>cFIYF CLF CLF CLgFr FCLFCLFCLFCLmFGVnFgoFpI FCLFCLF CLF!CLF"CLF#CLFLCLwFPCxFQPyFRSFSOP{FVe |FXW/2}FYhI~F\^F_D@F`EFc{ ~FeOPFhbD |FkCLFnGFoCFpHfFsJP!uFvCLtFwCLFyd Fzqy F{m5@ 5F~Ky$6FM6FCLFCL:FE;FK29zF-JF/OPF1CL}F3I~F5M-F6MF7D>rF9OP~F;CLF=IZF?Y\ F@U<FAUFBNFDCL FGMC\FICLFJCL FKFLCLFMCLFxTFzCLF{CLF}x:D F~n. FCLFCLFCLFU FUK3FJgFFFgFQCFaFhGFgB!Fc"FPf#FjY$FJ. %FN7&FLز'FK:[(FAkFCL*FI+FYFCL-F} FCLFCL0Feb1FK2FLw3FM4FBFCL6F]FCL8FEFCL:FH@FCLFRh?FJb^@FHUAFHF OPDF yN EF H&FFGGFR2FVDFZfFT4FNNF\FDFbE F_d FAeFBE!F"CL F#CLF$CLF&a F)CLF,}T F-{ F.DgF/zF^ F1F2y F4CLF5CLF6CLF8CLF9CLFOFAxWc FlH Fn}T Fpi| FqT; FtrFwIޗFz~z F{E#F|EZF}yxF~{H FCuFk FSFq Ff F`FW3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFLϕFIFHFGF|LF|L}eF1C}fFyl MFt NFEOFKrPFHkEQFbRFOCSFp< TFIDVFnXm XFHYFK[F\FN[^Fc&_FsU `FBjaFccbFd*cFcFCLF CLF CLgF4qY9 F6CLF7CLF8CLF9CLmF=GnF@@$oFAp FCCLFDCLFECLFFCLFGCLFICLFJCLwFMBLxFNO{yFOS8RFPOP{FSnwx |FUW+}FWfӪ~FY^F\CF]E;F`q9 ~FbOPFfb3 |FhCLFkGFlFyFmHFP#uFCLtFCLFd@ Fsc Fml 5FK[6FMFCLFCL:FE;FJl!F M"F }@#F h$F J%F N&F Ld'F K(F AF CL*F I+F ]iF CL-F ~l^ F CLF CL0F j@1F J&G2F Lj3F Mi4F CF OP6F ]F CL8F FF CL:F HF CLtF @JPF CEVF DL%F E@F GP F HLF Lo^ F NMwF OBWF QCLF TEF WEF YCLF ZCLF [CLF \CLF ]CLF _CLF `CLF aCLF YgF XF kٙF kHF AF xF CLF CLF CLF CLF CLF CLF CLF ^F CLF CLF CLF NF CLF C<F CLF CLF } F CLF CLF CLF OP$F LP%F I&F N0 F CL*F L~,F T+F CL.F HF CLF CLF OPF CL3F r44F A6F |7F v8F x9F @:F Hf;F EF R?F Jn9@F H?AF IbF OPDF w EF HAFF G"7GF R*F WnfF [F UF M{F ]F C0F b. F ` F c F @!F CL F CLF !CLF $d( F 'CLF )|& F *)b F +D%F Ty F UK F WzF ZCLF [CLF \CLF ]CLF ^CLF aFD~F bHF cU:F fx# F jG F l|5! F mh" F nU F qnPF tI]F w~ F xDF yEV[F {yF |{ F }B"F ~mJ F SInxF@M FCsFEJPFHB FIRFJ@|FtOuFuLFxo^ FzMF}EʘFCLFEY%FEFCLFCLFCLFCLFCLFCLFCLFCLF^ FNgFavgFkHFB\FyQFCLFCLFCLFCLFCLFCLFCLF^FCLFCLFCLFN! FCLFC<FCLFCLF~24 FCLFCLFCLFOP$FL_%FI&FLPFCL*FLA,FTzFCL.FHFCLFCLFOPFCL3Fr04FA6Fv 7Fff8Fl9F@zc:FC0;FCgFR,?F Jvn@F H+AF JF OPDFx+ EFHd6FFG$GFRq@F?i4F@mFAfFDL:3FE_cHFFCƘFGc[ FHa FI|C FK~z !FNCL FOCLFPCLFRaY FUCLFW|R8 FXBNFZDGF[y F\@.4 F^zF`CLFaCLFbCLFcCLFeCLFhFYNFiHFjN Fmwt FpHj Fr{ Fsn$ FtR FwsPFJF~ FDYFEFy/F{w F@۶Fo FS'Fq^ Fg; F`FXc3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMFHFHr5FGɔF|33F|33}eF\YJ}fF l MFtb NFEOFL14PFGQF`FRFNJSFo TF H|VF"l XF$FYF%K[[F&O3\F'P^F*b_F,t9 `F.AaF/I{bF0JcF1G!HF3CLF4CLF5CLgF8p F:CLF;CLFF1Qj?F2Jt@F3HmAF4JOF5OPDF8vܹ EF:HtFF;G"7GFFi33Fi33}eF^Og}fFmx MFt NFDtOFIPFGQF!aiRF"NjSF#of TF$BVF&`y: XF'DxYFQK/N[FR7\FSOs^FVdpR_FWf `FYAaF[IbF\J@cF]HF_CLF`CLFaCLgFcoj FfCLFgCLFhCLFiCLmFlFnFogoFpl FsCLFtCLFuCLFvCLFwCLFxCLFyCLwF|B xF~L34yFX34FOP{Fa"# |FX}Fj~F^FCeNFEdeFwl ~FOPFa |FCLFGFKFHmFMiuFCLtFCLFe Fr\ Fl 5FK6FMNMFCLFCL:FD%;FHEFhFFlGFgpHFU7 LFfMFaNFwfgOFvR PFy@Y QFLRFSмTFKUF KVF!m#F"OPF$CLYF']+4ZF(KF)OPF+CL]F-C^F/Z|F0OPF2CLaF5V DF6OPF8CLdF:GoF^F?CLhFAGiFBOFDOPkFEX lFFVHmFGVffnFHDoFKjppFM\f qFNV rFOZ{ sFQM tFRM#uFSIEF|OPF~CLxFFyFT-zFL,FOPFCL}FJ~FMZFMFG;FOP~FCLFGgRFYY FVFV3FOvfFCL FEFCLFCL FFCLFCLFBFCLFCLFu Fh FCLFCLFCLFVx FNgFJIFI4FPlFgJ>FmFk!FHf"FBL#Fm33$FJ%FO&FL'FJ(FB FCL*FIĚ+F^GFCL-F~# FCLFCL0Fg1FQ2FL3FM|4FEFOP6F]FCL8F GeF CL:FFiFCLF/P?F0Jp@F1HTAF2JF3OPDF5v- EF7HUFF8GGF9RF=c0F>gF?a33FBFXB}J?k ~JB^JECEJFEoJI{ ~JKOPJO_ |JQCLJTGJUKJVHRJYNuJ\CLtJ]CLJ_fu J`rV Jal 5JdKZ6JeMC]JgCLJCL:JD;JGSCJP[?JJk}@JHAJKJOPDJv EJH*FJGGJR6Je,Ji3JbyJCyJaAJCJd Jbs J{H J} !JCL J CLJ CLJ \ JCLJy@ JA2JCi(Jw J@JyJCLJCLJCLJCLJCLJ!F7J#HJLPJOw_ JRI JT| JU} JVO? JYp3J\J^JBC4JCEuJFq ~JHOPJK^ |JMCLJyGtvJzKDJ{H/J~H`suJCLtJCLJf Jq Jk 5JL6JMJCLJCL:JF ;JN)?JFxCJCLJCLBJ CJE'DJCiEJiFJnHGJxHJO LJz{MJbHNJwOJqes PJqt QJF[GRJNTJKUJKVJZJOPJCLYJEZJDgJOPJCL]J~OI ^JX6JOPJCLaJRJOPJCLdJGJJOPfJ^JCLhJG4iJVDJOPkJW݊ lJTmJSnJB^oJhpJ^L qJW rJ[aH sJMtJM&uJHDJOPJ CLxJ F[GyJ NzJ KMJOPJCL}JJ;~JMևJMJ@EƶJAOP~JCCLJEGgJGY JHyJIxgJJsPJLCL JNEJQCLJRCL JSvJTCLJUCLJXO-JZCLJ[CLJ]t/ J^ggu JaCLJbCLJcCLJfVDp Jg|PJhpJirfJlQ JnX{Jo]cJp\u!JqQf"JsKg#JtCY$JuJL%JvN;&JwL6'JxJ(JyAJ{CL*JI+JYJCL-J~] JCLJCL0JeC1JJԝ2JL3JN 4JGJOP6J]JCL8JHJCL:JFJCLJP9?JJb^@JGAJKJOPDJv4 EJHFJG@GJRMJgYJlJdfJAoJ`c JC-JdTj JbA J{ J}I !JCL JCLJCLJa JCLJy@ J@JC/JvI J KX J4yaJ6CLJ7CLJ8CLJ9CLJ:CLJ=FJ?H:J@P&JCw% JFH JH| JI} JJT JMq@JPJ, JT~ JUEJVG} JWyCJXz[ JYEJZp J\Q!J_q^ Jcd Jd`3JeV3Jf^JgCLJhCLJiCLJkCLJlCLJoOPJOPJCLJCLJM9TJIsJIEJHچJ|ffJ|ff}eJ _:}fJo_b MJs2 NJDOJKPJGQJ\mRJO-SJx TJJVJrM XJ@YJJ[J\JP^J do_J uV `J @ۘaJ xzbJ {=qcJ w(J CLJ CLJ CLgJ m J CLJ CLJ CLJ CLmJ FJnJ oJ k4 J CLJ CLJ CLJ !CLJ "CLJ #CLJ $CLwJ (AGxJ )LyJ *NJ +OP{J ,t |J -Y}J .i!~J 1^J 4C"#J 5E[J `{ ~J bOPJ e^ |J hCLJ kGkcJ lKJ mHJ pLZuJ sCLtJ tCLJ vfZ J wq J xl^6 5J {L&6J |MǟJ ~CLJ CL:J FR;J MOCL J @EOJ CCLJ DCL J EmJ GCLJ HCLJ JL J LCLJ NCLJ Os J Qf# J SCLJ TCLJ VCLJ XV[ J Z~0J [uJ \zJ _PJ `X J b] J c\!H!J ]&f"J P#J F $J J%J N®&J Lh'J JҪ(J B J CL*J J+J `1J CL-J E]J CLJ CL0J B1J IA2J LQ3J N '4J GJYJ OP6J ]J CL8J HJ CL:J EJ CL%J #CLJ &EJ )DF-J +OPJ UCLJ VCLJ WCLJ XCLJ YCLJ [CLJ \CLJ __J `PgJ acVgJ bGHJ ckHJ dGHJ fCLJ gCLJ iCLJ jCLJ kCLJ lCLJ mCLJ n^J oCLJ pCLJ rCLJ sN#8J uCLJ xCJ yCLJ zCLJ |{/ J CLJ CLJ CLJ OP$J K%J I&J PJ CL*J L,J VNKJ OP.J JJ CLJ CLJ OPJ CL3J q4J A6J q37J c98J h9J y":J r;J s,J O?J JWl@J G AJ K ^J OPDJ u6 EJ HFJ GGJ RlJ glJ lfJ dc3J @ ?J ]ڗJ BJ dq J c7 J { J | !J CL J CLJ CLJ c!( J CLJ !xWc J "@AJ #B=J %vK J 'b0vJ (yR J *CLJ +CLJ ,CLJ -CLJ .CLJ 2FJ 3H@J 4TGJ 7v J :H J <|R8 J =}X J >UDY J AnpJ EJ SJ H} J IEJ JFsJ Ky"J Lz J MEѕJ Nr J PQRJ Tq^ J Wd J `J WLJ ^J CLJ CLJ CLJ CLJ CLJ OPJ OPJ CLJ CLJ MMJ I|J I[gJ HRJ hJ h}eJ 'jB}fJ vos MJ t+ NJ DOOJ G~PJ G/QJ ZܜRJ OjASJ ATJ JVJ qw XJ } YJ JE[J <\J Rs3^J eV_J v `J BaJ yaHbJ {cJ vQJ CLJ CLJ CLgJ m" J CLJ CLJ CLJ CLmJ GqnJ ~oJ jM9 J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ sQxJ HQyJ IQJ JOP{J KsK |J LYk}J Nimh~J P^J SCJ TEgJ Wy ~J YOPJ ][[ |J _CLJ bGc7J cK J dHJ hQCKuJ jCLtJ kCLJ mghs J nqw J olX 5J rK6J sM J uCLJ vCL:J xE;J yDjCLJ@CLJBBJDCLJECLJGs T JIe~ JKCLJtCLJvCLJxV JyApJ{|J|J~P(JW\J\JZ޹!JM4"JA#JC$JJҪ%JN&JLS'JKg(JBJCL*JIT+JZ*JCL-JEJCLJCL0Jhl1JHN2JLy3JM4JFQJOP6J]JCL8JHJCL:JDVJCL}J?PBJ@M JCo^ JEKJFQRJICLJLEJODF-JQOPJSCLJTCLJUCLJVCLJWCLJXCLJYCLJ\YgJ^NgJ_avgJ`GHJakHJbGHJdCLJeCLJfCLJgCLJiCLJjCLJkCLJl^JmCLJnCLJoCLJqN. JsCLJuCݑJwCLJCLJ{/9 JCLJCLJCLJOP$JK%JI&JO&JCL*JLtt,JU JOP.JJJCLJCLJOPJCL3Jq_4JA6J_S37JT&f8J\9Jx:Jqfg;JpJO?JJG@JG{AJJ,JOPDJu} EJHFJFGJRvJi3Jos4Jg J ~{` J ^JBaJd JdE J{Z J|} !JCL JCLJCLJ_ JCLJx:D J @XJ!BɀJ"vW J$}f'J&yJ(CLJ)CLJ*CLJ+CLJ,CLJ/FJ1H|.J2N-SJ5v J8H J:{/ J;| JCLwJBwxJCMyJDQJEOP{JFs# |JGZx}JHkI~JK^JND#8JOFeJRv ~JTOPJW]j |JZCLJ]GoJ^J#J_H`iJ`FOuJcCLtJdCLJfh Jgq Jhl 5JjKX6JkL JCLJCL:JE9[;JD"oJhkpJ ] qJ Yk rJ \3 sJ MwtJMuJH'7JOPJCLxJFyJS zJK0JOPJCL}JJ3~JMyiJ LKJ!EJ"OP~J$CLJ&DZJ(X J)sJ*ifJ,kJ.CL J/DJ2CLJ3CL J\0J^CLJ_CLJaAҩJcCLJeCLJfr+ Jhdx JjCLJkCLJmCLJoUڐ JqzS4JrofJsrVgJvOaJxTzJyZJzX!J{O33"J|#J}i$J~Jd%JN΍&JL6'JK(JA׾JCL*JI+JaJCL-JEJCLJCL0J[1JQ:2JLQq3JM4JF\JOP6J]JCL8JHUJCL:JDgJCLJOݚ?JJ-z@JGAJJ΢JOPDJu6 EJH'FJFGJRXJiəJn3JffJzj J`/JB#2Jd Jd( J{ J | z !J CL J CLJCLJ\ JCLJw JAJBwJu JGn JyPJCLJ CLJ!CLJ"CLJ#CLJ&FgJ'HgRJPT\fJTvR JWG"" JY{LS JZ|} J[OK J^nJaIJd} JeF:JgEV[JhyJiz7 JjFJkt JmP?Jpq3 JseD Jta3JvVfJw^JxCLJyCLJzCLJ{CLJ}CLJOPJOPJCLJCLJL&JIrJIkJHJhGJhG}eJ[}fJfqy MJt NJCxOJG,PJGquQJXoRJOXmSJpX TJIaVJo XJyp YJI[J\JR9^Jd_Z_Jvq `JC_aJxbJzcJuJCLJCLJCLgJ"k{ J%CLJ&CLJ'CLJ(CLmJ+H(nJ.,oJ/h J2CLJ3CLJ4CLJ5CLJ6CLJ7CLJ8CLwJ;txJ=K.yJ>SJ?OP{J@r= |JAZ}JBk'~JD^JHD1JIF@kJLu ~JNOPJQ] |JSCLJGnJJJHkJJuJCLtJCLJjbN Jqw Jl 5JK06JLPJCLJCL:JJ,;JCJ @ J#PJ%I oJ&LJ)r J+JJ.EVJ0LvJ2}z;J3P(J4M J7o^ J9KJ:[JNQ4?NJ@NGANJ7NOPDNv4 ENHy$FNFGNQNg)Nm3NdNy[ Nb|NANd Ndp Nz N{ !NCL NCLNCLN\ ( NCLNwl NAHNB\Nu65 N~2Ny`0NCLNCLNCLNCLNCLNFNHU/NMKNvK NH Nz N| z NNLJ NrfNIEN}f NF/NElNy Nz % NF~NuS[ NP Nq N-e N.as3N/WYN1^N2CLN3CLN4CLN5CLN6CLN:OPN;OPN=CLN>CLNALNBINDIpJNEHRNG}ffNH}ff}eNY1}fJsw MNfs NNCONF&PNGMQNWuRNOxSNp TNIwVNo XNyZ YNIxP[NH!\NQ^Nf,w_Nv `NBRYaN|QbN|{cNvNCLNCLNCLgNj NCLNCLNCLNCLmNGnN}oNh NCLNCLNCLNCLNCLNCLNCLwNzfgxNM8RyNQzNOP{Nq΁ |NYm}Nk6Y~N]NC NEN|oQ ~NOPNY |N CLNGNJFNHoNP xuNCLtNCLNk Nr Nl 5NK36NL-N CLN!CL:N#I;N$B7hNACL-NCEWNFCLNGCL0NJRp1NMJ~2NOK3NPM&4NQFnNROP6NT]NUCL8NWHUNZCL:NDXNCL&NYH]N\CL*N_Ko!,N`U/NaOP.NbJ&NdCLNeCLNgOPNiCL3Nlq~4NnA36Npig7Nqb8Nr\,9Nuu7:Nwu&g;NxsgN{RiS?N|Js@N}GyAN~J^NOPDNw ENHrFNFVGNQNeNi|NbfNx { NbYNANe NdTj Nz? N{ !NCL NCLNCLN]n NCLNvY NANByNtx NЮ6 NyNCLNCLNCLNCLNCLNFNHK6NQ|NvW NH Nz N{ NR No3NH$N} NGJYNEZNxNy NG )Nt4 N"PTN%qes N(eDD N)`N*W&fN+^N,CLN.CLN/CLN0CLN1CLN4OPN5OPN8CLN9CLNIsN?HNCh\NFh\}eNE}fNt MNs NNCONF~8PNGBbQNVRNOfSNp TNI60VNn XNxf YNI Q[N\NQ(^Nb%_Nv `NAaN|#bN{kcNwNCLNCLNCLgNi NCLNCLNCLNCLmNGRnN~YoNg׷ NCLNCLNCLNCLNCLNCLNCLwNwxNKyNQfNOP{Nq |NZZ}Nm~N]NCNENy@Y ~NOPN [v |N CLNGyNJGNHUNKuNCLtNCLNAky NBq/ NDl?} 5NFK:6NGLNICLNJCL:NLJā;NMB)'NOPNCLdNG`NOPfN^NCLhNEiNP*NOPkNU= lNGmNLQnNC#oNhvpN\{ qNU rNX sNM\tNM[uNGNOPNCLxNFݱyNLLNzNJāNOPNCL}NJ<~NLщNKNFNOP~NCLNDJNV Nn@N cN f`N CL NDNCLNCL N'NCLNCLNXUNCLNCLNrz Nc N!CLN#CLN$CLN&U N(4N)u|N*vN-NN/W>N0]N1\ >!N2Sfg"N3sf#N4b$N5JN%N6Nd&N7L'N8L?(N9@oN;CL*N=I+N>CllNACL-NCENnCLNoCL0NrNq1NuI2NwKi3NxMd14NyFNzOP6N|]N}CL8NHNCL:NDNCLCLN?]N@CLNACLNBCLNDN. NFCLNHCUNJCLNKCLNMy]w NPCLNQCLNRCLNUOP$NVJ %NWI&NYIN\CL*N_K.,N`TtNaOP.NbJӱNdCLNeCLNgOPNiCL3NlqO4NnA36Ncs37NdY8NV39Nt:N{ ;Nt3NSi ?NI7@NGANJNOPDNwB ENHqFNFϣGNQ~dNe@NiNbpNu{ Nbv$NA_*Ne>t NdR Nzr Nz !NCL NCLNCLNbb NCLNvCLtN ?CLN Al`B N Crp N Dlv 5N FKk6N GL N ICLN JCL:N LH;N MN&N _LVe'N `L7l(N a@JN cCL*N eI+N g|VFN iCL-N kEzN nCLN oCL0N qKM1N rHV2N tK3N uM8k4N vFN wOP6N y]N zCL8N |HaN CL:N DXN CLKN ixB N ixB N JwN EN {JN @ N P N HN LN r N KN EVN LvN |N N}EN M N o^ N KN NN CLN E?N DF-N !OPN #CLN $CLN %CLN &CLN (CLN )CLN *CLN -YgN .NgN /aN 0kHN 1A{N 2xN 4CLN 6CLN 7CLN 8CLN 9CLN :CLN ;CLN <]N =CLN ?CLN @CLN AN/}N CCLN FCN HCLN IOPN Ly#; N OCLN PCLN QCLN TOP$N UJi%N VI|&N QZN CL*N J,N TN OP.N KHN CLN CLN OPN CL3N qY 4N A36N e@7N m338N [39N t:N sg;N sN S-?N I@N GxAN J:N OPDN v EN HpFN FGN QoAN dlN h4N bpN tQ N aeN A;N e[ N d N z7 N zF^ !N CL N CLN CLN _+ N CLN u N AҩN AN s N N xN CLN CLN CLN CLN CLN FN H=N QtLN u6 N H N y{ N { N Qk N oN Hk8N } N GeN EN xN yz N GN v N INR%N Lq N Od33 N P`6fN QV N R^N SCLN UCLN VCLN WCLN XCLN [OPN ]OPN _CLN `CLN cL>N dIN eIkN gH(N jh =N mh =}eN ~9 }fN Au MN tq NN CuON EPN GmQN U^.RN OSN pPL TN HVN m XN w" YN H [N įG\N RU^N eC_N wUU `N A<aN zbN zcN yBN CLN CLN CLgN h/ N CLN CLN CLN CLmN F#nN }oN g N CLN CLN CLNCLNCLNCLNCLwNv{xNNkyNR#NOP{No |N [F}N!m%~N#]N&C[N'EhN+{ ~N-OPN0[д |N2CLN5GY<N6J7N8H+N;L;uN=CLtN>CLNAlV NBr8 NCl 5NEK6NFLNHCLNICL:NKJ3;NtMCLN?CLNhCLNi]NjCLNlCLNmCLNnN. NpCLNsCNuCLNvCLNyx0 N|CLN}CLN~CLNOP$NK %%NIy9&NNNCL*NJ,NTNOP.NKBNCLNCLNOPNCL3Nq3j4NA36NX 7NX8NTs39Ns:Nq;Ns@NS?NI@NGi4ANJw!NOPDNwl ENHn8FNFGNQNkNoNgfNre N_[N@6Ne Ne5 Ny Ny !NCL NCLNCLN\5 NCLNup NANANr NF8 NwNCLNCLNCLNCLNCLNFPN0H5sN1ON4ua N7IDD N9y]w N:{ N QNTPRNOnSNp^ TNHTVNm, XNv^ YNH1[NƯՐ\NRl^NcT_Nw9 `NAaN|bN|pcNz{NCLNCLNCLgNh03 NCLNCLNCLNCLmN F׾nN }c4oN f NCLNCLNCLNCLNCLNCLNCLwNB\)xNNfyNRNOP{N n |N"\}N#l9~N%]N(C=N*EwN-z7 ~N/OPN2Z |N\CLN_GGNaJ|NbH-NePuNgCLtNhCLNkl Nlr Nml 5NoK[6NpL+NrCLNsCL:NuH9Q;NvLFNo GNiHNM/v LNUMNOaHNNBONvh. PNwna QNGCRNLsTNJipUNIQVNGҀNOPNCLYNC~ZNCi(NOPNCL]Nx ^NYNOPNCLaNPBNOPNCLdNG4NOPfN^NCLhNDYiNM NOPkNTw lNF=qmNHQnNBoNfs"pN\\) qNUf rNYL sNMAtNM)uNGPNOPNCLxNF5yNQFzNJfNOPNCL}N%IΘ~N'L%:N(JfN)F$N*OP~N,CLN.DJN1UOz N2s N3nN4mN6CL N8DN;CLNCLN?CLNBZNDCLNECLNGrs NHa2 NKCLNLCLNMCLNPUD NQw6gNRlNSos4NVNNXY4NY^NZ`!N[Uf"N\Gf#N]s $N^J%N_O}&NL['NL(N{in NCL*NK+NNCL-NENCLNCL0NG )1NLE2NK3NL4NFNOP6N]NCL8NINCL:NDNCLNTk?NI#@NG[ANJdSNOPDNw ENHjFNFGNQ9NkS3NpvgNgNp_ N^N@Ne Neд Ny Nyl !NCL NCLNCLN[Y@ NCLN!u ~ N")b N#AN$sF N'N(wFN*CLN+CLN,CLN-CLN.CLN2FN3H'N4P&tN7u' N:I NOK NBqFfNEGbNH},l NIHNJFRNKxHNLy NNFݱNOz7 NQNgN|p NeU NaiNVN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNK#NIoNIg5NHNyNy}eN'e}fNkvk MNs NNC> ONDPNG8>QNTgRNO SNpPL TNGkVNk+ XNu YNH[NT\NR^Ne6_Nw `N@aN{ǯbN}fgcNzNCLNCLNCLgNg( NCLNCLNCLN CLmN FŤnN}4oNeb5 NCLNCLNCLNCLNCLNCLNCLwNDA >xNENǮyNFQ\NHOP{NKl |NM]n}NNp'~NP]NSC(NUEz NX~] ~NZOPN]VS |N_CLNbG4NdJ-[NeH 'NhGh?uNjCLtNkCLNnm Nor?} Npl 5NrK`6NsLXNuCLNvCL:NxE;NyI~CLN?CL N@NACLNBCLNEZA4NGCLRtCLRtqt Rt`- Rt CLRt CLRt CLRtU3 RtjlRtaRtgfRtMRtY{Rt^Rt]!Rt]g"RtC33#Rtr$RtJP%RtO&RtK'RtL (Rt"~ Rt%CL*Rt'Hڷ+Rt(^=Rt+CL-Rt-E*Rt0CLRt1CL0Rt3E1Rt4K2Rt6Jm3Rt7L4Rt8FRt9OP6Rt;]RtdCL8RtfH RtiCL:RtkDRtnCLIt&RtAJ=RtCCL*RtFJZ,RtGUNRtHOP.RtILplRtKCLRtLCLRtOOPRtPCL3RtSq4RtUA36RtXvl7RtYhٙ8RtZkff9Rt]r:Rt^r33;Rt_sRtbT ~?RtcIJ@RtdGMARteJe RtfOPDRtvܹ ERtHa{FRtFWGRtQRtk\Rto|Rtg3RtpE Rt^YRt@ٛRtf 4 Rtf 4 Rtyz Rty !RtCL RtCLRtCLRt`S RtCLRtt Rt{ RtBNRtr+ RtH RtyRtCLRtCLRtCLRtCLRtCLRtFRtH)RtS=RttY RtH Rtx Rtz? RtTJ RtnfRtG~Rt}f RtHRtF>KRtxRtx RtGRt{ Rt M'1Rt p< Rtdb" Rt`6fRtVfRt^RtCLRtCLRtCLRtCLRtCLRtOPRtOPRtCLRt CLRt$KGRt%IRt&IcRt'HЌRt*h{Rt-h{}eRt\L}fNnw MRttsNi NRtvCBQORtwDv_PRtxG)QRt{SRRt|ONSRt}pPL TRt~F!VRtjt XRtt YRtHZ#[Rto\RtVe^Rtdx_Rtx `Rt@aRt{ǯbRt|#cRtyRtCLRtCLRtCLgRtg3 RtCLRtCLRtCLRtCLmRtF|nRt}4oRtdR RtCLRtCLRtCLRtCLRtCLRtCLRtCLwRtypxRtPW yRtR{RtOP{Rtk |Rt]}Rtp}$~Rt]RtCRtEw'Rt~z ~RtOPRtX(\ |RtCLRtG RtJRt GKRt#IiuRt&CLtRt'CLRt)n?} Rt*q Rt+l 5Rt.K6Rt/LiRt1CLRt2CL:Rt4DB;Rt5H`s RtvvfRtr`RtplRtCL RtD- RtCLRtCL Rtp8RtCLRtCLRtZ"WRtCLRtCLRtpX Rt^r Rt CLRt CLRt CLRtU RtqpRthffRtj3RtMRtVW Rt\0RtZ\!RtL3"RtCl#Rtrf$RtJ%RtO&RtL0#'Rt L (Rt!ARt#CL*RtNx=+RtQ^?RtTCL-RtVDYRtYCLRtZCL0Rt\D_1Rt]Iq2Rt_J13Rt`L 4RtaG>RtbOP6Rtd]RteCL8RtgIRtjCL:RtlDRtoCLRtERtixB RtixB RtJBURtERt{eyRt@ RtORtIVRtLRtr RtJRRtEVRtL"Rt{HRtM$\RtLX7Rto^ RtKRtI"RtCLRtERtDF-RtOPRtCLRtCLRtCLRtCLRtCLRtCLRtCLRtYgRtG6gRtYgRtGHRtkHRt MHRt"CLRt#CLRt$CLRt%CLRt&CLRt(CLRt)CLRt*]Rt+CLRt,CLRt-CLRt/N*pRt1CLRt3C<Rt5CLRt6CLRt8w Rt;CLRtRtS?RtI@RtGCARtJDRtOPDRtw ERtHWyFRtFr5GRtQi|RteyRti4Rtb\Rtna Rt^mRt@Rtf/ Rtf Rty1 Rtx0 !RtCL RtCLRtCLRtb  RtCLRtu' RtCURtBnRts Rtz RtwRtCLRtCLRtCLRtCLRtCLRtF RtH6[RtMGRtt RtH RtxWc Rtzu RtU5 Rtr3RtGsRt}: RtHRtF>KRtx9RtxP Rt GCRt }X Rt MwRtp| Rte Rt`3RtWRt^Rt@CLRtACLRtBCLRtCCLRtDCLRtHOPRtIOPRtKCLRtLCLRtOK'RtPIRtRI_RtSHЌRtU}RtV}}eRtW/}fRt)x MRttt0 NRtvC/ORtwD1PRtyG )QRtSRRtP'9SRtpA TRtFĒVRtjGP XRttl YRtHTL[Rt)\RtS9^Rtd_RtxG `Rt@aRt|34bRt{ cRtypRtCLRtCLRtCLgRtfk RtCLRtCLRtCLRtCLmRtFnRt~PoRtdx RtCLRtCLRtCLRtCLRtCLRtCLRtCLwRty\xRtJyRtRRtOP{Rtk"# |Rt \U}Rt o~Rt ]RtC 1RtEuRtFv ~RtOPRtY[ |RtCLRtFRt IRt!GRt$MiuRt&CLtRt'CLRt*n` Rt+rK Rt,l 5Rt.KZ6Rt/L<Rt1CLRt2CL:Rt4C.;Rt5GP!Rt?If"Rt@zٚ#RtBj$RtCJ%RtDO&RtELaS'RtFL"y(RtGAlRtICL*RtLm+RtO_\uRtQCL-RtSE RtVCLRtWCL0RtYD- 1RtZHZ2Rt\J3Rt]L4Rt_FRt`OP6Rtb]RtcCL8RteHؒRthCL:RtjDRtmCLRt T?Rt Id@Rt G. ARt JwRt OPDRt w ERt H8FRt F]XGRt QARt aYRt f`Rt ^gRt m Rt _oRt @Rt f& Rt gd Rt x Rt xWc !Rt CL Rt CLRt CLRt ]b Rt CLRt uS[ Rt DYRt BRt s8 Rt ݁{Rt wRt CLRt CLRt CLRt CLRt CLRt FRt H=Rt STRt tz Rt I Rt w Rt z Rt P7. Rt nRt G<Rt } Rt (IRt )ERt *xRt +x Rt ,ERt -~; Rt 0M!Rt 3pPL Rt 6d" Rt 7aRt 8WPRt 9^Rt :CLRt CLRt ?CLRt BOPRt DOPRt FCLRt GCLRt JKcNRt KI,Rt LIWRt NH1Rt Qh Rt Th }eRt yl}fRt*x MRt sM NRt CORt DNPRt FQRt S\RRt PJSRt pPL TRt FVRt jr XRt t8 YRt G[Rt \Rt U,^Rt b_Rt x `Rt @TaRt }fgbRt |cRt zfgRt CLRt CLRt CLgRt f Rt CLRt CLRt CLRt CLmRt FnRt }`oRt c Rt CLRt CLRt CLRt CLRt CLRt CLRt CLwRt zGxRt LyRt QRt OP{Rt j |Rt \}Rt p`~Rt ]Rt CRt ElURt ~ ~Rt OPRt U/ |Rt CLRt FRt I{eRt GRt "NOMuRt $CLtRt %CLRt (n Rt )qĜ Rt *l 5Rt TK6Rt ULRt WCLRt XCL:Rt ZC';Rt [EdzJ#Rt ?lg$Rt @JP%Rt AP&Rt CL&'Rt DL/9(Rt EA Rt GCL*Rt Jd+Rt L`Rt OCL-Rt QDZRt TCLRt UCL0Rt WC.1Rt Q2Rt Jf3Rt LY 4Rt F^Rt OP6Rt ]Rt CL8Rt HRt CL:Rt ERt CLRt jCL*Rt mI3,Rt nU'Rt oOP.Rt pLRt rCLRt sCLRt vOPRt xCL3Rt zp4Rt |A36Rt e7Rt W8Rt Yy9Rt qV:Rt u`;Rt vRt Tc?Rt I@Rt G ARt I֍Rt OPDRt u ERt H(FRt FJMGRt QARt bRt hS3Rt `ɚRt lqo Rt `=Rt @4Rt g[~ Rt g Rt xP Rt x !Rt CL Rt CLRt CLRt [ Rt CLRt u ~ Rt A+Rt BRt sU: Rt J Rt wRt CLRt CLRt CLRt CLRt CLRtFѫRtH<RtPuRttx RtHȉ RtwB RtzF^ RtNN Rt!pfRt$GRt'},l Rt(JXRt*F/Rt+xRt,xt Rt-EѕRt.@Rt0MRt3p$ Rt6dDD Rt8aRt9VfRt:^Rt;CLRtRt9[Rt:_uRt;Z!Rtsf$Rt?J%RthOD&RtiL`'RtjL0#(RtkAvmRtmCL*Rtp\+Rts\!WRtvCL-RtxDYRt{CLRt|CL0Rt~C/1RtLa2RtJE3RtL44RtFRtOP6Rt]RtCL8RtHURtCL:RtE*RtCLHRtFIRtW+ JRt}e KRtILRtZ RtixB RtixB RtD%RtI RtEWRtixB RtixB RtJmRtERt{eyRt@ RtORtHRtLRtr RtKmRtEVRtLvRt{RtLGRtLsRto^ RtKRtERtCLRtERtERtOPRt0CLRt1CLRt3CLRt4CLRt5CLRt6CLRt7CLRt:XRt;Oc3RtRtTj?RtI@RtGARtIRtOPDRtu ERtGFRtF=GRtQwRthٙRtngRtf0Rtl Rt`1Rt@nRtg Rtgn Rtx Rtw !RtCL RtCLRtCLRt\C RtCLRtt[ Rt|5! RtB8PRtr]\ Rt*RtwRtCLRtCLRtCLRt CLRt CLRt F'RtH4RtNFRtt[ RtH RtvY Rty RtQ1 Rtr#3Rt F<Rt$}I Rt&WRt'FRt*x!Rt+xH Rt,ERt-@Rt/NsRt3o Rt^e Rt_aLRt`VfRta^RtbCLRtcCLRteCLRtfCLRtgCLRtjOPRtkOPRtnCLRtoCLRtrK&XRtsIsRttIARtuHNRtx|fRty|f}eRt~}fRtNyy MRtsM NRtC?ORtDUPRtF~QRtRRRtP/SRtpPL TRtFAVRth XRttZ5 YRtG[Rtϱ)\RtRq^Rtc_Rtx `Rt@aRt}ubRt~ǯcRtypRtCLRtCLRtCLgRte RtCLRtCLRtCLRtCLmRtFl nRt}oRta RtCLRtCLRtCLRtCLRtCLRtCLRtCLwRt@BxRt$OyRt%OQRt&OP{Rt)iwx |Rt,^Z}Rt-n*~Rt/]Rt2BRt3EGRt6~ ~Rt9OPRtCLRtAFRtBHRtDGxRtGJەuRtICLtRtJCLRtLp RtNq RtOl& 5RtQK06RtRLRtTCLRtUCL:RtWC.;RtXCoY:Rty;Rt|RtT&?RtIp@RtFARtIRtOPDRt{H ERtGFRtF1GRtPRtd Rtj)RtbRtkvA Rta Rt@Rtg Rth(# Rtx:D RtwQ? !RtCL RtCLRtCLRta RtCLRtsF Rtz RtARtqJ Rt jRtwRtCLRtCLRtCLRtCLRtCLRt FRt H-JRt TtRtt!N RtHDD Rtv Rty RtU RtmRtFFRtI}I RtLfRtMHRtPx/RtQx+ RtREGRtSAHRtUN]RtXo۔ Rt\fL Rt]`Rt^X3Rt_^Rt`CLRtaCLRtcCLRtdCLRteCLRthOPRtiOPRtkCLRtmCLRtpK %RtqIlRtrI;RtsH;Rtvh(Rtzh(}eRteS}fRtLzd MRtr NRtC ORtDSoPRtFWQRtR)RRtPSRtpPL TRtExVRtg XRtt$ YRtGxO[Rtб+\RtW9^RtdQ_Rtyr `Rt@!aRt|#bRt}ucRtyRtCLRtCLRtCLgRte Rt CLRtCLRtCLRtCLmRtFhmnRt}oRt`b5 RtCLRtCLRtCLRtCLRtCLRt CLRt!CLwRt$34xRt%M >yRt&RRt'OP{Rt*hfg |Rt,]}Rt.m~Rt0]Rt3BRt4EWhRt7~24 ~Rt9OPRt=S.B |Rt?CLRtBFw_RtCHRtDGh V\P5uV\CLtV\CLV\ q V\ p# V\ k 5V\ KG6V\LV\CLV\CL:V\C:;V\BAV\OPV\CL}V\I=~V\JV\IլV\F'V\OP~V\CLV\DJV\S^ V\@V\BV\wٙV\CL V\CV\CLV\CL V\ۑV\CLV\CLV\WaV\CLV\CLV\p V\WM V\CLV\CLV\CLV\S} V\qV\d V\f4V\MwV\XYV\] V\\!V\N"V\rf#V\fs3$V\J %V\O`&V\L'V\LE(V\AV\CL*V\.Uj+V\1_'V\3CL-V\5DV\8CLV\9CL0V\;A1V\J 3V\?K$4V\@FV\BOP6V\D]V\ECL8V\GI V\JCL:V\LEV[V\OCLV\]CLV\^CLEV\`BHV\aBIV\bk/ JV\cY8 KV\fIfgLV\ZB V\ixB V\ixB V\DSV\IV\EWV\ixB V\ixB V\JV\EV\{eyV\EVV\OPV\HV\LV\r V\KAV\EVV\OpV\zюV\M V\LV\o^ V\KV\E,V\CLV\ELV\DF-V\OPV\CLV\CLV\CLV\CLV\CLV\CLV\CLV\PgV\N&fV\]əV\f=qV\kHV\hHV\CLV\CLV\CLV\CLV\CLV\CLV\CLV\]V\CLV\ CLV\ CLV\ N)V\CLV\CV\CLV\CLV\x# V\CLV\CLV\CLV\OP$V\J!%V\Id&V\!H V\$CL*V\'Ih,V\(UV\)OP.V\*MV\+CLV\,CLV\/OPV\YCL3V\\pn4V\^A36V\`dl7V\aX 8V\bY39V\ergB:V\gy4;V\hxs3V\kT?V\lIVe@V\mF*AV\nKV\oOPDV\r~@ EV\tGPFV\uF0GV\vPV\ycV\zj3V\{b\V\}kb V\bV\#YV\$X!V\%T"V\'|#V\(k$V\)J %V\*O&V\+L]'V\,LO(V\-AV\/CL*V\2Si +V\5`'V\8CL-V\:ByV\V\rTU?V\sI9>@V\tFAV\uKcV\vOPDV\x~; EV\zHFV\{F9GV\P{V\bV\iVfV\afV\j= V\b V\! V\hS V\h" V\w V\v !V\CL V\CLV\CLV\[ V\CLV\rn V\CpiV\AV\p V\ƶV\w1UV\CLV\CLV\CLV\CLV\CLV\FV\HV\LV\s V\Hs3 V\t4 V\x V\N V\ sYV\ F:V\|} V\pV\J@V\xȴV\wS V\F(V\A:V\MXV\o V\"g; V\#`V\$YV\%^V\&CLV\'CLV\)CLV\*CLV\+CLV\.OPV\/OPV\2CLV\3CLV\6J5V\7IfLV\8I#V\9H5V\<~V\=~}eV\`}fV\ |͆ MV\r NV\BOV\D1PV\FQV\RBRV\PSV\p TV\EVV\f XV\s YV\G2:[V\\V\Wg^V\e_V\yUU `V\@!aV\{gbV\|cV\x V\CLV\CLV\CLgV\e7h V\CLV\CLV\CLV\CLmV\FiUnV\~ oV\^ V\CLV\CLV\CLV\CLV\CLV\CLV\CLwV\yxV\LQyV\QLV\OP{V\f |V\_# }V\q+~V\]V\BvV\EA V\~OI ~V\OPV\R |V\CLV\F#V\HAGV\G[V\ GEEuV\5CLtV\6CLV\8rx V\:p V\;k/ 5V\=K?6V\>LdV\@CLV\ACL:V\CCa;V\DN4FV\TyGV\UjQHV\VKش LV\WjQMV\XbNV\YxROV\\{LS PV\]{LS QV\^G0RV\`KuTV\aHUV\cHVV\dG8V\eOPV\gCLYV\iDZV\jBV\lOPV\nCL]V\w ^V\]GV\OPV\CLaV\QV\OPV\CLdV\FV\OPfV\^V\CLhV\CaiV\PMTV\OPkV\SFc lV\d33mV\dznV\D*=oV\dApV\]R qV\V rV\Y sV\MtV\MuV\FV\OPV\CLxV\FyV\Q0zV\ISV\OPV\CL}V\I(-~V\JyMV\IV\F,.V\OP~V\CLV\DV\R V\  V\ A3V\ x|V\ CL V\ CpV\ CLV\ CL V\ (V\ CLV\ CLV\ @bV\ CLV\ CLV\ o V\ W V\ CLV\ CLV\ CLV\ SpO V\ yfV\ os4V\ !l0V\ $MLV\ &RV\ 'W\V\ (V}q!V\ )J3"V\ *w@#V\ +g33$V\ ,J %V\ -Odi&V\ .L''V\ /L2(V\ 0@HV\ 2CL*V\ 5R)3+V\ `[o?V\ cCL-V\ eCDV\ hCLV\ iCL0V\ k@;1V\ lQ2V\ nIϜ3V\ oK4V\ pFӍV\ qOP6V\ s]V\ tCL8V\ vI(-V\ yCL:V\ {E]V\ ~CLN07V\ @CLV\ BCV\ DCLV\ ECLV\ Gw_ V\ JCLV\ KCLV\ LCLV\ OOP$V\ PJ%V\ QIX&V\ SOSV\ VCL*V\ YIB,V\ ZV[=V\ [OP.V\ \MV\ ^CLV\ _CLV\ aOPV\ cCL3V\ pS4V\ A36V\ ^37V\ M@8V\ Rl9V\ r:V\ ws3;V\ xV\ Tw?V\ I@V\ FڊAV\ K:\V\ OPDV\ ' EV\ HjFV\ FC GV\ PV\ aV\ i3V\ ^gV\ j V\ arV\ ~ V\ h V\ h V\ wQ? V\ v- !V\ CL V\ CLV\ CLV\ [ V\ CLV\ r@3 V\ AV\ B?V\ p^ V\ H* V\ vmV\ CLV\ CLV\ CLV\ CLV\ CLV\ FV\ HpV\ PVV\ s V\ HD V\ t>u V\ x:D V\ N` V\ o3V\ FV\ |& V\ qQ;V\ KV\ xV\ w V\ EZV\ Bk!V\ M#V\ "oI V\ %g V\ &`yV\ 'YfV\ )^V\ *CLV\ +CLV\ TCLV\ UCLV\ VCLV\ ZOPV\ [OPV\ ]CLV\ ^CLV\ aJV\ cI]8V\ dIV\ eHV\ hi33V\ ki33}eV\ \؟}fV\8} MV\ r NV\ B&OV\ D`PV\ E/QV\ R RRV\ PgSV\ pX TV\ DܭVV\ f i XV\ tl YV\ G/[V\ ²x\V\ W^V\ d8_V\ y `V\ @aV\ {gbV\ {ǯcV\ xzV\ CLV\ CLV\ CLgV\ e4E V\ CLV\ CLV\ CLV\ CLmV\ FdnV\ }goV\ ^@ V\ CLV\ CLV\ CLV\ CLV\ CLV\ CLV\ CLwV\ {zxV\ L)yV\ P{V\ OP{V\ e |V\ _}V\ oe~V\ !]V\ %BV\ &EOV\ )} ~V\ +OPV\ .QY@ |V\ 0CLV\ 4F)V\ 5HV\ 6FV\ 9KFuV\ ;CLtV\ =CLV\ ?r V\ @o V\ Ajk 5V\ CJ 6V\ DLCDV\ FCLV\ HCL:V\ JCi(;V\ KLRV\ OPkV\ S1 lV\ cmV\ c(nV\ 3 oV\ dpV\ ]W qV\ X rV\ [ sV\ MtV\ MuV\ FV\ OPV\ CLxV\ F:yV\ N~ zV\ I=V\ OPV\ CL}V\ I~V\ JZaV\ I}V\ F/V\ OP~V\ CLV\ DV\ R_ V\ BV\ D\V\ 33V\ CL V\ CpiV\ CLV\ CL V\ DKV\ CLV\ CLV\ Qr"V\ CLV\ CLV\ n V\ WJ V\ CLV\ HCLV\ ICLV\ LS V\ Mq#3V\ Nf V\ Oi9V\ RM#V\ TUqV\ UZT{V\ VY)!V\ WD@"V\ Xv33#V\ Z[$V\ [J %V\ \Nn&V\ ]L='V\ ^Kd(V\ _@nV\ aCL*V\ dQ+V\ gX V\ iCL-V\ k}f V\ nCLV\ oCL0V\ q},l 1V\ rL2V\ tI3V\ uK{4V\ wFV\ xOP6V\ z]V\ {CL8V\ }IL\V\ CL:V\ E]V\ CLCLV\?CLV\@CLV\AN5DV\CCLV\FC<V\HCLV\ICLV\Kz % V\uCLV\vCLV\wCLV\zOP$V\{J%V\|IR&&V\L V\CL*V\I',V\VV\OP.V\NV\CLV\CLV\OPV\CL3V\p2a4V\A36V\`37V\\S38V\V9V\r,:V\u;V\sV\T&?V\H @V\FAV\KV\OPDV\: EV\HTFV\FIeGV\P(V\_ffV\g<V\\3V\iZ V\aȤV\~ V\h V\i V\w V\u} !V\CL V\CLV\CLV\`' V\CLV\qes V\|R8 V\A:V\oXB V\E܃V\viV\CLV\CLV\CLV\CLV\CLV\FV\H(V\KV\sU: V\ HD V\ s V\ w3 V\ T V\tfV\ LV\^MV\XNV\mOV\|C PV\{a QV\GRV\KiZTV\HUV\HZVV\GwV\OPV\CLYV\DZV\BV\OPV\CL]V\wQ? ^V\\1V\OPV\CLaV\QhV\OPV\CLdV\FV\OPfV\^V\CLhV\CUiV\N0 V\OPkV\S0< lV\amV\a=qnV\AJ=oV\c{pV\`# qV\V3 rV\Z sV\M/tV\MuV\F V\OPV\CLxV\F[GyV\KwzV\I V\OPV\CL}V\I~V\J7V\IoV\F'V\OP~V\CLV\DV\R V\BV\0DV\1fV\3CL V\5Ci(V\8CLV\9CL V\:V\;CLV\S JV\muKV\ILV\Z V\ixB V\ixB V\DV\J3V\ETV\ixB V\ixB V\J V\EV\zJV\@ V\OV\IV\LV\r V\ LV\ EVV\LvV\z?V\K=V\L7V\o^ V\KV\CyaV\CLV\E?V\ DF-V\"OPV\$CLV\&CLV\'CLV\(CLV\)CLV\*CLV\+CLV\.XfV\/NgV\0YgV\1MHV\3kHV\\gQV\^CLV\_CLV\`CLV\aCLV\bCLV\cCLV\dCLV\f]V\gCLV\hCLV\iCLV\jN(EV\lCLV\oCUV\qCLV\rCLV\t{w V\wCLV\wCLV\xCLV\{OP$V\|J7%V\}IL\&V\H<V\CL*V\I@,V\WV\OP.V\N*pV\CLV\CLV\OPV\CL3V\p+4V\A36V\VS37V\Qf8V\[339V\rM;:V\y;V\u@V\T?V\Hw@V\FAV\J,V\OPDV\@FEV\GRFV\FK6GV\PJV\]V\d<V\[)V\i%y V\a8V\} V\hJ V\i V\v V\up !V\CL V\CLV\CLV\^ V\CLV\qV V\x V\E9[V\o V\V\uV\CLV\CLV\CLV\CLV\$CLV\'FOV\(HV\)JGfV\,s T V\/H V\1srb V\3w V\4Pf V\7tfV\:EJV\=| V\?{ V\@NSV\Cy%V\EwB V\FDV\GC V\INVV\Ln V\On V\PaV\R]3V\S^V\TCLV\UCLV\VCLV\WCLV\YCLV\\OPV\]OPV\_CLV\CLV\JtV\IQkV\IV\HtV\}LV\}L}eV\f|}fV\h~ MV\q NV\CGOOV\DAPV\E7.QV\RRV\PFSV\AZTV\DdVV\e| XV\}d YV\F[V\P\V\V^V\bX_V\y `V\D/aV\{=qbV\|#cV\x\*V\CLV\CLV\CLgV\gx V\CLV\CLV\CLV\CLmV\H8,nV\}oV\] V\ CLV\ CLV\ CLV\CLV\CLV\CLV\CLwV\{xV\KyV\PffV\OP{V\e |V\_x}V\o!~V\!]V\$CZV\%F=V\P} ~V\ROPV\UR |V\XCLV\[EхV\\GwV\]FV\`JuV\cCLtV\dCLV\fsY V\go V\hjH 5V\kJ6V\lL>V\nCLV\oCL:V\qDS;V\rJ V\CLV\CLEV\AAhHV\BLPIV\o+ JV\gLKV\IELV\Z V\ixB V\ixB V\EZV\JBUV\EV\ixB V\ixB V\JāV\EV\xdV\EVV\OsV\IV\LV\r V\ LV\EVV\S V\z V\K:[V\LTV\o^ V\KV\B߇V\CLV\FEV\IDF-V\KOPV\NCLV\OCLV\PCLV\QCLV\RCLV\SCLV\TCLV\WPgV\XKfV\YYV\[N V\\MV\]SHV\_CLV\`CLV\aCLV\bCLV\cCLV\dCLV\fCLV\g]V\hCLV\iCLV\jCLV\lN(V\mCLV\pCV\rCLV\sCLV\uy V\xCLV\yCLV\zCLV\|OP$V\}J%V\~IN&V\O^V\CL*V\H1,V\WV\OP.V\N+V\CLV\CLV\OPV\CL3V\p64V\A6V\zٚ7V\cs38V\u9V\rj:V\zS3;V\yffV\T?V\H:@V\FMAV\JV\OPDV\@NEV\GPFV\FFGV\O5V\P3V\V3V\OV\hb V\bV\}d V\hׄ V\i| V\vR V\u !V\CL V\CLV\CLV\]K V\CLV\p V\|j V\E9[V\o V\sgV\tSV\ CLV\!CLV\#CLV\$CLV\%CLV\(FsV\)H=V\*IXV\-r V\0Ij V\3s V\4w V\5L/ V\8rV\;EV\>{ V\@@dV\AOV\ExV\Fw V\GDXZDCpiZDMC\ZDn$ ZD n ZD aYZD ^vfZD ^ZDCLZDCLZDCLZDCLZDCLZDOPZDOPZDCLZDCLZDJTLZDIAZD HIZD"HjZD$~ZD%~}eV\UL!}fV\f~ MZDkq NZDmCrOZDnCPZDoD~QZDsRtRZDtPsSZDusc TZDvDVZDwdQK XZDx@YZDzF[ZD| \ZD}OY^ZDb%_ZDy `ZDCaaZD{zbZD~=qcZDzZDCLZDCLZDCLgZDg'6 ZDCLZDCLZDCLZDCLmZDH(nZD~FgoZD\4 ZDCLZDCLZDCLZDCLZDCLZDCLZDCLwZDx=qxZDL)yZDPZDOP{ZDd"# |ZD^4}ZDr'~ZD]ZDDZDF |ZD}h ~ZDOPZDT |ZDCLZDEZDG].ZDF'ZDH!uZDCLtZDCLZDtX ZDo ZDl 5ZDJ6ZDL(ZDCLZDCL:ZDGC;ZD,HSJ LZD@tMZDAppNZDBBkOZDE}T PZDF| QZDGHRZDHKFTZDJH/UZDKHVZDLG^ZDMOPZDOCLYZDQDXZZDRB)ZDTOPZDVCL]ZDXw% ^ZDZYE1ZD[OPZD]CLaZD`OZDaOPZDcCLdZDeFiZDgOPfZD^ZDCLhZDBwiZDLZDOPkZDRj lZDjffmZDiQnZDAoZDcspZD]ff qZDW\) rZDY{ sZDMtZDMғuZDFyZDOPZDCLxZDF!OyZDRczZDHؒZDOPZDCL}ZDHؒ~ZDIZDI?ZDF$ZDOP~ZDCLZDDVZDR ZDAfZDZD{ɚZDCL ZDCDZDCLZDCL ZD˿;NZDCLZDCLZDH]ZDCLZDCLZDn ZDV< ZDCLZDCLZDCLZDRC ZDNZDA,ZD EgZD IZDd ZDxz ZD34 !ZDM"ZD@l#ZDb3$ZDJ%ZDN&ZDK'ZDJ(ZD' ZDCL*ZD!N+ZD#[dZD&CL-ZD({w ZD+CLZD,CL0ZD.z$ 1ZD/Hc2ZDYI83ZDZK]4ZD[FZD\OP6ZD^]ZD`CL8ZDbHZDeCL:ZDgDZDjCLZDLZDRpZDCLZDCLZDCLZD CLZD!CLZD"CLZD#CLZD$]ZD%CLZD'CLZD(CLZD)N!ZD+CLZD.CZD0CLZD1CLZD2z)B ZD5CLZD6CLZD7CLZD:OP$ZD;J%ZDZDT?ZDH@ZDFAZDJkZDOPDZDA EZDGLFZDF6[GZDOZDP4ZDw#3ZDW9ZDgy ZDcZD}  ZDh ZDii ZDvW ZDt !ZDCL ZDCLZDCLZD` ZDCLZDq ZDBɀZDEOZDo ZDzZDs%ZDCLZDCLZDCLZDCLZDCLZDFxZDHi"ZDJ`ZDrz ZDIn ZDsU: ZDw ZDT-E ZDr)ZDEZD{ ZDBahZDQ'ZDxuZDvܹ ZDDZDCZDLtZD nn ZDoD ZDa33ZD^)ZD^ZDCLZDCLZDCLZDCLZDCLZDOPZDOPZDCLZDCLZD"J9ZD#I9ZDMHeZDNHaZDP~fZDQ~f}eZDW}fZDA MZDort NZDqC}OZDrCMPZDtDQZDwSRZDxPQSZDyrk TZDzD ]VZD{d& XZD|A^"YZDF[ZD$\ZDVԟ^ZDf_ZDyU `ZDBaZD}GbZD~cZDyZDCLZDCLZDCLgZDgf ZDCLZDCLZDCLZDCLmZDG$nZD~6goZD[) ZDCLZDCLZDCLZDCLZDCLZDCLZDCLwZDy\xZDP4yZDNZDOP{ZDcwx |ZD^x}ZDtA~ZD]ZDCޠZDEgZD} ~ZDOPZDUx= |ZDCLZDEZDGGtZDF ZDLvuZD!CLtZD"CLZD%t ZD&oƨ ZD'l 5ZD)J6ZD*L"yZD,CLZD-CL:ZD/Gx;ZD0G LOP$ZD?Jz%ZD@I[&ZDCLeZDmCL*ZDpH,ZDqYxZDrOP.ZDsN@ZDuCLZDvCLZDyOPZD{CL3ZD}oT4ZDA6ZDeٚ7ZDr8ZDi9ZDr:ZDo&f;ZDqZDT.T?ZDHn8@ZDFAZDJicZDOPDZDA}EZDGFZDF,bGZDOZDR3ZDX)ZDQfZDf ZDc4ZD}  ZDi ZDi| ZDu} ZDt[ !ZDCL ZDCLZDCLZD\ ZDCLZDpӖ ZD7 ZDEOZDo ZDhZDrZDCLZDCLZDCLZDCLZDCLZDF:ZDHWZDOZDr@3 ZDJD ZDs ZDx:D ZDLU ZDpC3ZDEZDz ZDCZDRZDxZDvt ZDDZD DZD4KZD7n4a ZD:hU ZD;`ZD<\C3ZD=^ZD?CLZD@CLZDACLZDBCLZDCCLZDFOPZDHOPZDJCLZDKCLZDNJ"QZDOI0ZDQH(ZDRHYZDUgZDXg}eZDp}fZD%@R0MZDq NZDCOZDB PZDD̘QZDSIRZDP\SZDq TZDDVZDdC XZDAYZDF|[ZDO4\ZDTT^ZDg-_ZDy `ZDB|4aZD}bZD~ǯcZDxZDCLZDCLZDCLgZDhE\ ZDCLZDCLZDCLZDCLmZDGnZD}oZD\ ZDCLZDCLZDCLZDCLZDCLZDCLZDCLwZD BxZD OyZD Q=qZD OP{ZD c |ZD _j}ZD rΩ~ZD ]ZD CZD F ZD |= ~ZD OPZD Q |ZD CLZD EaZD "G9ZD #FZD &PuZD (CLtZD )CLZD ,u P ZD -o ZD .kz 5ZD 0J~6ZD 1KZD 3CLZD 4CL:ZD 6F;ZD `DZD Tb?ZD HG@ZD F&AZD L!ZD OPDZD A]EZD GFZD F$8GZD OvoZD R3ZD X4ZD QZD e ZD cZD }/ ZD i= ZD i ZD u ZD t !ZD CL ZD CLZD CLZD ^ ZD CLZD q9 ZD y]w ZD EZD o۔ ZD @) ZD qZD CLZD CLZD CLZD CLZD CLZD F5ZD HZD LZD qJ ZD Iww ZD t' ZD !wt ZD "O ZD %qZD (EwZD +z$ ZD ,D0ZD .SZD 2xZD 3vY ZD 4DQNZD 5DBZD 7Kt2ZD :m ZD =h ZD >`ZD @XZD A^ZD BCLZD CCLZD DCLZD ECLZD GCLZD JOPZD KOPZD MCLZD NCLZD RJ ZD SI7ZD THZD UHZD W~fZD ~f}eZD Y}fZD ,@PZMZD r' NZD CSOZD CsPZD DQZD SXRZD PnSZD qV TZD D`VZD d XZD BbYZD F[ZD |\ZD R^ZD d>_ZD y `ZD B!aZD {ǯbZD }cZD wGZD CLZD CLZD CLgZD h` ZD CLZD CLZD CLZD CLmZD G32nZD }PoZD \ ZD CLZD CLZD CLZD CLZD CLZD CLZD CLwZD zfgxZD LByZD Q=qZD OP{ZD e |ZD ^}ZD sE~ZD ]ZD CZD FcZD } ~ZD OPZD U= |ZD CLZD IEQZD JGBbZD KFZD NIf_uZD QCLtZD RCLZD Tur ZD Upfg ZD Vk7L 5ZD YJ6ZD ZKAZD \CLZD ]CL:ZD _CU;ZD `IiCLZDAYgZDBKəZDCYgZDDO\ZDEKZDFOZDHCLZDICLZDJCLZDLCLZDMCLZDNCLZDOCLZDP]ZDQCLZDRCLZDSCLZDUN+)ZDWCLZDYCmZD[CLZD\CLZD`y@ ZDcCLZDdCLZDeCLZDgOP$ZDhJ%ZDiIw &ZDlKZDoCL*ZDrHt,ZDsYIZDtOP.ZDuNH ZDvCLZDwCLZDOPZDCL3ZDo4ZDA6ZDhff7ZDEL8ZDbfg9ZDr:ZDp;ZDqFfZDTr?ZDH()@ZDFAZDO<ZDOPDZDABEZDGFZDF(GZDOZDQ ZDVZDPgZDdC ZDbZD}d ZDii ZDi ZDuD ZDsF !ZDCL ZDCLZDCLZD]! ZDCLZDqˈ ZD~l^ ZDEZDp$ ZD˴ZD qk~ZD CLZD CLZDCLZDCLZDCLZDFLZDHZDKZDq ZDJȉ ZDt/ ZDx# ZD M+ ZD#nZD&EZD){Z ZD*D[ZD-U2&ZD0x`ZD1v- ZD2D- ZD3DuZD5L]ZD8m4 ZD;lD ZD=`ZD>^#3ZD?^ZDhCLZDiCLZDjCLZDlCLZDmCLZDpOPZDqOPZDsCLZDtCLZDxIZDyI.ZDzHxZD{GZD~gZDg}eZD[}fZD T@tYMZDs NZDCOZDD`DPZDDxyQZDSoRZDPcSZDpX TZDDVZDe XZDB}YZDFV>[ZDش\ZDR.^ZDc_ZDz `ZDAaZD}ubZD|pcZDwHZDCLZDCLZDCLgZDh ZDCLZDCLZDCLZDCLmZDFnZD}ٚoZD] ZDCLZDCLZDCLZDCLZDCLZDCLZDCLwZDyxZDK\)yZDS8RZDOP{ZD2ewx |ZD4^}ZD6r?~ZD8]ZD;C=ZD' |ZDGCLZDJENZDKG0FZDLGZDPH\uZDRCLtZDSCLZDUu5@ ZDVpH ZDXkbN 5ZDZJ6ZD[KZD]CLZD^CL:ZD`B;ZDaOKyZDRuzZDHGZD OPZD CL}ZDH~ZDI\ZDHZDFZDOP~ZDCLZDD_ZDQ΀ ZDq,ZDn@ZDpPZDCL ZD!CZD#CLZD%CL ZD&ZD'CLZD(CLZD+U]ZD-CLZD.CLZD0ouq ZD1Xq? ZD\CLZD]CLZD^CLZDaP ZDbDٚZDcx2ZDdE3ZDgEsZDiTzZDjW\)ZDklz!ZDlI4"ZDmo#ZDnJ$ZDoK <%ZDpMN&ZDqK['ZDrI(ZDu~ ZDxCL*ZDzKF+ZD{\JlZD~CL-ZD{ ZDOPZDCL0ZD{w 1ZDI~2ZDH3ZDJ34ZDFZDOP6ZD]ZDCL8ZDGZDCL:ZDDZDCLCLZD?CLZD@CLZDBCLZDEXFgZDFLlZDGYffZDHMZDIK=qZDJPffZDLCLZDMCLZDNCLZDPCLZDQCLZDRCLZDSCLZDT]ZDUCLZDVCLZDXCLZDYN'ZD[CLZD^CaZD_CLZDCLZDzr ZDCLZDCLZDCLZDOP$ZDJ%ZDI&ZDPoZDCL*ZDH,ZDYqZDOP.ZDNNZDCLZDCLZDOPZDCL3ZDoQ4ZDA6ZDc7ZDL8ZDcf9ZDq:ZDoS3;ZDp@ZDT,?ZDH %@ZDFAZDP<ZDOPDZD@EZDGxFZDFGZDO>ZDIvfZDNiZDIFgZDc ZDcuZD}& ZDi| ZDj' ZDu ~ ZDs !ZDCL ZDCLZDCLZD\o ZDCLZDrs ZDFRZDCZDp^ ZD ZD qKZDCLZDCLZDCLZDCLZDCLZDFfZDHFZDL)ZDq^ ZDJ ZD rn ZD!up ZD"M:T ZD%nc3ZDPEZDTz[ ZDUDTZDWVMZDZy7LZD[v4 ZD\CZD]DZD`KrZDcm ZDft ZDgbZDh_<ZDi^ZDjCLZDlCLZDmCLZDnCLZDoCLZDrOPZDsOPZDuOPZDwCLZDzI-ZD{I$ZD|HZD}GZDh(ZDh(}eZD N}fZDU@M=MZDs" NZDC&OZDDMPZDDOQZDSwRZDP\SZDp< TZDD@VZDe XZDBtYZDF33[ZD۳U\ZDU^ZDb2_ZDz9 `ZDAaZD}{bZD|*cZDxkZDCLZDCLZDCLgZDhH ZDCLZDCLZDCLZDCLmZDF=nZD!}4oZD"\ ZD$CLZD%CLZD&CLZD(CLZD)CLZD*CLZD+CLwZD.@)xZD/NyZD0OZD1OP{ZD5d |ZD7]}ZD8o~ZD:]ZD=B"ZD>ExZDB} ~ZDDOPZDGSw |ZDICLZDLEmZDMGZDOGxZDRLuZD|CLtZD}CLZDu{ ZDp ZDkI 5ZDJm6ZDKZDCLZDCL:ZDAq;ZDNOPZD@CLZDACLZDBCLZDCCLZDDCLZDECLZDGCLmNgmKgmY3m PGm L{m O34m CLmCLmCLmCLmCLmCLmCLm]mCLmCLmCLmNqmCLmCm CLm!CLm#z % m&CLm'CLm(CLm+OP$m,J%m-I$&m/M.m2CL*m5H,m6Ym7OP.m8N9m:CLm;CLmeOPmgCL3mjoz4mlA6motfg7mp]8mphٙ9msq:mul;mvm<mwlfmxOP>myT&?mzG@m{FrAm|Qm}OPDm~A#EmG]cFmFgGmO7mImNmImc< ma[m}S miQ mj' mt ms8 !mCL mCLmCLm^ mCLmq m@mAmo; mBOv mp3mCLmCLmCLmCLmCLmFzmHFmK.mq3 mI3 mp< mt mPcI mr#3mEmz? mD^mWJmxHmu} mCmDmKmmv muU mafm^0m^mCLm,CLm-CLm/CLm0CLm3OPm4OPm5OPm8CLm;ImH.2m@~33mB~33}emZ}fZD@tMm\q Nm_CHOm`D*PmaD2QmdSRmeP5|SmfpY TmgDhVme XmBiYmFf[m{ \mP^mc_mzq `mAam}ubm}ucmxmCLmCLmCLgmi"X mCLmCLmCLmCLmmF1=nm}om\ mCLmCLmCLmCLmCLmCLmCLwmw(xmKymN mOP{md |m^х}mqp~m]mBȐmF(m}I ~mOPmR~g |mCLmEmFm Fm PvumCLtmCLmu1 mpc mj 5mJN6mLCmCLmCL:mA;mL}z<m[?m Bwm"OPm$CLBm&{ Cm(Dm+B5Em-GFm.YGm/p HmXI0& LmY^\MmZ\Nm[pqOm^ O Pm_~24 Qm`H@RmaJZTmcHUmdH@VmeFmfOPmhCLYmjBZmlB}mnOPmpCL]mqvv ^ms^!muOPmwCLamyQmzOPm|CLdm~EmOPfm^ mCLhmAimR$DmOPkmQٕ lm_=qmmYRnmp޸ ombGpm_ qmX( rmZ smMitmN SumFmOPmCLxmFymN1zmHmOPmCL}mH9Q~mHmH,mFmOP~mCLmCBmQW mc3m]mbfmCL mCwmCLmOP mTBmCLmCLmN; mCLmOPmo mW~ m!CLm"CLm#CLm&P= m'Fm(r3m)E9m,Cm.Vffm/W\)m0j\!m1p33 "m2Y@#m3@g$m4K%m5MR&m6KCu'm8JҪ(m:~; m=CL*m?JI+m@["mCCL-mE~z mGOPmICL0mK{/ 1mLOO2mNHL3mOJ$"4mPFQ"mQOP6mS]hmTCL8mVF5mYCL:m[D_mCL<m}X =mFmOPmCL@mOAmIN_BmBImCLmCLEmc HmH`sImiI JmW>KmVLmZ4 mi mj mEV[mJmF[GmixB mixB mJmEmy+m@ mOlmHmLmr mM mEVmLvmy<mJgmLmo^ mKmdvmCLmEHmDF-mOPmCLmCLmCLmCLmCLmCLmCLmYmKVfmYgmMHm MHm MHm CLm CLmCLmCLmCLmCLmCLm]mCLmCLmCLmNmCLmCmCLm CLm"{Z mMCLmNCLmOCLmQOP$mRJ%mSI4&mVI~mYCL*m\Hj,m]Zm^OP.m_Nm`CLmaCLmdOPmfCL3miom4mkA6mm{7mnf8mom39mrp5:mtm&g;mun<mvmgmwOP>mxT?myGd@mzFbAm{S&m|OPDm}A{Em~GCFmEGmOomIYmNVfmIYmbb m^\km} mi& mjb mtU mr !mCL mCLmCLm\Rp mCLmp mx mBcmouq mʂ*mpmCLmCLmCLmCLmCLmFsmGUmL>mqt mI3 mo msF mKce mnvfmExm{ mDTmX_VmxmuZ mCpmDmLm"mJ m%nD m&`m(]fm)^m*CLm+CLm,CLm-CLm/CLm2OPm3OPm4OPm6CLm:I8m;I'm&m8KZ'm9K()(m<~Ü m?CL*mAI+mBYmmCL-mo: mqOPmsCL0mu{a 1mvKR2mxH3myI4mzF Jm{OP6m}]hm~CL8mFqmCL:mDJmCL<m}T =mFymOPmCL@mOAmI@BmBwmCLmCLEm~ HmDImn JmWKm~LmZ4 mi& mj mEmJmFimixB mixB mJZmEmxm@ mOmI=mLmr mM mEVmLvmy"mJPmL^mo^ mKmdxmCLmEmDF-mOPmCLmCLmCLmCLmCLmCLmCLm _ffm Nm ^3m4MHm5MHm6MHm8CLm:CLm;CLmCLm?CLm@]mACLmCCLmDCLmENmGCLmJCHmLCLmMCLmN{Z mQCLmRCLmSCLmVOP$mWJJ%mXI&m[Jm]CL*m`Hu,maYmbOP.mcNmeCLmfCLmiOPmkCL3mmoO4moA6mi7mQ&f8mg339mp"g:myٙ;mw<m{ mOP>mT'!?mG3@mFNAmSY3mOPDmAhEmG/ FmEGmOTmHfmN9mIFgma m]UFm}A] mj' mj> mtM mrn !mCL mCLmCLm_ mCLmqt mCumFmo7 mAin mpBmCLmCLmCLmCLmCLm F7m Gm NHm qes m ID m oI m rz m RW m p3m Et-m z m D?m Ym y&m u6 m Ci(m !Dm $Km 'm- m *p m +`ٚm ,]m -^m .CLm 0CLm 1CLm 2CLm 3CLm 6OPm `OPm aOPm cCLm fIm gI!Om hIm jHYm l~m m~}emY}fm@v&Mm r Nm CiOm DhPm D`Qm SRm P*Sm of Tm DܭVm fo> Xm C[Ym E[m &0\m R^m d_m z8 `m @am zbm z8Rcm x\*m CLm CLm CLgm iw m CLm CLm CLm CLmm Enm }om ]D m CLm CLm CLm CLm CLm CLm CLwm txm N=qym Pum OP{m f |m \]}m o~m ]m B>m E|m } ~m *OPm -T; |m /CLm 2EƦm 3Fm 4Ffm 8I[um :CLtm ;CLm =u m ?p m @kO 5m BI6m CL;m DOPm FCL:m HB;m IHN<m JZ?m KBrdm MOPm OCLBm Q{ Cm S|CDm VB!Em XGFm Y}GGm ZS >Hm [H` Lm \uMm ^mpNm _K=qOm a Pm c~ Qm HVFRm J|1Tm GUm H#Vm Fm OPm CLYm AZm A/m OPm CL]m vW ^m \m OPm CLam Pm OPm CLdm Edm OPfm ^ m CLhm At@im O3m OPkm Q lm dmm _33nm fG om btwpm ]( qm W=q rm VǮ sm MKtm Num Fm OPm CLxm F!Oym Rzm Gom OPm CL}m H~m Hm HIm Em OP~m CLm Cm P. m Vfgm Rlm Ygm CL m C=m CLm OP m Wm CLm CLm Gom CLm OPm oI m !X=A m $CLm %CLm &CLm )OX m *K9m +nm T~m WBzm YPm ZTzm [g!m \v "m ]X #m ^K$m `K)%m aLŎ&m bK'm cKR(m f~ m iCL*m kI+m l^m nCL-m p@Xm rOPm tCL0m v|C 1m wJI(2m yH3m zI|4m |Eޢm }OP6m ]hm CL8m Fm CL:m DQNm CL<m |& =m F:m OPm CL@m OAm I=Bm Bgm CLm CLEm ~; Hm BIm ]b Jm UdKm VgLm Z%\ m j' m k. m EsZm Jm Fm ixB m ixB m JZm Em y)m @ m Om HRm K=m r m M m EVm Pxm yZm JPm L^m o^ m Km gKm CLm E\m "DF-m $OPm &CLm 'CLm (CLm )CLm *CLm +CLm -CLm 0Ngm 1G6gm 2Pgm 3MHm 4GHm 5g{m 7CLm 8CLm 9CLm ;CLm CLm ?]m @CLm ACLm BCLm DNFm FCLm ICm JCLm KCLm M| m PCLm QCLm RCLm UOP$m VJ%m WI&m Pom CL*m H\p,m Ym OP.m Nim CLm CLm OPm CL3m o._4m A6m {g7m uf8m qfg9m p"g:m jg;m qg<m lm OP>m T^?m G@m F>[Am T]m OPDm AEm G Fm EGm O.Gm E3m JIm EC4m a0 m ]m }d m jb m j> m t m r !m CL m CLm CLm \~g m CLm q m Cμm G4m p| m vm p0m CLm CLm CLm CLm CLm Fm H`m Htm qHF m Ij m oK m q m KT m s,m Elm z m Dom Zhm y m u m CZm HD̘m JKm Nmm m Qu m R`fm S^3m T^m UCLm VCLm XCLm YCLm ZCLm ]OPm ^OPm `OPm bCLm eIm fI%m gIDm hHo{m lhm oh}em Zn}fm =@Mm r Nm COm DSoPm CQm SRm P.ZSm o Tm E%Vm f Xm C1RYm EN[m ²\m V^m d ~_m zUV `m @am zubm zfgcm wW m CLm CLm CLgm i m CLm CLm CLm CLmm E``nm }om ]n m CLm CLm CLm CLmCLmCLmCLwmtxmL{ymPW mOP{mf |m^}m ou~m"]m%Bm&Em)~# ~m+OPm/U |m1CLm4Em5FBm6Gm:N,umtmN %umF JmOPmCLxmFymRv=zmG0mOPmCL}mG'~mHmH1mE,mOP~mCLmCumPp mL3mP4m Sfm CL m C mCLmOP mCLm?CLmAFmDCLmGOPmJo7 mKYQ mNCLmOCLmPCLmSOg mTE mU^mVsfmYAsm[Pm\Vffm]h!m^K&g"m_[33#m`F3$mbK%mcLd&mdKx'meKd6(mh~' mkCL*mlIw+mnZjmpCL-mr@rmtOPmvCL0m|& 1mI!2mHy3mI4mE7mOP6m]mCL8mEmCL:mDJmCL<m| =mF~mOPmCL@mOAmIBmBVmCLmCLEm~; HmMIm^iw JmS6KmhLmZB mjb mkh mEdmJ mFmi| mixB mK mEmxm@ mOm Im K8mr mM mEVmLvmxmJPmLmo^ mKmgm!CLm$Em'DF-m)OPm+CLm,CLm-CLm.CLm/CLm0CLm2CLm5Ngm6K3m7Y,m8M(m9Nm:O{mCLmhCLmiCLmjCLmkCLml]mmCLmnCLmpCLmqN*msCLmvCmwCLmxCLmz} m}CLm~CLmCLmOP$mJ%mI&mM mCL*mHN,mYmOP.mO mCLmCLmOPmCL3mo,=4mA6mn7m]&f8mm9mo:ml`;msg<mlmOP>mT=s?mGx@mF3vAmTC4mOPDmAPEmG FmEUGmONmBC3mFfmAfm`J m_{)m} mju mj msl mrN !mCL mCLmCLm` mCLmq m|5! mGmp mvmpmCLmCLmCLmCLmCLmF:mH/m0Km3q+ m6IL m8o; m9q m:SnH m=oVfm@EOmDz mED emG\WmJxmKua mLCDmMDYmOKmSl9 mVu mW`fmX^|mY^mZCLm\CLm]CLm^CLm_CLmbOPmcOPmeOPmgCLmjIzFmkI/mIrmH@mgpmgp}emU/}fm?AtiMms. NmCOmD}PmD"(QmSRmPSmouq TmEVmgD XmCCOYmE݋[mDz\mOa^mc]H_mzc `m@am{ǯbmx cmvmCLmCLmCLgmij mCLmCLmCLmCLmm Epnm}Iom^@ mCLmCLmCLmCLmCLmCLmCLwmAW xmOymPGmOP{m!gwx |m#]E}m%p:~m']m*Am+Em.~ ~m0OPm\X |m^CLmaFmbFmcG@5mgNumiCLtmjCLmlx mmr1 mok 5mqI86mrLCmsOPmuCL:mwC=;mxE^<myG|k?mBrdmOPmCLBm|` CmxH DmAEmZFm^QGm\(HmHE LmLMmCNmZROm@nPm QmHkRmJITmG̈UmH;VmF%mOPmCLYmA{ZmBmOPmCL]mv- ^mZ8mOPmCLamOmOPmCLdmE*mOPfm^ mCLhmAW3imMշmOPkmQ) lmnQmmc33nmf omb4pmb# qmZ rm[L smM+tmN'rumF mOPm%CLxm'Fym(Olzm)Gm+OPm-CL}m/Go~m1H}fm2H"m3Eym4OP~m6CLm8Cm;P!M mTm@CL mBBEmECLmHOP mIWmKCLmLCLmNFmQCLmTOPmWo mXYc m[CLm\CLm]CLmM mFm^mpm@mR\mUpmi!mF"m[ #mF$mK %mLc&mL'mK(mAdmCL*mGB+maemCL-mA:%mOPmCL0m|& 1mN]2mHx3mI4mEvmOP6m]mCL8mEmCL:mDJmCL<m|& =mFmOPmCL@mOAAmH}BmC" mCLmCLEm7 Hm~UImh=R JmQJKmV%LmZQZ mju mk) mEWmJ mFmi m ixB m KFm Emxm@ mOmImK:[mr mM mEVmQm xz\m!JPm"L{m&o^ mPKmQgumSCLmVEmYDF-m[OPm]CLm^CLm_CLm`CLmaCLmcCLmdCLmgPgmhLvfmiPgmjK mkGmlKRmnCLmoCLmqCLmrCLmsCLmtCLmuCLmv]mwCLmxCLmzCLm{Nm}CLmC<mCLmCLm} mCLmCLmCLmOP$mJ%mI4&mI2mCL*mHC,mYmOP.mO^mCLmCLmOPmCL3mo94mA6mos47mY38mj9moF:mg`;mpf<mjmOP>mS?mGi4@mF1AmTnemOPDmAqEmFFmEGmO(mB0mFmBLm`( maym}n mj mj ms mr1 !mCL mCLmCLm"] m%CLm'rN m(~24 m)Cm*pA m,By5m.pwCm0CLm1CLm2CLm3CLm4CLm7Fm8Hm:G(m=q m@I mBof mCq3 mDKce mGsYmKE/MmN{ mOCmQ]Sm|x`m}uS[ m~CL!mE mKnml meٚ m`3m[ym^mCLmCLmCLmCLmCLmOPmOPmOPmCLmInxmI3vmIUmHRmq+mq+}em,[ʲ}fmlBcMmsM NmCOmDvPmDMQmSRmP'9SmoK TmErVmh~ XmC^KYmEG[m`-\mT̓^mcgy_mzq `m@SRamzW bmxLcmv34mCLmCLm CLgm i% mCLmCLmCLmCLmmE,nm}om_

LmHMmCpNmWOm@:gPm' QmHs<RmJ%gTmGUmH (VmFmOPmCLYmAW3ZmBmOPmCL]mvK ^mYimOPmCLamO[mOPmCLdmEmOPfm ^ mCLhmAHimLmOPkmP lm`Gmmbnmj) omb8hpm`( qmW# rmY sm M%Etm!N-um"F m#OPm%CLxm'Fym(L7zzm*Gxm,OPm.CL}m0G~m2H_sm3H'm4Em5OP~m7CLm9CmNim?P@mACL mCB=mFCLUOP UV%LUCLU CLU FݱUCLUOPUp$ UZV UCLUCLUCLUL, UFU\ٙU p3U#@EeU%PU&SU'h!U(TL"U)_ٚ#U*N$U+Jf%U,L-g&U-L'U.KƂ(U/BgU1CL*U3Gg+U4\U7CL-U9A U;OPUeCL0Ug}I 1UiM2Y2UkH3UlI4UmE*UnOP6Up]UqCL8UsE2UvCL:UxDBU{CL<U}| =U~FUOPUCL@UOAUHBUC,UCLUCLEU~s HUHIUm4 JUQaKUVRLUZ Uj Uk UEWUJāUF?Uj ^ UixB UKFUEUxdU@ UOUIUK:[Ur UM UEVUP5Uxz\UJULUo^ UKUiUCLUE\UDF-UOPUCLUCLUCLUCLUCLUCLUCLUR)UOfUNgUI34UKzUKRUCLUCLUCLU,CLU-CLU.CLU/CLU1]U2CLU3CLU4CLU5NcU7CLU:CaU4U_A6Ubp7Uc\8Ude@9Ugok:Uh;Ur<Ui&fUOP>UTu?UGY@UF$AUUUOPDUBEUF)FUEGUO UBLUF3UB&fU_X UbyU~] Uk. Uj Usrb Ur !UCL UCLUCLU`b UCLUsrb UFsUCUUp- UUplUCLUCLUCLUCLUCLUFUHUM[Uq UIٚ Up$ Uq^ UR UnlUEOUzu U CU _UxyUuD UC=UE2UKUUl UoU U`fU]3U^UCLUCLUCLUCLU!CLU$OPU%OPU&OPU(CLU+Id|U-HjU.I8U/GUZgU]g}eUgC}fmtB!MUxsz NUzCѦOU{DsPU}D[QUS{ RUP.ZSUn TUF+VUhJ XUCGYUE[Ut\US^Ub%_Uz `U@6aU|\bUzcUv*UCLUCLUCLgUjL UCLUCLUCLUCLmUEnU~ oU_N UCLUCLUCLUCLUCLUCLUCLwU@QxUNyUOQUOP{Ui |U\}Up~U]UA UEeUFv ~UOPUWY |UCLU#F;U$FYU%G\U(JZuU*CLtU+CLU.yR U/sG U0lp 5U2I&6U3K*U4OPU6CL:U8C=;U:B<U<}B?U=BU>OPU@CLBUB|ƚ CUDu@:DUGAcEUIJHFUJZzGUK{ HULH LUMHMUNC\NUOWOUP@\PUSU QUTHzxRUUJTUWGfUUXGVUYEUZOPUCLYUA:%ZUB"UOPUCL]Uvh. ^UXUOPUCLaUNUOPUCLdUDUOPfU^ UCLhUAAhiUUHUOPkUP lUamUgQnUhL oUapU^ff qUUW rUV sUM'tUN6uUFUOPUCLxUF yUP zUGUOPUCL}UG:~UHAUH[UEUOP~UCLUCumNim?P@mACL mCB=mFCLUOP UV%LUCLU CLU FݱUCLUOPUp$ UZV UCLUCLUCLUL, UFU\ٙU p3U#@EeU%PU&SU'h!U(TL"U)_ٚ#U*N$U+Jf%U,L-g&U-L'U.KƂ(U/BgU1CL*U3Gg+U4\U7CL-U9A U;OPUeCL0Ug}I 1UiM2Y2UkH3UlI4UmE*UnOP6Up]UqCL8UsE2UvCL:UxDBU{CL<U}| =U~FUOPUCL@UOAUHBUC,UCLUCLEU~s HUHIUm4 JUQaKUVRLUZ U kQ U k U EWU JāUFUj' UixB UK)UEUxU@ UOUIKUK:[Ur U!M ULEVUMLvUOxYUPJ9UQLUTo^ UVKUWjQUYCLU\E?U_DF-UbOPUdCLUeCLUfCLUgCLUhCLUiCLUjCLUmQUnG6gUpNgUqIpUrGUsLQUuCLUvCLUwCLUxCLUyCLU{CLU|CLU}]U~CLUCLUCLUNrUCLUCҶUCLUCLU~s UCLUCLUCLUOP$UJt%UI&UQ1UCL*UH>,UYMUOP.UOsUCLUCLUOPUCL3Uo44UA6Ut@7Ubfg8Ud39UoB:Ul;Up4<UnUOP>UT*?UGO@UFAUTUOPDUBEUFFUEGUO67UCUH3UCfU_ Ua3U~ Ukh Uj U sU: U!q !U$CL U%CLU&CLU(] U+CLU.sU: U/FiU0D;U1q9 U3WU4pwU6CLU7CLU9CLU:CLU;CLU>Fm5U?GMU@LKUCq UGIH UIp< UJqJ UKKr UNnUyDU|z U}C-5U`+UxyUu65 UC=UEGUKcUl8 Uo U`fU^ffU^UCLUCLUCLUCLUCLUOPUOPUOPUCLUIVUH9UIUGoUgUg}eU3]0}fU.BMUs2 NUC֤OUDpPUC/QUSkRUP5|SUnT TUF^VUi XUCFYUE[Ut\USP[^Udw_Uz9 `U@"aUzHbUycUwW U CLU CLU CLgUj: UCLUCLUCLUCLmU@DnUC}oUE`M9 UGCLUHCLUICLUJCLUKCLULCLUNCLwUQxxURNfyUSR\UTOP{UWi |UY\}UZo~U]]U_AcUaEJkUd~; ~UfOPUjX |UlCLUoFCUpFUqGuUtPAuUwCLtUxCLUzz U{si Ul 5UIX6UKUOPUCL:UC6];UK<UwC?UBqUOPUCLBU|& CUFODUAEUOFUTRGU\HUGb LUHMUCNUWOU@uDPU QUHRUJ<TUGUUGcVUEUOPUCLYUAKZUB)UOPUCL]Uv4 ^UVBUOPUCLaUMUOPU CLdU DYUOPfU^ UCLhUA2iUVUOPkUPuD lUcmUg33nUi oUapU^ qU!U\) rU"WL sU#MtU$N=\uU%EU&OPU(CLxU*EyU+S,zU,GU.OPU0CL}U3G~U5H(U6H U7EU8OP~U:CLUO?~ U?EfUAGUBN3UlCL UnA/UqCLUtOP UuWUwCLUxCLUzFU}CLUOPUpmy U\_ UCLUCLUCLUK U~4UUlUb3U~ UR\UVffUj\!UC"UZ#UI$UJ%UKİ&UMf'UL8U(UCUCL*UFq+U`UCL-UA:UOPUCL0U} 1UJ;42UHy3UI84UDLUOP6U]UCL8UDXUCL:UDJUCL<U|` =UFUOPUCL@UOAUHBUC<UCLUCLEU~s HUAIUX) JUM>KUT*LU\&w Uk. Ul3 UEVU JU FU jb U4ixB U5K)U7EU9xdU:@ U=OU?IuU@KAUCr UEM UHEVUIRUKwULKUNLUQo^ USKUTjXUVCLUYEU\DF-U^OPU`CLUaCLUbCLUcCLUeCLUfCLUgCLUjNgUkKUlPgUmMHUnH=qUoK UCLUCLUCLUCLUCLUCLUCLU]UCLUCLUCLUNUCLUCUCLUCLU~s UCLUCLUCLUOP$UJpx%UI&UMUCL*UHK6,UY]UOP.UOEUCLUCLUOPUCL3Uo8Q4UA6Ucs37UR8Ud349U o:U i;U qٚ<U kU OP>U SU?U G@M@U FAU TU OPDU CEU FFU EGU OU AIU F U BU _:% U \sU ~) U k U j U s8 U q !U CL U !CLU #CLU %a< U (CLU *sF U +@gvU ,EU -qt U 0U 1pdU 3CLU 4CLU 5CLU 6CLU 7CLU bFU OPU CLBU } CU IDU AEU QFU hGU ]HU G~) LU H=qMU C{NU VOU @UPU @QU HRU ITU GUU GVU E1U OPU CLYU @ZU AqU OPU CL]U u} ^U XU OPU CLaU NU OPU CLdU DYU OPfU ^ U CLhU A2iU VU OPkU PmY lU amU gnU g oU a pU `# qU XH rU Z. sU MdtU NDuU E`U !OPU #CLxU %EyU &Q>zU 'GU )OPU +CL}U UG~U WH U XHU YEU ZOP~U \CLU ^CU aN U bE3U cFU dL3U fCL U hB U kCLU nOP U oVU qCLU rCLU tF/U wCLU zOPU }pӖ U ~] V U CLU CLU CLU J U us3U cU agU | U PU VffU j\!U @3"U \@#U E$U J%U K&U M!'U L,(U D"U CL*U FL+U [?GU CL-U BEU OPU CL0U } 1U H)2U H{a3U I 4U DU OP6U ]U CL8U DU CL:U DQNU CL<U |R8 =U FxCU OPU CL@U OAU H|JBU C^EU CLU CLEU ~ HU "~cIU %ew JU &MKU 'ULU )[5 U +k) U ,lR U .EU /JU 0F:U 1ju U 2ixB U 3K82U 4EU 6xdU 7@ U :OpU =IZU >LU Ar U CLU FEVU GPeU IwU JK)U KLU No^ U OKcU Qk U TCLU WEgU DF-U OPU CLU CLU CLU CLU CLU CLU CLU PgU FU NgU IQU GU MU CLU CLU CLU CLU CLU CLU CLU ]U CLU CLU CLU NU CLU C`U CLU CLU ~@ U CLU CLU CLU OP$U Jb%U I~I&U Jv}U CL*U HTG,U YU OP.U P)VU CLU CLU OPU CL3U o>4U A6U Qf7U O 8U j 9U o7u:U n ;U s<U q4U OP>U TI?U G@U F AU UWU OPDU DEU FFU EGU OB|U KU Fc3U AgU ^g U ]bU @ U l U j U s T U q^ !U CL U CLU HCLU J]w U NCLU Ps U Qz[ U RFU Sq U UU VpU XCLU ZCLU [CLU \CLU ]CLU `FU aHOU bJE:U fq+ U iIff U kp U lr]\ U mL1s U ppC3U sDEU vz[ U xBAU zbU }xyU ~u' U C=U E@U LLKU l U sf U aFfU ^&fU ^U CLU CLU CLU CLU CLU OPU OPU OPU CLU I1U HٞU I.U HwU hQU hQ}eU U\.}fU BjMUs NUCۢOUD{]PUD7QUSd1RUPY#SUn$ TUFVUi XUCEYU!Ei[U")\U#S^U&ds_U(z `U)@aU+z(bU,zHcU-xU/CLU0CLU2CLgU5j U7CLU8CLU9CLU:CLmU=D{nUA}YoUBa UDCLUECLUFCLUGCLUHCLUICLUKCLwUv{zxUwM(yUxPUyOP{U|k |U~\Q}UnH9~U]UA0UEU~ ~UOPUXs |UCLUFZ\UFUGUJnuUCLtUCLUz| UtI UmD 5UI}6UKoUOPUCL:UC/;UM<Uk`?UBdUOPUCLBU},l CUE"DUAwrEUPHFUTGUH=qHUG09 LUHzMUC{NUVOU@PU@;"QUHRUITUGUUG7VUEUOPUCLYU@ZUAҩUOPUCL]Uu ~ ^U[BUOPUCLaUO'UOPUCLdUDUOPfU ^ U CLhU A2iUU7UOPkUPI lUb(mUr UhLUkEVUlLvUnwUpK$UqLUto^ UuKUUwjoUyCLU|EUDF-UOPUCLUCLUCLUCLUCLUCLUCLUNgUG6gUNgUJUG(UK UCLUCLUCLUCLUCLUCLUCLU]UCLUCLUCLUNUCLUC0UCLUCLU}: UCLUCLUCLUOP$UJR{%UIy9&UGyUCL*UHV,UZwUOP.UPIUCLUCLUOPUCL3UoBC4UA6UWL7US8U[9Uo!:Uf;Un<UgFfUOP>US?UG j@UFAUU}UOPDUD{_EUF3FUEGU0OYU4@<U5DU6@fU8^" U;_PU<D U=lR U>k. U?r+ U@q !UCCL UECLUFCLUH`6 UKCLUMsF UNBEUOG )UQr# URB UTpUVCLUWCLUXCLUYCLUZCLU^EU_HyvU`LUcq+ UfI"" UhqHF UirE UjOZ UrUD—Uzu UB>@UdNUx`Uu' UC=UE9[UKHUl~k Uq UafU^yU^UCLUCLUCLUCLUCLUOPUOPUOPUCLUI#UH6UIUH,bU33U33}eURZP}fUB}MU t0 NUCOUDPUDMQUSd1RUPnSU} TUG#/VUjC XUCEYUEֻ[Uo\UQޔ^U!bW_U"z `U#@aU%zbU&xcU(wU*CLU+CLU,CLgU/jI U1CLU2CLU3CLU]CLmU`DnUc~`oUdbY UfCLUgCLUhCLUjCLUkCLUlCLUmCLwUpQxUqNLyUrPUsOP{Uwk |Uy[/2}Uzm( ~U|]U~A82UEU O ~UOPUYjS |UCLUFw_UFUGwUOuUCLtUCLU{ = Utw Un\) 5UIr6UKk~UOPUCL:UC6];UJ~<Uf ?UBUZUOPUCLBU}I CUADUA\XEUZFUU{GUHRHUF LUHzMUC{NUVOU@˹PU@hQUHRUITUGx&UUGlVUExUOPUCLYU@ZUAUOPUCL]Ut ^U[UOPUCLaUOU$OPU&CLdU(DU*OPfU-^ U.CLhU0A:%iU1T'0U3OPkU4PE lU5c(mU6hnU7i= oU:awpU<\=q qU=S rU>Uz sU?LtUANQquUBEُUCOPUECLxUGEsZyUHJzUIGUKOPUMCL}UOG~UQGԧURGUSEuUTOP~UWCLUYCU[NR~ U\EfU]I)U^LvfUCL U@QUCLUOP UY@UCLUCLUG&"UCLUOPUq9 U_x UCLUCLUCLUI UfURU]LUz UPUTzUh!UD"U@#Ud$UJ%UK>&UM#'ULh(UDUCL*UF(+U]UCL-UBUZUOPUCL0U}; 1UM2UHqb3UI4UDrUOP6U]UCL8UD_UCL:UD- U CL<U |j =U FbUOPUCL@UOAUHBUC>UCLUCLEU~24 HUGa@IUnk JUJKU TsLU![ U$k U%l8 U&EU'JnUPFUQkQ URi UTKFUUEUWxdUX@ U[OW@U]IrU^KAUar UcLUfEVUgRUiwUjKUlLUoo^ UpKFUrk UtCLUwEPUzDF-U|OPU~CLUCLUCLUCLUCLUCLUCLUNgULUPgU_U_ > U_ > UCLUCLUCLUCLUCLUCLUCLU]UCLUCLUCLUN"~UCLUCUCLUCLU~OI UCLUCLUCLUOP$UJE%UIu&UQrUCL*UHX,UZ[ UOP.UP |UCLUCLUOPUCL3Uo6/4UA6UA7Ukٙ8Ul9UnJ:U e4;U!o<U!iyU"OP>U#T4?U$G@U%FAU&UI,U'OPDU(D{_EU)FFU*EGU+OU/@)U0DU14U2^! U6b U7? U8l8 U9k=" U:r U;q^ !U>CL U@CLUACLUC^; UFCLUHt/ UIEUJG;UKrn UMEVUOpUQCLURCLUSCLU|CLU}CLUEUUHUI8Uq9 UIn Uq^ Ur UM UsS3UD2U{ UAiUeUx`Uu' UCDUE@UKPUlo UtDD UapU^yU^UCLUCLUCLUCLUCLUOPUOPUOPUCLUI<UHUI)UH>UffUff}eUMB}fUBWM=t( N=C.O=DP=D5Q=ShR=PrS=@=T=G@KV=jU X=CEY=E[=\=Tϥ^=.e_=/z `=1C}-a=2zb=3xc=5v=7CL=8CL=9CLg=CL=?CL=ACL=BCLm=EFn=H}o=Ib =KCL=LCL=NCL=OCL=PCL=QCL=RCLw=Utfgx=VMuy=WP8R=YOP{=\k |=^\}=_lw~=a]=dB8=fEN=|` ~=OP=\ 4 |=CL=FU=F=Gw=M_u=CLt=CL=zq =tT =n% 5=IW6=K9r=OP=CL:=CL!;=H<=a=?=B3:=OP=CLB=} C=@; D=ATE=I{F=UpG=EH=F L=I34 M=P N=D O=@9P=@h/Q=HR=IT=GYOU=G̈V=E=OP=CLY=@uZ=Al=OP= CL]= t ^= [e=OP=CLa=O(=OP=CLd=DY=OPf=^ =CLh=A:%i= Rf="OPk=#P# l=$\m=&^zn='j: o=*ap=,\# q=-U8R r=.V s=/Lt=XN^9u=YE]=ZOP=\CLx=^Ezy=_R|z=aG=cOP=eCL}=gGu~=iG=jGK=kEb=lOP~=nCL=pD=sM =tC=uEL=vH`=xCL =z^ =}CL=OP =X=CL=CL=GJ=CL=OP=q+ =_ =CL=CL=CL=HK =R =|=Ay=yx =x =A =F !=t "=QL#=F$=J%=KT&=N'=L(=De=CL*=E+=Y=CL-=Brd=OP=CL0=} 1=J2=H]c3=I4=DaC=OP6=]=CL8=D=CL:=D%=CL<= |` ==!F=#OP=%CL@=(OA=)H|JB=+C=-CL=.CLE=0~@ H=1AI=2\s J=3I;!K=5mvL=6[K =8l5h =:l =;E=kh =?j' =@KU=AE=Cxd=D@ =HOW@=JIR=KL=Nr =PL=SEV=TLv=Vw=WK+=XLk=[o^ =K82=kP=CL=E=E=OP=CL=CL=CL=CL=CL=CL=CL=Q=KL=Ng=_=G =_ > =CL=CL=CL=CL=CL=CL=CL=]=CL=CL=CL=N=CL=C=CL=CL=} =CL=CL=CL=OP$=J3%=Io&=L=CL*=HRw,=Z9O=OP.=PtX=CL=CL=OP=CL3=oH4=A6=a7=F8=d349= nz:= e;= k<=ks4=OP>=S˲?=F@=FA=U=OPD=DiE=F@F=EG=OF=D=H=C=^p ="^0=#? =Mm =Nkh =Or =Pq3 !=SCL =TCL=UCL=W] =[CL=]t!N =^E=_BM=`rN =bE=cqv$=eCL=gCL=hCL=iCL=jCL=mEѡ=nHJM=oP=sqHF =vJU =xrs =ysU: =zLlR =}pc3=D={ =Az=hG=x`=u' =CSc=E]=JBU=lo =o] =`3=^y=^=CL=CL=CL=CL=CL=OP=OP=OP=CL=I=I=I=HL=l=l}e=bV}f=Bz@M=t N=CtO=DDP= D2Q=#SkR=$Py:S=%p- T='GV V=(j X=)CEY=+E[=,EM\=-P^=0f<_=2z `=4Da=5yb=6x>c=7u\=9CL=:CL=KU=@E=Bx=C@ =nOe!=pIM=qL=tr =vL=yEV=zS=|w`X=}K=~L=o^ =K82=jp=CL=E=DF-=OP=CL=CL=CL=CL=CL=CL=CL=R)=K =Pg=_=G =_ > =CL=CL=CL=CL=CL=CL=CL=]=CL=CL=CL=N=CL=C=CL=CL=} =CL=CL=CL=OP$=J%%=Ij&=IG=CL*=HS_,=Z:=OP.=P=CL=CL=OP=CL3=o>4=A6=fL7=Ts38=b9= m:= [9;= f3<=4a=5OP>=6S^?=7F_@=8F WA=9T=:OPD=;D- E=N=B@c3=CE=D@Ff=E^5 =H_{)=J =Kmv =Lkw =Mr =Nqt !=QCL =RCL=TCL=V_ [ =YCL=[tM =\A$Z=]D4K=^rn =`n=bqbD=dCL=eCL=fCL=gCL=hCL=kE=mG^=nHq=qes =I =r@3 =sF =N} =r=Dd={ =@Ȝ=jF=x`=u65 =CSc=El=L =la7 =rUU =`l=^y=^=CL=CL=CL=CL=CL=OP=OP=OP=CL=H=I=I=HP=h = h }e=`[#}f=BqM= tTg N= CO= D P= !D!nQ= $Sd1R= %P/S= 'of T= (GV= )k= X= *CEY= ,E[= -\= .XG^= 2f _= 3zV `= 5Ba= 6yb= 7xc= `u\= bCL= dCL= eCLg= hj9 = jCL= kCL= lCL= mCLm= qFn= t}\o= uc@ = wCL= xCL= yCL= zCL= |CL= }CL= ~CLw= }x= L34y= O= OP{= l |= [M}= k~= ]= BE= E"= } ~= OP= Y>k |= CL= F= G= Gپ= FZu= CLt= CL= {k = t/ = nu 5= Ib6= JR= OP= CL:= C=;= E? <= \?= B/= OP= CLB= ~ C= }ךD= A5E= MF= VG= S >H= Fz L= G M= H N= D O= A1nP= @Q= HRR= I_T= G*%U= G.V= Ei4= OP= CLY= @JeZ= Al= )OP= +CL]= -up ^= /Z= 0OP= 2CLa= 5Ot= 6OP= 8CLd= :D= ^ = ?CLh= AA:%i= BPTC= DOPk= FO l= GXzm= H[33n= Ih o= Lap= N^\) q= OV r= PX s= QLt= RNlu= SE = TOP= WCLx= YEdy= ZLz= [GJ= ]OP= _CL}= aGgR~= cGs= G= E֨= OP~= CL= D= MX = @= }= C= CL = K = CL= OP = Y}5= CL= CL= G= CL= OP= qes = _x = CL= CL= CL= G = OY= }= @g= x = R\= Vff= i!= D@"= \ff#= A$= J|J%= J&= N[|'= L#(= E= CL*= EW+= Y+= CL-= B= OP= CL0= ~@ 1= H 2= HB3= Ir4= D:= OP6= ]= CL8= CB= CL:= D= CL<= | == F~= OP= CL@= #OA= $HzyB= %Cu}= 'CL= )CLE= +} H= TFNI= Ul' J= VFK= WV L= X[; = [ll = \mYk = ]F!O= ^JZ= `Fݱ= ak = bju = cKU= dE= fxd= g@N= jO= lIj= mKA= pr = sKA= vEV= wOP/= yv= zK)= {L{= ~o^ = K)= lq= CL= ES= E= OP= CL= CL= CL= CL= CL= CL= CL= Q0= Fvg= Ng= _= _ > = _ > = CL= CL= CL= CL= CL= CL= CL= ]= CL= CL= CL= N9= CL= C$= CL= CL= } = CL= CL= CL= OP$= Ji%= Ifi&= Ik= CL*= HQ,= [= OP.= P= CL= CL= OP= !CL3= $oQ4= &A6= (lg7= )^8= *g339= -m:= /c;= 0j&f<= 1l33= 2OP>= 3S6?= 4F@= 5F-A= 6UL = 7OPD= 8D*#E= 9FMF= :E0G= ;O= >@P= @D3= A= B^ w = Ea@y= F@= Gm4 = Hk) = Irk = Kqes != NCL = OCL= PCL= R_i = UCL= Wtj. = {H = HO = sc = 4= q,= CL= CL= CL= CL= CL= E= H= J/= qt = I] = rk = t = O = r33= DoH= {= = U= lBO= x`= uD = CZ= EsZ= Lpl= la7 = u = `f= ^|= ^= CL= CL= CL= CL= CL= OP= OP= OP= CL= H = Is= I= HRw= j= j}e= AE}f= BYM= tTg N= CO= D9P= D?,Q= ISXR= JPS= Ko T= LGV= Mkr X= OCFY= QEW[= Rq%\= SP^= Vd}_= WzV `= YB$a= [{=qb= \y*c= ]v= _CL= `CL= aCLg= dk" = gCL= hCL= iCL= jCLm= mF%zn= p~o= qc = sCL= uCL= vCL= wCL= xCL= yCL= zCLw= }zfgx= Mffy= O#= OP{= m"# |= \*}= l~= ]= B?I= EE^= } ~= OP= Z/ |= CL= F= G#== Gw= Jvu= CLt= CL= { = t = oV 5= I&6= J= OP= CL:= C=;= C.<= [?= B!= OP= CLB= ~24 C= {D=A-E=OF=TG=AffH=E_ L=F34M={ N=XpO= AJP=!@Q="HR=#I_,T=$GJU=%GvUV=&EM='OP=)CLY=+@AZ=,A=.OP=0CL]=2u ^=4Y=5OP=7CLa=:NQ=;OP==CLd=?D=AOPf=C^ =ECLh=GA:%i=HOk=JOPk=KOjH l=tam=ug\)n=vi# o=yabTp={\ q=|U r=}W# s=~LGt=NrPu=E=OP=CLx=EV[y=Jz=Gn=OP=CL}=GQ~=GXr=Gg=E5=OP~=CL=DG=Mv =}2=y =Dfg=CL = =CL=OP =Z=CL=CL=G=CL=OP=q3 =_ =CL=CL=CL=GU =j=N`=M=w =NR=Up=i!=xL "=os4#=Tf$=Jqb%=J6&=NQq'=L0(=E,O=CL*=EZ+=a d=CL-=B=OP=CL0= ~@ 1= PB2= H*~3=Ib4=D=OP6=]=C>=ACL:=CD=FCL<=H}: ==IF=KOP=MCL@=POA=RHzyB=SCq$=UCL=VCLE=X} H=YGI=Znz1 J=\FoK=]VL=^[; =al =bmv =cFL=dJZ=eF/=fk =hj =iKc=jE=lxd=m@ =pO=rIy^=sK?=vr =K:[=EV=La=v=K?=L!=o^ =K)=jp=CL=E=E=OP=CL=CL=CL=CL=CL=CL=CL=XFg=N`=_\=Ip=J=L34=CL=CL=CL=CL=CL=CL=CL=]=CL=CL=CL=N=CL=C =CL= CL= ~; = CL=CL=CL=OP$=J %=Ib&=P =CL*=HIe,=\h=OP.=P=!CL="CL=%OP='CL3=)oUs4=+A6=.i7=/Z8=0f&g9=3lI:=5dl;=6ifg<=7e4=8OP>=9SNe?=:F@=;EIA=DxyE=?F5GF=hEw G=iN=l@Ff=mDp=n=p^? =sb$=t@=un0 =vk_ =wr]\ =xqV !={CL =}CL=~CL=] =CL=tj. =Bk!=Hs<=s)~ =m=q=CL=CL=CL=CL=CL=EF=HgR=L=qt =I =r =tx =KT =np=Da={/9 =}v=nU=x`=uD =Ca=El=L^=la7 =p =_f=[3=^=CL=CL=CL=CL=CL=OP=OP=OP=CL=Hض=I=I=H\p=h\)=h\)}e=V`}f= B5M=Gt+ N=IDO=JD8VP=KDWQ=OS\R=PPS=Qo T=RGʋV=Skr X=TD GY=VE[=X\=YV^=\e]_=]z `=_Aa=`zub=axc=cx=eCL=fCL=gCLg=jk =CL=CL=CL=CLm=FMIn=}4o=cӅ =CL=CL=CL=CL=CL=CL=CLw=zHx=L)y=R=OP{=m |=Z}=k~=]=A=E=~ ~=OP=Y |=CL=F0=G3=G=Pu=CLt=CL={Ţ =uE =nP 5=I36=J=OP=CL:=C6];=BO<= Yo?= B= OP=CLB=~] C=ydnD=A"@E=N=qF=]G=LH=E L=E=qM=AGN=\HO=AbP= @bQ=!HmR="I6T=#GU=$GfV=%E8=&OP=(CLY=*c Z=+Al=-OP=/CL]=1u ^=3X)=\OP=^CLa=aNH=bOP=dCLd=fDX=hOPf=j^ =kCLh=nA:%i=oND=qOPk=rOx l=sgm=tj\n=ug o=xa$p=zZ q={SR r=|U= s=}Lt=~Nt#u=EM=OP=CLx=EOy=Rz=Gn=OP=CL}=G;~=GI =GDc=Eѕ=OP~=CL=DB=L, =Ag=yY=A=CL =~' =CL=OP =Zm=CL=CL=Gx=CL=OP=q =`a =CL=CL=CL=Gb =r=Q9=N=w =NR=Tz=h!=~L "=c#=T&f$=Jfy%=J&=Nr'=L(=E:=CL*=$Ez+=%[=(CL-=*B=,OP=/CL0=1~s 1=2K_2=4H3=5IW4=6C=7OP6=9]=:CL8==_S@?=`F&@=aEA=bUT=cOPD=dDLE=eF4^F=fEx G=gN(=k~=lDI=m@P=n^/ =qb+P=r@9q=tnn =uk =vr@3 =wqHF !=zCL ={CL=|CL=~a>' =CL=uS[ =F=DB=r =<=q%8=CL=CL=CL=CL=CL=ET=H=J=q =J =r =t =Q =ny=DO={= ={h=pa@=x`=uS[ =CZ=E]=L=lR =qL =`=^33=^=CL=CL=CL=CL=CL=OP=OP=OP=CL=!H="I-=#I"=$H`=(h33=+h33}e=]s}f=BDM=Ft N=HDO=ID@.P=JDQNQ=MSXR=NP|S=Oouq T=QGʋV=Rk X=SDHY=}E[=~p\=RuU^=e'_=z `=AFa=wb=wuc=xL=CL=CL=CLg=k0 =CL=CL=CL=CLm=FIn=}go=c =CL=CL=CL=CL=CL=CL=CLw=sx=K y=M4=OP{=m |=[V}=l~=]=A=Ek=} ~=OP=ZTj |=CL=F=G9=Gʉ=I.u=CLt=CL={o =t =nw 5=I\6=J=OP=CL:=CD;=M<= X=?=B}=OP=CLB=~ C=wD=AE=EJGF=F]G=HIH=IEtN L=JDHM=KAGN=L\O=MA}P=N@Q=OHR=PIT=QFU=RGfV=SE=TOP=VCLY=X Z=YAe=[OP=]CL]=_v4 ^=aW=bOP=dCLa=gN=hOP=jCLd=lDV=nOPf=p^ =qCLh=tA2i=uM$q=wOPk=xOZo l=ycffm=zgGn={k o=~ap=[Q q=U r=X s=L*t=N{qu=E=OP=CLx=EOy=Pz=GgR=OP=CL}=G&"~=GB=G9=E=OP~=CL=D- =L: =F =C3=Hi=CL = O =CL=OP =Z =CL=CL=G̶=CL=OP= qes = ^ =CL=CL=CL=H =|f=uL=b=vw =NR=R\=g!=} "=n@#= Qs4$=!J^K%="J&=#Ns9'=$L(=&EG=(CL*=*EsZ+=+X=.CL-=0BM=2OP=4CL0=6~s 1=7JL2=9H&3=:IO4=;C%= %S? %Fi@ %E|A %U %OPD %DNE %F=sF %,E}xG %-N5 %0A, %1FY %3Aٚ %4^&  %7a. %8@0 %9n  %:k/  %;r1  %E  %?OP %ACLx %CEOy %DMz %EGX %GOP %ICL} %KGg~ %MGA %NG4 %OEp %POP~ %RCL %UD %WLa  %XD@ %YA %ZF %CL %7 %CL %OP %Z7 %CL %CL %G %CL %OP %qJ  %_x %CL %CL %CL %H  %s34 %{&f %eٚ %wIW  %} %lz %~R! %H" %}2# %Yٙ$ %JU5% %J& %NK ' %L*( %Ea %CL* %E]+ %^ %CL- %C %OP %CL0 %)b 1 %I2 %G3 %II?4 %Cu %OP6 %] %CL8 %C. %CL: %D %CL< %~ = %F %OP % CL@ % OA % HpxB %C %CL %CLE %} H %}I %k J %DWK %VyL %[΅  %m  % n  %!FR %#KF %LG %Ml8  %Nk_  %PK %SE %Uxd %V@  %YOW@ %[I g %\KA %_r  %bK" %eEV %fL %hw %CL %CL %OP %CL3 %o>4 %A6 %U7 %N&f8 %X9 %k(: %g; %k< % h  %!OP> %"S^? %#F@ %$E`A %%UE %&OPD %'DE %(FiF %)FpG %*O  %-Cf %/Hf %0C %1^f  %4]Y %5@' %6o  %7k/  %8rs  %:q9 ! %=CL %>CL %?CL %Ab   %DCL %Ftx  %H{in  %IC. %Jr  %L %Mq %OCL %xCL %yCL %{CL %|CL %Ec %G %I& %q  %I  %r  %u65  %SP  %rɚ %D2 %{  %z %t70 %x` %up  %Ci( %EsZ %L@ %lR  %qDD  %` %^y %^ %CL %CL %CL %CL %CL %OP %OP %OP %CL %H %G %I@ %G. %hG %hG}e %Lan2}f %BM %tTg N % DO % DRP % DQ %SER %PS %o; T %GV %ka X %DHY %@E[ %A\ %BT[^ %Ed ~_ %Fz ` %G@a %Jwb %Kuc %Lv %NCL %OCL %PCLg %SkR %UCL %WCL %XCL %YCLm %\En %_}4o %`d

EQ %?OP %ACLx %CEGy %lJߋz %mGQ %oOP %qCL} %sG~ %vG: %wG2@ %xEC %yOP~ %{CL %}C %L-  %GI %F3 %JI %CL %c %CL %OP %Z %CL %CL %G %CL %OP %qJ  %_(s %CL %CL %CL %If.  %P@ %fs3 %`s4 %w0  %NR %Vff %i! %B&f" %g33# %Zs3$ %JO% %J & %N@' %Lز( %Ed %CL* %EG+ %Z>! %CL- %C' %OP %CL0 % 1 %Hgp2 %G>3 %IB4 %C4 %OP6 %] %CL8 %G: %CL: %D %CL< %}~ = %FxC %OP % CL@ %4OA %6HdB %7Cq$ %9CL %:CLE %<| H %=IFI %>o J %?DWK %AV6L %B[  %Dm4  %FnB  %GET %HKF %IG %Jll  %Kk  %MK %N@D %Oxd %Q@ %TOW@ %VIg5 %WKA %Zr  %\K? %_EV %`R %bwK %cL %dL %go^  %hKF %kl7. %mCL %E\ %E %OP %CL %CL %CL %CL %CL %CL %CL %Ng %K %Pg %Ip %G %MH %CL %CL %CL %CL %CL %CL %CL %] %CL %CL %CL %N %CL %C %CL %CL %~; %CL %CL %CL %OP$ %I% %IS& %P %CL* % H(, % _ % OP. % QA % CL % CL % OP % CL3 % oV4 % A6 % V7 % OY8 % N9 % k(: % n; % p@< % q % OP> % S? % F @ % EeA % UD % OPD % !DE % "FQkF % #EWG % $O % (S, % )Y6g % *Q % +^  % .^ % /@BV % 1oXB  % 2kd  % 3rs  % 4q9 ! % 7CL % `CL % aCL % d_  % gCL % iu65  % j@. % kGu % lsc  % ni % opӓ % rCL % sCL % tCL % uCL % vCL % yE@ % zG % |Hmq % q^  % Ij  % sU:  % u  % KE  % r3 % D0 % {  % zF % v % x` % up  % C~ % E % L:: % lR  % t3  % `f % ^y % ^  % CL % CL % CL % CL % CL % OP % OP % OP % CL % H % Gx  % Ir % F^ % i  % i }e % nhKD}f %B}M % +t+ N % -DO % .CIP % /DmQ % 2S:NR % 3PS % 4o T % 6H V % 7k X % 8D$JY % :E[ % ;\ % n  % @n`*  % AF>K % BK) % CG&" % Dm  % El3  % GK % JE % Lz % M@  % POl % SI} % TL % Wr  % K % EV % Lv % wH` % L % L! % o^  % K  % lq % CL % EQ % E % OP % CL % CL % CL % CL % CL % CL % CL % Ng % G6g % Pg % Ip % I{ % L34 % CL % CL % CL % CL % CL % CL % CL % ] % CL % CL % CL % N % CL % Cn % CL % CL % ~ % CL % CL % CL % OP$ % I% % IQl& % L; % CL* % H1, % `k % OP. % Q % CL % CL % OP % CL3 % o>4 % A6 % [37 % P@8 % O 9 % lF: % pff; % rg< % q % OP> % S? % F@ % EA % Ux % OPD % DIE % F[gF % HEG % IO0q % MR % NY % OQs4 % P_]  % S_ % T@9q % Uo+  % Wk  % XqJ  % Yq+ ! % \CL % ]CL % ^CL % `a-  % cCL % ftY  % gE % hG % ir+  % kF$ % lp % nCL % pCL % qCL % rCL % sCL % vE6 % wHB$ % xP\ % {q^  % JL  % s  % uZ  % R+  % oٚ % DE % {  % y1 % wn % x` % up  % C % E % J % lR  % q7w  % `| % ^y % ^ % CL % CL % CL % CL % CL % OP % OP % OP % CL % Hv % G % Ixu % F % g=q % g=q}e % k@X}f % C)M %%t0 N %'CO %(D!P %)DQ %,S>R %-PS %.oK T %/HKV %1k+ X %2D?MY %4Ek[ %5q%\ %6S\r^ %9b_ %:z ` %<@a %>zGb %?yQc %@w8R %BCL %CCL %DCLg %Hknm %JCL %KCL %tCL %uCLm %xE״n %{~4o %}d{c %CL %CL %CL %CL %CL %CL %CLw %x %Ny %P %OP{ %n | %ZP} %k~ %] %@n %E9 %y{ ~ %OP %YjS | %CL %F[ %G %G %Fu %CLt %CL %}  %u:  %ov 5 %JU6 %J{ %OP %CL: %CB; %H< %V? %A %OP %CLB %~' C %DjD %@E %PffF %] G %QH %D L %F34M %@pN %Z\)O %AP %A(Q %HR %HӀT %FֻU %G]V %D %OP %CLY % O Z %AAh %OP %CL] % v %:SFy? %;Fd@ %OPD %?DeE %@FfLF %AEG %BO>' %FR %GX %HQs4 %I_  %Mb %N@9q %Op  %Pl3  %Qq  %Rq ! %UCL %WCL %XCL %Z^y  %]CL %_t  %`AW3 %aG %br  %dB\=  %fqJ! %hCL %iCL %jCL %kCL %CL %E6 %H} %Mk %q  %I  %s  %u  %L  %qI %DY %{/9  %y: %xr %xy %u  %C %Eѕ %K %lR  %u""  %` %^y %^  %CL %CL %CL %CL %CL %OP %OP %OP %CL %H %H= %Ixu %Gn %~f %~f}e %dY}f %C2M %t N %CIO %DP %DwQ %"SER %$PgS %%n T %&GxV %'lm X %(D6KY %*E[ %+K\ %-P^ %0ci_ %1z ` %2@fa %\yb %]xc %^w %aCL %bCL %cCLg %fkw %hCL %iCL %jCL %lCLm %oEn %r~Po %sd{c %uCL %vCL %wCL %xCL %zCL %{CL %|CLw %~Rx %N.y %U %OP{ %m | %[b} %n-~ %] %@˽ %Er %v ~ %OP %[>t | %CL %F %G %Gב %KRu %CLt %CL %})  %t  %o 5 %J 6 %J %OP %CL: %C; %G0G< %Vk? %A߻ %OP %CLB %~; C %Aq4D %@E %PffF %_G %C34H %D3 L %F{M %@N %Z\)O %AP %A= Q %HR %HT %FͫU %GWV %D %OP %$CLY %&~@ Z %'AO %)OP %+CL] %-vY ^ %/\G %0OP %2CLa %5PN %6OP %8CLd %:D %^  %?CLh %AAi %BT^k %DOPk %FO l %Gd(m %Hc\n %If3 o %L`up %N] q %OX( r %PZ s %QL t %RNfu %SE' %TOP %WCLx %YEGy %ZNzz %[G4 %]OP %_CL} %Fݱ~ %G, %G %Ew %OP~ %CL %CB %K  %G %Jg %Bi %CL %D% %CL %OP %Z[ %CL %CL %F %CL %OP %q  %^W %CL %CL %CL %I  %R3 %jf %f %w  %P %Tz %g! %t " %hff# %N&f$ %JSc% %J& %N' %L&( %Ey' %CL* %E + %Y %CL- %CZ %OP %CL0 %~; 1 %I2 %G3 %I$4 %C % OP6 % ] % CL8 %C~ %CL: %D %CL< %~] = %F %OP %CL@ %!O>A %"H9B %#C %%CL %&CLE %P|` H %RwI %Ui J %WIE K %XU]L %Y[  %\n}[  %]n  %^Fi %_K82 %`G4 %amYk  %bl8  %eK %f@D %gzJ %h@  %kO %mI %nKA %qr  %sK %vEV %wQ5 %ywDa %{M  %|LN %o^  %K  %mB %CL %Ec %E %OP %CL %CL %CL %CL %CL %CL %CL %Y#3 %G6g %Ng %I{ %H\) %L34 %CL %CL %CL %CL %CL %CL %CL %] %CL %CL %CL %N!  %CL %C %CL %CL %|` %CL %CL %CL %OP$ %I٢% %IO@& %I %CL* %HK6, %bG %OP. %Q4 %CL %CL %!OP %#CL3 %&o'4 %(A6 %+dFg7 %,M8 %-Pٚ9 %/lWh: %1s; %2lٚ< %3s@ %4OP> %5S? %6Fd@ %7EA %8U %9OPD %:DNE %;FoaF % %x` %u  %Cμ %E %L^\ %lD  %tȉ  %` %^y %^  %CL %CL %CL %CL %CL %OP %OP %OP %CL %H %H %IzF %G %g %g}e %W²}f %CM %Dt N %FD"O %GC(P %HDZQ %KSAR %LPS %Mn$ T %OHV %Pk+ X %QD6KY %SE[ %TT\ %UTn^ %XcnE_ %Z{ ` %[@"a %]y\b %^wc %_v %aCL %bCL %dCLg %gkh+ %iCL %jCL %kCL %lCLm %oEjRn %s}4o %tdfg %vCL %wCL %xCL %yCL %zCL %{CL %}CLw %tx %Muy %Rq %OP{ %m | %[ } %m~ %] %@  %Es %{a ~ %OP %Y | %CL %F %G’ %G %Q'u %CLt %CL %})  %uK  %o^6 5 %I6 %Jd %OP %CL: %D; %E< %V? %Au %OP %CLB % ~ C %@RD %@ئE %KF %] G %\HH %Dh L %F34M %@\N %Z=qO %B P %ACQ %HR %HYT % F;U %!G=0V %"DԒ %#OP %%CLY %'~ Z %(AO %*OP %,CL] %.vm ACL DEQ GE IOP KCL LCL MCL NCL OCL PCL QCL UQɚ VG6g WX XL YGff ZL{ \CL ]CL ^CL _CL aCL bCL cCL d] eCL fCL gCL N* CL D CL CL }  CL CL CL OP$ I-% IN& P8 CL* HW, dn OP. Qh CL CL OP CL3 o8Q4 A6 c7 T8 K49 l@: lf; o,< nf OP> S? F@ EA U OPD DvKE FuF EmG OMN QC3 Vf Ovf `i  b mET nK" olD  su]  t` u^y v^  wCL xCL zCL {CL |CL OP OP OP CL H HS I G g g}e @s}f %CM t0 N D EO CP D4Q SAR PgS nT T H V lm X DHOY E[ F\ Rg^ c%_ { ` @sa yb w4c w4 CL CL CLg k  !CL "CL #CL $CLm 'EZ n *~Yo ,dfg  .CL /CL 0CL 1CL 2CL 3CL 5CLw 8zx 9Iqy :Q ;OP{ >m | @Zz} Al~ D] F@ HEx Kz ~ MOP Q[[ | SCL VF̈́ WGT XGS [Hu CLt CL ~V  v  o: 5 I6 JL OP CL: D; D-}< U? A OP CLB  C &D @܆E EzF VffG FH DB L E M @\N ZO B"P AMQ HzxR HT F;U G!V D OP CLY }h Z AO OP CL] vh. ^ \ OP CLa P| OP CLd DX OPf ^  CLh Ai R_ OPk O l d33m b=qn i3 o `p ] q V\ r  X s  Lt  Nu  E  OP CLx EOy R? z G OP CL} F~ Gb G# E OP~ !CL #D NJR  O|4 P@ Qg SCL  UD XCL [OP  \Z ^CL _CL aF!O dCL gOP jq^  k^r  nCL oCL pCL sI  tXf ui vd wx )  xP yVff zh! {~f " |i# }Qf$ JQ% JK& M#' L( E CL* D+ Z CL- C~ OP CL0 ~Ü 1 J2 G3 I 4 C OP6 ] CL8 CSc CL: D CL< ~l^ = F OP CL@ O[A H\zB Ca CL CLE { H II a J gLK IvL [v  n  B  F[G KF GC m4  m  K @D xd @   Lv "Ic #K1C &r  (K +EV ,Lv .v /M  0Lk 3o^  4JZ 7lq 9CL  S50? F@ ExA U/ OPD D|E Fy^F E G O: R X Q  a  a @T! p3  lD  q^  q ! CL  CL CL ^   CL  t  F: C~ r+   q( CL CL @CL ACL BCL EE~v FGM HM< Kqˈ  NIff  Ps  Qu  RKT  Uof XDh \{LS  ^xuf _}D bxy cu  dC eET fK) hlD  kp  la< m^y n^  oCL pCL rCL sCL tCL wOP xOP zOP CL H Hx Ir G g\ g\}e `}f D<M t N DkO CyP DQ S2R PFS n T GxV ka X DZQY E[ ܰ8\ S^  d_  { `  Ѐ a  wb xc w CL CL CLg k  CL CL CL CLm E;Tn #}go $dQk  &CL 'CL (CL )CL *CL +CL -CLw 0xRx 1My 2TL 3OP{ 6mwx | 8Y} :o~~ <] >@ @Ee CvI ~ mOP q[ | sCL vFߨ wG xH  |IXiu ~CLt CL   vS  p 5 Ied6 J4 OP CL: C; B< U? A OP CLB  C }h D @E OQF dG SH D%( L E M @pN ZO B8PP AbQ HR HT FU GV D OP CLY }~ Z A2 OP CL] vR ^ \u OP CLa Pe3 OP CLd D OPf ^  CLh Ai Q5r OPk P l dffm fn g=q o `Dp ]Q q W r X8R s LŎt Nu E OP CLx  EOy  R;z 4G 6OP 8CL} :F~ EK ?OP~ ACL CD% FJ  G{ H@4 I~ KCL  MEG PCL SOP  TZX VCL WCL YF \CL _OP bqˈ  c^  fCL gCL hCL kHt  l\ٙ msY nj ox  x  A  F{ ! @" oL# X$ JO% J& M' L( E CL* D+ ] CL- C~ OP CL0 ~ 1 M2 G3 H4 Cw OP6 ] CL8 C6] CL: D CL< ~] = F? OP CL@ OA H:B CXx CL CLE {a H DWI \s J YOK S L [;  B  B  F KF GQ me  mYk  K @D xd @  OPP ID K:[ r  K  #EV $QCK &v 'M  (Lk +o^  -JZ /n 1CL 4Eg 7E aOP cCL dCL eCL fCL gCL iCL jCL mNg nG6g oPg pI{ qG rL tCL uCL wCL xCL yCL zCL {CL |] }CL ~CL CL N!  CL Dz CL CL ~24  CL CL CL OP$ I% IN& J&G CL* Hpc, f OP. Q CL CL OP CL3 oXK4 A6 Zf7 Jf8 I9 l&: v; oٙ< ws3 OP> T ? F@ ExA U OPD DRE F}F EG ON T Z4 Sp `  ] v @K; p3  la7  q  pX ! CL  CL CL (`P  +CL -t4  .CSc /E 0s)~  2 4p 6CL 7CL 8CL 9CL :CL =Ez ?G= @L0 Cq  FH  Hs  ItY  JPE  Mnf QD T{=  Vw# W@ Zxy [u6  \C ]ET _K" `lD  cp  al ^y ^ CL CL CL CL CL OP OP OP CL H H I G h h}e 2^m}f DyeM t( N DO CP D/Q SER PS n}[ T HV k֤ X DlTY E[ \ T-^ e_ {9 `  a xzb xLc x> CL CL CLg kû  CL CL CL CLm E2Jn ~34o dx  CL CL CL !CL "CL $CL %CLw (oRx )M8Ry *R{ +OP{ Vm | Y\} Zkf~ \] ^@|1 `Eo8 c{ ~ fOP i[ | kCL nF oG pG tOu vCLt wCL yb  zu?}  |oa 5 ~IB6 J3 OP CL: C; B7< T2? A OP CLB 7 C {D @E CQF ^\G NzH D I L F{M zfg N W\)O BNP AUQ HoR HT FU F6V DI OP CLY }R Z A:% OP CL] v ^ [ OP CLa P9 OP CLd DV OPf ^  CLh Ai P D OPk P l f33m g n j o `zp ]p q Vf r !Yk s "Lt #N\u $E  %OP 'CLx )EOy +Op^z ,G .OP 0CL} 2Fy~ 4G  5G% 6E 7OP~ 9CL ;DG >JD  ?Dg @Bg ADp CCL  EE HCL KOP  LZ NCL OCL QF  TCL WOP qˈ  `s7  CL CL CL H  O hff l x6  NR Vff i! ~ " k@# P$ JK5% Ju& Mi' L~z( E CL* D+ \3 CL- Cp OP CL0 ~' 1 J2 G3 H4 CY1 OP6 ] CL8 C  CL: CB CL< ~z = Fy OP CL@ OA HGB CO CL CLE { H BowI gP J T,K VmL [J  B  B  FxC KF GQ n%  m  K @D z$ @{ Ol I K= r  K < EV Lv v M  HL Ko^  MJZ Om QCL TEG WE YOP [CL \CL ]CL ^CL _CL aCL bCL eNg fK gYg hIQ iG jNR lCL mCL oCL pCL qCL rCL sCL t] uCL vCL xCL yN* {CL ~C  CL CL ~@  CL CL CL OP$ I1% IO@& H6 CL* H, f] OP. Q CL CL OP CL3 o]D4 A6 Xf7 H8 Fl9 l9x: mf; mfg< oS3 OP> Sx? FM@ EA U OPD ETE FF EG OyR Uvg \S3 Ts3 a  \ @9q pA  la7  q3  pX ! CL  CL CL  ^  #CL %tx  &}T  'E (sU:  *#} +p .CL /CL 0CL 1CL 2CL 5Ew; 6Hw 8Hz ;q  >IU  @sc  At  BK7<  Er#3 HD t{  vwi w@ zxy {u6  |CB }E L8 l5h  uf  a3 ^y ^ CL CL CL CL CL OP OP OP CL H H Ir H jz jz}e *]}f yDXM t N D O CP DQ SER PFS n T GV k X DYY E[ T\ R^ fX_ {9 `  a wb yc w CL CL CLg  k   CL  CL CL CLm E 8n >~lo ?c|  ACL BCL CCL DCL ECL FCL HCLw K{x LNy MO NOP{ Qm | SZݭ} UoZ~ W] Y@f [Ej ^z ~ `OP d\ 4 | fCL iG# jG kG8 oKu qCLt rCL t  uu  wp > 5 H6 J3 OP CL: C; N< S? A OP CLB 7 C zKD @hE HF VG I34H C L F{M zfg N W=qO BeRP AzQ HR HT FU F=V D OP CLY |ƚ Z AAh OP CL] v ^ [ OP CLa Oڶ OP CLd DS OPf  ^   CLh  AKi O# OPk P(n l cm e=qn gB o `p \u q V r Xz s LCt Nu E  OP "CLx $E]y %LZ0z 'G )OP +CL} -F:~ /G k 0G1X 1EK 2OP~ 4CL 6D 9IP  :C ;}, CL  hE kCL nOP  oZ qCL rCL tF( wCL zOP }r#  ~bI  CL CL CL H  ] j3 ` x?I  P Vff j\! wff " \ٙ# If$ JE% Jfy& M' Lu]( E} CL* D|+ Y CL- C OP CL0 ~' 1 I2 G3 H4 C/ OP6 ] CL8 B CL: D CL< ~Ü = Fy OP CL@ O;A H B CKh CL CLE {Z H @ I l J OkK VUL [g  B  B  F KU G` n`*  m4  K 0@D 1z+ 2@ 5O;~ 7IC 8K= ;r  =Kj AEV BQ' DwU( EM  FL Io^  JJZ LmU NCL QE TE VOP XCL ZCL [CL \CL ]CL ^CL _CL bXP cKVf dYg fIQ gI hK jCL kCL CL CL CL CL CL ] CL CL CL N!  CL C CL CL   CL CL CL OP$ IŦ% IO@& Q. CL* H", fs OP. QЎ CL CL OP CL3 oXK4 A6 R7 C38 K`9 l5: ng; m4< pg OP> SC? F@ ExA U,d OPD DɲE FCF EG O;  V#4  \@  T|  a  _ @9q pPL  lo  q  p ! CL  CL CL a   CL "tz  #}  %Fi &sF  'B N  )p +CL ,CL -CL /CL 0CL 3Es \H6[ ]NJ `qˈ  cIU  esc  gtx  hRA  kq nD q{  swb+ tAI wxy yu  zCB {E |J }lD  t  ` ^y ^  CL CL CL CL CL OP OP OP CL H H  I H: L L}e 'Y`}f tDM t N DO CP DQ SAR PS sF T GV k X DcY E[ q%\ R"^ d_ {9 `  a xǯb wHc v $CL %CL &CLg )k  +CL -CL .CL /CLm 2E 8n 5}go 6d't  8CL :CL ;CL CL ?CLw BvQx CJy EQR FOP{ Im | K[-} Ln~ N] P@_C SEh V}: ~ XOP [Y{ | ]CL GH G H G2u CLt CL   vH  pF 5 Ht6 J OP CL: Cu; MG5< So? A OP CLB U C y&5D @HE NRF X{G JH C_ L A >M k N GO B|P AJQ Hv!R HezT F"U FV Dt OP CLY | Z A+ OP CL] v ^ ZUM OP CLa O OP CLd DnQ OPf  ^   CLh  @i  N OPk Oz l em gQn gf o `up ` q YQ r Z=q s Lt Nu E OP !CLx #Edy $Oz &G POP RCL} TF~ VG WGG XE7 YOP~ [CL ]D-  `I  ayg bnf ct3 eCL  gE jCL mOP  nZ pCL qCL sF vCL yOP |q  }b8H  CL CL CL HK  ]g g b x  NR Up i! Aٚ" g# M$ J@M% JW& M' Lq( Ey CL* DnQ+ a3 CL- C4 OP CL0  1 HV2 Go3 H4 B OP6 ] CL8 BE CL: D CL< ~; = Fݱ OP CL@ OwA H% B CY1 CL CLE {/9 H |-SI n J  L<K !VIL "[Y@  %B  &B  'F (KU )G` *n}[  +n  -K /@D 0zJ 1@ 4O4 6H 7KCu :r   S? FM@ EA U OPD DE F[F EG  OC  Vp  Zə S b  a @BV pPL  l  q  pX ! DCL  ECL FCL H^a  KCL Mt  NF5 PFq Qs  S_ Tpb VCL WCL XCL ZCL [CL ^Elb _H]X `K< cqˈ  fI.  hs)~  jt[  kK  nns3 qD̎ t{  vv wA} zx |u6  }D ~E K lD  s  a ^ ^  CL CL CL CL CL OP OP OP CL H^ H6 I[ HS_ i( i(}e STk}f DM t N D?O C"P DrQ SER PgS  T HV l X D\Y EM[  K\ !R^ $bX_ %{r ` 'Aa (wHb *v34c +u  -CL .CL /CLg 2k*  4CL 5CL 7CL 8CLm ;F5n >~Lo ?dQk  ACL BCL DCL ECL FCL GCLCLwq(xMGyQ> OP{ nUU |[*1}nC8~]@˽EZ}h ~OP[>t | CL$GQ%GK&H )Lu+CLt,CL/@ 0up 1p 53I64J6OP7CL:9C;;KF<eT)?fANgOPiCLBkr CmwDp@hErHzFsU{GtIHuC LvHMwz( NxSHOyBPzAQ{HnR|HVT}FiU~FVDPOPCLY{a ZAOPCL]v ^Y4OPCLaNOPCLdDgOPf^ CLh@iLROPkO lgffminh o`yFp\ qV rX sLCtN;uEOPCLxEsZyS zG )OPCL}F?~G"GUEjOP~CLDGIh m hffbCL F7 CLOP ZbCL,CL.E1CL4OP7q 8b ;CLSf?F@FAU\OPDDEFFE-GOYU[3SٚbV b8@BVp^ l qt p !CL CLCLb6 CLtY B5Fqs @B pCLCLCLCLCLElbH|.Kqˈ I"" r  tM !S$ $r'D*{ ,v--Ae1x2u 3D4ET6Ky9l5h  @_ > BCLCCLDCLFCLGCLHCLICLJ]KCLLCLMCLON&QCLSCUCLVCLXC[CL\CL]CL`OP$aI%bIO@&dKgCL*jHM,kflOP.mRoCLpCLrOPtCL3woa4yA6L7CY8Ay9j:[ٙ;d<^OP>S?Fd@FAU'OPDD'EFCFEGO%TXQfc b@K;p^ l8 qV p- !CL CLCL_Z CLu ~# Cus tؘpyCLCLCLCLCL Eg H|. Oq H s tj. K p3D2!{ $u%BN(xy)u *D+E,J.lD 1p 2aC33^vf4^5CL6CL8CL9CL:CL=OP>OP@OPBCLmHnHoIpHpcs{t{}eT}fPDMt ND?OC PDQSERPǫS}~ TH)VleC XD\YES[*n\Sl^dpR_{* `DIavbuRcuCLCLCLgl# CLCLCLCLmGn}godV CLCLCLCLCLCLCLwsxJyOOP{n |[}n6Y~]B F_v4 ~OP4] |6CL9G_:Go;H  2CL 3CL 4CL 5CL 6CL 7CL 8CL 9] ;CL N! @CL CC ECL FCL HFT JCL KCL LCL OOP$ PIM% QIJ& TPi WCL* YH4, Zg^ [OP. \Q ^CL _CL bOP CL3 oj4 A6 O337 L 8 HL9 jK: \ ; c< ] OP> S^? Fi@ EA U OPD DE FiF EG O4 Pff Tg Mٙ c  bT" @K; p^  l8  qV  p- ! CL  CL CL b   CL u ~  ~@  C= srb  O; p CL CL CL CL CL Ea H= P.c qˈ  If  sU:  t  Q  pc3 DF {  ub BS x u  DG FR J˽ l5h  v3  !`ٚ "^y #^  %CL &CL 'CL (CL )CL UOP VOP WOP YCL \H ^H _I `He cj=q fj=q}e Dr}fBDM tF N DO C[P D2Q SAR PS pY T H\V l X D\Y E?[ c\ Sv^ d_ {* ` C+ja xb wW c uz CL CL CLg l4f  CL CL CL CLm G@n ~go dN  CL CL CL CL CL CL CLw qfgx Iy N OP{ n | Z} k~ ] B  Ee !qJ ~ #OP &^ | (CL +GV -H  .H 1KRu 3CLt 4CL 7@ 8uX  9o 5 ;IS<6 /_ > 1CL2CL3CL4CL5CL6CL7CL9]:CL;CLS?F@EٞAU "OPDDqEFLFE>GN|Rc4V3Ob bI@K;p^ l qHF pӖ !CL CLCL_ CLu DCUs B&pCLCLCLCLCLE\H0PEq IDD s tY K&  pFf DB{ tCv>x@u AD_BJ;CJāDl5h Gv H`3J^yK^ LCLMCLNCLOCLQCLTOPUOPVOPXCL\H]H^I,_HObfRefR}e~}f 7DMt0 NDbOCPD=QS6RPsSof TH6Vm, XD\YE|[o\R)^bX_{8 `Baxgbwcv#CLCLCLgk CLCLCLCLmFn}Fgoe#A CLCLCLCLCLCL CLw ~ x OpyNzOP{o33 |Z}k?~]AրDʰ } ~"OP%X[ |'CL+GF-,H+-G0Q?u2CLt3CL6@7t 8p 5:I`6;J'CL:hCp;iD<kR!?mAnOPpCLBr CsBZDt@sEvUQFw]RGxNHyC+ Lz` M{j\N|NR O}BEP~AQHiRH% TFuUFU$VDOPCLY{ Z@OPCL]u ^ZqKOPCLaN2`OPCLdD;OPf^ CLh@۶iUHOPkO-C lBm~naff o`Wnp\ qV rXff sLtNluEOPCLxEV[ySYzFݱOPCL}F[G~FG(EOP~CLC{H@% ylLBs4CL FyCLOP ZCL0CL2E5CL8OP;r@3 S!?Fs@EaAUoOPDDaEF3vFEGNR V3Ob1 b^V@K;pmy ll q9 pӖ !CL CLCLat CLt BEC sF 㒠potCLCLCLCLCLE|GFPnq IQ t t P &p9*Du-{ /t50Cb3x4u 5E7Y9J{ct >CLCLCLgl# CLCLCLCLmF;1n}vgoeb5 CLCLCLCLCLCLCLwwfgxO34yP >OP{ o | [ }ot~]A(E1)} ~OPYx |CL"G5#G$G PGSCuRCLtSCLU@Vu| Xp 5ZIg56[J\OP^CL:`Ca;aCIN<cQ?dAeOPgCLBi' CkA>Dn@wEpHFqV >Gr@HsC Ltc Mus34NwR{ OxBPyAQzHkR{HT|F[|U}F)V~COPCLY{ Z@uOPCL]u ^]rOPCLaOdeOPCLdDJOPf^ CLh@iSjOPkO lCQm@{n` o`1pZ qTff rV) sL+tNK uE OPCLxEV[yQ:zFsOPCL}Fi~F+FEOP~CLCH zv CL !F:$CL'OP (Zj*CL+CL._0CL1CL3rk 4a@ 7CL8CL9CLD3?F@w ALBSCg!EHL"FA3#Gfs3$HJ:%IJ&JM&'KKU(LENCL*PD_+Rl|CL-~CpiOPCL0~24 1Q2G_3HA4B^OP6]CL8BCL:CBCL<~Ü =FqOPCL@OOxAGBDXCLCLE| HDjI` JC,KQL[J B B F:KcGB B K@Dx@LvIK+r JEVLvvM Lo^ JlqCLEHE OP CL CLCLCLCLCLCLNgMpYgMHk(MHECLFCLGCLHCLICLKCLLCLM]NCLOCLPCLRN#TCLVCUXCLYCL[DZ^CL_CL`CLbOP$dIR%dIC&gQpNjCL*mG,ngaoOP.pQrCLsCLuOPwCL3zoze4|A6J7I8Bf9i:_g;d<afOP>SAn?F~@EAUOPDD-EF4^FEGN,X33\U<b b@]p| l q9 pӖ !CL CLCL`S CLu ACs BphZCLCLCLCLCLEMGOq I@ t/ u65 LN q!D]-${/9 &s(D+x,u -F/ao0J~]3l5h 7vww 8`39^y:^ ;CLV7C!8OP:CLY<| Z=@u?OPACL]Cu ^E`WqFOPHCLaKPLOPNCLdPD|ROPfT^ UCLhW@۶iXRZOPk\N l]C(m^@n_e ob_WpdZL qeSW rfV sgL<tN.uEOPCLxE]yN~ zFOPCL}F~FFEOP~CLCH WUfWCL F5CLOP Zy1CLCLX CLCLrk `s7 CLCLCLHW Evlkx NRVffj\!@Y"q3#KL$J%J&M'KI(E2CL* Dg+ e/  CL-CpiOPCL0} 1L2G3H/4B=OP6]CL8 C#CL:%CB(CL<*~ =+F?-OP/CL@ZOYA[GB]Jt_CL`CLEb}X Hd@Igi) JhB>_KiS:Lj[; mB nB oFpKcqGrB tB vKyE{x|@ O;~IK:[r J!EVLvvLLko^ Jnk8\CLEKR/OPCLCLCLCLCLCLCLNgK]gGHjpMHCLCLCLCLCLCLCL]CLCLCLN! CLCCLOPD!CL!CL#CL%OP$&I%'I@&*L4e-CL*/G,0go1OP.2R' 4CL5CL8OP:CL3=oy4?A6AQ37BJ,8CGS39Fhפ:H];Id<JdKOP>LR?MF@NEnAOUPPOPDQEERFI?FSEGTN.WWVgY\3ZU[bh ar@]p| l q+ p !CL CLCL^SI CLt @DusF Vq)zCLCLCLCLCLEcGvKEq If t>u uZ N rDE{ saDXxuZ H*gKl5h s3 `f^y^ CLCLCLCLCLOPOPOP CLHbHIrH*rr}ePAu}fEMZtb N\DGO^E3XP_DQbS6RcP]Sdo; TeH Vfl XgD^YjEwV[kq%\lO^oea_p{UU `q@astbuxcvw >xCLyCLzCLg}kw CLCLCLCLmEn~@oe#A CLCLCLCLCLCLCLwuRxLByQ\)OP{n |[*}oq~]A E${/9 ~OPY7 |CLFUG߉GTOohuCLtCLA#Tu pD 5Ig56IλOPCL:CL!;M<Q{?A OP"CLB$: C&za|D(@wE*ZF,_G-QzH.B= L/CM0k N1GffO2CoP3AkQ4HYR5GT6FCU7E_V8C܅9OP;CLY=|C Z>@gv@OPBCL]Dup ^F]-[GOPICLaLOyMOPOCLdyD{OPf}^ CLh@۶iP[2OPkNE lB\m@Qnd^ o`@p[ qU rU sLtN^uE%OPCLxEOyK\zG&"OPCL}F~F:F$EOP~CLCG՞ I FI)CL FmCLOP Z"WCLCLYCLCLrn ` CLCLCLH Es34j33x8J PVffj\!~ "w3#Jٙ$Ji%K*&N'L,(ECL* DnQ+ iCL-Ci(OPCL0}~ 1Jh2AG3BH/4CB%DOP6F]GCL8ICLCL:NDQCL<S~; =UF~WOPYCL@\O]A]GdB^D.}`CLaCLEc~# He|GIhm JiA3KjW Lk[g nB oB pFrKcsGtB uB wKx@Dyxdz@OlIaLr JPEVQ'vM/Lo^ Jnj*CLEb/K{OPCLCLCLCLCLCLCLR3GNgGHjQMHCLCLCLCLCLCL CL ] CL CL CLNCLDnCLCLy CL CL!CL$OP$%Ii%&I>&(I5+CL*.G,/g00OP.1R63CL4CL7OP8CL3;o4=A6@T7AIY8BF9lh:ngf;ons3<piqOP>rS?sF@tE AuV#vOPDwE\ExFg5FyE}GzN~X]gVb a}@wp l9 q+ p !CL CLCL`6 CLu Fv DVs M$rVCLCLCLCLCLEyH%!Qq I t[ u Q oٚD/{ sD5xuZ JttJHl5h q; a6f^ff^CLCLCLCLCLOPOPOP CL4HZ5H6IC8H/;g>g}eC}fF4MYt N[CoO\F6P]DFQ`S2RaP]SboK TdH)VeleC XfD^YhEn[iq%\jSD^neS_o{c `@au\*bukct(CLCLCLgl' CLCLCLCLmEn}odR CLCLCLCLCLCLCLwspxNyQOP{n |[W>}p- ~]@E>y ~OPW | CL F` G G( L^(u CLt CL B) u  pZ 5 Ied6 I| OP CL: CD; M_< QY? A OP CLB " C $wlD '@XE )SF *^\G +N H ,B. L -CM .k N /GHO 0C&fP 1B Q 3HZR 4HT 5FLU 6EGV 7C/ `OP bCLY d{ Z e@`2 gOP iCL] ku65 ^ mU~ nOP pCLa sL߮ tOP vCLd xDY zOPf |^  }CLh @ri S: OPk N̒ l Cm Bn b޸ o _p X q S) r Sk s Lt Mu E OP CLx E9[y S>9z GJ OP CL} Fs~ Fx F? EZ OP~ CL C~ G<  Pp N N CL  G CL OP  Z CL CL D| CL CL r+  aϯ  CL CL CL H}  EL t, k x:  L Tz h! N" |Y# O33$ (J% )L.P& *N,' ,L9>( -E /CL* 1D_+ 2\v 5CL- 7Ca 9OP ;CL0 =}~ 1 >Ib2 @Gb3 AHp4 BB COP6 E] FCL8 HC' KCL: MD PCL< R~' = SF? UOP WCL@ ZONA [GwB ]D  _CL `CLE b} H cFEI c$ J @aFK XVL Z  B  B  F? K GB B  B  K @D xd @ O IpJ L r  JP EV Lv wO Ld L o^  Jn i CL EU KD@ OP CL CL CL CL CL CL CL Ng Mf Yg GH j{ MH CL CL CL CL CL CL CL ] CL CL CL N(E CL D CL CL x  CL CL CL OP$ I% I mS? nF٢@ oEA pV qOPD rE*"E sF[F tEG uO=o x[ z` {XP |c/  aGH @w p  m  q  p ! CL  CL CL ^  CL tz  |oQ  D r  Q qC CL CL CL CL CL ES H} G1 v  C3  t4  v  Kce  sY D E rd Dd D=  }u%  M  DS| a  t  af ]f ^ CL CL CL CL !CL $OP %OP &OP (CL ,HS_ -Hx .I[ /HIe 1x 2x}e Ov}f GnM Qt( N SDmO TE]P UD٦Q S6R PS o T HTV l X DYY El[ K\ Q ^ `_ {UU ` @SRa w(b wc s CL CL CLg l  CL CL CL CLm EVn o d[  CL CL CL CL CL CL CLw xzx NLy Pff OP{ n | [ .} kd~ ^ @˽ E* }I ~ OP Y | CL F Gx G’ HUu CLt CL CŢ vm  q+ 5 Ia6 I OP CL: CD; K< QW? A~k OP CLB ' C tD @`E ISF J^pG KEH LB L MCM Nk > N OGO PC:P QBQ SHO R THT UFXU VF V WD2 XOP ZCLY \|} Z ]@C  _OP aCL] ctU ^ eOX fOP hCLa jJw lOP nCLd pE rOPf t^ uCLh w@ri xW¬ zOPk {N l |Affm ~@33n d o _<p Z = q T r U s LGt Mu E2 OP CLx E*y RHz Ge OP CL} G~ Fb Fr+ E` OP~ CL Ci( G  n wS3 l&f CL  G4 CL OP  Z7( CL CL MV$ CL CL r  ae CLCLCLH GI~ox xz A F !|34 "vf# P$!J6N%"L1&#Nqf'$LZ(%E'CL*)D_+*_-CL-/CZ1OP3CL05~ 16H28Gw39H 4:B%;OP6=]>CL8@CScCCL:EDHCL<J~ =KFuOPwCL@zOP1A|GB}EPCLCLE}X HA͹I\ J\KXLZ B B FKGB B K@DzJ@ OHLr JPEVKKwjM M o^ JeSCLEK(`OPCLCLCLCLCLCLCLXLlYgGHjGHCLCLCLCLCLCLCL^CLCLCLN*pCL D"W CL CLx CLCLFCL*IG,Jg) KOP.LR$'NCLOCLQOPSCL3Vo~4XA6[W7\Jff8]T`9_j)P:af;bqf<cldOP>eSo?fFV@gFAhVYiOPDjEEkFiFlFGmO{|q[Pr]sW3tcf wa@p< m q ph !CL CLCLaY CLtx { CDs qCLCLCLCLCLEH PkAFI u v S niD ^ rD9{@JeOBJ B Q3 lU `ٚZf^CLCLCLCLCLOPOPOP!CL$HM%ID&I['H^A+h.h}eL}f HMtsj NvCOw|p PxDQ{SR|PS~o TH Vl XD\YETL[\D ^__{c `@6atHbt{cqCLCLCLgk CLCLCLCLmEmn~ɚod{c CLCLCLCLCLCLCLwyQxLyQOP{n |Awk}Z~^@ E-} ~OPZTj |CLFTGGMuCLtCLE-v q- 5I`6I0OP2CL:4CZ;5I<7Q#$?8A9OP;CLB= C?A}DB@XED`FE_ffGFcHGB LHCMIj NKGOLCMPMB3QNHYROGԬTPFlUQFsVRDG&SOPUCLYW|` ZX@C ZOP\CL]^s ^`T[aOPcCLaeG'gOPiCLdkE OPf^CLh@riVOPkNv lDmC=qne o_pY qSW rT sLtM8uEޢOPCLxDyP$;zHOPCL}G&"~FN!FXEvOP~CLC'G r`qoCL GCLOP ZrCLCLXCLCLs ag  CL CL CLH G3plxh PVffk!Lf"I#Ng$Jgb%L&N}E'L|( E"CL*$Dg+%Z(CL-*CZ,OP.CL00~ 11P23G3\Hx4]B^OP6`]aCL8cCZfCL:hDkCL<m~l^ =nFqOPsCL@vO/AwGwBxDAYzCL{CLE}~ H~&If J{GKXLZƥ B B FݱKGB B K@DzJ@ OIrK=r JPEVRwkM Lo^ Jn]OPEzKOPCLCLCLCLCLCLCLNgG6gYffGHiRGHCLCLCLCL$CL%CL&CL'^(CL*CL+CL,N+.CL1D%3CL4CL5x:D 8CL9CL:CL=OP$>Ii%?I8&BMDCL*GG,Hg6IOP.JR4LCLMCLPOPRCL3ToJ4VA6YgY7Z\,8[U 9^jN:_O33;W`<U4OP>TJg?G@F$AW7OPDET.EFFF@GO^_yb@[c `@p m- q ph !CL CLCL]K CLt | B+sF E[ q =CLCLCLCLCLFHGCHw u v4 M+ rLC}; r͐Dלy@.PwC B' M f `Y)^ CLCLCLCLCLOPOPOPCL"HJM#I\$I&HkP{3Q{3}e\}fJ Mot0 NqCcOr~ PsDwQwSRxP~Syn TzGV{k X|DHOY~EM{[K\m ^^}_{c `@,cawfgbukcrǯCLCLCLgkû CLCLCLCLmESn~od{c CLCLCLCLCLCLCLwyxNyL#OP{n"# |r }Ge~^@ZEP1} ~OPY |CLFrG]GwOu CLt!CL$E\%uƨ &r 5(I`6)Iq2*OP,CL:.C;/G(<1Qh.?:Ag-;OP=CLB?c CAAxGNByE|CL}CLE}I HG&Il* J|KXeLZ B B FKGB B K@D{@ O^1I2K4r JPEVPstwY'M Lko^ JVn1OPFa^~OPCLCLCLCLCL CL CLNgLPYGHiGHCLCLCLCLCLCLCL ^!CL"CL#CL%N+&CL)D(+CL,CL.x 1CL2CL3CL5OP$6I %7I5&:K=CL*@G,Ag݀BOP.CRYzDCLECLOPCL3 oY4 A6[ 7K8P9h:O ;V<SٚOP>T'?G,O@F0AW5OPDE>nEF_FF,bG OG$d%i9&a3(dT +^0,@N-ph .mJ /pX 0ph !3CL 5CL6CL8[ ;CLet f| gBNhs jy,'lqjnCLoCLpCLqCLrCLvE wH[xHyB4{I }u ~u M1 sC} r0E>ypAW3QCYBN  d. ^V^CLCLCLCLCLOPOPOPCLHDHI[Ht{{}ejXX}f$JMt( NC3Oz PE Q,RR-P~S.n T/GʋV0kU X1D6KY4EI[5F\8d9 ^9^__:{c `;@"a=uǯb?tc@uBCLCCLDCLgGkq ICLJCLLCLMCLmPE?nS~yoTdR VCLWCLYCLZCL[CL\CL]CLw`s\xaKybL#dOP{gn |k }F~^@EgH|j ~OPZTj |CLFHGFOuCLtCLEYvm q/ 5I_6IcOPCL:C';F<Q?AROPCLBr C|5D@AEXpF^34GSHB0 LBMh NFOCn<PBC3QH>bRGTFUFK,VCvOPCLY|& Zr OP CL] tj. ^ _OPCLaNTOPCLdE*OPf^CLh @.i!QԮ#OPk$Nl l%EGm&En'c) o*`p,YQ q-S r.T s/LtYMJuZEf[OP]CLx_Dy`JzaIcOPeCL}gGJY~iF1)jFADkE~mOP~oCLqCsG tpfuqfgvos4xCL zG}CLOP Z CLCLA{CLCLr c CLCLCLH DI@pgx{ LTzj\!P"u#Ns3$J%M\&Nfq'L(E}CL*D+ZCL-Ci(OPCL0~24 1J2Gn3HM4BOP6]CL8BwCL:D- CL<~; =FOP CL@#NbA$G+KB%F 'CL(CLE*| H+CGI,oI J-z<[K/XL0Z}W 2B 4B 5Fݱ7K8G;B K?@D@{dA@ DOGIHWHK4Kr MJPPEVQLvSwhTTM ULkXo^ YJ[PxOPG^VTOPCLCLCLCLCLCLCLNgG6gNgGHj{GHCLCLCLCLCLCLCL^CLCLCLN9CLD(CLCLyN CLCLCLOP$I%I3&HZCL*G,gӅOP.R>CLCLOPCL3oF4A6eS37V8]39ge:Xl;Y<]OP>SƧ?G@M@ F;A Vt OPD EDE FFFF8,GOˑ^c]VfdK ^A@p mJ p ph !"CL #CLLCLO`b RCLTtz U|& VB"WsF YZq֩]CL^CL_CL`CLaCLdFeH-JgQ|:hBnjH lt mu nS qp9tCx|& zrT{ERP~yASDCOk d `3Vf^ CLCLCLCLCLOPOPOPCLHRwHMIrH}n =n =}eYIU}fJDMt NCUOy PDɲQRRPS n T!GV"lV X#DFY%EW7[&F\*d ^+]~N_,{q `-@a/vb0sc1w4CL5CL6CLg9kk ;CLCLmBE9nE~oFd[ HCLICLJCLKCLMCLNCLOCLwzxRx{Jy|O)}OP{n |kp }F~^@mE}~ ~OPZ D |CLFTH$RGnK/7uCLtCLDu qR 5I_ 6I}OPCL:C ;Ev<Q?AGOPCLB' CyD@AEcFXQGs34HA LBMh NG(OC~3PB>QH8RGTFUFnVC9OPCLY{w ZFv OPCL]t ^[BOPCLaOOP CLd DZOPf^CLh@iOOPk@N lAB(mBBRnCak oF_ׅpH[L qIU3 rJWp sKLtLMAuMEOOPQCLxSDyTSzUJ_CWOPYCL}[Gg~]F*^FC_E2`OP~bCLdCgH2 h{|izjq#3lCL nGoqCLtOP uZSwCLxCL{WCLCLqˈ bl CLCLCLH, C3Yoxr LTzh!KL"F#h@$J!%L&N'L=(E_CL*C+`CL-Ci(OPCL0~ 1IT2H$3I o4B=OP6]CL8BCL: D; CL<~ =FqOPCL@NQlAGpJBICLCLE} H ~NI#W J${*K%XeL&Z )B *B +Fݱ-K.GT1B 2B 5K6@D7{[8@ ;O=Inx>K8Ar CJPnEVoLLqwosM tLkwo^ xJzMI{OP|G%}P0~OPCLCLCLCLCLCLCLNgK9NgGHiGHCLCLCLCLCLCLCL^CLCLCLN8'CLD"WCLCLy CLCLCLOP$I%I3&MܪCL*G,gĊOP.R)CLCLOPCL3o[4A6efg7Y8W49g_:eY;jg<ds3OP>SL?GV@FGnAVFaOPDE*"EFFFK6GO _I d<4]`5d% 8^9@BV:pӖ ;mJ 

ph !ACL BCLCCLE[v HCLJt/ K|oQ MBENs PQrM)SCLTCLUCLWCLXCL[F\H ]O^A`ID bt!N du6 eM hnpkCynz[ rkEuy|ALUD>BEQm gD a,Xf^CLCLCLCLCLOPOPOPCLH_)HIHhh}ePS}fIM t7K N C=O y+ P DQ R[R PS n T GDV l X CEY E\[ 8\ d ^ !Zc_ "{q ` $ a &t4b 't8Rc (qG *CL +CL ,CLg /km  2CL 3CL 4CL 5CLm `E2Jn c~yo dc|  gCL hCL iCL jCL kCL lCL mCLw qqGx rK>y sM tOP{ wnDD | xk)z } yF~ {^ ~@|1 E~^ xP ~ OP Xq | CL F G G Pu CLt CL E1 v  qT 5 I]86 I OP CL: C ; C< QG? AF~ OP CLB : C xsGD @M$E iF \G Y >H AU L BRM hfg N FO CVP BOQ H+R GT FU FjV Ce OP CLY { Z   OP CL] u65 ^ Y OP CLa N# OP )CLd +D -OPf /^ 0CLh 2@Ri 3M9M 5OPk 6NR~ l 7@Hm 8Bn 9df o <_p >Z q @Wp r AX s BM t CMNu DE EOP GCLx IDy JQ z KJ MOP PCL} RG~ TF! UF/( VE WOP~ YCL [C ]HL  _og `mg ak\ cCL  G CL OP  Yș CL CL I/j CL CL qˈ  b  CL CL CL I  C3 ~3 p  xT  L S h! J" ~&f# ZL$ KV% M & Nv' L( Eka CL* C+ `Q CL- Ci( OP CL0 } 1 H2 H% 3 I$4 Bx OP6 ] CL8 Bn CL: DB CL< 7 = Fb OP CL@ NA G_ B HX CL CLE | H E4I dOR J wpK XsL [J  B  B  Fݱ !K "G %B  &B  (K )@D +{Ӧ T@  WO YH ZK<- ]r  _JP bEV cQI ewX[ fM  gLk ko^  lJā mJ oOP pI~ qMj rOP tCL uCL vCL xCL yCL zCL {CL ~Ng K| Yy GH iR GH CL CL CL CL CL CL CL ^ CL CL CL N8 CL D CL CL y  CL CL CL OP$ I% I0& P1 CL* G, g  OP. RTn CL CL OP CL3 o74 A6 i7 ]&f8 ]39 g: gl; n< c OP> T? G@ FT$A W^ OPD Ed!E FXF !FcG "O %]9 &aP 'Y4 )d  ,_ -@BV .p-  /mh  0pӖ  1ph ! 4CL  6CL 7CL 9[;  t4  ?|ƚ  @B) Bq  CF-  Er;l GCL HCL ICL JCL KCL OF PG QI` RAJ THU  VsF  Wua  M  r  D  x  ss E y| At@ V D5 B R  c  ^f T` ^ CL CL CL CL CL OP OP OP CL Hx H I H" } }}e C^}f JqM tE N BTO x P DuQ RR P1S n T GV l:z X CyIY Ej[ T\ dV ^ V_ { `  a v#b sc u CL CL CLg Hks  JCL KCL MCL NCLm QE4n T~Fgo Uc  WCL XCL ZCL [CL \CL ]CL ^CLw apx bM(y cM eOP{ hn | ikTa } jF~ l^ n@t pE t}: ~ vOP yW | {CL ~G K G' G I~u CLt CL E+ u  qP 5 IZ6 I OP CL: B ; B00< P? AJ OP CLB  C wD @5E fF `=qG Z=qH Aê L B M hfg N FO CP BmOQ H2R G} T G@U F"V C>X OP CLY {= Z  O  OP CL] up ^Y OPCLaN}OPCLdDYOPf^ CLh#@i$Xr&OPk'N l(@m)B33n*aJ= o-`p/Wf q0Q r1S=q s2M t4Mu5E6OP8CLx:Ey;NGzOP@CL}BG&"~DFEF;FEHOP~JCLtCBvH wp3xsyp3{CL }GJCLOP YCLCLA:CLCLq a CLCLCLIH Df@Pp3x LR\g!G"@33#U34$K<-%M5&N'L(EMCL*C+\9NCL-CpiOPCL0}; 1Q2H;3I;4BZpOP6]CL8BrdCL:D_CL<)b =FbOPCL@NBAG=sBNCLCLE}: HB,Ijy Jv&K XKL Z B B F/KG>B ?B AKB@DC{JE@ HOJIKKANr PJPSEVTPUVwU(WM XL[o^ ]J^H9`OPaI~bMcOPeCLfCLgCLhCLjCLkCLlCLoPgpG6gqY3rGHsi tGHvCLCLCLCLCLCLCL^CLCLCLNBCCLD{CLCLy{ CLCLCLOP$IU%I/j&MiCL*G,g-UOP.RCLCLOPCL3oDe4A6c`7[l8Z9h:e@;i<e@ OP> Tt? G@ F`A VaOPDECEGFFtGOYp]gVIdZ _j@9qp  mYk !pӖ "p< !%CL &CL(CL*_LK -CL/tz 0}u% 1B?2qt 3@: 6r$8CL9CL:CL;CLc2r4CL5CL6CLg9kH ;CL F\ !D@"@l#Y@$KT%M&N'Lw(E3CL*Cμ+XCL-CpiOPCL0} 1K2HY3I[g4BQOP6]CL8BcCL:DnQCL<U =FbOPCL@NAGwBDCLCLE~ HAInz1 JvKX"L$Z 'B (B )F/+K,G̶/B 0B 2K3@D4{>5@ 9O;IT)J?G@FlAVOPDE| E G#F F@G PX[c3Td?X _@K;q mv p p< !CL CL CL"[-F %CL't P}; QBk!Rq TG" VsXCLYCLZCL[CL\CL`FuaGbJ e hH jt ku65 lM pr sDvy{ xtϑyE|y|}AX|*BۤU( h3 aW ^ CLCLCLCLCLOPOPOPCLHٞIIH5}}}eT^2}fJ6Mt NBOxN PDQR]RRP;SvI TGs;Vl XBkY!EZ["F\%d ^&P8_'{9 `( a*spb,tc-s{/CL0CL1CLg4j 6CL7CL9CL:CLm=E+n@~&goAc CCLDCLFCLGCLHCLICLJCLwMqxNN yOPGQOP{|m |}j }~F7~^@_CEfy# ~OPW |CLGGGϛOI>uCLtCLEup rQ 5IX6IzFOPCL:Bɀ;Mv<QQ?A8OPCLB Cu1XD@\Eg34F\G]HAh LBMh( NFOCSPBQHRGTGSUGXVB9OPCLY{ Z OPCL]u} ^WOPCLaNtOPCLdD OPf ^ CLh@uiU&OPkMĐ lGpmH =nc\ o_pX = qDR\ rESff sGM5tHMuIEJOPLCLxNE2yORzQKrROPTCL}VGX~XFYE[EM\OP~^CL`CbHt cpfdplen3gCL iGXlCLoOP pY -rCLsCLvV5xCLyCL{s)~ }c CLCLCLIn EC4AIs x! LTzh!Cg"}2#]&f$Klg%M06&N'L#(EINCL*D+_'CL-CpiOPCL0}h 1Jh2H33Ir4BNOP6]CL8BCL:DSCL<r =FxC OPCL@NAG,BH7%CLCLE} HBIZ Jt-CKX|LZ "B #B $GC&K'G*B +B .K/@D0{;1@b4O6I7L:r pOP.qR'sCLtCLwOPyCL3{o-4}A6l7\8Ws39hy:m;k <kOP>SA?H%o@FAVQOPDEdEG3FFeGPXhpSS4d `@@wq+ mv p p< !CL CLCLZn CLu' |R8 Bnrs ݹrxoCLCLCLCLCLFGP*~s H" uS[ ua M mٚDvz u/9EG,y|-@b/Xo1i"2BA5V"q 8eU 9`P:WS3;^ =CL>CL?CL@CLACLDOPFOPGOPICLLI#MIOIPHShzVhz}eZ9}fJMMs NBOx PDQR>RP;S TGVl,7 XBdYE[8\eUU ^M_{r `Aatbtfgcq4CLCLCLgj/ CLCLCLCLmFn~god

Up?i!@UY"Ay#BX$CK%DMu&ENd'FL(GEGICL*KD4K+L`OCL-QCwSOPUCL0W} 1XIw2ZH3[I4BtOP6]CL8BCL:DCL<K =FOPCL@N=5AGBNCLCLE~@ HGͧI_8 JprKXL[- B B G )KGپB B K@DzJ@EO;~IrLr JPEVRwP]M M\o^ JEOPI~JԭOPCLCLCLCLCL CL CLNgGNgGHiGHCLCLCLCLCLCLCL^CLCL!CL"NELCLODPCLQCLSy VCLWCLXCL[OP$\I.%]I->&_QۚbCL*eG݄,fgigOP.hRzjCLkCLnOPoCL3ro04tA6wo7x\y8yW`9{h:}d;~iY<dOP>T?H#@FAVOPDEEG<FFGPX4[ U<c̳ a)@NqHF m ph p !CL CLCL_/ CLua }X BrN ӭqgCLCLCLCLCLFGIO@}; I7w tY u RA q`E y uR E#y|$@gv&Ys'a(Bv,W @ /i 0`i1Yf2^ 3CL5CL6CL7CL8CL;OPOP@CLCINDIEIFHIdJd}edE3}f)IخMtq NBOy PDpQR$"RPS@TGʋVlV XB]YE[G\f* ^KK_{ `C.UaugbtcrgCLCLCLgj CLCLCLCLmG3n~odR CLCLCLCLCLCLCLwvxKyMOP{nwx |kf }Fk~^AcF 5}X ~ OP Z |CLG* H8GבGuACLtBCLDDFv Gq 5IIP6JIOKOPMCL:OB;PJ<RQ?SA>TOPVCLBX CZrD]@AE_b(F`] GaR34HbA LdBMeh( NfFOgC܅PhBQiH@RjGTkGAUlGYOVmBEnOPpCLYr{LS Zsc uOPwCL]yv- ^{VOPCLaNOPCLdDOPf^CLh@}BiPOPkN!V lKmM\nd o_[Rp[( qY r[ sM<tNuE]OPCLxE]yPCL:DVCL< =F:OPCL@NY]AGBDMCLCLE~@ HB>Ih JoKX2TL[5 B B G&"KGB B K[@zJ@BLvHRLr JPEVPfwEM M\o^ JZDOPH,J\OPCLCLCLCLCLCLCLNgG6gNgGHizGH CL CL CL4CL5CL7CL8CL9^:CL;CLNL^@CLBD DCLECLGy JCLKCLLCLNOP$PI%PI-&SOVCL*YG,Zgg[OP.\R^CL_CLaOPcCL3fo/4hA6kqfg7kcL8lT&f9oh":d ;hf<c OP>TϏ?H#@FUAVOPDE'EGIdFFGPD[^c3Wfd b8@qes mi ph p| !CL CLCL[; CLu ~ Bs T @ q CLCLCLCLCLF9G5I*Y|  H  u  u  L  q6f ES v(  v Eʀ y| @ Z \ A| W  "dQ  $`3 %Z &^ 'CL (CL )CL +CL ,CL /OP 0OP 1OP 3CL 7I `I( aIr bH) ds es}eX}fDIEM t( N BjO y] P D Q R RR PS @T HKV l X C[Y E[[ #\ f ^ H:_ { ` D2:a uǯb w4c rL CL CL CLg j  CL CL CL CLm Gn ~o eM9  CL CL CL CL CL CL CLw ox I{y O{ OP{ o"# | l } Gb~ ^ B F4( *y1 ~ ,OP /]! | 1CL 4G$ 6H!l 7G :Mu CL @D= BCL CCL E{LS  HCL ICL JCL LOP$ MI٢% NI-& QL TCL* WH& , gG OP. R̿ CL CL OP CL3 o+4 A6 `7 RY8 Nf9 hפ: nFg; k9< mL OP> Tw? H;D@ FA V OPD FelE GWF FG P| \@ ^ X4 dc  bMT A q  m  p  p ! CL  CL CL _  CL vK  }  C/ t'  D  pv CL CL CL CL CL F  Gn H {  H"  u  u  RJ  r E u  vAV EG y| U  Zj Y_  BI X|  Hd;  J` KYf L^  MCL NCL OCL QCL RCL UOP VOP WOP YCL ]Io ^I _I `H bp dp}e [w}f @IM t` N B[O z P DQ RR PS o+ T H|V n X CWY F7[ +\ g ^ FN_ { ` C(~a tb t(c r CL CL CLg ja  CL CL CL CLm G>n ~o f  CL CL CL CL CL CL CLw rRx IyN>OP{p |mZ }H*~^BEͻ {/9 ~"OP&\TQ |(CL+G* ,H -G0Ou3CLt4CL6DKD7v~ 9qt 5;II?6HyA[< LzB=qM|g N}F\O~CPBQH RGT~THUGփVBөOPCLY{ Z)b OPCL]v ^VX\OPCLaMOPCLdDVOPf^CLh@iMOPkMb lJmLnfJ= o_!pZQ qU) rT sMItN_#uE֨OPCLxEyJqzKOPCL}G~F?E6EOP~CLDJI rs3uLpfCL GCLOP XCL CL IZCLCLu65 i.u =CL>CL?CLBI& CBD~EoFy GNRHTzIi!JK&g"LL #Mm$NK %OM&PO'QL(REchTCL*VD+W_ZCL-\C4^OP`CL0b~s 1cK2eIL3fJ5e4gBwhOP6j]kCL8mBwpCL:rDuCL<w@Q=FOPCL@MAH'BEZCLCLE)b HHHIl Jn0KXLLZR B B G4KGwB B L@zJB3O4IALr JPEVLvwGLM o^ K82CZ OP H G OPCLCLCLCLCLCLCLPgPYgGHizGH CL!CL"CL$CL%CL&CL'CL(^)CL*CL+CL-NQl/CL1D 3CL4CL6{ 9CL:CL;CL>OP$?I%hI.&jJmCL*pHr5,qf!rOP.sRIuCLvCLxOPzCL3}o@"4A6eS37]f8T`9he:c;j9<d OP>T?HZ4@FzAV`OPDFEGoFFGP\I^3XPdN aADqq m p p< !CL CLCL]K CLv }I CDt!N z7pmRCLCLCLCLCLFHOEo{ H w4 v6Yc :g. ;`CL?CLACLBCLCCLFOPGOPHOPKCLNJ\zOI<PI}QHS|U|}eW>}f6IEMu NBY#O{ PEtQQbRPSoXB TI Vn XCWYFm[\h ^Dl_{U `B6asbx\*crCLCLCLgj CLCLCLCLmFn og» CLCLCLCLCLCLCLwy{xLyMOP{q |n{ }Hy~ ^ AcEr1 ~OP` ^ |CLGNXI-H4@ Fu"CLt#CL%C&w J (q 5*IJ(6+I<,OP.CL:0BM;1E+<3Q"l?\A= ]OP_CLBa@&CcAbDf@EhbFiaGj\ffHkA@ LlBMmgp NoFpOpDPqBQrGRsG]TtHTUuH!VvBwOPyCLY{|& Z|r ~OPCL]w% ^ZdOPCLaO].OPCLdDVOPf^CLh@RiLaOPkM. lIpmL(nfp o_@pY8R qQf rS{ sMJtN|[uEOPCLxEySzL6OPCL}GB~Fa$FE%OP~CLDSI0 p sc3qCL GgRCLOP RCLCL%C4(CL)CL+v ,jF /CL0CL1CL4I 5Cc46@P7p8z8 9w ;A r#?T$@K%AM&BOb'CL(DEWFCL*HD+IbWLCL-NCPOPRCL0T~ 1UJL2WIr3XJv4YBðZOP6\]]CL8_BnCL:DCL<@=G )OPCL@M?AHGBElCLCLE~# HFOIX Jl@}KXRLZ}W EVB G4KGB B L^@fzJB3OW@HЌLr JPEVRԢwY'M/LM o^ KUCOPI F7OPCL CL CL CL CLCLCLYOYgGHiRGHCLCLCLCLCLCL CL!^"CL#CL%CL&NMPCLSDzTCLUCLW|C ZCL[CL\CL_OP$`J%aI0&cHDfCL*iH;,jgbkOP.lRnCLoCLrOPsCL3vo._4xA6{nS37|f38}V@9h*:eg;j9<dfOP>TM?Hy$@F^AV OPDF?EGxFFGP_b[d `3QAhq m pӖ p !CL CLCL].B CLw% ~@ Cat B pNCLCLCLCLCLFHIzcz ID w| v Mfz ppFn|!s #n$EU'y|(}R *Y+U,@0Y 3d{ 4a)5Yf6^ 7CL8CL:CL;CLl`?y @JHAR\Bg!CC33"EsY#FZL$GKd%#M&#O'#Lt(#Eo# CL*# D+# ^#CL-#C4#OP#CL0#: 1#I2#I3#J4#G]#OP6# ]#!CL8##B#&CL:#(D#+CL<#-@=#.G-a#0OP#2CL@#5M>A#6HgbB#7E#9CL#:CLE#e} H#fCLI#ge J#hkQK#iXL#jZ #mEV#nB #oGQ#qK#rH0#uB #vB #yL #z@Ȉ#{zJ#|B3#O;~#I#L#r #JP#EV#P#w^#MQ#M=#o^ #K#Cya#OP#I g#Ec#OP#CL#CL#CL#CL#CL#CL#CL#Ng#G6g#Ng#GH#iz#GH#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#NR%#CL#D#CL#CL#| #CL#CL#CL#OP$#J j%#I3&#M#CL*#Hj,#g#OP.#Re#CL#CL#.OP#0CL3#3oBC4#4A6#7dl7#8^ 8#9Zs39#m;#?jl<#@l#AOP>#BU1m?#CH@#DFA#EV#FOPD#GE-E#HGF#IFG#JP#M] #N`L#OYf#Qed# #T]#UA#Vq #Wm #Xp- #Yph !#]CL #^CL#_CL#a^; #dCL#fw #g' #Cpi#t #fQ#p'#CL#CL#CL#CL#CL#F+*#H%!#Lw#y@ #IH #w% #w% #O? #n33#F[#s #f#D+#y|#| #X#T#@x#ZB #e. #`#Xf#^#CL#CL#CL#CL#CL#OP#OP#OP#CL#J #I#I#H1# i(# i(}e#T}fJGM#+t N#-BTO#/| P#XEtQ#[QpR#\PS#]oK T#^ItV#_p X#aC1RY#cFL[#d-A\#gjr ^#i@W_#j|. `#k@+a#mu\b#nu\*c#or\*#qCL#rCL#sCLg#vjZ #yCL#zCL#{CL#|CLm#En#~yo#i't #CL#CL#CL#CL#CL#CL#CLw#rx#MGy#M{#OP{#s |#p }#I+~#^#A)#F%#{/ ~#OP#Y |#CL#GS#Jh#H0#Qu#CLt#CL#AB#vZ #r{ 5#IK6#I,3#OP#CL:#B;#Bh<#Q{?#AS#OP#CLB#@XC#@:D#@E#!h(F#"d{G##\(H#$A L#%AHM#&g34 N#'F34O#(DtP#)B/Q#*GeR#+GVT#,HPU#.H\V#/B#0OP#2CLY#4|R8 Z#5@#7OP#9CL]#;w3 ^#=]ݨ#>OP#@CLa#CQF#DOP#FCLd#HD#JOPf#L^#MCLh#O@i#PWl#ROPk#SM l#TK m#UM n#Vg# o#Y_1p#[[ff q#V r#W s#MQt#Nu#F>K#OP#CLx#FRy#N z#K#OP#CL}#G~#F0#F9#E9#OP~#CL#DX#J- #o #q#l0#CL #Gu#CL#OP #r #CL#CL#WX#CL#CL#tz #i #CL#CL#CL#I #A,#}f#ml#y #JH#P#e!#EL"#v##_$#L%#M&#Ok'#L(#E#CL*#D+#[#CL-# C# OP# CL0# 1#HG2#J%53#JP4#C#OP6#]#CL8#B#CL:# E*##CL<#M@۶=#NGC#POP#RCL@#UMvA#VHuB#WN5#YCL#ZCLE#\},l H#]CI#^k[ J#`jjK#aX)L#bZ #eEV#fB #gGQ#iK#jH #mB #nB #pL{#q@#rzJ#s@#wLv#yIi#zL#}r #JP#EV#Lv#wU(#M#M$\#o^ #K#Cya#OP#I g#FN#OP#CL#CL#CL#CL#CL#CL#CL#Ng#K3#Yg#GH#iz#GH#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#NTO#CL#D#CL#CL#{ #CL#CL#CL#OP$#J$%#I4z&#PI#CL*#H,#g(W#OP.# R#"CL##CL#&OP#'CL3#*oT4#,A6#/^ 7#0R8#1O9#3iD~:#5f4;#6jY<#7gl#8OP>#9U ?#:H@#;FXA#DE#?GcF#@GG#APݠ#EX #F[33#GU34#He #K^#LA#Nq #Om #xp- #yp !#|CL #}CL#~CL#[K #CL#w4 #~ #CZ#u ##o#CL#CL#CL#CL#CL#F? |#CL#Ge#J0#H#Fu#CLt#CL#B-#v #rj 5#IN6#I$#OP#CL:#BM;#B00<# QF?# AdF# OP# CLB#@}BC#D#@E#bGF#dQG#XH#A L#BM#g34 N#FQO#D"(P#BLQ# GR#!GAT#"IU##H%V#$BN#%OP#'CLY#)|oQ Z#*^ #,OP#.CL]#0x# ^#2^-#3OP#5CLa#8Q@#9OP#;CLd#=DV#?OPf#A^#BCLh#l@bi#nV#pOPk#qMې l#rP =m#sRn#tdT{ o#w_j`p#y^aH q#zX r#{[ s#|MY?t#}NWu#FR#OP#CLx#F(y#Kz#K#OP#CL}#G~#F#F0#E#OP~#CL#D#J>> #v#y#p3#CL #GB#CL#OP #t #CL#CL#EO#CL#CL#tj. #hh #CL#CL#CL#J 4 #B9#|3#lL#y; #L#R\#g!#X4"#K9##m $#L%#M&#O.}'#L(#E~#CL*#D+#^#CL-#C#OP#CL0# 1#Q:2#J\3# K%o4# Cj# OP6#5]#6CL8#8B#;CL:#=EG#@CL<#BA=#CGQ#EOP#GCL@#JMxA#KHkB#ME#OCL#PCLE#R}R H#T{/I#Wnk J#XhK#YXhL#ZZO #]EV#^B #_F/#aK#bHR#eB #fB #iL'#j@#kzJ#l@ъ#oLv#H#L#r #JP#EV#Lv#w#M#M&.#o^ #K#Cya#OP#I o#E#OP#CL#CL#CL#CL#CL#CL#CL#O#G6g#Ng#GH#iz#GH#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N`#CL#DJ# CL# CL# |5! # CL# CL# CL# OP$# J;%# I5&# N0 # CL*# I,# g&3# OP.# R# CL# CL# OP# CL3# #o4# $A6# ']L7# (U 8# )K&g9# ,ib:# .fg;# /jy<# 0eg# 1OP># 2T?# 3Hu@# 4FA# 5U# 6OPD# 7DE# `G5F# aG@G# bP# eZ`# f]i# gWC3# if] # l`# mA# nr # ome # pp- # qpӖ !# uCL # vCL# wCL# y`EA # |CL# ~w # ~# # Bn# t #  # o# CL# CL# CL# CL# CL# F9# H# L?I# xWc # Iff # wl # w| # RX # o# GP# x # \# W# y|# {LS # W# R# @~# [; # cw # ^# V# ^# CL# CL# CL# CL# CL# OP# OP# OP# CL# KL# I g# I# Hچ# iQ# iQ}e# f}f#FOM# Cu N# EBHO# F|} P# HE`Q# KQR# LPtS# MoK T# NJ-SV# Oqw X# PC1RY# SF[# Tuc\# Wj9 ^# Yz\_# Z|Q `# [@ a# \v*b# ^yc# _vB# aCL# bCL# cCLg# jo8 # CL# CL# CL# CLm# Eyn# ~9o# h| # CL# CL# CL# CL# CL# CL# CLw# @x# R#y# P ># OP{# t] |# p%/ }# Iq~# ^# @# FMf# vY ~# OP# Z |# CL# G~s# J# H5# K9u# CLt# CL# B# v`B # rX 5# IJ(6# IS# OP# CL:# C;# M<# R^?# Aa_# OP# CLB# @RC# ~\7D# @E# dpF# c\*G# cH# @ L# BM# gp N# FpO# DP# AQ# H R# GET# I8U# H7V# B # OP# "CLY# $| Z# %@A# 'OP# )CL]# +xt ^# U^)# VOP# XCLa# [QP# \OP# ^CLd# `D# bOPf# d^# eCLh# g@i# hU# jOPk# kM l# lN33m# mMGn# ne o# q_bp# s] q# uWW r# vXff s# wMY?t# xNu# yFc@# zOP# |CLx# ~F>Ky# SLz# K# OP# CL}# G~# F# F$K# E# OP~# CL# E # J) # p# t,# n,# CL # G} # CL# OP # wS # CL# CL# B# CL# CL# u' # j& # CL# CL# CL# J # A@# }@# m4# yd # JH# Tz# g!# R "# @## Y3$# L"y%# Mi&# O'# L(# Eo# CL*# DY+# Y# CL-# !C:# #OP# %CL0# '@41# (K82# *J3# +KT4# ,C/# -OP6# /]# 0CL8# 3C # 5CL:# 8EsZ# ;CL<# =A2=# >G`# @OP# BCL@# EMfA# FHbB# GE~# ICL# JCLE# L}~ H# MII# NVm% J# OhIK# QXL# R[K # TEV# VB # WG4# K# H# B # B # L~# A# z# BV# OI_# IX# L# r # JP# EV# Se# w# MS# M+# o^ # K# Cya# OP# I\# D# OP# CL# CL# CL# CL# CL# CL# CL# Y# P4# Yg# GH# i\*# GH# CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# NX# CL# D # CL# CL# |= # CL# CL# CL# OP$# J$%# I8&# L# CL*# I,# fo# OP.# R# CL# CL# OP# CL3# oC4# A6# ]7# HR8# IMy9# Ki:# Mfٚ;# Nk<# Od3# POP># QTK?# RH@# SF'A# TST# UOPD# VEzE# WGF# XGG# YP/# ]_3# ^b# _[# `f+p # cb'# dAW# fr# # gn # hpX # ipX !# lCL # mCL# nCL# p]h # tCL# vwna # w} # xB5# yt # z!# |ol# ~CL# CL# CL# CL# CL# F5# G^# D# wS # IL # v # w # K  # r# G # y]w # Z# yG# yx# z # W|# R# A# [ # f # `p# WS3# ^# CL# CL# CL# CL# CL# OP# OP# OP#CL#K#I'#IV#H#|L#|L}e# zYb}f# F M#8t0 N#:BHO#;} P#CLY#@}: Z#A@`2#COP#ECL]#Gx ^#I]#JOP#LCLa#OQ#POP#RCLd#TD#VOPf#X^#YCLh#[@ri#\T#^OPk#`M[ l#aORm#bOn#cgu o#f_[Rp#h]aH q#iW\ r#jW s#kM\t#lNu#mFo#oOP#qCLx#sFLy#tR#pz#uK #wOP#CL}#Gx~#F6#F$K#Eĉ#OP~#CL#D#JN #sf#wf#mFf#CL #G#CL#OP #qV #CL#CL#X5#CL#CL#v4 #i #CL#CL#CL#IA #A3#~&f#o#x #L#Tz#g!#E"#s ##[$#L5%#M)&# N'# L>(# E~#CL*#E#+#_N#CL-#C#OP#CL0#@-S1#J2#Jd3# KG4#!CXx#"OP6#$]#%CL8#'Ci(#*CL:#,E9[#/CL<#1Al=#2G} #4OP#6CL@#9MIA#:HB#;Ey#=CL#?CLE#ir H#jEBI#k` J#lLv K#mX L#nZn #qEV#rB #sG} #uK#wH% #zB #{B #}L)#~A#zJ#B3#OPP#IW#L#r #JP#EV#R #w#Ny#M/L#o^ #K#EE7#OP#I#E,#OP#CL#CL#CL#CL#CL#CL#CL#Ng#KVf#Pg#GH#iz#GH#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#NZ#CL#Da#CL#CL#|oQ #CL#CL#CL#OP$#J%#I:&#J#CL*#I&,#f#OP.#R#CL#CL#2OP#4CL3#7o4#9A6#;_ff7##FU?#GH@#HGA#IQ#JOPD#KD E#LGNF#MG3vG#NPȷ#QZ|#S]9#TW#UfC #Xb J#YA(#Zr1 #[n #]pX #^q !#aCL #bCL#cCL#ea< #hCL#jw_ #}h #B5#t #B #oJ#CL#CL#CL#CL#CL#F,#G=#G#w| #I@ #wna #xe #SnH #r#3#Gd#x #Y#uR#y|#z7 #W @#SB#A#\5 #d"" #`Ff#U#^#CL#CL#CL#CL#CL#OP#OP#OP#CL#K# I+K# Jk# H# |f#|f}e#Zq}f#ETM#,t{ N#/BOO#0} P#1EޢQ#\QR#]PS#^oK T#_JV#ar X#bC1RY#dG[#e\#hk ^#jt_#k|s3 `#m@Ca#nxkb#owc#pr#rCL#sCL#tCLg#xjdB #zCL#{CL#|CL#}CLm#ETn#~o#j, #CL#CL#CL#CL#CL#CL#CLw#wx#Jy#N#OP{#um; |#q& }#I{~#^#@Z#F<#vܹ ~#OP#[ |#CL#Gn#Ku#H2#Hu#CLt#CL# #vx #r 5#IF6#I!O#OP#CL:#Bw;#K<#R?#A#OP#CLB#@C#z9D#в E#bF#f=qG#$Z\)H#%@ L#&BM#'g34 N#(FQO#)C~P#,}f Q#-GeR#.G;T#0IU#2IP]V#3Eo#4OP#6CLY#8} Z#9@&#;OP#=CL]#?wS ^#A[@#BOP#DCLa#GQ T#HOP#JCLd#LD#NOPf#P^#QCLh#SAKi#TS#VOPk#WMې l#XO33m#YOffn#Zc o#]_p#_[\ q#U r#VR s#Met#Ou#F#OP#CLx#FLy#OwIz#J#OP#CL}#Ge~#F#F,q#E#OP~#CL#C:#J. #zI#{L#rL#CL #G4#CL#OP #w #CL#CL#Y #CL#CL#vv #jX; #CL#CL#CL#J #Dfg#Ay#rs3#yH #nH #zH #C34 !#I "#tfg##T&f$#LCD%#M*&#O)'#Mk(#Ep#CL*#El+#`)# CL-# C#OP#CL0#@1#I2#J3#KI4#C\#OP6#]#CL8#C#"CL:#$D#'CL<#QAO=#RG#TOP#VCL@#YNRA#ZHB#[FA1#]CL#^CLE#`@H#aB7I#ch J#d| K#eXnL#fZQZ #iEV#jB #kGn#mK#oH3#rB #sB #uL-#vA#w{I9#xB3#{O;~#}I#~L#r #JP#EV#P>#w#Ny#M6#o^ #K#H#OP#I o#C}#OP#CL#CL#CL#CL#CL#CL#CL#Pg#O)#Yg#GH#j{#GH#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#NZ#CL#D#CL#CL#| #CL#CL#CL#OP$# J%# I=)&##H #&CL*#)IHW,#*gV#+OP.#,R#.CL#/CL#1OP#3CL3#6o4#8A6#:g 7#;W&g8##EU*?#FHϜ@#GG*~A#HPe#IOPD#JDBE#KGF#LGKG#MPc#Q[f#R[#SU#|f #aN#B^#r@3 #n% #q #q+ !#CL #CL#CL#] #CL#x+ #{ #B#u #B #o#CL#CL#CL#CL#CL#F)[#G=#HxM#w4 #I #wt #xo #K& #p3#H #x:D #X@#q#y|#y #Uʫ#T#@#\ #cL #`3#T`#^ #CL#CL#CL#CL#CL#OP#OP#OP#CL#L7l#I.# J# H:# h{#h{}e#Z}f#D9'M#Wt N#YBMO#Z}{^ P#[EĉQ#^QR#_PS#`o T#bJ}BV#cqZ X#dC(TY#fG [#ge\#jkr ^#mr__#n|l `#o@.Ua#pw(b#qwGc#rs34#tCL#uCL#wCLg#zj #|CL#}CL#~CL#CLm#EJn#~c4o#j$ #CL#CL#CL#CL#CL#CL#CLw#spx#K.y#L#OP{#uaH |#p }#I9~#^#@#F4(#yN ~#OP#[x |#CL#Gx#K7#HFX#Iu#CLt#CL#~ #v`B # r| 5#IHW6#I(#OP#CL:#Bw;#I8<#R(?#A #OP#CLB#@`2C#xD#"@E#$aQF#%iG#&]\)H#'@& L#(AHM#)f N#+F34O#,C/P#/{w Q#0H R#1G`T#3IU#4I1V#5F#6OP#8CLY#:~ Z#;^ #=OP#?CL]#AvI ^#CX#DOP#FCLa'}O'}OP'}CLd'} DY'} OPf'}^'}CLh'}Aei'}RX'}OPk'}Me l'}O\)m'}Pn'}g o'}_qp'}\R q'}W r'} Y s'}!Mo#t'}"Ou'}#F\'}$OP'}&CLx'}(Fby'})L@z'}*Jf'},OP'}.CL}'}0H@~'}3Gb'}4FD'}5E'}6OP~'}8CL'}:C'}dK '}ew@'}g|'}hpf'}jCL '}lG'}nCL'}qOP '}rA,X'}tCL'}vCL'}xY'}zCL'}{CL'}~v( '}k* '}CL'}CL'}CL'}J+0 '}Cf'}@P'}pl'}z$ '}NR'}Tz'}g!'}G"'}q#'}U3$'}LG%'}M=&'}O)''}M'('}F'}CL*'}EV+'}_'}CL-'}C'}OP'}CL0'}^ 1'}Hd2'}K\3'}L'4'}CX'}OP6'}]'}CL8'}Dg'}CL:'}D|'}CL<'}A+='}Go'}OP'}CL@'}NA'}HܪB'}F|'}CL'}CLE'}AH'}@I'}mp J'}jDsK'}XL'}ZB '}EV'}B '}G} '}K'},H/.'}/B '}1EV'}3L2H'}4A'}5{o]'}6BV'}9Lv'};HЌ'}'}U?'}H@'}G?eA'}O'}OPD'}DE'}HF'}GWG'}PR'}\#3'}`C3'} Xf'} fB '}]ڗ'}A'}rN '}n4a '}q+ '}qHF !'}CL '}CL'}CL'}^ '}CL'} wQ? '}!{/ '}"B5'}$uS[ '}&'}'oI'})CL'}*CL'}+CL'},CL'}.CL'}YF!7'}ZG'}[NY]'}^vI '}aI"" '}cx '}dyz '}fP '}io'}lHP'}ow '}qWg'}rn'}uy|'}vyz '}yT'}zT3^'}{@^'}~]K '}c '}a)'}V'}^'}CL'}CL'}CL'}CL'}CL'}OP'}OP'}OP'}CL'}L{'}I0'}J"Q'}HR'}h'}h}e'}&U}f#CM'}u " N'}BIsO'}~ P'}EbQ'}QR'}PS'}n T'}JV'}qZ X'}C1RY'}GI['}-A\'}!lc ^'}#oK_'}$|. `'}%@ a'}'v{b'}(xǯc'})r'}+CL'},CL'}-CLg'}0jT '}3CL'}4CL'}5CL'}6CLm'}9E-n'}<o'}=k '}?CL'}ACL'}BCL'}CCL'}DCL'}ECL'}FCLw'}Iv\x'}KPy'}LO'}MOP{'}Nu |'}Or }'}PI~'}R^'}U@|1'}WF/'}Zs ~'}OP'}`Sk |'}CL'}GC'}L6'}HM'}OP/u'}CLt'}CL'}~ '}vi '}s 5'}IE6'}H`'}OP'}CL:'}B;'}GƩ<'}Q#?'}Ac'}OP'}CLB'}@QC'}vvD'} E'}`=qF'}cG'}WzH'}@ L'}AM'}f N'}F{O'}BP'}|oQ Q'}GR'}GT'}J+U'}IV'}Fh'}OP'}CLY'}@Z'}: '}OP'}CL]'}vܹ ^'}VÁ'}OP'}CLa'}N'}OP'}CLd'}E*'}OPf'}^'} CLh'} A"i'} Qv'}OPk'}M l'}Qm'}Qn'}e^ o'}_p'}]33 q'}X\) r'}Y s'}M`t'}Ou'}Fq'}OP'}!CLx'}#Fby'}LLz'}MJX'}OOP'}QCL}'}SHs<~'}UG6'}VFJR'}XE'}YOP~'}[CL'}]C''}_KE '}`rf'}axs4'}bls3'}dCL '}fGg'}iCL'}lOP '}oq^ '}rCL'}sCL'}vZr'}xCL'}yCL'}{xt '}|lς '}CL'}CL'}CL'}JD '}Bɚ'}l'}p'}zrh '}L'}Tz'}g!'}G"'}}fg#'}]g$'}LN1%'}M:>&'}O''}M,('}FQ'}CL*'}Fb+'}]'}CL-'}C>'}OP'}CL0'}@1'}Q[2'}K2 3'}Ljo4'}C'}OP6'}]'}CL8'}D̘'}CL:'}DS'}CL<'}A2='}H'}OP'}CL@'}NA'}HPB'}F'}CL'}CLE'}BFH'}}ךI'}!f 6 J'}"NZqK'}#X"L'}$Y` '}'EV'}(EV'})G'}+K'},H9Q'}/B '}0EV'}2L8'}3B.'}4{J'}6BV'}9O;~'};I'}'}T?'}HM@'}GLA'}O4'}OPD'}EaE'}HTF'}GaG'}P'}W9'}Zg'} T '} f '} ^'}B5'}rk '}nB '}q9 '}qes !'}CL '}CL'}@CL'}B]y '}ECL'}HxWc '}I{w '}JC='}KvR '}M'}No '}PCL'}QCL'}SCL'}TCL'}UCL'}XF#'}YGM'}ZMI$'}]v '}aI '}cy{ '}dy] '}eMW '}hnC3'}kH'}nw '}pV'}rl'}uy|'}vy#; '}xS'}yS '}zA;'}]h '}d"" '}aL'}V'}^'}CL'}CL'}CL'}CL'}CL'}OP'}OP'}OP'}CL'}L'}I4^'}J)'}H'}iz'}iz}e'}MQ\}f'}CM'} tE N'}BGOO'} P'}F JQ'}Q&R'}PS'}oK T'}KV'}r X'}C(TY'}Gb['}\'} mG ^'}"m_'}$| `'}%@ Da'}&t8Rb'}'rgc'}(qG'}*CL'}+CL'}-CLg'}0jV '}2CL'}3CL'}4CL'}5CLm'}8E*)n'}<~go'}=m '}?CL'}@CL'}ACL'}BCL'}CCL'}lCL'}nCLw'}qvx'}rIQy'}sNL'}tOP{'}uw = |'}vs, }'}xJ .~'}z^'}|@t'}~F='}{w ~'}OP'}_\ |'}CL'}G'}L'}Hq'}Lyu'}CLt'}CL'}| '}w '}sS 5'}I?C6'}H"'}OP'}CL:'}B;'}F<'}Q?'}AZ'}OP'}CLB'}@;C'}uD'}0 E'}gF'}cG'}fzH'}@Q L'}AffM'}fz N'}EO'}BgP'}}~ Q'}GR'}GT'}JkBU'}I<V'}FÝ'}OP'}CLY'}@uZ'}' '}OP'}CL]'}w% ^'}U$y'}OP'}CLa'}M'}OP'}CLd'}El'}OPf'}^'} CLh'} B8Pi'}4P'}6OPk'}7M l'}8QQm'}9Pn'};d o'}>_fp'}@] q'}AXz r'}BY{ s'}CMt'}DO-u'}EFӍ'}FOP'}HCLx'}JF[Gy'}KSz'}MJBU'}OOP'}QCL}'}SH$~'}UG[*'}VFW'}WE'}XOP~'}ZCL'}\B'}_Ks '}`sP'}axL'}bm3'}dCL '}fGg'}iCL'}lOP '}mF'}oCL'}CL'}[8'}CL'}CL'}yz '}n '}CL'}CL'}CL'}J! '}CFf'}~&f'}o'}z '}NR'}Tz'}h!'}D"'}v#'}Z&g$'}LP%'}M`&'}O1;''}M6('}F'}CL*'}Fm+'}]$'}CL-'}C>'}OP'}CL0'}@;1'}L2'}K^3'}L4'}D*#'}OP6'}]'}CL8'}EG'} CL:'} D_'} CL<'} AW3='} H9Q'} OP'} CL@'} NA'} IlB'} G1'} CL'} CLE'} BH'} GJI'} [g] J'} FK'} XyL'} Y '} EV'} "EV'} #GC'} %K'} &H:'} )B '} *EV'} ,M^'} -B.'} .{,'} /BV'} 2O'} 4Ic'} 6M '} ar '} cJ'} d@ '} gQc'} iwʚ'} jNy'} kMG'} l`w/ '} mK'} nJ'} pOP'} qI$'} rCya'} sOP'} uCL'} vCL'} wCL'} xCL'} yCL'} {CL'} |CL'} Ng'} KC3'} Xvf'} kH'} }'} kH'} CL'} CL'} CL'} CL'} CL'} CL'} CL'} ^'} CL'} CL'} CL'} N]'} CL'} C '} CL'} CL'} }I '} CL'} CL'} CL'} OP$'} JL%'} IB;&'} Ng'} CL*'} Iع,'} f?'} OP.'} Swr'} CL'} CL'} OP'} CL3'} o4'} A6'} k7'} Zs38'} V9'} i|:'} h;'} l9<'} g`'} OP>'} T?'} HR@'} G[A'} NY'} OPD'} B-E'} H!F'} Gq2G'} P'} Y#3'} ]C3'} (U3'} )f '} ,`3Q'} -Bsr'} /rz '} 0nQ '} 1qV '} 2q3 !'} 5CL '} 6CL'} 7CL'} 9] '} =CL'} ?x '} @{H '} ACpi'} Bvh. '} DE'} EoN'} GCL'} ICL'} JCL'} KCL'} LCL'} OF#'} PG'} QMl'} Uvv '} XH '} Zz[ '} [zr '} \L '} _o'} bHj'} x '} V'} i'} y|'} x '} R'} R'} A'C'} ] '} e '} a'} V'} ^'} CL'} CL'} CL'} CL'} CL'} OP'} OP'} OP'} CL'} L'} I8'} J6N'} H'} h\'} h\}e'} Dj}f'}B_M'} t N'} BKO'} @'8P'} F3lQ'} QtR'} PS'} ~] T'} KV'} r X'} CVY'} GF['} \'} n ^'} k)_'} |3 `'} @9a'} xb'} tc'} r\*'} !CL'} #CL'} $CLg'} 'j6 '} )CL'} *CL'} +CL'} TCLm'} XEn'} [o'} \n('} F '} CL*'} G+'} ^-'} CL-'} C:'} OP'} CL0'} @Q1'} K2'} K3'} L04'} DM'} OP6'} ]'} CL8'} E'} CL:'} D'} CL<'} A:%='} Hk'} OP'} CL@'} NA'} I.B'} Ge'} CL'} CLE'} CpH'} GVI'} f$ J'} A3K'} XUL'} Y` '} EV'} EV'} G&"'} K'} HB'} B '} EV'} HM^'} JB.'} K{5q'} LBV'} OOBo'} QI-'} RM '} Ur '} WJg'} X@ '} [RJP'} ]w'} ^Ny'} `MNM'} aa '} bK'} cMI'} dOP'} eH'} fB߇'} gOP'} iCL'} jCL'} lCL'} mCL'} nCL'} oCL'} pCL'} sPg'} tN'} uYg'} vGH'} xi\*'} yGH'} {CL'} |CL'} }CL'} ~CL'} CL'} CL'} CL'} ^'} CL'} CL'} CL'} N`'} CL'} D'} CL'} CL'} }R '} CL'} CL'} CL'} OP$'} J_4%'} IE&'} Lv'} CL*'} J ,'} e{o'} OP.'} S'} CL'} CL'} OP'} CL3'} od4'} A6'} `s47'} Q38'} I 9'} iI:'} h9;'} k<'} h'} OP>'} US?'}I>@'}GgbA'}No'}OPD'}BE'}H9rF'}GsG'}Ph'}V'}Z'}Uf'}f+p '}!a'}"B '}#r '}$nn '}%qt '}&q^ !'}*CL '}+CL'},CL'}._i '}1CL'}3y '}4|& '}5C4'}7v '}9Z'}:oT'}CL'}?CL'}@CL'}DF'}EGv'}FL]'}IvK '}tH '}v{ '}w{ '}xO? '}|o'}I<'}y@Y '}Vth'}e7'}y|'}x '}Q'}Rb'}A"'}^ '}d* '}af'}X'}^'}CL'}CL'}CL'}CL'}CL'}OP'}OP'}OP'}CL'}MC]'}I?C'}JC'}I'}h33'}h33}e'}9I5}f'} A3M'}t N'}BPO'}@P'}F^.Q'}QmR'}PrS'}@XT'}L}V'}s15 X'}C1RY'}G['} g?\'} qr ^'} X_'}=|r `'}?B8a'}@vb'}Aukc'}CqH'}ECL'}FCL'}GCLg'}JjT '}LCL'}MCL'}OCL'}PCLm'}SF?n'}VC4o'}WoM9 '}YCL'}ZCL'}\CL'}]CL'}^CL'}_CL'}`CLw'}cp34x'}dL)y'}fNR'}gOP{'}hyh |'}iuc }'}jK>~'}l^'}nA)'}qFG'}tq ~'}vOP'}`> |'}CL'}Go'}L'}HW'}Nu'}CLt'}CL'}u '}w=q '}s 5'}I96'}H'}OP'}CL:'}CL!;'}D <'}S$k?'}A\H'}OP'}CLB'}@C'}C)D'} E'}hHF'}^QG'}W=qH'}@ L'}AM'}fR N'}EO'}BAP'} Q'}GR'}FT'}J0U'}JYV'}F:'}OP'}CLY'}A2Z'}  '} OP'} CL]'}w ^'}U'}OP'}CLa'}L'}OP'}CLd'}E'}OPf'} ^'}!CLh'}#C'i'}$N'}&OPk'}'M l'}(N =m'})Mn'}*cq o'}-_Wp'}/\ q'}0W3 r'}1Z\ s'}3Mnt'}4O@u'}5G'}6OP'}8CLx'}:Fy'};NQz'}OP'}hCL}'}jH~'}lG '}mFH'}oEѕ'}pOP~'}rCL'}tC'}vK '}wv3'}xy'}yt'}{CL '}}F'}CL'}OP '}@'}CL'}CL'}['}CL'}CL'}| '}r '}CL'}CL'}CL'}J '}Bg'}}fg'}nff'}{DA '}L'}S'}g!'}Ef"'}|#'}Z&g$'}LT%'}M۲&'}OYr''}MG('}GC'}CL*'}H+'}_cH'}CL-'}C:'}OP'}CL0'}@1'}I2'}Kƶ3'}M%E4'}Di'}OP6'}]'}CL8'}F('}CL:'}CB'}CL<'}A^v='}H'}OP'}CL@'}O"A'}IVB'}GEG'}CL'}CLE'}0DH'}1C I'}2lHr J'}3\K'}4X=2L'}6Y '}8EV'}9EV'};GQ'}=K'}>HL#'}AB '}BEV'}DM^'}EA'}F{~'}GBBz'}JO^1'}LH'}MM '}Qr '}SJ '}T@E'}WPQ'}Yw'}ZPB'}[MU'}\d] '}]K'}^M'}_OP'}aH'}bBu'}cOP'}eCL'}fCL'}gCL'}hCL'}iCL'}jCL'}CL'}Yg'}Pf'}Yg'}GH'}j{'}GH'}CL'}CL'}CL'}CL'}CL'}CL'}CL'}^'}CL'}CL'}CL'}N_'}CL'}C='}CL'}CL'} O '}CL'}CL'}CL'}OP$'}Jk%'}IH&'}Jh'}CL*'}JB,'}f'}OP.'}S6'}CL'}CL'}OP'}CL3'}o$4'}A6'}l7'}]8'}S9'}iI:'}p3;'}ms3<'}nf'} OP>'} U!?'} I^@'} GnA'} NO'}OPD'}AE'}HHF'}GvG'}Pr'}V3'}[3'}TC4'}gm '}a['}B̤'}r '} n}[ '}!q3 '}"q !'}%CL '}&CL'}'CL'})]b '}-CL'}/y '}0}h '}1C{'}2w '}3B7 '}]oi'}_CL'}aCL'}bCL'}cCL'}dCL'}gF'}hH'}iHo'}lv- '}pI&f '}r|R8 '}s} '}tK '}wp'}zI'}}zr '}V '}b>'}y|'}xH '}Pw'}R~'}A'}^p '}c '}`y'}UVf'}^'}CL'}CL'}CL'}CL'}CL'}OP'}OP'}OP'}CL'}M\'}I>['}JId'}H'}z'}z}e'}3Z!}f'}} M'}t N'}BZO'}AP'}G@5Q'}QerR'}$PjS'}&@.T'}'LV'}(t X'})C:QY'}+Hf['},<\'}/p ^'}1T_'}2| `'}4Ca'}5x.b'}6u.c'}7r'}9CL'};CL'}K'}?HFX'}BEV'}CEV'}EM^'}FB8'}G{L'}IBt'}LOl'}NIr'}OM '}Rr '}|K#'}}BV'}Lv'}w '}P'}M['}eb3 '}K'}MO-'}OP'}H'}BW'}OP'}CL'}CL'}CL'}CL'}CL'}CL'}CL'}Ng'}O'}Yg'}GH'}i=q'}GH'}CL'}CL'}CL'}CL'}CL'}CL'}CL'}^'}CL'}CL'}CL'}N['}CL'}C'}CL'}CL'} '}CL'}CL'}CL'}OP$'}J{a%'}IJ&'}H'}CL*'}J,'}f'}OP.'}S^'}CL'}CL'}OP'}CL3'}o:4'}A6'}f&g7'} Qg8'} Sfg9'} i:'}i;'}ns3<'}iFg'}OP>'}TH?'}I:'@'}GxA'}N8'}OPD'}BfE'}HfF'}G~G'}PO'}F]Vf'}G`f'}HZf'}Jg( '}M`'}NBA'}Orn '}Pn '}Qq^ '}Rrs !'}UCL '}WCL'}XCL'}Za/ '}]CL'}_y# '}`)b '}aC'}cw '}e'}fo'}hCL'}iCL'}jCL'}kCL'}lCL'}pFh'}qH'}rJu'}uv4 '}xI] '}z},l '}{}: '}|RX '}q)'}Io'}vW '}Vn'}_'}y'}x '}Pu'}RU'}H'}^y '}d '}`'}V'}^'}CL'}CL'}CL'}CL'}CL'}OP'}OP'}OP'}CL'}MJ'}IC'}JQ'}ID'}t'}t}e'}e^DZ}f'}| D M'}!u " N'}#BoO'}$C P'}&G*zQ'})QR'}*PCS'}+p T'},M.V'}-u? X'}.C^KY'}1HQ`['}2˪\'}5qq ^'}6P D_'}7| `'}9Ca'}:uRb'} !+e]CY"+e^zٚ#+e_[3$+e`Lf%+eaN<&+ebOOd'+ecMY?(+edG+efCL*+eH++e` +eCL-+eC+eOP+eCL0+e@1+eQ2+eLL3+eM`4+eE8+eOP6+e]+eCL8+eG )+eCL:+eD+eCL<+eA =+eI/j+eOP+eCL@+eOYA+eIB+eEX+eCL+eCLE+eEV[H+e~I+eV1 J+eUdK+eXHL+eYX +eEV+eEV+eG} +eK+eHP|+eEV+eEV+eM^+eB-+e{7+eBY+eO+eIW+e M +e r +eK+eBV+eLv+ew+eP+eM`+eeb3 +eK+eMZ+eOP+eH+e@L+eOP+e!CL+e"CL+e#CL+e$CL+e%CL+e&CL+e'CL+e*Ng+e+G6g+e-Pg+e.GH+e/i\*+eXGH+eZCL+e[CL+e\CL+e]CL+e^CL+e_CL+eaCL+eb^+ecCL+edCL+eeCL+egN\@+ehCL+ekC+emCL+enCL+epr +esCL+etCL+euCL+ewOP$+exJ%+eyIM&+e|G:+eCL*+eJf,+egg+eOP.+eS+eCL+eCL+eOP+eCL3+eoT4+eA6+em47+ea38+e_S39+ej:+ek ;+en&f<+ej+eOP>+eUx?+eIe@+eG3A+eN^j+eOPD+eAfsE+eH?F+eGG+ePХ+ed3+eff+e`+eg +e^+eCR+er +en$ +eqˈ +erN !+eCL +eCL+eCL+e^a +eCL+ez +e},l +eD|+ey@Y +ej+eq +eCL+eCL+eCL+eCL+e CL+e#F#+e$H"i+e%I+e(u +e+H" +e-} +e/}u% +e0LL +e3r+e6JFw+e9x +e;Ws+e<_i+e?y+eAwS +eCP'+eDRK+eEJ+eH_ [ +eKcٚ +eL`+eMV+eO^+ePCL+eQCL+eRCL+eSCL+eUCL+eXOP+eYOP+eZOP+eCL+eN|[+eIB+eJY+eID+e|+e|}e+eQ }f+eh{1 M+etF N+eBO+eShP+eG#=Q+eQR+ePjS+eof T+eMV+evA X+eCyIY+eH[+e\+eH^+eGO_+e|U `+eBEa+ewb+euc+erg+eCL+eCL+eCLg+ek1_ +eCL+eCL+eCL+eCLm+eFn+e Vgo+e r +eCL+eCL+eCL+eCL+eCL+eCL+eCLw+e}x+eM >y+eO+eOP{+e}% |+ePg}+eb- ~+e!^+eLA=+eME+eQo ~+eSOP+eVa |+eXCL+e[G(+e\M'+e^H +eaM*u+ecCLt+edCL+egs +ehxV +eitV 5+ekI86+elH+emOP+eoCL:+eqC4;+erM<+etTcZ?+euAG8+evOP+exCLB+ez@C C+e|@3D+eT E+eb(F+e\(G+eWzH+e@bp L+eAGM+ef=q N+eE O+eAxP+e@;"Q+eGR+eFT+eKU+eKfV+eG +eOP+eCLY+eB8PZ+e~ +eOP+eCL]+ex0 ^+eZw +eOP+eCLa+ePx+eOP+eCLd+eFE+eOPf+e^+eCLh+eCμi+eTa+eOPk+eMan l+eM(m+eKn+eb o+e_<p+eZ\) q+eSH r+eU s+eMrt+eOeTu+eG+eOP+eCLx+eF?y+eS,z+eJ+eOP+eCL}+eIZ~+e!HF +e"Gn+e#E+e%OP~+e'CL+e)C+e+LUL +e,xL+e-}+e.r+e0CL +e2F?+e5CL+e8OP +e;u} +e>CL+e?CL+eB[1+eDCL+eECL+eG@X+eHw +eKCL+eLCL+eMCL+exJ. +eyAg+ezzf+e{ls3+e~{ +eJH+eTz+eg!+eD"+ev33#+eV@$+eL|%+eNHO&+eOZ\'+eMp(+eG+eCL*+eIb++e^+eCL-+eC+eOP+eCL0+e@1+eLL2+eL3+eN14+eE+eOP6+e]+eCL8+eGJY+eCL:+eD4K+eCL<+eAҩ=+eI>+eOP+eCL@+eOxA+eJB+eG+eCL+eCLE+eEH+e|I+ecZ J+esK+eXNDL+eYuc +eEV+eEV+eG+eK+eHM+eEV+eEV+eM^+eBt+e{ey+eB+eOp+eIO+eM +e r +e K <+eB-+eL%+ewn+ePڔ+eMk}+eeb3 +e@K+eAM:+eBOP+eCHκ+eFEʘ+eHOP+eJCL+eKCL+eLCL+eMCL+eOCL+ePCL+eQCL+eTNg+eUKi+eVYg+eWGH+eXi+eYGH+e[CL+e]CL+e^CL+e_CL+e`CL+eaCL+ebCL+ec^+edCL+efCL+egCL+ehNb+ejCL+emC+eoCL+epCL+eq +etCL+euCL+evCL+eyOP$+ezJ%+e{IQl&+eQa+eCL*+eKQ,+eg+eOP.+eS+eCL+eCL+eOP+eCL3+eo4+eA6+ed37+e\y8+e]9+ejK:+er&g;+eo<+er4+eOP>+eTj?+eI+@+eGA+eNb+eOPD+eA**E+eHuF+eGG+eP+e`g+eci+e]+eh +e_"r+eCƘ+er +enT +er +er !+e CL +e CL+e CL+e` +eCL+e{w +e~OI +eDZ+ez7 +e+eq+eCL+eCL+eCL+e CL+e!CL+e$F'+e%HA<+e'J|+e*u +e-H +e/~Ü +e0} +e1Ox +e4r&f+e7J+e;{ +e=Y*+e>]V+eAy+eBw +elO +emR+enL+ +er_x= +eue +ev`f+ewYS3+ex^+eyCL+e{CL+e|CL+e}CL+e~CL+eOP+eOP+eOP+eCL+eOH+eIL+eJgb+eI(+egR+egR}e+eSN}f+egz M+euh N+eB,O+eQ*P+eGVQ+eQR+eP\S+eo7 T+eNVV+ex| X+eCEY+eI[+eL_\+eG^+exF_+e} `+eAa+exzb+ew >c+es+eCL+eCL+eCLg+ekw +eCL+eCL+eCL+eCLm+eFun+eo+esW +eCL+e CL+e CL+e4CL+e5CL+e6CL+e7CLw+e:zHx+e;Iy+eOP{+e?~ |+e@R}+eAep~+eC^+eFA>+eGE+eKs ~+eMOP+ePb8 |+eRCL+eUG +eWMHk+eXH\+e[NVAu+e]CLt+e^CL+eas +eby +ect 5+eeI>[6+efH+egOP+eiCL:+ekD;+elMc<+enT<?+eoA:+eOP+eCLB+e@gvC+epD+e\] E+e\F+e^34G+e_ffH+e@F L+eA(M+ee N+eEO+eARP+e^ Q+eGR+eF/T+eL7`U+eKtV+eG)+eOP+eCLY+eBnZ+er +eOP+eCL]+eyN ^+e[+eOP+eCLa+eQK5+eOP+eCLd+eF[G+eOPf+e^+eCLh+eCi+eVs+eOPk+e MB l+e Rm+e Q\)n+e d}q o+e _<p+e Z q+e Vu r+e Y33 s+e M8t+e Otu+e G+e OP+e CLx+e Fy+e Pz+e J+e OP+e CL}+e Ip~+e Hb+e H +e F J+e !OP~+e #CL+e %DJ+e (Lq +e )s3+e *zg+e +q+e -CL +e /F+e 2CL+e 5OP +e `t/ +e cCL+e dCL+e g[+e iCL+e jCL+e l@+e mx +e pCL+e qCL+e rCL+e uJӊ +e v~+e wx&g+e xhS3+e {{ +e }L+e ~R\+e g!+e Dfg"+e y#+e Pff$+e L%+e NQq&+e Oh'+e Mi(+e H+e CL*+e I{++e \+e CL-+e DG+e OP+e CL0+e A^v1+e KG2+e L3+e N4+e E5+e OP6+e ]+e CL8+e G} +e CL:+e D+e CL<+e BUZ=+e I+e OP+e CL@+e OA+e JjoB+e E/+e CL+e CLE+e F[GH+e J>I+e jy J+e pK+e X<L+e Y: +e EV+e EV+e G+e K+e HW+e EV+e EV+e M^+e CK`+e {ey+e Cy+e O+e )I){+e *M +e -r +e /K&+e 0Bk!+e 3RI+e 5w1+e 6Q+e 7Mr+e 8c +e 9K+e :Ma+e +e TN?+e IZ@+e GbA+e N+e OPD+e B6E+e HF+e GG+e Q+e `+e cC4+e \+e iv +e a3+e C+e s T +e n +e r# +e rn !+e CL +e CL+e CL+e a +e CL+e zu +e }: +e Du+e y#; +e +e rQk+e CL+e CL+e CL+e CL+e CL+e Fh+e HU/+e J`+e $v +e 'I +e )Fv +e * +e +O\ +e VsVf+e YK!N+e \|oQ +e _\K+e `\,+e cy+e dwS +e fO +e gRN+e hLp+e k_ +e obȉ +e pa+e qV+e r^+e sCL+e tCL+e vCL+e wCL+e xCL+e {OP+e |OP+e }OP+e CL+e Ox+e II?+e Jo+e Ij+e {33+e {33}e+e au}f+eaz M+e tF N+e C*O+e N4P+e G{Q+e Q.R+e PS+e of T+e OV+e z} X+e DHY+e IOm[+e :\+e FE^+e i+_+e }"" `+e A4,a+e x=qb+e vc+e rL+e CL+e CL+e CLg+e k+ +e CL+e CL+e CL+e CLm+e !F,n+e $)o+e %u  +e 'CL+e (CL+e )CL+e *CL+e +CL+e -CL+e .CLw+e 1yx+e 2KǮy+e 3P4+e 4OP{+e 5@|+e 7OM}+e 8`ɧ~+e :^+e F!h+e Aq3 ~+e DOP+e Gc |+e ICL+e LG4+e MMW+e NHa+e RITu+e TCLt+e UCL+e Wr# +e y +e t 5+e IB6+e H,+e OP+e CL:+e D%;+e L.<+e U?+e AU+e OP+e CLB+e @C+e ~bD+e s E+e cF+e V(G+e [QH+e @@" L+e A >M+e f N+e EzO+e A?P+e  Q+e GoR+e FsT+e LU+e LV+e H+e OP+e CLY+e C'Z+e  +e OP+e CL]+e y ^+e [y\+e OP+e CLa+e Qw+e OP+e CLd+e Fi+e OPf+e ^+e CLh+e D- i+e V6+e OPk+e M~ l+e Q\)m+e Nn+e b}q o+e _p+e \ q+e W r+e Z8R s+e M t+e Ou+e G+e OP+e CLx+e F/y+e Mcz+e K +e OP+e CL}+e I/~+e H+e H+e Eۼ+e OP~+e CL+e D%+e L +e HqI+e It3+e Jm+e LCL +e NGgR+e QCL+e TOP +e Wlo +e ZCL+e [CL+e ]]T+e _CL+e `CL+e bA+e dz +e fCL+e hCL+e iCL+e kJl +e m+e ny+e ohff+e r{r +e tJH+e uR\+e ve!+e wKg"+e xH#+e ys3$+e zL%+e {NV&+e |Ow'+e }L!(+e ~H+e CL*+e I++e ^+e CL-+e D+e OP+e CL0+e A1+e JE2+e M 3+e N4+e E|+e OP6+e ]+e CL8+e G+e CL:+e D+e CL<+e Bn=+e JP+e OP+e CL@+e O~A+e JB+e Er+e CL+e CLE+e FH+e DaI+e nz1 J+e qaQK+e YL+e Y +e EV+e EV+e G+e K+eH\+eEV+eEV+eM^+eBD+e{ey+eB+eOs+eI-+e M +e#r +e%K?+e'B+e*Q+e,w+e-P4+e.M{+e/d +e0K+e1M +e2OP+e3HR+e5@L+e6OP+e8CL+e9CL+e:CL+e;CL+eCL+eAYI+eCL+eDX4+eEGH+eFiR+eGGH+eICL+eJCL+eKCL+etCL+evCL+ewCL+exCL+ey^+ezCL+e{CL+e|CL+e~N_#+eCL+eCI+eCL+eCL+e@`2+eCL+eCL+eCL+eOP$+eJ%+eIYb&+eN@+eCL*+eL ,+ef\+eOP.+eT~+eCL+eCL+eOP+eCL3+ep4+eA6+ej7+e[8+e[Ff9+ej:+em4;+eq<+elfg+eOP>+eU?+eI`@+eGzA+eN+eOPD+e@3$E+eHF+eGG+eQ7+e`Vf+ec&f+e\3+ei +eab+eD +es)~ +eo +erN +es T !+eCL +eCL+eCL+e_+ +eCL+e{ +e~@ +eE+ez +e7e+er+e CL+e CL+e CL+eCL+eCL+eF+eHO+ex+e)Ly+e*O+e+OP{+e,@|+e-Js}+e.]M~+e1^+e3A82+e5F7 +e8qˈ ~+e:OP+e>b |+ehCL+ekG+elMh+emH+epO1u+esCLt+etCL+evr{ +ewx +eytw 5+e{IGn6+e|H+e}OP+eCL:+eDQN;+eJ&G<+eUa?+eAk+eOP+eCLB+e@RC+e|D+es E+ei F+e_G+e[34H+e@> L+eA(M+ef N+eEzO+eA7=P+e O Q+eGR+eFݱT+eLU+eL=V+eI+eOP+eCLY+eC:Z+e: +eOP+eCL]+ezT ^+eZ+eOP+eCLa+eQ+eOP+eCLd+eF+eOPf+e^+eCLh+eDui+eUn+eOPk+eMB l+eTm+eRRn+ed# o+e` 1p+e]33 q+e_ r+eZ. s+eMt+eOu+eH+eOP+eCLx+eGy+eKz+eKF+eOP+e0CL}+e2I~+e4HO+e5H+e6Fp+e7OP~+e9CL+e;DB+e=LQ +e?u+e@x+eArg+eCCL +eEG+eHCL+eJOP +eMX$ +ePCL+eQCL+eT\+eVCL+eWCL+eYAe+eZ| +e]CL+e^CL+e_CL+ebJ +ecB+ed~_+eemY+eh{L +ejL+ekTz+eh!+e "+ey33#+eW$+eL%+eNH&+eO0R'+eL+(+eI54+eCL*+eJ,++e^}+eCL-+eDX+eOP+eCL0+eA1+eI2+eM43+eO@4+eFC+eOP6+e]+eCL8+eHG+eCL:+eD+eCL<+eBw=+eJm+eOP+eCL@+eOA+eJB+eEG+eCL+eCLE+eF/H+eBvI+e[, J+em/3K+eXbrL+eY +eEV+eEV+eG+eK+eHcN+e EV+e EV+eM^+eCK`+e{+eCy+eOp+eI.+eM +er +eK$+eCy+e!Pf+e#ws+e$P+e%M4+e&eU +e'KOT+e(Me+e)OP+e*H+e,@L+e-OP+e/CL+e0CL+e1CL+e2CL+e3CL+e\CL+e]CL+e`Pg+ebL<+ecYI+edGH+eei=q+efGH+ehCL+eiCL+ejCL+ekCL+elCL+enCL+eoCL+ep^+eqCL+erCL+esCL+euNY]+ewCL+eyCa+e{CL+e|CL+e~@+eCL+eCL+eCL+eOP$+eJҪ%+eI]&+eM+eCL*+eLAq,+eg6+eOP.+eT>+eCL+eCL+eOP+eCL3+ep44+eA6+ej7+e\y8+eZg9+ekr:+emL;+eq4<+ek+eOP>+eTa?+eI@+eGA+eO +eOPD+e@kE+eHdF+eGFG+eQ\+ed34+egY+e`+ejyf +e`+eCA+esF +eoK +erz +esF !+eCL +eCL+eCL+edE +eCL+e{w +e}h +eD+e$z % +e%|U+e'st:+e)CL+e*CL+e+CL+e-CL+e.CL+e1F$+e2H\p+e3L+e6vh. +e9Hs3 +e<@X+e=AO+e>S +eArf+eDK+eG} +eI]+eJZ>U+eNy7+eOx+ +eQPc+eRR~8+eSL+eV` +eYd +eZ`+e\V+e]^+e^CL+e_CL+eCL+eCL+eCL+eOP+eOP+eOP+eCL+eO+eIV+eJ+eI$+e}3+e}3}e+e%W}f+evy, M+etb N+eC=SO+eGP+eGQ+eQQR+ePsS+eo T+eOzV+ey X+eDlTY+eI[+e]\+e@c^+eUz_+e}1 `+e@La+ex b+ev34c+erz+eCL+eCL+eCLg+ekn +eCL+eCL+eCL+eCLm+e En+e34o+eu +eCL+eCL+eCL+eCL+eCL+eCL+eCLw+es\x+eQy+eOp+eOP{+e A|+e!Gg}+e"Y~+e%^+e'A +eQF)V+eTq ~+eVOP+eZb |+e\CL+e_Gt+e`Mc$+eaH5+edI{Qu+egCLt+ehCL+ejr{ +ekx7 +elu1 5+eoIK6+epH+eqOP+esCL:+euD;+evH<+exU|?+eyA`+ezOP+e|CLB+e~@bC+e{$}D+eP E+ey{F+edG+ev34H+e@* L+eA(M+ef N+eEO+eA-P+e~ Q+eGR+eFݱT+eMU+eLgV+eI+eOP+eCLY+eDBZ+e +eOP+eCL]+ez[ ^+eY+eOP+eCLa+eQc+eOP+eCLd+eFy+eOPf+e^+eCLh+eDi+eTT+eOPk+eM l+eQm+eO\n+edz o+e_'p+e_p q+eW= r+eZ s+eNt+eOu+eH=+eOP+eCLx+eG&"y+eQ}z+eK)+e!OP+e#CL}+e&I~+e(I.r+e)HM+e*FC^+e+OP~+e-CL+e/D+e1M) +e2u+e4x4+e5r +e7CL +e9GX+e;CL+e>OP +eAL` +eDCL+eECL+eH\`O+eJCL+eKCL+eMAf+eN{; +eQCL+eRCL+e|CL+e~J( +e33+ex`+eh@+e{<} +eL+eS+eh!+e{L "+ey#+eV$+eL#%+eO&+eO'.'+eKN_(+eI+eCL*+eJ_C++e_+eCL-+eDQN+eOP+eCL0+eAZ1+eI~2+eM3+eOyp4+eF +eOP6+e]+eCL8+eHa+eCL:+eD+eCL<+eBE=+eJ+eOP+eCL@+eO>A+eJB+eED;+eCL+eCLE+eG&"H+e@2I+e^O J+ek"K+eXpL+eY: +eEV+eEV+eG+eK+eHg+eEV+eEV+eM^+eCK`+e{ey+eCy+e O+e I6/+eM +er +eK&X+eCy+eLv+ew+ePP+eDMS+eEf  +eFK82+eGN+eHOP+ePH+eQBu+eROP+eUCL+eVCL+eWCL+eXCL+eYCL+eZCL+e[CL+e^Ng+e_G6g+eaNg+ebGH+eci+edGH+efCL+egCL+ehCL+eiCL+ejCL+ekCL+emCL+en^+eoCL+epCL+eqCL+esN]+etCL+ewC+eyCL+ezCL+e|AAh+eCL+eCL+eCL+eOP$+eJ6%+eI`&+eLh+eCL*+eLo,+egl+eOP.+eSV+eCL+eCL+eOP+eCL3+eps4+eA6+e`37+eRFf8+eU349+ekF :+ejg;+eo9<+ei+eOP>+eT?+eI#@+eGA+eOG+eOPD+e@E+eI F+eGZG+eQj+ea)+ed<+e]+ekL +e ]+e D:+esc +eo,| +er +es !+eCL +eCL+eCL+ea +eCL+e| +e~ +e!E9[+e"{ +e$=d+e%s+e'CL+e(CL+e)CL+e*CL+e,CL+e/F-+e0Ht+e1JBU+e4v +e7H +e9@+e;A+e`zF/M?Z G/M@bfgH/MA@+f L/MBA(M/MCf N/MEEzO/MFA0P/MH~; Q/MJGxR/MKFyT/MMMEU/MNLV/MOI/MPOP/MRCLY/MTDSZ/MU^ /MWOP/MYCL]/M[{ ^/M]Y\/M^OP/M`CLa/McQ/MdOP/MfCLd/MF/MOPf/M^/MCLh/MDi/MS}/MOPk/MM l/MPm/MMn/Mcp o/M_p/M\W q/MW r/MX s/MNGt/MO'u/MH]/MOP/MCLx/MGJYy/MRRz/MK)/MOP/MCL}/MJ,~/MIT/MI!/MF}V/MOP~/MCL/MDY/MMS /Mw/Mzg/Ms3/MCL /MG-a/MCL/MOP /MlD /MCL/MCL/M[ o/MCL/MCL/MA$Z/Myx /M CL/M CL/M CL/MKB /MAg/M|Ff/Mm/M{S /Mw > /MA > /MFQ !/My33 "/Mj #/MPٚ$/MLA%/MO&/M O'/M!J{(/M"IQ/M$CL*/M&JX+/M'`/M*CL-/M,DQN/M.OP/MXCL0/MZA1/M[M2/M]M˻3/M^O4/M_Fc/M`OP6/Mb]/McCL8/MeI/MhCL:/MjD/MmCL/MTh?/MI@/MG}A/MOe/MOPD/M E/MI'F/MGG/MQs/M`f/Mc3/M]|/Mk]6 /M^{/MDU/Ms /Mo; /Mr /Ms !/MCL /MCL/MCL/Ma /MCL/M| /M~ /MDg/Mz$ /M/Ms/MCL/MCL/MCL/MCL/MCL/MF46/MH/ML/Mv /MHٚ /M@۶/MA//ML/ /Mo/MLG?/M} /M^/MX/My7/Mx /MO1/MR _/MMx/M a< /M e /M `/MW&f/M^/MCL/MCL/MCL/MCL/MCL/MOP/MOP/MOP/MCL/M P /M!I`/M"JJ/M#I./MOh =/MRh =}e/M]( }f/Mww M/Mpu N/MrC5{O/MsEJP/MtG’Q/MwRR/MyPS/Mzouq T/M{OTV/M|z X/M}DYY/MI[/MM\/M{ ^/MJ2k_/M}8 `/M@ca/Mvb/MuLc/Mr /MCL/MCL/MCLg/Ml8P /MCL/MCL/MCL/MCLm/MEn/M~go/Mv /MCL/MCL/MCL/MCL/MCL/MCL/MCLw/M@x/MLy/MPW /MOP{/MAA|/MB}/MSF~/M^/M@3/MFc/Mn}[ ~/MOP/Mdn |/MCL/MG/MM/$/MH/MQ8u/MCLt/MCL/M qy /M!yk /M"u 5/M$IK6/M%H\/M&OP/M(CL:/M*E9[;/M+F}@) L/M?AGM/M@g34 N/MAEO/MBA0P/ME O Q/MFGxR/MGFT/MIMwU/MJL\V/MKIb/MLOP/MNCLY/MxE Z/MyK /M{OP/M}CL]/M{= ^/MW/MOP/MCLa/MPN/MOP/MCLd/MF/MOPf/M^/MCLh/ME2i/MRM/MOPk/MM l/MRRm/MPn/Md o/M`p/M[ q/MU( r/MVk s/MN<t/MO u/MHo/MOP/MCLx/MG`y/MPsz/MK82/MOP/MCL}/MJX~/MIp/MI4/MFN=/MOP~/MCL/MDZ/MMo /Mrf/Mu/Mo/MCL /MGg/MCL/MOP /MCO /MCL/MCL/M[/MCL/MCL/MAt@/M{3. /MCL/MCL/MCL/M K /M B/M ~_/M nf/M{k /MJH/MS/Mg!/MMff"/MBs4#/Mg $/M@L%/MAN&/MBO&D'/MCJ(/MDJ+/MFCL*/MHJ+/MI^/MLCL-/MNDQN/MPOP/MRCL0/MTAq1/MUKf2/MWNY3/MXO4/MYG/MZOP6/M\]/M]CL8/M_IiN/MbCL:/MdD/MgCL/M{Tb?/M|I>@/M}GA/M~O/M~OPD/MAE/MIB[F/MHSG/MQa/M^/Mb,/M\g/MmY /Ma/MDL/Ms /MoI /Mr /Mt' !/MCL /MCL/MCL/Md /MCL/M{ /M~Ü /MBc/Mzcz /MBS /Msz/MCL/MCL/MCL/MCL/MCL/MF6/MHt/MO=o/MvI /MH] /MA/MC./MRHc /Mq#3/ML/M} /M]/MXo$/My/MxP /MOZ/MQW/MLVh/Ma[o /Mc /M_/MVf/M^/MCL/MCL/MCL/MCL/M CL/M4OP/M6OP/M7OP/M9CL/M/M H!/M Gh?u/M CLt/M CL/M p /M x\ /M u| 5/M IGn6/M H,/M OP/M CL:/M EO;/M E:/M lTJg?/M mJ@/M nHA/M oO#/M pOPD/M qAE/M rI[F/M sH%G/M tQ/M w]/M x`g/M yZg/M {l /M ~av/M D:/M s /M of /M s)~ /M t/ !/M CL /M CL/M CL/M aD /M CL/M | z /M ~; /M BF/M z /M CJ /M s͑/M CL/M CL/M CL/M CL/M CL/M F:/M HB$/M N9/M wl /M H /M Ae/M CSc/M L] /M r/M L/M }u% /M ]/M W/M y7/M x /M O|/M Q|/M LO/M aD /M e /M `3/M Vf/M ^ /M CL/M CL/M CL/M !CL/M "CL/M &OP/M 'OP/M (OP/M *CL/M -Pu/M .Ia/M 0J/M 1I2/M 3}3/M 4}3}e/M [M$}f/M v< M/M Rt N/M TC)\O/M UDP/M WH"Q/M R RR/M PtS/M o T/M PV/M {{ X/M DYY/M I[/M \/M y ^/M G_/M }* `/M @Ga/M y\b/M wfgc/M u\*/M CL/M CL/M CLg/M lS /M CL/M CL/M CL/M CLm/M Eon/M o/M w| /M CL/M CL/M CL/M CL/M CL/M CL/M CLw/M tHx/M Q=qy/M N/M OP{/M BF|/M Ao}/M RZ~/M ^/M @ /M Fl/M q ~/M OP/M b |/M CL/M GZ/M M/M H)/M MXu/M CLt/M CL/M p\ /M y~ /M uE 5/M IF6/M H/M OP/M CL:/M Ed;/M E P/M Lr Q/M MG0R/M NFyT/M PM{U/M QMTV/M RI/M SOP/M UCLY/M WEV[Z/M Y@A/M ZOP/M \CL]/M ^|& ^/M `V#/M bOP/M dCLa/M fO_Y/M gOP/M iCLd/M kG/M mOPf/M p^/M qCLh/M sEi/M tP^/M vOPk/M wMS l/M xOm/M yNn/M zeT{ o/M }`^p/M \ q/M Vu r/M Xz s/M N8t/M Ou/M Hc/M OP/M CLx/M Gy/M KAz/M KqN/M OP/M CL}/M JZ~/M I/M Ie/M FxC/M OP~/M CL/M E*/M MA /M u9/M x/M qfg/M CL /M G/M CL/M OP /M vv /M CL/M CL/M ] /M CL/M CL/M A/M |N /M CL/M CL/MCL/MK /MB/MY/Mqy/M|% /MNR/MR\/Mg!/M| "/M j33#/M!W$/M"M/%/M#NU&/M$O '/M%I(/M&J/M(CL*/M*Jā+/M+^tT/M.CL-/M0D|/M2OP/M4CL0/M6B8P1/M7Ip2/M9N^3/M:O4/M;H{/M]/M?CL8/MAJ/MDCL:/MFDY/MICLCL*/MAL,/MBg/MCOP./MDR//MECL/MFCL/MIOP/MKCL3/MNpZ4/MPA6/MRi&g7/MS^l8/MT\g9/MWk:/MYt;/MZo3/M]T?/M^J8k@/M_H)A/M`O/MaOPD/Mb@E/McIvGF/MdH?eG/MeQ/Mhaf/Mjdf/Mk\/Mll4 /Mo_/MpD1/Mqs /Mrouq /MssU: /Mutj. !/MCL /MCL/MCL/Mbs /MCL/M{a /M~ /MB"/Mz? /MF/Ms/MCL/MCL/MCL/MCL/MCL/MF=B/MH&/MJ/Mw% /MH /MA /MDY/MNoE /Mr/MM/M}R /M]2/MWE/My7/My /MO/M QN/M M#/M at /Mc" /M`/MV/M^/MCL/MCL/MCL/MCL/MCL/MOP/MOP/MOP/M"CL/M%PZ/M&Id|/M'J/M(I6//M*}/M,}}e/M]}f/M v M/Mrtb N/MtC'O/MuFhP/MvHGQ/MyRBR/MzP&S/M{oXB T/M}P7 V/M~{o X/MD\Y/MJ#[/MZ\/M| ^/MQ"_/M}U `/M@7a/Mypb/MyBc/Ms/MCL/MCL/MCLg/MmM /MCL/MCL/MCL/MCLm/MEs[n/M6go/Mv /MCL/MCL/MCL/MCL/MCL/MCL/MCLw/Mr=qx/MJGy/MN/MOP{/MA)|/MD}/MVK~/M^/M@/MF S/Mw ~/MOP/Mba7 |/MCL/MGˆ/MM/MH/MN6u/MCLt/MCL/Mp 7 /My /MuX 5/MID6/MHچ/MOP/MCL:/MEl;/MD1M/M?fR N/M@EzO/MAAF~P/MDK Q/MEG:R/MFFT/MHN,U/MIM;uV/MJH0/MKOP/MMCLY/MOEGZ/MPA/MROP/MTCL]/MV}I ^/MXXN/MYOP/M[CLa/M^P>/M_OP/MaCLd/McG/MeOPf/Mg^/MhCLh/MjEi/MkOI>/MOPk/MMI l/MP\)m/MNn/Mc o/M`&p/MX q/MSR r/MU. s/MNAt/MO(u/MH/MOP/MCLx/MG0y/MRPKz/MK/MOP/MCL}/MJ ~/MI\/MI/MG&/MOP~/MCL/ME/MM /Ms/Mu/Mo/MCL /MGJY/MCL/MOP /Mx /MCL/MCL/M[/MCL/MCL/MA/Mz /MCL/MCL/MCL/M K` /M Cl/M @P/Mq/M|{ /MJH/MQ/Mg!/MrL "/M{g#/M_ٚ$/MMM%/MN&/MO?'/MIR(/MJQ/MCL*/M!JF+/M"_"r/M%CL-/M'E/M)OP/M+CL0/M-B1/M.HG2/M0N13/M1P4/M2Hw/M3OP6/M]]/M^CL8/M`JBU/McCL:/MeE/MhCL/M_T~?/MJV@/MHAA/MP/MOPD/MA$ZE/MIF/MHYG/MQ}/M]/M_ٚ/MZ/Mm /M^/MDC/Ms /Mo /Ms /Mt !/MCL /MCL/MCL/Mdc /MCL/M|oQ /MU /MEG/Mz[ /MW/MsN/MCL/MCL/MCL/MCL/MCL/MFB/MH0/MIa/Mw4 /MHȉ /MAZ/MEV[/MQz /Mt3/MM6/M}h /M^/MVf/My7/My1 /MO/MQw/MMSA/M bTF /M hȉ /M`/MYf/M^ /MCL/MCL/MCL/MCL/MCL/MOP/MOP/MOP/MCL/M!P/M"Ic/M#J/M$I3v/M&|ff/MP|ff}e/MJ$}f/Mv@G M/Mnt N/MpC.ZO/MqHdP/MrH7%Q/MuRFqR/MvP&S/MxoXB T/MyPV/Mz{P X/M{DaY/M}JE[/M~ܤ\/M@(^/MX1[_/M}"" `/M@a/Mv#b/Mv#c/Ms{/MCL/MCL/MCLg/Mll /MCL/MCL/MCL/MCLm/MEaGn/Mpo/Mw /MCL/MCL/MCL/MCL/MCL/MCL/MCLw/Msx/MIy/MOQ/MOP{/MAR|/MG}/MY~/M^/M@/MF/Mu ~/MOP/Mc4 |/MCL/MG/MM"/MH/MGu/MCLt/MCL/Mor /Mz% /M u: 5/M"I=s6/M#H:/M$OP/M&CL:/M(El;/M)CG E/M@d\F/MAU{G/MBX34H/MC@A L/MDA(M/MEf N/MFEzO/MGALNP/MJ@Q/MKGR/MLF:T/MNN5U/MOMWV/MPI/MQOP/MSCLY/M}EWZ/M~@R/MOP/MCL]/M}; ^/M\&8/MOP/MCLa/MQ-/MOP/MCLd/MG4/MOPf/M^/MCLh/MEVi/MNu/MOPk/MM l/MQm/MPRn/Mf o/M` 1p/MVff q/MPk r/MRL s/MNGft/MO6u/MH/MOP/MCLx/MGoy/MRݳz/MK/MOP/MCL}/MJ~/MI-/MI/MF$/MOP~/MCL/ME/MM@ /Mq/Mt@/Mn3/MCL /MG/MCL/MOP /M\o /MCL/MCL/M[=/MCL/MCL/MA//M { /M CL/M CL/MCL/MKc; /M@g/M|/Mls3/M| /ML/MR\/Mg!/MD~ "/MEi&g#/MFN$/MGM'%/MHN:&/MJO'/MKI"(/MLJ3/MNCL*/MPJ|1+/MQ_/MTCL-/MVFE/MWOP/MYCL0/M[B1/M]Q2/M^N{3/M`P34/MaIj/MbOP6/Md]/MeCL8/MgJ/MjCL:/MlF:/MoCLG/MACL*/MDMH,/MEf /MFOP./MGQ35CL35CL35OP35 CL335 q%435A635^33735V835L935n:35|;35@<35|&g35OP>35TϏ?35Ji@35HUA35P'35 OPD35!AeE35"IMF35#HwG35$Q<35(]g35)`35*Z35+mZ 35._R935/D^}350t' 352o7 353s 354t4 !357CL 358CL359CL35;a 35fCL35i|oQ 35j O 35kEV[35lz 35n 35os35qCL35rCL35tCL35uCL35vCL35yFB35zHt35{KW35~wB 35HU 35Aq35G35LL 35r35MR 35}h 35^[35V/^35y735yN 35P35PM35M̓35bs 35is3 35`35Yp35^ 35CL35CL35CL35CL35CL35OP35OP35OP35CL35P35Ib35J535I6/35S35S}e35nZ }f/Mu_ M35.uZU N350C7O351I P352HQ5Q355RQR356P&S357o; T358PV35:} X35;DfY35=Jc[35>\35?B6 ^35@]O_35B}7w `35CF a35Dyb35Ezc35Fu35HCL35ICL35JCLg35Nl 35PCL35QCL35RCL35SCLm35VE]n35Y~o35[w 35]CL35^CL35_CL35`CL35aCL35bCL35dCLw35guzx35KRy35O35OP{35B33|35JB}35\~35^35@35F)35o ~35OP35bD |35CL35G35M,A35HM35M u35CLt35CL35oD 35yM 35u33 535I9635H:35OP35CL:35Ed;35C-5<35U?35A35OP35CLB35AHC35@D35 E35^F35UQG35V(H35@Vy L35A >M35f N35EO35AUP35@#'Q35G:R35FsT35N_U35M V35I}35OP35 CLY35 EVZ35 @u35OP35CL]35}h ^35]35OP35CLa35S2O35OP35CLd35GX35!OPf35#^35$CLh35&Ei35'MX35)OPk35*M} l35+T m35,T33n35.d{ o35Y_jp35[W{ q35\R=q r35]Rk s35^NMt35_Oru35`I :35aOP35cCLx35eH y35fPz35hK35jOP35lCL}35nJ~35pJ r35qI735rF35sOP~35uCL35wE35zM 35{|3435|35}r35CL 35Gu35CL35OP 35S5 35CL35CL35[Q35CL35CL35B35~g 35CL35CL35CL35Kk 35Ag35|Y35mFf35| 35R\35Up35i!35F"35nٚ#35cL$35M(%35Nu &35N'35IpJ(35Kn35CL*35Jt+35`935CL-35F[G35OP35CL035C135K235Nέ335Pc435J-[35OP635]35CL835J335CL:35!F~35$CL<35&D=35(K}35)OP35+CL@35.PA35/KBsB350Ea;352CL353CLE355HVFH358}.I35:o7 J35Yc 35AEV35BEV35CG35ELC35FH35IEV35JEV35LM35MJȈ35N{ 35PI"d35SLv35UI35VL35Yr 35[K635E9[35Lv35w35P35M35iQk 35K8235Mc35CL35EtC35{\35OP35CL35CL35CL35CL35CL35CL35CL35Ng35G6g35Yg35H=q35GH35N35OP35CL35CL35CL35CL35CL35CL35^35CL35CL35CL35N[35CL35CI35CL35CL35B}35CL35CL35CL35OP$35K <%35I~I&35G"J35CL*35Mg,35eC35OP.35Qx35CL35CL35OP35CL335q _435A635 f735 \835 X935p8:35f;35A<35~,35OP>35T?35J{@35HjA35PV35OPD35ANE35IZF35HxG35Q$35!]Vf35"avg35#[35Lm} 35Oa235PDyN35Rt!N 35So 35Tsl 35UtY !35XCL 35YCL35ZCL35]c 35`CL35b|& 35c' 35dEZ35ez 35g35hs35kCL35lCL35mCL35nCL35oCL35rF35sH35tK:\35xw_ 35{IU 35}B?35~E35O? 35q35Mi35}h 35]235V:(35y735yz 35P35P35M35b 35h 35`35YS335^35CL35CL35CL35CL35CL35OP35OP35OP35CL35P35I]835Jd35IA35h35h}e35g^&.}f35u M35't0 N35)CEO35*KcP35+HD-Q35.Rp`R35/QHS351oI T352QXV353~D X354DmY356Jm[3572\358Cϥ^35:b_35;}v `35<@a35=vQb35>wHc35?s35ACL35CCL35DCLg35GmS 35ICL35JCL35KCL35LCLm35xEQn35{go35|x^ 35~CL35CL35CL35CL35CL35CL35CLw35wfgx35J{y35N\)35OP{35Bj|35LM}35`~35^35@35Fp35vI ~35OP35c4 |35CL35G35MFA35H35Ngu35CLt35CL35n 35zhs 35u 535I9635HD35OP35CL:35EV[;35B<35UPG?35A35OP35CLB35A^vC35@D35 E35^34F35UQG35\ >H35@- L35A(M35f=q N35EO35A]P35@DQ35G’R35FT35NU35M"V35I35OP35CLY35EZ35@35OP35 CL]35 ~z ^35 ^35OP35CLa35S~35OP35CLd35@GX35BOPf35D^35ECLh35GETi35HLs 35JOPk35KLN l35MRpm35NRn35Od o35R_jp35TZH q35UVz r35VVff s35WN>Et35XO@u35YI't35ZOP35]CLx35_H9Qy35`Mz35bKq35cOP35eCL}35gJZ~35iJ!35jIP35kG35lOP~35nCL35pF[G35sM0 35tx935uu935vtS335xCL 35zG435CL35OP 35K+ 35CL35CL35\E35CL35CL35Bc35~s 35CL35CL35CL35Kb 35BL35~s435n,35|< 35L35R\35g!35{g "35pY#35S$35M&.%35Ns&35OOd'35IX(35J35CL*35JP+35^35CL-35Fq35OP35CL035 C6]135 K _235 N"335PB435I 35OP635]35CL835K 35CL:35F/35CL<35 D=35"Kf35#OP35%CL@35(P-A35)K9TB35*E[n35,CL35-CLE35/HVFH350I5I351U J352aK353XhL355Y 357EV358EV35:G35354TZ=?355J<@356HlA357P{358OPD359BE35:I F35;HG35u 35Io۔ 35Kt' 35Lu65 !35OCL 35PCL35QCL35Sc 35VCL35Y}; 35Z@-S35[D;35\| 35^35_s{35aCL35bCL35dCL35eCL35fCL35iEڬ35jH;35kNR35nwna 35I 35Bc35D35P 35nf35M35} 35]Pz35U735y735y# 35P S35P[35L 35c/ 35mUU 35`335Yi35^35CL35CL35CL35CL35CL35OP35OP35OP35CL35P35Ih35Jӓ35IZ35h(35h(}e35^\}f35t M35 t N35 C[GO35 !L$P35 "HQ35 %Rp`R35 &QS35 'o,| T35 (QV35 *} X35 +DoY35 -J[35 .O3\35 /FO^35 0f@_35 2} `35 3b a35 4v*b35 5y#c35 6v3435 `CL35 aCL35 bCLg35 fm* 35 hCL35 iCL35 jCL35 kCLm35 nE<;n35 qgo35 sxM 35 uCL35 vCL35 wCL35 xCL35 yCL35 zCL35 {CLw35 v34x35 Ly35 PG35 OP{35 C|35 M}35 `j~35 ^35 @m35 E35 mm ~35 OP35 dB |35 CL35 Gx35 M35 Hy35 Iu35 CLt35 CL35 po 35 y 35 v > 535 I9635 HI35 OP35 CL:35 E*;35 Bz<35 UI?35 A35 OP35 CLB35 At@C35 wD35 ~ E35 _ffF35 \G35 `H35 @> L35 A >M35 f N35 EO35 Ag-P35 @`Q35 GR35 FT35 NtU35 MV35 I535 OP35 CLY35 F!OZ35 @35 OP35 (CL]35 *~OI ^35 ,]m35 -OP35 /CLa35 2T"35 3OP35 5CLd35 7GQ35 9OPf35 ;^35 ETi35 ?Uj35 AOPk35 BM / l35 CQ(m35 DQQn35 FdE o35 I_p35 KW q35 LR\) r35 MS s35 NN,t35 OO{u35 PI35 QOP35 SCLx35 UH9Qy35 VKz35 XKr35 ZOP35 \CL}35 ^KF~35 `J835 aJ35 bFhR35 cOP~35 CL35 FR35 M6 35 w35 v<35 t35 CL 35 G} 35 CL35 OP 35 D 35 CL35 CL35 ]n35 CL35 CL35 CU35 @g35 CL35 CL35 CL35 Kɠ 35 B335 @35 p 35 |D 35 P35 Tz35 i!35 R33"35 l&f#35 Lf$35 M+%35 Nx&35 O1;'35 I(35 J35 CL*35 IL+35 \<35 CL-35 F/35 OP35 CL035 CSc135 J235 O+*335 P435 I 35 OP635 ]35 CL835 K035 CL:35 Fݱ35 CL<35 E =35 K[35 OP35 CL@35 PA35 KhB35 E35 "CL35 $CLE35 &HH35 'F&EI35 (b( J35 )aK35 *WL35 +Yf 35 VEV35 WEV35 XGx35 ZL#35 [I"d35 ^EV35 _EV35 bM35 cJ=(35 d{~35 eJk35 hLv35 jI35 kL35 nr 35 pK=35 qE*35 tRs35 vw35 xOO35 yNy35 zlº 35 {K@35 |MI35 ~CL35 Ej35 Dy35 OP35 CL35 CL35 CL35 CL35 CL35 CL35 CL35 Ng35 M35 Yg35 GH35 iz35 GH35 CL35 CL35 CL35 CL35 CL35 CL35 CL35 ^35 CL35 CL35 CL35 N^j35 CL35 C$35 CL35 CL35 B\35 CL35 CL35 CL35 OP$35 K%35 I&35 P35 CL*35 M{,35 c35 OP.35 QS$35 CL35 CL35 OP35 CL335 qT435 A635 "\,735 #Vf835 $KL935 &rXc:35 (B<;35 )@<35 *B035 +OP>35 ,SA?35 -J@35 .HA35 /P35 0OPD35 1AlCE35 2IF35 3HG35 4Pȷ35 8b35 9f35 :`35 ;n($ 35 >]m35 @Dۨ35 At[ 35 Bo 35 Ct/ 35 Dua !35 GCL 35 HCL35 ICL35 Lc/ 35 OCL35 Q} 35 R@435 SCD35 T{ 35 UD(N 35 Ws@35 CL35 CL35 CL35 CL35 CL35 EP35 HF35 Nt35 w| 35 I7w 35 BF35 C35 KF 35 q335 M35 } 35 \F35 U35 y735 y 35 O35 PX835 Mgy35 cjS 35 d" 35 `f35 Yi35 ^35 CL35 CL35 CL35 CL35 CL35 OP35 OP35 OP35 CL35 PV35 Ir35 Jݔ35 Ij35 }f35 }f}e35 U[ }f35 u M35 t N35 Co>O35 LJP35 H9QQ35 R>R35 QDuS35 o,| T35 PV35 } X35 HD|Y35 JJ[35 KV\35 MH?J^35 Nk_35 O~9 `35 Pʩ a35 Qxb35 Rxc35 Su35 VCL35 WCL35 XCLg35 Zn, 35 \CL35 ]CL35 ^CL35 `CLm35 cE:mn35 f4o35 gx^ 35 iCL35 jCL35 kCL35 lCL35 nCL35 oCL35 pCLw35 s~x35 tHfy35 uO\35 vOP{35 wA|35 yP:}35 zah~35 |^35 ~@t35 E35 q ~35 OP35 c- |35 CL35 G35 M35 H<35 Oyu35 CLt35 CL35 mT 35 y 35 uX 535 I=s635 Hκ35 OP35 CL:35 E*;35 E<35 UO?35 Ar35 OP35 CLB35 AZC35 ~oD35 P E35 W\)F35 ^G35 ZRH35 @L L35 AGM35 f=q N35 EO35 At@P35 @Q35 GR35 FT35NrU35MV35HpV35OP35CLY35EZ35B\35OP35CL]35 ^35 ]35!OP35#CLa35&Tl35'OP35)CLd35+GgR35-OPf35/^350CLh352ETi353V355OPk357M l358Rm359R=qn35:d o35=`Qp35?X3 q35@S r35AU s35BN1}t35COu35DI't35FOP35HCLx35JHGy35KQSz35uK35vOP35xCL}35zK0~35|JT35}JY35~F35OP~35CL35F35N= 35t35q35pY35CL 35GC35CL35OP 35`~w 35CL35CL35\.35CL35CL35BUZ35~̪ 35CL35CL35CL35K| 35Cvg35l35n35|% 35L35R\35g!35Pff"35k#35W$35M:>%35N&35OA'35I@(35I֍35CL*35I/+35^\k35CL-35G35OP35CL035C135H̾235OO335Q 435H~35OP635]35CL835K)35CL:35H 35 CL<35 El=35 L()35OP35CL@35QA3535S?35 J@35!HA35"P35#OPD35$BgE35%JEF35&H}G35'P!35+]435,ag35-[35.n~ 351_0353Dҷ354tx 355pY 356t[ 357u6 !35:CL 35;CL35t 35jCL35l} 35m@b35nCL!35o| z 35q35rs 35uCL35vCL35wCL35xCL35yCL35|Em35}Ht35K_35w 35I@ 35B 35CL!35RJ 35r#335M"35} 35\35Ur/35y735y 35O35P035N%b35c{ 35e 35`35YP35^35CL35CL35CL35CL35CL35OP35OP35OP35CL35Q35Iy^35J35Is35hQ35hQ}e35q\5}f35 st M351t N353CO354NP355H5Q358R}R359QS35;o,| T35EY35@J[35A4T\35CLka^35FR_35N~* `35O a35Qwfgb35RwHc35Su35UCL35WCL35XCLg35[m 35]CL35^CL35_CL35`CLm35cE1cn35g\o35hw+ 35jCL35kCL35CL35CL35CL35CL35CLw35o\*x35N.y35P35OP{35A`|35V}35d~35^35@t35F35x ~35OP35b |35CL35G35M!35H35Hu35CLt35CL35n 35y = 35t 535I>[635Hn35OP35CL:35E#;35N<35U?35A35OP35CLB35AfC35}FBD35~H E35Z\)F35^G35`RH35@H L35 A(M35 f=q N35 EO35 AP35@Q35GľR35F~T35O U35N7V35Ix35OP35CLY35F!OZ35AL35OP35CL]35K ^35!]35"OP35$CLa35'T35(OP35*CLd35,Gu35.OPf350^351CLh353Ei35\UA35^OPk35_M l35aM\m35bMffn35cf o35f`Hbp35h[\ q35iT=q r35jU s35kNEt35lOu35mIA35nOP35qCLx35sHs<y35tS3z35vL B35wOP35yCL}35{KF~35}Jw{35~J>35F35OP~35CL35Fݱ35NM 35s3435q35sf35CL 35G;35CL35OP 35l w35CL35CL35]?35CL35CL35A35| 35CL35CL35CL35K 35@35|Ff35p35| 35L35S35g!35}2 "35zff#35hٙ$35MH%35N&35Odi'35I_(35I+35CL*35I+35_535CL-35F35OP35CL035C.135J6235O~335Q0435H35$OP635&]35'CL835*Kz35,CL:35.G351CL<353E=355LYM356OP358CL@35;Q(A35E%35@CL35ACLE35CHaH35E@ I35HnP J35IHLK35JXAL35KY: 35NEV35OEV35PG35RL-35SI"d35VEV35WEV35YM35[Hٙ35\z35]J35Lv35Im35M35r 35L35D335Lv35w35Ny35Ny35lº 35KJ35M_35CL35E35D35OP35CL35CL35CL35CL35CL35CL35CL35Xc335K35Yg35GH35k >35GH35CL35CL35CL35CL35CL35CL35CL35^35CL35CL35CL35Nb35CL35C035CL35CL35A35CL35CL35CL35OP$35K'@%35ID&35O#35CL*35MF,35bT35OP.35 QK535 CL35 CL35OP35CL335q435A635X735Z9835N`935s5:35}@;35 Al<35!@935!OP>35#Sa?35#JJ@35$H'A35%P35&OPD35'@E35PJF35QHG35RP35V[c335W_35XYg35YnZ 35]`35^D35_t 35`p3 35atz 35bu} !35eCL 35fCL35hCL35jc 35mCL35o} 35pA:35qCw35r|oQ 35u 35vs35xCL35yCL35zCL35{CL35|CL35E35Ha35O35w 35Hȉ 35B 35C=35N 35n335M35} 35[o35UD#35y735y{ 35O<35O$35MS35c 35hQ 35`35Z035^35CL35CL35CL35CL35CL35OP35OP35OP35CL35QO35I35J35I~35h\35h\}e35u_{}f35tH* M354t N356CrO357KCP358HRQ35n T35?OV35@{D X35BERY35CJ[35E{ \35FMU^35Ih͔_35J~q `35Ko) a35Mwub35NyQc35Pv{35RCL35SCL35|CLg35mל 35CL35CL35CL35CLm35E#n350o35v 35CL35CL35CL35CL35CL35CL35CLw35~=qx35My35PH35OP{35@|35Xk}35c~35^35@f35EA35qes ~35OP35b& |35CL35G35N35Hw35Iu35CLt35CL35m 35x 35t 535I@+635Hچ35OP35CL:35E#;35M<35U;?35AT35OP35CLB35AC35{]D35T E35aF35c=qG35XQH35@;Z L35A(M35f N35EO35 AP35 @Q35 GR35 F}VT35 O9U35NwV35Io35OP35CLY35F>KZ35A35OP35CL]35 ^35E]35FOP35HCLa35KTy35LOP35NCLd35PG35ROPf35T^35UCLh35WEi35YU;735[OPk35\Mt l35]L{m35^M n35_bf o35b`.p35d] q35eW\) r35fWk s35gNWt35iP u35kIr35mOP35oCLx35qH/y35rPz35tL@35uOP35wCL}35yKc~35{J35|J35}F^.35~OP~35CL35F35Nz" 35t35q6f35os435CL 35GC35CL35OP 35b\35CL35CL35\35CL35CL35AK35{ 35CL35CL35CL35K? 35@35{`35j35|D 35y 35BR 35GG !35Bs4"35sY#35XY$35MT%35O-&35OH'35 I(35 I35CL*35I\+35_ 35CL-35F35OP35CL035Cpi135Me235 O335!Q]435"I@35#OP635%]35&CL835)Ku35+CL:35-Gx350CL<352Eѕ=354L355OP357CL@35:QWwA35;KǟB35CL35?CLE35AHH35C~0I35F[ J35G`EK7XmOL7Yuc 7 EV7 EV7 G7L2H7I"d7EV7EV7M7Hٙ7zJ7J7Lv7Iu7M\7"r 7$L7%D 7(Lv7+w7,Ny7-Ny7.lº 7/KJ70K72CL75E{}76Cm77OP7:CL7;CL7dCL7eCL7fCL7gCL7hCL7kNg7l{7mXl7oGH7pj7qGH7sCL7tCL7uCL7vCL7wCL7xCL7yCL7{^7|CL7}CL7~CL7Nl7CL7C7CL7CL7B\7CL7CL7CL7OP$7K,%7I&7Nd$7CL*7MB,7a7OP.7Q47CL7CL7OP7CL37q47A67^77V87\97t\:7@3;7|Ff<7A7OP>7Sl?7K"@7HA7Px7OPD7AE7J3F7ITG7P)7]07_ٚ7[ 7nP 7a,7Ea7t 7p3 7t 7v4 !7CL 7CL7CL7aL 7CL7~@ 7,A7.C7/| 71U72t74CL75CL76CL77CL79CL7MN7Aw3 7DH3 7FB7GC 7IK 7Ln7ON7R}h 7T[7UU7Xy77Yy 7\O7]P7^M7adE 7dgj 7e`y7fY7^7CL7CL7CL7CL7CL7OP7OP7OP7CL7Qq7I7J:7I7hp7hp}e71c}f35tV M7t N7CO7JXmP7GQ7RtR7Q5S7~; T7P/V7} X7EWY7K[7 \7N/^7j>_7~ `7A)wa7 vb7 xgc7 ug7CL7CL7CLg7mk 7CL7CL7CL7CLm7En7vgo7 vD 7"CL7$CL7%CL7&CL7'CL7(CL7)CLw7,wHx7-MGy7/N7XOP{7YA0|7ZWpE}7[g~7]^7_@ 7bE>7eq ~7gOP7ja_ |7lCL7pG7qMf7rH:7uOu7wCLt7xCL7{m 7|x- 7}u 57I3v67H@7OP7CL:7EZ;7Mw<7U?7Ax7OP7CLB7AC7zCD7 E7f F7dG7_H7@0 L7A >M7e N7DHO7A2P7@YQ7GR7FT7OgLU7NV7I$7OP7CLY7FLZ7At@7OP7CL]7 ^7\#Z7OP7CLa7S7OP7CLd7G7OPf7^7CLh7Ei7T^k7OPk7M8 l7T m7Tpn7e0 o7_p7 Z q7!T r7#V s7$N`t7%Pu7&IF7'OP7)CLx7+Hky7,Mz7.Ll7/OP71CL}74K~75JŹ77K-78FKV79OP~7;CL7=F7?Nv 7@u`7As37Cr7ECL 7FG`7ICL7LOP 7OgL7RCL7SCL7V\7XCL7YCL7[AL7|< 7CL7CL7CL7L 7@47{g7j37|{ 7P7Vff7i!7rL "7lL#7T&f$7M^%7O]&7N'7Io(7J67CL*7I+7`)7CL-7Fq7OP7CL07C~17Kqh27O37Qx47LC7OP67]7CL87KE7CL:7F57CL<7ET=7L7OP7CL@7QmA7KB7E7CL7CLE7HؒH7@I7_ J7koK7XL7Ya 7EV7EV7 G7 L87 I"d7EV7EV7M7Hٙ7z%7J7O;~7Ir7MM7r 7!L7"Ds7ML7Ow7PNy7QNy7Rm 7TKM7UKF7WCL7ZEij7[B 7\OP7^CL7_CL7`CL7aCL7bCL7dCL7eCL7hNg7iL7jY7kGH7lj7mGH7oCL7pCL7rCL7sCL7tCL7uCL7vCL7w^7xCL7yCL7{CL7|Ng7~CL7C7CL7CL7B8P7CL7CL7CL7OP$7K/q%7I&7M7CL*7M,7aB%7OP.7Q7CL7CL7OP7CL37q47A67X377\g87R97toq:7}f;7@ <7{47OP>7R׍?7K2g@7HA7Ph7OPD7@E7J;'F7IG7Pe37Zf7]97X)7nz 7_7EG7t4 7pPL 7tY 7vw 7AHU 7CBN7DB7ER 7HsL7KN 7O}~ 7y[7zTv7}y77~z 7P/7P7M7d 7o 7`7Zɚ7^7CL7CL7CL7CL7CL7OP7OP7OP7CL7Qm7I(7K7I~7~7~}e7,Sk}f7{s٨ M7IuZU N7KCTO7LIP7MGQ7PRR7QQS7R@T7TPݱV7U}8V X7WEwY7XK[7Y{ \7ZK9^7]h^_7_~ `7aCa7btfgb7cvc7duk7fCL7gCL7iCLg7lm̭ 7nCL7oCL7CL7CLm7GLn7Io7u 7CL7CL7CL7CL7CL7CL7CLw7r x7My7R7OP{7At|7V}7fu~7^7A7F/7o,| ~7OP7b |7CL7Gy7N(7H7OBNu7CLt7CL7n% 7x| 7tt 57 I867 Ht7 OP7 CL:7 E*;7 LP=<7 U?7 A7 OP7 CLB7 B C7 wlD7 ~ E7 Q F7 RG7 J(H7 @,1 L7 A(M7 f=q N7 EO7 AP7 @NQ7 G R7 !FT7 "OU7 #NV7 $J7 %OP7 'CLY7 )F~Z7 *A{7 ,OP7 .CL]7 0^ ^7 2Z57 3OP7 5CLa7 `Rw7 aOP7 cCLd7 eG7 gOPf7 i^7 jCLh7 lF i7 mR7 oOPk7 qN& l7 rS\)m7 sSGn7 teL o7 w`Dp7 yZ{ q7 zPk r7 {U\ s7 |NgZt7 }P*u7 ~I7 OP7 CLx7 Hy7 Jؗz7 L7 OP7 CL}7 K3~7 J97 KH7 Fw7 OP~7 CL7 F7 NM 7 uL7 r7 mg7 CL 7 G )7 CL7 OP 7 Y7 CL7 CL7 ]7 CL7 CL7 A^v7 | 7 CL7 CL7 CL7 L8 7 7 zg7 l`7 |< 7 P7 Tz7 i!7 r "7 ^33#7 Jٙ$7 M^%7 O&7 O'.'7 J(7 JV7 CL*7 J+7 _67 CL-7 )Fq7 +OP7 -CL07 /C17 0Je27 2P/n37 3Qo47 4J \7 5OP67 8]7 9CL87 CL:7 @GC7 CCL<7 EFR=7 GLW7 HOP7 JCL@7 MQ9A7 NKB7 OE7 QCL7 RCLE7 THH7 UEI7 Vk/ J7 Ww^K7 YZL7 ZZ%\ 7 \EV7 ]EV7 _Go7 aM^7 bI"d7 EV7 EV7 M7 I7 zJ7 Jk7 OBo7 IpJ7 M 7 r 7 L7 EC7 Qr7 wҖ7 Ny7 Ny7 m 7 KM7 K7 CL7 E7 C37 OP7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Ng7 Gf7 Ng7 GH7 j{7 GH7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 Nj7 CL7 Dn7 CL7 OP7 Cw7 CL7 CL7 CL7 OP$7 K7%7 I&7 Lo7 CL*7 N,7 `7 OP.7 Pq7 !CL7 "CL7 %OP7 'CL37 *q47 TA67 V\77 WW&g87 XTL97 [t#:7 ]yFg;7 ^~g<7 _z97 `OP>7 aR~8?7 bK=\@7 cI A7 dPr7 eOPD7 fBE7 gJ_F7 hI,G7 iP77 lXP7 n[)7 oVf7 pnA 7 s`7 tEs7 ut 7 vp 7 xu65 7 yv !7 |CL 7 }CL7 ~CL7 f 4 7 CL7 )b 7 AL7 DG7 } 7 7 s7 CL7 CL7 CL7 CL7 CL7 E-7 HgR7 OHB7 w 7 H 7 Bn7 B7 R 7 nL7 NB7 }R 7 [C7 T7 y77 z7 7 PK<7 Pl7 M*7 e 7 g 7 a 7 Y7 ^ 7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 #QD7 $I=7 %K 7 &I,7 )h337 ,h33}e7 WV$}f7t M7 Ju N7 MCO7 NK> P7 OH8Q7 RRR7 SR!S7 Tq3 T7 URV7 W@X7 EY7 KRY[7 R\7 JP^7 cj_7 r `7 D_a7 vb7 xgc7 u7 CL7 CL7 CLg7 nL 7 CL7 CL7 CL7 CLm7 Gn7 ~o7 x^ 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 ux7 Ky7 O\7 OP{7 C|7 Ui}7 dݭ~7 ^7 B!7 EН7 n ~7 OP7 a |7 CL7 G[7 N8'7 H7 I u7 CLt7 CL7 m 7 y 7 t 57 I&67 H\7 OP7 CL:7 EO;7 K<7 U?7 A7 OP7 CLB7 BNC7 u’D7 ~ E7 TRF7 TG7 N H7 @KN L7 A >M7 e N7 EO7 A¯P7 A]Q7 HGR7 JFT7 KOUU7 LNV7 MIH7 NOP7 PCLY7 RF?Z7 SA"7 UOP7 WCL]7 Y@}B^7 [Y]7 \OP7 ^CLa7 aRRE7 bOP7 dCLd7 fG7 hOPf7 j^7 kCLh7 mF>Ki7 nQ7 pOPk7 qN\ l7 rT m7 sT\n7 udxR o7 x`fyp7 zU\) q7 {NR r7 |PaH s7 }N{qt7 ~P8u7 I7 OP7 CLx7 Hy7 S:z7 L*7 OP7 CL}7 K,~7 Ks7 K 7 F7 OP~7 CL7 Fݱ7 N 7 z7 v 7 r97 CL 7 G7 CL7 OP 7 OH7 CL7 CL7 ]7 CL7 CL7 C7 @7 CL7 CL7 CL7 L? 7 7 z7g7|} 7L7S7h!7t "7a33#7N&f$7Mn9%7O˻&7O '7I(7 Jt<7"CL*7$J;+7%_7(CL-7*G7,OP7.CL070DX171HE273PK374Q475JU76OP678]79CL87CL:7@Go7CCL<7EF[G=7GL7HOP7JCL@7uQ=A7vKB7wFp7yCL7zCLE7|I/jH7~ɅI7o7 J7cKK7NvL7Z 7EV7EV7H 7M^7I"d7EV7EV7M7J=(7zJ7Jk7OW@7I=7M:>7r 7M 7EM7P57w97Ny7Ny7l^ 7KS7MI7CL7E7C57OP7CL7CL7CL7CL7CL7CL7CL7P@7G6g7Yp7GH7j347GH7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7Ng7CL7D 7CL7CL7Ci(7 CL7 CL7 CL7OP$7KB%7I?&77^RRE?7_KV@7`IA7aP7bOPD7cAE7dJrF7eIHG7fP:7jV7kX47lTs37mnUz 7p_37qEB7su' 7tph 7uu 7vv( !7CL 7CL7CL7d/ 7CL7K 7A^v7DJ7~# 707sH7CL7CL7CL7CL7CL7E-7Hx7I7wt 7I33 7B7B7Lz 7r7N\i7}~ 7[NP7Tʆ7y77zF^ 7P7P7M7eM 7 fw 7 `37Zf7^7CL7CL7CL7CL7CL7OP7OP7OP7CL7 Q7!I7"J7#I7&hz7*hz}e7ba}f7 s M7puh N7rD O7sJ4P7tH/.Q7wSR7xR!S7zo T7{R2V7|H X7~E%Y7Kn[7`-\7K^^7g̽_7UU `7Baa7wb7yqc7v7CL7CL7CLg7n[ 7CL7CL7CL7CLm7GLn7Lo7y#A 7CL7CL7CL7CL7CL7CL7CLw7@x7My7P >7OP{7CH|7V}7dn ~7^7B#7EB|7o,| ~7OP7cYk |7CL7G7NDm7Hȥ7K_u7CLt7CL7mn 7y 7tT 57I67HD7OP7CL:7El;7K<7U?70A71OP73CLB75B\C76AD77~ E79TzF7:NzG7;HRH7=@A L7>@M7?e N7@DO7AAҩP7BA5Q7CGR7DFnT7EOMU7FO V7GI7HOP7JCLY7LFsZ7MAW37OOP7QCL]7S@`2^7UX7VOP7XCLa7[Q7\OP7^CLd7`G7bOPf7d^7eCLh7gFEi7iPJ7kOPk7NH l7RQm7P\n7e3 o7`fyp7Z q7T\ r7V s7Nt7PEdu7J 7OP7CLx7I y7Qkz7L7OP7CL}7Kw~7K8g7Kz7F7OP~7CL7Fݱ7N\ 7w\7v37ri7CL 7F7CL7OP 7w7CL7CL7]gi7CL7CL7B7~ 7CL7CL7CL7LEm 7 r7 p7 i47|5 7NR7Tz7i!7tfg "7^#7Kg$7Mt%7O&7OB'7J(7Jz7CL*7Jm+7 `)7#CL-7$F7&OP7(CL07*Du17+Jl27-Pu!37/Q470J71OP673]7\CL87_Lr7aCL:7cF7fCL<7hF7 =7jM 7kOP7mCL@7pQ˃A7qLB7rE7tCL7uCLE7wHH7y}(I7|UI J7}OkK7~VSL7Y 7EV7EV7Ge7M^7I"d7EV7EV7M7IU7zJ7Jk7Lv7IM7MNM7r 7M 7FN=7Lv7w67Ny7Ny7l 7KU7N |7CL7EV7D7OP7CL7CL7CL7CL7CL7CL7CL7X7G6g7Pg7GH7j{7GH7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7Nl7CL7$D 7&CL7'CL7)Ca7,CL7-CL7.CL70OP$71KF/%72I&75KW78CL*7;NV,7<`9b7=OP.7>P7@CL7ACL7COP7ECL37HqN47JA67LU377MK87NN397QtX:7St;7Tx<7Uv 7VOP>7WR7?7XKo@7YI+A7ZP7[OPD7\AwE7]JF7^IWyG7_P+7U7Ws37R37m\ 7^ 7F 7uD 7p 7u 7w !7CL 7CL7CL7e 7CL7@47A:7D7)b 7[7sW7CL7CL7CL7CL7CL7Ew;7HW7I 7x 7H 7BE7BM7LU 7tf7N7} 7[7T7yP7zcz 7Pc7P7MX7e 7e{ 7^@7X37^7 CL7 CL7 CL7 CL7CL7OP7OP7OP7CL7Q7I[7Jd7I7h337"h33}e7g}f7s4X M7ht7K N7kDdO7lJv`P7mH AQ7pS+R7qR(S7rouq T7sR/V7u֤ X7wEY7xK[7yP\7zK^7}i@d_7~ `7Aa7v{b7y\c7v7CL7CL7CLg7nS 7CL7CL7CL7CLm7Fn7o7yb5 7CL7CL7CL7CL7CL7CL7CLw7{x7MGy7O7OP{7D.|7UC}7d~7^7A\7Ej+7r ~7OP7dB |7CL7G~s7NP7H7Qu7CLt7CL7lb 7y 7t1' 57I$67 Hx7!OP7#CL:7%E;7&Ja<7(V+(?70B 71OP73CLB75BC77AWD7:& E7SHH7@@7] L7A@M7Be N7CDHO7DA߻P7EAN|Q7FGR7GFT7HP2U7IO3"V7JI&7KOP7MCLY7OGZ7PAt@7ROP7|CL]7~@}B^7\a7OP7CLa7R{7OP7CLd7G7OPf7^7CLh7F[Gi7Oɖ7OPk7M l7Q33m7P\)n7c+ o7_'p7Y q7T r7U s7N{qt7PNu7Iނ7OP7CLx7Iy7Oz7L7OP7CL}7L{~7KW[7K7F/7OP~7CL7GJY7N 7m7mY7hg7CL 7Gg7CL7OP 7D7CL7CL7]7CL7CL7C7AN7CL7CL7CL7 LP 7 s7 o97hS37{ 7yp 7B=q 7G !7p "7]&f#7`$7MxB%7PEd&7DOH'7EJV(7FJg7HCL*7JJ++7K^7NCL-7PF7ROP7TCL07VE 17WM27YP37ZQ47[JBU7\OP67^]7_CL87bL7dCL:7fH 7iCL<7kFxC=7mM 7nOP7pCL@7sQ5A7tLT.B7uF7wCL7xCLE7zI(-H7}|KI7c J7EK7X:L7Y 7EV7EV7H[7M^7I"d7EV7EV7M7J=(7z?7JYz7Lv7IŦ7M^7r 7M 7E7Lv7w7Ny7Ny7l 7K\W7M\.7CL7E7CV7OP7CL7CL7CL7CL7CL7CL7 CL7Pg7Ff7Ng7GH7j347GH7CL7CL7CL7CL7CL7CL7CL7^7CL7 CL7"CL7#NnL7%CL7(D 7)CL7-CL7/D;72CL73CL74CL76OP$77KH%78I&7;Jo7>CL*7AN,7B`?7COP.7DP7ECL7FCL;OP;CL3; qV4; A6;]7;R38;J9;s:;|;;zL<;33;OP>;R!E?;K@;I>A;P\;OPD;BC3E;JF;IfG; P8|;$W4;%Y;&Tɚ;'m ;+`j;,F ;-ua ;.p- ;/u ;0w_ !;3CL ;5CL;6CL;8gj ;;CL;e ;fAH;gDnQ;h} ;j\;ls;nCL;oCL;pCL;qCL;rCL;uEx";wHe;xKT;{x# ;~Hww ;BE;B ;P ;r;N};}h ;[;T^;yP;zr ;Pyd;O;MrO;eд ;lD ;`;\Ff;^;CL;CL;CL;CL;CL;OP;OP;OP;CL;R0X;I;Jz;I;{;{}e;jX%}f7qɋ M;tq N;D O;,J62P;-HdQ;0S6R;1ReBS;3of T;4R V;5@X;7EuY;8K[;9\;;LY^;>eIi_;? `;@Aa;Bub;Cwc;DvQ;GCL;HCL;ICLg;Kn ;MCL;NCL;OCL;PCLm;TF$n;Wo;Xy#A ;ZCL;[CL;\CL;]CL;_CL;`CL;aCLw;dvQx;eKRy;fO#;gOP{;C3|;U};d*~;^;AU;E;srb ~;OP;f< |;CL;G;Nr;Hh;G6u;CLt;CL;l! ;y ;tT 5;I6;H1;OP;CL:;El;;I <;VU}?;B`;OP;CLB;BC;AblD; E;OF;IG;QzH;@u L;@M;eG N;DO;A(P;AeQ;GBR;F~T;PgU;OlV;I ;OP;CLY;FZ; B5; OP; CL];AO^;_JD;OP;CLa;T;OP;CLd;G;OPf; ^;!CLh;#Fbi;$NN;'OPk;(Na l;)Nffm;*Ln;+c+ o;.`=p;X\) q;YU\) r;ZW s;[Nt;\P_u;^J;_OP;aCLx;cIEy;dLz;fM;gOP;iCL};lL0~;mKl;nL4;oF;pOP~;rCL;tG;wN ;xoC3;yo3;zig;|CL ;~GgR;CL;OP ;K";CL;CL;^;CL;CL;D4K;B>;CL;CL;CL;Lr ;sl;o9;m;{ ;NR;Up;i!;j ";X#;G$;MS%;Ph)&;O5';JM(;J:`;CL*;J3+;[;CL-;G`;OP;CL0;E1;Kf2;P3;R;Y4;I;OP6;];CL8;L-;CL:;Hs<;"CL<;$F/=;&MMz;'OP;)CL@;,Q-A;-LeB;.F&a;0CL;1CLE;3IZH;5y I;8j J;9A|K;:VL;;Ya ;>EV;?EV;@Go;BM^;DI"d;GEV;HEV;JM;KJ=(;LzJ;MJ};PLv;RI;SMxB;Vr ;XM ;ZEP;P>;w;Ny;Ny;l ;K_<;K;CL;Ek9;DF-;OP;CL;CL;CL;CL;CL;CL;CL;Ng;G6g;X4;GH;j;GH;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;Nh;CL;DV;CL;CL;DB;CL;CL;CL;OP$;KU%;I&;IĚ;CL*;N,;`:;OP.;P;CL;CL;OP;CL3;r v4; A6; Uf7; F8; HL9;s~:;u3;;{f<;x ;OP>;R?;K~@;IPA;P9;OPD;BE;JF;IzG;PA$;!R3;"Uf;LQs4;Ml ;P`';QFJ;Ru ;Sp ;TvW ;Vw !;YCL ;ZCL;[CL;]e ;`CL;b@`2;cA;eD;f~OI ;h;ir;kCL;lCL;mCL;nCL;pCL;sEvT;tH|;uKQ;xx:D ;{I ;}B;BM;Jx ;n;N;}h ;[c;T;yP;z$ ;P;O;M;f ;kf ;`;^ ;^;CL;CL;CL;CL;CL;OP;OP;OP;CL;R`;I{.;J;I;g ;g }e;hco`}f;ru M;'t` N;)D)\O;+IP;,H mQ;/SMYR;0RpS;1oXB T;2RzxV;3@VIX;5ErY;7K[;8q\;9I^;@a;Ax=qb;B{Rc;CwG;ECL;FCL;GCLg;In ;KCL;MCL;NCL;OCLm;zEn;}o;~y, ;CL;CL;CL;CL;CL;CL;CLw;s\x;Qzy;Q;OP{;C|;Uɨ};d~;^;A";Ex;q ~;OP;d |;CL;G+;N;Hm;MCu;CLt;CL;m ;y ;tw 5;I 6;H;OP;CL:;E;;IJs<;V[?;B#;OP;CLB;C C;A@JD; E;P >F;J >G;JHH;@s L;A >M;f N;EO;AP;AvmQ;G'R;FBT;PU;OV;I(-;OP;CLY;FݱZ;Bc; OP; CL];A ^;`~;OP;CLa;V ;OP;ACLd;CGe;EOPf;G^;HCLh;JFi;KM;MOPk;NN l;OO(m;PLzn;Qb o;T`L%p;V\ q;WW. r;YW s;ZNft;[PZou;\J&;]OP;_CLx;aIZy;bJz;dM9;eOP;gCL};jLO/~;kK;mLYa;nF;oOP~;qCL;sG;uNۡ ;vRFf;wUf;yRf;zCL ;G;CL;OP ;Mw;CL;CL;_R%;CL;CL;D;B;CL;CL;CL;LP ;s ;hS3;g;{ ;NR;Up;i!;g ";n#;Z$;M8%;P&;OB';JhJ(;Je ;CL*;JI+;^)/;CL-;G; OP; CL0; E1;J2;Q 3;R~M4;Jic;OP6;];CL8;M;CL:;I ; CL<;"G;=;$Mn;%OP;'CL@;*RIA;+L#B;,F;.CL;/CLE;1IH;3x II;6o J;7|K;8WZL;:Yuc ;H[;AM^;BI"d;mEV;nEV;pM;qI;rzJ;sJk;vLv;xIg;yME/;}r ;M ;E;RQ;;w;M<;Ny;mw0 ;K_<;K;CL;E;Ee;OP;CL;CL;CL;CL;CL;CL;CL;Ng;G6g;Ng;_ > ;_ > ;_ > ;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;Nf[;CL;D;CL;CL;D%;CL;CL;CL;OP$;Ke%;I&;I';CL*;N,;`+;OP.;Q;CL;CL;OP;CL3;r 4;A6;Z47;Ng8;J9; sk{:;5vfg;;6|Y<;7y;8OP>;9Q1?;:KF@;;IZA;CE;?JF;@IAG;APQ;EZ;F]3;GX ;Hl|a ;K^m;LFwp;Mu ;Nq ;PvK ;Qw !;TCL ;UCL;VCL;XiLl ;[CL;]@R;_B};`D;a~' ;bJ%;dreH;fCL;gCL;iCL;jCL;kCL;nEw;;oH;Qj;xWc ;I@ ;B=;BM;R+ ;qS3;O;} ;Z[;T;yP;z ;P?;O;L!;fb ;mff ;`;^Y;^;CL;CL;CL;CL;CL;OP;OP;OP;CL;R;Ixu;Jb;I; ~3; ~3}e;bB}f;r M; t+ N; !D1O; #J5P; $H:Q; 'SkR; (R#S; )of T; *S6V; +@*X; .EY; /K[; 0\; 1K(^; 4h_; 5@9`; 6@zBa; avb; by{c; ctG; eCL; fCL; gCLg; in ; lCL; mCL; nCL; oCLm; rEķn; u)o; vzr ; yCL; zCL; {CL; |CL; }CL; ~CL; CLw; yx; K\y; P; OP{; Dj|; Ti}; `U~; ^; @Z; F; u ~; OP; c |; CL; G[; N; Hˊ; N6u; CLt; CL; k ; y ; uV 5; I-6; H; OP; CL:; EV;; H<; Vv~?; B`; OP; CLB; CwC; @۟D; ~ E; OQF; K=qG; JH; @k5 L; @\M; eG N; DO; B P; AiQ; G:R; FT; P#U; OV; J2k; OP; CLY; G;Z; (B); *OP; ,CL]; .A^; 0`u; 1OP; 3CLa; 6V; 7OP; 9CLd; ;H ; =OPf; ?^; @CLh; BF~i; CL; EOPk; FNqi l; GIm; HG\)n; If o; L`qp; N[\) q; PU{ r; QU s; RNt; SP>u; TI; UOP; WCLx; YISy; ZSgz; \M\; ]OP; _CL}; bLnA~; KΫ; L|; Fq; OP~; CL; G'; N ; P; T; O; CL ; Gu; CL; OP ; c; CL; CL; _{; CL; CL; E ; B; CL; CL; CL; L ; s; i; jl; { ; L; R\; fR!; g "; \@#; J3$; Mv%; P)&; O '; J{a(; J; CL*; J+; _3; CL-; G-a; OP; CL0; EV1; I2; Q>3; R4; J; OP6; ]; CL8; MI$; CL:; H[; CL<; GX=; Mz; OP; CL@; "QA; #LB; $FG; &CL; (CLE; *IH; T@DI; WUI J; Xx_+K; YUjL; ZY ; ]EV; ^EV; _H ; aM^; bI"d; eEV; fEV; hM; iJ=(; jzJ; lJP; oO;~; qI; rL; ur ; wM ; xFN=; {P; }wz; ~Mo#; Ny; n#@ ; K\W; LN; CL; E:; E*; OP; CL; CL; CL; CL; CL; CL; CL; Ng; K0; Yg; _ > ; _ > ; _ > ; CL; CL; CL; CL; CL; CL; CL; ^; CL; CL; CL; Nb; CL; D; CL; CL; D̘; CL; CL; CL; OP$; Kp %; I&; H`; CL*; O ,; _3; OP.; QZ; CL; CL; OP; CL3; "r:4; $A6; 'L 7; (C8; )D9; ,rڊ:; -i3;; .i<; /p; 0OP>; 1Qw?; 2Ks9@; 3IZ A; 4Pƍ; 5OPD; 6C5E; 7JF; 8I*G; 9P; =Xvf; >[); ?V6g; @m ; C^; EF4; Fu ; Gq9 ; Hv ; Ix+ !; LCL ; MCL; NCL; Qf ; TCL; V@; WB?; El;  ; 1; ra; CL; CL; CL; CL; CL; Ey ; H; I; xt ; Iww ; B; C ; Kce ; r; O@; } ; ZS; T; yP; z ; Q; P; Ne; f ; hs3 ; `; [f; ^; CL; CL; CL; CL; CL; OP; OP; OP; CL; Rj; I,; J; IU; i\); i\)}e; mI}f; qX M; t{ N; D9 O; JE,P; HLQ; JShR; KR S; Mo T; NTPV; OB EX; QF 8Y; RL$[; SJ\; TJ}^; Xe_; Y@#`; Z@]a; \w >b; ]zc; ^u\*; `CL; bCL; cCLg; eo. ; gCL; hCL; iCL; jCLm; nEun; q4o; r{ ; tCL; uCL; vCL; wCL; xCL; zCL; {CLw; ~px; Ky; Pff; OP{; E|; R}; b_~; ^; @3; FA$; ouq ~; OP; e |; CL; G; N; HJ; Iu; CLt; CL; l5@ ; zO ; uƨ 5; I6; H; OP; CL:; E;; G<; Wh?; B'; OP; CLB; CμC; @XED; ~ E; LF;IG;LH;@rc L;@M;eG N;DO;BsP;AxQ;GR;FT;PxU;OV;I|;OP; CLY;"GQZ;#A;%OP;'CL];)A/^;+_!;,OP;.CLa;1VJ;2OP;4CLd;6H#;8OPf;:^;;CLh;=Fyi;>M;@OPk;BN l;CQm;DMzn;Ec o;H`p;J[ q;KS r;tU s;uNt;vP u;wJK;yOP;{CLx;}I{y;~R? z;M;OP;CL};L~;K;L;F ;OP~;CL;H;N5) ;Q&f;Ti;L;CL ;G} ;CL;OP ;m/3;CL;CL;^t;CL;CL;EZ;C ;CL;CL;CL;Mt ;r;i4;g;|5 ;L;S;g!;v33 ";\#;Hf$;M%;Q -&;O3';Jy(;J;CL*;JZ+;_ګ;CL-;G );OP;CL0;E1;H2;QtA3;Rԉ4;J;OP6;]; CL8; MzA;CL:;H[;Gu=;@MN;AOP;CCL@;FR0gA;GLͤB;HG;JCL;KCLE;MJH;NLI;O` J;PzK;QSL;SYIc ;VEV;WEV;XGe;ZM^;[I"d;^EV;_EV;aM;bJ=(;cz;eJk;hOl;jI*;kLm;nr ;pM ;qFN=;tLv;vwm ;wMJ;Ny;n ;Kb;M_;CL;EV;E;OP;CL;CL;CL;CL;CL;CL;CL;O;{;Ng;_ > ;_ > ;_ > ;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;Nd;CL;D;CL;CL;D;CL;CL;CL;OP$;K%;I&;G; CL*;O.},;`;OP.;Q.`;CL;CL;OP;CL3;r@d4;A6; L37;!F8;"N9;$q:;&hS4;;'oY<;(m ;)OP>;*Q4?;+KO@;,IPA;-P;.OPD;/CE;0JrF;1I|G;2O|;6Xc3;7[Ff;8VI;9l ;<`\9;=F;?u ;hqV ;iv( ;jx !;mCL ;nCL;oCL;qf& ;uCL;w@.;xB);yEG;zFv ;| %;}rl`;CL;CL;CL;CL;CL;Ey;H;Ln;x ;IDD ;C;C ;O" ;nS3;OH;~ ;Ze;U ;y7;z ;P;PA;M;g ;k@ ;`Ff;[ ;^;CL;CL;CL;CL;CL;OP;OP;OP;CL;Ro;I;J;I;h;h}e;|a4}f; qlO M;;tF N;>DGOO;?JP;@H`iQ;CSoR;DRS;Eo7 T;FTV;HB%X;JF"|Y;KL[;L#\;MI^;Pb%_;R@8`;S@?a;Utb;Vwc;Wt(;YCL;ZCL;[CLg;^o ;`CL;aCL;bCL;cCLm;fE:n;i@#3o;k|+ ;CL;CL;CL;CL;CL;CL;CLw;tx;Iy;O;OP{;E:|;Sх};_ݭ~;^;@˽;F;r1 ~;OP;d |;CL;G;NQ;H;Pu;CLt;CL;jbN ;y`B ;t 5;I!O6;HƐ;OP;CL:;FR;;G<;Vۢ?;B;OP;CLB;DC;D;~> E;NF; IG; QH; @W L; @\M; e N;DO;B+?P;AQ;GeR;FvT;P:U;PV;I f;OP;CLY;GXZ;B ;OP; CL];"B)^;$_3;%OP;'CLa;*V2?;+OP;-CLd;/H9Q;1OPf;3^;\CLh;^Fi;_Vߑ;aOPk;bNת l;cNm;eIn;ffQ o;i`p;kYff q;lTff r;mU\ s;nNt;oOu;rJ;sOP;uCLx;wIky;xOz;zM#;{OP;}CL};L~;L;L;G;OP~;CL;HU;M ;QL;T;M@;CL ;G;CL;OP ;cq;CL;CL;]\;CL;CL;DQN;A;CL;CL;CL;L ;t;ky;jl;{ ;L;S;g!;f ";Xf#;I$;Mƶ%;Q&;O,';J(;JV;CL*;JP+;_;CL-;G} ;OP;CL0;F 1;$P2;&Q3;'S4;(J+;)OP6;+];,CL8;/Ma;1CL:;3IS;6CL<;8G:=;:M>;;OP;=CL@;@R;A;AL0B;BF;DCL;ECLE;GJ<H;HO-|I;Ji J;K{+ K;LTNL;MYuc ;PEV;QEV;RH*;TM^;UI"d;XEV;YEV;[M;]I-;^{#;_Jk;Lv;IZ;Lû;r ;M ;FN=;Lv;wN;MC];Ny;n ;Kc;K;CL;E;D;OP;CL;CL;CL;CL;CL;CL;CL;Pf;L);X<;_ > ;_ > ;_ > ;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;Nd;CL;D;CL;CL;D;CL;CL;CL;OP$;KZ%;I&;GV;CL*;O2%,; `29; OP.; Q-; CL;CL;OP;CL3;rd4;A6;Q&f7;I8;V9;p:;!g4;;"lf<;#k;$OP>;%Q><?;&K,@;'IEA;PPO;QOPD;RCE;SJRF;TIlgG;TO;XU ;YW;ZRFf;[l~ ;_`:;`F4;av ;bqt ;cwl ;dxP !;gCL ;iCL;jCL;lf ;oCL;q@;rB;sDZ;t~ ;wzy;xr;zCL;{CL;|CL;}CL;~CL;Ey;H;L];x0 ;Is3 ;B;C ;M+ ;n`;O8A;~# ;Z;U<;y7;z ;PW;Og;M2;g>? ;hD ;``;[f;^;CL;CL;CL;CL;CL;OP;OP;OP;CL;R;I;JJ;I;h;h}e;we}f;o M;6tb N;8D^O;9JDuP;:HtQ;=S{ R;>SS;@o T;ASV;BA|X;DFUY;EL?[;FI\;GJH^;KhZ_;L@\r`;M@,ca;Ov*b;Py\c;Qs;SCL;}CL;~CLg;p ;CL;CL;CL;CLm;E&n;o;{ ;CL;CL;CL;CL;CL;CL;CLw;qfgx;I\y;PW ;OP{;E2Y|;Ss};b]~;^;@F;F ;q ~;OP;ci |;CL;G;O;H~;Gu;CLt;CL;jw ;yM ;tO 5;I g6;Ht;OP;CL:;E;;FN<;V~?;C/;OP;CLB;DnQC;~_D;\] E;NF;KG;EH;@ L;@M;eG N;DO;B<P; AhQ; G R; FaT; PU; PtV;Gw;OP;CLY;F:Z;EV;OP;CL];B^;D`g;EOP;GCLa;JVڃ;KOP;MCLd;OH*;QOPf;S^;TCLh;VFi;WV ;YOPk;[Nߘ l;\Jzm;]En;^a o;a`p;c]ff q;dW\ r;eX=q s;fN]t;gOlu;hK;jOP;lCLx;nIΘy;oMDz;qMN;rOP;tCL};wL]~;xL;;yL};zH';{OP~;}CL;Ik;M} ;Q;Tɚ;K;CL ;G̶;CL;OP ;i;CL;CL;]Ku;CL;CL;C;AW;CL;CL;CL;L ;w@;l&f;h,;{ ;x ;A ;F\ !;d34 ";Q#;C$;M%;Pt&;O3';J'(;I; CL*;I+;^m;CL-;Hd;OP;CL0;F1;M+e2;Q"3;S64;Ie; OP6;"];#CL8;&L;(CL:;+K;-CL<;/HVF=;1M0;2OP;4CL@;7QA;8L2B;9E3;;CL;I>H;?NI;@n? J;BN3 K;CVWL;DY ;GEV>EV>Go>M^> I"d> EV> EV>M>J=(>{G>Jk>O;~>IE>L&>r >M >EIN>"K8>$v>%M&.>&Ny>'n{b >(K>)J|s>+CL>/Ee>0Dְ>1OP>3CL>4CL>5CL>6CL>7CL>8CL>:CL>eNg>fG6g>gX>h_ > >i_ > >j_ > >lCL>mCL>nCL>oCL>qCL>rCL>sCL>t^>uCL>vCL>wCL>yN`>{CL>}D{>CL>CL>Du>CL>CL>CL>OP$>K%>I&>F>CL*>O/g,>` >OP.>Q%>CL>CL>OP>CL3>r4>A6>Jg7>K8>F39>o2:>ns3;>mS4<>r>OP>>P?>K@>I;A>PA>OPD>D)iE>J06F>IZ4G>Oj+>[3>^3>X>lh >]>F*>vq >w4 >x !>CL >CL>CL>g >CL>-@b>.BE>0E>1~ >2{>4rY8>6CL>7CL>8CL>9CL>;CL>>Ey >?H>@L->CxP >FI; >HB>ICU>KK >Nr3>QO!Y>T~ >VZF>WU->Zy7>[{ >]Pm>_OD>`L>cgX >ffD >g`3>Yy>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>Rfs>I>J>Ii>{>{}e>2WK}f;p~ M>t` N>DiO>JP>HQ>SR>S";S>o T>TXV>BX>FsY>LI[>Ց\>J^>g6_>@x`>@0a>u\*b> w{c> r> CL>CL>CLg>p >CL>CL>CL>CLm>Ezn>o>{ > CL>!CL>"CL>$CL>%CL>&CL>'CLw>*qx>+MGy>,P>.OP{>/E|>XS}>Y^{~>[^>]@>_F>co ~>eOP>hbl |>jCL>mG>oO >pHm>sLu>uCLt>vCL>yj >zx >{t- 5>}I<6>~H>OP>CL:>E;>E<>V?>CJ>OP>CLB>DC>}4D> E>K\)F>IpG>K=qH>@ L>@pM>eG N>DO>BNP>AQ>GR>FT>PU>PV>G>OP>CLY>FZ>El>OP>CL]>Ca^>a>OP>CLa>W>OP>CLd>H*>OPf>^>CLh>Fii>U>OPk>N l>Hm>C n>d o>ap>[ q>U r> V s>!Nt>#Ou>$K#:>%OP>'CLx>)Iy>*L4z>,Mk>-OP>/CL}>2LJ~>3LR>4M5>5GK>7OP~>9CL>;I/>=M >>Pٚ>?Qɚ>@Lg>BCL >DG̶>GCL>JOP >M]?>PCL>QCL>T^L>VCL>WCL>YC4>ZAE>CL>CL>CL>L >B`>>d>|Lh >L>Tz>h!>b3 ">S#>E$>Mғ%>P&>O '>J/(>J.>CL*>I+>[/>CL->H2>OP>CL0>F1>KU2>Q"3>SV4>I>OP6>]>CL8>M>CL:>Kc>CL<>Ha=>M">OP>CL@>Q9A>LWB>F]t>CL>CLE>I{H>L;I>`~w J>\K>VL>Y >EV>EV>G>M^>I"d> EV> EV> M>I>zJ>Jk>Lv>I*>L7>r >M >Eo> S>"v>#M >LNy>MoE >OK>PJԭ>RCL>UE>VAGu>WOP>YCL>ZCL>[CL>\CL>^CL>_CL>`CL>cNg>dL<>ePg>f_ > >g_ > >h_ > >jCL>kCL>mCL>nCL>oCL>pCL>qCL>r^>sCL>tCL>vCL>wN_#>yCL>|D>~CL>CL>D>CL>CL>CL>OP$>Kx%>Iþ&>Q>CL*>O0R,>_S>OP.>Q>CL>CL>OP>CL3>r4>A6>H47>Gٚ8>C 9>n:>a;>j3<>i>OP>>P\?>JV@>I/9A>O>OPD>DE>JF>IHG>O;>T>WL>R >l >_p>F>vY >q >wna >y1 !>CL >CL>CL>h6 >!CL>#@>$BUZ>%C>&c >(>)r(D>+CL>-CL>.CL>/CL>0CL>3Ey >4H|>5Pz>8xo >>B>?C>@O^ >Cp)>FO />I~# >KZ5>LU`>xy7>y{ >{PX>|Oe>}LF>gn >eQ >`3>Z6f>^>CL>CL>CL>CL>CL>OP>OP>OP>CL>RS1>I:>J3>IR>l>l}e>(jrI}f>ypt N>DrO>KkP>HQ>SER>SS>o T>T;V>B,X>FvnY>L[>\>J ^>d_>@U`>o a>uzb>vc>rǯ>CL>CL>CLg> o > CL> CL>CL>CLm>Ek9n>o>z >@CL>BCL>CCL>DCL>ECL>FCL>GCLw>J|x>LNy>MP8R>NOP{>ODR|>PUp}>Qb@\~>S^>V@>XFz>[w ~>]OP>`d}[ |>bCL>fG>gO >hH>kPSu>mCLt>oCL>qk >ry = >stw 5>uI6>wH>xOP>zCL:>E;>E<>VD?>C>OP>CLB>DC>{D>P E>MF>GffG>LQH>@- L>` M>eN>K O>B[P>AQ>GR>F"T>Q U>PV>G>OP>CLY>FqZ>F(>OP>CL]>C>^>`z>OP>CLa>W>OP>CLd> H*> OPf>^>CLh>FTi>TW>OPk>N l>Im>Hzn>d o>aip>W q>Rff r> Sp s>!Nt>"O.u>#K0>$OP>'CLx>)J3y>*Jz>,M>-OP>/CL}>2LIg~>3Lh>4Mu>5GY>6OP~>8CL>:I{>=M9 >>N3>?O>@I>BCL >lH>oCL>rOP >uLB>wCL>yCL>{^X>}CL>~CL>BM>@p>CL>CL>CL>L >D@>A@>f>|s? >NR>S>g!>efg ">Tf#>Dٚ$>M %>P}5&>O>'>J"Q(>Ja>CL*>I{+>]>CL->Hk>OP>CL0>Fm1>JZ2>Q&3>Si<4>I$>OP6>]>CL8>Lw>CL:>LՑ>CL<>I =>M>OP>CL@>QA>LB>EV>CL>OPE>IH>KpI>] J>M0qK>UL>Y >EV>EV>Go>M^> I"d>4EV>5EV>7M>8I>9{G>;Jk>>O;~>@I>ALG>Dr >FM >GEZ>JQ>Lv>MM>NNy>Pp >QK>RJԭ>TCL>WE>XA>YOP>[CL>\CL>]CL>^CL>`CL>aCL>bCL>eNg>fG6g>gYI>h_ > >i_ > >j_ > >lCL>nCL>oCL>CL>CL>CL>CL>^>CL>CL>CL>Nd0>CL>D>CL>CL>D̘>CL>CL>CL>OP$>K%>I0&>Po>CL*>O*,>_>OP.>Q>CL>CL>OP>CL3>r4>A6>y337>v338>w9>nA:>f;>jff<>i>OP>> P|?> J@> I&A> O> OPD> D\E> IkF> I7G> O/> Yg> [f> V#4> l& > `> G!> vR > qˈ > w3 > yz !> CL > CL> CL> gd > #CL> %AAh> &B5> 'A2> (: > *)> +r> .CL> /CL> 0CL> 1CL> 2CL> 5E}> 6H> 7I> cx > fI; > hB+> iC > jJi" > mr#3> pN> s~@ > uZ(> wT> zy7> {{= > }Pg]> ~O{> M̓> h > fb" > `@> Z3> ^> CL> CL> CL> CL> CL> OP> OP> OP> CL> RN> I> Jb> I> h> h}e> *iXd}f>qqm M> t N> DwO> K P> HRQ> SR> S>S> o+ T> TPV> B{^X> F+Y> Ld[> \> Hi>^> a[_> (@`> )@pa> +y#b> ,{Rc> -tH> /CL> 0CL> 1CLg> 4p > 6CL> 7CL> 8CL> 9CLm> ?9o> A{ > CCL> DCL> ECL> FCL> GCL> HCL> JCLw> Mzx> NPy> OO> POP{> QEA|> RR}> Sa=~> V^> X@> ZF5> ]s ~> _OP> cch |> CL> G@> O(> H> Hju> CLt> CL> ky > y > tP 5> I$6> H6> OP> CL:> EO;> Db<> V6?> Cn<> OP> CLB> E*C> yD>  E> MF> GHG> KH> @6 L> `z M> fRN> LQ O> BiP> AQ> GR> FT> Q U> PV> G]> OP> CLY> FxCZ> D> OP> CL]> C>^> _3> OP> CLa> W OP> CLd> H#> OPf> ^> CLh> FEi> ST> OPk> Nl l> E33m> C n> a: o> ap> X q> Q r> S{ s> NĂt> Ou> K(I> OP> !CLx> #JPy> $Saz> &My> (OP> *CL}> ULM~> VL{> WM'> XG.> YOP~> [CL> ]IL\> `M > aO> bP#3> cJp> eCL > gH@> jCL> lOP > owp> rCL> sCL> v^[> xCL> yCL> {C:> |B> CL> CL> CL> L > Y3 > L33 > O > |[ > L> Tz> g!> ^ "> R33#> C$> M%> Pn&> N'> IV(> JA> CL*> IΘ+> _> CL-> G'> OP> CL0> F/1> I{Q2> Q3> Srk4> I> OP6> ]> CL8> M:> CL:> K)> CL<> I(-=> Mu> OP> CL@> RA> LB> F> CL> OPE> IH> JyI> g J> !HLK> #VڜL> $Y > &EV> (EV> )H*> +M^> ,I"d> /EV> 0EV> 2M> 3J=(> 4{Q> 5Jk> 8Ol> ;IZ> ?r > AM > BE> EO> Gv> HM > INy> Jp > KK> LJԭ> OCL> RE&> SF> TOP> VCL> WCL> CL> CL> CL> CL> CL> OP> G6g> Pg> _ > > _ > > _ > > CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> NaM> CL> D> CL> CL> EZ> CL> CL> CL> OP$> K%> I0&> Oɖ> CL*> OG*,> _H> OP.> Q2> CL> CL> OP> CL3> r64> A6> Fl7> }@8> @9> mu:> c&g;> k4<> k3> OP>> P[?> Jȉ@> I0A> O> OPD> CE> ItF> I()G> NQ> X<> [3> V> l > ^:C> G`> vt > q > wt > y] !> CL > CL> CL> h > CL> HA^v> IB> JA> K@> M> Nr2> PCL> RCL> SCL> TCL> UCL> XE> YH> ZN}> ]y > aH" > cBw> dCU> eRJ > ho3> kN݋> n~] > pYՅ> qT> uy7> v{LS > xPc> yO> zLLK> }hb > kww > `f> Z3> ^> CL> CL> CL> CL> CL> OP> OP> OP> CL> R:n> I8> Jx> I8> hp> hp}e> Mj}f> p M> t N> DO>JRP>H\Q>S&R>ST%S>o+ T>TtV>BX>FY>Lb[>r\>Ir^>!hP_>"@`>#@ea>&ub>'wc>(t>*CL>+CL>,CLg>.p@# >1CL>2CL>3CL>4CLm>7Ehn>:o>;{׷ >>CL>?CL>@CL>ACL>BCL>CCL>DCLw>Gqx>IN=qy>JO#>KOP{>tEb"|>uRTb}>vaq~>x^>{@>}F >q9 ~>OP>d4a |>CL>Gx>O,>H>N0 u>CLt>CL>kdZ >yZ >t7L 5>I-6>HM>OP>CL:>D;>C<>V?>C>OP>CLB>E]C>xD>- E>KF>KG>NH>@ L>`z M>fRN>K O>B|P>B Q>GoR>FT>PU>PV>F>OP>CLY>FTZ>E>OP>CL]>D^>^O>OP>CLa>VC>OP>CLd>Ge>OPf>^>CLh>F/i>RB> OPk> N l> G=qm> En>f o>ap>[\) q>=W r>>W s>?Nt>@OSu>AKM>BOP>DCLx>FJty>GS z>IM>JOP>LCL}>OL~>PL$>RM%>SGgR>TOP~>VCL>XIb>ZMg >[Of>\U3>^HVg>_CL >aH9Q>dCL>gOP >jan>mCL>nCL>q]>sCL>tCL>vD>wA<>CL>CL>CL>LM >a >[33 >W >|Ȭ >L>Up>h!>\ff ">Qf#>B$>M%>Pj&>N'>J(>J>CL*>Ik+>_>CL->H#>OP>CL0>G&"1>H`s2>Q3>SG4>I[>OP6>]>CL8>M>CL:>Li2>CL<>Ib=> Ml> OP> CL@>RkA>LLB>Fi>CL>OPE>I֍H>HI>m4 J>ChK>W-&L>Y >"EV>#EV>$H >&M^>'I"d>*EV>,EV>.M>/J=(>0{T>1Jk>4Oe!>6J>7LG>:r >=E>hLv>kv>lMk>mNy>np >oK>pJ\>rCL>uE>vC>wOP>yCL>{CL>|CL>}CL>~CL>CL>CL>P>NVf>Yg>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N[>CL>D2>CL>CL>Dg>CL>CL>CL>OP$>K%>IƢ&>O">CL*>OH,>^s>OP.>Q,6>CL>CL>OP>CL3>rU4>A6>Kf7>B&f8>C39>m:>c4;>k<>mS4>OP>>P>?>J@>I,A>Ob;>OPD>BE>IgF>ImG>NY>Z>]|>Wf>lf >1[>2G3>3v >4rs >5x# >6y !>9CL >;CL>>g >ACL>CA>DBrd>E@b>Fc >I|c>Jr0>LCL>MCL>NCL>OCL>PCL>SED>UHo>VI5>Yy#; >\Hٚ >^B>_C'>`JY >ct>gN>j~z >Y>T>y7>{in >PF0>Oͻ>M>h >kU >`3>Zf>^>CL>CL>CL>CL>CL>OP>OP>OP>CL>R+>I >JK>I>h>h}e>Ir-K}f>p M>t7K N> DO> JJ)P> HQQ>SR>S^S>of T>T%gV>B;0X>FY>Lc[>\>I^>ea_>@r`>@a>!v\b>"wc>#uz>%CL>'CL>(CLg>*p0 >,CL>-CL>.CL>/CLm>3EZn>^o>_{/ >aCL>bCL>cCL>dCL>eCL>gCL>hCLw>k|{x>lLQy>mNf>nOP{>oE|>qRd}>r`~>t^>v@|1>xE#>{w_ ~>~OP>c |>CL>Gi>OK$>H>Ku>CLt>CL>l >zC >t 5>I/6>H>OP>CL:>DY;>C7<>V8?>C>OP>CLB>EC>~I,D>& E>KF>I34G>MH>AP L>`z M>eN>K O>BP>B-Q>GR>F˕T>PU>O"V>F>OP>CLY>FZ>E>OP>CL]>D%^>]z>OP>CLa>&V>'OP>)CLd>+Ge>-OPf>/^>0CLh>2F!Oi>3Q>5OPk>6N l>7HHm>8Fn>9eu o>>]8R q>?W\ r>@Wf s>BN2t>COZu>DKr>EOP>GCLx>IJy>JR}#z>LM>MOP>OCL}>RLz~>SL>TM*F>VGp>WOP~>YCL>[I>]MT >^O)>_M>G>CL >G>CL>OP >EE>CL>CL>\n>CL>CL>C>A>CL>CL>CL>Lp >_3 >Sfg >NL >} >xz >A >G > !>m33 ">Zs3#>I$>M%>PDy&>Nu'>KWy(>I@>CL*>Ha+>`D\>CL->H[>OP>CL0>G-a1>QQ%2>Q`3>S4>I^s>OP6>]>CL8>L>CL:>L>CL<> I=> MG> OP>CL@>R 6A>LB>F>CL>OPE>I.H>GrI>i J>@aFK> VsL>"Y >$EV>%EV>'G>QM^>RI"d>UEV>VEV>XM>YJ=(>Z{%>[Jk>^O;~>`I>aL>er >gM >hE>kLv>mvO>nM>oNy>pp >qK>rIB}>tCL>wEv>yED>zOP>|CL>}CL>~CL>CL>CL>CL>CL>Og>N>Ng>_ > >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N]>CL>D>CL>CL>D>CL>CL>CL>OP$>K%>I&>Ng>CL*>OV,>^:>OP.>Q%>CL>CL>OP>CL3>r4>A6>N7>R38>S39>l:> i;>!l9<>"pY>#OP>>$P%?>%J@>&IUA>'O/>(OPD>)C|E>*IqF>+IjG>,N5>/YS3>0\I>1Vf>3l >6Y>7GE>8vI >9r1 >:xWc >;z7 !>>CL >@CL>ACL>Chb >FCL>HA+>IB+>J@b>Kr >NH>OrF>QCL>RCL>SCL>|CL>}CL>E>HgR>M>y1 >HD >BM>C/>Q >n3>N>~s >Y>T>y7>{ >P>O>K>h >jj >`3>[f>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>Q>I>J>I|>h>h}e>Nk}f>qb M>tE N>DO>JP>HQ>SR>S^S>o T>TIV>BBQX>EFbY>FL [>Gr\>HJ^>Kb%_>L@`>N@a>Pu\*b>QuRc>Rrg>TCL>UCL>VCLg>Xp >[CL>\CL>]CL>^CLm>aEGn>d@o>e{D >hCL>iCL>jCL>kCL>lCL>mCL>nCLw>rux>sMW y>tPH>uOP{>vE|>wSS}>x_g~>{^>}@f>E>m7 ~>OP>e,| |>CL>Go>ON>H5>Jhu>CLt>CL>l3 >y >u?} 5>I16>H>OP>CL:>DnQ;>B<>V:?>C>OP>CLB>EC>AdD>L E>JF>JG>I34H>AA L>_ M>dN>JH O>B#P>B.&Q> GR>FӍT>P U>O<V>F_>OP>CLY>FRZ>G4>OP>CL]>D^>_> OP>"CLa>%V>&OP>(CLd>*G>,OPf>.^>/CLh>1Ei>2P\>4OPk>5Om l>6Kpm>7In>9bf o>;aډp>>\q q>?V3 r>@W s>ANt>BOu>CK>DOP>FCLxBJ yBQ.TzBMmB OPB CL}BK/~BLiBM3fBGBOP~BCLBIBMI BR BM4BGٚBCL B GBB#CLB&OP B)g>B,CLB-CLB/\buB1CLB2CLB5DB6BGB9CLB:CLB;CLBfL Bg` Bh[ BiU Bl}s} BnNRBoVffBph!Bqkff "Br^g#Bs $BtM%BuP &BvOL'BxK#(ByIqB{CL*B}H+B~_PBCL-BHBOPBCL0BG1BL]2BQo3BSG4BI%HBOP6B]BCL8BLRBCL:BN@BCLCLBANgBB{BDNgBE_ > BF_ > BG_ > BICLBJCLBKCLBLCLBMCLBOCLBPCLBQ^BRCLBSCLBTCLBVN\BWCLBZD&B\CLB]CLB_DBbCLBcCLBdCLBfOP$BgK%BI&BMqBCL*BOb,B^rBOP.BQ/BCLBCLBOPBCL3Bs4BA6BJ@7BQ8BTL9Bl :B_&f;BdBO$?BJ@BHABO%BOPDBCEBIMFBH9GBN|BW BY,BS3Bl BWzoBGEBwl Br@3 Bx Bzcz !BCL BCLBCLBhb BCLBABBcB@gvB~' BtzBrDB CLB CLB CLB CLBCLBEBHS_BKBy@Y BF" BBBC6]BK B"rɚB%NmB(~Ü B*Y:kB+TAB.y7B/{ BYOBZOB\M2B_i= BbpDD Bc`Bd[Be^BfCLBhCLBiCLBjCLBkCLBnOPBoOPBqOPBsCLBvQBwIBxJBzIB}sqBsq}eBTU}f>r MBt+ NBDOBK EPBHgQBSRBSpSBof TBTXVBBXBF`YBLTK[Bץ9\BHԟ^Bh3_BAU`BA DaBubBx\cBrzBCLBCLBCLgBp BCLBCLBCLBCLmBEKnBgoB{/ BCLB CLB!CLB#CLB$CLB%CLB&CLwB)r xB*N\yB+MB-OP{B.EX|B/S}B0_~B2^B4@PB6Ew'B:vt ~B B>_ > B?_ > BACLBBCLBCCLBDCLBECLBFCLBHCLBI^BJCLBKCLBLCLBNNY]BOCLBzD#?B|CLB}CLBEOBCLBCLBCLBOP$BK^%BIɈ&BMBCL*BOk,B^BOP.BQ%BCLBCLBOPBCL3Bs'4BA6BY7Bp 8B@ 9Bk:Bc;BgBO?BJw@BHABNBOPDBC*EBI+FBHGBN]BVBY@BT3Bl BULuBGi~Bw4 Br]\ Bx Bz !BCL BCLBCLBg>? BCLBAHBB5BBcB BJBrOJBCLBCLBCLBCLBCLB EB H<B N@By]w BIDD BBBC'BMR BBoBENVBH~' BJX}BKTBNy7BO{/ BQOBSOBTK VBWixB BZiD B[`B\ZfB]^B^CLB`CLBaCLBbCLBcCLBfOPBgOPBiOPBkCLBnQkBoIBpJBrIBuhpBxhp}eBom}fBPr MBt+ NBD1OBJPBHQBSRBStSBo۔ TBSVBAXBFYBLa[BΤE\BIq^Bf_BA1`BAaBsbBvQcBr>BCLBCLBCLgBp B CLB CLB CLBCLmBEAnBoB{ BCLBCLBCLBCLBCLBCLBCLwB!~=qxB"PGyB#PuB$OP{B&D΂|B'SC}B(_~B*^B,@IB.E|B2u ~B4OPB7eI |B9CLBFBGGB\ffHBAq LB`z MBfRNBLQ OBBPBB[QBGBRBF TBPNUBO^VBFBOPBCLYBEZZBGxBOPBCL]BE@^Be]sBOPBCLaBYrBOPBCLdBGBOPfB^BCLhBEѕiBNBOPkBO lBImBFHnBd3 oBaqpBY qBSH rBT sBNtBOuBKBOPBCLxBJyBM#pzBMYBOPBCL}BKc~BLŭBML BHSaBOP~BCLBJ˽B M& B RB N3B4HB6CL B8G0B;CLB>OP BAOBDCLBECLBH]BJCLBKCLBMCBNABQCLBRCLBSCLBVL' BWff BX] BY[ B\}7 B^JHB_R\B`g!Ba\ff "BbQL#Bc $BdN >%BeP&BfN5'BgL%5(BhIBjCL*BlH+Bm]$BCL-BHBOPBCL0BG} 1BJa2BQ43BS_#4BI1BOP6B]BCL8BLAtBCL:BM\BCL B 5_ > B 7_ > B aCLB bCLB cCLB dCLB eCLB fCLB gCLB h^B jCLB kCLB lCLB mNZB oCLB rDB tCLB uCLB wDnQB yCLB zCLB {CLB ~OP$B KA%B I&B LaB CL*B Om,B _aB OP.B Q.`B CLB CLB OPB CL3B sa4B A6B Dfg7B g8B Gf9B k-:B a;B iB O7?B Jr@B H[AB N#B OPDB B>EB IFB H{GB NCB ZəB ]|B X)B m B Q9B G*B wQ? B rz B x B z[ !B CL B CLB CLB gJ B CLB @B BB DB 7 B MB rTAB CLB CLB CLB CLB CLB )EB *HU/B ,IJ0B /yz B 2I&f B 4Bk!B 5C B 6M B 9tfB B UG B V_ > B YCLB ZCLB [CLB \CLB ]CLB ^CLB _CLB `^B aCLB cCLB dCLB eN\B gCLB jDB lCLB mCLB oDB qCLB rCLB sCLB vOP$B wK'%B xI˳&B {KB }CL*B O_,B ^.B OP.B Q,B CLB CLB OPB CL3B sX4B A6B Ay7B @Ff8B My9B j:B d34;B jB O7?B Jd1@B H:AB N9B OPDB B>EB Im*FB HdGB N#8B ZB ]9B X4B m B NB G{oB wna B r B y#; B { !B CL B CLB CLB fm B CLBAlBB=BEB@}BB;Br\BCLBCLBCLBCLBCLB!E~vB"HB#Q%B'y# B*Hf B,BFB-CDB.Kr B1oٚB4N1aB7~; B9W1B;SB>y7B?{a BAO BBOoBCKBFj ^ BIhQ BK`BtZfBu^BvCLBwCLBxCLByCLB{CLB~OPBOPBOPBCLBQ+BIWBJBItBh(Bh(}eB]}fB gr MBt NBD{OBIpPBHdQBS/RBS>SBof TBRzxVB@dXBFOYBL%[B-B\BK2}^Bg_BA\r`BAaBu\*bBx>cBt4BCLBCLBCLgBp BCLBCLBCLBCLmBE;TnB`oByw1 BCLBCLB CLB CLB CLB CLBCLwB|xBMHyBRBU#}B?eo~BB^BD@;BFEqaBIvܹ ~BKOPBOb |BQCLBTG=BUN4BVHBYOuB\CLtB]CLB_n B`z1' Bau 5BdI/6BeIBfOPBhCL:BjD- ;BkN\E{}B?E*B@OPBBCLBCCLBDCLBECLBGCLBHCLBICLBLPBMG6gBNPgBO_ > BP_ > BQ_ > BSCLBUCLBVCLBWCLBXCLBYCLBZCLB[^B\CLB^CLB_CLB`NZBbCLBeD BgCLBhCLBiDuBCLBCLBCLBOP$BKp %BIQ&BKBCL*BOL,B^BOP.BQ1BBCLBCLBOPBCL3Bs4BA6BF 7Bus38BI 9Bj{:Bh;BiBOW?BJQ@BH6ABNZBOPDBBɀEBIZ FBHGBM;B]əB`gBZBmd BL7BG0Bw Brn By]w B{= !BCL BCLBCLBhׄ B CLB ALB BBDZB@gvBBrBCLBCLBCLBCLBCLBEDBH$BQB"y B%H B'BrdB(C/B)QO B,oB/NB2~ B\WNAB^S_Bay7Bb{ BdObBeOBfKBijD Bloٚ Bn`fBo]Bp^BqCLBrCLBsCLBtCLBvCLByOPBzOPB{OPB}CLBR BI(BJBIpJBi=qBi=q}eBe}fB_sϖ MBtb NBDWOBJPBH]QBSRBS>SBo۔ TBTmVBBWXBFYBL9 [Bᤂ\BJl^Bg{_BAc`BA DaBtfgbBvcBq{BCLBCLBCLgBp( BCLBCLBCLBCLmBEInB&IoB({ B*CLB+CLB,CLB-CLB.CLB/CLB0CLwB4zfgxB5LyB6NRB7OP{B8E\|B9R}B:aV~B=^B?@3BAEw'BDouq ~BFOPBJcm |BLCLBOG7BPNqBQHBTG4uBWCLtBXCLBZl3 B[z1' B\u\ 5B_I26BIBOPBCL:BDJ;BM|CLB?CLB@CLBBCLBCCLBDCLBGNgBHLBIPgBJ_ > BK_ > BL_ > BNCLBPCLBQCLBRCLBSCLB|CLB}CLB~^BCLBCLBCLBN_BCLBDBCLBCLBDBCLBCLBCLBOP$BKwS%BI}&BJeBCL*BO>,B]kBOP.BQ$HBCLBCLBOPBCL3Bs4BA6BE7Bf8BE39BjC:B`3;Bf4BP?BJF@BHABN3BOPDBBEBIMHFBHGBNBXfB[BVٚBmI BJBG0Bw Br By B{w !BCL BCLBCLBgn BCLBA BBB B+B @QB }]B rBCLBCLBCLBCLBCLBE|BHBMBEy BHI BJB5BKC/BLK7< BOr9BRN BU~; BWVBYSUB\y7B]| B_OrB`O~BaM]Bdj Bgp Bha Bj^3Bk^BlCLBmCLBnCLBoCLBqCLBtOPBuOPBvOPBxCLB{R B}IWB~JBImB{B{}eB Wh}fBZr: MBu " NBD/OBKPBH~QBSRBSSBo+ TBTVBBt<XBFHYBLg[B٤\BH^Bdo_BAx`BA DaBt >bBw8RcB r\BCLBCLBCLgBp BCLBCLBCLBCLmBEJnBoB| B"CLB#CLB$CLB%CLB&CLB'CLB(CLwB,r\*xB-KǮyB.O)B/OP{B0E]|B1R{}B2as~B5^B7@3B9EABOPBAe |BDCLBGG:aFOFH)FM~uF CLtF CLFk Fzu Fu 5FI26FHFOPFCL:FDJ;FLG} F@OPFBCL0FDFݱ1FELy2FGPޢ3FHRR4FIJFJOP6FL]FMCL8FPMAFRCL:FTJPFWCL F_ > F_ > FCLFCLFCLFCLF CLF CLF CLF ^F CLFCLFCLFNZFCLFDFCLFCLFD%FCLFCLFCLF"OP$F#KU%F$I&F'IĚF)CL*F,O),F-] F.OP.F/PFYCLFZCLF]OPF_CL3Fasf4FcA6FfJS37Fgig8FhDf9Fkj:FmdL;Fnj`FqQ?FqJ7@FrHAFsNFtOPDFuBEFvI?FFwHGFxNF|Z0F}]gF~XgFn FIFG0Fwt Fr+ Fy] F{ !FCL FCLFCLFhJ FCLFAeFB5FA/F^ F”9FrșFCLFCLFCLFCLFCLFE{FH(FNFy FG FBEFCL!FP(z Fo3FMOF~ FVFSk4Fy7F|& FOJFOeFLFjH Fo F`F ]3F!^F"CLF#CLF$CLF%CLF'CLF*OPF+OPF,OPF.CLF2RF3IF4J~F5IcF8hF;h}eFo!}fFq MFYt NFDvOFJ PFH\QFSRFSSFo TFTVFB%XFFYFL\[F\FJ^Fay_FAU`FAaFugbFxgcFs*FCLFCLFCLgFp_` FCLFCLFCLFCLmFE?nF@S3oF| FCLFCLFCLFCLFCLFCLFCLwF}fgxFN\)yFQFOP{FDǮ|FS}F_>~F^F@3FEFsrb ~FOPFd |FCLFG;IFOFFHFM uFCLtF CLF kV F z J F uE 5FI.6FHMFOPFCL:FDQN;FL F_ > F_ > FCLFCLFCLFCLFCLFCLFCLF ^F CLF CLF CLFNdFCLFDFCLFCLF@D%FBCLFCCLFDCLFGOP$FHKo%FII&FLI'FOCL*FQO?,FR\FSOP.FTPFVCLFWCLFZOPF\CL3F_s4FaAH6FcSy7FdE8FeO9FhiO:Fjhٚ;FkjgFnR?FoJ(@FpHGAFqMFrOPDFsBEFtI.PFFuHxGFvOFyZFz^c3FX Fm FHFGYFx Fs T Fy F{H !FCL FCLFCLFhb FCLFAFB\FA Fc FFrFCLFCLFCLFCLFCLFEtFH`FIvFy{ FI; FBFCScFL] Fo3FMF ~' F V]eF SUFyF|C FOxFOFM.FkQ Fl F`fF]ٚF^FCLF CLF"CLF#CLF$CLF'OPF(OPF)OPF,CLF/QF0IrF1JzyF2I]8F5hF9h}eFmqn}fF p# MFt+ NFDOFIxPFHXrQFSiRFSjSFo۔ TFSVFA XFFYFLNt[F\FL[^Fh_FA`FAaFs\bFxcFtFCLFCLFCLgFpG FCLFCLFCLFCLmFE5nF@<oF{ FCLFCLFCLFCLFCLFCLFCLwFq(xFK=qyFS(FOP{FD.|FSх}F`*~F^F@,FE;Fs ~FOPFd% |FCLFG7FO$FHFJuFCLtFCLFj F yff F t 5F5I.6F6HF7OPF9CL:F;DnQ;FWB1?F?D F@OPFBCLBFDFLCFF|DFIT EFKMFFLGHGFMKHFNAL LFO`z MFQeNFRK OFZCPF[BQF\GBRF]G )TF^P UF_OVF`G3FbOPFdCLYFeEZFgDGFiOPFkCL]FmE^FoaFOPFCLaFW FOPFCLdFGxFOPfF^FCLhFF iFUFOPkFNb lFHmFF =nFe!H oFaipF\ qFVk rFW sFN]tFOq5uFKUFOPFCLxFKcyFOJMzFMFOPFCL}FL&~FL:FMK!FG FOP~FCLFHFL FLYFHFCF CL F G} F CLF OP F HLF CLF CLF ^ F CLF CLF AfF | F CLF CLF CLF !L F "`L F #TL F $O33 F '~C F )LF *TzF +g!F ,_ff "F -K#F .Es3$F /N^%F 0P}5&F 1N'F 2L (F 3K}F 5CL*F 7JBU+F `]@F cCL-F eG} F gOPF iCL0F kFq1F lJP!2F nPR3F oRo4F pK.F qOP6F s]F tCL8F wMxF yCL:F {J+F ~CLF S?F J@F HAF MF OPDF AEF IGFF HcGF PF W F Z3F T F my F GF GhF x+ F s)~ F z F { !F CL F CLF CLF iމ F CLF AF B\F ALF r F ˒F rIF CLF CLF CLF CLF CLF ElbF HK6F LF y{ F I; F BEF CScF LlR F rfF MF ~z F UF S7YF yF |R8 F O]F OyRF M<F kZY F lD F `ɚF [fF ^F !CLF "CLF #CLF $CLF &CLF )OPF *OPF +OPF UCLF XQF ZI|F [JuF \IWF ^xF _x}eF X}fFp= MF }t NF DOF IPF H2QF SқRF SSF o TF SL\VF A:yXF FYF L"[F \F Kv^F d_F A`F AaF u.bF w8RcF spF CLF CLF CLgF pk F CLF CLF CLF CLmF E-nF ,oF z F CLF CLF CLF CLF CLF CLF CLwF uxF MuyF NF OP{F C|F T }F ce~F ^F @%gF EF vI ~F OPF c |F !CLF $G-F %N@F &HF )PUuF ,CLtF -CLF /k F 0y~ F 1t+ 5F 4I,36F 5H"F 6OPF 8CL:F :Du;F ;JCF ?OPF ACLBF CFCF E{DF H5 EF JK FF KGGF LB HF MAE LF Nap MF OgNF PLQ OF QC/PF RBEQF SGoRF TGTF VOUF WNVF FsF OPF CLYF EZF CF OPF CL]F D^F _iF OPF CLaF V;F OPF CLdF GxF OPfF ^F CLhF FRiF TF OPkF OB lF DpmF nF d oF `pF X qF R rF T=q sF NrtF Or uF KF OPF CLxF K~PyF RyzF MF OPF CL}F L2H~F LhF MDF GF OP~F CLF Hs<F Lt F L3F GF C)F CL F GuF CLF OP F C/F CLF CLF ^F CLF CLF AF {g F CLF CLF CLF L^ F bfg F d34 F ]L F I~ F KJHF LSF Mg!F NYff "F OT#F PDfg$F QN '%F RPG&F SN"'F TLZ(F UJF WCL*F YJX+F Z_ F ]CL-F _GXF aOPF cCL0F eF[G1F fI2F hP3F iRI4F jK)F lOP6F n]F oCL8F rMF tCL:F vIF yCLFSL<?FJ\@FH{AFMkFOPDFAEFIUFFHLGFPFWC3FZ&gFTFmM FF(FGzFxWc Fs8 Fz7 F| !FCL FCLFCLFg FCLFAFB?FA{Fr FVFr&#FCLFCLFCLFCLFCLFEcYFH4FPCNFy FH FBEFCZFMR FpFfFMDF~] FUyaFS`F yF |R8 FO@QFOnFLFF#HF%F'uF'CLtF(CLF*k D F,yh F-t+ 5F/I(6F0HVF1OPF3CL:F5Du;F6IkECFhy DFkk EFmMFFnKGFoI34HFpA@ LFqap MFrhNFtLQ OFuC@PFvBQFwGRFxGTFyOUFzNVF{FF|OPF~CLYFEZFCμFOPFCL]FDnQ^F]FOPFCLaFUEFOPFCLdFGxFOPfF^FCLhFFRiFSFOPkFO( lFC{mF~QnF` oF`FpFZ=q qFP rFSaH sFNytFOf>uFKFOPFCLxFKyFPbvzFMyFOPFCL}FLL F?Z F@M4 FAO FD~E FF@Q FHE FIJ !FJ\ff "FKO3#FL@g$FMM%FNP&FON'FPLU(FQJFSCL*FUJ3+FV_FYCL-F[GF]OPF_CL0FaF1FbH 2FdPj3FeR&B4FfJ3FgOP6Fi]FjCL8FMFCL:FI>FCLFSl?FI@FHfAFMcFOPDFALEFH{FFH3GFP;F[lF^c3FX<Fm FFLFGR,Fxt FsU: Fzcz F|& !FCL FCLFCLFgL FCLF@.FB}FAAhF FpFr(FCLFCLFCLFCLFCLFE]FH%!FIF|} FI33 FBwFCDFK( FpYF&M^F)~ F+U!F,R<F/yF0|R8 F2O F3OcF4MMzF8k F;qD F<`F=]F>^F?CLF@CLFBCLFCCLFDCLFGOPFHOPFIOPFLCLFOQFPIsFQJlFRIJ(FUh FYh }eFl}fF*pu MFu NFDtOFIPFHY+QFSRFSSFo TFRVF@XFFYFL[Fl\FK:P^Fgd_FA`FAaFt(bFvcFr.FCLFCLFCLgFp FCLFCLFCLFCLmFE*)nFgoFy, FCLFCLFCLFCLFCLFCLFCLwFtxFNyFQzFOP{FB|FUD}F a95~F ^F @+FE{|Fvv ~FOPFcm |FCLFG.FNFHF#LuF%CLtF&CLFPj FRx FSt 5FUI%6FVH\FWOPFYCL:F[Du;F\I+yFM׺zFMFOPFCL}FLP~FLFM:FGgFOP~FCLFGeFLG F KF!G\F"C F$CL F&F5F)CLF,OP F/DsF2CLF3CLF6\-F8CLF9CLF;@bFCLF@CLFACLFCL^ FEZ FFTf FGU34 FJ~L FLNRFMTzFNh!FO]L "FPL33#FQ@3$FRM@%FSP1&F|N'F}K;(F~J(FCL*FJ%g+F`GFCL-FGFOPFCL0FET1FP52FPPq3FR4FJGFOP6F]FCL8FNFCL:FIwFCL FK_ > FM_ > FOCLFPCLFQCLFRCLFSCLFTCLFUCLFV^FXCLFYCLFZCLF[NW2F]CLF`C0FbCLFcCLFeCDFgCLFhCLFiCLFlOP$FmKmP%FnI۞&FoFOFqCL*FtN}E,Fu\ FvOP.FwP FyCLFzCLF|OPF~CL3Fs4FAH6FE37Fmg8F}29Fi<:Fb;FiFgFS?FIW@FHMwAFM42FOPDFAPEFH١FFHGFQ FZgF^YFXlFm FE7FGA"Fx0 Fsrb Fz F|R8 !FCL FCLFCLFi FCLF@FAqFAF~' F}FFqF CLFCLFCLFCLFCLFEVFH_FNFy FGf FBnF CDF"O^ F%rF(M/aF+} F-UF.R F1yF2|C F4OF5O[F7LF:l3 F=nȉ F>`ɚF?^lF@^FACLFCCLFDCLFECLFFCLJOPJOPJOPJCLJ QJ IsJJkJIFJzLJzL}eFW?}fFPp MJ2t NJ4D+OJ5I|PJ6H: QJ9SRJ:St<SJdof TJeR9QVJf@XJhFiYJiL[Jj#\JkL^Jocq_JpA`JqAaJst >bJtw(cJurJwCLJyCLJzCLgJ|pg0 J~CLJCLJCLJCLmJEQnJgoJx{b JCLJCLJCLJCLJCLJCLJCLwJwGxJP(yJPuJOP{JB|JU}Jd!~J^J@JEqaJvt ~JOPJb |JCLJG JNL^JHJPuJCLtJCLJkK Jy Jt% 5JI!O6JHJOPJCL:JD_;JHdCL]J@C{^JBZۂJCOPJECLaJHSJIOPJKCLdJMGJOOPfJQ^JRCLhJTEiJUQ9JWOPkJYO' lJZG(mJ[C{nJ\aL oJ_`pJaW qJbQL rJcR sJdNSDtJeOHuJfKAJgOPJCLxJKƙyJKzJM2JOPJCL}JLU~JLJMJGJOP~JCLJGxJLy JMgJHJD#3JCL JGQJCLJOP JAJCLJCLJ]WJCLJCLJ@;JwV JCLJCLJCLJL Jg Jc JWf J~5 JLJSJh!J_ff "JL#J~f $JM,%JP&JNx'J K(J JvJ CL*JJ+J__JCL-JGgJOPJCL0JE1JK2JP0X3JQ߫4JJ;J OP6J"]J#CL8J&NJ(CL:J*ISJ-CL J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNPJCLJCJCLJCLJB JCLJCLJCLJ OP$J!Kd6%J"I&J$Q5J'CL*J*NK ,J+[J,OP.J-OժJ/CLJ0CLJ3OPJ4CL3J7t44J9AH6JH49J@i9<:JBj3;JCjlJFT?JGIŎ@JHH7AJIMiJJOPDJKA?EJLHFJMHGJNQoAJRZJS^FfJTXFgJUm JVC\JWG#J[xP Js Jz J|` !JCL JCLJCLJfq JCLJ@}BJAJCJ~l^ JJrJCLJCLJCLJCLJCLJEMJH JI;Jy] JI* JBk!JC/JJM Jqc3JLJ}; JTJReJyJ|C JNWJOK$JMJlR JsD J`J]3J^JCLJCLJCLJCLJCLJOPJOPJOPJCLJQJIoaJ JhJJ I@+Jh\)Jh\)}eJo}fJq3 MJWtTg NJYDOJZICPJ[H/QJ_SRJ`S^SJaoXB TJbQ̶VJc XJeFYJfK+[Jh8\JiL+a^Jlgu_JmB`JnAaJpt >bJqvcJsrJuCLJvCLJwCLgJypG J{CLJ|CLJ~CLJCLmJEInJoJw JCLJCLJCLJCLJCLJCLJCLwJ~xJMyJTǮJOP{JB6|JV}Jb~J^J@JETJvt ~JOPJb3 |JCLJFJMJH{2JF{uJCLtJCLJk Jy Jt 5JI6JHJOPJCL:JDX;JGOPJ@CLaJCS6JDOPJFCLdJHGBJJOPfJL^JNCLhJxETiJyPxJ{OPkJ|O 0 lJ}DpmJ~\)nJa oJ`pJYu qJS rJT sJNAtJO<2uJKJOPJCLxJKyJQlzJM~JOPJCL}JLYM~JL@JL9JGJOP~JCLJGBJL JLJJ\JDfJCL JGnJCLJOP J@%JCLJCLJ]\JCLJCLJ@AJw JCLJCLJCLJL J^ JU JSfg J~5 JLJUpJi!J\ "JO33#J@$JMғ%JP &JNØ'JK(JJJCL*J I+J [OJ CL-JG )JOPJCL0JE]1JJ2J@P3JAQ4JBJJCOP6JE]JFCL8JINFJKCL:JMIL\JPCL J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJ CLJ NZJ CLJCJCLJCLJBJCLJCLJCLJOP$JKWy%JI&J PBJ"CL*J%N^,J&[yJ'OP.J(OJ*CLJ+CLJ.OPJ/CL3J2s04J4AH6J7@7J8|348J9{&f9JmJAT?JBI@JCH"AJlLՑJmOPDJnAEJoHFJpGZGJqQJuVJvY4JwT3Jxm\ JyAЉJ{F0J~x Js Jz? J|oQ !JCL JCLJCLJh JCLJ@;JAt@JBJ~ JJrC:JCLJCLJCLJCLJCLJEFmJH>JJR>Jy JHUU JB1 JCJRty JqJL@J}u% JTJR7JyJ|5! JNJO/JM1Jl JqH J`fJ^vfJ^JCLJCLJCLJCLJCLJOPJOPJOPJCLJQXJInxJJdJI8J hJ4h}eJqX}fJq MJRu " NJTDtOJUIYPJWGQJZSRJ[ST%SJ\o,| TJ]QuVJ^~1 XJ`FYJbK[Jcn\JdL)^JgbX_JhBU`Ji@aJksqbJmu cJnq4JCLJCLJCLgJp8T JCLJCLJCLJCLmJE&nJoJv׶ JCLJCLJCLJCLJCLJCLJCLwJpxJMyJSffJOP{JAG|JU>7}Jcn~J^J@<JE,Ju65 ~JOPJa |JCLJF2JM JHnJKuJ CLtJ CLJ l! J y J sm 5J I 6J H~J OPJ CL:J DQN;J FJ ,CL*J .IE+J /])J 2CL-J 4GJ 6OPJ 8CL0J :E]1J ;I"2J =OԬ3J >Q4J ?JJ @OP6J B]J CCL8J FN J HCL:J JIiNJ MCL J _ > J _ > J CLJ CLJ CLJ CLJ CLJ CLJ CLJ ^J CLJ CLJ CLJ NQlJ CLJ D J CLJ CLJ AW3J CLJ CLJ CLJ OP$J KH%J Iނ&J OyJ CL*J "Me,J #[J $OP.J %OmJ 'CLJ (CLJ +OPJ UCL3J Xtc4J YAH6J \@47J ]Dfg8J ^J@9J ai 1:J cdL;J dj3J gS?J hI@J iHAJ jLJ kOPDJ l@LEJ mHFJ nGwGJ oQ J rVJ sZJ tTVgJ vm J w@p9J xFsJ {y J |s J }z J ~|` !J CL J CLJ CLJ e[ J CLJ  J AKJ A/J |= J J rhJ CLJ CLJ CLJ CLJ CLJ EAJ HNJ J~]J y J H. J B}J BJ LlR J oٚJ LJ } J T5J R'J y|J | J NsJ OMJ LJ l J q J aJ ^c3J ^J CLJ CLJ CLJ CLJ CLJ OPJ !OPJ "OPJ $CLJ (QJ )IhJ *JbJ +I8J .h{J 1h{}eJ j6}fJ rc MJ Pt NJ RDOJ SGPJ TGwQJ WSqRJ SpSJ o; TJ NVJ y XJ FYJ K[J L\J Oۼ^J e_J B#`J @aJ tW bJ vqcJ rLJ CLJ CLJ CLgJ o[ J CLJ CLJ CLJ CLmJ E&nJ @oJ t J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ t(xJ PffyJ QJ OP{J |\) |J X;}J f~J ^J  J E'J up ~J OPJ a |J CLJ FJ L J HZJ QuJ CLtJ CLJ ox J y J t 5J I$6J HJ OPJ CL:J DQN;J F>CL8JAMJCCL:JEHJHCL JG J_ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNRJCLJDVJ CLJ CLJ @JCLJCLJCLJOP$JJbSӝ?JcIs@JdGAJeLHJfOPDJg@EJhHqFJiGGJjQnJmXFgJn] JoVpJqm Jr~P9JsEJvy JwsF Jz? J|C !JCL JCLJCLJe5 JCLJ~ J@J@.J{ JsJrPJCLJCLJCLJCLJCLJE<}JH9JP:Jyz JI. JAZJB=JL JoٚJLBJ} JT)JJQJyxJ| z JNaMJO zJJJ mm JuU JaJ^yJ^JCLJCLJCLJCLJCLJOPJOPJOPJCLJ"P/J$IcJ%J`J&I6/J)gJ,g}eJ]y}fJ v MJrs NJuD1OJvGtPJwGQJzSRJ{S^SJ|oXB TJ}MpVJv XJF]YJJ[J*\JMÎ^Jh+e_JB*`J@aJubJw{cJsqJCLJCLJCLgJo: JCLJCLJCLJCLmJE nJPoJrj JCLJCLJCLJCLJCLJCLJCLwJs34xJMyJRJOP{Jz |JYݭ}JjL~J^J JEE^J|oQ ~JOPJ_xB |JCLJF˴JLSJH^JFuJCLtJCLJq Jyl Jt 5JIS6JHJOPJCL:JD4K;JE)FJ>JHGJ?MHJ@@ LJA`z MJBeNJCK OJDCPJECdQJFHRJHGoTJINUJJMVJKGr/JLOPJNCLYJPEVZJQC4JSOPJUCL]JWAO^JY`qJZOPJ\CLaJ_UJ`OPJbCLdJdGuJfOPfJh^JiCLhJkEWiJM=JOPkJN$ lJFmJAQnJa) oJ`QpJT qJO\) rJNaH sJNtJOuJK.JOPJCLxJJ3yJMzJM"JOPJCL}JLQZ~JLYJLHJG]JOP~JCLJGxJL JPIJLfJH`JCL JF:JCLJOP JGvJCLJCLJ\r<JCLJCLJzcz Jp3 JCLJCLJCLJ LlN J efg J S JN J} JPJUpJg!JV3 "JJ#J~ $JMc%JP&JV'JK(JJb(J CL*J"H+J#_5J&CL-J(FsJ*OPJ,CL0J.D1J/QF2J1OJN3J2Q4J3JLuJ\OP6J^]J_CL8JbMJdCL:JfH JiCLJz$JHJOW@JIJM Jr JM JE,OJR Jv#,JM JNyJm JKJI"JCLJEJF'JOPJCLJCLJCLJCLJCLJCLJCLJNgJL3JNgJ_ > J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNW2J%CLJ(D%J*CLJ+CLJ-@JeJ/CLJ0CLJ1CLJ4OP$J5K1C%J6Ir&J9MeJMR,J?[BJ@OP.JANdJCCLJDCLJGOPJICL3JLt^-4JMAH6JPG37JQF8JRFFg9JUhn:JW`;JXeJ[TA?J\IP@J]GAJ^KJ_OPDJ@j^EJHLFJGGJQ=JZJ_JXYJl$ J|JEp+Jy#; Js Jz J|& !JCL JCLJCLJf7 JCLJ|= JAJ@;Jz7 J~Jr vJCLJCLJCLJCLJCLJE4[JHJLŭJyN JH" JA+JBJN4p Jr&fJKJ}u% JSJQJyxJ{a JN+)JNJKJm<8 Jt J `3J ^s3J ^J CLJ CLJCLJCLJCLJOPJOPJOPJCLJPvJIedJJ[JI5GJ!yJ"y}eJW}fJx MJhs" NJkDOJlG"PJmGQJpSRJqS^SJroI TJsMUVJuu XJwF{YJxJ"[JynQ\JzN#^J}e_JB8`J@aJugbJwcJtJCLJCLJCLgJo[ JCLJCLJCLJCLmJEnJgoJp JCLJCLJCLJCLJCLJCLJCLwJzfgxJM{yJRJOP{Jy΂ |JZ}$}Jjw~J^J JETJt ~JOPJ^6 |JCLJFJL4rJHJJuJCLtJCLJq; JyH Jt 5JI6J HJ!OPJ#CL:J%D;J&E MJ:c NJ;Jff OJCvQJ?GRJ@G,TJANdhUJBM@VJCG!JDOPJFCLYJHEZJIC4JKOPJMCL]JOA$Z^JQ_JROPJ|CLaJU]RJOPJCLdJGXJOPfJ^JCLhJEziJLJOPkJN= lJEffmJ@\nJ`5 oJ`1pJSL qJO rJQ sJMJtJO uJK JOPJCLxJJ+yJKzJL݃JOPJCL}JL5~JLbLJK9JFJOP~JCLJGJLÕ JL JH3JD3JCL JGoJCLJOP J@؏JCLJCLJ[NPJCLJCLJyN Jo JCLJCLJCLJLJ J`f JY3 JQ J }To J NRJ TzJi!JWf "JPٚ#JB$JM%JP&JO˻'JK(JJ<JCL*JG+J` gJFCL-JHFsJJOPJLCL0JNDX1JOL/2JQN3JRP4JSJ6 JTOP6JV]JWCL8JZMLJ\CL:J^H JaCL J_ > J _ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNL^JCLJ DJJ!CLJ"CLJ$@&J'CLJ(CLJ)CLJ,OP$J-K%J.I}&J1LsJ3CL*J6M ,J7[ J8OP.J9NJ;CLJG4JEAH6N@7NyY8Nq9Nh:N ]g;N `lNTl<?NI4@NGyANKNOPDNBOENH*FNGrGNQNX4N]`NTfNlk+ N yN!E1N$y1 N%s N&z$ N'| z !N*CL N,CLN-CLN/d N2CLN4|} N5@N6@N7z)B N:N;qNeCLNfCLNgCLNhCLNiCLNlE'NnG5NoIaXNry NuIs3 Nw@NxB?NyK N|qfNKFN},l NSNQ]NyxN{ NMNNENLLNmh NpH N`fN^yN^NCLNCLNCLNCLNCLNOPNOPNOPNCLNP!NIbNJWNI/Ng Ng }eN:m}fJyH MNs NNDYONGPNGt[QNSiRNS";SNoXB TN,M VN-v3X XN/Fx=YN0I[N1{\N2NO^N6cm_N7B@`N8@aN:ubN;x\cNCLN@CLNACLgNCoښ NECLNFCLNGCLNHCLmNLEnNO|oNPp NRCLNSCLNTCLNUCLNVCLNXCLNYCLwN\@aHxN]N>yN^NfN_OP{N`z/ |NbYۈ}Nch$x~Ne]Ng NEHBNzcz ~NOPN]d |NCLNFNL8NGNOeuNCLtNCLNq Nyk Nt 5NI 6NHNOPNCL:NC>;NDMEVN?EVNAMNBG(NDzItNEGNHO4NJI8NKM NNr NPM NQCyNTLvNVu9NWM NXNyNZlº N[KXNI"NCLNEwNDF-NOPNCLNCLNCLNCLNCLNCLNCLNNgNKiNXfNG N_ > N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNJ4NCLNDNCLNCLN@&NCLNCLNCLNOP$NK%NIɈ&NL NCL*NL,N[rNOP.NN]NCLNCLNOPNCL3Ntu4NA{6NE97NCg8N@ 9Nh:N Y4;N _9NT(?NI@NG~ANKNOPDNBENH FNGZGNQNUfNZNS@Nl NvND:N"y@Y N#s NLz NM{ !NPCL NQCLNSCLNUf& NXCLNZ{ N[A$ZN\@N]y N_sNaq~NcCLNdCLNeCLNfCLNgCLNjE@NkGzNmP/Npx NsH@ Nu@NvANwP NzqN}KUON|= NSbNQZNytN{ NMĢNNVyNKRNm Nwf N`ɚN^vfN^NCLNCLNCLNCLNCLNOPNOPNOPNCLNOcNI[gNJScNI+KNzffNzff}eN_v< }fNy#E MNr NND|ONGPN GYQN#SaRN$S SN%oXB TN'M'VN(v XN*FqYN+Iq[N,\N-M9^N0b_N2BG`N3AaN5tW bN6w{cN7tGN9CLN:CLNo N@CLNACLNBCLNCCLmNFDnNJ~goNKpI NMCLNNCLNOCLNxCLNyCLNzCLN|CLwNtfgxNJW yNOQNOP{Nyؿ |NY~}Ni~N]N NENNy ~NOPN`p |NCLNFtNLNGNIuNCLtNCLNqÖ Nyb Nt1' 5NI\6NHNOPNCL:NC;NCzN@GNCOPPNmIrNnLNqr NsM NtCyNwONyu9NzM N{NyN|hH N~KSNHgNCLNELNF=NOPNCLNCLNCLNCLNCLNCLNCLNNgNFNNgNG N_ > NG NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNQlNCLNDNCLNCLN@NCLNCLNCLNOP$NK%NI&NK _NCL*NLY ,N[`NOP.NN! NCLNCLNOPNCL3NtG4NA{6N[Y7NNL8Na9Ng:NYfg;N]NS?NH@NGdANKNN OPDN CEN GPFN4GJ(GN5QDN9IN:O3N;HN[N ${\N %O3^N (e_N )BN9`N +AaN -u.bN .x.cN /tN 1CLN 2CLN 3CLgN 6oL N `CLN aCLN bCLN cCLmN fEnN i}oN ko) N mCLN nCLN oCLN pCLN qCLN rCLN tCLwN wrxN xM{yN yPN zOP{N {y |N |Z}N }j .~N ]N  N EHBN x:D ~N OPN \/ |N CLN FaN L%N GoN I!uN CLtN CLN r+ N y N t 5N H6N HN OPN CL:N Cpi;N BN 7OPN 9CL]N ;@^N =^N >OPN @CLaN CSN DOPN FCLdN HFݱN JOPfN L^ N MCLhN ODiN PVH N ROPkN SNn> lN UCmN VL33nN Wg oN Z_IpN \W qN ]Pu rN ^S = sN _M#tN `NuN aJN bOPN CLxN J yN PlzN KۏN OPN CL}N K ~N KN K5N FN OP~N CLN GN L N KN GfN CfN CL N G̶N CLN OP N t-CN CLN CLN \ gN CLN CLN wl N jT N CLN CLN CLN L@ N a N R N Hf N |P N JHN TzN g!N wff "N i#N Rg$N N&%N P&N O'N K(N I\N CL*N F+N \$N CL-N FN OPN CL0N Ca1N H-2N N43N P/n4N JN OP6N ]N CL8N LN CL:N "HUN %CLN >TA?N ?H@N @GLAN AK*N BOPDN CC EN DG5FN EG8GN FQKN JI3N KNN LHN MjGI N OoKN PDN Syz N Ts N Uzr N V{ !N CL N CLN CLN g N CLN {LS N AKN B1 N y@Y N N pN CLN CLN CLN CLN CLN EyN GXUN HGN xWc N I N ~ N AAhN Q N qyN J N | N RN PsN ytN {= N MV$N MN L(N m N qٚ N `3N ^vfN ^N CLN CLN CLN CLN CLN OPN OPN OPN CLN O;HN IJ(N JH|N IN h =N h =}eN f}fN y MN Pr NN RDyON SGPN TG> QN WSRN XRSN ZoK TN [LɀVN \u XN ^FiYN _I Q[N `]Y\N aOȉ^N ec_N fBN9`N g@aN ivpbN jycN kv*N mCLN oCLN pCLgN ro N tCLN uCLN vCLN wCLmN {DGnN ~~goN nV N CLN CLN CLN CLN CLN CLN CLwN v34xN MyN O#N OP{N xߓ |N Zz}N i}$~N ]N  N E9N |j ~N OPN ]3 |N CLN FLN KN GN M{[uN CLtN CLN r N x N s 5N H6N HN OPN CL:N C6];N B>@STN?OPNACLdNCFNEOPfNG^ NHCLhNJDViNKU-NvOPkNwNe lNxHzmNyHQnNzdE oN}_\pNW qNP( rNS33 sNMtNNbuNJkNOPNCLxNJ˽yNN zNKNOPNCL}NKZ~NKNJCNFmNOP~NCLNG`NL NKNHfND#3NCL NFbNCLNOP NNCLNCLN\3!NCLNCLNv( Nk7 NCLNCLNCLNL$ Nd NR NN N|s? NJHNR\Ng!NZg "NMٙ#NA$NN-%NPG&NO'NK:(NINCL*NF/+N^{)NCL-NFݱN OPN CL0N C1NH̾2NM3NO4NINOP6N=]N?CL8NBL~&NDCL:NFHNICL NG NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNH NCLND"WN CLN CLN ANCLNCLNCLNOP$NJ%NI&NOrNCL*NKİ,N]pN OP.N!MN#CLN$CLN&OPN(CL3N+s4N-A6N0j337N1f&g8N2qfg9N4fŽ:N6[9;N7`N:T9 ?N;H@NOPDN?C8ENhGzFNiG$GNjQ?NnHNoNNpI4Nqi& NrktNtDcNwy# Nxs Nyzcz Nz{LS !N}CL N~CLNCLNe[ NCLNz NAKNA"Nx0 NtǏNppNCLNCLNCLNCLNCLND?NG[ NJg8Nx NIj N} N@NJ Nr3NJiN|oQ NRNPX8NypN{ NM2NMwNKNm NxD N`fN^yN^NCLNCLNCLNCLNCLNOPNOPNOPNCLNNQNICNJCNINpfNpf}eNU}fN zu\ MNIr NNKDzONLGPNMG=PQNPSXRNQRSNSo TNTLyVNUu XNWF^YNXH5[NY\N[Mޔ^N^d&_N_BUU`N`@aNbubNcxzcNdvNfCLNhCLNiCLgNko>\ NCLNCLNCLNCLmNDynN}oNm NCLNCLNCLNCLNCLNCLNCLwN|QxNN>yNOqNOP{Nw\ |N[o}NgW~N]NȘ NE"N} ~NOPNZc |NCLNF52NKNGwANMuNCLtNCLNs\ Ny( NsH 5NH6NHWNOPNCL:NC;NG}; NAG NF{ !N[ "NO3#ND$NN6%NPi&NOh'NK(NINCL*NG )+N$_0N'CL-N)F5N+OPN-CL0N/B 1N0NVA2N2M3N3Oc4N4I֍N5OP6N7]N8CL8N;LgN=CL:N?HNBCL N_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNJNCLND+dNCLNCLNBNN CLN CLN CLNOP$NJ5%NI&NPNCL*NK,N^gNOP.NMNCLN CLN#OPN$CL3N's[4NQA6NTff7NUYٙ8NVj339NXfr:NZ];N[bFfN^TA?N_HG@N`GANaJ0NbOPDNcCENdGFNeGGNfQ NjHNkN4NlHNmh] Nnh=NoD Nsy Nts NuzT Nv{ !NyCL NzCLN{CLN~f(r NCLNz NAAhNA$ZNw N)NpwNCLNCLNCLNCLNCLNDNG?NM%Nw NG N}I N@NRty NoNJN|R8 NRafNPNypNzu NLZNMNJ?Nn0 Nr N`vfN^yN^NCLNCLNCLNCLNCLNOPNOPNOPNCLN N_N!I<N"JA6N#I(N'h =N*h =}eNg'1}fN{ MNHrHZ NNJDy:ONKGDPNLFQNOSORNPR-SNRoK TNSK:VN|s XN~FPYNH[N\NQWx^Nd_NBUU`N@TaNtbNzcNu NCLNCLNCLgNn NCLNCLNCLNCLmNDnN~)oNm+ NCLNCLNCLNCLNCLNCLNCLwNzxNOyNQzNOP{Nv=p |NZq}NhS~N]N NE"N| ~NOPN]j |NCLNF%NKYsNGmNFuNCLtNCLNs Nx Nt% 5NHR6NHNOPNCL:NB;NMO RuG RuCLRuCLRuCLRuCLRuCLRuCLRuCLRu]RuCLRuCLRuCLRuNKRuCLRuD/RuCLRuCLRuBFRuCLRuCLRuCLRuOP$RuJ4%RuI&RuMRuCL*RuKP2,Ru^RuOP.RuNi?RuCLRuCLRuOPRuCL3Rus<4RuA{6Ruw@7Ru^8Rum9Ruf':Ru[;Rua33Ru.S`?Ru/H@Ru0GARu1J+Ru2OPDRu3C>XERu4GFRu5FGRu6P&Ru:IvfRu;NRueJRu?CLRuCy@ RuDt' RuEz7 RuFz !RuICL RuJCLRuKCLRuMd RuQCLRuSy RuT@RuU@RuVxH RuW{fRuYpj|Ru[CLRu]CLRu^CLRu_CLRu`CLRucDyRudGRueL4rRuw RuJ"" Ru|& Ru@JeRuJ Rur&fRuIRu|5! RuRRuOsRuypRuz RuLRuMu3RuJRun4a Rusff Ru`Ru^yRu^RuCLRuCLRuCLRuCLRuCLRuOPRuOPRuOPRuCLRuN}ERuI3vRuJ:RuIRuwfRuwf}eRuWV}fN{ٓ MRuqN NRuDsORuG`EPRuFQRuSRRuRwSRuoK TRu K{VRu!s XRu#FCYRu$He[Ru%x8\Ru&P-^Ru*d_Ru+B\r`Ru,@ۘaRu.tfgbRu/w4cRuXtGRuZCLRu\CLRu]CLgRu_o RuaCLRubCLRucCLRudCLmRuhDhnRuk}oRullD RunCLRuoCLRupCLRuqCLRusCLRutCLRuuCLwRuxAuxRuyP4yRuzRBRu{OP{Ru|u |Ru~[ }Rukhg~Ru]Ru RuE'Ru} ~RuOPRuYM |RuCLRuFRuKRuGsRuK/7uRuCLtRuCLRuty RuxE Rusȵ 5RuH6RuHz^RuOPRuCL:RuB;RuL7InRu?f oRuB_@pRuDW qRuEPp rRuFR sRuGMtRuHNuRuJJ"RuKOPRuMCLxRuOJ˽yRuPSNzRuQKURuSOPRuUCL}RuWK?m~RuYK RuZJRu[FRuOP~RuCLRuFRuLu RuJRuHfRuD3RuCL RuG0RuCLRuOP Ru}@RuCLRuCLRuZRuCLRuCLRus Ruek RuCLRuCLRuCLRuK Rud RuY3 RuT Ru{ RuJHRuR\Rue!Ru[ "RuJff#Ru~L $RuN9%RuP.&RuN'RuK(RuIJRuCL*RuG+Ru`=RuCL-RuF:RuOPRuCL0RuB+1RuJa2RuM>3RuOv4RuI[RuOP6Ru]RuCL8RuL::Ru CL:Ru HkRuCLRu'T?Ru(H_@Ru)FARu*MN2Ru+OPDRu,CERu-GwFRu.FVGRu/P!Ru3IvfRu4O3Ru5H3Ru6gb Ru7cIRu9C Ruz Ru?z !RuBCL RuCCLRuDCLRuGe RuJCLRuLy@Y RuM@RuN@RuOwQ? Ruy* RuzpdRu}CLRu~CLRuCLRuCLRuCLRuDRuFRuIRuw_ RuG Ru|C Ru RuRty RuoIRuI'Ru|& RuQͬRuORuypRuzr RuLRuMIRuL%FRunB RuvY Ru`fRu^yRu^RuCLRuCLRuCLRuCLRuCLRuOPRuOPRuOPRuCLRuNCRuI-RuJ77RuIsRugRRugR}eRuyc}fRu|} MRuq NRuDpORuG=SPRuF\QRu@SERRuBRhSRuCn TRuDJVRuErM XRuGF5pYRuHH&[RuI\RuKQ^RuNd_RuOB\r`RuP@ۘaRuRsqbRuSw8RcRuTs*RuWCLRuXCLRuYCLgRu[nh Ru]CLRu^CLRu_CLRuaCLmRudDnRug}oRuhk4 RujCLRukCLRulCLRunCLRuoCLRupCLRuqCLwRut@aHxRuuNyRuvPRuwOP{Ruyu |Ruz[8}Ru{iӪ~Ru]Ru RuE'Ru|} ~RuOPRuZ( |RuCLRuERuJRuG;$RuQ uRuCLtRuCLRuu{ RuwR Rus`B 5RuHچ6RuHuRuOPRuCL:RuB;RuJ FRuK GRuPHRu @t LRu ^\ MRu aNRu JH ORu DPRuCQRuH RRuGTRuL& URuJVRuGoRuOPRuCLYRuDZRuCpRuOPRuCL]Ru@^Ru!]Ru"OPRu$CLaRu'R,Ru(OPRu*CLdRu,F7 Ru.OPfRu0^ Ru1CLhRu3CiRu5QQ%Ru7OPkRu8M_ lRu9I mRu:JnRu;b}q oRu>_bpRu@Vf qRuAP rRuBPaH sRuCMtRulNiuRunJRuoOPRuqCLxRusJ˽yRutPzRuuKcRuwOPRuyCL}Ru{KF~Ru}JRu~JRuFۆRuOP~RuCLRuF/RuLb RuIRuH9RuCRuCL RuGxRuCLRuOP RuDsRuCLRuCLRuZPGRuCLRuCLRusF RudU RuCLRuCLRuCLRuK Ru` RuZ RuPff Ru{ RuJHRuSRufR!Ru\ff "RuQ&f#Ruv $RuN:%RuP&RuN'RuK(RuIARuCL*RuFݱ+Ru_RuCL-RuF~RuOPRuCL0RuB\1RuI'2RuM_3RuOI4RuIRuOP6Ru]RuCL8RuL%RuCL:RuH9QRu CLG`Ru@CLRuCOPERuDBHRuE~IRuH^K JRuIo:KRuJX;LRuKZB RuN@RuOEVRuPH9QRuRL`RuSI"dRuWEVRuX@;RuZMRu[Gv Ru\z?Ru]HRu`LvRubHRucLRufr RuhM RujB3RumLvRuovRuM RuNyRudH RuK(IRuHRuCLRuEvRuF=RuOPRuCLRuCLRuCLRuCLRuCLRuCLRuCLRuPgRuL3RuYgRuG RuG RuG RuCLRuCLRuCLRuCLRuCLRuCLRuCLRu]RuCLRuCLRuCLRuNGQRuCLRuD.RuCLRuCLRuAҩRuCLRuCLRuCLRuOP$RuJ%RuI$&Ru I2Ru CL*Ru J7,Ru _Ru OP.Ru O%Ru CLRu CLRu OPRu CL3Ru sH4Ru A6Ru |347Ru k48Ru  9Ru e7:Ru ZFg;Ru _Ru #T?Ru $H@@Ru %F.ARu &P9Ru 'OPDRu (C ERu )GbFRu *FGRu +PRu /GyRu 0MgRu 1GfRu 2f} Ru 3ahRu 4CjRu 7y Ru `t Ru by Ru czcz !Ru fCL Ru gCLRu hCLRu jd Ru mCLRu px:D Ru q@Ru r~ Ru svv Ru t|Ru vpVRu xCLRu yCLRu {CLRu |CLRu }CLRu DGRu FRu KcRu w% Ru H Ru {w Ru U Ru K( Ru r)Ru IBRu | Ru Q@Ru OX!Ru ylRu zF^ Ru L\Ru M42Ru KRu n`* Ru w"" Ru aPRu _ Ru ^Ru CLRu CLRu CLRu CLRu CLRu OPRu OPRu OPRu CLRu NRu I"7Ru J1Ru HRu yRu y}eRu tWiQ}fRu~  MRu 2qP NRu 4DmORu 5GUPRu 6F^.QRu 9S~RRu :RldSRu ;n TRu qw XRu @F"|YRu AH$[Ru B\Ru CQE^Ru Ff3>_Ru HBc`Ru I@aRu KuLbRu Lx=qcRu MtW Ru OCLRu PCLRu QCLgRu TnA Ru VCLRu WCLRu XCLRu YCLmRu \DnRu _} oRu aj#A Ru cCLRu CLRu CLRu CLRu CLRu CLRu CLwRu AuxRu OByRu OaHRu OP{Ru s |Ru [W}Ru l~Ru ]Ru 0 Ru E!IRu { ~Ru OPRu Xb |Ru CLRu ERu JRu GqRu IiuRu CLtRu CLRu vd Ru v Ru s 5Ru H,6Ru HpcRu OPRu CL:Ru B;Ru HS MRu bHNRu K\) ORu D*#PRu DQQRu HRRu FTRu KURu JVRu GRu OPRu CLYRu DVZRu CwRu OPRu CL]Ru  ^Ru `*YRu OPRu CLaRu SWRu !OPRu #CLdRu %FRu 'OPfRu )^ Ru *CLhRu TC{iRu UP^Ru WOPkRu XMH lRu ZF(mRu [GGnRu \b8R oRu __upRu aW qRu bQB rRu cRp sRu dMNtRu eN]uRu fIRu gOPRu iCLxRu kJāyRu mMzRu nKFRu pOPRu rCL}Ru tJ~Ru vJyRu wJ{4Ru xFsRu yOP~Ru {CLRu }FRu LZ Ru JgRu H3Ru DIRu CL Ru HdRu CLRu OP Ru ERu CLRu CLRu ZRu CLRu CLRu r+ Ru cb Ru CLRu CLRu CLRu K Ru Z Ru R Ru O Ru {r Ru LRu W\)Ru j\!Ru Y "Ru M4#Ru F34$Ru N7%Ru P&Ru Nk'Ru K(Ru I$Ru CL*Ru Fy+Ru \pRu CL-Ru FRu OPRu CL0Ru B 1Ru H 2Ru L(3Ru Ob4Ru IuRu OP6Ru ]Ru CL8Ru #L^Ru %CL:Ru 'H Ru *CL Ru _ > Ru CLRu CLRu CLRu CLRu CLRu CLRu CLRu ]Ru CLRu CLRu CLRu NJRu CLRu D+dRu CLRu CLRu BRu CLRu CLRu CLRu OP$Ru Jy%Ru I{e&Ru I Ru CL*Ru J,Ru aRRu OP.Ru OsRu CLRu CLRu OPRu CL3Ru sx{4Ru A{6Ru k7Ru `8Ru u9Ru ez}:Ru I];Ru JcLRu LT ~?Ru MH%o@Ru NFARu OQ|:Ru POPDRu QBERu RGLFRu SFGRu TPuRu XIvfRu YNRu ZIgRu [fQ Ru ]_6Ru ^C+;Ru ay] Ru bt' Ru cy Ru dz % !Ru gCL Ru iCLRu jCLRu ldR Ru oCLRu qw Ru r@bRu s~# Ru tvK Ru w4Ru xp\Ru zCLRu {CLRu |CLRu }CLRu ~CLRu DXRu FRu HRu vI Ru Hf Ru z Ru ~ Ru Qz Ru qRu IRu { Ru Q6NRu O;DRu ylRu z % Ru L4rRu L/Ru L+Ru nn Ru uU Ru `3Ru ^yRu ^Ru CLRu CLRu CLRu CLRu CLRu OPRu OPRu OPRu CLRu M/Ru IRuJ. RuHRuh\Ruh\}eRu wZ}fRu $ MRu6q NRu8DiORu9GPRu:FRQRu>SsnRRu?QLSRu@n TRuAJ;VRuBp) XRuDF YRuFG5[RuG\RuHQ^RuKc_RutBc`Ruu@aRuwvbRuyx cRuzu>Ru|CLRu}CLRu~CLgRun RuCLRuCLRuCLRuCLmRuDpnRu}goRuifg RuCLRuCLRuCLRuCLRuCLRuCLRuCLwRu~xRuMyRuORuOP{RurU |Ru\J}Rui~~Ru]Ru RuERu| ~RuOPRuYM |RuCLRuEERuJ85RuG*RuIuRuCLtRuCLRux8R Ruw% Rur 5RuH6RuH\pRuOPRuCL:RuB\;RuGV Ru_ > RuCLRuCLRuCLRuCLRuCLRuCLRuCLRu]RuCLRuCLRuCLRuNH RuCLRuD0RuCLRuCLRuC'RuCLRuCLRuCLRuOP$RuJV%RuIl2&RuQRuCL*RuJw,RuaRuOP.RuO{Ru1CLRu2CLRu5OPRu7CL3Ru:sjL4Ru~7Ru?p 8Ru@y9RuCeg:RuE];RuFa3RuIT?RuJG:@RuKFMARuLSRuMOPDRuNBERuOG1FRuPF"GRuQPw:RuTGyRuVM#3RuWF3RuXep RuY^.RuZBRu]y] Ru^t' Ru`y@ Ruay !RudCL RueCLRufCLRuha RukCLRuwS Ru@Ru}f Ruv MRu,bHNRu-K\) ORu.DFmPRu/D(QRu1H RRu2GTRu3K\URu4J'VRu5GRu6OPRu8CLYRu:DBZRu;C'Ru=OPRu?CL]RuA~Ü ^RuCc9RuDOPRuFCLaRuISΓRuJOPRuLCLdRuNEѕRuPOPfRuR^ RuSCLhRuUCwiRuVN3RuXOPkRuYL lRuZGpmRu\HnRu]f oRu^pRuW qRuO8R rRuQ sRuMtRuNuRuIbRuOPRuCLxRuJyRuQzRuJRuOPRuCL}RuJm~RuJ=RuJGYRuF*RuOP~RuCLRuFRuL1 RuIc3RuHRuCgRuCL RuHURuCLRuOP RuBzRuCLRuCLRu[>RuCLRuCLRurn Rubw RuCLRuCLRuCLRuKT Ru[33 RuN RuJff Ru{%, RuJHRuTzRuh!RuZ "RuNg#RuA3$RuN$%RuPi&RuN'RuKbd(RuH>Ru CL*Ru FL+Ru ^ RuCL-RuF[GRuOPRuCL0RuA1RuKU2RuLqf3RuNi4RuIkzRuOP6Ru ]Ru!CL8Ru#KFRu&CL:RuPGBRuSCL Ru_ > RuCLRuCLRuCLRuCLRuCLRuCLRuCLRu]RuCLRuCLRuCLRuNNRuCLRuD7(RuCLRuCLRuB=RuCLRuCLRuCLRuOP$RuJ2%Ru I^s&Ru#MRu&CL*Ru(J>|,Ru)bRu*OP.Ru+P9Ru-CLRu.CLRu1OPRu3CL3Ru6s.4Ru8A6Ru:]7Ru;E8Ru<`&f9Ru?eI:RuA[ ;RuB`RuET?RuFG@RuGFARuHSRuIOPDRuJBERuKGFRuLFwGRuMP|GRuQI3RuRO3RuSIYRu|dN Ru}\Ru~C7Ruy Rut Ruy# Ruy !RuCL RuCLRuCLRuc RuCLRuy RuA:%Ru} Ruvܹ RuqRupgRuCLRuCLRuCLRuCLRuCLRuDhRuFRuPERuvY RuH Ruy Ru}T RuN4p RuqvfRuHsgRu{H RuORuORuyhsRuy@ RuL^RuKRuK7xRun}[ Rur Ru`)Ru^yRu^RuCLRuCLRuCLRuCLRuCLRuOPRuOPRuOPRuCLRuMd1RuIRu J)Ru HضRu zLRu zL}eRuo6}fRu@@MRuSq3 NRuVDaORuWGLMPRuXFlQRu[S\RRu\RASRu]n TRu^IVRu`ogf XRubEYRucG[Rud˪\RueRH^RuhbF_RuiBc`Ruk@aRumvBbRunx>cRuotRuqCLRurCLRusCLgRuvns- RuxCLRuyCLRuzCLRu{CLmRu~DnRu}4oRuh RuCLRuCLRuCLRuCLRuCLRuCLRuCLwRuzHxRuLyRuNfRuOP{Ruq |Ru\}RujU~Ru]Ru? RuE;Ru{Z ~RuOPRuY |RuCLRuERuIRuF RuNuRuCLtRuCLRux Ruu RurE 5RuH6RuH.2Ru OPRuCL:RuB8P;RuDS MRu%bHNRu&K ORu'DQNPRu(D2QRu*GRRu+GoTRu,KURu-IVRu.FШRu/OPRu1CLYRu3C~ZRu4C Ru6OPRu8CL]Ru:~24 ^Rur V]@LV]CEVV]DLaV]FvV]GM V]HNyV]Ieb3 V]JK V]KEV]NCLV]QE``V]RE*V]SOPV]UCLV]VCLV]WCLV]XCLV]YCLV]ZCLV]\CLV]_NgV]`G6gV]aNgV]bG V]c_ > V]d_ > V]fCLV]gCLV]CLV]CLV]CLV]CLV]CLV]]V]CLV]CLV]CLV]NKV]CLV]D=~V]CLV]CLV]A:V]CLV]CLV]CLV]OP$V]J%V]IQl&V]JV]CL*V]J;,V]cbV]OP.V]PzV]CLV]CLV]OPV]CL3V]sY4V]A6V]Qs47V]E8V]^339V]e6:V]b33;V]aٚV]T.T?V]Gc@V]FAV]SV]OPDV]B=EV]F'FV]F`GV]PVV]IV]OYV]HfV] d4 V] [JV] C7V]y{ V]t!N V]yl V]y]w !V]CL V]CLV]CLV]bq V]CLV]y]w V] @bV]!| V]"u V]$hV]%p=V](CLV])CLV]*CLV]+CLV],CLV]/DV]XEV]ZI}V]]vW V]`I; V]bxe V]c|C V]dM+ V]gnYV]jH1V]n{H V]pNȅV]qOV]tyhsV]uyl V]wKV]xK@V]yKV]}n V]tQ V]`V]^yV]^V]CLV]CLV]CLV]CLV]CLV]OPV]OPV]OPV]CLV]M*V]IV]J% V]HV]gV]g}eV]$b}fRuAMV]pJ NV]D^!OV]G!PV]ETQV]SQ(RV]RLMSV]nT TV]HVV]n; XV]EIYV]G|[V]J\V]U"^V]!c_V]"Bc`V]#@eaV]%t4bV]&x\cV]'u>V]*CLV]+CLV],CLgV].n% V]0CLV]1CLV]2CLV]4CLmV]7DpnV]:} oV];f V]=CLV]>CLV]?CLV]ACLV]BCLV]CCLV]DCLwV]GyxV]HNLyV]IP >V]KOP{V]NpDD |V]P]C8}V]Ql*~V]S]V]U? V]WE'V][z$ ~V]OPV]W |V]CLV]EhsV]IV]FiV]FuV]CLtV]CLV]z# V]udZ V]q 5V]H)6V]H& V]OPV]CL:V]A;V]ChKV][L*r V]\IV]]HfV]^C V]`CL V]bHV]eCLV]hOP V]kM0qV]nCLV]oCLV]qCDV]tCLV]uCLV]wq V]x` V]{CLV]|CLV]}CLV]K V]a V]TL V]I V]z" V]NRV]UpV]h!V]bfg "V]S#V]~L $V]N<%V]P.&V]N{q'V]K=(V]HcV]CL*V]E+V]`sV]CL-V]EV]OPV]CL0V]AK1V]I[2V]L)F3V]NK 4V]I,V]OP6V]]V]CL8V]JāV]CL:V]GJYV]CL V]_ > V]CLV]CLV]CLV]CLV]CLV]CLV]CLV]]V]CLV]CLV]CLV]NI{V]CLV]D?MV]CLV]CLV]AV]CLV]CLV]CLV]OP$V]I%V]IA&V]G&V]CL*V]I\,V]c V]OP.V]PV]CLV]CLV]OPV]CL3V]s4V]A6V]K7V]N8V][339V]e:V][f;V]`,V]Te?V]G@V]FrAV]TV]OPDV]BwEV]FFV]FJMGV]PAV]GV]LgV]G@V]c2 V]ZbV] CV] y{ V] t!N V]y@Y V]y#; !V]CL V]CLV]CLV]c7 V]BCLV]Dx V]F@=V]G| V]Hu V]JwV]KoFV]MCLV]NCLV]OCLV]QCLV]RCLV]UDV]VE<V]WGV]Zu} V]]H V]_w V]a{w V]bL/ V]et V]hGV]k{w V]mN#8V]nO@QV]qyhsV]sy1 V]uKV]vJV]wL%FV]zn V]rf V]`V]^vfV]^V]CLV]CLV]CLV]CLV]CLV]OPV]OPV]OPV]CLV]LV]H1V]JV]HV]h=qV]h=q}eV]JqC}fV]AơMV] pg NV] D[OV] GT%PV]EdQV]SIRV]R!SV]n TV]IJVV]nJ* XV]EYV]GSR[V]\V]P5U^V]d_V]Bj`V]!@!aV]#tbV]$x\*cV]%uV]'CLV](CLV])CLgV],n, V].CLV]/CLV]0CLV]1CLmV]4DлnV]7}fgoV]9fI V];CLV]CLV]?CLV]@CLV]BCLwV]mB=qxV]nL{yV]oO)V]pOP{V]sp |V]u]%}V]wnYc~V]y]V]{q V]}EV]z[ ~V]OPV]X |V]CLV]EIV]IrV]FV]JuV]CLtV]CLV]zL V]u33 V]r 5V]H6V]HV]OPV]CL:V]A;V]Ai V] _ > V] CLV] CLV] CLV] CLV] CLV] CLV] CLV] ]V] CLV] CLV] CLV] NDmV] CLV] D@6V] CLV] CLV] CaV] CLV] CLV] CLV] OP$V] Iq%V] I0&V] Rp\V] CL*V] I,V] c V] OP.V] PWV] CLV] CLV] OPV] CL3V] rf4V] (A{6V] +I47V] ,Sfg8V] -c9V] 0e:V] 1\;V] 2aLV] 5T*?V] 6Gu@V] 7FnxAV] 8T-V] 9OPDV] :CfEV] ;F_FV] RV] (RSV] )n}[ TV] *HVV] +me XV] UEuYV] VG[V] X\V] YUD^V] \e_V] ]Bj`V] ^@aV] `tGbV] axgcV] cuLV] eCLV] fCLV] gCLgV] jm V] lCLV] mCLV] nCLV] pCLmV] sDșnV] v}C4oV] we( V] yCLV] zCLV] {CLV] }CLV] ~CLV] CLV] CLwV] vxV] NRyV] O)V] OP{V] o |V] ]f}V] n~V] ]V] cP V] EV] {in ~V] OPV] XE |V] CLV] E=V] IFV] Fs1V] OuV] CLtV] CLV] { V] uX V] r{ 5V] H:6V] HV] OPV] CL:V] A^v;V] M EOV] @OPfV] B^ V] DCLhV] FB=iV] GV V] IOPkV] JMh lV] KHmV] LInV] Mb oV] P^pV] RV qV] SQ=q rV] TT( sV] VMWltV] WNrPuV] I%V] OPV] CLxV] J3yV] K{zV] JPV] OPV] CL}V] I ~V] J/V] IV] F7V] OP~V] CLV] EV] L$ V] Hs3V] GV] BV] CL V] HGV] CLV] OP V] cV] CLV] CLV] FRV] CLV] CLV] q V] `% V] CLV] CLV] CLV] J V] _ff V] L33 V] O V] y V] JHV] R\V] g!V] Zg "V] K#V] u $V] N$%V] O&V] N'V] K(V] HWV] CL*V] E+V] aJV] CL-V] EV] OPV] CL0V] @}B1V] O2V] K]3V] M4V] HV] OP6V] ]V] CL8V] JBUV] CL:V] GV] CL V] _ > V] CLV] CLV] CLV] CLV] CLV] CLV] CLV] ]V] CLV] CLV] CLV] NBCV] CLV] D>fV] CLV] CLV] Ci(V] CLV] CLV] CLV] OP$V] IЍ%V] I!&V]NkV]CL*V]I{.,V]d:V]OP.V]Q91V]CLV]CLV]OPV]!CL3V]$r4V]%A{6V](P37V])O338V]*a9V]-d:V]/_;V]0^V]3S?V]4GZ@V]5F`AV]6TV]7OPDV]8D,EV]9FFV]:FGV];PEV]>I3V]?O<V]AIc3V]Bb V]CXV]DBV]Gy V]Ht!N V]Iy V]JxP !V]vCL V]wCLV]xCLV]zb[ V]}CLV]x# V]@.V]z V]u65 V]@ V]oV]CLV]CLV]CLV]CLV]CLV]DV]EoV]O[V]uD V]G V]vt V]y V]K V]q0V]G^-V]{/9 V]KxV]N[V]yhsV]xP V]J3V]HmV]KFV]n V]uL V]`yV]^yV]^V]CLV]CLV]CLV]CLV]CLV]OPV]OPV]OPV]CLV]LV]H|V]JV]H~V]z33V]z33}eV]Xy}fV] BOMV]>pt NV]@DT%OV]BFPPV]CEoQV]FS6RV]GQJSV]Hn TV]IHcVV]Jm XV]MEMYV]NGf[V]O\V]PR*^V]Sg4_V]TBj`V]U@aV]Xs#bV]Yv\cV]Zt{V]\CLV]]CLV]^CLgV]amW V]dCLV]eCLV]fCLV]gCLmV]jDOnV]m}oV]ne( V]qCLV]rCLV]sCLV]tCLV]uCLV]vCLV]wCLwV]uxV]N\yV]OV]OP{V]owx |V]]y}V]l~V]]V]cP V]E$-V]{ ~V]OPV]X |V]CLV]E=V]I]V]FV]LuV]CLtV]CLV]|I V]v V]q 5V]H@6V]HXV]OPV]CL:V]AAh;V]MU|V]hOPkV]iL lV]jF\)mV]kG=qnV]mb oV]p^cpV]r[ qV]sR8R rV]tSf sV]uMO7tV]vNgZuV]wIuV]xOPV]zCLxV]|JyV]}PzV]~J%gV]OPV]CL}V]I>~V]J\V]I7V]FV]OP~V]CLV]EV]L V]H0V]FV]AfV]CL V]HaV]CLV]OP V]A V]CLV]CLV]ZPV]CLV]CLV]qJ V]`a V]CLV]CLV]CLV]J V]c V]Y3 V]O V]yu V]LV]R\V]e!V]iL "V]R3#V]xf $V]N'r%V]O~&V]Nm'V]K(V]HBV]CL*V]E]+V]ZsV]CL-V]EV]OPV]CL0V]@gv1V]K2V]K 3V]M4V]H)V]OP6V]]V]CL8V]1J+V]4CL:V]6F5V]9CLOPV]@CL@V]CQAV]DHBV]EF/V]GCLV]JOPEV]M HV]NC(IV]Oo+ JV]PvKV]QX/LV]SYc V]UAAhV]WEVV]XGeV]ZKV][I"dV]^EVV]_@.V]aMV]bF}V]cz V]dFN=V]hOyV]jIDV]kLV]r V]LV]EVV]SC<V]v#,V]LV]NyV]d] V]J7V]E,V]CLV]EWWV]F=V]OPV]CLV]CLV]CLV]CLV]CLV]CLV]CLV]NgV]G6gV]NgV]G V]_ > V]_ > V]CLV]CLV]CLV]CLV]CLV]CLV]CLV]]V]CLV]CLV]CLV]N;V]CLV]D;V]CLV]CLV]BV]CLV]CLV]CLV]OP$V]I%V]I&V] KOV] CL*V]IP,V]c V]OP.V]Qw/V]CLV]CLV]OPV]CL3V]rK4V]A{6V] D7V]!CY8V]"Ts39V]%dy:V]&[g;V]'aV]*S?V]+G@M@V],FS<AV]-TkV].OPDV]/D9^EV]0F=FV]1FGGV]2OV]^IfV]_O<V]`Ic3V]ab V]cWwV]dB^V]gy V]ht/ V]ix V]jx !V]mCL V]nCLV]pCLV]ra V]uCLV]ww V]x@V]yz V]ztz V]}'SV]~o.V]CLV]CLV]CLV]CLV]CLV]D{V]EIV]JV]u ~ V]H V]v V]yN V]M V]nV]GV]{/9 V]KxV]MV]ydZV]x V]JtV]HGV]JV]n V]xٚ V]`V]^yV]^ V]CLV]CLV]CLV]CLV]CLV]OPV]OPV]OPV]CLV]L`iV]HV]J V]HkV]gV]g}eV]}iE}fV]B&MV]9q% NV];DQKOV]EwQV]AS2RV]BQ SV]Cn$ TV]DHM{VV]El XV]GEYV]IF[V]J-A\V]KRa^V]Nc1_V]OBj`V]P@aV]RvbV]TyQcV]UwW V]WCLV]XCLV]YCLgV]\ms V]^CLV]CLV]CLV]CLmV]DOnV]}yoV]e( V]CLV]CLV]CLV]CLV]CLV]CLV]CLwV]txV]KRyV]OV]OP{V]nDD |V]]}V]n.{~V]]V]cP V]E>V]{/ ~V]OPV]W/ |V]CLV]E;.V]H0V]FcV]HGuV]CLtV]CLV]}T V]v V]qO 5V]Hz^6V]H V]OPV]CL:V]A2;V]LHV]?OP6V]A]V]BCL8V]DILV]GCL:V]IFV]LCL V]_ > V]CLV]CLV]CLV]CLV]CLV]CLV]CLV]]V] CLV] CLV] CLV] N@V]CLV]D<V]CLV]CLV]AV]CLV]CLV]CLV]EOP$V]FI%V]GI &V]JH3V]MCL*V]OI-,V]Pdu[V]QOP.V]RQV]TCLV]UCLV]XOPV]ZCL3V]]r4V]^A6V]agf7V]bRY8V]c^39V]fdf:V]h[3;V]i`V]lT)J?V]mG%@V]nF?CAV]oUkV]pOPDV]qDL:EV]rFCFV]sFGV]tOV]wFPV]yKgV]zFfV]{b V]|VLV]}BOV]y V]t/ V]x V]xH !V]CL V]CLV]CLV]`P V]OPV]}f V]Bk!V]y@Y V]sF V]Y5V]oqV]CLV]CLV]CLV]CLV]CLV]DV]E0V]JtV]t V]Gw V]vK V]x V]L V]nlV]FOV]{ V]LV] MvV]ydZV]xWc V]JBUV]H#V]JnV]n$ V]v V]a V]^yV]^ V]CLV]CLV]CLV] CLV]!CLV]%OPV]&OPV]'OPV])CLV],L.PV]-H@V]/JV]0HV]3h =V]6h =}eV]gn}fV]CMZEp< NZEDNqOZEFPZEE>nQZES+RZEQWSZEnQ TZEG1VZEl XZE!EYZE"F[ZE# \ZE$Q^ZE'bF_ZE(Bq`ZE*@aZE,u bZE-yaHcZE.w >ZE0CLZE1CLZE2CLgZE5m; ZE8CLZE9CLZE:CLZE;CLmZEfDnZEi}oZEjdJ ZEmCLZEnCLZEoCLZEpCLZEqCLZErCLZEsCLwZEwwfgxZExK\)yZEySZEzOP{ZE}n |ZE^ }ZEl1~ZE]ZET ZEE zZE{ ~ZEOPZEX |ZECLZEE)ZEHZEFTZEL^(uZECLtZECLZEL ZEu ZEq 5ZEHm6ZEGZEOPZECL:ZEA;ZEJeF mZE@GnZEAf oZED^@pZEFX qZEGQ{ rZEHTaH sZEIM7tZEJNR[uZEKIcZELOPZENCLxZEPIyZEQP[zZESILZEUOPZEWCL}ZEYI :~ZE[I̊ZE\IQZE]FoZE^OP~ZE`CLZEbEZEeK ZEfd34ZEgaZEQ3ZECL ZEH@ZECLZEOP ZEiq ZECLZECLZET15ZECLZECLZEp^ ZE^# ZECLZECLZECLZEJD ZE` ZEN ZEO33 ZEy w ZEJHZEVffZEi!ZE_3 "ZEK#ZE33 $ZEN+%ZEO&ZEN`'ZEJ (ZEGZECL*ZEDX+ZE`'ZECL-ZEEGZEOPZECL0ZE 1ZEIM2ZEKQ 3ZEM`4ZEHZEOP6ZE]ZECL8ZEI/ZECL:ZE FEZE CL ZE_ > ZECLZECLZECLZECLZECLZECLZECLZE]ZECLZECLZECLZEN@ZECLZEDBZECLZECLZECZECLZECLZECLZEOP$ZEI%ZEH&ZER_ZECL*ZEI-,ZEeWZEOP.ZEQZECLZECLZEOPZECL3ZEr}4ZEA6ZEU7ZE I8ZE!U9ZE#dx:ZE%al;ZE&bfZE)S?ZE*G j@ZE+F,3AZE,U:ZE-OPDZE.D%EZE/FlFZE0EFGZE1OnZE5CPZE6HfZE7C3ZE8b}C ZE9VZE:BFZE>y ZE?t>u ZE@x ZEAx !ZEDCL ZEECLZEFCLZEIbE ZEKOPZELB>ZEMIgZEPy# ZEQrk ZERrZEToZEWCLZEXCLZEYCLZEZCLZE[CLZED/ZEDXZEIyZEtU ZEG ZEu ZExWc ZEM ZErZEF$ZE{ ZEL=ZEM<ZEyhsZEx# ZEJ3ZEGoZEK82ZEn ZEu ZE`ZE^yZE^ ZECLZECLZECLZECLZECLZEOPZEOPZEOPZECLZEKZEHZEJZEH/ZEgZEg}eZERT4}fZEDyMZEpJ NZEDHOZEFsPZEDQZESRZEQ֤SZEn TZEGWVZEk9 XZEEd'YZEFe[ZE D\ZE"S^ZEMa_ZENBq`ZEO@aZEQt8RbZERvpcZESv34ZEVCLZEWCLZEXCLgZE[m ZE]CLZE^CLZE_CLZEaCLmZEdDnZEg}oZEhd_ ZEjCLZEkCLZElCLZEnCLZEoCLZEpCLZEqCLwZEtxZEuN yZEvS >ZExOP{ZE{lDD |ZE}^ }ZE~mF~ZE]ZET ZEE 2ZEz ~ZEOPZEW |ZECLZEEZEHlZEF^.ZEQsuZECLtZECLZE- ZEu ZEqĜ 5ZEHb6ZEGZEOPZECL:ZEAK;ZEHnmd oZEA^pZECW qZEDR8R rZEEVff sZEGM,tZEHNGfuZEIIW7ZEJOPZELCLxZENIwyZEOMhzZExI\ZEzOPZE|CL}ZE~H$~ZEIZEIiZEFaZEOP~ZECLZEDZEK ZEcZEaFfZEQ&fZECL ZEHO ZECLZEOP ZE ZECLZECLZEXZECLZECLZEo۔ ZE]u ZECLZECLZECLZEI ZE[33 ZENL ZEL33 ZEx; ZENRZEYGZEmp!ZEj "ZEUf#ZEy33 $ZEN&%ZENSD&ZEN0'ZEJ(ZEGZECL*ZED+ZE\5ZECL-ZEEZZEOPZECL0ZE 1ZEH2ZEK+3ZEM-z4ZEH]ZEOP6ZE]ZECL8ZEIEZECL:ZEEZE CL ZE_ > ZECLZECLZECLZECLZECLZECLZECLZE]ZECLZECLZECLZEN; ZECLZEDBZECLZECLZEBɀZECLZECLZECLZEOP$ZEIv%ZEHH&ZEN0 ZECL*ZE H,ZE e'ZE OP.ZE RZECLZECLZEOPZECL3ZErvO4ZEA6ZEZs37ZEQ&f8ZE^39ZE!d:ZE"Z3;ZE#`ZE&S6?ZE'F@ZE(F<AZE)TZE*OPDZE+D EZE,FVFZE-EGZE.O67ZE2CPZE3H3ZE4BgZE6c ZE7UZE8BZE;y ZEwS !ZEACL ZECCLZElCLZEnc!( ZEpOPZEqBVZErKIZEux ZEwqˈ ZEx}ZEzo-ZE|CLZE}CLZE~CLZECLZECLZEDWZEDZELZZEtM ZEHU ZEu ZEwt ZELL ZEr&fZEF[nZEzu ZEL\ZEMZEyhsZEw ZEIZEG} ZEK ZEn ZEs ZE`ffZE^yZE^ ZECLZECLZECLZECLZECLZEOPZEOPZEOPZECLZEK'ZEHZEJZEHZErZEr}eZExWػ}fZEDʧMZE pY1 NZE4DBQOZE5FPZE7DQZE:S'CRZE;QxSZEj XZE@EOjYZEBF[ZECVE\ZEDR`^ZEGb+P_ZEHBq`ZEI@aZEKugbZEMxǯcZENuzZEPCLZEQCLZERCLgZEUmO ZEWCLZEYCLZEZCLZE[CLmZE^DnZEa}@oZEbcӅ ZEdCLZEfCLZEgCLZEhCLZEiCLZEjCLZEkCLwZEntxZEL#yZER)ZEOP{ZElfg |ZE_x}ZEm5~ZE]ZET ZEE1ZEz$ ~ZEOPZEVS |ZECLZEEZEH<6ZEFJZEIFuZECLtZECLZE@SZEu33 ZEq J 5ZEHV6ZEGZEOPZECL:ZE@;ZEFNOPEZE A},l HZE BD~-IZE Cm` JZE Df0KZE EXsLZE FZ ZE IA{ZE JEVZE KGeZE MKZE OI"dZE REVZE SAZE UMZE VElZE Wz9ZE XFN=ZE [OZE ]IZE ^LZE ar ZE LZE EVZE QZE u9ZE LZE M<ZE o^ ZE JZE C/]ZE CLZE EZE EeZE OPZE CLZE CLZE CLZE CLZE CLZE CLZE CLZE NgZE G6gZE NgZE G ZE _ > ZE _ > ZE CLZE CLZE CLZE CLZE CLZE CLZE CLZE ]ZE CLZE CLZE CLZE N:RZE CLZE D?MZE CLZE OPZE B=ZE CLZE CLZE CLZE OP$ZE IZ%ZE H&ZE JP!ZE CL*ZE H,ZE eZE OP.ZE R<ZE CLZE CLZE OPZE CL3ZE rX4ZE A6ZE R7ZE N&f8ZE U 9ZE dP:ZE Y;ZE \3ZE "TE]?ZE #Fع@ZE $FAZE %UZE &OPDZE 'D>EZE (F>[FZE )EGZE *OZE UCc4ZE WHZE XC ZE Yb ZE ZTZE [AZE ^y ZE _t/ ZE ax+ ZE bw !ZE eCL ZE fCLZE gCLZE ibE ZE kOPZE lCZZE nKbZE qx ZE rq3 ZE spZE uoZE wCLZE xCLZE zCLZE {CLZE |CLZE E.ZE DZE NZE t!N ZE J ZE u' ZE w ZE Lx ZE q33ZE FeZE z ZE K82ZE MkZE yhsZE w3 ZE IZE F/ZE K)ZE n ZE w ZE `ZE ^yZE ^ ZE CLZE CLZE CLZE CLZE CLZE OPZE OPZE OPZE CLZE KAZE HnZE J=ZE HZE yZE y}eZE stw}fZEEXkMZE .o NZE 0D;OZE 1FQKPZE 2DZQZE 5S'CRZE 6QSZE 7n`* TZE 9GVZE :jc XZE \ZE ?T*^ZE BaH_ZE DBq`ZE E@aZE GuǯbZE HxLcZE Iu\ZE KCLZE LCLZE NCLgZE QmH ZE SCLZE TCLZE UCLZE VCLmZE DnZE }4oZE c@ ZE CLZE CLZE CLZE CLZE CLZE CLZE CLwZE sxZE LByZE O#ZE OP{ZE kwx |ZE ^C}ZE n7~ZE ]ZE T ZE EZE |j ~ZE OPZE T |ZE CLZE DZE GZE EsZE IuZE CLtZE CLZE @ZE uƨ ZE pm 5ZE HH}6ZE GZE OPZE CL:ZE @;ZE EDZE ~L EZE N\)FZE LGZE K HZE : LZE a MZE hNZE L OZE DPZE DQZE HRZE G TZE HUZE GHVZE E\ZE OPZE CLYZE B}ZZE A:ZE OPZE CL]ZE y ^ZE ]!ZE OPZE CLaZE HQZE IOPZE KCLdZE MDZE OOPfZE Q^ ZE RCLhZE TAqiZE UO3ZE WOPkZE YL lZE ZF\mZE [GnZE \eff oZE __pZE aVR qZE bP\) rZE cR sZE dM6tZE eN2guZE fIRZE hOPZE jCLxZE lIyZE mRzZE nIwZE pOPZE rCL}ZE tH[~ZE vIi~ZE wI3ZE xFBZE yOP~ZE {CLZE }D_ZE KF ZE c3ZE aYZE Q3ZE CL ZE HaZE CLZE OP ZE n ZE CLZE CLZE P1ZE CLZE CLZE of ZE \s ZE CLZE CLZE CLZE I}8 ZE e3 ZE \ ZE Tf ZE x+ ZE JHZE SZE h!ZE j "ZE R3#ZE @$ZE Ni%ZE MT&ZE N'ZE J(ZE GTZE CL*ZE DJ+ZE _ZE CL-ZE EZEOPZECL0ZE~l^ 1ZEKcy2ZEJ3ZEL`4ZEH&}ZEOP6ZE]ZECL8ZE HؒZE#CL:ZE%EѕZE(CLZE-OPZE/CL@ZE2QOAZE3G-BZE4F1ZE6CLZE9OPEZE<| HZE=AIZE>] JZE@` KZEAXqLZEBZ` ZEEAZEFEVZEGH ZEIKZEJI"dZEuEVZEvA$ZZExMZEzEi>ZE{z+ZE|FN=ZEO^1ZEI9ZELZEr ZELZEEVZELvZEu9ZELZEMZEo^ ZEJāZEBMZECLZEEZEEZEOPZECLZECLZECLZECLZECLZECLZECLZENgZENZEX<ZEG ZE_ > ZE_ > ZECLZECLZECLZECLZECLZECLZECLZE]ZECLZECLZECLZEN8'ZECLZED8ZECLZECLZEBZECLZECLZECLZEOP$ZEI<%ZEHխ&ZELSZECL*ZEH},ZEe#ZEOP.ZERELZECLZECLZE OPZE CL3ZErF4ZEA6ZENL7ZEZEFS`?ZEFFz@ZEGE6AZEHU,ZEIOPDZEJCEZEKF$FZEMEGZEMOiZEQDZERJfZESDZEUa0 ZEVTJgZEWA ZEZy ZE[t>u ZE\x ZE]wna !ZE`CL ZEbCLZEcCLZEeb ZEgOPZEhDkjZEiK"ZElxWc ZEnqˈ ZEpWZEqnZEsCLZEtCLZEuCLZEvCLZEwCLZEEZEDZENՃZEs ZEI{ ZEt ZEw ZEN ZEp3ZEEۈZEz? ZEJPZEL͟ZEyhsZEw| ZEI6ZEFZEI\ZEn}[ ZEw7w ZE`ZE^yZE^ ZECLZECLZECLZECLZECLZEOPZEOPZEOPZECLZEKOIZEHDZEJZEHRZE zffZE zff}eZEp_}fZE F MZE)op NZE+D6OZE-FPZE.DKQZE1S'CRZE2QSZE3n`* TZE4FĒVZE5i XZE7EYZE9F [ZE:G\ZE;Qs^ZE>ai_ZE?Bq`ZEh@aZEkvbZElx.cZEmv#ZEoCLZEpCLZEqCLgZEtm} ZEwCLZExCLZEyCLZEzCLmZE}DnZE}goZEb׷ ZECLZECLZECLZECLZECLZECLZECLwZEwHxZELyZEQkZEOP{ZEk |ZE^F}ZEmaA~ZE]ZEF_ ZEEBZE|R8 ~ZEOPZET5 |ZECLZEDSZEGZEEZENguZECLtZECLZEA$ZEuQ ZEq 5ZEH?l6ZEG0ZEOPZECL:ZE@;ZED0HZE~+ LZEc\* MZEj\NZEM OZEDPZEDBQZEH ARZEFKTZEH#UZEGEVZE0EZE1OPZE3CLYZE5AZZE6AfZE8OPZE:CL]ZE]*ZE?OPZEACLaZEDQ,ZEEOPZEGCLdZEIDuZEKOPfZEM^ ZENCLhZEPA"iZEQNZESOPkZETLp lZEU@ =mZEVwnZEWc oZEZ_WpZE\UG qZE^N rZE_Pz sZE`M/tZEaN*/uZEbIRZEcOPZEeCLxZEgHUyZEhRazZEiIL\ZEkOPZECL}ZEG0~ZEIFZEI ZEF8ZEOP~ZECLZEDJZEK ZEcfZEagZEQ&fZECL ZEHZECLZEOP ZEzr ZECLZECLZEWZECLZECLZEo ZE\ ZECLZECLZECLZEI0 ZE[ ZEM4 ZEJff ZEx` ZEJHZETzZEg!ZE^ "ZELf#ZE $ZEN%ZEL&ZEN'ZEJ(ZEGZECL*ZED%+ZEZјZECL-ZE DZE OPZECL0ZE~ 1ZEJ2ZEJd3ZELX4ZEH ZEOP6ZE]ZECL8ZEHdZECL:ZE!F>KZE#CL ZE_ > ZECLZECLZECLZECLZECLZECLZECLZE]ZECLZECLZECLZEN; ZECLZED4qZECLZECLZECZECLZECLZECLZEOP$ZEI.%ZEH&ZEQmZECL*ZE%HS_,ZE'eȉZE'OP.ZE(RAZE*CLZE+CLZE.OPZE0CL3ZE3r54ZE5A{6ZE7X7ZE8E8ZE9U 9ZEY33;ZE?]4ZEBS6?ZECFR@ZEDEٞAZEET<ZEFOPDZEGCkEZEHF oFZEIE%GZEJNZEND3ZEOJZEPEZEQ` ZERSZESA7ZEVy ZEWt>u ZEYw ZEZwB !ZE]CL ZE^CLZE_CLZE`q. ZEOPZEE4HZEK-ZZEx ZEqHF ZE* ZEnZECLZECLZECLZECLZECLZEE- ZEDrZEJZEs ZEIY ZEt>u ZEv ZEKT ZEnZEEZE{ ZEIZEL}mZEyhsZEw_ ZEHHZEF(ZEK ZEnn ZEw33 ZE`ZE^yZE^ ZECLZECLZECLZECLZECLZEOPZEOPZEOPZECLZEKZEHκZEI'ZEH(ZEgpZE gp}eZEc}fZEFB~MZEQwY NZESD4OZETFPZEUDQZEXS'CRZEYQaSZEZn TZE\F{VZE]i XZE^EYZE`Fz[ZEa\ZEbV^ZEfbW_ZEgBq`ZEh@aZEju\bZEkxRcZElwHZEnCLZEpCLZEqCLgZEtm6 ZEvCLZEwCLZExCLZEyCLmZE}DynZE}loZEa ZECLZECLZECLZECLZECLZECLZECLwZE@#xZEMyZEOQZEOP{ZEjDD |ZE_H9}ZEmO~ZE]ZEF_ ZEEZEAd~ZEOPZET'U |ZECLZEDwZEGZEEVZEOІuZECLtZECLZEATZEu: ZEpH 5ZEH36ZEGjrZEOPZECL:ZE@`2;ZEBS ZE_ > ZECLZECLZECLZECLZECLZECLZECLZE]ZECLZECLZECLZEN5DZECLZED<ZECLZE CLZECaZECLZECLZECLZEOP$ZEI%ZEH&ZELƉZECL*ZEH,b,ZE ^?ZE!OP.ZE"RZE$CLZE%CLZE(OPZE*CL3ZE-qw4ZE/A6ZE1]7ZE2J@8ZE3cs39ZE6c:ZE8\&g;ZE9`ZEEAZE?UHZE@OPDZEAC?EZEBE6FZECEGZEDNdZEGE nJnEC4n`6 nS-n A7n y n t/ nw3 nwl !nCL nCLnCLnc[ nOPnEEnJgn!x+ n"qˈ n#yn%on'CLn(CLn)CLn+CLn,CLn/E<}n0DRSn1MMzn4sF n7H n9s n;vY ndQ ngqnjEcnm{/9 nnI{npLEnsyhsnuw4 nvHnwEVnxJānyn`* n|x n}`s3n^yn^ nCLnCLnCLnCLnCLnOPnOPnOPnCLnJnHnInH~nznz}en#U}fZEG Mn~o NnD1OnF\PnDQnS+RnQSnn}[ TnFtVni XnDxYnE[nq%\nQ^na_nBq`n@anu bnycnvnCLnCLnCLgnm  nCLnCLnCLnCLmn.Dnn1}on2a n4CLn6CLn7CLn8CLn9CLn:CLn;CLwn>yQxn@M4ynAMHnBOP{nEj"# |nG^}nHm~nJ]nMF_ nOE2nR|& ~nTOPnWV |nZCLn]Dn^G}n_FXbnbG"JundCLtnfCLnB nv`B npfg 5nH'6nGZ$nOPnCL:n@Q;nF@<nQT?nAJnOPnCLBnA"Cn}IDn~C EnIQFnLGnE Hn~Z Lna MnhNnMG OnD%PnDQnGRnFTnH\UnGaxVnE8nOPnCLYn@rZnAnOPnCL]nxe ^n\nOPnCLanPSnOPnCLdnDGnOPfn^ nCLhnAt@inLnOPknL ln@mnypnn bE on ^pnTu qnM{ rnP = snLetnNunHnOPnCLxnHVFynLznHHnOPnCL}n!GC~n#HUn$HYn%Fn&OP~n(CLn*Cμn-J/ n.[n/YnXHnZCL n\Hn_CLnbOP ncHdneCLnfCLnhE#nkCLnmOPnpqHF nq\ ntCLnuCLnvCLnyHN nz[ n|L33 n}Jff n~w nNRnYGnlz!nd "nN#ny33 $nN %nL~z&nN'r'nJs3(nGHnCL*nC+nZ7DnCL-nDnOPnCL0n} 1nH2nJR3nL-g4nFӍnOP6n]nCL8nGBnCL:nFTnCL<nA=nI nOPnCL@nQ(AnGUBnEnCLnOPEn{ HnFInlHr Jn[vKnXILnYuc nA"nEVnGnKnI"dn"EVn#AAhn%Mn&EDDn'z'n(En+Opn-Hn/Ln2r n4K3n7EVn8Lvn:u9n;M n nZ_ > nCLnCLnCLnCLnCLnCLnCLn]nCLnCLnCLnN8nCLnDBnCLnCLnBFnCLnCLnCLnOP$nI%nH|&nHnCL*nH,n^nOP.nRnCLnCLnOPnCL3nqH4nA{6nPٚ7nEL8nZ9nc:nYs3;n^s3<n\nOP>nSXz?nFk@nE)AnUfnOPDnC<EnEFnEw GnNnAynF3nAIn`m nRnAJny{ nt/ nw nvܹ !n CL n CLnCLn`S nOPnEnJnw_ npX n~vnoznCLnCLn CLn!CLn"CLnMEBnOD.8nPOenSs nVG nXsF nYv4 nZK n]q&fnaE%Vndz neHngL!njyhsnkw nlH]nmEV[noJnpnB nsw nt` nu^nv^ nwCLnyCLnzCLn{CLn|CLnOPnOPnOPnCLnJynHŨnIonHyvnyfnyf}enW}fnG6Mn NnD-OnFt<PnC%QnS#sRnQSnnQ TnF2Vnh> XnDuYnET[nᰩ\nXl^nc]H_nBj`n@anukbnvcnvQnCLnCLnCLgnl nCLnCLn CLn"CLmn%D?nn(}on)a n+CLn,CLn-CLn/CLn0CLn1CLn2CLwn5sxn6L\yn7Pn8OP{n_Z}n?nx~nA]nCF_ nEEnI|R8 ~nKOPnNT |nxCLn{D"n|G[n~FwnJ~unCLtnCLnB\nu^ np 5nH(6nGHnOPnCL:n^ ;nM=<nQ?nA**nOPnCLBnACn|Dn}7 EnNFnLQGnERHn~r Lna MngNnMG OnDLPnDQnGRnF^TnH.UnG1gVnEGnOPnCLYn@uZnA{nOPnCL]nx# ^n\|nOPnCLanPnOPnCLdnDnOPfn^ nCLhnAOinTM)nOPknL lnBpmn}33nnas3 on_PpnV qnOǮ rnRL snLttn N 'un HUn OPn CLxnH[ynJsznHnOPnCL}nF~nAHKnBHnCE?nEOP~nGCLnICnKJ@ nL[fnMYffnNI nPCL nRHnUCLnXOP nYJ n[CLn\CLn^F/naCLndOPngq nhZ: nkCLnlCLnmCLnpH nqa nrR nsK ntw nuHnwUpnxg!ny_ "nzI#n{B$nN%nL-g&nN&'nJ[(nG&"nCL*nC.+narnCL-nD|nOPnCL0n}T 1nOZ2nJ*3nK 4nFqnOP6n]nCL8nGCnCL:nFLnCL<nAt@=nI :nOPnCL@nQ TAnGBnEnCLnOPEnzu Hn C"In nP Jn XKKn XCgLnY nAҩnEVnGxnKnI"dnEVnAOnMnE>nz*[nE~n"On$In&Ln)r n+K&Xn.EVn/L7n1u9n2M n3Mn6o^ n7J n8A|n;CLn>Eijn?En@OPnBCLnCCLnlCLnmCLnnCLnoCLnqCLntP3nuG6gnvNgnwG nx_ > ny_ > n{CLn|CLn}CLnCLnCLnCLnCLn]nCLnCLnCLnN5DnCLnDAnCLnCLnBnCLnCLnCLnOP$nHM%nH-&nSnCL*nG,n^nOP.nRnCLnCLnOPnCL3nq3j4nA{6nZ7nV38nd9ncnh:nZ;n_3<n]4nOP>nRŋ?nFS<@nE5AnTʆnOPDnC+zEnE7FnE`{GnNq/nAS3nF3nAS3n_ޘ nRPnA}sny nt/ nwQ? nvt !nCL nCLnCLnb n OPn En Jkn6vR n7o n9n;on=CLn>CLn?CLn@CLnACLnDEEnFDnGG UnJs nMIDD nOs nPu6 nQO" nTr3nXDn[z n\Gn^K9naydZnbv ncGndDngKnjn4a nmx{ nn`fno^yn^ nCLnCLnCLnCLnCLnOPnOPnOPnCLnJknH7nI*nHqLngpngp}en9j}fnGΐMnI NnD'OnF;0PnCQnSRnQkSn n4a Tn F$jVn hp Xn DoYn Ek[n \n Q~^n c/_n Bj`n @uan ubn xkcn u>n CLn CLn CLgn lѤ n CLn CLn CLn CLmn "Dnn %}on &a^ n (CLn )CLn *CLn ,CLn -CLn .CLn /CLwn 2|xn 3Lyn 4P(n 5OP{n aiwx |n c_х}n dp]~n f]n h7 n jDn n},l ~n pOPn sT |n uCLn xD-n yGn {FWn ~Pfun CLtn CLn Bmn vH n qt 5n Hw6n G/n OPn CL:n ' ;n M <n Q?n A$Zn OPn CLBn ACn zDn ~ En SFn N\)Gn \Hn ~l Ln h Mn I Nn w On DPn DQn G'Rn FvTn GUn GXVn E n OPn CLYn @`2Zn Aen OPn CL]n wt ^n \Cn OPn CLan )Oen +OPn -CLdn /Cn 1OPfn 3^ n 4CLhn 6A+in 7Vn 9OPkn :Lz ln ;@mn n _ > n CLn CLn CLn CLn CLn CLn CLn ]n CLn CLn CLn N3n CLn D:n CLn CLn C=n CLn CLn CLn OP$n H%n H&&n N@n CL*n G\,n ^n OP.n R'n CLn CLn OPn CL3n q 4n A{6n f7n cL8n df9n "cLp:n $]4;n %]33<n &bn 'OP>n (SQF?n )F9@n *EoAn +U,n ,OPDn -C En .EFn /EIGn 0Nn 4An 5Fln 6A#3n 7_ n 8Qn :A>5n =y] n >t/ n ?w% n @vY !n CCL n DCLn FCLn H_ n JOPn KENbn LJ7{n OvW n Po n Rn To[n VCLn WCLn CLn CLn CLn EFmn CIn N|n sF n Ib" n sF n uS[ n Lz n on Dn z? n Ggn KUn ydZn v( n Gn DVn Jn n0 n v n `s3n ^yn ^ n CLn CLn CLn CLn CLn OPn OPn OPn CLn J. n Hfn Iqn Hkn g\n g\}en Ri}fn GMn 5 Nn D$^On FoPn CQn S8Rn QSn n Tn FVn h~ Xn DoYn E[n K\n U^n d_n Bj`n H@an Jwbn Ky*cn Lvpn OCLn PCLn QCLgn Tl n VCLn WCLn XCLn ZCLmn ]Dnn `}ɚon aaI n cCLn dCLn eCLn gCLn hCLn iCLn jCLwn ms34xn nJyn oRn pOP{n tiwx |n v_g}n wqP~n y]n {7 n }En { ~n OPn Sn |n CLn Dwn Fn FEn NIun CLtn CLn Bn u n pH 5n H6n Gn OPn CL:n c ;n Jͤ<n Q}?n A6n OPn CLBn A/Cn x׶Dn }7 En PHFn PGn S >Hn ~E Ln h Mn Ip Nn w > On DPn DQn GپRn FaTn GUn FֻVn DnOPnCLYn@ZnAAhnOPnCL]nwS ^n[nOPn CLan#Nn$OPn&CLdn(Cn*OPfn,^ n-CLhn0Ain1Un3OPkn4LÕ ln5Affmn6zHnn7aR on:_bpnR3 sn?LtnAMunBHnCOPnECLxnGGynHRIeznIHs<nKOPnuCL}nwF[G~nyHmnzHhzn{En}OP~nCLnCwnJR n[3nY3nI nCL nHnCLnOP nHcnCLnCLnGnCLnOPnq+ nZ nCLnCLnCLnHL nb ng nK nw6 nJHnTznh!nI"ns#nTf$nM%nK^&nN'nJ:(nFnCL*nCpi+nXnCL-nDJnOPnCL0n| 1nJ72nIE3nK04nEnnOP6n]nCL8nFnCL:nF(nCL<nA=nHؒn OPn CL@nPAnGFBnEnCLn=OPEn@zT HnB|InEd JnFW>KnGX$ZLnHZ}W nKA:nLEVnMGenOKnQI"dnTEVnUAlnWMnXEnYzJnZEsn]On_Imn`Lncr nfKniEVnjLvnlv7$nmLnnMnqo^ nrJnsAYnuCLnEnEnOPnCLnCLnCLnCLnCLnCLnCLnQ9nG6gnNgnG n_ > n_ > nCLnCLnCLnCLnCLnCLnCLn]nCLnCLnCLnN7onCLnD8nCLnCLnBnCLnCLnCLnOP$nH%nHK&nJsnCL*nG,n_nOP.n S'n CLn CLnOPnCL3nq.4nA{6nR 7nK8nZ9nc&:nZ&f;n^<n \n!OP>n"S ?n#F"7@n$ElAn%Un&OPDn'BEn(EFn)E5Gn*N)n.C3n/In0C3n1_f n2Qn3A$cn7y n8t/ n9v n:v- !n=CL n>CLn?CLni` nlOPnmDnnJ nqv4 nro nsXwnuoonxCLnyCLnzCLn{CLn|CLnEFmnCnOns nIٚ ns)~ nt nM:T nqfnD|n{ nFnJZnydZnv nGgRnDunK|nn nwff n`n^yn^ nCLnCLnCLnCLnCLnOPnOPnOPnCLnInHnI-nHanznz}ensIN(}fn GJMnI NnD"OnFwPnCQn2ShRn3QrSn4n Tn6F$jVn7h~ Xn8DmYn:Etk[n;&\nwntR np" 5nH6nGnOPnCL:n7 ;nH<nQO?nA0nOPnCLBnA:CnvDn~ EnN\)FnL34GnRQHn~ Lni MnJff Nnyp OnDPnDQnGRnFTnGuUnF VnDnOPn CLYn @&Zn AW3nOPnCL]nw ^nYnOPnCLanMynOPnCLdn Cn"OPfn$^ n%CLhn'@in(Tn*OPkn,LD ln-Bmn.}Gnn/d on2_.#pn\VW qn]Off rn^RW sn_LΫtn`MunaH$ncOPneCLxngGynhNzniH@nkOPnmCL}noF!O~nqH7nrHGnsEOntOP~nvCLnxCDn{J n|h@n}jn~^33nCL nHnCLnOP nNl!nCLnCLnGnCLnOPnp nZ nCLnCLnCLnH[, na nl nP3 nw nNRnW\)nj\!n\ff "nK#nqfg $nM݆%nKi&nN+'nJ0(nF5nCL*nCw+n`XnCL-nDBnOPnCL0n|& 1nH2nI 3nKr4nEnOP6n]nCL8nF[GnCL:nF nCL<n%@=n&Hn(OPn*CL@n-P|An.GBn/EFn1CLn4OPEn7y Hn9I$ In:j Jn;cKn n_ > nCLnCLnCLnCLnCLnCLnCLn]nCLnCLnCLnN-SnCLnD9nCLnCLnBnCLnCLnCLnOP$nHa%nH&nMnCL*nGn,n^UnOP.nSnCLnCLnOPnCL3np'4n A6n ]7n V38nd9nc]:nZ;n^ <n_lnOP>nRo?nF@nEVAnT|nOPDnB{EnE}FnE"GnN n"A#3n$Fc3n%An&_ n'Q&rnPAnSy nTt/ nUv nWu !nZCL n[CLn\CLn^`' n`OPnaDncI֍nfu6 ngoI ninjo,nlCLnmCLnoCLnpCLnqCLntEH=nuCnvGnyr n|I&f nr ntz nM:T nsYnDMn{/9 nF nJZnydZnvt nG&"nD4KnKnme nw n`n^yn^ nCLnCLnCLnCLnCLnOPnOPnOPnCLnInHnIعnHYngQngQ}enie]}fnHtMn"@'rNn%D"On&FPn'C^Qn*S8Rn+QdSn,n4a Tn-E Vn.gD Xn0DjYn2Ef[n3\n4S^n7f_n8Bj`n:@uanun@CLnACLnBCLgnEl nHCLnICLnJCLnKCLmnNDnnQ}onR`#B n}CLn~CLnCLnCLnCLnCLnCLwnuzxnM4ynPW nOP{nh"# |n`!}np~n]n7 nEn}T ~nOPnS |nCLnDxnFDnFk8nKunCLtnCLnC]/nuƨ np( 5nGn6nFnnOPnCL:n~ ;nDW<nPM?nA5nOPnCLBnB}Cnz(Dn } En LpFn NGnTHn~ Lnmp MnNR Nn} OnD3PnDXQnG RnFTnG_UnFrVnD٦nOPnECLYnG@uZnHA2nJOPnLCL]nNw4 ^nPYknQOPnSCLanVM2nWOPnYCLdn[C.n]OPfn_^ n`CLhnb@.incS%neOPknfL lnhAmni{Gnnja onm^pnoW qnpQ\ rnqQ) snrLJtnsMuntHMnuOPnwCLxnyGgRyn{L zn|H n~OPnCL}nE~nHnH'!nEnOP~nCLnC nI nhnjn]&fnCL nHVFnCLnOP nMEnCLnCLnGnnCLnOPnp^ nX nCLnCLnCLnH!$ nl nm nNL nv nG >nR\nfR!nl "n KL#n v33 $nM%nK:[&nN1}'nJ-8(nFnCL*nCSc+n[nCL-nD;nOPn CL0n"|oQ 1n#P%2n%I3n'KF/4n(Eh{n)OP6n+]n,CL8n.F!On1CL:n3ETn6CL<n8@R=n9H/n;OPn=CL@n@PDAnAFBnBEy'nDCLnGOPEVyl HVD8IVn\ JVl wKVX!LV Z%\ V BEV EVVH VKVI"dV@ VBVVMVD-VzJVEMVOVIQkVLV"r V%JgV(EVV)R5V+ulV,LV-MxBV0o^ V1JV2Am?V4CLV7EV9F0V:OPVdCLVeCLVfCLVgCLVhCLViCLVjCLVmNgVoLVpPgVqG Vr_ > Vs_ > VuCLVvCLVwCLVxCLVzCLV{CLV|CLV}]V~CLVCLVCLVN+VCLVD9VCLVCLVDVCLVCLVCLVOP$VH%VHv!&VPPVCL*VGH,V^+VOP.VR VCLVCLVOPVCL3Vp4VA6Vj337VUf8V_39Vc:V\g;V\,<VblVOP>VSFy?VE6@VEB$AVUI,VOPDVBbEVEfjFVEGVMVAVF34VAV^J VPV@Vy# Vt/ Vv Vu !VCL VCLVCLV_ VOPV,D7V-IV0t4 V1nn V3tV5oV7CLV8CLV9CLV:CLV;CLV>EFmV@C\ VAK1VDr VGGY VIr@3 VJt>u VKLĞ VNo VRDVUz[ VVETVWJ,VXydZVYvv VZFsV[DGV]JV^m VayD Vb`Vc^yVd^ VeCLVgCLVCLVCLVCLVOPVOPVOPVCLVIVHVI٢VHQVgGVgG}eV3a}fnHMV= NVDOVFPVC0QVSRVQRSVn0 TVEXVVf XVDfYVE@[Vo\VT ^Ve_VBj`V@aVtHbVvaHcVtVCLV CLV CLgV lD VCLVCLVCLVCLmVDnV~poV_N VCLVCLVCLVCLV!CLV"CLV#CLwV&zHxV'L)yV(PV)OP{V-g"# |V/_zH}VXp*~VZ]V\7 V^DVb|` ~VdOPVgR~g |ViCLVlDq`VmFVoFQVrP<uVtCLtVuCLVxCfgVyt+ Vzp5@ 5V|G6V}FV~OPVCL:V~ ;VFO<VP?VA'VOPVCLBVB}CV{#DV} EVG >FVLpGVR34HV} LVnfg MVO34 NV~=q OVDsPVDQVGBRVFTVG8UVFT<VVE"VOPVCLYV@ZVAVOPVCL]Vv ^V^hVOPVCLaVO(VOPVCLdVCpiVOPfV^ VCLhV@iVRVOPkVL} lVC =mV~QnVc) oV^[2pVW qVL\ rVPG sV LCtV"M݆uV#H: V$OPV&CLxV(G;yV)OzV*H V,OPV.CL}V0ET~V2GV3H V4E~V6OP~V8CLV:BViLV?\ٙVACL VCGuVFCLVIOP VJOVLCLVMCLVOG4VRCLVUOPVXp3 VYW VCLVCLVCLVH Vg33 Vr VPff Vv VHVR\VfR!Vf "VN#V{g $VMq%VKT&VNR'VJ&(VFVCL*VC+V^VCL-VD- VOPVCL0V|& 1VM 2VIcN3VKV4VEINVOP6V]VCL8VFRVCL:VEѕVCL<V@Q=VHdVOPVCL@VPAVFBVEgVCLVOPEVy1 HVAIVU' JVrݖKVXLVYuc VB)VEVVGoVKVI"dV@ V BVV M^V D V z V E)hVOVI?CVLVr VJPVEVVOVulV LV!MpVLo^ VMJVNAVPCLVSEVTEhVUOPVXCLVYCLVZCLV[CLV\CLV]CLV^CLVaPVbM3VcNgVeG Vf_ > Vg_ > ViCLVjCLVkCLVlCLVmCLVnCLVpCLVq]VrCLVsCLVtCLVvN/}VwCLVzD9V|CLV}CLVBVCLVCLVCLVOP$VHp%VHj&VKVCL*VG-,V^PVOP.VS3VCLVCLVOPVCL3Vpa4VA6VX337VU348VU9Vb:VZ3;V^Y<V]lVOP>VS j?VEn@VE,bAVU1mVOPDVBnEVERwFVDGVMZV}fgVDV~4V^) VPlV@} Vyl Vt!N VvY Vup !VCL VCLVCLV` VOPV DV!IV$t>u V%m4 V&zV(ov"V+CLV,CLV-CLV.CLV/CLV2EBV3C*tV5JwV8rE V;I V=q^ V>s V?M:T VBrfVECVI{ VJEVKIVLy`BVMvh. VNFyVODVyKV}mi Vxff V`V^yV^ VCLVCLVCLVCLVCLVOPVOPVOPVCLVIcVHVIعVHJMVgVg}eV&W}fVxHϒMV@ kNVD?OVF]PVBQVRRVQ/SVn`* TVDVVe XVDcYVE[V)\VUr^Vdu_VBj`V@aVvaHbVzHcVx=qVCLVCLVCLgVlG/ VCLVCLVCLV CLmV DnV}oV_Ql VCLVCLVCLVCLV@CLVACLVBCLwVE{xVFP{yVGR34VHOP{VKfwx |VN`|m}VOrM;~VQ]VS)n VUE?VX ~V[OPV^R |V`CLVcDi<VdFgVfFMViMeuVkCLtVlCLVnCVpuv Vqo 5VsG6VtFEVuOPVwCL:Vy~l^ ;VzFL<VP?VAVOPVCLBVACVyDV}У EVQRFVL\GVW HV} LVo\* MVP( NV~R OVEAPVDQVGԬRVF~TVG !UVF-HVVEoVOPVCLYV@RZVAKVOPVCL]Vv3VJ4VEAVOP6V]VCL8VEVCL:VEWVCL<V@-S=VHGVOPVCL@VPAVFBVET.VCLVOPEVx HV~P9IV`` JVX KVXVLVYIc VB8PV@VGeVKVH/V@ VBVVM^VDwVzVE:V OV4HV5LV8r V:JPV=EVV>L"V@uVALVCMk}VFo^ VGJVHFVJCLVME\VNEeVOOPVQCLVRCLVSCLVUCLVVCLVWCLVXCLV[NgV\G6gV]RYV^G V__ > V`_ > VcCLVdCLVeCLVfCLVgCLVhCLViCLVj]VlCLVmCLVnCLVoN. VCLVD>fVCLVCLVB}VCLVCLVCLVOP$VH%VH^=&VJB.VCL*VG *,V^~VOP.VSYVCLVCLVOPVCL3Vpp4VA6VQ7V@Y8VP@9Vb:VZg;V^ <V\VOP>VRTn?VE@VE@AVT0VOPDVBsEVE=FV D;GV MV ~V DS4V }gV ^ V P9V @JWV y]w V t!N V vW V u65 !V CL V CLV CLV a V OPV C{V IbV t' V !m V #}]V %oV 'CLV (CLV )CLV *CLV +CLV /E?3V 0CV 1MV 4rk V 7H{ V aq+ V bs V cM V grV jCaV m{ V nEWV oIkV pydZV qvK V rFV tDV uK)V vmv V yvU V zafV {^yV |^ V ~CLV CLV CLV CLV CLV OPV OPV OPV CLV I4^V HV IV H>V xffV xff}eV #Wۓ}fVnH_MV @ 0NV DOV FPV BQV R\RV Q=SV nQ TV DVV e& XV D^YV E [V +\V S^V d_V Bj`V @uaV sbV ukcV tW V CLV CLV CLgV l J V CLV CLV CLV (CLmV +DnV .}ٚoV /^ V 1CLV 2CLV 4CLV 5CLV 6CLV 7CLV 8CLwV ;uxV OV ?OP{V BfDD |V D`&}V Ep{~V G]V I)n V LE)V O|ƚ ~V QOPV TUv |V VCLV ZDgmV [FHqV \FqV _G2uV aCLtV cCLV C>V tn V o| 5V G6V FV OPV CL:V ~24 ;V Ep<V P?V AV OPV CLBV AҩCV w;DV }t EV IFV LGV L\HV }w LV o MV P NV ~R OV EPV DQV GRV FwTV FlUV F VV EV OPV CLYV @RZV @=V OPV CL]V u ^V WV OPV CLaV LV OPV CLdV CDV OPfV ^ V CLhV @`2iV UHV OPkV LYD lV DQmV @pnV b oV _ ?pV Uf qV P. rV R sV L7tV MuV H AV OPV CLxV FyV Q8zV IV OPV CL}V F/~V Gv[V !G=V "EV #OP~V %CLV 'B=V )H V *g33V TiV U\ٙV WCL V YF:V [CLV ^OP V _QjV aCLV cCLV eFV gCLV jOPV mo۔ V nW V qCLV rCLV sCLV vG V wb V xl V yR33 V {v^. V |LV }VffV ~i!V } "V dY#V O$V Mk%V Jȩ&V N^'V J:(V FxV CL*V BE+V Z_V CL-V D- V OPV CL0V { 1V Ix2V I3V J54V D V OP6V ]V CL8V EV[V CL:V EV CL<V  =V H*V OPV CL@V PIAV FxBV EAUV CLV OPEV xH HV HxIV hx| JV FZKV X!LV Zƥ V BFV @-SV GV KV I"dV @ V A V M^V DV !xdV "E gV %OV 'I^!V )K4V ,r V .JPV 1EVV 2QIV 4vV 5LV 6MfV 9o^ V :JV V U_ > V WCLV CLV CLV CLV CLV CLV CLV ]V CLV CLV CLV N(EV CLV D;V CLV CLV CV CLV CLV CLV OP$V H:%V HQ&V RV CL*V F ,V ^V OP.V SV CLV CLV OPV CL3V pk4V A{6V Zg7V M8V Yٙ9V bĄ:V Xy;V \<V \,V OP>V S0?V E@V EAV U.V OPDV BZpEV E*FV DiGV MokV B0V G,V AV ^ V PV @$V yN V t!N V u V t !V CL V CLV CLV _LK V OPV CuV I=)V s V mv V V o+V CLV CLV CLV CLV HCLV KE<}V LBsV MHMV QrN V TG V Vp- V WsU: V XLN V [q`V ^CV az V cEsZV dISV ey`BV fv- V gFqV hD4KV jL V nmJ V qw V r`ɚV s^yV t^ V uCLV vCLV xCLV yCLV zCLV }OPV ~OPV OPV CLV IV HV IFV H6[V gffV gff}eV `l}fV ILMV @NV DgOV FPPV BgQV RRV Q SV me TV DVV e XV DYYV Dֺ[V R\V W^V b%_VBc`V@aVw4bVyqcVv34VCLVCLVCLgVl$ VCLV CLV!CLV"CLmV&DnV)}oV*^ V,CLV-CLV.CLV/CLV1CLV2CLV3CLwV6p{xV7N yV8QkV9OP{VCL}V@F(~VBGLVCGhVDEVEOP~VHCLVJBVLHfL VMgVNiVO\ٙVQCL VSF?VVCLVYOP VZO9V\CLV]CLV_F~VbCLVeOPVho ViVы VlCLVmCLVnCLVqG Vrb3 Vsl VtP3 Vuv& Vvr=q Vw~R VD( !Vn "VQs4#VB$VL!%VJJ&VNG'VJ (VFbVCL*VBw+VaVCL-VDVOPVCL0V{LS 1VH2VHP3VJJ4VD|VOP6V]VCL8VElVCL:VElVCL<V =VHVOPVCL@VPJAVFDBVE-VCLVOPEV x# HV FLIV l JV ~nKV WLVZ%\ VBUZV@;VGVKVHKV@ VAxVM^VDVzVDsV Oe!V#ISV$K:[V'r V)JPV,EVV-LvV/uV0LV1MY?V4o^ V5JV7XV:CLV=E{}V>DV?OPViCLVjCLVkCLVlCLVmCLVnCLVpCLVsP,VtG6gVuNgVvG Vw_ > Vx_ > VzCLV{CLV}CLV~CLVCLVCLVCLV]VCLVCLVCLVN+)VCLVD4qVCLVCLVBVCLVCLVCLVOP$VH%VHG&VMVCL*VF,V^VOP.VSWVCLVCLVOPVCL3VpN4VA6VQf7VD8VU 9Vb:V];V`g<V_VOP>VR?VE@VDAVTYVOPDVB4EVEFVDfGVMVAS3VFlVAIV]@ VOV Vy@Y Vt!N Vu Vt !VCL VCLVCLV` V0OPV1Ct V2IV5sF V7mm V9gV:o=JVCLV?CLVACLVDE7VEBVFNTVIrs VLH VNp^ VPr VQOiP VTo3VWCTVZ{ V[EV\IV]y`BV_v V`F>KVaFLVcKRVfm- Viu Vj`Vk^yV^ VCLVCLVCLVCLVCLVOPVOPVOPVCLVH@VHeVIVH+zVg(Vg(}eV9`t}fVIGMV@NVD OVF~PVBQVRRVQSVn% TVDVVe`E XVDuWYVDi[VnR\VS&f^Va٨_VBc`V @zBaV ubV vBcVtVCLVCLVCLgVl VCLVCLVCLVCLmVDnV!~|oV"^@ V%CLV&CLV'CLV(CLV)CLV*CLV+CLwV/zGxV0NǮyV1Q\)V2OP{V]e |V_b L}V`ps~Vc]Ve VgDVh@mE~ViOPVlRRp |VoCLVrDYVsF VtFZVwQuVzCLtV{CLV}DYV~t Vp/ 5VG 6VFVOPVCL:V}u% ;VA<VO?V@gVOPVCLBVACVu DV} EVNFVPGVSHHV}G9 LVpQ MVP NV34 OVE4PVDQVGRVFgTVFUVEVVFVOPVCLYV@bZV@VOPVCL]VuS[ ^VJāVOPVCLaVG`VOPVCLdVC'VOPfV^ VCLhV@iVVDVOPkVLN& lVBmV}nVc oV^cpVT qV$N rV%P\ sV&LtV'MuV(GV)OPV+CLxV-F?yV/JzV0IV2OPV4CL}V6F~V8G+"V9GV:E{SV;OP~V=CLV?BUZVBH8 VChffVDj3VE^ VGCL VIEVLCLVOOP VPOX!VRCLVSCLVUFLVXCLV[OPV^ouq V_Vы VCLVCLVCLVG Vm Vl VN Vv VLVVffVi!V` "VM@#Vy $VL%VJj&VM`'VJk(VFOVCL*VBw+V\!WVCL-VCBVOPVCL0V{= 1VQM2VH3VJn4VDVOP6V]VCL8VE2VCL:VEV[VCL<V =VGVOPVCL@VP-AVFBVEVCLVOPEVw HVC"IVg JVsKVX]LVZ}W VBcV@;V GV KV I"dV @ VAqVM^VDnVzVDfVOyVIg5VK1CVr VJPV!EVV#OP/V%uV&LV'MUVRo^ VSJVU^VWCLVZEEDV[DV\OPV_CLV`CLVaCLVbCLVcCLVdCLVeCLVhPS3ViG6gVkNgVlG Vm_ > Vn_ > VpCLVqCLVrCLVsCLVtCLVuCLVwCLVx]VyCLVzCLV{CLV}N"~V~CLVD2VCLVCLVBrdVCLVCLVCLVOP$VHpc%VH<6&VHjVCL*VF,V^]VOP.VSVCLVCLVOPVCL3VpL4VA6V\ٙ7VVٚ8Vd349Vb2:VYFf;V]&g<V\YVOP>VR:}?VEo@VD݄AVToVOPDVB LEVEFVDLGVMI$VAIVFVA4V]2 VOuV$ Vy#; Vt!N Vup Vtx !VCL V CLV!CLV#^ V&OPV'CnV(HV+r V,m- V.HV/ol/V2CLV3CLV4CLV5CLV6CLV9E4[V:BwVCLVAOP VBPEwVDCLVECLVGFq>CL>OP> o > V >CL>CL>CL>G >@33 >R >Vfg >u{ >NR>Vff>i!>^ ">M4#>w3 $> L7%>!JX&>"N '>$I(>%FL>'CL*>)Brd+>*YR>-CL->/C>1OP>2CL0>4{/9 1>6Kp2>8HJ3>9JC4>:D>;OP6>e]>fCL8>hE]>kCL:>mE2>pCL<>r~ =>sGx>uOP>wCL@>zP94A>{FwB>|EN>~CL>OPE>w H>@{I>Z? J>m/3K>X!L>Z%\ >B>@Je>H >K>H/>@ >A>M^>D}(>z9>E>O>Hn>K)>r >JP>EV>P'3>u>L>ML{>o^ >J>bl>CL>E>D>OP>CL>CL>CL>CL>CL>CL>CL>Ng>F3>P4>G >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>]>CL>CL>,CL>-N#8>/CL>2D8>4CL>7CL>9D- >=CL>>CL>@OP$>BHZ%>CH/.&>ES>HCL*>KF,>L^+ >MOP.>NS>PCL>QCL>SOP>UCL3>Xp>t4>ZA{6>]a7>^Jٙ8>_Z&g9>ab:>cY;>d^g<>e]@>fOP>>gR?>El@>DȬA>T>OPD>BiE>DF>D2G>M8>~>Dy>~&f>\ >OL> >y >t >u65 >t>u !>CL >CL>CL>` >OP>CY>Hb>r >l9 >C$>oJ>CL>CL>CL>CL>CL>E5B>BuW>PHZ>qˈ >GL >o >rz >P(z >p>B>z$ >F>H>y`B>u} >F7 > HU> K > ll >x* >`f>^y>^ >CL>CL>CL>CL>CL>OP>OP>OP> CL>#H>%H@>&Iz>'H>)zL>*zL}e>u5?}fVpIM>m@N>oDO>pGP>qBQ>uSR>vQ iS>wn4a T>xD@V>ydp X>zD~XY>|D [>~R\>VE^>eC_>Bc`>@a>uǯb>zc>xg>CL>CL>CLg>k >CL>CL>CL>CLm>Dbn>}go>^ >CL>CL>CL>CL>CL>CL>CLw>zx>KRy>QǮ>OP{>f |>_}>q~>]> >E>}f ~>OP>S |>CL>DY>Fh>Fq>Hgpu>CLt> CL>#D+>$tT >%oE 5>'GD6>)F%>*OP>,CL:>.}: ;>/F}<>1O?>2@>3OP>5CLB>7AC>9wlD><}Z E>>J(F>?NzG>@[H>A|g L>Bp M>CQ N>D34 O>EDP>FD>rQ>GG'R>HF\T>IFFU>JEiV>LG&>MOP>OCLY>Q@Z>R@>TOP>VCL]>Xt ^>YE@>[OP>CLa>CL!>OP>CLd>C=>OPf>^ >CLh> i>Q^>OPk>L3, l>B m>}n>aq o>^p>V\ q>Q r>Rk s>Lt>Mu>G5X>OP>CLx>Fiy>Rlz>J>OP>CL}>FL~>Fٗ>G> >Ej>OP~>CL>By>GM >gf>j >]L>CL >EO>CL>OP >Of>CL>CL>F~>CL>OP>p3 >W >CL>CL> CL> GjG > s34 >BL >tfg>uq_ >L>Tz>h!>o ">]s3#>| $>L%>Jpx&>M'>I(>F1>CL*> Bk!+>!_{)>LCL->NC>POP>RCL0>T{/9 1>UJ2>WH3>XJ4>YDg>ZOP6>\]>^CL8>`Ed>cCL:>eE>hCL<>j~ =>kG>mOP>oCL@>rP+A>sF4B>tEn>vCL>yOPE>|w H>~} I>eY J>hK>WL>Y >Bn>@X>Gx>K>I"d>@ >B>M^>D8>zJ>EA>Op>IC>K4>r >JP>EV>Lv>uŲ>L>ME/>o^ >J>d>CL>EZ>D>OP>CL>CL>CL>CL>CL>CL>CL>Qf>N3>XP>yp>_>_>CL>CL>CL>CL>CL>CL>CL> ]>!CL>"CL>#CL>%N#>'CL>)D9>+CL>,CL>.C>1CL>2CL>3CL>6OP$>7HJM%>8H%&>:Mi>=CL*>@F{n,>A^Q>BOP.>CSQ>ECL>FCL>HOP>JCL3>Mp4>OA6>zhٙ7>{T8>|d 9>~b:>`;>^<>c>OP>>R8T?>EX@>DtA>Tg>OPD>CY1E>D=F>DG>MS>~L>Dg>~>] >O):>[ >y >t!N >u ~ >t !>CL >CL>CL>^ >OP>Cho>H>s >l9 >lX>o>CL>CL>CL>CL>CL>E5B>B[7>G>q^ >H{ >o >rN >L1s >s\>BM>{ >G&">Ha>y`B>uZ >FE>IS>L+ >l >v@ >`> ]3> ^"> CL> CL>CL>CL>CL>OP>OP>OP>@CL>CH_)>EHs>FId>GH>Jh(>Mh(}e>R}f>#J M>h@5N>jD iO>kG8VP>mBۤQ>pS8R>qQHS>rm T>sDdV>ten X>uD\Y>xD_[>y|u\>zR^>e1_>Bc`>@a>vpb>yc>wW >CL>CL>CLg>kx >CL>CL>CL>CLm>D n>}o>] >CL>CL>CL>CL>CL>CL>CLw>q >x>LaHy>Q.>OP{>f |>` q}>pg~>]> >D7>} ~> OP> R^ |>CL>Db>F6S>Fk>Lu>CLt>CL>D->u > o 5>#G6>$F>%OP>'CL:>)}: ;>*DZ<>,O?>-@>.OP>0CLB>2AC>3B"D>4} E>6H=qF>7LG>8J(H>9| L>:p M>;Q N><34 O>DP>BQ>GR>FzT>FU>ECV>H*>OP>CLY>@QZ>@>OP>CL]>t ^>CSc>OP>CLa>A/>OP>CLd>C >OPf>^ >CLh> i>O>OPk>L=} l>D33m>}n>bxR o>^p>Xf q>PL r>S) s>LLt>Mnu>G_>OP>CLx>F[Gy>O?z>J˽>OP>CL}>F~>Fs>G>E_>OP~>CL>Bk!>Gmv >g>i&g>\4>CL >E9[>CL>OP >K"> CL> CL>4F?>7CL>:OP>=p^ >>WV >ACL>BCL>CCL>FGd >G|34 >HB >IE >JuP >KNR>LVff>Mj\!>NB&f">O[#>P| $>RLvG%>SJ~&>TMp'>UI'(>VF9>XCL*>ZBc+>[Z>^CL->`C>bOP>dCL0>f{ 1>gIF2>iHi43>jI4>kDD@>lOP6>n]>oCL8>E9[>CL:>D>CL<>~s =>G>OP>CL@>PEA>EB>D>CL>OPE>vܹ H>H<I>k J>buK>XcL>Y, >B>@gv>G>K>I"d>@ >B>M^>D>zF>E g>O`>Hκ>K:[>r >JP> EV> R> u> M > ME/> o^ > J> eS> CL> E^> D> OP> CL> CL> CL> CL> CL> CL> CL> Ng> G6g> !Q9> #xR> $_> %_> 'CL> (CL> )CL> *CL> +CL> ,CL> -CL> /]> 0CL> 1CL> 2CL> 3N&> 5CL> `D8> bCL> cCL> eBw> hCL> iCL> jCL> lOP$> mH;%> nH&> qI!> tCL*> wF`I,> x^24> yOP.> zS> {CL> |CL> OP> CL3> p4> A6> O7> N8> Z&g9> bx:> Y,;> ]<> \> OP>> RWP?> ED@> D5A> Tw> OPD> GE> DѼF> DG> M2> B> Gfg> A> \] > O%> # > x > t > t4 > sl !> CL > CL> CL> `EA > OP> Cy> HӀ> r+ > ll > p;> o> CL> CL> CL> CL> CL> E7> BD> Hf> q3 > G > o > r1 > Om > (sS3> ,BQ> /z > 0Gu> 1H> 2y`B> 3u6 > 4FL> 6I> 8K> ;lo > >w. > ?aP> @]C3> A^"> CCL> DCL> ECL> FCL> GCL> KOP> LOP> MOP> OCL> RH9> SHe> UI> VH> Yh33> \h33}e> TZ=}f>JMM> @RN> D iO> GP> BQ> SR> PS> n% T> DV> e& X> D^Y> DPg[> \> UB"^> fb_> Bc`> @pa> ub> wW c> u\> CL> CL> CLg> lR > CL> CL> CL> CLm> Dsn> }6go> ] > CL> CL> CL> CL> CL> CL> CLw> sQx> L34y> N> OP{> g |> ay}> qfB~> ]>  } > DF>  ~> OP> Q |> CL> "DS> #F"> $Fi> 'Qsu> )CLt> *CL> UD+> Vvc > Wp;e 5> YG}6> [F> \OP> ^CL:> `}: ;> aCh<> cOJg?> d@o> eOP> gCLB> iAZC> kD> n}N E> pLQF> qO\G> rJ(H> s|ڨ L> tp M> uQ N> v~R O> wD\P> x@AQ> yG(R> zFgT> {E!U> }EV> ~H> OP> CLY> @gvZ> @n> OP> CL]> t4 ^> AZ> OP> CLa> @> OP> CLd> C > OPf> ^ > CLh> ' i> L> OPk> L- l> @m> z=qn> b o> ]p> Uk q> P r> R{ s> LvGt> M8u> G&"> OP> CLx> FEy> L;z> Jn> OP> CL}> F?~> F:> F> EP> OP~> CL> BN> G: > g> is3> ]L> CL > !DX> $CL> &OP > (Es> *CL> +CL> -F> /CL> 2OP> 5p > 6W( > 9CL> :CL> ;CL> >GD > ?r > @BL > Btfg> Cu: > DJH> EW\)> Fk!> Gn3 "> HY@#> IC3$> JL_%> KJ&> LMp'> MI(> NF%> PCL*> RBUZ+> Sa> VCL-> C> OP> CL0> { 1> G2> HD3> IH4> D#> OP6> ]> CL8> EG> CL:> D> CL<> ~ => GgR> OP> CL@> P_A> EB> D'> CL> OPE> vt H> DWI> nz1 J> _1K> XzL> Z > Bw> @u> G> K> H> @ > B)> M^> D}(> zIt> E'> OP> I> K+> r > JP> EV> Lv> u> L> MA> o^ > J> g7> CL> E> D> OP> CL> CL> CL> CL> CL> CL> CL> Ng> G6g> Pg> G > _ > > _ > > CL> HCL> JCL> KCL> LCL> MCL> NCL> O]> PCL> QCL> SCL> TN%b> VCL> YD8> ZCL> [CL> ]CZ> `CL> aCL> bCL> eOP$> fH0%> gH8&> jSU> lCL*> oFJ,> p^A> qOP.> rSR> tCL> uCL> xOP> zCL3> |o4> ~A6> Z&g7> Q&f8> cL9> bu4:> Z34;> _g<> [> OP>> Rj ?> E6[@> DA> T> OPD> H E> D<F> DaG> MV$> A> Fc3> A\> \z > No> O? > x > t > tz > s !> CL > CL> CL> ^; > OP> C> HD> rz > lo > ޭ[> oy> CL> CL> CL> CL> CL>E7>B&>J >qt >H3 >o7 >r >L" >!n<>$Bt>'{ >(Gx>)H/>+y`B>,u >-FT>.I\>/JZ>0lD >3us3 >4`>6^y>7^ >8CL>9CL>:CL>;CL>=CL>@OP>AOP>BOP>DCL>HH>IH\p>JIg>KH >vgp>zgp}e> a&}f> UJ"M>AIN>DO>GCP>B~Q>S'CR>PS>me T>DR>V>e'9 X>D\Y>1D2:[>2\>3Vg^>7fz\_>8Bc`>9@a>;uzb>=u>>?CL>ACL>BCLg>Ek >GCL>HCL>ICL>JCLm>NDbn>Q}4o>R\ >TCL>UCL>VCL>WCL>XCL>ZCL>[CLw>^s34x>_Ly>`O>aOP{>de |>gbTb}>hrև~>j]> } >D>}f ~>OP>Ra |>CL>DLK>E>FQ">NYu>CLt>CL>D>u >o 5>G 6>Fa>OP>CL:>}T ;>Ac<>N?>@E>OP>CLB>AC>|D>} E>O34F>LG>aQH>| L>p M>Q N>34 O>D$VP>@Q>G'R>FYT>EU>DUV>G>OP>CLY>@Z>@X>OP> CL]> t[ ^> 7 >OP>CLa>7 >OP>CLd>C>OPf>^ >CLh>!Fv i>"W.>$OPk>%K l>&DHm>'@Rn>(cW o>+^9Gp>-Uff q>.N r>/Q s>1LkXt>2Mu>3F>\OP>^CLx>`F(y>aRcz>bK)>dOP>fCL}>hF?~>jFO>kF>mE?>nOP~>pCL>rB8P>tF >uhٙ>vk>w^33>yCL >{D>~CL>OP >GJY>CL>CL>F >CL>OP>of >U >CL>CL>CL>G >s34 >BL >s34>u >NR>W\)>i!>m ">V@#>Aff$>L;%>Jk&>N'>I(>F$5>CL*>B"+>Z>CL->Cμ>OP>CL0>z 1>L2>H 3>I4>C\>OP6>]>CL8>E@>CL:>D>CL<>} =>GQ>OP>$CL@>'OA>(EɔB>)E>+CL>.OPE>1v3@^I>6\ J>7ZK>8XOL>9YIc >=@>>Gx>@K>BH)>C@>DBEa>EM^>FD >Gz8~>HDs>KO>MH>NK&X>Rr >TJP>WEV>XR>Zu >[L>\M<>_o^ >J>h >CL>Ew>D>OP>CL>CL>CL>CL>CL>CL>CL>Ng>G6g>XY>G >_ > >_ > >CL>CL>CL>CL>CL>CL>CL>]>CL>CL>CL>Nq>CL>D9>CL>CL>B>CL>CL>CL>OP$>H%>H0&>Km>CL*>F$,>^>OP.>Sh>CL>CL>OP>CL3>o4>A6>I337>G8> Y9> bZ:> Z ;>\f<>\>OP>>R?>E @>DA>Tfz>OPD>HE>DMF>DVG>M'1>|3>C>~3> \h >"N>#~, >&x >'t' >Pt>u >Qs8 !>TCL >UCL>WCL>Y]Z7 >[OP>\C>]H|>`q >ak >d>eo]>gCL>hCL>iCL>jCL>kCL>oE8>pA,>qJ>tq9 >wGH >yn >zq >|JY >m3>B2>{ >HO >Hd>y`B>ua >Fb>IL>K>l >x >`>^|>^">CL>CL>CL>CL>CL>OP>OP>OP>CL>GD>HM>Ii>Gv>g>g}e>d_l}f>J\M>@UN> DO>!G P>"BuKQ>%S+R>&PRS>'m4 T>(DYV>)dp X>+DYY>-D33[>.4T\>/Ox^>2gH_>3Bc`>5@zBa>7vb>8xc>9u=q>;CL>=CLg>@kV >CCL>DCL>ECL>FCLm>ID+n>L}o>M\ >PCL>QCL>RCL>SCL>|CL>}CL>~CLw>{x>O34y>Q >OP{>e |>a2}>rK~>]>~ >D>}~ ~>OP>U |>CL>D`1>E>F>O^u>CLt>CL>Dؔ>ua >pc 5>Gm6>Fz>OP>CL:>|= ;>GA<>N ?>@ü>OP>CLB>At@C>z5D>} E>DffF>P >G>PH>| L>r=q M>R\ N> O>DP>@ޝQ>GR>F7T>E(U>DV>G>OP>CLY>@۶Z>@C >OP>CL]>t>u ^> }T > OP> CLa>}R >OP>CLd>CU>OPf>^ >CLh>D O i>EV/>GOPk>HKF l>IB =m>K|ffn>Ld o>O^p>QUH q>RNH r>SP\ s>TL`it>UMSu>VF>WOP>YCLx>[Fy>]Q5z>^K?m>`OP>bCL}>dF:~>fF+>gF>hE7.>iOP~>kCL>mB1 >pF >qhff>rjf>s^ >uCL >wD%>zCL>}OP >~L#>CL>CL>Eѕ>CL>OP>oI >Uwu >CL>CL>CL>F2 >| >BL >F34 >t >JH>Up>i!>` ">T#>H$>L#c%>JV&>M'>I(>F>CL*>A+>aE>CL->C>OP>CL0>z? 1>Js2>G3>Ied4>Cٞ>OP6> ]>CL8>E>CL:>D|>CL<>}X =>GJY>OP>CL@>"OժA>#EB>$E>&CL>)OPE>,u} H>.C&/I>/fc J>0ZK>1XzL>2Yc >5B>6@>7Gx>9K>:H}^>;@b>>M^>?D >@z'>ADɲ>DOy>FIHW>GKm &r  &JP & EV & Lv & v &L &M4 &o^  &J|1 &iq &CL &E: &EN &OP & CL &!CL &"CL &$CL &%CL &&CL &'CL &*Pg &+G6g &,Y3 &-G  &._ >  &/_ > &2CL &3CL &4CL &5CL &6CL &7CL &8CL &9] &:CL &dCL &eCL &fN &hCL &kD8 &mCL &nCL &pBE &rCL &sCL &tCL &wOP$ &xH% &yG & &|Le &CL* &F X, &^^ &OP. &Sn &CL &CL &OP &CL3 &o4 &A6 &Mٙ7 &H8 &Yٙ9 &bZ: &Y ; &\4< &\33 &OP> &R'? &E@ &D}A &T &OPD &EgE &DF &D G &M` &A &Fvg &Aff &\IZ  &N &~_R  &x  &t'  &t'  &r ! &CL &CL &CL &`  &OP &C &HR &q3  &k  &= &o. &CL &CL &CL &CL &CL &E8 &AǑ &LU &q  &,G  &.n4a  &/qHF  &0R  &3n &6B &:z  &;Hs< &uS[  &?Fi &@I &AJ< &Ck  &Fv  &G`ɚ &H^| &I^" &JCL &LCL &MCL &NCL &OCL &ROP &TOP &UOP &WCL &ZGe &[HC &\I &^G &ag\) &dg\)}e &_#}f>JM &@N &CO &GtP &BLQ &S6R &P~S &n4a T &D5V &d X &DuWY &Df[ &By\ &W9^ &eB_ &Bc` &@zBa &ub &w8Rc &w > &CL &CL &CLg &k &CL &CL &CL &CLm &D2n &}4o &[ &CL &CL &CL &CL &CL &CL &CLw & {x & O)y & O &OP{ &d | &a<} &p\?~ &] &~  &D* &B~ &OP &!S | &#CL &&DUV &'EQ &)FR &,G,u &.CLt &/CL &ZE33 &[tu  &\o^6 5 &^G6 &_Fm &`OP &bCL: &d| ; &eF < &gN6? &@2 &OP &CLB &AeC &xRD &}N E &L\F &OG &LH &| L &q M &R{ N &34 O &CgP &AZQ &G|SR &F4T &EsU &D7V &HU &OP &CLY &@Z &@A &OP &CL] &s ^ &{= &OP &CLa &|` &OP &CLd &C &OPf &^  &CLh &~ i &T1 &OPk &L l &D\m &@n &a o &] p &W\ q &Q r &Q s &LY t &Mu &F\ &OP &!CLx &#FRy &$M2z &&K &'OP &)CL} &+F~ &-F &/Fx &0E)h &1OP~ &3CL &5BE &7Fo  &8hff &9j3 &;^Y &=CL &?D &ACL &DOP &EMk &GCL &HCL &JE &MCL &POP &SoXB  &TT &WCL &XCL &YCL &F͛  &r  &F  &Jff  &t  &w >  &A  &E ! &g33 " &T# &E&f$ &L % &J:& &N ' &IЍ( &E &CL* &A/+ &\5 &CL- &C> &OP &CL0 &z)B 1 &I52 &G3 &I>[4 &C &OP6 &] &CL8 &E &CL: &Du &CL< &|ƚ = &G ) &OP &CL@ &OˑA &EB &EH &CL &OPE &u H &I'I &k J &~nK &XeL &Z  &B &@ &Go &K &Hzx &@v &BeR &M^ &D  &z9 & Dɲ & O &H &K& &r  &JP &EV &Lv &v'* &KA &M+ &o^  &!J|1 &#g &MCL &PEb/ &QEb7 &ROP &TCL &UCL &VCL &WCL &YCL &ZCL &[CL &^Ng &_Mg &`Xf &aG  &b_ >  &c_ > &eCL &gCL &hCL &iCL &jCL &kCL &lCL &m] &nCL &pCL &qCL &rN! &tCL &wD9 &yCL &zCL &{D| &~CL &CL &CL &OP$ &G% &Gw& &Q &CL* &E, &^8 &OP. &SC &CL &CL &OP &CL3 &ol4 &A6 &Z7 &Mff8 &c9 &bK: &`g; &^Y< &eg &OP> &Q+? &E@ &DA &T U &OPD &CE &DF &DG &MN2 &~s4 &D6f &~ &[  &NX &~1  &x0  &t'  &s  &rn ! &CL &CL &CL &]b  &OP &C* &H &!qHF  &"k.  &$x &%ov &'CL &(CL &)CL &+CL &,CL &/E8 &0AF &1N~ &4pX  &7F  &:n  &;p  & N & O &CVP &BgQ &GJR &F7T &EP_U &DV &H &OP &CLY &@Z & &OP &CL] &s ^ &y@ &OP &CLa &{ &OP &CLd &C  &OPf &^  &CLh &~ i &Q &OPk &L l &Bm &~{n & b o & ]p &W( q &O r &Q3 s &LL_t &M`u &F &OP &CLx &Ey &Kz &K &OP &CL} &!Fݱ~ &#E; &$Ffe &%E &&OP~ &(CL &*A &-F2{  &.g4 &/j &0] &2CL &4DX &7CL &:OP &;L &=CL &>CL &@E &CCL &nOP &qo  &rT &uCL &vCL &wCL &zF  &{33  &|NL  &}F  &~tߦ  &JH &Tz &h! &^ " &M@# &Ff$ &Kh% &J'& &M' &IH( &E\ &CL* &A"+ &Y  &CL- &C: &OP &CL0 &z % 1 &H-2 &G 3 &I g4 &C &OP6 &] &CL8 &DZ &CL: &D_ &CL< &| = &G &OP &CL@ &OZA &EgB &F &CL &OPE &up H &CǶI &n J &X K &XQ_L &Z`  &B  &@ &Go &K &H &@ъ &BuK &M^ &D  &z w &Dr &OP &Ied &K" &r  & JP &5EV &6QJ8 &8vJQ &9L &:M&. &=o^  &>J|1 &@i &BCL &EE &FDq &HOP &JCL &KCL &LCL &MCL &NCL &OCL &PCL &SNg &UL &VYp &WG  &X_ >  &Y_ > &[CL &\CL &]CL &^CL &`CL &aCL &bCL &c] &dCL &eCL &fCL &hN &jCL &lD; &nCL &oCL &C= &CL &CL &CL &OP$ &G=% &G& &K &CL* &E, &]m &OP. &Sh &CL &CL &OP &CL3 &o94 &A6 &P7 &BL8 &Tf9 &b@O: &XL; &\< &[  &OP> &R? &DF@ &DA &T &OPD &D71E &DF &DG &Mx &}ٙ &D\ &~f &\Y  &Ne & }  & x  & s  & s  & r ! & CL & CL & CL & `b  & OP & Cq & Hn & q  & jH  & a & o1 & CL & CL & CL & CL & !CL & $E7 & &A & 'Hy & *p-  & -GU  & /n  & 0p  & 1Q  & 5o & `A8 & cz  & dH & eHk & fy\) & gu'  & iFxC & jI\ & lKq & ok)  & rvj  & s` & t^| & v^" & wCL & xCL & yCL & zCL & |CL & OP & OP & OP & CL & Gd & H0 & I & G & gH & gH}e & ar}f &hKM & @N & CO & GmP & B(VQ & S:NR & PS & m T & C1V & c X & DQPY & C٦[ & $\ & R9^ & c_ & Bc` & @zBa & v{b & xgc & wfg & CL & CL & CLg & k & CL & CL & CL & CLm & Dsn & *}o & +[) & .CL & /CL & 0CL & 1CL & 2CL & 3CL & 4CLw & 7r=qx & 9J(y & :O{ & ;OP{ & >c | & @b} & At~ & C] & F~  & HE" & K~ ~ & MOP & PQJ | & SCL & VDO & WE} & XFk8 & [Nu & ^CLt & _CL & aE"N & btĜ  & cn/ 5 & G6 & FW< & OP & CL: & |} ; & CZ< & O ? & @ & OP & CLB & A:%C & toD & } E & J(F & MffG & LH & |\ L & r=q M & S > N &  O & Ca-P & BQ & GR & FT & E.U & D_V & Hez & OP & CLY & @Z &  & OP & CL] & sc ^ & xH & OP & CLa & z & OP & CLd & C & OPf & ^  & CLh & ~s i & N & OPk & K l & E(m & AQn & d o & ]Zp & S q & NQ r & O s & LFt & MwXu & F & OP & CLx & EWy & SYz & K & OP & CL} & G~ & E# & FL" & E & OP~ & !CL & #A{ & &F  & 'g & (jY & )] & +CL & UD-  & XCL & [OP & \LYM & ^CL & _CL & aE & dCL & gOP & jo,|  & kT@9 & nCL & oCL & pCL & sF  & t}fg  & uBL  & vF  & wt  & xNR & yTz & zh! & {[ " & |M@# & }E$ & ~K`% & J& & N' & I( & E/ & CL* & A+ & _w & CL- & C & OP & CL0 & y{ 1 & N2 & G3 & H4 & C & OP6 & ] & CL8 & D & CL: & D4K & CL< & |C = & Fs & OP & CL@ & O A & EB & F9 & CL & OPE & uS[ H & AI & Tu1 J & d9K & XzL & ZB  & C & @ & G & K & H}^ & @ & BD & M^ & D  & zH  & !D# & %O & 'I- & (K & +r  & -JP & 0EV & 1Lv & 3u9 & 4L & 5M" & 8o^  & 9J|1 & CL & AEp & BD & COP & ECL & FCL & GCL & HCL & ICL & KCL & LCL & ONg & PKf & QNg & RG  & S_ >  & T_ > & VCL & CL & CL & CL & CL & CL & CL & ] & CL & CL & CL & N & CL & D; & CL & CL & BUZ & CL & CL & CL & OP$ & G% & G& & L & CL* & E, & ]\ & OP. & S & CL & CL & OP & CL3 & oI^4 & A6 & b7 & H8 & ^339 & b%: & [; & _< & ^ & OP> & Q? & D@ & DA & TU & OPD & IQE & Dw F & DvG & M9@ & A#3 & F & A#3 & [/2  & NOA & }  & xt  & s  & sU:  & r]\ ! & CL & CL & CL & ]y  & OP & Ct  & Hb & p  & jb  & u & oy & CL & CL & CL & CL & CL & HE7 & IAd & JN} & Mph  & PF  & Sm  & Tp  & UJx  & Xo & [AQ & ^{Z  & _H/ & aH] & by\) & cu ~  & dFxC & eI & fK  & gkZY  & jyUU  & l` & m^y & n^  & oCL & pCL & qCL & sCL & tCL & wOP & xOP & yOP & |CL & G? & H"i & I & G\ & g  & g }e & c <}f & aJM & A;N & CO & G8VP & AQ & S:NR & PS & m T & CwV & c% X & D?MY & C[ & ܴk}\ & UL^ & b8_ & Bc` & @zBa & wb & y*c & w8R &CL &CL &CLg &k &CL &CL &CL &CLm &Dn &#}go &$[#B &&CL &'CL &(CL &)CL &*CL &,CL &-CLw &0ux &1Oy &2O\ &3OP{ &6cUV | &8b} &:q~ &<] &>~  &@D &A@~ &COP &FT | &HCL &KD@ &tE] &uFpK &yNu &{CLt &|CL &~E0! &uv  &oX 5 &G>6 &FG &OP &CL: &|R8 ; &Ai< &N? &@ &OP &CLB &AC &s#bD &} E &QRF &LG &XH &|? L &q M &R\ N &34 O &C6]P &C5Q &G]R &F%T &EU &DAV &HE &OP &CLY &A2Z &^ &OP &CL] &r ^ &v &OP &CLa &y@Y &OP &CLd &B &OPf &^  &CLh &~OI i &LZ &OPk &K[ l &@\m &y =n &bJ= o &]p &Sz q &M r &PL s &LB[t &Mlfu &F~ &OP &CLx &Ey &Qz & K/ & OP & CL} &G~ &E &F' &D && &vN ' &wI( &Ei &CL* &A{+ &Zs &CL- &C4 &OP &CL0 &y 1 &Kg2 &Gs3 &HV4 &Cq &OP6 &] &CL8 &DZ &CL: &D &CL< &{ = &F &OP &CL@ &OyA &EiB &F4& &CL &OPE &t H &}hI &b: J &TW K &XL &Y  & C & @ & Go &K &Hv! &B3 &B= &M^ &D  &z  &D &O &I_ &KT & r  &"JP &%EV &'Rl &)u9 &*K= &+M &.o^  &/J|1 &1jU &3CL &6Em &7D &8OP &;CL &CL &?CL &hCL &iCL &lNg &mG6g &nNg &pG  &q_ >  &r_ > &tCL &uCL &vCL &wCL &xCL &yCL &{CL &|] &}CL &~CL &CL &N &CL &D: &CL &CL &DJ &CL &CL &CL &OP$ &G% &G:& &Q+ &CL* &Ej, &]` &OP. &Sk &CL &CL &OP &CL3 &o&4 &A6 &Q7 &Bf8 &P@9 &b12: &_3; &]g< &cs3 &OP> &R? &Du@ &DA &T &OPD &LE &DiF &Dt0G &M0 &~ &Dp &~f &[9r  &NF &}L  &xe  &s  &s  &r# ! &CL &CL &CL &_v  &OP &Ca &HI &p^  &0j'  &2j &4n &6CL &7CL &8CL &9CL &:CL &=E6* &?AF &@H &Cp  &FG33  &Hmh  &IpPL  &JPcI  &Nns3 &QA_ &Tz[  &UH &VH] &Wy\) &Xt  &ZFxC &[Ik &]K &`k  &cu  &d`f &e^| &g^" &hCL &iCL &jCL &kCL &CL &OP &OP &OP &CL &GF &H &I &GM &gff &gff}e &2ew}f &~KM &AN &CO &GYP &AQ &SAR &PS &n T &C~V &c F X &D6KY &C8[ &\ &Tx^ &dx_ &B\r` &@fa &u\*b &y{c &w8R & CL & CL & CLg &k5 &CL &CL &CL &CLm &Dn &}o &ZS &CL & CL &!CL &"CL &#CL &$CL &%CLw &(xzx &*Nfy &+NǮ &,OP{ &/c | &1a;} &2qF~ &\] &_~  &aDߞ &d}u% ~ &fOP &iUZ | &lCL &oDC@ &pE- &qF &rFֵu &uCLt &vCL &xE &ysH  &zn 5 &}G-6 &~F6 &OP &CL: &|C ; &@$< &N}? &@l &OP &CLB &@C &~D &} E &LQF &NG &Z=qH &| L &p M &R{ N &34 O &CP &CdQ &GmR &F;T &DU &DV &H ' &OP &CLY &AW3Z &U &OP &CL] &rz ^ &u6 &OP &CLa &x# &OP &CLd &B &OPf &^  &CLh &~ i &X  &OPk &K l &Dpm &@n &aR o &^^p &U q &L r &P s &L8Ut &Md1u &Fc &$OP &&CLx &(EsZy &*Nz &,Kk &-OP &/CL} &1G&"~ &3Eu &4F &5D &6OP~ &8CL &:Al &=E}  &>gf &?ig &@]L &BCL &DC &GCL &JOP &KK &MCL &NCL &PE@ &SCL &VOP &YoI  &ZS &]CL &^CL &_CL &Fm[  &r  &Sfg  &W  &t  &NR &Vff &h! &]g " &Rg# &C3$ &K:% &I& &MV' &Im( &E &CL* &AO+ &b &CL- &C &OP &CL0 &y 1 &I 2 &GY3 &H4 &CY &OP6 &] &CL8 &D &CL: &CB &CL< &{w = &F &OP &CL@ &OA &EvB &F+t &CL &OPE &t H &HRyI &ie! J &zzq K &XRL &Y  &C  &@. &Gx &K &Hzx &B3 & B5 & M^ & D  & xd &D &O &H &K? &r  &JP &EV &Lv &u9 &!K? &"MM &%o^  &&J|1 &Pjw &RCL &UE& &VD &WOP &YCL &[CL &\CL &]CL &^CL &_CL &`CL &cNg &dG6g &eX  &fG  &h_ >  &i_ > &kCL &lCL &mCL &nCL &oCL &pCL &qCL &s] &tCL &uCL &vCL &wN &yCL &|D7( &~CL &CL &B  &CL &CL &CL &OP$ &G% &G̶& &K &CL* &E, &^#) &OP. &S &CL &CL &OP &CL3 &o/4 &A6 &r&f7 &U38 &_@9 &b%: &ZS3; &]< &^3 &OP> &RV? &D@ &D?A &Tw &OPD &KE &D]F &DwG &M &~9 &D\ &~ &[`  &N &}  &xWc  &s  &r  &q ! &CL &CL &CL &_i  &!OP &"CH &#H;} &&p3  &'j ^  &)[ &*n &-CL &.CL &/CL &0CL &1CL &4E4[ &5A'm &7G߉ &:pmy  &=H"  &?m  &@pY  &AL/  &Dpc3 &HA9 &K{=  &LH/ &MH] &Ny\) &OtY  &PFxC &RI{ &|L( &j  &wٚ  &`f &^| &^  &CL &CL &CL &CL &CL &OP &OP &OP &CL &F> &HO &I} &G  &gz &gz}e &)c}f &xKM &@QN &CvO &G̨P &AQ &S>R &PS &n0 T &CiV &b| X &D-JY &C[ &ܣ\ &Uȉ^ &e_ &B\r` &@pa &w >b &x c &u &CL &CL &CLg &k &CL & CL & CL & CLm &DRn &}go &[F &CL &CL &CL &CL &CL &CL &DCLw &Gux &IKfy &JQ  &KOP{ &Nb | &Paw} &Qr2~ &S] &V~  &XD( &[ ~ &]OP &`Ro | &cCL &fDE &gE &hF &kKgu &mCLt &oCL &qE~w &ru  &so{ 5 &vG6 &wF(2 &xOP &zCL: &||5! ; &}FO< &N ? &@[ &OP &CLB &AC &(D &} E &L34F &OG &OH &{ L &p M &Q N &~R O &BgP &C`Q &GT~R &FCT &DȭU &CV &G &OP &CLY &AZ &r &OP &CL] &rN ^ &tU &OP &CLa &wna &OP &CLd &Bn &OPf &^  &CLh &} i &W & OPk &Kf l &@m &ypn &d( o &]p &TG q &M r &P# s &L2t &M\u &F\ &OP &CLx &!EOy &#K\z &%LC &&OP &(CL} &*G&"~ &,ELD &-Eg &.D' &/OP~ &1CL &3Al &6E  &7g &8j  &9^33 &;CL &=C &@CL &COP &DN( &FCL &GCLECL OP o;  Sp CLCLCLFO { B F34 t LVffg!y33 " ]g#!H&g$"K%#I&$M'%I(&EQ(CL**AAh+,\l.CL-0C~2OP4CL06x 17H]29G;3;H|4dCAeOP6g]hCL8jDmCL:oCμrCL<t{= =uFwOPyCL@|OxA}E]B~F4CLOPEtU HE&Im J}KX|LY C/@۶GxKHyB3BM^D z5E,OOIVKoAJPEVSu9K1CM o^ J|1jCLEk9DCOPCLCLCLCLCLCLCLQs4G6gXPG _ > _ > CLCLCLCLCLCLCL]CLCLCL,N.CL1D5Y3CL4CL6B\8CL:CL;CL=OP$>G-%?G’&BNkECL*HEij,I^8JOP.KS6LCLMCLPOPRCL3UnB4WA6Y`s47ZQ8[c9^b%:`X&g;a\`<b[34cOP>dRu?eD@fDAgTOPDL0EDUFD GMSAffF3A@[9r Mْ| xH s rE q^ !CL CLCL` OPCUH,HpY iމ n]kCLCLCLCLCLE2A rFp^ H l o R9 tA z HHO y\)t4 FxCI KyAjH y `^y^"CLCLCLCLCLOPOP OP"CL%F&G 'Iv)G,g/g}eeb}f &qKcpMrAX NtCOuGPvAHQyS6R{P/S|m4 T}C :V~bO XD$JYCwV[\VJ^dH_BUU`@pauLbxgcv*CLCLCLgk CLCLCLCLmDn}oZ[ CLCLCLCLCLCLCLw~xM8RyOOP{b33 |aK}qi~]~ DD}: ~OPR5 |CLD4DFb"P'3u$CLt%CL(E)tbN *nw 5,G6-F.OP0CL:2|& ;4ET<6M?7@[8OP:CLB<@C>}7pDA}s} ECGffFDL\GEUpHF{( LGp MHR{ NI34 OJB=PKCuQLGj8RMF TNDUOCpVPG} ROPTCLYVAZW~; YOP[CL]rs ^sF OPCLav OPCLdBOPf^ CLh} iUdOPkK lC\)mncf o]gpV qP rR. sL+tMZ(uF6SOPCLxE2yS zL OPCL}G4~E)ED܌OP~CLAt@E gfig^CL CL!CLOP KeCLCLDCLOPo  SNT  CL CLCLFA  N E t8 JHUph!a "Rg#D$K%I&M۲' IzF(!Er#CL*MA$Z+NY!<QCL-SCi(UOPWCL0Yx 1ZR 2\G3]Hu4^C&f_OP6a]bCL8dD̘gCL:jCulCL<oz =pFirOPtCL@wO\uAxD^ByF\{CL~OPEt[ HBIa0 JU&KW4LZ C=@=GoKHqB3BƘM^D z.E,OOPHK oAJPEVLvu9KM/o^ JmjpCLEDOPCLCLCLCLCLCLCLR G6gPgG G _ > CLCLCLCLCL CL!CL"]#CL$CL%CL'N+)CL+D3-CL.CL0C3CL4CL5CL8OP$9G7%:G&Rg?D@D}xATOPDJ|1EDIFDGM\~Dfg~3Z> M"|ц x+ s rk q !CL CLCL_ OPCJHo i pn"iCLCLCLCLCLE2@Ip3 I* l8 o L] r@{ HH@y`Bt FxCIiNK[j  uU  `3 ^| ^"CLCLCLCLCLOPOP@OPCCLFFAGGHIsIGtMgHPgH}eSJ}f(K'Mk@HNmCOnGŇPoA-QrS6RsPStm4 TvCVwbO XxDHYzCL[{\R0[^b_BUU`@paubwucuzCLCLCLgk CLCLCLCLmD}n~s4oZ_ CLCLCLCLCLCLCLwu=qxIyP >OP{bUV |bn}r/2~]~ D׮C~ OP Qg |CLD4D FKVNDuCLtCLEt  o9X 5"G6#F X$OP&CL:(| ;)D<+M?,@ML-OP/CLB1@C3{D6}\3 E8FF9M(G:YH<{ L=qG M>R{ N?34 OB%PCQG_[RE:TD>UC5VGOPCLYB Z~ OPCL]rs ^s T OPCLav OPCLdBOPf^ CLh} iS OPkK lA(mz=qnb o]b`pWL qP rSG sL#ctMTuEOPCLxE#yQkzL"aOPCL}GQ~EEDֿOP~CLAE hٙkff^gCL C4CLOP  M CL4CL6DX9CL  *_ >  ,CL -CL .CL /CL 1CL 2CL 3CL 4] 5CL 6CL 7CL aN+ cCL eD8 gCL kCL mB oCL pCL qCL tOP$ uG% vGL& yJ |CL* E<;, ^f OP. Sy CL CL OP CL3 nҲ4 A6 Z7 Qf8 Z9 b/: Zٙ; ^< _f OP> R1? D>@ Dv9A T} OPD IE D>F DG MO }y Df ~ [  M |  x#  sl  r1  qHF ! CL  CL CL a/  OP C* H8 o  i  \ n  CL CL CL CL CL E1 @ LO p  )HU  +lo  ,o;  -SnH  0of 4@ 7{  8Hk 9H9Q :yhs ;t  IL\ ?K @jb  Cz  Daf E^y F^" HCL ICL JCL KCL LCL POP QOP ROP TCL WF% YG ZIm [G ^j\) aj\)}e G$}fKzM APN CO H5{P A?;Q S.R PgfS m T C5V b X D$JY C9 [ \ Y^ eb_ BUU` @fa wW b y34c v CL CL CLg k  CL CL CL CLm Dx=n }4o Zfh  CL CL CL CL CL CL CLw y34x M4y M( OP{ b | bR} r ~ ] ~қ  D  }I ~ OP !h@3 | #CL 'D* (DV )F" *Gu TCLt VCL XF# Yt%  Zn 5 \G6 ^Fe _OP aCL: c{ ; dB< fMC? g@7 hOP jCLB l@C ny D q}c E sFF tL\G uSH v{ L wpQ M xQ N y~R O zBP {Cq$Q |GFR }FT ~DdPU CV H OP CLY BZ ~l^  OP CL] q ^ rN  OP CLa vh.  OP CLd B OPf ^  CLh }f i P^ OPk Kj l Bm }Gn c o ]qwp V q OG r Qu s Lt MO7u F7 OP CLx Ey Nz Li OP CL} GJY~ D Ep3 D OP~ CL A^v Eu  g4 j33 ^Y "CL  $Cw 'CL *OP  +R0 -CL .CL 0DX 3CL 6OP 8o,|  :S <  CL ?CL AFQ  C|34  DG3  EPff  Ft  Gv{  HA  IFQ ! Jw " KWf# LD$ MKz % NIC& PM@' QIZ( REz TCL* VA+ WZO CL- CL! OP CL0 xt 1 Jv}2 F3 H6[4 Bg OP6 ] CL8 D CL: C~ CL< zr = Fi OP CL@ O+dA DB Fk8 CL OPE sF H II fM J @K XL Y  CZ @ H  K Hv! B3 B L9 D  z  E,O O? Hn K oA JP EV Lv u9 K8 L o^  Jm k  CL E/ D  OP CL CL CL CL CL CL CL Ng Ki Pg G  H_ >  I_ >  KCL LCL MCL NCL OCL PCL QCL S] TCL UCL VCL WNV YCL \D4q ^CL _CL aB5 cCL dCL eCL hOP$ iGs% jG'& mOp pCL* rE,, s^J tOP. uSW  wCL xCL {OP }CL3 n4 A6 ^337 `8 c9 aJ: Y; ]< \g OP> Rl? DF@ DlBA T OPD I.E D4F DG Mh3 @ FY Aff Z*  M |  x  sl  qJ  q ! CL  CL CL _ [  OP C" H o7  i|  L m CL CL CLCLCLE0@#L9pY Hb" lo  o !L $o3'@(z )H]*H*+yl,t -F.IE0K821j63 4v@ 5`6^y7^"9CL:CL;CLbx>cuCLCLCLgk* CLCLCLCLmDn~yoZ_ CLCLCLCLCLCLCLwxxKzyPffOP{a |b9}t~]~қ  E } ~OPULK | lCm~\nd o])pXǮ qT = rTG sLtMIuE`OPCLxDyKzL3OPCL}G4~D&ELD OP~ CL AeE7 hj33]CL CwCLOP Q= CL!CL#DX&CL)OP+n -R( /CL1CL2CL5E 6r 7B 8r9t :L;UpQ#?E$hKi%iIpJ&kM'lIF(mE}oCL*q@+rbC uCL-wCayOP{CL0}x:D 1~I?2F3H4BOP6]CL8DSCL:Ci(CL<z =F/OPCL@O(AD8BFs1CLOPEsrb HH:Ikyt JwpKWLY Ci(AKGKHnBVCyL2HD z?E,OOPI\OK#oAJPEVLvvDK=Lo^ JmkCLEb/DOPCLCLCL0CL1CL2CL3CL6Ng7G6g9Pg:G ;_ > <_ > >CL?CL@CLACLBCLCCLECLF]GCLHCLICLKNLCLOD5YQCLRCLTD4KWCLXCLYCL[OP$\Gf%]GJ&`O/cCL*fEQ,g^=hOP.iS:kCLCLOPCL3nq4A6`s47c8c9b:[ ;_ <]4OP>Q݇?Dg@DfAT8hOPDI:DED*#FD GM8~D~ZH+ M|_ wt sl q p- !CL CLCLa/ OPC"G'o i {mCLCLCLCLCLE/ @ KH o+ IUU lD n SP o3@{ HGH#ylt !F"I/j$K`'j ^ *u +`p,^y.^"/CL0CL1CL2CL\CL_OP`OPaOPcCLfFUmhGܜiIajGmgpg}eq3p}fKLMA;NCۢOHnPA QS6RPGPSme TC.VbO XDHYCz[ĵM\W:P^cƕ_BN9`@pauLbvcu=qCLCLCLgke CLCLCLCLmDn}oZ[ CLCLCLCLCLCLCLwv\xMW yP{OP{bUV |b>}sx~$]&~ (D)Af~*OP-PO |0CL3D-4Dxy5Fn8P>u;CLtFLJ?t @n 5CGw 6DE]EOPGCL:I{ ;JF<LLE?@OPCLB@.CvPD}L EL\FLGTH{? LqG MQ N34 OC(PCEQGM?RETD!nUCUIVGOPCLYBEZ~ OPCL]q ^q OPCLauD OPCLdBNOPf^ CLh},l iW2OPkK l@my33nb o]b`pVp qN\) rQff sL tMDFuE2OPCLxDy Sz La OPCL}G~DE+uDJOP~CLAeD6 hj33^ !CL #CSc&CLQOP RQ9TCLUCLWDZCL]OP`oK aR dCLeCLfCLiE jDfg kM lT mt nLoVffph!qd "rO #tC$uK\%vI`&wM'xI9(yE^U{CL*}@.+~\pCL-CL!OPCL0w 1I2F3Gn4B%OP6]CL8DgCL:C=CL<y{ =F(OPCL@OADĽBFwCLOPEs HC Ink JpKX\<LX CwAGKHwBVCyL/cD zE7E,OOHKoA JP#EV%Oe'u9(L)L{,o^ -J_C/k 1CL4E5D6OP9CL:CL;CLCL?CLBXFgCNgDYFG G_ > H_ > JCLKCLLCLMCLNCLOCLQCLR]SCL|CL}CLNCLD3CLOPB5CLCLCLOP$G[%G &IpCL*E,^DOP.SaCLCLOPCL3n4A6X7M8Z9aJ:X&g;]4<\OP>Rg*?D@D]ATOPDIKED]FDxGM9ApFlAffYm Mf|

L;M@NC~OHPA QS.RPJSm TC Vb XD GYB[ҵ[\R^a3_BN9`@zBav\bycwuCLCLCLg kvA CLCLCLCLmDx=n~6goZ

tMAuE OPCLxDXyR-zLNvOPCL}F~D~0E D=OP~CLAeDa ffiL]CL BCLOP QmCLCLDVCLOPn R CLCLCLE ~ HL s34tvm LVffh!cf "If#xL $KL%IJ(&M'I%(EnG-CL*/@+0Y]3CL-5C6]7OP9CL0;w 1F3?G۵4AB9BOP6D]ECL8GDuJCL:LC OCL<Qy =RETOPVCL@YOAZD?B[F]CL`OPEcsc He@IU n Jm/3KXLZ C.A$ZGeKHpVBVCyL+ Dz9E,OOIOKoAJPEVLhu9K=L0o^ J_CkO%CLEgD{OPCLCLCLCLCLCLCLPgN3YgG _ > _ > CLCLCLCLCLCLCL]CL CL CL NcCLD0CLCLCi(CLCLCLOP$ GQ%!G&#RI&CL*)D`,*^ +OP.,S$.CL/CLYOP[CL3^nm4`A6cP7dL38eY39ga:i`3;j_,<kfLlOP>mQ?nDw @oDQApSjqOPDrIEsDFtDsIGuMy~zC{~|Z ~MV$| wS sl qV p !CL CLCLa>' OPBGپo; i x$ maCLCLCLCLCLE*k@gG~of I l n Q s\@=g{ H[G'yltx FI :Ki rU a^^"CLCLCLCLCL"OP#OP$OP&CL*Fd+GȬ,IV-G0h334h33}e{}fLLdMNANQC~ORG,PS@=QVS.RWP5|SXme TYBȚV[a XDFYBG[M\Wr^f/_BG`@zBaubx cv\CLCLCLgkW CLCLCLCLmDtn}yoZ't CLCLCLCLCLCLCLwp{xKzyPOP{awx |a}tG~]~қ Dw3 ~OPo{ |CLDbD2GYG7uCLtCLFuv o33 5 GkZ6 E1 OP CL:{ ;D=<M#?@OPCLB@CrD}L EQzF L\G!X\H"{ LLpQ MMQ NN~R OOC)LPPC QQG!RRETSCiUTCVUGVOPXCLYZB\Z[} ]OP_CL]aq ^bo dOPfCLahs jOPlCLdnBNpOPfr^ sCLhu|& iwVDyOPkzK l{Bm|}n}b o]f%pV = qP = rP\) sLtM8kuEOPCLxDVyO$:zL6OPCL}F~DaGDDOP~CLAW3D g4i]gCL CaCLOP RlCLCLDSCLOPo S CLCLCLEu r B rtu LSe!b " L33#!A3$"KA%#I-&$M'%I(&E?(CL**@++_5.CL-0C 2OP4CL06x+ 17Jo29FW3:G4;B]?CL8ADDCL:FC ICL<Ky =LENOPxCL@{O 2A}DqyB~FCLOPEsU: H|/rIb[ JgKW4LZ CA2GoKHv!BVCyL)D zJE,OOHRKoAJPEVPu9K<-Lo^ J_CjpCLEEeOPCLCLCLCLCLCLCLNgG6gXG _ > _ > CLCLCLCLCLCLCL]CLCLCLNCL D3 CLCLC:CLCLCLBOP$CGF7%DG9&GNICL*LD,M]>NOP.OSHQCLRCLUOPWCL3Ync4[A6^I47_J@8`Xf9caJ:eY,;f\<g\3gOP>hRk}?iDjr@kDJAlTKmOPDnLwEoDFpDfGqMtA#3uFwAxZ)j yMMzz|.> w s q p^ !CL CLCL_޿ OPCG’o7 i w`mCLCLCLCLCLE)@PI@o I kd nB M r@"`z$ HGydZt[ FH K i| uff `^p^"CLCLCLCLCLOPOPOP"CL%E&G'IO(G,gG/gG}eVg}fLMr@NtCOuH PvAQyS+RzP1S|m T}CpLV~c F XD GYB[[\V}^e(_BG`@pavbx.cvCLCLCLgkh+ CLCLCLCLmDzn}VgoZfh CLCLCLCLCLCLCLwxxKyPW OP{c |bd}r~]~қ Dd},l ~OPQ-F |CLD~DjFQJnuCLtCLGZudZ oX 5Ge6EOPCL: { ; Cef<5L?8@:OP@C@~ DC}- EEIFFLGGUHH{A LJpQ MKP NL~R OMC/PNBbQOG)RPEVTQCURBVSJ@TOPVCLYXA{ZY}I [OP]CL]_q+ ^`o,| bOPdCLafs hOPjCLdlBnOPf^ CLh|ƚ iThOPkK lzQmr{nb o]8pU qOL rQ sKtM3uEROPCLxDyKNzL;OPCL}G )~DEGDDOP~CLAE hj33^YCL C.CLOP S CL CL D CL OP o  T@9  CL CL CL EQ  {  Gfg  Q  t_  L Vff i! ~ " X33# E$ K7% !I(& "Mȉ' #I( $E@ &CL* (@۶+ )Z ,CL- .C  0OP 2CL0 4x0 1 5Iҏ2 7Fe3 `G4 aBn bOP6 d] eCL8 gD jCL: lB oCL< qy@ = rFR tOP vCL@ yNA {DX#B |F ~CL OPE s T H zI i J dS6K XDL YX  C4 A2 G K Hs< BV Cy L%F D  zJ E,O O? Ied K oA JP EV Lh u9 L Lm o^  J_C k  CL E D OP CL CL CL CL CL CL CL Ng G6g Pg G  _ >  _ >  CL CL CL CL CL CL CL (] )CL *CL +CL ,N .CL 1D/ 3CL 4CL 6B 9CL :CL ;CL =OP$ >G>% ?Gym& BHP ECL* HD, I^I! JOP. KSb LCL MCL POP RCL3 UnC4 WA6 YX337 ZFY8 [X49 ^a: `[; a^< b^ cOP> Q? D]@ DEOA T OPD ME CF D[G MI$ ~f D6f ~_ Yl  ML |  w3  s  pX  q ! CL  CL CL a<  OP B G p3  j  ~l m\ CL CL CL CL CL E$ @P Mi o  I  l5h  n  P   r#3   {Z  Ge G0 yl t[  F Ha K  ii  s  `3 ]3 ^  CL CL CL CL CL OP OP OP CL E "G #IK $G0 'L^ *L^}e Xc}fMM m@N oC~O pHP rA Q uS+R vP1S wm T xC'dV yb X zDHY }B[ ~1\ T^ c_ BN9` @pa ugb wuc u=q CL CL CLg kq  CL CL CL CLm Dn }Yo Z{c  CL CL CL CL CL CL CLw yx Ny P OP{ a | a} s&~ ] ~қ  E @"l~ OP P | CL DH D{_ Ff O-|u CLt CL Fe !sȵ  "n 5 %GZ$6 &E 'OP )CL: +{w ; ,B00< .MH? 1@ 3OP 5CLB 7@RC 9~QD <}D E >I\F ?LpG @O\H A{3 L Bo\* M CP N D~R O EC4/P FBQ GGER HET JC-U KB>V LLAt MOP OCLY Q@Z R|&  TOP VCL] qHF ^ o  OP CLa s  OP CLd By OPf ^  CLh | i Q^ OPk KN l E33m An c o \;p Y q QQ r U# s Kt M(u EM OP CLx D̘y Pz L OP CL} G~ D# D D OP~ CL @ D$  h j3 ^ CL  C CL OP  R[ CL CL DY CL OP oXB  S  CL CL CL E  qfg  B  s34 tb  NR Vff g! _ " R# CY$ K0Z% I%& M' I-( E CL* H@b+ Ib LCL- NC' POP RCL0 TxWc 1 UH=2 WFC3 XGW4 ZB? [OP6 ]] ^CL8 `C cCL: eC= hCL< jz7 = kF( mOP oCL@ rOA sD6B tFD vCL yOPE |rn H }BI ~mR J _`K X!L Y  C AAh G K Ht BV Cy L  D  z E,O O/ I"7 K oA JP EV Rz u9 K6 Lٛ o^  J_C k  CL EtC D OP CL CL CL CL CL CL CL Ng G6gPgG _ > _ > CLCLCLCLCLCLCL]CL CL!CL"N$CL'D/)CL*CL,DG.CL/CL0CL3OP$4G5%5Gr&8Sj;CL*=D,>]?OP.@S(BCLCCLFOPHCL3Kn# 4tA6wh7xQL8yb39|aJ:~W;[<]9OP>R.?DU@D?AToOPDNECFDY GM7~s4DI~fZ MHk|& w s p p !CL CLCL_ OPBEGouq ii )mCLCLCLCLCLE@<NW2o In k me N} qƥ z GG:yhstM FxCHmJiLl sf `f^y^ CLCLCLCLCL OP OPOPCLE'G6Q=qH7{ L8p M9^\ N:~R O;C7PEET?CUhB^ViKjOPlCLYn@Zo} qOPsCL]up ^wof yOP{CLa}s ~OPCLdB\OPf^ CLh| iO-|OPkK> lAmy ncz o]<pX\ qR rT sKwtM$\uEHOPCLxEyKtzL OPCL}G~D cDJD~FOP~CL@DC hj^YCL CaCLOP UCLCLDVCLOPnT RB CLCLCLE) ~ H ptT 0L1Up2h!3j33 "4Vfg#5LY$6K!%7I$&8MJ'9I,3(:E@R+?\BCL-DCUFOPHCL0Jxe 1KQ+2MF& 3NGuQ4OB&*POP6S]TCL8VC>YCL:[D^CL<`z =aG )cOPeCL@hPZbAiDBjFCLOPEr H~=IaM J_`KWLY C:AOGKHmqBVCyLDxdE,OO?IXK oAJPEVLvu9K<-LPo^ J_ClqCLEEeOPCLCLCLCLCLCLCLPgMS3 Ng G  _ >  _ > CLCLCLCLCLCLCL]CLCLCLNVCL D/"CL#CL$C/'CL(CL)CL,OP$-G(T%.Gm&1MN)3CL*^D,_]x`OP.aS?FcCLdCLgOPiCL3kn4mA6pO7qG8rS39ua:wZ;x]g<y_ zOP>{RBj?|DL@}D:qA~ThOPDN?_ECFDZGM@BGBZ M8{ w sF p< o+ !CL CLCL` OPB9Go i\ ͠ mECLCLCLCLCLE@Oo IU k_ m4 N` q) {/9 GoGydZtM FqHKiZi/3 vȉ $`p%^y&^ 'CL(CL*CL+CL,CL/OP0OP2OP4CL7E8Gm9IA;Go=z3>z3}ek<}fM&>MYA,N[CO\HSoP]AQS#sRPSm TBVaσ XDHYBy[\Wr^g'_BG`@paw8Rbx.cs*CLCLCLgki CLCLCLCLmDwVn~vgoX CLCLCLCLCLCLCLwr xO34yP(OP{a |a }s~]~қ D O ~OPT'U |CLDDNhFqFu CLt CL GtI nT 5GI6EOPCL:z ;FO<MY?^ OP!CLB#@uC%{DDP}- ERLQFSLGT[pHV{d LWpQ MX^{ NY~=q OZC9P[BVQ\FR]ExT^Cp`U_BLV`JaOPcCLYe@Zf| hOPjCL]lpӖ ^mo۔ oOPqCLass uOPxCLdyB?{OPf~^ CLh|} iLOPkKg3 lE(mAGnaq o\pX( qPff rR3 sK.tMuFC^OPCLxEOySzL3OPCL}G~CDuDrOP~CL@Dz z|YpCL CZCLOP W#CLCL[1CLCLo QY CLCLCLEr  Dfg !H "F #tf $JH%Tz&fR!'a "(NL#)J$*KT%+I&,M['-I(/E1CL*3@n+4Yp6CL-8C:OPwt 1@KF2AFG3CG`{4DBEOP6G]HCL8JC:MCL:OFRRCL<|{LS =}GOPCL@PTAD!BGCLOPEr HG I[= JZKX\<LZB CμA^vGeKI"dBVCyL8Dz+E,OOpHKoAJPEVPSu9K<-LŎo^ JPjpCLEY%DOPCLCLCLCLCLCLCLNgLNgG _ > _ > CLCLCLCLCLCLCL] CL CL CL NCLD2CLCLACLCLCLEOP$FG%GGh &JIiMCL*OD,PdJQOP.RS5TCLUCLXOPZCL3]nt4_A6aQ7bFf8cSٚ9fa+:h` ;i]<jdYkOP>lR1?mDEO@nD9AoT<pOPDqNErCFsD]GtMx~&fyD#3z~{Z_ |M,}{i w sF p^ of !CL CLCL_d OPBƘGn$ hq7 U"mmCLCLCLCLCLE Nkouq J"" kK m O q,H z[ G0GydZt>u FiH K\Wi r3 a ^f^ CLCLCLCLCLOPOP OP"CL%E&Gv(I;)Gh+x,x}erb}f M,MG@UNCςOHWPA:Q SR PeS m T BqVa$^ XCFYB5[0\V-^d_BG`@fauRbwc ug"CL#CL$CLg'kF )CL*CL,CL-CLm0D}n3@fo4Y 6CL7CL9CL:CL;CLdCLeCLwhqxiIQykPW lOP{o`UV |qbI}rs~t]v~қ yD*|~l^ ~~OP[jU |CLD%hD'<FaJouCLtCLGNVv" o 5GDg6EOPCL:z[ ;EI<M?K OPCLB@gvCyD}- EQFLGXHz LpQ M^{ N~=q OC<PB6QFfRE>TCWUBoVIdOPCLYAlZ|ƚ OPCL]pmy ^o+ OPCLasU: OPCLdB OPf^ ,CLh.|C i/X}1OPk2KT& l3Cm4~Qn5a o8]Gp;VQ qKt?Mu@G5XAOPCCLxEEyFMzHLYMIOPLCL}NFs~PCQD\uRDjSOP~UCLW@۶ZD= [y33\zٚ]o_CL aC=dCLgOP Xd^CLCL\CLCLof Q CLCLCLE8 33 L Jff t R\Upg!` "N#B$K <%I^!&MDF'I(DCL*@`2+`_CL-BMOPCL0x 1I'2F3GI4BOP6]CL8C4CL:G;CL<{= =H9QOPCL@ P9A DB G; CLOPEr HEεIe JXKKXLY_ C>AlGx K!I"d"BV#C$M^%D'zJ(E,O+O-Ied.JYoA[J/ ^EV_O/au9bKmdLgo^ hJPjlUlCLoEpE`qOPsCLtCLuCLwCLxCLyCLzCL}Ng~LYgG G _ > CLCLCLCLCLCLCL]CLCLCLNCLD9CLCLDCLCLCLOP$G r%G`&S CL*Dc,d[OP.RCLCLOPCL3n34A6N7@8T9a:Y;^<^OP>R?D?@D5ATOPDN5ECF Da0G!M%Aff&FP'Aff(Y )M*{u -wna /sF 0p3 1o7 !4CL 5CL6CL8_ ;OP6EOPCL:z$ ;C<M4?' OPCLB@QCx>D}=% ELQFN\)GNHzo Lq M_ > N34 OC=PB#BQFREjTC:4UBhVJXOPCLYAt@Z|oQ OPCL]pPL ^ouq OPCLar+ OPCLdA:OPf^ CLh| iW<!OPk"Km l#B m$}n%bq o(\p*X( q,PW r-Su s.KUt/Mdu0Hv1OP3CLx5Ey6T2z8LDX9OPFy~@CADDBD^\COP~ECLG@JD KxLzffMnٚOCL yCpi|CLOP VCLCL[ǍCLCLo+ RB CLCLCLE { G3 Q tb( JHTzg!o "U34#Ef$K%I&M'H6(ECL*@Q+`CCL-B OPCL0w 1H2E3G0z4BgOP6]CL8CCL:H*CL<{ =HaOPCL@P:AD5BGCLOPErN H@UIk[ J VU+K WL Y CAlGeKI"dAC>M^@DAz-/BE,OFOHI~IJ LoANJ)QEVRLvTu9UKVLYo^ ZJP]jp_CLbE``cEedOPfCLgCLhCLiCLjCLlCLmCLpR<qQ3rXsG tG u_ > wCLxCLzCL{CLCLCLCL]CLCLCLNcCLD9CLCLCUCLCLCLOP$G|%GY&LECL*Dv,dXOP.S)CLCLOPCL3nZ4A6[337L338b39a:Y; \f< \ OP> R#o? D7@D1cAS~OPDMECئFDbGM}C~3Y) M{T  w_ !sF #pY $ouq !'CL (CL)CL+_+ -OP.B0H'73nn 4hE^ 67m\9CL:CLCLAE.B CLQnoI rI tk. umv vP(z yo<{~ʊ |z ~G̶GQyxt/ FbHzxI/h yU `f^y^ CLCLCLCLCLOPOPOPCLEGGI-GTg =g =}e6^ <}fMMANCOGP@ƤQS8RPSme TBxaVa XCEYBS[!\S^c_B@`@patbxǯcwCL CL CLg5k, 7CL8CL9CL:CLm>Dy$nA}goBY@ DCLECLFCLGCLICLJCLKCLwNqfgxOOByPQ=qQOP{U`fg |Wc}XtQ~Z]\~қ ^D9_A~aOPdRC |fCLiD?jD%lFU{oMquCLtCLGB tĜ nP 5G76EOPCL:z ;B<Lf? OPCLB@;CvD|A EKFHzGOHzJ Lq M_ N34 O C>XP B3Q FR EjT C U BPV IaX OP CLY AZZ |`  OP CL] pY ^ n  OP CLa rz  OP !CLd #B} %OPf '^  (CLh *{a i +Uj -OPk .KM l /}m 0u\)n 1a}q o 4\2p 6U= q 7O33 r aO s bKt cMu dJe  eOP gCLx iEy jQ>z lL mOP oCL} qFy~ sC uD+ vDO wOP~ yCL {@ }D1  ~xf {&f o CL  C: CL OP  M< CL CL [ CL CL o7  Qj  CL CL CL E  r  B  tfg tSZ  L Up h! `f " Mff# C$ K#% I& M-z' H( E CL* @-S+ ` CL- B OP CL0 vI 1 Q52 E%3 G4 A OP6 ] CL8 Cμ CL: H/ CL< z[ = I (OP *CL@ -PA .CB /H* 1CL 4OPE 7rz H 9{!I JK ?X]L @YIc  CCB DA{ EGe GK HI"d IA JC KM^ LD Mz OE,O RO TIg5 UJ  XoA ZJ"Q ]EV ^P. `u9 aK$ bL o^  JP lq CL E D OP CL CL CL CL CL CL CL Ng { Ng G  G  _ >  CL CL CL CL CL CL CL ] CL CL CL N CL D/ CL CL B  CL CL CL OP$ F% GT~& N CL* Dq, eBR OP. S CL CL OP CL3 n4 A6 O7 M@8 X49 a: _4; ]Y< e@ OP> R ? D32@ D,A TV OPD OBE C8F DbG M #} %C &~L 'Y  (Lw +{  TwQ?  Us  Wo  Xo; ! [CL  \CL ]CL _]  aOP cB dH< gn0  hgJ  jw kn  mCL oCL pCL qCL rCL uE: vXu  wN {o,|  ~I  k  mh  L  o  ~  z  G̶ GC y| t  FT Hs< J3 h  v  ` ^vf ^  CL CL CL CL CL OP OP OP CL E2J G I,3 GP- gz gz}e jLT}fMU0M !@ՒN #CO %H P &@Q )ShR *PS +me T ,B V -`Nq X /CEY 1B[ 2L`\ 3Tx^ 6g#_ 7B8` 8@]a ;wb  CL OP  i[  CL CL \f CL CL oXB  Qq  CL CL CL E  s34  BL  tfg t  L Up h! h " Qf# 33 $ J% J$"& MR' H(( E CL* @+ _ CL- C OP CL0 w4 1 Km2 Eҥ3G|4A=OP6]CL8C:CL:ISCL<!zcz ="Jw$OP&CL@)OsA*D5B,Hy.CL1OPE4rk H5FOI6T> J7\PK8XL9X G@KBI"dCADCEM^FDGz-/HE,OKO/uHnvJzoA|JEVLu9K Lo^ JPl+CLEvEeOPCLCLCLCLCLCLCLNgMgYg_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLNCLD.CLOPDJCLCLCLOP$Fy%GK&P\CL*DeH,d>ZOP.SVCLCLOPCL3nD4A6Yٙ7 R8 bٚ9 aҷ:Z;^f<\3OP>R>?T?OPD@MEACαFBDbGCMGAgHFIBJYl KLOz PwB Qs Ro7 So !VCL WCLYCL[_ ]OP^B_H>bbn4a ch6 e@' gndiCLjCLkCLlCLmCLqEAr" sN(voK ID jH mJ S| q9~L { GGCy7t FLHkKh p3 `f\I^ CLCLCLCLCLOPOPOPCLEQGI#GJ{f{f}eeXߺ}f MlM@UNC­O H3P!@Q$SR%PS&m T(B(&V)`F X*CEY,B [-L`\.WG^1d_3B8`4@]a6u\b7wc8v#:CL;CL=CLghkD( jCLkCLlCLmCLmpDvnnt~ouX¼ wCLxCLyCLzCL{CL|CL~CLwz(xJyPuOP{_ |aTb}tZ~^~қ D~# ~OPT |CLDLKC F{KuCLtCLGCtz nbN 5G+ 6EWWOPCL:z ;FN<L?r OPCLB@&CrD| EN\)FHGd{Hz Ls34 M`z N OC9CPAkQFRExmTBUBVHwOPCLYB)Z{ OP0CL]2o7 ^3nB 5OP7CLa9qˈ ;OP=CLd?AfAOPfC^DCLhF{ iHQ JOPkKK3 lLE=qmMAQnNb oQ]">pSUp qTQ= rUS{ sVKtWL>uYLZOP\CLx^FLy_S zaLbOPdCL}fFy~hCriCjD?kOP~CL@RD x&gz4os4CL C4CLOP E _ > _ > CLCLCLCLCLCLCL^CLCLCLNCLD9CLCLBMCLCLCLOP$F%GEG&KCL*D[Y,c-OP.S,CLCLOPCL3$n4&A6)L7*Dٚ8+X9.a+:0Zٙ;1]ٚ<2\3OP>4Rf?5D*#@6D)<A7T8OPD9OKE:C*F;DfGKHdKhb rH a3[^ CLCLCLCLCLOPOPOPCLEyG{I"7GEOwffwff}e]W$}fMcPM@QNCOHO'P@QS#sRPSme T AV!`Nq X"CEY$Brx[&0\'S^RaH_SB8`T@faVukbWx=qcYt[CL\CL]CLg`kR@ bCLcCLeCLfCLmiD|nlC4omX oCLpCLrCLsCLtCLuCLvCLwy|xzN\y|OQ}OP{_ |ci}um~^~ D}f ~OPR^ |CLDD'CMFs1OuCLtCLG't7L nP 5G&6EIOPCL:zcz ;Eܸ<LO? OP!CLB#@C%yDD(} E*HF+KG,NzH-zE L.s34 M/`z N0 O1C2P2AqQ3FR4ElT6BQU7BMV8H9OP;CLY=BNZ>{/9 @OPBCL]Do ^EnB GOPICLaKq MOPOCLdQAZSOPf}^~CLh{ iNOMOPkKJ lAm{Gna\ o\ڎpXu qQ= rSL sKtLuO>'OPCLxFyMfzLOPCL}F~CcCD4KOP~CL@}BD; y zffos4CL CCLOP JQCLCL]/CLCLp Qz CLCLCLE r B s34sl JHTzfR!i "Jff#B$J!%JrK&Mg'H(DCL* @;+ ]QCL-BEOPCL0v 1H(2E3Fُ4ANDOP6F]GCL8ICLCL:NJ%gQCL<Sy@ =TJVOPYCL@[OA]CB^I `CLcOPEfr]\ Hh@PIki d JlmIKmXcLnZ%\ qD%rAsGxuKvI"dwAxDzL/c{D|zJ}E,OOH,JgoAJ EVLEu9K"Lo^ JBUlqCLEEROPCLCLCLCLCLCLCLRYG6gY#3_ > G _ > CLCLCLCLCLCLCL^CL CL CLNCLD>fCLCLBCLCLCLOP$ F%!G>&$O'CL**DW,+d,OP.-S,/CL0CL2OP4CL37n49AH6;Zs37FR_?GD,@D&AT6?OPDM%ECtF D~$G M }ٙDS4~fY[ L;{N w s p- n !CL CLCL!_= #OP$Bs&HT)n}[ *hq7 +s-nА/CL0CL2CL3CL4CL7EOw8~ 9Mdn hHD jkZY km- lR orq~ r{= tG:uGvyws xF7 yHO {Kh6 uU `f\Ff^ CLCLCLCLCLOPOPOPCLEGHI G@zz}e+T\}fMIMAmNCOHP@QSROSm TB6V` XCDYBe[h\W[^eo_B8`@fawbx ct4CLCLCLg.k) 0CL1CL3CL4CLm7Dn:o;X׷ =CL>CL@CLACLBCLCCLDCLwGz(xHPyJSHKOP{N`UV |Pb}Qsy~S^U~ XDb[}R ~]OP`T5 |bCLfD%hgCFkO uCLtCLGp!t nV 5G#6EBOPCL:zr ;DE<L!f?~ OPCLB^ C|:D| EF\FL{GJGHz3 Ls M`z N OC)LPAQFREBTBǕUBVIOOPCLYBFZ{ OPCL]ouq ^n`* OPCLaq OPCLdAZOPf ^ CLh {in iSOPkKv lHmBffnb3 o\ڎpY33 qR rS = sKtLuQ  OP"CLx$Fy%T z(Ll)OP+CL}-F~/CVXCYD%ZOP~\CL^@QaDB bxcz4dos4fCL hC>kCLnOP oMWqCLrCLu[tVwCLxCLzp| {R ~CLCLCLE9 g H E s NRW\)i!r "S#z4 $J%J3&M`'H1(DfCL*@u+] CL-BOPCL0w% 1Q 2E 3F4B yOP6]CL8D4KCL:JZCL<y]w =J3OPCL@O|4ACjBICLOPEr Hy޺Imp J!tXK"XL#Y &D4K'A(H *K+I"d,B -D.L-/D1zW2E,O5O7I\O8J;oA=J$@EVARCu9DK()ELIo^ JJ3LlqNCLQERDSOPUCLVCLWCLYCLZCL[CLCLNgL^_ > G _ > CLCLCLCLCLCLCL^CLCLCLN CLD4qCLCLDCLCLCLOP$F0%G8>&PCL*D^,cy'OP.SCLCLOPCL3m4AH6Rg7X8efg9a:Y;^ <^OP>R8?DC@D$AT&OPDCbECFDGMHk~_D6f ~s4 YJ,  L; {Y] w s o,| n !CL CLCL]K OPB1HSa"n #i/3 L}No'QCLRCLSCLTCLUCLXETY~ ZKA^n aIL cl dm<8 eKE hr&fj} l{ mG:nGoyps qF/rHGuK.xh {w |`}[~^ CLCLCLCLCLOPOPOPCLEGWIG>zz}eLXZ7}fMMAX NC@OIdP@EQS'CRPSme TBVay XCDYBxP[0\V"^d_B8`@pau\*bxgc v"CL#CL$CLg'k&k *CL+CL,CL-CLm0D]n3po4Y 7CL8CL9CL:CL;CL<LE?~ OPCLB C{D|` EKFHGSGHz( Ls34 M`z N34 OC PAhQF=RE7TBUAwVJo,OPCLYB}Z{ OPCL]of ^n`* OPCLaq OPCLdAfOPf^CLh{in iXrOPkKF lFm@n bc o ]pV qPB rR= sKtM\uS1OPCLx@FyyBQ.TzDLlEOPGCL}IF~~KCPLCMDNOP~PCLR@XUDT# VyW{gXpYZCL \C_CLbOP cO#teCLfCLiXrkCLlCLnp- oTb rCLsCLtCLwEU xo yBL zU {t) PVffh!p "RY#D$J8%JJ&M9T'H~(D܌CL*@r+` CL-BɀOPCL0w| 1K2E3FĽ4CcZOP6]CL8DCL:KFCL<yN =KMOPCL@ObACBI CL OPEs8 HFIh JOKXLYf DBAGoKI"dB D L-!D "zJ#E,O&O?(Hn)JR,oA.J 1EV3Lv5u96L7LG:o^ ;JBU=lq?CLBEwCDpFlOPoCLpCLqCLrCLsCLtCLuCLxPgyF3zR33|_ > }_ > ~_ > CLCLCLCLCLCLCL^CLCLCLNcCLD0CLCLCCLCLCLOP$F%G5X&JCL*Ds,d OP.SI[CLCLOPCL3n 4AH6O7K8Yٙ9aJ:X&g;^L<_34OP>RRE?Dr@DvAT/OPDAECЁFDGMV~_D6f~&fX?m L{̪ wl s o n$ !CL CL CL4_Z 6OP7B8HL;o ~@o16BCLCCLDCLECLFCLJEXK~D LK_<On RI. Tl Umv WR Zr)\} ]z$ ^Gx_F`y7bsl cF7 dH@fKзigJ lw m`n[^ CLCLCLCLCLOPOPOPCLEGIG<@xx}e>XX}fMM@NCOI62P@ޝQS.RPSn T BV b- X CDY B[ L`\ T[^ c*_ B8` @]a wfgb x>c v CL CL CLg kQv  CL CL CL CLm !Dn %fgo &Zfh  (CL )CL *CL +CL ,CL .CL /CLw 2rx 3Ny 4N=q 5OP{ `b33 | ca%} dq~ f^ h~  jD m} ~ pOP sUZ | uCL xD 0 yD` {FN ~Jƫu CLt CL G8 sF  n 5 G6 E8 OP CL: z ; A< MM:? ~;  OP CLB  C { -D | E KzF HG NH z L s34 M `z N  O CP A"Q F?R EBT BU AwV L OP CLY A^vZ z?  OP CL] o7 ^ nn  OP CLa qˈ  OP CLd B" OPf ^ CLh { i V OPk Ke l LHm Gn d o *]5p ,UǮ q -P r .Pf s 0Kt 1Mu 2TV 3OP 5CLx 7Fݱy 8Kz :LfN ;OP =CL} ?F5~ ACM BC( DD EOP~ GCL I@Q KDh  Ly M{&f Np33 PCL  RC UCL XOP  YNo [CL \CL _W aCL bCL qV  UY  CL CL CL E  Es3 r  d  sW  w  A  F ! lL " W# Dfg$ J}% Jb& M' H( D CL* AAh+ a( CL- B= OP CL0 w 1 I[2 E3 F4 D` OP6 ] CL8 D CL: K?m CL< yl = KU OP CL@ OxA CB Il CL OPE t H DF I YO J B>_K XbrL X  DQN A" H  K I"d Bv D L# D  { E,O Op Iu J #oA %Jk (EV )Lv +v/ TL VL Yo^  ZJ3 \jp ^CL aEH bDn, cOP eCL fCL gCL iCL jCL kCL lCL oNg pK` qYg r_ >  s_ >  u_ >  wCL xCL yCL zCL {CL |CL }CL ~^ CL CL CL N  CL D8 CL CL C CL CL CL OP$ Gh% G1& O CL* DR, d 4 OP. S CL CL OP CL3 mw4 AH6 Y7 R 8 Y9 a: Yٚ; ^f< ^l OP> Q? D>@ DPA St OPD A)E CُF D4G L A F A X@  L |z  v  !s  "n  #n ! &CL  'CL (CL *]  -OP .B4 /HL 2pmy  3j  4qZ 6oa 9CL :CL ;CL  WOP{ Zc | \a} ]s4~ `^ b~  dE% g~ ~ iOP lX | oCL rD  sD/ tFv wOeu zCLt {CL }GJ ~u  o9X 5 G6 E> OP CL: {/9 ; @< MV? ~  OP CLB ^ C y?D |% E PF HG ^H z) L r=q M _ N 34 O C0P AlQ FR E:T B?U AV M? OP CLY AZ z[  OP CL] o+ ^ nT  OP CLa r  OPCLdBcOPf^CLh{/ iU-lOPkK lKm En!c o$]f%p&U3 q'PB r(Q\) s)L t*M1 u+S-OP/CLx1Gy2T`z4L5OP7CL}9Fݱ~;CS[OP~@CLB@EC FxG{HnٚJCL tC:wCLzOP {N4}CL~CLVCLCLq W\ CLCLCLF] J}fg oL s PW\)i!m "Yٙ#G3$J%J&M1 'Hx(DCL*A+`zCL-BɀOPCL0xH 1H=2Eg3FC4F_OP6]CL8E CL:KFCL<yz =K+OPCL@OtEAChBJOZCLOPEu H@eIewB Jx_+KXLYIc  D_ Aҩ H[KI"dBDL D=AO?DHnEK#HoAJIMEVNPSPv1QLRLXUo^ VJBUYlB[CL^E_D`OPbCLcCLdCLeCLfCLhCLiCLlNgmG6gnPgo_ > p_ > q_ > sCLtCLvCLwCLCLCLCL^CLCLCLNCLD=~CLCLEzCLCLCLOP$G,%G1&OCL*D,d.OP.SI[CLCLOPCL3n4AH6h7L8T9aJ:Z ;_3<_3OP>R 6? D@ D *A TZ OPD CClECRFDGL~fDfg}XG M}C# v s n  n !#CL $CL%CL'_ )OP*CU,H\/q 0kd 23oxD5CL6CL8CL9CL:CL=E^>~Y ?G)jo nI pn qn4a rQ usvfw~ xzu zG{F|y}s ~F(H9QKg u `[^ CLCLCLCLCLOPOPOPCLE4GFI@G;Ygg}e2`}f }MMANCOIgfPAXQS:NRP'9Sm4 TD}Ve`E XDFYB[1\VT^c{_B@`@fau.bwc0u.2CL3CL4CLg7kgc 9CL:CLOP@IAKDoAFJ=IEVJLvLv NLOLRo^ SJBUUjpWCLZEn[Eݍ\OP^CL_CLCLCLCLCLCLR33G6gPg_ > _ > _ > CLCLCLCLCLCLCL^CLCLCLNCLD:CLCLCμCLCLCLOP$GL%G6&ICL*DG,d75OP.StCLCLOPCL3mܼ4AH6e37KL8T9b/:[3;_34<\LOP>Q?D@D ASOPD N#E CF DgG M ~&fC~_WF MQ~; v s n n !CL  CL!CL$^a &OP'C3uPHdSr Tmh Vj~Xo._ZCL[CL\CL]CL^CLaE^c; dOgo jI lp^ mnT nK( rpt~: uz$ vGwFmxyys zF/|H[}Jw~gn nU `f[^ CLCLCLCLCLOPOPOPCLEF+GVI(G>{3{3}eVP`}fMȡMANC OIPA~QSERPeSn% TEuVgSo XD-JYBG[k}\T.^gc_ B@`"@fa$tb%xc&t4(CL)CL*CLg.k~ 0CL1CL2CL3CLm6DDn9fgo;^ =CL>CL?CL@CLACLBCLCCLwGy34xHLyIO#JOP{Mg |O`8}Pp9~S^}~ D} ~OPWL |CLDDGGͧuCLtCLHaHwR qhs 5G!6EMfOPCL:|& ;E#<O.T? OPCLB@&CwD|5 ELQFJ(GLHz- Lo M] N} OBPA>QFREgTBJUBVM\OPCLY@۶Zz7 OPCL]p ^ouq OPCLarn OPCLdCOPf ^ CLh |C iPOPkK" lHzmBnc o\pP\ qJG rM sDL+tEMmOuGQ|HOPJCLxLGyMM3zOL/POPRCL}TG~VCmWD(XD#YOP~[CL^A+`C ayYb@coeCL gD_jCLmOP nKpCLqCLtTvCLwCLyr z\+x }CL~CLCLE F z s s NRVffh!_ "P#F $J%J&MM'I o(ECL*B+]CCL-BOPCL0y 1L&x2E3F4HwOP6]CL8ECL:JmCL<z7 =LHOP CL@OAD%zBJ5PCLOPEw HFlMInz1 JkQKXcL Y_ "DnQ#A/%Ge'K(I"d)B>*E,O+L~,D-z.E@1O4Hٞ5K8oA:J=EV>R@v gALBLEo^ FJ3jpCL E& F= OP CLCLCLCLCLCLCLNgG6gNg_ > _ > _ > CL!CL"CL#CL$CL%CL&CL'^(CL*CL+CL,N.CL1D83CL4CL5D;8CL9CL:CLeOP$fGti%gG<&jQNlCL*oE ?,pdUqOP.rStCLuCLxOPzCL3|m4~A6[37S38T9bM:Z3;^ <[OP>R?D@DATAOPDPEDdFDfGML@gFFgA\Xf MI v sF n n$ !CL CLCL`S OPC\Hgs o,| POomCLCLCLCLCLE]J O$oI I@ r# o Q p~p { GG )y7s F/Ge,J.gn 1u 2`3\Vf4^ 5CL7CL8CL9CL:CL=OP>OP@OPBCLEE^FGGIIGAK|L|}eE}fMMAu#NCOIPBQSMYRP#SnQ TF{Vic XDuWYC)[\Tx.^gO_B@`@zBau.bxkctCLCLCLgk CLCLCLCLmDn~o`b5 CLCLCLCLCLCLCLwy\xLyNROP{j |_Ω}l~^~ E 2 ~] ~ OPX |CLD:EZGgRLƉuCLtCL H!x "q 5%G$6&EY%'OP)CL:+| ;,D;<.N?Y)b [OP]CLB_@QCauDd|Ȭ EfKFgIpGhMHiz[ Ljo Mk] Nl} OmBPnAQoFRpE$TTqB٢UsB,qVtNiuOPwCLYy@Zzz7 |OP~CL]q9 ^pY OPCLasF OPCLdCL!OPf^CLh| iMiOPkKC lJ\)mDpnc^ o\JpQ\ qL{ rO sL=tMuPOPCLxGoyJzLOPCL}G-a~C_DDD"OP~CLA{CM y@oLCL D- CLOP  u #CL$CL&K\W)CL*CL,t' -_9 0CL1CL2CL5E 6HL7qfg 8g33 9sT :NR;XQWL#?Ef$@J%AJy&BM 'CI&(DE#FCL*HCpi+J`-LCL-NCPOPRCL0Tz 1UI2WE>3YG4ZIz[OP6]CL8ECL:JBUCL<{H =L`OPCL@OADbBJqCLOPEy HEvIWw JgKX!LZ D|AH[KI"dBCE,OL'E-zJEOpI(K oAJEVLvv6LLo^ J3jpCLEwE*OPCLCLCLCL CL CL CLNgKfYI_ > _ > _ > CLCLCLCLCLCLCL^CL CL!CL"N+LCLOD7(QCLSOPVE XCLYCLZCL]OP$^G%_GF&bOEdCL*gE?,hc+iOP.jSqlCLmCLpOPrCL3tn,4vAH6yZ&g7zL8{Y9~b8:Z3;aY<^3OP>Qͬ?D@D7ASOPDMEDFD~$GM|fC3~LY>V MY@,v s o nT !CL CLCL^'U OPCHru pPL ֘qobCLCLCLCLCLE] P94o Ij t!N p JM o~ { GxFm yP!t "F#H$J<%gn )r3 *`+\,^ -CL.CL0CL1CL2CL5OP6OP7OP:CL=Ex>G\?I o@GHDqGq}en3}f MBMAIND OIWPB~QSARP*Sn% TGVka XDhYC/O[x\Q'^g_B@`@zBaubvaHcs\CLCLCLgkk CLCLCLCLmDKnob CLCLCLCLCLCLCLwu\*xJyNfOP{l |^Y}o~^~ D ~24 ~OP Z( | CLDלEiGmPb uCLt@CLCH/Dyk ErdZ 5GG(T6IEfJOPLCL:N} ;OBE<QP(?TU VOPXCLBZ@`2C\tD_|5 EaK\)FbKzGcL{Hdz LepQ MfR{ Ng34 OhBbPiAQjF RkE8TlB]UmBGVoNpOPrCLYt@ZuzT wOPyCL]{q^ ^p OPCLas OPCLdCi(OPf^CLh}T iUNOPkLB lJ\mEnb o\pQ qL# rN{ sLQtMNuNOPCLxGeyS`zL OPCL}GJY~CDh3D+OP~CLA/ D  y  Afp CL C>CLOP x CLCL!P#CL$CL&t (d *CL,CL-CL/E$ 1E2q 3d34 4s 5H6R\7fR!8^ "9S#:| $;J9%I8(?EzJEOI6/K1CoAJ @ S.u LLGo^ J3k CLEY%E*OPCLCLCLCLCLCL CL4Ng5G6g6Qg7_ > 8_ > 9_ > ;CLCL?CL@CLACLBCLC^DCLECLGCLHNJCLMD8NCLOCLSC.VCLWCLXCLZOP$\G%]GS&_KGbCL*eEtC,fcgOP.hSاjCLkCLmOPoCL3n3z4AH6Z&g7Q&f8Yٙ9bG:_ٙ;_3<cOP>Qȡ?DV@D$ASKOPDDzED!FDGM2~4C3~YEp N07@v sl oK n !CL CLCLaY OPCuHgup pӖ p CL CL CL CL CL EZO _  NR of  IQ  u6  q3  R9  o ~  {=  G Fݱ yP t>u  E !H9Q "Jw #gn  &nY  'a&f )\I *^  +CL ,CL -CL .CL 0CL 3OP 4OP 5OP 7CL cE: dG eI fGOE it mt}ef}fCMM Au#N D"O HUP BQ SQ(R P5|S nQ T HM{V m$ X DxY CW7[ R\ S a^ d_ BG` @zBa vb y#c w CL CL CLg l'  CL CL CL CLm D|n o d{c  CL CL CL CL CL CL CLw zHx Lqy Oq OP{ o | ]} m"S~ ^ ~  D( *{ ~ -OP 0[ | 2CL 5D 6E 8Gw 9Fu ;CLt 4 Jr OP6 ] CL8 E CL: JBU CL< ~OI = M1 OP CL@ OA D~$B IE CL OPE { H |2DI h J _`K X`L Y  D A: Go K I"d BV E,O L Ed z FN= O !IQk "K$ %oA 'J-8 (@ +Ok -uG .L /L 2o^  3J3 6lq 8CL ;E/  M_ >  N_ >  PCL RCL SCL TCL UCL VCL WCL ^ CL CL CL N CL D8 CL OP Bɀ CL CL CL OP$ G% G`& HH CL* E5, cS OP. S CL CL OP CL3 ne4 AH6 Zg7 G8 c&f9 bZ: Y; ^ < \ OP> Q? E @ D*#A S OPD CfE D<@F DbG M AS3 E @3 Z(  N @ v  sl  oK  o ! CL  CL CL ^  OP D HͶ uZ  qV  C p9z CL CL CL CL CL E[7   JN IpY  LIH  Nw%  PrE  QKE  Tn\ VH  W{Z  XH* YF5 [yP \tj.  ]E ^H/ _I `g  cl*  d` f[ g^  hCL iCL jCL lCL mCL pOP qOP rOP tCL xE yG< zI {GR ~h\ h\}e f}f ?M0M wf N D4O H EP C.aQ S\R P`ES n`* T HV nf X EH4Y C}-[ رo\ O/^ bX_ BG` @a tb vc t CL CLCLgl1F CLCLCLCLmD|n~go f4 "CL#CL$CL%CL'CL(CL)CLw,ox-Jy.Pu/OP{3p |5]M}6o~8^:~ D|A EH\)FJGLpHz LnH MP N} OBPAfQFRE';TCUBVPCNOPCLY@Zz OPCL]r ^q OPCLau ~ OPCLdCOPf^CLh~ iVOPkLsr lM33mHQne o\apQ qLW rMp sLgtMǟuLOPCLx HGy N?z M,A OPCL}G} ~C0=D#>DAY?OP~ACLCBEC Fy G@Ios4KCL LDOCLROP U\s XCLYCL\[^CL_CLau bgg eCLfCLgCLjF kG@lw md34 ns pv{ qAG rFQ !sj33 "tN#uB&f$vK%wJ3&Lϕ'IZ(EsZCL*D+_CL-CScOPCL0|C 1M<2EU3GWm4KqOP6]CL8FCL:J CL<r =NI{OPCL@O|4ADBIJ0CLOPE{/ H{7Il J^C,K X!L Y  DVB H KI"dBcE,OL`F}{FN=OyI} K&#oA%JP&@)Lv+u,L-L 0o^ 2J34lp6CL9Ert:F;OP=CL>CL?CLhCLjCLkCLlCLoNgpG6gqPgr_ > s_ > t_ > vCLxCLyCLzCL{CL|CL}CL~^CLCLCLNqCLD=~CLCLDCLCLCLOP$H %Gp&QCL*E,cOP.S||CLCLOPCL3nt*4AH6Y7H8Y39bi:\;`&f<`9OP>Q4$?E@D32ASB'OPDD EDQFDGM~&fC}Zy Nȅ@>v s o o !CL CLCLbs OPD6x0I!4v 5q^ 78pP5:CL;CLCL?CLBE`C DMzGpPL JIDD MxH Nsl OS$ RoT U{ VHXF:YyPZt [E\H ]Ik^h al c`d[fe^ fCLgCLhCLjCLkCLOPOPOPCLEhGɔIGURffRff}e7c}f~LMt ND> OHPCQSkRPgfSnn TIVo XEYC[\S^d,q_BG`@au\*bxzc vp CL CLCLgl CLCLCLCLmDn@foh  CL!CL"CL$CL%CL&CL'CLw*{x+JHy,O{.OP{/rx |0]7}1mK~3^] } _E"c~24 ~eOPh\ 4 |jCLmEFoG\pG/sQuuCLtvCLyGz| {tn 5}G>6~EOPCL:~z ;F<Qv? OPCLB@QC|D} EH=qFIpGK Hz Llz MO34 N|Q OBPA߻QFRE-TC2UBVPvOPCLYAZzcz OPCL]r ^r]\ OPCLau OPCLdCuOPf^CLh~l^ iTKOPkL lLmG\n$eQ o'\xkp)P q*J r+MaH s,Lu]t-M۲u.LsP0OP2CLx4Hdy5K z7M8OP:CL}C?E;@DOAOP~CCLEBHC Iy J@gKn3MCL ODSRCLUOP XX [CL\CL_YCLCLv( iݘ CLCLCLF( Gz4 j s JHUpe!Yff "J3#~f $KT%J5&Lq'Ic(ECL*Ed+`K.CL-CDOPCL0|ƚ 1J&G2EF3Gm*4LUOP6]CL8FiCL:Ko#CL<@=NwOPCL@OmADBICLOPE},l HG:InP J\K XL Z  DBEGeKI"dBo|E,OL F}{FN=OyHK""oA$JP&@^QRԢSuTLULTXo^ YJ3[lq]CL`EnaE*cOPeCLfCLgCLhCLiCLjCLkCLnQɚpKqPgr_ > s_ > t_ > vCLwCLxCLyCLzCL|CL}CL~^CLCLCLNCLDBCLCLDYCLCLCLOP$H'%G&M$CL*F,,cOP.SCLCLOPCL3nnz4AH6]7[338b39bx:\;`L<_,OP>Q2?E$8@D6AS AOPDDZEDc3FD=GMn}gC}Z OAv  s !o; "oI !%CL 'CL(CL*`b ,OP-Dcp.I]1v 3r 5B6p8CL9CL:CL;CL=CL@EhA@BHEp< HI Jx Lt MJ PrR@YS{ |HU}F~yPt4 EIEKh q{ `3\I^ CLCLCLCLCLOPOPOPCLFG5IG[ iziz}e5b1}fyKMr ND> OHPCԉQSkRPrSn TJVpl XEGYC״[\Qv^ea_BN9`@uasb uc q CLCLCLgl CLCLCLCLmDnF~oGifg ICLJCLKCLLCLNCLOCLPCLwSq(xTKyUNVOP{Xty, |Y[n}Zj~\^^ `E*c|ƚ ~fOPi[!4 |kCLnEOoHqGtG2uvCLtwCLzF{{- |t1' 5~GA6EOPCL:~; ;Dd<Q%? OPCLB@XC|$D| EEFGffGERHzF Llz MO N|Q OBPAݍQFRE3TCUIUBVQ1OPCLYAOZz OPCL]sU: ^r OPCLavY OP CLdCOPf^CLh~Ü iR%OPkL lJmF{ndW o \p"Q{ q#JaH r$LǮ s&Lzt'Mlu(LH)OP+CLx-Hs<y.S>9z0M1OP3CL}5G~7D9EZ}:DVb;OP~=CL?CACz By C@Dv FCL #DJ#CL# OP # \5 #CL#CL#Q!#CL#CL#v #k #CL#CL# CL##F4 #$G3#%w #&d #'t_ #(L#)Up#*g!#+i "#,L##-C33$#.K%#/J&#0L'#2Ih(#3E]#5CL*#7E+#8`L#;CL-#eCD#gOP#iCL0#j},l 1#lI2#nF3#oG4#pL#qOP6#s]#tCL8#vF:#yCL:#|Kw#~CL<#@C =#O*#OP#CL@#OA#EB#H#CL#OPE#}h H#AgI#Vm% J#ZK#X]L#ZB #DX#BE#Go#K#I"d#Bx3#E,O#L`#F}#z#Fb#Os#I#K1C#oA#JP#BV#Lv#v6#L#LC#o^ #J3#lq#CL#E#F0#OP#CL#CL#CL#CL#CL#CL#CL#R<#L<#^4#_ > #_ > #_ > #,CL#-CL#.CL#/CL#0CL#1CL#2CL#3^#5CL#6CL#7CL#8Nq#:CL#=DB#?CL#@CL#BD#DCL#ECL#FCL#IOP$#JH@T%#KGB&#NJW#QCL*#SFm,#Tc#UOP.#VT9#XCL#YCL#\OP#^CL3#anƝ4#cAH6#eU347#fX 8#gag9#bql:#[;#_fg<#_`#OP>#Q9?#E1@#DDgA#RG#OPD#DyE#DuQF#D%G#M#A#3#Es3#A#Z #Ok#A;#wl #s #oI #ouq !#CL #CL#CL#c/ #OP#D#Ix#w| #s T #ā#p@#CL#CL#CL#CL#CL#EmI#@#H #pӖ #I #y #v #SB2 #s3# @Fj# {/ # I# F5#yh#t #E#I#K#h(# #l{ #a#\I#^ #CL#CL#!CL#"CL##CL#&OP#'OP#)OP#+CL#.FKy#/G#XI#ZG`{#]g#`g}e#Yj}fzK9M#~rHZ N#D@.O#HbhP#D`Q#ShR#P/S#n`* T#KeV#rM X#EY#D6[#H!\#QD^#c4_#BUU`#@ua#v{b#zc#uL#CL#CL#CLg#lV #CL#CL#CL#CLm#Dn#o#j( #CL#CL#CL#CL#CL#CL#CLw#nx#Jy#N#OP{#v |#\}#jۈ~#^#)n #E #yN ~#OP# ` |#"CL#&EjC#'Hm#(G1#+Iu#-CLt#/CL#1Ee#2| #3t/ 5#6GH6#7ED#8OP#:CL:#<c ;#=C^`<#?SX?#B: #DOP#FCLB#H@gvC#J{rD#M|5 E#OPF#PHG#QPH#RzӬ L#Sm M#TP( N#U| O#VBP#WAQ#XFQR#YET#ZCU#CV#P#OP#CLY#AZ#zF^ #OP#CL]#s ^#s8 #OP#CLa#v #OP#CLd#CB#OPf#^#CLh# i#Pf#OPk#LC l#Mm#H(n#d o#\)!p#MG q#F r#I s#LLt#Nu#L;#OP#CLx#Hdy#RPKz#N+#OP#CL}#G~#D6#E#DZ#OP~#CL#CL!#C #yg#A#oL#CL #D#CL#OP #]| # CL# CL#E#CL#CL#x0 #n #CL#CL#CL#F8 #Es3# p #!d #"t> ##H#LS#Mg!#NY3 "#OI33##P{g $#QKT%#RJ&#SL|'#TIi(#UE#WCL*#YFq+#ZZ#]CL-#_CL!#aOP#cCL0#e}h 1#fG2#hF,b3#iG4#jMT#lOP6#n]#oCL8#qG#tCL:#wLZ#yCL<#{@=#}OO#~OP#CL@#O,A#E *B#H#CL#OPE#c H#rI#dOR J#Ml K#XzL#Z #D#B)#Gx#K#I"d#BD#E,O#L#F7w#zJ#Go#Oy#I#K1C#oA#JP#BV#Lo#v#L#L`#`w/ #Jk#jp#CL#Ert#F=#OP#CL#CL#CL#CL#CL#CL#CL#Ng# G6g#!Ng#"_ > ##_ > #$_ > #&CL#'CL#)CL#*CL#+CL#,CL#-CL#.^#/CL#0CL#2CL#3N#5CL#8D;#9CL#:CL##Q'?#EM@#DTA#R#OPD#EHE#D7F#DG#M#A,#Ef#@#[nC #O#A5#w #t #ouq #o !#CL #CL#CL#`EA #OP#DĞ#IO@#x #t!N ###pye#CL#CL#CL#CL#CL#Eq#@1$#JdS#q #IH #{ #v #K #ni#@#{H #I(-#F/#yh#u' # F # I# I# hS #f #a@#\L#^ #CL#CL#CL#@CL#ACL#DOP#EOP#GOP#ICL#LF#MGӍ#NI#PGe#Sj(#Vj(}e#`}f#1I-M#tr+< N#vDCO#wHCP#xDD@Q#SsnR#P\S#nQ T#KҩV#s" X#EeY#DD[#j\#Qx.^#d _#BUU`#@a#sb#vc#s#CL#CL#CLg#m #CL#CL#CL#CLm#Dn#)o#k #CL#CL#CL#CL#CL#CL#CLw#tx#JGy#L#OP{#w"# |#Z}#hk~# ^#  #E#xe ~#OP#] |#CL#E|_#IDg#F#!Ou##CLt#%CL#'E1#({ #)t 5#,GOE6#-E#.OP#0CL:#2@;#3B<#5T"?#8: #:OP#@}BC#@zWD#C|Ȭ E#mMffF#nHG#oT H#pzg L#qnfg M#rP N#s| O#tBzP#uA,Q#vFNR#wET#xCU#zCC;V#{R8T#|OP#~CLY#AqZ#zr #OP#CL]#t' ^#sl #OP#CLa#wB #OP#CLd#D#OPf#^#CLh#' i#M#OPk#L* l#O\)m#In#f o#\)!p#Pk q#J r#M. s#Lt#NGu#K#OP#CLx#Hzxy#OXz#N#OP#CL}#G~#Df#E#Dh#OP~#CL#Cu#Cـ #y#A#oL#CL #D#CL#OP #X) #CL#CL#WB#CL#CL# z)B # o #6CL#7CL#9CL#;F #=G3#>| #?kff #@t* #ANR#BTz#Cg!#DfL "#EM##F~ $#GKT%#HJ&#IL'#JIl(#KF,.#MCL*#OFݱ+#P`z#SCL-#UCL!#WOP#YCL0#[~l^ 1#\QX2#^FW3#_G4#`ML#bOP6#d]#eCL8#gGQ#jCL:#mLr#oCL<#@.=#Ob#OP#CL@#OA#Em*B#H#CL#OPE#@H#}II#jy J#]?K#X/L#Y #D#B8P#G#K#I"d#BU#E,O#L#Gv #zQ#Go#O#I2#K-#oA#JP#B/#R3#vC#L#L4#`w/ #Jk#jh# CL# EtC# EY# OP# CL# CL# CL# CL# CL# CL# CL# Ng# N3# Yg# _ > # _ > # _ > # CL# CL# CL# CL# CL# CL# CL# !^# "CL# $CL# %CL# &NF# (CL# +D4q# -CL# /OP# 2E]# 4CL# 5CL# 6CL# aOP$# bHk%# cGf&# eQ$# hCL*# kFW,# lc# mOP.# nSΓ# pCL# qCL# tOP# uCL3# xo4# zAH6# }_7# ~Tf8# ^9# bx:# [ ;# `<# ]s3# OP># Q?# Ej@# DeA# R\# OPD# EvE# DeF# DG# Mh# }g# CY# ~4# \L # P# B# w # t!N # o # o+ !# CL # CL# CL# cн # OP# D# It(# y1 # tU # ژa!# px# CL# CL# CL# CL# CL# Ep# @K2# Q# qV # I@ # { # w # RHc # p# @/# | z # IL\# F# yh# (ua # )F # *J,# +J# ,hq7 # /s* # 1a33# 2\I# 3^ # 4CL# 5CL# 6CL# 8CL# 9CL# OP# ACL# DF# EGD# FI# GGh# J}# K}}e# o[}f#'IELM# q N# DE+O# HP# DWQ# S~R# PS# nQ T# LV# t X# EY# D[# s\# N^# d=j_# B\r`# @a# uǯb# xkc# s*# CL# CL# CLg# m41 # CL# CL# CL# CLm# Dsn# lo# m # CL# CL# CL# CL# CL# CL# CLw# xRx# O)y# P(# OP{# y |# YĦ}# jD~# ^#  # E# | ~# OP# ]x |# CL# E&# JA# F # JLu# CLt# CL# D# {9X # u8 5# GU6# !E# "OP# $CL:# &@Je;# (@ك<# )T?# TK # VOP# XCLB# Z@RC# \xD# _| E# aJHF# bJG# cE H# d{ L# fnfg M# gP( N# h| O# iBP# jAQ# kFqR# lDT# mCpU# nCqHV# oRYz# pOP# rCLY# tB"Z# uz # wOP# yCL]# {tz ^# |t # ~OP# CLa# wt # OP# CLd# DB# OPf# ^# CLh#  i# W# OPk# L* l# MHm# H33n# c o# \<p# Q\) q# KaH r# M s# Lt# N$u# KA# OP# CLx# Hy# L>z# M# OP# CL}# Ge~# DL# F=# DvK# OP~# CL# Cμ# C{ # xs4# g# mg# CL # D# CL# OP # R # CL# CL# "\# $CL# %CL# '{Z # (p # +CL# ,CL# -CL# 0FF_ # 1O3# 2D@# 3uL # 4t # 6H# 7S# 8e!# 9fL "# :[## ;BL$# L'# ?Ir(# @F-# BCL*# DG4+# E]m# HCL-# JCpi# LOP# NCL0# P O 1# QK2# SFw3# TG}4# UM# VOP6# ]# CL8# G# CL:# L# CL<# A$Z=# O# OP# CL@# OA# EvB# H# CL# OPE# @kH# GZBI# n! J# gz\K# XZL# Yf # DY# BF# Ge# K# I"d# B# E,O# L{# Gv # zJ# H# O# He# K<-# oA# JP# B# P D# vBT# M # L4# `w/ # Jk# j# CL# Eu# E*# OP# CL# CL# CL# CL# CL# CL# CL# Ng# G6g# Pg# _ > # _ > # _ > # CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# N# CL# HD9# ICL# JCL# NDY# QCL# RCL# SCL# VOP$# WH}%# XG&# ZN`# ]CL*# `G;Y,# ad'~# bOP.# cS# eCL# fCL# hOP# jCL3# mo>4# oAH6# rW&g7# sR 8# tT9# vb|:# x[4;# y`y<# z_# {OP># |Qq?# }E}@# ~DrA# Sd# OPD# EE# D F# DfG# N1# ~# C<# ~&f# \ # Pi# B]&# w% # t/ # of # p$ !# CL # CL# CL# a- # OP# En# I# zF^ # u # Ϭ0 # p# CL# CL# CL# CL# CL# Eul# @e@# G# q # I33 # |ƚ # x # L] #t#A#|C #Ip#G#y#u6 #F#Jm#!K>#$h #'[w #(a|#*\Ff#+^ #,CL#-CL#.CL#0CL#1CL#4OP#5OP#6OP#8CL#I#?Gm*#Bip#Fip}e# gU}f# HM#q N#DMO#IgP#DQ#S{ R#P;S#n T#M~V#vp X#EY#D[#A\#OG^#c7_#B\r`#@a#uLb#w8Rc#s*#CL#CL#CLg#mX #CL#CL#CL#CLm#Dn#4o#o#A #CL#CL#CL#CL#CL#CL#CLw#{x#JGy#M#OP{#{A |#X}#hF~#^# #E#y ~#OP#]X |#CL# E# K+#F}#I~u#CLt# #_ > #_ > #1CL#2CL#4CL#5CL#6CL#7CL#8CL#9^#:CL#;CL#=CL#>N#@CL#CDD#DCL#ECL#GDJ#JCL#KCL#LCL#OOP$#PHR%#QH&#TK#VCL*#YGv9,#ZdY#[OP.#\TG#^CL#_CL#bOP#dCL3#fom4#hAH6#kWf7#K8#Yٙ9#bO:#`g;#`<#by#OP>#QD?#E:@#DA#S #OPD#EXE#DF#DG#NW#A#3#Ef#A#],> #P#BE#wB #t>u #o+ #pmy !#CL #CL#CL#c #OP#E(#J.#{ #vܹ #Ƞ`#p#CL#CL#CL#CL#CL#E{#@#H #q #I"" #}R #y #N # r3#A@%#|oQ #Ik#F#y#u} #F#JZ#K#h #Tj#"`##^y#$^ #%CL#&CL#(CL#)CL#*CL#-OP#.OP#0OP#2CL#]G#^G%#_I#`Gq#di =#gi =}e#lx}f#?FuOM#qP N#DYO#IP#DLQ#SR#PtS#n T#N|V#x| X#EY#D%[# \#Mp[^#er_#B\r`#@a#tW b#w(c#s{#CL#CL#CLg#mW #CL#CL#CL#CLm#Dn#o#p #CL#CL#CL#CL#CL#CL#CLw#qfgx#J >y#O#OP{#} |#YY}#gM~#^#7 #E):#t ~#$OP#'^ |#)CL#-E#.K#/F#2Oɖu#4CLt#5CL#8@Z#9{^ #:u^ 5#Eķ#?OP#ACL:#C@r;#DE0<#FX=?#G@p#HOP#JCLB#L@=C#NvD#Q| E#SKzF#THG#URH#V{A L#Wnfg M#XP N#Y}G O#ZBQP#[AQ#\FR#]ET#_D--U#C5V#Q#OP#CLY#C Z#z #OP#CL]#v4 ^#v- #OP#CLa#yz #OP#CLd#D#OPf#^#CLh#@}Bi#Vm#OPk#L l#Mm#HRn#eQ o#\Cp#OaH q#J r#LH s#L t#NF|u#K #OP#CLx#Hy#SVYz#M#OP#CL}#Hm~#E#FΑ#D#OP~#CL#Dg#CMQ #x#@#n3#CL #D#CL# OP # NQR #CL#CL#S`#CL#CL#~Ü #u #CL#CL#CL#!Fv ##Gٚ#$v #%d #&u7 #'v{ #PA #QFQ !#R] "#SO##TA$#UKT%#VK\&#WL'#YI(#ZG#\CL*#^H[+#_]#bCL-#dD#fOP#hCL0#j@X1#kItV2#mF 3#nHG4#oL#pOP6#r]#sCL8#uHVF#xCL:#{Ly#}CL<#A=#Oe#OP#CL@#OA#E B#Hw#CL#OPE#AH#CI#\q J#A K#WpL#YIc #DZ#BUZ#G#K#I"d#B#D#L{#G(#z#H#Lv#I}#K6#oA#JP#Cy#Qۚ#v0#M #L#d] #JE:#dv#CL#Ec#F=#OP#CL#CL#CL#CL#CL#CL#CL#!Q9#"G6g##Pg#$_ > #%_ > #&_ > #(CL#)CL#*CL#,CL#-CL#.CL#/CL#0^#1CL#2CL#4CL#5N'#7CL#:DA#;CL#>OP#AD>r#CCL#DCL#ECL#GOP$#HH%#IHJ&#LI#OCL*#RGe,#Se.S#|OP.#}TdR#CL#CL#OP#CL3#o4#AH6#]7#NL8#]9#bO:#YL;#] <#\g#OP>#Q%?#E^@#DA#RF#OPD#F=E#DF#DvG#N^j#A#Es3#@#]C #Q.`#C&#wQ? #t[ #p$ #pӖ !#CL #CL#CL#b #OP#Ed#JZ3#| #x+ ##qx#CL#CL#CL#CL#CL#E#@Z#Lu{#r@3 #IDD #~z #z #M+ #n#A# |= # I# G# y#vW #F(#J3#J#h #F#a0#^@#^ #CL#DCL#ECL#FCL#HCL#KOP#LOP#MOP#OCL#SG?#TG#UI$#VGuQ#Yg#\g}e#d7}f#8DM#{pj N#}DeBO#~ImP#E gQ#SwR#PS#n T#OGV#y X#FqY#E"[#v\#Nc^#dH_#Bc`#@a#saHb#vQc#rg#CL#CL#CLg#n, #CL#CL#CL#CLm#Dn#vgo#r #CL#CL#CL#CL#CL#CL#CLw#mx#Ky#O#OP{#@D|#X44}# gU~#^#F_ #E=o#zF^ ~#OP#a. |#CL#!E$#"K##G#'Iu#)CLt#*CL#,@/#.{` #/u^ 5#1Gh6#2En#3OP#5CL:#7A2;#8D<#:Z?#;@*j#CLB#@AC#BtD#E| E#GMF'~L34G'~SffH'~{Sp L'~ mp M'~ O N'~ |Q O'~ BQP'~ AQ'~FqR'~EG!T'~DZ_U'~CV'~Qf'~OP'~CLY'~CwZ'~z '~OP'~CL]'~vI ^'~ wl '~"OP'~$CLa'~&z)B '~(OP'~*CLd'~,D'~.OPf'~0^'~1CLh'~3@i'~4UV'~6OPk'~7L l'~8Rm'~9Mn'~:f3 o'~e\p'~gQf q'~hK r'~jO33 s'~kLqt'~lNVu'~mK'~nOP'~pCLx'~rHmy'~sQׄz'~uM'~vOP'~xCL}'~zH~'~|E<'~~G@'~D'~OP~'~CL'~DX'~CG '~xL'~@Ff'~n3'~CL '~E2'~CL'~OP '~P '~CL'~CL'~F/'~CL'~CL'~@r'~yU~ '~CL'~CL'~CL'~F_ '~I'~v '~g33 '~u0 '~JH'~Tz'~g!'~[ "'~K&g#'~B$'~K%'~KT&'~LJ''~I('~G'~CL*'~H/+'~_'~CL-'~DQN'~OP'~CL0'~@1'~HK}2'~FV3'~H{F4'~LW'~OP6'~]'~CL8'~H'~CL:'~-LE'~/CL<'~1B ='~3Oir'~4OP'~6CL@'~9OsA'~:F6[B'~;H'~=CL'~@OPE'~AB,H'~CAWI'~FfM J'~GsK'~HXZL'~IYIc '~LE '~MBc'~NH '~PK'~QI"d'~RB'~TDX'~UL'~VGAl'~Wz9'~XG'~[Lv'~]I'~^K4'~aoA'~cJP'~dCy'~Q''~v5'~M '~L'~eb3 '~JR>'~\Ը'~CL'~E'~D'~OP'~CL'~CL'~CL'~CL'~CL'~CL'~CL'~Ng'~M6f'~X'~_ > '~_ > '~_ > '~CL'~CL'~CL'~CL'~CL'~CL'~CL'~^'~CL'~CL'~CL'~N('~CL'~D8'~CL'~CL'~D'~CL'~CL'~CL'~OP$'~H%'~H'&'~I'~CL*'~GM,'~d~'~OP.'~T1'~CL'~ CL'~ OP'~CL3'~oT4'~AH6'~m 7'~Yٙ8'~b9'~b:'~Y;'~^`<'~[s4'~OP>'~ Q?'~!Ek@'~"DA'~#SM'~$OPD'~%FE'~&EgF'~'DG'~(N'~,~4'~-C'~.}'~/^!% '~XQ'~YC'~\wna '~^tx '~_pmy '~`qHF !'~cCL '~dCL'~eCL'~gd/ '~jOP'~kE,'~lJ@*'~o} '~py '~qi'~sq>'~vCL'~wCL'~xCL'~yCL'~zCL'~}E'~~@̝'~N '~rE '~I. '~Fv '~{w '~L1s '~r#3'~AƗ'~}T '~J_C'~G'~y'~vh. '~F7 '~K '~L '~i '~Vn'~`3'~^s3'~^ '~CL'~CL'~CL'~CL'~CL'~OP'~OP'~OP'~CL'~Gn'~G5'~I<'~Gx '~{'~{}e'~qX]#}f#,CpM'~,q3 N'~.DrO'~0IP'~1EQHQ'~4SR'~5Q+S'~6nT T'~7PTV'~8{ X'~;F+Y'~NE^'~Af,w_'~BBc`'~C@ua'~Fuǯb'~Gx=qc'~Hs'~JCL'~KCL'~LCLg'~Nnk[ '~QCL'~RCL'~SCL'~TCLm'~WDn'~Zgo'~[sR '~CL'~CL'~CL'~CL'~CL'~CL'~CLw'~zfgx'~K\y'~O'~OP{'~A\|'~W^d}'~c1W~'~^'~T '~EF'~s ~'~OP'~a |'~CL'~F'~L '~G'~Jyu'~CLt'~CL'~yw '~{\ '~v 5'~Gq6'~E'~OP'~CL:'~Al;'~Cv<'~Ub8?'~@P'~OP'~CLB'~A:%C'~yYD'~| E'~E F'~GHG'~KH'~{Q L'~mp M'~O N'~|Q O'~BP'~AQ'~F]tR'~ET'~DU'~D/V'~R|'~OP'~ CLY'~ DZ'~ z '~OP'~CL]'~w ^'~w '~OP'~CLa'~z '~OP'~CLd'~ DX'~"OPf'~L^'~MCLh'~OAKi'~PT8s'~ROPk'~TLc l'~UMRm'~VH n'~Wc o'~Z\p'~\Q q'~]L r'~^NH s'~_Lt'~`Nbu'~aK)'~cOP'~eCLx'~gHmy'~hN%z'~jM'~kOP'~mCL}'~oH~'~qEr@'~rGU'~sD'~tOP~'~vCL'~xEZ'~{C '~|y'~}Af'~~n3'~CL '~EsZ'~CL'~OP '~R '~CL'~CL'~W9'~CL'~CL'~AO'~{3. '~CL'~CL'~CL'~F@ '~G'~|34 '~kff '~t| '~G >'~Tz'~fR!'~m "'~Y#'~B&f$'~K(%'~J9&'~Le''~I('~HR'~CL*'~I :+'~\+'~CL-'~DnQ'~OP'~CL0'~A1'~Q'2'~G3'~H4'~L5,'~OP6'~]'~CL8'~H'~CL:'~!L_'~#CL<'~%B?='~'O)'~(OP'~*CL@'~-ONA'~.F]XB'~/G'~1CL'~4OPE'~6BH'~7~I'~:l N J'~;VK'~ '~_ > '~_ > '~CL'~CL'~CL'~CL'~CL'~CL'~CL'~^'~CL'~CL'~CL'~N)'~CL'~D7('~CL'~CL'~E'~CL'~CL'~CL'~OP$'~H%'~H8&'~QJ8'~CL*'~H','~eC'~OP.'~Tt'~CL'~CL'~OP'~CL3'~pk4'~AH6'~d7'~Ng8'~ Z9'~ b:'~Y&g;'~\4<'~^9'~OP>'~QE?'~EƐ@'~DA'~S''~OPD'~GE'~@EF'~AE3G'~BNF'~F}g'~GCP'~H}@'~I^J '~JR'~KDt'~Ow '~Pt '~Qph '~Rq !'~UCL '~VCL'~WCL'~Zd '~\OP'~]E'~^Jm'~aFv '~bz '~df'~fqk~'~hCL'~iCL'~jCL'~kCL'~lCL'~oE'~q@0'~rJK'~ur '~xI '~zK '~{|5! '~M+ '~nl'~B'~}I '~J'~G4'~y'~v '~FE'~K"'~LC'~i[ '~J1~'~a'~^y'~^ '~CL'~CL'~CL'~CL'~CL'~OP'~OP'~OP'~CL'~G'~GM'~I'~G|'~h33'~h33}e'~da}f'~@',M'~!p N'~$DyO'~%JTP'~&E{SQ'~)SOR'~*QO'S'~+n T'~,PݱV'~.}8V X'~0F0Y'~1E8['~2?\'~3L^'~6g_'~8Bj`'~9@1a'~;tfgb'~@<'~Po?'~@_w'~OP'~CLB'~A^vC'~|D'~|5 E'~HF'~GHG'~KzH'~{i L'~l M'~O34 N'~{ O'~B P'~AQ'~FaR'~EAT'~DqU'~DdPV'~Rsi'~OP'~CLY'~ DZ'~ { '~4OP'~6CL]'~8xo ^'~9x '~;OP'~=CLa'~?{ '~AOP'~CCLd'~EE'~GOPf'~I^'~JCLh'~LAOi'~MS.'~OOPk'~PL l'~QOm'~RJRn'~Se=q o'~V\}p'~XO33 q'~ZI{ r'~[K33 s'~\LAt'~]Np|u'~^L4r'~_OP'~aCLx'~cHzxy'~dLa"z'~fMD'~gOP'~iCL}'~lI~'~nET'~oG='~D#'~OP~'~CL'~EV['~CH '~xL'~@g'~oL'~CL '~Ed'~CL'~OP '~Q< '~CL'~CL'~\'~CL'~CL'~B8P'~|\ '~CL'~CL'~CL'~Fs '~P'~@'~w3 '~uO '~G >'~Tz'~e!'~nff "'~K&g#'~BL$'~K%'~K &'~Lt''~I"('~Hb'~CL*'~ I+'~ Y'~ CL-'~ D'~ OP'~ CL0'~ A 1'~ L&x2'~ G93'~ H"4'~ L'~ OP6'~ ]'~ CL8'~ IZ'~ CL:'~ L-8'~ CL<'~ "Brd='~ $Nߞ'~ %OP'~ 'CL@'~ *OA'~ +FB'~ ,GT'~ .CL'~ 1OPE'~ 2CjH'~ 5HI'~ 6o J'~ 7K6K'~ `WkL'~ bYa '~ dE*'~ eBrd'~ gGo'~ iK'~ jI"d'~ kBө'~ lD'~ mLC'~ nGJ'~ ozJ'~ pH'~ sOl'~ vIS<'~ wKA'~ zoA'~ |JP'~ }Cy'~ Lv'~ u9'~ M '~ L'~ e4 '~ JZ'~ Ti'~ CL'~ EtC'~ F='~ OP'~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ Ng'~ Ll'~ Ng'~ _ > '~ _ > '~ _ > '~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ ^'~ CL'~ CL'~ CL'~ N&'~ CL'~ D?M'~ CL'~ CL'~ E9['~ CL'~ CL'~ CL'~ OP$'~ HD%'~ HG&'~ N'~ CL*'~ Hk,'~ e'~ OP.'~ T_H'~ CL'~ CL'~ OP'~ CL3'~ p584'~ )AH6'~ ,i7'~ -P8'~ .b9'~ 1bO:'~ 3X9;'~ 4\Fg<'~ 5]'~ 6OP>'~ 7Q?'~ 8E@@'~ 9DɔA'~ :R'~ ;OPD'~ EvG'~ ?O'~ B}ٙ'~ CC '~ E}2'~ F_Ku '~ GRsi'~ HD<'~ Kw '~ Lt '~ Mq '~ Or1 !'~ RCL '~ SCL'~ TCL'~ Ve '~ XOP'~ YEX'~ [J'~ \@UK'~ _|& '~ `o'~ bqW'~ CL'~ CL'~ CL'~ CL'~ CL'~ E'~ @,'~ Jx'~ sc '~ HU '~ K '~ | '~ Kr '~ sFf'~ B]`'~ },l '~ J'~ G4'~ y'~ wl '~ F[G'~ KF'~ M1O'~ i '~ DQ'~ ap'~ ^y'~ ^ '~ CL'~ CL'~ CL'~ CL'~ CL'~ OP'~ OP'~ OP'~ CL'~ GӍ'~ G^'~ I'~ G'~ wff'~ wff}e'~ `Su}f'~uk M'~ pI N'~ DyO'~ JLP'~ EiQ'~ #SOR'~ $QdS'~ %n T'~ &RO V'~ ' X'~ )EY'~ *E+['~ T]Y\'~ UK_J^'~ Xg_'~ YBj`'~ Z@ua'~ \qb'~ ]uc'~ _q{'~ aCL'~ bCL'~ cCLg'~ enz '~ gCL'~ hCL'~ jCL'~ kCLm'~ nD?n'~ q4o'~ rvn '~ tCL'~ uCL'~ wCL'~ xCL'~ yCL'~ zCL'~ {CLw'~ ~}fgx'~ L{y'~ P('~ OP{'~ CN|'~ U;Z}'~ b~'~ ^'~ cP '~ E\u'~ x ~'~ OP'~ ah |'~ CL'~ F'~ L\'~ Gg'~ Gku'~ CLt'~ CL'~ l( '~ x '~ r 5'~ G{6'~ En'~ OP'~ CL:'~ B";'~ @=<'~ QQ?'~ @ML'~ OP'~ CLB'~ A{C'~ }!D'~ | E'~ JHF'~ GG'~ FH'~ { L'~ l M'~ NR N'~ {\* O'~ B8P'~ AQ'~ Fc@R'~ ENT'~ D0U'~ D^V'~ V-'~ OP'~ !CLY'~ #DZ'~ ${LS '~ &OP'~ (CL]'~ *y ^'~ +y '~ -OP'~ /CLa'~ 1|} '~ 3OP'~ 5CLd'~ 7E '~ 9OPf'~ ;^'~ At@i'~ ?RX'~ AOPk'~ BLt l'~ CNm'~ DV33n'~ Fh o'~ I\xkp'~ KQ q'~ LK r'~ MM s'~ NLtt'~ ON|[u'~ PK'~ QOP'~ SCLx'~ UHmy'~ VNz'~ Mc'~ OP'~ CL}'~ I~'~ El'~ G'~ Dy'~ OP~'~ CL'~ E'~ C) '~ y'~ @'~ n3'~ CL '~ EG'~ CL'~ OP '~ Nn '~ CL'~ CL'~ Y'~ CL'~ CL'~ C'~ @2p'~ CL'~ CL'~ CL'~ FK '~ E'~ p33 '~ d34 '~ u/ '~ H'~ S'~ d!'~ ^ "'~ KL#'~ A@$'~ K!%'~ Kp &'~ LU''~ Ig('~ HD'~ CL*'~ I +'~ \bb'~ CL-'~ D'~ OP'~ CL0'~ B 1'~ J2'~ Ged3'~ I g4'~ LK'~ OP6'~ ]'~ CL8'~ I '~ CL:'~ K'~ CL<'~ B=='~ N'~ OP'~ CL@'~ OA'~ F^B'~ Gm'~ HCL'~ KOPE'~ LCH'~ OH-I'~ QT J'~ RDK'~ SX]L'~ TY: '~ WE*'~ XB'~ YGe'~ [K'~ \I"d'~ ]B^'~ ^D '~ _L{'~ aG'~ bz7'~ cH`i'~ fO'~ hIS<'~ iK?'~ loA'~ nJP'~ oB5'~ rS '~ tu9'~ vM '~ wL0'~ xe '~ yJ`'~ zQ3'~ |CL'~ E^'~ F='~ OP'~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ Pg'~ G6g'~ Pg'~ _ > '~ _ > '~ _ > '~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ CL'~ ^'~ CL'~ CL'~ CL'~ N/}'~ CL'~ DA'~ CL'~ CL'~ E2'~ CL'~ CL'~ CL'~ OP$'~ H%'~ HT&'~ L'~ CL*'~ H,'~ ejM'~ OP.'~T'~CL'~CL'~OP'~CL3'~pJ4'~AH6'~cs37'~N8'~ U9'~#b:'~%X;'~&]@<'~'[3'~(OP>'~)Q?'~*EM@'~+DUA'~,R'~-OPD'~.H\E'~/EXF'~0E8G'~1O<'~5|3'~6CFf'~7},'~8`11 '~9R'~:EB'~>w '~?t4 '~@qV '~Ar !'~DCL '~ECL'~FCL'~He '~KOP'~tF1@'~uK)'~v@'~y|` '~{\'~|q'~CL'~CL'~CL'~CL'~CL'~E@'~Ao'~J'~s '~HU '~7 '~}u% '~O '~pi'~BZ'~} '~K'~G'~y'~wQ? '~FxC'~Ke'~NDm'~iQ '~B{'~a'~^y'~^ '~CL'~CL'~CL'~CL'~CL'~OP'~OP'~OP'~CL'~HO'~G'~I'~G'~h33'~h33}e'~{e}f'~ ry4 M'~p N'~DO'~b'~Svc'~Tr.'~VCL'~WCL'~XCLg'~ZoK '~]CL'~^CL'~_CL'~`CLm'~cDXn'~fpo'~gx

\iRp'~hQ q'~iML r'~jN s'~kL!t'~lN:u'~mK'~nOP'~qCLx'~sH$y'~tSz'~vMty'~wOP'~yCL}'~{Hؒ~'~}F'~~H)'~E '~OP~'~CL'~F7 '~Ca '~x'~@'~n@'~CL '~E'~CL'~OP '~O '~CL'~CL'~JZ'~CL'~CL'~C'~@U'~CL'~CL'~CL'~F '~Gٚ'~p33 '~g '~u '~H'~Tz'~e!'~hff "'~Qf#'~Bs4$'~K!%'~KX&'~Md''~Id('~H'~CL*'~J+'~^'~CL-'~D'~OP'~CL0'~BF1'~Iى2'~G3'~IX4'~LO'~OP6'~]'~CL8'~Iw'~CL:'~K'~CL<'~1CU='~3NB'~4OP'~6CL@'~9OXA'~:FtB'~;GgR'~=CL'~@OPE'~ACH'~CD I'~Fa J'~GA|K'~HXL'~IYc '~LE9['~MBn'~NH '~PK'~QI"d'~RCy'~TD'~UL'~VG'~WzJ'~XHSa'~[O'~]Il'~^K<-'~aoA'~cJP'~eCy'~hP'~ju9'~kM '~L'~f '~Jc'~P0'~CL'~E'~DF-'~OP'~CL'~CL'~CL'~CL'~CL'~CL'~CL'~R3'~G6g'~Ng'~_ > '~_ > '~_ > '~CL'~CL'~CL'~CL'~CL'~CL'~CL'~^'~CL'~CL'~CL'~N*p'~CL'~D=~'~CL'~CL'~D|'~CL'~CL'~CL'~OP$'~H"%'~H_&'~J'~CL*'~H,'~f'~OP.'~T!'~ CL'~ CL'~ OP'~CL3'~pR4'~AH6'~cf7'~I8'~U9'~bO:'~Xfg;'~]f<'~\f'~ OP>'~!Rk?'~"F@'~#DA'~$S'~%OPD'~&H$RE'~'EtF'~(ESG'~)O'~-C'~.HC3'~/C33'~0`T '~1S50'~3E'~^wt '~_t '~`q^ '~as8 !'~dCL '~eCL'~gCL'~ic '~kOP'~lFl'~mK='~nA'~q} '~sw2'~uq'~wCL'~xCL'~yCL'~zCL'~{CL'~~E'~AI'~Kݺ'~t!N '~HD '~ '~} '~J '~nl'~B'~} '~KM'~GC'~y'~w '~F'~Kc'~M'~j ^ '~z '~a#3'~[f'~^ '~CL'~CL'~CL'~CL'~CL'~OP'~OP'~OP'~CL'~H6['~G%'~I'~G'~i('~i(}e'~sa\}f'~o M'~1pt N'~3DO'~4J$P'~5F7Q'~8SR'~9QS'~:n T'~;S=V'~=@ X'~?FWY'~@FW7['~A\'~BIޔ^'~EaXO_'~GBq`'~H@ua'~Jub'~KtHc'~Ls'~NCL'~OCL'~QCLg'~So '~UCL'~VCL'~WCL'~XCLm'~[Dqn'~_@o'~xM '~CL'~CL'~CL'~CL'~CL'~CL'~CLw'~sx'~O{y'~PH'~OP{'~DIc|'~S}'~c~'~^'~cP '~E`'~zu ~'~OP'~b~k |'~CL'~G8'~Lr'~G3'~Qw;u'~CLt'~CL'~e '~wĜ '~q\) 5'~G6'~E'~OP'~CL:'~By;'~Edz<'~Q5?'~@'~OP'~CLB'~AC'~|(D'~|5 E'~HF'~JG'~K=qH'~{7 L'~ k M'~ NR N'~ zH O'~ BP'~ B6Q'~FR'~EZT'~E] U'~E V'~V4'~OP'~CLY'~EZ'~{H '~OP'~CL]'~{LS ^'~ | '~"OP'~$CLa'~&~ '~POP'~RCLd'~TD'~VOPf'~X^'~YCLh'~[A/i'~\O'~^OPk'~_M@ l'~`Pm'~aLn'~ccf o'~f\pp'~hQff q'~iJ r'~jLR s'~kMt'~lNFu'~mL)'~nOP'~pCLx'~rHy'~sQi z'~uM]]'~wOP'~yCL}'~{H ~'~}FP'~~HtG'~D'~OP~'~CL'~F'~C '~x'~{&f'~os4'~CL '~D'~CL'~OP '~S '~CL'~CL'~H@'~CL'~CL'~DS'~A!'~CL'~CL'~CL'~F '~Es3'~p '~d '~u '~x '~Bz '~F\ !'~w "'~g#'~Pٚ$'~K&X%'~Ko&'~M=''~Iz('~Hw'~CL*'~J%g+'~Z)'~CL-'~E'~OP'~CL0'~Bw1'~HE2'~Gľ3'~ Im4'~!L '~"OP6'~$]'~%CL8'~'HU'~*CL:'~,K?m'~/CL<'~1Ci(='~3N}t'~4OP'~6CL@'~9OA'~:G@B'~;GRQ'~=CL'~@OPE'~ADOH'~CBI'~Fi) J'~GyK'~HWL'~IYc '~LEG'~MBn'~NG'~PK'~QI"d'~RCy'~SE'~|L`'~~H4'~{['~I"d'~O'~I{.'~K4'~oA'~JP'~Cy'~Lv'~u9'~M '~L'~f '~Jic'~Mn'~CL'~E{}'~DF-'~OP'~CL'~CL'~CL'~CL'~CL'~CL'~CL'~Ng'~Nə'~Yg'~_ > '~_ > '~_ > '~CL'~CL'~CL'~CL'~CL'~CL'~CL'~^'~CL'~CL'~CL'~N. '~CL'~D4q'~CL'~CL'~E'~CL'~CL'~CL'~OP$'~HM%'~Hk&'~HP'~CL*'~I.,'~fR'~OP.'~T'~ CL'~ CL'~ OP'~CL3'~p4'~AH6'~Wf7'~LY8'~UY9'~b:'~EZ3;'~F^<'~G^33'~HOP>'~IR7?'~JF%@'~KE A'~LS(9'~MOPD'~NH~E'~OE F'~PEqG'~QO'~UA#3'~VEi'~W@Y'~Xa7 '~YS'~ZF+I'~]xWc '~_t '~`rs '~asF !'~dCL '~eCL'~fCL'~hg '~kOP'~lFc'~mK:\'~nA~'~q '~sEO'~tr'~wCL'~xCL'~yCL'~zCL'~{CL'~~E'~Aj'~N '~tx '~Hj '~r '~~] '~R '~of'~C;'~}T '~Kt2'~G;'~y'~wt '~F~'~K'~Mi'~jD '~pc'~`c3'~['~^"'~CL'~CL'~CL'~CL'~CL'~OP'~OP'~OP'~CL'~Hn'~ GV'~I '~G?'~hp'~hp}e'~scn~}f'~k}Y M'~3p N'~5DWO'~7J*P'~8Fs1Q'~;SR'~SΘV'~?AX'~BFhY'~CFF['~D\'~EK(^+fe_+fBx`+f@a+f tb+f tc+f qu+f CL+fCL+fCLg+fpG +fCL+fCL+fCL+fCLm+fDn+fo+fz^ +f!CL+f"CL+f#CL+f$CL+f%CL+f&CL+f(CLw+f+uRx+f,Ly+f-P+f.OP{+f/E c|+f0TfB}+f2`~+f4^+f6T +f8EN+f;{w ~+feOP+fib |+fkCL+fnG#+foL+fpG4+ftGEEu+fvCLt+fwCL+fya +f{vk +f|pH 5+f~Go6+fE]+fOP+fCL:+fB+;+fD<+fR_?+f@}+fOP+fCLB+fBC+f{D+f| E+fJGF+fG(G+fDH+f|I L+fk M+fNR N+f{\* O+fBfP+fB!Q+fFoR+fE1bT+fEU+fEI"V+fZ+fOP+fCLY+fE#Z+f| +fOP+fCL]+f{a ^+fCa+fOP+fCLa+f: +fOP+fCLd+fE*+fOPf+f^+fCLh+fB}i+fN+fOPk+fME l+fPm+fKpn+fd o+f\?p+fPf q+fKff r+fM\ s+fMdt+fNu+fL+fOP+fCLx+fHy+fNz+f-M+f.OP+f0CL}+f2Ha~+f4F++f5H+f6E+f7OP~+f:CL+fC +f?y +f@zٚ+fAos4+fCCL +fED+fHCL+fKOP +fNS +fQCL+fRCL+fUY7+fWCL+fXCL+fZEV+f[C+f^CL+f_CL+f`CL+fcF' +fdH+feuL +ffn +fgu +fH+fS+fd!+f] "+fS#+fG3$+fK#%+fK;D&+fM!'+fI(+fH+fCL*+fJ;++fXn+fCL-+fEO+fOP+fCL0+fC1+fH2+fG3+fI^4+fK;+fOP6+f]+fCL8+fI(-+fCL:+fJZ+fCL<+fCu=+fN}t+fOP+fCL@+fOA+fG3vB+fG3+fCL+fOPE+fDvKH+f~zI+fm J+ftK+fXbrL+fYuc +fEV[+fB+fGo+fK+f I"d+f Cy+f E4+f L`+f Hٙ+fzn+fI"d+fO+fI=+fK<-+foA+fJP+fCy+fL+f!v(+f"M +f#L+f$f +f&Jic+f'K+f)CL+f,Ee+f/DF-+fYOP+f[CL+f\CL+f]CL+f^CL+f_CL+faCL+fbCL+feNg+ffM+fgYg+fh_ > +fi_ > +fj_ > +flCL+fmCL+foCL+fpCL+fqCL+frCL+fsCL+ft^+fuCL+fvCL+fxCL+fyN(E+f{CL+f~D6A+fCL+fCL+fEV[+fCL+fCL+fCL+fOP$+fH%+fHv&+fF+fCL*+fIi,+ff-+fOP.+fTB+fCL+fCL+fOP+fCL3+fq 4+fAH6+fR7+fLY8+fZ9+fbO:+f^Ff;+f]<+fb+fOP>+fR8T?+fFB@+fE"iA+fSY+fOPD+fHE+fEYF+fEG+fO+f}fg+fC +f}S3+fa] +fT +fF`$+fx +fu +frz +ft>u !+fCL +fCL+fCL+ffJ +f OP+f!F5+f"Ky+f#A+f&~; +f({+f)t70+f,CL+f-CL+f.CL+f/CL+f0CL+f3E+f4A+f6Hez+f9t4 +f@+f?~ +f@KE +fCt+fFCq+fJ} +fLK+fMGb+fPy+fQx+ +fRF+fTK!+fVO+fYj +fZHk+fa0+fY+f^"+fCL+fCL+fCL+fCL+fCL+fOP+fOP+fOP+fCL+fH/+fH+fI +fGo+fm +fm }e+f(g}f+fyfM M+fp N+fDO+fJP+fFQ+fSR+fRS+fn T+fS>V+fA X+fF+Y+fFۘ[+fP\+fJU^+fbr_+fBx`+f@a+frb+fs{c+fp*+fCL+fCL+fCLg+f o +f CL+fCL+fCL+fCLm+fDn+fo+fz +fCL+fCL+fCL+fCL+fCL+fCL+f CLw+f#xzx+fMLaHy+fNOB+fOOP{+fPD|+fQT}+fRd*~+fT^+fWF_ +fYEB|+f\w ~+f^OP+fab8 |+fdCL+fgGR+fhL+fiG=P+flM u+foCLt+fpCL+fr]1 +fsu +fto 5+fwG?6+fxE+fyOP+f{CL:+f}B=;+f~C4<<+fS=?+f@Q+fOP+fCLB+fBFC+fzD+f| E+fGHF+fGG+fIH+f|/ L+fk M+fN=q N+f{ O+fBP+fAkQ+fFcR+fET+fEU+fEV+f[Pw+fOP+fCLY+fEsZZ+f| +fOP+fCL]+f| ^+fO9+fOP+fCLa+fA+fOP+fCLd+fE+fOPf+f^+fCLh+fB1 i+fMܪ+fOPk+fM: l+fSm+fM\n+fe33 o+f\mp+fRaH q+fL r+fOG s+fM't+fNu+fL@+fOP+f CLx+f"Hy+f$L,z+f&Mv+f'OP+f)CL}+f+Ha~+f-F+f.I+f/EJ+f0OP~+f2CL+f4G&"+f7C3 +f8wٙ+f9y+f:nٚ+fD_+fACL+fDOP +fGQ6 +fJCL+fKCL+fNW+fxCL+fyCL+f{E+f|CR+fCL+fCL+fCL+fF! +fG+fv +fcf +fv +fE+fQ+fd!+f^ "+fG@#+fE$+fKV%+fKt&+fM!'+fI(+fI#+fCL*+fJ++f^+fCL-+fE*+fOP+fCL0+fCSc1+fN:w2+fH+g3+fJ 4+fKΌ+fOP6+f]+fCL8+fI +fCL:+fJF+fCL<+fD=+fM<+fOP+fCL@+fOhA+fG\OB+fGN+fCL+fOPE+fD H+f|I+fgg J+foK+fX!L+fY +fEV[+fBw+fGe+fK+fI"d+fCy+fEZ+fL +fHٙ+f{+fI"d+f O+f I8+fK8+foA+fJP+fE,O+fR%+fAv"_+fBM +fDL+fEh +fFJp+fGL+fICL+fLE+fODF-+fQOP+fSCL+fTCL+fVCL+fWCL+fXCL+fYCL+fZCL+f]Pg+f^L+f_Pg+f`_ > +fa_ > +fc_ > +feCL+ffCL+fgCL+fhCL+fiCL+fjCL+fkCL+fl^+fnCL+foCL+fpCL+fqN-S+fsCL+fvD8+fxCL+fCL+fDg+fCL+fCL+fCL+fOP$+fH%+fH&+fQ+fCL*+fIi,+fe+fOP.+fT+fCL+fCL+fOP+fCL3+fqC4+fAH6+fUf7+fS8+fZL9+fbx:+f]ٚ;+fa<+f`+fOP>+fR%?+fF[g@+fE>A+fSy+fOPD+f I!E+f EaF+f EG+f P+f}2+fBf+f}S3+faڔ +fT{Z+fF+fy#; +fu65 +fr +ft !+fCL +f CL+f"CL+f$h +f&OP+f'F+f(Kր+f)B@L+f, +f1p+f3rH2+f5CL+f6CL+f7CL+f8CL+f9CL+f=E+f>AD+f?IU+fBu +fmH +fo@+fpU +fqO^ +fus\+fxC+f{| +f}Kث+f~Gr/+fy+fxt +fF+fK+fN+fjH +fsR+fa+f]3+f^"+fCL+fCL+fCL+fCL+fCL+fOP+fOP+fOP+fCL+fHٞ+fH+fI +fG'+fV:+fV:}e+f1S=}f+frb M+fpJ N+fDUO+fKP+fFQ+fSR+fR!S+fn T+fTV+fBX+fFuY+fG[+f|v\+fJ^+fg&_+fBx`+f @zBa+f r>b+f4spc+f5p+f7CL+f8CL+f9CLg+f

    CL+f?CL+f@CL+fACLm+fDDn+fG@o+fI{ +fKCL+fLCL+fMCL+fNCL+fOCL+fPCL+fRCLw+fU|x+fVMy+fWP+fXOP{+fYE|+fZS L}+f[a@\~+f^^+f`F_ +fbEP+fe{ ~+fgOP+fkd$ |+fmCL+fG[+fM x+fGL+fNzu+fCLt+fCL+f]D +fvH +fp" 5+fGW6+fE+fOP+fCL:+fCU;+fB<+fT]?+f@+fOP+fCLB+fBcC+fxD+f|` E+fEzF+fG(G+fMH+f|, L+fk > M+fM N+fzH O+fBP+fA Q+fFR+fE/5T+fFVU+fEV+fWQ!+fOP+fCLY+fEZ+f|C +fOP+fCL]+f } ^+f VIB+f OP+f CLa+f EsZ+f OP+f CLd+f E*+f OPf+f ^+f CLh+f B\i+f M$+f OPk+f M l+f Qm+f Ln+f fQ o+f \GVp+f !Q q+f "KG r+f #N s+f $M!t+f %N0u+f 'LU+f (OP+f *CLx+f ,Hy+f -L0z+f /M?+f 0OP+f 2CL}+f 4H~+f 6FT+f 7IJ+f `E#+f aOP~+f cCL+f fGQ+f hB +f ix+f jy+f kn+f mCL +f oC+f rCL+f uOP +f xP +f {CL+f |CL+f ~J|1+f CL+f CL+f F5+f DpU+f CL+f CL+f CL+f F +f Gfg+f uf +f cf +f v+ +f JH+f Up+f e!+f Z "+f P@#+f Cg$+f K%+f K&+f M'+f IƏ(+f I+f CL*+f J3++f `+f CL-+f EV[+f OP+f CL0+f C:1+f KU2+f Hc3+f JC4+f KM+f OP6+f ]+f CL8+f IL+f CL:+f J+f CL<+f D;=+f M+f OP+f CL@+f OA+f GB+f G+f CL+f OPE+f E<H+f J7I+f Z J+f (l@}K+f )XJL+f *Y` +f -Ed+f .Bw+f /G+f 1K+f 2I"d+f 3Cy+f 4E*+f 6L+f 7Hٙ+f 8{s+f 9I"d+f IR+f ?K-+f BoA+f DJP+f ED+f HPI+f Kv+f LL+f ML{+f Nh +f OJs+f PK+f RCL+f UE+f VF=+f WOP+f ZCL+f [CL+f \CL+f ]CL+f ^CL+f _CL+f `CL+f cNg+f G6g+f Ng+f _ > +f _ > +f _ > +f CL+f CL+f CL+f CL+f CL+f CL+f CL+f ^+f CL+f CL+f CL+f N,+f CL+f D>f+f CL+f CL+f D_+f CL+f CL+f CL+f OP$+f I%+f H&+f O+f CL*+f IE,+f f+f OP.+f T$+f CL+f CL+f OP+f CL3+f qc4+f AH6+f U347+f Jٙ8+f ]L9+f bx:+f Xg;+f ]<+f ^3+f OP>+f R?+f Fy^@+f EXA+f T'+f OPD+f IE+f EF+f EȬG+f Px+f }+f Cc4+f }f+f bw +f T0+f G(+f y +f uS[ +f sU: +f uS[ !+f CL +f CL+f CL+f f +f !OP+f "G+f #K+f $B+f %@h/+f &EO+f (r~+f *CL+f +CL+f TCL+f UCL+f VCL+f YE+f ZA+f \J+f _ua +f bI +f dAO+f eK +f fL/ +f in+f mD'+f p},l +f rK+f sG+f vy+f wxP +f xG+f zK+f |OD+f kQ +f o+f `+f Z3+f ^"+f CL+f CL+f CL+f CL+f CL+f OP+f OP+f OP+f CL+f I+f H7+f I +f G+f ip+f ip}e+f &c}f+fb M+f pt N+f DO+f K}P+f F/Q+f SER+f RWS+f n T+f TnV+f BX+f FkY+f Gh[+f +\+f HD^+f #dG_+f $B`+f %@a+f (tub+f )sBc+f *q4+f ,CL+f -CL+f .CLg+f 0p~ +f 2CL+f 4CL+f 5CL+f 6CLm+f 9Dn+f <go+f =| +f ?CL+f ACL+f BCL+f CCL+f DCL+f ECL+f FCLw+f Iu=qx+f KJW y+f LP+f MOP{+f NE&|+f OQ}+f Pan~+f R^+f UT +f WEc+f yN ~+f OP+f euq |+f CL+f Gy+f M,+f G@+f I.u+f CLt+f CL+f ] +f u +f oa 5+f G6+f E+f OP+f CL:+f C6];+f @^<+f TQ?+f @E+f OP+f CLB+f BC+f v,D+f | E+f OF+f GG+f XH+f | L+f l M+f NR N+f |Q O+f BMP+f B Q+f F]tR+f E T+f F:U+f EV+f ]+f OP+f CLY+f F(Z+f ~z +f OP+f CL]+f } ^+f ZF:+f OP+f CLa+f J++f OP+f CLd+f EV[+f OPf+f ^+f CLh+f Bni+f L4e+f OPk+f M: l+f S m+f N\)n+f cf o+f \Z7p+f O\) q+f J8R r+f LaH s+f M)t+f N'u+f L+f OP+f CLx+f HHHy+f ISYz+f LM/+f MOP+f OCL}+f QH~+f SG!*+f TI+f UE\+f VOP~+f XCL+f ZH +f ]Cz +f ^xs4+f _yg+f `n+f bCL +f dDg+f gCL+f jOP +f mR +f pCL+f qCL+f sHzx+f vCL+f wCL+f yG )+f zE+f }CL+f ~CL+f CL+f F +f G+f p33 +f g +f v +f H+f R\+f d!+f Zg "+f K&g#+f | $+f K%+f K&+f ME/'+f I(+f I+f CL*+f JZ++f \s+f CL-+f E+f OP+f CL0+f D4K1+f J2+f Hy3+f Jb4+f Kk+f OP6+f ]+f CL8+f IΘ+f CL:+f J+f CL<+f D=+f M+f OP+f CL@+f O2A+fGB+fG$+fCL+fOPE+fEPH+fDI+fe J+fitTK+fXbrL+fZ +f"EsZ+f#B+f$G+f&K+f'I"d+f(Cy+f)E5+f*L`+f,Hq+f-{D+f.IM+f1O+f3I8+f4K/q+f7oA+f9JP+f:E4+f=Lv+f?v+fAL+fBL+fCh +fDJp+fEJ}+fGCL+fJE&+fuDF-+fwOP+fyCL+fzCL+f|CL+f}CL+f~CL+fCL+fCL+fRc4+fL +fPg+f_ > +f_ > +f_ > +fCL+fCL+fCL+fCL+fCL+fCL+fCL+f^+fCL+fCL+fCL+fN&+fCL+fDB+fCL+fCL+fEZ+fCL+fCL+fCL+fOP$+fI$%+fH&+fM0+fCL*+fJ,+ffe+fOP.+fU?+fCL+fCL+fOP+fCL3+fq4+fAH6+fW7+fL8+f[39+fbm:+f_;+f]f<+fc+fOP>+fR?+fF@+fEqLA+fTE]+fOPD+fI$E+fEF+fEG+fP|+fB3+fG+fCvg+fb +fUCj+fGe+f z % +f ua +fsF +fu !+fCL +fCL+fg[~ +fAOP+fBG> +fCK+fDB+fE@]I+fFXh+fGr>+fJCL+fKCL+fLCL+fMCL+fNCL+fQE+fRB+fSQ3l+fWuZ +fZJQ +f\A+f]@;+f^L +fap+fdDxW+fh} +fjLJ +fkG+fny+foy +fpG-a+fqK?m+fsOB|+fwkh +fj+f`+fZ+f^"+fCL+fCL+fCL+fCL+fCL+fOP+fOP+fOP+fCL+fIL+fH7+fI o+fG+fz\)+fz\)}e+fFun}f+f bִ M+fp N+fDO+f KP+f GQ+fSER+fRS+fn T+fUV+fC{^X+fF?Y+fG$[+fs\+fH^+fay_+fB`+f@ua+ftb+f ukc+f"qu+f$CL+f%CL+f&CLg+f(p +f*CL+f+CL+f-CL+f.CLm+f1Dn+f4go+f5}{c +f7CL+f8CL+f:CL+f;CL+fCLw+fiwx+fjKy+fkL+fmOP{+fnG)|+foQ}+fp`~+fr^+ftT +fwEr+fzsrb ~+f|OP+fe |+fCL+fGL+fM1O+fG;$+fOLu+fCLt+fCL+f]2- +fu8 +fpA 5+fG6+fF+fOP+fCL:+fCi(;+fG<+fU?+f@+fOP+fCLB+fB=C+fxaD+f| E+fKF+fI34G+fRpH+f|T L+flz M+fO34 N+f|Q O+fB5P+fB#BQ+fFxR+fEAUT+fFvU+fF;V+f_:+fOP+fCLY+fFiZ+f~z +fOP+fCL]+f~ ^+f_!r+fOP+fCLa+fNH +fOP+fCLd+fEl+fOPf+f^+fCLh+fB=i+fWM+fOPk+fML l+fR{m+fL n+f0bq o+f3\4tp+f5Oz q+f6K r+f8L3 s+f9M7t+f:N2u+f;L +fCLx+f@Iwy+fAQ0z+fCL+fDOP+fFCL}+fHHؒ~+fJGOb+fLI+fME+fNOP~+fPCL+fRHG+fTC +fUx+fWz@+fXo+fZCL +f\D+f^CL+faOP +fdS +fgCL+fhCL+fk\+fCL+fCL+fF+fD1+fCL+fCL+fCL+fF +fEs3+fp +fcf +fv +fH+fR\+fe!+f`L "+fH#+fB$+fKT%+fK\&+fM'+fIϥ(+fI\G+fCL*+fKc++fZd+fCL-+fE+fOP+fCL0+fD_1+fIG2+fHӓ3+fJ4+fKJ+fOP6+f]+fCL8+fJX+fCL:+fJ3+fCL<+fD̘=+fM+fOP+fCL@+fO?A+fHUB+f G+f CL+fOPE+fEH+fCI+fk[ J+ffK+fXL+fZ` +fEsZ+fBɀ+fG+fK+fI"d+f Cy+f!EB+f"L+f#J=(+f${X+f&J+f)O+f+I٢+f,K6+f/oA+f1JP+f2E+f]K]+f_u +f`L+faL+fciD +fdJlH+feJ+fgCL+fjEk9+fmDF-+foOP+fqCL+frCL+fsCL+ftCL+fvCL+fwCL+fxCL+f{N0+f|F+f}Ng+f~G +fUp+fG +fCL+fCL+fCL+fCL+fCL+fCL+fCL+f^+fCL+fCL+fCL+fN&+fCL+fDA+fCL+fCL+fE*+fCL+fCL+fCL+fOP$+fI%+fH&+fL0+fCL*+fJO,+ffy+fOP.+fU+fCL+fCL+fOP+fCL3+fr$4+fA6+fR 7+fZL8+fd349+fb|:+fYg;+f[4<+f\+fOP>+fS\?+fF@+fEA+fTQ+fOPD+fIE+fFF+fFG+fPؔ+f@l+f$E&f+f%@g+f&cm +f'U+f(GK+f+z +f,u +f.t!N +f/vK !+f2CL +f3CL+f4CL+f6h" +f8OP+f9GEG+f;L=+fCL}+f@I(-~+fBG+fCJ4?+fDE+fFOP~+fHCL+fJH+fLCF% +fMwff+fNy33+fOm+fQCL +fSDG+f~CL+fOP +fNP +fCL+fCL+f\B1+fCL+fCL+fF5+fDɕ+fCL+fCL+fCL+fF +fG3+fy +fv +fw* +f~R +fE +fI34 !+fYff "+fU#+fH$+fKj%+fKu&+fMF'+fI.(+fI+fCL*+fKz++f`K.+fCL-+fE+fOP+fCL0+fD1+fHgp2+fI 3+fK4+fK+fOP6+f]+fCL8+fJā+fCL:+fI+fCL<+fD=+fMy+fOP+fCL@+fO{|A+fH6NB+fG#=+fCL+f OPE+f EH+f @}AI+fof J+fdS6K+fWkL+fZ%\ +fE+fBɀ+fG+fK+fI"d+fCy+fDEM+fEL`+fFH+fG{4+fHIW+fKOp+fMIV+fOK8+fRoA+fTJP+fUFN=+fXRQ;+fZu~+f[M +f\L+f]lº +f^Jg+f_J7+fbCL+feEk9+ffEHG+fgOP+fiCL+fjCL+fkCL+flCL+fmCL+foCL+fpCL+fsO4+ftPI+fuPg+fv_ > +fw_ > +fx_ > +fzCL+f{CL+f}CL+f~CL+fCL+fCL+fCL+f^+fCL+fCL+fCL+fN+fCL+fD@6+fCL+fCL+fE]+fCL+fCL+fCL+fOP$+fI%%+fHt&+fJZ+fCL*+fJ,+ff+fOP.+fU+fCL+fCL+fOP+fCL3+frH24+fAH6+fQf7+f_8+f_9+fbO:+fWY;+f]fg<+f [+f OP>+fSm]?+fF٢@+fEA+fT:+fOPD+fIE+fF:F+fF"iG+fQ%+f@3+fEC4+f@+fcw +fUҕ+f Gw+f#{/9 +f$u6 +f%t +f&v( !+f*CL +f+CL+f,CL+f.fTQ +f0OP+f1G|S+f2L+f4C4+f5@Y+f6+f7r+f9CL+f:CL+f;CL+f=CL+f>CL+fAE|+fBB]+fCM/$+fFvK /NI3 /NBN/N @/N JZh /N nl/NE/N},l /NL/NHd/Ny/Nyz /NGgR/NJ /NPw:/N"k /N%B /N'`/N([ /N)^"/N*CL/N+CL/N,CL/N.CL/N/CL/N2OP/N3OP/N4OP/N7CL/N:I3/N;H /NdI/NeG/Nih/Nlh}e+f6cE}f+f] M/Nq% N/NDlO/NJhP/NG$Q/NSR/NR S/Nn}[ T/NUrV/NC^X/NFY/NH K[/Nn\/NIal^/Nd_/NB`/N@zBa/Ntb/NsQc/Np/NCL/NCL/NCLg/NpW /NCL/NCL/NCL/NCLm/ND[n/N|o/N|ӄ /NCL/NCL/NCL/NCL/NCL/NCL/NCLw/Nrx/NKky/NQ=q/NOP{/NG m|/NTK}/N^k~/N^/NF_ /NEM/Ny ~/NOP/Ne |/N-CL/N0G/N1M<#/N3G]./N6L"u/N8CLt/N9CL/Nn 5/N@GO6/NAF q/NBOP/NDCL:/NFDB;/NGD /NCL/NCL/NS=/NCL/NCL/NG/NEac/N CL/N!CL/N"CL/N%G0 /N&F3/N'v33 /N(d34 /N)w5 /N*G >/N,R\/N-d!/N.[ "/N/NL#/NXAff$/NYK%/NZLZ&/N[MWl'/N\Is(/N]Iþ/N_CL*/NbK+/Ne`X/NhCL-/NjE/NlOP/NnCL0/NpDY1/NqPJ2/NsIJ3/NtKCu4/NuK/NvOP6/Nx]/NyCL8/N{K?m/N~CL:/NIw/NCL /N.G /N/_ > /N1CL/N2CL/N3CL/N4CL/N6CL/N7CL/N8CL/N9^/N:CL/N;CL/NN/N@CL/NBD>f/NDCL/NECL/NGE2/NJCL/NKCL/NLCL/NOOP$/NPI:%/NQH&/NSI./NVCL*/NYJ{,/NZf3/N[OP./NVc/NCL/NCL/NOP/NCL3/Nrj@4/NA6/NP37/NB&f8/NU349/Nb:/Nd3;/Nc@/NS?/NF>@/NEŨA/NUa/NOPD/NI6E/NFYF/NFA<G/NQh/N}f/NC /N}2/Nd /NV"l/NH,;/N{ /Nu /Nt /NwQ? !/NCL /NCL/NCL/NixB /NOP/NG/NL/NC/NA/Ndg/Nr/NCL/NCL/NCL/NCL/NCL/NE/NB}r/NQ T/Nv /NH" /NB/N@/NRJ /No/N Ef/N}u% /NL/NH"/Ny/Ny] /NGJ/NJ/NQ/NlD /N _" /N!]/N"X/NL^"/NMCL/NNCL/NOCL/NPCL/NQCL/NUOP/NVOP/NWOP/NYCL/N\I/N^H /N_I /N`Gv/Nch33/Nfh33}e/NP}f/N<\ M/NqN N/NDO/NK~8P/NG|SQ/NSR/NRS/NnT T/NWkV/NDJX/NFiY/NH>[/N\/NF)^/Nb"_/NB9`/N@a/Nxb/Nuzc/Nq/NCL/NCL/NCLg/Np_` /NCL/NCL/NCL/NCLm/NDn/Nɚo/N~ /NCL/NCL/NCL/NCL/NCL/NCL/NCLw/Ns{x/NKy/NM/NOP{/NIK|/NP}/N`Ӫ~/N^/N7 /NE /N pPL ~/N"OP/N%h1 |/N(CL/N+F/N,Mgy/N-G9/N0Pu/N3CLt/N4CL/N6\o /N7vA /N8p 5/N;GO6/NCL/N?CL:/NAE;/NBE /N%_ > /N&_ > /N(CL/N*CL/N+CL/N,CL/N-CL/N.CL/N/CL/N0^/N1CL/N3CL/N4CL/N5N/N7CL/N:D@6/NE2/NACL/NBCL/NCCL/NnOP$/NoIK%/NpHa&/NsG/NuCL*/NxK(,/Nyg./NzOP./N{VIB/N}CL/N~CL/NOP/NCL3/Nr*4/NAH6/NXf7/NCg8/NUY9/Nb:/NY33;/N^/NS#?/NG@/NEA/NUZq/NOPD/NHE/NFwF/NFcG/NQ/N@g/NEg/N@/Ndyr /NV} /NHq_/N|` /Nu} /Nu /NwS !/NCL /NCL/NCL/Nh" /NOP/NG\/NL/NC4/NAB/N}c/Ns5/NCL/NCL/NCL/NCL/NCL/NE/NBy/NMZz/Nvܹ /NIU /NB/NA+/NKce /Nr&f/NE[/N}; /N M,/N H@/N7y/N8y /N9G/N:J_C/N|/NXHw/NYI /NZG-/N\z3/N]z3}e/NWh}f/N6a.7 M/Nrez N/NDO/NL\P/NGQ/NSR/NSS/Nn T/NWeNV/NDŇX/NFY/NH{;[/Nr\/NF9^/NaiT_/NB9`/N@a/Nw >b/NtHc/Nr/NCL/NCL/NCLg/Npo /NCL/NCL/NCL/NCLm/ND{n/Nɚo/N@A/NCL/NCL/NCL/N CL/N CL/N CL/N CLw/N zx/N OQy/N O\/N OP{/N It|/N QR}/N _~/N ^/N F_ /N E>'/N u ~/N OP/N h# |/N CL/N "GP/N #M@/N $Gʉ/N (Iu/N *CLt/N +CL/N -[$ /N /vfg /N 0pA 5/N 2G6/N 3F/N 5CL/N 6CL:/N `G-a;/N aDlGp/N ACL/N BCL/N CCL/N FG_ /N GEL/N Hof /N Jc /N Kwm /N LH/N MQ/N Nd!/N OCg"/N Pw3#/N QY$/N RJ%/N SKR&/N TMmO'/N UI(/N VJ!/N XCL*/N [L]+/N ^ZK/N aCL-/N cEW/N OP/N CL0/N E1/N K/72/N IU3/N K 4/N K/N OP6/N ]/N CL8/N L /N CL:/N I/N CL /N $_ > /N %_ > /N 'CL/N (CL/N )CL/N +CL/N TCL/N UCL/N VCL/N W^/N XCL/N YCL/N ZCL/N \N/N ^CL/N `D?M/N bCL/N cCL/N eE/N hCL/N iCL/N jCL/N mOP$/N nIW%/N oH+&/N pF'/N rCL*/N tKg,/N uf:/N vOP./N wVp/N yCL/N zCL/N }OP/N CL3/N r4/N AH6/N l&f7/N Uf8/N ]s39/N bx:/N Y ;/N \/N T ?/N GA6@/N EA/N U/N OPD/N HE/N FUF/N FG/N Q/N @/N E/N @/N e5 /N Vʲ/N H/N }T /N u /N u /N xWc !/N CL /N CL/N CL/N i /N OP/N H/N Lg/N DV/N BeR/N W/N sy1/N CL/N CL/N CL/N CL/N CL/N E/N B/N HӀ/N w% /N I"" /N BM/N A^v/N N} /N #r/N &F /N )} /N +Mn/N -HZ/N 0y/N 1z7 /N 2G:/N 3JBU/N 5Q/N 8l /N ;d /N =a)/N >Xf/N ?^ /N @CL/N ACL/N BCL/N DCL/N ECL/N HOP/N IOP/N JOP/N MCL/N PJ/N QH /N RI/N SG/N Vi/N i}e/N l`}f/N -_p M/N rF N/N DǪO/N LP/N GQ/N SR/N S0~S/N oK T/N WV/N EpX/N FY/N H[/N \/N IT^/N g _/N B9`/N @a/N ub/N tc/N qfg/N CL/N CL/N CLg/N qX /N CL/N CL/N CL/N CLm/N D&n/N Yo/N A`Q/N CL/N CL/N CL/N CL/N CL/N CL/N CLw/N 34x/N My/N O{/N OP{/N H|/N V}/N a~/N ^/N T /N Ep/N r1 ~/N OP/N ce |/N CL/N G/N HM̓/N JG/N MN0u/N OCLt/N PCL/N SV /N Tty /N Uo 5/N WG6/N XF '/N ZCL/N [CL:/N ]H ;/N ^CZi/N S^/N OPk/N MZL l/N L=qm/N Gffn/N lp o/N ]Rp/N T8R q/N N r/N P s/N MO7t/N Nu/N LQ/N OP/N CLx/N IEy/N Rz/N M/N OP/N CL}/N JBU~/N Hb-/N K#/N E/NOP~/NCL/NI /NC /Nxs4/Ny/Nn/NCL /ND/N!CL/N$OP /N'O\P /N*CL/N+CL/N.[NP/N0CL/N1CL/N3I/N4HΖ/N7CL/N8CL/N9CL/Ntfg /N?lL /N@w# /NAJH/NCUp/NDe!/NE\ "/NFI4#/NGA$/NHJ%/NIK&/NJMq'/NKIX(/NtJ'/NvCL*/NyLj+/N|X/NCL-/NE/NOP/NCL0/NE1/NJs2/NJ 3/NK4/NK/NOP6/N]/NCL8/NL&/NCL:/NIZ/NCLNg/N?G6g/N@Ng/NA_/NB_/NC_/NECL/NFCL/NGCL/NICL/NJCL/NKCL/NLCL/NM^/NNCL/NOCL/NPCL/NRN/NTCL/NVD?M/NXCL/NYCL/N[E/N^CL/N_CL/N`CL/NcOP$/NdId|%/NeH!&/NgQ/NjCL*/NmK,/Nnf/NoOP./NpVl/NrCL/NsCL/NvOP/NwCL3/Nr74/NAH6/NW&g7/NO338/NZ&g9/Nbi:/N`;/N_g/NTu?/NGd@/NF~A/NVU|/NOPD/NIqE/NFF/NFG/NR/N|3/NC/N}/Nes /NW /NI/N}R /Nv4 /NvY /Nxo !/NCL /NCL/NCL/Ni\ /NOP/NH0/NM%/NDFm/NA/No/Ns/NCL/NCL/NCL/NCL/N CL/N E/N B/NQ/Nwna /NJ /NCSc/NA /NM /NpFf/NF_/N"} /N$Mw]/N%Hy/N(y#/N)zr /N+G̶/N,J+/N.QF/N1m- /N2h/N5af/N6Y/N8^"/N9CL/N:CL/N;CL/N/NbR\/Ncd!/NdZ "/NeR#/NfB$/NgJ%/NhL&/NiM'/NkI(/NlJe /NnCL*/NqL+/Ns_R9/NvCL-/NxF/NzOP/N|CL0/N~F 1/NIXi2/NJL_3/NL@4/NKW/NOP6/N]/NCL8/NL/NCL:/NI/j/NCLCL/N?CL/N@CL/NACL/NBCL/NCCL/ND^/NECL/NGCL/NHCL/NIN+/NKCL/NND>f/NPCL/NQCL/NSF:/NUCL/NVCL/NWCL/NZOP$/N[Is%/N\H^&/N_P/NCL*/NK,/Nfv/NOP./NV/NCL/NCL/NOP/NCL3/NsI4/NAH6/NU347/NN8/NZ9/Nbx:/NY9;/N\3/NT?/NG@/NF=sA/NV8/NOPD/NI]E/NFF/NFfG/NRu/N@3/NE/N@4/Ne+ /NWm)/NIo/N~] /NvW /Nv( /Nyl !/NCL /NCL/NCL/NiQ /NOP/NHQ5/NM/NEW/NC!P/N};/Ns/NCL/NCL/NCL/NCL/NCL/NE/NC/NN-S/N w3 /NIf /NCi(/NAҩ/NJ /Nr)/NF/N} /NMFA/NH:/N#y#/N$z /N%G/N&Jw/NPR/NSmv /NTpUU/NW`ٚ/NY]/NZ^"/N[CL/N\CL/N]CL/N_CL/N`CL/NcOP/NdOP/NeOP/NgCL/NkK/NlH /NmI /NnG/NpzL/NqzL}e/NWA}f/NJZ M/Ns N/NDO/NMdP/NH/Q/NSR/NS{^S/Nn T/NX(V/NEX/NF&Y/NI$[/NȤh\/NF^/NdJ_/NBU`/N@a/Nv{b/NsQc/Nq/NCL/NCL/NCLg/Nq /NCL/NCL/NCL/NCLm/NDn/N@o/NA:/NCL/NCL/NCL/NCL/NCL/NCL/NCLw/N}Gx/NLy/NN\/NOP{/N JǮ|/N!QR}/N#b~/N%^/N'cP /N)E;/N,n$ ~/N/OP/N2g |/N4CL/N7G/N8N#8/N9H-/N=K8u/N?CLt/N@CL/NBV /NDu?} /NEp 5/NGG\6/NHF$/NJCL/NKCL:/NMI;/NNNK /N:_ > /N;_ > /N=CL/N>CL/N?CL/N@CL/NACL/NBCL/NCCL/NE^/NFCL/NGCL36CL36N36 CL36 D936 CL36CL36GQ36CL36CL36CL36OP$36I[%36HЛ&36O"36CL*36"L1,36#hG36$OP.36%U36'CL36(CL36*OP36,CL336/si4361A6364`L7365`f8366nff9368bx:36:XS4;36;a<36d]936eOP>36fT?36gG@36hF[gA36iW&36jOPD36kHE36lFF36mFG36nRf36r@P36sEɚ36t@36uf& 36wW136xI36{ O 36|vCL836AL36CCL:36EHؒ36HCL<36JFm=36LM36MOP36OCL@36RP6A36SIB36TH36VCL36YOPE36ZGH36[}mI36f J36d9K36X"L36Y 36EV36C36G36K36I"d36Cy36Ee36L36Ji>36zJ36Jފ36O36I36L36oA36JP36I"d36K36u[p36M 36M=36u 36Jvh36K36CL36EP36Ee36OP36CL36CL36CL36CL36CL36CL36CL36Og36{36Ng36_ > 36_ > 36_ > 36CL36CL36CL36CL36CL36CL36CL36^36CL36CL36CL36N36CL36D;36CL36CL36HG36 CL36 CL36 CL36OP$36I%36H&36OBN36CL*36LvG,36g36OP.36U36CL36 CL36#OP36MCL336Ps436QA636TM@736UY3836V[33936Ybql:36[Wg;36\[`<36]\36^OP>36_U?36`Gܪ@36aF}A36bV36cOPD36dI@E36eG#F36fG\G36gR36j@36lFP36mA36nfu 36oW36pII36s: 36tvY 36vw 36wzr !36zCL 36{CL36|CL36~h 36OP36Ha36M136E36CY3636t@36CL36CL36CL36CL36CL36E~36CR36Iu36xH 36I 36C36B)36K 36r)36GT.36~ 36M#36HӀ36z$36{/9 36H36I36RT36n0 36r&f 36`f36^s336^ 36CL36CL36CL36CL36CL36OP36OP36OP36CL36K36H36 I@36!G36$i36(i}e36iC}f36Zk M36Fs N36HDO36IMP36JHmQ36MSXR36NSS36Oo T36zZc V36{GrX36|GY36}IF[36~ud\36E^36b_36Br`36@1a36u=qb36sc36q{36CL36CL36CLg36rCY 36CL36CL36CL36CLm36Dyn36@o36B836CL36CL36CL36CL36CL36CL36CLw36xRx36Lqy36O\36OP{36Lo|36P2}36ep~36^36q 36E36o ~36OP36h |36CL36G36N,36HG36ICxu36CLt36CL36W 36tR 36p;e 536G636F<36CL36CL:36H#;36KF<36bT?36Avm36OP36 CLB36 DC36xZD36| E36E\)F36G(G36V(H36}s L36@HR M36AzH N36BPff O36CBP36DBk!Q36EFnR36FE1bT36GHjU36HHDV36IS36JOP36LCLY36NJXZ36O O 36QOP36SCL]36UBy^36W]36XOP36ZCLa36]S36^OP36`CLd36bF/36dOPf36f^36gCLh36iDi36kOa36mOPk36nN l36oQ\m36pL =n36ql@ o36t]SIp36vUff q36wQ= r36xUR s36yM*t36zO u36L36OP36CLx36IΘy36Rbz36Mw]36OP36CL}36K82~36IZ 36LH36E536OP~36CL36I>36C 36yY36zٚ36pY36CL 36C36CL36OP 36JB 36CL36CL36KU36CL36CL36K36K36CL36CL36CL36 G8 36 EL36 p33 36 c 36x: 36H36R\36e!36U34 "36C3#36wff $36J%36L$L&36M'36J(36J[36CL*36L"+36"Z@36%CL-36'FxC36)OP36+CL036-Fm136.L2360K=3361L(4362K=363OP6365]366CL8369M,36;CL:36=IL\36@CL<36BGC=36lM36mOP36oCL@36rPgA36sIB36tHI>36vCL36yOPE36zG]H36}HӻI36k J36lK36XFL36Y 36E36C 36Gx36K36I"d36C`36E36L{36J36zJ36K 36O36J=36M 36r 36JP36I"d36RT]36?CL36@CL36COP36ECL336Hs/436JA636LL3736MM836NT&f936Qbm:36SWٚ;36T\ <36U[36VOP>36WUP^?36XHT@36YF:A36ZWx36[OPD36\JE36]GJMF36^G.G36_S36c@36dF336e@P36ffo 36gX936hJ7_36j@V36mvv 36nx:D 36oz !36CL 36CL36CL36l& 36OP36HЛ36M36E36C,336~T36tR36CL36CL36CL36CL36CL36Eȗ36Cq36N~36x 36Jf 36D;36BUZ36Mfz 36r&f36Gg36~@ 36Lw36H36z36{w 36H#36I 36R>36 n`* 36 o36 `36 ]f36 ^"36 CL36 CL36 CL36 CL36 CL36 OP36 OP36 OP36 CL36 K.36 H36 I W36 G36 {36 {}e36WQM}f36Zs M36 fs N36 hD(O36 iMP36 jHfQ36 mSR36 nS­S36 poK T36 r[6NV36 sH X36 tG"Y36 uI@[36 vg>\36 wDԟ^36 {a _36 |Br`36 }@a36 x b36 wc36 s36 CL36 CL36 CLg36 rZ 36 CL36 CL36 CL36 CLm36 DOn36 o36 C@36 CL36 CL36 CL36 CL36 CL36 CL36 CLw36 wx36 MHy36 Pu36 OP{36 L|36 P }36 g^d~36 ^36 ? 36 E$36 oI ~36 OP36 gt |36 CL36 G36 N36 HQ536 Ou36 CLt36 CL36 UB 36 u8 36 p! 536 Gҥ636 FLa36 CL36 CL:36 H;36 Ip<36 Y!?36 A36 )OP36 *CLB36 ,D;C36 .w|ZD36 1| E36 3JF36 4GffG36 6HH36 7}h L36 8I34 M36 9| N36 :Q\) O36 ;BP36 E\(T36 ?I 2U36 @HV36 AS36 BOP36 DCLY36 FJ|1Z36 G^ 36 IOP36 KCL]36 MB=^36 O]*36 POP36 RCLa36 US,36 VOP36 XCLd36 ZF[G36 \OPf36 ^^36 _CLh36 aDi36 cNr36 OPk36 Na l36 Q\m36 Ln36 n o36 ]ϼp36 Vq q36 P= r36 S s36 MTt36 Ou36 LU36 OP36 CLx36 Iy36 RLz36 M#36 OP36 CL}36 Kj~36 I`36 LV36 Eُ36 OP~36 CL36 IΘ36 CԹ 36 wٙ36 y36 n@36 CL 36 D36 CL36 OP 36 Ir 36 CL36 CL36 ZO36 CL36 CL36 KF36 KG36 CL36 CL36 CL36 GF 36 EL36 uL 36 k 36 xc 36 H36 S36 fR!36 Y "36 F3#36 s $36 J%36 L&36 Mn'36 J(36 JU36 CL*36 M&y+36 X36 CL-36 F36 !OP36 #CL036 %GJY136 &K9236 (Kf336 )MF436 *K?m36 +OP636 U]36 VCL836 YMp36 [CL:36 ]HH36 `CL<36 bG=36 dM36 eOP36 gCL@36 jPA36 kJ"yB36 lH36 nCL36 qOPE36 rGH36 vI[I36 wof J36 xsTK36 yVL36 zY` 36 }E36 ~C 36 Go36 K36 I"d36 Cp36 E>36 L`36 JŰ36 z36 K=36 O36 JP36 M 36 r 36 JP36 I36 OV ?36 PHj@36 QFڊA36 RXp36 SOPD36 TJrE36 UGaF36 VGsG36 WSм36 @36 Eɚ36 @l36 f 36 X36 J36 @f36 vt 36 xP 36 {w !36 CL 36 CL36 CL36 j 36 OP36 H36 Mf36 F1@36 Cַ36 ^36 t36 CL36 CL36 CL36 CL36 CL36 E36 C 36 K36 xo 36 Kj 36 DQN36 B36 M 36 n36 H36 ~l^ 36 LJ36 I36 z36 {/ 36 HO 36 I 36 R36 n$ 36 o 36 `36 ]336 ^"36 CL36 CL36 CL36 CL36 CL36 OP36 OP36 OP36 CL36 L;36 H36 I W36 G36 k36 k}e36 e}f36 X M36 ^tE N36 `EO36 aMP36 bI`Q36 eSқR36 gSvS36 ho,| T36 j[3lV36 kH[X36 lG$Y36 mJ0H[36 n;\36 pEl^36 sg_36 tB`36 u@a36 wub36 xt4c36 yr.36 |CL36 }CL36 ~CLg36 rU 36 CL36 CL36 CL36 CLm36 Dڪn36 @ o36 C36 CL36 CL36 CL36 CL36 CL36 CL36 CLw36 {x36 KLy36 PW 36 OP{36 Lȉ|36 R}36 iE]~36 ^36 0 36 EyR36 o7 ~36 OP36 h]\ |36 CL36 G*36 N36 H~36 G Lu36 CLt36 CL36V& 36vF 36qV 536G636FR36CL36CL:36J;36G&<36W3?36 A36!OP36#CLB36%DnQC36'v>D36)} E36+HF36-GffG36.L34H36/}d L360Hz M361zH N362P O363BތP364BQ365FR366E=T367I[EU368I9V369P36:OP36JZZ36? 36AOP36CCL]36EC6]^36G\ɵ36HOP36JCLa36uSy36vOP36xCLd36zFi36|OPf36~^36CLh36E i36M*36OPk36M l36H =m36Cn36m( o36^&pp36Z{ q36P r36T s36M t36OUu36L36OP36CLx36Iy36P?z36Mv36OP36CL}36K~36I޸36L36E36OP~36CL36J<36CtZ 36x36y36n336CL 36DX36CL36OP 36F\ 36CL36CL36Pu36CL36CL36KU36KE36CL36CL36CL36Gl 36I36v 36fL 36x 36JH36S36fR!36lL "36W&g#36B$36J%36LG&36M'36 J%(36 K|&36 CL*36M+36^36=CL-36?F(36AOP36CCL036EGJ136FJ}u236HKJ336IMy+436JK36KOP636M]36NCL836QM 36SCL:36UH/36XCL<36ZG0=36\M36]OP36`CL@36bPA36dJ`iB36eI36gCL36jOPE36kHGH36lDt[I36oTW J36p`K36qVL36rY_ 36uET36vC/36wG36K36I"d36C36E36L`36J36z.36KC36O/36J36M 36r 36JP36J36Lv36u€36Ld36M-z36v 36J36Mm36CL36E}M36DO36OP36CL36CL36CL36CL36CL36CL36CL36Pg36M#336Ng36GH36h36GH36CL36CL36CL36CL36CL36 CL36 CL36 ^36 CL36 CL36CL36N+36CL36DK36CL36CL36I=36CL36CL36CL36!OP$36"I%36#H&36&M36(CL*36+MNM,36,d36-OP.36.S360CL361CL364OP366CL3368t%y436:A636=T736>G836?T&f936jb:36kX;36l\g<36m[f36nOP>36oV?36pH@36rGA36sW36tOPD36uIU E36vGgF36wG3G36xT`36{@36|E336~@l36gN 36X36K^36@|36v 36y@Y 36| z !36CL 36CL36CL36jH 36OP36I36N@36G,36D-36L36t36CL36CL36CL36CL36CL36EX36C836Q136y 36JU 36DnQ36Bw36J1 36q36HX36~z 36L36IW36z36{a 36Hk36I36RF36o 36o 36aL36]36^"36CL36CL36CL36CL36CL36OP36OP36OP36CL36L360H361I362Gm364z365z}e36C$}f36Y M36St N36UE O36WMP36XHAQ36[SR36\T S36]o T36_[91V36`HX36bGY36cJg[36dv\36eDr^36hg7_36iB`36j@ea36ub36sc36rk36CL36CL36CLg36r, 36CL36CL36CL36CLm36Dےn36@Io36CQ36CL36CL36CL36CL36CL36CL36CLw36z(x36Ly36O36OP{36Lm:|36R}36j~36^360 36Eo836o ~36OP36jM |36CL36GO@36Ny 36H36M.u36CLt36CL36W~ 36vl 36 qI 536 G636 FG36CL36CL:36J ;36FlM<36XH?36A͓36OP36CLB36DC36|D36|` E36!HF36"JG36#KH36$} L36%HR M36&zH N36'Pff O36(BP36*BQ36+F~R36,EaT36-IU36.I0V36/Q 360OP362CLY36\K82Z36]@Q36_OP36aCL]36cC~^36e[36fOP36hCLa36kS@36lOP36nCLd36pFq36rOPf36t^36uCLh36wE*i36xLE36zOPk36{Mӡ l36|J33m36~En36nQ o36^p36UL q36P) r36R{ s36Mt36Ou36L36OP36CLx36Jy36N~ z36NH36OP36CL}36K>~36J$36MSX36F36OP~36CL36JX36Cn 36x36y36o&f36CL 36DB36CL36OP 36H| 36CL36CL36K?m36CL36CL36K36LF36CL36CL36CL36Gs 36G336v33 36c 36x 36~R 36E 36J( !36Z "36Lf#36E$36K%36%L&36&M'36'J. (36(K36*CL*36-M+360Xի362CL-364FL366OP368CL036:G136;Ii236=L336?M436@K V36AOP636C]36DCL836GN36ICL:36KHU36NCL<36PH =36RMM36SOP36UCL@36XQ A36YJB36ZH36\CL36_OPE36H?H36~I36a J36KK36WL36Z4 36ET36C=36Ge36K36I"d36C36FN=36L`36J36zJ36K 36O/36JP36M 36r 36J36J36Lv36uy36Ljo36M:>36yE 36J36MI36CL36Eij36E*36OP36CL36CL36CL36CL36CL36CL36CL36Ng36G6g36Ng36GH36iz36GH36CL36CL36CL36CL36CL36CL36CL36^36CL36CL36CL36N+36CL36 DJ*36 CL36 CL36JX36CL36CL36CL36OP$36I%36H&36La36CL*36 ME,36!cs36"OP.36#SK36%CL36&CL36QOP36SCL336VtLt436WA636Z_736[ZL836\]936_b2:36aZs3;36b]4<36c^ٚ36dOP>36eW?36fI%5@36gGU5A36hV36iOPD36jIoE36kHEFF36lHG36mTQ36q@P36rE336s@P36tg 36uY M36vJ36w@k36zvܹ 36|y@ 36}|} !36CL 36CL36CL36l 36OP36I:D36NGQ36F<36C36+36t36CL36CL36CL36CL36CL36E{36C536IӨ36y]w 36Jb" 36DX36B36Q 36qP36HZ36~ 36L36Iso36z(36|5! 36Hs<36I36Rd36oI 36nU 36`36]336^ 36CL36CL36CL36CL36CL36OP36OP36OP36 CL36$L36%H36&I36'GȬ36*i36.i}e36lX}f36ZXs M36Lt N36NE<O36OM P36PIQ36SSR36|T;S36}n T36ZRV36HE,X36G?Y36J[36\36F^36ff _36B`36@ea36tHb36uLc36r36CL36CL36CLg36r/ 36CL36CL36CL36CLm36D&n36@o36C36CL36CL36CL36CL36CL36CL36CLw36@#x36Ny36N36OP{36M|36S*}36jج~36^360 36Eu36o ~36OP36k |36CL36Ge 36N36H736K+u36CLt36CL36W3 36vM 36qĜ 536Gv636FQ36CL36CL:36 Ib;36 Dh<36 Wm7?36 Au36OP36CLB36DC36@D36}% E36MGF36GG36S(H36D} L36FH M36G{ N36HPff O36IBP36JB=Q36KFR36LEWT36MIU36NI7V36OQm36POP36RCLY36TKMZ36U@36WOP36YCL]36[C^36]^N36^OP36`CLa36cT36dOP36fCLd36hFb36jOPf36l^36mCLh36oEOi36pT?Z36rOPk36tN_ l36uLm36vHpn36wnz o36z]Fp36|S q36}NR r36~P s36Lt36Nu36L!36OP36CLx36J3y36LHz36N. 36OP36CL}36KB~36Jk36Ml36E36OP~36CL36JP36C 36x36y36m336CL 36DJ36CL36OP 36H| 36CL36CL36J˽36CL36CL36K36L^36CL36 CL36 CL36G 36Gٚ36p33 36g33 36x8 36JH36Tz36e!36h3 "36Y#36@33$36K <%36LWN&36Mғ'36J9(36 KK36"CL*36%Mν+36(_N36+CL-36-FE36/OP361CL0363G1364H`s2366LO3367M 4368KF369OP636;]36I7iq J7CK7VL7Z 7E7 C=7!G7$K7%I"d7&Cu7'FN=7(L 7)K7*z27+K7.O`70JP72M 75r 77J78J7;Lv7eu7fLu]7gMA7hyE 7iJ7kMI7mCL7pEP7qF=7rOP7tCL7uCL7vCL7wCL7xCL7zCL7{CL7~O7{7Ng7GH7i7GH7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7Nr7CL7DL7CL7CL7JP7CL7CL7CL7OP$7I٢%7H&7K7CL*7M ,7b7OP.7S 7CL7CL7OP7CL37t47A67Qs477S387Y97b:7Z;7^<7^7OP>7W?7Iy@7G3A7VO7OPD7IE7HZF7HMG7U7Bg7Hs37B7h 7YX7KFj7,A,X7/v 70z)B 71} !75CL 76CL77CL79la7 7;OP7>IV}7?NOA7@G7AD7B7Dt7FCL7GCL7HCL7ICL7JCL7ME7OC@7PH7Sy@ 7VK* 7XD7YC7ZJ 7]p`7aI7d~ 7fL4r7gI/7z$7|oQ 7H$7I 7R7o 7s{ 7`7^p7^ 7CL7CL7CL7CL7CL7OP7OP7OP7CL7M,7H7I7G7jQ7jQ}e7Bn }f36Z M7t7K N7E(O7NzP7I(Q7 SR7 TXlS7 o T7ZV7H'X7GUY7J٦[7\7E^7e6_7B`7@ea7vQb7tc7r7 CL7!CL7"CLg7$r 7&CL7'CL7)CL7*CLm7-Dpn7X@{3o7ZD\7\CL7]CL7_CL7`CL7aCL7bCL7cCLw7f@Bx7gKfy7iQ7jOP{7kLV0|7lS.{}7mk}~7o^7q 7tEf7wof ~7yOP7|j[ |7~CL7Go7N57H!7JLu7CLt7CL7W>w 7v( 7q 57G67FZ7CL7CL:7I;7Co<7X ?7AY7OP7CLB7EC7AD7} E7JF7GG7KH7~ L7H=q M7zfg N7O O7BP7BQ7FyR7E]T7JD U7J[V7RA7OP7CLY7KpZ7@7OP7CL]7D^7b7OP7CLa7UM7OP7CLd7Fi7!OPf7#^7$CLh7&EsZi7'W Q7)OPk7*N* l7+J33m7,EHn7-jq o70]Bp72Q q73L r75N s76Lkt77NBu78L79OP7;CLx7=Jfy7>Kz7@NN7AOP7CCL}7FLO~7GJ7IM7JFPi7KOP~7MCL7OJ37QCC 7Rw37SyY7Umg7WCL 7YD|7[CL7OP 7H 7CL7CL7X7CL7CL7L B7L7CL7CL7CL7G 7EL7p33 7cL 7x 7H7S7e!7^ "7UY#7F34$7K %7L#c&7M'7JC(7JV7CL*7MI+7\ 7CL-7F7OP7CL07H17MB27L37N047J7OP67]7CL87Nh7CL:7I=7CL<7Hm=7M[27OP7CL@7Q$A7JB7 H$7 CL7OPE7HH7y$I7n J7}K7WHL7Z 7FR7CL!7Go7K7I"d7C7!FN=7"L'7#K7Lxd7MK7PO7RJP7SM 7Vr 7XK#7ZJk7]R 7_v7`L<7aMH7b}'s 7cJ7dMI7fCL7iE7jD7lOP7nCL7oCL7pCL7qCL7rCL7sCL7tCL7wQɚ7yG6g7zNg7{GH7|i=q7}GH7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7NV7CL7DRQ7CL7CL7J7CL7CL7CL7OP$7IZ%7I&7K7CL*7N,7a 7OP.7Ss7CL7CL7OP7CL37t&47B67_ff77RY87X97b:7Z4;7]3<7Z7OP>7W?7I4@7G5A7U7OPD7LE7HF7HG7Uf7@7 F 7!@37"h 7#Y7%Kn7&Ad7)w% 7*z 7+}u% !7.CL 7/CL70CL73ll 75OP76Ic77Ny78F79D7:G7CL7?CL7@CL7ACL7BCL7EE7FD 7HK7Ky{ 7NK 7xD7yCSc7zPE 7}m7IV7~ 7Lo7IV7z$7| 7H7I7R~87o+ 7o 7`7^P7^"7CL7CL7CL7CL7CL7OP7OP7OP7CL7Mq7H%!7I7Gu7j =7j =}e7:hs}f7Yk M7tb N7E2O7N P7I^sQ7SR7T6S7o,| T7\.V7IX7GY7 K[7 M\7 E^7d>_7B`7@ea7wb7vc7s7@CL7ACL7BCLg7DsD 7FCL7GCL7ICL7JCLm7MDn7P@o7RD<7TCL7UCL7WCL7XCL7YCL7ZCL7[CLw7^zfgx7_K>y7`O{7bOP{7cN|7dSۈ}7el~7g^7i0 7lE7oo7 ~7qOP7tjx |7vCL7zGj{7{O\u7H7Qu7CLt7CL7Tx 7u 7p 57H67Fo7CL7CL:7H$;7G<7X ?7B0S7OP7CLB7E2C7AD7| E7JF7GffG7LQH7~\ L7Hz M7zH N7P( O7CP7BQ7F-R7E[nT7JU7J`VV7T.T7OP7CLY7KMZ7A:7 OP7 CL]7D4K^7c7OP7CLa7Wh!7OP7CLd7Fq7OPf7^7 CLh7"Ei7$VN7&OPk7'N l7(KGm7)G=qn7*m{ o7-]p7/SQ q70Mk r71P{ s72Lt74Nbu75L76OP78CLx7:Jy7;Mz7=Ni?7>OP7@CL}7CL ~7lJ7mN;O7nF{)7pOP~7rCL7tJn7vC 7ww37xx7yn7{CL 7}EZ7CL7OP 7E 7CL7CL7TM7CL7CL7K7K_7CL7CL7CL7G| 7G@7v33 7c 7y 7JH7Tz7e!7` "7Ws3#7L3$7K%7LP&7M&'7JM(7J7CL*7M>+7_7CL-7G-a7OP7CL07Hs<17M\27L37N#47J7OP67]7CL87Nw7CL:7Jw7CL<7I :=7MA7OP7CL@7PXA7K2B7Hb7CL7 OPE7 HH75v/I78ewB J79v K7:WiL7;ZQZ 7>F7?CZ7@H 7BK7CI"d7DCS7EFN=7FL~7HK7Ixd7JK7MO7OJP7PLc&7Sr 7UKj7VJk7YPW7[u;7\L7^ML{7_}I 7`J7aM_7cCL7fE7gEa7hOP7jCL7kCL7mCL7nCL7oCL7CL7CL7Ng7F7Y\7_ > 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N+7CL7DU7CL7CL7K)7CL7CL7CL7OP$7I%7IV&7Ja7CL*7N7,7`7OP.7Sx7CL7CL7OP7CL37 u47 B67 ^g77 L 87 Y97 bj:7 X;7 [Y<7 [g7 OP>7 X,S?7 J @7 HA7 U7 OPD7 LVE7 I*F7 H6G7 U7 @g7 E|7 @P7 h 7 Y7 !K_7 "A7 &wB 7 '{ 7 (} !7 +CL 7 ,CL7 -CL7 /l9 7 1OP7 3I|7 4NB7 5G7 6E_7 ax7 ct47 eCL7 fCL7 hCL7 iCL7 jCL7 mE=7 nD(7 oPj@7 rz)B 7 vJU 7 xDZ7 yC7 zLN 7 }rf7 Ic7 ~; 7 Lhy7 J+7 z$7 |= 7 H7 I/7 Re7 p3 7 t 7 `7 ^vf7 ^"7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 MA7 H'7 IS7 GD7 zff7 zff}e7 aUO-}f7W M7 tE N7 E@.O7 MP7 IQ7 SR7 TS7 (oI T7 +\zV7 ,J`X7 -GY7 .KI[7 /Y\7 0FU^7 3dG_7 5B`7 6@a7 8uzb7 9sc7 :qfg7 z!7 ?K7 BO7 DJP7 ELy7 Hr 7 JK 7 KJk7 NLv7 Qu 7 RLP7 SMU7 T}I 7 UJ7 VMI7 CL7 Ea7 Ee7 OP7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Ng7 P,7 Yg7 _ > 7 _ > 7 _ > 7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 N7 CL7 DO7 CL7 CL7 KF7 CL7 CL7 CL7 OP$7 I%7 I &7 I7 CL*7 Ne,7 `}_7 OP.7 S||7 CL7 CL7 OP7 CL37 u47 A67 ^g77 R3387 \97 b:7 W;7 ^4<7 \Y7 OP>7 X?7 J06@7 H.A7 U7 OPD7 KE7 ITF7 I G7 U "7 @7 E7 @vf7 hz 7 Y7 L7 AN7 w_ 7 { 7 ~z !7 HCL 7 ICL7 JCL7 Lj 7 NOP7 PI/7 QNҡ7 RGL7 SEv@7 TQ7 UtH7 WCL7 XCL7 ZCL7 [CL7 \CL7 _E7 `DF7 aK ^7 dzcz 7 hJ3 7 jD7 kC:7 lKn 7 on7 rI7 u~' 7 wL07 yJ+7 |z7 }},l 7 ~H7 I 7 RA7 p 7 o" 7 `7 ]37 ^"7 CL7 CL7 CL7 CL7 CL7 OP7 OP7 OP7 CL7 M7 H&7 IS7 G۵7 i=q7 i=q}e7 TiK}f7 V^P M7u N7ELMO7MP7IQ7SR7TS7o,| T7 \qV7!JeX7"GxY7#Krx[7$\7%F-^7(ci_7*B`7+@ea7-saHb7.tc7/r=q71CL72CL74CLg76r 78CL79CL7:CL7;CLm7>D7n7Bo7DD7FCL7GCL7HCL7ICL7JCL7tCL7uCLw7xy34x7yLy7zM7{OP{7|Nh|7}TH}7oZ~7^7 7E7o ~7OP7k ~ |7CL7GvH7O7Hm7O0u7CLt7CL7Sv 7tw 7pA 57H 67F}=7CL7CL:7HU;7N<7\5D?7B47OP7CLB7EWC7Av{D7} E7HF7GG7EH7~x L7H M7{ N7P O7CP7B5Q7FsR7EeT7KU7JV7RX7OP7CLY7KրZ7@27OP7CL]7D^7f$7OP7CLa7X7OP7CLd7F?7 OPf7 ^7 CLh7Ei7T}z7OPk7G33n7?i޸ o7B^Lp7DRQ q7EL r7FO8R s7GL>t7HNu7IM#7KOP7MCLx7OJ3y7PTz7RN97SOP7UCL}7XLfN~7YKx#7ZN”7[FA7\OP~7^CL7`J7cC 7dy7ezff7fnff7hCL 7jEG7mCL7pOP 7sD 7vCL7wCL7K\W7CL7CL7L.7L7CL7CL7CL7G 7E&f7u 7kff 7y ! 7@\ 7FQ 7J !7j "7S3#7@ $7KV%7Lq&7M'7J[(7K7CL*7N+7Y7CL-7F7OP7CL07HH17Jƫ27Mb37N47K97OP67]7CL87O3T7 CL:7 HU7CL<7I{=7M`@7OP7CL@7Q91A7KB7H7CL7OPE7 IEH7#LI7%f J7&m}K7'WL7(Y 7+F!O7,Ci(7-Gx7/K70I"d71D73FN=74L#75Kf76xd77L'7:O7 7_ > 7_ > 7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N+7CL7DJ*7CL7CL7KqN7CL7CL7CL7OP$7I%7I]&7I$ 7CL*7N,7`a7OP.7Sk7CL7CL7OP7CL37u]47A67d77]87^ 97b:7[L;7\g<7]Y7OP>7W7?7JE/@7HQA7U87OPD7KfvE7InF7I3G7TN71@372E73@Ff74i`< 75Z2!76L%78Bg7;w 7<| z 7=~ !7@CL 7ACL7BCL7Dnn 7GOP7HI07IN7JG7KEfN7Ny=17Pu7RCL7TCL7UCL7VCL7WCL7ZE7[Da7\LC7`z 7cJ 7eDZ7fC{7gP  7jr7J"7~; 7K07J2k7y7}f 7Iw7I7R7p- 7o 7`Y7^f7^"7CL7CL7CL7CL7CL7OP7OP7OP7CL7N6 7H+z7I7G%7y7y}e7NU!}f7U M7 t N7EVIO7MP7IaQ7T R7TʅS7o; T7\eV7JX7GY7K[7\7F^7!b"_7"B`7#@!a7%sb7&rRc7'q7)CL7+CL7,CLg7.s] 70CL71CL72CL73CLm7_Dn7bo7dD 7fCL7gCL7hCL7iCL7kCL7lCL7mCLw7p~x7qKǮy7rM(7sOP{7tMߓ|7vT}7wo^d~7y^7{ 7}E7of ~7OP7h@3 |7CL7G7O7Hz7Fgu7CLt7CL7Sa 7t 7pZ 57H67F7CL7CL:7H;7NAj<7]; ?7B[)7OP7CLB7EC7@D7}% E7MGF7HG7WH7~ L7HR M7zH N7O O7C*P7BQ7Fk8R7EtT7K_SU7K1V7R.>7OP7CLY7KZ7A27OP7CL]7E*^7d7$OP7&CLa7)Xί7*OP7,CLd7.F70OPf72^73CLh75Ei76S78OPk79N* l7:Hm7;D=qn7=lT{ o7@^p7BT q7CN{ r7DO s7ELkt7FNu7GM 17HOP7JCLx7LK"y7MR[z7ON7QOP7SCL}7VL~7WKr7XO7YFXb7ZOP~7\CL7^K\W7D 7wff7y 7m7CL 7E7CL7OP 7Ec 7CL7CL7Lw7CL7CL7Kր7L7CL7CL7CL7G} 7G37p33 7ff 7y'# 7JH7R\7e!7_ff "7Xf#7If$7K?%7L6&7M6'7Ja(7Kc7CL*7N~+7X77CL-7F7OP7CL07I=17I'27Mh37O47KH7OP67]7CL87OL7CL:7 H7 CL<7I=7MXO7OP7CL@7Q`A7KOB7I 7CL7OPE7IvSH7!O(I7"l* J7#k"K7$WXL7&Yf 7PF!O7QCw7RH 7UK7VI"d7WD7XFN=7YL%F7ZK'7[xd7\L:7_O`7aJP7cLG7fr 7hK?7iJ7lK7nv/7oM 7pM^7q}I 7rJ7tMI7vCL7yE\7zEe7{OP7}CL7~CL7CL7CL7CL7CL7CL7Ng7Nf7Y37_7_7_ >7CL7CL7CL7CL7CL7CL7CL7^7CL7CL7CL7N7CL7DQi7CL7CL7K|7CL7CL7CL7OP$7J %7I&7H`7CL*7Nb,7`:7OP.7S?7CL7CL7OP7CL37uF47A67Z77C 87Sٚ97b:7Z;7Yg<7 `47!OP>7"V#?7#JWl@7$HmPA7%T7&OPD7'JE7(I~zF7)IP2G7*S7.y77/@g70y)71jA 73Zc74Lh77u} 78gL 79x 7:E@!7=CL 7>CL7@CL7Bo; 7DOP7EI]7FN7GHo7HF\7K{7Nul7PCL7QCL7RCL7SCL7|CL7E7Dx=7O7z 7Jf 7E7C>7JM 7r#37Jk7~Ü 7KU7Ik7y7} 7H7I7Re7q9 7o 7`7\I7^ 7CL7CL7CL7CL7CL7OP7OP7OP7CL7N7H*7I<7G7y7y}e7KV}f7VR) M;u " N;EwO;,M"P;-J Q;0TNR;1T,S;3oI T;5]'V;6JX;7GY;8L_[;91\;:F^;>a_;?B`;@@!a;Bt4b;Ctc;Dt8R;FCL;HCL;ICLg;Ks ;MCL;NCL;OCL;PCLm;TDn;Wlo;YE;[CL;\CL;]CL;^CL;`CL;aCL;bCLw;e|px;fLQy;gM;OP{;N|;TH};ozH~;^; ;E;of ~;OP;i)~ |;CL;G;P;IR;H u;CLt;CL;Ku ;s/ ;oj 5;H6;F;CL;CL:;I;;M$q<;_4?;B;OP;CLB;FTC;@0D;}D E;HF;GG;K\)H;~ L;H M;zH N;O O;C?P;BQ;F~R;EeT;KָU;KV;S};OP;CLY; L+Z; B; OP;CL];Eѕ^;f;OP;CLa;Ẍ;OP;CLd;F; OPf;"^;#CLh;%F(i;&R ;(OPk;)N l;*GQm;+C\n;,k o;/^Dp;YU q;ZMH r;\Q = s;]Lt;^N%u;_M2;`OP;bCLx;eK5y;hP]# J;?fK;@V0L;AZ ;DF/;EC.;FH9Q;HK;II"d;JD;KFN=;LL();NMD;Oz;PM^;SO/;UJP;VL&;Yr ;[K$;Jފ;Q;v ;M;MmO;|w/ ;J;MI;CL;E;E*;OP;CL;CL;CL;CL;CL;CL;CL;Ng;G6g;Ng;@Q;A;34;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;N;CL;DZv;CL;CL;K;CL;CL;CL;OP$;J#9%;I&&;G4;CL*;O",;_L;OP.;Sk;CL;CL;OP;CL3;uF4; A6; Y37; S8; `&f9;bN:;W;;\@<;Zy;OP>;U?;Jd1@;HZA;TZ=;OPD;KE;I%F;IiG;SE;!C;#H;LBg;Ms ;NZY;OL;RX ;SXX ;U|oQ ;V~24 !;YCL ;ZCL;[CL;]m ;_OP;bt' ;eO";fHf4;gFD;jz;lu=d;nCL;oCL;pCL;rCL;sCL;vE;wD;xL;{{= ;~Is3 ;D;{ ;Ji" ;r;Jԯ;~Ü ;Hk;B ;y;} ;B5;FxC;R;qˈ ;o3 ;`;]f;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;N;H/;I;G;s ;s }e;jV@L}f;M M;'u=< N;*EO;+N-P;,JQ;/T*#R;0TS;1oI T;3]zSV;5JX;6GY;7L[;8V\;9Fȉ^;y;O;OP{;Nt|;Un};o~;^; ;E;o7 ~;OP;h |;CL;G;P%;IN;N:wu;CLt;CL;EŢ ;r- ;nz 5;H& 6;F;CL;CL:;I(-;;LE<;_X?;B;OP;CLB;FC;~~D;}5` E;HF;JG;LH;K L;H M;{\* N;Op O;CNOP;CQ;FR;EsT;LuU;KeV;R;OP;CLY;LBZ; A; OP; CL];F!O^;e^;OP;CLa;X;OP;ACLd;CF5;EOPf;G^;HCLh;JFEi;KQ;MOPk;NN l;PGm;QC\)n;Rn o;U^p;WPL q;XK\ r;YMk s;ZMt;[N~u;\MHk;]OP;_CLx;bKMy;eMz;gO;iOP;kCL};nL~;oLe;pO;qF;rOP~;tCL;wKi;zC ;{F;y ;n;CL ;E;CL;OP ;A6S ;CL;CL;K.;CL;CL;L;Me;CL;CL;CL;G ;Vfg ;F ;p;yn ;JH;Up;fR!;[33 ";Lf#;C$;K %;L&;N';Jqb(;K;CL*;N+;\5; CL-; G; OP;CL0;I\1;P2;NI3;O4;K;OP6;];CL8;O;CL:;!Jm;$CL<;&JBU=;(L;)OP;+CL@;.Q4A;0LMB;1Hխ;3CL;6OPE;7IظH;:LsI;;^ J;Z ;AF>K;BC;CHVF;mK;nI"d;pD;qFN=;rL,;sMD;tz;uM^;xO;zK;{L`;~r ;K+;J;PI;v;M-z;Mr;}  ;J~;MI;CL;E;B ;OP;CL;CL;CL;CL;CL;CL;CL;Qg;G6g;Ng;@Q;AG;p;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;N;CL;DZv;CL;CL;L;CL;CL;CL;OP$;J. %;IE&;GJ;CL*;OH,;_v;OP.;ST;CL;CL;OP;CL3;u4;A6; Mٙ7; J38; Vfg9;5bi:;7Z;;8^<;9^;:OP>;;UL ?;T6?;?OPD;@LHE;AIoF;BIy$G;CSl;GC^f;HH|;IB|;Jv ;KZ;LL6;OT߁ ;QT ;Rx0 ;SzT !;VCL ;WCL;XCL;ZnT ;\OP;`nn ;bO;cHSa;dFA1;e;fuM;hCL;iCL;kCL;lCL;mCL;FE;DH;QX;{in ;I ;D;;u} ;Q ;pl;Ks;~ ;E;CSc;y;~24 ;}u% ;D;R:};r# ;oU ;`f;^y;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;O);H0;I;G;y; y}e;evX}f;G M; u. N; !E O; "N P; #J6Q; &TR; 'US; (o T; +]V; ,KX; -GY; .LX0[; /^\; 0F^; 3g_; 5B`; 6@a; `tW b; asc; br>; dCL; eCL; gCLg; it ; kCL; lCL; mCL; nCLm; qDn; ugo; wF; yCL; zCL; {CL; |CL; }CL; CL; CLw; yx; Ky; NR; OP{; O|; Ub}; pA~; ^;  ; E; o ~; OP; i |; CL; Gl; O; I^s; GSCu; CLt; CL; HA ; q ; o& 5; H+z6; F; CL; CL:; I ;; K<; _?; B; OP; CLB; FyC; |D; }=% E; JF; GG; E\)H; ^; ?CLh; AFii; CP; EOPk; FN l; GI33m; HEGn; Il+ o; L^tp; NQ q; OL r; PN s; QM\t; RNu; TM:; UOP; WCLx; ZK_y; ]Kz; _OT; `OP; bCL}; M$N~; La; O; F-; OP~; CL; KT; C) ; }ٙ; yg; n@; CL ; FT; CL; OP ; F3 ; CL; CL; K; CL; CL; L; M; CL; CL; CL; G~ ; W ; F ; p; y ; H; Tz; fR!; k4 "; [#; B&f$; K'@%; Li&; M'; Jpx(; K; CL*; O,+; Yl; CL-; Fm; OP; CL0; J+1; LZ2; N3; O̥4; K); OP6; ]; CL8; P S; CL:; J;; CL<; Jm=; MrO; !OP; #CL@; &QA; 'LlB; (I=); *CL; UOPE; VJ#;H; YKI; ZhZ J; [buK; \VL; ]Zn ; `FL; aC; bG; eK; fI"d; gD; hFN=; iL0; jMD; kz*[; lM^; oO; qK; sL; vr ; xK/q; yK@; |Lv; ~u; M:>; MxB; | ; JF; MM; CL; Ey; Ee; OP; CL; CL; CL; CL; CL; CL; CL; Q3; G6g; Ng; ~; @{; ~; CL; CL; CL; CL; CL; CL; CL; ^; CL; CL; CL; N; CL; DZv; CL; CL; KK; CL; CL; CL; OP$; J6N%; I; 0T?; 1Js@; 2H:A; 3Tj; 4OPD; 5LE; 6IF; 7IG; 8R{; ;C; B`; ?z7 ; @[2; AMTW; DQ_ ; EP ; Hvv ; Ix# !; LCL ; MCL; OCL; Qk ; SOP; Vj ; O/; H; Fn; U; u}; CL; CL; CL; CL; CL; FE; Dh; J; { ; I ; Cw; vI ; K ; n,; KH; ~ ; C; @A; y; ~] ; @; @; R; rz ; o ; `; ^3; ^"; CL; CL; CL; CL; CL; OP; OP; OP; CL; O`; H1; I; G; k =; k =}e; k}f; J9: M; w- N; EO; NHP; JR>Q; T=*R; IUUS; Jo T; L]&V; MJX; NGnY; OL[; P\; RF9^; Ufw_; VB`; W@!a; Ysb; ZsQc; [s34; ^CL; _CL; `CLg; bt ; dCL; eCL; fCL; hCLm; kDn; nC4o; pFV; rCL; sCL; tCL; vCL; wCL; xCL; yCLw; |xx; }PGy; ~Rq; OP{; N|; U}; qkC~; ^;  ; E; p^ ~; OP; h+ |; CL; G; P9; It; L4eu; CLt; CL; J ; s ; o 5; H36; F; CL; CL:; IZ;; K@<; `D?; B; OP; CLB; FC; {:cD; }{? E; OpF; GffG; \ffH;U L;H=q M;zfg N;O34 O;CfAP;C,3Q;F~R;ET;LU;LVdV;R;OP;CLY; LjZ;!A;"OP;$CL];&F5^;(b@;)OP;+CLa;.W;/OP;1CLd;3F;5OPf;7^;9CLh;;Fi;OPk;?NO l;@Gm;ACRn;BhR o;E^ıp;GR8R q;HPp r;IRǮ s;KM\t;tNu;uM>N;vOP;xCLx;{Ky;~Sgz;O|;OP;CL};MUk~;Lڨ;P5';F7;OP~;CL;K;C= ;~&f;yg;n@;CL ;Fq;CL;OP ;Fn ;CL;CL;N;CL;CL;M x;NwV;CL;CL;CL;G ;l ;U34 ;Dfg ;yx ;34 ;E ;Jff !;X ";Jff#;} $;K-%;L-g&;N~';Jo(;LO/;CL*;OZK+;X;CL-;Fݱ;OP;CL0;JX1;K/72;Nt3;Oe4;K;OP6; ]; CL8;PJ;CL:;J+;=CL<;?J=;AN;BOP;DCL@;GQA;HLB;IIso;LCL;NOPE;PJ=H;SJI;Tl J;UmgK;VW-&L;WZB ;ZFL;[C4;\G );^K;_I"d;aD;bFN=;cL8;dMK`;ez ;fM;iO/;kK8;lL^;or ;qK4;sKc;vLv;u;MJ;M};|׶ ;J+;MȀ;CL;E``;B ;OP;CL;CL;CL;CL;CL;CL;CL;M@;{;Ng;@Q;@;34;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;N+;CL;DX;CL;CL;LR;CL;CL;CL;OP$;JA6%;IB&; Q<_; CL*;O.,;^;OP.;Sn;CL;CL;OP;CL3;vS4;A6;"Zg7;#U8;#`&f9;&b1:;(X33;;)\g<;*^y;+OP>;,T?;-Jvn@;.H'A;/SA;0OPD;1LKE;2IGF;3IG;4R;8D\;9I^f;:C^f;=|` ;?[=;hMu;kNq ;mM ;nu6 ;ow4 !;rCL ;sCL;tCL;vm ;xOP;|i[ ;~O,;Hȥ;F:;;uXP;CL;CL;CL;CL;CL;FE;E q;Ky;{H ;K ;B;u ;K ;n3;K;~' ;A;~z ;y;~s ;K ;z ;R;r ;pY ;`;]3;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;O;H0;I;G;k;k}e;k}f; L" M;=v}K N;?EjO;AN P;BJaoQ;ETLbR;FU`ES;Go T;I]hV;JK1X;LGY;ML[;N\;OG^;RfU_;SB`;T@!a;Wuzb;Xu\*c;Yu;[CL;\CL;]CLg;_tM ;bCL;cCL;dCL;eCLm;hDhn;ko;F~;CL;CL;CL;CL;CL;CL;CLw;yx;K y;Nz;OP{;On|;UF};qZ~;^; ;E;p ~;OP;i T |;CL;Ga;Pi;Ie;Mu;CLt;CL;G ;r ;o- 5;H96;F;CL;CL:;Ip;;Jo<;`a?;B;OP;CLB;G-aC;yD;}s} E; HF; H G; LH; r L;H M;zH N;Op O;Ct P;C<*Q;FR;ET;LU;L?V;R;OP;CLY;LyZ;A; OP;"CL];$G;^;&`iV;'OP;)CLa;,W9h;-OP;/CLd;1Gg;3OPf;]^;^CLh;`Fi;aN0 ;cOPk;dN l;eG\)m;gCpn;hk^ o;k^p;mT=q q;nP r;oP s;pMt;qNu;rM?;sOP;uCLx;xL y;{Sz;}O];~OP;CL};M~;M;Pz;F;OP~;CL;K;C@ ;~;y;nff;CL ;F;CL;OP ;Kk~ ;CL;CL;V;CL;CL;M ;N,j;CL;CL;CL;Gd ;Vfg ;T ;C ;y! ;H;Tz;g!;e ";OY#;EL$;K3%;L6&;M';Jm(;L_;CL*;Oz+;`;CL-;F;OP;%CL0;'J1;(J}u2;*NM3;+PS4;,KT;-OP6;/];0CL8;3Pk;5CL:;7J<;:CL<;No;@OP;BCL@;ER A;FLnB;GI;ICL;LOPE;MJRH;PI'I;Qnz1 J;Re K;SW L;TY ;WF[G;XC;YF/;[K;]I"d;^E,O;_FN=;L;QTZ=?;RJ{@;SH١A;TS6;UOPD;VKhE;WIF;XIG;YRz;]B;^Gf;_BC3;b~s ;d[qw;eMB;hL ;jKfz ;kt4 ;lvY !;oCL ;pCL;qCL;sn ;vOP;yh ;{O].;|H;}Fȯ;~;uJ$;CL;CL;CL;CL;CL;F;E 8;Kag;| z ;Iȉ ;A";vW ;N4p ;n3;K;~; ;@u;w ;y;~ ; ;tM ;R;s)~ ;pUU ;`;]3;^ ;CL;CL;CL;CL;CL;OP;OP;OP;CL;O\;H0;IS;G;j\;j\}e;~n4}f;H M;:v N;=EO;>N@P;?JmQ;BT@R;CUy:S;Do T;F^V;HKpX;IGY;JL݋[;K|w\;LG ^;OeE_;PB`;R@!a;|s\b;}u=qc;~s;CL;CL;CLg;tM ;CL;CL;CL;CLm;Dn;~o;Fm;CL;CL;CL;CL;CL;CL;CLw;|34x;L#y;R;OP{;O|;V-};qd~;^; ;Ey;p3 ~;OP;j!N |;CL;H;Pu;I?;JP!u;CLt;CL;D ;r^6 ;o 5;H?l6;F;CL;CL:;I;;I-<;a_"?;Bތ;OP;CLB;G`C;x,D;} E;MF;JG; ERH;  L; Hz M; y N; N O;C~3P;CGQ;FR;ET;M#U;LV;R|;OP;CLY;LZ;DAW;EOP;GCL];IGgR^;K_|d;LOP;NCLa;QVz;ROP;TCLd;VG&";XOPf;Z^;[CLh;]Fi;^M@B;`OPk;aO l;cGm;dGn;ejE o;h^ip;jP q;kL r;lN = s;mMt;nNu;oM[;pOP;rCLx;uLFy;xSz;zOR;|OP;~CL};M>~;MOn;P;F;OP~;CL;K˨;C ;~L;y;q;CL ;F;CL;OP ;JR ;CL;CL;L;CL;CL;M/;NZr;CL;CL;CL;G* ;U ;E ;p;y< ;H;Tz;e!;oL ";O3#; BL$; K6%;L{&;M';Jj(;LQZ;CL*;O*+;[.$;CL-;F; OP;"CL0;$Jn1;%I~2;'O)U3;(P84;)Kt;*OP6;,];.CL8;0Pë;3CL:;5JBU;7CL<;:K =;OPE>Jg8H> G(I> W J> y{K> VRL> Ya >Fi>C>GC>K>I"d>E,O>FN=>M^>MK`>xd>M>O>!L>"M>%r >'L>(K>+R>.uv>/M`>0MS>1| >2J>3Mߛ>5CL>8E>9E>:OP>dCL>fCL>gCL>hCL>iCL>jCL>kCL>nP>oG6g>pQs4>r34>s@\>t~z>vCL>wCL>xCL>yCL>zCL>{CL>|CL>~^>CL>CL>CL>N+>CL>DV>CL>CL>L7W>CL>CL>CL>OP$>J[%>IO&>O>CL*>O,>^&>OP.>S>CL>CL>OP>CL3>v4>A6>Tf7>_ff8>T&f9>bĄ:>X4;>]L<>[>OP>>Tt?>J}@>HwA>S6>OPD>KM)E>I F>IG>Rm>B>G3>A4>@2>[>M>J@- >I >t[ >u !>CL >CL>CL>,lR >.OP>1gj >3Or>5Ho>6F>7V>8u#.>:CL>;CL>=CL>?CL>BF P>CE5>DL>G|5! >JIٚ >LA>Ms >OIp >Ro0>UK >X~ >Y~ >Zx0 >[y>\~ >]z[ >_rN >aR>ds >gp >`i>]3>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>P>H5s>I>Gn>j>j}e>7m}f;E M>vQ N>EѦO>MoP>JuQ>THR>UjS>o T>]V>K[X>GY>M[>C\>G ^>e_> B`> @!a> tfgb> uRc>t>CL>CL>CLg>tM >CL>CL>CL>CLm>Dn>!<o>#F>%CL>&CL>'CL>)CL>*CL>+CL>,CLw>/rx>XK>y>YOQ>ZOP{>\OJ=|>]V_}>^qa~>`^>b >dE>hp ~>jOP>mh+ |>oCL>rHZ>tPI>uI>xQu>zCLt>{CL>~D >r- >o{ 5>HF6>F&>CL>CL:>I{;>I<>b3?>C>OP>CLB>GuC>B>@D>}{? E>KF>GffG>E\)H>9 L>H M>zH N>O O>CpP>CZQ>F-R>ET>M\UU>MV>R=_>OP>CLY>L(Z>B>OP>CL]>G^>^~>OP>CLa>V*U>OP>CLd>GJY>OPf>^>CLh>Fݱi>La>OPk>O l>Gm>Cn>m o>^bp>VG q>!RaH r>"U s>#M/t>$N}u>%Mu3>&OP>(CLx>+Lzy>.Qz>0O>1OP>3CL}>6M~>7M>9P>:F/>;OP~>=CL>@KT>BC >C~L>Dy>Epg>GCL >IG )>LCL>OOP >RI >UCL>VCL>YL l>[CL>CL>L>NM>CL>CL>CL>GC >BL >F >|34 >y >JH>R\>d!>_ ">NL#>C$>K:[%>L&>Mȉ'>Jgb(>L=>CL*>O+>_>CL->F>OP>CL0>K 1>Huj2>OX3>Pi4>Kw>OP6>]>CL8>P>CL:>J>CL<>KM=>N>OP>CL@>R)3A>M!B>I>CL>OPE>J|H>Fu I>e J>NK>V7L>Yf > Fi> C:> F?>K>H}^>E,O>FN=>M^>MK`>xd>M>O>L>M >r >!L>"K>MQ<_>Ou>PMi>RMs>S}ff >TJ>UN'>WCL>ZE>[F=>\OP>^CL>_CL>`CL>bCL>cCL>dCL>eCL>hNg>iM>jYg>k@34>lA(>n~R>pCL>qCL>rCL>sCL>tCL>uCL>vCL>w^>yCL>zCL>{CL>|N>~CL>DX>CL>CL>LLK>CL>CL>CL>OP$>Jj%>IU &>Nݪ>CL*>Py,>]]a>OP.>S>CL>CL>OP>CL3>v[4>A6>R 7>L8>Q9>bĄ:>Zy;>^fg<>\ >OP>>S?>J4@>H{A>Sj{>OPD>KثE>IF>I3G>RN>Cf>H&g>B9>@>[E>M5>H1 >H.< >srb >t !>!CL >#CL>$CL>&n >(OP>+fq >-Oj+>.I>/Gq>1>2uH>4CL>5CL>6CL>7CL>8CL>=EK>>I<>A|` >DI" >F@Je>Gs >HP5 >Kr9>OL*>z~ >{} >|s >}y>~ O >z % >p >S+>s >o >`3>]3>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>PEd>H8,>I>G%>jp>jp}e>1`g}f>~Fz M>wH N>E5O>M P>JQ>TLbR>UQS>o T>]V>KcX>GY>M%[>\>G a^>d}_>B`>@!a>tW b>tW c>sQ> CL> CL> CLg>ts >CL>CL>CL>CLm>Dn>Co>EFR>GCL>HCL>ICL>JCL>KCL>MCL>NCLw>Qr\*x>RKzy>SOq>TOP{>UO|>VT }>Xq~>Z^>\ >^Ek>ao+ ~>dOP>gi |>iCL>lH,>mP}>nI>rHGu>tCLt>uCL>wA1 >ypx >zn 5>{HM6>FL>CL>CL:>I;>Hnm<>b?>CY>OP>CLB>GC>BOD>} E>H\)F>I34G>NzH> L>H M>zfg N>Op O>CP>CcZQ>FR>ET>MU>M:V>R>OP>CLY>LZ>BBz>OP>CL]>H^>b>OP>CLa>WtY> OP> CLd> GJY>OPf>^>CLh>Fmi>Ux>OPk>O[ l>I=qm>E =n>m o>^Dp>!V q>"R. r>#S s>$M t>%Nu>&Mk>'OP>)CLx>,L*y>/Pfz>1Pp>2OP>4CL}>7Mu~>8M >:Q,>;Fc>>CL>AKf>CCZ >l~&f>my33>nqfg>pCL >rGJY>uCL>xOP >{JB >~CL>CL>K>CL>CL>L>M>CL>CL>CL>G >d34 >U34 >p>y >JH>Up>g!>ZL ">FY#>x $>K=%>LX7&>Mr'>Jfy(>L>CL*>O+>]ڗ>CL->Fy>OP>CL0>K"1>H\2>OE3>P4>K>OP6>]>CL8>Q >CL:>Jm>CL<>K\W=>N>OP>CL@>RAA>M@B>I>CL>OPE>JyLH>OSI>kyt J>CK>VNL>Y: > FxC>4C:>5F>7K>8H^>9E,O>:FU{>;M^>=MK`>>z>?M>BO>DL>EM>Hr >JL>KK>NO`>Pu>QM^>SM>T}Qj >UJ0>VN{>XCL>[E/>\D>]OP>_CL>`CL>bCL>cCL>dCL>eCL>fCL>iO>jG6g>kPg>l@34>mA(>o34>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>D^>CL>CL>L>CL>CL>CL>OP$>Jt%>IZ&>N%>CL*>P3,>]>OP.>S>CL>CL>OP>CL3>v4>A6>e7>V8>`9>b:> [;> Z`<> a> OP>> SƧ?> J@> HA> SFy> OPD> KME> ITF> IG> R,> Bɚ> H4> A> As> [> M> Gp > G > r+ > t[ !> #CL > $CL> %CL> 'n > )OP> ,e > .Om> /H\> 1F> 2> 3uZp> 5CL> 6CL> 7CL> `CL> aCL> eF> fEU> gHM> j|j > mHf > o} > pw% > qJZh > ttY> xLV> {~' > |}: > }o۔ > ~y> )b >  > h(# > R<> t/ > oٚ > `> ]3> ^ > CL> CL> CL> CL> CL> OP> OP> OP> CL> Py> H9> I> H> i> i}e> 2eUs}f>wB M> xk N> E1O> MP> JQ> T_gR> UQS> oK T> ]6V> KRX> GY> MF[> \> G^> +cZ_> ,B`> -@ea> /s34b> 0vc> 1tW > 3CL> 5CL> 6CLg> 8t8 > :CL> ;CL> =CLm> ADhn> DS4o> FFW> HCL> ICL> JCL> KCL> MCL> NCL> OCLw> R}Gx> SMy> TPff> UOP{> VO^|> XU95}> Yqq~> [^> ] > _E> bpmy ~> OP> il |> CL> H%> Pz> Iظ> Nu> CLt> CL> zT > q > n$ 5> HQ6> F> CL> CL:> I{;> G%<> co?> C9> OP> CLB> H[C> BEHD> }N E> HzF> HG> P >H> @ L> Hz M> y N> O34 O> CP> CwQ> FR> E_T> M΄U> MiV> Q> OP> CLY> L}Z> BZp> OP> CL]> Hzx^> d[> OP> CLa> X> OP> CLd> G> OPf> ^> CLh> Gi> VZ> OPk> O* l> H33m> Cn> k = o> ^= p> V. q> S r> T s> Mzt> Nu> M> !OP> #CLx> &LЃy> )Mz> +P)V> TOP> VCL}> YN ~> ZMq> [QV> \F> ]OP~> `CL> bKf> eC1 > f~> gy33> hqfg> jCL > lGJ> oCL> rOP > uBC > xCL> yCL> |WPi> ~CL> CL> L@> L> CL> CL> CL> Gq > ^33 > F34 > Dfg > y > 34 > E > J( !> ] "> N#> F34$> K?%> L8U&> Mp'> Jc(> L> CL*> O+> [y> CL-> F> OP> CL0> KM1> Nn2> O3> P 4> L`> OP6> ]> CL8> QCH> CL:> J> CL<> K=> N͓> OP> CL@> RpA> MXB> I> CL> "OPE> #JuH> &NI> 'o J> (}}K> )V0L> *Y: > -F> .Cμ> /E> 1K> 2H> 3E,O> 5Fb> 6M^> 7MK`> 8xd> 9M> >L> ?M"> Br > DL> EK> HLv> Kv > LMQ> MM8> N} > OJц> PN> RCL> UEm> VC> WOP> CL> CL> CL> CL> CL> CL> CL> Ng> M#3> Yg> 34> A >> }> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> Nq> CL> Dc> CL> CL> L> CL> CL> CL> OP$> Jqb%> I_,&> Mtg> CL*> PK,> \ۢ> OP.> S> CL> CL> OP> CL3> w4> A6> ]L7> S8> Vfg9> b:> Xg;> ^<> _l> OP>> S?> JS@> H;A> Sl> OPD> K8E> I&F> IG> Q> B3> G> A> A> [p> MՉ> Fۉ > F9 > rk > sl !> CL > CL> CL> Ip| > KOP> Ndp > PO1> QH> SF/> T6> UuH> WCL> XCL> YCL> ZCL> \CL> _F> `E_y> aHȥ> d| > gI"" > i{a > jw > kPcI > or > rLy~> u~ > v{ > wp3 > xy> yU > z@> {a > }Rl> tU > p7w > `> ]3> ^"> CL> CL> CL> CL> CL> OP> OP> OP> CL> PT> H:> I> H> k> k}e> Tm. }f> ~ M>x N>E.O>MP>J+Q>T[R>U/S>o T>]kV>K1X>GY>MUE[> \>!F^>%cB_>&B`>'@!a>)u=qb>*tfgc>+sq>-CL>/CL>0CLg>2t8 >4CL>5CL>6CL>7CLm>;Dn>>@fo>@Fxr>BCL>CCL>DCL>ECL>FCL>HCL>ICLw>t{\*x>uO#y>vO>wOP{>xN|>zUM}>{qTb~>}^>0 >EO>o ~>OP>k |>CL>H5>PV>I>Fƛu>CLt>CL>w\) >p >m 5>HV6>F>CL>CL:>I>;>G<>g{?>Cb>OP>CLB>HdC>B D>} E>HF>GffG>JH>@ L>Hz M>zfg N>Op O>C*P>CQ>F\R>EɝT>MU>MV>Q%>OP>CLY>LZ>BX>OP>CL]>HVF^>dӢ>OP>CLa>X>OP>CLd>H >OPf>^>CLh>GQi>V) > OPk> O` l> L33m> Hn> kc o>]p>Sf q>O r>=Mt>?N}Eu>@M">AOP>CCLx>FLy>IKz>KPh>LOP>NCL}>QNE&~>RN0>SQu>TGo>UOP~>WCL>ZKΌ>]D >^D,>_xf>`pY>bCL >dG>gCL>jOP >m~>>pCL>qCL>tO>vCL>wCL>K>LQP>CL>CL>CL>GP >] >F >Dfg >y >L>Vff>g!>Z ">H#>H$>K=%>LWN&>Mѩ'>J^K(>L>CL*>O+>`C>CL->F5>OP>CL0>K?m1>Kf2>O3>PЂ4>L>OP6>]>CL8>QbG>CL:>J>CL<> K!=> O> OP>CL@>RCA>MtB>Iq>CL>OPE>JH>N I>V8 J> v K>!Vr.L>"Yf >%F>&C>>'EV>)K>*GB>+E,O>,Fk8>.M^>/MK`>0xd>1M>4OP>6L>7M)>:r >=K>hLv>jve>lM\>mM8>n} >oJ>pN>rCL>uES>vCZ>wOP>yCL>zCL>|CL>}CL>~CL>CL>CL>Pf>G6g>Pg>@34>@>>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>D`>CL>CL>L%>CL>CL>CL>OP$>Jt%>Ib&>L>CL*>PY,>]V>OP.>S~>CL>CL>OP>CL3>w'l4>A6>Y7>Ng8>V@9>bӠ:>X3;>]y<>\l>OP>>S`f?>J@>IA>R<>OPD>JE>I&F>I G>Q˃>B>G>A>0BP0>2[>3Mj>6F* >7E >8q >9s T !>>CL>?CL>An`* >COP>Fc >HO>IIA>JG >L>Mu/>OCL>PCL>QCL>RCL>SCL>VF>XEo>YIE>\|& >_HD >ax >by >cKn >fp>iLL>~ >w >s8 >y>r >A^v>] >R>t >pٚ >`y>]>^ >CL>CL>CL>CL>CL>OP>OP>OP>CL>PK>H=>I>H>i =>i =}e>Lkg}f>z M>y( N> EO> MP> JgQ>Tc6R>URS>o T>]LV>J0X>GY>M\[>ҽ\>F^>b%_>B`>@!a>!tHb>"vaHc>#saH>%CL>&CL>'CLg>*t >,CL>-CL>.CL>/CLm>2Dhn>]o>`F^7>bCL>cCL>dCL>eCL>fCL>gCL>hCLw>lvx>mLy>nP(>oOP{>pN,|>qTm}>rpх~>u^>w0 >yEw'>|p ~>~OP>lv |>CL>H6>Pqv>Ib>Lu>CLt>CL>y# >p >m" 5>HX6>F>CL>CL:>I>;>F<>Z$?>C>OP>CLB>H/C>AD>} E>HF>JG>E\)H>@% L>H=q M>zfg N>O34 O>CP>CQ>FR>ET>N(U>M$V>Q)S>OP>CLY>L{CZ>Bn>OP>CL]>Hk^>dl>OP>CLa>Y>$OP>&CLd>(H]>*OPf>,^>-CLh>/G} i>0ULu>2OPk>3O_ l>4Lm>5HRn>6iR o>9^(p>;T33 q>>QL s>?Mt>@N|[u>AM>BOP>DCLx>GMy>JSܷz>LP>MOP>OCL}>RNw~>SNAa>TQy>UG">VOP~>YCL>[KW>^C >_Df>y33>q>CL >G>CL>OP >Mc >CL>CL>K/>CL>CL>Lj>Ln">CL>CL>CL>H >d34 >U34 >p>zT >H>R\>e!>Yff ">Kg#>Es3$>K6%>L&>Ml'>J]c(>L>CL*>P=+>]>CL->F>OP>CL0>K"1>J 2>O3>P4>L>OP6>]>CL8>Q]>CL:>J> CL<> Kk=> O>OP>CL@>RA>MSB>I>CL>OPE>JH>M$I>`N J> wpK>"VL>#Ya >%F?>'C>PEV>RK>SGo>TE,O>UFs>VM^>WMK`>Xx>ZM>]O?>_L>`M1 >cr >eL>fK>iPW>kv6X>lMp>mM>n} >pJ>qN>sCL>vEQ>wCBh>xOP>zCL>{CL>|CL>}CL>CL>CL>CL>Yp>M\>]>@Q>@p>p>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>D]->CL>CL>LQ>CL>CL>CL>OP$>Ju%>Ie&>L>CL*>Pd,>\>OP.>SV>CL>CL>OP>CL3>w?}4>A6>eٚ7>U38>b39>b:>Yf;>]&g<>\4>OP>>S?> J4@>!I'A>"R>#OPD>$JmE>%ITF>&IG>'Qh>+B>,G>-Aٚ>0B>2[d>4NR>7Ez >8D >9q >:sF !>=CL >>CL>?CL>ApY >DOP>GbA >IOT>JIL\>KG/>N{3>PuIp>RCL>SCL>}CL>~CL>CL>F>E>N>|= >GY >zF^ >s >K >r33>L>~] >u >o >y>' >r >]K >Ru>u65 >ow >`>]>^">CL>CL>CL>CL>CL>OP>OP>OP>CL>Pp>H<>I>H>yff>yff}e>NU}f>} M>w N> ENO> MP> JQ>TAR>US>o T>]V>JX>HY>Mtk[>O\>F^>Ea_>FB`>G@!a>Ispb>Ku>c>Lu\*>NCL>OCL>PCLg>Rt >TCL>VCL>WCL>XCLm>[Dn>^o>`FX>bCL>cCL>eCL>fCL>gCL>hCL>iCLw>l{zx>mLy>oR>pOP{>qNK|>rUf}>sp~>u^>w0 >zEz >}pY ~>OP>mna |>CL>HH >P->IK>L7u>CLt>CL>v >pM >l< 5>H\p6>F>CL>CL:>I;>F A<>Z?>C>OP>CLB>HC>A4D>} E>KF>GG>PffH>@. L>H M>yp N>NR O>CμP>CQ>FDR>ET>NLU>M4V>Q> OP>CLY>Lu{Z>B0>OP>CL]>H^>e>OP>CLa>Y> OP>"CLd>$Hm>&OPf>(^>)CLh>+Gi>,Th>.OPk>/Oms l>0Mffm>1I(n>2ih o>5^qp>7T= q>9P r>:Q s>;Mkt>=M>>OP>@CLx>CMEy>FSܷzBP!BOPBCL}BN~BNdBQB GKB OP~B CLBLBDU BD@ByBq@BCL BGBCLBOP B"Ir B%CLB&CLB)KB+CLB,CLB/KZB0L/B2CLB3CLB4CLB7H B8l B9a B:O B;z BdLBeTzBgg!Bh^ "BiL#BjF$BkK3%BlLc&&BmMy'BnJ[(BoLBqCL*BtP<+BwZ7DBzCL-B|F5B~OPBCL0BK)1BI˔2BP3BP_4BLBOP6B]BCL8BQBCL:BJ BCL~=qB@CLBACLBBCLBCCLBDCLBECLBFCLBH^BICLBJCLBKCLBMN9BNCLBQDYBSCLBTCLBWL+ BYCLBZCLB[CLB]OP$B^Jy%B_IiN&BbKfBeCL*BPs%,B]*|BOP.BS@BCLBCLBOPBCL3Bwrr4BA6B`7BTs38BQs49Bb:BY9;B]yBR?BJw@BIABRwBOPDBKXEBIFBIGBQjBBBGBAgBB,B\6BN5YBD BD5 Bqˈ Bs)~ !BCL BCLBCLBp BOPBc[ BOBI8BG*zBloBu9BCLBCLB CLB CLB CLBF PBEuBIVB}T BFD B{ Br BN BslB!LrB%~l^ B&t/ B'q+ B(yB) B*yl B+a[o B-RoBXu B\ow B]`B^]VfB_^ B`CLBaCLBbCLBdCLBeCLBhOPBiOPBjOPBlCLBpPBqH=BrIBsH7Bvi =Byi =}eBQ}f>z MBy6 NBEOBN=PBK#QBTRBU/SBo TB] VBKMXBH YBMtk[BНo\BF(^Bg_BB`B@!aBwbBxgcBvaHBCLBCLBCLgBt0 BCLBCLBCLBCLmBDnB4oBFBCLBCLBCLBCLBCLBCLB!CLwB${\*xB%MyB&PB'OP{B(O'A|B)T}B+pW~B-^B/0 B1EAB4pA ~B6OPB:kp |B BMl 5BNH`6BOF(BQCLBRCL:BTI;BUEBBu9B MB!M*B"}' B#JB$NB&CLB)EVB*D'B+OPB-CLB/CLB0CLB1CLB2CLB3CLB4CLB7NgB8G6gB9X)B:IpBBR?BJz@BIABRMBOPDBKagEBIFBIdGBQIBBBGfBA3BCoB\BN>cBDb BCΫ Bq Br !BCL BCLBCLBo BOPBc[ BOBI+BGBBu)BCLBCLBCLBCLBCLB F PB EB HRB},l BH B{Z Bp BI BBt`BEL BH~z BJu ~ BKj BLymBM BNw BObb BQRBTu} BWo3 BY`3BZ]<B[^ B\CLB]CLB^CLB_CLBaCLBdOPBeOPBfOPBhCLBlPBmH>BnIBoH BriBui}eBra}fBJx< MBy7I NBFOBMPBJQBT RBUSBo TB]VBKuXBHLYBM[B̝)\BFޔ^Bg_BBU`B@eaBubBt4cBt >BCLBCLBCLgBu BCLB CLB CLB CLmBD.nB@ oBF BCLBCLBCLBCLBCLBCLBCLwB }HxB!LByB"OaHB#OP{B$NR|B%Ui}B&q~B)^B+0 B-EB0p$ ~B2OPB6lW |B8CLB;HfBB RN?B Jp @B IlAB R B OPDB JIEB I FB IGB Q%B BB GB AB CSKB \UB NzB D5 B Cs B rs B sc !B CL B CLB CLB p B OPB b  B OB IJ0B G6B B u B CLB (CLB )CLB *CLB +CLB /F$B 0EB 1IB 4}: B 7H B 9{ B :o۔ B ;Q B >mB BLB E~s B FpӖ B Gt' B HyTB IK B Jy B KaL B MR%B QvW B Tp B U`B V]3B W^ B XCLB YCLB ZCLB \CLB ]CLB `OPB aOPB bOPB CLB PB H?lB IB H B jB j}eB l]^}fBn| MB x_ NB FCOB MVPB KQB TwRB USB oK TB \VB JXB H&YB M[B t\B FP^B f_B BU`B @eaB ubB zW cB wW B CLB CLB CLgB t B CLB CLB CLB CLmB DhnB @QoB FnB CLB CLB CLB CLB CLB CLB CLwB ~xB N\yB SHB OP{B N|B !U5}B #q~B %^B ' B )EB Tp| ~B VOPB Zm |B \CLB _H{B `Pw:B aJB eHuB gCLtB hCLB jpF B kp B ml 5B nHi"6B oFB qCLB rCL:B tI;B uD0OP B AG B DCLB FCLB HLB JCLB LCLB NKB OKxB QCLB SCLB TCLB VH[, B l B T B F B z' B LB VffB g!B W "B K#B B&f$B K:[%B LlA&B M'B J]c(B LZB CL*B P\+B bB CL-B F/B OPB CL0B KM1B P2B PN3B Q'4B MAB OP6B ]B CL8B QB CL:B JnB CLB RJW?B Ji@B IlAB QB OPDB I EB I FB IGB P6B BHB GB AB C?B \@B N]!B D5 B Cs B q B r+ !BCL BCLBCLBm BOPBaЊ BOBI BFB 'SB!t@B#CLB$CLB%CLB'CLB(CLB+F,B,EB-M#B0}f B3H B5{ B7n B8IX B;o@B>M=BA~ BBn}[ BCq BDy;BE^ BF}h BHZR BJQbBuvv Bxt"" By`lBz\IB{^ B|CLB~CLBCLBCLBCLBOPBOPBOPBCLBP8BHC BI$BH Bj\)Bj\)}eB hu}fB jtE! MBxц NBFOBMPBKQBTwRBU]SBn TB\YVBJ`EXBH+YBM[B \BFx^BfNW_BB`B@!aBt{bBtGcBsaHBCLBCLBCLgBt BCLBCLBCLBCLmBD7nB @[3oB F&BCLBCLBCLBCLBCLBL BiCLBjCLBlKBnCLBpCLBrK BtKBuCLBwCLBxCLB{H] B|^ B}E B~C Bz45 BLBTzBfR!B\ff "BO3#BFf$BK4%BLz&BM'BJ`(BL׼BCL*BPe3+B^:CBCL-BF/BOPBCL0BKU1BK2BPU3BQ04BM BOP6B]BCL8BQBCL:BKBCL}+ B?JB@NBCCLBFEJBGDBHOPBJCLBKCLBLCLBMCLBNCLBOCLBQCLBTP3BUKiBVNgBWBX@BY~zB[CLB\CLB]CLB_CLB`CLBaCLBbCLBc^BdCLBeCLBfCLBhNBjCLBDf;BCLBCLBKBCLBCLBCLBOP$BJ%BIt&BHBCL*BPG,B\ӾBOP.BS}BCLBCLBOPBCL3Bw4BA6BXY7BJ@8BU349BbӠ:B^3;B`,BR ?BJd1@BIABQBOPDBIZEBIFBIxGBPzBB3BGٚBABCB\3!BN,NBD\ BCv; B q+ B rz !B CL BCLBCLBo; BOPBaL BOBHsBF-BBu*BCLB CLB!CLB#CLB$CLB'F1B(E!B)I[B,}u% B/H B1} B2ju B\P  B_q9BbMaBe~] Bfn Bgp Bhy#Bi Bj@&BlV BoRԫBsv( BvqU Bw`fBx\LBy^ BzCLB{CLB}CLB~CLBCLBOPBOPBOPBCLBPBHB$BI"7BHGBj\)Bj\)}eBi}fBgxo MByT[ NBF=OBNAPBKFQBTDRBU]SBo TB\g*VBIσXBH.YBM[B\BFWw^Be_BB`B@!aBsbBw >cBu\BCLBCLBCLgB$u B&CLB'CLB(CLB)CLmB,DnB0@oB2EДB4CLB5CLB6CLB7CLB8CLB:CLB;CLwB>}xB?LyB@OBAOP{BBN=q|BCUZ}BEqW~BG^BI BKEBNp$ ~BQOPBTlܹ |BVCLBYHoBZPc B[IB_G7FuBCLtBCLBm Bo- Bl 5BHr56BF[BCLBCL:BIw;BC"NB@CLBCEk9BEBPBFOPBHCLBICLBJCLBKCLBLCLBMCLBNCLBQNgBSMyB|YgB}@QB~A >B~BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNBCLBD^BCLBCLBKMBCLBCLBCLBOP$BJy%BIw&BHK}BCL*BP ,B\vBOP.BSm]BCLBCLBOPBCL3Bw_4BA6BUf7BD8BU349Bbf:BZY;B[BQ?BJ[@BH;ABQZYBOPDBHEBIFBIGBPr.BB[3BGBA3BCB\&8BNaBC% BCJ Bp BqJ !B CL B CLB CLBoXB BOPBa>' BOBHBFBDwBFuSZBHCLBICLBJCLBKCLBMCLBPF5BQEBRNBU} BXH BZ}f B[jb B\LL B_r)BcMaBf~l^ Bgn Bho Biy Bj@Bk@BlU_ BnR\[Brw% Bup Bv`Bw\IBx^ ByCLBzCLB|CLB}CLB~CLBOPBOPBOPBCLBPBHC BI#BHBuYBuY}eBDTǍ}fBq MBx NBF":OBN PBKjQBTRBU~SBn TB [VBIO'XBH/nYBMm[B\BEJ^Bd_BC`B@aBt >bBvaHcBuLBCLBCLB!CLgB#t0 B%CLB&CLB'CLB(CLmB+DnB/@oB1E^7B3CLB4CLB5CLB6CLB7CLB8CLB:CLwB=xxB>LpyB?NfB@OP{BAM||BBT}$}BDpǂ~BF^F FE|Fo ~FOPF lv |F CLFH`FPDFIFMcuFCLtFCLFjF Fnz Fkz 5FHt6F F[F"CLF#CL:F%IiN;F&B}Jb(F?LFACL*FDP<+FGYFJCL-FLF/FNOPFPCL0FRJZ1FSJ02FUP\]3FVQG4FWM3yFXOP6FZ]F[CL8F^QNF`CL:FbK0FeCLF|Q?F}JO7@F~H6AFQZFOPDFHEFIFFIGFP7FCfFHFB3FCF\ @FMFC FC FoXB Fph !FCL FCLFCLFk/ FOPFa/ FO#FH6kFFRFѓ FuMFCLFCLFCLFCLFCLFF6FEjFOb;F}; FG F}h Fi FKr FoFLF} Fn$ FpX FyF@FA$ZF S F"QF&wna F)r] F*a33F+\IF,^ F-CLF.CLF0CLF1CLF2CLF5OPF6OPF7OPF:CLF=PF>H@TF?I~F@HGFCpGFGpG}eFpi}fFo7 MFxzJ NFF OFN":PFJQFTRFUSFn TFZVFHLMXFH)YFMOm[F\FEv ^FdN_FC9`F@eaFs{bFucFugFCLFCLFCLgFu FCLFCLFCLFCLmFDnF@foFDvYFCLFCLFCLFCLFCLFCLFCLwF}xFN=qyFPFOP{FL|FS}Fo~F^F FEkFof ~FOPFj |F CLF HNgF P)FIFJauFCLtFCLFn FmG FjF 5FHr56FFŤFCLFCL:F!IZ;F"AXFoOPFqCL]FsI(-^Fu^׮FvOPFxCLaF{VKF|OPF~CLdFIL\FOPfF^FCLhFH@iFMeFOPkFO lFKmFHnFk oF^IpFTp qFP rFS sFM06tFNu uFMOFOPFCLxFMcyFS(zFQ4$FOPFCL}FOt~FNFQ|FGTFOP~FCLFLRFDH FDS4FyYFr&fFCL FGxFCLFOP FJB FCLFCLFOE^FCLF CLF"HF#GhF&CLF'CLF)CLF+HNs F,W F.T F/E F1z[ F3~=q F5E F6Ip !F7\ff "F8I#F9Gٚ$F:K%F;LAq&FL;F@CL*FCP=+FF`$FICL-FKGFMOPFOCL0FyJ1FzI 2F|PK3F}QB4F~M*FOP6F]FCL8FQFCL:FK?mFCLF{QF?FJDF@FHwAFPFOPDFG} EFIFFIGFOFB`FHFAFCeF[FMq?FCX FB FoK Fpmy !FCL FCLFCLFnB FOPFa FOFGoFEFЩAFuiPFCLFCLFCLFCLFCLFF;sFEDFH&F}; F Hf F ~l^ Fgn FPT Ft<FLF}R Fn FpA FyF@F|5! F V"q F"RF%w3 F(p&f F)afF*\IF+^ F,CLF.CLF/CLF0CLF1CLF4OPF5OPF7OPF9CLFI"7F?HwFBizFniz}eFg}fFsګ MFy NFFOFM PFJKQFTRFUFSFn TFYVFG XFH!YFMV>[Fv\FD^Fc-_FCr`F@!aFsbFuǯcFuFCLFCLFCLgFte FCLFCLFCLFCLmFDGnFs4oFCFCLFCLFCLFCLFCLFCLFCLwF{RxFNyFSFOP{FKf|FS-}Fn~F^F0 FEA Fo ~FOPFf< |FCLF H,F4OݚF6IF9KguF;CLtF F 5_ > F 6_ > F 8CLF 9CLF :CLF ;CLF CLF @^F ACLF BCLF CCLF EN dF FCLF IDf;F KCLF LCLF NJZF QCLF RCLF SCLF UOP$F VJrK%F WI&F XFF ZCL*F ]P(,F ^]8F _OP.F `R̿F bCLF cCLF OPF CL3F x,4F A6F R7F B&f8F P39F bf:F Z;F ]F P?F J<@F HAF PvF OPDF G_EF IoFF IuGF OF @ F EF @F Cj{F [2F M'0F C F B F o; F p3 !F CL F CLF CLF j F OPF `׬ F OF G}F EEF F upfF CLF CLF CLF CLF CLF FBF EhF PuF } F Hٚ F ~Ü F gx F Jw F ps3F L/F }; F o F n F yF  F | F Vk F Q˃F #x F &s F '`F (\IF )^ F *CLF TCLF UCLF VCLF WCLF ZOPF [OPF ]OPF _CLF bP$F cH>F dI"7F eH F hzF iz}eF V2}fF? MF wY NF FOF MY#PF JrQF TRF U~SF n TF YMNVF GbXF HWYF M[F R\F GM^F bcF u\*F CLF CLF CLgF t F CLF CLF CLF CLmF D.nF @IoF C6YF CLF CLF CLF CLF CLF CLF CLwF {xF NyF SF OP{F Jc|F R&}F m>7~F ^F  F EAF $of ~F &OPF )i |F +CLF .HF /O>F 1I{eF 4QuF 6CLtF 7CLF :vi F ;o F FF @CLF ACL:F CI/j;F DM F(_ > F)_ > F+CLF,CLF.CLF/CLF0CLF1CLF2CLF3^F4CLF5CLF7CLF8NF:CLF=DbF?CLF@CLFAJ;FDCLFECLFFCLFIOP$FJJk%FKI.&FvQibFxCL*F{O,F|]F}OP.F~R}FCLFCLFOPFCL3FxI4FA6F]&f7FO8F]&f9Fb:F`;F^FP?FJ2 @FHAFP*FOPDFFEFI_FFIeGFO}F@YFEF@33FAsF[FLFE" FC FpA Fq9 !FCL FCLFCLFof FOPFj FOqaFG*zFDFpѷFu(#FCLFCLFCLFCLFCLFFCFEFQwF}u% FI F' FgL FOx F qF LF}h Fo7 FpӖ FyF<^ F>{w F?Y FAQFDxH FGt33 FH`|FI\pFJ^ FLCLFMCLFNCLFOCLFPCLFSOPFUOPFVOPFXCLF[PF\H?lF]IF_H FazFbz}eFt}fF :|U MFx@! NFFOFMdPFJQFTRFU~SFo TFX9VFFwXFHYFMf[FR\FG^Fae_FC1`F@!aFsbFu=qcFvpFCLFCLFCLgFt| FCLFCLFCLFCLmFDnF@IoFBχFCLFCLFCLFCLFCLFCLF CLwF |xF MyFQ>FOP{FI,|FQ}Fku~F^F FE].Fo; ~FOPF"irb |F$CLF'HF)OF*IU F-HuF/CLtF0CLF3w% F4oV F5k 5F6Hpc6F7FƌF9CLF:CL:FFr FLFJFPAFv#,FM\FNyF}I F JF NF CLFEPFDOFOPFCLFCLFCLFCLFCLFCLFCLFPgFMfFNgF _ > F!_ > F"_ > F$CLF&CLF'CLF(CLF)CLF*CLF+CLF,^F-CLF/CLF0CLF1NF3CLF^DeRF`CLFaCLFbIkFeCLFfCLFgCLFjOP$FkJhJ%FlIY&FoPWFqCL*FtOמ,Fu\FvOP.FwRQFyCLFzCLF}OPFCL3FxC-4FA6FT7FL8FXY9Fb:FY;F] FQI?FJ%E@FH:AFOEFOPDFF"EFIQFFIN_GFOA F@FEF@)F~ F[pFLFE0W FCs Fp Frs !FCL FCLFCLFn FOPFt FOFFFDFyFtFCLFCLFCLFCLFCLFFG5FERFPF}f F$I F&@QF'gn F(K F+pF.L F1} F2p$ F3r# F4yF6 F7wl F8^; FFXI~FYH F\zLF]zL}eFTR}fF3}S MFw NFFOFMPFJQFTRFU~SFo TFXd0VFF+XFHYFL9[FS\FF3^Fg1%_FC@`F@aFs*bFukcFtW FCLFCLFCLgFtm FCLFCLFCLFCLmFDnF@;3oFBiFCLFCLFCLFCLFCLFCLFCLwF{ xFP8RyF PffF OP{F Iz|F Q}Fj~F^F FER[Fo ~FOPFi |FCLF"GPF#OyF%I+FPNuFRCLtFSCLFVx FWov FXk 5FYHo{6FZF[F\CLF]CL:F_HH;F`MWDFACLFBCLFCCLFFH@ FGVfg FIE FJoFKy FLHFMSFNe!FOc "FPUf#FQKg$FRJ8%FSL"y&F|M'F}J[(F~LFCL*FOV+F_FFCL-FG-aFOPFCL0FI1FK+2FOj3FQo4FM#FOP6F]FCL8FQFCL:FKcFCL FL_ > FM_ > FOCLFPCLFQCLFRCLFTCLFUCLFVCLFW^FXCLFYCLFZCLF\NF^CLF`DkFbCLFcCLFeI FhCLFiCLFjCLFmOP$FnJfy%FoI&FqOpFtCL*FwO,Fx]jFyOP.FzR>F|CLF}CLFOPFCL3FxO4FA6FRg7F@g8FUY9FbӠ:FX;F]FRV?FJ @FHAFOFOPDFE EFI@FFI2+GFOFGٚFN`FHC3F{z F[HFLXFE? FC% Fq Fr !FCL FCLFCLFk=" FOPF vW FOOFFFDF_5Fu+FCLFCLFCLFCLFCLFFPAFEϑFJ F"}f F%H F'@۶F(h" F)Kce F,nF/L|;F3} F4ph F5r F6yF7 F8y F9a F;QaF>x FBoȉ FC`FD]FE^ FFCLFGCLJCLJCLJCLJOPJOPJOPJ CLJPbJH>JI gJH7JhJh}eFesy}fFV MJ6w:a NJ8FOJ9MPJ:JsQJeTRJfUFSJgo; TJiXHVJkEYXJlHYJmM[Jn-\JoH ^JreS_JtC@`Ju@aJwrkbJxtW cJyt{J{CLJ|CLJ}CLgJtR JCLJCLJCLJCLmJEnJ@9oJAѠJCLJCLJCLJCLJCLJCLJCLwJs\xJJW yJR\JOP{JIP7|JQ/2}Ji~J^J JEnJn ~JOPJg |JCLJGJOfJI(-JH, uJCLtJCLJzR JnbN Jku 5JHqL6JFCJCLJCL:JH;JM*JCLJCLJEJCIJCLJCLJCLJHz* Jl Ja JO Jy? J34 JF{ JI !J Yff "J NL#J D@$J J7%J L>&JMl'JJZ(JLTJCL*JO!I+J]t JCL-JG4JOPJ!CL0J#I/1J$Jh2J&O@3J'Q4J(LJ)OP6J+]J,CL8J/QJYCL:J\KrJ^CLBJkKZJmCLJpOPEJqJHJr{8IJu\ JJv\KJwVLJxZ}W J{FJ|D_J}EVJ~JJEJDJF/JL:JJOJzJKJO?JJPJM Jr JM JJFJP."Ju9JM&.JNyJ}I JJVJNJCLJE/J} ZJOPJCLJCLJCLJCLJCLJCLJCLJNgJM#3JXYJ_ > J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNcJCLJDnaJCLJCLJHUJ"CLJ#CLJ$CLJ&OP$J(Ja%J)I&J+NJ.CL*J1O,J2\h2J3OP.J4RJ6CLJ7CLJ9OPJ;CL3J>xJ@4J@A6JCN7JD|8JEUY9JGb:JI]S4;JJ\JMS-?JNIk@JOHAJPOAJQOPDJRE\(EJSI+FJTIGJUN>JY@lJZEfJ[@PJx J[JLJE JD@ Jrz Js !JCL JCLJCLJl& JOPJ~OI JOQJFRJCCJ*JtѱJCLJCLJCLJCLJCLJFVJEcJI!J}I JI JAOJj' JN} JpIJLWJ}f Jrs Jrn JyJ Jx Jd JQJy Jp; Ja0J\pJ^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJ P6J H>J I~JHOJj(Jj(}eJid~}fJAO MJ[wH NJ]FCOJ^MpPJ_J[QJbTRJcUSJdoI TJgWVJhE@XJiHYJjL[JkS\JlH^Jod_JqCG`Jr@ۘaJtubJuw4cJvv\JxCLJyCLJ{CLgJ}s JCLJCLJCLJCLmJE,nJ@!oJA{JCLJCLJCLJCLJCLJCLJCLwJyxJN=qyJOpJOP{JHO|JQE]}JhC~J^J@JEyJn ~JOPJg^ |JCLJGJO67JILJKguJCLtJCLJ} Jn/ Jk 5JHpc6JF[JCLJCL:JH;JM'OPJ@CLYJBJ+ZJCDJEOPJGCL]JIG0^JKdTJLOPJNCLaJyX JzOPJ|CLdJ~IEJOPfJ^JCLhJH#iJTӾJOPkJO lJJ(mJFznJi oJ_pJU qJQ33 rJS= sJM'tJNPuJMV$JOPJCLxJLbyJT zJPLJOPJCL}JO~JN JPJH+JOP~JCLJKJDb JD,JyYJq3JCL JFJCLJOP J|'JCLJCLJHJCLJCLJEZJC&mJCLJCLJCLJH J` JE JoJy<" JHJTzJg!J \ "J Qs4#J F34$J J%JL&JM'JJX(JLJCL*JN +JA[8lJDCL-JFG;JHOPJJCL0JLI1JMIF2JOO3JPP"4JQLUJROP6JT]JUCL8JXPJZCL:J]KwJ_CL J_ > J_ > J CLJ CLJ CLJ CLJCLJCLJCLJ^JCLJCLJCLJNrJCLJDhJCLJCLJHJ"CLJ#CLJ$CLJ'OP$J(JY%J)I&J,N)J.CL*J1OpK,J2]!J3OP.J4Q߱J6CLJ7CLJ:OPJxM4J@A6JCL337JlDfg8JmYff9Jpb:JrX&g;Js]JvS?JvI@JwHAJxN JyOPDJzE"EJ{IFJ|HGJ}O;J@FfJE3J@)JvN JZJKJE JDu Js8 Js !JCL JCLJCLJk JOPJDJO"JFJCzJBJtJCLJCLJCLJCLJCLJFYNJEJHJ},l JIU JAJk/ JJ.< JtJL.J}I Js Jr JyƨJr Jyz Jg JRJy@Y Joww J`J\c3J^ JCLJCLJCLJCLJCLJOPJOPJOPJCLJOJ H=J I~J4HJ7jzJ:jz}eJ[Tb}fJB MJXu NJZF OJ[L=PJ\JEQJ`TRJaUQSJboXB TJdWyVJeDXJfHYJgL[JiBz\JjG[^Jmc]H_JnCUU`Jo@aJsQbJu\*cJuJCLJCLJCLgJt JCLJCLJCLJCLmJEPnJ@\oJAJCLJCLJCLJCLJCLJCLJCLwJy{xJNyJOJOP{JH|JP.}Jf~J^J@;JEeJp3 ~JOPJfX |JCLJ GJ O J HyJ PWuJ CLtJ CLJ h J n$ J k+ 5J Hpc6J F*J CLJ CL:J H;J LBQ J _ > J _ > J CLJ CLJ CLJ CLJ CLJ CLJ CLJ ^J CLJ CLJ CLJ NJ CLJ D`J CLJ CLJ HJ CLJ CLJ CLJ OP$J JR{%J I$&J "MpJ $CL*J 'OH,J (\m7J )OP.J *QJ TCLJ UCLJ XOPJ YCL3J \x<4J ^AH6J aRY7J bLf8J cZ&g9J fb:J g\`;J h^J kSt?J lIŎ@J mHtAJ nNJ oOPDJ pD̘EJ qH FJ rHGJ sPRsJ w@J xEJ y@fJ ztq J {ZJ |K{J FY J Df J s J tj. !J CL J CLJ CLJ l& J OPJ H2J O>'J EJ Cv8J &J tJ CLJ CLJ CLJ CLJ CLJ F\J EJ PJ }T J J J A/J m J QO J pPJ KJ },l J t J sl J yJ U J {/9 J jb J QUNJ yl J o J `6fJ \IJ ^ J CLJ CLJ CLJ CLJ CLJ OPJ OPJ !OPJ #CLJ &O.J 'H9J (I~J *G%J ,zJ -z}eJ ur}fJ C MJ Kv NJ MF"OJ NKPJ OJ-[QJ RTRJ TU}SJ Uouq TJ WVuVJ Dv`XJ HYJ L^[J {\J H^J ay_J CUU`J @aJ s{bJ u.cJ tJ CLJ CLJ CLgJ s+ J CLJ CLJ CLJ CLmJ EpnJ oJ @UJ CLJ CLJ CLJ CLJ CLJ CLJ CLwJ xRxJ M(yJ OqJ OP{J G|J Q}J eM;~J ^J @fJ EGJ n}[ ~J OPJ f- |J CLJ GvHJ NJ H<J I uJ CLtJ CLJ ~Q J n% J k+ 5J Hk6J FtJ CLJ CL:J Hd;J KW J_ > J_ > JCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJNJCLJDaJCLJCLJGnJ CLJ CLJ CLJOP$JJId%JI&JCL*JAO,JB\ŠJCOP.JDQgSJFCLJGCLJJOPJLCL3JNx!84JPA6JSP37JTH8JUPff9JXbĄ:JZW33;J[YJ^S?J_I{@J`H^AJaNkiJaOPDJcDvKEJdHwFJeHGJfPëJi@PJjE3Jk@PJlr JnZpJoK3JrF JsE\ Jtt[ Jut !JCL JCLJCLJh" JOPJIJOU>JEJCJaJtJCLJCLJCLJCLJCLJFcAJEuJLJ} JIf JB)Jm4 JJ1 JoC3JKœJ|= JvW Js JyƨJ)b J{H Jl JQ2Jy JqU J`fJ\IJ^ J CLJ CLJ CLJ CLJ CLJOPJOPJOPJCLJOuJH9JI~JGnJiQJ"iQ}eJk#}fJ CW MJhu " NJjFmOJkL PJmJQJpT{RJqUnSJroXB TJtV\VJuCXJvHYJxL[Jy|\JzH~^J}g_J~C\r`J@aJtbJv{cJtGJCLJCLJCLgJs JCLJCLJCLJCLmJE&nJ4oJ@JCLJCLJCLJCLJCLJCLJCLwJxxJJffyJN=qJOP{JG1~|JQ6}Jd( ~J^J@JEJp ~JOPJf^ |JCLJGe JNJHÕJOEuJCLtJCLJ@ Joa Jk 5JHe6JFŤJCLJCL:JH9Q;JK _F$TJ@NUJAM6VJBMgyJCOPJECLYJGIZZJHDJJOPJLCL]JNFy^JPdJQOPJSCLaJVW[JWOPJYCLdJ[I/jJ]OPfJ_^J`CLhJbGiJcRJeOPkJfP lJgI =mJhFnJjmff oJ_pJTz qJQ rJRq sJM!tJN;uJMJOPJCLxJLyJQzJPJOPJCL}JO~^~JNn%JO6JHLJOP~JCLJKJD{ JDJ@4J{LJCL JF>KJCLJOP JrݖJCLJCLJHO JCLJCLJDJA+-JCLJCLJCLJHD Jl JR J nffJ y7w J G >J QJ c !J[ "JXY#JH&g$JJ%JL&JMJ'JJM(JLJCL*JNS+JYJ!CL-J#GCJ%OPJ'CL0J)Hm1J*L]2J,O,3J-P4J.Lq%J/OP6J1]J2CL8J]P&J_CL:JbK|&JdCLJST?JTI@JUHCuAJVN! JVOPDJXCBEJYHUFJZHKGJZQPBJ^@lJ_F34J@vfJp JZTJKAJG%- JE! JtY Ju !JCL JCLJCLJj JOPJJM.JO):JEOJB^J*Jt~JCLJCLJCLJCLJCLJFgJEJHJ|& JJ JBNJo JN Jo JKJ|ƚ Jw Js)~ JyƨJ O Jy JoI JQ9Jy JpU J`vfJ[fJ^ JCLJCLJCLJCLJCLJOPJOPJOPJ CLJ O#JH<JIJGJj =Jj =}eJi}fJDx{ MJ]t+ NJ_FmOJaK/PJbI0QJeTDRJfUGOSJgouq TJiUۏVJjCXJlHYJmK[[JnY\JoH^Jre_JsCc`Jt@aJws\bJxtcJyuzJ{CLJ|CLJ}CLgJr JCLJCLJCLJCLmJEnJ@foJ4 JCLJCLJCLJCLJCLJCLJCLwJy{xJL#yJO\JOP{JF|JR|m}Jc~J^J@JEyRJy ~JOPJeuq |JCLJGRJNRJH5JFuJCLtJCLJAa Joj Jk+ 5JH^A6JFĽJCLJCL:JH ;JJJFTK ?JGIi@NH'@ANM<NOPDNCENHFNHlGNQ'N @N EfN 4N o4 NZNK NG NFH? Nua Nu !NCL NCLNCLNj NOPN JN!ON"EN#BN%^gN&t%yN(CLN)CLN*CLN+CLN,CLN/FhN1EN2N7N5| N8J&f N:BNN;q NdL@- Ngp<NjKDNm| Noxo NpsF NqyƨNr~ Nsw Ntr1 NvPNyy N|nUU N~`fN[ N^ NCLNCLNCLNCLNCLNOPNOPNOPNCLNN΍NH9NI<NG^Nz3Nz3}eN%sT}fJFt MNtq NNEONKPNI@QNTRNUCSNo TNU82VNC?XNH3YNKS[Nx8\NK1^Nc_NCx`N@aNsbNvcNuǯNCLNCLNCLgNr NCLNCLN,CLN-CLmN0EqnN3oN5~M9 N7CLN8CLN9CLN:CLN;CLNCLwNAxRxNBJyNCQ\NDOP{NEE|NFR}NHb|m~NJ]NL@˽NNENQr ~NSOPNWirb |NYCLN\G+N]NcxN^HNbL>uNdCLtNeCLNgB No Nk 5NHV6NFNCLNCL:NG0;NIyNOPNCLdNHNOPfN^NCLhNGiNPNOPkNO% lNFQmND\)nNm oN _SpN T qN O\ rNR{ sNM'tNN+uNMzNOPNCLxNLyNMzNO`NOPNCL}N"O~N$N QN%OTN&HgN'OP~N)CLN,KN.Dp N/DfgNXNZy2N\CL N]EN`CLNcOP Nfq=;NiCLNjCLNmZNoCLNpCLNrB Ns NvCLNwCLNxCLN{G3 N|hff N}E N~C Nx< N}G ND NH !N] "NL#NE$NJ%NK&NM]'NJL(NL5NCL*NM+NYNCL-NGJYNOPNCL0NH1NJs2NN3NPI 4NLi2NOP6N]NCL8NPNCL:NJNCLNOPNCL@NS~ANLiBNKzNCLNOPENIRHNLƉINjQ JNoaYKNVLNYf NG&"NDSN EVN!JN"B)N#DZN%GN'K[N(JN)zJN*JzN-ON/IN0LqN3r N5M N6HO N:LvNNyN?yE N@JNAMfNCCLNFENGB NHOPNKCLNLCLNMCLNNCLNOCLNPCLNQCLNTNgNUG6gNVNgNXG NY_ > NZ_ > NCLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNNNCLNDf;NCLNOPNElNCLNCLNCLNOP$NJ*~%NI4&NJNCL*NNC,N]&0NOP.NPNCLNCLNOPNCL3Nx^4NA6N\@7NSٚ8NW&g9Nb:NY3;N\NT U?NIKv@NGANMNOPDNCv8ENHFNHJMGNQſN|4NCN}fNn NYNJַNG NF Nu N v- !N CL NCLNCLNk NOPNJNOgNDNB=eNUNs/NCLNCLNCLNCLN CLN#FlMNLENNG[NQ|j NTJ NVBFNWsU: NXKF N[qs3N^KwNa|oQ Ncy] Ndt' NeyƨNf~ Ngx Nht>u NjQoANmz Npu" Nr`Ns]Nt^ NuCLNvCLNwCLNxCLNzCLN}OPN~OPNOPNCLNNyNH9NI NGNhzNhz}eNn@r}fNgFa MNv NNEONJ@PNIQNTARNTSNo7 TNTVNBXNHYNKq[N塾\NJ^Nae_NC`N@aNspbNwGcNxzNCLNCLNCLgNrז N!CLN"CLN#CLN$CLmN'EnnN*~poN+}V N.CLN/CLN0CLN1CLN2CLN3CLN4CLwN8wHxN9NyN:Q N;OP{Na~NA]NC@NEE.NHv4 ~NJOPNMd |NxCLN{G N|NTON}HpVNOWuNCLtNCLND8 Np/ Nkt 5NHJM6NF6NCLNCL:NG;NICVN?OPNACLNCCLNlCLNmCLNnCLNoCLNpCLNsNgNtONuYgNvG Nx_ > Ny_ > N{CLN|CLN}CLN~CLNCLNCLNCLN]NCLNCLNCLNNVNCLNDdkNCLNCLNE NCLNCLNCLNOP$NJ!h%NI4&NJYNCL*NM,N]%xNOP.NPnNCLNCLNOPNCL3NxC4NA6NX7NKs38NVٚ9Nb:NXf;N\3NSi?NI4@NGҪANMfNOPDNC7ENHz FNH. GNQN@33NEfN@FfNm NYNJ`NGX NHi" NvY Nvv !NCL NCLNCLNjH N OPN JN4O N5D_N6A N7iN8sm#N;CLNCLN?CLNBFuZNCEu*NDNNH|` NKIU NMB?NNt4 NOLz NRpNUJNX|` NYz? N[s N\yN]~s N^x N_u6 NaP-NdzF^ Ngj] Nh`3Ni[fNk^ NlCLNmCLNnCLNoCLNCLNOPNOPNOPNCLNN,NH7DNI<NGN{N{}eN7h'}fNIc MNu NNEONIPNIQNTwRNUJSNo TNSSVNA-XNHYN J[N ˫\N M8^N f_N C`N A DaN sBbN wHcN xN CLN CLN CLgN r N CLN CLN CLN CLmN EnN ~oN | N !CLN #CLN $CLN %CLN &CLN 'CLN (CLwN +z(xN -O\yN .PffN /OP{N 0C=q|N 1SW}N 2`x~N 4]N 7AN aEN ds ~N fOPN ice |N kCLN oGN pNN qHugN tI5uN vCLtN xCLN zFĜ N {o N |kt 5N ~HC 6N FN CLN CL:N GX;N H\K?mN @DZ N ADN BygN CrN ECL N GEZN JCLN MOP N PmN SCLN TCLN VGN YCLN ZCLN \AZN ]{g N `CLN aCLN bCLN G N j33 N F N rN x N HN R\N e!N `f "N R#N K$N J%N K&N M&'N JC(N LN CL*N M~+N X}N CL-N G;N OPN CL0N G} 1N H=2N N.3N O@4N L`N OP6N ]N CL8N PdzN CL:N J N CL N k_ > N nCLN oCLN pCLN qCLN rCLN sCLN tCLN u]N wCLN xCLN yCLN zNN |CLN DaN CLN CLN DQNN CLN CLN CLN OP$N J:%N I{&N IwN CL*N M,N ]@N OP.N P1FN CLN CLN OPN CL3N xA4N A6N ]7N G8N Y@9N b:N Yٚ;N ]fgN Sh?N IG@N GbAN M"N OPDN CEN H]FN HSGN Q{N ClN H3N BN m N YN J._N HM N HK N v N v !N CL N CLN CLN !kh N #OPN $JN %N׮N &CN 'A-N )9N *s@uN ,CLN -CLN .CLN /CLN 0CLN 3FzN 5EaGN 6GgN 9|C N B)N ?v N @JM N Cr,N FJuN I|& N K{= N Lt N MywN N~OI N Ox N PvI N RQ4N Uzcz N p"" N `c3N ]3N ^ N CLN CLN CLN CLN CLN OPN OPN OPN CLN MyN H7DN IjN GMN jGN jG}eN )r)}fN zKO MN tTg NN EON IMPN I`QN TwRN U1SN of TN RaVN AmXN GYN Jy[N g>\N Lw^N cd_N C9`N AaN t4bN vcN v*N CLN CLN CLgN r N CLN CLN CLN CLmN EnN  oN {D N CLN CLN CLN CLN CLN CLN CLwN H~xN INyN JTfN KOP{N LB|N MS@\}N N`Yc~N Q]N SA"N UEͻN Xz ~N ZOPN ]g |N `CLN cFmN dMN eH9QN hOruN kCLtN lCLN nI} N op;e N pkT 5N sH:6N tFN vCLN wCL:N yG-a;N zGuNM<NOPNCLxNLyNSzN!N&N"OPN%CL}N'N~N)MhN*NN+HxMN,OP~N.CLN0K)N2D9 N4DyN5y33N6r&fN8CL N:EN=CLN?OP NBmuNECLNGCLNIVQ+NKCLNtCLNvA2Nx{y NzCLN|CLN}CLNGa Nj NH NE Nx NHNVffNh!N^33 "NOY#N@33$NJ%NK&NM|'NJC(NL`NCL*NM۽+N_ANCL-NG;NOPNCL0NG1NQQ%2NMe3NO4NL>NOP6N]NCL8NPpNCL:NJNCLQN@u9NALNBNyNCu NDJNEMINHCLNKENLCVNMOPNOCLNPCLNQCLNRCLNSCLNTCLNVCLNYNgNZO3N[YgN\G N]_ > N^_ > N`CLNaCLNbCLNdCLNeCLNfCLNgCLNh]NiCLNjCLNkCLNmNNoCLNrDbNsCLNtCLNvDBNCLNCLNCLNOP$NJ %NI{&NH:NCL*NMe,N]xNOP.NONCLNCLNOPNCL3Nx>4NA6Nb7NE8NYff9Nb:N[f;N]LNS?NH@NGANL/NOPDNBfENHAFNGGNQN~LNCN|lNkV NY>NI7N HM N H N w Nw4 !NCL NCLNCLNi NOPNJNN_NC>XN@NU"NrN CLN!CLN"CLN$CLN%CLN(FyN)EdN*MνN-| z N0Iٚ N2BNN3wQ? N5L N8p0N;J6N>| N?{ Nhu NiywNj~ Nkwna Nmx NoPzNrz NuzY Nva&fNw\S3Nx^ NyCLN{CLN|CLN}CLN~CLNOPNOPNOPNCLNMNH6[NINGN|ffN|ff}eNpS}fN nN֖ MNt( NNEzONHFPNIn^QNTRNUSNo۔ TNR/VN@XNG~YNJ[N棟\NKv^Nh_NCU`NA)waNu>bNvcNvNCLNCLNCLgNr3 NCLNCLNCLNCLmNFnN}oNz NCLN0CLN1CLN2CLN4CLN5CLN6CLwN9~zxN:LyN;Q>NCO|N?T( }N@`~NB]NDA82NFEZNJsF ~NLOPNOc7 |NQCLNTFsNUM/NWHKjNZG,uN\CLtN]CLN`] Nar< Nbn1' 5NdH7D6NeFNgCLNhCL:NjFݱ;NkGLDDN~C ENL\FNPGNLHN@ LNIp MN{ NNO ONDPNDQNG'RNFZTNLUNKVNKcNOPNCLYNGZNEV[NOPNCL]NEsZ^NdZNOPNCLaNUGNOPNCLdNHNOPfN^NCLhNG )iNLSNOPkNO lNFmNB =nNlR oN^pNV{ qNR rNU sNMdtNMwuNM NN OPN CLxNLyNPzzNNyNOPNCL}NN}~NM4NNiNHTNOP~N CLN"JN$D N%DN&xN'r&fN)CL N+EN.CLN1OP N\q=;N_CLN`CLNcZNNeCLNfCLNh@;Niy NlCLNmCLNnCLNqG Nr|34Nsu&gNtzNux NvHNwTzNxh!Ny~f "Nzr#N{]s3$N}Jb%N~K-&NM'NJ9(NBNCL*Nx+N^NCL-NG`NOPNCL0NG1NL~2NM 3NO4NLNOP6N]NCL8NObNCL:NJNCLOPN@CLNACLNBCLNCCLNDCLNFCLNGCLNJNgNKLNLYgNMG NN_ > NO_ > NQCLNSCLNTCLNUCLNVCLNWCLNXCLNY]NZCLN\CLN]CLN^NNCLNDhNCLNCLNCwNCLNCLNCLNOP$NJk%NI&NH=NCL*NM),N\NOP.NONCLNCLNOPNCL3Nw44NA6N_7NJff8NQf9Nb:N_;N]NS?NH`@NGANLNOPDNC ENH&XFNGHGNQgN}NCN|lNjz NXvNH:NHY NIT NwQ? NwB !NCL NCLNCLNi NOPNJmN NmN BFN  N)=Nr{GNCLNCLNCLNCLNCLNF~fNEl NGi~N { N#Iw N%CUN&xe N'K NRt&fNUINX|` NY{ N[v( N\y^N]} N^w N_xP NaNNdz Ngz Nha6fNi]PNk^ NlCLNmCLNnCLNoCLNpCLNtOPNuOPNvOPNxCLN{Md1N}H6[N~INGNizNiz}eNt|}fN`b MNsk NNEzONI+PNI#QNTRNUSNo TNRVN@4XNHMYNJ9 [Nܣ\NJ^NdQ_NCr`NA<aNuRbNwcNv*NCLNCLNCLgNrCY NCLNCLNCLNCLmNFdnN!}oN"xR N$CLN&CLN'CLN(CLN)CLN*CLN+CLwN.BxN0N\)yN1T\)N2OP{N3B|N4T(}N5a0~N7]N:AUNNOPNCL@NST(ANKb^BNJ)NCLNOPENGHNFINl' JN{*KN JLNZ NGCNDVN@NK)NA^vNE*NG4NKwNINzJNJN ON"IN#LVeN&r N(LN)GoN,LvN.u9N/LN0NyN1u N2JN4KHN6CLN9EyN:DN;OPN=CLN>CLN?CLN@CLNBCLNCCLNDCLNGNgRvMS3RvXvfRvG Rv_ > Rv_ > RvCLRvCLRv CLRv CLRv CLRv CLRv CLRv]RvCLRvCLRvCLRvNcRvCLRvDnaRvCLRvOPRvBތRv!CLRv"CLRv#CLRv&OP$Rv'I'%Rv(I&Rv*G2Rv-CL*Rv0L{,Rv1\rRv2OP.Rv3ObRv5CLRv6CLRv8OPRv:CL3RvewҮ4RvgA{6Rvje7RvkJ@8RvlT9RvnbN:RvpZfg;Rvq\gRvtS_?RvuH@RvvGhJARvwLplRvxOPDRvyClERvzHjFRv{GGRv|Q@Rv@gRvF3Rv@Rvi RvXd^RvHtRvI( RvI Rvw Rvw_ !RvCL RvCLRvCLRvh RvOPRvJ,RvNsRvA׾Rv~@ RvRvqRvCLRvCLRvCLRvCLRvCLRvFRvE6RvIL\Rv{ RvI RvC Rvy RvM:T RvmRvIlRv| Rv|` Rvw Rvy^Rv} Rvw Rvy1 RvMRvz Rv}U Rv`ɚRv]3Rv^ RvCLRvCLRvCLRvCLRvCLRvOPRv,OPRv-OPRv/CLRv2M%ERv3H5sRv5IRv6GRv9hRRvbRvxcRvxǯRvCLRvCLRvCLgRvr3 RvCLRvCLRvCLRvCLmRvF#nRv~4oRvv RvCLRvCLRvCLRvCLRvCLRvCLRvCLwRv~=qxRvLyRvOaHRvOP{RvA|RvUzH}Rve[~Rv]RvApRvERvy ~RvOPRvbR |RvCLRvF[RvN/}RvG8RvPuRvCLtRv CLRv kJ Rv wbN Rvp 5RvH36RvFRvCLRvCL:RvFi;RvE ORv+DPRv,D2QRv-G.RRv.FaTRvXLZURvYKYVRvZKRv[OPRv]CLYRv_F/ZRv`EVRvbOPRvdCL]RvfE]^RvhhRviOPRvkCLaRvnW/RvoOPRvqCLdRvsH/RvuOPfRvw^RvxCLhRvzF5iRv{V#Rv}OPkRv~O lRvHmRvDpnRvk oRv^pRvU33 qRvOff rRvS sRvMtRvN^uRvL͟RvOPRvCLxRvM:yRvKzRvN RvOPRvCL}RvN7o~RvLƗRvNIRvHYRvOP~RvCLRvJRvD RvE9Rv{RvrRvCL RvDRvCLRvOP RvnRvCLRvCLRvEzRvCLRvCLRv} RvuЫ RvCLRvCLRvCLRvH Rvo Rvc Rv d Rv!xt Rv"LRv#TzRv$g!Rv&^ "Rv'O33#Rv(BL$Rv)Jy%Rv*Kz&Rv+M1 'Rv,I>(Rv-F?Rv/CL*Rv2dW+Rv5]Rv8CL-Rv:GuRvCL0Rv@F~1RvAJe2RvCMEV3RvDO 4RvEK'RvFOP6RvH]RvICL8RvLN]RvNCL:RvPJ RvSCL Rv_ > RvCLRvCLRvCLRvCLRvCLRvCLRvCLRv]RvCLRvCLRv CLRv N%bRv CLRvDnaRvCLRvOPRvB\RvCLRvCLRvCLRvOP$RvI%RvI&RvG3Rv CL*Rv#L,RvL\RvMOP.RvNO(RvPCLRvQCLRvSOPRvUCL3RvXw4RvZA{6Rv]d7Rv^LY8Rv_T&f9Rvab:RvcZ;Rvd]ٚRvgSv?RvhHM@RviGPARvjL3RvkOPDRvlCERvmGFRvnGGRvoQLRvs@YRvtE3Rvu@33Rvvi_ RvwX mRvxGRv{I Rv}J" Rv~w Rvw !RvCL RvCLRvCLRvi RvOPRvIRvN. RvA(Rv|ƚ RvxNRvqoRvCLRvCLRvCLRvCLRvCLRvFRvDRvNoRv{Z RvJQ RvBrdRv{LS RvK( Rvr#3RvIzhRv|& Rv| Rvy RvyFRv}u% Rvw_ Rvy@ RvL'Rvz[ Rvt Rv`Rv[Rv^ RvCLRvCLRvCLRvCLRvCLRvOPRvOPRv OPRv"CLRv%LRv&H4Rv'IRv)GҥRv+y33Rv,y33}eRvUkP}fRv qZ MRvJs NRvLEORvMIaPRvNH QRvzT{RRv{TSRv|p TRv}PiVRv~|1 XRvH1=YRvIb[RvI\RvN/^Rvd_RvC`RvAZ#aRvvqbRvwcRvwHRvCLRvCLRvCLgRvr RvCLRvCLRvCLRvCLmRvF6nRv~YoRvuI RvCLRvCLRvCLRvCLRvCLRvCLRvCLwRvspxRvIyRvOQRvOP{RvA"|RvUR}Rve~Rv]RvAfRvERvw| ~RvOPRv` |RvCLRvFRvN$RvGRvGuRvCLtRvCLRvl RvwV Rvq% 5RvH/6RvFRvCLRvCL:RvFE;RvE<NN4Rv?KJRv@OP6RvB]RvCCL8RvnMRvpCL:RvrJRvuCL Rv_ > RvCLRvCLRvCLRvCLRvCLRvCLRvCLRv]RvCLRvCLRvCLRvNRvCLRv DhRv CLRv4CLRv8A"Rv:CLRv;CLRvRvfS?RvgH@RvhG:ARviKRvjOPDRvkCERvlGFRvmGq2GRvnQARvBRvHRvC Rvh_9 RvWRvGmRvI RvJ1s Rvw Rvw !RvCL RvCLRvCLRvh RvOPRvIӨRvM.Rv@*Rv|} Rvh|RvqWRvCLRvCLRvCLRvCLRvCLRvFRvDRvG9Rv{ RvI RvALRv|C RvNN Rvs`RvI56Rv |ƚ Rv } Rv zcz Rv yFRv }: Rv w_ Rv y Rv KRv z Rv vff Rv `Rv ]@Rv ^ Rv CLRv CLRv CLRv CLRv CLRv OPRv OPRv OPRv !CLRv $LRv %H0Rv &I WRv 'GRv +g Rv .g }eRvmk}fRvs8 MRv ts\ NRv vEORv wJAPRv xHQRv {THRRv |TBSRv ~p3 TRv P/VRv | XRv H+YRv I[Rv \Rv K"^Rv h~ ERv @GGFRv AL\GRv BQHRv C@ LRv EE MRv FC NRv GI34 ORv HDPRv IDQRv JG;RRv KFxCTRv LKlURv MJVRv NK9Rv OOPRv QCLYRv SE9[ZRv TETRv VOPRv XCL]Rv ZDZ^Rv \g}Rv ]OPRv _CLaRv bW Rv _ > Rv CLRv CLRv CLRv CLRv CLRv CLRv !CLRv "]Rv #CLRv $CLRv %CLRv 'N(ERv )CLRv +DbRv -CLRv .CLRv 0ARv 3CLRv 4CLRv 5CLRv 7OP$Rv 9I.%Rv :I&Rv Rv S?Rv H?@Rv G&ARv KRv OPDRv CERv GFRv G\OGRv QRv A@Rv E3Rv @33Rv gP Rv WGRv G3Rv J@- Rv J Rv x Rv w3 !Rv CL Rv CLRv CLRv fTQ Rv OPRv IKRv MhRv @bRv | Rv %Rv p`Rv CLRv CLRv CLRv CLRv CLRv FRv DKRv JRv z[ Rv K Rv @Rv } Rv J Rv o Rv HRv | Rv }I Rv zT Rv yFRv } Rv w Rv z)B Rv JBURv z Rv q Rv `Rv \IRv ^ Rv CLRv CLRv CLRv CLRv CLRv OPRv OPRv OPRv CLRv LeRv H,bRv I Rv GȬRv HjGRv KjG}eRv kt}fRv tr MRv is NRv kE5ORv lIPRv nHQRv qTRRv rTSRv sp3 TRv tOVRv u{b XRv wH%zYRv yIRY[Rv z\Rv {Nh^Rv ~hI_Rv C`Rv AaRv ugbRv xLcRv x>Rv CLRv CLRv CLgRv r Rv CLRv CLRv CLRv CLmRv F\nRv ~FgoRv sQl Rv CLRv CLRv CLRv CLRv CLRv CLRv CLwRv BfxRv Q\)yRv Q.Rv OP{Rv @o|Rv V}Rv g)z~Rv ]Rv AnRv ERv y]w ~Rv OPRv ^ׄ |Rv CLRvF9RvMRvG(RvO*uRvCLtRvCLRvm RvwR Rvq1' 5RvH%!6Rv!F8Rv#CLRv$CL:Rv&G;Rv'CEKiRvT5RvOPkRvO lRvFRmRvC{nRvi3 oRv^}pRvZk qRvR8R rRvV\) sRvMtRvNuRvLbRvOPRvCLxRvMZzyRvO'zRvMzRvOPRvCL}RvM~RvL/@RvMt5RvHÕRvOP~RvCLRvJPRvCc RvERvAffRv|34RvCL RvDRvCLRvOP RvrfRvCLRvCLRvLVhRvCLRvCLRvz Rvr* Rv CLRv CLRv CLRvGqo Rvw Rvr Rvm Rvx RvJHRv`f "Rv?U#RvAHL$RvBJ%RvCK-&RvDM<'RvEJ&(RvFGRvHCL*RvKQ+RvN]RvPCL-RvRGuRvTOPRvVCL0RvXE1RvZQCK2Rv\L3Rv]N4Rv^KURv_OP6Rva]RvbCL8RveM*RvgCL:RviJRvlCLRvSj?RvHh@RvGiARvKRvOPDRvDERvGFRvGJ(GRvPkRv}RvCRv}S3Rvf` RvVRvGRvJ RvK Rvx+ Rvw !RvCL RvCLRvCLRvg RvOPRvIRvMRv@Rv{ Rv؊wRvpRvCLRvCLRvCLRvCLRvCLRvFRvDdaRvPjRvz RvJDD Rv@gvRv} RvNN RvpRvHRv| Rv} Rv{= RvyFRv|ƚ RvwS RvzT RvJRvz RvuD RvaLRv]iRv1^ Rv2CLRv3CLRv4CLRv5CLRv6CLRv:OPRv;OPRvCLRvAL-gRvCH'RvDI RvEGRvG|fRvH|f}eRvv:}fRvt MRvfr NRvhEѦORvjIςPRvkHh_QRvTRRvTxSRvp3 TRvOVRvz XRvH YRvI=[Rv\RvM}^Rvd_RvC`RvAaRvubRvvcRvwRvCLRvCLRvCLgRvr RvCLRvCLRvCLRvCLmRvFcnRv~oRvr RvCLRvCLRvCLRvCLRvCLRvCLRvCLwRvpxRvO#yRvPRvOP{Rv@ |RvU}Rvg%~Rv]RvAзRvERv| ~RvOPRv]3 |Rv CLRv FjRvM^RvG]RvFuRvCLtRvCLRvm Rvw RvpD 5RvH#P6RvFQRvCLRvCL:Rv!F;Rv"N ORv`DMPRvaE QRvbGHRRvcFTRveK'URvfJzVRvgJ`RvhOPRvjCLYRvlEZRvmERvoOPRvqCL]RvsD^RvufRvvOPRvxCLaRv{VRv|OPRv~CLdRvHVFRvOPfRv^RvCLhRvFiRvSeRvOPkRvO9 lRvGGmRvD33nRviR oRv^n pRvU33 qRvO rRvS. sRvMktRvNuRvLSRvOPRvCLxRvMV$yRvLzRvM`@RvOPRvCL}RvMk~RvLURvMERvH!RvOP~RvCLRvJ_CRvCԹ RvE3Rv@Rv| RvCL RvDVRvCLRvOP RvsuRvCLRvCLRvD4KRvCLRvCLRvz7 Rvqh Rv%CLRv&CLRv'CLRv*G1 Rv+p Rv,cL Rv-[33 Rv.w Rv/LRv0UpRv1h!Rv2` "Rv4U#Rv5E$Rv6J%Rv7K&Rv8M!'Rv9J(Rv:FRvRvxSJ?RvyHU@RvzG ARv{K|Rv|OPDRv}DnQERv~GFRvG?CGRvPzRv}RvC3Rv|4RvfM RvVRvF(RvJ RvK RvxWc RvwS !RvCL RvCLRvCLRvdc RvOPRvI.RvMlRv@sRv{/ RvˣRvpPRvCLRvCLRvCLRvCLRvCLRvFRvDDRvKRvz7 RvHU Rv@Rv}R RvJx RvnRvH<Rv|oQ Rv~ Rv{in Rvy-Rv|j Rvx:D Rvz RvJfRvz Rv x Rv!`3Rv"]vfRv#^ Rv$CLRv%CLRv'CLRv(CLRv)CLRv,OPRv-OPRv/OPRv1CLRv4KRv5H$8Rv6IRv7G<Rv;gQRv>gQ}eRvf}fRvt MRvr NRvE_ORvIgPRvHAGQRvTRRvT4SRvp TRvOVRv{b XRvHYRvIf[RvF\RvL`^Rvf_RvC`RvAaRvxRbRvyQcRvxzRvCLRvCLRvCLgRvq RvCLRvCLRvCLRvCLmRvFiUnRv~\oRvr RvCLRvCLRvCLRvCLRvCLRvCLRvCLwRv{=qxRvMyRvORvOP{Rv~_ |RvV}Rve+~Rv]RvA9RvERv{LS ~RvOPRv] |RvCLRvFTRvM\RvG'RvLuRv CLtRv CLRv m Rvvr RvpA 5RvH6RvFQRvCLRvCL:RvFm;RvOWV^S?V^,HCu@V^-GAV^.KdKV^/OPDV^0D]EV^1GFV^2G<GV^3PgV^7}2V^8CV^9|fV^:f% V^;VzV^GV^M >HV^@C LV^TR MV^M NV^] OV^EPV^EtQV^GP%RV^FsTV^K/UV^J2VV^J1V^OPV^CLYV^!FTZV^"EV^$OPV^&CL]V^(D%^V^*cV^+OPV^-CLaV^0UV^1OPV^3CLdV^5H@V^7OPfV^9^V^:CLhV^V^CL:V^JBUV^CLV^0T?V^1H5@V^2FAV^3K]V^4OPDV^5DL:EV^6GFV^7G9GV^8PKV^<@3V^=EV^>@vfV^?e V^AVCV^LplV^GJV^FhuV^CLtV^CLV^nq V^w V^pȵ 5V^H6V^FαV^CLV^CL:V^G;V^JTG qV^?Mf rV^ARu sV^BMstV^CN!uV^lLV^mOPV^oCLxV^rM7yV^uR zV^wMV^xOPV^zCL}V^}M:~V^~K}V^LV^H2V^OP~V^CLV^IV^B V^DfV^@lV^{&fV^CL V^D4KV^CLV^OP V^uV^CLV^CLV^JwV^CLV^CLV^wna V^k V^CLV^CLV^CLV^G;] V^oL V^\ff V^_ff V^wQ V^HV^TzV^g!V^i "V^W#V^Gٚ$V^Jɓ%V^Ji&V^Mf'V^Jk(V^FmV^CL*V^LDX+V^ZV^CL-V^GCV^OPV^CL0V^D1V^HS2V^L %3V^M4V^JV^OP6V^]V^CL8V^LuV^CL:V^JV^ CLJRBV^?IV^ACLV^DOPEV^EDMHV^F@IV^Ihx| JV^KFKV^LVLV^MZ V^OG} V^QDV^RA:V^TKV^UByV^VElV^WHV^XKV^YGlV^ZzJV^\HQV^_OV^aIlV^bLV^eoAV^gLV^hBөV^kLvV^mu9V^nM V^oNyV^lU V^JцV^I(oV^CLV^EmV^DF-V^OPV^CLV^CLV^CLV^CLV^CLV^CLV^CLV^NgV^K`V^YgV^_V^_V^_V^CLV^CLV^CLV^CLV^CLV^CLV^CLV^]V^CLV^CLV^CLV^N7oV^CLV^DXV^CLV^CLV^AҩV^CLV^CLV^CLV^ OP$V^ I%V^ I&V^ IpV^ CL*V^ K3,V^ c=V^ OP.V^ P\V^ CLV^ CLV^ OPV^ CL3V^ vp4V^ A{6V^ Q7V^ Cg8V^ S9V^ b:V^ "]@;V^ #_V^ &S?V^ 'H#@V^ (FAV^ )KJV^ *OPDV^ +DJEV^ ,GyFV^ -G4^GV^ .PDV^ 2@V^ 3F3V^ 4@FfV^ 5e)H V^ 6V V^ `FRV^ cK V^ dL V^ ex0 V^ fx !V^ iCL V^ jCLV^ lCLV^ nfm V^ pOPV^ qIV^ rMSV^ s@V^ vz V^ xV^ zpV^ |CLV^ }CLV^ ~CLV^ CLV^ CLV^ F-V^ DV^ KV^ y V^ H&f V^ ~z V^ ~ V^ QO V^ n3V^ GcV^ |` V^ ~s V^ y V^ y-V^ { V^ y1 V^ { V^ JXV^ z? V^ t V^ `fV^ \FfV^ ^ V^ CLV^ CLV^ CLV^ CLV^ CLV^ OPV^ OPV^ OPV^ CLV^ KEFV^ H@V^ IV^ GV^ gpV^ gp}eV^ xel}fV^v7 MV^ 2rHZ NV^ 4EOV^ 5EZPV^ 6HQV^ :TRV^ ;T&SV^ uw XV^ @GYV^ AHk[V^ C\V^ DNww^V^ Gh_V^ HCr`V^ JAaV^ KugbV^ LycV^ Nz8RV^ PCLV^ QCLV^ RCLgV^ Tq V^ VCLV^ WCLV^ YCLV^ ZCLmV^ ]FlnV^ `}4oV^ ao, V^ cCLV^ CLV^ CLV^ CLV^ CLV^ CLV^ CLwV^ y\xV^ MffyV^ QkV^ OP{V^ xG |V^ Y1W}V^ jP~V^ ]V^ A,V^ EݚV^ v- ~V^ OPV^ [v |V^ CLV^ F1V^ L6V^ GV^ JuV^ CLtV^ CLV^ o>w V^ x?} V^ p# 5V^ H6V^ FV^ CLV^ CL:V^ G;;V^ H(KZV^ EV^ OPV^ CL]V^ C^V^ !`YV^ "OPV^ $CLaV^ 'TLV^ (OPV^ *CLdV^ TH[V^ VOPfV^ X^V^ YCLhV^ \EziV^ ]OV^ _OPkV^ `O lV^ aHQmV^ bCnV^ cj@ oV^ f^fpV^ hV3 qV^ iQ) rV^ jT sV^ kL>tV^ lN$uV^ nKV^ oOPV^ qCLxV^ tM&yyV^ wP5zV^ yL=V^ zOPV^ |CL}V^ M~V^ KPV^ LV^ HMV^ OP~V^ CLV^ IV^ Bx V^ \4V^ _fV^ YffV^ CL V^ DBV^ CLV^ OP V^ tBgV^ CLV^ CLV^ CaV^ CLV^ CLV^ v V^ ji V^ CLV^ CLV^ CLV^ G[+ V^ j33 V^ cL V^ ` V^ w5 V^ JHV^ TzV^ h!V^ y33 "V^ ag#V^ C$V^ J5%V^ J7&V^ M'V^ J(V^ Fk8V^ CL*V^ KU+V^ _V^ CL-V^ G;V^ OPV^ CL0V^ D_1V^ M$q2V^ "K3V^ #M`4V^ $J:V^ %OP6V^ ']V^ (CL8V^ +LV^ -CL:V^ /J<V^ 2CLIEV^ @CLV^ COPEV^ DDHV^ F~IV^ Im4 JV^ J@aFKV^ KV~LV^ LZ` V^ OG} V^ PDV^ QA$ZV^ SKV^ TB V^ UEtV^ VHV^ WKV^ GrV^ zV^ HaV^ OpV^ IVV^ M V^ r V^ LV^ B=V^ L.V^ u9V^ M V^ M<V^ l/ V^ JV^ I"V^ CLV^ E}MV^ DF-V^ OPV^ CLV^ CLV^ CLV^ CLV^ CLV^ CLV^ CLV^ NgV^ NV^ YgV^ G V^ _ > V^ _ > V^ CLV^ CLV^ CLV^ CLV^ CLV^ CLV^ CLV^ ]V^ CLV^ CLV^ CLV^ N8'V^ CLV^ DXV^ CLV^ CLV^ AW3V^ CLV^ CLV^ CLV^ OP$V^ Ig%V^ I&V^ Go>V^ CL*V^ JR,V^ c3V^ OP.V^ PV^ CLV^ CLV^ OPV^ CL3V^ vu4V^ A{6V^ W&g7V^ Gٚ8V^ ]&f9V^ bf:V^ Hdfg;V^ I` V^ LSh?V^ MHT@V^ NFAV^ OK2iV^ POPDV^ QD EV^ RGyFV^ SG*cGV^ TPV^ W@lV^ XEɚV^ Z@c3V^ [e V^ \U~V^ ]FYV^ `K+ V^ aM.{ V^ bx0 V^ dx !V^ gCL V^ hCLV^ iCLV^ kdq V^ mOPV^ nHV^ oLV^ s: V^ tzcz V^ vV^ wpV^ yCLV^ zCLV^ {CLV^ }CLV^ ~CLV^ F-V^ CrV^ H/V^ y]w V^ Hٚ V^ } V^ }R V^ Jw V^ qC3V^ GV^ |& V^ ~l^ V^ y@ V^ y-V^ {/ V^ y# V^ {a V^ KV^ z V^ | V^ `V^ \IV^ ^ V^ CLV^ CLV^ CLV^ CLV^ CLV^ OPV^ OPV^ OPV^ CLV^ KV^ H'V^ IsV^ GtV^gV^g}eV^ vf}fV^ v; MV^2q NV^4EHOV^6F3XPV^7GʉQV^:TRV^;T SV^u XV^AGYV^BH[V^C\V^DN̓^V^G__V^HC`V^JAaV^tuǯbV^uw(cV^vxV^xCLV^yCLV^zCLgV^|q V^CLV^CLV^CLV^CLmV^FynV^}4oV^n_ V^CLV^CLV^CLV^CLV^CLV^CLV^CLwV^{xV^LaHyV^Q>V^OP{V^xL |V^Y }V^h~V^]V^AV^EV^} ~V^OPV^]x |V^CLV^F jV^L5V^GU6V^PMTuV^CLtV^CLV^pq V^wbN V^q 5V^Hw6V^FCV^CLV^CL:V^Fs;V^F?V^CV^OPV^CLBV^F:CV^@o+DV^~T EV^O34FV^NRGV^Z\)HV^@ LV^g MV^`R NV^pQ OV^EPV^E7QV^GbRV^ FsTV^ JUV^ IVV^ JV^OPV^CLYV^F!OZV^EѕV^=OPV^?CL]V^ACa^V^C_nV^DOPV^FCLaV^ISV^JOPV^LCLdV^NHV^POPfV^R^V^SCLhV^UEV[iV^VNV^XOPkV^YNU lV^ZLmV^[GnV^]m oV^_^ pV^bV = qV^cP rV^dS sV^eLtV^fN!uV^gKثV^hOPV^jCLxV^mM"yV^pMzV^rLŭV^sOPV^uCL}V^M~V^K!V^LkV^H2V^OP~V^CLV^IkV^B V^\S3V^[ V^Ts3V^CL V^D- V^CLV^OP V^vYV^CLV^CLV^Y_V^CLV^CLV^vh. V^i V^CLV^CLV^CLV^Gqo V^FlV^rLV^j3V^w) V^^{V^C34 V^M !V^fL "V^O#V^C33$V^JL%V^J&V^Mp 'V^I'(V^F"V^ CL*V^ J+V^ \V^CL-V^G4V^OPV^CL0V^DJ1V^M_2V^K3V^M4V^JoV^OP6V^ ]V^!CL8V^$LV^&CL:V^(ILV^+CLD5HV^iH5IV^jm? JV^kx|KV^lVLV^nZ4 V^pGV^qDZV^sA"V^uKV^vBoV^wE~V^xGuV^yKV^zH}V^{zJV^|I"dV^O`V^I~V^M V^r V^LV^BnV^RV^u9V^M V^MV^m V^JV^I"V^CLV^EV^DF-V^OPV^CLV^CLV^CLV^CLV^CLV^CLV^CLV^NgV^KLV^PgV^G V^G V^_ > V^CLV^CLV^CLV^CLV^CLV^CLV^CLV^]V^CLV^CLV^CLV^NBV^CLV^DeRV^CLV^CLV^' V^CLV^CLV^CLV^OP$V^Ii%V^I>&V^OyV^CL*V^Jӓ,V^d<5V^OP.V^PV^CLV^CLV^2OPV^4CL3V^6vB4V^8A{6V^;V@7V^<8V^=X9V^@c :V^A\y;V^Ba&gV^ESا?V^FGi@V^GF^AV^HJV^IOPDV^JCEV^KGFV^LGGV^MPS,V^QAV^RF V^S@V^Td V^VUV^WF(V^ZK V^[Mm V^\x V^]x !V^`CL V^bCLV^cCLV^eg/ V^gOPV^hGNV^iLV^~ V^y] V^}V^peV^CLV^CLV^CLV^CLV^CLV^F]V^CטV^NV^y#; V^Iȉ V^}; V^},l V^RW V^qV^GnV^| V^~@ V^y]w V^yV^{ V^y@ V^|& V^JV^z$ V^s] V^`V^]3V^^ V^CLV^CLV^CLV^CLV^CLV^OPV^OPV^OPV^CLV^J8V^H1V^IV^GV^}ffV^}ff}eV^W,}fV^xT MV^&rHZ NV^(EOV^)FZPV^+GQV^.TRV^/SSV^0pA TV^1LFVV^2t XV^\GYV^^H[V^_`-\V^`N^V^cb_V^dC`V^fAaV^guǯbV^iy{cV^jwV^lCLV^mCLV^nCLgV^pq V^rCLV^tCLV^uCLV^vCLmV^yFznV^|~goV^}nx V^CLV^CLV^CLV^CLV^CLV^CLV^CLwV^zxV^JGyV^P4V^OP{V^x{ |V^Z}V^j~V^]V^AuV^E؍V^} ~V^OPV^` ^ |V^CLV^FV^KV^GwV^IuV^CLtV^CLV^p V^w- V^p 5V^H6V^FƌV^CLV^CL:V^FxC;V^DMFV^M >GV^KHV^@ LV^${ MV^%j NV^&BOV^'E*"PV^(EDQV^)G[RV^*FTV^+JDUV^,IVV^-JV^.OPV^0CLYV^2EZV^3EV^5OPV^7CL]V^9C/^V^;aV^CLaV^AS!V^BOPV^DCLdV^FG'V^HOPfV^J^V^KCLhV^ME2iV^OLV^QOPkV^RO[ lV^SKmV^TGnV^Ujq oV^X^pV^ZUff qV^[O\ rV^\RL sV^]LNtV^^N!uV^KV^OPV^CLxV^M>yV^K&zV^LV^OPV^CL}V^L~V^JV^L@V^HV^OP~V^CLV^I{V^B V^\4V^[V^VٚV^CL V^CV^CLV^OP V^uV^CLV^CLV^V V^CLV^CLV^vW V^h V^CLV^CLV^CLV^G* V^aYV^SV^RlV^v V^H V^f=q V^i !V^@33"V^c#V^Gfg$V^JL%V^J&V^ME'V^J+g(V^FV^CL*V^JP+V^`V^CL-V^ G4V^ OPV^CL0V^DG1V^K(?2V^K3V^Mn94V^JE:V^OP6V^]V^CL8V^LVV^CL:V^!IV^$CL V^_ > V^CLV^CLV^CLV^CLV^CLV^CLV^CLV^]V^CLV^CLV^CLV^NCV^CLV^Df;V^CLV^CLV^ O V^CLV^CLV^CLV^OP$V^I%V^I&V^OɖV^CL*V^!J,V^"dV^#OP.V^$PV^&CLV^'CLV^*OPV^,CL3V^.v,4V^0A{6V^3_ٚ7V^4Sٚ8V^5bfg9V^8c :V^9Z3;V^:_4V^=T>?V^>G@V^?FAV^@JV^AOPDV^BCEV^CGdFV^DFGV^EPTV^ID3V^JJ@V^KD\V^MdV V^NUKUV^OE(V^RLLJ V^SN V^|x0 V^}x !V^CL V^CLV^CLV^c V^CLV^~] V^} V^~] V^y@Y V^:V^q/'V^CLV^CLV^CLV^CLV^CLV^FV^CV^HV^x V^H3 V^}T V^|j V^K V^tV^G:V^| z V^~ V^y{ V^yV^{LS V^z % V^|j V^KõV^zr V^q V^`YV^\PV^^ V^CLV^CLV^CLV^CLV^CLV^OPV^OPV^OPV^CLV^JV^H+zV^I V^GmV^gQV^gQ}eV^g}fV^xX MV^Nq- NV^PEFOV^QF=PV^RG9QV^UTRV^WSԁSV^Xp3 TV^YK/VV^Zs XV^\GYV^]HM{[V^^R\V^`Px^V^cd_V^dC`V^fAaV^gtGbV^hvcV^ivqV^lCLV^mCLV^nCLgV^pqxq V^rCLV^sCLV^tCLV^vCLmV^yFnV^|}0oV^}mj V^CLV^CLV^CLV^CLV^CLV^CLV^CLwV^txV^JuyV^OV^OP{V^v |V^Y?}V^gH~V^]V^AV^F1FV^{/9 ~V^OPV^Y |V^CLV^EV^K V^GU6V^HuV^CLtV^CLV^q^5 V^wĜ V^pr 5V^H6V^FĽV^CLV^CL:V^F?;V^BCLaV^ATԙV^BOPV^DCLdV^FGZFOPfZF^ZFCLhZFE iZFLFZFOPkZF OG lZF GmZF BznZF kc oZF]pZFW# qZFOu rZFS\ sZFLtZFNiuZFK7ZFOPZFCLxZFLyZF JMzZF"LqZF#OPZF%CL}ZF(L;~ZF*JϻZF+LMZF,H ZF-OP~ZF/CLZF1I6ZF3B ZF4c9ZF6[ ZF7\4ZF9CL ZF;C{ZFeCLZFhOP ZFkvYZFnCLZFoCLZFqF ZFtCLZFuCLZFwu ZFygU ZF{CLZF}CLZF~CLZFGT ZFGZF~ZF}ZFw3 ZFsZF~\*ZF~!ZFp33 "ZFVٚ#ZFDٚ$ZFJȩ%ZFJܪ&ZFM'ZFJpx(ZFFZFCL*ZFI/+ZF`~MZFCL-ZFGCZFOPZFCL0ZFD1ZFJh2ZFKd13ZFMQ 4ZFJ%gZFOP6ZF]ZFCL8ZFLZFCL:ZFIZFCLZFzJZF,HZF/OPZF2IpJZF3M ZF6r ZF8LZF9BBzZFu9ZF?M ZF@MZFAm ZFBJZFDH|-ZFFCLZFIEZFLDF-ZFNOPZFPCLZFQCLZFRCLZFSCLZFTCLZFUCLZFWCLZFZNgZF[NgZF\XfZF]G ZF^_ > ZF__ > ZFaCLZFbCLZFcCLZFeCLZFfCLZFgCLZFCLZF]ZFCLZFCLZFCLZFNBCZFCLZFD^ZFCLZFCLZF~Ü ZFCLZFCLZFCLZFOP$ZFI(%ZFIY&ZFMܪZFCL*ZFJt,ZFdn6ZFOP.ZFQpZFCLZFCLZFOPZFCL3ZFv4ZFA6ZFh37ZF]s38ZF[9ZFc:ZFhl;ZFa@ZFS?ZFGɓ@ZFFdAZFJicZFOPDZFC{LEZFGJMFZFFGZFPJZFI4ZFOc3ZFIfZFd ZFTZFEzZF M=0 ZF NcI ZF x0 ZF wt !ZFCL ZFCLZFCLZFd ZFCLZF{H ZF~ ZF~ ZFxP ZF@e ZF!qwZF#CLZF$CLZF%CLZF&CLZF'CLZF*FRZF+CZF-MZFXx ZF[I ZF]| ZF^{ ZF_M ZFbrZFeGZFi| z ZFj~ ZFkz ZFlyZFm{ ZFnzT ZFo| ZFqJ,ZFrzcz ZFuw ZFv`fZFw]3ZFx^ ZFyCLZF{CLZF|CLZF}CLZF~CLZFOPZFOPZFOPZFCLZFJZFH!ZFIZFGZF}ZF}}eZFX}fV^y| MZFq NZFElOZFFPZFGBQZFTwRZFSSZFp3 TZFKVZFs[ XZFG+YZFH#[ZF \ZFP^ZFeތ_ZFC`ZFAaZFtbZFx\*cZFvqZFCLZFCLZFCLgZF qA ZF"CLZF#CLZF%CLZF&CLmZF)F~$nZF,~@oZF-m ZF/CLZF0CLZF1CLZF3CLZF4CLZF5CLZF6CLwZF9{RxZF:L#yZF;QLZF=OP{ZF>v m |ZF?Z}ZF@hp~ZFB]ZFEAZFGFNZFJ}: ~ZFLOPZFO\J |ZFQCLZFTEZFVKZFWGsZFZN\uZFCLtZFCLZFru ZFw- ZFp 5ZFG6ZFFĽZFCLZFCL:ZFE;ZFL}zLZFYX ZFGZFE ZFAZFKZFCyZFEeZFGZFKZFG>ZFzJZF HwZF#OZF%I0ZF&M ZF)r ZF+LZF,B8PZF/KgZF1u9ZF2M ZF3MZF5m ZF6JZF7HWZF9CLZF ZFz_ > ZF|CLZF~CLZFCLZFCLZFCLZFCLZFCLZF]ZFCLZFCLZFCLZFN?_ZFCLZFDUZFCLZFCLZF~OI ZFCLZFCLZFCLZFOP$ZFI%ZFI.&ZFK8ZFCL*ZFJF,ZFdKZFOP.ZFQ5ZFCLZFCLZFOPZFCL3ZFu[4ZFA6ZF`&f7ZF_@8ZF[39ZFcP6:ZFbs3;ZFayZFSj{?ZFG@ZFFRAZFKZFOPDZFC`sEZFG4}FZFFϣGZFPZFC3ZFHfZFCZFdq ZFSاZFE6ZFNT ZFO"j ZFx ZFw !ZFCL ZFCLZFCLZF c>k ZFCLZFz? ZF~ ZF},l ZFx:D ZF*ZFqZF@CLZFBCLZFCCLZFDCLZFECLZFHF9ZFICfZFJPZFNxt ZFQI ZFS| ZFT{ ZFUNN ZFXo ZF[FZF^|& ZF`AKZFa{ ZFbyZFcz ZFdz$ ZFe} ZFfJ;ZFgz7 ZFkuj ZFl`fZFm\0ZFn^ ZFoCLZFpCLZFrCLZFsCLZFtCLZFwOPZFxOPZFyOPZFCLZFJZFHpZFIZFGZFh{ZFh{}eZFm}fZFzFR MZFq|} NZFEOZFFPZFGPQZFT RZFSSSZFp$ TZFK VZFs15 XZFGYZFH[ZFߩ^\ZFP"^ZF f<_ZF C`ZFAaZFsbZFucZFwZFCLZFCLZFCLgZFq ZFCLZFCLZFCLZFCLmZF"FnZF%}9oZF&l» ZF(CLZF)CLZF*CLZF+CLZF-CLZF.CLZF/CLwZF2|xZF3K\)yZF4PZF5OP{ZF6vn |ZF8Y}ZF9l~ZF;]ZF>AwZF?F%ZFC|oQ ~ZFmOPZFp[ |ZFrCLZFuEZFvKcZFxGJYZF{MiuZF}CLtZF~CLZFrff ZFvF ZFpx 5ZFG6ZFF6ZFCLZFCL:ZFF(;ZFNGZFMGHZF@H LZFE\) MZF{ NZFIp OZFE?PZFEi4QZFG^RZFFTZFJAdUZFIVZFHZFOPZFCLYZFEzZZFEZFOPZFCL]ZFB=^ZFftZFOPZFCLaZFUZFOPZFCLdZFGZFOPfZF^ZFCLhZFDiZFV`ZFOPkZFO lZFFpmZFEpnZFl oZF]ӁpZFV( qZFP rZFTaH sZFLtZFNuZFKfvZFOPZFCLxZF LXyZF5QyzZF7L-ZF8OPZF:CL}ZF=L~ZF>J~ZF?KZF@HZFAOP~ZFCCLZFEI ZFHC ZFIeZFJbٚZFKhyZFMCL ZFOCZFRCLZFUOP ZFXuZF[CLZF\CLZF_ZZFaCLZFbCLZFdup ZFeg ZFhCLZFiCLZFjCLZFmGQ ZFn\ZFoUYZFUlZFx\ ZFM(ZFT>ZFR!ZFCg"ZFrL#ZF_ٚ$ZFJL%ZFJ&ZFM'ZFJ(ZFAZFCL*ZFw$+ZF\~ZFCL-ZFGJYZFOPZFCL0ZFC1ZFH2ZFK3ZFMk4ZFIظZFOP6ZF]ZFCL8ZFL ZFCL:ZFI{ZFCLZF CLZF OPEZF DHZF }?IZF o JZF ekKZF VuLLZF Yuc ZF GZF EZZF BFZF KZF CyZF EZF GTZF KZF G-ZF zJZF HaZF OZF I2ZF !M ZF %r ZF 'LZF (BEZF +QIZF -v;$ZF .M ZF /MJZF 0lº ZF 1JgZF 2HPZF 4CLZF `EZF cDF-ZF eOPZF gCLZF hCLZF iCLZF jCLZF kCLZF lCLZF mCLZF pQiZF rFZF sPgZF tG ZF u_ > ZF v_ > ZF xCLZF yCLZF zCLZF {CLZF }CLZF ~CLZF CLZF ]ZF CLZF CLZF CLZF NH ZF CLZF DT ZF CLZF CLZF }: ZF CLZF CLZF CLZF OP$ZF I%ZF I&ZF JYZF CL*ZF J ,ZF d}ZF OP.ZF QZF CLZF CLZF OPZF CL3ZF uF4ZF A{6ZF U7ZF I338ZF W&g9ZF c:ZF b4;ZF aZF Sا?ZF G3@ZF FAZF NCZF OPDZF CEZF GFZF FGZF ONZF BVfZF FZF AgZF d ZF S8ZF E+EZF O? ZF Qn ZF x0 ZF w !ZF CL ZF (CLZF )CLZF +a ZF /CLZF 1z ZF 2 ZF 3},l ZF 4x+ ZF 5s&ZF 7reZF 9CLZF ;CLZF CLZF AEcZF BCFfZF CJZF Fx+ ZF JH] ZF L|j ZF My ZF NK7< ZF QrZF TF ZF W| ZF XCuZF Z{H ZF [yZF \z ZF ]zu ZF ^}X ZF _JZF `z ZF wD ZF a3ZF \ZF ^ZF CLZF CLZF CLZF CLZF CLZF OPZF OPZF OPZF CLZF JZF HZF HZF GtZF {ZF {}eZF 5TR}fZFz MZF r NZF E$OZF GGPZF GzQZF T}RZF SpSZF p TZF K VZF rۢ XZF GYZF H[ZF { \ZF O\r^ZF eC_ZF D`ZF AaZF ubZF xcZF zZF CLZF CLZF CLgZF qX ZF CLZF CLZF CLZF CLmZF FnZF }oZF l/ ZF CLZF CLZF CLZF !CLZF "CLZF $CLZF %CLwZF (~=qxZF )N>yZF *PZF +OP{ZF Tv] |ZF VZK}ZF Wj6Y~ZF Y]ZF \AZF ]FcZF `}R ~ZF cOPZF f\(r |ZF hCLZF kEZF lKbZF nGeZF qGuZF sCLtZF tCLZF wr ZF xxV ZF yp 5ZF {Gv6ZF |F~ZF ~CLZF CL:ZF Fq;ZF M5GZF apHZF @ LZF E MZF zH NZF I34 OZF EJPZF Eq-QZF Gz'RZF FTZF JUZF H7VZF HZF OPZF CLYZF EZZF EZF OPZF CL]ZF B^ZF fyZF OPZF CLaZF U_ZF OPZF CLdZF GZF OPfZF ^ZF CLhZF DiZF UZF OPkZF O lZF K{mZF HnZF lL oZF ]ZpZF R qZF Mp rZF P sZF LtZF NuZF "KEZF #OPZF %CLxZF (L-yZF +NzZF -LZF .OPZF 0CL}ZF 3L~ZF 4JXZF 5KZF 6H<ZF 7OP~ZF 9CLZF ;HؒZF >BC ZF ?TZF @PZF AZZF CCL ZF ECZF HCLZF KOP ZF NsZF QCLZF RCLZF UNqZF WCLZF CLZF v- ZF iݘ ZF CLZF CLZF CLZF G ZF MZF ELZF DZF yJ" ZF M{ZF U{ZF S!ZF Ks3"ZF vY#ZF Zs3$ZF J%ZF J&ZF McH'ZF J(ZF FaZF CL*ZF d+ZF a, ZF CL-ZF GQZF OPZF CL0ZF Cw1ZF P2ZF JN3ZF L>4ZF IZF OP6ZF ]ZF CL8ZF LQZZF CL:ZF I/ZF CL ZF l_ > ZF nCLZF oCLZF qCLZF rCLZF sCLZF tCLZF uCLZF v]ZF wCLZF xCLZF zCLZF {NMZF }CLZF D^ZF CLZF CLZF }R ZF CLZF CLZF CLZF OP$ZF I[%ZF Iu&ZF H!ZF CL*ZF I,ZF dZZF OP.ZF QZF CLZF CLZF OPZF CL3ZF u4ZF A6ZF [Y7ZF [f8ZF W&g9ZF c:ZF ay;ZF elZF SU?ZF G3@ZF FAZF PZF OPDZF CٞEZF G FZF FGZF OAZF D#3ZF I4ZFCZFd ZFRuZFE0ZFO ZFQ ZFx ZFwS !ZFCL ZFCLZF CLZF"d ZF%CLZF'z$ ZF( ZF)} ZF*xt ZF,ZF.rxZF0CLZF1CLZF2CLZF3CLZF4CLZF7EsZF9C,BZF:LZF=x ZF@J{ ZFB|} ZFCxP ZFDR ZFGpZFKF?ZFv|5! ZFwF/ZFx}u% ZFyyZFzz ZF{{ ZF|} ZF~KUZFy ZFyH ZF`s3ZF]fZF^ ZFCLZFCLZFCLZFCLZFCLZFOPZFOPZFOPZFCLZFJZFH ZFHZFGZFhZFh}eZF,\8}fZF w{My MZFq NZFEOZFGPZFGjQZFTzRZFSIsSZFpY TZFKVZFs XZFGYZFGۘ[ZF{\ZFO9^ZFa_ZFD`ZFA aZFu.bZFx=qcZFwZFCLZFCLZFCLgZFpԀ ZF CLZF CLZF CLZFCLmZFFnZF<~S4oZF=l ZF?CLZF@CLZFACLZFCCLZFDCLZFECLZFFCLwZFI|pxZFJNyZFKNǮZFMOP{ZFNvߓ |ZFOX}ZFPh~ZFR]ZFUAZFVEZZFZ} ~ZF\OPZF_]3 |ZFaCLZFdEZFfKrZFgGQZFjLLuZFlCLtZFmCLZFpr ZFqwhs ZFrq% 5ZFtGv6ZFuFZFwCLZFCL:ZFF;ZFJGZFP(HZF@ LZFDH MZFy NZFH OZFEUPZFE{SQZFGquRZFF/TZFIUZFHVZFHHZFOPZFCLYZFDZZZFFRZFOPZFCL]ZFC ^ZFeZFOPZFCLaZFU@ZFOPZFCLdZFGoZFOPfZF^ZFCLhZF DViZF TZF OPkZF N$ lZFL mZFInZFjR oZF^\pZFS qZFN\ rZFP\ sZFLtZFNGuZFKzZFOPZFCLxZF!LyZF$L|zZF&KZF'OPZF)CL}ZF,LsP~ZF-JEuZF.KSZF/HZF0OP~ZF2CLZF4H$ZF7Bx ZF8dlZF9[ZF:^33ZFCZFiCLZFlOP ZFotBgZFrCLZFsCLZFvYZFxCLZFyCLZF{vI ZF|k ZFCLZFCLZFCLZFG ZFMZFEC4ZFEZFy ZFO#ZFV4ZFT!ZFff "ZFKg#ZFB$ZFJ%ZFK&ZFM'ZFK4(ZFFN=ZFCL*ZF_+ZFazZZFCL-ZFGZFOPZFCL0ZFCw1ZFK"2ZFJ3ZFL4ZFIKZFOP6ZF]ZFCL8ZFKZZFCL:ZFIZFCLZFGZFKZF0G[ZF2zJZF3H?ZF6OZF8IZF9LZFLZF?AZFBLvZFDu9ZFEM ZFFM*ZFHlº ZFIJZFJGZFLCLZFOE}MZFRDF-ZFTOPZFVCLZFWCLZFXCLZFYCLZF[CLZF\CLZF]CLZF`PS3ZFaFZFbPZFcG ZFdG ZFe_ > ZFgCLZFiCLZFjCLZFkCLZFCLZFCLZFCLZF]ZFCLZFCLZFCLZFNR%ZFCLZFDcZFCLZFCLZF~ ZFCLZFCLZFCLZFOP$ZFI%ZFIu&ZFI5ZFCL*ZFIϥ,ZFdZZFOP.ZFQZFCLZFCLZFOPZFCL3ZFu4ZFA6ZFff7ZFj338ZF`s49ZFcЃ:ZFal;ZF`,ZFS0?ZFGv@ZFFy^AZFQsZFOPDZFD EZFFFZFFeGZFOZFC3ZFHZF C3ZF d ZF RM:ZF E(ZFO ZFRv ZFx ZFw !ZFCL ZFCLZFCLZFb ZFCLZF zcz ZF! ZF"|ƚ ZF#x# ZF%A ZF'rrZF)CLZF*CLZF+CLZF,CLZF-CLZF0EZF2CZF3ONZF^wS ZFaIww ZFc|& ZFdw% ZFeLx ZFipZFlFZFo| ZFpG0ZFq~; ZFryZFszr ZFt{= ZFv}~ ZFwJZFxy ZF{|ٚ ZF|`fZF}\@ZF~^ ZFCLZFCLZFCLZFCLZFCLZFOPZFOPZFOPZFCLZFJoZFGnZFHIZFG5ZF}3ZF}3}eZF%X}fZFp{< MZFq NZFEOZFGPZFGt[QZFTzRZFS>SZFo TZFLVZFu XZFGYZFGP[ZF{\ZFOa^ZFbF_ZFD9`ZFAZ#aZFs\bZFvqcZFvqZFCLZFCLZF$CLgZF&p ZF(CLZF*CLZF+CLZF,CLmZF/FanZF2}oZF3ln ZF5CLZF7CLZF8CLZF9CLZF:CLZF;CLZFyZFBR{ZFCOP{ZFDx |ZFEX}ZFFg~ZFH]ZFKAZFMEZFP}; ~ZFROPZFU[jU |ZFWCLZF[EZF\KyAZF]GU6ZFP1uZFCLtZFCLZFr ZFxE ZFq1' 5ZFG6ZFFfZFCLZFCL:ZFFs;ZFGLZF?MvZF@hV ZFAJāZFCG+ZFECLZFHEgZFKDF-ZFMOPZFOCLZFPCLZFQCLZFRCLZFSCLZF|CLZF~CLZFNgZFMZFPgZFG ZF_ > ZF_ > ZFCLZFCLZFCLZFCLZFCLZFCLZFCLZF]ZFCLZFCLZFCLZFNHZFCLZFD]-ZFCLZFCLZFBZFCLZFCLZFCLZFOP$ZFI8%ZFIu&ZFP\ZFCL*ZFI,ZFdLZFOP.ZFQNZFCLZFCLZFOPZFCL3ZFuE/4ZFA6ZFT7ZFO 8ZF^9ZFcT:ZFd;ZF`ZFR?ZFGi4@ZFFjAZFQZFOPDZFCaEZFFFZFFGZFOZFAZFFfZFAfZFdc ZFQZFE ZF O3 ZF Ry ZF x ZF w !ZFCL ZFCLZFCLZFb(\ ZFCLZFzF^ ZF@ZF| ZFDx# ZFF8ZFGsZFJCLZFKCLZFLCLZFMCLZFNCLZFQEZFRBZFTJZZFWw3 ZFZI ZF\{ ZF]vW ZF^Mu. ZFapZFdF ZFh}T ZFiH ZFj@ZFkyZFlzT ZFm{w ZFn~24 ZFpKZFty@ ZFwv ZFx`ZFy\ZFz^ ZF{CLZF}CLZF~CLZFCLZFCLZFOPZFOPZFOPZFCLZFJFZFGFZFHZFGZFh33ZFh33}eZFFZ5,}fZFz( MZFq3 NZFEnOZFG";PZFGXQZFTrlRZF S SZF o+ TZFL"VZFtF XZFG؛YZFGe[ZFO3\ZFOX.^ZFf_ZFDU`ZFAZ#aZFvBbZFwW cZFx\ZF!CLZF"CLZF#CLgZF%pu ZF'CLZF(CLZF)CLZF+CLmZF.FnZF1~4oZF2lY ZF4CLZF5CLZF6CLZF8CLZF9CLZF:CLZF;CLwZF>} >xZF?K\)yZF@PHZFBOP{ZFCv |ZFDY[}ZFEk1W~ZFG]oAoEuo},l ~o OPo ] |oCLoE oKpoG9oFuoCLtoCLorX ow op 5oG6o Ffo"CLo#CL:o%F;o&E9<o(z6?o*Coo+OPo-CLBo/F>KCo1|Do4~{` Eo6IFo7PHGo8Q Ho9@ Lo:E Mo;{\* NodI OoeEaPofE-QogGRohFToiI^UojHWlVokH/olOPonCLYopDnQZoqF osOPouCL]owB^oyd6ozOPo|CLaoUoOPoCLdoG0oOPfo^oCLhoDioR%oOPkoN loC moA nom oo^HpoYQ qoP roU soLtoN uoKdKoOPoCLxoLyoRRzoKroOPoCL}oLDX~oJ'soK\ oHoOP~oCLoHoC o]oTgoW&goCL oDoCLoOP ojoCLoCLoWoCLoOPov- oj& o-CLo.CLo/CLo2G o3Z4o4Q|o5Q0o8z o:QRo;Y(oo#o?E$o@J%oAK?&oBMn9'oCKz (oEE9oGCL*oIn+oL]ɂoOCL-oQGoSOPoUCL0oWCpi1oXI2oZJ3o[L4o\Io]OP6o_]oaCL8odKniofCL:oIoCL<oI(-=oKзoOPoCL@oSJAoHBoI[oCLoOPEoC%HoASLIomR Jo_`KoVLoY oGxoE9[oBwoKoCoFN=oGoKoGozGoH@oOpoI$oLor oLoBVoQQ%ouEoLoMoh oJoGXoCLoEDoDF-oOPoCLoCLo CLo CLo CLo CLo CLoNgoP#3oY,oG o_ > o_ > oCLoCLoCLoCLoCLoCLoCLo ]o!CLo"CLo#CLo%NJ4o'CLo)DS8o+CLoZCLo\C6]o_CLo`CLoaCLodOP$oeI%ofI.&ohNokCL*onI,oodopOP.oqRosCLotCLovOPoxCL3o{u6O4o}A6oU7o]L8o^339oc:o_Fg;o`4<o`YoOP>oSK?oGW@oFXAoS9oOPDoCEoF.FoFwGoOAoC3oHoC3od8 oQ|oDoPHc oS& ox ow !oCL oCLoCLodTj oCLoy{ o o|& ow oܾfos/qoCLoCLoCLoCLoCLoEvToBռoPljow oIȉ o{ ou' oQ oo3o"F-o&}u% o'Io(@`2o)yo*zF^ o+{ o,~l^ o-Jo/yz o2v o3`o4\Io5^ o6CLo8CLo9CLo:CLo;CLo>OPo?OPoAOPoCCLoFJoGGoHHoIG oMg oPg }eoW3}fo{ Moq NoEOoFPoGYQoTv;RoRPSoo۔ ToK:%Vor XoG YoG[o4\oO^oc/_oDU`oAZ#aovbovpcovqoCLoCLoCLgop oCLoCLoCLoCLmoFxno}ook oCLoCLoCLoCLoCLoCLoCLwozHxoL#yoOpoOP{ot |oZ}$}ok~o]oAuoEo}I ~o OPo ZR |oCLoEϴoK0>oGNoJ0uoCLtoCLoso ox op 5o!G56o"FoLCLoMCL:oOF>K;oPD <oR{?oSCOoTOPoVCLBoXF/CoZzyDo]~d Eo_L34Fo`QzGoaJHHob@ LodE Moe{ NofJ( OogEfNPohE@QoiGxRojF7TokIR/UolH0aVomHonOPopCLYorD4KZosF7 ouOPowCL]oyCL!^o{cJo|OPo~CLaoU/EoOPoCLdoGoOPfo^oCLhoDSioQcoOPkoN loFmoCnoi oo^&ppoY qoU\ roYq soLttoN >uoKoOPoCLxoL~yoQzoKoOPoCL}oL-8~oJ oK0WoHoOP~oCLoHkoC od34o[33o]&foCL oCoCLoOP orݖoCLo CLo"Q3lo$CLo'OPo*uD o+gm o.CLo/CLo0CLo3GS o4Zo5Qo6Qɚo9{, o;RpoX{!o?j33 "o@Y@#oAC$oBJ%oCJL&oDMғ'oEKD(oFF oHCL*oK_%+oN`-oyCL-o{Gxo}OPoCL0oCpi1oH2oJ+3oL4oH oOP6o]oCL8oKl>oCL:oIoCL<oIZ=oKkoOPoCL@oS!AoHs3BoIUoCLoOPEoCHo}gIok Jo^C,KoVLoY oGxoE9[oBoKoCoFN=oGoKoGIo{oG'oO?oIoLooAoLoBVoLvouGoM oMoh oJoG#oCLoE&oDF-oOPoCLo CLo CLo CLo CLoCLoCLoNgoG6goPgoG o_ > o_ > oBCLoCCLoDCLoECLoFCLoGCLoHCLoI]oJCLoLCLoMCLoNNEoPCLoSDT oUCLoVOPoYBEo\CLo]CLo^CLoaOP$obIľ%ocI&oeKx`ohCL*okIi,oldYomOP.onRRopCLoqCLotOPouCL3oxu4ozA6oh@7ok48og49oc:o_s3;o_Y<o]4oOP>oS1?oGG@oFAAoS"oOPDoCEoFFoFgRGoORoDfoHfoC3odZ oQoD(oP oS oxt ow !oCL oCLoCLoat oCLoy1 o@C o{Z owl oُMosDoCLoCLoCLoCLo CLo Ebqo B5oIrow oJ ozu ot oK& oto Fjo#}; o$Io%@o&yo'z7 o({/ o)~ o,L*o/y]w o2x"" o3`o4\Io5^ o6CLo8CLo9CLo:CLo;CLo>OPo?OPoAOPoCCLonIqooG݄opH|orG>ouT޸oxT޸}eoTB}fo{ Moq_] NoEOoFPoGxQoTrlRoR|Soo ToJVoq XoGYoGo[o\oQ{^oeC_oDr`oAaovaHbow(covoCLoCLoCLgopW oCLoCLoCLoCLmoFno}ooj#A oCLoCLoCLoCLoCLoCLoCLwoyxoLByoRBoOP{or |o\}oj~o]oAoEho|` ~o OPo4Zc |o6CLo9Eo:K oHob@ LodE Moe|Q NofJff OogEptPohELQoiGvRojFTokI%UolHVomGonOPoCLYoD;ZoEoOPoCL]oB=^ob2voOPoCLaoToOPoCLdoG̶oOPfo^oCLhoDuioPoOPkoN loCmoA=qnon oo^HpoW qoQ roV soLttoNuoKoOPoCLxoLayoNzoKoOPoCL}o L~o IDo Ko Ho OP~o CLo HGo C o co Zo ]o CL o Co CLo OP o to CLo CLo #Nso %CLo 'OPo *s8 o +b o .CLo /CLo 1CLo 3G[ o 4jo 6ao 7byo b{ o cR{o eXo fV!o gBf"o hoL#o iYٙ$o jJ%o kJ(&o lM'o mK(o n@o pCL*o ssf+o v]3o yCL-o {Go }OPo CL0o C 1o QM2o J3o L4o Hھo OP6o ]o CL8o KMo CL:o Io CL<o HH=o Ko OPo CL@o S "Ao HkBo IOo CLo OPEo C*Ho H]Io Z Jo ]T]Ko V@BLo ZQZ o Go EGo Co Kco C:o EVo Go Ko G(o zJo Go O/o Inxo Lo oAo Lo B3o L%o vo M o Mo h o J˽o G o CLo )E^o *E*o +OPo -CLo .CLo 0CLo 1CLo 2CLo 3CLo 4CLo 7R33o 8G6go 9Ngo :G o <_ > o =_ > o ?CLo @CLo ACLo BCLo CCLo DCLo ECLo G]o HCLo ICLo JCLo KNMo MCLo PDOo RCLo SCLo VBEo YCLo ZCLo [CLo ^OP$o _IH%o `I&o cHo CL*o II?,o dآo OP.o Rwo CLo CLo OPo CL3o u4o A6o b@7o K8o ]9o cj:o _ٙ;o `@<o _S3o OP>o S\?o G4}@o F1Ao Sx*o OPDo CDEo FdFo FWGo Oo DIo Io Co d o P[o D Fo R-E o Tu o xWc o wna !o CL o CLo CLo b(\ o CLo w o  o yl o t o @lo sf o CLo CLo CLo CLo CLo ELo Bo Lzo wna o Ij o z o t>u o O? o po FR\o "}h o #Jwo $@=o %yo &z7 o '{ o (~ o +L o Vy1 o Yww o Zao [\Ffo \^ o ]CLo _CLo `CLo aCLo bCLo eOPo fOPo hOPo jCLo mIgo nG-o oHo qGo th(o wh(}eo V2}foE|4X Mo r+< No EOo F#Po GQo TrlRo RSo of To IVo oJ Xo GYo Gf[o ʫ?\o S3^o cU_o D#`o AZ#ao vbo x\*co xo CLo CLo CLgo p o CLo CLo CLo CLmo Fyno }oo h o CLo CLo CLo CLo CLo CLo CLwo zxo Myo QLo OP{o !q |o #\}o $l\?~o &]o )Ao *Eo -|oQ ~o 0OPo 3Z D |o 5CLo 8Eoo 9Jo ;G(Oo >Kuo @CLto ACLo Ds o Eu o Fpc 5o HG 6o IFAo KCLo LCL:o NE;o ONr<o P/&?o QCL!o SOPo UCLBo WECo vMDo ~ Eo L34Fo TGo PHo @h Lo E Mo { No J Oo EtPo EQo GrRo FBTo H4Uo GgVo GU6o OPo CLYo DZo Eo OPo CL]o BN^o `o OPo CLao Sݱo OPo CLdo Go OPfo ^o CLho D4Kio Oo OPko Nk lo H{mo Eno j= oo ]Zpo Z{ qo T\ ro W( so Lto N3uo J+o OPo CLxo L@yo L"zo K|&o OPo CL}o Kr~o Io Jo HYo OP~o CLo Ho C o dlo Z9o \o CL o Co CLo OP o w^o CLo CLo JMo LCLo OOPo Rsc o Sa2 o VCLo WCLo XCLo [Hr o \[Ffo ]R3o ^Ro a{ o cTo d\8Ro eZf!o f} "o gWf#o hE$o iJ%o jIz&o kM'o lKI(o mDp~o oCL*o rn+o uZ`no xCL-o zGo |OPo ~CL0o BM1o L2o J3o L<4o HӀo OP6o ]o CL8o K9o CL:o Ibo CL<o H=o Ko OPo CL@o RhAo H]cBo IBo CLo OPEo BHo FIo f( Jo Y!Ko VLo Z` o Go EGo Bwo Kco C>o Eo Gxo Ko G(o zbo Ho OoIloLooAoLoB3oRQ;ouoM o Mo!h o"Jo#G|o%CLo(Eyo+DF-o-OPo0CLo1CLo2CLo3CLo4CLo5CLo6CLo9O4o:Eo_ > o?_ > oACLoBCLoCCLoDCLoECLoFCLoHCLoI]oJCLoKCLotCLovNH owCLozD\Eo|CLo}CLoB)oCLoCLoCLoOP$oI%oI&oJaoCL*oI$,odoOP.oRboCLoCLoOPoCL3ot4oA6ocf7oTf8oYٙ9ocS:o^@;o`Fg<o_ oOP>oSm]?oG!h@oF!OAoT5oOPDoD4KEoFFoFC GoOoB9oGfgoB0ocl oO oCToSpi oT ox+ owB !oCL oCLoCLobTF oCLov( oK ox0 otM o]ossoCLoCLoCLoCLoCLo E5Bo BZQo NHowB oJ3 o=z o>s o?P  oBnPoEF7$oH} oJIoKA+oLyoMz oN{ oO O oQLjoTy oXx oYa oZ\Yo[^ o\CLo]CLo_CLo`CLoaCLodOPoeOPofOPoiCLolI~omGonH ooG^osgovg}eoS}fo D|҆ MoqN NoEOoFPoGQoTrlRoRSoo ToIlVoo XoGoYoGj[oɫ\oQ^oekP_oD#`oAZ#aouǯbow4cox oCLoCLoCLgopg0 oCLoCLoCLoCLmo Funo}ɚooh oCLoCLoCLoCLoCLoCLoCLwoqxoK yoQoOP{o"p |o$[}o&o ~o(]o+Ao,Eo/}u% ~o1OPo5X[ |o7CLo:E"o;Jo okCLolCLomCLonCLooCLopCLoqCLos]otCLouCLovCLowNL^oyCLo|DYo~CLoOPoC>oCLoCLoCLoOP$oI %oIY&oP,oCL*oH,oeoOP.oRCoCLoCLoOPoCL3ot4oAu6oO7oPf8oNg9ocH:oc ;ob@<ogYoOP>oSzS?oG @oF<AoToOPDoD)iEoFFoF7DGoOoNoS3oLoc oOuoCD9oS oU( ox owl !oCL oCLoCLo_ oCLo%vY o&K o(wt o)t' o+C2o,sro.CLo/CLo0CLo1CLo3CLo6E!ao7B*o8RVo;wl o>Jf o@y oAs oCKn oFnfoIFoL}R oMIΘoNAloOyoQz % oR| oS)b oUKnoXxo o[yb" o\a,o]\Io_^ oCLoCLoCLoCLoCLoOPoOPoOPoCLoIUoGoHRoGoh33oh33}eo+XO}fom} Mort NoE[OoF(PoF2QoTv;RoRSoof ToIDVonJ* XoGoYoG#[o\oS&f^oeL_oD*`oAPgaou\*boxcox>oCLoCLoCLgop( oCLo CLo CLo CLmoFmno~goog oCLoCLoCLoCLoCLoCLoCLwovxo Lyo"Oo#OP{o&p |oP[}oQm7~oS]oWAWoXEo[}X ~o]OPo`Y>k |obCLofE"ogJ>ohG!okLuomCLtooCLoqtɺ orv osp( 5ouGӍ6owFLoyCLozCL:o|FT;o}M<o~AN?oCoOPoCLBoECoDDo~d EoJGFoQzGoUHo@ LoF{ Mo|Q NoJff OoEMPoEQoGRoFVToHUoGuVoG1oOPoCLYoDZoEoOPoCL]oA^o`~oOPoCLaoRܘoOPoCLdoFoOPfo^oCLhoCioMwoOPkoN/ loDpmoB33noj}q oo^!poZq qoSaH roW soL#toMVuo!Jo"OPo$CLxo'Kyo*Szo+K o-OPo/CL}o2Kt2~o3IVjo4JWo5Hno6OP~o8CLo:Guo=C' o>w,o?ro@ioBCL oDC=oGCLoJOP oM|IoPCLoQCLo|Lo~CLoOPor]\ o_ oCLoCLoCLoH o[YoRoRo|` oWo^Bo\!ooL "oQ#oB&f$oJy%oI%&oMѩ'oL(oBoCL*o[H+o\oCL-oGoOPoCL0oBɀ1oJ)2oJ3oLlA4oHȥoOP6o]oCL8oKoCL:oI oCL<oGx=oK82oOPoCL@oRAoGBoImoCLoOPEoAHo@Ioo JoL<KoVr.LoZ}W o Goo EV[o CL!o KcoDoEToGoKoGv ozJoHoOPoIFoDLoGoAoIK6oJ@oMLvoPu[poQM oRMoSe oTJۥoUGFoWCLoZEvo]DF-o_OPoaCLocCLodCLoeCLofCLogCLohCLokPolG6gomPyooG opG oq_ > osCLotCLouCLovCLowCLoxCLoyCLo{]o|CLo}CLo~CLoNI{oCLoDPoCLoCLoCScoCLoCLoCLoOP$oI%oI&oMQoCL*oHچ,od~oOP.oRoCLoCLoOPoCL3otU4oAu6oP7oJg8oN9ocH:o\f;odg<o^loOP>oS ?oF@oFAo TB|o OPDoD-EoF,FoF)GoOoYo^oV3oc oNoBaoTu oUFD ow o!v( !o$CL o%CLo&CLo(a o+CLo-u o. o0wl o1r o2uo4t4[o6CLo7CLo8CLo:CLo;CLo>EPo?Ao@KoCv( oFJ Wyz Wr WPT WrٚW EcW }h W I/WAWyWy W|5! WFv WLmWx0 WuU Wa W\FfW^W CLW!CLW"CLW#CLW%CLW(OPW)OPW*OPW,CLW0IHWW1GTW2HW3GW5}LW6}L}eo2U}foq~ a MWyrez NW{ErOW|FPW~FQWTzRWRSWof TWHcVWme XWGYWG[W>;\WR.^Wc1_WD1`WA<aWubWycWvWCLWCLWCLgWp w WCLWCLWCLWCLmWFiUnW}goWf WCLWCLWCLWCLWCLWCLWCLwW{\*xWLyWQWOP{Wo |W[}Wnn~W]WA;WEW|& ~WOPWWЊ |WCLWEWJgWG&WP8uWCLtW,CLW.t W/u W0p > 5W3G6W4FW6CLW7CL:W9FL;W:J7<W;B/H?WOPW@CLBWBEZCWCBDWD~j EWFOQFWGQ\)GWHa34HWI@ LWJE MWK{ NWLJ( OWUEPWVEQWWG9RWXF TWYHsUWZGiVW[FAW\OPW^CLYW`E2ZWaEWcOPWeCL]WgAW3^WdZWOPWCLaWSWOPWCLdWF[GWOPfW^WCLhWC~iWLhWOPkWN. lWEmWD =nWj oW]pWY qWUQ rWX sWLtWMuWJ85WOPWCLxWKyWREzWJWOPWCL}WK?m~WI0CWJWHIWOP~WCLWGgRWC WuWpYWglWCL WCDWCLWOP W }W CLWCLWKhWCLWOPWrk W_R WCLWCLWCLW"H W#XYW$O<W%N3W(| W*ZW+b(W,_!W-j33 "W.Ng#W/\$WXJx%WYH"&WZMO'W[Lu(W\BdW^CL*WaW1+WdZWgCL-WiG'WkOPWmCL0WoB1WpH2WrJ3WsL[4WtHXWuOP6Ww]WxCL8W{KW}CL:WI WCL<WG=WKFWOPWCL@WRAWGعBWHWCLWOPEWAHW}IIWT} JW]?KWVLWZ}W WGWEV[WC WKUWCWEVWGxWKWGv W{WGoWOWIWLWoAWK"W@ WSWu[pWM WMWeU WJۥWG~WCLWEZWDF-WOPWCLW CLW!CLW"CLW#CLW$CLW%CLW(Q3W)F3W+QW,G W-G W._ > W0CLW1CLW2CLW3CLW4CLW6CLW7CLW8]W9CLW:CLW;CLW=NHW?CLWADLWCCLWDCLWFBWICLWJCLWKCLWMOP$WNIw%WOI&WRJSWUCL*WXHچ,WY^rWZOP.W[R\WCLWCLWOPWCL3Ws 4WAu6WN7WG@8WH&g9Wc=W:WXٚ;W^l<W\gWOP>WR?WF@WFsAWTXWOPDWCEWFsFWFpGWO.GWQ WUWNWd# WNDmWBWT/P WUFD Ww Wv !WCL WCLWCLWb WCLWu W Wv Ws T WWt6{WCLWCLWCLWCLWCLWEWAxWIWvt WI" Wy1 Wq WQN W t W ETW~ WIiNWAWyWy{ W|C Wr WLWxe WxL W a W!\IW"^ W#CLWMCLWNCLWOCLWPCLWSOPWTOPWVOPWXCLW[I>[W\GW]H@W_GWWbgHWegH}eW]}fW.~k MWr NWEhOWFTPWFQWTrlRWRoSWo7 TWHcVWmW XWGs[YWF[W<\WR ^Wc_WD1`WAFaWtubWvcWuWCLWCLWCLgWoj WCLWCLWCLWCLmWFiUnW~oWf WCLWCLWCLWCLWCLWCLWCLwWspxWJyWOWOP{Wo |W[}WlΩ~W]WAWEXW}~ ~W!OPW$Yx |W&CLW)E+W*IW,G-aW-FvuW/CLtW0CLW3w1 W4v W5p5@ 5W7G6W8F&W:CLW;CL:W=FT;W>G<W?C?W@BWBOPWDCLBWFEsZCWHA'DWK~ EWMJ(FWNT=qGWOWHWx@6 LWzE MW{{ NW|Jff OW}EPW~E$QWGRWFTWHGUWGCVWFYWOPWCLYWEzZWEWOPWCL]WAl^WeWOPWCLaWTWOPWCLdWF!OWOPfW^WCLhWCL!iWV(WOPkWN lWC mWAznWl\ oW^5pW_Q qWU rWYH sWLûtWMMuWI}WOPWCLxWKyWOzWJZWOPWCL}WK ~WIJWJZsWH*WOP~WCLWGWCi2 WuWp WgYWCL WBWCLWOP W }W CLWCLWJZWCLWOPW@q WA_9 WDCLWECLWGCLWIG WJT3WLK3WMKWP} WQZRWSaWT_{!WUg33 "WVIf#WW@$WXJl%WYH$&WZM'W[L(W\A>W^CL*WaTl+WdbPWgCL-WiHWkOPWmCL0WoBrd1WpI2WrJy3WsLI4WtHWuOP6Ww]WxCL8W{K@WCL:WIwWCL<WGgR=WK WOPWCL@WRrAWGBWHWCLWOPEWAOHWGIWb JWfBKWVLWZ WGWEdWC=WKUWDWEWGxWKWFGWzJWGoWOWI oWLWoAWKTW@ W P>W u[pWM WM*Wfn WJWHWCLWEWDF-WOPWCLWCLW!CLW"CLW#CLW$CLW%CLW(PW)G6gW*QɚW+G W-G W._ > W0CLW1CLW2CLW3CLW4CLW5CLW6CLW8]W9CLW:CLW;CLWCLWADUWCCLWlCLWnBNWpCLWqCLWrCLWuOP$WvI_%WwI&WzGW}CL*WH,W^qWOP.WRWCLWCLWOPWCL3Ws4WAu6WP7WH38WK9Wc9:W[L;Waff<W^ WOP>WS ?WF@WE6AWT܄WOPDWCEWFaFWF GWOHBWQWVWOWd]/ WMWBWTj WV"q Ww WvY !WCL WCLWCLW_d WCLWtY WFv Wv' W@KWCx+ WGy; WHa WI\s3WJ^ WKCLWLCLWMCLWOCLWPCLWSOPWTOPWUOPWXCLW[I*cW\GW]HچW^GWagWeg}eWhZ}fW3@MMWrez NWE^OWFEPWF.ZQWTjRWRoSWo TWH)VWl XWGKYWFۘ[Wg?\WR8.^Wdu_WD8`WAFaWu bWxcWw8RWCLWCLWCLgWoښ WCLWCLWCLWCLmWFlnW}oWe, W CLW CLW CLW CLW CLW CLW CLwW {xW NRyW RQW OP{W m33 |W \.}W n\~W ]W AW E]W }: ~W OPW $YM |W &CLW )E+W *IW +G0FW /JYuW 1CLtW 2CLW 4w W 5u W 7oƨ 5W aG6W bFpW dCLW eCL:W gF;W hE0<W iF?W jBEW lOPW nCLBW pEOCW r@vDW u~{` EW wJ(FW xUpGW yKHW z@ LW {pQ MW |Hz NW }lR OW EPW E7QW GwRW F/TW H8UW G"VW FW OPW CLYW EzZW EdW OPW CL]W A^W eW OPW CLaW TW OPW CLdW EW OPfW ^W CLhW CiW VCW OPkW Mȇ lW EmW C nW n8R oW ^-pW X qW Ru rW TǮ sW LCtW MuW IW OPW CLxW KfyW M&zW JtW OPW CL}W J~W H&W J7W H W OP~W CLW (FݱW *C]? W ,wW -qW .hٙW 0CL W 2BɀW 5CLW 7OP W :|ceW =CLW >CLW @KFW CCLW FOPW IqV W J^4 W MCLW NCLW OCLW RH W SS@W TK0W UJ4W X~ W ZZW [b(W \`R!W ]I33"W ^M#W _A$W aJ]c%W bHv&W cMn9'W L (W A8W CL*W Qm+W \sW CL-W G̶W OPW CL0W BN1W M2W JZ3W L64W HW OP6W ]W CL8W KxW CL:W HHW CL<W Gg=W JW OPW CL@W RgAW GBW HyW CLW OPEW @HW E&&IW jQ JW mgKW VLW ZO W GW EdW C/W KUW DGW EW GW KW FJW zJW GoW O`W I~W LW oAW KW EVW LvW u[pW M W MWW f W JnW GW CLW EtCW #DF-W %OPW 'CLW (CLW )CLW *CLW TCLW UCLW VCLW YL4W ZG6gW [PfW \G W ]_ > W ^_ > W `CLW bCLW cCLW dCLW eCLW fCLW gCLW h]W iCLW kCLW lCLW mNPW oCLW rD[^W tCLW uCLW vBɀW yCLW zCLW {CLW ~OP$W IA%W I&W RW CL*W H,W ^W OP.W RW CLW CLW OPW CL3W s54W Au6W W97W O38W M9W cH:W \ff;W b <W ^fW OP>W R?W Fd@W EnAW T~;W OPDW CEW FOFW EnGW O?W NW SW LW cw W MSW B<)W T= W V"q W wQ? W v !W CL W CLW CLW a W CLW tx W 7 W u W rk W C W saW "CLW #CLW $CLW &CLW 'CLW *DՀW +AGW ,PW /v- W 2Iٚ W 5w W 6p W 7P W :p3W =EM5W @} W AHW BA:W DyW Ey@ W F| W G W IKW Lw W Oy W PaYW R\IW S^ W TCLW UCLW VCLW WCLW CLW OPW OPW OPW CLW IjW GeW HW G~_W dW d}eW ZB}fW 4@MW r NW EVIOW FqbPW F JQW T[RW RWSW o TW G1VW k XW G qYW F[W e\W Sx^W e)_W D8`W AFaW vbW w >cW t8RW CLW CLW CLgW o W CLW CLW CLW CLmW FranW }4oW dR W CLW CLW CLW CLW CLW CLW CLwW x\*xW L34yW O34W OP{W l |W ]g}W o!~W H]W KAW LEtEW O~# ~W QOPW TU |W WCLW ZEW [ISW \GxW _OLuW bCLtW cCLW ex W fv W go 5W jG 6W kFW mCLW nCL:W pET;W qD<W rOT?W zBɀW |OPW ~CLBW E*CW DW ~# EW NFW WGW QHW @ȅ LW jQ MW B NW fR OW E2PW ẼQW GeRW FTW GUW FVW FBW OPW CLYW E9[ZW EGW OPW CL]W @^W dW OPW CLaW TW OPW CLdW EW OPfW ^W CLhW BiW UW OPkW M lW EmW CpnW n{ oW ^SpWZ qWSk rWVz sWLtWMpuWIWOPWCLxWKsyyW JzW!JIW#OPW%CL}W'J~W)HwW+JW,GW-OP~W/CLW1FW3CN W4v33W5p3W6gW8CL W:A:W=CLW@OP WCzBWFCLWGCLWIIZWtCLWwOPWzqes W{^W W~CLWCLWCLWG WUYWLWKW~T W[QWbW W`!W^ "WNg#W| $WJTL%WHS&WMC]'WL(WAAWCL*WPK<+WY_ WCL-WGCWOPWCL0WB}1WKO2WJAq3WL4WHsWOP6W]WCL8WK?mWCL:WHWCL<WF:=WJ|1WOPWCL@WR AWGT$BWHNOWCLWOPEW@aHWBIWn? JWsuKWVLWZO WGeWEsZWCL!WKUWDQNWFWGW KW F}W {mW FrwWOWIrWLW>oAW@JgWCEVWDP<WFu[pWHM WIMWJe WKJnWLFNWNCLWQEY%WTDF-WVOPWXCLWZCLW[CLW\CLW]CLW^CLW_CLWbQgWcMIWdNgWeG Wg_ > Wh_ > WjCLWkCLWlCLWmCLWnCLWoCLWpCLWr]WsCLWtCLWuCLWvNL^WCLWDUWCLWCLWC=WCLWCLWCLWOP$WI"7%WI&WN:wWCL*WH@,WeWOP.WSMWCLWCLWOPWCL3WsoD4WAu6WX7WS8WQ39Wc[:WZFg;W`g<W_s3WOP>WRh?WF@WEAWTAWOPDWCEWF:FWE5GWOmW Q W UW NW d' WMWB?WU( WV- Ww4 Wu !WCL WCLWCLWaL W!CLW#t W$ W%vY W&r+ W(JW)slmW+CLW-CLW.CLW/CLW0CLW3DXW4AfdW5RW9u Ww4 W?p WhPT WkofWnEFWq} WsHkWtAWuyWvyz Ww|& Wx' WzK=W}w WsY W`WZ@W^ WCLWCLWCLWCLWCLWOPWOPWOPWCLWHWGeWHtWGx WgWg}eW(]e}fW eAe MWr NWENqOWFhPWF QWTSRWRE,SWo7 TWGVWkVI XWFXYWFL[WA\WRa^Wf _WD8`WAPgaWubWv\cWtWCLWCLWCLgWoL WCLWCLW0CLW1CLmW4Fl nW7}4oW9dfg W;CLWCLW?CLW@CLWBCLwWEtHxWFL{yWGT>WHOP{WKmfg |WM\}WOp&~WQ]WTAWUE|4WX} ~WZOPW^X(\ |W`CLWcEhsWdI&WeFQWiMpuWkCLtWCLWz6F WvZ WoQ 5WG6WFWCLWCL:WG4;WB)'<W}l,?WB(WOPWCLBWE CW~*DW~ EWJ(FWUQGWMffHW@ LWo MWH=q NWm OWELPWEpQWGBRWFTWGUWFtVWFWOPWCLYWDXZWE#WOPWCL]W@gv^Wc0WOPWCLaWSWOPWCLdWEZW OPfW ^W CLhWBwiWTWOPkWM lWEmWCnWi޸ oW^pW[ qWR rWW = sWLtW M uW!IgW"OPW$CLxW&KMyW'RHzW(J%gW*OPW,CL}W.Jf~W0HVW1I W3GϛW\OP~W^CLW`FqWbCIU Wc]&fWdSWeRYWgCL WiB}WlCLWoOP Wry#WuCLWvCLWxGW{CLW~OPWr1 W_ WCLWCLWCLWH) WPpWF<WDgW~й W]fWcLWa34!W~ "W\#WH&g$WJP%WHЌ&WMR'WK;(WAWCL*WN+WaWCL-WGgWOPWCL0WAf1WJ72WJ"y3WLl4WHTWOP6W]WCL8WJnWCL:WHWCL<WF=WJ;WOPWCL@WR4AWGWBWH-WCLW$OPEW%@HW&@'NIW)` JW*UdKW+VuLLW-Zn W/GeW0EsZW2CW3KFW4D4KW5EW6GoW8KW9FW:{W;FW>OWAIJ(WBLWEoAWGJPWJEVWKPzcWMuHDWNM WOM WPd WQJWSFNWUCLWXEW[DF-W]OPW_CLWCLWCLWCLWCLWCLWCLWQLWG6gWNgWG W_ > W_ > WCLWCLWCLWCLWCLWCLWCLW]WCLWCLWCLWNEWCLWDKWCLWCLWB WCLWCLWCLWOP$WI%WI&WJWCL*WH\,W^mWOP.WSzSWCLWCLWOPWCL3Ws=4WAu6WQL7WJ@8WK39Wcr.:WX33;W`<W^YWOP>WR/?WF@WE^AWTWOPDW CEW F$FW EGW NWQ WU3WN4Wd}^ WLHWBwWU( WVz Ww Wu !W CL W!CLW"CLW$^; W'CLWQuS[ WR: WSv WUsrb WWWXsWZCLW[CLW\CLW]CLW_CLWbD7WcA`WdMzWgu WjIU WlwQ? Wmp< WoL WroWuDWx}: WyH WzAW{yW}y]w W~} W WL=Ww| Wt W`W[fW^ WCLWCLWCLWCLWCLWOPWOPWOPWCLWHjWG WHWGoWgzWgz}eWWX}fWBMWrez NWEEOWFzPWFRQWT@RWR6SWof TWHF5VWlH XWFYW F[W!\W"R ^W%b_W&DG`W'AFaW)vbW+wfgcW,tW.CLW/CLW0CLgW2o W4CLW6CLW7CLW8CLmW;FnnW>}oW?dJ WACLWCCLWDCLWECLWFCLWGCLWHCLwWK}fgxWLM8RyWNP8RWOOP{WRnUU |W|]C}W}n1~W]WAWEW| ~WOPWYM |WCLWEYWI WGWGuWCLtWCLW{ Wu Wo\ 5WG 6WF%WCLWCL:WG;WI<WDF?WB5WOPWCLBWDZCW| DW~{` EWM >FWUQGWWHW@[ LW\ MWc NW\ff OWE_PWEOQWGRWFvTWG]UWFVWFWOPWCLYWDZWEWOPWCL]W@;^Wb"WOPWCLaW R\W OPW CLdWEzWOPfW^WCLhWBiWSTWOPkWMK lWCmWDAnWEj33 oWH]pWJX qWKR rWLU sWMLtWNMuWOIt(WQOPWSCLxWUK)yWVQzWWIWYOPW[CL}W]J3~W_HW`IWaGWbOP~WdCLWfFLWiCD Wj]LWkSWlRlWnCL WpBEWsCLWvOP WyxW|CLW}CLWFmWCLWOPWqˈ W^ WCLWCLWCLWH WMWEWE&fW5 W]WdpWb!Wg "WK#WL$WJM%WH&WM>'WK(WA&WCL*WM+W[vWCL-WFmWOPWCL0WA1WH2WJ 3WK24WH(W OP6W]WCL8WJFWCL:WHWCL<WF>K=WJPWOPW CL@W#R&PAW%G&BW&H W(CLW+OPEW,@MLHW-EiIW0]| JW1FZKW2VLW3Y` W6H W7EW8C.W:KFW;DQNW ?/CL?0CL?1CL?3CL?4CL?5CL?6CL?7]?8CL?9CL?:CL?dNO?fCL?hDP?jCL?kCL?mB?pCL?qCL?rCL?uOP$?vI%?wIu&?yG*?|CL*?H,?_#?OP.?S?CL?CL?OP?CL3?s4g4?Au6?QL7?R338?P39?cr.:?Z`;?^fg<?\?OP>?Rr??Fxu@?EA?T?OPD?CY1E?FF?E G?O ?SI?Wɚ?P\?d, ?LR?B>?U7 ?V: ?vI ?u !?CL ?CL?CL?` ?CL?tY ?)b ?vAl?@K?CwB ?Fsw ?G`?H[f?J^ ?KCL?LCL?MCL?NCL?OCL?SOP?TOP?UOP?WCL?ZHa?\G>?]HI?^Gn?ah\?dh\}e?S֤}fWBbM?s. N?EBQO?FnP?EQ?T1R?RS?o T?HjV?lV X?FyY?F\[?-A\?S@^?bZ_?DG`?AFa?wW b?tc?tfg?CL?CL?CLg?o ?CL?CL?CL?CLm?Fvn?}4o?eb5 ?CL?CL?CL?CL?CL?CL?CLw? tx? NLy? UaH?OP{?n33 |?\W>}?oa~?]?A?ED?| ~? OP?#Z D |?%CL?)El?*I?+GA?.Kqhu?XCLt?YCL?\| ?]v ?^o 5?`G6?aF?dCL?eCL:?gGX;?hE5<?jxr??kB?lOP?nCLB?pDC?rzZjD?u~k E?wNF?x[{G?yPH?z@ L?{_G M?|i N?}` O?~E,P?EُQ?GymR?FT?GgU?FRV?Ff?OP?CLY?DZ?D?OP?CL]?K ^?c?OP?CLa?R?OP?CLd?E]?OPf?^?CLh?Brdi?RQ?OPk?Mg l?Cpm?An?k o?^1p?] = q?T r?Yff s?Lt?M]u?IvS?OP?CLx?JZy?N8z?I?OP?CL}?Jw~?H\?IQ?G1?OP~?CL?FR? CG ?!]?"S?$RY?&CL ?(A"?*CL?-OP ?0vЅ?3CL?4CL?6FxC?9CL? ?T_ > ?VCL?WCL?YCL?ZCL?[CL?\CL?]CL?^]?_CL?`CL?bCL?cNO?eCL?hDX?jCL?kCL?lCB?oCL?pCL?qCL?tOP$?uH%?vI&?yRJP?{CL*?~Ho{,?^^?OP.?Sn?CL?CL?OP?CL3?s4?Au6?S@7?I8?F 9?cH:?a;?^4<?d?OP>?R:}??Fi@?EvA?T*?OPD?CjE?F\F?EG?N?Pg?U?N`?d ?L&?BG?U ?WV ?v ?uD !?CL ?CL?CL?aL ?CL?tY ? ?v ?s T ?K?sR0?CL?CL?CL?CL?CL? D?!A>?"R.?%u ?(J ?+v ?,p3 ?-P(z ?0o3?3D?6}u% ?7GQ?8A?:y?;y#; ?<}f ?=Cp?>KU??wl ?BpD ?D`3?EXɚ?F^ ?GCL?HCL?ICL?KCL?LCL?OOP?xOP?yOP?{CL?H?G?HI?GkZ?l?l}e?^}f?\CM?rez N?EAO?F1P?EĉQ?T*#R?RS?o7 T?HF5V?lH X?FY?FK[?ܮW\?T%^?c_?DN9`?APga?vQb?vc?tW ?CL?CL?CLg?oM ?CL?CL?CL?CLm?Fvn?}lo?eb5 ?CL?CL?CL?CL?CL?CL?CLw?wfgx?Muy? Q ? OP{? m |?\ }?og~?]?A?E?B|R8 ~?DOP?GV |?JCL?ME|_?NHؒ?OG?RQGu?UCLt?VCL?X} ?YuQ ?[o 5?]GE6?^F1?`CL?aCL:?cG4;?dB<?fv??gB?hOP?jCLB?lDC?n|s8D?q~- E?sLF?tWzG?uM >H?v@ L?w^ M?xh( N?y_ O?{EP?EۼQ?GquR?F/T?G>U?Ff[V?Fƃ?OP?CLY?D̘Z?DX?OP?CL]?7 ^?g??OP?CLa?SU?OP?CLd?E@?OPf?^?CLh?BUZi?Q?OPk?MqK l?Em?Cn?j o?^yXp?Z q?T33 r?W=q s?LBt?Miu?I:?OP?CLx?Jny? L"z? Ik? OP?CL}?IL~?H9W?IS?G?OP~?CL?E?C7 ?[?RY? P?"CL ?$A/?'CL?*OP ?-n?0CL?1CL?3FT?6CL?8OP?;r1 ?<^ ??CL?@CL?ACL?lH+ ?mNi?oEɚ?pD?r ?tR?vfR?wXaH!?xlL "?yS#?zDfg$?{JId%?|I-&?}M`'?~K(?Au?CL*?L~+?_m?CL-?F?OP?CL0?A^v1?M2?I3?K4?G?OP6?]?CL8?J ?CL:?I :?CL<?EW=?I?OP?CL@?Q1A?FB?Gf?CL?OPE?@1H?CI?l J?wpK?VDL?Xb ?H[?E?C?KF?DnQ?FR?G?K?F}?{ ?FR?P?I9?L?oA?JP?EV?R ?uHD? L? Ms? eb3 ?4Jц?5E?7CL?:E?;F=?CL?@CL?ACL?BCL?CCL?DCL?ECL?HNi?IG6g?JNg?LG ?MG ?N_ > ?PCL?QCL?RCL?SCL?TCL?UCL?WCL?X]?YCL?ZCL?[CL?]NL^?^CL?aDK?cCL?dCL?fD?iCL?jCL?kCL?mOP$?nHj%?oI|&?N3?CL*?HA<,?^+?OP.?S"?CL?CL?OP?CL3?r4?Au6?R7?If8?K49?c.<:?W@;?[ff<?]?OP>?R??FW@?EfjA?Tk?OPD?CBE?EMF?E>G?N_?P?U?NVf?d ?Kh?B ?U ?W ?v ?u ~ !?CL ? CL? CL? _ ? CL? t!N ? ~s ? u ~ ? q ? ? s2F? CL? CL? CL? CL? CL? D? A$? IE? ua ? "JD ? $vh. ? %p$ ? &L@- ? )t? -DRQ? 0}: ? 1GJY? 2BE? 3y? 4y ? 5}R ? 6D? aL? dvܹ ? gy&f ? h`? iYp? j^ ? kCL? mCL? nCL? oCL? pCL? sOP? uOP? vOP? xCL? {Hyv? |G? }H? Ge? o? o}e? [}f?XCkmM? r N? E9O? DtP? EfQ? T*#R? RmS? o T? G^V? kVI X? F6Y? FG[? ծ\? SQ^? dl_? DN9`? AFa? u\b? wc? t{? CL? CL? CLg? oU ? CL? CL? CL? CLm? FsIn? ~4o? dfg ? CL? CL? CL? CL? CL? CL? CLw? (zHx? )Jy? *P? +OP{? /l |? 1]x}? 2o~? 4]? 7A!? 8E? <} ~? >OP? AX  |? CCL? FE`M? GH? IF؟? LIwu? NCLt? OCL? R~ ? Su ? Toj 5? VG6? WF? YCL? ZCL:? \Fݱ;? ]I<|<? _x#?? aB? bOP? CLB? DVC? {XD? ~{` E? L\F? U\G? VHH? @J L? ^\ M? h( N? _ > O? E7P? EQ? Gz'R? F T? GU? F<V? F? OP? CLY? E Z? D? OP? CL]? ~ ^? gK? OP? CLa? S? OP? CLd? EZ? OPf? ^? CLh? B1 i? P? OPk? M# l? F33m? Cpn? m= o? ^= p? [B q? T8R r? W = s? Lt? Mu? IL? OP? CLx? JFy? J./z? I{? OP? CL}? I~? H ? I)? Gu? OP~? CL? EV? C3 ? [? R? P? CL ? A2? CL? #OP ? &u0I? )CL? *CL? TF? WCL? ZOP? ]p- ? ^\_ ? aCL? bCL? cCL? fH. ? gQ3? hHf? iE|? lh ? nX? o`? p^34!? qc "? rZs3#? sN$? tJC%? uI &? vM*'? wK(? yAc? {CL*? }K˨+? [4? CL-? F5? OP? CL0? A1? K6/2? I 3? Kp 4? G(? OP6? ]? CL8? J? CL:? H? CL<? D=? I{? OP? CL@? Q@A? FB? GL? CL? OPE? ~# H? BI? or J? rTK? V)L? Z ? H[? EZ? Cμ? K82? D|? F? G? K? El? {J? FN=? O? I? L? !oA? #JP? &EV? 'Op? )uA? *L? +M&? ,eb3 ? -J? .E? 1CL? 4E? 5F ? 6OP? 8CL? 9CL? :CL? ;CL? ? G_ > ? ICL? JCL? KCL? MCL? NCL? OCL? PCL? Q]? RCL? SCL? UCL? VNBC? CL? DD? CL? CL? B=? CL? CL? CL? OP$? H\%? Iz&? J? CL*? H,? _C? OP.? S˲? CL? CL? OP? CL3? r4? Au6? L7? D@8? Hs39? bc:? [4;? _4<? ]l? OP>? Rw?? FD@? EQA? T? OPD? C2E? EF? EG? N? Pٚ? U? NC3? d ? K? Aw7? U ? WG ? vh. ? t4 !? CL ? CL? CL? aY ? CL? s8 ? ~24 ? sl ? p ? S? s? CL? CL? CL? CL? CL? D{? @_? M? u65 ? Jȉ ? u ? pY ? HRe ? Km? ND"W? Q}: ? RGgR? SBF? Ty? Vx ? W} ? XE? ZL6? ]v ? `qU ? a`? cY? d^ ? eCL? fCL? gCL? hCL? jCL? mOP? nOP? oOP? qCL? uHV? vG? wH? xG_? {hff? ~hff}e? Wj`}f? RD8RM? r N? E*O? DP? E[nQ? T"R? Q S? ouq T? GV? j X? FY? F)w[? Ү\? Rq^? eF_? DUU`? A<a? v#b? vc? t(? CL? CL? CLg? o6 ? CL? CL?CL?CLm?Fpn?}o?b׷ ?CL?CL?CL?CL?CL? CL?!CLw?$yx?&Oy?'M?(OP{?+k |?-\g}?.q~?0]?4A?5Ef?8}f ~?:OP?=WD |??CL?CE[?DH\?EF ?HIFu?JCLt?tCL?v@{?wvF ?xodZ 5?{G6?|F?~CL?CL:?GgR;?E4<?y??B^?OP?CLB?DC?z2"D?~d E?J >F?W G?M(H?@ L?^Q M?g34 N?_ > O?EP?E:Q?GwAR?F2T?FU?FsV?F?OP?CLY?EdZ?D?OP?CL]?~ ^?_!?OP?CLa?Q?OP?CLd?E ?OPf?^?CLh?B i?Oy?OPk?Mj l?E =m?Bn?m\ o?^jEp?\ q?U r?X s?Lt?M4u?H?OP?CLx?JZy?Rz?IZ?OP?CL}?I{~? G~? H? Gc? OP~?CL?E?C ?<\y?=Sf?>Qg?@CL ?B@=?ECL?GOP ?J{u?NCL?OCL?QE?TCL?VOP?Yq+ ?Z\p ?]CL?^CL?_CL?bH ?cPf?dH9?fGfg?hв ?jPG?lV?mT!?ng33 "?oTL#?pM4$?qJ<%?rI &?sM&.'?tK'(?uAG8?wCL*?K +?_ ?CL-?F?OP?CL0?@1?J>2?I3?K?4?G?OP6?]?CL8?J?CL:?H ?CL<?DS=?Ib?OP?CL@?QA?FYB?G?CL?OPE?~@ H?"\I?VO J?hK?V>L?Z4 ?H ? EZ? C? K82? DS?F!O?Ge?K?F}?{?FN=?O?H?L?oA?JP?"EV?$Lv?&uX>?'L?(M?)d] ?*J?+Ep?-CL?0Ee?1E*?3OP?5CL?6CL?7CL?8CL?9CL?:CL?;CL?>Ng?hG6g?iNg?jG ?kG ?l_ > ?nCL?oCL?pCL?qCL?rCL?tCL?uCL?v]?wCL?xCL?yCL?{NE?}CL?DH[?CL?CL?Bc?CL?CL?CL?OP$?H%?Iy9&?G?CL*?G,?_!r?OP.?S?CL?CL?OP?CL3?rk4?Au6?M47?H8?H39?b:?Z ;?^<?Z?OP>?Rp??F.@?E?lA?Tt?OPD?CE?EF?EG?Nz?R?W3?PS3?d` ?KiZ?A62?V ?X ?v- ?tz !?CL ?CL?CL?` ?CL?r ?} ?s ?p ?BX ?r^?0CL?1CL?2CL?3CL?4CL?8D#?9@˶?:M?=t ?@J ?Bua ?Co۔ ?DNC& ?Hr ?KCI?N},l ?OGgR?PBc?Qy?Rx ?T~24 ?UE?WKݺ?Zv ?]vb" ?^`?_Y?`^ ?bCL?cCL?dCL?eCL?fCL?jOP?kOP?OP?CL?H0?G?H~?GZ$?|?|}e?Z`}f?vEM?r N?E?O?E P?E:Q?TR?Q֤S?oXB T?F>V?i X?FY?E[?̮D\?Se^?ex_?DUU`?A<a?w(b?zGc?wfg?CL?CL?CLg?o>\ ?CL? CL? CL? CLm?Ffn?}4o?bn ?CL?CL?CL?CL?CL?CL?CLw?qfgx?KLy?!OaH?"OP{?%k |?']5}?(oH~?*]?-A.?/Eh?2|& ~?\OP?_W |?aCL?eEd?fHB?gF?jNAu?lCLt?nCL?p@m?qup ?rov 5?uG6?vF?xCL?yCL:?{G );?|B}<?~{^??BP?OP?CLB?D|C?x~D?~d E?SF?\ffG?a{H?@J L?j{ M? N?i O?EĉP?EQ?GldR?FT?F#U?EQV?F?OP?CLY?EVZ?DS?OP?CL]?~s ^?W'p?OP?CLa?O ?OP?CLd?D?OPf?^?CLh?Aqi?NY?OPk?M_ l?E{m?Bffn?n=q o?^^p?Yf q?U r?YQ s?L6t?Mvu?HF?OP?%CLx?'Jmy?(Q1z?)I6?+OP?-CL}?/IZ~?1G6?3H_?4GP?5OP~?7CL?9E?;C ?<]&f?=Sٚ??R33?ACL ?C@?ECL?HOP ?KCQ ?NCL?OCL?QE?TCL?WOP?Zq3 ?[[ ?^CL?_CL?CL?G ?O?E?D?в ?P8R?X34?U!?f "?T&f#?J3$?J8 %?I o&?M='?J{a(?AAh?CL*?J +?]\?CL-?G?OP?CL0?@1?H2?IA3?K4?G1?OP6?]?CL8?Jn?CL:?H?CL<?C=?IiN?OP?CL@?QA?F B?G} ?CL?OPE?~ H?HqI?d J?hK?VVL?Y` ?Ge?E?DG? K82? D? F!O? Ge?K?F}?{?FN=?O??I?L?oA?JP? EV?!R3?#u[p?$L?&M?'aw ?PJ?QE?SCL?VEg?WF0?XOP?ZCL?[CL?]CL?^CL?_CL?`CL?aCL?dRf?eK3?fPg?gG ?i_ > ?j_ > ?lCL?mCL?nCL?oCL?pCL?qCL?rCL?t]?uCL?vCL?wCL?xNGQ?zCL?}DRQ?CL?CL?C?CL?CL?CL?OP$?H%?IvS&?Qz?CL*?G,?^?OP.?S]?CL?CL?OP?CL3?r4?Au6?V37?O38?N99?b:?[;?_<?^`?OP>?R??F<@?E,bA?Tl?OPD?C-E?EF?Em*G?Nr?U?Z?Sy?c ?Kr?A ?V? ?X^ ?v4 ?t[ !?CL ?CL?CL?^ ?#CL?%rk ?&} ?'s8 ?(p$ ?*?+r?.CL?/CL?0CL?1CL?2CL?5Dw?6@t?8J?;t4 ?>J3 ?@u ?Aof ?BLĞ ?EqS3?HC?L|= ?MGX?NB?Oy?Px ?Q~z ?RF(?}M/$?vY ?}w ?``?]3?^ ?CL?CL?CL?CL?CL?OP?OP?OP?CL?Hw?G?H?GV?h\)?h\)}e?*VT}f?pFM?r N?EeO?FP?E/Q?TR?QS?oXB T?F>V?i+ X?FyY?E+[?\?S^?e'_?D\r`?A33a?tb?u>c?t{?CL?CL?CLg?n ?CL? CL? CL? CLm?F_`n?}o?b ?CL?CL?CL?CL?CL?CL?DCLw?Gwx?HJ8Ry?IP?JOP{?Nk |?P^U}?Qm~?S]?VA?WE_Y?[} ~?]OP?`WЊ |?bCL?eE^}?fH% ?hF?kNu?mCLt?nCL?qAm?ru ?so 5?uGE6?vFn?xCL?yCL:?{I ;?|F<?~}x??B5h?OP?CLB?DgC?wLD?~{` E?JHF?YG?VffH?@ L?wG M?NR N?q O?EɝP?E`Q?GuR?FT?FU?E1V?F?OP?CLY?EZ?DnQ?OP?CL]?~# ^?QK5?OP?CLa?L?OP?CLd?D?OPf?^?CLh?A"i?MQ? OPk?M_ l?Fm?Cn?kf o?^n p?V{ q?P) r?R{ s?L{t?Mu?HR?OP?CLx?!Jfy?"N>z?#I?%OP?'CL}?)I6~?+G?,HW?-G> ?/OP~?1CL?3E]?5C ?6]3?7S?8RFf?:CL ?<@=??CL?BOP ?ED: 'CL 'CL 'E 'CL ' OP ' q^  ' [ 'CL 'CL 'CL 'Gɱ  'P3 'HL 'GI '  'O 'V 'UB! ' j" '!Z# '"G$ '#J2% '$I& '%M'' '&J*~( '(A '*CL* '+JBU+ '-Z '/CL- '1G&" '3OP '5CL0 '7@1 '8M$2 ':Ir3 'dJ4 'eG: 'fOP6 'h] 'iCL8 'kJ 'nCL: 'pH$ 'sCL< 'uC= 'vI/j 'xOP 'zCL@ '}QA '~FYB 'Gk 'CL 'OPE '}; H 'G,I 'jy J 'bK 'VyL 'Zn  'G 'E 'C 'K82 'DV 'F/ 'H  'K 'F} 'z 'FN= 'O? 'I$ 'L 'oA 'JP 'EV 'P 'u[p 'L 'M 'd]  'Jā 'E 'CL 'E 'E* 'OP 'CL 'CL 'CL 'CL 'CL 'CL 'CL 'Ng 'K 'Yg 'G  '_ >  '_ > 'CL 'CL 'CL 'CL 'CL 'CL 'CL '] 'CL 'CL 'CL 'NE& ',CL '/DM '1CL '2CL '4Ca '6CL '7CL '8CL ';OP$ ' 'bR-? 'cF-@ 'dEA 'eT 'fOPD 'gC$E 'EF 'E[ G 'NL^ 'P 'U34 'N| 'cM  'J '@3 'VNy  'X  'u  't!N ! 'CL 'CL 'CL 'at  'CL 'r]\  '};  's8  'p^  'B 'rD 'CL 'CL 'CL 'CL 'CL 'Dh> '@ 'Q< 'tz  'K  'tY  'o  'SP  'o 'C '|=  'GC 'B 'y 'x  '~  'F( 'K ' v-  ' wn  'a '\@ '^  'CL 'CL 'CL 'CL 'CL 'OP 'OP 'OP 'CL '!G '"G '#H '%GP- '(h\) '+h\)}e 'ea-}f?qFYM 'nr N 'pEO 'qFrP 'rE\Q 'uTNR 'vQv`S 'xof T 'yG#/V 'zjc X '|F&Y '}Ek[ '~D\ 'P ^ 'gU_ 'D\r` 'A<a 'vb 'uc 't 'CL 'CL 'CLg 'n 'CL 'CL 'CL 'CLm 'F\n '~4o 'b 'CL 'CL 'CL 'CL 'CL 'CL 'CLw 'xx 'JW y 'Pff 'OP{ 'lUU | ']} 'm~ '] 'A 'EN '} ~ 'OP 'VP | 'CL 'E] 'H 'G 'F6u 'CLt 'CL '!Aw '"v  '#o| 5 '%G6 '&F[ '(CL ')CL: '+GJY; ',B< '-~r? '/B} '1OP '3CLB '5D_C '7u'D '9~й E ';JF 'QH '?@ L '@i M 'A~R N 'Bg O 'CE#P 'DEQ 'EGnR 'FFT 'GFwU 'HEV 'IFI 'JOP 'LCLY 'NEZ 'ODB 'QOP 'SCL] 'U~OI ^ 'WM 'XOP 'ZCLa 'J 'OP 'CLd 'D 'OPf '^ 'CLh 'Ai 'LIG 'OPk 'Mc l 'Dm 'Bn 'j o '^9p 'Y= q 'Q r 'Uu s 'LvGt 'Mu 'Ht 'OP 'CLx 'JBUy 'KAz 'H  'OP 'CL} 'I~ 'G 'H] 'G-a 'OP~ 'CL 'EG 'C f  '[ 'RY 'P@ 'CL 'AO 'CL 'OP 'F 'CL 'CL 'F!O 'CL 'OP 'r]\  '\ ' CL ' CL ' CL 'G  'P3 'G@ 'Ef '*  'F 'MH 'M! 'b" 'Sٚ# 'v $ 'J/% 'I& 'L' ' I( '!A '#CL* 'MI+ 'Nbk 'QCL- 'SGQ 'UOP 'WCL0 'Y@b1 'ZM2 '\IR3 ']Jȩ4 '^G '_OP6 'a] 'bCL8 'dJ 'gCL: 'iH 'lCL< 'nC= 'pI/j 'rOP 'tCL@ 'wQzA 'xFB 'yG^ '{CL '~OPE '~@ H 'C(I 'n\ J 'ukK 'WL 'e  'Go 'E 'C> 'K82 'D 'F>K 'Ge 'K 'F} 'zJ 'FN= 'O/ 'I 'L 'oA 'JP 'EV 'Lv 'u[p 'L 'Mz 'd]  'Jb 'Ef 'CL 'Ev 'F0 'OP 'CL 'CL 'CL 'CL 'CL 'CL 'CL 'Ng 'Gf 'Ng 'G  '_ >  '_ > 'CL 'CL 'CL 'CL 'CL 'CL 'CL '] ' CL '"CL '#CL '$NA '&CL ')D>f '+CL ',CL '-BM '0CL '1CL '2CL '5OP$ '6H% '7Ir& ':I '4 'NAu6 'yR 7 'zH48 '{F9 '~b: 'Zg; '`l< ']Ff 'OP> 'R=_? 'E@ 'E A 'TQ 'OPD 'C ^E 'E|F 'EKG 'N 'P 'Uc3 'NL 'c  'Jk 'A[ 'V-  'Yc  'u  's ! 'CL 'CL 'CL '_LK  'CL 'sF  '~  'tz  'q^  '3 'r| 'CL 'CL 'CL 'CL 'CL 'D_8 '@ 'Ig 'tx  'Jn  'tY  'of  'L"  'rL 'Cd] '|  'G 'B 'y 'xe  '~;  'F 'M>N 'u  'vD  'a  ' [3 ' ^  ' CL ' CL ' CL 'CL 'CL 'OP 'OP 'OP '@CL 'CG 'DG0 'EH 'FGK 'Jg33 'Mg33}e 'UVS}f '!FJM 'q- N ' EO ' E P ' E$TQ ' TR ' QlS ' of T ' GV ' jC X ' F6Y ' E[ ' \ ' R^ ' c׏_ ' Dj` ' A)wa ' @ b ' ~\*c ' |aH ' CL ' CL ' CLg ' "n ' $CL ' %CL ' &CL ' 'CLm ' *Fj<n ' -}go ' /b ' 1CL ' 2CL ' 3CL ' 4CL ' 5CL ' 6CL ' 7CLw ' crRx ' dNy ' ePG ' fOP{ ' ik"# | ' k^hg} ' ln~ ' o] ' rA ' sE} ' v|C ~ ' xOP ' |V' | ' ~CL ' EP ' G ' F ' Ju ' CLt ' CL ' AH1 ' tP  ' n 5 ' GH6 ' F3 ' CL ' CL: ' GgR; ' C0< ' @? ' B  ' OP ' CLB ' DQNC ' s-PD ' ~- E ' R34F ' XQG ' SH ' @ L ' _G M ' i N ' _ O ' EP ' EXQ ' GR ' FT ' F8'U ' EpV ' FB ' OP ' CLY ' ETZ ' D ' OP ' CL] ' ~z ^ ' I ' OP ' CLa ' H ' OP ' CLd ' D ' (OPf ' *^ ' +CLh ' -Ai ' .V9 ' 0OPk ' 1MW l ' 2G(m ' 3Dn ' 4jf o ' 7^bp ' 9ZaH q ' ;QǮ r ' M8u ' ?H~ ' @OP ' BCLx ' DJy ' ERcz ' FH$ ' HOP ' KCL} ' MH ~ ' OGI  ' PH# ' QGg ' ROP~ ' TCL ' VE ' XC  ' Z[ ' [Rl ' \O ' ^CL ' `AL ' cCL ' OP ' T> ' CL ' CL ' G&" ' CL ' OP ' q+  ' Zh ' CL ' CL ' CL ' Gs  ' O ' F ' E ' P  ' J ' QL ' P4! ' ^33" ' Il# ' u$ ' J4}% ' I8& ' L' ' Ig5( ' A+ ' CL* ' I>+ ' [; ' CL- ' G` ' OP ' CL0 ' @u1 ' Jo2 ' I%o3 ' J4 ' Gqu ' OP6 ' ] ' CL8 ' J ' CL: ' Hzx ' CL< ' Cμ= ' H ' OP ' CL@ ' QeA ' F-JB ' G8 ' CL ' OPE ' } H ' GI ' YO J ' !b\K ' "VL ' #\  ' &G ' 'EW ' (DG ' )K) ' *D ' +FL ' UG ' WK ' XER} ' Yz% ' ZFN= ' ]O ' _HЌ ' `L ' coA ' eJP ' hEV ' iQ ' lu ' mM  ' nMt ' o`w/  ' pJ ' qE  ' sCL ' vE ' wEݍ ' xOP ' {CL ' |CL ' }CL ' ~CL ' CL ' CL ' CL ' R  ' M, ' X ' x=q ' _ ' _ ' CL ' CL ' CL ' CL ' CL ' CL ' CL ' ] ' CL ' CL ' CL ' NH  ' CL ' DA ' CL ' CL ' Cp ' CL ' CL ' CL ' OP$ ' H% ' In^& ' Qr ' CL* ' GR, ' ^ ' OP. ' Sq ' CL ' CL ' OP ' CL3 ' r44 ' Au6 ' JS37 ' F8 ' C39 ' c: ' Yg; ' b< ' `&f ' OP> ' R? ' !E@ ' "DA ' #T ' $OPD ' %B=E ' &E{FF ' 'E0zG ' (M" ' ,R ' -W| ' .P ' /cJ  ' 0J: ' 2@' ' 5Vҍ  ' 6Y  ' 7uS[  ' 8s ! ' ;CL ' CL ' @^y  ' CCL ' Eq^  ' F|=  ' Gr#  ' Ho  ' K8 ' LrF ' NCL ' OCL ' PCL ' QCL ' RCL ' VDR ' W@f' ' K?m ' t>u  ' I  ' tM  ' of  ' L@-  ' of ' C  ' |ƚ  ' F ' B ' yh ' x:D  ' U  ' ET ' L; ' u  ' qH  ' af ' [f ' ^  ' CL ' CL ' CL ' CL ' CL ' OP ' OP ' OP ' CL ' G ' Gy ' Hp ' G@ ' g ' g}e ' KY=}f ' FlM ' rV N ' E iO ' D%P ' DQ ' T[R ' QaS ' of T ' FV ' h X ' FY ' E[ ' \ ' T+a^ ' cY_ ' Dc` ' A)wa ' @#b ' c ' H} ' JCL ' KCL ' LCLg ' Nn ' PCL ' RCL ' SCL ' TCLm ' WFln ' Z~9o ' [a4 ' ]CL ' _CL ' `CL ' aCL ' bCL ' cCL ' dCLw ' g{=qx ' hLy ' jO34 ' kOP{ ' nh | ' p^} ' qpE~ ' s] ' wA ' xE1 ' {} ~ ' }OP ' U | ' CL ' EE$ ' G ' F ' H/u ' CLt ' CL ' B ' u^  ' n 5 ' G[ 6 ' F1= ' CL ' CL: ' FT; ' BZ< ' A? ' B) ' OP ' CLB ' D4KC ' @D ' ~=J E ' RQF ' X\G ' kH ' @k5 L ' ^{ M ' g N ' ^\ O ' E/P ' FQ ' Gt[R ' F/T ' FsU ' ENV ' Gx ' OP ' CLY ' FZ 'D 'OP 'CL] '}u% ^ 'H* 'OP 'CLa 'F 'OP '!CLd '#D '%OPf ''^ '(CLh '*Ali '+V  '-OPk '.L l '/E{m '0BRn '2n o '5]op '7WR q '8Q\ r '9T s ':Lgt ';M8u ' 'YO '[I= '\L '_oA 'bJP 'eEV 'fLv 'hu  'iM  'jMp 'k`w/  'lJC 'mDK 'oCL 'rE}M 'tE 'uOP 'wCL 'CL 'CL 'CL 'CL 'CL 'CL 'Ng 'M#3 'Pg 'G  '_ >  '_ > 'CL 'CL 'CL 'CL 'CL 'CL 'CL '] 'CL 'CL 'CL 'NA 'CL 'DJ* 'CL 'CL 'C' 'CL 'CL 'CL 'OP$ 'H|.% 'Ikz& 'M2Y 'CL* 'G6, '_ 'OP. 'S 'CL 'CL ' OP ' CL3 ' q4 'Au6 'Jٙ7 'I8 'I9 'c]: 'cg; 'bl< 'g@ 'OP> 'R'? 'E@ 'D%A 'T ' OPD '!BE '"Eh:F '#EvG '$M '(U< ')Yٙ '*R '+b  '-I\ '.@D '1V  '2Y`  '3u ~  '4sF ! '7CL '9CL ':CL ''  '?CL 'ipӖ  'j|R8  'kqes  'mn  'o 'pq 'rCL 'sCL 'tCL 'uCL 'wCL 'zD; '{@= '|I. 't!N  'I"  'srb  'o  'Q"j  'r 'B '|  'Fs 'Bw 'yh 'x  ''  'EV 'L 'u  '~7w  '` '[ '^  'CL 'CL 'CL 'CL 'CL 'OP 'OP 'OP 'CL 'G< 'Gr 'H 'G8 'h( 'h(}e 'oW}f ' GLM 'r N 'E$O 'CP 'D=Q '0T}R '1QS '2oXB T '3ERV '4g X '7FY '8Ej[ '9\ ':R^ '=d_ '>Dj` '?Aa 'B|{b 'CzW c 'Dx 'FCL 'GCL 'HCLg 'Jn& 'MCL 'NCL 'OCL 'PCLm 'SF`In 'V~ o 'W`#B 'ZCL '[CL '\CL ']CL '^CL '_CL '`CLw 'dxx 'eSy 'fN\ 'gOP{ 'jhDD | '_} 'qR~ '] 'A; 'E$ '| ~ 'OP 'T'U | 'CL 'E7 'Ge 'F 'M9Mu 'CLt 'CL 'B 't/  'nP 5 'G06 'F:H 'CL 'CL: 'F/; 'EI< 'Bj? 'BE 'OP 'CLB 'DC '~)D '~d E 'O\F 'ZG '^H '@P L '@M '\( N '~z O 'EP 'FlQ 'Gj8R 'FT 'EU 'E+FV 'G* 'OP 'CLY 'EZ 'C{ 'OP 'CL] ' |` ^ '!Bw '$CL '%CLa ''DnQ '*CL '+CLd '-D_ '/OPf '1^ '2CLh '\AAhi '^U) '`OPk 'aL l 'bG(m 'cFffn 'd~ o 'g]p 'iW\ q 'jP\) r 'kR s 'lLaSt 'mMu 'oC% 'qCL 'sCLx 'uHdy 'wLNz 'xH$ 'zOP '|CL} '~Hk~ 'G 'Gɯ 'F% 'OP~ 'CL 'D 'C 1  'h '^ '] 'CL 'A" 'CL 'OP 'V8 'CL 'CL 'E 'CL 'OP 'pӖ  'Yc 'CL 'CL 'CL 'H  'Q0 'H9 'GS3 '~t  'Su 'Z. 'YG! 'V@" 'H# 'is3$ 'J$"% 'I& 'L' 'J'( '@ 'CL* 'H+ ']K 'CL- 'G4 'OP 'CL0 '$^ 1 '%H% 2 ''Hf3 '(JV4 ')G '*OP6 ',] '-CL8 '/I '2CL: '4H# '7CL< '9B= ';H '=OP '?CL@ 'BQ2A 'CFB 'DFm 'FCL 'IOPE 'L{ H 'MGI 'Nl' J 'OD K 'PVL 'R[  'TG 'UEW 'WDQN 'XK) 'YD 'ZF[G '[Gx ']K '^E- '_zJ 'E 'O? 'I 'L 'oA 'JP 'EV 'L" 'u? 'M  'Mg '`w/  'J 'E, 'CL 'EU 'EQ 'OP 'CL 'CL 'CL 'CL 'CL 'CL 'CL 'NL 'G6g 'Pg 'G  'G  '_ > 'CL 'CL 'CL 'CL 'CL 'CL 'CL '] 'CL 'CL 'CL 'NC 'CL 'DJ* 'CL 'CL 'B5 'CL 'CL 'CL 'OP$ 'HV% 'IiN& 'IJs 'CL* ' G, ' _F ' OP. ' Sм 'CL 'CL 'OP 'CL3 'qo4 'Au6 'N&f7 'C8 'AS39 '!c#: '#[; '$b< '%]3 '&OP> ''R?? 'PE@ 'QDA 'RT 'SOPD 'TBE 'UEQF 'VE G 'WM> 'ZRc4 '\W4 ']Oc3 '^b  '_Jt '`@"Q 'cW @  'dY  'et  'gs T ! 'jCL 'kCL 'lCL 'n_  'qCL 'sph  'u|`  'vq  'wn  'xq& 'zqt '|CL '}CL 'CL 'CL 'CL 'D&[ '@ 'IB; 's  'J  's T  'o  'NN  'rf 'BD '|}  'F 'B 'yh 'wt  'K  'EW 'Lm 'uS[  '}  '` ']3 '^  'CL 'CL 'CL 'CL 'CL 'OP 'OP 'OP 'CL 'GM 'Gm* 'H 'G+ 's 's}e 'xT%,}f 'GM '0q N '2DNO '3CpP '4D3Q '7TMR '8QS '9oI T ';FV 'FY '?EW7[ '@Y\ 'AQ^ 'EcT_ 'FDj` 'GAa 'IB޹b 'JChc 'KCh 'MCL 'NCL 'PCLg 'RnA '|CL '}CL '~CL 'CLm 'F]n '}yo '`M9 'CL 'CL 'CL 'CL 'CL 'CL 'CLw 'sx 'KLy 'N 'OP{ 'iDD | '^]} 'o~ '] 'Ar 'Ew '} ~ 'OP 'TD | 'CL 'E~ 'GJY 'F 'QNu 'CLt 'CL 'CRo 'tR  'nĜ 5 'G6 'F:H 'CL 'CL: 'E2; 'C"< 'C=0? 'A: 'OP 'CLB 'CC '}LD '~5 E 'LF '[34G 'TH '@8( L 'x=qM 'jQN 'O 'EP 'F Q ' GquR ' FT ' EFU ' E_V ' G 'OP 'CLY 'EZ 'C' 'OP 'CL] '{ ^ 'CSc 'ECL 'FCLa 'HD 'KCL 'LCLd 'NDJ 'POPf 'R^ 'SCLh 'UA$Zi 'WS 'YOPk 'ZLk l '[JRm '\Jn ']@Bo '`^n p 'bZ q 'cQ r 'dUf s 'eLZ t 'gMEu 'hC  'jCL 'kCLx 'mGy 'nQz 'oH/ 'qOP 'sCL} 'uHVF~ 'wF 'xG8 'yF '{OP~ '}CL 'D 'C  '_ٚ 'V 'Tg 'CL 'A 'CL 'OP 'N 'CL 'CL 'E9[ 'CL 'OP 'q9  'YJ 'CL 'CL 'CL 'G  'Rf 'IP 'HVg '~  'U) ']\ '[34! 'C " 'A# 'Q3$ 'Ji% 'H& 'L' 'H}( '@ ' CL* 'Hzx+ 'Zxp 'CL- 'G; 'OP 'CL0 '@1 'O12 'Hd3 'J/4 '!Fպ '"OP6 '$] '%CL8 ''I> '*CL: ',H  '/CL< '1B= '2H$ '4OP '6CL@ '9Q2A ':EFB ';Fs '=CL '@OPE 'C{/ H 'DCI 'Em? J 'Gew KV,L[g GEDK)DZ F[G G KEOzJFN=OI=K?oAJPEVRԢ!ux#L$M`%`w/ &J'E,)CL,En-E*.OP0CL2CL3CL4CL5CL6CL7CL:R ;N3dYgeG g_ > h_ > jCLkCLlCLmCLnCLoCLpCLr]sCLtCLuCLvN?_xCL{DH[}CL~CLC'CLCLCLOP$H4%Ifi&N;CL*FR,^ܲOP.SCLCLOPCL3q4Au6J7D8@49c.<:Zg;]Y<]4OP>R?E5@DATFOPDCEE:FDGMR3VOgbh J@5W9E Z4 t r !CL CLCL_ CLq |& r oXB W/q>,CL-CL.CL/CL0CL3D5@U6H9s r ?o @L DsfGBJ|5! KF7 LB+MyhNw O QEZSL 7Vu' Yx Z`f[]3\^ ^CL_CL`CLaCLbCLfOPgOPOPCLGGeHG#~~}ei;}f 'HMr NDOCPDi=QU RQ@SoXB TFVh)\ XFYEA[˭Y\Q3^d_Dj`AaB b@Bc@\CLCLCLgnk[ CLCL CL CLm Fa0n}4o` CLCLCLCLCLCLCLws34xJy Q.!OP{$i |&_X}'m~)],A.EuY}I ~[OP`V' |bCLeEfGDhF\kHujumCLtnCLqC0rv~ sn 5uG6vF:HxCLyCL:{Du;|H% <~CN?A/OPCLBC:C{D~L EM >FX\G[H@< LxMkfgN@QOE!PFQG`RFsTEUDVGFOPCLYEZBEOPCL]{ ^C/CLCLaD_CLCLdDBOPf^CLhAiQmOPkL˄ lI\mI33n|^ o^5pYG qS\) rU3 sLTtMuBdCLCLx!F!Oy"Lz$[ &CL)CL}+Hk~-FH.F/Fq0OP~2CL4D7BI 8`L9Vٚ:U BACLDOP GN JCLKCLME PCLSOPVqV WY ZCL[CLCLGW VpM@L)~ U]=q[!us3"f9#@ $J%H&L'E:(@CL*H*+aCL-G&"OPCL0 1K/72H3J 4GMCL6]CL8FCL:GCL<BUZ=H/OPCL@Q(AEҥBFqCLOPE{w HAlGIZ\ JrfKV L[ G} ED%KF E  Fi G KE=(zJEOIFLoAJPEV PB"uɱ#LLMY?Oo^ PJQDSCLWEXF YOP[CL\CL]CL^CL_CL`CLaCLePgfKfgYhG i_ > j_ > lCLmCLnCLoCLqCLrCLsCLt]uCLvCLwCLyNBC{CL}D>fCLCLDBCLCLCLOP$H!%Ie&NݪCL*F,^5OP.SCLCLOPCL3q~4Au6I7F348@g9b(:Yfg;]<[OP>R?E@@D5ATxyOPDBREE(FDRGMRFfV3Ob J^@!nWeJ Z4 tx r !CL CLCL `b #CL%p &|ƚ (q )ouq +,q'Y.CL/CL0CL2CL3CL6D7 8P',;s >K. @r Bof CP Fo IBvL|5! MENBk!xyhyw z@{Ed|Jt}t x" `3]^ CLCLCLCLCLOPOPOPCLGsG`{HFGFgg}e+aR}fqHMr+< NDxODPDl$QU4^RQSouq TF:BVhT& XFyYE;[򭑭\UzP^c_Dj`AaB޹bCBc@CLCLCLgn CLCLCL CLm F]n}o`( CLCLCLCLCL@CLBCLwEzfgxFJW yGPHOP{Ki |M^}OpI~Q]TAUEvoX|j ~ZOP^U |`CLcEYdGVeFOiIAukCLtlCLnC8RpuQ qnR 5sG6tF<vCLwCL:yE@;zDE<{DD?AqOPCLBCuCzn3D~\V ET=qFYGi=qH@0 LwHMj\NOEyPFQGeRF"TEkUDȭVHOPCLYEGZBOPCL]z[ ^C=CLCLaD_CLCLdDQNOPf^CLh@iS  OPk L l ImHn o^WmpZB qT rVǮ sLItMSuBNCLCLxEZy Q z"U?$CL%CL}'Hzx~)F*FIj+F,OP~.CL0D_3B 4hS35^6\8CL :C=CL@OP CII nCLoCLqE tCLwOPzp- {Y ~CLCLCLHR X4NəMff `\*ge!c"R#yg$J%H~&LvG'HW(@CL*GJ+ZCL-GCOPCL07 1Kqh2H3I4FcCL6]CL8D_CL:CpCL<~ =HVFOPCL@PAETBFCLOPE{LS H@WIi J]?KVL[~ G`ED_KFE FiG K EQ zJ4FN=7O9IJ(:L=oA@JPCEVDLvFuŲGLHMSKo^ LJMD OCLREvTEeUOPWCLXCLYCLZCL[CL\CL]CL`NgbM#3cPgdG eG f_ > hCLiCLjCLkCLmCLnCLoCL]CLCLCLN@CLD8CLCLCCLCLCLOP$H%Ib&IkCL*F,^OP.SjCLCLOPCL3qJ!4Au6R 7Bf8C9b:Z;\g<\OP>R? Es@ DA St OPD BE EF DG M T X33 Qi b~  K; @/ V3  Zn  tM  r]\ ! CL  CL CL ^D  "CL $p  %|&  &q  'o  )i *q[* -CL .CL /CL 0CL 1CL 4D 50  7HF bsU:  eJ  grn  hof  iKn  ls pBTW s{  tE uBF vyh ww|  x@ yEO |L3 t4  yU  a ] ^  CL CL CL CL CL OP OP OP CL GOE G`{ H G7 yL yL}e )s}fnHM q N DO DWP DWQ URR QS o T FJV g X F7Y E2:[ -A\ Q2}^ c]H_ Dq` Aa @b @)c @ CL CL (CLg *nz  ,CL -CL /CL 0CLm 3F_`n 6}go 7`F  9CL :CL CL ?CL @CLw Cw >x DJGy FNǮ GOP{ JiUV | L_ } Mp~~ O] RA TEt W| ~ YOP \Sn | ^CL bE> cGM Fs N0 u CLt CL C tn  n 5 G-6 F= CL CL: EO; Ad< E? A OP CLB CC xD ~\V E IF XQG N\)H @& L x\*M jN @{O EFP FCQ GvR FqT EH;U DtV G OP CLY DZZ Bc OP CL] zr ^ C6] CL CLa DQN CL CLd D_ OPf ^ CLh @۶i O OPk L l M m Ln @s3o ^"p Zk q R r Uk s L=t Mu Bv CL CLx EsZy !Kjz "Jt %CL &CL} (H~ *G" +FB, UF VOP~ XCL ZD_ \C f  ]Y ^O _P3 aCL  cD4K fCL iOP  lP+  oCL pCL rD uCL xOP {p<  |X  CL CL CL H1  Y PS3 O  s  l\ r> p! mY" Y# Il$ J% H& L' I( @p CL* Gn+ _ CL- G̶ OP CL0 ~Ü 1 Jy2 H3 IŦ4 Fi CL6 ] CL8 C CL: C' CL< }; = H OP CL@ P/A EB F CL OPE { H H:I !or J "R K #VL $[-F  'GQ (EV )D4K *KF +EZ ,FxC -G}  0K 1E* 2zJ 3Er 6OP 8Inx 9L JP AEV BR_ Eu FL GMNM Jo^  KJ|1 LD  NCL QEc RE SOP UCL WCL CL CL CL CL CL Ng Lvf Ng G  _ >  _ >  CL CL CL CL CL CL CL ] CL CL CL NA CL D6A CL CL By CL CL CL OP$ H% I_,& M CL* F, ^t OP. S CL CL OP CL3 q:4 Au6 O7 G8 D@9 b: Y; ^ٚ< [g OP> R? Ed@ DA TA OPD B E E7F DCG MY \y ag Z9 b0  J _  V  ZO  t  r# ! CL  CL CL a[o  CL Hp^  I|5!  Jq+  KnQ  M Oqb QCL RCL SCL TCL UCL XC Z  [M ^s  aJ]  crN  douq  eS_  imf lB4 o{/  pEW qBUZ ryP swQ?  uEV vE xKW {tz  ~}""  `f \Ff ^ CL CL CL CL CL CL OP OP CL G+  GU H G gG gG}e MUډ}f HM q N D|O EHP D2Q UiRQSo7 TExVg( XF>YE0H[\R^b_Dq`A)wa!B\b"Affc#C %CL&CL'CLg)n4 ,CL-CL.CL/CLm2Fgn5}go6_W 9CL:CL;CLCL?CLwBxRxDIyEQ\)FOP{Ih |K_}to~v]zA{Ew'~}f ~OPT- |CLDG#=FLN;uCLtCLCu\ n$ 5G\6F<CLCL:G;;F<FZ?A"OPCLBC=CvD~ EOQFX{GJffH@= LwHMjN~ OEPFCQG`RF~TE%UDVGZIOPCLYDZZB?OPCL]y] ^BCLCLaDCLCLdDSCLf]CLhC4iV@ CLk L l QmPnOo^|p=Zq q>TH r?XQ s@L4tAMd1uBDyDCLECLxGA yHQl~zIJ3LCLNCL}PH~RG@SF)V| YCL~[CL^faC-t bYٙcP@dQ&ffCL hDQNkCLnOP qKp tCLuCLwD|CLOPp| X CLCLCLH] g)[)WLo a{h{f>!T"D3#^Y$Ji%Hk&L'J(@cCL*F5+Z*CL-H@OPCL0~ 1N2H33I4F,CL6]CL8C' CL: BCL<| =G0OPCL@P(AEnBF'CL OPE#{ H$DEI%]& J&e8K'WL)[J ,G&"-EV.DV/KF0E*1F2Gn4K5E7zJ8EZ;O=H>KCuioAkJPnEVoO/qvrLtMHwo^ xJPyD{CL~EjEKOPCLCLCLCLCLCLCLNgFNgG G _ > CLCLCLCLCLCLCL]CLCLCLN>CLDGtCLCLC4CLCLCLOP$H%I]&OCL*F=,^BOP.Sf*CLCLOPCL3p~4Au6O337Dٚ8~9bj:Yl;]<[`OP>RvK?EQ@DAT@SOPDBEDFDG0MmA4\45a6ZVf7cn 8J#9D qOP{thfg |v_H}wpۈ~y]|A~EO{ ~CLT'U |CLD;HF^.FiuCLtCLD/t n1' 5G6F8yCLCL:G;B7<G!?AOPCLBBCu-D~E EO{FX34GO34H LM(Mv{ NKOEPFQG]RFwTEUDsV`eCLCLYDZAҩOPCL]y1 ^C'CLCLaDSCL$CLd&{in )CLf*],CLh.CUi/NH\2CLk5LEm l6Y\)m7Vn:Uo;^p=X q>Q r?S s@L(tAL~uCDECLFCLxHA"yIPԃzJJ3MCLNCL}PH@~RGJSFxV}: YCL~ZCL]RC8 b,XFgVS3CL D|CLOP Mc CLCLDXCLOPp W CLCLCLHw g[<Wf: bjh8R!TL"IY#k$Ji%H&Lڄ'JB(@nCL*Fi+`-CL-HOPCL0} 1K/72HJ3Iq24FwCL6]CL8BɀCL: B5 CL<| =G`OPCL@P8AEBG’CLOPE"z$ H#BSXI$dl J%NK&VݻL'Y RG&"SEVTDSUKFWE*XFYGQ[K\DO]zG^EtaOcI~dKAhoAjJ-8mEVnLvpv#qLrME/uo^ vJPwD4yCL|En~EBOPCLCLCLCLCLCLCLNgFNgG _ > _ > CLCLCLCLCLCLCL]CLCLCLN?_CLDJ*CLCLBCLCLCLOP$Hp%I\G&KYCL*Fz,^4OP.SpCLCLOPCL3p4Au6Kg7Cg8339!bu4:"[34;#_3<$\%OP>&Q?'EIe@(Dw A)T U*OPD+D9^E,DMF-DdG.MV2cs33is34af6c# 7I8> ;W <[ =s >q !BCL CCLDCLF^ ICLKo7 L{in Np Ome Q2Rqde|CL}CL~CLCLCLC4 LVhr J s)~ rz N mfA${/ F!OBy7wl EE*K|tM @a]^CLCLCLCLCLCLOPCLCLFG+ HF>gzgz}eQ[}fIM qP N DOE PDBQUdRQkSo TEVg{ XG+YE[\DRl^GcLK_IDx`JA33aLA!HbM@BcN@qPCLQCLSCLgUn[ WCLXCLYCLZCLm]Flna}4ob^ dCLeCLfCLgCLhCLiCLkCLwnxRxoOpypPqOP{th |v^}xq~z]}A~EtE|ƚ ~CLT |CLDE FjJouCLtCLDtO n$ 5GM6F3 CLCL:EG;C&/<Gژ?BCLCLBBCsD~ ER34FXQGHH@% LELM}NHOF PF Q GymR FqTEUDqV]CLCLYB5ZA^vOPCL]yz ^D CL!CLa#E&CL'CLd){LS ,CLf-].CLh0Bi1N4CLk7L1 l8Zm9X=qn!vt3"w_y#xw@$yJ:%zH/&{L'|J_4(}@[CL*F7 +ZNCL-H/OPCL0} 1K2Hi43IC4EޢCL6]CL8BCL:BwCL<|j =GOPCL@P<AEbKBGCLOPEz HmIml JI;!KVSL` G )EDKFEsZF:GQKE}zJEZOHK:[oAJ"QEV,QQ%.v/L0MC]3o^ 4JP5DQ8CL;E\ N_ > PCLQCLRCLTCLUCLVCLWCLX]YCLZCL\CL]N;_CLbDBcCLdCLfB?CLCLCLOP$H& %IZ&GCL*Fb,dآOP.S#.CLCLOPCL3ql44Au6N7G38AS39bm:\ ;^<]`OP>QW?E;@DsASOPDF"EDܜFDLGM4dFgia3c IW76Z XX [J srb qt !CL CLCL_Z CL o  {LS  ph  n0  qCCLCLCLCLCLCǞ A HD-r "Jj %r &u65 'O=0 *tf-AX{a YF/[B+\y7]vܹ ^E_EaL!dt h{D i`j]k^lCLmCLoCLpCLqCLrCLuOPxCLyCL|F}Fy~HFyhh}eUf7}fJ(dMqn NDOEwPE0QURQv`Sof TEVgo XGYE[ٮ\TI?^f˞_D`@aB bB.cBHCLCLCLgn4 CLCLCLCLmFY n~o ^ "CL#CL$CL%CL&CL(CL)CLw,zGx-Ny.QR/OP{2h33 |5_\}6n~8];AۏuQCLtRCLUDVv/ Wo 5YGt6ZF7CLCL:D;C<HG?DCLCLBA Cv$D~ EWF[pGSH@ LLBMENOOF PFQG_[RFnTE.UDV^bCLCLYAW3ZB=CLCL]y@ ^ETCLCLaFRCLCLd{ CLf]CLhBiRFCLkLEm lZ =mV n\o_<p\B qVQ rX s KІt Ku Dɲ CLCLxB yRzICLCL}G~GObE}I "CL~#CLMFOC PufQkShUCL VEZYCL\OP _S/ bCLcCLeG&"hCLkOPnqes oY rCLsCLtCLwHe xiy^zYI}@[qca!Ts3"IFg#g$J:%H&L'Ju(@CL*F+`CL-HzxOPCL0}u% 1M2HM3I4ECL6]CL8BCL:BCL<}I =G;CLCL@NAE%BMCLCLE}T HCտIY JS=KWBLZn FETDK EsZF:GC K!E4"zJ#E'O)I*K/q-oA/J2EV3P5v06L7MC];o^  CLCLCLCLCLCLCL]CLCLCLN6CLD7(CLCLD- CLCLCLOP$HF%IX&QCL*FT,d}OP.RԫCLCLOPCL3q]L4Au6K7I 8Gٚ9bx:[;`L<^fOP>R8T?E*@D{AT.TOPDH?EDӍFDGMZzf`k3cdc H${ XX [g s8 qHF !CL  CL CL ^ CLp^ {w q n @ @q =BCLCCLDCLECLGCLJCK~ LKZOrk RJ Ts Vup WK Zr]A3`{H aF(bBndy7ev fElgDZhK\Wis lw ma o]p^qCLrCLsCLuCLvCLwCLzOPCLCLFαFGFH||}eY}fUJ/MqN NDOEPDeQURQDuSo TEVga XG5YD[ۯ\Q'^fm_D` @1a Aٚb BcA(CLCLCLgnL CLCLCLCLmFKyn }4o"_x $CL%CL&CL'CL(CL)CL+CLw.vQx/Hy0O1OP{4g |6^A}8p~:]=A,>E*A|& ~CCLnT; |pCLsD"tE&uFfyNDu{CLt|CL~Eu o 5Gɔ6FFCLCL:DJ;C<IR?DCLCLB@۶Cy.D~t ES >FXQGMHHA L@aHM~NLOF PF"QGYRFvTEH;UD^V^CLCLY@nZC CLCL]y] ^FCLCLaF/CLCLd{ CLf]CLhB iUCLkL? lq33mnn]o_p[ qVH rXB sKtKuDwCLCLx CDy PTz5K7CL8CL}:G~@@CL~ACLCEWFC GcLHYٙI[YKCL MFbPCLSOP VML YCLZCL\H[_CLbOPdq eZ hCLiCLkCLmH ongd_I@_Y >`ǯ_G!y"j33#B$J%H&L'J3(@CL*ET+ZCL-HdOPCL0}f 1Jͤ2H93Hx4ECL6]CL8B CL:BECL<} =FCLCL@M#AEB Op CL CLE ~ H DII ` J IvK VL Yuc  Fݱ ET D| K  E F G&" K E:O zJ E O I K6 #oA %J  (EV )Lv +vc ,L -MA 0o^  2JP 3DŚ 5CL `E& aE  bOP dCL eCL fCL gCL iCL jCL kCL nOvf oLFf pYg qG  r_ >  s_ >  uCL wCL xCL yCL zCL {CL |CL }] ~CL CL CL N:R CL D>f CL CL C CL CL CL OP$ Hl% IW7& LR CL* FLa, d OP. RY CL CL OP CL3 q<4 Au6 L7 F8 }fg9 c]: @g; @ٙ< z OP> QW? E#P@ D}xA S OPD HD-E DMF DAG Mk f| lC3 c e  H{ >  X2  [~  s T  q ! CL  CL CL )`q.  ,CL /pA  0{=  1pӖ  2n  4o 5q2 7CL 9CL :CL ;CL F @CL  BF ECL HOP  KVO  NCL OCL QHU TCL WOP q  ]  CL CL CL H  E zٚ wf @ i=q p ok! k4" X4# gY$ J(% I& L' JJ( @P CL* E+ _ CL- HG OP CL0 } 1 Or2 H&3 H4 E CL6 ] CL8 A" CL: C  CL< }; = F CL CL@ MI$A EB H= CL CLE ~; H IqI m4 J F4K VNL `q.  F5 E DX K  EZ F G K Eq z FN= O Im L oA J EV S  i_ >  kCL lCL mCL nCL oCL pCL rCL s] tCL uCL vCL xN7o yCL |DP ~CL CL C. CL CL CL OP$ H% IW7& H) CL* FW<, dQ OP. RV CL CL OP CL3 q$4 Au6 H7 D8 9 e: C; B@< Cf OP> Q5? E@ D~_A Sn OPD HE DF DG M{ hff o eS3 e  GT@PX| [ r q !CL CLCL^ "CL$r# %{ &r1 'n% *+qGK-CL.CL/CL0CL1CL5Cu6~ 7H:r1 =Jn ?r1 @t BK Esc3HAؤK{a tEuBnvy7xv yEzEW|LՑs x7w `3\Ff^CLCLCLCLCLCLOPCLCLFFGFbgg}e*X}f tJMq NDTOzz PDQYROzSo TCVa@ XGYD[\T3^b+P_gr `@aNT{bOxRcNCLCLCLgn CL CL CL CLmFF n}4o_[ =CL>CL?CL@CLACLBCLCCLwGAxHMyIQ JOP{Mb |O]}Pn~S]VAWE~Z} ~\CL^WD |aCLdDŃeGfFjHZulCLtmCLoE DpvA ro 5tH%!6uFtwCLCL:B;B<J?DCLCLB@C{DP ERQFXGJGHAU LC)MB&fNN޹OFPFVQG`RFI)TE8UEV]ACLCLY~ ZCCLCL]yz ^G4CLCLaGJYCLCLd{ CLf]CLhCL!i T1 CLkL lGG mF3 na@o`2p_ q\ = r] sK'tKuBYCL CLx"Cy#Rcz%Iw(CL)CL}+G&"~-Gm.F)/@1CL~2CL4DX7CC 8J9Lvf:EfGXiCLlOP oYo qCLsCLuIwCLzOP}q ~] CLCLCLI Gf~xs4@=api=qg!h"`s4#IY$JR{%I=&L'J{(@FCL*Ez+ZCL-H@OPCL0}I 1MQ2H3H@4EHCL6]CL8ACL:CwCL<} =F?CLCL@M AEȬBF~CLCLEK HGJIh' JOKWL[-F FEDVK EFFK0F}1zJ3FY6O/8I-9LJPAEVBODu9EM FMJJo^ KJPLDNCLQEuRF4hSOPUCLVCLWCLYCLZCL[CL\CL_Ng`K3aYgbW cG dG gCLhCLiCLjCLkCLCLCL]CLCLCLN5CLD`CLCLy CLCLCLOP$Hf%IW&GkCL*Fy,dOP.RCLCLOPCL3p4Au6QL7E38A39h*:BFf;B<~S3CL>W?E@@D}xASOPDH]EDFDfGM p wg m f0 G^ X| \Rp rn p- !CL CLCLa  CL"pmy #z $p &nQ '~M)q,Q+CL,CL-CL.CL0CL3C\~ ]M`rs cKU er@3 gtz hS_ krfnBq{a rCsCuyvvv wExEѕzK(}sU: yw `]9^CLCLCLCLCLCLCLCLCLGFĽGFl|3|3}e'X;}foJzMrez NDOAPDQY1RO*So TERVf} XGYE9 [Ę\Q^d8_m8 `@]aP^bMRcNCLCLCLg&nk[ (CL)CL*CL+CLm.FGn1}o3`F 5CL6CL7CL8CL9CL:CLKWLZ G&"G )B B  B !Go"G&"#B $Ff&zJ(Go+O/-I"7.L1r 3JP6EV7L>9v#,:M ;MQ>o^ @JmAECCLFEZGEHOPJCLKCLLCLNCLOCLPCLQCL|Ng}Pf~YgAE\)FCLCLCLCLCLCLCL]CLCLCLNHCLD_CLCLA+CLCLCLOP$I%I\G&PeCL*F,gOP.QCLCLCLCL3p4Au6Q7Df8BL9jZ:E;Cg<BCL>U-?E9@DAV#CLDEED-FDئGXa~px9mg G]Mw X` \o  r  ph ! CL CLCL^a CLp zcz p< n$ EFq%HCLICLJCLKCLLCLPDQ~Q RPUr XKff Zr]\ [tY ]L/ `o3cB>f{ gChDiykvh. lEmEToK_<rs8 u} v`|x\Ffy^zCL{CL|CL}CLCLCLCLCLCLGFGFAA}eEL}fJV Mq NDOBiPD~QYmRNjStM TFhVh XGYEM{[ +\ S^d=j_n `@?aP0bNcMCLCLCLgn  CL!CL"CL#CLm&F(2n)}o+_R -CL.CL/CL0CL1CL2CL4CLw7t(x8My9Q :OP{=j |?_4}@o\?~C]FBOGEa}T ~CLW | CL D E~:FLO"uCLtCLDmt- p 5H~6GOECL CL:"A;#F<$LO?%EZ(CL)CLB+@gvC-vgD0k E2_ >F3eG4`=qH5B$ L6DM8BN9OYO:FP;FQdG4ReFvTfFDUgEKVhBOjCLkCLYm|` ZnC>qCLrCL]tx:D ^vPxCLyCLa|N.~CLCLd@}BCLf]CLhCiTPCLkM lG mG. n`&foa|p[ qW rZ\ sKmPtK uBkCLCLxC4yTzGeCLCL}G4~GFEACL~CLD%CX T3TN3CL GgRCLCL CLCLWCLCLCwY/ CLCLCLI H@3x,@hF.c/lg0j!1cf"2U3#3Aٚ$4J%5K &6Lĥ'8K"(9@4;CL*=E]+>UIACL-CHs<EOPGCL0I|= 1JQ^2LH3MH4NFPCL6Q]RCL8TAlWCL:YCSc\CL<^}f =_GbCLcCL@fMI$AgF BJ˽CLCLEAt@H}x[I{( Je'-KWL\^ DSDnQB oK B EV[DSB D-{,FhRPIiM r JPEVLvvUM Mpo^ JmHCLEWWF=OPCLCLCLCLCLCLCLPgPgavgdQ__ CL CL CL CL CLCLCL]CLCLCLN; CLD_CLCLA"CL#CL$CL%CL$'Ji%(I}&+M5.CL*YGbK,Ziy[OP.\RGv^CL^CL`CLaCL3cp4eAu6hU 7iHf8jG9mlf^:ng;oB<pYrCL>uW?vE}@wDAxXzCLD|EZE~E-JFE+GWw:s{`pc4h(] G> Xb \ rk p !CL CLCL_ [ CLp$ zT p n ʭw2qDsCLCLCLCLCLD#~y KFqJ Jȉ rN t4 N o3Boq| z CuDyvY EEѕL r #k. $`%Xf&^'CL)CL*CL+CL,CL-CL.CL0CL1CL4G'l5FŤ6Gm8F;g\)>g\)}eb^d}fJMYr N[DOBYPDQY,RNS TGGVi XGYEOn[ P\S[^d_o* `AaPubQ.cNCLCLCLgnq CLCLCLCLmF n}\o_'t CLCLCLCLCLCLCLwwHxOpyRaHOP{k |^}qfB~]BjE~OI ~CLX  |CLEEtF FuCLtCL E"N vM  p! 5H6GCLCL:A/;Da<LH?FbCLCLBAC!wD# EMkFO~zGPhHQBk LRFxRMSDuNTPHOUFPVF)QWG@RXFtTYF{2UZElV[@]CL^CLY`{a ZaDVdCLeCL]gx ^iR]kCLlCLaoQqCLrCLdt|} wCLfx]zCLh|Cwi}OІCLkMl lHW mH33 n`oaZp^Ǯ qZH r[ sKetKouBUCLCLxCyRzG4CLCL}G-a~GFM BpCL~CLDVDO T3U34N9CL DnQCLCL ޻1CLCLWwCLCLA:\< CLCLCLJst Gt<x@!bfg"jB#hu!$j33"&cL#'H$(J%)L&*L'+KOI(,@..CL*0E9[+1Qc4CL-6Hؒ8OP:CL0<},l 1=M~2?H 3@H(4AF CCL6D]ECL8GAJCL:LCOCL<y}: =zGC}CL~CL@M^AF_BE'CLCLEBUZHFIAc{ JRKWGLZ B)A:nB ll mYk BBEl CI{Z,FXbOI~M r K EVP'3vM Mo^ JmJCLEF=OPCLCLCLCLCLCLCLNgP\^fd#_eCLCLCLCLCLCLCL]CLCLCLN=CL D` CL CLA$ZCLCLCLCL$@J7%AI&CIFCL*IH;,JjKOP.LRNCLOCLPCLQCL3Sp4UA6XW&g7YR338ZLY9]n&:_3;`CY<a| cCL>eY~?fE@gE AhZwjCLDl@۶EnEFoEvGpXrtrfuz4vo`wh xGe%y# X \ r@3 p^ !CL CLCL_ [ CLpmy zT p- o . qTCLCLCLCLCLD,~b H$q Is3 rk t NC& sB|C CDyvY  EW EW L{Cr qw `fY^CLCLCLCLCLCLCL CL!CL$G:q%Ff'G}(FJ+g.g}e_&}f J\Mqr' NsDOtBPuDQyYRzNt<S{@T|GdV}i7 XGYERY[R\U}^df_o `CeaP0bMRcPGCLCLCLgnA CLCLCLCLmG-n}o_{c CLCLCLCLCLCLCLwx=qxOyNROP{l |_W>}p ~]CE}h ~CLXTF |CLE~EFcJv}uCLtCLEMPw J p`B 5Hض6G-CLCL:A; Aa< MU? F6CL7CLB9A/C;x,D> E@v\FA~ GBl\*HCB LDFMEEs4NFB\OGF$PHFVQIGH.RJFaTKFULExVNB-PCLQCLYS{= ZTDWCLXCL]Zw ^\V[^CL_CLabVdCLeCLdg| iCLfk]lCLhnCwioW`CLkM lH mGk n`oap[ qU rV sKbdtK١uBnCLCLxCByMtzNtCLCL}G )~GFM BCL~CLDE3 X33Y4PffCL A$ZCLCL нCLCLO;CL CL @; ^  CL CL CL K  Gg c4 yFf @ Z> b b(! y " d # @$ J% LJ& L{' Kh( @_w CL* "E*+ #U &CL- (I/j +CL ,CL0 .}u% 1 /Jo2 1H3 2H(4 3F.Z 5CL6 6] 7CL8 aA dCL: gCu iCL< k}I = mGJY pCL qCL@ tMVA uFB vE xCL yCLE {BH |HI }E J ~H K X L Yf  EV EV B  n  EV EV jb  B  E {l FN= O/ I M  r  L @  Q wlS M  Ny `w/  JyL M_ CL E: DO OP CL CL CL CL CL CL CL Ng O a3 N  MR P^ CL CL CL CL CL CL CL ] CL CL CL NP CL Dc CL CL (}  +CL ,CL -CL .CL$ 0KH% 1J6& 2F}t 4CL* 7Is, 8k :CL. =`u >CL ?CL @CL BCL3 Dpw4 FAu6 IJ7 JNL8 KK`9 No: ODg; PEi< QC SCL> VZZS? WFK@ XEU/A Y[ [CLD ]r E _F+KF `E=G aY x 2 u| i]  G|S =x  Yc  ]  rs  pPL ! CL  CL CL \Rp  CL p<  zT  q  oXB   q  CL CL CL CL CL D9O ~U  MN q  I  r  u ~  Lx  o B |C  C D% y vK  E E L{ r  hU  ^3 V3 ^ CL CL CL CL CL CL CL CL CL GH FQ G Fa gQ gQ}e KE}fJM br N dDO eC%P fDQ iZ9R kN[GS lpX T mGWV nj* X pGY qEa[ r\ tQ^ wf<_ xo ` zCa {QT{b |P4c }Ns4 CL CL CLg n  CL CL CL CLm HS_n }4o _R  CL CL CL CL CL CL CLw }fgx Oy R OP{ l | _~} p&~ ] C} E }I ~ CL Yx | CL E%s Ey F Pou CLt CL E1 up  o 5 H6 G CL CL: B1 ; !G < #N? $G-a 'CL (CLB *B8PC ,x6D /@E 0R)F 2[G 3OBH 4Bx L 5YM 6M >N 7YW O 8F,.P 9FQ :GCR ;FT U @CL ACLY C{w Z DDY GCL HCL] JwQ? ^ LL NCL OCLa RN4 TCL UCLd W|  CLf ] CLh Ci UE CLk NZl l J m J{ n i3o aOp ]aH q YaH r [ s Kt Ku B CL CLx Dy S~z G CL CL} G4~ G˖ FRy B CL~ CL E FK&  Y [3 SI CL  n  CL CL   CL CL BF CL CL kh  \  CL CL CL K  I^f A#3 { @ Y> _G ]! zff" e3# L$ J% L& L' Ks( @ CL* E*+ ]D- CL- @Q CL CL0 { 1 HJn2 JH 3 KH4 LF{ NCL6 O] PCL8 RA{ UCL: WCu ZCL< \} = ]G}  `CL aCL@ dMfA fF6[B gE iCL jCLE lCScH mDjI n[g] J opDK qWL rY  tixB  uixB  wEV xEV yEV zixB  {\  |EV }n>  {ey EB P IX M  o L B3 K w M  Ny `w/  J|1 M_ CL Eb/ E3 OP CL CL CL CL CL CL CL Y Ng a `L _ c CL CL CL CL CL CL CL ] CL CL CL NJCLDXCLCLqt CLCLCLCL$!K%"I0&%Mܪ'CL**J,+kx--CL.0c2CL3CL4CL5CL37pG49Au6Qf9AqI:CG;DH<EGgFCL>IW?JF@KEMAtN>vCLDxi/3 EzFF{FG|W5{0@wj{ FQ}v Y, ]K qJ p3 !CL CLCLa< CLph y{ q9 o C1; r?CLCLCLCLCLDK\~ S8q H rE u ~ TJ o)B| C>Dy7vK EEK82r lȉ ^3T\^CLCLCLCLCLCLCLCLCL G[ F G Fngg}eX }f JsvMYr N[DO\BP]DQaZRbNScouq TdGVejU XgGYhEk[j5\kVl^ne_ooU `qBfarR#bsVcuS)wCLCLCLgnA CLCLCLCLmG\no_[ CLCLCLCLCLCLCLw{xOyY(OP{lwx |^g}on~^C^E~; ~CL[ |CLE.EwGJu CLt CL EHvm o 5I 6H&CLCL:CZ;J<Oz?FCLCLB!A"C#zg"D&@QE(Z.F)cLG*TH+C@ L,RhM-PN.\O/F0P0F Q1G6R2F7T3G U4FV5BO7CL8CLY:{/ ZCL?CL]iwl ^kKmCLoCLaqM^sCLtCLdv|ƚ yCLfz^|CLh~C4iRp\CLkN lK( mKk nhobNpa=q q\8R rZ= sKtKuBCLCLxDySzH CLCL}G~GFWBCL~CLDFى ]]HV#4CL r@3 CLCL _zCLCLQUNCLCLk ]̎ CLCLCLKf H[3C)}fAJV[Zf!u"hS3#Bg$J5e%LG&L<'Kl(@0CL*2EO+3X6CL-8BF;CLyl 1?N2AH3BH:4CEECL6F]GCL8IAlLCL:NC:QCL<S} =TG`WCLXCL@[MC\A\FOB]E_CL`CLEbC~HdBIelHr Jf`KgW<Lh` k[g ixB A^vEVEVi| ixB EVi {DpP'TI~M p@LBVRX&wLM `w/ SKCLESEOPCLCLCLCLCLCLCLk#3^<qS4LBP(N CLCLCLCLCLCLCL^CLCLCL NM CL DFCLCLnB CLCLCLCL$K%IL&P!CL*$LZ,%YJ'CL.(C{+CL,CL-CL.CL31p2a43A6^j7_kg8`fL9btk:dGFf;eJ<fG33hCL>kY?lG @mE AnOpCLDqk=" EsFFtEGuY.y}zB4{y4|k }ET Y ]w q p !CL CLCLb CLp< y#; p oK *st:CLCLCLCLCLDa~ LZrs ~n r tY N siC#DMCSC@( FEdELʻ^'U [Y ^lUf^CLCLCLCLCL%CL&CL'CL(CL+Gp,F.G/F2OB5OB}eX}f J,MSsk NUDyOWB PXDrQ[ZKR\NS]o T^GV_j0 XGYE~'[\SN9^fv_pr `AaSbUcRpCLCLCLgnh CLCLCLCLmGdn~go`#B CLCLCLCLCLCLCLw|xO)yWOP{mwx |^}mg~^CME~ ~CLZp |CLELbE7G;$HuCLtCLEEx&  pȵ 5 I"76 HGCLCL:CSc;L<OCa?GXCLCLBB}CysD @E"\(F#gG$[BH%Co L&SRM'Q NPNROQF5PRF(QSGIRUFTVG)UWGVX@P5ZCL[CLY]zu Z^EaCLbCL]dv ^fKqNhCLiCLalLnCLoCLdq} tCLfu^vCLhxC:iyWi;|CLkO> lK\ mK nhobp_{ q\B rZ{ sKotKuBCLCLxDJyPԃzJwCLCL}G4~GFbB+CL~CLEGG~) _y_S3WfCL l CLCL ڷgCLCLXGCLCLhE^ ] CLCLCLL. F{3@ {fBVW ^:ap!  "!kff##E$$Id%%K&&L''J((@k*CL*,E9[+-XF0CL-2B5CL6CL08y@ 19K2;H3KCL<M} =NGgRQCLRCL@}MA~FQBEޢCLCLECμHbIh; JDXh KWL_LK ixB ixB EVEVEVixB ixB EVj[ {<E,OOILq%LBVLvyBKM `w/ QJ&CLEgF0OPCLCLCLCLCLCLCLr&favgv `ǯ_d#CLCLCLCLCLCLCL^CLCLCLNTOCL D*| CL CLme CLCLCLCL$Ks%JF&L.ECL*GLU,HUWJCL.MNvOCLPCLQCLRCL3Up}4VA6Yy337ZsY8[o39^w:`G#4;aL<bFdCL>fW?gG:@hEAiQkCLDmjH EoF3FpEGqW2u@AvClw|34xo yEz }Y ]Z7 q^ o !CL CLCLaЊ CLp y#; p o Eovo/CLCLCLCLCLDr- B2D]tr t V pCI<SNeC/CF) OECL?CLxAD_yBJzCFFCLGCL}IG-a~KGLFzRMAOCL~PCLRElUHGL V_W_gXXZCL \tz _CL`CL a;bCLcCLfW`:CLCLl ^zv CLCLCLLR N&fEE3D-b>efgfs4!Q"G@#X$IY%L &Lp'Jf(@UKCL*E+[5CL-BrdCLCL0y 1I?2H/ 3H14ECL6]CL8@`2CL:DCL<} =GJYCLCL@LAFuBECL CLE DH H-I_V` JYO KGL\ m mYk EVB B B mv B  B"{ey#E,O&OP(Inx)K$,p.L/AZO4m\|]JP_L`aw cQeKgCLjEkFlOPnCLoCLpCLrCLsCLtCLuCLxt\ylgzf{_|q~bCLCLCLCLCLCLCL^CLCLCLNhCLD5YCLCLFv CLCLCLCL$Ke%J+&MqCL*K,_CL.ZkCLCLCLCL3p}4A6@37|48s9ya:G3;K<F3CL>ZP?GhJ@EAZ CLDqJ EFF FG!Y=%}4&A'z#3(po )D@*A .Y /] 0q3 1o+ !4CL 5CL6CL8^; q ?y#; @p Ap^ CQDj,WGCLHCLICLJCLKCLNDoxO+ QAlRR¨U]YVr Wu XZX [pPCqSxCCCf Q 6EE!SN(z _D ^3R`^CLCLCLCLCLCLCLCLCLGFGmF?OO}eCcl }fJfMs\ ND-OB[PDmQ[RMSnT THVl X GY E[ }\ Ql^bW_qU `@!aWHbVRcQfCLCLCLgo] CL CL!CL"CLmMFHnP~oRa  TCLUCLVCLWCLXCLYCLZCLw^Ex_Uy`\aOP{dn |f]}gq(~j^mBnEJq} ~sCLvY_ |xCL{Erj|E{}G2sPUuCLtCLDp!v;e pG 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElOI y`3za3{\}CL  CLCL CLCLVCLCLs `v CLCLCLL= NEDDpUaHZ\Yff!S@"Gp#c$IV%Ls&Ly'J7(@8CL*EO+ZKCL-BCLCL0zT 1Nַ2H@M3I4FCL6]CL8ACL:D4KCL<~# =G`CLCL@LAF@BECLCLED%HILIp5 J hdKX]La ixB l3 @B B nB @m<8 AB Bm E|FD'IOKI LLOrKQM RB[)UPPW}zXK&ZK+[d] ^Q`KbCLeEpfF=gOPiCLjCLkCLmCLnCLoCLpCLst3tr`uvfvMRwVxOxR{CLCLCLCLCLCLCL^CLCLCLNCLD8CLCL@۶CLCLCLCL$K%I&N`CL*Lf,VV4CL.KCLCLCLCL3o*4A6A\7yl8@P9 {j: Jg; KVf< HCL>Y]?G@FANVyCLDn EFFE GX D!Gf"B>g#rQ $D%%@1p(Z *] +q ,o+ !/CL 0CL1CL3c 7CL9q :y@Y ;qt GXACLBCL}DGJY~FGGFHA_JCL~KCLMElI* dc3c_XCL v( CLCL ̽8CLCLYhaCLCLkd `  CL CL CL MA  Pk3 C B E ]k b a#! Q" Jy# d$ Ixu% LC& L^' KT( @Ƥ CL* El+ RQ; "CL- $@۶ 'CL (CL0 *y@Y 1 +L]2 -HO3 .I+K4 /Fu^ 1CL6 2] 3CL8 5AAh `CL: bDnQ eCL< g~; = hG kCL lCL@ oLA pFB qF tCL uCLE wDH xDAI y@ J {P K }IsdL lD  Z  ixB  EV EV EV ixB  ixB  EV i  } D O I6/ L tI M  B  Lv @@2 K? K  o^  Q Eʘ CL EN F CL CL CL CL CL CL CL CL t6g r` vf q z q CL CL CL CL CL CL CL ^ CL CL CL N| CL D7( CL CL (q  +CL ,CL -CL .CL$ 1Ku% 2I+& 4I 7CL* :LT, ;T =CL. >JZ ACL BCL CCL DCL3 Go4 IA6 LE7 MF 8 NE9 P|S: RL`; SLS3< TJ4 VCL> YYU? ZG@ [F3vA \G ^CLD `i/3 E aG/ F bFGG cX F I3 E  s)  D @P ZB  ]  qes  o۔ ! CL  CL CL ]  CL rN  y]  q  q3  ^ a; CL CL CL CL CL Dt h  A/ b ]% sU:  u}  ]-  pl C V DG CM Bu  T> EO E S N7.  \w  ^l R  ^ CL CL CL CL CL CL CL CL CL G F Gti FW O\ O\}e j}fIuM es N gDLO h@-P iE5Q l]D3R mMS onn T pF^V qg X sHY tEi[ uo\ vR^ zc*P_ {iq ` |@SRa ~mb l c i CL CL CLg o  CL CL CL CLm Fpn 9o b  CL CL CL CL CL CL CLw Ex Uqy ` OP{ d | ]} nI~ ^ Bq E( y ~ CL \ | CL EL F= Gf L"u CLt CL CZ x  p 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl 2J  3a^f 4a 5\3 7CL  9y#;  f ?CL @CL CS ECL FCL Hj  Ia  LCL MCL NCL QMw  RJ SB TA WFG \ `. ^)! d34" [# E$ I% L#& L ' K ( @ CL* EZ+ Xg CL- A CL CL0 z 1 K2 Hfy3 IF4 F CL6 ] CL8 A2 CL: D CL< ~' = G̶ CL CL@ L!A FkB G CL CLE EH CI ]b J M\ K Xx+L a/  m  l  EV EV EV oK  m  EV B ~  D O I| L t L n`*  P x A+ JP JP o^  Q BM CL E F0 CL HCL ICL JCL KCL LCL MCL NCL Rw#3 Srf Tvf Uq V{L Wq YCL ZCL [CL ]CL ^CL _CL `CL a^ bCL cCL dCL fNd hCL jD) lCL mCL ouD  rCL sCL tCL uCL$ xK% yJ1& {NAj ~CL* L, V\ CL. I CL CL CL CL3 o:4 A6 E7 Df8 Hf9 ~!: I3; Kg< G CL> X? H'@@ FEA D CLD qHF E G]cF FG X- C F Af t  CB @v Z4  ]b  qes  o۔ ! CL  CLCLdTj CLr y qJ r PD ]C CL!CL"CL$CL%CL(D ) *A?+f.]%0s 1v4 2^ 5n8C<9\+>:DMB: ARBEBCEΰDSKGU7 K^H t`uTfv^wCLxCLzCL{CL|CL}CL~CLCLCLHF-GoF4NN}e`X}f IMs NDNO@­PERQ^-RMS~24 TEIVe`E XH @YF Q[7(\Qx^dH_m9 `@aUbWfcRCLCLCLgo CLCLCLCLmFƌnob CLCLCLCLCL CL CLwCxUy^#OP{].{}@n~B^EBwFE=oIvI ~LCLN]x |PCLSE6TF`ZVGvYM{[u[CLt\CL^C߿`xv aq/ 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElwKQ eef`CL @.CLCL rCLCLBCLCLr b CLCLCLM O4G(F3FQW&f\}q[![ "NC3#{$I%L~&L'K&(@CL*EW+anCL-A/CLCL0 {/9 1 Ii2 H3 Ik4F9CL6]CL8ACL:DCL<U = G#CL$CL@'LLA(FB)Ca+CL,CLE.EOH0AI3g3 J4OO K7H wL:ax =EV>EV?B hB iB jEVkEVlB mEo~qE4tP52vIrwLzss|JPm LvAJPJPo^ QBMCLEFCLCLCLCLCLCLCLCLt6gk3t6gOxRVRVW CLCLCLCLCLCLCL^CLCLCLNrCLDCLCLy# CLCLCLCL$Kř%JYz&OOCL*K,aCL.ICLCLCLCL3o$4A36KC37Pf80G93N:5H;6K`<7F&g9CL>FVA?A\@CLDBv? |CLEFGIf_uCLtCLCixV q 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElG5 a3d_CL ' CLCL CL$CL&F((CL*CL,s -\s /CL1CL2CL6Q29NVf:Eg;D#3>Gx=@f=qAfBe!Cby"DUY#Es $FI%GL&HL'IK&X(JA1LCL*NB +OkRCL-TAeWCLXCL0ZvK 1[h2^H3_Im4GmCL6]CL8AW3CL:E#CL< =GeCLCL@LAG@BFCLCLEEHUIp Jn KX*L` \^ ixB BEVEVj ixB EVj }UDOI"7LuJPme LvB`JPJPo^ QBMCLErtE*CLCLCL CL CL CL CLCL~ətS3vfVuVRV0CLCLCLCLCLCLCL ^!CL"CL$CL%N{K'CLRDSCLTCLVtj. YCLZCL[CL\CL$_K%`J0?&cJYeCL*hK,ic[kCL.nNq/pCLqCLrCLsCL3uoN4wA36zI 7{Eg8|F9@+:J;M)<HpCL>X"C?H@FrAs T CLDm EGFF%!GX/3CFB+3v B2@WZƥ ^SI qHF o۔ !CL CLCLe CLsF y rN r]\ P/ WCLCLCLCLCLD# A5kl]%tU v `p rf"D@6#^<$D71%C(B\ +V,D-EAU.QL1XP 4]L 6_37Q38^9CL:CL;CL=CL>CL?CL@CLACLCCLFHTGGF-HGv9IFMKLPKL}ec}fHMs2 NDOC@PErQ^1RMSBnTIKVm XHYF\[\Pl^d}_s `CܒaVbX)cSٚCLCLCLgp CLCLCLCLmHVn~oc CLCLCLCLCLCLCLwKxVygpOP{p |[t}l~^ Cy Et v4 ~CLZp |CLEFGvEQ.uGCLtHCLJCLwI Mq$ 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElcL ddfee 3f`ihCL jvW mCLnCL osqCLrCLuTuvCLxCLzj> {] ~CLCLCLQ9G;3@4}yGJ8RM@L !Yg"P3#s $I%L&LM'K9r(AAhCL*B5+jDCL-ACLCL0vI 1h2He3Ib4H@CL6]CL8@JeCL:EdCL< w =CScCLCL@QAG8BD3CLCLEF/HH5Im J WZ K!WL"^SI %ixB &ixB 'EV(EV*EV+ixB ,ixB -EV.i 0} 1D4O6I7L:v=J"Q@B APBADJPEJPo^ QEʘ CL E/ EeCLCLCLCLCLCLCLCLvgrC3pqxq!CL#CL$CL%CL&CL'CL(CL)^*CL,CL-CL.Nt0CL3D5CL6CL7t :CL;CLdCLeCL$hK}%iIƢ&lJSnCL*qLMH,rVtCL.vAqyCLzCL{CL|CL3~oV4A36Gٚ7B8F9@0:LP;LL<JCL>Y?H@FzFAo CLDk. EGFFGYCљFfA3vH AAxZƥ ^p qHF o۔ !CL CLCLb  CLs y s)~ s zAUCLCLCLCLCLD ATJm]%t w `j pfDr,Y-DR.C 1B = 4Vm5Qq6M#7PK<:Q =` ?^ٚ@OYA^BCLCCLDCLFCLGCLHCLICLKCLLCLOH PFQGzSFCVKYK}eyW[}fJHIMs2 NDnOA)\PE|Q^RMPSp3 TG1Vjt XH)YF[8\Tʫ^bX_l `CwVapqbrRcmCLCLCLgqxq CLCLCLCLmHcn#4odV CLCLCLCLCLCLCLwKRx[aHycOP{ h | \%/} m_~^C0F" {a ~CL^ |CL F:"F#G9$Fu&CLt'CL*Cw+wT ,qu 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElkR3 liLmixneypCL r{ uCLvCL wnxCLyCL|T~CLCLmJ ] CLCLCL_I33AIlGB\ECaH!TL"IY#hf$I6%L&L'KG(AkCL*Bn+knCL-A2CLCL0vW 1h{2IT3I4G^CL6]CL8} CL:ECL<wna =CμCLCL@WwAGxuBBCLCLE!F/H"JI$d~ J%n! K&WL']< *B +B ,EV-EV.EV/B 0B 1EV3B5} E6ESu9O/;IWW1?Hr@F}AHCLDt E GkF FgG Wu@8C33},w BTALv[K ^ qHF o+ !CL CL!CL#`q. NCLPtj. Qw RqJ St!N TU؄ WSYCLZCL[CL\CL]CL`D[b@!cAcdn3g]%hu' iwna jai no qD#ra>sDIStCqvA yU+{D~|D}OU>S _ afO^CLCLCLCLCLCLCLCLCLHضFG^FϙKK}eTd+}f*HMs ND"O@5PE{SQ`nRNSof TEQ:Ve XH-YFڟ[\N^"ci_#m `%B_a&Y4b'Zs4c(R)*CL+CL-CLg/qxq 1CL2CL3CL4CLm7GFn;YoCL?CL@CLACLBCLDCLECLwHFxIV >yJfKOP{Nh"# |y[}zj~|^CyEWr+ ~CL_\ |CLFG1GKM5uCLtCLC}xX q- 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElJm efdFgCL ALCLCL qCLCLECLCLu _G CLCLCLKҬHA@c3GrGLKz!["K#pl$I%Lٛ& L' KR( AZ CL*B+lSCL-A+@CLACL0CwB 1EhFe2FIA3HJ14IG1KCL6L]MCL8O7 RCL:TEWCL<Yx0 =ZD]CL^CL@aNAAbGBcEeCLfCLEhE]HibIkdOR JlRo KmZLn_Z qixB rn`* sCtEVuEVwB xB yEVzo"! } EOICLvJPn R AפJ!JPo^ QBCLE}MDCLCLCLCLCLCLCLCL~0tvfOxRVRVCLCLCLCLCLCL CL ^ CL CL CLNCLDCLCLz$ CLCLCLCL$ K%!Jx&$MK'CL**L,+S7-CL./L1CL2CL3CL4CL37o 49A6Gfg9@AX:BLC3;CO <lJpnCL>qZ?rH$@sFAtGvCLDxq EzGwF{F G|Y~B|3x B;AZ[ ^p q9 o+ !CL CLCLfJ CLt/ u pӖ s @n QCLCLCLCLCLD[ Aox]%u w| a޿ mD]:DCA\ TDbDCNaMWV Y* ^PS3^CLCLCLCLCLCLCLCLCLHFkG Fα4K\6K\}eUa}fHMTtTg NVDlOXBPYEFQ\_R]N;0S_o T`HyVak֤ XcH6YdF[fdk\gT.^jdx_ks9 `nAaoWbYucU CLCLCLgq CLCLCLCLmGWnc4of  CLCLCLCLCLCLCLwO\xX34y^\OP{owx |Y]}m'~^C^E9u ~ ~CL^J |CLF?+Gy G L u CLt CL C x|  qy 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl "Nmr  #e( $fQ %b 3 'CL  )z  ,CL -CL  . 0CL 1CL 3B) 5CL 7CL an  bfr  eCL fCL gCL jNs  kJNf lC) mBs4 pGx= rI4 sM) tJff! u`" vTi# wy3$ xIF% zL& {LX' |KZ4( }A CL* E+ [O CL- A2 CL CL0 | z 1 J `2 In83 Jd4 H- CL6 ] CL8 A CL: E CL< @Je= HVF CL CL@ LA GB A CL CLE F!OH C7I a J _ K I_L dR  [-  ixB  F>K EV EV i  ixB  EV i  }  EL5 O IF L } 8 JP (oK  )Lv *E] -K# .JP 1o^  2Q 3Eʘ 5CL 8E 9E* ;CL CL ?CL @CL ACL BCL CCL Fc4 Glg Hvf JOxR KVR LV NCL OCL PCL QCL RCL TCL UCL V^ WCL XCL YCL [N ]CL _D  aCL bCL r  CL CL CL CL$ K% JA& N CL* Ld, SU CL. |C  CL CL CL CL3 o4 A36 R7 Q8 J39 B: L; Q6g< Lf CL> Yg? I#c@ FA u  CLD l9 E GF F G XQ Ag D1 @q x  B? Ah [Y@  ^  qHF  o ! CL  CL CL _  CL tj.  v~ >^ AC BEˑ EwQ? ~ GCL J\TQ | LCL OFX PG&" QGK UJnu WCLt CL C w  q- 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl N  d eX _ CL  u  CL CL  Ԯ CL CL D CL CL j ^  f  CL CL CL N  Rg LP J Gl B F  C4! f3" X)# A$ Iu% L& L' K`( A CL* FE+ Ys CL- AAh CL CL0 }~ 1 R22 I3 J4 Hd CL6 ] CL8 A CL: F( CL< @C = Ha CL HCL@ KLA LH B MD1d OCL PCLE RF5H TA&I WlHr J XW K [I?hL ]rN  `ixB  aixB  bA: cA eA fixB  gixB  hA ii  k}  lE6u oO qI rL u} 8 xJP {B  |R }EL JP JP o^  Q Eʘ CL En E  CL CL CL CL CL CL CL CL vf r3 B3 p* x  q CL CL CL CL CL CL CL ^ CL CL CL N| CL D  CL CL qes  CL CL CL CL$ K%I+&IqCL*K*,SFyCL.VCL CL!CL"CL3%oJ4'A36*[l7+S8,Rf9.C':0M3;1Ns3<2LL4CL>7Y?8IE@9FACLD@kK EBGFCF GDYdH@c3ICJ Ky< tB3uAzy[v z^ {qHF |pY !CL CLCLf CLtx vY pX s N NCLCLCLCLCLD| ATJo3]%uS[ w bx n0EE^]DT5DA TdDi=DZLEX Y `|N|^CLCLCLCLCLCLCLCLCLINFkHFK =K =}e^5}f HZMCs NFDOG PHERQKaWRLN;0SMn TNDVPd4 XRH=YSGm[T#\UP^Xd_Yl9 `[@a]XBb^Ws4c_R aCLbCLcCLgfr3 hCLiCLjCLkCLmnFynqgorf uCLvCLwCLCLCLCLCLwIqxVW ye(OP{f |[&}j~^B/E{in ~CL\& |CLFnNG2sGPuCLtCLBw/ qw 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElM gfhffbCL y CLCL CLCL!U#CL$CL&kd 'c *CL+CL,CL/LM 0L 1EL2C5G27I:8N9MO\!;d"I%?LL&hL'iKf(jAlCL*nE+o\rCL-tAHwCLxCL0z~ 1{`2}I3~J4ECL6]CL8} CL:FECL<y1 =DgCLCL@LAH{aBALCLCLEFHj):Ih=R JmR K[yL{/9 ixB nB Ci(EVEVB n`* EVB} EOI-L} 8JPB LvELJPJPo^ QBMCLEtCEeCLCLCLCLCLCLCL0CL3vf5t6g6C{37OxR8VR9V;CLCL?CL@CLACLBCLC^ECLFCLGCLINzKCLMDJOCLPCLRwB UCLVCLWCLXCL$[KM%\J"&^RMaCL*dL_,eSgCL.iIkkCLCLCLCL3osK4A36Xl7S8My9Cv:L3;M<K<CL>X"?I\@FdAu CLDqV EGFF GXkAk3E!@gy B,Ay[ _ q9 p !CL CLCLb CLtz vR qV t!N Q Mw]CLCLCL CL CLDv A\Hp3](vK xt b׬ nPE{n` D8!DB$A 'T(D_)DJ*Kn-Q3 0W 2a 3OY\^]CL^CL`CLaCLbCLcCLdCLeCLgCLjIy^kF;lGmFqKrK}e`=}fGrMs NDOBgPEd!Q`ORNPS}f THF5Vk XH9aYG[ɯr\R^e_s `AaZbZǮcUpCLCLCLgr$# CLCLCLCLmG6n~of CLCLCLCLCLCLCLwQxWLygOP{oUU |$Zz}%j~'^*B,F&t/|oQ ~1CL3]x |5CL8F}:G[;G>GZBu@CLtACLDBEwP Fq/ 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl]P] ^gY_ggCL z CLCL UCLCLTQCLCLoK h\e CLCLCLN L.fDAffGG4Ks4J![ "Pf#~4$I%L#&L'Kj(BCL*F(+QcCL-A CLCL0c 1M02JC3KT4H;}CL6]CL8AOCL:FCL<@=ICL CL@ LҮA HݔBD"CLCLEGCHHIa0 JzKI,L{ [g  ixB !FL"EV$EV%i| &ixB 'EVPi R} SEqVOXIEYL]} 8_J$"bB cP DdGmfJPgJ"Qjo^ kQlBMnCLrEWWsEeuCLvCLwCLxCLyCLzCL{CL|CLCgt6gC{3VffVRVRCLCLCLCLCLCLCL^CLCLCLNv<CLC CLCLs CLCLCLCL$KA%J\_&MCL*L,SCL.{Z CLCLCLCL3o4A36Z47\I8O49C]:S ;Rf<Q CL>Y1?Iw0@ FA!E#CLD%l E'GF(F G)Y+C,Gy.Bf/y 0B%o1A4[ 5_LK 6qHF 7p$ !;CL ydbGeOP{hm |jZ}li~n^qCrF0uz ~wCLz`Sk ||CLFGGNkuCLtCLBLx?} q 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMElM d3eX_#3CL u CLCL גpCLCLDCLCLj> `O  CLCLCL\]LDDG6F4JW I!a3"T# Y$!I%"M=&#L'$Ky$(%Ba'CL*)Cw+*l(s.CL-/A 2CL3CL05z 17h}i29JE3:KG4;H =CL6>]?CL8A} DCL:FF#CL<#y =#E# CL# CL@#SG1A#HPB#BXB#CL#CLE#G&"H#JMI#w". J#K K#Z4uL#G#Yuc # ixB #!F/#"B ##BE#$ixB #%ixB #&B)#'i #)} #+EO#.O#0IH#1L#4} 8#6JP#9B #:Lv#;H#eJP#fJ)#io^ #kQ#lEʘ#nCL#qE#rEj#tCL#uCL#vCL#wCL#yCL#zCL#{CL#|CL#C{3#w#3#C{3#L4#Zk#MR#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N#CL#C=#CL#CL#u #CL#CL#CL#CL$#K%#JU&#HP#CL*#Lp,#T#CL.#O0#CL#CL#CL#CL3#o/4#A6#Z7#Xl8#M9#DE:#P;#Q<#Os3#CL>#Z9O?#IG@#FƏA#@#CLD#ju E#GF#F G#YV#@#,D#-@<#.y9 #/B-#0A̾#3\5 #4_ #6qHF #7pA !#:CL #;CL#gj #ACL#DuS[ #Ew% #Fr #Gtx #Iv{#JKc#LCL#NCL#OCL#PCL#QCL#TDs#U #VAfs#XpX#[](#\wl #]y #^cj #ar&f#dF#eY#gD#DT#B\ #U#CB#D#JC#V: #YD #`#OS3#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#I#F##H#P#F#K#K}e#IxS}fG[9M#tb N#DO#H P#EQ#bR# NS# n T# D`V# c3 X#HKyY#H.U[#\#O^#e_#k `#AZ#a#Yb#\nc#W#CL#CL# CLg#"r #$CL#%CL#&CL#(CLm#+Gn#.lo#/h #YCL#ZCL#[CL#]CL#^CL#_CL#`CLw#cFx#dNy#ea#fOP{#jf |#lZ}#mk5~#o^#rB"#sE|#ws ~#yCL#{^r |#}CL#F#G#Ge#Iu#CLt#CL#Bj#x| #q 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl#P #eI#fd#`#CL #u #CL#CL #۞V#CL#CL#B=#CL#CL#h #jF #CL#CL#CL#On> #J3#CT#B#Ga"#AW #EL# D>!#!i&g"#"U###}2$#$I%#&L&#'M '#(K~(#)Bp#+CL*#-Fq+#.Z#1CL-#3A#6CL#7CL0#9r 1#:K2#H#@CL6#A]#BCL8#EA#GCL:#IG )#LCL<#N@=#PIiN#RCL#TCL@#WM.jA#XI=B#YB&#[CL#CLE#GH#EeI#k J#lHr K#HL#R*#i #i& #@X#EV#@#l3 #i #EV#n #} #E#O#IW#L#} 8#JP#B #Lv#HR#JP#J0#o^ #Q#Eʘ#CL#EV#E*#CL#CL#CL#CL#CL#CL#CL#CL#vf#u#C{3#p#x>#q#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#Nxg# CL# C# CL#CL#z)B #CL#CL#CL#CL$#Kr%#I&&#RQ;#CL*#"L`i,##TK#MCL.#OE2#QCL#RCL#SCL#TCL3#WoI4#YA36#\X7#]T8#^Ivf9#aD<:#bO4;#cPg<#dN3#fCL>#iX5?#jI4@#kFA#nt4 #pCLD#rp| E#tGF#uFG#vX#zC#{Hf#|A(#zz- #B#A#[~ #_x= #qHF #pPL !#CL #CL#CL#_ #CL#u #wQ? #r@3 #t #P! #Jm#CL#CL#CL#CL#CL#D}# #A_/#pAJ#](#v #x #cD #o#F7$#_U#C#D4K#B #T#Cq$#C#I#N7. #VQ #_#MP#^#CL#CL#CL#CL#CL#!CL#"CL##CL#$CL#'JS#(F#*H(#+F#.K#/K}e#a]}f#GM#Mt N#ODO#yBP#zE#Q#}b YR#~NjS#n$ T#H7V#kH X#HPY#HUE[#\#P$D^#d}_#r `#@a#]Lb#]c#U#CL#CL#CLg#r #CL#CL#CL#CLm#Fn#Fgo#hj #CL#CL#CL#CL#CL#CL#CLw#MHx#W\)y#g#OP{#n |#Z}#k~#^#BЃ#E#r ~#CL#] |#CL#F#Gʉ#H #KRu#CLt#CL#BA#x| #rQ 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl#AXs #Bgf#Chg#Db\#FCL #H@;#KCL#LCL #MK#NCL#OCL#QH#TCL#UCL#Wq #Xc #[CL#\CL#]CL#`P' #aJ#bCFf#cA#fG/#h{#iE#jBR!#ko`"#l^ ##mE$#nI%#pL&#qM '#rK(#sBP#uCL*#wFy+#x]@#{CL-#A #CL#CL0# 1#I2#Jj3#K64#H5#CL6#]#CL8#AK#CL:#F#CL<#@۶=#Ik#CL#CL@#MZzA#I2+B#B #CL#CLE#GgH#C.I#u J#C K#D~L#Sn#ixB #m #EV[#EV#EV# B # n}[ # EV# l #}#FN=#O#Ii#L#} 8#JP#B #P<# I '##JP#$J/ #'o^ #(Q#)Eʘ#+CL#.E#/FV#1CL#2CL#3CL#5CL#6CL#7CL#8CL#9CL#I3#?OxR#AVR#BVW #lCL#mCL#nCL#oCL#pCL#qCL#rCL#t^#uCL#vCL#wCL#xNh#zCL#}Ca#CL#CL#xo #CL#CL#CL#CL$#L%#J<&#M#CL*#L,#T#CL.#}h #CL#CL#CL#CL3#oV4#A36#Hf7#H48#@9#E!e:#N ;#Ni<#Ll#CL>#Zw?#I@#FA#u6 #CLD#q E#GF#FG#Z#Cf#F#B+3#z #B #A#\Rp #_ #qHF #p^ !#CL #CL#CL#gX #CL#u65 #vI #r #t #  # I#4CL#5CL#7CL#8CL#9CL#A-#?p#B]%#Dw| #Ey #Fc #Ipf#LFg:#MU<#NC#PD1d#RA #UUL#VCt#WC9#XH#[W #^On #`[|#aG#b^#cCL#dCL#eCL#gCL#hCL#iCL#jCL#kCL#mCL#J#F0#H5s#F&#K#K}e# I,}f#FM#t N#DO#ADP#E2Q#aR#N{^S#n T#IJV#mt< X#HYY#H[#Ю\#R^#e]_#p `#@ua# s*b# r>c# p+# CL# CL# CLg# sT` # CL# CL# CL# CLm# F4n# 34o# hӄ # CL# CL# CL# CL# CL# CL# CLw# #Gx# $T.y# %`# &OP{# )l33 |# ,[3}}# -h0~# /^# 2B# 3E# 6{w ~# aCL# c]! |# eCL# hF# iG\# jG]# nOu# pCLt# qCL# sBu@# tx # vr?} 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl# wQ@ # xa3# yc3# z\f# |CL # ~{/ # CL# CL # Z# CL# CL# U# CL# CL# nT # j50 # CL# CL# CL# P # J3# C# @f# F$# M4# Q# P!# _ff"# S## tfg$# I%# Ld&# ME/'# K*(# B# CL*# F/+# _D# CL-# AZ# CL# CL0# @&1# I2# J#3# K4# I# CL6# ]# CL8# A{# CL:# G4# CL<# @۶=# IL# CL# CL@# MA# (I{B# )Brd# +CL# ,CLE# .GH# 0}˜I# 3[ J# 4z\ K# 7HL# :M9# =Z` # >ixB # ?H # @A# AA# BixB # DixB # EA# Fi # H~4# IFN=# LO# NI\O# OL# R} 8# TJP# WB # YL%# ZI# \JP# ]J+g# `o^ # aQ# bEʘ# CL# E/# E*# CL# CL# CL# CL# CL# CL# CL# CL# DS4# vg# Hg# OxR# VR# VG# CL# CL# CL# CL# CL# CL# CL# ^# CL# CL# CL# Nb# CL# C<# CL# OP# rz # CL# CL# CL# CL$# K%# JP&# HK}# CL*# LG,# S3# CL.# M"# CL# CL# CL# CL3# o4# A36# Il7# H8# @9# E7,:# Jf;# L<# Ig# CL># XU?# J@# FA# sF # CLD# lD E# !GF# "F/G# #X4# &B3# 'Eɚ# (AX# *z # +B # TA֋# W\~g # X_ # YqV # Zp| !# ^CL # _CL# `CL# ba # eCL# gu # hwna # irk # ku # m{# nH4# pCL# qCL# rCL# sCL# uCL# xD## y # zA# {o# ~](# xt # zcz # d # of# F{# U}# C# D1d# B\ # T5# CB# C# Ha"# L # T # _33# L# ^# CL# CL# CL# CL# CL# CL# CL# CL# CL# JId# Fn# HC# G# K# K}e# mVS}f# sFM#t N#D7O#ĄP#EQ#b>R#NS#n T#HV#lV X#HTY#I.U[#̮I\#Rٚ^#df$_#t8 `#@fa#Xb#Zc#V^#CL#CL#CLg#r #CL# CL# CL# CLm#FiUn#@fo#jM9 #CL#CL#CL#CL#CL#CL#CLw#M(x# T.y#!`z#"OP{#&p |#(Z}}#)kI~#+^#.Bl#/E#3w ~#5CL#7][~ |#9CL#GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl#Rfx #e#fs3#b#CL #y #CL#CL ##CL#CL#C~#CL#CL#k #j{H #CL#CL#CL#Pj #W3#Ng#J#Gr#G4#J#J!#`3"#Vy##rL$#I%#L&#MR'#K^(#BO#CL*#~+#\#CL-#A#CL#CL0# 1#N2#Kz3#L4#IQ#CL6#]#CL8#B #CL:#Al#0CL<#2 =#3Jm#6CL#7CL@#:NA#;IB#CL#?CLE#AH#H#Cx9I#Fnk J#GCIK#JIԥL#MC#O[~ #QixB #RI #SCw#TC.#Ujb #VixB #WC#Xi #Z~j#\E#_O#aIO#bK?#e} 8#gJP#jB #kKp#H8#JP#J#o^ #Q#Eʘ#CL#E#D#CL#CL#CL#CL#CL#CL#CL#CL#C{3#C.g#M#V@#VR#VG#CL#CL#CL#CL#CL#CL#CL#^#CL#CL#CL#N#CL#Cy#CL#CL#r #CL#CL#CL#CL$#K%#I&#M#CL*# L6,# Ẽ# CL.#z)B #CL#CL#CL#CL3#oi4#A36#U)7#T38#K9#!EP:##M|;#$Of<#%Kp#'CL>#)X?#*J @#+GUA#.qHF #1CLD#3nQ E#]GLF#^F'G#_X#aD@#cGy#dB3#g|D #hA#iBj#j\ #k`6 #mqt #nph !#qCL #rCL#sCL#ua #xCL#zv #|x #}t/ #~vܹ #Uz #G#CL#CL#CL#CL#CL#D#@#@Y#o<#](#z % #{/ #d. #pf#G(#]L#C#D>r#B\ #S^=#B#C #G;#Nq #Xȉ #^3#M3#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#J#Gd#HgR#G#K#K}e#e}}f#pFM#7t N#:DO#;} P#x#S(y#a#OP{#e |#Yۈ}#k~#^#B#F9#tM ~#CL#^ׄ |#CL#G"#H^=#HKj#G%u#CLt#CL#A#x{ #r: 5IJ(6H CLCL:C;HU<O?FݱCLCLBA/CA]DA"EZzFaGUqHD(W LXpMUNb!HOF?PF1QGRQRFTGUG V^ CLCLYz7 ZDYCLCL]w% ^LCLCLaMCLCLdA$ZCLf^ CLh"DGi#N\&CLk)P l*L33 m+L3 n.ho/besp1f{ q2a r3`B s4Kdt5Lu6C E8CL9CLx;Duy=T;z>GXACLBCL}DGJY~FGGFHA_JCL~KCLMEl#R #ef#ff#bg# CL # y@ #CL#CL #E_#CL#CL#C#CL#CL#ll #mJ] #CL#CL#!CL##P #$VD#&O33#'MX#QG #S@#UD{#VCh!#W`s4"#XX##YxL$#ZI(%#[Lo&#\Lk'#]K (#`~ #cCL*#fxO3+#iZ#lCL-#nB}#pCL#qCL0#s@1#uM2#wKh3#xL4#yIR#{CL6#|]#}CL8#Bk!#CL:#}; #CL<#}; =#J#CL#CL@#N#A#J!B#Ci#CL#CLE#HH#vCI#cZ J#lK#IBL#DY#Yc #ixB #Jw#E #EZ#ixB #ixB #E*#i #~WG#FN=#O#I\O#K<-#} 8#JP#B #R_#H8#JP#J#o^ #Q#Eʘ#CL#!E&#"EZ#$CL#%CL#&CL#'CL#(CL#*CL#+CL#,CL#/C{3#0vf#1L#2L{#3P#4N #6CL#8CL#9CL#:CL#;CL#^#?CL#ACL#BCL#CNv#ECL#HCԅ#JCL#KCL#Mz #OCL#PCL#QCL#RCL$#}K%#~I&#L#CL*#K ,#N#CL.#V*#CL#CL#CL#CL3#o4#A36#Z|7#ZL8#Q9#Em:#Q;#Sf<#O#CL>#Z?#Jk@#G;A#n #CLD#k_ E#GF#F-JG#Z#Bf#Fљ#A#|-U #A#B #\U #`S #q3 #pӖ !#CL #CL#CL#c #CL#w4 #y #t' #vh. #T! #G#CL#CL#CL#CL#CL#D# @/Y# @i# o4#](#{ #| #d #sP#Gb#_#C2#C\#FB #IU#JBX#KB-#LF#OUW #RX #S_f#UO0#V^#WCL#XCL#YCL#[CL#\CL#]CL#^CL#_CL#`CL#dJ#eG#fH{F#gG(T#jK#nK}e#f}f#ElM#t N#DYO#e P#FQ#cR#N'S#@T#FV#f X#HbY#I[#Įe\#N^#c_#pq `#BTa#Zs4b#\c#XaH#CL#CL#CLg#s-a #CL#CL#CL#CLm#Gn#4o#m+ # CL#CL#CL#CL#CL#CL#CLw#Fx#TǮy#e#OP{#jfg |# X}#!g ~##^#&C#'Fg#*o۔ ~#-CL#/^ |#1CL#4G@#5H#7HY#:Mu#&'L^''K('~ 'CL*'As+',Y'/CL-'1B'4CL'5CL0'7@.1'8LP=2':K3';L4'CL6'?]'@CL8'BA'ECL:'G 'JCL<'L~ ='MJ3'PCL'QCL@'TN. A'UJxB'VCp'XCL'YCLE'[HH']L4eI'^h J'__K'bIDZL'dAf'gZ 'ixB 'Jw'DnQ'DS'ixB 'ixB 'DS'i '~oB'FN='O'Ir'L'} 8'JP'B 'L%'I'JP'J$'o^ 'Q'Eʘ'CL'E'DF-'CL'CL'CL'CL'CL'CL'CL'CL'D'B'M;4'MR'OxR'OxR'CL'CL'CL'CL'CL'CL'CL'^'CL'CL'CL'N'CL' CӞ' CL' CL'y 'CL'CL'CL'CL$'L'%'J<&'O;]'CL*' L,'!Rʕ'#CL.'%{ '(CL')CL'*CL'+CL3'.p4'/A36'ZW7'[V8'\P9'_F:'aQ,;'bSg<'cL'eCL>'gX`?'hJT@'iG-8A'lo 'oCLD'ql8 E'sGKF'tF0G'uXo'xD@'yG'{Bf'~|D 'Aq'B|']K '`x 'q 'pX !'CL 'CL'CL'hq7 'CL'w 'y] 'u' 'w 'X}'F'CL'CL'CL'CL'CL'DR'@D'A['p'],`'{LS '| 'dA 'r'G'[h$'C.'D?,'A) 'W f'B[)'B'F9'X` 'Xw '^ɚ'N3'^'CL'CL'CL'CL'CL'CL' CL'!CL'"CL'&JP''G7'(He')G2J',K'0K}e'IR}f#?D{M'Nt N'PD~O'QCYP'RFV5Q'UbR'VNԁS'Xx T'YJ=V'Zp X'HhmY'I݋['\'P`^'eZ]_'x8 `'D a'o.b'pc'oq'CL'CL'CLg'sc 'CL'CL'CL'CLm'H}n'4o'n 5'Jd6'J'CL'CL:' D;' B>@<' V3?' Go'CL'CLB'C C'HUD'CPE'nF'tG'_H'I 7 L'k(M'iN'tO' @'P'#r+ Q'Lsl R'NY!T'OL=U'PL mV'QC{L'TCL'UCLY'W: Z'XET'[CL'\CL]'^~OI ^'_C>'bCL'cCLa'eGu'iCL'jCLd'lBc'oCLf'p^'qCLh'sEi'tT'xCLk'{V l'|O. m'}Nu n'u@o'hgp'u\ q'pG r'rL s'Lt'LLu'D`'CL'CLx'Duy'QPz'I'CL'CL}'F~'K8g'LF'D 'CL~'CL'Ib'S_ 'eNf'f'c'CL 'yl 'CL'CL '؊\'CL'CL'D- 'CL'CL'kh 'qh 'CL'CL'CL'Q+h 'Lq'E'D'Gf'Y!H'cǯ'\(!'[ "'Rg#' uf$'!I}%'"L,~&'#L''$K('%C''CL*'*o +'-`'0CL-'2Bɀ'5CL'6CL0'8@۶1'9K _2';K3''iZw?'jJ)@'kGCA'no 'qCLD'sm- E'uGF'vF/G'wZh'zd'{jA'c3'5 'Aq'C7'a>' '`b 'F'G!'CL 'CL'CL'c{ 'CL'xo 'wl 'u 'x+ 'W 'E'CL'CL'CL'CL'CL'D'@Rb'Ai'pC'],`'z)B 'l5h 'e!( 'mL'G'b{'C9'C' A ' V'Au'Bo|'EV'QnH 'YQ '_ 'OVf'^'CL'CL'CL'CL' CL'!CL'"CL'#CL'$CL'(K:[')G'*H'+G4'.K'1K}e'cC }f'BM'wuh N'zDTO'{{ P'|FkQ'dR'NS'o T'BV'_ X'HvY'JA['\'L^'d,q_'g `'Ba'Zb'\ >c'VR'CL'CL'CLg's 'CL'CL'CL'CLm'H_n'o'nfg 'CL'CL'CL'CL'CL'CL'CLw'Gffx'Py'b'OP{'`DD |'X}'eݭ~'^'C'Et'o,| ~'CL'_ |'CL'G'H'H'Hu'CLt'CL'} 'x 's 5'Jt6' J77' CL'4CL:'6E;'8A2<';VR?'rs ' ACL' BCL' CCL' DCL$' GK%' HIL&' JQ' MCL*' PLL,' QE' SCL.' U|C ' WCL' XCL' YCL' ZCL3' ]p34' _A36' bX7' cT98' Ng9' F:' I;' L<' H' CL>' X1[?' JDF@' GMA' qV ' CLD' o E' GF' F7DG' X*' f9' k@' d3' Cf' A/' C' aL ' `x ' G' HU!' CL ' CL' CL' _ ' CL' y ' z7 ' w ' zF^ ' R' EZ' CL' CL' CL' CL' CL' DR' @r' AD' qv$' ]/' |R8 ' j ' e[ ' q9' H5' ]B' C<' C' A ' Xu' BA' B' Eg' PA ' \H ' a3' R3' ^' !CL' "CL' #CL' $CL' &CL' 'CL' (CL' )CL' *CL' VK6' WF' XHqL' YF-' \K =' _K =}e' dI)}f'BM' }t{ N' DO' BP' F؟Q' dER' N3S' oXB T' HV' l:z X' HqyY' J[' \' Ox.^' f _' u `' B Ka' ab' dc' `\' CL' CL' CLg' s ' CL' CL' CL' CLm' Gn' @ o' p ' CL' CL' CL' CL' CL' CL' CLw' Kx' PW y' a' OP{' qu |' Xv}' e!~' ^' Cf' E' n ~' CL' ad |' CL' #G' $H"&' %HX' (Mfu' +CLt' ,CL' .{ ' /z+ ' 0t1' 5' 3J~6' 4JL' 6CL' 7CL:' 9E;' ;@E<' >V?' ?FL' BCL' CCLB' FBMC' GAD' HCE' J\W F' Kl\G' L_W H' MI L' NmhM' Oj34N' PtRO' SkZY P' UdM Q' VD4KR' UMT' LU' KNV' Aq' CL' CLY' @JeZ' EsZ' CL' CL]' ~ ^' wB ' CL' OPa' @b_' CL' CLd' Cp' CLf' ^' CLh' F/i' R͸' CLk' W' l' L8R m' K n' mo' ip' t33 q' mB r' l) s' M t' LJu' Dɲ' CL' CLx' D- y' Mz' H$' CL' CL}' F~' K)' LZK' DD' CL~' CL' I' S ' d8' e4' a8' CL ' {a ' CL' CL '  ' CL' CL' Fs' CL' CL' n}[ ' u ' CL' CL' CL' Q@ ' Mff' F' B' JHμ' LY0' M]' N\0!' OT3"' PT&f#' Ql$' RIw%' SLY &' TL'' UL.P(' VD' XCL*' [r+' ^Y5' aCL-' cCa' fCL' gCL0' iAl1' jOO2' lK[3' mL14' nAc' pCL6' q]' rCL8' tBc' wCL:' y@4' |CL<' ~@}B=' B' CL' CL@' LLA' JnB' D9^' CL' CLE' IpH' D8I' gP J' i K' IL' BM' ixB ' j ^ ' No' G' H0' l5h ' ju ' Ge' i ' }Ď' FN=' O' Ig' L' } 8' JP' EV' Q'' M' JP' IZ' o^ 'Q'Eʘ'CL'En'DF-'CL'CL'CL'CL' CL'!CL'"CL'#CL'&I3''I3'(L3')MR'*V',Uq'.CL'/CL'0CL'1CL'2CL'3CL'4CL'6^'7CL'8CL'9CL':N''ZI?'Je@'GYA'r 'CLD'p E'GzF'FK6G'[a'd'iQ'b3'Fnl'A/'DU'bE 'aY 'I='J%g!'CL 'CL'CL'f 'CL'{H 'y{ 'y '{w '6 'E0'CL'CL'CL'CL'CL'D'@)'Aݍ'q']/'| z 'kK ' e7 ' of'H<'\a'C'DĞ'c'q'CL'CL'CLg'ss 'CL'CL'CL'CLm'G7n'4o'r@ 'CL'CL'CL'CL'CL'CL'CLw' L)x' T\y'ap'OP{'a |'Vi}'g)z~'^'C*'FN'mh ~'!CL'#a |'&CL')G~s'*F'+Hھ'.O^u'0CLt'2CL'4u '5zo '6t 5'9Jo6':JR{'CL'?CL'AEO'DCL'ECL'Gn% 'HuC 'KCL'LCL'MCL'PQ@ 'QS@'RM'SK3'VI>>'XQ޹'YVO\'ZU!'[Wf"'\T#']r&f$'^I%'_L&'`M ''aLZ('b@ü'dCL*'g@+'j]6'CL-'F'CL'CL0'C/1'Nk2'K`3'LP4'B'CL6']'CL8'B 'CL:'@'CL<'@='C.'CL'CL@'M5A'JB'D'CL'CLE'IH'BI'qz J'z\ K'd L' O 'Y: 'ixB 'Px'I"d'I"d'ixB 'ixB 'Iw'i '~J'Go'O'I'L' }2x' JP'EV'KK'O^'JP'I'o^ 'Q'Eʘ'CL' ED'!F='#CL'$CL'%CL'&CL'(CL')CL'*CL'+CL'.C{3'/vf'0I3'1MR'2OxR'\MR'^CL'_CL'`CL'aCL'bCL'cCL'dCL'e^'gCL'hCL'iCL'jN{K'lCL'oCa'qCL'rCL'tz 'vCL'wCL'xCL'yCL$'|K[%'}Jm&'L;['CL*'K{,'Q'CL.'F'CL'CL'CL'CL3'pK;4'A36'Y,7'X8'L<9'F,:'PL;'S<<'OY'CL>'V ?'J4@'GkA'o 'CLD'mv E'GdF'FpcG'YpH'fH'l>g'df'H 'A'D/'bE 'ax 'JI'KM!'CL 'CL'CL'j' 'CL'|C 'xt 'yN '{a 'M5 'D'&CL''CL')CL'*CL'+CL'.D'/@f'0B'1r='5]33'6} '7k '8eн ';n'>H'?c'@C>'BD'DA 'GVÁ'HB@'ICJ'JD>'MX 'PUٚ 'R]'SL'T^'UCL'VCL'WCL'YCL'ZCL'[CL'\CL']CL'_CL'L!'F7'H9'F'K ='K =}e']6}f'4|*_ M'u " N'D&O'B?P'GOlQ'eSR'O S'o T'GDV'i X'HyY'J['!\'Kޔ^'c_'s `'A Da'[b'\8Rc'U34'CL'CL'CLg'tm 'CL'CL'CL'CLm'Fn'o's^ ' CL' CL' CL' CL'CL'CL'CLw'K\)x'R)y'`'OP{'n"# |'W}'e>~'^'"B'$F''n ~'QCL'SaK |'UCL'YG'ZD?'[Hz'^I u'`CLt'bCL'dsC 'eyD 'ft 5'iJk6'jJa'lCL'mCL:'oE;'pL<'qV?'rGQ'uCL'vCLB'xCC'{D'~D E'aF'g\G']LH'J| L'ocM'lN'wO'j> P'c7 Q'CR'U+T'L2U'KV'B'CL'CLY'A^vZ'E'CL'CL]'^ ^'up 'CL'OPa'~; 'CL'CLd'D'CLf'^'CLh'F?i'P'CLk'W l'O\ m'NB n'n@o'i-p'p q'h{ r'j# s'M1 t'LNu'@'CL'CLx' Aey'!SLz'#D'&CL''CL}')FE~'+La',Lj'-D'/CL~'1CL'3Jf'5T '6ing'7k'8f4':CL ''i '}' Go' OP'I'L'}h 'JP'EV'P.'O'DJP'EI'Io^ 'JQ'KEʘ'MCL'PE'QF0'SCL'TCL'UCL'VCL'XCL'YCL'ZCL'[CL'^D'_C{3'`Lf'aMR'bVٚ'cU\'fCL'gCL'hCL'iCL'jCL'kCL'lCL'm^'oCL'pCL'qCL'rN|'tCL'wC'yCL'zCL'|t/ '~CL'CL'CL'CL$'K2%'J,&'R?'CL*'Lo,'JX'CL.'} 'CL'CL'CL'CL3'ps4'A36'Z7'W|8'M9'GB:'Q;'Qg<'P'CL>'WUq?'J@'GA'q 'CLD'o۔ E'GӓF'FG'[eE' g'mg'ef'K5c'A'Do'c!( 'b(\ 'JF'K!'CL 'CL'CL' dc '#CL'%}; ''y{ '(zcz ')| '+o.',D#'.CL'/CL'1CL'2CL'3CL'6D'7A ':BG';r'>]33'?A '@la7 'Bf D 'Enf+gI-+g^+gCC+gAY+g@ +g XG+g Bx+g C+g D'+gQ| +gV33 +g^6f+gL+g^+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+g CL+g$L_+g%F +g&H%!+g'F{n+g*K =+g,K =}e'+qw}f'dz& M+gru N+gtE EO+guA:yP+gvGnQ+gyfR+gzNS+g|nT T+g}H)V+g~k9 X+gH_`Y+gJ[+g]\+gK"^+gd_+gn `+g@ea+gub+guc+gp\+gCL+gCL+gCLg+gt +gCL+gCL+gCL+gCLm+gFn+go+gtw1 +gCL+gCL+gCL+gCL+gCL+gCL+gCLw+gJ{x+gXy+ge >+gOP{+gi |+gWy}+gf;~+g^+gBJ+gFX8+gn$ ~+gCL+gad |+gCL+gG+gE"+gI+gNgu+gCLt+gCL+gsz +gzT +guV 5+gJpx6+gJY+g.CL+g/CL:+g1F>K;+g2L<+g3W<?+g4x +g7CL+g8CLB+g:N,C+g<|D+g?CPE+gAckF+gBuG+gC\uH+gEJ3 L+gFhM+gGh8RN+gHspO+gKjp P+gLc Q+gMCR+gOUQT+gPLU+gQKV+gRCCl+gTCL+gVCLY+gXA/Z+gYEz+g\CL+g]CL]+g_@-S^+g`t +gcCL+gfOPa+g~@ +gCL+gCLd+gD+gCLf+g^+gCLh+gF:i+gO+gCLk+gX{ l+gN{ m+gMR n+gnLo+gjjp+gpq q+gjQ r+gj s+gMMdt+gM u+g@+gCL+gCLx+gAy+gRPKz+gG+gCL+gCL}+gFq~+gLBd+gL+gEa+gCL~+gCL+gJ+gUK +gd8+ghX+ga3+gCL +g| +gCL+gCL +gqp+gCL+gCL+gEV+g CL+g CL+g p +g z +gCL+gCL+gCL+gR0 +gTɚ+gM+gJ+gI/+ga#+g^Q+g \!+g!V"+g"OFf#+g#j$+g$I@%+g%L&+g&M'+g'L(+g(CSc+g*CL*+g,F ++g-X}+gXCL-+gZGQ+g]CL+g^CL0+g`CL!1+gaL>2+gdK3+geL4+gfC+ghCL6+gi]+gjCL8+glDG+goCL:+gq@+gtCL<+gvAl=+gwD_+gzCL+g{CL@+g~M#A+gKp B+gD+gCL+gCLE+gX$kH+gG9I+gn? J+glHr K+gDL+g| +gixB +gju +gQ+gJOZ+gJs+gll +gkQ +gJm+gi +g~'Q+gH+gO+gI+gL+g~+gJP+gEV+gK+gP"+gJP+gI+g`w/ +gQ+gEʘ+gCL+gE+gE+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gDk3+g C{3+g!NVf+g"MR+g#VR+g$Uq+g&CL+g(CL+g)CL+g*CL+g+CL+g,CL+g-CL+g.^+g/CL+g1CL+g2CL+g3N~+g5CL+g8Cm+g:CL+g;CL+g+gV~?+gJ@+gGA+gsF +gCLD+gr@3 E+gGݔF+gFG+gY+ghf+go +ge+gM7+gA+gES+gc>k +gat +gK/+gLL!+gCL +gCL+gCL+ga< +gCL+g~] +gy1 +g{w +g~ +gS7v +gD|+gCL+gCL+gCL+gCL+gCL+gDh+gA-+gBF+gr%+g]6+g~ +gl +gfE +gsS3+gIQo+ga3+g B+g )b +gA +gWI+gC +gC|+gDX+gP +g\7w +gal+gNf+g ^+g!CL+g"CL+g#CL+gLCL+gNCL+gOCL+gPCL+gQCL+gRCL+gVL+gWF+gXH+gYFp+g\K\+g`K\}e+gf[}f+gz/ M+g~u. N+gEO+g{t< P+gG/Q+ghgR+gO-S+gn T+gAV+g^T X+gHmY+gK$[+g]\+gIϥ^+gdb_+gg `+g@a+gYW b+gZ޹c+gW+gCL+gCL+gCLg+gu +gCL+gCL+gCL+gCLm+gFn+g)o+gu +gCL+gCL+gCL+gCL+gCL+gCL+gCLw+gPx+gX34y+gfz+gOP{+g_fg |+gU .}+gc~+g^+gBp+gF<+goXB ~+gCL+g!_& |+g#CL+g&G+g'D+g)I+g,K2u+g.CLt+g/CL+g2q +g3z\) +g4tt 5+g6Jo6+g7J=+g9CL+g;CL:+g=F:;+g>L)<+g?W?+g@H9Q+gCCL+gDCLB+gG^׮C+gH}D+gKD E+gMW\F+gNdBG+gO]\H+gxK2 L+gzj{M+g{hN+g|sBO+gjp P+gc Q+gDR+gUJT+gLk^U+gK]V+gCk+gCL+gCLY+gBnZ+gE+gCL+gCL]+g@R^+gt[ +gCL+gOPa+g} +gCL+gCLd+gDX+gCLf+g^+gCLh+gFݱi+gN+gCLk+gXJ{ l+gOL m+gN33 n+gmo+gj28p+gt q+gm. r+gn) s+gMft+gM=u+g@+gCL+gCLx+gB1 y+gQ z+gC/+gCL+gCL}+gF7 ~+gLlR+gLǻ+gEa+gCL~+gCL+gJ3+gUE +gd+gf`+gd+g CL +g |` +gCL+gCL +g+gCL+gCL+gF>K+g@CL+gACL+gCqHF +gDz +gGCL+gHCL+gICL+gLRk7 +gMR+gNK+gOJf+gRJ4*+gTYff+gU[xR+gVZ޹!+gWb"+gX_3#+gY33$+g[I"%+g\L&+g]MC]'+g^M%E(+g_Cq+gaCL*+gcGJ++gd__+ggCL-+giG} +glCL+gmCL0+goCi(1+gpJ2+grK/3+gsL 4+gtDl+gvCL6+gw]+gxCL8+gzDS+gCL:+gA+gCL<+gAL=+gD+gCL+gCL@+gMvA+gK*B+gE+gCL+gCLE+gSH+gFI+gqz J+gGD K+gIL+g{Z +gixB +gj +gOg+gI"d+gI%H+gl +gkK +gHؒ+gi +g~'Q+gGo+gO+gI+gL+g ~+g JP+gEV+gQ'+gPR+gJP+gI^+g`w/ +gQ+g@g+gCL+gE+g"DF-+g$CL+g%CL+g&CL+g(CL+g)CL+g*CL+g+CL+g,CL+g/C{3+g0Fg+g1I3+g2VR+g3]s4+g5\ >+g7CL+g8CL+g9CL+g:CL+g;CL+g^+g@CL+gACL+gBCL+gCN+gmCL+gpCI+grCL+gsCL+guuS[ +gwCL+gxCL+gyCL+gzCL$+g}K%+g~JF&+gGV+gCL*+gL,,+gIE+gCL.+g{ +gCL+gCL+gCL+gCL3+gp4+gA6+g\@7+gXP8+gH9+gG'o:+gL;+gOg<+gJp+gCL>+gVT?+gJ@+gGA+gt/ +gCLD+gr E+gGF+gFG+g[+ge+gkff+gdA+gN+gA+gE*+gcн +ga- +gH+gJā!+gCL +gCL+gCL+gg/ +gCL+g@+gxo +g|= +gFv +gM~ +gDQN+gCL+gCL+gCL+gCL+gCL+gD+g A_1+g Bn+g r+g7]6+g8~s +g9l~k +g:fM +g=rL+g@Is+gA^c+gBBE+gFxP +gIAf +gLV+gMCE+gNC+gOD(+gRV- +gUWff +gW^f+gXIf+gY^+gZCL+g[CL+g]CL+g^CL+g_CL+g`CL+gaCL+gbCL+gdCL+ggL +ghF+giH+gjF+gnK{+gK{}e+gaO}f+g2xK5 M+gt+ N+gDO+gB=SP+gGQ+ggRR+gOQKS+go T+gHV+glO X+gH{nY+gKG[+gǪy\+gM^+gd_+gsr `+g@zBa+g@fb+gAc+g|+gCL+gCL+gCLg+g tm +g CL+g CL+g CL+g CLm+g Fnn+g o+g uI +g CL+g CL+g CL+g CL+g CL+g CL+g CLw+g Tx+g Vy+g f=q+g OP{+g !m |+g #U }+g $b~+g &^+g )B}m+g *FoL+g .o+ ~+g 0CL+g 2cm |+g 4CL+g 7GS+g aDM+g bI+g eHVu+g gCLt+g hCL+g kr2- +g lz=q +g mt/ 5+g oJv6+g qJO+g sCL+g tCL:+g vF;+g wK<+g xX?+g yHG+g |CL+g }CLB+g PھC+g MD+g D6E+g \(F+g q{G+g TRH+g K L+g hM+g e4N+g q^O+g j P+g c{ Q+g D- R+g UT+g LRU+g KOV+g C%+g CL+g CLY+g CZ+g E+g CL+g CL]+g A ^+g w +g CL+g OPa+g @+g CL+g CLd+g EV[+g CLf+g ^+g CLh+g Gi+g MK+g CLk+g X l+g M8R m+g L = n+g lo+g jp+g l q+g h\) r+g i s+g Mzt+g M1 u+g Ab+g CL+g CLx+g BEy+g O z+g C +g )CL+g *CL}+g ,Fb~+g .L$+g /L+g 0Fa+g 2CL~+g 3CL+g 5K +g 8U +g 9b+g :dP+g ;_1+g =CL +g ?z +g BCL+g CCL +g D+g ECL+g FCL+g HF?+g KCL+g LCL+g NpY +g O|\ +g RCL+g SCL+g TCL+g WRv +g XP4+g YHf+g ZF+g ]JyK+g _[+g `_}q+g a_u!+g bal"+g cVS3#+g uL$+g Id%+g Lw&+g M'+g M\(+g C/+g CL*+g GO++g ]!+g CL-+g Hd+g CL+g CL0+g DQN1+g IĚ2+g K3+g L:4+g C+g CL6+g ]+g CL8+g Dg+g CL:+g Bk!+g CL<+g By=+g C+g CL+g CL@+g MrOA+g K B+g Df+g CL+g CLE+g OH+g A&?I+g e J+g e K+g J"BL+g zcz +g \Rp +g ixB +g M?+g Go+g Go+g j' +g ixB +g F+g i +g ~d+g H+g O+g J+g L+g E+g JP+g EV+g L+g P^+g JP+g I+g !`w/ +g $Q+g %Eʘ+g 'CL+g *E+g +E+g VCL+g WCL+g XCL+g YCL+g ZCL+g [CL+g \CL+g ]CL+g `Dk3+g aBf+g cLK4+g dV+g eZ+g fVR+g hCL+g iCL+g jCL+g kCL+g lCL+g nCL+g oCL+g p^+g qCL+g rCL+g sCL+g uNe+g wCL+g yC+g {CL+g |CL+g ~w +g CL+g CL+g CL+g CL$+g Kk%+g Jg8&+g Q+g CL*+g L',+g R+g CL.+g G+g CL+g CL+g CL+g CL3+g p4+g A36+g R7+g K38+g @9+g G'o:+g Op;+g O)<+g Mg+g CL>+g Sn?+g J<@+g GA+g rz +g CLD+g qHF E+g H F+g F G+g X+g e+g lVf+g d+g P +g Aҩ+g E7+g d +g bs +g H+g J!+g CL +g CL+g !CL+g $j63 +g 'CL+g )~; +g *xt +g +z +g ,|ƚ +g -MF +g /D4K+g 2CL+g 3CL+g 4CL+g 5CL+g 6CL+g 9DA+g :A,+g E+g TfF+g iLG+g TH+g L" L+g nM+g jaHN+g v*O+g jH P+g c_ Q+g D4KR+g UT+g LTU+g KPV+g C"+g CL+g CLY+g BZ+g FL+g CL+g CL]+g B8P^+g w +g CL+g OPa+g @+g CL+g CLd+g D+g CLf+g ^+g CLh+gGCi+gL+gCLk+gX l+gM m+gL\ n+gno+gkIqp+g o q+g!h3 r+g"j3 s+g#Mt+g$MMdu+g%A +g'CL+g(CLx+g+Cay+g,Mz+g-F+g0CL+g1CL}+g3F~~+g5L+g6M3f+g7F+g:CL~+g;CL+g=KF+g?U +g@_+gAa+gB]0+gDCL +gFz +gICL+gJCL +gKh +guCL+gvCL+gxEl+g{CL+g|CL+g~n`* +gzH +gCL+gCL+gCL+gR +gP,+gI4+gFh+gJq+gW=q+gZ+gY!+gT"+gIl#+gf$+gI%+gLP&+gMn'+gMz(+gB{+gCL*+gH, ++gZ)+gCL-+gHVF+gCL+gCL0+gDB1+gQI2+gK3+gM4+gBؽ+gCL6+g]+gCL8+gD+gCL:+gB1 +gCL<+gB=+gC +gCL+gCL@+gLA+gKiB+gDQN+gCL+gCLE+gMMH+gCٜI+geY J+gPI K+gJ"BL+g{LS +g\ +gixB +gN+g H+g G+g kQ +gixB +gG+gi +g~@+gGo+g>Pv+gAJS+gBL+gEE+gGJP+gJEV+gKQ5+gLPF+gNJP+gOI٢+gP`w/ +gSQ+gTEʘ+gWCL+gZEY+g]DF-+g_CL+g`CL+gaCL+gbCL+gcCL+gdCL+geCL+ggCL+gjH3+gkvf+glI3+gmVR+gn]=q+go[+gqCL+grCL+gsCL+guCL+gvCL+gwCL+gCL+g^+gCL+gCL+gCL+gN;+gCL+gCm+gCL+gCL+gu +gCL+gCL+gCL+gCL$+gK %+gI0&+gN"+gCL*+gLb<,+gF+gCL.+gyN +gCL+gCL+gCL+gCL3+gq$4+gA36+gQ7+gG8+gB39+gG%:+gK3;+gN4<+gH+gCL>+gSO?+g J@+g H A+g r +gCLD+gq E+gHF+gFG+gYQf+ge3+gkٙ+gd3+gQ;z+gAf+g Es+g!a +g"_ [ +g#H+g$J!+g'CL +g)CL+g*CL+g,e!4 +g/CL+g1~ +g2{a +g3z? +g4| +g7#}+g8D`+g:CL+g;CL+gCL+gjDA+gkA+glB+gmry+gp]33+gq{/9 +grjb +gtg +gwm+gzI;+g{\+g|B+guD +gAaH +gVP+gD+gD+gCf+gN +gUٚ +g_3+gN+g^+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gL+gE+gH+gFF +gK =+gK =}e+g7X}f+g rw M+gv& N+gEgO+gCRP+gHQ+ggR+gO+S+g@T+gIlV+gm X+gHJY+gK8[+g]Y\+gK{^+gdH_+gw `+gCEa+g0Xb+g1Xc+g2U:+g4CL+g5CL+g6CLg+g9u T +g;CL+gCLm+gAGn+gD@o+gFu +gHCL+gICL+gJCL+gKCL+gLCL+gMCL+gOCLw+gRR)x+gSY{y+gThfg+gUOP{+gVs\) |+gWTɧ}+gYbcf~+g[^+g^CKO+g_G+gbp< ~+gdCL+ggef |+giCL+gGL+gBv+gIE+gI'u+gCLt+gCL+gq^5 +gz +gtT 5+gJ6+gJ+gCL+gCL:+gE;+gJS<+gYAv?+gH+gCL+gCLB+gLʻC+gID+gD;E+gWzF+ggBG+gSGH+gLlN L+gn*M+gk0N+gvaHO+gj P+gc Q+gDgR+gUT+gLTU+gKHV+gCQ6+gCL+gCLY+gBZ+gF/+gCL+gCL]+gBUZ^+gwB +gCL+gOPa+g@8+g CL+g CLd+gD+gCLf+g^+gCLh+gG`i+gR'+gCLk+gX l+gNq m+gM{ n+g"mo+g#k@p+g%k q+g&f r+g'f s+g(Mt+g)McHu+g*A+g-CL+g.CLx+g0Ci(y+g1Jgz+g2DB+g]CL+g^CL}+g`F~~+gbLщ+gdMa +geF{+ggCL~+ghCL+gkKdK+gmV +gn_~f+gpa +gq\+gsCL +gu{ +gwCL+gyCL +gzw+g{CL+g|CL+gPk+gCL+gCL+gpA +gyx +gCL+gCL+gCL+gS7 +gV6g+gP6f+gN9+gKW+gZ+g^+g]޹!+gJ3"+g@<#+ge$+gI%+gL&+gM8'+gM(+gC7+gCL*+gHA++gX`+gCL-+gH2+gCL+gCL0+gD4K1+gL2+gL3+gM4+gC%+gCL6+g]+gCL8+gD+gCL:+gA+gCL<+gB=+gC+gCL+gCL@+gMuA+gK/B+gD+gCL+gCLE+g%M2H+g&B4I+g)i d J+g*Kk~ K+g-J"BL+g/zcz +g2ixB +g3jD +g6N+g7G+g8Go+g;l +gi +g@~Q+gAH+gDP +gFI+gHL+gKE+gMJP+gPEV+gQLv+gRO+gTJP+gUI^+gW`w/ +gZQ+g[Eʘ+g]CL+gE+gD+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gC{3+gw3+gC{3+gVR+gZ+gVR+gCL+gCL+gCL+gCL+gCL+gCL+gCL+g^+gCL+gCL+gCL+gN+gCL+gC$+gCL+gCL+gs +gCL+gCL+gCL+gCL$+gK%+gJ&+gI+gCL*+gL,+gEƶ+gCL.+gy#; +gCL+gCL+gCL+gCL3+gqh4+gA36+gK|7+gDٚ8+gwٙ9+gG)=:+gLf;+gO<+gJ+g CL>+g R?+gJ4@+gHA+gs +gCLD+gr E+gHF+gGG+gW-+ge+gk+gd.f+g"Q"+g#A"+g%E,*+g&aj +g'_ +gPH+gQJ,!+gTCL +gUCL+gWCL+gYc +g\CL+g^} +g_| +g`yl +ga{H +gcY+geC+ggCL+ghCL+giCL+gjCL+gkCL+gnD{+goA+gqBO+grr +gu]33+gv{/9 +gwj +gxg>t +g{pf+gI+g[#+gCi(+g{ +gAk +gX>I+gB+gB+gC+gRJ +gSUU +g\ff+gIp+g^+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gCL+gLϕ+gE+gH +gF9a+gK =+gK =}e+gcg[}f+gw M+gv N+gE/O+g } P+g"H>bQ+g%huR+g&O+S+g'ua T+g(CYV+g)b3Y X+g,HY+g-K(~[+g.{\+g/Jf^+g2d_+g3f9 `+g5DM{a+g7tb+g8v34c+g9oz+g;CL+g+gCL*+gf/++g^+gCL-+gH+gCL+gCL0+gD- 1+gL.2+gL3+g M64+g C+gCL6+g]+gCL8+gDV+gCL:+gA+gCL<+gB=+gDG+g"CL+g#CL@+g&MA+g'KB+g(AW+g*CL+g+CLE+g.eWH+g/I+g2bu J+g3Fn K+g6IRL+g8z +g;\ +gN+g?Gqu+g@G+gDjD +gEixB +gFG+gGi /O~Q/OH/OP e/OJk/OL/O E/O JP/OEV/OS/OO/OJP/OIH/O`w/ /OQ/OEʘ/OCL/O E/O!D/O$CL/O%CL/O&CL/O'CL/O(CL/O)CL/O*CL/O+CL/O.C{3/O/t6g/O1I3/O2VR/O3Z޹/O4VR/O6CL/O7CL/O8CL/O9CL/O:CL/OdCL/OeCL/Of^/OgCL/OhCL/OiCL/OkNg/OmCL/OoC/OqCL/OrCL/Ots /OwCL/OxCL/OyCL/OzCL$/O}K[%/O~JlH&/OLS/OCL*/OK ,/OOJ/OCL./OM:/OCL/OCL/OCL/OCL3/Oq14/OA36/OR)7/OJ38/OB9/OG[:/OO;/ONf/OR?/OJS@/OH)A/Os /OCLD/Op E/OHF/F/OG)G/OV7/Od/Oi/OcQ/OR s/OA/OD}/Oa /O` /OH/OJ!/OCL /OCL/OCL/Oj63 /OCL/O}; /O} /OyN /O{/ /OL> /OC{/OCL/OCL/OCL/OCL/O,CL/O/D/O0A/O2BEa/O3q/O6]//O7|} /O8j /O9g /OU/OKV/OCq/OCL/OCLY/OC Z/OF /OCL/OCL]/OBF^/OvR /OCL/OOPa/O@$/OCL/OCLd/OEZ/OCLf/O^/OCLh/OGni/OV_/OCLk/OY8 l/OO m/ON n/Omo/Okp/Oo33 q/Oi r/Ol s/OMt/OMu/OA/OCL/OCLx/OCBy/O Rz/O!F/O$CL/O%CL}/O'F~/O)Lh/O*MX/O,F/O.CL~/O/CL/O2K'/O4Vbv /O5bNf/O6cg/O7_\/O9CL /O;xP /O>CL/O?CL /O@ /OBCL/OCCL/OEEl/OGCL/OICL/OKn}[ /OLz^ /OOCL/OPCL/OQCL/OTSN /OUc/OV[P/OWWf/OZK/OX4/O]5/O\!/OX"/OT #/O{L$/OI %/OL=&/OMg'/OM(/OBF/OCL*/ORT+/OZʼ/OCL-/OH@/OCL/OCL0/ODB1/OJ 2/OL3/OMBs4/OCu/OCL6/O]/OCL8/OD|/OCL:/OA/OCL/OLg?/OJ@/OH&XA/Op /OCLD/Oof E/OH$F/OG(G/OWi/Ocg/Oi9/Ob\/OSQ(/OA/OEO/OcM /Oax /OH$/OJm!/OCL /OCL/OCL/O e /O#CL/O%~ /O&| /O'z /O(} /O*K˒ /O+C/O.CL/O/CL/O0CL/O1CL/O2CL/O5D/O7A/O8BHI/O9q/O<]33/O={w /O>k=" /O?gv /OCrFf/OFI*J/OG^]/OHD/OK},l /ONB /OyW7/O|y1 /O~D;/OC./OQ| /OU /O]f/OMvf/O^/OCL/OCL/OCL/OCL/OCL/OCL/OCL/OCL/OCL/OLw/OEق/OG/OF(2/OK =/OK =}e/O*`T}f/Ojv M/Ov N/OE`O/O@"P/OH6Q/OimR/OOBS/Oof T/OFtV/OgD X/OHY/OK[/O&/\/OJs3^/Oe_/Olr `/OB(~a/O|Yb/O~5c/Oy{/OCL/OCL/OCLg/Otʚ /O CL/O CL/O CL/O CLm/OGgn/Oo/Ow /OCL/OCL/O@CL/OACL/OBCL/OCCL/ODCLw/OHLx/OIYffy/OJ`\*/OKOP{/ONf |/OPU }/OQa5~/OT^/OWC}$/OXFA$/O[qt ~/O]CL/O_ch |/ObCL/OeH/OfC^E/OgI\/OhF3u/OkCLt/OlCL/Onp /Ooz /OquK 5/OrJ6/OsK/OuCL/OvCL:/OxE#;/OyG&/OCLk/OYd l/OPu m/OO\ n/Ol3o/Ok=p/Oq( q/Oi r/O k s/O!Mnt/O"MEu/O#Bg/O%CL/O&CLx/O(D- y/O*Qz/O+G;/O.CL/O/CL}/O1G&"~/O3ML/O4Mj*/O5Ff/O7CL~/O9CL/OV /O?b/O@dq/OA_ 4/OCCL /Omy /OpCL/OqCL /Or7/OsCL/OtCL/OvEW/OyCL/OzCL/O|n /O}|ʂ /OCL/OCL/OCL/OQm /OS/OL/OJf/OKD/O]>/ObW /O`s4!/OU "/OK#/Op$/OI%/OL&/OM^'/OM(/OCg/OCL*/OK+/OXdD/OCL-/OH/OCL/OCL0/ODQN1/Od2/OL!3/OMQ 4/OD/OCL6/O]/OCL8/OD/OCL:/OB/OCL/O J ?/O Ji@/O H<-A/O r /O CLD/O rz E/O HF/O G-G/O W/O e/O k,/O dP/O S/O A/O E/O c /O aD /O !H /O "JZ!/O %CL /O 'CL/O (CL/O *b. /O -CL/O /)b /O 0uD /O 1{LS /O 2}u% /O 4S] /O 5Cw/O `CL/O aCL/O bCL/O cCL/O dCL/O hD/O iA/O jB;/O krsx/O n]33/O o{a /O pkh /O qg /O uo3/O xIB/O yaH/O zD'/O }}u% /O A /O W @/O )b /O E /O Ca/O P /O ZH /O ^ /O OS3/O ^/O CL/O CL/O CL/O CL/O CL/O CL/O CL/O CL/O CL/O LT/O Eق/O GM/O F*/O K\/O K\}e/O 4c3y}f/Onw- M/O wf N/O E,6O/O @(P/O I@Q/O jΟR/O OS/O o T/O C{V/O a@ X/O HqY/O KV>[/O x\/O (JG^/O +f:_/O ,mV `/O /Aa/O 0ZHb/O 1\nc/O 2Vٚ/O 4CL/O 5CL/O 6CLg/O 9t /O ;CL/O CLm/O AGAn/O D4o/O Fx

    ~/O ^^/O aCD/O bFh/O r# ~/O CL/O eI |/O CL/O HQ"/O D/O J/O L%u/O CLt/O CL/O pt /O { /O t- 5/O J6/O K(/O CL/O CL:/O E*;/O F!/O Vf"/O O#/O x&g$/O I%/O L&/O M`'/O Mѩ(/O )b /O CL*/O di+/O `/O CL-/O H/O CL/O CL0/O D1/O C2/O LO3/O Mvn4/O E(/O CL6/O ]/O CL8/O El/O CL:/O BM/O CL/O L?/O Ji@/O HLA/O s /O JCLD/O Ls E/O NHF/O OG?CG/O PZ/O Sfɚ/O Tlx/O Vd/O YSқ/O ZA/O [F&/O \b6 /O ]`q. /O ^IE/O _J!/O cCL /O dCL/O eCL/O gdp /O jCL/O l@X/O m}f /O n| /O p~ /O qgR/O rCSc/O uCL/O vCL/O wCL/O xCL/O zCL/O }D/O ~A/O BQ/O rQ/O ]6/O }f /O k /O h7 /O mi/O IT*/O `g0/O D\/O }f /O @Q /O X?/O r /O D/O CL!/O U /O UD /O `ff/O O /O ^/O CL/O CL/O CL/O CL/O CL/O CL/O CL/O CL/O CL/O LJ/O E/O G/O FW/O K{/O K{}e/O ql}f/O vh M/O*v N/O,E-O/O-BP/O.H9Q/O1imR/O2PS/O3oXB T/O5JJeV/O6o< X/O8HY/O9K[/O:4T\/O;J/^/O>f4_/O@uq `/OAA<a/OCrb/ODvaHc/OEq!H/OGCL/OHCL/OJCLg/Otu T /OvCL/OwCL/OxCL/OyCLm/O|Fn/Ogo/Oy /OCL/OCL/OCL/OCL/OCL/OCL/OCLw/OLqx/O]\y/Oi\*/OOP{/Oo |/OS}/O`~/O^/OC\/OF/Orz ~/OCL/Oil |/OCL/OHG/OC/OJ'/OOu/OCLt/OCL/On) /O{- /Ou& 5/OJɓ6/OK#/OCL/OCL:/OF?;/OP1@Z/O?F^./OACL/OBCL]/OEM!j^/OH{w /OKCL/ONOPa/OOA{/OQCL/ORCLd/OTFR/OWCLf/OX^/OYCLh/O[G:i/O\S5i/O_CLk/OcY l/OdPW m/OeOff n/Ohmo/Oilp/Oks# q/Olkf r/Omo8R s/OnM6t/OpMu/OqB/OsCL/OtCLx/OvD|y/OwN5Jz/OC'/OCL/OCL}/OG~/OM-/OMV/OG:j/OCL~/OCL/OL-8/OVˆ /Odvg/Oe3/OaA/OCL /O{w /OCL/OCL /O)/OCL/OCL/OF/OCL/OCL/Ork /O@[/OCL/OCL/OCL/OO /OY4/OPa/ON3/OK/OY/O]/O]!/OT9"/OL)#/Om$/O IR%/O LA&/O M['/O M(/OCa/OCL*/OOP/+/O\l/OCL-/OI :/OCL/OCL0/OE1/OHL2/O!L3/O"M4/O#E/O%CL6/O&]/O'CL8/O)E/O,CL:/O.C./O1CLqw4/O@A36/OBWi7/OCRf8/ODDf9/OGF:/OIOP;/OJM/OOM?/OPJf@/OQHd6A/OTs /OWCLD/OYsrb E/O[HF/O\GPG/O]T,/O_h(/O`nt/Obe/OeS/OfA/OiFf/Ojdc /Oka /OIw/OK0!/OCL /OCL/OCL/Oi /OCL/O@R/Or /O}u% /O~z /Og/OC5/OCL/OCL/OCL/OCL/OCL/OD/OB /OB/Os/O]6/O}h /Ol5h /Ohq /OpFf/OI^./O^Q/OD /Ow3 /O@\) /OY/O~] /OC/OC6]/OXb /OZj /O`f/ONf/O^/OCL/OCL/OCL/OCL/O CL/O CL/O CL/O CL/OCL/OL/OE/OGҥ/OF'J/OK\/OK\}e/On!}f/OtV M/Oaw N/OcE> O/OdzD P/OeHQ/OhjR/OiPS/OkoI T/OlAV/Om^"; X/OoH(Y/OpKq[/Oq\/OrH)^/OvgO_/Owdr `/OxAa/Oz@hb/O{A(c/O|~\/O~CL/OCL/OCLg/Ou_ /OCL/OCL/OCL/OCLm/OFn/Ogo/Oz /OCL/OCL/OCL/OCL/OCL/OCL/OCLw/ONx/OY{y/Oe/OOP{/O\DD |/ORW}/O`+~/O^/OB/OFN/Orn ~/OCL/Ohn |/OCL/OH/OC/OJp/OHӻu/OCLt/OCL/On?} /Oz /OvZ 5/OJ6/OK>/OCL/OCL:/OE;/OEyCL/O?CL/O@CL/OACL/OBCL/OC^/ODCL/OECL/OGCL/OHNl!/OJCL/OMC/OOCL/OPCL/OQuZ /O|CL/O}CL/O~CL/OCL$/OK;%/OJ&/OL7/OCL*/OLh,/OI=/OCL./Oy]w /OCL/OCL/OCL/OCL3/Oq4/OA36/OW7/OWɚ8/OK9/OF :/OKf;/OL3/OO?/OJ`@/OHiA/Os /OCLD/Os E/OH)F/OGZG/OS)/Oe/Ok/Od/OT5/OA/OF/Od( /Oa /OJ;/OL~&!/OCL /OCL/OCL/Oj ^ /OCL/O@/O}u% /O~] /O: /OF /OC /OCL/O CL/O CL/O CL/O CL/OD/OB,d/OBZ/Os/O]6/O /Ol~k /Oh /ODrf/OGIP/OI_C/OJD/OMw4 /OP@n /OSZj/OVxP /OWE/OXC'/OZWG /O]T /O^^Ff/O_L3/O`^/OaCL/ObCL/OdCL/OeCL/OfCL/OgCL/OhCL/OjCL/OkCL/OnL/OoEƅ/OpG=/OqF*/OuK{/OxK{}e/O\_}f/Os M/Ow4 N/OE":O/OBP/OIHQ/OjuR/OP.ZS/Oo; T/OGV/Oh X/OHY/OK[/OΦ\/OH}^/OhZ_/OtU `/O@a/O` b/Oaqc/O]/OCL/OCL/OCLg/Ou? /OOP/O CL/OCL/OCLm/OFn/O~o/O| /OCL/OCL/OCL/OCL/OCL/OCL/OCLw/O#N.x/O$U34y/O%eu/O&OP{/O)l |/O+Rn}/O,aV~/O/^/O2B/O3F/O6r1 ~/O8CL/O:b |/O=CL/O@I:/OAB/OBJE:/OENu/OGCLt37CL37m 37 z J 37 u^6 537 J637 KR37CL37CL:37E;37Nn<37fC?37I/j37CL37CLB37HC37MvD37EE37`kF37 uLG37!jH37"N L37$uǯM37%o5N37&zuO37)mm P37*f Q37+D4KR37-UT37.L(U37/K UV370D372CL373CLY376PsZ377F379CL37:CL]37eH#^37fyz 37iCL37lOPa37mAW37oCL37pCLd37rF37uCLf37v^37wCLh37yHi37zQ.37}CLk37Z l37Op m37N n37m o37kp37sz q37lk r37n s37N t37Mcu37Da37CL37CLx37Ey37Rv=z37B37CL37CL}37Gu~37MS37N{G37H37CL~37CL37Lx^37Qk 37f37h#337a37CL 37|oQ 37CL37CL 37ݦ 37CL37CL37F37CL37CL37rn 37AN37CL37CL37CL37OH 37c37\37Zs337L~37V37ZR37Y!37T&f"37G3#37e$37Ig%37M&37Mw'37N+(37-| 37/CL*371d ~+372W:376CL-378I{37:CL3737oP?37pJs@37qHrA37tu 37wCLD37yua E37zH6F37{GoaG37|QZ37pP37u37l37T37h?37G37bq 37_d 37H37J!37CL 37CL37CL37c7 37CL37A{37t' 37B37@37h37C 37CL37CL37CL37CL37CL37D37BO37C737t&37]:37} 37j 37h 37o337IA 37_A37Dt37vR 37@+ 37Z37@37E'37C<37Qn 37"S 37#^s337$K337%^37'CL37(CL37)CL37*CL37,CL37-CL37.CL37/CL370CL374L375E376G=377F437:K37=K}e37NJ}f37sI M37vc N37E2O37|QK P37I%HQ37lXR37P\S37o T37C*V37aσ X37HYY37K[37\37Hp[^37e_37gG `37@ua37qb37uHc37o37CL37CL37CLg37u 37CL37CL37CL37CLm37Fwn37Io37{º 37CL37CL37CL37CL37CL37CL37CLw37OaHx37ZǮy37jQ37OP{37_ |37RL}37_Ħ~37^37B37F37q ~37CL37cm |37CL37 IB37 B137 J$37Iu37CLt37CL37m 37yH 37u 537K 637Ks37CL37CL:37 FR;37!B<37"Z s?37#I=37NCL37OCLB37QHC37RJDD37SE.SE37UW\)F37WmG37XZzH37YN̒ L37Zk@M37[iT{N37\tuO37_m P37`f(r Q37aD|R37cV9pT37dL)U37eK#2V37gD37iCL37jCLY37mY$Z37nH@37pCL37qCL]37sG^37ty@Y 37wCL37zOPa37{AJ37}CL37~CLd37FxC37CLf37^37CLh37H*i37P*37CLk37Zu l37U3 m37Tq n37nٚo37k=p37qaH q37jǮ r37l# s37N t37Mlu37DYH37CL37CLx37EVy37Ryz37Cp37CL37CL}37G~37Mi37N37vK 37CL~37CL37HL37Wv 37h37k,37fC337CL 37| 37CL37CL 3737CL37CL37G37CL37CL37 s 37!}e 37$CL37%CL37'CL37)Xd 37*V\37,M337-K937/M 371Zf373^374]T{!375O3"376E#377g4$378Id%379ME/&37:Mz'37;N=\(37CL*37?^*+37@k37BCL-37DI37FCL37HCL037JF137KJh237MM)337NN?/437OE37yCL637z]37{CL837}FE37CL:37DY37CL<37C=37CU37CL37CL@37MsA37LFB37A7=37CL37CLE37fH37z I37c J37Qr2 K37D NL37D37ixB 37n 37P037H9Q37H\37B 37n}[ 37HVF37j> 37}37Gx37O?37JP37L37Fa}37J 37EV37Lv37M37JP37I837d] 37Q37@37CL37E'37DF-37CL37CL37CL37CL37CL37CL37CL37CL37 K&g37 C37 L3337VR37ZE37VR37CL37CL37CL37CL37CL37CL37@CL37B^37CCL37DCL37ECL37GNj37HCL37KC 37MCL37NCL37Pvܹ 37SCL37TCL37UCL37VCL$37YK%37ZJb&37]R37_CL*37bL,37cFL37eCL.37gJ 37jCL37kCL37lCL37mCL337pq437rA3637tQC3737uLl837vDf937yF{:37{R);37P<37Nf37CL>37Pk?37JA@37HhA37w| 37CLD37v E37HEFF37G(G37L}37i37o37gf37U37Mi37Gh37b[ 37`' 37I37K!37CL 37CL37CL37d( 37CL37B)37AZ37J 37Al37W8`37Cv37CL37CL37CL37CL37 CL37 DŠ37C37C37t 37]=q37@C 37l 37i/ 37o37I;37][37E"37"w 37%@{ 37(Znm37+c 37-E37.C 37/R 372W; 373^\374M0376^377CL378CL379CL37;CL37CL37@CL37ACL37lL37nEZ37oGM37pF37sK37vK}e37epi}f37rE M37vԑ N37E/O37AP37IQ37kR37P}S37}~ T37FV37e X37HY37L6[37Ҧ8\37GAl^37a!_37r `37Aa37]b37]c37V37CL37CL37CLg37v 37CL37CL37CL37CLm37Fn37o37| 37CL37CL37CL37CL37CL37CL37CLw37K>x37Yy37fg37OP{37i33 |37Ss}37^~37 ^375B376FEw379q ~37;CL37=c |37@CL37CI237DBz37EJ037HJau37KCLt37LCL37NlA 37Oy5@ 37Pv/ 537SK3637TKD37VCL37WCL:37YFݱ;37ZAư<37[Zx?37\H$37_CL37`CLB37bGC37dDD37eE*xE37gZ F37hnG37i\8RH37jO d L37kpM37lnN37mxs4O37mJ P37fE Q37D- R37V;T37L6vU37K6SV37D37CL37CLY37K Z37G37CL37CL]37FT^37y 37CL37OPa37As37CL37CLd37F37CLf37^37CLh37H@i37O737CLk37Zt l37M= m37L\ n37nLo37l p37u q37oǮ r37s=q s37Ntt37Mu37Dh37 CL37 CLx37 Ey37 Q8z37 C37 CL37 CL}37 G0~37 M37 Nq37 Gld37 CL~37 CL37 s37 W 37 c37 d37 `i37 CL 37 ! 37 $CL37 %CL 37 &Jn37 'CL37 (CL37 *Hm37 -CL37 .CL37 0u' 37 1B*37 4CL37 5CL37 6CL37 aO 37 bd37 d]37 e\37 gMB37 i`c37 kd37 lb4!37 mPff"37 n@3#37 ocL$37 pI%37 qMo#&37 rM'37 sNW(37 v} 37 yCL*37 {dJ+37 |[WC37 CL-37 J+37 CL37 CL037 F137 I{Q237 MS337 Nu437 F\37 CL637 ]37 CL837 J37 CL:37 EW37 CL<37 Ez=37 F/37 CL37 CL@37 NA37 LB37 DJ37 CL37 CLE37 aH37 ~I37 h' J37 Oy K37 HUL37 K"37 ixB 37 m 37 M$37 Fq37 F37 B 37 m 37 F37 kww 37 ~637 H)c37 O37 J 37 M 37 Fa}37 K37 @ 37 )Lv37 *O' 37 ,JP37 -I37 .d8< 37 1Q37 2A37 5CL37 8E37 ;DF-37 =CL37 >CL37 ?CL37 @CL37 ACL37 BCL37 CCL37 ECL37 HC{337 It6g37 JI337 KVR37 L]37 M\^37 OCL37 PCL37 QCL37 SCL37 TCL37 UCL37 VCL37 W^37 XCL37 YCL37 ZCL37 \Nz37 ^CL37 aC 37 bCL37 cCL37 w 37 CL37 CL37 CL37 CL$37 L%37 JK&37 M37 CL*37 L,37 P37 CL.37 ~ 37 CL37 CL37 CL37 CL337 r!437 A3637 T3737 S837 D937 FE:37 L;37 P<37 J437 CL>37 Pw:?37 J@37 H]A37 v- 37 CLD37 vv E37 HP2F37 G:G37 L-37 q6f37 w37 p 37 V 37 ]C37H@37 at 37 ^; 37 F537 Ib!37CL 37CL37CL37CL37?CL37hCL37iCL37jCLw37nIx37oXy37qa37rOP{37v^"# |37xQH}37y^I~37{^37C37F37rs ~37CL37f |37CL37IY37C*37Jb(37Gh?u37CLt37CL37hV 37x 37ths 537K'637KM37CL37CL:37G;37}<37Z?37IS37CL37CLB37GC37ApD37E`{E37^F37yqG37q{H37O L37nuM37k0N37v*O37m7 P37fm Q37DQNR37VOT37LaUU37KpV37DB37CL37CLY37G-aZ37G:37CL37CL]37L`^37xt 37CL37OPa370A373CL375CLd377G} 37:CLf37;^37Hi37@M|37CCLk37F[L] l37GY m37IW n37Lo3o37Ml~p37OuaH q37Qo r37Rm\ s37SN3Qt37TM&u37W|& 37ZCL37[CLx37^Fy37_N5Jz37`C37cCL37eCL}37hH9Q~37jM"37kO37I->37CL~37CL37ZPG37X5+ 37c37e37_a37CL 37{Z 37CL37CL 37ub37CL37CL37G37CL37CL37uD 37CA(37CL37CL37CL37Ph 37X 37Q37O837NA37j#37nW 37m!37B3"37D@#37jY$37IE%37M&37M{'37N(37} 37CL*37c+37`37CL-37 Jm37 CL37CL037F:137P5237M=337N:437Fq37CL637]37CL837G37!CL:37#{ 37&CL<37(X%=37)F?37-CL37.CL@372NvA373M4B37\Bۤ37^CL37_CLE37bkH37dBI37fZ\ J37hGp K37kIL37nUm37qixB 37sB 37uL+ 37vD37wEN37{B 37|B 37}E 37~l 37}37H37OP37J"Q37M 37Fa}37K()37BV37Lv37O37JP37Is37f 37Q37B37CL37Eu37Du37CL37CL37CL37CL37CL37CL37CL37CL37D337vf37K37\W 37\R37^437CL37CL37CL37CL37CL37CL37CL37^37CL37CL37CL37Nr37CL37Cy37CL37CL37$w 37&CL37(CL37)CL37*CL$37-K%37.Ir&371H374CL*377Lf,378Gh37:CL.37<{ 37?CL37@CL37ACL37BCL337Ery437GA3637IR737KR 837LC937OG:37QN@;37RN<37SL6g37UCL>37XK)?37YJ@37ZHA37]wna 37_CLD37x# E37Hp F37GЍG37N5D37k337pf37i37X37]37H37gx 37c>k 37F(37H !37CL 37CL37CL37g 37CL37C.37~ 37J,37B37A 37C'37CL37CL37CL37CL37CL37Dݢ37F37C37t37]@37B+37me 37iJ 37r337IA 37]-[37F 37w 37Az 37X@q37rz 37Fs37 CD37 Qm 37 Z 37_f37Of37^37CL37CL37CL37CL37CL37CL37CL37CL37CL37M\37!F37"H937#HO37&K(37RK(}e37Y܌}f37l˱ M7wH N7E/O7|Z P7J+Q7m;R7Q'S7o T7AMGV7]Z X7HY7!L2[7";g\7#Ej^7&d,q_7(f* `7*Ba7+q^b7-vc7/oT{7[CL7\CL7]CLg7_v8 7bCL7cCL7dCL7hCLm7kGx n7n@&fo7p 7rCL7sCL7tCL7uCL7vCL7xCL7yCLw7|Kx7}ZRy7~]7OP{7] |7OO}7]R~7^7C7F1F7qt ~7CL7g+ |7CL7I|>7D7J[7Q+u7CLt7CL7b6F 7v 7sZ 57K?67K7CL7CL:7F;7L<7Z_?7I7CL7CLB7G:C7}iD7EoE7]=qF7l>G7_H7P@ L7j*M7 h!HN7!r޹O7$nn P7%gx Q7&DR7(VT7)L-U7+KV7,Dk7.CL7/CLY71F:Z72I75CL76CL]78HVF^79x 7|5! 7ACL7BCL7CCL7DCL37Gr47IA367LO77MK87NL3397yG2G:7{M3;7|NL<7}L7CL>7Kc?7J@7HvjA7w 7CLD7x E7HsF7GЍG7L/c7m7sq7lx7Y7^7H7d 7_ 7F7J!7CL 7CL7CL7gX 7CL7Cμ7oK 7I\7BE7M 7CD7CL7CL7CL7CL7CL7D7EJ7Cj7t.7]@7Bc7n`* 7j 7r7IRX7^7E7w 7A 7XlE7v 7G7 CZ7 SS 7 UU 7]7Mvf7^7CL7CL7CL7CL7CL7CL7ACL7BCL7ECL7JL7KG7MHZ7NH>7QK(7TK(}e7a }f7f M7vԑ N7E$^O7D_P7JQ7k˥R7P&S7ouq T7I=uV7l X7HWY7M[7Ф\7Ef^7h3_7tr `7A<a7tGb7uHc7q7CL7CL7CLg7 vw 7 CL7 CL7CL7CLm7GPn7@6fo7@,7CL7CL7CL7CL7CL7CL7 CLw7#Kx7$Yy7%b7'OP{7*m |7,O^}7-\~7/^72C574FN77q+ ~79CL7;g |7>CL7AIe7BDZ7CJK7mFu7oCLt7pCL7sb0! 7tv > 7usc 57wKz67xL7zCL7|CL:7~G;7L4e<7W?7I7CL7CLB7G̶C7MD7EE7d*F7u\*G7`RH7Pn L7rM7oT{N7zHO7n P7gJ Q7DR7WT7LU7KhV7EW7CL7CLY7FZ7J7CL7CL]7H^7{ 7CL7OPa7BuK7CL7CLd7HO 7CLf7^7CLh7Ii7V7CLk7\ l7X m7V n7Mno7NmBp7Pt\ q7Qo r7RoL s7TN\et7UMu7VB7XCL7YCLx7\J)y7^Rlz7_D7bCL7cCL}7fH~7hN7jO!7lH7nCL~7oCL7b7X 7h7hy7c7CL 7x0 7CL7CL 77CL7CL7HH7CL7CL7tj. 7E7CL7CL7CL7O= 7S7M7J37Q7pq7s{7sJ>!7zff"7rf#7Z9$7I%7M*&7MC]'7N(7C]7CL*7O+7Xի7CL-7 J 7 CL7 CL07 F17 Iq27 M37 M*47 Gf7 CL67 ]7 CL87 G:7 CL:7 z$ 7 CL<7 br=7 G7 CL7 !CL@7 $O$A7 %MVB7 (~ 7 +CL7 ,CLE7 /s#H7 0|I7 3p J7 4@rK7 7I ZL7 av 7 dZ 7 eixB 7 gPx7 hGJ7 iG7 mixB 7 nixB 7 oG7 pi 7 r~(7 sHmq7 vO7 xJP7 yM 7 |Fa}7 ~L7 BV7 Q^7 OR7 JP7 IF7 h 7 Q7 B7 CL7 Ej7 E*7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 H>f7 A7 L37 VR7 ^ 7 \ٚ7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 NX7 CL7 C<7 CL7 CL7 s 7 CL7 CL7 CL7 CL$7 K%7 JZ&7 H/7 CL*7 L#c,7 Sq7 CL.7 E 7 CL7 CL7 (CL7 )CL37 ,rC47 .A67 0K77 1Mff87 2Gٚ97 5G9:7 7OP;7 8O<7 9M7 ;CL>7 =KU?7 >Jȉ@7 ?HrA7 Br# 7 ECLD7 Gsc E7 IHhF7 JGwG7 KM@7 Nka7 Oqt7 Qii7 TZ~7 U^7 VI!v7 Wc 7 X` 7 YHm7 ZJ3!7 ^CL 7 _CL7 `CL7 bh 7 CL7 D%7 C6]7 J7 C'7 ZR7 CE7 CL7 CL7 CL7 CL7 CL7 Dy7 E.7 Cl7 tu7 ]DD7 BE7 n4a 7 j 7 p07 IRX7 ]7 F\7 wQ? 7 @^ 7 Z7 v4 7 Fm7 Ca7 V 7 Q; 7 ^Vf7 L337 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 L7 G7 H`7 HK67 K(7 K(}e7 g;}f7sf M7 (w4 N7 *E-O7 +~5 P7 TKBQ7 WmQR7 XPS7 YoI T7 [AjvV7 \]LM X7 ^HY7 _M[7 `\7 aF^7 dd3:_7 fe `7 g@a7 ipgb7 joLc7 kk07 mCL7 nCL7 pCLg7 rv  7 tCL7 uCL7 vCL7 wCLm7 zF n7 }@Ao7 @@7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Ezx7 Xqy7 ^)7 OP{7 \wx |7 OQ}7 ]*1~7 ^7 B7 FX7 q9 ~7 CL7 f |7 CL7 IW7 D7 JS7 Ku7 CLt7 CL7 ] 7 u 7 r^6 57 Kq67 L;7 CL7 CL:7 GJY;7 U3<7 g"G?7 J_C7 CL7 CLB7 H2C7 MD7 EE7 eF7 vG7 XH7 !Q L7 "nM7 #oN7 $wO7 'p^ P7 (i Q7 )DR7 +WxT7 -MTU7 .K]V7 /V#7 1CL7 2CLY7 4FiZ7 5K 7 8CL7 9CL]7 ;IS^7 ={a 7 @CL7 COPa7 DB97 FCL7 GCLd7 IH@7 LCLf7 M^7 NCLh7 PI i7 QU7 UCLk7 \< l7 W m7 VQ n7 p33o7 m^p7 t{ q7 p\ r7 paH s7 Njt7 Myu7 D#7 CL7 CLx7 Bhy7 Pz7 DY7 CL7 CL}7 H ~7 N47 N7 Id7 CL~7 CL7 [Z7 X3 7 d7 f7 a^f7 CL 7 w 7 CL7 CL 7 `7 CL7 CL7 H7 CL7 CL7 qt 7 EO7 CL7 CL7 CL7 P(n 7 T37 Nf7 MX7 RJB7 n7 qٙ7 q!7 33"7 uL#7 ^$7 I%7 MV&7 MJ'7 N8(7 } 7 CL*7 dJ+7 ]t 7 CL-7 K 7 CL7 CL07 G417 H527 Nn37 Me47 G7 CL67 ]7 CL87 IG7 LCL:7 N{ 7 QCL<7 SaN=7 TG} 7 WCL7 XCL@7 [OA7 \NDB7 ]C7 _CL7 `CLE7 csH7 d~cI7 ga J7 hax K7 kF 0L7 mFݱ7 q[ 7 rj ^ 7 tPx7 uH7 vH7 yl5h 7 zju 7 {G`7 |i 7 ~}7 HSa7 O/7 JP7 L7 Fa}7 L7 B"7 Lv7 O7 JP7 I;7 ir 7 SE387?A@97BGB:7CK;7DNI<7EJ7GCL>7JK?7KJ@7tHvjA7wsF 7yCLD7{t E7}HXF7~HG7T3^7o7u7m37[ 7_w7Ir_7ex 7`EA 7H7L|!7CL 7CL7CL7l& 7CL7DJ7qˈ 7JBU7Ca76 7CH7CL7CL7CL7CL7CL7D67EZ7CW7t7]DD7C 7nn 7k= 7q|7IX7YT7F7B3:7@ 7Y7Er7MXO7Ca-7UT 7W" 7_7Ms37^7CL7CL7CL7CL7CL7CL7CL7CL7CL7Ln7 Gh7 H:7 HgR7K(7K(}e7bg }f7 a֟ M7[w N7]EO7^CP7_JIQ7blR7cQ/S7do; T7fEn\V7gdW X7iHY7jMI[7k \7lE^7oc_7qqU `7r@ea7t[b7u\W c7vX#7CL7CL7CLg7v1 7CL7CL7CL7CLm7Fn7@fo7@7CL7CL7CL7CL7CL7CL7CLw7M8Rx7W=qy7g*7OP{7g |7N}7\~7^7Bf7Fe37q ~7CL7g |7CL7IF7D7J@*7 Ou7 CLt7 CL7at 7v > 7r 57Kn867LZ 7CL7CL:7F;7K<7Z ?7J7!CL7"CLB7$Hs<C7%J D7&EE7(lLF7*v34G7+YGH7,P L7-mQM7.iN7/u=qO72o P73hׄ Q74DR76WPT77LU78K8V79E:7CL-7@K07CCL7DCL07FGX17GGͧ27IN 37JM&47KGM7MCL67N]7OCL87QG7TCL:7V| 7YCL<7[bY=7\F7_CL7`CL@7cNA7dNB7g~; 7jCL7kCLE7tBH7{I7p J7G K7ECL7{ 7Z 7ixB 7Pg7H&}7HD7k 7j ^ 7HG7i 7}܊7H6k7P7JP7L7Fa}7L7BV7L.7O7JP7IHW7h 7S7|Kc?7~J!@7H'A7r 7CLD7tU E7HWyF7GG7RZ7l&f7r37j7[hx7_$7I`d7c{ 7_v 7Ip7LVh!7CL 7CL7CL7f 7CL7C7of 7IL\7BM7i7CH7CL7CL7CL7CL7CL7Ey7F@7C>X7t7]DD7CU7n 7k 7of7IT*7[27FC7A(7@k 7Z7A7M7Ca-7&O1 7)XD 7*^@7+J7-^7.CL7/CL70CL71CL72CL74CL75CL76CL77CL7:Lc7;G7=H~7>Hl7AK(7BK(}e7N}f7ev M7v N7E O7BP7JQ7lgR7Q+S7@;T7EV7f62 X7HY7M^[7\7G^7e(_7lr `7A@a7vgb7uc7q >7CL7CL7CLg7v 7CL7CL7CL7CLm7G$n74o7@U7CL7CL7CL7CL7CL7CL7CLw7Gx7TǮy7d7OP{7eUV |7O}7]~7^7B7F7qˈ ~7CL7gJ |7CL7 I<7 D7 JyL7H:u7CLt7CL7d+ 7wĜ 7s 57K67LP7CL7CL:7 G} ;7!S<7"\)?7#JZ7&CL7'CLB7QHmC7REpD7SEE7U^F7VkG7WWLH7XQ" L7Z\0M7[WN7\cO7_o P7`h" Q7aCwR7cUT7dLۛU7eK@V7fD 7hCL7iCLY7kFZ7mK7oCL7pCL]7rJm^7s{/ 7vCL7yOPa7{B97}CL7~CLd7FT7CLf7^7CLh7~`si7SM7CLk7\= l7O m7N n7mLo7np7s q7o r7qff s7N=\t7MAu7~] 7CL7CLx7Ny7Nz7D7CL7CL}7H~7NQ7O7G7CL~7CL7{7Y] 7d7fs37b@7CL 7y] 7CL7CL 77CL7CL7H7"CL7#CL7%q9 7&C\7)CL7*CL7+CL7.T, 7/`70L71K074S>76m77rE78p!79q@"7:ey#7;Qf$7=I%7>M*&7?Mw'7@N~(7ACi(7CCL*7EM+7JX7MCL-7PK 7QCL7SCL07}G} 17~P27N37M47G )7CL67]7CL87G7CL:7{ 7CL<7a=7Fݱ7CL7CL@7NA7N'2B7| 7CL7CLE7wb+H7yB~I7V J7xk K7CL7v4 7Z}W 7ixB 7P07G7H 7jb 7ixB 7Ge7i 7~7Hf47P 7JP7L7Fa}7L7Bd7Rz7P7JP7I97lº 7S7KU?7J/@7HA7r 7CLD7s E7H'F7HG7S M7g{47mA7fC37[B7^ 7I{]7e>t 7a 7I7K|!7CL 7CL7CL7ex 7CL7D%7 AH7 G̶7B7X7CKh7CL7CL7CL7CL7CL7E7Fg7C7s7"]@7#B7$n 7%k 7(pFf7,IZ7-Z9O7.FR71w 74@R 77YJ7:{ 7;G7=Ci(7>QB2 7AS 7B\7CKl7D^7ECL7FCL;CL;CL;CL; CL; CL; CL; CL;LL_;G;Y;H{F;H;K(;K(}e7O7}f7hY M;nw N;qE-O;r P;sJ3%Q;vmR;wQKS;xA:%T;yAV;{\ X;}HQY;~MA[;h\;EV^;a_;er `;Ca;q4b;rgc;n^;CL;CL;CLg;v@ ;CL;CL;CL;CLm;H(n;|o;@V;CL;CL;CL;CL;CL;CL;CLw;GHx;Uqy;\4;OP{;\33 |;PR};\(~;^;C;Fݠ;rk ~;CL;e |;CL;IT7;C;Jz;NAju;CLt;CL;em ;x9X ;sȵ 5;K]6;L;CL;CL:;-E;;.I<;0[1?;1K ;4CL;5CLB;7HC;8CD;9EE;;RF;<`RG;=MW H;>QI L;@h@M;AeN;Bp\O;EpY P;Fh Q;GDR;IVT;JLVU;KKV;LD';NCL;OCLY;QEѕZ;SKB;VCL;WCL];YJā^;Z{LS ;]CL;`OPa;aB;cCL;dCLd;fGJY;CLf;^;CLh;lvi;R2;CLk;\y l;W\) m;UR n;nffo;o `p;r\) q;lk r;lB s;N=\t;Mu;Eu;CL;CLx;C}y;LIz;C>;CL;CL};H$~;NZ;N;IO;CL~;CL;gr;Y ;c&f;d.f;_S3;CL ;y{ ;CL;CL ;N;CL;CL;G̶;CL;CL;o; ;B; CL; CL; CL;P5 ;[њ;V,;T;S;n;s;pQ!;d";UFg#;Ef$;Ii%;N1&;M';!OU(;#|R8 ;&CL*;(d) +;*a!;-CL-;/Kc;ZCL;[CL0;]G1;^K2;`M3;aM4;bF;dCL6;e];fCL8;hG;kCL:;| z ;CL<;bؾ=;E;CL;CL@;NnLA;NB;@;CL;CLE;!mFH;#D=I;%iG J;'~ j K;)GL;+@A;.\ ;/ixB ;2M;3Fc;4F4;7ixB ;8ixB ;9FxC;:i ;<}a;=H4;AO;CJP;DL;GFa};IL;K@;NO`;OO;QJP;RIS<;Th ;WS;K?m?;Jz@;HA;q ;CLD;sU: E;HLF;GG;P;Lif;No;Og33;RZP;S];TIId%;?NR&;@Mt';AO)(;BC!;lCL*;nO-|+;p\;rCL-;tKF;wCL;xCL0;zG:1;|J=2;~Mr3;M4;Gn;CL6;];CL8;H@;CL:;z? ;CL<;d@=;G̶;CL;CL@;OA;NH"B;|& ;CL;CLE;@}H;CLI;yE J;P K;CL;r ;Z%\ ;ixB ;Px;Go;H;j ;ixB ;F/;i ;};H}^;O;JP;L;Fa};L;Cy;Lv;O' ;JP;IO;m ;Sp;?E!;AVR;B]5;C\(;ECL;FCL;GCL;ICL;JCL;KCL;LCL;M^;OCL;PCL;QCL;RNR;TCL;WC<;YCL;ZCL;\u ;_CL;`CL;aCL;bCL$;eK%;fJ$&;iIk;kCL*;nL3,;oE;CL.;x ;CL;CL;CL;CL3;s4;A36;D7; 8;m49;Fh:;If;;Kg<;H4;CL>;K;?;JmO@;HGA;rk ;CLD;sU: E;HAF;GG;Qr;ht;nNg;f4;Z61;];IcR_; ?j `; AB&a; B[aHb; CWqc; ERp; GCL; HCL; ICLg; Ku} ; MCL; NCL; PCL; QCLm; TGOn; Wɚo; Aj; CL; CL; CL; CL; CL; CL; CLw; G >x; NLy; \; OP{; _ |; N}; \44~; ^; C; FQ; q9 ~; CL; gHF |; CL; I; E; J*; Lu; CLt; CL; Z ; t ; q 5; KT6; Ltt; CL; CL:; G;; G,<; RŐ?; I; CL; CLB; HzxC; ~D; EE; YHF; eHG; IH; Qv L; i޹M; f޹N; rO; n P; g Q; CZR; U]T; LڱU; KV; F>K; CL; CLY; F Z; Jā; CL; CL]; I^; x ; CL; OPa; H@+; JCL; KCLd; M|R8 ; PCLf; Q^; RCLh; TSji; UO; XCLk; [\* l; ]V. m; ^T n; ano; bnp; dq# q; elR r; fl s; gNt; hMu; i@; lCL; mCLx; oJy; pQkz; qD; tCL; uCL}; wI(-~; yNh; zN'; {Gʉ; }CL~; CL; s; Y? ; b@; c; _Ng; CL ; { ; CL; CL ; F[; CL; CL; H]; CL; CL; q ; E; CL; CL; CL; OX ; b~f; N; LP; Ui; p; t{; q >!; d34"; Yf#; K&g$; I%; N&; Mt'; O (; ~ ; CL*; cd+; Xk$;CL-;K ;CL;CL0;G1;H2;NY3;Mz4;I;!CL6;#];$CL8;&H;)CL:;+z? ;.CL<;0b%=;1H$;4CL;5CL@;8O&A;9NsB;=~ ;@CL;BCLE;DA6H;FAwI;Iof J;JIr K;vG7L;yof ;|Z ;}ixB ;MJ;EV[;Ey';ixB ;ixB ;EsZ;i ;} ;I"d;O`;JP;L;Fa};L;E,O;Q;M;JP;I g;mӄ ;S%; J \&; QI;CL*;LkX,;Oa;=CL.;?~OI ;ACL;BCL;CCL;DCL3;Gtk4;IA36;L}ٙ7;Mq8;Nl9;QF{:;RJff;;SK3<;TI ;VCL>;YNW2?;ZJs@;[H^A;^q ;`CLD;brs E;dHAF;eGG;fU(;je;kl3;ld;oZ#;p^{;qIW;rcx ;s`' ;uFxC;vIw!;CL ;CL;CL;m ;CL;Du;EZ;G';C6];;CKh;CL;CL;CL;CL;CL;E;F;B;r;]DD;D- ;oI ;l ;ms3;I<;]SW;Fel;w ;As3 ;W;q ;Gg;Ci(;Uc ;[ ; `; Off; ^; CL; CL;CL;CL;CL;CL;CL;CL;CL;L*;G>;H8,;H^;K(;!K(}e;M}f; ^ M;?wC N;iE!O;kEt<P;lK#Q;ol,SR;pP;S;qof T;rGV;si+ X;vHpY;wM<[;x\;yGT^;|gO_;}oUU `;Aha;|b;z@c;w>;CL;CL;CLg;u ;CL;CL;CL;CLm;GBn;@,o;B$;CL;CL;CL;CL;CL;CL;CLw;Fx;QLy;XB;OP{;i |;O};\:~;^;CSA;F};qHF ~;CL;h |;CL;I;ET;J;JYu;CLt;CL;Y| ;s ;p5@ 5;K\6;Lr;CL;CL:;G:;;G0G<;Xe?;J;CL;CLB;HkC;0DWD;1EE;3PF;4]\G;5RBH;6Q L;8jM;9g+N;:r O;=nn P;>gj Q;?DQNR;AV^T;BLųU;CK8V;DE;FCL;GCLY;IEZ;JJ;MCL;NCL];QIZ^;Rx ;UCL;XOPa;Y@[;[CL;\CLd;^|R8 ;aCLf;b^;cCLh;eTi;fN;iCLk;]8 l;UW m;T\ n;nffo;o~Ep;uaH q;nk r;m s;M/t;Mu;@c;CL;CLx;LPy;Pz;D;CL;CL};I/j~;Nv_;N;H8;CL~;CL;f;YH ;b@;d;_;CL ;| ;CL;CL ;ʯ;CL;CL;H[;CL;CL;o ;E+;CL;CL;CL;O ;Z4; R; O; U;k;qW ;q >!;e3";Ws3#;C $;I%;NA&;MQ';N{(;Ci(;CL*;R+;a@y;"CL-;$J;'CL;(CL0;*Ge1;+G2;-N3;.MY?4;/H;1CL6;2];3CL8;]H ;`CL:;bz % ;eCL<;gd8=;hHVF;kCL;mCL@;oOA;qNyB;t|= ;wCL;xCLE;zFH;|A(I;UI J;]K;HL;n0 ;[J ;ixB ;K;E,O;E,O;ixB ;ixB ;D|;i ;}S;I"d;O;JP;L;Fa};M ;Cy;Lv;M[;JP;I.;l^ ;S;O?;J`@;HrA;q ;CLD;rk E;H3F;GwG;U;id;o;gf;Yט;_p;I[;d ;`S ;F;I{!;CL ;CL;CL;h ;CL;DB;tz ;G;BE;G8 ;C6];CL;CL;CL;CL;CL;E- ;F7;Bn;r?;]DD;CD;nB ;m ;o3;I";\H;FZ;x+ ;A\ ;V5; }f ; GB; CZ; O ;[ ;^3;Q0;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;!L ;"GC;#H6[;$H;'K(;QK(}e;['}f;] M;ow N;qE#O;sCP;vJMQ;wn*R;xPǫS;yoK T;z@V;{[ X;~H|Y;M[;\;D9^;di_;cq `;@a;qHb;oEc;mJ>;CL;CL;CLg;u( ;CL;CL;CL;CLm;Fn; o;Ay;CL;CL;CL;CL;CL;CL;CLw;Ekx;N>y;[;OP{;[ |;OYc};[%~;^;C;Fv;q ~;CL;g3 |;CL;Io;~ ;Jt;PƜu;!CLt;"CL;%X ;&r^ ;'p 5;)Ka{6;*L;,CL;-CL:;/GJ;;0F<;1S,?;2J;5CL;6CLB;8HC;9ND;:E`{E;]G;?DH;@Qj L;AicM;Bf N;Cq*O;Fn P;Gg Q;HD_R;JVT;KLU;MKV;NE;PCL;QCLY;SFRZ;}Kw;CL;CL];I^;{ ;CL;OPa;B;CL;CLd;G;CLf;^;CLh;u i;M;CLk;]f l;Xz m;X33 n;ofo;nȣp;s q;m\) r;m = s;Mt;M4u;s T ;CL;CLx;MUy;O?z;DX;CL;CL};I(-~;N{;N;Hv;CL~;CL;];Yj ;c;f9;dFg;CL ;{ ;CL;CL ;x ;CL;CL; H; CL; CL;q ;D^|;CL;CL;CL;O? ;\;GX;F<;FV+Y;Hl>;Iq4;Js !;KW&g";LPf#;MBg$;NI%;ONA&;PM';QNz(;T~OI ;WCL*;Yd,q+;\\?;_CL-;aJ;dCL;eCL0;gG1;hQ'2;jND3;kM[4;lHȥ;nCL6;o];pCL8;rI :;uCL:;wy ;zCL<;|cT=;}Ge;CL;CL@;OݚA;NB;@k;CL;CLE;@H;@1+I;a J;l"K;[L;m4 ;Z ;ixB ;N;FN=;FN=;j ;ixB ;E;i ;} ;I"d;P;J;L;Fa};M ;B;Lv;I;JP;I$; m ;SK{%>J$&> I$ > CL*>L>,>F;>CL.>y]w >CL>CL>CL>CL3>tR 4>A36>!@g7>"x&g8>#v9>&F:l:>(I;>)K<<>*G6g>,CL>>/PA?>0J@>1HA>4r >6CLD>8r E>:H()F>;GbG>dVQ+>gfg>hl>ie#4>lY?>n^w>oIia>pb. >q_ >rG;>sI!>wCL >xCL>yCL>{f >~CL>D%>G>GB>BM>Y>C>CL>CL>CL>CL>CL>EJ>FO>BPE>r>]DD>C>oK >mZY >m>I&>\g>F(>y >A >X7>tY >G`>CL!>O >\ >a>P9>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L>GH>H6[>H>K(>K(}e>B}f;%\_ M>x N>EO>F,P>efQ>lBR>P%S>o; T>EV>d X>HVY>M[>\>ET^>fQ_>jG `>@a>ocb>pc>m4>CL>CL>CLg>t >CL> CL> CL> CLm>Fn>o>A>CL>CL>CL>CL>CL>CL>CLw>"@x>#Py>LU#>MOP{>Pc |>RO}>S[~>V^>YB͟>ZF94>]q ~>`CL>be۔ |>dCL>gI>hE>iJ>mPu>oCLt>pCL>sX 8 >tr >upfg 5>wKf6>xL>zCL>{CL:>}G0;>~Ez<>[W-?>JI>CL>CLB>HC>ID>EIUE>~RF>vpG>v{H>Q L>h*M>eN>pO>n P>gX Q>CR>VT>LIU>KV>F!O>CL>CLY>F Z>K82>CL>CL]>IL^>z >CL>OPa>B.>CL>CLd>H]>CLf>^>CLh>agXi>L>CLk>]/ l>S m>R= n>oYo>nyp> p q>!j r>"j s>#Mt>$Mlu>%AF~>'CL>)CLx>+Jy>,L7zz>-E>0CL>1CL}>3IZ~>5N>6N>9v >>CL>@JI(>BYU >Cby>De,>E\>GCL >I{Z >LCL>MCL >N>OCL>xCL>zG'>}CL>~CL>pX >E>CL>CL>CL>NJ >Qg>Jk4>Hf>W>q>{T{>zH!>W">MS3#>Kf$>I|%>N&>Mr'>Nu(>Ca->CL*>aA+>XA>CL->K)>CL>CL0>H 1>K6/2>N3>MY?4>HY+>CL6>]>CL8>H >CL:>{LS >CL<>cS=>H>CL>CL@>PNA>NڔB>},l >CL>CLE>GͧH>~ I>n! J>N K>FCL>hE^ > [~ > ixB > N> Go>H>kK >i& >Fݱ>i >} >@I"d>CO>EJ>FL>IFa}>KM >LB>PLv>QH8>SJP>TI$>Ul  >XQ>YC>[CL>^E>_C3>aCL>cCL>dCL>eCL>fCL>gCL>hCL>iCL>lv3>mq6f>oC>pZT{>q^#>r]=q>tCL>uCL>vCL>xCL>yCL>zCL>CL>^>CL>CL>CL>NL^>CL>C>CL>CL>| >CL>CL>CL>CL$>L%>I&>O§>CL*>L`i,>JE>CL.>z$ >CL>CL>CL>CL3>t4>A36>~47>us38>rf9>F$:>I6f;> I3<> F> CL>>P$J?>J@>HA>r+ >CLD>r E>H6F>GwG>Tc>e3> kI>"cs3>%YĬ>&^?>'IR>(fm >*bA >+HG>,J!>/CL >0CL>1CL>4g3 >7CL>9D4K>;Bk!>>B>A>BB>lCL>mCL>nCL>oCL>pCL>tEf>uF>vB]>wrqX>z]DD>{CZ>|n >}m/ >mf>I">Y7>Fme>y] >A= >W8>zcz >Gn>C'>MK >Y3 >]Ff>N3>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>L.P>GY<>H:>HS>K(>K(}e>AhJ}f>s[Ӗ M>yqn N>E&O>L";P>^5Q>lR>PQS>@C T>ATV>\y X>HY> M+[> \> F{^>7b_>8hG `>:Aia>;WLb>=S4>?CL>ACL>BCLg>Dt0 >FCL>GCL>HCL>ICLm>MG3n>P@ 3o>RAD>TCL>UCL>VCL>WCL>YCL>ZCL>[CLw>^F{x>_N=qy>`S>aOP{>d^ |>gOu}>h\ ~>j^>mB>nF˙>ph ~>CL>eK |>CL>I>E^U>Jā>G.u>CLt>CL>W+ >qĜ >ov 5>Kk~6>L>CL>CL:>G;>Dj<>Y?>IS>CL>CLB>HVFC>DzD>EtE>} >F>zHG>mH>R L>j:M>h(N>rO>n% P>g/ Q>CR>UMT>LU>KV> F'> CL> CLY> F!OZ> J> CL> CL]> Ib^> z)B > CL> OPa> A@> CL> CLd> H*> CLf> ^> CLh> "[ Ni> %Vm> (CLk> +^ l> ,U m> -S n> 0o33o> 1oFp> 3m q> 5j8R r> 6j3 s> 7N t> `Mu> cz? > fCL> gCLx> iKy> jIxz> kD|> nCL> oCL}> rIZ~> tN> uO> vGI> xCL~> yCL> |wpS> ~Y:d > Z> ]> U> CL > {in > CL> CL > o> CL> CL> HG> CL> CL> o > D > CL> CL> CL> N̒ > R> L{3> Jf> W}&> pY> t^> rq!> QL"> L#> Bf$> IM%> N '&> Mi'> N(> },l > CL*> cd+> `p> CL-> Jn> CL> CL0> G1> JZ2> N3> ME/4> H> CL6> ]> CL8> I/j> CL:> y]w > CL<> (dl=> )Hs<> ,CL> -CL@> 0P/A> 1NpB> 2@> 4CL> 5CLE> 7EF H> 9}I> =I& K> AH{L> Ce>t > FZ > GixB > JM> KF> LGo> OixB > PixB > QF:> Ri > T} > UH> XO> ZJP> \L> _Fa}> aM > bCy> Kg> H8> JP> I g> m > Q> C> CL> Eb/> DR> CL> CL> CL> CL> CL> CL> CL> CL> cVg> _> t6g> OxR> VR> V>> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> N@> CL> C<> CL> CL> y > CL> CL> CL> CL$> Kγ%> I&> K> CL*> L,> R> CL.> xe > CL> CL> CL> CL3> t*4> A36> @7> tf8> o9> E:> I;> Kg<> G|> CL>> !M]]?> "J{@> #HA> %p- > (CLD> *q+ E> TH@F> UGwG> VQgS> Yg> Zm> [e3> ^Y> _^> `IQ> aa > b^ > dG`> eI!> hCL > iCL> jCL> lk > oCL> qDnQ> sx > tG0> uC> wI{t> xB(> zCL> {CL> }CL> ~CL> CL> E> F> A > r5> ]DD> C4> oXB > n > n3> ID> Xie> Fa> y > AxR > W7A> |R8 > G`> CU> U > \D > `33> Q6f> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> L?> G]> H0> H> K.> K.}e> w@n}f>Z M> 3y N> 5E+O> 6LP> 8YXQ> ;jR> =AAhT> >GxV> @j\ X> BHY> CM٦[> Ds\> EG}(^> Hf _> Ip `> LCSa> Mo\*b> Ntc> Or> QCL> RCL> SCLg> Vt^ > CL> CL> CL> CLm> HXn> o> A> CL> CL> CL> CL> CL> CL> CLw> {x> MW y> S> OP{> j"# |> O- }> ]H9~> ^> Ck> G*> qHF ~> CL> fmy |> CL> I> EfN> J> Mu> CLt> CL> W( > q > n 5> K}6> L> CL> CL:> H[;> DW<> Wp?> I :> CL> CLB> H[C> BOD> DLE> {F> x\*G> aH> R~ L> j:M> ghN> qHO> n P> gX Q> CR> VT> L}U> L mV> F> CL> CLY> FZ> Jm> CL> CL]> H^> y > ICL> LOPa> MAʫ> PCL> QCLd> SH2> VCLf> W^> XCLh> [W_i> ^VH > aCLk> d^,+ l> eKǮ m> fJR n> ilo> jnȣp> lj q> ne r> of# s> pNt> qMu> rD8> tCL> uCLx> xRy> {Rhqz> }DnQ> CL> CL}> IZ~> N> N> G> CL~> CL> e> Y > `3> bf> Z> CL > { > CL> CL > Ķ> CL> CL> Hs<> CL> CL> of > C> CL> CL> CL> N > \> U> S> W> o> v> s!> T"> Hf#> vf$> I6%> N &>ME/'>N;(>D!n>CL*>P+>\>CL->J>CL>CL0>Go1>I2>M3>M4>I)>CL6>]>CL8>Iw>CL:>x >CL<>c=>H>CL>CL@>P9A>OB>}h >CL>CLE>EH>zKI>b[ J>iI K>HL> f > Y >ixB >N>FN=>FN=>=j ^ >?ixB >@F[G>Ai >C} >DHi>GP'T>IJP>JL>MFa}>PM >QB>TR>UIu>WJP>XI->Ylv >\Q>]C>`CL>cEj>dAX>fCL>gCL>hCL>iCL>jCL>lCL>mCL>nCL>qsvg>ravg>s~>t[>u_4>v^\>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N. >CL>C>CL>CL>vܹ >CL>CL>CL>CL$>K%>JLu&>G)H>CL*>Kډ,>Eb>CL.>E*>CL>CL>CL>CL3>tU4>A36>l7>jY8>c`9>E:>JC4;>K4<>Hvg>CL>>Ky?>Js@>HA>q >CLD>q E>H9rF>GG>U_>cɚ>iə>b1>Y>_"r>IV>dTj >a< >GgR>IiN!>CL >CL>CL>mi >CL>D- >E*>H@>BM>L >B>CL>CL>CL>CL>CL>ED>FA>A%>q>]DD>0C>1n >2na7 >5r >8I>:Z>;F >>y >AB >DV>H~' >IG0>JC>KUi >N^ >Oa>PR>Q^>SCL>TCL>UCL>VCL>WCL>XCL>ZCL>[CL>\CL>_L9>>`Ge>aH/>cH>fK(>iK(}e>_<}f> Z M>zw N>ECO>LdP>TMQ>l3R>P\S>p T>A>V>\ X>HY>M[>\>F)^>b_>gq `>Ca>Z>b>\c>Y!H>CL>CL>CLg>tt >CL>CL>CL>CLm>HPn>@o>@Ӻ> CL> CL> CL> CL> CL>CL>CLw>F{x>O#y>S>OP{>] |>O,}>]~>^>"C>#F>&q ~>(CL>*j[ |>-CL>0Ig>1DVb>2J>]Pu>`CLt>aCL>cV?} >dr9X >eo 5>gK6>hLT>jCL>kCL:>mH9Q;>nC<>oS)?>pJBU>sCL>tCLB>vH#C>x@D>{DE>}k(F>~jG>fH>RLZ L>iM>f N>phO>oI P>h6 Q>CR>VcT>LjuU>L!V>F >CL>CLY>F(Z>Ku>CL>CL]>Ik^>z % >CL>OPa>AJ>CL>CLd>G>CLf>^>CLh>S}5i>ULu>CLk>^V l>M{ m>LǮ n>o o>opp>qz q>l r>l= s>M@t>MSu>D>CL>CLx>W!y>Pԃz>C>$CL>%CL}>'IE~>*N3>+N>,H`i>.CL~>/CL>2ZӞ>4Yq >5^Y>7a^f>8Y>:CL >>CL>?CL >A,7>BCL>CCL>EH#>HCL>ICL>Ko+ >LB>OCL>PCL>QCL>TO >UY>VRf>WP>ZX+>\w>]x\>^x!>_Q">Vf#>F3$>IM%>N4:&>Mi'>N5$(>}R >CL*>di+>Y_ >CL->J+>CL>CL0>G1>G%2>M3>ME4>Hq>CL6>]>CL8>I=>CL:>yl >CL<>c=>Go>CL>CL@>PGA>N٪B>B >CL>CLE>@H>DjI>k/ J>akV K>IRL>d >\5 >i >N+>FN=>FN=>k >jb >FL>i > } > H'>P>JP>L>Fa}>M >BV>Lv>Hy[>JP>I$> lº >#Q>$BE>&CL>QEtC>RC2>TCL>VCL>WCL>XCL>YCL>ZCL>[CL>\CL>_lg>`` >bt6g>cV{>dVR>eVR>gCL>hCL>iCL>jCL>kCL>lCL>nCL>o^>pCL>qCL>rCL>tN&>uCL>xCU>zCL>{CL>}x >CL>CL>CL>CL$>K2%>I&>Q>CL*>LMH,>Eb>CL.>c >CL>CL>CL>CL3>t$4>A36>n@7>oL8>h9>Eok:>H);>I<>FY>CL>>KF?>Jy+@>H{A>rn >CLD>r E>H4F>GG>V>h>o!>fx>Y>_>IWf>b >_/ >G-a>J!>CL >CL> CL>"hׄ >%CL>'C4>(t!N >)G>*BF>+M1 >-B=>0CL>1CL>2CL>3CL>4CL>7E>8FŤ>9A>;q>>]@>?C=>@n >An >Dp>GI>H\c->IE>MyN >PAq >SU}>~y] >Fݱ>B>M^ >_ >`ff>RY>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>LF>Gn>H0>H>K#>K#}e>+`}f>cZQ3 M>y N>EHO>M[P>SFyQ>jR>P\S>o T>HV>jh X>HY>M[>E\>Fw^>d_>pr `>Bba>mpb>q0c>o >CL>CL>CLg>t. >CL>CL> CL> CLm>Gn>@io>@7f>CL>CL>CL>CL>CL>CL>CLw>FEzx>GMHy>HRQ>IOP{>Lj |>OPc}>P^B~>R^>UC>VF >Yp ~>\CL>^h# |>`CL>cIӘ>dD2>eJ>iH, u>kCLt>lCL>nV' >oq7L >qoƨ 5>rKt6>sL>uCL>vCL:>xG;>yBa<>zW?>{J>~CL>CLB>H[C>oD>D<E>B=qF>yG>lRH>Rfx L>j:M>fcN>q4O>of P>hb Q>DR>V`FT>LX6U>KUV>F >CL>CLY>F Z>K\W>CL>CL]>J,^>y@ >CL>OPa>A >CL>CLd>G>CLf>^>CLh>R~i>T?Z>CLk>^ l>MQ m>L n>m3o>o!p>j q>gz r>fQ s> Mt>!MVu>$pӖ >'CL>(CLx>*Mfy>+Oirz>-C>0CL>1CL}>3I6~>5N>6O >9Ha>;CL~>?U2>BX} >C\(>D]Q>EU>GCL Bz BCLB CL B HB CLB CLBG:BCLBCLBouq BB>BCLBCLBCLBO BL3BEB CB#XB%}GB&@B'@#!B(M"B)C#B*| $B+I8%B,NHO&B-MG'B.N(B/C4B1CL*B3P D+B5WB8CL-B:JmBeCLBfCL0BhG1BiPS2BkM3BlL4BmHBoCL6Bp]BqCL8BsIBvCL:Bxx B{CLCLB?CLBAyl BCCLBDCLBECLBFCL$BIKQ%BJI˳&BMM~BPCL*BRLU{,BSPQBUCL.BWxt BZCLB[CLB]OPB_CL3Bbt4BdA6Bgr&f7Bgl8Be9BE :BGl;BGfBK82?BJg@BHABo+ BCLDBo EBH0ZFBG8GBU+BfLBl>gBd4BYB_%BIBgL Bc{ BGBIZ!BCL BCLBCLBhr BCLBCpBB+BG&"BABJ?g BB5BCLBCLBCLBCLBCLBEBFtBAjBqB]@BC BnB Bn B pB IB[iBE%By BB\ BTB|C BGBBBO B"\Y B#]&fB$OS3B%^B&CLB'CLB(CLB*CLB+CLB,CLB-CLB.CLB/CLB[L9>B\GrB]H'B^HκBaK#BbK#}eB]}f>n[e MBy NBET%OBH PBQ{QBkXURBPNqSBo TB@gVB\K XBHYBM[B\BGr^Bg;K_Bd `BA.aBg\bBicBgBCLBCLBCLgBtR BCLBCLBCLBCLmBG$nB@`oBI BCLBCLBCLBCLBCLBCLBCLwBDGxBNRyBSBOP{B[ |BP}B^E~B^BCRBF-Bp3 ~B!CLB#fmy |B%CLB(IB)C]B+J&B.NuB0CLtB1CLB4Ut B5pi B6n J 5B7Kd66B8L4B:CLB;CL:B=G:;B>B78uBEBCLBCLxBNKyBMzBCScBCLBCL}BI ~BNBN[By BCL~BCLBI{QBY BaB cHB [B CL By{ BCLBCL B{0BCLBCLBGBCLBCLBn% BB-B!CLB"CLB#CLBNOo BOQ&fBPH|BQG6gBTY[BVqٙBWuHBXtW !BYK"BZY#B[q@$B\I%B]N6 &B_M'B`N^9(Bb~ BeCL*Bgc+Bi_ BlCL-BnJBqCLBrCL0BtG1BuKy2BwMQ83BxLٛ4ByGr/B{CL6B|]B}CL8BHmBCL:By BCLCLB?CLB@CLBANqBCCLBFCBHCLBICLBK|ƚ BMCLBNCLBOCLBxCL$B{K%B|J&BIxBCL*BL,BQBCL.BzF^ BCLBCLBOPBCL3Bt4BA6Bhff7B[l8Bag9BDY:BF6f;BEBL?BJR@BHABp< BCLDBph EBH FBG&GBXBffBm.gBe#4BYSB]BHBbTF B_/ BEzBH !BCL BCLBCLBl BCLBCpiBx BF/BA"BJ BBBCLBCLBCLBCLBCLBEBFB @B qEB ]@BBBn}[ Bo BoBH$B@[ BAEYABDy]w BGA) BJUCjBMs BNF?BOBBPU_ BT^ff BU`yBVTYBW^BXCLBYCLBZCLB\CLB]CLB^CLB_CLB`CLBaCLBeL>BfGfBgHBhHBkK#BlK#}eB\/M}fB4Y MBy. NBECOBJ>PBP`&QBiNRBPrSBo TBIVBk+ XBHnYBM[Bå\BF ^Bb_BwV `BA<aBlbBk@cBlBCLBCLBCLgBs% BCLBCLBCLBCLmBFnB@oB   B CLB CLB CLBCLBCLBCLBCLwBFxBOByBSBOP{Bn |BP}B_J_~B!^B$C&yB%FDB)p$ ~B+CLB-fh |B/CLB2IB3C{LB5J]B8G1uB:CLtB;CLB=T B?pZ B@mi 5BBK\6BCL#BmCLBnCL:BpGn;BqA5BBBBCLBCLEB}\HBAp&IBe< JBQT KBILiLBc{ BZ BixB BKBFN=BFN=B ixB B ixB B FLB i B {eyB GBB PB JPB LB EB LB @ B LvB ELB JPB IB fU B icoB BWB "CLB %EtCB &C3B (CLB )CLB *CLB +CLB ,CLB -CLB /CLB 0CLB 3dlB 4X B 5lgB 6}B 7GRB `G^B bCLB cCLB eCLB fCLB gCLB hCLB iCLB j^B kCLB lCLB nCLB oNB qCLB tCB uCLB vCLB x{ B {CLB |CLB }CLB ~CL$B LC%B Ix&B G3B CL*B L0,B SB CL.B C/B CLB CLB OPB CL3B t44B A36B kg7B e8B dFg9B C’:B C;B EB MY?B JA@B HAB oI B CLDB o EB H&FB GGB WB jB q3B i0B XB \B HB f B b B HB K)!B CL B CLB CLB g B CLB C=B Fv B FݱB AeB )K27 B *B\B -CLB .CLB /CLB 0CLB 1CLB 4EB 5FiB 7@pB 8q-B ;]=qB oYk B ApPB DHB EZ(B GE2B H@$B JB\ B MSB P{a B QF:B RBnB SLQ B VXj B W\B YN3B Z^B [CLB \CLB ]CLB ^CLB `CLB aCLB bCLB cCLB CLB L2B GeB HB HB KB K}eB )^&j}fB=YA MB zY NB ELMOB DPB O,QB ipRB PY#SB oK TB BqVB _[ XB HYB MX0[B ťr\B H^B h+e_B eG `B AaB q8RbB okcB qB CLB CLB CLgB s B CLB CLB CLB CLmB FnB @oB ~ B CLB CLB CLB CLB CLB CLB CLwB ExB N=qyB TB OP{B ]wx |B !R}B "`p~B $^B 'BB (F\B +p3 ~B VCLB Xg |B ZCLB ]IB ^CbB _JzB cKYuB eCLtB fCLB hT`B B jo1 B km/ 5B lKXb6B mLtB oCLB pCL:B rF~;B tA#MB dxRNB oOB o PB h QB C~RB V5TB LUB KoVB EZB CLB CLYB EZB KB CLB CL]B KqN^B | B CLB OPaB CB CLB CLdB GXB CLfB ^B CLhB NRiB Q B CLkB ], lB L. mB K\) nB moB nzpB cp qB `\ rB ` sB MtB M uB DkB !CLB "CLxB %MokyB (IzB )CB ,CLB .CL}B 0I~B 2Nv_B 3NכB 4G B 6CL~B 7CLB :i!(B =X= B >[B ?\DB @RB BCL B Dy B GCLB HCL B I2-B JCLB KCLB NXb6B PCLB QCLB Sn% B TAB WCLB CLB CLB OT B PB VB UqB YB Y@B ^BB \R!B Q"B  #B pY$B IW%B N S&B M\'B N(B C*B CL*B Nx+B YB CL-B JtB CLB CL0B Gn1B I2B M)3B L4B FÝB CL6B ]B CL8B HGB CL:B yN B CLB NE?B J=@B HaAB p< B CLDB p^ EB HTFBGrGBXBagBgfB_BXB\wBHB`' B^ BIB K?m!B#CL B$CLB%CLB'i B+CLB-C'B.A:%B/GB0AB1Ja B2B)B5CLB6CLB8CLB9CLB:CLB=EB>FB?@VB@qMBC]@BDB}BFn BGo7 BJp)BuI ABvZIBwEBx@"BzB B}S,B}T BFBBcBRYV B\n B^iBR B^BCLBCLBCLBCLBCLBOPBCLBCLBCLBL'BGbKBHGBHfBKBK}eB1]}fB hX MBz.b NBE7OBH PBN; QBieERBPRSBo TBD@VBcBR XBHraYBL[B\BG^Bfp3_Bo `B@aBR)bBPucBQHBCLB CLB CLgB ss BCLBCLBCLBCLmB=Ft0nB@@.foBA~( BCCLBDCLBFCLBGCLBHCLBICLBJCLwBMBxBNM8RyBOS >BQOP{BTe33 |BVQR<}BW_~BY^B\BB^FBao ~BcCLBef |BgCLBjIBlB1BmJBpOuBrCLtBsCLBvT{ Bwny Bm > 5BKS6BL!BCLBCL:BF7 ;B@FGB?OP~BiCLBm_BoX* Bp\pBq\~gBrSBtCL Bvy# ByCLBzCL B{OB|CLB}CLBH*BCLBCLBn B@BCLBCLBCLBOO BaB\gBY;3BXaBSRBXBBV!BTs3"BD@#Br&f$BI[%BN &BM'BN(BAE BCL*Be+B_BCL-BJBCLBCL0BGg1BH2BL{3BL4BF}VBCL6B]BCL8BGBCL:BFBCLixB B?H B@i BB|͓BCGBFP.CBHJBJLBMEBOLBREVBSOBTE6{BVJPBWJPBXd$ BY[NPBZBWB]CLB`EBaAZBcCLBdCLBeCLBfCLBgCLBhCLBiCLBkCLBavgBYgBu BL4BPHBO{BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBN,BCLBCHBCLBCLBt BCLBCLBCLBCL$BK %BI&BKBCL*BLE,BTBCL.BB}BCLBCLBOPBCL3Bu4BA36Bq@7Bi48Bg9BB׆:BB;B EBPEw?BJ5@BHxABof BCLDBn EBGFBGzFGBY uB\BbB![3B$WB%_B&HIB'cjS B(_/ B)IB+L#!B-CL B/CLB0CLB2j B]CLB_B5B`w BaF[GBb@BcK27 BeABhCLBiCLBjCLBkCLBlCLBoEBpF#Bs^ Bvp4By]@BzAfB{m B|o BpBI)aBY6BF#{B@BB BS!B{= BC/BB1 BR* Bc B`BRB^BCLBCLBCLBCLBCLBOPBOPBCLBCLBLc&BGgBHGBHxBKBK}eBc^ 0}fBvYA MBy NBE14OBF4PBMUkQB%hRB'P SB(o,| TB)DܭVB*dQK XB,HiUYB-M[B.dj\B0I}^B3`~M_B4iG `B5@!aB7hbB8hcB9h*BCLgB@sc BBCLBCCLBDCLBECLmBIFgnBL@ oBM}ff BOCLBPCLBQCLBRCLBTCLBUCLBVCLwBYFxBZMyB[S8RB\OP{B_b |BR@}B` ~B^BBpBFBo ~BCLBe; |BCLBIBB[BJ*BHquBCLtBCLBSy Bn Blv 5BKH6BLNBCLBCL:BF7 ;B@ yqBCLBCLBk/ B~ BCLBCLBCLBOSM BYBRPBPgBX wB^fB`qB^#!BX33"BJ#B@$BI%BNu &BMk}'BN(BABCL*BT+BZ<BCL-BJ,BCLBCL0BFb1BGͧ2BL3BMY?4BFEBCL6B]BCL8BG:BCL:BI/BCLixB B?J%gB@EBAEBBixB BDixB BEEVBFi BH{eyBIHBLPBNJ/ BOLBR~1B|LBEVBKyBAפBJPBJBc BXB@BCLBEb/BC3BCLBCLBCLBCLBCLBCLBCLBCLBd3B^vfBufB}B@xRB@xRBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBMBCLBCHBCLBCLBu BCLBCLBCLBCL$BKA%BJ$&BHUBCL*BLp,BT]BCL.BABCLBCLBOPBCL3Bt4BA6Bt37Be8B `9B B|N:B CFf;BDBQ?BJ2@BHAB{ BOPDBnQ EBEGFBFGjGBGWBIUљBJ[BKSٚBOVEBP_jBQHBR_ BS^ BTFTBUGJY!BXCL BYCLB[CLB]eд B`CLBbB=BcGJYBdFiBe@۶Bgm%%BiABkCLBlCLBmCLBnCLBoCLBrEBsF^Bvr BypQB|]@B}AB~kd Boe BsVfBIbBU_BDBD4KBB BT+BABBy]w BB}BK+ B` Ba6fBR3B^BCLBCLBCLBCLBCLBOPBOPBCLBCLBLjBGfBHBH1BKBK}eBgR}fBXe` MB#xц NB%E OB&G/PB'L}QB*hzMRB+PSB-n TB.CaVB/`F XB1HSYB2L[B3\B4G^B8gj_B9l `B:@aBcB>KEB@CLBBCLBCCLgBEs BGCLFCLFCLFCLmF F^ynF 4oF{ FCLFCLFCLFCLFCLFCLFCLwFAuxFMuyFTFOP{F!c"# |F#R\}F$`~F&^F)ByF*FlF.oI ~F0CLF2eI |F4CLF7I[F8BFF:JEFeLFuFgCLtFhCLFjT( FlmH Fml 5FnK:[6FoLFqCLFrCL:FtF!O;FuGEEx:D FACLFBCL FCqFDCLFECLFGJFJCLFKCLFMl FN}¦ FQCLFRCLFSCLFVO}L FW]FXX)FYVfF\WF^R F_W\F`V!FaX"FbJ#FcA,$FdIu%FfN5&FgM~'FN(FBUFCL*FM$q+F`FCL-FJwFCLFCL0FE1FP2FL4:3FMƶ4FF[GFCL6F]FCL8FGoFCL:FK)FCLFP\?FJA@FHzAFFFOPDFn4a EFHFFG^!GFUhFW&gF\fFUFgFU F`6FGFc/ F` FFyFH/!FCL FCLFCLFj' FCLFBUZFtj. F!EF"@`2F$&F%A~F'CLF(CLF)CLF*CLF+CLF/EF0FF3 O F5o*F8]@F9AlF:j F;p0 F>pFBIFCSFyFDCrFEEKFGA3 FJT2FKCQFNp< FOAFQUc FT^Y FU`fFVRFW^FXCLFYCLFZCLFCLFCLFOPFOPFCLFCLFLFGVFGFHFKFK}eF$Sڙ}fFjY` MFx1 NFEOFL#PFK.QFfRFP*SFn TFL=VFtj XFHOYFM?[F'\FJ^Ffv_Fwc `F@aFaHbF} >cFz >FCLFCLFCLgFsk FCLFCLFCLFCLmF FW<nF @oFz FCLFCLFCLFCLFCLFCLFCLwFC)xFR\yFU{FOP{Fy |F T}F!cP~F#^FNBZFOF94FSo ~FUOPFXeXB |FZCLF]IrF_DwF`J'FcLauFeCLtFfCLFiT{ Fjm# FklQ 5FlK,6FmLgFoCLFpCL:FsF>K;FtLCLF?CL FAW,FBCLFCCLFFX?FHCLFICLFKnB FLyJ FNCLFxCLFyCLF{OA F}MF~FFD~fFVFXJ>F]qF\!FK"F|3#Fp33$FIoa%FN&FM4'FNy(FBFCL*FK3+F[FCL-FIFCLFCL0FEV1FK2FL$3FN)F4FFlFCL6F]FCL8FGJYFCL:FL FCLFQ?FJ^@FHHAFHFOPDF}~ EFH:[FFGAGFRFX4F\FUFTF_\uFG`F c F a>' F EOF F~!FCL FCLFCLFgx FCLFB FC4FDZF~ FKa FAW3F"CLF#CLF$CLF%CLF&CLF)E~F+F׾F.~ F0oF3]=qF4@=F5j F6pB F9o3FXF?B(F@F\FBB FmS^FnDFqlD FrAFsM Fvb Fx``FyTfFz^F{CLF|CLF}CLF~CLFCLFOPFOPFCLFCLFM06FGZ$FG݄FHFKFK}eF]0i}fFiY MFxzJ NFE7OFJPFKQFc7RFPy:SFo TFQ0VF@$^XFHbYFM[F\FKf^Fg_Fw `F@uaF|bF|aHcFyFCLFCLFCLgFs( FCLFCLFCLFCLmFFSnF@3oFz F CLF CLF CLF5CLF6CLF7CLF8CLwF;} >xFOP{F@C/|FATaA}FBa?~FD^FGBGFHFFLoK ~FNOPFQd |FSCLFVIFWHqFYJ F\HuF^CLtF_CLFbT Fcnhs Fdlp 5FeK()6FfLMFhCLFiCL:FkGQ;FlLpKZFJFOPFCL]FIk^FTQFOPFCLaFM8FOPFCLdFGFOPfF^FCLhFKxiF LoF OPkF ^U lF BaH mF A nF KYoF jpF cf qF _\ rF aG sF MtF NSuF IF OPF CLxF J|1yF LzF HF OPF CL}F I\~F "NF #OUF %IUF &OP~F (CLF +P7 F -X F .RgF /RfF 0KF 2CL F 5SAF 7CLF `CL F akfF bCLF dCLF fZČF hCLF iCLF kFv F lw F oCLF pCLF qCLF tP F uwfF vrF xuiF zVF |ZLF }`zF `!F Hf"F zٚ#F n$F Iw%F O &F Md'F Na(F BLF CL*F K+F ZMF CL-F IwF CLF CL0F E#1F Jە2F LC3F Nu4F E2F OP6F ]F CL8F H]F CL:F K|F CLKF ixB F ixB F F>KF GF {̖F (I(-F +OF -IF .M F 1} 8F 3J9F 6EVF 7LvF 9AF ;JPF SI[F AEʘF CCLF FE&F GCuF ICLF JCLF LCLF MCLF NCLF OCLF PCLF QCLF TcgF UPgF VpgF XkHF YBF Zy{F \CLF ]CLF ^CLF _CLF `CLF aCLF bCLF ^F CLF CLF CLF MF CLF C$F CLF CLF B\F CLF CLF CLF OP$F Kظ%F I&F KF CL*F Lr,F T:F OP.F H+F CLF CLF OPF CL3F t4F A6F }7F hS38F qfg9F @:F xfg;F yF Q(?F Jr@F HWyAF J6 F OPDF }R EF HfFF Gg5GF QF WF \pF UF R{F \F GF a>' F _x= F BrdF C{!F CL F CLF CLF fq F CLF AlF C=F DF ~24 F M~ F !A$ZF %CLF &CLF 'CLF (CLF )CLF TEpF UFF X~ F ZoJF ^]:F _AF `j F apn F do3F gI*F hY{ F iBF jFTF lB{ F pRgF qEMF tj' F uAt@F vO F yd F za,F {TF }^F ~CLF CLF CLF CLF CLF OPF OPF CLF CLF MY?F GXUF GF HF K{F K{}eF _*}fFbZh MF w NF EfOF IPF KFQF aaRF PSF oK TF PVF ~$ XF HbYF M[F \F M ^F fb_F w `F @uaF zW bF z8RcF uF CLF !CLF #CLgF %sT` F 'CLF (CLF )CLF *CLmF -FMInF 1@0oF 2y#A F 4CLF 5CLF 6CLF 7CLF 8CLF 9CLF ;CLwF >DxF ?P8RyF @W\F AOP{F BA/|F CV}F Ec~F G^F JB@F KF 5F Nn$ ~F POPF Tf- |F VCLF IQ}F JF I F M|uF CLtF CLF V33 F m F lv 5F K/q6F LyF CLF CL:F GC;F L"KRF V^TF LUF LZVF IBF OPF CLYF FxCZF JtF OPF CL]F H*^F W,xF OPF CLaF O,F OPF CLdF HzxF OPfF ^F CLhF KiF VcF OPkF ^ lF BaH mF AaH nF LoF jpF aQ qF ]) rF _Q sF MѩtF NBuF IaXF OPF CLxF JyF JzF J3F OPF ICL}F KJ+~F MNeF NOF OHF POP~F RCLF UMԄF XX F YO4F ZN0F [GIF ]CL F _IF bCLF cCL F d)F fCLF gCLF jPTF lCLF mCLF o|j F psy+ F rCLF tCLF uCLF xP F yAF zvF {y<F ~U_F XqF Y8RF X)!F N"F {&f#F @$F Jy%F O>&F M'F N?/(F BOF CL*F J+F [kF CL-F HGF CLF CL0F D1F I2F L/3F N;4F G0F OP6F ]F CL8F IwF CL:F IF CLFQw?FJ`@FHcNAFKyFOPDF{/ EFHFFG=GFQZYFWgF\FU{3FQ.F]$FFwpF c/ F a/ F @`2F A!FCL FCLFCLFS{F?OP{Fh@j|FiV5}FjcH9~Fl^FpB8FqFFtn ~FvOPFybo |F{CLFI+JFL5,FIFM=uFCLtFCLFX1' Fo9X Fl 5FK76FL/9FCLFCL:FG-a;FKQIzF@K FBOPFDCL}FFJf~FHNݥFIOFJIFKOP~FMCLFPM FSX\ FTNFULFVFFgFXCL FZHF]CLF^CL F_F`CLFaCLFd[DFfCLFgCLFi{in FjrM FCLFCLFCLFPbA FOFKLFJgFUFS}qFYFWf!FS"FC3#Frf$FJd%FP&FMn9'FN%(FAlFCL*FJa+F_FCL-FHFCLFCL0FD4K1FH2FLױ3FN_4FIFOP6F]FCL8FJ%gFCL:FKv]FCLFQ$H?FJ&@FHmPAFKFOPDF{w EFHFFG|GFQ4$F$WfF%\F&TgF)PF*]m6F+FF,aЊ F._x= F/} F0@-S!F3CL F4CLF5CLF7d7' F:CLF<@&F>F!OF?F7 F@|R8 FAB FB@bFECLFFCLFGCLFICLFJCLFMEFNFƌFQ~@ FSo4 FV]6FWFv FXj ^ FYp F]rɚFJ iFW|BFCuFGkFB+ FSFFaFixB FAFL4p F^ٚ F`pFR&fF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMzFGSFGFHaFK =FK =}eFA[I}fF^J MFv& NFE[GOFG[PFJU#QF]oRFP;SFo TFOVF {~8 XF HsIYF Me[FR\FL^Fe*_Fx9 `F@aFyQbFz >cFtFCLFCLFCLgFsc F!CLF#CLF$CLF%CLmFPF;1nFS@$oFTv FVCLFXCLFYCLFZCLF[CLF\CLF]CLwF`F{xFaPHyFcV8RFdOP{Fe |FfW q}Fggd~Fi^FlB3FnE^Fqu ~FsOPFva) |FxCLF|IGF}MF~IFIpuFCLtFCLFW Fo9X Fl8 5FK/q6FKFCLFCL:FF/;FKKF?OPFACL}FCJ~FENFFOFGH FHOP~FJCLFMKFPXO7 FQDNfFRAk3FSF}CL FG`FCLFCL F$FCLFCLFZFCLFCLFz FpW FCLFCLFCLFPW FNFJ4FIvfFUFW\F\F[xR!FK"F}2#Fm3$FKT%FP(&FMi'FN(FATFCL*FKG+F_FCL-FGFCLFCL0FC41FH%2FL3FN4FJFOP6F]FCL8FJFFCL:FKFCLFP?FJ/@FHjAFKFOPDFz EFH:FFGGFQ'F!X{4F"]F#U<F&OF(^F)EF*b6 F+`b F,{ F-~# !F0CL F1CLF2CLF5g3 F8CLF:r F;x FE, F?@FBCLFDCLFECLFFCLFGCLJEJFJ ~# J o2J]6J~Ü Ji Jp JqyJJ6JXJDCJG:jJB) J RJ!F{J$ii J%@J'U7 J*_U J+`J,TYJ-^J.CLJ/CLJ0CLJ2CLJ3CLJ6OPJ7OPJ9CLJ:CLJfM]JgGP-JhGJiHIJlKJoK}eF>[}fF^] MJu NJEUOJG9PJJQJ\vRJQSJo TJNVJz XJHpYJM[J0\JNs^JfO_JxUV `J@aJ{ǯbJzW cJtJCLJCLJCLgJs JCLJCLJCLJCLmJF0VnJoJt JCLJCLJCLJCLJCLJCLJCLwJ@xJN=qyJQǮJOP{J|U |JW}JeM~J^JB-JE3Jzcz ~JOPJ.c7 |J0CLJ3HtJ5MJ6IJ9N=uJ;CLtJBJDd)JCLJCLEJR HJL/IJie! JJrݖKJI2fLJtM JixB JixB JG} JG4JFJixB JixB JF5JFJ{eyJI"dJPCLJ?CLJ@M<JBCLJECaJGCLJHCLJI@JLCLJMCLJNCLJQOP$JRK%JSI &JVHZJXCL*J[M5,JUTJOP.JL`JCLJCLJOPJCL3Jt4JA6Jq7Jd38JnS39J{[A:Jxf;JygJPP?JJs@JH^AJKLJOPDJwS EJHІFJGGJQ JVJ\ffJTJOJaJE,*Jd D JbE Jy J{ !JCL JCLJCLJfTQ JCLJ~OI J@uJE2Jz$ JiTJ@QJCLJCLJCLJCLJCLJEJFJ~@ Jo J]6J } J i[ J p Jr3JIAJV1JDJFJB JSPJFwJi J@bJ!P JL`D JM`JNTVfJO^JPCLJQCLJSCLJTCLJUCLJXOPJYOPJ[CLJ]CLJ`M1 JaGP-JbGJcHJfKJiK}eJPs}fJ?_w MJu NJEKOJG PJIsoQJ[ݗRJQ=TSJo TJMVJw' XJHOYJMJ[Jk}\JMU^JaH_JxUV `J@zBaJx=qbJvcJrzJCLJCLJCLgJr JCLJCLJCLJCLmJF1=nJC4oJrӄ JCLJCLJCLJCLJCLJCLJCLwJBzxJN\)yJOaHJOP{Jz |JY8~}Jf~J^JB)J EGJ#xP ~J%OPJ(`b |J*CLJ-HJ/MLJ0IjJ3MtguJ5CLtJ6CLJ9ZJ J:p J;l 5JJOPJCL]JEz^J]iJOPJCLaJTʆJOPJCLdJI/jJOPfJ^JCLhJJ|1iJTJOPkJ\ lJbmJb\nJJoJipJa( qJ] rJ^ sJNtJNuJIKJOPJCLxJK\WyJO$:zJKJOPJCL}JJ~JNxJOKJHJOP~JCLJJfJW JFc3JCfJB3JCL JFbJCLJ CL J jJ CLJ CLJ[JCLJCLJvR Jk J@CLJACLJBCLJEP] JF{JGtS3JHG~fJKU JMVJN\^JO^Y!JPF "JQE&f#JRpY$JSK4%JUP&JVMat'JWM(JXA JZCL*J\Jԝ+J]^.J`CL-JbGoJdCLJfCL0JgBw1JiKG2JkL83JlNi4JmJ:JnOP6Jp]JqCL8JsK?mJvCL:JxIJ{CLCLJ?CLJA JCCLJlCLJmCLJpOP$JqK%JrI&JuGJwCL*JzM=,J{U߇J|OP.J}LJCLJCLJOPJCL3Jtt&4JA6Jd7J`g8Jk9Jzd):Jxs3;JxJPv?JJ&@JHQAJK=JOPDJwl EJHFJGgGJQ3lJWJ\fJTJN J`UJDJbb J`d Jw Jz7 !JCL JCLJCLJa JCLJ}~ J}: JDXJy JںJ@VJCLJCLJCLJCLJCLJFJFJ}h JorJ]33J| Ji Jq JrJ IHJ T4J D4J4E~:J6B0 J9SJ:EJ=k J?@J@M" JC_Y JDac3JET\JF^JGCLJHCLJJCLJKCLJLCLJOOPJPOPJRCLJTCLJWM JXGKJYGJZHJ]KJ`K}eJx͗}fJ9aS MJu NJEAOJG;PJI8QJ[RJQ9SJy]w TJLMVJu XJHMYJM D[J7\JN.^Jf_JxG `J@aJzbJy34cJuJCLJCLJCLgJr JCLJCLJCLJCLmJF<nJoJp JCLJ CLJ CLJ CLJ CLJ CLJ CLwJ |xJ NyJ PJ OP{J y?% |J Xz}J g- ~J ^J B-8J ETJ p ~J OPJ `63 |J !CLJ %HxJ &M>NJ 'IuJ *HAuJ ,CLtJ -CLJ 0\^5 J 1p5@ J 2m" 5J 4KCu6J 5KJ `CLJ aCL:J cG;J dH-NJ wEOJ zt[ PJ {r QJ |H RJ ~TU3TJ L\UJ LGVJ Hh_J OPJ CLYJ EZJ IL\J OPJ CL]J D_^J ^a~J OPJ CLaJ U>J OPJ CLdJ IJ OPfJ ^J CLhJ IΘiJ R3J OPkJ [ lJ ]33mJ \znJ IffoJ hgpJ ^H qJ \\ rJ \=q sJ NjtJ N]uJ I*J OPJ CLxJ K"yJ LAzJ KJ OPJ CL}J J~J NJ O!J HxMJ OP~J CLJ ISJ WfQ J D3J F3J BLJ CL J F(J (CLJ )CL J *tJ +CLJ ,CLJ /[J 1CLJ 2CLJ 4u65 J 5h J 8CLJ 9CLJ :CLJ =Pr J >yvfJ ?r3J @rgJ CTJ EVٚJ F\J GZ!J HHf"J Ju#J Kn$J LK:[%J MP(&J NMy+'J OM(J P@*J RCL*J TJl+J U_wJ XCL-J ZGJ ]CLJ ^CL0J `A1J aJ2J cL?3J N4J JM.J OP6J ]J CL8J KwJ CL:J HmJ CLJ kHJ CLJ !CLJ "CLJ #CLJ $CLJ %CLJ &CLJ (^J )CLJ *CLJ +CLJ UMgJ VCLJ YCJ [CLJ \CLJ ^~] J aCLJ bCLJ cCLJ eOP$J fK{%J gI}&J jG%J mCL*J oL,J pUJ qOP.J rKJ tCLJ uCLJ xOPJ zCL3J }tW4J A6J pFf7J j338J mY9J yJ:J y9;J ygJ P?J JJ@J H?AJ KJ OPDJ uZ EJ H>FJ GUGJ QkJ hS3J mgJ eyJ MJ `UJ DCJ bTF J _ J vh. J x !J CL J CLJ CLJ hr J CLJ |R8 J MxJ D J x0 J iJ K J CLJ CLJ CLJ CLJ CLJ FJ FJ } J nJ "]33J #|5! J %q3 J &qK J )rJ ,IJ -RJ .DJ /EchJ 1B{ J 4SJ 6EwJ 9ii J :@`2J ;V J >aL J ?`fJ @T\J A^J BCLJ DCLJ ECLJ FCLJ GCLJ JOPJ KOPJ NCLJ OCLJ RLmJ SGGJ TGVJ UHIJ KJ K}eJ Hz}fJ 0cܝ MJ uZU NJ E7OJ G\PJ HQJ Zg_RJ QVISJ @TJ LEVJ t1 XJ GYJ L[J j\J Oϥ^J d_J x* `J BmaJ ~gbJ {cJ v*J CLJ CLJ CLgJ r; J CLJ CLJ CLJ CLmJ G5nJ @ 3oJ nZ J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ BxJ Q\yJ RpJ OP{J v7 |J Zf}J k~J ^J BJ FJ t>u ~J OPJ c |J CLJ HHXfJ ILlJ JI1J MM|uJ OCLtJ QCLJ S_ J Tp J Umfg 5J XK\6J YKJ [CLJ \CL:J ^El;J _H=bٚJ?PgJ@cVgJAGHJBkHJDGHJFCLJGCLJHCLJICLJJCLJKCLJLCLJM^JOCLJPCLJQCLJRMgJTCLJWCҶJYCLJZCLJ\} J^CLJ_CLJ`CLJcOP$JdK%JeI5&JhQ JjCL*JmL,JnUϴJoOP.JpKրJrCLJsCLJvOPJCL3JtW4JA6Jj 7J_8JnS39Jx.:Jw@;JxJOs?JJy+@JH()AJKJOPDJup EJHFJG[GJQJjJo3Jf|JJG`J_JCuJb[ J_ JvY Jx !JCL JCLJCLJb JCLJzu J~; JD- Jw J$ J c J CLJ CLJCLJCLJCLJFBJGJ} JnJ]33J|} J~ J q,| J#oJ'IkJ(T;JJ)DJ*E';J,B J/StJ0DFJ3kd J4@4J6M\ J9]Q J:`\J;Rs3J<^J=CLJ>CLJ?CLJiCLJjCLJmOPJnOPJpCLJqCLJuLJvGxJwGJxH J{JJ~J}eJe}fJ Sg^ MJt NJE/OJEPJH\QJYuRJQHSJA TJJuVJq> XJGYJL:[Jլ>;\JP!l^JboW_Jx8 `JCaJ}W bJ{=qcJv#JCLJCLJCLgJr JCLJCLJCLJCLmJHNnJ~goJm JCLJCLJCLJCLJCLJCLJCLwJ{\*xJMuyJQ.JOP{JsrY |J\ݭ}Jj&~J0^J3C@yJ4FpJ8{/ ~J:OPJ=]/ |J?CLJBHMJDLJEI JHOuJJCLtJKCLJN_v JOo JPl& 5JRKH6JSK*JUCLJVCL:JXDS;JZG4OJuS[ PJtx QJH/RJSTJLzUJKVJGwJOPJCLYJDZJHJOPJCL]JBc^J]JOPJCLaJUCjJOPJCLdJHJOPfJ^JCLhJHؒiJQJOPkJZRm lJ_mJ`33nJJoJg5pJ\k qJW rJY8R sJMtJNuJHJOPJCLxJHmyJPTzJKJOPJCL}JJ~J NJ NEJ H`iJOP~JCLJG:JUT JKJH>fJHJCL JEJCLJCL JqJ CLJ"CLJ$YJ&CLJ'CLJ)s J*ek J-CLJ.CLJ0CLJ2O J3B3J]}IJ^}J`TSJbRJcVJeT>!JfIY"Jg~#Jhi$JiKCu%JjPl&JkL'JlM(Jm@~JoCL*JqK+Jr`UJuCL-JwG )JzCLJ{CL0J}A1J~H2JLn3JNj4JIJOP6J]JCL8JK?mJCL:JGxJCLCLJ?CLJ@CLJACLJBCLJDCLJECLJF^JGCLJHCLJICLJKMYJMCLJOCҶJQCLJRCLJT| JWCLJXCLJYCLJ[OP$J\K3%J]I&JPBJCL*JLMH,JU*;JOP.JKAJCLJCLJOPJCL3Jt%y4JA6Jh,7J[f8Jl9Jx:Jx&f;JzyJOA?JJi@JHAJKJOPDJt EJHřFJGnxGJR9 JhpJm JdJGJ]wwJCJb J` JvK JxWc !JCL JCLJCLJc JCLJzT J JDJw| JvloJ~; JCLJCLJCLJCLJ CLJ FHJ G BJ}u% JnuJ]/J{ J}h Jq,| JoJI2{J TdJ!E)hJ"EAJ$Aq JPSJQF~JTk JU@JVSK JYcL JZ`,J[S3J\^J^CLJ_CLJ`CLJaCLJbCLJeOPJgOPJiCLJjCLJmL~zJnGtJoH5sJqIjJtJJwJ}eJu{}fJNg MJuZU NJEOJDWPJGQJY@*RJQO'SJq^ TJIpXVJnt XJG$YJL([Jͬ\JQFf^Jc_JxUV `JCbaJ|bJ{\cJu JCLJCLJCLgJq JCLJCLJCLJCLmJH~nJ~ٚoJjb5 JCLJCLJCLJCLJCLJCLJCLwJ AxJ!QfyJ"QzJ#OP{J&pUU |J(]}J)n=~J,^J/CNJ0F?J3~# ~J5OPJ9_i |J;CLJ>H/J?K>J@HȥJCG>FuJFCLtJGCLJI`{ JJo JKl 5JNK)6JOKqJQCLJRCL:J|D4K;J}G CLJ?CLJ@CLJB^JCCLJDCLJECLJFMNCLNCN CLN CLN |5! NCLNCLNCLNOP$NK%NI&NO^NCL*NLC,NUDN OP.N!KiN#CLN$CLN'OPN(CL3N+sn4N-A6N0p7N1_@8N2i`9N4w:N6x`;N7y@N:O;D?N;JR@NdGfANeKagNfOPDNiup ENkHMFNlGU GNmRNpfNrkNsbNvENw]NxC7Nyb Nz`' N{vGNUpHNN1 LNl=qMN kHNN!dON$vv PN%u QN&HRN(R¨TN)L"gUN*K7VN+FN,OPN.CLYNXDZNYGN\OPN^CL]N`@^NbYNcOPNeCLaNhQNiOPNkCLdNmHNoOPfNq^NrCLhNtG'iNuONwOPkNyX"8 lNz_ mN{`QnN~I33oNg.pN^ qNZ\) rN[{ sNM8tNNZuNG’NOPNCLxNDyNKzNKo#NOPNCL}NJ~NNMNNNHFXNOP~NCLNF~NUz NI8NE`NDNCL NE9[NCLNCL NԮ5NCLNCLNTLNCLNCLNrs NbW NCLNCLNCLNN)C NFNCK3NC3NSNSNaNX{!NN"N@#Nn$NKL%NP&NM6'N M?(N!AN#CL*N%Jo+N&[N)CL-N+F[GN.CLN/CL0N1AK1N2Kx`2N4Li3N5N4N6ILN7OP6N9]N:CL8NN[N ?N\J5@N]GAN^K&N_OPDNbu} ENdHFNeG>[GNfRANjfVgNkj3NlbyNoBבNp^ONqBhNrc!( Ns`P NtvNn!NF"NlL#Na33$NKQ%NP&NM&.'NM+(NANCL*NJە+N ]$N#CL-N%F[GN(CLN)CL0N+@1N,JS2N.L3N/M4N0HN1OP6N3]N4CL8N6JmN9CL:N;G )N>CLOP.N?KSN@CLNACLNDOPNFCL3NIs4NKA{6NMa37NNN38NOR 9NRv:NTvl;NUwFfNXNE?NYJ@NZGbAN[JN\OPDN_v EN`HAFNaG(GNbRQNef`Nfl3Ngc9NjA Nl`-NmBNnc>k Noa/ Nv- Nw !NCL NCLNCLNg>? NCLNx N@uNDNua NxN} NCLNCLNCLNCLNCLNFVNGN} NmˬN],`Nzu N| z Nq; Nr,NHmNONF4NC*NBk NRZNEWN r N ~ N VNy N ^ N _3N Q0N ^N CLN CLN CLN CLN CLN OPN OPN CLN CLN K;N GnN H"N I*cN !JN $J}eND1}fNk MN jw- NN lDON mD_PN nG QN qXRN rQwSN spӖ TN tH|VN vlZ XN xFYN yJ[N zJ\N {RD^N ~f"_N y9 `N AaN }HbN zcN w >N CLN CLN CLgN p N CLN CLN CLN CLmN GSnN {ɚoN gD N CLN CLN CLN CLN CLN CLN CLwN @34xN OyN P{N OP{N n |N ]w}N li~N ] N CxN EAN x:D ~N OPN \E |N CLN G˝N IN HvN FuuN CLtN CLN bH N o- N k 5N KZ46N K,N CLN CL:N G );N (D LN k4ON Awna PN Bw QN CHRN ER'TN FKUN GKVN IG5XN JOPN LCLYN NC6]ZN OF:N QOPN SCL]N U}~ ^N WV2N XOPN ZCLaN ]NN ^OPN `CLdN bHO N OPfN ^N CLhN GiN M N OPkN Wo lN _mN _znN ILoN fpN _8R qN V rN [H sN MJtN N>EuN G} N OPN CLxN EyN MzN K"N OPN CL}N J~N N!iN MN H8N OP~N CLN FLN U N GpN C{3N B[3N CL N EZN CLN CL N cN CLN CLN BFN CLN CLN qˈ N bI N CLN CLN CLN M N }N sN sN QbN `N h >N f\!N { "N j#N e$N KS%N P&N M$\'N L(N AxN CL*N Jy+N [WCN CL-N F(N #CLN $CL0N &: 1N 'I2N )Kp3N *M4N TH\N UOP6N W]N XCL8N ZJ+N ]CL:N _GN bCLN QPS?N RI@N SGAN TJ;N UOPDN Wvt EN H|FN GGN RwN f3N liN b3N ~ N ap$N BsrN cx N ax N vW N w3 !N CL N CLN CLN cM N CLN xe N @.N CN uD N N }: N CLN CLN CLN CLN CLN FYNN GN |= N mEN ],`N z? N { N q; N pLN H0N ON FN C N B!H N Ry-N E N t4 N ~ N LQ N ^DD N _N QffN ^N CLN CLN CLN CLN CLN OPN OPN CLN CLN KAN HN HN I.N JN J}eN K8}fN kV MN au_ NN cDON eD`PN fF=QN iWRN jQSN kp TN lHcMVN mlV XN pF{YN qJsq[N r\N sQ^N vd3:_N wy* `N yAaN {}8RbN ||cN }yQN CLN CLN CLgN pԀ N CLN CLN CLN CLmN GnN {oN g/ N CLN CLN CLN CLN CLN CLN CLwN x xN OaHyN QN OP{N nUU |N \}N mm~N ]N BhN E>N r+ ~N OPN ^ |N CLN GEN IN HNJͤuNCLtNCLNb Nn$ NkbN 5NKs6NK2+NCLNCL:N!Ik;N"EpY(NACL-NCF NFCLNGCL0NI~ 1NJHA2NLK3NMM}4NNHȥNOOP6NQ]NRCL8NTINWCL:NYF5N\CLN@NM NLfN`w/ NM>NBWNCLNE}MNEeNOPNCLNCLNCLNCLNCLNCLNCLN`gNPgNlgNkHNQNkHNCLN CLN CLN CLN CLNCLNCLN]NCLNCLNCLNMNCLNCNCLNCLNz N!CLN"CLN#CLN&OP$N'Kvj%N(Ia&N*IN-CL*N0K@,N1VN2OP.N3KJN5CLN6CLN8OPN:CL3N=s4N?A{6Njbf7NkN38Nk^g9Nnu:Npw;Nqx,NtRWP?NuI0@NvGwANwJNxOPDN{vI EN}HsFN~GGNRNf|Nl`NcNz NbNB,Nc7 Na- Nv Nwna !NCL NCLNCLNfE NCLNw NAlNC4Nt/ NEN|& NCLNCLNCLNCLNCLNFYNNGN| NlBN],`Ny N{Z Nq; NsVfNGNR0gNFNCvNB NQrNDNvI N~OI NUT N_ff N^fNRN^NCLNCLNCLNCLNCLNOPN0OPN2CLN3CLN6KJN7H N8HMN:I/N=J N@J }eNMv}fNlX MN^v}K NN`D ONaC|PNbFFQNeWRNfQJSNgpA TNiHVNjk XNFYNJd[N\NP^NbX_Nyc `NAaN}bN{zcNwNCLNCLNCLgNp NCLNCLNCLNCLmNFnN{oNfr NCLNCLNCLNCLNCLNCLNCLwN{xNPyNP >NOP{Nm |N]1}Nl~N]NBfNEN~z ~NOPN\ |NCLNGNIN HN PouNCLtNCLNc/ Nn Nkhs 5NKU6NK3NCLNCL:NH9Q;NK _N#CLN$CLBN&ACN)|: DN,C(EN.cFN/vQGN0V(HN1Mӡ LN2w8RMN3sNN\DON_xWc PN`xt QNaHURNcQSTNdKCUNfJVNgGmNhOPNjCLYNlCUZNmETNoOPNqCL]Ns{a ^NuU<NvOPNxCLaN{MgyN|OPN~CLdNHNOPfN^NCLhNFiiNVZNOPkNV lNapmN`nNH3oNf7NpN_( qNXu rN\G sNMtNN)FuNGNOPNCLxNB5yNNzNJnNOPNCL}NJf~NMNM:NH 'NOP~NCLNEѕNUt NI NENDNCL NDNCLNCL N^NCLNCLNA/NCLNCLNq N`' NCLNCLNCLNMan NyN$tfN%sfN(ON*_GN+gqN,e!N-K"N.rL#N/w$N1KZ4%N2O)&N3Md'N4L(N7},l N9CL*N;M+N=a_N?CL-NAENDCLNECL0NG^ 1NHPx2NJK3NKMT4NLHNMOP6NP]NQCL8NSINVCL:NXF?N[CLNtR׍?NuI @NvG`ANwJNxOPDN{w_ EN}HjFN~FGNRH.Ne3NkNbNx NbNANc Nb  Nv4 Nw !NCL NCLNCLNc>k NCLNw_ NC'NCpiNs NɬN|oQ NCLNCLNCLNCLNCLNF_NGN|ƚ NlƥN],`Ny{ N{ Nq,| Np3NGNRPNGNDNB NSNeNFNxWc N} N N N#`@ N%`N&T\N'^N(CLN)CLN*CLN,CLN-CLN0OPN1OPN3CLN4CLN7K'N9HGN:HN;I1N>JNAJ}eNF}}fNl MNwH NNDHONCyPNFDQNWfeRNQSNp$ TNGVNj XNFFYNJ D[N\NTc^Nc_Ny `NA<aN|BbN{=qcNxNCLNCLNCLgNp NCLNCLNCLNCLmNFtnN|LoNe$ NCLNCLNCLNCLNCLNCLNCLwN{RxNLyNRNOP{Nl |N]}Nnu~N]NBNEN~ ~NOPN[/ |NCLNG~N IoN HMNKuNCLtNCLNfD Noj Nk- 5NKp 6NKNCLNDCL:NGD4K;NHJn[#NACL-NCD|NFCLNGCL0Rw~Ü 1RwK2RwK`3RwM 4Rw I^sRw OP6Rw ]Rw CL8RwJ;RwCL:RwF>KRwCLRw-S/m?Rw.I`@Rw/G_4ARw0Jw!Rw1OPDRw4vI ERw6HUFRw7FٞGRw8QFRw;aRwRw,S7?Rw-IZ@Rw.GScARw/JTjRw0OPDRw2wQ? ERw4HZ4FRw5FGRw6Q{Rw:i Rw;mvfRwRw{OP{Rwk33 |Rw^}Rwq~Rw]RwBnARwERw~; ~RwOPRwY |RwCLRwG?RwH"RwH+RwM uRwCLtRwCLRwh Rwoƨ Rwk- 5RwJ!6RwJRwCLRwCL:RwD;RwGLDRw (S?Rw )I@Rw *GA6ARw +JRw ,OPDRw /w| ERw 1HBFRw 2F;GRw 3QgSRw 5hpRw 7m Rw `c9Rw as3 Rw dbRw eA)Rw fdc Rw gcjS Rw hu Rw ivK !Rw lCL Rw nCLRw oCLRw q` Rw tCLRw vvh. Rw wG`Rw xC Rw yr# Rw {IP Rw |{Z Rw CLRw CLRw CLRw CLRw CLRw FRw GRw |& Rw lyRw ],`Rw x Rw zcz Rw q Rw nfRw GRw VRw HRw E4HRw B Rw Q=Rw J7{Rw |oQ Rw }T Rw L Rw `UU Rw _fRw QRw ^Rw CLRw CLRw CLRw CLRw CLRw OPRw OPRw CLRw CLRw KRw HRw HpRw I=sRw JqRw Jq}eRw {\_}fRwr MRw 5uλ NRw 7DORw 8C PRw 9EQRw QhSRw ?o+ TRw @F!VRw AhJ XRw CFYRw DI[Rw Ej\Rw GR^Rw Jd>_Rw Kzq `Rw L@ۘaRw N|bRw O{kcRw PwRw SCLRw TCLRw UCLgRw Wo| Rw YCLRw ZCLRw [CLRw ]CLmRw `FnRw c|loRw c Rw CLRw CLRw CLRw CLRw CLRw CLRw CLwRw |\xRw N>yRw R#Rw OP{Rw j"# |Rw _}Rw q2~Rw ]Rw B_Rw ERw ~ ~Rw OPRw Y |Rw CLRw G Rw HDRw HRw OOuRw CLtRw CLRw iV Rw o Rw kn 5Rw J6Rw JɓRw CLRw CL:Rw EZ;Rw E7J[BRw ?EqRw ACLRw BCLERw DH#HRw FB,IRw Ga JRw H]KRw KILRw M|ƚ Rw PixB Rw QixB Rw R@.Rw SHVFRw TDBRw UixB Rw VixB Rw WHRw ERw |)Rw GRw P52Rw IU Rw M Rw r Rw M Rw @Rw LZRw Rw M Rw LRw `w/ Rw MV$Rw FNRw CLRw EZRw EBRw OPRw CLRw CLRw CLRw CLRw CLRw CLRw CLRw avgRw YgRw pgRw MHRw kHRw MHRw CLRw CLRw CLRw CLRw CLRw CLRw CLRw ]Rw CLRw CLRw CLRw MtRw CLRw CRw CLRw CLRw x Rw CLRw CLRw CLRw OP$Rw KMw%Rw I&Rw MRw CL*Rw JV,Rw VORw OP.Rw LRw CLRw CLRw OPRw CL3Rw r?4Rw A6Rw y 7Rw b8Rw l9Rw tg:Rw v;Rw y9Rw ITt?Rw JI@Rw KG1ARw LI۞Rw MOPDRw PwS ERw RH4FRw SFGRw TP_Rw VfRw XjRw Yc9Rw Zr Rw ]bC Rw ^ARw _d/ Rw `c>k Rw au Rw bv4 !Rw fCL Rw gCLRw hCLRw je Rw mCLRw ou Rw pG4Rw qBMRw rrN Rw tLv Rw u{ Rw xCLRw yCLRw zCLRw {CLRw |CLRw FRw GRw |C Rw lՖRw ](Rw x:D Rw z$ Rw qK Rw oٚRw FRw XTRw PRw EINRw Bk Rw PjRw J/Rw } Rw |ƚ Rw V Rw b Rw `Rw R\Rw ^Rw CLRw CLRw CLRw CLRw CLRw OPRw OPRw CLRw CLRw J!Rw HRw HRw I;Rw JqRwJq}eRw t^i}fRw sn MRw.u NRw0DORw1C PRw2EQRw5VRRw7Qv`SRw8o۔ TRw9FVRw:h XRwVE\Rw@S^RwCf^_RwDz* `RwE@ۘaRwG}bRwH}fgcRwIy#RwtCLRwuCLRwvCLgRwxoek RwzCLRw{CLRw|CLRw~CLmRwFnRw{4oRwcU RwCLRwCLRwCLRwCLRwCLRwCLRwCLwRwAxRwNyRwRRwOP{Rwjfg |Rw_}Rwqs~Rw]RwBXRwE1Rw7 ~RwOPRwY |RwCLRwG RwHRwH% RwFtuRwCLtRwCLRwjR Rwo Rwkz 5RwJg6RwJRwCLRwCL:RwE@;RwDw4 ^RwAYRwBOPRwDCLaRwGNRwHOPRwJCLdRwLGRwNOPfRwP^RwQCLhRwSEiRwTRQRwVOPkRwWU lRwYhmRwZcRnRw]IfoRw^dpRw`\ qRwaX rRwb[q sRwcMZ(tRwdNuRwfERwgOPRwiCLxRwkB}yRwlPzRwmIRwoOPRwqCL}RwsI~RwuL[RwwK~RwG]RwOP~RwCLRwDRwTk RwG;3RwFfRwBgRwCL RwDSRwCLRwCL RwRwCLRwCLRwR*RwCLRwCLRwp Rw]d RwCLRwCLRwCLRwM RwbRw\#3RwZRwKRwbRwjRwg*!RwZ"RwA@#Rwz$RwKvj%RwNĂ&RwM'RwL~(RwAdFRwCL*Rw_I+Rw [|Rw CL-RwE*RwCLRwCL0Rw| 1RwP?w2RwJ 3RwL54RwIRwOP6Rw]RwCL8RwJfRw"CL:Rw$FRw'CLmp KRwiILRwlr RwoixB RwpixB RwqAAhRwrHdRwtDGRwuixB RwvixB RwwH RwxERwz}ҪRw{HRw~P_RwI%RwM Rwr RwM Rw@ RwRԢRw@ARwLRwL7Rwo^ RwMC\RwDRwCLRwEnRwEEyRwOPRwCLRwCLRwCLRwCLRwCLRwCLRwCLRwavgRwPgRwkyRwMHRwkHRwMHRwCLRwCLRwCLRwCLRwCLRwCLRwCLRw]RwCLRwCLRwCLRwMRwCLRwCRwCLRwCLRwx RwCLRwCLRwCLRwOP$RwKK%RwIQ&RwL0RwCL*RwJ,RwVRwOP.RwLhRwCLRwCLRw0OPRw2CL3Rw5rH4Rw7A6Rw9r7Rw:Zf8Rw;i9Rw>t:Rw@}L;RwAz@RwDTp?RwEI@RwFG#9ARwGIRwHOPDRwKw% ERwLH FRwMFvGRwNPljRwQfC3RwRjRwSbRwTq RwWaRwY@ٛRwZe Rw[c Rw\up Rw]uZ !Rw`CL RwaCLRwbCLRwdaY RwhCLRwjuZ RwkCBRwBRwr1 Rw~Rwz? RwCLRwCLRwCLRwCLRwCLRwFRwGRw|R8 RwlˡRw](Rww Rwz)B Rwq RwrRwFcRwUsRwczRwF1RwB RwQi|RwIRw Rw|} RwM Rw^ Rw`3RwQRw^RwCLRwCLRwCLRwCLRwCLRwOPRwOPRwCLRwCLRwJRwHRwHRwI?CRw JqRw Jq}eRwXr}fRwtu MRw+v NRw-DvORw.C$^PRw/EQRw2VwRRw3Q4SRw\o TRw]F{VRw_h~ XRwaELYRwbI9 [Rwc\RwdR^Rwge _RwizUV `Rwj@ۘaRwlbRwm}GcRwnypRwpCLRwqCLRwrCLgRwuoF, RwwCLRwxCLRwyCLRwzCLmRw}FnRw{loRwc RwCLRwCLRwCLRwCLRwCLRwCLRwCLwRw@BxRwN\)yRwR)RwOP{Rwiwx |Rw_g}Rwo>~Rw]RwBURwERw~z ~RwOPRwX |RwCLRwG%RwH)RwH'7RwJͤuRwCLtRwCLRwj Rwo Rwk\) 5RwJ6RwJ|JRwCLRwCL:RwDZ;RwCOP>Rw?Tl?Rw@I}@RwAGARwBIw RwCOPDRwFw ERwHH"FRwIFjGRwJPgRwMhfRwOlRwPdRwQp} Rw|a!Rw}@Rw~ejU Rwd7' RwuD Rwup !RwCL RwCLRwCLRwaY RwCLRwuS[ Rw@RwCaRwqˈ RwRwzcz RwCLRwCLRwCLRwCLRwCLRwFRwG7Rw|& Rwl]Rw](Rw{H Rw| Rwp RwrRwFxxRwQRwmRwGTRwB33 RwRRwGGtRw@۶Rw|5! RwR Rw`U Rw_RwT\Rw^RwCLRwCLRwCLRwCLRwCLRwOPRwOPRwCLRwCLRwJRwH"iRwH^RwI@+Rw JRRw JR}eRwQM}fRwu MRwRu NRwTDORwUC:yPRwVEQRwYVRRw[QhSRw\o TRw]F{VRw^hu XRw`FYRwaI8[Rwbq%\RwdR~^Rwgf_Rwhz `Rwi@!aRwk}bRwl}cRwmxRwpCLRwqCLRwrCLgRwtoK RwvCLRwwCLRwxCLRwzCLmRw}F|UnRw{oRwb RwCLRwCLRwCLRwCLRwCLRwCLRwCLwRwA{xRwRyRwTRwOP{Rwj33 |Rw^$x}Rwmk~Rw]RwBO/RwERw} ~RwOPRwXTF |RwCLRwG-RwHARwH)cRwPuRwCLtRwCLRwk9X Rwo& Rwk 5RwJ6Rw J~RwCLRwCL:RwG;RwBV_T?V_Ih@V_GAV_IV}V_OPDV_v EV_HFV_FoGV_PIV_ hIV_ lV_ dvgV_ o# V_`V_@hV_e V_dTj V_u V_u' !V_CL V_CLV_CLV_cн V_CLV_!u ~ V_"{ V_$C.V_%qHF V_'CV_*z V_-CLV_.CLV_/CLV_XCLV_ZCLV_]FV_^G-V_a|` V_clpV_f](V_gw_ V_hzF^ V_ip V_lq3V_pFEV_qRV_rqwV_sHV_uB) V_xSuV_yF~V_zAV_}{ V_Rh V_`j V_^fV_T\V_^V_CLV_CLV_CLV_CLV_CLV_OPV_OPV_CLV_CLV_JJV_H"iV_HFV_I?CV_JRV_JR}eV_'iR}fRwu1 MV_v NV_D1OV_CPV_EVQV_VGRV_QkSV_o7 TV_FVVV_h XV_FYV_I_[V_I\V_Sv ^V_"g_V_#zr `V_$@aV_&|pbV_(~cV_)w{V_+CLV_,CLV_-CLgV_/n V_1CLV_3CLV_4CLV_5CLmV_8FfnV_;{oV_CLV_?CLV_ACLV_BCLV_CCLV_DCLV_ECLwV_H@{xV_IOyV_KRQV_LOP{V_Oi |V_Q^}V_Rr#~V_T]V_WBCV_YEV_ ~V_OPV_X |V_CLV_GEV_HV_HV_KFuV_CLtV_CLV_kV V_o V_kn 5V_J6V_JyV_CLV_CL:V_F;V_ABHV_L+< LV_}MV_zNV_IOV_|R8 PV_{ QV_H RV_N}TV_IUV_HyVV_HwV_OPV_CLYV_EV[ZV_BwV_OPV_CL]V_vI ^V_XV_OPV_CLaV_NV_OPV_ CLdV_ GxV_ OPfV_^V_CLhV_EiV_O(V_OPkV_U lV_eHmV_bHnV_HfoV_d_pV_[R qV_ Vq rV_!Y sV_"MEtV_#N\euV_MDMV_NOPV_PCLxV_RB)yV_SIozV_TIV_VOPV_XCL}V_ZI~V_\KV_^KMzV__GeV_`OP~V_bCLV_dDV_fS V_hFgV_iFfV_jBfV_lCL V_nDSV_pCLV_rCL V_s+V_tCLV_uCLV_xTV_zCLV_{CLV_}p V_~^# V_CLV_CLV_CLV_L V_c0V_[33V_ZV_J V_W V__V_]!V_Ts3"V_zٚ#V_m $V_K|%V_O2%&V_M 'V_L~(V_AbV_CL*V_Tt+V_ZV_CL-V_C~V_CLV_CL0V_{ 1V_I2V_JG3V_Kh4V_HV_OP6V_]V_CL8V_JāV_CL:V_F/V_CLC4V_A6V_`L7V_Tf8V_\9V_t7:V_{;V_uyV_TS?V_IY @V_GAV_I3V_OPDV_v EV_HFV_ F}GV_ O>V_ eV_j4V_c3V_n& V_`:V_@eV_f 4 V_d V_@t V_At !V_DCL V_ECLV_GCLV_I_ V_LCLV_Nup V_Oz V_PCV_Qq V_S0V_Vy V_ZCLV_[CLV_\CLV_]CLV_^CLV_aFoV_bGCV_e|C V_hl4V_k](V_lw4 V_mzcz V_npT V_qr V_tF5V_uOMNV_vs V_xJU#V_zBaH V_R.>V_ẼV_BIV_{H V_Mm V_g V_`yV_XyV_^V_CLV_CLV_CLV_CLV_CLV_OPV_OPV_CLV_CLV_JgbV_H& V_HV_IDV_JV_J}eV_SR) }fV_u^ MV_v NV_D OV_CE+PV_E@QV_VRV_QHSV_o TV_FW`VV_h~ XV_ FG~YV_!H+[V_"K\V_#Q$^V_'c&_V_(z `V_)@1aV_+bV_,cV_-x>V_/CLV_1CLV_2CLgV_4n V_6CLV_7CLV_8CLV_9CLmV_=FW<nV_@{<oV_Ab V_CCLV_lCLV_mCLV_nCLV_pCLV_qCLV_rCLwV_uAffxV_vPHyV_wPV_xOP{V_|i |V_~^d}V_p~V_]V_B9V_E&V_ O ~V_OPV_W |V_CLV_FV_HqV_GV_GuV_CLtV_CLV_l3 V_oa V_ku 5V_Jj6V_JyV_CLV_CL:V_HVF;V_L7DV_BEV_dFV_vQGV_XHV_L LV_`gMV_X34NV_r>OV_| PV_|& QV_HHRV_NeTV_IUV_HVV_GV_OPV_CLYV_ElZV_BV_OPV_CL]V_v ^V_WUqV_OPV_CLaV_NbV_OPV_ CLdV_5GV_7OPfV_9^V_:CLhV_V_ 2ixB V_ 3ixB V_ 4I/jV_ 5DV_ 7{V_ `HV_ cOV_ eI0V_ fM V_ ir V_ kM V_ oEVV_ pReV_ r~4V_ sM V_ tLV_ wo^ V_ yMV_ zDV_ |CLV_ EaV_ DV_ OPV_ CLV_ CLV_ CLV_ CLV_ CLV_ CLV_ CLV_ a<V_ P#3V_ lgV_ MHV_ kHV_ g{V_ CLV_ CLV_ CLV_ CLV_ CLV_ CLV_ CLV_ ]V_ CLV_ CLV_ CLV_ MV_ CLV_ C<V_ CLV_ CLV_ v V_ CLV_ CLV_ CLV_ OP$V_ K*%V_ I&V_ QV_ CL*V_ I,V_ XD V_ OP.V_ M]]V_ CLV_ CLV_ OPV_ CL3V_ r7+4V_ A6V_ u37V_ `8V_ k9V_ t4 :V_ x34;V_ zV_ )T?V_ *IMH@V_ +FAV_ ,I V_ -OPDV_ 0x:D EV_ 1GiFV_ 2FqLGV_ 3OV_ 7aV_ 8glV_ 9_3V_ :m V_ =``V_ ?@0V_ @f7 V_ Ae V_ Bt V_ Ctz !V_ FCL V_ GCLV_ HCLV_ Je5 V_ NCLV_ PtM V_ Qyl V_ RCDV_ SpY V_ UXhV_ Xy V_ [CLV_ \CLV_ ^CLV_ _CLV_ `CLV_ cF`V_ GUV_ |& V_ lmV_ ](V_ vt V_ z)B V_ p V_ r#3V_ E:V_ O V_ sV_ KniV_ B V_ Q|V_ F1V_ BV_ { V_ U V_ iU V_ `3V_ YV_ ^V_ CLV_ CLV_ CLV_ CLV_ CLV_ OPV_ OPV_ CLV_ CLV_ JEV_ H$8V_ HV_ IDV_ JǮV_ JǮ}eV_ UT}fV_wl MV_ uK NV_ D1OV_ CgfPV_ E| QV_ VRV_ QO'SV_ o TV_ EVV_ g{ XV_ "F\@YV_ #Hֻ[V_ $\V_ %W ^V_ (c׏_V_ *z `V_ +@1aV_ U~bV_ V}cV_ WwV_ YCLV_ ZCLV_ [CLgV_ ^n V_ `CLV_ aCLV_ bCLV_ cCLmV_ fFMInV_ i{oV_ ka V_ mCLV_ nCLV_ oCLV_ pCLV_ qCLV_ rCLV_ tCLwV_ wD(xV_ xPyV_ ySV_ zOP{V_ }hUV |V_ _K}V_ p~V_ ]V_ B6V_ EV_ ~ ~V_ OPV_ Wx |V_ CLV_ FTV_ HVFV_ GV_ L)uV_ CLtV_ CLV_ nQ V_ p > V_ k/ 5V_ J 6V_ JV_ CLV_ CL:V_ M;V_ L^(CLhV_ @EGiV_ BM{[V_ DOPkV_ EUT7 lV_ FrQmV_ Gm=qnV_ JJ oV_ KdExpV_ MZ qV_ NUp rV_ PX sV_ QMtV_ RNuV_ SD'V_ TOPV_ VCLxV_ AqyV_ PQ-zV_ IpV_ OPV_ CL}V_ I~V_ KUV_ K3V_ GV_ OP~V_ CLV_ DV_ SP V_ Hs3V_ F{3V_ BiV_ CL V_ D- V_ CLV_ CL V_ IV_ CLV_ CLV_ LV_ CLV_ CLV_ o V_ [[ V_ CLV_ CLV_ CLV_ LYD V_ s V_ d34V_ e@V_ J V_ T.V_ ^34V_ Z=q!V_ T"V_ o&f#V_ c$V_ K%V_ O?&V_ ME'V_ L(V_ @V_ CL*V_ Pë+V_ [dV_ CL-V_ C:V_ CLV_ CL0V_ z? 1V_ Pi2V_ I{3V_ Kbd4V_ HV_ OP6V_ ]V_ CL8V_ JZV_ CL:V_ FݱV_ CLV_1T?V_2I?@V_3FoAV_4HzV_5OPDV_8|} EV_:HFV_;FmGV_V_OP{V_hwx |V_^w}V_qA~V_]V_B5,V_FV_~ ~V_OPV_V |V_CLV_FV_H\V_GV_Q5uV_CLtV_CLV_n- V_p( V_k 5V_J 6V_JdV_CLV_CL:V_Mν;V_G:~V_K"V_K V_GwAV_OP~V_CLV_DV_S V_K3V_IV_EV_CL V_DGV_CLV_CL V_̛NV_CLV_CLV_K˨V_CLV_CLV_of V_Y/ V_CLV_CLV_CLV_L V_nV_c&fV_eIV_IߨV_^\V_fRV_d!V_O"V_q#V__3$V_K%V_O!&V_LG'V_L%(V_@SV_CL*V_O+V_`V_CL-V_BV_CLV_CL0V_{ 1V_K<2V_0I*3V_1K=4V_2H V_3OP6V_5]V_6CL8V_8JV_;CL:V_=FV_@CLV_bixB V_cixB V_dIZV_fDtV_h{V_iHV_P.CV_I(V_M V_r V_M V_EVV_LvV_~ V_M V_LV_o^ V_MV_BoV_CLV_E{}V_DV_OPV_CLV_CLV_CLV_CLV_CLV_CLV_CLV_afV_NgV_cVgV_GHV_GHV_GHV_CLV_CLV_CLV_CLV_CLV_CLV_CLV_]V_CLV_CLV_CLV_MV_CLV_CԅV_CLV_CLV_v V_CLV_CLV_CLV_ OP$V_ K%V_ I&V_NRV_CL*V_IP,V_W!V_OP.V_MV_CLV_CLV_OPV_CL3V_"qg4V_$A6V_'Y,7V_(Z`8V_)P9V_,tdN:V_-@ff;V_.|3V_1Ta?V_2I1 @V_3FAV_\HV_]OPDV_`} EV_bH FV_cFi"GV_dPpV_gaV_hg3V_i^V_jl! V_m`D\V_nh! V_of V_pe V_qtx V_rt' !V_vCL V_wCLV_xCLV_zd V_}CLV_sU: V_|& V_B=V_n V_V_y V_CLV_CLV_CLV_CLV_CLV_FVV_G^V_{ V_kV_]%V_ua V_y1 V_p V_rٚV_EV_Q$V_yV_MV_B V_QſV_EV_C$V_{/9 V_V V_a&f V_a3V_XfV_^V_CLV_CLV_CLV_CLV_CLV_OPV_OPV_CLV_CLV_JV_H&V_H:V_IDV_JRV_%JR}eV_w }fV_x MV_Ct{ NV_EDOV_FCPV_GEQV_KVsRV_LQ'SV_Mo TV_NEXVV_OgE+ XV_QFyYV_RH[V_T\V_UT^V_Xc_V_Y{r `V_Z@uaV_\}bV_]}W cV__xV_CLV_CLV_CLgV_n V_CLV_CLV_CLV_CLmV_FCUnV_{`oV_`$ V_CLV_CLV_CLV_CLV_CLV_CLV_CLwV_@xV_QfyV_SV_OP{V_hUV |V_^4}V_n~V_]V_B7WV_EV_~ ~V_OPV_S |V_CLV_FV_HMV_GپV_ITuV_CLtV_CLV_n V_o8 V_k$ 5V_J6V_JLV_CLV_CL:V_Mu;V_DV_pOPkV_qTƺ lV_stmV_tnnV_wI3oV_xcOpV_zZ qV_{V rV_|Z sV_}MtV_~NuV_E5V_OPV_CLxV_CL!yV_L-zV_I/jV_OPV_CL}V_Ip~V_JPV_K V_Gj8V_OP~V_CLV_DV_S V_G#4V_C3V_@V_CL V_DV_CLV_CL V_ΉiV_CLV_CLV_@.V_CLV_CLV_o V_Xq? V_CLV_CLV_CLV_Lm V_kgV_^V_bV_IV_U)V_^qV_]\!V_LY"V_iL#V__ٚ$V_KA%V_O,&V_L0'V_LKv(V_@V_CL*V_ Nܻ+V_#\V_&CL-V_(CV_+CLV_,CL0V_.{ 1V_/J2V_1It3V_2K*4V_3HJV_4OP6V_6]V_7CL8V_9JV_FmV_ACLV_ZT5?V_[I@V_\FλAV_]HHV_^OPDV_a~OI EV_cH FV_dFaGV_eOV_hT V_jZ3V_kSpV_lk V_o_V_p~) V_qf V_reд V_stM V_ts !V_wCL V_yCLV_zCLV_|aj V_CLV_r V_{/9 V_BV_nB V_z V_xo V_CLV_CLV_CLV_CLV_CLV_F=BV_GVV_{ V_kV_]%V_t V_x V_pn V_rV_E[V_S5V_XV_OrV_B V_PNV_DyV_CMV_z V_Mx V_i V__fV_ W&fV_ ^V_CLV_CLV_CLV_CLV_CLV_OPV_OPV_CLV_CLV_IV_HV_ HoV_!IFV_$JRV_'JR}eV_V}fV_x MV_Et NV_GDwOZGClPZGEQZG VoRZG PSZG o7 TZG EVZG gSo XZGFYZGHh[ZG\ZGT^ZGcgy_ZG{8 `ZG@aZG}bZG}ucZGxZGCLZG CLZG!CLgZG#nT ZG&CLZG'CLZG(CLZG)CLmZG,FBmnZG/{IoZG0_N ZG3CLZG4CLZG5CLZG6CLZG7CLZG8CLZG9CLwZGe@#xZGfN.yZGgOZGhOP{ZGkg |ZGm_U}ZGnpm~ZGq]ZGtB6ZGuEZGx~# ~ZGzOPZG}R |ZGCLZGFhZGHZGGZGH̾uZGCLtZGCLZGnj ZGo ZGk1' 5ZGJi46ZGJZGCLZGCL:ZGL:;ZGAwERZG?OPZGACLxZGCCμyZGDJFzZGFIwZGHOPZGJCL}ZGLIS~ZGNJtZGOKZGPG]ZGQOP~ZGSCLZGUD;ZGXSm& ZGYIZGZGZG[CZG]CL ZG_CBZGbCLZGcCL ZGdKZGeCLZGfCLZG: ZGCLZGCLZGo ZGX ZGCLZGCLZGCLZGLW ZGgZGYZG]ZGIBZG[pZGc\*ZGa#!ZGM@"ZGj3#ZGb$ZGKA%ZGN&ZGLڄ'ZGK$(ZG@UZGCL*ZGM+ZGY2hZGCL-ZGC~ZGCLZGCL0ZG{/9 1ZGIi2ZGI\3ZGK(4ZGHZGOP6ZG]ZGCL8ZGJZGCL:ZGFZGCLZGTw?ZGH@ZGFAZGHؒZGOPDZG@8EZGH#FZG FVGZG!O*ZG%VfZG&]&fZG'UZG(i ZG+^mZG,~K ZG-fJ ZG.f(r ZG/t!N ZG1s !ZG4CL ZG5CLZG6CLZG8cx ZG;CLZG=r]\ ZG>{ ZG@CScZGAm ZGBI ZGCx ZGFCLZGGCLZGHCLZGICLZGJCLZGNF*CZGOG&ZGR{in ZGTkoZGW]%ZGXt ZGYx ZGZpB ZGoZGEM5ZGUaZGA%ZGPZGB ZGO,ZGDIZGD/7ZGz[ ZGT߁ ZGa{ ZGa9ZG\@ZG^ZGCLZGCLZGCLZGCLZGCLZGOPZGOPZGCLZGCLZGIZGHZGHyvZGICZGJZGJ}eZGB\}fZGy< MZGs NZGDiOZGCPZGEFQZGVdPRZGPsSZGo TZGE_VZGf XZG FWYZG H[ZG  \ZGT^ZGcB_ZG{c `ZG@aZG~bZG~cZGw{ZGCLZGCLZGCLgZGnT ZG CLZG"CLZG#CLZGLCLmZGOF*nZGR{poZGS_W ZGUCLZGWCLZGXCLZGYCLZGZCLZG[CLZG\CLwZG_wxZGaQ>yZGbOZGcOP{ZGfg"# |ZGh_}ZGiqև~ZGk]ZGoBHZGJ LZG{zMZGn(NZGQOZG~ PZG}~ QZGHRZGM[TZGHUZGH;VZGGZGOPZGCLYZGDQNZZGA/ZGOPZGCL]ZGw ^ZG]ZGOPZGCLaZGPZGOPZGCLdZGG )ZGOPfZG ^ ZG!CLhZG#DGiZG%U=ZG'OPkZG(T lZG)sHmZG*m nZG+wq oZG.cQpZG0\q qZG1V3 rZG3X sZG4M۲tZG5NuZG6EdZG7OPZG9CLxZG;DyZGHZG@OPZGBCL}ZGDI=~ZGFJZGGJZGHGPZGIOP~ZGKCLZGMD- ZGxSD ZGyGfZGzEɚZG{B ZG}CL ZGCBZGCLZGCL ZGZGCLZGCLZGRrZGCLZGCLZGouq ZGYc ZGCLZGCLZGCLZGNU ZGmZG_fZGcZGI>>ZG^ZGfǯZGd!ZGEf"ZGd #ZGa$ZGKo%ZGN&ZGL'ZGK0(ZG@ZGCL*ZGMa+ZG`\9ZGCL-ZGBZGCLZGCL0ZGzT 1ZGH2ZGI\3ZGK4ZGHZGOP6ZG]ZGCL8ZGJ ZGCL:ZGFsZGCLZGGDZGIzZGKHZGNOpZGPI2ZGQM ZGTr ZGVM ZGYEVZGZLvZG\}(ZG]LZG^LZGao^ ZGcMZGeARZGgCLZGjEZGkE`ZGlOPZGnCLZGoCLZGpCLZGqCLZGrCLZGtCLZGuCLZGxYgZGyNəZGzavgZG{OZGNZGRZGCLZGCLZGCLZGCLZGCLZGCLZGCLZG]ZGCLZGCLZGCLZGMZGCLZGCҶZGCLZGCLZGu ~ ZGCLZGCLZGCLZGOP$ZGJN%ZGI&ZGImZZGCL*ZGI,ZGWϠZGOP.ZGN7ZGCLZGCLZGOPZGCL3ZGq4ZGA6ZG p337ZG f8ZG o9ZG t\:ZGA3;ZGygZGTi[?ZGH>@ZGFAZGHZGOPDZGA;EZGGFZGFXGZGOZGT ZGYfZG SfgZG!hO ZG$](ZG%~{ ZG'f& ZG(fb ZG)s ZG*s8 !ZG-CL ZG.CLZG/CLZG1` ZG4CLZG7r ZG8@ZG9F>KZG:m ZGy34ZG@CLZGACLZGBCLgZGEn ZGGCLZGHCLZGICLZGJCLmZGMFdnZGP{oZGR`F ZGTCLZGUCLZGVCLZGWCLZGXCLZGYCLZGZCLwZG^}xZG_MyZG`OZGaOP{ZGdh |ZGf_H}ZGgo0~ZGj]ZGmBDXZGnE0ZG~s ~ZGOPZGW/ |ZGCLZGF:ZGHZGG}ZGOuZGCLtZGCLZGnh ZGp ZGk\) 5ZGJ|J6ZGK>ZGCLZGCL:ZGD;ZGL;ZG S?ZG H@ZG FdAZG HZG OPDZG ATEZG GFZG FdGZG OZG Q3ZG !WZG "Q9ZG #g ZG &\ZG '}n ZG )gd ZG *f ZG +s ZG Tr !ZG WCL ZG XCLZG YCLZG [a ZG ^CLZG ar@3 ZG bDZG cFxCZG dme ZG eI? ZG fx ZG iCLZG jCLZG kCLZG mCLZG nCLZG qFkfZG rGuQZG u{w ZG wk_ZG z]%ZG {t[ ZG }x0 ZG ~o ZG qZG EKeZG UiZG D,oZG STZG B ZG P:ZG DfWZG DZG zcz ZG Ry ZG i ZG a9ZG YYZG ^ZG CLZG CLZG CLZG CLZG CLZG OPZG OPZG CLZG CLZG I|ZG H ZG HsZG ICZG JZG J}eZG e^}fZGxZ MZG t0 NZG "DXlOZG #ChPZG $EbQZG 'V>WRZG (PY#SZG )o TZG *EIVZG ,f XZG .FiYZG /Hf[ZG 01\ZG 1S/^ZG 4b5_ZG 5{r `ZG 7@aZG 9{gbZG :}8RcZG ;vZG =CLZG >CLZG ?CLgZG Bnk[ ZG DCLZG ECLZG FCLZG GCLmZG JEnZG M{goZG O_{c ZG QCLZG RCLZG SCLZG TCLZG UCLZG VCLZG CLwZG BxZG OyZG Q\)ZG OP{ZG f |ZG ` }ZG ot~ZG ]ZG BMZG EZG ~z ~ZG OPZG Vx |ZG CLZG FAZG H ZG GZG FiuZG CLtZG CLZG ns ZG o: ZG kt 5ZG J_46ZG K:[ZG CLZG CL:ZG CD;ZG KRZG {CLZG |CL ZG }eZG CLZG CLZG @rZG CLZG CLZG ouq ZG YR ZG CLZG CLZG CLZG NU ZG sZG igZG eZG HZG WZG _ZG ]!ZG G"ZG |#ZG lL$ZG K%ZG N/&ZG L'ZG Kz(ZG @UKZG CL*ZG L(+ZG \[ZG CL-ZG CZG OPZG CL0ZG { 1ZG K_2ZG IS3ZG JP4ZG H\ZG OP6ZG ]ZG CL8ZGJ+ZGCL:ZGFZGCLDJZGA{eyZGBHZGEPZGGIZGHLZGKr ZGuM ZGxEVZGyS ZG{} ZG|LZG}MZGo^ ZGMZGBWZGCLZGEmZGDZGOPZGCLZGCLZGCLZGCLZGCLZGCLZGCLZGefZGNgZGcVgZGOpZGN=qZGRpZGCLZGCLZGCLZGCLZGCLZGCLZGCLZG]ZGCLZGCLZGCLZGNZGCLZGCɪZGCLZGCLZGtj. ZGCLZGCLZGCLZGOP$ZGJd%ZGIþ&ZGPZGCL*ZGHM,ZGWZGOP.ZGNnZGCLZGCLZGOPZGCL3ZGq8b4ZGA6ZGg47ZGjf8ZG{&f9ZGt,:ZG{,;ZGvZG S?ZG H@ZG FAZG HZGOPDZGAVEZGH'@FZGG#GZGOZG=PffZG>UZG?OZG@f ZGC^0ZGD}v ZGFgL ZGGf ZGHs ZGIrE !ZGLCL ZGMCLZGNCLZGPaY ZGSCLZGVq ZGW}I ZGXF5ZGYmh ZG[/{ZG^w ZGaCLZGbCLZGcCLZGeCLZGfCLZGiF7ZGjG%ZGm{ ZGok\iZGr]%ZGst' ZGuxt ZGvo ZGnfZGEEZGSZGD7ZGTZGBk ZGP1FZGDQNZGDZGz)B ZGO ZGns3 ZG`3ZGYfZG^ZGCLZGCLZGCLZGCLZGCLZGOPZGOPZGCLZGCLZGI"ZGHZGHpcZGIAZGJqZGJq}eZG[W3G}fZG y[ MZGu NZGD^OZGC%PZGEWQZGVRZG PUSZG!o TZG"E>VZG$f} XZG&FYZG'H[ZG({ \ZG)TB^ZG,eF_ZG-{ `ZG/@1aZG1{\bZG2ycZG3x\*ZG5CLZG6CLZG7CLgZG:nDF ZGCLZG?CLmZGjFnZGm{<oZGo^ ZGqCLZGrCLZGsCLZGtCLZGuCLZGvCLZGxCLwZG{@xZG|P8RyZG}P(ZG~OP{ZGf |ZGa7}ZGr~ZG]ZGBG<ZGEhZG~z ~ZGOPZGU [ |ZGCLZGFGSZGH5ZGGeZGJ)uZGCLtZGCLZGn ZGop ZGk J 5ZGJ06ZGK&XZGCLZGCL:ZGB;ZGI8ZG,S?ZG-Hlg@ZG.FPAZG/HdZG0OPDZG1AyVEZG2GFZG3F`GZG4O7ZG7JZG8MZG9I<ZG:e ZG=_ZG?}A] ZG@gj ZGAf ZGBsF ZGCr]\ !ZGFCL ZGGCLZGHCLZGJ`S ZGNCLZGPqt ZGQx ZGRFmZGSmv ZGUuZGXw ZG[CLZG\CLZG^CLZG_CLZGCLZGFPZGGZG{in ZGkA\ZG]%ZGsF ZGvR ZGo ZGpVfZGEBTZGOo8ZGEZGUZGBE ZGQZGDMZGE !ZGz % ZGPty ZGl ZG`ZGY ZG^ZGCLZGCLZGCLZGCLZGCLZGOPZGOPZGOPZGCLZGIoZGHZGHZGIBZGJZGJ}eZGUF8"}fZGyڷ MZGtb NZGDcOZGBPZGE/5QZGURZGP9 SZGouq TZGDdVZGfDu XZG FcYZG!H"[ZG"\ZG#Sd^ZG&ep_ZGP{U `ZGQ@aZGS{kbZGTzcZGUwW ZGWCLZGXCLZGZCLgZG\n% ZG^CLZG_CLZG`CLZGaCLmZGdF 'nZGh{oZGi^U ZGkCLZGlCLZGmCLZGnCLZGoCLZGpCLZGrCLwZGu|34xZGvPyZGwQZGxOP{ZG{e |ZG}` (}ZGpn~ZG]ZGB5,ZGEkZG~OI ~ZGOPZGUv |ZGCLZGF52ZGH~ZGGi~ZGO}HuZGCLtZGCLZGoP ZGop ZGk% 5ZGIV6ZGKlZGCLZGCL:ZGB ;ZGG7GZGU\HZGI LZGC{MZGsNZGTǮOZG PZG~ QZGHRZGLTZGHUZGHrVZGGKZGOPZGCLYZGB5ZZGA/ZG OPZG"CL]ZG$vh. ^ZG&^ ZG'OPZG)CLaZG,Q\ZG-OPZG0CLdZG2FbZG4OPfZG6^ ZG7CLhZG9BMiZG:Q9ZGw=qmZG?q\)nZGAw oZGDcOpZGF^=q qZGGXp rZGH\ sZGIMVtZGJNuZGKEWZGMOPZGOCLxZGQDQNyZGRI zZGSHmZG}OPZGCL}ZGHU~ZGIEZGJ]/ZGG_ZGOP~ZGCLZGC{ZGR ZGwٙZG|gZGxZGCL ZGB ZGCLZGCL ZGZGCLZGCLZGPBZGCLZGOPZGoK ZGX G ZGCLZGCLZGCLZGN ZGoZGc ZG_ZGH ZGX{ZG_ZG]Ǯ!ZGB"ZG[#ZGTL$ZGK6%ZGNu&ZGLf'ZGK(ZG@ZGCL*ZGK82+ZG``ZGCL-ZGD4KZGOPZGCL0ZG{ 1ZGICx2ZGI?3ZGJ54ZGHqZGOP6ZG]ZGCL8ZGIL\ZG CL:ZG FZGCL ZG[ixB ZG\I ZG]DJZG_{JZG`GoZGcP ZGeIHWZGfLZGir ZGkM ZGoEVZGpLvZGr|aZGsLZGtMMZGwo^ ZGyM^ZGz@yZG|CLZGEtCZGDZGOPZGCLZGCLZGCLZGCLZGCLZGCLZGCLZGXPZGQɚZGb,ZGP(ZGMZGQzZGCLZGCLZGCLZGCLZGCLZGCLZGCLZG]ZGCLZGCLZGCLZGMZGCLZGCaZGCLZGCLZGv- ZGCLZGCLZGCLZGOP$ZGJJ%ZGI\&ZGN6ZGCL*ZG Hκ,ZGWZGOP.ZGNZGCLZGCLZGOPZGCL3ZGq4ZGA6ZGw7ZGf&g8ZG n39ZG#sZ:ZG%x@;ZG&sٙZG)S?ZG*HP2@ZG+FAZG,HI>ZG-OPDZG.A-EZG/GFZG0FS_GZG1OZG3JgZG5PfZG6JZG7d ZG:_ZG;|X ZGs ZG?r !ZGBCL ZGDCLZGECLZGGaY pCLpq+ p Dp F:p l p pwQ? pCLpCLpCLpCLpCLpFpGp{w p!kp$]%p%pӖ p't4 p(o7 p+np.E;p/Pp0Dp1V4p3Bn p6Op8D~] ~p@OPpCU |pECLpHF.pJHn*pKG]pNLupPCLtpQCLpTp7L pUodZ pVk\) 5pXI6pYJܪp[CLp\CL:p_A";p`F&E<paLӧ?pbBnpdOPpfCLBp}I CpADpBHtEp]FpnGGpNHpI LpC#Mps\NpTfOp@*Pp~' QpHRpLTpH{UpHBVpFpOPpCLYpB ZpBpOPpCL]pu ^p\pOPpCLapQpOPpCLdpFpOPfp^ pCLhpBipP%pOPkpR lpwmpqQnpx opb{pp\ qpVǮ rpZ spMtpNupE?(pOPpCLxp D- yp Pzp Hp OPpCL}pH~pIpJ8pGpOP~pCLpCupRw pkp p3p!q\p#CL p%Bp(CLp*OP p,Hdp.CLp/CLpZLsp\CLp_OPpbo pcX pfCLpgCLphCLpkO( pll|pmZpnZ|pqGpsW\)pt^pu\!pvG3"pwd #pxS$pyKT%pzN1}&p{L}'p|Kp(p@pCL*pJm+pbapCL-pDSpOPpCL0pzu 1pI2pI0Z3pJ4pHpOP6p]pCL8pHVFpCL:pFpCL<pCi(=pGopOPpCL@pO\uApH6BpCpCLpCLEp@Hp@Ipi JpZKpXLpYIc pixB pixB pCi(pIpDSpju pixB pIΘpDp{ pGopP p!Ip"Lp%r p'M p*EVp+Qp-|ip.Lp/Mp2o^ p5M^p8Eʘp:CLp=ENMp>Dp?OPpACLpBCLpCCLpDCLpECLpGCLpHCLpK^lpLR<pM_fpNQpOLpPQpRCLpSCLpUCLpVCLpWCLpXCLpYCLpZ]p[CLpCLpCLpNpCLpC0pCLpCLpx# pCLpCLpCLpOP$pJy%pI0&pKApCL*pHf,pWwpOP.pO6pCLpCLpOPpCL3pp4pA6pi7p`s48pa 9ps3:py;pt@<pvgpOP>pSzS?pH4@pFApH&}pOPDp@vEpGyFpFH}GpOkpJ3pPpJٙpde p`p| pg3 pg[~ pr pqˈ !pCL pCLpCLpaЊ pCLp qˈ p AZp C6]p m<8 ppw pCLpCLpCLpCLpCLpF-pGɔp!{LS p#jUpN]%pOo pPs pRoYk pUq3pXE2pYLpZDp[W p]B p`PpaDpcEBpfy pgQ pjq pk`plZC3pm^pnCLppCLpqCLprCLpsCLpvOPpwOPpxOPp{CLp~IXpH2pIpI?CpJqpJq}ep]}fpT{n[ Mpt NpDSoOpCPpD`QpURpP.ZSpouq TpDVpfDu XpFgYpH[pشk}\pY,^peo_p| `p@ap|bp|cpwpCLpCLpCLgpm pCLpCLpCLpCLmpF5np{gop ]׷ p"CLp#CLp$CLp%CLp'CLp(CLp)CLwp,B>xp-Oyp.Op/OP{p3gfg |p5`uF}p6pz~p8]p;BpCLp?CLp@CLpACLpBCLpCCLplCLppXpqNprbpsNptO{puQpwCLpxCLpyCLpzCLp|CLp}CLp~CLp]pCLpCLpCLpMfpCLpCmpCLpCLpy pCLpCLpCLpOP$pJ%pI&pI˔pCL*pH,pVpOP.pO.GpCLpCLpOPpCL3ppl4pA6pos47po&f8piL9pr:p@);ptg<p|ٚpOP>pSA?pH@pFApHpOPDp@2EpGFpF8,GpOspJpOpKLpc# p`p}/ pg pgj prE pq3 !pCL pCLpCLpa pCLprz pz p C p m p4Cp7vI p:CLp;CLp[pH;pI5GpIApJqpJq}ep4TL}fp~{ Mps NpDHOpC6PpD:QpURpP<Spouq TpE;aVpfDu XpEYpH[pV\pR^p e_p |r `p @zBap yQbp w(cp tup CLp CLp CLgp m p CLp CLp CLp CLmp F np {op ] p CLp CLp !CLp "CLp #CLp %CLp &CLwp )@xp *Kkyp +OBp ,OP{p /gDD |p 2`o}p 3qn ~p 5]p `BCp aEp d~24 ~p gOPp jU [ |p lCLp oF%p pHp qG^p uKup wCLtp xCLp zqp p |o| p }k+ 5p I6p Jp CLp CL:p B ;p C<<p O?p Bp OPp CLBp ~ Cp zDp B Ep h >Fp vGp UHp H Lp CMp sNp U{Op @VPp  Qp IRp LIgTp H0aUp GOVp Fjp OPp CLYp AeZp AZp OPp CL]p vOP~p @CLp BC{p DR p Eo9p Gmp Hj3p JCL p LC p NCLp QOP p RE4p TCLp UCLp WHVFp ZCLp ]OPp `nT p aW~ p CLp CLp CLp NA p us3p `p `p Gp `p g\p eu!p Es3"p is3#p [Y$p K%p N '&p Le'p Kg(p ^ p CL*p I\+p ZOp CL-p EZp OPp CL0p {in 1p K/72p I 3p J|J4p Gt[p OP6p ]p CL8p G̶p CL:p Fip CL<p C:=p Gp OPp CL@p OGAp H4Bp Cp CLp CLEp @uHp HVIp f 6 Jp VKp IsdLp Xb p ixB p ixB p Cp Ip Dp kQ p ixB p Ip Dp {p F~p OPp I(p Lp #r p %M p (EVp *Lvp T{Hp UM p VM=p Yo^ p [M^p \@p ^CLp aEep bDwJp cOPp eCLp gCLp hCLp iCLp jCLp kCLp lCLp oYgp pPpp qbfgp sNp tMp uQp wCLp xCLp yCLp zCLp {CLp |CLp }CLp ]p CLp CLp CLp N :p CLp CTp CLp CLp x:D p CLp CLp CLp OP$p Jqb%p I&p Gp CL*p Hyv,p Wp OP.p Op CLp CLp OPp CL3p p4p A{6p p7p t8p ^ 9p r\:p r;p uFg<p rp OP>p S?p G @p FAp Hp OPDp @*Ep GnFp F.2Gp O;p Cfp H|p Cp bBS p `D\p }/ p gJ p g p rz p !qV !p $CL p &CLp 'CLp )c_ p ,CLp .rk p /B=p 0C p 1m p 2G3 p 4v p 7CLp 8CLp 9CLp :CLp ;CLp >Fp ?GAp C{Z p Ejap H]%p In$ p Jq p Kom p Np3p QEp RTp SE8p UYp WB) p O/p Cp Ep yz p U p kww p aLp Z9p ^p CLp CLp CLp CLp CLp OPp OPp OPp CLp I){p HCp IRTp IEp JǮp JǮ}ep 2\l}fp z| Mp uK Np D?wOp C Pp DiQp UxRp P'9Sp ouq Tp D}Vp e5| Xp F"|Yp G[p {\p [ ^p eIi_p |8 `p @fap x=qbp ycp tW p CLp CLp CLgp m p CLp CLp CLp CLmp Fnp {op ]Y p CLp CLp CLp CLp HCLp ICLp JCLwp N~Rxp ONyp PMHp QOP{p Te33 |p V_}p Wp;Z~p Z]p ]Bp ^Ep a~OI ~p cOPp fU |p iCLp lF-p mGp nGKp qQ up tCLtp uCLp wr p xpfg p ykz 5p |H6p }Jp CLp CL:p Gn;p B <p P?p B+p OPp CLBp ~] Cp w4Dp BHEp eGFp tGp q(Hp HQ Lp BMp tfgNp UOp @uPp : Qp IRp L8Tp HUp GOVp Fp OPp CLYp @Zp Afp OPp CL]p v4 ^p Zssp OPp CLap Omp OPp CLdp EZp OPfp^ pCLhpBEipMpOPkpRK lpuRmpp\npxff opawpp"\3 qp#WW rp$Z sp%MRtp&N?up'E"'p(OPp*CLxp,DByp.KDWzp/H@p1OPp3CL}p5HO ~p7I1p8Ip9FAp;OP~p=CLp?C.pAQ@ pBj3pCl4pDglpFCL pHBpKCLpvOP pwCpyCLpzCLp|G̶pCLpOPpnn pWJ pCLpCLpCLpMK prp]`p]ipFpXBp_p^34!pC"pZs3#pQ$pK %pM&pLZ 'pKj(p pCL*pIw+p^YpCL-pE]pOPpCL0p{ 1pJ;42pH3pJl4pG1pOP6p]pCL8pFpCL:pFpCL<pC~=pGgRpOPpCL@pOFApHBpCpCLpCLEp@4HpD[Ipl* JpVKpW^LpX p ixB p ixB p C:p Ip Dpk. pixB pIpDp<{#p=Gop@OpBIg5pCLpFr pHM pKEVpLLvpN{pOLpPMpTo^ pVM^pW@LpYCLp\EQp]Dp^OPp`CLpaCLpbCLpcCLpeCLpfCLpgCLpjY3pkNs3plYgpmN\)pnNzpoPpqCLpsCLptCLpuCLpvCLpwCLpCLp]pCLpCLpCLpNpCLpCӞpCLpCLpy#; pCLpCLpCLpOP$pJd%pI&pR_pCL*pHa,pWpOP.pNqpCLpCLpOPpCL3ppi4pA{6pc7p]L8pQ`9pr:pog;po<pps4pOP>pSG1?pG@pF}ApI fp OPDp AQcEp GLFp FGp O1pUc3p[pSpa p`p| ph pg pr@3 pq !pCL p CLp!CLp#`6 p&CLp)r1 p*F[Gp+H@p,m p.Efp1vt p4CLp5CLp6CLp8CLp9CLp OpB&PpDQpUZ`RpPeSpo۔ TpD`Vpd XpFYpG[p{\pR"^pd_p|G `p@SRapy{bp{\*cpv{pCLp0CLp1CLgp4m p6CLp7CLp8CLp:CLmp=FMnp@|<opA\ pCCLpDCLpECLpGCLpHCLpICLpJCLwpM|xpNK ypOR\pPOP{pTe"# |pVa}pWp_~pY]p\Bp]Epa~l^ ~pcOPpfU |phCLpkF+9pGҀpGH.pIĚupCLtpCLprD po pk 5pHb6pJpCLpCL:pI=;pKN<pP{?pBpOPpCLBp~ CpADpAEpeFpx=qGpf=qHpH LpBǮMpwfgNpV4Op@<Pp@(QpIRpK1TpGUpGVpErpOPpCLYp@ZpAZpOPpCL]puS[ ^pX6pOPpCLapN. pOPpCLdpEV[p OPfp ^ p CLhpA/ipLZpOPkpR3 lpbmp]npvY opawppY qpT rpU) spM7tp N(up!Ep"OPp$CLxp&D%yp'Izp)H2p+OPp-CL}p/H*~p1Izp2IOp3F?p\OP~p^CLp`C~pcQ pdlpels3pfgphCL pjBcpmCLppOP pqBpsCLptCLpvGpyCLp|OPpn pWmc pCLpCLpCLpMR pzpepf&gpFepWzp_8Rp]!ps34 "p\ٙ#pQL$pK&%pM&pLU{'pK](p O pCL*pHa+p^UpCL-pEpOPpCL0p{ 1pH2pHf3pJ^K4pF:pOP6p]pCL8pF[GpCL:pFbpCL<pC/=pGXpOPpCL@pOA ApHBpCTpCLpCLEp HpAIp$o Jp%UVKp&WLp'Y p*ixB p+ixB p,Cp-Ip.DYp/kh p1ixB p2Jp3Dffp5{2p6FN=p9Op;HnppS?pG@pFvApKxpOPDpAOEpG/ FpF(GpOp R33p Xvfp Pffpa_ p`p| ph(# ph prs ppӖ !pCL pCLpCLpcjS p!CLp#qV p$@Jep%H$p&lo p'A pPvv pTCLpUCLpVCLpWCLpXCLp[FPp\G%p_{LS pbjm)pe]%pfm pgph phnl pkr pnD@poS`ppD+pr\zptB pwOpxCpyE+p|y@Y p}Uc po pa9pZp^pCLpCLpCLpCLpCLpOPpOPpOPpCLpHpHB$pI|pIxupJqpJq}ep'YGm}fp} Mps NpD@.OpBPpDvKQpU?RpP Sp@TpDVpd XpExYpG[pU\pT-^pc_p|q `p Aap"ybp#zcp$t{p&CLp'CLp(CLgp+m\ p.CLp/CLp0CLp1CLmp4Fϙnp7{gop8\^ p:CLpCLp?CLp@CLpACLwpDv\xpFHkypGN\)pHOP{pKdDD |pM`( }pNrH~pP]p|Bjp}EZp~@ ~pOPpTy |pCLpF,"pGpG@pHupCLtpCLprH po| pkC 5pHM6pJpCLpCL:pJā;pK<pP?pBpOPpCLBp~Ü CpO-|DpAEpeHFp{=qGpPHpGp LpBMpvNpVOp@Pp@AQpIRpK˨TpGŒUpGqVpE_pOPpCLYp^ ZpApOPpCL]pt ^pWpOPpCLapMvpOPpCLdpE#pOPfp^ pCLhp Aip VxEp OPkp R= lpe mpcnpu= opapp]{ qpV8R rpY spM*tpNupDpDOPpFCLxpHDypJQsfzpKHpMOPpOCL}pQH~pSIN<pTI}pUF˕pWOP~pYCLp[CDp]QC* p^cp_lp`h3pbCL pdBpgCLpjOP pk@۶pmCLpnCLppG0psCLpvOPpyn`* pzV$w p}CLp~CLpCLpL pvYp^p^3pFfpVp]p[34!p33 "pV#pP3$pK%pM &pLP'pKI(p~ pCL*pHO +p[pCL-pEpOPpCL0pz 1pQ'2pHN3pJN4pFTpOP6p]pCL8pEpCL:pFLpCL<p BE=p G4pOPpCL@pO5~ApHBpC7pCLpCLEp)b Hp~Ip!T9 Jp"UKp#W^Lp$Yc p'ixB p(ixB p)Cp*Jwp+DZp,k) p.ixB p/J%gp0Dtp2{o]p3FVp6P.Cp8Ip9LpM pAEVpBLvpEzpFLpGM$\Xo^ XL-X@LX CLX EyXEeXOPXCLXCLXCLXCLXCLXCLXCLXY@XP3XagXO{XJX NzX#CLX$CLX%CLX&CLX'CLX(CLX)CLX*]X+CLX-CLX.CLX/NsX1CLX4CҶX6CLX7CLX9zF^ X;CLXdCLXeCLXhOP$XiJH|%XjIa&XmLXoCL*XrHC,XsWQXtOP.XuO%XwCLXxCLX{OPX}CL3Xp54XA{6XY7XH&g8XB39Xq[W:Xk;Xq4<XoXOP>XS!?XG@XFsAXM[XOPDXAEXGFXFGXOKXR3XXYXPXa XaX{/ Xh(# Xh(# Xq Xp !XCL XCLXCLX`EA XCLXpX Xy XEsZXk XE XvK XCLXCLXCLXCLXCLXFPXGMX{/9 XjJX]%Xmi Xpmy Xn XpvfXD7XSXDuX]\XB X/NX0CfX1EBX4y#; X5K1 X8s@ X9aX:ZfX;^X=CLX>CLX?CLX@CLXACLXDOPXFOPXGOPXICLXLHٞXMH@TXNIXPIq2XSJXTJ}eX[N}fp~h MXtF NXD@.OXBNPXDoQXU4^RXP SXAOTXC7VXc­ XXENYXGh[X\XT ^XaH_X|q `XCaXyqbX|aHcXvXCLXCLXCLgXn[!X?LY"X@{#XAI4$XBK%XCM&XDL-g'XEK4(XH~ XKCL*XMGo+XN`XQCL-XSFXUOPXWCL0XYzcz 1XZLs2XH3XJ<4XF1XOP6X]XCL8XEXCL:XF/XCL<XB=XG&"XOPXCL@XO=oAXHBXBXCLXCLEX~24 HXHIXb JXR KXWLXX2 Xi| XixB XCXJXE Xk XixB XJ%gXDffX{Z,XFN=XP XIXLXr XLXB XLvXzXLXM$\Xo^ XL~X@LXCLXEcXE"XOPXCLXCLXCLX CLX CLX CLX CLXXXNgXaFfXLpXJ(XQ\)XCLXCLXCLXCLXCLXCLXCLX]X CLX!CLX"CLXLN :XNCLXPCXRCLXSCLXUz XXCLXYCLXZCLX]OP$X^J:%X_I&XaJ7XdCL*XgH9,XhXXiOP.XjOwXlCLXmCLXoOPXqCL3Xtp!T4XvA{6Xy_ff7XzI8XzF349X}p:Xkl;XqL<XogXOP>XS`f?XGK@XFkAXNQlXOPDXA7EXGFXFGXO XRPXX<XP3Xa Xc&X{P XhE^ Xh(# Xq XpPL !XCL XCLXCLXb XCLXpA XF~XDXkh X{MiXvW XCLXCLXCLXCLXCLXFPXGX{ XjX]%XmJ Xp Xno Xr&fXDqXR XDX_XBR X"Oj+X#CX$EaX'y X)Q X,s] X-a X.ZX/^X0CLX1CLX3CLX4CLX5CLX8OPX9OPX:OPX=CLX@HXAH>XBIXCIRTXFJXIJ}eXW}fX#~ MXsz NXD:yOXCQKPXD;QXU%(RXP'9SXt/ TXCpLVXcP XXEΓYXG[X|\XS?^Xc_X|r `XDEaX{RbXycXuXCLXCLXCLgXm8 XCLXCLXCLXCLmXHnX| oX[M9 XCLXCLXCLXCLXCLXCLXCLwXA4xXOyXP(XOP{Xd33 |X` }Xr~X]XCXF&tX} ~XOPX T5 |X CLXFXGpXG_XOuXCLtXCLXBt XCoK XDkR 5XFH16XGJuXICLXJCL:XLF:;XNEdz<XOQ?XPBnXROPXTCLBXV O CXWL]DXXAEXZYffFX[ypGX\Q HX]GNr LX_gMX`]zNXa34OXb@kPXc@0QXdIRXeKyTXfGPUXgG5VXhEXiOPXkCLYXm~z ZXoA+XqOPXsCL]Xut[ ^Xw]XxOPXzCLaXOXOPXCLdXDVXOPfX^ XCLhXA+iXUoXOPkXQʊ lXi(mXg(nXyE oXaxpX_ qXZ rX^G sXMtXN5uXDXOPXCLxXD- yXMUzXG:XOPXCL}XG~XHDXIyXFXOP~XCLXC XP XcXkX hffX CL X A XCLXOP X@$XCLXCLXGBXCLXOPX"n X#R X&CLX'CLX(CLX+NfP X,rX-YX.\IX1EX3W>X4^)X5].!X6x "X7_ff#X8Ns3$X9K=%X:M&X;LH'XCLX@]XACLXBCLXCCLXDNsXFCLXIC`XKCLXLCLXNz XQCLXRCLXSCLXUOP$XVJ&%XWI%&XZGX]CL*X_H),X`XuXaOP.XbOz XdCLXeCLXhOPXjCL3Xmp 4XoA{6X\7XQ8XFY9Xp_:XiL;XsS3<XnٙXOP>XSA?XGy@XF]8AXOXOPDXAdEXFFXE%GXN#XRYXXfXPXa*} Xa_X{- XhS XhS Xqt Xp !XCL XCLXCLX_ XCLXp< XDXEXkZY XGU Xu XCLXCLXCLXCLXCLX FCX G\X zu X iX ]""X l X o+ X nR X qPX DPX TP*X D^X `I!X B) X OK$X CX E3X !x X "N(z X &o X 'aVfX ([3X )^X *CLX +CLX ,CLX .CLX /CLX 2OPX 3OPX 4OPX 6CLX bHX cH<X dIX eI5GX hJqX kJq}eX]7 }fXBg MX uh NX D6OX CQPX D)iQX U%(RX P'9SX sU: TX CiVX c XX EVYX GzB[X \X Uf^X fs_X | `X CaX {bX |cX uX CLX CLX CLgX l X CLX CLX CLX CLmX H;nX {4oX ZN X CLX CLX CLX CLX CLX CLX CLwX {xX M4yX R34X OP{X c |X a}X s~X ]X CX F 5X ~# ~X OPX +Sb |X -CLX 0EX 1GEGX 2GX 4F^uX 6CLtX 7CLX 9tj X ;o< X Hw6X ?JU5X ACLX BCL:X DEV[;X EC<X FR}#?X HByX JOPX LCLBX N~; CX OJaDX PAEX RpFX SrGX Td\HX UG LX Vi MX Wa{NX XB\OX ZAKPX [@QX \I#RX ]KKTX ^G\UX _GVX `DX aOPX cCLYX } ZX A+X OPX CL]X s ^X ](VX OPX CLaX P1X OPX CLdX DX OPfX ^ X CLhX @iX TpX OPkX Q lX gmX e =nX uW oX aKpX ]z qX X rX ZR sX MtX N uX DkX OPX CLxX CyX KKKzX GX OPX CL}X G~X HYX HރX FQX OP~X CLX BɀX P X bX kX f&gX CL X AOX CLX OP X z X CLX CLX GX CLX OPX nB X Sl X CLX !CLX "CLX %Nr X &v4X ']X (\3X +EYX Ua\X VhX Wg!X XB"X Yn@#X [Y3$X \KT%X ]Mғ&X ^L!'X _K (X b~24 X eCL*X gG} +X hZ*X kCL-X lFTX nOPX pCL0X rzF^ 1X tI 2X vH3X wJ4X xEX yOP6X {]X |CL8X ~E X CL:X FRX CL<X B)=X GX OPX CL@X O-AX HBX C[_X CLX CLEX }R HX A[ IX nz1 JX OKX WLX Y X j ^ X ixB X DGX J3X E*X l3 X i& X JBUX DX {FeX FN=X O?X I$X LX r X LX B X O^X zX LX M$\X o^ X L{X EʘX CLX EjX !EeX "OPX $CLX %CLX &CLX 'CLX (CLX )CLX *CLX -^X /X)X 0a3X 1LQX 2JffX 3Q X 5CLX 6CLX 7CLX 8CLX 9CLX ;CLX CLX ?CLX @CLX BNX DCLX FCX HCLX ICLX K| X NCLX OCLX PCLX ROP$X SJ$%X TI&X WQ^X CL*X H,X W X OP.X OrX CLX CLX OPX CL3X o{4X A{6X X7X Mg8X B`9X p+:X h ;X wL<X o X OP>X S_?X Gc@X FKAX PX OPDX BEX FFX EGX OX T0X ZC3X RX as X `jX z_ X hb X hq7 X q9 X o۔ !X CL X CLX CLX `d X CLX p^ X {LS X EX k) X X u X CLX CLX CLX CLX CLX FX GMX { X iϻX ]""X l X o7 X n& X nX D:X PëX DbX a?X Bf X N5X CX E>X Jx X KN X Njw X OaC3X PZfX Q^X RCLX TCLX UCLX VCLX WCLX ZOPX [OPX ]OPX _CLX bHX cH?lX dI X eI!OX iJX jJ}eX g8}fX 9@kMX s NX D8VOX CPX D+QX UZRX P"SX q TX CwVX c4 XX EYX GW7[X 1\X V^X eV_X | `X BaX {bX { cX uǯX CLX CLX CLgX m9 X CLX CLX CLX CLmX GȬnX {oX [8> X CLX CLX CLX CLX CLX CLX CLwX@#xXK\yXR#XOP{Xc |Xae}Xq~X]XCkX EX$} ~X&OPX)RU |X+CLX.EX0G<X1G X4J0uX6CLtX7CLX:t# X;odZ XG6X?J,OXBCLXCCL:XEDZ;XFAp<XGRH?XHBFXJOPXtCLBXv~' CXwGDXxAJEXzp34FX{rRGX|h(HX~Fs LXiRMX[\NX~OXAPX@uQXI1RXK0>TXG>UXFVXDDžXOPXCLYX}u% ZXA+XOPXCL]Xs ^X\PXOPXCLaXOjXOPXCLdXDuXOPfX^ XCLhX@.iXSXOPkXQ5 lXl =mXiQnXy oXaq\pX]3 qXV rXZ8R sXM tXNuXDXOPXCLxXCyXIOpzXG} XOPXCL}XGgR~XHgXHXF}VXOP~XCLXB8PXPC] Xi|XtfXjXCL X@gvXCLX OP X DMXCLXCLXH9QXXUTR!XVC3"XWl#XXZ$XYK%XZM&X[L'X]Jf(X_~ XbCL*XdGC+Xeb?XhCL-XjFqXlOPXnCL0XpzF^ 1XqHx2XsH3XtI4XuP:XvOP6X]XCL8XHdXCL:XEXCL<XA=XFݱXOPXCL@XNAXHBXBXCLXCLEX} HXRMIXYo JXPaKXWULXXP Xjb Xi XDGXJBUXE9[Xl5h Xj' XJPXDJXzXFQ"XOXIŦXLXr XLX B X LvXzXM XM&.Xo^ XL&XEʘXCLXEpXDX OPX"CLX#CLX$CLX%CLX&CLX(CLX)CLX,YgX-NgX.YgX/L34X0M(X1NX3CLX4CLX6CLX7CLX8CLX9CLX:CLX;]XXSK?XGM@XFKAXQXOPDXB-EXF-FXE}GXO \XTiXZəXRc4Xa, X`@Xz¦ Xh Xhr XpX Xo7 !XCL XCLXCLXa XCLXp3 XE XD̘Xk. X.Xu6 XCLXCLXCLXCLXCLXFXGXz XiҕX]%X0l X2o X3m X6sYX9D,LX:NVX;DrXB XAPPIXCC/XDG6XGx XHS5 XKm XLa9XMZfXN^XOCLXQCLXRCLXSCLXTCLXWOPXXOPXZOPX\CLX_HlX`HFXaIdXbIXfJXiJ}eXJ}fX:d MXt+ NXD6OXCPXCQXTXRXPSXq+ TXCiVXc XXErYXGUE[X\XS""^Xd_X| `XBaXybX{cXvBXCLXCLXCLgXl` XCLXCLXCLXCLmXGuQnX{oX[8> XCLXCLXCLX CLX CLX CLX CLwXA{xXJ(yXT\)XOP{Xd"# |Xa7}Xr~X]XC^XEX#}X ~X%OPX(QJ |X*CLX-EcX/G X0F-X3O"uX]CLtX^CLXat& Xbo8 Xck 5XeG\6XfIXiCLXjCL:XlF;XmJ<XnS%?XoB8PXqOPXsCLBXu~' CXvDF DXwAJEXy^FXzrGX{\HX}Ft LX~iMX[NX~OXA9jPX@&QXIRXKyTXG$UXF,VXDiXOPXCLYX} ZX@XOPXCL]XrE ^X[XOPXCLaXOXOPXCLdXDXXOPfX^ XCLhX@iXRXOPkXQ lXkmXgnXxE oXaipX` qXY rXZ sXM tXN uXDXOPXCLxXCpiyXR HzXG`XOPXCL}XG;~XH<XHtGXFk8XOP~XCLXB X%P X&dX'p3X(f`X*CL X,@`2X/CLX2OP X5` X8CLX9CLX;I6X>CLXAOPXDoK XEUf* XHCLXICLXJCLXMNt XNqXOU<XPSfXSDՏXUPW XVWXWV!XXF"XY]#XZ^$X[K %%X\M&X]LZ'X^J}(X~Ü XCL*XGJY+X^XCL-XFXOPXCL0Xzcz 1XPS2XH3XIZ4XE0XOP6X]XCL8XE*XCL:XEWXCL<XA^v=XFXOPXCL@XOAXHJBXBjXCLXCLEX}f HXE2IX^O JXM>KXWŕLXXb Xju Xj ^ XDQNXJBUXEGXlo Xjb XJ_CXDJX{[XFN=XP XHXLXr XLX B X RX {~XM XM&.Xo^ XL#XEʘXCLXEXDXOPX!CLX"CLX#CLX$CLX%CLX'CLXPCLXSYgXTNgXUcXV_XWT=qXXG XZCLX[CLX]CLX^CLX_CLX`CLXaCLXb]XcCLXdCLXfCLXgNXiCLXlCIXmCLXnCLXp{H XsCLXtCLXuCLXxOP$XyI%XzI&X|KXCL*XG^,XWAXOP.XOXCLXCLXOPXCL3XoN4XA{6XO7XIY8XK9Xq2a:XeY;Xss3<Xm3XOP>XSt?XG9@XFKAXRuXOPDXC$EXF^FXE%GXNXPXV6gXNXaX X`%X{- Xh Xh XpӖ Xof !XCL XCLXCLX_ XCLXq+ XDXEZXkd XOaXup XCLX CLX!CLX"CLX#CLX&FX'GX*z X-iX0]""X1m X2ouq X3m/ X6rX9DX:N~X;D!4X=c{X?B XBPcXCDmXDO2XGx XHM XKmUU XLaXNYfXO^XPCLXQCLXRCLXSCLX}CLXOPXOPXOPXCLXH\pXHC XIXI XJXJ}eX\}fXaw MXsNi NXD7OXDPXD*QXTRXP"SXp< TXDVXd! XXE~MYXG>[X\XU^Xdb_X| `XAvaX{gbX{RcXw >XCLXCLXCLgXlh XCLXCLXCLXCLmXG2JnX{oX\ XCLXCLXCLX CLX CLX CLX CLwXvQxXJ8RyXPXOP{Xf |X`}XsG~XD]XGC3yXHEXK} ~XMOPXPR |XSCLXVEfXWGXXFX[MpuX^CLtX_CLXatK Xbo| Xdkhs 5XfG6XgIعXiCLXjCL:XlIk;XmI<XnT ?XoBXqOPXsCLBXv O CXx@iDX{AEX}kfgFX~qGXxHXF;< LXiMX[NX} >OXAUPX@ QXIRXJāTXG hUXFCVXDfWXOPXCLYX|5! ZX@RXOPXCL]Xr]\ ^XZ,cXOPXCLaXN~XOPXCLdXD;XOPfX^ XCLhX@iXQMXOPkXQ4 lXdmX`nXv0 oXapX]ff qXWL rXZL sX M tX NuXDSXOPXCLxXCi(yXOXzXGJYXOPXCL}XG~XH4XHEX!F`ZX"OP~X$CLX&B X(O X)LX+O4X,KiX.CL X0@.X2CLX5OP X8m X;CLXIEXACLXDOPXGo @X+ @CL@CL@CL@ N* @ r9@ Y@W9@D|@Q>@Yu@W!@xf "@Ws3#@P3$@KT%@M&@L'@J(@Fv @"CL*@$GgR+@%Z@(CL-@*F~@,OP@.CL0@0z 1@1Kjq2@3Hs33@4I4@5E'@6OP6@8]@9CL8@;DY@fCL:@hE@kCL<@mA$Z=@nF@pOP@rCL@@uO?A@vHB@wC0@zCL@{CLE@}} H@~H I@h=R J@LK@WSL@Y: @j @jD @D%@JP@Ed@l @ju @Jm@D@{@FN=@P'T@Ib@L@r @K?@B @O@{@M @M&.@o^ @Kw@Eʘ@CL@E@D@OP@CL@CL@CL@CL@CL@CL@CL@Yg@Q3@a@_@G @G @CL@CL@CL@CL@CL@CL@CL@]@CL@CL@CL@N @CL@C@CL@,OP@/}T @2CL@3CL@4CL@7OP$@8I%@9I:&@CL*@AG,@BW@COP.@DP@FCL@GCL@JOP@KCL3@No4@PA6@SH47@TBL8@U@l9@Wp:@Yal;@ZkL<@[g`@\OP>@]S)?@^Gi@@_FEA@`R@aOPD@bBE@cFF@dEG@eNܻ@Q@V@O3@a_ @`@{b= @hJ @hJ @p @o,| !@CL @CL@CL@b. @CL@pӖ @y @EG@la7 @pu@uS[ @CL@CL@CL@CL@CL@F@G@{ @j@]%@m @o @m_ @s\@DJ@Nd@C@e@-@Bf @P@E@Z$@xt @U9 @ m @ a @ Zf@^@CL@CL@CL@CL@CL@OP@OP@OP@CL@HM@ H8,@!IR@"I@%J @(J }e@T m}fXa* M@js\ N@mD<O@nD*P@oD$VQ@rTTR@sP1S@tp| T@uDAV@we X@yEY@zGb[@{\@|R^@bǿ_@} `@AFa@zHb@{>c@v@CL@CL@CLg@m @CL@CL@CL@CLm@F&n@{4o@]Y @CL@CL@CL@CL@CL@CL@CLw@xx@Jy@Q @OP{@f |@_P}@q}~@]@C @E;@} ~@OP@V |@CL@E?@G.@FK@Flu@CLt@CL@s @p" @!k- 5@#G?6@$I@&CL@'CL:@)J;@*D<@+T?@-A:@/OP@1CLB@3)b C@5}UD@8AgE@:dpF@;lG@<`H@=F L@>@M@?o N@@O34O@AAmP@B@VQ@DI1R@EJT@FFU@GF"V@HDNh@IOP@KCLY@M| Z@N@n@POP@RCL]@Trz ^@VY@WOP@YCLa@N(@OP@CLd@D;@OPf@^ @CLh@@}Bi@P?w@OPk@Qo l@cm@a\n@x o@aHp@[ q@Vk r@X s@M t@Nu@Du@OP@CLx@CL!y@LNz@G4@OP@CL}@F~@H@H>@FU{@OP~@CL@BF@O @Lvf@Mf@Kf@CL @ @CL@OP @q @CL@CL@I{@CL@OP@o @Y @CL@ CL@ CL@ M @[@Hf@J@DZ@Rp@Z@X!@B"@]#@G$@K%@MW&@L+'@Jd(@"U @MCL*@OGJY+@Pb@RCL-@TF@VOP@XCL0@Zzr 1@[Jh2@]H]c3@_I4@`D@aOP6@c]@dCL8@fD@iCL:@kEsZ@nCL<@p@=@qF?@sOP@uCL@@xOA@yHB@zC6]@|CL@}CLE@}R H@CsrI@mR J@L<K@W|L@X$ @kQ @j> @DnQ@J_C@EsZ@ll @j @J|1@D@{@FN=@PC@I2@K4@r @K1C@B @Lv@zю@L@M(@o^ @K@Eʘ@CL@Ep@D@OP@CL@CL@CL@CL@CL@CL@CL@Pg@N0@`Vf@_@G @G @CL@CL@CL@CL@CL@ CL@!CL@"]@#CL@$CL@&CL@'M@)CL@,C<@-CL@.CL@2A2@5CL@6CL@7CL@:OP$@;IA%@Pzc@ACL*@DG-,@EW@FOP.@GP |@ICL@JCL@LOP@NCL3@yoN4@{A6@~J,7@E8@D9@o:@d;@jY<@lfg@OP>@R?@F)@@F7A@R@OPD@BE@FF@E\G@N@Q@V3@Pf@a$ @`̬@{g @hׄ @hׄ @p| @o !@CL @CL@CL@`S @CL@q @C@EsZ@m- @m@u65 @CL@CL@CL@CL@CL@F@G$@{LS @j ;@]%@n% @o @m) @r@C@Qc@Ca@f@B @OȮ@F@b@ xe @ LN @ r @a&f@Y\@^@CL@CL@CL@CL@CL@BOP@COP@DOP@FCL@IH5s@JH+z@LI,@MHx@PJ @SJ }e@Y&}f@(h M@msj N@oDEO@pD62P@rDQ@uTR@vP1S@wp3 T@xDV@ye^ X@{E)Y@GV>[@A\@Uj^@b_@}9 `@Aa@{ǯb@|Qc@v@CL@CL@CLg@l @CL@CL@CL@CLm@FQn@{o@] @CL@CL@CL@CL@CL@CL@CLw@yx@LaHy@O@OP{@gfg |@`}@oW~@]@ BZ@ Em@ ~ ~@OP@V׬ |@CL@E[@GC@GQ@J6u@CLt@!CL@#s @$pZ @%k/ 5@(Gv96@)I @+CL@,CL:@.K82;@/J<@0Ue?@1B@3OP@5CLB@7U C@9z9D@\F@?j34G@ATH@BE L@C@M@lo N@mNO@nA"P@o@Q@pIR@qJT@rFU@tFV@uD @vOP@xCLY@z{/ Z@{@}B@}OP@CL]@rz ^@X@OP@CLa@M@OP@CLd@D- @OPf@^ @CLh@@ui@O4m@OPk@Q, l@cm@affn@uz o@acp@[Q q@W3 r@[z s@Mt@Nu@D^\@OP@CLx@CScy@Jz@G&"@OP@CL}@F~@GO@H$i@FJ@OP~@CL@B8P@O @P@Qs4@Nə@CL @@;@CL@OP @uS[ @CL@CL@I>@CL@OP@ pPL @ YQ @5CL@6CL@7CL@:M @;`@@ R-?@ F@@ F#A@ RR@ OPD@ BˬE@ F^!F@ EFG@ NR@ VI@ [c3@ T3@ aI& @ `@ |lZ @ i\ @ h @ p^ @ n !@ CL @ CL@ CL@ d D @ CL@ r]\ @ F @ EV@ m4 @ ݏS@ u' @ CL@ CL@ CL@ CL@ CL@ F@ GD@ {Z @ j@ ]%@ n}[ @ o+ @ mZY @ o@ C@ Oqa@ (B}@ )g@ ,Bp @ /Q-@ 0H@ 1n?@ 4xe @ 5U @ 8lww @ 9a3@ ;Z @ <^@ =CL@ >CL@ ?CL@ @CL@ BCL@ EOP@ FOP@ GOP@ ICL@ LH%!@ NH!@ OIr@ PH6@ SJ @ TJ }e@ Qs}f@#~ M@ s N@ DJ)O@ DVIP@ D Q@ T"R@ P1S@ o T@ E%V@ f` X@ EY@ G`[@ O4\@ UU^@ b8_@ }r `@ @ۘa@ {>b@ {c@ u@ CL@ CL@ CLg@ mX @ CL@ CL@ CL@ CLm@ Fn@ {o@ ^ @ CL@ CL@ CL@ CL@ CL@ CL@ CLw@ zx@ L#y@ O@ OP{@ g |@ `х}@ o~@ ]@ B@ Es@ ~ ~@ OP@ XE |@ CL@ E@ GU6@ Gf@ Pu@ !CLt@ "CL@ $sF @ %pi @ 'k 5@ )Gw 6@ *I@ TCL@ UCL:@ XLG;@ [JZ<@ \U?@ ]A@ _OP@ aCLB@ cc C@ ewLD@ hATE@ kW\)F@ llRG@ mW\)H@ nE L@ o@M@ pm N@ qN O@ rAP@ s@Q@ tH"R@ uJMT@ wFbU@ xFnV@ yDP@ zOP@ |CLY@ ~| Z@ @;@ OP@ CL]@ rn ^@ W/X@ OP@ CLa@ LM@ OP@ CLd@ DQN@ OPf@ ^ @ CLh@ @ui@ N@ OPk@ Qb l@ bm@ `Hn@ vq o@ a+p@ YǮ q@ S r@ Vp s@ Lt@ N,u@ DYH@ OP@ CLx@ CScy@ Iz@ G@ OP@ CL}@ Fݱ~@ Gf@ HG@ FG@ OP~@ CL@ BN@ O2 @ L@ Mp@ K @ CL @ ~l^ @ CL@ #OP @ &y#; @ )CL@ *CL@ ,I@ /CL@ 2OP@ 5p| @ 6Y > @ 9CL@ :CL@ ;CL@ >L @ ?l@ @X@ APS3@ DD-@ FP(@ GWR@ HVG!@ IBL"@ J[#@ KT$@ LK %@ MM&@ NL>'@ PJ4(@ Q@6 @ SCL*@ UG+@ VZ)@ CL-@ F@ OP@ CL0@ zu 1@ I+2@ H+g3@ IzF4@ D@ OP6@ ]@ CL8@ D@ CL:@ E#@ CL<@ @=@ F@ OP@ CL@@ O?A@ HB@ B4@ CL@ CLE@ }f H@ }I@ Z\ J@ LtK@ WL@ Ya @ k) @ j @ D@ Jm@ E@ m @ kK @ J@ Df@ {@ FN=@ P_@ IZ@ L@ r @ KT@ B @ P@ z@ M @ M @ o^ @ K@ Eʘ@ CL@ EV@ D@ OP@ CL@ CL@ CL@ CL@ CL@ CL@ CL@ _g@ Q0@ a@ YG@ HT@ IG @ KCL@ LCL@ MCL@ NCL@ PCL@ QCL@ RCL@ S]@ TCL@ UCL@ VCL@ XNr@ ZCL@ \C@ ^CL@ _CL@ aB\@ dCL@ eCL@ fCL@ iOP$@ jIع%@ kI4&@ mK!G@ pCL*@ sG5,@ tW@ uOP.@ vPf@ xCL@ yCL@ {OP@ }CL3@ oʭ4@ A6@ JS37@ Bf8@ {9@ nu]:@ d;@ tf<@ lf@ OP>@ RǴ?@ F@@ F A@ S.@ OPD@ B1E@ F;F@ EG@ N@ Ti@ YS3@ Q@ a @ cR@ |X @ i @ i\ @ p3 @ n !@ CL @ CL@ CL@ _Z @ CL@ r @ ~ @ E@ n0 @ @ u' @ CL@ CL@ CL@ CL@CL@Ft@Ge@{w @jd@]%@n @pA @ mK @#r#3@&C=@'T@(BE@)iE@+Bf @/P!@0K)@1z@4xWc @5LC& @8lU @9a@:X @;^@=CL@>CL@?CL@@CL@ACL@DOP@FOP@GOP@ICL@tH@uH@vIfL@xHe@{J @~J }e@ X}f@ $~\% M@sk N@DJ)O@DSP@D"(Q@TXR@PRS@o T@En\V@f X@EY@Gd[@\@Sff^@c4_@}8 `@@!a@{b@zW c@v@CL@CL@CLg@my @CL@CL@CL@CLm@F1n@{4o@_x @CL@CL@CL@CL@CL@CL@CLw@tHx@JW y@Q@OP{@h33 |@_}@p,V~@]@ B@ E@~ ~@OP@=X  |@?CL@BF@DGz@EGx@HKu@JCLt@KCL@Nsw @Oqy @Pl8 5@RG6@TI@VCL@WCL:@ZL~;@[E<@^V/?@_Af@aOP@cCLB@e C@guD@jA\XE@laF@mlRG@nfH@oE{ L@pfM@rW N@suRO@tAP@u@.Q@vHR@wJPT@FU@FZV@D@OP@CLY@}R Z@@;@OP@CL]@sF ^@V1@OP@CLa@L(@OP@CLd@D@OPf@^ @CLh@@i@M @OPk@Q>j l@mm@fn@x&f o@a^p@_ q@Y8R r@Z s@LUt@Nu@D\@OP@CLx@Cay@Qz@G-a@OP@ CL}@ Fs~@G@GW@FE@OP~@CL@B5@N̒ @_@ci@[3@CL @ O @"CL@%OP @({/9 @+CL@,CL@.J@1CL@4OP@7p @8X @:CL@CL@?CL@@CL@C_\@DYg@Eavg@FY@GG @IG @KCL@LCL@MCL@NCL@OCL@PCL@QCL@R]@TCL@UCL@VCL@WN@YCL@\C@^CL@_CL@aA@cCL@dCL@eCL@hOP$@iIF%@jIO&@GƩ@CL*@G,@V@OP.@Pw:@CL@CL@OP@CL3@o4@A6@7@|8@y29@n:@q;@wg<@uL@OP>@Rn^?@F@@EA@Ry@OPD@BE@FF@EnG@N@U@ZVf@S@a @X4%@|Y @iLl @i\ @p @n$ !@CL @CL@CL@c_ @CL@r @y{ @DG@n`* @  @ u65 @CL@CL@CL@CL@CL@F@G@{/ @jر@ ]%@!o @"p @#m. @&nI@*Cz@+QG@,A@-j@/B: @2PMf@3ML@\@_xe @aV"q @di @ea#3@fW@g^@hCL@iCL@kCL@lCL@mCL@pOP@qOP@rOP@uCL@xHG@yH"i@zI]8@{H`@~J @J }e@ es}f@N~ M@s N@DDuO@DBP@D:Q@TXR@P@.S@o T@EXV@g( X@EY@G`[@ҳ{\@U[^@d%_@}G `@@a@{\*b@zfgc@v@CL@CL@CLg@m` @CL@CL@CL@CLm@Fvn@{o@_

    @RH.?@Fk@@EA@R@OPD@BEE@EF@EY<G@N@R)@Vp@Oc3@bi @Op@}  @ixB @i= @o @n$ !@CL @CL@CL@`P @CL@r @E@B"@ n}[ @ E@u65 @CL@CL@CL@CL@CL@F@G@F{ @Hj֏@K]%@LoI @Mq @Nm @QsP@TC@UNP@W},&@Xk}@ZB @]P_@^M@_|Y@bxe @cK @gkff @ha@iXf@j^@kCL@lCL@mCL@oCL@pCL@sOP@tOP@uOP@wCL@{H @|H#P@}IU @~Is@J)@J)}e@ YR}f@O~> M@t0 N@DEO@DJP@D5Q@TR@PRS@o T@EV@g6 X@FY@Gf[@׳l\@Rq^@dR_@}c `@@ua@|{b@zc@wG@ CL@ CL@CLg@n% @CL@CL@CL@CLm@Fj<n@{\o@_

    H (/Ee L (0qGM (2f=qN (3@O (4AP (5@UQ (6HR (7IT (8FnU (9FRmV (:D (;OP (eCLY (g~Ü Z (h@ (kOP (mCL] (ot!N ^ (qa^ (rOP (tCLa (wQ7 (xOP (zCLd (|D (~OPf (^  (CLh (@Ri (V (OPk (Q ' l (nm (hffn (uٚ o (a&4p (^# q (Y = r (ZǮ s (LUt (Nu (Db (OP (CLx (C~y (L-z (Fm (OP (CL} (F5~ (G (G (F>K (OP~ (CL (BM (N4]  (\ (` (ZL (CL (~@ (CL (OP (C (CL (CL (I (CL (OP (p|  (X (CL (CL (CL (Jֶ  (s< (_ (W0 (Cb (-Y (.` (/m! (0J" (1DS4# (2d34$ (3Kl% (4M[& (5Lm*' (6IЍ( (7@G} (9CL* (;G`+ (=Y (?CL- (AFݱ (COP (ECL0 (G{ 1 (HIҏ2 (JH;3 (KI]84 (MD4 (NOP6 (P] (QCL8 (SEd (VCL: (XE# ([CL< (]Ae= (^F (`OP (bCL@ (eO zA (fH4B (gB (CL (CLE (|& H (BI (of J (IvK (W@L (X  (l5h  (k)  (DY (J|1 (E (m  (k  (J  (E (| (FT (P'T (H (L (r  (KT (EV (P ({H (M  (M) (o^  (K (@L (CL (E (D (OP (CL (CL (CL (CL (CL (CL (CL (_\ (Ng (d< (Z=q (G  (G (CL (CL (CL ( CL ( CL ( CL ( CL ( ] (CL (CL (CL (NV (CL (C (CL (CL (A (CL (CL ( CL (#OP$ ($I-% (%I& ((M  (*CL* (-G, (.VL (/OP. (XPf (ZCL ([CL (^OP (`CL3 (bo4 (dA6 (gJ7 (hB8 (iwff9 (lo;/: (mi@; (nx< (op (pOP> (qR? (rFP@ (sEpA (tSm] (uOPD (vB֐E (wERF (xEDgG (yN& (}Rvg (~V (Oc3 (b!Q  (IXi (|Y  (i  (i=  (o۔  (n ! (CL (CL (CL (dM  (CL (rk  (|=  (@ (nQ  (ÅQ  (uD  (CL (CL (CL (CL (CL (F[ (G ({  (j (]% (of  (qes  (mQ  (o (Co (O!I (v (l (Bh  (Q (N (v (xt  (UW  (k  ( aL (!X  ("^ (#CL ($CL (%CL ('CL ((CL (+OP (,OP (-OP (/CL (3H (4H( (5IRT (6I- (9J  (:J }e (T/}f (~q M (Usz N (WDHO (XD#P (YD5Q (T%R (PnS (o T (E6V (g X (FA,Y (Ge[ (.\ (Q}^ (eU_ (} ` (@a (|{b ({\c (v (CL (CL (CLg (m_ (CL (CL (CL (CLm (F\n ({o (_Ql (CL (CL (CL (CL (CL (CL (CLw (Affx (Oy (Q (OP{ (g | (_a} (r"S~ (] (Bl (E ( O ~ (OP (WY | (CL (F/ (G9 (G (P u (CLt (CL ( s  ( r-  ( lp 5 (GP-6 (I  (CL (CL: (Lz; (E߅< (W? (Aҩ (OP ( CLB ("@-SC (#Gv=D (LAE (Na34F (Ok >G (PeGH (QE L (RRM (SP(N (T]O (UBP (WAJQ (XHHR (YILT (ZFiU ([FQV (\D (]OP (_CLY (a7 Z (b@ (dOP (fCL] (ht4 ^ (jc (kOP (mCLa (pR (rOP (tCLd (vDZ (xOPf (z^  ({CLh (}@Ri (~VN (OPk (P: l (mm (gn (vǮ o (aKp (^ q (Y r (Z{ s (Lkt (Npu (Dg (OP (CLx (C~y (J#z (F/ (OP (CL} (F~ (G (G (F>K (OP~ (CL (C (M  (`g (f ([vf (CL (~24 (CL (OP (@X (CL (CL (IL (CL (OP (p^  (XN (CL (CL (CL (J}  ( rɚ (!a  ("W` (%CG ('W ((_ ()]=q! (*Gfg" (+{# (,Y@$ (-K% (.M & (/L\' (0Ia( (1@eH (3CL* (5GJY+ (6bP (9CL- (;F (=OP (?CL0 (A{ 1 (BHZ2 (DH$3 (EIZ4 (FD (GOP6 (I] (JCL8 (MEz (OCL: (zE9[ (}CL< (AO= (F (OP (CL@ (OOA (H4B (C< (CL (CLE (| H (@PI (T J (I;!K (WSL (X  (lo  (k  (DX (J|1 (E (m4  (l5h  (J  (D- (|9 (FN= (PC (I (L (r  (K (EV (Lv ({H (M  (M1  (o^  (K (@L (CL (E (D (OP (CL (CL (CL (CL (CL (CL (CL (_@ (Pg (cVg (\ (G  (G (CL (CL (CL (CL (CL (CL ( CL ( ] ( CL ( CL ( CL (N  (CL (C (CL (CL (@@. (CCL (DCL (ECL (HOP$ (IIq% (JI& (LJͤ (OCL* (RG, (SW (TOP. (UPm" (WCL (XCL (ZOP (\CL3 (_o4 (aA6 (dEg7 (eF38 (fHL9 (hos%: (jc ; (krfg< (lmFf (mOP> (nR]? (oF9@ (pEA (qS0 (rOPD (sBE (tEF (uE2JG (vN# (yO (zU) ({NL (a  (D (}*I  (iމ  (iLl  (of  (nn ! (CL (CL (CL (`  (CL (r1  (@R (~  (m  ( (uD  (CL (CL (CL (CL (CL (F| (GL ({  (j (]% (o  (q^  (m  (sY (CL ( O1 ( oo ( lT ( Bٚ  (P (O) (qbD (xt  (KW  (jff  (a (X (^ (CL ( CL (!CL ("CL (#CL (&OP ((OP ()OP (+CL (.G (/H2 (0IO (2I\ (5J  (8J }e (Zc}f ( ~ M (zs N (|DHO (}D_P (~D0Q (U R (P|S (of T (EQ:V (f X (FEY (Ga[ (R\ (U ?^ (fQ_ (}9 ` (@fa (zub ({c (x> (CL (CL (CLg (m (CL (CL (CL (CLm (FHn ({4o (_x (CL (CL (CL (CL (CL (CL (CLw (\x (Qfy (O34 (OP{ (gUV | (_} (pX~ (] (B\ (E (~' ~ (OP (V׬ | (CL (F( (G9 (Gx (IQnu (CLt (CL (s  ( qR  ( ldZ 5 (4G(T6 (5I (7CL (9CL: (O (SBHP (TAQ (UHRR (VIظT (WFcU (XFSTV (YDR (ZOP (\CLY (^ Z (`@Q (bOP (dCL] (ft4 ^ (hfF (iOP (kCLa (nSZ (oOP (CLd (E  (OPf (^  (CLh (@i (UI (OPk (P l (nm (iQn (v=q o (afp (]\ q (X. r ([ = s (Lt (N~u (Do  (OP (CLx (C4y (P|z (Fݱ (OP (CL} (F~ (Gv (Gn (F>K (OP~ (CL (C  (MS  (` (gvf (\ (CL (}X ( CL ( OP ( Ci ( CL ( CL ( Jt ( CL ( OP ( pA  ( X G ( CL ( CL ( CL ( I8  ( q ( _6f ( U ( "C4^ ( $W ( %_( ( &]L! ( 'xs4" ( (]# ( )I$ ( *K% ( +M/& ( ,Lb<' ( -IzF( ( /@D ( 1CL* ( 3GQ+ ( 4\ ( 6CL- ( `F ( bOP ( dCL0 ( f{/ 1 ( hQz2 ( iH$3 ( kIW4 ( lD ( mOP6 ( o] ( pCL8 ( rE ( uCL: ( wE@ ( zCL< ( |AK= ( }F~ ( OP ( CL@ ( NA ( HB ( C< ( CL ( CLE ( |R8 H ( ~I ( c'\ J ( I;!K ( WOdL ( Y  ( ll  ( k  ( DX ( J ( EV ( n  ( lR  ( Jā ( D ( {ey ( FN= ( P e ( I"7 ( L ( r  ( K ( EV ( Lv ( {H ( L ( M4 ( o^  ( K ( @L ( CL ( E\ ( D ( OP ( CL ( CL ( CL ( CL ( CL ( CL ( CL ( `g ( P ( avg ( \( ( G  ( G ( CL ( )CL ( *CL ( +CL ( ,CL ( -CL ( .CL ( /] ( 0CL ( 2CL ( 3CL ( 4N ( 6CL ( 9C ( ;CL ( ( R/? ( F$@ ( E{FA ( S ( OPD ( BtE ( ESF ( E!G ( M ( V3 ( \ ( T ( b   ( }C ( |,  ( j  ( i[  ( o7  ( n`* ! ( CL ( CL ( CL ( cM  ( CL ( q^  ( A ( ~Ü  ( mi  ( G B  ( uD  ( CL ( CL ( CL ( CL ( CL ( Fm5 ( Fُ ( {  ( j. ( ]% ( p3  ( qˈ  ( l  ( q ( C ( TF ( i ( l ( B)  ( OyR ( OG ( k ( x  ( Sa  ( s  ( a0 ( [f ( ^ ( CL ( CL ( CL ( CL ( CL ( "OP ( #OP ( $OP ( 'CL ( *G ( +H8, ( TIL ( UI ( XJ  ( ZJ }e ( \}f (~ M ( ts N ( vDMO ( wD`P ( xDQ ( {UNR ( |PS ( ~sl T ( E4V ( fo> X ( FDY ( G\[ ( '\ ( SN^ ( e_ ( }r ` ( @fa ( Ab ( C+c ( A ( CL ( CL ( CLg ( m|# ( CL ( CL ( CL ( CLm ( F?n ( {go ( ^j ( CL ( CL ( CL ( CL ( CL ( CL ( CLw ( Ax ( Ky ( O ( OP{ ( g"# | ( _]} ( n5~ ( ] ( BR ( En ( ~ ~ ( OP ( W | ( CL ( F ( GK ( !G` ( $HPu ( &CLt ( 'CL ( *s  ( +q  ( ,l 5 ( .F6 ( /Ii ( 1CL ( 2CL: ( 5L; ( 6BL< ( 9XI? ( ;B" ( =OP ( ?CLB ( A@JeC ( BAOD ( CAHE ( E[\F ( Fj{G ( GnfgH ( HER L ( IQfM ( JON ( L\ffO ( MB,P ( NA+Q ( OHR ( PIþT ( QF_U ( RFVV ( SD7 ( TOP ( VCLY ( ~Ü Z ( @gv ( OP ( CL] ( t ^ ( e ( OP ( CLa ( SB' ( OP ( CLd ( DX ( OPf ( ^  ( CLh ( @i ( T'0 ( OPk ( Pl l ( lm ( gGn ( vQ o ( a#p ( Z( q ( T r ( V s ( Lt ( N;u ( D_ ( OP ( CLx ( Cpy ( Qz ( F ( OP ( CL} ( F~ ( Gf ( G ( F7 ( OP~ ( CL ( C= ( M  ( a ( g ( \@ ( CL ( }; ( CL ( OP ( F ( CL ( CL ( I{ ( CL ( OP ( of  ( X_ ( CL ( CL ( CL ( I\  ( rC4 ( _ٚ ( V ( Co ( U) ( ] ( H[)! ( Iyg" ( J_S3# ( K{$ ( LK % ( MM & ( NL[' ( OI3( ( P@ ( RCL* ( TG+ ( Ub& (DQ (GCL* (JGT, (KW (tOP. (uPz (wCL (xCL (zOP (|CL3 (o{4 (A6 (Pff7 (H&g8 (qٚ9 (oz: (jٙ; (x< (sL (OP> (Rz? (F @ (Eh:A (S (OPD (BDE (EF (EG (MM (XFg (]9 (Uf (b,R  (uP (}s  (jSk  (ii  (o  (nQ ! (CL (CL (CL (a  (CL (q^  (c  (|  (m4  (H]  (uD  (CL (CL (CL (CL (CL (FcA (F ({/  (jtG (]% (o+  (q  (l  (pc3 (C (T (c (l (B  (O2 (O (f& ( x  ( L  (kU  (a) (Y (^ (CL (?CL (ACL (DOP (EOP (FOP (HCL (KG݄ (MH6[ (NIB (OI g (RJ  (SJ }e (\Ҹ}f ( * M (ms N (oDIsO (qDQP (rCQ (uUR (vPS (w@=T (En\V (f X (Fy$Y (GJ[ (}\ (S}^ (d_ (} ` (B<a (A}qb (Ac (~ (CL (CL (CLg (m (CL (CL (CL (CLm (G2Jn (|go (^ (CL (CL (CL (CL (CL (CL (CLw (~x (N>y (N> (OP{ (h | (^I} (q*1~ (] ( Br ( Et (  O ~ (OP (X | (CL (F (G; (Gdm (M\u ( CLt (!CL (#sB  ($q  (%l1 5 ((G0z6 ()I (+CL (,CL: (/M; (2K< (3Y? (4B) (6OP (8CLB (:@XC (<}D (?AA;E (i^34F (jlRG (l\ffH (mE* L (nQfM (oON (p\O (qB@LP (rAJQ (sHAR (tI?T (uFZU (vFWV (xD@ (yOP ({CLY (}|& Z (~@Q (OP (CL] (t4 ^ (d (OP (CLa (R (OP (CLd (DQN (OPf (^ (CLh (@i (S. (OPk (P l (fHm (fGn (x}q o (ap ([=q q (V{ r ([k s (LUt (Ou (Ca (CL (CLx (By (Oz (Fs (OP (CL} (F~ (GT (G (F0 (OP~ (CL (Ca (M0  (l (p3 (cf (CL (~ (CL (OP (E% (CL (CL (H (CL (OP (1p  (2\+x (5CL (6CL (7CL (:I  (;qfg (<_g (=V (@C  (B`k (Cg (DeH! (Eh" (FN# (Hv$ (IK% (JM06& (KLZ ' (LJ5e( (M@H6 (OCL* (QGX+ (R]p (UCL- (WFm (YOP ([CL0 (]| z 1 (^JS2 (`H;3 (aI>[4 (bDa (cOP6 (e] (fCL8 (hD (kCL: (EO (CL< (@= (F (OP (CL@ (O A (HB (B (CL (CLE ({/ H (DdI (W< J (|5: K (WXL (^-  (m<8  (lR  (DY (J (ET (nB  (ll  (J (D ({14 (FN= (O (I' (L (r  (K (B  (Op ({J (L (M  (o^  (S' (Eʘ (CL (E& (ER (OP ( CL ( CL ( CL ( CL (CL (CL (CL (dP (Ng (avg (Cp (} > (z (CL (CL (CL (CL (CL (!CL ("CL (#] ($CL (%CL (&CL ((N (*CL (,C$ (.CL (/CL (3BF (]CL (^CL (_CL (bOP$ (cIF% (dI& (gMv (jCL* (lG, (mW (nOP. (oP (qCL (rCL (uOP (wCL3 (zoX4 (|A6 (~X 7 (X8 (Gfg9 (o|: (j; (zS3< (u4 (OP> (R6? (E@ (EMA (T_ (OPD (BE (EF (DG (Mɰ (Z` (` (X (b  (o (}?  (j  (ixB  (ouq  (nB ! (CL (CL (CL (b[  (CL (q  (@n ({  (nQ  (ڟM8 (uS[  (CL (CL (CL (CL (CL (F] (F/n ({/  (jU (]% (o7  (qt  (l  (o (CwZ ($RϠ (%^ (&lY ((Bf  (+OA (,PUU (-bC (1x  (2P  (5s  (6a  (7[f (8^ (9CL (:CL (CL (AOP (BOP (DOP (FCL (IG (JH9 (KI?C (LI% (PJ  (QJ }e (j}f (#~ M (sz N (DLMO (DmP (D$Q (UȕR (PS (AT (EV (g~8 X (FNY (GUE[ (p\ (P)?^ (dJ_ (} ` (Ca (Bb (C34c (Au (CL (CL (CLg (mw (CL (CL (CL (CLm (H@Tn (|io (_x (CL (CL (CL (CL (CL (CL (CLw ({x (Jy (NR (OP{ (h | (]} (p~ (] (C`@ (F* ( Fv ~ ( OP (X6 | (CL (F# (GH. (Gr/ (O#u (CLt (CL (!s  ("qR  (#k/ 5 (%G}x6 (&I (PCL (QCL: (TMK; (WH|g< (YYxA? (ZBE (\OP (^CLB (`@`2C (aJ~D (bAA;E (d[QF (esG (fZH (gD L (hQRM (jO)N (k\4O (lBTP (mA1nQ (nHR (oI%T (pFOU (qFT<V (rD_ (sOP (uCLY (w}I Z (x@Q ({OP (}CL] (t ^ (fV (OP (CLa (R (OP (CLd (DJ (OPf (^ (CLh (@ui (R9 (OPk (Pv l (mm (lzn (wf o (`p ([ q (T r (W3 s (Lt (Ou (A (CL (CLx (B)y (JJz (F5 (OP (CL} (FxC~ (Gr (GR (F" (OP~ (CL (C/ (M  (]g (aY (\, (CL (|& (CL (OP (A$ ( CL (!CL (#H (&CL ()OP (,p  (-Z" (0CL (1CL (2CL (5I  (62 (7kI (8c3 (;C0 (=W (>_G (?]z! (@D@" (Am# (BR$ (CJ% (DMMd& (ELkX' (FJ( (G@} (ICL* (KGC+ (LZ< (OCL- (QG (SOP (}CL0 ({H 1 (I{Q2 (H 3 (I84 (ENb (CL6 (] (CL8 (Cp (CL: (E9[ (CL< (@= (F (OP (CL@ (OA (HB (C0 (CL (CLE ({ H (B78I (f( J ({ K (WL (]y  (mYk  (lo  (E* (J (E (n}[  (m  (Jn (E ({/ (FN= (O (Ii (L (r  (K  (EV (L7 ({H (L (JP (o^  (TeS (Eʘ (CL (Eij (D (OP (CL (CL (CL (CL (CL ( CL ( CL ( `3 (Yg (avg (G > (_ (_ (CL (CL (CL (CL (CL (CL (CL (D] (FCL (GCL (HCL (IN (KCL (NC  (PCL (QCL (SA (UCL (VCL (WCL (ZOP$ ([I% (\I& (_J (bCL* (dG, (eW( (fOP. (gQ, (iCL (jCL (mOP (oCL3 (qol/4 (sA6 (v^ 7 (wQ8 (x@9 ({pp: (}iL; (~y@< (tg (OP> (R ? (E@ (E<A (SP (OPD (D`E (EjF (DG (M (XP (^ (Vfg (b|z  (jY7 (}f  (jH  (i  (of  (n4a ! (CL (CL (CL (aD  (CL (q  (A (z %  (n0  (FZ  (ua  (CL (CL (CL (CL (CL (FI (ER (|=  (jt (]% (ouq  (q  (lH  (p6f (CnP (Tq (Z7 (k (B)  ( O (!PP ("_ (&x0  ('NE  (*s  (+` (,[f (-^ (.CL (0CL (1CL (2CL (3CL (6OP (7OP (9OP (;CL (>G\ (?H; (@I8 (AI& (EJ  (FJ }e ([}f (!~ Mt N DRO!D/P"DQ&V\R'PgS(r T)ERV*g~8 X,F4Y-GJ[/\0T,^3d_4}U `6Ca7BǮb8CaHc:CdCLeCLfCLgimv kCLlCLnCLoCLmrHh:nu{pov__ xCLyCL{CL|CL}CL~CLCLw{xLyQOP{h |`v}p~]CF_ ~OPX. |CLF:GS GF^LuCLtCLs r l^6 5G6I|CLCL:LR;D4<Y?BEOPCLB@`2CKDA=\EaFmpGX{HD, LQfMON\4OBjhPAbQHؒRI~ITFLUFVVDOPCLY}R Z@Je,OP.CL]0tj. ^2h3OP5CLa8S@9OP;CLd=D|?OPfA^BCLhD@uiFQ$!HOPkIP lJkpmKjGnLxxR oO`OpQ\ff qRW = rTYR sULtVO2uWAO6YCLZCLx\Ay]Pz_FsaOPcCL}eFq~gG_F$F$OP~CLCL!ML ^gag\gCL } CLOP @"CLCLHCLOPpA Yc CLCLCLJ va<\\CCU]R[!m"]f#{$J%M_&LvG'J(@:gCL*F+]!CL-G )OPCL0 { 1 H62 H:3 I3v4FCL6]CL8ACL:E9[CL<@=F?!OP#CL@&OA'HB(C*CL+CLE.{Z HX@I[o J\K0 K]WBL^\~g am bl8 cE*dJfEgn hm<8 iJnjElzsmFN=pOrIjsLwr yK |EV}Re|LJPo^ QEʘCLE}MEeOPCLCLCLCLCLCLCL`ɚ_fcVgBR__CLCLCLCLCLCLCL]CLCLCLN CLDCLCLAOCLCLCLOP$I%I&G,CL*G,W'OP.Q1BCLCL!OP#CL3&oo4(A6+Z97,T8,D9/p:1o;2z3<3{,4OP>5RYz?6Ea@7E@TA8T&h9OPD:GE;EYFiiAO"DCLkGPH lHpGmInnLPoNapx[\) qyV rzX3 s{Lt|O u}BCLCLxA^vyN^zN CLCL}FE~GPJFK;F,.OP~CLC6]M+ \g\CL } CLOP mJ CLCLI=CLOPp Z4 CLCLCLJ iSPgCH=qON>![3"H9#g $J8%M&Lc'JP(@H6CL*F+[CL-GgOPCL0 { 1 Q 2 Hi3I%4ECL6]CL8AO@CL:BEZECL<G@=HF?JOPLCL@ONTAPHBRCTCLUCLEW{/9 HXHӻIYW JZKć K[WL\]w _me `l aEZbJdFRen fmv gJhEIjzkFnnO`pHqLtr vKjzEV{Lv|1LJ2o^ QEʘCLEE3OPCLCLCLCLCLCLCL^NgavgY >XQG CLCLCLCLCLCLCL]CLCLCLNCLDCLCLBCL CL CL OP$ I٢%IY&QCL*H0,WlrOP.PwCLCLOP!CL3$o5z4&A6)Z37)T98*C339-q*:/v;0v`<1xٙ2OP>3R}?4E$@5EMA6S#7OPD8HE9EK6F:DG;N+>Xl?^@VAbi Bc/C}d nk=" piQ qo,| rn0 !uCL vCLwCLyc>k }CLqt @Qw m4 Gu CLCLCLCLCLF1E0|} jw]%o q l sYCXO,U#iBf QQ%Y\,x SDY m33 a@Z3^CLCLCLCLCLOPOPOPCLGHB$I1I*cJ J }eU}f~jK M=s2 N@DVOACrPBD QEVwLRFP;SGq3 THFVJg XLFZrYMGE[NEM\OS"^RcS_S} `VBHaWEbXBcY@:[CL\CL]CLgam cCLdCLeCLfCLmiGnl{4on_J CLCLCLCLCLCLCLw{ xMffyO\OP{iUV |_}n~]Cj\E)b ~OPW>' |CLF1GeGPuCLtCLso q l 5G?6IkCLCL:L l; K< Zز? A: OP CLB @nC ED A1E Z\)F i\*G fH D L SHM QN ^aHO BP A|Q HR IXT F?fU F]LV Dm OP CLY "~ Z #@Q %OP 'CL] )tU ^ +h ,OP .CLa 1S 2OP 5CLd 7}  bCLf c^ dCLh gQi jP* mCLk pO l qr\m rp=qn uPo vap y\L q zV r {Y=q s |Lt }O u ~BH CL CLx A^vy O_z K?m CL CL} F7 ~ Gp F+ F1 OP~ CL CSc M [  ci m d  CL  7  CL OP  h6  CL CL H CL OP p  Zh  CL CL CL K@M  x` a `ɚ C!  Su [ Z! l" RFf# k4$ J7% M& Lm*' K ( @?~ CL* F+ (]  +CL- -Gg /OP 1CL0 3{ 1 4Mշ2 6H=3 7IS4 8E :CL6 ;] A+ ACL: CCa FCL< H' = IF? KOP MCL@ PNoA QHB RC TCL VCLE X{ H YFOI Zc$ J [`CC K \XL ]]<  `n  am  bE* cJ  F n  m  J EI {ey FN= O IM L r  K EV Lv |_j M  J+g o^  Q Eʘ CL En FG OP CL CL CL CL CL CL CL a3 Pg avg ^\ G  G  CL CL CL CL CL CL CL ] CL CL CL N  CL C CL CL B? CL CL CL OP$ I% IY& M CL* H#P, W OP. Q6N CL CL OP "CL3 %oPy4 'A6 )L37 *I 8 +F9 Vq=: Xvg; Ywf< Zw4 [OP> \RS? ]Ep@ ^ELA _Ss `OPD aG(E bE?lF cDG dN(E gc3 hk@ ib, jbz  k`R l}  ok)  piQ  ro  sn% ! vCL  wCL xCL za  }CL q  @-S w  n4a  Y u  CL CL CL CL CL F' D7 }  j ]"" ouq  qt  l  rY Ca R Sm] gˬ B=  P L͟ H y  Lf  v]  ` ] ^ CL CL CL CL CL CL OP OP CL G H> I,3 I& J  #J }e Jx8}f} Ms NDUOCPEaQVrRPsSp TEVh XFYF^[o\UP^f6_~9 `A1aCxRbB>cCxRCLCLCLgm3  CL CL CL CLmG'ln{o_N >CL?CL@CLACLBCLCCLDCLwH{xIHLyJQ.KOP{Ni"# |P_O}Qm~T]WC(XE[Fv ~]CL`X6 |bCLeF,"fDygGukLFumCLtnCLps} qqz slV 5uGr6vImCLCL:JF;FD<S?B?CLCLB@C C|}DA`EnFpQG[pHD} LaM^aHNkuOBPAcQHRI$TF>~UFh+VEOPCLY~OI Z@OPCL]t ^RzCLCLaSjCLCLd| CLf ] CLh H iV) CLkO lvGmuffn^s3o`Yp\R qVH rY( s L2t!O u"Dr$CL%CLx'A{y)Qvz+ME-CL.CL}0E~2G3F4FT5OP~8CL:CμT0?JiCL k~OI nCLqOP ti wCLxCLzIw}CLOPp YuD CLCLCLK s34_aYCQ YW X!`&f"R3#w$J{%M{&L'K,(@CCL*F?+`CL-GJYOPCL0{LS 1I'2G3Hj4E CL6]CL8@CL:CCL<}~ =F?OPCL@NAHaBCQCLCLE{w HBzIp: JukKWEL^ n`* mYk E9[0J 1F!O2B 3n 4JZ5Et7{\8Fn;O>I?LBr DJGEVHOrJ|KM LJOo^ PQQ@JTCLWE/XEeYOP[CL\CL]CL^CL_CL`CLbCLe_fNggbfh_ >iG jG CLCLCLCLCLCLCL]CLCLCLNCLCCLCLAeCLCLCLOP$Iع%IY&HjCL*HH},WiOP.P_CLCLOPCL3o!4A6`7Gfg8BL9q:B;A3<BOP>Ry-?E5@E,bASOPDBΔEE.2FDGM c jYa3c X۞} kd iމ o n !CL CLCL ax #CL%qt &K 'uD (n0 *xR+u} .CL/CL0CL1CL2CL]F P_Dzb}I djӵg]""hoXB iqV jlu mrqCorS^sQRkte&xvBٚ yPhzD|@y@Y K+ tn a[3^CLCLCLCLCLCLOPOPCLG݄H9IAI){J J }e*V\}fp~PK Ms2 NDYODPEK{QVRPQSp TEVh7 XFYF[\TZP^eu|_~r `AFa$CYb%A@c'~ǯ)CL*CL+CLg.mW 0CL1CL3CL4CLm7Fn:{o;_N =CL>CL@CLACLBCLCCLDCLwGuRxHHǮyINzKOP{Nifg |P_A}Qq~S]VC0XEu[7 ~]CL_X |CLFrEGkOuCLtCLshs rdZ k 5G?6I}CLCL:I=;C<X?CCLCLB~ CADA`EeHFqGG]HEMO L`gM^34NjpOB(PAQH5RI TFZUFVFCLCLY~ Z@OPCL]t4 ^HmCLCLaKUCLCLd|j CLf]CLh F5i OTCLkP lwmtnb3oaHp[# qU{ rW\ sLtO u C4"CL#CLx%Ay&Jz'IbRCLTCL}VF~XGzYF ZFi [OP~]CL_CbLz c@gdM6feNfgCL i|& lCLoOP rgJ uCLvCLxI>{CL~OPpX Z CLCLCLK3 x|`3` C Z=q`>_u!u"[#H&g$J%M'&LŎ'K<-(@PCL*F+\$CL-GgROPCL0{LS 1N2G^3HЌ4EޢCL6]CL8@CL:C CL<r =F?OPCL@NAHbBC CLCLE!}: H#~I&XB J'ioK(WL)\a ,n -m .EG0J 1F/2B 3nB 4JZ5E7{8Go;O=Ii?LBr DJGEVHLvJ|9KM LIOo^ PQQ@pSCLEk9EeOPCLCLCLCLCLCLCLcɚYgcVgG G G CLCLCLCLCLCLCL]CLCLCLN :CLC$CLCLA:CLCLCLOP$I-%I.&R?CL*H`,WOP.PCLCLOPCL3o@4A6S7J8G9r:}Y;@3<|OP>ROc?E@EAS{ OPDB{EE#PFDkGM hff n3fde UŢ}\ l& iމ n m4 !CL DCLFCLHb KCLMqV N7 Ot[ Pm R=Vu YCLZCL[CL\CL]CL`E bD1e},l gj֏j]""ks lw% mlu poftCuSBvP!hwcNEyB |O`}E~AyN PHc sȉ a\Ff^CLCLCLCLCLCLOPCLCLGܜH!IUI/JJ}eRa}f~: M s ND]jODHPE2QVRPsSp| TF+Vh XGbYFn[\QQ^!e _"~8 `#Aa%Cb&Ac(FY*CL+CL,CLg/m 1CL2CL4CL5CLm8Fn;{o<_R >CL?CLACLBCLCCLDCLECLw|QxH=qyN OP{ jwx |^(}o q~]BڠE=oc ~CLW |CL#F $Eѕ%G&Fuu(CLt*CL,r]/ -q .kR 51Go62I4CL5CL:7I\;8JM<9[|?:EOeCLhCLBj~s CkNYDlA&EndFop\GpRHqE\ Ls`\*Mt^pNujQOvBbPwA/QxHRyH4TzFr#U{F\V~ CLCLY|& ZAZOPCL]w_ ^K?mCLCLaMCLCLd|ƚ CLf]CLhFiTICLkPQ l~Hmz\)ncoap^ qYk r[3 sKtO?uCCLCLxAyQlzM^CLCL}F>K~GFF'OP~CLDL? @)LYMCL { CL-OP 0f 3CL4CL6G9CLqHF ?\ BCLCCLECLGK͘ IyJe,K_yNCMPUQ[)RZL!Su"T\S3#Ug$VJȩ%WL&XL`'YKCu(Z@-S\CL*^Fb+_`frbCL-dG} fOPCL0{w 1K2Gλ3H4ECL6]CL8@CL:CScCL< =F?OPCL@NAHBC\CLCLE}h HHYvIp Jq1KWL[ n m4 EWJāF>KB n`* K E{#FsOHxLr JEVQ5r|9LIЍ o^  Q @Y/CLEQEeOPCLCLCLCLCLCLCL bp!Yg"cVg#G $G %G 'CL(CL*CL+CL,CL-CL.CL/]XCLYCL[CL\N ^CLaCbCLcCLeC hCLiCLjCLmOP$nIE%oI&rN|stCL*wHv,xXryOP.zP,|CL}CLOPCL3o44A6V7N`8E9sr:|fg;f<|OP>Q?E@EgAS OPDHEEXFDGMw]mvfuC3jFfeĪ S%X~; lo j ^ n m !CL CLCLbE CLrE  t4 n [u CLCLCLCLCLEC@}I !j*$]%r+ &vܹ (l +n.C/P4(0O1a|3Bh 6P8E9BEtOuC܅CLCLxAyJzH9QCLCL}F(~GmFGOP~CLD K !},"J#L %CL '{ *CL-OP 0mJ 3CL4CL6G} 9CLKB n KFE{GoOIgLr J EVP>}LI o^  Q @pCLEuEOPCLCL@CLBCLCCLDCLECLHa)IYgJcVgK_L]M^\PCLQCLRCLSCLTCLUCLVCLW]XCLZCL[CL\Nr^CLaDcCLdCLfBchCLiCLjCLmOP$nI٢%oIu&rKuCL*wH,xi>`yOP.zPnCLCLCLCL3o4A6R 7Qs48|9s:}Y;~<}3OP>RS?E}@E ASfOPDKOTEEGFDvGMjqg3fxQ QI } l8 j ^ nT m !CL CLCLb CLqV ~s sc nQ  : u CLCLCLCLCLEqC},l jž"]""#r $vt %l (o+C,NH.N@/_֙1BO\ 4Q5E6C/9yl :N  >q&f ?aI@Z<A^BCLCCLmCLnCLoCLpCLsOPuCLwCLzGӍ{G|Ht}HJ J }e ZA}fS{ Mu. NDQKODjPDQVRPrSpmy TFVj XGBYFTK[԰\S?^d_~UU `@ۘaA@bC{cBCLCLCLgm CLCLCLCLmFn{s4o`( CLCLCLCLCLCLCLwAxNkyR\OP{k | ^*} p<~4]7B8E< ~>CL@X |BCLEEGF HGSKNuMCLtNCLQq Rpfg Sk1' 5UHi"6VIľYCLZCL:\K";]EB<^Y?_EsZbCLcCLBe~# CfCWZDgA9|Eif\*FkiGlYHHmEg LnbMo_ >Nj\OB PAQHRHӀTFLUG QV~ CLCLYyz ZCCLCL]u ^KqNCLCLaLCLCLd}X CLf]CLhE]iVH CLkP> lF33 mC nioc3pc8R q\H r` sKt N,u Bv CL CLx Afy Rz Ge CL CL} FL~ G~ F.A |  CL~ CL |Ȣ K  D !Ef "F  $CL  &}  )CL ,OP  /o+  2CL 3CL 5Iw `CL cOP fq9  g[8]  jCL kCL lCL oL(  p|P qf r` uCC w[{ xbH ya{! zB&f" {ml# |C $ }J% ~L& L' Kx;( @{ CL* F?+ _N CL- B\ CL CL0 z7 1 N2 G3 H4 Fh CL6 ] CL8 @ CL: C/ CL< ~ = '  CL CL@ LA HB Di= CL CLE @}BH ChI ^ J [-K XL [~  B  n%  EZ J FL B  n  KF E {C FxC O` Hx L r  JP )EV *Lv -}( .L /I= 2o^  3Q 4DC 6CL 9Ev :Ee ;OP =CL ?CL @CL ACL BCL CCL DCL Gbf HYg Ilg K_ L[p M]\) OCL PCL QCL RCL SCL TCL VCL W] XCL YCL ZCL \N  ]CL `D bCL cCL A CL CL CL OP$ Iq% I& H CL* H$, hs OP. P1 CL CL CL CL3 o4 A6 Q37 Qg8 BL9 tk: |; ~< |  OP> R ? Ez^@ E0A R OPD H E E F DG M$ ng v l g  O }4  l9  j  nT  m ! CL  CL CL c7  CL qJ  ~Ü  sl  ouq   u  CL CL CL CL CL EI$ C{ }  j !]"" "sF  #w4  $l>  'svf +Cn TOe UM V]p XBf  [QL \E  ^Cy ayz  bR  es  fa#3 g\I h^ jCL kCL lCL mCL nCL oCL sOP uCL vCL yG- zGc3 {H }HM J  J }e dZ}fQ|Z M u. N DRO C,P DQ V>R PFS pmy T FV i* X GijY F4,[ ֯\ U9^ dJ_ ~c ` @Ta Ab Ac  CL CL CLg nL  CL CL CL CLm Fn {o `  CL CL !CL "CL #CL $CL %CLw (@px )Ly +O ,OP{ /j"# | 1_} 2o~ 4] 7B8 9E[ <r ~ >CL @Y{ | BCL FFA GFT HG~ KMfu MCLt NCL Qr  Rqt  SkĜ 5 THt6 VI CL CL: I=; Mq< Z? E CL CLB } C ApD APE eF iG EH EQ L gM cRN rǯO C0P AŖQ H~R H T F\cU G&V @ CL CLY y]w Z C CL CL] s ^ J CL CLa LM CL CLd }X  CLf ] CLh E#i OO CLk PL l J m G= n js3o bp ^ q ZQ r [ s Kt NCL?CL@CLACLCCLFYgGPgHavgI_JZzK]uCLvCLwCLyCLzCL{CL|CL}]~CLCLCLNCLCCLCLBCLCLCLOP$J %I~I&RQ;CL*IA,jXOP.P/CLCLCLCL3o4A6Y@7Py8F 9t:A;@f<@fOP>RU?E{F@EASNeOPDC}yEEwFDWGMl|t#4is3gX O9} m- j63 n m !CL CLCLbE CLq }~ s)~ nn Cq"  v4  CL CLCLCLCL LqIODPTVQM@yR\3TB XP\YE}ZC]y# ^L ajQ b^3dYfe^fCLgCLhCLiCLkCLlCLoOPqCLrCLuGUwGTHC HZJ J }eZi}}f Q} Mtb NDQKOD'PDQVRPFSpPL TF^Vhbh XG|eYFxP[Ұ\R`^c_~ `@aC#bBfc~zCLCL CLg m: CLCLCLCLmFun{o` CLCLCLCL CL!CL"CLw&@px'Juy(P4)OP{,j |._,}/n/~2]5B}6E]9 ~;CL>Y{ |hCLkF!lFVmGnFuqCLtrCLtro uqo vkw 5xI6yI{CL|CL:~F ;K<\ ?ECLCLB}f CLDA=\E`Fj\GK\)HE Lg\MczNrOC(PAQHRHhTFsUG@V@}CLCLYx ZCCLCL]r ^J3CLCLaLCLCLd}I CLf]CLhDiW9CLkP lI) mG njocp_q qY rYL sK0tM]uACLCLxAyTJzICLCL}FxC~0G1F6f5 8CL~9CLK ?r@oAoCCL E| HCLKOP Nu QCLRCLTJWCLZOP]qV ^[' aCLbCLcCLfM gG(hxiisfC0^fdaH!h"P@#Aff$J%LVe&L3'K@(@fCL*Fݱ+]CL-Ci(CLCL0y@ 1I 2GP3H4FHqCL6]CL8@CL:CUCL<} =GCLCL@MAGBDCLCLEAH~*IUbZ JN KWL\  B  n}[  EZ J F[GB B K)EzJGoOPIVLr  K$#EV%Lv'}(L)I~,o^ -Q.He0CL3EH\Ee]OP`CLaCLbCLcCLdCLeCLfCLiafjNgkavgm_n_o_qCLrCLsCLtCLuCLvCLxCLy]zCL{CL|CL~NVCLCCLCLB5CLCLCLOP$JA6%I~I&N CL*I,iZ+OP.QzCLCLCLCL3o#4Au6[7S,8GS39u\:F;G`<C3CL>U?Eo@EA\UCLDCi(EEwFDGLz3AvhWb NJ4}n mh j63 n$ m !CL $CL%CL'd *CL,q -| .s8 0n$ 2QL5v4 8CL9CL:CL;CL=CL@EDAC,BD}I FjI]Js Kw_ Mlp PmfSD@6TPUEVI XBY [Q 6]E'^D\y# U7 n a \C3^CLCLCLCLCLCLCLCLCLGMGGH#PH9J J }e2`,4}ft} Mt NDNqOD`DPD~QV RPSpA TGVka XGYF[F\Un^c_{UU `@eaRBbUcPCLCLCLg nc  CLCLCLCLmFk$n{o` CLCLCLCLCLCL CLw$@{x%J4y&NǮ'OP{PsB |Q_A}Rp ~U]XBYEF\7 ~^CL`Yн |cCLfFgFYhGkKcyunCLtoCLqrr rp sk 5uIGn6vIxCLyCL:{C4;|H`<}X!?~F[GCLCLB}I CLoDAA;E_GFnGDGHE L@aHMzGNJOC,3PA߻QH~RHTFUG]V@"lCLCLYx ZDXCLCL]s8 ^KCLCLaMCLCLd} CLf]CLhDYiQ^CLkQ>j lJ) mH niocp\ qX\) r[\ sKtMsuB^CL!CLx#Ay$Rdz%H$(CL)CL}+F~~-G .F:1Fv 4CL~6CL9K6;J E!@CL B}h ECLHOP Kc[ NCLOCLQJ|CLOPq \T CLCLCLMGB E&ftfgoVfC$ckkiR!uf"^4#AS3$J%Lh&L9>'K1C(@CL*F+ZCL-CpiCLCL0y@ 1N2G3H 4FCL6]CL8@.CL:CDCL<~24 =H CLCL@MnAG'BCHCLCLEBHGԦIcZ JgcKWL`EA B n EJnFiB  B  K) E zWGoOIuLr LEEVFPH}&ILJIrNo^ OSXk?E@EAYx-CLDE2EE/FE .GY\, u |grC4if M`@} mi jD n m !CL CLCL a #CL%q^ &|& 'rn (nT *.v 1CL2CL3CL4CL5CL8EP^9C =}R ?jB]Cs Dw Elp qfDPN B, D޹ BH QnEptDXy J@- t. aC3]^CLCL CL!CL"CL#CL%CL&CL'CL*G+GMv-H9.HN1J2J}e*^}fq} Mts NvDMOw@PyDQ|XR}OʅS~p$ THM{Vk+ XGYF.[\S^cu_pG `@1aQbO)cN CLCLCLgn CLCLCLCLmFa0n{goa  CLCLCLCLCLCLCLwA >xNRyO34OP{m |^I}qp~]B{CEN} ~CLY |CLF)FKVG_[PuCLtCLr]/ p k 5,Im6-JS/CL0CL:2B;3L)<4\?5G )8CL9CLB;}u% CFAuGBNHCF( LD@\MEyNFIOGC?PHA QIHyRJHTLFUMG{VNF PCLQCLYSxH ZTDWCLXCL]ZsU: ^\L&^CL_CLabM.jdCLeCLdg}; CLf]CLhDiW+KCLkQy lJ{ mH niYoc!pb q]k r^z sKtM3uAnCLCLxByLXzG`CLCL}F~GHFM@> CL~CLHK SfTNCL AOCLCL }CLCLKCLOPsU:  ]  CL CLCLMS F^fyw3CKrzxR!F3"Bf#]`$J% LM&!L7l'"K<-(#@%CL*'F+)]L+CL--CwXCLYCL0[xo 1\KK2^G3_H4aFcCL6d]eCL8g@.jCL:lCZoCL<q}h =rH*uCLvCL@yM?AzHB{@}CL~CLECUHF AIe JMFI KWiL\ ( EVEVB B oK EVEVB @{CGoOILr M EVKf}OLIro^ SCL*AJ,BiECOP.DRNFCLGCLHCLICL3Lo4NA6PNf7QF 8R{9Ux#:WG3;XGf<YE[CL>XY?E1@ES_AYpHCLD|} EEFFEGWOc4C|j L} m4 jb n m !CL CLCLdc CLq {H rz n}[ |QvW CLCLCLCLCLEKB}h k]s w lp rDTRSBDvKBH PëEeD' y@  S5  qL a3\C3^CLCLCLCLCLCLCLCLCLGGK HF"HNMJPJ}eWk}f| MjtE NlD@OmAPnDXQrY8RsOTStFv TuH)Vvk9 XxG5YyF [{l\|R ^c _p `AaSbRcOaHCLCLCLgn CLCLCLCLmFn{o` CLCLCLCLCLCLCLwzxLyQfOP{m |_$x}o~]BCEe O ~CLZ |CLEF%G`IҏuCLtCLrZ pF  k 5"I6#JL%CL'CL:)B;*J<+[W-?,G )/CL0CLB2}f C3ETD4AE6s{F7F)G8oRH9F! L;BǮM<#N=KO>CScP?B6Q@HRAH)TBFtUCG VDGuFCLHCLYJx:D ZKDSNCLOCL]ys)~ ^zK0}CL~CLaLCLCLd} CLf]CLhD̘iV(CLkQ lJ mI33 niٚocp^\ qYW rYG sKtM uA/CLCLxByTJzGCLCL}F:~HFYAbCL~CLGQK W4VٚPICL @RCLCL iCLCLL\1CLOP{a \ CLCLCLM( J3 At ~L Cen >rzpp!{L"n#M$J%L(&L'AKA(B@aDCL*FFy+GZcJCL-LBwNCLOCL0Qxo 1SIi2UG_3VHM4WFYCL6Z][CL8]@`CL:bCi(eCL<g}; =hH@kCLlCL@oMApGBqAlCsCLtCLEvCHwC^`IyZ? Jzq=;K{Y'L]y EVEVB oK B EVEVB @J{'PFN=OHIM r M EVLv~kLIwo^ S~Xr?Fi@EAY?rCLD|} EF){FEGWzg@vYk L^} n jp n}[ mi !CL CLCL` CLqes t[ m n ӇvW CLCLCLCLCLE=dB~ k-l]s wB lb pDNzB#BBB@ RgDmDy] K+ wn a3 \C3 ^ CL4CL5CL7CL8CL9CL:CL;CL=CL@GAGQBHK6CH:FJ HJ }eUD}f| Mbs NdD9OeAgPfDQiYRjNvSkAHTmH0bVnk9 XGYF[{\Sv ^c_pV `C DaObNcOCLCLCLgnk[ CLCLCLCLmGMn{o`$ CLCLCLCLCLCLCLw|xJyPOP{m |__}sn~]C F  }h ~ CL [ | CL F  F98 G HZu CLt CL r  p  ko 5 I6 JJ CL CL: B8P; !G< "Xb? $Fi 'CL (CLB *} C +MD ,AE .x\*F /DffG 0lzH 1FVI L 2E\M 3AN 4N=qO 6CcZP 7BQ `HR aHT bGU cGV f  iCL jCLY lwt Z mD pCL qCL] ssF ^ uL; wCL yCLa |N ~CL CLd }  CLf ] CLh D̘i Q+ CLk Q l K m I. n k&fo bMp a q ] r ^ s Kt Lu A, CL CLx B1 y RRz Jm CL CL} F~ H Fa B CL~ CL F KŨ  Zf \p V 3 CL  A CL CL  t  CL CL Lv CL OP },l  Z  CL CL CL )Nmr  *Gٚ +zff ,uVg /C 1U 2[ 3Z\)! 5p " 6j# 7I $ 8J% 9Me& :L ' ;K+( <@E >CL* @F:+ A\p DCL- FBy ICL JCL0 Lx 1 MN2 OGϥ3 PH4 QFÝ SCL6 T] UCL8 WA2 ZCL: \Cw _CL< a},l = bHVF CL CL@ LMA G>B B= CL CLE DBH @I hx| J xK C3L b6  EV EV l8  kh  k_  @ EV k)  @ {U FN= OP I M  r  M  EV QI }Ȉ L IK d]  S ~Z*? Fλ@ EA VP CLD }R E FUF F7DG Y @3 D( }4 l  C ~  n4a  j>  n}[  mi ! CL  CL CL d7'  CL rk  {  ~;  oXB  K;  vHC ?HB$ BJ  DJ }e ^}f | M t+ N D-O BfP D+Q Z.R NS t!N T H>V kr X GY Fֺ[ P\ Rr}^ c_ q ` D+ja Nb Qs4c Mٚ CL CL CLg n  CL CL CL CLm Hn ~ɚo `  CL CL CL CL CL CL CLw vx Ky R{ OP{ m | ^zH} p1W~ ^ C F!h |` ~ CL \J | CL F2 F1@ G MG5u CLt CL q  pG  j 5 J6 J CL CL: HB}; ILe< JU? KF NCL OCLB R|= C SFoD TAȾE VR#F Wc.G XH\)H YFx~ L ZHM [EN \RYO ]Cv8P ^B)Q `H:R aHխT bGJU cGV f~  iCL jCLY lw3 Z mD pCL qCL] ss ^ uL6 wCL xCLa {MK }CL ~CLd }  CLf ^ CLh D̘i WM CLk RU l N m M{ n ks3o cp _aH q [ r [ s Kt L:u Bd CL CLx BNy O2z I  CL CL} Fy~ H Fl BN CL~ CL F>K K  ]i ]C3 UA CL  A:CLCL zCLCLM4CLOP! O "[ %CL&CL'CL*N~ +K0,Bg-@0Dq.2^+3c>4a!5FY"6of#7KL$8J%9M&:L';K(<@>CL*@F:+AZDCL-FBICLJCL0tz 1uLZ2wG3xH4yG{CL6|]~CL8ACL:CwCL<| =HkCLCL@LAH jBCBCLCLEDH~*IZ JfBKI`L^D ixB EVEVi i EVEVjD E{MuFN=OIU M n IM @ K/7LIDeb3 SCL?CL@CLACLBCLC^ECLFCLGCLHNL^JCLMCUOCLPCLRwQ? TCLUCLVCLWCL$ZKγ%[I֍&^Gh?aCL*cL,dV^fCL.hC'kCLlCLmCLnCL3qn'4rA6uq7vpl8w[39|:F;J<ECL>X?G5e@F(AO"CLDv n m !CL CLCL_+ CLu ~ Eqt ؜,vK CLCLCL CL CLE|C8~] l]%v zr lb m!E;"VM#Avm$U@&B) *R+B,BV/y 0L% 3iD 4`35Z7^8CL9CL:CL;CL=CL>CL?CLhCLiCLlH,bnGWoHQpHsJHtJH}ejK}f |$- Mv ND5{OB|PE QZRNSs T THTVkU XG:YF٦[4T\Q(^c_q8 `BaO{bT5cQ5CLCLCLgn CLCLCLCLmH3noa CLCLCLCLCLCLCLwzxLpyQ>OP{nDD |]}rx#~^C>Es1{/9 ~3CL5]! |7CL:F,"!hH"i},#jK$kJ%lMw&mL:''nK(oA qCL*sF+t]wCL-yB|CL}CL0y 1I2G3H4GCL6]CL8AHCL:CCL<| =HCLCL@M#AHB@{CLCLEDYHHIta JH| KIyLW ixB ixB EVEVEVixB ixB EVi {7E,OP I~LqM n`* PSK<-Ia`w/ SZ5?G@F^!AF*CLDi EGTLFFGYCfGAr/ P>@]n j n me !CL CLCLc7 CLv( } Eq Q vY CL CL CL CL CLEE~s l]%vܹ {LS lb r #E$UJ'} QQZSB5 VTHWDfXD\z ]U( `j a`fbYffc^dCLfCLgCLhCLiCLjCLlCLmCLnCLqHMrGMsHj uHexJH{JH}eVl }fF|D Mt{ NDE+OBPDQ[RNt<Sp THTVk XGRYFބ[ѳ4T\V!l^cO_p `B\aT bR:cP4CLCLCLgo CLCLCLCLmGnPoaI CLCLCLCLCL CL!CLw$}Gx%RBy&U#'OP{*m |-^v}.o~0^3C$4E77zr ~:CL<[!4 |>CLAF:BF,DGEF_uGCLtHCLJr Lq Mm > 5OJ6PJRCLSCL:}Fi;~Ut<bK?DCLCLB} CMDB)EZ\FiGQHGc LA0MypNKzOD`PB7QHTRHݢTGDrUH4V~z CLCLYw ZDCLCL]t' ^LNvCLCLaMCLCLd O CLf^CLhDiRCLkS(S lL mK ntodapa q^z r^aH sL^tLuB3CLCLxB\yT zGCCLCL}G~ H$z Fo ACL~CLEWL _^fYaCL s FCLGCL H'JCLKCLMMOCLROPUlR V\N4 YCLZCL[CL^OE _Mٙ`DXaEC4dFfR#gWhV!jL3"kB#lYS3$mJ;%nM&oL*'pK(q@ sCL*uF/+v[F!yCL-{By~CLCL0y#; 1O2H3H4GnCL6]CL8AOCL:C:CL<|& =HCLCL@LwAH*~BAGCLCLEE*HFlMIVm% JnscKIDZLj n}[ n% B B B B n}[ B B { E,OPvILr>K?l3 Lv@ JP!IZ$o^ %Sy#?qACLBCLCCLECLFCLGCLCL^CLCL CL N6 CLCCLCLt4 CLCLCLCL$K%I+& M#CL*%K,&V[(CL.+P-CL.CL/CL0CL33n44A67Ef78F)89v9d:fJf;gMFf<hGjCL>lX>I?mG@nFd|AoGBbqCLDsrs EuGWFvFVGwWi{C^f|G}A3~qw @4o j n n% !CL CLCLc CLw z Hr O}B vv CLCLCLCLCLE*EFv mla](w { lb nEL[~ JAH T_HDDz7 S b _R\^CLCLCLCLCLCLCLCLCL.Ht/G0H1I 4J6J}e_}fJ}. MSu. NUDKOWBPXDRQ[[R\NmS]p^ T^H7V_kVI XbG:YcF[d{ \eRJ^bv$_pV `APaT>bW\cPnCLCLCLgn CLCLCLCLmG`{n o`( CLCLCLCLCLCLCLwB xWyX#OP{m |_ }pv~^CfEM~; ~CL\ 4 |CLFBFGJuCLtCLrȴ qhs  l1 5 JM6 KCLCL:D|;G<ZSN?DCLCLB|C CKDBzE UBF!k8RG"cH#F L$Q\M%NN&[O'CP(BNQ)HR+HЛT,GfU-HY<VX~s [CL\CLY^w Z_DbCLcCL]etj. ^gLiCLjCLamNMoCLpCLdr~Ü uCLfv^xCLhzDi{Vqa~CLkS~ lL mK. nss3odȒpep q^ r^\ sL1 tL:uB>CLCLxBcyQzGgRCLCL}F~H0EFA[CL~CLEOMe __#3ZdCL y@ CLCL ݩCCLCLMwCLOPtj. \ CLCLCLOB TC4Jk4I3"G2$\u%`&_>!'[l"(M#)j$*J%+M&,LL_'-K6(.AZ0CL*2G+3bk6CL-8BUZ;CLxo 1?M'2AH4}3BH4CH ECL6F]GCL8IA:%LCL:NDGQCL<S~ =UHaWCLYCL@MAH:BC/CLCLEEVHD0IAʴ Jt KHL^j XP ixB BrdB B j j' B i } DrPPIQkLt<[JPk LvAWJPIFo^ S^xRCLCLCLCLCLCLCL^CL CL CL N1 CLCCLCL}; CLCLCLCL$Kh%I&!NN#CL*NLg,O_QCL.SJVCLWCLXCLYCL3[n4]A6`J@7aAf8bA\9e@8:gIf;hL3<iGpjCL>mYf:?nHT@oFuApE7rCLDtlD EvG\zFwF;GxXzA|E}@h~qxq b$@wo; j n nQ !CL CLCL_ CLvK y Kniq ě vt CLCLCLCLCLEfFαU mV]%y] ~Ü lb r&fGV~} G )B\ TE E zT MK "b #a<%V3&^'CL(CL)CL+CL,CL-CL.CL/CL1CL4H5G6H7ID:Jf>Jf}eo\}f}uF Mt NDNqO~ PD7Q]5RNESof TCVbA XGYG[\V^bI_h `AFaWkbXJ>cUCLCLCLgo CLCLCLCLmGnIo`b5 CLCLCLCLCLCLCLwBzxRaHyTzOP{c |^s!}n~^C,AE]w| ~CL\ |CLFO{FG Pu CLt CLqq p kn 5J^K6KCL@CL:BE;CD?<D\?EDHCLICLBK|R8 CLCDNBEPW=qFQm*GRLBHSG: LTOpMUK>NVYO\OWC0PXBgQYHRZHT\GU]HV`~ cCLdCLYfw ZgDZjCLkCL]mt ^oLqCLrCLauMwwCLxCLdz~ CLf^CLhD̘iWXCLkSe lM= mL nroe5'pif q` ra{ sLAqtL4uBXBCLCLxB\yMvzG-aCLCL}F~H<FrA_CL~CLEN3 aTaf\gCL nQ  CL CL  CLCLMCLOPg ]u CLCL CL#O $Lh%C&A)H+V(,[J>-[ !.]&f"/H`#0h@$1I%2Mǟ&3LL'4KH(6Ag8CL*:GC+;\ş=CL-?B5BCLCCL0my#; 1oJ2pHW3rH4sGuCL6v]wCL8yA|CL:~D4KCL<~ =HCLCL@LZAHK5B@ƤCLCLEEHAx>IW JJ KI`L]w ixB ixB EVEVEVixB ixB EVl> } EPII~Lt„JPl3 LvBCJI4^g+ XpBMCLEcDCLCLCLCLCLCLCLCLqpq,A_oL_CL CL CL4CL5CL6CL7CL8^9CL:CLX?H>@FxuA@`2CLDm7 EGqbFF!GXuD1HLC<r aA@of j nT n`* !CL CLCLc[ CLu6 zcz Jtrn RS v( CLCLCLCLCLEf G~_   nvL ]% w  {H  lp  nf FL ]z @l QN A\  U%2 D D z  !V]%  $[DD  %^ &K) (^ )CL *CL +CL ,CL -CL /CL 0CL 1CL 2CL 5H 7H  `H aIfL dJf eJf}ea~}f|v M u. N D3XO AzP DQ ]5R NIsS ouq T FV ga X GY G D[ \ OP[^ dD3_ mV ` @Ta Vb V4c Rh CL CL CLg oK  CL CL CL CLm Fn ~vgo `(  CL CL CL CL CL CL CLw FBx Ty WL OP{ iwx | ^O} o~ ^ B Eu ~; ~ CL [5 | (CL +F_ ,F .G 1K3u 3CLt 4CL 7q7  8p!  9k\) 5 ;Ja6 CL ?CL: ADV; CM<< DXm? EDY HCL ICLB K|R8 C LBD MBבE O\W F PjqG Q_{H RGui L TOM UL34N VWfO WC*P XBiQ YH{2R ZHӀT [G2U \H%V _ O  bCL cCLY xWc Z EZ CL CL] up ^ K, CL CLa L- CL CLd   CLf ^ CLh Di UE CLk T l O m P n to e&.p e q ^=q r _ s LX7t Lu BM^ CL CLx BNy Sz GC CL CL} F/~ HE# F` AF~ CL~ CL DX M  b 3 a3 ] CL  x+  CL CL   CL CL M CL OP o۔  Y  CL CL CL !K/ $K[4 %Cvg &4 )IB +bG Thfg Uf! VSy" WI# Xn$ YI% ZM& \Ly' ]KR( ^A `CL* bD+ ck fCL- hB? kCL lCL0 ns 1 oh^12 rHy3 sI4 tH  vCL6 w] xCL8 z|ƚ  }CL: DJ CL< ~ = HU CL CL@ LA H[B A5 CL CLE F(H ~I h; J BM K ]CL `P  B  B  B  n  B  B  B  oK  E }! E* P'T IR L sG JP l5h  O A K" I0 g+  Xh Eʘ CL E DdY CL CL CL CL !CL "CL #CL $CL 'w (lg )B *_ +oL ,_ /CL 0CL 1CL 2CL 3CL 4CL 5CL 6^ 7CL 9CL :CL ;NA =CL @D BCL CCL Ew  GCL HCL ICL JCL$ MKγ% NJ>& QG TCL* VL, W`Mk CL. Iw CL CL CL CL3 nG4 A6 IP7 G8 ~f9 A : H3; LY< G CL> Y? Hf@ FA |  CLD t E GtF F G YO E| I C t aA @' o  j  n  nn ! CL  CL CL f(r  CL u}  y]  C tz  P  vI  CL CL CL CL CL E G K  o$k ]% wt  |5!  lp  q F@ [ @ Fݱ Aq  HT ID KD Nz?  OW9E  R`*  Sa3 TOVf U^ WCL XCL YCL ZCL [CL \CL ^CL _CL `CL cH dHp eH gIw jJ mJ}e bs}f 7|5 M u_ N D,O BP DQ ]WR N;0S o; T GV j* X GIY G-\[ IJ\ V[^ dpR_ p* ` @a Vb Wc P CL CL CLg o  CL CL CL CLm Fn o aI  CL CLCLCLCLCLCLwCxOy\(OP{l | ^ }!q~#^'B(Ep+{ ~-CL/\q |1CL5F(6FY7G:HDuCL@q Ap Bk 5EJqb6FK6HCLICL:KFT;tL<uTw?vD%yCLzCLB|| C}NDD~BE\Fq4GU34HG LLhMG{NS0OC:PB~QHRHfTGUH{V CLCLYxt ZDgCLCL]u' ^M[CLCLaN`CLCLd~' CLf^CLhDiQbuCLkTI lK mJ33 nsLoe8pj qf rg sLkXtLuBRsCLCLxBEySzGJYCLCL}F/~HTFACL~CLDV OZo  `f `i \DCL | 5?CL@CLCNECLHOPLvY M^> PCLQCLRCLUPV` dMDeD3fAiIk^J>lcgmbG!n_f"oT#po$qIƏ%rM#&sL'tKU(uAwCL*G+\CL-AAhCLCL0y 1N`2H3I24H"&CL6]CL8A$ZCL:D_CL<~Ü =HCLCL@MAHuB@CLCLEFRHI+Iof Jx K IyLl& W ixB A^vB B ixB ixB B i !}]"E'%O'IF(L+v-JP0mv 1Pst2A5K6I89g+ :X ;A|=CLhEyiDlCLmCLnCLoCLpCLqCLrCLtCLwt6gxvFgyDzMR{VR|UCLCLCLCLCLCLCL^CLCLCLN@CLD1CLCLs CLCLCLCL$L %I&QQ%CL*L,,T7CL.HHCLCLCLCL3n4A6K7Ff8C9BE:Hٚ;LFf<GC3CL>Xo?H@F=Ap CLDk. EGvFFGXE4J(Cv]f a3@9q0o 1kQ 3n 4n !7CL 8CL9CL;a< >CLAuZ By#; CCScDt/ EQM Fw% ICLKCLLCLMCLNCLQERGQU@Xo []%\x ]|& ^l> aodFf\#Zi}h kMA TD DJzu O bUU `ɚQ0^CLCLCLCLCLCLCLCLCLHH+zHIJJ}eEb}f@|, Mu ND62OBPDQ ]R NS r@3 T HTVk XGYGE[.\R^f`_qr `@aV{bYcQ\)!CL"CL#CLg%om; 'CL)CL*CL+CLm.Fn1o2b/ \CL^CL_CL`CLaCLbCLcCLwfExhRyi]zjOP{mn |o^և}pm.~r^vBwE\uz}T ~|CL~\q |CLFFNGwLuCLtCLq9X p k 5J`6KCuCLCL:F;T*<`s?DCLCLB} CJoDC<EjqFpGN\HG LRMOBN\(OCɨPB~QHsRHխTH!UI"V: CLCLYDZECLCL]t ^M1OCLCLaNCLCLdK %CLf&^'CLh*Di+Wy.CLk1TU l2J# m3I n6s33o7ep9h q:eǮ r;g s=L6t>L u?BmOACLBCLxDB)yEP%zFGQICLKCL}MFm~OHjWPG `QAݍSCL~TCLVDnQYOX Z`[`g\[.f^CL q3 CLCL MWCLCLN>CLOPg `Pb CLCLCLPq PffECFfJX]\)\!WL"K&g#i3$I%M&L'KD^(ANCL*G:+Z*CL-B1 CLCL0{ 1LP=2HҪ3I[g4H\CL6]CL8A2CL:DCL<~ =HCLCL@ MJA HB @CLCLEFHGIg JEKIBLk. [J ixB EV!EV"EV#ixB $ixB %EV&i P}QE,OTP VI~XL[wf]JP`m<8 aLvbAפdJPeI=shg+ iYQPjBMmCLpEqD4sCLtCLuCLvCLwCLxCLyCL{CL~Bft6gC{3GRNLCLCLCLCLCLCLCL^CLCLCLNCCLC CLCLr CLCLCLCL$K%Iq&LP=CL*Ll,SCL.H/CLCLCLCL3n4A6X7Qɚ8Jg9B*:M,;Li<JCL>"Xz?#H@$F&A'm *CLD,i E.GaF/EG0X|3Fљ4JD5E+36v~ 9`;@9qn ?n !BCL CCLDCLG^j JCLLu Myz NCDOtU Qu[|wQ? CLCLCLCLCLE@G$K od_]%x |& l rFZ: A"B VaDDԒ{ Qm ` `fMI^CLCLCLCLCLCLCLCLCLHH:HIJJ}eQU7z}f{- Muwo NDAOB$PE(Q]lRN S@TDHVFl XHG_YIGb[JnR\KQ^NdA_Prr `RBV>aSWLbTXcURWCLXCLYCLg\pG ^CL_CL`CLaCLmdGTng@oib׷ kCLlCLmCLnCLoCLpCLrCLwuLqxvT\)ywexOP{{o"# |}_a@}m ~^BhE}X ~CL\m |CLF%FG\Q.uCLtCLp pl kP 5J}36KICLCL:DZ;Es<\a?DCLCLB{a CBDC^EYFvGf.HH LRMQs4N ^O DS|PBQHs<RH>THZ$UIP]V CLCLYE*ZEz CL!CL]#t ^%LM'CL(CLa+N.CL/CLd1 4CLf5^6CLh8DZi9WfMRgPO\iCLjCLkCLlCLmCLnCLoCLq^rCLsCLtCLuNAwCLzC |CL}CL}f CLCLCLCL$K%J4&RQ;CL*LC,UhCL.OtECLCLCLCL3nȿ4A6Sy7MI8I39Cb :NY;N`<KfCL>Yha?H@FAHHCLDs EGNFEѼGXEJk4C3z U ^wApPL k=" o,| n !CL CLCL!aL %CL'x (|& )E*u6 ,~x/w 2CL4CL5CL6CL7CL:E;G4>' AoCD](Ey F},l Glu JrfMFCNYz| {~ ~B UEE{LS O ]" ^yLf^CLCLCLCLCLCLCLCLCLI7H`I oIRJJ}e,X}fzP Mu NDFOBpPEL5Q^H[RN Sq TI'VmW XGYG[C\Q^c1_s9 `D Dals4bmqch CL CL CLgpԀ CLCLCLCLmHnA~4oCc@ ECLFCLGCLHCLICLJCLKCLwOHxPTyQdROP{Uo"# |W^hg}Xm?~[^^C<_FA$b|oQ ~dCLf^6 |iCLlFmFȯnGTqL%utCLtuCLwo xp`B yk 5K#6K0CLCL:Gg;M<<\< ?C:CLCLB{a CE DCEfFgG_HH LY!HMV4N_)OCPBQHkRHͶTH;UIaV@.CLCLYBZEV[CLCL]u ^LHCLCLaM`@CLCLd@ CLf ^ CLhE2iTCLkU_I lO mN=q ns@oe*pmL qiǮ r j= s"Lt#Luu$B&CL'CLx)B}y*Tz+GJ.CL0CL}2G-a~4Hf5G6Afs8CL~9CL;D4K?PZ @bfAbfB]3lCL nvR qCLrCL s22uCLvCLyNBC{CL~OPiLl c,p CLCLCLQ1 N9E3BKbGffk!Y,"Mٙ#hٙ$I%M&L{'K1C(B#BCL*H+Z0hCL-B1 CLCL0|` 1O@2IV3I*4H/CL6]CL8A2CL:DCL<~Ü =ISCLCL@M@yAH}B@CLCLEFTH @FI f J6\{K8CGL:\a =k >k ?B @B BB Cm4 Dk EB FBH} IELP NHOLRwaOUJPXn YQZGɗ\JP]I0`o^ aS Y(? I @ FA B! CLD qt E GJF FG Y "B #E $@ %yY  )_5 *@ +pmy  ,kK  -o,|  .o ! 1CL  3CL 4CL 6_  aCL cvR  d{  eEO fu  i lw  oCL pCL qCL rCL sCL wE xGac y@W zo }]% ~y{  }h  l  qP F X( @ @P A  VҚ Ds D {w  QP  ]]  ^ Lp ^ CL CL CL CL CL CL CL CL CL I\O Ht I< IP J J}e id}fwy M w:a N D2O } P EtQ )_R *MS ,qes T -CV .cBR X 0GY 1G![ 2|u\ 3Ps3^ 7b_ 8j ` :Ba ;V}qb 5 J6 Kj CL CL: El; R< cW? CL! CL CLB |` C N3D CE ]\)F ogG ZLH Hؾ L \>M \@N h^O D&P BQ HR HT IU I9V @l CL CLY xo Z DX CL CL] u ^ M@ CL CLa O CL CLd @Je CLf ^ CLh Edi R+. !CLk $U l %Lf m &LB n )s o +fd.p Ur8R q VnB r Wk s XLt YLu ZB \CL ]CLx `A:y aS,z bG eCL fCL} hG;~ jHܷ kG lA3 nCL~ pCL rD tQa  ue#4 vc w] yCL  {@-S ~CL CL  ւ CL CL NM CL OP t'  d~  CL CL CL P2  Jk4 B[3 @33 L d n g! \," I# ig$ I|% N& L' K8( B CL* Gn+ kvC CL- Al CL CL0 { 1 MU2 IX3 J 4 H CL6 ] CL8 r  CL: E  CL< w = E# #CL $CL@ 'N<A (IB )A3 +CL ,CLE .E@H 0}c0I 3p J 4vt K 5ZL 6\Rp  9EV :EV ;n`*  =m  >m<8  ?EV @EV Am<8  BE D}] EE% HP JIQk LL OvQ QJP Tn  UL VH= JP I. o^  S XG? I1@ FعA @p. CLD x E GF FG XP Ch IF3 JSp Kz  N`3Q O@ٛ Pp  QkZY  So;  ToK ! WCL  XCL YCL [dTj  ^CL `vt  b{Z  cE dvY  fe} iw  lCL nCL oCL pCL qCL tE uG w@ xo0 {]( |y  }~  ~l  of F [  U    A  WAQ DR Dl$ {  WO  ]3  `3 M, ^ CL CL CL CL CL CL CL CL CL I~ H~ I"7 I J J}e fm^}f xU MTvQ NVD1OWBnPXEpQ[`R\N ES^pPL T_I'VmIs XG\YHNt[\P[^c&_s8 `Aa\bZ\)cRCLCLCLgq ( CLCLCLCLmG,n~odQk CLCLCLCLCLCLCLwJxS4ybOP{pfg |]}m~^CZzExP ~CL] |CLG]GH"GOuCLtCL m  o  k+ 5 J6KUCLCL:C;CQ<[X?CCLCLB{ CB)'D CE"`RF#pG$UH%ID L&\M'YNPe>ORC,3PSCa-QVz$ RWy TYIUZJa?V[A\H]CL^CLY`yz ZaDZdCLeCL]guZ ^hJtlCLmCLapK'rCLsCLdu@bxCLfy^zCLh|Ei}XxCLkU lMQ mLq ns3og<px8R qp rq sLtLuBۤCLCLx@;yLHzGCLCL}Gg~I5HnAMCL~CLCRna a33`g\yCL q3 CLCL 䂂CLCLNCLOPi dU CLCLCL"R2< #Rљ$HVg%G(M*]+aaH,g!-``".RY#/m33$0I%1N&2M+'3K)(4B6CL*8H$+9[A^vACLBCL0D|= 1EI2GJ>3HJ4IIIwKCL6L]NCL8PA SCL:}ElCL<~; =ICLCL@M1AIBA/CLCLEG&"HEyI}\Y J@&KD' Lqˈ jD j' EVB B l5h jD B B} DOHL} 8JPn PzcH8JPI'o^ StXf?uIz@vFXAysF |CLD~p| EGFF/GXkEVgHxC3{, `_A2p- k of of !CL CLCLe CLw zu Ew4 R7 x+ CLCLCLCLCLEmG@Sps](z ~s l  r#3GZS @QA VD;DZ { !V $[U %^<&Kf'^)CL*CL+CL,CL-CL.CL0CL1CL2CL5I6H"7IO9Iλ#?XU?#@I6@#AFVA#B@s#DCLD#Fv E#GGF#HFG#IX7#MD#NH#OC#R|` #Tb$#UAy#VpX #Wk_ #Xo #Yo !#CL #CL#CL#a #CL#x #|` #E#x #T/ #xWc #CL#CL#CL#CL#CL#E1#G#@2i#p#](#zu #~ #l #m3#G(#^f#: #@&#A #V#C#Dk#| #Oi #^" #`s3#N3#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#IV#H#IZ#I#J#h}e#a}f#w M##vQ N#MD14O#N@P#OEQ#RbR#SNS#To; T#VE>V#WeC X#YGY#ZH[#[\#\Q^#_ba_#al `#bA33a#dc5b#edhc#f[Y#hCL#iCL#kCLg#mqA #oCL#pCL#qCL#rCLm#uF[n#y~4o#zd_ #|CL#}CL#~CL#CL#CL#CL#CLw#M >x#Xy#`>#OP{#g |#\F}#o;~#^#B#Ek#wQ? ~#CL#^" |#CL#GT#G#H/.#Qu#CLt#CL#mR #o #k 5#J36#K'#CL#CL:#D;#Lo<#Z?#B+#CL#CLB#z C#|D#D E#eHF#AG#`gH#I L#W M#T\N# `O#!FP#"FQ#%sF R#&tx T#(JU#*J(V#+B^#-CL#.CLY#0z7 Z#1D#4CL#5CL]#7u ^#8Jā#;CL#E:#@J#3;#AM0<#BH#lCL>#nY?#oI@#pG A#sr@3 #vCLD#xii E#yG3F#zF,bG#{Z=#~Bg#Ff#@A#}% #bؾ#A?#q+ #k #o #o !#CL #CL#CL#ax #CL#xe #{= #D#w| #q#x #CL#CL#CL#CL#CL#E#H#@A#p4#](#z? #~s #m #r)#G7#WX#' #@-S#Aq #UI#D#D)i#|5! #R #^ff #^f#M\#^#CL#CL#CL#CL#CL#CL#CL#CL#CL# J# H# Ied#4J>|#7J#:h }e#O}f#wr M#Xwf N#ZD,O#[AP#]F$Q#`b-%R#aN,S#bo T#cGV#djh X#fGY#hH[#i'\#jRޔ^#mc_#nqr `#o@a#\b#\c#T#CL#CL#CLg#qQk #CL#CL#CL#CLm#Fn#o#dV #CL#CL#CL#CL#CL#CL#CLw#Ipx#\y#`>#OP{#m |#^|m}#p~#^#Bʻ#EN#~l^ ~#CL#^ |#CL# G@# G)# HSa# Hu# CLt# CL# m1' # pZ # j 5# J6# Kl# CL# CL:# E;# J<# \{?# D# CL# CLB# !{H C# "JD# #DJE# %W>F# &rG# 'UqH# (J L# *CM# +N# ,L#O# -GaP# .GQ# 1q R# 3r]\ T# 5JEU# 6JV# 7B0# aCL# bCLY# dz Z# fDS# iCL# jCL]# lu ^# nKD# pCL# qCLa# tL# vCL# wCLd# y@# |CLf# }^# ~CLh# FRi# U=# CLk# W= l# O# m# N n# so# h`.p# s{ q# oL r# lf s# Lt# Liu# C/# CL# CLx# @gvy# R@z# H## CL# CL}# F~# I# Hk# AqX# CL~# CL# D# S4 # [f# ]L# Y# CL # p3 # CL# CL # 伈}# CL# CL# Nڐ# CL# OP# h # e # CL# CL# CL# SO # ]# Tf# Rh# (NN# *dh# +g*# ,g{!# -cs3"# .V6g## /x2$# 0I%# 1N&# 2ME'# 4K)(# 5B# 7CL*# 9\V+# # xWo?# yI@# zG;A# }mi # CLD# j' E# GF# FG# W# B# E# A 4# } # `~M# Ah# q9 # k/ # of # o !# CL # CL# CL# g[~ # CL# w3 # } # C# vI # eM# x # CL# CL# CL# CL# CL# E=# H# @L# pX# ](# zcz # ~] # mQ # nl# G:# Y# ~ # @&# A # T# Ck# C# #|R8 # %X # (aw # )`# *OS3# +^# ,CL# -CL# /CL# 0CL# 1CL# 2CL# 3CL# 4CL# 6CL# 9I# :H# ;Ic# H# VJJ) L# WG}qM# XBRN# Y^ O# ZG:P# [HQ# ^p3 R# _pӖ T# aJssU# bJ5V# dB# fCL# gCLY# iz Z# jE# mCL# nCL]# pu ^# rMx# tCL# uCLa# xN~# zCL# {CLd# }@# CLf# ^# CLh# Fi# T1# CLk# WP l# L. m# K n# s3o# i\p# p{ q# m r# m s# L>t# L%u# CR# CL# CLx# @۶y# Q z# H## CL# CL}# FxC~# Is# I# AdF# CL~# CL# D;# Se # `>g# a4# ]3# CL # y # CL# CL ##CL#CL#N#CL#OP#l5h #dU # CL#!CL#"CL#%Sn #&QC3#'F#)D;3#+N #-b*#.g #0f!#1c"#2_#3##3Ap$#4I[%#5Ne&#6M'#7K$(#:~ #=CL*#@m+#CaiT#ECL-#GAAh#JCL#KCL0#u}T 1#vKm2#xJ3#yKS4#zIL#|CL6#~]#CL8#A^v#CL:#EZ#CL<#~ =#JI#CL#CL@#MA#JB#A#CL#CLE#GH#GI#y J#gK#HL#wQ? #]< #n}[ #B #B #B #B #oK #B #B#} #EA#P#H#L#} 8#JP#n% #P #I#JP#I#o^ #S#Z??#Iu@#G A#G!#CLD#p E#GdF#FG#Y#D,#Fl#Bs4#|q #^j#ADq#qV #k/ #o #o+ !#CL #CL#CL#d #CL#w #zr #D4K#wl #~#x #CL#CL#CL#CL#CL#E#H#@n# p# ](# y #} #m #p3#G>b#WO#7 #@#A #!V#"Cp##D#&|oQ #(R* #+_L #,^Y#-N3#.^#/CL#0CL#2CL#3CL#4CL#5CL#6CL#7CL#9CL#Inx#?I#jJ#nhFf }e#W.}f# w( M#v N#D8VO#AmP#F!OQ#aqR#N%S#A:%T#HTV#l X#GY#H[# P\#R]^#du_#o `#C]a#pb#sc#n4#CL#CL#CLg#qM #CL#CL#CL#CLm#Hn#go#dQk #CL#CL#CL#CL#CL#CL#CLw#Jffx#TRy#fz#OP{#j |#]A}#qǂ~#^#CW#F$J#y ~#CL#]X |#1CL#4G#5G #6HCs#9O u#;CLt#=CL#?n #@oa #Ak1' 5#DJ6#EK#GCL#HCL:#JF ;#KH=<#L[Ֆ?#MEz#PCL#QCLB#S{w C#TK"D#UDE#WUpF#Xo G#ZTkH#[J L#\kRM#]iN#^tuO#_AP#bu Q#co R#eWwT#fJU#gJV#hB!#jCL#CLY#z? Z#D#CL#CL]#t ^#EZ#CL#CLa#HVF#CL#CLd#@=#CLf#^#CLh#Fi#S#CLk#W l#J m#J3 n#sٚo#iEp#u q#q r#n s#M\t#Lu#C,3#CL#CLx#@y#Nz#H#CL#CL}#FT~#I#I<#A=#CL~#CL#D#SG # a# b# ]3# CL #t/ #CL#CL #q#CL#CL#N#CL#OP#"i[ ##b #&CL#'CL#(CL#+S #,Nf#-Fg#.F<#1N#3`=q#\d #]d*!#^h"#_Z##`{s3$#aI(%#bNp|&#cL '#dK"(#eB#gCL*#j^+#m]¬#pCL-#rA#uCL#vCL0#x}R 1#yJe2#{J3#|Kp 4#}I]#CL6#]#CL8#AH#CL:#EZ#CL<#~ =#J_C#CL#CL@#MA#J'B#A]#CL#CLE#GH#E9I#b J#oLK#GuIL#w #ixB #ixB #EV#EV#EV#ixB #ixB #EV#i #} #D#O#I#L#} 8#JP#n}[ #Lv#I#JP#I#o^ #SCL#?CL#@^#ACL#BCL#CCL#EN`#GCL#ICm#KCL#LCL#Ns #QCL#RCL#SCL#TCL$#WKA%#XI&#ZH#]CL*#Lc&,#Ro#CL.#H#CL#CL#CL#CL3#o (4#A6#M7#Il8#D@9#FQ:#N;#Pc3<#K3#CL>#X?#I@#G&A#|= #CLD#k. E#GzyF#F G#X}#D(#G6g#B3#|q #_#A_*#qt #kd #o۔ #pY !#CL #CL#CL#_+ #CL#w #z #DV#w| #S #xo #CL#CL#CL#CL#CL# F# G=# @# p #](#y{ #} #m=" #p3#GA#]>#~ # #!B #$UCj#&D%#'DCL#?CL#@CL#ACL#BCL#C^#ECL#FCL#GCL'Ncx'CL'CU'CL'CL' w4 ' CL' CL'CL'CL$'K%'Iq&'R;'CL*'LX7,'R'CL.' H*'#CL'$CL'%CL'&CL3'(oG>4'*A6'-P47'.Q|8'/Cc49'2Fh:'4OFf;'5O&f<'6K'7CL>':Y|}?';Iw@'dGSA'gx 'jCLD'ktz E'mGKF'nFG'oY!'sBg'tFc3'uA6f'x} 'zc'{Ay'|q3 '}l '~pY 'p3 !'CL 'CL'CL'b[ 'CL'w 'z 'D'w| 'R 'x 'CL'CL'CL'CL'CL'F'Hg'@Rb'p']('zF^ '~# 'mK 'r'GD'\`O'@ '@@'Ah 'XI'D~F'D,'| 'U 'T '^C3'I'^'CL'CL'CL'CL'CL'CL'CL'CL'CL'J'H/'I'I'J'h }e'd3}f#Bx? M'GuG N'ID)\O'JA}P'KFQ'NbZ0R'ON";S'Qr# T'RGWV'SjGP X'UGqY'VHT['W\'YSx^'\dҶ_']pr `'_C@a'`a{b'ad*c'b]޹'eCL'fCL'gCLg'q 'CL'CL'CL'CLm'H2n'~4o'dQk 'CL'CL'CL'CL'CL'CL'CLw'Ix'Ty'] 'OP{'m |'^}'nk~'^'D'F5'} ~'CL'^ |'CL'G'Gdm'Hg'H=u'CLt'CL'o 'px 'm 5'J6'K'CL'CL:'F;'L<'[T?' E' CL' CLB'zu C'@D'DE'`F'v{G'YH'K(| L'`5M']N'iO'i P' c Q'!C6]R'$TT'%JU'&JPV') O ',CL'-CLY'/z Z'XC{'[CL'\CL]'^t ^'_tz 'bCL'cCLa'e~Ü 'hCL'iCLd'k@۶'nCLf'o^'pCLh'rF7 i'tQM'wCLk'zX$ l'{NG m'|N n't3o'jLKp'x q't) r'pH s'Mt'L%u'CO 'CL'CLx'@4y'Tz'H*'CL'CL}'F!O~'J'IZ'A@'CL~'CL'D;'_ ']'_'[Y'CL 'B1 'CL'CL 'ՠz'CL'CL'O'CL'OP'v( '\N4 'CL'CL'CL'cQ'\f'Uc3'Rf'O$'a'd{'dB!'aFf"'!VI#'"z$'#I%'$N'&'%M!''&KK(''BN')CL*',P@+'.k)'/CL-'1@R'4CL'5CL0'7w 1'8h2';K 3''fX?'gIA@'hG*~A'kz? 'nCLD'ptx E'qGF'rGG'sY('wBC3'xE'y@3'|} '~c'AVA'q 'l3 'pY 'pA !'CL 'CL'CL'f/ 'CL'w| 'z)B 'DJ'w4 'f'y 'CL'CL'CL'CL'CL'F\'H '@('q']('z '~ 'mK 'pٚ'GN'\h'@ML'@ML'AO\ 'XG'Du'Dd'| 'Y '^. '_'L'^'CL'CL'CL'CL'CL' CL'!CL'"CL'#CL'&J''H')IU'*I '-J'.C" }e'n_}f'y| M'LuG N'ND6O'OB(P'xF=Q'{bR'|NS'~ph T'HV'l X'GJY'H['Ҽ\'Q.^'f_'rq `'Bha'_@b'b*c'ZH'CL'CL'CLg'q 'CL'CL'CL'CLm'G<n'~ o'd{c 'CL'CL'CL'CL'CL'CL'CLw'G(x'U{y'd{'OP{'ofg |'^w}'l .~'^'C'F's ~'CL'_ |'CL'G'Gr/'Hd'Mu'CLt'CL'o5 'pr 'm" 5'K6'L'CL'CL:' E;' I<' W?'FT'CL'CLB'zu C'~D'AD#E'C_(F'Du=qG'EaH'FK L'G_>M'H\ٚN'IhRO'Lj P'MfTQ Q'NBER'QMT'RJcU'SISV'V7 'YCL'ZCLY'\zcz Z']CB'`CL'aCL]'cu6 ^'d}h 'gCL'hCLa'jB'mCL'nCLd'p@'sCLf't^'uCLh'wF/i'yP'CLk'Xf l'LG m'L n'sYo'j)p'q. q'oG r'o s'M!t'L%u'CB'CL'CLx'@y'SĚz'HG'CL'CL}'F ~'J1t'Ib='A['CL~'CL'DnQ'Tr '`Vf'bI'][3'CL 'u ~ 'CL'CL 'ڰxM'CL'CL'O.G' CL' OP'k_ 'd~ 'CL'CL'CL'X 'O'G' D'#OG('%^{'&c''b4!'(]3"')S#'*x$'+I%',N[&'-M1 ''.KI('/B '1CL*'4L+'6lf7'7CL-'9@۶'CL'?CL'@CL$'CK{%'DJ)&'GH'ICL*'LL^,'MRe'OCL.'QH#'TCL'UCL'VCL'WCL3'Yo:s4'[A36'^Pp7'_If8'`A9'cF,:'dJ3;'eLf<'fH3'hCL>'kXC?'lI@'mG:A'mv 'CLD'h" E'GF'FGG'Y 'D'H4'B'~L 'a'A'q 'l& 'pY 'p3 !'CL 'CL'CL'e 'CL'v 'y@ 'Ca'vh. 'S? 'y#; 'CL'CL'CL'CL'CL'F)['G%'@}B'q}=']('y '}R 'mZY ' rf' GU' \\' @' @;' A ' W' C-' Cf' |& ' V? ' _ ' `' Mp' ^' CL' CL' CL' !CL' "CL' #CL' %CL' &CL' 'CL' *J5e' +Hp' ,I' .I8' 1J' 4i9 }e'ec}f'yň M' zu N' |D<O' }BT%P' ~F9Q' cR' MPS' p T' I'V' n X' G<Y' I[' \' P^' b%_' t `' A2a' mxRb' qٙc' kW ' CL' CL' CLg' r$# ' CL' CL' CL' CLm' Gvn' ~4o' eF ' CL' CL' CL' CL' CL' CL' CLw' Jux' Wy' ^p' OP{' p |' ]}' o~' ^' C$' F' y ~' CL' _ |' CL' G˝' G' Ha' (Pu' *CLt' +CL' -ou ' .p ' 0l 5' 2K&X6' 3L&' 5CL' 6CL:' 8E;' 9Ee<' :[^?' ;C' >CL' @CLB' Bz C' D@XD' GDE' IdqF' JzG' K^H' LKـ L' M[qM' NYN' Oe}qO' Re5 P' Sbs Q' TAҩR' UJ%gT' WJX%U' XIV' [ ' ^CL' `CLY' bzcz Z' cDnQ' CL' CL]' v ^' GX' CL' CLa' C ' CL' CLd' @' CLf' ^' CLh' Fi' O' CLk' Xg l' N m' M3 n' tٚo' kp' q) q' paH r' r) s' M)t' Lu' C' CL' CLx' A2y' R;z' H9Q' CL' CL}' ET~' JJ' Iti' A5' CL~' CL' Du' a! ' `' c ' _' CL ' s ' CL' CL ' O' CL' CL' OI' CL' OP' i ' cr: ' CL' CL' CL' T ' Mg' VD' !Rg' $OJ' &f\' 'm#' (k!' )_y"' *S#' +s$' TI%' UN&' WM06'' XKI(' YB' [CL*' ^N+' `\2u' dCL-' fAO' iCL' jCL0' l} 1' mK2' oK>3' pKd4' qI2O' sCL6' t]' vCL8' xAO' zCL:' |FR' CL<' ~ =' Jf' CL' CL@' MA' JB' A' CL' CLE' GH' GI' p5 J' cK' AGL' B+' i ' i ' EV' EV' EV' k ' i ' EV' B' }' EA' P' IR' L' } 8' J/ ' n ' P ' M' JP' H"' o^ ' X܉' Eʘ' CL' G^' D' CL' CL' CL' CL' CL' CL' !CL' "CL' %B3' &t6g' 'C{3' (p' )xk' *q' ,CL' -CL' /CL' 0CL' 1CL' 2CL' 3CL' 4^' 5CL' 6CL' 8CL' 9NsY' ;CL' >C$' ?CL' @CL' Bt ' ECL' FCL' GCL' HCL$' KKo%' LI&' OR'' QCL*' TLb<,' UR:' WCL.' H' CL' CL' CL' CL3' oPy4' A36' Mg7' H8' BVf9' F :' S0;' Q<' O' CL>' Xɨ?' I@' GCA' s ' CLD' of E' GyF' F(G' YVm' H3' L' F ' ~- ' ^' @' q^ ' l& ' pY ' p3 !' CL ' CL' CL' `S ' CL' vY ' x ' Ca' v- ' W ' y1 ' CL' CL' CL' CL' CL' F#' G' @L' qJ' ](' yN ' }u% ' mh ' r&f' G\\' \F' K '  ' A ' W' Cm' C' |= ' PHc ' J_Q ' K^y' LM' M^' OCL' PCL' QCL' RCL' SCL' TCL' VCL' WCL' XCL' [JN' \H' ]I' _I8' bJ' ei }e' h}f' -y? M' u N' D:yO' } P' FQ' d#R' MrS' o۔ T' D}V' c3 X' GY' I4,[' nR\' O1^' b._' k9 `' APga' [ b' ]\c' U#' CL' CL' CLg' q ' CL' CL' CL' CLm' Fn' ~o' dV ' CL' CL' CL' CL' CL' CL' CLw' Hx' Uy'\H'OP{'e |'\}'o ~'^'Cu'F9'!q3 ~'#CL'&_ |'(CL'+G',Ge'-Hh_'/FAu'1CLt'2CL'4ol '5pA '7l| 5'9K76':L'OP'Br]\ 'Cdx 'FCL'GCL'HCL'KTÏ 'LQ[3'MKQ'NJX'QO'Sap'Te'Uf!'V^"'WR#'Xog$'YI%'ZN8&'[MH''\KL(']B'_CL*'bM+'eY['hCL-'j@'mCL'nCL0'p|& 1'qJW2'sKQ3'tL^4'uICL'iC'kCL'lCL'nu 'qCL'rCL'sCL'tCL$'vL8U%'wI&'zN%'}CL*'Le,'R/'CL.'H*'CL'CL'CL'CL3'o4'A6'T`7'Kf8'FP9'Gd:'K;'M<'H'CL>'X?'I@'GBA'E 'CLD'm4 E'Gi4F'FG'XqL'HQ'L3'F$'~ '_'@N'q 'lD 'pY 'p3 !'CL 'CL'CL'`b 'CL'u 'xP 'CSc'uS[ 'S. 'y1 'CL'CL'CL'CL'CL'F-'G'@'p,']('z '~OI '0mw '3r'6H!'7\J':}; ';c '>A 'AW'CC'DC'G|= 'HS 'K^ 'L`ٚ'MM9'N^'OCL'QCL'RCL'SCL'TCL'UCL'VCL'XCL'YCL'\Ja']H'^I'_I'cJ'fiFf }e'eQ}f'4yGG M'u N'D,6O'AdP'FQ'c;QR'N)\S'of T'GpV'j\ X'GJY'IY)['&0\'Sx^'b+P_'q `'A Da'VRb'Z>c'S@'CL'CL'CLg'q 'CL'CL'CL'CLm'Fin'~o'dQk 'CL'CL'CL'CL' CL' CL' CLw'JGx'^y'^B'OP{'mUU |']z}'m?~'^'CR'E'"x0 ~'$CL''^ |')CL',G6'-Gp'.Hd'2Ju'\CLt']CL'_o '`oa 'bk 5'dK:[6'eL 'gCL'hCL:'jFL;'kMU<'lTU=?'mCu'pCL'qCLB's{ C'tO0D'vEE'xeF'y}G'zgH'{L L'|[hM'}ZN'~dgO'g P'd Q'@R'HT'JSU'J+V'U 'CL'CLY'z)B Z'DY'CL'CL]'vܹ ^'K/'CL'CLa'ET'CL'CLd'@'CLf'^'CLh'Ei'M\'CLk'Xd l'Mk m'LH n'to'kp'r q'r = r'r s'M06t'L%u'C'CL'CLx'A"y'Lz'H@'CL'CL}'E~'J 'If'AE'%CL~''CL')D'+S~ ',`g'-f'.]f'0CL '2q '5CL'6CL '7={'8CL'9CL'CL'AOP'Dh6 'E]d= 'HCL'ICL'JCL'LU'OL3'PE'QD'TO'VZq'W_'X_O\!'Yg33"'Z]3#'[u$'\I%']N,&'^M?''_KEF('BJv'CL*'I+'l'CL-'A$Z'CL'CL0'y1 1'h_2'Kg3'LD-4'H 'CL6']'CL8'} 'CL:'E'CL<'w ='F7 'CL'CL@'NA'KB'AlC'CL'CLE'EH'FI'f$ J'K K'XL'@'ixB 'ixB 'EV'EV'EV'ixB 'ixB 'EV'k> '~'D'P'Z?'JE@'GScA'Bt'CLD'm E'GvF'FXG'ZN'F'J3'E3'h 'a'@'qˈ 'lR 'p 'p3 !'CL 'CL'CL'e[ 'CL'v 'z)B 'DG'vY 'V 'y#; '"CL'#CL'$CL'%CL'&CL')F i'*G'+@''-q'0]('1yN '2},l '3m) '6r '9Gr)':^';@v'<@1'?A 'BVa'CCkU'DC'G|= 'HYX 'KWD 'L]'MI3'O^'PCL'QCL'RCL'SCL'|CL'~CL'CL'CL'CL'J'Hk'I 'I'J'iFf }e'f}f'_y> M'w N'D.ZO'B4P'FQ'cYRR'NPS'o T'HV'l X'GƅY'I ['By\'S^'c _'r `'@ۘa'a+b'ac'Z޹'CL'CL'CLg'q 'CL'CL'CL'CLm'FEn'fgo'cj 'CL'CL'CL'CL' CL' CL' CLw'K\)x'Wzy'\'OP{'o |'^J_}'pX~'^'FC%'GE<'Jw% ~'MCL'O^q7 |'QCL'TGh'UG1'VH^'ZPTCu'\CLt']CL'_pF 'apS 'bk 5'dKR6'eL 'gCL'hCL:'jE;'kKp<'lUS?'nDQN'qCL'rCLB't{/ C'uJMD'vE.SE'x\8RF'yuG'zf\*H'{LJ/ L'|X+M'}VffN'~a\O'j P'gx Q'@nR'I :T'JU'J;V'~ 'CL'CLY'z Z'E9['CL'CL]'x ^'B8P'CL'CLa'DnQ'CL'CLd'@C 'CLf'^'CLh'ETi'Nx'CLk'Xߥ l'KQ m'K# n'to'kp' uu q' o\) r'm s'M1 t'L<u'D'CL'CLx'Ay'T\ z'HO 'CL'CL}'Ez~'!J'"J'$A2'&CL~''CL')D'+UM ',yT'-g.f'/bfg'0CL '2zu '5CL'6CL '71'9CL':CL'CL'AOP'Do7 'Ea@ +hCL+hCL+hCL+hTj +hM3+hF+h R+h O+hg+hj+hjh!+h^"+hV#+hvFg$+hI"%+hN_&+hM+'+hKOI(+hBp+hCL*+hKc++h]X+h!CL-+h#A$Z+h&CL+h'CL0+h)}h 1+h*O02+h,Kvn3+h-Ls4+h.MKO+h0CL6+h1]+h2CL8+h4DV+h7CL:+h9F[G+hdCL<+hf~s =+hgJ˽+hjCL+hlCL@+hnNFA+hpK(B+hqAZ+hsCL+htCLE+hvGH+hxI+h{o J+h| K+h}YL+h}X +hB +hB +hB +hB +hB +hB +hB +hB +hE+h~?L+hEch+hP'T+hIЍ+hL+h} 8+hJ-8+hl +hK8+hM+hJP+hI\+hg+ +hSCL.+h@DV+hCCL+hDCL+hECL+hFCL3+hHo?l4+hJA6+hMU7+hNOY8+hOL39+hRG@:+hTO`;+hUQi<+hVLi+hWCL>+hZXy3?+h[Jk@+h\GLA+h]C`s+h_CLD+hauD E+hcGF+hdF$8G+heX?+hF.f+hHg+hD+h@&b+hcO+h@д+hq +hla7 +hp$ +hp3 !+hCL +hCL+hCL+he5 +hCL+hv +hz +hD+hv +hH  +hy#; +hCL+hCL+hCL+hCL+hCL+hF-+hG+h@> +hq+h]%+hx +h| +hm) +hr+hG+hZ+h@6+h@1+hB +hUh+hC$+hCē+h|= +hU +h_ +h`c3+hM#3+h^+hCL+h CL+h CL+h CL+h CL+hCL+hCL+hCL+hCL+hJJ+hH +hI+hIg+hJ+hi }e+h^d}f'_zd M+hdvn N+hfD:yO+hg@P+hhFfQ+hkdR+hmNIsS+hn@T+hoH V+hpk+ X+hrG؛Y+hsI[+hu\+hvPD^+hyd ~_+hzmG `+h|Ba+h}w!Hb+h~uzc+hoH+hCL+hCL+hCLg+hr3 +hCL+hCL+hCL+hCLm+hGQn+h~ɚo+hc +hCL+hCL+hCL+hCL+hCL+hCL+hCLw+hI{x+hW\)y+h`L+hOP{+hifg |+h^;Z}+hni~+h^+hC=+hF+hs ~+hCL+h^ |+hCL+hG+hGm+hHs+hKu+hCLt+hCL+hpz +hp +hlE 5+hK[6+hL+hCL+h CL:+h"E;+h#H<+h%YHO?+h&CZ+h)CL+h*CLB+h,{ C+h-C D+h.E=E+h0aqF+h1vG+h2UH+h3Li! L+h4WfM+h5V0N+h7a:O+h:o P+h;j Q+h<@XR+h>LT+h?JU+h@J'V+hC: +hFCL+hGCLY+hIz Z+hJDV+hMCL+hNCL]+hPx ^+hQ~] +hTCL+hUCLa+hWC+hZCL+h[CLd+h@b+hCLf+h^+hCLh+hF!Oi+hVxE+hCLk+hY l+hK m+hJ) n+hsٚo+hlU7p+hv{ q+hok r+hp s+hM:>t+hLBu+hCX+hCL+hCLx+hAy+hTU=z+hHs<+hCL+hCL}+hE]~+hJŹ+hJ"+hATJ+hCL~+hCL+hD+hU" +hcd+hdљ+h`+hCL +hA^v+hCL+hCL +h+hCL+hCL+hOi+hCL+hOP+hxe +hc,p +hCL+hCL+hCL+hU6/ +hM3+hEi+h B+h O+hag+he(+hd!+hx`"+hjf#+hGf$+hI%+hNB&+hM.c'+hKWy(+hB+hCL*+hHm++hk@+h!CL-+h#@X+hNCL+hOCL0+hQyz 1+hRh_2+hTK<3+hUL4+hWI%H+hYCL6+hZ]+h[CL8+h]~ +h`CL:+hbF>K+heCL<+hg{LS =+hhG:+hkCL+hlCL@+hoOáA+hpK@B+hqA+hsCL+htCLE+hvFqH+hwGRI+hyWw J+hzb K+h{W?L+h|EV[+h[; +hme +hC+hB +hB +hB +hB +hB +hk +h~p+hE+hP +hI+hL+h} 8+hJ"Q+hoK +hP+hM+hJP+hH+ho^ +hS+hZT?+hJ/L@+hGeA+hzF^ +hCLD+hp$ E+hGF+hF_)G+hZj+hE4+hH3+hDS4+h +hb%+h@+hq +hlo +hp$ +hp3 !+hCL +hCL+hCL+h`EA +hCL+hvW +hy +hCw+hvW +hHj +hy#; +hCL+hCL+hCL+hCL+hCL+hFu+hG+h@\+hp3+h](+hy#; +h}I +hm +hrf+hGj+h\;+h +h@+hA) +hVz+hCg+hC+h|= +hP +h\ +h]L+hJf+h ^+h CL+h CL+h CL+hCL+hCL+hCL+hCL+hCL+hCL+hJ+h@HN+hAI+hCI +hFJ+hIh }e+h_(}f+hz+ M+hgu. N+hiD,6O+hj* P+hkFQ+hndR+hoN;0S+hpAT+hrEn\V+hsf X+huGΩY+hvI[+hw\+hxR^+h{d_+hm `+hC٦a+h\Gb+h\4c+hT=q+hCL+hCL+hCLg+hrb +hCL+hCL+hCL+hCLm+hHRwn+h|o+hdR +hCL+hCL+hCL+hCL+hCL+hCL+hCLw+hJx+h\Hy+h`+hOP{+hh |+h\ }+hlF~+h^+hC̓+hF+ho+ ~+hCL+h _ |+h CL+hG"+hG:+hH+hIu+hCLt+hCL+hp +hp +hlX 5+hKR6+h L+h"CL+h#CL:+h%EsZ;+h&DI<+h'ZV?+h(C+h+CL+h,CLB+h.|R8 C+h0@D+h3EQ E+h5W>F+h7quG+h8hW H+h9L L+h:Ks4M+h;F{N+ht+hLu+hC+hCL+hCLx+hBy+hRz+hHd+hCL+hCL}+hEO~+hJ+hJ@+hAZ+hCL~+hCL+hD+hV? +hh3+hj +hf+hCL +hs T +hCL+hCL +h+hCL+hCL+hO<+hCL+hOP+hii +he~ +hCL+hCL+hCL+h U_I +h4Rf+h5Ll+h6I+h9O|+h;_+h+h=c=q!+h>gY"+h?W3#+h@xf$+hAIE%+hCO"&+hDMO7'+hEKU(+hFB+hHCL*+hJJI++hKX+hNCL-+hPA+hSCL+hTCL0+hV| 1+hWLp2+hYK!3+h[L-4+h\IJ0+h^CL6+h_]+h`CL8+hbA+heCL:+hgF~+hjCL<+hl)b =+hmK +hCL+hCL@+hNuA+hKcHB+hA+hCL+hCLE+hGeH+h{I+hdK J+hF S K+hGnL+h} +hixB +hixB +hEV+hEV+hEV+hixB +hixB +hEV+hi +h~@+hEN+hP+hI0+hL+h} 8+hJP+hm4 +hLv+hM+hJP+hH+hg+ +hYQP+hEʘ+h CL+h G^+h DF-+h CL+h CL+h CL+h CL+h CL+h CL+h CL+h CL+h Bd+h v +h I3+h |Q+h }+h B+h CL+h CL+h CL+h CL+h !CL+h #CL+h $CL+h %^+h &CL+h 'CL+h (CL+h *Nd+h ,CL+h .C+h 0CL+h 1CL+h 3s +h 6CL+h 7CL+h `CL+h aCL$+h dKo%+h dI&+h gJY+h jCL*+h mLZ ,+h nR+h pCL.+h qH+h tCL+h uCL+h vCL+h wCL3+h zo/4+h |A6+h O 7+h KL8+h Hs39+h G:+h K);+h M6f<+h Hc4+h CL>+h Wx?+h JBs@+h G|JA+h oI +h CLD+h kK E+h GӓF+h FgRG+h X}+h L+h J+h Ff+h o +h `+h @4+h qJ +h l~k +h p$ +h p3 !+h CL +h CL+h CL+h `b +h CL+h v +h y]w +h C=+h u} +h Z+h y +h CL+h CL+h CL+h CL+h CL+h F+h G}+h @> +h p4+h ]%+h x +h } +h m +h p\+h (G+h *X+h +@+h ,@n+h .A +h 1VH+h 2B+h 3C+h 6|= +h 7R +h ;_j +h <]C3+h =I+h >^+h ?CL+h @CL+h ACL+h CCL+h DCL+h ECL+h FCL+h GCL+h HCL+h LJ+h MHf+h NIЍ+h OI+h RJ+h Ug` }e+h I'}f+hzp M+h v& N+h D O+h AjP+h F/Q+h cR+h N$S+h qˈ T+h HNV+h lV X+h GY+h Ii[+h '\+h R ^+h d>_+h sr `+h DUEa+h Y>b+h Zc+h T+h CL+h CL+h CLg+h r$# +h CL+h CL+h CL+h CLm+h HIn+h \o+h e +h CL+h CL+h CL+h CL+h CL+h CL+h CLw+h N>x+h Zy+h a#+h OP{+h o |+h [W>}+h k~+h ^+h D<|+h Fu+h o; ~+h CL+h a_ |+h CL+h H\+h Gב+h H+h !Mu+h #CLt+h $CL+h 'q +h (qn +h )mZ 5+h +KH6+h TL+h VCL+h WCL:+h YEV[;+h [M<+h \\8?+h ]Du+h `CL+h aCLB+h c| C+h dBrD+h eE\E+h gP4F+h hkfgG+h i\{H+h jL L+h kJM+h mEN+h nQ\)O+h qo P+h rj Q+h sA/R+h uNL^T+h vJU+h wI!V+h z@+h }CL+h ~CLY+h zT Z+h D+h CL+h CL]+h x ^+h },l +h CL+h OPa+h A%+h CL+h CLd+h @+h CLf+h ^+h CLh+h Fqi+h T5+h CLk+h YG l+h P m+h O n+h no+h lp+h r q+h nǮ r+h m s+h ME/t+h L+u+h D'+h CL+h CLx+h BFy+h Q5=z+h Hm+h CL+h CL}+h E2~+h K+h J+h A׾+h CL~+h CL+h E@+h Vs +h `x+h bfg+h ^^g+h !CL +h #y1 +h &CL+h 'CL +h (̣+h )CL+h +CL+h -Og+h /CL+h 2OP+h 5n +h 6f, +h 9CL+h :CL+h ;CL+h >UI +h ?R33+h @J+h AFf+h DP:+h Fm +h GmaH+h Hh*!+h IX"+h JN|#+h Lo3$+h MIŦ%+h NO &+h OM`'+h PK^(+h QB{+h SCL*+h UJw++h V]+h CL-+h @X+h CL+h CL0+h } 1+h K2+h Kǟ3+h L4+h Iz+h CL6+h ]+h CL8+h A2+h CL:+h F5+h CL<+h  =+h KF+h CL+h CL@+h NqA+h KB+h A+h CL+h CLE+h H2H+h zlI+h mp J+h n K+h G,L+h x +h B +h B +h EV+h B +h B +h B +h B +h B +h E+h ~D+h E3+h O+h I o+h L+h } 8+h JP+h n`* +h Lv+h M+h JP+h H+h o^ +h X܉+h BM+h CL+h I~+h Ee+h CL+h CL+h CL+h CL+h CL+h CL+h CL+h CL+h D+h B&f+h L3+h @+h H}+h IA+h KCL+h MCL+h NCL+h OCL+h PCL+h QCL+h RCL+h S^+h TCL+h VCL+h WCL+h XN~+h ZCL+h ]C0+h _CL+h `CL+h aw +h dCL+h eCL+h fCL+h gCL$+h jK%+h kJ[&+h nM*+h pCL*+h sL,+h tJj+h vCL.+h xDQN+h {CL+h |CL+h }CL+h ~CL3+h o8Q4+h A6+h M7+h H08+h Ei9+h GjK:+h K;+h N\<+h J3+h CL>+h X?+h JI@+h G3A+h yz +h CLD+h u E+h GF+h FMG+h Y]+h D+h G+h C3+h @&b+h ^+h @w+h qJ +h l +h p$ +h p3 !+h CL +h CL+h CL+h e +h CL+h u +h y +h CL!+h up +hM$ +hy +hCL+hCL+hCL+hCL+hCL+hF+hG}+h@1+hphZ+h"]%+h$xo +h%}T +h&m_ +h)n3+h,G+h-[+h.@و+h/@+h1A +h4T+h6BN+h7C0+h:|= +h;XP +h>Rww +h?]f+h@I+hA^+hCCL+hDCL+hECL+hFCL+hGCL+hHCL+hJCL+hKCL+htCL+hwJP+hxH+hyIڊ+h{IM+h~J+hh}e+h^M}f+h 'z M+hu_ N+hD.ZO+hAP+hFQ+hcBR+hNS+hq T+hIZV+hn X+hG״Y+hJ =[+h+\+hR^+hfG_+hq `+hC1Aa+hqO\b+hvc+ho+hCL+hCL+hCLg+hr; +hCL+hCL+hCL+hCLm+hH8,n+h~o+he +hCL+hCL+hCL+hCL+hCL+hCL+hCLw+hNx+h\y+h_+hOP{+hm"# |+h\}+h o-~+h ^+hD!+hE+hr ~+h=CL+h@\ |+hBCL+hEH`+hFG+hGH+hJNu+hMCLt+hNCL+hPpz +hQo\ +hRn1' 5+hUKD^6+hVL&+hXCL+hYCL:+h[E];+h\L<+h]T({?+h^D_+haCL+hbCLB+hd}T C+heOD+hgE\E+hiXpF+hjq(G+hk`=qH+hlL" L+hm^aHM+hnZ޹N+hofEO+hroXB P+hsj Q+htAqR+hvNDmT+hwJU+hIڕV+h +hCL+hCLY+hz? Z+hD+hCL+hCL]+hx ^+h^ +hCL+hOPa+hC +hCL+hCLd+h@=+hCLf+h^+hCLh+hFbi+hR-+hCLk+hYZ l+hO m+hN\ n+hmYo+hl#p+hp33 q+hn\ r+hoG s+hMFt+hLu+hDL+hCL+hCLx+hBk!y+h Nrz+h Ha+h CL+hCL}+hE2~+hK'+hJ2+hA;+hCL~+hCL+hE]+hV +h^l+h`9+h[<+h!CL +h#@+h&CL+h'CL +h(+h)CL+h*CL+h-O+h/CL+h2OP+h6xP +h7e] +h9CL+h;CL+hCL+hAC{3+hCvf+hDL+hEeٙ+hFjh+hGeR+hICL+hJCL+hKCL+hLCL+hNCL+hOCL+hPCL+hQ^+hRCL+hSCL+hTCL+hVNU+hXCL+hZC +h\CL+h]CL+h_tY +hbCL+hcCL+hdCL+heCL$+hhLD-%+hiI0&+hkO4m+hCL*+hLX7,+hG+hCL.+h}R +hCL+hCL+hCL+hCL3+hoH4+hA6+hO7+hN38+hC39+hG4:+hM;+hL<+hJs3+hCL>+hX"?+hJO7@+hG3A+hvK +hCLD+hq+ E+hGyF+hFfjG+hY+hC+hF+hBH+h@*C+h`+h@w+hr +hl +hp$ +hp$ !+hCL +hCL+hCL+hc +hCL+hvW +h z +h C+h v +hG+hy +hCL+hCL+hCL+hCL+hCL+hE+hGM+h @+h"o+h%]%+h&x +h'}T +h(m_ +h+r#3+h.G+h0W]Y+h1@۶+h2@+h\B = +h_U+h`Bs+haC<*+hd|= +heRv +hi_ +hj]+hkN33+hl^+hmCL+hnCL+hoCL+hqCL+hrCL+hsCL+htCL+huCL+hvCL+hzK+h{H+h|Is+h}I+hJ+hh3 }e+hB=*}f+hPz M+hw N+hD2O+hF P+hFQ+hdLR+hNS+hq T+hE,V+he5| X+hGقY+hJ&[+hڲ P\+hM{^+hb_+hm8 `+hB{;a+h]>b+h]Ec+hUf+hCL+hCL+hCLg+hr +hCL+hCL+hCL+hCLm+hGln+h4o+he +hCL+hCL+h$CL+h&CL+h'CL+h(CL+h)CLw+h,Jx+h-\y+h.a*+h0OP{+h3gDD |+h5[k}+h6k~+h8^+h;C+h3+hMK4+h@+hCL6+h]+hCL8+hA+hCL:+hG+hCL<+h =+h@+hCL+hCL@+hLT>A+hJB+hA+hCL+hCLE+hGoH+hH<I+h^K J+hX K+hG L+hx +hZB +hixB +hDG+h@u+h@+hixB +hixB +h@+hi +h}+hDs+h P e+h"IC+h#L+h'~+h)JP+h,n +h-Lv+h.M+h0JP+h1H+h4o^ +h5Y]+h6Eʘ+h8CL+h;G^+h=D+h?CL+h@CL+hACL+hBCL+hCCL+hDCL+hECL+hFCL+hIvf+hKv33+hLH+hM|{+hN}+hO{+hQCL+hRCL+hSCL+h|CL+h~CL+hCL+hCL+h^+hCL+hCL+hCL+hNb+hCL+hC+hCL+hCL+hr@3 +hCL+hCL+hCL+hCL$+hKo%+hIa&+hH+hCL*+hK.,+hP S+hCL.+hMh+hCL+hCL+hCL+hCL3+hoR4+hA36+hLl7+hGf8+hAS39+hG:+hJ;+hLf<+hG+hCL>+hWZy?+hJK@+hGJA+hmYk +hCLD+hii E+hGF+hFlG+hY;+hA4+hD+h@Ff+h@&b+hcR+h@+hrs +hl +hpA +hp3 !+hCL +h CL+h CL+h `S +hCL+hw% +h{ +hDnQ+hw +h@P+hy +hECL+hFCL+hGCL+hHCL+hICL+hMEH+hNG+hQ +hSo@+hV](+hWz +hX~l^ +hYm +h\o0+h`G+haX+hbA~k+hcA(+heAR +hhU+hiC ^+hjC|+hm| +hnO]6 +hr^D +hsa6f+htL+hu^+hvCL+hwCL+hxCL+hzCL+h{CL+h|CL+h}CL+h~CL+hCL+hKT+hHI+hI+hI+hJ+hi8R}e+hV}f+hUyYR M+hu N+hD.ZO+hBP+hFu^Q+hcR+hNES+hp T+hH\V+hk֤ X+hGxY+hJ/[+hᱶs\+hU^+h b%_+hrG `+hA[a+h[hb+hYffc+hS >+hCL+hCL+hCLg+hr$# +hCL+hCL+hCL+h CLm+h#G'n+h&~<o+h'e +h)CL+h*CL+h,CL+h-CL+h.CL+h/CL+h0CLw+h3Nx+h4Xy+h5a+h7OP{+h:n |+h<^}+h=lZ~+h?^+hBC+hDF[+hGn ~/PCL/P^ |/PCL/PH^/P G/P I$/PL%u/PCLt/PCL/Pn' /PodZ /Plp 5/PKD^6/PL)/PCL/PCL:/PET;/P FNCL*/PAk+/PD\^/PGCL-/PI@R/PLCL/PMCL0/PO~ 1/PPL2/PRKғ3/PSM|4/PV /PYCL6/PZ]/P[CL8/P]@r/P`CL:/PbF//PeCL/PW?/PJ2@/PGA/P@/PCLD/Prk E/PGyF/PFWG/PZ*/PA/PD3/P@3/P /Pbؾ/PADq/Pr1 /Pll /Pp^ /PpA !/PCL /PCL/PCL/PdM /PCL/Pxt /P{ /PD/Px /PPg /Py /PCL/PCL/PCL/PCL/PCL/PE`/PH!/P@/Po/P](/Pzu /P~' /Pm /Pr/PGK/P [53/P!Az/P"A z/P%B /P(Uh/P)Bؽ/P*CT/P-| /P.V /P1Z&f /P2\3/P3Hy/P5^/P6CL/P7CL/P8CL/P9CL/P:CL/PCL/P?CL/PBK$/PCHϣ/PEI/PFI/PIJ/PLh }e/Pc}f/PxQ! M/Px# N/PD9 O/PBP/PFoQ/Pc7R/PN4S/Pp^ T/PIaV/Pm X/PGŞY/PJ[/Po\/PP^/PaA_/Ps9 `/PAa/PYnb/P^Qc/PTT{/PCL/PCL/PCLg/Prj] /PCL/PCL/PCL/PCLm/PG]n/P~lo/Pe( /PCL/PCL/PCL/PCL/PCL/PCL/PCLw/PLBx/P[#y/P_/POP{/Pp |/P]8}/PmK~/P^/PCN/PFQ/Pnn ~/P CL/P ]x |/PCL/PHu/PGI/PI:D/PQ1u/PCLt/PCL/Pn /PnĜ /P l& 5/P"KF/6/P#L/PMCL/PNCL:/PPD|;/PQIc!/P?^g"/P@T#/PAq$/PBI:%/PCOk&/PDM&.'/PEK>(/PH|ƚ /PKCL*/PNr{G+/PyWY/P|CL-/P~AK/PCL/PCL0/P~ 1/PJn2/PKt3/PMN4/P~ /PCL6/P]/PCL8/P~OI /PCL:/PF/PCL K/PYL/PeT /PXb /PixB /PEZ/PEV/PEV/PixB /PixB /PEV/Pi /P}K/PD /PP'T/PI/PL/P~>/PJP/PB /PK/PMC/PJP/PH/Po^ /PX/PEʘ/PCL/PF/PD/P CL/P CL/P CL/P CL/PCL/PCL/PCL/PCL/Pvf/Pt3/PC{3/P@VR/PA]s4/PB[/PDCL/PECL/PFCL/PGCL/PHCL/PICL/PKCL/PL^/PMCL/PNCL/POCL/PQNg/PRCL/PUC/PWCL/PXCL/PZv- /P]CL/P^CL/P_CL/P`CL$/PbL.P%/PcJ4&/PfMU/PiCL*/PlLb<,/PmR/PnCL./Ppy /PsCL/PtCL/PuCL/PvCL3/Pyox4/P{A6/PL7/PHi8/P9/PF7:/PL;/PNVf/PVg?/PJDF@/PGA/Pr /PCLD/Pl E/PGF/PFcG/PX2/PD/PG#4/PB`/P /P`|/PA/Pr@3 /Pl /Ppmy /Ppmy !/PCL /PCL/PCL/PhE^ /PCL/Px /P|C /PD/Px /PV /P y /P CL/PCL/PCL/PCL/PCL/PE//PH7D/P@F/Ppv/P],`/Pzu /P~ /Pm /P!r</P$H/P%]/P'Avm/P(@/P*A /P-W/P.B/P/CO /P2| /P3Y, /P6^n /P8` /P9M@/P:^/P;CL/PCL/P@CL/PACL/PBCL/PCCL/PlCL/PoKn8/PqH/PrJ/PsI*/PvJ/Pyhf }e/Pf`m}f/PxB M/PvQ N/PD<O/P~F P/PFnQ/PdI7R/PNMS/Pp$ T/PDJV/Pc X/PG$Y/PJs[/Pб\/PR^/Pb"_/Pk: `/PA<a/PWb/PXc/PSٚ/PCL/PCL/PCLg/Pq /PCL/PCL/PCL/PCLm/PG*#n/Po/Pe$ /PCL/PCL/PCL/PCL/PCL/PCL/PCLw/PLx/PXy/P^\/POP{/Pe |/P]F}/Pl8~/P^/P C[/P F /P6n}[ ~/P8CL/P:` |/PCL/P ?CL/P @CL/P ACL/P Dvf/P ErC4/P FI4/P GO/P IMR/P JMR/P LCL/P MCL/P NCL/P OCL/P PCL/P QCL/P RCL/P T^/P UCL/P VCL/P WCL/P XNki/P ZCL/P ]C/P _CL/P `CL/P bv /P CL/P CL/P CL/P CL$/P K6%/P I&/P M/P CL*/P K$,/P R8T/P CL./P W/P CL/P CL/P CL/P CL3/P o4/P A36/P R7/P R8/P E99/P F:/P N`;/P Lf

    /P WI?/P JU@/P GA/P m /P CLD/P j> E/P GF/P F_)G/P ZRn/P AS3/P K3/P E3/P ~ /P ^/P A/P r]\ /P m /P p /P p !/P CL /P CL/P CL/P b6 /P CL/P yl /P |C /P E /P yl /P Y /P y1 /P CL/P CL/P CL/P CL/P CL/P EH/P HM/P @/P p/P #],`/P ${w /P %)b /P &m/ /P )rf/P THb/P U_R%/P VAU/P W@/P YA /P ]Vm/P ^C/P _CfA/P b|= /P cPX /P f\ /P g`/P hM,/P j^/P kCL/P lCL/P mCL/P nCL/P oCL/P pCL/P rCL/P sCL/P tCL/P wKN_/P xHD/P yI/P {IЍ/P ~J/P h }e/P iN}f/PJwA M/P w4 N/P D*O/P AZP/P FnQ/P cUR/P NBRS/P o۔ T/P Gs;V/P i X/P GY/P I[/P ױo\/P OU^/P b%_/P pr `/P Aa/P W\b/P Xc/P S/P CL/P CL/P CLg/P r /P CL/P CL/P CL/P CLm/P Fan/P ~4o/P e( /P CL/P !CL/P "CL/P #CL/P $CL/P %CL/P 'CLw/P *M{x/P +Yy/P ,c>/P -OP{/P 0l |/P 2]9}/P 4o`~/P 6^/P 9C4/P :FO/P =n`* ~/P ?CL/P B` ^ |/P DCL/P GHͣ/P HGS/P IIt/P MKtu/P OCLt/P PCL/P RlM /P Sm /P Tk7L 5/P WK>6/P L-g/P CL/P CL:/P D4K;/P Ls 

    ? Q/P ALR/P MzT/P J͔U/P IŪV/P @U/P CL/P CLY/P |R8 Z/P Cpi/P CL/P CL]/P u ^/P |R8 /P CL/P CLa/P AO/P CL/P CLd/P Al/P CLf/P ^/P CLh/P G&"i/P M@B/P CLk/P Z6 l/P O\ m/P N# n/P tffo/P lJp/P l q/P k r/P l\ s/P MC]t/P L<u/P C_/P CL/P CLx/P ~; y/P NGz/P HH/P CL/P CL}/P G;~/P KE/P E /P Ae/P CL~/P CL/P EsZ/P IWC /P Ja/P Kc/P L_ٚ/P NCL /P Pt[ /P SCL/P TCL /P U-/P VCL/P WCL/P ZO%/P \CL/P _OP/P bh /P cggu /P fCL/P gCL/P hCL/P kV&k /P lN4/P mFf/P oDf/P qP/P sb8R/P tf/P ven!/P wW"/P xQ&f#/P yr$/P zI}%/P {O&/P |L'/P }K%o(/P ~C/P CL*/P cnn+/P Zs/P CL-/P @/P CL/P CL0/P ~z 1/P JS2/P J 3/P Me4/P @4/P CL6/P ]/P CL8/P B /P CL:/P F/P CL

    /PVQ+?/PJH@/PGA/Ptz /PCLD/Pr E/PGF/PFJMG/PX~/PB/PG;3/PAt/PP /P_'/PA/Prk /Pmm /Pp /Pph !/P CL /P CL/P CL/P_v /PCL/P=yl /P>}X /P?E]/P@yl /PAZI /PByN /PECL/PFCL/PGCL/PICL/PJCL/PME/PNHfj/PO@v/PPq/PS],`/PT{ /PUU /PWm /PZp/P]H/P^a/P_@/P`@/PbAٚ /PeV./PfC_/PhC/Pk}T /PlQ3 /Po`j /Pp`,/PqLɚ/Pr^/PsCL/PuCL/PvCL/PwCL/PCL/PCL/PCL/PCL/PCL/PK_/PH@/PI/PIF/PJ/Ph3 }e/PAh} }f/P Rue M/Pwn N/PD&O/PBmP/PF<Q/Pb R/PN,S/Pof T/PHV/Pmg X/PGY/PJ X[/P \/P Rf^/P du_/P sr `/P@!a/PZb/PY8Rc/PT/PCL/PCL/PCLg/Pq /PCL/PCL/PCL/PCLm/P"F6n/P%~Lo/P&e /P)CL/P*CL/P+CL/P,CL/P-CL/P.CL/P/CLw/P2J{x/P4]y/P5d\/P6OP{/P9p"# |/P;]q}/P^/PjC"/PkF/Pns T ~/PpCL/Pr^ |/PtCL/PxH./PyG[/PzI-/P}QpNu/PCLt/PCL/Pjk /Pm /Pj! 5/PK:[6/PL9>/PCL/PCL:/PD̘;/PIqCL}/P@Gn~/PBKJ/PE1W /PFAH/PICL~/PJCL/PLEG/POU$ /PPcf/PQf9/PRa/PTCL /PV|5! /PYCL/PZCL /P[e/P\CL/P]CL/P`O*/PbCL/PeOP/Phrs /Pic` /PCL/PCL/PCL/P_/PVS3/POf/PK/PP/Pb}q/PfH/Pf!/P\S3"/PQg#/Pwٙ$/PIxu%/PO<2&/PM-z'/PK=(/P@p./PCL*/Px΄+/Pl/PCL-/PA/PCL/PCL0/Pz7 1/Ph2/PJ3/PM4/PH/PCL6/P]/PCL8/PAl/PCL:/PF/PCLA/PIB/PB/PCL/PCLE/P H H/P HI/P nP J/P Yo K/PWL/Po۔ /PY /PixB /PG/PEV/PEV/Pkh /PixB /P@-S/Pi /P}//PE'/P"P /P$I/P%L/P)X/P+JP/P.B /P/Rz/P0L/P2JP/P3Hκ/P^o^ /P_X/P`Eʘ/PbCL/PeI/PgD/PiCL/PjCL/PkCL/PlCL/PmCL/PnCL/PoCL/PpCL/PsC{3/Put6g/PvHH/PwVR/Px[xR/PyZ/P{CL/P|CL/P}CL/P~CL/PCL/PCL/PCL/P^/PCL/PCL/PCL/PN`/PCL/PCI/PCL/PCL/Pu /PCL/PCL/PCL/PCL$/PL%/PIb&/PI/PCL*/PL7l,/PE/PCL./P /PCL/PCL/PCL/PCL3/Po4/PA36/PYS37/PQ8/PH9/PF:/PLfg;/PN/PW7?/PJJ@/PGA/Pq9 /PCLD/Pm E/PGKF/PFPG/PZ@/PD4/P$G/P%B/P(' /P)bh/P*B#2/P+rz /P,m /P-p /P.p- !/P2CL /P3CL/P4CL/P6eT /P9CL/P;z /P<| /P=Eѕ/P?zT /P@P /PAyz /PDCL/PECL/PFCL/PGCL/PICL/PLE/PMHs/PN@wr/PPq7/PS],`/PT| /PU@/PWmd /PZn/P]H?/P_]|/PA/PA_/PAY /PUD/PB/PCQ/P},l /PW /PZn /P\f/PHy/P^/PCL/PCL/PCL/PCL/PCL/PCL/PCL/PCL/PCL/PK/PH /PIn/PI/PJ/Pq33}e/P@`5}f/Pt M/Pwt N/PD,O/P  P/PFШQ/PcNR/PNS/P@RT/PFW`V/PgE+ X/P G\Y/P JE[/P )\/P Q^/PeC_/Ph `/PBa/Pm b/Prc/Plc/PCL/PCL/PCLg/Pr3 /P CL/P!CL/P"CL/P#CLm/P'G9n/PRpo/PSf^ /PUCL/PVCL/PWCL/PXCL/PZCL/P[CL/P\CLw/P_Kx/P`Yy/Paa/PcOP{/Pfe |/Ph\Yc}/Pik*~/Pl^/PpC6]/PqFë/Ptp ~/PvCL/Pxa |/P{CL/P~H/PGe/PIR/PFNu/PCLt/PCL/PiP /Pm > /PjH 5/PK36/PLCD/PCL/PCL:/PD;/PE^I :/PACL/PBCL}/PDG~/PFK/PIE6 /PJAL/PMCL~/PNCL/PQE@/PSWn /P|`Vf/P}b/P~^/PCL /Pt /PCL/PCL /P]z/PCL/PCL/PON/PCL/POP/Pi /PjF /PCL/PCL/PCL/PVg /P`/PY/PV/PPB/Pc\/Pf/Pfǯ!/P^"/PN|#/Py$/PI%/POS&/PL'/PK;D(/P~ /PCL*/P@+/P]¬/PCL-/PA$Z/PCL/PCL0/P7 1/PNN238oK!338qN7438rD238tCL638u]38vCL838xC~38{CL:38}G:38CL<38U =38@38CL38CL@38KA38I B38BB38CL38CLE38IbH38DI38b J38JB K38A L38hJ 38Y 38ixB 38Go38@38A^v38ixB 38ixB 38@۶38i 38}38D38P.C38IЍ38L38E38JP38B 38Ql38Mw38JP38H38o^ 38Y]38Eʘ38CL38G^38D38CL38CL38CL38CL38CL38 CL38!CL38"CL38%C{338't6g38(C{338)PH38*OxR38+MR38-CL38.CL38/CL380CL382CL383CL384CL385^386CL387CL388CL38:Nd038C038@CL38ACL38Cu 38FCL38GCL38HCL38ICL$38LL!%38MI&38ON38RCL*38UL,38VR_<38XCL.38Yx0 38CL38CL38CL38CL338oj438A3638UP738P3838G938GaB:38J;38Mff<38G38CL>38V ?38Jf@38GA38n`* 38CLD38k E38GF38G&G38Z38p38y38ng38A38_:V38B38b 38_ 38EG38H2!38CL 38CL38CL38a 38CL38{in 38A38EZ38{ 38O.38y] 38CL38CL38CL38CL38CL38F138HqL38@K38q3j38]/38} 38p^ 38 n 38 r38H?38[38B 38A38Ap 38W38Bi38C38}X 38PJ 38!^" 38"` 38LL38M^38NCL38OCL38PCL38QCL38SCL38TCL38UCL38VCL38WCL38ZL"y38\H38]J38^I38aK38dh@ }e38Eϰ}f/Prױ M38x]6 N38D`O38B[P38G8Q38c!R38N4S38sU: T38I.V38mt< X38GDY38J[38\38PP[^38ci_38t `38Dma38Y(b38Y >c38S38CL38CL38CLg38q 38CL38CL38CL38CLm38H1n38@ o38g 38CL38CL38CL38CL38CL38CL38CLw38Lx38Xy38]R38OP{38p |38[ج}38ls!~38^38D438Fv38 pA ~38#CL38%bo |38'CL38*HF38+G38-I380Pu382CLt383CL385g' 387l| 388kP 538:KMw638;Ln38=CL38>CL:38@E2;38AM'<38BYt?38DEѕ38GCL38HCLB38Jz[ C38KDAD38LEE38N\GF38O{ G38xj*H38yN* L38zd:M38{c޹N38|lO38l P38gJ Q38AZR38MT38K"HU38JV38AW38CL38CLY38} Z38D_38CL38CL]38x:D ^38|R8 38CL38CLa38B 38CL38CLd38B?38CLf38^38CLh38GgRi38V"'38CLk38Z) l38O m38Nu n38u@o38m,p38Gq38m r38l\) s38McHt38Lw0u38D38CL38CLx38: y38Pԃz38H38CL38CL}38G~38L7t38mE 38B9 38CL~38CL38E38W 38_f38d38]438CL 38w4 38 CL38 CL 38 38CL38CL38O{|38CL38OP38Bjb 38Ck 38FCL38GCL38HCL38KV 38Lc38M\38NZ38QP38Sg438TgB38Ug!38VS3"38WG3#38Xl$38YI}%38ZO)&38[Lh'38\Km(38_}~ 38bCL*38dGA+38eY!<38hCL-38jAW338mCL38nCL038p 138qJ238sKi338tN}E438u@38wCL638x]38yCL838{C38CL:38Ge38CL<38^ =38A 38CL38CL@38L0A38J'B38CW38CL38CLE38I/H38BHI38hx| J38\dK38AL38m- 38Z%\ 38ixB 38K38E,O38DI38ixB 38ixB 38DV38i 38}738Df38P5238Ij38L38 E38 JP38B 38K38M38JP38I~38o^ 38X38Eʘ38CL38G^38Dz38!CL38"CL38#CL38$CL38%CL38&CL38'CL38(CL38+D38-~_38.I38/OxR380VR381V!H383CL384CL385CL386CL388CL389CL38:CL38;^38CL38@NaM38BCL38lCܪ38nCL38oCL38qvK 38tCL38uCL38vCL38wCL$38zK%38{I6&38}I38CL*38L',38D38CL.38M>N38CL38CL38CL38CL338o;438A3638Q3738N9838J938GB:38Nc3;38N<38M438CL>38U?38Js@38GJA38ouq 38CLD38mm E38GF38F0G38XP38i038pT38h338F38]38BA38c 38`P 38FR38GQ!38CL 38CL38CL38a>' 38CL38| 38~ 38EV[38{ 38Z 38y{ 38CL38CL38CL38CL38CL38F38HqL38@S38qa38 ],`38 |ƚ 384k 385n& 388sP38;H38<^O38>B!38?Bc38AA 38DV38EB838FC38I}f 38JR* 38M]Y 38O_38PL038Q^38RCL38SCL38TCL38UCL38WCL38XCL38YCL38ZCL38[CL38^LZ 38`H38aI38bIL38eK38hhf }e38j}f385po M38w N38D"O38}r P38G_[Q38cR38NT&S38r1 T38E%V38e X38GNY38K[38q%\38PAl^38b_38gq `38Coa38qGb38rc38n(38CL38CL38CLg38rr* 38CL38CL38CL38CLm38 HGn38 &go38 h+ 38 CL38 CL38 CL38 CL38 CL38 CL38 CLw38 I34x38 \y38 e8R38 OP{38 b |38 Z}38 j~38 ^38 D)38 !FI38 %vU38 J'V38 A38 CL38 CLY38 ~s Z38 DJ38 CL38 CL]38 y ^38 z$ 38 CL38 CLa38 AZ38 CL38 CLd38 B"38 CLf38 ^38 CLh38 Gni38 U-l38 CLk38 Z! l38 LǮ m38 K\ n38 to38 lCp38 q# q38 l r38 n3 s38 Mk}t38 Lu38 D38 CL38 CLx38  y38 Mz38 H38 CL38 CL}38 G~38 Lj38 oi 38 A38 (CL~38 )CL38 +E38 -W 38 .e#438 /f>f38 0a338 2CL 38 4vW 38 7CL38 8CL 38 9l38 :CL38 ;CL38 >Ok38 @CL38 COP38 Fjp 38 Gm8 38 JCL38 KCL38 LCL38 OV 38 Ph38 Q_38 R[P38 UPB38 W_R38 Xdg38 Yc!38 ZR "38 [Ap#38 \k$38 ^Ixu%38 _O9u&38 `L8U'38 aK(38 }R 38 CL*38 H+38 a}38 CL-38 Ae38 CL38 CL038 : 138 H238 K338 N438 @38 CL638 ]38 CL838 B38 CL:38 H 38 CL<38  =38 AL38 CL38 CL@38 L]A38 JsB38 C38 CL38 CLE38 IH38 @JI38 ta J38 i d K38 @L38 AZ38 \^ 38 ixB 38 K)38 E*38 E9[38 ixB 38 ixB 38 EG38 i 38 } 38 E38 O38 I+K38 L38 E38 JP38 B 38 QX38 M38 JP38 Hκ38 o^ 38 X38 Eʘ38 CL38 !G^38 #Db38 %CL38 &CL38 'CL38 (CL38 )CL38 *CL38 +CL38 TCL38 XD38 Yc438 ZI338 [VR38 \[+38 ]VR38 _CL38 `CL38 aCL38 bCL38 dCL38 eCL38 fCL38 g^38 hCL38 iCL38 jCL38 lN]38 nCL38 pC38 rCL38 sCL38 uw 38 xCL38 yCL38 zCL38 {CL$38 ~L,%38 Jic&38 Q38 CL*38 Ld,38 F؟38 CL.38 zF^ 38 CL38 CL38 CL38 CL338 o438 A3638 Nf738 P6f838 D938 Gc:38 M;38 Q<38 L3338 CL>38 W ?38 JS@38 GA38 p3 38 CLD38 mh E38 GF38 F G38 Z38 j38 pK338 j3338 H38 `@38 BU38 d7' 38 bb 38 FT38 GB!38 CL 38 CL38 CL38 g/ 38 CL38 |= 38 x0 38 !E38 #|R8 38 %ײ38 (z 38 +CL38 ,CL38 -CL38 .CL38 /CL38 2F 38 4Hw38 5@c38 6qJ!38 9]/38 :| 38 ;kw 38 38 FB&38 HA: 38 KV38 LBf38 MC38 P} 38 QXP 38 UZ7w 38 V\,38 WH38 ^38 CL38 CL38 CL38 CL38 CL38 CL38 CL38 CL38 CL38 L38 H38 IP38 H38 K38 g33 }e38 %~ʾ}f38 `p M38 v N38 DO38 AP38 G@Q38 c܋R38 NpS38 q9 T38 FJV38 hu X38 GY38 K(~[38 Ր\38 R}^38 ci_38 p* `38 Ba38 Zb38 [c38 U38 CL38 CL38 CLg38 q 38 CL38 CL38 CL38 CLm38 Gn38 o38 h| 38 CL38 CL38 CL38 CL38 CL38 CL38 CLw38 Lx38 [By38 a38 OP{38 kfg |38 I[R}38 Jj~38 L^38 OC38 PFX838 Tu ~38 VCL38 Xad |38 ZCL38 ]Hg38 _F1@38 `I38 cKx`u38 eCLt38 fCL38 idw 38 jl?} 38 kj 538 mKZ4638 nLu38 pCL38 qCL:38 sE;38 uI<38 v[?38 wF 38 zCL38 {CLB38 }z C38 }bD38 E1E38 b(F38 zG38 [qH38 N@ L38 mpM38 mgN38 vO38 me P38 f Q38 AҩR38 ST38 KX U38 JD V38 AN38 CL38 CLY38 ~ Z38 D_38 CL38 CL]38 yl ^38 w% 38 CL38 OPa38 @38 CL38 CLd38 By38 CLf38 ^38 CLh38 GJi38 TP38 CLk38 Z l38Nk m38M=q n38mffo38m?Hp38s= q38q r38m3 s38Mp t38Lu38} 38!CL38#CLx38%@y38&Rz38'H38*CL38+CL}38-HO ~38/L380AV381B383CL~385CL387FL389W 38:a38;c938<^<38>CL 38@xo 38CCL38DCL 38EB38FCL38GCL38JO38tCL38wOP38{kd 38|m 38~CL38CL38CL38W  38Uq38M~g38K338P38]\)38b^38a!38V,"38Ng#38v$38Iw%38OC&38L.P'38K(38} 38CL*38I+38]i38CL-38AL38CL38CL038@138G7238K338N438D38CL638]38CL838B=38CL:38HG38CL<38c =38AW338CL38CL@38L/cA38J4B38C38CL38CLE38IH38G:I38j J38T K38DL38Qh38Z` 38ixB 38M38FN=38FN=38 ixB 38 ixB 38 F>K38i 38} 38E38I){38?L38BE38DJ038GB 38HLo38IM38KJP38MHn38Po^ 38QX38REʘ38TCL38WF&38XDO38ZCL38[CL38\CL38]CL38_CL38`CL38aCL38bCL38eD38f 38gI338hUf38iVR38kVR38mCL38nCL38oCL38pCL38qCL38rCL38sCL38t^38vCL38wCL38CL38NU38CL38C<38CL38CL38x0 38CL38CL38CL38CL$38K%38I&38H)38CL*38K,38O38CL.38H38CL38CL38CL38CL338o438A3638R33738Q&f838Hf938G*:38RFg;38Q <38Ng38CL>38U/?38Jw@38GJA38o 38 CLD38 lR E38G|JF38F G38X538i 38pf38h438K38aE38C[p38c 38a 38GX38 I!38#CL 38$CL38%CL38'f 38+CL38-~ 38.A:%38/E380},l 382x 385z)B 388CL389CL38;CL38A38JB38Cq38CL38CLE38%J;H38&II38(]^ J38)ML K38,CcL38.DY380[; 381ixB 383J384E385E386ixB 387ixB 388ET389i 38;} 3838V?38JxB@38 GA38 pӖ 38CLD38k/ E38GxF38FG38ZC38g38n338g338M38a)38C38 eM 38!b 38"Fs38$Hs<!38'CL 38PCL38QCL38Sbs 38VCL38X~24 38Y|5! 38[E38\} 38^\q38azcz 38dCL38eCL38fCL38gCL38hCL38lE38mH"38n@f38oq#38r]/38s} 38tl& 38un~k 38xsI38|I A38}W^38~A%38{in 38B 38TS38B^38B=38} 38NcI 38]f 38`Ff38L38^38CL38CL38CL38CL38CL38CL38CL38CL38CL38Lm38H38Ixu38I738K =38h@ }e38^k}f38ky& M38v N38D";O38|K P38Hn*Q38!d}R38"NjS38#pPL T38$CV38%b3Y X38'GJY38)J[38*VE\38+Pl^38.do_38/ir `381A|a382Zzb383Yuc385V!H387CL388CL389CLg38;r 38=CL38>CL38@CL38ACLm38DG9n38G o38Hi{c 38JCL38KCL38MCL38NCL38OCL38PCL38QCLw38|N=qx38}Z\)y38~^38OP{38c |38[i}38k~38^38C38Fyd38o,| ~38CL38a) |38CL38H'W38Ge38Hھ38Hgpu38CLt38CL38b 38kT 38i 538Kz638Ld38CL38CL:38E;38C<38Y?38E38CL38CLB38z? C38OD38FzE38[qF38s34G38^qH38N L38^M38\N38gpO38o,| P38jD Q38AR38N/}T38K@XU38J'V38A38CL38CLY38' Z38C38CL38CL]38xWc ^38{ 38CL38CLa38 B38 CL38CLd38B38CLf38^38CLh38Gxi38R[38CLk38FZ l38GN{ m38HMQ n38Kt3o38Lm~ip38Ns q38Pp\) r38Qpq s38RMit38SLqu38TC]38VCL38WCLx38Y@Ry38ZRz38[IE38^CL38`CL}38bH~38dM 38e@N38hB38jCL~38kCL38mF38oX 38q]f38r_38s[38uCL 38wx 38yCL38{CL 38|38}CL38~CL38O38CL38OP38jSk 38lT 38CL38CL38CL38W. 38Iњ38Q38O38PB38e*38i38i !38Kg"38v#38_$38Iv%38O5&38LS'38K.(38C38CL*38@Y+38__38CL-38A"38CL38CL038@Q138L 238Kf338O+438 @k38CL638]38CL838C38CL:38Hk38CL<38 =38AH38 CL38!CL@38$L/cA38%JB38&C38(CL38)CLE38+J3H38,EsI38-p: J38.F K382DL384A387[- 388ixB 38:M^387 Uҕ?7 Jp@7 GA7 y 7 CLD7 n0 E7 GjF7 FG7 Y7 h7 o&f7 h\7 O7 _G7 C7 d 7 b  7 Fm7 Hm!7 CL 7 CL7 CL7 fJ 7 CL7 ~l^ 7 r 7 E*7 | 7 M$ 7 z 7 CL7 CL7 CL7 CL7 CL7 E7 ,H7 -@X37 .p87 1]/7 2} 7 3l& 7 4n 7 7p@7 :I7 <[_7 =Af7 @{a 7 CB 7 FT,7 GB+7 HB%7 K}h 7 LU 7 O\3 7 Q^7 RJVf7 S^7 TCL7 UCL7 VCL7 XCL7 YCL7 ZCL7 [CL7 \CL7 ]CL7 `L7 bH7 cIed7 dIed7 gK{7 hR}e7 _cK}f38jr M7 wY N7 D?O7 BP7 GxQ7 cR7 NS7 p T7 GpV7 jr X7 G'Y7 K[7 j\7 P.^7 e]_7 q `7 AFa7 X b7 Yٚc7 W7 CL7 CL7 CLg7 r 7 CL7 CL7 CL7 CLm7 Gn7 ~ٚo7 iV 7 CL7 CL7  CL7  CL7  CL7  CL7 CLw7 Hx7 U34y7 \H7 OP{7 n |7 \}7 k_~7 ^7  C^7 !F[7 %p ~7 'CL7 )`63 |7 +CL7 .HD7 /CCl7 YI7 \JSu7 ^CLt7 _CL7 bak 7 ck 7 div 57 fK~67 gL7 iCL7 jCL:7 lE;7 mL<7 o[I?7 pEO7 sCL7 tCLB7 vz C7 wN)D7 xEE7 zTǮF7 {lG7 |TH7 }O| L7 ~fT{M7 cEN7 nnO7 n P7 g Q7 A/R7 T T7 K`<U7 JAdV7 A7 CL7 CLY7 K Z7 D;7 CL7 CL]7 xWc ^7 z)B 7 CL7 CLa7 A7 CL7 CLd7 B 7 CLf7 ^7 CLh7 Goi7 QpN7 CLk7 [o l7 M8R m7 LL n7 ro7 mp7 t q7 l r7 m{ s7 Mt7 Lĥu7 A7 CL7 CLx7 @y7 S z7 I7 CL7 CL}7 I~7 !M+7 "IG7 %C7 'CL~7 (CL7 *F7 ,X 7 -af7 /`97 0\17 2CL 7 4xe 7 6CL7 7CL 7 9h7 :CL7 ;CL7 >O7 @CL7 COP7 FlD 7 GmJ] 7 JCL7 KCL7 LCL7 OW 7 Paq7 QY7 RW7 UPB7 Wb47 Xig7 Ye0!7 ZEs3"7 [A,#7 b@$7 I}%7 O(&7 L#'7 KMw(7 @|7 CL*7 @m+7 \i:7 CL-7 A:7 CL7 CL07 @17 J27 KL{37 ODm47 A7 CL67 ]7 CL87 C:7 CL:7 Hd7 CL<7 ~; =7 Aҩ7 CL7 CL@7 Lv4A7 J B7 C܅7 CL7 CLE7 JXH7 CI7 Y J7 g K7 F#L7 |j 7 Z}W 7 ixB 7 N7 H7 H7 ixB 7 ixB 7 G&"7 i 7 } 7 E#7 P527  I7  L7  E7 JP7 EV7 O?7 M7 JP7 I~7 o^ 7 Y]7 Eʘ7 CL7 "G^7 #DO7 MCL7 OCL7 PCL7 QCL7 RCL7 SCL7 TCL7 UCL7 XB`7 Zt6g7 [Hɚ7 \Zq7 ]^47 ^]L7 `CL7 aCL7 cCL7 dCL7 eCL7 fCL7 gCL7 h^7 iCL7 jCL7 lCL7 mNU7 oCL7 rCa7 tCL7 uCL7 vt 7 yCL7 zCL7 {CL7 |CL$7 K%7 J&7 Oɖ7 CL*7 L@,7 D޹7 CL.7 DJ7 CL7 CL7 CL7 CL37 pq47 A67 K977 Jg87 If97 G;P:7 Pٙ;7 P4<7 OVg7 CL>7 W[1?7 J4@7 GA7 t 7 CLD7 n`* E7 GpxF7 FG7 ZO7 jFf7 p7 i7 Q 7 ]@7 C07 d 7 b 7 Hs<7 Jw!7 CL 7 CL7 CL7 g 7 CL7  r 7 !uD 7 "D7 #}h 7 %7 (z? 7 +CL7 -CL7 .CL7 /CL7 0CL7 3EX7 4H7 5@S7 6pP7 9]337 ;~ 7 7 CL7 CL]7 xt ^7 v 7 CL7 CLa7 @`27 CL7 CLd7 C'7 CLf7 ^7 CLh7 Hi7 P[27  CLk7  [/ l7 N m7 Mz n7 sLo7 mop7 p( q7 lff r7 j s7 Mt7 Lu7 D7 CL7 CLx7 !@۶y7 "Rdz7 #G7 &CL7 'CL}7 )HH~7 +MU7 ,I 7 -Cho7 0CL~7 1CL7 3G )7 5X* 7 6al7 7c`7 8^l7 :CL 7 S J7 \6 K7 rL7 @r7 \Ǯ 7 ixB 7 N7 H-7 HI>7 i 7 ixB 7 HVF7 i 7  }7  E 7 6P'T7 8I7 9L7 JP7 AEV7 BDF 7 CM7 FJP7 GI~7 Jo^ 7 KX7 LEʘ7 NCL7 QG^7 RC7 TCL7 UCL7 VCL7 XCL7 YCL7 ZCL7 [CL7 \CL7 _C337 `vf7 aI37 bMR7 dV8R7 eOxR7 gCL7 hCL7 iCL7 jCL7 kCL7 lCL7 mCL7 o^7 CL7 CL7 CL7 NZ7 CL7 Cm7 CL7 CL7 v 7 CL7 CL7 CL7 CL$7 L%7 I&7 M=7 CL*7 LR,7 F7 CL.7 x 7 CL7 CL7 CL7 CL37 pO47 A67 U77 KL87 D97 G:7 N;7 P<7 Kf7 CL>7 UD#?7 J@7 GA7 s 7 CLD7 n E7 GF7 F,bG7 Wh7 l`7 r>f7 k7 Rϥ7 _~7 D7 bA 7 _d 7 I=7 KD!7 !CL 7 "CL7 #CL7 %c!( 7 (CL7 *' 7 +mYk 7 -E#7 . O 7 /I 7 0z[ 7 3CL7 4CL7 5CL7 6CL7 7CL7 cEڬ7 dHR7 e@A7 fp7 i]337 j~; 7 km 7 lnl 7 osP7 sI;7 tY7 uA~7 xvh. 7 {B 7 ~U{7 rk 7 C 7 } 7 N 7 ] 7 ^7 L07 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 M;'7 H7 I]87 Ir7 K{7 h@ }e7 /`}f7 lgJ M7 w N7 DO7 e P7 G )Q7 dER7 NS7 @}BT7 D?V7 dѦ X7 G'Y7 Ji[7 s\7 Rp[^7 b_7 m `7 (Aa7 )e^b7 +dqc7 ,]7 .CL7 /CL7 0CLg7 2qQ 7 4CL7 5CL7 7CL7 8CLm7 ;GDgn7 >o7 ?j 7 ACL7 BCL7 DCL7 ECL7 FCL7 GCL7 HCLw7 KPx7 L[\y7 Mc>7 OOP{7 Rg |7 T[}7 UjR~7 W^7 ZCF7 \F7 _z ~7 aCL7 cb |7 CL7 Hs7 B(7 H7 Ku7 CLt7 CL7 _j 7 kP 7 h/ 57 K67 L7 CL7 CL:7 F;7 MX<7 [?7 D7 CL7 CLB7 z C7 DlD7 EE7 ` F7 x\*G7 eHH7 OP L7 _W M7 \ffN7 hO7 oI P7 jSk Q7 B)R7 NXT7 KyU7 J|V7 BF7 CL7 CLY7 @gvZ7 D7 CL7 CL]7 xWc ^7 zF^ 7 CL7 CLa7 A7 CL7 CLd7 CSc7 CLf7 ^7 CLh7 H*i7 OvX7 CLk7 [T? l7 L m7 K{ n7 to7 m1p7 off q7 n r7 kaH s7 !M!t7 "Lu7 %@7 (CL7 )CLx7 +@y7 TP z7 UH 7 XCL7 ZCL}7 \I~7 ^M}7 _L7 `C?7 bCL~7 cCL7 eG )7 hW 7 i`7 jby7 k]f7 mCL 7 ow| 7 rCL7 sCL 7 t'7 uCL7 vCL7 yOh7 {CL7 ~OP7 kZY 7 oo 7 CL7 CL7 CL7 W}7 7 cf7 \f7 X7 PW7 d*7 i7 h!7 C3"7 x#7 ]9$7 IC%7 OpK&7 L`'7 KcN(7  O 7 CL*7 G]+7 `7 CL-7 B}7 CL7 CL07 @17 H27 Kj37 O=47 AVx7 CL67 ]7 CL87 Cμ7 CL:7 H7 CL<7 )b =7 Af7 CL7 CL@7 LA7 KatB7 D 7 "CL7 #CLE7 &JH7 (~ĖI7 +i J7 ,N K7 /EA L7 2[7 4Z` 7 5ixB 7 7N7 9I"d7 :I=7 =ixB 7 >ixB 7 ?I/j7 @i 7 B} 7 CD7 FP e7 HIpJ7 JL7 ME7 OJP7 RB 7 SC7 TM7 VJP7 WHЌ7 o^ 7 XF7 Eʘ7 CL7 F7 CV7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 Dk37 t6g7 I37 Nc7 MR7 PO\7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 ^7 CL7 CL7 CL7 NM7 CL7 C7 CL7 CL7 |} 7 CL7 CL7 CL7 CL$7 K>%7 J>&7 LIG7 CL*7 L"y,7 Q7 CL.7 J<7 CL7 CL7 CL7 CL37 pN47 A367 S@77 M87 H97 G:7 I;7 K<7 Hs37 CL>7 S?7 J@7 GA7 o۔ 7 CLD7 k E7 GF7 F4G7 U=7 oVf7 Ht7 Ik7 LTW7 M`:"7 ND>7 Ob 7 P` 7 QJ+7 TK!7 VCL 7 WCL7 XCL7 Ze 7 ]CL7 _@7 `},l 7 aE*7 c~ 7 de7 ez 7 hCL7 iCL7 jCL7 kCL7 lCL7 oE7 qH7 r@77 spn7 v]337 w~ 7 xlD 7 yn 7 |nL7 I *7 Z=7 @Ɍ7 r1 7 A 7 Uf7 E7 E7 ~ 7 SDY 7 _ 7 `f7 Lٚ7 ^7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 CL7 M,7 H(7 I^!7 I7 K{7 hq}e7 dL-}f7 hG M7 w N7 DO7 BP7 GQ7 #e R7 $N3S7 %AҩT7 &IV7 'm X7 )GYY7 *K[7 ,W\7 -P^7 0d/_7 1t9 `7 3Ca7 4db7 5d c7 7] 7 9CL7 :CL7 ;CLg7 =rU 7 ?CL7 @CL7 BCL7 CCLm7 FHEn7 I~o7 Jk 7 tCL7 uCL7 vCL7 xCL7 yCL7 zCL7 {CLw7 ~Jx7 [qy7 ^Q7 OP{7 p |7 [ .}7 ja~7 ^7 Cѡ7 FB7 wna ~7 CL7 _ |7 CL7 H7 B97 H7 Hu7 CLt7 CL7 _X 7 k 7 h 57 K67 L7 CL7 CL:7 F/;7 M<7 Y7/?7 D7 CL7 CLB7 z C7 @D7 FTE7 _F7 saHG7 VGH7 Os L7 fǯM7 d34N7 pO7 n P7 gn Q7 AR7 T*T7 KU7 JLV7 Bi7 CL7 CLY7 @RZ7 DG7 CL7 CL]7 xe ^7 xo 7  CL7 OPa7 A 47 CL7 Cp7 ACLf7 B^7 CCLh7 EH9Qi7 FN`7 ICLk7 L[my l7 MNaH m7 OL n7 Rn3o7 Smp7 Um q7 Vm=q r7 Wl{ s7 XMWt7 YLu7 ZB(7 \CL7 ]CLx7 `AKy7 aNԜz7 bC 7 eCL7 fCL}7 hH[~7 jM07 kM,7 lCr7 oCL~7 pCL7 rF57 hW 7 i`7 jby7 k]f7 mCL 7 ow| 7 rCL7 sCL 7 t'7 uCL7 vCL7 yOh7 {CL7 ~OP7 kZY 7 oo 7 CL7 CL7 CL7 W}7 7 cf7 \f7 X7 PW7 d*7 i7 h!7 C3"7 x#7 ]9$7 IC%7 OpK&7 L`'7 KcN(7  O 7 CL*7 G]+7 `7 CL-7 B}7 CL7 CL07 @17 H27 Kj37 O=47 AVx7 CL67 ]7 CL87 Cμ7 CL:7 H7 CL<7 )b =7 Af7 CL7 CL@7 LA7 KatB7 D 7 "CL7 #CLE7 &JH7 (~ĖI7 +i J7 ,N K7 /EA L7 2[7 u\ 7 vixB 7 Mw7 I"d7 I"d7 ixB 7 ixB 7 H7 i 7 } 7 D7 P e7 Ig57 L7 E7 JP7 B 7 +7 M7 JP7 H7 o^ 7 S7 yQ\?7 zJ`@7 {GJA7 ~o 7 CLD7 mh E7 GF7 F'G7 SI[7 nI7 tS37 lf7 U;7 _Ke7 D>7 c!( 7 `S 7 I>7 K6!7 CL 7 CL7 CL7 h 7 CL7  7 t!N 7 D̘7 ~OI 7 Ϻ#}7 { 7 CL7 CL7 CL7 CL7 CL7 E7 H7 @b_7 pӓ7 ]337 ~] 7 l8 7 o 7 of7 H7 X57 @.7 r 7 A 7 V7 q 7 C 7 ~# 7 V 7 \j 7 ^Vf7 If7 ^7 CL7 0CL7 1CL7 2CL7 3CL7 4CL7 5CL7 7CL7 8CL7 ;ME/7 I7 BK{7 EgS3 }e7 Z? }f7 gs M7 bxzJ N7 eDO7 fA^!P7 gF-Q7 jf nR7 kNۢS7 s T7 GV7 jǫ X7 GNY7 KF[7 s\7 Q^7 e_7 mr `7 Dga7 |xRb7 }4c7 v7 CL7 CL7 CLg7 r3 7 CL7 CL7 CL7 CLm7 Hn7 Io7 k4 7 CL7 CL7 CL7 CL7 CL7 CL7 CLw7 Lx7 UQy7 `\7 OP{7 h |7 Zmi}7 nb~7 ^7 D8'7 Fë7 q ~7 CL7 b9 |7 CL7  H+7  B7  H7 Pzcu7 CLt7 CL7 _% 7 k 7 k 57 K367 L7 CL7 CL:7 !F>K;7 "L&x<7 #Zu?7 $D7 'CL7 (CLB7 *z C7 ,~D7 /FTE7 1XF7 2sBG7 3V4H7 \O L7 ^XhM7 _T\N7 `_O7 clD P7 de>t Q7 eBR7 gTYT7 hKU7 iJV7 jB7 lCL7 mCLY7 o@Z7 pD7 sCL7 uCL]7 wxWc ^7 xu 7 {CL7 ~OPa7 ' 7 CL7 CLd7 C>7 CLf7 ^7 CLh7 HO i7 M7 CLk7 [~ l7 O\ m7 N33 n7 mo7 mp7 o q7 k r7 i s7 MJt7 Lu7 @?7 CL7 CLx7 @=y7 Mz7 Ca7 CL7 CL}7 GB~7 Myi7 MY7 C>X7 CL~7 CL7 G7 hW 7 i`7 jby7 k]f7 mCL 7 ow| 7 rCL7 sCL 7 t'7 uCL7 vCL7 yOh7 {CL7 ~OP7 kZY 7 oo 7 CL7 CL7 CL7 W}7 7 cf7 \f7 X7 PW7 d*7 i7 h!7 C3"7 x#7 ]9$7 IC%7 OpK&7 L`'7 KcN(7  O 7 CL*7 G]+7 `7 CL-7 B}7 CL7 CL07 @17 H27 Kj37 O=47 AVx7 CL67 ]7 CL87 Cμ7 CL:7 H7 CL<7 )b =7 Af7 CL7 CL@7 LA7 KatB7 D 7 "CL7 #CLE7 &JH7 (~ĖI7 +i J7 ,N K7 /EA L7 2[7 Z 7 ixB 7 Q7 Jk7 Jk7 i& 7 ixB 7 I7 i 7 }7 DL7 PP7 I.7 L7 %E7 (JP7 +B 7 -x 7 0M7 2JP7 3I~7 6o^ 7 7S7 CL*7 L3,7 E)7 CL.7 vܹ 7 CL7 CL7 CL7 CL37 p47 A367 O 77 L387 F97 G:7 Ip;7 K3<7 G7 CL>7 Pf?7 Jq@7 GA7 q3 7 CLD7 nQ E7 GqbF7 FG7 Q7 j7 q7 iQ7 V>W7 ]f7 Dp]7 aD 7 _Z 7 K7 L!7  CL 7  CL7  CL7 at 7 CL7 @&7 r+ 7 DZ7 ~l^ 7 *7 {/9 7 CL7  CL7 !CL7 "CL7 #CL7 'E 7 PHp7 Q@<7 Rp,7 U]337 V~; 7 Wl 7 Xo 7 [r 7 _H7 `X 7 a@\7 dr 7 gB 7 jV`7 kE%7 lEo7 o~24 7 pN5 7 t\] 7 u^7 vJVf7 w^7 xCL7 yCL7 zCL7 |CL7 }CL7 ~CL7 CL7 CL7 CL7 M(7 HqL7 IQk7 I7 K{7 g3 }e7 mT }f7 hV M7 w N7 D";O7 @P7 F?Q7 g&R7 NS7 r T7 EIV7 eC X7 GY7 K>[7 实h\7 O3^7 c&_7 m `7 Ca7 `b7 `c7 ]57 CL7 CL7 CLg7 r 7  CL7 !CL7 #CL7 $CLm7 'HJMn7 *o7 +k  7 -CL7 .CL7 /CL7 1CL7 2CL7 3CL7 4CLw7 7Lx7 8Yy7 9^\7 ;OP{7 >h |7 @[/2}7 Al~7 C^7 FD U7 GF?7 Ks ~7 MCL7 Ob |7 QCL7 |HH 7 ~B7 I 7 Gu7 CLt7 CL7 `cT 7 jH 7 k 57 KM67 L7 CL7 CL:7 FL;7 K<7 [?@?7 E27 CL7 CLB7 z[ C7 |D7 FE7 \F7 sG7 W=qH7 O2 L7 ^M7 \@N7 fgO7 j P7 f7 Q7 C R7 P94T7 KkU7 JV7 Bjh7 CL7 CLY7 @Z7 D7 CL7 CL]7 x+ ^7 t4 7 CL7 OPa7 ~z 7 CL7 CLd7 D7 CLf7 ^7 CLh7 HVFi7 L7 CLk7 [v% l7 NL m7  MB n7  n o7  n*p7 s q7 lG r7 k. s7 Mit7 Lu7 Dk7 CL7 CLx7 Ay7 Jѣz7 DCw7 GCL7 HCL}7 JGC~7 LM{=7 MMt57 OB7 QCL~7 RCL7 TF7 hW 7 i`7 jby7 k]f7 mCL 7 ow| 7 rCL7 sCL 7 t'7 uCL7 vCL7 yOh7 {CL7 ~OP7 kZY 7 oo 7 CL7 CL7 CL7 W}7 7 cf7 \f7 X7 PW7 d*7 i7 h!7 C3"7 x#7 ]9$7 IC%7 OpK&7 L`'7 KcN(7  O 7 CL*7 G]+7 `7 CL-7 B}7 CL7 CL07 @17 H27 Kj37 O=47 AVx7 CL67 ]7 CL87 Cμ7 CL:7 H7 CL<7 )b =7 Af7 CL7 CL@7 LA7 KatB7 D 7 "CL7 #CLE7 &JH7 (~ĖI7 +i J7 ,N K7 /EA L7 2[7 WZO 7 XixB 7 ZP7 [Jo,7 \J7 _ixB 7 `ixB 7 aJ7 ci 7 e~WG7 fDX7 iP527 kHI7 lL7 oE7 qJP7 tEV7 vqf7 {M7 }JP7 ~I~7 o^ 7 S7 5O1?7 6J[@7 7GA7 :{ 7 m4 E7 @G[F7 AFXG7 BP77 Fhg7 Gn;g;Vw;a;Dgl; b ; _v ; Kc; M!;CL ;CL;CL;h(# ;CL;^ ;m ;DV;},l ;Vzb ;{LS ;!CL;#CL;$CL;%CL;&CL;)E;*H;+@9;,q;0]33;17 ;2ll ;3o- ;6o3;9H;:_i;;@^;ftM ;iA{ ;mV;pvY ;qCw;r~@ ;sWO ;v\U ;w_y;xM0;y^;{CL;|CL;}CL;~CL;CL;CL;CL;CL;CL;Mh;HH};I:;I;K{;i }e;dO}f7 h M;w- N;D?O;BvP;G"Q;f3R;NS;q9 T;HV;l X;GY;K33[;宂\;Rg^;db_;sq `;B+a;Z\b;[34c;S0;CL;CL;CLg;r ;CL;CL;CL;CLm;G=n;C4o;,k4 ;.CL;/CL;0CL;1CL;2CL;3CL;5CLw;8Lx;9T y;:bH;;OP{;>o |;@Z};Ajd~;D^;GC!;HF;Ky ~;MCL;P` |;RCL;UHZ7;VBb;WI#;ZMu;]CLt;^CL;`^B ;ajm ;bj/ 5;eK6;fL;CL;CL:;F>K;;K@<;Zp?;EG;CL;CLB;z[ C;B}D;F%-E;UQF;iLG;MGH;O L;^ M;\nN;gxRO;n P;i Q;A"R;N]T;KU;JV;Bk!;CL;CLY;@=Z;D- ;CL;CL];x# ^;x ;CL;OPa;@S;CL;CLd;C;CLf;^;CLh;HO i;T;CLk;[k l;Nq m;M{ n;mfo;n`p; qff q; m r; k{ s; Mǟt;L*u;zcz ;CL;CLx;@.y;Kz;C~;CL;CL}; F~;"M;#I&D;$C<;&CL~;(CL;*F7 hW 7 i`7 jby7 k]f7 mCL 7 ow| 7 rCL7 sCL 7 t'7 uCL7 vCL7 yOh7 {CL7 ~OP7 kZY 7 oo 7 CL7 CL7 CL7 W}7 7 cf7 \f7 X7 PW7 d*7 i7 h!7 C3"7 x#7 ]9$7 IC%7 OpK&7 L`'7 KcN(7  O 7 CL*7 G]+7 `7 CL-7 B}7 CL7 CL07 @17 H27 Kj37 O=47 AVx7 CL67 ]7 CL87 Cμ7 CL:7 H7 CL<7 )b =7 Af7 CL7 CL@7 LA7 KatB7 D 7 "CL7 #CLE7 &JH7 (~ĖI7 +i J7 ,N K7 /EA L7 2[;,[ ;.ixB ;XN;YJk;ZJ\_;]ixB ;^ixB ;_J_C;`i ;b}A;cD;gP52;iI;jL;mE;oJ2;rEV;tk ;wM;yJ0;zI~;}o^ ;~X;Eʘ;CL;E;CV;CL;CL;CL;CL;CL;CL;CL;CL;t6g;tf;Eg;P8R;OxR;MR;CL;CL;CL;CL;CL;CL;CL;^;CL;CL;CL;NK;CL;C<;CL;CL;vh. ;CL;CL;CL;CL$;K %;J'&;R;;CL*;LZ,;Om;CL.;A;CL;CL;CL;CL3;qW4;!A36;$Hf7;%A38;&D#39;(GMb:;*Lg;;+J<;,J;.CL>;1N?;2JQ @;3G\zA;6: ;8CLD;:l E;N;Ai;Bo;Ci9;FV;G^b;HD:;IeT ;Jbb ;LJ;NM!;PCL ;QCL;RCL;Tc[ ;WCL;Yr ;ZsF ;D- ;} ;s;{Z ;CL;CL;CL;CL;CL;E;H;@A;p;]33;~; ;la7 ;oJ ;o#3;H;[;A;u ;A ;V\;U ;D;~OI ;O1 ;` ;`;Mc3;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;M4;HC;I g;I,;K{;gl }e;Q}f;`gos M;wt N;D"O;AaP;GQ;"e?R;#NS;Lp- T;MH|V;Nls X;PG{Y;RK=[;Sj\;TPJ^;Wb%_;Xo `;ZBM{a;[uRb;]rT{c;^v:;`CL;aCL;bCLg;dqQ ;fCL;gCL;iCL;jCLm;mGn;po;ql ;sCL;tCL;vCL;wCL;xCL;yCL;zCLw;}M4x;~U#y;^;OP{;kDD |;Z};iΩ~;^;CN;F!h;uS[ ~;CL;ch |;CL;Ho;C ;IV;J^u;CLt;CL;^z ;k ;i8 5;K6;L%;CL;CL:;FL;;Jn<;TGw?;E;CL;CLB;z C;NID;F E;T>F;g{G;K H;O$ L;_M;^QN;h>O;p P;k_ Q;AR;NR%T;K}eU;J%V;B;!CL;"CLY;$AZ;%DG;(CL;)CL];+xe ^;,{Z ;/CL;2OPa;3A;5CL;7CLd;9C{;CLh;@HO i;AV{;DCLk;G[ l;HOǮ m;IN= n;Ln33o;Mndp;Oq=q q;yop r;zpu s;{Mt;|L0u;}CFT;CL;CLx;@y;Sz;CSc;CL;CL};F?~;M;H;B0;CL~;CL;F>K7 hW 7 i`7 jby7 k]f7 mCL 7 ow| 7 rCL7 sCL 7 t'7 uCL7 vCL7 yOh7 {CL7 ~OP7 kZY 7 oo 7 CL7 CL7 CL7 W}7 7 cf7 \f7 X7 PW7 d*7 i7 h!7 C3"7 x#7 ]9$7 IC%7 OpK&7 L`'7 KcN(7  O 7 CL*7 G]+7 `7 CL-7 B}7 CL7 CL07 @17 H27 Kj37 O=47 AVx7 CL67 ]7 CL87 Cμ7 CL:7 H7 CL<7 )b =7 Af7 CL7 CL@7 LA7 KatB7 D 7 "CL7 #CLE7 &JH7 (~ĖI7 +i J7 ,N K7 /EA L7 2[;"Z` ;#ixB ;%Px;&Jk;'Jk;*ixB ;,ixB ;-Jw;.i ;0{;1D>;4O`;6I;7L;:E;;Yc?;Jn9@;GdA;rz ;CLD; l E; GmF; FG; [-;jA;pP;h;Ua;`U;D;e[ ;a ;K ;FMν!;HCL ;ICL;JCL;Ld ;OCL;Q@X;Ryz ;SD;U}f ;W6;Z{ ;]CL;^CL;_CL;`CL;aCL;dF;fH5;i7 ;ko;n]33;o~Ü ;pkd ;qo4 ;tm3;xH;yY;z@;~v ;A ;TM;D0;D%;~OI ;OO ;a ;_ ;Nf;^;CL;CL;CL;CL;CL;CL;CL;CL;CL;MH;H;Hٞ;I;K{;h =}e;WT.n}f;f M;x N;D#O;Ct<P;GQ;eqR;NS;~ T;IǓV; nB X;#GY;$KG[;%I\;&Pʫ^;)c%_;*sU `;+APga;.qb;/pc;0n*;2CL;3CL;4CLg;6q ;8CL;:CL;;CL;CL>CL>CL>CL> CLw> Jux> Qy>Z >OP{>nfg |>ZP}>i~>^>B>F>x ~>"CL>$cv |>&CL>)HH >*CU>+IV>/Mu>1CLt>2CL>4\ >5jl >7h 5>9KI6>:L+>dCL>eCL:>gF[G;>hFO<>iZ1?>jE>mCL>oCLB>q{LS C>rCD>sEE>uGF>vIG>w|34H>xP$x L>yTLM>z`N>{j#O>~o P>hq7 Q>AqR>TCT>KZU>JDV>Bð>CL>CLY>AlZ>D_>CL>CL]>y ^>yN >CL>OPa>A7=>CL>CLd>C>CLf>^>CLh>Hdi>RX>CLk>[ l>L m>KB n>nfo>np>q q>l r>j\) s>M݆t>Mu>U >CL>CLx>A$Zy>Kz>Ci(>CL>CL}>FT~>M՝>K*>CKh>CL~>CL>G;>XM >\f>^{3>WH>-CL >/w >2CL>3CL >4>5CL>6CL>9Oj>;CL>>OP>Bju >Ci >FCL>GCL>HCL>Kg7 >LK>MEg>ND>QP>SbH>Tgh>Ug34!>V|Y">Wj3#>XW&g$>YI{.%>[Odi&>\L%'>]K(>` >bCL*>dI+>ek >CL->Bk!>CL>CL0>@1>W}2>Kƶ3>P4>B9>CL6>]>CL8>D>CL:>Iw>CL<>z)B =>@>CL>CL@>LA>L)FB>D>CL>CLE>XH>D(I>a J>JĞ K>g~L>z$ >[; >ixB >P0>I6>J>ixB >ixB >IL\>i >|>E>O/>Im>L> E> JP>EV>KA>H8>Ji>I~>o^ >SEʘ>CL> F>!C\e>#CL>$CL>&CL>'CL>(CL>)CL>*CL>+CL>.v >/q>XCvg>YVG>[Z.>\VR>^CL>_CL>`CL>aCL>bCL>cCL>dCL>f^>gCL>hCL>iCL>jN0>lCL>oC>qCL>rCL>ty >wCL>xCL>yCL>zCL$>|L'%>}Il&>LE>CL*>L ,>Hzx>CL.>P">CL>CL>CL>CL3>q4>A36>~37>qS48>e9>E:>K|;>Jf<>J>CL>>WG?>J`@>GgbA>s8 >CLD>m7 E>GkF>F G>Xɨ>f>m>f[3>V/%>`\9>Dp]>ax >_Z >J_C>L*U!>CL >CL>CL>bq >CL> >@-S> Du>"|= >$W>'{ >*CL>+CL>,CL>-CL>.CL>1F->3H>6Fv >8o>;]33><~; >=l9 >>oe >AsI>DH>FV;>GA>Jv >MB# >PS>Q@>REa>U~@ >VN >Yc >[`3>Q>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>M2 >H_>H>I>K{>gf }e>$D}f>4e9 M>w N>D2O>@eP>GBQ>f$R>NS>AT>E;aV>e'9 X>GY>Kj[>D\>M(^>b_>m `>Cka>W޹b>Wqc>S>>CL>CL>CLg>qxq >CL>CL> CL> CLm> G%n>~6go>l» >CL>CL>CL>CL>CL>CL>CLw>Gux> Jy>!ZǮ>"OP{>Mh |>OZ=}>Qi~>S^>VC>WG>ZqV ~>]CL>__ |>aCL>dHF;>eC>fI%H>jHxu>lCLt>mCL>p\) >qj/ >rh1' 5>tK6>vL>xCL>yCL:>{Fq;>|E'<>}Y,?>E>CL>CLB>{Z C>~ƴD>E`{E>AF>HfG>BH>P@2 L>dYM>eN>oqO>l3 P>e!4 Q>BR>U`T>KTcU>JV>B>CL>CLY>AZ>DJ>CL>CL]>y#; ^>u >CL>OPa>r >CL>CLd>D>CLf>^>CLh>Hki>Q>CLk>[ l>M m>L n> n33o>!n*p>#o q>$k8R r>&jB s>'Mt>(Mu>+~z >.CL>/CLx>1A:%y>2Iz>3Ca>6CL>7CL}>9F/~>;M9>=J!%>>B>@CL~>ACL>CF>EX >G\p>H^^g>IVٚ>KCL >Mwt >xCL>yCL >zR>{CL>|CL>OD>CL>OP>l5h >n' >CL>CL>CL>t| >Ic3>C>Bg>P>\)>h@>dY!>n@">\S3#>N$>Iu%>OeT&>LkX'>K(>U >CL*>I2+>Y>CL->Bc>CL>CL0>@r1>Vj~2>K3>P4>B Z>CL6>]>CL8>@D>CCL:>EHؒ>HCL<>J =>KBɀ>NCL>OCL@>RM A>TL.B>UC\>WCL>XCLE>[[JH>\BͧI>_j4' J>`eY K>cHUL>et >hZ >iixB >kPK>lJ>mJ>qixB >rixB >sI/>ti >v} >wEN>zO`>I>L>E>JP>B >Pe>H8>J>I~>o^ >SEʘ>CL>G^>C3>CL>CL>CL>CL>CL>CL>CL>CL>t6g>lg>D>OxR>VR>V>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N8> CL> C>CL>CL>xWc >CL>CL>CL>CL$>K%>J+&>Nַ> CL*>#Lp,>$Ea>&CL.>(wt >*CL>+CL>,CL>-CL3>0qy4>2A36>5@7>6xs48>7ff9>9E:>;M\;>=K4>?CL>>BW1?>CJ@>lGrKA>osF >rCLD>tmv E>vGnF>wF/G>xZS>}l>~rf>j >U>a3>Dp]>c[ >_+ >J>M,!>CL >CL>CL>h6 >CL>@>qˈ >DB>|j >">{ >CL>CL>CL>CL>CL>FW~>H>)b >o>]/>~OI >la7 >p0 >p >H>V>@C >vR >A >UJ>w >C>~@ >V3 >dw >`f>R3>^>CL>CL>CL>CL>CL>CL>CL>CL> CL>4M1 >6H>7Hϣ>8Io>;K{>?fl }e>C }f>pdip M>bwn N>dD*O>eCNP>fG'Q>id\R>jN3S>ls T>mIOV>nn5 X>GYY>K<[>9\>P.9^>d&_>ur `>Da>Xb>Y >c>Q>CL>CL>CLg>q >CL>CL>CL>CLm>Hn>#4o>l׷ >CL>CL>CL>CL>CL>CL>CLw>HRx>Q=qy>V>OP{>rߓ |>Z2}>m\~>^>D>F>n ~> CL> bD |> CL> HH> CO> I9> Ku> CLt> CL> \- > jx > k 5> K6> Lu> CL> CL:> FT;> Dl<> !X)?> "GQ> %CL> &CLB> (|} C> *{zD> -E9E> /A8RF> 0LpG> 2n >H> 3P[ L> 4^ M> 5[#N> 6eRO> am P> chJ Q> dBR> gO$T> hK#2U> iJV> jBq> lCL> mCLY> oAlZ> pD> sCL> tCL]> vz7 ^> xw_ > {CL> }OPa> @> CL> CLd> D> CLf> ^> CLh> Hdi> P> CLk> [ l> O m> N\ n> mo> m1p> n = q> h r> i( s> Mt> M u> C > CL> CLx> A{y> RHz> Ci(> CL> CL}> F(~> M> I}> CY1> CL~> CL> Fm> X~ > [3> ]3> W> CL > v > CL> CL > 龜> CL> CL> O> CL> OP> jH > o > (CL> )CL> *CL> ,t& > .Kf> /E> 0Bg> 3P*> 5Wq> 6_> 7]q!> 8c"> 9T&f#> :Mg$> ;Iu%> =Lr'> >K^(> A O > DCL*> FI+> GZn&> JCL-> LB\> OCL> PCL0> R@r1> SU72> UK3> VPB4> WAV> YCL6> Z]> [CL8> ]CB> `CL:> bI :> CL<> ^ => B> CL> CL@> MA> LB> B> CL> CLE> `tH> @I> nk J> R$( K> HUL> s > \o > ixB > N> J> J> ixB > ixB > I> i > {ey> De> O> I?C> L> E> JP> B > Lv> J<> J > I~> o^ > Q> Eʘ> CL> Fa> C\e> CL> CL> CL> CL> CL> CL> CL> CL> q,> cVg> }> N> MR> P^> CL> CL> CL> CL> CL> CL> CL> ^> CL> !CL> #CL> $N>> &CL> )CӞ> *CL> +CL> Uy{ > XCL> YCL> ZCL> [CL$> ^L %> _J=&> bH`s> dCL*> gK,> hP> jCL.> lJ˽> nCL> oCL> pCL> qCL3> tq4> vA36> y@7> zu8> {d39> ~E:> H;> J)<> Eg> CL>> U5?> J@> G~A> r > CLD> m- E> GvF> F<G> YC> e> k 3> c>f> U0> _N> DU> a > `6 > Jt> K3!> CL > CL> CL> fE > CL> @> G0> D> {a > ݔ9> { > CL> CL> CL> CL> CL> F[> H5> 7 > os> ]33> ~# > l > p% > "sI> &Hx> 'U> (@> +u > .BE > 1Si > 2D> 3D> 6~24 > 8Pty > ;i{ >
    =U3> >^> ?CL> @CL> BCL> CCL> DCL> ECL> FCL> GCL> HCL> LMd> MH > NHŨ> OI> RK{> Ug }e> s}f> dhP M> wf N> D8VO> ~Du P> GeQ> etR> NS> q T> CV> aL X> G1Y> K33[> W\> N[^> d_> iUV `> C/a> UBb> VRc> Q5> CL> CL> CLg> qp > CL> CL> CL> CLm> H&n> o> lY > CL> CL> CL> CL> CL> CL> CLw> Cx> N>y> V> OP{> c |> Z$x}> l~> ^> CX> F4(> |& ~> CL> cJ |> CL> H6> C> H> IQsu> KCLt> LCL> O[k > PjA > Qj 5> SKA6> TL > VCL> XCL:> ZF;> [CIN<> \Zv?> ]F> `CL> aCLB> c{Z C> dND> eE"E> gFaHF> hCBG> ilH> jP` L> l` M> m\N> ngO> qo+ P> rkQ Q> sA"R> uNOT> vJbU> wJ~`V> xB> zCL> {CLY> }AZ> ~D4K> CL> CL]> yN ^> |C > CL> OPa> B#B> CL> CLd> C>> CLf> ^> CLh> Hdi> O> CLk> [! l> L m> K\ n> n&fo> nTp> m=q q> h\ r> iL s> M t> M u> { > CL> CLx> A:%y> Qz> C6]> CL> CL}> F7 ~>M->IkS>Ce>CL~>CL>G-a>X@ >\\>^33>W9> CL >"v4 >%CL>&CL >'>(CL>)CL>,O>.CL>1OP>4j >5m >8CL>9CL>:CL>>K>?FP>@D>CP>EZf>F`>G^!>HP">ID3#>JK$>KInx%>uOQ8&>vL<'>wK^(>z~z >|CL*>~I˔+>\$>CL->Brd>CL>CL0>@r1>]2>K3>P4>A͓>CL6>]>CL8>D_>CL:>I>CL<>@A=>B\>CL>CL@>LvA>L~B>BmO>CL>CLE>ddH>~oI>Z J>P K>E[L>t/ >Z >ixB >M>I"d>I"d>ixB >ixB >H>i >{ey>Df>OP>I->L>E>J0>EV>OBN>Iy>J0>I~> o^ > Q>Eʘ>CL>G^>>CL>?CL>@CL>ACL>BCL>DCL>ECL>FCL>Iqy>Javg>Kvg>LL>MP>NN\>QCL>RCL>SCL>TCL>UCL>VCL>WCL>X^>YCL>[CL>\CL>]N3>_CL>bC>dCL>kCL>m{ >oCL>pCL>qCL>rCL$>uK %>vI&>R>CL*>LlA,>R>CL.>~ >CL>CL>CL>CL3>q%4>A36>y7>{98>e9>E<:>H;>I9<>Eg>CL>>V?>JJ@>GA>qHF >CLD>l5h E>GJF>F?lG>Zy1>iC3>p>h>U>\ş>D>dc >_+ > I>> LX!> CL >CL>CL>c{ >CL>@gv>w >Du>| >n>{ >CL> CL>"CL>#CL>$CL>'FT>(He>+~; >-oQ>0]33>1~# >3k >4pB >7n\>:H>;W>=B>?A >jSs>nu >oC>p~# >qMx >tf" >u`3>vU3>w^>yCL>zCL>{CL>|CL>}CL>~CL>CL>CL>CL>M/L>H>HA>I,>K{>h}e>p}f> Oc M>w:a N>D0~O>B@P>HUQ>djR>NS>pX T>HcMV>k X>G1Y>K{;[>㮞h\>N@^>d_>sG `>BY)a>Ub>UxRc>T\>CL>CL>CLg>qA >CL>CL>CL>CLm>Gn>@33o>l >CL>CL>CL>CL>0CL>1CL>2CLw>6KLx>7N.y>8XB>9OP{>>Z}>?l-~>B^>EC>FF4(>Iq ~>KCL>Mc |>PCL>SH*>TD>UI>VFu>YCLt>ZCL>\[ea >]jc >^i{ 5>aKX6>bL7>dCL>eCL:>gF?;>hB%<>iT?>jF>CL>CLB>{Z C>OD>D(E>}F>BǮG>x H>PuD L>_M>\uN>fO>oI P>j Q>AR>NHT>JU>JV>B>CL>CLY>At@Z>D>CL>CL]>yz ^>@>CL>OPa>DB>CL>CLd>DG>CLf>^>CLh>Hs<i>N>CLk>\ l>L m>K n>lo>nop>f q> c\ r> c( s> M8t> M'u> C>CL>CLx>Ay>Pz>Cpi>CL>CL}>FE~>Mߨ>I~>Ct>!CL~>#CL>%G4>'Xi >([3>)\>*UP>,CL >.x# >1CL>2CL >3[C>\CL>]CL>`OƄ>bCL>eOP>hj >inL >lCL>mCL>nCL>ptM >rL<>sF >tE>wPVo>yX)>z^q>{\!>|U ">}G3#>~J$>Ia%>O0R&>LR'>K(>)b >CL*>Ii+>Z>CL->Brd>CL>CL0>@1>W22>Kt3>P4>B>CL6>]>CL8>D>CL:>I>CL<>{= =>@A>CL>CL@>LA>L >B>C>CL>CLE>\8H>H:I>fM J>Vj K>HuAL>zF^ >[- >ixB >P0>HVF>H~>i& >ixB >$Hs<>%i >'{ey>(E>+O>-IZ>.L>1E>3JP>6B >7P^>9H6>;JP>?o^ >@SAEʘ>CCL>FFa>GBm>ICL>JCL>LCL>MCL>NCL>OCL>PCL>QCL>TcVg>UYg>Vsf>XOxR>YVR>ZVR>\CL>]CL>^CL>_CL>CL>CL>CL>^>CL>CL>CL>N-S>CL>C>CL>CL>w4 >CL>CL>CL>CL$>L%>J<&>L>CL*>LT,>E~>CL.>w| >CL>CL>CL>CL3>qp4>A36>zf7>s38>j339>D:>Hg;>I<>H@>CL>>T?>Jk}@>GA>r >CLD>nn E>G3F>FC G>Yd>a3>h>`> TA> ^ o> D> ` >_LK >I>>J!>CL >CL>CL>h >CL>@n>A:%> DV>!| >#>&{ >QCL>RCL>SCL>TCL>VCL>YFK>ZH>] O >_oF>b]33>c~# >dl5h >ep`* >ir>lH[>mS>nBt>qzF^ >tB. >wTI>xDC>yD>|~ >~Vk >d >af>V>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>M >H>Hp>I>K{>f }e>#QX}f>\cl M>w- N>D<O>@ۢP>HO Q>dAR>NS>p T>G*vV>jC X>GY>K9 [>e\>O(^>c_>l9 `>!A,a>"r.b>$r c>%pB>'CL>(CL>)CLg>+qp >-CL>.CL>0CL>1CLm>4G~_n>7o>8l >:CL>;CL>=CL>>CL>?CL>@CL>ACLw>DG4x>EQRy>GW.>HOP{>Kgwx |>MZ@\}>Nl~>P^>SC>}F:>v ~>CL>cm |>CL>H>Ev@>I(->Ju>CLt>CL>[ >j >hy 5>Kr6>L&>CL>CL:>F~;>Kt<>[k?>F>CL>CLB>{Z C>ND>DE>hF>wG>hH>P L>`LM>]kN>huO>n P>i Q>A R>NT>JbU>JOV>C>CL>CLY>AlZ>D>CL>CL]>y ^>@>CL>OPa>C>CL>CLd>C>CLf>^>CLh>Hki>M> CLk>\J l>KR m>J n>lo>nkp>f q>d\ r>f s>MOt>Mu>DB>FCL>GCLx>IAOy>JNQz>LC6]>OCL>PCL}>RF/~>TM->UF>VCb>XCL~>YCL>[F5>^X{k >_a>`b3>aZ&g>cCL >ewB >hCL>iCL >j>kCL>lCL>oO>qCL>tOP>wk >xn' >{CL>|CL>}CL>tU >M>Hg>Eg>P >a>c>>a*!>\">W4#>O4$>I^!%>O,&>L;'>K(>~; >CL*>J=+>X>CL->BUZ>CL>CL0>@1>W2>KU3>P4>AF>CL6>]>CL8>DQN>CL:>H>CL<> =>B>CL>CL@>MA>K*B>|& >CL>CLE>bH>F6I>!z! J>"H| K>%HL>'i >*Y` >,ixB >.N>/I"d>0I"d>3ixB >4ixB >5H>6i >8{N>9DY>?I>@KCu>CE>EJPBB BLvBGBJPB I~B o^ B FBEʘBCLBG^BCBCLBCLBCLBCLBCLBCLBCLBCLB!cVgB"b,B#wgB%N B&MRB'MRB)CLB*CLB+CLB,CLB-CLB.CLB0CLB1^B2CLB3CLB4CLB6N,B7CLB:CmBdCLBeCLBgvܹ BjCLBkCLBlCLBmCL$BoK %BpJ`&BsJ/BvCL*ByK2,BzJOZB{CL.B~UBCLBCLBCLBCL3Bq4BA36BqS47Bk,8Bk@9BDfJ:BCL;BDɚBUd?BJ[@BGABq BCLDBkd EBGyFBFLGBYDBd<Bl0BdBTNBaBDBg BcjS BJ;BL!BCL BCLBCLBeT BCLB@}BB@BDB|ƚ BA6P B{ BCLBCLBCLBCLBCLBFYNBH^B~; Bo'B]33B,} B-k_ B.pn B1r3B4HB5VVB6@B:y# B=B+ B@R BCz$ BDC BE~ BFN5 BIfU BJ`BKVBM^BNCLBOCLBPCLBQCLBRCLBTCLBUCLBVCLBWCLBZM/B[HB]HB^I}BaKBdxs3 }eBY}f>d= MBwH NBD<OBAPBH~QBdv,RBNvSBp$ TBEVBf XBGYBKV>[B\BNa^Bc4_Bo `BAaBT\bBS4cBPHBCLBCLBCLgBq*c BCLBCLBCLBCLmBGP-nBٚoBk BCLBCLBCLBCLBCLB CLB CLwB FxBOyBVBOP{Bi |B[>7}Bl)z~B^BC^BF,B oI ~B#CLB%bl |B'CLB*HsB+F1B,IBXOuBZCLtB[CLB][L B^i9X B`hO 5BbK6BcLBeCLBfCL:BhFy;BiN4NB|g{OBme PBi/3 QBAt@RBNaMTBJKUBJ"VBBBCLBCLYBA{ZBD%BCLBCL]Bx ^B@-SBCLBCLaBCBCLBCLdBCμBCLfB^BCLhBHdiBLBCLkB\ lBJ{ mBI\ nBrffoBnpBd qB`L rB`8R sBMtBMuBDBBCLBCLxBAZyBLzBC'BCLBCL}BF7 ~BMBCB"CHB$CL~B%CLB'G&"B*X\ B+]3B,]fB-WfB/CL B1u65 B4CLB5CL B6́B8CLB9CLBBU?BJP @BGABp< BCLDBl~k EBG3FBFH}GBYB`fBfB_;3BSB`ݴBDUB` B_= BHO BI\!BCL BCLBCLBe BCLB @B!sF B"D%B#{Z B$JC B%{w B(CLB*CLB+CLB,CLB-CLB0FlMB1HB4~# B6nB9]33B;} BMB[J>NBVOBmYk PBh QBAt@RBMYTBJFUBJ VBBABCLBCLYBAlZBD4KBCLBCL]Bx:D ^B BCLBCLaBCDBCLBCLdBCuBCLfB^BCLhBHVFiBUtBCLkB[ lB J# mB H{ nBsoBnpBf qBc33 rBc\ sBMtBM uBCBCLBCLxBALyBJpFzBCB!CLB"CL}B$F~B&MB'HB*BB,CL~B-CLB/FB2Xb) B3\B4[3B5VB7CL B9x+ BB?CLB@CLBCOBmCLBpOPBsj> Btm BwCLBxCLByCLB{s] B}OB~IBG3BOBb(BcB`.!BMٙ"BAٚ#Bt3$BIO%BOy&BL'BKİ(B@WzBCL*BB+B[BBCL-BBBCLBCL0B@R1BU2BK 3BPpe4BAWBCL6B]BCL8BDBCL:BHBCLKBHLBABZ` BixB BMfBHBGquBixB BixB BGnBi B{eyBE4B OB5HRB6LB9B;JPB>B B?LvB@ELBBJPBCIHWBFo^ BHgBJDBLCLBOF&BPC$BRCLBSCLBTCLBUCLBVCLBWCLBYCLBZCLB]`B^YgB_t#4B`PBaOxRBbMRBdCLBeCLBgCLBhCLBiCLBjCLBkCLBl^BmCLBnCLBCLBN;BCLBC BCLBCLB} BCLBCLBCLBCL$BK%BIΘ&BJ;4BCL*BLL,BQ7BCL.Bw3 BCLBCLBCLBCL3Bq4BA36Bq@7Bl8B^339BC"G:BC\;BCBUT?BJG@BGAB p B CLDB l5h EB GFB FCGB Y6B cVgB iəB a3B SoB `%B D^}B b B a< B HUB Jf!B CL B CLB CLB h B !CLB #@;B $JB &DB '|C B (L3 B ){in B ,CLB -CLB .CLB /CLB 0CLB 4FzB 5H|B `~ B bn`B e]33B f} B gk B hp$ B kp33B nHB pX@qB qA=B ty B wBff B zQ+B }x B ~CB } B U7 B fw B `S3B U3B ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB LB HB HDB IB K{B h{}eB (^}fBgdf MB wWw NB D?wOB ~` PB GKQB dRB NSB pӖ TB CݣVB b XB GYB K[B I\B M^B dD3_B gUV `B AaB T bB QcB QkB (CLB )CLB *CLgB ,pԀ B .CLB /CLB 1CLB 2CLmB 5GnB 8yoB 9j B ;CLB B CLB CL]B x:D ^B  B CLB CLaB BB CLB CLdB C{B CLfB ^B CLhB Hs<iB VߑB CLkB \o lB I mB HG nB s3oB mCpB eǮ qB c33 rB d) sB MtB M\uB CSB "CLB #CLxB %A^vyB &PzB 'BB *CLB +CL}B UF ~B WMB YIPB ZB B \CL~B ]CLB _F~B aXq( B b`B d_gB eYyB gCL B iwna B kCLB lCL B nB oCLB pCLB sOB uCLB wOPB zj B {mJ] B ~CLB CLB CLB s B NB FqB EB OB XaHB ^B \0!B LY"B ~#B s34$B IO%B O&B Lo'B KІ(B  O B CL*B H +B Y!<B CL-B BEB CLB CL0B @b1B \2B J!3B PfU4B AB CL6B ]B CL8B D_B CL:B H/B CLKB *FLB ,t!N B /[; B 0ixB B 2NB 3GB 4GoB 7ixB B 8ixB B 9GeB ;i B ={eyB >E gB AOB CIB DLB G~[B IJPB LB B MRzB NE~bB PJPB RIB Uo^ B W_B EʘB CLB G^B B B CLB CLB CLB CLB CLB CLB CLB CLB avgB ^gB qfB M^B PB OB CLB CLB CLB CLB CLB CLB CLB ^B CLB CLB CLB N! B CLB CB CLB CLB vW B CLB CLB CLB CL$B K%B J$&B LB CL*B K,B F8B CL.B NB CLB CLB CLB CL3B qW4B A36B k47B `8B fL9B B:B C;B DB VR?B J1 @B G{AB qˈ B CLDB m EB G3FB FC GB ZB fB mvfB eB HSxB I]B JDp]B Lb. B M^y B NHHB PKfv!B RCL B SCLB TCLB Vc[ B ZCLB \@B ]s8 B ^EOB _|5! B aB d{Z B gCLB hCLB jCLB kCLB lCLB oFOB pHB s} B unB x]33B y}I B {k B |p B q B HB TʆB BB y B A B TB CB DB } B L B es3 B aS3B U B ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB LB HB H:B I}B K{B ff }eB ahG }fB dH MBwC NB"D*OB#BvPB$G'QB'cRB(NSB)AAhTB*GVB+j XB.GYB/Ksq[B0\B1RU^B4d_B5q `B8BaB9Q\)bB:ScB;S^B=CLB>CLB?CLgBAp BDCLBECLBFCLBGCLmBJGnBuoBvk^ ByCLBzCLB{CLB|CLB}CLB~CLBCLwBB\xBKLyBTkBOP{Bm |B[(}BjF~B^BCZzBFByl ~BCLBb~k |BCLBH BBBIBNuBCLtBCLB\v Bi Bg 5BKr6BLBCLBCL:BF;BLCLB?CLdBACpBDCLfBE^BFCLhBHH/iBIV6BLCLkBO\ lBPI = mBQG nBTrfoBVm;pBXi= qBYc\ rBZe sB[MtB\L>uB]CuB_CLB`CLxBbA$ZyBdQIzBeBBhCLBiCL}BkE~BmM0BnEKBoBFBpOP~BrCLBtF(BwXA B\aB_gBUBCL Bw| BCLBCL B BCLBCLBOBCLBOPBjD Bm BCLBCLBCLBs1 BG3BA4BBOB[:B`B^Y!BW"BCFf#B{g$BIM%BO&BLCD'BKγ(B~Ü BCL*BHӻ+B_BCL-BB}B CLB CL0B@1BY@%2BJ3BPS4BABCL6B]BCL8BDSBCL:BHzxB"CLBI2:B@Ds3;BAEBFU?BGJ*@BHGABKp| BNCLDBOk/ EBQGxFBRFIeGBSXBWXBX]3BYWB\RB]]B^DUB`a< Ba_v BbHmBcI!BfCL BgCLBhCLBje[ BCLB^ BH9QBEB|j BLmr B{= BCLBCLBCLBCLBCLBFBHB}; BnB]33B},l Bk) Bp BpiBH%BXCBCBx:D BB^ BQB@ BBcB} BQn Bb BafBRٚB^BCLBCLBCLBCLBCLBOPBOPBCLB CLB M-zB H BHCBIBK{Bi}eB_7}fBd MB1x NB3D)\OB]ETPB^HQBabtwRBbNSBc~; TBdJVBeo  XBhGvYBiK([Bj\BkNE^Bnbv$_Bou `BqDoaBskbBtl.cBulBwCLBxCLByCLgB{p B~CLBCLBCLBCLmBHRnB~\oBk^ BCLBCLBCLBCLBCLBCLBCLwBDxBKǮyBUQBOP{Bpwx |B[}Bl8~~B^BCBFjBr ~BOPB^ |BCLBH/BEBHABMpuBCLtBCLB\^5 Bi Bi 5BKظ6BL~zBCLBCL:BF[G;BKROB0m PB1j> QB2ARB4NY]TB5JYUB6J{VB7D,QB9CLB;CLYB=AeZB>CL!BACLBBCL]BDwQ? ^BE@4BGOPBICLaBKBEBMOPBOCLdBQCBTCLfBU^ BVCLhBXHiBYUVB\CLkB_[ lBG# mBF nBjoBmpBd qB_z rB^3 sBMKtBMuBC4BOPBCLxB@yBOzBBFBCLBCL}BEl~BMiBHBBBOP~BCLBEsZBX~ B[fBZfBTfBCL By BCLBCL B@BCLBCLBOBCLBOPBju Blw BCLBCLBCLBr BKəBFBG 3BOCUB[BdxRBdq!BRY"BAff#B}$BIM%BO"&B L'B KU(B ~24 BCL*BJe+B[VBCL-BA"BCLBCL0B@A1BW¬2B!J3B"PB4B#A~B%CL6B&]B'CL8BQDuBTCL:BVGBYCLB|YC ?B}J'@B~GAB@PBOPDBu EBGFBFDGBZBZfBaBZBQiBaNBDBdp BaY BFBH!BCL BCLBCLBf BCLB~; By@Y BEB{Z BK B{ BCLBCLBCLBCLBCLBF\BH(B},l Bn|B]33B|} Bi Bp Bn3BHBW7ABBB@aBB BQBBqBx# B} BRJ Bd B`6fBRFfB^BCLBCLBCLBCLBCLB OPB OPBCLBCLBM[BH BHFBIBK{Bh}eB]l }fBd MB`x1 NBcD,6OBdC;PBeHKQBhbRBiN=SBjs8 TBkDVBmdm XBoGBYBpKh[Bq\BrRY^BucO_Bvl `ByCބaBzK\bB{LQcB|JuB~CLBCLBCLgBpg0 BCLBCLBCLBCLmBH^nBٚoBk BCLBCLBCLBCLBCLBCLBCLwBFqxBNyBWBOP{Bg |B[ج}Bk!~B^BD&BF%Bo ~BOPBc<8 |BCLBH$BG6B IBHVuBCLtBCLB[ Bi\ BkR 5BK١6BLyBCLBCL:B FE;B!JoC*BACLBBCLYBDA:%ZBEC6]FCLFCL]Fv( ^F B}F OPF CLaFCFOPFCLdFB=FOPfF^FCLhFHdiFTZFOPkF \!* lF"@R mF#nF&V oF'lMpF)d qF*^q rF+`. sF,M'tF-MzuF.D/F0OPF2CLxF4@}ByF5MzF6A:F9CLF:CL}FdE@~FfMIFgJFhC)LFjOP~FlCLFnE2FpX! FqVFrUљFsNFuCL FxSEFzCLF{CL F|F}CLF~CLFOFCLFOPFu Fj& FCLFCLFCLFr/ FBfFxLFtFO08FWLF\{F[!FGfg"Fm33#Fh$FI %FO&D&FL#c'FK{(FC FCL*FBz+FXdDFCL-FAFCLFCL0F)b 1FV=2FJ3FP2,4FAKFCL6F]FCL8FD%FCL:FGFCLFU?FJ)@FGAFFfFOPDFwQ? EFGFFFuGFW1F!V4F"\fF#UF&PaF'aQF)CF*a F+`EA F,BɀF-D!FXCL FYCLFZCLF\cн F`CLFb} FcD- FdDuFezcz FfSfQFg{ FjCLFkCLFlCLFnCLFoCLFrFtFsHضFv|& Fxn@F{]33F|{ F~jSk Fp FnfFHdFVAYFBFAFB FQڦFCXFp| F}X FMiP Fi F`fFT3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMzFGFH1FI6FK\Fgf}eFfEK<}fBd@ MFx]6 NFD/OFKMPFHL#QF_<RFOkSFqHF TFI'VFm XFFYFK[Fޯ9\FR^Ff_Fr `FBaF@\bF~cFzW FCLFCLFCLgFp8T FCLFCLFCLFCLmFGlnF9oFk  FCLFCLFCLFCLFCLFCLFCLwF}(xF JyF VF OP{Fpfg |F\u}Fm~F^F@C>FAEFDw ~FFOPFI` |FKCLFOHrFPJFQHFRGuFTCLtFVCLFXZS FYj" FZh 5F]K6F^LF`CLFaCL:FcEZ;FdHCLF@r FB{FCy)Fly<FoNFqYFr]Fs[!FtO"FuI3#FvCY$FwJ%FyOt&FzL'F{KJ(F|@BF~CL*Fw+F[)FCL-FA^vFCLFCL0F~ 1FU 2FJ<3FP4F@FCL6F]FCL8FDGFCL:FH#FCLKFHLF^ F]Z7 FixB FJBUFGFGFixB FixB FGxFCF{eyFFN=FOFIMFLFwFJFB FQ5rFAFK-F JPF4o^ F6PeF9EʘF;CLF>G^F?Cx}FACLFCCLFDCLFECLFFCLFGCLFHCLFICLFLb3FMPgFOavgFPkHFQBkFRyFTCLFUCLFVCLFWCLFXCLFYCLF[CLF\^F]CLF^CLF_CLFaMFbCLFeCaFgCLFhCLFj{w FmCLFnCLFoCLFOP$FLp%FJw&FOFCL*FL,FTjFCL.FHGFCLFCLFOPFCL3Fq̹4FA6Fx97Fo&f8Fh,9F@ c:Fmٚ;FryFT?FJU@FGAFIFOPDFv EFGFFFGFRIFT`FZ4FSFN$yF^{FCmKF aL F _ F |& F ~z !F CL F CLF CLF bE F CLF }u% F H#F DBF y F -F z F CLF CLF CLF CLF CLF $F+F %HF (|& F *nF -]/F .{in F /iމ F 0qK F 3oF 7IF `T UF aB F bCAF dB) F gS-F hEGF kk F l}T F mLN F qh F r`fF sTF t^F uCLF vCLF wCLF yCLF zCLF }OPF ~OPF CLF CLF MvF GF H& F I|F K\F c }eF \Z}fFXb MF wY NF D9 OF G`PF HQF ]oRF OTSF ph TF HVF mH XF FmgYF K[F \F QG^F a_F s8 `F B"aF ~.bF }cF {\F CLF CLF CLgF o: F CLF CLF CLF CLmF GxnF *6goF +i_ F -CLF .CLF 0CLF 1CLF 2CLF 3CLF 4CLwF 7CxF 8PuyF 9UF ;OP{F >o |F @[d}F Ak~F C^F FCF GE؍F Kt!N ~F MOPF P` |F RCLF UH ^F WJ{F XHF [KuF ]CLtF ^CLF a[ F bj5@ F chz 5F K6F LdF CLF CL:F E#;F GԦFNF @CLF CF1F DCF GCLF HCLF ICLF JCLF KCLF LCLF MCLF NCLF Qb\F RYgF TlgF UMHF VkHF WjpF CLF CLF CLF CLF CLF CLF CLF ^F CLF CLF CLF MF CLF CF CLF CLF {H F CLF CLF CLF OP$F L@%F J#&F NF CL*F L,F TF OP.F Hv!F CLF CLF OPF CL3F qp4F A6F @vf7F qٚ8F tfg9F ~:F qf;F w`F T0?F J\@F GAF IF OPDF vY EF GiFF FGF QmF avgF gF `gF LF brF C.F c F `S F z$ F |} !F CL F CLF CLF fq F CLF |R8 F A F D- F y F i F z F CLF ICLF JCLF KCLF LCLF OFF PHF S| F UmF Y]/F Z{in F [|oQ F \q F _rfF bI XF cQڦF dBF eCF gB F kS F lErF oj ^ F p| F qU F tcw F u`vfF vU33F w^F yCLF zCLF {CLF |CLF }CLF OPF OPF CLF CLF MF HF H:F IF K =F f3 }eF S}fF ad= MF wt NF D7OF FpPF G1QF \RF OSF p TF HcVF m;0 XF FYF L[F\FS1^Fcj_FsUV `FACaF}HbF}{cFyQFCLFCLF CLgF"o[ F$CLF%CLF&CLF'CLmF*GInF.~ٚoF/h F1CLF2CLF3CLF4CLF5CLF6CLF8CLwF;}xFOP{FAo |FC^}FEnF~FG^FJCcFKEAFv| ~FxOPF|`D |F~CLFGLFKE4FHFQvuFCLtFCLF[> FjG Fg 5FK6FLFCLFCL:FD̘;FF|} yF?Ms3zF@GeFBOPFDCL}FFG;~FHMFIMt5FKD\0FLOP~FNCLFPCFRX FSPffFTPFVJ~gFWCL FYF(F\CLF]CL F^́F`CLFaCLFcOz FeCLFhOPFlt Fmf# FpCLFqCLFrCLFtsk FvlgFwl&fFhFNaFTzF`HF]!FK&g"Fs#Fh@$FK%FO&FL~z'FKlg(FB+FCL*F{+F\pFCL-FAFCLFCL0F~] 1FX)2FJ,~3FO*4FGrFOP6F]FCL8FFFCL:FHFCLFOPFCL@FMuAFLBF C0F CLF CLEFKzHFJ-AIFU JFbKFHLF[-F FixB FixB FFxCF HVFF!H F"ixB F$ixB F%H*F&CF({eyF)FTF,O`F.HF/LF2s3F4JPF7B F8RFT?FJK@FGAFIQFOPDFvY EFHFFF GFQFaYFgvfF` F1I CF2be#F3BhF4c>k F5`S F6zr F7|` !F:CL FxFlJHyFmTzFnOP{Fro |Ft\5}FumN~Fw^FzCEF{EF~}; ~FOPF_Q |FCLFGFJJJFHFG]uFCLtFCLF]cT Fj Fh+ 5FK6FLaSFCLFCL:FDZ;FE^^= sF?MutF@NI:uFACēFBOPFDCLxFF{ yFGKizFHHaFJOPFMCL}FOG~FQMDFRMhWFSDZFTOP~FVCLFXC'F[X F\NdF]N4F^IFCL FF FCLFCL FEFCLFCLFO)FCLFOPFs Fe FCLFCLFCLFs FiFfiFbfFNNFY{F^)F]=q!FM"Fwٙ#F@33$FK&X%FO&FLq'FKa{(FB(FCL*Fl+FYFCL-FAFCLFCL0F7 1FW[w2FJp3FO'4FFTFOP6F]FCL8FG4FCL:FGFCLFTC?FJ9T@F G3AF!IF"OPDF%v EF'H&XFF(FGF)QF,efgF-kF.cF2EF3`F4BF5c!( F6` F7zF^ F8|& !F;CL FCLF@a FCCLFEzr FF@-SFGCi(FHxWc FJ+(FMz)B FQCLFRCLFSCLF|CLF}CLFF'FH^F|} FmF]/F{w F},l Fq,| FrٚFH!FR_<FC{FCFBh FRNFFHqFl3 F| FN5 Fe F`3FTfF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMzFH|FHFJ FKFgS3 }eFJ{^3 sF@Mp tFAN8uFBCFCOPFECLxFGz? yJI]]zJIJOPJ CL}J G0~J MJM0JDJOP~JCLJBJX^ JP(JOqJK JCL JEJ!CLJ"CL J#J$CLJ%CLJ(NOAJ*CLJ-OPJ0s8 J1dK J4CLJ5CLJ6CLJ8sc J:iLJ;g33Jdd JgNJJiRJjXJ>JkV0!JlT&f"Jm}#Jns $JoK7%JpO6&JqL'JrKR(JsByJuCL*Jxcz+J{_fJ~CL-JB8PJCLJCL0J~ 1JV=2JJ13JOm4JF*JOP6J]JCL8JG:JCL:JGxJCLJTy1?JJ(@JGAJI JOPDJvt EJH FJF5GJQPJcɚJy3JlgJDJ^JBsrJc[ Jax Jz7 J{ !JCL JCLJCLJf JCLJy@ J~ JC6]Jw| JM~ Jy J CLJ CLJ CLJ CLJCLJFJHJ| Jm:J],`Jzu J|} Jq; J!pfJ%H̎J&XJ'DDJ(CJ*Bff J-QsJ.F*JYo JZ|` J\UrN J_e J``JaUyJb^JcCLJdCLJeCLJgCLJhCLJkOPJlOPJnCLJoCLJsM8kJtHJuIJvJ$JyKJzi}eJ`D}fFgh MJx NJD1OJFPJGS QJYRJP"SJo+ TJHTVJleC XJEkYJJ[Jѯ\JSM^Je _Jt `J@aJ{bJz(cJxJCLJCLJCLgJoF, JCLJCLJCLJCLmJFanJ~oJfI JCLJCLJCLJCLJCLJCLJ CLwJ#~ xJ$JHyJ&QJ'OP{J*n33 |J,\}J-l?~J/^J2CJ4EJ7| ~J9OPJ<\ |J>CLJAHJCI#JDHtJGO>uJICLtJJCLJM^w JNj JOhO 5JQK6JRKJUCLJVCL:JXDX;JYBJT;J?JJ @JGuAJIlJOPDJvܹ EJHFJF GJQeJcɚJkgJb6fJAJ`9JBFJc Ja- Jz J{ !JCL JCLJCLJb JCLJyN JAJC Jv JDJb Jy] J CLJ CLJ CLJ CLJ CLJF JHtJ|j JmgJB],`JCzT JD{H JEq; JHnlJKHJLVmJNDwJOCJQB\ JTQfJUF\JXq JY|5! JZNf J]dw J_`3J`SJa^JbCLJcCLJdCLJeCLJgCLJjOPJkOPJmCLJnCLJqLJsH;JtI<JuJJxKJyhp}eJXl}fJMh MJwC NJD0~OJF;0PJG<QJYRJP SJ@rTJHKVJka XJEYJJ X[Jа#\JPq^Jdo_Jt* `JB&aJ|bJ{\*cJx\*JCLJCLJCLgJ oU J CLJ CLJCLJCLmJGVnJ~oJew1 JCLJCLJCLJCLJCLJCLJCLwJ"E\xJ#M(yJ$PHJ&OP{J)m |J+]P}J,mA~J.^J1C2J2EƄJ6{ ~J8OPJ;\ |J=CLJ@HuJAIqCJCHJnKDuJpCLtJqCLJt_ Juj Jvh1' 5JxKlg6JyK:J{CLJ|CL:J~CB;JA!JCL-JBnJCLJCL0J} 1JZ7D2JJ^3JN4JF-JOP6J]JCL8JHs<JCL:JG`JCLJ T?J I@J GvAJ I J OPDJ w4 EJ HFJ F{FGJ QuJ alJ hJ `3J @\J b%J BtJ c_ J aY J y J {= !J CL J CLJ CLJ bs J CLJ xP J GJYJ BɀJ u J (J ,y J /CLJ 0CLJ 1CLJ 2CLJ 3CLJ 6FzJ 7HXJ :|` J =mJ @],`J Ay{ J B{in J Cq; J FoJ IHoJ JS_J KE:J MCt J OB J RRJ SF J Vtz J W| J XR J [h] J \_`J ^RJ _^J `CLJ aCLJ bCLJ cCLJ CLJ OPJ OPJ CLJ CLJ LJ HJ I(J J J KJ hO\}eJ (YƷ}fJti MJ w- NJ D/OJ FFPJ G;QJ X{.RJ P SJ B5TJ GVJ ka XJ E9YJ Ib[J \J R ^J c__J tUU `J D"aJ |QbJ {RcJ x\J CLJ CLJ CLgJ n: J CLJ CLJ CLJ CLmJ HdnJ ~9oJ eM9 J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ @aHxJ !LByJ "QzJ #OP{J 'mwx |J )](}J *lR~J T^J WCJ XEJ \yl ~J ^OPJ a\q |J cCLJ fGJ gIfJ iHJ lH%uJ nCLtJ oCLJ r`1 J sj J ti33 5J vK[6J wK-J yCLJ zCL:J |D- ;J }MWJ 1OP~J 3CLJ 5B\J 8W J 9EJ :CFfJ ;BxJ =CL J ?E*J BCLJ CCL J DJ U{!J [Y"J Gfg#J ~$J KOI%J O &J M'J KH(J B1J CL*J U+J bPJ CL-J BJ CLJ CL0J |ƚ 1J X2J J3J N4J FJ OP6J ]J CL8J HJ CL:J G4J CLJ Tz?J I@J GkAJ IJ OPDJ w EJ H FJ FlGJ QJ aFfJ gJ `gJ | J bJAJc JbTF Jy Jz[ !JCL JCLJCLJdq JCLJ!xWc J"F~J#Ci(J$u J&eJ*y]w J-CLJ.CLJ/CLJ0CLJ1CLJ4FXJ5HDJ8|} J;mJ>],`J?y J@{/9 JAq; JDnfJGH=JHUrJIEJKCaJuA JxRJyF[GJ|w4 J}{a J~Q Jjf J`vfJTfJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLrJHJI*cJJ JJJi}eJ&Ld}fJ rjE MJw- NJD/OJFWPJGQJXRJPJSJt TJGʋVJk XJEYJI[J\JP9^Jb_Jtc `JD.UaJzHbJy*cJw4JCLJCLJCLgJn JCLJCLJ CLJ CLmJH$nJ~oJeF JCLJ?CLJACLJBCLJCCLwJFzxJGK.yJHR{JIOP{JLm33 |JO^ }JPmb~JR^JUD;JVFJY|R8 ~J\OPJ_\q |JaCLJdGJeIJgHs<JjM$uJlCLtJmCLJo`D Jqj Jrk+ 5JtKI6JuKwSJwCLJCL:JCB;JM$FJp{GJQHJN@A LJrMJnW NJ@qOJrk PJsrb QJEsZRJL:TJJUJINVJH0JOPJCLYJD̘ZJ@۶JOPJCL]Js ^JSJOPJCLaJKJOPJCLdJIJOPfJ^JCLhJ GiJ V(J OPkJXhy lJXpmJWRnJEoJfpJ_ qJ[Ǯ rJ^ sJMUtJMuJBJOPJCLxJ!|oQ yJ"L]zJ$HJ&OPJ(CL}J*HO ~J,MJ-{O J.DԒJ/OP~J1CLJ3Bk!J6W* J7CfJ8BgJ9C3J;CL J=E*JhCLJiCL Jj_JkCLJlCLJoMJqCLJtOPJwr Jxbw J{CLJ|CLJ}CLJr; JiJf3JbJMJV@J[QJY!JN&f"Jv4#Jq@$JKR%JNp&JMz'JKA(JAJCL*JS+J\JCL-JB5JCLJCL0J}u% 1JWM2JJg3JN|[4JF4JOP6J]JCL8JHUJCL:JG )JCLJOPJCL@JNڐAJJBJAJCLJCLEJG̶HJAIJiI JJ]KJGbLJ[Y@ JixB JixB JA:JI=JFJi| JixB J0HؒJ1DJ3{J4FJ7OJ9IλJ;LJ>mJ@LJCEVJDLvJE@L-JGLJHLJKo^ JMNJN@LJPCLJSF JUCJVOPJYCLJ[CLJ\CLJ]CLJ^CLJ_CLJ`CLJcYgJdPS3Jed<JgGHJhkHJiMHJkCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJMJCLJCUJCLJCLJy@Y JCLJCLJCLJOP$JK%JJ&JQJCL*JLCD,JSBJOP.JJFJCLJCLJOPJCL3Jq&4JA6Jxf7Jk8Jf49Ju:Jns3;JqfgJTMI?JI@JG_4AJIlJOPDJw EJHFJFfjGJ Q@eJ eJ kJdlJz JaJAWJd( JbA Jy@ Jzr !JCL JCLJCLJ` J#CLJ%w J&B?J'CDJ(u} J*uGJ-y1 J0CLJ1CLJ3CLJ\CLJ]CLJ`FrJaH^AJd|` Jfm{QJi](Jjy Jl{LS Jmq; JpofJsHJtRJuFRJvCFTJxAq J{RwJ}FFJy]w J{ JL Jhww J_fJU3J^JCLJCLJCLJCLJCLJOPJOPJCLJCLJL8UJHaJI1JJJJJhL}eJ*ZO}fJojU6 MJw NJD/OJFVPJGQJWRJPSJrs TJGDVJkd XJE)YJIk[J&\JT^Jb J_J%t `J'C0HaJ(|34bJ)zW cJ*x=qJ,CLJ-CLJ.CLgJ1n J3CLJ4CLJ5CLJ6CLmJ9H6[nJ<~oJ>dR J@CLJACLJBCLJCCLJDCLJECLJGCLwJJ~RxJKKyJLSJMOP{JPmUU |JR^}JTm5~JV^JYDJZEJ]v ~J_OPJ\b |JCLJGxJIJHvJO7uJCLtJCLJa=q Jk$ Jjk 5JK=6JKeJCLJCL:JC;JLeOJs T PJtz QJEZRJL TJJUJIVJGCJOPJCLYJDZJ@JOPJCL]Js8 ^JU7/JOPJCLaJLYMJOPJCLdJI=JOPfJ ^J CLhJGuiJVJOPkJW lJUmJU{nJI oJfpJak qJY33 rJ\aH sJMKtJM#uJ BJ!OPJ#CLxJ%| yJ&JMzJ'HJQOPJTCL}JVHO ~JXLJY{ JZDJ[OP~J]CLJ_B?JbW$ JcI$JdG(JeEJgCL JiEZJlCLJmCL Jn JoCLJpCLJsLZJuCLJxOPJ{rk J|a JCLJCLJCLJq: JmJd Jf4JN JZJ`=qJ^xR!JL3"JxL#Jls3$JKYK%JNױ&JM+'JK3(JA\JCL*JRxt+JY?JCL-JCJCLJCL0J|ƚ 1JV/2JJG3JN@4JFJOP6J]JCL8JHJCL:JFݱJCLmJ@LJCEVJDQJE@ =JGLJHLJKo^ JMNrJN@LJQCLJ|FJ}C3J~OPJCLJCLJCLJCLJCLJCLJCLJYgJXc3JavgJGHJkHJMHJCLJCLJCLJCLJCLJCLJCLJ^JCLJCLJCLJMJCLJCaJCLJCLJy#; JCLJCLJCLJOP$JK%JJ &JNJCL*JK,JRt"JOP.JJJCLJCLJOPJCL3Jq4JA6J@c37JvFg8Jqٚ9JtY:Jx3;Ju4JT6?JI@JGVAJIJOPDJw EJHFJF_)GJPJ bIJ jPJ bٚJx J^KXJAJd7' Jc!( Jyz Jz % !JCL JCLJDCLJFf JICLJKwna JL~ JMCScJNu' JPJTy JWCLJXCLJYCLJZCLJ[CLJ^FJ_Hz^Jb|` JemDJh](Jiyl Jj{/9 Jkq; JnpfJqGJrRJsFc@JuC]JwAR JzSW J{FJ~{/9 J{ JV1 Jf J`3JUfJ^JCLJCLJCLJCLJCLJOPJOPJCLJCLJLJHxJI0JJkJJJf3 }eJPCy}fJk MJwY NJD4OJFJPJG1QJW@uRJPGPSJqt TJGVJka XJEYJI?[J&\J!P^J$c_J%t `J'BeaJ(}ubJ){cJ*wHJ-CLJ.CLJ/CLgJ1nq J3CLJ4CLJ5CLJ7CLmJ:GMnJ=~oJ>dJ J@CLJACLJBCLJDCLJECLJFCLJGCLwNAuxNN=qyNPffN OP{N m |N\<}Nn4~N^NCԄNEjN~ ~NOPN[v |N CLN$G4N%I>N&HN)G%uN+CLtN-CLN/aq N0khs N1iƨ 5N3K@6N5KQN7CLN8CL:N:D|;N;JhNOPNCLaNN NOPNCLdNINOPfN^NCLhNG4iNU-NOPkNWC lNSRmNSHnNEoNfQ|pN^f qNYaH rN[Ǯ sNMFtNMȉuNBNOPNCLxN{ yNHzNHNOPNCL}NHO ~NLN|s ND٦NOP~NCLNAҩNV NENCvgNCvgNCL NENCLNCL NNCLN,CLN/MN1CLN3OPN6r]\ N7a N:CLN;CLNp N@j3NA`NBb@NENNGVNH\uNI\!NKQL"NL@Y#NMo&f$NNKZ4%NON&NPM'NQK4(NRANTCL*NWP+NZap$N]CL-N_BNaCLNcCL0Nd| 1NfT#2NJ!3NN S4NFvNOP6N]NCL8NINCL:NF:NCLNTE?NI{@NGIdANIkNOPDNx ENHFNF[GNQ*Nc0NjfNbNv N_ɞNAhNdc Nc>k NyN Ny !NCL NCLNCLNaY NCLNw4 N|` NCpiNt N}0Nxo NCLNCLNCLNCLNCLNFNHN|5! N!mFN%](N&y1 N'{ N(q; N+sPN.GN/SY3N0FN1CGN3Bn N7QN8FlN;|& N<{w N=L< N@j NA`NBUNC^NECLNFCLNGCLNHCLNICLNLOPNNOPNPCLNQCLNTKNUHNVI.NXIN[JNg }eNG&}fN/k? MNwC NND5{ONEPNFQNV.RNPJSNq TNGVNjt XNEuIYNI[N)\NT"^Nd_Nt `NAiaN~bN{cNxNCLNCLNCLgNnL NCLNCLNCLNCLmNGnN{,oNdQk NCLNCLNCLNCLNCLNCLNCLwNyxNPyN Q\)N OP{Nl |N^}NmTa~N\NCNEN}R ~NOPN [!4 |N"CLNMG4NNIdNPHINSK{uNUCLtNVCLNXa NZk=q N[i 5N]K=6N^K5N`CLNaCL:NcD;NdHHCLN?CLNAq NCiND_4NEaNHMߕNJVRNK\W NL[!NMSfg"NNM#NOC $NyK\%NzNG&N{L'N|KD^(N}A>NCL*NO5+N[NCL-NANCLNCL0N|oQ 1N[2NI$3NM4NFTNOP6N]NCL8NHNCL:NFqNCLKNj' NixB NI=NDN{eyNFRNONINLNr NLNEVNLvN@HNLNM N o^ N MNEʘNCLNF{NC3NOPN@CLNACLNCCLNDCLNECLNFCLNGCLNJXNKNgNLcɚNMxNODNP{NRCLNSCLNTCLNUCLNVCLNWCLNXCLNY]N[CLN\CLN]CLN^MN`CLNcCyNeCLNfCLNhxt NjCLNkCLNlCLNoOP$NpK%NqIr&NtKmNwCL*NyK;D,NzSN{OP.NKBNCLNCLNOPNCL3Nq#4NA6Nq7Nbf8N[9Ns~:Nq;NuLNTY?NIB@NG0ANINOPDNy@Y ENG!FNFNGNQrNbfgNhffNa3NuuC Na8NA;Nd Nc Ny Ny]w !NCL NCLNCLNc[ N CLN wQ? NDVNCL!Nt4 NL Nx NCLNCLNCLNCLNCLNFNHN!| N#m@N&](N'x0 N(z? N*q,| N-q#3N0G^-N1XUHN2GN3C$N5Bs3 N8QN9EXN<~s N>{Z N?T NBi NC^FfNlRNm^NnCLNoCLNqCLNrCLNsCLNvOPNwOPNyCLN{CLN~K-NHxNI+KNINJNr}eN`W'}fNXkJ MNvc NND%ONE_PNF2QNVRNPUSNp TNGV VNj XNE`YNH[Nܱ\NS^Nd/_NtU `NAaNpbN{gcNzNCLNCLNCLgNn% NCLNCLNCLNCLmNGuQnN{)oNc NCLNCLNCLNCLNCLNCLNCLwNAxNNRyN PW N OP{N5lDD |N7]7}N8p q~N;] N>CmN?ENB~ ~NDOPNGUd |NJCLNMGxNNINOHNRPAuNUCLtNVCLNX` NYjfg NZhV 5N]K2+6N^KN`CLNaCL:NcDG;NdGa@KN CLKN jb N ixB N IZN DN {N FN=N ON I%N LN r N LN (EVN )LvN *N ,LN -M N 0o^ N 3MxN 6EʘN 8CLN ;FaN N T ?N IL@N GAN IoN OPDN xe EN G5FN F?lGN QaN b3N h6gN `N t I N cjN AN dp N d N x N x !N CL N CLN CLN c/ N CLN vܹ N GoN C N t N AC N x N CLN CLN CLN CLN CLN FN HRN |5! N !m3{N $](N %x# N &zT N 'q,| N *q6fN UG$N VUMN XGJYN YC/N [B N ^P}N _DeN b@N c{/9 N dPHc N gi{ N i`3N jV3N k^N lCLN mCLN nCLN oCLN qCLN tOPN uOPN wCLN xCLN {KcNN }HxN ~I'N I1N JN {T{}eN X}fNXj MN wH NN D ON EPN FFQN VsRN PcSN p TN G ZVN i XN E YN HZ[N ڱs\N R7x^N db_N t `N A33aN }bN |#cN yaHN CLN CLN CLgN m N CLN CLN CLN CLmN GHnN {oN !b N #CLN $CLN %CLN 'CLN (CLN )CLN *CLwN -AffxN .L#yN /PffN 1OP{N 4kwx |N 6^7}N 7m~N 9] N NixB NIwNDN{eyNFN=N!ON#IN$LN'r N)LN,EVN-R5N.N1LN2M N5o^ N7MyN:EʘNNT{Z?NIkX@NGkANIO@NOPDNw% ENGFNF1GNQeNbNh,Na)Nsr NbN@дNdR NdE NxP Nx0 !NCL NCLNCLN `P N CLNvY NBNB5Nt NI" NVNi XNEYNHo[N)\NT^N db_N t `N AZ#aN~ bN|cNzW NCLNCLNCLgNm< NCLNCLNCLNCLmN!G;YnN${oN%bn N(CLN)CLN*CLN+CLN,CLN-CLN.CLwN1CxN3LyN4QǮN5OP{N8kDD |N:^]}N;m!~N>]NiC'1NjENm}: ~NoOPNrY[ |NuCLNxG6NyHNzHN}HnmuNCLtNCLN` Ni Ng 5NK1C6NJ{NCLNCL:NDQN;NDaH#~N@KNAJ*>NBDNCOP~NECLNGAfNJUm NK@NLfNM|NOCL NQDNTCLNUCL NV NWCLNXCLNZISN]CLN`OPNcq3 Nd`s7 NgCLNhCLNiCLNkp NoNdNhgNM\NVuN[fNZc!NM@"Nr#Nkff$NKj%NN&NL'NK*(NA NCL*NMQ+NZONCL-NAKNCLNCL0N{Z 1NV3a2NI?3NM4NFNOP6N]NCL8NG:NCL:NENCLNT?NIVe@NFANI+NOPDNy ENGFNF,bGNQS$NbyNgN$avgN%r N(aTN*@N+e/ N,e N-x N.x:D !N1CL N2CLN3CLN5eM N9CLN;vY N<}X N=B\N>t' N?rN@x# NCCLNDCLNFCLNGCLNHCLNKGNLH:NO{ NQlߋNT](NUw NWz % NXq N[nN^FN_VN[qwND9^NB NQKNCzNAVxNzu NUc Nif N`9NUfN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNJiNH~NINIKNJNg}eN?P}fNk= MNwH NNDONDoPNFPiQNV{RNP/SNBTNFVNiT XNEYN H[N )\N OS3^NeS_Nu `NC#aN#bN~\cN{\*NCLNCLNCLgNn% NCLNCLN CLN!CLmN$H=nN'{VgoNQb NSCLNTCLNUCLNVCLNWCLNXCLNZCLwN]FaHxN^NkyN_VN`OP{Nck |Ne]}NgmĦ~Ni]NlCxNmFNp O ~NrOPNvY |NxCLN{G8N|HN}G'NM9MuNCLtNCLNa_; Nj5@ Ni 5NK/q6NJNCLNCL:NE#;NCN{xRN|kHN~CLNCLNCLNCLNCLNCLNCLN]NCLNCLNCLNMNCLNCNCLNCLNx NCLNCLNCLNOP$NK@%NI&NP}NCL*NJ*~,NS-NOP.NKثNCLNCLNOPNCL3Np4NA6Nzٚ7Nt8Nk9N r:No34;Nq NT9?NIB[@NFANINOPDN} ENGFNF'GNPYN bN!hN"a3N#o N&^UN'@nN(ex N)dR N+xWc N,wt !N/CL N0CLN1CLN3`b N6CLN8v4 N9@N;BFNQ NAwt NDCLNECLNFCLNGCLRxCLRxG pRx HRx {a Rxl7Rx](Rxwt Rxz RxqK Rxr3RxFRxSRxiRxEiRx B Rx#S5Rx$CRx%ARx(z Rx*M Rx-j Rx.`Rx/VfRx0^Rx1CLRx2CLRx4CLRx5CLRx6CLRx9OPRx:OPRxdCLRxfCLRxiJ{RxjHfRxkIRxlIRxoJfRxrh3 }eN>V}fNkF MRxwf NRxDCORxDPRxF7QRxV{RRxPQSRxt!N TRxFVRxi XRxEIYRxH_[RxɱO\RxSff^Rxd_Rxu* `RxD!aRx}bRx{ǯcRxzRxCLRxCLRxCLgRxn% RxCLRxCLRxCLRxCLmRxHnRx{s4oRxb RxCLRxCLRxCLRxCLRxCLRxCLRxCLwRxELxRxP8RyRxR\RxOP{Rxkfg |Rx^9}Rxr~Rx]RxD.Rx,F" Rx/}I ~Rx1OPRx4Z( |Rx7CLRx:GGRx;HqRxKRRxK0TRxI_URxH21VRxFN=RxOPRxCLYRxAAhZRx^ RxOPRxCL]Rxq ^RxWVRxOPRxCLaRxNQlRxOPRxCLdRxGRxOPfRx^RxCLhRxE#iRxO-|RxOPkRxUWa lRxX =mRxW nRxHoRxdpRx^3 qRxY rRx[\ sRxMtRxMSuRxB3RxOPRxCLxRx|j yRxQ*zRxG'RxOPRxCL}RxH~RxKRxI}RxDYRxOP~RxCLRx BcRx U6/ Rx CTRxBRxB0RxCL RxDRxCLRxCL Rx߆RxCLRxCLRxI=Rx CLRx"OPRx%q9 Rx&_x Rx)CLRx*CLRx+CLRx-p8T RxXs3RxYgRxZgRx]MYRx_]T{Rx`bRxa`\!RxbN&f"Rxcp #Rxdkٙ$RxeKs%RxfN&RxgL'RxhK9r(RxiAQcRxkCL*RxnLl+Rxq\RxtCL-Rxv@=RxyCLRxzCL0Rx|{ 1Rx}[2RxI43RxL4RxFBRxOP6Rx]RxCL8RxG&"RxCL:RxEzRxCLLRxZ}W RxixB RxixB RxBwRxIZRxERxkQ RxixB RxI RxCfRx{eyRxFN=RxOpRxIARxLRxr RxLRxEVRxSC<RxpRxLRxM Rx!o^ Rx#M@Rx&EʘRx)CLRx,FRx-Ci Rx.OPRx0CLRx1CLRx2CLRx3CLRx4CLRx5CLRx7CLRx:X3Rx;NgRxkHRx?MHRxACLRxBCLRxCCLRxECLRxFCLRxGCLRxHCLRxI]RxJCLRxKCLRxLCLRxNMRxPCLRxRCRxTCLRxUCLRxWwt RxZCLRx[CLRxCLRxOP$RxK2+%RxI&RxNRxCL*RxI),RxThRxOP.RxL6RxCLRxCLRxOPRxCL3Rxp4RxA6Rxq7Rxf8Rxh9Rxry:Rxr,;RxtffRxT6?RxI2@RxFuARxHjRxOPDRx~ ERxGFRxF!GRxPRx^RxdRx^fRxnKP Rx_6Rx@]Rxe Rxe[ Rxx# Rxw !RxCL RxCLRxCLRxcM RxCLRxv RxGRxB+Rxq RxM RxwS RxCLRxCLRxCLRxCLRx CLRx GRxHRx|C RxmRx](Rxw RxzT Rxq RxofRxFR\Rx!W9Rx"o_fRx#G7RxMBn RxPP!RxQBRxRBDRxUz RxVTL RxYkf Rx[`Rx\VfRx]^Rx^CLRx_CLRx`CLRxaCLRxcCLRxfOPRxgOPRxiCLRxjCLRxnJRxoHRxpIRxqI RxtJfRxuh}eRx_Z}fRxEk MRxwH NRxDgORxDHPRxF%QRxVRRxP|SRxr TRxFĒVRxic XRxE YRxG}[Rx̱\RxPka^Rxf"N_Rxu8 `RxCPgaRxpbRx}ucRxzW RxCLRxCLRxCLgRxm RxCLRxCLRxCLRxCLmRxH,bnRx{LoRxb RxCLRxCLRxCLRxCLRxCLRxCLRxCLwRxBxRx M(yRx"ORx#OP{Rx&k |Rx(^f}Rx)o7~Rx+]Rx.DRx0ERx3~' ~Rx5OPRx8Y |Rx:CLRx>G_Rx?HiRx@H ARxAFkuRxCCLtRxDCLRxGa+ RxHj;e RxIk 5RxKK=6RxLJzRxOCLRxxCL:RxzD;Rx|AEMHRx?kHRx@MHRxBCLRxCCLRxlCLRxmCLRxnCLRxpCLRxqCLRxr]RxsCLRxtCLRxuCLRxwMRxyCLRx{C Rx}CLRx~CLRxw RxCLRxCLRxCLRxOP$RxK"%RxIw&RxMRxCL*RxI,RxTRxOP.RxLRxCLRxCLRxOPRxCL3Rxpĩ4RxA6Rxpg7Rxi38Rxj9RxrP:Rxn ;RxqRxTA ?RxI"y@RxFwARxHmRxOPDRx~; ERxGdFRxF"iGRxPRx`RxefRx^c3Rxmţ Rx`̬Rx@]Rxf(r Rxe5 Rxw RxwB !RxCL RxCLRxCLRxb RxCLRxv RxDRxBRxqt RxRxw RxCLRx CLRx CLRx CLRx4CLRx7GRx8HtRx;|` Rx=mRxA](RxBwQ? RxCzF^ RxDp RxGoٚRxJF'RxKSiRxLq1IRxMHqRxPAR RxSRǴRxTBRxUCvRxXz$ RxYPHc Rx\j Rx]`LRx^VRx`^RxaCLRxbCLRxcCLRxdCLRxeCLRxhOPRxjOPRxlCLRxmCLRxJxRxHRxI$RxI8RxJfRxf }eRxaL}fRxGkr MRxw- NRxDORxD1PRxF QRxV6RRxP/SRxq3 TRxF!VRxiF XRxEPQYRxGބ[RxвC\RxT^RxekP_RxuG `Rx BjaRx }bRx |cRx z >Rx CLRx CLRx CLgRx m) Rx CLRx CLRx CLRx CLmRx GȬnRx {9oRx bD Rx CLRx CLRx CLRx CLRx CLRx CLRx !CLwRx $BxRx %LyRx &PRx 'OP{Rx *j |Rx -_i}Rx .pY~Rx 0]Rx 3C1Rx 4ERx 7Fv ~Rx bOPRx eX(\ |Rx gCLRx jGagRx kH`iRx mHRx pJ0uRx rCLtRx sCLRx ua1' Rx wi Rx xhT 5Rx zK<-6Rx {JRx }CLRx ~CL:Rx D%;Rx MERx @DS4Rx BCL Rx CDXRx FCLRx GCL Rx HRx TK?Rx I@Rx FbARx HRx OPDRx : ERx GFRx FXGRx PnRx eS3Rx iRx aRx lr Rx c4Rx @0Rx f/ Rx f 4 Rx w Rx v !Rx "CL Rx #CLRx $CLRx &_d Rx )CLRx +vW Rx - Rx .BnRx /qHF Rx 1HRx 4w Rx 7CLRx 8CLRx 9CLRx ;CLRx RxEdRxk_ RxixB RxRx S?Rx I@Rx FARxHRxOPDRx@fERxGNFRxF!GRxPj@RxdRxj)Rxc3RxlT RxbRx@RxfJ Rx f7 Rx!wna Rx"v !Rx%CL Rx&CLRx(CLRx*e Rx-CLRx/u} Rx0~ Rx1BUZRx2q Rx3G Rx4wna Rx8CLRx9CLRx:CLRx;CLRxCLmRxBGnnRxE{PoRxFb RxHCLRxICLRxJCLRxKCLRxMCLRxNCLRxOCLwRxR~ xRxSNkyRxTP4RxUOP{RxYj |Rx[^K}Rx\m~Rx^]RxaC`RxbEvRxfFv ~RxhOPRxkZE |RxCLRxG4RxHlRxG(RxMuRxCLtRxCLRx_` RxiQ Rxg 5RxK6RxJPRxCLRxCL:RxC~;RxKpRx#] qRx$V rRx%Y{ sRx&M tRx'MuRx)BXRx*OPRx,CLxRx.~24 yRx/IAzRx0HdRx2OPRx\CL}Rx^G̶~Rx`J<RxbIURxcDmRxdOP~RxfCLRxhByRxjT; RxlDpRxmIRxnDIRxpCL RxrDVRxtCLRxvCL Rxw9RxxCLRxyCLRx{IZRx~CLRxOPRxp- Rx^ RxCLRxCLRxCLRxo Rx|4RxrRxqRxJRxd34Rxh(Rxfg!RxM@"Rxp#Rxe3$RxK*%RxNE&RxL'RxKG(RxA RxCL*RxJ˽+Rx^=RxCL-Rx@uRxCLRxCL0Rx| 1RxVK~2RxH3RxK4RxFRxOP6Rx]RxCL8RxF?RxCL:RxE9[RxCLPvRx@IRxALRxDr RxFM RxIEVRxKRRxM}ȈRxNLRxOM RxRo^ RxTMRxWEʘRxYCLRx\G^Rx]C7Rx^OPRxCLRxCLRxCLRxCLRxCLRxCLRxCLRx`RxNgRxavgRxFRxDRxARxCLRxCLRxCLRxCLRxCLRxCLRxCLRx]RxCLRxCLRxCLRxM<RxCLRxCaRxCLRxCLRxw_ RxCLRxCLRxCLRxOP$RxJ!%RxI0&RxHRxCL*RxIr,RxU>RxOP.RxM RxCLRxCLRxOPRxCL3Rxp84RxA6Rxr7Rx^Y8Rxf`9Rxr::Rxyy;RxA6fRxTV?RxH@Rx FMARx HYRx OPDRx @ERx GPFRxF-JGRxPRxdRxifRxc9Rxk RxbߋRx Rxg RxfE RxwB RxvY !Rx!CL Rx"CLRx#CLRx%a>' RxQCLRxSu RxTFRxUARxVpmy RxWJ RxXwQ? Rx[CLRx\CLRx^CLRx_CLRx`CLRxcGaRxdH7DRxg| z Rxil2Rxl](Rxmw% Rxoz RxppT RxspRxvEbRxwV[Rxx{\RxyM`@Rx{B Rx~PRxBRxD"(RxzF^ RxMm Rxg Rx_RxQfRx^RxCLRxCLRxCLRxCLRxCLRxOPRxOPRxCLRxCLRxJ/RxHRxISRxIRxJHRxj}eRxW_}fRxj1k MRxw NRxCORxDPRxE'QRxV'RRxPSRxr@3 TRxFVRxiF XRx EYRx!GV>[Rx"\Rx#T-^Rx&f _Rx(ur `Rx*A1aRx+|bRx,@+cRx-yaHRx/CLRx0CLRx1CLgRx5m Rx7CLRx8CLRx9CLRx:CLmRx=GpnRx@zoRxBbD RxDCLRxECLRxFCLRxGCLRxHCLRxICLRxKCLwRxN}xRxOPyRxPQRxQOP{Rx|j |Rx~`R}RxoTa~Rx]RxCJRxERx~s ~RxOPRxZE |RxCLRxGGRxHWRxH RxG,uRxCLtRxCLRx_s Rxh Rxh 5RxJ 6RxKRxCLRxCL:RxCi(;RxI?RxC>RxCLRxCLBRxvI CRxPDRxBERxz >FRxB=qGRxbfgHRxK^x LRx^pMRxU\NRxo>ORxy PRxx QRxFRRxJmTRxHY<URxGVRxFRxOPRxCLYRxAZRxc RxOPRxCL]Rxs8 ^Rx[_RxOPRxCLaRxO[RxOPRxCLdRx GeRx OPfRx^RxCLhRxD4KiRxVRaRxOPkRxTr lRx_mRx^znRxHٚoRxEcFpRxG_ qRxH[ rRxI\ sRxJMtRxKMƶuRxLBvRxMOPRxPCLxRxR~Ü yRxSQzRxTGRxVOPRxXCL}RxZG:~Rx\JbRx]I+Rx^DfRx`OP~RxbCLRxdBɀRxfT RxgE4RxhJ;3RxiERxkCL RxmD̘RxpCLRxqCL Rxr@RxsCLRxtCLRxvI=RxyCLRx|OPRxp Rx\4 RxCLRxCLRxCLRxo RxqfRxhpRxfs3RxIRxaQRxi.RxbG!RxQ"RxB9#Rxd3$RxK%RxN&RxL'RxKOI(RxARxCL*RxJm+Rx]iRxCL-Rx@۶RxCLRxCL0Rx| 1RxZ(2RxH3RxKř4RxERxOP6Rx]RxCL8RxFRxCL:RxERxCLV`TU?V`H@V`F|AV`HV`OPDV`@۶EV`GFV`F7DGV`P4V`d3V`i|V`ciV`kya V``V`y V`g/ V`f V`v V`v !V`CL V`CLV`CLV`c!( V`CLV`u65 V`EV`AZV`p V`J V`w% V`CLV`CLV`CLV`CLV`CLV`GV`H'V`{ V`lV`](V`v V`z)B V`p V`oV`,EV`-VrV`.@gV`/O$V`1B V`5PhV`6BVV`7DbV`:z)B V`;T V`>g V`?`C3V`@TFfV`A^V`CCLV`DCLV`ECLV`FCLV`GCLV`JOPV`LOPV`NCLV`OCLV`RJV`SHV`TIjV`VIV`YJHV`Zi.}eV`]}fRxjA MV`vQ NV`CNOV`DBQPV`EQV`V(RV`P%SV`q+ TV`FVV`i XV`EYV`G5%[V`t\V`QFf^V`cE_V`u `V`APgaV`} >bV`~cV`zW V`CLV`CLV`CLgV`m V`CLV`CLV`CLV`CLmV`GacnV`{oV`a V`CLV`CLV`CLV`CLV`CLV`CLV`CLwV`@{xV`L\yV`Q\V`OP{V` j"# |V` ]}V`qU~V`]V`C2V`EvV`Fv ~V`OPV`Uv |V`CLV`"GXTV`#HVFV`%H%V`(KFuV`*CLtV`+CLV`-`b V`/hĜ V`Xh$ 5V`ZJ6V`[JfV`]CLV`^CL:V``C=;V`aGƩo6 V`@rLV`AkV`BhV`EHZV`GYffV`H`V`I_!V`KR33"V`LlL#V`Mg33$V`NK%V`ON̺&V`PL'V`QKWy(V`RAV`TCL*V`VJ<+V`WZxpV`ZCL-V`@V`CLV`CL0V`{ 1V`Wھ2V`H3V`K4V`F JV`OP6V`]V`CL8V`F:V`CL:V`E V`CLV`Tt?V`Hډ@V`FAV`HAV`OPDV`@EV`GgFV`F=GV`P,V``3V`f9V`_V`k V`_5V`VZ V`gL V`g! V`v V`u !V`CL V`CLV`CLV`b V`CLV`uD V`@V`A:V`pPL V`L5 V`wl V`CLV`CLV`CLV`CLV`CLV`GV`HV`{ V`l1V`](V`v V`zcz V`p V`"p V`%EV`&W]YV`'BV`(P9V`*B V`-PV`.BbV`/DV`3z % V`4P V`7n* V`8`33V`9UFfV`:^V`;CLV`CLV`?CLV`@CLV`COPV`DOPV`FCLV`HCLV`KJV`LHV`MIV`NIV`yJHV`{i\)}eV`^}fV`-jy MV`wWw NV`COV`D6PV`EQV`V^RV`PSV`pӖ TV`FVV`i8V XV`EYV`G[V`R\V`T^V`eB_V`uV `V`AaV`~zbV`~cV`zV`CLV`CLV`CLgV`m[ V`CLV`CLV`CLV`CLmV`G?nV`{@oV`a V`CLV`CLV`CLV`CLV`CLV`CLV`CLwV`AxV`OyV`QV`OP{V`j33 |V`]d}V`phg~V` ]V` C V` EbV`r ~V`OPV`X[ |V`@CLV`CGKV`DHI>V`EH V`HPuV`KCLtV`LCLV`N`o V`Ohw V`Pg 5V`SJa6V`TJV`VCLV`WCL:V`YC;V`ZFOtV`M`uV`B+V`OPV`CLxV` yV`LxzV`GV`OPV`CL}V` G~V` JV` HV` DV`OP~V`CLV`C'V`Sj V`B!V`GS3V`ApV`CL V`DV`CLV` CL V`!fV`"CLV`#CLV`%IV`(CLV`+OPV`.ph V`/\_ V`2CLV`3CLV`4CLV`6oK V`8ls3V`9cLV`:\fV`=H V`?cgV`@gV`Af!V`BI4"V`Ckff#V`le$V`mK^%V`nN&V`oLw0'V`pKWy(V`rA V`tCL*V`vI+V`wbv$V`yCL-V`{K V`~CLV`CL0V`|C 1V`W2V`H53V`K?4V`FV`OP6V`]V`CL8V`FV`CL:V`E V`CLV`T9 ?V`H*@V`FAV`HV`OPDV`@EV`GFV`F@TGV`PuV`a V`g<V`_3V`jb V``:"V`h! V`gX V`gx V`v V`u !V`CL V`CLV`CLV`aL V`CLV`t V` | V` BFV` p V` |V` vI V` CLV` CLV` CLV` CLV` CLV` FV` H_V` { V` lo"V` ](V` v V` zcz V` p}[ V` "npV` %ElV` &PV` 'CӥV` (R(zV` *B+ V` -QV` /BV` 0DkV` 3y V` 4NE V` 7i V` ``3V` aXfV` b^V` dCLV` eCLV` fCLV` gCLV` hCLV` kOPV` lOPV` oCLV` pCLV` sJV` tH;V` uIV` vIVV` zJ)V` {h}eV` y=<}fV`Nj MV` w NV` COV` DEPV` E@QV` U+RV` PSV` r TV` FVV` hJ XV` FjYV` G[V` Ѳ|u\V` P@^V` e_V` u `V` AaV` ~bV` @qcV` {\V` CLV` CLV` CLgV` m V` CLV` CLV` CLV` CLmV` GFnV` {@oV` ` V` CLV` CLV` CLV` CLV` CLV` CLV` CLwV` A{xV` N\yV` RV` (OP{V` +iwx |V` -^}V` /n)z~V` 1]V` 4CjV` 5EGV` 8U ~V` :OPV` >U |V` @CLV` CGMpV` DH*V` EGV` IIuV` KCLtV` LCLV` N`Z V` Ph V` Qh 5V` SJa6V` TJ6V` VCLV` WCL:V` YCZ;V` ZEGV` U\HV` Jy LV` }MV` wNV` GROV` zT PV` zT QV` FRV` J3TV` HgUV` GVV` FV` OPV` CLYV` AZV` @V` OPV` CL]V` tM ^V` ]V` OPV` CLaV` QRkV` OPV` CLdV` GV` OPfV` ^V` CLhV` C:iV` SlV` OPkV` S lV` imV` gnV` I@oV` cNpV` [ qV` T rV` W33 sV` MKtV` NGuV` BV` OPV` CLxV` @;yV` KAzV` GV` OPV` CL}V` GB~V` JgV` HV` EV` OP~V` CLV` CZV` S2 V` C3V` H3V` B4V` CL V` DV` CLV` CL V` "MHV` ?kHV` @MHV` BCLV` CCLV` DCLV` FCLV` GCLV` HCLV` ICLV` J]V` KCLV` LCLV` NCLV` OMV` QCLV` TCyV` UCLV` VCLV` z V` CLV` CLV` CLV` OP$V` J %V` I&V` LV` CL*V` I_,V` WiV` OP.V` NV` CLV` CLV` OPV` CL3V` pJ4V` A6V` \7V` Y@8V` Y@9V` u?7:V` xs3;V` ~V` T]?V` H@V` F"AV` H{V` OPDV` A"EV` GgFV` FFGV` PV` [V` dYV` \gV` jQw V` bߋV` y V` g V` gn V` vh. V` uD !V` CL V` CLV` CLV` c V` CLV` u V` z V` BUZV` pmy V` V` v( V` CLV` CLV` CLV` CLV` CLV` FV` H V` {w V` lyV` ](V` vR V` zcz V` pn V` sVfV` HEZV` IR'V` JDxV` KStV` MB V` PQ V` QBV` SD3V` Vy{ V` WR V` Zj; V` [`fV` \XfV` ]^V` ^CLV` `CLV` aCLV` bCLV` cCLV` fOPV` gOPV` iCLV` kCLV` nJV` oH$V` pIV` qIV` tJ)V` xh` }eV` sx}fV` Nk MV` v`4 NV` C,OV` D62PV` EQV` U_RV` PuSV` qHF TV` FVV` hu XV` F%2YV` G[V` β\V` R(^V` d_V` u `V` A<aV` ~kbV` \cV` yV` CLV` CLV` CLgV` mţ V` CLV` CLV` CLV` CLmV`GnV`{oV``M9 V`CLV`CLV`CLV`CLV`CLV`CLV`CLwV`"B.xV`#NǮyV`$Q.V`%OP{V`(i |V`*]]}V`+nfB~V`.]V`1C2V`2E&V`5~s ~V`7OPV`;VS |V`=CLV`@G KV`AG9V`BG\V`FHZuV`HCLtV`ICLV`KaL V`thO V`vh% 5V`xJ. 6V`yJ V`{CLV`|CL:V`~H;V`D8FV`@GV`j34HV`J LV`@QMV`x=qNV`Hs4OV`z? PV`z QV`FyRV`J%gTV`HUV`G.VV`EV`OPV`CLYV`@ZV`@V`OPV`CL]V`tM ^V`]$V`OPV`CLaV`QkV`OPV`CLdV`G&"V`OPfV`^V`CLhV`C~iV`R;V`OPkV`S lV`imV`gRnV`IoV`clpV`]\ qV`V rV`Y sV`MWltV`N<uV`BV`OPV`CLxV`@gvyV`IezV`GJV`OPV`CL}V`G~V`J<^V` H!V` EnV` OP~V`CLV`CL!V`S V`EV`V`MCLV`POPV`TpX V`U\4 V`XCLV`YCLV`ZCLV`\n V`^AV`_vV``nfV`cFV`elV`fmV`gl\!V`hKg"V`io#V`jcs3$V`kKx%V`lN=&V`mL^'V`nK=(V`oA+V`qCL*V`sI+V`tY_ V`wCL-V`^ V`CLV`CL0V`|` 1V`Z2V`H43V`KP24V`F.ZV`OP6V`]V`CL8V`FmV`CL:V`DYV`CLMHV`hCLV`iCLV`jCLV`kCLV`lCLV`mCLV`nCLV`o]V`qCLV`rCLV`sCLV`tMV`vCLV`yC<V`{CLV`|CLV`~z V`CLV`CLV`CLV`OP$V`Jܪ%V`I&V`IV`CL*V`IT$,V`WgiV`OP.V`NV`CLV`CLV`OPV`CL3V`pD4V`A6V``97V`[Ff8V`NL9V`u :V`v;V`}s3V`T ?V`H:@V`FAV`Hn*V`OPDV`ArEV`GFV`FLGV`PV`ZVfV`bٚV`ZV`iݐ V`c&V` V`gn V`gn V`v- V`u !V`CL V`CLV`CLV``S V`CLV`u V`{ V`BrdV`qHF V`V`v V`CLV`CLV`CLV`CLV`0CLV`3FBV`4HGV`7{ V`9l5V`=](V`>vܹ V`?z V`@p`* V`Cq9V`FEHV`GP'V`HDPV`ITgV`LB. V`ORV`PCV`QEV`Ty] V`UM V`Xm3 V`Y`3V`ZXV`\^V`]CLV`^CLV`_CLV``CLV`aCLV`eOPV`fOPV`hCLV`iCLV`IV`HV`I V`InV`J)V`f@ }eV`Q;}fV`Kl ( MV`w NV`C,OV`DNqPV`EgQV`URV`P/SV`p TV`FeVV`hԁ XV`F=YV`GA[V`̲\V`Ry^V`d_V`v9 `V`AaV`pbV`}cV`xLV`CLV`CLV`CLgV`m V` CLV` CLV` CLV` CLmV`FnV`{yoV`` V`CLV`CLV`CLV`CLV`CLV`CLV`CLwV` AxV`!MyV`"PuV`#OP{V`&i |V`)]}V`*o~V`,]V`/CV`0E{V`\' ~V`^OPV`aY |V`cCLV`fFmV`gGV`iGV`lM~uV`nCLtV`oCLV`raz V`si V`tg 5V`vI6V`wKjV`yCLV`zCL:V`|Jm;V`~BMV`sNV`FaHOV`{ PV`z QV`FyRV`J<TV`GUV`GAVV`E1V`OPV`CLYV`@uZV`@JeV`OPV`CL]V`tx ^V`\PV`OPV`CLaV`QV`OPV`CLdV`G&"V`OPfV`^V`CLhV`CaiV`QNV`OPkV`Sv lV`c=qmV`_nV`IoV`cpV`\Ǯ qV`X8R rV`[ sV`McHtV`N*/uV`BV`OPV`CLxV`$@yV`%Q&zV`&GnV`(OPV`*CL}V`,GJ~V`/JV`0HzV`1EV`2OP~V`4CLV`6CaV`9S V`:DV`;HfV`CL V`@DZV`CCLV`DCL V`EV`FCLV`GCLV`IIiNV`LCLV`OOPV`QqV V`S\4 V`UCLV`WCLV`XCLV`Zoek V`\wgV`]iV`^b,V`FrFV`_V`gpV`eu!V`V@"V`qfg#V``f$V`K%V`N&V`Ln'V`KN_(V`A%V`CL*V`IE+V`aJV`CL-V`AV`CLV`CL0V`~ 1V`YN2V`H3V`K64V`F:V`OP6V`]V`CL8V`FV`CL:V`DYV`CLV`Sj?V`Hd@V`FUAV`H\V`OPDV`AuEV`GFV`FS_GV`P%V```V`h#3V``V`i V`b%V` V`gJ V`h(# V`v4 V`t4 !V`CL V`CLV`CLV`d V`CLV` tY V`!BV`"B V`#p- V`$qXV`&vt V`)CLV`*CLV`+CLV`,CLV`-CLV`0FV`1HV`5{/ V`7lV`:](V`;vt V`;V`|MEuV`BV`OPV` CLxV`"@yV`#PDV`ACLV`BCL V`CIV`DCLV`ECLV`GI(-ZHCLZHOPZH qes ZH ]d ZHCLZHCLZHCLZHo ZHqZHgZHbZHFzZH\W ZHcgZHb >!ZHBs4"ZH ff#ZH!_@$ZH"K%ZH#N&ZH$LlA'ZH%K`(ZH&AZH(CL*ZH*I +ZH+[ZH.CL-ZH0@ZH3CLZH4CL0ZH6|& 1ZH7W2ZH9Hb3ZH:K4ZH;F$5ZHdOP6ZHf]ZHgCL8ZHiF>KZHlCL:ZHnD̘ZHqCLI&ZHALZHCCL*ZHFI?C,ZHGW!ZHHOP.ZHIN,ZHKCLZHLCLZHOOPZHQCL3ZHSp34ZHUAu6ZHXY7ZHYL38ZHZB99ZH]u:ZH_z&g;ZH`zZHcS7?ZHdH@ZHeFAZHfHO ZHgOPDZHAEZHGFZHFMGZHPQZH^)ZHf4ZH^ ZHi@ ZH`ZHVZ ZHh(# ZHhS ZHu ZHt !ZHCL ZHCLZHCLZH`P ZHCLZHu ~ ZHCZHAZHp3 ZHZHv ZHCLZHCLZHCLZHCLZHCLZHFZHGZH{ ZHkZH](ZHvDoDZH?BEZHAW FZHBkGGZHCV(HZHDJ LZHEtMZHFnNZHHD >OZHK{ PZHL{ QZHMFsRZHNILTZHPGʷUZHQGVZHRE>ZHSOPZHUCLYZHW ZZHX@gvZHZOPZHCL]ZHu' ^ZH[:ZHOPZHCLaZHPKZHOPZHCLdZHFZHOPfZH^ZHCLhZHCiZHOyZHOPkZHR lZHimZHcQnZH~f oZHc pZH[3 qZHS rZHXH sZHMmOtZHNMuZHBZHOPZHCLxZHAyZHMzZHG`ZHOPZHCL}ZHG`~ZHItZHH>ZHE4ZHOP~ZHCLZHCwZHSo ZH@fZHEZHZHCL ZHDZHCLZHCL ZH[CZHCLZHCLZHI(-ZHCLZHOPZH qV ZH _(s ZH CLZHCLZHCLZHoK ZHj3ZH_ZH\gZHEZH]ZHdZHdaH!ZH@"ZHf#ZH `$ZH!K%ZH"N&ZH#L4'ZHLKEF(ZHM@ZHOCL*ZHQI=+ZHR`frZHUCL-ZHWB"ZHZCLZH[CL0ZH]} 1ZH^VV2ZH`H3ZHaK <4ZHbEZHcOP6ZHe]ZHfCL8ZHhEZHkCL:ZHmDZHpCLOP$ZH?Jz%ZH@I&ZHBPeZHECL*ZHHI4^,ZHIWoZHJOP.ZHKM-ZHMCLZHNCLZHxOPZHzCL3ZH}p:4ZHAu6ZHM7ZHE8ZHq@9ZHu:ZHzf;ZH|ٚZHS?ZHHn8@ZHFwAZHH5ZHOPDZHAkEZHGҪFZHF<GZHPS,ZHSٚZHYZHSIZHh ZH^,ZH2 ZHhS ZHh ZHu6 ZHtj. !ZHCL ZHCLZHCLZHe>t ZHCLZHu65 ZHA$ZZHCZHp^ ZHcZHvv ZHCLZHCLZHCLZHCLZHCLZHFZZHGѼZH{in ZHkZH]%ZHu} ZHy ZHp% ZHm3ZHE05ZHRZHEZHX ZHB33 ZHPZHCZH EZH y# ZHV"q ZHjD ZH`3ZHVfZH^ZHCLZHCLZH@CLZHACLZHBCLZHEOPZHFOPZHHCLZHJCLZHMIZHNHpZHOHZHPI)ZHSJ)ZHUi:}eZHjL}fZH&l) MZHrv NZHtC OZHvDPZHwEFhQZHzUdRZH{PgfSZHs TZHFVZHh XZHF`YZHG*p[ZH\ZHQP^ZHe*_ZHvc `ZHCaZH{gbZH{RcZHwGZHCLZHCLZHCLgZHmpi ZHCLZHCLZHCLZHCLmZHH0nZH{goZH`$ ZHCLZHCLZHCLZHCLZHCLZHCLZHCLwZH~\*xZHN yZHPuZHOP{ZHjwx |ZH_Ħ}ZHm~ZH ]ZHCfZHEZHxo ~ZHOPZHZ |ZHCLZHGZHGZHGSZH"J"uZH%CLtZH&CLZH(aĜ ZH)h ZH+j 5ZH-Jܪ6ZH.K7ZH0CLZH1CL:ZH3F;ZH4HADZH?BEZHAdFZHBnGZHCN HZHlJ LZHmxkMZHnr\NZHoEOZHr| PZHs{ QZHtFݱRZHvITZHxGUZHyGEVZHzEZH{OPZH}CLYZH@ZZH@RZHOPZHCL]ZHup ^ZHZΗZHOPZHCLaZHOZHOPZHCLdZHFZHOPfZH^ZHCLhZHBEiZHNd$ZHOPkZHR4 lZHtmZHo(nZH+ oZHbpZH\=q qZHVQ rZHY sZHM_tZHNYuZHBZZHOPZHCLxZHA:%yZHL-zZHG`ZHOPZHCL}ZHGQ~ZHIZHHZHEZHOP~ZHCLZHCZZHS= ZHDZHG6gZHDZHCL ZHDZHCLZHCL ZH.ZHCLZHCLZHI(-ZHCLZHOPZHp- ZH _ ZH4CLZH5CLZH6CLZH8o{ ZH:lZH;ciZHZH Ss?ZH HMw@ZH Fg5AZH H'ZH OPDZH AEZH GJFZH F0GZH PZH PyZH U3ZH OZH g ZH _aZH ~ ZH h ZH h ZH u ZH t/ !ZH CL ZH CLZH CLZH a ZH CLZH t ZH { ZH EZH o ZH OZH vh. ZH CLZH CLZH CLZH CLZH CLZH F$ZH H ZH {in ZH kZH ](ZH u6 ZH y ZH p0 ZH nZH E-}ZH QKZH E+ZH YZH Bh ZH *O[ZH +C-ZH ,EZH /yz ZH 1M\ ZH 4i ZH 5`ZH 6VC3ZH 7^ZH 8CLZH 9CLZH ;CLZH uZH CLtZH !CLZH #b ZH $i ZH &i: 5ZH (J 6ZH )KD^ZH +CLZH TCL:ZH VC;ZH WFDpZH \ qZH W rZH Y sZH MXVtZH NcuZH BEZH OPZH CLxZH A^vyZH JM~zZH GXZH OPZH CL}ZH G;~ZH ImZH GԑZH EaZH OP~ZH CLZH CDZH R ZH @PZH CvgZH @ZH CL ZH DZH CLZH CL ZH ߆ZH CLZH CLZH "IZH %CLZH (OPZH ,p3 ZH -\ ZH 0CLZH 1CLZH 2CLZH 4n ZH 6mgZH 7dfZH 8a33ZH ;EPZH =kZH >rǯZH ?p!ZH @B"ZH Aa#ZH BUf$ZH CK%ZH DN&ZH EL'ZH FJu(ZH G@ъZH ICL*ZH KH+ZH LZqZH OCL-ZH QBZH TCLZH UCL0ZH W|} 1ZH ]2ZH Hy3ZH Jݔ4ZH E~ZH OP6ZH ]ZH CL8ZH EZH CL:ZH DZH CLZH S?ZH H@ZH F\OAZH IZH OPDZH A|=EZH GFZH F#PGZH O|ZH VfZH ]iZH VpZH gZ ZH aZH ~oP ZH h ZH h ZH u65 ZH s !ZH CL ZH CLZH CLZH d ZH CLZH t' ZH @}BZH EZH of ZH F^ ZH vK ZH CLZH CLZH CLZH CLZH CLZH FZH HPZH { ZH kfZH]%ZHu ZHy@ ZHp ZHq33ZHE)ZHTkZHE8ZHZ"WZH B3 ZH#OgHZH$C@ZH%EZH)y]w ZH*UW ZH-i ZH._ZH/QfZH0^ZH1CLZH2CLZH4CLZH5CLZH6CLZH9OPZH:OPZHCLZHAIZZHBHZHCHZHDI"ZHGJ ZHKXff }eZH \ }fZH #lz MZHwJ NZHCOZHDjPZHE QZHU^.RZHP`ESZHqes TZHFAVZHh7 XZHFT!YZHG [ZH \ZHP3^ZHe_ZHv `ZHB]aZH~bZH\cZHyaHZHCLZHCLZHCLgZHm` ZHCLZHCLZHCLZHCLmZHG1cnZH{goZH`F ZHCLZHCLZHCLZHCLZHCLZHCLZHCLwZHpxZHNyZHRZHOP{ZHiwx |ZH^A}ZHpP~ZH]ZHCNZHEZH~' ~ZH OPZH V |ZHCLZHG:aZHOZHh|ƚ PZHi| QZHjF/RZHlITZHnG.UZHoGEVZHpEZHqOPZHsCLYZHu ZZHv@ZHOPZHCL]ZHua ^ZH\YZHOPZHCLaZHPZHOPZHCLdZHGZHOPfZH^ZHCLhZHBiZHLlZHOPkZHR lZHu=qmZHnpnZHv޸ oZHbi4pZH]k qZHW. rZHZaH sZHMZ(tZHNmuZHBZHOPZHCLxZHAt@yZHP zZHG-aZHOPZHCL}ZHG-a~ZHI]ZHGɯZHEZHOP~ZH CLZH CDZH R! ZHr3ZHx3ZHuVgZHCL ZHDXZHCLZHCL ZHCLZH?CLZH@CLZHACLZHBCLZHDCLZHE]ZHFCLZHGCLZHHCLZHJMZHKCLZHNCԅZHPCLZHQCLZHSy# ZHVCLZHWCLZHXCLZHZOP$ZH[J5%ZH\IV&ZH_IqZHbCL*ZHeI,ZHfXZHgOP.ZHhNxgZHiCLZHjCLZHOPZHCL3ZHp4ZHAu6ZHB7ZHG8ZHpg9ZHs5:ZHr;ZHp4ZHS??ZHG@ZHFPAZHK<ZHOPDZHA2EZHGoFZHFGZHPZHIZHNgZHI)ZHfK ZHcmZH~(? ZHhJ ZHi ZHt ZHsF !ZHCL ZHCLZHCLZHaD ZHCLZHsl ZHH/ZHEZHoI ZHZHv- ZHCLZHCLZHCLZHCLZHCLZH FgZH HfjZH { ZHk3ZH]%ZHup ZHx ZHo ZHsyZHE%VZHO@QZHD̾ZH[NPZH!B3 ZH$P ZH%CKhZH&EZH)y@Y ZH*L} ZH.k ZH/a&fZH0W3ZH1^ZH2CLZH3CLZH\CLZH^CLZH_CLZHbOPZHcOPZHdOPZHfCLZHjIZHkH"ZHlHwZHmIZHpJ)ZHsf }eZHX}fZHFmF MZHvc NZHCOZHDEPZHEzQZHUZ`RZHP\SZHqV TZHFVZHgP XZHF_YZHG[ZHʳ&0\ZHTQ^ZHeC_ZHv `ZHB QaZH}(bZH|cZHxzZHCLZHCLZHCLgZHmc ZHCLZHCLZHCLZHCLmZHF;nZH{|oZH_{c ZHCLZHCLZHCLZHCLZHCLZHCLZHCLwZHBxZHOyZHPHZHOP{ZH$h |ZH&_ }ZH'p"S~ZH)]ZH-Ch3ZH.ErZH1~; ~ZH3OPZH6V |ZH8CLZHGKZHAG,uZHCCLtZHECLZHGb) ZHHi1 ZHIhbN 5ZHLJ6ZHMKp ZHOCLZHPCL:ZHRBF;ZHSBZHFN=ZHP'TZHI=ZHLZHr ZHM ZHEVZHL>ZHzZHLZHLZH o^ ZH"LZH#@LZH%CLZH(FaZH)Cf;ZH*OPZH,CLZH.CLZH/CLZH0CLZH1CLZH2CLZH3CLZH6YgZH7NZH8^YZH9O34ZH;MffZHCLZH?CLZH@CLZHACLZHBCLZHCCLZHDCLZHF]ZHGCLZHHCLZHICLZHJMZHLCLZHOCyZHQCLZHRCLZH|x+ ZH~CLZHCLZHCLZHOP$ZHJ5%ZHI&ZHG"ZHCL*ZHI-,ZHYZHOP.ZHNv<ZHCLZHCLZHOPZHCL3ZHp 4ZHAu6ZHmY7ZHxf8ZHfL9ZHr:ZHt`;ZHrZHS "?ZHGN@ZHF@+AZHLZHOPDZHA_EZHGR{FZHFGZHOZHKZHP@ZHKZHe ZHc ZH} ZHh" ZHh ZHt4 ZHs !ZHCL ZHCLZHCLZHd/ ZHCLZHsl ZHA"ZHE*ZHnT ZHZHv4 ZHCLZHCLZHCLZHCLZHCLZH FNrZH HjZHz ZHkZH]%ZHq ZHuD ZHo ZHs6fZHDEZHEQ<ZHFDKZHH\ZHJB) ZHMP ZHNCiZHOEZHRy#; ZHSUW ZHVo ZHW`ZHYXfZHZ^ZH[CLZH\CLZH]CLZH^CLZH`CLZHcOPZHdOPZHeOPZHgCLZHjIعZHlHZHmHfZHnIWZHqJ ZHthy }eZHID}fZHGm| MZHw NZHCxOZHCzPZHD QZHUK-RZHPjSZHr TZHEVZHgo XZHF(YZHG[ZHʳP\ZHU1^ZHep_ZHvU `ZHA,aZH|bZHzHcZHw(ZHCLZHCLZHCLgZHmbU ZHCLZHCLZHCLZHCLmZHFƌnZH{oZH^ ZHCLZHCLZHCLZHCLZHCLZHCLZHCLwZH@xZHL\yZH TǮZH"OP{ZH%g |ZH'_v}ZH(q\~ZH*]ZH-CXOZH.FxZH2~ ~ZH4OPZH7Vx |ZH9CLZHGZH?G(ZHBKuZHDCLtZHECLqcl qi?} qi- 5q J6q Kq CLqCL:qAҩ;qF&E<q\1?qBɀqOPqCLBqx CqO;]DqB[EqTFqeGq KHq!I7N Lq"MMq#DuNq$_Oq'}f Pq({a Qq)GgRq*ITq,GvUUq.G.Vq/Dzq0OPq2CLYq4~z Zq5@nq7OPq9CL]q;t4 ^qe_qfOPqhCLaqkRqlOPqnCLdqpEqrOPfqt^quCLhqxB?iqyVtq{OPkq|Rw lq}qmq~m\nqx oqbpqaaH qq[ rq] sqMgtqN}uqBۤqOPqCLxqAyqNiAzqGqOPqCL}qG~qIIqGqEqOP~qCLqCZqRgB q\gqaq`qCL qC.qCLqOP q`mqCLqCLqGoqCLqOPqo qZ qCLqCLqCLqnL qe,q[)qVqD>qZRqbGq`\*!q|34 "q`f#qWf$qKZ%qM&qL 'qKg(q,@Vq.CL*q0G+q1Y5q4CL-q6Bq8OPq:CL0q<|& 1q=V@2q?Ha3q@J4qAE=qBOP6qD]qECL8qGDqJCL:qLDqOCL<qQ},l =qRFbqTOPqVCL@qYNnLAqZHyBq[C$8q]CLq^CLEq` HqaGIqcV JqdHLKqgtLqZ qj qjD qDqJqFqn qkK qJ qCq{qFN=qOqI~qLqr qM qB qQrqzqLqLqo^ qL^q@LqCLqG^qB qOPqCLqCLqCLqCLqCLqCLqCLqYgqL q_yqN qO{qQ=qqCLqCLqCLqCLqCLqCLqCLq]qCLqCLqCLq Mq CLq CqCLqCLqvh. qCLqCLqCLqOP$qJ%qI۞&qQNq!CL*q$H,q%Zeq&OP.q'N2`q)CLq*CLq,OPq.CL3qYp 4q[Au6q^s37q_r&f8q`]9qbr/w:qds ;qepٚ<qflٚqgOP>qhSx*?qiG@qjF3vAqkO<qlOPDqmAJEqnG3FqoE^GqpOqtI33quN9qvHfqwd. qz]q{}& q|i q}i qt qsF !qCL qCLqCLqaY qCLqs qz qDqn qfqu qCLqCLqCLqCLqCLqF?qHj qzu qjq]%qo qtj. qo qr33qEqMfqDmq]qBf qP>qCq$qEqy qL qjw q`qX q^qCLqCLqCLqCLqCLq!OPq"OPq#OPq&CLq)Iϥq*Hq+H`q,Iq/J q1h&f}eqY/}fqn} MqKv}K NqMCROqNCPqODQqRU0RqSPrSqTqV TqVEXVqWf} XqYEYqZF[q[\qR^qe*_qv `qAWaq~ǯbq}{cqy*qCLqCLqCLgqm\ qCLqCLqCLqCLmqFnq{oq] qCLqCLqCLqCLqCLqCLqCLwq\xqLyqQ\)qOP{qfwx |q_A}qpI~q]qCDqF'qFv ~qOPqX |qCLqG?qGSqGqQ uqCLtqCLqdhs qi qhV 5qJl6qK*qCLq CL:q A{;q N=<q[?qByqOPqCLBqyN CqMDqBLQEqQRFqeGqKHqI? LqkMqeNq qOq#} PqL| QqMGRqNITqPG\UqQG]VqRDѫqSOPqUCLYqW} ZqX@gvqZOPq]CL]q_tj. ^qa_PqbOPqdCLaqgQqhOPqjCLdqlEGqnOPfqp^ qqCLhqsBiqtUqvOPkqxRU lqyqmqzn{nq{w0 oq~bpq`) qqXW rq[ sqMhtqNuqBؽqOPqCLxqAyqLzqFmqOPqCL}qF~qI<qGqEGqOP~qCLqCL!qR3 qac4qeqefgqCL qD_qCLqOP q`e qCLqCLqFqCLqOPqo qZh qCLqCLqCLqn% qg4q\@q[qD qXpq`q]R!q Aff"q!gY#q"RY$q#K%q$M&q%L'q&K(q'@fq)CL*q+G0+q,_'q/CL-q1CUq3OPq5CL0q7{ 1q8U-2q:HSc3q;Jk4qXqCLqCLEqK HqGIqc$ JqFZKqGnLqYc qkQ qj> qE qJqF/qnB qkh qJāqCq{qE qPqIqK3qr qM qB qLvqzqLqLXqo^ qKq@LqCLqFqCfqOPqCLqCLqCLqCLqCLqCLqCLqYgqQgqYgqO{qPGqQ=qqCLqCLqCLqCLqCLqCLqCLq]qCLqCLqCLqM-qCLq Cq CLq CLqx qCLqCLqCLqOP$qJ3%qI&qBO§qECL*qGH,qHZqIOP.qJNUqLCLqMCLqPOPqRCL3qUp4qVAu6qY{7qZBg8q[p 9q^q:q`y;qaq<qbu,qcOP>qdS\?qeGb@qfF$AqgPXqhOPDqiAEqjGFqkElGqlOͻqnG@qoLlqqG@qrcI qu`%qv}& qwi/3 qxi[ qytj. qzs T !qCL qCLqCLqdq qCLqs qHO qE]qn}[ qG@ qu qCLqCLqCLqCLqCLqF-qH`qz[ qjq]%qn qsU: qo qp3qEOqT?qDq_qB) qNqClqEqx q U q j" q `c3qVq^qCLqCLqCLqCLqCLqOPqOPqOPqCLq Iq!Hq#Ijq$Iq'J q(lQ}eq\g}fqo MqBw:a NqlC,OqnC;PqoDQqrU0RqsPnSqtq TquEgVqvf` XqyEYqzFܒ[q{U\q|T^qe_qw9 `qAaq{\bq|pcqy#qCLqCLqCLgqmg qCLqCLqCLqCLmqFN0nq{6goq]» qCLqCLqCLqCLqCLqCLqCLwqA{xqOyqSW qOP{qg |q`}qoY~q]qC*qEq' ~qOPqW |qCLqGZ$qGH.qG qIuqCLtqCLqd qi- qh J 5qJa6qKqCLqCL:qAO;qM\<q[ ?qBUZqOPq CLBq5y Cq6LDq7B5Eq9\Fq:qfgGq;apHqikNq?AOqB} PqC| QqDG&"RqFITqHGJUqIGVqJDqKOPqMCLYqO}f ZqP@XqROPqTCL]qVt>u ^qX^.qYOPq[CLaq^Qȡq_OPqaCLdqcE#qeOPfqh^ qiCLhqkAqiqlTzqnOPkqoR:& lqlmqc\nqus3 oqbZ0pq^z qqW rq[L sqMjtqNuqBqOPqCLxqAyqJzqFݱqOPqCL}qF5~qI+qGqE.qOP~qCLqCqQ qgqlqcqCL qE qCLqOP q`,qCLqCLqFqCLq OPq o q Z q CLq CLq CLq n q q6fq aq ]0q C:q W=qq a{q \!q w3 "q `f#q W&g$q KA%q ML{&q LG'q K(q @ q CL*q "G+q $[Sq &CL-q (CZq *OPq ,CL0q .z 1q /[A2q 1HD3q 2JSc4q 3D̘q 5OP6q 7]q `CL8q bCμq eCL:q gD_q jCL<q l|= =q mF>Kq oOPq qCL@q tNtAq uHBq vB q xCLq yCLEq {~' Hq |E"Iq }jy Jq ~F4Kq UWLq Xb q kK q j q E q Jq F>Kq n`* q k_ q Jāq Cq {q Eq Oq Iq K+q r q M q B q LEq zSq Lq Lq o^ q Kq Eʘq CLq Fnq CX/q OPq CLq CLq CLq CLq CLq CLq CLq Ygq Qq afq Nq Lq Rq CLq CLq CLq CLq CLq CLq CLq ]q CLq CLq CLq NIq CLq Cq )CLq *CLq ,} q /CLq 0CLq 1CLq 3OP$q 4J%q 5I &q 8LRq ;CL*q >H,q ?\_q @OP.q ANBq CCLq DCLq FOPq HCL3q Ko4q MAu6q Onff7q PYff8q Qo&f9q Tq :q Vo@;q Wls3<q Xhq YOP>q ZR?q [Gpx@q \F$Aq ]Pq ^OPDq _A)Eq `FFq aEGq bO!q E3q Jfq E&fq b q cq }d q i[ q i[ q t>u q r !q CL q CLq CLq a q CLq sF q Dq Ezq nB q Ŵq u6 q CLq CLq CLq CLq CLq F#q H`q z q jq ]%q nQ q rN q o q mq E q Nq D`q `<q Bp q Obq Ct q Eq x q K q r"" q a3q X3q ^q CLq CLq CLq CLq CLq OPq OPq OPq CLq Iq Heq I'q Iq J q !i!H}eq [}fqp 5 Mq cw:a Nq fCOq gCPq hDQq kURq lPUSq mqJ Tq nEVq pf Xq rEMYq sF[q tP\q uSFg^q xd&_q ywr `q {A<aq }{\*bq ~}4cq yqq CLq CLq CLgq m!m q CLq CLq CLq CLmq Fonq {6goq ^U q CLq CLq CLq CLq CLq CLq CLwq @{xq M >yq UBq OP{q g |q _}q q~q ]q Cq Eq  ~q OPq X. |q CLq G{q Gq H@q H:uq CLtq CLq d q iv q hy 5q JH|6q Kq !CLq "CL:q $A:%;q %KT<q &W?q (B"q *OPq ,CLBq .y Cq /J7Dq 0B%Eq 2T=qFq 3aGq 4UHq 5H Lq 6MuMq 7DuNq 8_{Oq ;~@ Pq =}: Qq >G-aRq ?I>Tq AG>Uq BGVq CDq DOPq FCLYq Hz Zq I@q KOPq MCL]q OtU ^q Q^hq ROPq UCLaq WQ9q OPq CLdq Dq OPfq ^ q CLhq Afiq S>q OPkq R= lq m =mq enq x oq b8hpq b qq YR rq ^{ sq Mp tq N;uq Bq OPq CLxq AZyq Izq F5q OPq CL}q F:~q Hq G2q Eq OP~q CLq C q Qm q f4q l q e@q CL q FLq CLq OP q `q CLq CLq FLq CLq OPq of q Z q CLq CLq CLq mВ q lq `iq [q Cq Y8Rq `ǯq ^!q L33"q }#q U$q K%q M2&q L^'q KA(q  q CL*q G+q b%q JCL-q LC.q NOPq PCL0q R{ 1q SXp2q UH93q VJ?e4q WDq YOP6q []q \CL8q ^Ci(q aCL:q cDXq fCL<q h|& =q iF7 q kOPq mCL@q pNtAq qHBq rCq tCLq uCLEq wU Hq xBSIq yn\ Jq zFKq |UzLq }Y q k_ q j q EZq J q FLq n q k q Jq C-q {eyq Eq Oq Iq K<-q r q M q B q Rq z+q Lq Luq o^ q Kq Eʘq CLq G^q Cclq OPq CLq CLq CLq CLq CLq CLq CLq Ygq Qgq Ygq Qzq LpqS >qCLqCLqCLqCLqCLqCLqCLq]qCLqCLqCLqMq!CLq#Cq%CLq&CLq(}u% q+CLq,CLq-CLq0OP$q1J%q2I\&q4JSq7CL*q:H,q;[&qq~R?qGTL@qFAqQqOPDqAEqFFqEGqO%qEgqJ3qE0qbC qcq}S qi qi qt' qr !qCL qCLqCLqd qCLqs q|& qEOqnn qqu qCLqCLqCLqCLqCLqFqH`qz qjq]%qn`* qq qo7 qnqEqOqDqagXqB qP,qCxeqE)qx qUT qjH q^fqUq^qCLqCLqCLq CLq CLqOPqOPqOPqCLq>I6q?H:q@I1qAIqDJ qEi =}eqSo}fq o Mq`wWw NqbC OqcCzPqdDQqgUG_RqhPcSqiqˈ TqkExVqlg XqnEYqoFs[qpP\qqR%^qtf[_qvw8 `qwAPgaq|bq*cqxkqCLqCLqCLgqmc qCLqCLqCLqCLmqFRnq{4oq^ qCLqCLqCLqCLqCLqCLqCLwq@xqPyqQ>qOP{qhfg |q_}qp+~q]qC qEq{LS ~qOPqXE |qCLq G(q Gaq HqMuqCLtqCLqeL qi qi 5qJ!h6qKuqCLqCL:q AK;q!I<q#U?q$B q&OPq(CLBq*zF^ Cq+HDDq,B!Eq.TRFq/c=qGq0PHq1H Lq2JMq4B Nq5]Oq8~z Pq9} Qq:G-aRq;IbTq=G%Uq>GcVq?D\qhOPqjCLYql{ Zqm@gvqoOPqqCL]qstU ^qu]1qwOPqyCLaq|Qwq}OPqCLdqDuqOPfq^ qCLhqAZiqRqOPkqQ lqhmq`nquq oqb-%pqe qq^ rq_ sqMetqNuqBqOPqCLxqAyqQvzqF5qOPqCL}qF~qHqGc5qEqOP~qCLqBqQ2 qeIqjq_yqCL qFqqCLqOP q`qCLqCLqETqCLqOPqp3 q[8] qCLqCLqCLqm qnq_ffqZfqCyq1Yq2a{q3^!q4s34 "q6kff#q7Wf$q8KZ%q9M&q:Lm'q;Ko(q<@Bfq>CL*q@G} +qA]6qDCL-qFCqHOPqJCL0qLz 1qMWe2qOH/ 3qPJ-84qQDqROP6qT]qUCL8qWCi(qZCL:q\DBq_CL<qa| =qbFRqdOPqfCL@qiNeAqjHBqkC1HqCLqCLEqFv Hq@PIq_V` JqC/KqULqZ qk qk. qEdqJ qFLqn ql3 qJqCq{qFN=qO?qIQkqLqr qM qB qPlqzqLqLqo^ qKqEʘqCLqG^qC3qOPqCLqCLqCLqCLqCLqCLqCLq Ygq Mgq Ygq MHq MHqhqCLqCLqCLqCLqCLqCLqCLq]qCLqCLqCLqMqCLq"Cq$CLq%CLq'|` q)CLq*CLq+CLq.OP$q/J%q0Ig&q3G};q]CL*q`H,qa[CqbOP.qcNqeCLqfCLqiOPqkCL3qmo64qoAu6qrB7qsC8qtjY9qwp:qxng;qymٚ<qzhfgq{OP>q|S}?q}G>|@q~FsAqSqOPDqCD&EqFFqEeGqO[qA,qFqAgqa qaq}d qi qiQ qs qrN !qCL qCLqCLq`EA qCLqs qCL!qDqn qͫAqua qCLqCLqCLqCLqCLqFqH\pqz qj\q]%qn qq qoh qp3qDqOqDi|qbiqBff qQmqC{LqEq$x0 q%L4p q(l33 q)aq*Xfq+^q-CLq.CLq/CLq0CLq1CLq4OPq5OPq7OPq9CLqI7q?IqCJ qDjٚ}eqGJ}fqp Mq^wH NqCOqD2PqDQqU%(RqP\Sqq TqFJVqgP XqEYqF[q&0\qU ^qeIi_qwUU `qA33aq}8Rbq|cqwGqCLqCLqCLgqmh qCLqCLqCLqCLmqF8ynq{6goq^ qCLqCLqCLqCLqCLqCLqCLwq@\xqOpyqSW qOP{qi |q^U}qn~q]qCxqEqr ~qOPqY[ |qCLq Gq G[q HqNuqCLtqCLqe1 qia qh+ 5qJ6qKqCLqCL:qA2;q HA<q![?q"Aҩq$OPq&CLBqPz CqQFADqRB EqTO34FqVeGqWQ=qHqXHK LqYJMqZD4Nq[_Oq^~ Pq_} Qq`G;RqaISTqcGbUqdGVqfD|qgOPqiCLYqky Zql@gvqnOPqpCL]qrtz ^qt\Y#quOPqwCLaqzP2q{OPq}CLdqDqOPfq^ qCLhqAiqQvqOPkqQ lqmmqe(nqtf oqbzpq^R qqX{ rq\\) sqML{tqNuqBqOPqCLxqAyqO԰zqFqOPqCL}qFxC~qHFqGUqE';qOP~qCLqBqP qbqfq\qCL qEVqCLqOP q`qCLqCLqEqCLqOPqph q \ q#CLq$CLq%CLq(m q)pq*`q+[q.C<q0Zzq1aq2_4!q3of "q4\ff#q5V$q6K%q7LN&q8L'q9K(q:@^qG} +q?YqBCL-qDCqFOPqHCL0qJ{ 1qKWl2qMH/ 3qNJ4qOD2qPOP6qR]q|CL8q~CqCL:qDBqCL<q|& =qETqOPqCL@qNZAqHBqC_qCLqCLEqU HqFDIq]| JqC,KqULqZ4 ql3 qkh qE9[qJāqFLqn qlR qJnqD-q{eyqFN=qPvqIBqLqr qM qB qLvqz qLqL qo^ qKqEʘqCLqFqCr,qOPqCLqCLqCLqCLqCLqCLqCLqYgqNgqdqMHqMHqhq CLq CLq CLq CLqCLqCLqCLq]qCLqCLqCLqMqCLqCqECLqFCLqH|& qKCLqLCLqMCLqOOP$qPJȩ%qQI&qTQ^qWCL*qZH`,q[[Rq\OP.q]Niq_CLq`CLqbOPqdCL3qgo4qiAu6qkr&f7qlt8qme9qpo:qru,;qsp<qtjfquOP>qvR\?qwG)@qxF\AqySTqzOPDq{CEq|FKFq}EGq~OqA\qFqBqa q^?q} qi& qiQ qs qr1 !qCL qCLqCLqd/ qCLqt' qHqEqo; qǁquS[ qCLqCLqCLqCLqCLqF qHU/q{ qjpq]%qn qp- qoJ q mqDqO<qDyqc-qBk qOxqCkqEqx qUW q!l* q#` q$Xfq%^q&CLq'CLq(CLq*CLq+CLq.OPq/OPq0OPq2CLq6I q7H@q8I>[q9IqPY@OPkYAQ lYBj(mYCb=qnYDu33 oYGapYIaQ qYKX rYL\f sYMM4tYNNiuYOBYPOPYRCLxYTAyYVLڗzYWFYYOPY[CL}Y]F[G~Y_H_sY`G2@YaEYbOP~YeCLYgB YP YbYd3Y[33YCL YCYCLYOP Y`YCLYCLYEѕYCLYOPYpX Y[ YCLYCLYCLYmmI YkyYWY[YC YY4Y`RY^p!YH&g"Ylg#YO3$YK%YL!&YL'YK0Z(Y@YCL*YGJ+Yb|YCL-YCμYOPYCL0Y{/9 1YU-2YH$"3YJ4YDYOP6Y ]Y CL8Y C'YCL:YDBYCL<Y| =YEYOPYCL@YNd0AYHBY!CY#CLY$CLEY&r HY'GLIY(gg JY)BzKY,yLY.Ya YYlR YZk_ Y[E*Y\JY]F[GY^oK Y_lo YaJYbD;Yd{YeFN=YhP YjIsYkLYnr YpM YsB YtSeYvzYxLYyL&Y|o^ Y~KYEʘYCLYF{YCtYOPYCLYCLYCLYCLYCLYCLYCLYNgYM4YYYgYMHYf=qYCLYCLYCLYCLYCLYCLYCLY]YCLYCLYCLYMYCLYDYCLYCLY}h YCLYCLYCLYOP$YJ%YI&YNYCL*YH>,Y[eYOP.YOwYCLYCLYOPYCL3Y o4Y"Au6Y%|347Y&EL8Y'vf9Y*o/:Y+kS3;Y,g3<Y-aY.OP>Y/R>?Y0Gi@Y1EAY2T 7Y3OPDY4CԉEY5FdFY6EGY7OY:AgY;F3Y_YQwq `YR@ۘaYT}8RbYU|cYVvaHYYCLYZCLY[CLgY^mG Y`CLYaCLYbCLYdCLmYgEnYj{s4oYk` YmCLYnCLYoCLYqCLYrCLYsCLYtCLwYwExYxPyYyUpY{OP{Y~kDD |Y^fB}Yoև~Y]YBYF%Yt ~YOPYY{ |YCLYGYG/YHYK _uYCLtYCLYd Yi Yh 5YIZ6YK'YCLYCL:YG4;YE&<Y[^?YB"YOPYCLBY{ CYADYAEYg{FYj\GYK=qHYH,E LYgQMYXpNYxOY)b PY~ QYGQRYI=TYF_UYG{VYCYOPY!CLYY#zu ZY$@Y&OPY(CL]Y*tx ^Y,Y)Y-OPY/CLaY2OUY3OPY5CLdY7DuY9OPfY;^ YAiY@OYBOPkYCQy lYDgmYE^(nYFuk oYIaTpYK^ qYLV{ rYNZ sYOMtYxNuYyBөYzOPY|CLxY~A"yYKzYF~YOPYCL}YFL~YH3Yh 5YE#YOP~YCLYC YPM Y_#3Y^Y[lYCL YCScYCLYOP Y`,YCLYCLYEWYCLYOPYq3 Y^4 YCLYCLYCLYmY Yn3YWY[YB_YYY`gYa!YL"Yqfg#YQ$YK%YL!&YLŎ'YKbd(Y@YCL*YGJ+Y\:YCL-YCYOPYCL0Y{Z 1Y\2Y H3Y I4Y CēYOP6Y]YCL8YBYCL:Y@D%YCCL<YE| =YFETYHOPYJCL@YMNuAYNH4BYOCzYQCLYRCLEYT~ HYUDIYVl' JYXBHKYYULYZYuc Y]l Y^k Y_EGY`JYaF[GYbB Ycl8 YdJYeD;Yg{eyYiFN=YlP eYnHκYoLYrr YtM YwB YxP5Yzz}Y{LYLYo^ YKYEʘYCLYG^YCmYOPYCLYCLYCLYCLYCLYCLYCLYYgYNgY_pYMHYfYhHYCLYCLYCLYCLYCLYCLYCLY]YCLYCLYCLYN :YCLYC=YCLYCLY|& YCLY CLY CLY OP$YJӓ%YI&YLW3YCL*YH ,YZ5YOP.YOYCLYCLYOPY!CL3Y$o<4Y&Au6Y)i&g7Y*^8Y+i9Y-nǀ:Y/q;Y0nS3<Y1fY2OP>Y3R?Y4G=@Y5EAY6TϏY7OPDY8CEY9FFY:EGY;O[Y?B Y@FYAAYB_ Ymc4Yn~oP Yojp Ypj ^ YrsU: Ysq !YvCL YwCLYxCLYzd/ Y}CLYtj. Y| YETYo+ YYu65 YCLYCLYCLYCLYCLYEYH_)Y{/9 YjY](Yo Yp Yo Yn3YDYNYC#Yf\YBh YP`YCYE7Yx YS YkQ Y`@YVY^YCLYCLYCLYCLYCLYOPYOPYOPYCLYIYH{FYI_ YIYJ Yi}eY^t3}fYor MY>w4 NY@CzOYAD~PYBDDžQYEURYFP}SYHp TYIFVYJi XYLEVYYMF[YNt\YOQP[^YSc_YTw `YU@ۘaYW} >bYX|*cYYxzY[CLY]CLY^CLgYamy YcCLYdCLYeCLYfCLmYjEnYm{goYna^ YCLYCLYCLYCLYCLYCLYCLwYB=qxYM(yYRYOP{Yk |Y]v}YnR~Y]YB!YF+Y~@ ~YOPYZR |YCLYGYGYH3YP}uYCLtYCLYdb Yj5@ Yh7L 5YI6YKo!YCLYCL:YE;Y B<Y Z?Y BEY OPY CLBY {Z CY OLDY AEY cRFY fGY THY G LY gQMY XQNY xROY c PY ~l^ QY GQRY ITY FUY GzVY CY OPY CLYY "z ZY $@Y &OPY (CL]Y *tx ^Y ,XY -OPY /CLaY 2NY 3OPY 5CLdY 7DY aOPfY c^ Y dCLhY fAiY gNrY jOPkY kQR6 lY lmmY mb=qnY nv: oY qbpY s_ qY tY{ rY u\ sY wM6tY xNuY yB9Y zOPY |CLxY ~AZyY IOpzY FY OPY CL}Y F>K~Y HUY D^CY E%Y OP~Y CLY C Y P Y cY afY `ɚY CL Y BY CLY OP Y `Y CLY CLY EY CLY OPY q Y _ Y CLY CLY CLY m?% Y i3Y YY ]0Y BӳY ZfY d34Y `\*!Y |34 "Y d#Y O$Y K?%Y Lt&Y L^'Y KϜ(Y @Y CL*Y G} +Y \Y CL-Y CY (OPY *CL0Y ,{= 1Y -X)2Y /H3Y 0I4Y 2CY 3OP6Y 5]Y 6CL8Y 8BY ;CL:Y =DJY @CL<Y B| =Y CEѕY EOPY GCL@Y JNrAY KHBY LCY NCLY OCLEY Q~' HY RBIY SoU JY UAOKY VU7LY WYf Y Zll Y [l3 Y \EdY ]JnY ^FxCY _B Y `l Y aK Y bDffY {<Y FN=Y P eY IwY LY r Y M Y B Y LvY z`Y LY L`Y o^ Y KY EʘY CLY F=Y CLY OPY CLY CLY CLY CLY CLY CLY CLY PgY N9Y YY OY L{Y OY CLY CLY CLY CLY CLY CLY CLY ]Y CLY CLY CLY MY CLY DY CLY CLY |C Y CLY CLY CLY OP$Y JN%Y I:&Y J"Y CL*Y H ,Y YY OP.Y OY CLY CLY OPY CL3Y !oz4Y #Au6Y &}fg7Y '|348Y (zff9Y *n :Y Ty34;Y Uq3<Y VnyY WOP>Y XRǴ?Y YF@Y ZEAY [T^Y \OPDY ]DUEY ^FFY _EWGY `OY cClY dHs3Y eCY f_J Y iabY j~y Y kj Y mj Y ns)~ Y oq !Y rCL Y sCLY tCLY va Y yCLY {u Y }IwY ~EY q9 Y {LY uD Y CLY CLY CLY CLY CLY EY HdY {LS Y jY ](Y p Y p Y om Y r#3Y DY SCY B2Y gY B) Y OY CY EY x Y K Y m Y `S3Y VY ^Y CLY CLY CLY CLY CLY OPY OPY OPY CLY IY HY IY IY J)Y ff }eY W}fYo. MY 9x# NY ;CvOY OPY@CL@YCNuAYDHBYEC YGCLYHCLEYJ~' HYt@IYwV1 JYx~nKYyoLY{X Y~m YlR YEYJnYFxCYB Ym YK YDtY{eyYFN=YOYIYLYr YM YEVYP Yz YLYLΫYo^ YKYEʘYCLYFaYCmAYOPYCLYCLYCLYCLYCLYCLYCLYY@YQ`YYgYM(YKYN\)YCLYCLYCLYCLYCLYCLYCLY]YCLYCLYCLYMYCLYD=YCLYCLY|& YCLYCLYCLYOP$YJ%YI&Y GY CL*YG%,YYYOP.YOY=CLY>CLYAOPYBCL3YEo4YGAu6YJd347YKj38YL_9YNn:YPn3;YQo3<YRf4YSOP>YTRy?YUF@YVEAYWTqYXOPDYYD5EYZFFY[EGY\O>'Y`lYaEYb Yc_ Yf^"YYg YhkQ YjjSk Yks Ylq !YoCL YpCLYqCLYsd YvCLYu YF/YFqYqˈ Y YuS[ YCLYCLYCLYCLYCLYEHYHlY{w Yj9Y](Yp Yq9 Yo YmYDYOo8YC-5YhYBh YP,9YCYE>Yx YRv Yk] Y`fYX Y^YCLYCLYCLY CLY CLY OPYOPYOPYCLYIUYHoYIPYIYJ)Yh}eYd%}fY ot MY7wf NY9COY:DPY;DEQY>TRYhPSYipY TYjGVYkkVI XYmEGYYnF[Yos\YqQ?J^Yte _YuwV `Yv@!aYx~=qbYy~\*cYzx\*Y}CLY~CLYCLgYm YCLYCLYCLYCLmYEnY{PoYb YCLYCLYCLYCLYCLYCLYCLwY@{xYMW yYRpYOP{Ym"# |Y]hg}Yo$x~Y]YBYF:Yx+ ~YOPY\ |YCLYG{YGYHIYIJsuYCLtYCLYc Yj`B Yh 5YI6YK8YCLYCL:YBrd;YO<YU1y?YB}YOPYCLBY{H CYPzcDYAEY`FYkHGY0^HY1G LY2hfgMY3XQNY4y{OY7 PY8~ QY9GgRRY:HTYCY@OPYBCLYYDz ZYE^ YGOPYICL]YKt ^YM^GYNOPYPCLaYSPiYTOPYVCLdYXDVYZOPfY\^ Y]CLhY_AiYaL}zYcOPkYdQ>j lYekzmYfanYgv oYjbK-pYa\ qYW rY[ sYM tYNkuYBYOPYCLxYA yYPMzYFYOPYCL}YF(~YG`YF`YE';YOP~YCLYCL!YO~ Y\fYQYNYCL YB8PYCLYOP Y`YCLYCLYEYCLYOPYr@3 Y_ւ YCLYCLYCLYlF YefYW&gY\IYBY RY Y{Y WR!Y B"Y \#Ye3$YKq%YL4&YL'YLX7(YABYCL*YG'+YZYCL-YDYOPY!CL0Y#{ 1Y$VV2Y&HU3Y'I.4Y)CY*OP6Y,]Y-CL8Y/CUY2CL:Y\D_Y_CL<Ya} =YbEYdOPYfCL@YiNtAYjHBYm' YpCLYqCLEYs| HYtGkIYuc$ JYv}@KYwUzLYxX Y{m<8 Y|l Y}EZYJYFYB YmYk YKFYDY{eyYFVYOYIWYLYr YM YEVYPYz YM YL~Yo^ YKYEʘYCLYG^YC<YOPYCLYCLYCLYCLYCLYCLYCLYYS3YL4YYgYDGY{ YH=qYCLYCLYCLYCLYCLYCLYCLY]YCLYCLYCLYN dYCLYDbYCLY$CLY&} Y(CLY)CLY*CLY-OP$Y.J%Y/I{&Y2R Y5CL*Y7G,Y8ZWY9OP.Y:OlUYYTR?YUF@YVE(AYWU7/YXOPDYYDJEYZFFY[E|GY\O]Y^Y_DٚY@3Y_& YaY@ YkZY Yjb Yr Yq^ !YCL YCLYCLYbb YCLYu Y@}BYGYrs YXhYup YCLYCLYCLYCLYCLYEyYHz^Y{ YjY](Yq Yq Yn9 YsPYEYPSYBhYj;MYB޸ YPYCYEYx YL Yn Y`3YVY^YCLYCLYCLYCLYCLY OPY OPYOPYCLYIYHYIŦYI YJ)Yg3 }eYU4}fYn.& MY_wY NYaCOYbDPYdDQYgURYhPSYiAOTYjGʋVYkk XYmEYYoF[Yp}\YqQ$^Yte_Yux `YwBmaYx~\bYz|cY{vpY}CLY~CLYCLgYm YCLYCLYCLYCLmYF nY{vgoYcU YCLYCLYCLYCLYCLYCLYCLwY@pxYKzyYQYOP{Ym |Y]}Yl~Y]YCYF}Y{in ~YOPY] |YCLYGxYGYH: YNWuYCLtYCLYc5 Yji Yh 5YI^!6YK"YCLYCL:Y Bk!;Y!N<Y"U?Y#A/Y%OPY'CLBY)| z CY+ODY,AEY.S >FY/e(GY0O\HY1Gk LY2_MY3PNY4qOY7@PY8~; QY9GnRY;HTY=F;UY>GtVY?D<Y@OPYBCLYYD{ ZYEK YGOPYICL]YKt4 ^YM^ͧYNOPYPCLaYSQY|OPY~CLdYEVYOPfY^ YCLhYAiYV#YOPkYQYU lYkzmYcRnYt( oYapY^Q qYVaH rYZB sYM tYN(uYB YOPYCLxYALyYMzYFxCYOPYCL}YF(~YGYFWYE,OYOP~YCLYCi(YO4e YM6fYGIYHYCL YAYCLYOP Y`OYCLYCLYEѕYCLYOPYr1 Y`a YCLYCLYCLYl YnyY[33Y\YB_Y TY YHY XaH!Y x "Y b#YTL$YKj%YL&YM'YL|(Y@YCL*YG+YbYDCL-YFDYHOPYJCL0YL{ 1YMU92YOG3YPIH4YQCRYROP6YT]YUCL8YWC YZCL:Y\DgY_CL<Ya} =YbEVYdOPYfCL@YiNmAYjH{BYkA(YmCLYnCLEYp} HYrG6IYsjoR JYt|KYuVLYwYf Yymv Yzll Y|EY}JZY~F?YB Ym YKFYDY{eyYFN=YOYIYLYr YM YEVYLvYz YM YL#Yo^ YKYEʘYCLYF{YCYOPYCLYCLYCLYCLYCLYCLYCLYX)YMgYY#3Y_YG Y_ > Y CLY CLYCLYCLYCLYCLYCLY]YCLYCLYCLYMYCLYD{YCLY CLY"} Y%CLY&CLY'CLY)OP$Y*J%Y+I>&Y.OBNY1CL*Y4G ,Y5YY6OP.Y7O`Y9CLY9CLYCL3YAo<4YCAu6YEXY7YF`s48YG]9AnE:Alg;A i<A d A OP>A R?A FK@AEٞAATiAOPDACEAFkFAEnGAOU>AAE3ABiA^w Ac]HA~c A k A!jp A"r A#q^ !A&CL A'CLA)CLA+c A.CLA0t[ A1~@ A2BEA3n A5xA9up AdCLAeCLAfCLAgCLAhCLAkEUAlHqLAp{ ArjAu]%Avq9 Awr Axn9 A{sVfA~EAQIABAkvAB APAC>AEjAx0 AQ[ Al A`|AX A^ACLACLACLACLACLAOPAOPAOPACLAIAHAIľAI"AJ Ag }eA5b}fYnI MAwY NACNOADPAE';QAU,RAPǫSAB TAHKVAlm XAEŎYAF[A}\AT^A-e͛_A.xr `A0D?aA2}bA3{\*cA4vqA6CLA7CLA8CLgA;m A>CLA?CLA@CLAACLmADG%nAG{4oAHc AKCLALCLAMCLANCLAOCLAPCLAQCLwATBxAVMffyAWSGAXOP{A[m |A]]}A^l~Aa]AdCLAeFAs ~AOPA] |ACLAGrAHQ5AHBAMuACLtACLAdo Aj Ak 5AIK6AKACLACL:AC6];AK]<A[ ~?AAҩAOPACLBA| CAMDAAEAWFAkHGAOQHAGKC LAkG MAX\ NAGHOA@PA O QAGuRAHTAFZUAGoVADAOPACLYAz7 ZA@AOPACL]At ^A^AOPA CLaA Q~dA OPACLdAEAOPfA^ ACLhAAiAVAOPkAQu lAdmA ]nA!w^ oA$apA&_\ qA'WH rA([ sA)M\tA*NuA+BA-OPA/CLxAYAyAZK`$zA[FA]OPA_CL}AaF(~AcGAeFAfE9[AgOP~AiCLAkC6]AmN Ao@33Apu3AqB AsCL AuAAxCLAzOP A{`wA}CLACLAEACLAOPApӖ A` ACLACLACLAl AXAK3ARfAB<AQzAXqAV!As "AX33#AN$AK]%AL&AM 'AL(A@RbACL*AGn+A\ACL-AD%AOPACL0A{ 1A[&2AG3AI4ACjAOP6A]ACL8ABɀACL:ADgACL<A}: =AEAOPA CL@A#NxgAA$HdBA%B9A'CLA(CLEA*} HA+DIA,n? JA-x_+KA/WLA0Y A2m4 A4m A5EsZA6JZA7F?A8B A9m4 A:K)A;DA={\A?FN=ABP ADHAEK6AHr AJM AMEVANLvAPy AQM ARL#AUo^ AWKAZEʘACLAFAC3AOPACLACLACLACLACLACLACLAYgANgA^lA_AG A_ > ACLACLACLACLACLACLACLA]ACLACLACLANVACLAD{ACLACLA| ACLACLACLAOP$AJm%AI&ALACL*AGD,AXAOP.AOACLACLAOPACL3Aoul4AAu6Ar7Ao&f8Aa9Am:Aj9;Aj<Abs3AOP>A R ?A F@A EDAA T15A OPDACQ6EAFEFAE`{GAO3TACAHACc4A^ Ab JA~ Ak Aj> A r A!qt !ALCL AMCLANCLAP`P ASCLAUt!N AVIAXB?AYo A[A^up AaCLAbCLAcCLAdCLAfCLAiEAjGVAm{ AojAr]%AspӖ AtrN Aun9 AyrfA|E 'A}N<|A~BmAlJABf APACAEAx0 AL Au AaC3AX3A^ACLACLACLACLACLAOPAOPAOPACLAIoAH|.AIAIAJ AeS3 }eA[Y}fAn" MAx NACOAD}PAECQAU%(RAP;SA t/ TA!GVA"kd XA$FqYA%F[A&}\A'O^A+c%_A,x8 `A.C5aA/@aHbA0}cA1y34A3CLA5CLA6CLgA9mr A;CLACLmABHnAE{oAFc AHCLAICLAJCLAKCLALCLANCLAOCLwAzBLxA{O)yA|RQA}OP{Amwx |A]j}Al~A]AD! AFRsA}~ ~AOPA^ |ACLAGSAI!AH=AGuACLtACLAeh Al1 Al1 5AI96AKACLACL:AC;AI~<A[?AAAOPACLBA|5! CAKDAAEAMFAefgGAMHAG- LAk MAX NAGOA@8:PAU QAG} RAHUTAF"UAG[VACHAOPACLYAy#; ZA@AOPACL]Au' ^A^AOPACLaA Q'A OPA CLdAEVAOPfA^ ACLhAA iAUABOPkACQ_ lADg\mAE`pnAFu oAIapAK] qALV rAMY sAOMtAPN̺uAQCAROPATCLxAVAyAWIy8zAXFA[OPA]CL}A_F~AaGoAbGAcELAdOP~AfCLAhCScAkN AlAAmwfAnBiApCL ArA AuCLAxOP Ay` A{CLACLAEACLAOPAqt AaU ACLACLACLAl AZ AK|AR3AB!AVA]ǮA[!AxL "AY#AW$AKI%ALvG&AMz'AL(A@ACL*AG+AYX.ACL-AD%AOPACL0A{a 1AW2AG3AI64AC(AOP6A ]A CL8AHACL:ADuACL<A} =AFiAOPACL@A Nq/AA!HBA"CJA$CLA%CLEA'~s HA(BEIA)^K JA*z<[KA+ULA-Y_ A/n A0m<8 A2EVA3JZA4F:A5B A6n A7K82A8DtA:{NA;FN=A>P'TAAIABK#Amr AoLArEVAsR'AuyBAvLAwL#Azo^ A|KAEʘACLAG^ACVAOPACLACLACLACLACLACLACLAPgAP3AY3AGAxA_ACLACLACLACLACLACLACLA]ACLACLACLANACLADACLACLACACLACLACLAOP$AJO%AIw&AIMACL*AGɔ,AY4AOP.AOAACLACLAOPACL3Aov4AAu6Ak@7AX338Ad9Am,:Ajl;Aig<A`AOP>ARI?AFr@AEfAA TA OPDA CD&EA4FFA5EN^GA6NbA:C<A;IgAQ+h lA ?b\mA @\nA As oA Da|pA F]8R qA GW# rA HYǮ sA JLtA KNbuA LCA MOPA OCLxA QA/yA RQ5zA SFA VOPA XCL}A ZF/~A \GwCA ]GhA ^EHA _OP~A aCLA cCwA NZl A z@A qfgA }2A CL A At@A CLA OP A `ÁA CLA CLA EWA CLA OPA r A aDD A CLA CLA CLA l A [A MA SA AA aaHA h4A e!A u "A Zg#A Vfg$A K?%A Lc&&A M='A L(A A%A CL*A G+A `A CL-A D;A OPA CL0A |5! 1A Vs2A G.3A I4A C.aA OP6A ]A CL8A BA CL:A D|A CL<A ~ =A EѕA OPA CL@A NKAA H5BA CpiA CLA CLEA "~ HA $@`IA '] JA (x|KA )VDLA *Y` A UnB A Vmv A WEA XK A ZFA [B A \n% A ]K82A ^DA `{sA aFN=A dOA fIwA gK"A jr A mLA pEVA qLvA sy%A tM A uL~A xo^ A zKA {G A }CLA FA C3A OPA CLA CLA CLA CLA CLA CLA CLA NgA MA YgA GA xzA _A CLA CLA CLA CLA CLA CLA CLA ]A CLA CLA CLA MA CLA D2A CLA CLA DQNA CLA CLA CLA OP$A J=%A It(&A NAA CL*A G,A XJA OP.A OA CLA CLA OPA CL3A o4A Au6A e7A Y8A !f&g9A $l:A &j;A 'i<A (cgA )OP>A *Rc?A +FL@A ,EAAA -TvA .OPDA /CpEA 0EFA 1E9GA 2N5A 4C)A 5HA 7CA 8`6 A ;b%A <@A =l A >j A ?r A @qes !A CCL A ECLA FCLA Ha A KCLA Mw A N A OJ;A Psc A RfLA Vu A CLA CLA CLA CLA CLA EJA H9A { A kA ](A pX A rk A nl A n3A E7A RbA A}A nA Bk A OA CA E9A x A M A mDD A _A XfA ^A CLA CLA CLA CLA CLA OPA OPA OPA CLA I{.A Hj A IA IA JHA i}eA RmtO}fA o> MA w NA COA DE+PA E:QA URA P1SA qV TA HKVA ka XA FYA F[A p\A Ng^A Hb|_A Ixq `A LB&aA M~\*bA N|cA OwHA QCLA RCLA SCLgA Vm% A YCLA ZCLA [CLA \CLmA _GXUnA b{VgoA cdx A fCLA gCLA hCLA iCLA jCLA kCLA lCLwA pAuxA qO34yA rSHA sOP{A vm |A x_-}A ym(~A |]A CA EXA ~s ~A OPA ]n |A CLA GA HA HIA PJuA CLtA CLA f A lƨ A j 5A IGn6A K A CLA CL:A E;A E-<A X?A AlA OPA CLBA | CA HDA AȾEA UpFA eGGA HRHA G2 LA H\)MA AffNA b >OA @kPA  QA GRA HaTAFzJUAG%VAD_AOPACLYA{= ZA@;AOPACL]Au ^A!^A"OPA$CLaA'Q1BA)OPA+CLdA-F7 A/OPfA1^ A2CLhA4AiA5RoA7OPkA8Q3 lA9kmA;dQnApAAa qABX( rAC\R sADLtAEN5uAGBAHOPAJCLxAtAfyAuP8zAvF~AxOPAzCL}A|FL~A~GObAFAEHAOP~ACLACAN APAJAKACL A@bACLAOP A`ACLACLAEACLAOPAr# A` ACLACLACLAl# AiA^YAZAAAWA^A\{!Ax "A_#ASٚ$AKH%ALL_&AL'ALh(AAEACL*AG+A[|ACL-ADBAOPACL0A|oQ 1AU2AGŦ3AIm4ACAAOP6A]ACL8ABACL:ADA CL<A ~OI =AEAOPACL@A=NOAA>HBA@A^vABCLACCLEAE}u% HAFHcIAGg JAHvKAKELANY, APn`* ARm ASEATK AUF:AVB AWn`* AXKFAYDJA[{A\FN=A`PvAbHIAcLAfr AhLAkEVAlLaAny%AoM ApLAso^ AuKAvTiACLAFADOAOPACLACLACLACLACLACLACLA]ANgAbAGHAGHAMHACLACLACLACLACLACLACLA]ACLACLACLANACLADACLACLACACLACLACLAOP$AJ8 %AIp&AOACL*A G,A Y.6A OP.A OACLACLAOPACL3Ao4AAu6Ay7AWf8Aa39Al:A!q;A"n<A#gA$OP>A%R?A&F5G@A'EAA(Tl<A)OPDA*C4EA+EFA,E+GA-NA0CA1I A2CA3_ A6cLKA7@9qA8m A9j A;rz AGARHAG;] LAXMAONAnHOA@PA  QA GRA HmTA F]LUAG !VADAOPACLYAy ZA@AOPACL]Awna ^A^:AOPA!CLaA$QA%OPA'CLdA)EA+OPfA-^ A.CLhA0AZiA2Q.A\OPkA]P lA^gmA__ nA`vn oAcacpAeaz qAfY8R rAh] sAiLtAjNnuAkC*AlOPAnCLxApB}yAqMWuzAsF5AuOPAwCL}AyFb~A{G6A|FA}EtA~OP~ACLACAM9 APALAN3ACL AAACLAOP A`ÁACLACLAF>KACLAOPAqHF A`' ACLACLACLAk Ac0A_,AYAAAXA`A_!Au "Ad#Ai&g$AKR%AL7l&AL'AL7l(A@ACL*AG+AanACL-AD_AOPACL0A| 1AY(2AG3AI4AC,3AOP6A%]A&CL8A(BA+CL:A-DA0CL<A2~ =A3F A5OPA7CL@A:N&AA;H{BAA>CLA?CLEAA}f HABG3IADl JAErOKAFVLAGY AJn AKme ALEAMK ANFAOB APn AQKFASDAU{eyAVEAYOA[IA\LA_r ALAEVAR AyBAM ALAo^ AKA^;ACLAG^ADOAOPACLACLACLACLACLACLACLA^c3AO4A`AMHAMHAMHACLACLACLACLACLACLACLA]ACLACLACLANACLADACLACLAAW3ACLACLACLAOP$AJ %AIm&AL~ACL*AG,AYAOP.AOA CLA CLA OPACL3Aol4AAu6Am 7Aag8A_@9Al:Aq;ArY<AhfgAOP>A Rxt?A!F.@A"E AA#UdA$OPDA%CzEA&EFA'E+ GAPNATEAUJgAVEfAW^ߤ AZ]A[D A\mv A]j A_r]\ A`qHF !AcCL AdCLAeCLAgbA AjCLAlu ~ AnI AoC App AqF= Aru AuCLAvCLAwCLAyCLAzCLA}EA~HMA{ AkA]%Aq9 Ar Anl Ap0AE^ASاA@`AqNAB) ANACCAEWAxP AN5 AkU A`lAVfA^ACLACLACLACLACLAOPAOPAOPACLAIxuAHlAIAIAJ AiaH}eAq[L}fAo MA(wt NA*CtOA+D;PA,ESuQA/URA1PSA2pX TA3G@KVA4j\ XA6FwVYA7F#[A8o\A:R^A=c4_A>xr `A@AaAABbAB|pcACx=qAFCLAGCLAHCLgAKm AMCLANCLAOCLAQCLmA|GvnA{ oAc ACLACLACLACLACLACLACLwA{xAHyAR\AOP{AlUU |A_s!}Al~A]ACVAEA| ~AOPAZE |ACLAGAH~AH)cAJLuACLtACLAe- Alv Ai& 5AIB6AJgACLACL:AG;AD<AUu?AAAOPACLBA} CACoDAAREAQFAq(GA_HAG LAXMAO\NAnOA@PA QAGRAH/TAFI]UAG VACBAOPA CLYA x ZAAAOPACL]Aw ^A\AOPACLaADQAEOPAGCLdAIEAKOPfAM^ ANCLhAPAiAROATOPkAUP lAVj33mAWanAXv oA[aqpA]`( qA^\=q rA`aaH sAaLetAbNuAcC<*AdOPAfCLxAhByAiKzAkFAmOPAoCL}AqFi~AsG5AtFAuEuAvOP~AxCLAzCA}MuB A~PffAM6fAN&fACL AB1 ACLAOP A`ACLACLAF7 ACLAOPApӖ A`Pb ACLACLACLAk A``AZ0AU<AAAZ=qAaBA^!A\4"AI#A@l$AKS%ALC&AL'AK(A@fACL*AG+A]GA CL-ADXAOPACL0A| 1AY62AG3AI4AC AOP6A]ACL8A BNA#CL:A%DA(CL<A* =A+F A-OPA/CL@A2N1AA3HBA4BA6CLA7CLEA9}R HA:D1IA )Rw? )F0@ )EA )U} )OPD )CE )EٞF )E!G )O$ )R )Yff )Q )_  )a, )~c  )me  )j  )r1  )q9 ! )CL )CL )CL )c!(  )CL )t  )CU )Cw )o۔  )5 )u  )-CL ).CL )/CL )0CL )1CL )4Eǰ )5Gn )9{  );j )>]( )?q  )@s T  )An  )Dsc3 )GE )HN )J@9F )Ks )MB{  )PP] )QCٞ )RE )UxP  )VN  )Yl  )[aFf )\X  )]^ )^CL )_CL )`CL )aCL )cCL )fOP )gOP )OP )CL )Iu )Hj  )I )I )J  )fy }e )WJ}fAo[ M )w N )CO )D=P )ELQ )UR )PS )pӖ T )GV )j X )F[YY )Fa[ )ʰ\ )Q^ )dG_ )x ` )AFa )|b )zc )w )CL )CL )CLg )md )CL )CL ) CL ) CLm ) G rn ){o )bY )CL )CL )CL )CL )CL )CL )CLw )Ax )Oy ) S )!OP{ )$l33 | )&_N} )'pO`~ )*] )-C6] ).E )Y}h ~ )[OP )_\ | )aCL )dGe  )eH5 )fH7% )jP<u )lCLt )mCL )oe  )ql8  )rij 5 )tI6 )uJ8 )wCL )xCL: )zI{; ){MU< )|V? )~A )OP )CLB )} C )A BD )A[E )SF )o\*G )LQH )Fa L )X34M )O34N )nGO )@P )@Q )GR )HT )F=U )G hV )CQ6 )OP )CLY )w Z )@r )OP )CL] )w4 ^ )[ )OP )CLa )P )OP )CLd )F )OPf )^  )CLh )ALi )M0 )OPk )P l )g33m )_n )uE o )aup )\) q )VR r )Yu s )Lt )Ndu )C? )!OP )#CLx )%BEy )&Iz )'F ))OP )+CL} )-Fi~ )/G6 )1G w )2Ei4 )3OP~ )5CL )7C )9M.  );W9 ) )RQ? )F8@ )EA )TO )OPD )C E )E(F )E .G )N )R )X )Q )`%d  )cH )~c  )nQ  )k  )r#  )q ! )CL )CL )CL )b  )CL ) tU  )!|  )"G )#p  )% )(u  )+CL )-CL ).CL )/CL )0CL )3Eǰ )4Gv )7{  ):j9 )=]( )>q  )?s8  )@n  )Cmf )FEF )GPv )HO{ )Ju^ )LBh  )OPN )xC9 )yE] )|x  )}Q$  )mU  )`ɚ )U )^ )CL )CL )CL )CL )CL )OP )OP )OP )CL )Is )Hr5 )I )Im )J  )h)}e )%}}f )oo M )w N )CqO )D7P )EfNQ )U'R )P&S )p T )G*vV )jGP X )FLY )Fn[ )ﰷ\ )R(^ )cT_ )x ` )Aa )zHb )z8Rc )w )CL )CL )CLg )nS )CL )CL )CL )CLm ) F>n ) {C4o ) b )CL )CL )CL )CL )CL )CL )CLw )B@px )CNy )DT. )EOP{ )Hlfg | )J]} )Kl~ )N] )QC )RE& )Uv4 ~ )WOP )[[[ | )]CL )`GS )aHm )bH%  )fKjqu )hCLt )iCL )ke  )ll  )ni& 5 )pHٞ6 )qJ  )sCL )tCL: )wKm; )zJD< ){ZE? )A )OP )CLB )}u% C )N`D )AE )QF )eG )V(H )F8 L )X{M )O34N )mO )@P )@Q )GBR )HT )F9U )G V )CW )OP )CLY )w Z )@ )OP )CL] )wQ? ^ )ZRn )OP )CLa )PA )OP )CLd )ET )OPf )^  )CLh ) A{i ) L&x ) OPk ) P2 l )gm )a\)n )uf o )ap )`L q )WL r )Y s )Let )N u )CT )OP )CLx )!BNy )"Pz )#F/ )%OP )'CL} ))Fi~ )+G5 ),G ).ER )/OP~ )1CL )3D )5L  )6K )7E` )9N&f );CL )=B5 )?CL )BOP )C`  )mCL )nCL )pE )sCL )vOP )yp-  )z`' )}CL )~CL )CL )k@  )bg )] )V6g )AJ )XaH )_{ )]=q! )J," )u`# )[$ )KQ% )K& )L' )K'( )@; )CL* )G̶+ )a )CL- )Dg )OP )CL0 )|j 1 )V 2 )G"3 )Ik4 )B( )OP6 )] )CL8 )B )CL: )D̘ )CL< )@= )E )OP )CL@ )N9A )H{B )Bs )CL )CLE )} H )@tI )cD J )qaQK )UiL )Y  )B  )n}[  )F )KF )Fݱ )B  )B  )Kc )DJ )| ) E> )4P'T )6IR )7K- ):r  ) )R? )F>[@ )EA )Ux )OPD )CE ) EF ) E!G ) NW ) S3 ) [ ) T ) `  ) b ) ~  ) n  ) k.  ) r  ) pX ! ) CL ) CL ) CL ) bq  ) CL ) tx  ) G&" ) F ) p^  ) "a ) &u  ) )CL ) *CL ) +CL ) ,CL ) -CL ) 0EC ) 1H9 ) 5{  ) 7k  ) b]( ) cph  ) dsU:  ) en8  ) hpY ) kE  ) lOr ) m~| ) ow ) qBB  ) tQQ ) uC/ ) vEɝ ) yx  ) zN  ) }l  ) ~`c3 ) X  ) ^ ) CL ) CL ) CL ) CL ) CL ) OP ) OP ) OP ) CL ) Inx ) Hw ) J& ) I ) J  ) haH}e ) "L}f )ko M ) w N ) CO ) DRP ) EptQ ) UR ) PS ) p| T ) GV ) k X ) F(Y ) F|[ ) \ ) P9^ ) di_ ) y ` ) Aa ) Bb ) Ac ) @ ) CL ) CL ) CLg ) n% ) (CL ) )CL ) *CL ) +CLm ) .F n ) 1{ɚo ) 2b» ) 5CL ) 6CL ) 7CL ) 8CL ) 9CL ) :CL ) ;CLw ) >~\*x ) @PW y ) AQf ) BOP{ ) Em"# | ) G\} ) Ho(~ ) K] ) NC  ) OE~ ) R~] ~ ) TOP ) W\q | ) ZCL ) ]GY< ) ^H ) _HCs ) bHu ) CLt ) CL ) gI  ) mA  ) i 5 ) Hp6 ) J{ ) CL ) CL: ) K{m; ) Fw'< ) \v? ) A ) OP ) CLB ) } C ) Q'D ) A|E ) [F ) f G ) SHH ) Fm[ L ) [pM ) UN ) tfgO ) @P ) @AQ ) GR ) HkT ) F.0U ) G V ) CA? ) OP ) CLY ) x Z ) @ ) OP ) CL] ) u ^ ) \< ) OP ) CLa ) PW ) OP ) CLd ) E ) OPf ) ^  ) CLh ) A{i ) W ) OPk ) Pel l ) k\m ) dffn ) u o ) ap ) \ q ) V( r ) X s ) Lt ) Nu ) C2 ) OP ) CLx ) Ay ) Pưz ) Gg ) "OP ) $CL} ) &F[G~ ) (G- ) )D  ) +Ed ) TOP~ ) VCL ) XC ) ZLn  ) [Qg ) \M6f ) ]Of ) _CL ) aC' ) dCL ) gOP ) ha! ) jCL ) kCL ) mFR ) pCL ) sOP ) vq  ) w` ) zCL ) {CL ) |CL ) k  ) a ) \ ) V ) A ) Y ) `> ) ^! ) v4" ) Z# ) A$ ) KYK% ) KA& ) M' ) Km( ) @E ) CL* ) H2+ ) \(0 ) CL- ) DX ) OP ) CL0 ) |` 1 ) Uu2 ) GR3 ) I`4 ) B ) OP6 ) ] ) CL8 ) By ) CL: ) D ) CL< ) ' = ) E ) OP ) CL@ ) N(EA ) HdB ) B  ) CL ) CLE ) }f H ) H:I ) k>S J ) KK ) V;L ) `  ) B  ) n  ) !ET ) "KF ) $Fݱ ) %B  ) &B  ) 'Kc ) (D ) *{ey ) +FN= ) .P'T ) 0I- ) 1L ) 4r  ) 6M  ) :EV ) ;Lv ) =z ) >M  ) ?L ) Bo^  ) DK ) Eg ) GCL ) JG^ ) KCG ) LOP ) OCL ) PCL ) QCL ) RCL ) SCL ) TCL ) UCL ) Xvf ) L4 ) Yg ) GH ) GH ) GH ) CL ) CL ) CL ) CL ) CL ) CL ) CL ) ] ) CL ) CL ) CL ) N ) CL ) D ) CL ) CL ) C  ) CL ) CL ) CL ) OP$ ) I% ) Ib& ) Lp ) CL* ) G, ) YDz ) OP. ) PF ) CL ) CL ) OP ) CL3 ) o{4 ) Au6 ) c7 ) c8 ) Nf9 ) m?F: ) t; ) l< ) ng ) OP> ) R? ) FA@ ) E A ) U, ) OPD ) DE ) EF ) E"G ) O/ ) T  ) [c3 ) Ts3 ) `  ) ^  ) ~oP  ) n  ) k="  ) q  ) p- ! ) CL ) CL ) CL ) a  ) CL ) t  ) G&" ) FE ) p  ) J ) Hu  ) KCL ) LCL ) MCL ) NCL ) OCL ) SEC ) THj ) W{  ) Yk)' ) \]( ) ]q+  ) ^s  ) _n  ) bp\ ) eE'% ) gN{K ) h}>~ ) iz ) kB\)  ) nQL ) oCa ) pEΰ ) sx  ) tP  ) xm  ) ya ) zXf ) {^ ) |CL ) }CL ) ~CL ) CL ) CL ) OP ) OP ) OP ) CL ) Ii ) Ho ) I> ) I ) J  ) h}e ) N}f ) q. M ) wC N ) CO ) DeBP ) EzQ ) UZ`R ) P1S ) p T ) GV ) k X ) FY ) Fn[ ) L\ ) Sg^ )d,q_ )y ` )@a )@:b )#c )~z )CL )CL )CLg ) nDF )"CL )#CL )$CL )%CLm )(F^n ),{po )-c+ )/CL )0CL )1CL )2CL )3CL )4CL )6CLw )9yQx ):M(y );Q=q ) )RRE? )FJ(@ )EA )Up )OPD )CE )E6F )E&G )N| )R33 )Yٙ )R )a^`  )_"r )~c  )n  )k="  )qˈ  )pӖ ! )CL )CL )CL )2b[  )5CL )7tU  )8  )9G; ):p<  );{ )G )?CͿ )@EsZ )BOP~ )DCL )FC )HK  )IQ&f )JK )KG )MCL )ODX )RCL )UOP )Va| )XCL )YCL )[E )^CL )OP )pX  )`O )CL )CL )CL )k  )e )_I )\ٙ )A )YG )a34 )^! )B3" )og# )W4$ )K;D% )K& )L ' )KU( )@ )CL* )H+ )]~ )CL- )DQN )OP )CL0 ){ 1 )X2 )G3 )IO4 )B )OP6 )] )CL8 )B )CL: )DZ )CL< ) O = )E )OP )CL@ )N=A )HȩB )B )CL )CLE ){a H )CI )` J ) w K ) V:L ) ^;  )B  )oK  )F )K) )F/ )B  )B  )K )D ){ey )E~ )O )I o ) K4 )#r  )%M  )PEV )QQc )Szp )TL )UL )Xo^  )[K )\j  )^CL )aG^ )bDO )cOP )gCL )hCL )iCL )jCL )kCL )lCL )mCL )qX )rLf )sYg )tGH )uGH )vGH )xCL )yCL )zCL ){CL )}CL )~CL )CL )] )CL )CL )CL )N d )CL )D!p )CL )CL )AH )CL )CL )CL )OP$ )I% )I]& )J )CL* )G%, )Y8 )OP. )Pyd )CL )CL )OP )CL3 )ol4 )Au6 )f7 )Yٙ8 )Kf9 )mC: )ug; )lٚ< )gL )OP> )R? )F>[@ )EA )U2 )OPD )CE )EF )E+ G )O< )Qg )Yf )S, )ac  ) b% )!~  )"n  )#kK  )%q  )&ph ! ))CL )*CL )+CL )-c[  )0CL )2tU  )4~'  )5Cpi )6pA  )8 );u  )>CL )?CL )@CL )BCL )CCL )FE )GHx )J{  )Lk_ )O]( )Pp  )Qs  )Sn  )~svf )E1 )N )|' )| )B  )P )C )EQ )x  )R  )l  )` )Xf )^ )CL )CL )CL )CL )CL )OP )OP )OP )CL )I_  )Hj )I. )I  )J) )f, }e )8R}f )soK M )w N )C&O )DkP )EQQ )U/R )PS )B)T )GGV )j\ X )Fz Y )F[ )q%\ )Rl^ )eE_ ) yUU ` ) Ca ) Bzb ) D4c )CQ )CL )CL )CLg )nDF )CL )CL )CL )CLm )FHgRn )I{@o )Jc@ )LCL )MCL )NCL )PCL )QCL )RCL )SCLw )VA4x )WOpy )XR )ZOP{ )]l | )_^,} )`n_~ )b] )eC )gF% )j~ ~ )lOP )o[ | )qCL )tGW )vI )wHD- )xFuu )zCLt ){CL )~gL  )n J  )i^6 5 )H#P6 )J )CL )CL: )M0; )K+< )[I? )AAh )OP )CLB )}; C )M6D )ABE )YGF )efgG )QH )Fo L )[{M )UN )t(O )A'CP )@*jQ )G(R )HOT )FU )G hV )BJ )OP )CLY )w Z )@`2 )OP )CL] )v ^ )`2 )OP )CLa ) Q ) OP )CLd )EsZ )OPf )^ )CLh )Aei )OD )OPk )Ps l )mm )g\n ) v. o )#`Fp )%Zp q )'SR r )(W s ))L t )*N~u )+Bj )-CL ).CLx )0@y )1Qz )4SR )6CL )7CL} )9EZ~ );G. )OP~ )@CL )CDB )EKja  )FQ3 )GIPHiCL  DZ CLOP a=CLCLEZCLOPp `> "CL#CL$CL'k (hg)[33+Uf-A/Z=q1p2_!3wٙ"4Z#5Pf$6K)%7Kh&8M'9LZ(:@p.dCL*fGe+gZ)jCL-lDunOPpCL0r|} 1sWs2uG=3vIHW4wBixOP6z]{CL8}AZCL:DCL<' =F OPCL@MɰAHdBB-CLCLE| z HAInz1 J~7KV5WL]K B B EK)FB B KDU{eyFN=OI?CK r M EVLvzbLLo^ KjpCLFC3OPCLCLCLCLCLCLCLXOYX,GH-GH.GH0CL1CL2CL3CL4CL6CL7CL8]9CL:CL;CL=N?CLAD!pCCLDCLFCICLJCLKCLMOP$NI%OIZ&RP1UCL*XG,YZQZOP.[Pe]CL^CL`OPbCL3eov4gAu6\@7T&f8FY9m :oٙ;l`<j&fOP>R?F6/@EAUOPDC]EEFE-GO;U34\gUa as~ o kZY q ph !CL CLCLb CLt4 J3BpPL i*0u CLCLCLCLCLEiH{ kC](p| s n  oٚ E1 SL<{u}qB N>CEKx MiP nH ` X !^"CL$CL%CL&CL'CL*OP+OP-OP/CLZI^![H\I]IiaJ)biG}eok}f )~qs M|w4 N~CODPEWQV *RP;StU TGzVk XFYF[K\Q^dR_yq `D0HaC+bB=qcAO\CLCLCLgn CLCLCLCLmHn{obn CLCLCLCLCLCLCLw~RxM(yTLOP{m |]:}l~]DL^Fwt ~OP ][~ |"CL&G('I(H"&+Ku-CLt/CL1gO 2l 3kw 56H 67Jb9CL:CL:=Ll;@G"J<AYj?BA2DOPFCLBH} CIKKDJAELQ\)FMf GNIpHPF LQZMRV(NStGOTA:PU@SQVGTRWHUTXFUYGV[B'OPCLYw Z@bOPCL]wQ? ^b$OPCLaR!EOPCLdEOPf^CLhAOiRoOPkPW lrRml=qnu o`2p\ qY{ r[ = sLtNQuB LCLCLx@yLS@zLCLCL}E*~G}B%EOP~CLD;K QiG,FPCL DCLOP a`CL CL ECLOPph _K@ CLCLCLk ^Y V,!RLAcNW.Oa#P\{!QF3"Rog#Sc$TK?%UK&VL('WL\(X@}BZCL*\Go+]b΋`CL-bDdOPfCL0h| 1iVc2kG3lIE4mB)nOP6p]qCL8tAW3vCL:yE|CL<~' =EOPCL@MNAHBB-CLCLE{= HE:IpS J_rKV L] B B F!OK)G )B B KDŰ{eyErOIK8r M EVQXz M L!o^ KjCLF=DOOPCLCLCLCLCLCLCLPg G6g!Yg"kH#kH$kH&CL'CL(CL*CL+CL,CL-CL.]/CL0CL1CL3N 5CL7D&9CL:CLR:}?F1@E"AU>OPDCEEFE-GNSfYS#3bu ]X~c o kw q ph !CL CLCLdc CLt4 D_C:p| _u CLCLCLCLCLEPG{in j](pA s n~k pE.eMz~C Bh  Q ~DẼx T= ls3 `@XfB^CCLDCLECLFCLGCLKOPLOPMOPOCLRI[gSHUI3VIiYJ)Zf}eVM#}f1q MtwC NvDGOwD~8PyE| QV>WRP]Srn TGVkd XFBYF[K\Q^dA_y9 `CeaFJ>bCcB5CLCLCLgnk[ CLCLCLCLmHZn{obn CLCLCLCLCLCLCLwBǮxNLyROP{l |][} mt~ ]DEDvܹ ~OP] |CLG}IW H[#Q u&CLt'CL)gk *m;e +k 5.HO6/J1CL2CL:5K0;6D{<9[4?:A:%CLB@}R CAJMDBAEmVHFndGoIHpE LqZ MrV(Nst(OtAVxPu@[QvGKRwHETyF+UzGV{B|OP~CLYw Z@.OPCL]w ^bOPCLaRCOPCLdEOPf^CLhAW3iR2OPkP loffminxq oap^k qY rY= sLtNQuAMCLCLx@yR8$zPlCLCL}Ed~GhFEOP~CLDJs QR I CL ECLOP aeCLCLEzCL OP4p 5^r 8CL9CL:CL=k >sFg?f&g@aFfCAEUF]G[p!Hp"JVٚ#KE`$LK%MK&NM'OL(P@QRCL*TGx+U\sXCL-ZD|\OP^CL0`|j 1aU72cG3dIA4eE$TgCL6h]iCL8k@nCL:DZCL<K =EWOPCL@MhAHBCCLCLE{/ HFEI\s Ji KXL_x= B B F/K)G )B B KD{eyFN=PHLr M EVPBz M L o^  K lq CL G^ DO OP CL CL CL CL CL CL CL Yg Ng b\ kH kH kH CL CL CL !CL "CL #CL %CL &] 'CL (CL )CL +N  ,CL /D) 1CL 2CL 4B+ 7CL `CL aCL cOP$ dIV% eIU& hIQn kCL* nG, oZ pOP. qPo rCL sCL vOP xCL3 {oM4 }Au6 gf7 _ٚ8 M9 l&: ng; m3< g OP> Ru? F.@ EA U  OPD CE EF E/G O, Q3 V Qi b  ^ ~c  oK  k)  qes  p< ! CL  CL CL bE  CL t  },l  EsZ p  DR  u  CL CL CL CL CL E H  {LS  j" ]% p  sc  n~k  q3 E+ TK z@   B)  )OF *C. +E .x  /L  3u  4`f 5Xf 6^ 7CL 8CL :CL ;CL |Ff# ?Ng$ @K% AK& BM=' CL( D@ FCL* HG`+ I\!W LCL- ND POP RCL0 T|ƚ 1 U]2 WG}3 I<4 EFh CL6 ] CL8  O  CL: DZ CL< @4= EV OP CL@ MA HB Cb CL CLE {LS H E[I _k J IU6 K VL _  B  B  F K) G B  B  K E- { FN= Pv IЍ K<- r  M  EV Lv z  M  Lk o^  K l2 CL F DO OP CL CL CL CL CL CL CL Yg Pf ]g kH kH MH CL CL CL CL CL CL CL ] CL CL CL N  ICL LD% NCL OCL PB8P SCL TCL UCL XOP$ YJ% ZITR& ]L _CL* bH , cYQ dOP. eP gCL hCL kOP mCL3 oob4 qAu6 t]7 uW8 vCl9 yl: {o; |n < }h ~OP> RX? F.@ EA U| OPD CGE EIF E32G O" [g bg \f c*  `  ~  oK  k_  qV  p| ! CL  CL CL eM  CL tx  BE EW p3  ѼS up  CL CL CL CL CL E HD {  j]%pX sU: no nE6N {%4Bn "PB#Bn$B(xP )U ,q -`.Xf/^0CL1CL3CL4CL5CL6CL9OP;OP=CL@IedAHBI6CI\GJ Hh)}e |"}f r+ Mw NDODbhPE]QVRPsSq TGNVk XFYFwV[K\P@^fs_y `BaCQbCQcD >CLCLCLgn CLCLCLCLmGn{ob CLCLCLCLCLCLCLw|xPffyQOP{lDD |]x}oI~]CEqa} ~OPZ |CL GJ IFH+IuCLtM/L'?M\(h@ljCL*lGC+maHpCL-rDtOPvCL0x|& 1yX2|Gb3}I84~EOCL6]CL8~] CL:E CL<@=EѕOPCL@MAHBB%CLCLE{ HBhIt JiVkKVL^ B B F!OK)GB B KE{eyFN=OIK4r M EVRQy>M Lo^ KjpCLF DOOPCLCLCLCLCLCLCL2Pg3LFf4`95MH6kH7kH9CL:CL;CL=CL>CL?CL@CLA]BCLCCLDCLFN HCLJD2LCLMCLOCL!RCLSCLTCLWOP$XI%YIR&[OІ^CL*aH(,bYՅcOP.dPDfCLgCLjOPkCL3oiX4Au6YS37Z8O 9l֕:u3;s<vS4OP>R?F,3@EAU^ OPDCEFFE4GN[gb\@c1 c~K o k_ q9 p^ !CL CLCLa- CLt I Eof z<up CLCLCLCLCLEHfjz j ]% p  sF na7 rfEJ}SY{@B) OR[D.D"x #K &lww '`(V)^+CL,CL-CL.CL/CL1CL\OP]OP_CLbIS<cHeI|fIiJ l} }eV}f?rHw Mu ND iODVIPE2QVRPjSqes TFVj* XFWYFp[\RI?^e_yU `AaCbAcBECLCLCLgnc CLCLCLCLmGn{9obY CLCLCLCLCLCLCLwAHxL\yQ=qOP{kUV |] L}n5~]ClE%~' ~'OP*ZTj |-CL0G31IY2G5Nku8CLt9CL;h CL<7 =EOPCL@MKAHLBC6]CLCLE{w HAI`CC JcKKWLGL]w B B F>KK82G&"B B KE{eyFN=O?IK8r M EVO`ytM Mo^ Km) CL#G^$Dn%OP'CL(CL)CL*CL,CL-CL.CL1Yg2PI3]4GH5GH6kH8CL:CL;CLCL?CL@]ACLCCLDCLEN+GCLJDLCLMCLNBQCLRCLSCL~OP$I*%IQl&L}zCL*HH},ZOP.PqvCLCLOPCL3oo4Au6ZL7P8D@9m0S:xg;ug<sLOP>R?F-@E}AUȃOPDD>EF-FE4GO_@f3_pd cd~: o k q+ p^ !CL CLCLe CLtj. AOEzp$ zua CLCLCLCLCLEH~ zu  j]""u} y na7 sPE^lP|4AEB HOgIDJDMx0 NU Qn{ SafTWU^VCLWCLXCLYCL[CL\CL_OPaCLbCLfIDgHYhIiI\lJogS3 }eWc}f;rr" Mvc NDODMPEQVRPJSqHF TFViz XFYFsr[°c\Pϥ^f _z `AaBLbBǮcC CLCLCLgn CLCLCLCLmGuQn{obD CL CL CLCLCLCLCLwz(xN=qyPHOP{kUV |^{}l`~!]$CV$%E~(}f ~*CL-Yн |/CL2G(;3D4G8Mu:CLt;CL=hH ?n\) @i 5BH%!6CJECLFCL:L ;E<Y? A$Z OP CLB} CD DAER34Fj{GI34HE{ Lw(Mr=qNEfOAP@QGϛRH+TFFU G^V!C*"OP$CLY'w_ Z(Cpi+CL,CL].vY ^/Iw2CL3CLa5JZ8CL9CLd;}X fCLfg]hCLhjB=ilOvXoCLkrO lszmttnw^oxbpz_( q{U r|X s~LtO uAYCLCLxA:%yQsfzMgCLCL}E ~GwF4GOP~CLEVI UvgYPgCL E#CLOP apCLCLGXCLOPpӖ ^i CLCLCLlA q6fdWAdWL_ff]\!I"zٚ#Vٚ$K3%K&M-z'M$\(@KCL*Fs+aCL-D-OP/CL01|` 12V}24G5G35I 47EK{8CL6:];CL8=} @CL:BC.ECL<G}: =HEJOPLCL@OM!APHBQC_SCLTCLEV{/ HWG%IXh JZ\K[UdL\]y _B `B aFibK82cG4dB eB gKE{FN=OIg5K6r M EVLvyM M\o^ KlqCLFDOOPCLCLCLCLCLCLCLYgOgYgkHkHkHCLCLCLCLCLCLCL]CLCLCLNCLD"WCLCLBCL CL CL OP$I-%IP&ICL*Hd,YOP.P`CLCL OP"CL3$o:s4&Au6)^37*[ 8+A9.m1:XpL;Yog<Zj34[OP>\R@?]F1@^E~A_U|_OPDaC*EbFFbE5GcNg`hh#3i`jd~ nano~{ po,| qk rq spA !vCL wCLyCL{ax ~CLtj. }R E#pY JuS[ CLCLCLCLCLEHzu j]""uZ y nR nS3Et-O|uAB^ O[DDx0 K n `3X3^CLCLCLCLCLCLOPCLCLI<H{FI I-#J$h+}eM}f=rV M?v NAD OBDT%PCFcQFVRGP9 SIq+ TJGVKj\ XMFYNF(~[OT\QS0[^Te _Uz9 `VAZ#aXE5bYAffcZCBCLCLCLgn CLCLCLCLmGY<n{ oaI CLCLCLCLCLCLCLwCxLyPOP{kDD |^2}mv~]CC\EFv ~CLYx |CLG.ElGFOuCLtCLi m i^ 5H[6JCLCL:J;C0<YO)?A2OPCLB~# CM_DAE WRF iG L\H Ee LvpMrNEfOATP@QGRHTF[|UGVCOPCLYxo ZC!CL"CL]LtU ^NJQCLRCLaULWCLXCLdZ@b]CLf^]_CLhaC'ibRTeCLkhOk lj|RmkyQnn]foocspq]L qrX rsW stK2tuOuw@oyCLzCLx|AHy}Kxvz~HUCLCL}E~GF86HoOP~CLF/Id F)K&gF CL D- CLOP arCLCLHCLOPpӖ ^ CLCLCLle pFf_ffWAwrY >_^34!nff"\y#D$K3%K~&M&.'M(@QCL*F5+[B!CL-#D%OP'CL0)|` 1*Z2,G3-I4.EV[0CL61]2CL84} 7CL:9Cw|& =?EAOPCCL@FMZAGHBHCjJCLLCLEN{ HOFOIxoI JyVKzUHL{]! ~B B F>KK82G4B B KE:O{FN=OHK-r M EVQ^yM M\o^ Kk CLFWDhOPCLCLCLCLCLCLCLYIPf_QOMHCLCLCLCLCLCLCL]CLCLCLNCLDCLOPBCLCLCL OP$ I% IO& MCL*Hyv,k3OP.P',@CLACLBCLCCL3Eo4GAu6J[37KW8LG39Om1:Qnf;RnL<Sh@TOP>UR9 ?VF3v@WEoAXUoYOPDZCE[F WF\E4G]NϽ_`3`hgaa cdp f_5g~ ho,| ik/ jp kp3 !nCL oCLqCLsdp vCLxt yI(-zDS{o+ juD CLCLCLCLCLE HFz j]""uD y]w nR qfEL|B>B PDJDXx Tx lj `fW^CLCLCL CL CL CLOPCLCLI6/HLI;IJf}q}e[#}ft M7v N9DO:Do>P;FQQ>VR?P*S@p TAFVCjr XmFYnF&[o#\pS^se `_uz* `vA33axD8RbyDٚczCY|CL}CLCLgn CLCLCLCLmG9n{po` CLCLCLCLCLCLCLw{xIByQOP{kwx |]1}l~]C2E' ~CLZ( |CLFEGKuCLtCLi n J i 5H6JCLCL:J|1;K<ZV?BUZCLCLB~ CHYvDA!EWFnGMHE܎ LI\MDW N TO AP4@Q5GבR6HT7F}U8G.V9C/;CLx Z?DBCLCCL]Et>u ^GJ˽ICLKCLaNLePCLQCLdS@VCLfW]XCLhZCSci[P*^CLkaO" lbD{ mdB nggfohcUpja\ qk\ rl^p smKXtnO uACLCLxAW3yRzHmCLCL}E#~GF0BACL~CLEI EJEfCL DCLOP ao6CLCLIbCLOPp- ^ CLCLCLlT q\ aY VS3 Ag Z\ a `\! v " bf# @l$ K3% K& M$\' L( @Q CL* Fy+ ]L CL- E OP CL0 !|j 1 "Y2 $G W3 %HM4 &Ea; (CL6 )] *CL8 ,}  /CL: 1CSc 4CL< 6{w = 7E aOP dCL@ fMA hHB iC kCL lCLE n|R8 H oEI pf J qMK rUQ@L s\a  vB  wB  xF/ zK82 {G4 |B  }B  K E8 { FN= P I3 K3 r  M  EV Lv z  M  M/ o^  L- is^ CL F DO OP CL CL CL CL CL CL CL Yg Ng avg  Zz \ff CL CL CL CL CL CL CL ] CL CL CL NH CL D2 CL CL D4K CL CL CL OP$ Iϥ% (IR&& +O .CL* 1H;, 2h. 3OP. 4PD 5CL 6CL 7CL 8CL3 ;o54 =Au6 @R7 AO38 BA39 EmL: Fp@; Gp@< Hh3 IOP> JQP? KF*c@ LE}A MT NOPD OCE PFF QE.G RN Ud3 Vl We@ Xez  \^ ]}  ^o,|  _k/  `p-  ap ! CL  CL CL ax  CL t  C. Brd o  n u65  CL CL CL CL CL E< H z  jw ]% uD  yl  nD  r6f E0 R, }h B; Bٚ  O^ D D x  K  m  ` X3 ^ CL CL CL CL CL CL OP CL CL I. H3 H IR J g }e R8}ftm M +v N UDO WDP XF`ZQ [VnR \P5|S ]@T ^GV _j0 X bGY cF%[ dI\ eQ'^ he_ izG ` kAa mDb nAHc oCf qCL rCL sCLg un  xCL yCL zCL {CLm ~Gjrn {go `  CL CL CL CL CL CL CLw Bx Ny O OP{ k | ^5} l~ ] CG Ec {a ~ CL \(r | CL F E GT Qu CLt CL j1'  mZ  i| 5 H16 Jb CL CL: K); M< \S? F/ CL CLB }R C E"D AE `F !mG "Z=qH #Fam L $IqM %D(N &TLO 'AqP (@\Q )GTR +HT ,FaU -GV 0|  3CL 4CLY 6xt Z 7Du :CL ;CL] =s ^ >Jf ACL BCLa EK GCL HCLd J@۶ MCLf N] PCLh RCSci SK_ VCLk P= l F m E n hٚo c p f q ` r a s Kt Nu Au CL CLx Ay Nz G' CL CL} E2~ H B F.A @ CL~ CL E2 Ig  u9 rg s CL  B  CL OP  am CL CL I CL OP q  _  CL CL CL l  c Ti U34 Ak X34 _ ]k! zff" c3# Df$ K3% Ky$& L' M( @u CL* F+ Zј CL- EW OP CL0 |ƚ 1 V{2 Gs3 H4 EZ HCL6 I] KCL8 M~24  OCL: RC  TCL< V{ = X}  [CL \CL@ _KA `GqB c~Ü  fCL gCLE i} H jB)I kr J lL<K mUL nb[  qB  rB  sFxC tKF vGC wB  xB  zK {EL |{ }FN= P I L r  M  EV PU z  M  M  o^  R% _) CL G^ DM2 OP CL CL CL CL CL CL CL X Ng a _ Y \( CL CL CL CL CL CL CL ] CL CL CL NCLDnCLCLACLCLCLOP$ I%"IU &$L'CL**IL,+k/,OP.-P@/CL0CL1CL2CL34o B46Au69Z7:Pff8;F39>m=:?w9;@uFg<Aq BOP>CR*?DF@EEo{AFTQGOPDHClEIEFJE!GKN>we#4xlye{e; ~a~ o; kd p pY !CL CLCLdE CLtM |` B=of =u' CLCLCLCLCLE<H?lzu jI]""ua y n5h rfEN~~GB/Bf PDD xt Spi m `X3^CLCLCLCLCLCLOPCLCLI(HFHI JfS3 }ec}f tT MQw:a NSDbOTDsPUFbQXVRYPGPS[BUZT\FV]j X_G9Y`F:[aI\bS^fer_gzc `iCajCBbkA)clCYnCLpCLqCLgsn uCLvCLwCLCLmHh:n{ٚo` CLCLCLCLCLCLCLwzxJ{yP4OP{kwx |^|m}p~]C F%} ~CL[x |CLFmE3GԬI'uCLtCLjP nbN i| 5 ID6 J CL CL:IE;K<<[I?F5CLCLB} COP/DABEW Fi GGHH F- L!IM"CN$TkO%BgP&@?Q'GfR(H T)FU*G̈V-| 0CL1CLY3wt Z4DX7CL8CL]:t[ ^{LS 1?[[2AG3BH4CERECL6F]GCL8I~@ LCL:NC QCL<S{ =TEVWCLXCL@[MA\GB^C-`CLaCLEc^ HeA IhV1 JiI;!KjULbb B B FxCKFGCB B KF}{eyF[GOILr M EVLvzM JPo^ Ts XCLFnDOPCLCLCLCLCLCLCL^3PgavgF{BRACLCLCLCLCLCLCL ] CL CL CLNVCLDCLCLy CLCLCLOP$ J1%!IW7&#K='&CL*)I6,*iV+OP.,Q[.CL/CL0CL1CL33n4]Aff6``7aWs38bIl9en_:gCC3;hA<i~jCL>mVFa?nF@oE[ApSqOPDrC EsEƐFtEGuM!yq3zz\{p|g b%~: oI k ph o !CL CLCL`׬ CLt[ }h Dp u' CLCLCLCLCLE@H|` j]""v4 z)B n& pLEO9IhOB\) QE%E6ux L% qD `W^CLCLCLCLCL%CL&CL'CL(CL+I',HX.H/I2J3g}eJ;}fu1} MMu NODOPCPRF?QUW1HRVO SWtU TXK{VYrw X[GKY]FA[^K\_QD^f@_wc `D+jaTbP4cO CLCLCLgn CLCLCLCLmHn{s4o` CLCLCLCLCLCLCLwAffxK\)yQ=qOP{vP7 |^!}n5~]D\@F<y@Y ~CL\ |CLGFCGHuCLtCLk m/ l- 5Ir6JCLCL: G-a; G< X!? G} CLCLB~OI CL}zDAȾE[34FgGT\)HF L_MWLNrgOB1P@;Q GבR!H 'T#FBU$GV'} RCLSCLYUw ZVDYCLZCL]\u ~ ^^L`CLaCLadMTfCLgCLdiB lCLfm]oCLhqCirRuCLkxP lyJ. mzH n}ho~cpb\ q]# r` sKγtMuAOCLCLxAyQozGCLCL}EsZ~H0EF5@FCL~CLDIj( Q!P3JgCL CCLOP ad|CLCLY(wCLCL{ ^ CLCLCLlO Dtt6gnIAogoǯk!|Y"X#}2$ K:[%"Kγ&#L^'$L(%@'CL*)F~+*^s-CL-/7 2CL3CL05y# 16Y.28G@39H4:F˕CL8@~s CCL:ECpiHCL<J{LS =KG;NCLOCL@RMV$ASHB|A2~CLCLEA$ZHHIt JoKVK/LdR EVEVB B B EVEVB E{eyFN=OI4^Lr M EVOzM JPo^ QTCLG^D~NOPCLCLCLCLCLCLCL`|Ngd AEǮG >CLCLCLCLCLCLCL]CLCLCLN3CLDCLCL }  CL CLCLOP$JQ%IZ&ICL*J,DjwEOP.FQ@HCLICLJCLKCL3No 4PAu6Rc`7SY38TL9Wp@8:YC;ZC<[}]CL>_XN?`F@aEcAbZ!dCLDfEZEhEFiE>GjYmvc3n}yot3ph!N sa t~oP uoI wk xp< yo !|CL }CL~CLd D CLt BEEV[p F= u' CLCLCLCLCLEyHM}: k]%vR { n& p6fFMU x0 SB OAZAhx Sa lD a#3V3^CLCLCLCLCLCLCLCLCLIRT H|.!HƐ#IŦ&J 'iaH}e[u}fv7n MAv}K NCD=ODBeBPEFQX$RO*Ss8 TJ&Vogf XG``YFOm[ \ U^fN_tG `CaObPcMffCLCLCLgn CLCLCL!CLm$H}n'{s4o(a4 *CL+CL,CL-CL/CL0CL1CLw4@x5Ny6T\7OP{9rb |:^"S};pj~e]hD4iEm~s ~oCLq^ |sCLvG* wFyGK|Mu~CLtCLl n7L l9X 5I6JȩCLCL:Ez;D<X?HO CLCLB@CElDA[EWFfRGD(HF LlMd\N}OB-lP@QG\RHTFUGVAmCLCLYw_ ZDCLCL]vh. ^KCLCLaLd$CLCLdACLf]CLhDiM CLkQ,4 lI( mHB nsffoc͌pap q\# r]ff s-KϜt.Mu/Afs1CL2CLx4B)y5Kz6I9CL;CL}=E~?H<@F0A@CCL~DCLFEdII|n JVٚKTLNxNCL PASCLTCL UVCLWCLZX<\CL]CL_}: `^A cCLdCLeCLl D\sfmAk8R}p\!t@"[#D3$Kf%Le&L.P'L(@&CL*F!O+R-CL- O CLCL0y 1Vخ2G3H~4GMCL6]CL8}h CL:CCL<{= =GCLCL@LuAH5eB O CLCLEBEHFI\q JB K uL _v EVEVn m m @EVm @t{eyFN=OH,!L$r &M )EV*K,{H-M .J'Yo^ ZQ\R_CLbF cDdOPfCLgCLhCLiCLjCLkCLmCLpc3qNgravgse >t_u_wCLxCLyCLzCL|CL}CL~CL]CLCLCLN(CLD CLOP~@ CLCLCLCL$J%I^s&G:CL*JX,hu_OP.QzCLCLCLCL3o#4Au6]97Vٚ8O339q:B4;A<|CL>WFY?F_@EAXCLD|= EFSFEGW^rC4y pi !`N"~ #oXB $l %p< &o !)CL +CL,CL.aD 1CL3u 4DX5E6ph 9~a]dCeEh},l ~jCLm]d |oCLrG5sEtGBxN`uzCLt{CL}l ~n kbN 5I6KCLCL:E9[;Ja<[yY?GnCLCLB@;CMDAEgQFtGQHF LpqMhfgN@OBBzPA$ZQGRHTFUHSVTCLCLYw| ZDCLCL]v ^KΌCLCLaL+CLCLdACLf]CLhDQNiS8CLkQ lJǮ mJ n"so#c͌p%a\) q&[ r'^ s(Kt)MGu*A-CL.CLx0B\y1S0oz3NV5CL6CL}8E~:HD;;E2=@L?CL~@CLBEVDJ6M EWGVIHN4JCL LALNCLxCL yIzCL{CL~RCCLCL~24 ^r CLCLCLm! E3y3q,Akspqu!j33"a #JS3$Ko!%Mp&Kh'K(@pCL*E+RzCL-@CLCL0y# 1]D-2G.3HI4FnCL6]CL8}f CL:CCL<{ =GCLCL@LwAHDBBoCLCLECHEbIfc JlKV\XL`S EVEVk jD ju  EV EV jb  @X-} FN=PPIM AmyCM FEVGLvJ|KM LJ$"Oo^ PSX?Fb@EAYICLD | E F~F EeG X.zriyPpi ^ o~] oXB l3 p| o+ !CL  CL!CL#dE &CL)tY *C+EV[,ph -|.ua 1CL2CL3CL5CL6CL9EV:HA=~ ?kWmB]%CvY mz nn3 qr tFluU1mx~s yI|BH PE/5Ex RYV k _ٚV^CLCLCLCLCLCLCLCLCLI6/HHJkJ bf }e-WsM}f}w Mu. NCPO@PFQZ_RNjSq TE>Ve XG``YFSR[p\QÎ^c_lUU `BaO bPO\cQCLCLCLgn  CL CL4CL6CLm9Gn<{o=` ?CL@CLACLCCLDCLECLFCLwIxJLQyKU34MOP{Pg |R]{}Sp~U]XCYE]|j ~_CLa[T |cCLfGD]hEXiH 'jFulCLtmCLm1' nt jD 5I6K=CLCL:D;L<Yu?EVCLCLB@CN,DBEo\*FxGQ HF> LxLMoND8ROBSPA/?QG1RHTG6UH@V@pCLCLYw ZD̘CLCL]wl ^LȐCLCLaNCLCLd BN CLf ] CLh DJi K_ CLk Q4 l K{ m J n q3o dX3p c\) q \( r [B s Kt Mu A] CL CLx "By #Q[:z %L 'CL )CL} +Ez~ -HMM .C /@ 1CL~ 2CL 4F  7J  `Z+3 aZng bQ` dCL  fs  iCL jCL  k lCL mCL oCpi rCL sCL us T  v]̎  yCL zCL {CL ~mIO  H ~s4 w4 B m v{ t >! p3" i`# B$ KR% NB& K' KMw( @ CL* E+ Z" CL- @ CL CL0 y] 1 YG2 G:3 H\4 FF CL6 ] CL8 }u%  CL: C: CL< {Z = G CL CL@ LA HGB A CL CLE CUH C>I o J lI K aL i[  WS  ixB  @ EV EV ixB  ixB  EV (i  *{ +E,O .P.C 0I 1L 4q 6M  9EV :Q <|m =L ?J' Bo^  CS Y? G@ FA M> CLD hJ E FF FG Yf: uC3 ~i u| j  b% ~(?  oXB  l&  pmy  o+ ! CL  CL CL a  CL t  @ E p<   #u  &CL 'CL )CL *CL +CL VE WHN Z~@  \kg _]"" avK  bz  cn  frٚ iF jQ" kA  lS nBH  rRU sE tD wy  xM\  {i"  |`#3 }Vf ~^ CL CL CL CL CL CL CL CL CL I- HA H` J J f3 }e Hc#}fw MuG NCۢOCcPEQZRN%Sp^ TG*Vjc XGO5YFX0[R\Um^e(_pq `AZ#aU#bR\cRQCLCLCLgn CLCLCLCLmGc3n~ٚo`w1 CLCLCLCLCLCLCLw~xN=qyS8ROP{l |]y}n ~^CuE~ ~ CL \J |CLGe E7M&?K'hK(i@kCL*mE+n]f_qCL-s@uvCLwCL0yyl 1zU2|GX3}H4~FCL6]CL8}u% CL:CCL<zu =G0CLCL@L lAHJMBCYCLCLEC>HIi JI Kn[L[ B B B n oK B B oK E}DP^I8K#r#LsEVQԮ}(JPIo^ SCL@CLACLBCLCCLD^ECLFCLGCLINDmKCLND1OCLPCLR@AUCLVCLWCLXCL$[K%\I&^RaCL*dLaS,eU+gCL.jN6kCLCLCLCL3n4A36r7l8dY9xR:If;H3<GPCL>Yk?G@F1ANbCLDtx EGFEGY`{D#3H Blf ]$~(? ouq lD p^ of !CL CLCL_ CLt CUB?p- uZ CLCLCLCLCL E HŨ~' l<]%v z m qFKVwI"~# #@Q&Bn )R9*H4+E.yl /N7. 2j \`f]R ^^_CL`CLaCLbCLdCLeCLfCLgCLhCLkI0mHnHoJrJ us}eXœ}fExջ MvQ NCOCMPEQ[kRN;0S|& TH!VkH XGQYFc[̱+\T@^d_q `A~&aS@bScR\CLCLCLgn: CLCLCLCLmGQnVgo`w1 CLCLCLCLCLCLCLw@xTRyY >OP{%m |'^}(p&~*^-Cj\/E<2} ~4CL6\q |8CL;G=E{>G AG%uCCLtDCLGn\ Hn Ij 5KJ6LKsNCLPCL:RD4K;SJ<TZ?UDXCLYCLB[~ C\ND]B<E_N>FaGNRHFa LQ MNkNZcOB~PAlQGRH-TGVUHGV},l CLCLYvR ZDCLCL]vCL?CL@CLACLBCLCCLECLF^GCLHCLICLKNRLCLODzQCL}CL~|5! CLCLCLCL$K%IF&MeCL*L1,S^CL.D- CLCLCLCL3nА4A36@47m48a9yp:Ff;I#3<DCL>W?G@FKAGoJCLDj ^ EG0FEGW[1BFAAtpmp ^Ѕ~oP ouq lR pA o !CL CLCLdc CLtU @QA/qes r)u}  CL CL CL CLCLE{H l]""Dvh. Ez Fm IppMFNV/^QU SPUB XUBYEqZEM]y _Tx bfٚ c`dRc3e^fCLgCLiCLjCLkCLlCLmCLnCLpCLsI3vtHYuHvJ)yJ }h }eRb}fGyDR Mv NCOBPE]Q[pRNSCTHjVka XG]YFn[ӱ}\S^c_q `C_aUBbU:cQCLCLCLg o{ CLCLCLCLmH0n~ٚo` CLCLCLCL CL!CL"CLw%Ex'Ty(Z.)OP{,nfg |.]1}/pb~1^5Cْ6F_9zcz ~;CL=\ |@CLCGDEEH L>uCLtCLoW o j 5 J4}6 KCLCL:D;F^L<\)?ECLCLB~OI CNDBo$ETF jG!KH"F L#RM$P!HN%\ >O&BnP'ARQ(G R)H-T+GrU,HV/| 2CL3CLY5vK Z6D9CL:CL]dvR ^fLhCLiCLalN8nCLoCLdq@tCLfu^wCLhyDBizT?Z}CLkS: lK mJǮ nroeGph= qaaH rd\ sLqtLûuA:CLCLxB5yPCXzICLCL}EW~Hy@ L@JCL~CLEL cc^CL o CLCL ޤRhCLCLR$CLCLh(# ^ CLCLCLg LE!BfE~V4ZZ!Q"F#c3$Ji%My+&L'J:(@-CL*/EW+1SN3CL-5@R8CL9CL0;y@ 1G3?H4AFCCL6D]ECL8G}I JCL:LD4KOCL<Q{Z =RGUCLVCL@YKcAZHU5B]^ `CLaCLEcCHdCIeb: Jft}KgYyLj' ixB ixB EVB B k) ixB B nww }E,OOI~Lu?LqB OP/@@2JRIo^ SoYC ?pH#@qFUArItCLDuoK EwG<FxEuGyX}AI~E>f@fr `C~c o lR pA o !CL CLCL_Z CLuD }R BNrN R& u CLCLCLCLCLEyH~ mT3]%v( z md rF$[!~24 A^vB&f T]EE~:y] M d  _3!OS3"^#CL$CL%CL'CL(CL)CL*CL+CL,CL0IA1HA2ID3J/ 6J 9Eٚ }ed}fy7 MWvC NYCOZBPEѕQ[ʵRNSs TI Vmg XGZYF[p\U^d) _r `DfaRfbUcRQCLCLCLgoM CLCLCLCLmHn~oa^ CLCLCLCLCLCLCLwB\)xRyZ.OP{o |^(}nq~^DkiFVz ~CL] |CLGFH mQ uCLt CL o  o  m 5JU56KCLCL:C;Lo<\B?ECLCLB~z C ID!BE#H FLlgGNN\)HOG;] LPRYMQP >NR[OSBPTA~QUG'RVH-TWGUXHVZD\CL]CLY_vh. Z`EZcCLdCL]fw| ^hLЃjCLkCLanMpCLqCLds@vCLfw^yCLh{D_i|PCLkSW lMH mMp nt odpiff qcz rb8R sL<tLuB&*CLCLxByJBzEdCLCL}Ez~HBJAsCL~CLFbP3 aK3a$^8CL x0 CLCL ޟCLCLCaCLCLq W} CLCLCLcOQ9EVg@ Fx"Z\)#]$]!%Q3"&Jp#'g$(I%)Mv&*L='+K(,A7=.CL*0Bɀ+1k5CL-7@:CL;CL0=u 1>g=D2@GP3AI4BFvDCL6E]GCL8Ix LCL:NDgyCL<{r =|Ci(CLCL@RAHpxB~' CLCLECDHhqInP JQr2 KULixB B B B oK oK EVB B E~5lDOILu+M lR OWAWJPIg+ SlXK8?mH0Z@nFfLAoJqCLDsvt EuG[FvEGwX<{ Bg|sL cmD o7 lo p3 o !CL CLCLa CLu' |& Bys8 vW CLCLCLCLCLEHo{ n7]%v { md pC3 F VL} @A= UE-E !y S' h33  a3!P#^$CL%CL&CL'CL(CL*CL+CL,CL-CL0IJ(1H3Ij4J8 7J :g }eOk}f z- Mv4 NCNO}$ PEQ]f%RNSsU: TCVb XGtCYF[8\O(^ea$_gr `CNtaS >bUcN\CLCLCLgom; CLCLCLCLmHn~goa CLCLCLCLCLCLCLwD >xUyZkOP{b |]S}o~^D\@F{Z ~CL]J |CLGF:HRG0GuCLt CL4o 5o 6nC 58JW69K;CLC{;?M<A[?BEECLFCLBH~; CIE%DJB ELLFMizGNPHOGc LPS^MRQ NS]=qOTBPUAtQVGRWH1ZTXGHUYH4VZD\CL]CLY_wl Z`E cCLeCL]gxP ^iLk]kCLlCLaoLCLCLd: CLf^CLhDViVCLkS lM mK nsoepi qd rf sLtL{uB|CLCLxB yTizE2CLCL}EO~HF=AnCL~CLGQN bDaFf^vf CL  t>u  CL CL  I CL CL Aq CL CL r#  Z  CL CL CL Gh Jf B c4 !GL #Wk %\ff &[#! '[3" (WVg# )q$ *IX% +M|& ,L>' -K&X( .@9 0CL* 2C4+ 3la 6CL- `@; cCL dCL0 fv4 1 gg`2 iGЍ3 jI04 kFպ mCL6 n] oCL8 qy  tCL: vDJ yCL< {zu = |Dg CL CL@ KdKA HwB ~;  CL CLE DH CI j J [[K yZL `d  XX  ixB  A EV EV ixB  ixB  EV i  ~_ E,O Pv I. L } 8 K:[ k  Lv Bgs JP I g+  SCL @sl  CCL DCL ECL FCL$ IL!% JI& LNַ OCL* RL, SXie UCL. VJ_C YCL ZCL [CL \CL3 _n4 aA36 K 7 D,8 Cc49 ~N: Hc4; J< G CL> X? HYK@ FA CFT CLD i E GjF E%G XCQ Ak3 DNf @f t  c  ?  of  lo  p3  o ! CL  CL CL fTQ  CL u'  |}  Brd s  C5  vK  CL CL CL CL CL F He   n ]"" w  {/  m  q F Z< @A Ha AR  Tk E*" E z)B  WG  !b  "_3 #J3 $^ %CL &CL 'CL )CL *CL +CL TCL UCL VCL ZIW [H \I' ]J@M `J  c{}e Zs}f4zc M uwo N CO AmP EQ ]iR N";S rn T FAV g{ X GcY FQ[ F\ R3^ f$_ n9 ` Ba Vb Tcc RB CL CL CLg pG  CL CL CL CLm H!n go b  CL CL CL CL CL CL CLw F{x Wy [ OP{ jUV | ]#} m~ ^ D# E u ~ "CL $][~ | &CL *Ga +FG ,H  /Ju 1CLt 3CL 5o  6oE  7ov 5 :Je6 ;K3 =CL >CL: @C; AJ7< B[? CE* FCL GCLB I O C JOohD KC+E MMffF OpG PPH QG L RU4M SRN T^O UB=P VAQ WGBR H3T HF+U I,V  O  CL CLY v Z D CL CL] xP ^ MmA CL CLa N CL CLd @ OPf ^ CLh Di S OPk S0 l K m K8R n _o ep iB q d= r dQ s Lt Lu Bt CL CLx C y Rz G0 CL CL} EV[~ H F AN| CL~ CL G-a K^x  c b _ CL  sc  CL CL  ! CL CL W( CL CL iQ  ZEg  CL CL CL _ HL3 IEd JA MH Oc&g Ph}q Qf! RgFg" SWf# T$ UIE% VMB& XL<' YK)( ZA \CL* ^BM+ _k bCL- d@n fCL hCL0 iuZ 1 kg2 mG3 nIU 4 oGx qCL6 r] sCL8 ux+  xCL: zDV }CL< t = Cpi CL CL@ J%gA HyB A CL CLE BrdH EVWI rd J vcK VL b  k_  kh  B  B  B  m  k_  B  B ~B E,O P.C I~ K6 w JP k  P  A JP I8 g+  SCL@{= CCLDCLECLFCL$HKİ%IJL&tJwCL*zLz,{T||CL.~I>CLCLCLCL3nՊ4A6K37I 8F9:K;JP<JCL>X?H@FACCLDp EGqbFEҥGXBEgA@tu a? o۔ l~k p$ o7 !CL CLCL` CLt {/ B}s N5? vv CLCLCLCLCLFHRw@oV)]""w_ {w m qF [ ~ AlA3 DAzcz CP+ FdY Ga3HOɚI^JCLKCLMCLNCLOCLPCLQCLSCLTCLWI}XHYI&ZJG^J ai }eaR4}f 5zb' Mw:a NCOBPFQ]yRN SqV TH!VkVI XGijYF[T\Q&f^e_qr `BaVW bU{cPٚCLCLCLgpG CLCLCLCLmGMn obY CLCLCLCLCLCLCLw E=qx YGy Yff OP{nDD |^D}l:~^CEƄ{ ~CL"]J |$CL'G1(Fq)HJ-Ou/CLt0CL2pY 3p 5n 57Jb68K:CL;CL:=Cμ;>K<?[.)?hEsZkCLlCLBo7 CpFDqCSKEsMFtjpGuQ>HvG LwS!HMxQ>Ny\OzBP{AŖQ}GR~H9QTHsUIgV}h CLCLYvR ZEOCLCL]y ^MCLCLaNpwCLCLd@QCLf^CLhE2iP#CLkTZg lKQ mJL nss3oepeaH q_ r_ sLtL7uB}HCLCLxC/yOCL@r AaU DCLECLFCLIf JMpKEMCOHQTRYTX!US"VF#Wm$XI%YNgZ&ZLB['[Km(\AS^CL*`ET+aZeCL-g@;jCLkCL0zu 1X72H/ 3I,4G(OCL6]CL8}I CL:ECL<{ =G̶CLCL@K)AHBU CLCLEDHHIn JkxKYZoLc7 EVEVB n n EVEVn E}DP eIŦLvͻJ l5h  LS Aפ JPIRg+ SX ?H@FRA|R8 CLDw EGxFE-GWB+3D3@3tl ^  o l p3 o !CL CLCL^ CLu zr B?tU zvt CLCLCLCL$CL(F)HM,@.o1]%2w 3{/ 4m 8n|;F<\1?~OI @@CA{ FVHE'IDLz MQ$ Pb Q_RM S^UCLVCLWCLXCLYCLZCL\CL]CL^CLIgHTGI#JPJ ff }eT2}f2z MuG NCOBLPEQ]RMrSp TIVmIs XG{}YG[\R^d_s `AJaWbVcR\CLCLCLgpW CLCLCLCLmGngob»  CL CL CL CLCLCLCLwGx\8RyXBOP{p33 |^}l~ ^#C$E'}~ ~RCLT] |VCLYGZFk[H_L~uaCLtbCLdp fo gl 5iJK6jKlCLmCL:oC;pK<qZE?sDZvCLwCLByU CzDD{CvE}MF~kGJHH7f L^#M\HNhGOBPA߻QHRH<THUIV~ CLCLYv ZECLCL]yl ^MLCLCLaNVCLCLdc CLf^CLhE2iS5iCLkTKb lLǮ mL nsofXph qb = rd33 sLGtLuBnCLCLxC/yOJMzLCL CL}"E~$H%G&C/)CL~*CL,H@/M! 0b1cH2`4CL 6vW 9CL:CL ;Y/?H@FAp^ CLDi EGkFE=GY BdEVgAvf _,@p$ l p3 of !CL CLCL bA #CL&vh. 'z7 (B)t4 *Q l +v( .CL/CL1CL2CL3CL6F7H6[8@;9p58=]%>x ?{a @m Cn6fFFG]6 AK A  V E Dz[ V3 aw ^\J3^CLCLCLCLCL CL!CL"CL$CL'Io(Ho{)IL*J}3-J)/iW }e*`Z}fdz[ Mvu NxD"OyAmPzFQ}]R~N Sr TH\Vlm XGYGD[T\O^d@_nc `A arbrcpCLCLCLgpG CLCLCLCLmGlBn oc+ CLCLCLCLCLCLCLwO{xX)yapOP{j |\q}nZ~^CxF)|} ~CL^(# |CLGrFFH)cHuCLtCLp o: ,mS 5.J6/K1CL2CL:4Cμ;5JP!<7TQ?8DX;CL7 C?BD@CEBQǮFCp*GDP4HEHo LF]\MH[YNIgaHOJBoPKADQLG8RMH4@TNH UOI}VR~24 UCLVCLYXv( ZYEZ\CL]CL]_yN ^aMFAcCLeCLaNCLCLd@-SCLf^CLhEOiP CLkT lKL mJ{ nr3oepnW qi rk sLGtLuBjhCLCLxC'yTzECLCL}BN~HwGCzACL~CLH9QM* cVgc4_CL u65 CLCL RCLCLRCLCL i[  `a  CLCLCLGO GB3IU\Z&fY!W" JS3#!r$"I%#N/&$L6'%K,(&Aa_(CL**Fq++[ n/CL-YA:%\CL]CL0_|& 1`Ys2cHK3dI>4eG9gCL6h]iCL8k} nCL:pEsCL<u{w =vH[yCLzCL@|K)A~H}BU CLCLEE@HEIB JdAK^c0L_= j j> EVEVEVl ju EVB}E,OO/H\K=} 8JPm KKELJPIg+ SCL$AKϜ%BI&EKGCL*JL:',KXġMCL.OI{RCLSCLTCLUCL3Xo4YA6D37FFg8C)9Aq:I3;K3<GfCL>W29?H@FAK CLDp- EGK5FEGWwAٚD~fAw ak@BVp^ l p3 of !CL CLCLgx CLv- {a Bt Zz wl CLCLCLCLCLFH;@fp]%x {/ m rfG^ Ae A{  V D܌Dk{ Y bL \fIs3^CLCLCLCLCL CL!CL#CLLCLOIPHQI:SJaVJ)Yi3 }eiV}fzC Mwu NyDOz P{FKVQ~`RNSq TEQ:Ve| XGYGwV[q%\Q1^bk_mUU `Aa_)ba#c]ǮCLCLCLgp CLCLCLCLmGdn~ɚod't CLCLCLCLCLCLCLwL34x]zy]OP{hUV |\}k~^C2F[rs ~CL_/3 |CLGlK F!H2%Lu'CLt(CL*p ,pZ -m 5/Jd60KI2CL3CL:5Cp;6G<7[k?9D;CL=CLB?)b C@FDACڌECV{FD~\*GE]RHFHD LGVRMHSٚNIn>OKB4PLAQMGeRNH?TOI_UxJV{~ ~CLCLYvܹ ZDZCLCL]y1 ^LCLCLaM}$CLCLd@4CLf^CLhEiNACLkU lK\ mJ ns3ofzpo\ qh rh{ sLtLٛuCCLCLxCwyS`zF[GCLCL}EV[~HGBgCL~CLHP5 e3ea$CL } CLCL .CLCLWWCLCL rE  ]S CLCLCLaiMFfC.gAJCYD\EZ!Feٚ"HYf#IE$JI%KN&LL%'MKEF(NAE PCL*RDG+Sg+CL--A0CL1CL03}f 14X726H937JU548G:CL6;]} ACL:CEnCL<p{a =qHVFtCLuCL@wK82AyIBz@p|CL}CLEEzHCWZI_ J[AKVCLb  ixB EVB)B B EVEVB B}rEOpIRL} 8K"m Q ELJPIrg+ S_Z|?`I @aFuAc' fCLDht' EjGi4FkEDGlZ DgFBfw a=@np< ll p3 o۔ !CL CLCLeд CLvY {/9 CpiuZ L wB CLCLCLCLCLFhH:@p.p]%xP |R8 md rG#"]' AW3 Af  W]Y Dr D {LS  V  cD  ^f I3 ^ CL CL CL CL CL CL CL CL CL J& !HS "I5G #JZ &J) )h }e`A}f*z M ou " N qCIO sAP tFLQ w`R xNS y@.T zHcV {lO X ~GY Gr[ dk\ Rq^ f3>_ sr ` B_a cb cRc _4 CL CL CLg p  CL CL CL CLm G\n ~4o e#A  CL CL CL CL CL CL CLw I\x Vy [ OP{ o | \} m^d~ ^ C1 FI z7 ~ CL `Sk | CL GC F H? Oyu CLt CL p/  qw  m! 5 (J6 )K +CL ,CL: .B; /K< 0\8? 1EZ 4CL 5CLB 8Fv C 9O4mD :DZE G >U#H ?I  L @fHM AcLN BnO CC-P DBQ FHR GHET HI[EU IJ<V L~  OCL PCLY Rx Z SE@ VCL WCL] Yy ^ [NZ ]CL ^CLa aO[ cCL CLd @X CLf ^ CLh Ei Xk$ CLk U l Mp m L=q n sYo fp q\ q jf r n s LUt LΫu C CL CLx C~y Pz FL CL CL} EO~ H GK A= CL~ CL H  Y  d e a CL  r  CL CL  ~ CL CL U CL CL kK  \N4  CL CL CL h Mg Ex B J \) bG a#! os4" \4# C$ J% ONz& LZ' Kf( A> !CL* #C+ $l 'CL- )A+ TCL UCL0 Wx+ 1 Xg^2 ZII3 [J4 \K#: ^CL6 _] aCL8 cx  fCL: hFL jCL< mt/ = nC qCL rCL@ uOJA vIXbB w@ML yCL zCLE |EZH ~@xI k/ J V3K UתL f  ZO  ixB  Aҩ EV EV ixB  ixB  EV i  }  E,O O/ Ij L } 8 !JP %n%  &Lv 'Gݐ )JP *I -g+  .SCL ?CL BDf C~ EI FL GPR HK JCL KCL LCL MCL NCL PCL QCL R^ SCL TCL UCL WNb CL C  CL CL s  CL CL CL CL$ K% I & Ok CL* L, R#o CL. I CL CL CL CL3 n4 A6 H7 I<8 G6g9 BF: K; Jf< K  CL> W^? I5@ F*A m  CLD i E GF EG W F  Ig E x;  c- @ pӖ  l  pA  o+ ! CL  CL CL `  CL vܹ  z[  C4 vv  ^YK  wna  CL CL CL CL CL F7 HM @֠ q/ I]( Ky#  L}  Mmd  Pr3 SGB T_ U@^ VA͓ XAE  \Xǀ ]C{ ^CH a{  bQ[  ed@  fa gN3 i^ jCL kCL lCL mCL nCL pCL qCL rCL sCL vJ3 wHf yI?C zJ[ }JH hff }e k}f z M tF N D O AP Fi Q aR NS BT HV l X GY G[ ֯j\ O#^ dH_ o ` DM{a rb vc p4 CL CL CLgq CLCLCLCLmHn~`oe CL CL!CL"CL$CL%CL&CLw)O#x*Y{y+`z,OP{0lDD |2[>}3n%~5^8DU9Fw:=}; ~?CLA^S |CCLFGGG)IHJtM~uvCLtwCLzq {rV |odZ 5~J6LpCLCL:B;M<WS?ECLCLB CLDDFEWFvG]RHIH Le0MqHN{gOj> Pd QFRWTIUJuEV~s CLCLYy] ZEV[CLCL]zr ^MCLCLaFCLCLd@CLf^CLhEiW2CLkU lOaH mN33 nss3ofpnL qe3 rf{ sLtLuC7CLCLx Cpiy L"z F?CLCL}EZ~B[@CL~ACLDH#FQ Ggc3HfIc!KCL Mo7 PCLQCL RP TCLUCLWCL!ZCL[CL]h(# ^_ aCLbCLcCLef$gNfhH iD3lK9;nXo]5p\ff!qis3"rT0#sD$tJ%uO(&vL'wKy$(ACL*DG+lCL-ACLCL0z 1g22Iy$3J4GCL6]CL8y] CL:FCL<|& =HCLCL@KUAI|B@0CLCLEEHHHIwz JRKA%Lo; Z  ixB  BUZ EV EVixB ixB EVi }E,OO?HxL} 8 Km#B $Ql%H='JP(I~+g+ -SCLiD3jvfkI3lNmMRnL{pCLrCLsCLtCLuCLvCLwCLx^yCL{CL|CL}NjCLCCLCLs8 CLCLCLCL$K%I&LCL*Ld,TPCL.IbCLCLCLCL3n]4A6L)7M#38I49B;:Jf;L9<ICL>Y?IAq@FA CLDi& EGeFE<GYܳEiH4Days[ bv$@6q l pPL o !CL CLCL^y CL1w 2}I 3C4wB 5a. 7w :CL;CLCLAF,CHaD@Eq=H](Iy J}T Km NrɚQGcScT@iUBfWA ZW[C E\CW_{ aR݊ dd e`fNpg^hCLiCLkCLCLCLCLCLCLCLJZHIWJXJfh }e5n(}fzz MuZU NDOBR PFVQbRNMSsF TEuVe XGYH-\[h\UQ^e_nr `CaW\bYcW5 CL CL CLgqxq CLCLCLCLmHnof CLCL CL!CL"CL#CL$CLw(Mffx)YHy*]\)+OP{.i |0[}1k7~\^_D`FScwB ~eCLg`u |jCLmG˝nGfoHIrGuuCLtvCLxq yr zq=q 5}Jb6~L"yCLCL:C;L^(<[k?ECLCLB^ CHDDmRE[{FzfgGjHI L\MY@NdOeT Pc QAҩRJTI}UJV} CLCLY{ ZElCLCL]{in ^IOPCLaEGCLCLd@CLf^CLhF?iV CLkZ lO mNu noo%hp'p33 q(k# r)l. s*Mt+Lu,D/7.CL/CLx1Cpy3USz4G )7CL8CL}:FR~C @CL~ACLDIbFU GfHeI`4KCL Mr PCLQCL RSCLTCLWZ4YCLZCL\h" ]^zv CLCLCLfs"KA|KWX]L]!`"L#x$I1%N&L'K(BvCL*C+kYCL-A{CLCL0y@Y 1g7M2I63K"4HBCL6]CL8y CL:F~CL<u =DVCLCL@K\WAIІB@CLCLEFHF Imp J[sKzh%L`d X  ixB  CL! EV EV ixB ixB EVi } DVO/I+KKA} 8K"B $Lv%I'JPPISg+ TSX?IKv@FA{= CLDk_ EGVFEGXP?G,J\Efz _Ap qV !m "pmy $p$ !'CL (CL)CL+dTj .CL0x 1{Z 3D4x# 5S") 6w 9CL:CL;CL=CL>CLAF;sBHvC@DqG](Hz J} Kn No3QGjR]xSB.&|B~A= UC`sCM{ Vҍ d `IN3^CLCLCLCLCLCLCLCLCLJbHnIkJ8 Jj33}e5b}fx{,} Mu ND OBPF|QaRNWSrN TIVn XGYHn[e\OI?^f_t* `Cfah(bi&gcd\CLCL CLg q CLCLCLCLmHn~ogY CLDCLECLFCLGCLICLJCLwMNxN[pyO`\POP{Sp |U[S}Wm~Y^\Du]Fc`u ~cCLe] |gCLjG kG]lHpLƉurCLtsCLuqq wr xpk 5zJ46{L9>}CL~CL:C;IĚ<WH?ECLCLB@4CCDDEdFuGVuHJ LV4MSN_HOi\ Pii QA^vRA TJ UJV)b CLCLY},l ZF/CLCL]}X ^IOPCLaDBCLCLdA{CLf^CLhFsiUCLk[|s lK mJ nno h~p"u\ q#n r$naH s&MMt'LAu(D*CL+CLx-Cuy.Tpz/G2CL3CL}6F:~8Ib99H:C}y#Y?#Ijo@#FA#H"#CLD#lD E#G]cF#EVG#X*#Gy#JI#F #{ #^6#A#q #m #p #pPL !#CL #CL#CL#f #CL#x #{LS #DB#x# #ź#}#x+ #CL#CL#CL#CL#CL#FR#H#A#q9#](#z$ #}R #n3 #rf# H# XHY# Bo#Hj#A #V@#T#JC#|C #U9 #^ #^f#I33#!^#"CL##CL#$CL#%CL#'CL#(CL#)CL#*CL#+CL#.J#XHR#YI}#ZJ% #]J#`gL }e#\4c}fu{ M#~u=< N#DO#} P#FVQ#cR#NiS#qes T#F$jV#gE+ X#GY#H[#\#RI?^#c_#i9 `#BDa#y#b#y{c#v\#CL#CL#CLg#q #CL#CL#CL#CLm#H)n#Yo#hj #CL#CL#CL#CL#CL#CL#CLw#O#x#\(y#d{#OP{#d |#Z}#l~#^#D. #F#pA ~#CL#!bl |##CL#&H#(G#)H#,Pu#.CLt#/CL#2qÖ #3s #4o 5#6J6#7LQ#9CL#:CL:#E s<#?\?#@F7 #CCL#DCLB#F@C#GA5D#HDE#J[F#KtfgG#L^H#MJ L#Nb{M#P`zN#QkGO#Tp$ P#Uk Q#V}h R#WK82T#YJ?U#ZJV#' #CL#CLY#} Z#EsZ#CL#CL]#~ ^#@b#CL#CLa#C#CL#CLd#Aҩ#CLf#^#CLh#Ggi#S:#CLk#[v l#L m#K n#ro#i-Xp#r3 q#l r#k3 s#M't#L7u#D#CL#CLx#C:y#Rz#G#CL#CL}#F~#I#I#C*#CL~#CL#JBU#SL #e#eS3#a3#CL #t4 # CL# CL # # CL#CL#J_C#CL#CL#hq7 #i #CL#CL#CL#p@# # J#!Bx#"#MK|#O[#P`#Q]q!#Rh,"#SO##T{$#VIi%#WN&#XM '#YK(#ZBE#\CL*#^G+#_Z#bCL-#dA:#gCL#hCL0#j~ 1#k[p2#mJCD3#nKA4#oH/#qCL6#r]#sCL8#u~@ #xCL:#zGJY#}CL<#} =#Ip#CL#CL@#KJA#JIB#AR#CL#CLE#FH#C#I# J#eQ7K#EL#`6 #[ #ixB #C4#EV#EV#ixB #ixB #EV#i #} #D#O#IS<#L#} 8#JP#B #Px#H8#JP#I#o^ #Q#Aq#CL#G^#F#CL#CL#CL#CL#CL#CL#CL#!CL#$C3#%t6g#&K3#'MR#(U\#)O#+CL#,CL#-CL#/CL#0CL#1CL#2CL#3^#4CL#5CL#7CL#8Nm#:CL#=C#>CL#?CL#AvI #DCL#ECL#FCL#GCL$#JLC%#KI˳&#MMܪ#xCL*#{M*,#|Sb#~CL.#@#CL#CL#CL#CL3#oO4#A6#LP7#L38#G#49#CU:#L3;#K<#Kff#CL>#Y)?#I@#FA#s #CLD#m E#GpxF#E5G#Y#H#L33#G 3#|D #`#A#q #m #p #p| !#CL #CL#CL#ax #CL#yN #|5! #D#x #X-#xt #CL#CL#CL#CL#CL#Fd)#H#@ #q #](#{Z #~] # n& # rI#Gb#YA#Br#C#A #@VKk#AAF#BBM^#E|} #FO3 #IbD #J^f#LK#M^#NCL#OCL#PCL#QCL#SCL#TCL#UCL#VCL#WCL#ZJ#\H#]I#^J. #aJ#dgf }e#h`P}f#2zw M#u N#DO#@P#FQ#dR#NS#q9 T#FV#i X#GŞY#I[#\#P^#e$_#p `#Aa#`\*b#a{c#]L#CL#CL#CLg#r #CL#CL#CL#CLm#Gn##4o#i't #CL#CL#CL#CL#CL# CL# CLw# LQx#\Hy#_G#OP{#l |#ZZ}#lM~#^#Ct#F<#!y ~##CL#%ah |#'CL#*H #,H A#-H#0Gdu#2CLt#3CL#6q #7r #8o1 5#:J{6#;Li#=CL#>CL:#AD_;#BM<#C[^?#lE#oCL#pCLB#r@C#t@D#wDՏE#ySW F#zwuG#{]H#|J5 L#}bGM#~oN#z0O#k P#g/ Q#AfR#M/T#Jt\U#JV#@#CL#CLY#} Z#FR#CL#CL]#}R ^#y@ #CL#CLa#Eѕ#CL#CLd#B?#CLf#^#CLh#G-ai#Rl#CLk#\ l#O m#N n#ro#ip#q q#m{ r#lq s#M(t#M\u#E#CL#CLx#C{y#Q5=z#G:#CL#CL}#G~#I#Iz#Ca#CL~#CL#JP#SV #cg#d34#_# CL #4v4 #7CL#8CL #9 #:CL#;CL#>V`#@CL#ACL#Ci #Dk #GCL#HCL#ICL#Kp~ #MR#NJ#OGg#RL]#TY#U_O\#V^:!#WY"#XP,##Ys$#ZIP%#[N&#\M6'#]Kh(#`@#cCL*#fk(q+#i_A)#lCL-#nBF#CL#CL0#7 1#Y2#JS3#L64#HC#CL6#]#CL8#~] #CL:#G#CL<#~l^ =#I/#CL#CL@#KA#JB#A#CL#CLE#FH#AaI#` J#]hNK#DL#l5h #ZB #ixB #D#@gv#@gv#ixB #ixB #@u# i # }u# E9[# O/# I# L# } 8# K# B # Lv# I# JP# IpJ# o^ # S# Xy?# IT@# GkA# qt # CLD# m E# Gs3F# EG# Xr# FK3# Iq# E3# | # bX# B#2# r@3 # m- # p # p !# CL # CL# CL# c7 # CL# y # |ƚ # D# y # L # x # (CL# )CL# *CL# +CL# ,CL# /F_# 1H# 2@~# 3p6# 6],`# 7|` # 8Fv # 9nD # Ki# Q# CLk# W4 l# L m# Lk n# r3o# i p# q q# laH r# k s# M9Tt# M u# D# CL# CLx# Cy# Nsz# G )# CL# CL}# Fb~# J# !I# "CH# %CL~# &CL# (I># *S # +f&g# ,fH# -bNf# /CL # 1u65 # 4CL# 5CL # 6# 8CL# 9CL# ;Fs# >CL# ?CL# Ai/3 # Bk\ # ECL# FCL# GCL# Ip̲ # KTH# LLK4# MI<# PL> # RZ\# S^# T[!# UX3"# VN&f## Ws $# I %# N&# L'# K(# },l # CL*# pQ+# ]!# CL-# Brd# CL# CL0#  1# W'2# Jϕ3# L4# H# CL6# ]# CL8# Fv # CL:# G'# CL<# U =# Jw# CL# CL@# KuA# JWB# BF# CL# CLE# GH# K(?I# iq J# bK# {sL# r]\ # Z # ixB # J# CB# D# ixB # ixB # C# i # }# EZ# O# I# L# } 8# J# B # Q5# I# JP# IV# o^ # S# YW?# Iw@# GiA# s # CLD# n E# GaF# EG# ZA# jFf# p3# i# A)# a2# BH# b6 # _i # D# F!#CL #CL#CL#h #CL#{in #o #C#z$ # M##x #'CL#(CL#)CL#*CL#+CL#.FJ#/Hf#0A6#2pM]#5],`#6|} #7mi #8nR #;n3#>Hh}#?Yw#@C#BC|#DA #GU1#HBM^#IB#t} #uV #xc #y`vf#{L|#|^#}CL#~CL#CL#CL#CL#CL#CL#CL#CL#Kp#H#I#J%#J#i+}e# B}f# az9) M#u=< N#D!O#* P#F"Q#eIR#N_S#p< T#DAV#c3 X#GY#I[#謄\#OG^#c-_#lU `#Aa#^Qb#^ c#VG#CL#CL#CLg#r; #CL#CL#CL#CLm#G_n#6go#k^ #CL# CL# CL# CL# CL#CL#CLw#N x#\y#OP{#Af |#CYn }#Dh]~#F^#IC#JF#Nr ~#PCL#R` |#TCL#WH0m#YH{2#ZH#]Qu#_CLt#`CL#cqO#me P#f Q#CwR#UVT#J U#JV#@x,#CL#CLY#~; Z#E#CL#CL]# ^#zF^ #CL#CLa#A{#CL#CLd#A#CLf#^#CLh#F[Gi#Oɖ#CLk#WZx l#M m#M n# s o# ip# q q#j8R r#h s#MFt#M"u#E.#CL#CLx#Cμy#MCz#GC#CL#CL}# F~#"JS##Jt#$C#&CL~#'CL#)I#,SS #-fVg#.f3#/b3#1CL #3xH #6CL#7CL #8#9CL#:CL#IV#Ao^ #BS#X?#Iز@#GA#Ef#CLD#n E#GGF#EG#Xɨ#hf#n#gf# E# ^Ѕ# C7# b6 #` #F#H !#CL #CL#CL#cx #CL#}X #rN #D# | #"G#%yN #(CL#)CL#+CL#,CL#-CL#0F.#1H#2A",#3p7Y#^]/#_},l #al3 #bna7 #erf#hH#iZ #jCl#kC"#mA #pW.#rBq#sB #v}: #wNT #z_" #{^#|JS3#}^#CL#CL#CL#CL#CL#CL#CL#CL#CL#Kx#HV#IV#I#K#g` }e#"]}f#cy7 M#uwo N#D";O#B P#GQ#drmR#NԁS#AKT#I V#ny X#GxY#I[#L_\#Pd^#d_#vr `#Bra#WHb#Wc#R#CL#CL#CLg#%rr* #'CL#(CL#)CL#*CLm#-GFn#1o#2l #4CL#5CL#6CL#7CL#8CL#9CL#;CLw#>P{x#?^Qy#@b >#AOP{#Br |#CXj}#Ehhg~#G^#JCg#KFO#Nu6 ~#PCL#Sbl |#UCL#XHF;#YHH#ZHݢ#\Fu#^CLt#_CL#p #t #o 5#J6#L#CL#CL:#E;#H% <#[?#F7 #CL#CLB#AOC#PD#E9E#WǮF#tG#_uH#K L#eٙM#cN#m\O#l& P#e!4 Q#C4R#U#T#JnU#JSV#@#CL#CLY#@Z#D#CL#CL]# ^#y#; #CL#CLa#AK#CL#CLd#B8P#CLf#^#CLh#F[Gi#N;#CLk#Wv l#LR m#L n#to# ipsp# r=q q# lz r# k s#ML{t#M/Lu#EV[#CL#CLx#Cy#S~z#GB#CL#CL}#G~# J#"J##D#%CL~#&CL#PI#,SS #-fVg#.f3#/b3#1CL #3xH #6CL#7CL #8#9CL#:CL##+Yd?#,Ie@#-G)A#0uD #3CLD#5kd E#7G`F#8EG#9Z#ff#BGL#C_#DCv8#Ec[ #Fax #GG#HHd!#LCL #MCL#NCL#Pe #SCL#}~Ü #~n`* #E#| #Q #y #CL#CL#CL#CL#CL#F P#H#AZ#pa@#]/#| #k #n~k #r#H#X #CH#D!#A\ #Vu#B#Cv#}u% #U #bD #^3#Jc3#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#K>#H#I1#Io#K#g3 }e#{ }f#y= M#uZU N#D,O#| P#FQ#De1hR#ENԁS#FA:T#HEn\V#Ien X#KG!Y#LJ9 [#M>;\#NO?^#Rc_#Sh9 `#UD a#Vn!Hb#Wqnc#XmxR#ZCL#\CL#]CLg#_s #aCL#bCL#cCL#dCLm#hHkn#kYo#ll» #nCL#oCL#pCL#qCL#sCL#tCL#uCLw#xJffx#yYffy#{c\*#|OP{#b |#YQ}#jZ~#^#Dg#G #tY ~#CL#_= |#CL#H@#H7#H #Mu#CLt#CL#pf #s #nT 5#K 6#L #CL#CL:#E9[;#D<#V?#FR#CL#CLB#A^vC#ND#E=E#RF# pQG# SHH#K L#d#M#apN#lEO#n P#i Q#CpR#OT#JU#J"V#A%#CL# CLY#"@Z##EZ#&CL#'CL]#)~' ^#*{ #-CL#.CLa#0B#3CL#4CLd#6BE#9CLf#:^#;CLh#=Fqi#>M#ACLk#DW l#FOk m#GO n'ro'i*p'r3 q' n r' o\) s' M_t' M7u' Eka'CL'CLx'C>y'Rz'Ge'CL'CL}'GC~'J]'KOM'D*#'!CL~'#CL'%I#,SS #-fVg#.f3#/b3#1CL #3xH #6CL#7CL #8#9CL#:CL#'Y^?'J@'GFA'-p '0CLD'1l E'3GF'4EG'5YW'9i3':of';h'>JO'?a'ACS'Bc 'Ca 'DF:'EH[!'HCL 'ICL'JCL'Me 'PCL'R7 'So 'TE'U~ 'VM~ 'Wy 'ZCL'\CL']CL'^CL'_CL'bF\'cH'dAP'epJ']33'}R 'k 'n 'p3'HS']'C{L'D''A) 'UjE'C5'Ca'}R 'P 'cL '^3'Kɚ'^'CL'CL'CL'CL'CL'CL'CL'CL'CL'L'HN'H'Id'K'@ }e'V`C}f#y% M'tu_ N'vD%O'w@P'xFQ'{e|BR'|NS'~t T'FV'gD X'GY'Jv]['\'M^'c׏_'q9 `'DRYa'cb'cEc'['CL'CL'CLg'ry 'CL'CL'CL'CLm'I-n'4o'mj 'CL'CL'CL'CL'CL'CL'CLw'M{x'YW y'] 'OP{'k"# |'X}'jF~'^'D3'F@'n ~'CL'_ |'CL'HK'FF'H'"L%u'%CLt'&CL'(p '*r^ '+qR 5'-KV6'.L'0CL'1CL:'3E;'4M<'5TJ?'7E':CL';CLB'=A"C'>LpD'?EdWE'AWF'BrgG'CR{H'DL L'Eg34M'FcgN'GnHO'Jo P'Li[ Q'MBR'OU KT'PJU'QJ[V'RA'TCL'UCLY'WAOZ'XD'[CL'CL]' ^'|C 'CL'CLa'B"'CL'CLd'C/'CLf'^'CLh'Fi'L'CLk'XI l'OaH m'O= n'ss3o'ip's\) q'm r'l. s'Mut'MIu'@o'CL'CLx'Cy'QHz'Hzx'CL'CL}'GB~'Kp'K'D'CL~'CL'J#,SS #-fVg#.f3#/b3#1CL #3xH #6CL#7CL #8#9CL#:CL#'ZP?'J(@'GVA'qes 'CLD'oK E'GF'FG'Z'j'q'if'L'^'DU'dp 'bTF 'Hd'J<!'CL 'CL'CL'a 'CL'  '!y@Y '"Ez'#~] '$S '%z)B '(CL')CL'*CL',CL'-CL'0F'1Is'2A'3qx'6]/'7}R '8k_ ':n '=sL'@I!0'A]5'BCi'E|C 'HA 'KV'LB'NC1H'y~ 'zP̦ '}c '~^f'L'^'CL'CL'CL'CL'CL'CL'CL'CL'CL'L['HN'H'IЍ'K'h }e'$f6M}f'(y M'u N'D'8O'B9P'FcQ'emJR'NS'r T'JV'p=T X'GY'J[']\'NuU^'ep_'w `'Crxa'z^b'|Yc'v*'CL'CL'CLg'r. 'CL'CL'CL'CLm' Hpn' o' nQk 'CL'CL'CL'CL'CL'CL'CLw'ALx'BW\y'Ca{'DOP{'Fs# |'GX}'Hh?~'J^'MD'NFc 'Ro ~'TCL'V_ |'XCL'\HZ7']Fj'^I 'bKu'dCLt'eCL'gpR 'hr| 'jr^ 5'lK/q6'mL 'oCL'pCL:'rE;'sM<'tZ?'vF7 'xCL'zCLB'At@C'I˔D'EdWE'^F'w4G'i H'Lq L'h0M'e0N'p{O'm P'f Q'CwR'UT'JFU'JV'A'CL'CLY'AAhZ'E#'CL'CL]'~ ^'y 'CL'CLa'A'CL'CLd'Cp'CLf'^'CLh'Fi'S"'CLk' Xq( l' O = m' N n'sLo'j|p'xz q'q r'nQ s'Mt'M[u'D'CL'CLx'By'Pz'Ha'!CL'"CL}'$H~'&KP'(K')Dr'+CL~',CL'.Jw#,SS #-fVg#.f3#/b3#1CL #3xH #6CL#7CL #8#9CL#:CL#'5Z[?'6J)@'7GZA':q9 'm E'@GlF'AE G'BZ'Fi'Gp'Hh1'KNm,'L^'MD>'Nbs 'O`q. 'QJw'SK!'UCL 'VCL'WCL'Yi= '\CL'^@&'`w_ 'aE'b~' 'cQ3 'dzr 'gCL'hCL'iCL'kCL'lCL'oE"'I'A'q']33'~24 'l 'nl 'r3'I''\l'B'{ 'A 'VV'B'C2'~@ 'X| 'b '^'I3'^'CL'CL'CL'CL'CL'CL'CL'CL'CL'L'HS'H1'I'K ='g }e'cc}f'gx M' uK N' D62O' z= P' !FQ' $gS]R' %NS' &q^ T' 'CaV' (a$^ X' +GY' ,J[' -x8\' .M^' 1dx_' 2g* `' 5B a' 6Z b' 7[ c' `S' bCL' cCL' dCLg' fr ' iCL' jCL' kCL' lCLm' oHWn' ro' so ' vCL' wCL' xCL' yCL' zCL' {CL' |CLw' N\)x' [)y' a' OP{' a |' X|m}' i~' ^' Do' F?' o ~' CL' `b |' CL' H' B5' IR' N"u' CLt' CL' oH ' s ' q 5' KCu6' L' CL' CL:' F>K;' M\<' [?' ET' CL' CLB' AC' F0D' EE' e{F' DffG' UH' L L' hRM' e*N' pqO' kd P' e Q' CBR' UT' K U' JיV' Bg' CL' CLY' (At@Z' )EG' ,CL' -CL]' 0~ ^' 1x ' 4CL' 5CLa' 7@}B' :CL' ;CLd' =CB' @CLf' A^' BCLh' DF:i' FWp' ICLk' LX% l' MN m' NNu n' Qso' Rjep' Ts\ q' Vn r' WlaH s' XMt' YMfu' \@' _CL' `CLx' cBy' O2z' I ' CL' CL}' Hs<~' K1' K' D#' CL~' CL' J,#,SS #-fVg#.f3#/b3#1CL #3xH #6CL#7CL #8#9CL#:CL#' }X<?' ~J6@' GnA' rn ' CLD' nQ E' GaF' FG' YBR' jFf' o' h' P ' a' D' c7 ' a ' J' Kq!' CL ' CL' CL' d( ' CL' @`2' w4 ' C' Fv ' T ' z[ ' CL' CL' CL' CL' CL' E ' I' B8P' q>' ]33' ~] ' l~k ' n9 ' pFf' I4M' _)S' C(' {H ' A+ ' "VY' #B' %CW' (~s ' )O3 ' ,bs3 ' -^f' .J3' /^' 0CL' 2CL' 3CL' 4CL' 5CL' 6CL' 7CL' 9CL' :CL' =L' >H' ?HЌ' @JU' CK =' Guf}e' d[l}f' wC M' uwo N' D/O' A4P' G`Q' f; R' O?S' qV T' GDV' j X' GsY' J[' M\' Ly^' g`_' sq `' BDa' \}qb' Z=qc' T' CL' CL' CLg' r ' CL' CL' CL' CLm' Hn' @ 3o' p ' CL' CL' CL' CL' CL' CL' CLw' NRx' W\y' ^' OP{' n |' W}' iP~' ^' D=5' FA' oXB ~' CL' ` ^ |' CL' H' B.' I6' Jlu' CLt' CL' o" ' r ' p 5' KWy6' L' HCL' ICL:' KF[G;' LLR<' M\'?' NF/' QCL' RCLB' TAC' UCD' WE~E' Y_W F' ZpG' [WH' \L L' ]iM' ^eRN' _@34O' bkw P' cd Q' dC:R' fUT' gKU' hJיV' jA' lCL' mCLY' oAfZ' pE9[' sCL' tCL]' v' ^' ww ' zCL' {CLa' }@' CL' CLd' C' CLf' ^' CLh' Fi' V' CLk' X8 l' N m' M n' tffo' k p' r\ q' mR r' k s' Mt' My+u' C' CL' CLx' BEy' MlDz' Iw' CL' CL}' Hk~' K' L' D?' CL~' CL' JP' V ' gA' g4' c0' CL ' w 'CL'CL 'ML'CL'CL'D'CL'CL'k ' r '#CL'$CL'%CL'(m8 '*S3'+K',I'/L''1]z'2a:'3Zq!'4oL"'5a#'6I$'7I%'8N&'9L^'':LL_(';@6 '=CL*'?K(?+'@Zq'CCL-'EGJY'HCL'ICL0'KBk!1'tS.2'vKv3'wN4'yA5'{CL6'|]'}CL8'Bc'CL:'I'CL<'A ='BE'CL'CL@'JFA'K4B'Cz'CL'CLE'H H'@I'[ J'wK'jL'e 'Z 'ixB 'O'J'J'ixB 'ixB 'I/'i '}܊'FN='O?'Ii'L'}'JP'EV'OO'M'J/ 'I2'o^ 'SCL'?CL'@CL'ACL'CCL'DCL'E^'FCL'GCL'HCL'JN'LCL'NC 'PCL'QCL'Sw 'VCL'WCL'XCL'YCL$'[L%'\I&'_MN)'bCL*'eL,'fQx'hCL.'ixt 'lCL'mCL'nCL'oCL3'rp+4'tA36'wO337'wQ38'N39'E:'LL;'I<'H'CL>'Z:?'J;'@'GvA'~24 'CLD'mi E'GVF'F$8G'Z'jg'o'iVf'Q'_'Dۨ'd 'b(\ 'J'LW!'CL 'CL'CL'aЊ 'CL'@R'vܹ 'C'^ 'a'{ ' CL' CL' CL' CL' CL'E'H'B}'r'']33'~ 'm<8 'om 'of' I2{'"]}'#B]'&x+ ')@ ',X'-Co'.Ct'1~ '2Q '6b] '7^f'8J3'9^':CL';CL'CL'?CL'hCL'iCL'jCL'kCL'oL'pH'qH'rJ!h'uK\'xf }e'L}f' vo M'u N'D>O'@;0P'GKQ'eSR'O*S'p T'HcMV'k X'HeY'Jn['ϫ1\'Og^'d) _'n `'ANa'tb'wO\c'oT{'CL'CL'CLg'r 'CL'CL'CL'CLm'Gn'go'qD 'CL'CL'CL'CL'CL'CL'CLw'M >x'[y'eG'OP{'i |'YU}'ip~'^'0D,'2F!h'5o ~'7CL'9` |';CL'>H'@B'AI=)'DPfu'FCLt'GCL'Jo5@ 'KsM 'Lp 5'NKwS6'OL'QCL'SCL:'UF;'VL<'WY:?'XE'[CL'\CLB'^AfC'`@D'cEE'e`gF'fw8RG'gd\H'hM<' L'ih(M'je@N'J>O'kK P'dc Q'C>R'U7T'KZU'J̫V'B'CL'CLY'AqZ'E#'CL'CL]' ^'v 'CL'CLa'7 'CL'CLd'D'CLf'^'CLh'Fݱi'V 'CLk'Y Z l'N m'M. n'so'k$;p'qǮ q'l) r'l s'M4t'Mu'Fv 'CL'CLx'B5y'K Bz'HU' CL' CL}' H~'L'L-'D'CL~'CL'JI'T 'l'l3'g'CL ' vR '#CL'$CL '%dDi'&CL''CL')E',CL'-CL'/k_ '0l  '3CL'\CL']CL'_\8<'aU'bMff'cL'fL:3'hM>'iQ޹'jQT{!'kx2"'lc|#'mK$'nI\%'oNi&'pL''qL('r@2'tCL*'vP z+'xlAt'{CL-'}G'CL'CL0'@gv1'e2'K<3'O34'A,'CL6']'CL8'@r'CL:'I'CL<'},l ='~# 'CL'CL@'JPA'K{B'At'CL'CLE'A>H'`Z I'aX J'| K'XL'[ 'Y 'ixB 'Px'Jk'Jk'ixB 'ixB 'Jw'i '}'FN='Op'Ij'L'}6'JP'EV'O'M'JP'%I9'(o^ ')S'YP?'J]@'GA'tM 'CLD'l E'GjF'F;G'ZA4'm'x+3'lQ'R'\&'E>'d 'bE 'K 'L!'CL 'CL'CL'gd 'CL'@'w ' CB' @C ' g'{ 'CL'CL'CL'CL'CL'E'H|'Bg'r{' ]6'"@`2'#me '$o<8 ''pٚ'RI#'SZxy'TB'Wxt 'Z@{ '^X"'_CG'`CS'c7 'dV3 'g`s3 'h^f'iIFf'j^'lCL'mCL'nCL'oCL'pCL'qCL'sCL'tCL'uCL'xM'yH'zH'|J4}'K{'fs3 }e' nӋ}f'Jv M'u N'DAO'`D P'G1Q'fR'O;S'ph T'EV'eR X'H qY'J['ث\'M^'eV_'n `'Aa'\}qb'[c'S'CL'CL'CLg's# 'CL'CL'CL'CLm'Gn'go'q׷ '!CL'"CL'#CL'$CL'%CL'&CL'(CLw'+Sux',[{y'-f.'.OP{'1h"# |'3XD}'5f~'7^':C';Fl'>o+ ~'@CL'C` |'ECL'HHֺ'IB'JIkz'NIu'PCLt'QCL'So '|t% '~qn 5'KX6'L&'CL'CL:'F;'K/7<'[?'FR'CL'CLB'B C'DPD'EE'^F'nG'XBH'M L'kGM'x N'AnO'kw P'dM Q'DR'UT'KqU'JLV'B'CL'CLY'B\Z'E'CL'CL]'@^'vW 'CL'CLa'~z 'CL'CLd'D'CLf'^'CLh'Gni'UB'CLk'[N l'Nff m'L{ n'ro'kp'u q'nǮ r'mq s'M<t'Mu'B#B'CL'CLx'B=y' Rv=z' I' CL'CL}'Ib~'L^'L)'E%'CL~'CL'J'T 'l'l3'g'CL ' vR '#CL'$CL '%dDi'&CL''CL')E',CL'-CL'/k_ '0l  '3CL'\CL']CL'_\8<'aU'bMff'cL'fL:3'hM>'iQ޹'jQT{!'kx2"'lc|#'mK$'nI\%'oNi&'pL''qL('r@2'tCL*'vP z+'xlAt'{CL-'}G'CL'CL0'@gv1'e2'K<3'O34'A,'CL6']'CL8'@r'CL:'I'CL<'},l ='~# 'CL'CL@'JPA'K{B'At'CL'CLE'A>H'`Z I'aX J'| K'XL'[ 'E\^ 'FixB 'HPY'IJk'JJk'Mj 'NixB 'OJ'Qi 'S~'#Y<?'$Jq@'%GA''r '*CLD',p3 E'.G|JF'/FFG'0[6'4l[3'5r '6kf'9T1':`-';E''iQ޹'jQT{!'kx2"'lc|#'mK$'nI\%'oNi&'pL''qL('r@2'tCL*'vP z+'xlAt'{CL-'}G'CL'CL0'@gv1'e2'K<3'O34'A,'CL6']'CL8'@r'CL:'I'CL<'},l ='~# 'CL'CL@'JPA'K{B'At'CL'CLE'A>H'`Z I'aX J'| K'XL'[ +i[ +iixB +iST+iJk+iJk+i"kQ +i#ixB +i$J3+i%i +i(~+i)Fl+i,OP+i.I{.+i/L+iZq+i\JR+i_EV+i`K+iaOn+icJP+idI6/+iho^ +iiXh+ijEʘ+ilCL+ioG^+irDF-+itCL+iuCL+ivCL+iwCL+ixCL+izCL+i{CL+i|CL+iC{3+i~g+iK+iZT{+i^34+i\!H+iCL+iCL+iCL+iCL+iCL+iCL+iCL+i^+iCL+iCL+iCL+iN+iCL+iC+iCL+iCL+is +iCL+iCL+iCL+iCL$+iKR%+iJr&+iOr+iCL*+iL0,+iE+iCL.+ix +iCL+iCL+iCL+iCL3+iptl4+iA36+iQ7+iLY8+iG9+iE:+iOC4;+iM33<+iJf+iCL>+iWY ?+iJ@+iGA+i"rE +i$CLD+i&p E+i(G{aF+i)F]XG+i*Yj+i.r4+i/x+i0q(+i3U`+i4_N+i5FR+i7e +i8aj +i9K+i;N!+i=CL +i>CL+i?CL+iAdTj +iDCL+iGB\+iHvY +iICB+iJAL+iKQ/ +iL|5! +iOCL+iPCL+iQCL+iSCL+iTCL+iWE+iXI$+iYC+iZs#b+i]:+iA+ime +iov +io0+iI+3+i`+iB#+iq +i@R +iWr+im7 +iDG+i +iQB2 +i^ff +i^f+iHy+i^+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iMXV+iH+iHV+iJL+iK+ij}e+iKa)}f+iPwb M+iv N+iDRO+izH P+iHQ+i hQ@R+i OS+i  T+i D`V+ic X+iHWY+iK![+i\+iK^+id_+ig `+iAa+ipBb+iu c+ipaH+i CL+i!CL+i"CLg+iMs% +iOCL+iPCL+iQCL+iRCLm+iUGyn+iXlo+iZsZ +i\CL+i]CL+i^CL+i_CL+i`CL+iaCL+icCLw+ifNx+ig[y+ihdq+iiOP{+il` |+inV}+iogQ~+ir^+iuC+ivFm+iyp| ~+i{CL+i~cm |+iCL+iI`+iC'+iI5+iLu+iCLt+iCL+io +iuj +ir\ 5+iK6+iL{+iCL+iCL:+iG;+iIҏ<+iTfs?+iE+iCL+iCLB+iB}C+iPzcD+iEȢE+iVW F+iozG+iRH+iN_ L+icEM+i`RN+ik>O+ikZY P+idq Q+iDBR+iV,~T+iK(U+iJ0V+iCkU+iCL+iCLY+iBEZ+iEZ+iCL+iCL]+i@۶^+iy +iCL+iCLa+iA+iCL+iCLd+i!E]+i$CLf+i%^+i&CLh+i(Gi+i*S +i-CLk+i0\ l+i1NB m+i2L n+i5s3o+i6k p+i8p = q+i9kf r+i;l s+i+iCL+iCL+iCL+iCL+iCL+iCL+iCL+i^+iCL+iCL+iCL+iN+iCL+iCܪ+iCL+iCL+isc +iCL+iCL+iCL+iCL$+iK%+iI&+iK(?+iCL*+iL,+iDZ+iCL.+iw +iCL+iCL+iCL+iCL3+i pb4+i A36+iLY7+iH`8+iD9+iD:+iI;+iI<+iF3+iCL>+iX?+iJN@+iG}A+i"r]\ +i$CLD+i&p- E+i(GyF+i)FxG+i*[+i-p+i.v+i/o3+i2Wj0+i3\^+i4F+i5c +i7_ +i8JP+i:L!+iCL+i@i +iCCL+inB++iouD +ipB +iqA+irQ +is| +ivCL+iwCL+ixCL+izCL+i{CL+i~E+iI%+iCkU+isi+i]=q+iBF+im +ioi +ip+iI+iaV+iCo+iq9 +iAE +iW+iE+iF\+i@)+iW +ic +ia +iKP+i^+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iMcH+iH+iHR+iJC+iK+iQ }e+irbo}f+iv M+iw+ N+iDPO+iAP+iHQ+i gdR+i4OtS+i5AeT+i6FV+i7hT& X+i:HY+i;K)w[+i<~\+i=Lٚ^+i@dJ_+iAr `+iDC a+iEX#b+iFYc+iGQ+iICL+iJCL+iKCLg+iMt>M +iPCL+iQCL+iRCL+iSCLm+iVHQn+iY4o+iZu  +i]CL+i^CL+i_CL+i`CL+iaCL+ibCL+icCLw+igQ.x+ih[aHy+iic+ijOP{+imlDD |+ioV>}+if0~+i^+iD+iG&r+iqes ~+iCL+ieXB |+iCL+iI;+iA+iI+iI~u+iCLt+iCL+io{ +ivc +ir\ 5+iK66+iL+iCL+iCL:+iG-a;+iI<+i\O?+iD̘+iCL+iCLB+iA/C+iOohD+iEE+iWF+imqG+iU)H+iNA L+icM+i`N+ik^O+i k=" P+i dTj Q+i DBR+i VPsT+i KHU+i K!_V+i C܅+i CL+i CLY+i BZ+i D+i CL+i CL]+i @^+i x +i CL+i CLa+i @+i CL+i CLd+i "E+i %CLf+i &^+i 'CLh+i )Gi+i *R+i -CLk+i 0Y l+i 1N m+i 3M n+i 6ss3o+i 7kc}p+i aqaH q+i bj( r+i cj= s+i dM6t+i eMѩu+i h~' +i kCL+i lCLx+i nCy+i pPz+i qFq+i tCL+i uCL}+i wG~+i yM(+i zLr+i {E%+i }CL~+i ~CL+i I+i V +i i+i oVf+i dc3+i CL +i w_ +i CL+i CL +i 8+i CL+i CL+i Fy+i CL+i CL+i n +i |< +i CL+i CL+i CL+i sD +i bS4+i [+i Xg+i M %+i j4+i m*+i l!+i a"+i R33#+i z$+i I%+i Nc&+i MG'+i M^(+i C+i CL*+i UH++i bM+i CL-+i H+i CL+i CL0+i C{1+i X2+i Li.3+i PEd4+i D+i CL6+i ]+i CL8+i E +i CL:+i @+i )CL<+i +Se=+i ,DZ+i /CL+i 0CL@+i 3LXA+i 4LB+i 7{LS +i :CL+i ;CLE+i >rH+i ?BI+i BlI J+i CKW K+i GFL+i Ibs +i LZ +i MixB +i OPx+i PHC+i QI"d+i TixB +i UixB +i VH+i Xi +i Z}+i [FT+i ^OP+i `I+i aL+i E+i K++i EV+i K+i M+i JP+i I){+i d] +i Xի+i @+i CL+i F+i K`+i CL+i CL+i CL+i CL+i CL+i CL+i CL+i CL+i D+i vf+i I3+i \R+i \R+i ^B+i CL+i CL+i CL+i CL+i CL+i CL+i CL+i ^+i CL+i CL+i CL+i Nq+i CL+i C+i CL+i CL+i y +i CL+i CL+i CL+i CL$+i LG%+i J.&+i H+i CL*+i Lb<,+i Nr+i CL.+i Gg+i CL+i CL+i CL+i CL3+i q4+i A36+i A7+i 8+i w@9+i D:+i !Mc4;+i "Kf<+i #J`+i $CL>+i 'W: ?+i (J4@+i )GA+i Tr1 +i WCLD+i Yp E+i ZGwF+i [FG+i \Y~+i `l+i ar+i bj+i eXݱ+i f^s+i hG3+i ifTQ +i jb  +i kIk+i mLf!+i oCL +i pCL+i qCL+i sk +i wCL+i yB+i zwS +i {@۶+i |A+i }E,( +i ~},l +i CL+i CL+i CL+i CL+i CL+i E"+i Hx+i C+i s҇+i ]=q+i B+i o +i o +i sP+i I+i ^ +i Ca-+i rk +i A +i X+i mi +i D+i @n+i V: +i `DD +i _3+i I3+i ^+i CL+i CL+i CL+i CL+i CL+i CL+i CL+i CL+i CL+i M+i H+i H+i J6N+i K#+i g }e+i }\[j}f+iv} M+i 6w N+i 9DXlO+i :@PP+i ;GeQ+i >gTR+i ?O|S+i @{a T+i AGV+i CjU X+i EH1=Y+i FK}-[+i G~\+i HM[^+i Kd_+i Ln* `+i OD a+i Pzb+i Q}O\c+i R|p+i TCL+i UCL+i VCLg+i s +i CL+i CL+i CL+i CLm+i I%n+i o+i v +i CL+i CL+i CL+i CL+i CL+i CL+i CLw+i N\x+i Wy+i e(+i OP{+i h |+i V# }+i g~+i ^+i D+i G7+i r# ~+i CL+i g |+i CL+i IgQ+i @+i J8+i Ou+i CLt+i CL+i oW +i vM +i r\ 5+i K6+i L+i CL+i CL:+i G} ;+i HU<+i [.?+i EW+i CL+i CLB+i B}C+i MD+i EE+i RaHF+i pG+i LH+i N}M L+i tM+i rN+i |gO+i la7 P+i e[ Q+i DgR+i VqT+i K}eU+i KRV+i D?+i CL+i CLY+i BrdZ+i E9[+i CL+i CL]+i H@^+i IxWc +i LCL+i MCLa+i O@+i RCL+i SCLd+i UFL+i XCLf+i Y^+i ZCLh+i \Gei+i ]Q$+i `CLk+i cY l+i eP m+i fOf n+i iso+i jkIqp+i lp=q q+i mjW r+i ni s+i oNt+i pMu+i q@N+i tCL+i uCLx+i wCScy+i xO8z+i yD+i |CL+i }CL}+i C~+i M^+i K +i EF+i CL~+i CL+i Jf+i WyD +i e@+i f+i a3+i CL +i u +i CL+i CL +i +i CL+i CL+i GC+i CL+i CL+i n0 +i @O+i CL+i CL+i CL+i ss +i W+i P+i M+i Mq+i g{+i nG+i l\!+i p"+i ]L#+i B$+i I-%+i Nx&+i MU'+i M(+i @N+i CL*+id) ++i]!+iCL-+iH+iCL+iCL0+iCμ1+iW2+i L3+i!P64+i"EB+i$CL6+i%]+i&CL8+i(E+i+CL:+i- +i0CL<+i2\=+i4EsZ+i7CL+i8CL@+i;LTA+i+iWX$k?+iXJF@+iYH&A+i[r +i^CLD+i`q3 E+ibGyF+icFG+id[lr+iho3+iiu+ijmg+imZc+in` +ioGY+ipe[ +iq`׬ +irI +iuM 1!+iwCL +iCL+iCL+ifm +iCL+iCD+iv( +iA++iB)+iNߤ +i}R +iCL+iCL+iCL+iCL+iCL+iE+iH+iC4+is+i]=q+iB+io7 +ip0 +ip3+iIr+i_}+iC+irN +iA +iW)+iv +iF:+i@+iN +ibL +ia+iK+i ^+i CL+i CL+i CL+iCL+iCL+iCL+iCL+iCL+iCL+iMe+iH+iH+iJ5e+iK#+i w3}e+ia}f+i u M+i>w+ N+ihD`DO+ii~x P+ijHQ+inihR+ioOnS+ipt T+iqDV+irc X+itH4Y+iuK[+iw2\+ixLV^+i{c4_+i|n `+i~Ca+iab+if c+i_8R+iCL+iCL+iCLg+it +iCL+iCL+iCL+iCLm+iHn+i~4o+iw +iCL+iCL+iCL+iCL+iCL+iCL+iCLw+iMux+i^34y+i_ >+iOP{+ig"# |+iUL}+if5~+i^+iD}+iF+ir@3 ~+iCL+id% |+iCL+iIY+i@zZ+iJe +iFu+iCLt+iCL+inQ +ivZ +ity 5+iK6+iL%+iCL+iCL:+iGx;+iG<+i[T?+iE2+iCL+iCLB+iB}C+iK<D+iEE+i0W.F+i1z(G+i2QH+i3N3 L+i5gxRM+i6d:N+i7o5O+i:m P+i;f 4 Q+iVD:T+i?KU+i@K[V+iAD+iCCL+iDCLY+iFBZ+iGE*+iJCL+iKCL]+iM@R^+iOxe +iRCL+iSCLa+iU@+iXCL+iYCLd+i[F+i^CLf+i_^+i`CLh+ibH*i+icPS+ifCLk+iiY l+ijN\ m+ikM\ n+iso+ikJp+ioff q+ii r+ig s+iNt+iMu+i@+iCL+iCLx+iCpiy+iMz+iC+iCL+iCL}+iC ~+iM+iJN+iEu+iCL~+iCL+iJ+iW +ie+ig+i`+iCL +iw| +iCL+iCL +iȣ+iCL+iCL+iG+iCL+iCL+io,| +i~b= +iCL+iCL+iCL+is +i^+iX +iU<+i NZ +i o+i s+i r=q!+iX "+iIc3#+ii`$+iIϥ%+iN` &+iM>'+iM(+iCY1+iCL*+iU++iYw+iCL-+iH+i"CL+i#CL0+i%C1+i&U2+i(L;3+i)Pc4+i+E+i-CL6+i.]+i/CL8+i1E+i\CL:+i^ +iaCL<+ic^R-=+idE+igCL+ihCL@+ikL!A+ilLgB+io|& +irCL+isCLE+iuDSH+ivBI+iwr J+ixFC K+iy_L+iz_ +i}\ +i~ixB +iP+iI2O+iIU +ij +iixB +iIL\+ii +i}+iH+iO+iIg+iL+iFa}+iL+iEV+iK+iM+iJP+iI+id +iSx +iACL+iBCL+iCCL+iDCL3+iGq[4+iIA36+iLE97+iMDI8+iN|9+iPD:+iRNg;+iSL#4<+iTK+iVCL>+iYV~z?+iZJ@+i[H'@A+i]s8 +iCLD+iq E+iGbF+iFG+iX+ik+iqX+ijY+i[(8+i_Ke+iG+icjS +i`' +iJP+iL!+iCL +iCL+iCL+ieM +iCL+iCi(+ix +iA+iB"+id?+i~24 +iCL+iCL+iCL+iCL+iCL+iE1+iHI+iC+is +i]=q+iB +in0 +ipQ +iq#3+iH+i]E+iC4/+iq+ +i@u +iZ+iF"+iG+i@'+iS +i b33 +i ^+i I+i^+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iCL+iMG+iH+iI(+iJ% +i"K#+i%g }e+iM[}f+it M+ikw N+imDeBO+inCP+ioGJQ+irgR+itOѦS+iur1 T+ivJnV+iwph X+iyH@Y+izKD[+i{\+i}Lۼ^+ieF_+ivr `+iBa+ipqb+ir&gc+ipq+iCL+iCL+iCLg+iteH +iCL+iCL+iCL+iCLm+iHtn+iPo+ivn +iCL+iCL+iCL+iCL+iCL+iCL+iCLw+iNLx+iXy+i^{+iOP{+iq |+iU/}+igN~+i^+iDe+iFB+irs ~+iCL+id}[ |+iCL+iI+i@I+iJz+iKYu+iCLt+iCL+in +i v +i!t 5+i#K6+i$L%+i&CL+i'CL:+i)G0;+i*Fh<+i,[?+i-F+i0CL+i1CLB+i3B C+i4HD+i5EȢE+i7\F+i8u=qG+i9MH+i:N L+i;nM+ivO+iAm P+iBf(r Q+iCD%R+iEVfT+iFKU+iGKL0V+iHD+iJCL+iKCLY+iMC Z+iNE+iQCL+iRCL]+i|@Q^+i}wt +iCL+iCLa+i@+iCL+iCLd+iF+iCLf+i^+iCLh+iH]i+iO3+iCLk+iY l+iN= m+iM{ n+it&fo+ikp+ir q+il r+io{ s+iNt+iM*u+i +iCL+iCLx+iCpiy+iKjz+iD+iCL+iCL}+iCU~+iM+iI}+iE+iCL~+iCL+iJ%g+iW +ie+ig+ia +iCL +ix+ +iCL+iCL +ij+iCL+iCL+iGg+iCL+iCL+ip3 +i~g +iCL+iCL+iCL+i q +i bf+i [f+i Y,+iOV+ip+is+iqR!+im33"+i[)#+i@$+iIu%+iNQq&+iM'+iMW(+iD@Y+iFCL*+iHe `++iJan+iMCL-+iOH+iQCL+iSCL0+iUC1+iVlJ2+iXM$p3+iYOu4+iZE+i\CL6+i]]+i^CL8+i`Fi+icCL:+ie +ihCL<+iibb=+ikE+inCL+ioCL@+irLZA+isMHB+iv| z +iyCL+izCLE+i|]H+i~vI+i[ J+i{I K+i\L+iDG+i[g +iixB +iQ+iI"d+iI/j+ik. +ii| +iI +ii +i} +iGo+iO+iI|+iL+iFa}+iL+iEV+iQc+iM{+iJP+iI-+ie$ +iS/QV%?/QJ@/QH5A/Q"s /Q%CLD/Q&r E/Q(GF/Q)F@G/Q*Z~/Q.l3/Q/r/Q0k/Q3[3/Q4]K/Q5H/Q7e5 /Q8a< /Q9J/Q;M.!/QeCL /QfCL/QgCL/Qik /QlCL/QoCu/QpvR /QqA /QrB/Qso0?/Qt~ /QwCL/QxCL/QyCL/Q{CL/Q|CL/QE/QH/QC/Qt/Q]=q/QC /Qn /Qp}[ /Qr/QHg/Q\/QC4/Qr# /QAz /QX/Qj /QE*/QA/QWV /Qc /Qa3/QKf/Q^/QCL/QCL/QCL/QCL/QCL/QCL/QCL/QCL/QCL/QM/QH/QI /QI/QK(/Qg3 }e/QsRl}f+it M/Q,wH N/Q.DqbO/Q0{| P/Q1HTQ/Q4itR/Q5OS/Q6qt T/Q7BLV/Q8_k X/Q;HMIY/QJ^/QAe_/QBf `/QDBHa/QFX b/QGZ\)c/QHX34/QJCL/QKCL/QLCLg/QNs /QQCL/QRCL/QSCL/QTCLm/QWHn/QZ~o/Q[v׶ /Q^CL/Q_CL/Q`CL/QaCL/QbCL/QcCL/QdCLw/QgP{x/Q^By/Q[/QOP{/Q_ |/QV<}/Qg,V~/Q^/QDF/QFJ/Qr1 ~/QCL/Qc |/QCL/QI/Q@/QJu/QQ$!u/QCLt/QCL/QnN /Qv /QsM 5/QL6/QL/QCL/QCL:/QH;/QFK/Q&CLf/Q'^/Q(CLh/Q*Hi/Q+O/Q.CLk/QYY7 l/QZNB m/Q\L n/Q_sfo/Q`k:p/Qbkff q/QceW r/Qde8R s/QeN!t/QfNu/Qi@A/QlCL/QmCLx/QoC.y/QqL"z/QrC{/QuCL/QvCL}/QxC ~/QzM/Q{M6$/Q|E~/Q~CL~/QCL/QI/QW /Qhg/Qj8/Qe/QCL /Qvh. /QCL/QCL /Q4!/QCL/QCL/QG`/QCL/QCL/Qo; /Q /QCL/QCL/QCL/Qs /QYI/QQ/QP3/QO/Qg*/Ql/Qk!/Qq"/Qd34#/QHɚ$/QI%/QN[|&/QMd1'/QMS(/Q@/QCL*/Q^{)+/Q])/QCL-/QH/QCL/QCL0/QCB1/QY2/QM^3/QO4/QF/Q CL6/Q!]/Q"CL8/Q$F/Q'CL:/Q) /Q,CL/QCL*/Q Lo,/Q DT5/Q CL./QF/QCL/QCL/QCL/QCL3/Qq4/QA36/QK97/QGfg8/QF 9/Q D[:/Q"Kp;/Q#Kc3/QPT(?/QQJ݆@/QRHF/A/QUrz /QXCLD/QZqt E/Q\GaF/Q]FG/Q^W'p/Qal[3/Qbr3/Qck/Qg[%/Qh_cH/QiHR/Qjd /Qk`x /QlJ/QnN!/QpCL /QqCL/QsCL/Quj /QxCL/QzC/Q{y1 /Q|AL/Q}Bn/QS~,/Q /QCL/QCL/QCL/QCL/QCL/QE/QH/QD+/Qt"/Q]@/QC6]/Qn /QpT /Qqٚ/QH/Q]E/QD//Qq /Q@Q /QZy/Qz /QG/QAW3/QT[\ /Qc /Q^/QK/Q^/QCL/QCL/QCL/QCL/QCL/QCL/QCL/QCL/QCL/QMi/QH)/QI/QI/QK./Qf3 }e/Qd?h }f/Qu M/Q;wY N/Q=Do>O/Q>BP/Q?H5Q/QBh$xR/QCP S/QEqHF T/QFI `V/QGmg X/QIHIY/QJK[/QK&/\/QLM3^/Qxd=j_/Qyv `/Q{Aia/Q|Wb/Q}Y!Hc/Q~RB/QCL/QCL/QCLg/Qs /QCL/QCL/QCL/QCLm/QGn/Q~go/QwU /QCL/QCL/QCL/QCL/QCL/QCL/QCLw/QLx/Q[)y/Q`/QOP{/Qrz |/QUۈ}/Qg~/Q^/QC/QFI/Qr ~/QCL/Qef |/QCL/QIK/Q@N/QJ֕/QGu/QCLt/QCL/Qm /QvG /QsA 5/QL1 6/QLJ/QCL/QCL:/QG;/QE1M/Q dgN/Q nO/QmYk P/QfTQ Q/QDgR/QVVT/QK؋U/QKV/Q@E7/QBCL/QCCLY/QECZ/QFD/QICL/QJCL]/QL@Q^/QMw% /QPCL/QQCLa/QS /QVCL/QWCLd/QYFq/Q\CLf/Q]^/Q^CLh/Q`Hi/QaM/QeCLk/QhZ! l/QiN m/QjM n/Qmt3o/Qnkp/Qpmf q/Qqh r/Qrh\ s/QsN!t/QtNu/Qw /QzCL/QCLx/QCpiy/QR8$z/QC/QCL/QCL}/QCZ~/QMD/QMo/QE2/QCL~/QCL/QI\/QX /Qi3/Qj/Qd/QCL /Qx# /QCL/QCL /QƟ/QCL/QCL/QG/QCL/QCL/Qo /Q@m/QCL/QCL/QCL/QtM /Qh/Qb;3/Q_/QPJ/Q m34/Q uR/Q i!/Q ]"/Q P6f#/Qy2$/QI^%/QN:&/QMd1'/QMѩ(/QA3/QCL*/QeIi+/QZOH/QCL-/QHH/Q!CL/Q"CL0/Q$D%1/Q%XEU2/Q'M3/Q(O4/Q)F$/Q+CL6/Q,]/Q-CL8/Q/G/Q2CL:/Q4: /Q7CLCL@/QAMwA/QBM=B/Qmc /QpCL/QqCLE/Qt@H/QwN3I/Qx] J/Qyk[ K/Q|GaL/Q~ju /QZ /QixB /QP/QJ/QJk/QixB /QixB /QI/Qi /Q} /QGo/QO//QIλ/QL/QFa}/QL/Q@/QR /QL/QJP/QI$/Qh /QS/Q^So?/Q_Jܝ@/Q`HXbA/Qbq /QeCLD/Qgq E/QiGF/QjG oG/Qk[/Qnkf/Qr/Qj/Q[/Q_f/QH/Qd /Q` /QJ˽/QMx!/QCL /QCL/QCL/Qd /QCL/QDg/QwS /QBc/QC=/Qw/Q /QCL/QCL/QCL/QCL/QCL/QE/QH/QD/QtR/Q]@/QC:/Qo /Qq /Qof/QH/Qa /QC/Q qJ /Q @p /Q [T/Q w_ /Q G/Q A /Q O1 /Q dw /Q ^/Q I/Q ^/Q CL/Q CL/Q CL/Q CL/Q CL/Q CL/Q CL/Q CL/Q CL/Q MW/Q "H/Q #I /Q $IU/Q 'K./Q *e }e/QS2}f/Qt M/Q pw N/Q rDyO/Q sz P/Q tIQ/Q wi4R/Q yOS/Q zq T/Q {CZmV/Q |ay X/Q ~HGY/Q K[/Q \/Q KG^/Q ea_/Q f* `/Q Aaa/Q o b/Q s*c/Q p /Q CL/Q CL/Q CLg/Q s# /Q CL/Q CL/Q CL/Q CLm/Q Gn/Q 34o/Q x's /Q CL/Q CL/Q CL/Q CL/Q CL/Q CL/Q CLw/Q I)x/Q Zy/Q aq/Q OP{/Q _ |/Q Ub}/Q eW~/Q ^/Q C/Q FbP/Q s ~/Q CL/Q h |/Q CL/Q I/Q A/Q K*/Q Mշu/Q CLt/Q CL/Q nL /Q v /Q sx 5/Q (LKv6/Q )LA/Q +CL/Q ,CL:/Q .H[;/Q 0Dp%UBH/Q ?O5 L/Q @B M/Q A4N/Q CEkO/Q Fmm P/Q Gf(r Q/Q HDR/Q JVT/Q KKU/Q LKV/Q MEw/Q OCL/Q PCLY/Q RDZ/Q Sy /Q VCL/Q WCL]/Q ZR^/Q ]vR /Q `CL/Q aCLa/Q cK /Q CL/Q CLd/Q Fm/Q CLf/Q ^/Q CLh/Q I(-i/Q M /Q CLk/Q Z l/Q P m/Q O n/Q u33o/Q k,p/Q o8R q/Q i{ r/Q l( s/Q N'rt/Q Nu/Q @/Q CL/Q CLx/Q Cy/Q Qz/Q D/Q CL/Q CL}/Q CB~/Q M/Q M/Q F/Q CL~/Q CL/Q J/Q XX /Q k/Q m/Q f/Q CL /Q wt /Q CL/Q CL /Q n/Q CL/Q CL/Q HG/Q CL/Q CL/Q p3 /Q B/Q CL/Q CL/Q CL/Q kW /Q g/Q `f/Q _/Q Pi/Q q/Q rz/Q q!/Q W"/Q O #/Q {9$/Q I%/Q N&/Q M]'/Q M(/Q #~ /Q &CL*/Q (K+/Q )B/Q TCL-/Q VI/j/Q YCL/Q ZCL0/Q \Dg1/Q ^]7c2/Q `M3/Q aO4/Q bG*/Q dCL6/Q e]/Q fCL8/Q hGu/Q kCL:/Q m@Q/Q pCLCL/Q ?CL/Q @CL$/Q BK*%/Q CJj&/Q FK='/Q ICL*/Q LL ,/Q ME /Q NCL./Q Pxt /Q SCL/Q TCL/Q UCL/Q VCL3/Q r24/Q A36/Q F7/Q H48/Q C9/Q D:/Q K3;/Q K/Q Ra?/Q Je@/Q HiA/Q t>u /Q CLD/Q r E/Q G3F/Q G"7G/Q Xd/Q ng/Q s/Q m4/Q [%/Q ]/Q I3r/Q f(r /Q aЊ /Q Hm/Q K!/Q CL /Q CL/Q CL/Q gn /Q CL/Q Du/Q tx /Q B/Q CL!/Q C? /Q  /Q CL/Q CL/Q CL/Q CL/Q CL/Q E/Q ID/Q D/Q u//Q ]@/Q C/Q o۔ /Q qI /Q r3/Q I'/Q _*/Q CC/Q r /Q @ /Q [z/Q pY /Q F/Q A/Q Ui /Q _ /Q _Ff/Q If/Q ^/Q CL/Q CL/Q HCL/Q ICL/Q JCL/Q LCL/Q MCL/Q NCL/Q OCL/Q RM/Q SH/Q TI /Q VI/Q YK./Q \gl }e/Q [-}f/Q th M/Q zx# N/Q |D}O/Q }BP/Q ~I"dQ/Q hFR/Q P S/Q ph T/Q HyV/Q k X/Q HGY/Q L[/Q \/Q K6^/Q dNb_/Q v9 `/Q AFa/Q X)b/Q Z>c/Q Sn/Q CL/Q CL/Q CLg/Q s /Q CL/Q CL/Q CL/Q CLm/Q Gacn/Q go/Q yb5 /Q CL/Q CL/Q CL/Q CL/Q CL/Q CL/Q CLw/Q Opx/Q Z=qy/Q _/Q OP{/Q pUU |/Q T3}}/Q eA~/Q^/QCy/QFPI/Qsl ~/QCL/Qjz |/QCL/Q"J$/Q#A/Q$K+./Q(Ixu/Q*CLt/Q+CL/Q-m /Q/wbN /Q0t+ 5/Q2LZ6/Q3Lt/Q5CL/Q6CL:/Q8H;/Q9DCL/Q@CLB/QBAfC/QCP xD/QDF E/QF]F/QG@34G/QHZkH/QIP* L/QJjBM/QKg{N/Qt@\O/Qwl9 P/Qxe Q/QyDSR/Q|VT/Q}LU/Q~KlV/QE/QCL/QCLY/QDZ/QA/QCL/QCL]/QNH^/Qx /QCL/QCLa/QA{/QCL/QCLd/QGX/QCLf/Q^/QCLh/QIZi/QL/QCLk/QZ90 l/QN m/QM n/Qs3o/Qkg5p/Qo q/QkB r/Qi= s/QN6t/QN %u/Q@/QCL/QCLx/QC{y/QO\z/QE@/QCL/QCL}/QDS~/QN/QMå/QF&a/QCL~/QCL/QIL/QX2 /Qj3/Qk/Qe(/QCL /Qs /QCL/QCL /Qy/QCL/Q CL/Q H/QCL/QCL/Qr /QBG/Q=CL/Q>CL/Q?CL/QBe /QCXc3/QDQ+3/QENC3/QHP/QJf/QKj/QLiR!/QMWL"/QNK#/QOsFg$/QPI1%/QQN&/QRMf'/QSN(/QTD$/QVCL*/QWm_+/QX[ w/QYCL-/Q[Ib/Q^CL/Q_CL0/QaDQN1/QcY)2/QdN#3/QeO_4/QgG/QiCL6/Qj]/QkCL8/QmGX/QpCL:/Qr@}B/QuCLCL/QhvY /QkCL/QlCL/QmCL/QnCL$/QqL%/QrJ &/QtI/QwCL*/QzL,/Q{EZ/Q}CL./Qx /QCL/QCL/QCL/QCL3/QrS4/QA36/QM#37/QI338/QC 9/QD+:/QNfg;/QK/QSJ?/QJi@/QHx;A/Qup /QCLD/Qs E/QGF/QG<G/QU]/Qm3/Qsf/Qk/Q\%Z/Q]f_/QIW/Qe[ /Q`P /QH]/QK!/QCL /QCL/QCL/Ql /QCL/QD/Qu /QBM/QC:/QY /Q@-S/QCL/QCL/QCL/QCL/QCL/QE/QI/QD٦/Qu/Q]DD/QDX/Qp /Qq /Qmff/Q2Il/Q4h{/Q5Dw/Q8rE /Q;~ /Q>[/QAw| /QBGn/QCA:/QDZƥ /QGa; /QI^vf/QJJ/QK^/QLCL/QMCL/QNCL/QOCL/QQCL/QRCL/QSCL/QTCL/QUCL/QXML{/QZH/Q[I~/Q\I"/Q_K33/Qbhy }e/Qc}f/Q-s M/Qx N/QDO/Qu P/QHjQ/Qh:R/QPS/Q@T/QG9V/Qi* X/QHN0Y/QL=[/Q'\/QJr^/Qd]_/Qm8 `/QBV>a/Quqb/Qsc/Qm{/QCL/QCL/QCLg/Qt /QCL/QCL/QCL/QCLm/QG-n/Qٚo/Qy( /QCL/QCL/QCL/QCL/QCL/QCL/QCLw/Q OaHx/Q X\y/Q ]=q/QOP{/Qg |/QTl}/Qd~/Q^/QC/QF/Qs ~/Q!CL/Q#h |/Q%CL/Q(JOg/Q*A8/Q+KR/Q.KOu/Q0CLt/Q1CL/Q\n- /Q]w /Q^uV 5/Q`Lh6/QaL/QcCL/QeCL:/QgHs<;/QhCai/QV/QCLk/QZs l/QP m/QO# n/Qsfo/Qkjp/Qm = q/Qg r/QgǮ s/QNI:t/QN-u/Q@ /QCL/QCLx/QCy/QN,z/QEG/QCL/QCL}/QD~/QN1/QI/QF*/QCL~/QCL/QI/Q%S /Q&k3/Q'lf/Q(d/Q*CL /Q,s /Q/CL/Q0CL /Q1/Q2CL/Q3CL/Q5H/Q8CL/Q9CL/Q;u /Q/QMk/QNm+!/QOUFg"/QPL#/QQs$/QRI%/QSN&/QTM['/QUN6 (/QX~' /Q[CL*/Q\m%!+/Q_S>/QCL-/QIL\/QCL/QCL0/QCμ1/QZ#2/QNZo3/QO4/QH+/QCL6/Q]/QCL8/QG/QCL:/Q@n/QCL/QS7?/QJȉ@/QHUA/QtU /QCLD/Qr# E/QGF/QGWG/QQ:/Qmg/Qt/Ql3/Q\2/Q_{)/QIJ/Qdc /Q` /QH*/QKU!/QCL /QCL/QCL/Qg /QCL/QE9[/QvK /QC /QC/Q@/Q@gv/QCL/QCL/QCL/Q CL/Q!CL/Q$F/Q%I-/Q&D/Q'vz/Q*]DD/Q+D_/Q,oXB /Q.q /Q1pi/Q4H/Q5]/Q6Du/Q9qJ /Q< /Q?[O/QBy1 /QCGQ/QEB1 /QFQn /QI`* /QJ`S3/QKI/QL^/QMCL/QNCL/QPCL/QQCL/QRCL/QSCL/Q|CL/Q}CL/QCL/QM2 /QHk/QI/QI|/QK33/Qf9 }e/Q{j }f/Q\s٠ M/Qwt N/QDYO/Q| P/QIQ/QiR/QONS/QAfT/QBbV/Q_M X/QHIY/QL[/Q`-\/QH^/QdQ_/Qhq `/QD Da/QWs4b/QZzc/QQ=q/QCL/QCL/QCLg/QtR /QCL/QCL/QCL/QCLm/QHn/Qgo/Qz /QCL/QCL/QCL/QCL/QCL/QCL/Q CLw/Q Nx/QYuy/Qdp/QOP{/Qa |/QT }/QbZ~/Q^/QDDJ4/QEGI /QHsl ~/QJCL/QLg9 |/QNCL/QRJg/QSA/QTK2i/QWQ+u/QYCLt/Q[CL/Q]nh /Q^w1' /Q_tn 5/QaLvG6/QcM#s/QeCL/QfCL:/QhH;/QiBM/Q{f\*N/Q|q}qO/Qn% P/Qg! Q/QDR/QWlrT/QL=U/QKV/QFY/QCL/QCLY/QEGZ/QE/QCL/QCL]/QF^/Qy /QCL/QCLa/QA/QCL/QCLd/QGgR/QCLf/Q^/QCLh/QI>i/QVRa/QCLk/QZ l/QMǮ m/QL) n/Qro/Ql,Sp/Qo q/Qip r/Qh\ s/QNXt/QN=\u/Q A/QCL/QCLx/QDGy/QLz/QI{/QCL/QCL}/QHO ~/QN\/QKf/QF{/Q CL~/Q!CL/Q#Jw/Q&Y! /Q'h/Q(ing/Q)dq/Q+CL /Q-rz /Q0CL/Q1CL /Q24!/Q3CL/Q4CL/Q6H9Q/Q9CL/Q:CL/QCL.39@Af39BCL39CCL39DCL39ECL339Hr439JA3639MQ739NJ839OAI939QDz:39SMc4;39TM<39UL 39WCL>39ZM?39[JO@39\Hz A39_p^ 39aCLD39cq3 E39eGF39fHQG39gS739qy39x&g39p<39]O39_ 39IV39eд 39a 39G39Jā!39CL 39CL39CL39f 39CL39D39w 39C 39C39PY 39@39CL39CL39CL39CL39CL39FE39I.39D39vJ39]DD39D39o۔ 39rY 39ni39H39cʝ39D39r 39Ǯ 39Z!39v- 39GgR39Bk!39Q 39b. 39 ]|39 GS339 ^39 CL39CL39CL39CL39CL39CL39CL39CL39CL39M!39H39I 39I39 K3339!iz}e39_}f/Q]s M39gxzJ N39iD|O39jCAP39kIQ39oh R39pPS39qr# T39rIV39sme X39uH=Y39vLF[39x\39yJS3^39|ci_39}tUU `39DJa39rb39tc39l39CL39CL39CLg39t 39CL39CL39CL39CLm39Hn39s4o39{Y 39CL39CL39CL39CL39CL39CL39CLw39Px39\(y39c\39OP{39m33 |39T# }39c~39^39D&39Gs39t ~39CL39h# |39CL39Jn]39Bq39KC39Hnmu39CLt39CL39m 7 39wP 39t 539Ly639 M;'39"CL39#CL:39%G;39'B<39(Sd"?39)EsZ39,CL39-CLB39/AC390KyD391F4E393^qF394oRG395]LH396PZ L397iM399f=qN39:qO39=n}[ P39>gj Q39?DR39AWvT39BLZU39CKV39DF39FCL39GCLY39IEZ39JE39MCL39NCL]39PE2^39Qy 39TCL39UCLa39WAL39ZCL39CLd39Ge39CLf39^39CLh39Ii39U39CLk39Ze l39P{ m39O n39to39kp39oǮ q39j# r39j s39Njt39NNu39A39CL39CLx39DBy39J[hz39Jm39CL39CL}39J%g~39N39L39FB39CL~39CL39I\39Y3I 39h39if39d39CL 39r@3 39CL39CL 39𣜝39CL39CL39H39CL39CL39NM39D439CL39CL39CL39ufv 39j39bp39_339 Q?K39 q*39 w039 w4!39U"39E#39p $39I%39Pr:&39Mvn'39Nn(39 O 39CL*39dx+39^<39!CL-39#IΘ39NCL39OCL039QDZ139S`~239TN339UO˻439VLVh39XCL639Y]39ZCL839\I39_CL:39a@.39dCL<39fd=39gI39jCL39kCL@39nOYA39pN]B39s~@ 39vCL39wCLE39yHSH39zItVI39{pp J39|H< K39HL39j 39[g 39ixB 39M^39E'39E?(39ixB 39ixB 39E9[39i 39} 39H39O39I39L39Fa}39M 39BN39RQ;39M39JP39I'39lff 39XO39C39CL39G^39E39CL39CL39CL39CL39CL39CL39CL39CL39B339p339Dfg39VR39\R39\>39CL39CL39CL39CL39CL39CL39!CL39"^39#CL39$CL39%CL39'N39(CL39+C39-CL39.CL390y1 393CL394CL395CL396CL$398L%399JlH&3939K\W?39J@39HpA39p 39CLD39rs E39GF39G|G39V39o39v<39n39]39\l39IK39e 39a[o 39Fq39Ik!39CL 39CL39CL39j 39CL39E 39u 39B39C39T 39@.39CL39CL39CL39CL39CL39E39I239D39u39]DD39D39pA 39rPL 39sL39HP39bh39D39r+ 39@ 39ZӞ39v 39 G39 B39 Ws 39c 39`C339Jf39^39CL39CL39CL39CL39CL39@CL39BCL39CCL39DCL39GM'39HH39II~39KI39NK8R39Qfٚ }e39f3s}f39r] M39ow- N39qDO39r}& P39sIQ39viCR39wPS39xq9 T39yAV39{^ X39H*Y39L[39s\39K^^39c_39f8 `39B@a39_Hb39_Gc39U39CL39CL39CLg39t& 39CL39CL39CL39CLm39Hwn394o39{D 39CL39CL39CL39CL39CL39CL39CLw39O34x39\Gy39c>39OP{39_ |39T_}39bhg~39^39 Du39 GZ39 s T ~39CL39d |39CL39Jj39A39J39NKu39CLt39 CL39"k 39#v~ 39%tC 539'Ld639(MA39*CL39+CL:39-Gg;39.Ap<39/[B?390D393CL394CLB396AC398H5D399F4E39;\F39Q L39?@M39@qN39ADO39ln P39mg Q39nDR39pWI9T39qLoU39sKoV39tGld39vCL39wCLY39yEZ39zD%39}CL39~CL]39G^39y@ 39CL39CLa39Ae39CL39CLd39Go39CLf39^39CLh39Ii39T39CLk39[ l39P{ m39N n39to39lMp39p{ q39k = r39i s39Nt39N]Pu39AB#39CL39CLx39DQNy39Mz39J˽39CL39CL}39K ~39N39L539FM39CL~39CL39I{39Y 39l339m39jP39CL 39v 39CL39CL 39/39CL39CL39H39CL39CL39P]39B39CL39CL39CL39 u} 39 e395]396[398QR_39:h39^"39?L#39@nٚ$39AI%39BP&39CMXV'39DN(39EB39GCL*39IW[w+39J[[39MCL-39OI39RCL39SCL039UDY139W^t239XNt339YO439ZHt39\CL639]]39^CL839`I 39cCL:39e@b39hCL<39ja٨=39kHm39nCL39oCL@39OU>A39NB39}f 39CL39CLE39IH39HxI39d1 J39H K39HL39n 39[- 39i| 39MV$39E6u39EM39k 39j' 39EV[39i 39}U39H39O39I39L39C39M 39B{39Lv39L39JP39I4^39m 39E39Cij39CL39 G^39 DF-39 CL39 CL39 CL39 CL39 CL39 CL39 CL39 CL39 c439 t6g39 H939 ^39 \R39 \R39 CL39 CL39 CL39 CL39 CL39 CL39 CL39 !^39 "CL39 $CL39 %CL39 &N39 (CL39 +C 39 -CL39 .CL39 /v39 L?39 J@39 H{A39 r 39 CLD39 sc E39 GF39 GG39 Wq39 nS339 t39 m.g39 ^D39 ^39 IN39 e5 39 a>' 39 FxC39 I!39 CL 39 CL39 CL39 mi 39 CL39 D39 u} 39 B39 C39 c%39 @39 CL39 CL39 CL39 CL39 CL39 F 39 I4^39 D 39 u39 ]DD39 D39 pPL 39 r 39 o039 H639 aځ39 D%39 r 39 *B 39 -[39 0u 39 1GC39 2B=39 4V 39 7\D 39 8\f39 9FC339 :^39 ;CL39 m"39 @[#39 A|Y$39 BI(%39 CQX &39 DMz'39 EN(39 F@W39 HCL*39 Jd+39 KYR39 NCL-39 PI/39 SCL39 TCL039 VD139 ]239 N339 O439 H39 CL639 ]39 CL839 IE39 CL:39 |= 39 CL<39 cd=39 Hzx39 CL39 CL@39 OrA39 NaB39 | 39 CL39 CLE39 IH39 GrI39 p: J39 g K39 EL39 i 39 ZO 39 ixB 39 M39 E39 E239 j 39 ixB 39 E39 i 39 } 39 H39 O39 Ir39 L39 D39 M 39 B(V39 KA39 M39 JP39 I-39 m 39 S39 ML?39 J@39 HuA39 q 39 CLD39 r E39 GF39 GmG39 U39 n39 t39 m439 ^f39 _m39 IN39 e>t 39 ` 39 Fy39 I!39 CL 39 CL39 CL39 eM 39 CL39 DY39 uS[ 39 B39 Cw39 ^r 39 A39 CL39 CL39 CL39 CL39 CL39E/39I:39DS|39v39]DD39D;39of 39r 39q6f39 H{39"d39#Cv39&r 39)~f 39,]!39/uD 390F/391B392PX 395dww 396`398J3399^39:CL39;CL39J39?A39AJ39DKu39FCLt39GCL39Ik 39Ku^ 39Lr8 539NLB[639OM39QCL39RCL:39TF;39UK/7<39VY"?39XE39[CL39\CLB39^B"C39`ALD39cF8tE39ee >F39fxG39g]LH39hQu L39i{M39jjN39kuLO39nn P39ogX Q39pDR39rWXQT39tLU39uKV39vG39CL39CLY39F>KZ39EW39CL39CL]39E^39x0 39CL39CLa39@39CL39CLd39A39CLf39^39CLh39@&@i39R39CLk39[d l39T m39R n39tfo39kp39r q39nz r39m s39N/t39NgZu39Ab39CL39CLx39D_y39PMz39K=39 CL39 CL}39 K~39OD 39O>39Fn39CL~39CL39I{39Y) 39h\39i339f39CL 39v 39"CL39#CL 39$j39%CL39&CL39(H239+CL39,CL39/M0390A392CL393CL394CL396u( 398e399]C339;[{339=Qer39?j439ho39jn!39kY"39lP#39mv $39nI=%39oQ&39pMt'39qN(39t~ 39wCL*39ydJ+39z`39}CL-39I/39CL39CL039E 139_?239O]339O~439AdF39CL639]39CL839v 939CL:39w3 39CL<39aC=39H9Q39CL39CL@39OhA39NB39| 39CL39CLE39HH39FlMI39X) J39d~ K39GL39j 39Z}W 39ixB 39M39E39E39ixB 39ixB 39E39i 39}39H39O39I39L39Do39M 39A39Q39M39JP39I-39m 39X-39C 390CL393G^394F0397CL398CL399CL39:CL39;CL39CL39AC^f39C}239DI339E\R39F^xR39G\R39ICL39JCL39KCL39LCL39MCL39OCL39PCL39Q^39RCL39SCL39TCL39VN39XCL39ZC39\CL39]CL39_v 39bCL39cCL39dCL39eCL$39gK%39hJ8&39kO39CL*39L,39H\39CL.39y#; 39CL39CL39CL39CL339s-P439A3639RFf739NC3839H939Ei:39J@;39K <39H39CL>39L?39J@39HA39q 39CLD39qHF E39G!F39GG39Vbn39nt39t39l39^[239]L39JG39e 39`׬ 39Fy39I!39CL 39CL39CL39gX 39CL39 E39 t4 39 B39 C39 W: 39AAh39CL39CL39CL39CL39CL39E;39I@+39D>39v39 ]DD39!D39"o 39#rX 39&rf39)HԾ39*e\39+D)39.rk 391@ 39]ZM39`u65 39aF539bC39cUc 39fb 39g^f39hG339i^39kCL39lCL39mCL39nCL39oCL39pCL39rCL39sCL39tCL39wME/39xH39yI(39zIi39~K3339h }e39 g3}f39Iq1 M39wt N39DO39@P39IHQ39juR39PeS39pmy T39E>V39dc X39H8yY39L[39רu\39Jr^39dz_39p8 `39APga39\b39[{c39R39CL39CL39CLg39t 39CL39CL39CL39CLm39G|n39C4o39z4 39CL39CL39CL39CL39$CL39%CL39&CLw39*Jx39+Yy39,hfg39-OP{390f |392TpE}393b{~396^399C039:Fw39=qJ ~39?CL39Ab3 |39DCL39GI39HA>39IJyL39LP.u39OCLt39PCL39Rk 39Su 39Tr 539WL7l639XM39ZCL39[CL:39]F;39^NY<39_Y?39Eѕ39CL39CLB39B?C39CD39FWKE39TF39mG39[H39Qa L39xM39f\N39p*O39n P39gn Q39DJR39W T39LU39L@V39G39CL39CLY39FxCZ39EV39CL39CL]39D^39xt 39CL39CLa39@n39CL39CLd39C39CLf39^39CLh39Dhi39Q39CLk39[fa l39NG m39LR n39s3o39lp39qu q39jG r39hR s39NgZt39Nu u39A39CL39CLx39Dy39Oz39 K39 CL39 CL}39L@~39O39OfJ39F39CL~39CL39I39Y 39g39i39e6g39 CL 39"u 39%CL39&CL 39'Đ39PCL39QCL39SH/39VCL39WCL39Yn 39ZAr39]CL39^CL39_CL39au 39cd<39d\X39eY39hQ.39jo39kt >39msh!39nMff"39oE#39p`L$39qI%39rQSx&39sMI'39tN%(39uD39wCL*39yR͸+39{\N39}CL-39I{39CL39CL039E 139^239Ny339O#439{H 39CL639]39CL839L;39CL:39xWc 39CL<39b%=39H@39CL39CL@39O1A39O$B39|j 39CL39CLE39HH39OhxI39l J39]& K39AHL39B39\5 39ixB 39K39Ds39De39ixB 39ixB 39E 39i 39}U39H39O39IM39 L39!D 39#M 39$B39'Lv39(L39*JP39+I39,m 39/XF390C=392CL395G^396E*399CL39:CL39;CL39CL39?CL39@CL39Cvg39Er39FDk339G[39H_R39I^+39KCL39LCL39MCL39NCL39OCL39QCL39RCL39S^39|CL39}CL39~CL39N39CL39CӞ39CL39]CL39_v 39bCL39cCL39dCL39eCL$39gK%39hJ8&39kO39CL*39L,39H\39CL.39y#; 39CL39CL39CL39CL339s-P439A3639RFf739NC3839H939Ei:39J@;39K <39H39CL>39L?39J@39HA39q 39CLD39qHF E39G!F39GG39Vbn39kٙ39q39jY39]o39^39II39e 39a/ 39FE39Iw!39CL 39CL39CL39mi 39CL39DZ39wl 39B=39C39f+j39AW339CL39CL39CL39CL39CL39E39IU 39E4H39v39]DD39C39ouq 39s9 39sS339HI39\39E"'39r 39AJ= 39Z]39vv 39G39C 39Xm^ 39 aw 39 ^39I39^39CL39CL39CL39CL39CL39CL39CL39CL39CL39DM?39FHƐ39GI~39HI 39KK3339Nfٚ }e39O8}f39Rq* M39lwC N39nD~O39o@hP39pIVQ39sjmR39uP'9S39vp T39wG*vV39xi8V X39zHGY39{M =[39~\39JC^39d/_39mq `39A Da39sqb39u c39os439CL39CL39CLg39u/ 39CL39CL39CL39CLm39G@n394o39z 39CL39CL39CL39CL39CL39CL39CLw39I#x39]y39h39OP{39g |39T }39b~39^39C39FCN39 rs ~39CL39d4a |39CL39I39BP39J39H`u39CLt39CL39!l, 39#v! 39$tO 539&L5639'M39)CL39*CL:39,F;39-Nd$<39.W?390Fb392CL394CLB396BnC397NDD398FDE39:\W F39;nuG39<[H39=Q L39>*M39?} >N39@x5O39Cof P39Dhb Q39FDR7!WYT7!L9U7!L0V7!Ge7! CL7! CLY7! FqZ7!ET7!CL7!CL]7!D^7!zT 7!CL7!CLa7!AZ7!CL7!CLd7!!G7!$CLf7!%^7!&CLh7!)lTi7!,Q<_7!/CLk7!2^1 l7!4N m7!5M n7!8so7!9lvp7!;n q7!dk r7!eg s7!fNPt7!gN}Eu7!hB 7!jCL7!lCLx7!nDVy7!oNz7!qL&7!sCL7!tCL}7!wL~7!xO7!yO7!zFۆ7!|CL~7!}CL7!J339Y 39g39i39e6g39 CL 39"u 39%CL39&CL 39'Đ39PCL39QCL39SH/39VCL39WCL39Yn 39ZAr39]CL39^CL39_CL39au 39cd<39d\X39eY39hQ.39jo39kt >39msh!39nMff"39oE#39p`L$39qI%39rQSx&39sMI'39tN%(39uD39wCL*39yR͸+39{\N39}CL-39I{39CL39CL039E 139^239Ny339O#439{H 39CL639]39CL839L;39CL:39xWc 39CL<39b%=39H@39CL39CL@39O1A39O$B39|j 39CL39CLE39HH39OhxI39l J39]& K39AHL39B7![; 7!ixB 7!N7!FN=7!FN=7!k) 7!i 7!F7!i 7!}Ď7!H7!O7!I7!L7!D 7!M 7!BV7!Ky7!I7!JP7!I7!m 7!X7!B7!CL7!G^7!DF-7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!vf7!pf7!HVg7!]7!\R7!^xR7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!^7!CL7!CL7!CL7!N7!CL7!C<7!CL7!-CL7!/yN 7!1CL7!2CL7!3CL7!4CL$7!7K{%7!8J_&7!;J67!=CL*7!@LL,7!AEh{7!CCL.7!Ex:D 7!HCL7!ICL7!JCL7!KCL37!Ms47!OA67!RS\77!SK|87!TM@97!WE`:7!YNI;7!ZOL<7![L7!\CL>7!_MM?7!`J6@7!aHA7!drs 7!gCLD7!r E7!GF7!G G7!T~7!m87!s.f7!l7!^7!_f7!IK7!d/ 7!`q. 7!G;7!J_C!7!CL 7!CL7!CL7!hq7 7!CL7!D7!sc 7!BF7!C7!M 7!At@7!CL7!CL7!CL7!CL7!CL7!F-7!I\O7!E7!u7!]DD7!C7!o 7!st 7!rf7!Hr7!^-7!E7!r 7!A}q 7!Y!H7!| 7!GJ7! C=7! N(z 7!c 7!` 7!K7!^7!CL7!CL7!CL7!CL7!CL7!OP7!CL7!CL7!CL7! M/L7!!Hκ7!#IJ(7!$Iw7!'K337!*L }e7!a}f39!q M7!pv N7!rDYO7!s|1 P7!tI:Q7!wk+R7!xP.ZS7!zsl T7!{BV7!|`\ X7!~HY Y7!L[7!*\7!H^7!c_7!i `7!@a7!\b7![4c7!S}q7!CL7!CL7!CLg7!tl 7!CL7!CL7!CL7!CLm7!G#n7!`o7!z 7!CL7!CL7!CL7!CL7!CL7!CL7!CLw7!H=qx7!Yy7!e8R7!OP{7!bDD |7!S}7!a~7!^7!Ca7!Fe7!q ~7!CL7!d}[ |7!CL7!I7!B)7!Jt<7!P5u7!"CLt7!#CL7!%l~ 7!&v 7!'tu 57!*L/967!+M&.7!-CL7!.CL:7!0F;7!1N0 <7!2[.)?7!3Fq7!6CL7!7CLB7!9B+C7!:PeD7!;FnlE7!=b(F7!>BT{G7!@gH7!AR L7!BiLM7!CeRN7!Dp{O7!Go P7!Hh Q7!IDR7!KWT7!LLU7!ML,nV7!NHO 7!PCL7!RCLY7!TFZ7!UEV7!XCL7!YCL]7![D^7!{ 7!CL7!CLa7!B7!CL7!CLd7!G7!CLf7!^7!CLh7!eBi7!P7!CLk7!^ l7!M m7!L8R n7!r3o7!lp7!q q7!k r7!j s7!Nfqt7!Nu7!B7!CL7!CLx7!DVy7!LVz7!L*U7!CL7!CL}7!L~7!OՂ7!OΝ7!F=7!CL~7!CL7!J339Y 39g39i39e6g39 CL 39"u 39%CL39&CL 39'Đ39PCL39QCL39SH/39VCL39WCL39Yn 39ZAr39]CL39^CL39_CL39au 39cd<39d\X39eY39hQ.39jo39kt >39msh!39nMff"39oE#39p`L$39qI%39rQSx&39sMI'39tN%(39uD39wCL*39yR͸+39{\N39}CL-39I{39CL39CL039E 139^239Ny339O#439{H 39CL639]39CL839L;39CL:39xWc 39CL<39b%=39H@39CL39CL@39O1A39O$B39|j 39CL39CLE39HH39OhxI39l J39]& K39AHL39B7!ZO 7!ixB 7!N7!Go7!Go7!i 7!ixB 7!F7!i 7!} 7!H7!Ol7!I|7!L7!D@7! M 7! By7! R7!I7!JP7!I7!lv 7!Xի7!Cw7!CL7!G^7!DF-7! CL7!"CL7!#CL7!LCL7!MCL7!NCL7!OCL7!PCL7!SBH7!Tlg7!VDk37!W^\7!XeR7!Y^xR7![CL7!\CL7!]CL7!^CL7!_CL7!aCL7!bCL7!c^7!dCL7!eCL7!fCL7!hN7!jCL7!lC07!nCL7!oCL7!qvh. 7!tCL7!uCL7!vCL7!wCL$7!yKw%7!zJ&7!}H(7!CL*7!LZ ,7!D#7!CL.7!K)7!CL7!CL7!CL7!CL37!s_47!A67!U)77!Q387!Mf97!E:7!Pɚ;7!R <7!O37!CL>7!M?7!J۲@7!HA7!qt 7!CLD7!q+ E7!GdF7!GG7!V_7!o!7!u97!nNg7!^H7!\7!IW7!c 7!_޿ 7!G̶7!JZ!7!CL 7!CL7!CL7!ju 7!CL7!Du7!t 7!Aq7!B7!Vi7! A 7!$CL7!%CL7!&CL7!'CL7!(CL7!+F7!,IN7!-D7!.uNe7!2]@7!3D- 7!4o 7!5s 7!8rf7!;H7!<_X7!=D7!@qˈ 7!C 7!G[l7!J~24 7!KF:7!LCZ7!MWeJ 7!xc 7!y_7!zI37!{^7!}CL7!~CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!M 7!H7!I$7!Ii7!K337!f }e7!H}f7!%q/ M7!wf N7!D~8O7!C+P7!I Q7!jR7!P.ZS7!@T7!I `V7!l X7!HUmY7!Mm[7!\7!I^7!c8_7!wq `7!BZ#a7!cRb7!cc7!\)7!CL7!CL7!CLg7!tl 7!CL7!CL7!CL7!CLm7!Gn7! @Ho7! {/ 7! CL7!CL7!CL7!CL7!CL7!CL7!CLw7!J(x7!@Uqy7!Ah7!BOP{7!Fp |7!HT"S}7!Ia~7!K^7!NCk7!OF7!Sq ~7!UCL7!Wd |7!YCL7!\Ig7!]BO7!_JLu7!bHu7!dCLt7!eCL7!gj 7!iw7L 7!jt 57!lL'67!mM/L7!oCL7!pCL:7!rFy;7!sM<7!tZ?7!vF7!yCL7!zCLB7!B5C7!OD7!FjE7!QF7!jG7!SuH7!R*Q L7!gYM7!c\N7!nO7!o7 P7!hr Q7!DR7!Wm)T7!LU7!L!|V7!HR7!CL7!CLY7!FZ7!E7!CL7!CL]7!D^7!{ 7!CL7!CLa7!B7!CL7!CLd7!GB7!CLf7!^7!CLh7!` $i7!O7! CLk7! [7 l7! V{ m7!T\ n7!to7!l~p7!rp q7!k r7!k s7!N{qt7!Nu7!A7!CL7!CLx7!DVy7! Jz7!!G47!$CL7!%CL}7!(uc~7!)O7!*O7!+F7!.CL~7!/CL7!1I7!3YM 7!4kI7!5od7!6jvf7!8CL 7!:s 7!=CL7!>CL 7!?j7!@CL7!BCL7!lHO 7!nCL7!pCL7!rn 7!sAf7!uCL7!wCL7!xCL7!zvw 7!|e37!}^Ff7!~\;47!Rd7!v*7!v*7!v*!7!Ol"7!E#7!n3$7!I%7!P&H&7!Mr'7!N%(7!~ 7!CL*7!cU+7!b+P7!CL-7!I7!CL7!CL07!E9[17!W527!M)37!N47!A7!CL67!]7!CL87!V |7!CL:7!x+ 7!CL<7!cU=7!H9Q7!CL7!CL@7!OA7!OB7!|` 7!CL7!CLE7!HxH7!N,I7!ie! J7!i K7!iNL7!x# 7![ 7!ixB 7!M7!FN=7!FN=7!ixB 7!ixB 7!F>K7!i 7! } 7! H7!6Oy7!8I7!9L7!;C7!7!N?7!J@7!HA7! p- 7! CLD7! qHF E7! GF7! GG7! Up7! o97! ux7! nNg7! ^\7! _=7! IL7! c!( 7! _d 7! Gg7! Ib!7! CL 7! CL7! CL7! !m 7! $CL7! &DY7! 'u 7! (B7! )C7! ,wF7! -A7! /CL7! 0CL7! 1CL7! 2CL7! 3CL7! 6Fw7! 7IHW7! `DZ7! buK7! e]DD7! fD7! gn 7! hs 7! kof7! nH)7! o^sf7! pEA7! q@Rb7! tz 7! w[7! xH7! yJ7! zCl7! }Ui 7! ^; 7! ]\7! G37! ^7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! M(7! HƐ7! I(7! I7! K337! b }e7! ,Ro}f7!gpX M7! w4 N7! DO7! {n P7! IQ7! kR7! P*S7! AT7! DCV7! c X7! Hj<Y7! L[7! Sr\7! I{^7! c_7! g `7! D)a7! vb7! vgc7! m{7! (CL7! )CL7! +CLg7! -u? 7! /CL7! 0CL7! 1CL7! 2CLm7! 5HMn7! 8io7! :z 7! CL7! ?CL7! @CL7! ACL7! CCLw7! FHǮx7! GRQy7! Ha7! IOP{7! L` |7! NTf}7! Oc (~7! R^7! UD37! VG]7! Yqˈ ~7! [CL7! ^d$ |7! `CL7! cI7! B1 7! JM7! Mu7! CLt7! CL7! j 7! vr 7! si 57! L"y67! M?7! CL7! CL:7! Fi;7! LF<7! T ?7! F7! CL7! CLB7! BC7! N ND7! FfE7! c F7! z >G7! _H7! RQ L7! |M7! ygN7! B=qO7! o+ P7! hׄ Q7! D|R7! W|BT7! LU7! L5V7! Ge%7! CL7! CLY7! FiZ7! E7! CL7! CL]7! D^7! { 7! CL7! CLa7! By7! CL7! CLd7! G7! CLf7! ^7! CLh7! Zsi7! N7! CLk7! \# l7! UR m7! S n7! uffo7! lfp7! oǮ q7! k r7! lH s7! N~t7! Nnu7! A(7! "CL7! #CLx7! &_ ey7! )O2z7! +v( 7! VCL7! WCL}7! YTT~7! [OI7! \OP7! _s 7! bCL~7! cCL7! eHuj7! hZ 7! ih(7! ji7! key7! mCL 7! ot 7! rCL7! sCL 7! tJ7! uCL7! vCL7! xH9Q7! {CL7! |CL7! ~o 7! A7! CL7! CL7! CL7! w1 7! b7! X7! V6g7! R7! oH7! v7! pQ!7! B"7! v3#7! a $7! Im%7! O&7! M'7! N(7! C\7! CL*7! e+7! ]L7! CL-7! Ik7! CL7! CL07! E]17! W27! L37! NM47! {LS 7! CL67! ]7! CL87! OI>7! CL:7! w 7! CL<7! c]H=7! HVF7! CL7! CL@7! OA7! OWB7! |` 7! !CL7! "CLE7! $H% H7! &M5I7! 'f J7! (\~g K7! +GL7! -|& 7! 0[~ 7! 1ixB 7! 3L7! 4Eg7! 5E7! 8ixB 7! 9ixB 7! :E7! ;i 7! =} 7! ?H7! BO7! DI7! EL7! HFa}7! JM 7! KB7! NK]7! OI7! QJP7! RI7! Sm 7! WX7! C/]7! CL7! G^7! E*7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! Cf7! w,7! I37! V7! VR7! ZE7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! ^7! CL7! CL7! CL7! N7! CL7! Cy7! CL7! OP7! v 7! CL7! CL7! CL7! CL$7! L*%7! J&7! N7! CL*7! M,7! N7! CL.7! y] 7! CL7! CL7! CL7! CL37! s 47! A67! O77! Og87! G97! Fd:7! L;7! J33<7! J<7! CL>7! OC?7! J@7! HA7! qV 7! CLD7! q3 E7! GKF7! GCG7! T7! p.g7! v)7! o7! I^׆7! J_A7! KI`d7! Ld/ 7! M`S 7! NF7! OI!7! SCL 7! TCL7! UCL7! Wf 7! ZCL7! \C7! ]s 7! ^A7! _BN7! `Sj 7! bA7! eCL7! fCL7! gCL7! hCL7! iCL7! lF7! mIK7! oE';7! pur7! s]=q7! tB 7! uo 7! vts 7! ypL7! |Hd7! }dA57! ~D7! s 7! @33 7! Y7! wt 7! F57! C.7! O 7! a 7! ^Ff7! I37! ^7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! CL7! M'7! H7! I'7! I(7! K(7! k}e7! `c>}f7! pbA M7!wf N7!DO7!@P7!IQ7!k_R7! P S7!!q T7!#D`V7!$b X7!&Ha0Y7!'M[7!*)\7!+Ia^7!.dN_7!/o8 `7!2Da7!3XJ>b7!4[pc7!5Q\)7!7CL7!8CL7!9CLg7!;u} 7!>CL7!?CL7!@CL7!ACLm7!DHn7!Go7!H| 7!KCL7!tCL7!uCL7!vCL7!wCL7!xCL7!yCLw7!}Jx7!~Sy7!a7!OP{7!eDD |7!Sn}7!`~7!^7!Dd7!GD7!r# ~7!CL7!ef |7!CL7!I7!B7!Jm7!H)u7!CLt7!CL7!lŢ 7!wO 7!tT 57!L+67!MWl7!CL7!CL:7!ET;7!L<7!Z1?7!H]7!CL7!CLB7!CScC7!L)D7!FnlE7!`kF7!qfgG7!X{H7!R L7!tM7!qN7!}!HO7!p3 P7!i Q7!DR7!WT7!MjU7!L\V7!Ge7!CL7!CLY7!FTZ7!F~7!CL7!CL]7!D_^7!{ 7!CL7!CLa7! BUZ7! CL7!CLd7!G`7!CLf7!<^7!=CLh7!@Xi7!CMp7!FCLk7!I\R l7!JN m7!KL n7!Nr3o7!OlCp7!Qo q7!Si r7!Th) s7!UN=t7!VNu7!WBY7!YCL7!ZCLx7!\Gy7!]Rz7!^DG7!aCL7!cCL}7!ffv~7!gOH7!hOr7!iF7!kCL~7!lCL7!okc7!rZ_ 7!sgc37!ti7!ue7!wCL 7!uZ 7!CL7!CL 7!7!CL7!CL7!Fy7!CL7!CL7!p^ 7!@7!CL7!CL7!CL7!why 7!c7!Y,7!Uvg7!S7!j7!n07!m!7!CY"7!vf#7![33$7!IW%7!O\&7!M&'7!NS(7!@Za7!CL*7!\ +7!YZ7!CL-7!I7!CL7!CL07!E17!Vt27!L\37!N+47! yz 7!CL67!]7!CL87!R7!CL:7!wB 7!CL<7!ae=7!Fݱ7!!CL7!"CL@7!%O7A7!&O7B7!)zu 7!,CL7!-CLE7!/ICxH7!1LBQI7!2^.< J7!3LLJ K7!6G,L7!8A27!;\ 7!Px7!?Go7!hG 7!lk_ 7!mj ^ 7!nGo7!oi 7!q}u7!rH7!uO7!wIM7!xL7!{Fa}7!}M 7!EV7!QX7!I7!JP7!I7!h 7!X7!A$7!CL7!G^7!DF-7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!B37!t6g7!Dk37!ZR7!ZH7!VR7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!^7!CL7!CL7!CL7!N7!CL7!C07!CL7!CL7!u 7!CL7!CL7!CL7!CL$7!L%7!JF&7!L77!CL*7!L,7!ESu7!CL.7!xe 7!CL7!CL7!CL7!CL37!s47!0A67!3NL77!4Of87!5Gy97!8F3-:7!:I;7!;J <7!7!@P9?7!AJr@7!BHA7!Er 7!HCLD7!Jq E7!KGF7!LG|G7!MW7!Po7!Rv47!Snff7!V^(7!W^7!XH.7!Ye 7!Za 7![I7!]L!7!`CL 7!aCL7!bCL7!dgd 7!gCL7!iB57!jv 7!k 7!A7!k"7!AT7!CL7!CL7!CL7!CL7!CL7!E7!I$7!E7!u!7!]=q7!Bw7!n}[ 7!tN 7!n337!Hw7!_ 7!DO7!s 7!@ 7!Znm7!t!N 7!Fݱ7!C7!R9 7!_ 7!^f7!I7!^7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!M7!Hκ7!I.7!I7!K#7!i}e7!No}f7!qM M7!'wf N7!)DO7!*Y P7!+IQ7!/kR7!0PS7!1qHF T7!2Fm8V7!3ga X7!]H~$Y7!_M_[7!`}\7!aH^7!fdU+_7!glUU `7!iB%a7!kt@b7!ltc7!mp347!oCL7!qCL7!sCLg7!uu 7!wCL7!xCL7!yCL7!{CLm7!~H]Xn7!Yo7!{/ 7!CL7!CL7!CL7!CL7!CL7!CL7!CLw7!JGx7!U34y7!`z7!OP{7!f"# |7!SaA}7!`]~7!^7!DY]7!FХ7!r# ~7!CL7!d |7!CL7!J!7!Ar7!J7!Ju7!CLt7!CL7!m49 7!wbN 7!ua 57!L.P67!Mi7!CL7!CL:7!F!O;7!Kcy<7!Y?7!Ha7!CL7!CLB7!C:C7!ID7!FjE7!YF7!mqG7!ZLH7!$RĢ L7!&wM7!'e{N7!(pgO7!+pA P7!,i/3 Q7!-D|R7!/WT7!0M=IU7!2LV7!3G:j7!5CL7!6CLY7!8EZ7!9F7!7!Q^?7!Je@7!HoA7!r@3 7!CLD7!q E7!GyF7!GG7!V*7!kk37!r7!j7!]|7!]7!H7!e 7!a- 7!KF7!NU!7!CL 7!CL7!CL7!ii 7!CL7!B7!v7!y] 7!G7!C7! V1 7! Z 7!^07!G7!^7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!CL7!EM 7!GH$7!HI7!II~7!LK#7!Ofٚ }e7!Z}f7!r M7!nwH N7!pD[O7!q~,6 P7!rIbQ7!ukR7!wPS7!xq9 T7!yC V7!za X7!|HY7!~L״[7!)\7!H]^7!d_7!lq `7!BDa7!\Rb7![J>c7!Qz7!CL7!CL7!CLg7!u4 7!CL7!CL7!CL7!CLm7!Hn7!4o7!z 7!CL7!CL7!CL7!CL7!CL7!CL7!CLw7!JW x7!Tfy7!^7!OP{7!b |7!R}7!ab~7!^7! D7! Fk7!q ~7!CL7!d$ |7!CL7!J,7!A7!J7! PJu7!"CLt7!#CL7!&lP 7!'w1' 7!(t 57!)L.P67!*MA7!,CL7!-CL:7!/F?;7!1Jv<7!2XG?7!3Ha7!6CL7!7CLB7!9DC7!:FND7!;FbE7!=YHF7!>mG7!?S{H7!@RI L7!Ah >M7!Ct8RN7!D~޹O7!GpA P; i= Q; D|R; WT; MXU; LVV; F; CL; CLY; EZ; F5; CL; CL]; Du^; z ; CL; CLa; A/; !CL; "CLd; $Fs; 'CLf; )^; *CLh; -S`fi; 0Ua&; 3CLk; 6\o, l; 7N\ m; 8LǮ n; ;ro; dlIp; fp q; gj r; hi s; iN(t; jN@u; lC(; nCL; oCLx; qDSy; rOz; sC; vCL; wCL}; zSk~; {Og; |P#; ~G`; CL~; CL; X7; Zߒ ; n; t;3; kNg; CL ; u ; CL; CL ; ; CL; CL; F; CL; CL; of ;  ; CL; CL; CL; w[ ; Rh; Jg; J3; ST; m*; rc; pq!; f"; W#; U $; I%; O&; M'; N (; } ; CL*; c+; _e; CL-; I; CL; CL0; E1; ]2; Lj3; N&4; Bx3; CL6; ]; CL8; Dd; .CL:; 0w ; 3CL<; 5bW=; 6zF^ ; 9CL; :CL@; MB; B~ ; ECL; FCLE; IvmH; J|YI; MWr J; NL} K; QGXL; Sy@ ; VZ}W ; WixB ; YQe; ZJF; [J; _ixB ; `ixB ; aJn; bi ; d}; eH; O; I; L; Fa}; M ; @ ; R_; H8; JP; I-; h ; XF; AY; CL; G^; DF-; CL; CL; CL; CL; CL; CL; CL; CL; ~f; lg; C; VR; [Q; VR; CL; CL; CL; CL; CL; CL; CL; ^; CL; CL; CL; N~; CL; CT; CL; OP; y ;  CL;  CL;  CL;  CL$; K%; J&&; LE; CL*; Lm*,; GK; CL.; E;  CL; !CL; "CL; #CL3; &t54; (A6; +N7; ,O338; -F9; /Fg:; YLy;; ZKg<; [Js3; ]CL>; `Rj?; aJe@; bHA; eqt ; gCLD; ipmy E; kG3F; lGCG; mX; qp4; rv3; so; v]'; w_R9; xH.; yc_ ; z_ ; }KZ; ~N!; CL ; CL; CL; ll ; CL; C/; v; CL; CL; CLg; uO ; CL; CL; CL; CLm; GMn; go; {Y ; CL; CL; CL; CL; CL; CL; CLw; Gx; V{y; _{; OP{; kUV |; R1}; b*~; ^; CԄ; Fj; q ~; CL; ef |; CL; J&n; BS; JX; Fu; CLt; CL; lu ; w ; t- 5; L56; M; CL; CL:; F;; J<; YԱ?; H[;  CL;  CLB;  D4KC;  C0D; FnlE; RqF; h(G; O\H; R/ L; fM; cN; nfgO; pPL P; iLl Q; DnQR; WT; MZU;  LV; !Gh; #CL; LCLY; NETZ; OFq; RCL; SCL]; VDQN^; Wzcz ; ZCL; [CLa; ]A; `CL; aCLd; cG; fCLf; g^; hCLh; kQ\i; nVH ; qCLk; t\s l; uN\ m; vLf n; yt@o; zlp; |o q; ~j\) r; h s; N®t; N[|u; B֐; CL; CLx; DJy; N<8z; Cμ; CL; CL}; Pb~; O^; P ; FK; CL~; CL; St; [4 ; r; s8; n; CL ; sc ; CL; CL ; ѤV; CL; CL; G`; CL; CL; l9 ;  ; CL; CL; CL; w*2 ; \f; U.f; T; S; l&g; p; o>!; @"; X#; B$; I%; O&; Mr'; NW(; DC; !CL*; #P#+; %[V; (CL-; *I; -CL; .CL0; 0E1; 1Y_ 2; 3L23; 4N*/4; 5F{); 7CL6; 9]; :CL8; =s$; ?CL:; Awl ; DCL<; Fb!=; G{ ; JCL; KCL@; MdA; OMB; z{ ; }CL; ~CLE; CllH; AXI; dK J; S5 K; GL; w| ; \^ ; ixB ; M; H; HO ; ixB ; ixB ; H*; i ; } ; Gqu; OBo; I^; L; Fa}; M ; B3; Lv; H8; JP; I$; iD ; X; Bd!; CL; G^; DF-; CL; CL; CL; CL; CL; CL; CL; CL; vg; vP; C{3; VR; [q; Zc; CL; CL; CL; CL; CL; CL; CL; ^; CL; CL; CL; Ny; CL;  CI;  CL;  CL; w ; CL; CL; CL; CL$; BL4%; CJqX&; EO; HCL*; KL,; LR$'; NCL.; O~24 ; RCL; SCL; TCL; UCL3; Xt4[4; ZA6; ]Q&f7; ^P8; _Gp9; aF:; cK;; dH<; eJ<; gCL>; jR?; kJO@; lHA; nph ; qCLD; spY E; uGF; vG~G; wW+; zk3; pf; j3; ]a; `s; HI; fb ; bE ; H; K!; CL ; CL; CL; g ; CL; CSc; x ; @Q; AL; AT! ; A; CL; CL; CL; CL; CL; E"; Hk; D; s; ]=q; B; oK ; t ; sP; H; [;  D;  t ; A ; XX'; vv ; E; Cu; N ; `f ; `\; Li;  ^; !CL; "CL; #CL; %CL; &CL; 'CL; (CL; )CL; *CL; .MQ; /Hk; 0H; 1Id|; 4K(; 7ff }e; Z[}f; qg M; ~w+ N; DO; z, P; J"Q; kjR; PCS; p T; A"V; ]r X; HaY; M[; L\; H#^; eC_; ec `; A|a; ZHb; Zc; R{; CL; CL; CLg; u/ ; CL; CL; CL; CLm; GkZn; o; { ; CL; CL; CL; CL; CL; CL; CLw; Ex; S4y; [\; OP{; _ |; S}; a]~; ^; C; Fj@; qJ ~; CL; e; |; CL; J%; B+?; J ; Lu; CLt;  CL; 4jT ; 5vH ; 6uX 5; 7LQ6; 8M; :CL; G;; ?I<; @[?; AG:; DCL; ECLB; GD4KC; HDD; IFfE; KNLF; Ld*G; MM4H; NS m L; PeM; Qb^N; RmqO; UpPL P; Vi= Q; WDSR; YWT; ZMOU; [LVV; \G@; ^CL; _CLY; aEZ; cFE; fCL; gCL]; iD%^; jy ; mCL; nCLa; A:%; CL; CLd; G; CLf; ^; CLh; Oi; U; CLk; \| l; P{ m; O=q n; sfo; mh!p; nG q; h=q r; fǮ s; Nt; Nyu; B8; CL; CLx; Dy; Lr|z; D; CL; CL}; N~; Ob;; O; G6; CL~; CL; Px; Z ; m; oH; jY; CL ; v ; CL; CL ; O9; CL; CL; G; CL; CL; oI ; @[; CL; CL; CL; vW ; M\; !H; "J; %S; 'qٙ; (v; )u=q!; *u"; +e3#; ,QL$; -I%; .O&; /MJ'; 0N(; 3~ ; 6CL*; `c+; bY2h; eCL-; gI; iCL; jCL0; lET1; mX2; oM3; qN %4; rG@5; tCL6; u]; vCL8; yf; {CL:; }w| ; CL<; a =; | ; CL; CL@; eP1A; MLB; AF; CL; CLE; wgH; A6pI; m4 J; J K; GL; t ; [~ ; ixB ; N; Fh; Go; k_ ; j ^ ; F?; i ; } ; H; OW@; I; L; Fa}; M ; BV; Oe; H8; JP; I0; lº ; Xp; Bd!; CL; G^; DF-; CL; CL; CL; CL; CL; (CL; )CL; *CL; -vg; .s3; /vf; 0^xR; 1eR; 2e{; 4CL; 6CL; 7CL; 8CL; 9CL; :CL; ;CL; <^; =CL; ?CL; @CL; AN|; CCL; FC ; HCL; ICL; KuD ; MCL; NCL; OCL; PCL$; SL%; TJ &; WL]; YCL*; \L^,; ]F<; _CL.; ax0 ; CL; CL; CL; CL3; td4; A6; K7; D8; Bg9; ER:; I3;; HFf<; Ff; CL>; R?; Jܝ@; H}A; r ; CLD; r# E; GF; G|G; Wu; h3; m3; gc3; \!; ^,; I; f7 ; b ; G; J !; CL ; CL; CL; i ; CL; DJ; wna ; A"; BE; KK ; A; CL; CL; CL; CL; CL; E; H); D~F; sP; ]@; C{; pY ; t+ ; r; H|; ]jG; D8; t>u ; A ; W; #xe ; $F/; &C4; 'Q ; *bUU ; +^; TJ; U^; VCL; WCL; YCL; ZCL; [CL; \CL; ]CL; ^CL; `CL; cM:>; dH; eH; fInx; iK.; la }e; _vX}f; 4p& M; w N; DO; DbhP; J>Q; iR; P5|S; p< T; IKV; m X; HzY; M[; æ\; Jg^; e|C_; w `; A<a; pb; sc; ph; CL; CL; CLg; t0 ; CL; CL; CL; CLm; G5n; o; { ; CL; CL; CL; CL; CL; CL; CLw; G(x; Qy; [{; OP{; o33 |; R-}; c?~; !^; $Cty; %F; )q ~; +CL; -eI |; /CL; 2J ; 4Bb; 5J; 8Mu; :CLt; ;CL; >jhs ; ?vG ; @to 5; ALjo6; BM`; DCL; ECL:; GH@;; II!<; JY'?; KG ); NCL; OCLB; QDGC; ROyD; SF@)E; UL)F; VbHG; WGW H; S!5 L; rkM; `RN; l\O; pPL P; iLl Q; DSR; WT; MH>U; LV; G; CL; CLY; F7 Z; E; CL; CL]; C^; |C ; CL; CLa; B; CL; CLd; H; CLf; ^; CLh; N&i; TW; CLk; \ l; O m; N\ n; so; lp; q q; m8R r; k{ s; Nt; Nu; B; CL; CLx; Dy; JCz; DX; CL; CL}; M~; Os; L; G.; CL~; CL; N; [! ; m; nf; iə; CL ; v ; CL; CL ; =); CL; CL; H[; CL; HCL; JpPL ; KA; NCL; OCL; PCL; Rvg ; T\;4; UTf; VG@; YT*#; [pB; \t!H; ]qfg!; ^F3"; _u3#; `[$; aI%; bO&; cMn9'; dO (; g~s ; jCL*; lc8+; m\M; pCL-; rI; uCL; vCL0; xE1; yWQ%2; {Mk3; |N!4; }Gܤ; CL6; ]; CL8; `; CL:; w| ; CL<; b=; }T ; CL; CL@; hSA; MSB; | ; CL; CLE; BH; H@I; Y J; H K; GL; sl ; [ ; ixB ; N-S; Frw; F; j ; ixB ; F?; i ; } ; H; Ol; I; L; Fa}; M ; B; P x; H8; JP; I; m ; !X; "C; $CL; 'G^; *DF-; -CL; .CL; /CL; 0CL; 1CL; 2CL; 3CL; 4CL; 7t6g; 9lg; :Cf; ;\R; ; T?; Jy@; Hy$A; rz ; CLD; q E; GF; GzFG; YO@; hX; n(; gY; [; \; I{]; e ; aj ; G; J !; CL ; CL; CL; n ; CL; D; vv ; A; B; ~; A"; CL;  CL;  CL;  CL;  CL; F; Hx; Dq; s5; >]@; ?D;; @pA ; Au ; Ds<; GHr; H[; IE7.; LtM ; PA ; SW; Vzr ; WG;; XC4; YV]% ; \b&f ; ]^; ^Mi; `^; aCL; bCL; cCL; dCL; eCL; gCL; hCL; iCL; jCL; mMG; nH; oHj; qI}; tK33; wfL }e; X$,}f; >o M; wWw N; D+O; }C P; J VQ; k3R; PnS; p^ T; BV; _ X; H1Y; M;[; ͦn\; J?J^; fm_; er `; Aa; p4b; rc; n; CL; CL; CLg; t8 ;  CL;  CL;  CL;  CLm; Gn; o; | ; CL; CL; CL; CL; CL; CL; CLw;  Dx; !U{y; "Yff; #OP{; &^fg |; (Rn }; )a*~; ,^; /CW; 0F; 3q ~; 5CL; 8eK |; :CL; =J*; >BI; ?J; jI+u; mCLt; nCL; pj7L ; qv ; rt 5; tLq6; uM; wCL; xCL:; zGg;; {Hnm<; |X?; }Fy; CL; CLB; DC; PD; F@)E; Q\)F; \G; IqH; S# L; i M; eN; pO; p P; ixB Q; DR; XT; MS3U; L#V; GT; CL; CLY; F[GZ; E; CL; CL]; Ca^; | ; CL; CLa; C ; CL; CLd; H[; CLf; ^; CLh; M*i; Sj; CLk; \[ l; P m; O3 n; to; mN#p; o=q q; i r; hQ s; N®t; Nu; B; CL; CLx; DYy; Qɶz; Du; CL; CL}; 0Mi~; 1O$; 2L}; 3G+; 5CL~; 6CL; 9LC; <[PN ; =ng; >p; ?j; ACL ; Cv ; FCL; GCL ; HsT; ICL; JCL; LHO ; OCL; PCL; RpPL ; SA; VCL; WCL; XCL; Zv ; \V; ]N; ^Ovf; aTg; cj; dn; ek!; fn@"; gXf#; hLl$; iI%; jO&; kM`'; O(; Fv ; CL*; _cH+; ]; CL-; I ; CL; CL0; E1; W22; M3; N+4; U ; CL6; ]; CL8; M2Y; CL:; wna ; CL<; d=; }I ; CL; CL@; gUA; MtB; } ; CL; CLE; EiH; FMI; `% J; [K; GL; t ; [g ; ixB ;  M;  FY;  FxC; j ^ ; ixB ; Fi; i ; |; H; O; I; KA; Fa}; !M ; "B-; %K; &Jl; )JP; *I2; +lv ; .S; Sp?; J`@; H~A; r ; CLD; q E; GF; GG; WԨ; g; lf; e; [; _5; JG; ejU ; a ; $G} ; %J!; (CL ; )CL; *CL; ,j ; /CL; 2E; 3w ; 4B+; 5CSc; 7^5; 8A; :CL; ;CL; CL; ?CL; BF ; CHx; DDO!; Er; H]@; ID|; JpY ; LuF ; OsP; RHjP; SY0; TD; Ws ; ZAH ; ]Xu; zF^ ; G;; C4; N ; cU ; `f; N; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; M_; H7; Hj; I; K.; fS3 }e; 7LD}f; poL M; wH N; DQO; CiP; J?pQ; jmR; PRS; p$ T; G#/V; j X; H Y; Me[; F\; I#^; f_; tU `; @a;  bb;  a{c;  Zk;  CL; CL; CLg; t ; CL; CL; CL; CLm; Fn; ~o; | ;  CL; "CL; #CL; $CL; %CL; &CL; 'CLw; RH\)x; SSGy; U]>; VOP{; Yl |; [RV}; \c ~; ^^; aC2; cF}; frz ~; hCL; jd`* |; lCL; oJ1[; qBE; rJ; uO-|u; wCLt; xCL; {j/ ; |w ; }tP 5; ~Li6; M!; CL; CL:; F;; Gۤ<; [?; F; CL; CLB; DC; ND; F%-E; R\F; _uG; PffH; S4 L; cHM; `޹N; kHO; p P; ixB Q; DR; W7T; MZU; LV; H ; CL; CLY; F?Z; F(; CL; CL]; CSc^; |oQ ; CL; CLa; Bɀ; CL; CLd; H*; CLf; ^; CLh; Li; R; CLk; \ l; M m;  L\ n; #r3o; $mQp; &l{ q; 'gp r; )e s; *Nt; +Nu; ,B1; .CL; /CLx; 1Dy; 2Qz; 3yl ; 6CL; 7CL}; :QM~; G; @CL~; ACL; DKr; F\ ; Hm<; Io9; Jj; LCL ; Nx ; PCL; RCL ; S_; |CL; }CL; Hd; CL; CL; p ; AV; CL; CL; CL; v ; ]; Vf; \f; TA; j; o\*; o\!; s3"; ^#; Ns3$; IP%; O•&; M'; O(; A= ; CL*; di+; Z; CL-; I\; CL; CL0; F 1; VU2; M3; N,4; } ; CL6; ]; CL8; O; CL:; w4 ; CL<; bv$=; }u% ; CL; CL@; g?A; M{DB; |` ; CL; CLE; FCH; C0I; g J; hK;  HUL;  srb ; Z` ; ixB ; M; FO; Fk8; ixB ; ixB ; Fi; i ; D} ; EH; HO; JI; KL; NFa}; PM ; QCy; TQe; UI; WJP; XI@; ZmU ; ]S; T?; K@; HUA; qˈ ; CLD; p E; GF; GrG; Y#; "hٙ; #ng; $gl; 'ZT; (_5; )J&F; *ex ; +a>' ; -Gn; .Jm!; 1CL ; 2CL; 3CL; 5i[ ; 8CL; :E; CD; ?Jj ; @A; CCL; DCL; ECL; FCL>CL>FD>I>Dr> ]DD> D|> p >u >rf>Hg>]h>DW>s >A{ > WAQ>#y >$G>%C4>&O]6 >)d >+`\>,N>-^>.CL>/CL>0CL>1CL>3CL>4CL>5CL>6CL>7CL>:MDF>dH~>eH:>fI@>iK33>lff }e; ?^}f; {oG M>wf N>DnO>}Ň P>J6 Q>l,SR>PGPS>pPL T>D}V>cj X>HY>M-\[>J\>I^>fl_>hV `>@Ta>t@b>uc>o>CL>CL>CLg>u( >CL>CL>CL>CLm>Fn>Po>| >CL>CL>CL>CL>CL>CL>CLw>D4x>RaHy>W=q>OP{>bDD |>Rd}>bR<~>^>C\>F>rN ~>CL>-d |>/CL>2J->3B>4Jӱ>6F~u>8CLt>9CL>;j >>t=q 5>?Lc&6>@Md>BCL>CCL:>EG-a;>FG)H<>GZ$?>HFݱ>KCL>MCLB>ODC>PLFD>QF0E>S@{F>TT=qG>UCH>VS= L>Wx M>XvQN>Y@|)O>\p< P>]i Q>^DR>aW7T>bMPvU>cLV>dG>fCL>gCLY>FZ>F(>CL>CL]>CSc^>| >CL>CLa>Bw>CL>CLd>HO >CLf>^>CLh>L i>Q>CLk>\ l>L m>Lz n>ro>mp>oW q>e r>eu s>N5t>Niu>Bތ>CL>CLx>DZy>Pz>DV>CL>CL}>h'~>OP>ON>G>CL~>CL>J>\ > mK3> nf> i> CL >u ~ >CL>CL >>CL>CL>HO >CL>CL>nn >A{1>"CL>#CL>$CL>&v >)\f>*S>+U8>.T>Xm>Yos4>Zn!>[t@">\c#>]O33$>^Ig%>_O&>aM'>bO/g(>e~Ü >gCL*>icm+>jX>mCL->oI>rCL>sCL0>uF1>v\2>xM,3>yN4>||` >CL6>]>CL8>PW>CL:>w4 >CL<>bߋ=>}T >CL>CL@>hr]A>MypB>|& >CL>CLE>GLH>B3I>[} J>j#K>HTL>wna >\ >ixB >K>E>E>>ixB >ixB >E>i >} >H>O>I>L>Fa}>M >Bv>Lv>IY >JP>I$>l >"X>#B<>%CL>(G^>+DF->-CL>.CL>/CL>0CL>1CL>3CL>4CL>5CL>8lg>9avg>:vg>;_!H><^xR>=\R>?CL>ACL>BCL>CCL>DCL>ECL>FCL>G^>HCL>ICL>KCL>LNb>NCL>QCԅ>SCL>TCL>UwB >XCL>YCL>ZCL>[CL$>L%>J&>LP=>CL*>Ls,>S!>CL.>z)B >CL>CL>CL>CL3>t,4>A6>A47>@8>|49>C:>H#3;>G<>F34>CL>>S!?>JJ@>HA>q >CLD>q9 E>G3F>G~G>W>h3>o4>g4>Zg_>\Jl>J\E>eM >a< >F>I/!>CL >CL>CL>n}[ >CL>E@>wB >Bw>C~>K >A/>CL> CL> CL> CL> CL>F P>I0>DE>r7>]DD>DJ>o >u >q> HT{>!^b>"Do>MsF >PA >SV>Vz)B >WGg>XC4>ZV >]cȉ >^`>_N>`^>aCL>bCL>cCL>eCL>fCL>gCL>hCL>iCL>jCL>nM(>oHa>pH>qI>tK33>us}e>^}f>;pD M>w N>DO>AxP>J6Q>k=R>PjS>p$ T>CV>b| X>H|UY>M[>̦\>J ?^>f^_>n `>@!a>Z b>Zc>Q5>CL>CL>CLg>t? >CL>CL>CL>CLm>Fzn>@o>| >CL>CL>CL>CL>CL>CL>CLw>Dx>My> Y(>!OP{>%d |>'TuF}>(c~>*^>-B>.F>2r]\ ~>4CL>6d0 |>8CL>;J(?>>J>ALu>CCLt>DCL>FjR >Hvk >Itz 5>KL^6>LM{>NCL>OCL:>yF/;>zFO<>{V?>}F>CL>CLB>DC>JSD>EE>LQF>PGG>BfH>SD L>igM>g#N>q}qO>p< P>i Q>D|R>WT>M=IU>LV>H >CL>CLY>FݱZ>G>CL>CL]>C^>| >CL>CLa>G;>CL>CLd>HO >CLf>^>CLh>Ki>Q'>CLk>\9 l>Nff m>M\) n>to>mp>q q>if r>h# s>Nt>Nu>B>CL>CLx>Dy>O z>DX>CL>CL}>`0~>Oe> O> G> CL~>CL>Jm>\0 >m>o`>hS3>CL >At >DCL>ECL >F|Z>GCL>HCL>JH>MCL>NCL>Pouq >Q@>TCL>UCL>VCL>Xv >ZUf>[I>\IK3>_Tу>am >bs+>ct0!>d]s3">fJ#>g}2$>hIR%>iO&>jMXV'>kO3(>lB>nCL*>pWQ%+>qa>tCL->vI>yCL>zCL0>E1>Z2>Ld3>M4>B>CL6>]>CL8>MU>CL:>w >CL<>b=>}T >CL>CL@>hZA>M B>| >CL>CLE>GH>BrI>i J>[oK>HuAL>uD >ZO >ixB >L B>E*>EIN>ixB > ixB > E9[> i > } >H>O>IR>L>Fa}>M >A>Rی>HG>!JP>"H>#l >&S'B>)CL>,G^>/DF->1CL>2CL>4CL>5CL>6CL>7CL>8CL>9CL>=avg>>vg>@_>A^xR>B\R>lCL>mCL>nCL>oCL>pCL>qCL>rCL>t^>uCL>vCL>wCL>xNf[>zCL>}CI>CL>CL>w >CL>CL>CL>CL$>L%>J&>H%>CL*>L,>D>CL.>D>CL>CL>CL>CL3>t/4>A6>|7>Y8>p9>C:>G0;>F<>Ds3>CL>>R?>J@>HrA>q9 >CLD>p E>GF>Gy^G>X]>h>np>g^f>YM>]t >JF>c7 >_i >FL>IE!>CL >CL>CL>kd >CL>EV[>vܹ >B>CSc>-> A,> CL>5CL>6CL>7CL>8CL>;F>=DB>>r6>A]DD>CD;>Do; >Eul >Hrf>KHJ{>LX7>MDĞ>Py >SA >VXT>Zy# >[Fm>\C4>]Oz >`d33 >a_0>bOP>c^>eCL>fCL>gCL>hCL>iCL>jCL>kCL>mCL>nCL>M>H1>Hچ>I>K33>f }e>R}f>Fo M>wWw N>D$O>AP>J6Q>juR>Py:S>p^ T>FV>h X>HY>M1A[>Ѧn\>K^>e_>mc `>@a> v{b> v:c> r=q> CL> CL> CLg> t]{ > CL> CL> CL> CLm> FsIn> o> | > CL> CL> CL> CL> CL> CL> CLw> #DW x> %P{y> &Zk> 'OP{> *g |> ,S_}> -be~> /^> 3BK> 4Fn> 7qJ ~> aCL> cb8 |> eCL> iJ"> jBK> kJ:> nMܪu> pCLt> qCL> tj > uvA > vtn 5> xL\6> yMs> {CL> }CL:> F~;> F<> T-?> FT> CL> CLB> CBC> G,D> EE> CF> MG> D4H> SY_ L> fM> d N> }O> p< P> ixB Q> DuR> WqT> M*U> LųV> H > CL> CLY> GZ> FR> CL> CL]> B5^> {/9 > CL> CLa> B"> CL> CLd> H@> CLf> ^> CLh> Kxi> P5> CLk> ] l> M\) m> L n> r3o> mp> o q> i r> h=q s> Nt> Niu> Bbk> (CL> )CLx> +Dy> ,MSz> -D%> 0CL> 1CL}> 4]|~> 6Ov\> 7O> 8FK> :CL~> ;CL> =J+> ?\0 > Apq> Bq3> Cj4> ECL > GvY > ICL> KCL > L> MCL> NCL> PH[> SCL> TCL> Vp| > W@> ZCL> [CL> \CL> ^v0 > `Rl> aKf> bL<> T> sp> wٙ> vp!> uL"> a#> N`$> IC%> O6&> M{'> O3(> 7 > CL*> cd+> \ݒ> CL-> I> CL> CL0> ET1> YN2> Lױ3> MA4> F$5> CL6> ]> CL8> z<> CL:> vI > CL<> cr=> |ƚ > CL> CL@> fz\A> M B> ~ > CL> CLE> E#H> @^I> b J> W K> H{L> u ~ > [ > ixB > M> E5> EP> k. > ixB > EG> i > } > H> O> I~> L> "Fa}> $M > %BV> (Lv> *H5r> TJP> UI> Vm > YS ZB+> \CL> _F> bDF-> dCL> eCL> fCL> hCL> iCL> jCL> kCL> lCL> olg> pavg> qvg> r^xR> teR> ueR> wCL> xCL> yCL> zCL> {CL> |CL> }CL> ^> CL> CL> CL> NaM> CL> C> CL> CL> |& > CL> CL> CL> CL$> K%> JH&> H!> CL*> L`,> E%> CL.> x > CL> CL> CL> CL3> tR4> A6> x7> s8> kS39> CUM:> G,;> F34<> CY> CL>> R 6?> J@> HMA> r > CLD> r# E> GF> GsG> UXH> g> m> e> #Yט> $_N> &JJD> 'd( > (`b > )Fi> *I(-!> -CL > .CL> /CL> 1h > 5CL> 7E> 8y > 9B?> :B> =A=> ?CL> @CL> BCL> CCL> DCL> GF*C> HIK> ID0> Jr> M]DD> NCB> Pn > Qv > Tr)> WH^}> Xb> E > z)B > A\ > X?> y > G )> Cu> Nf > cff > _> Nf> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> Mk> H> H> I> K33> e` }e> to M> v N> DO> @kP> J&Q> lzbR> PJS> u T> BZV> a@ X> HY> L[> \> G^> eE_> k `> @a> ^J>b> ]Hc> Z> CL> CL> CLg> t8 > CL> CL> CL> CLm> IFran> Lgo> M|U > OCL> PCL> QCL> RCL> TCL> UCL> VCLw> YBǮx> ZT=qy> [[)> \OP{> `dDD |> bS}> cc~> e^> hBf> iF@> mq ~> oCL> qb |> sCL> vJ> wBA> yJ> |Iu> ~CLt> CL> j > v > u9X 5> L\6> M> CL> CL:> F;> EP<> U?> G )> CL> CLB> DC> DD> EE> @34F> EG> x=qH> Sz L> ukM> d{N> mO> p P> ixB Q> DXR> W)T> MU> LV> GL> CL> CLY> FZ> E> CL> CL]> C^> z? > CL> CLa> A>CL>CLd>HG>CLf>^>CLh>Kci> O&>#CLk>&](M l>'Lq m>(KH n>+ts3o>,mȨp>.o= q>/l = r>0g3 s>1NNt>2N=u>3B>6CL>7CLx>9DYy>:Kz>;D%>>CL>?CL}>B[U}~>CO~>DOq>EGA>GCL~>ICL>KJt>u[/ >vmf>wn(>xhff>zCL >|v4 >CL>CL >>CL>CL>Go>CL>CL>o >@m>CL>CL>CL>v >M>FY>Eg>U!\>h>m>lL!>aY">Wf#>L $>IpJ%>Ot&>Mp '>O+(>~s >CL*>c+>Y>CL->I>CL>CL0>F 1>X2>Mt3>Mj4>G>CL6>]>CL8>j>CL:>v >CL<>cY=>|= >CL>CL@>h-A>M;HB>r >CL>CLE> @,H>HNI>] J>V: K>HaL>>Al>AY >BixB >CK)>DE*>EE9[>FixB >GixB >HE9[>Ii >L} >MH>PO>RI>SL>TC>UM >VB]>YLv>ZGa>\JP>^I->_m >bScC=>eCL>hFJ>iF b>kCL>lCL>mCL>nCL>pCL>qCL>rCL>sCL>vcVg>w`3>t6g>Z>^\>]>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>Nb>CL>C>CL>CL>@>CL>CL>CL>CL$>Kw%>J&>O>CL*>LWN,>Pw>CL.>Hk>CL>CL>CL>CL3>t04>A6>{7>mY8> hS39> C*:>K9;>Ig<>J>CL>>Pj@?>Jǟ@>H A>o >CLD>n E>GF> GnxG>!SE>%ef>&l0>'df>*Yc>+^>,JSE>-dp >/` >0F>1H !>4CL >5CL>6CL>8n4a >;CL>>E >?z >hBk!>iC/>k&>lB!>nCL>oCL>pCL>rCL>sCL>vF46>wIV>xD&>yr^>|]DD>}C>~of >v>u >oL>Hm>Y.>E'>zr >AQ >X>{/9 >F/>Cu>V >c" >`c3>O`>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>M\>H7>Ha>I@>K33>iE}e>kRi}f> p M>w+ N>DHO>D>P>Je Q>jR>PCS>@T>JV>n X>0HY>1L[>2q&\>3Kx^>6d_>7u `>9Ba>:vb>=s\>?CL>@CL>ACLg>CtR >ECL>GCL>HCL>ICLm>LGTn>O@C3o>P| >RCL>SCL>UCL>VCL>WCL>XCL>YCLw>\Ax>]My>_Up>`OP{>cowx |>eR@}>faV~>h^>kCV$>G\>r@3 ~>CL>gV |>CL>J>Bˬ>J>O#u>CLt>CL>kT >w >uj 5>L\6>M>CL>CL:>F;>D<>V)?>G>CL>CLB>D4KC>AD>EE>~RF>CpG>uRH>S L>h>M>fLN>p{O>p P>ixB Q>DR>X<T>L4U>LIV>GJ>CL>CLY>GZ>F >CL>CL]> CSc^> z7 >CL>CLa>A >CL>CLd>DG>CLf>^>CLh> y+i>#ND>&CLk>)]/d l>*RǮ m>+Q n>.po>/mp>1kQ q>2gH r>3f\) s>\Npt>^Nu>_B>aCL>bCLx>dEy>eIz>fDG>iCL>jCL}>mW~>nO>pOW>qG^>sCL~>tCL>vJ>x[/ >yc3>ze>{_\>}CL >t >CL>CL >>CL>CL>G>CL>CL>la7 >A"J>CL>CL>CL>v >N>G1>G(>U;>s>vY>t!>bٚ">T#>I4$>Ia%>Oa&>Mi'>O'.(>DG>CL*>_5+>X">CL->I/>CL>CL0>F1>Wl2>M?3>M/L4>GB>CL6>]>CL8>b>CL:>v >CL<>dH=>EG>CL>$CL@>&EA>)M•B>,}T >/CL>0CLE>2FH>3DdI>4k J>5@ K>8Hh,L>:y@ >=\5 >>ixB >?J3>@D>ADG>BixB >CixB >DDG>Fi >H}>IH>LOp>NI~>OL>RFa}>TM >UBV>XQ>YEL>[JP>]I>^m >SB>CL>G^>DF->CL>CL>CL>CL>CL>CL>CL>CL>cVg>Yg>p>\8R>\R>_>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N\>CL>C >CL>OP>y >CL>CL>CL>CL$>L(%>J&>Jv>CL*>LA,>L>CL.>@Q>CL>CL>CL>CL3>tH4>A6> Ef7>  8> nS39>C:>F;>H<>F >CL>>P9?>J*@>HA>p< >CLD> p E>"GF>#GZG>$X>'g>PmA>QeNf>TY-:>U\/ >VJ/E>Wcн >X_ >ZEV[>[H[!>^CL >_CL>`CL>bk. >eCL>gD>hzcz >jB\>kC>lO >mB >pCL>qCL>rCL>sCL>tCL>xF;s>yI_ >zDO!>{r>~]DD>C>n >vx >nS3>H~R>^>D>z % >AL >WKa>}h >F>Cu>N >dU >`Ff>M,>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>M>H>HƐ>I,>K33>iE}e>l^m}f>pj{ M>#w:a N>%DO>&|c P>'JKQ>+k4R>,P\S>-AeT>.AV>/^_ X>1HY>2L[>4T\>5H^>8en_>9d9 `>;Dza>=jc>>h>ACL>BCL>CCLg>Es >GCL>HCL>ICL>KCLm>NHRwn>Q@Io>R|U >|CL>}CL>~CL>CL>CL>CL>CLw>BǮx>Nky>UQ>OP{>]33 |>Rc}>a%~>^>Cf>Gz>r# ~>CL>fA |>CL>Jz>B>J>Fnu>CLt>CL>ko >whs >u8 5>LZ 6>M>CL>CL:>F;>DI<>[$?>Gx>CL>CLB>D;C>J~D>EE>nGF>{=qG>F{H>S L>dM>agN>kuO>pA P>i/3 Q>DR>WeT>LKU>LV>G>CL>CLY>FsZ>F>CL>CL]> C~^> zr >CL>CLa>A{>CL>CLd>BN>CLf>^>DCLh>GIi>HM{[>KCLk>N\# l>OM m>PLk n>StLo>Tnp>VhǮ q>Wcz r>Xb{ s>YN®t>ZNu>\BR>^CL>_CLx>aDy>bR z>cC>fCL>gCL}>jSJ~>kO>lO>nGn>pCL~>qCL>sJn>u[ >vc>we1>x_I>zCL >|x+ >CL>CL >F2>CL>CL>G>CL>CL>p >@>CL>CL>CL>why >Q>Jf>Jk4>Ua>q>vaH>t}q!>c&f">Sf#>M$>IU %>OK&>Mr'>O0R(>~z >CL*>dN+>`z>CL->I>CL>CL0> F1> W2>MzZ3>M=4>Gϛ>CL6>]>CL8>]>CL:>w% >CL<>!cU=>"G>%CL>&CL@>)uA>*N/nB>-| >0CL>1CLE>3G%H>5C^`I>6`~w J>7q] K>:H{L>?[ >@ixB >CMFA>DEa>EEptBkQ BixB BEsZBi B }UB HBO?BIrBLBFa}BM BAFBLvBELBJPBIB m B#LaB$BB&CLB)FB,DF-B.CLB/CLB0CLB1CLB3CLB4CLB5CLB6CLB9eB:YgB;lgBd^Be\RBg\RBiCLBjCLBkCLBlCLBmCLBnCLBoCLBp^BrCLBsCLBtCLBuNTOBwCLBzCB|CLB}OPBu BCLBCLBCLBCL$BL%BJW&BHVBCL*BL,BFBCL.Bx BCLBCLBCLBCL3Btۜ4BA6Bz47Bwg8B_S39BB:BC#3;BDYBQ\?BJ @BHMABt BCLDBr EBGFBGS<GBWBdTBj4BbBXB^BJ/EBc B_ BFBIp!BCL BCLBCLBi BCLBEZB|} BByBCDB,K; B-B B0CLB1CLB2CLB4CLB5CLB8F?B9IbB:D%B;râB>]DDB?C{B@n BBvz BEp3BHHBI^:BJDBMz % BPA BSVBV}T BWFBYCuBZN B]dD B^_pB_OS3B`^BaCLBbCLBdCLBeCLBfCLBgCLBCLBCLBCLBM2 BH(BHƐBIrBK33Bif}eB,]}f>p MBw:a NBDOBC$PBJlHQBjRBPGPSBrk TBFAVBgc XBHYBM D[Bc\BI^Bdu_Bsr `BDgaBT bBUaHcBQBCLBCLBCLgBs B CLB CLB CLB CLmBHnBoB|ӄ BCLBCLBCLBCLBCLBCLBCLwB IxB!OyB"T\B#OP{B'j |B)RJ_}B*`~B,^B/DnLBXG@eB\rN ~B^CLB`d`* |BbCLBeJBfBBhJ.BkKAuBmCLtBnCLBpj BrwO Bsu 5BuLWN6BvMBxCLByCL:B{F?;B|CB5GymB7CL~B8CLB:JB<[{ B=b3B>bS4B?a8BACL BCx:D BFCLBGCL BHBICLBJCLBLH[BOCLBPCLBRp BSArBVCLBWCLBXCLBZwpB BPXBU3BU.fBUtBkBqBo!BJ"B}2#Bzff$BI_%BODm&BMJ'BO3(B~z BCL*Bc+B[ABCL-BIBCLBCL0BF/1B\^2BM3BM:>4BGBCL6B]BCL8BY\,BCL:Bx BCLBR;?BJn@BHABt!N BCLDB!qt EB#GFB$GS<GB%U-B'eB)kB*cgB-X3+B._3B/JKB0e>t B1aj B2G} B3JBU!B6CL B8CLB9CLB;o B>CLB@EBA|oQ BBCUBCCBBEIЦ BFBBICLBJCLBKCLBLCLBMCLBxFIByIsB{C B|r3B]DDBDBo7 Bv4 BpٚBHB^BE>nB{ BA3 BU1mBx BFBCuBU Bc B`BP3B^BCLBCLBCLBCLBCLBCLBCLBCLBCLBM<BHRBHxBIBK8RBj}q}eBE]4}fBpo MBvc NBDFOB~ PBJHQBj$RBPNqSBp TBCVBb- XB HYB Mz[B H\B I9^Be'_Bg `BC0HaBo\bBlkcBm#BACLBCCLBDCLgBFs BHCLBICLBJCLBKCLmBNH nBRoBS|ӄ BUCLBVCLBWCLBXCLBYCLB[CLB\CLwB_@BxB`J(yBaUBbOP{Bf` |BhR }Bic~Bk^BnD1BpFBsr# ~BuCLBwc |ByCLBI`BBfBJ.BOuBCLtBCLBjT Bw Bu 5BLZ 6BM8BCLBCL:BGg;BCLCLxB@E2yBAPXzBBDVBmCLBnCL}BqN~BsO:BtOBuGBwCL~BxCLBzJ˽B}[ B~aBafB\3BCL Bv( BCLBCL B\BCLBCLBHBCLBCLBn% BBBCLBCLBCLBwpB BM 3BEBEfBUxBqHBugBq>!Bq3"Ba3#BW$BIj%BO3&BM<'BO5(BC*BCL*BUB+BYTBCL-BJBCLBCL0BF 1B[ n2BM{3BMBs4BHAGBCL6B]BCL8BWfBCL:Bxe BCLB R?B J@B HAB r B #CLDB %pX EB 'GFB (GNGB )T.TB +_pB ,fB .^gB 1WB 2^\kB 3KYB 4eд B 5ax B 6FB 7I!B bCL B dCLB eCLB gk B jCLB lEѕB m| B nCaB oD;B qK~ B rBEB uCLB vCLB wCLB xCLB yCLB |FMB }IvB CB r_B ]DDB D%B p$ B v B r3B HB [OB EB u B Af B V B yN B G;B C4B O B g33 B _fB QB ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB M6B H|.B HϣB IB K8RB e }eB q`,\}fBo: MB 2v NB 4DHOB 5BrPB 7JQB :iRB ;P\SB dѦ XB @H1YB BM4,[B C9\B DIU^B Gd[_B HqG `B JBcaB KQbB MQ\cB NL)B PCLB QCLB RCLgB Ts B VCLB XCLB YCLB ZCLmB ]GOnB `@>foB a| B cCLB CLB CLB CLB CLB CLB CLwB BxB KfyB UQB OP{B h |B S#}B c~B ^B CB F}B q ~B CLB e,| |B CLB I.B BƘB JB HLuB CLtB CLB jP B vk B t 5B L_6B MB CLB CL:B F;B BEB XROc?B YJ@B ZHAB ]s B _CLDB aq EB cGJFB dGEGB eU/B i`B jgPB k_k3B nV9B o[AB pJTB qe B s` B tGnB uJZ!B xCL B yCLB zCLB |h B CLB EB | B BB C~B L B BEB CLB CLB CLB CLB CLB FbZB IedB CClB rkB ]DDB CB o B w' B ofB HZB _tB DaB t B A B UB x0 B FB CB N B hH B a33B Q6fB ^B CLB CLB CLB CLBCLBCLBCLBCLBCLBM BHvBHBIBK33Bif}eB ^w}fB oh MB=v NB?DOB@ArPBBJqXQBEhRBFP}SBGph TBHFtVBIg XBKHYBuM)w[Bw\ByK3^B|c_B}lc `BA݋aBkbBmcBjgBCLBCLBCLgBsc BCLBCLBCLBCLmBGF7nB@ToB| BCLBCLBCLBCLBCLBCLBCLwBG >xBR#yBU\BOP{Bf |BR}Bc~B^BCBFr.Br# ~BCLBe+ |BCLBIBBBJ:BNuBCLtBCLBk7 Bw\) Bu 5BLd6BMBCLBCL:BF[G;BB00NBgOBDYRB@XTBALЧUBCL}VBDHBFCLBGCLYBIG&"ZBJF7 BMCLBNCL]BPB^BQ| z BTCLBUCLaBWBBZCLB[CLdB]HkB`CLfBa^BbCLhBeV iBhVRaBkCLkBn] lBoKL mBqJ( nBtsoBul޶pBwcR qB_\ rB^u sBNktBNuBBVBCLBCLxBE*yBLhzBDnQBCLBCL}BL~BOBMBGwBCL~BCLBJB[l B``Ba BZxBCL BwS BCLBCL B̥ BCLBCLBH]BCLBCLBph BBGBCLBCLBCLBwhy BR33B K3B LB T}BU BZBY!BW"BP#BF$BInx%BO*&BM'BOg((B} BCL*B!c]H+B"]B%CL-B'J,B)CLB*CL0B,F1B-V2B/N1B3B1M4B2HB4CL6B5]B6CL8B9TKB;CL:B=BBhCL BixB BF5Bi B} BGoBOe!BIg5BLBFa}BM BBVBPeBABJPBJPBm B[cBBwBCLBG^BDF-BCLBCLBCLBCLBCLBCLBCLBCLB`&fBNgBlgBZ\B]޹B\BCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBNI{BCLBCԅB0CLB1CLB3w B6CLB7CLB7CLB8CL$B;L0#%BBcS?BdJ@BeHABht BkCLDBqJ EBGyFBGHWGBVBQ+3BVDBO4BURB^ BJKB` B^ BG̶BI !BCL BCLBCLBm4 BCLBEzB| BBnBC6]BF^ BBEBCLBCLBCLBCLBCLBFuZBI1BC9CBrB]GBCBn0 Bwa Bp3BHB\@BD٦Btj. BA BT5B vR B DSB CpBU9 Bd B`ffBQ6fB^BCLBCLBCLBCLBCLBOPBOPB!CLB"CLB%M+B&HoB'HB(I(B,K8RB-j!H}eB[ @}fBp MBrwJ NBuDOBv@UPBwJQBzhKRB{P}SB|p| TB}C VB~a XBHYBM[Bdj\BHJ^Bc__Bk8 `BAaBMnbBN.cBKBCLBCLBCLgBs BCLBCLBCLBCLmBG *nB@)oB| BCLBCLBCLBCLBCLBCLBCLwBAxBN\yBVBOP{Bd |BSM}Bb]~B^BC|kBFXBr# ~BCLBce |BCLBIBBBJ&BFuBCLtBCLB$jB B%wn B&udZ 5B(L`i6B)MB+CLB-CL:B/Fq;B1ANBFS{OBHp^ PBJm4 QBKEzRBMY9TBNLnUBOLVBPJTjBRCLBSCLYBUGZBVF(BYCLBZCL]B\B=^B]DB_OPBCLaBDBOPBCLdBH*BCLfB^BCLhBTAiBU|BCLkB\ lBI mBG nBiLoBlJpBa\ qB\aH rB\u sBNtBNuBBBOPBCLxBE9[yBJgzBD%BCLBCL}BK~BOBOBFBOP~BCLBJ;B[2Z Ba$BaBZBCL Bu BCLBCL BBCLBCLBH BCLBCLB n B ABCLBCLBCLBw  BOqBHnfBGaBSMYBTfBZ=qBX!BQ"BK3#B Dfg$B"Il%B#O<2&B$Mz'B%O|.(B&DGBPCL*BRO-|+BS[BVCL-BXJ%gB[CLB\CL0B^E1B_U2BaNH"3BbN4BcGBeCL6Bf]BgCL8BjS BlCL:BnF~BqCLCLBAOP$BBK{%BCJLu&BFQBHCL*BKLZ,BLNBNCL.BPIBSCLB|CLB~OPBCL3Bue4BA36BM7BHf8BK9B@:Bs4;B@IBT"?BJJ@BH{ABx# BOPDBn EBGJFBGJ(GBU/EBNfBSٚBMBSwB_BJeEBb B_d BF>KBG!BCL BCLBCLBl BCLBEZB~' BB BBBrYBBEBCLBCLBCLBCLBCLBFBBHBCoBrH2B]GBCi(BlD Bw BsS3BI *BXBC*B} B B BUB} B| BC.BP Bes3 B`BQ6fB^BDCLBECLBFCLBHCLBICLBLOPBMOPBOCLBPCLBTMBUHyvBVHBWItBZK8RB]fff }eBS}fB$oZ MB{v NB}DlOB~CPBJ+/QBgRRBPrSBp TBHjVBk XBHYBLb[B\BIJ^Bb_Bq `BA33aBb{bBdcBbٙBCLBCLBCLgBs-a BCLBCLBCLBCLmBFknB@PoB{ BCLBCLBCLBCLBCLBCLBCLwBxBK\)yBR)BOP{B kDD |BS}Bc~B^BCYBFIBr ~BCLBcm |B CLB#JB$B-lB%JZB)K3uB+CLtB,CLB.kp B0v B1u1 5B3L_6B4M!B6CLB7CL:B9FE;B;AWҶ?B?FyBBCLBCCLBBEDCBFGDFEEFiFFGF^QHF Si LF MffMF ZNF dOFq PFlo QFF7 RFYZTFM`UFL=VFKFOPFCLYFG4ZFETF CLF!CL]F#B+^F%MF&OPF(CLaF*IF,OPF.CLdF0H@F2OPfF4^F5CLhF8R,iF;THFeOPkFf\ lFgDQ mFiC33 nFlQoFmlCpFofk qFp]{ rFq_ sFrNxtFsNuFtDFuOPFwCLxFzEyF{I7zF|CFCLFCL}FK"~FOwFFLSFGFOP~FCLFK F[a FYyFYFQfFCL Ft[ FCLFCL FF2FCLFCLFGFCLFCLFl5h F@MFCLFCLFCLFv{ FMFFFEFR>FRBFWFU!FT&f"F@#Fy33$FI_ %FO?&FM'FO(F} FCL*Fc+FXFCL-FJ,FCLFCL0FE1FT2FN>3FN4FGF,CL6F-]F.CL8F1QF3CL:F5H[F8CLCLF?CL@FBXLAFCNyBFDCFFCLFGCLEFJuQHFL{IFN` JFPV KFRHuALFU] FWZ` FXixB FZH/F[CF\C:F]ixB F^ixB F_CμF`i Fb} FcFFfOsFIFLFFa}FM FB3FRԢFBFJ%FK Fib3 FVFBeFCLFG^FDF-FCLFCLFCLFCLFCLFCLFCLFCLFbfFNgFavgF@xRFGRFGRFCLFCLFCLFCLFCLFCLFCLF^FCLFCLFCLFNGQFCLFCɪFCLFCLF@FCLFCLFCLFOP$FL<%FJz&F NַF CL*FM?,FPcFOP.FJjFCLFCLFOPFCL3FuF4FA36F!I7F"@8F#Hs39F%@c:F'} ;F(}F+S?F,J@F-HoAF.E F/OPDFZnQ EF\GFF]G>[GF^TSFaPFbU)FcN4FgQFFh^UFiJ&FFjc!( Fk` FlE#FmF!FpCL FqCLFsCLFuhׄ FxCLFzDF{~@ F|AҩF}Bk!FFBFCLFCLFCLFCLFCLFF7FHFBƘFqF]DDFC'Fk FwZ FpFfFIaFVFCEFAFA FVKkFA|Ft!N FCpiFM Ffn F_ٚFQ6fF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFMFFHjFHFI}FK33Fi}eFF9J}fB.pK MF6uG NF8DFOF9DLMPF:IQF=g|tRF>PSF?p^ TF@B>VFB^ XFDH{nYFEL[FF8\FGIj^FJdȉ_FKf `FMAaFOIbFPK\cFQG8RFSCLFTCLFUCLgFXsc FZCLF[CLFCLFCLmFF[nF@c3oFz FCLFCLFCLFCLFCLFCLFCLwFC34xFNyFSFOP{F`wx |FSW}Fb~F^FC=FF0FqV ~FOPFd% |FCLFJFCFJb(FP xuFCLtFCLFk Fv Fu 5FLWN6FMFCLFCL:FF;FM|FRS+?FSJ@FTHZ4AFUHFVOPDFWAEFXHFFYGAGFZRF]P#3F^UF_OFbOuFc\FdIQFeb Ff`q. FhDGFiE!FlCL FmCLFnCLFpn% FsCLFuD_Fv},l FxG )FyAqFzK F{B}FCLFCLFCLFCLFCLFFFHٞFBFqxF]DDFB=FkZY Fw Fr FIF[9FBFClFB) FT|FBFo۔ FCaFU Fh7w F`&fFRfF^FCLFCLFCLFCLFCLFOPFOPFCLFCLF NF HcFHFIFK.FT }eFz_Yc}fFqu MF3u NF5DnOF6LqPF7IQF:eRFHcVF?leC XFAHW<YFBMg[FC\FmL^Fpb_Fqvq `Fr@aFtVubFuW&fcFvTFyCLFzCLF{CLgF}s FCLFCLFCLFCLmFFnF@K3oFy( FCLFCLFCLFCLFCLFCLFCLwFCqxFKyFT.FOP{FpDD |FU q}Fcl~F^FC&yFF%Fp< ~FOPFcv |FCLFI`FGFJ FFuFCLtFCLFk Fv5@ FuX 5FLQ6FM&FCLFCL:FE;FNnFa!F RY"F ~#F qٚ$F I%F O&F M'F O;H(F CD&F CL*F M~+F ]f_F CL-F J<F CLF CL0F E1F Y2F N#3F OJ4F FF CL6F !]F "CL8F %OF 'CL:F )Hs<F ,CLX8F ?LFf9F B~J:F Cxg;F DzfF GRٶ?F HJ@F IHAF JJF KOPDF LB ZEF MHUFF NG}GF OR[F SOF TTgF UM3F XNaF Y^F ZI[F \b F ]`EA F ^C/F _DX!F bCL F cCLF CLF j' F CLF DXF }X F G`F AqF mF A(F CLF CLF CLF CLF CLF FF ISF Bf F qpvF ]DDF BnF j F x4 F mF IF YXF BF DF Af F U F DF m F CL!F M F h F `fF RYF ^F CLF CLF CLF CLF CLF OPF OPF CLF CLF Nu F H]XF HF IF K.F i{}eF i(}fFq* MF 'u NF )DOF *KfPF TI&QF We;RF XP\SF Yp^ TF ZEVF [d! XF ]HQYF _M[F `q&\F aJ^F df"N_F ehr `F f@aF h}(bF j~.cF kuRF mCLF nCLF oCLgF qrb F sCLF uCLF vCLF wCLmF zFVnF }S4oF ~y#A F CLF CLF CLF CLF CLF CLF CLwF D >xF KkyF RF OP{F mDD |F T}F e~F ^F CF FpF pmy ~F OPF b |F CLF IF IF JF K8uF CLtF CLF lcT F vM F u9X 5F L>6F MғF CLF CL:F E;F N4OPF @CLaF CRg*F DOPF FCLdF HJF JOPfF L^F MCLhF PO/iF SQaF UOPkF W] lF \mF ~nF O3oF jpF _ qF Y rF ZG sF N?tF ObuF DF OPF CLxF DnQyF O8zF H2F OPF CL}F J˽~F OwFF MwF GבF OP~F CLF JF [ F QF QfF Lc3F CL F I :F CLF CL F pF CLF CLF G;F CLF CLF AfF |+ F CLF CLF CLF vg F ~&fF tF yF Q F [ F `qF _!F \ff"F T3#F B$F JhJ%F P &F Me'F O&D(F }h F CL*F d_Z+F Z]F CL-F IF CLF CL0F E9[1F X2F N(3F O.4F FPiF OP6F ]F CL8F HOF JCL:F LHs<F OCLF CLF CFCLFCLFBnFCLFCLFCLFOP$FLx%FJ&F JsF#CL*F&NQq,F'SUF(OP.F)LF+CLF,CLF.OPF0CL3F3uv4F5A36F8Og7F9T38F:Pff9F<|%:F>j;F?pS3FBRP?FCJ@FDHAFEJ?FFOPDFGAEFHHFFIGGFJQFuO.gFvTFwMgFzMpF{_TF|I`dF}b. F~`S FB+FD!FCL FCLFCLFii FCLFD%F} FGFAZFM FA/FCLFCLFCLFCLFCLFFtFIEFB8PFq\F]DDFBcFj> Fx- FpFJ-F]KuFBuKFEFB{ FS#FE3Fju FC/FO Fg F_FQF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFNFHVFHFI6FK.Fj }eF_}fF r) MFIuwo NFKD­OFLN62PFMIQFPb{RFRP&SFSp3 TFTO@VFUz62 XFWHYFXM<[FZ\F[L8^F^d}_F_iG `F`@ۘaFbz{bFc{cFdtfgFgCLFhCLFiCLgFkry FmCLFnCLFoCLFqCLmFtFnFw@ oFxQk FCLFCLFCLFCLFCLFCLFCLwFB>xFKLyFSFOP{F: |FUf}FdC8~F^FC FExFof ~FOPFc- |FCLFI{FKKFI&FPstuFCLtFCLFm% Fv! Fu 5FL<6FMFCLFCL:FF~;FM*FCLFCFCLFCLFB1 F CLF CLF CLFOP$FL|%FJ &FIFCL*FN~/,FTwFOP.FMFCLFCLF"OPF$CL3F'us<4F(A36F+b,7F,a8F-]9F0z:F2q@;F3qF^Q@?F_Jp@F`HAFaKFFbOPDFcA:%EFdHİFFeGZGFfQ>FhQiFiVFjOFnLFo^OFpHFqb(\ Fr_v FsA:FtC!FwCL FxCLFzCLF|k FCLFCF}: FFxCFAFCIFAŖFCLFCLFCLFCLFCLFFFIU FB*FqTF]DDFA:Fj FxK FrٚFJLFXFBFF~FAq FU?FEޢFiQ FCFV1 Fiff F`ffFRVfF^FCLFCLFCLFCLFCLFOPFOPFCLFCLFN0FHVFHxFIFK(Fe }eFZ}fFr MFtF NFDOFGPFIQF__RFQwSFAOTFOdVFz XF H}YF M[F 8\FLx-^Ffv_Fi `FCZ#aFypbF{.cFtFCLFCLFDCLgFFrr* FICLFJCLFKCLFLCLmFOGnFR@oFSv FUCLFWCLFXCLFYCLFZCLF[CLF\CLwF_~\*xFaM{yFbPffFcOP{Fd* |FeWW>}Ffh!~Fh^FlCLFmFFpo ~FrOPFub |FwCLF{IF|LF}I\FPuFCLtFCLFndZ Fv Fu 5FL:'6FM8FCLFCL:FF:;FLoNFOOFu65 PFrN QFI(-RFVȉTFM4UFMKVFLd$FOPFCLYFHzxZFEGFOPFCL]F A^F^FOPFCLaFT0FOPFCLdFJIFOPfF^FCLhF!MiF$OEF&OPkF']8 lF(Y\mF)VznF,Hs3oF.i%pF0^f qF1ZǮ rF2[ sF3NtF4Os uF5EF6OPF8CLxF:DuyFKF?OPFACL}FDK~FEO FFN'5FGH7%JOP~JCLJ IJ ZW J KJLgJG;3JCL JHVFJCLJCL JJCLJCLJEVJCLJ CLJ"K J#v J&CLJ'CLJ(CLJ*v@ J,uiJ-nfJ.qS4J1P;J3XYJ4]qJ5\!J6Jff"J8~#J9i$J:KA%J;P]&JdM&'JeNØ(JfC0JhCL*JjKO+Jk]\JnCL-JpI :JsCLJtCL0JvDS1JwU2JyN63JzO 4J{IaJ|OP6J~]JCL8JQ^JCL:JGJCLCLJ?CLJ@^JACLJBCLJDCLJEN/}JGCLJJC JKCLJLCLJNA/JQCLJRCLJSCLJVOP$JWLd%JXJC&JZH`J]CL*J`NQ,JaTJbOP.JcM8JeCLJfCLJOPJCL3Jud[4JA36JOl7JK8JT99Jxm:JlFf;Jqs3JQ*?JJ@JH6AJK+JOPDJ^ EJHFJH GJPQJNfJTJMJKLjJ`iJH@Ja- J_ JA2JBɀ!JCL JCLJCLJi JCLJBMJ}f JEѕJ@C J@ JAJCLJCLJCLJCLJCLJFJI5GJB+?JqDsJ ]=qJ A:%J ii J xv JsS3JJ\WJXlJCA?JFJB JTapJEJ i J!BJ"T J%hw J&`J'R|J)^J*CLJ+CLJ,CLJ-CLJ.CLJZOPJ[OPJ]CLJ^CLJaNkJbHMJdHjJeIJhK#Jkf3 }eJYo]}fFte MJuwo NJD OJG'PJIQJ]RJQySJATJNVJxp XJHYJMe[Jq\JN^JfJ_Ji9 `JDaJzbJ{>cJtHJCLJCLJCLgJrj] JCLJCLJCLJCLmJHnJgoJu JCLJCLJCLJCLJCLJCLJCLwJu xJK\)yJQJOP{J}{ |JW( }JiO~J^J DbJ!FJ$n ~J&OPJ*ad |J,CLJ/It J0Mp$J1IJ5GuJ7CLtJ8CLJ:o( J;v > JKJEsZJixB JixB JEZJEIJ} JHjJOJIJLJu mJLJEVJPJ@(:JM JM Jd] JOJEʘJCLJFJDF-JCLJ CLJ!CLJ#CLJ$CLJ%CLJ&CLJ'CLJ*_pJ+RlJ,avgJ-SJ/_{J0SJ2CLJ3CLJ4CLJ5CLJ6CLJ7CLJ8CLJ:^J;CLJN07J@CLJCCJECLJFCLJHAJJCLJKCLJLCLJOOP$JxLR%JyJ&J|G%JCL*JN,JT^JOP.JMKOJCLJCLJOPJCL3Ju[&4JA36JK7JBg8JMy9Jw3j:Jig;JqJP-?JJ@JHAJKuJOPDJ~24 EJIFJH jGJOժJO JTJMJJJ`/JGJat J_+ J@JB\!JCL JCLJCLJjp JCLJBcJ}R JE]J JXJA|=JCLJCLJCLJCLJCLJFJI$JAJqJ]@J@rJi= Jx J oPJ JYJWaJCJFJA JTJFJAi JBBɀJDRv JGhf JH`ɚJISJJ^JKCLJLCLJNCLJOCLJPCLJSOPJTOPJVCLJWCLJ[NGfJ\HA<J]H`J^IJaK#Jbi33}eJ\}fJ:u^ MJu NJDOJFŇPJIoQJ\lRJQSJq TJNSVJw% XJG9YJM*q[J\JLD^Jf˞_Ji `JC[aJzbJ{=qcJt{JCLJCLJCLgJq JCLJCLJCLJCLmJHnJoJt JCLJCLJCLJCLJCLJCLJCLwJ vxJ LyJ PuJOP{J} m |JW}Jg~J^JDwJFwJof ~JOPJ!a |J#CLJ&IxJ'M1J)IJ,JSuJ.CLtJ/CLJ1o`B J3vx J4vG 5J6L0#6J7M^J9CLJ:CL:JXpq?J@DXJCCLJlCLBJnCwCJoM_DJpDEJrsFJs@BGJtfHJuQ LJvsqMJwC)NJxPuOJ{vCLJ?CLJAu JCvJDnJEtfJHOJJX:JK]zJLY{!JMP3"JNA#JOi&g$JPK%JQPr:&JRM6'JSN(JTBJVCL*JXIL+JYXJ\CL-J^I :JaCLJbCL0JdC1JeZ@2JgN"3JhO64JjK>JkOP6Jm]JnCL8JQyYJCL:JG&"JCLJ Pg]?J J@J HAJ KJ OPDJ } EJ I^FJ HGJ OJ OJ U3J NdJ J J ^\kJ GSJ at J _+ J @uJ B}!J CL J CLJ CLJ gx J CLJ B?J |ƚ J DJ 7 J I* J A^vJ CLJ CLJ CLJ CLJ CLJ F:J I WJ AJ pлJ ]=qJ @J i= J xt J )qfJ ,JJJ .ZIJ /CaJ 0FcJ 2B J 5RJ 6F4&J 9gJ J :B5J ;L< J ?gn J @`ffJ ARJ B^J CCLJ DCLJ ECLJ GCLJ HCLJ KOPJ LOPJ NCLJ OCLJ RN!J THFJ UHU/J VIЍJ YKJ \tL}eJ ^@*}fJ1v< MJ t NJ DOJ G/PJ I6QJ \#RJ R,6SJ qHF TJ N;VJ u? XJ GYJ L$[J N\J M"^J f _J iq `J B<aJ yQbJ {zcJ tJ CLJ CLJ CLgJ q J CLJ CLJ CLJ CLmJ H<nJ oJ sR J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ xJ K yJ SW J OP{J | |J W}J i$x~J ^J D3J F#J y ~J OPJ aw |J CLJ IcJ !MdJ #I~IJ &PuJ (CLtJ )CLJ +p J Ux| J Vw 5J XL)6J YMAJ [CLJ \CL:J ^Fi;J _JaHJ oQK LJ pn(MJ qgNJ r|OJ uv PJ vt QJ xIkRJ zUkTJ {MJUJ |MkVJ }LJ ~OPJ CLYJ H ZJ EZJ OPJ CL]J @^J _ӼJ OPJ CLaJ SJ OPJ CLdJ J_CJ OPfJ ^J CLhJ M"#iJ LJ OPkJ Zt lJ [\mJ X nJ IoJ gpJ Y qJ Wff rJ Vu sJ NQtJ O uJ EfNJ OPJ CLxJ CyJ KzJ LJ OPJ CL}J L1~J OJ L@J HTJ OP~J CLJ HJ Z J HdJ F)J CJ "CL J $GJ &CLJ 'CL J )J *CLJ +CLJ -GJ 0CLJ 1CLJ 3|j J 4q J 7CLJ 8CLJ 9CLJ ;u} J =wIJ >kJ ?pJ BOZDJ DUJ E[34J F\ >!J GIY"J H|f#J Ihff$J JK%J KP_&J MM'J NNz(J OBEJ QCL*J SH+J T_8J WCL-J HJ CLJ CL0J CZ1J XdD2J N 3J Ox4J K\WJ OP6J ]J CL8J Qj5J CL:J FLJ CLJ P ?J J@J HAJ KrJ OPDJ }X EJ I0FJ GGJ O*J NJ TxJ MJ ItJ \J G<J a- J _x= J @&J A!J CL J CLJ CLJ i& J CLJ AZJ |oQ J DVJ ~z J ^J A7JCLJCLJCLJCLJCLJFJHMJA{JpwJ]:J @4J!i\ J"x J%rfJ(J1J)UqJ*C*J+FOJ.AǮ J1T15J2EJ5gj J6BJ7UW J:g J;`3J^J?CLJ@CLJACLJBCLJCCLJGOPJHOPJJCLJKCLJvMJwHFJxHH}JzIJ}KJf }eJ BP}fJ +w MJtb NJDOJFbhPJHQJ[;RJRASJq+ TJM{VJtR XJGYJL[J\JNN^Je6_Ji9 `JB@aJzW bJ|cJtJCLJCLJCLgJq JCLJCLJCLJCLmJGnJoJr JCLJCLJCLJCLJCLJCLJCLwJzGxJOQyJO\JOP{Jzg |JX"S}JgV~J ^J CJEJy# ~JOPJ>` |JACLJDI<JEKJFIkzJGFuJJCLtJKCLJMr JNxdZ JOu 5JRL"y6JSM"JUCLJVCL:JXFxC;JYI\uJ?[B!JhHf"Jiqfg#Jjhff$JlK %JmPx&JnM'JoN` (JpBJrCL*JtI+JuYZJxCL-JzHJ}CLJ~CL0JC1JW:2JM3JOV4JKJOP6J]JCL8JQ.`JCL:JEJCLavgJ?AJ@[pJASJCCLJDCLJECLJGCLJHCLJICLJJCLJK^JLCLJMCLJOCLJPN9JRCLJUCJVCLJWCLJY@J\CLJ]CLJ^CLJaOP$JbLP%JcJj&JeO§JhCL*JkN1,JSJOP.JM~JCLJCLJOPJCL3Ju"x4JA36JXl7JPff8JSٚ9Jt:Jkl;JpJO?JJe@JHwSAJKQJOPDJ|j EJICFJGGJO%JNQJT3JM1JI6J_GJFJa J_ J JAH!JCL JCLJCLJgn JCLJAW3J} JEѕJ} J$JAJCLJCLJ CLJ CLJ CLJFGJHJA`Jp:J]:J^ JhJ Jx JnfJJ JZJ D71J!FsJ$A J'RJ(F dJ+f J,B\J-Ok J0i. J1`fJ2S#3J\^J]CLJ^CLJ_CLJ`CLJaCLJeOPJfOPJhCLJiCLJlMJmH@TJnH@TJpIJsKJti}eJUt}fJMyc MJtq NJD1OJFE,PJHQJZ2RJRHSJq TJM=VJsM XJGKYJK[Jʧ\JPl^JdpR_Jir `JAaJ|BbJ}cJtJCLJCLJCLgJqa JCLJCLJCLJCLmJGnJs4oJqn JCLJCLJCLJCLJCLJCLJCLwJ|{xJJffyJQ.JOP{Jy: |JX}J$i~J&^J)CJ*E J-t/ ~J/OPJ3`Sk |J5CLJ8IHJ9JxJ:IJJ=LuJ@CLtJACLJCr3 JDvk JEu\ 5JHL6JILJKCLJLCL:JNFT;JOI~JhCL*JjIG+JkaJnCL-JpH/JsCLJtCL0JvDG1JwV2JyM3JzO.}4J{J?J|OP6J~]JCL8JPuJCL:JEWJCLCLJ?CLJA^JBCLJCCLJDCLJEN=5JGCLJJC<JLCLJMCLJO@JQCLJRCLJSCLJ~OP$JLWN%JJ&JN"JCL*JM],JTjJOP.JMOJCLJCLJOPJCL3Ju4JA36JZ7JXY8JSy9JtX:Jt@;JtJOir?JJ@JHhAJK;JOPDJ{ EJIFJGGJOJNJT>fJM6fJIJ`JFfJb6 J` J~' J@!JCL JCLJCLJe JCLJAJ~OI JFbJ| Jg\J@=JCLJCLJCLJCLJCLJFTJHJA%JpcJ ]:J c J h" J x JsLJI߀JVJDrJFJB) JRJDE)JGf JHB1 JJN JMgD JN`fJOUVfJP^JQCLJRCLJTCLJUCLJVCLJYOPJZOPJ\CLJ]CLJaMJbH JcH8,JdIZJgKJjf3 }eJPjy}fJCzq MJtTg NJD3OJFPJHaQJYpRJRE,SJp TJLVJsM XJG-YJK[J+\JN^Jc_Ji `JAaJ{ǯbJ{kcJspJCLJCLJCLgJqG JCLJCLJCLJCLmJG?nJgoJp JCLJCLJ CLJ CLJCLJCLJCLwJ{xJMyJPJOP{Jx |JXM}Jj~J^JCJ!FJ${LS ~J&OPJ)_Q |J+CLJ.H]J0JJ1IJ4QuJ6CLtJ7CLJ:s% J;v JL6J?LJACLJBCL:JDF(;JFHZ~NONLCNHiNOP~NCLNG:NYG NC.gNEgN@NCL NGNCLNCL NɣNCLNCLNVNCLNCLNy Nn NCLNCLNCLNt NE&fN{|N{NN8NSRNYNX:!NNs3"Nv33#Nj3$NK`%NP!&NN3'NN|[(NB/NCL*NIT+N\bbNCL-NH]NCLNCL0NC1NUrc2NMD3NN;4NK 3N,OP6N.]N/CL8N2PN4CL:N6EN9CLOPN@CL@NCU ANDMBNEDwNGCLNICLENKX*+HNNPWINP^ JNQ@* KNTH@LNV[; NXixB NYixB N[FN\GQN]FRN^ixB N_ixB N`FNaEX-Nc|NdH8NgONI~NLNpNM NEVNON}ȈNLZ NM Nd NN!ND>NCLNG^NDF-NOPNCLNCLNCLNCLNCLNCLNCLNYgNNgNlgNNANBNCLNCLNCLNCLNCLNCLNCLN^NCLNCLNCLNN2`NCLNCNCLNCLN@gvNCLNCLNCLNOP$NLVe%N J&N N4NCL*NMs,NSNOP.NM2NCLNCLNOPNCL3Nu4N A36N#R37N$P8N%O9N'szX:N)jff;N*qgN-O#t?N.J@N/HYKANXK'NYOPDN\|& EN^IFN_GEGN`P]NcO^gNdTNeM3NiHHNj_cHNkFJNlb6 Nm_ Nn~24 No@!NrCL NsCLNuCLNwj NzCLN|@N}~ N~FN| NHjN@NCLNCLNCLNCLNCLNFNH`NA No:N]:N7 Ni Nx( NnS3NIgNX.NDVNFNA NQ8xNE\Ng NB}NU Nhb" N_fNS N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNMSNH)NH0NINKNg}eNZ }fJ:z|( MN8t+ NN:DVON;E[PNENbGFN|GNb(HNP LN~>MN{NNHzON xH PN vI QN IRN STNMmUNLMDVNJGNOPNCLYNHZNC:NOPNCL]N},l ^NZݪN OPN"CLaNMMNNOPNPCLdNRJmNTOPfNV^NWCLhNZLiN]Uk~N_OPkNaY] lNbOffmNcN =nNfI&foNgf>pNiZR qNjT rNkV( sNlNfqtNmNuNoE%NpOPNrCLxNt@yNuOzNwLoNxOPNzCL}N}LT~N~ONL NHh_NOP~NCLNGBNY] NCgNH[3NBxNCL NGuNCLNCL NNCLNCLNG`NCLNCLNy# Nma NCLNCLNCLNt]{ NrɚNh6gNmgNOVNPNWNV@!NP@"N|Y#NiL$NK%NP&NN'NNu(NB^NCL*NI_e+N`NCL-NGeNCLNCL0NC1N\2NMv3NN4N JN!OP6N#]N$CL8N'PAN)CL:N+EON.CLNJN?NKJ8@NLHD^ANMK 3NNOPDNQ{ ENRHFNSGGNTPNWO4NXTNYM3N\GN]\5N_FN`a- Na_ Nb} Nc@;!NfCL NgCLNhCLNjf 4 NnCLNp@۶Nq}; NrFRNs|& NuNv@&NxCLNyCLN{CLNCLNCLNFXNI N@PNotN]:N~; NixB Nx( NofNI~ NSNDNF-NAǮ NSNEZNgL NA/NK Ni33 N`iNTN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNM(NH(NH%!N IN KNh}eNuV}}fNz MN+t NN-D_ON/DPN0GQN3Y %RN4R> SN5@=TN6LyVN7sM XN:FYN;Jf[N<|v\N=N^N@d@_NAjUU `NCBaNmzubNnzGcNotNqCLNrCLNsCLgNuqX NxCLNyCLNzCLN{CLmN~GnN|4oNo, NCLNCLNCLNCLNCLNCLNCLwNzGxNL#yNPW NOP{Nx |NXH}Nk.~N]NCNF4(N{ ~NOPN^J |NCLNHNI\NHNNLEuNCLtNCLNsw Nuv Nt 5NL 6NLGNCLNCL:NF;NGOPN@CLaNCM(NDOPNFCLdNHJfNJOPfNL^NMCLhNPLiNSTNUOPkNVXy lNWUmNXT33nN[HoN]fofpN_Xk qN`SW rNaTW sNbNZtNcN~uNdENeOPNgCLxNi@yNkM&zNmLMNnOPNCL}NLU~NOTNKNHfNOP~NCLNGnNX= NA1NCfN{NCL NGgRNCLNCL NeNCLNCLNDgNCLNCLNxP Nl NCLNCLNCLNt? NwNkNpNNNP)NUfNT !NH"N|#Nhٙ$NL%NPc&NN ''NNk(N BN CL*N JL+N ^AN CL-N G0N CLN CL0N C1N X2N MM3N Nf4N KBN OP6N ]N CL8N P6RN CL:N EGN #CLBN /DN 1CLN 2CLEN 5SsHN `NIN ai JN bzKN eHh,LN gZO N jixB N kixB N lFN mGN oF/N pixB N qixB N rFݱN sE;N u|N vGҀN yOe!N {IN |LuN oN LVeN @bN L7N }N M N LVeN e N NN FNN CLN F=N DF-N OPN CLN CLN CLN CLN CLN CLN CLN YgN R<N avgN C\N bN AN CLN CLN CLN CLN CLN CLN CLN ]N CLN CLN CLN N3N CLN CmN CLN CLN @N CLN CLN CLN OP$N LMH%N Jj&N L>N CL*N L,N TN OP.N LzN CLN (CLN +OPN -CL3N 0t4N 2Au6N 4L37N 5K8N 6B9N 9r:N ;k;N OP>N ?N?N @J@N AH3AN BJN COPDN Fz[ EN GHFN HGGN IP)N LN>gN MS~fN NLN QGN R^N TEBN UaD N V_+ N W}T N X !N [CL N \CLN ]CLN _h N cCLN @`2N }I N FN { N 9N @dN CLN CLN CLN CLN CLN FN IDN @N oN ]:N ~z N i N x( N r3N IMN SjN DN FxCN BaH N RN ED;N f N AN T N iQ N `3N U<N ^N CLN CLN CLN CLN CLN OPN OPN CLN CLN LN H0N HN IN K{N e3 }eN Qh.}fN{( MN "u. NN %D­ON &Dy:PN 'GQN *XRN +R^!SN TATN UL?VN Vs XN YFYN ZJ[N [nQ\N \O(^N _b%_N `k `N cD4,aN d|#bN e{ǯcN fuLN hCLN iCLN jCLgN lp N oCLN pCLN qCLN rCLmN uHnN x|oN ynJ N |CLN }CLN ~CLN CLN CLN CLN CLwN xxN MyN N>N OP{N wQ |N Xv}N hB~N ] N DI{N F(N |C ~N OPN _Ll |N CLN HpN J85N HN QruN CLtN CLN su N uv N s 5N Lp6N LN CLN CL:N F/;N FOY:N2i`;N3ofN6Nb?N7Jz@N8HAN9J֕N:OPDN={Z EN>HIFN?GgGN@PhNDSfgNEYpNFRgNIE1NJaNtEsNubE Nv`S Nw| Nx~ !N{CL N|CLN}CLNh NCLN@NBUZNFN{ NJ6 N@;NCLNCLNCLNCLNCLNGNIsN@NnuN]6NFv NFv Nx( NqNI#NXFND:NF`ZNBff NPؔNE(Ng NA NO1 NfU N_NRɚN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNLٛNHYNH*NJUNKN@ }eN^}fN {a MNBt0 NNEDONFDt<PNGGQNJXYRNKROSNLr1 TNML?VNOs?w XNQFYNRIح[NS\NTNS^NWd_NXlr `N[D.UaN\|#bN]{zcN^tHN`CLNaCLNbCLgNdp~ NgCLNhCLNiCLNjCLmNmH6nNp|goNqnV NtCLNuCLNvCLNwCLNCLNCLNCLwNypxNK=qyNNRNOP{Nw` |NX}Nk}~N] NDdNFNwQ? ~NOPN_/3 |NCLNHTNJlHNHMNFuNCLtNCLNsk Nu Ns 5NLp6NLANCLNCL:NFb;NF)NV0NU!NM"Nz@#Ncf$NLG%NP&NM'NM(NBsNCL*NI{Q+NYiYNCL-NGXNCLNCL0NB?1NW Q2NL3NNR4NKR8NOP6N]NCL8N1P=N3CL:N5ElN8CLNCLNC NCLNCLN@-SNCLNCLNCLNOP$NLCD%NJP&N JlN CL*NLn,NTNOP.NKuNCLNCLNOPNCL3Nt4NAu6N!E37N"Bs48N#F9N&q:N(i;N)p3N,N(E?N-Jk}@N.HAN/JZN0OPDN3{Z EN\HFN]GGN^PNbUc3Nc[NdT&fNgC Nh`6NjEsNkb Nl`x Nm| Nn~ !NqCL NrCLNsCLNue5 NyCLN{ N|@N}EN~{ NFIN@ANCLNCLNCLNCLNCLNG5DNHN@P5NnN]6N N@-SNx( NmvfNHNVNE1bNFNB NQyYNENh NAW3NN Ni N`YNUN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNLqNHNHNJ77NK{NhT{}eNX}fN{FA MN9t+ NNGJQNAX BRNBRaSNCsF TNDL?VNFsx XNHF&YNII[NJR\NKN^NNb_NOm* `NRC8aNS{.bNT{zcNUtNWCLNXCLNYCLgN\p; N^CLN_CLNCLNCLmNHxnN|C4oNnV NCLNCLNCLNCLNCLNCLNCLwN~=qxNLaHyNNzNOP{Nx |NX_}Ni~N] NDZNF%Nz? ~NOPN^ |NCLNH,NJ^NHNJuNCLtNCLNs} Nu\ NudZ 5NL6NL~NCLNCL:NFT;NE#M NwfNlNrVgNNV8N[N\N[{!NJ@"Nx#Np $NL %NPt&NM'NM (NBPNCL*NIM+NaXONCL-NGNCLNCL0NC1NU2N!L3N"M4N#K1N$OP6N&]N'CL8N*OfN,CL:N.E@N1CLNLM?NMJ^@NNHANOJNPOPDNSz ENUH.FNVGoGNWQ7NZVN[ZN\SN_@FN`]NaENbb Nc`׬ Ne|} Nf~s !NiCL NjCLNkCLNmi NpCLNr O Ns@RNuENv{ NwF|NxK N{CLN|CLN}CLN~CLNCLNG-NHN@:gNntN]6N N Nx( NsVfNHNTSNENF&aNBc NQNF&aNm<8 NA2NT NiH N`NU9N^NCLNCLNCLNCLNCLNOPNOPNCLNCLNLuNHNHϣN JR{NK{Nf }eNw]i[}fN{X MN0t NN2DDON3D[GPN4GymQN8WkRN9RSoSN:rk TN;LEVNF{YN?Iح[NAP\NBNr^NEeu|_NFn8 `RyBaRy}8RbRy~ǯcRyvRy CLRy CLRy CLgRypg0 RyCLRyCLRyCLRyCLmRyH(nRy|4oRynQk RyCLRyCLRy CLRy!CLRy"CLRy#CLRy$CLwRy'xxRy(J8RyRy*PW Ry+OP{Ry,wi |Ry-X}Ry.l#~Ry0] Ry3D#8Ry5F5Ry8r# ~Ry:OPRye\& |RygCLRykHsRylJaoRymH?RypPuRyrCLtRysCLRyvs} Rywuj RyxuV 5RyzLC6Ry{L:Ry~CLRyCL:RyE*;RyE RyCL*RyJW+RybXRyCL-RyGRyCLRyCL0RyC1Ry^2RyL3RyMF4RyK.RyOP6Ry]RyCL8RyO0RyCL:RyDZRyCLRymCLRynCLRyoCLRypCLRyqCLRyrCLRysCLRyt]RyuCLRywCLRyxCLRyyNL^Ry{CLRy~CRyCLRyCLRyr RyCLRyCLRyCLRyOP$RyL5%RyJ;&RyHRyCL*RyLp,RyTRyOP.RyKnRyCLRyCLRyOPRyCL3Ryt4RyAu6RyTf7RyKs38RyNg9RyqS:Ryks4;RyrRyMDž?RyJL{@RyGARyJqRyOPDRyz ERyHkFRyGy^GRyQ*RyTRyZRyRRy~=J Ry_8RyERyb Ryax Ry|oQ Ry~l^ !RyCL RyCLRy CLRy"dR Ry%CLRy'~ Ry(@.Ry)FRy+{in Ry-QRy0 Ry3CLRy4CLRy5CLRy6CLRy7CLRy:G,6RynvLRyA]6RyBU RyC RyDx( RyGm3RyJHVRyLURyMEQHRyNF"RyPAf RySQRyTG.RyWp RyXAKRyYK Ryj3 Ry`RyURy^RyCLRyCLRyCLRyCLRyCLRyOPRyOPRyCLRyCLRyLLRyHeRyHRyJVRyK{Ryis3}eRy-C }fRyv{m MRytq NRyDlORyDhPRyGvQRyW}&RRyRZSRyr# TRyKVRys" XRyFx=YRyIn[Ry^\RyO+a^Ryb_Ryo8 `RyBEaRy|\bRy|qcRyuRyCLRyCLRyCLgRyp w Ry CLRy CLRy CLRyCLmRyGnnRy{4oRym| RyCLRyCLRyCLRyCLRyCLRyCLRyCLwRy!ypxRy"LyRy#O\RyLOP{RyNwwx |RyOZ}RyPix~RyR]RyUCRyVFARyZy ~Ry\OPRy_\(r |RyaCLRydGaRyeJRygHRyjHNuRylCLtRymCLRyose` Ryqu RyrsF 5RytK6RyuLRywCLRyxCL:RyzEV;Ry{G1ORyzcz PRyy{ QRyJ+RRyQETRyLPURyK vVRyJ8RyOPRyCLYRyH]ZRyB)RyOPRyCL]Ryzcz ^Ry_YNRyOPRyCLaRyN~RyOPRyCLdRyJ_CRyOPfRy^RyCLhRyL iRyO"RyOPkRyW lRyRHmRyQffnRyH3oRydpRy^ qRyY rRyZff sRyN$tRyNVuRyDRy OPRy"CLxRy$c yRy%NlzRy'K_Ry(OPRy+CL}Ry.L9~Ry/NyRy0KiRy1H*Ry2OP~Ry4CLRy6ERy9W Ry:CvgRy;ERy<Ry>CL Ry@GnRyCCLRyDCL RyERyFCLRyGCLRyICRyLCLRyMCLRyOx Ryxk7 Ry{CLRy|CLRy}CLRys Ryo|RygRymc3RyNFRyZkRy_Ry]k!RyMٙ"Ry| #Ryk$RyL4%RyP&RyMl'RyN&(RyB3RyCL*RyJ+Ry^ɲRyCL-RyGRyCLRyCL0RyC1RyY?2RyL_#3RyM4RyJRyOP6Ry]RyCL8RyORyCL:RyDYRyCLRyfCLRygCLRyhCLRyiCLRyjCLRykCLRylCLRyn]RyoCLRypCLRyqCLRyrN@RytCLRywCҶRyyCLRyzCLRy RyCLRyCLRyCLRyOP$RyL0#%RyJ2k&RyPRyCL*RyKI,RySTRyOP.RyKRyCLRyCLRyOPRyCL3Ryt4RyAu6RyWs37RyWf8RyR39Ryq:Ryky;RyrRyM?RyJ7@RyGARyJpRyOPDRy{ ERyHdFRyG`GRyQ 6RySRyYfRy RRy z" Ry aRyE|Ryc>k RyaЊ Ry|oQ Ry~24 !RyCL RyCLRyCLRyh RyCLRy~ Ry!@Ry"F!ORy#{LS Ry$Ld Ry%7 Ry(CLRy)CLRy*CLRy+CLRy-CLRy0G+MRy1H`Ry2@?Ry3nxnRy6]6Ry7 Ry8 Ry9x RyAffxRy?LyRy@MGRyBOP{RyCwm |RyDY+}RyEl*1~RyG]RyJCRyLEWRyOx ~RyQOPRyT\ |RyVCLRyYG Ry[J<Ry\H:Ry_JuRyaCLtRybCLRyesP Ryfu| Rygs" 5RyiKd6RyjLûRylCLRymCL:RyoEz;RyCSRy ~eRy b!Ry Q&f"Ry ~&f#Ry n$Ry L;%Ry P1&Ry M'Ry N7(Ry B!Ry CL*Ry Ii+Ry \XRy CL-Ry GRy CLRy CL0Ry Cu1Ry XH2Ry L4:3Ry M&4Ry JtRy OP6Ry ]Ry CL8Ry O Ry CL:Ry DVRy CLRy Xz >Ry ZCLRy [CLRy ]CLRy ^CLRy _CLRy `CLRy aCLRy b]Ry cCLRy CLRy CLRy NH Ry CLRy CҶRy CLRy CLRy  Ry CLRy CLRy CLRy OP$Ry L'%Ry J)&Ry ORy CL*Ry KQ,Ry SjRy OP.Ry K6Ry CLRy CLRy OPRy CL3Ry t4Ry Au6Ry R7Ry Q&f8Ry Qf9Ry pܷ:Ry p ;Ry q4Ry M?Ry J$\@Ry GҪARy J[Ry OPDRy | z ERy HFRy GDGRy PRy SRy Y6gRy RgRy x4e Ry aRy EsRy c[ Ry b[ Ry |` Ry ~ !Ry CL Ry CLRy CLRy g! Ry CLRy ~ Ry @Ry ERy { Ry 'Ry ~ Ry CLRy !CLRy "CLRy #CLRy $CLRy 'G,6Ry (HRy *@8:Ry +no1Ry V]6Ry Wc Ry Xr Ry Yx Ry \pfRy _HHRy `S~Ry aFRy cE{SRy eA\ Ry hS Ry iH7Ry lu Ry m@Ry nOO Ry qhD Ry r^ffRy tT\Ry u^Ry vCLRy wCLRy xCLRy yCLRy {CLRy ~OPRy OPRy CLRy CLRy LGRy IRy I.Ry J9Ry K{Ry f }eRy gv}fRye{ MRy t{ NRy DJORy D PRy GNQRy W-|RRy R^!SRy q3 TRy L"VRy sx XRy FuYRy Iv][Ry 4T\Ry O3^Ry cgy_Ry p `Ry AۙaRy }ubRy |cRy uRy CLRy CLRy CLgRy p0 Ry !CLRy "CLRy #CLRy $CLmRy (GnRy +|oRy ,n't Ry .CLRy /CLRy 0CLRy 1CLRy 3CLRy 4CLRy 5CLwRy 8wHxRy 9LyRy :P4Ry ;OP{Ry Z}Ry ?k}~Ry A]Ry DCRy EERy Hx ~Ry KOPRy N] |Ry PCLRy SGZRy TJ!Ry UHeRy QJ8uRy CLtRy CLRy se` Ry v" Ry s5@ 5Ry Kr6Ry LRy CLRy CL:Ry E;Ry LOPRy@CLRyACLRyCCLRyDCLRyECLRyFCLRyGCLRyJYgRyKNgRytavgRyuxRyvCRyxz(RyzCLRy{CLRy|CLRy}CLRy~CLRyCLRyCLRy]RyCLRyCLRyCLRyN;RyCLRyCݑRyCLRyCLRy RyCLRyCLRyCLRyOP$RyL$L%RyJ!&RyNzRyCL*RyK,RyStRyOP.RyK RyCLRyCLRyOPRyCL3Ryt}\4RyAu6RyW`7RyR 8RyP39Ryp:Ryi4;RyqgRyP*?RyJ @RyGɓARyJLuRyOPDRy|oQ ERyHuFRyG9GRyQRyURy[33RyT&fRyv Ry]m6RyE|Ryc Ryb Ry|` Ry}h !RyCL RyCLRyCLRyd Ry CLRy ~ Ry @RRyFRy{LS RyJ* Ry~Ü Ry=CLRy>CLRy?CLRy@CLRyBCLRyEG/RyFHIRyI@RyKn~RyN]6RyO RyP RyQx RyTofRyXHRyYY-RyZFi Ry[E֨Ry]BE Ry`PJRyaH0Rydu Rye@RygN7. RyjhU Ryk^3RylSRym^RynCLRyoCLRypCLRyrCLRysCLRyvOPRywOPRyCLRyCLRyL*RyI RyI:RyJ/RyK{Ryi:}eRy]38}fRy {]| MRytF NRyDORyD PRyG@QRyW"RRyRaSRyqt TRyL?VRyt" XRyFYRyI@[Ry\RyOD^Rydi_Ry q `Ry AZaRy {bRy~zcRyvRyCLRyCLRyCLgRyo RyCLRyCLRyCLRyCLmRyGnRy!|4oRy"nQk Ry$CLRy%CLRy'CLRy(CLRy)CLRy*CLRy+CLwRy.A >xRy/MyRy0NRy2OP{Ry3x"# |Ry4Yp}Ry5k~Ry7]Ry:CRy;ERy?uZ ~RyiOPRyl]J |RynCLRyqGqRysJ$RytHRywGuRyyCLtRyzCLRy}s Ry~v;e Rys 5RyK6RyLRyCLRyCL:RyET;RyMHRy?OP~RyACLRyCERyFVj] RyGD3RyHIRyIAS3RyKCL RyMGBRyPCLRyQCL RyRRySCLRyTCLRyVD_RyYCLRyZCLRy\xe Ry]l Ry`CLRyaCLRybCLRydr RyfD6fRygyRyhA\RykNtRyT>RyZ&fRyWc!RyLf"Ryz@#Ryj3$RyLJ%RyP&RyM'RyN\e(RyB(VRyCL*RyJ +Ry]YRyCL-RyH[RyCLRyCL0RyCSc1RyVc2RyK3RyMH4RyJRyOP6Ry]RyCL8RyN7RyCL:RyDRyCLRyR?RyJ\@RyGȩARyJ:`RyOPDRy|= ERyHFRyG3vGRyP9RySfRyYpRyRPRytT" Ry^{)RyERyd D Ryc/ Ry|R8 Ry} !RyCL RyCLRyCLRy%i Ry(CLRy*~' Ry+@}BRy-F[GRy.{w Ry04Ry3~ Ry6CLRy7CLRy8CLRy9CLRy:CLRy>G4\Ry?IRy@@RyAnnzRyD]6RyE RyF RyGx RyJrɚRyMGRyOTRyPFRyQERySBE RyVRRyWH_RyZv Ry[@}BRy\TC Ryh Ry`RyU9Ry^RyCLRyCLRyCLRyCLRyCLRyOPRyOPRyCLRyCLRyLpRyIRyIKRyJ. RyK{Ryff }eRy0[}fRy}{ MRytF NRyDHORyD PRyGHQRyW RRyRSRyqHF TRyLVRytF XRyF{YRyIC[Ry`-\RyM3^RybX_Ryrc `RyAaRybRy\cRyxRRy CLRy CLRy CLgRy p RyCLRyCLRyCLRyCLmRyGtinRy| oRynR RyCLRyCLRyCLRy CLRy!CLRy"CLRy#CLwRy&wHxRy'NyRyPQRyROP{RySy: |RyTZM}RyUhm~RyW]RyZC}Ry[ETRy_sF ~RyaOPRyd^S |RyfCLRyiGqRyjJ,RylHRyoJouRyqCLtRyrCLRyusǮ Ryvv RywsZ 5RyyKo6RyzLCRy|CLRy}CL:RyI/j;RyM|V*^ Ry?CgRy@HfRyA@RyCCL RyEGRyHCLRyICL RyJORyKCLRyLCLRyOPxRyQCLRyRCLRy|y Ry}m RyCLRyCLRyCLRyr Ry@RywgRy@fRyNV8RyZRy`Ry`\*!Ry[f"Ry@#Ryof$RyLWN%RyP&RyM'RyNn(RyBEaRyCL*RyI+Ry[?GRyCL-RyH*RyCLRyCL0RyB1RyV3a2RyK3RyM64RyJCRyOP6Ry]RyCL8RyNtRyCL:RyDRyCLRyRN?Ry I>@Ry GɓARyJ/RyOPDRy} ERyHZFRyG4^GRyPRySRyYIRyRfRyr Ry `]Ry!ERy"dc Ry#c/ Ry$|C Ry%}u% !Ry(CL Ry)CLRy+CLRy-d/ Ry0CLRy2 O Ry3@RRy4F~Ry5{/ Ry7Ry:~l^ Ry>CLRy?CLRy@CLRyACLRyBCLRyEG<RyFI RyG@@VanqRVa]6Va @AVa @AVa x VarVaGVaWV)VaG&VaEVaB=q VaQVaHeVaw_ Va@gvVa M Va#i Va$`fVa&UVa'^Va(CLVa)CLVa*CLVa+CLVa,CLVa0OPVa1OPVa3CLVa4CLVa7KVa8IVa:IVVa;J. VafK{Vaiff }eRy7A|}fRyu{7 MVat{ NVaDOVaE14PVaGb@QVaWRVaRSVaq TVaLVVat XVaF?YVaI33[VaR\VaO^Vae _Var `VaA33aVa{ bVa}cVau\VaCLVaCLVaCLgVap8T VaCLVaCLVaCLVaCLmVaGHnVa|oVao8> VaCLVaCLVaCLVaCLVaCLVaCLVaCLwVazfgxVaL\yVaN.VaOP{Vay* |VaY'U}VajuF~Va]VaC\VaEVas ~VaOPVa]j |VaCLVa-GVa.JVa/HVa3O?uVa5CLtVa6CLVa8s- Va9v`B Va;sM 5Va=K26Va>LVa@CLVaACL:VaCI;VaDK/7!Va)RY"Va*B#Va,s $Va-Ld%Va.PK&Va/MV'VaXNf(VaYB/Va[CL*Va]IA+Va^a%;VaaCL-VacHGVafCLVagCL0VaiBn1Vaj\9N2ValK3VamM/L4VanJӱVaoOP6Vaq]VarCL8VauOVawCL:VayDVa|CLCVa?CLVaBOPVaC@SVaECLVaFCLVaGCLVaJOP$VaKL%VaLJ-[&VaNK!GVaQCL*VaTKH,VaUT^VaVOP.VaWMVaYCLVaZCLVaOPVaCL3VatE^4VaAu6Vac7Va_8VaT&f9Vap:Vap4;VasVaS)?VaI@VaGAVaJ+VaOPDVa},l EVaHFVaG2GVaPVaRVaYS3VaR<VaqgD Vaa9VaEVae Vac Va|C Va}I !VaCL VaCLVaCLVafb VaCLVaFv Va@RVaFiVa{ Va쬁Va~OI VaCLVaCLVaCLVaCLVaCLVaGBVaIVa@r\VanXVa]6Va@AVa@-SVax VarC3Va GMVa UTVa GJVaEVaB!H VaSVaHVaxP Va@QVaS' VaqUU Va`VaY3Va ^Va!CLVa"CLVa#CLVaLCLVaMCLVaQOPVaROPVaTCLVaUCLVaXKVaYI%Va[Ig5Va\J3Va_K{Vabff }eVaGt}fVa8{s MVat7K NVaDgOVaEFPVaGQVaVRVaROSVapX TVaL+VVat XVaFDYVaI6[Va|v\VaN'^Vacƕ_Vasq `VaAaVaA}qbVaC\cVa{VaCLVaCLVaCLgVao VaCLVaCLVaCLVaCLmVaGnVa|oVaob5 VaCLVaCLVaCLVaCLVaCLVaCLVaCLwVaAxVaKyVaQLVaOP{Vay6 |VaZ}Vai'~Va]VaC7VaEVaup ~VaOPVa!]J |Va#CLVa&G.Va'K>Va(HVa,JB.uVa.CLtVa/CLVa1se` Va2v`B Va4s 5Va6K6Va7LVa9CLVa:CL:VaU?Va?FTVaBCLVaCCLBVaE@CVaGFDVaHCsEVaJ~FVaKzfgGVaLeHHVaMM LVaNr\MVaOjNVaxB\OVa{},l PVa||5! QVa}JRVaO{TVaKxUVaJVVaJ=VaOPVaCLYVaH@ZVaA$ZVaOPVaCL]Vay@Y ^Va[VaOPVaCLaVaN UVaOPVaCLdVaJPVaOPfVa^VaCLhVaJiVaVVaOPkVaU lVa\mVaX=qnVa} oVadpVa] qVaWH rVaX sVaNktVaN(uVaC4VaOPVaCLxVa@yVaMWuzVaKxVaOPVaCL}VaK~VaMzSVaKVaHwVaOP~VaCLVaF~VaU VaCAVaJ@VaAVaCL VaG0VaCLVaCL VaVaCLVaCLVaDVa CLVa CLVaxP Vam8 VaCLVaCLVaCLVarז Va@|YVaAqVaByc4VaENZ VaG]LVaHc\VaId:!VaJNg"VaKw#VaLhٙ$VaMLq%VaNPH&VaONj'VaPN(VaQBqVaSCL*VaUJZ+VaV])VaYCL-Va[GVa^CLVa_CL0VaaB=1VabXb2VadK3VaeM(4VafJVagOP6Vai]VajCL8VamO4VaoCL:VaqDVatCL VaixB VaHVaF;Va} VaI"dVaO/VaI9VaLŎVamyVaLzVaBVVaOyVa|VaLdVaL{Vafn VaM֯VaEVa CLVa G^Va FVaOPVaCLVaCLVaCLVaCLVaCLVaCLVaCLVaYgVaP\Va`0VaAVaQ.VaAVa!CLVa"CLVa#CLVa%CLVa&CLVa'CLVa(CLVa)]Va*CLVa+CLVa,CLVa.N@Va0CLVa2CVa4CLVa5OPVa7@JeVa:CLVa;CLVaVaSn?VaIe@VaG4AVaJ2kVaOPDVa|& EVaHFVaG.GVaPRVaSpVaYVaSfVapH Va`GVaE7Vae Vad Va|C Va}: !VaCL VaCLVaCLVai VaCLVa@uVaAeVaF/Va|C Va@bVa~24 VaCLVaCLVaCLVaCLVaCLVaG<VaIVa@VanVa]:Va@Va@C Vax VaoVaGVaXVVaGVaFVaB@ VaPKVaIn^Va y] Va @C Va S' Va6h Va7`ɚVa8T\Va:^Va;CLVaCLVa?CLVaCOPVaDOPVaFCLVaGCLVaJKІVaKI'VaMIrVaNJ6NVaQKVaRi+}eVaz}fVa1{ MVat+ NVaDBOVaEYPVaGJQVaW URVaRSVaq TVaLFVVat\ XVaFYVaH[Va \VaQh^Vad_VasU `Va@aVa}GbVa*cVaugVaCLVaCLVaCLgVao VaCLVaCLVaCLVaCLmVaF>nVa|oVaoE VaCLVaCLVaCLVaCLVaCLVaCLVaCLwVa@QxVaPyVaPVaOP{Vaxc |Va Y1}Va i2~Va ]Va C"Va F 5Va { ~Va OPVa ] |Va CLVa GˆVa KVa HVa IuVa CLtVa CLVa !s Va "v`B Va $sD 5Va &K6Va 'LVa )CLVa *CL:Va ,E];Va -H:!Va :I"Va ;o#Va <`L$Va =L6%Va >P&Va ?N 'Va @N~(Va AB6Va CCL*Va EJh+Va FZ*Va ICL-Va KG'Va NCLVa OCL0Va QB1Va RW2Va TKmO3Va UM$\4Va VJgVa WOP6Va Y]Va ZCL8Va ]O0qVa _CL:Va aDVa CLVa EVa CLVa FVa DF-Va OPVa CLVa CLVa CLVa CLVa CLVa CLVa CLVa PgVa O Va YgVa AVa QVa D4Va CLVa CLVa CLVa CLVa CLVa CLVa CLVa ]Va CLVa CLVa CLVa !NCVa #CLVa &CVa 'CLVa (CLVa T@Va WCLVa XCLVa YCLVa [OP$Va \L%Va ]J)&Va `H%Va cCL*Va fKI,Va gTVa hOP.Va iMVa jCLVa kCLVa nOPVa pCL3Va st!4Va uAu6Va wSfg7Va xHf8Va yRg9Va |pc:Va ~uy;Va sٙVa S ?Va I@Va G3AVa J+/Va OPDVa |C EVa HFVa G$GVa PVa RlVa XPVa Q|Va p9 Va ^Va FVa f Va d Va |R8 Va }: !Va CL Va CLVa CLVa d Va CLVa @bVa At@Va FVa {/ Va գVa ~# Va CLVa CLVa CLVa CLVa CLVa G7Va I1Va @VVa nVa ]6Va  Va @AVa x Va o)Va G Va TFVa H5Va FVVa A\ Va #RVa %J'Va ({ Va )@4Va *KR Va -i3 Va .`c3Va /V@Va 0^Va 2CLVa 3CLVa 4CLVa 5CLVa 6CLVa 9OPVa ;OPVa =CLVa >CLVa AK Va BI&Va CIuVa DJ5eVa HK{Va Ih =}eVa g_ }fVa !z MVa t NVa DDOVa E PVa GQVa VRVa ROSVa p- TVa K:VVa s XVa FYVa H [Va By\Va N^Va dw_Va t* `Va @aVa ~\*bVa @ cVa w(Va CLVa CLVa CLgVa o Va CLVa CLVa CLVa CLmVa FHnVa |ɚoVa n_ Va CLVa CLVa CLVa CLVa CLVa CLVa CLwVa vxVa KzyVa Q\)Va OP{Va xi |Va XM}Va h~Va ]Va BMVa FCNVa z)B ~Va OPVa \q |Va CLVa GVa LjVa HVa N\uVa CLtVa CLVa rk Va v" Va r: 5Va Ko6Va MTVa HCLVa ICL:Va KC;Va LG>F^Va@CL-VaBFVaECLVaFCL0VaHBN1VaIVخ2VaKKT3VatM4VavK]VawOP6Vay]VazCL8Va}O):VaCL:VaD̘VaCLCLVa?CLVaANJ4VaCCLVaECyVaGCLVaHCLVaJ VaMCLVaNCLVaOCLVaQOP$VaRLu%VaSJ%g&VaVGVaYCL*Va\KJ,Va]TVa^OP.Va_NVaaCLVabCLVadOPVafCL3Vait4VakAu6VamQ37VanMg8VaoIf9Varp:Vatpf;VausVaSG?VaI@VaGAVaJ#;VaOPDVa|C EVaH{FVaGGVaP4VaRgVaXvfVaQ|Van VaaVaEVagX VaejU Va|R8 Va}: !VaCL VaCLVaCLVai VaCLVa@VaAeVaGgVa{ VaLu Va~ VaCLVaCLVaCLVaCLVaCLVaG>SVaI7Va@VVanVa]6Va)b Va@Vax Va pVaG|'VaZ2VaHVaGJYVaBG VaQNVaJVa|& Va@&VaU Va j"" Va!`3Va"UpVa#^Va%CLVa&CLVa'CLVa(CLVa)CLVa,OPVa.OPVa0CLVa1CLVa4KVa5I&Va6IzFVa8J8 Va;K{VaGu;Va?FVaBzVaC\VaCLVaCLVaCLVa$CLVa%CLVa&CLVa'CLVa(]Va)CLVa*CLVa,CLVa-NR%Va/CLVa2CVa3CLVa4CLVa6 Va9CLVa:CLVa;CLVa>OP$Va?LC%Va@J!&VaBH\VaECL*VaHKL,VaIUXHVaJOP.VaKN<|VaMCLVaNCLVaQOPVaRCL3VaUs4VaWAu6VaZSS47Va[Hs38Va\Ol9Va^p1:Vav3;VaryVaT?VaIm@VaGaAVaJ#;VaOPDVa|C EVaHdFVaGSGVaPKVaU Va[3VaTLVanNp Vab VaE*Vah Vaf 4 Va|R8 Va},l !VaCL VaCLVaCLVae VaCLVa@VaAHVaFݱVa{ Va4nVa} VaCLVaCLVaCLVaCLVaCLVaGJVaIAVa@Vany$Va]:Va7 Va@-SVax Var3VaGwVaSVaHVaF9VaB VaSVaJg8Va } Va @Va MZ VahY Va`fVaR3Va^VaCLVaCLVaCLVaCLVaCLVaOPVaOPVaCLVa CLVa#K^Va$I gVa&I}Va'J/VaRK{VaUe }eVa|}fVa3z88 MVast( NVauDOVavE5PVawGQVazVRVa{R#SVa}p- TVa~KVVas[ XVaFYVaH[Va \VaM^Vae.I_Vat `Va@TaVa~bVa@34cVavVaCLVaCLVaCLgVao| VaCLVaCLVaCLVaCLmVaF~nVa{oVan't VaCLVaCLVaCLVaCLVaCLVaCLVaCLwVaxxVaI)yVaOVaOP{Vaw |VaY~}Vaj/~Va]VaBgVaFVay]w ~VaOPVa\ |VaCLVaGVaLZVaHVaHgpuVa!CLtVa"CLVa$rW Va%vZ Va'r 5Va)K6Va*MVa,CLVa-CL:Va/JP;Va0E"FVa>kGVa?e(HVa@M LVaAERMVaBCNVaCPO\OVaF~Ü PVaG}~ QVaHJRVaJNţTVaLKbUVaMJVVaNJNVaOOPVaQCLYVaSHs<ZVa|A$ZVa~OPVaCL]Vaxt ^Vaa\VaOPVaCLaVaOVaOPVaCLdVaJ%gVaOPfVa^VaCLhVaI\iVaS1VaOPkVaU lVak(mVa_nVa}) oVac܋pVa[aH qVaT rVaU sVaN/tVaO)uVaCXVaOPVaCLxVa@yVaQ zVaK?mVaOPVaCL}VaK~VaLHVaKtVaGVaOP~VaCLVaF7 VaUo VaFVaK3Va@{3VaCL VaGVaCLVaCL VaX@VaCLVaCLVaCVaCLVaCLVaw3 Valf; VaCLVaCLVaCLVa rb Va gVa l|Va p VaNVaWLVa\8RVa[J>!VaFY"Vat3#Vabٚ$VaLu%VaP&VaN'VaN#(VaDBXBVaFCL*VaHJS+VaI[#VaLCL-VaNGVaQCLVaRCL0VaTBE1VaU^D2VaXKC]3VaYM4VaZJVa[OP6Va]]Va^CL8VaaNYVacCL:VaeEGVahCLUcVa?OP.Va@NXVaBCLVaCCLVaEOPVaGCL3ZIt 4ZIAu6ZI Y7ZI y8ZI o9ZIpv:ZIw;ZIs,ZITr?ZIIû@ZIGAZIJFZIOPDZI| EZIH0FZIG GZIPZI#T0ZI$ZZI%SZI&mU ZI*abZI+E7ZI,h ZI-f/ ZI.|R8 ZI/},l !ZI2CL ZI3CLZI4CLZI7f ZI:CLZId@ZIeAHZIfFmZIg{in ZIhgZIi} ZIlCLZInCLZIoCLZIpCLZIqCLZItGMZIuIEZIv@ZIwnoZIz]:ZI|)b ZI}@4ZI~x ZIofZIGZIYZII ZIF7ZIB ZIQ`ZIJwZI} ZI@ZIQm ZIh* ZI`3ZIRZI^ZICLZICLZICLZICLZICLZIOPZIOPZICLZICLZIKZZII~ZIIZIJ0ZIK{ZIh^}eZIhM/}fVa$zO& MZIt+ NZIDOZIE'8PZIGQZIVRZIRSZIp TZIKVZI,s?w XZI.FiYZI/I)w[ZI0\ZI1Qo^ZI4c_ZI6u* `ZI7@ۘaZI9}4bZI:~\*cZI;vQZI=CLZI>CLZI?CLgZIBo ZIDCLZIECLZIFCLZIGCLmZIJFLnZIM|loZIOm ZIQCLZIRCLZISCLZITCLZIUCLZIVCLZIWCLwZI[wxZI\JGyZI]PZI^OP{ZI_w |ZI`Z{}ZIak~ZId]ZIgB-ZIEtZIw_ ~ZIOPZI\ |ZICLZIGZIKZIHrZIMuZICLtZICLZIr3 ZIuX ZIrp 5ZIKM6ZIM+ZICLZICL:ZIL>;ZIC ZIsCvgZItF{3ZIu~ZIwCL ZIyGZI|CLZI}CL ZI~|ZZICLZICLZICpZICLZICLZIw ZIl ZICLZICLZICLZIrR ZIy33ZIefZIj33ZIM4ZIUBZIZs4ZIY8R!ZIF"ZIp33#ZIf$ZILu%ZIPpe&ZIN1'ZIN|[(ZIBZICL*ZIJ+ZIXtZICL-ZIGJZICLZICL0ZIA"1ZIY?2ZIK33ZIM4ZIJɒZIOP6ZI]ZICL8ZINYZICL:ZIEZZICLixB ZI?IZZI@FZIB} ZICH:ZIFOPPZIHHZIILûZILr ZINLZIOBVZISLvZIUz@ZIVM ZIWM$\ZIXe] ZIYMZIZE,ZICLZIFWZIDF-ZIOPZICLZICLZICLZICLZICLZICLZICLZIYgZILc3ZIbpZI} >ZIyZI|\ZICLZICLZICLZICLZICLZICLZICLZI]ZICLZICLZICLZIN@ZICLZICZICLZICLZI ZICLZICLZICLZIOP$ZIL%ZIJ$&ZIOOZICL*ZIKV,ZIVkZIOP.ZINZICLZICLZIOPZICL3ZIt 4ZIAu6ZID37ZIBL8ZIC39ZIp_:ZIv;ZI sLZI TX?ZI I@ZIGxAZIIZIOPDZI}T EZIHz FZIFGZIPqvZITZIZZISIZIm+ ZI^ZI ENZI!h" ZI#f ZIL|R8 ZIM} !ZIPCL ZIQCLZIRCLZITi\ ZIWCLZIY@QZI[AZI\F?ZI]z[ ZI_[ZIb}; ZIeCLZIfCLZIgCLZIiCLZIjCLZImGEZInIHWZIo@ZIpn;KZIs]6ZIt~; ZIu@&ZIvxt ZIzn3ZI}GZI~TZII:DZIGZIB\ ZIPjZIJOZZI~Ü ZI^ ZIQ ZIh ZI`ZIT\ZI^ZICLZICLZICLZICLZICLZIOPZIOPZICLZICLZIKoZII~ZIIrZIJ,OZIK{ZIhp}eZI_D}fZIz MZItq NZIDOZIE;0PZIGQZI VrRZI!R9SZI"x TZI#KVZI$sM XZI'FyYZI(IE[ZI)\ZI*M^ZI-df_ZI.u `ZI/@aZI1~ bZI3~\*cZI4v\ZI6CLZI7CLZI8CLgZI:p w ZICLZI?CLZI@CLmZICFdnZIF|&goZIGm ZIICLZIKCLZILCLZIMCLZINCLZIOCLZIxCLwZI{{xZI|K\)yZI~SW ZIOP{ZIwu |ZIYR}ZIhu~ZI]ZIBZIEZI{ ~ZIOPZI] |ZICLZIGZIKZIHvZIO#uZICLtZICLZIrx ZIvfg ZIr 5ZIK6ZIM8kZICLZICL:ZIL8;ZIMGZIb(HZIMNe LZIk{MZIeNZIOZIr PZI~24 QZIJRZINl!TZIKNUZIJVZIJ<ZIOPZICLYZIHO ZZI@ZIOPZICL]ZIx# ^ZIacZIOPZICLaZI Q*ZI OPZICLdZIJZIOPfZI^ZICLhZII/iZI@QibZIBOPkZICU0 lZIDt mZIEiffnZIF@oZIJcpZIL^ qZIMWp rZINYW sZION;tZIPO5uZIQCZIROPZITCLxZIV@yZIXL^zZIYK82ZI[OPZI]CL}ZI`K~ZIaLZIbKGZIcG1ZIdOP~ZIfCLZIhFZIkT ZIlDZImG;3ZIn~ZIpCL ZIrGZIuCLZIvCL ZIw ZIxCLZIyCLZITb)ZICLZICLZIw ZIl  ZICLZICLZICLZIqQ ZIt,ZI`&fZId ZIMQZIeZImBZIkfg!ZIE"ZIo#ZI\ٙ$ZILG%ZIPA&ZIM'ZINX(ZIBZICL*ZIJe+ZI` ZICL-ZIFZICLZICL0ZIA1ZIX02ZIK(3ZIM4ZIJZIOP6ZI]ZICL8ZI N#ZI CL:ZI EdZICLLZIAr ZICLZIlBVZIoKpZIrz ZIsM ZItM+ZIue ZIvMZIwE,ZIyCLZI|F ZIDF-ZIOPZICLZICLZICLZICLZICLZICLZICLZIPgZIKiZI_fZIf ZIfZIg\ZICLZICLZICLZICLZICLZICLZICLZI]ZICLZICLZICLZIN@ZICLZICnZICLZICLZI ZICLZICLZICLZIOP$ZIK%ZIJ2k&ZINeZICL*ZIKR,ZIWZIOP.ZIOwZICLZICLZIOPZICL3ZIt'4ZIAu6ZIH7ZIJ8ZI{L9ZIp:ZIu;ZIrZIT 7?ZII@ZIGnAZII\ZIOPDZI}; EZI HUFZI FjGZI PGZI6RZI7WZI8Q3ZI9lH ZI<`mCZI=EjZI>i= ZI@g>? ZIA|5! ZIB} !ZIECL ZIFCLZIGCLZIIg>? ZILCLZIN~z ZIP@ZIQF!OZIRz7 ZIS_{ZIT}u% ZIWCLZIXCLZIYCLZI[CLZI\CLZI_GOZI`ICZIc ZIemJZIh]6ZIi7 ZIj@JeZIkxt ZIorZIGjZITZIIhZIG5XZIB ZIPZIJ@ZI^ ZIK ZIM.{ ZIpL ZI`fZIVZI^ZICLZICLZICLZICLZICLZIOPZIOPZICLZICLZIK?ZII$ZIICZIJ. ZIK\ZIf }eZISL.}fZIz} MZI u " NZI D"OZI EPZI GQZI VgRZI RSZI AKTZI K:VZI s XZI GKYZI IV>[ZI x\ZI !O^ZI $c_ZI %uV `ZI 'BحaZI )|*bZI *|qcZI +u.ZI -CLZI .CLZI /CLgZI 1p( ZI 3CLZI 5CLZI 6CLZI 7CLmZI bGnZI e|0oZI fmӄ ZI hCLZI jCLZI kCLZI lCLZI mCLZI nCLZI oCLwZI ryxZI sMuyZI uR{ZI vOP{ZI ww |ZI xZ}ZI yi~ZI {]ZI ~CRZI FIZI xt ~ZI OPZI ] |ZI CLZI GZI KZI Hv!ZI G*uZI CLtZI CLZI r{ ZI vfg ZI r 5ZI KQ6ZI MGZI CLZI CL:ZI M;ZI OFZI xGZI UQHZI L LZI fgMZI `ǯNZI z4OZI K PZI  QZI JRZI N2`TZI KCUZI JVZI J&ZI OPZI CLYZI H#ZZI @ZI OPZI CL]ZI xH ^ZI aZI OPZI CLaZI )Q ZI *OPZI -CLdZI /IZI 1OPfZI 3^ZI 4CLhZI 6I6iZI 7PstZI 9OPkZI :U  lZI ;pHmZI ZI TF;ZI V|eZI WHI>ZI ZOW@ZI \HZI ]LûZI `r ZI bL7ZI cBVZI fRZI iz ZI jLc&ZI kM1 ZI le ZI mMxZI nDZI pCLZI sG^ZI vDF-ZI xOPZI zCLZI {CLZI }CLZI ~CLZI CLZI CLZI CLZI bZI G6gZI YgZI MHZI gpZI gZI CLZI CLZI CLZI CLZI CLZI CLZI CLZI ]ZI CLZI CLZI CLZI N>ZI CLZI CZI CLZI CLZI @ZI CLZI CLZI CLZI OP$ZI K$%ZI J<&ZI M5ZI CL*ZI KP2,ZI WwZI OP.ZI OmZI CLZI CLZI OPZI CL3ZI s4ZI Au6ZI lg7ZI k48ZI g9ZI p:ZI t3;ZI pZI T_H?ZI !In@ZI "GfyAZI #IrZI $OPDZI &~ EZI (H?FZI )FGZI *P)VZI .QZI /VfZI 0P4ZI 1kW ZI 4akZI 5EEZI 6i ZI 8gX ZI 9|& ZI :|& !ZI =CL ZI >CLZI ?CLZI Aju ZI DCLZI F} ZI H@ZI IF ZI Jz ZI LZI O}I ZI RCLZI SCLZI TCLZI UCLZI WCLZI GZI I.ZI r ZI ms~ZI ]6ZI U ZI @XZI x ZI nZI GZI Q%ZI IZI Gr/ZI B!H ZI Qr"ZI I|ZI @ZI  ZI U7 ZI q ZI aPZI WZI ^ZI CLZI CLZI CLZI CLZI CLZI OPZI OPZI CLZI CLZI Kx;ZI I$ZI IZI J-8ZI K\ZI gH}eZI L^}fZI z MZI tE NZI D OZI EIsPZI G|SQZI VΜRZI RSZI A/TZI L}VZI s XZI GnYZI I^[ZI  \ZI N^ZI dX_ZI v9 `ZI HDmaZI I}bZI K~cZI LvZI NCLZI OCLZI PCLgZI Rp; ZI TCLZI VCLZI WCLZI XCLmZI [HnZI ^|YoZI _m ZI aCLZI bCLZI dCLZI eCLZI fCLZI gCLZI hCLwZI k|xZI lPyZI nS{ZI oOP{ZI pw |ZI qY }ZI rh+~ZI t]ZI wDZI yFIZI |vt ~ZI ~OPZI ^ |ZI CLZI GyZI K7ZI HlZI MUuZI CLtZI CLZI r;d ZI v ZI qT 5ZI K`6ZI M_ZI CLZI CL:ZI L:;ZI LY sZI?NitZI@OQ8uZIAD7ZIBOPZIDCLxZIFAlyZIHIRzZIIK ZIKOPZIuCL}ZIxK~ZIyL`ZIzK]ZI{GZI|OP~ZI~CLZIG-aZIT ZIBxZIEZI|gZICL ZIG̶ZICLZICL ZI߆ZICLZICLZIFxCZICLZICLZIw| ZIlT ZICLZICLZICLZIr+ ZIr ZI^)ZIb,ZIJZITZI[ZIZz!ZICg"ZImY#ZI^$ZILd%ZIPG8&ZIM'ZIN9(ZIA>ZICL*ZIJS+ZI]f_ZICL-ZIGgZIOPZICL0ZIB1ZIVD2ZIKM3ZIM 4ZIJ|ZIOP6ZI]ZICL8ZINZICL:ZIEZZICLZIfeU ZIgMhZIhCyaZIjCLZImG^ZInEeZIoOPZIrCLZIsCLZItCLZIuCLZIvCLZIwCLZICLZI_ZIM#3ZI^3ZIMHZIMHZIj\ZICLZICLZICLZICLZICLZICLZICLZI]ZICLZICLZICLZINSZICLZICZICLZICLZI@`2ZICLZICLZICLZIOP$ZIK%ZIJK&ZILZICL*ZIKJ,ZIWHZIOP.ZIOZICLZICLZIOPZICL3ZIt =4ZI Au6ZI vY7ZI cL8ZIm339ZIp8:ZIn34;ZIi9ZIT?ZIIR@ZIGVAZIIVZIOPDZI@EZIH8FZIFGZIPZI!PZI"V3ZI#Q0ZI%m1 ZI(^GZI)EOZI*iމ ZI+h ZI,|& ZI-| !ZI0CL ZI1CLZI3CLZI5gL ZI8CLZI:~# ZI;@4ZI{fZI?}: ZIkCLZIlCLZImCLZInCLZIoCLZIrFZIsIjZIvFv ZIxm,_ZI|]6ZI} ZI~@}BZIx ZIr3ZIG#ZIS#ZIIVZIGZIB ZIP9ZIIEZIAxZI ZIL% ZIp ZIaLZIYZI^ZICLZICLZICLZICLZICLZIOPZIOPZICLZICLZIKsZII&ZIItZIJ ZIK\ZIff }eZI>{HV}fZI zP MZIt NZIDOZIEPZIGaQZIVRZIR#SZIt' TZILrdVZItF XZI1GzYZI2Ig[ZI3^\ZI4Oq^ZI8d6_ZI9vUU `ZI;D.UaZI<{bZI=}ucZI>w >ZI@CLZIACLZICCLgZIEpv ZIGCLZIHCLZIICLZIJCLmZIMHnZIQ|oZIRm| ZITCLZIUCLZIVCLZIWCLZIXCLZIYCLZI[CLwZI^}xZI_M{yZI`PGZIaOP{ZIbyt |ZIcX1W}ZIejL~ZIg]ZIjDZZIkF`ZIwS ~ZIOPZI^q7 |ZICLZIG}ZIKZIHYZIN|suZICLtZICLZIqo ZIu ZIr1 5ZIKg6ZIM~ZICLZICL:ZIO[;ZIJEIZI?FtZIA{eyZIBHCZIFOe!ZIHI~ZIILZILr ZINL&ZIO@ZIRLvZITz ZIULw0ZIVMAZIWe  ZIXMV$ZIZBZI\CLZI_F&ZIDF-ZIOPZICLZICLZICLZICLZICLZICLZICLZI_ffZIN9ZIbpZIhZIMHZIg{ZICLZICLZICLZICLZICLZICLZICLZI]ZICLZICLZICLZINHZICLZICZICLZICLZI@nZICLZICLZICLZIOP$ZIK%ZIJ]&ZIJZICL*ZIKCu,ZIX&ZIOP.ZIOڶZICLZICLZIOPZICL3ZIt+4ZIAu6ZIz@7ZIl8ZIp339ZIok:ZIm3;ZIjgZI Th?ZI I<@ZI GLAZII˳ZIOPDZI: EZIH7FZIFŨGZIPؔZIJ#3ZIO33ZII4ZIl ZI a!ZI!EZI"jD ZI#h ZI$| ZI%| !ZIPCL ZIQCLZISCLZIUiQ ZIXCLZIZ~ ZI[@}BZI\FyZI]{ ZI_)=ZIb} ZIfCLZIgCLZIhCLZIiCLZIjCLZImF ZInIZIq)b ZItmZIw]6ZIx7 ZIy)b ZIzx ZI}spZIGhZIQcZIIEZIGXZIB ZIQ'ZIHJZIALZIU ZITu ZIl] ZIaYZIZ)ZI^ZICLZICLZICLZICLZICLZIOPZIOPZIOPZICLZIKmPZII3vZIIjZIIZIK{ZIe&f }eZI_R'-}fZIy MZIt NZI DOZI!F'PZI"GQZI%V9RZI&RSZI's8 TZI)MVZI*vld XZI,GYZI-Id[ZI. \ZI/Od^ZI3d _ZI4vr `ZI6CaZI7~bZI8~cZI9vQZI;CLZICLgZI@po ZIBCLZICCLZIDCLZIECLmZIHH8,nZIL|ɚoZIMoE ZIOCLZIPCLZIQCLZIRCLZISCLZI|CLZI~CLwZIwxZIK=qyZIPZIOP{ZIy- |ZIY#}ZIgC~ZI]ZID. ZIEZI{ ~ZIOPZI_i |ZICLZIGkZIL-ZIHZIG LuZICLtZICLZIs_; ZIwhs ZIu 5ZIKh6ZIMZICLZICL:ZIJ3;ZIH/ZIOPfZI^ZICLhZIHGiZIMZIEOPkZIFTa lZIGr33mZIHi\)nZIIzO\ oZILcMpZIN\ qZIOWR rZIQW sZIRNØtZISOhuZITDqZIUOPZIWCLxZIYB}yZIZPzZI[JZI^OPZI`CL}ZIcKo#~ZIdLN=ZIeK0ZIfGZIgOP~ZIiCLZIkG} ZInT\ ZIogZIpmZIqj)ZIsCL ZIuG'ZIxCLZIyCL ZIz&ZI{CLZI|CLZIY}5ZICLZIOPZIy#; ZIoYO ZICLZICLZICLZIqa ZIvZI`&fZIcfZIIQwZIVGZI]ZI[)!ZIS3"ZIBf#ZIt3$ZILT%ZIP\C&ZIM'ZIN (ZIAݍZICL*ZII+ZI`XZICL-ZIG:ZIOPZICL0ZIB1ZI\~2ZIJ3ZIL!4ZIJ+ZIOP6ZI]ZICL8ZINZICL:ZIElZICLrT*?rI(@rGCArIrOPDrAErH@FrFNGrPrKrPIrK9rjĐ r^rEsrju rhr r| z r|} !rCL rCLrCLrh(# rCLr~] r@C rFr{ ryr}T rCLrCLrCLrCLrCLrFgrIr rmWr-]6r.~ r/}h r0x r3mr6Gr7S6r9Ir:G&rCLr@qX rBurC\ٙrDcrGHrIaqrJh(rKf!rLJff"rM~f#rNkff$rOL%rPP &rQMF'rRMO(rTA rVCL*rWI~+rYbr[CL-rGrOPrCL0rB1rX2rJ3rL4rJ&rOP6r]rCL8rMrCL:rEGrCL<rF=rI\rOPrCL@rQJ}ArK]BrBrCLrCLErHHHrIwIrd~ Jrr+KrH{Lr] rj' rixB rD%rIrEV[rl rj ^ rIrFtr{yrHirLvrI orLArr rLCrB3rS ryrLsrMY?rdD rM6]rBKrCLr G^rDF-rOPrCLrCLrCLrCLrCLrCLrCLrNgrG6grYgrgr!MHr"fzrLCLrMCLrNCLrOCLrPCLrQCLrRCLrS]rUCLrVCLrWCLrXNBrZCLr]Dr_CLr`CLrb@;rdCLreCLrfCLriOP$rjKr%rkJ]&rnHLrpCL*rsK=,rtXruOP.rvP rxCLryCLr|OPr~CL3rs4rAu6rA@7rq@8ris39rn :rkY;rf<rg`rOP>rTj?rI@rG>|ArI?rOPDrB3ErH?FrF7GrPrG\rLrG\rjX r`|rE|rj rhׄ r| z r|` !rCL rCLrCLrhS rCLr~ r@`2rFir{/9 r3r} rCLrCLrCLrCLrCLrFrHr rlr]:r ~ r"},l r#x r&or)G r*PRr+Iar,G!r.B r1P\r3F{r4Bfr7)b r8P r;x{ r^r@CLrACLrBCLrCCLrDCLrGOPrHOPrJOPrLCLrOKp rxI;ryIrzJRr~K{riaH}erR$}frX{r Mrt NrDOrEPrG/QrVrRrRSrq TrLVruw XrGHYrIh[r\rN6^rc`_rw* `rBxPar{ br}crurCLrCLrCLgrp rCLrCLrCLrCLmrGnr|4ornN rCLrCLrCLrCLrCLrCLrCLwrvxrKzyrOrOP{ry |rYW>}ri~r]rCr Fzr y@ ~rOPr^ |rCLrGSr@L3rBHrEOurGCLtrHCLrJt D rLw=q rMs 5rOK)6rPMWrRCLrSCL:rUD;rVDS<rWX%?rYDYr[OPr]CLBr_ACr`FDraCKErc[{FrdhGGre\HrfK LrgVGMrhQ=qNrik8ROrk@Prl@QrmJRrnMNTroKUrpJVrqIbrrOPrtCLYrvF7 ZrwA:%ryOPr{CL]ry1 ^r^rOPrCLarQrOPrCLdrI6rOPfr^rCLhrGxirR rOPkrT lrumrmnry. orcpr] = qrVW rrWp srN̺trOurDSrOPrCLxrByrL>kzrJrOPrCL}rKF~rL$PrKrG(rOP~r CLr GrT rb3rhS3rdrCL rGJrCLrOP rdrCLrCLr"Nr$CLr'OPr*xt r+n r.CLr/CLr0CLr2p r4wr5]gr6er9H9r;W\)r<^pr=\u!r>{ "r?_@#r@Y3$rALy%rBO&rCMѩ'rlM*(rmA9roCL*rqJy+rr]~NruCL-rwH*ryOPr{CL0r}C1r~WɌ2rJ3rL~4rJ)rOP6r]rCL8rM@rCL:rEdrCL<rF5=rI rOPrCL@rQKArKY?BrBIrCLrCLErHHrG)HIr^ JrmjKrHuALr]w rjb ri rDrIΘrEsZrl8 rjD rIrFtr{eyrHgrLvrI\rLrr rLr@rQryBrLlArM`rd rM3yrArCLrG^rF=rOPrCLrCLrCLrCLrCLrCLrCLr XFgr4L r5`3r6MHr7MHr8i\*r:CLrCLr?CLr@CLrACLrB]rCCLrDCLrFCLrGN@rICLrLDrMCLrNCLrP@rSCLrTCLrUCLrXOP$rYKϜ%rZJZ3&r\G.r_CL*rbK6,rcXrdOP.reP rgCLrhCLrjOPrlCL3ros4rAu6rt@7r{s38rf&g9rmo:rh&g;rgg<rcgrOP>rT?rH@rG;ArIrOPDrB[ErH?FrFGrPrIYrN4rIFgrj0 r`XrEOrkZY ri[ r{a r|C !rCL rCLrCLrh rCLr}h r@ArErz rGf r|= rCLrCLrCLrCLrCLr For Hr  r lr ]6r ~OI r }: r x r qr Gr W`:r IRr Gldr BH r O$r F r B%r " O r $Oz r 'l r (`r )Vr *^r +CLr ,CLr .CLr /CLr 0CLr 3OPr 4OPr 5OPr 7CLr cKk~r dI<r eI(r fJr iK\r jBf }er\D}frJ{ݛ Mr t{ Nr DŇOr FEPr GmQr VwRr RSr qt Tr L8PVr s Xr GYr Ic[r \r P9^r d_r wc `r B ar {kbr }cr vr CLr CLr CLgr po r CLr CLr CLr CLmr G9nr |s4or nCLr ?CL:r AF;r BC^`<r CSVY?r DDr FOPr HCLBr JAfCr LE Dr MCGEr OVGFr PjQGr QW\)Hr RK Lr S{RMr To\*Nr UQfOr V@΢Pr W@?~Qr XJ+Rr ZM|kTr [KUr \JVr ]Ir ^OPr `CLYr bFbZr cAOr OPr CL]r y@Y ^r ^"r OPr CLar QM_r OPr CLdr I r OPfr ^r CLhr GJir Vwr OPkr Ta lr umr mffnr z or cpr ] qr W rr W sr N tr Our Dr OPr CLxr Byr Jʯzr J˽r OPr CL}r K82~r Lr K6r G(r OP~r CLr Gnr SQ r ar jgr cr CL r Gnr CLr OP r cr CLr CLr Mr CLr OPr w4 r k r CLr CLr CLr p r vc3r ![r "c&fr $G2r &W>r '^aHr )]!r *I33"r +g33#r T`$r ULe%r VOw&r WN 'r XM(r YAr [CL*r ]J+r ^[Sr aCL-r cHGr eOPr gCL0r iB 1r jVw2r lJ3r mL4r nJr oOP6r q]r rCL8r uMr wCL:r yE]r |CL<r ~F5=r Ir OPr CL@r QRkAr KY?Br B'r CLr CLEr HdHr F"Ir i Jr muKr HuALr ] r ju r i& r DGr Ir EZr l r ju r Ir Fr } r Hzxr O^1r HIr LAr r r LŎr @Br Lvr zr Lor Mgr d r M%r Br CLr Fr DF-r OPr CLr CLr CLr CLr CLr CLr CLr "Ygr #Lr $Ygr %kHr &kHr 'kHr )CLr *CLr +CLr -CLr .CLr /CLr 0CLr 1]r 2CLr 3CLr 4CLr 6NI{r 8CLr :Dr r T?r H@r G5eAr Ir OPDr Bh:Er H@Fr FƐGr Pȷr Gfr Lr Gyr iD r `r Ear k r i| r { r | !r CL r CLr CLr e r CLr }f r : r F(r yz r 8r | r CLr CLr CLr CLr CLr FZ5r H(r c r l9r ]6r }h r }X r xR r oٚr Gr Qr J^r G r B r Qh r Fr CYr ~ r NE r if r `r Ur ^r CLr CLr CLr HCLr JCLr MOPr NOPr OOPr QCLr TKjr VI?Cr WIr XJ#9r [K\r \i}er @d}fr 6z& Mr vtb Nr yDcOr zFnPr {GU6Qr ~VGRr RSr q Tr L)Vr t1 Xr GYr Im[r |v\r N^r cS_r wq `r Aۙar {br }(cr v{r CLr CLr CLgr p; r CLr CLr CLr CLmr Fnr |yor m r CLr CLr CLr CLr CLr CLr CLwr yxr Pyr Or OP{r w |r Y}r i~r ]r CrOr ErvCOmEr@UFrAnGrCWHrDK LrE{MrFo=qNrGQ OrH@PrI@X3QrJJ&RrKMSATrtKUrvJVrwI\rxOPrzCLYr|FyZr}AW3rOPrCL]ry@Y ^r\zrOPrCLarPcrOPrCLdrI :rOPfr^rCLhrG`irVDrOPkrTU lrrRmrhHnrx: orcpr_ qrXu rr[ srN5trOurD1rOPrCLxrBɀyrHhzrJārOPrCL}rK)~rKrKBrGrOP~rCLrGXrSq rY6grfVgr_,rCL rFrCLrOP rc rCLrCLrNW2rCLrOPrvY ri r CLr CLr CLrpv rur[ rbfr>Gr@WrA^prB]!rC@ "rEl#rF[3$rGLZ %rHOX&rIN 'rJM/(rKArMCL*rOJL+rPXrSCL-rUHVFrWOPrYCL0r[B1r\U2r^JN3r_LT4r`J raOP6rc]rdCL8rgMNriCL:rkEZrnCL<rpF=rqIrsOPruCL@rQVArKXVBrBArCLrCLErGeHrDzIro Jrk2nKrH{Lr]+ rj rj' rDrIrEWrm rj rJrFtr} rHMrOyrI~rL#rr rLr@ rLvrz rLqrMk}rcH rM rB]rCLrFrDF-rOPr CLr CLr CLrCLrCLrCLrCLrYgrQ r_rkHrkHrkHrCLrCLrCLrCLr CLr!CLr"CLr#]r$CLr&CLr'CLr(NAr*CLr-DJr/CLr0CLr1 r4CLr5CLr6CLr9OP$r:K%r;JQ&r>PrhCL*rkK,,rlY!HrmOP.rnPNrpCLrqCLrtOPruCL3rxs4rzAu6r}u7r~rf8rm9rl:reL;rjY<rf`rOP>rT.T?rH@rG. ArIrOPDrBk!ErH2+FrFaGrP rIrOvfrIrh raQrDۨrl3 riމ r{H r{ !rCL rCLrCLri rCLr}X r@rFxCry{ rF r|& rCLrCLrCLrCLrCLrFCrHκr rlՖr]6r|` r}X rxR rpFfrGrUrJrH4rBf rNrFarCJr~ rQ r0j] r1`fr2Tr3^r4CLr6CLr7CLr8CLr9CLrOPrACLrDKfrEIArFIrGJ'rJK\rLiH}er['(}fr(y Mrft NrhDOriE*PrjGQrV~RrR#Srq9 TrKqVrs XrGYrIh[r \rQJ^re_rw `rAvarx brz >crurCLrCLrCLgrp rCLrCLrCLrCLmrFtnr|4orm rCLrCLrCLrCLrCLrCLrCLwr@xrKzyrP >rOP{rwL |rY}rk/~r]rCYrEͻrrs ~rOPr_ |r CLr Gr KrHrP<urCLtrCLrq6F ru rr^6 5rJR6rMirCLr CL:r#L|;r&LZ<r'Q?r(Dr*OPr,CLBr.A:Cr/QsDr0C?Er3XFr\kGr]eHr^K Lr_{zMr`nNraR34OrbAPrc@fQrdJ.RreM8TrgKCUrhJVriIrjOPrlCLYrnF/ZroArqOPrsCL]ruyz ^rw`rxOPrzCLar}QZYr~OPrCLdrHrOPfr^rCLhrG4irUrcrOPkrT lrp(mrfznrws3 orcYRpr] qrW rrY = srNtrOZurDrOPrCLxrCyrQC zrJFrOPrCL}rKF~rKrKnCrGrOP~rCLrG`rS r[)rer]frCL rFsrCLrOP rcrCLrCLrMrCLrOPru rh r%CLr'CLr(CLr*pW r,v<r-bfr.br1Fr3W\)r4^Br5\!r6C "r7Bf#r8a3$r9LQ%r:O!&r;N 'rr\CL:r^EWrCL<rFm=rIrOPrCL@rQRkArKUBrB rCLrCLErG:HrBIrk>S JrjuKrHuALr\~g rk. rjb rDrJrErm<8 rkQ rJ%grFffr}%rHO rOrI~rLrr rL~rEVrQXrz rL_rMpreb3 rMrBrCLrFrDF-rOPrCLrCLrCLrCLrCLrCLrCLrYgrR33rYgr kHr fzr MHrCLrCLrCLrCLrCLrCLrCLr]rCLrCLrCLrNCrCLrD r!CLr"CLr$~' r&CLr'CLrPCLrSOP$rTK6%rUJJJ&rXOer[CL*r]K'@,r^Xr_OP.r`Pe3rbCLrcCLrfOPrhCL3rjs4rlAu6rouf7rpm338rqc&f9rtl&:rveg;rwi<rxgfryOP>rzS?r{H@r|G%Ar}Ir~OPDrBErH#FrF7GrP{rArGrB0rhn r]rDҷrl~k ri r{/ r{H !rCL rCLrCLrfm rCLr},l rA{rFqrz rʞ<r| rCLrCLrCLrCLrCLrF0rHr~ rlr]6r{ r}f rxR rmrGrQfrJrHnrB0 rPS,rFrCr!~' r"L r%if r&`ٚr'Vfr(^r*CLr+CLr,CLr-CLr.CLr1OPr3OPr4OPr6CLr9KcNr:IAr;Ir=J'r@K\rAiu}erJa}fryi# Mrt+ NrDOrEpPrGe%QrVXRrRpSrq+ TrKVrsx XrGYrIrx[r\rM^rc_rx9 `rA<ary34brzcrurCLrCLrCLgrp@# rCLrCLrCLrCLmrFnr{ orl rCLrCLrCLrCLrCLrCLrCLwrBǮxrMyrQ\rOP{rv, |rZE]}ri~r]rC?rErxH ~rOPr][~ |rCLrGrKhrHrGkur CLtr CLr q9 rudZ rq/ 5rJ6rM&rCLrCL:rOj;rL<rDQTR?rEDVrGOPrJCLBrLBCrMP.DrNC,ErPTFrQj{GrR[34HrSKE LrT{zMrUnNrVROrWA2PrY@QrZJ0?Rr[MxTr\KUr]J+Vr^Ibr_OPraCLYrcG&"ZrdArfOPrhCL]rjy ^rldrmOProCLarrR+rtOPrvCLdrxHrzOPfr|^r}CLhrFirTrOPkrT lrnpmrd=qnrw orcspr^33 qrW\ rrZ srNtrOurD'rOPrCLxrC'yrPzrJ rOPrCL}rK ~rKUrK>rGrOP~rCLrG} rRϵ rXrfr_,rCL rFqrCLrOP rc1rCLr CLrNmrCLrOPrt rgo rCLrCLrCLrp0 r!tr"[r#br&Er(c=qr)i>r*hW !r+{ "r,d#r-Y@$r.LCD%r/N8&r0N'r1M(r2A;r4CL*r6JE+r7[#r:CL-rOPr@CL0rBB1rCYz2rFJز3rGL4ZIΘZOP6Z]Z CL8Z MZCL:ZEzZCL<ZF/=ZIkZOPZCL@ZQI AZK@BZAZ!CLZ"CLEZ$F/HZ&@PIZ)] JZ*iKZ-Ei+LZ/]+ Z2k) Z3ju Z4DYZ5J%gZ6EVZ7mv Z8kK Z:JBUZ;FX-Ze} ZfH@ZiOe!ZkH@ZlLZor ZqLZtEVZuQQ%Zwz ZyM ZzMzZ{c Z|MZ}AZCLZG^ZDF-ZOPZCLZCLZCLZCLZCLZCLZCLZYgZL3Za)ZMHZfZMHZCLZCLZCLZCLZCLZCLZCLZ]ZCLZCLZCLZNJ4ZCLZD ZCLZCLZ~z ZCLZCLZCLZOP$ZKx%ZJ@&ZN,ZCL*ZK(,ZYVmZOP.ZPZCLZCLZOPZCL3Zsm4ZAu6Z{7Z{8Zbٚ9Zl:Zr@;Znf<Z,lgZ-OP>Z.TB?Z/H@Z0GAZ1IZ2OPDZ3BOEZ4H=FZ5FGZ6PsZ9B Z:GfZ;BC3Z[ZIZJ(ZK =Zic}eZWk}fr y MZs NZDgOZEFPZG@QZV/%RZR#SZph TZKVZr0} XZGtCYZIb[Z |v\Z"O^Z%en_Z&xUV `Z'AFaZ)x.bZ*yqcZ+vaHZ.CLZ/CLZXCLgZZp@# Z\CLZ]CLZ^CLZ_CLmZcFnZf{ɚoZgl ZiCLZjCLZkCLZlCLZnCLZoCLZpCLwZswxZtMyZuO#ZvOP{Zwu |ZyZ}Zzis~Z|]ZC;kZFZwQ? ~ZOPZ]/ |ZCLZGZK"ZHmZM$uZCLtZCLZr>w Zuj Zqw 5ZK 6ZMZCLZCL:ZOR[;ZH<<ZQɶ?ZDZOPZCLBZBCZOuDZC0EZSHFZo=qGZQHZK LZ\(MZONZpQOZAdPZ@QZJ6RZLTZK>UZJVZIZOPZCLYZG-aZZAfZOPZCL]Zx ^Z!d$Z"OPZ$CLaZ'SZ(OPZ*CLdZ,HZ.OPfZ1^Z2CLhZ4FiZ5SlZ7OPkZ8T lZ9pmZ:f33nZ;y oZ>c`pZA\{ qZBV\ rZCX sZDNtZEO=uZFDDžZGOPZICLxZKC yZMM?/zZNJZPOPZRCL}ZTJZ~ZVKJZWKZXG\ZYOP~Z[CLZGCZRt ZVyZbfZ_ZCL ZEZCLZOP ZcZCLZCLZLdZCLZOPZt Zhf ZCLZCLZCLZp w ZofZ^3Z^c3ZEZVffZ\Z[)!ZT"Zl&f#ZU3$ZL3%ZNk&ZN 'ZM<(ZAZCL*ZJI(+ZIZCL-ZHzxZOPZCL0ZBy1ZXS2ZJû3ZL4ZIaZOP6Z]ZCL8ZMcZCL:ZE2Z CL<Z F?=ZIZOPZCL@ZQ2AZK:>BZAg-ZCLZCLEZEHZHIZi) JZgz\KZ"FLZL] ZOk ZPj ZQE ZRJ3ZTETZUm ZVk) ZWJPZXFJZZ|ԢZ[GZ^O^1Z`IZaLdZdr ZgL4ZjEVZkOBNZmy ZnM ZoM}Zpeb3 ZqMZrAZtCLZwG^ZyEDZzOPZ|CLZ}CLZ~CLZCLZCLZCLZCLZYgZG6gZ_,Zg34ZMHZMHZCLZCLZCLZCLZCLZCLZCLZ]ZCLZCLZCLZNBZCLZD ZCLZCLZ} ZCLZCLZCLZOP$ZK%ZJ6 &ZLZCL*ZK,ZYkAZOP.ZQ"ZCLZCLZOPZCL3Zs4ZAu6Zr7ZpY8ZlL9Zl}:ZfL;Zk3<ZcfZ OP>Z!T(?Z"Ha@Z#GAZ$Il2Z%OPDZ&BEZ'HFZ(FGZ)PZ+CZ-I33Z.D6fZ/g Z2`frZ3DglZ4m<8 Z5jp Z6{ Z7{w !Z;CL ZCLxZ@CyZAKNzZBJZlOPZnCL}ZqJ~ZsKZtJZuGKZvOP~ZxCLZzG&"Z}R=P Z~TfZ]Z]ZCL ZE*ZCLZOP ZcZCLZCLZKl>ZCLZOPZt4 Zhm ZCLZCLZCLZo ZoVfZ[4Z^ZEYZWǮZ^Z]!ZA3"Zbٚ#Z]$ZL#c%ZN&ZN S'ZM(ZA5ZCL*ZJ+Z]3ZCL-ZHzxZOPZCL0ZBc1ZWCa2ZJ3ZLn4ZIZOP6Z]ZCL8ZM42ZCL:ZEZCL<ZF>K=ZIZOPZCL@Z Q* AZ K*BZ AoZ5CLZ6CLEZ8EGHZ9F AIZ:o JZ;e8KZ>EA LZ@\ ZCk ZDkQ ZEDZGJPZHEZIm4 ZJk ZKJmZLF;ZN|͓ZOGeZRO;~ZTI~ZULZYr Z[L4Z^EVZ_LvZayFZbM ZcM`Zdeb3 ZeMZfAZhCLZkFZmF=ZnOPZCLZCLZCLZCLZCLZCLZCLZPgZKZcVgZg\ZMHZMHZCLZCLZCLZCLZCLZCLZCLZ]ZCLZCLZCLZNFZCLZD ZCLZCLZ~s ZCLZCLZCLZOP$ZK%ZJ)&ZK{ZCL*ZKj,Z[ZOP.ZQZCLZCLZ OPZ CL3Z s4Z Au6Z q37Z d38Z nٚ9Z l9:Z m;Z rFf<Z k Z OP>Z TU?Z H@Z GSAZ IR&Z OPDZ BEZ G FZ FGZ PZ B&fZ "GfZ #B9Z $g Z '`~MZ (DUZ )m7 Z *jH Z +{in Z ,{Z !Z 0CL Z 1CLZ 2CLZ 4i Z 7CLZ a|} Z br Z cF[GZ dy@Y Z fFEN Z g|R8 Z jCLZ kCLZ lCLZ mCLZ nCLZ qFZ sHŨZ v~OI Z xle-Z {]6Z |z Z }} Z ~xh. Z pfZ GeZ V Z JvZ HZ Bf Z NZ F<Z DMZ ~l^ Z U Z j Z `Z UC3Z ^Z CLZ CLZ CLZ CLZ CLZ OPZ OPZ OPZ CLZ KjZ I=sZ I Z J(Z K =Z x=q}eZ f[L}fZ{z MZ u NZ DOZ EPZ G*QZ U-RZ RSZ @TZ KVZ (s XZ +GKYZ ,If[Z -s\Z .OU^Z 1e_Z 2x `Z 5B{;aZ 6ypbZ 7{\cZ 8wZ :CLZ ;CLZ p w Z ACLZ BCLZ CCLZ DCLmZ GGqnZ J|4oZ Kk Z NCLZ OCLZ PCLZ QCLZ RCLZ SCLZ TCLwZ W|\xZ YJyZ ZOZ [OP{Z \v |Z ]YS}Z ^hĦ~Z `]Z CuZ FZ xe ~Z OPZ ]3 |Z CLZ GZ JnZ HoZ GKuZ CLtZ CLZ r Z v" Z r33 5Z J:6Z MZ CLZ CL:Z I6;Z DW<Z RŐ?Z DXZ OPZ CLBZ BCZ M6DZ CoEZ KFZ oGZ ] HZ J LZ \GMZ RNZ s{OZ AePZ @ QZ JBURZ L݃TZ KgUZ JVZ IZ OPZ CLYZ F(ZZ AZ OPZ CL]Z xt ^Z aZ OPZ CLaZ S#.Z OPZ CLdZ HmZ OPfZ ^Z CLhZ FiiZ QaZ OPkZ S> lZ g=qmZ ]nZ x oZ cpZ "Z qZ $T rZ %W sZ &NxtZ 'OKuZ (DZ )OPZ +CLxZ UC yZ VI zZ XK?mZ ZOPZ \CL}Z ^J3~Z `KZ aJґZ bGZ cOP~Z eCLZ gGJYZ jQ Z kS3Z l^3Z mZZ oCL Z qEZ tCLZ wOP Z xcxZ zCLZ {CLZ }J˽Z CLZ OPZ uS[ Z i Z CLZ CLZ CLZ oj Z oZ [<Z ]gZ E"Z XqZ _ffZ ]\!Z Gfg"Z g33#Z kٙ$Z L%Z N{q&Z N'Z M`(Z AZ CL*Z I˔+Z Z]Z CL-Z HzxZ OPZ CL0Z Bc1Z V2Z J+3Z LlA4Z IDZ OP6Z ]Z CL8Z LZ CL:Z EZ CL<Z FR=Z IpZ OPZ CL@Z Q4AZ K06BZ A{Z "CLZ $CLEZ &DXHZ 'ElIZ (k/ JZ )d9KZ ,xNLZ .] Z 1l5h Z 2kK Z 3EZZ 4J_CZ 5FRZ 6me Z 7k Z 8J|1Z 9FIZ <| Z =GZ @OI_Z BI~Z CLZ Fr Z HL4Z KEVZ LLvZ NyBZ OM Z PMZ Reb3 Z SMZ TBWZ VCLZ F1Z DF-Z OPZ CLZ CLZ CLZ CLZ CLZ CLZ CLZ YgZ NgZ b3Z MHZ MHZ MHZ CLZ CLZ CLZ CLZ CLZ CLZ CLZ ]Z CLZ CLZ CLZ N?_Z CLZ DzZ CLZ CLZ ~# Z CLZ CLZ CLZ OP$Z K%Z J+&Z JWZ CL*Z J,Z Z)Z OP.Z QQZ CLZ CLZ OPZ CL3Z s~'4Z Au6Z ~s47Z l8Z jf9Z l:Z i;Z o <Z i@Z OP>Z T>?Z H@Z G&AZ I8Z OPDZ BEZ GfFZ FGZ P}Z DٚZ JgZ DfZ f Z aZ DCZ m4 Z j Z {LS Z {/9 !Z CL Z HCLZ ICLZ Kev Z NCLZ P| Z R' Z SFZ Tx Z VZ Y|& Z \CLZ ]CLZ ^CLZ _CLZ aCLZ dFZ eHNZ h~OI Z jl9Z m]6Z nzr Z o|& Z pxY Z smZ wGMZ xR%Z yJZZ zHwZ |B5 Z O*Z FpZ DBZ ~OI Z J Z m Z _IZ TZ ^Z CLZ CLZ CLZ CLZ CLZ OPZ OPZ OPZ CLZ Kp Z I<Z IHZ J,OZ K =Z iG}eZ VM}fZ {bu MZ t+ NZDOZE-PZG_QZURZRSZATZKVZrۢ XZGVpYZI_[Z\Z OuU^Z#c{_Z%x `Z'DaZ(x bZ)xcZ*w8RZ,CLZ-CLZ/CLgZ1p Z3CLZ4CLZ5CLZ6CLmZ9Hz^nZ<|c4oZ>k Z@CLZACLZBCLZCCLZDCLZECLZGCLwZJ{RxZKPyZtMZuOP{Zvv% |ZwY}Zxj~Z{]Z~D ZFFZ{ ~ZOPZa) |ZCLZGzZJ?ZHoZLuZCLtZCLZs:^ Zvk ZrK 5ZJ{6ZMn9ZCLZCL:ZG;ZCIN<ZS]=?ZDZOPZCLBZB)CZLZDZBEZWFZwfgGZR{HZJe( LZ\MZR34NZs34OZAPZ@QZJCRZLeTZJUZJVZIZOPZCLYZEZZAt@ZOPZCL]Zxt ^ZacZOPZCLaZRGZOPZCLdZHZOPfZ^ZCLhZFEiZ P͊Z OPkZ S lZ mmZdnZwq oZcOpZ=Z qZ>TL rZ?U sZ@NjtZAO5uZBDRZCOPZECLxZHC6]yZINwzZJJmZLOPZNCL}ZPJ˽~ZRKZSJZTGپZUOP~ZXCLZZG-aZ\Q Z]ZfZ^f9Z_^4ZaCL ZcEdZfCLZiOP ZjcZlCLZmCLZoJfZrCLZuOPZtU Zhk ZCLZCLZCLZo ZcZZ`Za33ZDZLZSZRQ!Z@3"ZiL#Zmg$ZL'%ZN0&ZN %'ZM(ZAݍZCL*ZJ4;+ZbZCL-ZHZOPZCL0ZB8P1ZV2ZJc3ZLm*4ZIKZOP6Z]ZCL8ZL|ZCL:ZE@ZCL<ZE=Z IbZ OPZ CL@ZQ$HAZKBZAZCLZCLEZDnQHZCIZ\ JZbjKZA.LZ!]h Z#l Z$k) Z&E Z'JmZ(FZ)n% Z*l5h Z+JZ,FffZ.{Z/GZ2OZ4HZ6LZ9r Z;LPZ>EVZ?QZiy%ZjM ZkMZld] ZmMZnBWZqCLZtG^ZwDF-ZyOPZ{CLZ|CLZ}CLZ~CLZCLZCLZCLZ_fZP@ZYgZMHZMHZMHZCLZCLZCLZCLZCLZCLZCLZ]ZCLZCLZCLZNFZCLZDzZCLZCLZ} ZCLZCLZCLZOP$ZKy$%ZJ%&ZI$ ZCL*ZJ8,ZZMhZOP.ZQZCLZCLZOPZCL3Zs~4ZAu6Zp7Z]g8Zi&g9Zm:Zj;Zo<ZhZOP>ZT?ZHs@ZFnAZI'tZOPDZBEZGFZF/GZPOZCZHfZCZf" Z1]UFZ2D1Z3n Z4k Z5{= Z6z !Z:CL Z;CLZi ZACLZC{H ZD' ZEEVZFx ZIZZL| z ZOCLZPCLZQCLZRCLZSCLZVE"ZXH;Z[~24 Z]lZ`]33ZazT Zb| ZcxK ZfofZiGZjOZK>ZHZB^ ZPZEZDZ~# ZTi Zmf Z`ZVfZ^ZCLZCLZCLZCLZCLZOPZOPZOPZCLZKsZIDZIZJ0ZKZh}eZIZ}fZ{ MZt{ NZDlOZEQKPZGCQZ UbRZ RYSZ tY TZ KW3VZ r XZGnYZI_[Z'\ZPL^ZeU_Zy9 `ZDaZwbZycZuZCLZ CLZ!CLgZ#p Z&CLZ'CLZ(CLZ)CLmZ,InZ/{ oZ0k Z2CLZ\CLZ]CLZ^CLZ_CLZ`CLZaCLwZd~xZfLyZgMZhOP{Ziv. |ZjZ/}Zki5~Zm]ZqD{KZrF<ZutY ~ZwOPZz] |Z|CLZG|ZJZHsZOuZCLtZCLZse` Zv5@ Zr 5ZJ6ZMRZCLZCL:ZG;ZB<ZS(?ZDZOPZCLBZB?CZK!GDZBEZTFZhHGZYHZJ; LZZzMZOpNZnOZAPPZA bQZJKRZLTZJUZJVZIaXZOPZCLYZEZZAlZOPZCL]Zxt ^Za_ZOPZCLaZRZOPZCLdZHzxZOPfZ^ZCLhZFiZ$OZ&OPkZ'Se lZ(lHmZ)eHnZ*z oZ-bpZ/[L qZ0V\ rZ2W# sZ3NbtZ4OuZ5DZ6OPZ8CLxZ:C~yZ;QMjzZ=JZ?OPZACL}ZCJF~ZEKZFJ,ZGGZHOP~ZJCLZLG-aZOQX ZPPZQ[<ZRZ&gZTCL ZVD̘ZYCLZ\OP Z]cZ_CLZCLZJ+ZCLZOPZu' Zj# ZCLZCLZCLZo[ Zf`Z\ffZb@ZD6ZXZ_W Z]!ZB"Zj#Z\4$ZKR%ZMV&ZN)F'ZM(ZAZCL*ZIA+Z\ZCL-ZHmZOPZCL0ZBF1ZZ2ZJkX3ZLlA4ZIZOP6Z]ZCL8ZKrZCL:ZE]ZCL<ZE=ZIZZOPZCL@ZQ=AZK=BZALNZCLZCLEZ DuHZ A=IZi d JZ`KZkLZ\^ Zll Zk ZE9[ZJ|1ZF/ZnB Zl ZJZFtZ!|VZ"HZ%OZ'IZPLiZSr ZULZXEVZZOOZ\yBZ]M Z^MSZ_d] Z`MZaBuZcCLZfG^ZiDF-ZkOPZnCLZoCLZpCLZqCLZrCLZsCLZtCLZwYgZxG6gZyYgZ{K=qZ|~=qZ}|ZCLZCLZCLZCLZCLZCLZCLZ]ZCLZCLZCLZN=5ZCLZDzZCLZCLZ~OI ZCLZCLZCLZOP$ZKo!%ZJ&ZGZCL*ZJ,ZZZOP.ZQZCLZCLZOPZCL3ZsU4ZAu6Zrf7Ze8Zf9ZmN;:Zn;Zm`<Zl4ZOP>ZT?ZHZ4@ZFAZI#ZOPDZBEZG5FZFGZPëZCZIFgZD#3Z!e Z$aCZ%DZ&nB Z'kh Z({ Z)z !Z,CL Z-CLZ/CLZ1f 4 Z4CLZ6{ Z7@XZ8FZ9x Z;Z>{ ZBCLZCCLZDCLZECLZFCLZIEZJHYZM~# ZOlZS]33Z|z7 Z}|oQ Z~x BCLB,CLB-CLB.CLB/CLB0CLB1CLB3]B4CLB5CLB6CLB7NCB9CLBCLB?CLBA~; BCCLBDCLBECLBHOP$BIKi%BJI&BMH BPCL*BRJ5,BSZBTOP.BUQBWCLBXCLB[OPB]CL3B_sG4BaAff6Bdi7Bepg8Bfj339Bl:BcFf;Bg<Bc3BOP>BS?BH7@BFABHBOPDBC-EBGFBFGBPPBDBI3BDIBe BaeBDBnn Bk) Bz Bz !BCL BCLBCLBii BCLB{ BAKBEBxWc BHbN B{ BCLBCLBCLBCLBCLBEBHB~# BlB]33Bz % B|& Bx- BpBGBVuBK[B HؒB Bf BNW2BEBDB} BT߁ Br* B`3BY3B^BCLBCLBCLB CLB!CLB$OPB&OPB'OPB)CLB,K}B-IBB.IBXJ/B[KB\j}q}eB\r}fZ~{9 MBvt` NBxDOByEPBzGQB~URBRSBr]\ TBKfVBs XBG~4YBID[B O\BQn^Bd_Byc `BBGaBz(bBycBwBCLBCLBCLgBpG BCLBCLBCLBCLmBH/nB{oBl BCLBCLBCLBCLBCLBCLBCLwB~xBOaHyBOBBOP{BwL |BY}Bh~B]BDBEBzr ~BOPB]X |BCLBGBK VBHCB"KuB$CLtB%CLB(s7L B)v" B*s 5B,Jy6B-M-zB/CLB0CL:B2F;B3M<B5Ua?B6DuB8OPB:CLBBB,EB@PHFBAh(GBBN=qHBCIm LBDd\ MBFY > NBGF34OBHAPBIA0QBJJOZRBKL]TBLJְUBMJ}VBNHjBOOPBQCLYBSBcZBTABWOPBYCL]B[x0 ^B_BOPBCLaBRZ1BOPBCLdBH#BOPfB^BCLhBEiBNBOPkBSb lBjHmBcnBx oBc pB^ qBVW rBXf sBNXtBOuBEBOPBCLxBC{yBMhzBJ|1BOPBCL}BJt~BKfBJBGBOP~BCLBG4BP BqBtfBy33BCL BDBCLBOP BcBCLBCLBJBCLBOPBuS[ Bk< B CLB CLB CLBo B]|BRvgBXlBCBLBRBP!BOg"BgY#BY$BK%B M&B!N+'B"N '(B#AfBMCL*BOIG+BPdsBSCL-BUHmBWOPBYCL0B[B?1B\W2B^J23B_Ld4B`ISBaOP6Bc]BdCL8BfJBiCL:BkEV[BnCL<BpF=BqI6BsOPBuCL@BxPMABzKkBB{A&B}CLB~CLEBCBHBG,IBml JB_rKBGnLB] Bm<8 Bl3 BEGBJBF>KBn Bl BJBFJB{̖BGwBLvBI~BM Br BLuBEVBLvBy^BM BMBd] BMB@LBCLBFnBDF-BOPBCLBCLBCLBCLBCLBCLBCLBNgBG6gBYgB_BG B_ > BCLBCLBCLBCLB CLB!CLB"CLB#]B%CLB&CLB'CLB(NBB*CLB-D B/CLB0CLB1~s B4CLB5CLB6CLB9OP$B:KcN%B;I &B>PB@CL*BCJ,BDZKBEOP.BFQBHCLBICLBLOPBNCL3Bxs?4BzAff6B}is37B~[8Be@9Bl[%:B`,;Bd<B`3BOP>BS?BH@BF^ABHBOPDBCO EBGcFBFwGBPXBDIBI3BDIBeui B^=BD Bn$ Bk Bz Bz !BCL BCLBCLBe BCLB{H BAW3BF(Bx0 BB{ BCLBCLBCLBCLBCLBEBHB~# BkoB]33By B| z Bx- BnC3BGBRZBKuBHfBBh BN>BEXBDAYB}h BK B l B `\B YB^BCLBCLBCLBCLBCLBOPB@OPBBOPBDCLBGK~BHI<BIIZBJJ3BNKBOis3}eBe{M}fB({S MBitq NBkDOBlE3PBmFQBpURBqRSBsq TBtKVBus" XBwGYBxIRY[By'\B{PB^Bc1_Byr `BBbaBxzbBwcBu\*BCLBCLBCLgBpG BCLBCLBCLBCLmBG-nB{oBk BCLBCLBCLBCLBCLBCLBCLwBxxBJyBOBBOP{Bwi |BZR<}BjW~B]BCYBEB|& ~BOPB _ |B CLBGu^BJBHezBPuBCLtBCLBsb Bv Bs" 5BJn6B MB"CLB#CL:B%Eѕ;B&LZ<B'V%?B(DgB*OPB-CLBB/Bk!CB0FDB1BEB3T=qFB4gGB5NHB6I LB7d\ MB8Y NB9FpOB:B1PBLETB?JUB@JVBAHխBBOPBlCLYBnB)ZBoABqOPBsCL]Bux0 ^Bw_lBxOPB{CLaB}R BOPBCLdBGBOPfB^BCLhBEiBLRBOPkBSP lBp{mBhHnBw޸ oBbGpB[ qBVB rBWq sBNT.tBOuBEABOPBCLxBC{yBKٺzBJXBOPBCL}BJI~BKVrBJBGBOP~BCLBGCBPn" Br3Bt@By BCL BDBCLBOP Bc-BCLBCLBIBCLBOPBu65 BkM BCLBCLBCLBo B\BP3BW B CB MuB4TB5RaH!B6y33 "B7dY#B8]g$B9K%B:MwX&B;N2g'BE(B>A"B@CL*BAI+BDR^BECL-BGHmBIOPBKCL0BMB1 1BNV2BPJ 3BQLVe4BRI,BTOP6BV]BWCL8BYJZB\CL:B^EGBaCL<BcFR=BdIBfOPBhCL@BkQABlK\BBmAuBoCLBCLEBC>HBE5IB\ JB^-0KBVLB]+ Bm BlR BE9[BJBFLBn Bm<8 BJ BFJB{BG/BOBI~BM Br BLyBEVBQԮBy:BM BMBd] BMB@LBCLBG^BDF-BOPBCLBCLBCLBCLBCLBCLB CLB NgB G6gB YB _B G B _ > B CLB CLB CLB CLB CLB CLB CLB ]B CLB CLB CLB NHB CLB D B CLB CLB !~] B $CLB %CLB &CLB (OP$B )KYK%B *I0&B -OB 0CL*B 3J,B 4ZB 5OP.B 6Q B 7CLB `CLB cOPB eCL3B hsR4B jAff6B lg 7B mfs38B nj9B qkЭ:B s`3;B td<B uagB vOP>B wT?B xG@B yFAB zHNOB {OPDB |C-EB }G3FB ~FaGB P:B FfB LFfB FB d B aB DB n B kd B z B zT !B CL B CLB CLB i= B CLB {/ B A^vB FEB xt B ǬB { B CLB CLB CLB CLB CLB EB HvB ~24 B kB ]33B y{ B {a B xW B qS3B GB PpB KcB HB BJ= B Q#B F6SB DB }R B T B lww B `vfB VfB ^B CLB (CLB )CLB *CLB +CLB /OPB 0OPB 1OPB 3CLB 6KzB 7I7B 9IعB :J3B =KB >hh}eB c}fB{ MB Xt NB ZDOB [E­PB ]FQB `U0RB aRSB bq^ TB cKLVB s XB GQYB IPg[B R\B P^B dU+_B y `B B =aB yQbB x=qcB ugB CLB CLB CLgB p( B CLB CLB CLB CLmB GnB {oB k B CLB CLB CLB CLB CLB CLB CLwB B>xB KLyB O\B OP{B v |B Y}B i(~B ]B C[B EB | ~B OPB \ |B CLB GtvB KrB H\B GuB CLtB CLB sV B u< B rE 5B Jfy6B M B CLB CL:B E;B JS<B Wa?B DQNB OPB CLBB Bk!CB E1DB BEB "XpFB #jGB $f\*HB %I LB 'd{ MB (Y NB )F\OB *B1PB +AUQB TJXRB UL+ TB VJSUB WJVB XHB ZOPB \CLYB ^C6]ZB _AB aOPB cCL]B ex ^B g]2B hOPB jCLaB mQl_B nOPB pCLdB rGB tOPfB v^B wCLhB yEziB {LB }OPkB ~SUj lB nHmB fGnB y oB bΉpB Zk qB U8R rB V sB NKtB OZuB EZB OPB CLxB CμyB IzB JIB OPB CL}B JBU~B KE&B JB GfB OP~B CLB GgB P B r3B s3B y B CL B D|B CLB OP B c+B CLB CLB IB CLB OPB u B i B CLB CLB CLB o B cLB ZgB ^<B !CB #K B %RB &P4!B '~L "B (e3#B )h@$B *K.%B +M[&B ,N0'B -NO(B .AڦB 0CL*B 2J `+B 5B 6CL-B 8HB :OPB B?1B ?Uj2B AI3B BL=4B CIRB DOP6B F]B GCL8B IJB LCL:B NEV[B QCL<B SE=B TIwB VOPB CL@B Q$AB KBB AB CLB CLEB DHB DTIB h JB \KB V LB ]y B m4 B l B EB JB F[GB n B mv B JāB FB |B Gz'B OB I8B M B r B LZ B EVB OB xB M B M&B a B M^B @LB CLB G^B DF-B OPB CLB CLB CLB CLB CLB CLB CLB YB OB _fB I{B L\B I{B CLB CLB CLB CLB CLB CLB CLB ]B CLB CLB CLB NE&B CLB D1B CLB CLB ~] B CLB CLB CLB OP$B KR%B IV&B N3B HCL*B KJ,B LZB MOP.B NR#oB PCLB QCLB TOPB VCL3B Xs[h4B ZAff6B ]fs37B ^`L8B _Z9B bk`Y:B ce3;B dj3<B ecgB fOP>B gS?B hGd@B iFMAB jH%B kOPDB lC'EB mG FB nFMGB oPPIB rEB sK3B tEB ueu B x`B yD B {o B |l3 B }z B ~z7 !B CL B CLB CLB ex B CLB {in B @۶B EB x B I B {in B CLB CLB CLB CLB CLB EB HB ~# B l &B ]33B y{ B { B x B ofB GB VB KB HjB Bf B NB E1B DB }; B K+ Bl B`FfBV3B^BCLBCLBCLBCLBCLBOPBOPBOPB!CLB$KzB%I6/B&IB'J3B+KB,h)}eB ]3}fB {â MBFtb NBHDOBIĘPBJG8>QBuURBvRSBxq9 TByKlVBzr_ XB|G:YB}II[B~`-\BN^Bc׏_By `BAaByaHbBycBvBCLBCLBCLgBpg0 BCLBCLBCLBCLmBGnB|,oBl BCLBCLBCLBCLBCLBCLBCLwByxBK\yBQBOP{Bv |BZ,V}Bjd~B]BCBE<Bua ~BOPB` |BCLBGlKBKBHzxBLouBCLtBCLBr Bv Br 5BJrK6BL BCLBCL:BE;BH<BW?BD4KBOPB CLBB BCB FDBBEBMFBmGBUHBI LB<\(MB=QNB>pOB?BLPBAAIfQBBJVRBCLCTBDJ|UBEJxVBFHBGOPBICLYBKB=ZBLABNOPBPCL]BRx ^BT]KuBUOPBXCLaB[Q ~B\OPB^CLdB`GxBbOPfBd^BeCLhBgEV[iBhV=BjOPkBkS} lBlm\)mBne(nBou oBrbpBt\B qBuW rBvW{ sBwNAtBO.uBEMBOPBCLxBDyBQ0zBJBUBOPBCL}BJ3~BK2BJBG1BOP~BCLBG&"BO< BA3BIBIPBCL BDBCLBOP BcBCLBCLBJ<BCLBOPBtY Bj{H BCLBCLBCLBnT B aB V6gB `9BC<BWRB]ǮB\W !BD"Bs #Be$BKr%BMQ&BN7'BN9(BABCL*BJI(+B uB"CL-B$HB&OPB(CL0B*B1 1B+^"Y2B.Iγ3B/L.P4B0IB1OP6B3]B4CL8B6JIB9CL:B;EsZB>CL<BhFE=BiIBkOPBmCL@BpQ0ABqJBBrA"BtCLBvCLEBxDHByBIBzn JB{\bKB~GLB]y Bn Bll BEdBJ BF[GBoK Bm BJnBFB{BHBOBH6BM Br BL]BEVBLvBxbBM BMB`w/ BM^B@LBCLBG^BDF-BOPBCLBCLBCLBCLBCLBCLBCLBYgBOBc3BN\)BO34BMffBCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBNH BCLBDBCLBCLB~ BCLBCLBCLB1OP$B2KF/%B3I&B6L]B9CL*B;J{a,B<[uB=OP.B>RIB@CLBACLBDOPBFCL3BIs*4BJAff6BM~7BN}@8BOrs39BRk`Y:BTjs4;BUp<BVj BWOP>BXS~?BYG@BZFAB[HB\OPDB]CEB^FFB_FFGB`P/BbDIBcI33BeDfBfd Bi` BjCABko,| Blo Bz Bz % !BCL BCLBCLBh" BCLB{in B BFEBx BC B{Z BCLBCLBCLBCLBCLBEXBHB~# BlE'B]33By@ B{H Bx4 BrBG$BVKkBKqBI#BBf BOBEBDB} BUc Bo B`yBW B^BCLBCLBCLBCLB CLB OPBOPBOPBCLBKz BI4^BI٢BJ/BKBS }eBZ}fB{b' MB`tq NBbDOBcEcPBeG'QBhUdRBiRoSBjpX TBkK"VBls XBnG:YBpIA[Bq|v\BrPdD^Bud6_Bvz `BxAaByzHbB{ycB|v34B~CLBCLBCLgBp8T BCLBCLBCLBCLmBG4nB|c4oBlD BCLBCLBCLBCLBCLBCLBCLwB@xBK\)yBOBOP{Bwu |BZ- }Bl~B]BC]]BEMBwQ? ~BOPBa. |BCLBGgBLAtBHrBP#uBCLtBCLBs Bvm Bs 5BJo6BLBCLBCL:BEG;BGZB<BXm?BDBBOPB$CLBB&B+CB'QJ8DB(BEB*PFB+h(GB,PHB-If LB/ZRMB0PffNB1o\*OB2BjhPB3AMQB4J]RB5K!TB6JmUB7JgVB8H)B9OPB;CLYB=B+ZB?ALBAOPBCCL]BExo ^BG`ZNBHOPBJCLaBMQ|BNOPBPCLdBRGBTOPfBV^BWCLhBYE@iBZVUB]OPkB^S;O lB_qmBinByH oBb~pBZ qBV rBW sBN@tBOuBEOBOPBCLxBDyBPzBJ3BOPBCL}BJ%g~BKBJuBGBOP~BCLBGQBO{ B~BEBEVgBCL BCBCLBOP Bc(BCLBCLBJ3BCLBOPBu65 Bja BCLBCLBCLBnk[ BafBVB`BC BMGBSBRaH!BQ"BH4#Bmg$B Kظ%B MH&B Nt'B N^(B AuBCL*BI+B9BCL-BHBOPBCL0BB8P1BY$2B I3B!L'4B"HB#OP6B%]B'CL8BQJ<BTCL:BVEBXCL<BZF>K=B\HB^OPB`CL@BcQABdJBBeAHBgCLBhCLEBjD%HBl@`_IBop5 JBp\PKBqVZLBr]K BunB Bvl BwEdBxJ ByFiBzB B|me B}JnB~EB{eyBHBOe!BI~BM Br BLu]BEVBPIBy2BM BMSB` BM^B@LBCLBFBDF-BOPBCLBCLBCLBCLBCLBCLBCLBYgBMB_BGHBGHBGHBCLBCLBCLBCLBCLBCLBCLB]BCLBCLBCLBNABCLBDaBCLBCLB~ BCLBCLB CLB#OP$B$K?%B%I&&B(KmB+CL*B-Ji4,B.[oB/OP.B0RZ1B2CLB3CLB6OPB8CL3B:s4BBJSq?BKG@BLFABMJ*BNOPDBOCEBPFFBQFDGBRPlB}D#3B~IlBDBe%\ BaiBCcBoI Blo Bzr By !BCL BCLBCLBe BCLB{Z B@BFBx+ BFB{= BCLBCLBCLBCLBCLBEкBHB~] BlTB]33By B{ Bw Bn6fBG{>BP&tBLjBI8BB8R BPCNBF`ZBDB}f BMiP Bk B`FfBXfB^BCLBCLBCLBCLBCLBOPBOPBOPBCLB KwSB I2B IBJ3BKBi\}eBV]2}fB{tH MBTt0 NBVD?OBWEPBYG WQB\URB]RldSB^q TB_KVB`s?w XBbG~4YBdI@[Be`-\BfM^Bie͛_Bjz* `BlAaBmxbBowcBptBrCLBsCLBtCLgBvp0 BxCLByCLB{CLB|CLmBFnB{oBk BCLBCLBCLBCLBCLBCLBCLwB{=qxBKyBUBOP{BvӠ |BZ .}Bj~B]BC42BEBv4 ~BOPB]/ |BCLBGoBKLBHBF\uBCLtBCLBs\) Bv# Bs;e 5BJR{6BLϕBCLB CL:BE ;BF A<BY?BDJBOPBCLBBBnCBQDBB)EBSFBh >GBVGHBI% LB!aMB"X{NB#sQOB$BPB%AfsQB&J]RB'KTB(JZUB)JcVB*HYB+OPB-CLYB/AZB1AZB3OPB5CL]B7xP ^B9cinB:OPB *CL *CLE *DH *H, I *[} J *ZK *UL *].B  *n}[  *m  *Ed *Jā *FxC *B  *n%  *J *Ef *,{ey *-H *0OPP *2I~ *3L *6r  *8L *;EV *yhp *@M  *AM *BaD  *CM^ *FEʘ *HCL *KG^ *NDF- *POP *RCL *SCL *TCL *VCL *WCL *XCL *YCL *\Yg *]N3 *^` *_GH *`GH *aGH *dCL *eCL *fCL *gCL *CL *CL *CL *] *CL *CL *CL *NB *CL *D1 *CL *CL *A *CL *CL *CL *OP$ *K=% *I& *I *CL* *JX, *[ї *OP. *R{W *CL *CL *OP *CL3 *s64 *Au6 *[7 *T8 *Q9 *kߦ: *o ; *pg< *n *OP> *T? *GJ@ *FA *M *OPD *CE *FƏF *F:G *P94 *V3 *]&f *Ul *e  *] * Cu * of  * l  * zT  *y ! *CL *CL *CL *gX  *CL *{/9  *c  *Eѕ *x:D  *  *#{/9  *&CL *'CL *(CL **CL *+CL *.E */H *Z~24  *\lJ *_]33 *`y{  *b{  *cw  *fsY *iGi *jRE *kL *lIF *nBf  *qP *rFSO *tD- *w}f  *xSpi  *{m  *|a  *}W  *~^ *CL *CL *CL *CL *CL *OP *OP *OP *CL *Kx; *I2 *J *J77 *K *ef }e * U.}fB{ M *s N *DeO *EldP *GQ *UdR *RwS *p- T *K V *r X *GmY *I;[ *C\ *O^ *cV}_ *zUV ` *APga *xLb *wGc *v * CL *"CL *#CLg *%pW *'CL *(CL *)CL **CLm *.Fn *1{o *2k *4CL *5CL *6CL *7CL *8CL *:CL *;CLw *>Bx *?M >y *@UB *AOP{ *Bvu | *D[7} *Ek~ *G] *JC N *KE *N{ ~ *QOP *T^r | *VCL *YGe  *ZK! *[Hh_ *Kjqu *CLt *CL *sR  *wV  *r 5 *I.6 *LJ *CL *CL: *D; *E < *Y ? *D; *OP *CLB *BC *PD *BE *WF *mG *[H *Ht L *gM *]RN *xO *BP *AtQ *J_CR *KWT *JPU *JeV *H.u *OP *CLY *At@Z *A *OP *CL] *x0 ^ *c *OP *CLa *SY *OP *CLd *G}  *OPf *^ *CLh *Ei *T *OPk *R l *pffm *jn *vn o *bGkp * ^ q * Wk r * Z s * N;t * OSu *EX *OP *CLx *D4Ky *Lz *Jw *OP *CL} *Jw~ *J< *J^ *!Gf *"OP~ *LCL *NG-a *PNO  *QDf *RI  *SH4 *UCL *WC *ZCL *]OP *^co *`CL *aCL *cJ *fCL *iOP *lu  *mk< *pCL *qCL *rCL *tn,  *wb@ *xX3 *yaP *|Bӳ *~Nf *U *[\! *wٙ" *c3# *Tf$ *K% *MM& *N!' *NHO( *A *CL* *J)+ * *CL- *H/ *OP *CL0 *B?1 *W2-2 *I3 *L#c4 *HxM *OP6 *] *CL8 *IE *CL: *Ed *CL< *F>K= *Hؒ *OP *CL@ *PA *JزB *A  *CL *CLE *C:H *E=I *s$ J *[bK *^L *ex  *n  *mYk  *E *Jā *FxC *B  *n`*  *JZ *F * {ey *"H *%O;~ *'I~ *(M  *+r  *-L< *0EV *1Lv *3y% *4M  *5M *6a  *8M^ *;Eʘ *=CL *@G^ *CDF- *EOP *GCL *HCL *ICL *JCL *KCL *MCL *NCL *yY6g *zKf *{Yg *|GH *}GH *~J( *CL *CL *CL *CL *CL *CL *CL *] *CL *CL *CL *NF *CL *D *CL *CL *A *CL *CL *CL *OP$ *K8% *I& *G7 *CL* *JSc, *\ *OP. *Ro *CL *CL *OP *CL3 *s4 *Au6 *Y7 *_@8 *PS39 *l&: *i3; *p&g< *gٚ *OP> *S`? *G@ *FbA *N *OPD *C.E *F F *F5sG *PX8 *XFg *^ *Vp *fW  *a d *CƘ *o  *l  *z7  *y@ ! *CL *CL * CL * fE  *CL *zu  *7  *F *wS  * *A{  *DCL *ECL *FCL *GCL *ICL *LE~ *MHj *P~OI  *Rl>  *U]33 *Vy]  *W{  *Xw}  *[m3 *_Gd *`Rʕ *aL9 *bIh *dB0  *gO@Q *hFHq *iE *l}I  *nM  *qqL  *r`ٚ *s[3 *t^ *uCL *vCL *xCL *yCL *zCL *OP *OP *OP *CL *Kz  *I2 *J/  *J5e *K *i{}e *h@}f *{ M *t N *DO *EBP *GQ *UR *RS *p T *K{V *sk X *G|eY *I9 [ *ߨ'\ *Nc^ * dx_ * zq ` *A)wa *yBb *xkc *uR *CL *CL *CLg *pG *CL *CL *CL *CLm *!F|n *$|Yo *&k *(CL *)CL **CL *+CL *,CL *-CL */CLw *2w(x *3Ny *4RB *5OP{ *6vt | *7Z(} *8i'~ *;] *>BZ *?E *Br ~ *lOP *o]3 | *rCL *uGT *vK *wHr *zQu *}CLt *~CL *shs  *whs  *ra 5 *Iu6 *LC *CL *CL: *H; *C[< *ZLw? *D-  *OP *CLB *BnC *N]D *B_E *SGF *}(G *[34H *H L *apM *X34N *rzO *BP *AQ *J`R *KT *JC7U *J_mV *H *OP *CLY *AW3Z *A *OP *CL] *x0 ^ *c4 *OP *CLa *S *OP *CLd *GQ *OPf *^ *CLh *DZi *SƂ *OPk *R_ l *em *_n *tٚ o *b{p *\H q *V r *WG s *N6 t *O>u *EYA *OP *CLx *D- y * Jߋz * J< *4OP *6CL} *8I~ *:J *;JI+ * * S? * G@ * FdA * O * OPD * CxeE * FF * F4G * P4 * U  * [c3 * S3 * f:Y  * a * C * o  * l9  * z  * y# ! * CL * CL * CL * f  * (CL * +zu  * ,K  * -E * .w3  * 0 * 3{  * 6CL * 7CL * 8CL * :CL * ;CL * >E * ?H * B~24  * Dl/ * G]33 * Hy  * I{  * Kw  * Nrf * QGw * RSzS * SLM * TIZ * VBf  * YOV * ZF= * \E/ * _}:  * `Q  * cq  * `vf * Z) * ^ * CL * CL * CL * CL * CL * OP * OP * OP * CL * Kp * I. * JC * J77 * K * f@ }e * 0L&}f *{v M * t N * DO * EP * F9Q * U0R * R~8S * qˈ T * KeV * rS X * G^Y * I[ * u\ * Ot^ * eo_ * z9 ` * A Da * Ab * @c * ~  * CL * CL * CLg * pk * CL * CL * CL * CLm * Fn * {o * kr * CL * CL * CL * CL * CL * "CL * #CLw * &xx * 'M(y * (Op * )OP{ * *v | * +Zv} * UkzH~ * W] * ZB * [E * ^y ~ * aOP * d\ | * fCL * iG[ * jK * kH`i * oG>Fu * qCLt * rCL * ts=  * uwO  * wr 5 * yII?6 * zL * |CL * }CL: * K); * BLP< * Z? * D * OP * CLB * BC * M~D * BE * SHF * mG * VH * H L * _GM * T=qN * r O * BgP * AQ * JaoR * K$T * J>U * J\V * G * OP * CLY * @Z * A * OP * CL] * xt ^ * bE * OP * CLa * S * OP * CLd * GQ * OPf * ^ * CLh * Di * R * OPk * R l * f(m * _n * v+ o * bZ0p * ` q * Yq r * Z s * N1}t * Ou * EO * OP * "CLx * $D- y * %Iz * &I * (OP * *CL} * ,IL~ * .Jې * /J9 * 1Gǣ * 2OP~ * 4CL * 6G * 8NW>  * 9D3 * :Hf * ;G * =CL * ?C * BCL * EOP * Fce$ * HCL * ICL * KJ+ * NCL * QOP * Tt  * Ujo * CL * CL * CL * m  * `s4 * U3 * _ * B * X * _G * ]k! * Hs3" * y# * T9$ * K% * L&& * N#' * N2( * AZ * CL* * Iq+ *  * CL- * H/ * OP * CL0 * B1 * V`2 * Id63 * L4 * H * OP6 * ] * CL8 * Iw * CL: * El * CL< * F7 = * H$ * OP * CL@ * PA * JڄB * @* * CL * CLE * Ci(H * CI * b J * E K * DL * a  * B  * m  * EW * Jn * F * B  * n  * K  * F * { * H * OPP * I~ * M  * r  * L * EV * SQ * yC * M  * HM  * I`  * LS  * MEʘ * OCL * RF * UDF- * WOP * YCL * ZCL * [CL * \CL * ^CL * _CL * `CL * cYg * dM * ed3 * fJH * gO\ * hI * jCL * lCL * mCL * nCL * oCL * pCL * qCL * r] * sCL * uCL * vCL * wNF * yCL * |Da * ~CL * CL * A * CL * CL * CL * OP$ * K+% * Ia& * O^ * CL* * JL, * ]tP * OP. * R * CL * CL * OP * CL3 * r4 * Au6 * gf7 * al8 * Vٚ9 * m: * n34; * v< * pff * OP> * S? * G@ * FA * P * OPD * Cv8E * FUF * F3G * P * T3 * [  * S * f`  *] *C *o  *m  *y  *yl ! *CL *CL *CL *fq  * CL *#z[  *$@ *%E *&w  *(7' *+z  *.CL */CL *0CL *2CL *3CL *6Es *7H@ *:~l^  *CL *@CL *ACLw *DBLx *ELy *FQ. *GOP{ *Hvd | *JZ} *Ki7~ *M] *PCx *QE9 *TuS[ ~ *WOP *Z` | *\CL *_Ge *`Kj *aHm *eJu *gCLt *hCL *jsb  *kwI  *ms 5 *oI.6 *pL *rCL *sCL: *vM2; *N N< *ZV? *D *OP *CLB *BC *LeD *BE *]F *tGG *]=qH *Huf L *^M *TN *rO *BP *AQ *J^R *KT *J1U *JYV *GT *OP *CLY *@Z *A *OP *CL] *xe ^ *aN *OP *CLa *S *OP *CLd *G&" *OPf *^ *CLh *Di *Q *OPk * R6 l * gm * bn * uc o *bVqp *^ q *X r *\ s *N,t *O̥u *E_ *CL *CLx *Dy *Qz *IL *!OP *#CL} *%I\~ *'J. *(J6 *)G’ *+OP~ *-CL */G *1N  *2y *3 *4D3 *6CL *8CL! *;CL *>OP *?c *iCL *jCL *lI *oCL *rOP *utU  *vj *yCL *zCL *{CL *~m  *^Ff *Oc3 *Z *BK *O) *X{ *Up! *K" *},# *_3$ *KM% *L& *N' *NrP( *A *CL* *J+ * *CL- *H/ *OP *CL0 *B 1 *Zs2 *IT3 *L^4 *G( *OP6 *] *CL8 *H *CL: *E *CL< *E= *Hm *OP *CL@ *PA *JĥB *@= *CL *CLE *CScH *AulI *kyt J *a K *@-pL *_  *B  *me  *EZ *Jn *F? *B  *B  *KF *Ef *{T *H *3OPP *5I~ *6M  *9r  *;L *>EV *?P  *Ay% *BM  *CL *Da  *GQ *IEʘ *KCL *NG^ *QDF- *SOP *UCL *VCL *WCL *XCL *YCL *ZCL *\CL *__ *`R< *aavg *bJ *cM > *dM *fCL *gCL *hCL *jCL *kCL *CL *CL *] *CL *CL *CL *N5 *CL *D *CL *CL *@= *CL *CL *CL *OP$ *K%o% *I& *Mc *CL* *JJM, *]V *OP. *R *CL *CL *OP *CL3 *r4 *Au6 *m7 *c&f8 *Jff9 *m؀: *qfg; *w4< *q9 *OP> *T? *G3@ *FA *Rŋ *OPD *CpE *FF *F5sG *PT *U< *[vf *Sp *g_  * a * C * of  *m-  *y{  *y@Y ! *CL *CL *CL *fb  *CL *z?  *@ * F/ *!x  *"GZ  *#zu  *&CL *'CL *(CL *)CL *+CL *.Ei */H~ *2  *\lh *_]33 *`y]w  *a{  *bw  *fq *iG *jW(' *kLn *lI *nB  *qO *rFo *sEP *v},l  *xN  *{v&f  *|aP *}Zf *~^ *CL *CL *CL *CL *CL *OP *OP *OP *CL *Kg *IHW *J( *JG *K *f3 }e *"]}f *j|a M *t N *DO *FCP *FvQ *V/%R *R^!S *@rT *KAhV *rw X *GRY *H [ *o\ *P ^ *e(_ *zV ` *Ca *B޹b *B޹c *A}q *CL *CL *CLg *%pG *'CL *(CL *)CL **CLm *-Hn *0{o *2kI *4CL *5CL *6CL *7CL *8CL *9CL *;CLw *>xx *?K\y *@P4 *AOP{ *Bug | *CZf} *Dj~ *G] *JC *KF: *Nvܹ ~ *POP *S] | *VCL *YGm4 *ZKl *[Hi *^Q$!u *CLt *CL *sL  *v  *r 5 *I!O6 *L *CL *CL: *OL; *M9M< *[Z? *C *OP *CLB *BC *K$D *BE *Q=qF *pG *UH *HO? L *ZM *ON *mO *BP *AQ *J_CR *KT *J#]U *JTV *G *OP *CLY *At@Z *AL *OP *CL] *x:D ^ *` *OP *CLa *S *OP *CLd *G&" *OPf *^ *CLh *D̘i *P *OPk *R_X l *gm *c\n *w= o * a7p * ^ q * X r *XL s *N&t *Ocu *C *CL *CLx *By *Rz *FR *CL *CL} *H$~ *!J *"J *#Gx *$OP~ *&CL *PF *SM  *Ty  *U *VDg *XCL *ZC  *]CL *`OP *acw *cCL *dCL *fI *iCL *lOP *ot4  *pja *sCL *tCL *uCL *xn  *y_p *zQ *{\S3 *~Bz *Jff *P *P8R! *r" *\# *@3$ *K{% *L-& *N#' *Nl( *Al *CL* *J;4+ * *CL- *H *OP *CL0 *BE1 *XY2 *IH3 *L4 *Ge *OP6 *] *CL8 *H *CL: *E *CL< *E= *H/ *OP *CL@ *PA *JZB *A  *CL *CLE *C~H *FI *oU J *M\K *VRL *`6  *B  *n%  *FR *J *F? *B  *B  *K) * Ef *"{! *#H *&O;~ *(I~ *)M  *,r  */L *2EV *3Lv *5yB *6M  *7K# *8`  *;Q *CL *AG^ *DDF- *FOP *ICL *JCL *KCL *LCL *MCL *NCL *OCL *R_p *SNg *}bٚ *~J *O *J( *CL *CL *CL *CL *CL *CL *CL *] *CL *CL *CL *N:R *CL *D *CL *CL *@۶ *CL *CL *CL *OP$ *K'@% *I& *KW *CL* *JJM, *]E *OP. *R+ *CL *CL *OP *CL3 *r4 *Au6 *e,7 *`38 *J9 *n: *s; *t< *u@ *OP> *T!^? *G@ *FA *S8 *OPD *C~E *FF *F7DG *PbP *V\ *\ *T *g:  *an *C *o  *mh  *y  *y#; ! * CL * CL * CL * gJ  *CL *{  *AW3 *F *w  * *z  *FCL *GCL *HCL *ICL *JCL *ME. *OH *P@ *QlT *T]33 *Uy@Y  *V{  *Ww6  *Zsvf *]G *_P" *`L *aIp *cBf  *fQw/ *gFY *hEt *k}I  *lPHc  *ok&f  *q_3 *rXf *s^ *tCL *uCL *vCL *wCL *yCL *|OP *}OP *~OP *CL *Kd6 *IU *J *JM *K *bf }e *\ }f *{ M *tq N *DFO *E"P *F5Q *V{R *RE,S *AlT *KOV *rS X *GY *Hބ[ *\ *O/^ * c_ * z ` *Da *Ab *E\c *A *CL *CL *CLg *pv *CL *CL *CL *CLm *"Hn *%{o *&k4 *)CL **CL *+CL *,CL *-CL *.CL */CLw *2\x *4OaHy *5PG *6OP{ *7vP7 | *8Z\} *9jP~ *;] *?Dq *@Fi *C{H ~ *EOP]x |CL Gu^ K Hzx F(uCLtCLs1' v r 5I4^6LCLCL:O^;"I <#Y`I?$C>&OP(CLB*BC+ID,BE.SGF/iRG1NH2H<, L3_GM4TN5rO6CAP7AՐQ8J_R9Kg/T:JUdJSVeGfOPhCLYjA$ZZkAmOPoCL]qxH ^s``tOPvCLayRdzOP|CLd~G&"OPf^CLhDXiMOPkRl lv mrznzW ob)dpY qS rTff sN~tO uCCLCLxBnyMzE2CLCL}HO ~JhIPG̶OP~CLF/MY qBg@CL CaCLOP chCLCLICLOPu ~ k7 CLCLCLm ^3Q[-BP0/Jff0P1O!2`"3M@#4t@$5K%6L:&7N5$'8Nk(9A;CL*=Iҏ+@pBCL-DH/FOPHCL0JB1KV=2MI<-3NL 4OGPOP6R]SCL8UHXCL:ZF!O]CL<_E=`HbOPdCL@gPRAJB@iCLCLECi(HFI_6 Jh(# KFL_ [ B nB FRJFB B K)F{ @HLvHRLr LEVKpz LJP` QEʘCLFDF-OPCLCLCLCLCLCLCLYgO3`J M > MG CL CLCLCLCLCLCL]CLCLCLNH CLCCL CL"@%CL&CL'CL*OP$+K'@%,I&.I<YCL*\JC,]]h^OP._SaCLbCLdOPfCL3ir~4kAu6ng 7o_y8pRFf9rn:tn9;uu<vp@wOP>xS?yG@zFdA{S9|OPD}CwE~FFF6[GPVXP^c3UgS _wCo mi y] y !CL CLCLf CL{ @=Ew3 FR { CLCLCLCLCLEHA@lY]33y1 {w w rGV$LIB PPFdE }f N(z of  `ɚ![3"^#CL$CL&CL'CL(CL+OP,OP-OP0CL3KcN4I_ 5J6JId9KOPCLBBC H, D!BE#TFMjGNQ HOH LP^MQSNRrOSC/PTA%QUJmRVKeTWJUYJRVZG[OP]CLY_At@Z`A bOPdCL]fx+ ^h_viOPkCLanRmoOPqCLdsGQuOPfw^yCLh{Di|Xg~OPkR*Q ls =mp{ny= oap\{ qV33 rV33 sNttOמuCBCLCLxB+yQzDCLCL}H*~J!IGǣOP~CLF/Lc IQs4H4CL CaCLOP cpCLCLIΘCLOPtY k* CLCLCLm `Q\I"B1<$O%V >&]\)!'C "(q#*Sy$+K%,L&-N$'.NU(/AJ1CL*3J+6|7CL-9H/;OP=CL0?B1@V(2BI2+3CL>4DGEOP6G]HCL8JI :MCL:OF7 zCL<|E=}HOPCL@P9AJ7B@+CLCLECDHEIb΋ JI& K@L^ B n}[ FJZFB B KFFJ{HLvHLr LEVR|z M JP`º QEʘCLG^F0OPCLCLCLCLCLCLCLYgPg`ɚM >LJ >CLCLCLCLCLCLCL]CLCL CL NM CLCCLCLACL@CLACLDOP$EK)%FI:&HGKCL*NJG,O^sPOP.QSSCLTCLWOPXCL3[r^4]Au6`hff7aa 8bY@9dog:fmL;guY<ho3iOP>jTe ?kGK@lFAmS7nOPDoCq$EpF|FqF5sGrP3pvVpw\fxT`yg ]m6CpY m y@ x !CL CLCLg CL{ @RFRx# U{ CLCLCLCLCLEHƐ@Wl`2]33y#; { w nGRLVI B  Q Fw El}u% Q$ v33 `[f^CLCLCLCLCL OP!OP#OP%CL(K^)Ib*J j+JG/K0iW }eR}f{ Mrs NtDjOuEJPvFQyV.R{RsS|r1 T}K+V~q. XG1YHy[J\P^b_{* `CkaBbBRcBCLCLCLgp8T CLCLCLCLmH(n{4ok4 CLCLCLCLCLCLCLwxxKRyP4OP{uL |[{}ky~]D!F*z ~OP_ |CLGd KRHVFPstuCLtCLsw w t 5H6Lu]CLCL:N1;Cv< V?4C{6OP8CLB:BCMDa\NEozOFCI:PGBgQIJjRJKeTKJ ULJM9VMHNOPPCLYRBFZSAUOPWCL]Yx+ ^[^\OP^CLaaQbOPeCLdgGJiOPfk^lCLhnDioWOPkRR lvHmt nx oap\=q qV rV sN >tOuC\CLCLxAfyR;zDCLCL}H*~I[I G1OP~CLFmL J4SICL C/CLOP cSFCLCLIΘ CL OP tM  hJ  CL CL CL m  dP Vf `C3 B LQ R QǮ! os4" [ # F3$ K% LW& NR' N3Q( "Aq $CL* &Iى+ (6 )CL- +H -OP /CL0 1Aq1 2Uh 2 4I3 5L4 7G `CL6 b] cCL8 eGC hCL: jFT mCL< oE= pHzx rOP tCL@ wPA xJGB y@N {CL |CLE ~Ci(H CLI nk J w K @{L ^  B  n  F K  F5 B  B  KF F {[ H OW@ I~ M  r  L EV PI z  M  JP `w/  Q Eʘ CL G^ DF- OP CL CL CL CL CL CL CL Yg L< b3 M L JG CL CL CL CL CL CL CL ] CL CL CL )N5D *CL -Dz /CL 0CL 2A 5CL 6CL 7CL 9OP$ :K()% ;Ip& >Q ACL* DJY, E^~ FOP. GRB HCL ICL LOP NCL3 Qr4 SAu6 Uefg7 Vd8 WI 9 ZoF: \v; ]ws3< ^v3 _OP> `TqF? aG@ bFMA cT OPD CE FuF F5sG Ph a  hp _@ h  _ C p  m4  y#  x ! CL  CL CL e  CL {w  At@ Fi x+  O {  CL CL CL CL CL E< H @. l ]33 y1  {  w  p G} Wu Lw J  B  P', C< CNO }  MZ  qD  a3 [3 ^ CL CL CL CL CL CL OP OP CL K` Ii J JSc K !j=}e D}f|M M ct N fDFO gEP hFݱQ kWNR lRoS mqˈ T nJbV pqZ X rGY sH[ tJ\ uQ^ xdk_ y{G ` |B!a }BHb ~Fc C CL CL CLg p  CL CL CL CLm Gn |4o j  CL CL CL CL CL CL CLw Bx N=qy R OP{ t | Z} lP~ ] C E^ wt ~ OP \E | CL G^ K8 Hl Hu CLt CL t33  w7L  sH 5 H\6 Ljo CL CL: !M"; $I< %Yc? &C: (OP *CLB ,BC -E8D .BE 0PffF 1f G 2Z\)H 4GѤ L 5c=qM 6a34N 7o.O 8C^EP 9BQ :JkR ;KWGT H'7 @OP BCLY DBɀZ EA GOP ICL] Kx# ^ M]r* NOP PCLa SQc TOP VCLd Cu CLf ^ CLh iWi UI CLk R l ~m }n Qo bap ] q Vu r V s Nt Ou C7 CL CLx BEy Nz D CL CL} Ge~ I[ I} G OP~ CL G; LZ  K O  I CL  C= CL OP  c[# CL CL Jt CL OP sF  f  CL CL CL n  i Y\ ` B B Hf Hz! u&g" l3# H$ K0% L#& N' N ( Ak CL* JP!+ H$ ICL- KH MOP OCL0 QA"1 R]2 UH3 VK$4 WG( YCL6 Z] [CL8 ]FT `CL: bF eCL< gE= hHs< jOP lCL@ oPA pJ+B qAx sCL tCLE vCuH xBzI ymR J zhZ K {UL }^  B  n  F!O K  Fݱ B  B  KU F {N H O I~ M  r  L< EV Lv z  M  JP `w/  Q Eʘ CL F DF- OP CL CL CL CL CL CL CL YS3 G6g `i J M >M(CLCLCLCLCLCLCL]CLCLCLN<|!CL#D%CL&CL(B"+CL,CL-CL0OP$1K"%2I&4OL7CL*:J{a,;_+y~TG?Gx@F6AT~;OPDCqEFlFF6[GPWc`j3`i b JCSp3 n y# xo !CL CLCLi\ CL|ƚ AZGy /{ CLCLCLCLCLE H@p.l]]33yN { wp oG6P6M[JHB. Q@AW}; Spi p `fZ3^CLCLCLCLCL CL OP OPCLKRJmAKBin}e^;}f |` M\t7K N_DjO`EzPaFQdWKReRzSfq3 TgJVip XkG9YlH[mc\nO^qe8v_r{UU `uBDavD}qbwDO\cB޹CLCLCLgpO CLCLCLCLmG?n{ojw1 CLCLCLCLCLCLCLw}xP8RyOqOP{sY |Z}l_~]CaE| ~OP\7 |CLG7KhHgICxu CLt CLtq wy sA 5H6LgCLCL:O;M5<[*?C4!OP#CLB%BnC&HUD'B8E)UpF*fRG+VGH-G L.c.M/aaHN0o\*O1CsQP2B!Q3JhR4K'T5JU6JKgV7H29OP;CLY=CL!Z>AhOPjCL]lx:D ^n\oOPqCLatQ*uOPwCLdyA|CLf}^~CLhhiQNCLkQ lxmvnRoaq\p\\ qX\) rYq sM<tO@uC,3CLCLxAHyJ|zDQNCLCL}G~IIx H?OP~CLGuL J6gN|IvfCL C CLOP c^CLCLKMCLOPsF fۍ CLCLCLm2 h,V3`3AK.0Q 1Q\!2y"4e#5J@$6K^%7L&8Nj'9M4(:AJ0+AVBCL-DH/FOPHCL0JA1KX[2MH3NK4OG1QCL6R]TCL8VEYCL:[G )]CL<_E=aHkcOPeCL@hPAiJBj@CLCLEDnQH@ Id JR| KV 3L^j B oK FRKFFݱB B KcE{HOsH@M r LEVOzlM JP` Q@Y/CLFDF-OPCLCLCLCLCLCLCL^4O3` MH MH GH CLCLCLCLCLCLCL]CLCLCLN8'CLD CL!CL#B &CL'CL(CL+OP$,K(%-I`&/M$2CL*]JJ,^^d_OP.`RbCLcCLfOPgCL3jr'4lAu6ob7p]f8qF9sp:upL;vt<wp4xOP>yS?zG@{FdA|T?}OPD~CEFjFF3GPdlVfb#3jL aCφpPL n0 yl xP !CL CLCLe CL{ AAhFbx ʙË{/9 CLCLCLCLCLEmI W@0;l]33y# { wa sVfG RM\JcB QAB}R K+ q@ ``$X%^&CL'CL)CL*CL+CL,CL/OP0OP3CL6K!7I~8J9J3U]JM9V^HCs_OPaCLYdCZeAgOPiCL]kx# ^mO9oCLpCLasQ'uCLvCLdxA{CLf|]}CLhWFYiV%CLkQ ly\mun^ oap_k qWǮ rYL sMztOuCI:CLCLxAOyS zDQNCLCL}G;~II^HOP~CLH]KT IgM@H&gCL CCLOP cZkCLCLLtTD?uG@vFAwU>xOPDyCUEzFg5F{F0G|P%kgtifk ^Cp^ n4a yN x !CL CLCLi\ CLz @-SEwt F3 {/9 CLCLCLCLCLEmI!O@Hl]/|} ' wS[ pG8WB MK JzB P SB=eB} T k] `fX3^ CL!CL"CL#CL$CL%CL)OP+CL,CL/JP0I,1I3J6K7y}e[}f } Mt( NDOF> PGQWRRLMSq+ TJVqZ XHY H7[!\"O^&d3:_'{9 `)Aa*F)b+C#c,C#.CL/CL1CLg3pg0 5CL6CL7CL8CLm;F*ng|gohj#A jCLkCLlCLmCLnCLoCLqCLwty34xuNLyvRwOP{xu m |y[3}}{in~}] BEs ~CL_ |CLG KGHI>KuCLtCLt9 w+ r 5H6LY CLCL:No;E<[$?F5CLCLBA"CPDBE\GFfRGYffHHy LU\MPN^OCkPB=eQJZ3RJTJUJv.VH-OPCLYBZCZOPCL]x ^L`CLCLaOCL,CLd.A^v1CLf2]3CLh6Xi9Wl=HVFOPCL@P6AJhBA|!CL"CLE$DXH&E;I'| J(U K)VdL*bq -B .B /F!OXKFYF/ZB [B ^K_F}`{aHdO;~fI~gM jr lLw0oEVqOesztM uJ:v`w/ yQzEʘ|CLG^DF-OPCLCLCLCLCLCLCLa33KVfYgRQGHQzCLCLCLCLCLCLCL]CLCLCLN?_CLDCLOPACLCLCLOP$K%I`&HڷCL*J,j'[OP.R"CLCLCLCL3r4 Au6#[7$^ 8%LFf9(pZP:*vL;+x4<,uFg-OP>.T?/G@/FA0U )2OPD3CdE4FbF5F0G6PEw8j9ri:gY{/9 CLCLCLCLCLEI(@l{]/{H r wD qlG"PNJB. R7BC }h L l `s3Z3^CLCLCLCLCLCLOPCLCLJdI}I JaKi}eVRl}f}y M t NDgOF*PGQWRRSq TJ.Vq XH(2YHW7[o\OdD^!ci_"{ `LA}-aMBHbOA>cPERRCLSCLTCLgVp; XCLZCL[CL\CLm_Fnb{ociZ eCLfCLhCLiCLjCLkCLlCLwoB xpOByrNRsOP{tt |u[}vmI~x] {B}E{ ~CL]J |CLFUGHRHduCLtCLuG w\) r 5I5G6LQCLCL:NC;C[<Wْ?FmCLCLBAeCO0DBKEc\*FrRGSGHHK LwHMsN@ O} Pw QERR)3TJ UJVHCLCLYAfZD_CLCL]xt ^M"CL#CLa&MeN(CL)CLd+AAh.CLf/]0CLh3X'Ki6UA9CLkEG nAifoCcpE_ qFXp rGW\) sHM1 tIOuJC0LCLMCLxxAyyO[zzC}CL~CL}Fy~IdI$tI8OP~CLHKbq FYE3FCL ByCLOP ce$CLCLL CLOPs go CLCLCLm{[ m\3aAYff`ǯ_!B3"v#Vf$K-%L^&M'M(ANCL*I+CL-H@CLCL0At@1V2H3K4GCL6]CL8Du CL: F>KCL<C4=G;CLCL@APEABJBCAECLFCLEHEHIC[IJ\ JKG!& KLm LN\ PB QB SF!OTK)UFVB WB YKZF}[{\H_OBobI~cLfr hM kEVlLvnzoM pI'q` tQu@pxCL{FDF-OPCLCLCLCLCLCLCLYgNgavg@p_xCLCLCLCLCLCLCL]CLCLCLN=CLC=CLOPA{CLCLCLOP$KT% ID& GCL*J},e8ROP.Rn^CLCLCLCL3rY4Au6 ]&f7!`f8"T9%p1:'{3;(|<)wg*OP>+S?,G@-FA.Ty1/OPD0CsQE1FbF2F.2G3O5jc36q7gl9l?] <`U=C@>p< ?nn @y Axt !lCL mCLoCLqi= tCLvz w xFEyw zx={{/9 CLCLCLCLCLEcI){@l|]/| K w65 pIGW/N3JB OC0C9}h Uc xUU `s3YY^CLCLCLCLCLCLOPCLCLJIlIoaJKj}ezT}f~& Mt NDO E5P G[Q6WR7RmS8q T9JV:qZ XHud[?EL\@P`^Cc_D{ `EAFaGDbIBs4cJA^LCLMCLNCLgPp RCLSCLUCLVCLmYFn\|S4o]jE _CL`CLbCLcCLdCLeCLfCLwi|{xjPuykSmOP{nt |o\\}kf~] BÂEr]\ ~CL^6 |CLFG0HP|MuCLtCLuV w r 5I"6LMHCLCL:Mj;G<Wd?GCLCLBA$ZCLEDBKEY >FmQG[QHH~ Lz{MvN A@O kQ P dM Q A$ZR T)JT J'U JrV A CL CLY AZ D CL CL] x ^ IiN CL CLa FE !CL #CLd %A{ (CLf )] *CLh -Ui 0Ta 3CLk 6R[c l 7F m `EǮ n ciYo dd Dp f[ q hVp r iU s jMt kO{u lB nCL oCLx qB1 y sM8z tC wCL xCL} zF~ |IG }I  ~Il OP~ CL I K7  ^Y Y ] CL  B? CL OP  c5 CL CL K  CL OP t!N  e  CL CL CL m-   m3 u A n u saH! Cg" r# L3$ K% L~z& M' N1( B} CL* K _+ r CL- F? CL CL0 @Q1 \+2 Hy3 K34 G CL6 ] CL8 )D +CL: -F 0CL< 2CL!= 4AZ 6CL 8CL@ ;NA  #T? $G{a@ %FA &U? 'OPD (CL!E )FfLF *F(G +O~ UfC3 VmP Xci Ym  \ar ]Cd] ^p  _n  `y  axWc ! dCL  fCL gCL ieд  lCL nz  o@ pFL qx  s w{/9  zCL {CL |CL }CL ~CL E I4^ @C lr ]33 |C    w'  n@ G  R0g NTO JI B.  Ps Cp D9^ }  LC&  o&f  `c3 X ^ CL CL CL CL CL CL OP CL CL J Ic II? Ju K iE}e sWQ}f~XH M )t N +DaO -F}P .GQ 1WIR 2RS 3pX T 4JV 5q X 8HGY 9H[ :q\ ;Oq^ >eB_ ?{ ` @Aa CE=qb DEEc EA GCL HCL ICLg Kp  MCL OCL PCL QCLm TFzn W{o iN  CL CL CL CL CL CL CLw |Qx L#y O OP{ t | Z{} j~ ]  B; E {= ~ CL \ | CL F H0 H( N;u CLt CL v\  w  r: 5 J j6 LP CL CL: KU; M$q< \? G CL CLB AC GD BE PF hHG K=qH H L m#M huN u>O fm P c{ Q BR JT JU J|V @b CL CLY A$ZZ D CL CL] xWc ^ G CL CLa D CL CLd A HCLf I] JCLh MRŋi PRX SCLk VRW l WF\) m YE = n \jo ]dp _[\ q `V r aU s bMt cOIu dKƙ gCL hCLx jBNy kKAz lC oCL pCL} rFb~ tI2 uI wJ; yCL~ zCL }T, Jy  m ef m CL  B CL OP  c0@ CL CL Kr CL OP tU  gx  CL CL CL l"  }f c m33 BW kG qW  qfg! D3" r# Ns3$ K% Lc&& Mp' N7( B! CL* H)+  CL-FCLCL0@;1Zј2H3K4HCL6] CL8"DB%CL:'E*CL<,Cpi=-@0CL1CL@4M@A5IMB7A 9CL:CLE@lYIAd JB~KCWLDfm HB IB JF>KKK82tGuB vB yKzF}{{p|GLvH"M r LnEVLvzM I.d] QCLcCLG^DF-OPCLCLCLCLCLCLCLYgN&fc @34_xCLCLCLCLCLCLCL]CLCLCLNE&CLCICLOP@&CLCLCLOP$KR%I&O^CL*Kn8,TOP.RP CL CL CL CL3rW4Aff6g7FS6?GGe@HF(AITJOPDKC'ELFd|FMFGNObPk#3QqٚSgFgTm? W`XC[pYp- Zn [x \x:D !_CL aCLbCLdi= gCLiz j@C kElwt ntr{/9 uCLvCLwCLCLCLEIB@gvlc]/|5! : w s3GQ/Nv<JB QDkD71}~ U7 vU `3X3^CLCLCLCLCLCLOPCLCLJI]8I+KJR{ K eY }end#}f ~ M&t0 N(D[O*ERP+G_Q.WIR/RS0p T1JV2q X5H[Y6Ho[7EL\8O@^;b_<| `=AahDbiAcjB޹lCLmCLnCLgpp sCLtCLuCLvCLmyFgn|{o}j#A CLCLCLCLCLCLCLwB.xK yOOP{tQ |\}iQ~] BŭE}T ~CL\ |CLFծHCsH=GuCLtCLv vk r 5JU56LZ CLCL:H#;K<\?FTCLCLBAKCGrDBEVffFfGUHHP Lp{Mk(NxkOe Pb(\ QA{RJwTIUJC7V@*CLCLY@ZD1CL2CL]4xt ^5Jw8CL9CLa;C>CL?CLdAADCLfE]FCLhIOiLN@OCLkRS lSL{ mUJ nXjffoYd=p[`G q\[\) r][\ s^L7t_O=u`BcCLdCLxfBcygTzhCkCLCL}FT~I)Hiqt CL~CLGJ oggvfpCL CCLOP c6CLCLKrCLOPtx it CLCLCLl {gfhBs^fgd!Aff"j33#M$KG%LaS&M&'N=\(B3CL*Huj+  CL-FyCLCL0@;1YJr2H3Kt4G CL6]CL8 C#CL:%E(CL<*CD=+@`2.CL/CL@2M xA3IhB\A8^CL_CLEaEHbH@Icf Jdx5JKgELif7 lB mB nF[GoK82qGrB sB uKvFqw{=xG{Lv}I~~M r LEVKzM Id] QCCLFDF-OPCLCLCLCLCLCLCL^gOavgx__CLCLCLCLCLCLCL]CLCLCLNH CLCCLCL~# CLCLCLOP$Kx;%Iv&NI&CL*(Kj,)S8*OP.+Qm-CL.CL/CL0CL33rK45Aff68h@79WL8:M9@`;?@0<@{3BCL>EW0?FG`@GFuAH[ICLDKCuEMFedFNFXGOOWhSrTzgUo&fVm_ Y\ZC[p\q ]nT ^xo _x+ !CL CLCLf CLzr ~# ExWc E {/9 CLCLCLCLCLEIK@clu]/|R8 ^ w ~ pGWC D:B) PxCD-}~ Lf oD a\Z^CLCLCLCLCLCLCLCLCLJIZI$J>|K H }e[^}f~ M#t7K N%DO&F|P'G<QRWRTQLSU} TVJVWq. XYHt0YZH[\*\]O(^`d8_a|* `bAFadD{beAcfBiCLjCLkCLgmq" oCLpCLqCLsCLmvFsIny|0ozjE |CL}CL~CLCLCLCLCLw{xKzyP >OP{u# |[!}k~] BEvI ~CL_މ |CLFOH]HBLuCLtCLv x1 sȵ 5J6LPCLCL:F;I<|<UPm?F>KCLCLBA$ZCQ DBE[FhfgGZ=qHH) L{zMfNf Of7 Pe>t Q ALR!GeT#I U$J#]V%A'CL(CLY*@XZ+E2.CL/CL]1x ^3M05CL6CLa9N>;CL=CLd?AqBCLfC]DCLhGMtyiJX3MCLkPSwm lQH# mRFu n}jo~eup]= qV rW33 sLGtNuB9CLCLxByS%zCBCLCL}FL~I'-HʈBCL~CLc0Jz FgDaD,CL E2CLOP c:BCLCL[MCLCLvܹ hk CLCLCLl GyzguBgg` gefg!sY"bf#F $K%L#&M*'N9(BPECL*IT+~CL-Fs CL CL0 @n1W2H3KWy4H:CL6]CL8DDCL:FF(HCL<KC/=L@JeOCLPCL@SLATI#BUALWCLXCLEZFxCH[EնI\qq J]|ceK`EƙLb\ fEVgEVhEViEVjEVk@-SlEVmEVn@p{NrGuLvwI~xM {r }L~@ QNz݉M I8eb3 QF0CLG^DF-OPCLCLCLCLCLCLCL]əNgavgAF34GuCLCLCLCLCLCLCL]CLCLCLNR%CLCaCL OP@XCLCLCLOP$K%I&M*CL*"Kbd,#b $OP.%Qw/&CL'CL(CL)CL3,rVb4.Aff61_372Z83Gf96rgB:7D;8A<9B<;CL>>ZO??Gw@@FoAAW^CCLDEA{EFF@FGFCGZp3 x nf n- ^ɲCd]q9 n x x# !CL CLCLhE^ CL!z? "}u% #E$xe &*{/9 -CL.CL/CL0CL1CL4E5IM7@h/8lh;],`d| e@Jefv ip<lGђmQpo@pAzrB&f uRFvCawD6xz} {Ti ~qUU `fZ^CLCLCLCLCLCLCLCLCLJzyId|I=sJbKif}e&[R&}fN Mt NDOElPGSQW@RR S@TLUZVt\ XHYH[꧌\OP[^cj_| `CaQT{bRhcO CLCLCLgp CLCLCLCLm,G|n/||o0j8= 2CL4CL5CL6CL7CL8CL9CLw<{zx>L#y?O@OP{Ay |BZI}Ck~E] IC<#JFlMtj. ~OCLQ^E^ |SCLWFXHdYHD\Pu^CLt_CLbw% cw ds! 5eJ6gLVeCLCL:G;Gy<\a?F/CLCLBAAhCPDBEvpFu GMHH) LL#MG4NRpOgL Pfq QB}RH#TIUJC7VB1CLCLY@ZE]CLCL]y ^MCLCLaO8aCLCLdB8PCLf]CLhKiWɌCLkSm lI mGH n jo dp]=q qW. rWǮ sLAtN]PuCCLCLxB=yQ zDCLCL}!F[G~#I"%H_&C(CL~)CL,X`.J /SYOK3ZKC3\CL ^BF`CLaCL cڿdCLeCLgDjCLkCLmr nj qCLrCLsCLvm wJxBgy@|Bz~lzt8Rr!A3"k#J@$KJ%M&M'N6(Bh:CL*HE+%kCL-GCLCL0@R1V62H3KR4HؒCL6]CL8DCL:FbCL<CSc=@QCLCL@Lx^AHȩBA@CLCLEG`HEpIlI JzL[KVNL_ @JeEVEVEVEVAK@XEVAff!{"H%OBo'I (M +r .L/@ 2Lv4z5M 6IpJ7d4 :SCLCCLOPA+CLCLCLOP$KQ%I&LCL*Kp ,a OP.Q9CLCLCLCL3rgi4Aff6Z47Og8F349s:;@L<{@CL>XZO?G@FAF CLD@}BEFFFGXd^tٚ|qgo} aHCv8 qt  n  x  x !CL CLCLf7 CLz } Ex f!1"{/9 MCLNCLOCLPCLQCLTEUICV@Xl[]/\}R ]@R^vY anfdGeVNKf@hAnqjB!H mPxnC޲oD0r~ sM? vmU w`3yVz^{CL|CL}CL~CLCLCLCLCLCLJkIpJIiJKi}eln}fb@#Ms NDѦOCPGQXzRPSA TL+Vs XHJYHk[R\R^d=j_v `DpagbhfgcjCLCLCLgqX CLCL CL!CLm$Hmn'|o(jb5 *CL+CL-CL.CL/CL0CL1CLw4@x5OBy7T8OP{9s |:[ݭ};i~~=] @CLBFydEy] ~GCLI]x |KCLNF<xHeyH5zFu|CLt}CLy$ x s 5J66L|CLCL:E;N<Z3?ECLCLBAOCN6DB=ECaHFOQGhGHH# LIhMKNWOh Pg! QBrdRHO TI٬UJjYVB'CLCLY@`2ZEZCLCL]y] ^MCLCLaO9CLCLdB\CLf]CLhJ;iVUCLkT lJ mI nj3oe8p\8R qX rZ=q sL*tN/uC)LCL CLx By OzDBCLCL}FxC~I"H@CABCL~DCLGRIK JUKQC3LL NCL PC/SCLTCL UvVCLWCLYCw\CL]CL_@`jF cCLdCLeCLgn4 iJjEk|c3nBבpu=qq|rz4!s~f"uo`#vO4$wKG%xNQq&yM&'zN6({BVCL*H+/CL-G-aCLCL0@b1\~2HJ3KV4ICL6]CL8CCL:FCL<Ca=@XCLCL@L=AHBB7CLCLEGHC7IsS JukKAÕLbs  A  AO B B B B8PA B BX-}HOHIL_ r "L#BV&Px({H)M *I(+fD .SZqK?GP@F-ACCLDAW3EG#9FFIGZ]{C4B!xfp‹ aeCq o x0 x !CL CLCLf& CL{/9 } EV y  Hj  {= 7CL8CL9CL:CL;CL>E?I=s@@HBlOE]/F}u% G@Hv KrfNGOWP@3$QA\HTBff WQXXCYD+\~# ]R3 `o a`ɚbVd^eCLfCLgCLhCLiCLkCLlCLmCLnCLJ\zIsIJKBf }e ]ݜ}f@Mtq NDO|o PGxQ[NRP9 Ss TE_VeC XHbYHI[Ψ\N^df$_m9 `D٦aO b Q.c N CL CL CLg p  CL CL CL CLm Hn |o j(  CL CL CL CL CL CL CLw px !M4y "R{ $OP{ 'h | )Y} *h~ ,]  /D@ 1F 4z[ ~ 6CL `]L | bCL eF֗ gHA hHH kKu mCLt nCL qy  rw  ss! 5 tK 6 uL wCL xCL: {E; |MJ< }ZL? ~E CL CLB AW3C JaD B_E Q=qF jaHG PGH H5 L Q M }HN J^O h P hS Q BR HkT IU JV B CL CLY @Z E CL CL] z % ^ M> CL CLa Nv CL CLd B CLf ] CLh IL\i TӾ CLk TB l O m N n jo e"op ^) q V= r V s Lt Nu C6] CL CLx Cy Lz DB *CL +CL} -F~ /I# 0H 1CFT 3CL~ 4CL 7N :K_C  ;Y  XQ? HCu@ GA {  CLD u E GMF F6G WP ~ Cf |34 q]  _"r C q  oI  x  x ! CL  CL CL "f&  %CL '{in  (~#  )EW *y@  +Iji  ,{LS  /CL 1CL 2CL 3CL 4CL 7FE 8I?C 9@9 :mQZ >]/ ?}R  @@R Av  Do GG HY7 I@ JA MBc  PPƍ QC  RC U~@  VPA  kw  `3 T ^ CL CL CL CL CL CL CL CL CL JO Ik Ii J K j33}e +\:}f qA@EM tTg N DO B0~P FQ [NR OS rk T IZV m X HaY H[ V\ R^ dJ_ u9 ` Ca U b PO\c O CL CL CLg p̲  CL CL CL CLm H\pn o j  CL CL CL CL CL CL CLw uzx My T> OP{ r% | IY} Ji{~ L^ ODDm PFh Sua ~ VCL X] | ZCL ]F ^Ht _HVF cQ<_u eCLt fCL hz{  iw  ku 5 lK46 mL oCL pCL: rEO; sKf< tT? vE xCL zCLB |At@C }HUD ~CKE N=qF jG IH H L M^M Y}qN dO hq7 P g Q CR FxCT IU JV Bg CL CLY @rZ E CL CL] zu ^ M CL CLa MDž CL CLd Bn CLf ^ CLh Hai R CLk T l Mf m L n kfo dKp`k q\. r[\ sM.ctM uCA?CLCLxC yTzDB!CL"CL}$F~'I (H8)Cv8+CL~,CL/L1K% 3]>g4Z5TH7CL 9pmy ;CL=CL >?CL@CLBCL!ECLFCLHm<8 Ik* tCLuCLvCLxnc zPk3{Ed|CCob4jqi\!@ "og#N$Kx;%NrP&Mc'N\e(BCL*JB.+,CL-GQCLCL0A1X2H3KmP4I7`CL6]CL8C~CL:FCL<C/=@4CLCL@KրAH|JBBCLCLEHs<HHIh; JCKALZ}W YX ixB FBFBUZixB ixB Bci } FN=OI~M  s=t LEVQ5r|3yM Y?H~@GAm CLDjp EGcFF\GZvfB|rЏ  ]Y CƘr# oI x wt !CL CLCLcx CL{ ~#  E!z ##&{in )CL*CL+CL-CL.CL1F'2Ik3A#4mg7]/8} :@;v4 >qS3iG jUkAfslAnA qTYsCztC*w~] xN {iD |`}RY~^CLCLCLCLCLCLCLCLCLJCIlI JJe }e#E}f hAZ;Mt NDO| PGQ]^ROSq9 TC1Vb XHYH״[쩗V\Nϥ^b_g `BlaQbScQCLCLCLgpu CLCLCLCLmGn1go2k4 5CL6CL7CL8CL9CL:CL;CLw?@x@NyA\ >BOP{Eb |GY }Hh5~K^ND OF1Ry{ ~TCLV] |YCL\F]H^Hb_FZuaCLtcCLez fw gths 5iK|6jLCLCL:E#;Gy<W?F CLCLBALCPDCCEWLFvBGU{HIJ LSMQEN]Oi Pf Q~] RH TJ UJVASCLCLYAZECLCL]{in ^LCLCLaFmCLCLdBCLf^CLhH@iPCLkT lMaH mK n k33o dp`=q q[( rZ. sMgtMuCMCLCLxCUyTzD4KCLCL}!F~#I$H%C'CL~(CL,K.L$ /aY0^^g1X3CL ]me `CLaCL b|ZcCLdCLfCUiCLjCLlhS mk* pCLqCLrCLtnz vR wFxG{C}Z~`.^{!E&f"x2#Qs4$Jf%N7&M'N`(BYCL*H=+iCL-GnCLCL0A1Wy2Ij3Kx;4I CL6]CL8C/CL:F/CL<C'=@CLCL@K;AHXBB#BCLCLEHzxHFIsp JzKA\L`x [ ixB EA AixB ixB Ai }HEl&O(I~*M -tW0/Lٛ2B 3Kf5|x6K7Iu8h ;SCLBFEDF-GOPICLJCLKCLLCLMCLNCLOCLRcVgTYUvVFWL:XKZCL[CL\CL]CL^CLCLCL^CLCLCLNJ4CLCCLCLn`* CLCLCLCL$L%Iw&PUCL*K,SCL.KcCLCLCLCL3r5 4A6~47v48s349y:Eg;If<CCL>W?H@G&Am CLDj EGCFFGX@ C)}6fs aGH CƘ r]\  ouq  xt  wt !CL CLCLh(# CL{ ~@ Dgz)B  Yt#{ &CL'CLPCLQCLRCLUFKWIXA/YnA\],`]}X ^@gv_v breGOgXK8h@iAJkB nToDpD\0s~s tV3 wh y`ɚzQ33{^|CL}CL~CLCLCLCLCLCLCLJ8 Ig5IJyKg }e ha}feAM t N ID{]O K~S P LF Q OaHR PNS Q@T RD5V Tb| X VH2Y WHC[ X^\ YL"^ \c_ ]k ` `B{;a aUBb bY >c cR eCL fCL gCLg jrK&  lCL mCL nCL oCLm rG-n uio wk  yCL zCL {CL |CL }CL ~CL CLw Fx Vuy ]Ǯ OP{ dUV | Z>} i~ ] C FA uD ~ CL ]x | CL G H HI Qu CLt CL }dZ  xj  t 5 K`6 M CL CL: EV[; F< TD? F/ CL CLBB)CFODD_EZǮFj#GPHJy LX)MUpNpOk P gL Q!B\R#N~-T$J.HU%IV&@(CL)CLY+@}BZ,E /CL0CL]2|= ^3@6CL7CLa9BrCL~CLIO` d8d_ٚCL r CLCL 9CLCLCpiCLCLy]w j50 CLCLCLg, aV3WI6_{d34`g!QL"M3#p3$I%N®&M'N~(BCL*J;4+CL-GCLCL0 Bɀ1 g 2 I3KA4I=Zr?>I@?G% Ah@iCLDk} EmGi4FnFLGoZsb3tgua3xEXyazDL{b. }`׬ ~} @C !CL CLCL` CL} u BM{/ a-w|R8 CLCLCLCLCLF PI9Bo|q]/|C kQ vz mG#`B{B:}@c W Cu}C޲ Pty dȉ `L^CLCLCLCLCLCLCLCLCLJHIjJ*~K=qj=}eJq}f BMu NDO PFQaORO Su' TFVhu X HY!H[" \#NP^&c_'jUU `QDaSqGbTpcUo\WCLXCLYCLg[r ^CL_CL`CLaCLmdH`ng@fohlD jCLlCLmCLnCLoCLpCLqCLwtDuxvRQywaxOP{{eUV |}Y}~jΩ~^DoFp| ~CL]n |CLGAHHwNnuCLtCL| xE s 5K6M\CLCL:Ed;M<US?ECLCLBB8PCP.DDՏE`.FrGU{HK L^M[Ng{Okh Pf QBrdRNTJUI3VA6CLCLYAZD CL!CL]#|j ^$Aҩ'CL(CLa*DQN-CL.CLd0C3CLf4^5CLh7GBi8RM;CLk>W  l?NW mAL nDu@oEepGaǮ qH^# rI[Q sJNtKMSuLCNCLOCLxRBySSVYz|DCLCL}F~IJHQCCL~CLHdO{ fdffaCL o CLCL CLCLCpiCLCLk k CLCLCLo& TfJgJJ-S4X [ !`"Rf#}f$JC%O#&N'O*(BCL*Je+CL-GCLCL0Aҩ1Z2IM3KR4ICL6]CL8BECL:Gu CL< C'=@CLCL@JZAGBAFCLCLEEGeHFEIGp: JHFtp KIj`LJaY MY` OixB PIQDRDSixB TixB UDVi X~@ZE]Lv_I~`M c} 8eM hEViR_jAlK&mIpo^ rS&Z@|?'IT@(GOA+m -CLD/jH E1GF2FtG3Z6f`7l`8c;I<^=D>c @a AEBG`!ECL FCLGCLeT CL~Ü  v  CZ }  RM  | CLCLCLCLCLF IBrm]/ }: !lR "v %o3(G)bW*B+Ba-A+ 1V2B3Cu}6^ 7Spi :f* ;`dMif^gCLhCLiCLjCLkCLlCLnCLoCLpCLsJ tHuI@wJ?ezKB}gl }e br}fBMt ND+OA.ZPF-Qa RO*Sq+ TF:BVg~8 XHYH%[Ө\MJ^d_p* `CfaWT{bZzcQCLCLCLgr3 CLCLCLCLmHRn4ol» CLCLCLCLCLCLCLwJxWzyeOP{,j |.YT}0j~2^5Dg6Fm"9w ~;CL>^(# |@CLCGADHEHyHMtguKCLtLCLN}\ Oxp PsH 5SK6TMVCLWCL:YFi;ZM<[TQ?\E_CL`CLBbB?CcODeD(Eg\4FrgGS8RHKC{ L`zM]޹NhOk=" Pfm QBrdRN}tTJ$FUIVALNCLCLYAZDCLCL]|R8 ^AfCLCLaDBCLCLdC CLf^CLhGiPMTCLkWU lO mN3 nu&foepe = qb3 rc# sNtMuCu}CLCLxB}yQyzDBCL CL} F?~ IH~CCL~CLHO Pj- gc3e`gCL n$ !CL"CL #sT$CL%CL'Ca*CL+CL-h .j YCLZCL[CL]o `aAaWfbGeJgZh^i^{!jcL"kUl#lA\$mJ %nNQ&oM6'pO3(q@=PsCL*uY.+yzCL-|GeCLCL0A1YN2J%53L4ICL6]CL8C6]CL:GCL<C=@CLCL@JAGBAYCLCLEGeHlIh JQB2 KV L` Z ixB I DDixB ixB Di ~FN=OBoI~L} 8M EVKKAJP I{.#o^ $SU@MRBCLCCLDCLECLFCLGCLHCLI^KCLLCLMCLNNf[PCLSCUCLVCLXo ZCL[CLCLCL$LG%Ig&ICL*K,SWCL.IwCLCLCLCL3rI4A6U7NC38K9B:IY;M<JCL>X{[?I]@GK5Am CLDk. EGpxFFMGXyf+3ke(LalEEc!( aj F Gn!CL CLCLaY CL uS[ C~# Vm |  CL CL CLCLCLFIBmOr]33}R lD v qff"G#aLBMBbkOAp SV[TBUCi(V@YPty \e@ ]]3^G<_^aCLbCLcCLdCLeCLfCLhCLiCLjCLmJ+gnHoIsqJTLtKBww }ef}fNBhMt` NDrOBPG QaRO*Sp TJVo0 XH{YI[ͨR\P`^e_uq `B~'ao\br\cmCLCLCLgr CLCLCLCLmH nom+ CLCLCLCLCLCLCLw Hzx!SGy"a\#OP{&p33 |(Z95})l~,^/D!0F_3o ~5CL7^ |:CL=Ge >HU?HBIFuECLtFCLH}Ö Ix^5 Jt 5MK6NM xCLyCL:{F!O;|K<}U8Y?~ECLCLBB\CMDEETRFwGSW HK LxHM_8RNi Ok Pf/ QB+RNTJ/1UIHVAw(CLCLYA/ZDCLCL]|oQ ^AfCLCLaDCLCLdCL!CLf^CLhGuiN4CLkW_ lMz mLG nsoepeH q_. r]\) sNRtMuCzCLCLxAyNbzDnQCLCL}F~I%\I C$ CL~ CLG0P0 de`CL @nn CCLDCL EFCLGCLICLCLMCLOh" PlC$ SCLTCLUCLXUa ZS,[J\HC3_KLjaXb]kc[!dXFg"eL#fng$gI%hN&iM'jO/g(kBomCL*oN6+stCL-vHxCLyCL0{B}1Zn&2JT3L9>4J?pCL6]CL8C4CL:G:CL<C/=@`2CLCL@JZAH jBBh:CLCLEH$HB,Ik JE0W KC3L] [ ixB I>E E*ixB ixB E*i ~}]E  Lv I~L} 8M EVRQ;AפJPIuo^  SCL?CL@CLACLBCLCCLlCLm^nCLpCLqCLrNOtCLwCyCLzCL|rn ~CLCLCLCL$LU%J6&G1CL*K:,RCL.ICLCLCLCL3rK4A6X7T8O 9CtE:O;O<OCL>Zb8?Ib<@GIdAn4a CLDk EGCFF+zGZ@efjPcgMa=E5c{ aЊ FEG!CL CLCLeM CL^ v4 Cμ~l^ C } CLCL CL CL CL6F7I"78B9rH<]33=} ?l& @v CrIFGG\6HB8PIB`>KA=q NWaPBQCNOR@1UUW Xd33 Y^ZJ3[^\CL^CL_CL`CLaCLbCLcCLeCLfCLiJ?ejH`kHlJVKBg&f }e[' }fHBMuZU NDLO~ PGCQclRO`Sp< TCݣVbld XHWYI>[ɨ`-\L^b_kG `A݋aX)bXQcQ CLCL CLg rb  CL CL CL CLm GMn o m  CL CL CL CL CL CL CLw QǮx YW y aq OP{ "dwx | $Y } %j~ (^ +C ,EZ /r@3 ~ 1CL 3_i | 6CL aG bH cH? fMu hCLt jCL l}ƨ  mx`  nu 5 qK6 rMA tCL uCL: wF; xG L< y[.)? zEZ }CL ~CLB BcC H:D EAE ]ǮF |qG ^qH K? L tfgM rN }(O kZY P f Q BnR N(T J;U IV At CL CLY B}Z X CL CL] |& ^ @ CL CLa Ae CL CLd C CLf ^ CLh G`i W CLk W* l MH m K n tYo e|p b q _B r ] s N)Ft Mu C CL CLx AOy K{z D CL CL} )F~ +I< ,I  -C% /CL~ 0CL 2G 5Q  6d 7d3 8`3 :CL   X? In@ GK5A r1  CLD k E G%F FG X֗ ek3 j d  OJ `- EX d  b6  FT G̶! CL  CL CL !j  $CL &@ 'u6  (C *~  ,LW /}X  2CL 3CL 4CL 5CL 6CL 9Fw ;I% X MD  O@{  RW  SC TC U@O{ Xm^  b  `  I3 ^ CL CL CL CL CL CL CL CL CL J` I I- JZ KG ff }e ,`H }f lBM tb N DO BP F"Q bR OFS pmy T I=uV m X HY Iq[ 5\ OB^ di_ u ` Aha Vb Y)c Tz CL CL CLg s<  CL CL CL CLm Gyn 4o n{c  CL CL CL CL CL CL CLw Ox HZ.y If\ JOP{ Lq% | MX} Nj~ P^ SC TEڶ Xzcz ~ ZCL \_Ll | ^CL aG$ bI dH& gNu iCLt jCL m|49  nx  ou 5 qK6 rM tCL uCL: wF[G; xH/< z[n? {F ~CL CLB B+C N\D EoE Y{F v34G _H LS L a*M ^N yO lR P g Q ByR NT JJ~U IV Ax CL CLY B\Z G CL CL] }~ ^ A CL CLa B) CL CLd C CLf ^ CLh Gni XA CLk W l L3 mJ nsfoepf qd rep sN2gtMuDCLCLx!Aҩy"Tz#DY&CL'CL})FT~,I`h-Ix .D$V0CL~1CL3H25Q 7f8f[39al;CL =o,| ?CLACL BCCLFOPHDO!JCLKCLui vo xCLzCL{CL~P, T[3J(J@LSٚX34W!kٙ"c#F$I{.%Nؚ&M'OOd(B%CL*K+CL-HzxCLCL0Bk!1Q2J3L4ACL6]CL8CCL:FECL<E=}f CLCL@aAAHlBC$CLCLEHHlI]^ Jl4KBLLkZY Z ixB JāEEZixB ixB Ei  ~ FN= LvI~M } 8=M @EVAQ'BELDJPEIlIo^ JSZ?I@GDA}h CLDl& EGFFwG Z7 g3l4mfP]6Ec aD FsH]!CL CLCL ev #CL&@n't (B) O *Q +}; .CL/CL0CL2CL3CL6EH7I.8B(9rW<]6=7 ?mm hv4 kp9nHoc*pC qC?sAn vV;xCD&yCz@k}R d `K^CLCLCLCLCLCLCLCLCLJII oJ]cKGA5 }e*b#u}f mB Mt` NDpOz PG WQd DRO_SFv TCSVb XHYI[+\LP^c!_fr `A״aZT{bY^cTCLCLCLgs CLCLCLCLm1Gn4@ o6ow0 8CL9CL:CL;CLCLwBPxCW\yDhEOP{Ha |JY}Kh ~N^QCMREtUtM ~WCLY_& |\CL_G `IPaH5dH̾ufCLthCLj{;d kx v/ 5K6M&CLCL:F~;M<[I?F~CLCLBBCPADEwEYW FtW GQHLw Ls Mp Nk0On% Pii QB+RNTJqUIeVACLCLYBcZF!OCLCL] ^~Ü CLCLaBCLCLdCuCLf^CLhGniWQ%CLk X l J mHǮ ns3ofcpo = qh rg sN>EtM4uDCLCLxBk!y TCz!D$CL%CL}'E~)I1*Iլ+D-CL~.CL0I(-3R#2 \h6g]h^c3`CL bpY eCLfCL g\hCLiCLlDoCLpCLriLl spr vCLwCLxCL{V |`i}W3~WiL*_G`=q`s4!jY"X#@$Ig5%N&MM'O_(@b_CL*ap$+CL-H/CLCL0C/1V 2J+3L4AKCL6]CL8CwCL:@CL<@۶=@CLCL@JāAHcBB9CLCLEHVFHE<Iw[ JqpfKyLc \ ixB JPF/FL$ixB %ixB 'FL(i *~oB+FN=.Lv0I~1M 4} 86M 9EV:Kt;EL>JP?I{.Bo^ CSX?IT@GCAxH CLDmm EGEFF1GYL`ifoVf h Q _Ecx a GgRH !CL CLCLa CL @!tM "@R#' $^+%}h PCLQCLSCLTCLUCLXEYIZC$[r^]6_~ al bv4 eqC3hH5i]ɘjCkCdm@c pYrCL!sCt@wPW zf {`|KL}^CLCLCLCLCLCLCLCLCLJfHIJhJKGe }e$kN}fjAx-Mt NDtOASPG QcROxSATGVj% XHfYI$[ė\M&g^d_sc `C1aZbZcR CL!CL"CLg%s# 'CL(CL)CL*CLm-Hh:n0vgo2o 4CL5CL6CL7CL8CL9CL:CLw>Xx?ZǮy@_ffAOP{DnDD |FXP}Gi~J^MD"~NFxQn4a ~SCL}` ^ |CLG8IrHaNnuCLtCLz x\ uK 5K$6MғCLCL:FxC;L<[ ~?FqCLCLBCCO"DEEUBF} >GU#HM LvMtNOp| PixB QBRUATJUIVBsCLCLYBEZECLCL] ^z7 CLCLa@CLCLdD%CLf^CLhGiVRaCLkXB lN m Mk n ts3of9pm\) qg rfQ sNK tM/uD3CLCLxB?yDRzEE9[HCLICL}KE~MI-NJ=XODQCL~RCLTHVM%XgZh[c]CL _s)~ aCLcCL dneCLfCLhDZkCLlCLnkZY oArCLsCLtCLwQ xWyO8zN|}Ldhh(g\!S@"AS3#f4$Ia%O &M|'Om(ALCL*k)+BCL-HUCLCL0L;1g(b2J3Lϕ4ACL6]CL8DCL:@CL<|`=_CCLCL@Mm1AH BCGCLCLE AHl=Is Jk˸K_Lc \Rp ixB N GϛGixB ixB !G"i $~%FN=(Lv*I~+M .} 80M 3EV4Q5r5EL8JP9IS<Eʘ@CLCG^FDF-#CL#CL#CL# CL# CL# CL# CL# CL#C#uɚ#HL#MR#OxR#MR#CL#CL#CL#CL#CL#CL#CL# ^#!CL#"CL##CL#%NQl#&CL#)C`#+CL#,CL#.r]\ #1CL#2CL#3CL#4CL$#6K%#7J5P&#:I+#eCL*#hLp,#iE #jCL.#l} #oCL#pCL#qCL#rCL3#ur,4#wA6#yS,7#zN98#{E09#~E&:#M@;#R)<#Nf#CL>#Z ?#I@#GMA#q #CLD#n}[ E#GOF#FG#[G##j^g#p3#hf#S:N#aGH#E#c #a #I=#J!#CL #CL#CL#e #CL#@b#tY #@#@#RY #~# #CL#CL#CL#CL#CL#E#H6#CsQ#s=#]6#c #l9 #v #sP#Hif#_>#D>#C#Aff #W#C #U1m#,@4#/V]% #2d. #3]3#5I`#6^#7CL#8CL#9CL#:CL#CL#?CL#@CL#CK/q#DHe#FI #GJj#JKG#Mg@ }e#eX}fA5M#u " N#DO#@P#G_[Q#d+>R#OLS#s)~ T#G*V#jc X#H*Y#J)w[#o\#MD^#d_Z_#mUU `#Dha#r޹b#tc#oR#CL#CL#CLg#t #CL#CL#CL#CLm#I n#vgo#p #CL#CL#CL#CL#CL#CL#CLw#TǮx#[aHy#dQ#OP{#hDD |#W}#i/~#^#D#F# n ~# CL#a |#CL#G#I#H#Mu#CLt#CL#zo #xj #!tw 5##L'6#$M#&CL#'CL:#)F;#*J<#+[?#,Fy#/CL#XCLB#[CaC#\ND#]EE#_`.F#`@{G#abH#bML L#c_W M#d\N#efO#hmh P#if/ Q#jD%R#lVT#nJU#oI<V#pB #rCL#sCLY#uBɀZ#vE#yCL#zCL]#|@R^#}w #CL#CLa#~; #CL#CLd#Du#CLf#^#CLh#Gi#US[#CLk#X@ l#OaH m#Mff n#ss3o#g<p#o q#ju r#l8R s#NXt#Mpu#E`#CL#CLx#By#P z#EZ#CL#CL}#E~#J\#J#E'#CL~#CL#IZ#S5 #bS4#c#^c3#CL #q #CL#OP #d[# CL#!CL##E9[#&CL#'CL#)l9 #*r #-CL#.CL#/CL#2U' #3bg#4Y#5X#8L#:e@#;j#!#=X"#>D,##?j$#@Is%#AO+&#CMJ'#DOw(#ECz#GCL*#IJ+#LH #NCL-#OHU#RCL#SCL0#UC:1#VWF2#YJ3#ZL4#[A>#CL6#]#CL8#D%#CL:#AK#CL<#Al=#AO#CL#CL@#K"A#IB#Cho#CL#CLE#IpH#C>I#k J#o0K#`L#_ #Y #ixB #N#Ig#J#ixB #ixB #Iw#i #~'Q#FN=#Lv#HI#M #} 8#M #EV#L#G#JP#I_#o^ #S#X?#I@#GcA#n #CLD#l3 E#GK5F#F.2G#Y!H#n#sP#lVf#T#`#F#c_ #b  #Jt#K!#CL #CL#CL#kK #CL#@.#t #@#@;#V #~] #CL#CL#CL#CL#CL#E#H#C#sZ#]6#@#mJ #vY #nf#"Ho##d7#$C#%C~3#'@xR #*W>q#,C+z#-C#.@*#1YX #4c #5_3#6G#7^#9CL#:CL#;CL#CL#?CL#ACL#BCL#EKy$#FH|#GI #HJm#LKL#M~}e#cG}f#AkM#u N#DO#~ P#G}Q#eqR#OѦS#q T#D`V#d? X#HЁY#Jn[#\#K^#c_#mV `#Cba#Yffb#Z&fc#S@#CL#CL#CLg#u) #CL#CL#CL#CLm#HRn#fgo#q/ #CL#CL#CL#CL#CL#CL#CLw#QLx#Zy#e8R#OP{#fUV |#W%}#h~#^# D# FS#o ~#CL#a |#CL#@G#AI?#CIw#FHu#HCLt#ICL#Lzy #My #NwĜ 5#PL%56#QM#SCL#TCL:#VF;#WFO<#Y\.b?#ZF?#]CL#^CLB#`CuC#aMD#bE E#d\F#eaHG#f`RH#gM L#h_GM#i[)N#jgQO#mlD P#oejU Q#pDXR#rVϺT#sJrU#tIV#uBh#wCL#xCLY#zCL!Z#{EW#CL#CL]#@^#uZ #CL#CLa#}R #CL#CLd#D#CLf#^#CLh#Gi#TP#CLk#Xq l#Mf m#L n#t o#gp#p) q#j33 r#i s#Ndt#Mu#E #CL#CLx#By#Mz#GC#CL#CL}#G~# J^# K# E:#CL~#CL#Ib#s#e,#e#`#CL #r #CL# CL #"`##CL#$CL#&EsZ#)CL#*CL#,jp #-p #0CL#1CL#2CL#5Q݊ #6X{4#7Og#8Mg#;M]g#=`.#>e >#?d34!#@d3"#AX##B},$#CIq%#lOOd&#mM'#nO(#r| #tCL*#ulO+#wQ#xCL-#zH#}CL#~CL0#Aq1#ga2#JZ3#Lm4#E@#CL6#]#CL8#Jw#CL:#A2#CL<#@=#},l #CL#CL@#JnA#I^B#C*#CL#CLE#P\H#lf7I#u J#jDK#WL#d7' #\ #ixB #N#I"d#I"d#ixB #ixB #Hؒ#i #~'Q#FN=#O4#H#L#} 8#M #EV#P#HV#JP#Ij#o^ #SC{3#?O)#@MR#AMR#CCL#DCL#FCL#GCL#HCL#ICL#JCL#K^#LCL#MCL#OCL#PN@#RCL#UCT#VCL#WCL#Yt #\CL#]CL#^CL#_CL$#bL.P%#cJg&#fP'3#hCL*#kLX7,#lRe#nCL.#@۶#CL#CL#CL#CL3#rZ4#A6#G7#E`8#|349#F:#I3;#Mɚ<#If#CL>#ZU?#J/@#GuA#p| #CLD#nQ E#G@MF#F+zG#[e#l&f#r>f#jg#U#],=#F!#cx #aY #J#K!#CL #CL#CL#f # CL# A"# t # A# A+# i# ~ # CL# CL# CL# CL# CL# E# HR# C# sj# ]:# B# o # v # #qVf# &H# 'X-# (D 9# )C# +@0 # .Xd# /Cpi# 0C# 2A# 5Q # `d] # a]# bJI# c^# dCL# eCL# gCL# hCL# iCL# jCL# kCL# lCL# nCL# qK# rI# sI o# tJ|J# wKQ# {e, }e# J8}f#L@XM# t` N# DO# B7P# GQ# d#R# OѦS# q T# I/V# o.Z X# HY# J<[# Ѧ\# N,^# e_# t `# BSa# sYb# t8Rc# o&g# CL# CL# CLg# t? # CL# CL# CL# CLm# H(n# fgo# q # CL# CL# CL# CL# CL# CL# CLw# OQx# a34y# gB# OP{# *o |# ,W>}# -hج~# /^# 2DL^# 4F# 7mi ~# 9CL# ;a=" |# =CL# @Gz# BFq# CHN# FNgu# HCLt# ICL# Lz # Mx7 # Nwo 5# PL>6# QNG# SCL# UCL:# WF~;# XG<# YVr?# ZFݱ# ]CL# ^CLB# `CC# aKOD# bFE# X)F# r G# PuH# MQ L# Z M# VN# bW O# l& P# eM Q# DVR# WNT# JÑU# JWV# B# CL# CLY# CZ# E# CL# CL]# A:%^# t # CL# CLa# }T # CL# CLd# EG# CLf# ^# CLh# Hi# Se# CLk# X l# M m# L= n# ts3o# gΛp# o q# k# r# j s# Nwt# Mwu# A# CL# CLx# By# Pz# GX# CL# CL}# HH~# J# Kd# E# CL~# CL# I# S # h# iH# d# CL # q # CL# CL # !# "CL# #CL# %EV# (CL# )CL# +lD # Tvo # WCL# XCL# YCL# \V` # ]Rf# ^I# _H# bM# d_8R# ecT{# fbٙ!# gS"# iMff## jo3$# kI%# lO^&# mM'# nO(# oC# qCL*# sY6+# v# wCL-# yI# |CL# }CL0# D4K1# X2# J3# L74# B5# CL6# ]# CL8# DY# CL:# Af# CL<# BF=# B?# CL# CL@# K{mA# IB# K # CL# CLE# d|H# G%I# `~w J# oeAK# GG&L# c/ # \ # ixB # N# G# G # jD # ixB # G# i # ~# Go# Lv# H# L# }h # M # #EV# $La# %H6# 'JP# )IU # *`w/ # -SCL# ?CL# @CL# CCf# Dlg# EC3# FV# GVR# IVR# KCL# LCL# MCL# NCL# OCL# PCL# QCL# R^# TCL# UCL# VCL# WNaM# CL# C# CL# CL# u # CL# CL# CL# CL$# L2%# J&# M# CL*# LJ,# F^# CL.# x # CL# CL# CL# CL3# r4# A6# O7# I8# C<9# F:# J\;# Lf<# Kp# CL># Y?# J*@# GKA# s # CLD# o E# G77F# F3G# Y)# oQ# tf# m# V# ^# G`# c # ` # HU# KF!# CL # CL# CL# e[ # CL# Bk!# u # B8P# A# "#  # CL# CL# CL# CL# CL# E# I# HDJ# Isn# L]=q# NAO# OnB # Pw ~ # Sp@# VI-# W[1# XD # Y@U# [AL # ^Xu# `D# aD_# bA;# eOz # hb # i_# jIp# k^# mCL# nCL# oCL# pCL# qCL# rCL# sCL# uCL# vCL# yL0## zI W# {I@# |JrK# KW # c }e# hͻ}f# L@NM# u N# DO# }VI P# GQ# fR# OYS# p T# D-V# cm X# H8Y# J[# ٦I\# Kx^# d _# k9 `# B Qa# YW b# [c# S ># CL# CL#CLg#t #CL#CL#CL#CLm#Gn#~go# sW #"CL##CL#%CL#&CL#'CL#(CL#)CLw#,Q.x#-Zy#.gp#0OP{#3e |#5V}#6f ~#8^#;D#=FL#@n% ~#BCL#D` |#GCL#JH#KDM#tI,#wMu#zCLt#{CL#}v #~x9 #u 5#LKv6#N %#CL#CL:#F;#N%<#T~?#Fݱ#CL#CLB#DJC#GD#F8tE#bfgF#G#e{H#N L#fEM#c.N#nO#l5h P#e[ Q#DR#WJT#JְU#JV#CI#CL#CLY#DBZ#OA#CL#CL]#G0^#t/ #CL#CLa#|oQ #CL#CLd#E#CLf#^#CLh#Hdi#Riq#CLk#Y; l#NW m#MH n#so#ghp#oH q#j) r#ik s#N:t#Niu#D`#CL#CLx# By# S}z# E#CL#CL}#I=~#=Kp#>K#?Ee#ACL~#BCL#DI\#GTKb #Hbfg#Id#Jc3#LCL #Nr #QCL#RCL #S_#TCL#UCL#WFi#ZCL#[CL#]n`* #^xV #aCL#bCL#cCL#fW: #gR^f#hJ#iI#lM#nX##o[f#p[h!#qZ9"#rV6g##trs3$#uI%#vO^&#wM'#O(#}R #CL*#Zј+##CL-#I/j#CL#CL0#DQN1#Wھ2#J3#M4#C>#CL6#]#CL8#E#CL:#A#CL<#B=#C/#CL#CL@#KkA#IB#B#CL#CLE#Z=H#G0GI#n J#nTK# DL# `q. #Z #ixB #P0#GT#GK#i| #ixB #G#i #~'Q#Go# Lv#"H6##L#'~#)M #,EV#-P#.IU#0JP#1Ig5#2eb3 #5SDF-#iCL#jCL#kCL#lCL#mCL#nCL#oCL#pCL#sAf#uvg#vC{3#wVR#x\ >#yZ#{CL#|CL#}CL#~CL#CL#CL#CL#^#CL#CL#CL#NI{#CL#C#CL#CL#x #CL#CL#CL#CL$#L'%#JyL&#Jy#CL*#L',#DY#CL.#M;k#CL#CL#CL#CL3#r4#A6#V7#Q8#N9#F:#N;#O<#O)#CL>#[?#JC]@#GA#s8 #CLD#o+ E#G:F#FJMG#\6#p#vl#o#Xwd#_#HR#b6 #_Z #H #K !#2CL #3CL#4CL#6k. #9CL#;C~#=s #>Cpi#?B=#@Se #A #DCL#ECL#GCL#HCL#ICL#LE"#MI"7#NDt#Os#S]@#TB}#Umh #Vw' #Yo3#\IB#]c=#^C#aw #d@q #hXO#iDu#jDX#kAo*#XX #b #]#J3#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#L}#I#Ij#JZ#K\)#}}e#@bY}f#}}tU M#v N#DO#C?P#GQ#eiR#P S#p T#JV#o X#HαY# J[# #\# L""^#cj_#x `#Aa#Zzb#[c#Su#CL#CL#CLg#tʚ #CL#CL# CL#!CLm#%Gn#(#4o#)uI #+CL#,CL#-CL#.CL#/CL#1CL#2CLw#]Rx#^W>y#_d#`OP{#atӠ |#cV}#dfkC~#f^#iC#jF9#mouq ~#pCL#ra. |#tCL#wH'W#xDH#yIl#}JSu#CLt#CL#tdZ #x7 #t 5#LZ6#N%#CL#CL:#G&";#M<#Z?#F#CL#CLB#DgC#D5D#F@)E#dBF#}G#aaHH#NK[ L#hGM#cgN#oT{O#nn P#gx Q#DR#WcT#JtU#J!V#C#CL#CLY#D_Z#]#CL#CL]#U^#vK #CL#CLa#}~ #CL#CLd#F7 #CLf#^#CLh#Hmi#Qib#CLk#'Yv l#(O m#)N n#,so#-h|p#/o# q#0i\ r#1h s#2N~t#3N7u#4Al#7CL#8CLx#:CScy#;Rz#!#ef"#V##@$#I8%#Oj&#McH'#O~(#}~ #CL*#]\+##CL-#IE#CL#CL0#D1#U"2#K73#MI4#D?#CL6#]#CL8#D#CL:#B?#CL<#@=#@=#CL#CL@#K?mA#JEB#{ #CL#CLE# HAH# S}I#iI J#PfK#QYFNL#Rc #V[-F #WixB #YN#ZGx#[G#^ixB #_ixB #aG#bi #d~'Q#fH#iLv#kI$#lM #o#qM #tEV#uLv#vI#xJP#zIU #{d #~S#1Y!?#2Jlf@#3GA#5r #8CLD#:o E#Zj#Anf#Ctٚ#DmY#GZ61#H__#IIz#Jc>k #K` #LH#MJZ!#QCL #RCL#SCL#}l9 #CL#DnQ#t #Cw#C~#Nv # #CL#CL#CL#CL#CL#E#IJ(#D#tT#]@#Bk!#n0 #wS[ #r#I2{#`o#C#w| #AE #X*#Di#D3#A#WeJ #e" #`f#L<#^#CL#CL#CL#CL#CL#CL#CL#CL#CL#L#I$#I#JM#KaH#f }e#b}f#zY M#v& N#DcO#xԀ P#DGQ#Gh`.R#IPS#Jp< T#KC5V#La]k X#NH^Y#OJ[#P#\#RJ^#UeZ]_#Veq `#WAFa#Yzb#Z|#c#[w#^CL#_CL#`CLg#bu/ #dCL#eCL#fCL#hCLm#kGBn#n~o#ou #qCL#rCL#sCL#tCL#vCL#wCL#xCLw#{RBx#}]y#~k#OP{#^ |#Vb}#d&~#^#C##Fw#of ~#CL#`u |#CL#HH#D2#I#OOu#CLt#CL#s #yh #vfg 5#LlA6#N,#CL#CL:#G;#M6<#Y[?#Gg#CL#CLB#DSC#DmD#F^#?CLh#AI(-i#BP#ECLk'\[ l'M m'M\ n' s&fo' i"(p' nǮ q'f r'gff s'Nt'NLu'A'CL'CLx'CZy'Qi z'GQ'CL'CL}'!I~'#K'$L '%FE''CL~'(CL'*Jā'-U! '.d.f'/d34'0a'2CL '4qV '7CL'8CL '9u':CL';CL'eFxC'hCL'iCL'kl 'lx] 'oCL'pCL'qCL'tW² 'uNi'vH&g'wF'zM'|S8R'}V'~V4!'h"'_#3#'E$'I%'Ow&'Ms''O(' 'CL*'^U+'ձw'CL-'IiN'CL'CL0'D1'[V2'K3'M`4'D'CL6']'CL8'F'CL:'Brd'CL<'C=='C4'"CL'#CL@'&LZA''JB'*|5! '-CL'.CLE'1ksH'2CiCI'6k J'7\7K':ENnL'K'Si 'U~='VGo'YLv'[I\'M 'E'M 'EV'Lv'H8'JP'Ii'd8< 'S'#Y?'LJxB@'MGA'Po; 'SCLD'UmYk E'VGXF'WFmG'XY'\n#3']t'^m4'a['b_'dI~'edR 'fa 'gG;'hI!'kCL 'lCL'mCL'olR 'sCL'uC:'vtj. 'wAl'xB'yT 'z@`2'~CL'CL'CL'CL'CL'Ey'Ia'EnG't']=q'A/'n}[ 'w 'r'I'c{'CH'x# 'A+ 'Y\'x:D 'D'B'X2 'cD '`'I'^'CL'CL'CL'CL'CL'CL'CL'CL'CL'L'I!O'I'JG'K\)'ff }e'ye#}f#zt M'5v N'7D"O'8BgP'9H,HQ'P`ES'?{ T'@I60V'AmIs X'CHئY'DK#['F\'GM=^'KfJ_'Ls8 `'MAPga'Orb'xvc'yq0'|CL'}CL'~CLg'u( 'CL'CL'CL'CLm'G!n'c4o'v/ 'CL'CL'CL'CL'CL'CL'CLw'Q>x'Xy'c.'OP{'m |'V}'g!~'^'C$'Fg'pY ~'CL'bD |'CL'HU'DB'Iy'OZu'CLt'CL'rȴ 'y 'vc 5'L6'NP'CL'CL:'G} ;'L<'YԱ?'GJY'CL'CLB'DVC'DID'FyE'Y >F'y#G'`H'OG L' k>M' gN' sJ>O'r P'k Q'DnQR'WT'KU'JrV'D'@CL'ACLY'DDZ'F\ @'HCL'ICL]'LP9^'Oz7 'RCL'SCLa'UAK'XCL'YCLd'[Fi'^CLf'_^'`CLh'bIi'dNַ'gCLk'jZ l'kML m'mL=q n'ps33o'qhp'st=q q'tn r'um s'vNut'wNp|u'x@'zCL'{CLx'Cay'N%z'C'CL'CL}'I~'KO'L 'Fa'CL~'CL'Jā'RC 'e'ep'ac4'CL 's 'CL'CL 'ǟaG'CL'CL'F?'CL'CL'm- 'sDP 'CL'CL'CL'Sa 'Vf'M'Lh' M' V >' Y' [Q!'[Ff"'UP#'@4$'Ixu%'OpK&'MwX''O.('}; '!CL*'"l+'#'$CL-'&I>')CL'*CL0',B1'-Zs2'/K3'0M*4'2D!n'4CL6'5]'6CL8'8DX';CL:'=B5'@CL<'B^ ='C@4'nCL'oCL@'rL+ A'sJgB'uDB'wCL'xCLE'{lrH'~C<I'm` J'HK'X6L'HG'[J 'ixB 'Mk'FN='FN='i& 'ixB 'F>K'i '~'Q'Go'O;~'I g'M 'E'M 'EV'RCL'?CL'@CL'A^'CCL'DCL'ECL'INC'KCL'ND2'PCL'QCL'St!N 'UCL'VCL'WCL'XCL$'[Ld%'\J&'_PU'bCL*'dL&,'fEA'hCL.'jzcz 'lCL'mCL'nCL'oCL3'sCL4'A6'Py7'LY8'F9'Gy:'L&f;'O3<'K4'CL>'Y}?'J`@'GA'qHF 'CLD'pY E'GWF'FsG'[9'oi'v 'n;3']'_U'I'd 'a 'G} 'I!'CL 'CL'CL'm 'CL'Cμ's ' A' B' RV' @' CL' CL' CL' CL' CL' E' IW' E~:' u]E' ]@' A' n}[ ' w ' qf' I ' _W' !CNO' $x# ' '~) ' +\b' -@' .Dg' 0BRs' 3W ' 6Y ' 7]i' `F' b^' cCL' dCL' eCL' fCL' gCL' iCL' jCL' kCL' lCL' oL' pI$' rI' sJL' vKaH' yf }e' c}f'y% M' u_ N' DO' ~p P' H mQ' h"R' P`ES' A:%T' C7V' c% X' H-Y' K*p[' ӥ+\' Jp[^' e(_' lU `' CV>a' [b' YRc' U' CL' CL' CLg' t ' CL' CL' CL' CLm' Hpn' o' v ' CL' CL' CL' CL' CL' CL' CLw' )N.x' *Xy' +dQ' ,OP{' /e |' 1Uwl}' 2fH9~' 5^' 8C' 9GK' CL' Ab8 |' CCL' FHld' GBM^' HI' KM.u' NCLt' OCL' Qr! ' Ry ' Su 5' VL6' WNk' YCL' ZCL:' \G} ;' ]K<' ^XGO?' _GB' bCL' cCLB' DC' DD' F}E' ^34F' vG' iH' Ou` L' m*M' gqN' r.O' s P' lR Q' DYR' X(T' KU' K V' D' CL' CLY' E Z' ^' CL' CL]' Pg]^' {= ' CL' CLa' AL' CL' CLd' F' CLf' ^' CLh' I6i' M' CLk' ZA l' T3 m' S n' to' iK,p' q) q' l r' nq s' N(t' Nku' @΢' CL' CLx' Cy' L;z' C~' CL' !CL}' $IL~' &L' (L ' +r ' VCL~' WCL' YJ ' \VPJ ' ^jњ' ak3' chNf' fCL ' hv( ' kCL' lCL ' naG' oCL' pCL' rFb' uCL' vCL' xn ' zz ' ~CL' CL' CL' X ' U4' M3' L4' Mh' X4' \' Z\)!' U"' P#' t3$' I%' O&' MwX'' O(' CL!' CL*' X+' װh' CL-' Ik' CL' CL0' E*1' Y2' K3' MY4' D`' CL6' ]' CL8' F' CL:' Bɀ' !CL<' #C=' %C' (CL' )CL@' ,LUA' -JB' 1}: ' 5CL' 7CLE' ;qlH' =FPI' @b J' AIK' GGG&L' IGQ' LZ ' MixB ' ON' RH' TH' Wi ' ixB ' G )' i ' ~'Q' Go' O;~' I.' L' E' M ' EV' K' H8' JP' Ii' d ' S' kWs?' lJ@' mGA' oq^ ' rCLD' to E' vGU5F' wFWG' xY0' |od' }t' ~m' ]W' \$' Iz' b ' _/ ' H2' Jf!' CL ' CL' CL' iމ ' CL' Cμ' s ' A' B=' Q ' @' CL' CL' CL' CL' CL' EH' I_' E' u' ]@' Aq' mm ' w ' nɚ' H' c.' C2' w4 '@B 'Y^'DJ'D'B'R 'a '^9'I@' ^'!CL'"CL'#CL'%CL'&CL''CL'(CL')CL'*CL'.M\'/IS'0I"7'1I'4KaH'5jǮ}e' `}f' Qx M'|v`4 N'~DO'CldP'HQ'g^R'Py:S'qJ T'KV'qw X'HY'K!['\'K^'cr_'wq `'D*pa'sb'uHc'p34'CL'CL'CLg't^ 'CL'CL'CL'CLm'Hضn'~o'v 'CL'CL'CL'CL'CL'CL'CLw'Qx'Y(y'_'OP{'r |'VN}'dx~'^'Dl!'G*'q ~'CL'b9 |'CL'HH'A׾'J'Iu'CLt'CL'rm 'y 'u 5' L6' N' CL' CL:'G;'Jy<'Z?'GJY'=CL'>CLB'@DZC'AE? D'BFE'D]RF'FzG'GX34H'HO5 L'Ios4M'JlN'KvO'Nr P'Ok Q'PER'RZK@T'SL& U'TKL0V'VD'XCL'YCLY'[ElZ']`O'_CL'`CL]'cQE^'fz 'iCL'jCLa'lAAh'oCL'pCLd'rF?'uCLf'v^'wCLh'ISi'L%'CLk'ZG l'Oq m'NaH n't o'i܉p'q q'l r'o8R s'NLt'M,u'@D'CL'CLx'Cy'Kz'C6]'CL'CL}'I~'L)'L,'E'CL~'CL'y'V 'i'jq'hf'CL 'sl 'CL'CL ''CL'CL'F:'CL'CL'kh 'z 'CL' CL'!CL'$Vw '%W'&O ''N+4'*N',a'-i'.k!'/M,"'1KL#'2p$'3I%'\O &']M\''^OA('`@&'aCL*'cXh+'e5$'gCL-'iBɀ'lCL'mCL0'o`1'pVU2'rL3'tN14'uD+'wCL6'x]'yCL8'{FxC'~CL:'B'CL<'C='C>'CL'CL@'LsA'KHB'{ 'CL'CLE'sH'F{[I's~ J'\K'FL'@'[ 'ixB 'LC'E'FN='ixB 'ixB 'E'i '~'Q'Go'Lv'I"7'M 'E'M 'EV'Lv'H8'JP'I_'d 'SCL'?CL'@CL'ACL'BCL'C^'DCL'FCL'GCL'HN'JCL'MDJ'OCL'PCL'Rx 'TCL'UCL'VCL'WCL$'ZLr%'[J7{&'^Pi'CL*'L,'R'CL.'}I 'CL'CL'CL'CL3's4'A6']47'Z`8'N9'G:'N33;'Qvf<'M3'CL>'X?'J@'GfA'pmy 'CLD'o,| E'GcF'FG'Zt'q('xi'o'^u']6'IL'c '_v 'Fs'I !'CL 'CL'CL'mm 'CL'D|'t4 'B'C'V- 'A+'CL'CL'CL'CL'CL' F' Ik' E'u']DD'Aҩ'mv 'x4 'pC3'H;'e'DC' w '#@= '&YC'RsF 'SD'TB'UVk 'Xe 'Ya&f'ZJ)'[^']CL'^CL'_CL'`CL'aCL'bCL'dCL'eCL'fCL'iL'jI'kI.'lI'pKff'sf }e'd7.}f'y+ M'vC N'DO'~ P'HQ'h"R'P}S'q T'DV'e X'HRY'J['ʥ9\'J](^'d_'m `'BQa']=qb'_0c'V'CL'CL'CLg'u} 'CL'CL'CL'CLm'Hn'go'v 'CL'CL'CL'CL'CL'CL'CLw'LQx'[)y'a*'OP{'#g"# |'%Vi}'&c~'(^'+DDm',F'0qV ~'2CL'4bD |'6CL'9H]':AT'K'CLf'^'CLh'Iwi'Vߑ'CLk'[/ l'M{ m'K n'so'jp'q q'kG r'k s'NBt'Mu'@'CL'CLx'Cuy'SVYz'D̘'CL'CL}'J3~'LR'L0['F' CL~' CL'Z2!'VM 'dљ'gg'cx'CL 'u 'CL'CL 'Dw'ECL'FCL'HF'KCL'LCL'Nn% 'Ow 'RCL'SCL'TCL'WRo 'Xah'YY'ZWf']N'_d'`h}q'ag!'bP"'dJ#'er$'fI%'gO&'hMw''iNĂ('j@'lCL*'m^ +'nv'oCL-'qBw'tCL'uCL0'vjQ1+j3QO2+j;L,3+jdN%4+jeDe+jgCL6+jh]+jiCL8+jkE+jnCL:+jpB5+jsCL<+juAZ=+jvB}+jyCL+jzCL@+j}L+jX=?+jJ@+jGA+jp +jCLD+jo E+jGjF+jFG+jZ +joL+jzy+jmP+j^+j\$+jIQ+jc +j`q. +jI+jK!+jCL +jCL+jCL+jl +jCL+jDQN+jsl +jBy+jC.+jMJ +jAe+jCL+jCL+jCL+jCL+jCL+jFD+jI@+jEE+juӑ+j]DD+jAq+jm7 +jx- +jn+j H-+j b)+j D3+jw +jH +jY+jD+jD+jC+jV1 +jdw +j ^+j!G3+j"^+j#CL+j$CL+j%CL+j'CL+j(CL+j)CL+j*CL+j+CL+j,CL+jXLB+jYH+jZI.+j[I+j^Kff+j_i}e+j]ܔ}f'Dy}2 M+j~uwo N+jDO+j| P+jHЛQ+jh|R+jPnS+jpX T+jEXV+jeR X+jHWY+jK[+j\+jK^+jd_+jir `+jBa+j}Rb+j@c+jx+jCL+jCL+jCLg+jv +jCL+jCL+jCL+jCLm+jGvn+jo+ju +jCL+jCL+jCL+jCL+jCL+jCL+jCLw+jRx+jW=qy+jd+jOP{+jcDD |+jV}+jek~+j^+jD+jFӈ+jo7 ~+jCL+j b& |+j#CL+j&H+j'F7+j(IV+j+LZu+j-CLt+j/CL+j1t +j2y = +j3v( 5+j5L6+j6N+j8CL+j9CL:+j;G} ;+jFݱ+jACL+jBCLB+jDEOC+jEE+D+jFF,E+jHZF+jIuG+jK^pH+jLP_ L+jMAGM+jN@]qN+jOEǮO+jRr]\ P+jSju Q+jTE]R+jVZ4T+jWLU+jXKKV+jYD7+j[CL+jCLY+jEV[Z+ja +jfx+jfi+jbf+jCL +js +jCL+jCL +j A+j CL+j CL+j FL+jCL+jCL+jlR +jw +jCL+jCL+jCL+jT +jY6g+jP+jNf+j"O +jLe{+jMiE+jNh!+jO[3"+jPO#+jQh$+jRIg%+jSO~&+jM`'+jNF|(+j~; +jCL*+jYw++j+jCL-+jBc+jCL+jCL0+jh1+j Zј2+jL=\3+jN,4+jC+jCL6+j]+jCL8+j@FE+jCCL:+jEB+jHCL<+jJC=+jKD+jNCL+jOCL@+jRMdA+jSK]B+jTD~F+jVCL+jXCLE+j[cH+j\B},I+j_iG J+j`\ K+jcEL+je~Ü +j\ +jixB +jN+jI"d+jI2O+jixB +jixB +jI +ji +j~Z+jH+jLv+jI~+jM +jFa}+jM +jEV+jL+jH8+jJP+j Il+j eb3 +jS^+j@CL+jACL+jBCL+jlMX+jnCL+jpC+jrCL+jsCL+juv +jxCL+jyCL+jzCL+j{CL$+j~L)%+jJ!&+jP+jCL*+jL4,+jR)3+jCL.+jBy+jCL+jCL+jCL+jCL3+js4+jA6+jVI7+jQi8+jF9+jH0:+jU;+jU4<+jS33+jCL>+jU?+jJw@+jHA+jpY +jCLD+jn E+jGlF+jFG+jX\+jqg+jxd+jp$+j^+j^+jI{]+jcM +j_ +jI>+jLE!+jCL +jCL+jCL+jm +jCL+jC+j s +j AO+j4B\+j7H+j9Ax+jCL+j?CL+jACL+jBCL+jEF +jFIC+jGE+jHuq+jL]@+jNAO+jOmi +jQxY +jTsL+jXH+jY^+jZD`+j]z +j`A5 +jcYW+jdA+jfU^+jgC^+jjWV +jmdf +jn_+joH+j^+jCL+jCL+jCL+jCL+jCL+jCL+jCL+jCL+jCL+jL+jHI+jI3v+jI[+jKaH+jf }e+j7B}f+j1z M+j vn N+j D_O+j B5P+j Ha"Q+j h3fR+j PY#S+j p T+j JXV+j oJ X+j I|Y+j KG[+j \+j Lr^+j e _+j x `+j Aa+j !Ynb+j "\Hc+j #Y+j &CL+j 'CL+j (CLg+j +u +j .CL+j 0CL+j 2CL+j 3CLm+j 7GGn+j bgo+j cv +j eCL+j gCL+j hCL+j iCL+j jCL+j kCL+j lCLw+j pRx+j qZfy+j rhW +j sOP{+j tt% |+j uV}+j wd^d~+j y^+j |Ci+j }F+j n ~+j CL+j cYk |+j CL+j H/+j BQ+j IɈ+j Ku+j CLt+j CL+j sd +j x +j v 5+j L6+j N+j CL+j CL:+j Gn;+j GLD<+j U?+j Gx+j CL+j CLB+j EzC+j EyD+j FJE+j W=qF+j yG+j WH+j Q>j L+j xqM+j v*N+j @O+j r@3 P+j j Q+j EOR+j ZT+j LU+j KעV+j D +j CL+j CLY+j EZ+j e+j CL+j CL]+j J,^+j z +j *CL+j +CLa+j -A:%+j 0CL+j 1CLd+j 3FL+j 6CLf+j 7^+j 9CLh+j ;Iki+j /R V~z?/R Jh@/R HVA/Rp- /RCLD/RnT E/RGNF/RFG/RZ</RCn/RDt3/REmY/RH^Z/RI\i/RJII/RLc7 /RM_d /RNHH/RPKi!/RRCL /RSCL/RTCL/RVh /RYCL/R\D/R]t /R^B}/R_B/R`P /RaB/RdCL/ReCL/RfCL/RhCL/RiCL/RlF2f/RmIg/RnE/RotW/Rr]@/RsAҩ/Rtm /Rvyl /Ryn3/RH/Rcxo/RCP|/Rrn /R@) /RY/RB/RE9/RCk/RPe /Rd /R`3/RI/R^/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RLd/RH/RIM/RI>/RKaH/Ri}q}e/R`_Zz}f+j z= M/Rwf N/RDPO/R@VIP/RH8Q/RiaR/R PS/R!pX T/R#G9V/R$iT X/R&IY/R'K$[/R(e\/R)Lw^/R,c_/R.l `/R0Ba/R1rHb/R2sYc/R3p\/R5CL/R6CL/R7CLg/R:u /RCL/R?CLm/RBH)n/Rm4o/Rov /RqCL/RrCL/RsCL/RtCL/RuCL/RvCL/RwCLw/R{O#x/R|V(y/R}b/R~OP{/Rg |/RVK}/Re4~/R^/RDK/RFХ/RsU: ~/RCL/Ref |/RCL/RIv/RC/RJv/RGKu/RCLt/RCL/Rvo /RzR /Rw 5/RM6/RN8/RCL/RCL:/RGx;/RC/Rl!/R]3"/RPٚ#/R{2$/RI%/RO6&/RMr'/RMs(/R~# /RCL*/RZ)+/RѰoB/RCL-/RA/R CL/R CL0/R iy1/R X2/R LU3/R N-4/R Df/R CL6/R ]/R CL8/R Fm/R CL:/R Brd/R CL/R :UjE?/R ;JE/@/R CL/R ?CLd/R AFxC/R DCLf/R E^/R FCLh/R HJwi/R IO-|/R LCLk/R O\a l/R PN\ m/R QM n/R Tso/R Ukڅp/R WmG q/R g r/R h\ s/R Ot/R NI:u/R A(/R CL/R CLx/R Cy/R Oz/R D/R CL/R CL}/R Jm~/R L=/R K/R E/R CL~/R CL/R Rb/R S@ /R i/R j8/R f/R CL /R t /R CL/R CL /R ڿ/R CL/R CL/R F(/R CL/R CL/R l /R r /R CL/R CL/R CL/R SZ /R Rg/R J6g/R H3/R P/R ^:/R a/R aq!/R Pf"/R H4#/R m$/R I%/R OR"&/R Me'/R M(/R D/R CL*/R J^+/R x/R CL-/R AZ/R CL/R CL0/R k1/R b}2/R LI:3/R N(\4/R D/R CL6/R ]/R CL8/R FL/R CL:/R BE/R CLO3/R@CL>/RCW_?/RDJ;'@/REH <A/RGq9 /RJCLD/RtoK E/RvG?eF/RwFG/Rx[/R{j/R|ph/R~h/R]4/R_/RJG/Rb(\ /R_ /RJ/RK!/RCL /RCL/RCL/RkZY /RCL/RDJ/Rs /RAf/RB/Rc&/RB8P/RCL/RCL/RCL/RCL/RCL/RF(t/RI/RE/Ru[&/R]@/RA/RmYk /RyB /Rn,/RH=/Rb/RC/RA:%/RQ /RY|}/RC/RD/RD /RWV /Rc /R]3/RH/R^/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RL\/RH/RIP/RJ/RK\)/Ri =}e/RJs}f/R @OM/RMwWw N/RODIO/RPAOP/RQHQ/RTh8R/RVP}S/RWp T/RXG1V/RYjr X/R[H&Y/R\J[/R]\/R_Mv^/Rbc_/Rcq `/ReAWa/Rfrb/Rguc/Rhp/RkCL/RlCL/RmCLg/Rouj /RqCL/RrCL/RsCL/RtCLm/RGzn/R~o/Rt- /RCL/RCL/RCL/RCL/RCL/RCL/RCLw/RKRx/RUy/Rd*/ROP{/Ri33 |/RV=}/Red~/R^/RCu/RF/Rs)~ ~/RCL/Rd |/RCL/RIP/RH/RJ/RNu/RCLt/RCL/RA]/R|5@ /Rxj 5/RM*6/RNU/RCL/RCL:/R F7 ;/R BdH/RS$ L/RlM/Ri޹N/RtO/R!nB P/R"g[~ Q/R#E]R/R%XT/R&LaU/R(KV/R)Dd/R+CL/R,CLY/R.DZ/R/FE/R2CL/R3CL]/R5I(-^/R6y /R9CL/R:CLa/RCL8/R@Eѕ/RCCL:/REA"/RHCL/RhU?/RiJ;'@/RjHA/Rmq3 /RpCLD/Rrof E/RsGEF/RtFaG/RuXy3/Rxj/Ryph/Rzi9/R}]|/R~\w/RIR/Rb /R`q. /RIw/RJ3!/RCL /RCL/RCL/Rmm /RCL/RC>/Rs /RA^v/RB\/Rn/RBK0/RCL/RCL/RCL/RCL/RCL/RF%/RI/RF:/Ru/R]@/RAAh/Rm /Ry_ /Rqf/RHX/R_ /RC4/R@/RB /R[/RCw/RC/RD%/RU /Rdj /R`/RH`/R^/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RCL/RCL/R$Ld/R%HЌ/R&Ied/R'J/R*K\)/R-f33 }e/RP}f/RDM/RLw N/RNDO/RO P/RPHnQ/RSjDR/RTPUS/RUp< T/RVEBV/RXd- X/RZI Y/R[K'[/R\\/R]Kg^/Rd ~_/Rm `/RAa/RYٚb/R\^c/RT/RCL/RCL/RCLg/Ru /RCL/RCL/RCL/RCLm/RGZ$n/R4o/RsW /RCL/RCL/RCL/RCL/RCL/RCL/RCLw/RJ8Rx/RV >y/Ra/ROP{/Rh33 |/RWO}/Rdc~/R^/RC/RF8/RpX ~/RCL/Re7 |/RCL/RI/RGD/RJ/RJ `u/RCLt/RCL/RE"N/R{ /Ry 5/RM=6/RN/RCL/RCL:/R Fq;/R A,K/RXCL/RZCL]/R\GJY^/R]y /R`CL/RaCLa/RcA/RfCL/RgCLd/RiE/RlCLf/Rm^/RnCLh/RpIi/RqMU/RtCLk/Rw\`4 l/RxO m/RyM n/R|sٚo/R}kTp/Rn q/RgG r/Rg s/RO"t/RN` u/RE/RCL/RCLx/RC~y/RLuz/RC/RCL/RCL}/RJ~/RLT/RLV/REt/RCL~/RCL/RN/RXG /Rh@/Ri/Re/RCL /R~OI /RCL/RCL /Rԣ9/RCL/RCL/RE#/RCL/RCL/Rm /RrM /RCL/RCL/RCL/RS /R`f/RI4/RJ/RP*/R`/Re >/Rc!/RPٚ"/RM#3#/Rx&g$/RI%/ROa&/R MxB'/R!M<(/R"Ax/R$CL*/R%c#+/R'b/R*CL-/R,A/R.CL/R/CL0/R1jg1/R2Ui2/R4L3/R6N!4/R7D/R9CL6/R:]/R;CL8/R=E/R@CL:/RBAH/RECL/RVR/RCL/RCL/RCL/RCL/RCL/RCL/RCL/R^/RCL/RCL/RCL/RM̓/RCL/R D/R CL/RCL/Rv /RCL/RCL/RCL/RCL$/RLh%/RJ&/RDI'/RGCL*/RJL7,/RKQ/RLCL./RNCp/RQCL/RRCL/RSCL/RTCL3/RWt4/RYA6/R[OFf7/R\L8/R]D39/R`H/ :/RbQ3;/RcR@/RiW?/RjJ=@/RkH A/Rmr /RpCLD/Rro7 E/RtGLF/RuFG/RvZ/Ryk6f/RzpP/R|h/R]y/R^/RIz/Rb /R` /RI>/RKF!/RCL /RCL/RCL/Rfm /RCL/RC/Rs /R@X/RA/Rh/RB\/RCL/RCL/RCL/RCL/RCL/RF/RI:/RF#{/Ru&/R]=q/R@/Rm /Ry /Rq /RHd/R`?/RC/RAG/Rp /R[NP/R CZ/R C*/RD</RPty /RcU /R^6f/RG3/R^/RCL/RCL/RCL/RCL/RCL/RCL/RCL/R!CL/R"CL/R%L/R&H"/R'I/R(JC/R+KW /R/ef }e/Ro}f/RHM3: v N3:D&O3:BhP3:GTQ3:hR3:P.ZS3:r T3:I60V3:n5 X3:IhY3:K"[3:;g\3:N ^3:"c{_3:#v9 `3:$A)wa3:&X4b3:'[34c3:)S3:+CL3:,CL3:-CLg3:/u} 3:1CL3:2CL3:3CL3:5CLm3:8G5n3:;go3:ds^ 3:fCL3:gCL3:hCL3:jCL3:kCL3:lCL3:mCLw3:pQ\x3:qVy3:re3:sOP{3:uq7 |3:vWх}3:wfI~3:y^3:|C3:}F*3:q ~3:CL3:d |3:CL3:Ij3:D3:J3:Ou3:CLt3:CL3:F3:{- 3:{^5 53:MM63:Nk3:CL3:CL:3:F;3:A<3:Yt?3:Fq3:CL3:CLB3:FTC3:MKD3:G>yE3:dQF3:{zG3:i\H3:SO L3:t >M3:rǯN3:}O3:nn P3:gX Q3:DR3:XXT3:LU3:K:V3:DIS3:CL3:CLY3:DZ3:| z 3:CL3:CL]3:Q[^3:y 3:CL3:CLa3:A3:CL3:CLd3:-EW3:0CLf3:1^3:2CLh3:4IΘi3:5LL3:8CLk3:;\ l3:L n3:Atٚo3:Bk=p3:Ds# q3:Ek{ r3:Fl s3:GO)t3:HNau3:IA"3:KCL3:LCLx3:OC.y3:PJb]z3:QD3:TCL3:UCL}3:WJ ~3:YLǀ3:ZL 3:[E3:]CL~3:^CL3:aM73:cR 3:de3:eff3:fc03:CL 3:t!N 3:CL3:CL 3:83:CL3:CL3:E3:CL3:CL3:ll 3:oG 3:CL3:CL3:CL3:Q 3:U33:L$3:L33:P3:dQ3:hfg3:gg!3:[l"3:L#3:wٙ$3:I%3:O>&3:Mi'3:M{(3:A^v3:CL*3:m3+3:*Q3:CL-3:A3:CL3:CL03:jg13:P23:Kc33:N43:C3:CL63:]3:CL83:E3:CL:3:A3:CL<3:@=3:A3: CL3: CL@3:MA3:K06B3:B3:CL3:CLE3:gH3:x-I3:` J3:AK3:XiL3: Y#3:#[-F 3:$ixB 3:&M[3:'Hd3:(H3:+ixB 3:,ixB 3:-Hs<3:.i 3:X~3:YHVF3:]Lv3:_I3:`M 3:cE3:eM 3:hEV3:iLo3:jH83:lJP3:mI^!3:nd] 3:qS3:'V@?3:(JG@3:)H8A3:,r 3:.CLD3:0oXB E3:2GuF3:3GPG3:4Y3:8j 3:9o3::h3:=\3:>`i3:?HЗ3:@bq 3:A`6 3:BIiN3:DK0!3:GCL 3:HCL3:ICL3:Kh 3:NCL3:PC 3:Qrz 3:R@3:TB3:UN 3:VBc3:YCL3:ZCL3:[CL3:CL3:CL3:FD3:I3:FG3:u3:]=q3:@۶3:n% 3:y 3:rf3:Hp3:a=#3:D 3:At3:A&f 3:Y#p3:C3:C3:DO!3:T 3:aU 3:^,3:If3:^3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:L`i3:H(3:Il3:J*~3:K\)3:gS3 }e3:UbZ}f3:IzEM3: v N3: EO3:z P3:HQ3:iR3:PeS3:@.T3:BV3:`1 X3:I9Y3:J[3:\3:J^3: d_3:!e `3:#Bla3:Lob3:Npc3:Ok}q3:QCL3:RCL3:SCLg3:UvE 3:WCL3:YCL3:ZCL3:[CLm3:^Gn3:ao3:bsfg 3:dCL3:eCL3:gCL3:hCL3:iCL3:jCL3:kCLw3:nL#x3:oR)y3:p`\*3:rOP{3:u_UV |3:wW+}3:xf~3:z^3:}C3:F3:p| ~3:CL3:bR |3:CL3:I3:G13:Jr3:K9u3:CLt3:CL3:E3:{9 3:{ 53:Mk63:N3:CL3:CL:3:G;3:C-5<3:Y ?3:F/3:CL3:CLB3:F7 C3:KgD3:GJE3:aqF3:u\*G3:rH3:S_ L3:hM3:fN3:oHO3:m P3:f Q3:DR3:XTT3:Lc)U3:Kk+V3:D3:CL3:CLY3:D|Z3:D3:CL3:CL]3:M1^3:x# 3:"CL3:#CLa3:%@3:(CL3:)CLd3:+E3:.CLf3:0^3:1CLh3:3Ii3:4V) 3:7CLk3::\Ơ l3:;M33 m3:3:X?3:JL{@3:H1CA3:p 3:CLD3:o۔ E3: GkF3: FjG3: ZJ3:7n3:8uf3:9l3:<]^3:=`3:>IEk3:@bq 3:A`6 3:BIk3:DKfv!3:FCL 3:GCL3:HCL3:Jjp 3:MCL3:OC3:Qr 3:RA:%3:SBy3:Ud23:VBp63:XCL3:YCL3:ZCL3:[CL3:]CL3:`E;3:aIl3:bFq3:cvY3:f]@3:gA3:hme 3:iy3 3:lp93:Hw3:_:3:C3:@3:L 3:[H3:CG3:C޲3:Dg3:W 3:b 3:`3:Gf3:^3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:LU{3:H3:Ii3:J)3:K\)3:d }e3:Ul@!}f3:IM3: vn N3: EO3: AFP3: HQ3: hR3: P"S3: A/T3: H4V3: m, X3: I-Y3: K[3: \3: N^3: "ekP_3: #s `3: %Da3: &Y{b3: ']s4c3: (Sٚ3: *CL3: ,CL3: -CLg3: /v 3: 1CL3: 2CL3: 3CL3: 4CLm3: `Hn3: c4o3: ds{c 3: fCL3: gCL3: hCL3: iCL3: jCL3: lCL3: mCLw3: pO{x3: qYW y3: rc3: sOP{3: wo |3: yV]}3: zh~~3: |^3: Dki3: F3: oK ~3: CL3: bl |3: CL3: It 3: HFX3: JL3: HSu3: CLt3: CL3: F]/3: zu 3: zC 53: M63: Ns3: CL3: CL:3: GJY;3: N"&<3: Sg?3: F3: CL3: CLB3: EC3: HED3: GYnE3: lF3: AG3: jBH3: S L3: iM3: f.N3: qO3: m<8 P3: fq Q3: D̘R3: X7T3: L1U3: K&V3: C3: CL3: CLY3: D4KZ3: A3: CL3: CL]3: E"^3: w% 3: CL3: CLa3: @3: )CL3: *CLd3: ,ET3: /CLf3: 0^3: 1CLh3: 3Ii3: 4V3: 7CLk3: :\ l3: ;O=q m3: =M3 n3: @uYo3: AlCp3: Cp\ q3: Dj{ r3: EkQ s3: FO:_t3: GNu u3: HEl3: JCL3: KCLx3: MC{y3: ORz3: PF3: SCL3: TCL}3: VJF~3: XL3: YKP3: ZEh{3: \CL~3: ]CL3: `Kz3: bX~ 3: cgvf3: d33: `f3: CL 3: t4 3: CL3: CL 3: 3: CL3: CL3: E3: CL3: CL3: mJ 3: rp 3: CL3: CL3: CL3: W 3: Q3: Ic33: H3: Q33: dQ3: h >3: g{!3: X3"3: Nf#3: pl$3: IW%3: O&3: Mk}'3: MY?(3: CT3: CL*3: OT+3: 3: CL-3: A"3: CL3: CL03: fD-13: V23: K33: Mƶ43: C3: CL63: ]3: CL83: FxC3: CL:3: @۶3: CL<3: B\=3: D3: CL3: CL@3: NA3: K3B3: C3: CL3: CLE3: dYH3:FI3:z J3:^K3:\L3:Go3:\o 3:ixB 3:M3:H3: H@3:#ixB 3:$ixB 3:%H 3:&i 3:(~j3:)G3:,Lv3:/I'3:0M 3:3E3:5M 3:8EV3:9R 3::H83:eb3 3:AS3:W?3:JU@3:H-A3:o 3:CLD3:n E3:GjF3:FRG3:YM3:m3:s3: lg3: ]l3: `j3:H3:b 3:`q. 3:I3:Jn!3:>CL 3:?CL3:@CL3:BfE 3:ECL3:GB=3:Hr 3:J@-S3:KA3:LYy( 3:MB+3:PCL3:QCL3:RCL3:SCL3:TCL3:WE3:YIY3:ZF?3:[vc3:^]=q3:_@3:`m 3:ay 3:dr33:gH~R3:he83:jC3:k@3:m@ 3:p[Y3:qCe3:rC{3:sD3:vR; 3:b* 3:_P3:H3:^3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:CL3:L[3:Hض3:Iv3:J6N3:KW 3:g3 }e3:Li#V}f3: IM3:v N3:EO3:BR P3:GQ3: ihR3: PS3: q+ T3: GV3:hJ X3:I;YY3:Kz[3:\3:L^3:cj_3:pc `3:Ca3:Zb3:Y}qc3:S3: CL3:!CL3:"CLg3:$v  3:'CL3:(CL3:)CL3:*CLm3:-H5sn3:0o3:1sfg 3:3CL3:5CL3:6CL3:7CL3:8CL3:9CL3::CLw3:=Ix3:?V(y3:h^{3:iOP{3:ll33 |3:nX}3:oh ~3:q^3:uDy3:vF!h3:ynB ~3:{CL3:}a |3:CL3:I5J3:F&a3:I\3:G3u3:CLt3:CL3:F3:zu 3:{ 53:M(63:N%3:CL3:CL:3:G;3:M<3:Z0?3:F>K3:CL3:CLB3:EWC3:CD3:G>yE3:jF3:yG3:ikH3:SS L3:hM3:@N3:vO3:k P3:e!4 Q3:DR3:WT3:KU3:JV3:Cμ3:CL3:CLY3:DGZ3: 3:CL3:CL]3:W"^3:up 3:CL3:CLa3:~@ 3:CL3:CLd3:F 3:CLf3:^3:CLh3:Ji3:US[3:CLk3:\C l3:OB m3:0M8R n3:3tfo3:4lFXp3:7o q3:8h r3:9i s3::OG*t3:;N}Eu3:CL3:?CLx3:AC:y3:BOPz3:DE3:GCL3:HCL}3:JJ~3:LLi3:ML,3:NE3:PCL~3:QCL3:SKM3:VYC 3:Wd33:Xf3:Ya3:[CL 3:]tU 3:`CL3:aCL 3:b3:TW?3:UJO7@3:VH4A3:Xp 3:[CLD3:]oI E3:_G^KF3:`F:G3:aX3:kl43:mri3:nj3:q]|3:s`3:tHv3:ubq 3:v`' 3:wIw3:xJ!3:|CL 3:CL3:CL3:hq7 3:CL3:Bw3:r+ 3: 3:AW33:3:B3:CL3:CL3:CL3:CL3:CL3:E3:I=s3:F3:v(3:]=q3:@b3:m 3:yt 3:pff3:H3:[ 3:C^E3:@3:p 3:Z3:CcZ3:C3:D3:R 3:cH 3:a03:Hl3:^3:CL3:CL3:"CL3:#CL3:$CL3:%CL3:'CL3:(CL3:)CL3:,LR3:-H3:/I{.3:0JG3:3KW 3:8fy }e3:O%}f3:I~xM3:u N3:E O3:{M P3:H;}Q3:hR3:OBS3:q T3:D ]V3:c% X3:IP-Y3:J}[3:e\3:M^3:c_3:i `3:B'a3:rRb3:t4c3:pxR3:CL3:CL3:CLg3:u4 3:CL3:CL3:CL3:CLm3:Gn3:o3:sQl 3:CL3:CL3:CL3:CL3:CL3:CL3:CLw3:Kzx3:Uy3:^3:OP{3:b |3: W }3: f+~3: ^3:D3:E3:n ~3:CL3:`H |3:CL3:FI3:GF3:IIQ3:LH/u3:NCLt3:OCL3:RFu3:Szw 3:T{{ 53:VM,63:XNP3:ZCL3:[CL:3:]G;3:^L><3:_Y{?3:`E3:cCL3:dCLB3:fEGC3:gK/7D3:hGa"E3:jT>F3:lj\G3:mZH3:nT L3:o[{M3:pXN3:qdO3:tf P3:ud Q3:vDR3:xMT3:yKoU3:{JV3:|C3:~CL3:CLY3:CZ3:E3:CL3:CL]3:M?^3:Ff3:CL3:CLa3:C3:CL3:CLd3:F3:CLf3:^3:CLh3:J,i3:T 3:CLk3:\C l3:MQ m3:KR n3:so3:lo<p3:mL q3:i=q r3:kk s3:OOdt3:Nzu3:D3:CL3:CLx3:Cy3:Lhz3:DQN3: CL3:CL}3:Jn~3:L3:K}3:E 3:CL~3:CL3:Jf3:Y 3:f3:g3: d33:!CL 3:#u6 3:&CL3:'CL 3:(/3:*CL3:+CL3:-D̘3:/CL3:0CL3:2m<8 3:4qWP 3:6CL3:7CL3:9CL3:;u 3:=T3:>K33:?K3:BQ33:Dm{3:Epg3:Fq!3:GE"7"j#7"Vٚ$7"IC%7"P&7" M'7" M(7" C7" CL*7"Hgp+7"7"CL-7"A7"CL7"CL07"f17"W27"KU37" Mj47"!CNO7"#CL67"$]7"%CL87"'E7"*CL:7",@u7"/CL<7"1A=7"2C 7"5CL7"6CL@7"9M"#A7":KB7"ez 7"hCL7"iCLE7"lvUH7"mEI7"phZ J7"qIMK7"tHnL7"v} 7"yZB 7"zixB 7"|M7"}HO 7"~H`i7"ixB 7"ixB 7"Hd7"i 7"~#7"F47"Lv7"I@7"M 7"E7"M 7"EV7"R 7"I7"J7"Ii7"d] 7"SCL7"?CL7"@CL37"BtO47"DA67"GJg77"HJS387"IKs397"LHF:7"NK34;7"ON3<7"PK7"QCL>7"TXw ?7"UJT@7"VH<-A7"Yp- 7"\CLD7"]n$ E7"_GR{F7"`FRG7"aY7"ej7"fp47"gi37"]O7"`p7"HR7"b 7"` 7"IZ7"K"!7"CL 7"CL7"CL7"l 7"CL7"B7"t' 7": 7"A+7"R 7"B7"CL7"CL7"CL7"CL7"CL7"EU7"I7"Fo7"ue7"]=q7"@}B7"m 7"z 7"m7"H7"cP7"CFT7"DB7"@ 7"Y&P7"Io7"D"(7"D7"WS 7"a&f 7"]f7"GFf7"^7"CL7"CL7"CL7"CL7" CL7" CL7" CL7" CL7" CL7"LF7"H7"Iv7"JE7"KW 7"iff}e7"_c}f3:RIQM7"_uK N7"aEO7"b P7"cHQ7"fhaR7"gOyS7"hpӖ T7"jGkV7"kiz X7"mICY7"nJG[7"o"\7"pM?^7"tdQ_7"uqr `7"wA5a7"xZEb7"y\c7"zS7"|CL7"}CL7"CLg7"u} 7"CL7"CL7"CL7"CLm7"Gv9n7"4o7"r 7"CL7"CL7"CL7"CL7"CL7"CL7"CLw7"Ox7"Zy7"^7"OP{7"mUU |7"WpE}7"hE]~7"^7"CK7"E7"m ~7"CL7"` |7"CL7"H7"E=7"I7"Mu7"CLt7"CL7"Ft:7"z 7"zR 57"M*67"N}7"CL7"CL:7"Gu;7"KY<7"Z?7" D7"#CL7"$CLB7"&DZC7"'S D7"(GYnE7"*aF7",l=qG7"-e4H7".T1 L7"/j+M7"0gpN7"1s*O7"4g P7"5dR Q7"6ByR7"8KJT7"9KU7":J V7";C7"=CL7"?CLY7"AC~Z7"B@`27"ECL7"FCL]7"H\l^7"IH7"LCL7"MCLa7"OF7"RCL7"SCLd7"UF7"XCLf7"Y^7"ZCLh7"JIi7"S87"CLk7"\y l7"N m7"L n7"so7"m%Ip7"o q7"j r7"j s7"OZ\t7"Nu7"DE7"CL7"CLx7"C4y7"K(z7"E7"CL7"CL}7"J~7"Lb7"K7"DZ7"CL~7"CL7"IΘ7"Ya 7"eS37"eٚ7"a7"CL 7"u 7"CL7"CL 7" 7"CL7"CL7"DX7"CL7"CL7"l5h 7"pa 7"CL7"CL7"CL7"u 7"eD7"^$7"\S37"QR_7"a7"eO\7"e!7"nٚ"7"e@#7"[Ff$7" I}%7" P&7" MA'7" L*(7"} 7"CL*7"_\u+7"7"CL-7"AZ7"CL7"CL07"!hr17""VZ27"LK<37"MMC]47"NB7"PCL67"Q]7"RCL87"TE7"WCL:7"Y@Je7"\CL<7"^A=7"_C7"bCL7"cCL@7"fM0A7"gJ0B7"hBk7"jCL7"kCLE7"nd.H7"oDsI7"rbX' J7"te$K7"vHGrL7"yx 7"|\5 7"}ixB 7"M^7"G/7"G7"ixB 7"ixB 7"G7"i 7"~)7"Go7"Lv7"I\7"M 7"E7"M 7"EV7"Lv7"I7"JP7"Iu7"` 7"SIZ7"ACL7"BCL7"CCL7"ECL37"Gt>47"IA67"LQ077"MO87"NH397"yHߪ:7"{Ny;7"|P<7"}K37"~CL>7"W?7"JS@7"H:[A7"rk 7"CLD7"oK E7"GLF7"FjG7"W 7" Zl&f7" [r 7" \k#37" _\7" `^3n7" aG)7" bbE 7" c`S 7" eI\7" gKp!7" iCL 7" jCL7" kCL7" mm 7" pCL7" rAZ7" tr 7" u@7" v@b7" xe+7" yB87" {CL7" |CL7" }CL7" ~CL7" CL7" F7" H7" F7" u! 7" ]:7" @&7" mi 7" z+ 7" pVf7" Hw7" a7" C,7" @:g7"  7" [7" BV7" CW7" Dw7" V 7" `ٚ 7" ^<7" F37" ^7" CL7" CL7" CL7" CL7" CL7" CL7" CL7" CL7" CL7" L^7" H7" Ii7" J<7" KQ7" f&f }e7" xl}f7"IM7" 3tF N7" 5EO7" 6@]P7" 7H<Q7" :hgR7" ;OS7" =p T7" >H V7" ?kH X7" AI=(Y7" BJބ[7" C*m\7" DN^7" Hf_7" Ir `7" JAFa7" LWqb7" M[qc7" NXf7" PCL7" QCL7" SCLg7" Uu 7" WCL7" CL7" CL7" CLm7" G2Jn7" o7" q 7" CL7" CL7" CL7" CL7" CL7" CL7" CLw7" Nzx7" ZǮy7" ]f7" OP{7" nwx |7" W}7" ia@~7" ^7" Ck7" F7" wt ~7" CL7" bD |7" CL7" H27" G7" IIw7" Lu7" CLt7" CL7" G7" ~ 7" }I 57" M$\67" NP7" CL7" CL:7" GQ;7" Hnm<7" Z`?7" DJ7" CL7" CLB7" DQNC7" O>D7" GME7" czF7" q >G7" `zH7" T* L7" e^M7" bN7" nnO7" mv P7" fm Q7" CR7" WhT7" KU7" JmV7" C7" CL7" CLY7" BZ7" B7" CL7" CL]7" Pë^7" Hx 7" KCL7" LCLa7" NA$Z7" QCL7" RCLd7" TF(7" WCLf7" X^7" YCLh7" [Ji7" \Px7" _CLk7" b\g l7" cNz m7" dL n7" gs o7" hl޶p7" jnq q7" lj r7" mk s7" nOmt7" oNi.u7" pD7" rCL7" sCLx7" uCpy7" vR/z7" xG )7" {CL7" |CL}7" ~JZ~7" L7" Kڮ7" D7" CL~7" CL7" Ha7" Z 7" e7" e37" b7" CL 7" t 7" CL7" CL 7" [C7" CL7" CL7" Dg7" CL7" CL7" kw 7" p 7" CL7" CL7" CL7" tl 7" f47" ^f7" _I7" Q7" ]7" a 7" e!7" wff"7" g33#7" _,$7" I%7" P>&7" M'7" L-(7" ~# 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ 7"y[~ 7"zixB 7"|M7"~Gp7"G7"ixB 7"ixB 7"G7"i 7"~k7"Go7"Lv7"H7"M 7"E7"M 7"EV7"Lv7"I7"JP7"Inx7"`w/ 7"SCL7"?CL7"@CL37"Ct)47"EA67"GTɚ77"HN87"IHi97"LH1:7"NN;7"OQ<7"PM\7"RCL>7"UWB ?7"VJu@7"WH"A7"Ys 7"\CLD7"^oI E7"`GWF7"aFG7"bXU7"em.g7"fo7"hgf7"k\<7"l\7"mG07"nbE 7"o` 7"pHa7"qJ|1!7"tCL 7"uCL7"wCL7"fE 7"CL7"A7"r]\ 7"FL7"AO7"ND 7"B7"CL7"CL7"CL7"CL7"CL7"F+7"I<7"F987"uF7"]:7"@47"m4 7"z:D 7"m37"Hp7"fYl7"C7"@/7"Ǯ 7"Y0^7"CJ7"Cf7"D17"O 7"aU 7"^|7"Hs37"^7"CL7"CL7"CL7"CL7" CL7" CL7" CL7" CL7"CL7"L 7"HD7"Ii7"J8 7"KQ7"Zf }e7"^-}f7" KM7"9u. N7";EO7"<~ P7"=H5Q7"hhFR7"iOѦS7"kp- T7"lEV7"me X7"oIHY7"pJބ[7"qc\7"sM](^7"vd[_7"wk8 `7"xA)wa7"zsb7"{v:c7"|q7"~CL7"CL7"CLg7"u} 7"CL7"CL7"CL7"CLm7"Gn7"s4o7"qn 7"CL7"CL7"CL7"CL7"CL7"CL7"CLw7"Pffx7"U)y7"_G7"OP{7"c |7"Xn}7"gp~7"^7"C]7"FI7"tj. ~7"CL7"b~k |7"CL7"Hq7"HD-7"I@7"I'u7"CLt7"CL7"H7"~33 7"| 57"M'67"N{q7"CL7"CL:7"G`;7"Gk<7"T?7"EZ7"CL7"CLB7"D- C7"L^(D7"GJE7"YF7"s*G7"]H7"0TCz L7"2e@M7"3bN7"4mO7"7lD P7"8ejU Q7"9DSR7";W@T7"Cd7"@CL7"ACLY7"CBZ7"DuD 7"GCL7"HCL]7"KL;^7"Lw 7"OCL7"PCLa7"R@;7"UCL7"VCLd7"XF 7"[CLf7"\^7"]CLh7"_JFi7"`Oe7"cCLk7"f\g l7"gM) m7"hLk n7"ksٚo7"lfp7"nu q7"g r7"hz s7"Ott7"Nau7"D7"CL7"CLx7"Cpiy7"PTz7"F?7"CL7"CL}7"JZ~7"Li7"L7"DN7"CL~7"CL7"H]7"Y 7"fi7"gT7"cf7"CL 7"A7"CL7"CL 7"ǣ97"CL7"CL7"E7"CL7"CL7"ll 7"f 7"CL7"CL7"CL7"E2#7"b7"ZQ7"X7"QV/7" X#7" [7" [!7" @Y"7"o#7"T$7"I%7"Pc&7"Mk}'7"LT(7"}h 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ 7"Z 7"ixB 7"M6]7" G7"!G7"%ixB 7"&ixB 7"'G7"(i 7"*~J7"+H7".OPP7"0I7"2M 7"]E7"_M 7"bEV7"cP7"dI7"fJP7"gIZ7"h`w/ 7"kS7"YE1?7"JxB@7"H(A7"$r 7"'CLD7")o E7"+GNF7",FG7"-Z7"0h17"2n,7"3f7"6[7"7_ګ7"8H7"9b 7":_޿ 7";H7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ 7"[ 7"ixB 7"M7"G7"G7"ixB 7"ixB 7"G7"i 7"~'Q7"Go7"O^17"HI7"M 7"E7"M 7"EV7"K7"I7"JP7"Il7"`w/ 7"S7"nW?7"oJ4@7"pH>A7"ssc 7"vCLD7"xn$ E7"yGK5F7"zF6G7"{X7"f7"l7"d7"[7"`%7"G"7"b. 7"`6 7"H7"J!7"CL 7"CL7"CL7"mv 7"CL7"BE7"s)~ 7"AH7"@7"B 7"B7"CL7"CL7"CL7"CL7"CL7"F7"I7"F/7"uL7"]:7"@X7"mi 7"zWc 7"r37"Hsg7"_p7"CY7"@67" A. 7"Y(7"C 7"Ct7"D7"W 7"Rٚ 7"[37"CC37"^7"CL7" CL7"!CL7""CL7"#CL7"$CL7"&CL7"'CL7"(CL7"+Ll7",H7"-Is7"/J6N7"2KQ7"5fY }e7"ZTJ}f7"L M; #u N; %EO; &AzP; 'H~Q; *gR; +OS; -K T; .IV; /n X; 1IOEY; 2K[; 3\; 4L^; 8cu_; 9uG `; ;B,ca; dWqb; e[c; fS0; hCL; jCL; kCLg; mu ; oCL; pCL; qCL; rCLm; uGc3n; yo; zq׷ ; |CL; }CL; ~CL; CL; CL; CL; CLw; Lx; Ty; ^q; OP{; r8Q |; W_}; f~; ^; C; Fh; p ~; CL; b& |; CL; HS; Go; I&; GOu; CLt; CL; HH; } J ; }+ 5; M*6; N@; CL; CL:; G:;; H-<; ^a?; Ez; CL; CLB; DC; DD; GpE; TzF; i\G; YH; Txt L; pYM; n >N; y4O; k P; f/ Q; DSR; QaT; JU; IV; CW; CL; CLY; B+Z; D̘; .CL; /CL]; 1HVF^; 2z ; 5CL; 6CLa; 8@=; ;CL; ET; ACLf; B^; CCLh; EJi; FN0 ; ICLk; L]f l; NN m; OL n; Rto; Smp; UqH q; Vm\) r; Wn8R s; XOzZt; YNMu; ZEt; \CL; ^CLx; `CUy; aN,z; bFxC; eCL; fCL}; Jn~; L; L,; D; CL~; CL; H7"Y 7"fi7"gT7"cf7"CL 7"A7"CL7"CL 7"ǣ97"CL7"CL7"E7"CL7"CL7"ll 7"f 7"CL7"CL7"CL7"E2#7"b7"ZQ7"X7"QV/7" X#7" [7" [!7" @Y"7"o#7"T$7"I%7"Pc&7"Mk}'7"LT(7"}h 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ ; \ ; ixB ; L2H; H; H; ixB ; ixB ; G`; i ; ~Z; H; O^1; I; M ; E; M ; EV; Rf; I; JP; I_; `w/ ; S; xY?; yJt@; zH)A; }sU: ; CLD; o E; GMF; F6G; Zh; fQ; kf; d; Z; ^; GD; bb ; ` ; Hk; J3!; CL ; CL; CL; gj ; CL; Aq; rE ; Fv ; @; M-# ; Bn; CL; CL; CL; CL; CL; E; I,; F7; tV; ]:; @n; m ; zWc ; r; Hp; _^; CT; @X; An ; W; Cv; Cm; D; "NO ; %k"" ; '`; (L; )^; *CL; +CL; ,CL; -CL; /CL; 0CL; 1CL; 2CL; 3CL; 6K ; 8HM; 9Ii; :J1; =KL; @g }e; av}}f; KVM; tF N; E*O; z P; GQ; hR; OS; A$ZT; C5V; a X; IXUY; J[; Sr\; L(^; e_; g `; Ca; nW b; p c; kٙ; CL; CL; CLg; u_ ; CL; CL; CL; CLm; H"in; 4o; r ; CL; CL; CL; CL; CL; CL; CLw; Gx; Uy; [p; OP{; ` |; Xx}; f}~; ^; C; F; m ~; CL; `> |; CL; H[ ; FY;  I5;  MQu; CLt; CL; G; | ; |F 5; M*6; M; CL; CL:; G} ;; I~<; YW?; !EO; LCL; MCLB; OCC; PGSCD; QGYnE; SPHF; TlG; UOH; VTt L; WbM; X`\N; YkO; \lD P; ^g Q; _C'R; aPzT; bJBU; cI٬V; dC; fCL; gCLY; iBZ; jE@; mCL; nCL]; pE^; q@; tCL; uCLa; wC ; {CL; |CLd; ~FR; CLf; ^; CLh; Jni; Mtg; CLk; ]K l; Lz m; K n; to; lp; l{ q; h r; f) s; Ovt; NF|u; D3; CL; CLx; CL!y; Lz; C; CL; CL}; J˽~; L; L; D; CL~; CL; Hd7"Y 7"fi7"gT7"cf7"CL 7"A7"CL7"CL 7"ǣ97"CL7"CL7"E7"CL7"CL7"ll 7"f 7"CL7"CL7"CL7"E2#7"b7"ZQ7"X7"QV/7" X#7" [7" [!7" @Y"7"o#7"T$7"I%7"Pc&7"Mk}'7"LT(7"}h 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ ; [-F ; ixB ; MV$; Gz'; G; ixB ; ixB ; G; i ; ~J; H; Lv; I$; M ; E; M ; "EV; #Lv; $I; &JP; 'IM; (` ; +Q; ,Eʘ; /CL; 2G^; 5DF-; 7CL; 8CL; 9CL; :CL; ;CL; u ; CL; CL; CL; CL$; L^%; J&; P*; CL*; M",; PX; CL.; Cpi; CL; CL; CL; CL3; t4; A6; N37; H8; {29; H1:; N3;; NY<; K; CL>; X?; Jvn@; H)A; s ; CLD; o E; GJMF; F6G; Yd; e; kg; d3; Zg_; `; G=; b ; `q. ; H; Jm!; CL ; CL; CL; mJ ; CL;  B ;  sU: ;  ~ ;  @; ; B; CL; CL; CL; CL; CL; BE ; CI?C; DE/; Etxf; H]:; I@; Km ; Lze ; Or; RHw ; SZj; TC\; U@; W@ ; ZY; [C<*; ]C; ^D=; aW ; d]" ; e]f; fG3; g^; hCL; jCL; kCL; lCL; mCL; nCL; oCL; pCL; rCL; uL ; vHx; wI[g; xJ4}; {KL; f3 }e; K<}f; Kd0M; t` N; E%O; gf P; GQ; h8R; OBS; AT; FV; h X; ILY; Kz[; ֦\; M]^; c]H_; p* `; D1a; W\b; Xfc;  Sn;  CL;  CL; CLg; te ; CL; CL; CL; CLm; H,n; 34o; r+ ; CL;  CL; "CL; #CL; $CL; %CL; &CLw; )K\)x; *Yuy; ,Y{; -OP{; 0lDD |; 2W}; 3h0~; 5^; 8De; :FХ; =m ~; ?CL; Aah |; CCL; nHXf; pF; qIL; tIu; vCLt; wCL; zFF; {| ; |{33 5; ~M2 6; Mi; CL; CL:; G`;; NVA<; X?; EV; CL; CLB; CμC; PD; GQE; W F; hG; RpH; T L; ]\)M; ZkN; fO; k P; g/ Q; B R; P[T; JU; IV; C; CL; CLY; BZ; EsZ; CL; CL]; D^; CSc; CL; CLa; E@; CL; CLd; F; CLf; ^; CLh; Ji; L%; CLk; ]b l; Mff m; KH n; tLo; lp; pL q; j r; j\ s; Onxt; NCu; D-; CL; CLx; CDy; Jgz; D;  CL; 5CL}; 7J,~; 9L; :K; ;D; =CL~; >CL; @Hd7"Y 7"fi7"gT7"cf7"CL 7"A7"CL7"CL 7"ǣ97"CL7"CL7"E7"CL7"CL7"ll 7"f 7"CL7"CL7"CL7"E2#7"b7"ZQ7"X7"QV/7" X#7" [7" [!7" @Y"7"o#7"T$7"I%7"Pc&7"Mk}'7"LT(7"}h 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ ; CY ; DixB ; FMW; GG; IG; LixB ; MixB ; NGx; Oi ; Q~'Q; RGo; UOBo; WH; YM ; \E; ^L; aEV; bO;]; cI; eJ-8; fIa; g`w/ ; jQ; kEʘ; mCL; G^; DF-; CL; CL; CL; CL; CL; CL; CL; CL; vg; lg; D 3; P; OxR; MR; CL; CL; CL; CL; CL; CL; CL; ^; CL; CL; CL; M; CL; CI; CL; CL; s ; CL; CL; CL; CL$; L'%; J&; M ; CL*; L,; P; CL.; H; CL; CL; CL; CL3; tK 4; A6; Lf7; F)8; }ٙ9; H]:; Lٚ;; Jp<; IC3; CL>; W?; J{@; !HA; $r ; 'CLD; )n4a E; *GFF; +F|G; ,Y; 0e; 1k; 2e1; 5Y; 7\^; `G6; ac ; b`d ; cHH; dJ !; gCL ; iCL; jCL; lh ; oCL; qB; rt!N ; sEV[; tA2; w; xB/; zCL; {CL; |CL; }CL; ~CL; E; I; EL; s; ]:; @; m4 ; ze ; p); Hy; [l; C|; @q; @O\ ; X; G3; ZS; D; Ok ; f@ ; ^; L; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; L ; H`; IJ(; J*~; KL; hٚ}e; wM^c}f; zJKM; +t N; -E"O; .A}P; /GQ; 2gxR; 3OʅS; 4q T; 6HzV; 7n X; 9IF7Y; :J[; ;)\; x; Ry; X; OP{; l |; X*1}; h-~; ^; D; F`; m ~; CL; a |; CL; HZ7; F-; I ; L~u; CLt; CL; F; { ; z 5; M8k6; M*; CL; CL:; G} ;; N4<; T?; E; CL; CLB; C{C; Q.D; G:E; LBF; _G; O\H; T L; k}qM; hN; e4O; k. P; f Q; BR; PT; JBU; I<V; C; CL; CLY; B5Z; Ed; CL; CL]; D|^; C; CL; CLa; E]; CL; CLd; !ET; $CLf; %^; &CLh; (Jni; )N; TCLk; W]u| l; XN m; YM\) n; \uo; ^m$p; `s\ q; alaH r; bkL s; cOht; dN;u; eE; gCL; hCLx; jC/y; lJCz; mD_; pCL; qCL}; sIk~; uLp; vKC; wD; yCL~; zCL; |Jn7"Y 7"fi7"gT7"cf7"CL 7"A7"CL7"CL 7"ǣ97"CL7"CL7"E7"CL7"CL7"ll 7"f 7"CL7"CL7"CL7"E2#7"b7"ZQ7"X7"QV/7" X#7" [7" [!7" @Y"7"o#7"T$7"I%7"Pc&7"Mk}'7"LT(7"}h 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ ; \ ; ixB ; K; H; H; ixB ; ixB ; G`; i ; ~t; Go; OI_; I-; L; E; L; EV; PW; I; J; I^!; ` ; Q; @ ; CL; G^; DF-; CL; CL; CL; CL; CL; CL; CL; CL; t6g; lg; A; MR; OxR; MR; CL; CL; CL; CL; CL; CL; !CL; #^; $CL; %CL; &CL; (Mْ; )CL; ,C; .CL; /CL; 1tU ; 4CL; 5CL; 6CL; 6CL$; 9L9>%; :J&; =JL; @CL*; BL,; CP1; ECL.; GI; JCL; KCL; LCL; MCL3; Pt4; QA6; TA7; UA@8; Vq39; G{:; Ki;; Ky<; H,; CL>; Y<?; JxB@; HTA; s)~ ; CLD; nQ E; GCF; FG; Z\; e@; jvf; cf; Y?; _{); GK; cjS ; ` ; Hk; J3!; CL ; CL; CL; i& ; CL; A; t ; G-a; @; n; Bv; CL; CL; CL; CL; CL; Ey; Il; Em; sL; ]:; @; m4 ; zt ; m; Hv!; ]$ ; Cp; @; @ ; W0; C!P; C; D; U ; es3 ; ^; J3; ^; CL; CL; CL; CL; CL; CL; CL; CL; CL; HK;; IH ; JI[g; KJ; NKG; Oh}e; h/}f; JKM; rtE N; tE"O; u{| P; vGQ; yi)R; {OS; |p- T; }BOV; ~`1 X; IHY; J^[; +\; L}^; dN_; gq `; Ba; Vb; V8Rc; R); CL; CL; CLg; t ; CL; CL; CL; CLm; HOn; @fo; r@ ; CL; CL; CL; CL; CL; CL; CLw; Jx; Oqy; [B; OP{; cDD |; XZ}; g9~; ^; DW; F',; tj. ~; CL; `b |; CL; HW~; F; H;  Ju; "CLt; #CL; %F/; &|( ; '|~ 5; *M>6; +M; -CL; .CL:; 0G;; 1MC<; 2TmV?; 3Dg; 6CL; 7CLB; 9CC; :OɖD; E=qF; ?[G; @M{H; ATy L; B]M; CZRN; Df O; Gj P; Hf(r Q; IBR; KO,T; tJU; uIV; wC!; yCL; zCLY; |BZ; }E2; CL; CL]; Cμ^; C; CL; CLa; E2; CL; CLd; E; CLf; ^; CLh; Ji; V=; CLk; ] l; K m; J n; tLo; mkp; s( q; l r; k s; Oct; N8u; D; CL; CLx; C y; Rz; C; CL; CL}; I/j~; L; Kd; CH; CL~; CL; GQ7"Y 7"fi7"gT7"cf7"CL 7"A7"CL7"CL 7"ǣ97"CL7"CL7"E7"CL7"CL7"ll 7"f 7"CL7"CL7"CL7"E2#7"b7"ZQ7"X7"QV/7" X#7" [7" [!7" @Y"7"o#7"T$7"I%7"Pc&7"Mk}'7"LT(7"}h 7"CL*7"_D+7"k7"CL-7"A 7"CL7"CL07"h2'17" Ya27"!J737"#L47"$B7"&CL67"']7"(CL87"*E7"-CL:7"/K 7"2CL<7"4AH=7"5Cpi7"8CL7"9CL@7"Cp7"@CL7"ACLE7"D` IH7"EEUI7"Hqz J7"InHK7"tG{L7"v~ ; Y ; ixB ; M; H; H; ixB ; ixB ; GC; i ; ~; Go; Lv; I; L; E;  L;  EV;  K; H8; J:; IS<; `w/ ; =Q; >Eʘ; ACL; DG^; GDF-; ICL; JCL; KCL; LCL; MCL; NCL; OCL; PCL; Tt6g; Ur&f; Vvf; WGR; XN=q; YL; [CL; \CL; ]CL; ^CL; `CL; aCL; bCL; c^; dCL; eCL; fCL; hMޠ; jCL; lC$; nCL; oCL; qu ; tCL; uCL; vCL; wCL$; Ln%; J&; G; CL*; MM,; P; CL.; I; CL; CL; CL; CL3; s4; A6; H&g7; E08; u9; G:; M;; N33<; K4; CL>; Wz?; JwX@; H %A; r]\ ; CLD; mm E; G?eF; FG; X; g ; l; e; X; `D\;  GE;  c>k ;  `׬ ;  Hd;  J3!; CL ; CL; CL; j63 ; CL; A; x ; D; @; R ;  Bk!; #CL; $CL; %CL; &CL; 'CL; *F-; +I; ,EL; .s; 1]:; 2@; 3m7 ; 4zt ; 7n3; :Hr; ;bz; M; u=< N; EO; @CP; H0Q; hR; O[S; pӖ T; GV; j X; I2JY; J@[; +\; Ny^; e_; qr `; BW7a; Uqb; W5c; S; CL; CL; CLg; tl ; CL; CL; CL; CLm; GTn; 4o; qD ; CL; CL; CL; CL; 1CL; 2CL; 3CLw; 6L)x; 7Q y; 8X34; 9OP{; f; *_ff; ,CL ; .s ; 1CL; 2CL ; 3n; \CL; ^CL; `C; bCL; cCL; ej ; fm ; iCL; jCL; lCL; mu^ ; pT0; qK; rQ; uPJ; w_ >; xcz; yb4!; z[Y"; {O33#; |~$; }Iy^%; ~O&; Mѩ'; L`i(; }~ ; CL*; ^6+; ; CL-; @; CL; CL0; e `1; XO2; Jm*3; L,~4; B\; CL6; ]; CL8; EV; CL:; By; CL<; B}=; BUZ; CL; CL@; L-A; JSB; z$ ; CL; CLE; u H; II; b΋ J; p1K; G@L; fE ; Z ; ixB ; K; Go; Go; ixB ; $ixB ; %F:; &i ; (}Ď; )FxC; ,Lv; /Hx; 0L; 3E; 5L; 8EV; 9Qv; :H8; ; Xy?; Jp@; H <A; r ; CLD; m E; G:F; FG; ZW; g; mg; f[3;  Xo;  \;  G; a>' ; _ ; G; I!; CL ; CL; CL; g ; CL; At@; x ;  C; !@; #L ; $B\; 'CL; PCL; QCL; RCL; SCL; VF+*; WIw; XD-; Zs,; ]]6; ^' ; _l ; `zt ; cq; fHe; g^~; hB~; iAZ; lA3 ; oU; pB; qB ; rDt; uO1 ; xnQ ; ya&f; zQ33; |^; }CL; ~CL; CL; CL; CL; CL; CL; CL; CL; KQ; Hj; I^!; JS; KG; yL }e; #_}f; ^J#M; u " N; EO; ~eB P; HQ; gR; O6S; pӖ T; DܭV; d X; I,Y; Jr[; `-\; Pa^; bX_; jUU `; Aa; qb; tW c; paH; CL;  CL; !CLg; #tM ; %CL; &CL; 'CL; )CLm; ,Gn; /@fo; 0o ; 2CL; 3CL; 4CL; 5CL; 7CL; 8CL; 9CLw; XB; ?OP{; CcDD |; EX}; Fh>7~; H^; KCf; LFA; Oy#; ~; RCL; |` |; ~CL; H-; Hzx; HY; PMTu; CLt; CL; G; @ 8 ; {& 5; MG6; LG; CL; CL:; F;; K<; [?; C; CL; CLB; C C; KmD; FoE; FaHF; YHG; PHH; To L; _O\M; \ >N; wٙO; ixB P; e Q; BR; OAT; JU; IV; C4; CL; CLY; BZ; D; CL; CL]; Bc^; C ; CL; CLa; DnQ; CL; CLd; E]; CLf; ^; CLh; Jmi; U; CLk; ] l; M m; L n;  s3o;  mbp; mG q; f) r; e s; OS t; Nu; D7; CL; CLx; B=y; P8z; Ca; FCL; GCL}; IHO ~; KLLj; LJ; MC; OCL~; QCL; SG; UZ ; V^; Wal; XX; ZCL ; \t ; _CL; `CL ; a; bCL; cCL; eC'; hCL; iCL; kjb ; ll ; oCL; pCL; qCL; su4 ; uLg; vEd; wF; zPVo; |U; }Y{; ~Y!H!; a "; Q3#; ~$; I`%; O&; M^'; Lo(; B~; CL*; Jv+; ; CL-; E9[; CL; CL0; K<1; W}2; JP3; L44; B; CL6; ]; CL8; EW; CL:; Fs; CL<; DJ=; A:; CL; CL@; LTA; J2B; A; CL; CLE;  eH; FI; n\ J; pUK; HL; d7' ; \ ; ixB ; J; F; F:; ixB ;  ixB ; !F:; "i ; $~Mh; %Fs; )O;~; +H\; ,M ; /"; 1Ny; 4EV; 5K]; 6H8; 8JP; 9I;; CL>CL>CL> CL> CL> CL> CL> CL>t6g>lg>vf>@xR>GR>GR>CL>CL>CL>CL>CL>CL>CL> ^>!CL>"CL>#CL>%M>&CL>)C>+CL>,CL>.{/ >1CL>2CL>3CL>4CL$>6L0#%>7J&>:KA>eCL*>hM!,>iN|>jCL.>lIk>oCL>pCL>qCL>rCL3>us@4>wA6>yG7>zGf8>{w39>~G2G:>JL;>K<>GP>CL>>W-?>Jat@>HTA>s8 >CLD>mv E>G9F>FxG>Ẍ>d>ig>b>X'>^N>F>b[ >a >G>IS!>CL >CL>CL>ii >CL>A$Z>yz >C=>: >BOv >BF>CL>CL>CL>CL>CL>FK>IM>D>r>]6>7 >l9 >{ >sL>Hd>\F>B>BmO>A >V>O>X9>,D\>/U >2b >3`3>4N>5^>6CL>8CL>9CL>:CL>;CL>=CL>?CL>@CL>CK>DH&>EIRT>FI>IKB>Mff }e>Z}f; KsM>tTg N>EO>@P>HQ>gR>OS>ph T>G ZV>iF X>I*#Y>J[> \>MJ^>cS_>p8 `>Aa>Vb>X#c>R>CL>CL>CLg>tM >CL>CL>CL>CLm>Ggn>4o>o#A >CL>CL>CL>CL>CL>CL>CLw>Gx>M{y>Vu>OP{>l33 |>XL}>i}~>^>Cw>F> n`* ~> CL>` |>CL>H>IA>H>>GEEu>CLt>CL>HV>5@ > |`B 5>#M+6>$L>&CL>'CL:>)EV;>*Jy<>+Xf*?>,D>/CL>XCLB>ZBC>[HD>\FJE>^x=qF>`WfG>aGGH>bTw L>c]RM>dZfN>ef.O>hh P>id7' Q>jBɀR>lOͻT>mJU>nIV>oC`s>qCL>sCLY>uBZ>vEZ>yCL>zCL]>|B8P^>}C6]>CL>CLa>D>CL>CLd>E*>CLf>^>CLh>J|1i>T#>CLk>] l>K. m>IH n>ro>n%np>n{ q>hB r>faH s>OKt>Mu>DJ>CL>CLx>B5y>O5z>CL!>CL>CL}>H~>L1>J~>D$>CL~>CL>G`>Z  >^4>_>X4>CL >tj. >CL>CL >n>CL>CL>C/>"CL>#CL>%kK >&lς >)CL>*CL>+CL>-u >/N[3>0FT>1H[3>4P$>6W\>7Z=q>8Y!>9Y">;O #>=IS<%>>N&>?M'>@L(>A@.>CCL*>E^+>HГ>ICL->KG4>NCL>OCL0>Rs\1>UV%2>WJ%53>XL`i4>YB$>[CL6>]>CL8>E>CL:>Gn>CL<>D=>A:>CL>CL@>L6A>IB>C>CL>CLE>[H>EI>\TW J>XK>GYL>f7 >Z >ixB >M>G'>G>ixB >ixB >G>i >}>Fi>OBo>I~>M >~L4>Lu>EV>Qc>I>JP>IJ(>o^ >Q>Eʘ>CL>G^>DF-> CL> CL> CL> CL> CL>CL>CL>CL>qS4>a >v >GR>LxR>Kc>CL>CL>CL>CL> CL>!CL>"CL>#^>LCL>MCL>OCL>PM>RCL>UCU>VCL>WCL>Yt >\CL>]CL>^CL>_CL$>bLb<%>cJM&>eHq>hCL*>kM#s,>lN>nCL.>pI/>rCL>sCL>uCL>vCL3>xs4>zA6>}Cf7>~z8>x9>F:>M,;>P<>N)>CL>>Y ?>J[@>HjA>t/ >CLD>m E>G2F>FNG>[*q>dh>jFf>c>Wa>`>F>cjS >aY >I :>J!>CL >CL>CL>l3 >CL>AO>y]w >CL!> >A- >B)>CL>CL>CL>CL>CL>FU>I>D>rr>]6>: > m >!zt >$sS3>'Hn>(\>*C4>+C>-A >0V>1B>2C>3D@>6V1 >9j@ >:`>;P3>=^>>CL>?CL>@CL>ACL>BCL>DCL>ECL>FCL>GCL>JKl>KH>MIU >NIo>yKB>|gff }e>Y}f>L9gM>t N>EO>BP>HQ>fR>OjAS>p T>HV>jǫ X>I6Y>J[> \>N}^>dJ_>s `>A33a>ob>rzc>lc>CL>CL>CLg>t8 >CL>CL>CL>CLm>GN^n>o>ow0 >CL>CL>CL>CL>CL>CL>CLw>Bx>M4y>V8R>OP{>j |>YM}>jq~> ^> C>>E>ll ~>CL>_& |>CL>CH\>DIu>EI(>HJou>JCLt>KCL>NH >O~K >P|~ 5>RM6>SL>VCL>WCL:>YF>K;>ZH)<>[Tʹ?>\D>_CL>`CLB>bBɀC>cDWD>dF3E>fuRF>gUG>hGH>iT} L>kkM>li N>mtRO>pg! P>qd7' Q>rCR>tLOT>uJ~`U>vIV>wCCl>yCL>zCLY>B\Z>D>CL>CL]>BE^>E]>CL>CLa>D>CL>CLd>D>CLf>^>CLh>JXi>S>CLk>]f l>J33 m>H n>s33o>nmp>m. q>cf r>dz s>O>t>Mu>D>CL>CLx>B"y>Mz>B>CL> CL}> G~> L4>Js>CH>CL~>CL>GX>YI >^>_3>YI>CL >s >!CL>"CL >#e>$CL>%CL>'BN>*CL>+CL>-iމ >.go >1CL>2CL>3CL>5t >7K3>8C)>9C3>>]R>?`H>@`!>AMٙ">BF #>C{$>lIK%>mO&>nM'>oMt(>qAR>sCL*>tNr+>>CL->Fݱ>CL>CL0>_1>[I2>I$3>L4>A>>CL6>]>CL8>E*>CL:>G&">CL<>DnQ=>AK>CL>CL@>LCA>IB>U >CL>CLE>fH>C I>`` J>^{)K>GL>ex >Z >ixB >M^>G1>G>ixB >ixB >G>i >~[>FN=> Os>5HЌ>6L>9}ML>;M >>B >?Km>@H.>CJP>DI$>Go^ >HQ^>IEʘ>KCL>NG^>OF=>QCL>RCL>SCL>UCL>VCL>WCL>XCL>YCL>\lg>]avg>^t6g>_@xR>aGR>bGR>dCL>eCL>fCL>gCL>hCL>iCL>jCL>k^>mCL>nCL>oCL>Mf>CL>C>CL>CL>t[ >CL>CL>CL>CL$>Ls%>J#;&>R9>CL*>MT,>N>CL.>I6>CL>CL>CL>CL3>s4>A6>F7>AS38>z@9>G#:>GY;>JL<>H\>CL>>V?>JWl@>GA>t > CLD> j E> G-8F> FG> Xy> dK3> jA> by> VG> ai> EX> b[ > ` > Hؒ> Jm!> CL > CL> CL> f/ > !CL> $)b > %y{ > &BE> '|& > (KCB > )B > ,CL> -CL> .CL> 0CL> 1CL> 4F`> 5IfL> 6D> 7r|> b]33> c|C > dk) > fzt > io> lHm> m_I> nB:}> oA> qA\ > tTޭ> uA> vB:}> xD"> {N5 > ~gU > `f> O> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> K^> G}> I*c> I> K8R> jJ=}e> (]}f>NK@M> sj N> EO> }z P> HCQ> g/R> NS> @T> DR>V> c X> I6Y> JF[> \> Mw^> c_> j `> Ba> Ufb> V@c> P>> CL> CL> CLg> t? > )CL> *CL> +CL> ,CLm> /G݄n> 2@ 3o> 4lY > 6CL> 7CL> 8CL> 9CL> :CL> ;CL> @FBx> AJ{y> BVff> COP{> Fe |> H[ }> IjV~> L^> OCI> PF> S{ ~> UCL> W]L |> ZCL> ]G> ^H> _HM> bOOu> CLt> CL> Fu> }w > z 5> M 6> LX> CL> CL:> FT;> FWK<> ZL?> Bw> CL> CLB> AC> OD> F_E> u\*F> IqG> |H> Tp L> \M> YRN> e!HO> ejU P> b. Q> AR> JT> JoU> IwV> BUZ> CL> CLY> A"Z> D_> CL> CL]> A^> Jm> CL> CLa> D- > CL> CLd> C> CLf> ^> CLh> ILi> R> CLk> ]}] l> I m> H. n> to> n!p> mk q> e r> f s> O4t> Mȉu> C!P> CL> CLx> Ay> K9z> Aq> "CL> #CL}> %F/~> 'KC> (J0> )B1> +CL~> TCL> VE> YY) > Z_f> [_f> \Y> ^CL > `sF > cCL> dCL > e[> fCL> gCL> iAq> lCL> mCL> oh > pek > sCL> tCL> uCL> wt > yLg> zCf> {D> ~O#> RB> U> Tq!> V@"> O #> B9$> IHW%> O &> M'> M4(> Cxe> CL*> FO+> L> CL-> G> CL> CL0> V1> Z2> I3> L4> @Y> CL6> ]> CL8> D> CL:> Fs> CL<> CB=> @gv> CL> CL@> KA> In8B> BE> CL> CLE> \2jH> AnI> k J> JeK> H wL> e>t > [ > !ixB > #K> $H> %H> (ixB > )ixB > *G> +i > .~#> /FN=> 2O> 4I~> 5L> 8} 8> :L> =B > >Qv> ?H1t> AJP> BI~> Eo^ > H~P9> KEʘ> MCL> PG^> SDF-> UCL> VCL> WCL> CL> CL> CL> CL> CL> lg> ` > r3> @xR> GR> GR> CL> CL> CL> CL> CL> CL> CL> ^> CL> CL> CL> N :> CL> C> CL> CL> | z > CL> CL> CL> CL$> Ln%> J&> L"> CL*> L>,> Nl> CL.> Hؒ> CL> CL> CL> CL3> sn4> A6> yFf7> |8> n@9> F:> E`;> H3<> Eg> CL>> XB?> JNM@> GA> v > CLD> j' E> G-8F> FG> Zm> ep> ky> b~f> V> _> D> bq > `b > HVF> I!> CL > CL> CL> Ie > LCL> N~; > Oz > PE#> Q|5! > SL > TA> WCL> XCL> YCL> ZCL> [CL> ^F^> _IGn> aCT> br> e]/> f|5! > gj > hzt > kp|> nH[> o]> pB> rAH> tA= > wT5> xA> yB/> zC\> }R* > e" > ]f> O6f> ^> CL> CL> CL> CL> CL> CL> CL> CL> CL> K-> Gm> I-> Iw> K8R> {3}e> S_d }f> JM> uK N> EO> AWP> H=Q> f>R>N_S>AT>Gs;V>iqc X>IPY>J[[>\>Oٚ^>d3:_>q `>D8a> T b>!XYc>#Qq>%CL>&CL>'CLg>)s >+CL>,CL>-CL>/CLm>2HSn>5o>6j$ >8CL>9CL>:CL>=CL>>CL>?CLw>BCx>CO{y>DX>EOP{>Ij |>K[D}>tj2~>v^>yDi?>zFX>}{ ~>CL>] |>CL>G>Iq>H>JSu>CLt>CL>FZ>| >xQ 5>M66>Lf>CL>CL:>F:;>DM<>[)?>DX>CL>CLB>AC>Q D>F}E>tF>LQG>wHH>To L>fM>dgN>oO>h" P>i[ Q>A^vR>AT>JHU>IV>A>CL>CLY>AOZ>D>CL>CL]>A^>K>CL>CLa>F7 >CL>CLd>CB>CLf>^>CLh>Ii>Q> CLk> ] l> L\) m>J\ n>sffo>n0p>=d = r>>dǮ s>?O%Zt>@Mu>BBZ>DCL>ECLx>GAOy>HIz>IAf>LCL>MCL}>OF~>QKz>RI>SBS,>VCL~>WCL>YE>[YX_ >\]`>]_3>^Vfg>`CL >br >eCL>fCL >gsT>iCL>jCL>lBN>nCL>pCL>rh >sek >uCL>wCL>CL>s >S>Jf>Kg>OV>P>V8R>T!>\@">L3#>Aٚ$>I8%>Ot&>M'>MM(>|C >CL*>^+>sK>CL->G&">CL>CL0>U1>Y$2>IZ43>Ly4>@{>CL6>]>CL8>DnQ>CL:>Fݱ>CL<>Cμ=> @Q> CL> CL@>KA>I3B>CD>CL>CLE>W;H>CI>nP J>~(K> G]L>"ejU >%\ >&ixB >'KF>)F?>*F>+ixB >,ixB >-F?>.i >0~._>1FN=>4OW@>6I~>8L>;} 8>=KA>hB >iKf>jGi>lJP>mIs>po^ >rk b>uEʘ>wCL>zF>{Ee>~CL>CL>CL>CL>CL>CL>CL>CL>k4>a>sFg>F>GR>GR>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>M>CL>Cm>CL>CL>~] >CL>CL>CL>CL$>LS%>J&>I[>CL*>L#,>N7>CL.>H>CL>CL>CL>CL3>s^4>A6>wٙ7>w8>l39>Eؖ:>Dɚ;>HL<>E3>CL>>Vע?>JG@>GA>|R8 >CLD>0ju E>2G)F>3FG>4X&>6d>7k>9c>f>=\@'>>Dۨ>?bq >@`x >AG̶>BIE!>ECL >GCL>HCL>Jiމ >MCL>OFv >Pz % >QF >R|= >SK# >TA>XCL>YCL>ZCL>[CL>\CL>_F`>`I>aB>bq>f]33>g|5! >hj >ize >q >HO>\ >A>A=>AR >S>B#>B(>C>V3 >j >`>O3>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>K>G>He>I >K8R>Cs3 }e>S^z}f>K8M> t N> EeO> } P>GQ>f R>NIS>q T>EV>eQ X>IY>JA[>M\>P\r^>c_> g `>"D#a>#nb>$pJ>c>%l>'CL>)CL>*CLg>,s\. >.CL>/CL>0CL>1CLm>]H,n>`go>ajM9 >cCL>dCL>eCL>fCL>gCL>iCL>jCLw>mCx>nO\y>oRaH>pOP{>sb |>v[}>wls~>y^>|D>}Fc >xo ~>CL>] |>CL>GT>I>H5>HZu>CLt>CL>Fٚ>{ >w\) 5>M66>Lw0>CL>CL:>GC;>M<>U.?>C>CL>CLB>AC>O3D>FfE>{zF>MG>y{H>Tio L>lkM>j4N>ukO>l~k P>iLl Q>}f R>HT>JU>IV>B*>CL>CLY>AZ>D̘>CL>CL]>AO^>Gg>CL>CLa>F!O>%CL>&CLd>(C>+CLf>,^>-CLh>/Ii>0P>3CLk>6] l>8J= m>9H n>=n*p>?jR q>@dq r>Ac s>BO)t>CMu>DB>FCL>HCLx>JA$Zy>KTKz>LA>OCL>PCL}>RFxC~>TK]>UI>VB`>XCL~>ZCL>\Ez>^YJ, >__f>c>Yf>CL >srb >CL>CL >X@>CL>CL>By>CL>CL>h >f>7 >CL>CL>CL>s] >K>f>C3>H|>Na>X34>[34>X!>Ns3">D#>@$>I){%>Ot&>Mi'>N(>Cq>CL*>G+>>CL->Gg>CL>CL0>Sl1>W2>I3>LkX4>@s>CL6>]>CL8>Du>CL:>F>CL<>C~=> @X> CL> CL@>KA>I&XB>@>CL>CLE>dH>H I>Z!v J>]K> GL>"d >%\5 >&ixB >'I>PF>QF?>RixB >TixB >UF>Vi >X}ٸ>YFN=>\Lv>^I~>_M >b} 8>dK$>gB >hQ>jEL>lJP>mJP>po^ >rbla>uEʘ>wCL>zG^>{Ee>}CL>~CL>CL>CL>CL>CL>CL>CL>avg>Yg>lg>}>@xR>}>CL>CL>CL>CL>CL>CL>CL>^>CL>CL>CL>N>CL>C#>CL>CL>| >CL>CL>CL>CL$>LCD%>IV&>Oe>CL*>L,>Nܻ>CL.>Ha>CL>CL>CL>CL3>slm4>A6>is37>k8>_9>EP:> B3;>!E<>"Cٚ>#CL>>&X}?>'J@@>(GdA>+zr >.CLD>0i E>1G9F>2Fz^G>3Z>7cg>8jK4>9b#3>=^>?E|>@bA >Aa >BGJ>CH!>FCL >GCL>HCL>Jf& >MCL>P@Je>Qz >RF?>S}h >}BB>~Ab>CL>CL>CL>CL>CL>Fg>Iq>A>q#>]6>{a >j >zWc >sS3>HH>V(>A>AS>A >S->BU>C>Cv8>Q$ >fUU >]>OP>^>CL>CL>CL>CL>CL>CL>CL>CL>CL>K >G>He>IR>K8R>f }e>}Zρ}f>K8HM> t N> E O>AP>GwQ>fR>NjS>p T>E|V>f X>H>Y>Jq[>j\>DNQ^>Gb^V_>HnUV `>KB/a>LQb>MVW c>NR>PCL>QCL>RCLg>Ts1 >WCL>XCL>YCL>ZCLm>]H2n>`ɚo>ai_ >dCL>eCL>fCL>gCL>hCL>iCL>jCLw>m}x>oLaHy>pT\>qOP{>th |>v\s!}>wlF~>y^>}Df[>~E>p- ~>CL>\ |>CL>G˝>H>H>M$u>CLt>CL>E D>z7L >x 5>M6>L>CL>CL:>GX;>M<<>Wk?>Bn>CL>CLB>AOC>MD>FOE>DGF>EG>xH>TGn L>\M>YO\N>dO>l P>h6 Q>@R> NlT> J5U>IV>B3:>CL>CLY>AZ>D|>CL>CL]>@}B^>B)> CL>!CLa>#DJ>&CL>'CLd>)C>,CLf>-^>.CLh>0I>i>1Oe>4CLk>7]| l>8Hf m>9Ff n>=n p>?kR q>Ae r>Be\) s>COHt>DMtu>EBX>GCLBCLxB@ryB S zB A{B CLBCL}BF~BK8gBIX=BABCL~BCLBE@BYP{ B\gB^gBUYB!CL B#t B&CLB'CL B(dB)CLB*CLB,Bk!B/CLB0CLB2hq7 B3eI B6CLB7CLB8CLB:sW BdLBfEgBgFFgBiN$yBkRpBlTs4BnS4!BoE"Bp|3#Bql$BrI-%BsN&BtMi'BuN:(Bx}f B{CL*B}Zq+BBCL-BF/BCLBCL0BP 1BV2BI 3BL_4BGľBCL6B]BCL8BFBCL:BFxCBCLABI2+BBBBCLBCLEB[HBFzNIBfM JBLKBGLBb(\ BY BixB BJnBF/BF>KBixB BixB BF/Bi B}BE| BLvBI~BLB} 8BKBB BKtBELB-JPB.JPB1o^ B3[pB6EʘB8CLB;FWB=CVB?CLB@CLBACLBBCLBCCLBDCLBECLBFCLBJavgBK_#3BLr3BM}BNF4BO@xRBQCLBRCLBSCLBTCLBVCLBWCLBXCLBY^BZCLB[CLB\CLB^NHB`CLBbCBdCLBeCLBgvY BCLBCLBCLBCL$BLG%BJ>&BI BCL*BLd,BNzBCL.BHBCLBCLBCLBCL3BsU4BA{6Bnff7Bb@8B_S39BD:BC3;BFBV ?BJ?@BGKABr BCLDBh EBGH|FBFlGBX~:Bd{3BkIBbBU-BaBEXBc/ Ba>' BG`BH!BCL B CLB CLB d7' BCLB@B{ BAB|` B>BA%BCLBCLBCLBCLBCLB!FqB"IϥB#A]B%pyeB(]/B){ B*k B+zWc B.pIBYHC5BZTJB[AB\ATJB_A BbT8hBcHwBdUm&BeC.aBhO"j Bkg. Bl_BmL3Bn^BpCLBqCLBrCLBsCLBtCLBuCLBwCLBxCLByCLB|JB}GѼB~HBI"BK8RBhaH}eBQD}f>I|MBt+ NBEkOBERPBGQBdRBNuSBph TBIJVBm;0 XBHُYBJq[B۬!\BP\r^Bb'_Bs `BB&aBPbBQs4cBOYBCLBCLBCLgBr BCLBCLBCLBCLmBG݄nB 4oB!h B#CLB$CLB%CLB'CLB(CLB)CLB*CLwB-@xB.MyB/RB0OP{B4p |B6\'}B7kP~B9^BKBCL:BFBCLCLB@CLBACLBBCLBCCLBDCLBECLBH]BIPgBJavgBKKs4BMOJ>BNNBxCLByCLBzCLB{CLB|CLB}CLB~CLB^BCLBCLBCLBNBCLBCBCLBCLBx BCLBCLBCLBCL$BL8U%BJ.&BPBCL*BLu,BN(BCL.BHBCLBCLBCLBCL3Bs!A4BA{6Bo37Bfs38B]L9BD:BB;BEBX7?BJ9T@BGABqˈ BCLDBi EBGCFBFYGBZhBbBi3Bac4BUCBaBDBc!( Ba BFBHk!BCL BCLBCLB ixB B CLB~' B| z BBwB{ BKj B@BCLB@CLBBCLBCCLBDCLBGFvABHIUBI@4BJoBM]/BN{ BPk. BQzH BToBWHAdBXZ BYAYBZAjB\B+ B_Q;B`B BbCu}BcB^BfV Bijww Bj`IBkOS3Bl^BmCLBoCLBpCLBqCLBrCLBsCLBtCLBuCLBwCLBzK#B{GeBH,BIBK33Bin}eB]S}fBUHMBt( NBE OB@[PBGwQBeRBN{^SBpmy TBCVBa XBH6YBJl[Bج`\BN)?^BbX_BhG `BAaB RBbB RcB NfB CLBCLBCLgBr, BCLBCLBCLBCLmBGnBoBhӄ B!CLB"CLB#CLB$CLB%CLB'CLB(CLwB+CQxB,Q\yB-WB.OP{B1bfg |B3\}B5lR~B7^B:CB;E>B>} ~B@CLBC[!4 |BmCLBpGBqHBrH:BsFvuBvCLtBwCLByDEBzw% B{u| 5B~M'6BL7BCLBCL:BG;BJyABHgBBC0BCLBCLEBSZHB CzxIB ` JB h(# KB GLB c7 B \^ B ixB B I=B EdB EsZB ixB B ixB B EdB i B } B E@B LvB HB LB !} 8B #JPB &B B 'L7B (AפB *J"QB +JPB .o^ B 0Ti[B 4EʘB 6CLB aFWB bDB dCLB eCLB fCLB gCLB hCLB iCLB jCLB lCLB o^3B pYgB qcVgB rGRB sMffB tLB vCLB wCLB xCLB zCLB {CLB |CLB }CLB ~^B CLB CLB CLB MB CLB CmB CLB CLB }f B CLB CLB CLB CL$B LP%B JTj&B M2YB CL*B L,B OXB CL.B HmB CLB CLB CLB CL3B s4B A{6B f7B c98B Yy9B C:B Fg;B FFgB V?B J5@B GyAB u B CLDB iQ EB G+gFB FA<GB XNB cC4B iB aB UaB ^gB DҷB c B a B (FB )H !B ,CL B -CLB .CLB 0dc B 3CLB 5 B 6z B 7E#B 9|R8 B ;,B <@B >CLB ?CLB @CLB ACLB BCLB EF6B GIXB H@cB Io6B L]/B M{ B NkQ B Oz+ B Rq,B UHFB VStB XB ZB YA B [A B ^S||B _B B `COB aBB LLJ B f B a B OiB ^B CLB CLB CLB CLB CLB CLB CLB CLB CLB KB HB HκB J:B K33B e3 }eB ;C}fByHɒMB t` NB DOB DԀPB GQB d#RB N4SB z TB GkVB iz XB HYB JQ`[B `\B Qa^B a_B q `B AaB QHbB S{cB RB CLB CLB CLgB r B CLB CLB CLB CLmB Gx nB loB h B !CLB "CLB $CLB %CLB &CLB 'CLB (CLwB +D(xB TMuyB UT=qB WOP{B Zmfg |B \[U}B ]k>~B _^B bC̓B dFB g{ ~B iCLB kZp |B mCLB pGB rHB sH B vK3uB xCLtB yCLB |CcB }w B ~u 5B MT6B M B CLB CL:B Go;B FOXB CLB CLEB QbGHB Av!IB a0 JB d KB GXLB c B XX B ixB B JZB DB EZB ixB B ixB B DYB i B } B EoB O4B I~B LB I} 8B KJPB NB B OP B PAB RJPB SKB Vo^ B XSTB \EʘB ^CLB aG^B bE*B dCLB eCLB fCLB gCLB hCLB iCLB jCLB lCLB oYgB pNgB qavgB rAnB s@xRB t}B vCLB wCLB xCLB zCLB {CLB |CLB }CLB ~^B CLB CLB CLB MB CLB CB CLB CLB }; B CLB CLB CLB CL$B LkX%B J&B H`B CL*B Lo,B OB CL.B HB CLB CLB CLB CL3B s)4B A6B l37B df8B i9B C*:B Bi;B EB Y?B J'@B GbABDBCLDBii EBGFBF-JGBZBaBhXB`B U?B"]LB#DB$c B%` B&FB'H[!B*CL B+CLB,CLB/f B2CLB4~; B5{in B6E B7{ B9/B:@ZaBCLB?CLmBBH.2nBF|oBGix BICLBJCLBKCLBLCLBMCLBNCLBPCLwBSBzxBTN\yBUSHBVOP{BYk |B[\aA}B]j8~B_^BbD BcF^Bf} ~BhCLBk] |BmCLBpGBqH>BrH BuP uBCLtBCLBC6Bx?} Buƨ 5BMT6BMBCLBCL:BH#;BLZB CLB CLdBC~BCLfB^BCLhBIiBWoBCLkB\x lBI mBG nB"poB#mpB%g=q qB&_ rB'` sB(N"tB)M3uB*Ao*B,CLB-CLxB0 yB1R zB2AB5CLB6CL}B8E~B:JB;IB<@B>CL~B?CLBiC{BlX Bm\gBn]VfBoUYBqCL Bsr BvCLBwCL BxByCLBzCLB|B+BCLBCLBgj Bd BCLBCLBCLBt BIBDBAk3BMBBPBUBTR!BK"BAٚ#Bv4$BIE%BN&BMd'BNhD(B|` BCL*B\ֺ+BйuBCL-BGBCLBCL0BM[1BU2BI:3BLn4BI+BCL6B]BCL8BEOBCL:BEVBCLS JBX KB1GLB3d7' B6[~ B7ixB B8H$B:DVB;DVBDVB?i BA} BBENBELvBGI~BHLBL} 8BNJPBQB BRLvBSABUJPBVKmBYo^ B[P[B^EʘB`CLBcFBdDBfCLBhCLBiCLBjCLBkCLBCLBCLBCLBc&fBPgBavgB}BGRBGBCLBCLBCLBCLBCLBCLBCLB^BCLBCLBCLBM;BCLBCBCLBCLB{ BCLBCLBCLBCL$BLg%BJV&BPBCL*BL,BOhBCL.BHBCLBCLBCLBCL3Bs<4BA{6Bn7B`8Be9BB :B A;B D BW_?BJ1 @BGuABt/ BCLDBiމ EBGOFBF#PGBXcBYfB _gB"WB%T5B&_B'DB(c B)a B*EB+GgR!B.CL B/CLB1CLB3g B^CLB`~' Ba| BbDBc{in BdC9Be@BiCLBjCLBkCLBlCLBmCLBpFBqI=Br@BsnBw]33Bx{ Byj Bzz+ B}sVfBHIBTBCfABCBBaH BQBC BCBABR BfY B`BQ3B^BCLBCLBCLBCLBCLBOPBOPBCLBCLBK>BHBHBJ"QBK33Bg }eBd[l]}fBGMBtb NBD,OBCUPBG;QB%d_RB&NpSB(@TB)D?VB*d XB,GsYB-Ja[B.\B/QN^B3c_B4m `B6DaB7MffbB8P)cB9LB;CLB=CLB>CLgB@q BBCLBCCLBDCLBECLmBIInBL\oBMi't BOCLBPCLBQCLBRCLBSCLBUCLBVCLwBYCxBZNfyB[SGB\OP{B_gUV |B\@\}Bl~B^BDxgBFBvBZ?BJ@@BGyAB z B OPDBn EBGfyFBF@GBZWBYB^3BVfBDRBFaBGD^}BHc!( BIa BJEdBKFy!BNCL BOCLBPCLBRd/ BVCLBX~l^ BY}T BZDB[{ B\tB] B`CLBaCLBcCLBdCLBeCLBhFtBiIBl^ BnnOBq]33Br{Z BtjH Buyt BxnFfB{HdB|WB}DB~EBAR BPBDy3BCBADBN(z Bk B`3BQB^BCLBCLBCLBCLBCLBOPBOPBCLBCLBKBH1BHBJBK33Bi =}eB\s0}fBGMBt+ NBDVOBE|PBFfQBbRBNwSB qHF TB"HVB#leC XB%GYB&JY*[B' \B(Qh^B+c_B-sG `B/CaB0HbB1KcB2JB4CLB5CLB7CLgB9qM B;CLBCLmBAH@nBD@foBFiNF|bROFk/ PFh6 QF RFHؒTFJUFIVFCn<FCLFCLYF@ZFCScFCLFCL]F| ^FNFOPFCLaFGgFOPFCLdFEFOPfF^ FCLhFI>iFUHFOPkF[U lFBH mF@ nFW33oFmpFc{ qF^{ rF^ sFNtFMuFB!FOPFCLxF} yFQb"zFAFCLFCL}FF(~FJFIPFAFOP~FCLFCUFX' FYFZFRFCL F,KF.CLF/CL F0O9F1CLF2CLF4BF7CLF8CLF:k F;d F>CLF?CLF@CLFBt6 FDG3FE@FfFFA3FILM^FKO:FLSuFMR!FNB"FOtٚ#FPdY$FQIpJ%FRN&FSM'FTNa(FUBFWCL*FYGZB+F\mF^CL-F`G-aFbCLFdCL0FfH 1Fg\2FJ3FL4FI:FCL6F]FCL8FDFCL:FEFCLFV?FJ8k@FGuAFE"'FOPDFs EFGyFFF"iGFUFX4F]FVXFPF`FD:Fbq F`EA FBwFD!FCL FCLFCLFgn FCLF~24 F| FD;Fz[ F궄FFv FCLFCLFCLFCLFCLF F+F!IF$ F&n(F)]33F*{= F+jp F-y F0sS3F3H}iF4TF5FF6F/F8Bff F;PMFFOP{Fa |F\ }Fj~F^FDSFFFu6 ~F!CLF#\ |FNCLFQGFRH2FSHTFVPQuFXCLtFZCLF\AǮF]vH F^tI 5F`L6FbMFdCLFeCL:FgGu;FhJeDFrEEFtzFFuEGFvgHFxSљ LFyV}qMFzTT{NF{_}qOF~lo PFh QF@`2RFHTFJUFIVFCFOPFCLYFAW3ZFC6]FCLFCL]F|oQ ^FS+FOPFCLaFJ+FOPFCLdFGFOPfF^FCLhFIiFT5FOPkF[ lFwRmFr(nFPoFlfpF`{ qFY rF\\ sFNAtFM&uFBFOPFCLxF|5! yFNzFBNFOPFCL}FFE~FJQFIFB3FOP~FCLFBF"X F#XF$Y(F%Q3F'CL F)EF,CLF-CL F.\F/CLF0CLF2BrdF5CLF6CLF8m7 F9dU FCLF@t. FBJfFCAgFDEQFGLFIK=qFJOFKOY!FLK&g"FMs #FNc&f$FOI%FxNb&FzM'F{NO(F|AF~CL*FFWK+FlFCL-FG&"FCLFCL0FF?1FX2FJ 3FL4FIFCL6F]FCL8FDgFCL:FEFCLFOz(FQCLFRCLFSCLFTCLFUCLFVCLFWCLFY^FZCLF[CLF\CLF]MF_CLFbCFdCLFeCLFgz$ FiCLFjCLFkCLFnOP$FoLq%FpJ&FsIFvCL*FxLw0,FyOMF{CL.FHkFCLFCLFOPFCL3Fr4FA6Fv47Fefg8F`&f9FA:FC;FD@FU?FJ*@FGU5AFG WFOPDFt EFGyFFF$8GFRYzFVNfF[FTFO#F]D-FDFa F_v F@bFBE!FCL FCLFCLF e F CLF~# F| z FCBFz FI F~ FCLFCLFCLFCLFCLFFFIF#c F%mgF(]33F)z[ F*i F+y F.nF1HF2WF3GmF5GjF7B F:PF;GǣFRFN{^SFp^ TFFVFh XFGYFI[Fޭg?\FQ^FdJ_FoU `FAaFIbFM>cFK FCLFCLFCLgFqa FCLFCLFCLFCLmFG^nF~4oFhӄ FCLFCLFCLFCLFCLFCLFCLwFD8RxF LaHyF TLF4OP{F7k33 |F9\/2}F:kn~F<^F?D FAEAFD{w ~FFOPFI[ |FKCLFNGFPHFQH7FTGuFVCLtFWCLFZ@F[v F\tC 5F^Lg6F_MY?FaCLFbCL:FdGn;FfFZCLF ?CLF @CLF ACLF BCLF DCLF ECLF FCLF IYgF JNgF KavgF LkHF MB>F Ny\F PCLF RCLF SCLF TCLF UCLF VCLF WCLF X^F YCLF [CLF \CLF ]MF _CLF bCF CLF CLF {= F CLF CLF CLF OP$F Lj%F J&F PxF CL*F Ly,F PS,F OP.F IF CLF CLF OPF CL3F r4F A6F l37F `8F a 9F A_B:F Af;F D33F T0?F J@F G:AF GwF OPDF u6 EF G3FF F$8GF PhF UF ZF SF NxF ^F CuF c F a< F ~l^ F @u!F CL F CLF CLF c7 F CLF }I F |5! F BF y]w F B F ~z F CLF CLF CLF CLF CLF FOF IsF ~ F !mF $]/F %z F &jSk F 'y F *rfF UHF VWXQF XH\F YG'F [Bk F ^P-F _HF `DBF a@=F dOO F gj F h`C3F jQfF k^F lCLF mCLF nCLF oCLF qCLF tOPF uOPF wCLF xCLF {KF |HNF ~H~F JF K.F XL }eF Zp,}fFZDqMF t+ NF DԀOF G,PF GwQF `(RF N{^SF p| TF IKVF m XF FYF IJ[F ܭb\F R^F do_F t* `F A+aF HT{bF KfcF I{F CLF CLF CLgF qA F CLF CLF CLF CLmF GnF !#4oF "h F $CLF &CLF 'CLF (CLF )CLF *CLF +CLwF .CxF /RyF 1VW F 2OP{F 3qd |F 4\}F 5m^d~F 7^F :CF F kOJ>F lQ!F mF34"F ny33#F om$F pJ%F qO&F sM'F tN=\(F uARF wCL*F yI +F {, F }CL-F G&"F CLF CL0F D1F Vs2F JC3F L4F HF OP6F ]F CL8F EF CL:F EF CLFHCLFICLFJCLFKCLFtCLFuCLFvCLFw^FyCLFzCLF{CLF|MF~CLFCUFCLFCLF{ FCLFCLFCLFOP$FL1%FJ,&FOFCL*FL,FPFOP.FJFCLFCLFOPFCL3Fr4FA6Fuf7Fk@8Fe,9FA! :F@;FCFT%?FI@FG"QAFH(FOPDFwt EFGFFF:GFP{FUfFZ>fFS3FMeFaFCFb F`P F|5! F~Ü !FCL FCLFCLFg FCLF| F}f FBcFyN FWLF ~ FCLFCLFCLFCLFCLF>FF?IAFB~; FDmWFG]/FHz FIj FJy FMr3FQHէFRRgFSHFTH<FVB FYRrFZI@F[DNhF\@F_T߁ FclH Fd`fFeQ3Ff^FgCLFhCLFiCLFkCLFlCLFoOPFpOPFrCLFsCLFwLFHTGFHvFI'FK.Ff3 }eFE}fF UBxMFs NFDԀOFDBQPFGAQFaHRFNSFp3 TFC~VFa XFF҉YFI[F׬\FN ^Fe_Fh `FAZ#aFHbF JcF FF CLF CLFCLgFq20 FCLFCLFCLFCLmFGQnF,oFh| F CLF!CLF"CLF#CLF$CLF%CLF&CLwF*zGxF+KkyF,SffF-OP{F0c |F2Z}F3j~F5^F9CF:EF={ ~F?OPFj^q7 |FlCLFpGFqJGFrH7FuOZuFwCLtFyCLF{xZ F|vH F}s/ 5FL6FMAFCLFCL:FF;FLZFBFFOPFCL]Fz[ ^FV} FOPFCLaFLSFOPFCLdFI FOPfF^FCLhFJiFPFOPkF[ lFbmFbQnFKs3oFjbpF^G qFV rFZaH sFNytFNuFCdFOPFCLxFy yFNzFHGF1OPF3CL}F5G~F7K2F8FF9CmF:OP~FBFFAY FBU$FCU{3FDNC3FFCL FHEFKCLFLCL FMX@FNCLFOCLFQDnQFTCLFUCLFWqt FXdU F[CLF\CLF]CLF_s% Fap)Fbf9Fcl FfKvFhJ4FiOBFjNE!FkG3"F~#Fkٙ$FJd%FOob&FM#'FNA(FB4FCL*FH5+Fj9FCL-FGFCLFCL0FDB1FUo2FJ;3FMz4FGľFOP6F]FCL8FFFCL:FEFCLFTD?FI@FGAFHUFOPDFyN EFGi4FFF&GFPFWnfF\FUqFL0FaeFCFb. F`x Fz$ F} !FCL FCLFCLFb F$CLF&} F'~24 F(BUZF)y@Y F+3PF/} F2CLF3CLF4CLF5CLF6CLF9F7F:I$F=~; F@mܼFC]/FDz FEjb FFyna FIoFLHFMTFNIFPHFRA FURNFVIrFWDFX@yF[L F^jD F_^\FO3F^FCLFCLFCLFCLFCLFOPFOPFCLFCLFLc&FH>FHsFIFK.FdL }eF+g}fF{@OMFt NFDOFGPFGkQF`"RFNSFp TFG*VFj* XFFYFI5[F<\FQ^Fe*_Fq `FA33aFIBbFKǮcFGFCLF CLF CLgF q ( FCLFCLFCLFCLmFG!nFgoFi{c FCLFCLFCLFCLF CLF!CLF"CLwF%@xF&MyF'X\FQOP{FTm |FV[]}FWl~FY^F\CNF]EFauD ~FcOPFf^ |FhCLFkGԲFlKFnHFqI˔uFsCLtFtCLFwt Fxu Fyr 5F{L6F|MF~CLFCL:FG;FKJF?I F@DfFBCL FDEsZFGCLFHCL FIX@FJCLFKCLFMB=FPCLFQCLFSq F|dK FCLFCLFCLFs Fx4Fo3FtFKrFLBFPGFO{!FG"F~#Fp $FJ}%FO&FM8'FNA(FB!FCL*FHH+F%kFCL-FFFCLFCL0FC1F]Np2FJq3FM4FG'FOP6F]FCL8FFFCL:FEFCLFT<?FIû@FGAFHdFOPDFyz EFGhJFFFGFPFjF o3F g FKւF_FCv8Fb6 F`S Fx F{Z !FCL FCLFCLFe F!CLF#|` F$HmF&B F'x F)KF,}f F/CLF0CLF1CLF2CLF3CLF7FF8IsF;~ F=m}F@]/FAz % FBs FCyQ? FFnlJIJTJJJ H~J AR JRBJI;JD٦J@JeJT J^U J^fJOlJ^JCLJCLJCLJ CLJ!CLJ$OPJ%OPJ'CLJ(CLJ+L{J-H/J.Hr5J/I)J2K(J5b3 }eF)]}fFw}gS MJ{t( NJ~DOJKiPJGjQJ^RJN(SJo TJI.VJnf XJFYJI^[J\JQ^Jd_Jr `JAaJxbJ|QcJsJCLJCLJCLgJp JCLJCLJCLJCLmJFnJ~vgoJh JCLJCLJCLJCLJCLJCLJCLwJyxJM8RyJSJOP{Jp |J\u}Jl+~J^JCp$JEJ|C ~JOPJYx |JCLJGJK6JHJI?uJ,CLtJ-CLJ0sL J1udZ J2qhs 5J4L6J5Mn9J7CLJ9CL:J;F:;JDSJACLJBCLBJD}~ CJEFODJFEQ EJHkFJIQGJJfRHJKR LJMkHMJNfNJOypOJRoK PJSmYk QJTBnRJUI=TJWK UUJXJ8KVJYIJZOPJ\CLYJ^DZJ_AJaOPJcCL]Jey ^JgUJOPJCLaJKJOPJCLdJI(-JOPfJ^JCLhJJiJNYJOPkJZ lJ[mJ[znJJoJhpJ^R qJV33 rJY\ sJNtJNuJC JOPJCLxJy]w yJIzJIJOPJCL}JH~JK(JHݚJCJOP~JCLJBJYEp JG 3JMJ}#4JCL JE@JCLJCL J\JCLJCLJAJ CLJ CLJ q J b9 JCLJCLJCLJr JyfJpgJuJKkJL4JQzJPG!J U"J!DS4#J"j $J$J!%J%Os&J&M'J'NHO(J(AJ*CL*J,I2+J/JXCL-JZFJ]CLJ^CL0J`B1JaX}2JcJ3JdM"4JeGJfOP6Jh]JiCL8JkF?JnCL:JpEJsCLCLJ?CLJ@CLJCOP$JDLS%JEJ &JGLEJJCL*JMLT,JNQJOOP.JPKkJRCLJSCLJUOPJWCL3JZr4JA36Jr37Jg38Jg9J@R:J@3;JBJTi?JI@JFXAJHZJOPDJyN EJGyFJFGJP}JiLJn4Jf`JI\J^#JC Jb J` Jx J{ !JCL JCLJCLJe>t JCLJz J~ JC'JwS JB) J} JCLJCLJCLJCLJCLJFzJHJ~ JmJ],`Jz J|R8 Jy4 JnfJI3dJW7JJfJH[J A J QpJ ICJEZJ@(JQB2 JmU J`|JQ3J^JCLJCLJCLJCLJCLJ"OPJ#OPJMCLJNCLJQL6JRH]XJTHSJUJ%JXK(JYi)}eJz}fJ0|Y MJwt NJyDgOJzJiPJ|G_[QJ]&RJO4SJz TJIpXVJn XJFYJI[JZ\JP^Jff _Jr `JA)waJy#bJqcJuJCLJCLJCLgJpP JCLJCLJCLJCLmJFnnJc4oJh+ JCLJCLJCLJCLJCLJCLJCLwJ@#xJRqyJQJOP{Jq0 |J\G}Jjf~J^JC^JE!J{ ~JOPJ\E |JCLJGEJKJ H|J#OuJ%CLtJ&CLJ)s/ J*uƨ J+rE 5J-Ltt6J.MXVJ0CLJ1CL:J3F7 ;J5J>FADJ?EM1EJAfFJBGJCWHJDRs! LJEqMJFl\NJH~OJKo PJLmi QJMBRJNIbTJxKUJyJ5VJzH#J{OPJ}CLYJB ZJAJOPJCL]Jy@ ^JUJOPJCLaJLvJOPJCLdJI(-JOPfJ^JCLhJIpiJM.JOPkJZ} lJ[mJ[HnJJ3oJhpJ]G qJW\ rJY sJNtJNuJDJOPJCLxJ}h yJRŐzJI=JOPJCL}JH@~JKJHJD)iJOP~JCLJBJY JD@JANgJz@JCL JE@JCLJCL JJCLJCLJAJCLJCLJq Jb J CLJ CLJ CLJ r JzIJp3JtpJKHJKHJP0J@Nf!JAD3"JBy2#JCjf$JDK%JEOdi&JFM 'JGNB(JHA"JJCL*JLI~+JOJPCL-JRFJUCLJVCL0JXBw1JYW2J[J3J\M4J]GBJ^OP6J`]JaCL8JcFiJfCL:JhEJkCLJT U?JIS@JFAJHRJOPDJzr EJG|JFJF GJQJfJl3JdfJFxJaJBJb J` Jx0 Jz !JCL JCLJCLJb6 JCLJy J: JC'JwQ? JJ J|ƚ JCLJCLJCLJCLJCLJFJIJ~] Jm~J],`Jzcz J{ Jy JpfJI@#JX!JJvhJGJBO\ JP/JHHJELJ JM J h7w J `3J4Q9J5^J6CLJ7CLJ8CLJ:CLJ;CLJ>OPJ?OPJACLJBCLJFLzJGHWJHHJIJLJLK#JMo&f}eJ^s"}fJ)} MJkt( NJnDOJoGBQPJGQQJ\xRJOmSJ@TJIVJn XJFYJIm[J\JP^Je_Js `JBaJy*bJ@cJvJCLJCLJCLgJpԀ JCLJCLJCLJCLmJGnJ~goJg JCLJCLJCLJCLJCLJCLJCLwJCQxJNǮyJQzJOP{JpDD |J]}J ls~J ^J C\J ExJ |& ~J OPJ \ |J CLJ GZJ KJ H]J LuJ CLtJ CLJ sf J !uƨ J "rE 5J $Ld6J &Mb^J (CLJ )CL:J +F;J ,I<| J C)J @PJ zJ CL J E#J CLJ CL J J CLJ CLJ AlJ CLJ CLJ pӖ J b J (CLJ )CLJ *CLJ ,q J .vPJ /kffJ 0pPJ 3K[J 5I#J 6MJ 7L+!J 8K"J 9s3#J :e$J ;K%J =OS&J >N'J ?NA(J @AJ BCL*J DI2+J GC{J HCL-J JF~J LCLJ MCL0J OA1J QV2J RJ<3J TMM4J UGJ VOP6J X]J YCL8J [FLJ ^CL:J `EZJ cCLJ ~Ty1?J In@J FAJ HP|J OPDJ @(EJ G|JFJ F GJ QVJ i J nfJ eٚJ CPJ bJ BjJ b J aj J x J z? !J CL J CLJ CLJ gd J CLJ x J )b J BJ vI J ρJ |oQ J CLJ CLJ CLJ CLJ CLJ F1J IJ ~] J m J ],`J y J {/9 J xI J qvfJ I1J R;6J JJ GJ Aq J RJ !HkJ "EG!J % J &U J )l J +`VfJ ,QfJ -^J .CLJ /CLJ 0CLJ 1CLJ 3CLJ 6OPJ 7OPJ 9CLJ :CLJ =LeJ ?H5J @IJ AJ2J DK#J Ggff }eJ {i}fJ }2q MJ t NJ DgOJ FσPJ GFQJ [ RJ OSJ ATJ HVJ m XJ FYJ II[J \J R^J e _J sr `J DZ#aJ xbJ ~\*cJ ugJ CLJ CLJ CLgJ p@# J CLJ CLJ CLJ CLmJ HnJ ~poJ f J CLJ CLJ CLJ CLJ CLJ CLJ CLwJ zfgxJ L#yJ P(J OP{J o |J \\}J n]~J ^J D/}J FIJ z)B ~J OPJ Y |J CLJ GʵJ KJ HezJ HK}uJ CLtJ CLJ t J t J p 5J LR6J MWlJ ICLJ KCL:J MF ;J NH\I+JAuJBCL-JDFxCJFCLJHCL0JJA1JKU2JuJlA3JvL4JwGJxOP6Jz]J{CL8J}F!OJCL:JElJCLCLJ?^J@CLJACLJBCLJDM;JECLJHC JJCLJKCLJMx JPCLJQCLJRCLJTOP$JUL%JVJ&JYHRyJ\CL*J_KM,J`QxJaOP.JbK JcCLJdCLJgOPJiCL3JlrM)4JnA6Jpl7Jqi8Jri&g9Ju}.:Jwo;JuJTfz?JIY @JFAJHHJOPDJ@4EJGxFJFGJQJjPJoLJggJAJ`]JB^Jc Ja Jxt Jzcz !JCL JCLJCLJb. JCLJx:D J JBNJu J\9J|& JCLJCLJCLJCLJCLJFJJHJ~# J mJ ](J yN Jzu Jx( Jp3JH$JSJJkJGJB\ JRJH"&J E';J#)b J$N J'mY J(`fJ*QfJ+^J,CLJ-CLJ.CLJ/CLJ0CLJ4OPJ5OPJ7CLJ8CLJ;LD-JI.J?J JjKJmfff }eJI}fJ }P MJt0 NJDjOJFjPJG#QJZTvRJOSJs TJHVJm$ XJFYJIz[J\JPD^Jd _Jsc `JC5aJxǯbJ}8RcJuJCLJCLJCLgJpG JCLJCLJCLJCLmJHlnJ~oJfr JCLJCLJCLJCLJCLJCLJCLwJx xJPyJQ\)JOP{Jo |J\.{}JmI~J^JDXJFGJw% ~JOPJ]/ |J1CLJ4GZJ6KcJ7HbJ:LuJCLJ?CLJ@CLJAMJCCLJFCyJHCLJICLJKx JMCLJNCLJOCLJROP$JSK%JTJ&JWJJYCL*J\K,J]Q J^OP.J_JJCLJCLJOPJCL3Jr<"4JA36JxL7JpY8Jm9J{:Jy3;JyfJSj?JI>@JFAJH1ZJOPDJ@|EJGpxFJFXGJPVJi JmJeJ\] J^OJAJc>k Ja JxH Jy !JCL JCLJCLJb JCLJw J@JB\Jup JJ{H JCLJCLJCLJCLJCLJFJHJ~@ JmmJ ](J y J z[ J xt Jn3JH[JT JJ,JGLJAq JR_<JG1JE ;J!~' J"R; J%kٚ J&`yJ'QJP^JRCLJSCLJTCLJUCLJVCLJYOPJ[OPJ]CLJ^CLJaLJbHJcI;JdIJhKJii}eJQ *}fJ@}s MJt+ NJDHOJF^!PJGQJYPRJOʅSJq TJH0bVJleC XJF YJHb[J\JQ;^Jd6_Js `JB2aJwfgbJ{.cJsBJCLJCLJCLgJpG JCLJCLJCLJCLmJHnJ)oJe$ JCLJCLJCLJCLJCLJCLJCLwJ|QxJRyJPJOP{Jn33 |J]K}Jm~J^J!D4J"FJ%} ~J(OPJ+[ |J-CLJ0GJ1KEJ3HQ5J6P uJ8CLtJ9CLJ;ts J=t J>sr 5J@L8U6JAMFJCCLJDCL:JFE;JGE4KJ|CL:J~EGJCLCLJ@MIJBCLJDCaJFCLJGCLNx NCLN CLN CLN OP$N K%NJq&NPoNCL*NKA,NQX/NOP.NK*NCLNCLNOPN!CL3N$r4N&A6N(xf7N)sY8N*hy9N-zg:N/p ;N0t3N3T'!?N4I&@N5FMAN6H(N7OPDN8AEN9GoFN:F#PGN;P6RNfiVfNgoC3NhfLNk| Nl`NmANnc[ Nob Npx+ Nqy# !NuCL NvCLNwCLNyd N|CLN~w_ N@;NBrdNt NK27 N{ NCLNCLNCLNCLNCLNF}NHЌN~@ NmZN](Nx Nz$ Nxh. NoNHqNWNKNG:NBp NPNGNDN~s NR3 Nmff N`LNQɚN^NCLNCLNCLNCLNCLNOPNOPNCLNCLNKNHpNI9NIXNKNiO\}eN]R}fJ;~ MN>s NN@DONAF.ZPNBFQNEY%RNFOYSNGq3 TNHGVNJk XNLFYNMH[NN\NOR$D^NRe_NSt `NVBgaNWxRbNX{\*cNYtN[CLN\CLN]CLgN`p w NbCLNcCLNdCLNeCLmNG}nN{ oNe8= NCLNCLNCLNCLNCLNCLNCLwN@xNOyNQ=qNOP{Nm |N] }NpS~N\NCNEȮN}f ~NOPNY{ |NCLNGNKNHcNNF4uNCLtNCLNt Nu NrQ 5NL1 6NM4NCLNCL:NE;NCSNNyONq3 PNq QNDgRNISTNJb'UNIuVNFfNOPNCLYNAZN AfN"OPN$CL]N&w_ ^N([~aN)OPN+CLaN.PON/OPNYCLdN[HzxN]OPfN_^N`CLhNbGiNcTNeOPkNfW lNhR=qmNiS =nNlHfoNmfpNo] qNpW rNqZ. sNrNLtNsNuNtDNuOPNxCLxNz@-SyN{RIezN|HaN~OPNCL}NHm~NKvQNINDwNOP~NCLNC NV N|34NriNsNCL NDNCLNCL NŸX@NCLNCLNN%bNCLNCLNp^ N`> NCLNCLNCLNp NzfNoɚNw@NK]NDNI NHk!NKg"Nu#Nhff$NK:[%NO&NMt'NM(N{a NCL*NH]+NNCL-NEN CLN!CL0N#@=1N$W.2N&Iw3N'Lw04N(GyN)OP6N+]N,CL8N.FN1CL:N3E9[N6CLNTT>*?NUIC@NVFANWH'7NXOPDNY@\ENZGlFN[F*GN\PN^hN`npNaepNbz! NebNfANgc NhbA Nix Njy@Y !NmCL NoCLNpCLNra NuCLNwvI Nx@NyBNzs N|BW N}{= NCLNCLNCLNCLNCLNFNHN} Nm5N](NwS Ny NxNJSuNCLtNCLNuV NsH Nqo 5NL&6NM&.NCLNCL:NE;NANST 7?NTHh@NUFANVH@NWOPDNX@ENYGbFNZF-JGN[PN_i3N`n@Naf0Nbx, NebNfAMZNgc{ NhcjS Njw Nkxo !NnCL NoCLNCLNfTQ NCLNvY N@`2NByNs NAh Nzu NCLNCLNCLNCLNCLNFNHxN~ Nm(N](NwB Nyl Nx NrNGNV)NJSNG;NBh NQNEƶNEAN} NW @ N m N `N QYN ^N CLN CLN CLN CLN CLN OPN OPN CLN CLN KN HAN I5GN I-N KN H }eNZJ}fNy MN dt7K NN fD/ON gEPN hFQN kXUGRN lPSN mp TN oG1VN pi7 XN rFYN sG1[N t\N uR ^N xf_N ztUU `N |AܒaN }z4bN ~|aHcN t{N CLN CLN CLgN oL N CLN CLN CLN CLmN G=(nN {6goN c| N CLN CLN CLN CLN CLN CLN CLwN x=qxN LByN ON OP{N l33 |N ^L}N pև~N ]N CN EN ~ ~N OPN Y |N CLN GgN JN HD-N O8uN CLtN CLN uff N t N pȵ 5N LG6N M'N CLN CL:N Eѕ;N KTQÖN ?OP.N @LN BCLN CCLN EOPN GCL3N Jqـ4N LAff6N Og37N P^338N QXY9N SwT:N Un;N Vt,N S?N H`@N FUAN HN OPDN @kEN GXFN F,bGN PhN hN n4N f N v N `N @6N c N c N w N xe !N CL N CLN CLN at N CLN vW N @N A/N rN N cAN z N CLN CLN CLN CLN CLN FrN HN }~ N lN ]%N v N y N w N pFfN G9N QQN JN GN B N Q1N EINN DN }R N M.{ N k"" N `fN QN ^N CLN CLN CLN CLN CLN OPN OPN CLN CLN KzN H)N I/N IN HKN Ke }eN l}fN f MN jsj NN lD3ON mEQKPN nF-QN qXkRN rPSN sph TN tG#/VN vjC XN xFYN yG[N zW\N {R^N ~e_N tc `N AaN z{bN {\cN sN CLN CLN CLgN oL N CLN CLN CLN CLmN GnN {oN c+ N CLN CLN CLN CLN CLN CLN CLwN wHxN K\)yN P(N OP{N k |N ]}N mo~N ] N CzAN EN ~] ~N OPN Y{ |NCLNGkNJNH5NMuNCLtNCLNu NtR N p 5N#L6N$M/LN&CLN'CL:N)E;N*MշCL*NiJ,NjQNkOP.NlL!NnCLNoCLNqOPNsCL3Nvq4NxAff6Nzg7N{U8N|VS39Nv:Nqy;NwNT_?NHX@NFANH mNOPDNABENGU5FNF,bGNPF0NhNo0Nf`Nt# N^N@дNd D Nc{ Nwna Nx !NCL NCLNCLNd( NCLNu N@-SNB8PNr NJ#NzT NCLNCLNCLNCLNCLNFBNHN}u% NlN](Nwl Ny Nw Nn)NG`NULNJƭNG> NB. NPNE"NDZN}f NT N1oٚ N3`3N4QfN5^N6CLN7CLN8CLN9CLN;CLN>OPN?OPNACLNBCLNEKXbNGHNHI.NIJkNLKNMi#}eNAl}fNd MNktb NNDyOND PNFQNWRNP*SNp TNGVNj XNFYNGC[N\NP.^Nfm_Nt `NAFaNybN|BcNsNCLNCLNCLgNo+ NCLNCLNCLNCLmNFRnN{@oNb NCLNCLNCLNCLNCLNCLNCLwN{xNM8RyNRQNOP{Nk33 |N_ }Nn4~N] NCV$NE~^N ~s ~N OPNY/ |NCLNG$NJyLNH2NGHuNCLtNCLN w& N!t N"p 5N$L,6N%MN(CLN)CL:N+E9[;N,L/NS?NH@NFANH NOPDNAxENGWFNF/GNP8|NiNnNf NsE N`frN@Nd Nc NwB Nw !NCL NCLNCLNbA NCLNu N@JeNBrdNr NI Nz % NCLNCLNCLNCLNCLNFNHN}u% NlN]%Nw_ Ny Nw NqfNG&NW^NJNG^NB N!PJN"EN#E:N&} N'O N*iY N+_fN,QfN.^N/CLN0CLN1CLN2CLN3CLN6OPN8OPN:CLN;CLN>K5N?H1N@I5GNBJ)NEKNF{ }eN^*T}fN @aMNs NNDfOND PNFQNWRNP#SN TNFJVNiqc XNGYNGA[N\NUs3^Ne1_Ntr `NAaNy*bN{gcNuNCLNCLNCLgNou NCLNCLNCLNCLmNGnN{@oNbY NCLNCLNCLNCLNCLNCLNCLwNAxNQzyNQ\NOP{Nj |N_C}No~N] NCSANEN~ ~NOPNY |N CLN GNJKNH=NKKuNCLtNCLNw?} Nu{ Nqn 5NEL6NFLNHCLNICL:NKDX;NLJSNN`wONcs PNds QNeEV[RNfIZTNhI>/UNiHj}VNjF^.NkOPNmCLYNoALZNpANrOPNtCL]Nvw ^NxZUMNyOPN{CLaN~ONOPNCLdNGNOPfN^NCLhNE2iNOkNOPkNV lNNHmNMpnNGoNeSpN[ qNS rNW33 sNM`tNNWuND3NOPNCLxNAyNSzNHNOPNCL}NH~NJNH04NE/5NOP~NCLNCBNTv NvfNsPNr&fN CL NDNCLNCL NnNCLNCLNN :NCLNCLNo N\ N!CLN"CLN#CLN%qQk N'_6fN(VfN)]iN,J-N.NǮN/VN0V!N1T"N2Ef#N3y33$N4Kbd%N5O&N6M\'N7MQ (N8AN:CL*N=eA+N?YN@CL-NBEdNECLNFCL0Rz@b1RzWm2RzI"3RzKk~4Rz F'Rz OP6Rz ]Rz CL8RzFRzCL:RzDRzCLRz3S?Rz4H@Rz5FmARz6HRz7OPDRz8AERz9GYFRz:F3GRz;PARz=iRz?m3Rz@f|RzAr RzDcRzE@RzFdTj RzGdc RzHw RzIwQ? !RzLCL RzNCLRzOCLRzQ`P RzTCLRzVu6 RzWAt@RzXBNRzYrk Rz[|URz\y] Rz_CLRz`CLRzaCLRzbCLRzcCLRzfFRzgHRz}I RzlRz]%Rzvܹ Rzy RzwD RzrRzFRzVh.RzNRzGRzB) RzPvRzE'RzEy'Rz| RzOz Rzk Rza RzQ6fRz^RzCLRzCLRzCLRzCLRzCLRzOPRzOPRzCLRzCLRzKRzH~RzIARzJ=RzKRzf@ }eRz[W}fN@MRztE NRzDfORzDPRzFQRzW}&RRz P5|SRz!ATRz"FĒVRz#i XRz&GYRz'G/[Rz(\Rz)P6 ^Rz,d_Rz-t `Rz/CwVaRzY{>bRzZ}ucRz[vRz]CLRz^CLRz_CLgRzaoM RzdCLRzeCLRzfCLRzgCLmRzjGFnRzm{goRznbD RzpCLRzrCLRzsCLRztCLRzuCLRzvCLRzwCLwRzzuxRz{OyRz}QLRz~OP{Rzk"# |Rz^/2}Rzm7~Rz] RzCRzERzy ~RzOPRzX |RzCLRzGw0RzJDRzHRzQ8uRzCLtRzCLRzw Rzt+ Rzp 5RzL#c6RzLRzCLRzCL:RzEz;RzHPDiRz?N]2RzAOPkRzBVd lRzCQffmRzDOGnRzGIoRzIepRzK^q qRzLWk rRzMZ sRzNMtRzONUuRzPDRzQOPRzSCLxRzUByRzWP&zRzXHRzZOPRzCL}RzH~RzJURzGRzEERzOP~RzCLRzD%RzT9 RzvYRztfgRzrRzCL RzD̘RzCLRzCL RzRzCLRzCLRzD%RzCLRzCLRzp$ Rz\ RzCLRzCLRzCLRzq20 Rzu RzlRzrfRzJRzORzSRzRaH!Rz\ٙ"RzI#Rz{g$RzKh%RzO=&RzM'RzMf(Rz| z RzCL*Rzv+RzqcRzCL-RzERzCLRzCL0Rz@1RzV2RzI3RzKA4RzFcRzOP6Rz]RzCL8Rz FLRz CL:RzDSRzCLRz1SY3?Rz2H@Rz3F@ARz4G Rz5OPDRz6AERz7GU5FRz8F4GRz9OARzOPkRz?V lRz@W(mRzAUznRzlH33oRznepRzp_33 qRzqW rRzrZ sRzsMtRztNVuRzuDRzvOPRzxCLxRzzBNyRz|NFzRz}HzxRzOPRzCL}RzH~RzJ-RzGRzERRzOP~RzCLRzCBRzT92 Rzw3RztRzs3RzCL RzDYRzCLRzCL RzwRzCLRzCLRzAlRzCLRzCLRzp Rz], RzCLRzCLRzCLRzq Rz Rzos4RzvlRzJqRzMRzRRzQc!RzJ@"Rz4#RzgY$RzKo!%RzOH&RzMR'RzMo#(Rzz? RzCL*RzCll+Rz6RzCL-RzEdRzCLRzCL0Rz@X1RzU2RzH73RzK4RzEѕRzOP6Rz]RzCL8RzEѕRz CL:Rz DgRz6CLRz -S?Rz .H@Rz /FARz 0GSRz 1OPDRz 2BgERz 3GQFRz 4F-JGRz 5ORz `k6fRz aogRz bgfRz cq Rz f`~MRz g@4Rz hdp Rz jd Rz kv Rz lvt !Rz oCL Rz pCLRz qCLRz saL Rz vCLRz yv- Rz zALRz {AqRz |r# Rz }KCB Rz ~yN Rz CLRz CLRz CLRz CLRz CLRz G Rz HRz }f Rz lRz ](Rz w4 Rz {Z Rz v Rz pRz FRz X?Rz fLRz IRz Bff Rz PdzRz DRz EُRz |oQ Rz N Rz gH Rz `iRz P3Rz ^Rz CLRz CLRz CLRz CLRz CLRz OPRz OPRz CLRz CLRz JݔRz HRz IJ(Rz J?eRz KRz j}eRz }_@}fRz@sMRz 8t NRz :DmORz ;DBQPRz !Rz Sٚ"Rz |3#Rz cf$Rz Ky$%Rz O &Rz M'Rz Mi(Rz { Rz CL*Rz C+Rz xRz CL-Rz EdRz CLRz CL0Rz @;1Rz ]2Rz "H3Rz #JR4Rz $EjRz %OP6Rz ']Rz (CL8Rz *ERz -CL:Rz /DQNRz 2CLRz QSVQ?Rz RHA@Rz SFARz TG9Rz UOPDRz VB+?ERz WGNFRz XF)GRz YORz \o&fRz ]sRz ^jRz _pX Rz b^jRz c@NRz de Rz ed/ Rz fv Rz hvY !Rz kCL Rz lCLRz mCLRz ocjS Rz rCLRz tuZ Rz uc Rz vBk!Rz xq Rz yL Rz zy Rz }CLRz ~CLRz CLRz CLRz CLRz GRz HϣRz } Rz lЛRz ](Rz w Rz { Rz v Rz qRz FWRz WRz k׎Rz JRz B{ Rz PJRz DERz E?Rz |C Rz TL Rz gs3 Rz `|Rz OpRz ^Rz CLRz CLRz CLRz CLRz CLRz OPRz OPRz CLRz CLRz JRz HRzIKRzJ?eRzKRzy{}eRz y_}fRz AMRz4t NRz6Dt<ORz7CPRz8FiQRz;W"RRzGzVRz@jh XRzBGYRzCG[RzDC\RzEU9^RzHeo_RzJt `RztBaRzu{bRzv~cRzwuǯRzyCLRzzCLRz{CLgRz~oek RzCLRzCLRzCLRzCLmRzGnRz|goRzcU RzCLRzCLRzCLRzCLRzCLRzCLRzCLwRzyxRzMyRzORzOP{Rzl |Rz]w}Rzn-~Rz]RzDRzEcRz|j ~RzOPRzY |RzCLRzGj{RzJRzH-RzMuRzCLtRzCLRzx Rzu1 RzrdZ 5RzL/96RzM4RzCLRzCL:RzE ;RzE|RzS RzCTRzBRz@{3RzCL RzDRzCLRzCL RzRzCLRzCLRzARzCLRzCLRzp Rz] RzCLRzCLRzCLRzp0 Rzn6fRzagRzl&fRzJ-RzMRzNRRzN!RzQ"Rz|34#Rz`f$RzK?%RzN&RzMT'RzMf(RzAjRz CL*Rz n(+RzZRzCL-RzEGRzCLRzCL0Rz' 1RzY@%2RzH3RzJݔ4RzERzOP6Rz ]Rz!CL8Rz#FTRz&CL:Rz(DJRz+CLRzJS ?RzKH}@RzLFARzMG߉RzNOPDRzOAJERzPGOFRzQF2GRzRORzUcs3RzVgfRzW`iRzXo-* Rz[_'Rz]@Rz^e[ Rz_d Rz`vY Rzav !RzdCL RzeCLRzfCLRzhb RzCLRzuS[ Rz{ RzB5Rzq RzA Rzx RzCLRzCLRzCLRzCLRzCLRzGSRzH@Rz} RzlRz]%Rzw Rz{ RzvU RzrfRzF.RzVRzn_RzLERzBk RzPRzDRzF"Rz| RzP Rz]7w Rz^3RzMlRz^RzCLRzCLRzCLRzCLRzCLRzOPRzOPRzCLRzCLRzJbRzH~Rz IORz JA6RzKRzr}eRzY}fRzA}MRz/s NRz1Dt<ORz2ChPRz3F:QRz^WRRz`PuSRzaqt TRzbGVRzcic XRzeFYRzfF9[Rzge\RziP9^Rzlep_Rzmu `RzoB.UaRzp}bRzqcRzrvqRzuCLRzvCLRzwCLgRzyo>\ Rz{CLRz|CLRz}CLRzCLmRzGnRz{IoRzb RzCLRzCLRzCLRzCLRzCLRzCLRzCLwRz@qxRzNyRzTRzOP{Rzk33 |Rz_&}Rzo\?~Rz]RzCѡRzEuRzz ~RzOPRzXb |RzCLRzG^RzIRzH@RzO"uRzCLtRzCLRzx Rzu Rzq 5RzL1 6RzMURzCLRzCL:RzDS;RzC.%RzIx&RzH`Rz!CL*Rz#H,Rz$R)Rz%OP.Rz&N&Rz(CLRz)CLRz,OPRz.CL3Rz1p4Rz3Aff6Rz5Z`7Rz6[8Rz7U39Rz:sZ:Rzs`Rz?OP>Rz@S=?RzAHs@RzBFARzCGҀRzDOPDRzEBEERzFGJMFRzGF6[GRzHORzKb\RzLgRzN_gRzOn RzRbRzS@eRz|e Rz}e>t Rz~v- Rzu} !RzCL RzCLRzCLRz_ RzCLRzu ~ Rz{ RzBRzq9 RzA Rzx RzCLRzCLRzCLRzCLRzCLRzG;RzHضRz} Rzl,Rz]%Rzv Rz{= Rzv[ Rzr RzFoRzVSTRztRzMRzBh RzPRzDRzFFDRz{ RzNO Rzn@ Rz`RzRRz^RzCLRzCLRzCLRzCLRzCLRzOPRzOPRzCLRzCLRzJ3RzHIRzIORzJ:RzKRzo }eRzZ}fRzAMRzMs NRzODqbORzQCwPRzRF7QRzUVRRzVP|SRzWq9 TRzXFVRzYi XRz\FYRz]F[Rz^D\Rz_RJ^RzbeB_Rzcu9 `RzeAaRzgzbRzh}cRziwfgRzkCLRzlCLRzmCLgRzoo RzrCLRzsCLRztCLRzuCLmRzxGnnRz{{4oRz|b Rz~CLRzCLRzCLRzCLRzCLRzCLRzCLwRzwxRzLaHyRzRRzOP{Rzk |Rz^}Rzo~Rz]RzCRzE|4Rz} ~RzOPRzY!( |RzCLRzGY<RzIRzH8RzF}uRzCLtRzCLRzy Rzt+ Rzp 5RzLCD6RzMp RzCLRzCL:RzDS;Rz B)Q4Rz?OPRzACLdRzCG4RzEOPfRzG^VbCLhVbD- iVbUTVbOPkVb TZ lVb ]pmVb YffnVb E oVbdpVbd qVbZaH rVb^ sVbN!tVbNuVbDVbOPVbCLxVbByVbQ5=zVbH2Vb OPVb"CL}Vb%Hm~Vb'IVb(G,Vb)E|Vb*OP~Vb,CLVb.C:Vb1SW Vb2D3Vb3GVb4AVb6CL Vb8E Vb;CLVbdCL VbewVbfCLVbgCLVbiC VblCLVbmCLVboph Vbp\s VbsCLVbtCLVbuCLVbwo VbyYVbzsVb{}Vb~JVbGVbJ{VbJ>!VbB"Vbx&g#Vbm $VbK-%VbO &VbM'VbMA(Vb~24 VbCL*VbjR+VbVbCL-VbCVbCLVbCL0Vb} 1VbV2VbHa3VbJ4VbEbVbOP6Vb]VbCL8VbF5VbCL:VbDJVbCLJgVb@LûVbCo^ VbEMVbFBWVbHCLVbKG^VbLDVbMOPVbOCLVbPCLVbQCLVbSCLVbTCLVbUCLVbVCLVbYNgVbZMVb[^Vb\MHVb]kHVb^MHVbaCLVbbCLVbcCLVbdCLVbeCLVbfCLVbgCLVb]VbCLVbCLVbCLVbMVbCLVbC VbCLVbCLVb{/ VbCLVbCLVbCLVbOP$VbK:[%VbIނ&VbN@VbCL*VbH`,VbRPVbOP.VbNVbCLVbCLVbOPVbCL3Vbpճ4VbAff6Vbg7Vb``8VbU9VbsQy:Vbt9;VbsVbST?VbHf@VbF}AVbG VbOPDVbB9 EVbGGFVbF8,GVbO'VbfVbk3Vbc&fVbnz5 Vbc!Vb@BVVb e Vb e5 Vb v4 Vb u !VbCL VbCLVbCLVbeM VbCLVbu Vb| VbBNVbp Vb~Vbx0 Vb!CLVb#CLVb$CLVb%CLVb&CLVb)GuVb*H\Vb-}h Vb/lVbZ]%Vb\vܹ Vb]z Vb^v/ Vbar VbdEяVbeUVbf|8VbgOVbiBh VbmPGVbnDVboF^.Vbr{H VbsU Vbvh33 Vbw`3VbxR Vby^Vb{CLVb|CLVb}CLVb~CLVbCLVbOPVbOPVbCLVbCLVbJhJVbHٞVbIS<VbJ;VbKVbB3 }eVbW}fRzAMVbtb NVbDjOVbCPVbFV5QVbVRVbPRSVbpX TVbFVVbic XVbF6YVbFf[VbH!\VbS6^Vbe*_Vbuq `VbA+aVb{\bVb~.cVbvVb CLVb!CLVb"CLgVb$oK Vb&CLVb(CLVb)CLVb*CLmVb-G7nVb0{vgoVb1b Vb3CLVb4CLVb6CLVb7CLVb8CLVb9CLVb:CLwVb=~=qxVb>O{yVb@UpVbAOP{VbDk |VbF^Z}VbGn~VbI]VbLC]VbNEVbQ{ ~VbSOPVbVXE |VbXCLVb[GEEVbJNVbH\VbJ~uVbCLtVbCLVbw Vbt/ VbpH 5VbL>6VbMqVbCLVbCL:VbD;VbAVbS#.?VbH_@VbF}AVbGVbOPDVbBnEVbGBFVbF=GVbNʰVbh,VbmVbe#4Vbm Vb aTVb @0Vb f7 Vbf Vbu} VbuD !VbCL VbCLVbCLVb@` VbCCLVbEt VbF|` VbHA:VbIp VbKNVbNx VbQCLVbRCLVbSCLVbTCLVbVCLVbYFVbZHŨVb]} Vb_l!Vbb]%Vbcv Vbdz? Vbev Vbisc3VblEVbmR@VbnAVboP}VbqBH VbtQbGVbuEVbvFqVby{/ Vb{L} Vbpٚ Vb`VbSfVb^VbCLVbCLVbCLVbCLVbCLVbOPVbOPVbCLVbCLVbJIdVbHVbIOVbJ<VbK{Vbgy }eVbK`j }fVb@MVb s2 NVb Dj@OVb CPVbF[GQVbVRVbPGPSVbpӖ TVbFVVbin XVbGYVbFa[Vbdk\VbR^Vbe8v_Vb u8 `Vb!APgaVb#zbVb$}cVb%u\*Vb'CLVb(CLVb*CLgVb,n Vb.CLVb/CLVb0CLVb1CLmVb4GnVb8{goVb9b Vb;CLVbCLVb?CLVb@CLVbBCLwVbmxVbnMffyVboS >VbpOP{Vbsk |Vbu_%}Vbwn4~Vby]Vb|Ch3Vb}EeVb~' ~VbOPVbU޿ |VbCLVbG4VbJ^VbGپVbOuVbCLtVbCLVbw VbtĜ Vbp 5VbKř6VbMsVbCLVbCL:VbDu;VbMZ = rVb?] sVb@NAtVbANuVbCDVbDOPVbFCLxVbHByVbILLNzVbJH*VbLOPVbNCL}VbPHm~VbRIQVbSFVbUEVbVOP~VbXCLVbZCZVb\S%) Vb]C3Vb^DXVb_@K3VbaCL VbcDVbfCLVbgCL VbhpVbiCLVbkCLVbmLIgVboCLVbCLVbp3 Vb]Ay VbCLVbCLVbCLVbo VbhVb\@VbffVbJVbJnVbNǮVbSG!Vb} "VbGٚ#Vbkff$VbK%VbNN&VbM2 'VbLΫ(Vb VbCL*Vbw+Vb VbCL-VbCuVbCLVbCL0Vb~ 1Vb^2VbH4}3VbJa4VbFVbOP6Vb]VbCL8VbGnVbCL:Vb DQNVb CLVb RG?Vb HU@Vb F~AVb GVb OPDVb (Bf EVb )G?eFVb *F?lGVb +NuVb /hS3Vb 0mVb 1eVb 2n5n Vb 5^,Vb 6@ Vb 7fq Vb 8fE Vb 9u6 Vb ;u ~ !Vb >CL Vb ?CLVb @CLVb Be5 Vb ECLVb Gt Vb H|R8 Vb IAqVb Kpmy Vb MVb PxWc Vb SCLVb TCLVb UCLVb VCLVb WCLVb [FrVb \HVb _},l Vb alj(Vb ]%Vb vW Vb zF^ Vb ul Vb nfVb EVb RFVb BVb QVb B!H Vb Q]Vb EVb FVb { Vb V Vb tQ Vb `ٚVb R Vb ^Vb CLVb CLVb CLVb CLVb CLVb OPVb OPVb CLVb CLVb J/Vb HVVb IKVb J5eVb K{Vb iH}eVb MR\}fVb@MVb s2 NVb DjOVb CiPVb FLQVb V RVb P"SVb ph TVb FVVb i+ XVb G&YVb F*q[Vb G\Vb Twx^Vb dU+_Vb u8 `Vb !A33aVb #{.bVb $@QcVb %xzVb 'CLVb (CLVb *CLgVb Tn Vb VCLVb WCLVb XCLVb YCLmVb \F-nVb `{4oVb ab» Vb cCLVb dCLVb eCLVb fCLVb gCLVb hCLVb jCLwVb mypxVb nM >yVb oO\Vb pOP{Vb sk"# |Vb u^!}Vb wn~Vb y]Vb |CRVb }ENVb r ~Vb OPVb Y!( |Vb CLVb GVb J,Vb GVb MN)uVb CLtVb CLVb w9X Vb uK Vb p 5Vb KϜ6Vb Mb^Vb CLVb CL:Vb D;Vb M YaH rVb ?\{ sVb @NR[tVb AN]uVb CDVb DOPVb FCLxVb HByVb IN.\zVb JH*Vb LOPVb NCL}Vb PHm~Vb RIFVb SFͩVb UEVb VOP~Vb CLVb CwVb RQ Vb EfVb FVb C{3Vb CL Vb DZVb CLVb CL Vb Vb CLVb CLVb AfVb CLVb CLVb o+ Vb [ Vb CLVb CLVb CLVb o Vb oVb cVb n3Vb JbAVb M>Vb SHVb ]!Vb Pٚ"Vb H3#Vb \4$Vb Ka%Vb N&Vb MT'Vb L`(Vb AZVb CL*Vb dY+Vb 孠TVb CL-Vb C'Vb CLVb CL0Vb |ƚ 1Vb X2Vb H3Vb J8 4Vb F9Vb OP6Vb ]Vb CL8Vb GxVb CL:Vb DXVb CLVbSK?VbHL@VbF{.AVb G:Vb!OPDVb"B$EVb#GA6FVb$F?lGVb%NxVb(aVb)g33Vb*^3Vb+lj Vb._Vb/? Vb1fm Vb2e Vb3up Vb4t !Vb7CL Vb8CLVb9CLVb;a< Vb>CLVbAs VbB|` VbCB"VbDo VbEG VbFx+ VbICLVbJCLVbKCLVbuCLVbvCLVbyFVbzHVb}}f VblRVb]%Vbv4 Vbz7 VbuF VbpVbETuVbX~VbCJVbRҁVbB VbOVbDVbFVb{w VbMK Vbq Vb`VbUVb^VbCLVbCLVbCLVbCLVbCLVbOPVbOPVbCLVbCLVbJiVbHٞVbIDVbJ4}VbK{Vbj\}eVbE\]}fVb @fMVbs NVbDfOVbBPVbFBQVbVRVb P<SVb @TVb FVVb gň XVbFYVbF [Vb\VbPb^Vb=c8_Vb>uUV `Vb@B|4aVbA{\bVbB~cVbCvVbFCLVbGCLVbHCLgVbJn VbLCLVbMCLVbNCLVbOCLmVbSGfnVbV{)oVbWa VbYCLVbZCLVb[CLVb\CLVb^CLVb_CLVb`CLwVbc@xVbdNzyVbeTzVbfOP{Vbii |Vbl_0}Vbmo1W~Vbo]VbrC{VbsEXVbv~OI ~VbOPVbX |VbCLVbG VbJ VbHVbGyuVbCLtVbCLVbwv Vbu1 Vbp 5VbK>6VbMY?VbCLVbCL:VbD;VbLLKVbCLVbCLBVbzu CVbGDVbDV&EVbgQFVbyQGVbb(HVbM LVbCJ>MVb@\NVbKOVbx PVbw QVbFRVbIbTVbH!UVbGVVbFVbOPVb CLYVb C=ZVb BEVbOPVbCL]Vbvܹ ^Vb[OVbOPVbCLaVbPzVbOPVbCLdVbGuVb!OPfVb#^Vb$CLhVb'CBiVb(QsVb*OPkVb+S lVb,i\mVb-hnVb0JoVb1c pVb3^R qVb4Uq rVb5Y sVb7NXtVb8NuVb9DVb:OPVbB5yVb?R zVbhG'VbjOPVblCL}VbnHm~VbqI2VbrFVbsEVbtOP~VbvCLVbxCDVbzR Vb|D3Vb}EVb~B[3VbCL VbDVbCLVbCL Vb VbCLVbCLVbAlVbCLVbCLVbo VbZh VbCLVbCLVbCLVbou VbpVb`gVbffVbJqVbM8RVbNVbM@!VbO"Vb~s4#VbV$VbK%VbN&VbM'VbL(VbAWVbCL*Vb]+VbۧsVbCL-VbCpiVbCLVbCL0Vb|j 1VbW2VbHU3VbJ4VbFnVbOP6Vb]VbCL8VbH#VbCL:VbDBVbCL VbEixB VbGHVbHCVbJ|͓VbKFN=VbNLvVbPI gVbQLVbTr VbVM VbYEVVbZLvVb\y%Vb^JPVb_L^Vbbo^ VbdMVbeB#VbgCLVbjG^VbDF-VbOPVbCLVbCLVbCLVbCLVbCLVbCLVbCLVbYIVbG6gVb^YVbkHVb@VbkHVbCLVbCLVbCLVbCLVbCLVbCLVbCLVb]VbCLVbCLVbCLVbM-VbCLVbC#VbCLVbCLVbzu VbCLVbCLVbCLVbOP$VbJ}%VbIƢ&VbJVbCL*VbHa,VbS(9VbOP.VbO+dVbCLVbCLVbOPVbCL3Vbp4Vb Aff6Vb Es37Vb K98Vb@9Vbs:Vb4;Vbws3VbS?VbHCu@VbFsAVbGVbOPDVbA~EVbGIdFVbF@TGVbOVb!RPVb"X3Vb#Q9Vb$k Vb(b5Vb)VZ Vb*f Vb+f Vb,u65 Vb-tU !Vb0CL Vb1CLVb2CLVb]bA Vb`CLVbbsU: Vbc{LS VbdBVbeo; Vbg'Vbjx VbmCLVboCLVbpCLVbqCLVbrCLVbuFbVbvHAVby}: Vb{lVb~]%Vbu' Vby@ Vbu Vbqs3VbE( VbQcVbCVbStVbB0 VbQjVbDVbFVb{LS VbT/P Vbt Vb`VbV<Vb^VbCLVbCLVbCLVbCLVbCLVbOPVbOPVbCLVbCLVbJVbHDVbI=sVbJ0VbK{Vbg }eVbggs}fVb@MMVb&sk NVb(DcOVb)B^!PVb+F"QVb.VRVb/PJSVb0B)TVb1E_VVb2f} XVb4F&YVb6E[Vb7\Vb8U̓^Vb;b%_VbDaVb?|#bVbA}cVbBv\VbDCLVbECLVbFCLgVbHn VbJCLVbKCLVbMCLVbNCLmVbQH\pnVbT{oVbU`b5 VbWCLVbXCLVbZCLVb[CLVb\CLVb]CLVb^CLwVb\xVbPyVbP{VbOP{Vbg |Vb_х}Vbq L~Vb]VbCXVbFEVb}: ~VbOPVbV |VbCLVbGAVbIΘVbGʉVbKuVbCLtVbCLVby Vbsfg Vbo 5VbK6VbMRVbCLVbCL:VbCpi;VbJaixB Vb?CL!Vb@HVbADnQVbBj VbCixB VbDHؒVbFCVbH{VbIFN=VbLLvVbNI~VbOLVbRr Vb|M VbEVVbL"VbwVbKVbLVbo^ VbMVbBeVbCLVbFJVbDF-VbOPVbCLVbCLVbCLVbCLVbCLVbCLVbCLVbNgVbG6gVb_fVbGHVbLVbGHVbCLVbCLVbCLVbCLVbCLVbCLVbCLVb]VbCLVbCLVbCLVbMXVbCLVbCTVbCLVbCLVbz$ VbCLVbCLVbCLVbOP$VbJ%VbI}&VbH% VbCL*VbH,VbR"VbOP.VbO+dVbCLVbCLVbOPVbCL3VbpV4VbAff6Vb Aff7Vb I8Vb @9Vbs0:Vbl;VbzfVbR?VbH3@VbFhAVbG9VbOPDVbA-EVbGDFVbF9GVbDO$VbHRc4VbIXvfVbJQLVbKja VbNcVbO~ VbQg VbRf/ VbSu ~ VbTt>u !VbWCL VbXCLVbYCLVb[bb Vb^CLVbas8 Vbbz[ VbcAZVbdnT VbfXVbiw VblCLVbmCLVboCLVbpCLVbqCLVbtF/VbuHMVbx}I Vbzl~Vb}]%Vb~t Vby Vbuc Vbr3VbEVbSQFVbCԲVbU(VbB5 VbR1VbDVbFVb{/9 VbP9 VbpUU VbafVbU3Vb^VbCLVbCLVbCLVbCLVbCLVbOPVbOPVbCLVbCLVbIVbHIVbI3vVbJ%VbK{Vbhf }eVbfhV }fVbBAMVb%sz NVb'DWOVb(BPVb)FQVb-V`RVb.PUSVb/t TVb0EcVVb1e`E XVb3FRYVb4F[Vb68\Vb7U8.^Vb:a_Vb;u `Vb=D$aVb>zbVb?{cVbAtVbCCLVbDCLVbECLgVbGnk[ ZJCLZJCLZJCLZJ CLmZJ HnZJ{oZJ_

    CLZJ?CL ZJ@ZJACLZJBCLZJDCBZJGCLZJHCLZJJo,| ZJKZ\ ZJNCLZJOCLZJPCLZJRo| ZJT`ZJUQZJVWZJYJqZJ[kHZJ\rkZJ]qH!ZJ^| "ZJ_k@#ZJ`Q&f$ZJbK%ZJcO&ZJdM!'ZJeLo(ZJfA~ZJCL*ZJUȃ+ZJ9ZJCL-ZJCZJCLZJCL0ZJ}R 1ZJU02ZJGλ3ZJI4ZJFZJOP6ZJ]ZJCL8ZJHmZJCL:ZJDZJCLZJS+?ZJHl@ZJFT$AZJGZJOPDZJ@EZJG)FZJF$8GZJOMZJTfZJZZJS6fZJi ZJbǿZJ~ ZJg>? ZJf ZJt4 ZJt' !ZJCL ZJCLZJCLZJa[o ZJCLZJrE ZJz$ ZJB}ZJn ZJ"μZJ%w3 ZJ(CLZJ)CLZJ*CLZJ+CLZJ,CLZJ/FEZJ1HlZJ4}I ZJ6kZJ9]%ZJ:t[ ZJ;xo ZJK;ZJyGۤgZJ6y3ZJ8CL ZJ:DXZJ=CLZJ>CL ZJ?߆ZJ@CLZJACLZJDNRZJFCLZJGCLZJIoK ZJJZ4 ZJMCLZJNCLZJOCLZJyn: ZJ{_3ZJ|QɚZJ}WZJI/ZJt4ZJ{ZJ{L!ZJI"ZJs #ZJVfg$ZJK%ZJO&ZJM/L'ZJL(ZJAQcZJCL*ZJSf*+ZJHZJCL-ZJ^ ZJCLZJCL0ZJ{ 1ZJ\2ZJG3ZJIϥ4ZJFIZJOP6ZJ]ZJCL8ZJHaZJCL:ZJCZJCLZJ]CLZJ_CLZJ`CLZJaCLZJbCLZJcCLZJdCLZJe]ZJfCLZJhCLZJiCLZJjMZJlCLZJoC#ZJqCLZJrCLZJswS ZJvCLZJwCLZJxCLZJ{OP$ZJI%ZJI&ZJOZJCL*ZJH^,ZJSKZJOP.ZJO ZJCLZJCLZJOPZJCL3ZJp|4ZJAff6ZJc7ZJ\8ZJq39ZJs :ZJ;ZJuLZJS ?ZJG!@ZJF;AZJGe%ZJOPDZJASEZJG FZJF GZJOeZJTC4ZJYٙZJS@ZJhG ZJakZJ~K ZJgj ZJf ZJtz ZJ sF !ZJ CL ZJ CLZJCLZJc ZJCLZJr ZJ{ ZJDZJn ZJQZJw ZJ!CLZJ"CLZJ#CLZJ%CLZJ&CLZJ)FZJ*HbZJ-|& ZJ/kPZJ2]%ZJ3t>u ZJ5xP ZJ6u T ZJ9sZJCZJ?WyaZJABf ZJlPfZJnD~ZJoFZJrz ZJsR-E ZJvl ZJw`&fZJxR3ZJy^ZJzCLZJ|CLZJ}CLZJ~CLZJCLZJOPZJOPZJCLZJCLZJI1ZJHZJI+KZJJZJK\ZJff }eZJO'}fZJmBMZJs\ NZJDHOZJBPZJEQZJVRZJP`ESZJq TZJDVZJe XZJFgYZJF[ZJT\ZJUf^ZJfv_ZJu `ZJBaZJyQbZJzfgcZJw(ZJCLZJCLZJCLgZJnNfyZJ?QRZJAOP{ZJDg |ZJF`ݭ}ZJGp~ZJI]ZJLCZJMExZJQ~l^ ~ZJSOPZJVS |ZJXCLZJ[FZJ]I ZJ^GZJaH|guZJcCLtZJdCLZJgy ZJhrQ ZJip" 5ZJkK36ZJlMJZJnCLZJoCL:ZJEO;ZJFhFZJjGZJ`=qHZJM49 LZJbMZJ`NZJuROZJy PZJy@Y QZJGgRZJIbTZJG˟UZJGqVZJGCZJOPZJCLYZJDGZZJAZJOPZJCL]ZJt ^ZJ`oZJOPZJCLaZJOJZJOPZJCLdZJG`ZJOPfZJ^ZJCLhZJ CiZJ LFZJ OPkZJ S lZJ lmZJ hnZJ E)oZJ cpZJ `p qZJ Y. rZJ \aH sZJ N\etZJ NuZJ D~ZJ OPZJ CLxZJ A/yZJ QkzZJ H ZJ OPZJ CL}ZJ !Hk~ZJ #HZJ $FZJ %EZJ &OP~ZJ (CLZJ *B+ZJ -R% ZJ .@ZJ /B3ZJ 0yvfZJ 2CL ZJ 4DQNZJ 7CLZJ `CL ZJ anZJ bCLZJ cCLZJ eF[GZJ hCLZJ iCLZJ ko ZJ lY ZJ oCLZJ pCLZJ qCLZJ snk[ ZJ ua3ZJ vQfZJ wVS3ZJ zIhZJ |vpZJ }}ZJ ~|q!ZJ Mff"ZJ o#ZJ R3$ZJ K%ZJ N&ZJ M'ZJ Lf(ZJ A?;ZJ CL*ZJ Qf+ZJ ZJ CL-ZJ } ZJ CLZJ CL0ZJ y 1ZJ X>u2ZJ G3ZJ I64ZJ FnZJ OP6ZJ ]ZJ CL8ZJ HZJ CL:ZJ C>ZJ CLM^ZJ ?BWZJ ACLZJ DFZJ GDF-ZJ IOPZJ KCLZJ LCLZJ MCLZJ OCLZJ PCLZJ QCLZJ RCLZJ UYgZJ VK3ZJ W^3ZJ XP >ZJ YLZJ [PGZJ ]CLZJ ^CLZJ _CLZJ `CLZJ aCLZJ bCLZJ cCLZJ ]ZJ CLZJ CLZJ CLZJ MIZJ CLZJ C<ZJ CLZJ CLZJ wB ZJ CLZJ CLZJ CLZJ OP$ZJ IZ%ZJ I&ZJ MZJ CL*ZJ Hj,ZJ S7ZJ OP.ZJ O[ZJ CLZJ CLZJ OPZJ CL3ZJ p4ZJ Aff6ZJ f7ZJ e38ZJ p39ZJ r::ZJ s,;ZJ pZJ RN?ZJ Gd@ZJ F!OAZJ H1ZZJ OPDZJ AeEZJ FAFZJ EGZJ OUZJ SZJ YZJ RZJ go ZJ ^UZJ } ZJ g ZJ f& ZJ tj. ZJ srb !ZJ CL ZJ CLZJ CLZJ a ZJ CLZJ r ZJ |} ZJ E ZJ n% ZJ \PZJ w_ ZJ CLZJ !CLZJ #CLZJ $CLZJ %CLZJ (FZJ )HAZJ T|oQ ZJ Vk/ZJ Y]""ZJ ZtM ZJ \x0 ZJ ]t ZJ `nvfZJ cEOZJ dRZJ eCZJ fXZJ hBk ZJ kO%ZJ mDĞZJ nFZJ qz[ ZJ rM" ZJ ur; ZJ v`ٚZJ wVZJ x^ZJ zCLZJ {CLZJ |CLZJ }CLZJ ~CLZJ OPZJ OPZJ CLZJ CLZJ IZJ HoZJ I&ZJ JZJ K\ZJ i}eZJ I/m}fZJgB;MZJ r NZJ D?wOZJ BPZJ E9QZJ URZJ P\SZJ q3 TZJ DdVZJ e5| XZJ FYYZJ F[ZJ \ZJ T^ZJ d_ZJ u `ZJ B7aZJ z >bZJ y{cZJ v{ZJ CLZJ CLZJ CLgZJ !n% ZJ #CLZJ $CLZJ &CLZJ 'CLmZJ *GuQnZJ -{oZJ .^ ZJ 0CLZJ 1CLZJ 2CLZJ 4CLZJ 5CLZJ 6CLZJ 7CLwZJ :zxZJ ;KyZJ CLZJAG^ZJDDF-ZJFOPZJHCLZJICLZJJCLZJtCLZJuCLZJvCLZJwCLZJzYgZJ{L3ZJ|YgZJ}KzZJ~I34ZJMffZJCLZJCLZJCLZJCLZJCLZJCLZJCLZJ]ZJCLZJCLZJCLZJMZJCLZJCZJCLZJCLZJzcz ZJCLZJCLZJCLZJOP$ZJI%ZJI&ZJKNZJCL*ZJH|.,ZJSZJOP.ZJO`ZJCLZJCLZJOPZJCL3ZJpWN4ZJAff6ZJo7ZJC338ZJ9ZJr+:ZJt ;ZJn`ZJR?ZJGa@ZJF oAZJJ%ZJOPDZJA.EZJFFZJE%GZJNZJTZJZZJT ZJf ZJ^ZJ}n ZJg3 ZJgx ZJt/ ZJs8 !ZJCL ZJCLZJ CLZJ cM ZJCLZJrz ZJ@ZJEZJw4 ZJACLZJBCLZJCCLZJECLZJFCLZJIFZJJHeZJM|R8 ZJOj[ZJR]%ZJSs ZJTx# ZJVt ZJYrZJ\EgZJ]S~ZJ^CYZJ_Z ZJaBٚ ZJdO-ZJeD^ZJgFZJjz ZJkQ ZJnm ZJo^3ZJpU<ZJq^ZJrCLZJtCLZJuCLZJvCLZJwCLZJOPZJOPZJCLZJCLZJIZJHnZJI(ZJJ ZJK\ZJQ }eZJ=V }fZJ AQMZJs? NZJD<OZJCPZJErQZJURZJPSZJq TZJEVZJe| XZJFNYZJ E[ZJ G\ZJ R[^ZJc _ZJv `ZJATaZJyqbZJxcZJvZJCLZJCLZJCLgZJn0 ZJCLZJCLZJ CLZJ"CLmZJ%G2JnZJ({4oZJ)^j ZJ+CLZJ,CLZJ-CLZJ.CLZJ0CLZJ1CLZJ2CLwZJ5vQxZJ6OyZJ7TZJ8OP{ZJ_}ZJ?p<~ZJi]ZJlCZJmEZJq~ ~ZJsOPZJvWt |ZJxCLZJ{FZJ|HhZJ~GZJOuZJCLtZJCLZJwZJR?ZJGu@ZJEAZJLlZJOPDZJAUEZJFbFZJE5GZJOeZJIZJNgZJIZJfHw ZJc&ZJ}1 ZJg ZJgL ZJt' ZJr !ZJ&CL ZJ'CLZJ(CLZJ*a/ ZJ-CLZJ/rn ZJ0AZJ1F!OZJ3n ZJ5EZJ8v ZJ;CLZJCLZJ?CLZJBF_ZJDIjZJG|5! ZJIjZJL]%ZJMr ZJNu} ZJOt ZJRnZJUEZJWOUZJXCpIZJY[ZJ[Bh ZJ^OȮZJ_DZJFZJzr ZJNE ZJt{ ZJa3ZJVZJ^ZJCLZJCLZJCLZJCLZJCLZJOPZJOPZJOPZJCLZJIZJH\pZJI:ZJJ;ZJK{ZJh)}eZJ5U}fZJA-&MZJs NZJD8VOZJCtPZJE]QZJUdRZJPuSZJq TZJE;aVZJe& XZJFEYZJF D[ZJ*n\ZJT9^ZJb_ZJv9 `ZJ AaZJ |#bZJ y#cZJ xkZJCLZJCLZJCLgZJn, ZJCLZJCLZJCLZJCLmZJF nZJ{4oZJ!^ ZJ#CLZJ$CLZJ%CLZJ&CLZJ'CLZJPCLZJRCLwZJUyxZJVTzyZJWOZJXOP{ZJ[gUV |ZJ]`W>}ZJ^p+~ZJa]ZJdCkZJeEZJh7 ~ZJjOPZJnWD |ZJpCLZJsFZJtHPZJuGTZJvFuZJyCLtZJzCLZJ|w{ ZJ}r{ ZJ~mH 5ZJK'@6ZJMsZJCLZJCL:ZJH*;ZJBOCLZJ@BwZJBQV ZJCh#3ZJDhZJEeIZJGCL ZJID- ZJLCLZJMCL ZJNZJOCLZJQCLZJSKZJ}CLZJOPZJn ZJX; ZJCLZJCLZJCLZJm ZJ[lZJPIZJVZJH8ZJjQZJqZJpaH!ZJB"ZJag#ZJTf$ZJK{%ZJN&ZJLز'ZJK{(ZJ@NZJCL*ZJMY+ZJ\ZJCL-ZJ}~ ZJOPZJCL0ZJzT 1ZJW2ZJG}3ZJIpJ4ZJF؟ZJOP6ZJ]ZJCL8ZJH*ZJCL:ZJCZJCLZJuCLZJvCLZJwCLZJxCLZJyCLZJzCLZJ{CLZJ}]ZJ~CLZJCLZJCLZJM-ZJCLZJCUZJCLZJCLZJ{ ZJCLZJCLZJCLZJOP$ZJH%ZJIo&ZJN:wZJCL*ZJH`,ZJTZJOP.ZJO4ZJCLZJCLZJOPZJCL3ZJp 4ZJAff6ZJe@7ZJi8ZJb39ZJqS:ZJh;ZJjٙZJRr?ZJGTL@ZJEAZJ MEZJ OPDZJB{EZJFFZJE\GZJO3TZJJZJNəZJIZJe~ ZJcZJ}& ZJh ZJg ZJsl ZJr !ZJ"CL ZJ#CLZJ%CLZJ'c!( ZJ*CLZJ,r1 ZJ-@ZJ.BɀZJ/m ZJ0W1ZJ2v( ZJ5CLZJ6CLZJ7CLZJ8CLZJ9CLZJ}sq)z~s]sCSAsEs ~sOPsU |sCLsF$sH{sGes-JEus/CLts0CLs3w?} s4rV s5p;e 5s7K 6s8Mats:CLs;CL:s=I;s?M<s@\$#?sACUsCOPsECLBsG{ CsHL7DsIC EsKZFsLhGsMe >HsNLu LsO{MsQuNsRS >OsU{Z PsVz QsWG`RsXIpTsZG~Us[GyVs\FOs]OPs_CLYsaCScZsbAt@sdOPsfCL]ss ^s[sOPsCLasOVsOPsCLdsGCsOPfs^sCLhsB isUnsOPksR` lsc33ms_nsu!H oscspsdk qs]3 rs^) ssNUtsN5usD8sOPsCLxsAysK,zsGsOPsCL}sH[~sHFsEsExsOP~sCLsBsQ s\sYsW`sCL sCsCLsOP sdqs CLs CLs IEsCLsOPsn sX=A sCLsCLsCLsm% s[s NVfs!Xs$G s&n >s'tfgs(sQ!s)E"s*q3#s+W$s,KZ%s-M &s.Lm's/L(sY@s[CL*s]Mi+s_n}saCL-scK seOPsgCL0sizr 1sjZHk2slGj3smIV4snFssoOP6sq]srCL8stGnswCL:syCus|CL<s~|= =sDnQsOPsCL@sLÂAsGKBsB>sCLsCLEs@C HsB]Is[ Js|'KscULs] sixB sixB sDBsI sE sk sixB sIiNsCs{eysFN=sLvsI~sLsr sM sB sReswΘsK3sLqso^ sM^sEʘsCLsFsDF-sOPsCLsCLsCLsCLsCLsCLs!CLs$Qs4s%G6gs&Ygs'Mffs(Ns)Os+CLs,CLs-CLs/CLs0CLs1CLs2CLs3]s4CLs5CLs6CLs8MIs:CLsCLs?CLsA{ sDCLsECLsFCLsIOP$sJHb%sKIIw&sMP8sPCL*sSHC ,sTT$@sUOP.sVO1sXCLsYCLs[OPsCL3spx4sAff6sq7sl8s`9sp1:spL;slS4<snlsOP>sRt?sG. @sEAsNQlsOPDsCJEsFxuFsEGsNsKəsPsJ3sd= s^0s}d sh6 sgX ss srz !sCL sCLsCLs`P sCLsr sy# sAqsm sysvt sCLsCLsCLsCLsCLsFsHs{ sjxs]%souq ss T st@3 sr sD3sSNes B<s ^s B3 sO{|sDsF"sz)B sOO sxL sa sVs^sCLsCLsCLs!CLs"CLsMOPsNOPsOOPsQCLsUIsVH{FsWIsXJ5es[K\s^h }esV}fs3A.Msys1L Ns{D9Os|CLPs}E+QsUq/RsPuSsq3 TsD?Vse XsFYsE[sT\sW1^seV_svUU `sAas{Lbsy#cswGsCLsCLsCLgsmO sCLsCLsCLsCLmsFns{&gos^@ sCLsCLsCLsCLsCLsCLsCLws~zxsOqysNǮsOP{sgUV |s`L}sqX~s]sCEsEDs~Ü ~sOPsT |s CLs#F0s$HP|s&Gss)Orus+CLts,CLs.wp s0q+ s1nĜ 5s3K 6s4MXVs6CLs7CL:s9H ;s:Kp<s;LO?s=Cs?OPsACLBsC| z CsDJZDsECEsGRFsHcGsI] HsJL7 LsK\MsLtNsMR)Osx{ Psyz Qs{GnRs|IiNTs~GjUsGyVsF-sOPsCLYsBk!ZsAAhsOPsCL]ss ^s\KsOPsCLasNܻsOPsCLdsFݱsOPfs^sCLhsBisT8ssOPksRI lscms` nsy osd.psa qsY rs\ ssNEtsN5usDsOPsCLxsAysS&zsGsOPsCL}sH~sHcsEAsEsOP~sCLsBsQS s\IsZəsZsCL sCμsCLsOP scQsCLsCLsG )s CLs OPsn sWM sCLsCLsCLsAm) sBg4sCRlsEZsGG'^sIl=qsJs#sKrR!sML "sNm #sOUY$sPK|%sQM&sRL{'sSL(sT@ksVCL*sYLhy+s[s\CL-s^@bs`OPsbCL0sd{= 1seW.2sgGU3shI@+4siF=sjOP6sl]smCL8soGsrCL:stCswCL<sy| =szDXsOPsCL@sLAsG^BsBjhsCLsCLEs HsG0GIsg Jsy^KskLs]K si sixB sDGsI=sEZsl3 si| sIwsCJs{sFN=sLvsIFsLsr sM sB sPxswʚsK3sLso^ sL,s Eʘs CLsG^sDF-sOPsCLsCLsCLsCLsCLsCLsCLsRfs G6gs!X s"Mffs#N s$Os'CLs(CLs)CLs*CLs+CLs,CLs-CLs.]s/CLs1CLs2CLs3M<s5CLs8Cs:CLs;CLssRV?sG @sEAsOsOPDsCEsFZFsEGsO"sJgsNgsI<sc saTs}v shb sg ssc sr@3 !sCL sCLsCLsbs sCLsrE s} sBUZsm sE svv sCLsCLsCLsCLsCLsFsHQs{ sjs]%sn sqJ sts sq3sDJsT(sB*s`>dsB s O@Qs D s5Ff&s8y s9Q[ sWS3s?^s@CLsBCLsCCLsDCLsECLsHOPsIOPsKOPsMCLsPI}sQHsRI^sSJ-8sWK\sZHY }es[}fs.AKuMsr NsD8VOsCkPsEQsUZ`RsP|Ssqes TsDdVse| XsEYsE[sF\sPZP^sd&_svq `sAasz(bsz >cswGsCLsCLsCLgsm{ sCLsCLsCLsCLmsF ns{Pos] sCLsCLsCLsCLsCLsCLsCLws y\xs Jys Os OP{s g |s `}s pn~s ]s C%s E~^s ~s ~s OPs U= |s CLs F\s H4@s !Gh s $Lus &CLts 'CLs *wy s +qV s ,n$ 5s .Jg6s /M[s 1CLs 2CL:s 5E;s 6I+<s 7O?s `CUs bOPs dCLBs f|j Cs gHDs hCEs jRFs klGs l[34Hs mK Ls nQMs puRNs qROs t{ Ps uz Qs vG} Rs wIiNTs yGTUs zG{Vs {F_s |OPs ~CLYs AҩZs AAhs OPs CL]s t' ^s [s OPs CLas Ns OPs CLds F?s OPfs ^s CLhs Bis S5is OPks R~5 ls mQms g33ns xQ os cOps bW qs Y rs ^q ss Nds ?O3s @Xs CFxs Ejs Fp*s GpaH!s HB"s Ik#s JZ&g$s KKr%s LN&s MLN's NMG(s O@{s QCL*s TL +s Vs WCL-s YAes [OPs ]CL0s _zu 1s `Vخ2s bGC3s cI3v4s E`s OP6s ]s CL8s Fs CL:s Ci(s CL<s |j =s DXs OPs CL@s LAs GBs {a s CLs CLEs }T Hs DmIs nP Js vKs bȬLs \o s i& s i| s DGs IL\s E s lR s i s I>s Cs {eys FN=s Lvs I~s Ls r s M s B s Lvs ws K4s L&s o^ s L s Eʘs CLs Fs F=s OPs CLs CLs CLs CLs CLs CLs CLs Ngs G6gs Pgs Ms Lps Os "CLs #CLs $CLs %CLs &CLs 'CLs (CLs )]s +CLs TCLs UCLs VMs XCLs [CҶs ]CLs ^CLs `y s bCLs cCLs dCLs gOP$s hH %s iH&s lJWs nCL*s qH0,s rSs sOP.s tO[s vCLs wCLs zOPs |CL3s ~oV4s Aff6s g 7s fs38s h9s od9:s e&f;s i4<s a`s OP>s R?s F@s EŨAs Pks OPDs C=Es FEFs E{Gs ONs Gfs LFfs GIs c~ s cxvs }A] s h s gx s s8 s r !s CL s CLs CLs ` s CLs rk s Fs EOs m s {Mis vY s CLs CLs CLs CLs CLs Fss H%!s {H s jos ]""s n% s !pX s "s s %r#3s (Ds )Rls *A{hs +as -B{ s 1O;s 2Ds 3FLs 6y s 7N(z s :www s ;`3s Ngs?Ms@KsAO{sCCLsECLsFCLsGCLsHCLsICLsJCLsK]sLCLsMCLsOCLsPMsRCLsUCsVCLsWCLsYz % s\CLs]CLs^CLsaOP$sbG%scHھ&seG7shCL*skHX,slTsmOP.snOE^spCLsqCLstOPsuCL3so 4sAff6sqٚ7sh38s]9sn :sf;si<scsOP>sRF?sF@sEAsPbsOPDsBEsF1FsEnGsNsDsH4sCvgsb sb΋s|Y sh sgn sr sqˈ !sCL sCLsCLsbA sCLsr# sAHsF5smJ s٫:sv- sCLsCLs CLs CLs CLsFHsHws{ sj~s]""sn% sp ssˈ snS3s"Df;s#QS$s$@ܭs%c-s'B{ s*Ns+Ds-F3ls0y s1Q3 s4x s5`3s6X s7^s8CLs:CLs;CLsbsyQcsv*sCLsCLsCLgsm? sCLsCLsCLsCLmsFRns{fgos]n sCLsCLsCLsCLsCLsCLsCLws~xsPysRsOP{se |sa%}sp~s]sCsEgHs2~' ~s4OPs7U޿ |s9CLsH"s?GTsBKusDCLtsECLsHx sIq+ sJm 5sLJ6sMMVsOCLsPCL:sRB;sTDP<sUQ?sVC sXOPsZCLBs\},l Cs]EDs^C?Es`R34FsaczGsbfHscKj Lsd{MsfuzNsgR)Osj|j Psk{ QsGBRsIZTsG,UsGx&VsF%sOPsCLYs@ZsA{sOPsCL]ssl ^sZsOPsCLasMsOPsCLdsF?sOPfs^sCLhsB1 isPsOPksRDp lsp =msinsxz oscOpsc qsX rs]z ssN7tsNلusDAYsOPsCLxsAҩysMFzsGsOPsCL}sH ~sHsE2sEsOP~s CLs BsP sbfsgc3s^YsCL sCScsCLsOP sc|sCLsCLs!F7 s$CLs'OPs*nQ s+Vz s.CLs/CLs0CLs3m2 s\gYs]R33s^ZsaFGscmBsdvses{!sfGٚ"sglL#shYٙ$siKi%sjMB&skL'slM~(sm@soCL*sqK0+stsuCL-swB+syOPs{CL0s}{ 1s~])2sG!O3sI#4sEssOP6s]sCL8sF[GsCL:sCDsCL<s|R8 =sDJsOPsCL@sLvAsGBsB!sCLsCLEs~ HsAIsZ\ Jsq=;KsmLs\ sj> sj ^ sDnQsIwsEGsl8 sjD sI/sCs{eysFN=sLvsI~sLsr sM sB sP͊swsK4sLso^ sKsEʘs%CLs(G^s+DF-s-OPs/CLs0CLs1CLs2CLs3CLs4CLs5CLs9QLs:E3s;YgsNs@CLsACLsBCLsCCLsECLsFCLsGCLsH]sICLsJCLsKCLsMMsOCLsQCɪsSCLsTCLsV{LS sYCLsZCLs[CLs]OP$s_G%sH+&sQsCL*sH,sTt(sOP.sNsCLsCLsOPsCL3so4sAff6sig7sc8s]9sn.k:sc;sj<sesOP>sR?sFz@sEAsQEsOPDsBEsF$FsE\GsOwsDfsHs3sCsb s]s|X si\ sg3 sr sq3 !sCL sCLsCLsaL sCLsq sy@Y sF[GsmJ ssv4 sCLsCLsCLsCLsCLs F)[s H,s{/ sjPs]%sme spA ss ssPsDFsM>s @s!es#B s&OAs'D!sPF#{sSy sUN sXqU sY^sZT`s[^s\CLs]CLs^CLs`CLsaCLsdOPseOPsfOPshCLslIT$smHsnJSsoIsrK\suf }es]}fsHA+Mssk NsD+OsCPsDQsTXRsP@.Sss8 TsDHsK) Ls^pMsR34NsqHOs|& Ps{w QsGRsIETsGJUsGumVsEsOPsCLYs@ZsAsOPsCL]ssF ^sYdsOPsCLasMsOPsCLdsFsOPfs^sCLhsB}isO§sOPksR2 lsr{msknsxL oscOps`{ qsX rs\ ssNtsNBusDAYsOPsCLxsAҩysJzsGsOPsCL}sH~sH +sEsExsOP~sCLs Bs PS4 s g4sjFfs_sCL sBNsCLsOP sczsDCLsECLsGEsJCLsMOPsPnB sQUwu sTCLsUCLsVCLsYm sZi9s[Qgs\[Ps_Esao.sbssct!sdG"seu#sf[33$sgK`%shM&siL'sjM(sk@xsmCL*soK +sr5ssCL-suBswOPsyCL0s{|5! 1s|Xr2s~G3sI<4sEd!sOP6s]sCL8sFsCL:sCScsCL<s|5! =sD%sOPsCL@sL`AsGBs~OI sCLsCLEs{ HsM^Isf 6 Jso%KsUxXLs[~ sj sj' sDQNsI>sEV[sl sj> sI sCts{eysFN=s LvsI0sLsr sM sB sLvswjsK)sLs!o^ s#Ks&Eʘs(CLs+Fs,F=s-OPs/CLs1CLs2CLs3CLs4CLs5CLs6CLs9Ngs:Fs;Ygs=Ls>Ls?O{sACLsBCLsCCLsDCLsECLsFCLsGCL[][CL[CL[ CL[ M[ CL[C[CL[CL[z % [CL[CL[CL[OP$[H%[H&[ N["CL*[%H"i,[&U(['OP.[(O$-[*CL[+CL[.OP[0CL3[2o4[4Aff6[7of7[8`f8[9^339[dmɏ:[fkL;[gh<[gj`[hOP>[iR^?[jF@[kEMA[lRc[mOPD[nBsE[oF F[pEKG[qO+d[uB[vFf[wA[xaB [{_t[}| [~i= [h6 [r [qV ![CL [CL[CL[bE [CL[q3 [@[G[l8 [M[u [CL[CL[CL[CL[CL[F[Is[{ [j[]""[m- [pY [s [n@[D%[Q[@I[g[Bf [NQl[D[F[yz [O]6 [xU [``[X [^[CL[CL[CL[CL[CL[OP[OP[OP[CL[IHW[H|[-Ji[.I[1K =[2i+}e[PW }fsEBM[Lr N[OD0~O[PCP[QDZQ[TTR[UPS[Vq^ T[WCV[Yc4 X[[E~Y[\E [[]&\[^X(^[ae_[bv `[dAPga[f{b[gz{c[wW [CL[CL[CLg[mpi [CL[CL[CL[CLm[Fn[{ o[[- [CL[CL[CL[CL[CL[CL[CLw[} >x[N.y[Sff[OP{[c |[a}[rf~[][C?[E}[~z ~[OP[S |[CL[F[GT[GOl[JP!u[CLt[CL[z [pȵ [n 5[J6[M [ CL[ CL:[ C;[G<[RR?[C[OP[CLB[} C[QD[C+E[MHF[jG[_H[K L[^M[ QN[!qGO[$} P[%|5! Q[&G:R['IET[)GU[*GoV[+E[-OP[/CLY[Y@`2Z[ZA[\OP[^CL][`s ^[b^m[cOP[eCLa[hM1[iOP[kCLd[mFi[oOPf[q^[rCLh[tAi[uN[xOPk[yQA l[zom[{h n[|w0 o[bp[aQ q[Y r[Z) s[M`t[Nu[Di[OP[CLx[Afy[S z[GJ[OP[CL}[G~[G`[E{[E[OP~[CL[Bn[P3 [fL[h6g[][CL [Af[CL[OP [cin[CL[CL[E[CL[OP[m [R [CL[CL[CL[l [hf[P[Yٙ[E[m[s[ r![!} "["i#[#_ٚ$[$KQ%[%M&[&L'['M`([(@ML[*CL*[,J3+[/K[0CL-[2C'[4OP[6CL0[8{H 1[9W2[;G-3[OP6[@][BCL8[DFR[GCL:[ICZ[KCL<[N{ =[ODG[QOP[SCL@[VLQA[WGعB[XA[ZCL[[CLE[} H[G(I[m? J[mjK[p/L[[; [j [jb [D[I/[Ed[m [j [I [CX-[{ey[E[Lv[I~[L[r [M [B [Q<_[we#[K [L&[o^ [K[Eʘ[CL[F{[F=[OP[CL[CL[CL[CL[CL[CL[CL[Ng[L[Yg[N=q[J[Pff[CL[CL[CL[CL[CL[CL[CL[][CL[CL[CL[M[CL[ C<[ CL[ CL[z [CL[CL[CL[OP$[Hs%[H&[Jh[CL*[ H,[!T["OP.[#Ow'[LCL[MCL[POP[RCL3[Uog4[WAff6[YjY7[Zf8[[`9[^mF:[`f&g;[ah<[be,[cOP>[dR-?[eF@[fE|.A[gSO[hOPD[iB#BE[jExF[kE:qG[lN[nB0[pFvg[qAf[r`H [udU+[v| [wixB [xhE^ [yr]\ [zq ![~CL [CL[CL[aЊ [CL[p- [G[B[l3 [[uZ [CL[CL[CL[CL[CL[E[H[{ [i []""[lR [of [sV [r`[Da[RB[<[i[B) [N,[D'[F[yN [Q [xf [a#3[X [^[CL[CL[CL[CL[CL[OP[OP[OP[ CL[$I<[%H [&J#9['I*[*K =[-i9 }e[Xڰ}f[B;M[Hs? N[JD/O[KCwP[LD'<Q[OTR[xP<S[zq+ T[{C~V[|bA X[~E~Y[Eg[[o\[T^[f6_[w `[A)wa[zub[y{c[v[CL[CL[CLg[mH [CL[CL[CL[CLm[F8n[{fgo[Z't [CL[CL[CL[CL[CL[CL[CLw[@x[P8Ry[U[OP{[c |[aA}[s~[][C[E{|[~@ ~[OP[R&w |[CL[Fz[Gj[G2s[HUu[CLt[CL[}ɺ [pG [mm 5[J6[L[CL[CL:[BN;[ MN)<[ S0o?[ B [OP[CLB[}h C[PD[C+E[Z\)F[pG[@bGH[AK. L[B] M[CQN[Dq >O[G}f P[H{ Q[JG̶R[KI6T[MFU[NGksV[OE[POP[RCLY[T@`2Z[UA[WOP[YCL][[sU: ^[]_[^OP[`CLa[cNl[dOP[gCLd[iFb[kOPf[m^[nCLh[pAi[qM[sOPk[tQV l[ulm[vfn[xwٚ o[{b݉p[_R q[V r[Z s[Mt[Nu[Dxy[OP[CLx[Ay[R&z[G[OP[CL}[G~[G$[Edp[E[OP~[CL[By[O [`[c`[`[CL [A[CL[OP [cin[CL[CL[E[CL[OP[n0 [ S [ CL[ CL[CL[l [g33[O[Xf[E[kW [q[p34![}2 "[s3#[\$[KB%[ Mn9&[!Ms'["My+([#@t[%CL*['J+[* [+CL-[-Ca[/OP[1CL0[3|& 1[4WbY2[6F3[7I4[9D[:OP6[<][=CL8[?E[BCL:[lCL![oCL<[q{a =[rD[tOP[vCL@[yLyA[zGB[{A[}CL[~CLE[}: H[DI[r; J[k2nK[A%L[[΅ [k. [ju [D[I[EsZ[m<8 [j [IΘ[Ct[{ey[E[OBo[I[L[r [M [B [P>[wI[K6[L[o^ [K[Eʘ[CL[G^[Fp[OP[CL[CL[CL[CL[CL[CL[CL[Q9[G6g[Y[J[K[M >[CL[CL[CL[CL[CL[CL[CL[][CL[CL[CL[M[CL[C<[ CL[ CL[4zF^ [7CL[8CL[9CL[;OP$[[bR-?[cFb@[dEmA[eTH>[fOPD[gB'E[hEF[iE*#G[jN[mC[nH&g[CP[_l [cƕ[{g [i [h(# [r# [p ![CL [CL[CL[a>' [CL[pX [^ [B?[l [[u [CL[CL[CL[CL[CL[E`[H>[{ [i[]""[k [of [s9 [r3[C[N`[~o[ k[ B [ OA[ DS[ F\[ y1 [ Nq [ z [ aY[ X [ ^[ CL[ CL[ CL[ CL[ CL[ OP[ OP[ OP[ CL[ #I/[ $H@[ %J1[ &I[ )K =[ ,f3 }e[Qs&}f[DM[ or N[ qD+O[ rCP[ sCvQ[ vTHR[ xP<S[ y@T[ zCV[ {b9 X[ }EY[ ~E_[[ 8\[ U(^[ d _[ w* `[ B`a[ yqb[ yc[ v[ CL[ CL[ CLg[ mY [ CL[ CL[ CL[ CLm[ G^n[ {9o[ Y} [ CL[ CL[ CL[ CL[ CL[ CL[ CLw[ zx[ N\)y[ Q [ OP{[ dUV |[ b}[ r~[ ][ CJ[ E[ } ~[ OP[ Sw |[ CL[ FQL[ G8>[ G![ Lu[ CLt[ CL[ ~]/ [ p [ n J 5[ )J`6[ *Lw[ ,CL[ -CL:[ /A;[ 0L%<[ 1T9?[ 3BE[ 5OP[ 7CLB[ 9}R C[ :O?D[ ;C E[ =TF[ >oG[ ?[{H[ @Ji L[ A]M[ BQN[ Dq(O[ G}R P[ H| Q[ IG0R[ JIwT[ LFU[ MGb`V[ NEE[ OOP[ QCLY[ S@rZ[ TAL[ VOP[ XCL][ ZrE ^[ \_!r[ ]OP[ `CLa[ cN[ OP[ CLd[ F[G[ OPf[ ^[ CLh[ Ai[ Ly[ OPk[ Q l[ lHm[ gn[ u o[ bp[ ` q[ Y r[ [3 s[ Mt[ NWu[ Dh[ OP[ CLx[ AAhy[ Oz[ G[ OP[ CL}[ G̶~[ G`[ ERY[ E[ OP~[ CL[ BF[ O_ [ d[ gY[ c|[ CL [ A[ CL[ OP [ c|[ CL[ CL[ E[ CL[ OP[ me [ S [ CL[ CL[ CL[ l [ k4[ M[ X[ EQ [ i>[ n >[ m![ }2 "[ j#[ X4$[ K3%[ M9T&[ M!'[ "MQ ([ #@Bf[ %CL*[ 'J+[ *[ +CL-[ UC[ WOP[ YCL0[ [|` 1[ \\2[ ^F3[ _H4[ `Dѫ[ aOP6[ c][ dCL8[ fE[ iCL:[ kC=[ nCL<[ p{ =[ qC[ sOP[ uCL@[ xLrA[ yG3B[ zA[ |CL[ }CLE[ |& H[ C8I[ Zz] J[ lvK[ UL[ \ ( [ kh [ j [ DS[ I [ E[ mYk [ k. [ I[ Cff[ zJ[ E[ O[ I~[ L[ r [ M [ B [ Lv[ wG[ K6[ LŎ[ o^ [ K[ Eʘ[ CL[ F[ E*[ OP[ CL[ CL[ CL[ CL[ CL[ CL[ CL[ Yg[ G6g[ ^vf[ K[ K [ M([ CL[ CL[ CL[ CL[ CL[ CL[ !CL[ "][ #CL[ $CL[ &CL[ 'M<[ )CL[ ,C0[ -CL[ .CL[ 0|& [ 3CL[ 4CL[ 5CL[ 8OP$[ 9Hض%[ :HY&[ [ R{W?[ FF@[ E[A[ TN[ OPD[ B(VE[ EtF[ EhG[ O [ C[ HC3[ C[ _N [ `i[ { [ i& [ h [ q [ ph ![ CL [ CL[ CL[ b [ CL[ p [ wt [ F[ k/ [ F [ up [ CL[ CL[ CL[ CL[ CL[ E[ H#P[ {w [ i[ ]""[ kZY [ o [ s [ p[ C[ S`[ ~[ m)[ B) [ NF[ D[ F[ y [ S [ xU [ `[ V[ ^[ CL[ CL[ CL[ CL[ CL[ OP[ OP[ OP[ CL[ I"7[ Hyv[ J8 [ HI[ KK =[ Lo}e[ \(}f[ E.M[ frc N[ iD*O[ jCP[ kCQ[ nTDR[ oPNqS[ pB T[ qCV[ scm X[ uEuIY[ vEA[[ wF\[ xR^[ {c_[ |w8 `[ D/Na[ y*b[ xc[ uk[ CL[ CL[ CLg[ m2 [ CL[ CL[ CL[ CLm[ H}n[ {o[ ZS [ CL[ CL[ CL[ CL[ CL[ CL[ CLw[ vpx[ Ly[ Q[ OP{[ e |[ _}[ s4~[ ][ C[ F%[ ~] ~[ OP[ V6 |[ CL[FL[G#[G0F[Pvu[CLt[CL[} [p! [p! 5[ J$"6["L[$CL[%CL:['AL;[(JS<[)T?[*B[,OP[.CLB[0} C[1N]2D[2BE[4UF[5hfgG[7hH[8Jϑ L[9] M[:QN[;qO[>}~ P[?| Q[@GR[AI(-T[CFcU[DGXgV[EE7[GOP[ICLY[K@Z[tA[vOP[xCL][zr1 ^[|][}OP[CLa[Nxg[OP[CLd[Fi[OPf[^[CLh[A{i[W[OPk[QN@ l[pffm[ln[zG o[bp[ap q[W) r[Z s[MSt[NWu[DfW[OP[CLx[@y[M?/z[G[OP[CL}[Gx~[G8[EV[E[OP~[CL[B"[Ob[ [Z4[a[Zf[CL [A$Z[CL[OP [c]H[CL[CL[E2[CL[OP[n}[ [U [CL[CL[CL[l^ [ a<[ O [ \[E*x[h[o\*[n4![E"[K'@%[?M &[@M'[AM*([B@]I[DCL*[FJ_C+[Iw[JCL-[LC[NOP[PCL0[R{ 1[SZ_2[UFκ3[VH4[WD[XOP6[Z][[CL8[]EV[[`CL:[bC [eCL<[g{in =[hC>[kOP[mCL@[oL_A[qGB[rBV[tCL[uCLE[w} H[AiI[d~ J[{uK[{L[[ [k_ [kQ [DX[IΘ[E[m [kh [I[C-[x[FN=[O[I'[L[r [M [B [R5[v[L[L4[o^ [K[Eʘ[CL[FJ[F=[OP[CL[CL[CL[CL[CL[ CL[ CL[ Pg[F [Pg[Lp[JH[N[CL[CL[CL[CL[CL[CL[CL[][CL[CL[ CL["MI[#CL[&CI[(CL[)CL[+~@ [.CL[/CL[0CL[2OP$[3H%[4H&[7M[:CL*[U[>OP.[?OtE[iCL[jCL[mOP[oCL3[ro'4[tAff6[vW7[wmg8[xa 9[{l9x:[}e;[~j<[fg[OP>[Q?[F+K@[EDA[T[OPD[BrdE[EF[DG[NP[@33[D3[[_B [^[{% [j63 [h [q [p ![CL [CL[CL[`q. [CL[p [F[H[m7 [ҶN[uD [CL[CL[CL[CL[CL[Ep[H|[{w [i[]""[k. [n [r [r[C[N#8[}FB[o[B [O[D[F[x [L4p [x [a)[Vf[0^[1CL[2CL[3CL[5CL[6CL[9OP[:OP[;OP[=CL[AIj[BHs[CJ>|[DIλ[GK =[Jff }e[_H}f[DlKM[esk N[gD%O[hCP[iD Q[TAR[PNqS[tz T[DocV[d X[EqY[E*p[[\[R^[b_[wUU `[Ca[xgb[yc[v[CL[CL[CLg[m@ [CL[CL[CL[CLm[Hn[{go[\ [CL[CL[CL[CL[CL[CL[CLw[y34x[PGy[Q=q[OP{[fUV |[_rj}[qt~[][D3[F'[~ ~[OP[ X |[ CL[Fg [GC[Gld[G*u[CLt[CL[z [q+ [p 5[Iع6[ L~z["CL[#CL:[%At@;[&HV<['Ud?[)Bw[+OP[-CLB[/}h C[0LRD[1B_E[3W F[\g{G[]T\)H[^Jx8 L[_^QM[`R{N[aqfgO[d~24 P[f| Q[gG'R[hHT[jFU[kGP<V[lE[mOP[oCLY[q@-SZ[rA:%[tOP[vCL][xr@3 ^[z]-[[{OP[}CLa[N.[OP[CLd[Fq[OPf[^[CLh[Aei[V`[OPk[Q l[qm[lQn[y o[bHp[a q[V3 r[]k s[Mt[NWu[D[OP[CLx[@y[K*z[Gn[OP[CL}[G~[Gv[[EQq[E[OP~[CL[B [O [W[cC4[[33[CL [@gv[CL[OP [cj[CL[CL[D[CL[OP[%o; [&V [)CL[*CL[+CL[.m!m [/d [0O[1[33[4D[6i[7n[8nH![9D"[:t3#[;Sٚ$[L&[?M''[@M([A@}[CCL*[EJ,+[FJI[ICL-[KC[MOP[OCL0[Q|C 1[RX2[TF~3[UH4[VDO![WOP6[Y][ZCL8[\E*[_CL:[C [CL<[{Z =[C[OP[CL@[LW"A[G|B[B+[CL[CLE[} H[VI[l J[q=;K[GYL[[ [k [kK [DS[I[E[m [k_ [I[Cf[xd[FN=[O[H[L[r [M [B [QQ%[w?[L[L[o^ [K[Eʘ[CL[G^[F0[OP[CL[CL[CL[CL[ CL[ CL[ CL[Ng[N4[]g[_[G [_ > [CL[CL[CL[CL[CL[CL[CL[][CL[ CL[!CL[#M[%CL['Cy[QCL[RCL[T{ [WCL[XCL[YCL[[OP$[\H1%[]H5&[`JD[cCL*[fG,[gT[hOP.[iO[kCL[lCL[nOP[pCL3[soP4[uAff6[w_@7[xs8[yj339[|l :[~f`;[kS3<[h[OP>[Rg*?[F@[E3A[T[OPD[BJvE[EF[DG[NB[D[H3[C[^ [c[| [jp [h [q3 [pPL ![CL [CL[CL[c [CL[q [C[FR[m- [b [u' [CL[CL[CL[CL[CL[Ef[H[{LS [ia[]""[k [n0 [r [m3[C}[Ps[|e[ qi]["B [%O>['D[(F [+xo [,V [/vU [0`s3[1Uf[2^[4CL[5CL[6CL[7CL[8CL[;OP[=OP[>OP[@CL[CI[DHw[EJ2[GI[JK =[Kg}q}e[iA }f[C3M[s N[DO[CP[DQ[TqR[P@.S[s T[DdV[e X[E5Y[E%[[\[V^[d%_[wq `[C*qa[zb[zHc[v[CL[CL[CLg[mBE [CL[CL[CL[CLm[H]Xn[{o[\ [CL[CL[CL[CL[CL[CL[CLw[ypx[Ly[QR[OP{[f |[`)z}[r<~[][D*[E [ O ~[OP[ Vb |[ CL[FX[GS [G][If_u[CLt[CL[y_; [Dq [Eq J 5[GI6[ILe[KCL[LCL:[NA;[OG2<[PVD}?[QBn[SOP[UCLB[W}~ C[XK\D[YBNE[[Z\)F[\j34G[^\H[_J7 L[`^\M[aR\N[bqO[e~z P[f}: Q[gGeR[hHT[jF)U[kGE[V[lEr[mOP[oCLY[r Z[sA+[uOP[wCL][yq ^[{\G6[|OP[~CLa[N[OP[CLd[Fq[OPf[^[CLh[AOi[U[OPk[Q l[nm[j33n[wq o[bp[`R q[XW r[]# s[M!t[Nؚu[D[OP[CLx[@y[Tiz[G`[OP[CL}[GJ~[GA[EU[E[OP~[CL[A"[N [V[ c&f[ Z[CL [@[CL[OP [cso[CL[CL[D[ CL[#OP[%o [&W} [)CL[*CL[,CL[.l [/V,[1C[2V[5D[6l[8r[9qu![:E"[;m#[Lĥ&[?MR'[@M(([A@[CCL*[EJ%g+[GVICCL-CDC OPC CL0C |` 1CV2CF3CHچ4CD.}COP6C]CCL8CDYCCL:CCUC CL<C"{w =C#CBC%OPC'CL@C*LDXAC+G8BC,BtC.CLC/CLEC1}f HC3GIC4qJ JC5dtKC6ULC7[K C:l5h C;k) CdDCeICfEWCgme Chk CiJwCkCCmzJCnFN=CqOCsHRCtLCwr CyM C|B C}LvCwOCLCLCo^ CKCEʘCCLCG^CE*COPCCLCCLCCLCCLCCLCCLCCLCQCFvgCYgC_C_ > C_ > CCLCCLCCLCCLCCLCCLCCLC]CCLCCLCCLCMCCLCCICCLCCLCxP CCLCCLCCLCOP$CI%CH&CH3CCL*CG,CU?COP.COCCLCCLCOPCCL3Cod4CAff6C.g7C/oL8C0h39C3k}:C4_f;C5a4<C6_s3C7OP>C8Q?C9EM@C:E$8AC;TvCEwFC?D8GC@NCCD,CDHCEDfCF^U CIc CK|7 CLj CMh" CNqes COp3 !CRCL CSCLCTCLCW` CZCLC\q3 C]{ C^EC_mJ C`A Cau ~ CdCLCfCLCgCLCCLCCLCECH,C{ CjC]""Ck Cn Cr CrCCzCSJC{?CsVrCB) CNCDgCF CxP CLC& Cr{ C`fCVfC^CCLCCLCCLCCLCCLCOPCOPCOPCCLCH`CH|.CJRCIƏCK =Ciy }eC`Z:}f[BjMCs2 NCDOCCPCDQC!TqRC"PNqSC#q TC%DVC&e`E XC(EiYC)E$[C*7(\C+P^C.b΋_CXw `CZBaC[zW bC\z8RcC]vC_CLC`CLCbCLgCelܘ CgCLChCLCiCLCjCLmCmH nCq{s4oCr\ CtCLCuCLCvCLCwCLCxCLCyCLC{CLwC~{xCNLyCRQCOP{Cf |C`P}Cpx~C]CCCEC~ ~COPCU |CCLCF@CGFCGhCN"&uCCLtCCLCz D Cp Co{ 5CIv6CLL_CCLCCL:CBn;CFh<CV?CBCOPCCLBC}~ CCIĚDCBECNFChGCRHCI% LCs34 MC[p NCL\OC~ PC}I QCHRCHؒTCFUC G/VC!ETC"OPC$CLYC&@ZC'AAhC)OPC+CL]C-q^ ^C/ZC0OPC2CLaC5MC6OPC8CLdC:FbC^C@CLhCBAHiCCTCEOPkCFQ lCGgHmCHfnCIv oCLbpCO\\) qCPU\ rCQYB sCRMtCSNױuCTDCUOPCWCLxCY@RyC[Sd"zCGXCOPCCL}CG~CGCELCECOP~CCLCACN CHCKLCRCCL C@QCCLCOP CcNCCLCCLCDCCLCOPCo7 CW\ CCLCCLCCLCi`< CWCG@COCDq.Cm{Cs34Cr.!C@ "Ci#CQ$CK %CL&CMWl'CK6(C@CCL*CJI+CR)CCL-CD;COPCCL0C|oQ 1CT.2C F3C HƐ4C DFmC OP6C]CCL8CE#CCL:CCCCL<C{ =CCCOPC CL@C#L,ACLG:BCMBCOCLCQCLECS}R HCTDICU_k JCVaKCWVRLCXZ C[lo C\k C]DC^IC_EC`n Cbk CcJ%gCdDCfzCgFN=CjOClHICmLCpr CrM CuB CvLvCyvCzLC{M C~o^ CKCEʘCCLCF&CE*COPCCLCCLCCLCCLCCLCCLCCLCOlCFCPgC_C_ > C_ > CCLCCLCCLCCLCCLCCLCCLC]CCLCCLCCLCM<CCLCCCCLCCLCy CCLCCLCCLCOP$CI-%CH&CRlCCL*CG,CUCOP.COTCCLCCLCOPC CL3C"n4C$Aff6C'd7C(]8C)c9C,j:C._g;C/b4<C0_C1OP>C2Ql_?C3E@C4E_AC5T UC6OPDC7CEC8EJMFC9D(GC:N1C=F3C>JyC?E`CA^$ CDa=CE| CFj CGh CHq9 CIpY !CLCL CMCLCOCLCyc C|CLC~qHF C@CDCm CݱCt CCLCCLCCLCCLCCLCEiCHŨC{ CiC]""Cl5h Cnn Cr Cn3CCbCQC{WYCuCBf CN&CDCF7Cx CU Cxb" C`CVfC^CCLCCLCCLCCLCCLCOPCOPCOPCCLCH"CHvCJ&CICK =Ci{}eCW>}fCBqMCs. NCDOC@CRPCADG&QCETqRCFPSCGq3 TCHD@VCIdp XCKEYCLE-\[CN\COXdE^CRf_CSwq `CUB aCVxRbCWyBcCYvC[CLC\CLC]CLgC`l CbCLCcCLCdCLCfCLmCiGnCl{oCm] CoCLCpCLCqCLCsCLCtCLCuCLCvCLwCyy{xCzJyC{O#COP{Cfwx |C`}Cq~C]CCCEGC~' ~COPCVS |CCLCFg CGCGjCNuCCLtCCLCyb Cp Cm 5CI{.6CLECCLCCL:CC ;CE<CW?CBUZCOPCCLBC}~ CCG DC BmEC NFC gpGC YGHCIi[ LCs MC[ NCLOC~ PC}I QCH RCHؒTCFaUCGVCEOCOPCCLYC!@ZC"AKC$OPC&CL]C(q ^C*ZWuC,OPC.CLaC1MQC2OPC4CLdC6FLC8OPfC:^C;CLhC=A^viC>S C@OPkCAR lCBimClinCmy33 oCpbNpCr`k qCsXH rCtZ sCuMtCvNuCxCCyOPC{CLxC}@ryC~NuzCGXCOPCCL}CG0~CFCE&CECOP~CCLCAeCN2 CrCj3CFCCL C@CCLCOP CcFiCCLCCLCDCCLCOPCo CW CCLCCLCCLCk+ CX)CF34CNCDZCk(Cq(Cp!C}fg "Ch3#CQs4$CK%CLF&CL'CF(C@7CCL*CJBU+CcCCL-CDVCOPCCL0C}T 1C]!2CFu3CH4CDWCOP6C ]C CL8C4EC7CL:C9C'C{ =C?DCAOPCCCL@CFKZACGGBCIB?CKCLCLCLECN~s HCOCICPc'\ JCQ`KCRZBLCS[-F CVl8 CWk CXDCYICZEC\nB C]l5h C^J3C_DCaxdCbFN=CeOCgI~ChLCkr CmM CB CPBCvCLCMCo^ CKCEʘCCLCG^CE*COPCCLCCLCCLCCLCCLCCLCCLCQCLCY6gC_C_ > C_ > CCLCCLCCLCCLCCLCCLCCLC]CCLCCLCCLCMCCLCCICCLCCLC| C CLC CLC CLC OP$C I%C Ho&C O1C CL*C Go,C UGC OP.C O(C CLC CLC OPC CL3C n4C Aff6C "u7C #q38C $f&g9C 'jx :C )`3;C *a<C +_C ,OP>C -Q?C .E@C /EpAC 0TlC 1OPDC 2K+EC 3E%!FC 4D?GC 5MfC 7CC `HC bC3C c^J C f]C g{% C hkK C ii C jq C ko۔ !C oCL C pCLC qCLC s` C vCLC xqHF C yFC zEZC |l~k C ~0C tY C CLC CLC CLC CLC CLC EC H C { C i;C ]""C m C n C rmy C rLC CNC RIC {7C vq}C BR C OvoC DIC FC x0 C K+ C vf C `C VC ^C CLC CLC CLC CLC CLC OPC OPC OPC CLC HC HxC IVC IC K =C i` }eC ~RH}fCBx