bytes) so that READ ME  Z2XEROX INSMOD820IIASM! MOD820IIHEX.RAMINIT ASM/RAMINIT COMHXEROX MQGIt in the JMP instruction this wekend to verify the correction,and I'll let you know. If youlike, I'll send you a correctedlisting. Doug. (Message# 12: 657 bytes, New) Date: Fri, 15 Jul 83 16:14:01 EDT Fom: Rick Conn o: DGilbert.ES@parc-maxc.rpa cc: Rick Conn , DGilbert.ES@parc-max.arpa, Eldridge.ES@p ZCPR2 on the XEROX 820-II This LBR file contains the following files: READ.ME This file MOD820II.* BIOS Mods for XEROX 820-II RAMINIT.* Program to Run at Startup Z2XEROX.INS Installation Instructions XEROX.MQG Squeezed Message File of All Major Communications which occurred in the creation of the data files and program files for this LBR File sizes are given below (Group Size=4K): Filename.Typ Size K RS Filename.Typ Size K RS Filename.Typ Size K RS -------- --- ------ -- -------- --- ------ -- -------- --- ------ -- MOD820II.ASM 4 MOD820II.HEX 4 XEROX .MQG 20 RAMINIT .ASM 4 Z2XEROX .INS 4 XEROX .MSG 32 RAMINIT .COM 4 7 Files Occupying 72K Many thanks to the people at XEROX Palo Alto Research Center who were involved in installing ZCPR2 on the XEROX 820-II. The XEROX.MSG (squeezed as XEROX.MQG) file documents the conversations which took place and the people involved. Enjoy! Rick Conn  The following installation instructions were written by Doug Gilbert at XEROX Palo Alto Research Center. The data seems to be quite complete. Enjoy! Rick Conn ZCPR2 INSTALLATION ON THE XEROX 820-II ====================================== This file documents some of the ZCPR2 installation parameter's I used for the XEROX 820-II computer. The initial main consideration was where to find unused memory for buffers. There appears to be available memory above the CBIOS and I've used this area without any problems so far. This memory is as follows: 0EE80H TO 0EF7FH: 256 BYTES FREE 0EFC0H TO 0EFFFH: 64 BYTES FREE My assignment of this free RAM area for ZCPR2 was as noted below: EXTERNAL STACK AREA FOR ZCPR2 ----------------------------- 0EFCFH TO 0EFFFH (48 BYTES) EXTERNAL SEARCH PATH BUFFER --------------------------- 0EFC0H TO 0EFCEH (14 BYTES) NAMED DIRECTORY BUFFER ---------------------- 0EF00H TO 0EF7FH (128 BYTES) MULTIPLE COMMAND BUFFER ----------------------- 0EE80H TO 0EEFFH (128 BYTES) Thus far, I've encountered no problems with these assignments. Please let me know if any areas above are used for other purposes in the 820-II system. ------------------------------------------------------------------- Here is some additional information on the Xerox 820-II implementation. The memory map of the system is: F000-FFFF MONITOR, copied from ROM on boot EA00-EFFF CBIOS DC06-E9FF BDOS D400-DC05 CCP The buffer area I use is in upper CBIOS area. The ZCPR22.ASM file with ZCPRHDR.LIB are assembled and installed as follows: 1. SYSGEN the 'standard CP/M 22' operating system 2. SAVE 34 CPMIMAGE.COM 3. DDT CPMIMAGE.COM 4. IZCPR22.HEX 5. R3580 (offset is 3580 for 980 CCP) In my implementation, the CBIOS cold boot routine is modified with the file MOD820II.ASM. 6. IMOD820II.HEX 7. R3580 8. SAVE 34 ZPRIMAGE.COM 9. SYSGEN new operationg system 10. Include file "STAR.COM" with command line: RAMINIT;DIR 11. Include file "RAMINIT.COM" on operating system disk The files RAMINIT.ASM, RAMINIT.COM, MOD820II.ASM, and MOD820II.HEX are provided in the LBR File. ;************************************************ ;* FILE: MOD820II.ASM * ;* * ;* This overlays the BIOS in the * ;* Xerox to provide the Mulitiple * ;* command line buffer. The buffer * ;* is 128 bytes long and starts at * ;* EF00h. I have allowed space for * ;* a 4 character command upon cold * ;* boot, this gives room for MENU or * ;* the such. To do this I have chopped * ;* the logon message down so there * ;* would be room. There might be * ;* problems that I have yet uncovered * ;* so far it has worked for me. * ;* * ;* Pete McAfee * ;* Xerox El Segundo, CA * ;* 8*823-5456 * ;* * ;* ADAPTED TO MY SYSTEM * ;* Doug Gilbert * ;* May 29, 1983 * ;* July 15, 1983 Rev. 2 * ;* 8*823-7702 * ;************************************************ ; base equ 0ea00h ;start of CBIOS buflen equ 128 ;128 byte buffer clbase equ 0EE80h ;where we stick the comd buffer pmsg equ base+115h ;location of pmsg in bios ; ldir macro ; db 0edh,0b0h endm ; org base+0f1h ;start of bios cold boot lxi h,cmdint ;source of buffer init data lxi d,clbase ;destination address lxi b,last-cmdint+1 ;byte count ldir ;and now we move the block ; ;sign on message somewhat shorter ; call pmsg db 26,'ZCPR22' ;shortened message (7-15-83) db 0 ;end of message jmp pmsg ;revision 2 (7-15-83) ; ; command line data ; cmdint: dw clbase+4 ;point to first character db buflen ;size of buffer db 0 ;dummy db 'STAR' ;autostart command, 0 for none last: db 0 ;terminate command with a 0 END :10EAF100210AEB1180EE010900EDB0CD15EB1A5A98 :10EB0100435052323200C315EB84EE80005354411E :02EB11005200B0 :0000000000 ; FILE: "RAMINIT.ASM" ; ; THIS PROGRAM INITIALIZES THE XEROX 820-II RAM AREA TO ALLOW ; THE USE OF ZCPR2 WITH FULL FEATURES. ; ; UPON INITIAL BOOT, ONLY THE MULTIPLE COMMAND BUFFER ; IS INITIALIZED DUE TO LACK OF SPACE IN THE CBIOS. ; BUT, 'STAR.COM' IS INVOKED AT COLD BOOT. THIS RUNS ; THIS PROGRAM 'RAMINIT', WHICH FINISHES INITIALIZING ; ALL OF THE BUFFERS. ; DOUG GILBERT 7/83 ; ORG 0100H ;STANDARD CP/M TPA ; ;EQUATES TO SET FREE RAM BUFFER AREAS IN XEROX 820-II ; CLBASE EQU 0EE80H ;128 BYTE MULT CMD BUFFER BUFLEN EQU 128 ;MAX BUFF LENGTH NDBASE EQU 0EF00H ;128 BYTE NAMED DIRECT. BUFFER NDLEN EQU 128 ;MAX BUFF LENGTH PABASE EQU 0EFC0H ;14 BYTE EXT. PATH BUFFER ; ;---------------------------------------------------------------------- ;*SET UP MULTIPLE COMMAND BUFFER AREA (no longer needed) ;* done by CBIOS boot ;* ;*LXI D,CMDSET ;INITIAL COMMAND BUFFER TBL ;*LXI H,CLBASE ;LOCATION OF CMD BUFFER RAM ;*MVI B,BUFMOV ;BUFFER SIZE TO MOVE ;*CALL MOVER ;MOVE INIT. 128 BYTES TO BUFF. ;---------------------------------------------------------------------- ; SET UP NAMED DIRECTORY BUFFER AREA ; LXI D,NDVALS ;INITIAL NAMED DIRECT. VALUES LXI H,NDBASE ;LOCATION OF NAMED DIRECT. BUFF. MVI B,NDMOV ;BUFFER SIZE TO MOVE CALL MOVER ;MOVE INIT. 128 BYTES TO BUFF. ; ; SET UP EXTERNAL SEARCH PATH BUFFER AREA ; LXI D,PATH ;SET UP FOR INITIAL PATH LXI H,PABASE ;LOCATION OF EXT. PATH MVI B,PALEN ;BUFFER SIZE TO MOVE CALL MOVER ;GO AND MOVE THEM ; ; DONE, SO RETURN TO O.S. ; CLEAR EQU 1AH CR EQU 0DH LF EQU 0AH BELL EQU 07H ESC EQU 1BH ; MVI C,9 ;BDOS PRINT STRING FNC LXI D,MESSAGE ;POINTER TO MESSAGE CALL 5 ;DO IT! RET ; ; ; MESSAGE: DB CLEAR ;CLEAR SCREEN, HOME CURSOR DB CR,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF DB ' ' DB ESC,'7' ;SET INVERSE VIDEO MODE DB ESC,')' ;ENABLE ATTRIBUTE DB 'GOOD DAY! ZCPR22 SYSTEM READY' DB ESC,'(' ;DISABLE ATTRIBUTE DB BELL DB CR,LF DB '$' ; ; BYTE MOVE SUBROUTINE ; MOVER: LDAX D MOV M,A INX H INX D DCR B JNZ MOVER RET ; ; INITIALIZATION TABLES ;------------------------------------------------------------------- ; MULTIPLE COMMAND BUFFER INITIALIZATION (no longer needed) ; left over from earlier implementation...reference only ;CMDSET: ;*DW CLBASE+4 ;POINT TO 1st CHAR ;*DB BUFLEN ;*DB 0 ;*DB 'WELCOME' ;INITIAL COMMAND (NONE) ;*DB 0 ;END OF COMMAND ;BUFMOV EQU $-CMDSET ;AMOUNT OF BUFFER TO INIT ;------------------------------------------------------------------- ; NAMED DIRECTORY BUFFER INITIALIZATION ; NDVALS: DB NDLEN ;LENGTH OF BUFFER DB 0 ;NO ENTRIES NOW DB 0 ;DUMMY FOR NO DISK DB 0 ;DUMMY FOR NO USER DB 0 ;DUMMY FOR NO NAME NDMOV EQU $-NDVALS ;AMOUNT OF BUFFER TO INIT ; ; EXTERNAL PATH BUFFER INITIALIZATION ; PATH: DB '$',0 ;CURRENT DISK, USER 0 ; DB 1,0 ;DISK A, USER 0 DB 1,'$' ;DISK A, CURRENT USER DB 1,0 ;ROOT VALUE, DISK A, USER 0 DB 0 PALEN EQU $-PATH ;AMOUNT OF BUFFER TO INIT ; ; END p!gu!g  7)GOOD DAY! ZCPR22 SYSTEM READY( $w#gɀ$$vJXEROX.MSGk  !#"%$&'(*),+.-/012345678:9;<o=>?@ABCDEFGHIKJLMNOQPRTSUVWXYZ[\^]_`acbedfhigj)TŨW&q99F` kc[Q>g7;iz75U19?Ц{5g,* QF,r-{=.6k/S0&f̐b{󃑩{+-LkeԒ;gnYz 9SȮsȆĈ#Sw{$ktreԒ4?!`d>g>iCΉFHdĩ%g܁Cv/9uWإԿ? 9'F7?#~X_E8 ~Q&N-9{M&ej 9'F7?R )Կ !hq07LZrٙl{MejdCb{@g:9%g]˒G{oo?dC1H(/fj&L'W&N-9?d^L7 s#ޛ"58ɕSKN[̚K59琩?3oRxo~0VZJ!6ײ!ĩ%g܁Cv/9uWuԿIn]MF-LZr68?dSwuk7C&ň#Ha}t Q&N-9Y̩u5C!b{󃑴R )Կ Q&N-9Y̩u5LoMFba}MNLZroYC-±=$s.cF.:g:2qj1Ӳ+̩;Q5֐?c1HZi)ؔf_ˆ(#8- œC^g쐩n1 3#ޛRMil2qj1Ӳ+̩;Q\1o~Ħ0>W QFIwY* N[xo~0r0rb<7V NJK)Ħ4֦GنL,~2^-ː|?NE[`ijM鯏~{l]CҲ!Q&N-9s&X!^QuWxܡp4;p$or^z^Vw2qj4wL<->qǻ[k_EƷͽDQJz^Vw3a&KBl1/-$lDe!ʈ{VmoR~Xߔ'b"5inp !?IEvsP _QM__ny$|w IGQ&N-9ޕ1Kƚrw(7GWhRIGQ&N-9Q/N3;o{fj|ӱYXZ48c?/lQb_.Ӝ ķ=ݫ-Wn;)"iXS)J%~};VgeU#z^?,(wi'/g|^1o{:Dz^V#Eo!ܴ nzYka&K R| &f܁3p1B!^:rܡ"E`3񷽌bteM˛E$WG*$ӛ#]̚K+i ᦗ-j7~"w vc Rh.@TVE(֜;p _yw)>F10l^n\bq #zN\"i[,sW_UP;Sݫ־OlRuEEꌊʹ;&a^j+[Wkñ(0 XȗE·ú{@r4XMEeI-˶,O1{9yYPDİ4 ~h.|}Q;Dȇ >F103ѫ8F޼*EQ~&n*)Ԏ]nݹC}܁۫GmQ&N-LAH۞W_UP;#1Et}ֽAґ0bSwb`eԒSuJV}fqQMQ~&zx|EY-8sx☱$fyE${B܁p8TQB(,r-8Pt.kI8^9~9VBr>6XR{U~&"E4 iK:q <3<-}d8sH6;qSu Lz(}}l -X(b[2bʺ\X-[>/G+Rݫhx}ByWDnE^y)܁3D~ȮeIv较nWǯd; y{ǻH wh9nhk>ƷXZusueLľH3~)eԒŘ- H+X+;pV ^(LSgToyԖtMsq6t>nzUHjoEgpY-8B!eԒÓe)oxKzsl .BQ_s)"E 4tkSWnZ'́ nqCZME6?OXB!w}BQUC"ګ3H|X'́>qYb@Hyl ȷ|^־j{UHu-[Rǯʕ3֒ޔ,Dq^\^65* s &(֜HUǘlݘLsΟQ*$"2sunfb"G|È21a4ܺIvܫUPkyFzո3H)Xs&&B"C!'́>qYB!%Fe/܁{{l&Э<rTˈc'0bkg($Q#WL/ l$N &:b|IGyS"E!)ǹ;H8|UPۍ"r!wNv6 LZro{[sF!;p>4w($Lm/bkbR̹CZp8&a;}+u[+R;;p[)"lf"92`܁LZr*nyr `딈_UsW{4 v^R2{eCd($ Ah{:ؽj +kGU4 fRAf"JKW QFɆlu9e׵ު!Hd4?8Oܞ^rِ`7eprzl]CSK~_^m 3P œܫeM鯏~͹=ͽKSb/o{:VUJ\iN+-R3w{]H8CCwz^Vw3S/8pf LZ<$}wt|i:~Yez7x|iٖ+75{]rIrrsλr@xZDXZ^iuQ=qC͇ lB}wt~I|9IG)z{*I:JlFRq+7=f =jG12s"w'N;[;p@8xk& Eb(7KYz2k EȗcoS^Ur2qjɑTM3.|Y,lgl܁'Ykc633p+˛Z$M֦Bڬ˕FQDk$QOխ}L52s"w)$ErTV|6 bp psxeԒ{t鹽^3gMq={s7'+L'&=̍9NsVi{tkV׳&\q54g{n<^{t >P}oe]L'{5z.WsqY5{5^?Uգ*AH l+71:jఙ4szE8v-(rtH w" h.J&aOm& 8*zJ"`l+vt^B*+D*k>pګq(#daȤIn]T(X׵ު!Hd4?8Oܞ^rِsb{󃑿I2X>u Q&N-9Y̩5.lC)ѯ9W2"5inp ̹=ͽ̚#EJ=e)QY2,7݁bj>p4%ܫ2qj>qYG‘ee;YdM"m[ۖWnZ^rK6"R2Md8;#=E'XܫE9Ǖ""n78q2%C!~7@|y,Dq||),ƛQ6O`jK:o{)ؗ bpmK@ZMIXŗѾVs`Nv+vJ=eH*,Ĭ\iz{WRޗ8Xp$WWbv> lQ&N-W|(V2劔\Ŏ{jGRyey%f,r׌xE8H78wG{4ܚboi}8"{z̭=fHr=*rX(i $b`ѫJ$oxZ #]T`Vz{6u=Cs?{Alo܁Zp8Y34z7M"m8+/#t Y[U Jxڌ3p>F"||EMG)ԎE_r:{5Y2Ny߭`;b\,5Bg~PXCźcmU-Ԏ74~mz;H$a`z;pg f;w"KB±=z;p=4* QF{+hX3Bg~ϐb{Gﭚ3r4|8=Cc?/"w(7KBGMšmt ț(Vb;QDY3/fM e>z7G} 1Y3Ig~zLgh>9/?y@4u?{2u7 |?/,9 4Y34=^gSW^?E0x[B/Sē'|<`ݫ~`ēy~\B_+-܁cmֽU1B<}4ﻭr@ƪE|~{}mZ,ѷWd^S[+z>Eﺀ}-f-bg+zJ4-Ֆ؞8֑T^T"h"}mWr)Y^T-[-?.זMݿڡ[G$;p>ﶔzrDiT8bʍ{hQ 2qj&lr!ejgQY2^~kjv^I9vojKz z?EERk(XuL gxWd Wḓ_nqj u[5 \}/kUr9VB(R=^f /r8'mg0aq(?p'OO_3}8xFo/r`':ĩ%ihd}`3aO!aq;8O@lYN' ^?m_Y̍Ea8x3aTuLM`g'y`Vi3 g9di]W=M`y~\h#dybN ^?m+ Ya4Z&]f4u<9Zڇp̬z=M`Mݿ<vN9:ͽ ?i\Ϛp5mV'τc4;Ya{?N؆Ov~38y7eh=KM9_Ղ}{=kL,: ?B8|®Og{֘XPhfAYCu ^?m{_®A0<>^BD[4ugni'Wcc}l>6Xcc+V/S+V聉o~h'O/ЃġWG?7~h}dvvYaW)CfJSK&;!~"h8CS/dvvYaWi4zE A+y^~ʟ?:+ZCy^r@ͽ0^Dh+2rPF ~i{E,scQ?ęW?%z"pS |®O8Xgg1NwMGCmԿM:jWT/LorSs`lz ?$"~~-B8x <~ϠZa׍ Z!W3h|>~},s#~x=Vȅ_Ap>@~W5GOXA;8_g]68~D_t ୿f9,27YC^zE s@So9:YaA+BSspsA+BS/AYmx6W Mݿe9O+Vȅ_ fy4E?@wq ^?m'u ~ڸzE ]}6*1XiA+wüB_h| m ?mZ oN s Fe> ?m\"h\s@OX4#A{p®OrX^~{E^I,czި^,Dq&a5pZo{$ku['snOsPl91ȟ1[<+}g2C,anD8@3:?dlC)ѯ9W2ˋZNsKai>f5kU\|_%y04{ D*k>{^3\zꎈՂý"pY ^$D^{u)Kx#E$7Zp8Es13gDnOW(#f:G8d9`rQ&Nm3Ԛe9EV?/)Ԏe" a?3?9?q C0L.WQO\V{%O0܆8 8>&b ' \1 խE8dL:L1Dž oƤWsΏ+qrk T/Lorc!V گ7z{WRQ-v y܁ȗٵ, f3gDnOڪQi+75osk, ]b6?f Fһ3{HR7O0F.LzLBY=f]t^\fjv$p(bmU-+)v|B׳9|93$pl=f]ƖB^aF {Э05=7z8I8""}}VwïdM;H:9wǖj.RDR`k\iwgw} U^{72{5eęl&bl,eW\6d:91et<pnz]2RMiΥM鯏~1ݫ ga}ME[jijEKe?mmJ}k=.py1S 5׸h_-M-q9i]ZWo:2׸h_-M-q9me=.!iِ8 ~Q&N-9, motW *ŷE!ֹGR`k\,~woțMػ{w`BX@=P;#I‘7w^H1Fܡ;ŗ[8&)Fx˾k|ߔX%u`fm/v^)ؗ ƪ _>fUhWs}n7\H8fӀrX 4{9Ecj*QWZi)jd!ʈ33p+T.nz_xo~019V Ha}u['snOsk%g]˒G{u!ڔלܫeo 5pinp ̹=4wM`inp ̹=^4?8Oܞ^{uI$|ws-WnI՞u"KFsw|;&K4Wbv^ ku4%ġkYd ڞ|Lvgk9rsNWSl[f ؚFs%EHC 9ܫ(*g7'>(LZ2LxbLqoMk+EAXlP_$6%a*Z|LBjd!ʈ3fo?||^rc1wNNZo!ʋZinp ̹=ͽ!ĩ%_^m=5Y:-9W2D[_s{,~ œkkh iy__FFD#LMƷ=M܁#.EnQݫG\!V g~/ޝ;pOFelh.v䍤*r7Ƥ^1m7X>aZ[!W^2{E#$9pSbppoŸb(7KlG^7f~\h~\ISn6fV͘!W^־;H: ݊fU|8$#z(?f= U)y u}۞P2lETǚ-Y.G;R mo(qT7ݱlB}QH nSK6{MRL-^W QFǐwY* q?16'ujD*k>qֿZZf+}g 2qj4w]bNխ9v^퍎?·f+(wsNc/:wL<->Yjd2+7UT7Nl~Ȯe1g _6(#շ7*sU7w¤"~߭`;_QY2c6k{Z1ڽށi-`V/wD#X¤|=MEN.^QY2c)[ޕF!7c-9w^F>6ERܫU}؛EN LF10)}$EBH:J.܁{=0iFkRד IALcq妑"~I>o}X[|LkǷ^_Ĺ;9w4Vmr> lrlrk[$MՅ Ku) d{:jX[U=*r# k7sb*4b)]],%W QFe$||1V* Ykyߤ`c 9V Ha}u['snOskHˆ(Ms,]ݚc[z]LmOGe!ʈyV$sw9Xs ]IGY"vB¹۞kFfY2L6wYs`^rِMF 9ANkUC R~X_ œ+}gҲ!ĩ%g܁Cv/9uW^mH+-ҜK[_s{1ݫe4?8OܞcNsKai>Кf œ|L|G v~ œ|50\^Bu['snO1YMG:-9km6:-9^d?qRzy^[K{)&Jl܁Ǭ˕f_xuNNB:Lcqf ((" -e`LM*)So/۱YXZ4.Wn)2m:S߰HFQ" aWo@+w @hQZ!䷵IZ9Fe!ʈzE !W^O Lj7* QF+)G1HkHSYD(Uޗ^|=M_ajm^֒RIsBI˭sw򾒎B h1w[,(Xhe($zضf!܁܂+w2ĐMsw=lbۚrZ7OB3x4ހV8D^l#oo"ۻGͦQY2c4~@y_;ܝ^90iy8kț-rwoW,oa㔛l;p-3ir`;p0c#EZۣ5^O LT49 L%ƯM6{8[|7 Sb:b}C$V"ܔ-kXf[slcIGh90`E;kù;b278Bh6B#oԭ91]n"vPn%~F_$W{֕*4{8EoUn[j90٫3E9R؅Xg0u,7Dprz7Rn1b\tqmH?nʖwbo,^)˱f.~w#i1"ڳ4w" f%v k rfM)u{߼|^VķRY7RbmٺlJ:2{^,Dq&?!&8 7B!Z7)F7?3fskp停^zL'obSsikS_LlCAme=.Z!SZi)ؔ\ڔ,z\0} D*k>qֿZZfr55.WKS,z\5.WKS,z\fZ;b}&Wk\Ybj>qֿZZfr5Ӻ*td>qֿZZfr kjqֿZZf+}g 2qj4w]bNխ9v^퍎8Fl"m3ir{"Q9%֚v^)#uՅ\swYdHzwXލb(7"bo^ S7ۣE)7~9IXP;f]̤+8WL^R$R*^{ERA8!0~wYs`^rِMFr^z#~X_ů,nF B,Q) y{[Zok=En^gSW3^!ġkYY3 Rd~OՂÑ4w`z ֻiXoisW^9~^gڪZWRf5Bg~ϐ#,n:Jv-Y3]̒pnbq:{J.ekjvk#t }A$ [|lt ݁#Cy8x@Y3;QHa}g~P`|1`zex/;#i ^g(S2oh^gSW^?E0x[B/Sē'|<`ݫ~`ēy~\B_+-܁cmֽU1B<}4ﻭr@ƪE|~{}mZ,ѷWd^S[+z>Eﺀ}-f-bg+zJ4-Ֆ؞8֑T^T"h"}mWr)Y^T-[-?.זMݿڡ[G$;p>ﶔzrDiT8bʍ{hQ 2qjd?֗)QY2o^A.Ll * QF+_*F}5H!7 9oڪZWR]n۫ڒ^ClOnw%;.e+?/SBb@>Bk{;sŻ[ܢoǸl)q BZ\UP; yzEW~zi<I;aq19 S38X8N󓉧'Cv/K>s'8 ǝcC_' ,e]/Z,YƢ@O<0*:i&,8OՂf_:ܚeF=Pf'ހqLN=~Ӽ98i;kgp9,1M6/Dsa8aq(/^hn44?Ya맅^h{ǒtiI~F^ޒ"ןՌ_ؙB!N^~&qu@Ya맍j=kL,H4V3 m,!:e]6 =/hu\a ~ ^?mE?~ψ@ ~i ,1Gʟq >P}oe]6s̽~{EAt~n},s#|@KsĂh5BN΂s YakW_x@<Wi/O< ~s@Ӣ?Yc?Yako_?N<Fgnf9+zg+jL,:fMݿ{og9Ns1i^з<4 ZOs9w]6^17?-I( ~~{"?Ă#L =y8xgҧWD̍_`W>N^~{ICZ!-3y4x+Vh>6Xcc}lA+䗩A+7?4upi'+V聉?4u>yx2;N+Vȏǡ@?L%ĩ%L̐?^BLZyx2;N+Vh4"hXü_^hyUc?WԀ @<sh9L^r@P"Z9(#?qzEaq(΂̫~m8˩Ap>@YarXen,ʳ;#֡6nzf&a@o5\+YGU\9u fjq6}}~  j ? _N<h^g s{B~M> ?aq?spWхзq'9Z`26^B^Os9 ,iv =8Ya맍g9,N^f)")-ܴZ-WnMs4?d**[WgਬnZ@>qY^{Ek==1K警l޷W.#bp"\skpWu!5 ĩ^u%HIǬCN\k&Ue!ʈkQ&N-l0@CS fcYhNv #}}Bz &}OB'́!Ǭ˕t^f !NΤI`f qp&}L{ukfQ&N-l6?N2bLq!d|)1` AB"*[;pՂñkޕ#EmK@ݫB!w8Cv-9àk&zTZMۜګ13 C?dײDi1&z1`]1 3?9"{̺\('.,z=ȗ ̭I &Q;ڪZWR6$ .BKߟZgsr0igp9,I &4{̺\IG>qY-R>qYڡ[ajznګ3pgpED\-Feuk1f͇_$חB}wt]3Y34s-]jr^83$J׳ mod?=WOkA8͟[C\]XqL5nz].::-9W\6Xxo~0G6`3L {ٺ(#8- œClC)ѯ9W2"5inp ̹=ͽJKk Rb;wۖʕf)-(~F_$;w^A!Ŝa0ڑ7DIL8Fy=Klfܡ^7e39;H:$VQxBQ eeUD10Տ]̤y+1wۖWn #)D #Eg Qruף;o57!pu6ޞvv{Hɻo$Rs)"i_ GB{ l;p~Ȯe1B~^_8wP}cKQ`܁6r%#h;wǣ6kq ,Q[;r):ޒ܁}lyr: 7lL}VS7bkQn@k}m/(.WBu4%vS4O9H;w(7w%RQOr3,^3Yy7,B܁#غ[ϻ-%IGL4tY#܁}g9Ǩ׫'8b Rh.-Wg(TIo{:<-WnBR\-?ޕfBjd!ʈ3M2ĭm>+ ˆL'=Xxo~0c 0@NkUCR )͹)/{u!S ҥzZ|_㢭4̢ǥW2dꟶ6>5c R~X_2^a?[אlHSKu^aNݡzk Uo{o{: [_m&K}8* QF,z;v`HjF܁X)ػ7wCL{+I:Lo|ۋ݊(7RdӀf"JKW QFϘ!n1]XW\6d:9\1b{󃑿[/[5d:y+-ҜK[_bWg2"]u5.WKS,z\z,CikS_q9"5׸h_-M-q>u IˆD8QiYxި^퍎W}ʍo{Q ^IG] iq$o{:r%C!+UIe;wRmY.b3Yn剻բ};polٺ[+߼EHqCm Lj;)2lE kz/[g%f"JKspu6ޞvv{Hɻo$Rs)"i_ GB{ l;p~Ȯe1B~^_8wP}cKQ`