camlidl-doc-1.04/0000755000175000017500000000000010735240476012260 5ustar zackzackcamlidl-doc-1.04/camlidl-1.04.doc.ps.gz0000644000175000017500000023553610735240476016012 0ustar zackzackJ<camlidl-1.04.doc.psksɕ%~_3 ]EFS3ӱnJ]I $Tho?{="KvU"2232}~/_w7qËo_Wm}xw]wax׏7_^_ݽ;~Mݏ>/ݼƟ닛wߝ]߾څ~}CQ_mL>>^\߾~!>ea_ͷݻwLJw~5Ëս~K??9ۣ?_w/_{ᘞUVzg wM싃==>~}}{S_}\?~~u{{o>>ޟ>ܜ=뇛=\燦8pc\Ue}tcC}xa4y}W;'?|!ɂʟn37LJw=r9awKx/$>*KCo0ݹk₷oޝ=_p8powC9<|p!{G~aw͍N z8l-x?]|W;&yo||4bY9od9swq>ض1&c^m臛ǫCEy{WW'_髀~a}Lxb:/윋NNWJ88/hk =\s}/݂~|8.tg[C/p1??;:^>? ; e_7?'z6׷&3z$\^l^|g5Ogaw<\ m;K3ɅPTUz_T_>pM<0':7b֐ɭ[퓛MW8m39_iϐN5ҩTR_[2o+Wly><10*{7h?l9L| NEZӇ.}C=nbG/ꥨ`߯^O_r?A,n\N$ކ'l|u OYX&Klxˏv_߽xO1koCzoW{/df:HE"Kywϩ )MduT!^gߥA3 4 AO}|xM?~ ~N1޽7!Ϩ~ccp5uQՒ6KŞ?Xg|Xʠ;P|siWMHei_?Y9tgnr@6FG׿?/aS\I7}⃽x>_}^_?8k3+^J2W"{.\j ٳ g|_\ׇԨߒ~JAITe?`?b6&g/R M nWrbGGHm3lITb}-xߘ"fo2 Z[o#1qQׁ*xy<#]PIo@̮~ӛ_?~ypeKQ8x1Wخ>:㛏ɷu?o.aq,;.x|sttGv=~_&? )n'WW<_zpbbWmfmuֿGes݄ɻK~qXCmnyȗe첡jfN9+2bdY,`,yPkc->ΖlYe7yle4y-hŭ>.K62_pk[ڬ~hbi1ؐ#~4c6.?g,s;'$# {yl(87Ӏi?e3-D_XO6>񋾏F &Ⱦ/yb?a`c@FT3Ȗ۵d˳ʖ5Z4F6!SGH3f-85="Z&i] 6lj0 `l\`5Vmlv Φ 4:7 vRW_p1}isyWqh6Mz ,i6i,8OziW W,pJìȖDlD4WcH&!V ɔQ2u 46UvX*#[r #; Ր U 3̫KWp6[?a Nl{|Kᕻ`F`Z.~pkI`2kexdp=쪀IRkC\đc|t&>fjh󶈽@icBUGǩD2ɅXǺ &!P:iڍTqVҪp,^3=q5鑌 2s51. !FJ-H\JT6Z>s,ģoG5Q企2+3K,Sm 6CfU #.dx ),A{\# G9cf]RS&xtFF6!<h3hn#nfj!Hr-A+$HgyAal375\ w2~s㮫 S_p3K lfۛEeS,F v63v |FSf"~.3>㋭qlmN! P[†@/mBѐ ;! GaZDjuƜnTeHL*2ur^B%]kitԵLap--7~M9]'&4eٜMӤ@\( ̫m)6@$p f㋦Ă)~&1.Am]P9hsnܹ%g0=C );}hXlq*A;`b89j֘|& ꅞ$jSl4IĄ%f ɾ'Eslo$. E2{LIx1"} +l1f%/+myl0|w׭)єs3!1Aـ(j36.k2;sceoy2ʜÌmٿ؂}m\tI[m޾7Yl|92(pS[ vJ)A]~eMqJQ1-$-##|_dK-CBwnq4Ȭ2cwųsycTIŒqHdbz u|5@dC \MTx' Ff+j7h r=,YڱHӶ)1ToB c*X a£٣/ 3L/6'nQnόHJcJښPX~3`5%lMfӗ|`ki#7wEa3`Tdo~~6_?g<{U(PٻF΃ $n2CDX܉Wx``ۤd2Ļc ږ¤5 M1A0f-s#t6&Xі ,)V"(D:H}^ȶ"V1P2_y)`u47P_:GO7`ܵwm]5ڲR´יFoHȿ ÚSGm0=S{J3+T,"ٴ@t>U.L eҶ}|^ Ӭ~XcӍbdhfbd82Hn>f0g܉>Ǻ@bOh^0v~!ۉflm4&j?T",R#IV;ccT9R v<4`Zޣ;ZI&Uǿ@Av7SJcl_MsISԎ0цVp݃>ca;J;Ԕ&5_MMg&H7\ d˃6@o q1XHNW7 W"ZJsΉ4:vKiS<5hLj_LYfca$GW5cEV9ʆTC>4%(c%7 \/&%k#D VdA.Z@"A0f:اa.# Pg%'*-Y,ɭ }7!͍JQY4yktkެЮ. @H.:J\^-qi|]ף)^LAFBݾ"4|+0 MOn qSrʙp R(;cnMt >2d:dm+=43&jUm.'?oW2 p2jP hE0@y .R&Rwz`ibbdP=զQ9ES:j)fL 7 ijԶYJWA]BY\Qq"n]Qu∏2NTI"JlzB U&)+frq>35|ros5pLL"d=ؾO*P=8Ê|?}1UWGp50PYbqhy-ImjW4:ߔW]6H<0FclmXRupLA)|#QnP E{ xk[0g)&"'j_U.I!+"Z[0h&-,#%\n6bOk@أ^[nG:1.jis .ح( ǃKô.2L\~$ĦոPcA; ]@X|k`4#7ZQ倡ځ16(-z[fP¥Ȥő֌;yba E$$|x6Kv*]qjܙoW!GƹZYQPxΙFയqvvRQP 'IQ0%8M@@$6"=TA\e;p:96H))VCTfS0 p)Oà4ۈx%9Z"gj tw+Q`-WMqΓT2>\B͜/zV0 [@A` t "p)Ē (߀]}vB#N®&i 4&YHtC./0ٴl ӟC=o͎](+lw$!nh3s*񱱦yEGm~G; Aw iasdv F0tyA8Jj.:H`U b Ь.rҿ`|W| ^h@Zذ"JKkA5NL#0x௧?`A\8.FbpP9 iBA/ "GiE̅K҂Ul+lz= #DP^piFs JB _Z*Z&]D2}L-NNٰkGyIHWHB%Ǔ:H،!Jn"qT: 591I/S%˰ʹ=C hpȦWtjtӶ`hZ;jypHUj(606ŜL{E\p1hI<( Z_HmC!8r2Je3714ys0lY/bAL6?pcVRID9|W%oaT9 $+R90FHbB $P" =cmc#ti1ﶆ%a7%n 37rf& M4.CV˱St+WGM%1t*HNQ5MF-R+9z-'`!Jş0\kX*KQp>LH4"eR `)gZ(N)h\(F2f%REAFC'kc @nrs@ y&Y8 j2u/] kLUSAWc1NH#.ZXdFaOawˈ`ȃbr&kqJdv9#Oinٺ8 ΕYT4SSF ܘ'ivJ\ѵ=b5G]Dž*bAsf-GMv s$';ݵFguF$eVD RE}h8hyy)߇t%1̪h(F4:=Vj\Cv-?brAs?4QdF 9C 3Y3\X }s qUiD[obT!OZqKGD"앙:YQ@bwC&\q b1 PYFse`qʣqu!ړ5=4aϐs!F$H;\d-p:+"S$5spB]8OAFRQqFi)Qr 2Œ!3ӔB @ '8i(Fm723<Q.4Kh#2 qjD3۹;41PPBBY"I^Dp!|13b, Y}m&]$ O;'@|==J:ATgW-Q >4#wL3 }IuU2#N&U-g, aAʌ8AndqLYjAd {c",IV|@R7^Ep!I<@|ˣ"d}mŀ$X "Q;r!y|c"i3;>~ϴ*:`>餱%&E⷇w_z#o-Փ\lVꕾ\NU?< l0]9'P5ؼ #N4*Ғ.Щ JR̖!-HdCR,־{5NӐلuB9{Hr&b q̎;}t4];P ،ǿw}c`X9g5od6hЧƕfb &%c[b*.0K8AA~ vIƾ%mÌٛfᐐjpL1# )8ՈT#uL;x$(|uf40˛O$]ڜfC#7-%S |9ʔ<|;gvv7ٴ 371gG-,غ:s}hyc$T3m6>8ݙ  @+mYC"O(kL0Z-|KFF|3b et; LԶf,;41͹r.i!`.y2T[`OxNK Fv?Tڅ|3S6YAc#Gk,N(홃qF8ڬ,;md^uWYe('M`BBKcH fxAH"Q wp!/,+A74ϑ[6bVl۽ 4X0SpTO!^G2/rl7P::6A`ED?*t(Gu-GO e,4Շ9]haڮm{WA&4녹&tk֢<jxCf d\JJκ[入Pd=C_g@4V$49ܔۨf'`1ld9L9N*+<sj{*1![5EƮ(v?~bN1Y :/*ZieltøijJJH ۴_,]CӈˌM`:vl՛i/̏)dF>6nXa i͏@c&~Jk `؂tq =njLCm22h׬Ӑzqj&ʊ"rÙ-ߐ.6⃭B8y(kW;=FK7D2a &OM&O !R'lެ\ZO #0f:ѽf4`rњq+B TW9̚mʖU0Hw DUԴ Vh[QGE&\+__UG55qڦLLrhIh]d^]͔_ A9Xvz)8i`@#uhCnyxpWCFqAffB/7Toڂ̂.ӥ VYmQnV*j<`-Abm̓pI/hjռ"xBeMFySv)^zuUW:Kն.r``6B^X%iX`f{ѿ&UŽ^Gfb=mh;xPj˒N[*Bg]wD*^ yǸ& OK>m"QV 4͝Lh8 3Y>!#t;Ajʦ yR]KJY_3\/>Yf@"dhU6ʋ_YÊЕ0Ʉu *3VjEǧKWWhDK^'x@X2*3x,r&* A3rLr-hi8R<Fm>1^bA|(WjVr,$)*rH=呱*B3 qiX+;N,j2t$$K+Ԡfc12=W~#M f"PzDlޠ jOWW|fW\y$U8T,ԏ xkD*XPDm,D3##jG=tUz'˖wUEyFU)HJn+4%>%Qnbq/W\\K❉xܦJ{JWTU/,UT49ƘQy8ʏ (枒Ɠbh;earQN8T^o,_$9Vn{,)g ߠWsۈ"}9=E0%(f~F.4|ѹgt{8|J{b3Pֳf!c.Y5EۣI8bh&ظjE.i=S'.FW=x-iCPl;!x\ ll eM̐A%s5.,au*ig(-Q\C}V,0**RZjس;SP^0`HsU nfނf!8%b^QOO""%k3Zt8 a2Gq-y|#zN16_)(=,[fH7*sL/0sK"!k¨<XC@{ $43ϽTf*0\H ^+?b<}+j` 3.1 ʲ}ߑX]" R@50.%QiALΑʛG|#"H EtʑH=&%}Acc]AT-%Y̯Eֶ>*DЬcO͐}^JfA6xt |pGv-?ˈ]0$&RYRTh#aBgE :4qp#s@>!NS=O^?r+%ҧ3! -ml<aWM dY,Ѩ\feQ3'"Ӿ  :TWjrΒ}^QRVIDl#| b+`$qIQ1 QC}-wQ8YĤLPJ>&]4* &?zek+(Dl{ PbKq dea`B(CLfu;g`ѻK\x ĸ!SsSysKzǵ ^K1ƤfQ%@J'i#qA¬2ǀג9Q4&$ ۩`EI`MV`kG2!9"LRL %2n6[U֚\(K qZtU#lδ p2sU/@R& Lݩޓ{nf@׆Pd#ʭ<0 Ӕ`0=С9ݕv5$HnFbYQ U[4q,h9#v6Yn>CIbPU '7E`(Tڹ,Ԁ)B3]kL_KlA.aeBz:;Lf QOjOJN&\. 1d-u5:7P2dGVI^djެ젼ݴÆeby-y[ɺRl\s>l}LV2Y0"" DHt فmT"!'Q",?^_(K E ӞKjs R hҹQrϬ (#\+0t)RB;IהZmC{Mz{y-[Ei2#9wlX*Ř!1iSAA cὙ;M+2"7v ai'mD@ɗ" Jxe{9 [5Y&ɒ'wL ;)H!2H2gNlr)tV ،@E3Z6̵9)9w&YCFTY!K Leg\)JiZ1s,"TCM3?B(f"y|n.8b^ſ$f$*wQMl6:.DMA͛:Gy0)$[bI'8Cd |T0: $: w#Đj&+sṫzbzJիNB`Y)}D(|@_c`''9&u@8D+C'B4 6~9B,L|JGvwRZ$mʅ@͌l)HWL2zh%J<'Sge44=G̤AoPy !NT 8D$zm}fDnrtnβ fYUuy9#phcf7;Ύ>vIFl@V2 ?RG*'Ӟ&bǔRQ3'D`]6kkRBH *=BN݆-ZƓ>UrB=D3{A!qk .Ȯ-RZ-m&,"{WKP%/3aTeȊl͋Y7l9 _{8` X 0W)Y:h+sC4C̢-5lT2^4c;)!jmMlezY?%{&2ϊ7$\L&SDŽV!֏)Y+~ŸI1{M% $ۄ (GJ{ht_&}H(O{O{CL:7ND$͎֩Cd 9,>Qү܆fĦe֛D[˶sG !y~tب翶q/AQ؜Y JUѧFLM;a5H17 @s_Uu֓թ`9KO [E) qKf/ Mftg; fvX<ۀue,TSגRU@cFLkEbZ0=շ),wey/;\n"WJJJK(v)hikx+7gRf I^Jٰ*S,).Jtܹ#)`ܞ|'H'R Aɩ<9>ƸS.$@UӐg`?hj5Zk T Yz"0P9Y꽳fƔ|]zrp%g9ZXetILNj6%.jM^QlD7hO2o{䔘j wiv2taE՗Q SuB'hbޢf:u Z=%Ol[-n@횦(haE` + WM` bxNsI5Ϭn9p%qh{|<;u{{dxB, hLqxm2A}Q)457 @>$(v&{ma2&㴥*UE燐^`TxU(O>q[*a3fȒ9 n 8z[) :%m ߲g@sRٍD_c9[`FOg6CCKLPIir#:B A{* \0!),`C]*ЋHF̍ U:AEG/}o53Hc Ki {*Cg(ԾlpAEb,J"e:Km#5Vp-#T$$j$@_D ">. :9vxPz#&+N" ,1h"Gb4&}O`xbd> stuT Y5S \W) i=r$2CTR8[h+݈ >#˩~ O~'W0߰2Z YllGhfi-0i33o|f4#){' )v::C`- /.ghABf^sԫxɥȜ (6@^yQņ(*aXZ:Oq<q `5 ppn.cVh ./0a!ev GV^PhS-i'`,SB[\BTc.|OBEHބHÊ m5F.<Вo5`?̰EdzNSd9*m{i%yIcd.F&ȏPIinuV5]WZ_H 1̕|NdiøA*Ӿ@1<-`P4YE9EJhhyX qSwퟶhdQlߔqI=NTaZ)k)֛r\%dbJmcYlر cx01d;cɁhW1П3$n3 Zi)(%'frLizy8tFKE@81aJے܀8Mc!k[cW~$~V[sǮhc#Yej|Yxb j5m $@5/enZ+3EFm ozFm/p aQYwfgj${ .x2[N?~6MLK+8 KΪsh mBml+i~ښ$q]anP#߀n?sō頃XM"f-4~'>$䣴鮌l΅=(ȇZAy2?%$ xeЩPMyA QLBmQ7S`u*- ٩3p !.WV*4 gEn*DsXoʌfFP[D s'+h>G2nCʘƻ•eB`/tJ$r 3("tJ9QvQ٭FS|oȒgȍC #,KmVC8py%KH6jHR{lԹtU4WUrOXWγq4+ߤh)4i>]M^hx v1Aӎ UfFsr`1i䯶Z3& P "C S{c(6PD7nf2:3:$af#^DsO9==B+וP%^?H7aլ:UP#lHŪA%C$})JpУ~gm@x$\xO'fD䩵-ꈏdDѵOPF9Uʺ|Ԗv`ӹHq#$E0c`A9޸jWml !:\ 0+="s糨s`ٮv3+Eq)yr}4yeN|MB9-M<)1I] R.]vՌ+t'm4vpZc0PSm5*eLdE8SHЩ붉Rg1.kdb )GC2@2P,5glvDQ⁝7e7%.v|Η텠cF=\9f)JȺ*<5DYԔ`gL籚uT15 vF5 (ۛp1V$rxѵagLOݛ$W?`ѱcC?4n2E 9@_ JA@e }2Ž]&eAhV,GEit́ޖ AOhb4H_)>$z1&S{ /!̂6m)OPj>JDp%}E ^DYe4k2oѤؓG܊\eSt%JʄQEn(7ޫM}:?f!⦑Njycf$xQ 6QHl`s)4MvF X~UB&:A:1,1h"Syt\M0/sX-x/FUJ)ܾAIQQŢQfI-֨d-LnP6(~.+v#Q̞q<a]gX9vD(m{ZɼH;˲F)|J6F,&V94}rğs+?DSVZ bWʙ2,_P n4*jT{c^7Fڿaǘ.%,fhPGG={_C]Ѽ)UʣHrA12X]j+,9IPF ݰ+wX8 .ѳ3#שׁb3Wh 93e)B؅+>q5P7.*!G|Ռ{5@V {Wud̀M!Ncq9EQPTݕ-}ʜ /?#4!ֽeejBRhuSK!hȴq/*Y *W-3E0擹ӎm$Te*ξ<XFoЬ4Q"B8S g 32tm28!ՠ `Q =6#,pPPjA Ph*ĩoRHpKe0)بڈ+YM֘*SgluYI?dMF0Ƚ46c'^7z~cH^uYS&gaCG,hy` ޜʘmf!@P2f 4aOID 2J/g\czB5.O2KS x_Jm Q4;$ilUːGNhPMpCbi"S/0v]`y¬ba+ _%R1BH}A@/EQ5Ä|۲gr/2&Z`y$RQǖDVUF,`µ=ݯJkIl T1XsƮc]+RaрmCիl[|FG`R,e2Rsc[x”S/Vc]ʲ~#7FhQ{uCvR]Kd*HcFYD=iYTa1.@#sSb mhSeRRۛ"Nջד8a[0D;$k˹.mTE4[)WjY0)Bc ?oݮd=W-x:jvϝZkCPΘDɚ)sΕeNLosW&|&~'ՐV=j%7 A3iGR>D '##ms߰8lY4QGK0A2f~>I BҮbej愐`W#$"m5 'yJp]g Z3p<[ADa|h#sVޙR x5G57`;NGbEpkS%oIe`aQ;Zjߦⶅ۰ԭv`|כW#+Q|ZM ՛$Xڲ+J+sBQdqՌVZ!al;аBY|).G z&ę3ޤ&v-*RfLՊGN1lL6\#aCPc^QYcibl@tޢux9YM#*Qs6]/hAx51|їg/C_CWʄ'mi,y;*=Nfo* Uv}c!{cwYdP=+u=HCG̲16"F7ΡW{!NDEOBラL)RXX5>KBF˒l=2)EuD0h_[6fmt[oMfdM BƄjL㭋Җ(7VQZiVF_JbdZPDX:8!xNj_SqlYh&r(X˖}퐷b %Kcljfri3OI!QM 0\0E[Dh):s(Ɂ&\فa2h ݘxМ lIO`}ɣ 7ǥh̲`SyQ3H~:tU"%WI>n9q] c,zU+O׫OߪFT0t >AJ#נ:Vv.s|xMp:sGxpB ʜ+ʼ t>vv}T#$1udr>"A:" db-cPMcvC5.x 8 dؽNJ}(6tBL5n-)c!4^6hUu魑W m$` ؞;ґ|],hPa 'doF u^\ ?`Hoik;V.X{-DA-7k 8@T (@̵@kԴ'uP J k% IxΧ-@VH?*dDJ$Ŷw.N4s f":.VABW]ӱ5E)N;SٷP4ŔmQ&K qK6+~Hoo2e*#gH^wuTMٗVJPkbIhUa*A;.kǁ̪"+EKF́WqAު@wS!uqG^'YYH@c+2wjy4)Mٛ(eZ6 tb_0ta{5b/2Xر?Tgܴjm32!Se4Q + 7)Q;z䡕NFBsQɌcPTfe8F-xš硾)`WmHXEQ+E S$$ V=x7[hW=˹P'+OP㒡e{ǮsĝaH$+41YulK ( ,0Vm5,BD'o[HU<=N8q2 `LسA?7N騶hZF3 7fF"e Ij.K*k&bL`=p`{zw,zQf{ר)ߴ'pxݗwwE";EX?+FKRSP }1gk _GkUqTת=RsD{m#5R\  o4'[VhGYE4S?:}iK G$@GjApbP@̱&a.`!z5:T[J8[pG4HKSd<3}Fn py- QSPYDNRe7rf MМZ0"YV!jD@R]'Ug)Q!TDLEsKOU]St(eބ!X lKq>قLXU(\ObT@(͵+(a7֛mċG /%ȧCSay`m53+pF. EGf47%*OW(&0ɡUL~X/%5;F=@|t#ɟr ] bՊ KK.WAEhxSwhw共O]BB*(ɐH*(Ic:u4Eܷr\tL*eT+ҏ44T녟nةZ3.T98 4D#8?[(E=b9^ d?Sd2vKʙEW'5Lwh.Gд]R2<܃ ^;ZS@0tGbpO*-U\JU]\AףuH6C J+=7NixXQը0ܳ"Q"TiټCyCz)>2P'$L'J&YgBrT F4ܾ%~8Vȕ = EyTL&;0%*^. NUn;iyl={4uy)A SV3LYȊmT۞Ԫ[xf'_V:9fWM142 r.ssn[[Q9 `m:#L?O {d E3!wn4UP([.bLnx% [jN{S21TCHM,!ud+gP7iYH@&0b(rbj4K=ܴC;gYؚR#])U+ r/JQxnyR>2/Hƭ o'W"ST˄i6=V*蚧֩[sqٗn[wL 熛 s\ФckNN(F%Q2Uf6ejjWAjx<2]0(3#%6[K/Z0y%EIW,r]"RSi ۛjiEt#Q҄)gFF6ͼt Ն~*^E[Ud&- ZA^wQkdUE\@dƒ`Q+gtizjȺap'.yn_XhS9X4NS2a.}Gȏ,J0ʡ=7,sh#YnvmȽЏclcOqXzXVB05`k ]L ݥp7eo;x}/#.M g(hoHL : k\iP mQq)s<8M̒ L_IFL&Kf|? .6` o#z @LeA=x mPbǙBGi@@pV~^~ǂ6X(=INcmX L=Q3[3 _$3=a I,3bt1LT;(klKeTc5~ oK sJ8cXF.7y:y( TyB< ;(~uEt/0!āR[堺dguA:j3XR@rh.rX S6'|!< fRИ0t}0ğ[ΩAVCxf۞vfihr kFVV9*~.9,p`?FY6#r-&WYbO] @Syc ȵMcHXFZjâS+dj9rG.,LOծ33܈,"4oXF6LKȒ? YWpQUPQwGӛMQR&5u`6K +Sے_ĨMNx#T{FKLh/|ؐ^ȝ#j0;OÒD%hv>ב p m`| ^ߴ yD#O0P<(l.X0I,LSC]} ՒK6mٚ9N A:U*`mԀYSѓKS}iH$E~mtaZ- t]D$Z~>]0%B'^7>ja<#]#d21 Xv"V w!ѵjcM97BW()}Ӡ(?]= $? ѫE:]r- _ = dkf|aꬰ5 /, U ^ 鯂RpԡjJZf%<+bX /<@ V@tnVA $7y&' I,Rm;tAY HΆn{n2hQ+a,Sv^jBKra]X/`6)P(tcQNAxYmt"7; -H  @y(6.Tv)P2hs9H(J$m"dА0MԺ(6KD_ʞYʧIS3eI\1 <>d&֝yU8!h֕/J^kU^Ҝg,VN($ GkO)QIzifV?[ _Oæɧ""bH C'QmU'[O$ mS[BAg=u}Qoc{=#c̽DΥX !] ˬySMLDT)XT Ka+]HZtЉ1q3Bq0Bk1@0)OCMSlvox>*UAP i(ړ[qZ1 N]`t4BpEߖR)7@oB dSwZ|Pc*ZǴ(z H Vq:Yzkz> Q+e`Nk(b$N$veĵ&[NN@7ߥԍ1NլBq=M1ʕLڲ쳑m?aԧt,!,H5-~v]Y>œS=|+H۫ TLA8h()S퉥6k3N(jsBPFxS0K{8"{k"css a诼v*Z)T^T ֊jl2S$bv..`-& [ ~1?JPufB ށ3ukE,/aFg&U)}RZF?} Etl11JU*Pi$ T;(="3 K C[0F++%R9dA0+㊤7NC*36ځRE aT)ʕ0ٲi/(svSP4iĀl9)ꑰuBɆm$\-ՂX_G%8ҿД+YةgmTGc2cS4(1]/h_hҮ)}rDIЖQI>B%To+pQ"=4uvL[@̀I0FV+V&Q^)Ӥ1y0jN}?g]tXUȜ.*&ծarfZÜΌuJSmWP5l.s7Rj N1?"toOaw7Id.UdދU-!g^@VT2/o [zR?%`\V_ӊ}4U`m$Y5YbjM.Jϟ9Ա켥Yd>KC-uWV71s@20##԰5 )*G J6(:-:uͩ:^_ߟz/ S3&0hWUaOy=5Z6$| jeK6XfY .N"4Vb,*!ģ¡^'F^kR!g-НO $[۲ojuV3C^ 0-IY,$ZbweYZ>u .93<!,SIڥ#6LJg S^]1&;&w?R1TMRcHdVT$fsxe%9x (G`[Ȟ9DoBMBP@%`m(l^L^'mTC :M4M+mBbצ'v@Ɣ## jm"h'Btl#ETMaʀޒ:؝ԾZ|m A z,|H$U/g:9Rwo:DQd3O t#u>r=eYPGtbzw1IiH>5Is ((PI> B ޠ%9T3l4 j(\!(GlIpVd1al`%1qL؞aGU6h ;/"?]9!w @+E]lmfB'aTg6A 5--O"0j;w8a){;g k,P-P+2+<]cY(U’0 *TH5P/sJUwVBڟ &w vC.)R<|&%6U%M2Eh]aE7:6RFj6~: Ę]a7sY'PJO9̉SD|JWΰt.쉻1`F3Aʙڈ)Syv=g+%ˋ.GfIEȤE\[)-;-20UDC0iXlHXޤ~ui ǜ OTۘ9J d4lrr$M؄=~":2>eA xNp8،mɻXDSl8R=%媥Mi T~(ԃ;oI{zPM`HS9HCҴ2 if Y@JaMp@FW=]@T L(*aQʔ˺H ŨcB4m|Ka?ǧ%z KVXx+G_;z>Dq@қHM&˧u3lIžzB܈i$S"1Zu$`gچFOJyrvc.GQ[M޳7-Ռ%, `~PW^ix)S%18k\²y["V^h39 ̚5&/[YsNY"";!EDn,R6o_eRVطϊT@?w%e2"9M5\0x\mKbQ|<S\/ LfoXTS <3ϥH',Szj@c'*uh,Fc,a=(`+lv =j)iT+z{^]SF$i2y{9cI\t+w&%R/L̕ΫI 5ULiW/UPUF߳mY~kPMT a- Fa1kn,{adRm]N<Ҙ2h)>= ]Ba>0[壦BSҴTj&3f? s"U 4ciɂ4?o៰,[:P̀RI8,-i&#~:ԓm/U' )Zэ8ix2;T!LBU"P#!M&ƆPznTtLA=) t=78I,1GxH5{]7CWցHU@Z݂-ogwn#@.a׉? ǒSMJ6 n0Ovo؃xE*KGzw*<40Xб5{_tꁲY#-|ԡNipSHhgts5s}y*^ X1GeFS=XԥF6/ղQ[eܭ]WD#;{Y+:C.?9Mّ?hI:^2LE3q]YejەT:\j@4aZ5p{iUYTe3M; En1-DRWM3y뉻ZBNims#3sv}OU)a(Mru3`68>늘 ܉QYx- ՠ۳ LkTn*h[m#ZBEbNġQ[e=uם}yPv^1."ړ"^֓I*aXZPk]@_Xbt\ S$խ2yUMg3q15e𸤹;[% и&P@[l]J0mtAfs?֊ dՐZ89#RΤb6FU1&QjAB#v֌4lG_U,!3kwNmSV^L 9X J"QF[F Triz_X$O$0} ʗ/Bm5aHp|!agvB>WSD+)J$"E & #^, }l@rI`O=1=8Υk,ϼt^)uOA.7JZ*QG`pr arԻ yA!gQ͠3E)-:TT}h ( % =ܒ<';h,-_Q&@ d=dT@ ȳ0ФM~; TajS 5G2VEdሽc+3Oj&@J}rB,kƝ%$>ȱBڔJ fBUl6lb/Bӥ _%SZ4 ph) Z,*˄Pv䊩O6 G%Q 2H+d$G6G(BA`#wtCVОn|gA(}Bty&C.%8[JD$kʧG>)V Vjֿ ڧN#՘p\RMjL@`RiO^w쪢LtNFH!g~j"jԲ7ãwEJzt ӛq*cKds:) $\-$z Q $_"/ގFMs}*! ژ,RmI[D\5 [U }^</VDYwXAM6X iZ{Jbɑ{bۿ+AGj1ΕHNȯ2,o%Y*>(n'ce$5o6-S× x7uF€}hi'4c%{#ek dQgEZ]ޙr]rT%s*em*HWJtlk D7]E5;E) Fm֍䭧1 ZèA]zfiA E1[YݛP+awՄmk@l2}~ߨs#pHcс2f O_GOh#]1&|lD-u*NJzAz;9MÜ^32 ^AΨw 5E[2nY#Jwlب[\ttΎ:nB}d~DC9-:ɱ? ~<08V+wcJ5Pt8[Ѷ*dPFzƖF&})MjVacHfT^u;-.O]pGAǣT/|)D \q+lLxUG*F61HP>3˜{2(agvZL985S̡cヷ4DhFE'XΌp8IyL<<@ު+|VX;%O*@Eu-f٢=fg F B)1OX yo[J͌3!ḞTb (0] G2sDhxedQ1Hn뀲IO@.PMax1e,ga(Bd&&& +k/09TTQ ]W:ȁS)O5]ĉUٖit8s2hSpfzՒMO1l捬aÙ4ԟ2 SVoGMpK^ + 1ujrbEŞ}˔IH+s{; UC$tj9lP|5¦>"fgM4bl~3*5鐋X^Hl'zw7[6nJTVHo5ޞ4Scuk 8*8):*_7C'U4V!Ej;SqlM!߱H@zS}Ę"P8}[InGb)!5x!.r`k4j$=Y%1S8Ԅ3x74@nXW n_{y4]((V"g7Kг .#Q!:-#E)F`Ng˙}3VRGʍ]xrK^: {{!(JLiRT*g-@MQ>#s& :$-p#0jj9Jqꈬ4GTmXa{.p3(Barb1i"1M0lA+ ˗Ds f! eG>o- Nf^:MRVN`?T!1.YԤ?a& \) ^ս33beN.!+`:KEl BG160;?ZV7d#L[QP.v`Bj;f4i6!g:RX7Z4.Z(ulcq'TLJhY"ZzzR=j0L/ͧ2w%Rq CdlFDb=y^M1LIلn4i궔%`/}Pi(,\eˇ:9! I)X1vot~&eQiyߚ<W7n:) &HM d\5>H)P9^x-TO5e)?<6,SPY1%V͂T@pQ=u뤮(bhi9T-btbfDiբDz_OwA ,zF콁E+=S@ᤔucv"%[c{qV҆Jޗ#j+Wa^d]Ip8!̐).oL6:q:B->1=TkM2Q25kܟElB98 t;GAbp' LBhƀM*nϚhIGR5@j"Kw wrz nY̟\O*RSE* H\ZUUwKSow8OQ̪Jw:R0|Q`lhΥFAsfMЀlf'YY4-/mTΧ?zƔBU 'e #fmI'D$vg 53.J a3y9<b3g@)NRZݭ'̈́L~JxC؍ûelU~zPATp'3岋^ s6AhdQk %S͘vxnل@ Q`LZj'hQ 2a])惊#kG"ُirn%D+QcܡaM,?An8hGjvOLM!1qj΁4޶2Ț _F%8vv!8ZvpuSs?c.!abLT:X=y9M|. ͤ?.3=) z[Yg/U'`}lew1s3A9cs"`jpz%ĉ1AY՜ y*0X]"(BkC &VIL$ |IB XT>%i͙tL1cӲqUVOÛq$&aL+T ǘhAJZgcվK8SLXb 3'̚ԩ,I> W~ddX2e4G>6GqOAX0Chl&DgriTzo8p#}=0L)tMg?A(fdX3N^3gOIEM#G6V{ɞ.k|VSK!u8}Śo捠})Sϓc< k|!F̅C]@kfL]e#DoŗLPO>Myv>n9!v $}Rh;=e}a7@4IA{o%̖=d_6T$ =8Bl’TؠsWSI{EMӚ+ΗLI~,j 8;73M /BB±mv7{C<9O򙨪c<ꡊsV,׃Pm ` }kK$HuA[ -H^9Ȯ񖇾"6ѱb@$40nplIWNEӭh. 8z@grފk@ Ys]f&d 栘 _J3Bz&_&6xд}>OOC6!u'Xkĵ26G^CP1z&'PfzlUlk)bV~ݐMq8Mեt2c;#LgdsțWE{>14đ͔M)\;1a( z/n/N|N7Op\U=Eg#b&}cE۔aE&vlIhN`$`,N({)_coQ @5 @iRh2Ԣ)I/Bmu]E҆sq@F,Ohɽz4UbxTLW;e:uL~ʱ,9IaT g,19'A "_* ޢMibir|Ȧj*UrI\)ZCQ\TBlXH9c{D% C1TsS,|o.9ߣ<}!:i  L`/Dap!1٪vHU`On¸TY0UerbKaC/weNB*(:k(&c씶C;M8`)$ʗliD-TlRE/Yd%"BL9,oȐ%G̍ w Y 1h>g0?3:bIJ`nFۇU3g5vQt5Uy4>ZP=h~ aݑ9v@ DT([`G]̳](tEm&p!{'a;+W]) QQjn40˙Lf1k5nWr:fOױ֭.DZ3Oa 5uϱVX5 p**)!k Ӯr=%M% { U2(Vf=+jrRКm?lgt3]-sliOu35 E8]9iiX-H12d->s[42`;VDgK79qdGCE~0ݬEwH j96M&5, ԑ#Y4iӳ3}x‹'StJ, h~#6Q׫W+ ěo[^=`peInhV˓G+#wgڬt{ˠ ޳Y0Qz]#ѓ}%}1;e2`6r7 H{6rNJ#qڪ)|2Ar +oz%=8UHC*.K"zZF`DO՘{4NjIH[M'ܔ ],N ʝᵡ/=%^w54qԤ: ďxi@ C;(Q- j fe!; . d0rj7[ xVV^W8÷jJqUA%<"W@7lӰҒ)ڹh [JzAʡGlZ M5r$"IR5 :PKҝη/Qt5jZn{z  [ۥPy&5S h.5. QESd  #s(|DOp(HQBܫm;zf! >{I Q WH{B$ Զ71=,sʕ(I92e6ؽAC5ZOS?쒛*jS7FA.gLO=$XT!x1w$iJύj'gU*&͛hW!O /ɞa:|uM9ڔt[^ɅjV44pXA)ȵkO*˄<=di*k2۞FxS$Mn 7$Y6n,4! R Uw)ۺS3Y~;۵ʈ %54r;ovzQ]wJ_ )/% >l2Vjc'A/tM\T 2Wmg40(FFe\2klT|f[edЦF^4lt)%by˼t ]ZQ4b:|(%ݒ3T)8$-p3kl$${ZS[Ńř.4!7SITX&20KVj4a»1 7Y0jhn҂fޑ#-ْх-T-Xl6%)[4ũ(tX k2GE~YιR\EUtYd֬1N!wDvJFie2P]泞E;|v<^~u|,dz_7LJw o_v;/볷q~0v{_߽?wٻ닛euŇ{xy|͋g7/]Y~|_湝u,K;_eӔ,Ïߟ|/xgxhV/_/߾ˇp=phjm&_//^^I.^fm"ns"G _߿,N|>Yq=/}k{sݽxyv~}>Fg/W_/6ثWKjou`Fbg0ח]WWG_l9?^g?> xoӄcyiy"`s")$]]~t?'z 7CS^~=W;OǬ;i /1뛳o/>{4{+዗1'\8x p#&xq}>x<{֮g=rNN.cP8皼/߽?{e~Ԟ۔ؼ<9zȷ//z; ;svm9{Է͝*([϶\bٯl^@Ǜ//4{Q^P6˶nm..x@pĐ+/xw. _/=[;{6UeMe[jcapO.G}ñ?`_[ߦV {  [#P[#1ķV[Ec zِ/1d+61N۫9now5nkęEh cã= /yb:v"=0|rD#K\pw\c /r<L{ITpwqv8򳛻bWWW;r I_ĆDW}~VvHTI}[3A6bfr|8[z.m7g~ו_} 9]r^:dž(|ݞ3q6A)ӡߋʰno?7=LJOx8Dl Hw-?ؓo@^DnG X/=H|=5!X]fxK֤-!KleK'{g9tP/G"޽Y̷[?|nIGxQNWU\ ^Uksvɳ(sq~T\7z|(W/L1Y qnH6bL`.Gwx)&HK$!)&#zf?0Bxwvpuvs1㋇YQdvaStyL)d-+v˷4ؚnOwi*/){xL䗅? bLߜL.|֍M=7>/{r W6.}l,;-~_j'В\M8lkt7 &R*Ϲ"e+X坆uR,G`"P_&6y;]&h&6<㻍cg5is\JD@U6HzY򎓯|F0}V 7kZڜI" wwIl t'rA8{<Кl҃3I͖ A2DʜW-.ſinƘBqu :.i: x  KG U}YO #>5ZM fUԝZ[I;2QUp0xQ8{8x]ŰŜtr߮4:)41Cyg}T-*31߄W9LW?x|w^n_Ml+{_]фN˗|8mgAK<&s8Ù&sSdi o]5휖b"Tgq.\;|s{ێ:g_~VC]zAtW &?QdzC]޻~,]fHڼ=ّԶXiunpfvZ%0뛝bzEqevhbC)uf;!E׏OϫW/m8PTQ飴+gmw7nT\ ͦC[eRsźibwA9mlԴt!N2Bхu,$4Nn k]Sŗ~~jb5Uۢ& cp‹CNӋeUEoXM׷12ŏE+;>`IW2 Lׇ!جVsA ~fsL7eۤ_/]쭍LJ4ט 80ޛB%io{kYY|Jn !/% kxކM\<!!4ipu_f ooI!KP%D|x͇G㲽;<ey)e jOb ]?:DvZ]Bl?ʡs.svwMM;GM_ )n ,a<dWO:/QGS&\kGj`}@NA?_ΠX袼HG]$%}{wNq@gth w11O.az1$f@O? 4ᮟn6f]\F~2ҙoә?vg.OzO~O"~'|ٙ3w [{1h*3.((;_xpq]Y^ҿ|Ήx!g19'ֺR6Pik$Hnv3.^?2˂6[D_ha HJ/Hnlӷ V*򮩴>\_lmyFdf֦_b%"MY._l-V6 xSqԘۤOHڝzZ"S=(i'us8='f(؝A0VSNE?K]97,]% OdfU`I~wMed}S(dl1OOz@r3ٝi LOm_Gy0[]twIKzXX;̶Kc< S^[nqs1o^_<\]_>ț7oBNLz}Y0elh8<]e,4DD^=..tVtKvvEۆgzzOR)čVߞ,?nFQep?{B6Ve}:7'{RÓ˚)z~O4~mff0XxG;2h7.M/©f#ٝw_궥k[;sEB ÕhkbUnQB$r//p'N3:㦫#;Ϛe$a=^By=f;Xh;zjƑ2Dv'""jX.Ux\vd"~tjfaWU:頱8mJ(Q~9?Og|$n\6 "_aÚvb])lJJ}%A!\/pd*wMb]AJwػ%dr?:^3zjꉿ:T2)37nטF# wN @eg)߃sr~$e^*BSg hUi2sFckHMMyՆ_<ti} yg[,ڏ~qH|B/: ׼fc$ˑ!cK!,L'@&%Kt4i{޽gk_b'y |2M9tg/΋w^dzzT05wp(1ϯ7'7i~Ff7/N}N[;]43V<> ]'̯StF}/..?5~<7KIY:m|q^}߮WAdtBW Pد}(nֺݺjuU8 _=\1 TϦb?_ ԱgS@s6FmQ@>+${4f)BE鳷Ʈ/+dOȌM]S'5v~k>=هGqR)oY8soH•R,{k`Or҃CȻ\i7g x<+%y_ DY۬7H7 qtGNcGwxs}xH[H+!-%E{K) G)o֘v^ym ےgH?hssuOz;}.o~.u(M3ك6^ d i%]SMXYMC5u ##"I~_, 8SW3yL/m;tKu3l((]Gg4=kឍYᢾLyw~oڨEO(xHt{~?ɮW.bƉ̿t1}m 丗'>HlrExPvsogH>$ڟ}1Q״Qߠ1cbٸte1픰c*edSϪ6!Vxr$g6<{mo#o2'e ՝\.LtO/ëSmlZZLt;~Ϫ+cIW$zm;'7y*/~k[V.d5=l_o4Lûg'EdCy4 ?1Zֻ̛JẨ'Riy֔DR'"`֮R#][a7NB,ۭ8tt_lty`RTc׍oq :gFŠh.iUu5VL4z?,ȓSJX>[Vx^{ TXJ,ƙ342[wi\̧u- nKMZvD\=f$>oIv7Gҝ]d}%`&h[zo`G_>`aLj5OmL+PIoY NY% (YbdW^S^~:֣kz[Cyn ,UECca޻ޗd!?œ YF.+5ZK1jxষ^퓓MHy7+'*~j2n=މĕ&kFi\Φ׾ ],O1~g[P}}wws| ]M|@iO4u~n%fKTI\|<66OgxkKQgO"6̗mdx{S{זt7E$xml,]|q}6'ߵ]xr'\z3o]GYW&(Nԧ7O&NS>OC[n STiV4 e,'i !򀾉kJ涌I2D1M*ם+^?$#R q>zj_( J3ft'3Gy**_z\^3]%2k6?WºJJ 52<nۃ7pa|wMLSAیOf+ЁD]!Q{A}s3$WSuToN=ߑkA>szkq.v>(o24˞DzИĩmކg[^i6sATr}|7m驖&nq))+=ZW$4'uV}]9qͻLLAk(/;SMV vbǕ"lY< 0g[U$Rof b$"!&Ls7èp_9qE!TAgËg;I͙Rޝai(a8ZX.nÿL`V*L)WN'%;4(2i{Pע䑢W~m''Slgi*AO׮=(Cxm;ߏr_m`q)Mh嚰/x9bXVkq$BîLӑugUk8KYaU.yAI쫗u6NAԵpH9 %$P zG#㫷6bO#t1~獔ORy 5h/qɰh9nɡ0Onu{hAfo#x]o}e0k]Sn]hmlXNՠ{6lܫ7;#0ZᎱNgwx'LOUUm73e='׻xj͟Z)ҞZ'~EU+}UGDꉫd8ߟwکip,OVuX=W~gԚ_1~WɕvM\{֕p+AZ]usks\V_{osU>Q&w{=BuH;Ԑw%S]5|zﱏ~zq[UJUpt8vNqgPÉRnګx͇ :In 6kUZOSNO t7z.HoKeuc}&tu]r$[dMĭ?2Q䘼x|dYNu3ݲ^13MN֡IJۂvx4@6Yw>D{:&N,7NfNc`2e,#5QC~SU'K ?[r-Ϧ cJN?HtP!PoV)M:޽MsDwS_6;fݷiwm}0S> ' b)%~w2Q9/sn5gg^&W|w'ywR[y`7J^sooָEAi6ğSn|Msh 'H2i@ꯥ.dQj 2ijH$ ^bce aDP.UN8"n)^ZKsc ;9)‚>SRudl4%k0g )nKGf@* Usk)0ngSo.{ `:$u8n\M-!$%>0׀7D:pď㩴=j?$ 7Zf UL\ d7aƙ썳i>k`kK Шsgծ344ךLVz1̀=[omвnj1}j#rij_jF]퐵܎ty ˋ7cJm$Ȉ6p7-K^>?-_sphO>kpFƣ{8TOc*ٳhԹ^zś"I&RނWQ?T(wK21/Aʘ9읰u᷷h4ҔjC1[DE}x`ŝ]V$V?Yx581$0G]7Z]IҼuc,0ݒ:ݸRz-p4Sw3./Øp i)Ps͐\=0\u Jtֵڤt:;ĬP.Zw'>/ٺ,&K] g[\4nuQ~7^*ojDf)UNG&ZTu[,2 =8q3[K+6w$QEjbjWs3'02gϖHlBʯ0l:tԦV} y=uj &PV靠_G ,O|{WN 2w?z\ BF;ߋPR[A_px2,M4O&=ƍ䚯kI4˃Iy Cյr!7S-aVKU h(;+ިNUHE@+WKsGaR1Vo;kcKp$5-ɄXѢ*ޔ_JЋN6$&̅UĞ#!_OB@n8Vrw䄛Vz ]|}&Kt|u>T&V6YkSNOטW.L>ӭ-4~ZuTUF&V}c1MPڪ`< ER8\ # 0H]t.(;W4_\ŷdmR: w}p;Έzw 8#6CVcSYCiU3Vi4l}iTp: [.9PpZvQb i!2M^ Ғ׻w唼cRSTES㑑l>0`|g?:5!3+5+rR 1(%Q~ޠ&+N]2V8#ҚJh& ݷ Uu(]R onn{[vXUC,#Jꭻj39}97<am7[ 'KЃ饦JloNa6JuP (Hgvr8.M $HN'h?scEk㢘f _oXy̺䖚Z.SN۷ɤm1bUFoM)~QObdo&m57SJe̱g<"䧍rvW( 4KV:xEl;`v]|ѓЖbW7.ٍgv HT|f8Pjtȟ`v{mG~T;K-F~@E=cE82t6 A vZiɼV0;F֊MXsYs7T0ߵYn yiq|x) 'Aul=)?$qʣdtEL{ڬNdXkFS6 |C/B9G^ z (6,gP/P' HXR7n'H:ɫ|Pkゥb+JX_*p NG!W$ga3iԗmkSEL! r%Fc>%euRoIHnÊ"$V&+tP= d\+8b 0JRtbT][n@8P=~>~'~EL?:tWqtA+2 |3m \%^ڭG8+Bnx[?;ݸ4|XW$2aSrOPqMr Wuv# a"BY{ق>Jx$,THd(w3 "5twi꽝!@#֞moSl"pJr+r9DaU6 'oϿhw)YH@e㷚T遏i7SU-d[%T<|; 9e CCc.w^#SAs7^9(s*=qD5PڙΖGrFՃ,b$#Ao xFzyUJ`+@| yëczd *d39P>p S ܙr _IsJTUJt/&K ~cf|0,ΧU|{ܔŝEV[o`B3͸{u4&dd) eז;\*)J*S+RNNx{q=I9ƘNؗ2`p>D!ЍBd Qא®+6#YlrY&Rjhb'L 8Ei&*R5bDtC**M[v3& _{]h)拞s9K pbraƗmsDL\(@fes`ʹaD)vGn=¼+y{ lrI @; 5)A2yG6,F}<ssZ -ٚ7 r.>pxZzʼn9:û!sq\多i!{$ j! HeU`\2sKڭ-pY]Yj[YŌ`-qX W/8.TT'YGz!q&/z"ojE@.zױ!T]؍O}3O~k.T"s"gDbX[}X-ƧIKwo#7s:;N_ܥw$vxRG=ҜrC@;:yG6N1&8?/3(R͆su3CU;_15'Rl.V:E&b7_?P'? /&sƽ)6 J]F3dvgCR!]|c:itedq[ְH{N:fJk2C:GeYA!Zjw R|탦4Y roi/ /|IGtZMNaMetW5p^%41w-}SY$'A,] n@g|9 OY6 ]12>١#aI&B& *VU:jC9rDvBz򧙵Ia>c姏5ɄHϟ@/Jrч1Q}mS٦trͦ溉G{U;; g足Ǘ7JZcQYƹ4Zur:͹'9L >O0 gkSuTZXm$}V ,)BGj1m9&.X\#n'r3a4 GSˁ`UGSs2@chBnaܯ`#W .Ժ# W >hfhjFcY2^ԭFŊߴG-ʒGF晭 V9e_a|>QQF"k ﯼ!53_f3GvBy Yv`aGR%I,Q4>E-5X>@Jjk-(VrkEU0+E, ;I؊ 6۲\P2 jC=Dqƭ`$pLXVnCvE.b̓D%zVc=1v Y%0zGޥċ[;MU/"t$d9 o,fxc_SELGӤPPhb *iLk|^]$BcxFzw><$ƴv'zEs9%}\.mQNf_*a:n"97Rvzo#l;dHQΩjHunИ[?ZQrr>C}=O8+>&k);ۏW'y,C1yT5TNa%x0'4 jH*DI"gl*ڒ"m7RJyO{JmpRwRP~<竽/]U s 鎠ئlYώ;w4aTB˘; ,r1ЁVAi=zdRŶIJx+ ] .d!s|:54@o䚝&f&'B`c.ʲ ]tkL) w%XD  Z ي!Ig)9$p td0Tc+䝐u)#JEO4?=[] b!q;h$洟3d~%GYNt&/?7e1k*/*e]ZH7)ԫ=ȹNi9m9&&FZ&CwrPn*~ 'i]D9g-+ʳ@o}:"xF}J\ qGNrǻƪ(sq+֒ܿ͢\:{ZJB8,'Wor[8y)^߆"Av-OkX ]zÇâl^pSʸv ΫE 0e[=5J:4 ']6&w(']։yh=HՂĀGHj{P|hO$ݥ([e/v-> +T lL+OfY8n*\vpG\dZ9*DȕpCEŬ'8gI5MٍKw熚)nMjBEc fuUMßc?P+1j}K|g(Q1 KkzkC W3鉠ަ12, ޛt-PnYR@{"2>خQJҿ=:^,E c1lD5=ϰFf'0 2>w|#nʉWief&ΠcNg?լI%X;vU@C!oh*yE/kjW* |kg۵??- : .SII[tY($-%_s;.ý [ϡza $*#Ūf%Gd={%@|eDp L#T/-Ȓh dg.bmgx)ᯇW$؜E7[Qd-}K53 Nu`̟ jsvZnSqFJ4&׿ʲ Bɴ4sN,'LAISU>-o?DRg?JDh@6^EXm8-]IqT?~oIrfřI2%2 @.7rϚZmwfݭIG]/0Tb$zz8gX;v#N[_K\z滑2܋߿$0i%^-n}6]7*+Ԛd> b5WWP% 0Z'׮2lEbKtÂ$4]eJGf"gJ@[}%V3N7 +5|ܮǏٱ\kB uxJl&f~bM8*aPQ`Ֆ[x@YpHeɾ"iUX9Rkb(9y &ZҔz?00&3@1U8Q2sY%D%,ZժG}fc59$7vt5G(bԺsЖZKZ$ę5D!m0H5#F: $r:YFv{0K%zw}eTVZ hFva1>4(wmg碄y8!+$x`vx8^?cx9+"XAyߨtˑ uNM&b6/o?hg+ND/ kF}:r2+qZzhcm<ޏϗ$wo⫵SYpel.Pxbf@0un7{j>S4z+OIYhlcCR(CzGB1)$qמ$q(iRn "QE$s<⼘/KoY)# %@9Vg`IY4EH&GU2T7c8: ~ѱ@Z Ѕ:$+rjn!v:)f& iUlw/DC!0+ۂuou^ComQ$&/{`YqPYUM&݁݁P6n9\ggD~DrMʅ n[I) }%d6T|bP 4O~Uً*yvL=;ܒeս=KfF$5m-ϵ~J'd1wZ(xa~>; Z#3 13?ldP!t]_D~GFB7?|H21m7I`8x/0Ē6@%1sr1MɗYHa!RᢕZ\w3ະ75'7'y`#_LjlK䔳hRX9B;6y6Fa^D}n}*%W.0=9M-2FXNq5 % +8WTNk lȩMw Ӳm҂-QS-ƢȨñ n+^aPO>+JD^fEL弆Q^5T𴘴xqy>^nӎ/v eZ兹JH~f߮w'+CY I/*&Gf>#`uAMOHHsyL`rn9%LtR,8"@T(V,89fr9OR]rIRǓ4 ڍ%d~XCmdܨsƞyRO3IheISܕ.\2[uסĵ9D vUA28f˥UZ \VI6Fśxo36U"f W [9,Brd|v Wg3e6+5 Ŀ\[k ¾ ʞ!%iMHiU'?R~ e@ؖsr1#gWxqxD%r1I K C3-y@G*bo-h끢XxE"XPq!n9D/E? *y]>,6!Pb___8V$}_\l27 2wPa-Lߺ-t_jp/;*~&KԊ! %54 ~a|'_6h OŌDCt[I"cRxJdL!$=WΗ?x^`!GNS;I"@NY`3`j4 ,c:l}AF_l]LqF&Sg#hata^ [K)ǂLA6^88dq쓸r`GT!6a2##S%3Άp&:A <|x4q WLxxݬ(astdWD]K1aMձ wmY=_>:KB֩FA=A-*Ez5Zu!*͚J 'x6O{G:ˋQi%X0hbfӕ:^٪kejW8;O`&5I_%IX7NXhIhP ddP]4V{3xhL4&jX]̱3e'CkJ,5Okx`i~d؉-C $M6|ר_ay%ŴFR")p23b]d)u ;n<=TMjf?1&z_;&XܼG94 %Qt(y_5Nf#aɛ4&.+nSq_C6 \IeP ~:N`ݥlصkϹ: tgac9~fa:fj%ZG'zbDYF~T~~֧n\ s4+y65/ʨ xAé$=kUSF=})WX Sy?\ݱw/{I3 R͈@s+NLJ ,kCT=b߫My'r祸PCƾ=oOg~~&7^g]༇}ۼ*G˨*hJe=jQ эf{g+v ;=pӸ/usC(e9i]q,&# M~NMZMy=xwWG@l?p]SzM~uZa=oIti뒛%Z[t8b;Mb_i/={Gn ࿽d?>=QV: J$ fR6 #D'Y@. $L7N6z1v̯wlX~zr( (+-'LrȗB<1݄7fdΕE[wq)MR ՠӒ҈1Ng#q)-y( :k5LBʧT~+A~&H#,yQl=Kod y @SF- h%uWΕim*\4'1nT4$h'X& K<9+ʳ_PLW %*?9SGNHgKOFӤҹ*S/1tpm76#SUqowT*&yAUA)[sPJA'(G)*+%NTjNNqze}VA_ l} ڗ+ipEe-IH$ OҰ}`טMxDs<5Oq_jםƆ n%# ڪ>k׮+6g9b $?l:juUq +Bp`M\'lQ{~I$*/D'*%,9?Y`}Z8 Z&Ds&QMEEn1XtROTY΢}{Fm[gnT┐x\5)D..80(jSxH{p :0koKW|IP^Kﭡ4eK  O'/]V=S`<OA W;dZXA* BN=رJo^{K.홥\GЖ cZ:t^'5 \#I4* s>aN[Yl/k%7́%{l\e`u!6iٙMN}`mX An-2kf5 mdd0S X)bJRVvK( `"\Q,_YpIPQ*` vT7 Z%AHιR fxb3lay4VV(Ax,@C޺x~N߮'>lJ_(*9S!x*tuuH;Gl;OlLrn _߹:` @w?$8lmHe2FG[-Knm " Geύ-A6\w9rɞ>݅ E1^h]S%yz sþ9ᡭ9gFJlBWٟ+)nPI1VMfuA!-buõ{ι: zc!y0n -:TF޳th,y)5HGˢ1}d&YؼLM=wKWX O=~H%Դdzn 8X\IEU̽ݟZޭтx |d~23b6M]Ъ=NSb&JJ뎋uoe6@&`}ܜvwƩbW*UZV_+,sEQ q Npq9 Ox<] Yv'}|"cjr4+_v4ѼxޓŒ 3VytX4+U+Nܨbz޷X9)>f}xO'x:wlYQB W)9b,f}:=PGLm24ZF|{nfِmSf[I!*=ܭ)"?B L&]6A'ZE8 meq2,O qs?fߕLv&KFn^ue/ПsΑerЭQ{ԣ0 +E^%)IU]OY/D{*+eK1'P]%xT)R)*=|3ܖD@"F˯vG~|{:D 4o'p\ZQ5Ckah"S*sVRk۟"& ,GZmsh:dKHqŨ\|e3NlD#͖=q{lbຉZɦ '۫-Aٙq `>(rt\s媍{ܰ0,/ZVSvnڅ/Xّ~a.+ǩhHRYYQxno)jڅ 9$g@>UlDɠ6LCs*.sɺv|X*?]b Hqp5bj Ԛ$UfW>ߵOI{3D!eI'Ej"d&t.aAT{edÎb[Hw`g,b[HVjFJ&n~žMs7-9v1Jj7~j ^UoU*;,NRUN|-Ȍ|lv f9HA!%`ieied$Ug \s7]tS -.A. 6[&>,GB"w=@߂^ëGDD[l֟> ՁfU))F5<䈧#6Eɷz8>͑q h۔|Y=PXsk8vbbBg'uˡ,XBQ i7iPز&5iIMRp20]M431KCYxUk.;)OqmU ul%.N;BfSW9zaagdBCc/^9<9\'W5-k'K+i,~~/t8r,jhvK;뛌׉BeVdTNݘA|=/xC<#:rϭg+l&$ԈA7lQV8f6rVA՜@7sپvU1ԍuI5!鈼ƮLC_|] z"nVu[ u*wY*j{n!-i*z<۽HD yob.z DKsk/]<*g)ډw5״5eب :WstN' D`$%UGlH\uov8J`Πw(Ko2RhLmU%ކߌ}G ":#auqĻzS(tL˜lѧռut;.SR(ݭ4GqEsاI [6ƅllfxayզZ+5o&7:~v'DH2=^Lq9mq-݈!|V1%u)]×?kxp‡A^=ƶ/5;7gY#)`bW+tQ0q>&Qh7'x|\f%z9DEuOxyRx\+JV@@^?&ȷ'NJH=V<}K%L?P(iu"AWr1D H&_B^Q*b2f#nYw)-hSK8[݋+|SCN&XHEI g0(WrLվwBǷ]hxv1aܓFft~\oޓ >6p?(IE%(#%&Z%[9*e6grDEY䩒rgujɸz@Qn~Ү'3/B9f~m_*ϳM=0b7/Zߊo7O ]匧8,h8/> PYC!{ŗOh\%Ƌ4OTQ 8Z:+ŇkwOqAVNjpX4h(nd{4䗻'N^LHWD9roj2Ymuhi=܍Pz;ZXZG3"5ˣۉF'5AB!qlC%Cuz!uk8riϓA[Wӯx oϰf.`4r8 Ex4(&^=W`/Fpͼгo.^SԱmv0Yo%yO]{5 y 1oe+mNJ@>z?ٻWRW ZJ(L0`GnQ$^|-Ces':J F!qc>YKw H h/&\!Y$R25*ԙ?|ƹ}ԼmpjU)ORNV r)Bx3}[AjHfJd'N X"Q﹝H`s=3.vF9FFP*r67+҃~q-{/kD^rtv;(q%N`̛ ؂-dJr{ HPu!s3h.^%hT~TxRS1 $;nQ`X%&ZK)z&+MiG`CdH.ي(7aKdsQ2oXMƇU+Nh /}ÉEfT>e@ G9 SLƨڔeWZNG16)PX1Ûʣ \Hg-I]тLj_1x~%]ǁ 9c"RLK)P ECuF|hV'G+;M-w"w%Vzx`7X"(5 \OI/C쳽g`{rXb=3d&tkA'Zf=Yai uJ3Vb/_*g*JYpI6l"fޅSLs>Oჹ̗ ʝQ}v3z[2I }$ ߷e@z`o`wȎ*fՓpv4)u[ %'O#_/WFݺ!ŧǦy{ǭ ? 9'Hy2!?*9C&ʥLH&JWeXX ҕwIcU,USfrn֯hŕ>UHv8g$lU%b]ZZ[+9Kp>kmJQ~?e3!*\3| c cKq^B`ZR$M7E<Ԋ*p5AsjWl8kReYj d|%;r@y:`f[&_uVْr$.)*:>#Ig>*jGkɑo.&Bs8g\v:#OZ"nSҜP6q:*yA AuM+,TaF%hQNc4s\0MUy%q ȿZ[+vc[vGcs%%dAT&$J̭$~yiЈ[v>0(w7PeH|%do0ZS -s[!g[VBIehښʎҡt;DnVؗԮ׸ q=Vx(q+Fmج^*T%_;+TH #^\r4qPzDcdڴԓrH5Ys+\d<7͐|&d?s NȚOe3t9);Xe66Ie d'J-ݵL=rP s1r@;BGqqh.<$ H3x6)5_|!e~jC5W ?UDElMIs׍|2er|d]&==IQ'H, sipܮޯPdcK)t3 eCי̆x6P#47~%?!q\eTp* ʐ}jSf)-VGm;gBb;'!gL`<4o>=G؆cy,)1/ ഫ[qBd73ox)x}JAPQ"/8.0kk>vN Ef#IL6ΧfgJ5~ ٱqM 㒸O pE;#byU19i2Z^d2%(8-%M-BlS~2!Vf%F!ZKؔݝ4MFj?KcܙKp*(XJ${`7-tx`tl 'spJ${ʺQfF#!)`+jEx`:OeL/h4ͭ6c^#@bJ;{b1BϫUF&A{O 3)WKR/$ 5EA;i`1m.xVw׀h .bV.3|+ YjhN XRl;]$эÃl&?cbOo_u unhGO2$p9Jbl;:!+DIYp50.Z\UHӶlv]կ}ˣ4.!sn)\[XcX+ u_HޯYJ9] 3!%zRCgߛNGepBYq>paD}lBNo<0eM\Yq=D H`~+ 5?h=Ei;(cNO< P qD{m|*.# 3r/'êqd'EB)3"RE>A .Tey\ ]/k+Q8W G|t(>jOV'a p! b9 y\ߓn) }D"-J0[{&YY CJ-LސXZw([_%"L=P?ؖB}eu#nLtt7K7_@ Y46a>ZDσqzmʙxQɴ,H\ 7 jђ6*r 068/=' L^3xG*k.˳wb#pP8"K n P AB ;<6pBS#@x`?1EYx^EyРoI)D)>vuo&t قw9&mBM>2:Wk**< ",I Sn(ԙy\ ūdRvIO|a|Zz]O%zBEǐ# ?ÆoUZ{^ss|}Ct$Gp`>Y lW鐴 ZK=Ė+!=Ryd[J`*ؒ̓.Ovض$cUDO$/XXJY"6OAV 5@;FZQi+K7ێCEoi jbu۲*M(@rY_+ܑ[\d Hints on writing IDL files Previous Contents Next

6  Hints on writing IDL files

6.1  Writing an IDL file for a C library

When writing an IDL file for a C library that doesn't have an IDL interface already, the include files for that library are a good starting point: just copy the relevant type and functin declarations to the IDL file, then annotate them with IDL attributes to describe more precisely their actual behavior. The documentation of the library must be read carefully to determine the mode of function parameters (in, out, inout), the actual sizes of arrays, etc.

The type definitions in the IDL file need not correspond exactly with those in the include files. Often, a cleaner Caml interface can be obtained by omitting irrelevant struct fields, or changing their types. For instance, the Unix library functions for reading library entries may use the following structure:
        struct dirent {
            long int d_ino;
            __off_t d_off;
            unsigned short int d_reclen;
            unsigned char d_type;
            char d_name[256];
        };
Of those fields, only d_name and d_ino are of interest to the user; the other fields are internal information for the library functions, are not specified in the POSIX specs, and therefore must not be used. Thus, in the IDL file, you should declare:
        struct dirent {
            long int d_ino;
            char d_name[256];
        };
Thus, the Caml code will have type struct_dirent = {d_ino: int; d_name: string} as desired. However, the generated stub code, being compiled against the ``true'' definition of struct dirent, will find those two fields at the correct offsets in the actual struct.

Special attention must be paid to integer fields or variables. By default, integer IDL types are mapped to the Caml type int, which is convenient to use in Caml code, but loses one bit when converting from a C long integer, and may lose one bit (on 32-bit platforms) when converting from a C int integer. When the range of values represented by the C integer is small enough, this loss is acceptable. Otherwise, you should use the attributes nativeint, int32 or int64 so that integer IDL types are mapped to one of the Caml boxed integer types. (We recommend that you use int32 or int64 for integers that are specified as being exactly 32 bit wide or 64 bit wide, and nativeint for unspecified int or long integers.)

Yet another possibility is to declare certain integer fields or variables as double in the IDL file, so that they are represented by float in Caml, and all 32 bits of the integer are preserved in Caml. For instance, the Unix function to get the current type is declared as
        time_t time(time_t * t);
where time_t is usually defined as long. We can nonetheless pretend (in the IDL file) that time returns a double:
        double time() quote(" _res = time(NULL); ");
This way, time will have the Caml type unit -> float. Again, the stub code ``knows'' that time actually returns an integer, and therefore will insert the right integer-float coercions.

6.2  Sharing IDL files between MIDL and CamlIDL

The Microsoft software development kit provides a number of IDL files describing various libraries and components. In its current state, camlidl cannot exploit those files directly: they use many (often poorly documented) Microsoft IDL features that are not implemented yet in camlidl; symmetrically, camlidl introduces several new annotations that are not recognized by Microsoft's midl compiler. So, significant editing work on the IDL files is required.

The C preprocessor can be used to alleviate the camlidl-midl incompatibilities: camlidl defines the preprocessor symbol CAMLIDL when preprocessing its input files, while midl does not. Hence, one can bracket incompatible definitions in #ifdef CAMLIDL ... #else ... #endif. Along these lines, a C preprocessor header file, camlidlcompat.h, is provided: it uses #define to remove camlidl-specific attributes when compiling with midl, and to remove midl-specific attributes when compiling with camlidl. Thus, an IDL file compatible with both midl and camlidl would look like this:
        #include <camlidlcompat.h>

        #ifndef CAMLIDL
        import "unknwn.idl";    // imports specific to MIDL
        import "oaidl.idl";
        #endif
        import "mymodule.idl";  // imports common to MIDL and CamlIDL

        typedef [abstract,marshal_as(int)] void * ptr;

        ...

        #ifndef CAMLIDL
        [...] library MyTypeLib {
          importlib("stdole32.tlb");
          [...] coclass MyComponent { [default] interface IX; }
        }
        #endif
Notice that since camlidl doesn't handle type libraries, the type library part of an midl file must be enclosed in #ifndef CAMLIDL.

6.3  Dispatch interfaces and type libraries

A dispatch interface, in COM lingo, is an interface that supports dynamic, interpreted dispatch of method interfaces. This form of interpreted dispatch is used by Visual Basic and other scripting languages to perform calls to methods of COM components.

CamlIDL provides minimal support for dispatch interfaces. To equip a Caml component with a dispatch interface (thus making it callable from Visual Basic), you need to do the following:
  1. Use IDispatch instead of IUnknown as the super-interface of the component's interfaces.
  2. Write a type library for your component and compile it using midl. A type library is a run-time representation of the interfaces supported by an object. The midl compiler can generate a type library from the IDL description of the component, enriched with some special-purpose declarations (the library and coclass statements). Refer to the documentation of midl for more information.
  3. Pass the type library files (.tlb files) generated by midl as extra arguments to camlidldll when generating the DLL for your Caml component.

Previous Contents Next camlidl-doc-1.04/htmlman/previous_motif.gif0000644000175000017500000000047510523377664017474 0ustar zackzackGIF89app!# Imported from XPM image: prev.xpm!,@63333# B 0 A0 0 0 0 `0 `0 A   `0 `00000000000000000000000000000000000000000000  000 0000000000000000000000000000000` ;camlidl-doc-1.04/htmlman/index.html0000644000175000017500000000550510523377664015727 0ustar zackzack Camlidl user's manual Version 1.04

Camlidl user's manual
Version 1.04

Xavier Leroy
INRIA Rocquencourt


This document was translated from LATEX by HEVEA and HACHA.
camlidl-doc-1.04/htmlman/main007.html0000644000175000017500000000712610523377664015774 0ustar zackzack Release notes Previous Contents

7  Release notes

Here are some caveats and open issues that apply to the current release.

Deallocation of function results and out parameters:
If a C function dynamically allocates some of its outputs (either returned or stored in out parameters), its IDL declaration must contain a quote(dealloc, string ) clause to properly free the space occupied by those outputs after they have been converted to Caml. Otherwise, memory leaks will occur. (The only exception is results and output parameters of type [bigarray,managed] ty[], where the Caml garbage collector takes care of deallocation.)

This does not conform to the MIDL and COM specifications, which say that space for out data structures must be allocated with CoTaskMemAlloc by the callee, and automatically freed using CoTaskMemFree by the generated stub code. (The specs don't say what happens with the return value of the function.) However, there are many functions in Win32 (not to mention the Unix world) that do not follow this convention, and return data structures (e.g. strings) that are statically allocated, or require special deallocation functions. Hence, camlidl leaves deallocation of outputs entirely under user control.

Allocation and deallocation of in,out parameters:
For in,out parameters, the MIDL/COM rules are that the caller (the stub code) should allocate the inputs, the callee should free them and allocate again its outputs, and the caller should free the outputs. As explained above, camlidl-generated stubs don't automatically free the outputs. Worse, the inputs passed to the functions are allocated partially on the stack and partially in the heap (using CoTaskMemAlloc), so the callee may perform an incorrect free on a stack-allocated argument. The best thing to do is avoid in,out parameters entirely, and split them into one in and one out parameter.

Reference-counting of COM interfaces:
Caml finalized objects are used to call Release automatically on COM interfaces that become unreachable. The reference counting of interfaces passed as in and out parameters is correctly implemented. However, in,out parameters that are interfaces are not correctly handled. Again, avoid in,out parameters.

COM support:
The support for COM is currently quite small. COM components registered in the system registry can be imported via Com.create_instance. Components written in Caml can be exported as DLLs, but not yet as standalone servers. Preliminary support for dispatch interfaces is available, however many of the data types used in the Automation framework are not supported yet (e.g. SAFEARRAY).


Previous Contents camlidl-doc-1.04/htmlman/main004.html0000644000175000017500000001223010523377664015761 0ustar zackzack Using camlidl Previous Contents Next

4  Using camlidl

4.1  Overview

The camlidl stub generator is invoked as follows:
        camlidl options file1.idl file2.idl ...
For each file f.idl given on the command line, camlidl generates the following files:
  • A Caml interface file f.mli that defines the Caml view of the IDL file. It contains Caml definitions for the types declared in the IDL file, as well as declarations for the functions and the interfaces.
  • A Caml implementation file f.ml that implements the f.mli file.
  • A C source file f_stubs.c that contains the stub functions for converting between C and Caml data representations.
  • If the -header option is given, a C header file f.h containing C declarations for the types declared in the IDL file.
The generated .ml and .c files must be compiled and linked with the remainder of the Caml program.

4.2  Options

The following command-line options are recognized by camlidl.
-cpp
Pre-process the source IDL files with the C preprocessor. This option is set by default.

-D symbol=value
Define a preprocessor symbol. The option -Dsymbol=value is passed to the C preprocessor. The value can be omitted, as in -D symbol, and defaults to 1.

-header
Generate a C header file f.h containing C declarations for the types and functions declared in the IDL file f.c.

-I dir
Add the directory dir to the list of directories searched for .idl files, as given on the command line or recursively loaded by import statements.

-keep-labels
Keep the Caml names of record labels as specified in the IDL file. Do not prefix them with the name of the enclosing struct, even if they appear in several struct definitions.

-nocpp
Suppresses the pre-processing of source IDL files.

-no-include
By default, camlidl emits a #include "f.h" statement in the file f.c containing the generated C code. The f.h header file being included is either the one generated by camlidl -header, or generated by another tool (such as Microsoft's midl compiler) from the IDL file, or hand-written. The f.h file is assumed to provide all C type declarations needed for compiling the stub code.

The -no-include option suppresses the automatic inclusion of the f.h file. The IDL file should then include the right header files and provide the right type declarations via quote statements.

-prefix-all-labels
Prefix all Caml names of record labels with the name of the enclosing struct. The default is to prefix only those labels that could cause ambiguity because they appear in several struct definitions.

-prepro preprocessing-command
Set the command that is executed to pre-process the source IDL files. The default is the C preprocessor.

4.3  The camlidldll script

Under Windows, a bash script called camlidldll is provided to automate the construction of a DLL containing a COM component written in Caml.

The script camlidldll accepts essentially the same command-line arguments and options as the ocamlc compiler. (It also accepts .tlb type library files on the command-line; see section 6.3, ``Dispatch interfaces'', for more information on type libraries.) It produces a DLL file that encapsulates the Caml and C object files given on the command line.

Use regsvr32 /s file.dll to record the components in the system registry once it is compiled to a DLL.


Previous Contents Next camlidl-doc-1.04/htmlman/main003.html0000644000175000017500000011012710523377664015764 0ustar zackzack The Caml-IDL mapping Previous Contents Next

3  The Caml-IDL mapping

This section describes how IDL types, function declarations, and interfaces are mapped to Caml types, functions and classes.

3.1  Base types


IDL type ty Caml type [[ty]]
byte, short int
int, long with [camlint] attribute int
int, long with [nativeint] attribute nativeint
int, long with [int32] attribute int32
int, long with [int64] attribute int64
hyper, long long, __int64 int64
char char
float, double float
boolean bool

(For integer types, signed and unsigned variants of the same IDL integer type translate to the same Caml type.)

Depending on the attributes, the int and long integer types are converted to one of the Caml integer types int, nativeint, int32, or int64. Values of Caml type int32 are exactly 32-bit wide and values of type int64 are exactly 64-bit wide on all platforms. Values of type nativeint have the natural word size of the platform, and are large enough to accommodate any C int or long int without loss of precision. Values of Caml type int have the natural word size of the platform minus one bit of tag, hence the conversion from IDL types int and long loses the most significant bit on 32-bit platforms. On 64-bit platforms, the conversion from int is exact, but the conversion from long loses the most significant bit.

If no explicit integer attribute is given for an int or long type, the int_default or long_default attribute of the enclosing interface, if any, determines the kind of the integer. If no int_default or long_default attribute is in scope, the kind camlint is assumed, which maps IDL int and long types to the Caml int type.

3.2  Pointers

The mapping of IDL pointer types depends on their kinds. Writing [[ty]] for the Caml type corresponding to the IDL type ty, we have:
       [ref] ty *    [[ty]]
    [unique] ty *    [[ty]] option
       [ptr] ty *    [[ty]] Com.opaque
In other terms, IDL pointers of kind ref are ignored during the mapping: [ref] ty * is mapped to the same Caml type as ty. A pointer p to a C value c = *p is translated to the Caml value corresponding to c.

IDL pointers of kind unique are mapped to an option type. The option value is None for a null pointer, and Some(v) for a non-null pointer to a C value c that translates to the ML value v.

IDL pointers of kind ptr are mapped to a Com.opaque type. This is an abstract type that encapsulates the C pointer without attempting to convert it to an ML data structure.

IDL pointers of kind ignore denote struct fields and function parameters that need not be exposed in the Caml code. Those pointers are simply set to null when converting from Caml to C, and ignored when converting from C to Caml. They cannot occur elsewhere.

If no explicit pointer kind is given, the pointer_default attribute of the enclosing interface, if any, determines the kind of the pointer. If no pointer_default attribute is in scope, the kind unique is assumed.

3.3  Arrays

IDL arrays of characters that carry the [string] attribute are mapped to the Caml string type:
IDL type ty Caml type [[ty]]
[string] char [] string
[string] unsigned char [] string
[string] signed char [] string
[string] byte [] string

Caml string values are translated to standard null-terminated C strings. Be careful about embedded null characters in the Caml string, which will be recognized as end of string by C functions.

IDL arrays carrying the [bigarray] attribute are translated to Caml ``big arrays'', as described in the next section.

All other IDL arrays are translated to ML arrays:
        ty []    [[ty]] array
For instance, double [] becomes float array. Consequently, multi-dimensional arrays are translated to Caml arrays of arrays. For instance, int [][] becomes int array array.

If the unique attribute is given, the IDL array is translated to an ML option type:
        [string,unique] char []    string option
        [unique] ty []       [[ty]] array option
As in the case of pointers of kind unique, the option value is None for a null C pointer, and Some(v) for a non-null C pointer to a C array that translates to the ML string or array v.

Conversion between a C array and an ML array proceed element by element. For the conversion from C to ML, the number of elements of the ML array is determined as follows (in the order presented):
  • By the length_is attribute, if present.
  • By the size_is attribute, if present.
  • By the bound written in the array type, if any.
  • By searching the first null element of the C array, if the null_terminated attribute is present.
For instance, C values of IDL type [length_is(n)] double[] are mapped to Caml float array of n elements. C values of IDL type double[10] are mapped to Caml float array of 10 elements.

The length_is and size_is attributes take as argument one or several limited expressions. Each expression applies to one dimension of the array. For instance, [size_is(*dimx, *dimy)] double d[][] specifies a matrix of double whose first dimension has size *dimx and the second has size *dimy.

3.4  Big arrays

IDL arrays of integers or floats that carry the [bigarray] attribute are mapped to one of the Caml Bigarray types: Array1.t for one-dimensional arrays, Array2.t for 2-dimensional arrays, Array3.t for 3-dimensional arrays, and Genarray.t for arrays of 4 dimensions or more.

If the [fortran] attribute is given, the big array is accessed from Caml using the Fortran conventions (array indices start at 1; column-major memory layout). By default, the big array is accessed from Caml using the C conventions (array indices start at 0; row-major memory layout).

If the [managed] attribute is given on a big array type that is result type or out parameter type of a function, Caml assumes that the corresponding C array was allocated using malloc(), and is not referenced anywhere else; then, the Caml garbage collector will free the C array when the corresponding Caml big array becomes unreachable. By default, Caml assumes that result or out C arrays are statically or permanently allocated, and keeps a pointer to them during conversion to Caml big arrays, and does not free them when the Caml bigarrays become unreachable.

Finally, the [unique] attribute applies to bigarrays as to arrays, that is, it maps a null C pointer to None, and a non-null C pointer p to Some(v) where v is the ML bigarray resulting from the translation of p.

3.5  Structs

IDL structs are mapped to Caml record types. The names and types of the IDL struct fields determine the names and types of the Caml record type:
struct s { ... ; tyi idi ; ... }  becomes  type s = { ... ; idi : [[tyi]] ; ... }
Example: struct s { int n; double d[4]; } becomes type s = {n: int; d: float array}.

Exceptions to this rule are as follows:
  • Fields of the IDL struct that are pointers with the [ignore] attribute do not appear in the Caml record type. Example: struct s { double x,y; [ignore] void * data; } becomes type struct_s = {x : float; y: float}. Those ignored pointer fields are set to NULL when converting from a Caml record to a C struct.

  • Integer fields of the IDL struct that appear in a length_is, size_is or switch_is attribute of another field also do not appear in the Caml record type. (We call those fields dependent fields.) Example: struct s { int idx; int len; [size_is(len)] double d[]; } is translated to the Caml record type type struct_s = {idx: int; d: float array}. The value of len is recovered from the size of the Caml array d, and thus doesn't need to be represented explicitly in the Caml record.

  • If, after elimination of ignored pointer fields and dependent fields as described above, the IDL struct has only one field ty id, we avoid creating a one-field Caml record type and translate the IDL struct type directly to the Caml type [[ty]]. Example: struct s { int len; [size_is(len)] double d[]; } is translated to the Caml type abbreviation type struct_s = double array.

  • The names of labels in the Caml record type can be changed by using the mlname attribute on struct field declarations. For instance,
    struct s { int n; [mlname(p)] int q; }
             becomes type s = { n : int; p : int }
    


  • The Caml type system makes it difficult to use two record types defined in the same module and having some label names in common. Thus, if CamlIDL encounters two or more structs having identically-named fields, it prefixes the Caml label names by the names of the structs in order to distinguish them. For instance:
    struct s1 { int x; int y; }
    struct s2 { double x; double t; }
    struct s3 { int z; }
             becomes type s1 = { s1_x: int; s1_y: int }
                     and s2 = { s2_x: float; s2_t: float }
                     and s3 = { z: int }
    
    The labels for s1 and s2 have been prefixed by s1_ and s2_ respectively, to avoid ambiguity on the x label. However, the label z for s3 is not prefixed, since it is not used elsewhere.

    The prefix added in front of multiply-defined labels is taken from the struct name, if any, and otherwise from the name of the nearest enclosing struct, union or typedef. For instance:
    typedef struct { int x; } t;
    struct s4 { struct { int x; } z; };
             becomes type t = { t_x: int }
                     and s4 = { z: struct_1 }
                     and struct_1 = { s4_x: int }
    
    The ``minimal prefixing'' strategy described above is the default behavior of camlidl. If the -prefix-all-labels option is given, all record labels are prefixed, whether they occur several times or not. If the -keep-labels option is given, no automatic prefixing takes place; the naming of record labels is left entirely under the user's control, via mlname annotations.

3.6  Unions

IDL discriminated unions are translated to Caml sum types. Each case of the union corresponds to a constructor of the sum type. The constructor is constant if the union case has no associated field, otherwise has one argument corresponding to the union case field. If the union has a default case, an extra constructor Default_unionname is added to the Caml sum type, carrying an int argument (the value of the discriminating field), and possibly another argument corresponding to the default field. Examples:
union u1 { case A: int x; case B: case C: double d; case D: ; }
         becomes type u1 = A of int | B of float | C of float | D
union u2 { case A: int x; case B: double d; default: ; }
         becomes type u2 = A of int | B of float | Default_u of int
union u3 { case A: int x; default: double d; }
         becomes type u3 = A of int | Default_v of int * double
All IDL unions must be discriminated, either via the special syntax union name switch(int discr)..., or via the attribute switch_is(discr), where discr is a C l-value built from other parameters of the current function, or other fields of the current struct. Both the discriminant and the case labels must be of an integer type. Unless a default case is given, the value of the discriminant must be one of the cases of the union.

3.7  Enums

IDL enums are translated to Caml enumerated types (sum types with only constant constructors). The names of the constructors are determined by the names of the enum labels. The values attached to the enum labels are ignored. Example: enum e { A, B = 2, C = 4 } becomes type enum_e = A | B | C.

The set attribute can be applied to a named enum to denote a bitfield obtained by logical ``or'' of zero, one or several labels of the enum. The corresponding ML value is a list of zero, one or several constructors of the Caml enumerated type. Consider for instance:
enum e { A = 1, B = 2, C = 4 };
typedef [set] enum e eset;
The Caml type eset is equal to enum_e list. The C integer 6 (= B | C) is translated to the ML list [B; C]. The ML list [A; C] is translated to the C integer A | C, that is 5.

3.8  Type definitions

An IDL typedef statement is normally translated to a Caml type abbreviation. For instance, typedef [string] char * str becomes type str = string.

If the abstract attribute is given, a Caml abstract type is generated instead of a type abbreviation, thus hinding from Caml the representation of the type in question. For instance, typedef [abstract] void * handle becomes type handle. In this case, the IDL type in the typedef is ignored.

If the mltype ( " caml-type-expr " ) attribute is given, the Caml type is made equal to caml-type-expr. This is often used in conjunction with the ml2c and c2ml attributes to implement custom translation of data structures between C and ML. For instance, typedef [mltype("int list")] struct mylist_struct * mylist becomes type mylist = int list.

If the c2ml(funct-name)  and ml2c(funct-name) attributes are given, the user-provided C functions given as attributes will be called to perform Caml to C and C to Caml conversions for values of the typedef-ed type, instead of using the camlidl-generated conversion functions. This allows user-controlled translation of data structures. The prototypes of the conversion functions must be
        value c2ml(ty * input);
        void ml2c(value input, ty * output);
where ty is the name of the type defined by typedef. In other terms, the c2ml function is passed a reference to a ty and returns the corresponding Caml value, while the ml2c function is passed a Caml value as first argument and stores the corresponding C value in the ty reference passed as second argument.

If the finalize(final-fn) attribute is given in combination with the abstract attribute, the function final-fn is called when the Caml block representing a value of this typedef becomes unreachable from Caml and is reclaimed by the Caml garbage collector. Similarly, compare(compare-fn) and hash(hash-fn) attach a comparison function and a hashing function (respectively) to Caml values for this typedef. The comparison function is called when two Caml values of this typedef are compared using the generic comparisons compare, =, <, etc. The hashing function is called when Hashtbl.hash is applied to a Caml value of this typedef. The prototype of the finalization, comparison and hashing functions are:
        value final-fn(ty * x);
        int compare-fn(ty * x, ty * y);
        long hash-fn(ty * x);
That is, their arguments are passed by reference. The comparison function must return an integer that is negative, zero, or positive depending on whether its first argument is smaller, equal or greater than its second argument. The hashing function returns a suitable hash value for its argument.

If the errorcheck(fn) attribute is provided for the typedef ty, the error checking function fn is called each time a function result of type ty is converted from C to Caml. The function can then check the ty value for values indicating an error condition, and raise the appropriate exception. If in addition the errorcode attribute is provided, the conversion from C to Caml is suppressed: values of type ty are only passed to fn for error checking, then discarded.

3.9  Functions

IDL function declarations are translated to Caml functions. The parameters and results of the Caml function are determined from those of the IDL function according to the following rules:
  • First, dependent parameters (parameters that are size_is, length_is or switch_is of other parameters) as well as parameters that are ignored pointers are removed.

  • The remaining parameters are split into Caml function inputs and Caml function outputs. Parameters with the [in] attribute are added to the inputs of the function. Parameters with the [out] attribute are added to the outputs of the function. Parameters with the [in,out] attribute are added both to the inputs and to the outputs of the function, unless they are of type string or big array, in which case they are added to the inputs of the function only. (The reason for this exception is that strings and big arrays are shared between Caml and C, thus allowing true in,out behavior on the Caml function parameter, while other data types are copied during Caml/C conversion, thus turning a C in,out parameter into a Caml copy in, copy out parameter, that is, one parameter and one result.)

  • The return value of the IDL function is added to the outputs of the Caml function (in first position), unless it is of type void or of a type name that carries the errorcode attribute. In the latter two cases, the return value of the IDL function is not transmitted to Caml.
  • The Caml function is then given type in1 -> ... ->  inp ->  out1 * ... *  outq where in1 ...  inp are the types of its inputs and out1 ...  outq are the types of its outputs. If there are no inputs, a unit parameter is added. If there are no outputs, a unit result is added.
Examples:
int f([in] double x, [in] double y)             f : float -> float -> int
Two double input, one int output
void g([in] int x)                              g : int -> unit
One int input, no output
int h()                                         h : unit -> int
No input, one int result
void i([in] int x, [out] double * y)            i : int -> double
One int input, one double output (as an out parameter)
int j([in] int x, [out] double * y)             j : int -> int * double
One int input, one int output (in the result), one double output (as an out parameter)
void k([in,out,ref] int * x)                    k : int -> int
The in,out parameter is both one int input and one int output.
HRESULT l([in] int x, [out] int * res1, [out] int * res2)
                                                l : int -> int * int
HRESULT is a predefined type with the errorcode attribute, hence it is ignored. It remains one int input and two int outputs (out parameters)
void m([in] int len, [in,size_is(len)] double d[])
                                                m : float array -> int
len is a dependent parameter, hence is ignored. The only input is the double array
void n([in] int inputlen, [out] int * outputlen, 
       [in,out,size_is(inputlen),length_is(*outputlen)] double d[])
                                                n : float array -> float array
The two parameters inputlen and outputlen are dependent, hence ignored. The double array is both an input and an output.
void p([in] int dimx, [in] int dimy,
       [in,out,bigarray,size_is(dimx,dimy)] double d[][])
p : (float, Bigarray.float64_elt, Bigarray.c_layout) Bigarray.Array2.t -> unit
The two parameters dimx and dimy are dependent (determined from the dimensions of the big array argument), hence ignored. The two-dimensional array d, although marked [in,out], is a big array, hence passed as an input that will be modified in place by the C function p. The Caml function has no outputs.
Error checking:
For every output that is of a named type with the errorcheck(fn) attribute, the error checking function fn is called after the C function returns. That function is assumed to raise a Caml exception if it finds an output denoting an error.

Custom calling and deallocation sequences:
The IDL declaration for a function can optionally specify a custom calling sequence and/or a custom deallocation sequence, via quote clauses following the function declaration:
function-decl ::= attributes  type-spec  {*} ident (  params )  { quote( ident ,  string ) }
The general shape of a camlidl-generated stub function is as follows:
value caml_wrapper(value camlparam1, ..., value camlparamK)

  /* Convert the function parameters from Caml to C */
  param1 = ...;
  ...
  paramN = ...;
  /* Call the C function 'ident' */
  _res = ident(param1, ..., paramN);
  /* Convert the function result and out parameters to Caml values */
  camlres = ...;
  /* Return result to Caml */
  return camlres;

A quote(call, string ) clause causes the C statements in string to be inserted in the generated stub code instead of the default calling sequence _res = ident(param1, ..., paramN). Thus, the statements in string find the converted parameters in local variables that have the same names as the parameters in the IDL declaration, and should leave the result of the function, if any, in the local variable named _res.

A quote(dealloc, string ) clause causes the C statements in string to be inserted in the generated stub code just before the stub function returns, hence after the conversion of the C function results to Caml values. Again, the statements in string have access to the function result in the local variable named _res, and to out parameters in local variables having the same names as the parameters. Since the function results and out parameters have already been converted to Caml values, the code in string can safely deallocate the data structures they point to.

Custom calling sequences are typically used to rearrange or combine function parameters, and to perform extra error checks on the arguments and results. For instance, the Unix write system call can be specified in IDL as follows:
        int write([in] int fd,
                  [in,string,length_is(len)] char * data,
                  [in] int len,
                  [in] int ofs,
                  [in] int towrite)
          quote(call,
            " /* Validate the arguments */
              if (ofs < 0 || ofs + towrite >= len) failwith(\"write\");
              /* Perform the write */
              _res = write(fd, data + ofs, towrite);
              /* Validate the result */
              if (_res == -1) failwith(\"write\"); ");
Custom deallocation sequences are useful to free data structures dynamically allocated and returned by the C function. For instance, a C function f that returns a malloc-ed string can be specified in IDL as follows:
        [string] char * f([in] int x)
          quote(dealloc, "free(_res); ");
If the string is returned as an out parameter instead, we would write:
        void f ([in] int x, [out, string*] char ** str)
          quote(dealloc, "free(*str); ");

3.10  Interfaces

IDL interfaces that do not have the object attribute are essentially ignored. That is, the declarations contained in the interface are processed as if they occurred at the top-level of the IDL file. The pointer_default, int_default and long_default attributes to the interface can be used to specify the default pointer kind and integer mappings for the declarations contained in the interface. Other attributes, as well as the name of the super-interface if any, are ignored.

IDL interfaces having the object attribute specify COM-style object interfaces. The function declarations contained in the interface specify the methods of the COM interface. Other kinds of declarations (type declarations, import statements, etc) are treated as if they occurred at the top-level of the IDL file. An optional super-interface can be given, in which case the COM interface implements the methods of the super-interface in addition to those specified in the IDL interface. Example:
[object, uuid(...)] interface IA { typedef int t; int f(int x); }
[object] interface IB : IA { import "foo.idl"; void g([string] char * s); }
This defines a type t and imports the file foo.idl as usual. In addition, two interfaces are declared: IA, containing one method f from int to int, and IB, containing two methods, f from int to int and g from string to unit.

The definition of an object interface i generates the following Caml definitions:
  • An abstract type i identifying the interface. COM interfaces of type i are represented in Caml with type i Com.interface.
  • If a super-interface s is given, a conversion function s_of_i of type i Com.interface -> s Com.interface.
  • If the uuid(iid) attribute is given, a value iid_i of type i Com.iid holding the given interface identifier.
  • A Caml class i_class, with the same methods as the COM interface.
  • A function use_i of type i Com.interface -> i_class, to transform a COM object into a Caml object. This allows the methods of the COM object to be invoked from Caml.
  • A function make_i of type #i_class -> i Com.interface, to transform a Caml object into a COM object with interface i. This allows the methods of the Caml object to be invoked from any COM client.
Example: in the IA and IB example above, the following Caml definitions are generated for IA:
type iA
val iid_iA : iA Com.iid
class iA_class : iA Com.interface -> object method f : int -> int end
val use_iA : iA Com.interface -> iA_class
val make_iA : #iA_class -> iA Com.interface
For IB, we get:
type iB
val iA_of_iB : iB Com.interface -> iA Com.interface
class iB_class :
  iB Com.interface -> object inherit iA_class method g : string -> unit end
val use_iB : iB Com.interface -> iB_class
val make_iB : #iB_class -> iB Com.interface
Error handling in interfaces:
Conventionally, methods of COM interfaces always return a result of type HRESULT that says whether the method succeeded or failed, and in the latter case returns an error code to its caller.

When calling an interface method from Caml, if the method returns an HRESULT denoting failure, the exception Com.Error is raised with a message describing the error. Successful HRESULT return values are ignored. To make them available to Caml, camlidl defines the types HRESULT_bool and HRESULT_int. If those types are used as return types instead of HRESULT, failure results are mapped to Com.Error exceptions as before, but successful results are mapped to the Caml types bool and int respectively. (For HRESULT_bool, the S_OK result is mapped to true and other successful results are mapped to false. For HRESULT_int, the low 16 bits of the result code are returned as a Caml int.)

When calling a Caml method from a COM client, any exception that escapes the Caml method is mapped back to a failure HRESULT. A textual description of the uncaught exception is saved using SetLastError, and can be consulted by the COM client using GetLastError (this is the standard convention for passing extended error information in COM).

If the IDL return type of the method is not one of the HRESULT types, any exception escaping the Caml method aborts the whole program after printing a description of the exception. Hence, programmers of Caml components should either use HRESULT as result type, or make very sure that all exceptions are properly caught by the method.


Previous Contents Next camlidl-doc-1.04/htmlman/main001.html0000644000175000017500000001032310523377664015757 0ustar zackzack Overview Contents Next

1  Overview

Camlidl generates stub code for interfacing Caml with C (as described in chapter ``Interfacing with C'' of the Objective Caml reference manual) from an IDL description of the C functions to be made available in Caml. Thus, Camlidl automates the most tedious task in interfacing C libraries with Caml programs. It can also be used to interface Caml programs with other languages, as long as those languages have a well-defined C interface.

In addition, Camlidl provides basic support for COM interfaces and components. It supports both using COM components (usually written in C++ or C) from Caml programs, and packaging Caml objects as COM components that can then be used from C++ or C.

1.1  What is IDL?

IDL stands for Interface Description Language. This is a generic term for a family of small languages that have been developed to provide type specifications for libraries written in C and C++. Those languages resembles C declarations (as found in C header files), with extra annotations to provide more precise types for the arguments and results of the functions.

The particular IDL used by Camlidl is inspired by Microsoft's IDL, which itself is an extension of the IDL found in DCE (The Open Group's Distributed Common Environment). The initial motivation for those IDLs was to automate the generation of stub code for remote procedure calls and network objects, where the arguments to the function are marshaled at the calling site, then sent across the network or through interprocess communications to a server process, which unmarshals the arguments, compute the function application, marshal the results, sends them back to the calling site, where they are unmarshaled and returned to the caller. IDLs were also found to be very useful for inter-language communications, since the same type information that guides the generation of marshaling stubs can be used to generate stubs to convert between the data representations of several languages.

1.2  What is COM?

COM is Microsoft's Common Object Model. It provides a set of programming conventions as well as system support for packaging C++ objects as executable components that can be used in other programs, either by dynamic linking of the component inside the program, or through interprocess or internetwork communications between the program and a remote server. COM components implement one or several interfaces, (similar to Caml object types or Java interfaces) identified by unique 128-bit interface identifiers (IIDs). COM specifies a standard protocol for reference counting of components, and for asking a component which interfaces it implements.

While the full range of COM services and third-party components is available only on Microsoft's Windows operating systems, the basic COM conventions can also be used on Unix and other operating systems to exchange objects between Caml and C or C++. Of particular interest is the encapsulation of Caml objects as COM components, which can then be used inside larger C or C++ applications; those applications do not need to know anything about Caml: they just call the component methods as if they were C++ methods or C functions, without knowing that they are actually implemented in Caml.

For more information about COM, see for instance Inside COM by Dale Rogerson (Microsoft Press), or the Microsoft developer Web site.


Contents Next camlidl-doc-1.04/htmlman/main002.html0000644000175000017500000011543410523377664015771 0ustar zackzack IDL syntax Previous Contents Next

2  IDL syntax

This section describes the syntax of IDL files. IDL syntax is very close to that of C declarations, with extra attributes between brackets adding information to the C types. The following example should give the flavor of the syntax:
        int f([in,string] char * msg);
This reads: ``f is a function taking a character string as input and returning an int''.

2.1  Lexical conventions

Blanks.
Space, newline, horizontal tabulation, carriage return, line feed and form feed are considered as blanks. Blanks are ignored, but they separate adjacent tokens.

Comments.
Both C-style comments /* ... */ and Java-style comments // ... are supported. C-style comments are introduced by /* and terminated by */. Java-style comments are introduced by // and extend to the end of the line. Comments are treated as blank characters. Comments do not occur inside string or character literals. Nested C-style comments are not supported.

Identifiers.
Identifiers have the same syntax as in C.
ident ::= (A ... Z | a ... z | _) {A ... Z | a ... z | 0 ... 9 | _}

Literals.
Integer literals, character literals and string literals have the same syntax as in C.
integer ::= [-] {0 ... 9} [-] 0x {0 ... 9 | a ... f | A ... F} [-] 0 {0 ... 7}
character ::= ' (regular-char | escape-char) '
string ::= " {regular-char | escape-char} "
escape-char ::= \ (b| n| r| t)
  | \ (0...7) [0...7] [0...7]

UUID.
Unique identifiers are composed of 16 hexadecimal digits, in groups of 8, 4, 4, 4 and 12, separated by dashes.
uuid ::= hex8 -  hex4 -  hex4 -  hex4 -  hex4  hex4  hex4
hex ::= 0 ... 9 | a ... f | A ... F

2.2  Limited expressions

Limited expressions are similar to C expressions, with the omission of assignment operators (=, +=, etc), and the addition of the unsigned (logical) right shift operator >>>. Operators have the same precedences and associativities as in C. They are listed below in decreasing priority order.
lexpr ::= ident
  | integer
  | character
  | true
  | false
  | string
  | sizeof (  type-expr )
  | ( lexpr )
  | lexpr  (. | ->) ident
  | ( type-expr )  lexpr
  | (&| *| !| ~| -| +) lexpr
  | lexpr  (*| /| %) lexpr
  | lexpr  (+| -) lexpr
  | lexpr  (<<| >>
  | >>>) lexpr
  | lexpr  (==| !=| >=| <=| >| <)
  | lexpr  (&| ^| |) lexpr
  | lexpr  (&&| ||) lexpr
  | lexpr ?  lexpr :  lexpr
Constant limited expressions, written const-lexpr below, can only reference identifiers that are bound by the IDL const declaration.

2.3  Attributes


attributes ::= [ attribute  { , attribute } ]
attribute ::= ident
  | ident (  [lexpr]  { , [lexpr] } )
  | ident (  uuid )
  | attribute *
  | * attribute
Attribute lists are written in brackets [...], and are always optional. Each attribute is identified by a name, and may carry optional arguments. Starred attributes apply to the element type of a pointer or array type, rather than to the pointer or array type itself. The following table summarizes the recognized attributes and their arguments.
Attribute Context where it can appear
abstract typedef
bigarray array type
camlint int or long integer type
compare(fun-name) typedef
c2ml(fun-name) typedef
errorcheck(fun-name) typedef
errorcode typedef
finalize(fun-name) typedef
fortran array type with bigarray attribute
hash(fun-name) typedef
ignore any pointer type
in function parameter
int_default( camlint| nativeint| int32| int64) interface
int32 int or long integer type
int64 int or long integer type
length_is(le1, le2,...) array type
long_default( camlint| nativeint| int32| int64) interface
managed array type with bigarray attribute
ml2c(fun-name) typedef
mlname( label-name ) struct field
mltype(" caml-type-expr ") typedef
nativeint int or long integer type
null_terminated array of pointers
object interface
out function parameter
pointer_default( ref| unique| ptr) interface
propget function declaration
propput function declaration
propputref function declaration
ptr any pointer type
ref any pointer type
set enum type
size_is(le1, le2,...) array type
string character array or pointer
switch_is(le) union type or pointer to union
switch_type(ty) union or pointer to union
unique any pointer, array, or bigarray type
uuid( uuid ) interface

2.4  Types and declarators

The declaration of an identifier along with its type is as in C: a type specification comes first, followed by the identifier possibly decorated with * and [...] to denote pointers and array types. For instance, int x declares an identifier x of type int, while int (*x)[] declares an identifier x that is a pointer to an array of integers.
type-spec ::= [unsigned| signed] (int| short| long| char| hyper| long long| __int64)
  | byte
  | float
  | double
  | boolean
  | void
  | ident
  | wchar_t
  | handle_t
  | struct ident
  | union ident
  | enum ident
  | struct-decl
  | union-decl
  | enum-decl
declarator ::= {*} direct-declarator
direct-declarator ::= ident
  | ( declarator )
  | direct-declarator [  [const-lexpr] ]

2.5  Structures, unions and enumerations


struct-decl ::= struct [ident] {  {field-decl} }
field-decl ::= attributes  type-spec  declarator  { , declarator } ;
union-decl ::= union [ident] {  {union-case} }
  | union [ident] switch (  type-spec  ident ) {  {union-case} }
union-case ::= {case ident :}+  [field-decl] ; default :  [field-decl] ;
enum-decl ::= enum [ident] {  enum-case  {, enum-case}  [,] }
enum-case ::= ident  [= const-lexpr]

IDL struct declarations are like those of C, with the addition of optional attributes on each field. union declarations are also as in C, except that each case of an union must be labeled by one or several case ident :. The first form of union declaration assumes that the discriminant of the union is provided separately via a switch_is annotation on the union type, while the second form encapsulates the discriminant along with the union itself (like in Pascal's record case of construct).

2.6  Function declarations


function-decl ::= attributes  type-spec  {*} ident (  params )  {quote(ident, string)}
params ::= e
  | void
  | param  { , param }
param ::= attributes  type-spec  declarator
Function declarations are like in ANSI C, with the addition of attributes on each parameter and on the function itself. Parameters must be named. The optional quote statements following the declaration are user-provided calling sequences and deallocation sequences that replaces the default sequences in the camlidl-generated stub code for the function.

2.7  Constant definitions


constant-decl ::= const attributes  type-spec  {*} ident =  const-lexpr ;
A constant declaration associates a name to a limited expression. The limited expression can refer to constant names declared earlier, but cannot refer to other kinds of identifiers. The optional attributes influence the interpretation of the type specification, e.g. const int x = 3 defines x with Caml type int, but const [int64] long x = 5 defines x with Caml type int64.

2.8  IDL files


file ::= {decl}
decl ::= function-decl ;
  | constant-decl ;
  | struct-decl ;
  | union-decl ;
  | enum-decl ;
  | typedef attributes  type-spec  declarator  { , declarator } ;
  | attributes interface  ident  [ : ident ] {  {decl} }
  | struct ident ;
  | union ident ;
  | union switch ( type-spec  ident ) ;
  | attributes interface  ident ;
  | import string ;
  | quote ( [ident ,]  string )
  | cpp_quote ( string )
An IDL file is a sequence of IDL declarations. Declarations include function declarations, constant declarations, type declarations (structs, unions, enums, as well as a C-style typedef declaration to name a type expression), and interfaces.

An interface declaration gives a name and attributes to a collection of declarations. For interfaces with the object attribute, an optional super-interface can be provided, as in interface intf :  super-intf. The name of the interface can be used as a type name in the remainder of the file.

Forward declarations of structs, unions and interfaces are supported in the usual C manner, by just giving the name of the struct, union or interface, but not its actual contents.

The import statement reads another IDL file and makes available its type and constant declarations in the remainder of the file. No code is generated for the functions and interfaces declared in the imported file. The same file can be imported several times, but is read in only the first time.

The quote ( ident ,  str ) diversion copies the string str verbatim to one of the files generated by the camlidl compiler. The ident determines the file where str is copied: it can be ml for the Caml implementation file (.ml), mli for the Caml interface file (.mli), mlmli for both Caml files, h for the C header file (.h), and c for the C source file containing the generated stub code (.c file). For backward compatibility, cpp_quote ( str ) is recognized as synonymous for quote ( h , str ).


Previous Contents Next camlidl-doc-1.04/htmlman/contents_motif.gif0000644000175000017500000000047410523377664017454 0ustar zackzackGIF89ap!" Imported from XPM image: toc.xpm!,@6313c B0 0 A0 0 0 0 `0@`0 `  `0@`0 `0@`0000000000 0000000000 00000000 000000 0000 000000000 00000000000 00000000000000` ;camlidl-doc-1.04/htmlman/main005.html0000644000175000017500000001365410523377664015775 0ustar zackzack Module Com: run-time library for COM components Previous Contents Next

5  Module Com: run-time library for COM components

type 'a interface
The type of COM components implementing interface 'a
type 'a iid
The type of the interface identifier for interface 'a
type clsid
The type of component identifiers
type 'a opaque
The type representing opaque pointers to values of type 'a. Opaque pointers are pointers with attribute ptr in IDL files.
exception Error of int * string * string
Exception raised to report Com errors. The arguments are Error(errcode, who, what). errcode is the Com error code (HRESULT code) with the high bit clear. who identifies the function or method that raised the exception. what is a message explaining the cause of the error.
val initialize : unit -> unit
Initialize the COM library. Must be called once before using any function in this module. Com.initialize can be called several times, provided that Com.uninitialize is called an equal number of times before the program exits.
val uninitialize : unit -> unit
Terminate the COM library.
val query_interface : 'a interface -> 'b iid -> 'b interface
Com.query_interface comp iid asks the component comp whether it supports the interface identified by iid. If yes, it returns the corresponding interface of the component. If not, it raises Com.Error.
type iUnknown
The type of the interface IUnknown, from which all other interfaces derive.
type iDispatch
The type of the interface IDispatch, from which all dispatch interfaces derive.
val iUnknown_of : 'a interface -> iUnknown interface
Return the IUnknown interface of the given component. This operation never fails, since all components support the IUnknown interface.
val combine : 'a interface -> 'b interface -> 'a interface
Combine the interfaces of two components. Com.combine c1 c2 returns a component that supports the union of the interfaces supported by c1 and c2. When queried for an interface, the resulting component delegates its implementation to c1 if c1 implements that interface, and otherwise delegates its implementation to c2.
val clsid : string -> clsid
Parse the string representation of a component identifier (hex8-hex4-hex4-hex4-hex12, where hexN represents N hexadecimal digits).
val create_instance : clsid -> 'a iid -> 'a interface
Com.create_instance clsid iid creates an instance of the component identified by clsid, and returns its iid interface. The implementation of the component is searched in the registry; if the component is implemented in a DLL, the DLL is loaded in memory if necessary; if the component is implemented in a separate server process, the server is started if necessary. Raise Com.Error if the component clsid cannot be found, or if it does not support interface iid.
type 'a component_factory =
  { create : unit -> 'a interface;
    clsid : clsid;
    friendly_name : string;
    ver_ind_prog_id : string;
    prog_id : string }
Informations required for registering a Caml implementation of a component. create is a function that returns a fresh instance of the component. clsid is the component identifier. friendly_name is a short description of the component (for information only). ver_ind_prog_id and prog_id are symbolic names for the component. By convention, prog_id is ver_ind_prog_id plus a version number at the end, i.e. ver_ind_prog_id is "MyCamlComponent" while prog_id is "MyCamlComponent.3".
val register_factory : 'a component_factory -> unit
Register a Caml implementation of a component. Com.register_factory f stores the component factory f in the registry. Other programs can then create instances of the component by calling CreateInstance from C and C++ or Com.create_instance from Caml.
type hRESULT_int = int
type hRESULT_bool = bool
type bSTR = string
The Caml types corresponding to the IDL types HRESULT_int, HRESULT_bool and BSTR, respectively.

Previous Contents Next camlidl-doc-1.04/htmlman/next_motif.gif0000644000175000017500000000047510523377664016576 0ustar zackzackGIF89app!# Imported from XPM image: next.xpm!,@63333B! 0 A0 0 0  0 `0 `0 A @ `0 `00000000000000000000000000000000000000000000  000000 0000000000000000000000000000` ;camlidl-doc-1.04/camlidl-1.04.doc.pdf0000644000175000017500000057002410735240476015514 0ustar zackzack%PDF-1.2 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream x}َۺ}B˕F$h'i1I\ M82=VťL=,yɅ|H}TOZQA1*ڻ<=U#yOϻm]ٚ8_Mnp?Ͽ&[Rt+:TQ 2*)*$`DF)/Ev.X!̃2Q0gFluV\W6QD:-' [Y_DZf5ȘD&PƭuiP0Qh"6[t~1 4D4P1dS"Ws҄sގne*Q;$k0zmUw$_4;7T~!nw{0Lԡ/ hLH66Da4 몱h?ջ+9*[AZrŇꆽ(7 -LhG:Ǒ1Xd$Ek㞷Ѯ9('s,Z1iѽغ/ m' GD@4)bK2"i[\0ʖ4+C3ҽĜq[_kWAPnç+1`gh-xtͅW=(ll:WG&J.v`C?BO#w,aʸܗX%jʠegYݮƠB|h8;bɔa:ɢj?1p&ݎ=RI;x45K۵&))n#SQJ'X V|P 5Kj}Ś*ox%3޶5XIB%Y(揋P 9#>ˇM> endobj 1 0 obj << /Font << /F17 5 0 R /F18 6 0 R /F28 7 0 R /F15 8 0 R /F19 9 0 R /F35 7 0 R /F20 10 0 R /F34 11 0 R >> /ProcSet [ /PDF /Text ] >> endobj 15 0 obj << /Length 16 0 R /Filter /FlateDecode >> stream xڭY[۸~_arwu,$ 0nhXł2rWMv?"y9,eIfi2+"xVon^=ܽULEaU>6?wEǴgdagÓw;_$J8ʃ<.=}7m/]?Iǃzl :#Fo{6X(_i/U0 pn9R(-TfMHޛÖ>jmqc;t2(pG#Qq ިݚ0 3#cl8_Q{^6͙"iEmg6Gہ@/OgpT+ A{(\i;-Ɓ_ ˀY|0"l'DX?;ӼҾTj^~BepǿvbUŲi<:?]cJqGǦ75s|pXv|s\㹊Vq& (rh~Gfxf=h{t!vNԚRU&yEhq< I!F W>q2Fƙ> Iծ8r'zNw~Ms_z^D˷Rr"σ@ Pzr쒂]޼B(ZDP?͚TlMɒCtHT=JֶZ*:j =h`gIOa+%RKl,EUD/Sűe/w!;E4r| IE/-_BR{0Oڿ2x5 MՎ;Efr_$q0Dr=ʳ+` Qz! B@0#Bfa!נnel,>{ۧRqkeI`j\*R@5': xl^Fޥ͹PEayXDyɉornR @Q.EA*͏ΝIY6IT%1UKzWWR R9$6ePbK-ZV pxQ܋EG iP%p2͟BjOM8S.hɝ9Sќx_&?bC#H?VM%f^ˇ[w}lJ.[7 8Op^s(¸۸3ٗ}]  ױ?~>3NV`;fַA(gV7J/[C*(@ D8+c_a2 y|V^2⪵5}@oyendstream endobj 16 0 obj 2412 endobj 14 0 obj << /Type /Page /Contents 15 0 R /Resources 13 0 R /MediaBox [0 0 595.273 841.887] /Parent 12 0 R >> endobj 13 0 obj << /Font << /F15 8 0 R /F36 17 0 R /F19 9 0 R /F28 7 0 R /F37 18 0 R /F35 7 0 R /F16 19 0 R /F38 20 0 R /F29 21 0 R /F30 22 0 R /F20 10 0 R /F34 11 0 R >> /ProcSet [ /PDF /Text ] >> endobj 25 0 obj << /Length 26 0 R /Filter /FlateDecode >> stream xYo6_X'O, ] %}j;@i[cgܦC}Gi}0H0g#)$Ҍ&G=}IĈ`*ֳۈߟAyB+ 1H%b|&O „@R/jLUT1c; Cv̆i?K`$V; D#JTqWnn#VId:<-N8z74y) )&8`pDo$K% m#L@-}ݑ)D>遪# V׶W6qTx0*;&פ?Xv8au5ly>ly'P6>LwllatN"AƇM1*r}K:Yji5"Pˬ^B/ rc7~ \!,kެ6U)lj\Äuq4Yua+I\S3ӥ#LyVVM P]Oy\nZxH=/]QOM>93Ha. w61_4-".JfMC@wŸhx)<NVfJ*&L2oj~];Fc#gI]wL$уHmf4n{esu7W)>i!@u#7804=lR l9EDʣy悟dMQdU8zlkk$t=uBx}JlPr/vVMp9+FYV)mP.9Nhdd sGW.N:gOq]< y'H'L9LOYiV:ue?g5E:x.l.]d_|arX,Y(-B;uzzS"j$8RD\= v0ֆj0XIq2&pC+'XW$Kd΁bu=[۝V3Т+kUݻZT(I ?Vγr̰+7ɃHAFZZ ѿ\V_TE~jv-e15K9~QeuhN:zZ][kEhdL]fu\v(TlRmanm'xu}/ǧ]ك:&a׆HlKui Fh踒@iaC=vv? [`:ް Qq?C}:lw(r/>> ,"ŒQ(o5(}(38@ pzkd?$Vo =ŝa˿~h.3~_ 5 tշvC0 9_iendstream endobj 26 0 obj 1622 endobj 24 0 obj << /Type /Page /Contents 25 0 R /Resources 23 0 R /MediaBox [0 0 595.273 841.887] /Parent 12 0 R >> endobj 23 0 obj << /Font << /F15 8 0 R /F16 19 0 R /F38 20 0 R /F37 18 0 R /F30 22 0 R /F29 21 0 R /F19 9 0 R /F35 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 29 0 obj << /Length 30 0 R /Filter /FlateDecode >> stream xڵVK01E$<%7z[H*q,#UuY!3C~d!G U.6D,F]7_ޮ>/JXdi)һiTnYrFnסP%kl-^dzFDĹؙ2t,*l-qxDQAO6QLow)--ȠUopq+@YIb[p3`/O5^a0qQDM47ˆATy1;E) QBز$9룳C.T# oJ2l7gΣOW^gpN FJ'W2w&i1x2Dq=fJRiDHCc~F})X=,Qds`y*DJoXr T.28;1HS?YSIc1B=}oXoX*xŐտi?ҕc:Ϩ.1o$ҧc$lxb?n*P7!T¤Nuo6~Ogݐ RtB?t*L(J 'i1ͽ'2H% _d! _usV2m%q+(:@dfRph%Q.Elc-vr y]aʡHOe·8udZfM.:o<8,9smv>hu5OK{ͺIq7};V3OmMo7] y׈ٍPY Շ/'endstream endobj 30 0 obj 880 endobj 28 0 obj << /Type /Page /Contents 29 0 R /Resources 27 0 R /MediaBox [0 0 595.273 841.887] /Parent 12 0 R >> endobj 27 0 obj << /Font << /F15 8 0 R /F38 20 0 R /F37 18 0 R /F35 7 0 R /F30 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 33 0 obj << /Length 34 0 R /Filter /FlateDecode >> stream x[K8ϯpd-zvSÞ}˦0mw&BG~$xRs@qχ?!hOrJzo0a~N>|uc#ȞG8>1yT!Y S/]p8GЕ!Z> _yQ@{ F?R\&(Lm#\,}>X*$ܮGD>1`NMbP ʃSmT:l GEQyo =֓*PCӝiS9nuj׮pypf ª0$d%EZȮĩ7qVWs6_&6ܯV#%X&KùvJ@~k̓AF0I0>icG;YtNE|fc}pa`LQn ,”^FT1.g1 3܎I/,,fg 4~´WIv㓭NpjG fNeRvd~|߬$ \?O2O%q{T!b$8P"Xk1؉s[7Su_V7-xDZ?fYYN9j8]ԕUQWD]ETr@U*|(nNa{d,4ߑ6[|LTg sQw;v h\aM$ `w!AƄIK%FleiX%r8_۠ [-cXlWu~Z#۵,ЍjnEb%ǎ7|U D|-+qEYcj=-$Ɍ&jQޠ]0Lڪ:R̚[(Բ*aVn9"T  ܞkyt _:xiVֆm:XԮϻo_*P=(j)-0!N=\DIiзRϧɑ|X4m =[U'V𳘹!Ϊ>Muo~NC7A1n]s- DŽaendstream endobj 34 0 obj 1593 endobj 32 0 obj << /Type /Page /Contents 33 0 R /Resources 31 0 R /MediaBox [0 0 595.273 841.887] /Parent 12 0 R >> endobj 31 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F38 20 0 R /F30 22 0 R /F19 9 0 R /F29 21 0 R /F35 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 37 0 obj << /Length 38 0 R /Filter /FlateDecode >> stream xYKo6WVb/},Т-]Ej)E{"H2[o>"G / qFK)Y.xNNzݑ^g7X~e3A=1H -]Ɣ(ojX\vmJ_ש%xvM +{QI1 Y=;&n@Gf6qJiWW4b䀒HTr[6}i2O Bt n}eD^$F4I DD09SҦC<(FBvUy҃C~yz6i,z56Ϗ>-]X1RRͳ"$X ,AeBq@RLFCcHvJiskBM):Pu̬sh缳rt&ovLwl4#j,uVu;+$t@?wG, Uo$b;6/:[P$väF=!^Gbl2 cbGzsFAB&ށ7viUMc0 )"Zp_i{Du/b H1&4;4y%wBhgnbO1'- aaͪ2upA2ƴn+˱iXWx"sDy=?!h8"M[ծqeYܟN0MU0-j*/5r KKJmvtLX˩`uyۘb-搜;خBiA{Wd.~V)Pendstream endobj 38 0 obj 1648 endobj 36 0 obj << /Type /Page /Contents 37 0 R /Resources 35 0 R /MediaBox [0 0 595.273 841.887] /Parent 12 0 R >> endobj 35 0 obj << /Font << /F15 8 0 R /F38 20 0 R /F37 18 0 R /F30 22 0 R /F35 7 0 R /F19 9 0 R >> /ProcSet [ /PDF /Text ] >> endobj 41 0 obj << /Length 42 0 R /Filter /FlateDecode >> stream xYK۸gӿ\DM"4E1@.L߫1dP!eK6e_gwa"ϋ|q颀?\)BKM,gj/{Gv[V3qF˅bB%1JeN)ٻa[n̹UMٖ~̈c ȩ&@m(ABG_z Z&n)?zׁDd2g:sylH>Y zAfNDADŽ3Wn%|&O,R=X|%qC(U'B4!-=z-iLܫ vpǔpf+xVrn,VWZ¨0$0;)!QN! ,\vqWw2sv b gϼY&\\*є 1ԦQfշs{D] ~a( -"ŠCS⹇7%~'|r,ۭX9 Ej E"wm< ~jO)7&I5\&\6ѫ2P6G42~U<w{OlD!&@ty'&({>J5n WQ9_DQ5ásmow^Ot+\ʦ K~=m寃i, 'J/FGS2K rtb(q]Aճ62T妩WM:wn*^ie#rP=qƕA$UmPF \ z(6t,6Bv C!Vm=Wm(P DjE>) 1I%JMQ"n%FQrw~=oS"QK ZҐ,ao$9B\(,].!Cd%x].Ɵu]\pue[[v@U& ^?ꨓ㷺mjB:p?3r vtqzm>AS-e΢P/@Cy~CDǍ !7ÓG*K', K0>|g<GqZh%žybNLs9 [>Cu'1+@I"Al/M+_Oa)`X z#,fn %OR"4$My<m\*hP\ܜ 7qvj񸴓{&C܉rmJ4L @\?*gqvPPg3v'Hey^1dDJzV>X+6\*W(|^wPFPy@gHnW9 YQҞ b;#S%X~v H pk }*K@72\HJ ?`gq&oQO'ѐ.YZq\nJP,JR_#VjvPuTOW'9&ҫrM P1\I(E-P?9쾫7]{ӓ7NJe(T'Tr ~>+9Mߧ?M\OgR8-9ARu 'P~QE,BhZȾm4V̘uk% S3fC::'\?P~24mVKKz:g8egmP s>e.ܘGh l9L %;ݸd{)T6UD8TB Zi-?q, xj࿜f2Mb+&ƙ^Ei^Å:/>’><֟ͼD%- O6NjRs]Ӹaa/ԅeUO*h:8Tm >O5ީ7628f!^SYՋU $anq~_M (OgXjRŤ^v<~XBLSzpz1'h0šF!}Dk"N6۔vy[R/w(endstream endobj 42 0 obj 2120 endobj 40 0 obj << /Type /Page /Contents 41 0 R /Resources 39 0 R /MediaBox [0 0 595.273 841.887] /Parent 43 0 R >> endobj 39 0 obj << /Font << /F15 8 0 R /F35 7 0 R /F38 20 0 R /F30 22 0 R /F37 18 0 R /F29 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 46 0 obj << /Length 47 0 R /Filter /FlateDecode >> stream x˒۸#U5zMT.^8#"gg> 4$w8q@l6@e#w9iٝe+7?>HL=X,gޘ릲~hʈj4w˂t ݗ[u _nx93fޫ~ k׺;p6mf3ޭQRBi.̮DΥ)HQʢ}rSDUv͡W=w.24DU@ bZ VB3[ydG]9%Pg=YafI&V4Pz/`H<9mg 8͘W6Ȏj&a!boh^qe4͈ǚƶ%$!^ p#q3%E tܣ:ޝuc˂mUL-_V wjaV 9p:V#gT~jmK'z"FIO"™uDc~enN>"V_þ;8!8p$vW FW(G҄qzS{Acd@ȩ"e ÑK23p DGpج-sbG/] n$?}츤95Ɨ9xy|Ƃ.Y)CʑbŦ<=ݩ*'<S;>e5Mdm(@F$3 TIYĝ9~PIȹaU[L G1npNAR}Uf\ncgYS0fB\>Ϭ> ڟޚBS-Bn j;!E|X;x'hA4&?]+DTtR!^̜YofNi0?`t-X6ôU;.ry\a!~"<" {evR6 #ؔS$폜 l,]~Ov ,.PT9'ʙS)'膞,E/kM>39Vui%' eC|>[O5ſ8*fz:^lDHnH$$7d0;h* E.Fz,J8e73:`3#AXT3K DT9B/,p®X u'Os 25K>&EɆ(8v `D7:qfQiB}R*ɼ4!T y\Cs+Ue<;yD J7pr<bMu[=jIi3)#3z;ir+?.E+ĤnXLܤ<Xendstream endobj 47 0 obj 2936 endobj 45 0 obj << /Type /Page /Contents 46 0 R /Resources 44 0 R /MediaBox [0 0 595.273 841.887] /Parent 43 0 R >> endobj 44 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F38 20 0 R /F28 7 0 R /F35 7 0 R /F36 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 50 0 obj << /Length 51 0 R /Filter /FlateDecode >> stream xZݏ۸_\y⧤6@^Q a(2jK[IN;!eI}h$(j8? oRoTL+yRTw?ܿ7+ U$n>C[?e#, $LJdeaΤfӪm?[ ojOUøÊ %̈́u)%^=1"] GG葶ܶ n# 17M+V7k.A{43#;E1a %ϯU0~-Q-?{lLG桳ǘf5Q_tAx.Oi_s %j8?ؘ4U*%] +2}jLsͼ /Z=k_Jp5rDB;cTg@EB4'd϶Sf6CCtY: Yv֟hs<DZpCmz/,PM/B U'iVq/ rF£|8U9X~ǖt(.o|%BF؋V;z&)w-]3Cʲ~#\̋wΦbi>ZIG)\9xܹ?\%SZ%1Y:6@d'i!βBR4U`?:R"H e5S=v"EĐ ,Y3, wIJF$`'."D%cF;(reX.tziQՃΉ?{ Iq`_"rL*&hGb![Ӵ1ŐS\ Tc?kM>I(61r)g?ϓSsӫiu&6)?0vDF^02R1k3 /$8 /p,1o2Lk2t<I^^DgTggqFiRTʗ0ZV Mg' rW\TFtѫ"m3vCg7JEV)BZ|}B:` 81+7iKdAJMOO/n=4aRp$? G O'oEʩLW&-'/uﰞnL_ LnС,3zK%[:R}__vG@z01[ֳL'׀ۮ/y nNd ݏ6:F)/*A)0twvHBo]ۓmY"9$;K2.B` aKA*1D@!n #J40 fpՃc:B5ZrQ@KO2|v -W!xx?#c,1):;OhtO} + 'u3NOlc v6"T 7Mά؟|[{PZbz9Kݳ7TӅUtx-Djr"oprC(z9 vmcPp F1>2iO/njmXV vb9/aĤaԳ P Q;TԅN>C{ D۔Ogn]@e̼!?-:\{p!?r# ʻJ7 -aO endstream endobj 51 0 obj 2509 endobj 49 0 obj << /Type /Page /Contents 50 0 R /Resources 48 0 R /MediaBox [0 0 595.273 841.887] /Parent 43 0 R >> endobj 48 0 obj << /Font << /F15 8 0 R /F35 7 0 R /F36 17 0 R /F29 21 0 R /F37 18 0 R /F30 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 54 0 obj << /Length 55 0 R /Filter /FlateDecode >> stream xڭrK~aJT>XKż,8gbRLb}:Μ.̋e0lw;SR8۫ח?-,MkDПu&Wup_qgSSGYR竡8{lwL6CB9/CSP mXNK0-"էsW>pBGۤjoێO/T"aFfUV^xWdXx›ȞO*pJв^ @lpn"$aӴ͚0'p䂛cbk=Ez]rv!~z5b8zK,hG i-h%>.Hs}ɪaqUq,r„s>8D6ӵ`SU[>U{cC ,qүqڬ>4SjrP7'kpH5?;t*ΰ7 4q\9ý_Όg p`/m- nGQ%$ktxm%T.h|誾 Ey4I-҃1gkS%O nT*aFhN4P@䘪-y#3X)!蕿 ) vw}atէs }=Pl36&E 9ޗq)AȻ[;ǼvNl_,H"9qU-zϯY{Ğ 욓f@Ք[Bag7)Cyh?J _:_t l=Z92Ř6)ϡCAQ+J-$X0R@k2G`^ n‚2޿W . c/?=7LېY[nFmBde5-t1W)p^Qs̕RqWs)`I#NܠμufXn6Ș6LB+=e*M.j|,Ry> endobj 52 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F36 17 0 R /F30 22 0 R /F35 7 0 R /F22 56 0 R >> /ProcSet [ /PDF /Text ] >> endobj 59 0 obj << /Length 60 0 R /Filter /FlateDecode >> stream xڽYKo! EC5\Av1Ac hԑ=A{X$E 0`Q$EV2cg9LUge^gû?_#XVYuvqm^46QdV,-yqy=M\b[Vwʹ\%5=FO3ny_[͖m0ljf޵~Y$.Ax҂VM?2"qiP˫o޾mC?ڏ깶3/bn+yKKP*R\Vfn8)ఌ]e~8Z)I/V?YmPV‡/*.c,F`Bb?LxKx UR]8%K1i]1陖z[.eXSԤ09^ `9#WǹozԪa}JŧZ&Gz#e*s 4g ꟭nX"+c,7q.2i:Lc9-~CqV!ڞu,9FAi%t3￴S,Xډ瑥TrSMǗ"1"ͼD)9Jq4JyB0x)|/K|aIM N0OB_J$A ̳lL4--F1Md"4!4}46Y{4FL912-3eqۥ aҼP/Bg \Au4 ||PI84[V~ .wtf8<"U_0{oI/5q t!|`8h`N]R_7y.}%0%C;m.W s"xز8 yȅIv OG&JLfofDo(a^쒠zhh㊗UreQO`20q- صv s$DmR)^Dωbהtawݵv`Eȗ/ A[D1M&yR= ]MÒu>ԖBjU9hijisnūユX"Mql2)x!Mj/a~(n5 .):l>KGY.7x|#t9Aᦅݍ ãe\*So?oXQӼ`}O dsK%&EgMQa*P/2CC}l*p@TjeVUU <*?%c. \V~U>/?S"dTꕑ8ꔟ0"90akwnOѠ5a{&o8.F 41]Ŋaؐ<.쉶IS:O,(-%7aɈ9h@џ26Tߤ|{@AъB5z7C-z[\Z7ޚ@q47]} ޝ!Z .27E4q5To5݉Mwni:XG*vkhuR}>`Ie9+PZ_G!n@E^Iī{) %W'X3Phz~^P_ B}9-١YgP/c0Td=^'o{{^;x!x WA|/=k}gee! S( DȢX,C˴݁۲#\ZN/եJj.gⱻi&š;E"z%=Tng:7UtTтUI}쵂T9yD?+\͗:X 5j<t>*%{+—|N/Zdn1M/Nb%ZggKkk֒@ nIS{J!h42:ԲMcZ5<+|$rIk3RZWs>W-WE8p?{G@Q숻lYs3];Y-?ykGK Z `Q 0H>{,};Xӊb7zśHUs#,^N5URDi\a$E<|(S(Ube@BbK]-o"SJD SR=8f-V*%*ET-'i1Mendstream endobj 60 0 obj 2516 endobj 58 0 obj << /Type /Page /Contents 59 0 R /Resources 57 0 R /MediaBox [0 0 595.273 841.887] /Parent 43 0 R >> endobj 57 0 obj << /Font << /F15 8 0 R /F30 22 0 R /F37 18 0 R /F36 17 0 R /F29 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 63 0 obj << /Length 64 0 R /Filter /FlateDecode >> stream xYKo8WsYy)Q18 0 [m :߷En,]0%*ֻb3Ȓq[`gݫׯ~ ̙m|̄êjU[8U~j|i@Evې^ x/Lha UCM+(}w50?*<=ST^Y&Hf]:XCy65zG]?4lѦeAWZ*XI$<)$%4_~WM͚/<'t6U8:2Zח9+ )yR*몝unϱ=&kۉ<5Cݢ EA]зŗJywUʫkuB AqCSo^`91!G->aF x߹0Cm&4Sԏ&֖thɌ{7 ( .ܠq)muIo&B908\`a=Hːr=MWY6Xۮjl J@[JSwHq!E=P\nTb\JXRU>B5׮.U)k3O>guT"vN(C~2ޛ9𥺿o琰Д "+nhfymjh!i&_d3Uƅ'}]#KB?@ 1%SE8_D%e> endobj 61 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F35 7 0 R /F36 17 0 R /F30 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 67 0 obj << /Length 68 0 R /Filter /FlateDecode >> stream xڵZKﯘړƵ&ėl])ss\)řa,Q2IקJfI ģkNOY ]i"huWݷ?H{'ED{x_VRQHYz=<`oe6RaazvL(ڍc>Gvzn?ݫj\*X,4> t~  7难 ?06U|a6J7kHpE)Z²>>IFe@+*ziM=\=WP }s蛡HrScKo~lYƭ~пw䪫 {f,7c|=4)@|E5*o7\^nm6]YPƉy ~ KR N!T`Z%[MPWCCJaϓ}ݲv|΍]˹جj3նݾo6z{m_ .|8]WignJ_& W0V_:$rvne,_>V޻jkߏ6jiڵ}Xoכ-TVdeF[7׎MUǁP_ƚzDžY}n5* Դ^ұ+I*6d^^+Q.`9 .bRÈg@!ݰf㚁6XaɬSxq6|v3F`z -4gK ;ma|a;&yiahب88?\L+<4/וTE9B#23-BK8HŒ'tuWFHqhR,oڼ6`sM}[0KRRE]"`7\τxDׇ~o?,=mr`(~jOOQld|D~sr 47O!j%̂.PQ;&k1mf -d$_F1[ܧ{ Z؊(L8z>Q߇i,-ƙ,H%,BruN;vYK wsCpR |{c>bMN S;aۀti> O6y;qDZ'[9H;d zP-! h528.!)I-I`y8b%Mh D?,#,Jޔ\3[[ˠ a͂ 3 p 1'& D>c9k Oi:DhH-g+:w+ 0Gy@>'W9T$褫U3vˡq`lgܧb HHoҿA.$_PcӞ8p@O91 ń/pmsEҿB_RsIu*jEYʜoDAC&(>ZfS izB` >'BH?iٞ(%e|gSq9;yOT7wNJ'ՐFa2Hk;2קֆ>cWS4*mr`5r_<1n<ɬBJ.T [2|݉)#41i;] "ZP7fӃ*lj)@KS; 6|N[~ّ8V8>"?$y6L͓%Pm7Us#2<j-L`r21Fxm-dمgݟz5|rgkU} }aa WO1:6]vS@U%M-өK5\˯7@f˷ԝf:5PqWSkE0:9k*|jc=t+F)txDf&,$43,GnVۖL2O-Sxdm Ż_Sh2qG(IѨ#^_LN5?@n ?k5;G0Jl-*S)߾9L!dK`n<_ ~2Aj<<V&7Z]UXYe)u}P6$!~[xc(zB33ƇjeF*r6^{7Bd|7x'Owr*:S<~Su>h#0yx KS6h},bTFbF4)w4Jb;p 8>);ÇIq]j!QxuC\ז1Ф-HS$н\tʦ5Qe l̥ᑹ<4-MWPi~i߮?粋E7} ΦQ|^uHm 9^ Ri_%O4@t sHy uﵐ5bx1A[ X&@oPt$, rtp&8֋h=#7]f{SEgE /1S2=g$}]ue) g" daY+Gdc5'¨+΁ . 6Ahw/M_CsCVt 6_^Wa^mx>~Zvpg,skO.}Ŝqr1d]w9nJk~8w#$zzk0]wkS +g?ts @8yIG;`~7o)w_+i] oY*n!@", mW-bF ]7PxST&D@c]Azg-ҵAX8셽ɣLi@rU]DȦu tÆGPm2w{x_4endstream endobj 68 0 obj 3159 endobj 66 0 obj << /Type /Page /Contents 67 0 R /Resources 65 0 R /MediaBox [0 0 595.273 841.887] /Parent 69 0 R >> endobj 65 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F38 20 0 R /F36 17 0 R /F35 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 72 0 obj << /Length 73 0 R /Filter /FlateDecode >> stream xڽYKsܸAGʥ ^{:vũ$(+Ei( wGBr,;> 4@3՛L^0J,w^zkˏy^dqSh.6BZUoap] %7U_=co*rrU_t)hîC?͐1|lQru{?zdI r]Q8<59n^)NK¹0A$>cHˍeQ p{$Mhz @{)d \}й>ݶ$G0pNęd9:U6{4K voF6Ȩ%V{۱Z@0FnqEw,(noƝq7GQk_c58aQ[vwp'nٔ.F妄:Ǹ$Vyǘ!r 浝x&h37# Sx7U皗kcU!>S7DYR9@W+9J4K@@Q=s7x\TX8H%cš0| 6a =ץ@a%j7 |Q)Ms+ʥ)!nv vͭ[ۡm5x6t@JH9 k4JvԺv"wl]e$C]S ?֏A-<:ai *fX#,ArRw, I T-WK2H'h}^~hr\7ӈLϝYP`r~j<`P <>BhpJ֠+\jkboo 4bNĘqeq=6Wo{޼uc 2\hG};_ʷC=S^lp@I݂0hE#0؀,LzȀiAI akCǐ:" !6#MJA0pͿAPTq !H yB)턚bQiQ椫JivY1+"dv74E9ek[F~  QJA('Sls&Tȹ]P66trh85IY"#n[aIfǍfs^-Fb-d@\p• ߘM~w4q F0e4 mk̍\Pga,8o0LK6`|I}[ T. DAc&h1'6 ?~r$ DFKۡ3tM̛B4%ʹē^gP҉g{ R`tjsE( zMFVL k~f<f)/,h6y71_X 6*qh5~ Ǿo4>lnMz.*vrd,%\>͘8Xt?bJp/N6֌ b?gZ\5@7k_Pc&(-ٰz>qOYAsͷzuk\|.%% KgVP骯>S缒[I˯_'>; #ޏL,II5:%eh+%%I )B.Ŕ w/pW =;KGzA ?,(%ǫwׯQendstream endobj 73 0 obj 2089 endobj 71 0 obj << /Type /Page /Contents 72 0 R /Resources 70 0 R /MediaBox [0 0 595.273 841.887] /Parent 69 0 R >> endobj 70 0 obj << /Font << /F15 8 0 R /F30 22 0 R /F37 18 0 R /F38 20 0 R /F19 9 0 R /F29 21 0 R /F22 56 0 R >> /ProcSet [ /PDF /Text ] >> endobj 76 0 obj << /Length 77 0 R /Filter /FlateDecode >> stream xڕX[o6~["fx-CYu+eOm(m %Oٯ!)S6ݴ"yx(1 E$|ڽxs۵Yz[~X|w"&Dd,],EL$6+|3Y2& +/2Q8*'dJ|3\,z_,y)\X [;U{ OumjK0%NHgva1 ]u?4ڪfe5VsVK2Zh#wthL 2ۜɬK/x+| ^R I (3|x8 [;j=9O9=sZ&2f/RBH<$ ҘP 4s* Bi23r5:"h0 ,AT{)Z} 9tLF)?ܗO0x7R`<Z4ص*y;UL 3ZS *x^TrAC8D%DLs1OĤ~hs|Viwiupvpނ.Uk hט=C#bg648u ͸VVԥr+#K9OS?ɢ֓7c2D$.hƞ4*aێ--^1Pa"nL'>iCb9ag~OFA]ߛSpvXյUa(H]k~Qpm"k{C?^;zMzlV$)X;,Ii6ٸ)v5P嶰ڴ>g4Y'-I]XVSB04 T0ND*k>N62Yp0v Z@49_ؾ1 hh-YʄdGdUfו;lCkO۪kهz|LHoxn~0ǀLLPLm[oKMk&QS*!3e_?TQ+YŰ6nC"ӱ5qZ* B)JEUo ¬f<6;G FIv]T|P@K: ,EW4+ºրG aq~B^AR߬@6Pm/ր)+!:"d&o9͊>n{:l^g&`gFdWS _8R&0nF҉+MjEFKNHwf/9LYpl@>^>`)m6?r&K]ːu)6t~$m}}<;OSN¹0e@]{)endstream endobj 77 0 obj 1928 endobj 75 0 obj << /Type /Page /Contents 76 0 R /Resources 74 0 R /MediaBox [0 0 595.273 841.887] /Parent 69 0 R >> endobj 74 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F16 19 0 R /F38 20 0 R /F30 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 80 0 obj << /Length 81 0 R /Filter /FlateDecode >> stream xڭXmo~'IH9 AP/ WZr$ȏ gHIr젅Kp*?y*#\i.VW޼zNW2&6W7#ٿdt>[%I*2^t*,uUy٥* f;EJi{;ưtiim?8:w4afQ72x(G">kfii8RQ #e+Q"Wy' o'ٜ}qtg@PTCw:hKvsa-S[75ѕΠ"J"*&zaRA0)Hy _Rn 8 z-$ZWmJS< |Zd r!_Mȇc!~\:`,6}!"_4Y-R!ϠnBC!#,vFZ%ֻMFK :̙s)!Z2zs|^/]Ad:l\(>s^Ty._E0&*;1:"YcF(@1\ka\nscO/mn[:0NK&HG-S RHBsL)] 2di& xj#Z͢ڧ5ͬ7,0Kz@qiE`$rN*2 qqРl}6d6.+(PzA ˖8em$!Sܡ ʾK3 Him@Lz_/N= /M(nnŇi |O(Veߗ흥鮧 NnC3oЖKM,(~QIPթDؗhޝ |󟁖7qrwrep(q"&z)tycq[u`Ƕ IEځ}3'PP>nT/J  TW V]9|Uw`~P"dA@mSˋM W~S -) WxK=n< ~`aCsHLJf ^H )k+50Ӷ&ʷ3ψ*!;qXˎ]jsAw㏠- >_D?E0SX6Ǐx@?K|FFSw>MZ[}Ba<8Xh|x7+̟bUg;&?p1rt`l; LUKW:Grt1B)ֽU?j#`qcar֯`[j RoZ"&R.;Սk/? 5(+pz0ΌcuTk`y+ 76LN|pf .%e$S[? eIю!SEYUj`VH83k%{4XT1Wn{J< (9e'ATf |={`5?m߃<$\_z:/λ+΃zLT!B9ZH$^uvZm@IHOhCMs9'0;O, 6< pSVkC#X4:)-) !z˕nčS,:jG00"ƴ #t.MAu^x-4fi2"Yczs7bۘ)|ƩN}Oqvђŏ> yxendstream endobj 81 0 obj 2103 endobj 79 0 obj << /Type /Page /Contents 80 0 R /Resources 78 0 R /MediaBox [0 0 595.273 841.887] /Parent 69 0 R >> endobj 78 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F38 20 0 R /F35 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 84 0 obj << /Length 85 0 R /Filter /FlateDecode >> stream xڭYQ~EbgF$EJpE58hmVϖ I͡ Ewp8fq;%rN+r)w~OXwk+{ʮ*n\It+TR\;Ĭd:{ݎ|/Y޵5=P:䐲]LG}9{LijS7mbv5Kk(7 aHY8+u6vt-'pT4xơ 1(-fpHm*!:a cg~VC^O%P}/az[jVKuHhm +ۑI`14ضp4\$coa+)uӶa1#COE6i9g X&&D;{7_#DX ˶Z,:?YfpH&vpNi)Y(~W@fA*VTn4윖e5|%>h]tn{ 1J ~4VB͎j`g!~^{NӢ==CۡgutQ;w"l31j3n4ZsS=7ՊZ4sٳ޸Yۢ_Mn+Px&֥}zr/9?(atзb((c3L'89EKp8X09ЍQ9.TI7Qd 1hAu!f2#IܰF .L)7k6T,K?h ˴{,@KU%\3>vy KEnт7!q|\xGmf7=**M .fo˒mhc))Jn X8U7¶H9>fY>>;=gvy̟\$ԑYZU'MYʐ秐v'z!@%Zc;Ur7dĂ!X OCWhM̡ח++nr<]%BZ<)VKGM #}Q{Ж3i.0R[w?a[ ᓧi2:>4{v {{::%Xfi!%S't8UFA2=D虯}6\XR)fM}&v.ddv"Us/K =r);u.,cn&+!˸ ({TBeJTǜg%\&R.|{όROaKr?^ <5cdE|]Ϡ|`Ywڀ/Ǘb"7WD1 5m[QVʓp}Vz=rI`mV_:&Fiĉ .&k> endobj 82 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F36 17 0 R /F30 22 0 R /F29 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 88 0 obj << /Length 89 0 R /Filter /FlateDecode >> stream xڝYݏ۸K}?%M^4{Ch^ $g/}g8,һ{ϙof~7%7ZXVRlov%݇^0hfkKqԬ6:|]Zk;t9WbmP^qV)~םV.>4Ǧ;u6-CZnX1E?S\ >|pGxO0ݬ@k.&5{?qֆ;mL/cuT˧یJ1Ҵ)CQQJp=ZТޙvp"/f{v8oHښ}[7>.ٺGkleFsP6)aCkB9*Ǝ1.}<.n~-781@ عZKK}i;Тh44.=U)93ZV ⴝ?ucԣ q[q[/ @7 ^{t*f5i^3ƽk -:~]öo6Azs c/a؟یɔeIVE &RfB񅉾4۞oQ .ܝ@JvU)G-Dzi5۴q/(\銷0ٵy_KN$t]S,jn.w :0X >FѶijhkTG7 *jXgpq(_Ye@i fTМAW$[/:"N!~&1ygeXU/~( Hy*x׹ v }7M4л^Osb)j8 I$p!G (8[Y_u w Ik*ǣ(4>&;4:"{EZ6jdh2?a4BWOb 8Ci?'QϧETr CumZ07uI>T iAe~*WZAl)٠ 9f}q>mVgn5T<xx\?avBt33j81`㐖.a6y H [Rjry+8OxorsF9fI!RsJ{7 Jџvr^4'Xpti= OKJ@d>h|'jLHe>aNQJe-A 5SZ,kK€`:D5x .GVV)9 i˹rD<{i$ ݑ#\hoyޚV5^kspUbl c U7)+Bi̒Y0۔_r(I"ii#w) =ybnri ni[l(0T=ߙEQޜ0|g9\^ TM%Xtso1R@w!ס% FZ9dQ,3pG=1 +w޺x[ ݹ'ZNF)<7mId~Z6ds&f ?JV8c=F!qc4n5O(2G;7:J*Fl+rC^$ԗ>x}=[OOh]ɪ4U֗Tof"U}GqufFڇښٵӭQeB6_^C1AѪG)RZ&h STaq ,|݆oʹP j]r%I#`Uw6>OdO˭`7oDDendstream endobj 89 0 obj 2552 endobj 87 0 obj << /Type /Page /Contents 88 0 R /Resources 86 0 R /MediaBox [0 0 595.273 841.887] /Parent 69 0 R >> endobj 86 0 obj << /Font << /F15 8 0 R /F16 19 0 R /F37 18 0 R /F28 7 0 R /F41 90 0 R /F35 7 0 R /F36 17 0 R /F30 22 0 R >> /ProcSet [ /PDF /Text ] >> endobj 93 0 obj << /Length 94 0 R /Filter /FlateDecode >> stream xڽXK6ϯh$#>%,Iӷ$D%$#>UdQL#>RWw%ˊ.9+}xw\YywK_^~7IxY5LlEԬ0ڭTLR΅J~>O~TdL~R)Un؉2yO8%z8I~f ivԷƋz܉"H:O #XLfձk. *LB`f:SnaZNY"g"w)LҭeivȓN2gcM|G?-㪳dv>Ѳ/;K6N0]ɯX$-ɛAM6v_9j0J濡fmv_p TMrle?c5#Ƹ7H%%m)*"jJjH\F}[w(KUMtrA*% gn/E-Bn 1U+oK6݂#cp?u*b3uN1sih*Bg0~|0DP,%(s޵G7|EVc g6%+%]z~ꓯnI bTʂIhYQq!q"njB9B,RiX! N3T)ގLl֞ҮzluA{H~WG{t^:wklkώ /u%!X>y%of.>yGy:G쯲u7L \T;Rh/[ՉR5.9VZlh"j}]78A'Ʒzd eqz1쇴Pύ}*3|G|+! aBPbd"ZZ~33cQ5=ݜ3J՜7Z<>EQ(:x\e%H肂lry# (/$ҥA 8$L =MBpy,"ד'bS2/&8 'U3xpRxj6SڃDQZ3CxLIWB0Kom5%\rC]k;2h09I4u55EsP;;-C[-$Ϊ9& bU#5K7Kϓxۅ\`b@q&YMrTX筝(ak0c?V~痵F]{&$eN,FeE}uܫ?ůendstream endobj 94 0 obj 1923 endobj 92 0 obj << /Type /Page /Contents 93 0 R /Resources 91 0 R /MediaBox [0 0 595.273 841.887] /Parent 95 0 R >> endobj 91 0 obj << /Font << /F15 8 0 R /F35 7 0 R /F37 18 0 R /F36 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 98 0 obj << /Length 99 0 R /Filter /FlateDecode >> stream xڭWKs6Whz [gN2i遦` T Ȏ}v,$~ow*WЬh.kXu߮.^LzuuD6dX{ǫ9e"%k2H*&9BeW[C8T6%j]o7W+ %]7ٽ'9Xr|4l̴ΥBg:W\fmUhъUuKfB6sD (lVU3gUuv?Mvg7<`#}ۃw7$qЍӡvHp"*&t 1T:X{=Hќo`[>*{C9H!if?vͯ1 yff(`g+9+`D`duf*qY8`\v a1:ZaOdvBra`MDÚxĀBdxU(}j $Ob^4H Ϸ Nꍣd~)U= 0̙a9;*&_"3u97%SBR(Щ-+Xxfi;~-P8n0 B6"oA"DksY3aܘz Y)(4鷭Y3tzp6SPB`Pr:/?Mn"I7oԫa,ȳy-J)sdn$8$U"[u EJJU"r*$tXDB(B%rϩ{pp\" %Dơ2ǯ{ncMpAżlLhVZ{")c_{9*EI=d\Xw j!Jtroɺ|L\Y Y0ɂ,% K𢥯bJ>3=e<d yLt iwRqOjV!x -6񆓗s(;KÄl m15>ٱnus%$V!v)0}HObܷEaU4dq)!UIyxiL~Tp.#?F l-Q]F53:C`U:gpNZ״~,Ĭ[^uX~Z >4 @ؒ޽ؿbC7_b84aÿ9L N}O.)^eSk޺qNH is)igWHZ>JJ~=ڍo᮲ͣ9f! Wz~)]⅃_~vc & Dd}z}uGꉺ;:qztih]B":擀uÚ0Yg;ND=>c:Œ7JԧOLP&oko)x3}o@C\ *kK]Gj_\^]|ߚ:endstream endobj 99 0 obj 1516 endobj 97 0 obj << /Type /Page /Contents 98 0 R /Resources 96 0 R /MediaBox [0 0 595.273 841.887] /Parent 95 0 R >> endobj 96 0 obj << /Font << /F15 8 0 R /F35 7 0 R /F42 90 0 R /F37 18 0 R /F36 17 0 R /F28 7 0 R /F41 90 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 103 0 R /Filter /FlateDecode >> stream xWMo6W-Zˈ{i@PpC[&+m$]gCʒ;A€Mc/r -,K(t⧫^.~LW~'JQ4FwnBgqvߚ?GɌ>ZLlVµhĤu6܆_?`箻{X:c˕1f=/F<ѾKe9j`._d{لS&JŤ2!kxt?;8%t ܾ/alUv%sڞjH@a\p+b8} լ6Gp Z! GVʬA|=.vvK;45NMMWCd?nSqX%lLU _-K ]S j(qf߈>fmUҜF/^]e90@&P`$)SHU1 D>CR9k SRB pC@W^e0Ttꢍ+_yK A[@ڴ{,SIK^ñkzB9fǮHƫ;nc̤)ތgD iPbU(9㦫\PJe'.`L\$ %3rsx8dt7ya|N%)ΜSd\t</*/¾K2=o', Zd swN:Ϯ?T+H|nomC'K3D>}"Or̹%yLS}>yzO1kôP/Fˊk \ȣT gZ9, еP_te[W9%rņXP A yj qnPE)-S5ktk|}f V2W!> PxDRU`Ú"oT xEڔbg|ms&^6h^Z11 #ȿ+ŷYjxd, Vg3b\]|2endstream endobj 103 0 obj 1264 endobj 101 0 obj << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [0 0 595.273 841.887] /Parent 95 0 R >> endobj 100 0 obj << /Font << /F15 8 0 R /F37 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 106 0 obj << /Length 107 0 R /Filter /FlateDecode >> stream xڕX[o6~02Y"j=4m"ӱ[(91^lɦ ‹s?~BI tLIy~'MhJ̗v|GOo>q98ExFTٕz:XT^[t{ן0\ee3Id J+)SIi:;Yү|(&Fot3e2˾n7.][-UNg mpJz7_/pX$}5B75Y!HFsJfOQ9P7%$/Ɍr~FG4s KÚ̯9G"3Jx!꘸5 ]jy(фp K.{}[7]_6e@J?46˲XtnHT@[$ 8 8H[%IǔtLʼn춅:-ܶ;Lj X A<de;(MdJ2hpnXFt&R-,Ov7W `Û6vNPKSǯ,tNA5ĉ;Cr/ ;18Z9 GbqmׯGbN d݂3lMk^5,O]+ gzGxttB(ն[k=;- <Q[ӂ C [wM`S9MYw:IBChLk"Ep#i+u)N$} ,EPSMN՝-]@VPHK-6ս[pbxiu~i_Y|uyg@0aylB/c eED U@ e٘ؓ$8oJzxLH0p 4ss> Ҵ'5jǯ^NO,iHA5w"h ߯砱o\#]6ډv}ߌv֜GY u\@\+,%L S)9qb%Vjv WGɊDTJ k/ RjXэ@lYiex86Dendstream endobj 107 0 obj 1705 endobj 105 0 obj << /Type /Page /Contents 106 0 R /Resources 104 0 R /MediaBox [0 0 595.273 841.887] /Parent 95 0 R >> endobj 104 0 obj << /Font << /F15 8 0 R /F37 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 110 0 obj << /Length 111 0 R /Filter /FlateDecode >> stream xڵXێܸ}w~bVf#/]p vF͞V̸쿧nTKݚ 0M"Xu.?u<.07<7U|0=~ r7uvlhl[ SQa$lJi|W5lMm6xj`F]qU1L@И?ڇE r{%9V@T2KC7fz`KLC'Yfr۹oп8gBEݹ-;B\-A;F #uf(^ 4i ~x`r̐KSUyc叇&?+c398أu^G!Nbe!4ҥ[KݵGnn=9;+՗˛$y _'|Ԕ@:l=:K薈1rFo? Nu1`Ţd:  luuufy"ybo-(1MX"S'U%˻' ͬ,iG> Syz'L!QP<YYx2Rxړ[w|fv*oUz9;^!Kd}I<_F&Cuh:7HSXIRm䁃t0`Ag?8Uǔ9Rի=]7Abk _9XzY~|It>~N?3Cc#awAo\``sE"/J_T:|fՐa̰۵R $9]D^: z|\ry.}H0 $Q05rGyꡪAR)ņ;K(duM@tFe#[Y64+vXM4A6ȄI&q}O3 tIRhpT^Vam1a:xհND%WswYsX&E8ś@t\w˙ h>!fpD=g8$gm 7jF9H17 LAh>c;P62CW_Sendstream endobj 111 0 obj 2494 endobj 109 0 obj << /Type /Page /Contents 110 0 R /Resources 108 0 R /MediaBox [0 0 595.273 841.887] /Parent 95 0 R >> endobj 108 0 obj << /Font << /F15 8 0 R /F28 7 0 R /F35 7 0 R /F37 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 114 0 obj << /Length 115 0 R /Filter /FlateDecode >> stream xڕX[oܸ~ϯ8) y<ᕩ'x%sR3|&ىG3"jier=q0?s,ྪ11ngc[b>2@ :L*N>e=_Mc6\͎M;Gc]c7!$=r;zxeVڎbeu@RTXCyQۀpQ ? +r(XdqS4ym02fyzL_?|B̋/KS3-c"rVar$Tn̔SZO/19^xk&gE#%E J9>rjUǯ,~? o[s:Z~K>j?qנ]s\9Jt[(k׏q>=n>fTSp6Uק?8U:$@^ٚ2M/3(ӡzC[@> endobj 112 0 obj << /Font << /F15 8 0 R /F37 18 0 R /F35 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 118 0 obj << /Length 119 0 R /Filter /FlateDecode >> stream xڍYKsH+|9-TRsc` ؀ XV٭E-5z`7_%2Cꑕ/3*?ue"*3YX$/*s{z[~ bs/&\i8$v 4LwJ:xS';쯓$8\Us{w=٦p*pq^U6  O;0~<ð9W>5Xots+ԚK8~L* .H-PPw&8Σ펼-Lv&ƞWxU?ښؾ wienHSadv "10uؤ5!+$! T{dRmXjPrRtk{߿MJb͘X5Ց$6K 2pʃ"0ejXxGj8$sQ- f"%EG mY3]+V@Nݰyh;bȉάW/}[-F#\;[) tŲ)_z'ؓi^氁Ƅ*WjrK& oִY]$,HאӸnwa =9 GT^iE[)h5`BW D9eAlxX'o7); D7TPd2^kAȀmٱ* H]A&m;П6 2A76;W"RtбۡjJKV29<>8u$p{p(Ͳ_Ȅ6GL={\:;8@i/4jxU@@*Qv t[HgVA7x aU X6J8GdlB _ֻ؉V tvd@t m9O5$ԹqKBYEN9BUz2wDudG%,S&US"q ?(D60q AE-P-s0WKQ'D{|E(Z售B3nԛ'mS!Gƙ $%_tqU$ֿT|ϡ|vX-<ԅ: ,*"ݔtI c_ ,1GDK@RNȤ TϧApwλ|>%Dc /%%A+.ЏnVJ{:ORLs Rpw.,9AX42xst^vdo>̠ssbI$`FuS{yMU<ڍܒH^<#"/0I[<@JX3$1-0TSS wnV3` C"򆱜!8wb慑 )+B:*4"6@d{Giy}8gҚK|?%ρrwsDqK7!A@M\>wp#gcl]*ETzHCl( x G_Pą $z+ߪٷ]E9q|'(YGu\7gO=JaV* v~߹Z-`{#D?Èg&m3[ݔ wXԴ:K>tE$&%}?xwendstream endobj 119 0 obj 2925 endobj 117 0 obj << /Type /Page /Contents 118 0 R /Resources 116 0 R /MediaBox [0 0 595.273 841.887] /Parent 120 0 R >> endobj 116 0 obj << /Font << /F15 8 0 R /F35 7 0 R /F37 18 0 R /F28 7 0 R /F16 19 0 R /F38 20 0 R /F36 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 123 0 obj << /Length 124 0 R /Filter /FlateDecode >> stream xڅU[o6~ϯ# Dxeo^֢:lR4EtUO~P( XEbOy^իҔVrtWn޼f%r^j'& ,.St)ëD[w5é_+י1<̃d{۸2reҸ]te].to[B+d&LxS0;:=MdXض`&9֭kBN@Y^2!֙j6sBVVg(r6%s9IvGg49دm,ǙhFO [?<0N!5/Ⲭ/5%p-+)p KӹG;ASqG;spKaK9H]q]/*.yAfnmJS^PJS*X?:\P(𿹷"I,z{/aj*Sdkd|ieYK@%+^ MH-t:$0)΁YAynÈ8:N]<${O@cc [ '<ۏO$i,ιӋc!ow䕞:S8 Ӗc dU p!Cp=MbԷEQ$^`E\Qۇ5Vֲ0)bz-ζ,On 6d-2_ ~AOGhY['z,-ΘzAg#qˊSv6X:F)ǡ[\ M Iy|\GV.aw=nxUB Evv{?92Eendstream endobj 124 0 obj 898 endobj 122 0 obj << /Type /Page /Contents 123 0 R /Resources 121 0 R /MediaBox [0 0 595.273 841.887] /Parent 120 0 R >> endobj 121 0 obj << /Font << /F15 8 0 R /F16 19 0 R /F37 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 90 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 125 0 R /BaseFont 131 0 R /FontDescriptor 132 0 R >> endobj 125 0 obj [ 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 515 ] endobj 126 0 obj << /Length 127 0 R /Length1 128 0 R /Length2 129 0 R /Length3 130 0 R >> stream %!PS-AdobeFont-1.1: CMTT12 1.0 %%CreationDate: 1991 Aug 20 16:45:46 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /DVIBAA+CMTT12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 67 /C put dup 97 /a put dup 99 /c put dup 100 /d put dup 105 /i put dup 108 /l put dup 109 /m put dup 111 /o put readonly def /FontBBox{-1 -234 524 695}readonly def /UniqueID 5000833 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou_dV` H [fIs ?Sy_aOg+k%;Y`AXGSp֓Y%&n@C[KBcCE(7@$2`5ձSX/ z)ύ թFrsWa-3"ay}]*z]¶2k,2ƲXg׳1V71y \š)~V+h7|v1j>3~ /%'5 {kz M˿G%+g@|x̅/ER~AX^o*ӳF7/q \X<~Zֿ]ŋ *8)E_oG aUXGv:.~2ڜlT3eU&:0V{]GhsH޹o?SV=9͒SaM8 pHs,omΠK>CРk%th1eh@D/!0eΨ4t`] P(hk4>r\>+rY]Q:N"F5HFx&پub9Tc_RHb Rˬ z4&)oHf ]CcuF,P=p9Qgt }$$D0C̕>mJ.u|:MC<{y:g]= žyE}"+Ⱥی 1"w ?NɈ*gX)P[*~ԁl0 V'sѰg||5ЕQ-E%I><^픖b97^ജ:ݓ0kDW!?|,n f]m9ph>e~9R|ѭCW %>XNKz<ְoTn_,\`/ɒp!{ߣ=>tB>v07v{YTѦRp;Gleu ~& ϐMӶyr]Ц˯z=2Gt] U3t(͸k*Pp;<~AɼN&dPȲZvhۋHZz {YUsMolN>l]`&mNq-KP8BQ3`Od&:UV4)5J0\yPbuX yE1zսA/AtiȔgKT+ b zCނO"b~WD"eȽ1~1Z5lB֬:z^ZIGUjȻUPmk4-t@Zg9Ļ'XWCME0;5&)R7$.t}ot[:sF3ndC,0c ^ٗ({RJ .es-+Y-) +jJ~7lMS24QEœ~EWx7([CF%ߐB<Q2@z uԫ\mZd  ;ebǨ%39&o}w/wT{)Cq҄>`>3`8)WفȔ ܿ_Q?$s]>V6h;KZכ*`'CW X>)a{=#tˊ㯔?+*|b0p7f؃_:m $Ӯ"b S݈ YGvzyJ(I,!6 _]~l2<`72[XWiLU#7=ӥnCe9)}ʱ~NCGtlʌgY}e$]KyKmĶ*ƞHuIF&v>' (x,kk]0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 127 0 obj 3538 endobj 128 0 obj 861 endobj 129 0 obj 2145 endobj 130 0 obj 532 endobj 131 0 obj /DVIBAA+CMTT12 endobj 132 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName 131 0 R /ItalicAngle 0 /StemV 65 /XHeight 431 /FontBBox [ -1 -234 524 695 ] /Flags 4 /CharSet (/C/a/c/d/i/l/m/o) /FontFile 126 0 R >> endobj 56 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 133 0 R /BaseFont 139 0 R /FontDescriptor 140 0 R >> endobj 133 0 obj [ 643 885 806 737 783 873 823 620 708 655 817 682 596 547 470 430 467 533 496 376 612 620 639 522 467 610 544 607 472 576 632 660 694 661 491 632 882 544 389 692 1063 1063 1063 1063 295 295 531 531 531 531 531 531 531 531 531 531 531 531 295 295 826 531 826 531 560 796 801 757 872 779 672 828 873 461 580 896 723 1020 843 806 674 836 800 646 619 719 619 1002 874 616 720 413 413 413 1063 1063 434 564 455 460 547 493 510 506 612 362 430 553 317 940 645 514 535 474 479 491 384 615 517 762 598 525 494 350 400 673 531 295 ] endobj 134 0 obj << /Length 135 0 R /Length1 136 0 R /Length2 137 0 R /Length3 138 0 R >> stream %!PS-AdobeFont-1.1: CMMI8 1.100 %%CreationDate: 1996 Jul 23 07:53:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /HFBAAA+CMMI8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 105 /i put dup 112 /p put dup 113 /q put readonly def /FontBBox{-24 -250 1110 750}readonly def /UniqueID 5087383 def currentdict end currentfile eexec oc;j~EЪ)s̾;.;rTejiK/df5A|{S/ )Sc\^ȟmp+#vL17~k d# ]LeVߐGoo٥\k 9M֨[G(aܘ|RP6n=: b9s2m4{~CD%xSd,&jA x"ПmѬ,+;ŝboB|ծTboI*VDZBJϟ2a{Y0Q(/e@AGƀ挄п]w}ga8.ݲ cS,t^Ujq.or!N]@j Gē75uʑm$KWNWVF2P,KP˻ 62abw;SBֳ{ u&DChNe^L2Ib^ǞY62"CSl5X!okR6D UjT|S{G3:6A| ٺJ 33kLKEnMpٽqlHZoxV xT5WUX$xrޟ*ăiG4F2uHx$]T c_ℚZк\tjDDmIZLdSUz8 X.ډAKN{8C!VrM0ܦtXMnE&J᭦͈%8ݺCROs!Hߪ7)4RU!?n$imC@^B4T(jygU??Glw#$C@EWm @7@j342kjQнhÀ`$~XO~\Z= (rt.C/ޡ7ճW;y- }:v.@u0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 135 0 obj 2951 endobj 136 0 obj 798 endobj 137 0 obj 1621 endobj 138 0 obj 532 endobj 139 0 obj /HFBAAA+CMMI8 endobj 140 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName 139 0 R /ItalicAngle -14 /StemV 78 /XHeight 431 /FontBBox [ -24 -250 1110 750 ] /Flags 4 /CharSet (/i/p/q) /FontFile 134 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 141 0 R /BaseFont 147 0 R /FontDescriptor 148 0 R >> endobj 141 0 obj [ 778 278 778 500 778 500 778 778 778 778 778 778 778 1000 500 500 778 778 778 778 778 778 778 778 778 778 778 778 1000 1000 778 778 1000 1000 500 500 1000 1000 1000 778 1000 1000 611 611 1000 1000 1000 778 275 1000 667 667 889 889 0 0 556 556 667 500 722 722 778 778 611 798 657 527 771 528 719 595 845 545 678 762 690 1201 820 796 696 817 848 606 545 626 613 988 713 668 725 667 667 667 667 667 611 611 444 444 444 444 500 500 389 389 278 500 500 611 500 278 833 750 833 417 667 667 778 778 444 444 444 611 778 778 778 778 ] endobj 142 0 obj << /Length 143 0 R /Length1 144 0 R /Length2 145 0 R /Length3 146 0 R >> stream %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /NBCAAA+CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 15 /bullet put dup 41 /arrowdblright put dup 102 /braceleft put dup 103 /braceright put dup 106 /bar put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec oc;j~EЪ/ ȭX~id}S5Q!gtⵎkJc;rN^X5.Sy +'IqV:r㚉#,# dBZ *R*"7٨y=cLIPsF'f> ba ]fv+QAwdO[x"%Sx~{p҈덡|O BÄ/GL3h+Ng03jU1~akDzq=U}.KY碌 ֻ1?C N2Muh/4Gm&v.d)%\о .u ߸d`]m'Z9Kͅut>2{ m-=B3P= ,N-6}IB;c"nEU+ɶhȭ (TDQdȨ +ʄPSm|e,OO4P7'^Yܘx=7q=41| gz |W^"hraH皆EvC4@EVQe ̧0KxuN'Ib/̢@ȘKbnQIFgw_ڙ>.~f磾2[cBTf7+2un3BQ׉b/}nW MMC#+LD%DiV%Fz*$ɓ9XQk\t4਋B4-  =QFm$ 34Z2},]r-j .4];OBqu-Ÿ65&C15,@!xDMx*EgRɳ*ΓtF/QEY}7 M~ “ h5T".zLs2Tܒ/ \pj{iқee^,+y]SD1N3 L#vLRxiEdS7E^Pw"Ĭh X)b{m>XqB;MVʝM@5]0^Nʘ|4tz,;V9 vD~/=@0 uNh,D2~rjOp0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 143 0 obj 2627 endobj 144 0 obj 862 endobj 145 0 obj 1233 endobj 146 0 obj 532 endobj 147 0 obj /NBCAAA+CMSY10 endobj 148 0 obj << /Ascent 750 /CapHeight 683 /Descent 0 /FontName 147 0 R /ItalicAngle -14 /StemV 85 /XHeight 431 /FontBBox [ -29 -960 1116 775 ] /Flags 4 /CharSet (/bullet/arrowdblright/braceleft/braceright/bar) /FontFile 142 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 149 0 R /BaseFont 155 0 R /FontDescriptor 156 0 R >> endobj 149 0 obj [ 615 833 763 694 742 831 780 583 667 612 772 640 566 518 444 406 438 497 469 354 576 583 603 494 438 570 517 571 437 540 596 626 651 622 466 591 828 517 363 654 1000 1000 1000 1000 278 278 500 500 500 500 500 500 500 500 500 500 500 500 278 278 778 500 778 500 531 750 759 715 828 738 643 786 831 440 555 849 681 970 803 763 642 791 759 613 584 683 583 944 828 581 683 389 389 389 1000 1000 417 529 429 433 520 466 490 477 576 345 412 521 298 878 600 485 503 446 451 469 361 572 485 716 572 490 465 322 384 636 500 278 ] endobj 150 0 obj << /Length 151 0 R /Length1 152 0 R /Length2 153 0 R /Length3 154 0 R >> stream %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /TRJAAA+CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 15 /epsilon1 put dup 58 /period put dup 100 /d put dup 105 /i put dup 115 /s put dup 116 /t put dup 121 /y put readonly def /FontBBox{-32 -250 1048 750}readonly def /UniqueID 5087385 def currentdict end currentfile eexec oc;j~EЪ)s̾;.;rTejiK/df5A|{S/ )Sc\^ȟmp+#vL17~k d# ]LeVߐGoo٥\k 9Mՙ= 0)xf 1kX9JS:6V =!X>KM)9! I}HWIUcl=GeZm>nQk2=1p%R`%$]c{!W+8?v(+)0ӈ!YahtA?H @m?|M X9Հ֨#2 :m,MZ+ǒ\Ex9Yn<Ŀ2^FC[`T+ȬD]ǸFF$oB!>;A\T hxh|5:6;ϖUǷ6~k.T*{8K`y8'dT|-QkKmy9 91|Afr (K*)%_ʬtP`.rY?nrn{v2O_5;\g>R{4_ : 9pEz~Gu E[n窙i9ヽu#=X&>~J~ПUt0t1Cqs-b5 4AG˧OE1"?@~ R Oԁ>XO8' IVTnP #ԫ3L3zٛoH9@uD Jsf*+5x/Jl dc!=2~S،%WzCrw#_?x偲촥S*18>Xro/W!B6"76GtR^bLY~,^Ӡh 3 kU9K<,OkUQ 6ԘHp/f}/9ŧ甈()U9T+#婿5xL/I?N(k!݅5`O\HxT} E*uL"]n#2+9>i[z ݧwUѽT$wH`O T' lZX|UJ;t Q NQ>13a -ON~ #g^CBFC8JK$nw4oeOJDJ+ ~ۋ `9}iupřԥ+PTxd>+Qzev:_M(ut$LAeac''}b`|MYt-!wMZs{ .9r8l:|^yQn=$d &QS_ y;&0UEPmb!qcp&;b7Bb[BްA^F*|_Q{ \=A įfb ~r:=s J;:@_JOu#QG6`,cCfTD(~ ,e4\\ٓiXk.K F[Uaw5wGR~P"`iey*Cq!Mcs(@c=;Բq/ `JLcY%n1YzS"KdB<a>D 4WBJtLU(o4jo>bk(x [L@qR x2llscldgȽ\(~#:P\eq7Dp?͈8ࠞURGln#}piD st]'ʀ(~f MQVӬrWC@wS b"P;Zeﰘ4 ̆;Z1Ǘzη{1D9|q.%Ĉ7xP :B%CKFHz6[g2wJ^9]!kc м(0RQq<P&y݆35x'|4XGR}FWy N Kk½0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 151 0 obj 3557 endobj 152 0 obj 871 endobj 153 0 obj 2154 endobj 154 0 obj 532 endobj 155 0 obj /TRJAAA+CMMI10 endobj 156 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName 155 0 R /ItalicAngle -14 /StemV 72 /XHeight 431 /FontBBox [ -32 -250 1048 750 ] /Flags 4 /CharSet (/epsilon1/period/d/i/s/t/y) /FontFile 150 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 157 0 R /BaseFont 163 0 R /FontDescriptor 164 0 R >> endobj 157 0 obj [ 625 833 778 694 667 750 722 778 722 778 722 583 556 556 833 833 278 306 500 500 500 500 500 809 444 500 722 778 500 903 1014 778 278 278 500 833 500 833 778 278 389 389 500 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 278 778 472 472 778 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 736 556 722 750 750 1028 750 750 611 278 500 278 500 278 278 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 1000 500 500 500 ] endobj 158 0 obj << /Length 159 0 R /Length1 160 0 R /Length2 161 0 R /Length3 162 0 R >> stream %!PS-AdobeFont-1.1: CMSL10 1.0 %%CreationDate: 1991 Aug 20 16:40:20 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def end readonly def /FontName /TBTESV+CMSL10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 45 /hyphen put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-62 -250 1123 750}readonly def /UniqueID 5000798 def currentdict end currentfile eexec oc;j~EЪ)s̾;.;rTejiK/df5A|{S/ )Sc\^ȟmp+#vL17~k d# ]LeVߐGoo٥\k 9Mՙ= 0)xf 1kX) $%Dlgg5hZBNj/!by(Nv44|0x5>*TχXwj"vǠ\Ar@zgt;B?O}C;J ߋb >N:u񳻶o =;xT+gW+"0qXٲ"lCpXǹSٵ˪\Y圃ۭȺ7NR >DrɍW*-E Gÿ#9ѳ[BRkO|~OgrVKq|媞ڵ1|@5$ccD2'}}]^C]a\;^v|[Skz 2WM} o/Pp)t7P^ q L [.DRܠK;v=|GύGy10oYN0?yY4xl #ÈcQX\;;3U(9%–fUAƦzTFU%Gu{7 %Qt̋k 0su0.ŻݺVK2|)(џä%@xx{MYtj h8eh5 dVGg趛WASϟ>EiK9i _Zގ xx1|(LqjҊ͇'Vcs4fg \MҬgQ6wO :4l6 ZD[{1`>EFKR>詠' &uldC*_NX!39P7Jb',L!qvM"NF45WȟEvz[tܑvY;OLdoʚdYdy-QZ\KrqP9j .6v_nG&tSmXMw gie^W#6< 'àT "(Q`G~J7Hh~e/}lT@Pcg0KO}\Jl †(X)MBv0Y(%lϛɸZrG"ǒ]A_?:WwY6$X)'BOCU&Nm,\&2ޝ;F NȳCvw&y7XM9fFS[I9\y1{)0f^{r7oۚjjJ pi1tJD(>n18"7 窠|E s4oeN3 uRo%8v0-JD}5Q1 <*ʗ9;XtMq9cCaw)qcʕC!޳j$ցe9W Q,2E]uؗz~]oKܜG\5k%ɯB`CS4'|b  (8Iobs%qۃd l;/QjBQ3̐=4ihYA}-:})4ʬ=[tXz'Cv0,wZ{$rÕ5S/|ۅ:dla>1i Qİ?sg07/>;u PClZ,0cf<e$~@f`QͫgZvU9z<ڣ_!:cnftmʂf&:C2ݯ*4@%LDSpITc J"i%S~!;EQI#cT?&t~+WVk w'e H0IkV,"m0ϲ(ƝM]Te[M\$wx~XQ`WugDr-A ĕC%B9 pFo04 ,A**^z`^Ag{<c@EXgzGcy0J0~:s $.p;ϊknxm<<ڱ28TbW,|yg lWeׯ?~wFStꚠ5˗?0\cPW _p;;Nj%Ow Pcf֘%[="Z lܦǾV8(7ePxGF(@GXhz|834U)wovZmbVJP;i54t&]m(BhpjV }lQap̤6%ײ|}q6I r~¼;*;ȡg!wEz++U%.-)}JK~6v>1!!zx3o4!4EfQtjz6u]o%O|'tOu\Wk;_' cJ䲌<7h]‹[&̅r2A}-AFe=Ew!t"sM$㨼܅z@ރhfjK#~Ba߶vXD1vQO6PPt8'^=UkRFz#ԟ E9?cڸTMo$L px RwX>1 cD((x LkU|z&츑{e y ͙mMc,^` psMxlxvyN3+'ŵh1pos$wgT[f/p,23Wfw]NBby[MZQV5ucV6Ubaz(yJtR--pJd: O`fI%|Q*g5I $f3Y"7}6cCO׌C:跡bW3hv26ӄ>OfH柕}5ȩ`'ѼK¥o^5F\tW52އq߉*~G_)Rd! vR,c lHvsǎcJK+b eEe+>r"153FF+Q%廥pHO1a"'~z `23~y1rDo^Jo/5!e⮀iCŗ;Hh7i&Ldцkf'S&ꋴۑg!= D)Z8RvoN}Q)/aEM ,ԵGJ%7CBj=;HTGl'{NwY%C,zz.lwp"kԨ-̱Uj'i_x@H&+骎)M9 JwГJʵДe0D O %> endobj 19 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 165 0 R /BaseFont 171 0 R /FontDescriptor 172 0 R >> endobj 165 0 obj [ 692 958 894 806 767 900 831 894 831 894 831 671 639 639 958 958 319 351 575 575 575 575 575 869 511 597 831 894 575 1042 1169 894 319 350 603 958 575 958 894 319 447 447 575 894 319 383 319 575 575 575 575 575 575 575 575 575 575 575 319 319 350 894 543 543 894 869 818 831 882 756 724 904 900 436 594 901 692 1092 900 864 786 864 862 639 800 885 869 1189 869 869 703 319 603 319 575 319 319 559 639 511 639 527 351 575 639 319 351 607 319 958 639 575 639 607 474 454 447 639 607 831 607 607 511 575 1150 575 575 575 ] endobj 166 0 obj << /Length 167 0 R /Length1 168 0 R /Length2 169 0 R /Length3 170 0 R >> stream %!PS-AdobeFont-1.1: CMBX10 1.00B %%CreationDate: 1992 Feb 19 19:54:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /EOAWKP+CMBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 45 /hyphen put dup 46 /period put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 73 /I put dup 76 /L put dup 77 /M put dup 79 /O put dup 82 /R put dup 85 /U put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put readonly def /FontBBox{-301 -250 1164 946}readonly def /UniqueID 5000768 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou_cst ?}ߴ7-95†笟M/Z+FCxw\#㺴DɫN^?0^~o&fZ9-(*ϟVV9 |J7@s.$DFYMi+M즒DSW['1qy4qZ;]6y@F< V&N3n]Db a[sK kԃ9$[F=e,&Ȩ)uv1DVIjaIç# 5k~QaMjFJL3.0lVem; YnⱪyRyh$&'gYx Qi- o 7kacg92X3]*#5kհQa?aYtVSQj)ngk(F3㊮FH~QG Zx8=9IBr{_YEMn*ܧ}KyW3K)UNީ>[GR"a1b;:j3g߲gҀ7s҅RhUSh7~dUQ[#OM/܂U%Lqb GG>hmC19 YLcwI+F )s#2TP "L#$Wb8y$; 7*XL,q]8 "QSIJb yԶ! k8 PDݵ%C;8_nPz|%b7K#l2GAj:c"Q9acI{k~]T@sd~kIEuAy)[:6t]?X3T )*٥d8e,'$eT7OTl+'#3Y4_45ߤQ6)AXLM3*1AxOIEb&e9| Cs灧@J;s.mPQDb-6x~[`VV`**JIS"%{.sLF[[hQ8 knbT*p KGQlӋw &[Ĝ$kwj߁݋TXT11(uܡu\y[^_#W HurF(!p%޳9%{us?D~Hi$sJ2U[^\ԝg])~- HBh5>هPy@SBa{2gW)X1Ac0 ?A&,9GZG(zԑ1{ *&oOFk?*onJ?T3{tnq)Tbbzn ʷ6*`8}4_ޅ48mHF-+J 'b]@J!ങLsyps: E!f#(#wNiԺBW193 (gAc pjqc&ˍt(U˂&I0ǽGU{/?hx>M` (/ |#}S혩`Up͐ (E0,e e|X`fYԢ|;= c `f.ԅFϥO8'3U Im!,gWW5z2sW12\e^KSɊR<[Z@| ɰzdI|xDd4IBDU/psMt;o-r= !6VK&mwz-_-8FYNё) rJyg#*>24{ 8s>pA2 4n~̭ޤr㶽Ϝ\V՞]o{ƅ -k|.7<w Zm+ZE9Kz)KTOD5|_ MJK7H& WoMبlh #ѳ'Pm>j] O`دb v!>;S'+OD,5iOdD$_anLb5GrM4}L jf@ N)Fl<(w7q9xUkGmB6\R^`>QVI.GjڡЄ1Y A!C*A#Ss'*xp&ޕLv k? "hd?*\39KT9N|IɘSbqy(hBszHar־%=}KZjNNy[YEP )qyV>>ԅ(AJ|(j46GmP:̀ߊڴ@*NE/Z4( GțJ~uwW({Wjf^w#VFk|2iXa!zr~|$; >a-5a, K ,Q`X; S%IeKŏ ULp0ǕoxYܷ BvycM{?X;KxSmwnQ5Cjc*{sIiֵ>[g1d_ =4*8lS}K;EnBFv@Tj`n$=B kAyv< 4D~(5^x$?#S[ΫoFY@1Eea%R@7Fӭv㓵21LEv+?mכۄ[|VdłtlL9!ޗXﭯ-$gjivb*e dkjJDw7dDRUUbBЅ-Llv,siN *(W+vE eY%akF XtTI"68ӯ?T^"&ℾмdۻa"\gИ`PS3z i-D n-7Pӄz%mtEL Ғl`L!¤ym7l#U+~V˫.,:-6 n8Hǩ $M[v;rX!ea;|dxt;,jCPi)UF7uA㴭-/cam# Sv 6ڿn% =MVC=jmV^Jr+Z<.:idI$'8TsY ͘v6w vzCק1ǦA7RϞl w|%m1:)&~(E9 ^7Cߜ\UD|]q@P",fjsaCys@Z4/>+ZvAq0IDfUQ+( x#ɑDt0ҨbURmJJ6HÍPri1CWSF2z׈ErG.®0:J'Vî J 64e+c!ǚ`{-@PCu!lm9)lLn,#inck}i07ʼYANՄnqXUd3䵓r/N׌'-7S=iS8pj&evжy({Ӄ&_QϲIa(n^\_6,SSOF\KKrЬZ[o&]b4E pߓ2BAC#@Šrmy~OjrDVǴ=#*H]`qyiqɉÖxpx HN[k\=ӦI9 !T,S}e_v]]k]D =%iDiR?:<,I/O*FDEAd<aN|5EPF="Ὣ %Ix՝zbֱр/O=32? qdTߓslVZ]89~࢈] LϢV(t>٘%% m+s:@9aZy\HMMIvd%JSlou2w`M[H`]^1.6D̿Wʻ0J@p̮t`y'ԧn)T}R/S]p[ %c83,L"ZwO=#~a87ܚj(P9*s;m\v\]I`͌OYasYjL!#+z ^vD29-Q,ѹ~T-h߂lКÊL/ZNLܫAJ{g8T:3j$HS8͵ `|1hb^0=trS{aJJ%L(!khZ=r<*3?h޿)!|"~AÁK)~<GDŽ6?{;ig;S`ढ़G_|^f\HjDC~ӓHeFF,ԹY+= @L= \S8@UDpVwM@ҚMR~ V~UPVg+*z_%p\=O$Nчv+ L ]l9DybyRLy{Tt?a۪[DoՌh|NɼjVHnk׼ub$f?I6Z棚Z峩R 1+Gh sD§#K W6/`nA9TfO!0K;5uCB@:J l65ҩ}zJ| C,Uok5=Eo})LYPʼ8S.|Kؾ#b'HR 83(KWho8u=:+ C@智%¬A} WG.-㫔oƬhJJ88-~Ӳx]7a4ϣw.;^2 0} ;!qJHOC̚Ôp?aVXpXxԾ32Bbt01HO.6 a]Wr`^)snls@o̅9yو03x5 {I.0‍'0Fj$Oow4y.AEpa{CJɳ4yk,L?\ w8뭧wD@`4 q~tUѥXl'B7=RYHJkhPJT>Y/ШQ,F;^䴹'OX ) 4]e ( #֞%m[Z@K{"ge&G:ê^SK&KuR$F˧NIil 0eatlhv <\,&z)nN%68  3`AG:L;o9| 3u?{01nF?Pj3# ,Y EڿBNJAG40ykɲ{aG]n-bR?>g?JVݙ+Qw";q%/烠 n IН*y@XǒhG4Յ{o!3Ҭ~<-WAUvw0᯸A=,ݰ@V`˪?LqxDF7Ωr K3C#Oow=2^u; CerDE$JS-ï՘G$ㅸR`w@mgzW$N_!3hO\i(D: ;E"v%Qi@p+SƎw8J9c1AbH XT})wytuSU kf2\fGAYA~4`s[`@f>eP0'}- 4H.t'Sӽ8DV>v6tgT0elK]X,FMpĕ^.!Ե̠ Y g4тh2sR+8YK )m W=tKw 椐zWm%+\QnbL\g߾j="N1Z~5.,W du2Kf~'0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 167 0 obj 9214 endobj 168 0 obj 1258 endobj 169 0 obj 7424 endobj 170 0 obj 532 endobj 171 0 obj /EOAWKP+CMBX10 endobj 172 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName 171 0 R /ItalicAngle 0 /StemV 114 /XHeight 444 /FontBBox [ -301 -250 1164 946 ] /Flags 4 /CharSet (/fi/hyphen/period/colon/A/B/C/D/E/I/L/M/O/R/U/a/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u) /FontFile 166 0 R >> endobj 18 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 173 0 R /BaseFont 179 0 R /FontDescriptor 180 0 R >> endobj 173 0 obj [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 174 0 obj << /Length 175 0 R /Length1 176 0 R /Length2 177 0 R /Length3 178 0 R >> stream %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /VRLTXJ+CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 33 /exclam put dup 34 /quotedbl put dup 35 /numbersign put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /backslash put dup 93 /bracketright put dup 94 /asciicircum put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /asciitilde put readonly def /FontBBox{-4 -235 731 800}readonly def /UniqueID 5000832 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou_c2Bطj=-8\Dg݌] /%bԺnٻڿSy b*L(9sWF R:EMksH02E?Oe+Z'zK΃оif <,EDNZ|J#BW3ϗMp(%5%~(5Bk}Aj c'S-8*!iy$G.w g J0nr ;଍ Kr^ox7p4= CyO#y[49'n*xx/J}o֯p6Oޏe}hà1W6Ϋ%(i]Ii 텴""b3=5sJzbJ>[Wе H 2"ێ0Oy9.t:=$EǪ ]to`% 'EKKfrRK^y`vO^v~ZwR iNMW3HSp+T,q!s0(ع;U+3"J8q3dJ`77+kXֻvuGga懨O|?Ja \Lp|j 5 լhER5} d߀?eu6sjDh*/"qJrWx #1].kKy;"%o(UYO![x;o_*A*O˵cTtEQ &+KԌ PJ>薻Cy_5XK" 0,pr0 BZo3 ij>r̐:ԫv0I7v qt@'*STg8E.ZQp׊P%x^a&(-X%OfCmTsCJzZפ4k^H J=o9vMLg'!Tx}ᒥM F {'tV2ANX8 F]E {b&bfo_%pT1}*ڢUO4W^t6U:05:a"0~rn:%g@Aɠe`Oڀj|Y}#xHR~@paAY< Z.#0ȼ. DkQ6MgDțHhrtml)!|=~tWPA߾Xxɮ'[Y"f6S2P)Q1Dl;;Sz$̢!)Q\d D}N\ip, :22N^x"6?_Oki֧@2|[(_c6wL*^,&l!+U+.>AZĜXYVχ% CN+7an;H#e2{f3zUI9xa]X7W^^.؍=ŅSϡ pݬ@Aεr$4q^҂fތ]Z^X}hrÔl%Hb% dil8 *HbP֔tOG?מO 2+פDI-)#5N7øմ:%P>3Sd$N~D}y*vc9mfrآm96|]WDD!ioYIؼU* dR '7&P@WfˆJOBX24V]tb{{! ?H-3!$DTtV-We:dfϔM(eS<m%~]f45v@A(5[|V!d7s"EmJNqz=}4mH{ng/??tYKl҄ިAGR-h-٦uZF^6; Wu$aJ /ewZ.dhPE,m$VŧuM-.5 d̠9/&rRs^))eZ n=?W0zx@K2  1QoB^>JMIם!;p&W(z*W Au_ܰS<Ux`B G ya)~ Wˣ7mmH%ب_!׮2 nܻ9UvW2Dp^ZJ"wTy 56KlWm9)ld+\K=0}`NInɤ!¬Aԏ[ʵ[٪wE'`%a 3춯j󱥂P"v/.xf'? plF THFSk>n-|s4"hpGrn)"P*[g޻#c8УT^r »%yݜޢ(Ơw [x*YǼB/"H-0?DCyl԰7o8+#M (PQg _ +>\-_gn}} }2(_=X؞P߫k\z *Q?ƷRsG&jՒ[)nPSW2T7m3;ô瓹]P(<5:eRZdcr*>-k+! tH~uB }&C&9 ^lllUU-#z*Xv8 +i8wN5?^P;q3I qV YO {in?HބB+e6P%b!!1Ƣ)Dިua1샍ojQyRmba{hnzpe 穚 ]2<#}^ kTxwD' )ئ ]P/;`4@ :rl)!$U1H)X{1ʣ YhsZFM*$Z@ݪAꄮl92?<;|^Y 1 54j1D\h4/.#BxN;g*DB,˓K!@%c/5B^]8nQBYtG+ibfE~/Gt%?fh)*' y @ޅU'aHMc! 9Vn. Rm~goH*Uq 0(,-LOFW[V8dDK4l*TɌ^Ihoٶi sm8zLnsqƠh Fa5-7U/ݒҢ89h`ik-4iJb~X =v HE-[3KNh dY{ra Vd(>?Q!lF*} %g6az2樤Sp@zfwFgY!卜a0mY 69 zS9؊~ 6{Ww0SFъ>9w kF ,X{}&WpۄG_EGe4]bFG ~ߍQ7ᦷ~za^7h}(T4WЅv3ss!,ج XoS 7oG9uı-JrU0A0ld(渚j%8Uh!Uӵ%\Mk$?œqG$M|Vۢ15wR 쀕ڼ8m+R̎N19./91zIB_~a b H0G8 Ԉv)t+z{e Df?)' أ(TQV">pK#Ph7B?V1{_𥭯T"k.: ifͩOKu1u1 һZV&쀥Ѱ7 Ta=% əe@0 iU?4aS%X4cߐAtT XYɼ֋iu8 z8cy'Q&4_޾^>7*nl>|O%W5shݒ$Lʀb}ZvL MrM9Vl#BaZms[1݌DjJm\W;wJ4{E4.vIFC°o#n?N'5lfm`fү,[?7M: @^3y=85=lFҘ&h%6QԪ2߂~D^ $O*8+[GU#'J[_ԦChEjKg̈́MѢ+WFA7+K& ?^ðzY7 xJe_[u>VY )IX5ΓNT$;AI(இ?as=Km;r2ɚRer怂:{܀ifQ.< S `[ q.aXKo+p~fQw@L6]F|O SooZo?s Zsң>lȝ:GOف pTo۔B<$ 9GIS~OcS\vX J'6M= Cv+;AgI5TKJ[r"oS kk1&`uGI\rWH?]f@&fo: (@zPm2oGO+}!Tucm]1qf!S3› ˲:fq'J[;ṱW 8ݷth%#[ӓ`;2<0ƽ!^iXQDƈXs-߹ਙ;zKσrF`&` UL+z!Si7m'KaeK c2'@c=p:Or> ^_'jbkly.p4V\*MS`94QvW~+ /V[4\B{fj\DP Qd!W˺aO'uZ$2Z& SO p`U:v#D-d/|s"bv%|"aۀm Hs^;="C}b*]&\恸'JF[rǑZ+ ' à(!Hϖ}8`{;ɒ1{  z k* !xP[PKO6ƫю>U_(T$e|D^M %CMSA\xÁ ji]ћiW؃ ȎE. { s_ѿ3K|H{.HS%j eΨhOФ;X 7{b[%3-ǩ6OJXD9.`5ډgHuK<9w2J* ?yw™3TrC9lעAI_؜ߣio=B܄Emd!V1"ǭ0@#ήs$.12߫qoNjl[eBIH$%< ?#݆B> <1(5tÆ_g<-djHZ=7`Nwƣ+YY$;ܬN= #K?ZߩvTR38 ݋ P`HwOOC;fYnǸ>ῙWF8s\EY4,4qDCDrWCAAE&Pm…3\(EgkM;ЎT?*cs!>wczV {ıUDY` vƴ́Gԓ|a\Y&zx&!(Ut+Dͯo5cPiZ`ԴkdG5nՊ;u9Q2M)Ayy戮VQtn/Q2aClM0f=@au`*%X%qTe434@OuTX鎙BZc,UXHCЛ(O& 74 qvΙja\/iV^`O& 'q}rYt_N.5**-5+X2J ·~xQ1kìY_"u0kDei|#'LEx{&%mFO Bf/'qH ΃? )_RmuI/:w?]8|َD)k&$}6$ڨ:Q _ 4wyAF^ pLr '‹@a\~SO(H=)}S(s`<tɾX aly%W8 HUZZ_8\!;փي&8y[޾b̮BOKv|5;D?^bܘlRz\ƚ\P'9wS Q ;h+#Gc2׻\TπkX K}RL2ہI+jbϩÝ'p0qZÏQMYi`4?k~sJucWiNLlf%IX/um?LVК!T~a3{4IC9>&cNK k_QJ8.r5ɗ*cj!e Pمb,+E%b3-4*̙іvG]g6 "B3ţ\CSLp&5SpQWK(x?;Cw>PTY˝Uy~K/g~Hj16P(j]z0miLlms lF5kB$|4O^^e?\:kT|CF ^7oCЄIJߦ" Aqfsal13bo2q1雷: %\ O"Q[dp)X?_1>{=>j ~0-'S#Nj3bgR<g4MikP\kkjL<1T(ISɐx:Ϡs3`(BП:~R 5}ϋK0WsUHhy_#P%Q 47V$ՐƹǗUP몡^OEJ ~=kFP"q۶.[ǭ#YgaS/P-+^SL"lӨ/{ ZYF:Q,pS<(!߻ қM(9 nVYϵ[W|r0KxYqJs/ ږaL5$oFgU[2..CAOBÄ>Űx،@r݉4]nM, $783X=A!^+G0v2݊L*uS0% xj./JT\lf~Ҕ=m$XnlظyFAovYRx^\^a 2E@8O{Dm@'H_Et5Uqlߡ3e(X% !g-cObw(xWtwDYG`#C0%%ғBM,"O0~nB|bwLUa9 HW˕ J,aTTҍ9?Abz-(̺s;2$ܳU^wLhr(,pY3ޠWd ^1!xSIEȬ0wROv;;4}'z}cd䷸ V4Jt fjn.j=EM{z<5l _WFs(  .0q~ǸSVQnm ~X<1KC{Ou ulӝmGѳGFj:̴я?'7V.8kvDgiE"R-4q=ri?6^slY2/ynP~wohߎP5R/X@iTr'f? \\×? bC)rl$hqOMQ84rzK4MpEIIbP}~ Ac,֢$x2ߜyJ,Iń}!{~)- 8. IM6@#EM 1NWW"~e"mKHk7\4VGb 3`. Of'r37qޓ!r$QA.’Ժd &m#)zT /x b:TƅYļ~`%ED Ƙ_W)v%8Ô4J|:FʋTssIGU?Xk-vuOD4E7?YK7^m*ipI^ۯZwh/ft'tCq;`I:Ƕy:_&=GMl"X)`/a_j!ujw,h\_#0q=^~ZjehNI|6'+bTjo5\mѳx$gkhpfAuQTVթ"F%eDN |8 -Ϲ儵@F/ZfvMT @ACg 08H7fWbƾ5 ˒/~/ѣ?BVWy?VS)B*A16~X7PIfG[08ac0g,=?N} (q՜}kxm:/Xk#CeplN5t&ه t&?b$w6 Ɇ|д[ZRT ҵL5̖R¦\ʥEoZnѐ2V%{Xt`w@omStl:5Y􏲯营R` w?Ls񚅬 y ^ %%Ir!pvͅzB['sڝsPSֵ+m5ɟ.ĩ#rU>3l g)]'&qWEK|g]Scyi]a* tZ_e*Fv|R~cR;c.(ѷ7LE!_ˮ-yէD:_^4?IbGlI9mo/-[! wiu]hjCA—-Rj{ڏ >L(zS q]HçƉم?dY#f,a{h(Ot|rǜm2ek3s 3j.1G5q 8!N|-yK۾56.[߻e[kT6aYX'5_ZpgO [|2(ԧܽSzk:Po3̿CmoHK|vΆ/[zsgHi=˕~̀0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 175 0 obj 17030 endobj 176 0 obj 2234 endobj 177 0 obj 14264 endobj 178 0 obj 532 endobj 179 0 obj /VRLTXJ+CMTT10 endobj 180 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName 179 0 R /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [ -4 -235 731 800 ] /Flags 4 /CharSet (/exclam/quotedbl/numbersign/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde) /FontFile 174 0 R >> endobj 17 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 181 0 R /BaseFont 187 0 R /FontDescriptor 188 0 R >> endobj 181 0 obj [ 627 818 767 692 664 743 716 767 716 767 716 613 562 588 882 894 307 332 511 511 511 511 511 831 460 537 716 716 511 883 985 767 256 307 514 818 769 818 767 307 409 409 511 767 307 358 307 511 511 511 511 511 511 511 511 511 511 511 307 307 307 767 511 511 767 743 704 716 755 678 653 774 743 386 525 769 627 897 743 767 678 767 729 562 716 743 743 999 743 743 613 307 514 307 511 307 307 511 460 460 511 460 307 460 511 307 307 460 256 818 562 511 511 460 422 409 332 537 460 664 464 486 409 511 1022 511 511 511 ] endobj 182 0 obj << /Length 183 0 R /Length1 184 0 R /Length2 185 0 R /Length3 186 0 R >> stream %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /HFVJSB+CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 45 /hyphen put dup 49 /one put dup 50 /two put dup 67 /C put dup 73 /I put dup 77 /M put dup 79 /O put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 121 /y put readonly def /FontBBox{-163 -250 1146 969}readonly def /UniqueID 5000828 def currentdict end currentfile eexec oc;j~EЪ)s̾;.;rTejiK/df5A|{S/ )Sc\^ȟmp+#vL17~k d# ]LeVߐGoo٥\k 9Mՙ= 0)xf 1kX9H!.vPN 7qjj7!6CɫTw.]ʂԬ/J1]0': fqdU24tԡ?@^g+0[ KTB/UٝFMz7 .U{7K.=UٯI C^$O7Û-tGrz J:"ia~ T"*^MMчff0EM z8uwi*?rw5(*5nZ٫ 4*RX&RTdRM3m ѫ& .Pd8;]F |H!%T [-͘ޞ E|pV$MU]n11RP} d .{IQ7^N-+C #̲]\M؅1 pk2 \t,o)2TTڮw}Ҏvq `;lSgs3c-h}W9;ڤ9Ö`2 ${};;m򉅘^l1'C.]~/ِ?a!ic7A<.ʤpIDm1t}J]j_Άi Uǵe4q8}Œ l~$Z0ү#+2a}o]!3ZaI|qxiܕ#N9 5.+lR[qĹr[İU߬{(WoϔѢ#>i0 1.EWNTQ0T4c][+ }}=mã-a~:@u5WšT,R,ΤױP[*NY5L5=5sc@ a1#PbņII~=[ [ą߀Bl;Dkq@0XV#%#\CE(-M@mz8ycoDeh&m>ZtFxn"  酑 \aC[l3(cFu@__Nԫ?3r ^x>'o\6?om=B DQ5\|tc.̜ry߁y&E&tŷqq6L>ٴ_ZiD]OzzeD&W ~sׁxCE4Y]?6 }KEv{Md*R2ٌw[VnpvcZJߟ }\GTj Jq`26Ʋ ;(V~T-괔kk yJnz縠;;sm2l8ywX_`,2@%bF~:x+eD1C)`LY[7 ߘ3Eu7r%o R:AVXH ƢG!0pM`DՏ>$;-coӀYJ[Sk\U}5Ѝ9׋: (=a2{j#qޱ^P'}oDfifr!9,?6"Kv}𗩬\^45qu!>ۍŎ@]:cT.X&rzE6Ja8"51 o9 >R:D=Ѭ{4*Sҫ+z29œ#mnXJ6tK a?Z[/gş Yz2#B/D{?~#6A{}F ҭfޟ@~pW='Ec"Sx xˣF#9ms#a$q<ݱ|z('[x Il"8$ ѦNq[љѣCJ{Ag m< Z s?7rJY/ 8C{TTN[! K}I dR.9'[y B x ޱ';ȼzs0`=D+hȐVdӲ+;;AI5 Kêgn&> cAA?f>W37YR,M*RU!>?@#U»˩FMbbIpm&yH"]q/ `7|Bԑy{֙fD;mD& ҵ /ʻ]AJMNT|뺉,D3+,Wy"8 忼3!r$2tቁ-#MA/^j:pQ66%[h7^sm3BR_1=guA^ %+]؏[[)5N&ǛJS,Pqtrُns3g _z*oQkT]Fr) GLy\вqU|궢{ɝCW7:'|ZI6.bq0O|_>{vEb`dvrEbp 1pK l\PϏm30.·~NtPM@+ {[QXf|>N8Q|sA(sk1ڎ%Z /he o?ꡠ8d>~:Rڥytm5!{@f7 uǔ8 _j(g]ܔL/n[{M@|?`d#]D()h^N=DkOq5ؙX1_keh-z#&7􍲴X!;kjg5n||VLaŬ=OѕVxBD{ojBMIsծGi 7O'lh"+%KS xV,2ΐ:ԧ 3E1>(S4؞cZ~&I쨣dvyauYfwEV ZHY| rGˉk[ W)F{n'_CK[c-{y7B wM^mTGѯ'1<&ui$uD9lv{G-?d|O~v)'!ܽOw/ߪvz[ZFG:qYݓ_ EBǩZ4Uycؼnj"z-Gu#|3FBʦUaQ\qPIwt~h<=4p Q@hz݈;< ϧyrY\es_Bv# w0#SkB a왉N_Fe,bW (Bl(q}Fȝ=I !i{>6yl 8}HΙ*Ʀ抐CY6!ZYjn8%Z8 J!Q%xyduQ9' 8 12d4 $:`KTXus)R^*3s*ͤm5gv)*G&FǴ)"\roa~0@MZJxzVB?gYw`d |!ůfbќi'_DCV9;Йt͢2Xy+ T*M%aaKOy].6W<И0[~ 'G~Vt n_@{as D^3,G Yj0Go~IV͘ *#|>=?#4J̐f)l(j+eW#Mcs;Okv ]_ݹft7C*ho8VLMgV1B,U |+_$h).iP~jgɖ2t> endobj 11 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 189 0 R /BaseFont 195 0 R /FontDescriptor 196 0 R >> endobj 189 0 obj [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 190 0 obj << /Length 191 0 R /Length1 192 0 R /Length2 193 0 R /Length3 194 0 R >> stream %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /OJPWWC+CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 46 /period put dup 47 /slash put dup 58 /colon put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 120 /x put readonly def /FontBBox{-6 -233 542 698}readonly def /UniqueID 5000831 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou_c2Bطj=-)1_]X` Y{nn9׫/uye );9*fHHK-\rБkg\5&(G<`J7dhn)Zl득52 Z$نa#q13@H;+G"1L(seER ;ԱJo"BFKkv/ ֈpZCޯ*@;db s*Mm~4]꽺\Qߍ):۞3#˂3u?O+|mMۉfH21C2/AHw;u&~#V=@Ņ*Ft@*(s9)UdƁF!;ŭ$r)_e_LRXJ*'*|o+ _|flWU6yM`MFPzXktw_K1Bov7}E(>[)Abц>Uu s,H6Wa7]_ΑAXφNp콕Tĩ>2oשW,1e~O 6Y̮X~Ր)L)!mW<yy8 Dmn|K{4pw&F3@x8}*)gSn3),ЕDձV٠&cnUP1nkE=|jrͰ1=Uԇ:Nq0xWDS GR4􋴪9=|Ƹa D fY@ccc(鳾p9>[H %q.J| 9|hGG\xksj4O-@8ss  S4Wpi~uhy]?xfn0:ܾp#wo2lI|!Bjlvg`Gq9lQ9b.M`_C̠*].XgMa.(j:]9Yαd@k<~*B|rǝ%hy-G_%ϙouHf@,eְt~r+a,͗q:gl}H-mGJT]F&n'қ?0EXc. O/a^\m9:鸢, [/D>)[ÅbGUZS+2ߗJ]uK0b`<]H.:,zwLTxO$WE<[x?%p`'㏊7 F%q_ZwGJc5NW޽]'Z=_Uoh75dLP'S8p7e³ C͜3\,zuxj?Iunlޯ˫Pq Jsgl/[e$ :.5vWPAgr0I3`bҖRc2-1%xkre}غ8a ݴ ™Cޓ[%,t˴G@o/ 8gԓvdͺoB锃 28?v>΀t̀sSx/I-v΂+L牄ӶxS%㬞w7kL@ug@3JF2-_$THl8ϴ>'4$eA8\w8BdrP8ŜMξ;tkt ؇"D[J^gG\L3C#`#1qk::z}HfNUĺ \ ' 7q¹hB,.K K.JKs-ŽliF6@dPk?'߸W0< x?b 3=]+79~8ϐZU{ihpY>|wl**:k*^/lLA`c1d!Όn ~& 8pQ_C劁7PɼGOYSCH+Vo9ԛc\rfp4qܦ cU*f8LD\!S /Lӵ8c[/crRPUSJy!A?PrE<鞂s@R[XV?J]MdJqs[ ߘB:΃W%4p8"Ҏ~Javl\ݮebǿ$p 9ܹZ։; ~-7_;l@(j*,6U(juB;}䍥._2C_FfnB9n s_#N]s ^jJXQUըm7qD+0<+>|T1o׮ Q: 'z{q0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 191 0 obj 5043 endobj 192 0 obj 1034 endobj 193 0 obj 3477 endobj 194 0 obj 532 endobj 195 0 obj /OJPWWC+CMTT9 endobj 196 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName 195 0 R /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [ -6 -233 542 698 ] /Flags 4 /CharSet (/period/slash/colon/a/c/d/e/f/h/i/l/m/n/o/p/r/s/t/x) /FontFile 190 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 197 0 R /BaseFont 203 0 R /FontDescriptor 204 0 R >> endobj 197 0 obj [ 754 1000 935 831 805 896 870 935 870 935 870 736 704 704 1055 1055 352 384 611 611 611 611 611 896 546 611 870 935 611 1078 1207 935 352 352 611 1000 611 1000 935 352 481 481 611 935 352 417 352 611 611 611 611 611 611 611 611 611 611 611 352 352 352 935 579 579 935 896 851 870 916 818 786 942 896 443 624 929 754 1091 896 935 818 935 883 676 870 896 896 1220 896 896 741 352 611 352 611 352 352 611 676 546 676 546 384 611 676 352 384 643 352 1000 676 611 676 643 481 488 481 676 643 870 643 643 546 611 1222 611 611 611 ] endobj 198 0 obj << /Length 199 0 R /Length1 200 0 R /Length2 201 0 R /Length3 202 0 R >> stream %!PS-AdobeFont-1.1: CMR6 1.0 %%CreationDate: 1991 Aug 20 16:39:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /XFAAAA+CMR6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put dup 50 /two put readonly def /FontBBox{-20 -250 1193 750}readonly def /UniqueID 5000789 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou\@[6]nhmlhaH+4/?3&n=a6E#|~.ԅˡ}_B$~\|"4Pxҍ>P% ~ߏ4q.C3s蛼q翈by?Z72z6LpHC1D"28s B ~ OPQ O\O}l4x ^;CTQ됧[I/=G6n0X9q(Ckm_^N0'xVb*VGG:r|o]e ahsmoځ/a{xǹBTHyo$Zx*1K;-ª j +YUcοJW$I<`x8{IW%d{o-lSYQ5o?PS5o *CCcP#ptK][ rĵr\ib\-aYR{`Y? =yLb:UJ0[T7\l2x|pDtߴ/N Щfi[ 7thjK"A|9$8$L0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 199 0 obj 2595 endobj 200 0 obj 773 endobj 201 0 obj 1290 endobj 202 0 obj 532 endobj 203 0 obj /XFAAAA+CMR6 endobj 204 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName 203 0 R /ItalicAngle 0 /StemV 83 /XHeight 431 /FontBBox [ -20 -250 1193 750 ] /Flags 4 /CharSet (/one/two) /FontFile 198 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 205 0 R /BaseFont 211 0 R /FontDescriptor 212 0 R >> endobj 205 0 obj [ 664 885 826 737 708 796 767 826 767 826 767 620 590 590 885 885 295 325 531 531 531 531 531 796 472 531 767 826 531 959 1077 826 295 295 531 885 531 885 826 295 413 413 531 826 295 354 295 531 531 531 531 531 531 531 531 531 531 531 295 295 295 826 502 502 826 796 752 767 811 723 693 834 796 383 545 825 664 973 796 826 723 826 782 590 767 796 796 1091 796 796 649 295 531 295 531 295 295 531 590 472 590 472 325 531 590 295 325 561 295 885 590 531 590 561 414 419 413 590 561 767 561 561 472 531 1063 531 531 531 ] endobj 206 0 obj << /Length 207 0 R /Length1 208 0 R /Length2 209 0 R /Length3 210 0 R >> stream %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /PHCAAA+CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 43 /plus put dup 49 /one put dup 50 /two put dup 52 /four put dup 56 /eight put readonly def /FontBBox{-36 -250 1070 750}readonly def /UniqueID 5000791 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou\@[6]nhmlhaH+4/?3&n=a6E#|~.ԅˡw,"rg[eHi>u Wת>~ӖѿJmdvA [4|ܾ.Vz_1. Ff |X9^Rw] ۊ31S\DKZW` P^3 eێ 8`2?l;Ȋ!eXxh Df@=$*IBXԏ!Wx-b1 C; p}hQi=HXbgbmǣR,>_Q! Z؞Ar]< Qjt8?B,mN3v լǵ+K6 t{AJcQ%r?v60RmXsŤ+pǸi:Us)kPW\~; 7T.N }.&:D~4LDV5bgANӪ&׏+“Ļɂ? \Sek鬁dVPzjmSȬߤj;-0@3q!,ay ,`y۪ik9kmosrA~}wڇ$Ĥtt&px: J,Me'EA"NL?dFG۩SC;XnVy&\ ie`̬ERfSu { kܭט5r1E\8]*]2oZ ݀z- kP=E'(#l^x.*ƣM~Id4<#U@mꮋ{L 鸞-W51:}}A!pI FޖD~Vz^lE2«0P"d&]VJ[ Л3dst4T6X{,"prv!"2UNc5mIPY lXO qeb|5GUFdz ) ~k%Ea8AyX}DdZV*`AJ9g]z%)W u(T mQL>Uf#U0{F/nݴ0u͗_WwCUPaY5~>$vDE`m6laKX襁yfJ%,|*O6П lSmÚZ ^$ԴҪe{|aŎ1!!gW,HO}%VynkSK]Ȣ9j$7eRȘ2@ x1@$z Y7.p4C:ujR&Tq_/)+]8Z#i߮}}ߺepksIA('GD2tO.9f`Rs0M -*VR\n@[tnaXf0:1J vd߇qEadh|U([9<;پJ*US'ew0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 207 0 obj 3071 endobj 208 0 obj 825 endobj 209 0 obj 1714 endobj 210 0 obj 532 endobj 211 0 obj /PHCAAA+CMR8 endobj 212 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName 211 0 R /ItalicAngle 0 /StemV 76 /XHeight 431 /FontBBox [ -36 -250 1070 750 ] /Flags 4 /CharSet (/plus/one/two/four/eight) /FontFile 206 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 213 0 R /BaseFont 219 0 R /FontDescriptor 220 0 R >> endobj 213 0 obj [ 625 833 778 694 667 750 722 778 722 778 722 583 556 556 833 833 278 306 500 500 500 500 500 750 444 500 722 778 500 903 1014 778 278 278 500 833 500 833 778 278 389 389 500 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 278 778 472 472 778 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 736 556 722 750 750 1028 750 750 611 278 500 278 500 278 278 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 1000 500 500 500 ] endobj 214 0 obj << /Length 215 0 R /Length1 216 0 R /Length2 217 0 R /Length3 218 0 R >> stream %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /FUPTOA+CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 34 /quotedblright put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou\c3R*R?쨤ȯ@ gSr RIzE_EMv,X!%6]ަ_3+_hJإ0o'z 9K$|tV\)Z! j#ZŚz1UA~ "p?{u@]A}s ijB)~Ob {z;O9mT[Ğ^dUl$Wh: ?Ƃ(r6;Bt6cFCr$/;!,KqLeWuG h7IQ[u20uZ8*#qP|̖I̓pe}#YۇW{ Hs(}CE c;[e/SmV& i2ǡmc\0kC'sp)X0@$2jOGG9%fLJD@m2b5\cdy!iz+lxa+2S@uIY5F>qgROEowK*;/sDGǡx=>J ujLDfdžk4ؐ. vî|1wm% QiwXDN}}x|E.gK{ T >k&mxo.<n&lQ>I, 7 LU/GGSL@PEdԑϟ5: :""l5ȸM-/5p7Z՘B8]4t/ī+Ic/xe\% SqP=]I C!#ԽE~!|kZ `f<槷$TtPxCknKAAYsrƨF0,tu|bk"]fL`*ðydN)Ql1$?XN E>cfV=[miGU>LfqcD t.2'-;p[MR+S"#bp`1i0zCD] ~+KX>`o9N(V%U0H?Ӫ~'XPl +Mkгp(I-hq.=fKr涍.y<,=l20FndہQ6_@sPNц&-&Dr!ۀOp]!&|h]DD_GJIK'.zH*$Q]"A et`[vv3&g}`5 dz+u YcvponVW"~Y2(5 #ᘸݻ uA+=wBOŶ\4 H'+Կ'>6DŽym3U?Ap;pZY%%.uOqK m+"2 oCLX.~? }:^3Isu"=<^P#8Ke(/:k8jGUe(dH 'q@%p&+I؀-fdm?*c2`6X H|`#O$1TY\8*zK[)OwXsFP2y^v@ЯMmf[+K+A׈X ly1D $p$NhW8 {]] к5yUG,lM;ѭE@әxەM6mn}rQ3^>7 Š*ʼn%zc=;l௨8A4ws9T+{tm | D/ֿ ׾Z"JjEd3JisF +٨ƬDr6~(B۰F; -¦f?;B)!wQ^qFu!7S9W=v-;T*eq3x,m9b S7jhF<洴0@ih̹o3G^L.3I' ¥{}iB'fEw{AO]D]V%E^OkN-5t ]7-D:`,jB[g9W_=tF?*-+֠eӶh/ϗiB!r|S8v=}6rskշa8vFYF>{!`4 _ ϊaa gh [nBD)Q+qrZ2品iU}9'YxߕfÌ>*MM&,3RzZH$i/ #+O3 6)uRlHݭ I{L9U{"6 AԅM[hH\=VH6٠5F\c eE{AҞLO돣U;P"@׌&d66}[ ʲR`6!L\Ξ 8 <q){C -OQRX=LN-^j^w$+v(7@YKi7C&!ĭ= P}VNMJ-ߍL-(;jhW [u1#h ѐѷ@E4YljJ+(?O^GC+*lT1k46vDA (|&sh{jЮ*aE8-oy:ea$dNhlDfQ[-7(yp"ܞ$ZZ(r A/S/\U0 w/FJzoF,ZpMvWA#JaI^TE|̝ȏ)z:Go`YJEPUYfz* q;Ai?weup ,\Ad,5EB y]Z4H0Ĵջ$UVaf>wQxwʱ\(vHl|o&,XOpRmӟSг}-WH+ OO~şy=N T|w?`e&mVYլ]jచlYޭj,\Vz59VUS/ 9,/W7Chw,~^oN< ae&@\ngB{^2 ~n,> &%~Std%h6;g @T0Fnt@e#\އ ;ZPO4\ Qf!`zA5D ,S$9M&7Eᕆ]sLV|^HAe_Ftoh +i¨xϸ$벊O](x!m&߫` j̱eVjfMrx_@m!/Źg<Nυخc] ┟jV`(yJ"ԤaB#ǥHZE]MXt GXvL$CGwAQ#>Y\κ+V3 mD?:Ȗf\%^+׫2bT&kŅ[8m2_۹fbcHKϬ7̲62~#2TpоD#[3F5_3Y;1P5y8d3\6 ~ ߼M 8n3o;QeWDvz\hHTQ!Μnt#(g0ރUhg( NߞI3?͇ཎ}b,QMiQPor"w,GF k/W6 4݄Ipo)ɴ0 f hoW{3ƥն)WDe$KVXL~$E^ƢurmNc}1F]JdPh% ׳1. 8_oH߼S\5&'=o gl0"VAJj83MAd&Ap'*te0o&ں嗕֋I٢"::!nƮړRj~}L })_2 h Tv*<ҼxXr2ܧp51FC_v &L{ֺ @ wrVO( ĸxw?+~)2{s>o46hNUbX<,#A sG_ jZU&vyu[憳׵L6 R_I!#>>;O_݇İJs #jd2FLp}Qw{Db9ȝim٘\@/\t+]dTzF^@+Fpd e|p﫚IpT>ֻW"V hZ]#&AFz=Ug!8wEsNsTPcE>+e@p/o#6R07>#壪 TB@OgXVL_~ )kEuʹZ(/"iPa""J vS16fJG޾‚ 3Km p^ |u 2N^l`BG3BXfYp9AJG#y3aڪ-`BjOeS$)a|V+7Ε`G3tnlKwOx`K3*9sO}OHro*l1;LG|#$qqeP)j{{?SQ]m4k ,%b~:W{aUK>/ou+SL[Yؙ:3k K!Ѥ7hJEdhjR+HٶҪW'NNKjWz+uuQu}&}NJ(bC{Nx-5롵1wSW&7I3X B?^ֻfO[i=bQ^ /üWȷZDOFn>O?yN|ܿiDtI>mѺm(!uUuk' rX_^"&<)ńL sGze5f΂9ϒ+fsV3j8E]߼śѫ 5Vkjᦾ#t!.[xWKԃs+g&|gyބuS=_N 8*V Y)>S'$z8Mi ^QX#P!=z r E,wFG-D47ؑOGQK1ۢɝ!Y˻c"TS ~uC嚡'ٴq=RܥFShtn5 vV;yЙ:ߺVRO#εAl_sƦb0dJ: $賄Gz8*B·51pճw-:Nt}{[˩;Wޮ9%ח%UaMo\Ud;1ጌOsPq=݉"pdWm:l`TWiAWȬ3YF37r꣈U⊮΋ꭴnk6 9d3#ݸjfOMJR):dW#SBZ򵢂 !R$5kwDId-NUqBQ=  T )mփ? G?,$)}Os_k :Ym&M[PۘI|Qޛ M]Dc"IUb8E%P)yÄm$a?Q$܏nCX>3Q.#t-)_Ms`E(q5%&K̠:;]`\XJ a3I!|]Pw@Q ]:!ZUri”29 $'/zpEDwmF`%d,#A:W>̼Vg1mܿ Gǿ 7pdNqKP\Miaʿ% 'xڬ*k*U %lzrS/#nG*-,"Jk!U ԑy x68Cx|YK`uCLiF$i򽇐Zx*;)N2>mG f$wP6gMqX-qQ/[&iάbߕNĪ`q.;'+/(3.lg{[bCa^ǵ ,^_?|%z  [SO^?*oN*Ye#mf:(486 tpWH-v}M:qP%h$V)F9z cKXEzt< Cr$UGDž1) nگWrO+t4u{"]@BX1~kS;tp *`كC{yK mU2vq eXAPYώ߻}}^<:#D_<}nm%jIa n:?bQd>8=94:;Ov{j3 JɃ2I7kt #)k"U)il#G(hn ! Fyx.-Xkȋ W1!5Ob}7X\^I&&ēw]z9gUٙI Ӆ.'`:OߓØ x)_A񡡌.v6eu0md4)-@ *Q3lȡ%8 IMjgNXY a zD)wxCK՗*yفՐ7I;ו!Mߺ^@v:g]Ca1Ǵލ <Cy#=G SMQU% p f#+"xsv?a!"<-FpH1K5I9 9ڰ[ ^g|17HOVkX!=NЈLb.V[e N4Y)k&Kf' *E\tMHIMCJn  FC$Mk DLYyEzj~ ?01KFFmd6z"]u UA?hhQ>R@1f&0\7+]Lҙn'1zsb&TO=^ ͟q ^'ja1Sy"l 3B_ 3,,RH^$ҚR08FD).ɏGetEPISQ't\Qb8?Ѝw '‰p?&[Ԏxe_?ם0 f1l}LJ6;堀ve0LCmX}?ͦ}J ɣfcOgب.L 7p< Q}zN5 f^P  o ü'Q:H IrsMaV ^1h=@YY,\ν9w֊Ey+҈%j@XrQfo`[^jrO@>3Xn3vcILb tdJg1)07tIXtwW{ {IѼ4@jih62s}6ǼoX2̜W1z1/+k*w- ɨ)Ɔ_#_K%xV?bU!!u37K_5,rW`R}5y02%C:;0h%qCr>},ل~u7ߺR/{Q}mѬ(e)Ťxp2xmxdT/CE# i@i׌rx34T-}\'pa4Dhc ۤJs )(ع2P$e`{ u9 v~\M!XȌيׇ=_ZeҨ;84Ïe(.>'k {Ԣ)Tn};>oơ` Ⱦ!cPhDV &D8)UYiͶc$`7e(>!B=TņXxuΒ;lD?m1s[ﰈ.i!vk'_f-ŎΈ<NR~6E <7j}>CcE2[Òi&Y`HVa7- JhMg%*`<_D#5?Er)k ˠܓ7O>\b/)y帞^>K!S;g-0MzG3 (B~_q5p %| ͻ 9[%)=̛,%k>/:SCɬ!LWl`obX_7iPYP[p6OQvC3%9U qDB[?}1Sphm| .w57$rҸSd?UP xz{^v(jtS`vHFʈ PSN+:,ψQvFw2~k 7RKv2Bb W q|O9FyG"P0phksV ߀^m(W󂱣<`e*9>akZ~pL<B2^lWd. fr ̴IϧwzT顢Cnh6M/{_ˠ{хOS-4 Hֳ` gHR1_t#e)tЉ"DrҘk\(0wQednkArސ4FQ0vC™2ewqg<%>Vgv ÷ɢ`E(WPmg3eׂ,dOϦ.9\ fu<2FԿZ>Kqnb_zT,aLO٧k<L7|%xW94^N }1L^d,LiR|c xڠe7kV&0+_6omz}AO Zv:LÂ*6!x=K$*W uPqXѺH 4IݸslNhZ< ʼX@O f0^PWuf2X{ަC퍝Jv%7;_~īv=*ZO.*-(44%@%?H.cY{8@cpUXV'['67{[Ax` e3s]#4d0} ap0ӍB3!f7Cpbw˅$n!"OW"$^(d+?tbcZJH2ϜyuU$&b3#SQL3\{fVEˉ}C{ ypܮooM@9'CQrd']\=XʗtnSU/0˱-Y9n']\Ѝ \야O–l> .v#@PrQ=x.JQSԦvHQ1Tqgz'gCeh8yf×mxkM[9$OP]d}s:d{z6m>nGZn߉Te((|O.Nؗr-BMPi*MK ukBժQy(\x%wd\4d؈lm𽨟VA 5L:ϏYQCaHx F |=4EN˵W 7 b׸a=VТ!$^AlmF#86Lnf_>r?hRIggGπAR.7 ,[ҔY6V[YRp MBV :T5F6Dz:] /PJc!8M=|29(櫈c&=콺5ph '?U(ev|w`]-n.VkLHJc<\8q~!T\<$upttJuQt9ey!])GsݳocܹDaXu5`Ǭ6zb͹Rb#fG,XعG`>*L[ƽnKn L&4UV}4; Hi1 ^{lio;HHՔ ]vXwxb48* 6KyU:bōjKlap qOo09MQbY֖Y6+udKCJB  )++\Q谺삦ܠ׵ 'M$\,SIKCx?"|s*v"ߡyã)klQ{)= R"! T9j,C`~ )j96MwAʙ>{m'ΎVf)-Cm0 !'y2e ɛ1L%2gF55LU8uׅV$(1j"mK^^,]3#w%'4{ALWöx+-2ܮ2)I~"(X?|_lc/xތ> v2p.0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 215 0 obj 17477 endobj 216 0 obj 2020 endobj 217 0 obj 14925 endobj 218 0 obj 532 endobj 219 0 obj /FUPTOA+CMR10 endobj 220 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName 219 0 R /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [ -251 -250 1009 969 ] /Flags 4 /CharSet (/ff/fi/fl/ffi/quotedblright/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/bracketleft/quotedblleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 214 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 221 0 R /BaseFont 227 0 R /FontDescriptor 228 0 R >> endobj 221 0 obj [ 676 938 875 787 750 880 813 875 813 875 813 656 625 625 938 938 313 344 563 563 563 563 563 850 500 574 813 875 563 1019 1144 875 313 343 581 938 563 938 875 313 438 438 563 875 313 375 313 563 563 563 563 563 563 563 563 563 563 563 313 313 343 875 531 531 875 850 800 813 862 738 707 884 880 419 581 881 676 1067 880 845 769 845 839 625 782 865 850 1162 850 850 688 313 581 313 563 313 313 547 625 500 625 513 344 563 625 313 344 594 313 938 625 563 625 594 459 444 438 625 594 813 594 594 500 563 1125 563 563 563 ] endobj 222 0 obj << /Length 223 0 R /Length1 224 0 R /Length2 225 0 R /Length3 226 0 R >> stream %!PS-AdobeFont-1.1: CMBX12 1.0 %%CreationDate: 1991 Aug 20 16:34:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /BANDLX+CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 72 /H put dup 73 /I put dup 76 /L put dup 77 /M put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-53 -251 1139 750}readonly def /UniqueID 5000769 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou_dV`Ky Z]uMYb[1[l',t\pڮԞZO4GJ7 i!U&Ϸݢh`ZṆhKGz; #1&()$J3KُօEsjFf"P$-I޵˕B 6=hqDV<` EkENrraƌJG ~L{6IE6U'y 0gK>&)o>2\U]$XW-1f@'B 1mW=L%5t.O-]N CT4>&wvNXŅCf עr1fׁVCȖ~q0 Xf^^$ӷ%G7dȱ\lFc0]g<銷_&W{>}N|ӷ 054H4ܞlG>T_cќ6Y1 nUr-u$yfOσ4nAyغINz+:΃΃Џ}=|z`v+D{.;FWLEc6o, e&ۺH%&e+ o='a9ܮ;-sg}l3K?SEhAr;}5٠땷7_KߔZn+ Kw$ZdvԬ|d-prX<.ʢh&2ݧuKH%N^ |peq;$?W8h]%(8OFO~)Y нf4b4tTc$T8*unWϱOM 2S W {Q?g=RϯpyU-ؔkAWk9SJ% OKbpA a hV0gdrmmaG:aU>ͨVwiΌg럔<%`1![IP]\s4$>^O@R4EN58)~{aڻNkinm 6sHPkεGuJ m'ٹo(ɍ\%rJsÃZD4J3mo[FD.SǮ&S5t8o1ka0)aTK~ ҧV9JqN7מvsb!]eGZXuli8=S}uFW)O ɧ56;BűH2ФԌ9#iQx$C*1h| fʐYT:L/LQ;zbP\#6 T#zE k^TKP$c%wYVד85'cS1׭rXƕD'_Fܐ> m{Z)4fc4iS{)ܨ_xWHR`u`Jw~g kW`6Z_*[*<']|8Tώ5Œz8P/JX6G*$G32mz'Nud S5TT[]ђ`bm$%;=& BSȧnV6Ft g԰E7#Mэȋn"{aa42d W'BxA?C@b2"| Y؃gK-n|drD =DyAz^zYm_:);.(W2TLY:mI2 EȬiz)}oR[#RZ|Ǝ+f퀸Zuv:*H6bJ- n)Xqyλ?q2fE$'9]f&l(l OӍK2_>vAOd|ޘ>"*>KK~,-ge9/j@f(.8gb(5 xO yX)j:u9-m>\̦wznF`I,"M[ an3+LWgpiBq%XDɘQ){>N2I_U[aSUihѳqM`2yyrmV '+b+&p)>t&U| qn, ǏWUWϜxqUBI9&\/z.X=Lь6YIvGkWtqV&!,+cX!q&KNG%J(?0ᄸݑr\?vۜ5z~?d\usSrz8G]Lq͇+Ŝ$$J?uSMX <<6_IjZo LMQ1 $LN@hd"inbynYJarR4{m,fΣ8ju_%̯=\?

"S}!5%Jz/Fv64`Kލt함Pc$G˜%Xp7gtOg Fr{Z;ܞbXe S__Fؐe=R}U ]?|5yc)$6h,]ott?ljafR׫#-%au%!O8$jMr[`PgZ,fӅg㪖J;_3`η[r7qq͓Fd3U?ܳJI_ĜvgURE }+rvtpxȝy5\Ba}}hѝW!HL8{O\C*ہ.QvT7:5{+|^SC uk,V |$^hCr4ql=}9ye3x! !B(fm/z~FP+E5iN6$!z|ѱ-k#p=8d8%n-H02۲~KugmCE&>D v9g,AVTI$E b]XbXSf;n;ߧ UqWk:3^Og=+I]չ<;ߛϳ̵ŬLNh+).Tڏġ-ʟfW#6b|ùX\+'k'wsEuJKTz ױS1JD_",9mIoecSZ&ޚI6f U#ȧ\ϓ!ufAoGSRM!aW79Usir4"Yzĸ@tBKVs]@ɀ@Iw-l7{8fҰY sA.®u RAjqansBե͌5'z5NzֱhݎpJmi!?6I[D;7 [Cgq3j?O6 EWo-ӬPZY.zQu w˪<*~mD?w'']vVcy bUC*!d㋪S9.oc|Nq؁+#3μrne{?7z=xi LsQV4=S>e(%`kpdUWΪ}C {wNepו:ퟶj "$# v8K xA* oxꚠ2ܞX:'`߶3#i=uOKa0VDy}/[8DIBw"q/^[W} JR剗3g경pDn8-KfJ1o3?G<+Y6t198/( Vl\h>O7g ꁎ\hL:̟V44 <tb6/= >^ś`oz;[߮U|h]X{6 L\nU?S#0LR`csH2^M¯^>, !Ԓ:Q3MuDf2 y+' vX'g$I7iͰnϣR˞IHZ*[rWHpnռ~=m7(&Fm{ů:Xv+2,h0h4t5t;q:{7]ywO},·&Ew98/'zWd$ XKĒD8CN yt)5k (sXT-J9DB4´*Xtƪ*s7 B>CzHeiZ [X@q}Rc)"; v n|د͍Qs w7/6964$QH*b1/o_!'eQg4;xy1ܐVo`;R-[&xxZsޮHmc%gEC<ѦȘJ)4x-J_tYLǔ;F3c: C؛G/!aEn[*f\['iKRМ+EQGԵs |*硄a/Ҩ&ڹJKd߉X;@mTR12 X+$x `{Q;lv_o#{f:} N9Hƙfޘ.nɦzZ>PnH;*+\]s `zM\RSw&5{b|_f!1JiکX^d$\ ]dlIXdZv&-SErˍG-`'&'[M}4ד+Ø)"xKJ3[@D8O\*D`$p(½Tx0Kљ-1X1]HGpvb\u6gZPp6D9( bzm jDFsL(&uh$T8pb{IR}9SUL5R.@ezFrԼx+Prpz@ ,l+;>R,tt]"wFjdPʿgtMHFFJ %}n,B(ۑ 0&_ ܼxiʼe=GXPn + \MniBv2K C EnThۊEہ7[? ~vIAm4oQ\գKfN%';s_aI6"-iWj2v NHZ"/ǣrlTOu1CϦ1Ps*!N`CCt4lxL(~ Ŏpd譻Jw=/6S򭮚d:)0(+*d_tEAl}C6Y܌+f_ |={2mwcFvÏTFNU| ysjPCot'ph<4^YP7ҷVW;|^ݼ5S79^\Y-<$t/iLJWuJ2}QĬD0ł.k5!cj,B|wP+Ve~Qr*a~|_aځZ!ǹ" )cF7e~3E)q{ȱHIBP]'* s>MEP[!f-hTD?x. G;)h`RГzg?d X_CAG4΋'ƖñE{ V@K \g\|iMfcr2 u t`,z ^OGR [m僿6VKj{xI2!u=v;pDVٓIS'~%s(Km"gyG2TҰ T0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 223 0 obj 11231 endobj 224 0 obj 1590 endobj 225 0 obj 9109 endobj 226 0 obj 532 endobj 227 0 obj /BANDLX+CMBX12 endobj 228 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName 227 0 R /ItalicAngle 0 /StemV 109 /XHeight 444 /FontBBox [ -53 -251 1139 750 ] /Flags 4 /CharSet (/fi/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/question/A/B/C/D/E/F/H/I/L/M/O/P/R/S/T/U/W/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/v/w/x/y) /FontFile 222 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 229 0 R /BaseFont 235 0 R /FontDescriptor 236 0 R >> endobj 229 0 obj [ 612 816 762 680 653 734 707 762 707 762 707 571 544 544 816 816 272 299 490 490 490 490 490 734 435 490 707 762 490 884 993 762 272 272 490 816 490 816 762 272 381 381 490 762 272 326 272 490 490 490 490 490 490 490 490 490 490 490 272 272 272 762 462 462 762 734 693 707 748 666 639 768 734 353 503 761 612 897 734 762 666 762 721 544 707 734 734 1006 734 734 598 272 490 272 490 272 272 490 544 435 544 435 299 490 544 272 299 517 272 816 544 490 544 517 381 386 381 544 517 707 517 517 435 490 979 490 490 490 ] endobj 230 0 obj << /Length 231 0 R /Length1 232 0 R /Length2 233 0 R /Length3 234 0 R >> stream %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /EMRBXP+CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 44 /comma put dup 48 /zero put dup 49 /one put dup 50 /two put dup 65 /A put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 82 /R put dup 88 /X put dup 97 /a put dup 99 /c put dup 101 /e put dup 105 /i put dup 110 /n put dup 111 /o put dup 113 /q put dup 114 /r put dup 116 /t put dup 117 /u put dup 118 /v put dup 121 /y put readonly def /FontBBox{-34 -251 988 750}readonly def /UniqueID 5000794 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou\@[6]nhmlhaH+4/?3&n=a6E#|~.ԅˠLw2.槝sNY ڻ.,VnNX3|裠k(QIOs m;fߖC1}_a Io#0wݙ\P,f *bG3Z2کP8L3r[vnc_Eh~g9|M) }YaѕH|1m![AzXpPNCU7Uֲ7ΖTgx_hyW^]W}s_Zfs@dYr ȟsy&vJx)ݱ~Kq 45hL#q:4pP?g |GJSn^i26M Ęz0. v31껰xCj 7}0a `~iEfÎB wS:;9l[ vqo (>DlqY?kڑo^8KLG7qZC`Da)1JJAF{Ng=CWve>5[: 5SQ &{NԹ>-u\(#ƹ /~FQ!܂f@q͘NJ7 g.%n5yf:ߗ6#;T+SE@8˨[\jGBlؕ*.({E'J.m '26%qDAu2!. cYLnC[ެ2E@jBBn1_z1]6MLvZ=uhEjDUXuCwQj5*SbHn8(e)/b=P%&%d n-'[]{wg/ y=P**&dWп[)1H[Gׯ[:Q&|8! zDFS~[\&s fIt`$:VȳF׃:ad WbHbŏ 0x#RHo3!oG3iPx&\ z`}L z&[oەhS" 8h]t2k`B\S|NA/ⷣ|rH$BvAOӝ`^Om"e=#Z [jdé.CPhNE 5mAFVyng5~q $2D Ӯ9Wo&# 3w.q..ϑ{QLdUj8$&]Q b:kуRIԷpNke1'Drz^7q&5a5#7T1Hg&K.7X d{noӠ/IX RT#FlhE7 7k/v[js4C-š&(2Gtd1jk%ٿ6g_= JlGnDb"Sѣ&ө!zPB~lmm!CzЏ+lvFql1c勨cRdḾxj>c"cԆ̨e' $xpr&:{@_dșɅ!-4=L==y1geG$(2/|otB; ||! g!Z \MĔkX =b5W0Z@"l;֧?6mM-=z3N%ޠu}]>G3j#=D֏8J{%FQ3V@8/::zm9JcS:dI}0džs9 x$KħrQw_S @-8[9}ED&|St}=/n"ZB]_WwƞUK4Y5<}3netu9 [Y-OY:؎C0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 231 0 obj 6144 endobj 232 0 obj 1086 endobj 233 0 obj 4526 endobj 234 0 obj 532 endobj 235 0 obj /EMRBXP+CMR12 endobj 236 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName 235 0 R /ItalicAngle 0 /StemV 65 /XHeight 431 /FontBBox [ -34 -251 988 750 ] /Flags 4 /CharSet (/comma/zero/one/two/A/I/L/M/N/R/X/a/c/e/i/n/o/q/r/t/u/v/y) /FontFile 230 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /FirstChar 0 /LastChar 127 /Widths 237 0 R /BaseFont 243 0 R /FontDescriptor 244 0 R >> endobj 237 0 obj [ 576 772 720 641 615 693 668 720 668 720 668 525 499 499 749 749 250 276 459 459 459 459 459 693 406 459 668 720 459 837 942 720 250 250 459 772 459 772 720 250 354 354 459 720 250 302 250 459 459 459 459 459 459 459 459 459 459 459 250 250 250 720 433 433 720 693 654 668 707 628 602 726 693 328 471 719 576 850 693 720 628 720 680 511 668 693 693 955 693 693 563 250 459 250 459 250 250 459 511 406 511 406 276 459 511 250 276 485 250 772 511 459 511 485 354 359 354 511 485 668 485 485 406 459 917 459 459 459 ] endobj 238 0 obj << /Length 239 0 R /Length1 240 0 R /Length2 241 0 R /Length3 242 0 R >> stream %!PS-AdobeFont-1.1: CMR17 1.0 %%CreationDate: 1991 Aug 20 16:38:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR17) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /NTGQEB+CMR17 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 39 /quoteright put dup 46 /period put dup 48 /zero put dup 49 /one put dup 52 /four put dup 67 /C put dup 86 /V put dup 97 /a put dup 100 /d put dup 101 /e put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 114 /r put dup 115 /s put dup 117 /u put readonly def /FontBBox{-33 -250 945 749}readonly def /UniqueID 5000795 def currentdict end currentfile eexec oc;j~EЪ*BgNӽ ؑlKq*޲Xws|QFqv`zXMyp"5O˩YŝP(DT![v67XFlU&3!Rq4wσ~j+ou_^ 2nΗ%)[yi2:(o Gu^~kτ>(O/߄ۤXNߵ(ӸaXœIli-i{.%Õ` vEa!n]8rCzi.;a.|&Lу׊@a, |/"UZ%F 7?@^7>at%Tcq{K9a%-dSKKV$m3+8&t}2oM# *w6`*s:82hbwC$o&I$}&3Ͻ3i b3? K{\7j}8fnd Zt4~d. (w;ZdLBarεR['`a_Btl27[rLPYm 力HI~xܧsbVqڹdd@xi۩4}' q~t0D4Ye'ݦ!jvBE`ҩ^ߤnd)G}TyRH. !|ZZWT ]f 6ECֹQ/5-̚tЯûC sEk# ;DV l 4'&,"=aUz0T􀠻(}nn10]Cn*+[Q8Y+y(ȓh]&K|=Ll…Si8CӈnOȑXЈ CcN!z>Ckv}χ`y 63/fOңG ҧw9Ws F0!Vcl򈣘kuMQ|gCK&=di|g?.+}CqayVUQFf>_O|l |X%mhs8^eۗ tMfK>b89 UlgQի~~[+`O.]8$Gjtzx=Ap7az34Bf6xjk:?y00[2?yWfh{{3iYQ~8y+.(mgcҭoU)X1)jIQ0F1# *S a1n,oQ;u jNvX@ΏihHTW0~r -ޥb7A;Z:[QJOZjSړd^sM&4Gkyb O-a <_>+0d1Om3P.:qANІ_TC9=> {"x{7t |d:%=7FRX0|j 8p3d:#'J΂:2[cIBZȹ .$i~r 7a"=씑B1T(Ñ4Xh,tX24L#6O}BXښI.Q#ϥ@RC0rBa)miq途P~]ƱKiCd+><${AєD".Mw>\Ha,p!n@?U] gr6;O_?WNTgT"-p$E/}^ .,(. IW'gX8c~z>`%,4"xu}LP[X6DZ B+Ee-Ű8TrƢmv]lRWd :[G"廚*9e`r+LKV`l~,\_M(< GV2K1LTgUDÜ^rbX / YqeߑbᵻtRg<.B/qZiN~= _zr-=LSr9FRw0>iϨx[.Ȝn[+=j_12`Ul۽y| Ae6[Лs;LA̍^E uH3כ ](Z"7ujSMw(BvzfIB}+ )_A,MmAV5lw{ "1iDy'{G/&蕞xgu2YvOz^4!UݛP*k.@1 a}{ij:mJ˙Z-=Q*͜:z W);UẬXGkhC-`G5E&9`}CL6<ۏpN",_lD,fZ1%]5ze$Jِ=K8q֙roCam:e  ruCPzYvn+yo00]߈%pb]cbFo% G$9#6\MUdvcˮ[)/lAmbCs^')nJ9>0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark endstream endobj 239 0 obj 5132 endobj 240 0 obj 1027 endobj 241 0 obj 3573 endobj 242 0 obj 532 endobj 243 0 obj /NTGQEB+CMR17 endobj 244 0 obj << /Ascent 694 /CapHeight 683 /Descent -195 /FontName 243 0 R /ItalicAngle 0 /StemV 53 /XHeight 431 /FontBBox [ -33 -250 945 749 ] /Flags 4 /CharSet (/quoteright/period/zero/one/four/C/V/a/d/e/i/l/m/n/o/r/s/u) /FontFile 238 0 R >> endobj 12 0 obj << /Type /Pages /Count 6 /Parent 245 0 R /Kids [2 0 R 14 0 R 24 0 R 28 0 R 32 0 R 36 0 R] >> endobj 43 0 obj << /Type /Pages /Count 6 /Parent 245 0 R /Kids [40 0 R 45 0 R 49 0 R 53 0 R 58 0 R 62 0 R] >> endobj 69 0 obj << /Type /Pages /Count 6 /Parent 245 0 R /Kids [66 0 R 71 0 R 75 0 R 79 0 R 83 0 R 87 0 R] >> endobj 95 0 obj << /Type /Pages /Count 6 /Parent 245 0 R /Kids [92 0 R 97 0 R 101 0 R 105 0 R 109 0 R 113 0 R] >> endobj 120 0 obj << /Type /Pages /Count 2 /Parent 245 0 R /Kids [117 0 R 122 0 R] >> endobj 245 0 obj << /Type /Pages /Count 26 /Kids [12 0 R 43 0 R 69 0 R 95 0 R 120 0 R] >> endobj 246 0 obj << /Type /Catalog /Pages 245 0 R >> endobj 247 0 obj << /Creator (TeX) /Producer (pdfTeX-0.13d) /CreationDate (D:20020501184600) >> endobj xref 0 248 0000000000 65535 f 0000002419 00000 n 0000002306 00000 n 0000000009 00000 n 0000002286 00000 n 0000180447 00000 n 0000173163 00000 n 0000160675 00000 n 0000141809 00000 n 0000137630 00000 n 0000133934 00000 n 0000127758 00000 n 0000186719 00000 n 0000005190 00000 n 0000005074 00000 n 0000002566 00000 n 0000005053 00000 n 0000118048 00000 n 0000099530 00000 n 0000089141 00000 n 0000080920 00000 n 0000076245 00000 n 0000072478 00000 n 0000007222 00000 n 0000007106 00000 n 0000005388 00000 n 0000007085 00000 n 0000008464 00000 n 0000008348 00000 n 0000007373 00000 n 0000008328 00000 n 0000010385 00000 n 0000010269 00000 n 0000008580 00000 n 0000010248 00000 n 0000012384 00000 n 0000012268 00000 n 0000010524 00000 n 0000012247 00000 n 0000014843 00000 n 0000014727 00000 n 0000012511 00000 n 0000014706 00000 n 0000186828 00000 n 0000018119 00000 n 0000018003 00000 n 0000014971 00000 n 0000017982 00000 n 0000020967 00000 n 0000020851 00000 n 0000018246 00000 n 0000020830 00000 n 0000024268 00000 n 0000024152 00000 n 0000021095 00000 n 0000024131 00000 n 0000068428 00000 n 0000027124 00000 n 0000027008 00000 n 0000024396 00000 n 0000026987 00000 n 0000030059 00000 n 0000029943 00000 n 0000027241 00000 n 0000029922 00000 n 0000033546 00000 n 0000033430 00000 n 0000030175 00000 n 0000033409 00000 n 0000186938 00000 n 0000035963 00000 n 0000035847 00000 n 0000033662 00000 n 0000035826 00000 n 0000038243 00000 n 0000038127 00000 n 0000036103 00000 n 0000038106 00000 n 0000040675 00000 n 0000040559 00000 n 0000038360 00000 n 0000040538 00000 n 0000043404 00000 n 0000043288 00000 n 0000040779 00000 n 0000043267 00000 n 0000046285 00000 n 0000046169 00000 n 0000043521 00000 n 0000046148 00000 n 0000063792 00000 n 0000048571 00000 n 0000048455 00000 n 0000046436 00000 n 0000048434 00000 n 0000187048 00000 n 0000050403 00000 n 0000050287 00000 n 0000048675 00000 n 0000050266 00000 n 0000052024 00000 n 0000051905 00000 n 0000050542 00000 n 0000051883 00000 n 0000054029 00000 n 0000053910 00000 n 0000052106 00000 n 0000053888 00000 n 0000056823 00000 n 0000056704 00000 n 0000054111 00000 n 0000056682 00000 n 0000059205 00000 n 0000059086 00000 n 0000056927 00000 n 0000059064 00000 n 0000062442 00000 n 0000062322 00000 n 0000059298 00000 n 0000062300 00000 n 0000187162 00000 n 0000063698 00000 n 0000063578 00000 n 0000062582 00000 n 0000063557 00000 n 0000063927 00000 n 0000064460 00000 n 0000068105 00000 n 0000068127 00000 n 0000068148 00000 n 0000068170 00000 n 0000068191 00000 n 0000068223 00000 n 0000068563 00000 n 0000069104 00000 n 0000072162 00000 n 0000072184 00000 n 0000072205 00000 n 0000072227 00000 n 0000072248 00000 n 0000072279 00000 n 0000072613 00000 n 0000073157 00000 n 0000075891 00000 n 0000075913 00000 n 0000075934 00000 n 0000075956 00000 n 0000075977 00000 n 0000076009 00000 n 0000076380 00000 n 0000076919 00000 n 0000080583 00000 n 0000080605 00000 n 0000080626 00000 n 0000080648 00000 n 0000080669 00000 n 0000080701 00000 n 0000081055 00000 n 0000081591 00000 n 0000088776 00000 n 0000088798 00000 n 0000088820 00000 n 0000088842 00000 n 0000088863 00000 n 0000088895 00000 n 0000089276 00000 n 0000089814 00000 n 0000099135 00000 n 0000099157 00000 n 0000099179 00000 n 0000099201 00000 n 0000099222 00000 n 0000099254 00000 n 0000099665 00000 n 0000100198 00000 n 0000117335 00000 n 0000117358 00000 n 0000117380 00000 n 0000117403 00000 n 0000117424 00000 n 0000117456 00000 n 0000118183 00000 n 0000118717 00000 n 0000127379 00000 n 0000127401 00000 n 0000127423 00000 n 0000127445 00000 n 0000127466 00000 n 0000127498 00000 n 0000127893 00000 n 0000128426 00000 n 0000133576 00000 n 0000133598 00000 n 0000133620 00000 n 0000133642 00000 n 0000133663 00000 n 0000133694 00000 n 0000134069 00000 n 0000134613 00000 n 0000137315 00000 n 0000137337 00000 n 0000137358 00000 n 0000137380 00000 n 0000137401 00000 n 0000137431 00000 n 0000137764 00000 n 0000138300 00000 n 0000141478 00000 n 0000141500 00000 n 0000141521 00000 n 0000141543 00000 n 0000141564 00000 n 0000141594 00000 n 0000141943 00000 n 0000142479 00000 n 0000160063 00000 n 0000160086 00000 n 0000160108 00000 n 0000160131 00000 n 0000160152 00000 n 0000160183 00000 n 0000160809 00000 n 0000161347 00000 n 0000172685 00000 n 0000172708 00000 n 0000172730 00000 n 0000172752 00000 n 0000172773 00000 n 0000172805 00000 n 0000173297 00000 n 0000173831 00000 n 0000180082 00000 n 0000180104 00000 n 0000180126 00000 n 0000180148 00000 n 0000180169 00000 n 0000180200 00000 n 0000180581 00000 n 0000181114 00000 n 0000186353 00000 n 0000186375 00000 n 0000186397 00000 n 0000186419 00000 n 0000186440 00000 n 0000186471 00000 n 0000187247 00000 n 0000187337 00000 n 0000187390 00000 n trailer << /Size 248 /Root 246 0 R /Info 247 0 R >> startxref 187486 %%EOF