base_dir/7770000755000000000000000000000000013034373446007770 5ustar base_dir/777/Amp-pre1.gif0000755000000000000000000005041111346364056012125 0ustar GIF89aR  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,R H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KLA&-k̹gCM3CgFͺ׉U˞M۸sͻ Nȓ+_μУKN2a)7.-| "-}n9-ԨY}30ZcvEKWݴhFBؚurSL]nyW6A{I7j߉7ixԘ[>u⋫SC]G z:枯Ұ=]Tْys9~. 7 /O<σX*7@^@q,(b,~^/B+ Sxт{` G/!H;T1yHB at *`X9ЇOD##gc1=S"-h< x0z @áYI*q\`#7+"!+bHTt[$g8Pa"{F2FdJGBōnK:W1s^wa:owD?(WRFK Yǝse9N#\X=wFgDSlI)JV"ԞWDcVJMɘQlDѳ8щ%ՏY>6NAʒ!$M)Yye1KC 4^ OS=dtHQڕv!D*ϞB5.;}ƫhv]7mw^<pyC.bxJ,9Ӫuyb)G}'liI?9斢|kRY0N~E~v$zx #Ha{ZQ뵏X=H`k-9}VzK^2~ƲG:/nKվ=lj|NseB}u~}wrr[@!m"}+Ht؀X~w4x75~An&hmǂwro2zg)Ll'WoFg+}Dw^&QAw~7HXl\w\Umwg`gmdȅqWOviwLz&CX x6Yk؇_VlPzg 'gdu(~ VOxM5T(8iEȉ鑉NEx`hDx|CiQyPd(l 1o _@ŋ_ӈƇ&8sNfs&0v@4%6Ȋh8lQ)3p( 1*vQxoA \8j(bVaKhRBuV莔hph"oVF&َ'MT[8H{GBXTC:hhVxBG)Ȥ37)?$lZNiyz(nsA'rHr啑^il\1kYm m㗞1cXkt4e)9h6jra1riLC6q{KPɍ]_TɄ#ԗp);4vR x\j:gYBiIyGIBi*q򤛮Iwu7+TBة" țeMJ`Wyًٛ=r&֟yxɟWU<!術)]]$ i:YйFE1!雪)J!}:VZe 1F:z݇i_Šgm{ٞB:L"ש4sGwnkf E,wդ6Xd(?c¡Y!.է3jvuw5n,XXZC~#Q g&! QzSxz;{d*cZ?.ǩ)T|cxT*m~_\BWFjj{ʓ bXJ|dzH;Q/eZ2Cd SW*YIcg'xR-دgG;ZZDɌW[Y7Y5dJ 74Jnw~[.B^^E ۱9jК =ŭ'K%tjSGڒ㯝z>ʴW:S+6JX)f{O[T*zʁ[kSr bd([FgCy80Filnzve5. 4Da[jjVgEUkm$;&U@ f*e"v/;niU;is[OXպlg;'+zńf͘s0ɫi*\ ^'쩩pUtK{Wۢ k[HpЦ{H.vRܡ[>HܻkKh6$`| Lʘ|cU+ BZ{͏ʜ{ɶx-V}D2pʑҕ?LJlwǼFl}A$Nai*t-~D4Fx@ٌE۽}X~5- ]^̬İ4FA ίeYڧ& zS}h>e>5x³+ \3+|L]JaB [LՈ5FNn.T^Zm(V:],C޹B*+Jk;>mt`NЈؓI8鼌 e.ֈXޙL=礭ڎ"ݥ{.`诺5^nR.۫юݾ>F.R^7nޜ5In۰HYT /+]{7N,r3_?qIu{13ه誼7*ՐޠVxk…o۞HL(N;w>C|$^ߏ/ 5_uNDlql-& n>%4yT_.uze.Vo ֲpG/ͯgEdɉ֔?Ao[ớ߻\c*SW>{{ZgoG G$ќ?"^wX h8Р.dC%NX"D.nq"3?'TbJM|A4uR%A.H(ˣIsM;F&ԩ;2YUf*֬‘gD" PT̮ޣj!0G\QFBd.tq""={QɐĩIb|ʎ| ̠4<K ȤO:S72ƵO>uRO#̘5KQdT:C&K|2R}E=SP|/ŴX /l}WvtS+u3b-9aֿ]ue5/.[m9HSSp%z/Pe\Xy0Lu4:k%5yE}W:Jöb.wW?u8^øS^m]-@Fe55&L8 ӆaY,Ofգkf+c2fh6u,4lvdR]iL&dXE{%^6jO::,{:ϸ>p9Yd$r_A0R,Mr!W"d'lq_6?9^Rt<=F( bK]o0D Q5uv_/˟- )vfylf)찊*OϾXMj|Nv>^3~gNFpXР9r)v\ư{pj6^,?a6*%UKָ(N N9H.L1f0Rn2tiKzRsNQ=tC-OVqj95<\2TyD8RV* ɮ4c:P*WJҪ)VJAJY<*v@+ β D[:P}˨+`*XsDMj[X~^":kZh -oņYX햚SmRibl $*tQl`C2ϵy3Y.u{cz3{E) O{J.dd Oc2固>9s㸓{CrHD7DC;Afr@s&X ՒE6+SEHEk4R/+$ /جV[E^F25cBƢQtDL"sKTGҪEx'8-G)z˘eER*|<,,Hwa(ID2HY-HPDT4r=\7{X ==DV-ՖSȋXh;XMh{D Z*1"YZX֘EZ( DUT_mԩ ۃ؞!i|E@uYuV4[#9tW{[FuQՔ"UeAd~ʣWɥkQ/]N^+m[}[w]\4UYMW;%]],e}ʵq]+ׯuݥ=?U<=eP|\QU`aea1W"ްMb58LFBمUdx:m;'$ >@^"n'Q}M|Ad5T"rud#%x!pWH2j0&Wj%'heU麵]2VE[h-fLdN䶞]AlEk,jإLb~cƞaŏ7>}@3F-Nw{O>=FnHlϔd D6^'Sbn~mk嵤]c9kg eߗdv$b6_0N6Z;u6⎖`jƶqnon^ ^ZΦOTpŧ.f6l%^j>#hJ И!_Yp~k"Z$.nHNf3{p&gf~e.g^.ۦ?︊0Pt_Ndy\hrsN oY(͎F7ی1E5ώQ"dc?y~eCr,#pF`L\PLn-t)I_=L_lOwS ߒT:A^[U9VWql|<+</\lQv+v_ v rYL6WW>h'&uow=niZo%SLqFWxWwlWszE+vqʑVR rꛓ=kwv#.Ww@lşt{^5κw6Wuiįw /ylywp{ ||/ths'ՆGNmgH??/$sT}#'_5eݗw3oWQ3cּP^o~W,h „ 2T@A%6A4j8]BwƇ:ux4N\4YvA5PgEE#$!+( NcԖ@}u;䒤C ~ɫ}.g,&zRf )*pֈtN'y2ץdL$}fԘ-ը8:̍|iEzlԝJʠ~YҙF};L 93nu1T[ZBԪO[YitЙhMZֹKis>[|a'L)F6KPe&.F'*ͫGː~vuh 0͈T(Z - & (1 (JV-n`*W2YtTbL1t+/{ZjWVf+^vj_NVo~>muxQɾTgjUŴhȔ͑P/_ E a >Flá",Tn*;sG'5&V|y+өɰ pK^$;n(o那*SVP2XVٸ,vsy$"y%#t: e32N3di.\K3e*+ZD̲RE[ou骮Ј~c[F;Z{ŰJTҕbe{ S.0OjETsd|cm+NXpS*PDlf+ J;p^'g˺δ.mW*[q.!n]d7{G~<' _n\]ܵ.Z4ӳ`Y2G[P7ZnhʻR[8`_=\e<΂%>v+['5=(opkIpt+U'd'qij6o U-كv+3wΦ: ӯs:鷿Hp:Ɲ1ż܍zfsdϊn{!g.٫?-F`gc}Օ%q{-Ykem5mMvR[s{v(OpW<}ԢWv]tX,k}Ak-/'~lC5vK~p:3}ĺqr%|<UU Bf6$72">c"?*٢I X`e\-(cC>!"F KR >& M^X1šKdKdCݡCJ8#љ#YQ$J[EdbeQnm JVhed-VfQm+2!SQהW1QRZ![1O; T!_YV%~uUZ2ZY%QTR%YU:f Gq6DDQd/2frfVN #`ƥui\K&^Pl*K5f hݹ-y#-9n.(}W7NqrHzHr&Esɑ|'8 g=zzj%gys.9BgajzZ$_m'йmg?%yإe${rK&o(_ʧYO}EIee,f& &riAٰGLȇg=Q EY]@%bJl*"0#ce& )h|hh}䎎?gjդCgsܰ%*0:(bj y闆蒎)_ IӒΕ>hhJ 耎(i.}6ߪ j+f~Ղ2>j\Κ@, G)Rj~*)m&0Kf'd'r!|QB&Ilƪ6)bkԩifg ¨n+ҏ׺ 讶xMjN(n+&kfd=R,i2l)Ķf&.`Z$iw|"^rʚ`),klqlU{]#mɶ孢lL%iEp$i- nL^.qen9zj⺲֦,,m͖ .) )o>HRV+FFejӶ&n8hchov*:/lJdH'ɂ(RX|/ ªn*J(%t) }00'Δ_l p'p 7ho0B9nqZ#H0bd핰  ˊ Ԋ/Xp kpV#R0#n_5 /R,0.w1ި3^%Ҥnq[\.n11Ⱥ1q $aOo1" :"q WF%X2g %!w(cOFF$'q*p\i&,{l+ XZ2/'q0N%n3oC%"s_I3,njѠ~OZg^93:s9pe8s d䩳=3>9]VH3үˮ_;cAl34@tsDC/2tCD[GtfD%F#tJ4HWoI?*d7Ȑ_psLsĊdM5HOwe=t :ua!rRg~v TsV֠T 8:rlWK41zuXsJ]hںu}ٵpA^5u OJ\?6 b? b3\7(.,c[.X__sn* LpҬ H,ӔBCH6oo'g6Xh& imag7[Ñ;"dA[2֋r_ ;+q 2+l1k$G?fs_Om3?orq:n? 4xaB 6tbDLxcFdH#IbXeʆLXd1!L2]ִygN;y IgP&5zIKt TRVzkV?vkX`ZSَeٶu.Hq*$[oλyQM֯] 63{7رIi)z,6qd͛9Y+dУ~&-4ט-l-tlٳZ}[4m-y%.kYr4pu ܩW~5`h rG;R/1z] ˛O>49Bx "Ѽ̛>z-oJpƗ >Hg-k(f%c9<V~B]j^+^ś$H hػ+mOG }zGio?أmz `W@ y Gk(p)jsTAE@` EIT OXA m \Yc:mUU4'PA!2ChHJ tT!J$I(]Yl$p1D^ Dn-< D-0`<G(FqRHQWn )1lUiF=g &B^u|$H8EV!AꔚTWHO^KRxF4&(TĢJ_vG S:Rq` ]ь*`aӈ\6әsj"2YNDoLb7'>ǜ5HOS.b}j#Oƞ ,t"(br6)DXAMȁ5A}SĀ~sKBeP>Ov EyG5D~hB6XSݦxulj :f*zTHL\b}.K"rWƦ i"ڳq <<+[ȳrLWRU%|pCYCׄ\ J֞K ,}nF$>%Dr_y+hWS>i4VZBP2('QCڇ`FY̓A5FCAk2J ūC*+!K)5_\эW%Ν R)\>Wdɖw rW|MWGP2La5|#VʊP _fOܒ %lR L%w^2G-k<6MH["xy 3Cj:f5^Ջ tX\sR4\襒eX_6 b=*=Ztj jk' -dsdjY[j3)*j&Եmk_ؽ^g z.}@&AfoZSdXxŕDeF/{! jX)OCc(:!w.` q'f+E O **K _d[RBZm辑Gzt&\nϼ5zgGpɍ9,<>oefWJ;t iXQD۔03_z-`f`TBH9㾸 ?Ȳeg9#EH$k]A̻fwXז:~f66ev@~\vRfCYwH9XXnu[h|6XtFy{p @<7%GgM/\Aߕ@gt,NKvzh_:^WLA7t֭!K̪ !o>.Lx*{d.bP=l4Lg\Sp0P46"¿hn]PPwY*apw;lk\t0L|PsFB(. >0um,m G\S~ S߃ܐ7Kmf/ذ\VFpMѥ1 QU0p$R3QP'l 4E&G"^0%A"= qʨw1׬'|&ڰ*v1.BQɉq,mm``PV QqobbQQ= hf[|Hܫ̈'GbsDn˜d1V 1i &J7&}ڋOZ8,sd IH9<T@SO -n*H[Zl`o[X'60 *5)'w,HrJ pݰ Z$ ʃi`otM R)ό`.2p,f@M\殰&R rd~P^r܀qfcv!dTqZ#.|k@5/l&h31s ` 0GK#=ާîd|)#kHi%`:u0R6Q60u; *`91.⬲)a~sx {HM^B52+pCUY;tEYg*/NT(UHHWkGWW(XIdдXX'Z_uM̥vY rٮVtN[[\B,U$u[D*^_U___Uن]qUaVaaab`Bpb+0b7c;c?d 6cpdOeC\.6e[eIC^_fk1fsVgIbwghVhh3I{R$`RM Mpe,a'Kٓ ae7zVQ߿ lDsK#1 8Y ծL(b+Cщܰj:mM.=q KiI[rY[ Dnr m Ae'7Mox Y.}uK_oMO|s"8Hp 䜓mH@a *ޙȕ&avǃ(7NE;>pU!Z! vga-y0?|VN"$]!}Fa܇s *dz{DW%|atK~8MDXczY7 oW_ {k{-v>lnVFyVVKZdXXo "=ǀ7~тE|$lfa:77GOăDzA8QuDȀTOsLTVv4Y{Æ }*fakZlXrnw$yJgil8FFxeFWSh\k8ؘdh8>֍՘qF٨(¸Pkojev-h(|7\ d-%~gE5JsJ6M Icy5Qgf]$7*钦Zx$ #:S0 q194`xh\3s}}} yQɓi9i clpƑXs&ͦHՓc@8WjUYxBASP|^uٖkٗ x!{p YejT&ESyXygm$VXۆB De(F!i(d$XFV0V(F3`&gQ=N*都؅"s^ix20\10ٚ}#M ˹?)R4[yK9yHB,9`| ~>(zɔi%|z%L!h^ddi2=T&MxHrI]eՕ3޹y zgy&UYs٢6ɜI _?ʢB,&Pչxٟ18#Xxsatpuc1haiJaaT4gyS8{ $q5rhLVVlj!qjvjt$0҉]ԕSe\5#թ=8 )'Yg#ZPw 9UXbNl)xUH#)d2qZP*y{}:ab͙ocU4غ $w*ʭpE9ẒwUc#xE (F;y)(A!jR:Z29&c&-kj2)Άˮ!p1i2(1@Jt14j sִ+8K׳J?$:kt#Zo LlO Q iLz5>+ u HI)09ZY؊0˷rc˱00$[` S1m/[&;S Y39 ouY1D[zfp+rIeoU^ ';Uf;˶⸿ +n?˩R=[L{:P}0 }iDyhP+˲-[drkr7G>]zkgz%mh[ݚaqau),zv&YؐԳCs6&Ũۯ㻭 llЙ7,a-vac;wkXs*94fH#]x"Ǡ@ٙ|>ZpzM5\V|`< WrrS\7ڕCMm_ tMc 8[ ;Ʀ0A chR\\gHwզj 7S n\8Ԭ)իy:Jխ ڝ.7aյ.ج !h?Gf}lٟh ~.| 1 g=gV a6H.ƥӊtS ZgA:ZTLaJʖI_Iߍ,mc.i WqINY*)bܵ#N%0P\}`H`nMa9Z{nk TMݜ,WzqKi) xZwUlfwCa>LY: %1.̷L!:Bɒ9Ms:7▛%ى ~1M2ԛ2}dsc+EN4LʨڜMyRZ>Pz7qn%WES˸man&/Y/_A)=Uhi=ns Đo!K{~'A6坭ɪw|Uqc1SB8`"4!4"qP "+~]tk&Υȁxe@]i &/W'$$o( N,/`W_55 ww c_"%| FpH~Phc5`V$?>V2;[AZIq(K9`Ze7\) 1l"1ԛZ/%#~Y}4!xTyxzH9ߓ&ɋ8kDFH~Ko r'?)0fEϋ^w1o!pHpB @ &āA"D!B!E$YҤ OdٲdJ1MJHF0DYSƏ'#G1.eSJY8AբE A*_A"` Է1r(u@tWG!-V< bHWMd+K8p˕5olr"ʌ2p OZtǭ=ȗޮkcm6ٴݻvpc6ɷCW);L!u b^~ N>6֧Ǿ^}!O`j/>۳h\h3 (*4*A25󩡆د fE`I k0$Ld!̯#*JrJj;IOjsAC :0K,<,"rFMʬƒmPBM3sm#M+H" (@CNzM7OnS଼T(FhNUg5o+Tq :ªXAT 0LmZPbֱ Y¶*1ZԞ y?0]R0 q(E Xf 762۬,IB2%Z̩ZϓD}( V돨j2R*jE6 OϓKtܑOjzi)ct, (Bo'T{JU ^Wju;5S@z3]_ <9 넴M21 `j&ɻJTlꥉhmZn{ Jp$BG=ץK ' 77Id^ 8 WdۢSeX X.[&IM;^wCzZIw=vY-ka*`6^(e;x6+mq]ZxT(_e+npm3y*zvg::t!J#/ x$Ab(.dSC~^J̚bƕNCצ!~haLN-6k"Ĵ Q.K"QA{^ǓoKXJl R,R y77L1G$jIQ,ܷ'(pmaV".Y$l t,JMeƒb)Y$㔌y |6zI`Vȳ!n}yWhAxVTHhIij/uxk \r~N4b2t;%=V7"$Xbv$X'A؜a!\G= H!TTl'#XH@)Z3Kyӛ'XcU1"2$7̥ʑ`֓E1Tf}$tG[]aN՛Z1&C8)@3@k[J%n4]i V@qgU 6jY̨2ƕM5k>p[G࣓ l7sVUj)Hb2:1Mg ӇAo%+jlVD`~")];ڹ4*GWC*J+:Hʕv]!uׯ9K5g,a>:bvjvF"$H|#^I:Wl XRۙ^x5*wFrO hToUB.5-uS6xTvtJژʹ.v󂸃!A/w ;XJ2K ';o.U>@vE%8!5L`L`[~mP 6u4 o&Re\' <W̝-^q;OA Jj ?N#@+؈x:RFִLh :_4t_˙A2q-mޟ<ao ֌#=j! _֏Ƶon5eس%l7ƀ8[˱73u>zPpej^)1'QBp*Y(1^? d!kA @K8B ʋ9db$/˰ ̶;A[@="L ATÀyAk!KT4b>̛ BE@pA»s p&'4W-]B*L?K,Šz%[4H7^$$`tM iC7;%kV x,˒&H*P,.+D@'A(`\FG˝Ĩf$L4|%Ks~#4R!Cs7V0{Y̙d4nL7+49\t*(<7Fȏ9F^ yǐhZE7I({8З(I HsԒ@h@úۧGDŬ*>U[LI GAB:VuoU7Y::h ;P P#U*sP cB4ő(cP)10)XXM"T]͵C @d|C5h1䎠֢KH[AY0zSԉ9KWTk ~l>QmQ5ւ B4HeKZx$Zt3X8'it'[kHK ¥JpٗefmrSKP 'P=MhzD]H+KIժ41yWfτ8Mx Z!"@e4/mνE.22YC\B̌G|'ZKӣp ,2{$bkPE\=ѭMMU.umLE`\MU`9 Qh Z[ڷ+5tޛޡ)4u[<=L۬u\fI<ԃ/PS>Q$ <\մΝŲ=ݤҽG=QI5*~D` Bݰ9 SAԙbNH]YATa^:]ai n]+_F3 0G%6G&n{D)_r'N]b":[nWOaN\$VRݕn`ea4A1:;^F?݁=\ьC.5-E&}MZI8XWكJ Jd}dP Q^-e9>NT.T*ִZ^;ˈDgǠarc -p XWaa%+XVi>?kD~\ `^!/Ӕd 0K^ y*g3l\Uc۟sj>M!5)H^h>E@NeSȥxN{~1NagiYiݿ.3@$-HN#q\N !T^ԡ^CUgQ~s⑓ZٽA˴j\-^C x$ҞcuI֝ie2\XTT]!ҠU-I[n^ߥk{XI8 tZlt݌b3P쁹lS_hdfb4ۍ5  *af->NOؕN[lm֝ChLP9;LfNVJOk[ڋ378k/Ӏn%^"$Uc3ko@Ua=D`XognɞUgJ 2 v% hW.dpHpD^+ eW𶦑ߦ^pֹA݃(g綠HDgB _2!(MFZ89RD˻R&}N%z6ݘg)Q4ŻO>-?r+L0ԦexI\v]jږuX!skg'@wqFo'ustHm8eul _bXu, TU}uX셫)Tv)|9*w%V̱\:pʚVQ:2k!.Ubim.=f"@o3m trwl.u0=x3g tw%{# |'}C!W!خ(B=Mf_^r y{(u~CZBƎg!3@7`'>y?M+oyJJMmeԓs- tT sۑD)C7ml樇+Q [;3Ó ":vn6 _{w'j{Pu'0ͣɊZ*|(_;Kb:Wt* mKg:,8p :С@p"apE>Nl0ƅ Oņ)bؒ C!BlB B<ҤJ"=J)Ԃ.vϨZ b}uQ>Z`vBث9mŮ P58?(rGuǂ6Zzr$tai%Ëm)cO1 dͻy6[e\c[ޫ* >O+K^L^-8K}C=<.pDsd[;-T-R6l؞R]Ʒ۔T8ZY800=NL Jg6 . 3x^fO¶>)*P1`1S -]" *?`C.M{ʩpC p৳*Ly( WMPaX+_=1`# l"XflErCchG Π3v0Aeg Ry ,v!)c0(zl)@D@XY $ ,!VydΔ&ܺúx&MC0' -Q Z0bvb4M?Ҍ_[Vƃ)ppL/іtgrK4Xzd$J=3ϭӘTSF<{\>bN=ԉhTVKx1EINس)_ EagPia;i3WR9($E+ A2Ρ4V:H@$9ߘ΁'O~K Ɣ"Q)hCֵ*HU9ڱi+aiWlQU ŧ%q$KI_T99Ua gV #55z}~ZWPtTʬVp-j_T 3L2+lֈ?*j6 ݺ[)h]i':8f)5mQ 4U%$T[Tt!&SEd:]+jo,uZn Rh ݳnLWe J!VsL dĺşF,X\K45Orw\W閒;,݄ݱ9lmB"kdά((C7k N=a XTBQ$ZM.D,}eex VdbOhU(Lcn͗A[a9D#=`b :K_'r,Tze*5hK zVѤEd 4ًm}2 *sX2fxְkIO/ ,ʰyͯn09Gr&U^pT [+][Ї @mMLs4 ;dމrRj8K}'':@H:VX׮7T9zN Z`Gk넞2eĊEZ`Oc F !1 Sj՘d9`FO遌YMac 쭜`2"׵jQ ^ՠOAHb Ȉ@pMVF]G+ڕ$Kw. c0c+N52iAK'95^ &A_˵a[㥢c# p@ 0 EHېL!^{MbiTeb<e#zx(m-Q*H.ubRP_Z p二F1/@ _tFJK$2d(*N3joM#5!rZEb Rc;iJfd jI )1) S?NaZ$P݉Mo$sZH!%e2ZF+:KSpWФ`N`2ƾ PfGPqKʤ$+eO_oM:%fZ Qzk~E_6\FW};BV"N&dY_: _"h-#&g !m`]ٍ}P"_dl  %NV-ƓxBL璸dg\&fjfeZfdc§2&Ա y`>jfhrYճa7șfXjcB'acJ bibI"׻1dcT(g(([fatr(AyeJ,$zm@J{EFfzfq{Nb0i|N&gegfU*p[NBzt&jiqc `#ERD(}XU9NVXuu4ڙ'>*Vh$Rq$u^J&M*d0cix4iՆ&.K]ڈ{g~~eg~^1ҥg?NQSej^WڣTG@*>kjVȐ+`ň+8d=*!q`X>Ge(^jDvifbvjG n& IgJgdN,+P U:E]zR(@p'(U8蝒fk+HZp Qnb%ط៞(k!-lիl˦rj >sV|'r)*D P)2R\o-1J&jrǞ\S=Bd9%c͆-̑l2\,Y^ϖXVJ驷*mqnU1-Q( aUI|vn-/J8&nla.Ef,gHfX/v%&ĖFխɸm̊j߲ʜ '67V+ɬ㊣Rj#+xQ6fPf>ڋovk.HmS/`^.yLgkU]+r>j^ƖN&F_6\ ә,haEp!]Ǹ|&¬k) /2n-&RjVnRz..r˱..5 FYq#pa'~7HxHITR.ouipYZk񜬃mc0G.n"=,nQj;'pi2ʒ#gn>1sXk+*ur1z1Lᡱ0'MhX,SS} ZGcbq1.lD^k$S$[hUqe/(l6Kr):z*>s0j80-G. rsA'ep>+A7*kQ"'5KU.,s@凥I{F(* iX2(4CwM(&^,Y5 e".)%X_i!봺Uέcn;V  td$Dt+RC'v[_U$uE,uS4&v@9 ^99fZljGy;N3w(!/C(+x4[F! H y Ā9|8KFy9o[8ozIyfBix'Ή'gA\3(ymDCzæTאLzѺ+uܧRoѢmo5mQΕn T@@F9빝p9O:{9gxjlx'T:I-gl:h觷kd;_AS7B5rOy}ze;yf:;} 1/nw0f&:,!(  Hg;y#=;~̹y߻Kzj[ 9Kz :tRNu_lP%3; )*,,]}De{uT8GR&5 :>Nw>D  4xaB 6tbDxcF!8vQcH#1~4ّdF t2# 0`npi&E#g3gH5zTcQKK(jԨN)Ҫ"q֣CGjSP)͘$$ʝ{/!͊{1_JW(1+bܫ1Km2of͘%ؙ_ns6y0y''5i׶}wnݻyhز'l=_-s|E/J]UԷ0>|/Z')ԞlI_tw.]e_h= Rm5ɴ3cO ]2 69 ՃNDz;U\Ň~ 8=,JĘfr)čd4 sȌn*  HLGRrn{*4sL<<8圓:GrS;l М,qБL0VK-L5"iԒOC0Ƃ(HȲ"Uټ(U ju F}ԬrʃrH|J*Qռc]-``+Lh4Z5dT[Yͨ553QE%( AG_,zW[D5R34l%%V\ĨGJl]_x)uhv=x^AE؎1j^4cbz=w|y5NPhocv抍>i,_%O-x@o%塃EuǪºVamg8.{rؐO-4CגלtfIۚ;J3\뮷%|MC6 WCY Fzg^ס>14I8Nϓ#(G9K"H?)a֨B $ h8V3+[Jl>r@U/hCv[΄Ncb)$RS+}ܓ&<)ZF^sLP{QGx ;3 e:!C%vN8ݖ?qOYT#so h$6h/l.iQRT/Ѩ)Iz4 *':[tu;RK4wbhOu5$ZcN28hCH NM^`1\WZZM58cNY5QR/'+[Kqqq[Zٵ.x_KZ4cXO%qbh-lCKY9J(UZEp60  u$,dvM[_96enbZz)gc[Ex⑥McˀY3\ZԀ~l XV&ߵXhFaG2Rxz*:fCq/G^0$Rl_#{(kk4+@jbk–TĻyK ns,C4 wu~Zx9qD~3:b+0qO0ci7>ofʔGؽ6ӊ"=l06ɯhN `mLTSe9oytK㑙[Sr<*ה~Wܫ̀TM䣊YfE@Ҏ,k ^BQ5bigSŃݴl;$Iק%d(˖e䓲V78֯SaZYsySjwY-Ά/?Äւ y[D,*{{_ pyHM/z[!ppiKe!^hxns~O#JkkU .'y7#VsC_yMtソ51~tV\UtĤsmrm2C\wTǤ<|o0C/zAMz:=!#{]1dZٓ]4o_܆Ҏ:=U ?"ryCL^äK<[ӣW0_~!q+,j4V(*@Jާ'ЏN"¸b$cF)m":e3moOZ_fOZ60IR0',GO* &Šo&yd/"PDžxpr.H2P3n)c&B畮"` C hPc)aĎ DpcE/Ϭ)A(Pp ^oӰPDp /na̩شn#re+Q2"1&Ȳ*,*-}k -GaGU.3oSD\F"<&(3/I < 0&)2ŧ 6@$uN!jx"6a/OE33;>&mF2T"kV239c<+D/s"/N= w8rO*q+1$7ųR TAqPh,ʅ"f<@Ө<4 OIғVL-R ,>5d1bo1BH\Bk%+t rSAEMӲيj4lnhR TA~(88DKtl/{rE(> 8mFe A"GC)R4ItpB}^F4TS0=KTb֍9? xNGM/MbtbBU XTcTs@ELU[6lbs uHO %OIsV!~ԧԐ6 :H1U]!Tu TGUTc % CQ{AOa娤Rjj6N<Qn\`E*V"TP6l76TSetf*S\W6[= keV"V`L@qoO?IuPg27 ͯF8Bo-nWo/UMsAu[uԖt\IR(R5 WpEppdzh .j|8B-ibNyWB$dsd%)GauTvvN<6%捾b#PLW2-GJO+zjz[1YV{31L}-|=8/C$Nrà g/~~I~QXM xa7uspD+i/17g>uz8KMw+!+n>xT@u'd9Ed-$QJ kwg(8hك#Wd෉cOYxnY)H!88 *1H18T쉌ou⸴lWs}k' ~(:+158>Yd1Ud]8>ؑ869Kƒ'eoߑ٘|̓I,uprt!yH0cx+XWeyofJIx)LD9@B0rZw>ۑ2s4yΕwSj'y{rD":Q5_uY+/%'s!CZ{N^Cp;OULE}'\y;v9iؖ*I N첥Z*tiė۹!Yz+RJfP~oҥğgzB+Zi٧RuDo`'9PMZ=ړcVZKdҦh{P:g O7xB ^y#UBDoyb[:گ Zp~9$ m:<bf [FM[{){mdcZ4`_sVqcv!6i#*I pmBc1q9O"F/Muwz!%GG܆ӏR/;2\F'O?^os{Wk,* c;+[$s:Wس[zE_lf2DC;pNMY{W<d'kb}Ʃ;ya "|a"N4<,{" 1JcݜtM&S"?9zTx/+)K_R7mfI#7c"BXo/m՗؋}?.\Y)W䔔&S905]!]E06l?WnutMuuWT3US!}Tѝ!T"b=4^ Z ƫ5Z޻GEz$.?9E~;|:ΈZ}ECf4sv>+2=]^7Es6?8ӯrN6e[Sv ~}[쇾o5UWភ.?|QD.^,7r`:VOgj[?xCS^*"_>\~a> D (0ĉ+cpp#$3f$,be/k43͝<{|# ڀR'8AbMQ!5C!n2jS1 Il͠?]6KsxS]yq>e-s@q$LZ9f6{\rУIwHGr5WVHbټ-1*˽;iۿgpˋs%n]8sֻ{uQj_ W[طO OhV9$ByvWRs4S[}XA%TgdpPIU[yJbƔ"yaSy ζu$E2I7ycDb5w Fw(#l/tw! %K9qɅpZJzi@Qtg!|iStxgUM){ dhCYѠ$ ^"\zik"iIY,H?#X\ITUhzTPmP6j0cVJJ%c}JVҮ:gz^,d+%RJ.:"[fAu6m)U;s (h-6 0vEnnE^KzJZ U qqVid Og-.qö~bp'z  &\ D=۱L60DC%ҩ&Hz4EMhk4OGVfIh]V (=YhKKtvS<^PB{vVݾ$D>hˀ4cP}U]+hu_{O2TLthGԤ;ypv4ݳN#o1B\5㘹Igq{hm炰` ‫8+hC7kSp p*[:6A^-` ! QߖxBgavrցHD 4ЁwU2y0Y &B鑰Gb]IDy׶049" )_]t!mr=5y("p3y!D)-mM&(Vw70Ǝ!ȑ5FG_ѬwB1UrYHD,T=u ϭˢwvL ai∲AU|A2eEtu`bf(QΚP˞U8'ozNh/j!Q<RiО9XmSPt25mSƴeq9r.qlST1SDP YU="Uհud%+9+ M(0؁v`s 䐔qD*׹$(0 WҕI2r Ct)JjrH~wFT@豂x3W(v;;A~<'yWgm;rW̕zWւ޷%M(7RfwF 8a>{Jt]dvgGH9dIԁ57~1'og/8xpx&jHDGvOr8t}COE8.Ȃ(RȘNx\LRN5G YXU a*J{s`ng]RȋHoHsH"x86(7OK4K<*'H{TxF߁?gWax}WwsH{h)D`ETi VS\g 3hG9@&* /i63Ycߑ?rqd hU8'y Hle"MMa9FqK$(V"yw{'=zhx8pi>)`ُ$V2~BÚ9!HOyGGٗA=SNq{) *W@Xr.%12w Bgyb昽9ɜpijГ! zo|Ҟs'dz0;p$ك˹Q+H5rtٙh]i&YAZPny"&VQ16YtYαi9\s7dYB)5j-|I9iԀt2 TMF}nEaf x&} ڇ;y9q 3J9#Ŗed1J *kfHJul1G$Q~z6lzicw= X} QRT~Ԑ+-^YR\_'>WQT & j+)-A{K_4\+ͫ|Z U'}禎 [~]^_ܴM&68MPW*6-|zr> c ha؄5\g]}.5"5 5~xL~ē>'T 1ԛ'O*톖'~q#Iⷬ31>_ !]i-Y\I8MoH=Ф\Jܑ֒A$[$Mga%|U00BNDމ&)g53΄XVli̿u_8e"-ٴ*\>cGwkၯӮtBHi\{`KvЪ~Ͷ'"d"a} E]bd/~]_Ғ<4x^s/y⸉{A-K#0#OIy/M=6N׍mVåy;Aqܭs@?Ľ  PA *\PD$xpE7N<H%M Q%Ǐ+!&\e5δs"N_܈àP)R4%z>ദ J4ٱ%O+ʵaKOŪ<1JecJ-WAnk Ƃz%-Fda@-SRp= niԩpGkD2숪a%dI'l૴`0ss%)(p P|Lܠ5 /O5'|2 RH¸ڲı\M΂MK/O%=7O#/KFMuR!eI$ rL"9N)i{MFMmK54Y*ԌLSKN( 9眳9K2~@t[*P4 I%V+H@G-JULoEv?NYⵋޭ. զZZ1tIM[s2aw؊"-TX3sׄKz Am=9L\Т*4FE^X(ZUY66c]zٟ<鐲5V0g`"X{7頁Nx6:&xߦ y섾Z$lSr kC@M&ufy\k^`sx1'7vfۮ˹M[/«xz-:_|Sqž맯~ҏG1/V.BK?oG[%VӺl%(Wt?0znsRh&\T; ZDڛ(mdrYlE&"QcA@%0E+69 " 4tY4!&FPxP+S'Bֵ߆-3BM!!<#GF;.~z+*COu|τƵ>(m:P3Y$.~/ 2z,j }#eZ:.2[+Aq#$ZڲYwtw,f ĘOJ&1`^ E3bn<)(kG79<*˙)"'q%02o0t6QrF|' ,TVǤ,iRSF{< ,$* Dr%iΗ0@XܙݙW*D: n<!3cXְRi"[RXҹ1NUE.Bĩ!$3w)%E.t@aՃюѦ)bӺ;ImB:2D9RL*1$m>v$^WjY2c%u674kxˊ5gZ9VU:;׫ޕZqژju_hZDTEu ;XWx=pz`g^YAZZ&)Jpt$pg[TӶRlߎqk$z[:]+SdM@R?vwiO#AuipH.ֆ j$_݋7M-buݒĸ=O揢GA& |Vy^ml15p HJFGqO\;^t;+)N~]fH@fM d4un!rl%w-,YP^2$^$EMj 'i5vWQٹJgHZC_KˠKg.'҇U[QLl }׫ե0Dάh:,[jt=ܭ~V["ԥD(`Lc]Ԅ7,9fj6Ts{w[ wHޭADꦵAȽ(wwj.$|gn^yT4Pw{gs|玤J {B<ɚֳWH Lj&]F:[=W33wOE Iw's靻4K^hwR wj0f,I ^gbO9楩N/C8_qK ^t6++}s^<눴ͬ ;ܔC4ଙ?+Rc2d(6?P.GD<&OY҈щD&;R@$PT Pq;U@L X?lPA MP5 e*M(vӹh*Eu T!25e S]S`dPQ[ rY_~QdaM$Xd#HIlޱ^\Gٙ 5H)e/Qh"!׼]7:mYpiĢEEU6Vyоߖh/mnސe!~KоRc˥NAeÜ.cA`mkRc.vR6nBN!X0۰oG~nv4KD zk0gnn`Kp_a!^oQJ(FfJlcoZSqhVc ^ !Z0Kl ~1D )p ~jdr=jf2/0rpYn>gWf11soҭmڈ 3b:#ǩprP\ye-78r1p*ۚPQ'?ipYqm"isQ_Bn>?T77bUp*DH@nϞ#flj@QˡʹMvmp0W_'+VǔWǭqYr[c@w9A}EI c#}v2ڀDCrxJz7ww5;nyY79y[Lwq6swUoBL!*L68N]#6*_*vh?qT5i76AyK!`w`Ck}W$?UI<5mz&h Km֛oXz0b.r0d>/hQyg|wzż'OK7sj(ُ'T& _aW=??#\P 2i /@tD__ҖjlG |03guٷ}7} Ʒ3!'"COlH(qb/b̨qE3Z2ࠤA^:(rb1șqL%~#EF"MEO|ʑԪsbmx׮^++ٲfϢMv-۶nߞ1Cm-\Z\V,sCVۼyxG f,Yb \UdUȦOlb5Ԯ_*Vlڶ9[#ܾ1f@ S$%_ƊR#$r2t 5aL+#1 f N=;w'Dl-U"\Ֆ].@B {şՅUa`YRup!YyVAUm3Zk4ڀ-أщ#J^nNbA.P$0uDFIH@wTA}vy6-i؉ 5TM"BNUI9b" 8ۂ"i5]a ZjORZ"ri`J$p+8Qyjڗ᧹% jU +} $럚\RG^fRgKNI {i^ ݉ PiN9w!Fxgˇ xJ7ɇ=EO9erVU|OyRa.ީ/+Zj5qo! E><Jz0#W@yτzF6*И >hQ}._ o2"Mlct@Oʚg mG. uy*ZK\H;%SˁYD(GO"HZ2ѐ4ҕҜQDl0I"5a"ɸW!_iL$0.4YM2m Cʋ+WӁ? @,SFi*Sʝ̈C}dիb5Hck4╹N\L;Qiۼ'յӤ'@TN2TKRf4V֎)|~ɟ)XWWZ,g;#_%P}ZNb%?K1U8ձ#l IR27eVe!M^mliKKb7ZmmX1"})syԝK[u8KmoAɯ}ԖpIͯ!7a`Z"`SnT<Xڝ0a]n)K=J/!Rv]Fh'}&^֯-qP85HJ F,SYi& ޯDS)k&+VVFV&n3v~e<9cXA$'j73{KnnKdDT" AMՃ8[-!WfQl,W5ҩݪfz4 *YEH}ez.q`Z]V|i$ @PI|U튭*YJWKCvdhLBMY0~x%@Ͷ5|ۗ5htUWsVc,!,`A D>7=[?zg۾ qZS:л+>SWn w=^>iÀ,|oI:B& o8īq~S6`B`2Z_OMahE89َRXW\+Y7>o:9`,d/i.xHq#'<~٩;Uݷlx%, e>lZqg4 *09 FohYlmO}Ǯ_Mpcfuk6' p-z:kzCso_%4b^y-Je(1߆QdG`lXVl<[O͙]THSQ]vaZ ] \ZV@M1$FUjL ʗ $mZ\1  F21҅@ ^ $!K \`a\kml\aM МF jM^NBKkg6@5TU"ݖ<^U"nړ-(E%bW##HM!m\bmd"QadV8.99Rj tV+ d#'M>n-b Z.&2 BzS$dt-0P=UaI#"CUJ9V|@$n,R7Hl&c~$*F:;zb*$l3z hliU4 TaZ܊_ eIby B uhpb'jIDԧV&#aP2o6~gR{F;3^ǏNt ` q))J'Œ=)N)֊Rsa^Qd^bGm^ۙªSP)[#r*bƉ"ϖj*zENTj^_%(X梑6~v &B̥bG@"_gz'Ji=hd}fĺk\HkyA2lk v+_vbӋM lO()],!;L`Tq,k֫''Xn&,G ym*i`,iP:)" V,Nn꟪'DF: El͒hRF-wh,Hx"f'eRi-9JmR')H̐F zk,mU% @F"nFd&R&oJ~l u Ȭe`МfmVB .|rUndMHّĭzl//{".^nmk%dHj/`L6TATk}nj_8EdBBþՊ.l6ڮ=((%үd<˄X@S:f-3"#6j._2.k̰Fp"pF^ Į/n!.11辩epX;&e*m-w1)chdnDSLpʈFTZTR\1{'~`EX.ieIvNj"M HNHoA4r\3FἋ˴'23(s4] c /VB'91&](hn MG|4!^ll!-/1W*>i~k bMp@{wm6,]p*``>S *V G4 p L΁W怗mrj0KޘͳC2C;3DmΘx$H>4K7/4iм0D{jpl311#@TGs3D]r1G\B(O- H5V?wAShu-s8sEW7ɸЮwt7$U175fSYS7.V[%weк-mȴ`BY7r͘5vcߒPS)QLW"5~S>3cd6"0TӶ39+Y)@/pc*e0`fsT6[6Z3S4X]rY _5|r-v~-PurvT"D7k(VTtgq6[w,Y7qj:v6rUkZ#sк-vnD0Ndptp2eTk=16C&.*8oXOF\8v20,:v˲_K߷x NWő?-ø37Gviz+HW83cg&w!Yr8FEg6%MRӝ -cΘ焝7knty!~y블L [^7G5SNaxw`ھrNxn$Tzkri9xD~S[QS wZDD#?bt'fNT9"8RӏIg~: :ȱUT:{{ǹv"z bDv߻TFuBYL0'9V"o;e`{p|jxGOC]뚃)HO:U)Tfɉ&dql!nZ#_|ָR5HL.%dڱFùlzъQ'dr:WԞ(K՟y3@tv(!,%(.$B Œj+n0 ,I˨p 0S#л93M?\429<" jӋ/x1ukQ@2c >Jx=7rH3:lE4?,ФK7 =AQ0 !-E! /l4RI;KRR"k"4*ԒH%Аt*S.U o]~a'Y-I_Sx J޽*A&o@qu#vXr3.paVowy63~B],Jt;n'^/#l)p_C6"/H= !zsa.H8]}Vm}7-Y:&RQ-K ~1ՙ=gSx":E> "Ο`J^t?VHHp$}ajvMR ߥG>Cx[& %}燀옗 >艟ׂ>;6}WֵN4i#% S3nQ~س o0./E4*VgRƯiV"b*EtlM ns @lnbA`,xZ,Цm(P#%8nn3抃d+ ЋI an. J%((p5J G%X,%040"#"X!b>PQi|%7 Q1"! ! G VpMll( ˮ _P W  #Ũkp"fe Ճ]`gM&0Qg1r0Bc(>@ΐ9FB\)0zNQwQ^0h#9b#" CdO"ĭ nQ6b.$QLq)D!{ f)z _&M"#Z#Ɨ:Ư)c*4Ɣ ( u9%O%$"!27 @ml#q`rH##^*BC&c|rjDWc+2+ЮbSo" 12gO 6 Q6(PĄ''XxzzC,A1)#2hd,"2Wz(%2TdRi&+KqE03^#.H 3dTR}f)-f2R$)q-@lt1*0wi4%[e7ᱱ-S-!b;Ep R B/R^S7o&W jQwlf+y8R,79"3s#=?=ٮ#ȅ@=/:4In(>v2jߞS<'"sp~`Sbt|E's}E4"(DԸ,8n4d6;q%b33g<\vbQ}T3\HI%KrUkF6IT22IS$Q!BT8#E"L%5W0լMQM&&5+JjKO1TB?Ogt"k+C#Z<"&q 9.=]Q*O Oq""LG0+(_GΗjqEӌHHTH@ZU;cTiQ)6We!E2_ `_v " g%O )va\ACAbFb%/۵nNB/O'Xk2z]ժml)6S_B.^@,v`/oIi@6VC^oK-MK|8JP0_c}jF|hV2EZ*pp/jsm b=u눶tu1~cp̴cD֖s-c[5=P35vJV'ŖsoGwCm{f~wd mfhwn&,6 ]qo0wcpI tK/7w7~+j"B0Co>0Mdzcls]~({c{K{Q+|v|3_W|vWpٞN^m@zk;@OU3506(XiVU5H-IDe{OfPOugg`k7a،7<~IuAdqaZBU26q^|X{n XvY 6Ր2r$uF0bWXr|B\Gefv*pn7"[dwy`2D8U4*/‡?c4Ja$]#wWI65M?(QXk-kv8%8}D񋗁oIH"`L?s*WQ9ltF&Y; y,GТk*f2'FTO+jΙOtXCQUTL;e&b ruM T~yAxk5 "#7TY/Xy1)yL&Wߠ?Ws zn&C9}"{"ٓ?F?H*'UzYDRR@š3@?òZq:XO(oorlZSjds?󚅳RZ]UT!Zg1rG,*-$$&Ht;z"Ȫ#  )3akC֯]$zP.*s5rHQ:t: S_{{KM[]/-bϝ;OSZ0'eᨒ>O[7H!\PvkP(Fb|Ro$p&~w<1!ٚhgVxו]}}E:y֭l?,]ENZM3ҽNC"(55-UPY/<ʱ\yN㹘q;SW{Ş~{>XέCY|]<]l-l=y[wQ7"[Trm}_C<3CO~Uc+f\|+N>^,># Z'cI ߐٍw{+d#a 7~QF8KW ֩|Tݭ;S[Yp&5{׌@?k9c%݂T_dևNfEvտEJccA H`(QÇ#J!b!&jX`cÎCɑ$c"I&cs}DRgRwyZz%R{Ie'n% tPq " JTqBtE..WZO=Hvq!f'i\'pec7{)|1VF;-4 Zd!6!`G6`n 9!e_>f^aWY[jtaI'b-G8"V (_,0BjnUWY#:IymYXj>mJoC oѷe򦟫-$]VXZl*RU9jggN7SaYbD'S^ .bqnJSbifف*`l0aY~ּ$-Đq:ԝ1#kRI"#[qB⫯ j X0Lm]om";Pda!*b*%#]$,'7в;lƑ@B_\БG_l TC,V]::$rl_WuQ´3;<@BgMRXHN?w] N^YLP5b_> 7ԣv ;FsXDU_\tƫuί!gFg{7ZدKP +x m6I"#!ZvtA}|4";SY3ޅl_ [53nR8j`j NfBH5d,{"bG>G" MDTAE%.iXhh(9>;4A:F128D:VVK0xǐ+l$ay,Qa c!R d&č0qV]VJ(jz#) b3Ip2e@XpvH$Hvq~xC%2̎w+'G>zʏ%#g81k^`"񌑔K^rtI';߈.\Q,%J'%6|U59Ά3?YԌjR_*L'lei&rM1H SAw&]d@yr"HbΊt˷I: Q {SpTBѽ)|HIgRzͥ d&=Ԓs"-bM̻L :կvUu +B*F/dTPkbS/50W++!鰠W$K9". ƺFOuZ r-_kLjiK`)E#D\ HNt!zZ}ad>hV:$r]V܀-uMU"˩%t$M 0d53ikEVYg<-HOuy_{]vib]U5! ^~&x!}CZ;kufAԂ@A+Q_ݒp"ٝ4y "qØM0ƏJH xe?ipj_.1dPhA\1 YǨp?_jseʦ6c{o;WIN@v6& Ɵ`]M:h_;9{OMIJcOQIvˍB\C2I=zcOH0nk?MÞWO=鲣]rۗ (?2)@B_7uFx 7z|xWrjַ>}6V^oU{Z| G|xWdgdgf׀ַNeQ&swJ}Jd}uw*AiYwu7H$FGY%m܁F8~ /8UDu&e#=|EM(UAoxo+蔆 h BvQ(Qji?*t($FzXI8(*VVW$9|\ց5xCtG!M{l0T'EG{|e`1Of!}HVhGKt'b~I6sHVA7|\MŲvl%cHqww1PhzW{Č6zƃu0"g"gYh(&^<莠eH^!h&hSGrhcDeJAe3WFsy#b^4Fr) Uv HD [l֍ U$9mO}hvֈMB}~Jo{P#Y 'i&fI&є`O:(!X~LW7Ea5b&#ʈE\Œ"mYPecSI,Ǒ'e/(%[cY$6Q%4k6VVi!*(b2Pijt|QCa^gZ$7+~T^hkE._*)H}"7A0pfKwgI/FF9}S/$t8*w7(uQ 2s k!)U'Uz ؚ9a·c{qxI1ڕ[&MߦK؆ś]UPdAeHi[Aq 10qEt41ZL#hb faף'u+R%cqӤ~Rzzd"ʜ ZҠ(Tw$9DV*pDF2ItgN!W*T0A*V^Q0'9}qd PT99z-gaȫMM9&Jl1DŽn\#۟Ƌ6iհ$.Npr]DF5C^XíP>[yFpƴ I$Fv(:bzә0g9ZW+t9oJX۩;^XVHYuS跰*))f \} m׫Y04=5T1.\+ɞ2Ѧ-Q^aeҸIk@ɷ{Z:n_!Ou*ky{r9_Qb'W[9;Q 285+iVE.;;ylShVTȢѹ!e:''sB4w? Z25#TR0](bMkRbs%܊ [ x@|{r+ ;ru[Dˡ 5[˕iCҸkvXE,=쏕&\<1v` cBӺźS"q,0 KU* H1'r~4 Ǎ|5X\nUeܴ>L?|N Pl+Qz;s}F U.|df'zw++I$'yGbN21k;oQȗ. 6<"Q|rΔ%ΕUije dwOAh;\ʆK<&zŌйkQ=9Qm'LG,\75/{e  ͼ[pxKVS#LK$ޛ=|fffԞfӛ<ӤMtGHF}Ԩ6aQ-,;O>E{T!c:Ƈ Mv+X MYW[_Z1P:LnW}Ȣ p!!1TJ0bHW*Iם Oe&Z}lj|*-ҎJ&c Z޽;|RPTȫn" g|Xp U N`DJyۨߐSuX͗͝_ZWސLM}p+.'DVJ,7qWt3,t\mQn9s55$I4J-] `,7Knв)w &^uK [+>Zߍ)MQ縻A^}> ABEJmTZ1#%K@-c~و䇮iE$^8+Ɓ1ިm|8m~89Fr$}LnH}.8Ȫ7^>Ꜫr6⋞M],s;NE˂8>2]#m^pnǾɾ}ﺻώTb-͸7vs?͊fCvV32gAx> qlpc Miy>_WU݉ " C os3~폜O<{ N=Zb&~&5Nq._y^6o;1D,P9HbfJFNoCߎBYt qRXC|_s6^tlBQ/>>t_K<?81nݪT"_RX?P餏2ǟ`ٯYZ[OuQ>z>asCYi02& XA $dXĉ",PEjH1b !;lI7d d!2h ˔9ٓ” -x˜II@4%PQ H9L|Ԃ/Nʩ38)P*;Z U E C#/ P@Z9l(&3pa2;,:KJG2iJS!"J#^F,1?4;"0"Lp*%lI;8SG:5K OL)HCE9S7ms4RMC/3[TlOԵă oT ]֑MX!-CU<-V1*֮nOtDUUV{uZg+/\s `)Xp SE]=YGJ4Bq5=ԉ$TS;!f}|֭Yan%R^u%?$ߴpNA^ʑILڟ/yapRWVBlt6O\a!烋(u/7^7^cm{%5NlC:}>#|c$ K!Ǎqc`M6"lMz>BU!2MYI \-G9IB:m ,)'\#r\D;mlBNWgTt9Oz2#/YX |!m v&ì} G (Յ|Q`Z&ýV.`5jw3w%ąi710}ݑ wS@Btِ~ ' -&P㫡P㡪FXDIm=OU')zD,RQr @:^) aAG[Š"$!} Kf3%jUtw%kQIl2YG,3, Mx/,sKz񓸹c6S;(Oe/q(!R#?X 3J%}&iZrI ^R6_dAHΕPM B# )0iĘu9gp3k1XrgxY a@Raz&Yћ$˜GgT^r^pET` *"3!:UФ%E)Ik,/6ODcM&uzs+ӏ I>9~-t.{ k LsnJIdZzC~9CC)zt~TIC$k_K2IJyRcԦJ5g+Z?un:) Fk2 Kp6ZJ hC ?h5f< USrNP[µQ;9tYj I=ĬgŨHO5#*h#}u׼rd)YoǸ: U o*YQt7P%~ِrX~.toLvZoE;(IJ)yu ŇVjoTL_D Fn`;AT˹ӪJrW|7ьD❈RØ[Q +D`̘踾TFedi\*fـo)Uҕ*>!5卑z$KR(fϳA"ZlS*z_ݼbjw}9jAU'瑠:'Q^,]QOZ2[DcXAzdھh-JPaagIn-gD kN{Juc KR$g!'Cpb.@@ߌ'űҶ6_WR֭v5tbmȉUYيp?UƁqp!n4f|ro;7]TlsC8vAw$Ӛt @[,tLAJrX&WKu6zd.+3LwKnp=څGס=UH٢pSCa"r^\W.tqk3D-;" inC$xjziZ{Y5sCTYv}b.3>-wpQ{{c,G0=>߰n E~WxӔzT=k><c?]9I3*=ӿQY'((ᾛù(j dʰ_!)@Ñ?  B?(B@  ڐٽ8 +t8:XB; l>A[>k0[ 0Ao*H>@;BYD;@6-B#&t+2CÍ;G" @$ ݰ'ԉR(Q<ﰏ,‡@ AUdBISDE3ü@4J-LDEC9\, sE,sD/QFmFmmo)=_ 2[ ~ ,F` tBS HE|h|UK9k)|BnHo,EV 퀯st>ukb43ñHFpZFXA< 3G :z:b2 ST#G}/\G ;Gɀ9*a' '>+}9˴GX˶,@4?YË= CV; _e [qb%}Kŕ`) QRfV5V7z9-O#S u?M ձjWdE0a=hf =uVVۉWMNڛ- Q&;g ;5R4Ŭg{[|nC:I.i.Pe1G0jhG k[Xfhh~Trgi.z )_W|NeR4V^EexTTi. h\ֈ'o[j`"l"Ek6m}Pa~6Eݔ^_>ΦH<{rp|rqDDxRv"?kN_'dR C,fմ>?I@-+ t9?:sKefTOp7sRo9GXZGnLܹ,q%ATÉIga^M#_foG税{ ] Y9 Nm"1FTn%H7$k.5/$cمDn) }qd0fWdu Ohyv{_ng)$Xz; Mx^&xPv/W=FтcrlA_̈_޾|ν>dQ]c[fEh_iOyd"P_f}SCQNjEAkއCXyimyh9)')+?}&*=]Md(*]9OzAkAnG.^mjNu*g2.D"w—ŨKwgm9yoXldzMtjtDn/ߺ"1|s ܆wg^a{gQ5aQ|A$<1½"zD؋l}ϹCv'B A 7(LCC8İŋ9G18$J&O@e2gdHfM6qN&FTjI 0%ZtfP86Bu-R`2a$KliT7뵵*mh[ 9!A&H K[.kf.*N%/8~ċ:WƁvaqy 뮓sVbk{kӡ6A:ouv4wwgX߮yɯ$,G䊚kFyd:xY_BMgOw+O ּ%;v{$90vQ[ԑe~ԎHW/4o~^pU@]{R{h>2hIʧYJ#* 6Ttq"qb@d$| ȢĴЈFCblEŷ(m9V%{ճU†Xl&%4aYP3P]tጶ?Q/:t,*M^A 7=/7??Ai|X0yQG${S2GŚ5Zo:}dxxԊ%,ф$]ʥx Ki$ѢA$9yC%d俾"J<-r6S9'$&Nup! -7]2[YIMs xw%`t=0X-' NNCeQr2.&K< )n#>ih_h1#9o/@n%j-P ]gLZv/17-jL t ECd7Qp%#V5K 42s)NjarSt3"(J*u|Jzгsk#2 ,e]zVA2͛O\OY᳨ҥSG$\bFc.QDe)dHѶ4Sڌxdmk61tkLKF簲|{ɶ3qLO{RN쟿1K" J yKkN`\$`KjqB]rT2cn8Tґxt;'AR\e'jbeJ]Y;0d9=͆qgeg%?}Z }mp3wo Ϯ=H6N%^ksѷ0_{t P3ƿ`dB쿊8s \M?zQEe3@E-OSQILN}Uw9MsC]a{$ݞfn9|ȿi;,QV&\*`=;סZ 9csVL5j9y~[{׍ǣQf#ĿJC>"@^+Jg,t8ղb&U`!Uz6>27;XKW !&O EHuuOThyߦE0<~E HeSfHM Sy` X^SuO.
zݪE|"l|H d!4"ឬaLǀ 'RdQaal.!U!duPW"3#%Fg]!鈛nΉiW9˖b^qb80$APQܢ4$cj0~(:;8N3" >""&a4/'?jbY"ё7jU]O9 ٶbC{OF)r]Id@b>#]di^@n !OщNV,NV3SDcO ef'mOGjbH Q&[?jJ&lJ]3+_MIv,OXPAOX`Ed z p"dl҄d^Y0_B$7~}fXt&Y,) ݽ$j]f22"oQgrF-f/Yg0:fo: Crb6DqPSd rZVt$^b?o&JDl +&b$l&9&zzŸh&X(@cz~'g 3n|*gF֛sz"{ʝvEDۚeZ hBVިlhuڦ%`]'J&ش?Z^qMֽ)k֨Qb)fnmss@ff.qIS֛ޑ[-5i\^hL</rqXrthb+)Il"ݝ)qۛ\(j (e)f8:p@0],\Z90&|^*žvڡյDYh)a~^I%)p *Ў%̟Ϋ Jccr]Zy*,& D6l4l> H&Aro-]ޜ굒P"|ڮDªڒ*[!A2,,PHlZEϖ: M+ڪTm YF^,eU.,NTyϡeЂ,dȚ:Q,ܢ[>¬e!F-JXxDzĻ>Ur$7҆+ԐiP!VQfBl׮鮀 ] _jbk e-ƭ-jֵ: nonE8EXjDvUVQE^o~ml^m:PPKR}&4 nkr@&G"D!1oF<Ƀb.V׭IFyP6jno( =F,bRrb԰m-f&kk0_*q&f獴a]p{\p&V/J')VwV +Gi`6׊&3^a OlTrYJ)~`%g|,EZ'yF3!g2qS^]n%*I^bi%OnfKqBFb¯Īn"#:: rd#rPZLܚ%kmƮ]nrhH+1,~m7 IHU9Rl\93 @3{s$.@wY2t'5_3%O%?7mJ8)sr[:Mn2J; y. ǎֳk)|ΤW1Yt11Z*5LX2/1ClTGa-FtN $wFSp6o&I+G!KK+~TWlE .O+tPfJ8R+?BXC XC"55-WXFDŽDbOJ8qJi, a\`]CL^L6 6„a6jrhB:vxg#?fgjeoiUf~j~S$g&v\k; R.l[i?޶\\_5nfrt!k]$\A%RET8uI]rnyw|Pju[Vtt2R^CD锢| }o0u126K_$a}q'a,7su<>_csET8!fq8k6^ wKhGw? 8 Ԋa6\KEvwt\~vp. 9#iC7gbsgPmՇڻmI:d*z6PT<URl o®)zQJh؇u>Ci'Oޟy |F7w<^>lv-"w-Gy׫%P;_\gx|'t䏷]dݒ:_1&c+1Ah J&I̯ >e,haB 6tbD%nhbF9RdG C4I0D'YlR%˄3i֤!M;P5& A"% H81a9>Zp*U^mTDq,cקB3%$Xe^'gr^7o˾ X)E ibC h9SfiLƴv*؇Z T^[@]!ք|؈ʑ7gIcs17L\{F|vG3Eg%ѤJa:U}"óg `(&z+S 3jeRŽ2ȠlȄTPKm4d4_3ZS 7;) Rz rA&?*Ȯҡ餃 3A3'54JG̡ A-@Cr )(%C0L!|QPAL'1 4aLJ"H lHFKm, HRK7~l)]OhOp(8`*aqJ*) Z6T/6Gm@74ڀr˝,q ][_ 6X ePP4%F+Ug MS8"N#5CRaB(Ul"X/RZ?bPW;%ǥ3ק>bf݀uN#vb?yKl!9y+dtR!5T>Kb-߈h_jʖ9+a+N5L<Bf(z{[+]BZlgJIU*p9 ƀfܤ7w^sd-ZDžrrlmNi#ӫ!nW"淝ȆHS#է[K :oSg!j.B8o=B^*EO!;2R+Lv{TקN@D5y7s9G/`zh3=!' Ŀ􍁬P b'}(i4; :`.+^\Y E/~qK# 2Mc\a&i]H8 .9"ٯ pD>${xԬk,\HCP&lؘYoQڋ"u(XOu3/ι^Ĩ윱%| }y:Cbn2HRs Jmҗ1U2Tl5u_:XH8 j!nؚP?%~S6AnKZ̘6^F5,,dY>i 7HZ*_ ˞KK.кZRxfTBA{}oKRkAvgvȧ4 =4+&̊Dh>Eam2:NsCM QB,6jN)=]mqzNsG ݇ptE: (Lpޱ>q SܱL{CWеhnf`;tV-!8XXVpv$R}7Rj[fI]~  rV֯g荇1`il%՜ 7 $,u$bM|!X-]Aӟusu@Tώ8: V@J\RXºJxNZ`Bso(5Xܯv0q؅#)%M#b&pM%أPѺ PLH*pzp[Wv>PBl~BI cP,hЈL0, ./hU"qqEѴBP>~p:1j d5l {l"!!0"f 1qq ʄpNJj% V3BR/.ܤ =݋iq,"rNd8#=UC9ك)DtN85@Kӕ!!Nެ2/'X103M?tNB[;=-Ut"*OJWD.YdP [XMBXQ)uVdG#e^cSc@_MVk_ԅj5 eN|6hvVv j%vf)J:k4Q"U"4EX"RVeGlUif=Kff wsr+4Bo#aXRzc5ub BRC@ppgJjEZK9,B5*$@J p#w v?Vun,ns[BaP6*VVv/pUrK9eZ7q$}qVp|HEl;ͦҰxwlR"( u.UGdmk]|wk,B ngFy}?ܜ64%2j>?+pz .hƗ|Qf%BWA"Or ~!nl s]7d z6@++q!jB"7ac c v$Oց?ĨR{,wysh98*"eVURbu+CWx~Xd{KBH}{|KVu;5o!8d7`̜wiXh5JWw [# #*Su\4r Ԏed |CE[ٛٛÅIP^`D2w*?yw: ِ_i" ع{7i+y$$)5v8e%X.cP zW[hHf8sx T%c)^9}:9}#9ܤydw)8vw#و5P:xlF6[F=sy*W/TS#; -% 8yc!sw)$ؙ`0_ؑcx+y (YU/1\͂jdwݘw TH3تw[˵,"#:Byz۬ y:X-׸7`^R`ڇ9i=)qVQ1}{!Th?w=7iycW'vnHWWҥ /[2;7xl<۱׉2kUpOS7>uK rZe;s!o{Iĺع˗z$ ._;kG586!6װ#ua7 (#4 .m'9iuuO4vyHv,I;S{Q4wjdO܄kI,qq7Azdz7:>\VG|)ſp! |4)֘M](uo1|TY,h*HqָIVyԢǸ$wgw=TXh_6FI 8B[R:}aĵ`T#tjvu!JrdE\Nh}omY"1g?q@i-;o  ZCT|\'B&4e2(c,Uh;S|jl&N*'+Qzxհ,jbPyUXǝ΁E@zTك"U0 F,mo ѻP,{2=~}czZBTS0%㗙Ou]\VKKCЮvؑE0Lf蚠Ε*d9{|"F4I=P@6a:p,YŊpI}"Ðr:ꁪ;x"d7p)V,ĞBP@g,"eRٞb\5>mBJ@C7g%}46n;bN'?^ۇdr_#"@<@'`E +Z1ƍ&:z2H :pʕ,[|yqL05μã <{SbI  qtjB&iR)%1, !u#ֵ^ŚQiXg`Qý |i$ҋ~~;/Hˆ`v`WpF4h7%AJ7PN\7jĿX@JV7jZ wnKExb"[}Qgǃk΄.X 0FW;|S>d:fWI`5 F8%N@=!PESQ5Bk4UG+^%c!VC YAyYYtu@_Rm_0@-$ cE aQvF2 lٌ\ͅiҁᗪ@ S&IY[q)Wp1JBzsh.(FqGK Dj'B&ؒMdY])&DQ)*"ު҂`:PCA6cM 4lF*{dXX5^X`S a"WPh(#cbEZh:P $&+FWjQ5kPAiWjQk_I [,3ѩmy'ALa&p )åii!MڝnZ^ܒ:j ZժoMV}F^< l? ETGUlXJоT_$oZԮ`׼I4"IV#M "clkMA_5@-pܧt,3iu! f8 JߩWϊtMDw2^5$trƵ^ߟokإ6k;R۪u4>]3a$7ռH~aX%=&EiJށJmDTDsOY"&(x3Q40$MM9dqb}JRWSdbDd%["K6 A2b w3޴*W*$]Ea,9^e=ϯ0FeAň'.rjND ^^QnNXq[ BNTH5)ɿӴkm3`X4$:$N$ 0(t}K=ّ S~+-Rcdtn\5nɱ*GhHӧ.,66ROZQ(  g!6c)[<Ƹ͊MI3 m -UsJZ!ӡIKNa HDI5"Ӗ( 3RZoCT_sfQZ#Ijzdv["bSdlfiO%y%3 #:is/8)o3N-bnz` 8IK)8x)N|2 nLH1;e(|!_˩fT18ƩqƺVoK )sf09/=o-o.Fnnwd#dr!1ⷨKTY)Z7 ŅA2Ii.xqJۍ|wLGξw-ۯɩG8pvt=dGgԎu7 ȏv8[rrB&UhXhBmml.\fezDg1`DYZ)RAptnb%G|-8:uHlm=w5{g~3~V~d/nPT}qb򷃌r%BeT^Fȶl-"mf757eIl {FLfL,udgPm/|BI,A*0d2ׄ0DWwjBFVUY3Pyi9x89c>a"^W[9p:@$ɉ;+Pb$5gl7Ņ BS9C0u:kk)w>)1^șx<-by>ܩ6Z6X'i\n`Eum,:/IR]; ʉ)t0aRqz3V{ёI^/%S=2WJ 1ٙPb78BY/WY*d5NYPcceF.TABkw0y}E.we)w:UEG%js #ꓜ!H#[.YnT2 جv5uaVh$r+z+E;v/j@:M(B,*uOGz( 6ZjF2!_4jVpz[tJÎ ^.@·= %;o?$ۖ Pڱ]y+1BQl-*!9296UrQ;İ*25ha:eҗ>ZڨV6ڳE'",`Zd/ggK V,[HĚgSuH+JJ~02x{mVI ( +E+ !2"ZR䉞nbp+Iy'My[t(pz˻XAkYQSj?kaz(MKdL[:Z94oU;[Vv OźD +z\P%|䛨+7.78˴p7( 0ˏ<[')|\*ѫ`q|E̦6 ŬJĽ^}) ZWVX[ZOH8Fq"+.%J ?oJ(G3QEO*dJ@˰ +сfce| ώdvE>"0<4L*bߛ8υX%aw\jNvŢZօlFsullf=Ϲ UӘ"!-dͷ"jzTKg{bgIA<oe"(iN&}E|+.|i 8 06hn',r--dmض#i' 5M)8Q=՝!U|/I"M~؈-r݈z;ݭ=򺻋#Xw-)דҸb;؟6= c챎HA_|ܶ~–t٘$GRО-=h I<~ hF#ۇ8yA"=BBEUTy&Xm85$(anlo+}X\kΕҞ䤃.:R"![4[5N 9߶2>|^c6v+YU1rꠒ.}]7]ܵΏo˱9&rn3n*^^ַ6=>xՄj0n&/]ol3 va3AHn"/4$DFuL+ӸCnd@m;n'1"19o b:uOxo<8+hI.Mt5m qÒ]]/{EzOr` YTr?%;5z+QyR !EN5xFGiBoa($d_0Ӵjap wwo7Y~uxT@}?oXQ@ D0@ D 3QE #J! (tYRLnСN=}SMERhbGLSU^z4 \cdk0G"͞EɆ*$ LaB53Ozw$O( "a64<ҥвA$;dyٍRQMG$aV[aұ7͍1uGV}խmpxqeg./a7K{n4`A]1gF~mܓm#z#/ 'pN`!C!BG9NO4 K0.룱F`2a$:m.ȴ\O!+[ÛH/4pO|2J-qjT5 U. 2CqF.Fuy{ҷ #]YAPXAM""v1xUAŐ7<$ /IJcE>)֩TJ Endȩ38`G(2Op~U&Fs,oXCD[ʈrE4.oXҙL#aҒ#|\b.+FD1'ZNv92tB]:U(+s;IGvMS5N%ax2xomCk[ 64QiOOP=S.5^#$hZ P@GB X4t RqbѰZStyj;̈́Kyƥ/=RC#Wl9]I~ΰEU"VɱaZtqjbP:L~`M4n6295s;65+nHY&cCb2/K߂rV H,1qT+U2mˇqhb *.~qI\?=ZmBN,UYNrœH2/+f#q(fT x;ӡm *DIs0^Ngy9 C$NPʘ⺺(to)6cą(4dVL\6$:<3qViMR UPJ[Br59pu 44ԯZu[m1^x?)JB SܠIXEI;IMkl7&FHʓaK6o-0SDb/߳+p>SAoF]SD%!lY_) PLKSyo,9 ϸ~"[r+K6riRXd'4B̧OWQ cRR [ .\3qƐGX(##<5k{N+"g AOG4ԼQ#0(|{o`iLޗݮ9ӗO/4מ4W)T(y?fI[ @S> DBAž!AP-CCCp@WC-iŽ&h94RZn$2CDDTK9ԍǘ8!* >2NOOۨ;ܒ܀DGA5 -ز@3CJU D+A[4 EFD>)DA?6kB\jkFb'UgEt!DLl'o3t,CR$ /q\G"4@I? C0@pE&G+ºdC`t1$ SOtHpH 1CD`FGpĥCl$ɒ4D bĊ8H,Du4 MŜHSȝ,;`IU zDBWbHH-Z99$})4V$ǔKKڙ˷ٽm' xMۢX[ZmuۿZ[O*JuʪMXE \"I}3cJMW 7]||][[="W=R ]ATRٕ MUb Ul=@0;\_4:MQ&d&bI]fKY݃Fe+eZĞ=^ C\Y _F҈0-%DSHhm\^ʶrRU݂}%6ߡ`YT `H}y9^lV`"v#N t*UV =ce\ 6+vPl,sYa6nc] 3742b1i٨\az.b}rC/peE_/y,W'KFbLC9N?a Ё)UcecAd~J ؁?dy0t18J6b_}&.#/IZhb[a?T^]rF\QE;>}?.<4^[AgXg8 pVBI?\ S~.@V˩2PV|= hTf4ga{htivh;"~i}Di{" JXF`hYdP.`]nJ/^6 ;Yacwdeٛ?di\jZ, :])e>֭tya\Yfs ~ޭhFei>,reM A %jiqـ5=:lmi`أQi̎ͦm U Zl躮_^!0F|Nn>=.[ƟX$e)ֶn罛6&Zin0\6to VώapvWȹP> v:Vb/+T1gN2&#"YFJɔ޷ʾ3 %sr7BWWXfmqHA^-v 8.O!7#᎛mx^)?Y+o8.FRmiF;`Mc'pT/c7? gq&_"_gm'lSqLkbV%l=q{rDOqا&`(9؀ffJVs&O9ffC?tBb%d푓8l9Wt,Muvm!_WI ~K !]7 s*?yރT7xշ7Oktz𠙎(ᵴxZo⌏7qe#_xz'S<Ływ{/kG? чvw/x*3:`uJ?'o6WϠ<(x  EF1 u#!/^홈XF!Kj 6vWb+_qD_b.I?]zIwQ#{-m{cez_n|Ŵ/upw/|kr7UjȀ~bZ~Gķv'j |`Z iMϯB^^gzu47_GZ O4 Æ bC#F :C&C|q%˖._~,"$&1Ά9$!̢NaDxŜ5r,*Ɇ'%dqlǧfϢMZ C![nMK6k^XW+UM8 gЗD3*`Pd y!DUTUc`ؐ:EIaEeRuEHRfՌ]`sbDfy֖Lgt%'nk>զ{Zhh2K v'ruU"z!F:U@·jK*)pAu Q^Y d薿v)"JD) jkQkɶlvV8QjAry]vj鍵 mhQkлצ L [/./}sqXҺ/kcp ,MQԭVhjQ P/Q+~tf T%;۳+50q;nPM$GtUB/? k^O)|P3Ԕf6Kg˙&EAON1WP!WSk ŵP߃T~BrG pmxUTeY8˝,3h.G%>!\/[6]TEKMO쭶٨w7^8zEBɻx/;vKqnڢ+ACzyϧe tXV?tiMO XyX9x{ޮ竗h}K5". A^ZHv: v ^7/Oy*X”p'UV›d+ @zo~DV&&fAqڅ)>Z Ed#zhF3ڀ#6Hǒ3ь h;##s@:1r4!Qۑp`4$rz8E _R 8 @U&1%"TXd0~씉T {K08?җX/ YH-"2<-\VM4HY2>@AQ-O%BE_d"d2RM#R/h4&$E~, (I;/b6oȄrה$8W,dW hǑHl>*&(fBQ*#):Oz4Q ?u Ё~&3.ٜ'6:5K=ܵ)7-+i'9YI8e'- OӿA7UӚXaв RE/jՌ>eB@CIU9ҕV'L:o)X[r&XOCմH>G}d;WkӠmZʖ̺y*ZUlAɎKzFgv|%:϶^WU J"I%4z%C5nz;4ǖRGi&_(wIͥsջhm&Oû`}m_n7B-i ^8NcԨU&bɸ \V-ɾw cbP4 wfhg8c%K$f3+:>6\[fM ?a1#01Cvqh5!CeKH;Fqm>G1YvqK:Ϲ68fcswr@6j4'0V8;󄵩tCΘW7gnl\7Rk9hb@qy)~Ǭe#yEnۨXdo{!nTl\Ї0HMջ)\Wu-%=pG9v͒39)h`d-:]N-VinS64!Hȁ`rM[ 4T3Sp<'_溶dǸҧ¡\ 7Zl Ȝ)P} l}%3N3@rO&k₫\V&]%r3=I5GR~6@S;˥+u&3P;ϔ`RryMRu.J|*ϻo}o[⻾xس;:H3yH^:z6Mx4{­ʡQo^EGFNc[]fEH;ȊCcIL#ݟv-Ua c@L c|GHqIE.]|^F1"FL7DxcW$*FMI8OeP %$=";Ni hcR(`^TI>\C@:G.dM-P|H:cmLdה!,XmEZ]bHQNPK:DOFFa>-ueJeO:ca%$>_[M\BV)\2EQ S`(edV^v CY`+%}0c-oVljBFEEtm"d~t&&LiO}ĢW6"tzwtY>&pyFgb]qVaqHNHLLl\kk'n`Ngዸ$]Ĩ e2ągC'xbdj:Pfvv.)E 1Ky]R(0~HQ3.h rOJN#}ng]6%Yx9Q ȎD"`4ԥ[md>ri*"^PGMA"%f&U )TyFi:NCmRlfA,PZ W]aUq(z5MRbM=!4FbPJdT,ChlMƜ= \uin&vz=2,uD ᄺNX+Roo\mԊ=j [cc}^kl&Kɪ~rqĈt8 P.@Z."mu#Ҟ-M \mϣ|U 9 .HߞZ^Q +qr-,jO,u ZiDm܆~o)\n&YGP (=֯T-8(Ez xQ 0m׭xQӘ7"_e Xo!>D)E7)bB!f+e J),N"PvD`^i^pF"D=Bꆶ~0烈k,R@/5S =**ﶰqp#F,:*L-^c.WSn\tuQrT(da\%qaTkr|[PL0Xt'{q g+K0K|i+E$іib#@- f`FUiPS e5oM> E')=DPtDPEw~Pjyw@Ez/Yn|CuR8HrOاRP q77q$ҕ3Qko4uuC^vkx *aĐiGNG3c6CXK35o4 h1}'EoaO!b3 bXCed^W;1ĈO۴"=0 |L;qZ Y!^GăkR1KG;r7:!J,rDi7_ :%:'-zMk4Ks6p_y"~stk-Y8Vʔ!>wd)17ц:4O꒸m_,kl*w.sev#| kJćPZ|P0BZ5!BgM[&GN#>w)G]5oHzz,';xO1(G| <*x7J0-Ōy`yɭtF{42 }3E|nv_0|S|#>2$"ϋ[ys{gܓPA'FEkJ"{ѭ˓>^!sFEλ#=2ʯpO8IxlݣO)[[kԧiKAxE.wx{uCuL=eLDžix>fpo(=-om}P8 K|?Nrg@ '&8Ȱ$68Ĉ)b@9$ %Cn0xbA &pV0E1:hQG&Uiӥ(CNtxQAfyp v, gѦUّek=r`!KWdݺ)man{X ǎO̅:2P1Vּsg{?.3iѧQCl3E+Òp谫DW6;7N޺s3hO@e?Pu%HMfXS~j'سFcǗ?~}!׿:e Bn6{##Ѽ3zJft' QI,(+ʻ8{ DλGi5JbȐ.C)'4++33-RB"̵jbO-7tm76#.z-9bȣ(bH/ 3 )3TESse NJI& ,DaC(ƓR@rWa%)J *h,,HCU;SA͖.$WPKF2Z*kmtofJV(7sWt)w;'hu&3}XK6[#M&kDŒ$"VT2kj!fN9=g2,b$4U.iBk,~Wo>yjEz2lb̶VՇL65 (9眓;ƕ^t1ϣ,`l.xLP[oHW~]V,2d d0\b[pow|-+[O׽A9NJ.juLM$rݣMh/t,цeaEYz>X֚V[_65]i#+ ˋ4d0F,pO>tÕp(i" c1X^; Xd? Bi(9C?31;3',2hߧ!;8w^S xL'p)wnH;9bbl9@4B" vIјF5n$(cQ+DdaVXI~QԂ74d!E2:0M;c󠇣tH<Drm |c1HN6C̲G|Ac~$ɸd6oؤVFgm?h 6R,j I#` lhP~Nzth2H3I1E5*STH)B8@ITYK/]ҙ@#0e0x=}GL@RHڥ8j=L&4u$i2֏rTZ((!YX,+("S-Ҵ7+ળ( @tUH8 ,Q/Ȟ==qcɬZu5.WX*0VUdhg7Z.~QYHLպ$T̪:rL"Ɩm45ў ep:w)hp tvSݵ_7k&ƾ5=mjsq{eŜe*QϚu30" l75jgM³0+`v"N=HNr|54dvx|xiWcS"ŧkw8V)UAxJ]Uv Ebu3S9N5ciJ~Dus3YUE~d,jOMKf1nзJɥ̆j]#6t!_idmV%}SίpJb;ht&'K`NvٶLnMщ&$Ѐ˦!WgENXT 3Z$)fC7#p[;ԦVLk:wiJ]kUvC?,NFkzUoE}U0XɝɍWט uRɆOd z=K=S &5\:PS>G9u=u<)l  %(YyBļ>Tۮz9CmsDŽcvUhfCόu i` 5{~_'=ݬN\wvX{mE\/ӧBȺ7 ~j̜Z^[{\!?KZ.Oz9WbsO^ [!X*w^orhpwlPŭ:B؏ܯo\,RP an `F:#0P%3DpG>Ԭ KVoߎM%bĄnC{P Q#BLTVӜoP0Z*evP#*zpP`ƾ03"fO0W|V2GuQeꮯ. F WPpp:',1*' i0NŦ%q =A1 P$O/ޏOp.ePiqo o1QމШJP/Cl "OB?qQDP1BOc}gQ'aqo谉oJq Eq")ű"1#L" Th[`q@P!e%NMR2&..-=07!;;)14:9?Q$0Ư3 T@@.#<EtDE:.:eCM.44Qc;EDSsZ+IGFk)Q4EBϳ4: G;tGA=}tJFS?IIH3.4@.KEJtL[LL#Id$71 * DݔAHsi 37K_@4AUP4*MtQkR'b3.St3sP 2 SkG/U-XXa&R%U3BUVG5u8s|LUu06BP2ydX]Z/F1{3PyPƕ?RN#[5ε5+T5O4+T2_ըEH'ou_\ݲ][F G]Ta!5m>ST5qZcAV'L!A2bf;5dMv?Q6fe=e^{,_5eB6h> eguI `wUfNggvjWv ӱĐ0i?thvl{glsuewjmOvnUmong)mVZ6pSv jVeOXTp!5 Ptu_%ut~JoKtN\ww$MS+I[MWLVTS3Awmױيlx3V&cPuacB:$&H$N?"CXG dLNdU$B8g#Ym饋-8Zjb噴v=Gӝm RyM|䧇f'F&J7FioS7>Ah=؍O+x5zjycST5ݪy;ڨګBJB )XXmfbڛݶ%mySkN:lꮠlKFڤ pA}{oh;Vl+_lej/k0*Cܰ@z֦+,fgl`,u4H =vcQW` ݣ5omsa6Y_ʹ؇ím7fa݇^n7wEV68rߖCN鞧qv(N˕^;Ȓ)yn:K^Hﳟ\Ә2hVpO+_J䇜5\^/X 8.8p`+BfHnB Uh s<5ƀ}=C$KC$2Qs@EPqGXEi٢Fn_bHF,Nl"И9m5ьe`3 X%Dc#$(Ij%Lj2c&6nQIE.pԲ%&M KV~x)>X(S%(HFD 2Gh.iӐ59m^^ޤ&8q򗫌(]9n s8Kt,iC%9ifd'BNs~ reEGQ QbGы iGJOrA=) ɇr2I+Ԟ)R3liJjςt$)Gs ҝjJ *6%*!hwTWԮtXֳ5f'Z)V2ڑ5f]ֶOZkZ֥ԣ0Ԑ} [+53+SaSnpU(9[Vn]gZׇzmYdZԳ-nG 涷5&@؊24mGZ[jSiQuXv/wey]zcevRY|)׾`q[_ >D*(UnG[Rla̮AB.kJ)įqo b|5n?ؖBqkH,S]qgg|E>=V*[OL)̚&1P {[&ɔ$ U$T|8;k&MgE9wkߛ17mtոHʓ J!$n.SSp52fMZҥ46 k8Gl֯qbM90Z=o~X nP[s;b;6le';KXvnhJ!ëHu;4L#\T8 %k4Z8ա5iż!"!oIvá]C @j73cEfg=hgc|_d=gC΁~s\Q:'#SRC]Ϫ`cnE o Upu׻Svڦ[4ϸYz񁟦si(ntW:KHyuseSz󶳯MOEۚfbn{$}ggQW=x\oh({k?Ǿim}ߨ#5aorKz'??Oqͽl˟dzdzXbXWwqW55G6{5}3WyuM |XvRWhRoǁO7ƀ$[(q/xY"'I%LX~5zW.x(EEuJXTTWKGU*H|@U U8Q/Se8TigQTu_vRqq({V([u8CIp};ȃpH|wEH3([K8aNNPP$TY4WeNq(OPOr/|gT1TP/hGhEvESߴW`ՇJ(N'PhxȌHRXKhMLqVJG(MWTJe(MX{IXXMKhF7hK{'8XX؎ȏ Iq6aJNldF)G3HL5'L ؑ-)/IItEuTI7IE9iSēa[1~zԑt ,iԓ0 ç?9NGa{!2׃MOGgc9GeILvrc\ q^LtyScxsIȗKCN)aVXM ` [) 09P/))'II %Y0 )-3ə*ÛSAhT]9(ș)^Ԝl 9je}H 8 Iq4ij^ig#љ"I99%6y) ڙ Xicљmy# q iE$:k9#J%:jMGe>ڟmnڢ?zLiC~ 9 iɡayi)9%SzkÛ _ӹ;C:U2٦.jgi@9y:٧ԤYn=JX.ݹ`!S*u@Ej.Ptk-sJ&Dl`iٙ JaVxjgmʪ9вG n?zYTך,:(܊lf34'æ:Jl9Z^}ڃ`IyI*qٗiJL*+Q갥y8*7ɛk:)Оi!/9j٨FyjAZDiH˜86+OuMZ+S2!JŠ~™amGZEpq V;j:2**0zXxKNӲCori:h䡦ѩk-\uʶ'W^`蹚fh*)e s6{{SEy) >3Nzrkۗz{ɝҞ:,9 Y бZy;L*JӚċrSaBZLFuK;Z; ZoJzۯ 񯟧+),ai4#'<$ش‚ $3+2[[1*ӫ:628 1OR!aa5x.?̣Q!Aá^7Aja!P|űC<^=XtY|)Q!\7 )qaɋC*E=*! Aq$\ʣL›+<+A@q˗ltRɠ}k̰\,˙lL̳;Μ\ɚ,¥F!lߌLL Ol !3,Υ\X\\#Q̗,"2$q\͟˝E m! цm} ѱͩkM2MM LQ&C=  :\4:q9%2}K=y,e#Hq@=QS D락a}?cЗY_+V-צFcMT'Ӽɧҩ;qB=Kr_ fd!I`,Ly!֑-J - Arٮw,ʦ!|爏Gk 8˂ĭqݵM1Jش/(pC;@\JTBEpqFaFs|9cK/k/9p %S2H(/źx2>/D ʑFu4B԰„ěI).WQPMKK֤HQKN48+2(/ѿMS0 ?K5u:t%L QzTV&TP u0bT/OͺT+oOSu6db}Z.P3S䵥_ sgu8d-;Vq*7LZwb\~LA9`al=ߋU(׈"wx%Va.6}WY*x#cnof2~ՁZ 9mY~4:% 4i] XԹy:7ӂDm`|0njrS^c96|ʗ56]]-ؾ8ۼ#i]%9t Sj;'ȉuEIgU1rϥY tPyգ+vdvAg!ZsOv<襷&v_>v̭R⨳o'@_Pԧ)NSeaCNF*B F l I9/'% jpjꎃ-_F-Oi Yσw69,{ETYRĘpvZ':L9[NEPS]G0z#ǵ{ݳaqU39.{iŷ6 fH3CٯSr[T Tfux3J%˦.]2m]Q#C6IQE+{K(FQ;>"BQᥓz͙`S\89XƒN) OW`(g?sJ̋&8wO7ړ˗)ƃ>Hif3c9JoawǁF٨?7;V}='AH5!skgCi%xC GeZpKG= .N z4iaMC['F:RR]BrtK͚{D-M~jbz?JCD&IB fr/mm;[sBDjjvj_y˒j#,TO{q[ Y4c`i;7t`ۭg9)A.1`V5//=)жS1,S;͌^O$HsvW]ce,R%B6iS_ ]C.Nh򌗼nm]HEL Bҗu(VVe8.!hoaw{E뾢\ܩX!mhysu}P>7$Xp㱲hE&ɆNƺ† }cn$F,N6/2M;2HS;eӺLƪ4rDlں2_32K5vidq^޹4[Ë ](6}g?!|GRoEZ f:ЀR(:ty5ǚ# &Cb[Ļ,gٙ:γd|iڳm?kuq>|EmLةF꬝Lb͍,u=K۫V=m:߫  Ӱv*]s31yg8&+،m)/>XKpL+? ]r \^ .d }_]LG{t! bim[=uO&pb~^A1ԗWījHENC#>/1gYHAa60 -9Glj˜[!vv,{3npy<فoϻ=˚߼ zZ.}a [}g}A{/y4OzDG-h[ Џ!K?{ӽ[[b?8[->ԋ#p[Z;>k:7:o>F>Y4\HA8=ac=%K}hū8qL%. Sp($:$M{.0DĺDI<,9C\3L!~4TC3kB{B\ћ  .Փ:-,CD0t0DԠsPD#zߣD4>'yL"yF,ɢ4n𣬪pȖ8DHoI1lJ{F80bJPʆ`KCtHIrGYs ʁ˰J`Ƅx@ޛEԾM@~tC @e̱ɑJ8Dɨt1j <ĿYK\DàӬLnH\1DҤJGXCF6$MANbGMLl4$ä8ȼMМʚjCŨRHLK=%]JTLJ%4NT$R*=1TkƠQhR`f$Jl1}NY559b%78U`ZeCc"(r]ֺՍVVSE/:`Ԉ7`UUOuEX'TteCDy{ӋTK!&Oe>PWM+EXYd ۽%g=i 㾪u'KmTW&/Gȍ\-MMۨUR] OSUNFR>Y[]OޥPuӃ}󌺥ڍI]=m3`DSUބU[;):_[h12 X%M]OqQU&T_ۍt[C\v5G_KuZQZi%ZNm}]%TUE߬S`q^: ?vu׊WRX n_5-]<S%"&d2Va^=b[Wԓ{b[PM5}ݑ^ :~"IT2^;aZ9Y6ǁ_m"6g3K%_ތ㙚_>,tc?`d$SXKEc6n\[B̦Ia^e^a]WζXF(]] ՎHVkfDgb[Yt2 [XV_Kw .Va^Z=[ze|QƝpgZ[^anv?NFfpcз]5gVf% lFy[`D6链^`fGx4eoeV? yf-5!$4Lj(^\-d@bd{jN kQ]aBf]ZNdrj_~=^ %lڎߏ.љ6]k w>hcbUe6FV6tl  9Bؾߦ\n,c(me.3B 0@iEԐ lDĎTL}l舐 v(Ŧaa*>f_eP~oj^/f[@c`m46`G.iCbdzoߞ. ?f_+q#N x oӥ.~>+p&76ߧ"/ ޘ/4q\m&炑nn݅ng[%7 5tq7o_TmRs6=&&AWPC(?& q>JQu~LmlP 4&1PuMgyOp!^vW0_NAvhϑ^ &sBIWq<3r&?jv/hv_wkvDrrMG}h/'ӺK׮ەwQ Lwvl_Zyt[#{)xiTp@_`|{ŗ4lȶFWkWO9y4X_g1=!_|v!kS<4N k_џcI_W~oGQ o+7  >o,h „ 2l!Ĉbh#Ȑ"G,i$6Rr%"Ui3供: Pϛ) (Hw2mڔEz QzD\j,ڴjײmũ9:k%ѦDc2{dϿ" jӰ̗${TQz8PU粠;iWnT0Wq2n0W6X &qKxnUXejԌjU`r=bRǏa/oM ߯{N2aG _dqi<.e߬oAm 9o8.XwjR# 0D` SnncaQgK"j9d_Nqds٤,&j{ ޱw2frV0Qf5# #BD>QIPzJ R$b η(1(VK&}`PӉ8'CP@ܕ4Yܒ3rJ~l׼ա%Am0_js~ܨdgYǺ\/07I{mU~=a[WwvEcP硕H:JWҕZ3b#h;U;^V[W 捤0]O?ϑ羢?x*Vzs(Ź -:z_6`uO^՚'xץR㍁n)Vu\sJo|kY{G?]}M^W=}ݲUԞ=YUtM֟ YZu$qa_qj b yQޖUMU)W 6W^1X]X,^E]-p ayZھX v͠ՠp ZUݽ ၭ`ʬ_]\ӔỽBVUSY݄܁TO RSZ T՛'J !^"Z!Z5Fa[y]"vR#6Aa)SDZM_T!ڗ sZb-#.1E#JTq*b3T(y *2n#a7_*_[M̸GL"$Ehbʨabc#I i<,$YXj~`d#H&b"bV tF".e&$bgVT`JcpGfSF^AM&G~UōD2T{DitZ‖uap^ "hq1ۡHdw%!1^gp 'ȨddIm_TIp(]@cHҡB8E(t"TC:"N+Fr#OPv(dĈT5dι%&(P2ʙgH,qAD~:`jb֕#frDF\쩿Ѭ$fBK~g|1~zAiSIh4*YV j@Zˈdldjp͞`dgEj;*"F#hbSjΪ@m`a|d˪VmXD ^h ,&6UI|++օ{_m@iM0:ųv?toȎpG.'Qq^g( ({N2rV/[2$)peƀv$z>/2)V5g-t`G(in'p 7nDz1=q1|s* GPj 37IЭݺs>r/-nɵ"HqêqsT@qDtWiL @GXbAADB L-]qP=;6rlv,OXT)O+vLuDT0(GScE2t5W1`uS5aBO\D3/gD0>I\`kE`@6c;W,vvV{5`lH ^#5N l&BCH4P1i76b6hزUe3HmR6*ktkȚepc47{scqr/wghWCF@w-v^^5sZL{S TDyjcGc]Gij\ew,lwJk,H 򉀟Yx\ R,6p u}3e6pd;T0^rC[ [Ǭl;Em,]vcLK 80B xjUd2 GP3(*f}۷[ţύ0w( yĊ)7.rʳN_H 6ϹDVDiXB ?əc`#Wr'vA@9)h(c+jmd WĩCT7H:uy2#Ǚ^k~KIܭӖzA0zr#yI,F wG ;["7gD:O#CH9eZV#׶:Kj ;k9r#{+{zz6J貊Hsƒ{DAH|2߀^{ Gt N9`O'꼗5Ou NjY=Qt+繛P<;NL}H}K=狲>,䣍|ƒ6Shw;N,~h<: :~~KI dK>5fPO|S&77Vl:vKGE P`B 6DH"DVLƍŊlQGl@&W>+d fLO)SHQO3\(pbāIDzPӧ,e޳z#Ilد kmZǮu[YoZӨԨ)M7*SDr튖Hq۲!]%'41@O@\|rsrT"QիY=zz_t 1Oby%kpÉd\5ڮ{5k^S6l}}v]c\3\q +׬ |ȒAs ݭ鿱Sc,@/ ʶڜɰ3A O>,l PCFP/)PT#-P 0(7+nGKҨ"9lѠՔl?1bɕ>C.3 2;7Ƅ̊> KҪIPR5*#nʕ(1 %2:$Vs8O)dԭ5AC*ܭK's4/,7QBKt/G)]4I!e,?q8Ab,ucόY#@^ Y)EK1uat7t2UC/ܒPPUY]YJ;ENE{15~U(ܴM(Q m4 ۵nڊޕ7jT&d[sü]+:7t4W^h1W]Y1_Pnwb4%S2b%tA8sPAV8w+Z?4 iɞi kށ7pKgѬP *vώҊӪIPʽ&HwpN腂ӳK[cg0/#Vb-:aҽVK|el&s3. ra%S˵|΍>E{EetW}o k޹~阫Ǿ?+2OV@&s5ЁI wѯIg{s$7&Dm EdhH 88 aƤv Bf86a2)Vq )ڣOdb8FƏZ\Z 7:eacC:Šs{뼡BN2mӖA3C(e9dv<?@,,neVaD3P CDRbqbEQ~"xlF ̆̚$> d\XBoB9[`T],Rw׹jD("QtD=CY:Q*XO{J1<%8ZwV7s8fqsEAh# : {g!>Y|^x"<])J>p2)"ht4eURH%P{ϛ JgRcJd"Lj7:E!mHȐ:RԄ늗QmwLH;V4?%0POU"F)P$rz天s8ɟ0"QXB5L؝YMzk*W\f*X+WdU+Hs2u\Fe7I+I-A2xt]G[+J ~*[ɥ&𹊻G1YxU$Ɋ oS ہf]?u\DrUm CYe+ղI J"ܽV"e{AAp|EڭϹ)̤|bXwb+GLb|8_|eǫ:ʄ^IA 2a#!c|d]gZۉv-^? 9c*G$/Ȏ听#+Rxs+=QLTe6"^3+dIt_:2lGwɠ$!uAw2VBK" sBF503:6$hA Zdވ8eM|:oHRZW#ztKݎ8&'ַ`Z{!r"v&UTժh5WWp ηAkSCz6kH4oBRV9I |)SSηxo&?J mgEgђlt_L[/gVy܀B˓(2 eucF,w4U%j(o yDEJC aRu)bsuvxq (›X({svG*XČ?|QlUwy)&zk9ע2Z!lBQ I^vR _JVD%t'?xԕ~dS|Hgu_'._0y*OǞ+."F] ֫MmBz\#pO h#.5LNsjE.KN( ɧi00N2 PNR6ӯRZN -P"bO#M`&3dedl @ޤ'Op:flcXz  kn`MPC^ P:l q4Lo+Vk*V2noNtp`]#/{dzS 0熎:O0k*/+0Y h Z150"M̲!#yhPG!HJ?‘ 0 3 qbSOb N|Z1^qhh0rJpo T"#RЉ1؈mGFq…X:&Q'|QDzq &oBP1 NO+Q(Bв vGO!2V0 Ĉ(p+Mr22$ %Dr0h UR0(Q|lfҴL epD$G1k ,dJ,sp04]S;?G`0hbHf8.gs%1m3,&3"6 3#&cM8!,9sTAlު2-. 7/92w76eG7bS֒_PR! BIʱiKjyrS3ؔd#הsΞ;82I>!:!jhT8ń=Qol5h$0/UBSpqt,S8Gxn$GBi@SB2GF53qCS4$=$5qsJr2:?ض7y)}LMG89)$:uT*X4HK4˃mG:tI}IQD9n۬J #e>j*CK=:=KFmG8Gt1ڔ^c0"1eT{FM9TIOu$IM:J#IN*XXaZuւsbS9u2Gj^Nu^K6 ʌ"ȳ1<%.lަ]Kalc^@ϔ`dZDiI@6eE6D^'4 8(4QV\, n]U^]w qH72ՎuA*cZTuF/qXq! GTs8ūoW ) ﰊPe{fd%-({5u7DWd̬\׍VS*8N'=8xqn8JM&!y8KM#5G,gӂv_qu}؎oۗk/$Yx(O siVs%ƌSX"B \T`wmQg筞++m{YthsNf~9+7R3 a Sw%VwMkb`uXTPL5"gC4y5sYNfiw;ƓsvDJDK{)"e9DzVc#c}Zi; Wѹcd:MhZw L5e/rڪ/gb1nq:!#!회="F'?!SŚG"C;]{6FYEY pmLZq+EmZb:{eV5J{{8LꑸIڸU[v:ͨ֔ղY;:z-@4,u&b%̻g1z;ms-}HT;"iO!r?{x/*K<o !rT80}s:cx\- B`Vns,aۤhz%f1FxOǟ[vD|d#E$1Lv"՛ܽ,;Yɼ=Dǯ;·sV.0La2Е!Rͣ+C} :Z龙!ǓY僞%?R/?"<{Ap;|>3I5|8`z!w?)OeւW%KƦ ?ֿ NB Y哃B#LJyd]r L~"ck#>3a~hcq BbWޭ> /Q =!_ U/o}h\3'LE-ij<jmk TwyJ:f ,&\ͽ+ZHƍ5b-dȃ?<)ʕ,ݸ8ZfڼyL.Yt@wcϝ8oɇπ|鳤*C D⾤ Ȃ"z#1"EԽ bϘ2gls&LK^4:(w&N:†jFwd;&dXҥYܗ&|crv]б{6RFl+˒]4OdfNڑrPa܂ʛk˘8ֶUՍT(}Xqw[R RxAG%A_5фbSM;Q@X~H(`quUX Js:xv(vku\F^]䒋$|coֵSeGOr}vRhnXiVWi!(5٥_P'ZXoi}fra='Ѝ;f#@ wAzCEyK NS#I~ݷʙzB2 6W+}:Cvv@9tlCpM:lF~䋧R*Nډ(+Z[kU2ZڜЭuiq*/g2H]2EQ/NɭaVJP꡶z`~4J֧s QhN 8ed|L2A35,#?-sLXo.Q\JkqIuZtk[ њ:E j;2!)ZaN&[5DMk^lV7Uy`|2r4[;!kf'<멂aa;jyx6tHDMdZL7敧/FPcrI1ven\+EoXۭTl6w@t 0Zʸ8~=p<#{NJ TIy'@TW;tҼnydWk-f1AtD;{4fn8@e Isv!EY;l"TUWՇE l+th!"pt!7N,oP-ԙ|$%Ev~o(%`&)pfR=<)&zoB½eY_TY`2zbFmK#x'quy9Gz@-j RvnBOz>>6 J53);JĐ*U"퐋D"Qv:d&m@Jt6 &eiDsCh+9Φ5Jte01Ҍa@x:_6"ԇLmh̜O l})g$^xOK 8Еvbg*=Of,Yd8L.[@O4Ƌ_%\/Gr5(=~rV95dMB84+\ޟ֓}$җHsd:U͆Y]û>%k՞[Zh :K 4_Q_*>Kc/8 b`HuRҨ0;ܑn,F |p蟕tjQ smh[mdQjEzVO^dkkbR iݠ(ͤBԼ=MR J6Tm̘_u7JϻaƩ1TLju٘ #G+Q~)̭ EPNC5E0&P?4& sXMt8ZQ'4͡j]JĢ GǢ2AeٖӉF2-z˼F(&I S6yGX]+/ɜ$F>,&7}[TfҴςDJ(iϋSDlN Ayrxop4o=2KTՃ[G"Mreݙ#z "Z0Y@EQkJysMo]ZmjQ\|nfߤ]\:vl6qtzR>z)p%Z(ntf])ql^|Zer? i~oes9uhzn$L:&ӓJm[$\:kwMCzО-y>zx+MӶaim{|cNnAySxO8QB|?:bLB[c2Cԫ}я't`!p}G'ǀ ~F~~+hT~HE Y+1QKAjTunX7hz+kH'h&Uy1{9H)<({BlfPvt&niS?bf'WfsEbe耑mkhEH=~KmiO8j|"rDI-go%_H<|>fg<8ցƅ p(s}u8|7/"8gRG}sYzHYO9_!a17XtvVF(enXh(h'P HR^(bYԨz0DŽ},Vm }(>8UULwEjNvhT"։u4i.J̥hvCcUH7ofl 6` Y}B ` _#!bxqsT6򗍘ҍ*á|:ᘈ*AAhw_؋W c@HxhBmS0$qnyXGvfwy4j{EnmTTOOh:^&.40$~,:A6 h]y'Q&1^PSpivqxU}9b•/)e I- ixxH#J<1l8v%~jd6Q=p`LfTnC<,mu-659C [mv)iYSx8y*iSw$I#Jwwz,zXTcc|U^q)]#cׇ8nQ ` 9#_shY&8Shk F2a™9 exYr%*`IY:q*Dpvo'YI$;UHyH4j *_bAw%y"bKS|)ڍ)|&&A+!Iw4,!nFha!p*8WTm{HZjTzs$I1Jl&#"1kתʭ|@|p@4e>e:yIK7p*Cgh7j1r*7í hW5XqĈs.UNZU5k;ˡRR4sS[njTg1憲'(EieQ9JB1Ǣ&ChzD(Yܩf"lPp& "V') i2)2FT jK{ ̔'#BhOzʅ(AHǗ\3Lm4޼m(͌v7ۃ> V 7k9e]_^mUPXµR!p}\@wmal=2] )KGjGQղψ\A؝{Ԣˢ`tmnp7V n] +b]1dq٧׳]cʉM~ik )3=T~֣==yے][t>[Ě ߝeڞ}]pޮV7I!V$4vޠƺ8?d-9g%;\ *ᗚih\dx ym賘r=.]|Z"m(j6ׇ+ Uƍ@?:8*h >FrJ9 師b橇oVd=N87}ppmd--.qL\rۈ I3ZbhܣD=.N[ |,㇕.ln3^޵!AMn]־Դp1NC1OgQ>-+p:޻z/4W.Lp(C acCH6yӃÙ I<:NG!h?A/i&=?gv,@oB?¾!.>n^kN>lCfW_F'#CmRQ`gm[.j 3w;dDyE.o'q?:ɾ2M'ZeD5uZdo [LO~!ߋ&ހ#׶~]imBBp޼/?1"r4cOǞXz}5AG`.T FL^KԩWK%Kx8T 005#6/0B*kbzϋ.䐦>Ë,,( ?ƑdF/q-V\36LNq,6s3HQJrqrs@t9RH-ݒ.*HE?*?Il3ESoT?M=>I̓kЯ D1eޒ͐ dL HOSQGU-npXoucEH螠ZT\-mWl !%J! JFh@H$Ȑ(zhbu$o41B CW*u1wgM)8WO;&L_?m!+R ;iӯM#&hK|mB33*_;;B_aLք)콺d׬`.m Vō!mC|i*pBidd^olGL*b[+j#-KAu0qE N2%І`V|$3Vp*Qn*ɪ(k ěpʋ_ͬ2_tbU:QjAcU}'"j^"+G,v`e)9Yi %HJᑕ mF6pxDǡ8F#<<#5ш"a%Fk\4EFM|$-E|tS2X9)(|Ȥ kcpDegMeJmJ/%ew'2bM\Iu([tQ50QPtKwѠ|^= &СkUM~IO5Q9HArj)F9̒14&U'k{zhNw a/\Ehqr%MvSx0QhP/=۟J9/{y0*ϺS"E7D~PwkTI lC [$CXͩĿC)#25(0B;Ѧw5,Y hZM_`[*[沤 Ԏ#ta o/A$@Њmk*[IJEԴ: K<+9d&:h\4KRm 8Ň]SJS ZY (ε1ڜw`Nņj;QHВ1]^KXD/j*wUCo.3MS|&IkNk.Kۍ[S\0uQMQ40x|7a,&r##˄90f?7peͰ@= Cs!}>73ѼCRoT 8 oG˾C8]rX˅e]nmJ +u՞i%f@5{ >'bۢQد @À8?4x>|1k8K@*9ګC=pI@ ,8 /#@l8T+5*Sq(1Aþx=19k%'tQ Ȏ S@cm˳ +],d&'(6aSsqCT9 F#/21$C!B3\٩C9:)LY+* % \>Al?>UD2\qjI#Y˜?58$6JT#{C2!.E+ 0Dge$h7ZDƔ:F[KEǐ1z*BDRJFCوR i<6l0\Gx $<y,9D';@Bȁ@Fj nI>ӕA C~ |AVNȏ4sd; 9$MñMϼ.yH_[{:1͒dN̼ ;LLLl *4=S5|+q(4 :,ᡟv;`N\P{ B ̈́DN - OM:{HЩr@AP)@ QOaQPNTAb2XX5H -mOP.R ^C4BI&d)M,y+,&WE$4)?5S *QDǴu/*PpELDZ2d6MT(\4c* ( 1%ҔpDR= U UQIAC:U(\k"mMtA==q:\ Đ)Nd?UyFIhfgN'F f*jmR[l-pv%֊mDV3Vܬquר4>LRH|}ςWnִ\6SjKA"A\FXς駍z==8[a]xTXSVqYPDK)ĠىYNuѤBZٮV*;,OyJYD;ڇ4uF,[SfJSט|Կ51]׽hۺA hŜ H@5,YRz*N$ҠTNҽ=ɭ#{\5*Mૼيhu"Ҕ} ܲ]XnuxO`533"-4#^e,Z3ۜWtޖ8[U,_]\Dإuͭۂ"d׾ @`?NWұ*_Z^UKMEPQ CEM+hyHN, ^0 u`"W0VYu^H15δSMM8~mK+s'6`B]#bE^79<7x᥉ԫu2 Uc`ZUbh:_%]G1*vu:OCO5N4F;?vGHdcG2&cr`ˇ}@cb`^ahbս/5 =OD9C$ Ih#Te9y'ZΨa&b&f`AqicP88_Qc$X/9Af ~eX6NY擘[e\&|d?!wVxgag xgx .'udrO]8,>-FY 6+t(TOdu&.#-iCF SivNiy1fdyh;lZ5⅞ aռVfA<QVڗHg9H>iyZ!^yjΠi@hfWd.{c8 !!i4UhEsԂ?&C2Ae> K\@lvjvl|Vx~d@X&Db QaXa4\Jn[jRvvd%fzm|Vg爬{^f@lo`4mԭ-M^.Km Ԗm{69aǭ")6obibdMBczn; !*6Jml~$dnVKLGc&fs nno:nQ`V>hve¹K0 =\iQ؀>]Gߴ\e$:pmܯҮuMekm( &4сLg.׼SIr,_bf}cp]a{cklޢ.?EҒ| >sM} <q%i7Q [9's}pv > nA\B9d]߸>c VgۼXNY>ň]/1m5:}VwZ,t6qD L^qWs_uPw r_dRo\]{cUlۆv^M,]6G5-[_m]yw?9Kwuwr)wD +dt}]Vd{5s6_rٻfunW0r ΐd!qN ߞ2w_qWWk''/6qG G)x{x{ү!=o֭W6v|ҳG w|O%zݺ 0Yq$t4q(P$‘$H_:yCJNq1 =PT~ي3!9I4fԌ&lӌthob+ =LvvT&eIE4Q )R (\2W̠z^ /2H7;xpA1XG>!Nnx6K+X`1Dʅ{Hf2) { PZHOmԌ~4} UsbչtK/Ґ:&B\B5:sJ& e2OĨie25s!,`;XF氭 mxr7d٥32{ GSDBDUZKpl hTºmVXx3-q2*7uM%+rgu] 2NnrUtmG[׏m|>n _I}{_$_^V{U0A  q0M ,ìΓ(0# Dh8k(PNuWd~q`':&XRNμaqS@eVbsR:_.h; L0bsB,3W9Yd6D1ɈIL9D*7c Nj|=5^B"M0d~gb-aDfZƄf|:y5iq[MsōOWNvLFg_E65l cޔtL| p!nMW8o`-Y/ 0dAI<'EYLnEƳ$8L 3ҹ|i^k4;bGQ'&q{=Y!iKu*ss޻dq9Ǚ z[9a1lMM/v+?]K@NNķ_|" )WH8) 9R#fZDxO7pv}9cW;Y׶ މw*qky}ni"x쀬 H׊Um "Y$;%=a=3]r׸aܷV7[EUׅMM -`xW!1)Ԙ!$@"z|_|*M* [͑YG^p^qZÀLdNQ ! .(('- bS؜)t`QKWM!1 6XEX ^5Uc݇})A ]N ~EPD"*&^UZ^^!yuhb&Rј;Y ۽_aO,S:ꕪ!SYOE F$V3ʘP2t"'~Vt&;߁%1e)j&*P+,r ^~ن ^D Y /!}@\cX $*"R3B#527TE;£EB 8I$v$,^ @$Nܟؙ89F&DRIH4"QVGR\EX b4$FU-cLo\BdZN6ɥd"N*e^^rc;n"RV -HؚE8PaXZ'i^!a^y`4_zK=^>NNRNYIel&Hp^%m^eOiӭO)bZ7ȁe &=Vn\]e]T!Yj(VٝJRjKx幘 畭b:#Z{.|f%ydP ҌjY|g=rf)cV^LzcM{"fn|BgeC}UIMh憞fUB=vx9[>%xԌgG{XKt] b){&6~UMLY(>B࣐y=qܑ磬L\h%q~roini'iB'g EkJ+r~LjZSğMA.Yj#nrZkRX.VekTh"Mхp ⬿bGO*"Ux} „&+v纤Pl,B̩^o)\Tߎ,LUMt- F ma-vܶOmӚhkj=)lԟ$Fe!aت{V-AHAGܞmm/6/Y:r d:snl9 9HU-[ěI"ծمb:K٦S겈y禤S ~o&Ir]-^zoe^L=vޞsb.AlѲ."FQ3 hoDnh [.0° /Ҁڝ*:ޢf0v7Jܜ> {Q 徝HqpƞҚ9t ?om1zT7 :l=1 Ŗ!qqt8DZGα,颱?GYѐ]ZB^wq:Fwޔ`/1imȟ>%21zq o00tDqJ&ՉܲNH,oݜ̲DF `3003ϴs֕f(iՎJ\d$fl^L\:"'L 1KM!Y3Nl]1t[aZ)4_HfCh!߫uFeF-SURG)'HqΥq}"W>&LN@V_VbL%&Wrq-u D(RuUcuVW2 Msd4= "f#&uNtEBtA5YД$^R7)vG1C v6F3/ R1tx!,*݀ m#7r#D1=B\5 ! %*N+5*7(ptDAEV6 Q6ZuA嚮b=/SHʶvf*V6)-"E t[aj<&;NxtHQ$+&ְ7qҘ0=S/3S$ȡh-EMe7c\E#qai~"">es6҈҇T 61vr'36o8 %e e/NBx 8f̰$*xQ>xNDxIx/(}t|Oy*o4^VizS#vY9f B*<'u [Px/#~ d-qyX8C3?y  6S{K'/`)q{NTrtIH~:Y6˲^:w戮k#͛^zm.")UbQ"AƇ~4P;|98Ě4[n7 yF9e;{ ߯߶1'J?*#Vßi'L#|^U(#;FDЧ3plc~JX0jet3P>P8D=J’2@p &TaC!F8>Zd8#Lj;b %Q,  .-_t h$a9P& jRn!ȠG&84=wv n UoTS 齭_Sf̘b&<`Zojt+Waԏ;,yReJ=cϒgeiݐy!m+E "to3~YV<ÞeF:K֪av6Bo/3_$<^@˘cCL] ?cά5;Ri,Wv7I+Gm:a- )++p4SBDB뉠 Q>v[,/*)&ۋ4,H̔%)"%bҶ,įFRH9Rqž q84K@1**  =%+2ЍH21iLEKPArA%LONI8*-ܔTNWU>"SFϴ 2_ LysN3EhX  km XMP E9n߲4{Ɩ4tJR\,76zU׮U~]$=އv܂ekW'~حL\ kכ]9wKN _c!>)mUvNeSFP%S/+!ò找|mKZl"G͕IwaZX-6ʟU&l|Y5=ʖgK4͛ȵְ.~(h…(o05.km-Ae_:ai!\)1< *(۶bԘ@ f a&Z>*Kg M \5iovϧVj(驯1:N] lǧv6^mk|rj {0Md䕩lCf=M_E Dׯн  X.9haW8Ux>boxrc^N¼e HRB-{߫INEc!ir)tFAaxwEILkst7bMTd$dM H#?12$]D%MDߋ?Xqpڬ6.v1d_'R0b3cV(i?/aAXQ-l)oKal<皎ؑ!/q+eXNq\c#. 1[HqQSOh')39by’&ZEhِ_R߉M$L#HZԛ3_ü[ZA\eQ-qBgM$3;=oI7;F7z.ZT1 kNe2e$ϐz MV V@zB0EUi-[Sb]8Tß.9 6QLYqͫ*٠h<PGfSfr#3 2jL@ CzZͲ--,Q[<o{ )ӝCfzG^z-eNZV ݆WYXњ5SWnM!n3٥vvMp|T֯) x 1Oy-,[AYߚ!(Z4LoWe Z}bQ%Jj56d1$^-k,!ſbt2dSGFq߂tJD i[L-&pEX2{3X=9ϙΞZU,&,i.OhY7s@KDTJ?VN%gEA {3jQO/-q$Kwu%[1zR\w/c.+Z[նyi|-vA\Q:3> \}ew\׆vU8 `J'>}g߰oimǺvʾZtsSquᲴ)FsW(nqK$%7ɝs)kHq':+kFnh 2h8qg1wu"LzB#SL۪MWr\:sliZ]ѓYF]}߻ާ[=S'خb/ NWTIōFw0a.,NoI^NOLyRg@xS9ySm-d1SHCdM5K:qr=tU:oaWM=`ϳˆO)u7wx5vZ(@!tʇ O܅:>%&.ϯD~.P/#{f~$ O L0"!p+戂,./t0ٰ0~)̶Ʃ+ 8>mC1D 䜂͝+(`A^R){&Pxb G.ր..:o3D P0d@0}P/b+.q &&;dT}Z {puPbƏ!.-ԥ%j(L= D@nn^cQ@p ת!*Q;1i4qGGe1lqi3bsQ)P8z}qx1PĪGNn  !!>ð E&lE¸1v a%#dy'8xf FPA2a&c ͳ& RB/y np!Rac$MP2+:͢0rđv'Nb IǮ)$Ӹ V%[rEV 2!q-q(1rKL,K t,2-J4RQb/'Hқ&ކ*E)-,m-k'(B4 3 2^:PY3pI}Q! cs4 ӂ# 2+D{0(D2e`뚣afs=TAZ3;d26c36)J*52)v3H%ït2tZfˡH!Mk%Z&8%uN=?h@I@3iL3j*K|SfY"0a4"?&b*(:E 1CAm''Al t$*yN 3<ߐ: UJвe]aAjsR#Dn6 `H`$j2RT:Tʲ.*2vcrN1Va]Ua`kdAV Ke\lC fhh_rF_mY SP,UPhhX=QԸ0`ք]U qRuEpU%n^ض=uwg-YhZ|r.auYu'V1tZh&qu]k-lmjhr)wOtS0[yb$OvMn9u 6aIOh+[OD7|_EbtzͿzvWM.Pk"QrQ]x#ۺ{$|&m =n,jmweu-ρ%"O!w=}K}Qr9~78Iф1Ris,x`x SP\c KsY&&ҘvDE|?|foxP"7z_xbX{H?n%+/27B! d1Q8jkW_H3Ž"s?wns4ܕ*wX @(oe98Y.<Y]#{HjYxHu/{IWȼtDž405HjŻqNCNvD;ZDCۂĝą\v1t0ici2<"vb He,V 9D[۬W< 0G<XP|!x/7ҊڠW-1Х+" }R)txU\Oqˏ/պѢ@c ܙx|6梳ԡ)C?*|,6rR4=b'K$rPc*>\^|)=( >+ : b EMnP|Q:Wʣ%쨶=(䕩ԅ\鞢} Gy=SRҭ2vWЇU;Acd1V\"!j}A>!AR(nAܝfjc;og; SRUas:/t=0}C32s=w*û 0L5GSB>랎Qac^M>$7M4L(miܫb I4͵E_]7pё.siБcg"]B~={*}c"S}[>9s̑<9"4$ wp%ȔL&2A/_"~U!VE>qB?٭"0Gy͏/;I"޿ J2e;Uga̮Yf,%G$ rq>kf9+0>hA2 1F8;eÈ{r"1M>Z)S y-ճt͗[)ok'< 6A3\b#~{.-N=sUdThD)ؑ<6TOTFw0ƽ9Bq +#{[M3TK l:_9Î{yS.a-98!{3.v7zK-OA;:!krF1i2nҚ( %V>-zW ȺfTF4*Hl2DK+ԢReptZTՉle3ŐfYوtC#OߚZB*jQ !U$i~^<2>׹|9Oїd*m8'6tӉN@)/CHnFNvh#0"$cT9>@f m (c5G2R&#C! :.Y"ʿ 2~)H,MMl$,o5K9dL+fM9J>UM<=JAh604$o&`o${c(RL&C%3?hOӤgiZĤAWESkHA<&tDkjQL|R*znlb#o!F|k!sc[r$Ԥ]rFUdlx"ŕ,8_Iڳi*-+H1&`ڪjٖc}dYDsڥ%%\0WĶYuVϙ.m)DHZScWM'r&[NSZ¥ ݫ{.Ա6ZZa f9w{ݦef!!l(\_5ֱS}ZDnmT.lM۲nEoIhEl[nJ GF2H; ]Mf5{竜xW k~6^7kTK7ny0E\H5S}-M ɒD'mR^N|ჼ&c=&Ta}x#4Jl&Aͧf˘ ]2Gx(։p9*nK 3&D'Nb$+Ǫh~ZZCe`} j(^惶luj<{ݖfaw ed[!馀 ~qeYvyW_.rLV–kL&7@g 3k\p`.Cp"i|$x YY"h,52aq/9ЇNlpҗPԧN7շuӼ:c^rYΝsu /gV0b1Ń%'u3GzC1&_{^k2|c&/GǼ'tRGgGS]ڷw ^U{ >f<ѦuGwLF93yW{ mwU=T~pEH.QONOﳽVwk~.t6l&KTfmo"T{GfgDy{6e{,x{.zH7crB{/؂8:؃P'{Dȃ0&}xx]w85'7v'Xj̇+g}ur`Q}l3tpurBwc vG~>g~W wu1vuÇlHuxu*H~hnX"ogh]"i\HXra(Rx%!onhAmkAwEv*ⶉzc~C`b*D\Gщ&i;O8'9orxR&fS~>UZ%(RXV,.P!g3@Rsx} P%H1&<.2yMSeI6(q*ȀVrszY(28X%kҏo&12}~yQ_nQ/.9*je0)`ȓyx @%txbU& to~Qs 9??TexI%f$I7wa)Qٝ3xC?n)Gaؑ4~)]y"KX`!&MğinwjJ 0@!y#oA*!9;ES(1^iʌb2ڟYqǝ)Zy%36aCߤ,$W~[a{YEi7JR )]**'s.zE &҇&r[}j[0zŧj(`b:?ړ:hq2Z=:ojL*.P DJ3ՁnE9Z964DjU~4KyRws3j4GJ8Mښ@IxeHLd99yʫֱ:yF,JgxE"Yږ)W骿)VcW4dr抩aSPotK`uȊ~*d#*|F֬hBT1pP, JZ٢ZyNw6zʗe0FK(P4 7d޺Apqۡ3`&kt`l[VǙU%N*/Vvk0bT `&1buBjɨ1-V{#ld\g":nSY9Z0~Hwq1)ZNq7L_te踻+-_Zk Zn9FtqZƋVä8)!moдr>Da5-t[k3žDY2*X5e8;'eY0̻&zzI9c97"._7Ƥ^M7Վy :r չUe"lʡCaCK9?e<$IC7N'%.6ӁQETEuD)@SWR -Uz,B<9t'יŋSmzzyv<9j,wG%%ă|rx+N#1X߂4bnA,B|CQv<ZÛL\nQ, 3e7cʡ'Ƕ%\߬||jw̺4IaaY F p@\Yq@!.wW:/GoCN̵8L3M<\nNQҗ,ˈ7Ȕ*QE!1o=?M6ѭbk0 Dy%Lb1$K0`]3 mb5<a N]#fSԻL3]5ߋ^`J{5)jڕ3Qr-3Ϋmw*VV5Y[b=m4i3XݹZM쨟=k% "L&0\aMwYߐGi۟e$Tq(̹DyޠDσ9X)-S  +^4S/*Җbj8:d޽ 4<^Mb3}  Ok.Ðm:բE=U ܭ}sS3u7Q/o,,~^}øk q԰cNΈݔ\p l.Y Rs1` Jn$s!-Ӓ–no{7;¤muPk^k^-^}WM5~F*曾SUДӰ}Nܦ49~QMrln--t>h?$x3U5H>fՄ)i1}R&nhm=.vS5ʱ\N1OE|=ЮdUQC>HAZzWܲ L<[^"OګuvΌt/y.W/T;ߧy([O7Bڼ$.Bג)[rjijnN̬̬<'T.ܝo"_ud್qS+h^ƫ8k@FһVi!.z-OE]pYP!XQ0_\!α(&$;pV  `!8p%27E+fG!-&%HNPB!ZD`* qƧ*86aK/[gILPjIo11>UrQ5oHaP2#J+ʔD¥[݆$R. @%lpE*ebK(ϋ !h:ڍ K@⮴Rŝ 1Eʽ>/.d0GLJH#۞ 3$9L $*pT9a#BxeԶ Y5Qp@ou@lA|s[d2|s͓ʜE/5aJ9o. ;6ܛoq7"=w&VZgخKy/=os]+VU,r,NߝuD벷\꒫7D(qjZiFwy:FUd?*#̫ T-@\[zC:]4Jp*MQFHHB(aG=/4H ^'A}H9BC|bWfB$5VaU+ {p8q)0x-a?b-ȺZxaHSȓ1q_l>QYpEtYČt1UMf7oss={&2-sYV:Ls]jYыCgx2iKߑћfu T[3}Q͝fuOͥ⤗j!רvu}@!.!ϬuRCvדq:.#1[ۥжmpYM6mm0 unxzM|.wAQ=7T˶Lo[+ ~p'{pGIx-őᴔx=qor\+IN3y'\6y}^vJ:'zэ^tOKgzGsG]S_q)g][z׽u]c'{~v]kg{v]]s{~w]_zw^'| x'^g|xG^|-yg^|=yЇ^'}Mzԧ^g}]zؗ> ;base_dir/777/PCB/PCB2.gif0000755000000000000000000026175413034371277011652 0ustar GIF89a_??ࠀ___ࠠ________???,@pH,Ȥrl:ШtJZجvzxL.zn|N~E!%յI!I#Bݏ3#n`}G E#D] (>HB9谢ǏZ.jDRH];,4: Ys nZ)a΁<v'dfѧBnԧFB 7Ic:%DY4noqx& 6RDžȽHFC^j=t$.azy}|W"^!`+uE8<أ1Zrf^Lj6⋑ń4ӤiO\v)!R&9VjhMcN ^șdHP^8q|案.xşpJޠV@Z>蛀 7fQX_#Rk_hzB*E譸gx TZj갆 K5*@f(< 0D]U&"}ĚM !mSq: FnvUlj|OUHNnX~K4BFu?G#Ja42 Hcœ6EO<\vz<)Nl-{q{;6dF܀R#'M.s) eBilW2$nĶA{;J(|6LbeG\CD"޴rq\s&ږ\G.Wn2nD,݌ocl,wn?L6nn1;ODmw.xs\7-ğ"dxv NξtK3Dޏ~C~cCmR Ϝ(lA)Վ>O _ R`ݲ7Et*B ڧ-9ag4ՉJu Rp7Y&Dpv~" 8HU-d"8j%tu: `EH `Ш9BĂ\#N_cZ%AF8HBDDG^B%Ǘ{SИ†=njtFpre*EC1dQ)!kq%un@ɔRjƗé#nN~p׀$K'oKZ.;xT%ɶ8ɜZe;<%2Oז3q̓R$Q>v7 ZPp!He@1dGWJ9U&cLgʼJ0;iJL*rehJըC8jNÅ˙r =D`&9 j;\'XǪգv8CҒ`J*W#(^uײRiO׍$+X2kONBBB@H& -(ۄʜLHh@@[ʶmn!UR{*:[ BՔW# ǢU{ͩr#pdGX2W@h{WBAha;z.{IkWNJɬξWenr6ʔZԤ)AfX>-nu.){V(\|N" C:ֽ~j&TRoX5ཱུtX_ɫX:q? wM}] Hea2\Zf*a6 XHWmxoJcS36XN0-c;m OGض 1Y/kw$L^r dVʋ&LGJ0!әYڗ>خ%le y?,P[J ,ëTPu=F!'VIжt}iq&7HzZ0 mn{/up 10KcBq;oX8#k)3acҷYO!\/'K2n!^ÚNdZC7LdYOy^ny3_(\*kJM'f'լ$u% [u;2tC'vtzY%ɬ"OrTr_|9ŷ^%`Ӷ;ӕP#0I_1BGnYQI5-}Nwƞ@>Z/MGfBa6o(q +R{ J#K8sƁJl}jg9`(fk1Y|_,28$$PՃDHWFxc XPvZ@q@(J0؂MxXvcNfupxx{+ƅN59'%|`+lXu"'p(hɕQ6@gd|h -XgtIwgw)52{x`KCf"C͒ȍH?x HZ؊Ia8CuŏR|#__(RP@ԅ4@9(9ꀑ>M}(~F%h.uI+z6@Q 1IL&{^f2􈎯Ezb*b(SW + \"I/xRiBtBQp21|eY +Xr֑rK-.8z va'{`N!GWo cig g)Ֆp!p)TKY?-y-ə p噪L)XU G6'4@"]UfC:cc eɆ萟ckwwI)'mk=IyqUu"ٙqs6 ~6鋎P9&s:'srR!j$ Wi2+p'Im*٠f7qy  ҩflw0y0+yi߷Eyt6 Au&ΆgPg4Z[yUęGȟ:VВ Jyy Cr"iXVD`J:YUjڌC`*܇[zú+Za*zז)La !KƒA9d gjMѡJ\."4)w6lR&iҢK7 +*!J*^J Cڰ i9mG([ n@*CU*ZJ aCEڲLJ(jyyh*}" :1iid!ˮ N]_a!h+" 8jʪW IpLJ.|sQ K뺴;wM^v0QY8wyK"K[[oVK^QS[j@-[-Zpxz˶{K延bkȺayhK!q{L~}^ʪ6Ük;ZʬAtLI<*Ȳ KW hڸʻ-;>kye:!,?ȪGUk֖Bۧ e+ZWrD`eDU, Ưط"l&5y V ̲l;l64^PĘB@9J "I{逪 .+U/%,C^*ȹz&Ϧ*쓐,wė^WĹLy _˧ڦG #̃BŒ쏱*\{j L'|*vuP،&+Ih]0xB=lܠd t­= -ܝvvʣexnfT+o }S\vbXgGt ! %,tz]w0{s͟ɦ:}w9! nUgg@Ch4gK(6 5jٹyG7u‡Y 4l0Qܕ`Q8oQ]K>{g">yуȐMXӔN܊ >Ŧsڦ6ٌDڧ]ө'=ls'S>8(H*kɖK|"Ϛ*ɰJ VƄrV_Va't1|\2$M݊FcZPAYsf,>i)U*P xh=+@#@-4:I Ƌ^f9A،9442Z]9W %W/?֝ t墍.9j~\4axVa ǹXĸ$id錵cyG阏ۘ8WU). ZrFn˔غָnr_YgFruѿq9lZ(mN< ?A C^93…荕Hķ&KΚ5Jޣ~.\~~Xt;-NꄵOVCAFeaBdwkU|8wbmN ^*w鼉zIXm b'Z"B+P;NHSpꇹac 㝂bu9OO9&ބcȏ^knR7ZBPi%ufaVMN,8-ƝVIOOsgE=^| ҾqTdmSt̮zX lZN3V]l֢`xll8nZlpO^o$j&𰶘E=kK0в`sFY1^6*B]==n&oTDOn.OGeq7///>F5@_waqmkV_^/a0^.D咹N< 'tLE"tFc=V h^}*4Il"KЯ3Ls3<ϣ_n1´r"Ohzͫ:Op5|8jDrhIgk>mTLQ.΋Mk3S S1 i5W3a|0aLVaU `SY ?[Γ)%YF;/!k!)RNTsՌ4pB)f% [)2LΫx#u BaNr* L5O,;i %QKGu̔ 9ܓUaSzjE `nJE&Do4fMJ*2u%.gEkq`o 4g@xe)ͱQ!gdkxĢ7H¨w[Uw0V^90ǡ̝I"ŃW7^6gONoZK\ =4j`7n*5~#RJKOpzӫ5Tl8Ut`d>ecj@b#{ֻ9Om HpQ?3 7qX c.UGq1j &qdcWq`Cv/Z81Alw+Da0gNx D221y&q3m6U-&vSsǩj`w}L8:DBӨab XܷF/TW1Ue:KYK?83-/AxI1ŵ^2LEP'1!3#?Hᙶ-]!̒!GM`lt]2h/ Mc85s~Y8=Wj]$ u _.I]ĻisGt+ R|MQe&ʜPVT(`iJadJ%@48^pWO N'G„K =e3Ng/PvLDcS9ڱ= mLS< AAޔsmhj>RFh:Aj:G xr]U-2NZ!v"]E2O|; 3H+(p&\+yğNL0M{~TBZ!EKVn[l`xӀ$lWq-7DyF rnZv [[_7 h̖/gS1vUmQ`'Hx(!v{2oQyŸ6F d\I?lL1 pvzlOt*>ל Ѐ^xK,0^26{T7ob* ^>H85~oqkTO3j8+׍gx#̅comtN.LFl*빌l;2}f5=4S[䵅QQuyB.!oNfKig ߉µp>S}>MW=nYfU),A\NĞcȈ 4w,9zlV 7JҐ.l/. 40FD: Úć@ZRlVihv^ #Ɓy( `"nyFOFf/ I/Rl@" 0!=l @/-@6hՒuvCNopdI3˰PONFihqjkI=dvpLa2xe2k Q&*5MtSr:'(p 2g pbTf 9OН8&rH hҧgf 謐V6G@iljZlɀ.H UAnyO$f$$Er$I$C'x i]` =xQz&La.0 $`q t1p0e-` ##q+$Pp( 9/aX-wrH !M "$ JTdqa0Y# Lr11M1Vフ01gri 3x'+í$I)Ѐn) #j5% g$i d66{ S4#,Œ9 β}]V]C$z"Ō/ s^=ݓ$"%Is2Sb22G%V1ln#S1vT<(p@GTPʱk(Tc.tBqG&4B/CE%er3Ʋ.@ljFqTX̕cR. i ,S&*cJSD1CMeCxPi/D}SC/˷u[ZE@9&S&`&(D4DSE!sD˩(L zs:1VC3KA.% ,3T [%o ccXfh6'3uNw2kI?"`O1$FTPo4*xD51C4B#9R/9Q6UBhB\ //mՐUЯJpS2y5Ί 3U^״#:F5ge%<c1,6\@$[.U,~[;j!gqi6ǎHxxdCu^?^N# hV`OFKadai=&VKtuf/Vp17er1 \B^D2FFiU~&0Q*JR%.񗗑zBF}NHJdz)N1ƃyЃ i:!7Kq2;rW#|ɇ(oaH#$sf:d@c{v``ѱ,MeVّ$:i5N^Vhmk%)/@leP:GigEBuc`7$9Lwba#||K2w&cg_FnY©iSʪ΂: a΄1j(WIJHꌣ$z垭0N+M".M>]_wDrnQ4T>)N)1M<^8^aGDbsdsӾmԅLfb?=FkO8d1&oɊ !@X%6h J`!9;,#+4Z ]XJ "\ e@ a@RcakKaq|¨C5RB]J@r<$)2+~R% R,rؗOIw+l΄x5r#$ ّ`ҒT>$Prƒl Qa"N ClHD1ugTa; 䁆'gPZH4/$^JT%jJԮRVLI?t)6A- MRnG1SMRY-!QcV:v>+QEzr>HQ%1i]WSR9dB)I&E藾l0.6Գ9doi/-k^iqw. RvˆiĹEt i=,—壟.Z8y*T}X+VhX!ehe(.e=W(קq&Vu`\# Zt:< ! \`}U*+^t|P7 iYxtkc9S{,B&#a4̟3Lc&2I Ca$[lF]6V sa27W b@v%Nw'j* M4fXxRbU{f7 z96q VN;q-{bc1-ľD"~xdP{~{9Y2j2b ]"1kFŌ5fp@M+o31( 6w6kHn.S 2W| *X3U0}^=5OGH4!Kz/þ kla#B}GQ]?x}[Bɱ/a(ulݷP(Jgţ%-NE|x'FSpԚ]Ǵ;mPY}S9 B=H`<"X^`їJA:x`oh`S xe"9TY]v Ixi]]q_xyNG _̝yϴi)P2qo` ^m !]Ez!{吥q  "#v"` A%9Tx(ހVT(]"Z@ZGۥ+)u_QS]X_b2.Iߎuai!Mzaz6>-T^AW+R$`!n1/ .r&z_>~+ykT%@H+*HY2 AqZVFWF>H:Zgjv*(]l0J4mdbgveGɢlH⭬ū˂rOJh,N*V* UYܖKN6-}eQSt>-q8KnN)Jl"t `Uc.=Ce3Z*P6N1suX_BWfА5ڞvSt]/ o[kv9]+]3-Kr 8o&:b#60tBYdK6bvv|w,f6>6 M&76,=Zpgc v7F @KV[Emkw_&oBҌnm'"J#3VEc0k$:)q5 x~"{ohx?ExQ{ i7pdip5Go6@Y'NS,Vj9OۚAW7rL|*`Gb?Q6Dnl4z:S~IQ'Q?CxfHnWϷBQ'Roy&f"'Gښu^v'͔f?*Iv23[`KBNHi:D`ƹKefs^2ws|,A+Η{;D1.DLj ƋX{aӬ  H}ۗyijK?= ~K'ۗ#@.pwwЂri۟F<5D:C"r)&flEUU5Jۡ3䆕Vr|FZhv}B^fV+DK zTl*TjLa:ȸ`=]25AXY^99)MV^^!AxF85>AƮnatByDFQD R0*Z4t'.EuWNE5UUST$T"G-o( aT 5^G?b4E6YeUVM@AԉS+sH,OHv3>%E t Bt6l-MR#(-H-NbT.zUf) !wTw2 0F5X r)YOF9euL|dv  BƘPOxr&"uY.EEvHXxGOiGVLi4Ƣzd{OWKNر)n曔=]Zjs)~AڰEhjqt}ޚ돵 [l"bz!+t=6>y[4AKqO"Oɕ~*_S ]1>̏V"h6-;ĺ&=1|;.coXV6P[A VPoBGiM/n"n5UޝXŽA&[\&It;ųjT Ю~~ԡP-+_q&"?%M"F'7bn" `}ČWHMwGY4RUZ߃N\g j1T-mHz$Aa76'i;l<5(2%8Ej]F˲"Z+5]PO@$ҴTg:>VPdL, 0#]+6\5c![8KBq ]mP#Wg n(b%UGU\"ci[aZt/ s۠my,)+^_ӡ΄|'WzNj +Gwa^)99&"gdsfA~ >%׶{~w/ez^s Ms_`M)..>T7f{[=DWŏ[x{wG371aS"䓹>6@ @ ԃ gS;@ @7PDҾx4ע- :++5;˒ ≣Krs?\ڬVR1.ʮ<>\6@0 ܃147;35\C30CL.,:9Bh$۷C +$ <;/(a/$,%8B+$zR)EB|'99bD[%4@ÐH7XE +A6ADCF[2 \A<,`-X%D]BTi HIJ! )qR ³RG82E1\*AXG: Au@6(EC"7F`*̒0g/Ed+tT,k, lF˽*oD} 2[H< G3LjFF? Lȝ%ҧIaH8Ixâİȋl~(5jF#I/IH0 G~lA] 4ģx@FJK/"2:ƣE‘9s\˳JJjJxJ/| 1$~LnSDdK;$Jj<:K"$Ű|H\ Ȍ4L0#!-[F7B!rY`̱9ՌC'M&1|N$kK|7GIͅ1MD?3$T2̓uM Bdԁ#F|\dIU2[ghDJ2QrtucDOS2BU]{vyU,YTL)}?W_ä́FP\ϛP`iczgbVQexk=ͼ(nV-"sUP?%Zv&YJ)b=lt_M-YRW=Z"J]͏ (7C07ih k]]M]TTT_h?n?.*XZǧZ b|`aH^`ngp`c`ϛZAx`eAc0δ4WLRZzL4baF1& &``j޶8~ܛE[P\-=XKV:=I> 4c jH PN_%Ke*/M qv"'r0+G-'A. [v7e0N6eJTE:L5։Wcnf#MfV yf˻ie Lc'W 0>zV|PafT3Ld}F7W3 SM6gl̢\^^RTTTWL`jYl΃KX>wef-ho"i\@ @nhK>Q>hI0˩h_-&e]-N痎e,Gig `3@oi~e_D:qK\(`3 ɔUfwɛj[pm-U l_r)sݠrBK_PP*֑6lKJv.4{,ylm'{U٦ _=\&҃ls=l>$ @D$; 2)b|v S-ێh &om܎am^s׮Ik[$C7\m>i֊\T7p.o.bJk&Кn j:oVmk_Z=o>V϶W~nqF ~3VHRԾ4 '}mՕpq$Wr^E>qF.Cҹl.17km30[UM&EFiQkk`c"K4?l.P'?Z:r*a#q2Q(FoLsso5gs9 j;?CnLVoVN tJ)|l+fFjF\-XI_sSL'ptWuukˣ6IDvcFD>>lžس9xHze`GCboo)E⹦^.aU(rS%R>qW!loO&xs"Owsvow3wCgoH2 "/.y`f=wltybmfy^_lx7z^>GIWlnGX _#u^ug1yyyO(ιx~/l7Xӆcug`\ͥwyacǟ}l_MN2*:zв˧ױouO{m3b+n6(~ǿ`<,,|e-}`^p]ୠЄܱF/]_7?]Iu%4PsYˀێ P1 Ģ8\IAjng 60 5*u0xWr)99bBҒx8T88$ ևe4tBs ,"< \l|KCۋ P4tQhxkTM .=;Lo/̟_E nd:+_VN5в:m"EM#p&Kܩe+7j>yy!-[>/l:ߢz9>ۿ.״'U#ZjuXi[Vd̀3EGst]ya}Pm1f)`4!Ѐ-1YeDXbMhSZ:#Z/HPL䓺)%i3 ip^r$ܗpfEu puӅT NF8?3ALH ~+oEIK do2_/p2'&ue3Jtsʋ("Ȕ nrZG/4BE=2J21ox2 `O'\wZ'!A%P RD५ #޷4#Ņ9LpP~E-BXx@tC"~fPtd$m(sAt(<-S7;ΪhRPZ6:yFk>Vȭ[G÷|-l"ҲjnR:W?:/QQcY?TMH Q]Ѣ\T\!$QGmd!64Gx3;lVXʳD ##95:!_ []Н/;DG1֯X kYpUMZFP_9]՞ƀQWB-Ck|iNq_1W$GOcS$@8u q>"^-^>uwk`C9A| tcg$ӧ>"+&'׾I!Xw3XlXuV-0z'SE>bL"ûXopه=y'a/YA4Ȭ+w s>¤t5R 7-cHj>SH(ḶI2AnCe8u& m?Z^xduA-^l?ND+W=Kp\ Ѷ6ͮh m盼}n$xЍ>dh:!% vk_j gJ]L&$ pO8w3xoL#V4v0n@]c v.^v.lSAJdΩ6 sCpZˣ)4-¥H̀ jfE5j՚BpQ)jIۤ:.ڛ8䧎o_a':G3ʟIqK.=GZ|gwZ)h [19i+˝czzy_`{(oDl⥯s=-F4De.T[F+:P=IC2?Gw~Sc~~_e|G{@'t i99W~#oF$_GL3eOn'v\{&ܐ-;"lvx1'VW{0~"|% ~WGNO|FctpLF t{ŁU 耟&.`?5>FD"8W{ROAxDPJ*2o4XY[&y>^hygS<6]4qVnth7@4P:3 VWHoh3>HRg~k oU#0~ٶZ<v&`whm{&"FQ'R+8j:dvv+2V2a&c: a&S،(?EH̸HI(5KEhk\6tՁnxA6%N#7XWA`pOnxmHW0Zdr&plnBall T!鉝JX)H)Ei'Q)8-Uɕ:(GHi mH#AmFA$Yn&sQ vA,Bn߈#}of&"zs98qY3ZɔMimQ~cԕrasiTI8u}@.EENF{QɜI(~fR"#2 EUJhBh:o֙`VIa.b7Jqz|h jVi<5ʡ›4lٟSQO6/OFR4݈< 54DHzhV:vJ٧yQA[w쉃I0LN |z(_ :^`@Aw٥-@q0iWFt5p؛6  EZg)]<7TJ*m(WBDz\}JIǚڡWz`IG8[e&!i؅zdItK@({W:d,.zzh'ʴxF;cjj:o巴y~;P;RD+bu8[{tcXh>֩d*;9Caj۫hq{0TE˸[M:Rl1(dp뉻H+o oX,Bλ4 AP83kK/!5Ke "*Kkk+ icоd@JkD ,*d ,|98*GBҋ˪H6Ek[{嫷G8 *p ¿CLElC,X| Gȏ œ0 RNlJŔ Z* Dd;=^*U~\LXŹޱǃx} e0۬87̚WčL͏\ʔ`U _ŧ\ʢ |,\\u&uT{bLkn[P x.uYԟ }2w/)v!uRW-v"tֈdƘh1=϶̋}|ws̵)Ԩn GXgT ѕ}GqX7+jk! }b=:Z% EsST%s~ $飵~:۪4 z,- )xyP}!uM5 x]ժ@6W^f9^LGOwsv *9g7{Sxqw H 6JL؋9Կi{ekÜIH ..M],-RyKW)M/Zճ|̛^ؤj\6M])ڄn.*<1$ 2r.,#:"$SemҰ}uqi=o^s1U}K(,,^ܟjBi T^ P3@3-#)$uM l cѤ Ñ 㫽)G ~A}^l%"T"Q2B) ]Ӓ2:W,6`*.^ߛ\‘f^ "  z~͙cIJc܁>Nh~! Ԯ"~ q0 #۩3ɘs`5x"x/Mk@eA T):?y_ XjD{"}/S[D*ݞ+ !@4Ͱf ynr"_I&PPO-L_ca^WV:_݄̃+hu@y%!oɾ\%-p$N.~7i{閏V!m^%nVlγ@^.cGT.Mg3F*[wehVwgd']XƢ[{o )p-OOLi 2Qq ii1 q`5 L/c-9Yȶ C`z+)ze"9vM8iaIk]މ8_(K6+^=zV-L!s*Y7(_'pDB0jEc?K+'Q#/16Q>-'.JgV㈎'$oTQLeLHMM7k‰#d~PdidYsaIU*[VK A+U[8KP|\3 aI|L:И*LKEĚ340~S>c3QeVXG_%E%n01)&f"M8l@< "PZ886pV{4?:V*4*% 5B. ɦF˂TB71MC%̫B 0_̔K>,T +*{,μ:\BA"_ŠQה'#"< "H܀-BoQ%15 5 DqNpL3IOD'O!)tȣPN#KOESM"gC;+ШD4]buuq*Bj"rCI /h'uPf2"9WOvK-?C @Zp=R=GOIDe4"NΞBWRw<T]Yn9W)L' Wo.]YV7XeS߅v\{wVEE6%f AޒRnOS]tFBނFʙfֱH(dB&>1~6U D$e.@o).$Ha-ur $ Ub(G ⎸My-0-Cp۲x} |Ʈ1b<጑ D}|J!/U(R̟%9yEaI)q( F6 0BCLhB#"d2*Eآ>lM/IL2a)Dɀ(I! KU"yX7'PF$$29!<JS!:D:fkh!WEfpJ92SFU׈f6&4ܨ##I 9b5iSG&#nBC/,5 `M'VDR)cFyB1ty6$EN*l` DmoC7|}&sgQG*Ĝt<9%UiuIXb,+(!}P^TϪB댥Z(q/5ukMO (H%P]Ob=. #N!.L_aJCXoca@8=g0S'auzW63NP4X<(,mŵid.1l7BQ+-K7_Vwro}}nT*{ψU%pL\޽D`nР,(Sv]Ykb"-*e1YH^zL'y$4%fqBk]b%4R*jer,9׹6yEZXÒ[WvM+׆feǂFh@Xи7 Nj c=o&CF|dVzxqSpPOhuJYxh3`rb'LLxef#)1$X ]f&ݭn&:[i$AG64߈C+fN A4O7LzXcf<@Ʒ}MSvԧ"Nu,1l=-D]L `&Msd tenBsPd@KWmSpP~t3mςtF>6wsBs8!Mz-"WVm{z*8N#xFfЀd +ߜ?D^v".D 9z%NI>+8/*y<&r|Wj9$F%cG:_H/"4{Q/1^$;oظua~]a[|S=qOZ㞼#@+{ +zÊz]q{{UtRT4o.@l.>|R/r.*MD*kpt, f ފjFBjNJY\ "or!ǐbNKo1O\.OTȡKpa_O$(PBc _C"Dm& pۈ o01@oTh𓸉Pr0͙*At+ мJ C  E EL/yEmǮ--Fdk捌zc ND`q9Kh1Ul6x m7f0֒u0ξѨ ~0q\lD& Q+Qip"8N+ŚL<$I*kP!^Qqz-Xd$=q!T(q%I,˛@X8wӬK!'e1p1 ȸ/Jrΰ0*"ynTA6m: ҷ 2,ɒJt$ %i)Y%rџ`(eA=z2/1AR(Um(1,2 %S)`DrD![K+*X/gL3-)2~Fڒ:D2qц2oQBl:13`{s]2R2S3s @jc4d U/4ǥ 1L:e6 6J63Ysns倫fh7C#34K58Y.Z1!/) A!A'B+Ae Ԉ0l*W s&$Fpt<3-ד*r5? [ԉ>_-,'spg{ST@C@C9-A#JKs4h nv.K;򕢔;<(u~RhGSjPb*e6O >)=${{ԠQsn64ISmI"Pݥ=4**JS-CT vdL=;Le!Jִ(NNc$N4.-ц O1clUHS0Y03R#5(VU[5[\U4S>S?]4TZ2s,6S;U5XuDЛ`ahD\q~`ht;{ OeXiPU~+QobZZ_&\;6EcCVdSt\z. :];TdW^DqV#L~.Pvf FDZbYt4Ys,oR|3$Y85v)cd尕k6dԪI[ eKUaV"uffl#giτ|VOXsIiQFO8Y] tr"Zbd6[/s7c)X`CrNVv 6]63G_@ꖮgs 6Bs'nw9%alIa-q7|pt5I063&r6SU\wB7>'̖Ce&mӴҠj_-WoJwoohmj@jtDy7! qxwz7{Mjd=D*|UKrSfE\,qV>fwi0tT'S#{WGR)_omR]Xo%E"w[(+fv7;DQiD]TϗxUmYx4Wg 5o8CBXоGAzW)t9bANN<h2xwD$9xxp㪈5X}XZΖjeV4 8uL㸞ZCIvHW ׏w337-[Rpmbg.B'7fp a,XV<9M@9y dQO٘@4ʦm]5;X^W(qY_9dSh 6̃#zohTMN n@+i.N-2SՂ:ĵֈ\KR9K9z<|38%Z^= {e_xȔ)-q dh8m9-0Ƥ@_N"'i:8۰2Ѩ{i@uI'{)qV/xڂՀ&Bv;97ph"8UhHO4%Zutغ3f`o 'ay KXE*Wۦ)}:S8`9G7{vcA[jC9W>bN'B'(:J/B[a b`%Qx0Pz! 9v{wk;Q7혳DIćJ[;\q# X_о.A9Ù¿LĒ/ګ߮d9=6OvfҞmX[uڼuHМ|UM7w< )|)6]):|ƪ,LB8·@E[˜[F 6Y\[~`8" T݄mk{q>8j4Uj`ZQ(ZNK!U95A^꧞ 6l֙e^af@WM2sSrEMM9W`0i+#6`%rS茟+t\yE"+<WR(?)}k=Ix2Q?Ci⁞~~U [p 43Jz1}l C)t)/_!?>q{=WJC?Ac-~J!`a"cX֤U]&'fg(iiՊ*+\+l,h%m)/Pp̊ȱGk0/t'+m$4)Tؒ&xj(yYYnh;zg}~(l`YdjVBj~Bq²ip@JDb$bY+`31,3`Ff-8"y%Au}!ZP(-]H0I':)rBSP~%hϮMx5U-(oM:QbRb  2aTxV~Wm%6O}!}h.eʄOk7WT=ar59lvݼ~-d‡rXʇ;H}gs n{>ͻ>ܲC3?(T)w8MB.ӽo|o2FO4v@ w,7!'BGD|h(F{ꡓ`$(0 BI0Y {a8C0$A_VL>0q(^0*>؛hp!HBfcNc7]6D`Ltvxrxhl:fzϑwEMxlA1 Lm f $>lg$ }AB,5 +O.tp[uo>ac_cԣά1J-Qpc56w,?JWA|z#( R Zև6"L 2y xl\&%.kƊx0_ z6!9p92 Z Fva~y֗%ădn\(a$G9e(ɮPrgA!~y2MXOFҒU %RG7sr$_CųgHlIh"+)a \  =R.x&)QN13Qbr0B*B6Mwsn)4H6+Հ4Hz3g$;`ԝ+Wh@l(h:ɢ,UW!CʡV/Pv*di PGOG1^ó̠z BFj̎$@R{cOʊ 1P }%Ty](IK[R\,<-,*R_ASfP@؄m +=r h5& !lZz " ]lD>@A62ࣜh1M\=K[CX 0#p:p;B\/ɖwY+ -S]\wM[i>pH6F zGQB۞pNN [WnEF2֝*nKXt\Īuk)𒛋㕥˚R 9KD֦ l׾8(&a XrkCS]. 7Kc^Ģs%E>Ӌ`,xF-IXgcԆ|>/6g$#=wݼ:Ǝ*1skq YɶkV!Я emQhq ^~Z4<2U_%io0 B=\fO۠,a_#55m'LhF_[3 4লWdzj9ħ9ᦹYxۧmOdYohFE[鰻+YǸS`WWG߅s!uv)MBccgJ]gm4cwma5%u*/hVɽ}='Xv?eu]CctkbRۜƀFep\7򅛰ԻFE qLkhøBOE!zb`nm .%'z<-L3 ;{cRԹ[Z]Ppg&|y\/D`'LeVy+:߷ݿ#v`b1[94S6l>I[T fTRmCu_z<'QJؾxGI\hŽ%^P Z9\ -܍驅鑊ܽ8-iĈ l^DPIhpX5j5!n{- 6C)|!B<N-]$&ᮄa%MMTO@׃}ca-ܝ/,u1,ea¹(D%blUc|]#T-N:ꄃjYIi(D @QR"e G Cr>NJ$]q̅b9͝CY)&W,ˆ\(1$*L@b%ym`ވ $5 bl+`~cЈpܤ[zAyc4^Q&h^0ǩ}B>Z/YUDji%4Lc9uؒ- "&gݕ@j*6ҟGvZRZ=%ȘY}JX HN_$IEzA5x f۰VTŖd ea VaFvgQh^6,lރ\46fl|^DZn%H )f}稰"6'j`c!r" z9axJθ$kgL"9f8|akaOzOjf,h*H>y#i NX*VVh3֨nMȩAxFƏI#7J]@"0Er2Zi['1nLwRoZa.!&-YU9UW|QSdrBji&.rݭ6MRh;酂]&%Ή?ޥFwN8P:')bd&PDXEz* ) jpD) e(۪*>2AުAj,XR֩&b%&e -9u2b!UvRT4nzm*=d$&pBijgVgI%!+DJ!˲BžkNzk˜0_Z---:6΢qx,v$m \5`&쌎](B]oNςEh)!օʂrm,(F@8@U؂INn^.mۦ 4NW"m\* ޾¬,"Zn"(l>|À"Q)̫azn ę%2*Zor.%I:GN(0rnqEo[G]Fq њCdd:k+i, )]ddbp &o>/*W$/> ք-X-:hnIĭ1ЀE9T0O 0¹/- fm~A nذRZCX/8M:fNR8Wfl`~f1lźq% 9TB!q1a/:ܦiT,x/ O"ڥ%ly0!n-wM/muN)P-%"^ 2*EL.,e!0lrGLX/0Xm0,iB'3-0 '0I35d5UkA6_J7_r-igT lvm9i2q1:R/lC#V?tB'4V4|%SYXN EkHOUF&JX:?rBXCa,ul54_ΔL1tGm6HU?3+g^P/[CLRs0t,SObc?6dGdU`cZT{>?G]4FÅVKh]s;Kl4K Ek/CնmK2[b\-oC6jtֵ]=7h5m s/O,aCKY0(RoS3sh(xv9D#gw5,pycK:yyRU}7'7N[6)ww$x}+-@ vG Y]@{g@4,-@yBdӦ#TkhO6C O7*j 8rRh7ȅBϸұFlv΀7V^dAӀFwlYL0v_ ޿4tuR79pwUqWxغM'z;vCwO4y?Ko.nG7.w0M{\ǂt%R6(yW cWyc98v%rɸ'y[jB C-Nlc` BcKFftNﰺ{قc#z{{K$ Bnok=6Sgcn31""&R3ado~2zw^RKΎs p~:%; xl'??5p dR X5WKhT \#h6Zd ;* $ 3@:kOR'?#/AFƑIBǩΥ1PRQ5RV2uQ3EtHvYl83v:s3=/`  L:ib3Zm% 3rVqOT鴷9\03>MW(ao-"Mp!Q@3G44B%J/@7ЌHWbLB1gg84ME7NJրRcVuvցqx烁V8x(fZm#Z3,;tۣӎXfsNwjԦA]_mz䶒rJMơ;Rz:b\2\U Zc b@?N9]'Rh&|⧇1O]q拞zJZեI{U@&_= &!oƐv-o]Q( z%h/1T'|og<7)UE8r!8 9st+V /Td' lkz'%%xB9 u(Þw(8'T 56P|[9e,bW]\ĩj`%J/jYEZ/Vy.FpͣD2i٭&Frլ {ԩG)E(1Lxu($qsK8 lV$17<^ovcR'~a;5p ~ީ[c+EMA$&XU}0#LPum5gZoqdhvoQCbVJ@-=K"v d@7͞MsPeXt/U^ e9=5I\2 \f|-v̅k2kz|D+(x֟c}ɒ2x~ĪǶ.qs[B!.mI[w%="̬ž qy| ]#مy^~ǷvuɕiEMW ؎\<,psvro[`LCm$|u~J5WÙn#[&_@frw[/,9sk7V!u_u3gZΎǬ LZ*8VX$ܭ^赳]!9䛓CGy'LD}nzA03MJZfOa~ ŚzVtV , ~I|! y[o|gegC@o~C2V0D$j*xg*e9˞) Zp)뀒@{pK-3I** ' |@۫z#,ށ6>15˵[?  @&2XA?#PAqArB'@(@-t Z0PCIC*57ts2CA@Ƌ) C1,ݣ?;0*>@* ,CADB[9A!TA堑B?5<DN-OK Q49qE ss KDDCM3E:=ԌZp}*A?۠lk p'$<0TDj|D3xDJEcE@G|AXL4 $68E\µX/WB~<ǷAtGu<ƀ<F-G.zLG Z>~-AgrCPF?$F1q,1[,ƌB-_Jz \Gd<;[3ET 8(H;/>S.? T Q@SGFrkz20c0}сːB7ENE/S JLȘ++uR(O@ >Im5ȩSK-S:SNxN8'b#cRh@;< ==Kr B? >GϤ*k{T%T mm- MgEhUh{Pk}E։{ Ol,U @II&%D8UGi,RDCZ8~ 0){BlYA-Kٙ}YYY!5)T}J1]S#I`#lj_ XsuY*VSG{z=Y)Yڤ[˱kQڿ8mھ5YQÕ]KmKøĘڛ* =ɤ}ِ]̗X] \dx9+m\m]-ZRܝF5O˻+"S׭!"1W,T#1{KeC]ӭs_Y3]uE%⍚>߾ ^ %Uxmq륝pxCQ]=X$9d;2K(?+G+!߾E`5N^_`VxZn[:6jZDrk, mEWx ]a 1q#?>da"a0;u =^&`1b:~6܍Oз["b~|OI'@(k|["{DVV;N!f^Bc>c]AEb]Âlwm_;v) C0c{$3Fc gC`e]m奭e 3CTQbʮd^`&B]'L"I1rފ#I;h>uFO"RDsQ:!tDwe(i&*gHe fb-HfY mz3>qHH E@DdI/8i+Q1!H-"4@m{ނhj_F$m㪾Yx,hɾ,"u!3( gNm^JWrk)k # i\ޱVh5E{U&CGpo-lV7Sj C̶}edJ얖X ^`C$!0 kf2ef~.t'úëkix 7ki~p. ?o2,aС3Tq=^B:&XzD_~0֞ApM[nVMZo4r0s$k aBhDpOAVtVsب688ﰩ:iBdpsHw(>@$%~B7CDЎ<~RM(z{JL,xqvht3 B؂lFkφusnW e osoڮ)vW_CajG7et/N:vmiP lvnR/u*y@GA^!pN*QwMvh[4ߟyz %HfǴxKvN*e&7쥣#Wj_!QG޽x^~߿e{V^_șvuy{&1{|kI~5K'۶@v.n7ֆ.D8zUwY@\c8᪗בߙ7Y}%w{yy|Ȯ;q zy/湢?ߙ[6ڨGg|7i[c$`'x'c{xۂWLh<)[q??g!>Zg%02i:jZj5yT`>n'4\Bא)ѶP`hi{n^NMI_J]WZSXK_L 44}"((kMMƷEMN ؙBftZVʏ^*ﳚl#esbA[V8 .RlaLadq"Z*ZLBpAr夛rPRp(+ޒqaNJ|Rr!N(ŴrN@ JH'" ~<*W^:@WGjiƲmۓCK T!hk4DZʘ@}ձ԰n#K .`5IUa[W`tUK콥7|MW,%WXu5vnN2Jz'ϚH}g.,\6F3Ygn(.ʑ3ݚ^w_uP;j &8zH b6]i,Ry]gMQ(_dP,R6a|yOAa-WφY8.aGuFőVǠcEr݅Qdq)q"9Bz#hM""SNX]y)Fx4םQ]xOV]JCqP&ŗQiIU dUV_;5h1#J6ރ9M|D H-VJkL UR8b)wK:,QJȯ}z*q%g:R y9ޝQJ>X}^q}I I٫Z믖h*X鋗:iRM71X 6gɎ*%.Lq?-\ C:lN(k66!"H/KңDh]Q"oTy ]ᚩ{cqi,j_Q4Ng_|fs3Rj/<#=wiQ/uWfg4ޏw+nO*x1ضԏ-PN\'u`Cocӛ x2i6jzܞoEw{7r;vxS~ۣ;ڇP. `R{!}Oat?> lWIV ?qKeS11$yX%E , jud2 f_ 1jU|4RA%oglFB$nOU(,B1>|زNH33زB|j4hM){ D!;ί Cr.F%!H׳ TC(RՄ!° CDhAtH֑ŘX+)l'pAd˒5׳1..~v 7R{5O1{9G[L Hҽ:}``M觓Y;yqu3SXrI^5eq"}&1Þ@w ԔĒ0CQCU+DaԆ;jJkD.9b=}@*SXiL鴝5՜>2e15S=Yp L~ qSEuPj ք`\ QHS[qTYyJIޡ _b@*A(:0)J: +c$rSn QDP}4 UhT7niJ;VV ʉSi;Ov3jsU'Ǩ9C-mk[zʞ+\>]}R('\K. ]kO7 -Jʸh"GRz b+x!"Hv=׈pD_u#hƶ&woR!pႶ.ȝpo9`E"92+qnץCW(th)u%+_~4%zfӂ83OE<^|n%D-&n/{j++*YՁTl a )LjO*M"H^$&sI&EdLa,ff&|t͠0f6ܝՆḡϩsɸlHބy&F3OxTZ-!ȼv׊$s@?mS_9s݀KKŷ`LW: k޸tjUϙ݃ժejeFUluY3q!um]gZa.#HTjMGOpz8:KD7K$botk)7z퓧xڕ:eę[k{\Ig*_ta wSlr?4ץ6`89w~ErЦ(: Urudr"%R_dSG<*cTD*#UPP)vq/}uv7[&`a[6q8![KSǘ%ˉu*w lv#`l 0ȖJLZ\6!B9Bƀ ȘÑO2<ʓ0|8$]ҫզ$ǻz=ᷢLJ0B+7+;"{$rLȂ#bٌ׮M Ā5cT4;X}BZ& nʞ_M}6B@|@j]UA.0Z{fv \7xcOL:R#]X\UPݟ 5,"gM9_,}V0h?*TMG]eZ8Dc;h ag;i-t%]GLD`!ԲLT ~Ă"gLӭ-Ο}6wo;nRkT}z'D Q| 攚\"G. qs=8 ݝohrθ!}[~Զz})Ѻ8Ɲؑ C/$N! α9e&)o At~>뀮݊^~١^0q 9^1N^nW6!(>Vwj$ǦL :3+]ۗ Fh87ϲ͓8Ex@)ZԸ'M]hn ^~~{N1НQOq}g-6?eξ;@]N9 Jԓ۟?~NʻL?m ycRIV+ΦPSjyӑR*`"To~kek^2ҩX[ X4cya*z)h;h\ R`eTqx d@kVV ':;.DJEBRLED:@% t(7#a!úl,^fҌ@;(̢Ftyq7 Cډ%1#GS7qS\=# 1UGc7n%W1|통xʉFyNˆl*D-ww @/=cV(zn%ˀ%WP2vnK/MTI̒FX3pm'  s\d1hR4=ao3.ޗ#^FQ:t&ºD\qY05t0HC6} 3Fh 'c,62]$0YNz dT-MyjKflmLi| c-,ӌC)N9r. 5F  H$c"+#.»l< A6@CbB Ҩ w gJ +(7$Z <Ahu:!y1 D,DG*R 1A*Dq2 ?K4?rF2< yO6R1 dH h:}LK3D}[K=5RsRx'C܄A$!Q8(% fYE+Ѥý<qDNJfLz2a*CS"wt J*pJLS74cڔ D&(WVRP2H"o L0aAj3 G/#!)V t_(uieGc"~V`N:t$.X%v#ϴq FԢAg74Qb8S5# l!aEz~'Nf3JQI ,CQNҊI *3UL1ŲG}7kYk&](ȗJa+j.J2ĤYЫBV*KUTeX;IR?1j#}>G_[ i]b2-lddfAJN%1 c=#^zLޖelY6s-OE Ɗ6>EI (,y͋Ihw)>+^JZ_ݯ*T^lni["ηl"]ɫ^|`x)0@Pi%/ձ]fxݘ[Y^XPE~,{*Ag4 ƀhM0N&K vQX()td5)oV7ֹSƣek;ƳZ=nOaRv'T㖥ۚJYt {.CΫT:H|kZ{{Ȟy8~jHGST`[s;c1|yC4A/-@" Tgr`s1K79;x~Vo` <]vdЗ>w슯`nN`@Cpqv/քMX*ZB)(N#*fn+28<)} k^ d8{/Ib#)L^mBh͇er!Cgx2Ԧ]02:ivaf|P+hѺNm |/ꠀL@P/& $JbA 6Ȅ/Q@DT y.YcpݐOYr<cIq0@, N&KjEaO pt񖌎ՊK-"FTF4nq>Qq LH<k  qIW6JqB-Jdq/!Q 1(- H(A/mbP =py 1 R& 1 t2ZFuʠ/+X(r#@^@,q(2U/&"Q5(;r5&R&BR$"G 2uGN.(r#&,2!?m #. 7F%"no-f +[-p:55 ;: Dz:-l#XQ.{+1"+o:'8SS#/*ZS55 -"e:pSx1#\Rh5@;`3q3-=f4@/ &rl :\p>s-2qʞ2T`6bHZ5m|A=ւG0R:!>5Î)ӡ!͍stD2S²bAH4Ih:+'VCc%@t6nTxD332 E>+S(<'As̴&&"TBR,T0p 1;R;Nc2MEdEw/dtF qOqrԒNR pNAaHTIiVóMuM;INU@=wUSR>I)SɴL33O 4hYB2O?B͇n ~2 JDNXdXHDH(q2 Uk9zizVw`Z W:k}@y+QC͌3w?~ZۡETW/Lyׯ 3ԌFz5N!B{L1^hRi!՚|bzV%G{e_bwٶ-s + 5^[7iE40z*M:[ `h?[5ӬÑhq{#[;}9U;ɨW@ (4|9<Pgؿ Ձ R[{C|40|T(϶wu{|4NMt b=a7 0ڞa\:W:Nɝǧl^ܹ%#<Y i9CkaW:' @9O:x:7/+Ĝ@pđ%=ifE:ty+yHw4}[2嘆q/ü!'|Q=azӗNٽ=-sw9bMKGuqi~ c=\Z}&y}7}uB?puݛ7^_0_}ӻ 1;~Ay >mR<5me@'^YM]{F{Ki}f^b>+9GA>~BHO^i^ bs]:s^JQϷQد^ ޼]uN`C>`M{*v!S{U9_eykYt\T̉oaջn z8gcRѲ靟ݴ2Te?|}彧EmG:Bh\!ƢYB#⨚\Um5^+Rl>/a4~+}_ B9u "&26-:F.9 I6BbtzmQ5EitAԎzy~zU="#%Z>mqAqY%SICɍ2n? &w݂u˷Y{;SEף~Kjf\XPagS)4(H4dOF]jҎ()ct0~Dθf=vr.Mb.]))-!m#*}KUtD[-)ESb{Ń)Ǻv$״iI%&Fn1c}r§Lߌz7Ud7)4( 9u/" 6ͤmʷ=0mA>cJ:&ΟwuJ50cbrfȭUcd%Y$;3-m=`.LKMMn 7Bt/7rX7#aDTJ (ȆgGgYo& "7x 4PxVDB3o9:V Vg5[F(.֩s$v>_dpAAIhh0YU* ?vI_ქw2 DPb>hfg悩^ਜ਼p2[&s c~hrCgcb8C߱{nLA& HbdIm2ȾC싕fկlՁ;&)fž{6>LHhݮ# _)I@ZÆIF)r;`"ˌdˍy ĈKr#X$uQ% +5'nKb)u}UN[w~47<=D OxDIƙ ڔbظÑj{mBң Ix]U!jIdMӴJ^oZ u"\3kk( ɮ{9S@>h W;MTЂEɀw nJ о#¥fHAEA,.$ 2@IZalUHH$I"2Zm7/<т@.BcBX؈O'jDEꡍ]{D 1PhbDt+) ۘ A? ,y qJMuJ;Ay@ zk9G#ddgKrvpDӠ2$qE34kĘ)O{ӟK=CN}gZ4~s@xg[R" IFyMX>|!7Q7_ JSJԕT彩\Y.f8 SH)?y1C8I1$]dzl0âYm6x_ FՈUo@.r e]Wz̓t5J:IقocW_U6bJ2߹4 14KwBfi^ZE%Wtd:#ꣲi >'牏t:M^B8p'^hwd`fCE|ٚ]Wڕ$9ulC1>]`i[Ҩ4-T'^K/fjy*2^a5grg8w} vTy \[yeV?hl8.i4Bz9n"Nt E.Τi͖>FB.bQbHR!$L4h=Ad$NfzHF1ad}XӹH~\݁JJRERz ObPd`ݣR6So]J_iUGz%H>]qb]Z#gdASBNΦX%-Qc^fh:Ԧ`Nh>hR[<*g]d2"Knf" )fvnZ`A8oFi`ulVd]"f>'RfY%v$f{Npڎgˁ0Q5G6s.^(gNOl}gxZPlfă~ƾ{_8hL w":K_ q()LJ('&p W^t$u$vgjyP|:`y!(<(JP(Q(螝> \X)hYChkD .]6)fJ1(*IFblreEofNB@꥘x(|hjZ-jb0ƧpyHIJjFܩ.huB'f&%dF٧v'MVhv+8ڥ:צ"+zꇐu:^ ^ZYAF Dg*QF IġF*lP*_ ᫱~kU"W.&h+I$1d!حҧX⟬")Ԑ9+_(mJʧ E֟7,2l"z,CĆik0*Zk@~VZ&trզpJp]<_= \{٫3X@_`D fCmj ڢ"1#@mnnvF~_/XeȎVKh}ۚ[&Hdn*oK:v%mfA^,^nl 8nL̨C ^,\>-om2KANdk&B voњ5%n&XgT , Rn v"M/j:0rb*}W7_ q^u%0/oM/"԰ 3CG0jDضi.p.AC.b0))[üPoNqޯz. 1m^pLMޱFױnprW/#('j%pe#inT2 nӾ/~fz(Vp(cCn$laI.bP(r.CAz/#kKq"(G3_2_nG6+O@r2)q8'˼@-/i F315K21k[/SG2DZ03p-2'Ѫn #t0W5GH1ӝlCmmfN4E˱C"3<]CO #X<.sg?/Ori(2tC{Mi*5Ӓ-/56'(f~tQ\uet_zt, $-L{ W4WOV5@I_wjB23H!x=@.ʎWj*H0NA6[ݺ 5:"(!a3b{E2QRo2.S],PQ[.#acJYc7ke.X{sRArVgF- kQTܒc mض1Ovrkm w{ES\קCG7K(vn'k3x#x*yz5{o-$tO I[:vaZuI8=5bSS`CI+8_ V߅cvENl*ttXi6 vpH2j2NL/m| +PחCqkI3,-u\GsGwÕ_TkRp\@>- B/ڵ Z?~9y9wHVh+ ̺y{8'ox+40wzb@'iz٢:hO{:@S庮Uj!ccw~u78CXz/vVA\7USxeLAs++ vK3);Cg9ksxzx;7w;3:zd.C3 NO<;#= +!G-#qKB{}|p5i3 5D#4V0P-=|aa9¦\azoiZOVB>bTZfhQq'3/ d{r"d(tB"9肼&zQG"̔ CL=dp FC8vo4܋ eߤ$ P< 0!JAdM1g ք|pR@3Kmza' t?4;/&T @A1m !C؛ݑ!Tt s=0V[b =d4kA$/0I  ɍ"x:©*,^ rPfX`2byCJ^AEأA> B2!)'KN5TF}y`{"l 2&(H$BHD=D9'bh)%) sUF<zZц=:i,H.!m,f]DjQa+ tFD-wg8GG37{/NgLE/hȋzHq ;D2eˮ̝ȐBՆ0S!_c[튺bx^R)ujT,(SP<![ΠۗZGA6:QOtJB?`s Yժ+=#z8AV;R]*C(?&-K]J[Ma2 c4 cG~$71PqK4 [O5Rݝj)?&`e+ʐJN:$ ZiPJ2. D{a#ʽ+Awc+Ux}1`LAK/rbT*bNqqHbRXkJ'8 4@@e.2>ifJ(y]a@g.݄a99%MqkS L\ T.aG!݄ ?]!PMmDrC5Ќurf78HxU*y9W`f"U:~6 4S5j@ j Ap23Y.0f.!p hIzhE܃u=,dJ贷 [-Sn{S߹|'oKi%'8'wL3xE23lg4yaRgb] . ]sgt臤1M`'ڵ1;y!P.~uUW wjq)z53v/`:(I!0?-J?)x*$qk9/ic5!1#=PICʸ՛갽N@x=T1@ݱB-33@!DÝPw–/^+öA6J:' 2X+Y+o+iW\>Խp<9E'@q๞3),' 4t[6&Ă9:@h#)`Ӷ]l]쿷q9R .Qc<=CD 5X kBk;O֢ DbTIJU܈ 1: 9 3:D`@#g+XFl{7h Z8t:Kã4s,Sƻ $;Nbd$xɹ$|{D~tI1>%1ȃ>3XS+YÂHș\/PE!J7<7<@#Q@j#<=0K<^>@.D%j$5Do495.P`xk/5B|g: р}ЦĂ*UQ6L?2Z6#GQ"%543hR41S+Ϊ[eE}"~Ѕqν"T1en ̂P[T45 *L0DTbՂ>THZK0ϚY 3.O>a]6IPJuUeU My U -EUHTeU B+`a!)V,f]SQ\c]O҂\ViP+L W㘐s%-JXiw׆W]uZa=~uw X [5=)mXt8A%9xJV$jM*g Rj֖7K@ ]`UWPtt|{W2yᑝCS9Œ-x FUs[ ]mZȌ'1mVPL}rOmT5"}-[{\+S` zЪDȕ>!l B%L96I]Z5mUwt]B޵`98\UTϼط[]HB]186eȟ]$S]Z=}cɻ}LߔZYuuSzuz^ f2A L-]2_Ńe-X l-RáY>: s|`KP% RaœZ`J0;Y2M^~k- K,b*>`5֠ P84A p"AIb?/|60<Ȣ6`,˓!ۚ.V I2Ʒ 6Y5db&]<Ʌ`\̶$nqD*^vDv$>\9ڪ5QJ.Kvc^P\bR.ekË,PιVvd23ݙeCR]N^nQd?>gyc=]ؒK6^1NIaeN[tsT#Q/n=?:Bd/zgKeU!$D.-9fG2>h>e쮇6=ͩi<ʿ+5>jSH%VZceB5`YiEX kMhiiP;%I>!}`k>eVH1!9֩)5Bެ6!V}k^Λus֩hFjԦPfؒת|f-0m˲,|jiaDfٶ jLLTIF/8)(H˾Yh1H1Op@C Pv>޹mSiib^vŐ^oc6Ko/` 0JMn+^޾RDmjn"&EFVljU<f*?ASe`)3C΀ k7:GU9qXMn#rGk4 WO g\ &'4DQ++7qZ|hNnf\q,>A\>\I" ό7?go8^dt5r2+Zr?rN]7 "'0(S9s4b6G:O_C ;)H'vuCm䁨, gV`߶(vcV>l~ghj!j)K.x__CBے9rkF7d&ƅi ]JE4P/_CVOȡڃcQ^ꐯ^&sN/>\G S{ ܚ"OүWn^~u<;F5jؘgrq5qztfͺ +o_L}TڏP]|O3s޳G>Q nL/>jhVQix1!FWTٿ#FnnGmO. qRͶ.LtEG] %a{|_!~jQAeѧvIԶ  !L;̎@G*ʮ:Ǣy} l6qv#(5xV$x$ivyب`e5y @D4QWz:{ڧVP&)(, ,}TaT%ƇVTd~D^Ң2>WV*h 21Tb!fWavbi#S$ O ǰ#JedcuyZI0̙dSƛAf&#BބmLUQ/ QrQS7b1"8@MSy{=rxbr杻tͼgQ\[(`!d!a ʵH#n31(L@<1Vه_v`x M_aSuA SOpt\Uj%GP5lkp ܉qE}'A2Ta75tTxI!=yqP&a܋S^& %$]95 9ŗkA=i%TVrBC XE5 0`hlj+\xDaDMuHc2MaMdeu٢t;Zx!cg>qQCj)]\;$'8Fm^ُ\GnR|nɢl"_39We:-E Ŏ3ꭓ9 Txᒛ$DDHដ"FUqx ~ +&S2Ζ8 *> ,:E/A2p4riJPxfP"G4l$^4aǽ Ue8|jgl35c 9n^hM03@Ļd $V^NͅpH]*k6O;2h=t8l@G^-և2W6cD^#+6Im}j7!)؁AˣKjS$-8op.04=bp4·%h.TD>'0p}CgEy4S"C4r`r4U{2S S ruJwBFJ2CV!@.|!MpL  I [sO+$T&EK(?$LeC|hf3x ž'  _>gģ OfNp,3 Q("$C 93[TI=~ KGHRf,{R'aHBl(r4%-ۤQ" '*#lQ٧ak, K0\_H99Kpb9 Y&NÙqR1 0:ΗP-DŽf24J~F()I) %t]id u( M8,$mok GVl*)V?&7`)KQ?Ы i/~ݡ\)K ߈rXoؔJ93o(iOSDT:έ pjΈgEk-5UJv|g}vP.T¹+a/X* [yUi7eZe級< nV --7+q$7[# V]/ExR Ncs}dܰv#r7?4 #wkY􂗑?̋d%8e(!0d'IʣZPj`mAmsi~i eetҎ`ǰ3i~4F7 Y~PC44^lW7o$ymH Cm=b; Է.wG5޺ Z%)uĴ5MA2 8$8t#K2۪S..(C'm5wZ$s\ǍvZ:AMPT(h1yEhAtd{+' SB'cMޤ;bn>6N#,;NؐRZ~^VooJ?7ˀDz@{qz$P 3Py(b?ײ2sgQy@K-Wo-%guy+8ISfTa4nڇ)swnld2Bf`D^!8Wde,||uGtg%5 ؂v2;ȃ=DžNe0>"1;O8R4L>|w7x(Me``93i)JRfX>V7u82 h)Sw$EEzGE[IEN^"@@ "Fx;Ua@ EAcTVB;a(`A Sjf7NR%(|2fxaV"苣n'62X(yvX{9ˡ2>qPGX`>'4⍜la7@x48Iķ|"|z19v( c@)LH( c (*yH 3הwq(Ve(~p䃎x āX % sɐuƏŀ者"1PpIzX QYrɐ`ؑG. @fw΢|d("i7D@Y&N7}b~MU) xl1vRCJw(5xVfhYud)Z9E e%Gn\a(7wY0asITnQ !X)%@5%#aQIng2$Eb41aWtJ3Sy~ w()}) ʙ r}٢VA #&C9'_h'3c1sW1x#ISsa ([XZAWyU鑋)#H* qd'9GH#Nڂ wGCʒz !*wh"b }{}x:V>I߇G$TS>W~O0sGZz!q@FaʗG1eƈPVZ86QsJʔ*0!=T;d(xjC @֡,'2cJ qk\Gi_BaG*ь7{uE7V{Ij mJX~P}t:A fpR f3'5`~%8~j敮<""[iH.imS!VqȲk}@5ৡ{ĢS `#LJ;AunXp Bt6za A'B0ochȷ[&,v  P7QislO15v"D۴G ɠBڴK1.eW-51ɳhȭeVTމl8+T' ;Vd,uWrW;x 55DIͫ{;[0LڳK<뽌"8Z+zy{%g{w LXA \Kp/A]u#:LPfLcR*1&L-;B GBu%fhlgKd7ܝly|`3"w95 T%dm#Fj8Zązk6n4Őf5ti0;;ټtwPt_إD$*s2:O2er<ǎ vl;x̹g;UKȠ ȝ'Ȗ&*7Sd>жTY!l||Ćx[bh,N•STõ#Du',Loj;h\Ka2=lRkiЬvV{#t_c1& |{5 _T,X 8,:gl>LٰL zY$56Yt IMLK{Z{1#kLkG@34<'I{<=A32c xѡs'}3+43Mc [L%mʆ~@`4Gh>NSh Lc <]4X$&>B]-y]" `l30n%^@XN,WBܔFl}шP kG}qM~E"}s1b==TRIu z}+dRxHk;A+hȇ8_A-4k\竆IM38N1<9Ήr, vu ̆MnpÖ*.W=ށk:0osymK1Z갖qG qWyR.rJ|kzPR XPOvx"9OTٮv@lNP~J!zv*(*8<[f0еxX~WZ ?& Q調G_쌺LXP̑W+#8)utU]>Y)RW!]0鍽|֡MP}=XOnIu^]GVߴ/k:2u,Hw: Rlt0Bz/Ci` un-v`B1ӮOҹn`O= YT죏ZuD z#dWl @0ABT.NU;E]XAE0XRmdju}EP//)/ɌihFJ2ϲk%,H Ȳc4Uuut̨l &5L9r69);[{UK{Rd=+t[\ULvvwWȈ̓w o8tV`>k$l# <R±+l3HxQPC24>*El"SgbLt6ݶgcE,,S[*Y-kWr.tiՃ h3I全yW.ٜHQ_ztd HR+$r`عk{;LrC5#k#Gn+, f*ݨ *O VƳrq(kpdA ƶC;aPAoToB9û=APH$jlnMmCLF?K.uϠfrΙRPGo&}%-|e:1CGѱ7ۈ\Fuј'Cd7Ym1E$uT<>j<-q 0FKPSK$)2($]DX`4x=ZWTJZ.uF>mNZ.j]HYIu}\Nݰ%F٥rMmp0%Wi|}#Ax%6b7-$[7r& TzVqe>IlTߙ}FνU>n&_)#i9ȟ[D`cFWf!Dbav?#ZW$:֘cDr&췹5J2mZZkgAJE:wkp7<@-DPz"*_ gfRtM?;+{DhWS!~,l-Bג6X/dt2R\*rD3zu7 UHn;0a域S ߟ~3=sZжgn{Yq PC~] K[0 E*b19DNuԁ(D;B snAI_bQ '<òP! Ʌ/dE ·YP\,C~\U Cik۰aYQH#QB2P'2Y@! C59FlSLsT_"*<I3NҌ#[WHeqbHyd|EɚY2jb#Gy1!n. I_W G VȀ&ah#2Dh@qr?QSZOY ^4#of\X,a3Ktizb8ǽF SW`Bo梙TWRVdj\r‘Hbyb#+'P#iUZ1NX*`^WbQSA02-2:2S6p@X5[ׇx ]W֬͞(PjYZ׾`Y T5cZx{6 QB GQ'2p& =-g͔  IϸJ.Wu\:mboUj?m2[%]~J^؃{]U VL^>P-ЇoUc u/Oo_f)wN cJQ 4ݩ|W9q&+fNɲe`1Gϗ ͋]ڈxMZ ~MV!%!-ܲfE<Ӭй peKYM(:f,XLz;a@Nݞ,HQb262O1z4ΰ6)jWŐ#]gS5f="($Lo]ۖӓVڴ#!C{f_9v7m6?XKZ;ݎ0k n¯JT"5cWd61d4M B24FK !ۢoVY^c|K&k"^QN, K@)sF yd |qo7`^}5@,2D}77NkUr9Ug~o7.U\IX׻tyG oxى<C_ƫܖJ/wZYm~jtc  wX X.D1ʦ0ԓhK o`abl/` Z".S/+OڌkK1qDa RO,>*bIB8o umO;hp6 PpoF,QARdrB`0/ 󡨘 5ġ"w/\@cp-"Qqa *hHp^d0 q&DESad񧒄J AE<8]D"0* a[")d nhsBw>OLkc6rS(xrPfR'q&+EE,1@a@ҿJRvO(F(b&*s2)=/Y0sE h&5OF6!ǐ6%!A2y23i *9s1"`..q F!/$5'(6aHcBph"d(y=/š 6 :!'B8Y ܲ3= rM@P,: ;Fa;5G;%,ݓ7gET$12*XT$F=3fj/юN'@9v-6r0r4/Y0A Sf/E/N΢0;B f8H>\, A]E]`49T@cB)”QVG'E9RJJDO;K$qv0TX`D Pt4ںL7MFmJ#cOyG3#+ -*A )X8f/!R}f5)rWe) OiCW1fWUX D|.TB/U0MasCJT4CH5XkUQ904!WU \ ] ^Q_@; iCSZu+5]?6BUT-+X,M5Qu0-U5.bUBCXoXdlYW5'=uzNXm sePyY5ZLGcvA%m[%[CU Gh"%VHd`5esdmhc^UZk$NBu=1X'kcUjb&QPI<b9%tXErb+wi^ BvL2j/ wUt1 tme{v^cmVm5sTD)"W`e(`9wv9S،P=#jMBKu&JVB5wst> C:2CQwKE^O\jeu&7Wnwos7;wH6x<81o2JOU<ߵg\Jqu2s%sv V,y !gZw\xߏ-R}׷혒@G~ T~E4A=X‚33ςB72Ph)ȸS?#m0: SG0rm8 R58,{n%2#y(yOu29_04ySc@Q3Zٕ$ux_R+w3 kRKwH"y]Y~قy?yGgYotYyk YWiٚ7Rw|޲w*Wf֎m,Gq٘sŞ7Zpx`qFטy.'ͥ0x&rM&J!_ kGzQi SؙYY1#$W\uf]"nړwzSpó r짛:uYpoطc.٬ﺜd Y/5u`!Bc,4z?ۗ-$v_!fvfl p ;3c_k5MڜI+崱 ¢OqhŹ 7-80{߂z 1)~׺@2i) «;WwNqb-%'ǔ;~Q1Np4s ӛҒK|.uBE:~vzQÉt|?5ڭ'm[DŏW,A\1/K3C\< YA>_&ySg>D'ݾ^$ӧSJ_.Y##F+&2*+xr/5BMet%_C=ӓK@ӚH`VEF&&JL܌'V&eefHӓ W,W+ m01Zp2SQ15ԴQ.`8y8ܹn,o7 =2t83 @e/C!`U R2EM*j)$3)|(6Gͼ0dbe).agjְqhF[E-k,Z Miu-2z;v]qPӊ8'>uhz B"eʕBp *8y&6蠤. m!3q.YubҧwI×gӍλH̯h^rm?/'YDE|r&p-Q$ߝ!<|xfn{E`a"kagְ W+-FaԉRNQڥbLTZWUD\* 1>xR6rf5iQ *'3tPk^X*N<*@Aq kx a0'|IZBP )J0BU!^DŽE,HGi3!K]*y XG<㣈T(ɀ& Kv†4)IWSC&j$dٛC@^-!B*?t_@@q \x,2d`i$ZeO5} m1&9I奌xs[=$s~8 x{dMq>S<pr2Ü5ՐGӐ4"a;/ s31#B3hdUXȎpMsn. .#S*f) sd sٚQ@B>Ϟf=ZMuS轩Hba+XF}u7u0^a*B]yz=DMʭNtcl/y"jDŋP?DkOzpU}r "/wzO *nM^[5߬\WIMRrjL= 'Yöyqңܩ"ᵒsfnn;. VM#Ը u9.Z** 4hhB:AAt.L"%/sk66(h^ƗI(9:ą=LCM"WW`h橮֞Jtm 4]r"VOubG曅͙Nd Vo8O6Erf/f#BI!m' Z~cRPJ$hC脶xҜGT3c6 &J|Iir P`z\֣bdHJJA)Tb>fw0A@d=Z@n&}ڒF`Y<IROjYP\QjCSU6МԙeeTNDbfddCM$]>daaZ"U6_d6c"Q")jbS:% BZbbWU|ʋIzZA"SL,=_@l&fdEf ^ Z6_`hVT>rzAr[j[@&YJd&I kQɔm6 MinSrsfBqjVu,}4b@_hq.(Vh:lhZVheć(@(hUhA_JhZ~芊߇(_րZEgNA@XalbWWh~uBҨv(i;́}虊)ި#B)Jh&d'~04aDTj'Rh2j~b "jꛎ駎* hiZ(:uhZ閮JƣҁIR+t@d%4iIPj_:i*V魦(.~)f~~X⩫B+鐡*ĥ(ʍ6)Nkh~*zj~kF,Jl;*6l~"v Q+v~llfŦÊPЂi)zkт(eFl,QPޫe^=plζR-ƮkZvm.ݚ*Ŋj*-(۲-ꗢ<"+!G2OGE.+<,>Nun--"m!hݎn*ѮߊjȮ$nxr~jA0LĴ&g4UK8.CGo". opY.i5BɫXm>r.k8n>{\m^B3]V[Cfz~J{C'@/TnofId؊m3BBu`>c"B"RDRP<0yyVp(j>03520/"x0d; 9pԯeoMtpGZgVw\pI a5 ;W AAD B/ThpVq,&t B|K(ٖYD15BYt:`ƚ5iTZW+s,NHe\HK:_߄_O 6aPcb:-v 9"`Ȟ<\www7xUC=Z:Q2#6x颮(.h" pЈTuDk78loQy I<-bqcNg$vbr0;7e9X{]FSCDŽ+(ftg çe/OzSt{O( }7{ӌ xo8sOkK_oܼi07ѝ'jxx89@ulB1N0xuySd{uL^9_ A784%ϐ)#'f9Bvz7Uy7ֿٹg X9SYF+^|>sO{K4w8p>Y-U9jz;r{cٻOK;k5͗v00%KyLx+›N74pÎPyX|U\!|>< s/0/49}5>SKx7̃/v)vLSq3= ?6SG:TFL׼(C>' P~ң53=I#?`4눞3o$1t3\GdR4OhT:V+lֺZoY3'0cmJnfS!*&;"FGFCCȌLLA?Aб()ҹP+2/ CʑVW+*a_c)_ŕ*hiPjkk@B!RJ\pD1_GLS&'%D$pA(niАbf 8sDJ>I.Dhr!p @ث^L|]{q0u eDṱJ(y9aLbxnM(Ҧ VY\ o\H}T.#*u2Y9$z]Đ[Z[rHO,Ftr^(W!uaג\.\M. D?sEL/8mx3;QM F)j0'b8JGS$0[vhЮgokݶC}6}'@^U{"0Uk/qk+^X*t; C,t/ÑLSs:hoEEPqb =j0Ŷ\ F8䔋-&A9 <*=D "3 SA=<$/s FsF\z %!9@Qϣ/Q5ܠK0#Ǡ@q/ D;%M.P#\l`-I_ ?}pCA\G@;*Q5*Bհ%eyC :n8;QSvDj{s[%36t'yMo:7h _)叿 qXq }`Cvik0 lzyRs'V-KdT/TSIn%ԏ9SmidU0<`D ٸyQX)~;^Cǚ;ʹa!94$<‚X#ئH!էR=h۬bno\W 36_^;Z];m aV8fh/@F->A=a'4W} 0nbI "R%ΩG0-#P${'GsoDړP粒h hqt}% ɼe EGguɧqƞe~ p/z4_ ? ޢ%!oss ƻn r#00m &lV5arP^l`>.X1Gjh UHa&6ѬH5L uX)<(LSbզ+;hSp0l4M_kaFBF2z&ǤB!F>9Gy&@<j̆}j;8 LB;FAi+!rl`5b. NjF/6b$Q:8r\dV @r %Sp36<즮:yfiW`-,1ЗˑTZ!s'e0jS"i@(9sMZSzb"45 b.!404$Pp5t8&ʡpe$MD|3$9s Ą*p&G?ՎnT,"ms:.N ^rP&LuX˱0pW`ǘlζQF+P &а?CHq E]I AkO̟!{W TӭLaa*B[ekʕ!59RV1S,ρU4}$vHܨ^r\!H96BTE(4A֧+*ru,4>[.4um}k\Z׻u}YwIIO>Au)3FjcӊNYYmp,͝TRF yM ~R b%L&3@d5R>6r͠3{g9Ys-h?LPܫE$QnLU4A퐉B 5Ģ3Bv3='t{C'}t']Ku#/B3_Y%4PM3 `8΄7 CwX>N3Q<9!A-.IasQGx-5'g[\8lT'B-.`W3["8Zr귊v\#BFgO "(zt'_6!CR/;. 2WWYW^>̏ e'T/?NPcȨ,˽S @9@@ꈩ1(<˻<_ʼۼ>A8PÂ%0ڙȀo-Q"Q ħc> B!|>cK6c6;X6 ,1B;b1KA/4;t;I\8j9+T(*0X8<;9. fᯙ1r#1(ttr5X;CJB1'JCX1 x\ ,'8Ea'cFS"L$1FiØn,kӄL`iMǖi$ȁȂD*JSz$,zya)!LbDdLFwDQaFR'l.) H*}r_+:$G%Ѕ4Ca$&Kk@;w2[8 Ib PKP%H| J|JȨH>)_Mp-J=|pK4Wl 8IHIXI >Df0Lڨ~څճ>RޣL}3 @@]dc)3l 9@J٢rxau{~'Mf 0^7h b@(썽KN-BM:$\LTh|Ζ|Lȴ;94?8iώ28w@w1 P P =IQMlG!tJ=d-մ|9VPPmQЄK{s O11傏‘{'.iQ tuL΀.L b,)Jd4'W(kDNA01S<ӂx $DPT0\`ά(yt>S=}THO K<+2Űe`6݂˴'3U÷ z9LDuFTU(Uj *]d7;KE!;Qxi`hgUhhQAJ1òH-WsP1͘(8{ sp.D[TW8W}WTE"%H3S5Cj,:$T2}؏|@Meu+4AqEôW :R3[ $);؎MOzfhxiYi` %8kVe⍛WZv( jq՛,L=ZU[@ 2DgYU %@D}X'`Z)̜}XRTi*&!<#]Ȕ%}\;9v֙ m J)"}Y5%Z0Zi@m@p8ͧmϵ[}vDE ?: ? ܍ޭ m=8å[Y!y5&ݾE@TEm n* m9ECT#Y%|13%Ւ0JF݀-]GE]iVVVmVU8îN=&x:啬TF+sEAFK@Td+NgzdedJ{0fl( [e;̲Q 6R^g|y.zKmKwX!DU-. @9HE +v+Ref]Y:hdIh~gW\_ m.-5&` +a<IMwHx;B1Ӏ9F.he*eP>qMT.hJA\P&f급ɸ((a jjd>\鿋Dn,i{k/kB&HʭZn-DZyj̴iґi &j h_kBir1C$N2|%m m>`,kj>R Tl3imR@G&rpk=FCu-xlvƲPxS6k&nN|f9".5b+M(>l~bƴ{N_q~N8npz6]ržp>(q/)D^pjXn0 vca%GW??KYt[r\eJO/teoo{ʠO7qZNE^u4`S?uur/rO`' u;qs=u\?_w}ww dwv7fxghw)jOm("V0tit@uw'vKxf'|oӸx/ރ(xmHx 0،hyC'OW&y6yxuht]zϝ{7qz^`}n{Cgxz jRNc⪧/Uz{mWF|ONv}|%|mw|3{)k(wǧ/|/}GMId(lo}/`E.$e?{t#~;jpUlk憟|@~?IBE|p\ȤR86r4Rجvz Acb:DigN^YpegeHDnd!Ki kB+z|s_"omhYVx3ϗRy׾iņTIhBdc#J!CsP2Ç#Jk |yd)!3މŚ)RPc˗6oNBȳg:@ 'S#o2:җ{XTL|Ejׯ`(8E]cajiz݋kZ8kӧ*^JPlztS$ӌ Һ+ƨS[1aFsc;1cÙmW+_ܰȦmq|?OxeMyNi߮B:?s&q/^8u'v=i /eEڄVHօfv ($hFz9h_ X}0(W,ux@ITU#;*u:F)%z(ViXf\@oHL: ɗ.iK9$!tfo9NCH$JghNi(B]&袌6hz`eLYWjH 騤iMjY3s謠nu칀+FU7.y+:#o|Gt`ێ {0S1[U ~ P(g'܀IUʂ@p02N%W,{Vɪ@;/471eEt^4%gtYcMtGCo']~v'6am=uܕ]Iv$CML+Q˂7^8nP6I r.褗n騧ꬷ.n陸@ O'7G/=WoDXw/yFo觯?/c HLh ;base_dir/777/PCB/PCB2.psp0000755000000000000000000073426613034371306011703 0ustar Paint Shop Pro Image File ~BK..R@~BK8~FLJ~FL>J~FL~FL~BK#~BK~~BK##x'JFIF,,C  !"$"$C~"P   !1A"QRa2q#34Bt$Crs6DSTb5c&UV4 !1QAaq"234Bb# ?G.maCš)q}l0]{ٛpM]ckA{.z߻^Ff lۢz߻^Ff nJ'uofo؛6褢z߻^Ff nJ'uofo؛6褢z߻^Ff nJ'uofo؛6褢z߻^Ff nJ'uofo؛6褢z߻^Ff nJ'uofo؛6褣yOŔmAI)e Hq~،Qt)Ym)*Rd8VU 9J-*۝[#LJx3"8-&w1VW2 zՉ5io>|R[s::Sr[^؍4JG0)!]p5o&F=ȍEa%1 Vu6d@Y9ŠFq.sP&+$v W:n(j1̴QLRv5+m湶o!NE4iDuFKIy:(Y*-rMRu#'ӿLԝqaqkHkHi>)tt Fj-GTa)xȌ$T͢2)6 &U&M+666:xbJ2SՊn2+AR9=Lq]CHZq=fHCMӎZ^JZX^Dw. ,NdBfV`UnJEulO-hrvE?;j8VHHUfBHRӖJ\B+lu`6RV^\ݤ%dI*=QPge)ؐl("(9laZɦJa?eI1Jr\܌6htA9 '&\-:es?)ƨ19NTt$TtQ.AR;c>t.BjүkmqP̜7le~pɉ>Gǻ}3ߋU0|*8 TԶK_L7ۧ){SYK=uNIl9̱{.k"C}*J熙 K1oԌ[v`nIꕜ5"# L:7LĈ6(geDt@X"\'8ʉZ If~n =[FX<:|S?Z7Cd}j.(Uv!+ W a}{ZZBFP:fPMg(.`S S2RYPDfI;;ݶp& M[gsiӿÁ|O֩ɘS1SstΊ'rC|jyeA#>ִUmڙ?Âm:t2+1yt)?(?AsIveAOJ@J.AtAÁ@`ĵMQ2v*Z8C-W#]:_{/$U?HX:q羲yeMh_*Ov=OW? 7 χ9Q{Y|?įeeZ(F<+^8QӸMb(jf eEK."kB9vi0^ L՞K#Տ iptҗTqq% !l#,eNÖtτ\{YAZgD'Κ48ZZB XQ=!!DrǶ5,lbaAYOJAhۈu]_,#XϪ8)6 *)82Ր(Z2@9QWՇ8t*;W3lT/[`%zCU#U#%s>hTgۋR/Ni-0ԧ5n0MtцqM:Fv fҞ":U@]$b}t6~!i}jÎ,%-81$o댛Mk۪փn;F)R%?UUR4zQ?O苑pjU* &4HZYPr`nl/#iZT5ѤA!,Hq5&us9X¸KnBfr͏I 'MQ{?rq&w34V'AyÎ8erߎڬ 8Fe'sTRRP V?DWpBHǞli$+MI2-Jtx^QGZ~X&W@;3G?!2/'dhiHRۜR/*ufNH*PH$ Zk<8Q(h.56omG,s)C$߭'<4U <[u-5'bzM)Y.gJKSUj*Zd!δE3IS;zg7D+i&Ң{$@S\NzE(!me-Z׵ smhs0gNcy懮*<6W%IRCneI ܑx:D>Rd/0wKp-ʝ"-œm aS씶ˈ9Vs_"Bϝ=1+Q& x)N(8= eT. O9%=䖦ƑTYg2оҕc`}F "V }+*APjnZ擆x Ye"Asws'r5)0"Qcaü;iO *UD z giG2 +Fi5;3eXվ1 C Pu<[S-蔕$<6 \pZl5 tgDfnIu%9tUbo"uz6da*֫3HĎN?%-o8uIg)j/'%r7NV[=!i48]|M7硿<TIʋ%d'Hse>@Mq3Ѳ=%;"tmL HG/LtuPtIʻZMA^ԙ4As2Kwחq52|JH*%)P tccyy u56ҥ%um6m0Ӆ\q܇ GL^ EvV #fRQ8" Rb(v$&XnT"w~cx3=5S>7Iy\rPs8}_fHvJ뮩laW#pqwM+b<~yeY\j#BVޢ7sKhN3CUV:˅֐Ҏ $@НS8)tq@)ʢ+HM'9Wx;J[jSr-ҍuJI7)=Nj4m һW :=qUj1jǮ~kqKTDFmrX]2wMi_lvc>{_޳U1(T1Y}u ] ']="φ#HDдcăk~vjZfe:YmI%_đb:Hu26`IfK,JT&D2+lC!_z)G#t7;|sPy. iH P'@\wal7 jd7a"[, 2}-@,&$ 4Un<&iDJd]y_JeCET}ќ1LR}[n!@@#`fmI!2[lP[5a4E1$D7V"٧ U'KqPߙg$K[ , *cFyW ,NMRlmTKSm -HP6èNf\/2H9J/4}ՉvuOY'P]4G%0?H1oGng~o(+TQ2ݻM]c֑^j,j8*M:T HISab,vsjuvVJ31>7.&7J}b5lk|*Q=; >UfA -rBؖ>$z  _[62TJtn6_d/. % }+^:E!R% %!IO|X ..11Sd)xϴ"vUʎH_ĐU64)Ը"؏SD%k^G2Rwl1f+`5ڬ2ǎl˺BA%:$NJI 08+̤ D]:MMkfu*k~< O Ϥvgo<{-SiX2 zW:\릸i [FKm3RDEJTRBl{rR3!tN)HV}+\wSQ8}@.{cH(\0 ҸtVKq8&eIR"KjJCE 6ltdL)l܏%aI5jMGϕJjP)PNX| (}=Ζꗣߦ|QBk_' =n!RcO>V ȳp;}Ә(jĕ`$qHzE/2:zfRAZR XRTa$tًX`:uKQO4 8u%NJEɄ¼J!J.-KBud(X=k5A]_&岙 h]R)uaTiԈtCT% \<ڐ9lZCÈH4DRLtġa@KB1ËRuEk&Ŵ!*9@Q*c.-ipߓv&Uy x 0ҔvfL8J.tI:3r+oH%XJc6TVҠ /G2j!"ƕ++n1.â=߿4v'5'sMҵg 9{; ,]1:\ӞS@q>c D+<<Ȧ2rԲўȋC6V ,j}N*fzkB[PIV_Sߎ>URVKm!  3L *d 6O+k<4Hu+6/'.PXAgFJ4YIۤͨǧyl BʅR lqJROȦ>C")MotiP\N,K[*}jw mjHr2-N;\xb3rsqN'|%-Cn^J\VN#t91V(5Ye:tʗSe(r=uOjyI=Qw$N&9|(R3oěmp4i8Dc\LNꀇyF6 T X%[%LHqe# +)Jz*^Nk 9o{k8߽8; '?p^H޻"! WHJêeJc fC/#dZa+@+9)κ77u׼woq%)wHI^fi*c-T1SP$>:*u_}uofox#{3~^l{!4{{* KA>27] lM[uej{9a\>M׼wV'INdRBVbNM6Xyh2ĤH[U݊uڕKcԞ3bTt)qr}S;ag]{ٛq߻s;{V5VTq :I09O&H`r4-kŭ޺77u׼w u2cJ'C)Bұt$rm3 Bv?Bc*?Q mkouofo>g>GOeEOލ E-°Vrܝq#^Ffn77FT-+ GvW4<5ObY[p)ֲ!-)7uvԷc/8[&ʱ}-^Ffn77㬲9 hbcH7N2DYT*-Jum(,4!診#IaL!.BJlo4@~BK~BK Arrire-plan~BK0. .(ƃƃƅƄƂƃƂƂ祂ƂƃƃƄƃƂƃƂƂƂƂƄƃƅƃƃƃƂƃƂƃƃƃƂƂƇƄƂƂ祂ƂƂƥƥƇ ƥƥƃƥƥƥƥ祂Ɩƥƥ Ƃƥƥ ƂƂƃƗƥƥƈƃƥƂƇƥƃƃƅƄƂƃƂ祂ƃƃƃƄƂƃƄƃƄƃƅƃƃƂƃƃƃƂƃƅƂƂ祂ƄƂƇƂƂƄƅƃƂ炥ƃƄƂƕƂƇƃƅƅƃƂƃƂƄƂƖƂƇƃƈƈƂƂƂƆƂƃƈƄƇƂƂƂƂƂƄƶƄƂƶƂƃƂƃƷƂƶƄƶƄƶƂƂƄƶƄƶƎƎƋƌƂƋƌƙƆƂƆƂƅƅƂƂƖƂƈƈƖƂƂƂƆƂƆƆƆƅƅƂƱƱƃƄƄƃƊƂƂƂƂƊƊƊƃƄƄƃƃƋƂƃƋƲƲƱƃƃƊƱƃƊƂƄƊƂƂƊƬƬƂƈƂƉƂƂƂƥƥƂƂƂƂƂƉƂƉƂƾƾƗƗťƥ¥¥祂å祃å祄ƏƄ烥Ɛƃ焥ƐƐƢƢ祤祤ƅ祤ƅ祤祣祣ƥ硥硥祄祅祄祅祄祅炥烥ƂƂƤƂƣƣƂƢƂƂƃƤƂƤƃƖƃƗƕƖƄƖƂƕ焥煥ƥƥƅƄƏƐƏƐƅƅƄƄ祂疥祕祂痥祖炥祕炥祕ƐƃƐƃƃƃƃƄƍƃƄƃƎƂƎƂƂƂƃƄƍƄƃƎƂƜƃƜƂƛƂƛƜƂƛƃƂƃƂƂƂƞƂƝƂƃƃƂܥ炥ޥ炥ܥܥƷƂƐƷƥƥƂƥƥ炥祂ƥƂƳƳ祂祣祃祢祂祤祂祤ѥưѥƯƂƆƃƆƂƃƂƄƦưƥƯƅƅƃƃƂƄưƂƯƃƂƋƃƂƋƃƈƃƈƃƂƃƂƂƃƃƋƂƂƊƃƊƥ祎ƥ祍ƃ琥ƃƃƊƂ珥ƃƉƥ祎ƥ祍ƃƃƋƂƃƋƄƃƂƊƂƂƊƃƝƃƂƞƄƃƝ     ~BKyy(⢑â䢐âÃÂ㢂ÂÂ㢃ÂÄÃÃÃÃÂÂÃÄÃÂÄÃÄÃÂÅÃÂÄÂÄÃÂÄÂÂÃ㢂ÃÃÂÄÃÃÂ㢂ÃÃÃÂÅÃÄÃÂÄÃÂÃÃÂÅÃÂÄÃÄ㢂㢂Äâ㢂㢂Ãâ㢂ÂÂÄâÃÄÃÄ 㢂ÄâÂÅÄÃÃÂ㢂ÂÂ㢃ÂÄÃÃÃÂÂÃÂÃÃÄÄÃÂÄÃÃÃÃÂÂÃ㢂Ãà ÂÄÃÂ㢂ÃÃÂÅÃÅÂÄÃÃÃÂÃÂ㢂ÄÄ㢂ÄアÃÂÂÂÃÄÅÄÄÃÃÂÃアÂÂÄÄÄÅÄ㢐Ģ墏Ģ ÂÂÂÂÎÂÂÂÂÍÎÎߢߢޢޢܢܢÄÅÅÂâ â ÃÂÄâÄÅÅÄâÂÂÂâÂÄÅÅÄ㢃㢂٢ɢ٢Ȣ ÅÄ ĢѢŢѢ袂ڢ袃٢ŢŢアĢ֢Ţ֢Ţ֢Ƣ֢ÅÅÄÄȢɢǢȢƢǢŢƢĢŢÂÃÂÄâÂÂâÂâââÂÂÂÂÃâÃÂÅÅÂÂÂÂÂÂアアÂ㢊㢊㊢㊢ÂÂÃÆ㢂ÂÂアÂÆÅÅÂÃÃÂÃÅ Åââ㢍 㢍âÃÃÐ ÂÃÐâÄÄÂÄÅÂÂÅâÂÃâÅ Åââ âÂÅÂÅÂÂÃâÂÃÂÃâÂÂÂâÂÂÅâÂÄÅÂÃââÃâââŢƢ¢¢㢂Ģ㢃â㢄ÅモÄÂÃㄢÅÅɢʢ㢨㢩㨢㩢㢦㢧ɢʢÂÂ㢄㢪㢃㢪ア㢬㢬㢬ʢ㢬ɢâ㫢㫢ʢɢÂ㢄㢅㢄㢅㢅㢅アㄢÂÃÂàÂßàÂÃßÂÃÂɢÂÃàɢÂàÃÃÃ㢂ˢÃ㢂ʢâ㢂âÂÂÄÄÂÃʢˢÄââÅÄÏÐÏ Ð ÅÅÄÄÍÍÂÂÌÃÌӢӢÃâÃÃÄÉÄÃÉââÂÂÂÃÄÉÄÃÉア㍢㍢ÛÛÜÛÂÂÂÞÂÝÂâââÂÂÂâÃÎÃÎ㢍Å㢍Å㢌ÃÎ㢌ÂÎ㢌㢌ÃÎԢÄÃÎԢÅ  ÄÂÅà ÄÅÂÃÂÂÃÂÃÂÄÄÄÅÅ㊢㢐㊢㢏ÃÃ㢏ÂÄ㢎㢉㍢ア㢉㌢ÃÂÆÃÂÅÃÃÂÃÃÂÃÂÃÃÂÃÃÆÃÂÃÅ㢃㢄㢃㢃ㄢÃÃÆアアモÃÅ㢃㢂㢄ÃÃÆÂÃÆモÃÂÅÂÂÅㄢ㢄㢂㢃㢂ÃÖÂÂÖÄÕÃÕ       ~BK8((䥑å䥐åƅƆƅƅƆƅƆƅƅƆƅƅƅƆƅƅƆƅƅƆƅƆƅƅƅƆƅƅƃƃƂƃƄƂƄƃƃƃƃƃƂƄƃƄƃƂƄƃƄƃƂƅƃƄƃƂƄƂƄƃƂƄƂƄƃƃƃƃƂƄƃƃƃƃƃƃƃƂƅƃƄƃƂƄƃƄƃƃƂƅƃƂƄƃƄƂƂƄƂƂƂƃƂƂƅƂƂƂƅƂƃƂƂƃƄƂƂƅƃƄƃƄƂƂƅ ƂƃƂƃƂƅƃƃƄƅƄƃƃƂƂƂƆƂƂƃƂƄƃƃƂƂƂƃƆƈƄƉƄƆƂƇƆƂƂƃƅƃƃ ƂƂƄƃƂƃƃƃƅƈƅƆƂƄƆƂƆƂƆƂƆƂƂƄƄƂƄƇƂƆƂƅƃƂƂƄƂƃƄƅƄƄƄƃƄƃƂƃƄƂƂƄƄƄƄƅƄ奐ĥ奏ĥƂƂ ƂƂƍƍƂƂƂƎƃƍƃƎƂƍƎƎƄƅƅƂƥ ƥ ƄƃƂƂƄƄƥƄƅƅƆƅƄƃƥƂƂƂƥƂƄƅƅƄƂƄƂƃ ƃƂƄƄƄ ƅƅ  ƅƅƃƂƃƂƃƂƂƜƅƅƄƄƛƛƛƛƂƃƂƂƃƂƂƄƄƂƄƃƂ ƥƕƃƂƂƥƂƃƕƂƆƅƄƥƄƥƂƖƃƍƖƂƖƃƌƖƂƂƃƥƃƥƥƥƂƅƅ祏祎ƚƎƙƂƍƂƂƂƂƂƚƙƂƍƂƌƂƂƂƿƃƄƄƃƂƃƆƂƆƅƂƂƅƃƅƃƄƄƃƃƆƂƃƂƆƅ ƅƂƥƂƅ ƂƅƥƆ ƂƈƆƥƄƂƂƄƂƄƅƂƂƅƃƥƄƄƃƥƆƅƅƆƥ ƥƂƅƂƂƅƃƂƃƥƂƃƂƃƥƅƅƅƅƅƅƂƅƂƅƂƂƂƥƂƂƅƥƂƅƅƂƃƥƅƆƅƥƅƃƅƂƅƅƃƥƃƅƅƄƅƅƅƅƅƄƄƂƂƅƅƃƅƅƃƄƃƃƂƃƂƃƄƠƃƅƟƅƃƣƃƣƃƇƠƂƃƈƟƂƃƂƃƂɥƃƠʥƂƠƃƃƘƘƂƞ˥ƂƟʥƇƟƇƠƣƄƟƅƟƃƂƐƂƃƐƐ熥燥ƄƥƅƆƙƗƘƅƅƂƂƆƍƍƄƌƄƌƘӥƘƘӥƘƂƄƉƉƃƄƉƉƄƃƉƂƂƂƃƈƇƃƄƃƄƉƄƃƉƃ獥Ƃ獥ƂƥƂƂƉƆƦƉƄƆƥƈƂƂƃƈƂƂƦƂƂƂƥƂƂƂƂƥƂƂƥƅƅƅƅƂƂƥƂƂƫƎƫƃƎƅƅƆƎƆƎƫƃƑƫƃƎԥƄƃƎԥƅ  Ƅ祌Ƃƅ祋ƃ 狥犥 ƅƅƅƂƆƄƅƂƊƃƉƂƂƃƂƃƂƄƬƄƄ祘ƅƃƃƅ祘ƂƂƇƂƂƆƃƍƂƃƍƅƂƄƂƂƄƅƃƂƆƃƂƅƈƂƗƈƂƗƂƲƅƲƃƂƂƂƋƂƊƃƃƆƂƂƆƉƅƃƂƅƃƅƉƅƂƂƆƃƆƃƅƃƃƅƂƂƂƃƃƆƂƃƆƄƕƃƂƅƂƂƅƕƃƃƂƃƂƃƖƃƖƄƕƃƕƃƂƃƂƉƅƉƅbase_dir/777/PCB/PP-777-1.pdf0000755000000000000000000007570413034371274012162 0ustar %PDF-1.4 % 1 0 obj <>endobj 2 0 obj <>endobj 3 0 obj <>endobj 4 0 obj <>/Contents 5 0 R >>endobj 5 0 obj <>stream xԽIeI%6U8/!*G9`v+wQ ft\\L}???R.>,:֟֩Эm| KeLց1BƀhRpeark=3~/_3Ǫ)ݪ|YOA8:wy R3)Xq`ؘ %42<>Jf~^%(ɿD/j r8Nhc ODfQC萬dUatђ"!lB*0U. eY+;̨sG>䐙Lif6y? > hFFR#)bX] %42Ȍ0r2+%m}yz6H|G*VјCO7ÞNK 0Id_R\iNr tsϘ|#%4jѢ]Fưjo/Il Cf[̬K:cxMT[oGR {%?\'Jn&PہRҰ,T+FK?GtK[o(fIVZoأ#Qp }h[Eͤhp!~+:e45cGw3kpG^iy̽v 9[/fF3“Cl{'<X/O QoLTYZX[ VXc)*l\玅M CX꺨 FVF-I 0 ~6)&ԆЦv7^AumO,TdK"hauŬu|/+3VZ5G#_s3Co }.CCؚgc<8=A R Q hRpjco550/֕wؗnqoqg@C32SCqghI ![k@L)pf)08M3%`h ,mXXi/!f힬MYkd];K|}nCZ'(ZA*W 6%mA6`ZL.Qя{22sY5 - \wxy9nkȽ#t?{UFGP_è졻52?GW^^[W?_ׇɫd\`~m_0X&MXS`',q/V~^u_T㗅áF[nrj q |Na[ ˰RmmVя+~Cm 2C ,K l$X-)*e9s5zh *e9V Z/&^^ʱP{.&l-gC6:pd×6qi<}ew )2|ʰRmmVяko_Ͷ)YLldowxu(;3 gK>ӭ},mlqR;+lo [4"[XEmo6loU`7lo)ޔym+ߞcż@,v{{^^ُ)&4p>} TgVq~n_5F^QI֖Wr̢58ѬPG0Z#  c&%42<>NI+!37EaW[`TFolPX%16 kFZC?GɌk>Z fMx1ZXycRp8PöOjMVGm-:~+3~C>A8pK5Gңr[4!P3he6FzX %`tk"~ }:{p\'Gk!߄ ~#W~!\[l4FGN8M\%ܥʳ‡:ɁR xV^P`1| ~/+3̻Y`Grwx!Zz\_⠅ R}}~po5g5ٔ6-ș!smvIˠPek++-԰asIܰ`a{ԞA`m#&[y iE xfi;^3^|=/T~vorHsE7<@?Ji['M?phuԝ;uA R7HL -mDՁ_1ɩ?Gja@p)^}pB)\%C,zGU=:_FX-$*;x[; iB  0=EnLGuJhk1Up*80TFK'Mji1M-u9H،8eCQNd-+v!7XXMåFF?GgƫԤ688 ~8vҍ AS`f!]7;KWqrH%:(0Fp!;Sj >2([VD'B`PR!2 GՙZ R#L5:3+ -شO׈0Q s>m!\RH;B|0Ů;,{ɷܗIQB #t(930jDCc_@&6Ӱ$4oJJtv<}yd6HVh[-)=/vnJ.-e~wөbzpiq["9B5)K& qB @C: 5pSB ,QjRUj)8j ϴ1J;_05nYV W"huD2nmS`f8#5&P~'@t}! _F[x},#[x2oh6%f5Bu $%\ P*ὮLIr%HL R2$"WgAdi+Va9C17#`/V(O'1Qg/!.32 4U¼2ɯ.XT$R2:J6l'@^ʹH5kFgrU}?#s2ǐL)t?U_I9M|5UBWNF3J)t)%ָh,)źJ1T] A=x$|''ĘyUДs*̋8U:o,FbJwvkկ{$n| 5. XJr[ <9k ~I^ilfhZ[ IK^]J)r ~& mq2F)Q+%GH*|š-,тQkFUU4 ]<:QRъ9@30 rtuhbD61Ljf'S;Jvt!Ns5p{ҬVivM@ؑ"{G) [.ƕ["t٢cZ=oV2- 09f5/h݊ 0#@S%`W$\y&~D `t&ʫ YӖ' 7O!\ 6 [70xx,-2/f:R:R7f>Kh[Zssh[{ mkۡmhmkOme7\AJz3_+a*Ѝmk/BU٪ϧ7l[5@kOՖ9] R'ζaâ܃}Wep3[>)=ֺF30˪*:[4ѢvxkeQSYXWҞ< ]p{úB$WӮdT :1m = A&)4Ԋ![֞Z7dҀpaYX`?s`9= WY{Λ34qg^Mv CډiG=U|L{0{C|^m3pX鮟g̴jL!va 52<> kdL*F~aւIqY p2HWr`$&-ponhyӚ C[6)NzdbfA{gRt˙Up%[*o/UA`eQ`:aPE%N(\]+CJgdg(OahaqsG(t#u-JfhDy(Elڝ^9,=E5mEc|b/0l6`vvKTofq>P_R&,ʹՑbL*սK*O"#pN W[ }e>ж. -pGX3CcyyT_ ~UNKPvO 5 fRyj`,(` g %\uC)?]-T8 M/AO(_r-3w:R^O]Pgpao$V1U!2^y])_x uHPgZ3* Q0^L3DwXΐqGA B+%JC+U[+Ա *e*ᶕC-*Y~E_^X'ʯ@+p\SJJB-+-ʯxR9_B*FH+ `(^L(ʯ[qga w@WZ RaP 9OO^chㆂca 5v7:n~^#øq@ p~@A9la  jov aܠ*5m7 * UqCoeDuKvKQƀT1؈Wza#mufsQU~EUF&΃srgĈw9^ w`XxG, ;bXx ;;bl,# w;bwWLx{_{/5~+!oZ; G ty8|ڟ0P tW.@)!s,ii$i)@z@Sb79 J6&`{kw,R|M)YS|_$EJZ)ԴdJhM*;Nt_F{өP[> [*8vX4)XETK)Q C&RxmM|/j$*g)۴.L\ ,Ps&y J,x ;o?]JM(USA?#`?,{;^ s}/#\22-J]PHiV yuÊ021k,u@@&j@J(H%\2A1%VZډiaK)03tU  &Bh?ɅR!b` wGL;d>tQCK @-& OgL%*f>'?K5*fqaoORӗ:0Ztfv` k![xےKQ^ E$R`fBT!aR \uM[~IS(R!MKg"KE_n\?-!V$T;끍'`eJSFUKϷ䳿P-"XmY^?l6b!hdn("8i7lIEJTq"U@٦hNtٓU?CVo|bgɮr-< J ǟ[.eQLѸCaQZwgʣ4yܫ]v,%^o½H0%|Ӱ"{CyX(v}Y))539+c3n?/ϧB;`G n Vx;HGnʌ-g]a‘2P_2;ug9:a >vE)ɗ=vp,Yǂ đ!H ‹50|&IsG800{ aj+ .Ϗ:3͍&>2K]-%Whz.?``Hȁ._y<6{+Jp/G-C=.k巰no P l+0)gWπq2Tz+*1ԇ4]/eg IxyA:u}L]503{5 ğ:.՗jRUjkBhMj&7-ɮ{_m-ynXLlzlѦn1 \1fP+_yO`|:%Yr1̐BHc͡H1!VnZn7 :g6}<ϰyh2󨊐i@,~@Sf2k\R@OZ.]`BU3;f3OBtWD9k~SR$) G,gǫ߹̏C۴ AT|_JWG ΢weix R­Zx;:v}yޣO\jb$֮BT'Y VH)8k,u@u$ F'[+qoT6`lT< Ñܪ̧rUU30eJ@ )+ Y$gG-$8 l%y솯/KC|_桔/pW#+spۑK }Zȁ҃Κ#8MPC%Hsn5{`f誘G5CMOSxK(94{R~܈S@B (Kay:Ru_ԳL,;AhH- r 嶶"C5JFU]jy}k [ګš~LM]nZ?nȖsq4ٓa5mHŚ[+0Hwԏ@q/G q䮮} k .2@dV"s$?2XHh%e%Psdyo/"$\%HO_'Xq)-#ԅ3 2۵Yamcrv\b] A/Fa+D 2+yAd~|y3aY,^4 iQ\}9SA={͓[۰RC]~=Ml;8gC繝KJJ5#Xl1GybV`R R]Q8w0_ݤFj5 Rw=ذ Y3( ^9R*r59ϫc?G,"O` aGζZe.qޡ,( WˇB|FLq_A+(.b8@J3^%3 œ%=Lڦ@#@U-3V=03tǓ 3#jC3~L sFi.W#R]pT)'Tzc-^XHm~ֽ+Bi_x:=}4/ }}RU-4eރBOM eӟɟ>g/3a{zg3#TEKSs2ܩ0 [lAw aI8%͝8' T,%h-(鉰!L ̬S5߽]α}Mϯ}~?ZOY\+.!;1 KZ5S 5 KYAmtdu(td.ce'&2_,/"i=|`)4Lkp_f5ORRFˀ0Z3)4C&Rg @f?Ĕ' ljB9)piR$iBA`)=(|ca4mXױu'YC7Uꄽt+6}Y*_ͪ/^3]TQ8 5cT{ݧS 2V:]控mhփwgo OVstC6Լx!]KU7-Re{ecрnl`e@ؤ p9ߡs nHlӡآŷyu(UƟuS[XGQJ%޷d)$`4i\0e]$MR+6p[ kA4W~)YJvZ78ujU<<7⎅;Sc]qWy }Aba ̖6wUәstWpmPJUб6F5ĂǑ=XU`ٮQW\۩KshSL٥$Sf!ρ3k`P!;GJ(\@J RP6NFqXs`LB$L/1p!/5lFGKM]ʐ_Fx+ Ԥu;{ rOh*_*iiNJflwSNwJö'h^B:)5ie;Դ:;,\1O IUڲY#$U礟3zTf;)n`&6K+6-z ڠePf>#sϥaDR͡W\i{OӤYVxfFr:SC$L,FfL޽o,H|'3J5Dɨ2,,pDfLƍ''ړC ^[߷jwIy4yLKT?jJN! 6JY~ɓqR?M@b7~98m.HgG~ꂒI4pmG3w}t R+ܻDẗ́i :0`Xx]i;[n(T|pv zm0oALk5tGMgʄxƋ4A0[2)Lc++0Th{50xh 􍀇ߤh6Ԕb Jd%}CBԺxJn(=i1=yɡ̢=yGCO'!_n!ᭆO[}#-_0|K }OiNp}ڍ sK"Uw R+)*T>K1C!P޸/ϊ.A"JH2mq»T L[i"0|)WI*9CUJO#G hXY//8uL-:}^abU.W­~Ӻӛp&Ce>+5h?\YX+5 sӪѮlp0=/RL@?}jlWjRuWj [2: CSl)\Rz[RUn"\+q1fΖeų:쩄k ;bbӱϒ%RVdh*>0R`@`:aPb;K kpG{QKV wD68JV w?ҡdpGJ(Y麣= ]_EPX=npf/lܸ2? \:VKDzuZoʉt:Z9v t8ҖyXkFjMQٵr-Xvõr}3kFtõrXi XDȣ`h0\i?RCm9|a[df օTҋ/JU503-JI35OUH1/9`hF ڶ ;"qt) kdSJe)3&}Γ_$0-KH_wv! RR7}}xov߱U`;(P*GexbX=t U02 BKLe_sn_U#.zjtZ+[1"7y?ZCS~jj@xNX_Ib5@`5B2?si5/yX=Ò #)R8q  c:׆N!ҷ\I0ts{ӟ!mШ =<ؖ᚝jƷmlr\#+޶mc!7ۢ%¹Q+J`AFFO?l?síZH2M*(!v$ &ZvlMRNsg$=`( 3cfB83C a=%8e KsRu)pKY1@U#`E[mif`QUpix9l?G'$>sgKNcN ◟_gpod2g\t 53ϫK|+!H<9؏$dHUL@r`9]+ qxr㇜|R3~ȁpKYMNU$`.D[mizYa6ى*3]!CVDC Zޠ Rʃáw祧Q5w?NjΗuZZDC y q5_j5[,WNv虱NAx%Wz혰![:P,6i# $aCj' `kJr02lRS?<=У6ͯxz 81BtF3 $ቑ_RLаK9Hp5nC ;k5Ձh/\iܸJx焑RܡcP&>(R~4c$\V9 @:wG3CW`.ťQ,swFtoDmB \#&׈n\+&׎ɵcr\#&׈ \%׎ɵcr\NunmHTK#e>64{o>_G>/5fhzykD^H!'/hX -}ݛKwI{)/^^x)"xKދ#nG?5LǼO2HH9uH-)xzHxja*o.@%c l8HtYt {)?9R9,Ix+=Rقkl);OmaS_Ѻ|0~H"a~S/ eAU?ŴuʦxSg7b?RB?Kɕs)psǑg~R[jIRۘx6{{^Բ]͉ ۘs_)T^CTBnZV:o&%b]g콂T f\]k`.uٰD]tQG]+l6 ^K{JmlA=A=򀏌X۲ V V ;Ia=o+a[`^X)skoE} %b@{>N X=m!ԋd: jHp)Ndp;B$;F"dU GaQUF;~ 8HH"1w#0ul+5?Gg Q8_[oAl%23@ v`֕o<$58sʷ4f{\V0-{+YGpK%)ݮlEe** teunKᩙ3o]8ӕ mFO~c|NfgBh5s |vynojf9vW5*-YfVW!!VD -mĚX3NBf@:BHҌks@ ]9:Tha` +Юf}Dy;X>[!Vh6V&2T!~˼ؽkcXXK86VhJ1ZAkRK=ƁpK%!R5ƁJjPRcm&UEE{_J2uz,V EHJET㘇6jYEĤFK?G}X5SNJqºRgA|4@J9Hٛә9(,dܷ)Sa ~P75׃gaXY?#z` }"!M 4.+,/);7(~VIM-]D='"WS"$mnbqTS [VZ?K0ݾom{gTS _]dwZ6ltC\PKFtc!@h2/y)VUu# ŗh;ǧD5sҢf,v%sU Sr ZܗTyb#?G ̻39o?/"UgՓU uY/|Ղ?t0[,I%QJ3&f~$@0զgRfN{rA2a'> /pr 83e7$Do[HISZ<= kHFp6J3AUo2a6h9Eq!KZZP`9λџ.`6dh% feV[%]f32CAB%[$%5wM^J!kB ~'(U_l҂L]}wBx}&%B}E(C}$xyShˊBk`α W &-~X奾RUl0Dj.O z@cn$7-KρWuqg`V)̰?),0GfX+Ex;{ VwOuaZH{oTa ̭UmECvpmC~`g|ͧ 'Vw!~ 0il/^KDZ@)뱇R Jͷ:jCh{p>{= §y9|/t ct6kh-'Aph'ՄNы*x8V0!.T{Otv#@jvCV!FB8bȪv4}) 4[A_^Z mP%l(Z. 3@kvٚ]Qՠ,~:v) `Ԇ}BpKͦO%l‡F!s̎3@ٿ<"|}P.W CbpDH0GT5!_}B4ݔWe'[IA=z뛷m[jTHIny/%\''LQ?EMymmHjBmUۈNrj5Oc_Rێ <m+yOUUag&g9: G Ni` *C#3*GCx .㞷R|\c%b PIh+iR5࿫9aTqU`&^_*; XQX)<52ۢ ^n3g^ͫNC^#)P  V -`Ucuߎ?|Ε% 9_zH% s-u7]mI lX4@])t4p?x P@Q~k:e;׀#p.Xchy;׀Q#l}ڼ$@WI尡 .ŗ?n eyݡ )Kq?=R `3cQ_8^dq۹|["{%lMew&3rށ3x[Ә =wmza61tm*?.kR|9kdx>멘&DN"9uNH.IU쌒oo7H }ǐjR4wy+=BQ7IyB`Ef32Huqr:Ec3Hi,>+B*4%Eck.bN⦙CpY9Ga:CATG<}f,o]C:^ Z@v{/QCX͙΍ *Xi`N ЯIKLT>ubu v{:c Ef9\G90.2g^u^2VLΨK\t3:꽗~]9:G,#1/BDuRu GhBNy޾xW sj6*[_NL`=g‡'9HͰ7ZCON1Uk`:2ra!IlW$\xv>WUUk`fX='R") +H&εaW$\R7l W$\`1D[ q0w{8kѓf]|RE02;{+SVk̜0<*f1G}f92Á?$@y/9)f[=S[R%^Yo#_p9$-FgP3:uHٗ s u81T%ܱcӮa) "ܝ|:X+!^`P˚ԝΏTRru̎pp\ḮBXAՌu$P#!sX.PUk`5.WvEueG_3OrZW..V)A+C|F$wB"%*.??U39aDJua֋=-0Tl%"m:ׄLXm᪭UW* kk{޽kkaz7kR[?"eNZkp jkq쮭?BMbڕX[>.,ݧ*W7}CڲCGJOgAL:d j4c qn[ FIμQK[8U.,r,R){DVϔ-)kv O` nt咥OgO5?{~~",YT*z8_p:45_J= zǁGgSBcM4xRs=mRadx|ԛx];TZ)q}x.쐘OX"LbJOOOO۟b8:q4ЖdUu^i,Up%JxoBS`Jc<]ġ/;qk$E[x#ąa1|r3{2210$pF8yIQR ANDwYǂǑ{Tգ!Ӫ`F-4xv{iVHGU=BosV2B+̃0TC茙5_0EUBҲ%\յB=.%Ɣ 93C3ThɔrR>0?b NO 𡤂eT$C}Esb^ؐAG&S+!z)Jxo1ok %JEMm]z̯bL'ɽ>Qh=3f2mp\pQ5@dcj^V曒=vRhOlNsDXįR9 ʿLw||Y럳^>{Ww7:BV\w3ThEĥ`SNJ- 3j,u\ MKS9RjBwzJ'<lNe>+m T{Ak橮 _z-;Py:"u-~"V{NiMn0U]qhDݿ*UR_JlJuDŽZ];d!%*.k,v QI8z(E0Ḩ۲ >f@ ^̫ IV=,6NJ02}Hz׹0xjT%r9Q0;V3?Oy31t Ģ䔑9 1AK%V /26W1ٶphnUy'5Wt߯I| ct?NRq؀zŇ_ReǝH^| vAp0@yst4@\ 56pq[TUk`fq1XU0h38V&_GHUW^/Ъ؁Yo9l?w-ÄݣWLBC^߼Sm[*THU/ދV]OԹ1&(ut/h#aX>|&|آ/Ͼvɲ<*ܾ LLxoezo!xř/p<\rPJV+Ax!XHEsj4|lBG#x[G#._j~O鉋i)s{PJźRʯm)6"!JOGLw޾#6-$|Hf -Rb28J;\n` jV/ѣjF50o#;Jr?VR}.?+X 1pg| 01 4C=~Fk"^)§h@,stS|@ĦOlL[yVdqvÈ ֨*<6|=yX==)mj( m D)thpMm]=@:{$'@T?Yf$bUꉳܗ\Kt=JD @ČaNtR=GGשW•(#Lh"!VqEY-@mW; JRA1[kjf6KJ A+NKIV3cUs9x{C4bYZv;HzITd[Vf#!ʣ1} ̭{ۮvNBwbq]?A{6Vw#hfUY y>a# H@o] wsz*d6@( PUeLQxL<iasDUfG- $ӭmJؘ BBJ43dqޤHMhΓVl N?u0 #2C6vm%'Wq=S90 v 3. b8IDR7cyjZ ܇p>iiC\Lϒӂx'|eS[U-pUW,4s-^q+(a7)!J&E`^a K`m+] tPu.` ?l\͟\~r\)񓞮}j ʆ8(OAEtwe(oܨܨhvqm󌓂oI>'=fv1Ϛ M%L &֢ I~_#͓/I~_#w'LJasx.>Ăa *GC43R2-:FDX33ۦٓUledãmBl,,p9\TpDUp+0a 3!gX=.#Ɣ 93C3Th)8-ؒ3v/@L R˥A+ p/82o_݋SiSo\K2*&p?OJ]'kPX\\3w[2}BXmgbNM&!\Kyv<խc&%0W,vhW$@ lOS!nRy1y\ԪAɈg @cKQA6`y&P\a JϠfJ5^hx kZԓ_ f56JƢ}kxs5"ph`b5ě˺ tڛ-֯!ܘ?U.կ?~ :, 2pm"j2~M{pA5OYJ ) NY[)ѨjhƯtg@ޔ:OQQRڡ4G1JT<͚5D9%ܣKj9:Zr58uXEGwRlB25^SlzH۴+X!DPBqB‡Cq]f i8)w.ÊK3CW`ڮ}I!swftoFmWre@N..uܓ*0=̽7~bO&"lb2=:>ρ{KoNo4,7 4D5d/Bx'VLxh-pSؓ8- rL@!JqC=Lx4h8R LxؖAΥ}?텓 쟓 f#lQ N&Rc50lKdwe1O=cf˰3e=pslqW/TT  Ʉ2Za2! 6f?REU g jL^j.L:lp==GpPz(N&g8xW#s~aƒ&L{3&B m-p \cf0{` a2q2!bSbLPLȭ#s 3Dk032dCX w&ɄCx٧dߓ `ɄCT s zj'd&&rA"W8PLxs2AzJl?n 8f*vG3CW{;p{kuVXT-f[Ux|"H[IՊ LӈO ~L,<-9N,(cbAM[!0qbA{bAm'>‘pB{OF TCqb/XP[VźP*mJqp9đ0攃ԣkqD}5QqbAba K߲\BsBF6z|t ]nf ِμ8n:yBaSzȒ#Y9ʳQadHfSn-~A~^sz 4ک+rv ]wONŸP#bۗنevLj:rr-m^M7cYQ84m &p@y nfPځ"gl(;q1[xjqya{n셉Ob֥pT1;<N@3ϩ^hh(X\{yd@Ȉl6Ok_cW-"QnO "Hj$@V;7'TݫNRX!ugyJoUϕ2UCAge|E[?6laz-*6Vns|]>;Go=+yGگ2dƮ+ZGP[K |Yݳ6 *XJn1z'A䁒'w|di=w1|`P3iY ؾq}!LLeP,+vʽ-Sv+Œ 6RV讄^J B +ŒRpckig%'aA[RVTy vW.=[om+n8~CQLQ䌣+A h?|AMaO#dƮǂ6ڊJGЪLJ"b!ݣ\q%8Hy[!G_'o`3#7I-_JM^3}fPVi.+v%V `3Ubp/: l鴝ڇr?ahV2wCvfrذĉ[-rr w}M,RVT]`Rİ-F6Fh TA^e,bkCUD`,>yUkꪕ$"PmdHY!\(L_lz tvU-=I'%6{"_V1[Z|UL.RAxL9kjtJ2xG|naG< }<;,1ZO+5эrtռ& 'B?{$A?mqCJEAd2&1i4D8f`2>4'dG5~Wr( ʅ]/ys!Wl IJժ}?±d6RVTM~[{ӠzhQ=GҢ邏`XcETZʼnO+S! +ZLn{\rB\h++zi+J<;gA `eEEENEDEGH+(H3%L"|Vڞn%\pǂhUVԞ+>sKP>h+,X3{Y9qIȫϪOZ Ƥ1E Cʕ' "'ӧuA M))+g趕Ri0*>jk )+̋3++Wv SetJoTA0hQtjrP_7=޸kD,1s.MUƂLپ}&}h~-}U8~88h+A6XlA<~nGõ1!\,\rIDE9  m:URkVୁ6kVfriV!lҡov)4jkx-$86 kY}Ya~ !q<ʃ+Q-e=Rw;`(1m{a@8[]2 B{Vꋎ.f n᪠` +=J?VNMM񦹼 >6{T5pZI55OFb"Sgq\)=W{B\MZ+ cW\I6$AoeB3;+2*MR ?ܰĉ&%h$h6wQ'm!⳪B%v#vºa"6G.qa)v"B;ԧeoo,)V B:s?UK)}[-c]]kPf%oe R(#HiD!toQ_ o|t]Tw VBN ')qؖ: 0)\~ `~s.ޕ+m)ئɘ>dlVꗕ0Ep )jM!d冮v7A `?%Z2aD3\Km6j=n5hD'mhmvjɊNЭaQjw cQO AB ݕ(F} e*AAсb Z:HYa!>xa7v.cK& vVZt6énmT#cdS%P-fk3f;`\iugzjI OK5K궐 o5 ZyF 5׏r׶[ǖ>stream GPL Ghostscript 8.64 () 2009-09-29T20:57:13+02:00 2009-09-29T20:57:13+02:00 \376\377\000P\000D\000F\000C\000r\000e\000a\000t\000o\000r\000 \000V\000e\000r\000s\000i\000o\000n\000 \0000\000.\0009\000.\0008 \376\377\000P\000r\000i\000n\000t\000i\000n\000g\000 \000P\000r\000\351\000v\000i\000s\000u\000a\000l\000i\000s\000a\000t\000i\000o\000n\376\377\000B\000l\000a\000c\000k() endstream endobj xref 0 8 0000000000 65536 f 0000000017 00000 n 0000000084 00000 n 0000000379 00000 n 0000000438 00000 n 0000000569 00000 n 0000029513 00000 n 0000029538 00000 n trailer <> startxref 31399 %%EOF base_dir/777/PCB/PP-777-2.pdf0000755000000000000000000031644513034371271012160 0ustar %PDF-1.4 % 1 0 obj <>endobj 2 0 obj <>endobj 3 0 obj <>endobj 4 0 obj <>/Contents 5 0 R >>endobj 5 0 obj <>stream x]I-9nU xf%\6{;DJ9(S#>Z\_ujwbmyjnz؍|@X "_6bl[ 4 <q}믿GP֠ϡ< M~O%kf u)Eq< g&-ZxPʈDLp ?߶#mE"QY$x7ZBv7 )%j@u-S '2t`N{KJcЖfp#-(5>Z@dgO e %ԡyn<7n|Yĸ*hި*<+r"؉]i * ZȔEWUUu!p7CCbMRh{pJ<7 s9P3-njsډw#@(a~66<66v?m&JaT ޖll #}0RKy[R$u2Ifػ+dC؉YU%̕FkUNOo`GQ)ז@Rvc{GQ6QaQdv_(-DM8xQjP;.n#D-_G)QOVc|b>wX%\X͐WFbxU sЖfߖި-EVn'50sZZl LF؊Fl? i+̶U@ZhίT}YzF25i2ʔZvWρpdj, 4Bo*TdH MU -( NAfW Eed#Lz{ [->i+~^)s4t{j{%k(y (̽- )jԡ9VjB4w^[J UCcjf+ZL% _1BV EF,@J;[g R2&Mp:OE~Mm|ONa0 Ȭ0dIa!݈)&ɐɐf& lwrj/d?Ip4j Bkxn?)?&nWjrBM0aoNˇ޻OgㅇRX n[ޖIP@j7tya@\V='p 7ͺza ᥆3=+8ȯEaذUb>[ Ž G%fxH FۂBl D7f^ʷξaرB[І5ṣ෠l ۽榜߂ق6LFlM/5? e[І>MM ` "HtՆv Spd׎[i>tkhjhN攪fY8'H`v"aļ Zfh'ק<֧,y|](,vFH<>.̑+-Цd[U1G/PRmL?zo_?粶&z 6̐ 9Na}!8){K"K.vԪԪ!^Vi tBB* snGXYa)LKSha 󸷟Ok €B,L'3g>oHn:66r;i2!hoo3!Mn>T7KJF`c%CB% RcEॖr9/X@uVJis$n!8OfNUb(1eױ.4``aj| K#f> +EqlXT!څ4JRR]֠D{ aÛ+nRR ]TSaRULTBRCXJVJd$djC-HR*E?"E'||brSPM1M G%nG16m ,aiI0iwgY!a',BuvzԀh_`P*:"pa2Cg", \G='V-PZp[D0#B/Cϻ:k:APJLSe)6,E{)X-6(4ɤm,\ދW:@K[zN.yXE[K%%*5/E->jOzNjs7Z.hz!x)xվ9hK#[T9W\h:ݫw99}_ Ǔ>"w]o uD>w]9φޫq{:vHԓz4(XWIDt56=vmob7g7?.U͖z Xpx7}v\pHJHJ*8sa8$6RKIR,fWpxſeX-TpH #2+1|nT\#O[+nm*0FGl)td 7F_1>27Fn3bፑDpͱyj!H"`cB#FnO&oܰz4(#iP]MOl|l'FnṷMdmC;*cۏDqcB{z?/+ҪT2d[e]Ɛ|(#H ]a̛yH8عLHmfSSeȳߥNu" 62y Hjfjnp󆳎ŔP}?`ϋUޞxV7#ȹղ8͂$h `3oJPh==up5k8Sk8i[2-Yj2ՅnuB~wp3rn:9altmB3/pnx'=:9fh2Cc@Qw.B㠳:ʸo\:aLA`kMI=kal`qh=Cm.GZ <PEdQ g艔-G0tKh U!r0GkAf z~,lḩ\! UDy v|jr#UIo2y3GEc\!ɋǭ'7fy|b\~^AUf{9WU[޺}ᤔ)50Rr}L#jm@=|  p;/JIuȐřmB}rC|zكnϦ. W~m!y$@AuݙıRXu!D2seUCX%@pFFmxSد0dʪ*Cp'yކ &1]k]8&#Ĭ}nv̢dJndPПqӥɰƥ=jrP Q{.D=P ɵ3B]N>/V<: (E(hmw/րxpI0%TR3xDRIif !/[ujiU lZ]73&Tr8fc6X"1 CL3ݻGj2L*a0DJ!mgtԁ(tcxvD1CDp#flOuz2|@H]kV"dʪ*aGu>JU{g<# N$f\{eGrO+_nvvتvbV1W 09͉.̝U-悡Z_/I2}+\Tkq u߄$am@J>xֱ' |p,{o(2IJ ^hK^U '=$`n5#%uABU[s޽$ofR؟HK6yBB(>|%V$V]Ms ܈輼s`'Fw/_Z͙$w)/Oz+2+>:d>|7\Dnv1PZUeɿ' 䖕ZN0bXa |Ӄ+2+쁘1ѷU5BDNBp5(R'S +3BpJ]#}%E׽fxVJKfNNf:}7%71d'͆@pcJ5%͙l4`bi3?j99/Ҟ6>b=8@ڨ+)m|I-onPf#V{O&M?c*q9pj֗BheΨlvGjMj~M{ShW9iT`^]He~ݿTjXJ|NCݞ J׉_lv-R%sB&(O^fW wGHm LxX-ZSuܯ)+%-ivyeYMg{x+dmA[ ShsXVRg̉UEzH0PNU#oe݉^[zkP%) $Tb([*5*۵bc9bINa~E9\XW0=EN اu@qoce.T7,*۽,%;XEoV.>@JR ˄/uS)sҵt޾R'xWWY]C ĵ"~@ ߟ-_~%OnY_{t.`_ L endstream endobj 6 0 obj 8700 endobj 7 0 obj <>/Contents 8 0 R >>endobj 8 0 obj <>stream xԽKe9-QD5 n#BBO!!5Jkӌ4[Ή:w϶??G}??:c?~)|?~^eGn\  @Z4Ji`3L+FZA??/ۭ7A0OHt4 i)Q&RQ {gv(Hx?Cvv B/x]pޢq)XlnM5TUvITWU%X\KlM+w/$?V򔕦IfE%uKpO+ҼZ zywjcr6/HTxwM{^,qbR LkmoVإkۥۥۥ\-mfR m6 T/OY';" /NΎ^,=5'kDxW e/JK S+ܞ OT.O[ >`#R׏ Z '2z _v2lB\GN^xҲghٖRe2ZA?r?oϿT|9*(ɇF.NaV?Fm_K&5_Ԭ4R:R oږim)y Iq52?Gm ja7԰2B/1Q:0K{ 'IWҘ> ڱ^UkjSu~@)pTH=4kkl+A ҥo9fi `.7mKihӜ R Lkv?^ *cR:tpҟNo@zP,P2X,mgݤPB~P^p+}TFGR`X WCRhR1pXaRGd~^mhreIBig/(`P.8mvR B~^^ۗӞ;?po%9Cޡ7-D`b}vA0n!xӶS0mI)0B~~?1Bz1.uXms,FX>w foikLcߤo: ;BC ȠWpC1 oz/_b }=s]Cxdr6&HIk+HZa{ewamg`)¯ t|zNzz]JzB~{y`B?<)=P^C/|Aڠ.i[JwKBvR LkmV^Vf7N^/liN1@5,ָ[bk\l a5.+[2Eցz-)[5CjlpeiuR@2kp2~+-0 ^+cgM^Z%R}&_ )u}u :V*ZwGEjV(Pҟta MO9s/l_lX hiUI1-O74kX<z-{eM/A~%&#>5$3'H8J^Gzt/2ޞ/a&´u5.3r?bKQA V6c9# :H?ؘ7D~1qM~c>~{'lW@l ~:?MJtA~[y*ӳ1[9[1[1[9[+/_@ %o3$8e{ZlxȖH2~?2|1HD irNdX\y DKŕaq;ђaqťDK}kOb#/y:R7h +Ӝ7# ,-h&6)P6ȏXٿ,O(aL/ *[>mmyyOۮ(ZiiۣY3.ybj0#O[.lኍP"=w+BV+{I 2A@_H= je/Y^,3p!ͬwY~^fLRww*f녮4wUS! 4 Dz-P_/,L/~˅h|bGjxdެ,&RˋCPwBG:vz֓اl w{ T$)(O8aJq5: w$ܩxN: w$ީpN:w$ܩ ~^[&B8^a6ϸ :+6=s_g;);dO =F*jGLjqkc?7uLCN1w'|$8GneI> .N?{89@j8X!PO8aM+$=s}E@8 ?yPֲz- e+:8gOI?fM+t&~/h(] yp]xDJ7wst-=tѻѿRحԔ|M/SW/a$ }&69`2) OZYN14:>je~^gRemH%c:U3)sπl+0'4.ȶJ]?f?v](z yێ\J1ѿk co'`K飇t@/xXԬet*ѡXFbvMJY[yma*C V2ӽ1 A(̝4QeP(ЁPImTJ+ߍ`u.Gׯyi/MGzC!;ޠ-W_$cK)ĦeeoB~???پIep+{ٖq%yݕFJZ JZij+R Mɹ@%())9ſ"4%%SEhJLO9J{V6;+*a~n;$YRiyݫ(?%S-[t9#wrʱM)[#N߼#\|XOⰵL[Aeoi> 1~|?37亘܃袥:׷<..@ɓr<@ .b^ T0(R)C]穚`'m&n0 ep|n 8Ⱦ i)Q&RvS{f0ׅ6)=LOU?F(\Ł syAp~xL\J(n9BR}ޣ9K~Yjg1 tU `v+%(/^㾠Ds_> ՚݉;@RP+nOa#@ܪuh=J>vjXݫr[<60/]e *5)^X"@fni:c]1F?L!*əNJRJRf6ӹܰsf&%3%3S2:)a0˧۰?ku]xCa.R~.`>:7'V~Df:{&Y|9@Bi[iD۔R;ILu;ׁy> r2ex,|ہYx L ĽS=SyC7#!7cg%#QG<\|`o!z͎?>r ~ށe90T{}vSOY`bA[Yj[VsKU+QBhtlgSAS2*i¼@ C5/pa(TYA% U)Z({wZ ިd6l^fJ@zMY dLzd||V˅0ߙ]-o7=ְ>O_BV,cMED]x uIg~|ilϺUb߈@ۥ*F.-J̽&Ώ-L&‡@G\q BRh V{H=TDO"zJ̽&ױQ=-ӿ2IBnr(?vΰ8Ҋ'ޣP#L,UKh.} ,UmfBlBhI~kֹ 4~5Ts^U5>),% <x؁4t-:؁4t(@F2;8c5T{6 o޹l=wDpLbF7C}~X흦8py#>MjXM/CH.%IF`УmoU>B}WfoLy0l,Us3ֹ+1 tUeXX^BUgPjPsaQ?J? kfdR#!dbY??('?rr-v-W}>t׀?h뉶I-k0;ufk]&=zy64c>PBXs6.9cՉhkG!{j,l8:/{`ܩ(A]ըf9B]aP%ێ_xJJRl D) `CT 3/V%mAM!f.r秹ܞd!!cJ{Ǥ>-wz. M!tfDSy*s,} 1:=}BU"J#!Tp^L,VjXI2^b_sDdâ>~?Bo@ +iy}-\&};J| Ol ]h#c?jļ21BۧlՆϒaM0uMMN\;8vf}7*3"aɘʠcǽ}߾Y^VP]ӡzop}ֺ?Bnbtˁo;{.J?r9/p%:=%BpMc%/P ܨ)}<!@^Gpu/qzUս*ߩDQb F2!]yy0dn_47uK_oWa˔˪1 ,\roi\o~pYRh;eC] $3+,І{BU 3c!Ŧ3y*2I&:;` M2 SLhkgdX'n MI]bf6׵d]]͠07,^?L?8Y OTO f E47ӮDHHLۘ_U/*+QJ60`:@]UYSmQSa QH/a !wن aO'Gw s܍WU?Fn uQQ`xGBpX\Rcf=PrRM]`}@hðaJQugKM7 yU3{hu+6+ 6#&-a#f"f3tKy6JkYFDRàe^w!1{DfuM`X$HdzVCjqJBR#J8Yj%8εQ Q{C鉢L[niz(oiݶF1K&1gWQ5 ֻG 0m vK-TmVf#W/a+qQe*uv8B|>xhUmSaԗ*EBМ?a/e',u5X!{P?ChڥZj_j0-+|^miOZcP J+3îYiQO5;䂩T[ f(,IVb9FڴŽZ]6'|7fGҎ'fN ,l7(t \/!dy2F0!Բq?L+TRnPOH(aڐڿ]o'I#,01s<#ـWc ܲ_ ;!2*ۗ[e>l˭Eo{bn%RB?S;Y29mε?N b Rm۲C$8vG9pXA/O%=*)Y|ڙfWA*/O9j\Bb*eGpRI 7=zf̽TB,@ڎ8[Vr$B9zlſCYn~6Šy=s+ /K^.z]i`/iN`=EqL@;rg_4ROJxlύC  9·  RvMϧ)بf ]h#70nhCzu 8zOFt0Ա'䩠ch:H%n%H +37,V5f=-g+]1 6Tf)A 3V%XAG ù[.`U>ެքCikj|L5 O-Axa 2*`.'OrG6!<IiЬ }Ļ<1<5=n/ETO;“Z+m-CS-)D}|bU؇v *,7 Fۇ:=Qk|`J]?>Dkfڇ*CTҍ!9!*C!& P-"ې.E`[ _ aY q}a|/l jѶ+m]T96;Y˜5glMhyq1tu| N`?qh Mzc_ M;/ (f^_;m[bf !B?pU 8-`B\ÅD+%|Y i[@8|߶XguadvIjv3}<7;d;rKmVB+I(RBV]i|PhMU$π:}Al(ř.gJYJOsU 0!T7-u~M! z\ '}*^SVvO{$icV誄g.17$>GMv*JS7奊Phq) V@v؝u.vO6$)%D)ů/"ؗ_aN&~KF3݆P Π̶zgi vf-xۿzhVB%ĘT-L %M脰`ЪLAZ >VɃ!Ṵzݖ={>ר[T B[nu վPm}uϺѢɘG'Tfa.)/ mFmKZAQB ĵ B!BBӕޖC(5GBŝ_|IJ^ mQ \!1+} Y0licBw[enX!(tlȬ3s~ oFh{u8?^-F͓E?)aM)BbVVcou!q—ږmxC. *K 7[d8:V Dqj& 37VvC@Bt}=qpOQU>>o:Ѓ{?('{=}  :Jbp;*OŴ>]3C9ݚ6pm)]>\ tFǚJ]?3 p!%%Ǧ8W5\9`J9\{Ùoko:aE;ԉg֢q31 L ڗxJٞ5Q2B܃+6l^z}J9;1 U Äآ[dt@P2n`9x;0!s3S7Xw XW`~sz&}j|yrI)0 ~̏O 3s3H)߈ISS!ğA@>"B>5-#ѧ0%dcۧy}j?F55@ٯ(ґU^T& NT5Zi4@R׏137 4  Pwb5@1ST ,8Ah 5@*̝jŒ p/8}6@^"2Fv lM[φBWwp\|cccmM;VsrB"XNn$>陗06coCGT-#,@\s !f0ρuҌ5̯ Hn(uaT&RRFRJ (B++1=]ɢAMjGҟ1Jj#x0 s!vNYfD;\5:oO*9;|/{_JPgQa!T&]#54mp^LU+1{S ٻ[ YSB/ FN^ᒬx?mRP?2`烙(5_YKMiYM&W cFjA]\ړ;\,uG,X0B=|B"RK!i>%ލm-pcRDv@UY㤣3|21?Tu4:ԑ5uÄ(ug5|BUgp*0zlu?H@R_W3=*HQͫV"MtߛB̋US'"vd બ2{0| ^ʓy a{S^EĈ3L'Xjg[;xAU(,JIn0lƉio٥6~g;]36!l Xg)g&A\Ɂ'EŶ^ S`ްUbn]Fo0VL~{ L3Y0U/;ϧyۍa(9@WիPw9d oӸ^s^|.3%/JK~]g)_B Q^Zw=@]Mv0@jr,78{#L;Qbuy\&&>Xv#L}2sGU7%ho)x;At0:0 6kN2@g`bֵEur@7?q 1UnR/S3tj_tVtr]{})ȴw-C/Gܿugtgzq(ދȷD""E[bYA"j)e@ */X8U54P\9-5۸vW/_Uo*r: ʝUSr UstƝS4 mS7Ϊ2G9x|)λ#$ Дʥ8?uCGQt+\bV^J DVu Qnp^+|"''7B *٬A$W?Gg7 PESAvc< 2N5\ܑbM ӽIϏH:" PQM?fSDq/8SKHqw3[v7mϝSaZa?Ttbm.VL.LE\~yV!Ԑ2N5lލ)=_NQ "[ 7TiZ!"=|rj>>8-CQtrޝZf4^˾-Y]&6k85*qx :֨ƽ@LQrpTj?VwE~ %U8%PPf "o0&͟#ɳ㷱/a`ɇȍbL c21y/1YnLV1YEBL>" 1yVɈC@5uQh[A̖#pΎ]?W㘼ڗ|:OduspL^KL^PԂH;ɚWØ|DzfdZdEq*ªu-ОfcjV5E?∣Ml ZdEK cyL^KLJ 73HJOIB*e[ww8%R[=,z |jl|:eE)g^a%fuLބ%㛖K&U.%"cJUU+1{\979C*ZsM w#%kck68~vwYg/WUr6&;D Q@W&QARZ?LJN^%~A0ëŶvӽkkvIbM_Kڔ"fJ%=>xEsTp\RZp%o:+ӊRqv~_.(1Xps !|ݨt;~8o<"@Տb®QN7v{[B4hJɣRD`%f3W- `W}e.`z>%)BKn~h*P ??bǃ@;1Z,z-ho@{tz"JQIKXRbX:o䞪Jl#Ady`H{KC%, _a%QÆ!CZ!@(`.Άs$C[KY_BڕSXF%U#? !peʅ!Ӧ*_Ba.!MYzOb~3JR3J]HQݿ iqJ!dKLoBB B’^0 !/}Z4ՉoѨ i:'ߔ@uz$U7BPaB)!|c/ɫx/eaȁ6`[: g&fE;OZ3e +_çN{oCPII _!DJ1XR9vz]T j!| ˕&86!F!"q7')D(,-DBDjBD"T'|1D5)Dh**_BDYcA_w;VhC5h'3ipІl.T-(kVl4)~(I0 C9ƏWZ!ďCߤKCkrz~O(Lє?"0LVHs.fCVB3"ہYsjd;%&ĕGj0i28'^hJϪFR{^ȓ|&!ellK%cHpWVhޤUUA p^6}޽ԇ'2Ê ENV !2B< c֤Z'oCPd+5T 33{UŐ; ׫B,eAݴwkatز–sn=p8T  k눲Gp t*oXϾ#>]:>G=,@JnK R7[nW&dAU;3wTeb }S3!Dm?r QIc%aBv+ 'P4l%LO.i= 潋T^qBؘ*) ?tŚK#J8+RJ/!rsV)m'D[w7Q@@R_Wg*sGA^'fKdS/}'ddY]~R`0C_m!]#=X^ZEwpF/R6׿lΒIPt+wuCQ?ԻRηow`ׅ R/ğ͜}V<.!lvJ"ܻ=cJ'Kt=~}M +1JٞOc}@9xYh9~jػz[DeH03{WdzUwwU wu < 샘a;{WFH@d e3?֒vO;aFf-%a΃T%(_MLׅX J_PV'pw5@JnK RW[2,П?p`恪lB woo-膄{|!*yX@7B{n~6J `&fy.i ݥ^ɟ[pjV3tE0êtm`}sETTDIp5TT >d rs)/VB-EU $Ten+3:{9a%UpU/1/Bŋu>xbGJ̝/^$R}/^BX<$ anGaUl.`"f&@^׵8`V 8‡C;?Lt~'@y  $D){x (/!fG&J"D[Q<Ig*I"|(YT8 *]l*fj!_ Vb/b0  ".Wo~Ub'EȄ-g,V#o<кO Fmn" κ7!,"U "x#gݧ2[^wXF{ t̑Tn T"]vQ- y}/VbT]pώ({+dk|Sf MvLDhWpo2K ؑZnH=fW2Ւ1y ]*7QսEj›1Ҍ7ch}]|3&B}ۥ's1S蓔,ԎQu/<]NEs$lw?9a包LVJvbs=Ml$)}bŽN_Gn;?>)#BW 5g9-'e=Q!F(0b{JNQ*Pe:v }S  k`s̓8pP0?͢e+20GVWVw ao١>$e/.EBBVV-gK,g%ƴa v(n;=]Ι#Ca9!4HB#-ʇߎIqFˆLTƘ)yB`$[40%xTv<1@!R;F2(ĕA!Xt.!|SId(lǘā)$>IÑPg43-N8߶2'EI3̀R=03p _|Gx B 3ՖEZ507aЪمH;%M43pI3#43p#4Hbf!3 \B@|H%P3@o_ ,OFSEusD@*>>0w'Q~u#/ NmszH >G(F 7"BzH0$$<9"aD-> z&II?b*Z$zH%0=gx#VM_ IR +X7oM?%h)CM_m"e~)w'SƦ:M_W5}ׁ T^ZkVw^yV>l{T'i#x2(ަ5 $9y;>G_\?ǿǿ[.Wm {jߞg.o%MuuNtao7+ OCMPTVAIS+e2d骎Gbcλ5輷MXrY`s%̥| ýd@{~tޅ|;o blWfї[A*us%iWtɅ--])>J;uLl !xҮ{7/˓ %1*ռ_K$M[ZTba,UnĽɐ&+℘Na;eF5dĪD|;4Hwf~ޭO)lw*\QUvi n!Ja/dޕSU!}NSTϘzoy +H~}Ԩ ݂sTm ]'wA܇ {7Y>Κotw3ݾ+墿gד6:|mc.re o׻sl{G{z۴zJ8'iٜ5%/9UeeR;i3^Yy,}Ϡ2Oְ`84)Q~!O|-+e-q+CAfnE?˄9J(:pņo~V9SmFIOo7{׿m޽y_v^Z ЧB{tD Y?KTDKxKu_W'l߽{L;^~eTC1+Aˣ2{ ʆrRR^͝sd~a*P gm< 12IF:W.m+O-W#nw(m Ajsx0lC*[;tֶGszLe"RU0b_TyTv Јփ tZ+1 +>'o5eR}FZG)i&>Cힻog{P[6쾧W6ܝ!K88 ˆ`YlsOnI {O[KuIok_~%v͘EC1X-†V%`ߔDr`̪2_¢Vmjy5{tn*fXY-ހ{ vN}B*{LJJڿ'UZ+ZbY>WÇ, L/2%̀ҧd9 A؛!]z{ At`d]:wt>z{RۓҚۓ092xH; 6 ARU >z{.t vZ &Bl7Ť@a?(bNܟ#B8'9C[o;(PxEhP[U%X[oUkaQ%З,ݔ@^)S-E/$ vfeRhaXGV}M[aI<TlT]hž';{Vb/6^BLz>x_e3H'S?yy- aUls+-D;36KySXiZ{c.eΙ`4O3WFoV׍hAxкC cyߏ [&f_B1B.[^c֘6f+xj>R05ZǢ*iěTܘ{_izW1aU?QJa6VR@ɞ&?>{<HY{U>i}u(UzM;ò"2{wIQ,lMy?~EU4d6 3 <]/@_J_\/rOyQp<7s?; _iV RVW{1GRmdK ߥB[VՖoڢ>,n>O%U0o2p_?~~eTr }evE DW=6ap{)XHl'AM(C lt?RG.AKq'd# u,# zeloS*tF{=B J%P~#([tQ i{5t 8VbVb='GPvsu"_9^Bx w.>{)X[ٳ)=ZДݪv ͣ04%qE<*u&Д+MhJ‹65UweK:uӔ Ie(ςBfJU~6uTboD%t9# y Hئ]Uւ*wN\p!q>?3Y2 rIYXaB̲2?37亸MYZa+JDZSC%%#Ek&@zGЪO}БD S]왃Ce ktq!PE?@^yYׅеϵ|v-·#uCeZax^}&Nrbwa›ɐJ RpB(zod:` -GJP5mnZrF&["sD̕U po#ffK'~],pw. p^{vQXMgTU5G%Rͺ (^B_k"*I>߅Q%3zi6/$%qw*rC4ڧ m c[e{~Hw% |9oO<NU*fm//鬆u=WGOɇ-aΎ=mO%dܾaE%Y?xrek߅~֎mvizLsl=ToU1 -r9&R⦃oM'"H.eT l ˷>D0j7G2V6NA k˒Q\'~v~cOvӊQ9oV8y:9}Yb.ux}oJasYMxn3$:9i[uŴƃ7j=!sadF E>\ ޼Pƒ S?oxqس,LfEXV**rD+kNa_r ֡D }HiW՚*8QMH6jjMk^ŭm5l1ehMs,ؖ-俵w'RЍ_a3B12Ul*m"mvX6)el@HjYEtXџ{AQ\8ttz `y)|&;um>Z77+W =@18m@4O]>]JiTx}<]$#mzF1&-ua]e HɨH[[7"r/ Haf\D?Q)[>жEdI"¼$cb/a5G>;u}C}Fnhej#0+pإd?iLeJ~]hy|Z&J%uO(* ޖQfh^U@Aa(]6EY6> UeY8J=vz0bߏيTS1 HRo-& mxۅlJP68Y^/>_}B8I5fNm{۫½5KItmeW< So7R %L#D:S6ߧ`[ښ9aerlmHSI˿l {3GI+AI#oɚG VksrgT==uT[te!H遝K('DsVu3Ws{=lut|hrYN<Ȭ:؄ᎀwH-6{7;պE )lի|%t#`l6 Y9M걥z֣K57}Jg{ K!AeasOԪXmAdARvu) ǫ:UǕ- RrBt.0nznOh}ۺ9sK.dV8 r *B [E)sE?ͻKM7R+sW$EDr-첓N-?%^$:mW.iW]C8Q<G}`mYH@>BWJI\}}_ל-jt0 ABt왤/웲}Fж9{y؈Y`fȳ؍_=)CRwXZV֊5 i{@q(洩wta诀M$0̔oQsCrZlԿ$AR*"եS&"-e$п.ANJHΆ#fU|&JXL\U2Qx ڼl%SiQ7cjx* 7a&r*8@& B?T>EyGwY;;.JTSwVlP܀9 |zwO(9is_8'iα0r '4᠘Ӗq{N\H. k9]}#11@ s.TԍRi>gঽCdk`kDIJK+zȥp…ER2c}w鱿66m6"l[b淓t9KY>ˣJAGbiR4Ӿ:-|MU+1 tU`W~\YL-*W_'WiaUb׀ 4U76me7B~yeeeb^vyB0Km k$bpZ}HےG*l~T.ʹgeabQ@Wv=I%5$.!R⑭U_~ e]% m%'@<,JVb=cQowSBQPi7%C jW,,Mofҧw T@HX d/ Ɂ] ȼ_@XY{"!x;`嶘@^(X o\JT BRz+}rQHB`-O,hCHjjuSH#C4HbL?3EXY|BHBғBHz>Dͤ'>)$=Bғ($=urHOƐ䯑ZBn=_@l3} }z.XJfH_B=|H(J Sj}* _?f_/T- Ѕ5st~X$íL:5|'8*C4%qXXW\)JS$/JmAamU2w(Bu7Sp@W%̶:7p$ I=VS;T?,/a~iԊR+J)[Gi7OHA;yGyOb}$Œ1Nrs< 1~PdyA,ǮSFT:* SRcA^J VGU Y\Kع{j۬Mx+(}A >.7R5nH}( ;o8at%+sNOيl| # +vedH 3T!|\UVA,C]i!5'yIϸ tgd7Bl)eWbFbSG#UœYa9uЬ$jbfrn&!F"JfGyxٍُ%/_ǒ(Y1QhsS3 QcOUbsM)$FŷJ…dhﱴ鼚LLڌ{"Ů'vgaShXevA>Cf~X0WDZK|9<0Ss.lUid]XkbfkBzTd숴2@nCCR>sbC{T@>%6EY sNa`؈Y L`B ۢD~ EQA-ʣa#sO3Bp,g+lC Й Vf[U@f~PՙIӊj 37Tu ;>}C݆~@uEps}8ê63^ѵHK2Z(PU?_vF؈Y`oucZmh~ fh5eʋMvJx&x؇ROhB3 0x %K`5鞰*~[kGj}VI57H[v>Jg"(r4Uk%U UgJ{~w~'@T͇ UM+|;@buR=Fl.K͏Ll1\tI{@dT,-wH+ \ 5:~'ױY!BmaYRanB˯1Ď(7訣2L,U 3tYbP{ ؍ڻ>cP{chŦWceuML`&ٍvnB,&e+$ekCEr>~D+T$PukUVt&ŪL)IV)-{CRR1kÿ`XMi_׷ I> -SW\B}l⎙-E~BH$4R&s%JlGM3Jr/i\uДTR#8EhJ$\c;.^^vcB@A"fJuF!m]dѶGj*LQʟ?)ROIl\pIʘb+@#{7Ec*+8e&lPW:b{UfTǏHA*X?% y41~çPL)Yp9GWXEj/M3D}⩑}m DQIma܌l!CƇQ疊}Auf<X*r9sHЙ 6f~U\e;򰴵2Mٯ_)fc+US͞O*ݕS?ڨ @xL*CGjv-Q8º5[u`~~{%|Ď׫-頰ū:Ԗ+kj:>UyPj+V bGA<ȶIfY'Ub >ahC}% y1䉇!OMҕB>HBT@fC*{ؑ-)lB'B@ y"B^!I|< y !I|X\(ΠNN%47_ó?ҺmТ淏 ́'c,%Ϙz2_~xv2`iX0L!<_ʮQ akG)/pۉxX6\i %E{-A]QO?\#̾?< 0w} Imda*%1aTh5X`OT ]ՃM1qϯhF[=P!cUo1 &2o;ꞵQRpj$jUOa#2bU lvf(QVHsmJEUHݟiXh%f.mPDF\ J> Q y~ ~"gY@e =A*OY3,g!OY3,#?Ys@t0,E? pc*an4B-Y+,-G ._~PiYlMsXlwiq$7嬐T) 3?P2J n(x{o"6bؙ9%xkDϗ,EժpNVy*;qN;/]2;x;qN\!5x')7^ݕU[ruWsg6a,J/OEkꢿ QENA>/2Ln"ׄה-Y \~^=1+_3 )'4ҳ%<Jr z\9blY:;‹]DWH׉@p,ÙðtIY(x@55;$c[gJg7}kߠa() N~FsvCa63?;SDmVjP-3;+E#@Bi;\V+'^zÎ5kJ3@ D ;eV焜Pr.VR. 2 >A#>gkeʕ]Uda"eTnZj-$,k`n*JMWZreWYT!RQ-hvD* b@IHEᘤͭZ\TG-"ue߉T$(p(ҝ_jF*6A*:kt 2 ٦8kh}Ljg~gX|I@NcĶg5Ps8Va__sdvR+ rcWO#A(>iW#RP+#-R?kƈv#Jk<>u(02 Dqߏ < WUfAV2aBna|>h(4Dóú >#F+0qG;+OZPIb6 px YaWOh0UTg>ର3P`\37uP~qU^*<|&F8]Uk/Vcc*IhYVjI]ݾWw~9.NV{ q9BIѕ5ޤ >.5ewl쀲Ñ+Ӡ6gmU +ٻ_>%EWe!\A3tB(1)0N̑={&u>2\R O` C0[oW3TtOQH3>QL$";K9]dhV9DDUHܖGoL73=9^%H"E;J~!dp#ZtY DF3C,D+W 3^a+xD+I7+MO/ e}!%Ǖ6 |  ~rie.ĥ8#>Έp{XKE m8jxB~rie.KjZĥR&+si%.Ue#Oupb(KkɥjD~/A'.]y..RZ\$ K# Keå5-/B V9Q?r8b +9+ wT{~u2z̃4ORMѕWx~~)U ]{!BGrhJ^\Ye<<&g.MK'&\Ksib.MK'&4}rib.MK'&4}rib.M̥41&\Ksi\KSɥ41&\KSɥ41&4}rib.MK. ?Ic &y?p0(Lb*'MGF1,"s}Q"\Dxsm.bHs}q*; &f5 (Uo yx Lƀ}Hdv|9&Q01&&1}cbbL'1&$F xQ[*݄I&طD) G Qѥ8ռU^h !xl 5жԾ5<"OL̃ yPS',(G|r"g}0`GWBm6J+S)ZUۢ "wpȵ| w? dp Vx8O-ٙ\v Εw!,6ܰd|S},)KLVtY I%p8VRp}m6k9YXDa}7 OVӡ,f [tZ 5MZj1 1w'O֗AP4ρ5| Mw> \ `DM:dZ XsaxV YaI)-_iIi:HII{؅XlI++ W 76`oMZCqDq{4R]5?yq>'Y8y4Xpg=]G]u9u o[Px*>%ף›X8 F%}h7%sk-j_ bu7+ߞw¥uW-jЌwy3,xo_{'ƹ8 ǯppǹb+ƹL6/{ ڛ̿_{ "ۀ|ao[뾇7ze0al^H//=JEsffƸMB1t *E!W:꩔pu;t7 +7ܣSl8,'=Y#Jd? W|};!U9*,Haz6S Phѽ%8!t)pWEW y77:Z62z3WrotPtvdQsJz|q[oux:0 R,}qe(`%\!/ !UG?|:.OG[%yu\ -u/TTsyjRtdӓ_)XO;/Gƶ0lP5+(@/S;H>W>6-_ Œ(.P<kj܌H`Icf.IP7DѾMGi)e-7uÊpJ|\&ZZn[Q '<_$A#X %+p^?w A\huwtzy{+{qݭNcP ꭗnӓ%XM`ˤ|+!S[}5,oc?),]*RADPx QH/f`ܺ{!%n%*6߶Op'@HΫ?U"dή:&ǂ-?0LPh HlQ( $e !e||_ws M8IY[c1Ɔ-z+SFIY|8_'+OvR+`4] jPG\*$e '~I`>Spp$5돩R:QD @w%Cq'1m~Mq@3ROFUcrI3G*LVZx2`PvR̅hzIў a]ۤo7#AYM}l߰8Y+-_.%>@9 9 nQs-Vjf:0Nk<9V8Gz 5S8wxjfN~3 B˦<" b$sQ$'¹B$3Nľ{_DF++WvU=VR.\m'˓S&u*է=RvRD/.ۧijڛdj;JlÇ#ar0gX%!FF'=`A!eJ+F;LS[P ڋQ?VNemʣQ{A %XY$$V$|yܝx}3gEhOi/ne\MpǂP5-wRj ,= lDFY[RXIY`yH`acƮDcWqgh:ut*AL-C!e st.Vq(m>P:Q=*UBV.`B&پBюr.Vi*j0~%ڤ:bT{۪iĹv$=ER\m/])\ٕTf`lFIaX_}j%g&p Axewo!&P÷>lM\_>Fm]A(| zck= 511Fɢ$fdZpQ78AA0|LEDV_zggN]3fx 8b=x?N|!. <ѕ,Vͅ>Lhr?#f aS}=UKpjUH,]/?Z8BI;?pm'V!R_m2 B16JV mYF4TW=18Ƨժ8- {Ufp`W'ua&eJqL_>i\nh*ΓK <ΓKfFNldp3u:u l>V Wee_,OVƩoY+?ԡ 8Y γ*z*aIou:F)h5>-][Q8}B=QBO{ď])G =+:J+ZŴҴ ;Ff=k7 tꯒ+h1mզhPwmF)ߒi1H)rd® &g5D͠aS_Vݶ샖w;A>.Dx )c$V2QAroD;Mh?_9kb #}M`߉}#(ۂ%.j^/1 b<N l͐xH+ƌGI2U[f*.>0?lKRiEU0E)k";*Q Ϧt(22gv-LMhdjVRFf0rFW2WWO ~[IF Hۜ;/W`6(JN)(g]نXM!+?궫Y#\{V+nNjHss:^[^7Ժ_8PK^r8;L썋(IwNzЋc [3i~qĤek'eVPB|VlJʶLAmp_s'Wf>!̸Pplk'yasW`E&;m侂qix,`N"z;U`Mr۾.|XUH-(A.ȴګa!H`?VENiaw7߅]/X~bkeu[uϭ1\\w̺gOveJ$Ze*=om:x& bBwZVW5@J_bVh3xeWD>U™H'v,K{]Ma' Y_֗F>dD'f[2Yj'U!mX+M-*#N:;cw1_>*VZKV0Ɏ%t99pX<J E`vV2 tb卵V]Y)X31jxmcLLoڗՎ R|fR`}x|*RC]I!3j|)a08rGIRY ]N;*Vez1a. `Kol?-22raW۴ &ZTrnC㾟nFkW`U*K®2U4h1}@ *7(lwAJq,&=M @ hWNvrhщOB|4.fI2apH"m! fP|:TXn}L,kiUk[٫ ӄ?D+Cn2K5bcs }V'QqEs*|H Y2c;| U1AA,8QDXmt"#Iq!F {M{= F7B%v endstream endobj 9 0 obj 32513 endobj 10 0 obj <>/Contents 11 0 R >>endobj 11 0 obj <>stream xԽIe-V?/\(OZ`Ww.}`.$ErPk @!1S2\?~+џ__}____e˯JϰOc< |Or5 `2Rq%DD0-`posl jV` '|k*=>>4f@55jqt6@.&jQ ϳoʥo3ۡ׼Y~ Wn>`yj D( hqWKlD0n-`p0<06oME #x2S/xnϧ,mǡ.!/{f:gvj"/O:&m7և > \jqID+91W:P`(ϳ&dDPxEݡTĉ5 Pѩ3RK[6H*mj5EH `!$܎<67)Wuxܠ3 u@gpPOH[Si?꿭0_gam֤:͑uݚ)I*|@"P,MG\G:fJp 0 Uvg=珳ڋ]5v.[/ s<[xC!~h"8撤-qkP-l?j^" 㡈;~ڌEUD+=zqGD{ܓ0vm ,&l1|<FybuiA6CXVm[c:1QC+!UevK0 d}M4d-aq na<4e+~ڪ8 "1V~66EV]c. Ou+l\L"C\j(gS!8b<-;dˁ![ ْdK-yl8Jq bژkC}eXz/{٪者=p5pM{/qlr k &}iB `Wa\y]_^^x^L6Jsm{x KGܙE~s+`MaeVlOͳt(6jHb+XF(6m;Y͕D79 Kp$'ɶK`q4mFc6ofBaMg]n&۬)[Mvxӧ<K؀gqθpavmwya6:t#x:'CNLґu-*roh}Ǒa &}`/G% Ȝ 9 g l.RRs{A>茆pLTY  ~Mmbjܯ j*vʵ0 a:Kd:'aL'E5ɼfq&gW"Zac\մ6uu&)]1t!^+>RY3 O\Uh+> qmP vҶyV(=caP<,S`&e]_c9nsp L鹙3݁ɑhRp$ژ츾?jܺm4Ʊt:PO$֣QM֓U#xx;S:vI(G[ΩtK~NHy19bqcטA☠m`#:+ 0N>Cˡ3Jrt@9TvN C'n9$hg2:`Q.lcrF8: ^mh/hqHlCOB\nݦyVf?\Nr״D$yMOmW ںԴ1nO3Hml7Y-KU3&[/}z%q:gD q}P5lΨBd?t`@}[I@GHtA`ρchlKHN[,7EȱaK`elY UVu5r.9MִP[ŕͧ0W\9" Xxea}O ۧ8eḹXu.z\3k+]啢tJ?*~'9z<W^60(1eكp4;s~0Ǜk`al)p]/(U˭KBp1J+-sFe$-dlmˮ`$Q7W);gf (NxkgU NU⠋!rAU ψuzYm!@''`NμM}A'^q/3:#a_s7{Qs:_1!hQ_12ѪAȪU߄h| MAW p!Y^tߟ V-XGO?"܁X.L]ZZi+ @Y-Fyu}; Xo2 25n. kQ:rp}8;;cbsZh@ɲwD 2$g[,b{r/`g,rm<6 -1i- )qԐF; ,d%qX4[Wwڪ{>\&W$l/ yPF&j#Yj%7!:Yx{ MHAc.hB+5GiSP{qxڔz@,m =vzS`eAcv%6$yطz|k(@*72f}Xv;듨8d==Ď RF; ,%yZUa{Hbw y^rƒ i,b@\6;9T{ǞRcєU'>= e~*YnZ/Hڲﻊ >.hBrWG2lDhBR}⇪~Arn!!6A ﮎ/} :^Y&҄lZ3(&y5z6?+h3k e$pk]cC֑cʲv ^'_>eL1gL,|l@@<7d{X|PEK]UZrVx10,;k+b;|^evԏ Sw>/ZϋTb_ ħy1ϋ>?/6?/y=]KJ0?/Z~%D]Pْ}/K'Q$e 'm}>n`Ԁ+Y•f?*\?"# UM06.X >U~p27L@ f 4;.v=~Y57TB)P;ƴZf6ɽG+@L`i舖/ sm[%^4Wps5*5w!o!%a~s]^:ps!xj(rd( sWxbp!B9\jب+fo-6ůiB4A8XU)D+P)c#74]{(WH elٹ \lX 0SqD9d{hǞ|aL~ qT}>U氞@+Izvhmw/[&vbկ|e6?X:#C?W\+@. wջ>%sX=X m↵kՔ8r Qo_ ե:ֽh.%ҙM`Yp@K!JHߚ\ZZ߸\|IKs3u6"Eu&9,3ܑx*\ \X^w{/lкfm*Æ>TʀC("d7{`%,K6;Z4 @\^ 3+9<3 X_ Ni*6/,׎47FX`՟~Y|;U5h|UW,dfs}tĭ4H,D 1.h =肠Cn.ad؟끋9A]9XXdia拦CP}jHܣ,yuDȬA(V$g D}0OUb*֫ `Khq+Wˁ 0fE \,G Wd^b2K?X:/i㌁&x.)V$E*Ʃ;N]-՟l,XM%1C?Wͭ׀{KFoe:A Ф i%(i}1Vӫ2ZBۡ3(dH! sOcsE a2GE11ܣX5|A4LKAW ͓5{D3QżU$-1-8,hA@\3So59ܖt\Th׭zv! rvҁ`WXME3Ep{-jr[CƱ` ]ޯp-nia݀ͫz*8tU=hȩGED)sG@C8 5tnc 疷-m[,xm51m%O` -@kyZ̋- cיJfŖ['= -/B`D M\7yatڣ^k=\SتتتUm]}&;s4yGu^nU ٱ ^I`lN{cMW5Ytˁ.mʱ`+QGEg_1Z&o"=jUC]ٞ] &O<Tm@.>=6 F,0kqIM:<MYDGp`yli3M#~vG@mdnJau'3b-xBji]Ƕ늵)-@D 1|ƛv=65|,bOm6Hآ! kL(?"[7$i9fף5~j}|ǧVƗkUԄ+5~j-~j ?Zj>??????vjSkSkSkSkSkSSSSSVw~Ԅ.b|-LQzDGp;F=K$`| x.ɟո,a΁8 4 (X<0!VN=VZ'Rfm]y*=Ap}o[yPv(1s@:Dz:9ŠM=;S f袘؇f!n9!! ΨpF @pRUpb-^#w/+.IZ~k!^"|P"j6~ϫ zCj2..!`/\_gd]#J9~lvmnXcڷ v\FE1ڎѸ ڳPۇ.Q%4]-ҵZPחX=B%@.~>,B1qpqq_Ӹ8z!Z+Vs(\[pѥU]pndp)BBB s-{$SE&uM@Rt]ap SX"ˢt qҥJ\,|F;gsF;WsE;mzsF;mO7m:۴晞5yѷzgбD?Ek2XOpDXQy'9!qѧ\A_n#Ve8̋aEvr-YkLf3;dN1Yۙm29G! Nєc6R%4xD!r,B Rpz)Y@J@"/]́xU"@lg^[sk=\<.\L2tkగZ f粚rY CRv @ڌ[ۀd*??4ܽ"H=Czn!i?/Yś @LD}iܞH nc2iE^) #9@.81@k/kkmvg̙gU'j١^-W-g$*{,g$"{t K6Qh# #䚮F"3aUϪgtݰbr40AH Hp+Z2`3{\\'rZU5S T(xGQת֞cWc`E0f8\B]ho;BHMSANLI3ݩCesKZnÕ34YϐxD$oKw.&jc.m<3^a6]7y=}-lk[8 +/ccY4ŵ+uӓM7g:.R]/sHf`M:rGb@bmǏ(Y3U#[&L#Й h]e-6/;d3k `O}%~6P|jGwmV/'Lo,A=GX 0XۄH_ώ@b.ڱ_/;>fj<ŏ@B Wx4|Q'_ d._n]mG ߏW1SQ 7{cQm'M0.Dgvf]wITxFQÝ_p]7ޫbza-<>=d^jƖg pY d܃"&eaKEo*HȰ6sy62l)hl$#)" { n'T{fL<! 7^ka7q7Di @fZ8TganUr H\(" a^`ĦK>B*v| 8j=>vaBFE.X^]xҦ!q&X_ELCwkggX=3tQL֮fm ׾Flyh:~WBS{L׽߉TTa3xcI*%9mճ}!d'ZF\b9g-idnc^O7L}FQdvBr_Gs Zك`\5" a )/=|Aibgʲ݃UzXr@!/my= (Yk f MX=mPaLu}Nlfh @Pֶ;õ  P`?W S؅Z{ V st} }Fu޺9Wn)S utqZ7WKfnRȥ+y_1x-O`?BoaE<|""7l"_ ?_;Q9!펯\ހv,`8/Gi=2~p퉝+=p n9p|qq}1nXQz-!խ|ءK{"Na ;,Oh1.\5,5O/b V 6 dvR#M)@ RD!@eԜ'U;)ж^/6i'e@,p]BUo <=կԀKxH6 ԅ<6E]0bx6b j|* akȅ3Sǒ]ڵB\(3(j\^b@s{2̡Ps`+X`ghHBd3܉r! ǂƴp@ O?kQ #Q?rDm>~c$6'<ۖGÝ񎇃CkNx8Bjx8@ߗwZs9kxqDŽBej\Wε>QK_`eQsAm5@tb? U.ɨ|0]y.$ӽEC3?X82}[i <3Nnvh 4sf52AtUz.)$>ABv RJ6|İ WU ҃&*7}c8g:ܐ@,;ec~(;fo•..=܁qǯ@uAtRt ȧx #݅\]Mޮk{`g6tcKgtewQx/ʭerqG[yuD/kwYp( ?W)#~_ujNǧxD5ef $KG K/.!Ҭ.vՖqpAױC/}.obkpy@5˻h]s\ߧ|_[ͭŪ}w8&% Z˵`1yMg,/5]s z)0kc0CM;tR;GMYMLl5=PZЫ6[ؖ|} .0a駵hWm` 5]WM?UӅj@" ;`;q ߁ 1pƀρb띆NZ@Ol}+.m.xߖ+:К 3VM53mpMlK-G=~0-Z4ݲUU݋$obⱃ]r}uZX՝lɈ Z)@ljfޯ9|qh .[E~Iط]: \VWK xK ]kd0W}U^.]#]9r-U> k(ĪH K?J0/b+D pDfۥX" ` >Ebvw;[>JS fhbs%5~T}=Qg;NsgMa{ O?=8O ^si_}>}!S~q'4O #U8<1P4ɒ!զ~l4Cs|<ج,IB;0CWx:ukb.o&jNꛮur<wzz#*@0tGHܣ=݉ݯj1WybRD=ӝx;\)vlK4N+–qp%3GO't+ 5pYoh h Fh+  V--04[02[00[e d+ V0 [aQ'/2JhUkg}O^$G¼c[K݀W[46.k!6Z2j,](Q>4 >: ?W%о>.>j}bE|GgE&dw]CFCK<0FP I CqT,s F$XGVɴqFkuT|@R; ֋?/*?N*R ?plCF'.(p%ߩR'd2O VmS✒[IőNÙ₞lXPd.MqcT25NKonKϘ`KRWɍc;ͮ(zx\.zU͎Q#dbMǁz!&  >4aNӰJ=@l'Mw;ɟ]U>=bbwg,wn"%%@^ ,c׀kQe W1(-CZ!"pd7 pTz2كe{8\h&$Bl\܅J*Db;L( "#>z^z6m`bUBp#y7+ņ'P%Zdb^e#v^Bl3[RbJki iJ. bYB75֛i喭b?K58P9'4 Au)=.`r3.HW2yz Yp&;XvVCGAQY/^G+|nhUHCg̮kFg̮]s f8cv͘]?OD=]`hUHuwNNؽF5m=0{; 8?_r IIWv"ykB^#Ȯ6Ѵ #T[fO,L|K_>|\+G|5/^x*G\zD/)+#edFÙ 6ROq%H)Fʷ5iH@N{+׻/޸ x9-E0]xG|HYUt% ]'ũ{|)kGl)PlĩACs.@@BΜĉ0Fj$m}Z\P.ڛ{at ^ʬ̉2[_յ2?kNVhW(uhEM8,t ŇŲh.9a$B) e݆m@&l?" ]]x/tg pF'vӉXtLTzq]tW6,;hY,Ķ1SmaID9%Df |=;IcUBx;->ڙEþ^}UY^#Ǧ,ꇖL=XZ4,>+JSѢGVkYc@Q74@Hqc@J߽"SsAmLiRS ep_y V`9Q?%⨜ 7=l,"GFJ\l qyƅH kZڵaK,X*GQ_X~l;ryw /;Lk?R|}O`1PômhaDy3C` y1oRx[ y3C޼Ӽoy1o\1%5ox?Г*7u^7̓uu 7ݗy{< 6yI7*P?@!3G6-NBWjr=HiW5[4~` RM2e즋5@HK6.IKz0\@fiOĘ@;MK+1|H/1Rڋڢ `ym4Kc l%X 5bˋmnbmZs ȖŠ$B̘~PE='Q Q?GϚXW3ۉv a=~e-][g#%y71}3CwV&Cʹ_}yF5b= |0K~G&Ԡ]rCx5|H8U`_Z'a5} -MO+ eślM] [p7ebCqFoz1X{y#DֽM%B]-TB/G@|̋x'FozTyٞ6(m-M^⾽!8+V7-ty@]~ ZBupdb_g8"E/ Vfi}XR(Z!i_1KMG1h{D3t]œ,O;ۯi힯G=, wLN2a]j+ }DjybP|d-ˊ (휘)p8 HV(sV"Bܢ5(Lےo;r\~E쐈A)/0˘ ab?׵`m+Zn- nU -PpT qAQ7kDڄ9n\u`EdB* rs]?@OZD[ lfH<,gրkM=I+z=3KO_32=!z=o+# Zx#k*pN/tt}nB 3lQTkFXZX3N4bpFĽU5V7;BƧ@$$;B3lkK ֖;Qf[j0/K-/ޘsBk77WnX(1׷r~k+d/4eple-p G)3.&j#.lt@Ft+畲8=EzEc..MTM\ȹxW{\XXX"ھlή~}qW.>SfsE;Wsvq_\~MsU*|0*kΏm<Ţi + 1#6{L,4hLƦ 3M_!\܊%KD8 ך.prsEo[X8b%=e6#GHn&^)ȉC+k ~YОo5 vOD6|Fn8aU TU{Ulkbm,Lߕ w.+G.ͨ5^5 !Fp]c5\@_k<$\7dîc;ݟѭPÀ[@tx %lؼb7~F Wp_Vp_t(.H z,-hϷoH{0XHo} W# {$$V F^3|s_ }qфzriF!gO$Z+7:\]>M$)ҳL>7g["4?e !?攐8)~ y @\љ=^$_R:X5빫H;Bt z¢@pWi =jFHZ!KITН>]W =u;sk &`bOE%BLש`~ߗ4i>mƁЌ+p#!"o O[\J賕#+<Bl TtQ</Ȅ_ǹ:5IMEAo /QEI!+ڌ2(X{ +\U9sr t#˱NJ8vDDA %xjWޓ yP{ >.ĞKcD:W{mz؏ĀӀS.Y剭GNXq!D 5詥)]O}B˝O`~ }01IAwkKn޴rict?3竿"-\ j zLSF龫eл>M=w=Eet0 ְXd#|C-óH'\gE]$@WӾIKdژK@TV~{}h''Zוv 0 6nzbrFlЮye, ` g ĺ8%y89_i4llLf{~.b೒^hA2ajã!<<pb8Jt{7yQ *,b&'EB잹 wk4+\c*8; H!Nlp9$^q4%(&Eg:uƻ5WVWvu{\S^6va=' y(Mc(t4F5QEUHbNh9s W3A~cbKg,.{~=#q*4R?>R#cbu[2rJ+@s[2gT1y+]pWLW;%\k\4zbY-Z([JLf^{]{ uMC, +~8&t_Mg=AEp7Q!4gߍA~ =gI ,!i]n-s.3eG] :&q!ޠsz̲N}~$zX"g:}tGNwYxnc>t8uM1k,DYGw!uNB+U,:aH^_!7vGvt!3Z?Scm. ^9Cs^}ɓhWs礞/DS a5yv6345} 4b)8–t^Y߄3.ڊr:z4-BmHU Z%l2~[x)vU0S{!-dYz@zp{7i~b#.Pp|/@1jTw#r蝉+,'7LucOC}'RF`{q1FXigO,Ymiq4{-=xYf.zh%ةdM`B\sϢ@,@ kCGU[̷e~gp̷" ` M|R$'J Ogg[١|AUg|g*5T`b'dv'0 ܑn=wzHcCuuu߉odp-W-\ꛮփ}],岰7 k5f}'x]a1yYfrY$yu4 ^Pl׽Ph82ڔ`X1;܆:Ψ@Fvлt^[T (P 6 byzZXjgaGMEK Zr2nX6L6;BE@"8x.62ݔ|{$pW -F܇5g!dԼ8^'tpr\Dæhlt2VRggS};)%]HMMh:c,O1n i7uJFy>Ð|b|@&_ ˉ{G7)sS UshρAvy<XU<ɈzCK_49\^\k,#cLKǻX-3d9ؙe~,Y%Y%ؙe IƲ4_p?nR^= Q@$ouB~۹D:ٛuDvYbw1p hBC"&IXk 0ўiўiўў~s09<ڸB{yvBjݸþRITz')[ZHkJb"Qt_+BzЏj q=O?xOr ^nE(;UMAEsNS=1.%3K#T?]Ǥ6܏0N2Z'@?yaEJ5vb#c}UbV %vCB)| uIO'ٕF@UC<Ȍ()ܥ_\.0GESo,HMJ5_ibRH)A{an~G,S|paQIsvKYVY{mpF1 9 -P&yI@~RVZ6o`.8{&\%aNŠZG%mIDbu REsE~- ѽ*3Ub1og@uV aM>)W{6`G겋Bn3A.k7.֥۱xZ xz<6NfiubN޽um>qa X#5:D)!tډK!"H '*eȷB{v#,, ̧JsC!g.;HcKO}i-p}+Q~pyvyz=r&I7 Lj]ށ@/pDe.' x°`vvvty%<}<~dF)+.?E9F,bdb17S'vOm}#P2ԉ.[ֿx׎VABH**|J\/X^\f~С2Xq5qR0?Z }|+@ \w䙿V'>'c[ن3(Hl f袘ZUs34g݊[40ٚ`bs bCn-Xӷ16n2yMk8g|0f&}@,I_Ssv!{yДo8 (!Qzbnv{x3@0؃p fF`n7W -<_Y(}b/X ;2V,ia}u_ E&47ԋB`ӷۃy=0\%oܶy~}=7Ϲ2<CvI]m"Kwvؠans;9풽|o wJo5 "@A'0dR®/Ōhh.8Yvu>Yi2Y\|s!k¢Ģג&z zWP9ER'}+ U ZE',ұX,kt?x-otWJG@H<󬠟hx !z[oާ_k|d1 'z-o(גE`gv`^^.أz^ A&"G楄$sF(l8^~ŀk*kO`  T|B?)L$a !7{]pQ%NUĩ0AF* i;~R XvHKI'<)́'Ov.J5#BX| )MدC?0F|O˙d1#S'XNGoj[18da-BKMk݋^Dp]9cWDlӢsVvX7ܩSh yv @Uf PsZC퍋-?dI#Q+8J CBӀjOBT]hdP̿8%'k6*xj !XaPʁ Z(j-޸]^^h끅xN2ӹ=RZ+Mi1d.j*薗lOmjX[UL'.̕Z)sZT _OrKɽU4o[tU!e̦AxzR&[lOFE=ĪbO qOœ 6.#Bڠl .y,J@j%AW =j0/R1ۛ }>;nhGxɔ >%6r 硞^k fh8A倀`ݨwzՄ4#)(Ė5GXB,E~VM!Ѝ On <v,EI!%V 7kǞ9'q{vkx4|~$aeZF/_\?H)))uʗ/o4B*JTba_枕Z˗ʅNiZo@[; )U VSm?T%Sׇw !>Td-B؟,g ] RN/IR ﮟSjg66Ө/ W1<6cap rwIC?*'x*~Ǻϐ} !iTt>bvv1dtms$OXwߧ\t7`X9+*׻^g/N9ƻ-@}:L61 zzO3}"sϿ6? ȍjpqE!CuAgDYV-7"9&z)8tf}[.;_a7c%G!ɳĆ$sta?6]hx]ot"u3Z ),"pug!xlA~nQ9Üz|kӤHPCN=]/j wKx 0 R&M/0@Yӥ b fCܬ.kx mPٷ[.躱ޑ8<Lj9DrVHu`X< MB}ʬyyWAbA ߱2EڤPdIѹºQtfK2'ِ"wqhQ'WvR C\lrR(n%A5i1׈nHX".>ߟ W>4k*G$7V -ibYhB|PcևPmXy^nPEG<KJ j~>P&V ;N,mҡJ-aTi19Cg֠bUH.7w3yɮ[.7垗l"ԪBl$X]=*eςXW [rؠ\`cƢ:wɲxzAl]> }m!37ոwBX?RVdPRmB7Tۂǰf*6!}MwiMHٍTDxUUFuL[~ Į,҃KV*J=Q}冰,XﻐϽ;1߃DI-E(dywVR* poա"T ˁVwQ'GC_MuU)ׇdleKK bk"sip3Żşء-طf(a"Z ȩ=U3i {Tdn9}r2lX1?mRR=rJXTCE?&Dk1U3x,) +\TibV&1cͿs04~+pGpwsO1kݮP1͜8"S-Y㪘qU]uTiDى![M!-7YhpiI&| C/ 2ДBp7;_2/KQQ[4,,0ObθEX(anwSz%*{L5 Z.:gLMNbV0{㲯]fwj?E\ f\9QL̜YTFE?#|l[mwk.VUT! q <&Ɵ}j)vq}7"Q$̅EIa|V#c% >jJuSm$7P͠w5?o!tH`*zZ@UGn!"N54xo[SdN wZE*&a=GsQgp ,@gG< |k! GLժ+;cꚡ6$0w/{+x[>7f(JEp i2F4TLOX,)=Usaj b (ڛkd6rk#kKÝ8!Ľ nRc T[s>cf*¿.f[d(XnB謱T3]0-3{WKDؙs݅GYf$S׾GELrTw87KfyU {%!)5ȌnGX aHB-,dy=u3eջ:$&A*@3Z@XoMl&1 BQU+Laƣ!)lnV4BZWLYu ڄWki6AJBM[MjBf(J !vҕYW+motg!wffQl<V-DM'jϘ  1 LT=Q3C9(e+϶6{J}uJx50N%mP8:Yx{w v@Qϒ+;2DQ]G1ߪ1!AtL1i&EY7}n0SK+)ͅlS/ՍUw8w7!cfUh e4"[fa*f{=|ؓl7yO(-23WmJ([ -'YFpXaC+2+1cokC\[j  %c! ֨BzvL!V۸ AH89PhQ!7! i,D K, T% * D q_rCC6a|Yb?l8H nB4L&do l%+ -|pR;@E!em?"cj,ۤ_1F͔UR- =N(I?x<)!d憢n`BsՀt6[cQ x6T1ߧ\9ɔyg?&D!:)4HĶ4$!#Ę~uB8enBoOlXY{ ;v&}3%^>YRXH\͛lH|+A%'omޔX1 Q:,c'/~V29/l${@TK|@WyU츖WmBm T%{vN"&} fM`)~̶X`̙E%ݦD J.*%^6 j]B$@̩,)S&%aJ| RarG %,rVGfdE77ռAA (MVj`k[̕I+1t}-!%rT&)%H괐 4$T΅=w`YKS._Alf+_v3L,\9У: Ě̜QdUGuGh%cEʄT[SdDa4is8]0{~2kY?I?zE5-a5XJ̞(`L|4j$>*PдbDŽU}M3H%6|w ^ϴ&74_cgWuqHXF=7ȿ ??< endstream endobj 12 0 obj 31041 endobj 13 0 obj <>/Contents 14 0 R >>endobj 14 0 obj <>stream xԽI%ɲ%6U>oV@S_B> $j4iT^zGNӾL˟Ώ#??ҟego}.~Qt돯py8 yOJĝ<|@"P$O#V °'.%42 :y #lĘ+RL#c37oOq2c-p[V~`5J*Na,e RL#cm#goߜ1_6jf|G8e`mOAx@pJԁRRU) +FZA?Gά%ټfFš}9V,r9{@P >`Z=)g.%ˠ[_5g^l>| X?>-|_5%,r9|ѽC㩗(ZCeԭ|/ڿ,^\ ooާ0; !4!yf>¹ Me?]g#K=hWa,Ւe RL#cmt`~?>#ḾHR2DREr`8yDM5h21lN`k/Lܮe0Ztuem+1 %LF+RO>ʗy_ήe+3fyDZ;њO|`O'jKդ` ƊauX(y͙1{n; B2kEL$=/zL Fe61Ñp ό$ 8 OI` ƁaTXQw~?^!3z \&xTOj:R:e% ӌwSi;Nȓ9W~O]}Rpǭ>o]PDZ!gN5Vzbz-gfdb.2fx@ #,ZEc>#gXR!lO` 52?G%ɼ/ϣťrz 1p'B>FF rjRB6kʌkj Y̸áoM}${2G0hhS ƶZ ~\z%vޕptόE]3(3|u ,r9cT W킪ƆehǤ`vk,5&hח{yeedFf'[:S4yg\ > NFRGR֙\)V|מsjA%w-^.% ֘ 9D@ c)jwymCtό#fFKk\UfBZ2Bˀhkծ{QLJ@Y+[y$6HfU$i=ǃ׈+w6H*{ #)2Qg}8a%-Rq52?G$?9_QrIp \ȴB{3wZӚ֍ޥtZ Z^XPXJ ; ˜I 0 ~y-96km 4b87-%x ED/H>C $K!Y,nRB~/)!3ՓhQWQ' A7Ejx0ʉ}Q+h罃~?cf~^s5'}Y<3 _7f;P2ZD ]_/__XD6oC=٦: OgjYtxѳM̏^}.P 3VLhí(i{hk;R mDqԎcMD(|<< 8=ARɇξQ dRp >P=lnWfh{;|{|s?g` T sݷ0$52?v^(@aJkJ1b3Q?UfH9!Yԗh!YNG}Ί $˱&R %L~^sf6,N 8ٷ´t}6%zy }UΦDi}6L{)U9a }k&S\ ŠImZΙ3NEX}F;&mP&F_}` Vi\RǼ?,9dZ$ |R~N`m`p |N.ʞU+R514k5qU~^Ze\$-ָ2{XHȳY[ti=Qpx|j<;]h%R}}^mo,3yJpQ&!6`ۑhmGu¶)6a(5Y|v)j u/ fqg}sO cgnŗ~~'mdTF )qbNHЬ(_܃o|Ɛ6q|m,qn׆^$pn*7`}w' vl]0ț V2?=m34]͹, aw7KW8o޴lV4=/`wO>0I¦?-Φ4a_oaߤF 6#US+}~o |WTN*LUojXJQ4ZY൅ RL#AFR(y mfcX{^gùߺKK}h`-ߴrT1 5,`x aQ + k`o5Oz>:. Hc Е{̯\b`  kHoަZqj: Ga:(0lDaXAil:mz52^2$. p&(%G$s' (L]/p)]?dJH>Vb [<<>@kdx5|  0NռgX_u`dpr`nT}E+( U<,`ihs`fS`ƛp{+gX[r0o{s֙ٞCvϙ.okfVV&U'LCDP%TQ°&\-tE ʑ {+hwD\1.N2f˨!.mL#b1/t_,mR"?XRUs_ q?j%HAC3h:pUlǴ"/P'tJm膣(tRW;{#) V2כiWpHy%=[4j GRG ^K=>U\ӾǂX@g'}9 +}6R5 NcpmMh1a{X[jyNqRvbʁy柿Ϗ_LL>6j 6 66ȼv;Ϳ2',/ͿJ5/Hsr#|HdžJRsi-NpM"6kt(SٳaIvE[ Q  E{Jh^֛T>u;ܳ>;u#\SekKW-^3w[s:C Jjԁi5zig6/5b4~ wI7v},%(DLD%ct <3nOj/w#-] Cޑp.p&`\ $Omf][=$ ][[vfK@0ޤ|`?ß"k"V;٘֠KIoJl0|):E!LYعW$sӱ\t+v?_f>)*f^W:1v :\۵bO7 Ξ'TRPjR5cBA阱Eg'1_> ,"_;0%pA՗[%>3=R`̋Ղ{cI;q 8\1w`T}E8R`MW$VuriOZY酧JGUwKӵtmͣ ~EbtidKoJl0W$JNPFJF䬁_+>v@xf9pf4zbqfH? עDo  7(BXo: :-o) 5sH(/w;0@!e ?ܰٱĿFb'K|r"{'R4trjzc?3ȇ)*)ıG;0 "h^[{YkU'v&,=CҴoy&RWբ$$$K5.G;J殨Q2a*í,e]MoJfJް C.' =fh+ |R% ]3وi Wl۶3u>nvH[jRփ{iBY鐸܁\D/ѢY2؁UY giq-xëgOz.n9[-Ht%x-H Qpy!9n+) ` 4ǴxEj6w=$ZaHnQ| i"fJ|PEN7گ!K/3}ڡje ( 2l|F/eA/>и쳔1?>;nPi}^ e!\3IJH>C, [ nc٧?>R*e+Z8'^ B %f(vQ3E*B8 +y:`ٸNmj  GfQU`krH7z; 9@s@b99%U3 0k EnL5N.9jm-TfzpKU*Ob<)|+)D-u9:~,$P&8RMG(8}hF\Ec;;U6H42<>5q6 : 3̍#)03`jdte<7TJm߮udr;C#\FhK!G'KtKd\/eP6[-9|A$RZDAބ:@VЏ|kd+A, Oz 9%CTUύ` |H඗Cw c|/ePti);N,sf% I̔y9Кaΐ2|v_Ӂ7ᩲG;1SCD:}ڸ49QXQM sKiY ^W @A'a*i6< U2X)l3Y՜GT5!g Xj2o@)K mI·VWR ::w%;$f[X)#tK<hś ¢[v`@lS=z yOPe%W &8AMˑ nPY_}P#Rb;CS}Ǫa'{J 8f(-L{,x %,!6G3CW`l+ .qѽjbƂ:Ϯ6ǂG\ZIN90MIr]K'ftoFmbx}ܡuja 7jMSTܿM=O' n!PhكN9PMh&꫉eK#6pM4ϨK e \JT!=T\*j.йzF6Eᴄ O0摃ѣݯH?yw`Gvt~& vJ-:Gh푤GFv->2$8{;:oE^/*>1R?u]]r^͋k !3$˔zȬNWfӾJ`^i_); >m=|ߋBzn0MfqRӢ+b%x@ix} ";FWdVY:tХ[cW$NCίH@j@[.\U,b;Toͻ3RzS۰e 6Y54"UM#<,)03\Wp-`tT,-/b4yˁ2Ub\+=Bunu/e^6Y[7,'\k;eOEۭq­G#̉RԞ s4,,sdetZB\fdG`=IE{[`㣁pIǧO j' 8AU3-RBl~RX{_ l`dQUEC_Fp!el((pEh5U_I9Mx51#*G\sT«TA VR=[MuLJh2ܤlfӿ/v^n.>GB(ve<2:rY~Ʊ:7mS;W (̶ 9ϖ6ͅw+~k6Fmdt6C7 _X=wI#S f4A_q2T;d"{'wFj02H= *9_ ;ePG }/#ԷČ&mb~bGvȊboX]'Zё> ۓf uVڔjڕ0!bں b ƕ["Gs(Ve@+4M#N7@a ӅU13?+q c:@&zVX,O.ӍO%\KotomM32?]mS4HR4/](詡mUxˆϳ;(-o &ƶU4pUж6~?m%W^ڡmemΡmmU=9m-k[5@3OՖ?}R6)Ϫ}F@ qKRU ^6؞j؞02_!y hbG;طjb{4z :K{ʋIޞ*,0tIB=U8ezv%9Jwx1= Q&)ޡT!؞7d-`ht6+rPz4T WY{AtFm؞j,' 7ҞMסԊ@WZt8R^.N2Ӫ1`w0դFZC?G=+^Yc6iE).g D9MeP 쀽B8dv,q&e ﶃT:3G Thl+22:;P%mb;w;,#ށw`, w`Xxg~F6 w;b+&vG<=bIe=}fJmR.Qߦ'dtt0vXwS  O.^YÞsY)ⰻcp4qr^LhSg鎏?/]ٯ@`PL^"bf+a ]3{o? ./B`3hљy503<- mfm#t@/}_II6WkDg(~1BX3t:R:vǦ]\e#O͖!YZ|/Wt< (EP*š@%gT;evFx 2STpS-6[;RŢ].XmY^?"l CМ>a[rY!p7;oٺr(y RMF)f;WV{@6}[,Lv>Ȗk ^A CQ i6A:͍sg+/JU;ȗ) _.;N}eU˪=s,qLs(lvSºMT7%4%v1CyX(ݾ,R}I\\nqlF?%erm.zVy#"z K*jf_5?̜yv7R%E?v#%d_Gs`j'g>:p)!\sn'Rxj40**C#3{ *H Bަjv 6񋁶4,afE # ޒ*1jǫݯH?8У6 3WJߗ`(<4+"#f.G;0[&R[ǟ 'E!3[a6T\RQV L޶ \wP ^G(~ y<biֹ+rG`Y@k e)RM>Ѩ:RL#cδ' 3=^~,>V}C޴'ݣ.)!|HXr(u,`<Lg* gtK{ fqqX1<ך( f`fT0UHYIV"8;j 1]+̶";d7^$2 wc'wP\3@zt£J"vG;+@16۔Ǒ&RҶ+te@3CW>~|~l%s@iaN(eyBNo=9{ ׯCwcވQxSbàf6ڪ r Ƶ"^sB*YM6/0@OT *v!́gȲ!gP9$-Ud ^f|uf 3\;A[aйrџ.BMn }[Te.#D`dQ3wJ?#чGlc=##@_ pjCfb + \F], Dw&;]e.Sad^Q3p̰D {Z~xE Q{TX4`@CqÚ eRlbnOv>333+R N:.1)=) ={Nx:BX pcs۔|hq4]@niܟ"쁙bfV+|<*h?V94{RlvU UhWYo)Ru{P Oٴ5<_Oy/0,J>ɪf92l- _W$DQ٤_ Vçla0P-5S3sdIB {OZC,Pp펚lC0S`ri-!>4am9Hn# 72ۦxWd_eb[`f"soVfVvw)CXԚ^@Y):5e@jFӤޕ)l#J[jW" \uUHM%7-4}bkexl!;玹`s50 }vዥ }a;@kEm:*5Gm}Z}JvHR<[py>Mi+<ô76JEBh'pm:߯m,X/wި7gڸ ۜBHhI\nvszWT &VkpB[0hꈰX082j=>v=@MƁ ];aAf!O{Ӭ)JBv,KJ ]a e<%@Ѹ(>c81}4}> ԰io->ILdxJ%(<5sY1D0%~>I-gN~*ޞp&yX. sU"ڝR鳼JaɛPv^!!;Sb8Pk\XSsVHMu2[Y ھbZEvk,I9*ɯұs@٫kgAVR 9bf?X[lxLW爇ti}.mA9[pyÌ|pX1dSB>l#"1C><9S&|(/x@'>t w8]糗 Ord^i@Hcs’#QU>eBsS&W>lFuCIiGR' m1jkp9̻gIݴy}~u+e;wPR; 2[`K R9+2Ul]<>IQp3'{H!@ho+@wEqRpB>0ڪ\@+VR߇iRWOI!^CMBt ng,MB鄹ih7 7 QrnxMI}ԍN;F 7 Qu7 ˁ<\$pPG~Yq/*q`pgřWg:U`-q.4R}5D %!&6,Y"e9mhӸ]1$N,/2 %+)%PKHiBdId}F  ’R(Y)r(Yd!5E`Eܳf^:4n$~7D-B**)KYN8_CvHAGNPvXN\x~%mm KkpH?]v4vvgdw(;u#f:ۯFteXXi XDȣ`hpTj:zsޱ-vu_{-}x!Ժ0|Jz-}:uGTb}}!VQµ,FSFꇬڦ'9#仦vX{CNgfX#3PH>Ew|\ o%i% j!*MCHTۋTDx@vlQjud|1 L*GU`\fܿנE H-d9owF*GU`?v5u}-Z+ h`^!)TAp!Z |N'54)V NV)ް;gXrkxMSlXe룦Sz meK7mmKk7uyX !Hy"nCv{/ C>g(*4Rf;GwTc=gܿj7URX93;GwTc>'1vhXGoW+nk7e㎵лvM8Hw8R$$8H8H8Hq p p    }R|F6R8Hq  1@u v ga踧0 x?C30TmtUpݸv7P;;>seW|Bp72o?f<]c"\R[un8{y]Ry7Ԇؑ38KjY>66J9R=aJ1"ܘ ~afF`fh v_!ȣ<[q\PI J ([R(h;%V3a|vר*8;$u6 Y3Ev3V>53h/>"\leF5Cx͗IEE'|RuKg T3F3JT/OΦ~ -ah 0HoBcj/CA9n!ik̅h-MO!+l3069Qr{>>2~Ȫ(||C-HQyН44([LhgQ5w?N,#uZDC "PDwr{;Km%kYxkk=w)oC=aCtz t*kw Rk=Xd_4y! T4G'3gt7?3+. ; W7*gőf/as _5+Q5Ֆc0<~nl@SUΫou真9ӎ96MiEz>!BO5?#L-"A_lRf;`xp`fޏEg34C8@A,=@l4i1ݍ&}~ ~= H“A^ĩwCn!Gvf.!gc)mg-^~zpQ}f2t/Fc VaA`4Нb(ВXmY GAVHlaQ尕,v]:%6vǣ- Smt;Pj9 +J&XjE"7]Ӿ%rAdžhjb„-]J)lPRL,W :'$ʛLܣq)"U2-h+i`vfa yz903tU v2ʲB@|M6kk1vLk1~kuMXr\;&׊5LRu.9僒o76xs^u<ɽ¾] wߎG}$^dz? tCkbX o.xϾ|f- T0!xMnG5LGtcY̫g5Rdz`5: >2EsԊ&ӡ ĉ΋@>}s|?;cQMLx>)gdz !2 ?ޖUa7NX%01僩fZ_G=RV2زTCe)eb2}V.&U`KR+3視GvF9o)N)LHYL#eKar){_A(K5 }8g`yz90T ՟R 엑r8oH50Q`j5brɵbr\;&׊5br\?ص亇%׎ɵcr\N˄WU=+nᐉj?0FPFᪿNѬN-}Q!<SmRYSH)6~N ۞İ厱hv3`d Je=$?:$D=gadnQ3S`fX#sY1ڽSͪ à\jyM`lap$no}9`H-@voE{ -03\ g'[< $; H-`QC adQHQ=%Z|e '33W)T_cPJnZVQ索Vc]ˇS^A*\V c]˛?ZeۻۏVؚuBڽ]N6Ft)R5HO2} ҒB]: s ~X)@ˁ_27#9uϧY s-BKs` 9UωXmEzN=)TIڀLk!́GU=snMLhT]jr`n?9e@\?9t7@K 32@[Kf{]"p-xK;}A Mk[j&h. $|vC?~xg{|rs˒mP=[M|,wl1U:c7ErY6K)Oct+BV`qdUhT4eM9/#8_v#0lkâ5Ñ㣳ؕ&.^B@H߸fU;0[Y?7eVy|K3@.&'%aC譔o)[z8l[*T \AV/ zz :z@/fμuѪLB"X3+a6;[f>k~Do[JhjL1Ě9>FQvuJ!=n!~];b%:%ooŠ> ·˞'"^D*xʔQ䔤EMV6< paJz ˻FwV;@8UJb}!5;`\XwSFt!iv^J `J4α}65"p|y84MR.׮%6c!{(1QU_ZxT.HkRJo~)8f3g ~o?RJR6=;zR:J #_@bIOY\:ЖDi+p?  r6=# 8b6u8ݓ!mTb896-F)-ފc )t(5Uym̸SXAϩB>a ̳U vpq `:Ȅd/&ͧ)z !z`o pFf,0@޶d˚@R;dM,W ' E!et++0)wFX}%+z|+~˛B[V7&Tگf=zkRpЍf809xQ/~!ŐjOkH(J""Uck#3{YՎ6,ڋ-kbA㟘\Z mX$l Z 3 #`-8VyJpF-CF:7o$tai#NKU!Fh@@%S5J׾lY_rܿϷ>ҵd"*^H^*FF: n ^@OpzpTw׮p(>b)<~*MEHh^g>:a jp;1g035")̞ `L{8`9 L. @r5,O\ PVǝhq+4f$`1(; ):C]NNG 2aʡvD5.K=0{z0PI JF@ip6'$׃nzp?j?ԃîaV3ԃs^gPL^/ Z+>wʪԃq3|N)m*A X{(!v_!RaimIi\*#u.XBK)@8K^ U70d;/吘R7 `Uhh@y~7%oIVIUJ2c7CmoRڛ ^I$R˥*DJr{Ϋ|)4AP_r0h3 #16<o Ƹ xV󦩪'N0c: sH)QJ5YǂǑsT!8G6h2?nj..*QhS t^`!70o#r LnhcajAT9dCNBGG503XbQcS}~J/ r)铢-C5/S5OBX /w8R_@ZMᩁ޹Uu+/<j^uyn}auЦys!g>e^rbuOA?h1EivX+ 'KJ W$`\nSM@/ XCrIKu~ΈHD%q50bmU0V-]\`QP%]׎PR߇iRw XW)GƢ:M-AS Ts=D=exik8/ݱXr~Wk#@Fؼy 9H |tugb<NMgxøHYVkR@#cQ ^dq$>) RHp5 ͻ>NS@Z?cE85ӘYFIUp3y]8Pӕ7tVuG>)Ay:mRb qI$ZN*30j׼V*3h'ZNOcP?)|MI7% O[\e!m3\$iEmDYjFf^LC=fΓyFQM&b g`T"F41Mۄn`#=]JMl/{e 8r]ʹHe V=B.3@[%gF慪n5zs#dL܌&RjBs U xe>'T _F+EZ!poB(J zXwִxz9`.fe{ds!dSپNNdp;iѳ`Yݏ%.Uh7jZhVܼU8^γ*{=Uգ!kV2Bdf:P9,3f|Ui+{J?tp~.sZ{'.!Td3ThȟVrR>0z L-.U X+CI JT$C}!aŐAG&^!z)Jxo1o۴m?tC?UWV*V,o tvk6O_qXP8S` úLuǥ g>:%\t28F 5o&1jRh~lNmDXsORW0 ?L||Y+^yWRv1:UBV0v3Th^}Fny V*+%ZP]䪐 ][g|JhՄ,=j4ISOvjfziD d{#ireNw Uf {'ٔU{R Vb]ՙUk`b\Uk]gwpM*{aiK+\J` mhIR[gQ(5!CyAQ w٦v]FU1B:%ϣĚ|^R6 *ΔplovI)8.3u&2CItdX (CvE{:` kdg ۻr:E6[1\1c#󊪘X|CR͚N57C.hN 0N>6= `=U1vphn&m/G, +t/:njcºnI#U|VSGw \xZϸĚ~=M =m*Bw @zjgFܢXYaˁSUhS?SN[o%YI`rHyr,@i!b;f;x[Ja!pʽUbbXޖ-qa |E-\BFmP"~+AP_9gI=/^1tdAm\R;fwBo{@nwRq*TD)0רFC&t[5e+4 G7< )=F>ғ4p]<ф/q)J)?(u>o1Cx:'|NB)^܆RfVZp?} uka ̹XK FTrBsx%[JM$|T@gTS_!3aMПv[Ӡ?RUzҬ]汝RMh gf%]503oi`DkT^s{;דgCx2_RBMf^ W3?S5xa~ 9~>-2`,3{cقz_#uܗuf ^s%U-]IA<;5-dGoa E qnJ߇E;Іp&Szy` A1Z9 6uRR'cҖe siIJ>^bo/S %hӷGLQCG 2bmO_ɡ\iׁ6VG#hPUY y>aS H@o] wsz*d@( G 3] O x &&B۞*.Jj $ $8]R&3dqݥOHi l?&='18@la0[FUel!ܓ, J6zͧs`lmf\_]e˳QnKj%N?r5ivnڦr1=K ⥞`LmUVmb \캓h!\ (jؐ(׃y]=&,Y֮Âv~ΰs¾>E`=+l\sOK{CMs.as^Ozcʷz۞)(棼<٪ݍ-7Zp7jp7jp7Ƶ3N -'{ @|]kE,ert,A8Y]*-̞\ f+#hC@|` ` EјYGT".p*J8r΁RcLِ331\AՌّs_v-9c -\+ង)+cJzK^8TA9}R c?A_: ޒ8T'\mdNMA&!\Ky< `&%0',vٌh2W$@ OHKG!sQ%5~5/!Rkv>C[7@yLP\atJf15Oo_r*O I%C(|kxs5"ph`b5ī˺7 otڑ܏{7O@-ǯPJ1qO5|Vڠ=B3H1D)%s];K~SGc0FTݻlѥ}بQxj/Y走JUI 0OHJT2Q_jhH)6fN;|aA/A5ߪ$!%IUfm4-%ht{NK)GtN1k lrK!"˩v6 sbu#󎪈p&BA弫-&aF ߥ5tj}B) XQ٬~誮9M 3-5 f:'i8pT qm Qab cMҶEv 1O&B+->UaՐBMwF`J(oҭ9%//.\'TTej@?W.)K/pkmaz '^l]p*p{mzrrMmڕ,]ji(N8!Cjñ8cq*wq*oIlY1Dgng6V,]*fCgqhѽo \ɕ 9h krOrzNi$/)ɄBhɄ#k |N\z tz j-Zx i'a&~Xu2=loGaO㴀@m2J)(})e2=@/ɂ\j<| Z GyT|+F5aEJFupe;J`?Φ#zE:WstjGu(*a'U4CN1Y :jG5Jha+QC i>`(K8 pn<]4X#fG~Y$:Be~%QA|k.ߵ<3P}d` wT1PբCOo0ݭBx^` iR | C驊g|FG_n`A}נ^9oK,>Eк7uw5`wg+Ub_%6}i`&Oɦo/hήFmx^ݟΐ<!jݻQjMHNyS/*uR/b&unJqrwy Q^q !mЌ"=VHNzZ;z' J'i91/&!FF>V\|/u7H{ !Q8!^Cxe4 B.Up p *6T}֯K[Q$="8'RVoRp<lb>obnQ1Cۼ~w4/b $g6bV.2BviRE*PD}*z3x@3*QKQP˯Ar3cTR{-&Jp&;F!3QZ`#f!JalT<}ZQl!mUM~AY=iT ;SHS f๐ya10U| M5S!`1R[+|6*u_o#i^͎!fS ԺYSfZK V\>xPON(?k̥R"k][έ[/$۰Ps2 B Yu&տY' -)bVVN:9^[k؈Ya}ag΢yVsg:mӒoQPj9VLn͍z"|cc {G)B9J_d^qpD52seQ+sSk>kQ/MN[5RS]JM᮵f‡(aH_ ^S(8`$pGKc4ƌrx,0V!xj0Ϗ+B!oczMEϒ,PJ>BmV>B2q\chmB$I`NE̙|qrrSbcQ(.<!j4W#ϷZ2j61r_z_Vb+-+5w[}s+9pa @y(MT'` I"y?'܊玦VH1M &Sf §j .bTk*k[ <N:PjdCFB2#kT itsʛ&1)zx*̾4Q݄ۘ\̥Rwð&F++īuX"\3/dM\or)RiMkEWv@8"!(u"Z_QF&dWv5N{g6=ѩDHyOTfQ48}j03]奆QR-#M1(UB~y`ܠ9*`^,4gSy5lĬfa0sAQ wL?o5q&3V.Iln$&Rl5BcϛE6ڪՈujH+ΦuZ4֢yy|#Mu74nwƔ1rՃp3-aOT 7!WQ9HT1W)jp4bZ: 2Gœoh &‚Tglz~,DZb$f;X&pEȺ1}§9 [ l|Ⱥ$?CPj\A-DB(2c<5K l0Ƨ&C} *"|K=drP oU+~"zN#}̟RjpTe:Û|/m6)G$*dUp<6ۗr*>=Pƀ&% | `g&#,58.b4@f"f ͉}>iko/"ZE#+נ,$A-AvV܄$io@&d!(y{TYq*lp3JYq8Aݜ8Kn>d/M5  &dŌBV:-"`mXm,NA__mNYa@h;C1)l۴?@kT 䮫*%F4O;% ߻CU !3jO'$h52@S`1̨ |Όƶ.z`sA?ifɠL۟zHȪ,BrLC[/nkP# Zxj_ u) |t@~>*nX{0MIvvtJ:xaF bQ @-m1Ϸ<_߁!_v|j+ ^)|7&ǨWqW6 endstream endobj 15 0 obj 29916 endobj 16 0 obj <>stream GPL Ghostscript 8.64 () 2009-10-14T17:33:56+02:00 2009-10-14T17:33:56+02:00 \376\377\000P\000D\000F\000C\000r\000e\000a\000t\000o\000r\000 \000V\000e\000r\000s\000i\000o\000n\000 \0000\000.\0009\000.\0008 \376\377\000P\000P\000-\0007\0007\0007\376\377\000B\000l\000a\000c\000k() endstream endobj xref 0 17 0000000000 65536 f 0000000017 00000 n 0000000085 00000 n 0000000342 00000 n 0000000421 00000 n 0000000552 00000 n 0000009329 00000 n 0000009353 00000 n 0000009484 00000 n 0000042075 00000 n 0000042100 00000 n 0000042233 00000 n 0000073353 00000 n 0000073379 00000 n 0000073512 00000 n 0000103507 00000 n 0000103533 00000 n trailer <> startxref 105297 %%EOF base_dir/777/PSU2a.pdf0000755000000000000000000003215013034373374011440 0ustar %PDF-1.4 3 0 obj <> endobj xref 3 7 0000000016 00000 n 0000000528 00000 n 0000000712 00000 n 0000000872 00000 n 0000011564 00000 n 0000012616 00000 n 0000000589 00000 n trailer<] >> startxref 0 %%EOF 4 0 obj<> endobj 9 0 obj<

>stream xc```a``e T ,  h,Pi}_b. endstream endobj 5 0 obj<>>>/Contents 6 0 R/CropBox[0 0 612 792]/Rotate 0>> endobj 6 0 obj<>stream x=ٮ,m跜K[-3'q@<F;n}$n4U=`G&EDQw~2\]'wO~-iti8]p}oGLSji_>G>O~h[nv_k~yD퓿/p&@wA>S_}(s:O~]'qW.n^oW~LC:;7d,ύ,d%uGeI7dRIiϟ'NFXiqrWh>* ڣD .Od> :9 ͆J3pDVժK)W) bk&zj/cVV=A۴9 _){#-l?oц600%mيд2w'1zm5؜ kϠO~Ջ-v58ׄ;|~/x_]_NW S{ _)1ǯﳖ5d/}}6˷}51VȲ.SSfs6F30O (rκ~6 7 ;*h]?@%m;zϻ΍s{GKDb&NV5YC̖ކ+|g@i_ W岙|!]μc%v6՛s?f|f?B\n \Yv,t|k:x )z^z]8ڍ눏@Q 3zVbLS\1QiO_Lay_*qa@EV`G-XC\aA!&1 ym:聉ՑFׁ*zزez\0'^Y?8TC3:&1ua,|Y<3ĭ[Bh8<ӣ ;h83M WK~qAi.y =ծ'gT[ b8=J1{ .3Ȗbw: \lxt1akxEc'yOPÌyi)_S9IOP=#0\-QWPH7p J'aם,W\/%E %R(M^wrmj> =E)!UDpQx6 -T-CVJF8/=oPZ#QDp ]q-,:u vہN'J"<ʟ@2l~l\A%P#ϦZ:p)+z..#KzBT‡..}ÓR6yYD8RD֏إs.F$gS.ůs.pXr>Va[},a)֞*u5'”INPi7(X L|ǽKsD'-jӞ\KN0Q [H/ϡFG.> ~/񟀳VdLƲP@YPMj.SjNU}H!~&\u|`}[Ϻ#KAHMͪ,4/-IcľŽ)wmT*J.!c66 Nj|`!Mj fGf3Ԫæc%Rft86ccGZ[YwDs--F1uE{B˾+S_P^?ѿl_tQ'd86ɿ76seHp%> |-AA,0/ƛ!-f1< i1* `)j<58爸GD1+o뜛$t4F|B]^w#߾kSa я<zyi\9@8k ԉ\qE Mi8'{5^ɱSnbƐOhl eڽ'"+,,`+87U1XgnÓha6riBLUO'TC0SQ ZCgFIfW6QEP+.@"8e;.W|ctBrSU9n Tӆ&[ꖚk g$&Ԑo`Pc*wK0Yj^u`D،hM_uOo0ohnhB?IV!a$8ڂK8c]c[\1ށ)ѵzQA-x{)j5{o3$Eih rp[1qEm^U~Q‡B4qbE{ ]8RqQX!hKT#\7 e*"zWB"=[vxdN:s]PI5O fwDh\_-) }\T4uI q }L8 z=XO &/% }j:sѸlJHyw%q+Qh*-އhB@ESMSxCT+0C+M[퀆kD)SM*=a(zeqc5ۉn\&i,-4rjK.2~#-~Z[pFhW x'<3ux i<%_8s˦|`,-4r* r)pNMԔ{T.!ٺ6x sjBB-:1pZ#*Of'⬏`V3.[xgT!Qr!EAp+0bArƮ!BC(w˨fJe?F` nwr":PsmhFyo Y0pLESY&B>/B*_;9}-4ra &eHKP8+J,|\H*OkkQM֕`z]NB7D㄀; ɛHOiH 8vЙ4$+WӐU&{9T0&\ZD*3:ZD*3 V\MoWm0sk晤%6k$!OIQ3 3_[B/Ez~C>?X_[h$cw֫45pw;hjHތ@YviaiM\42a,;sWjb}OT٢qQ- s`5^ X09ȮASxi457I ASASxP(ܸزg d6W-hA 3'7p@?d]2 X1j; MmE>qpÃꪬD}WLӆ&d6>qg(Z?4^ &C(()˥8[\QclRw\& X W ;PzǼ5$ڦwB? #o<ÌH;^ob'#ٽ۷)MyXv|WQ2P~Fr8%qcXdD ѸՎYr~ґ H#T#Ԯۭ<'* (2Wv06) AU4׈fC قXmĶD|\{#Zz=n ;%ۗ0A4{c@o X0p0i;hjtC(Ҹ]W\K0'{ m^O?*'< Ny p 6aAobn˰BE@ٴt rʃ+vJ6X< ՕJIG<Q9u.4V+)]լrU-  e rQɃ*v5(̂Wj2iP'J1%ߋmo5U^iMJ$!$ h\Z@E[zzS~*SsӘB/}0HJy4 {g1&ʦT1!L >q1S\?B3rvO!Ad/Ⱦz Ȉoϵ&PMtij!$bg{H{Y 8N,c_?MƱs=%c0?KҘ19`JQcN@/dQvնes^ѿ7ZehQ)m6&nj *Vi:fɐ)1Ϝ?cvmɩXWKN0y~lI*hFdلRȺL` !5 zyc%K*Z?)Y,ƴӣ. m؍KXЛax&3x_^ >E4:|)<:RSJ@'̡@8@W,< HP{fP1mh: ۻnL8nNKœALDP 5Ps 2>G}hw>x(A.ʛ4Ovw`+P0B?C[*K![^<!JQ_<A8sIOlgULs,.2]\pp\tF*q6Я9ɝ-bl1kT* s+4w tž |^'}RUS (T O*`&F0jEDj48gI) zG3v>>]@C&`pEdNRP0aCv15 o+Ls7Uq{I5G#HB&QIDC(ao*`T$j3]| G~͜˰fHeV#\#BF`T,\\.$0T`0o# $ޟ8_h W<ԩ#b'I |Ԏ l)xQ(Ӕ?˽:*k9-\uV_rZcZVK.eʌ[OhyCQ;Q`na> hhA.(<P P]Te /R 1uS]Kb uiDTԲUUaE>Z;fF=<]W[rac;zP s$<%֕ %;}fb˅kt:#R^"D}o+RR 'j3p 5`;3ԴUmԪu|Bk g#fG'Șɟ'b!r&S~ f4L(mh3~ý`"k,+enZ)k c Sfqˀnҥب>z' RIT+P_u1q"PMQ5^`⾽ռT|[iEAkw(ܓor`ё}4/V 稬$.A#Sء!xJVRܾ]%cV6CVz:% yiS*)[S3Q'+CRKJJ{0JE56͠\X'"k Õ )Ғj]3)Iffw),8APԑMi}3 θ5C4'C J:pT4^UHN9?#iCހ<ڒG,zF9eϤ2I"~ԔQ7Y"ϱE5S`i"hޑ#Q1^Z ;m,;6+[/$A{t7dP*]S-^U+PEֶ^yy&%Q0pFuď3m-# 9ok8s#Լxp[鈋4 Yl:zZ^.>,(e\B_[RI=ΟP*voE-<%R>#Q i;7m]N`Ȼ1z)UȠ4u8{)m.s= b0!3p }qki(t`ܝHľ504V?v.j'/[cj)6qf? ]-wT>D#hݾo GI*`j;3VF ABGqJjzSȄ #E3o31(\|@PbV,ĆsRf+ 5Ԍk޳FS\a?(7FXv@@ ]C ֩ϋRTy:v%.w OֈFZb4QYӪUG-je?4׮TqtiSMuphM<vŸ& ArA۹sHBІ{.[HYS#ְL0en7g7]6wmvU-=MYITL$JG*Z@!RX0C43Ef벋*@@  sc !\>Í wS* b@n?3Ql]5+*e6CҚb0Zx`tt*T@z+2 *=3 ,pVWFG;j25;5ORbG4hg2pA[vLU{,s*F%p}bTp| Y`nݪKͺ/0_gL4nc]of< h?1mސZ AO]UոT/JBBgXJQ!஘@zR  Ӑ endstream endobj 7 0 obj<> endobj 8 0 obj<> endobj 1 0 obj<> endobj 2 0 obj<> endobj xref 0 3 0000000000 65535 f 0000012848 00000 n 0000013184 00000 n trailer<]>> startxref 173 %%EOF base_dir/777/PSUreg2.pdf0000755000000000000000000004335213034373425012000 0ustar %PDF-1.4 3 0 obj <> endobj xref 3 7 0000000016 00000 n 0000000528 00000 n 0000000712 00000 n 0000000872 00000 n 0000016294 00000 n 0000017346 00000 n 0000000589 00000 n trailer<<42645eb9f5f6b0d32ca5cf603439d1d5>] >> startxref 0 %%EOF 4 0 obj<> endobj 9 0 obj<

>stream xc```a``eG Y8ЄYa<U endstream endobj 5 0 obj<>>>/Contents 6 0 R/CropBox[0 0 612 792]/Rotate 0>> endobj 6 0 obj<>stream x}Kl9n澀ryoo /؆a xqcf\Ac_DDu2 MIA(JoԼ~OmZ?e,O/<__K3t>/_~}뗯en?/?fk|mۭϾRn.?[[OOçwFFTe_a߂hA+T4пt]w]ޏ/0_a}? ?en_~l1yz*}ŴOgL˘ԵsK_0Mi L}_L|zi]ESYsG MMBrl.ƕisP`4L4yqLݮs&b$K%&h'hL$ӣN!ӡwLAb[RYL7wMQ(7~v-˅J0[E(pY q)2YnTPb N 4h߆2 q?FEͣ/oYnTPzoRndnx3ڷ$nyQ@|A,}r؅ҍ9wіR^nýe^Depi[޵Bg J0D~k(K_0A@LNWRZ/ӈ^Y[ :q4~ߒ.וVfGdS:j#D+97Ũ}0mTӷ6_nmY,y 6>9xl~cd=+g9@QGhyOr$ہ0oQkϏͼ56u٤ "/^q9oeYD[˔dl Qɵr*4<\&w?"xhZ֎O%=/ّ]tA_9I_tq IhSsS8hYdpVɣoqQVd}۶c*U;A9RbG[MTy#)pI^DNסwARytڻZ\ɏy2 mt,},U#uE۴rns|9VXT4ҳ,r,pQ!HDnݨ.8ꃘ{|B\0%.&"\KǖP?R&-X0Mt׮Kҥ!& +h rIۖK;dbȎ2u}nᝎ"[+&r\ȓԳYH8rLfYEZ@dFdK۹Kh@g3|4WTUZV;r++y=3b!if UMk4M]eW4fN˴t4]v 6=x9Dmv]ӻ |6ՉS]=: 7 Sa}B"v yy8WSmpc]](jmٟܿ+v!|g'ɣa],iW$WHԀ"O# yHy ab4EiWa(N\c8x-*'5H-}#,[ h:pJȨr;LJ&N`jx Uɢl!طH/;O%x~(?^( 7#+nEP̯#93k?}ܳ+:=Jn5Lj?q)##isɡ0?i:0?v(B$g|E}vqKP^>z΋f;$-g Gg=gȿi%=mpl4E^iJ@>en܌/mz:>i&e |De &H:Ob4@/y iO> pVo'6 J>x@/Oongoy&5j1u~dx/GT>JBs< ˍJbDoI d#N#/9$Nj]Ey@ gQIlHp]^cZl,h:%˫$2%lyF{P%˫$ 檼Jhŵ<׼'L3#yOW"v\"D]>;,HͰT8{.߫;_zՌQj7x^thd !]jDG\*h lTAS Uv79;vβqM2܌ƴ.g/X*KEt4N-c(&Om7#Jڙ:7/%݌ʏ s31ymOW"/”ÂN=Êg*fZ!8eJy%Kd(栯'#{ߢT*?Y_zcW.J$qd0ډ e/S`1'%LsS'0LS)?LW8rx"ȿ0#/13aX%T 8 \O =pAR 4*280+sThbq4qE%G>bN%8 Y07 4Ucѩ"|J 8H" 0 zwDR18ҪqQTJ6nxQb9PڬTZJü?Amw?Osu ͠Rp.*E;Տx.QI|^)0此#Í pR+fi0R?f%28(⊜ nbȡF,s4sE1[' (kK%K Ͳ2h*yFa%nt㽊YD e9z;h"iX6r@!. .9MCaF45*qv J/a# [h a/Ln4Hx?)L6Ei a UH g>i wX0m[q)V5oYwxZ3\~<Y*mlz^ a<MƮTGj푞0ǖퟘ _횻$[?=8v+wM+,_@*>W&*^ٹk$5ʫAO5؞*n b#ɍx՜Ҷ,j.GEem~W_mN[CbX֖c;I7 BE;Ek mkH6Z~ș<% y1k EyZge$ߣgrczF*h0w]l"ϡ N<Q+'6dT"8I/+l:΁1tȤY/<,XGMNxͦcc7n|/WKzb&E3aP5w ]'Ͻk]TdO?t>ǮdetVB_F$*2:tfZQ1m+i5h6b0&Oޘ9l_+ߥK$kϼf$>W1^FlySƿs殔Kmi0"eDj`tTX`tl\f 1&!ꁚǓۭvtS2+O;jbqOҽh^4@󢮠)uMм+h E= ;Y9dz/dϙ0Dn|t}w;u By%))))^5M' 5Hkq2j>E9Lbko?_}]_6%=_m*F*zMUNOͤ'3?6+ka&75]Y*YڶOif*R󈣻&cj|䬛9#h e]%p82S%>i1ǒ{*F׋yĔ)ߑ!S9m-B\肕H2<:E96=ː ϯtJVs̽zeK}vw[[NdRt"gSHx]jKe^5(iXQ]L#Sa'>17Sb5;1ojn(@B[`VHO[O[]\ޕ蚠AĻF "i "FR[A Ly vM SA@ g65|=5r9 "GrV xSU7P 4dYc&y tM S\ '}Vp&ۃ9&̜R.ڏ %=5O17Z0贬Ǡ`g4@ OS Utxz X)$/NLsFٗP+޾n&gI}TJ{QK|37,4Pc2f59wb}r`!2z!7ny<ߛU`}IⳌxZma2s,͠A h<^b߆Yӥ?_R:%>4?( zƠt;IN/F3b@)ivX$o=*l*DԤsRq+3wk߬QGS5&)Y']`=\|]PĊK#](J+eڦ(`S^(Z*яQ4 :rz`_Ǐ} 1c]{ѸHgIMȕa&Gl]~kLS/}9f\ 0rMKWbv:VǠR"RA J 3^9} gQ $b*ȾL@ Jui z!ZAy,)BNa4(z}/<:?a aQ~*bض- K!Au4L:[aѥF `Yд RqYLpϱGpzGA޽pgyp&)E#۲CCNT)@M o3qd'º՘ϳ$1:p~(3lO٨25{L~G2qQ_C#1p?a>na(s-,qp$4qA2+Q_C  ɜ oj$:^h \ģ|(v*2L =gfCΤ xmԉTd=PMN+&:zhGg3 |XA@=uzImWw`# EKG3<xwJjqGZWWA'^_ӰxaY|׶Q؇TІLq1~*f7"{1 W*J="Gv85G)(t(۾"+*&N&Q@:ssb\1TYyI=9zOl9c7a[[$\+\@|R@I } ϾK8[}'-Nۘ6 2jL7v QqHxr xˇ5r]S:z4ϳ|CyCy>t6(ɩV |ОWEytW[!XX?pfc~4cv\.δn%9 :.&8>}z, %"i!ٍyy!q["tjo6fρ&'JZ\H8jj$}jFUd\+XVN䘝ifP)K9@!lK3pRɝIⰁˉad7V7Rce)ދcipbZa  bن݋Efrn"bgߗG@tX/jOE%(74^f0YSM8CfXOMa@kpqn7RѻkJPu5'&4Mkq55A9q>+)y.i Uf;o,CTP7.H_ܙn5Om\rRQҖȬnR/Wx( ۂV$ڄ]֭!UDdiF+>a Ьrȁ?ґ6*ҤEjCd'M Rp`_r%S: 耩b1r9Ο ;Ә$҆ӕa!l涕嘘?Y% lAƈ%_E.E1 k@a &Pmbɦ]+ " 8C'vCY]0#\i9f/w0/q$#<(H@zҬ06S ß: R 6 4zjuB2L]ϽNMAM8nr-H)pSB*_fPOmٙ-h خ(Qc$Apw{|<=8YMM~u+ xpWV<13,xϘF=_!kl`J ÅN-a.4r6Fsռ7:CI]K4bo=tKr/'V10z.^VmÅNi ņ72@ `G\EA,4 P^a%)U]6 NPAK2B8_)0\3Ey΢j"7i<8&/;.NϜwݑ2$;6_VS{HCQY+=QU\Wg :`(rQ" 541 H.? SD}v¢ r@L&TRhQ4g ɧsk7a|򎽇eP{x tw;GP LazQZՕY[tP%ӗfvP)RٕB꬈Mw (3ܨQn'/脃Z4f$>5eWpR tlF0#p|r{NqaƄnniYHkvk-**LńS+y9, G<`sFj68: (JLC%ǝू gg(ҜG"2HA>%U8:1 a-|oc: 0hK~(#4lWTFP`ܬ: r{4'+܄GŃ Rf➪E$Ei1C^uhf*kٻęma𬦲(Jbjɤ- 2DӜ )P;[ xMۜ]T mh[j[m!28lNOJm#u̷+aƌF͡:ʸx7WL^~JMhz& L+ȝ ^ =#ƫ xt ({{ fuK39+gfd8]R!tfM $5[ASX8uE,[B.A@IqnSw˩LLid g-Zn'wR>Z(plͽ;kђyG_pwѼ@qV8Q*lЃ|"mGHNuƌXcDݖ2+x cwpG`dxπ~S}l9m29<$$]Lwib3NɟðK UtGd7I\xIXiM.<|c QΧ''.u`)yA"4u1D1\RjƅR?d' ti"A#䍾ZE:R1B 3?T)^A'1‡mC8TC+*29d~ nQ5q6ndP LPoӟqP~IF`J0ZA#qcdfnD>@3`~ 4М6욽$x\sp *aW1R0͜K\0F*$ 63ߕfPOq4X*O Be}k+,W@9ů` a4(zyTrloMVK<3@NuƈM,GG `D*X%M )j`Ieɣӎ`>pgav8Q4'Gt ꑐV'Snp+ß#Hp4FS<pϘN)>;*lZEWGm,ZABPSGۥ?_smLxR/ Y&#mؙE- `)#MNA'F*lRaq{xsxf4SGS+8FyīTTN TJIدepWAŘW)`܊ %ZLr" g9LT:}p/`*rM&ͽ-@jEf䳂1H~Hn횓'f+(AT8i(x>)(k1E8çM3k:q;Ut8A-=B8''S<(?s$8J>w KpOM Z2[MQv `Q$vysyYnx]x3Ѱ<}G endstream endobj 7 0 obj<> endobj 8 0 obj<> endobj 1 0 obj<> endobj 2 0 obj<> endobj xref 0 3 0000000000 65535 f 0000017578 00000 n 0000017922 00000 n trailer<<42645eb9f5f6b0d32ca5cf603439d1d5>]>> startxref 173 %%EOF base_dir/777/PassBasic.pdf0000755000000000000000000012212013034373435012411 0ustar %PDF-1.4 3 0 obj <> endobj xref 3 11 0000000016 00000 n 0000000608 00000 n 0000000799 00000 n 0000000968 00000 n 0000009590 00000 n 0000010642 00000 n 0000011705 00000 n 0000011937 00000 n 0000012202 00000 n 0000041458 00000 n 0000000669 00000 n trailer<] >> startxref 0 %%EOF 4 0 obj<> endobj 13 0 obj<

>stream xc`````^20h`P Ϩ֖`( `S(9N endstream endobj 5 0 obj<>>>/Contents 6 0 R/CropBox[0 0 612 792]/Rotate 0>> endobj 6 0 obj<>stream x]A$m0%vT:$@N8 ۃ!uw7HG׬~ZR((7߿}ӝS?_?}W$-~9M?Oԟt97_}Wҟi8]j*N߾7?{RϵJri#,0(-,=>s tzwn"{7LN?(}w?7xRaڟr'џ@ Hģ?,KӥuI0G8 X ~2Yٰ`2™D ן \BkEwEqWk sxxWQ4-c<^Vc%N+"ӆ) KNVӦ1+Hi+tZ /wZ! u;:L:;-KNӊJ]iiCחzNK(įrU^v284q4tڵ6h0įN4fKgWCVc/lأa+wҵ)䫤^EYkV{QA޿jEbs 6m(4k#m5llѺ#[mb`˸gfזwYTJPtug\сMmh8aՊ-}?RTH?ty~<ǧJ%B==u1wߞe{9fz~G ɇ|; OC6O_?~ow×鈤U_glF1wf2-h(!_2O_~˟K&0?=orsb#'..P_=Ku^tO\%ןYf]7@t2JJ? (--h T|e^/QRm۾A?F e٬:a~sVjFoE GWͭua,iC pҗ26JMnwGy!YIyuWRܦWTR}V}TRTOY,7ٯW美W4/+LTH3h׷߀f.V.s@V2껩 jL L}Ysy\UWƍ8\AsE!2rԉw{+-">aG-DemXV𠉽Ԍ+ =i (}OCۨ0|f6ccV9~84.q)% NZϻB<,\V[C7HDEc` r$c=@CSt 8C[@CQ'-)/q #)~<(a1-q)P共R|= #oO|2r)x$c-Ⱥi SO ~,!99@QX'3ta].gIbAn ۑqc^)ZСlVUcX*WNɨBqz-m%Ԙn0*IH7ytg ?P'5$oOQR#DdRRZ˂v8xfu$'<[ShF.5c)nY锛{aKϺ15d]k!곒'+}$aCؑ_p Ə]^W q(|z`Z0;vfBKYHm̻[RXbj? MC7`yCtK5 ]ǗJZCTLڍiC -5HʝclZy'odg۽q\($f?ԍŋbd,\oPۊQ])62\F>Tѓ;|xɐ031u/u*>:h'#/7c)c%K@y*mf\3Q; #6<"y)E$ȭVrǒ1SfС bpH>y~D.;9I l|N\'QsSz-2a3+ɈΙF!ŧo{(1$sSH"m4uіf6Ռ;^>oWe-EG !4wH8nFr%=3$L+m1x4t(Y1y5zW1(y-hǚ iJ޳ДǷjʹ4d{=Q8ፏ&6cUhX1_50(/,)VpjIuevI)fnb"_R EmjVrxqNgQm^ m!2kBvQ#n+ސ۪"'頌gZ8X)mֻ|le:nXC<կT_Q5[ iq*8-'K#u^q9iG:M~3i 5!r=wlx_31ä-WFmne%@Ge1f,cOCi|HI5 pLC*Z)rP0Z@C{h Mi44g>|lʥօ<;Y~Pxřc(3Sܼ4סqtB3ν ZF'b4r-y|IA%#f5MR_xFE!(%ع)-I}y*@:֖b. SmmLynb)Q4oj۾,wJ0$|pԒHI1wJjfLL0@Sh*}Vb5I[+Ǻm4OL;`:RmG@_5#`Z}nG, LEW:'vCg>.u~d%bzM2RP&ZuzE\}o&h]ҖkM{#v7Mp 3<1b[Ֆαb80"e~bO1E A8CQb,AqC*#cZnkTw?o4p(2aػ;Nz57HvFxA vw66z|<$Z}taQt_ =,w3N3Y"j8QʩEg:?AHY- 'IΞ$#QȞ 1oGACdJWJݭ{{Y1hxo1]{1)cL3f&cH%RL)T#*df&@zbyJ ݺi_7 > [orAY(&@%%5#Û#?'R1A@-ށ<#vY˥ێrk5$=C@ƸcG΀Uyw"Ȩ4ܸ49DEkQk<1H-"WQ"K19+(RBL2FR+V2( 'ZRZGXUxwӶ×u{05$6DdB[dci+#R_']͠YY'] /$ LA3ҬeՊQ ji>&7$g26p qYm!3lB\pYrJzSc)=v?çu-mv;ЄN|F3@<i)MӔ 1"%͠ @o溭AZ jiŵ>~h, + uF)(RB`>`0Wb"bPK\JcT4/]V}`T ^}R_痎05ꙤLy]Rl/GI %xHqqmG \`dߕ9E ?&WP}zV8MO)r3M@$A٪AKa4b)HIVHъi(5#f Imx,]XiD!.ʛkv$ JjR rV+o,X>0ߡvW~̜ m_j?Ԧfv5x,^T =w'&PuM+ɮ*Zd첞,8UUJH^誔蠅NE- :HA@-c}@o}L ]۞COҕp ᾝ+1y=/&FRvn^_4qwa.q&E B>%I+Qhő2$,al@@R  .6ՠ ~Ve7DΔ(%L1l \+|SCh9e$_A @ ti3Tl} v\}-18VG"&?ϙ{)]ڶ^4A}t<]s1tp;Vx] D@- <%geC`c T-)Aq}(dRc ֝v#rN322wdU+< hqd#X$xR+ Yrκ̀mȴk:qL8GMs'x=bD{$bƵ4>#Jf4yA CkjR *jiD\UJqƉ)%\:(D.+˳y&rJ[;3(3I0+b)4;Gk{LtiؼvAš2ˬTEX)(jIJP3 8hJ)}ze3/y0q$)O@K2K1B22k2X>n㹮5,ż _Kp%}E2ږ<@Q%hoo^UdF:b[ˢϒR-$T"UJlsKqw 6nFK&6hXԴC($Dr6]*bP PK1\ի/G vY<<dH4oQC=) ;l4M[>ݢT* \gOJݚ=;QT!  w*wA!b&)]g wTA @ ^UVչov2v{_G]cb4,&+ńLb;*)͖qJi6~vT* cm7MDn&7귛ln6=kSUߪVuuaH@A)Wfojlŝ9Քر%Io+qL,ޡsW*m3:\o݆U$bf yU mH`*9XA#@-^m @ۋ qA! (2b 4R,+Zo0SPK 0Թ\c8ڮt{(Ѳ|d}-*CmZU$ɺ6t4;7}X 54 ^U"Da{ZՀ0I1ɉ4؉UD> endobj 8 0 obj<> endobj 9 0 obj<> endobj 10 0 obj<> endobj 11 0 obj<>stream xԽw`UU7Or{|{7&B@L]+bCcl( (XQGuT,˨cw&3޹+k[ Cр2c=#0QB3Lj7>HlB*MJGuc؞Ū)SZ{Ʉؽ .XϏ>㗳3~y XdޢO~o%@Ąd}\{ZgbzuE'8"UԴϟ30BP_,ڃ{H-?m?xp@UKpNXŸ#^Bȉ8aX4#~B]xr%!2d% ; d#;1㻎p\L1g(g֘c U0LJ D'|>I $cTW0MCFl9VH,,&G9d9> 'T9[7s{sy_G[jk*W4\~M#?r2<3iTNI)s.`1l-gYbңRƤNj#l1T4.?r9,8f;i a'.^IoS] Ӎe/NO~8{^ղ'9/ wTگ+;jJ50Yp 5+ժϾ]C ܰ-¥zv\tIpzG<'yZ%;>vbho~FՇ~jGW[{kx5Gm`**TXw^һk0?L-9_qŽ7M~3|rԷW\ mnXW[?mٷ=e?%ǽX<ȾykN~mmM?7V=7i'9s۽_cO/崙6>?NѝVyfǚsy*,+|` 6DG8W~껓EL29rdR&-9(t$l%0] ' z3ۙ3je:NGW0vRKxddI()JBDط*'n}yg<dž6 =$66?ӗ}Ѯ: prCpVe>N[>{S(NIW?Y#Zw޶{Pj-o(K4b*G%y[(~/+1,IE#/9qySZxd-m^tIf5x_N[o~oW_62+П>ꥦ'~yOWipڹ?Yw̅/}lwlW_b>[vwO$ 5Fo EMUѓn[s؊1^cvm)Ww-\1}\٠?Z{ij~OX_=u9vxh;M^*ԍ  SJaDt˫LꞺ+xo.m^bY:_w' xj;B{{NzsrQ3W$WejKZτ/=y}?`҇/?v17Vџ3 Tc7_O(zO׿=[W7햪y5>w:ZՒgZ/6Ǝlwn5?YΧϮ^;ck?}4h=~XW6%>~IWcwyrs:LgGePSע +w[+>8~yqa#/W7Jssnu_>L16ֿZOcs7-٫ɟuqnyy¹ d@>¥*VګoJI@h+&OJijz#J,ܶFQ%tPN3{cfQ0A Ä'*rȯ4o5\dҵT:]Et2Go36z탤+ZoXZ/W>z!UoǶ>w-ly+Og/%c^ck]:zׄ/>yR8{)cKw[3>s}<2^ܟ83/ǎ:䭻ow e_5)pj+4$3Vr%]3t_m,;nu{ʓ/8ܜ%[*]hƽ{|y5}7ODB&nUF8IEu򚓣7՝Y;\ .=:hW(,9jM,Yxq˗%(T)R8øpě =O_9#/ oxk ,ۿ+LNzG \xGߔ⧏u_[W^|e=}; ֤Ga<.{/_f+{Ԇ]v#M'ڽ=r읟Zz4zO]^~owԣo~3Ɇ;{gOz3,ղnꓖB'/jlNLu,uYuamu_u֬nzD <{SN~ՇZrg?vu{7Vw*wu`M_ɻxSz.l7yZo[uwwkfzAsq$Y;_5/"}S>«pnC KnhkgݚVwݴyܓn1nyFoiJ?>]Z_=kCU/O}~s{'t_gv^z^O_j o9ڒ ]=Kh8 <ǣV?J2lgqeJv_!wRGރ y) Oվk|w_6ƶoer!eMUa o1YDA WݸfD2>U#? '.Y}6-᧔\Nդә?¦fud4t~M];e~sYr߮:pW/--N{?7{uwI{~mc9Kc91:ng];l#Vj_h3}|͋*_c+v#CF˝alrO+8lN3T SF# *1g2QN >Fd> dL eRr&d2L<S *+sI1@!ȣLF'Bc4~rO ~MΊ%JEiݓX K`[ T1%ڃHD%""oDL$DBR"yW"' PQ* TE4_hA5]_DG zb5gb"P3Z8AuWG$PxA]?7zHK@$   #! h[%III4AroH)R &5 ͒%H/x:L+G:='d J@{A?&}dt :)}DfGy3|#ɂ҇:@2"d1%KJ#/dYd!YzYz49t> '.&'.!#ǒSAiwr 8xr: w d-LГY= z*Y[KN#AWqt59YC6N6%&9\zlri r :rzr%y*ՠ5Fr-dds5rb^BnTzlK+V+ɭW@}\C ^"]qz"z r3r?V@yr+y6d7sNytkYry t;ytz73$N4.Lir/y>SEЇˠA$W@!>J^/!%}7A o {۠Ow@"'O@!@%}_z}|"WeB%@_#NGM[d/mC}|WM#?#?!>//>H>&~BJRz|T~ϙ F%# >5#'#%229FYE~dT?1ПAw1Z_诌c,C~h1"pA^1|dx&9TH, Jl'r{>  GxP6WU]S+74G55n=v 'L2oG<=g uc/9vO:SWjמqYg睿a^t%˯򪫯v뮿ƛ|[o;ݵ}u}?C~ѿ>{|g}^|ʫ7|k>IG#¯dNc.dJ{*xre+xx3xG.pճ$alm`[-m.K2.+p Jƭw[wwm{TJ7u&'w-=zS&f6:V9ae}l}}ƾƾ[e~aJ%lR~7!nw#;ځWr}|2ҿ+AKw¾1r>};[;&M} Aղr1Y&|T,=zUG&Ylx2{E[,wq<ڧi'!u fd[w rƌfDo3L'& 0Xf3(Jk 3D~Ba&<2Lgf0G\lanfRff+s+fncng`dm]vfs7s0{ɵ}̃Cn&<<*QcO2O1O+ggj1 ̋K+̫kȟ+Lr'Nл }?a`dP (xzT0}g?ޞDd3=~"jZ:^> ܷN(F1O~/aD_COWh!~ l";V9X+5v O*%Y=^;vf-^ -BXHD!p<n鯍d1g07p523bnhb]d+uqq){&M0~1]Z[F uښ\6N%X4~vNfMF^ըUJ\&EBatx~O{{{00p@ 4E̜-B,ʶzءZ<.fڄ^\c]ws4Ţzzͻ{/^XWmjiu֝uXkb xZ׳TlΘ>#lS'ަP_^9+1rd逩AvL Uj(SC `ZTyOa}O`?8|d`xDS}O%5AP$2S bHbb%*v( bQ_>\T*YZ5|ϒYֻH1OyLyrpy*!Reж1xN9`n}֝k[Ӵ%֭km *aUubuKZG֡ :)k?u|ЪY,ܗ_xg Χ [pQ6oda5w(Y24'`قIe /5UC֖a<Li߶,kݞ!YG24zgr[g#`e{b5wNEG57U8fL'DloB l*`pl*L.3a|pSkn*vUnE$L|ߐ^* < b["aLss9+.7 5gȣJB)*V4Q9>0TKFuٷkk´^(9!msob>4888pqsPC˴Or5C*}MWq~_6,P>r}aI'[W yyiI{<ފ-[mpέ c@"c&_m̘?cV *Jw>RY(*R++bXJ^@J'B"@(Hb" 񅂑"z,O(rX$236l'E|XQX'_]|D `fH$KRi̜|DD""HсსƑBwR1Oii'Ў!pʻeea%O̧;7^c9̑QF\łJv 8IEbH" "DP6Au +KjV!!@( L!\$t=e K"P(A"z$!gds q6 2Jĸ$\Q“)DKOZ??<؁'b_hܰE2|9 O48ye%jbX+;*Rh'IR@f`ARDw&l%ecb-ppQc ϐI"n$#G/)(?aV!]L-+w TL,s O'<($#;x=X,K%2BLIzG%gDBztWHyR܌%b&,QJr t2~$J< D#_&.B7x!qvIf%"8=\N/a RJ:pm.e)~F =T)()Bs Yl4AƅUBhd@r(@2 ] y1h8^RQ_2T{ʔQEʤpZ&2 @ (.ShzJeP0YJ<Rjp2Ȱޔ?N#@ThS8eR$ KRԄZ")Xc<SL&*EJj žNF%c+/*FlT(iڸ|,D,H)V.{#+5vBt 7 OjDJ^ F\ Z(/sI RptO-]]Ĝ2JP[ˠ&z̰H_IPPȩT g …LIsQHt &bE S;QPP ZPie|L!R $8JKG+09 Mr!sA4cDPȇC]eKTN 5NX1`E"~:HEKfaCS @rSh qJ5G =xJeP))4d j{P%PP)R)@V,enpot&r)Oʑ]-5K4 1O-' wJGʔRL=|iW͊T]8TSHH:fr%;R%HZ7MkR9io()dYxB3AE*R5 K 0yG0!:J%"\iH5$YYme05 RȔJc;SAթT!N:D   D"5(S!@A6Iܒs3a&JR PcIhPY /a*>BJ P6'BQVbQ/U TbDo9\/0Jy.Qe' G;HkC,)%|v'$TRBUU^Y@RTKGƹ KjVH Z|BCjX,Q2=s⍞K6A R+qIjӣHwZdZ i:@LVK5p B(SANM ,Pq6LS\jl{wN-)j j-:ة@pO5Ɖ*ڬkieZrI @ɠVJ%z# vS2% !'%Vb9_E 5MIP.Q@"&B5, 02A#I9+T5 j)_l2*L֫4BVBM*I(eЂ6LE5Lz=jtPiUX/WpZ(W0 ȥ*B&(oD#'hMGr$.NC^WW7V%r@ Rjz%\BeVԏsW%  脐1TjIaI#PiU\$)4Pf4ȑTB%2\ebdxIԊZM4!p11Z0jrFFD)P42W.iRJh6b @݊VYb\uXXSRʏvvYrYM 9I5ZF3 5p[^8DFU$s.|UQTjGizF5XPVi0j,JUICBB!nZUE#3pI)4< B[APoHZa5T[fZbT0iƮhi<TW T)q%*N6teWa)*6TmP\z Qi0B|B3 Ŭ W"e&$\U4*\QN'il R=rWaXU&R ^:֠pDkZ|4jnaH*S/6ȕ:]VRhz^F\Hh2Gʓrhk54iPZ5 :"p[Ѡ5:$`bT4*Rj@jQQk: EAm&G#.s<)GʏvANm]yiYbhV (d )+ZNL=J `Ya/iB*iMV3k 4z/“J`v|jV6uf !JNip:Rc3Z Hv^/YcilқS?N:ҊTIRaa;~tr=fjŢXmr*%P*BgAy$1,S?HWH!bu3~hr )񣒹 c-23űCC#Q{9 Rh8t9F/ZU&PXOݬ5kz?e#-?5m35:b8fXC3-8_Ԛfzs60z͌:F-:k >(]?:|VNc-*6yEKq}q H*aBi$ 1RqG 2CiwhYl5& G݀Ӌz]8٠4`;ԡlaT XE<5iVѬU{ @]7KVGԥbijM\n2dV#p8VÊN'h,:%C#&u06^(jѝV. %CZq,f`A1:L:F u0J[CRhb#IoXt gFbPHu@Mn6ȵ2\guШ1]vf|uIE݂o5rY5oLZ\6. 3ӷjuzV5ϠM&w2aIj>XrF#\&ߦ Hֺ.a+m.`6KXˢu!n  84ᐦOkLnﲛEn֛5>1,M'X\ώ 6T5EJ?m+]lGB걂םZʑj4!]$Mhwl>3<@L] \tftnL& szf=vyAmw=XoszR6GF1;iq-Vd06k%A.Fhʹp<`&&L\,&AfqMDȶ&|.- ZseQVծYJ+ lEv|g0'.}Ӵl3j=@0fYNZ,c5&D, 1M^ rt.C7>'Al)F7䅇Zm(mvF<,@Aa@4XjPڪC@iusoۭrw MQHyRYNkYC;kq_})4TXoucAo0fYʢMS|R֥O5wFJ,1KnEl3VeͬLi A!sfi},3jJnh-Vװ].Uޞ]^#nSu"ݩ4ؕalk+ܑHp؞Mmq}p$ LEbmSn͜Mr ktEN*^/X6O̥{=\ehn)"*T:v{98 zlvkH9᳸lFو-؂@,vav#67 b+fd+MF>;!g F\2GʓrhyP&"*#Ʌ2vC/ DR:yӞHİh̛6xM^r7D#`@Gu޸eaNʘךi <9U$aBVTZrQfOC*LC/rp<&# AwV& $X+xQS`8KˍnL<[E,qg.W;r5H^;]NxzG)@LJE&cH5 h4&©p-~O|ʸ+&rZ^_ =Ŝ5NSdM2 %=̆ٸ+#)Oʓ&\qy03]Tta d>mǬ!ק)s<)GʏDă;ruk'QI}\SvKd|x].d<OHuǍR)C5 ׆q/<6IBP&t]d6T_̴cn#W$ FnS yp.}~q!pyB!06E2J^ux 1ېBMY?7;ZU%|(5 D6SJl![$ѐ?;|  xi|FAXUU,Q(T]?@aI߫[M%Yw]]s(Xm@% [+D"CUUaZP(|Ud}nObZDU"AyUu Rg}ʟ )lg&bX,h/ m_P>*h2L:Psx! x &_ *D(=GiG<e'HޝMƵp;K{2/ڦb:ClS$2dD@\|rFkfkx, :d5 'duScd*oiKMN~O4q%Tu8 e^Hw!WM1Vw45E:Ʌl3LfT$ GFWXD[&" tl .P٦g4]\$ЕG}D#הL֚ ._˥T ls媮Jyl!U}16 l$Z$X!#t:2ɝBk!x jG!@M>RE3Mh4 dhVim aXMb˽ڕk#x)Gʏ5lGkhF2Mq*iibclv4" 5BM, E" ˈwFh6ҘIcIaL1;:А(b}&+3]U3h8zsPU}R];52q4W7GNm)'Hu1XW+d D$UUQKLJD oGbȤ-uh5=IC57֠9]nv/[ Qb]nrwwyoKզjrL5tәt"K'kYOȓokGSGgPaL9:f. }t}*ћPݘ&{[[)~ZhM׏kMB[(VG[r\-@k>7p-9*mNS|>=cL`jKZǷr\Βi֨بlKL ң35;.kKU..FehZ˽fs2GSiTi~aw4L{}nLJk3gֶBKgirwktQ &JY |Kҵ5Tul?sB}= P_Yoo=[;蘗o\TH\S>0!e:$RSSX*a&wV'ٔţpu٧dIa N<͙Xps8vFgcwlockK6 ƚL]:ۂֱ\.J%ֺlBggahoYζpø@k|ܸ1'(f3]r鹬1Y49:;ǯ 4d{8>hj*S::(تVSεjck*؎KZ6lU ɳLG}R{C5XY %DK3ۙmjj_sXnűkb3V%G{w;_m+`}uU<#Gb%KGϙ^֏t5w򀭣w|ٮb{su1BVKeT*f4Ln(VW7Ϟ5YhlnRjBK0хQ6frD]uKXLꨩ$rƥ225Lf uSنD"Zt%_O,|OL"?6:}ץ[j:ZRnŤb0ѿA'WC +YO>gBhyz2y^d1|){L?AvJd=o/e#I"ΛOUd,$ya2[XM3^]ɒfYdȖd]ҵll1.`c0D`ٖm. $@!'ٔ0 8򈓰ɲ<6 I^}~3M^}}b;wfNsΜF È[И! w hCi2o+ ؋03~&A' 1JP͔ (zj0 cOt\7HKA+{.Nѐ|"ۅ ftWTx>hMknqoѸAҧoc`~gHzդ Y0 PzdtgA :QҋEu6* LO^v`uvق7/"ڱ~#' ?,ef!EsӟIm`Ckq3h5c=vj?5ZwB~GV:$g!!rhk.˂`-PuE Ŀ!ʦ\Lߓg 9f9oD)cHa *paEYֱb~Y%f(Ap=WxF"rg@)^mucvE ^MX`AfoGӅY`.s aL=an^(pр#~>mćX7^$3ҟ8VWkV$H";Ԃ6\/ @/ rW@H@$#bwH `!k\] V"S `+ZL<rHO$ Ԇwϟ t:),FmGEi Jx A$ ]i 0ta   Ę#'fIO ,"7@3m!0qp[ 4Ȅ? N-  Ea!b-A8Sa :3aXg'ӌk KI)6f}G!XU>%p4GSQc'}r #}\N$pSI%pEf*߄ai{:V %Pm = Aj_{ެ;hiXz~MA40D}ah/a@-':GP+X#xKO+N@;}>AB%eYz~=NЅz@&hY.vץ ,\ŏ^"ݨ1 ڇڎzYb?>_; B`1"yEep܎!Dmyb?ՆpȱKҀ5grO]Aoفx K֮p쏟^>DqtqD4$:QYOa4Dk1aBi7?NOݠ7}A2zȢhvH ` S ߵyV~ǺJW+ƚGtx9@>! g3?w-G3C3?7iiȜ8)`ٌ ]WfE:*Eh z ?>S_y  Y@@??@bA @ -tH) td,e#2\8E GBZA9D(NBQD 9JA2rP*l0T(Lԁz09 .BJ3X,A bƪA9"~8!$D{{-Z`6(Yqpp+ @Q]np}~{83: x#Qx<OO3gYpARphg/+UH ΀8x7"E[`$8-kx|@6+c0L86Μ ~6/||> _Qgd_q~pw:"!xOOC CYǃYCyqv`fpgA= `!4C ɯhۡC't nt,`9 Yσο|l2d3p?"<;{gpw=p/|>!x> <,CAcK7S$̬$88~{}~/ N7x ~ N K~  ;^Sp%M1b)!%"(1%T$%䔂RR**RSєT,GS SJ*Jҩ *ʢ)#CRyT>e BLY(+UD(S.`*";wz麮IFF_[߀ >K*ai_g_o6@_/]Š`'_SE/P @5/M*ftcǽ6ЫTu}!]w!8H*Qc 1mTN0F, ccZ֓Y)^.ޞ7owW }n4Ky.po{Phڶnoz}C^j._!  bba|m}… .xQ0+jɬ6@pOGol"8يHT~>t̞1S猙f"tg̙1kƘ9 ]ت!wJX*@?UA5jCt ҕ>_o&zjC@o+z;i_o.HP_A}-10 7b0  ^882hkf3u7`pd&W ZH';ťX׉:aPXZAjI1w }~/s\cMעvAkB踎To"8 78|lt -ZtW` Mo&2 $7@kDU_֑gK,u:)w0 Y0Y=~/rz=^fAlT^'h ~;, bguAjFya^o&{ S L+z,ފYIŷCm1=JBpwaj_c +ga!IgG=Ҿ)ᾰLd-CaSK0d C\"S ( (+R uׇ޿z]|;\5ϻ.wm׹]|֛_:7\ozk3::}u ^uƫRdҊ$qATV U*DZFD Lsʌգ@ua/ )cP<ɨ AucYpzA~c۬} oGcΏXkkxHKss?snٟuSq<\= Vg@QŎζ1hyia1Cq.QǓGcP6S Κ/}mι{}]YNY~i4U[1 G9w4q$ǰq<پ w+P2g3>;n1Fmu;>;t#mU*zuգ>1 (k~A^Rv;_Ep:zAb% cy<1}|}Lx#As&;nv33tM8Qaot{sɹF{ӻNmw8.9Srglb:Qv|Ze\.^uQ,*oQkc` V/>&BҚuS~U'5ӇSݻ5E:}uM K5m1^mw"*$PeG+#TW@X5"X%GR )2 '3٠IEjT:%k3aAK$B;'-4rzcî5*R[+]\l9ʞEU]e+vx@ Q\8k1)0A 9#=K NBn(ZHo[<, c4Q*obTQ b,\צf5-NȞ]Q|5D]lE# ԐkӭW2ʛr1ŋ K8S#T'N3ϝ]p׿6EWp7,R<ԋS6>i~9u; F@I6AhvӲ.##qx\ UxxS;>KNN%Cq=ϦqMo+L"M{&װ3X %ݪDlH2E1<IJV Y:C:v-#LX&ddZTjJSmXOS{ܼ|pL-ζRxӝg{0cS =ϟ4Oamn>BaXqGfp\r/BYvwdSrI~$qĘj"f:(.zV_H8T|G)y:+)9l$@=dңX@ t9T'ADRр/u3j$iT4)w5u])<5K۫d,-urE5S$ݾ*a&[-XI<._.SSiʤnҷ;|[#jFLק E"d*V"Pddp=%Ǖ1;ĩ9 "})v+$JIZR_x ñZybXn$j ^İ)mk?eEOw2E{[^T{6'zd׷IlGFnyƣkN_ooP3&=4{͝pͫ~'걾7})bˀnFRJӂ-C8K<NIK'T+@,)?7=E(RqRJ5,:TtT"EBX(SrɆN钅\ ʌysŋU\xރuσ$pM g*0`b!nFE٘0H6̱^b3b""BuI% ?_y vr7}rbImʛ:yHO]OLNIIn D;G.H Ju>pZr@sHNș~)%,ME@{4R &ċ[561oX?]|G?0M`Swky]deyS_חQ\b4Vu"RQj42\+6Jʖ(r@ .R80;2wt^\\WBPX\^yhW+\2L d2&Pk5պk[jkGke7xVi'7)=ķ*E&f QaAQky{SҪGc) 4QVmLJk3|-z꣰:+Vh\Y4QbŶ}Oٰ,,([RHYlG:suu+ svh3,BgNŢO3+?\UuA?hX$Q2yΠ3ܺ@J;|EN\ѧ`Ħb x5 q]sv|^1#mľIBOM?j[,X Oi~=ɦ(scTe/|ɤI'_Z)Ϛw1Q|ڽ'?se*`3k*Uuܜv銴ݙki7N+35bN#%2dS5ĺceb9đκ+oհl(IdmqZl[mMӒ A"ېmϞfЃ9+xﵐ%y+ѭ+3&&XϠ (2 7$m4rIÏBw3k*L,6kt{Nv E,kQf2 ksL)F.UJn72U4Wǩ\].{at>Y^\,+G)j<ȘK:c}rcKtqKtQl<(>*BBi@R"* BMCgkk޿LN D ~AMs̍RCG:3* B'UWm.~7‘DNSpэ%KFtj-.q(?K϶N8xX=7ǎgz>d#"z$(ʞKJnE(Gֈz7.yH^ I+RrI`XD/㱧jɭeqlSƗd>ڞKV z3slYp:Vŧyjl~~Ԁ$ endstream endobj 12 0 obj 29170 endobj 1 0 obj<> endobj 2 0 obj<> endobj xref 0 3 0000000000 65535 f 0000041480 00000 n 0000041832 00000 n trailer<]>> startxref 173 %%EOF base_dir/777/ShuntBasic.pdf0000755000000000000000000011550713034373446012621 0ustar %PDF-1.4 3 0 obj <> endobj xref 3 11 0000000016 00000 n 0000000608 00000 n 0000000799 00000 n 0000000968 00000 n 0000007758 00000 n 0000008810 00000 n 0000009873 00000 n 0000010105 00000 n 0000010370 00000 n 0000039141 00000 n 0000000669 00000 n trailer<<5bbf75e639c5ffd8431003d39e1ec699>] >> startxref 0 %%EOF 4 0 obj<> endobj 13 0 obj<

>stream xc`````S00h`P Ϩy@Q@P5 endstream endobj 5 0 obj<>>>/Contents 6 0 R/CropBox[0 0 612 792]/Rotate 0>> endobj 6 0 obj<>stream x=Mmz9ymCt!IRq؞;׻M/jAkoj5AA;w wݩ;9:'wWfn:pr!?p拧w*MR<]jiOoO~gO-7J;kچ~5-LyOi8%$ӻg?>|;i<7OD0!]:}<=ˇ=㇍}&rtcW;J 3e𹑢K)um]%%]r.} eZ)$6?&?8u E2ɝ[ O)m]'%}r>y9PU* DzA9=\ BUm&*YŰ`e03M6l?OϝC#נj!njKz"(.c<.>d2@7(/y3\1]i1eù(m>OZiޱmU#x[LP#+~ە渭(mb@_UZ3>]1v_^B؏}W}I??DM-{_BO^b6 S~ke5scl1{\_ _ϸ`^+\eqPG* q*T0Uz@-Ԏfc&"Ŀ튵gСa>P}??Ob9I +2?sʓOʺ҈HiW#VhFJ)})2 1 "<5@)IcZtL5~[!t  9D\A}b< rĔ u%[)xʀ>TqHlvJ3);?dIRtw'Tuǔ),Fj4FY埰y11Ic j[׈'?&q 6'zos;{1YFi̎1BׂX)1i;OA..8n9ycIø=o;*{z^톻b@A҂:t,)ޣ /m}<ܩ pA7*<)M0#U7)iDcD˻<5@iPADJ7tN^,%c16 isJ^@+XJ~ z86q}dh\ӡc#X6- ؛t|[ݻ dfHRTv#tQS"<.8&f8(HJ@=PU+\B0`DPc%K$TCjݤMfHTd>$O,!e~>~XHl8U]l۾xr8v'6CTb  c4)$ r9 D?.>,#Bm5v95%]߁Ya1}qjk')U1k0 ^!ȧvjV٣c7NYǀ}gll `ARHl 4%Th6_ai]|xLf)?=&rw9$[Ua$]|{VUTcsKy yzK` 4-i z81G81ɤE䐅;P|J3,8. EE>0bՍr٣FT<_J-Y[DeðyĄOqelł]\v-snx=~J6w~G΄5#q=zϑ'JЩ%jb5%CwSjZڱ]*Ǹ gLwR17.E~n#\5%_DmN)| -A3oh =;f nk^{To|KRbvJ F̼떛9{6Fޭ*ⵚd6DA҂'RJ [f4 :sNea:v {;(yb| O2BiE1"eSOz1'bjI[(1 JNGybUJ XRvpyx<Ā[n9  G 0Ojrr<(Db0Rj=I_S.p&ZT<iTS˫- ;^&"=sMQ8QDa86#B HdaYi)kn(uwSe93H +^{+@7k@<K tW@mK'`@!B4=N4ڏhDŐ52ȇ:jS18/ GT>o ?Eeᘤ͢9B,J~!=WN( \6<<:bioA./,a~w4v' .E]g aH L "%\AX(ADJ#D;bhG?|29e\ !N}J|dS-hW)< v1)J .aaIӠJih؄",F: ~Qh\ R>/Z,`>|%8ш^<[i2@:sEPh{:bOu4W~xנ{g[¢N-Y%"MeQ t.T.3x?BPbXX*#k6vJ$x`ZX ]:ba(94$A l}{3@Va3n@i⋂zxʽl;C ⩷ub)n޶Zi74R՘u-xg L4SnI+eEQ"2Q+g(i-"R«7)i5er6/eAO c;ҏhͨ{-icYC=V@6If(bF"U-aIJw W?>'&rq <&O߲jF,Rr CPGt(7˕5 [@{MoPz@Gc)ƠzӬ1IVm e*qC_)Bmx^K]NwPȹT{'՞'$BR Pt;t A0W3SIZy>ζ^. Km@fĵñBUT2G0l\F9 QGwNK>/h:[8;W"[)W|т/2+ -y(I˸1&\)vf됥t;p :GR.%`~pq`Qn*tCþlVq( `sXWn! qBI39$O/ͳ5}s .ZLPր06:u.H9[MSzAB"`>mw-rVWs^Խ<tV% >iC~6L롿|1R<h Ҿ10rR+tmJIR_ 8::;˔bT39CL""" vT[WcH>S:t*RLBT0qC4r58b è4\u K53Ũ:2i/aby}5:TXo*ee).tOr/ۺxMUۭI|33I%}B4ȑ{.c VR!jbbTٖC7c"V(-Tjgzy[%@Zyp!D5.EP;NC3Ok Aӏ3$sGllKu j&Kܚ.ئ+TqMk{,.VPW&Ѯ.UCfEhȪv -ϿRj`+yqVܻIM٭|(M 0ޟ&pDgcT~1r)->I]:@UdMk@(`ܜF+}s*$ٝ g[벌q%sZDEikwsUSV(tV8XO"t5O!q.e3Ju~ +'%Y~^PP3y]jk5:Aq]jV>($]T A\QDNK$] :GeAQ Q/ߩaʤuM-2KH~jI_@cIA2EmMt>bZDupḡVK m M :FBʨRGRlVȞhuiRA-s!I@&:mq,ٚ%Gݼ{>5Heh%b^0jVqƓJDtF<u` e*԰T3y.x?=ɇp 鰈!XB ɷR#ʥ*C Ĕ af. :\67䷒U!mUHf1;j_RMRU$屘r*u_R^MO*M e>7XYr'Ec,+= ";e*FR0*_#2+rQ4,%j>7Be@LyeLܴ2: i̖ғVܣZD8j](< 1*_lDG(뒆dTͳqQ[\jj 嵠 K(D]Wj[E4ZT28M[e$buSV;)1`#ElÇ. П#1Ruys, S 'Xo˘Nr;pɾvY,_ JPVt*",H@8*Ws̉Ф ,BD"?jkx5_me.hR3[Mo-sP3QL,{ˍC{BM˶oe9Wc0(o'H5 *brzpi+ojTG-R*(B]غc2RD`@Do4!$~F}ɺ} nF[E׸x2;B[P(Gh Gk**WR'>FX BnRA- T"#kR+%=$vx9 Wgps>ʬl wlq'П_fn endstream endobj 7 0 obj<> endobj 8 0 obj<> endobj 9 0 obj<> endobj 10 0 obj<> endobj 11 0 obj<>stream xԽw`UU7Or{|{7&B@L]+bCl( (XQGuT,cw&3޹+k[ Cр2cG=#0QB3Lj7>HlB*MJGu؞)SZ{Ʉؽ .X㗳3~yXdޢO~o%@Ąd}܍Mri !Ug/:x"}vL4rT/WǀbCF❿h /$oŃߨ+ ?Gq>3hNG1d*KBVc?e~9KRAF<5 wbnwᚹ\c.3Q+610`")O*|H"Ǭ`x&&'خuǑYdYL&sr|hOr7o877$T܏Bi~f> G,;R[%dxg)g.̓h S,]0ic؞-[Ύ|GI= *F&Dَch2\~}EsI-Yp}%u旎xVJw/} *;ƍvt/zqYO/P&*k*TYTTD'-xE}@?t7MkqAoOo LOV-OHYhx.{ܲ9rvK+VďeX\(t4J>ROaFI0.X0䡓-ֈeU;Mn/pZ]gg<P0q;f0w]}>)?_︤w`]r}q}Ž7M~3||ԷW\ enXW[mٷ=y+?%ǽX<ȾqSkN~cњmM?7V=;澞i'9s=cO/崙6>?NѝFyfǚsyO*,+|` 6DG8Wn껒EL29rdR&-9(t$l%0] ' z3ۙ3je:NGW0vRKxddI()JBПDط7*'n}ygŦ'~yOgWipڹ;Yw̅/}twlW_B>[vWᶏ% 5FoyMUwѓn]s؊1\cvm)Ww_1}T٠?{ij~[_=u9v?xh;L\*ԍ  SJ~DtKL+xo.m^bY:_s' xr;B{ƻNzSr R3W$Wej KZjτ;/=y}?`҇/+O_sgox2뛯^k'f}ߟvsUς߼|f;SNWj~ӌ3-xWOc}:;Tb٬YS^cgד鿝x1i5Ɵ>w|s>~4+m$d~^q?W1mo?19{&ܽ2)m|kц-Nᗪ)кpox{bZn|Nɵ_~YϺk Q\QA2 UCE+7\ 'I5i%SGn[ :( 'Ιh1G(OfOa“tmn9lWg^72t*]A:z\AR ܕr7,~y>?z}c?;YO|Rwg'X}1msάc>ȫ]:zׄ/>yR8{)cKwY3>3ӽ<^ܟ83/ǎ:䭻ow e_5)pj+4$3Vr%]3t_m,3nu{ʓ/8ܜ%f[*]h=ֻ|y}SGODB"lUz(IEu򚓣7՝Y;\ .=:hW(,9jM,Yxq˗%(T)R8øpěo=O_9#/ ox嫧 ,ۿ+LNz[ \x{ߔ'v_[V^z6&0'jw|17IZyĝx' v]e_(7W֨ pԇN: {{n{g娷;>>H:y<ӻ([=Utgf k~|G:f?bΙ ϜF^Ye',ճSO^&Xxwq]km²nE~yTp]m`wB8zhʿ*FR3K>]&07rZ܈ڵIK%o'/tqొӻo|b[{ sjHJ_˳>=J[^xcOooɥ շ%]5дSiE'>n{[dW۵ΔߺCgusUߕYWT"J iAf!l|p'sH$rEɨCo{qķ?Z{߻bi^}Ŋ׿;,Ȋͭ k~'pe_f]lwӻ$|Mg,gw;˯<#g>ћ/ۻSs+?oJ޵Ǜsf[a_pz_3 Ξێ~w-؏6շ~y֦Uo/^^s쵓 lXrG[K=ܿtqӂFvORIaҲ 4:KYzq3={.8zRkxЖT[BaUa?ݴ a;+SC 9r?^\Kix-X{䛿g1}+s.K&l y" X ǐe5K&9dy4Ɨni}g?</?qyK?QzU yblwϙXq/_[ƶL>cG>\p +LDح|muLU8eϯ|Q<#3O|.9'L?!!ROչeo_ck\yfuOn^S1o+HZSQHO~x8pCq# `s ?t&P6w4m$܍L90w'9o<)SE˒~cwrovmٷw{{;NPGYˉT}qݓekWˤ5WʼdxG7dFl^T*[ᙺợ|?mԬ/0^]y=OU,Ygncj̚G>oxp'ןp5lvJRusݽL]3u첫 Էڼ+R:y➹^$ο.*-kywGtoZ9T4aTeFRʹ2+ H6@ZsdUȕ2&ؘ13c1 td1 QB)c3fF0sfF!3P-WuA|4? {Ȝ=m>&5c]afm"p;ytbI'L&Rg3լP0EyQ.1\Lczq5q3 iff$N`0a"F"gF͌4عck3g̜=Pg[A/ 22L_ c~#xZ`ttj0HIHG&PI>rLg,?1 ip%cR,3 Kad)Ș lPYL `wXJ T4fF`2: l$|BW3Wn"wT/U*<,rHIJH_*sBŊ,!Gڈ$*~#b") "K9Q*TIT*)BD ᨖJ":b#@?Bl8@m j',J?' C^,}O|$'aI h$@#ߒ(IH 4N +}CMj4)dH-hAsJ_jRZCAkIs-fzR4VFdim"ͤ9ih+FAGqH;N2)"@ǐn2t,Z#I2w$#@'#K)t*Aid6t2!AA$A$ J~r9t@gŠs8:,)̿t>Ged9QdEP3 RzKN]JV.#!*j+@&''3AO"g"'sr6dJrni/9]қd z:\zLrYbгɥ9/eK'_A#WO@.F6k@/ @/$Kusr=+/d eTz\Az%*ЗvkPE z-G#K/ݠ7[@'7{Ao&n%#@o%FvN*=K G@!wGAAw=w>M&O$O"O"g@%ςG+=I'σ>@^} ya #7wG9yqfqyIN1yig{Gs}/J#/A_d Uksп/Jɗo@$_"{7oqm-;n.tϠ~@~ cRϐS~T#3Zɓ˸o"b%gT!X>"UdAN; ddS_7#sDZM#{6f4#b(|`:.7A(gheetf!GIjdL~R0G1G],f02K;@8Y,g\(g=yc'_/?@G% ̉Ix99YɄ0(|oYÜά%11&$$G9:܊91|^DwaZkMfZzFf s"7173[[4s+ss;s3lcd3;LCaecg`gv3Y!a&T10cecg`yyyyFy,S<<ϼȼļ̼¼"/w"D n Yޗ!|݀0ss&:]0Eӣ-?=x AQh ŨwF4yjG~ #*}%F5 n-Kf Ĵn]coxBPI/a6p 3kyhB"r.9hpKm$ Y<怙ﭑC͌D|s}EcO*M$[SN3ivh4P_TW岙t*Ǣp(u:6l2:FR*2D, ~v?{c3CX >g禱,b?,gdTlbQ=aw1&O;w]܍7.V-϶?]k mJ=s$(&Rg6&p "Cu(i" UZfbub!y3kxn i4 m8\v[uwȬlgޡʁ>:2 Nbn7bHO=xa]-3U[wcѮ.i]R'ra:cJCM.xB9|!z13Nȑb!23T᫡dN Y7Xih} ^sSB>]=A<_|~KjHd(6CŐŢY5~`+UC"/ʠmb s֍;_iK[aUZ5êjFO>xj(o]ëp?LO. ke6OSTwKT`{+]gЫNUҥVWHa!!T8(Sy(Zy6(Ķi9DØrVP] o"jG>RU 7Dhd{=s<}`8ꚳo$OׄiQs]ygWCJk=}:iqp2镕q, Pikv E,UlXʡ|N]=֭?x=[*§[v]EM_1Ƭ\AT|\QT >WV" J/n<O  ( D"P( nEB # *E XPbH 8dflN,brOR@PMJH,%<^eP9) *'[D#+E|'C#<"lCbr*|O,;C4!&w#ʊ/JOvnGrr*G#)\AT!2`#pRD,Q-EblqWTլBB`P*.CIzHE2PF*DHB`'6ln>dqIӣ'S Wɗ/(~xO ž,a7.)$d8 r8iqRK?bW?w(T&$8O$()0|6LJ, " [L)/!E$1-1 sCIGX_R>"-P((~$ìCZWX(8Oy1QHFvz"X&Jd<8BHJ!ψ.x.d2Iy)z.PPR}%mM)up 1''Wq JnWROnXJ9qEH$B)6)Å# 78sgSD*Q~^D5 YK'dJ=XGDJL%s?Ԕ|2|9)H!x#rƏaK1:1=J!vҘ$:\t~|*̑KTMX+.eHp'yNFLH]n"rBJu)PJDp>zB^Pk! 'Iѥ".QuP=s \8-RzRQSj%hdÍ ")ɀ PJd6(8@b$pe2F)I "Le@>P(0]H&4 aȁy8$Rda+)=)*)D%Fh?tqrˤIxԷˑ` XM@S05j{H92y.+s<)~P#8Ҏ$#qJeJ\Q`D.")?2E >), pDc*CrXB" T%\")M̝.2RȰ-WKpbO$.\*pqzD84 J0m+r q / Ug;dMTT(r\.;?|6lͥ" KOE$S"%xb)@|LU?4+Ԡ=JH!/V2_TF5MPވF@O.њ*Z!%H\ZGn4JFQA\JʬVA5JB -@! ![bR [’)JGJ#j HSh 8h#m$pCJ R=-ej "[i4BWc.b&(Sq aDAM再ZRidj.\N-RC'l HH'+J2!>9 P#jvvsj&^gj6jV55p$I(4 ]*42 4P4&NP( Fk^;`X* CʵVJGf2ғDOSέi8xVސ 4!)TjV(:J $FAah5:]x t T)+ЩR JT:Jm0ʮ(R(Tl*ڠz`jBgVkrY. @RiE:5LI|N1PiTxq4`+NHذ`3T {*ܯPðRFAM!T-)t A^)5(hmh‚!U` 5_l+uT X(* Rфe'HnjhnǕӠڵk*(M[u&EiZAk0+tIĀixtSF Zj55CZgcJQdUZ:SMWHI08hfݫ$7d&IKMHJͰ5T`HFQhT:^k4kTTm"JdDM3ԐBc4ꇭY%}i|FS phKzYxA=)jjIJ5GT^%tJbzQu6T#+Mz RvZpvr QK g+./1QksQѮSnZMTHyR?tNKs;\FЩ]oPIUz`6D8ޠFѢ4@"+5"U1qլAcqv X!xFo6`7h,6Su`"K+z7u'B Y:S4TD,zZ)RJ3nie0: ڢ ލ Yj 8P4;ZbieXM+יu2lA^|iWT" 1-~F 3Q הzH"uFle2FM0WnT!kj5@TniDFըq4(5rv *,fRF΂}Tj{:ԢFuLM(.w==F\HyRn {-j@^RI5Fd:8ѬP,vɠ7RWpz J"(^:ӊ0TlӚ&f(;irk^'R1*=r *Nm6*BBu0b33Qtv+"*f>5*?C_'&_Ơ؀;7=2~tj- ˩`9 CèhwzQ I>EEUJ֡V Uz΂Hb2Ye?2~dC&fЦ>9#RG%s40:9PZdzgLcF sAps>^ 4&5MtNYkւ r=~GZq~<ځK?& kX1Ng4ktFdqDfZq5S͚6bm( `2&uZt|P61»(~tZl[Tjl?vGeUNÄHb pCm5eFвFj[MaQU+Vp(AiVhwX˩CKaI= Jè@T&!xjjnY^oZK Jc՚Fd2 ƭFpXV1=NdXtJLFL\C}3`"m0hvQlբ;\JZ84X&:cttZ:Ra2Fo*Fx:6MYi2GP܆~  \ZLIK%[^q:Mg8V[k8f YuVke]lT646#k!L8mXo0LV aBɤ1YOu:hG~eaNX鲣ƹو gtY%mEcEknQw3,onwZ#dZeI6±A@EQ`v8i(7 Ke8˪.?jۃ`;AbBd;_WE"`XT*͌ uX vNH:Q k:lul6]jap . ĊL`tj0 HZC:anAU`-(XhgM nSSde'H5q 8h,.#tX7$sZ,rm`F-a.,,kA`h!,2;VzZA6f&,8B]cNfuY\z_o4n|.`)'kĠ߁lke&pQc 6|9=fLAt;.cqjZk2 5 .'Vmulv]v} foզ 5j2>ALeG&`}8U!F$2LMAAu]v;Vn7ۆ]lEB0\3q i!MQ.u&e7ܬ7k|&)bXjgN,64lv:k~XV&؎vc#;0< #G;hBv3LIt0|f*ymJ&\И!sSlayLLJ> P-XL 4:RmMX []N[,DYzYiۭf]*V ي`7lO \i9zgz`fT#&X|1jL-VN=J/Xb46\.Lo9}N)Sxjz`LZYL6!jFɠ)Y|o PtA 4xY:ZNiՠU`m t[A4̑)?ڳ-v rhRh$Ntǂ`s^E-l,Kj8ՕNY냿c`}1?; 8cIUf69n˚Ý,!:f B Du X4g\Ql!E=Hx[6*a5\6=p 9.G2%0&:D"kcVSi+6,>ֆW(+p#=)pAX;H,zf ~98>U )&MI^"lKzXpܜSDU0trq~!`אs>gq٨[mXGl-nje Wm*.V%.v;|vCΐ5 8:e'H^[8M^csETRG0 %Ye._2lA'uxVhbvK6D5roU.vS0`2.@ؕʆ.O=m5z[8S.ʍ/8 L&=jLhPMJS0?Z{~qWkM#/嚇6Ž  z9kXrɚd.dCKC{ qWGR'MxC!`f|7,3T|) 見>(=|rYC^OSHyR)w<O(磒RL](-NB\2WI#ɘ/uy<-7Rj6 >_yTm8J¡L8L cliEDŽG"Hxݬ*fs]pۅ7B6BlaleP/4lc!<ճnv*J3P:j*Ml:]BH"!0w@ ѱXP.~’WKڳP?Pے@MK"tjWD2´wáPݞJŴUD.`j=4 s-rAG?zS\ xL0X,^`**}>TNeӎx\)Oʑ;DkWmwd ^QIuM}u"ˇ٦BU%PIVeBɠ/ztR&X6Jwuj Oc55<2dU>^;!h(J&}p4 xx0_[CvjG|x<y!4XuH4XŵH=&CFtd|;/ÅB6ō@AfC5\}>Rfrh(d}Ѭ`(d13{+2G RkdpG'ОdTx}Ǝl]1h*4uEjX6DRA8o5T5l1;:bՓ&!bvt!WQtM.W(f5ffp rx*"9MHW89FWgS&Geg,M[*xd0$kB5f$<)-ښĎ|pds(OړgՉt"Rd*!)T5--յ-rM!yUjbcR&16u瓉֞|1I @mG.hki8fRh׫Vǚu]5^o}h/mm;UK;5!ȥ%鍩4!X-DӘtm:cD2ގ$X>V5FZ-QQڎ:0͇jՎX*NŵssiKjRZQʑb]&Zp"uɚ 41m>KsvtMĎdkc]sC.C%5t ߒdUUl[b:]?c|&_;v\ukkehn56XSO$tc.VhTRH65#Hg#ވ'ŒI [jz,+$n7&4k!oƭAs.R7v_ʗkϷ:źtO} -*oM!MRjk kJ3D"N4צ'֖/tw..}Nl˜zst̘)]vtT%271&1MeS#S~:њ[76֚m"P6ۍFVrUr34'ZT}:oZ:GACCc0@fAk =QxhXWX?һ.qoyt&7tuO&oܳ@_""DTl vL,~0$܂y4W? l'HGgQyΠ 1*}]sPIbg_e7&lFh/zc"!7" އ6TP~)cobA> % oO?]Yp O`HG-c; U[O0[;>`H?a|~FV2b^:4?_i}Ŋ d`DsX7@@31GPBlz;c|! b6X8>uh #l3m K@6p$:A\Gb; &YМccNj G^C|c],,7kCh=:<(;I 4\ 'X3/@@@;cZ.\*$Jn_0@*ލBx:4e6#^"Y!`dgPeZv9XN6h.v0G!;4S[fOډ1cu@K'1ξc]>x #=NQ܅:T6|8ޠ&"??Ӵ%Kf@$!bx@SIߤH?%{K}'x6Cqa =@Nl Q1!7QiyᜱD N5!j$3Mg0Y CXCq"I9GI'kKH[sA)pdpE- Ep1C!\!\WBL!<,`V\g#kG"W`_<*&(+c8 \/!x<+J!x"iGdMW<_J a_)03u|8s6-^8U 3|vJ_@#YQ)Bq8x(x88 NPGs}{2zBX-Jk,%$>)b(RbJBI)%"H*RQ14T*J)BT*J2(I,*ʡLT.GS*( elT1e8A9prQnwuwoݽ G;A?fqYWlEoP2jT|Ea?=0E > `>m0. ]`4+4;==>pa͆ - uFUT4"PZ `V`7h'j3u{}bP=þz;9R6\XȀ0?^H|CÃhXs,h 2Vz:lqu@ /-V,sF_sԄXB"v }=@dQqO #}!}]C!  Y7qKCsnc 44HhG/ <xٜ7[㢑*BVrMv ʰsT\VI8uᅫK}}.!.7lZ#h`H!-c݇#kBhClwp7 >$ CH7}0b2 Tk!,>3JP5[*`6+0q&(h\v]`mV.(*BS.(l `}m#==a\ I `;{`'>gӣ"2TTxwudױ]P]ctgBR)%7[-,ࠅ?x·Zk-|mojuu—Yx»—[z i}> `⠕ʯ^kZMV|Cw9mK|e_\ouZ5>+3L?<1>ů?~u|oozt}#~ã./}?x.u w/qpy?~mvt{7p~=qY?r9>}}IϿ~UWQiJ21TeLh%Z($QgTf$H;jciL+DpLUjkųKj$ +K?{ӷ~g?*kGZ[*k8k88Daq8\WP8va%z~x(qvCs.Fϟuh0D㘫iJ<c̵xFUgck﵎^W%ck޻GsrwYFopGO\QWM\3r&9rHsB=*TU߁kwS;7ꏶ&׌)[j5",OvlFX=/sG .:Q6]'b>9'8]äq8zy8?gvjhu=:Z4G&M?.uԹ8]knnr|;vy(G+=Wtŧd;|N+:Ɂp}ykܕ8ծ&enPVaMy7\51444}}M4xp޳7SSդܐZ2Cdb<..mcrUqk괥)s261ɕoi+JӫbF "*ie`^K \]b'7#{s]:Sӡ5)\W]B|;J A@Cp(xA)Q\8^-4C(͘Y3ZO'7-C76=ۋ-EqC7q1m)Ni3[Εds旤iTڌ]ear|e30Lo̳ ѩy兙eyQ*-X)>k_xV}K\p.llřp'| p?&SM-;\[n%9e|/,qmY kk ]fْYE>cMZS:?2F`Z*i}*ΔKZIIl$q@%a5[ki-d04df؛11! }9F&nr*MxJN)ĘUcK!z@,jۦ &u-+W4vU " Zuׯ~%ʂ=yz^QY]B35.uP~_v*T=;~blːJX#yJR*3T>ðb@^7cŨr4~4}L9T̗U)Wd,4+/Pg$ Vf9:cF–e(&^I@zUe f''JM)ec3 drIcIg.$1IPa'[QAEdwݶ ׽됚 )*j ۑ"lG&:CvH)6ۑo';hfdw}1lQPۜno 3vӱ$c M km [^րs (VTr5eURfuMݙ/ܡU5Le`+u6Z\[nΏTpbu~>g4r8 ĥ$$&'0'I8$9+wD= U ВN5/YfҬXXUa$ZJ-M0g߼eOu6Z_(T{oL]7ʩno_usD6;G^U|}K:EZG__Q?m67ߴg74E7Ξer7{:"""UQZQQQyI=GpRu#lPFqI>iuR[=IG%NJ33Y/џ1v#UT*?-(p:?j{ԞcQXENATiT}֜=Qb 9ceU\; S)gfhvm7\ޕMʕz`łGH )VVawY%nJ)82YȹAJ?u|@cɑΤ[޿yKƒFv`oFɾkdU~o̿-^_;:s&Ddi N Um5M #ͪlE֡(ViE NEf(x@CAWPjM;^I# {R`AzJ[Ɣ\R* -*zjӭbv];׵x`ߒwϼ ~^wk-jo+k_05(&OquFUnKFs.%r9$V%sбb9Aߪ^i=9U ML\PLLPޚZ12-{BX"VڱM :FwV o톅ő-4^g KYRmJBI^}t{vr.jwI~FN7x8FL%h(yZ!f8=:W+dOrk(YGV( zjEURKȩ몽d%ko(&wyGMFl1j.Md4}hy< c,M1Ue7]SRwxi+<{vˬpƳ kmdKjjUM܎5=Y# 7a7XS9~5ӧĐphӹ 06R>#~o<©N:ɹEs@ò&Jjar9s@l(^l(^^sm+t(]"{@!lX5'5  F2BC|&Z^Py fj7yoGdӔ!aIųJ.^xƊ\#eP'fK6r~ђXp+=C!y`gAɉx69L'vH^c-5ybM M&(W9JRV1HET <cb/^MpC++߿*^:AbI3t&;"KO4 XGlܺެV]}8]3gE4MnN71׎Z&ѡ`&XTZ~cg:yL0ׁwv>|ɓG'FK DJ&9emg \)~8 >\<:)7Rp8=!BLB9yʨZlr&k4[@*FlrRԂ3 4+4&2g 2)-ۓ-PŘ>٣rF ,0CC1Rg7rSiGMb@+i#;`κ3;)jcAzLi GIn y ElIӠmHfR#|&*$5&Yh7b$dLOMD%4(*JT4tII[PJ)g`Qv_;iMVwe08բ }+U\N^g A!hm6,1P)|^1f(ZG:4ƨbBR@ݘTucSו/,YDoH]R`J=?ϼ<_jl?uz=ShwJ_α7,7S #_~s7TPnGodSӠb8"Z/> endobj 2 0 obj<> endobj xref 0 3 0000000000 65535 f 0000039163 00000 n 0000039519 00000 n trailer<<5bbf75e639c5ffd8431003d39e1ec699>]>> startxref 173 %%EOF base_dir/777/Versions.xls0000755000000000000000000007400013034370763012412 0ustar ࡱ> :9 @\pYves Ba==<[;#8X@"1Arial1Arial1Arial1Arial1Arial1Arial1@Arial1@Arial1Arial1Arial1@ Arial1@ Arial1Arial1 Arial1@ Arial1@ Arial1 Arial1Arial3#,##0\ " ";\-#,##0\ " "=#,##0\ " ";[Red]\-#,##0\ " "?#,##0.00\ " ";\-#,##0.00\ " "I"#,##0.00\ " ";[Red]\-#,##0.00\ " "q*6_-* #,##0\ " "_-;\-* #,##0\ " "_-;_-* "-"\ " "_-;_-@_-k)3_-* #,##0\ _ _-;\-* #,##0\ _ _-;_-* "-"\ _ _-;_-@_-,>_-* #,##0.00\ " "_-;\-* #,##0.00\ " "_-;_-* "-"??\ " "_-;_-@_-{+;_-* #,##0.00\ _ _-;\-* #,##0.00\ _ _-;_-* "-"??\ _ _-;_-@_-0.0                + ) , *  # " "X  @ "X "P  "X  #X   H "X #P  @  "X7  #X7   H7 "X7 #P7  @7 "X "X9 "X9 "P9  @9 "\. "\.  D. "\. "\.  D. #T. #T. "X !X #X  H #X  H  !X  "X  #X   H !X  !X !X !X. "X. !X. #X.  H. "X !X #X  H "X3 "X  "X   H "X2 "X2  H2 ! "\9 "\9  D9 "\. "\.  D. `Feuil1%OFeuil2,PFeuil3!!`iVfTRSC1C2/C6C3C4R1R2R3R6R8R9R10R18R286V612AU7EF8047nF33pF2K2R4/R20R5/R21100K22K Lin50K LogR7/R2233K10K LinR11/R23680KR12/R24R13/R25R14/R26R15/R16R17/R27Q1Q2EF1846..60pF8K3K56L6EL346L6GC6DQ6EL365K6K64K12BH7Push Pull Gnrique"777"6FN53K822K 3W1F 250vC51F 630v56K 2W82K150KIa010KAAB1Exemples d'utilisationAB26N6pi3K47K Sc1/Sc2 ?V3 ?V4/V5 ?Watts ?Classe ?Pd0 ? Calcul R28&Mode d'emploi de la feuille de calcul:Avertissement !3Cette feuille de calcul est un outil, rien de plus.hSi les donnes fournies sont fauses, impossibles ou fantaisistes, les rsultats obtenus le seront aussi.1Les cellules en italique ne sont pas modifiables.]Les valeurs affiches en bleu ne sont que des aides mmoire et ne participent pas aux calculs*Les rsultats sont affichs sur fond parmeCalcul R7/R22(K)ERenseigner -Vg0 pour Ia0, +VA et VSc.(Selon caractristiques du tube)Calcul R13/R25(K)Renseigner Pd0 pour V3 calcule:jRenseigner Pd0 (puissance dissipe choisie) pour V4/V5 calcule le courant d'anode (Ia0) en fonction de +VA33K 2W39K 2W68K 2W36K 2W82K 2WVa010K 3W8.2K 3W18K 3WV1/V2 ?Ia0 ?Pd0"Renseigner Ia0 pour V1/V2 calcule:j 8Og,H`-w 8 @ KX*DN  dMbP?_*+%MScanSoft PDF Create! O 4d,A4PRIV''''" d,<~?<~?U } } m }  }  m K  I7 I7 I= 9 9 I7 w9 hI hE h7 h7 h7 h7 h7  h7 h9 h7 h7 h7 h7 h7 h7 J J    M M M4 43 52 56 5A666666 445565666666 :N;::<:<<<<<< > >O>>8>888888 > >P>>8>888888 5M45565666666 ' ?Q>>8>888888 F @RGGHGHHHHHH B ASCCDCDDDDDD  4>5565666666  4 >X 5565666666  4 >U 5565666666  4>5565666666  4 >W 5565666666 JQ41-- Le courant d'anode en fonction du Vg1 de V1/V241-- Le courant d'anode en fonction du Vg1 de V1/V2 4>0>\&-- La valeur de R13/R26-- La valeur de R13/R26565666666 '>>>8>888888 4 >e5565666666 4>3>*-- la tension d'anode(Va0)-- la tension d'anode(Va0)565666666 4>/>-- La valeur de R7/R22-- La valeur de R7/R22565666666 4>,>-- La valeur de R28-- La valeur de R28565666666 4>5565666666 4>5565666666 JINJ@J.@J4@J9@J9@J>@JA@JA@JD@JI@J@S@JT@ JJ J? J@ J? J@ J@ J@ J@ J@  J@  J@  J@  JB +VA ?+VA ?Nr@t@y@r@y@y@ |@ |@ |@ |@ |@ |@ FNp@p@@o@k@p@p@r@r@k@r@r@r@ K,+VB+VBNL@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@ K4+VC+VC%Lp@*D?Lr@< L?Lv@<Lp@<Lv@<Lv@<LPy@<LPy@< LPy@<  LPy@<  LPy@<  LPy@< K<-V-VNL@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@L@`@ B XX".66.666"66"6|"6zt""``| P! +" .# +$ P% +& .' P( T) W* 1+ P- . #/ 0 #1 3  4 &6  7 &8  9 &:  ; &< 1=  > &?  NH O O O) O- O) O, O+ O* O4 O* O@O@ !(KN!)(@)(@)3@)*@)3@).@)9@)9@).@)9@)A@)A@ ",=)"-D@#@D!D"-B@"""" @LL"-G@"""-E@"""-G@"""-B@"""-qqK@"""-qqK@" "" -@@" "" -qqK@" "" -qqS@" "" -qqS@""#(D -Vg0 ? -Vg0 ?N#)(@*.@*.@*4@*4@*9@*4@*6@*>@*@@*>@*A@ $NG $O $O $O $O $O $O $O $O $ O $ O $ O1 $ OC %(KN%)?)?)?)?)?)?)?)?)?)?)@)@ &,=,&-;;@CD%DD&-;;@C& && LLL&-;;@C&&-;;@C&&-;;@C&&-;;@C&&-;;@C&&-;;@C&& -;;@C && -;;@C && -;;#@C && -;;'@C & 'Nb 'O 'O 'O 'O% 'O 'O% 'O% 'O% ' O% ' O% ' O% ' O% (RcN(S@S@S@S@S@S@S@S@S@S@S@S@ )Ud%)VQ?D(D)V ףp= ?)))) LL)V?)))V?)))V?)))V?)))V333333?)))V333333?) )) V333333?) )) V333333?) )) V333333?) )) VQ?) */^*0`@) D*0b@**** L*0f@***0`@***0f@***0f@***0Pi@***0Pi@* ** 0Pi@* ** 0Pi@* ** 0Pi@* ** 0Pi@)* +N +O> +O' +O' +O. +O/ +O. +O/ +O0 + O5 + O( + O( + OD - -& -& -& -& -& -& -& -& - & - & - & - & .! ." ." ." ." ." ." ." ." . " . " . " . " / /7 /7 /7 /7 /7 /7 /7 /7 / 7 / 7 / 7 / 7 0! 0" 0" 0" 0" 0" 0" 0" 0" 0 " 0 " 0 " 0 " 18 19 19 19 19 19 19 19 19 1 9 1 9 1 9 1 9 3#3 4$$4$%%%%%%%%%% 6 6 6 6 6 6 6 6 6 6  6  6  6 E 7$ 7% 7% 7% 7% 7% 7% 7% 7% 7 % 7 % 7 % 7 % 8 8 8 8 8 8 8 8 8 8  8  8  8  9$ 9%: 9%: 9%: 9%: 9%: 9%: 9%: 9%: 9 %: 9 %: 9 %: 9 %: : : : : : : : : : :  :  :  :  ;$ ;% ;% ;% ;% ;% ;% ;% ;% ; % ; % ; % ; % </T%<3F@DD(%<3<@DD(%<3B@DD(%<3;@DD(%<3B@DD(%<3B@DD(%<3@D@DD(%<3@D@ DD(%< 3@D@ D D( %< 3@D@ D D( %< 3@D@ D D( %< 3PI@<D D(  = =Y =Z =[ =\ =[ =[ =] =] = ] = ] = ] = ] >$ >% >% >% >% >% >% >% >% > % > % > % > % ? ? ? ? ? ? ? ? ? ?  ?  ?  ? >0```..@ &A  B &C 1D  E &F  G &H  I .J & @$ @% @% @% @% @% @% @% @% @ % @ % @ % @ % A A A A A A A A A A  A  A  A  B$ B%; B%; B%; B%; B%; B%; B%; B%; B %; B %; B %; B %; C/V(C3t@ t4@IDD#D&C33@&CCC LLLC33@&CC33@&CC33@&CC33333332@&CC33@&CC3Q2@& CC 3UUUUUU1@& CC 3i60@& CC 3$@& CC 3xwwwww @&C D D6 D6 D6 Da Da Da Da Da D a D a D _ D ` E$ NE%t@%t@%t@%t@%t@%t@%t@%t@%t@%t@%t@%Y@ F!NF???????????? G$"NG%Y@%Y@%Y@%Y@%Y@%Y@%Y@%Y@%Y@%Y@%Y@%Y@ H H< H< H< H< H< H< H< H< H < H < H < H < I,L-I2VUUUU[@"?D(-I2@P@I?D(-I2@P@I?D(-I2@P@I?D(-I2@P@I?D(-I2@P@I?D(-I2@P@I?D(-I2@P@I ?D(-I 2@P@I ?D( -I 2@P@I ?D( -I 2@P@I ?D( -I 2PT@I?D(  J$ NJ%T@%T@%Y@%T@%b@%Y@%^@%^@%^@%^@%^@%^@  ```Z>@(((7 @ O  dMbP?_*+%"<~?<~?%U >@7 @ P  dMbP?_*+%"<~?<~?%U >@7 Oh+'0@HXh YvesfYvesfMicrosoft Excel@@g@@GA՜.+,0 PXd lt| 3 Feuil1Feuil2Feuil3 Feuilles de calcul  !"#$%&'(*+,-./02345678Root Entry FQ2?KWorkbook3QSummaryInformation()DocumentSummaryInformation81base_dir/AutoIndex0000755000000000000000000000000013730575260011345 5ustar base_dir/AutoIndex/AutoIndex-2.2.40000755000000000000000000000000011421517357013704 5ustar base_dir/AutoIndex/CountFile0000755000000000000000000003253711420525203013236 0ustar ../AutoIndex/LogFile 8 ../AutoIndex/CountFile 12 ../Suite2.html 2171 ../Suite1.html 2182 ../_index.html 2204 ../_favicon.ico 2151 ../Circlo_EL86/V2/Circlo_EL86-b.jpg 8 ../Transfos/PST-and-OPT.tar.gz 10 ../LOGO.BMP 2213 ../index.html 2173 ../favicon.ico 2144 ../PPKT88-WAD/update.JPG 3 ../Transfos/Papers/Mesurer/4pole.gif 6 ../Transfos/Papers/Mesurer/BP.gif 6 ../Transfos/Dissident/abl-da-clair.jpg 3 ../Transfos/Dissident/Fiches/DA154.pdf 4 ../Transfos/Dissident/Formul-JS-02.html 3 ../OPT_da/Mesures/Lf_et_Cp.gif 6 ../Pre_6J6/Line.gif 5 ../DPP_EL84/TRAL3.pdf 14 ../DPP_EL84/TRS6.pdf 16 ../Traceur/Pix/TopRight.jpg 1 ../Traceur/Pix/6V6-Ia-Ig2.gif 1 ../Traceur/Pix/InEmpty.jpg 1 ../Yves/4K-6R-70W-a.gif 40 ../Traceur/TC1.gif 17 ../Traceur/TDFiles/TDF1.zip 1 ../Traceur/PDFs/S20K75.pdf 3 ../Yves/Audiophile/Audiophile37-15.jpg 1 ../Yves/Audiophile/Audiophile36-1.jpg 3 ../Yves/2x6V6-ZeroBias.gif 40 ../Yves/6V6_SE_CFB.gif 38 ../Transfos/Papers/Fabriquer/Dévidoirs.jpg 6 ../Transfos/Papers/Fabriquer/Bobineuse 2.0.pdf 5 ../ckeditor/ckeditor/INSTALL.html 1 ../ckeditor/ckeditor/LICENSE.html 1 ../ckeditor/ckeditor/_samples/index.html 2 ../Pst/Bobineuse.zip 34 ../ckeditor/ckeditor/CHANGES.html 1 ../ckeditor/ckeditor/ckeditor.asp 1 ../ckeditor/ckeditor/config.js 1 ../ckeditor/ckeditor/_samples/sharedspaces.html 1 ../ckeditor/ckeditor/_samples/output_html.html 1 ../Traceur/Embarqued USB/Embarqued USB.html 3 ../Transfos/Papers/Wolpert_Audio_Xfmr_Design_Manual.pdf 246 ../Transfos/Papers/Fabriquer/Spirfil.jpg 4 ../Transfos/Papers/Fabriquer/BobineuseNumerique.pdf 2 ../Transfos/Dissident/ShortDoc.html 2 ../Loudspeakers/CriticalLSDamping.pdf 49 ../Circuits/Self_Filtrage.gif 85 ../Pst/DocPst.zip 38 ../Pst/Papers/Pst-AN-GEC30.zip 18 ../Traceur/Embarqued USB/2010-01.gif 1 ../Circuits/SourceSel.gif 84 ../Transfos/Dissident/Fiches/TRS12.pdf 6 ../SE_300B/KISS/DA143.pdf 8 ../SE_300B/KISS/Dsc01130.jpg 3 ../SE_300B/KISS/Right-4Wbode.png 5 ../SE_300B/KISS/Measures/MenoVanDerVen.doc 3 ../SE_300B/KISS/Measures/DA143-1.gif 4 ../SE_300B/KISS/Measures/300B-simload.gif 3 ../PP_ECL86/THD-3dB.pdf 321 ../PP_ECL86/Front.jpg 321 ../PP_ECL86/DA17-2.pdf 322 ../PP_ECL86/30Hz-8W-6R.gif 320 ../PP_ECL86/DA17-FF.gif 322 ../PP_ECL86/DA17.jpg 319 ../PP_ECL86/DA17.MOX 326 ../PP_ECL86/DA36.pdf 322 ../PP_ECL86/Charly/DSCN0175.JPG 2 ../PP_ECL86/JPB/1.jpg 1 ../PP_ECL86/BWandDF.pdf 321 ../PP_ECL86/Millérioux HH 18B.jpg 321 ../PP_ECL86/Page.html 318 ../PP_6L6/DA112-sim-bode.jpg 175 ../PP_6L6/DA112-sim-transient.jpg 175 ../PP_6L6/4xSQ.gif 172 ../PP_6L6/DA112.gif 174 ../PP_6L6/DA114.gif 177 ../PP_6L6/Dedans.jpg 172 ../PP_6L6/Zplot.gif 174 ../PP_6EM7/Draft.gif 39 ../DPP_EL84/Alim.gif 16 ../DPP_EL84/Ampli.cct 14 ../DPP_EL84/Ampli.gif 12 ../DPP_EL84/Schema1.gif 15 ../DPP_EL84/BOM.xls 16 ../Circlo_EL86/1EN00200.pdf 51 ../Circlo_EL86/DA115.jpg 50 ../Circlo_EL86/Circlo_EL86.gif 50 ../Circlo_EL86/Figure1.pdf 55 ../Circlo_EL86/Figure2.jpg 48 ../Yves/6L6-ScreenDriven.gif 39 ../Yves/6L6SE-1.jpg 39 ../Yves/Droite_de_charge.pdf 45 ../Yves/tri_pen.jpg 39 ../Yves/Z-Booster.gif 39 ../Yves/V72CIRCUIT.GIF 38 ../Yves/Driver845.gif 37 ../Yves/dephaseur.gif 40 ../Yves/Cfb.gif 38 ../SE_6L6/THD2W.gif 9 ../SE_6L6/6l6-kr.pdf 10 ../OPT_da/323/Draft33-Bode.asc 4 ../Traceur/first.jpg 20 ../Yves/Audiophile/Audiophile36-9.jpg 3 ../Yves/Audiophile/Audiophile37.jpg 2 ../Yves/ClasseB/Balancoire.gif 2 ../Yves/ClasseB/ClasseB-1.gif 4 ../Yves/ClasseB/ClasseB.gif 2 ../Yves/ClasseB/Image2.gif 3 ../Yves/Pierrot/Alim450-300.gif 4 ../Yves/829B_RFAmp.jpg 38 ../Yves/G2Shutdown.gif 39 ../Yves/Mullard_3-3.gif 38 ../Yves/WingedC.htm 40 ../Yves/WINGEDCLOGO.gif 39 ../Yves/VK200.jpg 40 ../Yves/SocketOctal.jpg 38 ../Yves/PSUT.psu 38 ../Yves/QQE03-12_triode.pdf 40 ../Circuits/Pwr_Zener.gif 81 ../PP_6L6/Percage.jpg 171 ../Circuits/Cathode_Follower.gif 87 ../Circuits/EL802-Drv.gif 82 ../OPT_da/OPT_da-322.zip 335 ../PP_6L6/Load.gif 171 ../OPT_da/V322.jpg 333 ../777/Amp-pre1.gif 7 ../PP_6L6/WN-Spectra.gif 172 ../PP_6L6/Talim.gif 172 ../PP_6L6/Schema3.gif 175 ../PP_6L6/Schema1.gif 175 ../Circlo_EL86/Arriere.jpg 47 ../PP_6L6/Sch-V21.gif 175 ../PP_6L6/Phase1.gif 171 ../PP_6L6/Page.html 174 ../PP_6L6/Mesures1.gif 173 ../PP_6L6/Gauche.jpg 171 ../PP_6L6/Front.jpg 171 ../PP_6L6/Droit.jpg 173 ../SE_EL36/Ampli-1.gif 3 ../PP_6L6/Bottom.jpg 172 ../PP_6L6/Arriere.jpg 172 ../SE_EL84/DA12-8_Bode.gif 15 ../SE_EL84/Front.jpg 16 ../SE_EL84/Schema.gif 16 ../Transfos/EI84A-5000-sim.gif 23 ../Mike_Preamp/Cascode/Cascode1.gif 3 ../Traceur/Tct.pdf 17 ../Traceur/PMCT4.gif 16 ../Traceur/Grid1b.gif 18 ../Traceur/Gravure.fpd 17 ../Traceur/FR1.html 19 ../Traceur/Ex1.jpg 19 ../Traceur/EN1.html 19 ../Traceur/88.pdf 19 ../Traceur/88.gif 19 ../Traceur/82-812.gif 18 ../SEPP_Pre/Circuit1.gif 6 ../SE_6L6/THD1W.gif 9 ../SE_6L6/Looped_jig test.gif 9 ../SE_6L6/IMD_FullRange.gif 11 ../SE_6L6/DA35P.gif 9 ../Circuits/1975-1.jpg 80 ../Circuits/CMiller.gif 82 ../Circuits/SinglePot.gif 83 ../Loudspeakers/BafflePlan-1.gif 45 ../Loudspeakers/BafflePlan-2.gif 45 ../Pst/SE-WINDUP.zip 31 ../Pst/SE-WINDUP.PNG 31 ../Pst/SE-STACK.PNG 31 ../Pst/Pst.zip 33 ../Pst/Prova1.gif 31 ../RIAA_PC900/Schema.gif 2 ../Pst/Power.zip 32 ../Pst/Personnaliser.jpg 33 ../Pst/OptionsRegionales.jpg 31 ../Pst/Fil.jpg 32 ../Pst/EIRATIO.PNG 31 ../Pst/CROSSSECTION.PNG 30 ../Pst/BOBBINSIZE.PNG 31 ../PP_845/Nagra.jpg 46 ../Pst/BOBBIN.PNG 33 ../Pst/4xEL84.zip 32 ../RegulHT/Shunt/1.gif 3 ../RegulHT/Shunt/2.gif 5 ../PP_EL36Triode/EL36-115.pdf 54 ../Transfos/EI96A-5000.jpg 23 ../PP_ECL86/THD0dB.pdf 319 ../PP_ECL86/THD-9dB.pdf 317 ../PP_ECL86/THD-6dB.pdf 318 ../PP_ECL86/Square_50KHz.pdf 321 ../PP_ECL86/Square_40Hz.pdf 320 ../PP_ECL86/Square_20Hz.pdf 320 ../PP_ECL86/Square_1KHz.pdf 317 ../PP_ECL86/Square_10KHz.pdf 320 ../PP_ECL86/Schema.gif 319 ../PP_ECL86/PDF.jpg 320 ../PP_ECL86/INSIDE.JPG 319 ../PP_ECL86/BOM.xls 321 ../OPT_da/Page.html 333 ../OPT_da/OPT_da-211.zip 331 ../OPT_da/DA17W.JPG 331 ../OPT_da/4pole.gif 331 ../Images/UKFlag.gif 210 ../Images/PassionTube.jpg 210 ../Images/MONTAGNE50.JPG 212 ../Images/MailMe.gif 90 ../Images/GeekZone.jpg 30 ../Images/DROOPY.GIF 30 ../Images/Diy.jpg 30 ../Images/aurora2_gd.jpg 30 ../Images/Audiyofan.jpg 30 ../Images/ArrowRight.jpg 29 ../Images/ArrowLeft.jpg 30 ../Yves/EL802Drivrs.gif 38 ../Yves/EL36-Triode.jpg 36 ../Yves/EL34.gif 36 ../Yves/EL34-Trioded.gif 37 ../Yves/EI108-1-sq.jpg 35 ../Yves/EI108-1-bp.jpg 38 ../Yves/ECL82-SEPP.gif 38 ../Yves/ECC99-PT.gif 38 ../Yves/ECC88Plate.gif 38 ../Yves/ECC86.gif 38 ../Yves/EC86.jpg 37 ../Yves/Circuit2.cct 38 ../Yves/Choke.jpg 37 ../Yves/Cedus.gif 37 ../Yves/CCSedLongTail.jpg 37 ../Yves/Bias.gif 38 ../Yves/AudioBoxLoop.jpg 38 ../Yves/AlimSEPP.jpg 36 ../Yves/alimriaa.gif 38 ../Yves/AlimPascal.jpg 38 ../Yves/AlimFouch.gif 37 ../Yves/AjPolar.gif 37 ../Yves/813-900V-6K4.gif 36 ../Yves/6SN7-27k-400v.gif 38 ../Yves/6SL7.gif 38 ../Yves/6SL7-lo-Ip.gif 39 ../Yves/6N1pPlate.gif 37 ../Yves/6CA7.gif 37 ../Yves/6C45p-1.gif 38 ../Yves/6C45-Alim.gif 39 ../Yves/6A5.gif 37 ../Yves/50W-25.gif 37 ../Yves/300B-PP-6K4.gif 41 ../Yves/300b-2.gif 39 ../Yves/300b-0.gif 39 ../Yves/276.GIF 37 ../Yves/211plaque.jpg 38 ../Yves/1960crowhurst.pdf 80 ../Xformers/Xformers.zip 26 ../Xformers/Xformers.vbw 25 ../Xformers/Xformers.vbp 24 ../Xformers/TOOLS.BAS 22 ../Xformers/Std.dat 23 ../Xformers/M6x.dat 23 ../Xformers/GLOBAL.BAS 23 ../Xformers/AddCore.frm 24 ../Transfos/EI96A-5000-sim.jpg 16 ../Transfos/EI84A-5000.jpg 16 ../Images/6BM8.jpg 30 ../Circlo_EL86/Dessous.jpg 47 ../Circlo_EL86/Avant.jpg 46 ../Circlo_EL86/1EN00201.pdf 46 ../Yves/Warmth.jpg 37 ../Yves/USBAudioBox.jpg 37 ../Yves/UL-or-not-UL.gif 38 ../Yves/StackedSupplies.gif 38 ../Yves/SSCCS.GIF 37 ../Yves/SrppSym.jpg 38 ../Yves/SRPPPP1.gif 38 ../Yves/Simul2.jpg 38 ../Yves/Simul1.psu 37 ../Yves/ShuntReg1.jpg 36 ../Yves/Shunt_Regs.gif 37 ../Yves/SEPP_pre.gif 38 ../Yves/SEPP.GIF 38 ../Yves/separateur 37 ../Yves/Selfs-a-air.jpg 36 ../Yves/SE_2A3-SQ.jpg 38 ../Yves/screwy1.jpg 38 ../Yves/riaa.gif 35 ../Yves/relais.gif 37 ../Yves/Quinet-Page-304.jpg 35 ../Yves/QUADIICIR.JPG 37 ../Yves/Pulser.gif 38 ../Yves/pstcalc.zip 37 ../Yves/Pre0.gif 37 ../Yves/PORTABLE.jpg 38 ../Yves/Pont_Hybride.gif 37 ../Yves/PNP.GIF 38 ../Yves/PMCT.gif 38 ../Yves/OPT_da-211.zip 37 ../Yves/KT88-Trioded.gif 37 ../Yves/Introt.txt 37 ../Yves/InputStage.gif 37 ../Yves/img_3635.jpg 38 ../Yves/IM18D.jpg 37 ../Yves/HVstereo.psu 38 ../Yves/HVmono.psu 38 ../Yves/H2SET.jpg 37 ../Yves/GU50.gif 38 ../Yves/Gr3gg_OPT.jpg 37 ../Yves/GM70.gif 37 ../Yves/GM70-4K7.gif 38 ../Yves/gec30psu.gif 37 ../Yves/G1Bias.gif 39 ../Yves/FRONT.JPG 37 ../Yves/FIRSTSS.gif 39 ../Yves/Filtre-Bouchra.gif 37 ../Yves/EL86Triode.pdf 38 ../Yves/EL83-Plate.gif 38 ../Yves/EL802LdLine.gif 38 ../Circuits/plate6N2-1.gif 79 ../Circlo_EL86/courants.gif 47 ../Traceur/Page2.html 16 ../Traceur/Page.html 19 ../SE_6L6/THD8W.gif 9 ../SE_6L6/THD4W.gif 9 ../SE_6L6/Page.html 9 ../SE_6L6/Internal_Z.gif 10 ../SE_6L6/IMD_Zoomed.gif 10 ../SE_6L6/DA101a.jpg 9 ../OPT_da/slup125.pdf 329 ../Images/screwy1.jpg 209 ../Images/Mauves.jpg 212 ../Images/FRFlag.gif 29 ../Images/flechegauche.gif 30 ../Images/flechedroite.gif 29 ../Images/Download.jpg 30 ../Images/DA_Logo.gif 30 ../Yves/WhiteCF.gif 38 ../Yves/Simul2.psu 38 ../Yves/Simul1.jpg 37 ../Yves/SE_2A3.jpg 37 ../Yves/SE_2A3-a.jpg 37 ../Yves/Sch1.jpg 36 ../Yves/Reguls.gif 37 ../Yves/PPEL34.jpg 38 ../Yves/PMCT3.gif 38 ../Yves/Overdrive.gif 37 ../Yves/oudonc.gif 37 ../Yves/MoreBootstrap.gif 38 ../Yves/gec30.psu 38 ../Yves/EL509-Triode.gif 39 ../Yves/EFL200_Lplate.gif 38 ../Yves/ECL86-Triode.gif 38 ../Yves/Cedus.mox 38 ../Yves/boucle.jpg 37 ../Yves/6C33.jpg 42 ../Yves/300b-1.gif 38 ../IMD_Tester/VA-multitone.gif 16 ../IMD_Tester/1.jpg 18 ../PP_6AS7/Page.html 21 ../IMD_Tester/2.jpg 19 ../SE_845/V1.gif 6 ../SE_845/SRPP.gif 9 ../SE_845/SRPP-18W_GNFB.gif 10 ../SE_845/Rear.jpg 5 ../SE_845/Protection.jpg 7 ../SE_845/Plate.jpg 10 ../SE_845/Front-x.jpg 7 ../SE_845/EL802-x.jpg 5 ../SE_845/EF184.pdf 10 ../SE_845/ECL86-845.gif 10 ../SE_845/DCCoupled.gif 11 ../SE_845/Compare.gif 7 ../SE_845/845_P2.GIF 7 ../SE_6L6/Front.jpg 4 ../SE_6B4/Front.jpg 2 ../PP_6B4/Projet1.gif 20 ../PP_6AS7/Front.gif 26 ../PP_300B/AB2.gif 31 ../Xformers/DA127.pdf 17 ../PP_6L6/Schema2.gif 83 ../OutsideDocs/RCA_1938_BeamPowerTubes_TechPapers.pdf 19 ../SpeakerBox/DA90-1.jpg 6 ../Xformers/core.tbx 9 ../SE_845/DA107-3.mox 6 ../SE_845/845_P1.GIF 10 ../PP_EL36Triode/Draft1.gif 31 ../RegulHT/Regul.html 12 ../IMD_Tester/1.gif 24 ../SE_845/SRPP-18W_LNFB.gif 6 ../SE_845/Scope.jpg 7 ../SE_845/Lateral.jpg 7 ../PP_6AS7/Schema.gif 23 ../Transfos/EI96A-5000.gif 8 ../SE_845/EL183-Tri-7K3.gif 8 ../SE_845/DA107-3-snap.jpg 4 ../SE_845/Amp.gif 9 ../SE_6L6/Schema.jpg 6 ../SE_845/Top-x.jpg 8 ../Xformers/Main.frm 16 ../SE_845/WhiteNoise.gif 11 ../SE_845/EL802-12K.gif 7 ../SE_845/18w.gif 6 ../SE_845/Thumbs.db 6 ../SE_845/Page.html 5 ../SE_845/EL802-845.gif 8 ../SE_845/3xSQ10K.gif 5 ../SE_6B4/3KAuto.gif 2 ../SE_EL84/Rear.jpg 10 ../SE_845/DA107-3.jpg 6 ../RegulHT/Shunt/3.gif 2 ../RegulHT/Shunt/4.gif 2 ../RegulHT/Totof/PCB-Double.gif 2 ../RegulHT/basic.gif 1 ../RegulHT/Tracking.gif 2 ../Transfos/Dissident/Fiches/DA107.pdf 5 ../Transfos/Dissident/Fiches/TRAL3.pdf 4 ../Transfos/Dissident/DimensionsEI.pdf 2 ../Transfos/Dissident/TRS.pdf 5 ../Transfos/Dissident/Fiches/DA130.pdf 16 ../Transfos/Dissident/Fiches/DA150.pdf 10 ../SE_6B4/Fond.jpg 2 ../SE_EL84/Inside.jpg 11 ../Transfos/Dissident/Fiches/DA17-2a.pdf 93 ../SpeakerBox/SpeakerBox.jpg 4 ../SpeakerBox/BEZEL2.TIF 8 ../SE_300B/KISS/Dsc01135.jpg 2 ../SE_300B/KISS/2.gif 3 ../SE_300B/KISS/1.gif 5 ../test/apacheasp/test.asp 1 ../Yves/SEPP(draft)/Sch7.gif 1 ../SE_6V6/Da33-4.gif 1 ../SE_6V6/DOUBLEVUE.JPG 1 ../SE_6B4/Schema.gif 2 ../SE_6AS7/DA118.pdf 1 ../SE_300B/KISS/Dsc01134.jpg 2 ../SE_300B/KISS/Dsc01133.jpg 1 ../Yves/SEPP(draft)/Article.DOC 2 ../Yves/Audiophile/Audiophile36-6.jpg 1 ../Yves/Audiophile/Audiophile37-17.jpg 1 ../SE_300B/KISS/Dsc01131.jpg 1 ../Transfos/Dissident/Fiches/SF5-300.pdf 5 ../Transfos/Dissident/Fiches/DA152.pdf 4 ../Transfos/Dissident/Fiches/DA134_2.jpg 5 ../Transfos/Dissident/Fiches/DA134_1.jpg 3 ../Transfos/Dissident/Fiches/TRS10.pdf 4 ../Transfos/Dissident/Fiches/TRS9.pdf 2 ../Transfos/Dissident/Fiches/TRS6.pdf 2 ../Transfos/Dissident/Fiches/TRAL5.pdf 2 ../Transfos/Dissident/Fiches/Pascal-1.gif 3 ../OPT_da/Papers/MuvsB.gif 2 ../SE_6AS7/Schema.pdf 2 ../Transfos/Dissident/Aide.html 2 ../Transfos/Dissident/AskOpt.html 2 ../Transfos/Dissident/Logoclair.jpg 1 ../Transfos/Dissident/Fiches/Pascal-1.xls 3 ../Transfos/Dissident/Fiches/EL809.gif 2 ../Yves/MCINTOSH/MC275CE_OWN.PDF 1 ../Yves/MCINTOSH/MI275.JPG 1 ../SE_6B4/6B4-6C4C.JPG 1 ../Yves/Audiophile/Audiophile37-4.jpg 1 ../SE_6AS7/DA117.jpg 1 ../OPT_da/Mesures/Lf_and_Cshunt.xls 2 ../OPT_da/317/setup.zip 1 ../Traceur/Gifs/EL36-Triode-200V-70mA-3K.gif 1 ../Traceur/Gifs/EL86-Triode.gif 1 ../Traceur/Gifs/6V6-anode et G2.gif 1 ../Traceur/Gifs/6CA7vsEL34.gif 1 ../Traceur/Soft/Backup 8bits.rar 1 ../Traceur/PDFs/ecl82pentode_as_triode.pdf 1 ../Yves/Audiophile/Audiophile36-10.jpg 1 ../Yves/Audiophile/Audiophile37-3.jpg 1 ../Yves/Audiophile/Audiophile37-14.jpg 1 ../Yves/Meeting/amboulons.jpg 1 ../Yves/Meeting/Final.jpg 1 ../Yves/Meeting/people3.jpg 1 ../Yves/Meeting/people1.jpg 1 ../Yves/Meeting/people2.jpg 1 ../Yves/Meeting/people4.jpg 1 ../Yves/Meeting/people5.jpg 1 ../Traceur/TDFiles/EF184-3.tdf 1 ../AutoIndex/change_log.html 1 ../AutoIndex/license.html 2 ../css/style.css 1 ../css/tabs.css 1 ../RegulHT/Totof/Schéma-Double.gif 1 ../RegulHT/Totof/Schéma-Simple.gif 1 ../RegulHT/Totof/PCB-Simple.gif 1 ../RegulHT/Totof/Régul HT a DN3545 et IRF820.rar 1 ../RIAA_PC900/Front.jpg 1 ../RIAA_PC900/PSU.gif 1 base_dir/AutoIndex/SIPRO150000755000000000000000000000000013730575265012414 5ustar base_dir/AutoIndex/SIPRO15/Form2.frm0000755000000000000000000026020313730575261014170 0ustar VERSION 5.00 Begin VB.Form Service BackColor = &H00000080& Caption = "Tests et maintenance" ClientHeight = 7200 ClientLeft = 60 ClientTop = 345 ClientWidth = 9435 LinkTopic = "Form2" ScaleHeight = 489.172 ScaleMode = 0 'User ScaleWidth = 640 StartUpPosition = 3 'Windows Default Begin VB.TextBox Spy BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 2040 TabIndex = 111 Top = 6840 Width = 2775 End Begin VB.CommandButton BtPanique Caption = "PANIQUE" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 7200 TabIndex = 108 Top = 6120 Width = 2055 End Begin VB.CommandButton btT1 Caption = "Programmation" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 7200 TabIndex = 103 Top = 6720 Width = 2055 End Begin VB.CommandButton BtSync Caption = "SYNC" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 1575 Left = 4560 TabIndex = 102 Top = 4440 Visible = 0 'False Width = 375 End Begin VB.Timer Timer1 Enabled = 0 'False Interval = 100 Left = 4560 Top = 6240 End Begin VB.CheckBox Check1 Caption = "FinCycle" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 4920 TabIndex = 81 Top = 6840 Width = 2055 End Begin VB.CommandButton BtPowMotOff Caption = "Pas d'alim Moteurs" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 4920 TabIndex = 80 Top = 6360 Width = 2055 End Begin VB.CommandButton BtPwrMotOn Caption = "Alim Moteurs" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 4920 TabIndex = 79 Top = 6120 Width = 2055 End Begin VB.CheckBox Check5 Caption = "Frein" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 4920 TabIndex = 74 Top = 6600 Width = 2055 End Begin VB.Frame Frame1 BackColor = &H00C0FFC0& Caption = "Translation / Guide" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 5880 Left = 4920 TabIndex = 50 Top = 120 Width = 4300 Begin VB.CommandButton BtRSTIT Caption = "RSTI" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 110 Top = 5520 Width = 1095 End Begin VB.TextBox TxCPmm Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 95 Text = "0" Top = 5160 Width = 735 End Begin VB.CheckBox CkDirT BackColor = &H00C0FFC0& Caption = "Direction" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 240 TabIndex = 91 Top = 4920 Width = 1215 End Begin VB.CheckBox CkModeVeloT BackColor = &H00C0FFC0& Caption = "Mode Vlocit" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 240 TabIndex = 89 Top = 4680 Width = 1575 End Begin VB.CommandButton BtFilterT Caption = "Test filtre" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 3000 TabIndex = 87 Top = 5520 Width = 1215 End Begin VB.CommandButton BtHResetT Caption = "RAZ" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 120 TabIndex = 85 Top = 3240 Width = 975 End Begin VB.TextBox TxFilkpT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 20 Text = "0" Top = 3960 Width = 735 End Begin VB.CommandButton BtMajT Caption = "M.A.J Fichier" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 24 Top = 3240 Width = 1335 End Begin VB.TextBox TxIET Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 19 Text = "0" Top = 3600 Width = 735 End Begin VB.CommandButton BtTRJT Caption = "Test trajectoire" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 120 TabIndex = 25 Top = 5520 Width = 1575 End Begin VB.TextBox TxFilkiT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 21 Text = "0" Top = 4320 Width = 735 End Begin VB.TextBox TxFilkdT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 22 Text = "0" Top = 4680 Width = 735 End Begin VB.TextBox TxFililT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 23 Text = "0" Top = 5040 Width = 735 End Begin VB.TextBox TxAccelT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 13 Text = "0" Top = 3600 Width = 735 End Begin VB.TextBox TxVeloT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 15 Text = "0" Top = 3960 Width = 735 End Begin VB.TextBox TxPosT Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 17 Text = "0" Top = 4320 Width = 735 End Begin VB.CheckBox CkAccelRelT BackColor = &H00C0FFC0& Caption = "Rel." BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 14 Top = 3600 Width = 735 End Begin VB.CheckBox CkVeloRelT BackColor = &H00C0FFC0& Caption = "Rel." BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 16 Top = 3960 Width = 855 End Begin VB.CheckBox CkPosRelT BackColor = &H00C0FFC0& Caption = "Rel." BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 18 Top = 4320 Width = 855 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "1 mm =" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 9 Left = 240 TabIndex = 94 Top = 5205 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center AutoSize = -1 'True BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "Tests manuels" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 25 Left = 1320 TabIndex = 83 Top = 3240 Width = 1305 End Begin VB.Line Line2 X1 = 0 X2 = 4320 Y1 = 3120 Y2 = 3120 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "IE" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 23 Left = 3000 TabIndex = 78 Top = 3600 Width = 195 End Begin VB.Label LbIntegrationT Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 73 Top = 1920 Visible = 0 'False Width = 1305 End Begin VB.Label Label2 Alignment = 2 'Center BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "Vlocit lue" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 20 Left = 1560 TabIndex = 72 Top = 2280 Width = 1695 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Intg:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 19 Left = 2280 TabIndex = 71 Top = 1920 Visible = 0 'False Width = 510 End Begin VB.Label Label2 Alignment = 2 'Center BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "Position lue" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 18 Left = 1560 TabIndex = 70 Top = 1200 Width = 1695 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Dsir:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 17 Left = 120 TabIndex = 69 Top = 1920 Width = 615 End Begin VB.Label LbDesiredPosT Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 720 TabIndex = 68 Top = 1920 Width = 1545 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Index:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 16 Left = 2280 TabIndex = 67 Top = 1560 Visible = 0 'False Width = 540 End Begin VB.Label LbIndexPosT Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 66 Top = 1560 Visible = 0 'False Width = 1305 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Rl:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 15 Left = 120 TabIndex = 65 Top = 1560 Width = 465 End Begin VB.Label LbRealPosT Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 720 TabIndex = 64 Top = 1560 Width = 1545 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Dsir:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 14 Left = 2280 TabIndex = 63 Top = 2640 Width = 615 End Begin VB.Label LbDesiredVeloT Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 62 Top = 2640 Width = 1305 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Etat:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 10 Left = 1680 TabIndex = 61 Top = 240 Width = 420 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "kp:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 8 Left = 3000 TabIndex = 60 Top = 3960 Width = 285 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "ki:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 7 Left = 3000 TabIndex = 59 Top = 4320 Width = 225 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "kd:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 6 Left = 3000 TabIndex = 58 Top = 4680 Width = 285 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "il:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 5 Left = 3000 TabIndex = 57 Top = 5040 Width = 165 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Accel:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 3 Left = 120 TabIndex = 56 Top = 3600 Width = 555 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Vlocit:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 2 Left = 120 TabIndex = 55 Top = 3960 Width = 765 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Position" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 1 Left = 120 TabIndex = 54 Top = 4320 Width = 690 End Begin VB.Label LbStatT Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1440 TabIndex = 53 Top = 510 Width = 915 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Rl:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 0 Left = 120 TabIndex = 52 Top = 2640 Width = 465 End Begin VB.Label LbReaelVeloT Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 720 TabIndex = 51 Top = 2640 Width = 1305 End End Begin VB.Frame Frame2 BackColor = &H00C0FFFF& Caption = "Rotation / Broche" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 5880 Left = 240 TabIndex = 26 Top = 120 Width = 4300 Begin VB.CommandButton Command1 Caption = "Command1" Height = 255 Left = 360 TabIndex = 112 Top = 720 Visible = 0 'False Width = 1095 End Begin VB.CommandButton BtRSTIR Caption = "RSTI" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 109 Top = 5520 Width = 1095 End Begin VB.TextBox TxCPTR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 93 Text = "0" Top = 5160 Width = 735 End Begin VB.CheckBox CkDirR BackColor = &H00C0FFFF& Caption = "Direction" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 240 TabIndex = 90 Top = 4920 Width = 1215 End Begin VB.CheckBox CkModeVeloR BackColor = &H00C0FFFF& Caption = "Mode Vlocit" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 240 TabIndex = 88 Top = 4680 Width = 1575 End Begin VB.CommandButton BtFilterR Caption = "Test filtre" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 3000 TabIndex = 86 Top = 5520 Width = 1215 End Begin VB.CommandButton BtHResetR Caption = "RAZ" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 120 TabIndex = 84 Top = 3240 Width = 975 End Begin VB.TextBox TxIER Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 6 Text = "0" Top = 3600 Width = 735 End Begin VB.CheckBox CkPosRelR BackColor = &H00C0FFFF& Caption = "Rel." BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 5 Top = 4320 Width = 855 End Begin VB.CheckBox CkVeloRelR BackColor = &H00C0FFFF& Caption = "Rel." BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 3 Top = 3960 Width = 855 End Begin VB.CheckBox CkAccelRelR BackColor = &H00C0FFFF& Caption = "Rel." BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1800 TabIndex = 1 Top = 3600 Width = 735 End Begin VB.TextBox TxPosR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 4 Text = "0" Top = 4320 Width = 735 End Begin VB.TextBox TxVeloR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 2 Text = "0" Top = 3960 Width = 735 End Begin VB.TextBox TxAccelR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 960 TabIndex = 0 Text = "0" Top = 3600 Width = 735 End Begin VB.TextBox TxFililR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 10 Text = "0" Top = 5040 Width = 735 End Begin VB.TextBox TxFilkdR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 9 Text = "0" Top = 4680 Width = 735 End Begin VB.TextBox TxFilkiR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 8 Text = "0" Top = 4320 Width = 735 End Begin VB.CommandButton BtTRJR Caption = "Test trajectoire" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 120 TabIndex = 12 Top = 5520 Width = 1575 End Begin VB.TextBox TxFilkpR Alignment = 1 'Right Justify BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 285 Left = 3360 TabIndex = 7 Text = "0" Top = 3960 Width = 735 End Begin VB.CommandButton BtMajR Caption = "M.A.J Fichier" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 11 Top = 3240 Width = 1335 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "1 Tour =" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 4 Left = 120 TabIndex = 92 Top = 5205 Width = 735 End Begin VB.Label Label2 Alignment = 2 'Center AutoSize = -1 'True BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "Tests manuels" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 24 Left = 1320 TabIndex = 82 Top = 3240 Width = 1305 End Begin VB.Line Line1 X1 = 0 X2 = 4320 Y1 = 3120 Y2 = 3120 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "IE" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 22 Left = 3000 TabIndex = 77 Top = 3600 Width = 195 End Begin VB.Label LbReaelVeloR Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 720 TabIndex = 49 Top = 2640 Width = 1300 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Rl:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 64 Left = 120 TabIndex = 48 Top = 2640 Width = 465 End Begin VB.Label LbStatR Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 1680 TabIndex = 47 Top = 510 Width = 915 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Position:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 63 Left = 120 TabIndex = 46 Top = 4320 Width = 750 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Vlocit:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 62 Left = 120 TabIndex = 45 Top = 3960 Width = 765 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Accel:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 61 Left = 120 TabIndex = 44 Top = 3600 Width = 555 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "il:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 59 Left = 3000 TabIndex = 43 Top = 5040 Width = 165 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "kd:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 58 Left = 3000 TabIndex = 42 Top = 4680 Width = 285 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "ki:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 57 Left = 3000 TabIndex = 41 Top = 4320 Width = 225 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "kp:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 56 Left = 3000 TabIndex = 40 Top = 3960 Width = 285 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Etat:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 54 Left = 1920 TabIndex = 39 Top = 240 Width = 420 End Begin VB.Label LbDesiredVeloR Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 38 Top = 2640 Width = 1305 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Dsir:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 50 Left = 2280 TabIndex = 37 Top = 2640 Width = 615 End Begin VB.Label LbRealPosR Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 720 TabIndex = 36 Top = 1560 Width = 1545 WordWrap = -1 'True End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Rl:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 49 Left = 120 TabIndex = 35 Top = 1560 Width = 465 End Begin VB.Label LbIndexPosR Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 34 Top = 1560 Visible = 0 'False Width = 1305 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Index:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 48 Left = 2280 TabIndex = 33 Top = 1560 Visible = 0 'False Width = 540 End Begin VB.Label LbDesiredPosR Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 720 TabIndex = 32 Top = 1920 Width = 1545 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Dsir:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 47 Left = 120 TabIndex = 31 Top = 1920 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "Position lue" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 46 Left = 1560 TabIndex = 30 Top = 1200 Width = 1695 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Intg:" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Index = 45 Left = 2280 TabIndex = 29 Top = 1920 Visible = 0 'False Width = 510 End Begin VB.Label Label2 Alignment = 2 'Center BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "Vlocit lue" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 41 Left = 1560 TabIndex = 28 Top = 2280 Width = 1695 End Begin VB.Label LbIntegrationR Alignment = 1 'Right Justify BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2880 TabIndex = 27 Top = 1920 Visible = 0 'False Width = 1305 End End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "E/S C" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 195 Index = 12 Left = 240 TabIndex = 107 Top = 6720 Width = 525 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "E/S B" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 195 Index = 11 Left = 240 TabIndex = 106 Top = 6480 Width = 525 End Begin VB.Label LbESC Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 960 TabIndex = 105 Top = 6720 Width = 915 End Begin VB.Label LbESB Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 960 TabIndex = 104 Top = 6480 Width = 915 End Begin VB.Label LbMotB Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 2160 TabIndex = 101 Top = 6480 Visible = 0 'False Width = 915 End Begin VB.Label LbMotC Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 3480 TabIndex = 100 Top = 6480 Visible = 0 'False Width = 915 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "IF Mot.Pc" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 195 Index = 30 Left = 1920 TabIndex = 99 Top = 6480 Visible = 0 'False Width = 840 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "IF Mot.Pb" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 195 Index = 29 Left = 1920 TabIndex = 98 Top = 6240 Visible = 0 'False Width = 840 End Begin VB.Label LbMotA Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 3480 TabIndex = 97 Top = 6240 Width = 915 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "IF Mot.Pa" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 195 Index = 28 Left = 2520 TabIndex = 96 Top = 6240 Width = 840 End Begin VB.Label Label2 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "E/S A" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 195 Index = 21 Left = 240 TabIndex = 76 Top = 6240 Width = 525 End Begin VB.Label LbESA Alignment = 1 'Right Justify AutoSize = -1 'True BackColor = &H00FFFFFF& BorderStyle = 1 'Fixed Single Caption = "00000000" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 960 TabIndex = 75 Top = 6240 Width = 915 End End Attribute VB_Name = "Service" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Private Sub BtFilterR_Click() SetFilterR End Sub Public Sub SetFilterR() LoadFilters RAxis, Val(TxIER.Text), Val(TxFilkpR.Text), _ Val(TxFilkiR.Text), Val(TxFilkdR.Text), Val(TxFililR) ' GetToken RAxis LM628Poke1 RAxis, UDF 'Apply immediatly ' FreeToken RAxis End Sub Private Sub BtFilterT_Click() SetFilterT End Sub Public Sub SetFilterT() LoadFilters TAxis, Val(TxIET.Text), Val(TxFilkpT.Text), _ Val(TxFilkiT.Text), Val(TxFilkdT.Text), Val(TxFililT) ' GetToken TAxis LM628Poke1 TAxis, UDF 'Apply immediatly ' FreeToken TAxis End Sub Private Sub BtHResetR_Click() DisableDriverR Wait 100 HReset RAxis MoveR 0, RELATIVE EnableDriverR BtTRJR.Enabled = True End Sub Private Sub BtHResetT_Click() DisableDriverT Wait 100 HReset TAxis MoveT 0, RELATIVE EnableDriverT BtTRJT.Enabled = True End Sub Private Sub BtMajR_Click() 'Save current Rotation values. SetLFILR App.Path & "\LM628R.ini" SetLTRJR App.Path & "\LM628R.ini" End Sub Private Sub BtPanique_Click() 'Just Motor Power OFF ? ? PwrMotOff DisableDriverT DisableDriverR End Sub Private Sub BtMajT_Click() 'Save current Translation values. SetLFILT App.Path & "\LM628T.ini" SetLTRJT App.Path & "\LM628T.ini" End Sub Private Sub SetLFILR(File As String) WriteIniString File, "LFIL", "IE", TxIER.Text WriteIniString File, "LFIL", "kp", TxFilkpR.Text WriteIniString File, "LFIL", "ki", TxFilkiR.Text WriteIniString File, "LFIL", "kd", TxFilkdR.Text WriteIniString File, "LFIL", "il", TxFililR.Text End Sub Private Sub SetLTRJR(File As String) WriteIniString File, "LTRJ", "Acceleration", TxAccelR.Text WriteIniString File, "LTRJ", "RelAcceleration", CkAccelRelR.Value WriteIniString File, "LTRJ", "Velocity", TxVeloR.Text WriteIniString File, "LTRJ", "RelVelocity", CkVeloRelR.Value WriteIniString File, "LTRJ", "Position", TxPosR.Text WriteIniString File, "LTRJ", "RelPosition", CkPosRelR.Value WriteIniString File, "LTRJ", "ModeVelocity", CkModeVeloR.Value WriteIniString File, "LTRJ", "Direction", CkDirR.Value WriteIniString File, "LTRJ", "CountsPerTurn", TxCPTR.Text End Sub Private Sub SetLFILT(File As String) WriteIniString File, "LFIL", "IE", TxIET.Text WriteIniString File, "LFIL", "kp", TxFilkpT.Text WriteIniString File, "LFIL", "ki", TxFilkiT.Text WriteIniString File, "LFIL", "kd", TxFilkdT.Text WriteIniString File, "LFIL", "il", TxFililT.Text End Sub Private Sub SetLTRJT(File As String) WriteIniString File, "LTRJ", "Acceleration", TxAccelT.Text WriteIniString File, "LTRJ", "RelAcceleration", CkAccelRelT.Value WriteIniString File, "LTRJ", "Velocity", TxVeloT.Text WriteIniString File, "LTRJ", "RelVelocity", CkVeloRelT.Value WriteIniString File, "LTRJ", "Position", TxPosT.Text WriteIniString File, "LTRJ", "RelPosition", CkPosRelT.Value WriteIniString File, "LTRJ", "ModeVelocity", CkModeVeloT.Value WriteIniString File, "LTRJ", "Direction", CkDirT.Value WriteIniString File, "LTRJ", "CountsPermm", TxCPmm.Text End Sub Private Sub BtPowMotOff_Click() PwrMotOff End Sub Private Sub BtPwrMotOn_Click() PwrMotOn End Sub Private Sub BtRSTIR_Click() DoRSTI RAxis End Sub Private Sub BtRSTIT_Click() DoRSTI TAxis End Sub Private Sub BtSync_Click() Dim Target As Long 'Use displayed parameters and start both axis simultaneously 'LoadTrajectory function get and free tokens themselves Poke MOTB, ENMOTR + ENMOTT 'Motors enable Target = DPR + Val(TxPosR.Text) * Val(TxCPTR.Text) LoadTrajectory RAxis, _ CkDirR.Value, _ Val(TxAccelR.Text), _ CkAccelRelR.Value, _ Val(TxVeloR.Text), _ CkVeloRelR.Value, _ Target, _ CkPosRelR.Value, _ CkModeVeloR.Value Target = DPT + Val(TxPosT.Text) * Val(TxCPmm.Text) LoadTrajectory TAxis, _ CkDirT.Value, _ Val(TxAccelT.Text), _ CkAccelRelT.Value, _ Val(TxVeloT.Text), _ CkVeloRelT.Value, _ Target, _ CkPosRelT.Value, _ CkModeVeloT.Value GetToken RAxis GetToken TAxis LM628Poke1 RAxis, STT 'Start moving both LM628Poke1 TAxis, STT FreeToken RAxis FreeToken TAxis End Sub Private Sub btT1_Click() Form1.Show Programing = True End Sub Private Sub BtTRJR_Click() Dim Target As Long BtTRJR.Enabled = False Target = Val(TxPosR.Text) * Val(TxCPTR.Text) 'DPR + Val(TxPosR.Text) * Val(TxCPTR.Text) LoadTrajectory RAxis, _ CkDirR.Value, _ Val(TxAccelR.Text), _ CkAccelRelR.Value, _ Val(TxVeloR.Text), _ CkVeloRelR.Value, _ Target, _ CkPosRelR.Value, _ CkModeVeloR.Value GetToken RAxis LM628Poke1 RAxis, STT 'Start moving immediatly ! FreeToken RAxis WaitRtrajectoryComplete BtTRJR.Enabled = True End Sub Private Sub BtTRJT_Click() Dim Target As Long BtTRJT.Enabled = False Target = Val(TxPosT.Text) * Val(TxCPmm.Text) ' + DPT LoadTrajectory TAxis, _ CkDirT.Value, _ Val(TxAccelT.Text), _ CkAccelRelT.Value, _ Val(TxVeloT.Text), _ CkVeloRelT.Value, _ Target, _ CkPosRelT.Value, _ CkModeVeloT.Value GetToken TAxis LM628Poke1 TAxis, STT 'Start moving immediatly ! FreeToken TAxis WaitTtrajectoryComplete BtTRJT.Enabled = True End Sub Private Sub Check1_Click() ' EndCycle Dim X As Byte X = Peek(GIOA) If Check1.Value Then Poke GIOA, X Or ENDCYCLE Else Poke GIOA, X And BRAKEON + MOTPWRON + MOTPWROFF End If End Sub Private Sub Check5_Click() ' Brake Dim X As Byte X = Peek(GIOA) If Check5.Value = 0 Then Poke GIOA, X Or BRAKEON 'Set to disable brake Else Poke GIOA, X And MOTPWRON + MOTPWROFF + ENDCYCLE End If End Sub Private Sub Command1_Click() ReadLM628s UpdateReadValues End Sub Private Sub Form_Load() #If Nohard Then Command1.Visible = True Debug.Print Debug.Print Debug.Print "***************** Service Form Load " TestPeekPoke.Show #End If Timer1.Enabled = False CenterForm Me Me.Show GetLFILR App.Path & "\LM628R.ini" GetLTRJR App.Path & "\LM628R.ini" GetLFILT App.Path & "\LM628T.ini" GetLTRJT App.Path & "\LM628T.ini" Kaccel = 2000 'Default until specified by OP. InitIO HReset RAxis HReset TAxis ' Dummy move once to reset Motor Off flag in LM628 MoveT 0, RELATIVE MoveR 0, RELATIVE EnableDriverR EnableDriverT #If Nohard = 0 Then Timer1.Enabled = True #End If PwrMotOn AllowsFreeShaft = True Me.BackColor = RGB(0, 180, 0) End Sub Private Sub Timer1_Timer() Static AutoExclude As Boolean Static VGuideStep As Integer Static FootStopped As Boolean 'Static BlinkRate As Integer 'Static Blink As Boolean If (Rtoken = True) Or (Ttoken = True) Then ' Debug.Print "Token in use" Exit Sub 'A LM628 multi bytes command is while loading, try later. End If If AutoExclude Then Exit Sub 'Do not reenter AutoExclude = True IOSwitchesA = Peek(GIOA) IOSwitchesB = Peek(GIOB) If IOSwitchesB And FOOTSWITCH Then 'Op is now allowed to press footswitch to free shaft If Not ShaftFree Then ShaftFree = True FootStopped = True DisableDriverR End If Else If ShaftFree And FootStopped Then ShaftFree = False FootStopped = False HReset RAxis MoveR 0, RELATIVE EnableDriverR End If End If FCButtonState = IOSwitchesB And FCBUTTON IOSwitchesC = Peek(GIOC) MotCtrlStat = Peek(MOTA) If Not SuspendPoll Then ReadLM628s 'Get as many infos as possible about hardware state UpdateReadValues 'Show collected If Not Simulate Then SetRef.FollowRPT (-RPT / CNTPERMM) SetRef.LbTurns.Caption = Format(Abs(RPR / CNTPERTURN), "#.0") End If End If ' BlinkRate = BlinkRate + 1 ' If BlinkRate > 3 Then ' BlinkRate = 0 ' Blink = Not Blink ' If Blink Then SetEndCycleOn ' Else: SetEndCycleOff ' End If '' TO DO and TEST WHEN HARDWARE AVAILABLE '' ' If VGuideStep = 0 Then 'Check for move ' If GuideTarget > GuideCurrent Then 'Do move ' MoveVUp ' End If ' If GuideTarget < GuideCurrent Then ' MoveVDown ' End If ' VGuideStep = VGUIDEPERIOD 'Reload interval ' Else ' VGuideStep = VGuideStep - 1 ' End If AutoExclude = False End Sub Private Sub GetLFILR(File As String) TxIER.Text = GetIniString(File, "LFIL", "IE") TxFilkpR.Text = GetIniString(File, "LFIL", "kp") TxFilkiR.Text = GetIniString(File, "LFIL", "ki") TxFilkdR.Text = GetIniString(File, "LFIL", "kd") TxFililR.Text = GetIniString(File, "LFIL", "il") End Sub Private Sub GetLFILT(File As String) TxIET.Text = GetIniString(File, "LFIL", "IE") TxFilkpT.Text = GetIniString(File, "LFIL", "kp") TxFilkiT.Text = GetIniString(File, "LFIL", "ki") TxFilkdT.Text = GetIniString(File, "LFIL", "kd") TxFililT.Text = GetIniString(File, "LFIL", "il") End Sub Private Sub GetLTRJR(File As String) TxAccelR.Text = GetIniString(File, "LTRJ", "Acceleration") CkAccelRelR.Value = Val(GetIniString(File, "LTRJ", "RelAcceleration")) TxVeloR.Text = GetIniString(File, "LTRJ", "Velocity") CkVeloRelR.Value = Val(GetIniString(File, "LTRJ", "RelVelocity")) TxPosR.Text = GetIniString(File, "LTRJ", "Position") CkPosRelR.Value = Val(GetIniString(File, "LTRJ", "Relposition")) CkModeVeloR.Value = Val(GetIniString(File, "LTRJ", "ModeVelocit")) CkDirR.Value = Val(GetIniString(File, "LTRJ", "Direction")) TxCPTR.Text = GetIniString(File, "LTRJ", "CountsPerTurn") End Sub Private Sub GetLTRJT(File As String) TxAccelT.Text = GetIniString(File, "LTRJ", "Acceleration") CkAccelRelT.Value = Val(GetIniString(File, "LTRJ", "RelAcceleration")) TxVeloT.Text = GetIniString(File, "LTRJ", "Velocity") CkVeloRelT.Value = Val(GetIniString(File, "LTRJ", "RelVelocity")) TxPosT.Text = GetIniString(File, "LTRJ", "Position") CkPosRelT.Value = Val(GetIniString(File, "LTRJ", "Relposition")) CkModeVeloT.Value = Val(GetIniString(File, "LTRJ", "ModeVelocit")) CkDirT.Value = Val(GetIniString(File, "LTRJ", "Direction")) TxCPmm.Text = GetIniString(File, "LTRJ", "CountsPermm") End Sub Public Sub UpdateReadValues() LbDesiredPosR.Caption = Format(DPR) LbDesiredPosT.Caption = Format(DPT) LbDesiredVeloR.Caption = Str(DVR) LbDesiredVeloT.Caption = Str(DVT) LbIndexPosR.Caption = Str(IPR) LbIndexPosT.Caption = Str(IPT) LbIntegrationR.Caption = "?" LbIntegrationT.Caption = "?" LbReaelVeloR.Caption = Str(RVR) LbReaelVeloT.Caption = Str(RVT) LbRealPosR.Caption = Format(RPR) LbRealPosT.Caption = Format(RPT) LbMotA.Caption = LongToSBin(MotCtrlStat) LbStatR.Caption = LongToSBin(STATR) LbStatT.Caption = LongToSBin(STATT) LbESA.Caption = LongToSBin(IOSwitchesA) LbESB.Caption = LongToSBin(IOSwitchesB) LbESC.Caption = LongToSBin(IOSwitchesC) End Sub Private Sub TxAccelR_Change() RealAccelR = Val(TxAccelR.Text) End Sub Private Sub TxAccelT_Change() RealAccelT = Val(TxAccelT.Text) End Sub Private Sub TxVeloR_Change() RealVeloR = Val(TxVeloR.Text) End Sub Private Sub TxVeloT_Change() RealVeloT = Val(TxVeloT.Text) End Sub base_dir/AutoIndex/SIPRO15/Global.bas0000755000000000000000000010403613730575264014370 0ustar Attribute VB_Name = "Global" Option Explicit Global Machine As Integer 'The attached machine Public Const NOMACHINE = 0 Public Const SIPROMACHINE = 1 Public Const TESTMACHINE = 2 Public Programing As Boolean ''' Some GLOBAL VARIABLES to control execution ' Global AbortExec As Boolean Global Stepping As Integer Global Simulate As Boolean Global Pause As Boolean Global Suspended As Boolean Global InMacro As Integer Global FootSwitchState As Boolean Global FCButtonState As Boolean 'The physical button Global VButtonState As Boolean 'The Virtual (on screen) button Public ProgCopy As String ' Copy for redo Public SilentRun As Boolean Public SuspendLine As Integer Public SuspendStep As Integer Public RunList As String Public Running As String Public BreakLine As Integer Public Const BYSTEP = 1 'Constants for run mode Public Const SIMUL = 2 Public Const TOSTOP = 4 Public TheCaption As String Public LineNo As Integer 'To show current program line Public StepNo As Integer 'To show current program step Public LastPosDone As String Public PrgFile As String 'Path to files Public CcxFile As String Public GgxFile As String Public PrjFile As String ''' For X (carriage ) axis Public Type DChamber 'Pos and size for a chamber Org As Single Width As Single Free As Single End Type Public Chambers(1 To 4) As DChamber Public Chamber As Integer 'Current chamber( or former) 'Dim ChamberFree As Single 'Space remaining in the current chamber '' Moved in DChamber Public RefOffset As Single 'Actual reference offset from ZERO Public PosT As Single 'Actual carriage location relative to reference (in mm)'' Why not a long ? Public Direction As Integer '(1 = to right, -1 = to left) Const TORIGHT = 1 Const TOLEFT = -1 ''' For Y (shaft) axis Dim PosR As Single '' Why not a long ? Public ShaftFree As Boolean ''' For V (carriage lift) axis Global Const GUIDETRAVEL = 200 Public Guide As Integer ' Current guide Public Guides(1 To 4) As Single 'Offset for guides Public GuideTarget As Single ' Where it should be Public GuideCurrent As Single ' Where it really is Public GuideFromPark As Single ' Where it was before parking Global Const GUIDESTEPPERMM = 10 ' Steps per mm Global Const VGUIDEPERIOD = 100 ' Times Service.Timer1 interval Public TbVstep(0 To 7) As Byte 'Steps for the motors (10, 8, 9, 1, 5, 4, 6, 2) Public CurVstep As Integer Public GDone As Boolean Dim Turns As Single 'Last know values. Used by default if not specified Dim Pitch As Single Dim Layers As Single Global RealVeloR As Long Global RealVeloT As Long Global RealAccelR As Long Global RealAccelT As Long Public Sub Main() Dim S As String Machine = 0 S = LCase(Command$) If Len(S) Then Else StartForm.Show End If Select Case Machine Case NOMACHINE Form1.Show Case SIPROMACHINE Service.Show Case TESTMACHINE Exit Sub End Select End Sub Public Sub InitSpVars() 'Initialize the four special variables Dim I As Integer '' TODO '' Add Guides ? SetNVar ":LargeurC1", Chambers(1).Width SetNVar ":LargeurC2", Chambers(2).Width SetNVar ":LargeurC3", Chambers(3).Width SetNVar ":LargeurC4", Chambers(4).Width Form1.RefreshNVars End Sub Public Sub ProgExec(S As String) Dim LLen As Integer Dim I As Integer Dim Sleft As String Dim Command As String Form1.BtDummy.SetFocus 'Immune default button While Suspended 'Panic ! Stay here Wait 100 Wend If AbortExec Then ShowFatal "--- Excution abandonne ---" S = "" Exit Sub End If If Len(S) = 0 Then If InMacro Then ShowInfo "--- Fin de macro ---" Else ShowInfo "--- Fin du programme ---" End If Exit Sub End If ' Debug.Print S LLen = InStr(S, vbCrLf) 'Look for a Line feed (eol) ' Beep SuspendLine = LineNo LineNo = LineNo + 1 ' If SilentRun Then ' If LineNo = SuspendLine And StepNo = SuspendStep Then 'Target reached ' SilentRun = False ' ShowInfo "Point de reprise . . ." ' End If ' End If If LLen > 1 Then SuspendStep = StepNo StepNo = StepNo + 1 ShowLineStep Sleft = Trim(Left(S, LLen)) 'Current line) #If Nohard Then Debug.Print "Current Line: "; TTrim(Sleft) #End If Form1.CurLine.Caption = Sleft S = Right(S, Len(S) - LLen) 'Remainder I = InStr(Sleft, "#") 'Look for comment If I Then Sleft = Left(Sleft, I - 1) 'Remove comment from current line If Len(Sleft) Then 'Something else ? ' Form1.BtDoProg.Enabled = False Command = GetCommand(Sleft) Sleft = TTrim(Sleft) ' Select Case UCase(Left(Trim(Command), 1)) 'Commands are not case sensitive Select Case Left(Trim(Command), 1) 'Commands ARE case sensitive Case "A" 'Acceleration Kaccel = 1 + 10000 \ EvalExp(GetParam(Sleft)) 'Can't be zero. SetNVar ":Accel", Kaccel ShowInfo "Acclration: " & Format(Kaccel) Case "C" 'Load former file LoadFormer Sleft Case "G" 'Load guide file infos LoadGuide Sleft Case "R" ' Set reference SetRefV Sleft Case "P" ' "POSITION" Position Sleft ' Add (sub) guide offset Case "B" ' "BOBINE", "BOBINER" Roll Sleft ', 0 Case "V" 'Rotation speed in rpm SetRpm Sleft Case "H", "^" ShowInfo "Positionne l'ascenseur" PosVGuide Sleft ' Case "Z" ' ShowInfo "Recherche du zro, patientez !" ' GoToZero Case "[", "D", "T" BlocBegin Sleft, S 'Will not return before end of bloc Case "]", "F" 'End of bloc, exit Exit Sub Case "S" '"IF" command. . . IfBegin Sleft, S Case "!", "I" If Len(Sleft) Then ShowInfo Left(Sleft, Len(Sleft)) Else ShowInfo "Presser bouton" End If WaitFCbutton Case "(", "{", "M" 'Insert/execute another program (macro) DoMacro Sleft, S Case "E", "", "X" StopOrSetMode Sleft Case Else 'Not a command, may be a variable affectation with or without spaces Sleft = Command & Sleft If Len(Sleft) <> 0 Then 'Empty line, ignore I = InStr(Sleft, "=") If I <> 0 Then 'OK, it is an affectation If IsVar(Left(Sleft, I - 1)) Then AffectVar Sleft Else ShowFatal "Mauvais nom de variable" End If Else ShowFatal "Commande inconnue" End If End If End Select End If Else S = Right(S, Len(S) - LLen) 'Eat the line If Len(S) < 2 Then S = "" 'Too short ! End If If Len(Trim(S)) Then ProgExec S 'Up to end of string End Sub Private Sub StopOrSetMode(S As String) Dim Mode As Single Mode = EvalExp(S) '' Set chkboxes according to mode Form1.SetCkMode Mode If SilentRun Then ShowInfo "STOP ATTEIND" End If End Sub Private Sub WaitStep() 'Returns immediatly if not stepping, else wait . . . If AbortExec Then Exit Sub If SilentRun Then Exit Sub If Stepping Then Pause = True While Pause And Not AbortExec Wait 100 Wend End If End Sub Private Sub WaitFCbutton() If AbortExec Then Exit Sub If SilentRun Then Exit Sub Form1.BtFcbutton.Enabled = True 'Enable Virtual button SetEndCycleOn 'Light ON physical button Form1.BtDoProg.Enabled = False VButtonState = False While (Not (FCButtonState Or VButtonState)) And (Not AbortExec) 'Until someone else set it true Wait 100 If IOSwitchesB And FOOTSWITCH Then 'Op is now allowed to press footswitch to free shaft If Not ShaftFree Then ShaftFree = True DisableDriverR End If Else If ShaftFree Then ShaftFree = False HReset RAxis MoveR 0, RELATIVE EnableDriverR End If End If Wend If ShaftFree Then 'Insure shaft is not free ShaftFree = False HReset RAxis MoveR 0, RELATIVE EnableDriverR End If SetEndCycleOff 'Light OFF physical button While FCButtonState ' Wait for OP releases the button Wait 100 Wend ' FCButtonState = False Form1.BtFcbutton.Enabled = False ' SetEndCycleOff 'Light OFF physical button Form1.BtDoProg.Enabled = True End Sub Public Sub ShowInfo(S As String) If SilentRun Then Exit Sub Form1.TxInfo.Text = ExpandExp(S) WaitStep End Sub Public Function ExpandExp(S As String) As String 'Expand expressions included in curly brackets Dim I As Integer Dim T As String Dim L As Integer Dim E As String I = InStr(S, "{") 'Look for an open curly brace If I Then E = Left(S, I - 1) 'Get the left part T = Mid(S, I + 1) L = InStr(T, "}") - 1 'and a balanced closing one If L Then E = E & EvalExp(Left(T, L)) & Right(T, Len(T) - L - 1) ExpandExp = ExpandExp(E) 'More expressions to extend ? Exit Function End If Else ExpandExp = S End If End Function Public Sub ShowFatal(S As String) Beep Form1.TxInfo.Text = Str(LineNo) & " in " & Running & " Erreur: " & S ' AbortExec = True ' Pause = True 'Force pause ' While Pause And Not AbortExec ' Wait 100 ' Wend AbortExec = True End Sub Private Sub IfBegin(Sleft As String, S As String) Dim Condition As Single Condition = EvalExp(Sleft) ShowInfo "Dbut bloc excuter si <" & Sleft & "> diffrent de zro" If Condition > 0 Then ProgExec S Else EatBloc S 'skip ShowLineStep End If ShowInfo "Fin SI" End Sub Private Sub BlocBegin(Sleft As String, S As String) Dim Cline As Integer 'Line number at call Dim LastLine As Integer 'Line number at end of loop Dim CE As String 'Dim Count As Integer Dim Bloc As String Dim TFool As Single Cline = LineNo 'Get the current line number ' CE = GetEndOfLine(S) ' CE = GetCommand(s) CE = Sleft TFool = EvalExp(CE) Bloc = S 'To be repeated ShowInfo "Dbut bloc excuter tant que <" & CE & "> diffrent de zro" If AbortExec Then Exit Sub While EvalExp(CE) > 0 If AbortExec Then Exit Sub ProgExec Bloc ' Will return at end of THIS bloc Bloc = S ' ready for repeat If EvalExp(CE) >= TFool Then ShowFatal "< " & CE & "> n'volue pas correctement" End If LastLine = LineNo LineNo = Cline StepNo = StepNo - 1 ' ?? Wend EatBloc S ' LineNo = LastLine StepNo = StepNo + 1 ' ?? again ?? ShowLineStep ShowInfo "Fin TANT QUE" End Sub Private Sub EatBloc(S As String) Dim Command As String Dim L As String Dim I As Integer While Len(S) L = GetEndOfLine(S) If Len(L) Then LineNo = LineNo + 1 Command = GetCommand(L) Select Case Left(Trim(Command), 1) Case "[", "D", "T", "S" I = I + 1 Case "]", "F" I = I - 1 End Select End If If I < 0 Then LineNo = LineNo - 1 ' Ooops ! Exit Sub End If Wend End Sub Private Sub Roll(S As String) Dim X As Single Dim T As String Dim P As String Dim L As String Dim W As Single Dim TLeft As Single Dim TC As Single Dim Diff As Single Dim CTurns As Single Dim N As Integer Dim Reverse As Integer #If Nohard Then Debug.Print "Roll "; S #End If T = GetParam(S) '1st is turns P = GetParam(S) '2nd is pitch L = GetParam(S) '3rd is layers If T = "?" Then 'Get the two other parameters and compute missing If P <> "_" Then Pitch = EvalExp(P) If L <> "_" Then Layers = EvalExp(L) Turns = Layers * Chambers(Chamber).Free / Pitch ' Turns that will fits ' If Turns < 1 Then Turns = Layers * Chambers(Chamber).Width / Pitch 'Less than one: next layer ElseIf P = "?" Then If T <> "_" Then Turns = EvalExp(T) If L <> "_" Then Layers = EvalExp(L) Pitch = Layers * Chambers(Chamber).Free / Turns ' Pitch to use to fill a layer ElseIf L = "?" Then If P <> "_" Then Pitch = EvalExp(P) If T <> "_" Then Turns = EvalExp(T) Layers = Pitch * Turns / Chambers(Chamber).Width End If ' All parameters are know ShowInfo Str(Turns) & " tour(s) au pas de" & Str(Pitch) & "mm en" & Str(Layers) & " couche(s)" If AbortExec Then Exit Sub 'Don't do more SetNVar ":Tours", Turns SetNVar ":Pas", Pitch SetNVar ":Couches", Layers Form1.RefreshNVars SetRef.LbTurns.Caption = "0.0" If Not Simulate Then LM628Poke1 RAxis, DFH 'Voids accumulation in positions register ' CTurns = 0 If Pitch = 0 Or Turns = 0 Or Layers = 0 Then 'No travel, just rotate shaft If Not Simulate Then Form1.BtDoProg.Enabled = False MoveR Turns, RELATIVE Form1.BtDoProg.Enabled = True End If CTurns = Turns ' ShowTurns CTurns Exit Sub End If '' TODO : Since total turns and total layers are know, count layers remaining rather than turns. '' While Layers . . . '' TLeft = Turns 'Local turns counter While TLeft <> 0 If AbortExec Then Form1.BtDoProg.Enabled = True Exit Sub End If Reverse = 1 If Pitch < 0 Then Reverse = -1 Pitch = Abs(Pitch) End If If Chambers(Chamber).Free <= Abs(Pitch) Then 'No enough room Chambers(Chamber).Free = Chambers(Chamber).Width 'A new layer Direction = -Direction End If TC = Chambers(Chamber).Free / Pitch 'How many turns could fits in this layer If TLeft < TC Then TC = TLeft 'But no more than specified ! DisableOp 'Voids operator intervention while motors move Form1.BtDoProg.Enabled = False If Not Simulate Then W = TC * Pitch 'Width to use If W > Chambers(Chamber).Free Then W = Chambers(Chamber).Free MoveSync Reverse * Direction * W, TC Else W = TC * Pitch 'Width to use If W > Chambers(Chamber).Free Then W = Chambers(Chamber).Free SetRef.CarLoc = SetRef.CarLoc + Reverse * Direction * W SetRef.WaitMe SetRef.LbTurns.Caption = Format(TC, "#.0") End If EnableOp Chambers(Chamber).Free = Chambers(Chamber).Free - TC * Pitch * Reverse If Chambers(Chamber).Free <= Pitch Then 'No enough room Chambers(Chamber).Free = Chambers(Chamber).Width 'A new layer Direction = -Direction End If TLeft = TLeft - TC Wend ' SetNVar ":CCN", CSng(Chamber) 'now in position SetNVar ":DChambre", Chambers(Chamber).Width - Chambers(Chamber).Free SetNVar ":SBobinage", CSng(Direction) Form1.RefreshNVars Form1.BtDoProg.Enabled = True ' ShowTurns CTurns End Sub Private Function WidePitch(Pitch As Single, Turns As Single, CWidth As Single) As Single ' Increase pitch so that Turns fit in an integral number of layers having a width of CWidth Dim L As Single 'Layers needed WidePitch = Pitch 'May be we are lucky ! L = Turns * Pitch / CWidth 'How many layers needed ? If L - Int(L) <> 0 Then 'Not an integer L = Int(L) + 1 'Add one layer WidePitch = L * CWidth / Turns 'Total available space divided by turns. End If End Function Public Function Reposition() As Boolean If Len(LastPosDone) Then Position LastPosDone LastPosDone = "" Reposition = True End If End Function Private Sub Position(S As String) ' Up to 4 params: guide, chamber, origin (side)and offset separated by any no print char ' W/O parameters: Park up and Right Dim X As Single Dim V As Single Dim P As String Dim Offset As Single Dim O As String Dim HG As Single ' LastPosDone = S ParkVguides If Len(S) <= 1 Then 'Only one or no parameter at all: park '' TODO '' Check Simulation Select Case UCase(S) Case "D" ShowInfo "Dgagement droite" If AbortExec Then Exit Sub Form1.BtDoProg.Enabled = False If Not Simulate Then MoveTAbs TOTALTRAVEL Else SetRef.CarLoc = TOTALTRAVEL SetRef.WaitMe End If Case "G" ShowInfo "Dgagement gauche" If AbortExec Then Exit Sub Form1.BtDoProg.Enabled = False If Not Simulate Then MoveTAbs 0 Else SetRef.CarLoc = 0 SetRef.WaitMe End If Case "H" ShowInfo "Dgagement en haut" If AbortExec Then Exit Sub Case Else ShowInfo "Parking" If AbortExec Then Exit Sub Form1.BtDoProg.Enabled = False If Not Simulate Then MoveTAbs TOTALTRAVEL Else SetRef.CarLoc = TOTALTRAVEL SetRef.WaitMe End If End Select Form1.BtDoProg.Enabled = True Exit Sub End If Chamber = 1 'Default values if not specified. Guide = 1 X = EvalExp(GetParam(S)) If X > 0 And X < 5 Then Guide = Int(X) HG = EvalExp(GetParam(S)) SetNVar ":HGuide", HG X = EvalExp(GetParam(S)) If X > 0 And X < 5 Then Chamber = Int(X) SetNVar ":NChambre", CSng(Chamber) V = Chambers(Chamber).Org - Guides(Guide) 'Add Guide offset wich is negative ! P = GetParam(S) Offset = EvalExp(GetParam(S)) Chambers(Chamber).Free = Chambers(Chamber).Width - Offset SetNVar ":NDispo", Chambers(Chamber).Free Select Case P 'May be litteral "G" or "D" Case "D" Direction = TOLEFT V = V + Chambers(X).Width - Offset P = " droite" O = " -" & Format(Offset) & "mm" Case "G" Direction = TORIGHT V = V + Offset 'EvalExp(GetParam(S)) P = " gauche" O = " +" & Format(Offset) & "mm" Case Else If EvalExp(P) >= 0 Then 'Any positive value means relative to LEFT Direction = TORIGHT V = V + Offset P = " gauche" O = " +" & Format(Offset) & "mm" Else Direction = TOLEFT V = V + Chambers(X).Width - Offset P = " droite" O = " -" & Format(Offset) & "mm" End If End Select ShowInfo "Positionnement guide" & Str(Guide) & " " & P & " de chambre" & Str(Chamber) & O & " (" & Format(V + RefOffset) & "mm)" If AbortExec Then Exit Sub Form1.BtDoProg.Enabled = False If Not Simulate Then '''' Use absolute positionning to move carriage alone MoveTRef V 'MoveTRef absolute relative to RefOffset Else SetRef.CarLoc = V + RefOffset SetRef.WaitMe End If SetNVar ":NGuide", CSng(Guide) Form1.RefreshNVars Form1.BtDoProg.Enabled = True End Sub Private Sub SetRpm(S As String) Dim X As Single X = EvalExp(GetParam(S)) ShowInfo "Vitesse broche " & X & " tours minute" Form1.HsRotate.Value = Int(X) SetNVar ":Vitesse", X End Sub Private Function GetCommand(S As String) ' Remove the command string from S and returns it Dim I As Integer Dim L As Integer I = 1 While IsWhite(Mid(S, I, 1)) And I <= Len(S) 'Skip leading white spaces I = I + 1 Wend L = I While Not IsWhite(Mid(S, L, 1)) And L <= Len(S) 'to next space L = L + 1 Wend GetCommand = Mid(S, I, L - I) If Len(GetCommand) = 0 Then S = "" Exit Function End If ' Returns remaining of the line (if any) If Len(S) > Len(GetCommand) Then S = Right(S, Len(S) - L) Else S = "" End If End Function Private Function GetEndOfLine(S As String) Dim I As Integer I = InStr(S, Chr(10)) If 1 = 0 Then Exit Function GetEndOfLine = Left(S, I) S = Mid(S, I + 1) ', Len(S) - 1) End Function Public Function NotWhite(S) As String ' Returns the first notwhite string found in S Dim I As Integer Dim L As Integer I = 1 While IsWhite(Mid(S, I, 1)) And I <= Len(S) 'Skip leading white spaces I = I + 1 Wend L = I While Not IsWhite(Mid(S, L, 1)) And L <= Len(S) 'to next space L = L + 1 Wend NotWhite = Mid(S, I, L - I) End Function Private Function GetParam(S As String) As String 'Extract /remove and returns param in param from S. 'S truncated. Dim I As Integer I = 1 While IsWhite(Mid(S, I, 1)) And I <= Len(S) 'Skip leading white spaces I = I + 1 Wend While Not IsWhite(Mid(S, I, 1)) And I <= Len(S) GetParam = GetParam & Mid(S, I, 1) I = I + 1 Wend If Len(S) >= I - 1 Then S = Right(S, Len(S) - (I - 1)) End Function Private Function IsWhite(S As String) As Boolean If S = " " Or S = Chr(9) Or S = Chr(10) Or S = Chr(13) Then IsWhite = True 'space, tab, lf or cr End Function Private Sub AffectVar(S As String) 'Affect a value to a variable and return value Dim I As Integer Dim Var As String Dim Value As String Dim V As Single I = InStr(S, "=") If I > 0 Then Var = TTrim(Left(S, I - 1)) Value = TTrim(Right(S, Len(S) - I)) SetNVar Var, EvalExp(Value) Form1.RefreshNVars ShowInfo "La variable '" & Var & "' vaut " & Str(GetNVar(Var)) End If End Sub Public Function IsVar(S As String) As Boolean Dim C As Integer Dim I As Integer IsVar = False If Len(S) = 0 Then Exit Function C = Asc(Left(S, 1)) 'Check for first letter to be lower case or an underscore or an ":" If C >= Asc("a") And C <= Asc("z") Or C = Asc(":") Or C = Asc("_") Then 'Good candidate For I = 1 To Len(S) 'Let's check remaining C = Asc(Mid(S, I, 1)) If C < Asc("0") Then Exit Function If C > Asc("z") Then Exit Function If (C > Asc("Z") And C < Asc("_")) Then Exit Function If (C > Asc(":") And C < Asc("A")) Then Exit Function If C = Asc("'") Then Exit Function Next IsVar = True 'No forbiden character found End If End Function Public Function EvalExp(Exp As String) As Single ' Recursive expression parser ' Credits to Jos de Jong Dim P As Integer Dim E As String Dim I As Integer Dim J As Integer Dim SRight As String Dim Sleft As String Dim Op As String Dim Temp As Single E = TTrimAll(Exp) 'Remove all spaces. Better to do that before initial call ! ! ! Debug.Print "EvalExp "; E If IsVar(E) Then EvalExp = GetNVar(E) 'just get variable value as string Exit Function End If For J = 1 To 11 Op = Mid("?<>-+\%/*^E", J, 1) P = InP(UCase(E), Op, 255) While P > 0 If IsOp(E, Op, P) Then Sleft = Left(E, P - 1) SRight = Right(E, Len(E) - P) Select Case Op Case "?" 'Force any non nul value to be 1 Temp = EvalExp(SRight) If Temp <> 0 Then Temp = 1 EvalExp = Temp Exit Function Case "<" 'Floor EvalExp = Int(EvalExp(SRight)) Exit Function Case ">" 'Ceil Temp = Int(EvalExp(SRight)) If Temp < EvalExp(SRight) Then EvalExp = Temp + 1 Else EvalExp = Temp End If Exit Function Case "-" EvalExp = EvalExp(Sleft) - EvalExp(SRight) Exit Function Case "+" EvalExp = EvalExp(Sleft) + EvalExp(SRight) Exit Function Case "*" EvalExp = EvalExp(Sleft) * EvalExp(SRight) Exit Function Case "/" If EvalExp(SRight) = 0 Then ' ShowInfo "FATAL: " & Str(Sleft) & " / " & Str(SRight) & ": Division par 0" Exit Function End If EvalExp = EvalExp(Sleft) / EvalExp(SRight) Exit Function Case "\" 'Integer division If EvalExp(SRight) = 0 Then 'Divide by 0 Exit Function End If EvalExp = EvalExp(Sleft) \ EvalExp(SRight) Exit Function Case "%" 'Division remainder If EvalExp(SRight) = 0 Then 'Divide by 0 Exit Function End If EvalExp = Int(EvalExp(Sleft) Mod EvalExp(SRight)) Exit Function Case "^" EvalExp = EvalExp(Sleft) ^ EvalExp(SRight) Exit Function Case "E" EvalExp = EvalExp(Sleft) * 10 ^ EvalExp(SRight) Exit Function End Select End If If P > 0 Then P = InP(E, Op, P - 1) 'not an operator, search for another before Wend Next 'Check if expression starts and ends with parenthesis If Left(E, 1) = "(" And Right(E, 1) = ")" Then E = Mid(E, 2, Len(E) - 2) 'Remove them EvalExp = EvalExp(E) 'And evaluate Exit Function End If ' No more operator, evaluates and returns the operand EvalExp = Val(E) Exit Function End Function Private Function InP(Source As String, Search As String, start As Integer) As Integer ' Search backward for "Search" in "String" returning where it was found. Dim N As Integer Dim Bopen As Integer Dim Bclose As Integer Dim Sign As String N = start If N > Len(Source) Then N = Len(Source) - Len(Search) + 1 Bopen = 0 Bclose = 0 ' Do While N Sign = Mid(Source, N, Len(Search)) If (Sign = Search) And (Bopen = Bclose) Then InP = N Exit Function End If If Left(Sign, 1) = "(" Then Bopen = Bopen + 1 If Left(Sign, 1) = ")" Then Bopen = Bopen - 1 N = N - 1 Wend ' Loop Until N <= 0 InP = 0 End Function Private Function IsOp(expr As String, Op As String, N As Integer) As Boolean Dim Sign As String Select Case Op Case "+" If N = 1 Then IsOp = False Exit Function End If If Mid(expr, N - 1, 1) = "E" Then 'Do not accept lower case e wich can be a variable If N > 2 Then If InStr("1234567890.", Mid(expr, N - 2, 1)) > 0 Then IsOp = False Exit Function End If End If End If IsOp = True Exit Function Case "-" If N = 1 Then IsOp = False Exit Function Else Sign = Left(expr, N - 1) Sign = Right(RTrim(Sign), 1) If InStr("=?<>+-/*\%^", Sign) > 0 Then IsOp = False Exit Function End If If Mid(expr, N - 1, 1) = "E" And N > 2 Then If InStr("1234567890.", Mid(expr, N - 2, 1)) > 0 Then IsOp = False Exit Function End If End If End If IsOp = True Exit Function End Select IsOp = True End Function Public Sub ShowLineStep() Form1.LbShowLS.Caption = "Line: " & Str(LineNo) & " Pas: " & Str(StepNo) Form1.SelectLine LineNo End Sub Private Sub DisableOp() '' TODO '' Disable pertinent buttons ' Form1.MousePointer = vbHourglass End Sub Private Sub EnableOp() ' Form1.MousePointer = vbDefault End Sub Private Sub SetRefV(S As String) RefOffset = EvalExp(GetParam(S)) ShowInfo "La rfrence est " & Format(RefOffset, "0.0##") End Sub Public Sub ParkVGuide(Guide As Integer) Lift.MoveGuide Guide, 0 While Not GDone Wait 100 Wend End Sub Public Sub ParkVguides() Lift.MoveGuide 0, 0 Lift.MoveGuide 1, 0 While Not GDone Wait 100 Wend End Sub Public Sub UnparkVGuide() GuideTarget = GuideFromPark End Sub Public Sub PosVGuide(S As String) Dim G As Single Dim H As Single G = EvalExp(GetParam(S)) H = EvalExp(GetParam(S)) If G < 0 Or G > 1 Then ShowFatal "Pas cet ascenseur !" Exit Sub End If If H < 0 Or H > GUIDETRAVEL Then ShowFatal "Pas cet tage" Exit Sub End If Lift.MoveGuide Int(G), Int(H) While Not GDone Wait 100 Wend End Sub Public Sub WaitForPark() While GuideTarget <> GuideCurrent 'Camp here Wait 100 Wend End Sub Public Sub DisableDriverV() 'poke 0 . . . End Sub Public Sub EnableDriverV() 'Poke TbVstep(CurVstep) End Sub Public Sub MoveVUp() CurVstep = CurVstep + 1 If CurVstep > 4 Then CurVstep = 0 EnableDriverV End Sub Public Sub MoveVDown() CurVstep = CurVstep - 1 If CurVstep < 1 Then CurVstep = 4 EnableDriverV End Sub Private Sub DoMacro(Sleft As String, S As String) Dim SaveLineno As Integer Dim SaveTxProg Dim SaveS As String Dim File As String Dim F As Integer Dim T As String Dim Macro As String Dim Path As String If Not MarkRunning(Sleft) Then ShowFatal Sleft & " ne peut s'appeler lui mme" Exit Sub End If SaveLineno = LineNo ' Save caller's context SaveTxProg = Form1.TxProg.Text SaveS = S Path = GetIniString(INIFILE, "PATH", "PROGRAM") If Len(Path) = 0 Then Path = App.Path File = Path & "\" & NotWhite(Sleft) & ".prg" F = IsOpen(File, "R", 10) If F = 0 Then ShowFatal "--- " & GetFname(File) & " introuvable ---" Exit Sub End If Running = GetFname(File) ShowInfo "Excution de " & GetFname(File) If AbortExec Then Exit Sub '' TODO Restore current before ? While Not EOF(F) Line Input #F, T Macro = Macro & T & vbCrLf Wend XClose F, 10 InMacro = InMacro + 1 Form1.TxProg.Text = Macro 'This trigs TxProg change etc .... Form1.Caption = TheCaption & "( Excution macro: " & Running & ")" LineNo = 0 ProgExec Macro ' Execute content of the "macro" file LineNo = SaveLineno 'At return, restore context Form1.TxProg.Text = SaveTxProg Form1.Caption = TheCaption & "(" & GetFname(PrgFile) & ")" S = SaveS InMacro = InMacro - 1 FreeRunning Sleft End Sub Private Sub LoadFormer(Sleft As String) Dim F As Integer Dim I As Integer Dim File As String Dim T As String Dim Path As String Path = GetIniString(INIFILE, "PATH", "FORMER") If Len(Path) = 0 Then Path = App.Path File = Path & "\" & TTrim(Sleft) & ".ccx" ShowInfo "Chargement des infos carcasse " & GetFname(File) F = IsOpen(File, "R", 10) If F = 0 Then ShowFatal "--- " & GetFname(File) & " introuvable ---" Exit Sub End If For I = 0 To 7 Line Input #F, T Form1.TxC(I) = T Next XClose F, 10 Form1.SetupChambers End Sub Private Sub LoadGuide(Sleft As String) Dim F As Integer Dim I As Integer Dim File As String Dim T As String Dim Path As String Path = GetIniString(INIFILE, "PATH", "GUIDE") If Len(Path) = 0 Then Path = App.Path File = Path & "\" & TTrim(Sleft) & ".ggx" ShowInfo "Chargement des infos guide " & GetFname(File) F = IsOpen(File, "R", 10) If F = 0 Then ShowFatal "--- " & GetFname(File) & " introuvable ---" Exit Sub End If For I = 0 To 3 Line Input #F, T Form1.TxG(I) = T Next XClose F, 10 Form1.SetupGuides End Sub Private Function MarkRunning(ToAdd As String) If InStr(RunList, UCase(ToAdd)) <> 0 Then ' Already running MarkRunning = False Exit Function Else RunList = RunList & UCase(ToAdd) & "," 'Add in list MarkRunning = True End If End Function Private Sub FreeRunning(ToRemove As String) Dim I As Integer I = InStr(RunList, UCase(ToRemove)) If I > 0 Then RunList = Left(RunList, Len(RunList) - Len(ToRemove)) End Sub base_dir/AutoIndex/SIPRO15/HelpFile.txt0000755000000000000000000001733213730575262014732 0ustar ==== RESUME DES COMMANDES DE PROGRAMMATION ==== # Commentaire sans effet. ! (ou I) Pause suivi d'instructions pour l'oprateur. [ (ou D ou T) Dbut bloc rpter (Imbricables) . ] (ou F) Fin bloc rpeter ou excuter (voir commande S). ( (ou M) Appel sous programme. Suivi de nom de fichier "x.prg". A Acceleration . B Bobiner . C Suivi de nom de fichier "x.ccx" E Test et change le mode d'Excution du programme. G Suivi de nom de fichier "x.ggx". H (ou ^) Hauteur du guide . P Positionner chariot et guide R Dfinir la Rfrence. S Si :Debut d'un bloc de commandes excuter (Imbricables) . Z Cherche la limite gauche (Zro). ==== SYNTAXE GENERALE ==== Le premier caractre d'une commande DOIT toujours tre majuscule. Il DOIT exister un espace entre la commande et ses paramtres ainsi qu'entre les paramtres eux mmes. Le nom de la commande peut tre rallong volont afin d'amliorer la lisibilit mais SANS espaces. Exemples: Bobiner ou BOBINER est equivalent B Carcasse est quivalent C Debut ou DebutBloc est quivalent D etc... Reprsente un NOMBRE, une VARIABLE ou une EXPRESSION. Un NOMBRE ne doit contenir que des chiffres, le sparateur dcimal est le point (.). Un nom de VARIABLE DOIT commencer par une lettre minuscule ou le signe _. Il peut contenir un nombre quelconque de chiffres, de lettres minuscules ou majuscules ou le signe _ mais PAS d'espaces. Le contenu d'une VARIABLE est un NOMBRE. Une EXPRESSION DOIT contenir des NOMBRES ou des VARIABLES spars par des oprateurs et renvoie un NOMBRE. Les espaces sont facultatifs. Les oprateurs + - / * ^ et E sont supports ainsi que : \ Division entire. % Reste de la division. > Qui renvoie le nombre entier immdiatement suprieur. < Qui renvoie le nombre entier immdiatement infrieur. ? Qui renvoie la valeur 1 pour toute valeur diffrente de 0 (zro). Les parenthses sont supportes. ==== DETAIL DE LA SYNTAXE DE CHAQUE COMMANDE dans l'ordre logique d'emploi.==== == Syntaxe Z (Zero) Dplace le chariot vers sa position extrme gauche et l'enregistre. DOIT tre effectue chaque mise sous tension. Le bouton "Zro" de la zne verte (chariot) dans la fentre de programation a le mme effet. == Syntaxe R (Rfrence) Distance entre la position ZERO du chariot et le bord gauche de la premire chambre/carcasse pour le premier guide. Sert de base de calcul pour toutes les commandes P suivantes. Le bouton "Rfrence" de la zne verte (chariot) dans la fentre de programmation autorise le positionnement visuel de la rfrence. == Syntaxe P (Position) sans paramtre ou P D Dgage le guide vers le haut et le chariot vers la droite. P G Dgage le guide vers le haut et le chariot vers la gauche. P H Dgage le guide vers le haut, ne dplace pas le chariot. P Dplace le chariot pour faire concider un guide avec une chambre/carcasse. est le numro du guide de 1 4. est la profondeur du guide dans la chambre en millimtres. est le numro de la chambre de 1 4. Si < 0, positionne le guide gauche de la chambre. Le bobinage suvant se fera vers la droite. Si > 0, positionne le guide droite de la chambre. Le bobinage suivant se fera vers la gauche. Les lettres "G" ou "D" majuscules sont aussi acceptes. (facultatif, 0 par dfaut). En millimtres. Si positif, corrige la position vers l'intrieur de la chambre. Si ngatif, corrige la position vers l'extrieur de la chambre. Variables affecte. L'excution de cette commande met jour les variables suivantes: :NChambre = N de la chambre :LDispo = Largeur dispo dans la chambre :NGuide = N du Guide NOTE ::: Les raccourcis P G, P D et P H n'affectent pas ces variables. == Syntaxe H ou ^ (Hauteur guides) en mms. 0 est la position haute. == Syntaxe A (Acceleration) Ajuste la valeur de l'acclration en dbut et en fin de couche. == Syntaxe B (Bobine) Seulement deux paramtres doivent tre spcifis, le troisime (indiqu par un ?) est calcul en fonction des deux autres et de la largeur de la chambre/carcasse. NOTE ::: Un pas spcifi 0 fait tourner la broche du nombre de tours spcifi, le paramtre est ignor. NOTE ::: Si les trois paramtres sont spcifis, le nombre de couches est ignor. Variables affectes. L'excution de cette commande met jour les variables suivantes: :DChambre = Decalage dans la chambre :SBobinage = Sens du bobinage, +1 vers la gauche, -1 vers la droite. :Tours = Nombre de tours efectivement bobins. :Pas = Pas effectivement utilis. :Couches = Nombre de couches effectivement bobines Aprs excution, les trois valeurs rellement utilises sont disponibles dans les variables ":Tours", ":Pas" et ":Couches". Elles sont remises jour chaque excution de la commande. == Syntaxe D (DbutBloc) ou T (Tantque) Dbut de bloc de commande itrer tant que est suprieure zro. est une expression rvalue chaque itration. Une erreur est signale si la valeur de condition ne diminue pas ce qui aboutirait un nombre infini de rptitions. Les blocs rpter sont imbricables. F (Finbloc) : Fin du bloc rpter. == Syntaxe S (Si) Debut de bloc de commande excuter si est suprieure a zro. F (FinSi) : Fin du bloc a excuter. == Syntaxe M (Macro ou sous programme) Fichier Fichier est le nom du fichier.prg excuter qui peut lui mme invoquer une autre macro mais ne doit JAMAIS aboutir s'invoquer elle mme ce qui cerait une boucle infinie. Les macros hritent des variables, c'est la seule faon de les paramtrer. == Syntaxe E (Excution) Dfinit et teste le mode d'excution du programme. Il y a trois modes d'excution combinables et dfinissables par cette commande comme par les trois cases cocher suivantes: - Pas pas: (Valeur 1) Le programme s'arrte chaque ligne en dtaillant les effets de la commande. - Simulation: (Valeur 2) Les moteurs ne sont pas pilots, les mouvements du chariot sont simuls dans la fentre "Dfinir la rfrence" - Coi: (Valeur 4) Le programme s'excute sans effets apparents mais excute tous les calculs intrmdiares. Le mode pas pas est ignor La valeur donne la commande E est la somme des valeurs individuelles, les valeurs les plus utiles sont: 0 : Excution Normale. 1 : Excution pas pas. 2 : Excution simule. 3 : Excution pas pas simule. 6 : Excution coite simule. La commande E est excute quel que soit le mode courant puis l'excution se poursuit dans le nouveau mode spcifi. La combinaison de ces trois modes facilite la mise au point d'un programme ainsi que la reprise aprs un incident. IMPORTANT: les mouvements du chariot n'tant pas effectus en mode Coi, la commande E provoquant la reprise DOIT prceder une commande de positionnement. base_dir/AutoIndex/SIPRO15/LM628.bas0000755000000000000000000005336613730575263013750 0ustar Attribute VB_Name = "LM628" Option Explicit ''''''''''''''''''''''''''''''''''''''''''' ''' Hardware adresses and usage ''' 'LM628s Base addresses Global Const RAxis = &H100 'Rotation(W) Global Const TAxis = &H104 'Translation(X) Global Const RELATIVE = True 'Set corresponding bit to 1 Global Const ABSOLUTE = False 'Set corresponding bit to 0 Global Const CNTPERTURN = 720 Global Const CNTPERMM = 1000 Global Const TOTALTRAVEL = 160 'As Charly said Public Kaccel As Single 'Global Const KACCEL = 200 'Global Ports(1 To 2) As Long 'LM628 command codes Global Const RESET = 0 'As expected ! Global Const PORT8 = 5 '8 bits output (not used) Global Const PORT12 = 6 '12 bits output Global Const DFH = 2 'Define Home Global Const SIP = 3 'Set Index Position Global Const LPEI = &H1B 'Interrupt On Error Global Const LPES = &H1A 'Stop on Error Global Const SBPA = &H20 'Set Breakpoint Absolute Global Const SBPR = &H21 'Set Breakpoint Relative Global Const MSKI = &H1C 'Mask Interrupt Global Const RSTI = &H1D 'Reset Interrupt Global Const LFIL = &H1E 'Load Filter 'Bits allocation in Control Word for LFIL command Global Const LDil = 1 Global Const LDkd = 2 Global Const LDki = 4 Global Const LDkp = 8 Global Const UDF = 4 'Update Filter Global Const LTRJ = &H1F 'Load Trajectory 'Bits allocation in Control Word for LTRJ command Global Const POSREL = 1 Global Const LDPOS = 2 Global Const VELOREL = 4 Global Const LDVELO = 8 Global Const ACCREL = 16 Global Const LDACC = 32 Global Const TMOTOFF = 256 Global Const STOPABRUPT = 512 Global Const STOPSOFT = 1024 Global Const VELOMODE = 2048 Global Const FWD = 4096 Global Const STT = 1 'Start Trajectory Global Const RDSTAT = 0 'Read Satus adress 'Bits allocation in RDSTAT: Global Const Busy = 1 Global Const CmdError = 2 Global Const TrajectComplete = 4 Global Const IndexPulse = 8 Global Const WrapAround = 16 Global Const ExessivePos = 32 Global Const BkPointReached = 64 Global Const MototOff = 128 Global Const RDSIGS = &HC 'Read Signals Register Global Const RDIP = 9 'Read Index Position Global Const RDDP = 8 'Read Desired Position Global Const RDRP = &HA 'Read Real Position Global Const RDDV = 7 'Read Desired Velocity Global Const RDRV = &HB 'Read Real Velocity Global Const RDSUM = &HD 'Read Integration Sum '8255 IO Board Global Const GIOA = &H300 'Bit alocation in GIOA Global Const BRAKEON = 8 'output 1 to release brake Global Const MOTPWRON = 1 'output: Pulse to switch Motors Supply On Global Const MOTPWROFF = 2 'output: Pulse to switch Motors Supply Off Global Const ENDCYCLE = 4 'output: ? Global Const GIOB = &H301 'Bit allocation in GIOB Global Const PROTECT = 4 'input: Protection Open Global Const GENPWR = 1 'input: Main Power On Global Const MOTPWR = 2 'input: Motors Powered Global Const FCBUTTON = 8 'input: Fin Cycle Global Const FOOTSWITCH = 16 'input: FootSwitch Global Const GIOC = &H302 'Bit allocation in GIOC Global Const GIOCreg = &H303 'Bit allocation in GIOCreg 'Control PP3 on Motor Control Board Global Const MOTA = &H110 'Bit allocation in MOTA Global Const OneTurn = 1 'Input (Latched ?) Global Const OneStep = &H10 'Input (Latched ?) Global Const ENDT = &H20 'Input: Carriage End of Travel Global Const DRVTOK = &H40 'Input: ? Global Const DRVROK = &H4 'Input: ? Global Const MOTB = &H111 'Bit allocationin MOTB Global Const ENMOTR = 1 ' output: Enable Rotation Global Const ENMOTT = 2 ' output: Enable Translation Global Const MOTC = &H112 'Bit allocation in MOTC ' UNUSED ' Global Const MOTCreg = &H113 'Bit allocation in MOTCreg ' UNUSED ' ''' End of Hardware adresses and usage ''' ''''''''''''''''''''''''''''''''''''''''''''''''' '' Some variables to emulate peek an poke when debging w/o hardware Public vGIOA As Byte Public vGIOB As Byte Public vGIOC As Byte Public vMOTA As Byte Public vMOTB As Byte Public vMOTC As Byte Public vMOTCreg As Byte Public vRaxis As Byte Public vTaxis As Byte 'Some current values updated by the timer Public STATR As Long Public STATT As Long Public SIGSR As Long Public SIGST As Long Public IPR As Long Public IPT As Long Public DPR As Long Public DPT As Long Public DVR As Long Public DVT As Long Public RVR As Long Public RVT As Long Public RPR As Long Public RPT As Long Public SUMR As Long Public SUMT As Long Public IOSwitchesA As Long 'Integer Public IOSwitchesB As Long Public IOSwitchesC As Long Public MotCtrlStat As Long Public IOSwitchesP As Long 'Previously read values to detect changes Public MotCtrlStatP As Long Global Rpm As Long ' Rotation speed Global RStoppedAt As Single Global TStoppedAt As Single Global Zeroed As Boolean Public CurrentVG As Integer 'Location of the vertical guide Public TargetVG As Integer 'from 0 (up) to MAXVG Public Const MAXVG = 1000 'Steps to move full range ' InterLock flags Global SuspendPoll As Boolean Global Rtoken As Boolean 'Dialog pending when true Global Ttoken As Boolean Global AllowsFreeShaft As Boolean Public Sub SetEndCycleOn() Poke GIOA, Peek(GIOA) Or ENDCYCLE End Sub Public Sub SetEndCycleOff() Poke GIOA, Peek(GIOA) And Not ENDCYCLE ' Debug.Print "SetEndCycleOff "; Hex(Not ENDCYCLE) End Sub Public Function AdjustFormat(X As Long) As Long 'Returns a 30bits signed value as expected by LM628 AdjustFormat = X 'Except if ... If X < &HC0000000 Then AdjustFormat = &HC0000000 End If If X > &H3FFFFFFF Then AdjustFormat = &H3FFFFFFF End If ' Debug.Print "Adjust", X, Hex(AdjustFormat) End Function Public Sub InitIO() #If Nohard = 1 Then Debug.Print "****************** Public Sub InitIO()" #End If Poke GIOCreg, &H8A 'Affect pins direction ? Poke MOTCreg, &H91 'Affect pins direction ? Poke GIOA, BRAKEON ' + MOTPWRON ' Release brake only, no power applied Poke MOTB, 0 'Disable motor drivers End Sub Public Sub EnableDriverR() Poke MOTB, Peek(MOTB) Or ENMOTR End Sub Public Sub EnableDriverT() Poke MOTB, Peek(MOTB) Or ENMOTT If Programing Then Form1.TOnOff.Visible = True End Sub Public Sub DisableDriverR() Poke MOTB, Peek(MOTB) And Not ENMOTR End Sub Public Sub DisableDriverT() Poke MOTB, Peek(MOTB) And Not ENMOTT If Programing Then Form1.TOnOff.Visible = False End Sub Public Sub PwrMotOff() Poke GIOA, Peek(GIOA) Or MOTPWROFF Wait 100 Poke GIOA, Peek(GIOA) And Not MOTPWROFF Wait 100 End Sub Public Sub PwrMotOn() Poke GIOA, Peek(GIOA) Or MOTPWRON Wait 100 Poke GIOA, Peek(GIOA) And Not MOTPWRON Wait 100 End Sub Public Sub ReadLM628s() '' TODO '' Remove calls to unused registers #If Nohard = 1 Then Debug.Print "****************** ReadLM628s " ' MsgBox "", vbOKOnly, "Public Sub ReadLM628s()" ' Exit Sub #End If STATR = Peek(RAxis) 'read base adress W/O any test STATT = Peek(TAxis) ' SIGSR = ReadData(RAxis, RDSIGS, 2) ' SIGST = ReadData(TAxis, RDSIGS, 2) ' IPR = ReadData(RAxis, RDIP, 4) ' IPT = ReadData(TAxis, RDIP, 4) DPR = ReadData(RAxis, RDDP, 4) DPT = ReadData(TAxis, RDDP, 4) RPR = ReadData(RAxis, RDRP, 4) RPT = ReadData(TAxis, RDRP, 4) DVR = ReadData(RAxis, RDDV, 4) DVT = ReadData(TAxis, RDDV, 4) RVR = ReadData(RAxis, RDRV, 2) RVT = ReadData(TAxis, RDRV, 2) ' SUMR = ReadData(RAxis, RDSUM, 2) ' SUMT = ReadData(TAxis, RDSUM, 2) End Sub Public Function ReadData(Port As Long, Cmde As Byte, Bytes As Integer) As Long ' Obtain values from LM628 readable registers. ' Cmde is the command code, Bytes is the length of data to be read. ' #If Nohard = 1 Then ' MsgBox "Axis: " & Axis & vbCrLf & "Code: " & Str(Code) & vbCrLf & "Bytes: " & Str(Bytes) ' Exit Function ' #End If GetToken Port LM628Poke1 Port, Cmde ReadData = RcvData(Port, Bytes) FreeToken Port End Function Public Function RcvData(Port As Long, Bytes As Integer) As Long Dim B As Byte Dim I As Integer Dim J As Integer Dim X As Double Dim T(1 To 4) As Integer ' #If Nohard = 1 Then ' T(1) = &H0 ' T(2) = &H0 ' T(3) = &H0 ' T(4) = &H1 ' ' For I = 1 To Bytes ' B = T(I) 'Simulate peek a byte ' X = X * 256 'Accumulate in a double to void sign interpretation ' X = X + B ' Debug.Print I, X ' Next ' If X >= 2 ^ 31 Then 'Too large for a signed long ' X = X - 2 ^ 32 'Convert to a signed long ' End If ' RcvData = X ' Debug.Print RcvData, Hex(RcvData) ' Exit Function ' #End If ' GetToken Port Wbusy Port For I = 1 To Bytes / 2 For J = 1 To 2 B = Peek(Port + 1) ' Data address is at port+1 X = X * 256 X = X + B Next Wbusy Port Next If X >= 2 ^ 31 Then 'Too large for a signed long X = X - 2 ^ 32 'Convert to a signed long End If RcvData = X #If Nohard Then Debug.Print "Read value "; X #End If ' FreeToken Port End Function Public Sub HReset(Port As Long) ' Reset the LM628 and reload filter parameters. Dim R As Byte #If Nohard = 1 Then Debug.Print "****************** HReset "; Hex(Port) Exit Sub #End If SuspendPoll = True Wait 100 'Alow current poll to finish While R <> &HC0 'Or R <> &HC0 While R <> &HC4 'Or R <> &HC4 Poke Port, RESET 'Or a software RESET if hardware not available Wait 2 'Wait for LM628 terminates internal reset sequence. R = Peek(Port) Or &H40 'Read STSAT Wend LM628Poke1 Port, RSTI LM628Poke2 Port, 0 'Disable all interrupts Wait 2 R = Peek(Port) Or &H40 Wend Wait 2 LM628Poke1 Port, PORT12 LM628Poke1 Port, RSTI LM628Poke2 Port, 0 'Disable all interrupts LM628Poke1 Port, MSKI LM628Poke2 Port, 0 'Mask all interrupts If Port = RAxis Then Service.SetFilterR If Port = TAxis Then Service.SetFilterT SuspendPoll = False End Sub Public Sub LoadFilters(Port As Long, SI As Byte, kp As Long, ki As Long, kd As Long, il As Long) #If Nohard = 1 Then ' MsgBox "Port: " & Str(Port) & vbCrLf & "SI: " & Str(SI) & vbCrLf & "kp: " & Str(kp) & vbCrLf & "kd: " & Str(kd) & vbCrLf & "ki: " & Str(ki) & vbCrLf & "il: " & Str(ki), _ vbOKOnly, "Public Sub LoadFilters(Port As Long, SI As Byte, kp As Long, kd As Long, ki As Long, il As Long)" Debug.Print "LoadFilters "; Port, Hex(SI), Hex(kp), Hex(ki), Hex(kd), Hex(il) Exit Sub #End If ' GetToken Port LM628Poke1 Port, LFIL LM628Poke2 Port, SI * 256 + LDil + LDkd + LDki + LDkp 'Load all parameters LM628Poke2 Port, kp LM628Poke2 Port, ki LM628Poke2 Port, kd LM628Poke2 Port, il ' FreeToken Port End Sub Public Sub LoadTrajectory(Port As Long, _ Dir As Boolean, _ Acc As Long, _ RelAcc As Boolean, _ Velov As Long, _ RelVelo As Boolean, _ Pos As Long, _ RelPos As Boolean, _ Velom As Boolean) Dim ControlWord As Long #If Nohard = 1 Then Static N As Integer N = N + 1 Debug.Print "LoadTrajectory (" & Format(N) & ") Port :", Port, N Debug.Print "Dir", "Acc", "RelAcc", "VeloV", "RelVelo", "Pos", "RelPos", "Velom" Debug.Print Dir, Acc, RelAcc, Velov, RelVelo, AdjustFormat(Pos), RelPos, Velom Exit Sub #End If GetToken Port LM628Poke1 Port, LTRJ 'Send command code ControlWord = LDPOS + LDVELO + LDACC 'Build Control Word If Dir Then ControlWord = ControlWord + FWD If RelAcc Then ControlWord = ControlWord + ACCREL If RelVelo Then ControlWord = ControlWord + VELOREL If RelPos Then ControlWord = ControlWord + POSREL If Velom Then ControlWord = ControlWord + VELOMODE ' Debug.Print Hex(ControlWord) Service.Spy.Text = LongToSBin(ControlWord) LM628Poke2 Port, ControlWord ''''''Theese Parameters have to be formated . . . LM628Poke4 Port, Acc LM628Poke4 Port, Velov LM628Poke4 Port, AdjustFormat(Pos) FreeToken Port End Sub Public Sub DoRSTI(Port As Long) LM628Poke1 Port, RSTI LM628Poke2 Port, 0 End Sub Public Function Peek(Port As Long) As Byte #If Nohard = 1 Then ' Debug.Print "peek "; Hex(Port) Select Case Port Case GIOA Peek = vGIOA Case GIOB Peek = vGIOB Case GIOC Peek = vGIOC Case MOTA Peek = vMOTA Case MOTB Peek = vMOTB Case MOTC Peek = vMOTC Case vMOTCreg Peek = vMOTCreg ' Case RAxis ' Peek = vRaxis ' Case TAxis ' Peek = vTaxis Case Else Peek = &HFF End Select Debug.Print "peek "; Hex(Port), Peek Exit Function #End If Peek = DlPortReadPortUchar(Port) End Function Public Sub Poke(Port As Long, V As Byte) 'don't care if busy ' Send a single byte to an IO. #If Nohard = 1 Then Debug.Print "Poke "; Hex(Port), Hex(V) Select Case Port Case GIOA vGIOA = V TestPeekPoke.Text1 = Str(V) Case GIOB vGIOB = V TestPeekPoke.Text2 = Str(V) Case GIOC vGIOC = V TestPeekPoke.Text3 = Str(V) Case MOTA vMOTA = V TestPeekPoke.Text4 = Str(V) Case MOTB vMOTB = V TestPeekPoke.Text4 = Str(V) Case MOTC vMOTC = V TestPeekPoke.Text5 = Str(V) Case vMOTCreg vMOTCreg = V TestPeekPoke.Text6 = Str(V) Case RAxis vRaxis = V TestPeekPoke.Text7 = Str(V) Case TAxis vTaxis = V TestPeekPoke.Text8 = Str(V) End Select Exit Sub #End If DlPortWritePortUchar Port, V End Sub Public Sub LM628Poke1(Port As Long, V As Byte) ' Send a single byte (command) to one LM628 waiting for not busy. #If Nohard = 1 Then ' Just skip Debug.Print "LM628Poke1 "; Hex(Port), Hex(V) Exit Sub #End If #If Nohard = 2 Then ' Show where we are MsgBox "Port: " & Hex(Port) & vbCrLf & "V: " & Hex(V), vbOKOnly, "Public Sub LM628Poke1(Port As Long, V As Byte)" Exit Sub #End If Wbusy Port DlPortWritePortUchar Port, V End Sub Public Sub LM628Poke2(Port As Long, V As Long) 'when busy free ' Send a 16 bit data word as two 8 bits, MSB first into LM628. #If Nohard Then Debug.Print "Poke2", Hex(V), Hex(V \ 256), Hex(V And 255) #End If Wbusy Port Poke Port + 1, (V \ 256) 'Shift right Poke Port + 1, V And 255 'Mask End Sub Public Sub LM628Poke4(Port As Long, V As Long) ' Send a 32 bits data word to one LM628. Dim Y As Long Y = V \ 65536 'Right shift 16bits but sign is lost ! If V < 0 Then Y = Y - 1 'Restore it. Y = Y And 65535 'And truncate. Funny isn't it #If Nohard Then Debug.Print "Poke4", Hex(V), Hex(Y), Hex(V And 65535) #End If LM628Poke2 Port, Y 'Send 16 msb checking busy LM628Poke2 Port, V And 65535 End Sub Public Sub Wbusy(Port As Long) 'Wait for LM628 not busy #If Nohard = 1 Then Exit Sub #End If While Peek(Port) And Busy 'Stay here ! 'Should be (Port + RDSTAT) but since RDSTAT is 0 . . . Wend End Sub Public Sub GetToken(Port As Long) ' Wait for token free then get it #If Nohard = 1 Then Debug.Print "---- GetToken", Port ' Exit Sub #End If If Port = RAxis Then While Rtoken = True DoEvents 'Camp here until token free Wend Rtoken = True 'mark not free ' Debug.Print Port & " Token in use" End If If Port = TAxis Then While Ttoken = True DoEvents Wend Ttoken = True ' Debug.Print Port & " Token in use" End If End Sub Public Sub FreeToken(Port As Long) ' Release token #If Nohard Then Debug.Print "---- FreeToken", Port #End If If Port = RAxis Then Rtoken = False ' Debug.Print Port & " Token free" End If If Port = TAxis Then Ttoken = False ' Debug.Print Port & " Token free" End If End Sub Public Sub MoveSync(mms As Single, Turns As Single) ' Move both axis simultaneously using relative positioning. ' It rolls the specified turns number at Rpm (global) speed ' while simultaneously moving the carriage by the specified number of millimeters. ' Positive turns values mean clockwise rotation (when looking to the shaft) ' Positive mms values mean the carriage moves to the right. ' Returns only after the command in completed and the hardware is ' ready to accept a new order ' With the mecanical constants of the Sipro hardware, we have a pitch of ' 1mm per turn when the rotation velocity is 0.72 times the translation velocity. ' Thus, VeloT = VeloR / 0.72 * pitch (in mms). Pitch being mms / Turns. Dim V As Long EnableDriverT V = RealVeloR / 0.72 * (Abs(mms) / Abs(Turns)) 'Must be positive. LoadTrajectory RAxis, False, 1 + RealVeloR / Kaccel, False, RealVeloR, False, -Turns * CNTPERTURN, True, False LoadTrajectory TAxis, False, 1 + V / Kaccel, False, V, False, -mms * CNTPERMM, True, False DoRSTI RAxis DoRSTI TAxis LM628Poke1 RAxis, STT LM628Poke1 TAxis, STT WaitTrajectoriesComplete '' TODO '' Replace by read RPT when hard available #If Nohard Then SetRef.CarLoc = SetRef.CarLoc + mms 'Show in SetRef SetRef.WaitMe #End If DisableDriverT End Sub Public Sub WaitTrajectoriesComplete() #If Nohard Then Debug.Print "WaitTrajectoriesComplete" ' Wait 500 ' Exit Sub #End If While 1 If ((Peek(RAxis) And TrajectComplete) = TrajectComplete) And ((Peek(TAxis) And TrajectComplete) = TrajectComplete) Then Exit Sub ' Both terminate End If DoEvents ' Wait 100 Sleep 100 Wend End Sub Public Sub WaitRtrajectoryComplete() #If Nohard Then Debug.Print "WaitRtrajectoryComplete" ' Wait 500 ' Exit Sub #End If While 1 If ((Peek(RAxis) And TrajectComplete) = TrajectComplete) Then Exit Sub DoEvents ' Wait 100 Sleep 100 Wend End Sub Public Sub WaitTtrajectoryComplete() #If Nohard Then Debug.Print "WaitTtrajectoryComplete" ' Wait 500 ' Exit Sub #End If While 1 If ((Peek(TAxis) And TrajectComplete) = TrajectComplete) Then Exit Sub DoEvents ' Wait 100 Sleep 100 Wend End Sub Public Sub MoveTRel(mms As Single) MoveT mms, RELATIVE End Sub Public Sub MoveTAbs(mms As Single) MoveT mms, ABSOLUTE End Sub Public Sub MoveT(mms As Single, AR As Boolean) EnableDriverT LoadTrajectory TAxis, False, 1 + RealVeloT / Kaccel, False, RealVeloT, False, -mms * CNTPERMM, AR, False DoRSTI TAxis 'Clear pending status LM628Poke1 TAxis, STT WaitTtrajectoryComplete #If Nohard Then If AR = ABSOLUTE Then 'To show carriage move in SetRef SetRef.CarLoc = mms Else SetRef.CarLoc = SetRef.CarLoc + mms End If SetRef.WaitMe #End If DisableDriverT End Sub Public Sub MoveR(Turns As Single, AR As Boolean) LoadTrajectory RAxis, False, 1 + RealVeloR / Kaccel, False, RealVeloR, False, -Turns * CNTPERTURN, AR, False DoRSTI RAxis 'Clear pending status LM628Poke1 RAxis, STT WaitRtrajectoryComplete End Sub Public Sub MoveTRef(mms As Single) ' Go to mms from reference #If Nohard Then Debug.Print "MoveTRef "; RefOffset - mms #End If MoveT mms + RefOffset, ABSOLUTE End Sub Public Sub GoToZero() 'Move carriage slowly just away from ENDT switch '' TODO '' Permettre abandon si pb Dim SaveVeloT As Long #If Nohard Then Debug.Print "GoToZero " Zeroed = True ParkVguides Exit Sub #End If SaveVeloT = RealVeloT RealVeloT = 100000 'Slow while searching for zero ParkVguides If (Peek(MOTA) And ENDT) <> ENDT Then 'We are not already past ENDT While (Peek(MOTA) And ENDT) <> ENDT MoveTRel -2 ' move to the left in ?? mms steps up to ENDT DoEvents Wend End If While (Peek(MOTA) And ENDT) = ENDT 'We are past ENDT MoveTRel 0.05 ' move to the right in small steps DoEvents Wend LM628Poke1 TAxis, DFH 'Define home here Zeroed = True RealVeloT = SaveVeloT End Sub base_dir/AutoIndex/SIPRO15/Math.bas0000755000000000000000000002055313730575260014056 0ustar Attribute VB_Name = "Module1" '========================================================== ' Muhammad Abubakar ' ' '========================================================== 'You can use the code as u like in your projects but please 'give credit where credit is due :) ' '======================================= November 14th 2014 ' Added operators: ' "\" (integer division) and "%" (division remainder) ' By y.monmagnon@wanadoo.fr '=========================================================== Option Explicit Public Function parse(expr As String) As Double Dim i As Double, a As String Dim start As Double, endat As Double expr = Trim(expr) If InStr(expr, "(") <> 0 Then i = 1 While (InStr(expr, "(") <> 0) a = Mid(expr, i, 1) If a = "(" Then start = i ElseIf a = ")" Then If start = 0 Then MsgBox "Invalid Syntax." Exit Function End If endat = i i = Val(givePrecedence(Mid(expr, start + 1, endat - start - 1))) expr = Left(expr, start - 1) & Str(i) & Right(expr, Len(expr) - endat) start = 0: endat = 0 i = 0 End If i = i + 1 Wend End If If expr <> "" Then parse = Val(givePrecedence(expr)) Else parse = i End If End Function Private Function Eval(temp As String, sign As String, prevExpr As String) As String Select Case sign Case "+": Eval = Str(Val(prevExpr) + Val(temp)) Case "-": Eval = Str(Val(prevExpr) - Val(temp)) Case "*": Eval = Str(Val(prevExpr) * Val(temp)) Case "/": If Val(temp) = 0 Then MsgBox "Divide by zero" & vbCrLf & "Ignored", vbCritical, "MathParser" Else Eval = Str(Val(prevExpr) / Val(temp)) End If Case "^": Eval = Str(Val(prevExpr) ^ Val(temp)) Case "\": Eval = Str(Val(prevExpr) \ Val(temp)) Case "%": Eval = Str(Val(prevExpr) Mod Val(temp)) End Select End Function Private Function givePrecedence(expr As String) As String Dim X As Integer, temp As String Do While (InStr(expr, "!") <> 0 Or InStr(expr, "*") <> 0 Or InStr(expr, "/") <> 0 Or InStr(expr, "^") <> 0 _ Or InStr(expr, "+") <> 0 Or InStr(expr, "-") <> 0 Or InStr(expr, "\") <> 0 Or InStr(expr, "%") <> 0) DoEvents X = InStr(expr, "!") If X <> 0 Then temp = solveFor("!", expr) Else X = InStr(expr, "^") If X <> 0 Then temp = solveFor("^", expr) Else X = InStr(expr, "/") If X <> 0 Then temp = solveFor("/", expr) Else X = InStr(expr, "\") If X <> 0 Then temp = solveFor("\", expr) Else X = InStr(expr, "%") If X <> 0 Then temp = solveFor("%", expr) Else X = InStr(expr, "*") If X <> 0 Then temp = solveFor("*", expr) Else X = InStr(expr, "+") If X <> 0 Then temp = solveFor("+", expr) Else X = InStr(expr, "-") If X <> 0 Then temp = solveFor("-", expr) End If End If End If End If End If End If End If End If If temp = "" Then Exit Do Else expr = temp End If Loop givePrecedence = expr End Function Private Function GetNumFrom(Pos As Integer, expr As String) As String Dim i As Integer, temp As String Dim a As String If Pos <= Len(expr) Then For i = Pos To Len(expr) '{ a = Mid(expr, i, 1) If Asc(a) >= 48 And Asc(a) <= 58 Or a = " " Or a = "." _ Or ((a = "-" Or a = "+") And Trim(temp) = "") Then temp = temp & a Else If LCase(a) = "e" Then temp = temp & "E" & GetNumFrom(i + 1, expr) 'Recursion i = Len(expr) Else ' MsgBox "Invalid syntax", vbCritical, "MathParser" 'wrong syntax, u can handle error as you like End If i = Len(expr) End If Next '} GetNumFrom = temp End If End Function Private Function solveFor(sign As String, expr As String) As String '{ Dim X As Integer, start As Integer, endat As Integer Dim temp As String, a As String, i As Integer start = 1 X = InStr(expr, sign) If sign <> "!" Then If sign = "+" Or sign = "-" Then a = GetNumFrom(1, expr) If Len(a) = Len(expr) Then solveFor = "" Exit Function End If temp = GetNumFrom(Len(a) + 1, expr) If Sgn(Val(temp)) < 0 Then sign = "-" Else: sign = "+" End If X = InStr(Len(a), expr, sign) endat = Len(a) + Len(temp) temp = Eval(GetNumFrom(X + 1, expr), sign, a) expr = Left(expr, start - 1) & temp & Right(expr, Len(expr) - endat) solveFor = expr Exit Function End If End If 'i = InStr(x + 1, expr, sign) For i = X - 1 To 1 Step -1 'going back a = Mid(expr, i, 1) If Asc(a) >= 48 And Asc(a) <= 58 Or a = " " Or a = "." Or LCase(a) = "e" Then temp = a & temp Else If (a = "-" Or a = "+") And i - 1 > 0 Then If Mid(expr, i - 1, 1) = "e" Then temp = a & temp Else start = i + 1 i = 1 End If Else start = i + 1 i = 1 End If End If Next If Trim(temp) <> "" Then 'solving for factorial If sign = "!" Then If Int(Val(temp)) <> Val(temp) Then MsgBox "Invalid syntax", vbCritical, "MathParser" 'wrong syntax, handle it in whatever way u awnt Else expr = Left(expr, start - 1) & Str(fact(Val(temp))) & Right(expr, Len(expr) - X) solveFor = expr End If Else 'its not a factorial calculations endat = X + Len(GetNumFrom(X + 1, expr)) temp = Eval(GetNumFrom(X + 1, expr), sign, temp) expr = Left(expr, start - 1) & temp & Right(expr, Len(expr) - endat) 'Job done, go back solveFor = expr End If Else solveFor = "" End If '} End Function 'Algo for factorial Private Function fact(num As Integer) As Double Dim b As Double b = 1 For num = 1 To num b = b * num 'I wish I could write it as b * = num :( Next fact = b End Function base_dir/AutoIndex/SIPRO15/MesGuides0000755000000000000000000000000013730575265014301 5ustar base_dir/AutoIndex/SIPRO15/SetRef.frm0000755000000000000000000002276013730575262014400 0ustar VERSION 5.00 Begin VB.Form SetRef Caption = "Dfinir la rfrence" ClientHeight = 1800 ClientLeft = 60 ClientTop = 345 ClientWidth = 11070 ClipControls = 0 'False ControlBox = 0 'False LinkTopic = "Form2" ScaleHeight = 1800 ScaleMode = 0 'User ScaleWidth = 100 StartUpPosition = 3 'Windows Default Visible = 0 'False Begin VB.CommandButton BtCancel Caption = "Annuler" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 8880 TabIndex = 8 Top = 1320 Width = 975 End Begin VB.PictureBox PsetTTrim AutoRedraw = -1 'True BackColor = &H00FF8080& BorderStyle = 0 'None ForeColor = &H00FFFFFF& Height = 255 Left = 120 ScaleHeight = 255 ScaleMode = 0 'User ScaleWidth = 25.343 TabIndex = 5 Top = 960 Width = 10815 End Begin VB.CommandButton BtFixRef Caption = "Appliquer" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 9960 TabIndex = 2 Top = 1320 Width = 975 End Begin VB.PictureBox PsetT AutoRedraw = -1 'True BackColor = &H00C00000& BorderStyle = 0 'None DrawMode = 7 'Invert DrawWidth = 4 ForeColor = &H00C0C0FF& Height = 255 Left = 120 ScaleHeight = 4.498 ScaleMode = 0 'User ScaleWidth = 10 TabIndex = 0 Top = 360 Width = 10815 End Begin VB.Label LbTurns Alignment = 1 'Right Justify AutoSize = -1 'True Caption = "0.0" BeginProperty Font Name = "MS Sans Serif" Size = 12 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 300 Left = 1920 TabIndex = 10 Top = 1360 Width = 390 End Begin VB.Label Label5 Alignment = 2 'Center AutoSize = -1 'True Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 5424 TabIndex = 9 Top = 720 Width = 120 End Begin VB.Label Label4 Alignment = 2 'Center AutoSize = -1 'True Caption = "+10 mm" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 10305 TabIndex = 7 Top = 720 Width = 660 End Begin VB.Label Label3 Alignment = 2 'Center AutoSize = -1 'True Caption = "160 mm" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 10335 TabIndex = 6 Top = 120 Width = 660 End Begin VB.Label Label2 Alignment = 2 'Center AutoSize = -1 'True Caption = "-10 mm" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 120 TabIndex = 4 Top = 720 Width = 630 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True Caption = "0 mm" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 120 TabIndex = 3 Top = 120 Width = 450 End Begin VB.Label LbPosRef Alignment = 1 'Right Justify AutoSize = -1 'True Caption = "0.000" BeginProperty Font Name = "MS Sans Serif" Size = 12 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 345 Left = 8040 TabIndex = 1 Top = 1360 Width = 690 End End Attribute VB_Name = "SetRef" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Dim FTop As Single Dim FLeft As Single Public CarLoc As Single Public CarNow As Single Dim Cpos As Single Dim Prev As Single Public Sub FollowRPT(P As Single) If P = Prev Then Exit Sub SetCarriage P End Sub Public Sub SetCarriage(P As Single) PsetT.Line (Prev, 0)-(Prev, 255) 'Once to erase Prev = P PsetT.Line (Prev, 0)-(Prev, 255) 'Once to redraw LbPosRef.Caption = Format(Prev, "0.0##") End Sub Private Sub BtCancel_Click() Me.Hide End Sub Private Sub BtFixRef_Click() RefOffset = Cpos Me.Hide End Sub Private Sub Form_Load() ' CenterForm Me Me.Top = Val(GetIniString(INIFILE, "FormsLoc", "SetRefTop")) Me.Left = Val(GetIniString(INIFILE, "FormsLoc", "SetRefLeft")) FTop = Me.Top FLeft = Me.Left PsetT.ScaleWidth = TOTALTRAVEL PsetTTrim.ScaleWidth = 20 '+ - 1 cm PsetTTrim.Line (10, 0)-(10, 255) 'Show middle Cpos = RefOffset LbPosRef.Caption = Format(Cpos, "0.0##") End Sub Private Sub PsetT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) #If Nohard Then Debug.Print "PsetT "; X; Y #End If MoveTAbs X Cpos = X LbPosRef.Caption = Format(Cpos, "0.0##") SetCarriage Cpos End Sub Private Sub PsetTTrim_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim T As Single T = X - PsetTTrim.ScaleWidth / 2 If Shift Then T = T / 10 'Very small steps if shift hold down If Cpos + T >= 0 Then Cpos = Cpos + T Else Cpos = 0 'Not past ENDT End If MoveTAbs Cpos LbPosRef.Caption = Format(Cpos, "0.0##") SetCarriage Cpos End Sub Public Sub WaitMe() If SilentRun Then CarNow = CarLoc SetCarriage CarNow Exit Sub End If While CarLoc <> CarNow ' Sleep 10 '1000 / (Rpm + 1) 'Simulate speed ' Wait 1000 / (Rpm + 1) 'Simulate speed Wait 1 'DO NOT simulate speed, go fast If CarLoc > CarNow Then CarNow = CarNow + 0.1 If CarLoc < CarNow Then CarNow = CarNow - 0.1 If Abs(CarLoc - CarNow) < 0.1 Then CarNow = CarLoc SetCarriage CarNow Wend Cpos = CarNow End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Debug.Print "MouseMove" If FTop <> Me.Top Or FLeft <> Me.Left Then WriteIniString INIFILE, "FormsLoc", "SetRefTop", Str(Me.Top) WriteIniString INIFILE, "FormsLoc", "SetRefLeft", Str(Me.Left) FTop = Me.Top FLeft = Me.Left End If End Sub base_dir/AutoIndex/SIPRO15/Sipro.INI0000755000000000000000000000040613730575264014132 0ustar [FormsLoc] LiftTop= 2535 Liftleft= 4815 SetRefTop= 960 SetRefLeft= 7635 [PATH] PROGRAM=\\VBOXSVR\Public\SIPRO15\Programs FORMER=E:\SIPRO\MesCarcasses GUIDE=E:\SIPRO\MesGuides [MRU] Last=\\VBOXSVR\Public\SIPRO15\Programs\MSpiraleDerniereAvecpapier.prg base_dir/AutoIndex/SIPRO15/Sipro.vbw0000755000000000000000000000067113730575262014313 0ustar Form1 = 54, 25, 756, 838, , 346, 90, 1382, 732, C Global = 896, 15, 1629, 884, LM628 = 152, 7, 811, 890, Service = 9, 45, 784, 916, , 164, 106, 893, 651, C TOOLS = 201, 106, 780, 886, DLPortIO = 154, 154, 1517, 775, C SetRef = 116, 82, 697, 862, , 611, 293, 1453, 488, C Lift = -1, 10, 722, 874, C, 1267, 180, 1463, 806, C TestPeekPoke = 0, 0, 0, 0, C, 198, 198, 1401, 755, C StartForm = 70, 64, 793, 638, , 22, 77, 745, 651, C base_dir/AutoIndex/SIPRO15/TOOLS.BAS0000755000000000000000000013345213730575265013735 0ustar Attribute VB_Name = "TOOLS" Option Explicit Public Type NVar 'A named variable Name As String Value As Single End Type Global NVars() As NVar 'A redimable array of Named Variables Dim Rstring As String * 1024 Global Manquants As String Global GereManque As Boolean Global DureeMsg As Integer Global NivTrace As Integer Global FicTrace As String Global F_INI As String Global INIFILE As String Public Const HFILE_ERROR = -1 Dim S As String Dim Chronos(10) As Long Global Pass As Boolean Private Type LUID UsedPart As Long IgnoredForNowHigh32BitPart As Long End Type Private Type TOKEN_PRIVILEGES PrivilegeCount As Long TheLuid As LUID Attributes As Long End Type Private Const EWX_SHUTDOWN As Long = 1 Private Const EWX_FORCE As Long = 4 Private Const EWX_REBOOT = 2 Declare Function SetWindowSubclass Lib "comctl32" Alias "#410" _ (ByVal hWnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long, _ ByVal dwRefData As Long) As Long Declare Function GetWindowSubclass Lib "comctl32" Alias "#411" _ (ByVal hWnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long, _ pdwRefData As Long) As Long Declare Function RemoveWindowSubclass Lib "comctl32" Alias "#412" _ (ByVal hWnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long) _ As Long Declare Function DefSubclassProc Lib "comctl32" Alias "#413" _ (ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Declare Function ExitWindowsEx Lib "User32" ( _ ByVal dwOptions As Long, ByVal dwReserved As Long) As Long Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Declare Function GetHandleInformation Lib "kernel32" (ByVal hObject As Long, lpdwFlags As Long) As Boolean Declare Function GetTickCount Lib "kernel32" () As Long Declare Function GetActiveWindow Lib "kernel32" () As Integer Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal SName As String, KName As Any, SString As Any, ByVal FName As String) As Integer Declare Function GetProfileString Lib "kernel32" (ByVal lpAppName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer) As Integer Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long Declare Function LocalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal wBytes As Long) As Long Declare Function LocalFree Lib "kernel32" (ByVal hMem As Long) As Long Declare Function GetProcessVersion Lib "kernel32" (ByVal hModule As Long) As Long Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Single) As Long Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Declare Function PostMessage Lib "User32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParams As Long, ByVal lParam As Long) As Long Declare Function IsWindow Lib "User32" (ByVal hWnd As Long) As Long Declare Function GetCurrentProcess Lib "kernel32" () As Long Declare Function OpenProcessToken Lib "advapi32" ( _ ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _ TokenHandle As Long) As Long Declare Function LookupPrivilegeValue Lib "advapi32" _ Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, _ ByVal lpName As String, lpLuid As LUID) As Long Declare Function AdjustTokenPrivileges Lib "advapi32" ( _ ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, _ NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, _ PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Public Const SND_ASYNC = &H1 ' play asynchronously Type RingBuffer B As String * 32000 Nb As Long Wp As Long Rp As Long End Type ' Added 21/10/2006 Da Silva Serge Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessID As Long dwThreadID As Long End Type ' ShellAndWait Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Public Const NORMAL_PRIORITY_CLASS = &H20& Public Const INFINITE = -1& Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long 'Dclaration des fonctions API Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCTYPE As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCTYPE As Long, ByVal lpLCData As String) As Long Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long 'Dclaration de la constante sparateur dcimal Global DecSep As String Private Const LOCALE_SDECIMAL = &HE Public Property Get DecimalSeparator() As String Dim nLength As Long Dim nLocale As Long nLocale = GetUserDefaultLCID() nLength = GetLocaleInfo(nLocale, LOCALE_SDECIMAL, vbNullString, 0) - 1 DecimalSeparator = Space$(nLength) GetLocaleInfo nLocale, LOCALE_SDECIMAL, DecimalSeparator, nLength End Property Public Property Let DecimalSeparator(ByRef Value As String) Dim nLocale As Long If Value <> DecimalSeparator Then If Value = "." Or Value = "," Then nLocale = GetUserDefaultLCID() SetLocaleInfo nLocale, LOCALE_SDECIMAL, Value End If End If End Property Sub ForceLignes(Fichier As String, MaxLignes As Integer, NbLignes As Integer) ' Si plus de MaxLignes, ne garde que les Nblignes dernires lignes du fichier texte Dim Fs As Integer Dim Fo As Integer Dim L As String Dim I As Integer Dim Temp As String If Not FileExists(Fichier) Then Exit Sub If MaxLignes <= NbLignes Then MaxLignes = NbLignes * 2 Fs = FreeFile Open Fichier For Input As Fs Do While Not EOF(Fs) Line Input #Fs, L I = I + 1 'Compte les lignes Loop If I > MaxLignes Then Seek #Fs, 1 'Rewind I = I - NbLignes 'Nombre de lignes supprimer For NbLignes = 1 To I Line Input #Fs, L Next NbLignes Fo = FreeFile Temp = App.Path & "\" & Format(Now, "ddhhmmss") & "." & Format(Fo, "000") Open Temp For Output As Fo Do While Not EOF(Fs) Line Input #Fs, L Print #Fo, L Loop Close Fs Close Fo Kill Fichier Name Temp As Fichier Else Close Fs End If End Sub Function WriteRb(RB As RingBuffer, C As String) As Long ' Ecrit un caractre dans buffer. ' Retourne le nombre de caractres en attente ou 0 si buffer plein With RB If .Nb < 32000 Then .Nb = .Nb + 1 If .Wp > 32000 Then .Wp = 0 .Wp = .Wp + 1 Mid(.B, .Wp, 1) = C WriteRb = .Nb End If End With End Function Function ReadRb(RB As RingBuffer, N As Integer) As String 'Retourne les N caractres suivants du buffer Dim NN As Integer With RB If N > .Nb Then N = .Nb If .Nb Then .Nb = .Nb - N If .Rp + N > 32000 Then 'On va wrapper avant NN = 32000 - .Rp ReadRb = Mid(.B, .Rp, NN) .Rp = 1 End If N = N - NN ReadRb = ReadRb & Mid(.B, .Rp, N) .Rp = .Rp + N End If End With End Function Function ShowRb(RB As RingBuffer, N As Integer) As String 'Montre les N caractres suivants du buffer sans les retirer Dim Tp As Long 'Pointeur temporaire With RB If N > .Nb Then N = .Nb If .Nb Then Tp = .Rp Do While N > 0 If Tp > 32000 Then Tp = 0 Tp = Tp + 1 ShowRb = ShowRb & Mid(.B, Tp, 1) N = N - 1 Loop End If End With End Function Sub ClearRb(RB As RingBuffer) 'Rinitialse le buffer With RB .Nb = 0 .Wp = 1 .Rp = 1 End With End Sub Sub OpenSection(Section As String) S = "[" & UCase(Trim$(Section)) & "]" & Chr$(13) & Chr$(10) End Sub Sub AddKey(key As String, Value As String) S = S & Trim$(key) & "=" & Trim$(Value) & Chr$(13) & Chr$(10) End Sub Sub CloseSection(FicNum As Integer) Print #FicNum, S End Sub Function GetFname(FullPath As String) As String 'Retourne le nom du fichier sans le chemin Dim I As Integer Dim J As Integer Dim Sep As String Sep = "\" 'Assume Windows style If InStr(FullPath, "/") Then Sep = "/" 'Set Unix style Do J = InStr(I + 1, FullPath, Sep) If J = 0 Then Exit Do I = J Loop GetFname = Right$(FullPath, Len(FullPath) - I) End Function Function GetFnameWOext(FullPath As String) As String 'Retourne le nom du fichier sans le chemin ni l'extension Dim S As String Dim I As String S = GetFname(FullPath) I = InStr(S, ".") If I Then GetFnameWOext = Left(S, I - 1) End Function Function GetParams(Section As String, Cle As String) As String Dim S As String Dim Substitute As String S = GetIniString(F_INI, Section, Cle) If Len(S) Then GetParams = S Substitute = GetIniString(F_INI, "DEFINE", S) If Len(Substitute) Then GetParams = Substitute Else GetParams = GetIniString(F_INI, "DEFAUT", Cle) End If End Function Function Get_Start_Params() As String Dim S As String Dim P As String S = LCase$(Command$) If Len(S) = 0 Then S = InputBox$("Entrer les parametres", "Pas de parametres") If Len(S) = 0 Then End End If INIFILE = Substring(S, 1, " ") P = GetPath(INIFILE) If InStr(P, ".") = 1 Then INIFILE = App.Path & Mid$(INIFILE, 2) If Len(P) = 0 Then INIFILE = App.Path & "\" & INIFILE Get_Start_Params = S End Function Sub Set_StartParams() Dim S As String S = Command$ If Len(S) Then INIFILE = Substring(S, 1, " ") Exit Sub 'utilise 1er paramtre ligne commande End If INIFILE = App.Path & "\" & App.EXEName & ".INI" 'utilise fichier par dfaut End Sub Function GetIniString(Fichier As String, Section As String, Cle As String) As String Dim S As String Dim X As Integer If Not FileExists(Fichier) Then Exit Function X = GetPrivateProfileString(ByVal Section, ByVal Cle, ByVal "", ByVal Rstring, ByVal Len(Rstring), ByVal Fichier) S = Left$(Rstring, X) If InStr(S, "'") = 1 Then S = Right$(S, Len(S) - 1) GetIniString = S End Function Function GetSystemString(SName As String, Section As String, Cle As String) As String Dim Rstring As String Dim X As Integer Rstring = String$(256, 0) X = GetPrivateProfileString(ByVal Section, ByVal Cle, ByVal "", ByVal Rstring, ByVal Len(Rstring), ByVal SName) GetSystemString = Left$(Rstring, X) End Function Sub SetTrace() NivTrace = 0 FicTrace = GetIniString(INIFILE, "DEBUG", "Trace") If Len(FicTrace) Then If GetPath(FicTrace) = "." Or Len(GetPath(FicTrace)) = 0 Then FicTrace = App.Path & "\" & GetFname(FicTrace) End If NivTrace = Val(GetIniString(INIFILE, "DEBUG", "Niveau")) End If End Sub Function GetPath(FullPath As String) As String 'Retourne le chemin sans le nom du fichier Dim I As Integer Dim J As Integer Dim Sep As String GetPath = "" If Len(FullPath) Then If InStr(FullPath, "/") Then Sep = "/" 'Set Unix style ElseIf InStr(FullPath, "\") Then Sep = "\" 'May be Windows style Else Exit Function 'None, nothing to return End If Do J = InStr(I + 1, FullPath, Sep) If J = 0 Then Exit Do I = J Loop GetPath = Left$(FullPath, I - 1) End If End Function Function GetExtension(Fichier As String) As String 'Retourne l'extension de fichier (sans le point !) GetExtension = Substring(GetFname(Fichier), 2, ".") End Function Function Substring(Texte As String, Item As Integer, Separateur As String) As String Dim D As Integer Dim F As Integer Dim I As Integer D = 1 I = 1 Do F = InStr(D, Texte, Separateur) If F = 0 Then F = Len(Texte) + 1 If I = Item Then Exit Do I = I + 1 D = F + Len(Separateur) If D > Len(Texte) Then Substring = "" Exit Function End If Loop Substring = Mid$(Texte, D, F - D) ' If Len(Substring) = 0 Then Substring = " " End Function Function SubStringVal(Texte As String, Item As Integer, Separateur As String) As Integer SubStringVal = Val(Substring(Texte, Item, Separateur)) End Function Sub Trace(Niveau As Integer, Message As String) Dim I As Integer Dim F As Integer Dim C As String Dim S As String If (Niveau And NivTrace) = 0 Then Exit Sub Do While Niveau Niveau = Niveau \ 2 Message = " " & Message Loop S = Format(Now, "dd/mm/yyyy hh:mm:ss") & " " & Message F = FreeFile On Error Resume Next Open FicTrace For Append As F If Err Then Exit Sub Print #F, S Close #F End Sub Sub WriteIniString(Fichier As String, Section As String, Cle As String, Texte As String) Dim X As Integer ' Debug.Print Texte X = WritePrivateProfileString(ByVal Section, ByVal Cle, ByVal Texte, ByVal Fichier) End Sub Function FileCopyDiff(Source As String, Destin As String) As Boolean 'Copie source dans destination seulement si contenus differents Dim Fs As Integer Dim FD As Integer If Not FileExists(Source) Then Exit Function If FileExists(Destin) Then If FileLen(Destin) <> FileLen(Source) Then Copy Source, Destin, 1, True FileCopyDiff = True Else Fs = FreeFile Open Source For Input As Fs FD = FreeFile Open Destin For Input As FD If Input(LOF(Fs), Fs) <> Input(LOF(FD), FD) Then Close Fs Close FD Copy Source, Destin, 1, True FileCopyDiff = True Else Close Fs Close FD End If End If Else Copy Source, Destin, 1, True FileCopyDiff = True End If End Function Sub MarkActivity(MarkFile As String) Dim F As Integer F = FreeFile Open MarkFile For Output As F Print #F, Format(Now, "ddmmyyyyhhmmss") Close F End Sub Function PathExists(ThisPath As String) As Boolean Dim Temp As String PathExists = True Temp = CurDir On Error Resume Next ChDir ThisPath If Err Then PathExists = False End If On Error GoTo 0 ChDir Temp End Function Function GetFileListe(Masque) As String 'Retourne la liste de tous les fichiers correspondants au masque sous ' la forme de chaines spares par des virgules. Dim S As String On Error Resume Next S = Dir$(Masque, vbHidden + vbSystem + vbReadOnly) Do While Len(S) GetFileListe = GetFileListe & S & "," S = Dir$ Loop End Function Function GetDirListe(Masque As String) As String 'Retourne la liste de tous les sous rpertoires correspondant au masque ' sous la forme de chaines spares par des virgules. Dim S As String S = Dir$(Masque, vbDirectory + vbHidden + vbSystem + vbReadOnly) Do While Len(S) If PathExists(Masque & S) Then GetDirListe = GetDirListe & S & "," S = Dir$ Loop ' #If Win32 Then If Len(Masque) > 3 Then ' GetDirListe = Mid$(GetDirListe, 6) 'Enlve '.' et '..' ' #End If End If End Function Function IsTimeValid(T As String) As Boolean IsTimeValid = False If IsDate(T) Then T = Format$(CDate(T), "hh:mm") IsTimeValid = True End If End Function Sub RemoveDuplicate(S As String, Sep As String) Dim I As Integer Dim J Dim S1 As String Dim S2 As String I = InStr(S, Sep) While I S1 = Left(S, I) S2 = Right(S, Len(S) - I) J = InStr(S1, S2) If J Then S = S2 End If I = InStr(S, Sep) Wend End Sub Function ReplaceString(Source As String, Match As String, Replace As String, NoWhite As Boolean) As Integer 'Remplace dans la chaine source les occurences de 'Match' par 'Replace' et retourne ' le nombre de remplacements effectus. 'Si le flag NoWhite est spcifi, les codes contrles ( < 31 dcimal) sont 'limins de la chaine de sortie AVANT l'insertion de 'Replace'. ' Ex: X = ReplaceString(S, Chr$(10), Chr$(10), True) retourne le nombre de lignes ' non vides de S, et remplace les cr/lf par lf. Dim I As Integer Dim J As Integer Dim S As String Dim T As String If InStr(Source, Match) = 0 Then Exit Function J = 1 ' Debug.Print Source ' Debug.Print "-------------------" S = Substring(Source, J, Match) Do While Len(S) If NoWhite Then S = TTrim(S) If Len(S) Then T = T & S & Replace I = I + 1 End If Else T = T & S & Replace I = I + 1 End If J = J + 1 S = Substring(Source, J, Match) Loop ReplaceString = I Source = T ' Debug.Print Source End Function Function TTrim(S As String) As String 'Total Trim: Elimine tous les caractres non imprimables ( 0 32 dcimal) 'Conserve les espaces entre les mots Dim I As Integer Dim C As String ' S = Trim(S) 'Supprime espaces de dbut et de fin For I = 1 To Len(S) C = Mid$(S, I, 1) If C > Chr$(31) Then TTrim = TTrim & C Next I TTrim = Trim(TTrim) 'Supprime espaces de dbut et de fin End Function Function TTrimAll(S As String) As String 'Total Trim: Elimine tous les caractres non imprimables et les espaces ( 0 32 dcimal) Dim I As Integer Dim C As String S = Trim$(S) 'Supprime espaces de dbut et de fin For I = 1 To Len(S) C = Mid$(S, I, 1) If C > Chr$(32) Then TTrimAll = TTrimAll & C Next I End Function Sub ShowError(ErrDescription As String, Message As String) ' MsgBox "(" & ErrDescription & ")" & vbCrLf & Message MsgBox ErrDescription, , Message End Sub Function IsSameFile(F1 As String, F2 As String) As Boolean 'Compare nom et date de deux fichiers avec chemins '** Rajouter comparaison de la taille ? IsSameFile = False If FileExists(F1) And FileExists(F2) Then If GetFname(F1) = GetFname(F2) And FileDateTime(F1) = FileDateTime(F2) Then IsSameFile = True End If End If End Function Function GetNextInList(List As String, Sep As String) As String ' Retourne la sous chaine suivante de la liste de chaines 'List' spares par 'Sep' ' Rinitialis si appel avec un nom de liste diffrent ou de longueur nulle ' Retourne une chaine vide quand liste puise ' Non rentrant !!! Static I As Integer Static LastList As String If List <> LastList Then LastList = List I = 0 End If I = I + 1 GetNextInList = Substring(List, I, Sep) End Function Sub MakeDirTree(Tree As String) ' format de Tree: "x:\a\b\c.." ou ".\a\b\c.." ou "a\b\c.." ou "\a\b\c.." ' Cre tout l'arbre avec les sous rpertoires i.e. md a, md a\b, md a\b\c, etc... Dim I As Integer Dim S As String Dim T As String I = 1 S = Substring(Tree, I, "\") If InStr(S, ":") Or InStr(S, ".") Or _ (Len(S) = 0 And Len(Tree) > 0) Then 'Rcupre le premier chemin complet: "x:\a" I = I + 1 S = S & "\" & Substring(Tree, I, "\") End If T = S On Error Resume Next Do While Len(T) MkDir S If Err = 0 Or Err = 75 Then 'Reussi ou dja cr I = I + 1 T = Substring(Tree, I, "\") S = S & "\" & T Err.Clear Else MsgBox "MakeDirTree " & Tree & " " & S & vbCrLf & _ "Erreur " & Err, vbCritical, App.EXEName End If Loop ' On Error GoTo 0 End Sub Function GetKeysInSection(Fichier As String, Section As String) As String 'Retourne la liste des cls trouves dans la section spcifie. ' Ignore les entres commenant par ';' Dim F As Integer Dim Ligne As String Dim InSection As Boolean If FileExists(Fichier) Then F = FreeFile Open Fichier For Input As F Do While Not EOF(F) Line Input #F, Ligne If InSection Then If InStr(Trim(Ligne), "[") = 1 Then Close F Exit Function End If ' S = UCase(Trim$(Substring(Ligne, 1, "="))) S = Trim$(Substring(Ligne, 1, "=")) If Len(S) And InStr(S, ";") = 0 Then GetKeysInSection = GetKeysInSection & S & "," Else If InStr(Ligne, "[" & UCase(Section) & "]") = 1 Then InSection = True End If End If Loop Close F End If End Function Function GetSections(Fichier As String) As String 'Retourne la liste des sections trouves dans le fichier spcifi ' Ignore les entres commeant par ';' Dim F As Integer Dim Ligne As String F = IsOpen(Fichier, "Input", 1000) If F Then Do While Not EOF(F) Line Input #F, Ligne If InStr(Trim(Ligne), "[") = 1 Then Ligne = Mid$(Ligne, 2, InStr(Ligne, "]") - 2) GetSections = GetSections & Ligne & "," End If Loop Close F End If End Function Sub Wait(ByVal Millisecs As Double) ' Ne retourne qu'aprs 'Millisecs' en millisecondes ou si Unsign(GetTickCount) wrappe (le 49 me jour) Dim Day49 As Double Dim M As Double Day49 = Unsign(GetTickCount) M = Day49 + Millisecs 'Unsign(GetTickCount) + Millisecs Do DoEvents Sleep 1 'This voids hanging full CPU usage. Why ?? Loop While Unsign(GetTickCount) < M Or Unsign(GetTickCount) < Day49 ' bug du 49 me jour, tant pis ! End Sub Function WaitFor(Something As Boolean, Delai As Long) As Boolean ' Wait for 'something' be true while 'Delai' milliseconds' ' Returns the value of 'Something' as soon it becomes true or ' False if Delai elapsed before Dim Day49 As Double Dim D As Double 'Ne pas modifier le parametre ! Day49 = Unsign(GetTickCount) D = Day49 + Delai 'Unsign(GetTickCount) + Millisecs Do DoEvents Sleep 1 If Something Then WaitFor = Something Exit Function End If Loop While Unsign(GetTickCount) < D Or Unsign(GetTickCount) < Day49 ' bug du 49 me jour, tant pis ! End Function Sub ShowMsg(Message As String, Titre As String) ' Affiche une boite de message pendant 'Duree' x millisecondes Trace 128, Titre & Chr$(9) & Message #If ShowMsg Then If MyMsg.Visible Or DureeMsg = 0 Then Exit Sub MyMsg.LblDelai.Caption = Str$(DureeMsg) MyMsg.Caption = Titre MyMsg.LblMsg.Caption = Message MyMsg.Show 0 #End If End Sub Function Copy(Org As String, Dest As String, Delai As Integer, TouchDate As Boolean) As Boolean 'Recopie Org sous un nouveau nom (duplique) Dim W As Double Dim Day49 As Double Copy = False Day49 = Unsign(GetTickCount) W = Day49 + Delai On Error Resume Next Do Err.Clear FileCopy Org, Dest If Err = 0 Then If TouchDate Then Touch Dest, 0 Copy = True Exit Function End If DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 ShowMsg "Can't copy " & Org & " in " & Dest, "Copy Error N" & Str(Err) & " " & Err.Description End Function Function IsOpen(File As String, Mode As String, Delai As Integer) As Integer ' Retourne un numro de fichier si ouverture possible dans les delais, sinon 0 Dim W As Double Dim Day49 As Double Day49 = Unsign(GetTickCount) W = Day49 + Delai On Error Resume Next Select Case UCase(Mode) Case "INPUT", "READ", "R" Do If Not FileExists(File) Then Exit Function Err.Clear IsOpen = FreeFile Open File For Input Access Read As IsOpen If Err = 0 Then Exit Do DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 Case "OUTPUT", "WRITE", "W" Do Err.Clear IsOpen = FreeFile Open File For Output Access Write As IsOpen If Err = 0 Then Exit Do DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 Case "APPEND", "A" Do Err.Clear IsOpen = FreeFile Open File For Append Access Write As IsOpen If Err = 0 Then Exit Do DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 Case "BINARY", "B" Do Err.Clear IsOpen = FreeFile Open File For Binary Access Read Write As IsOpen If Err = 0 Then Exit Do DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 Case "READBINARY", "RB" If Not FileExists(File) Then Exit Function Do Err.Clear IsOpen = FreeFile Open File For Binary Access Read As IsOpen If Err = 0 Then Exit Do DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 Case "WRITEBINARY", "WB" Do Err.Clear IsOpen = FreeFile Open File For Binary Access Write As IsOpen If Err = 0 Then Exit Do DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 Case Else Mode = "Unknow mode" Error 55 End Select If Err Then ShowMsg "Can't open " & File & " for " & Mode, "IsOpen Error N" & Str(Err) & _ " " & Err.Description IsOpen = 0 End If Err.Clear End Function Function Delete(File As String, Delai As Integer) As Boolean ' Dtruit le fichier si possible sinon renvoie 'False' Dim W As Double Dim Day49 As Double Day49 = Unsign(GetTickCount) W = Day49 + Delai Delete = False On Error Resume Next Do Err.Clear Kill File If Err = 0 Or Err = 53 Then 'Accepter sans rler si fichier inexistant Delete = True Exit Function End If DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 ShowMsg "Can't delete " & File, "Delete Error N" & Str(Err) & _ " " & Err.Description End Function Function DelTree(Path As String) As Boolean 'Vide et dtruit le rpertoire spcifi. Dim RList As String Dim Flist As String Dim R As String Dim F As String Dim I As Integer If Not PathExists(Path) Then Exit Function Flist = GetFileListe(Path & "\*.*") 'Obtiend la liste des fichiers I = 1 F = Substring(Flist, I, ",") Do While Len(F) Delete Path & "\" & F, 1 'Efface tous les fichiers I = I + 1 F = Substring(Flist, I, ",") Loop RList = GetDirListe(Path & "\") 'Obtiend la liste des sous rpertoires I = 1 R = Substring(RList, I, ",") Do While Len(R) 'pour chaque sous rpertroire DelTree Path & "\" & R 'Rcursif I = I + 1 R = Substring(RList, I, ",") Loop RmDir Path End Function Function ExecOnTree(Path As String, Action As Long) As Boolean End Function Function Rename(OldName As String, NewName As String, Delai As Integer, TouchDate As Boolean) As Boolean 'Renomme le fichier si possible 'Si 'TouchDate', met NewName la date courante 'Remplace 'NewName' si existe dj 'Si lecteurs diffrents, copie puis dtruit ancien If Copy(OldName, NewName, Delai, TouchDate) Then Rename = Delete(OldName, 0) End If End Function Function CheckIfFiles(Liste As String, Path As String, Sep As String) As String 'Retourne 'Liste' sans les fichiers introuvables dans 'Path' Dim I As Integer Dim S As String Dim T As String If Len(Liste) Then I = 1 T = Substring(Liste, I, Sep) Do While Len(T) If FileExists(Path & "\" & T) Then S = S & T & Sep I = I + 1 T = Substring(Liste, I, Sep) Loop CheckIfFiles = S End If End Function Function FileExists(File As String) As Boolean ' Indique si le fichier existe If Len(File) = 0 Then Exit Function On Error Resume Next FileDateTime (File) If Err Then If GereManque Then Manque File Else FileExists = True End If End Function Sub Manque(S As String) If Len(Manquants) < 32000 Then If InStr(Manquants, S) = 0 Then Manquants = Manquants & S & "," 'Sans dupliquer ! End If End Sub Function Touch(File As String, Delai As Integer) As Boolean ' Change la date du fichier par la date courante Dim F As Integer Dim X As String * 1 Touch = False F = IsOpen(File, "Binary", Delai) If F Then If LOF(F) Then Get #F, 1, X Put #F, 1, X Touch = True Else ShowMsg "Can't change date if file is empty " & File, "Touch Error N" & Str(Err) & _ " " & Err.Description End If Close F End If End Function Function XClose(FileNum As Integer, Delai As Integer) As Boolean Dim W As Double Dim Day49 As Double Day49 = Unsign(GetTickCount) W = Day49 + Delai XClose = False On Error Resume Next Do Err.Clear Close FileNum If Err = 0 Then XClose = True Exit Function End If DoEvents Loop While Unsign(GetTickCount) < W Or Unsign(GetTickCount) < Day49 ShowMsg "Can't close" & Str(FileNum), "Close Error N" & Str(Err) & _ " " & Err.Description End Function Function CountFileLines(Fichier As String) As Integer 'Retourne le nombre de lignes non vides de 'Fichier' '0 si fichier inaccessible Dim L As String Dim F As Integer F = IsOpen(Fichier, "Input", 1000) If F Then While Not EOF(F) Line Input #F, L If Len(L) Then CountFileLines = CountFileLines + 1 Wend XClose F, 1000 End If End Function Function CountStringLines(S As String) As Integer 'Retourne le nombre de lignes non vides de S ' *** (Voir CountStrings dans ce mme module) End Function Function TrieListeChaine(Liste As String, Mode As Integer, Sens As Integer) As String ' Retourne la liste trie dans le sens spcifi (1 = Croissant, 0 = Dcroissant) ' selon Mode (1= Texte(Alphabtique), 0 = Binaire) Dim S As String Dim S1 As String Dim S2 As String Dim I As Integer Dim J As Integer Dim T() As String I = 1 S = Trim$(Substring(Liste, I, ",")) While Len(S) 'On rempli le tableau I = I + 1 ReDim Preserve T(I) T(I - 1) = S 'L'indice 0 n'est pas utilis ! S = Substring(Liste, I, ",") Wend If I > 2 Then 'Il y a qqchose trier I = I - 1 J = 1 While J < I If StrComp(T(J + 1), T(J), Mode) = -Sens Then 'Permuter S1 = T(J + 1) T(J + 1) = T(J) T(J) = S1 If J > 1 Then J = J - 1 'Retester le prcdent Else J = J + 1 End If Wend For J = 1 To I 'Cre la chaine en sortie TrieListeChaine = TrieListeChaine & T(J) & "," Next J Else TrieListeChaine = Liste End If End Function Function TrieTableau(T(), Col As Integer, Mode As Integer) As Integer ' Ordonne les lignes d'un tableau 2 dimension selon le contenu de la colonne spcifie ' Mode = 0: Binaire, 1: Alphabtique, 2: Numrique ' Sens = Toujours croissant ' Retourne <> 0 si anomalie. Dim L As Integer Dim C As Integer Dim I As Integer Dim J As Integer Dim Swaped As Boolean L = UBound(T, 1) C = UBound(T, 2) ReDim TT(1, C) If L > 1 Then 'S'il y a au moins 2 lignes If C >= Col Then 'et si la colonne spcifie existe I = 1 While I < UBound(T, 1) Swaped = False If Mode = 2 Then If T(I + 1, Col) < T(I, Col) Then Swaped = True For J = 0 To C TT(0, J) = T(I + 1, J) 'Permuter T(I + 1, J) = T(I, J) T(I, J) = TT(0, J) Next If I > 0 Then I = I - 1 'Retester le prcdent End If Else If StrComp(T(I + 1, Col), T(I, Col), Mode) = -1 Then Swaped = True For J = 0 To C TT(0, J) = T(I + 1, J) 'Permuter T(I + 1, J) = T(I, J) T(I, J) = TT(0, J) Next If I > 0 Then I = I - 1 'Retester le prcdent End If End If If Not Swaped Then I = I + 1 End If Wend Else TrieTableau = -1 End If Else TrieTableau = -2 End If End Function Sub StartChrono(Chrono As Integer) ' Lance un chrono On Error Resume Next Chronos(Chrono) = Unsign(GetTickCount) End Sub Sub ShowChrono(Chrono As Integer) 'Affiche un chrono Dim TT As Long On Error Resume Next TT = Unsign(GetTickCount) MsgBox Format$((TT - Chronos(Chrono)) / 1000, "0.000") & " secondes", 0, "Chrono" & Str$(Chrono) ' ShowMsg Str$(TT - Chronos(Chrono)) & " Millisecondes", "Chrono" & Str$(Chrono) End Sub Function UnsignedTovbInteger(ByVal Unsigned As Long) As Integer 'Convertit un long reprsentant entier non sign (retourn par un appel un API par exemple) en 'entier non sign passer une fonction externe If (Unsigned And &H8000&) = 0 Then UnsignedTovbInteger = Unsigned And &HFFFF& Else UnsignedTovbInteger = &H8000 Or (Unsigned And &H7FFF&) End If End Function Function CountStrings(S As String, SubS As String) As Integer 'Retourne le nombre de 'SubS'contenues dans 'S'. Dim D As Long Dim F As Long D = 1 Do F = InStr(D + 1, S, SubS) If F Then CountStrings = CountStrings + 1 D = F Loop While D End Function Public Function GetFileSpecs(Objet, DefPath As String, DefFichier As String, Titre As String, Mode As String) As String ' Interface pour CommonDialog 'Ouvrir / Enregistrer sous' 'DefPath ne doit pas inclure le "\" terminal Dim S As String Dim E As String With Objet .CancelError = True .Filter = "Tous fichiers (*.*)|*.*" .FilterIndex = 1 E = GetExtension(DefFichier) If Len(E) Then .Filter = .Filter & "|Fichiers " & App.EXEName & " (*." & E & ")|*." & E .FilterIndex = 2 End If .Flags = &H804 .DialogTitle = Titre .InitDir = DefPath .FileName = DefFichier On Error Resume Next If Mode Like "Open" Then .ShowOpen If Mode Like "Save" Then .ShowSave S = .FileName If (Len(S) <> 0) And Err = 0 Then GetFileSpecs = S End If End With End Function Public Function ChoosePrinter(Object) As Boolean With Object .CancelError = True ' .PrinterDefault = True ' .Orientation = cdlPortrait .Flags = &H40& .DialogTitle = "Printer" .ShowPrinter .Orientation = cdlPortrait End With End Function Public Function GetFileDate(Fichier As String) As Date GetFileDate = "00:00" On Error Resume Next GetFileDate = FileDateTime(Fichier) End Function Public Function HexDump(S As String, Bloc As Long) As String ' Retourne un dump Hexadcimal de 256 octets de S. Dim Debut As Integer Dim Ligne As Integer Dim Colonne As Integer Dim C(1 To 16) As String Dim H As String For Ligne = 1 To 16 H = Hex((16 * (Ligne - 1)) + (256 * Bloc)) If Len(H) < 8 Then H = String(8 - Len(H), "0") & H HexDump = HexDump & H & ": " For Colonne = 1 To 16 ' les valeurs hexadciamales C(Colonne) = Mid$(S, Debut + 1, 1) If Len(C(Colonne)) Then H = Hex(Asc(C(Colonne))) If Len(H) < 2 Then H = "0" & H Else H = ".." End If Debut = Debut + 1 HexDump = HexDump & H & " " Next Colonne HexDump = HexDump & " " For Colonne = 1 To 16 'les caractres ascii imprimables If C(Colonne) < " " Then C(Colonne) = " " HexDump = HexDump & C(Colonne) Next Colonne HexDump = HexDump & vbCrLf Next Ligne HexDump = HexDump & vbCrLf End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Public Function Unsign(X As Long) As Double ' Retourne un single reprsentant un entier non sign. ' Utile pour traiter les valeurs retournes par des DLL qui renvoient un ULong 'Dim XX As Double ' XX = X ' If XX < 0 Then ' Unsign = 2147483647 + XX ' Unsign = Unsign + 2147483648# ' Else ' If XX = 0 Then ' Unsign = XX + 1 ' End If ' Unsign = XX ' End If 'End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Function Unsign(X As Long) As Long 'Retourne X sans le signe Unsign = X And &H7FFFFFFF End Function Public Sub CenterForm(F As Form) F.Top = (Screen.Height - F.Height) / 2 F.Left = (Screen.Width - F.Width) / 2 End Sub Public Function Crc(S As String, Debut As Integer) As String 'Retourne le CRC (Xor) de S Dim I As Integer Dim X As Integer For I = Debut To Len(S) X = X Xor Asc(Mid$(S, I, 1)) Next I Crc = Chr$(X) End Function Public Function FormatTexte(S As String, C As Integer, Tableau() As String) As Integer ' Rempli le tableau avec des lignes de longueur 'C' extraites de S et centres ' *** S ne doit pas contenir de caractres de contrle *** ' Retourne le nombre de lignes (Taille du tableau) Dim Lignes As Integer Dim Debut As Integer Dim T As String Dim U As String Dim L As Integer Debut = 1 S = Trim$(S) T = Substring(S, Debut, " ") Do While Len(T) T = Trim$(T) Do While Len(T) < C 'Il reste de la place U = Trim$(Substring(S, Debut + 1, " ")) 'Essaie le suivant Debut = Debut + 1 If Len(U) + Len(T) < C Then 'C'est bon T = T & " " & U Else Exit Do End If Loop T = Trim$(T) L = Len(T) If L = C Then Debut = Debut + 1 L = C - L If L > 1 Then 'Centrer L = L \ 2 T = String(L, " ") & T & String(L, " ") End If Lignes = Lignes + 1 ReDim Preserve Tableau(Lignes) Tableau(Lignes - 1) = T T = Substring(S, Debut, " ") Loop FormatTexte = Lignes End Function Public Sub AdjustToken() Const TOKEN_ADJUST_PRIVILEGES = &H20 Const TOKEN_QUERY = &H8 Const SE_PRIVILEGE_ENABLED = &H2 Dim hdlProcessHandle As Long Dim hdlTokenHandle As Long Dim tmpLuid As LUID Dim tkp As TOKEN_PRIVILEGES Dim tkpNewButIgnored As TOKEN_PRIVILEGES Dim lBufferNeeded As Long hdlProcessHandle = GetCurrentProcess() OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _ TOKEN_QUERY), hdlTokenHandle ' Get the LUID for shutdown privilege. LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid tkp.PrivilegeCount = 1 ' One privilege to set tkp.TheLuid = tmpLuid tkp.Attributes = SE_PRIVILEGE_ENABLED ' Enable the shutdown privilege in the access token of this ' process. AdjustTokenPrivileges hdlTokenHandle, False, tkp, _ Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded End Sub Public Sub SystemRestart() #If NT Then AdjustToken #End If ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_REBOOT), &HFFFF End Sub Public Sub ShowTrace(T As String, F As Form) 'Montre T dans l'objet texte 'Voir' de la feuille F si elle est visible If F.WindowState <> 1 Then If Len(F.Voir.Text) > 16000 Then 'Void overflow F.Voir.Text = "" End If F.Voir.SelText = T & vbCrLf End If Trace 1, T End Sub Public Sub ClearTrace(F As Form) F.Voir.Text = "" End Sub Public Sub PlaySound(Wavefile As String) If Len(Wavefile) > 0 And FileExists(Wavefile) Then sndPlaySound Wavefile, SND_ASYNC End If End Sub Public Function AdjustText(V As Variant, Lenght As Integer) 'Retourne une chaine de longueur 'Lenght' contenant V et padde avec des espaces Dim S As String Dim L As Integer S = Format$(V) 'Regle le pb du NULL L = Len(S) If L < Lenght Then 'Trop court AdjustText = S & String$(Lenght - L, " ") Else AdjustText = Mid$(S, 1, Lenght) 'Trop long End If End Function Public Function ForceDp(V As String) As String 'Remplace la virgule par le point dans un variant reprsentant un nombre Dim VPos As Integer VPos = InStr(V, ",") If VPos Then 'Y'en a ForceDp = Substring(V, 1, ",") & "." & Substring(V, 2, ",") Else ForceDp = V End If End Function 'Public Function SpawnObject(Fichier As String) As Long ' ' If FileExists(Fichier) Then ' SpawnObject = ShellExecute(0, "Open", Fichier, "", App.Path, 0) 'SW_SHOWNORMAL) ' DoEvents ' End If 'End Function Public Function LongToSBin(X As Long) As String ' Returns a string of 0 and 1 showing V in binary form Dim I As Integer Dim V As Long V = X 'Preserve parameter Do For I = 0 To 7 If V Mod 2 Then LongToSBin = "1" & LongToSBin Else LongToSBin = "0" & LongToSBin End If V = V \ 2 Next LongToSBin = " " & LongToSBin 'a space every 8 bits Loop While V End Function Public Sub SwapStrings(S1 As String, S2 As String) Dim S As String S = S1 S1 = S2 S2 = S End Sub Public Sub SetNVar(Name As String, Value As Single) 'Assign a value to the named variable. 'Create it if needed Dim I As Integer For I = 0 To UBound(NVars) If Name = NVars(I).Name Then 'Found NVars(I).Value = Value 'Update value Exit Sub End If Next ReDim Preserve NVars(I) 'Does not exists, create NVars(I).Name = Name 'And setup. NVars(I).Value = Value End Sub Public Function GetNVar(Name As String) As Single 'Returns the value of this variable. 'Create it and returns 0 if needed Dim I As Integer For I = 0 To UBound(NVars) If Name = NVars(I).Name Then 'Found GetNVar = NVars(I).Value Exit Function 'Returns value End If Next 'Does not exists .. yet ReDim Preserve NVars(I) NVars(I).Name = Name NVars(I).Value = 0 GetNVar = 0 End Function Public Sub InitNVars() 'Destroys all variables ReDim NVars(0) End Sub base_dir/AutoIndex/change_log.html0000755000000000000000000001045611354075552014410 0ustar AutoIndex PHP Script: Change Log
Change Log

 

Legend:
(+) Added feature
(!) Security bug fixed
(-) Bug fixed
(*) Improved/changed feature
( ) Non-code change

 

Version 2.2.4 (2007-Nov-09)
(!) Fixed DOS bug
( ) Added Vista icon set

Version 2.2.3 (2007-Nov-05)
(!) Fixed XSS bug

Version 2.2.2 (2007-Jul-24)
(!) Fixed XSS bug in search feature

Version 2.2.1 (2007-Jan-06)
(*) Improved handling of passwords with .htaccess
(*) Improved default stylesheet
( ) Added Danish translation
( ) Updated Dutch translation

Version 2.2.0 (2006-Jan-02)
(+) Added a pagination feature
(+) Language is selected based on the user's browser's default
(+) Added support for PHP 5.1.x and higher
( ) Added Greek and Japanese translations

Version 2.1.2 (2005-Aug-11)
(-) Fixed bug when editing descriptions of filenames that have special characters
( ) Added Czech and Slovak translations

Version 2.1.1 (2005-Jul-06)
(!) Fixed bug with search box
( ) Added Swedish translation

Version 2.1.0 (2005-Feb-14)
(+) Added a .htaccess parser
(+) Added an FTP browser
(+) Added moderator and banned account levels
(+) Added a feature to let moderators/admins change their own password

Version 2.0.7 (2005-Jan-14)
(-) Fixed file_description feature

Version 2.0.6 (2005-Jan-04)
(+) Admins are able to copy files from other servers (similar to "wget")
( ) Added Thai and Arabic translations

Version 2.0.5 (2004-Sep-02)
(+) When force_download is on, the MIME-type sent depends on the file extension
(*) Using hidden_files to only show certain files no longer restricts directories

Version 2.0.4 (2004-Aug-17)
(*) When reconfiguring the script, the current settings are selected instead of the defaults
( ) Added Polish translation

Version 2.0.3 (2004-Jul-26)
(*) Nested if-statements can be used in the template files
(*) Folders do not have to be empty to be deleted

Version 2.0.2 (2004-Jul-13)
(*) All output is XHTML 1.1 compliant
(*) The do_every template command now does not include the last file listed

Version 2.0.1 (2004-Jul-05)
(+) Added directory cache feature
(*) Added include command to the template system
(-) Fixed search page bug when download_count was on

Version 2.0.0 (2004-Jun-24)

Complete rewrite from version 1.0:

  • Now uses PHP 5. PHP version 5.0 or higher is required.
  • All the features of version 1, plus:
    (+) Has a template system for all HTML output
    (+) Tar archives of directories can be downloaded
    (+) Each user account can have its own home directory
    (*) Passwords are stored as a sha-1 hash rather than md5 (this is slightly more secure)
base_dir/AutoIndex/license.html0000755000000000000000000004506411354075556013753 0ustar GNU General Public License

GNU General Public License

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA  02111-1307, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

  • a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
  • b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
  • c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

  • a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This

AutoIndex PHP Script, by Justin Hagstrom