gmm/0000755000176200001440000000000014437652652011050 5ustar liggesusersgmm/NAMESPACE0000644000176200001440000000654213467070535012272 0ustar liggesusersuseDynLib(gmm, .registration = TRUE, .fixes="F_") import(stats) importFrom(sandwich, estfun, bread, kernHAC, weightsAndrews, vcovHAC, bwAndrews, meatHC) importFrom(methods, is) importFrom(graphics, abline, legend, lines, panel.smooth, par, plot, points) importFrom(grDevices, dev.interactive, devAskNewPage, extendrange) importFrom(utils, tail) export(gmm,summary.gmm,smoothG,getDat,summary.gel,getLamb,gel, estfun.gmmFct, estfun.gmm, estfun.gel, bread.gel, bread.gmm, print.gmm,coef.gmm,vcov.gmm,print.summary.gmm, confint.gel, print.gel, print.summary.gel, vcov.gel, coef.gel, fitted.gmm, residuals.gmm, fitted.gel, residuals.gel, plot.gmm, plot.gel,formula.gmm, formula.gel, charStable, specTest, specTest.gmm, specTest.gel, print.specTest, momentEstim.baseGmm.twoStep, momentEstim.baseGmm.twoStep.formula, momentEstim.baseGmm.iterative.formula, momentEstim.baseGmm.iterative, momentEstim.baseGmm.cue.formula, momentEstim.baseGmm.cue, getModel.baseGmm, getModel.baseGel, getModel.constGmm, getModel.constGel, FinRes.baseGmm.res, momentEstim.baseGel.mod, momentEstim.baseGel.modFormula,tsls,summary.tsls, print.summary.tsls, KTest, print.gmmTests, gmmWithConst, estfun.tsls, model.matrix.tsls,vcov.tsls, bread.tsls, evalGmm, momentEstim.baseGmm.eval, momentEstim.baseGel.eval, evalGel, confint.gmm, print.confint, sysGmm, getModel.sysGmm, momentEstim.sysGmm.twoStep.formula, momentEstim.tsls.twoStep.formula, getModel.tsls, summary.sysGmm, print.sysGmm, print.summary.sysGmm, sur, threeSLS, randEffect, five, bwWilhelm, getModel.ateGel, ATEgel, summary.ategel, vcov.ategel, confint.ategel, marginal, marginal.ategel,checkConv,getImpProb, getImpProb.gel) S3method(marginal, ategel) S3method(summary, gmm) S3method(summary, sysGmm) S3method(summary, tsls) S3method(summary, gel) S3method(summary, ategel) S3method(print, gmm) S3method(print, sysGmm) S3method(print, summary.gmm) S3method(print, summary.sysGmm) S3method(coef, gmm) S3method(vcov, gmm) S3method(vcov, tsls) S3method(confint, gmm) S3method(confint, ategel) S3method(fitted, gmm) S3method(residuals, gmm) S3method(plot, gmm) S3method(formula, gmm) S3method(print, gel) S3method(print, summary.gel) S3method(print, summary.tsls) S3method(print, gmmTests) S3method(coef, gel) S3method(vcov, gel) S3method(vcov, ategel) S3method(confint, gel) S3method(fitted, gel) S3method(residuals, gel) S3method(plot, gel) S3method(formula, gel) S3method(specTest, gmm) S3method(specTest, gel) S3method(getImpProb, gel) S3method(print, specTest) S3method(print, confint) S3method(FinRes, baseGmm.res) S3method(getModel, baseGmm) S3method(getModel, baseGel) S3method(getModel, sysGmm) S3method(getModel, constGmm) S3method(getModel, constGel) S3method(getModel, tsls) S3method(getModel, ateGel) S3method(momentEstim, baseGmm.twoStep) S3method(momentEstim, baseGmm.eval) S3method(momentEstim, baseGmm.twoStep.formula) S3method(momentEstim, tsls.twoStep.formula) S3method(momentEstim, sysGmm.twoStep.formula) S3method(momentEstim, baseGmm.iterative.formula) S3method(momentEstim, baseGmm.iterative) S3method(momentEstim, baseGmm.cue.formula) S3method(momentEstim, baseGmm.cue) S3method(momentEstim, baseGel.mod) S3method(momentEstim, baseGel.modFormula) S3method(momentEstim, baseGel.eval) S3method(estfun, gmmFct) S3method(estfun, gmm) S3method(estfun, tsls) S3method(model.matrix, tsls) S3method(estfun, gel) S3method(bread, gmm) S3method(bread, gel) S3method(bread, tsls) gmm/data/0000755000176200001440000000000014437645334011760 5ustar liggesusersgmm/data/wage.rda0000644000176200001440000002715014437645371013401 0ustar liggesusers7zXZi"6!X{.+])TW"nRʟ$!K{yN+,8VYbhה s4 Iєk?x g:x:"JVyWWYeuT?*lnzlE-˼@׿DU>Zm9[~ѵ$ʌ 8o~o\ؿ-^PP/Y[~%߼&}X=MH{e%aIP6AǴg&JQ{OzyǥsmMgU?L5K  [ sJFn{iS@X/tۼCN[ "I43|Q@dFf?RG>gVptۺNp1f\lHIy#ovFNj]\\n-ڶш@6Ff?*-l^{RH3ԙfP\m_idOadfWWm ~yiZC`;E74=̅[}~۷N6svAu|0v Td O3T[)h< Nf.X=&g~Lײ{|34Co ^@{Уl|?<*Fe`<1Mr?7L|{}۰`juȏ9&3-&*3R.ې:V>辻mʞfdFR FwͰFXXQc8JFlġVۿSϫ052-`^ॗOz|e۶6nch-^GZQ~Pq7o߼mŤ.V*vq(s4tǙKQo)FUbl%;(H^㋵MsǬʏ(A> @cKtOWFI+O-a{V#p@y@wPJ)3Mf&)S,ӸOc25)d tU$d'6̀ESFeƄnj(/Kv&@Hm{~u0Yֹ>T|IcŽȇ}W"B/͇}}F!}IvՋ>Z<M.aP14Pl-ǼѣbA$8Yh7?oUFL32l=%“SDc݅D.NF{Dy.@qNLG_KO yBj7.G)gg 1CǙY>ZPzL2:G3u=~] bwOx)Ex,DP(L۱ĭ2 9EHXwua/.l4d%)~#2|xX_Oe?+2%d>rj(瀂PTq}Q^v8JI;Kq ~-l5J2J59G`!T.귷N٨5Т&-{Jx«^Á6-xth S.\|Kۍ(%qୗ1랠:'9ʜ6s*sJmم-2=VSS%<=ˮ䮘;AVuӫ|a.TɤX:Ԍ6{K>v^`>-k˱p $OKYi>h  S9[D M2H8 pwh_(M踡MIO D(KXK-q?mE= ѕМ-!׉t~PViJ)>nB>1e^zd|i3%1! k͓>3p8с=i=9e{D#5;~.!qpg⮑,=x&y ˉ7mҬɄ¢mʤOR4BTDlS(ǴyHN"&!lC+҃zWb# KHTu]aneËNx麱2Ĭz2xrn'ulh1h DW)[7Zь~-N736:1Pa7($M3{AwJKDp5=:$%s{"{KEZ=F|v'$ a~R7g&c \˒B00d%z Vha;v 3N:>;[ŗKasgFTZ\T|oy!۟|Μˍ kvN]BRYj6C?_5}r]g~>vA9Tی|EՉCPN&̨n|(vay)*TzɷpT$,Zz`Ō@i=N~=Ĉ0&@s4AʉM Kym| Hk ĨbZMe(Z4o\mBi~c RU_VAZҞ8!b<|GsnBgؐ UC\Hs%2_?e˕Qi @QF݋a(e]}fWWN䪀f]U (vOkdI arYϮhY` ˺]/T*Q?,xRjbc+f|e F@( MӖ&T8QqgoiYֱW?#=4 q2A8Ic}߫}}K{ؾew1Zr Uhտ~i17D\FUYg[ȯڌ!4qZ.{> pQ"WιTH`"F50vF},cR!뢷g1FwAGS.b@#>& =:jTZgIs)ڱ/0hXoK̖玘LZ[ |_5{Ɲݒtn #9kP56ss.ۯi W\AE(_uL!תbE?x5o*g)( o•`Jj.,)F'>rPL|X2 XPu\邉prcBb”aޗi(NC czΌnE\b_0LqZ{UO\k$#Fхgv1M4" [$tcǢ!ZS$1 %*¹a@)-YL 06œc[y;`f\e$@Ej 0( x Lh$0څX .il1Vf~,<@MV+dpM a]'x;S^oF75-tmޤUx.Kz;]y.H34xTK&[;v<❘XJ%OQW4[Ch=Fw!KuBDP-j.v[/4ٝ4[lFLfZovz?$j59ڭ+8hja}W ~FwKn+z,@R28-D,"([y}ȞƬ6zOsڼ2;-Xe# @0i5Öd>y.#K֩rZjj֩6X.%^Fx-yV0oͽ貎so'hlƃ]hE~$t1G;ofNJ0 *K+zO+"7u^W0  m*B!9]U6mfYwi7ըy}@5 uǩJCn sndW~?*0? Pw5&}@dch͝?0PNޓsa(k|=sᾄaEYL֗S?P,!:ENZ%e`TS-"(ڼɚu=qrN#WPsȂmJ`يsQD,ĩ$e#KP-ٳUlN4{@}dz`| e:")&iXK/|ڲڊsس}eIGڍ9 ~?p'*R0<vP.9|G-S;J0uPZPÕGlĬ?r @VdJO 7!uk tR&a)/sȿš7<ꌅ7U]H<&(ܢ#l\دj,$ԠI)) +|8'(G{I:AX]ɡHRRQD džb-GcmSat `E]öAf#i*_F݂! Uh@zncx<N[.ce;߰'`},OsjY'QNPu* &ƄI|&XNf# v淖lIfN`Ќ˰>\Z3/8mԮΣej3&J8+3%kvI# 'je;v dEس3[7Inej~g9!" ~`Χ^yn8B348DYeJXI6`ɣi]ֺaDXkk?d[x ,objZ5Q7]mdJh19a7 SMbJ&ķҪ3jD AtB`𶵟X)]Yb[]*7ȀBrTW!VV")5O){MF6m2}xg3:*r*oo0d5H+GS׺^Q`'JWRe4 Tݔ =I@/%,=N9 d-LkZ=l%]ʳ#I_hFʾc$ :H0dy!1/q&ABQD^Z,Wlp=l 3Gʥ͠Q2`]͐3!J:>Wל8-ڗFѝj!&Ǫo.f7#i*v[q]Z0sKūScL."\|]7RRxF3O$+ub ܲU:٧{0Ds 3(~2ĸAW+lMh1RgB4- sZEC{oihm<7NFh3`mv MŤ Nh,l,ͬ/&=6դZ*sEpfVBR%_*&Su!jhe.,'m:Kmxu([~TQ ƀ/ɃW;}״KԏJxOY/"&xh95ج79ox'Ů&z`.a &n;=rcwa#V݇Z:EXZ>LB|T*< GZMpv#<!ȀTMނ)4L5cc_L\eD>- RqszsF]U}vBz}wLZ@?@֧g]Ki@.{#ͤ{] y,'ZG*XtWUkE}~Dǩ5 iĀWSi)O 1 Wgpy+(eC8^]e<bԹ4ۃ@DpYuSz\P5 / tIUIsh$2[7xy itLC!*K}CIt>#7~guP[*G8e"<6.Tn?gdcnm^pE̯>m CyWtmRho7ګ#y]boQP^J>ҋGof,s$W|ىV- }%^R@s{]#^+_Ax;DjgK2l`n.:9`ȧ58 J`D Edy6w-ڹ3OFar6AtU˘qƾi0Nx%l!=4jK.uNCLy 5l0wf걀АpzjO;5E|3ȷqE yh7S"WQ!$xYu.oR5 ]qD(OgnMj:9O"!@aj)&SJ?]+ꤌPP-Ĥ|vI~u~_| 9y:֩O׉yFqÌl )`H #9SJcZ0?nR!^+akI ,",\3-#f` X!ތ8RjQՑPStz sJ]XբLŚ_ÈV8LtG9hP0,@5%EףO589jȻ 3.7Ɍ _1qtDȥ<1Gp^'Tf}$=VaP2,c֟t9ڧJ|7];W=%&n n k:{G"euj5¼v9^u$Xa-iI>Λ=]T&oG9&\}+*4?P\]OҸݕŋG)qg9<|?vd341;},Fgl|jW-ڨ-3--/7/Gh0,s cOD=)c<练Tag~C"3.2q G&˳&u菷-kBfڞM'V7ZNW><7USيPԁ&vVi0ͷ:PFӘӫԕՄ9h'OYDudkaFn7._\kyx,z =a%Dt1:-/~8E*wJN&Yc?\2!dUc3aR9KE`aMŝ|F ~-W`ʏzB"|U^XMN1ucB: דah(]0A`U}(XR;M#հӅSעu-2 ܝ4g GfuIƥ2VC5迮 1.,Z+ug,L/USQ%h^0r՗Xԇ_aiK%)PWnq9赛(4v^ Bugu€K?3JnI/XկN `w@{z|]*߶7+}#װu|9)R@JQX.jv=ܭ/uJʸvA\:BF&Kgkg)tķU?3P=G+Ya몰)Kvl牆ʙ`3bhq2v2a=s Є+~s;Gm\7'INў()WNOBT.ی}}k㽟 O;UnBe(0pfx>V9/Gq29֞t4 %E0L[saR3Ϝ[HQ'@TDnxeʙi=5ShgFC;|14S P%p@r\c‰'oߑXvs$ؖ.c &!HHLGzU Y"_~Uz(dr,>!sB8}[,N*L[mjrsx VS0l 8qcz!)XUPJ^Zvo߯4u ~/U`d5@]0 ^'TC70UEY+ K)yZ٧#% 8`I2BRKwߌ]N2tjϣ|BBFA<4¶R[2)\dy@ɿ2^?G R3-!}SF޼]toYbӁY#ޟ$&MRs\bR>0 YZgmm/data/nsw.rda0000644000176200001440000001624014437645371013263 0ustar liggesusersBZh91AY&SYz/xyT}+g(H;>t2OkJvh4BDiiѦl 4L恓Sѓ!Ƃz&ҞM&M yfF"O&SOѪ{MMOL&4iiPjM#F=y3J{(FjzLi6Sz4Idڧ#Ili&16yMS'҆4zMMSښ$4SFS zS#Qj{TL h  =@h<A$IѠ4hh 4 5(SM@4zM4hd  4@4 44"I)dOLЂyOeOdb!)14뤳G#]WFY=v*Lkuz޷Gc&хO?f*-'_UQe] 'D$3ݴw!l7{MYnwѺٟ5>(jfg)8'ov_]ΰM6wtگ&4PgjRrea F݁&&2M"u/D8 @?/0B`I&#(R! `(H#AUkh BaL;fE32HBcN] 9T(PX +!/77Sok:*`pp CwX>A"my;˸8pXՄ8@28 ji\^q<ds("*NkЧ@vkә<ҴhpV|1ĵRk",=|)5\]ѨqrHBAn*u$ d" KuV C.OzL:(Zxj1u~ipAZˇg{>ߥە{ eӡ A(\s3!o>{GOw]n"AppXEQdB_pw#ܘ/B bbfo.{\ns8XuF53$#Qw3$f ⤄[B<}6\J#5L9z|SO|?i:s#pK.͆#0X6AJ)#YxnW=MU>vL9y*"&T춊$,?< NS$PDغj#~Lܯ}.ۇ0fɸajSr[Nynj M-} fWf=}Iq0~jo{߼o9X)UkBczcgqI.mF{&+\ʲֈ_CQ`k8cH`VSBcXMS+7 $kK:_ߑr.| 8w*AɨCm~bB*7j1!)RI1" eίor%gCMγĬ:.-NrUr@=Ļܕ }X_H *W&`[ iYr@uyt]翤I# #ҫn!]%$w>k@@Ak]~v`34$/J 3x6smW;I$* 1c,"bȰ#ՉLVXR@X)$)XUűł E"Td,d`1"60*PUl%!j)BEXI)"UH!LQRd#$UMJ`QB@D "Y@TCa S XDbmZDPX%TAQ,jmUd,1*A1] T X 3.YeJ* F$%ƘqF)"f {14)| W1DHJHVͶ7ٕbo+ ^[oI7"FH(!^p-DE#Je@v4iau I*ޜ [ \H$ز\L'AT @PE (R@ b XH@PYUpd8x%]+ǞJe%k"l_ s=pע-TKK +`?f]Xpnf튃gŶJj0{IllYPۢğϵ_[6~bqZ㡭\Gkak4rK;)ږ,kHӜ&_;HAr?ϻH 1L$IE+: b%ce%Utu4FŴ]I@\,'v _m|]mAՕB3W?~әył>oڞF9Wz[C;dx8@>'QOF)zi6:.n-j!{x|_@H쪻'cp#u@ATaȏFBXhnQ{ A޹9SS I.cSl[/-j?G }W|j+ŌMY_" Gn2['>3ip9p+Ow&Pݭɂ}iA8$\=4\ Gk Wg|v}\"C9<%m`Y;="#"gXh"f㫥\8Sͭހ/WJnuy9%uS_ղl}MhA$pWgr<M&l$-тpUŮZ,F9T8Aߖ@T[6غx?~ ܌t2zdA'*Tλ)i%5jIf)\r66G疣$&ƞTƋ`6lvfr>3&/]W%F:TMޛV}ȪH021|%VLL 05풛?vIos91,81$L|xGs!<<@Aingpq'@O\JsϫУg3%>.*U4/nNorqVff dK-~6Bpaޑ/aLR&m,l8Tk2;6T(x+k-nMQEnvӥ1; JQ|f eR>C//IQtvB\J m(6HS8Yl*s?%MF@A3 }4a)(*|zJ"  w=Z6.Edkbf"H/>7# `ʍBðmmbl]0+6ɮ#,퓂ؿPt3NcKD\ qA L‚(7gwVvİȸ[{z/B$2d u$r/7uuX~T+| E \"ƍ;=&M)VKFZ~Rr1 c;JX1˘"/7]2^S(mz=N%6vނg,l_AT}yyVN \+nC{Q5$U ٚsū/ ^N 'ڽ ;F<+w)\nK29F1p{B` J4-/W@`^Z;A= 3<ǿG 0g%Xk}c;d %89~yeB4]rMރJ(m_>*`춵rKJ˻2c"(cY,Qlu):R |e͢fr 6MM .I_i_c~/厯 4 јG4#:wynݔ@)J’Qs|lH%ZU:sߣxNi;~hfaS6J ~t7;:ɑ?"2<ųs-1DcFT@1n:G-awߧL4RoJn%dgq܄aM v7q3XLo{7 6+lƘ=P$q8n{z #iŊ۔!O^@Py05A˫?a ɾ{ gr7`}H8nS-3>qP~g_@ԛr@U4Y%UQ"ѱҘFli-7Z.Js5Z4l\8DHЙ4bzq` 3Zt٢(0X ю05\E &Ճ^/e\%#b>D$gRٵysI +~H%Es;SIpf;u9w$bHu;'f2NŶ ["]@~V^@H;{ vNPw 1 =8%6%= hj0#k9@ .x菱MXS0{mD4M @ !uwT_ZZe~SFd٤ ?Qz|9fߓ2rk}sI DbԦ$y&Z l_6ΗX0xU;|Xּ]{4b@&YbA19 D5`Uu'n7]ƅy7{bcVВx?"(H u׽gmm/data/Growth.rda0000644000176200001440000003750014437645371013730 0ustar liggesusers7zXZi"6!X ?])TW"nRʟ$!K{yN+,ɞ)a*&U7WN^7.YtBhNeɀE}HE@hg2?w$(fl;b+'a۹G;?%Q^ImOͿSEEx2.B~'݉/>H-oa/-@{Z TX{Y%UU<;\el֦O~͚lxE  tEוx 䩬kg$c[n1@,JUXv!64>.9yBW.}7.aHB ER,ʥ%MHh:S]]b*WՀ%.)hd{`%L)K:luz1J0.5 ѷVkc[a(2Dzzl_0˜[& 6-iH(S5[a:뢚X*u5 3&E=} ?oTKM*xwH~ampNN:W0R~뗊 !Q`RĨPb4Ϸ^LsI{0JNzחm'2f i@(~)E$iTg/ja(9G5i.+$P\v(X2K:FLnvx0rn\N)C]![PAq~} iU;e`Ȳ?[{:MmIF1"R &\dīRń UQ½ EаcҶ=tS^g^01gx0"+&͕k/i7q(h NiQ uvwyL2#Zar㯥l4H{PLgؗNB07v)C1&ЅGd!i[,L2ݧz ; u 7LAQaknpuq7YW≻S|pqzV NQRts {fK p޳fZօ#Ѽ.ilwz5];x/տ OD-C\_LHeM8[-)epMlh?l1#vG[kGߏ<! QeZL$%Q-' Wx^2ݠ/d%+oovM f.{= Գl:ByItk!#Cn۞J.zy4uYw5i19j=*93Bxa"/DuYB2I~cmiY(XCቇJE("G &K&rt͗d>IꮉRP4o ۜ@Z{HkD^Bvq: mXPy`JOg4'J܎7T@7b^zw͍k8шŖH=_/ qigF3;LI>+3%f7!TN! Y $V ?\QSe5R;}ٲt~󿇂Q]L$)9mM4(2-(:p*1Dށwt}Y"kmf!w`e(.ʽ:rb+,L}->Xfa(U~W`>Cy j1e}Y{ϊeʂhx 6 k/ltOa .JK6_J3$ygp8M1nіH5ĖƄ `C&+CG{ޢI[Ѱ|N5]̮!׊\n vj6;DGu]3Z0Kj\_O9; |G8su,ϐ1:!,4z<㔧;F:K?[/?@ęBvaKr٥ 4{jsu~(K&:􉺖4,̋gLRJ }sm՟QR(BTν ~S"X0 fcqި)ܐӰ+ 3rPINF0RWMsFH-}|C֍t)3,"7|dq[r8dlʙr: DV!N2T΋@DKWmɣ/>M7dgTY9ю]734vV%6R!(YA#Qv#E`j| `A ledˉ}ՙ>֐CdG{aI!":S'Y~Nn+C'yρgS 56?G[$,y8.'@*}P˯^AX {=fnj@'B[ZM #5U~ƩxQIDγJg7Gwja|#y}E᨟3=ycۈcm#8VQfJEnFVm<#d4b`j,ez7AT@++xa ߫KA$-^0%PoTXZ'VТ|ul #/-) NyPL3Ngv-4=wYeDgS1Pاp`ytLOW5SPUL #y<|]&iBAb3b}\.AÒ'$I Q2J=G*e#b+IPu4N fڵ1^/z7!*ϱHHbކa.c,Q/G`q+Y1` B.c,&m*XGpw3~0ʂ;z/Ĭ܆/|DT潜OacjIVN|i:X쑂wͬ*}e"n,pF`~[jzzj70h$}ʵ paj҆_>Tg ܛE 168p3I հo藛LhigR=;q"dQ{t. /5!;vpNMޤ [mKG62Qp-`#]`s7 ,=MH,ގԑpΑی/VODJ$yŐQzp9mzk؜Q:#r Y"gPRv/k:MERg"|-ϜZ?gE\팲>إaa;&X!F `F} #./OF EE'UdGh U1zLmS $'t)ByeH8##WCU<2bxCrSZc,NF$#ox 4@M~Y,8 nA$?J5JǸuڥe!Q}#uy!г? W(d1 oۃ&1sjZ>Ԁ|3Bwz'oˤZx$JEҘ>(G8``XkR.,uWIEpTo^&q9pL4,D AI$IN >(Ƞl 0(H<T)(J2[y b6zf)E5Hh{P?)dH8PQgOmq=E7)#p4%Iv Z%v_CtFsҙ`N9r=wJ `7,i>3ydfA(8VGpQϴal[xZQV-ܘOSX) ~S8%_tsMD`w+.ܟ6+d!їHg/aʒ\HݹMG%<+ߢYyP49c3Lg갫>bt[:G+wBgٖ7#D7!ViZyz>6>PIGe^S5VMPʵ-~UM+Þۺʗud' #E:į9M朿mB4XB A$c6xCT( n7 E ׵<"d M^KcA^!.1cҵ-[z\¹1_M/ W2LFH1 q'4e!3\\nLw~?wڃBθɌmYzi !(6(G*d*w녟 훌o348Q`[u&@Pm Euʱf׎~邇JhAy%ՃLDJ=l5ܑ~9emz9ێb.bL(\<[Ϫ[GY²"h6іEPt\' F"IDq 0G71)dZ݉CC)- ێբQP =fTViv@ 8W.&|Nj\xIwHNJ57Q* e1>_ǘ%c̹;%]wG*uK[)/~-+wRΪrcx^Oo&uIY?]&#l' uՃҩc{LB*}^5R֭WqJL wm~ %c5OfQ\፛3+m?#QM#p8yu_%[k:4FT}.>N?Zj3|ģq ] Is脐"MEI٤>תWX']k8c=H?=?U79OUB! Je.jGgd@e_bxn}WS1#~anH6v 2f1"|ku}ath ,<3z`+j pvH0NS 8ua^ kg.'MVp7M(a%B甸GR Pś k=f-%΋͒w*9GU?f3+ ?A0|>1[(#r6LC G!SH&.1r#}K+xO{ L9 hc5$_7hDX87e:F~8 8t_^`c;M,+t^INҫ;Y"k])Q8B89l2r?9Cbʓ<@F9G\ C5]+Zta,q!$7ͨgUPM@[H VI,5;UDНY|ȶT8ď\$gf_sK?K.=.";>֒4_Mm%AdN(2[{{ɐ*و$&$R4R+h琉e8\< fu^MeTn(GNq5kxZOŲX%.W)FZ4Hir;nEሐY-(zNh46 2X' ZѼ Zٌ2]qX4A/ H^>c1)ronUX6g P:4ƴà}R!)./Nz\mGyENe19\P3U<-[m ӡY7xu\ ĚԋH{ a3kcy]ɽ(!0dUJ7䲋СM̙ѩ13v -:#HVgNj4i] ss90b@izrkW@RpjV%wA}0XJLkBް;/a݆ q?YU /-ZȔ,>{h$-+s~ɼثJ lQCǡ10Ǝ#TEǽ~CYG( /ohV npa(Nɶ蚞#_Fs2J  !`tF&(64t߷*L$/GJ@vZo~ph_:–tKߪc7݈p_H9t: %׃(6,T5[֎6 /*9: #SʹGi%}{.˸o'^[v5e )[Yhp`EdIӲ1a9u^F_y $p_?c(4{EIJp;Q!)J8K<|Z?>L}=P{$E߷G]mjc`3qYD>[`:JqZz6RîKgB hR Ȼe Bi1w9#0'LIےuţ4]EvPT;JJZLmMz{͕Pe3!LEU]/ Qw&Ns wپȭ#Q-Y枆dp̄\7B(<;%)4쫋[;hbG_Dq5LtGv'_-tCQD{kZ)ьʝfE G/))c/Q+2栫\Tq9MG91 qOSdyt}EKϤfkaS.PR w/n0RvVj=ϼȞ;S?kuEǫ=Ġp~иxX_"Ta_G3!QX9}OfWO-olȧS W %_d3rrDf6^P$X]h_W{C瘄bpG6Me Ww}8+_N3,X&|k5h8}:FKa>q#bC%OV}/Y+Dɑ\ pXcS5Y>.Ӹj73HadĻ?=AY: ?M ݬfגiF  ["5CK||s%cfV\x5{JBGbƀ-j{d,_4Wx=q 6:/Gfoty;-z]y*UxZjbّ@E U40JM\fMVTi?} vOq- [X`߀ bS0;&3m+~r/>Xqd]ǎzC?;=43 rɮ.(WJm}+٧Qf߯2BC4Dvd45TՠH&|=d}^ !mA~k&6W mC_OWC:9h68MNm_%v$!\ t$ T+M0 R04"4b*ZHzȓVߍPq)[ƈ_$6+?Uw =,'kŌyø)wz@kDE3 >@Pžuu"kp&A KoqϤKQfENŻFO+;"Ke@bujI7L>:v8e@fĤw E!DJ-=?nXeW戠5TA`ܙiz- C.k:Nm,KEټ ?Kk~" }mPGK4= [Tm5Γ6#PC&Vm}BpUվ@ 7Wä똾Pа . mh~#SY멎v2oJ"+ x| ,6gߗ5`ILFۙ+?].W 9T3($dGSRG{~^`%;D5 [X8[)??ql&չ)v {X10?{qe*0!m3Z@{A_ye<܃dʃIպ])^2PLmKVrب@r=bj qOx(F&4f~&4aj2YkLz&НQ^b$`Ե`a һKM+èn/bð z42{yzz%adeD͒G`xGd$mxcSV? 9Mfgؙ$ZDאxk!YŇ愿9D@Hy}Y wHX_٬Ꞧ|Rs|7T%~8?[B9-P qQJh"䨠K8'b~+ꛜtDd) ̈'^ʙn#=w-+X/Z2Glb-wKo0I31< qz(OVz\M=М5}ʽKvĦ5t{* P\laM]#H<(PB0Z,9)8I˘ +7%/ONT56}CG;4OTNٜQio(>W_$<{sRwqhdزcK][: :)g# *qc!sFdݡ  c~g_87o&{lT~,5C0}_Ɵ,E,y gCWJxNe %Ăa${`DG0' YaSq@ޅ8osC~^J'r^6w d;WnڭBƣBR3K)-WA!s^g…0w\`GGj Q|t*I3bo?x_Mصb-K;JA/a勯/"%d–INO-j`ٲ; Us()IL]\ Vm7Qǿ-fyѬå\VJL 򊨮AZ!wPw|Q$) )˩ DÐńgJ;(hMS1AgWDLfLI$,~_V <0B44u@e1`OCEL.8"}NӼ&kfv%#$fLUyoK4ga;funKWӬ7v1"!B88*'ۖwDvp,.ƉcdL1t/2*lи$'$z,Ԑӯ DQrrc+0|M6Oܞ81C/{y!ԝYCu*+B},apUS劼>26⻟߸p1_D!| ^&8al+tsIk)E\`(| ߚdֿr!_-[qb 'Yۭ$G2XRu ^Ί`-#/~ t[>0 YZgmm/data/Finance.rda0000644000176200001440000143621014437645371014023 0ustar liggesusers7zXZi"6!Xf])TW"nRʟ$!K{yN+,ჯ.W*5e2h}~n!5X3t5KeՊmB04^]Fv\ut"#yKNrZȄ0*qfmFS3p Y|o#3GCJ.RΨ1faU_ *Za,2C{L- uԳ3&zl1R  0~B[-E8B 6an/OU#˭*K(f'z&)$YmRﵳM;FR7nLB߲m:z:^8}su*8`5 5Z}(S -:WEF3-[?ɪ]KݸqKlro9!.:!% NVV _Yp Dɋ 7a2&?ULqӵZkmJTLP=GͿ<c(x@=e,:I)H+?o<0^? P@BNidF*j,¼Lǖo^G1ј]Bݒ>(:Lמ}wgmuṿSxi`* \Il18Pxj!7A"M)UEtvx޿mStÆ,v ?ђ';/R(=ѵc+&@p,z -YߢFwZAWzw{29!3fIkS8m*w>j ]"k$`6Q*r"3uϸ/qy/RHf$f닣ͫqtRzKl2~Z[,YF@ Qt &vq,&`ψ=`82s%.ˊprR-M{G+ԍi Tq5Q41~gfґ;?4ERG}:byط{jvoѕ,}xTÉ|3lf%Hۧ7Pۯ(E!uh4u3.=|{@ 1//+íuz;JG?2&,d&H}aPUrUOг眍mB2 X;ḾRq[ȸۋVƀ`}.&W[ϲywFɳ)i _dn(DHGAbG,Gڞx"h,u6!wf6gה=#D}uW2>L KQcK c쁽gФqCSuN!VK]~aX6ndbHAkQYt>xٻ@ڿI3u3 ۣYt~"YpAsԳgXVi)(#5(HOۼ谏&TA8M̿1X=[S}0&G/.dSa(;Ht\4e%\ iq5@<"F_!!4Y`%htP}"JT+]-"B{S!: 0*uw! wf ir둪XBHᅮN]|n%1n9jd >brL2+ e Oy@»i!Y'3x|&J vLgj!5wwp,WzCsǕmMYb$X~fy;[_;sBTRrNJ[}c1xJD}|.',@Gl|03:T`45?PMEM! JN8h@qwwdH~O1P_^#,oF*2o>s^6romM tdx{mFjpގ7^v}! a ]6gO*: FWD.+.i3{]U(4ң nlUd%YhjܴyfYζ?_Gvœf1w"׷G;~>%=B*\/ޕ::>`I/7{vV8xs>3|9PGyēQ:CS:&QR6ڥ1`ۺ8(<ԉLX^uڎB*0x[Hv`tznxyi[Iу:b_+PFkJ $; ` le\iflL`Rh7,: gofq=_ܑZȒpxn|ofc6\f] :`m([Y=d}GF[]b0iTl6ikč i`|6!j, H]<";&]z<ĘP^b[aӮ5k*t}rNU8]&}(F%啠9,MSg 57R2KYIRj#m)d3 d^LI"W; kqFIw EqteX\Nc!w?U؇w"Z A_]/.Aq?;?>7=Dڧzbf }JӿcrB1˂W;Zff'LFJ.5TϡՒiYEDcQ$+Ex}ĺGY?iA*/^4Fڣnxd[彎 _owʄՀF֤=nNJQl@iI}~xMK b Ji7SfȢxMφaPcHxW33)FiCy $LlnՎ% MpI^C>z5}W ~$VpZZYL +[A$oYh7ܧ/Qz 3byem2=oXey0 `SܸOb7p*}SmeR T";"M1im1֥rlx[):srwVcG"@lՑ60y{c6Rρ:gv@pUw[Jym+zKVy"@TSֲQv)#G+gC҂EL; #:y\YܜmVHq\p!ˠr\ؤ F-b')4m"}(6ߖN>pW0n$? r]61P C݆øKtFʚ;:dI_"q_uzp.AHx*W@/€_'R&a@ C)YluG` 6d̰FCT1s|I L{ѨjAeB&$ᐹxv& Bݚ~| %WOkBX9|x ^'{PVUϷ"yKHŚ`#Dgro|2oy= ]00={頦LSR^O8¯|LiKiCc7=Kit[89XA[Pɳ]?Zv*GՏ"uۼ2@CyfX_(E,ϪXM|2O:#6z gtWy5[GtE%7={GjT^:d8mernqVb %=@KULFŋ \{/v }c蘦4*`sCޗ_ "MtxC6t(4 DzD}9y\"mYv`275!&*BXKR+Q9 'RdMn`M1ճ5XS3BA\05=* 1(G^a$\ #.y lǗ7Ϲժ@Lgja,Ec)}΀ֺx'0:En쥻SNg$a_]F ݃aRTCѼZeUz#Erܳ tr2Iֹ'GJ)Pr )?!(ܴSIIQ`F}ؔBϒ]0v繂:uƒ/V.R:aTQ? Ԯz 2#B`C0 [JWykLcG"KŚ^DFa҉#wG~.|'˥v=[;b%z ˊ -xF,t!CSg< f{'%4 HvtpgA1&]r+'Pv+ gDA+e4G4?^yM#,~VsxCG-5 O5Wkp~.P&MͱKʖMCql9yaZq(I)7n<()JN/`gam{X?:oq:;˃ bk^T3Q0Ȍf@Єb6b>\dEF' 2ۈ"5'`LFr {DCq8r_"JgB + ?s]Ŵjꬼ+?b@a0ձwQh}*5sXQYa nN+fqKVA}hI)ZDvkyxs#o6͙1gxL DzH9 l=2Jס!rl!f6g"@qZ>#n:XDg7$;C/GcK% 8 ,)ޘxT =0;#W`ZR8G.b6GZ[;|]/Fџ"Ph<+Yk2<8ܟ~!*$Io`5D;s;`Vya}\#:I.2{&o[R㴓<_ |.Gb;^XuMwq!ɉpQ9LwVKFHŝ\nCRD3-Upb2$IBKRgOr7wLI"O`%魳􄷦,aR?)}kzI5>UIj =rvl70Υr T3*[bX#sݛl_`)յ)Wy8I-DuCQ՟&VFw'H sMb188GiD `ሯ3Fl ?䝜alw^LiDԠda(,|?<[ؑ{^VM d|wpx5@S9bU2lÓI;Nn,tls MsTE?hY4%OvNYJtMdD>`56X/ ы^bوO|lK53cZ^eeVYIb ';qgueg)XIx(5ͻ OrE@ۧ.~'uRRy xkt֔,!N[K14`Y/k evBU+_xݏ8J<.Y hUJ5}Nߍ^Hc+d~lqw|LYc9qAN'Pz#D'bo\jT5ѥUP\-s>T0QPV)Ӱ-záAD7Ne浉 'W4AqgP;xl̕LEop.Oqplc~W-HX3 r@z ]#Lf I!w e$!,i8] 1/]SS]l-ag<*؏Ŭ5fRw|.Ե?Gդ'Brl߿Na&F*_ѓ[S+2@LM*zT@ֱ H;OVem@F.[X 9;T-8,/(~( 9Gj@}HhϫR =gF)ͻ>ܫM_ !5 H+JTw s ,GL7'A[v3/p{} U7f|< "&S.Cؓ>2VcSqFQ{SAOYے#9g]- 9U:NO=Liu@#q5P$&v"!M?#+t$GoU2 wtDQ4FH߸C *Cl^ .ƻTȎU-.5WιC;.z`iM$TƬ} rEHҾl2)&8T+<- u(/ .ZfV47b4M׿c`^RX}]Pu(_o  Җ1V{ XI0 |Z"P"-7C LQM6DA)9zosw${Έ˓]j? Frq"7:ft@J_S%07,Q1T\9eVB21$tSgW֪c71E5N&Sͤ6zRp1t)]>g@~Փ5sF%c#&uXY]cQ* ۔lc);jjJġg;P? aqAx_Ţ+`;[W*Yځw:5@i*k7EYECОs $[}i6NG ,3l\7`q 2Z5 lwA4\, R<{.]<ڇЎ_ݴE-}`,t>Nf4kǂۀ I]<>Fgl.^$='4=.hnns{燇>vVB9F]7K5>8vJ@Q16+/74#xH lYD1T#9FDһjxXgm{T'ʫ"eC*?__ R6,>ǘv?o P۷Ma![5pߴ tsyb?`r(k8#OeQHy)~VӵHdXh0UhDZ1 )y ᓧK N)R3TiH .RZ5'>1!%l ZQO8KDϸ4y=QU܎L NX2 KZ̷L€ k ~k.CfbsPKb-bzk7Bhxd[+i~Kt;Pw[4Kblto6:̂wF;jX*~ZE`J҈իl+}JqP]n7Jy:RVg1fb02$\+T|\j1/J*(v*rt&EŢ'f "=y' >>a0޶z GSW5-A}6X3)IN\ `Z(j!m,ո۱$aD񔽑ֆ+檻QZ?>,}[_lt=fMym,NÃKHZ-6]SXuZ dP:o&(T jN# b9?9@,C1V$YV 3a]uCHЀV氪Z;/Rɓ1d` Rc^b0}y"Σsr`Τ&r[&It-k6{eBV%.HAdA=VΔdJFI?X"1fvtC)xq9/@);pIB*OUm 0-8(C yEGVfR"!<{]qzS_kMÕvKcF`Xg}nʃ-(dNQj7 i:3ct ȚҐBS~"!ʤ5+ nrt)?,+~w6+6 x.5]YmywU,0;stXuC"lhh vj!^ P:ecaWw woT*B»!ؤ:>EM0ftr?-ւY3m5s`gv.<-fˀҷK ;6&i fIǯu 2L>)UƳj J'GkX ;Yzuդl觵ɴpa'3eD@IJ9~Sh~we`񯩭7u4a)bgvyIzɱ~L'E#jBMx!ڕ,AODx`B/,IYҶ/[P6sN ;;g2#+ :h'~{HofM8iWw k#AJ~r̀_ZIU[!nlfnCI1 %U.y@rR(ZI3~w;?yC_ 6-wx5+Ś&l: _1|2ijڦ"tIzQ0WF?+;?'힯w?k3wyZȗ/" .Zu5 Kr2W<ņP {-=Q<*qq&$$6gaCEzua둸a>! oxMjTϢeY'9H'R1+%2㟮`7,ӹ&2RՔe:D=jڌ6XFB*Υmgf<ݚXMpagvcNt<׬ ebc#?vOZ;4ixSUhi*JCo~2Q;wUE#/z 1o56yX\{(qnd5!2  ]7ǻV\Jt 5 WWPʡlI.+(A,o2 0=#gDl`"Ibv)mQx٢Ð{J1[AfX+ͷRgyJ8-٧A'}(ai 8GƼ'~6^^gCİ\)V/ *HtqF5mvcixtN<σײBQ9qpI+Z46һj4l*_vVougj MPQ}t8^\OwǢL_{X/1Q}!}ϦF2׃d#^"贯&TTug@GK谔EwUČT'MZd]ƂbStHb $0uID/׶`Pdb4~U>=o7E*ra͕Ls %5(Ob]t0*GS~pә,* 3 b5БˁeqC}5Tr!=\ 7$o= 3hI9V(mč0N 7X$({ `<u5m4{CsSGJ$i~)rVj. vgYw[^S!6UƅU S dP%=4S r^)Oi %seG}w"u (qV=Z lw>J8]40I<# v9a$̚.7.* Ӱr'16$֧ 1;f#6#.G1WBodȁڤ| *z|#H]}D0ٗ۔bmÌw c-WF+ku-B|ߒt[P|<&n[w\@6& \q kUC("1B`@:[ZjIi44 %4ǾU1*eDŽ.2`V'f{{t]k WڠmR}ö!$);=dFC\m$u_`ZguT6W8Dqns2VGyƞs10HrJ?m ;$”5Ю^Z޸do7IW9YRA&N㽔:a+8!7MnT^C 6_1&\:n7o~|12h3Os:6! DUKk<}* đJ|p 㿭ViH @M1Dh.2KފK^LBke` _/l@ H.7hbDJnA GiL>6 }I߆SصQx( Y(17VflLΔ~ `l-YB ^K@R/;Lɺ5."L _]Q]ZXvQXQB]dZi\Ul? &b U0.]ѹ%׼+ ӺnF v􄫲,vA5T6N)^ƔM|v^X6qF#(D$ 4u1'aɩZCWGeDc#t iׅ r9c6c#±3||,Pb pMtuѬ~>lҙ ~u^pXCcC7+\~R#:t<"y!`İ*(zL&PVqEk8Ha 4AsC>{0+0# 1 ȟvHCŽp%20z¿+Y2.& vĔz.W"$ vmwʷD @p\:D%À[t yJR!*V0uym Xi<&9Z~<a"שHŠ4eACZYobmߴzY.3?Vxna.94wwm+ce1_*C#*Rs f  ~kK.ktk%R궵%Sb==:t qH9}xD>[Ej.[$8}dBkM ,ahp݃Bp q-"Òl5zURf.mj6UVS)ƤVYU b+}V:%߼D`JWȽ5QqI8$qMWKx54)cg L,t5qIhSWPxmLEWHEo+GX}HD6Ui o*!H;x[e88(]7FbU}QF%Gh0_ Лz@~ASI jB iqƷ3J)j$ԡƴ^L}e=⺦x+͠;˫]eW&.+?+ H[G6o3ݎz*>q1{/kpD/5zH<ۂ ? _$teL'l& GJ9alG G-xq@3$a[ Iy/>]6JqAcneLVQѧd!;Konbw˗^@ zz+ñ㝈}]#%嶨@<)@ ŪuiS2-#I~o$y*[aۅ c^^!TI )G}!a*0>P>bURa_\C/[δYYTN ӭ㳬 b}+uzqqYn iI'tE$=똓Fmu(>3 1r/ݐ\Y)wvLr߈?O6(> }<X*Tӡz頠)th*)Fq(ge_:cOUY<>&{уu )tEqd ^4=FǏ琡d$@d<ȦĈ"Nw&愩}~'ISXpĮxk;'Ov=nB*zep"=m24gvX=@Nn<K?f$ kV_87%m<A@FA)V"͊Nq2T1x+C64>$^{襾N ˽RUv _dfR/p8MAg%Aa!(30-fhb^I` yqxQv/rIfHE*[U8Ûqe"K ~0OQ'&qgFcjK7m7I̱" bt$gkA[Ρ%pɅS4x?տ81l!ij?U2?)3+p,bek? {uKHaMM_ӎ!& k69fZ9]ɖ3 oҸ m@[ '"۠[h4PޙnlF*'p}(ib|?=ՀVz(uÉZV872v OFpdvtd]6! ~K\=QU-T¶s]?{Ojbdp ذ?lte%6??3lW<}sȄyLCa7/R9whˑ>S)TØ2t8r\gxQ9o-~J2q[FTžJ{N2UW8JEӁk1"g)`\iA]n={Av1-FG 8$r 3pjj[#d@נ01xhPS\RyŶ5fe5!\OF4ŧ795M`JRkg`+ؒ~8P}U$fbDl g4.vb}zz`j\E?-8$kԓ|CB 4iAgoI C[Ö~7ޚ}.ʈT< _5leœ.hpkaF"R2Kj>bbo(bڧ} ZqsȔ3\#F?i); ,a \tE۲q?D3q;;쭳R&4B գCS/}_veKiŔ1p2v:[?&GSU6ܳj r2cN!3o5& QL9u܂zeє+~E]gy4q"Ds֓` -@VbeLx[BD)U,p/:~Cʹ~>x.J4_CҲsMi@Rpin9]pqhe1 .`IY4x+iwo/SrS@'|GkюKVgI,0э"[W^m]жp"%=섪HQ3c57j6f@YsJB}qR=C{} ѻ=s٘Z >1pnب:v;t? e5l5Y55V,] ,mt45Hǚst樂Ds=Z1\-jQ~$Ros?)P &Kj3=0ExiBI_p|OGvtg]*~te>+|XF<{X; =3"21ٙěfm.?4=P1酲fPb`;IP%N`~@SxZqA^ܠ1Sg ѐ _6MKrŽw;#r]kEل$"Z v~ #6ObYDSaPY/c.cgj)vRZgl慘e=|~1d[wIEa~M"k7m6MJ?z! 7'@*lgE{5:gM`SҢ*s *V{.U9o5 4ʷ=E,~Ɓz2=9zG f5N4JхC!W+.M&6| N h-6#SW?^*ZTUoKV$+pl>Q؛:fS!W<Pn7DUߑzlՔSvbH b|^Erޱ9ͳs``!䨼*\d;<] a3 fJ@Fg%HYTK\^ۨ GeI+H)J2)1ruꦚB&Lm5SiiF+ٮ۱kdۑ2nug P&& o~q-@Oq2:;u93`3nt@)sFFI3& '͸$QIiiU&~Lfyie&Z2ˆ/zpx.~:Pa8aCOKJ6#!rY{d}ފ#-X,.N!y]XL2 ~?7á g g 6SE=lM :FMGfs11dJݤj !u' LEM!= !H'/PW!~3xN|mJu&}95X]uۊp8RzBC;Ie5?$r0mu">ߎUh@@'r ǦaZs; ө¿S?rX a_QN* o6O} ^[v*׆£e"Dei:'#V *j'?sɡ6-*uAGZ+pbaغ֩5NsN}o~`|t'}t(*$O/'ߕ0HRL蒓w+Ѫuj! f*jWJ7Zyؼfg0Hw*}]I&i]O̕}R؁n]#y<{:}Lw{ٻ g]yTػ-Vɖؿ!e",wJ)|8zY5w]"'c%es4:_e7nEI}ZZv[--Ysq-z: -2q9q6&X !:## 5EjG\IV*OD~^@ R˹x4n@Uc6h /;q7ӣu0*L40/ZJ)-'Ђ.GQƵ.@qpT_x'j$K;Qp oDhm2=Qi ̄_~ Q( IjuG_7^`QL{uOFWPM `,ɞCi<:Ƞ]\C M2wD ʹf GCiX$*m zU n0, PqƉ3Y6j4Gh "& h#a,lfJh \TYkOlh9(IM*Rn9Mg_"cKmxVEwYA!,bEB`lރZT>xgmK-K-߀3YP!}-e| WAFiE֍;Tkvq) LьE[k C~-Ii6e#aF/[aʹ2#tu1J !y>(ׂb4 Y)~KKi"T#%9Z+eSS4)(BGE8|wrm?oXJ)k%2g\GLhKOEΑAST,F: f0!x0(Ng0w(;dJ 6X a }o}U[cv`ܶH|Z~L/$MN7^uҜ<|7TE8[|9h48*D3p׈I2.G͗ho+9X`b%m !m0p/C ۧ7R-%~ޝ:ltw~ p WV=>)8c{R D'Ҹ5vcx;9~n{t"ݹ\NH& {Ĕۗ>7z^M2ahSU^ 6,9,P쿲CH@7>< +4%c:*W&Tx"&YD7>t\W#*ʍuPO!U"S7PLCr8h`k8 5 "Ύ QD)љY,k:$B6n1d*e$_15e uΪQ'X^R ,QZ2 BrB)քI*bۡm?蝋r`/| N#ڂ4W$}$)d 5ޱFHoM,xx') &)B濉狺poJNilCsO^>,HPoʸkVCuD-4̟Tr9?yBvp]D]@[Yk^cY`S2q$]UEx0D>Xw-]awluY ~[w' Dz?YmkQmuv]>_(֏/yλn:)I^7gd 6.G 3?P()qmz_OmjPY&g2]Բό)Hn#4A5т_a)a)9eG>EL(ΐrԡ{aW?hH3DǬG'VuY7Ԃ(~${)0Dxo ΃y3\Ǧ 3j7IDV˺){A6z}}o2RO Aɋb|Oeotk7a ~7s֬.;Fr=2H6\ H|14gnˆZ5tό A=hU811Ohbܡu:~6JsExLR #)6AAX\ijCJ捐t )s =*3n0"K) g^e/mBNW+ԟ|s>֋oӃxK*wIM}b\;0zOUt%Qn$rUok'bAfhqԵE~X͵w`Ѳdw6BdE}^>lv&@$VIh PE TPTxJ&ƶ8ݹaxN }I~!ys{6n+\?e/ 6^ 4 4~Z"5H~l00} |i$ XM"b| bs}'K @.gفg\BTϫ9Y, :nfL|Sf8YQm3aG97TS9: g *UvpHLjV5re+Q=5;I,[qc&r.\0(U#4!>I-Wὃ%$z92 $DlgL!mHC[I#G6_]r蔃6P|71̽}.*ˮz1^.udžPC~<hSSUtg佛) {1 jok ؃i| <B#]c GXp#L;hRq,;,&u0u3adL?K)PN+=ߺN;1h%ԃŴs 2`SН6;-!8&NIEJj_FCs9&DOoD#dq+Bn\}KfގΦ!ҋTB }L@4;i(دXgP>9麗RXſ~DNRi$R 6 Z㦂Wۻ$^Z_JtIxw$BӁW淣.E G-)sF+0dRl8z3TibஔOqA0/c^B[5w^%T_Ia$%B1 Hcd"Qf 2rK:Xg l;!߹ %yK ?c.޷]hU ?䯧p۾! nXjÔy3*ڿd0 ;W/=2a! ^:v䖗{ʏ2Ҡ.ŪK,sxXd4}MWvȘގ&6͸*SbvC .&bfV Ue5YLe-*M'd!! {-}=i,n* VV 6eS'*>DZ5&U]]AYů~ipgr(vfj^R ` &jdHw_>Mvk1o`XņS@%1o |,"|م!j .Aiv2C'$σQĤ|a1PwMB䑜NmDa b8pd'gI2@3^`q|\k;e[\U'm'XXC򲨯UIP%%_ozDV¬Z歌ŊPu=\w g5q'ٯ EOTe*,& jpGZ.L"UJX* %Ʀ6MJ."޴;hVKGpQ- O^pI\2{+xYPs>'9n^lm20<,mշdˎ[P@`\iN+a+tHEyCA9?+%l˸Q\z{ilinn^j6N[+Z#06g#3v~Ț)p&Z^Hc<Ž(UX4 Q_q{ufsZFFSY&dV#\G.- 5LrMM.{g^'Y@33l7 hC)l֊{km9SU~|6в`E$F5kQLjUw K.Wzѷofګ2 bM/.Oe_r'Z;78'EpF@;+S.iF\\jm^9ȳUѭ Q̪{`k|PM.+%ץ*i5VX,A0{ 3~5 KZ9?0 Ѵ5I ԬHhiN,O y5&6.!'Δȧ˴W\;0U[ O1%!G0= VюƢikoV1нjQSE.uΏ|]͗e>!ZG!]p(nBw4Tye4dN~ >Ȍ75"h VשŭoqYd}W^R&ܱiź9sp8M|pfdt~'+#RP NlY6xz(3 u0Qwct{\f:Ɠ߱T)DF8dba&2u-l5ShS]Q8;>؆kwI9Z4. ;;E&o:!z]8όLr_.&U䯧 u٬WȒ R:Qx d:Ӌ}}[4BHrT`$?j-&Y"d=){ (5Ktrip;y{ǔZ>qUq&87K@Yme65[-\gF-F"x Jl}$V#@U-76׌ ";1¢߇Ced_YaIn|@:2+kPg;ȗ k쿪ҧ4~t9Js*HgMTw|Y+魫ps)..;VU)µ-Vͤm#Ѐ|v˜ ?^hC̯g_cXer>'-G%jbqkl=)S;W](65a,{R WD/oeґJ7Pp+B(螵gU$K( ^4J92%i=ڥ¤|&^Ź\R KS>b/鼰Kz.u 1]v1 !wos$jHZſ7|+t7{ӂ8#jI*MjTZC"#*qIFb{ApPFl>0AO59Bà#Ӑn 0h ^|]v\"_mrGb >OKu~Zy4nfډ$/84kspv̈́XI֐/&JBٿI&ASjf=-/|NUV6JXk)lx&鞈Vuq u<*7u0'MW<72_13V!І"1VB;5 .-?_YIfv%ǝRZB ZPPѦ9Vѝ֥1ScDLr"Z L%3G*i;}Oƭw\L]/iw⫪9\`%rQReK><O޳O]T$Za?Gij?Z_F誶}1O:x<mx y u$O%QHSmP)|̪?^ .q}JgR%BzQ 4f(@^`k92B}aRwf1&AWuŤHqa$*]tc9"EYx:گNp41DN9Ӛ'6N'YQޫڋ]e+J8֔\ȉ ; Ȣ!U'+Z˵n5#'Řutl3dx΃]⣜ƟZٿ7HUj`eBXZϳƯX7h @ xH}SOx :j_ 核D$¨Im{*& ,#/,Y_-EjU(/I)6n>wrh}LJϊ_oz4;$T4k2E*Mv-%e?^kcAȩp3!轞yyH ·9Dvd|衚mx@15Sf?9D р?\ZW6*"FN]{]9@ r+m3Yej~Ue)wВ.."zäk.; qlE􀶃°]j.>,\ "Wºt5ƬO =@-a|P6O-t`vY0~Xa8_ivICݯ)4+b^dK~XJ55K5 y_ǯ!ҌHzAНw\R?Dv{0Ґ40j o4YHl&*otn3dGwLɎGϥ]h=*{]!R[:a'm24qO"32SVc( @%1J!I+o]V-jp:.x%D&%cmH%J"S)<Ƣ鷁C::ߎݼ -:$ MGyCNIҶ{pOK΃B.eqJ'ͦt5&a6=XoO€~TE^رMg42Z{A팥;CH%?Qhc]gW51:`T 1: 冸#WvAXWH5τ57z-QT!:4utn>^qG3%-X'cG #qz(M= UԎђ)!0*w7\Y.*l|Kߌ*~/+4Um0F|f0Y"h#g"Nq6U0sG,b}~ f6K%z$h8. F$e<%/DRp TLamWM;uYG|O c e [z5\-$zfS5STܶfvz>5MҖẅ́I VB#CTBP %)Dlf& FPAJW>P^݄ 5"66ۛ©5mp1V.{h}{:VB^_4S`>fAt0ҸeYփG@ {e:&$M,iW2 =Q[cɌi=>կYnOũamAFD7H1p+d()\rG:_ʫU4L*>]Q-пZ<`ٟT" Vޯ+$<ް/ S-T$yLΖpuo{W8C$H;as1S77vRمڕeI-pYtu<Ьc5n(h `5{BNcck+3!|}\'{Է%I8 gs*}VB`2EцY!u3 CҦ="rD c[z6$t7Gۼt4erYZHDN`wJ׻sqZWPj ~!KretuX1 +g*}OKV]߸+5gXPLjMoshByjM>`8@ S+!D=Mx pVsX`{&)ǥN}܌#cN7+A, ?##ut(}/:1dye U"ZZ!\vY\b,9+f?e# re@>WbnDāc\$-0{"jJo$H;`fRim,GE{ |P~Z/m?w צ.mEhci4'7(Q5Rɩ-'o8h境o hg TD0eRs/m&Ш=r$J]aN #>\2~k² "܊1YX+cݓ?p,["ɀT P! tlD3;L_=}8s:pwOx.b(}ˊaecK#>T]gqg"ʄY~Pz{hSwgň x/)Qbzg;u'*ҕpnL&A)Y<ȍ_W"=qO ĖEYiO ݶ{ 8R+{-(Ĥ<:A?8:A]DaYjQFK}%=:1M'i<,vܦOwx:M˳mgb(m~ߋZmǺNoX~^IumI A \~cFc+[vLV<¾P[9yGR(U%*?m{g/M:468*@Xi~[ޢ:ހB>S|K;)aqgFO#݂= 2` >X!hc]k%WHR8?:75L`zKz] `]Tx-OTo bLC|i%/uBM!UePs6=߬;rm)P2-]49|2E^!vO:  8z@pZsizGSTXiC^fWt%B׀"P! 1%.Y_u$޲:f'^8el:嚢w_l"dx:D)$*haJi`G(?=R!SyyQYvU s%W./=NKN6}R{|^5},@ b"&̍} 0yӿ՛@l"N7Eoa4-X1r8rsxM[;@aBc3 ldfVW+ԅ q '=_-&[[~E$=mooka: 9652[wX,&%'2!;Kl{nL:͹Y>P2Hc7x/ %p:傅H߮S# ZiEvX*8?} {ؓOÖA^kX.-AŠjϖa{zu@M;+(KR3{lwKxpе Pj&@8(` ' "FGi1:⟾w'I71_ 9g o]h8ia:cgBu"X=F޽IegiUᒰ{ {n{71#\WQ:ĂxT~Ѡ["zݔ<±g^Hϥ^wS?D@AFD/&i$m*БVlq@xa5 h?)ʾ$m<#m_07ټ9t&oC=jRcC\ȥ,"niz#LU^aa5ۥpM&>u5wB!z<=[1.V!ʎ?T3~1_r0K>E-GX[IڊFurvhKkX guD뉛bO$S& T.[xBE8msǜ[n \H>:0)8IP4X*C!Pd^ֻW ]Rqa! p//Җ)l7TIx wƟ?n̾bUN9MOl뗍,7 Hx +Ӊv>uzA:?;(F=^眃zG`Ms1zRvfW)H`̝fiA vp#}ig@#i2SqD[.:Y$e?~eu8H^e%ݿC|Ijip4TmEPr&ޯJ(kEp'I6V'mi0PJȩ`(!,g =y%UnVZȲwŞٱ8{z8ju` IM5qXx&T]oZ l8a|pft#RįUbGx-Iib uuzcl-V-5ugʐU%ͪl ?b8_DJü:Dl5)r>x v¤uuPǦ]Klj {Ɣ~?OFW*Z =GF{ľ˾wRem4Dk–ۗ.uKPsl+̸ 5 Or}5+@Cs=ΓY[keϚc"Βnm9NK@]2VS1+Q+HQC*:3F"P?h̵nl/ˈR\ytHf7Q@қ3Υ dĻ:Sn@=Pa;%`-A3ף3kVaY+[ nX/\9 RGObb϶Z&mE` #11+(~@CpI;ף\Dy&İBPC6j:5lB HHj wB[}Ցaö3kon9a{1͌qפH頩P`lR_1V/olM4ÓIG:q8'DapY.bhCpňRe־L(f4Yí>[dպң[0{-.0~.FoCR uF[\QH`O-?, G27bR3Z vfue35i-}A]C[39utw*.8553', Qπ|mJ7*=-(6J` g٨HAXW>&V%A*wWphu# I 2AyH::>l=*>gOmĻkR%MeVj?Q[lNh+dxqԋM8Q7UHgiW'QhNß-_|Hrк;"C5"!煑 ĂJQ ([A[m[u˳_Q*0/0ʥծ킬z[><]/Qށ+V< " Yd W}h܉Kf ,RlثkV`/ҥ̣B j?|u'P@"lWwDuk6VWͪs 0e5h 2M/y Z%u v4ʫ){77# ?65AUS8B-jD 27Klhb/ <1&hdx#^'M+*H2mU~m-+'iZ>jCgWoLl_3xYN VC3[qod_ 9P:pr9F] e^`^_!< hplk-_jwPs'VD*X}<l| &)[Leqt< mDgo4* f`c#+P&]A2<+b O\ҨUx$S?t/4'zpYxqQUpyQZRtۧjg軰-_;/7 EȜ\ݫD>"R o>) LW1kU+z #/"ZMVb#@-#Z6w ˥gؿAz]fo3u"\\ِ#`?* d<@!:|pھ˘6]Oh5x''F[5KY;ﹳLBT lm%:AG\m}і[5_'c}hZNO;=2?+jux‡^u~9$T*8he_Y8v`0'f}{gf X^٨ $:M!n%`z- k5Jɡj)VŒS^Yaݿr+}n7bURvP#o[ZV 3ucrGG5xb4ॉnHX%]>03Hdv-С~Hr`P޵FXp W7a U֗ѭ,l.`mOU[:(S)`BR7qS>e e< Qʷ.+H8,d "u'?FJwT`2~ʡVE'8#>WUΞNqT2 0(vzO80Dy]9ʔct|.J9 CZ $M Dw0u C/!L/'Kz7ipR ~=o㲢U/),\|C̱4(E4iI$ܓ(l o T!ܦ~0<z}-8gUmۂQ ''AEj3ښ 1yrhˮG7VnS:!C [苠بSF䙳@2x¤w?L8 AN$Y mNߩvJ"6i*u<ٸvb*Q.Hr^iIS0ٴ 3ҁ&4' }&X< G'a#B`rC辈nE3xn-2xPm%Q>ߍVjEq.'Dn :6#RLLzv̉W2cq{pN!2rq֊1A&8 04~P\f-.-xqz=ްXX=v'^49y{3:Y>[տ59e 闲]Tu_m, Vm\h2}xT->f=B「g lynn2RnəRqZt勲ԑDU!1?B 4u.?YD0kmʢ^\_iEv5?혥hTY\[uh~ߧ=d, ụs&2ӵ4>IdzX4ދE y[RdDzAhrgW\DMln-;Ja "k#oTD 3M#; tW\ ӟzV {ȯԺ3 r&n5H4L{"dV;:K˺>uo=nhxh&؏{cxHvP}5md*THT[3!?\jYZ;7 V',&HCXqukb96@j^hJ9!'AR'iqQ\eB2)m2u5B@YMءh$ DJBy5~> TK*3{`W0kLz0oSS& |DĢ88`z b PmH5bg./ ^rc[D/oc~FEjkE~^"ד| nî9Ŏ9+eI=9t`9+rTx_g(>NM*$lb+r51/T+ _C89f1F*?&%0jXJ/XbGS#Mmv[d\Sj_d섁 ܓ ^t-lf9U\?jLgNYYc%؁!h*˓[Y4b#ӷfհ4Û_jQ+nN$)yOz_}ל0~PS:9Tdo8.7X ۚ-ogt0/m%W-jP%3ux4Sw\l){ࡐ'gs6<-W]9v@&k zQi\,=oSκtN7bHO]pa*TpWF]PҽpKD%>HH(pKПSDNdu:yxӄtw;=#'^%^Qcs9즛S*%mPLTļ(`)X(<_<z3i!}l@U;۱̗gϸ>( 1@4i \IqUK91tYu7UFo7̅ϯIR ˷% ߡ&W~c a,`βqj7؈L^1{;.룧#(Őm -;rj%´Vo YD}ˋ\k[UAedmO8ؕ: fȟa$Lɢ,ZL(^*Wt=Eی`jM=lx'Z\ =ݝC92͓P3CqNa 2>8 eŭmH13 hmg2Yp .}%n—bO :raARn ;7~8B`_hppM/Nu⏾(;]~;nzRNW;צk=%\ݰ@%"m22K~H '>RÏvxB_) `V+WҸDz (:aO dpKk] %wWa艷AFHEΪ,cRrl_S)Eֲhֈ ss :{ы|_m+a)kblfwM]@[n#ad; WpɄC"' 4tD#ط+j=U\<]A&|j!G*˽X^9GߝF[xK;u;*sg@D2PBTJabl:Z,~ ?RY y+ǹj^>}9F1耧Hv:I]T{9f9d+GQ#*QTJ.ܧE424Q#V(a..ek_Z30'48kۈo]T֗q'fnL>~0,W9[~j\~n&WnHKVըF c Oo?Ye0qc jK>zs⠓m\NLKH>4 QjZ2w ?-%"*i /P•1'maaGT\14A֙BK#@,w2 %plUh榢BgNIw{ۛ[x|Dި_%Y ?K!0%(l Rz%q%AP oƙ/(Zr(g =㪾v-bYMK9[_?bܞՃŚH8PRVsPEK)0fԗ4\8Z*X*=UGs!)ØAU+W9?`SDc?MD,)UΈ^иY&r)\27h$]gtzĝ23fE@o7\K_;d.lLI,Z Wv )-4u:ǴiǢHJQ3U@2d܆QJ5v-d8E_>ud?HZZ]1lDH{{ZvwWzȻRd ,7Jω}#DZi^[̽s٣ownrED8hxbf]rɭpg"ASl~]7m P9k:wWB_8eYIab{OxVPO*LZ`# LAc1;wIc^ҞgUijJ%TR:FX ¹N_$+l>߶x-ޟ7(og2zm-ξK=c4.5<2"k"\xh ~-3A1OPCe#gwo6N +uPP:4 m'GB lk8՘1=1 |*R'@S`ÂV>I7TyiQ(AX-hWaN$7zO:Uu>(8N-r)w?PScA]t_/B@Hqh(0pK|qA}_,C iuI8:N qe%cC!_̳o^gX,Ʌ 8ӳ衬ffJBF1s&7m4ep}^;X Q(6aʭg'~G&Dg>&᱋LE2p=\`e' ÍafUh&7 RP~ǔYۧ.&sf7MuȒſ+Xn"jjLPH4W.gNnJia`^rNJN6zؔAH5ÏiiD:</[Gѽ9RInAԊA*}$v=u)y.O3ݨFP+oT *&dUYl =wGp;4D`-`&7{MvҨnuZK.UUT3oEB);uR}w ۴iVEJwm 2|?@$:8R\%sj=PW{*hY%4=eN-υy6hAQ+/> `d7s6/.mݶT`]֠q&U ++sVLO$'ӎK\%An :'+Praf9CxmE>A&0Ћ8$Β|a(*RtwKFnqߩӅ2YX0  ! "}LWbjd i&ۈ=(PT_v9M!1ۉB*WSd@ mPr җ6ɻָsޯBֲuVU !ӓOgYIk-"d w/$ʽ͟9qi82S~ہ6vV3F@8~TނތӂTT1\~/Vq.i!ٜ{;PMi}#Ђ/L' ۾` $ݟxf^,'tGWZwg "q){ {4V/y]z!)sc2JYXn b[H?qqq#rp}0b,K;~nGܪ(B¿&jsE?з!1e c1UlF,nˀCww\ڢO*'T% 1`FEI^ڄп;%fQ\O3)8two(~HeS#L.ynn ^sWLXH"BEPYB5h׍i}x' 2<jpuf #'{a:pVKÌ xRAqQϠ猦J}N?}VQ)df߿ uee_e"l? Z‡Hw6 "RK>{~k4bpqRIb yh_XHO.k~J~M\9$ey剡T0gU7A59tM(LNqHz%nP:W ;gd6Uy i~Ӿ(Mofa&jI%N#riFyRh U^͹HA9_|6|5 ùu +T0(K0Āܳ _#|Ԝe_[W ҝz.{IC$7@o0%cx>_GF 'ܵX5;cҤ8vgjiX=(V?Px9=?i,kH'~=cbg2@^u판wP%,o0}qvYd~+; N$LB__aҗO[G,nqæ^_`15`Z׼EXOw=k,qmN%m6 hTFATךRiM,fˍ]2c&m0iXוAd7]MF|0þtqG[]Rv+Tt|;M2_c.8/ݡ7C@Go }wN0T6FS7f8w0/SxY8XQ$C}t>TookIa(5@j)8/4{ؐ=!jL2k~p7B(P xBud&e KUpkd8fN`:i9_av_/@_:ahq}[Vv85WʥrxQ^O͑k6j -t,}68|mz7g9bgGq6*Ʌku]HR}.w϶MTD{_ABTFB夣^ ҅)K~~ZECNSFE҅.W#v{I+$3gҤಷ)!KJV4۫!jlSEd1S7$Nu!~LRzDfs>L,kq?KY$%A0UcEP:gaP{I(Y" wzy:4x9S;[s8%E-(MM%RUY_hPkH&|}9e{W:6=$OQZ$+T`j`=2'`үk'q¶_-~>/z%qCe=,\y~38m;z3]Z8fIg14V<g]ymU4ړ-pVKHDUޜIEAS H9oD+[fk2k{mĔD&L GyThɯOЪGkޜ[rWn#4Ƹ*}^:3$"FnRiyM{*כ2Π-9zj~|2p`azC'O.ǧaB$-,=ߵ(jR^BG@V>Ѡ@3 Ci@x[O倿\aO p<#x"$R$<`@5J_'?klKUf`&W=3ͬ4Vۜ pQ"e1b1ҘgpghlWD7Ogh(ΝLfebrR +ݶMYG.`{h{[swtX4M=џx0}%Wg` P^cv'wcM(E][%Ê߯Ce$%r ?YzF1lrtсcJ⪛̣5wǒIњbX{h)A\FK$St28$vb p-)=e+sDF)4^/<іazJKmdm^lBR6 &IDpP$oBhM[}%/!>Dc/ˀL}Լ}]DG]RV,{JT"70  p Q:caȼ=ⱏ y@x'TGǍ"WF(.균,H¸`H⣸b@FQƎ2|K"KCr~?:GseP?颃 ]o[y9A%_<.F{-6=K"j+wb޶GcXx%:L% <14#fȢtNСFO$~}FV]>(rr)E:H443L0w_YݩC4zձ3"p ]?ڧTՃ&XN&:ب5J=PhՈHSmYepʻ;mIeրK^; O 和RKHuw;4{ڪ-rψ O3lcaɚXv/ y#ݵ8D@WDH\v1o%3֟GN{ #hO] \[zبw]{H//bC=~@iwߩG>OcyR{j-w˂Z <3D!%cs6Pd@`~wTX$ `RLM8qI>?=I*587VР=ItqVX%Et<M!&&}ЉpfYWWδ_;5׷ ^֯E_x)@5ˤKr!I \"`mѣxL4]'qMѡX3"t)|C{9]1❎e{M$;\]"ɲ娺bKdPڟmRDՉYii)TVD7MM/PXل޽vǪ_{!uٮPz[̪  ?] q#q)o7_dGLPpbN ORFBPeZE`ڵ?cYh TZN [MŧK XC$/ϣM7`mJg#8\˗.t*z~;d6+YNgU4vG8:7{uK;]2^<F%MON7Eh٧ DUe@ad` KX;OW5o(7t]#KlT@b*Za9#G5IHBB4H:|PI 2-u@̃dY"z`/ROFMxڌtYv^x/FSGVզ2$_X<.pȮ^JEֽ>z1δ9^ [o} < FYb9y!$y&Ҕm3“XT{ґqJIUXw\z=*α뵬 > y6!4;ڊ\):*orL8㖄1DVK)!&T>{"uL]5YgB#"ƺ"Xm>irbtw#փN( $ѭNo ;Em&,1,B9vûI%V>FaΨ!tU3nCDd|Y ?K KQ%x5Cx; Pmd]nGQ$oaF` N|bpOz+nB*T,~3Nf|۞H;:${(Nz4J_a?r7,n`3hH@²k0bKqN|==adOރݯ%v!s-Eq*y8&̡UKYh&hecޝXd[n:5.A~$6Ut1C}tkOu_PYĵJnVỹi$ u{Y8EZ ~NuyA! 7\fD_DH;cȉǩ(EjQkr,z!WkHJق˚l?@C'Ϭz|IXws*ŜsmZ-,ɒa':9sdT*FZUmlgAlE?XBm& ?rp˹um^qh÷`'XJYR汨Ǝg3¯:唤CA9zH*Zѕp}-Â] wk(fy*:^Gw;e(Y.]Gl ^J޲=\4̕<6fޡDdEQA bM&T5BFmUB܀dy l,'K?+v7a+E 8th R.벵ez 8ػIpyE .x:P16VmlRnܫp5{NɃ02K.Gg:=??˻o˦,9<ʗFux/ftK`"ꜯmMM\5G7ȇ~i}ژo(P49: e' E8wF+L<+$ };`PLB$W`m =]<z3Ү qvB2)N>~H h>@O8=Cާ;[7#<4pp֡A͉$S-) 8u5l(`2<[!V#su%pH_͓=`1.:@iVԮJ2 \-4a 'cljxKf;۫d B/\ǯs`p+r")J N/5mT~?ҷW =EW!+(+ԇ,05 ,{Oӭע%YhrXK&\kԏ^w gށƴH޷m`pbSSmԦYL`}Dݬ@DP( N21F+lz*Y)4j} {M0mO`eM0ٛQNMf=.%/kBho=ĔSG3YyBgZ/sG9Go"눊FqmJ: Kq{^Fv2X+!"~UT[*+Q ڞYM rfޤx5Bd 3[lzpv6w X4K|6⸹ ?b꡿w PXI2Ph #QnHa^ꌆB.]z$fa KΏrM:U*ʺL_GUn`6B<ІqD)wspm.?=qě?Xڭ/6Rɟi|<5z6 !pU;Hx-&TN?HO Xð7-w_ެ.oA߰\e]i%Zr .v ]¨ VAv3yTDqJ>Oh5;qcI3zM\ ;kώtM@-~"Bw֕S2@JMw߅A%˺d:*冄f4做Vw{o&6t0Z[;u/ffæN(W0 0yBQCx%-(X&sv':xf .3;I6AMu oRLXYn*)šJN-f c](%R !R~rY4VÐyb×0Xz׸R8)KL*1d7)O-UZBӯD1N&^D"ƥ]sY$ר fU Ge3!g3nx:$ɞ&Z_h\ѩ#u ܼ@P;(N"SnuG 7EϬ&(ߕA(ki1hDž,LΪy=늎ɰo+hzR>M~d`}{e=k] G`K y1yK>( >Jt->_ˎۜ)"5N!l'F^Jgz^ΙGH6ONQ@nFGԆx::庰Ad /dvbw{}L?mu çn2WMHT16S0Smq)ҘBD\B2d!"ǀʫdY@WZ8ωG>w&L7iuXR^8Ū]^l L ms\}uNPv_['ŔW:н*;sNnaiOL}%bʬ/ tC#{O21v"?ʔ_Z EdrŠn\H8!5d? .lB[ᯐ3tj]TcIQB)ƼFf쿿&$:^:|1s=uT*jUCsg9nisɄTɑ 'B:f$a{^REzBM!1asS#<*KMf]  5It?-c4>xQ{^ /u562Aζ~Tz 7¶9 5UFXd%a/~HpLaD=TNq;-9`17nZ'!s'ù, ¾LǺ/"}M;(Gr^i@q nMO$“z_kY&6aViMzy U[]pj 7sygQLP߸`iF4kKQ['g-T%b*ׇiGWw-=09܉] p֮C|f]s#Of&]|Iֹԕ A>X| ,BbCqYRĕ<_\e+՞,OVWB{3@6zxÆ3_!n)9(RۆRd^Q^Qq@*S&ApUc~*K JjI]LB-AX! ]&?DMOEnN~e§Fɧ(9C/0-]A! B!j A`?Y[=? ' /AB5웝kap74dRuK$: hn međb po@qӏ[Y샏I;[ w|$.7 rbUz"޳7+퐅'C)&uohHu Ʉ"wszR" bfȳSdM*cRgOȗw)K6{4r vvzG.(Jiآ%P[nc` A&Enbj1&<{lQ +>{kא"vu~nRFhRX4g4g@{ WExE_E :cj%]z*[(_w01 [%ұbD6ig[9+Q[ @;<} 9|BgiJ?^_>Z${QO HJcaō;fX&zS3pf8(>2y9=c`}4 # xtўԧAPlh.\$=q!˷~z-02 A,h5xH[uE.QX˙"fznFhw%ZX#ӈ {T =# 7xaDa\Q?V4+ôje0rmcrڃQwDrҼ޺1e/([wNwFX/& tn 1_Y(6:K1|L? ֑P-rԔ[_~QVspf)X<ݑ.r۝Ʊh36ʙhT j&e=]'V=_L7yvAf 2IMQASlJ"oE\VWM&+ueTXx.e^swxw/̼8;2pdao< ϧ;؟WÓ {|qg/q=~aV@@9?@q-l:}XW~ @50h `8 3x,Yo8A)4#v膧"АN7Wqyj&d/*ha`1p1+VȊYs{W2mD3/nmLryYy=$`Jp#vP8`[vn{u+g]#@YSA8l}(p887Q&b/?FqýNW>Si\Oh l- \ A7[nNxd4hv,,Q'ڧ$%Hh_[.z+k+,K0TC+FQg#+:PJ;:R &7;'{4.KAUڶE蠕-`. xHαGh&Ṯp0l;q@3ǯ,F\G|g^L1FQl qLigu+xoi"JoVjٓi A܎FKGyC}R w_[ K) d9a ˲}n(I}Y5I~u:6z"@x\=eKz_PEuM UNdHgL^ZB?:G@(^ 3u|IyzVvp1-s~jD~+OAmffuF-ڃRrvxcDY9ovDxQ10-ͣnu 8KgHӏkz"@zҀϭxw ]Q\LxoG`S@x)-L=*X-`ZIF-xDzDW^Xg;AiyE#r ]@ zReD>ZZ᨞G@f#q%7m*1_' *+H@W")iZ:|$H\lAaf%mA~-P8zB\(bT(,LrDLޫ[Jv)ώ>keZAڢY$PHt{u9ĚMWI諭SyxSu[Pe,hdbk1@BQqJ!m_xĎyJpFOM,89+cEECEꥄwY Rmo\ 9 PHnb`"_Ⱥ[k<-&y1jQ%]vHv^6ueM@UBB^ vUxkiTzNfI?+KԧoҴw4ef h-@.HwźVii| ۯn7/>Wr=pcͬw9x8b$RFiƾ!yj`>o1"wIHU9#kv ɛR <8""Xܺ0Z i*Y31*x?͵A&3&Av8,rJ`73̋8Sz9`5ƒPAr~Kf niE_|S65rlMLײqb {ú)Wz1"}#Th#3SD43Ϸ*S58Λji ;ƕhtDTc#tD=j:C"d ĴKFp!I)\g , 7*/fҁ(79YɓzvAQ;^N*qq Ўcp\1 Hql9݆*B4Ӥ-s+([k\t}/( NbD(;Gᒋ:*J*xOx'sބ\n x(`߆bvaۙ yJa烂T%7΅݂BV2!C05`ŔTc=&=/@&SN)sз6> ѡQSquatvOV;>+R m{HQZgsExBx4D5U%[[0;yb3]sEWR3j#g3W-]8!@y2rƸ[{ڗɻ"ʸTU v{!(J-㿲xup[}>Ze 7K `)o+>hclc\fN%l1:޲A[*0:f:'R/SҘ3BV|Ve_R΋2\`t89[^RoYL,l6fԖrFb-2 |$;~QF[#+. xŒxW~H4c+~X9:K}d-K gE m}wW$߇U䖩1v6v.#Ø,stA6`fIW=~q in 9}xS{" {^er'l^Ш_ MuVS&0-~g#XQ>Hut2Ncaٛ ,[Z(EךwV> ?!FIj7Fq}z. ]YP:ہ r9ٯm@n+0$A0*gQxj~ڍ=^5r%#Ocx Bh6ӤuD/\MȜĒS,Y QOl._Ә#nP>c3?q&VU֚Et;ELzb:2a=/w'l;duгjnr1c4Ӗ?u^ Faq߾gܕ,t*6ybEDWb]1VF D 3J|,%UY얘$]Z;U@o3ʴCЫ4E D$`iwi?cK~XjA<~aǗ/)wo_+TɯWAp6=SbaEs, ze;Ė1/[¿4M$aTKڙ c{dѝ#ʖyPCZ|~z既3SOsͲٲdZb`|R@Ddexb⻤BJlu hrۅC' A.k_Vߊ8p@4vHd(fK6lHs0qzq<킾QB*wFli+V9 Z9J0쮉Pͨ+8$[z0zfV:k!%OA1 nfC_JL7. Ore6 ba=[`bS; _(Hi~M8y&W8#%Z4Dѡv*Ȯsy?bQ3]xzLU?JvL5ߘ$gwޑ, }0S'h# 4-gۛ[7~.kS^^;X"(hf jҧJ 5+BS)|ýU4%| !^'gBl7&ɪ|=/fOT=F nzsuFjVh6o^_Z^ZOP}Qzkxۤ|W)[bpǧu{o"pK%q翀?0Ut@FrCƯ_5@nlbydgOp a' jѕkվ"%N`j,W.:tJdF?u8^Md( I{^sQP-=v+N V+ݞ$ GΒN\Z7 ~ƬR!JPҪYC<;= SXiTż͛Lf@fMʹ8j}[|ՍHbrqg!K,"v0YE%ǀ@Dc4loNu )(ۗs0yzfK0^LY}pw|&V='zYOm)Ć)mq%Y7Yfؙk 2d\d"[TBtCmB)MٻvUL &;^A&oX:W"в|d@3 k, ETE1bey$M`$cnT(am* kD'lU2TM}{a[STE= /ױP. +׆[vFףЛ0ݑeA|AF&X0Um/ l+ئn^ 9̰zEM8 "-Kv>%]dP$3r+.V *٨81AYE=3_u=> 0}0Nt?nsmJL ;,CbOd/)+"Mmtz^a"u} f Zm4W+`I :X_lte7Jl99JUyP ٢ q1$tжDI& "}y2uG=.ahGhc=n\C?{[p^O_@1K2nom0BΈ)8ATLqzNØu0{k^va٭PNYE> Qv.2\@ 8A q].i1Գy чi-5sa=+U,lCqF I2^i5*;'P, 恄\1z|l hpi1FI#?-/g3S Ԍ0Pł.*S #2IjɘS+rW!ca@l` >R?1һ̛_\͍Ĝ@&(GwSW)7v>k9NXyI-kr"ȼdZHuv#R-Yl->-X-tBZ<ޠ!==-GkP>Т|MJo$mKG2IJe9.s")Y]|2#qW#`.>d܂-yձZALDW}ǍR=xRwB^K7ȡ7\5 H@ɄcKIkѳ:Ղ,nC;xj('"db'mjB.w E l<̱֋~%{  Af9iP2[K⎣+ p`9)BHGJ,px KB@v\d\y:az~V%Rȟ*f$*z}O &oYo{1ۃ nhMxlϔyAH|$FM<}$+PqkW:"?Z/py)ǠOem~ia\HԆmt'PSPo:wAPY.]l,WFK}q39!nf-wdB[ f] Kݙ7U}V,x ՙ: IfGwIܟ#]6ZyH yH3ANNȸ='#@]dSR NtN$ª[OۙfIMڲz0,r& uzD+EixSc1oWe2aB(T\ Z@Au%d{h&$;>3s<2B`ğ٬6Ǻ;(ѣc3ր:<|S\l(1 H1:eVTYHd/Vi ~X-u56"wORf`HH$M}>Bcѵ^-vihF 6GC+.c|ݛSq{w(ꗅTowߤ:(ԣ/Z9`(w@u.d҂r!GNw k~ ;v,b~N T R-4P۴}qr{c/tu+{!yRh^,U)/3TcXˑDq%J|,XhI՞qkv>PY mwϟSB͠iw/埍]~sL nP1 1Ζ-P濉/@ςEx,7|1,weN(W~Xf8oܠDXKaҁ;f&\yK} R:hX5x(4tUqsUKb>vjJF$@ؓb$,_wL/?}SPg3!.ҲEɷ8'LeUGy+ԑM˨+gZ-:4k٣?ۈ/FXc-H@[oGK=E .w/7t/;GR?^*?Xkmw!x}w:VWoD؜l|J b@]A<9% ˘VuWrkx:7ʕgbٛ.E*\7I^]qCCM_qGqQhDXmUpp)`0p`&H&[}|nR[xQnd^I_Ė Iz^+]b -~_wXkA?IDzD5qm]\#]%N]Si} ؐU3Z&9C9y߻VqVm%H\΄JІ vk$gO`pd 6ٳkxO;QsBO$ˠx/tNrȃB7_ȈW "C۽'2()ni9ᅗ^:I_[Uv4s5l6 2 w~&UJhm^DIlLΓnj6 <,LBO)}[bO#qn{b:".SlE81!N2r JZR{ ^-1]2쒢 4wr%Ю/ o,+P͆Zɔ4oń8cVW2y 7yeΕe\l56c]xIh.:|{V,+g+f$_#{=RNn%w$I֩+7e P3iJ?<>%isfr6$?)3ScG*h?A˱S ~ecT:ť5R:Ǡq|k|?2?]㼶<5*ɓkm9Hmu>16g"LPsG(gu 9}< \2;N T8fUEAhQ;@':L0J'-m+2V1>Q1䉀6m)Nިm$<1-`gGyqg%,u;wm$bY c<Ge\Qtԕ?44ܕZqts!pR׷>KG2OM(+a{I0v3~&_<9Q|@%nMS^؋Z:"vlQSr #Q,I{{fJXgW-lI&r0c Cam|Up;$?L#NSec0J5* 4yζo{7qɎ_D`@! |b|̧%#dMCUbpKk&g.~_~(=W)o٫+d3q ?7YݱX9 sgJqm5Psy!ɹv`Cׅr!6!t?ʃWVl*&0pLm:>rR =u Z{1x!w-ULI"ɥ(~x{mH#>#ye3!جP!ptwʌ+x' 8=ї8R1A .t'VO3-Nuޚ&x9~kT2" p_軄?YJ5xLd FtEz32OCQuv &N ݙK"6L$lzζMN|;eFWq-KN,K +wy.rLcę+9l̓~2xR *7F"zgJ pf=[w-*@MyjC3f}۴"B嗲pbhZ i"\]HOo s|XRDt.eV,\uc(C7S.aDC|.aQ]@ښCኈ{uNeJdm< ,K؂mR+~l&U;Ynala@w*9J(S] ^i zʙD hPҨrTJtwgҬ%o(r\2й0;H!=jTl|1 zq>Ч,'31߸>~ N@J4w{ $\WTEչTU =f[Ly({q4qB^ UAĊv-AI3DMd#n/x]V]__C,fRaYM RPd$ؔK;%߁6{j@Nzw^\$s<R AwyHarv%4BT 9lg|F ggQeHᢜЭ$)Ά/}SiV(qإB'8E"MA o@0.@ L)Ee1=n\|Uah.D"TRV> "/?"t'ZhƵŕ_Ud^d= ~O9p=%7LiKc+qT !V]r-)lo+ ^DA:)D?n'@@j_[<d;\ZHQݳ8ҧW}I }9\G'~~ ->9!g!b#J"|^l6H@?06j +9`.A`&`^-!{\@ ;e},,N,ܳ2y㫩7IjGj'̖8<,uJ~߱: 7ycwqutδq"F!ͼIq%4_F'2u9@fY:4| 8Uh.kHc5uMC`rF-~U5?֊z|$PZ]b5EEG~ߡp|w$C=:5oϹڨU];f]6uEk_G|[~b$5+0/jQbhl0<_z`BR1UTvQ3"n۹f\QmUI[&^gV%MAB5c괆rޣ+UWv;Zl/= 6ZCp+7l;D'do#l¦VT6Jedž"x4|"w& {عȾeb wwW?$3E8q:[Bn,Mv$#k ["Ǣ7!dVxe5&gbxSY?|Ez5")~h6O{ IyUsG>4p8mO|j+i9>ܪW!xHbd1)Gx~q0Biݿ5,f/12&JlH`'{JMXlIiUr(B͜JhVA7$+ Yp*o1ZvUV|RtɒPCWyQggsOhAƗ1} q|Dꌊ+&bȬf]4-OCvS/њTcB:Ȣ`uO xˤЌe[ʇ ++sҹ3'ӆ ψz"e`et EuvNvm $p}!++8)n!4vr*yfe۹X3in8` (x= FpoDq +#fRWxLnrVP} Z>Ҿ#87W;)Y^@n]R&wQpmBDӷo[ YKl.< ~QX#}Uy L0lk^H0N%XLh[v`AwRNKv>/y C1;3AA%6eg}@ XOUÈNdsDc|X>wi"{i˒9gsna"ǂ3t#& pTOY1X(}&p. 1*H[ ) eGr,"1澲?i!ni6:#M1$_߈P7AG}bQx=╊X`푶w&/srfYM=S/jZ MJf}=DL{\G XGv onqj͝pԈi_*N? Kx0RyAN?u߰#ҝ\eXbdzb({#l>PNP0˾ ){mtzivAs?BUkϚW 55%*>XS SUFYt.]mox O}Cs7̀m+PJ(t51o3}92paebolS7b'T<,\c {#fR\w9\yk~{vPQј#G ~@yY'I,īa&n)] ,s H0OAvILrpfӱ4琶ZW@xr n:SJFotN_#f]&GiyyN, `-r>Sz:7uhrYmX4`TEaqPϪi?)#$0{DL;+}dC+`#P ׍ d ;>K+7X76S&z˷p{ O`ႎ Â4~՛C2"RhX79.CW>_Pcӹ*Ov2n4n@yZPt68K !v@p.4dcx ]>>?gkfmN|VSXvL)Ņ>1uFcqodٖ(s}]D .$F\=GWmT UaWA ۣl}ȓ㚋p)j@`wS]=Z ¼R%(/"8ڸK2Ö'Cu:,.ڶG妿^^vks̠[%1' WU=uR5 Ի8 Tq#p뵾HfW yjW7uA]@5i}-/ӖD<:xIiÁAAcڇsY*ŪLD߆SqW)]*=8H={\ 9[*KxQ1]2&GxaoTʌ 쾣lBv _H3t-<$R?4,2C):gtgL{K`2?ϑFió21ۻd6zYxTU& I}\ z`2El2PozsҢ{!i%ә  Tٚs~/Gr Qy7K4Z*I$cT7a;`lgG#ަǽ1:4y(Ubɾ;N=qN=P6Y1K=<3zd~Xx`Do^;glme[LLbTkK|ܛɯYxYNД_LBT]EzxuiX)n e~EF<8nP5# Tuܗi!xUac !+і"91Bd"f-EeIAZS.;ric{"Uo`s=.vzYi0!|?O GCV8dM].cJ"ySX"$kMk?.AR؊W&EٯHvEoUgW(9Ϛ^FcF豉j =&L+>Z}+ g4I O޴ιT$+c:ir$W&Bx$&78K<@C?4S>yN6ycnx'Ja >T""f0RȜgUuaG}47gu:\2e,d!]c_,Oz@O~P%Q yo|R C\(8cx,&ƾO#X/<jJr]'#ARY" bN?FKƄU&_&r3B ^VRYc#R./4w_T)fwDrI0R@{.mجKf+}誜a :a#6FDcm<>?2*1ʗ}hzu<[|_01qv<$SapRvucΒy]sOD*#m=7 6Až\E'x$?Si呴۞ 2/\.krIaڕ>" Ul'w dMԧZkBZ#ܯ֛7 2 @,+7~꬗ pS:a_o@S g $bEsV! &I8aO>1*ejtpg{zդZ|u% l 'p )Ǡti&R.'MS p۬ʉyj<ÄGN&zDU NJ]ͺ/ގU+7W>;T=c)9~׀ ɮ`CmumS;jNU; '܇1\U}a$$ͧlIjb{! p@Ykc[ pH%2 tb*0i5XE_Y#LeS]uU&3rDZ]F_b=|Hy5O 9^A!g>W)eNbzjz}CWqjbɇD1^Yc`up2HMnObOM%+vpI$[cM!3Bq,+k& +%ц M|Vr/p!Lг\}-3~CVVyy ej;k:5sKco+pn:'|=ȸDpk@wz$qH3è^$/'[#f/eamzC|I"+Nk5֗1=ﭥeyMt" dVsT䤻oQc\_tnxNIAұQB35h8WVF e{jd&nxvƑHV^ 9aRz-!n0x JS- 8R78,GA;_2Iru7\%,űCphu L0B˶/&Bd`}й9'$)WMРπK$SM)j8Yr~)UbdҋjudAr_G%V&AA'aC6*g<ώRsk5HO&P^_]NաG4ȚY?$ ܛV}Dd͕d,L+>]y+|EH|9^#[$|Ź'k[o!?R :9dZP~ayS>xr^A:ZagB=Pu=6 D9A%2M ," +=/b6,z*EUN/1YDqә(T~i%N{?0;,I6v+Ur>kD" <$`;$VxhP!VWQ"u#D6\?+E-8u]v'{/ҭbB3)/q'[Q^2r{ x;&KE7 Mfx*oV>yxh<:J l %2_;m~vK@JZnFcc}dFߎQXC5|P@4_П}ˆ(7o>78mGǡ0ŋ&D5`5;%o?ԈD,%d-FWܠSG@o.- e)Y+lݡs"L'6$ KwLɰQ+7[ZL/mxJIXq_s7x&/CRl2 ]B yzsmɩjiYy./xA}Q3{~pq XcVr/ԩ +y0l!1ƐQ,flbC_v]V="M6İ]|sKu.!3JfAڝ`Z UwtKtF #y'>_5INgy2Co U oU(0  yEmoՁI z|kyTg2kڽvAѢ-C6lZ{q,f y+bh攩IL 5zMl%K+0~"GHWMX3,VXŢ1 DUs v9?ܬg)olhnYs n;YQhvpeLiPNMЎ>LbI]9HpFs@#3BP&'ǿ˨VL[\ zIky^1 pһ'DNx]w=*z 7q^~ @a;L{"q֫!D>^!O\uva\ݬ4F'ncѽ^8K.Oe'\q>n4S')#,*sU B0oD[s!ta+`dĂ~j¬"[휧Ni,LTzBH^0n_?weZ일 EftL7{x_tXWç!Zk1M]C uڒ`l ɗd@͂څ`Fn*rzf%\u3Lc h҄ -2Z:UwXJ6Kd & ~s<5~LjTuݷE%+2a4Dϗ#Ain 1}01m\+^n.<\VBBϒo,[!lՂ;U^_fJmY*PMlJ<{/jr5ZϞ/>!2fvPiF'y:i% )IPo,&1V,O*Hx$8  wD5i‡Fs7^W`jC`V APQ}rHςqi!ԞmDWZM%r#|xp\ )-!eS@Nmb6r6ؤ=&3A^ PI)[P0Sli"S=H $UOOS7ء:/x} J)P˕xC4.쫐&mHTG92l;Q֊Д~Xʈ,Jk.? %a/dhcXp+Lpv:WC'3pQoB;G_⧧|L"#bίCu(֍qLdo]ـHViL*C,v-Vē"U#2@,(Y!'N#om?@i 礅?-R0F ~r &J bfſsDO:h)*~dFqOe/Ex0֭q3Q;؅UDH݀-.NLdjY@I#5Yz.` @Y/4IwҔVl Mz/]" ?%:jtmëm΀j S:|oY#Z3V2I5PSUwp#pz- d*} fp`i׌GEؿhH.;ؘ0w3q Ot 5q='%R螀jF ߌAI-[Gra3ƠFާ^/ p<)F&XEꏑxVvPwȿv`pU\ \0cj拗g!oJ^Zp꼂KUd#'rd*ҐQ4+ '"[Y­׎0 Ly$0rRh!1 ` n@{I؃ D.J5*Uw%Ue#>nvָৣVWՍYmgس ]PY#D^a&[ږT+ϰiGe4㾎_Fin3s!ۡ-I;85Ǣx>KZyǨ܀͞7GinhBk!!üAq׮ NҎ"?Qv4E*6 NFH703l|כY BLtqY$!GmKƔOm|t H^1x>>0 "BԼQch瀗RAG6ׇFnY<}0|%,mbܓG>Ovӹf:r!՜Zavf%ՎA½DFpe)$72Jq$8]v+m^z&C6J= }͹Ty+CJ\715ɲٯ79#ZBzbE4w"dy,~Iu𾕈 gҙh௤kd0'^ojŜOUTo~-%Huڑ5LtCkJq&u^6vF`@`6Z ?v2y4r*hۥ{Z4^5~D m#L5Ǯ†@>C rK^ewIGB=rϺ#3e<*F Hpe|Op ZqS/vL 0٠*мUfP⼓kOi4uH\Urx{En@a :U|׼Y SkAsa4BGz ?2a? WiZ/UQ+ _NMV;˔: T*nX6xUXDLE l_ pDS#MqA{]ikS?e7&Nr B[I"|:ZuDZy(|1ʧe&i;I-REMu;1g]שlc;%7h묣Ħ{fn4p7WK'L6LgauQڹz'C3>aT&m來־;ZD󄺹7A3| <"\Ʉ+3F)OΑҎ-9 tFh-Ñjp\>mEYts2uW B|qJrLP=_J:,Hޙ+=Lxq"el3t8Ba .>ZkZFn(m6x>QS{=.z9.¦P%sһG8F*.J FܹMGמD+Ѳ^X R2N*:LZI('J_6&69ωN $߰r~~,(Ym+<$,+e)qqLHµX[nou(mECo4RzY3x`UXS!T.%t5[5_ddHWFfR r6a9x!`K}aO~rSQCD=46FWpFkl:T)<A)OKR5i;|G밪%]-AJo7?nΝ0A 6PhQD;AA0;i%_:#CiBKP+ou# njp[p/VӋ6$N)g)S9(gRuC1&͘kCP{(x=^c(¾Z;iSO5l)t~ OymɤPK$U:)$k| xt2/%F(>{\~<2v[HSK-;K!٠U"#gh]Dj"]pH(D+ S8MG@q$}(¤'e= 51YTp 6͉05+Q,3ci6#(K97IsQ >8D7QDBst:wfo,iOvRU yuVY|quQ,tLIs>kQN.Oq@ԕ ł:G!_շK˟'lڛ4Nzoch5]ZL ܽZ.N.hFB*+JtׅÆ6vS;$@> )1d~:Ps(n;Ր2yjC h&jT4o17I4ml*?jHDY&t [)Hha8Jɳ.P\󋓏OV3ol+Xi, :M3,9D9;l;epSLƩBo%_R%t?NKARyTɏwDW9|:u.f3Ed͙-PlI48X) &I2w;tC̮rT@A c*o\qnM *h"`'Q˛3x_#gJ)&Z˙{ 1C`Nzt*XmA]XaJrThK=Mi hm}ЪjfU?HOc Y_~i۠_s>Oy3[ aCbbuT(лU0z_ԲV#cV+ew GH{MslPީº ɦZR]6:A~P a{NJ9M^<KxIZOfJ~U!NKCY̢kqk0z [zsWڞ=n(th#V/?0gPҭCV DCj_C7l#9$C[ظ,5\9?7%%$Ryٌ>ki>N+66vߵ7?b`!;%"?Me˜]d'tP0/:NDڔTnXXq_sl_ WtMk~('h:B٘ ?wmPC@RgtG Ŭd*( ii"8P I%r7HJ&^y%KݻB4!fxK/P3j~)T aHU֎EJ]䍩뾩ri±;~آg0;OZӫhRǩs1JsW>W^U Xë]ݫfMK$GK 5?TCf`zhy򀃱[(U4"_DnKjM9a̴?T\5񆯧?N=j왦`n t㻎a >i&摅'ϐ,`yWK2%wߡ{;3|w6QWA r ڠfY89-*_O#M|?G`rЕ7yǀ̓[MW;2de-")u0Ʃ Ξ{O!%(s:áh08>1mozZfnM`OԦ x!J %@.OgayoQo.:ۊ Ʌ. jf]5|+dwƚbwkdbT&B/)+灌[bLuz}]@ dFq NC:y#nQs<Г{LP4 I]41>S@)}9KLȃ"*37^||c==?}A<6 ԂWՎ@Q$iϤԶr3pP08GҤ-\ IeNRj}Xn$b#0[) Oy,4I ÞlaT!z64V[(GdwyxvLlgOg))ݑvȏv/)>Fhc}&Cv壗"#"b!.B֬nyZ~o;Pf9_ 6f(#8/+7v t:,#gGbyTѴv{!~/wN` 1K( 'a+uƹ!fR30P璪N=bN#q*]Ng/ͤ(Rm8z%ڕ!=k2{)XLr+;-mKZʊ&% ~5 Aİ ^%=B"9I! ^PgWߵUcoos͌=twc0O`s KӘ)E}h ohm5ōFM]X{[ͨ|X=+HXM2wEYM'됐o+ّ`D)a%V ep=cLmlvݒQKaޜeRX6gyr؃쫇oQ݈Q#j&e=F)D T/D=1aѵcCMjs$?T4`PA岰<)*z|lQ@@0&fJ(Ъ/#͛XsJw9GN-b =dkXn!@^yWcE`szO{x1;*Ԥeaď@؁{. D;*/%hw6is%Y.ر qB?)C]N[ˣ(Fη/Wg 1l6fn;CV3CPZO1(K hBXm+&|hGϡDrhWJe/%\m=ep\/E^m.S&GW爬?5ܧħd B@bEel% ӥ>^HZ@ 5`,/i~#XG2 #%2r`w]o`s=ɰ49a,91!Wl'7*aRn!kD$o=mj"q~&9\=&kb,;{ JoT)AoO(Y$^5Gp椿EIK67=o]="Sץ[b28ߴW~E*E"5 Mi  X+8^x1>i "Q!S.3TjXicSd^GM\{/{5q,gLN_vUsA q"J5Do4@641ipq-.`FΖ$B*^@*7_-W\!#8`_j4Ei 1ظ ^EiQl^ W:h7E;$tUhCn?:)O@XBTqfSmu!q)S̟ l0t}ؙB\_zݪRKE0BD O:Ja%M\{%lj=;rmgTGNcp"Onѽǹ9E;zgsH F(1>Q{$5f4QּmSC)= `}4m}Jf}QP*({)QH p TG+gh9?JP)1 fJr2پy&ޱdoΒ8n =ymcq翴b#N? +Aey΍pH?M,uY (ԹRE]f]]"pK4)^kmయz&64l*5!ɳV< KhP>tc#O!#&!I܇vY]18mF<+hf́n?N0Sh{yE@r. x4D r}~_|4i JeًV-_֭xVP.yR`eWuNC(B'Hٰ(qO'')F QUV9 Qu"~5o'S-+e?Ϯwm|GPMeχ~寔Z`o)Cn:9*vI>7C92kZ":gȁl'A/nAOߤ[NA^:~^,Gf E2$_9ImtVvJ[h|[կD;.}})M z!2 PIOtRfc>EJc"ޑ&?bhoLYdAQKq~NFd%Ԗ P-WȞ}sL\㳞(iLumǒL b*DNEG>ŕWl|ui"Fv+g\'VSo ѝ,Hi,DWn_bI-{gA|R*BIuϰ#卲S쁔~jDf<!0b^`tpd0|,7LMUϾ\nc^RrF:._QmSpMzЛN܊2"±5R}p7^K|g>,噿&L;@Mg8uˢ{qu`u+y K7bTGapՎ2S7"N"rPvE&#Pg- :s6&3s<j:ĕBwE)a;'$C^0s\sD(,8 ejuJM<[K۶jK{oheZ Y }^692긊yVW>҄u%)+v:V@si C")hQ)Ѩ`NM*P`x ur-;~!ʭVʓp1Vj4' ~vHa`=f+2z܆]9YI ux>lq9dKgXl1[Vz91[Y؄bHݤqyX[f7r}h,vcd[g`&kq=!ޘ=4cVkƲ>-Ή9 w*;2B!/-S1Eh֭ 7FY}+ߡK~Z@R'ZAs;g7 ܃‘$n@Lùl;f|z2 ?xPfwvb*'h~/RMq)|:M0352rV04!\Fs[2i\ :"hǎ"r>vb'_{'6"_F6hr68_#VghH~ǙѬޣfYD[vQa9a~Ѝ9 Ob◧MKiquXeoWꇐsýݔof.LC7XEQ=pW^qܚgZ#{`cg؆ʭi/HnoPBkN~Ip𑛴06O~,$tU"ǒjgYgȎ|4wuD9N7Gi=tsR-a&d%%kuԥro_٦c%8C'/6 >>2ʣls$a w a0?67Q0.`+遊nZڗr` T܈Hh'Oa'o~#fxz]iP $^LЪa7qُ xI/d3'q-ፔf5q7|j+&A =ϥ-D襫zOҪnnRȽf0m?e@l:AVO܍(i[Jg c5 (јmF_)U#Q_#ô_qovZnT;d^bq,/~a#njh7btbGdf &uc&o O*} ȵnCX99{@8o 'Hݩ\`M4V|bπ#L:a-]=Ls1LQY9l/W=^po[tBB8y\ӑ1H<6\Nd͡ADy*Ƕ D#זT$O.w\Þb. KҼ 9z9p)9C0=Qd "dMj%C-L}}vr5/ɽ1 *d/?8J@Sǀ 6W;W*.L su. #٢낌[m(2:7f;dI&w%zM̄Kӣb `_%d>]}R9l7*:.~6\9'w}$558J(%gT<ڜ6t˷hեd9wE-zwyP$az IPv|rC3OUJ ar!t} u|DHƧ{I/yrXY0|Eкf`njK-{9› |Q; [Xx{~?ZT;c=cojD ZuSC`+ՠ`5~M۹t,]Cg"Q[Qsc_l(/Vd3 6AP 9Z/ҁ$PQuDZZ"ڍ2]spem`c !AmHGK:ыR(< $ǝM /l7U$k fh 4אH1|? L٣ (c|KS}XZLj Gb-M*ф 0Ƣ>BۭK6tc6R2N8,1E}9 (]I$YڊNwR S/ۅm@6k4z$'5s<ܿ96_m0ot>cס&˖#;1U&FO88~Q;LT: lozz=PE㡻|9 LXxZqW20/P%ft*kn$t!ZR#ʎID{D[πqrVmΩU|ҌjX?g]W4w{0;ZaW?D"l,..;@g gW_V.Ѩ7ٮ-sc9@ino7fSc‹NzVզd"/p_k? OUhmGĽȽ;z$pW(&X`]vWW'Nx>V'a[[,SSgyi5MۚJ\aG [NٳeNȼHհOq-, N+<3;O'U.\?1p+e?:a?W.ˠ' εE8D:q *B߿ J< Rh7da8uH>Әw %CbDA72ROFZ8}G }AV@5zš-65Y\t7%=MC'JȽt8wlg0қTL(^NkĎ|i>*Q>[>> dgVZ//]u;>#?1\/I`|?,Sud̸:fWBݛ<{?2g@h u{{>k`\s@9\G'g盬xX](Zyo:Hƚs}N&O֘ gZ8wAϷg#V sb¹tSC.UFSQV8%?(tN hS} :L=mʝld/)ZAa*?)ť lB45i˧ޡ$/ $kc]+UCX?r|Vẅ́hW3w9Q6{96N+IbM{X-piJpEHfxj[Låg o48JC8h;>XΤ1*7h6$~i Vް̓jqEr'GEKRԍMIS<r)@3/DX% 8_h~W l rG\/iJPq[:MZt.mj=dQznj.@j Nvcq( -f>b^#*=y~[8w:!ߧ nJ9JKèL2`O|# gmMHuJx<G%-y'r:aj-),TkA_K:6UgRy0!γjydSڿDS(/ȶ4ڂxΉĞ7gѰkVx%/96tlZrp0V\ T!Iruyy:m3axPw{1d{֮VC߄OsH")LsHdrLSI\BRzL ~`S10i-$|vHdZ_ѐCo]_]4 _Mְ&W 0"o)oyq] Χ$Hŗmul=1*%KE 6%ZsXysca:DkO6F lXT 7&5m먀Hx v~DW$AaIpO[Q%E\ū,tu T3+*:d?x(ةob#fjxJM.ORvMEZTK<"uY* rVbn*z  70WN] AaCqؘY~?uHr4Od}(yM+Z^ + -W.f&lgM"? i<`s2M pi9={;>6_zd 4ϕ_e \.8̈́XBP>fnR bj'L3,: -gHR{Aχv RlFAl{!,ĦvU71՘1Xr>ʊzZ~ o?P7\uJ4(bpXyIǚLCy^VX~Ӿꣻ~'j9g&6[KؗGҽ9>rԷPoЌ@Mݏ5?=׵7aܖG3EՖ\us;O`HK,l)~P>pԉeJ~AWn^V; C˓E=N*Oп5l?VI^uL^=1%!/;ͯ@=X+7qvX+v'з;i& ~K7>ø#Lwdlȕ﷖r%D=㇞ݦxrxej큲'*ٝ`?#tꨤ-' so.Ј]n>S A?7s9S`X T@A'&,.#/[,O|!fK꧳kVU!>ӶXQԯ_R5>g; Gᷨms$({Pom.XiھZEkѓFz`B\36Epzi WBUY$j >wm=MˤCRhȆ<|ky-{$j -h(gTϸ;* #Бeo^Ds7 & ^E|oY^#nb#=gƭoM$4[y3|B04_ ›$4F Ya5r͂KV=_61FNėX+Dsvb[;ߣʖᏏ. @L,V8e=~2S d";u͵z\V :R wg5[`xBM ]E⹹kOћX0wQ{h3LD,*~)YU]Mc֫,e\68W~LFɒpFٍNOYbzўV q蹯5Zv+f HٗaPKA_3Eك.TsW(Wl,.I1T(ήeCPۏ.D49˥J{0QSpPo0}!@&O:~2[T'd DgT>$+W8 e7̣֬.ȱsӱqN0a$ԁQQ%6']γ1a.w;C"EUr"5?(gv$4jP{C=n\zMF ;\piDy<=OIfn s T%*u_I ݲ<7]&D}?杛!}6.B{\UH$j͆.Y2po9xg4EQ4sJ0P2:jZXy?R;“(1 ɻ3YX‹_]<~XQ z݊Zmӎ*,MؾD0?3NХS2g(H tQoePp忞}EOw}#{B/l9,|6> F|| L;(b/8`\3! !ƕM"$C 4Ae9KP*qn%XK 1C?dPH 3 ?r:A'8ùd`Yc4-N_-=AX;pv+=yD#HݰzxqTV7謜(8CmڎUX۽v xݗ] TMc54D2mL(QZx;502Dl5,TUZM V"`qm03H7ddB%<sIULQ CL/_ Gp<°՚0-o-^)~_7md !*Ur % b[XX|f6BAgj}\3^=~&uo/Db//ثάHN9Ԝe3fIsr}`8+Qd )EhDv߬,dk^?Jl#HSN5߭j_S#u{u"ݥT5A (W*Э/yO9h8|]0 hL2'պSdXEh|yd]mfږZYKΗ!:Xik/5aG1Z]/7>_J)􃇀5bdUBN;05 hCs5#b.UH#/մ/ C)ϓw i_go!܋f{n tw#[Kn+w6uZʬC&s}:&OR, !i#.{&`{!^7fB^:Z+,[.?rtQV4&0Ф\lͩQv'ή̷FQ 9*{Ɯ>5Hw,EZKވ+@ HO֓e/͊GDFFg&/mqlhO@7fڱ, ,W1S:o:'56EMc+1Z[7~Z*G':eVщUIB~r02Cg` ڭ:򧉰FAP&tq[ߪYEئaG_ $fkwJ`${,_o~AgWfiVkmt,JIIi6OPA&MBR! @4Z$izas9+w4߭))lOGj]Y?C^`As?16sBmTF $KD H PuU)$0ҏN:/бt[(18 Qv1111 3 ;OvөJ]_i4msh&#oeyFVT?JǝvڴX \ʙăOceypVVdoW!R\+o5;N]i ;4[ZY/Z>^ynHYk+ }4.@ڈ֟ՒA*'%WwfM>2|ALKTeq8P#joQǠ6)n{ܗ7ٺ|N&Li#,/G5"A!mIa#VDE:-YC[) ٓtռ6UT_RToMb:xPR~̳; &+RtHw V;;j$n_l  ЮG+Ce{:/GIv"_}(Z!~[>9_ u*<ȋT5uwFw4RΚ`*E 0p[.г5ѦkT'kb/k?x ,iD@Z7{!mLlw:w3r;K>=+c ]Y+:[@ Ush^0+ Y}UϺ&BsLG;~oC ?fFPDmݞv]f] ruػJ'>}5ΓXk˯pshpkwvR wuF%O 1#_Ͻ  r )ӑgZ*@ FWso L-DJ*whYn\^ uj >uU4jHA{qH~K|'laĝ2εIh 60;7k-~EwV*kg^K g8I*3Iq͐Ә ĨDpIjj9G)rcNWMUf d9~guTF|fگC|Yot@s#d<0(jV|>B4x?0Ij߼~71i2Ȋaco|{sYݒ`TTeo+{0z]m\<Q-UBgS]A4Tf ߉[rj~q3r/n(ZL^s H8 OD~)O)p[^vRMIt[h]B]d-̐^eZTw)xx/z/dOn- ?&~1a}%V&nK&2 O3mq9= N\t,%C'yi# $vI=H@EuB*ed"uX%=Q(}NVݓɢ cƾdJt+BvAz饸ѿ$t 큇tb|6Yk$%ߞk"DHcsJ4\.?'h/~D-Tr2F3,~S\?H蝭HVdAf~Zo[ DR0ؼL_ߌk#&럄ů Z!e ZFsxqz ]9 3!v30?^NV7pLsցGy*lOPSeRFca}2; ;M}")Ir/?7^d+=-^'My8]-RAE0K R-e ` Yt~ͽa/ P>iT4uBͬh4x/"  xW)w撘"P ϲGn^} c8UϢyMBvt4c…i} LATޣŵ{-:#eCK7nFҚԏҦDcHYxK#Ěؕ[" =_\(q` EdVņ5aNc mݣBz~V°vR(`!o@Ɖ95Ё"ʚ-9Fl,Y f1Q}5䞨H nH2 B1lBZ=-9D` \Z|b٢b.GJ⽒,IP+qr<- 2 )n]{peH Fh<-*a @.X _oY08,S_cuU7ȤhBaW+@w%t9/Q@ k( uoӈi1ze 1WpHzS:~eG?g[#ZUDw/A[Bu}2]ы(,[Zk擩JdykVABX7?8Y$= c$'IUt2 lu*\?jRalJ` nJPhj!qsxw˔VLL^ qleyр(>+=oJ!O?*jX"HA?"R5t,#ũ @τ;yYCMj| #[n?# FPSx%\{/d4IR޼[T\2gt`8f/)e1 C-) YRmYpR7dЍĐ7vi{)qqѕ@ے`(P~΍Fl&\E‘v&^Аe_@t|4/2P-o)Ans{.XD#s!ˆQ%^V`X f哤TNʷQb2A㵹Z3r+ Y<hU&#Jk4N B5^=Px^>K ;;2 e,F5 sZt)G,QeM摇.CmrݦNT\~BX$_f5 g-!9=Pd>Ek=@D0?ۃ@_JNF pMɧIӉbO7sUn}cԔL.MC K[>BR=̣W:Mݤºx6+[?ia*|h6 "aS"BQ44eOcLckE@Y0 bZw2}eE&qЋt?T}e hvx'40įfqkJQDjfT(Sh\ h>3,v%@سP=Ooع@6m5Ov-ANHcG?җZIq}7l(.MID 1(5c]z'hgK`ep P-]XD4gq1֜d(@۫G##$I@Dƈn5Z'CndvB ( 048u`{5TѩbѬG Ś?*>ItQlO?qŕ5gk/|8,B8!7R[@ ?Ӧ=6L{= NW{ߺSzP_ǒy|Wge`ʾѼnϳRdӝ-aY mlk"e Hg-QՑ1;@N|*, @P%#b0,#{'pAs8^v"w G1^,j]đQ?],&v6$Fr$9}nJ:7~2+37KFJȫ'O?Y #%6`hLV|7%`6ow$Uֶƿ&3Ǎ]eHAbK)Ucrѵ[ex3^ X̀|@tC+[$ OW%N\53fVf`j~H-X%Kg5K 뢻7:V+iuO9' VBEco+O,(ԠL ]!_F8<. !hKv=;dm~,NnO~/qhٟ3/ DDaToHe"iX?ڢ9x^|7cy|6gPطOmvp*g ŖnNJDաxeO!*j U6W 8! f 7yY2]} Х-ۍ@F,ARwx^XV5HhN ˍ0o2bU1uipӮ"=%lV6}Ľ.q/;HoS׾ "*d҈s͖Ze0_-C%=zi6.x*fe5oi;hծm.C^h1Ύ_(ᰴi`':cYEfBn܆i3?JZLl:✋ q1t7=%m1LZ* ZfꆥqfƴpM}VK D%%Pe흰E,Ny3hG|y9lf,r!jqL^s.-|G(*&<>!L!6'i0o ~G@qgX9:BxMhl;M8?qlPxH+m~ei*Evx~ዯ'7\[ľy/,nXdZ[2/Z~s?HB ڗܓ@š'tߎ/5&NaAK9&% X;TAxh_M "~Zg֪KVHҿkRY7:rw;GٌdAT:7`c1gK< DmqZt"MC"< b}?T (4O)CdvN}'@(|aEtm[& Uq([jUU&}&nM9"FBxc'!0y^:斂)qgfP} kVr4)ݞ ^?];X Mt! O Um(5KkJg)s'\2l_Wŵ !̒U*ȵ d'ѝړ׀>FocP~s220΅ђZFD/ ` 1 q1tۓ6= ۪ P[-vؼ!}T>fTSci@5-./,h.Pij]□FD&'0ҥ|1N^+Nb)?Х֝p!;s3Ł1#G$) \QtTMWT_,Ǣ4̞9wBvNsx['9pǏ9}sRBX-^.‚$yUV~1$q4ǟD &2 :%n@ a.k, /[#V-ty!kj 8З߮tJ".?Nl'fCFkɉI(?2+UŮi񵖖HFEZXN7&ACN1Mlo,ߎr+O?v9*i*1AØ^E*'VDIE!0 Ȥ׺Tޕ얓mBg1ըmJ],O IRl/w|Tu\=HZ"/HTF)`-oX]o~NlJƜ ꡭp" tOd {CyG֋$qUuÐ=OkTӿZ[֒ari@f] 'fWjW3ֽf/a:[W[xq?(J:O0 *X~r/38fVd+oi  Z6P/b1aU0wHmQݮZ'm~dVRG:fS!`G~`@$X@_w~}G):ӯ-q` *P\h6::ձgB3twCu0^x4"5< &;4 +np S,I+ 1Vdw휊j+&%gJu  sK@4?Tp\T9CdVF@[8zLre7Ģ qkQQdPycHj9qqi5H_G˥I3,57DlhҪ:P4~_c鏻oLKvoM,2ֻDq~ol.AY\6pfL暾 bzx 9u֬#5wrqwȼrB]WBR]Tlo6H\MIdt 4!(-ѱC%'r W;f78=Tg+c'zAzPsyp åi4FNG ~'@ʹ;a߽rSh dJ3H>4yC inQg(L߄tCLD!7cGL3zI5D3q$Gg]Q"te~qR(f"[T`Ytq:NTCLr mki4SDe %Ɓs 4KSy̛THhˌ+Wh17k2~&ѣHqs*J Z^~^g)"9 "QV.qȄar.S"r_2F/ ` 6^F -+$NÀʅrXh/Ʌ\0Pz$SkM>.x`.umyJ }5[ׄ{ooRRʡy)=Zf"9IH#V:utf0>4ri  fVgET Q{}U?a93( j)2wyx7^%v1-sqVLj{;oh[|~p9b8HΓY 3l \y5gda]warY+64=7f?}wn3'lQ`bZ,6t^ 5NTAc%r >9!c肸/y֯B e-!í]蓑?PHR_d@WE d*ZiaO#IYzprǤPH[8fٲ2? g5~SSAI5EcXeQ)^_ ZL r'bUU0 XaYz3ͩCAG_ K7 _nIQq}U^׬_X XmR$<nj5O.SJGTTG@PLpÞff/۞z1sl"Gcx'u݉Bؼ8;{cRosMknuVz2gs5~skVSOKn55F&\:5JC?BivV [J ko(kۭSǬx,(с2*")D̑B;j)-93ǀ0t0 UH i!?`*^ -4ޱ&)>ڑ7@5o ɬPjfzF`U8AFXR 4$A$-UW&*.*iBza>+lyʃsFQJZ9wzmey絴rP#K֒~ i2bHЭePCjIp@X?ߑ UD':L,{xV[ɰnu;TYɜyafƚ¨wP%o21Z}rGC?lrrH#-yW ņ\mT?Ṭ d)8. kP`'52Cē 9z_I6Ӏ@\%,X@]?t*x! A nPM6\;(}a"C`_4sJ΁IΉ@x2S4g+~B}<40ꉥXnb2HCqMsY.`%#rile. '%2bunН© ȗiRCa}mKP4 ~Aå3dGDn0 ?bBg0Hyx3mGX;m|?Hkp}P@rp1LYTֈ P (9CAr&7XWq΄{jӜXt7"Q/F^@ܮ2'4K,jVAR|^7)1ԊNQIuML}1Ep3eU;hi ~CovMq!(5vz mkpG։L L_ M<=(SnGr"ح-2rlwq i>/djAdolmaͅ"莺<ԃ˿*s œM,L#kt2+մ2u:ʧ 24Ofw{5j̱W?jrF.m2tn/c^4oYw׻]`ě{9+Z%Y78?bf!^.4WJ4 k "&0b4{,~"X8LB)77` >;19:\w2c_ul ɻ; II|C#m3x@5`Q̮9<1i6K.ΏO,. 4 `RrJ'.î)t׃y L ~'m]:5%`qU"Mo5N:;dhK#qF0LP`٭"+tGԻV6cNT|vlrL~?1tх0(ٮfB2Nuw4Ե")G~!lBOi'~;53?)@Tt! j'!}~:@1j u)c2d(u-!į ,3B e {H4?)3"gk:ig;d۰x,-L:f>89g1MR@(mc8EeK(31hf.ӣɏQ 9F~'|#s^)v9 "^;{2"9Β"swLX&ӐLh4=֯!L=I5)ɼ@:i{PF`3tݡcB)Vb|?,`VHj]{~(ow]́8 ^(5;8%-ijި`!).؋]Gi[M^^^-ǥvIwynh7tC|HU+d%{' ELaD:>8{6O uIADW,celQŵpAbw}1D l#9H"ݫ5:3>>s|B<9 NZ"۪kmG e*LGieL2?@mς+O]6V֦!_b.~?G*LČD~~YF\n^nάSV%t{ h{N)׌8(%e;.EPHc'Uj vu!f8e}#oT9@ZYyJ}4=2) 8DEI,Jh-h;dbx:fA^Ewp(F AE^Be[ 8܊1OWƺczמkރi+d Z tU*2G]\ߓ5lBˆ',REߌs"I"Y]6A/'Ib=DN-[zɂJQ9 $* /:X^~K~X49g\S*ֻ.1Uމ^Sx]C  =LE`=G|u,I& NyvJ2XR]NO^GҚPOdb=\pnuBYPL2u4w(ɢPt^QhP~vG\&kӫx ėulCPE &#m+'},nZ'MyO'\!1#[p]XEL>!a&O^AeEO/~D㑔za&fMB-rDZ խhf~ᛖo Bd#[~ -!xޮM ]P'0osAd#'bqb"T 7( k,B& 罌H!ƕ፪2쯭NV9SYSzo&K`zqOocO'5áS!k" imM<ݥvf%-`7gq-SG*˪,voWW_qkE VbPJ7 BWgaXi GNA \h-\NzТsLW}T YNaY65^"el) wj :_ /s,C9byFbyBGn_ZCw4[1_g4hȡYXtńB'ݖ[B\FEj]+J$)(_ݐkCh^25/A*Njυ7?@G$?v 3NGcJ!Y5dT:>%R7qQz6n/\ya؀IFbG@ut!4Q3T9]KܐT!Wd3 prOɭxfj>#d쏿ǕBpNxɛNYMP N#h'(,mK%ܨsKؒ7huo +FI#<,SʐWlcdmCe(]Oiİ,t)ImPeHk0b[&{d%#PzH/Ev/%+,HQvF)B ri6bN*_=ٽf%àla:Ygm,t|jf2u["=G7^ݭ .,=@leqYh 5X b`]tzP q4yj>@WkLfmk~o%ZDbmpg˦ FfO LmT/o"9%hv49>~rzps;O0j2xܲ. D珓(htY/׷V= dgysy_WDn.dLzD/[ <:;TJ6}Djc8:a{ ұG s#Ĝɘ8B x8okEFS2D*$}nP}@x"7cS eTr\A/ lk3Ir9 wU~1fʫj @%BUg_ߡSCOǷ&8F#d)t}79,Ccf6bM>FDg//*P"癖/9+T Ñ 2%i/qbYKJN{-+zoGs{"# .=J[|A4>ϞYTC@/c*H 霬C;3yץ[Z0=\r7\12uMƁ@#ٸl9>f_jwh r ޣ~]t8' &֡ۦؓ?[mQps=\Ӗҩz[Kz]v:p.|)pqWR1/RpN ץ4*ks _o)֟r^kXcgyFms])_ 2?rFH΃Fby LLJJEiɭW_%eH-4^Tl56jp ΰ#g[,;l ao ?a\RZΫ /EР=U/;)beY| 6u4H( M#e" 4K#'@Vgݛo@"fV<$=*6@C!'*)qbWn]2PHKK+brk6gp2$Q)`;}_AdCqP_S ~մv=>3 96zj}gi*ɚ* I!^??# @纅yh9p;5LPXaSI1`;ڿbAquZn!|`{__:hUPk.+Uy!/ULJ4 Z%)n5MN ]QLL.7iA;|g}q3yA߃顤K͎E*gYUqJ >{p`4Tb oQ0"q]nh31ؕ #UoAK6nN֭7^s(2ɤ aJ55GHQ ^>#$,, P6 Ӗp @mF_aKL(OCGvaDX|DJ읺xHDp{0ж0@S6 r~J.msq%lm %z۵[#@^k:39-r[q~3_@C~,?\ 1K/w۲Aq ?t;::a=U0U4pr;q`$<>#B4/wF3i.X_#+`&[TS8$nYW nLt_,I$@OκîsP:GuwlP_O$=Y7f/ U7fmyp7coxنճ/hr1tFNXGw=ib9b֙ Hކ1N(7բ}- Al%Tc<2UGo荲T! @*>O$EYz>#WuEBb6(ȹt)@IG5)n, _σ%evf1lw)jQ_ vA8W9LoA][2{aʍ),Lj}e0H}o!G)&3ᨫtI3;? UFlHː` 18 C4)%*IF5 I+yeHη;+-^jw<E_"'~ u ȸv[_܂ % Vs[mBi%F@ {gL' >mP,Gȫ# įDaWyW oe WOL-)h}EE|ʠvSHkzikl{.tjkslM+!7 3SyEݿpNz>n\~0wT;]ۇ/w*(ĝ֘q@ >óKC4&zŻN; ״z~`/4 54l^9xAJ8 VHX~wpIZ `tIW(׫pt܉bvD:߱~n4X v ^р |_е]7a?8 Z۱.;N`c0|+B* +gY\ fDxL&+.23+t^|S 1ȑ;SIRzvYH2gl3N"ƅ/5R'–7BOc?~`S[8w2(YWm>[Mm CwR{qA0j܋I:珖^+^`ucj$ކCVVCX"]wx)93L XcŌmmb &s7`Q{nhNLIr~: ڤmD)o+lT(M~ jkOr9'dh#Em헍j}PhO}y_irg)I`sC8iOLü|E#B {+@ih)7߼-xU@=]3s帵;@fFdX 5ޭ!&*Wd,/G{"i'*3`b4mk/#f41u{thzy:uB謫ޙ`T1\:"~HSԯj<Ԗ:q Ir}trBý <#H+[$]9Yfgꜞ@>6 Y b h?S]7+D8z}VERw *lj_B:y)P5~^3q=Y06It4)O@w;S\Ae,=fTTHdrF*(sR1z+!/"Dn `+rgI 7^hCÔ yRYc(ΆI.F;y7>; tSy:vV=Ie.ahs& pp%Zn j5Zp)&ܔЭnB'> >*-rEq I\@Ų< xLrazyr\)]Xؖ Wh0at|!4-d!Kt+SJ锗 ;`Ke.srd#u~VE|X#ҿt7lJ$ 9Yp^]D#iu!MA2{%֗e2IyaDlaUYmSn!QpWdO==\j[jRA}߆ ;>79 SC..Ry4jR)F}% d@&r0*}$r4_SP H!F5H䬎F^xTEϠuoK}k"/  B>4 Z(*o4ujI1̌^<,#<$dݲé;B;re4.a듟ƋO$nT-Wm]+xv>ן3Kو.}۫^K8%]~`kMuHbEWo=3uDA>}['VեXD^<͊^2&ohֆl}1bx>pTPή\+Qc>+#sLsNU &1ȉ(ƑP6-]I)Ghb U)ZhU(d񱂄*=G+?L"r5DxN]Hu --=IֻE@"?+WIo>Nֿj4rY&;Ь:f:a3%`s.bý7Ws4a~=*>kin460oE[j;T#3j_F)Tu1'х5^C9V-Sqsc=ĎJϜAah]q״x{[npOAJa^փN'ԋ($$R,Q#f(0BT)G*7/iM7CbPM_J3;kun9%FQ^p(Rd<~5:?8rp0~ Os3A@YH'gW358}1ΊrhL,t7xA{`Vd1qpH_wꏝx3PPc0C5W澎>s,Wp @Yss; [[" ĖT ZF,`gr#~gD:(aO )9Ϙ'IJ;7Awp' E+NvGCn|BшW@4tWf> DlɁy&JlU~`{CQ_V7 XfdX{%V&if{Do_8j Te*_$ *wڵ(M$Gr4$AEྸChR 4MZlhL?ԟ|DIr#^@] aR,U~'|?Hak>:5Iâ80UoX<[*H^=\KoX <8)S3Ώ6, ~.h-uWg4}+ɝM.>Dl9()2ؗ'jz4`m{z@5%LlJ[Mvh@b7.@bgvg`PЬr*%s A D$h6XكnoyzC]7Bk '*]ٱߔ{:VLeNCYwiXtcgLyAnV,H )cȽ[ R ڬ- J `E2GR mc`^O5m9#lD;g&G(OWg.:PUӱ~Q8̯!SwE{&(|scG#|d]xS6vgO` E`M]l;yŦ: і5[` _j`ؙb&]qd iW$n૴|C:cfLM-ԁ?FP ߆k@p"4ڟ'=>՟a|(.s@J% t4v5w]7 ,mOiwsDqFjf L21$ Ua,oMkMa0Xѻ֧2dpߴ~dWUoIWS'2Y+oR‹A/ݮNo#leNů}2q(y-ܝ5: [ز  ϧ=~8(]Libk@آNLFV'FaJ'g'32{HiB4B@H>Z]zb;&xW,ۓ-tHe(QWYl5jTMbMU%t o8n0B`ucc HCޝqrXE+Z;&J)û`BL]G!ctojo""lFl,?4ſg&JDHڙnIxԡo*gb2PXfYi#b,r-BN~`ᇟlrkJCMԧ@?W%~[e0cw ^I}-0Dd&U`j>F \.g3ɎA\@%:I͛< γ /onçۉh'|pbT!n!$ˡj?Ce&.>k2}0N#is1=z]6А{EͲt #³)?{ig.'򾉦1M~9uO u%.gK@"7F`: f[0/q8s +370H6C6?S_^Pԯy*E ~rCARlyĩ-zO ` 9e`rH;-h>v,}:mTc~b\'tb.0I̩80fm nZlv"\ʽ] _H/W]}3~s=}&>+vEzCK[N;:uVKRG`ć&*Å"%=Ý5=h 0ۡt}W &<Ux r͡=1Dw~b~4޶[er{jY:mT3r=|d1!Ʈ(@MWvdEhp5r%7UhEx{h_)Ils:M߯]kfWUS.U&V-؂[~_!uX6_A%^ǒJ(-ހ6M-b/te͐_ȓOZIt !'zcBr$l9q֔f nw'C ;ƣB pM,gbJ7STvxu+$|a{(YWZ0MҘ70'/41EpR#=<%Ku1Rdk^,OO4ɤw#&X}ZI0csł犇s]VLvstUR~21PCҠÛ9Sn&}){wI.eβjDkk'5wc;S*O%l\gk;* ԹHG6 pi@Log NkҸWSzkA4 OC;P}.ixcBcnb2C~~jVD껚eD9( *XGQ6-t:vv JX?9KC-,GDYWMN[SS¸}VQ'4"e#Bt7y5{R%UP,͗auӏ ีt6+y5Ϩ@LuVbr"Z&xXyփ/$QT//IQ ޾LzY7b@1`Sɀ݃N6;5e_&gpސj/b']Rѽ*wcJs@ |46?BAM>l? VzP(Ke9n8M}hLAxbƞمG!gwa %W NRg73C:'%] Z$VWѹejvz&&%A$cn-C3Ze>㕘;L1(jz<(ͥ ԬO?>ũݨs<;.&CNSS(F*npk[S،DrXxp&9#\ 8?Մa("?HSuy]$㥋^Sc2Wq6i_ӢZ8r'{ƍ Q=no?Y>2d*L~v7 sPa~"qn~!^R?Ds\5b{D]ka5N>9<Ș"77 ܒPo[4\|שyQJ]XL=R~H&gC0`忲wH[4ҜdQ>I}#Pz;Mf=ԯj#L@~]tU= |J?Ys@GPbJ߂g3N֏(\Cmc`!h$mfpţq1gv#S%uENaCq;_$5݃VQ[jMK^e o:6ڗXCۘ-y_MկaT!} ^$yq0&T7`chE-P;J8< >= K|8sӅˠ77b7(_,}5UN? !fd RK ifWxE}W ae2 ,˳ک }Cn5H B_-?6Ty':i|'i Է5{ozꤜG"  H3`08?HtCyOK%l$/ gҪ0nʩʼn}N#(er|HbI<Q<{ OZ?7p` f}#>`IckIRʥ&}:bUqaۺ b)΍2$J$\E9C.oCUpN 2v%-H$ l yO Jk ޓ0m6CtFcm\dhm#;E Z7(^|X[+n 9Z) T-T޸^N8*6A]$Ы~WZoss;W P T&h 5}I"xHvCjG/~(7h%fKкE3,J.|aWGY g{f*g`i(]F^6ß(/u2zy3]/bZ0V(2m{f0io6<;0mG.r`ԘZ1<,f?}Rw%*"`9ibyo']:KY Hv?IdBVYAۀ5Ge'ef :3g.pZMFq]V^u;2L#Ji7x֤QԆnGW: .,:@G7y|KӤxP`d :9e2n  TC4/vQsȞ0C :t&RcP@lfʕ|M^Q\43ㄦS}T,(fa͛5ZXi=5rPI(HJ@y~Zݠs ^Df|kŤ NZC %,)s U`4yx [8j7d*x.B>BJwqQ}|*$ F`ӞjhԠǦr[VZ sJJD +*?R1Y8^⧆P֡`~ @4$kr (uY׬x”,$~X( /K6WY`i#wv ?c,R'i~<:y]-5n>?s]̵ `q18w7UYR蚪|!yc -* 6l] ˱WoN`"y`^M)Kj?4<)T>~p2/CuSg;k?UHT{Y&Fv"Jn0 bȋ ^`%M߮c,&R_IzjUw 4J!FDȸL SN\:E5//߲ T} =N@ʑUc29u(`9NTUmviz eGvM7^*wj$"DSٜAQ54^6_or}0G?`E@1]ջ jtU{7i$@XyzT>@` LY𭩋Zzϙ"/QHD>P4Xۺά|K\ڞ% 5ۏXp҉HC1$U7JL]At#Qo_ۄ'"^:NSr|]0qRޟCA5hAYE~؊ۑmi]hbF2s9qyV[s`u{ZxKͰ2P=ERŸRDC ONGRq+WuCII'FuH{)!<;e5chbvVbį**́ .V`m-hxv,lI8|͍ڙI0Azmh8#cR^Hm ƊFm?Ƀ'LhbT?nڰeZO?kmrU2p_D<:c0YPCvQ~rЪXHdw2F\cgxm` ?ٚ5>ahj Ζa-" ܼ?O z|$vv>)Ql<{\.Z̦nU N>noXߣ)& ͦڞ wƿ^*ċ~h% dqUWgv{4ވ/*3:Qs~H&>g\nQ:UcJWvf 9n/5^ʈ1f盨mم)rKٸ /ҍ39b@('1t%ЮqRcp.D7:Ċ_i i(g H k]$dիP `p^2O>s]&(JЫ\EGҖi%V9]UTO 5nX󠰂]R+PTU^*n.7@g^ꦜj999:(gNh:kvw'6k2]DL/4RVP4֜@UV;C,"y U[6zQSKg`aNvyoJnv>zHZDm:+w%@O܁;F|b,,[g/w;Y f"P8l%ٝ^(q 5AXt>uEp׷2&?H8vdέn1 ?>3v%^-قS( Ő)LJ`O-t̒{8z'u=V.w ,ي X3=b /lb46-5;ϜkZm?N18fpӑ0l(Mf%o\'K:ڏnn?cgq>jC`@ "x{.*xXF tCԆwcxA+a^ . ,/C,<9{]S5_{U# H.YqW>Qq'GaM0Qb[d$-eOʮVs'S[p9j+:P^ӄH@1II폜U Y-wpuBC6eD{ k ǎ?FjVZ}vh22 TQb]8èzI{#v`"~)) _Ejb\z3mir_oWN/Sˊzk:UN2MAĮb5E/H.e &?OP4ˁ;jm6A csi3N,4,q"N{w(UsfЗ4MߍYymjUg~{Yٺ?q1;G& c6]S";hYY4إjUԏ{'ekpU;wnK@hI B׍Čbz܉OB*YҖFH-G~sJE]EA70摢*gT97iz&I{暌dlša'jQ\|y9;R͟zpQ8vcV7..rrM&`9+pc5"K׹Rb|82ui>ݟb v0%IbmX?%jNrTxlcYEnv"GT&hVzew=)'}>4VtC+j)AKIJ̩UW4t6\\x nί.]N$^$|\6C@Bon7GѝsR5a+!QI7+̙aEC`M&@(1rg9u0L9Bl03j/UIR~X4e1_u%}۟ا轼hgۨjxF!4RͿ* l75_&:I8yZ+YBjteJz$bɧ5HU0m:tUpg-l551h]e7v4)WB\J5;:r/d&L:,/@IP,*@R^=| uG7 H[1F⎯sX B.:AYl϶%N5f햝ՕеG~}:Q Xtnww 奈ӘƮF.|X2UU 8>+0)o5 IIvueD@fG:`F^C:Y!"?5yуuef7C '62(pɴܴw1f0w \a *P@}PgX8rvT{K4t3MM&0߭`]hEL d0{yv'Ιi8FN;vE~˴FH)RN=k+VULМWpj> )վyv(Ţ *8k@#%ۥg" &a >t}⏧`Fߣ̴-1$]rdRE'";&e%fgHqs?(ˆ9ardQBFUeAޟɋxȌͯCg{pgG( *Ꜿ99tWy{kUb{$@WlrR_w24{ N0:}ZD9tn !|53S['3'=xKwCE/.cE8 t M|nDK!DUo{J'k-͏9GAChY1O/8(,TyVobI=% l4nLtm1ACdTxƆYm-Uֆz() [,HHS=Qc5A X|0/k8rm*;D d7)w[~C\$bL;m$6Zp [8Dĝ/щj(>i%^p75cr霤f0C\e%|i%?B28@%)2a`i#o;4\=AlL(gЭنfg$4nXI5 դ&3b@]_ "}ϕ$A\ M+@?쮿vWZ.,1aD&,:ǒk7KBVU|uZV5љ܂!- c ٞ1j:Nf@8\سsG_&t֚Ih?Q}X+y¨{/P Aj`(6 yQJ ըpQ:OgKceKw_t[/[9F?#gsb|Py Ӣqkґ / IOQƙ#A^ HűYXFɮ "R_H2d0G|+83ʜq/&etC`ނOM h!-:׀a犒_t-J&%m`n$h5(Ggt Ëދ79'l:Ogk.&rE? t29J_t'"ⵦAOp ZѸQu1 a :O 6Cq+gB @ffye8}S|E]i)Dʰs3߄>uW*r4("pU,#D.j=lvX6 kBtesr5 GCy8^  {S㔙k2vojQ,  Sؕ=KP^ucga;pN\o~OL)' ]bzlNDAV2$WySS dz=AlT}\ \B(uI`,lcc1 Dz, z5|OK_Ùx@0OM8Ȋ-Byt .}ewu҄֒뜂vd?vNLnV ɥz'RUdb\[Ю){ỬT~Îlꎔ/pܢv@ޣ;\Ŀhk 3y:S]Glh&;jtJ4+HEoFv>vP>CCΜz=Ԅ4.^kVjcE".ټmYPXwVM >`K/Vi)=c*@9 NF2\ق)u9jQNF PJŧ>v<ɔder-ch0DJo^k ~Ls]''Š[G^qiw:}NTE!gg p)mPKsb[6X d]"VM%C58H!+9K;"I*%ᆎ4B'vRZkz'~ø)P"jLRa݂#0~Rw<lcҵu)tZ?.n:Gp%I#rm$ps2uwa0,F$3Qs?wqu>hd'>Z|0:5}—9uKq NZGcg C5EIǷYe|ic^ZTd@ΩEvŀ8ª +EԿ|1Gy_)DtQcI/W R|{xexYsκ3QzsxY#{ )'!a00k ڕfOd"?>|^/K`+EQiO[[@Z{-b:e٘i鑭`*&7D,SG'vEz=A BзA""'@m.kzk&3$T{"gVUZEWZ7⇔ 9"I qCǼcL!f.́*<M[˖3rnkx}W 񗯛;*84㎯5쀸KB#vO M$}\!zR2ؓKwtŕr(D5uh!b;W0NChθf#ٔ,2)hʋ-)ӥnS-B'ߜo$/  $ڵ%LՁdz\ Ch JwᛠU 6pӗrqitdr]MP`;X>OE~_]@4.sck"c (臺 YhSkJ!V>6 *YY=o\# L{(eQV,)y@rV٠|s>O%AZ8."^bZ8r*DF06Q>CT\ew@ ?v2RN\.v4c#Uw5-0üwmu<@ANWj [: kt#b7iL_>kfݴaSZQ3#y44G@e*̘QpW'ǵIu@pE3{--c a\ S({ӌ^-z{a^=q'F| ټn+hr ?~HlYbaDh*<fс?`j)X_?Z%`+A|^켓)ϗH˶xZ9s2$״_L['nld!@'K)H117\cd=!%:dpQW K(\ |ԺG7IRCTkF7p lmS-K *pa 1D*d~@5ǁk"[y?N$$8 ˖J:1mN$F1v0(E'z~^PZBb2R6ugRJ;d% O2|ȍ8oU U|[TRPGΩ\q/$ys6bR\rMx*Y` S\٬r0^FPFe2`09u!dǥ%PT2Zggb`nSnLE< z ~-xZp!nPȵqE+"ԙ[K,^{ N\~[qY%JN#mɦN3p&T{OfjFP,E]d୬exJ9A0H5||zJtw FTcP7)m` #njEi]8>S~ӹ@ 4"ۅC(JjdYϿX=MuԻaqB)3:/Ux$vT\ 8){۳I8桗,_,n6Zi, qr>̡FP\fl,HpLKJȡ$oOYO 7,C9n mN^x  ̋Dן*,`r@$.)һ|RzPWM7g.A(;$|Ly/9Rd$F,_@O"gh%#X`G3_(g&CԘ2;S5&HVG zA\9\T˫~R<<Odڲ Zp14k4 p[J~[q@d򐕔]|1"$#1~(j=$:Xl$u aٟs`.]ԉO"(㔛1x8FW"?{*7òׄFeG9t!{^Js]hXt6mh^>2LvaS/NKCVgk=l>.qfb_*84jܲ3xNjN;r%nXv$#5ĠҎ ]K@]㨺俨|4 },_%޳q[9Rhu6T!VooC{nEƀwiVR:앓,R>d@ՓvQA}aqdd1aY|6nIC]L]>:l8hJB [pjb}CHW& UU[f:$<1]1@(F;3t&ߙ&F KBYqRւF^њ (`pl֍m⭷Y~[. |ƪxBB0kˁ1gK|~sibuN@ԉ."Gj,Ƴ5Roo]:: mdMA'7[iՊli~Qƣ|_yV R!lA$bHcJYǮ :bahIXxj| EF3{uq{hm;>/WMeΤ%Q4['.6~$rAj*| yu"hi4C~[ƳRfEd l:Z*R߿ZZʱFl՝f UP8,3T8b Е3Oe>)(rt[UJ}Нbq9Ӏn){z5XGB!}4 4NI) "\LjJ+ECR3sGƕIaj9j$DJH<4 +(3*$gJV? ~雛dʠcި :a'>vF9.ٜ9^ Յ|֒{p0G˼"-b+J=` &;"J]_k]9?o݋A٢n%_jgnю ьK0Qd 9fԥQBf˟w\BKg(fE=0}q)K -S( G Y;PRpe(W9~ ?CC?[.[>>/O%ok! _~(e,;}six댷J 'ʼKFUql'2}U(SNx8C*<}|)+ʚCj,ƼMb`+[ɧ8kbI\r2 iƬ)дO{ 5gĂÉ2eY"z12.q4jIRWf#d][Q˧lw]eÍvM/E{o`Ѷ_rdY1GLA1^Kb, PD3/M/SԗʧM3Ǫ{í&'KMC|e_.Ε>R@wB'ͽ];4Xi) O(i v:'+|Bٲ՝ĩgMtgs\9Zvd`{^+ɁaG!XV+۰#M|>6ij(&^@͜&*֚/_w?j V7d A\>,Y!M0ރC۵uk)*V}4"AJ@D +*"/g۵ֺ|kl+gݘcfܕ. IsN6Uc~1]XYJl3CZ_ :홇Y%= ĝmeWB"eۇs@Dnׯ5~BaUP! gA0d7z.Rf^9.gJ8BZ2.BnV5L 2;$+6."FSc%ڐWG_JF7֊INĘfSh@=Åah%q,_1oFAAiS59iBҖzAC,$4Q3Aֳ7S47;yhک}(V gWV6Eᑍq)B.-~6R E/E%-*"n/"FR)=<4G40ܚ; e :]KK=pDˀ`VtG!j|",ќTwI5A”&pEa4"} %9HӲ-`hanTZ,f3IZeixew e^n@܍)H O 洗du#/8! ߩw3B>g-@Zn5UvFBexTD0P}s[BmKю)*sD@9m:g(Q Ywi,[IG]˽Ym" 㬁2l>~KʐYh]I(2plQ0g{KTp$DҚbfb6矵y&,`+a%.k.oj,% smzqv< v8# 'rhαE; Jf N eG0mYTT@&&z~&ҥ=5. kRKu %#UՋfso;%X9zri[GMedbPXorR|=W%@E\t+v4flC}hV kO~9DD!znV .ܤ"IuQDpQRE>Nʆ̑6n|iѰV_`@ˉjC%+ lfqiDP`}A?: w .dfamJí;ou-OHx&Pkzڨ"FPzQ5{\Z#SPc*tJ$O73 MһZj->BiBCi',FۜEޗ(tܤ`ǴSpNY9³ dڥ.*r) ({nr*L 3zĭXzYe e W ~&@OŸ+-s^;=<[lM/yNFQ#jYrLz? +֔AejL nΡL&"q.q]m7dDџ,̝ov)-iRehҶ)>hIo!jD䄪WU~MԨJ=A`V1~&%j  x#)#1M2Ͳ/V 4e"Z39*ham>ɓS'9A}Z9Aj @J-}s;;p8Uq\~"${k|.vP67مTTku'jǴ9^Ы,V]uagAM` |Y \ѻQpbzށ7pU<1]CՌ6INmw]!5c~hNf0V>Z)x 1s=m}C^YCnNwR~t/[|@Z3q Ë⮛k4&=C rnme bm&<G`D|41WɆWu7dinYIV}NHQ"6?<208"-HUI!&/yms=I|FjNdZ 19C*uJU< mɕ/lmCk,>k7[xEyWOf#WN O0YQ(&WEEj'y];V-)>aiTNyEϵ]C-YF~S\ԯ*ӋFP%){Eթ@d_:r)Ҍߠ8^[ ėҬ\i9J 2X g7r57#{s eL(*:DW1 0JpخE~ 5t} )6רͺ;˜FfMp1HPL-ZpSgG,E,_269ċ5vfD-Z/!47nXWSu3bI[;1=`uc?pBn1s_i>q ~HY2bnyIlzl=\W7c ݝh] 9K3o-4tG2 OAU$faZ`.jXH*#wrohxGnØEJ:)a r2cfP&fЖ'Rd1M= յŠOjng mTп( lWHf˨}:p 'VahxOI FT5+WmEl a hW uWT0-z(뱭@ -#rǽ9^9 7пčM:3q0j`aXye ,}< 5=m3 jULE!),$-vm .GΈ{$amX>0[ lDM@A3jKBrKO}ܵarILVU yvN|H*xZeպE}I0^kg8iq!Wgx!w!{/Xoʘ09I{G9m ЉȂxr O&>L 8!Z_nMd%G Gb's)Um6cߓpӥp0E<㯉epA]&4G7=T,TXGT.<֛5lUN;E'7<@do)<,9ѝWKix2"XRkkXM;bT\X#1md/2Cxq?Ԭ>FggQOHU=;`P]IUlI+2!rZ態MA > :36o/w8F[g_;!I C(rb$j߷F!4B/6zVm#i+&v9fΝg+%rʪROD; sDǎV1@cgWYld~TS''es.z,'$cB^Wm7W:lYk͠S꧕Z5wrɰ#0_i>s=Aſ"H~ڶk p̻.=vvݠlDF1:ۚr8Gs cVe"A^ye@_]Eq%4Dh=+1L7%Q`!u `?}>v 16U'|x T5x0vۄ 0ņZ*hD&M>m%Ũх`ĴI7o{ʪh $ߜl TNŚhZ^nH0z ض"UjwTJ.[t}j< b0J.4ܳ2(^60tauo}kTBQQ1s_C&bz}`w -_I] ^@=OWm)tz!CX&#SQw ad\R޶ޗ&ʷ2B_!Ұt!-*:2s` b^/F(Jc-ە#X2[&TkB.w KO 2OfWt$$hoMH_v^1k_+rrB@QX_lI%TPFÎ& fj>ߞgձ98hC}hd|W@(gGiɦK2a۲t!USB%0o5S;j 3+TunqgCвx0qZF0<{{7An>)IqV C'R8ά"?kut$)^`dW'%:I., iL%z7@p e>8ր:Nֵgiiz_;w#PMwe,=V;5Blx]Gы c,=7_z{ <0,0͸r9& *trA*s&w[c zQtϓ dJNwp:b-Y.nD&C}6x l ߓiWfHn'9a4K:νo)Rxbxnr#eUGrS=UseJ4~fwTRm4 *Tz_Kl']l6Zwe 5I~f`ka)(1{&4~ّ"ϟ~伡1 "/SA܈7ͶX/Y+a.̬Ml#?қWE/-Bί%ß:`3CTyO۠)BK+m5b=S+iUQ ~9?q"rjѻ`f:& OVqЀo;,ga9=E߉Bm6ϙ8to&pyǍ~~ >텞ɵ?@@푦|[I@I^>X{>7 2"p>d<}~Ag8S8}xqO[yWB+%'7$ ~"@5<qjF와V-4-bj'z =tc6R\ccnIB*kw7Vqc,V^>37wO`oQ@Al #Hz3 az";z4p tH{rj,ʣB]ڋMCvJq~ٸv If:cvt0~G`,%Xe~wAj.<+@Ste61kZt֕H̩}͏i426/I^'29`e,|j=Џʱwn2l,#@e`l| Zĸ}tYȗ9Y1 ߙ&C[hf) ]7*3 ]crWߎHDeS];[7ܽm9_d f1DlsrXȳrHcY{ \O{VU#t6n!bI7H-5G'D Wz㚷N=vm׊1~"% _^V5H ^FuAZL^v;JgA"٤5Y~;l [}G o{/Z9v]xiC#,n pxKMl᮴yZɰDi&DpHܯ֕4Zq:b,n"˺򌛏_7g(Q@-x1uMFm(V# g>0bJ8ndCcG4x*>e(ٚs.Th 4@?GA/Au]M[-\+g%.CFDz ; .7GUCWVdbk &Q㐜#EDe< b-KcX;b0 {gs/C7^vT N@:+.F cJح0vG'HCI-Tۼ7V<1P"wl t^Mvw1g%K'4ZDȅ'SN/>* !Y愰$%gs^*Wa_a=ߧdhcz kIɔ[HC!8L1=H"}M{x#؈nwtQ΢٪.wA83 &^og=A %1-pHYP$$@jjAyir ( cu/]y_Ǔ@.\Ah5_S(K1*UšpmpµOwrU@WNX׷&̫PF_9)}͟#ֽhR(`XJ >TafIh'yfGz#zr1M)4iGIp'4Fcx^Wrqu"|>kyqZ8!⁥%ˆ 1( &k$G?Q?fMGkvhs%/ <ϴ!ѻ&o#-Tqh;YSuX3 Q {ʼn]n"xm_zQφʅ7[+ $4ro"9-낻Ya ׸xɴG0&]E~<~'U  +suEߩijI>,$J3Z7KgT1c ];+nc؉hgIx7}:SZ~Aӳyi?m(-GVoЋڎS Lep_ 'DB,eSR/r@m=-,^Z1@[DF /oXXx(@6!w e^:`˽qqC<WJ[hǴv'ۄ G+H62ƮwzzhpYpW n#¤#ҽ}2^7kMa@>,_/Z!?<{C$3Nw ΌyMrݒK`oϸ5JN8bEz`b١gu%% 0R< ۤ{ݵh:'VAV˄ѝ N۶_7n@AR hЅ)s NҠV3'n%۞\ֿZSUV+nbX2};Ja0"]{;.pN~4kp]x|II1IH?ӗDp#u C~da.EYbU55 PGvIJx)]̿NnLu_Nי@û+֖sM}fPE.qmWּGU"ǁ8mcsBR_4/x&PR/i2 dM=u@;6@.t.5.)*]VU_ZI7meMx(Q7]NgWZ<Ʋ<,]wyu[o#< :bϯjjE|'Txڲ1Gq]tyoqkScEm |Gͱ@R^ҸVvj[]a[Qot,]xԩ,R>O1{?0XԾ ~9̭{΃q/ 206X{zxvvEF#A`'?ڛ+20@T88qGT遟? eo$MVN;=ݠ<JFG" 8)cCn~^ICdju @:zT*Eiϰ`T0VQzpg8F 04/"ԑarDJ,m' }Dk3u<8p0Ze9u]f_'^u'SkK)1w U1PekCq,d:NdI Vj/vk{>XT^|Z]r ֮~cVz-:hH|{BQM g.E9恕@)IE¾ؗ#'"fDpczQA1fW"8μ<֐l*¤6Iktm"#GA4Q Gi~L$zձ kaqRo)2ʈ  `#೸8Y5TDYk82V&Ggmb2Gx`~Q(O^!M,eml? AlT' Lc*_ Q@vsӍjsK}pVSJole&S$Y#I {jƒ2hYHD@LKrzR'؞i&&.r`]t ^(raA2>{]gQk_(jLՓhpTeMldnf7>YX30dsB%YrjarlT2JF\ @ױMȁ+PIqs:yT #({a+1}P?UiXC(Fv?) [HEnFHhlVoAUv1)tNk'7 M) ]Rᔶ%XȷԐp5fuW,& @EdN *iƱp-Y--p_ GdX/Lf dĴq`B9&Шx{RXgox\99,oh +hdY:xh9FVkpȦ0O|Mm1^5yH ɸ%DzIOBq=[5ZKAW4/V4Kƕꯋ`:/k˅$|K+mtcқ h;c9Yx#V>=Ҩ+BE^O>{/|X;6߉\^GI s {P{ki;XmĢM 78LѤ^0|!?ۂs YzfkT [\>Hc~&, YB@ 6GCtPC©+K7n4PJalnFPbuY@J"a&d3 3Z!xh4Vq䀠0tn_hfͼIKdnC_3-Vx\'Km*V xoW[]h-֭˓PpFض`{;Ɓ\ +(R^$]?V ;T쬟A >){xqC;l7ȗAv5: Ai0Ѭ+ݮ9?lj {ѽTz?OЈv&k)ǂ;UHb#a n9\| jIiƾy !ns&eBKNyh{Ƞ޳O&-Jluj`BpW9VpV*%9>Ѩv4BGR Azï0MRr}&%]7x]3+3޽ vl0s{ZYRiblCY#ӽqOX-j&g*Du??kѳʵ /x&OEY]YQP$6tCLRޔkjڋLN& =DPUi?#|?AN@Z\;unF‰ hǏ1M0Aafj4uQ MT;n%g{hR3:]+*/plS J=+M80f#G(:X:?ԡI%7Q3ş pY '"Ɂ](C$Z¥uυH_)Ԝ`Yy(h naI5w9vv[Xkҝ2wsQbvڳ9u,"(=5զyD?Xy9s f[ 8LZ$EȚűX O%sSH,5* DPYi,,34>O %&>zY}ϒ'cTm2') EZ`sLֺ'e-S:uSY:}^62|Kg|):dJ!0GvTLC#*v#+D v n((H\ƸtB$A" ֨/ڤۖnΐMpVvR rՉH 0#nOumBodWղ'VB#F--c۫vA(~TM ްXQ%>'"*lך^ W)DJ6c]J<,a[\ЂIj:aB2'PdBQ:\re>x_R0jod5v^P(֕T=ɂ m5}_lZF/G,Q=YZ4fUO}f3J@B">8o\'ܪ'A\ٻ!^qJ Ip7ѯnU5w%"oPg) (CS(Z\ku VB1vxVD,913 `LC󝿟ecȎK` Sٟ*E>8oBS)% QPűGa.jdt{hB(?&Rxf{E' AmsK3wȎ$oh(U"99L21Z1PU nypt{Tzs 略 w 4*=αL:fpoUj;[3[צCIkzȔr Ni_q"4lqnlxW鴃ζReZ`_)K~&tdXY YÐ(Q%\ i3GU$Me9"2:CJu jgBo [hF wUMyv^HYC1>ԠGཔjuqQim\݄W%;H&-2zzc3yHCv"lqRc`ݙJyB ԒzDH^}j<o`K*X\YFXfK UgqB;RчJnEs5<]׋fBfQ jU1+"R!V0tOG( (_[SsArd f˕dhZ7s~=?"+(% 27/(,&p9e}ߏ~|#B-(~oP 4etPp;j=ܼn Æ9>| J's4M~w;y~U:-s/?S2&:yWTC76 H*i-HYq@}Uw GŷQ7XWXɛT KaQȠ7 h~^|1Qt I  u0-ggŬN2UmjGJbjl$eRȋLq(al R)8 Q FCnoєd9OДg:[$Ȑ 5R aEyveSg/|$n3j)THTĆw..j,xpw"s@ײtM5w-z-x᧪ pF {sڎټ%-eE$ T0pӗ"ooN|OKPLnFy dH"䶱A 9D}Kױ/6Kgfb'r0؉>9ǡ x0e2 |21LʜZ_-Ȏ\:0y_o|鐽}M"H)~?/:ϟG0v҈PgwK>ʴPsSj.]0 hyi;Nً7lA Hu[v%Z@X}yJGCIux,}7АE# ܆J8^Ff(iUi0(Teo AAm&Ѳ:q>NpP0i:002PnO@5.-:DԘ}afRWAzk[ۥ1L:JH`xۨ( aŤ/?'#}ړo;Y;<9Wg5B5qu#[Hg;efzpEGs[8Sb<ȪWsY׷1{צ[u6#.-t/u.LLމQ$QoTo+B2wOv) -]ĩH plٞ  Kli5ꛂ8aZ<9A#0]Wܤ,`Гy@"4wjo{4Y2CMFa&FTB&[ciL `pHM*xse!:?4ڨqm7i1!&ºG.0v[Z9 Qfn|| VZ322!*G ƉU84]qx&M.B١X$͓ʻ40oHǂK,,0=D`I`T*dLa'~kdP`vs!$hF',u&.BH N=WkԵh=т͖qsn~zU)#1[$;^.b S7h2F'wWY{.nlH#l *r;۶{i7B~Ԉ1wɍhFoܰ?<$c+&>;gʻTK@ z^!`N1P`'*ۖRq `ڋx mHXz7~vk* {ғ½j/r׭-Gӱ~9-ygiؼj s|k~ L"WAL7Pôgl{Fzp1E\REs|S`C,%U1+H$9 VƗ.X1$kv;c뿉J4Ua jSwM-#. VDOO¤2 tt{}WM6}^-[,33|AyZkH&|_^,X@IQmz(NJe/^cťE(V\_i} uN</Vn ̢D+Qؕ:rh#.bLCO΁4ßc>GG(ziN\[8Q_O A088"_c3b52WZYѰaL1Fr'ynPw5 *Dd,Acģݺؘ;:Qt&IlձޜBsz߽>Un[īGi1>M6&q/~#Wj NkZ PT7\t{vΝQsߺa͇4(y .Wt Lfq'a {YZS51W-T<ݰhq|o&P{"v7t 9\t6 ^6pE _ONt R1-">P9YCzw<0AEйyMldnl*O{O=.pN[';."=oAB%m>TB^ TӳW 1leܮ-B$PQie_j`lh_+^߬#j4vMag" 8[æ>:@.uVf2LmVAvWncm5e'?쿖]@z N-F6-AxH\)}Mt¢t,oPj(v~᠃1BAe,SzVqEfoΠ!U_gIlXxnW&y'ź ^ĝa_]o\{h۬n<'u;C0{kg|w^UR?pBB+bJXdٚ̓[W 9~4±֛{Ռ '.M2`esϿu|ь'y܈R/-RሇeTF'68z!_9rI.&6sfl՛71(f>RdW +,n*lgK*&ׁF4H| o+M<+aQrM\L}*!ms((c UJ_nax ;EZ>^Jic`@ ~ fhH,p0i_pGy.ժ0QN?sqԯ(8S2$Fe$s TtBY8Q}4gGre/ce[Hm3\~ot+!RWtX)ԆHIZ/f #9G%)W˵`nTEX4eO̗iĥ ۦ`RK&D+DРրI:7Ϫ'%|RQE:oC"`_TH;a(qIn2iJ5w \e L4Pc2wM>@,ȡ~.r Ӄ -|IFg_M="N f-&r<iO4H(g|bCdn 󄝕'kSs&*ӾҡFk*aP.3"Ri Zg):y=ܣM<fMaM*M‘ x y$2Qz%w~K ̊!ҠEs 67 3 4<qyo`FHfj,L ~z?D`47-LIGmXpc*d2d{XDVA6ٛ98V";s\6+ײخ2 ƢN iDAKc1#HJϒty<A`Ka ePBx!.Jqc}ǸOz c1" A&YLU%_(H5oCǧ(ą2DQ BP78^zddkDcDdY)gL 528񋡾sR\P/>uIG^Wi1Lюw 0vW2f=;d‘ā8ѧ ~IX:O  HWB`%Y /z|=d6|5x~>LdMH[+0KRDǎ aVcmk}#+!+n&Ă6^{O_ Cޗ ReO~=`ց7t4)B+x2=x8OkqumB!1 @F0Hs[zZSךwhi788BTEjblOؗ`ӈc 춳BMiB"ZGdqB`XQ;S&4Ico6{]Oi .#i@"@DViޒF[i nuic?sҐwJ53i2V0NpJ@)t`h<ɖMka4JiwՎ_忓b|V@u[nUO4˗59u!|%ŸpP=\ \e4u9N˙_;DC%S *3Czۀ/ޚ0"y9vtV806L]t 2d}pf+coi-lzs]J@q67Xu4ߔK߁eskox얯!^,Fݸ0C?+~sVDm&f+V&"Z.EOo~g1pWpDL+xg55{mcw'FΠns#g)=XVĜ;|,<Que:X(of%ta,D$W.mmR7j6ׁ  +Qi RլVEB?$7$ѹ/=uA!m.: qw p,Dθ*[d1S{ xg+yrLX̱l']_$Ǖ*[,ѿA@Z !-(S󎪥'RϪ+8\~}c=-Je'2j;($oƔ;1?g =gw̠ɆNИO̍E?g]!!¸'',(c{; 1+Hl`Edǹ/mH6h];Dv}Go1x@#v!}L8IH;; hHFt&ӜG6\n oQv 7 r3rK |]"3a->cY'WmR0IR:Jc$S98|B Zshq0x+&B:zt}zdxZ(N O+y6n1^a (PG}4QEWa?ϾKô#i]jV ,?_j6 r!e)LNzR RT;h)g\<)wÜ}3P?MpW uP5>ᛨaY*-}E*~~*ڕ7 Zˉ`0g-,Xo*ƔoɰaxG^Giz]^DVlI2h|<ș)Q{5o3lD7Sr>69q,fZf]`$69XC~Eؑ7;Y6YcDK_t/guTu`'iAўI|H'ӑ; >0aNӅA[H_ MOR*|{^`3%A͌.ouW-"$.H7.6-L'zuAqAjp֘|EjTW?0 *ȲqbQs_VV|f 2ZbKo0;Ƃm__:`C&q2%sG ]~ɆR+(~oNs][6F؈ic-a#_*6L;?%K6ݤOfxLV0>{tɞ*5\8]8ki), u᧏d6= ݯg3LccQ%2L%#f?GLFA!)>:<0.J p N@ALeέUQwYr(O\S֛:yX餥ojh)YKaVqMyn-}DUțC LM7B.M Prne7s!j(fQfarVr}@&e"vVtT:ͭk`wQh|%*%kMLj=.BFǏ[FghF!E)c"&p1ck99 YJoibF#u%\50G'i#-QL 'k=.sڳEu9} 1vX4U&_'T Ygb{jltҥGۏ)Tu& I gBeT 齬ט >vtMq~{+=.b\{덖DnJ,PVVA~̹K8HC_O^uiD"n uR_[JQ*u&&%w4 cA$ !Q!g*C F#dE$)ĪP,?p!ՁY&J!g#y`9!Lsf$!6 ƨ,;ߪ$2ЕaH1xś V(rFhBԚa0/{8. @gM^kaˎ—Ι$23! tb; b-cAq%5p?@ם;E靊]'abZxfB mYH 밗[wܗcJ )K/ʒie cuU0)Ls3G_ƠFLLɂTiyuH!TWzKL&I_m4P%(*cwIy2cT/[@ `؁y? {9W-O OF*sh%*>Md^.$a7y NVi[O; &zh>&ܙf*ѻބ92416mtδ8e6Bޖ,9budv>55ƿ.ٮpP)"*{JXQ>H, A~8껱ssKP&SZ cYEq_K_$,p Ju׬&3C|sU%nmVUn{aVVNVxn$0.W8d\)܉[@/y5A`]|;}C YIܘVu?u?;y| fB=dc2V0a.9VIT (n _v}~Z),N~hUy "]QF=oըғAކ"v5 sm;+T)CR\ u+^,K?`=6 0\f9› oX",_"0UN0&FlFDvtJn/ZGKIJn=Ue$ Uwt 9 rM޿W3+P)6)q@X$x,yiM9=FErҝ Z7X[9)_.Zeه;̦o@;$40j݌a%P `;DCm3EGJwxo΅Ce.f3"|!_t4uэBǫ&"=4s&ShNbBݣp *@N"u | ָk^-Ty"XIFU.o`ɎIlkZ KV&/R^s̀t!$-J P.2/d2ޱ8`kr@KmV\r&o*R G㱒)),`FbtE <*6hx詐vW7o賅>Ο%H˴.5xψ&Zn$A3QeGjHF>$t'({ Y ?g1Rn|W? YL(Yp*益!2Ep}3 crj c^ yvzt `瞾J$~"?-xMxJYx`x=;[I.-< `C3;q,#@`ą%O24) oYkG>Vp+_rLNDcwwZ"4iڵ7)Z rrw\-<R͕\.(s86a MpT qU~W怴ᅽNY QWt`5&Dbn\'0L.dy=޶*ue@֍O;J$v7I姓pqsB^?U[?K{ q">%Y\˧?҇ZSӰy "iA?gTw}xanUgO<& jۅEN#'"a;r9ہPMpJkq)m~26f{Ӫ[sn^%GX%QnQzWţT]_m"=;cIS1*rJā'G*Sݥ|[^4" Wyt˄ ƓR=:zeC3voieIqP<WJD*v i㱛m@_߼9 Y"[ORm"( )rُðȱMS<yJIc/5F adyHJhEt~zrxBeć`m}G*KHR^$.CsGun>U`1JZn1Zm 4ZzYw?ڕ*$sz? Unha€ rWePeц'^|-R-ܰ+{jO IYEg8Ul,=گ{fU:{-}Wӫd0YU-JK.b M`ż,OoGPzI7M1~Cz1`9~]N`III]O4ΕFWkfS,>X:ɐ'+Bט3>+pgiգQ1'Es'ZaVNbG D#WD#'V,q[d1Eli,i+2fu}Y# yU>YT%s)Xڲ7ÁWTI@ Ax:BToti:v<@XDU λLTlS h ^j;$`G?R8z-&V/[TL'2><^jYo<#Y V*rkף9vЄ^r1<߄/XNUUC~rHN-g_ExCF+Pրq3bVϳ0&4͛/P&ٽ(APx{.*XZ Гy +P UM k0wlhvt{cflBϝyϻ8##X&%B,&/j ln!%(bԐƾCx /&ƙ&! tlId<:{OAGLc\SEC>>LN yW݈>+hY?w4\tqW0ue ^s{ӪI]%M1h~WxX}sOYE}Gb,=Ad-GQsNPO͠m-:++Z6E貐@jUkS8K`D_ߵ9RGxzTlJy&meoͲ5?݁2+u6?1 X Xx+sc1s TlOt Ȳ/V&Vȓ9վt1/ -3TzvrюYp]r{܋*-Iaao.rv#:It?p￴|.VC/[?l4\]ߢ5H k'cFDEȂ<Ӛ5pӎє PP rhD{$X] C 57St;L! cco5VXβVQB2VZl WHy&WM4ɣr ]vG.hez@(Gք]ZeE%9̈́۬@Ey~M @usJ` v&;5| v)T$l K8m}!Xig@PY EFNQbjt٬I.v*`@i}2(8[1>bﳚx{hAP1QQYf:gHӱw,٧{THӐ4Ut.֍z";CSyiS%nՁUFS Ax=YZ8D$ LdATPV{&|x 5JJo/3D}ngCSG<=?k8Y+w"I H݈mU?V-T} viRcQ &K{%R{nQ帪,>ZuM$Мl$J .q.|\kj[Ӂ [6%gBih Ό "_ZZPXSkdG<.Lhb(fY}V"AEow7{z*!g@UttPV NQ&lo8W8-\&hsO/p(",A)u0PKVu{rlCmb9mQˆg2 fϢnAɵ7v;&巽}y< ~1EYt-3V&\"CJߞtDZ#TҊN=el,24bH'WS"f2`l{V?Y.2EFp.R o6p*"^RYIK%2xµ x3҅) ģǁbVhU<װfGKӄo2dƸjK:aO;-|j/.LCT -$Y(]PV{r .Jծpd=}zՓƀ>NLk8!];(%g,Јb h睻H\.%Kb"zȦh9BֳD!MX6,gBLWx~  ci8-e\a<3N)'9wa92O# Ie ۥ4t,ݲ[гnjklVnse'9KP)++$ U]IN @"L$}]oHqEJcӿ(tS* #]ܳznDO'>cuk YPnJ'@L~ 4<okQHTuFBe& [J0//{#C?G9ܤ D9^, c#T]>gh* &7l*I'bޯNΘhxg2b@29<͊^Q9 Q=X[:)IׅOLB.Lz>\[hQ\a'ng[^͕#slryӦ-86Ct \*#CPyld ܉ MV&W8&rB>ԴR݈oϝ0Bo }%_GvSoM\a2 >GQ:j$~#XJa8[6^_9uGIRe֔v&- ->Ҭ[NH:l:!]>[ڊd0t\8 @ wl+B4ĖDGGHAfUpf%C\r9&7afX8$gL $=HSP*?35 C<";/YC6OFx`ӥz_ &xҽG|@˼MIyL7^AmNjB9aw뱊Tл0}i8XԫP?Mܦ4KQL/a\گf+qUKL,=pg=r7d{q^~22 ^qDY/5Xr+r.ηK\Wh L-?Cm\rdgoA4 \,8:dP#tƥ_R0yi .+;u sť͎f:PՈކ;?Yltb{Z3fjۤψt,0mw>"s0V+- `Kqo0iu i2mlhfЄiPe5& xw 1: EZ)Gk͈ 6\.J1469"%8t fT_n~^%NUv>4y_z}mD_w>T^1Ry;m҈y:XBrK]jܒ3yqӧ/]9N*8xivxHbH/AsYqѣs0lz\B˜}-t+b0{d߫T6#dq\Jy{܊% |\l=/s⼬:(=,:WEhlZ7mUaP׿ "KHJoOk撛Sx@k( 8k<( oښsg*h 0 zyF1gʱ?wn8'X&4O&3oytrٽFRg;Zyf<8u}Ӎ*q}ho6%gC382q$^}Lgʓ) 6 v}϶VK` #9)` ɌS:♈GrE+-=JȬG<- 0ï79dX ?N |wq :Uk*WR5u&Ϲba07GwF7B?Q 3]c.ͦL,7#tTaDd2N< &/Q-*L{iBIGX˯Olc+82>y -o [r!9э3^nJcOV_tKc3ϥVmF&+<ݠ`1x@+̂; L߲HW99{Rc]ǖhTK'V?.'A*-M5hEe5ݨ#dV;хꗿOHUFp'X;tǓ#-ޑ5 A4k2q r@ظ)1lybC?'~_Xtݨ0I j*;I]e1'pIm瓈O&B'l*h;ߤ@f_kCRvcSI[:IxVMDFw:WQ/ZxTAXp4s1<} æ4eŠ@|9@`$hP`?;0YyZbs.[bk}F8_wC[X͍"\>4g $} `uBBfo?9!jK?Y.W{z "hlZڊٞ鞂sȘH`$iC: w8m͢9!G}]*r:.%y@P׭HG^m:l-q3Z[k5slF? pCHf~>>J?{&mqK.#b/GNͦm>?qyytK|"Q78ilD+ fŪ3Yy2~z>:No*l.֖+}4 h";< {OaA:?"ı# @ 'gzXaGhv:C@Gh>Cxij -v>vW~/;hrLja:>|$1Lm76D8{.r0EZ 8 tݢ⪮R*;MF0[T6N?.:]c2PthS ,ǶtHDbLE3s,=/W/1+eO^MoS`H 萶1R/J[+tN#]j*(g3A}^4dvpRƁ(\kQ-9g8 `<~>WNp4b9՗ /ehT /#fpmFLX'XhپÎtV蕊bZt9czJ<^}ZBь"W`,3p1uO=D:a_5](1y,0cOugq(x}cO_K/!U U?ue[}0 cВkͭ&wZt#nvNrأvM`\37b2_CUmsNWy,&I'1Ag4;U7gJkMr0S9B#=ǔZ!dac>S-\UŌӛ∯yj?BM2!FJ݆=YkuadXL%mnn*~% ˋFW$ԯ~6=>bJhup}OPBm zfi%+~˺v=2>is J,}&Nό{rUڭܥ9͍gY|`ʌ[=^LKQ*!Ց&`l S<CKy;5p+KXqqdޠT)6Sxo"GD.Pj> lKɔKlho͢5>H*6I!:Zgˬ9'NUm(x١[iɤTvlT-O^ַ2/R.npjb}_'0$}+cUM|8 1Ȅ74bRWuSQy* v'̍b{VhqJqM$2vޮ i&<6eS16D|]pH[E/n]{0 d;,qMfATY"tFAJ@~ 9*ל FTO r'}:ǘ@! '͂weD/jtIA? zFd[Dl I =DQRSA 2f{XLȿU2\\ZCnEY NV19) xtAm5 BbC<)m,~~IE5 )>z-J]Feu|fo]dV/M"DJ݅òʻ:yCN! =mx 5N<,س^m]08|_R潗:Sw4\~sd^uVǙW،=y,Qjh,q ?2={g'D?Ľxİso@="*(7`O$6N.l6 XA٤1*#^>'5"ӉPDMjY$2-қ%_;W4Vz?&$yid8;Qi+I\]'&%swE\=..U?r|:r1|飠ͲhUERޘ( 0u(:a,gKZHOzm.E3y+ .U-˥: gJSo_AyϦ+wq]w`A-dH[/)7leE)܄E~JV\dKP TFS`.KPDj1fQ3TRj<]sZo޴L|"OjxТP=| T빮aT޳Ua:@Xo0et`&21pp.g?Z4so;s}%=1;y|6v!nc1Bg4iIRjFL}%UV)VXzRLkԼ8/ub*h ;3MzBòG곏0U F' wѷZT\5,7Z8ɡP*j+DiV 5 2+V/+gEw+=] !م3F؜Q_;]] ]M0=ږNq kiޘ\K>G;+|\+$7OzFKmb,Hf/WѬc; m><+[~?#>xFb@^rAƲw:]71"W7}wC@jI p{ҵYP}FB2VK+>(C>h#9{]dc:2‰7Nrc횎 8Y +ahEgn{=amG +ѪM!b~x,8?OfۿMw߻tJ~mHFV:}cI"zН\RabڑIZ똽b㝨iyk)U Xw`1AoQ~ro#e  Ψ0Ucc{xؠZ7=z|a#K*7c\E m|]֕ѸYiee0!Ն> 3 m쁊EܝYvR]g/(uPm>2iG,]8 C[ӎh/osۚic*2LO).1{|áa$/T{#]:w"OWT.])z' @(bmo//D^Eޝ 6."W2}U"wN q8R 14/7O qSxO[TO23T8TI812@H8ɶVbƿ W'9wQw>oJ,n5qL7 ;YbI3R׼d]U҇R,5wh2Ey!2lt&p.w$-T[v*Z BXZDB$'elܰc L9M(9TRܧ_n8b- u,w@s s܄qdbUXɌK) Vey RO(:ǎKNW'%nxM#Y{/k⑛B{im:WJg{2$P̡V_ Wʞ=ve:_&AA[Au$7K|2~(ZXQ %[꺿 W< ǤD[jBҖqv'~5h~Q DM`qHra*_ܼgǝ 7sd&ˁI2m]Gӹ}sl^P4tX?>Enٔo\gR=E@ V3F620K%ѼmJpL[0,G}_#x/TZD0S w6\N oa> ((CԺtcJr\o(#Dh:OWP@H]@^&<ѫ j Ij[(kh#f}uP9r3L ?Jk>Ulҥ\c<^Fp5APsmPrBv 1;{;P# 2r?5=I(澁KǷ*e)SN9:ʶ\ t> ShWZ# ^UiE٩n<}9 >J߃%]nJ btO!\ y3.o{Gmmqi/UjnY6ØEV1Yp1۵Il4ֹHՎ\ *+k*I4^o5sXhEыhgδH !]T8g}ЗF^BZ)4~&xa+eΎ\hxF>D:2)+<Z&=5% q9!cS P;VQuy[q|߸qFapS6^ vC _'j~_{߇ 俺4A# ZJ-dle=>ϋ%O]ˁLf\n2Tq=ܼ ]Fkj?ئX#I'dy0FD)O-g]41uDE,ѵo1jۑ;+#xsB4-&f^ l!4~Ue/H,oW)˚luV`uzW_@#2+W]LlIFM-`B4@{wE؝hhmʨrQplLCŲ 3u3m(\tN}q֐zӜWɋ&ܞr!7A:.GEae7Zb2&Y9E7dXJA[%ԩ%ȋY.Jex{F<"={7\hTiCy`ރbGw5yyu\!Hl(>UshXSn%RdEʫp >Q1!xxu1i\/ _!@S729DSY`s˓g@'V@E Qďh[zϵNj]ycC68c#*Cu%aDSխGc Я. m쌦)bS*?d( ޑM9صLOYg2O37s]ꉞ\E1@6Bǰ@l)wd;=`k@Ej96QрNΞUW.Z㉺?Z4>ϼG]ڕC >26db}%/SR FVϦ]Kn1Fɿ۲~klB% aclVeD5fL9՗T\vXt46:_n # @qM_,SJk)A?Q:}|hdڐE:hoFJRǔ/ r lם3:?|l.boDN<%/RmyMͪyйk]yANHHQ՜y9ΣdXr kp t1!ܪweۏ铊TDm}e'2NbN,%EW_REGwtnaWZdis#:GȼE%ہ ̂k~[._h7rgM=YQ2n8X -է/x9=>Z *v/GDF1Q%d0Ws@Ӟ'Hil|?7*#qe$SZ |_DO7(jSa͓9mRFE<&''$vkiX^ڹ| M3Z;o]X>rYGyW Az{ y?X˿& 8MH$=Wo@5 c\cXRP3?X410R0t5rǢ'YUhԝ@sIiɈwa|q&1^\dF;(}%fcAOe hF^W׻=f7|4"aB?iNQ11doav\+\/i@3R81ڙbz 1uP޾z 3 xh;2H2Agox JΙXp0VZ0^F~(_&Y7MLiI:= pi&T+Uh0̥+fomh~cx2THF; ̹-k JWqItxA  JqPR/Xˑۋ|1@yp LJ%[Rsaʳ_U ϬЪv2c)*EʩZ;U_S{{{ `)=U"75qsr>w_AprJ@d~{6d9pɏ2: ơ25Kmg)]̭Ck"ݡN(`<}A!s@vKtx!m-s4mƍY攳M"y yPOPR[=W3 fO Hp_G&wI(Z}^Wt4R 'q z-mp^LNoK{(fR*[.Lnh bCdV %|f#87*S+osfǭ^[˱ _Y &/'S&"܂)Ǖ;\+7&)mr[X.˰^Tw& 8[II8v./6$Eo %xD{SK:qY00e,ӱH}n\"i*XS2 :Px/i[ D`g^1H_yɢ}`ә_| 7Yܞs2TQδXe?BX?Lҏ0 ,|o?"l Ȼ܉h]{!w[ z߮BnEP@G Deꦴ3^Z9T')<[NHݕ iG "/"՚7ҊwUj/ =8xz8zć+.ruf Q6j&J,JD9QKm`V*C7@pFLWF1@%#ۈJ_.t'X>a( Ұ+b6 : [mG&>B=-حxݽr=ˢ&V4A@ZV>vI>@} ) =$oh7J]d^'R^&iDn5Wi >%#/)/Z?cNbێK6%r)J籋$Y'лP(}I2)xj~EIDfŠ #=}FsA5Y!JZ zֳ_eY+7}RY +3s{; "P)D$}*rHBc;L:1.U9Ke>xZ/Qihէqv+_0< ;P@lGw𹊴xۉ1L/?Ba8 [rK|FQZBV⑬< ];yxW_G  F3$r{({;`dpbmΞ1b!a"ku[BXb?] u.'1yE'=s_Sԝ;P8(psdj,y_{}D[vλ Gj75&(4Oznl t6V@egTXo͚xWc3g(-TiȪv*LLsip&*#I|fvqNb74k$Gێ--9ui5M]$"Sʡ[ /d r^eǪh^{$ ^zxM !->r/ T%_J/LpcY!Qk'^{B H"C(r3$ R#[8a;&l)ᠡX o.X *q3riFY=gC.]5>g͚eot-Y ic|*JԻFѱ"gBkҷ~WJM؇4MzrfXM΂*H:ٝ?6:(ldi]RWh JOSW=5[p|7˶dGJXѡz誮 "q:4s1- 1/{JiBUA쿾IN~!j+U̓p-7Ъ v ӴGZj*LfWJLK9@FRqq*1;Q+q,ںkH̳>ބBgd|sPGYR(,Bs ZH$2YdXA&LbRߛߟ̾"}_:{P`׀ Ddk7]𢘋<ѝn* L!e#E Qʨ>-g1rLQKe`S-3QI~63;!)7%7ә4@B,1Nd))fl/e{L[t`<!T9lPw@6$S\@ 2 t\}7!+J=(x YDmD#4xl )U>#he4 EV sU*u0҅t})+攩NEDcsfVR|'? &jУX:År5ʯA_R0o_jT3"fu 08ʿ#oa\d:O`m-PotP;)X/ kNsrqtn aj{L%Pzk$WR465R+\{>{8ʘATXjC֗<$`Ԩ/jպ0-ʾÀA4:.y*=!:ًU^p&ț!T΂gH&F):J0,݅1 c *̏á(!E;9N,6ԆՆ5)fL&Y3a__\΂7!w1Qf u"s*6+b'Z_FS05" c@S *w,oaPn~, iߕ% (]mr<+ > F.JV$?A~j|x*1-ݖd 3LtP!ۊb!\[Ewgu5s *rg/*;+!fY;!@)%qfUit9PE!!!TP9DbT1C;e*@eoXr/$c5.i:Rb~zE2e '!o]S fϙuYT>>w O{YQW*3JX'ROz:5dAN /S4 _65Zƞ8r.tK+bȜZao-Ԡ?/@IXZHw_K7JF+N~$@P Ҫˍ_W w?=ۑXPcXWpaDB_5VPu%y!ܜsU|SLl7+{ xI_݊ їH5$-uU- 6y˺lu!euy¶AjD!hI /'0FnGF–V 6 AKi-]Nkw"AIJ[rr_(%'S(zlG7%D{;v"x<|BGBZ'~kApUAȠm}a`T ͎LjXţwTyA f 0E0wZԂ(4֧M*a *EmGp#2^Z)-,Yеà oհאHr\a$_5} !씚^jʷ$jw듻6iB͔4]Έ{\'1XyB7(]31Nn|{ gY>҄pɝ,eTx#[YR]%s*O]nM̹(\>1P|6b;qJ61T&)HF#A/=4-nZ1Bz@;P% PIv1:y^b1v4_tT0ҩħ[s*'4xA a,Q "*K&ù|++CQ$!ϧʫbyX\u>2q}SA3>A2?CZH#7j qXb:4#:2Lq^K8VI MPyJePd_'=fi=;4&Xgo Zz3.P/w [hcqE5]["ƂlR'46N}&B0E6D5Vcnsarh%~Xt<GݵLfuxh~@uэ) 1`:ewX܀07@og9Xi=/Y"w1`#/LAٰ:0X@d}榨Lm02#چ,eh-8(HXL2OkM7&'S0|ss\\zMTӺ e6[nl?R"5菄"d3OȧLu1_)#3%k@OER"<BÜ<֜ۉ\x Ġ'`zKK9%| G%Q)n*}D-Cˤ5n.\GݾjRmtzwA멨f@(ԩWf{7Cm-]q'VIzu\E#yPZ9"kg5.UuӬg rEBC[4 l3>Ȟ?$%$ۇ{?i8@ % 3|(7gGq_N:F33RŊm8Rcdh3`"cێPNF 'VTA7Quv,("6[DۤQKXѭ5Sߢ IgYN@n9vI>aEX,tG?s̱rϸ)QtD*;‰Rɟ6["bܒXr4KTBbhv){PrE慉 eF,kz]^*8bWUC89Ņ)X7tn xZ.k< D-( gz{I`S3o1CmFPB:m/j0zZL%6QÁ}ãcF<0)H 2i1k j1jwf%2E>|>Y3#b6%דuDVgMՓ Rg1sC'j-flziq ճ'eZ^Fsa2?KP6_1}YW;*ūSCQS_z`,GƊJiX~ HܲMz*')|ë**kK_aahۜ>((8/hef ܢ(b bҐL7TJD:Q{K)=-, ۻLV|`4+RwoPȌfo2\zf@}:|U(NGh$~ս>3||m=kیu9~s9G)(oe;9דU^KDu.ԒjAN`QĹ1OeTnUJX5- b\UI*wD{g XFajP#-K#r9h: Oo?H/>AJ̒WMeOzczy7а?jQ@87>xEnz5T(Ү j۹SL#T<!i2kI{[M;QvzyMx-%=v&a$\B6˱g7o21r/`eD+_j lSXD:6Jg!E5z%qk+e: 5MU\HQ\'c CS;iMQm  YLjڦT{#*^)ѷޭ Sj^=fikɁ-GrO# |N?^rkAEbK(ȵGDʅ:o򶈥,Zkx{Wihgc؋^D`7sw=X0 ʴmѶ*͒j_+SXYRFVne&Kԁ2z8. x@'VREds_c+GnZ>D[Rjݗxb["!k75cL7h6ַcb1^݉&mz ݎ-݄3VM?vON+2A8$Ŭ%ϔUK7́ ~yҮ +&y`H_l`aʟL0K2&Zz,DžM "⥟ZH >f^;_YXȴs,5}u'eS8ݥYCHiu$ 3ZSs $[N"YTDwm9 Df1zPęnQ%>|${Gu!U,jWCw|'[)4z M`ksD8+mjB:wprH"p32:{;F{@/>EASP4|0Q m f0? AMݿ}vW4e0?N"5Ee3EqÝTUEpY}G[);6v`v+R6\u, ˲!ZcI/] RkRmQ0JC*6E?o; 5@.ŒhNmg&8 f -" r؀J8 cT0O;r=r6-Hխw3ύGX ϏO@HbK%_HzkmUmn:gZv7g's/q.zDSO~XC3,~]t?.Ԃ4 lEm\K|õ`qTAv',/TYjd;ҝJcď&(313<'?]nJ8YKxY!mֽg۬qy n^/{JX#pb(Ɂ>? w2$l1;?b՞\*rL_44iGN]!X{?j;82ncys# ϙ=+Aը$i$.B$W$ pY|aT^16hتBU٩;v&% E T1Tj'jxIĀR3@Za R=x$l/I9Bck{RӻsV7!sfџt(Daݠ¼WhIE[n5U iZ~g@V8s\_"{C9O i4@K>|t̓Jw`kP`)lVcj+SOZR>7|cR51,:?D@D~%Lr7u]M`?Q2[GJkXLճWlG9*<'VŸ!?A_3I9`=a]Z5%on}(|NgI҈suBVp`zީ~0z% ΰIi7A$m *kˍEP#Mt8CpF}J|s3wO(AkiFҢG`:ńV#W2P8 A`$>H|T"uA”eptQӪKHiq-?%_pt^dS/_>I k~(hb]|MB`qe68)=Q>4~ﻤo/RƇED$g2/.s^Ϭ8 S~^GpFp^xIAޣL2OqRxU +ˢcaȸ׽֚>4nTĪ[Vbi |.[gIæO`/2B G0 `ѻ7T=mXuƃE5ݸP@FU{U/CiŹwg*(`x5s].XO*^?dI?^oIi[Q7g1윾t-KR%l[<[ܻl{kg@k*jkqmKĺ]jԇ[H>ȁy@&d$l{Qu`!&![\d_Hk%7qQV4I*Tmg[Tώ%3՞D;9cQ ݦ:V% TmGxOb0^ T_1=1f a? u <[D,~>+ Vd JFk J>tx‰W'JQ&Q~行F-f#9wz\4iP`cz?^C2v˓VzoBGG7ۡ/˘ sn$;F!@9ͻatgZ@=(T2lܨN%|M,/>' jѨTWd׍& U3#0S?-nxQE+M%ɤW.b"rWE@ec:k]Θ_,ʈk"l$Nt}+<'%NսCc35o20 \R`X[m ¥4gg%3_X` H]lXϬmN{Y ۀCijuJ/C_3ةtGM?u"EE*RjCM0$\8=t6CվW_5}rx4ş7oȆI"@i"n:=SRbO}̢bZ7F\DẎ*͐ +RgDII%Q R7lgoa[V@PKl ~GY8y*ѹrܔ5rU. }?z6bS2ܧ`rLmGbg!֌E'3 ‘% ''|`+**{]1@NKP}! _K S3 B>[m@4[s 7Rx e"vAJ5]꩚K+)κ7J- n4o4Ѕ ;Hf e}=/UiMH{uyEVA7z0.7 ǎp3_@%}!B@Jq2ji7ܟ-j:D*ADr!J;v֣ttF.#+v&zӮםwHvrAcSWHkB-ܑ2 ciJxlNK8h G)-0,3a6c|p,ַ{^澞Jyܤlk ahK+Hd1dLc7 ĝWV ߃QN@ZB z$=PM S9A^`vDzJ<4LQ8Z[P`UMc`eR 7JTۑtKDwMw1ҹU՚$Z Tpj@Zpz\Tڍ6}#9ƚSv|R+GS0Aυ Z#I ]6uŰoJ5B߬ 2 {l wA zZ8(Oy͸}Zq (9vuMu]6j'?;O+hv&vUz 5 /S|3!aQ8oa%}p O2}]z…ӪٺʈT#^K.@ΕvWlM26Y^2 Q-ӦTE_ֈ>#L)n yK_FCWy^Dr637b5lsLncJ$Mẇ(CAޜ~YX{jv99iGq?1RNs4龶Z6I'&* wTL7Sĩ TvJ[d+Fܦ}9l'QXf.yyg P-́Kպ G%RQ~b4WS M2]8SUSb4y\(2eU$Q=L7Hu ZUD%l'ӶҾ df+/s34ٹ-שQ5!O:;vn.&o >T,%+MSp>$6td}>М׍azHx⒲^"]i{AN Ʊ)[ 2# Y=o!>޽E6.xRVr7I| ׶G0=qg-kDJg;0lB}"(NUa'_BȬWI˩w2iBDj8|szB]gQ΋3 ^%$+nڔKZ̠HaPR7B$~dЯGl\&0k S1%DY4yY$óX4?&# y`֪bb\%~/Q@'YwkԅZ3#-ޭ濨gTV^@y&.x1XÁک ldϰE#JV5x?*BN gC4x|p#J" B,pe¡e{xR<]1Œ˘ڃXG f,2L {$mM Kj_Zp#O͈/ݧ~b$$SGTM;]=5qӧn1}!_"h 6.kP\#ݍ$/ʊm/5"Ec-o>ƹSdעpO^qpKCn>]?,,4p8kQ|3d(o~|S#<',}DdrXjTEW 9ɦ(vL;B\3OX8T+j0K[5ۡh fDRJ8P&E Rh.8H/䞿JMRѸN; (B۾ӡzN$yjvFrǛ;ФtN;+k14?c>as|=&gC{U"CD+jKxP)%yHo<&ÉXpU;>3tO/ߒEXGt2gSY=,돹زC9G5R*h ` aI&7"f#1@YtWؿ a _B&}zԖ:ڧ!ܾŒ+![RBjʖjOXv!(BJHIF:Zi2ˡꃆ*tu}1S^K&@#TٌpڋRX Oj偧2ACVIF -ENݫ>@q1 4MyƌH? 4کԷɋ爃0oNxDa.S]Ĵ:N h0}w`1Uqжb)G#W).xI\@ħI<ʉ$KpLa+po䜍9W73% ;7cjҼ;'P >h/;gH:f9>:7d˨pk淊oVȯq|Ρs+_̾d`Wg;RgrzL Jg啾4=8UF4X#X;5 $.o*_FO.GU?\fLQ.S!HI US>`)Pxq,4F)FPU.^ jyTj F|1A ҅OIT w9wL.2PR;Eq/60| M pЎ9IiA+ZyÃo e> 1fل<$!5gPczlZZ 3FE y}s-aϥ k4s?A%(/CV<B\Fjs[. WUo|nԑ@-/./iRwjB":+Y#cYy fcFB_N}rYAIu Uۀ9|%`$m[j3C.8q|NJ*@\imHLksnsY, > ܍LdF~N]B1H,o- B1/J/0F K (B8&qݺ+JOӇaMR&s YF*nOf$4&pKqC3%? Pp{i Cs0\1e~ TȍԜLmTPwo OrK +ף6%GΉ00[ Mr'~AMg=Ȳ @[lrxCZZЎT9<&z#R xR]W Cg򔥄p?e ZW@A^ꊫR?x`/jK2 K^xp[ RuljਤD|H̜i\/CQ!\KNc`d>JMp^.YE Vvz6+Ey3 u"Fҿ6k!/l5׃Gmeۿ)$a~[tґ ٲ:Im>Xa3C]^X:MXm w Vhynr$% zD!@Iσs"UJWdy*nU_8 8ie.Be5O<چo |+3}i߈cbWm OYB@|=7:3Mv4 1c/j<Y7D`ϵC(iR{'u&"Ow;7:+rh !(L.gC/RR5 5u뜁4"+ 5znӮVx3,ġUm)I?=X; D`8CBb7XP8DVPNMx' jC{$W6!! F #LoA!T탳x\fnW##8em8ITAcp^Z8ث΂)@=*WȯRw ԷlS1M*Wj+ |E7ңAJPEtVj8cbzlPѥq= (^\{$xHmk&Rl@aS#!o3n>"41XJ+1K=5>=>f$ K Lݏ[@|æ"g'B^L `Po~dy5=pd?)~x} 0| EZap ކI09kp*O=q T8"ޑ42!2+JJW#oFq-R,IOa.VJ[MV#@dK0LV3k1 ZtRmjE-0Cb쎴t{YU蠕lW64\w!i?G~X̖W~t[Z6yac8OlH<)t8Ry Vg{Ԁ'FK i/*zsԄ|CŲ'g18<-4Si|~NB7R%0^e.͈#ҧZw7ē @çe"s} 7%_%|aI!s2te}v{b:4e+IK>?+K~wP q oAbq8Oe!`XJ8ÀN ҒP_V?XE1pYsK\W0!e>RGܰ T="P#{lU/U᳢׎ݵ51=μϻ&$yTlt1@I|ZeރS y_bu!57$,}؅ᱬ@ H0%B9T ;~H%H|pcWaI%;icI+NvZp8؍(p5nRtQ ෶OHMn1nua_? ^h0i Ki-YWVVqpW3nv2Xu(x}Xw''k:bEiZ.ێL s'$˧Č4 WvBID$.CEI/J˛]|d~ҁ\x M%:}C.v? mrvo焄cQI)[n5mB@+XMs6[G ʒ efk~~M}Zas(XUZʕL0,(>F(~ՕF\5wƙ=*5"P$+Z%Jtd0fn$>(9ѹ&r/?c4rvMbxC/ZdZ'{AFXv -vwO4H 0/ts18<67.gL*bݍ_ߓH(H|FwA{{"/cOvִ !zzD\H `L0/A"P[P*lQ1rv JMQ$m׊*|,CN0PE{VVI< :x+-p iÍ!zbF/'Q3?ݓtR74~á|z'/ *${74R6*v?ݥTCYc\+_1iW{{9n*fyT.d@OIq]{X@;jȢ aZc`%%S!q3KirސQF8*29.N.7{@6-VjX1K&3닺]mcJFF/x.fcziMv@y|X2+vq6o!߀2\`t\_D~dmh^04'ˡC-IWQ+(yQ9Da$#.-U +؅ 59m{%9 ȏuzV2N]_r?E,`;::R#p[1"] 6vCJjj;wTJP shK6א7z>fa e)>|ޅT]Y'StLPesu "[$.CAE!Bt_FI[GXSKM_' $bʅV3z,s1}Lq-y(D*S̛I'|V }S5c$b8șD 3Tlz6EeEǧ/jg{8"d>3eWPx3Utwc;fdE!iQؓ#~OJPWRݗO#1RDCnӞ*GJnUpnww:j=+&1ky?+9"weIh7JkBN )d9=UN&ؿ/jFP9tϩH Yrf\8H_bAYY{6*ndTKbf#4{/|T0Z¡OXH${'yn>\[bN;: 0UKDMNtЎ|->c)ez@D\X);pysRɣ+5gh,e~YC$qn&Önģgx܎E;8zCr|4XsJ;ki.f*bo9CHԉu%+ijD`|opH遻&n}塌NcH{\s[.hL&ě} ئ7yK|#Dtj>]wI+L#}}(qܯ- [D܁aX< \74?쐔Bͨ믳c*:ͫK=l= S-!/͋TE3kn'apҫ|4o\"ߞҚp is KCB`5sf{VbFN$F[ NCQjIͻ 8!xu^? uRΤbGP>uB.i\!SjIPjR78wYz?r08OӭZx"}~o',hCh|,`eRmx8$xቮosx&"tEݢ`诧n2D,i(K[ ݮa6\ž3J%4f;"dw|[]%V{_)TĘ&~u+yrZDƹY#HTb[X(N_%Tltj"K 񭦌C8M~nR\ʜ"mfMXw9Ib9Hj%n_wg5(`gI=[TՄAnm}k*>ST)oKi{:r20JʺN仟'F'#wM nR#u;JB(OKlB Ꙡ]E.iWv2!/;;;j2uˁk&-եž4̴W@AUL'f_Hy1dܸ- i!japYvй%_Q3VVMr暈e:]i+R#ؑq Ϋ)i[s܂ (ې| #}izd8dg[E:LaX\{+FnB]r|V]d6b9-M˹''j?<$+vG\2u&~HJ`G(pݪ"ذ;f4KyK|u4MG+ 0u't=Wvue_duna5S]p߸cXwN<Ďu_ӻCWm3tPD^[/ͅllxuT|DCW]G.PW޲@^>oe8q{=&Z͗y5<QdjiEGo^Vt$Ε;~X0w&MZj-fʿ1ݼtl`LD[?Ŕ;O0[f_Ѩ;7/Mf/>'Y%xt+)[7Z);y[B0l1iehoY3w1hAZ*g ۹sW4\R?|melg8ĦnzpBGF Jfh;(L&F+¥Cąza~F; ,2/LLI'f {J/R*\|Lɻ{ƻtrZ-z~ͩ3 ^yql =|؜2y=g_%׃.AHF#kE4_nop yGQ+&[0䶐%2F 5A^2 WHi!Q;4\nwō`#NjqKײ`i} ##۴f0\v=RT86%O=T8w6/ۈdxъ}I#v*?90 fƜ=}¾g)6h淥9Ch~)5q%=Uw)+gto߯P.*L2~5z_B1kw}⽽')#Un)2 h͉Yy0]">OqG9TIj4D5!٫p3A mWew84AWhJ8HF{Q0Fw8-ǯVFZKuXPk~<:yەi0CQZ+HEp_/ke+,6uVAyxwI)1RF-KOPҚXQ3Zx$څ&/ٖfq0apF`L|$ Q+ᓜ](+%g'U1auXG.WX4)DkYOd;wek?_R FvESNl߯_c:HӬ٦DYGEd d$Gkgvek&p^9DrE rx^!BQPeYԏ %TuLdfD5G%LMv9ns$8z!fz`)S'co]6F iZc8ޙL1%?n[Sf+&y ̹~fXڴdk8`C%]2~9K :PyHP9 8  >5:@+9QI=iG~W$/sl'$ah*A8߇D_a)P9 vDf6w]mQ<0*M/y1۶ǣ4er2:ޑ2񯢇'A-Ч^n{(z1Izj1azq spcМ *)1+4Y&z9=#4}Q`Ld?I Xﻺ iA 3{#JKUx:|{K[-~a=fR(ϐ/[.$Ǭ1}QMՋ2$Gd@i+dSەFY*R{JO t:H z\5ʦ}ԽCcS"+p \f?TKdn 2YOX\ 5=Q׬?BN՜C|4n]mwa~#[mX  +VZ#:KQ^d1"@{ 2o8}\-Y  ]вϧ6{[6޾Rցdܨ#!tK.VgXCw2G#I7oɒS>cOCldttĚ}7*Cdi,F=#?P7$2jcn1fץW(i.dKn{kHꠋf2{^疌rRE6Ζȅ.)cv2W֭|4^M MQ0gC|3V#2GY[۱ii^*ML/_-hveb?_ Oz^̉0H ɳI==?䮱L8U1Yl~EJ"Rnⵞ'biӚ&{\Î*,`l @7b\<0}|Ghk*Ѽ=f\lѧw;ժ3%Y8frefu3Zjv>J"^ґ}=`#AtbPpF[ s]^q) |ѐ8##JW9վ~ hBhCa:L{h3^,o:.㳙zYo lЫC{"d6'"wA&\UT|})4iph!Nev.G%OZw52WE{K\sg'6yiS$sc&>VnnbtZ}ojR*ODMY¾ۤh5my+ 8l*Lۡ(t҅WȻJQC5iql[ssoGr8K|򑩾W2(A~­W4M>p{NP* n,8z#o$u6R;_P5`)SUt>5<7aGօ)+#*cJS eUx׎=J#YB҇i9O書)rX% CɊI;ؽ=x+.',e:2IouV3ux;}.g_aڰX"+a+ QqD+6 'L 4 zE2.-ذ* @&+qEWexm38r 'fܖzEMdo- 2yWPW;Ikb8m8ǃ x1o@sn3A?乮oπ ݤ+@@|U h=1dkRVa\4?*MoQm'PEK9R85 } 8ҽaY&䶟-J1դP1?|$3 QbDW jnثZ(/V\`,"Q(y OD*aDtAvZw_ V6`}Ou68yt,H*yAZ:ڰc]Kwf&/3+ܪ KgnS =O/›I>x" 0̼(?K|Ƌ$L:"LS]%45#@|ϭwc]V?n0kr~!7۟cڋ~`}tM?BYKUas*H [#蝙#[c!H{+4P1ˊ'N91+汸Q YU{Ua1% xUF :9p??hHq &7`S/3Nəug|uNpזTxU(+s2˴_z/'"uG{[ӱUL _a@+tอĆ9+2N'<ҦOFqОh۳>5#NӱYǖɹʜM`rzsmH~~h:YRTLJ, z|5 nPjzuE&W]ڌC btcuM Qqg⳴QսE&n\D~֊b!MIB7Z$>{~|!d xl*fH淝UgegƊvǚ27-+ &8u8bCεW6A-XGIJ:cb^`<`'g%x,kzXIvH]wKĞ79(B/cQR?:X1HYH˜d4藂q䗯NBc[SSPb Px0 B;br@SHt 9Eu&bY,f UdBӪN:phT3%fog9T_ aa;]Hr.$ˇc 6*0H> p>\͍-rM6hS&ù}w ',EOsn*ߏg{O6nB<'piaw{_RIKAf/7@1E2$$"Ynt 'ŕ|@k ?Nr|:az:KsN[]$b4[Y`6xbN&^nDq2(/A Kq[%J֮OOnXUi_)B,@ǿ!"aa9!wUs`x.$ϖZ44)[<.+묭)e{Mn8o^΀Woe,Yd`@fxϷJw>l#ڛ7]2N aF (s(YЂSMo4E`KdG-1O`ɤE=.MNa/A,"Shh#B(3}BjPuz$]Jp5b&xZ!}VZbn֗(]Sp]b`DmHJ/Vٱ]&͡Y* I71בsUcb JO 5{H!:Ƨ@(,Ӊ!+5ڛEʣ|\niL$DWvɼgڙ6hhBx@ӧkm5Ӊc'.ug~o5c4k2h . ?aXte0if7qѼ«Iհ6i*2J/6iɭW'>:A,5WV-%COH(5!z *U^QDa^ 2L<Nxw6mIFл8_:g4sL} F uJ}k&FXE_YUM#%͹]Phum$ߝM03@cJ15v4L7pcp:Wc˱Z >O!5[:P}tZݲIp}bV n^fJг~ɻAF-gcꎭNqk:q ]Q a0?GqmXJ)SWukDZ+<з8 E,:6QBq)f('kqs,_#ǭQ۔rn9)oU, ][=!(Xk1;K,T( r!=(g ?{/NZCk r!c Z{rPGǽFT!) ݉#2rtZ&%qik2S | ,*Ž{dIX/2B(2HF4FTgQk} PTٔ|{;*]R\DD{'GhVu{80k.0 vpfs%ΟcxFʛf: d0R bF_,eHcDEe }:snP+.=kͽ=e,WFW7ˡS5aDbU˽ӣW8:lD㰇b8^7hW4)1'-^䰏qw̓]hJ#Ȅ $bHǞdj_/OȐLQyQsJ^$Ʈ )xtB"fpkU; 5!$( _? P1iK}z RJ0/Q JB{>o8ozy^*V:~AFqr^Yla7$9O<uuw|*zPtb( :J3)W g`s gV7h{i^c?'~KdG4U9ӯ2: |&k@M0L%ُ܋-:?C!M Ɵ1v3D'm.ư_Z#NoeD}L f!:BNΎyN _c[K@OpP#Fzqwp flmz3ZP) p+dϋrv_!~A%XQ|rũ-5=ޏpke`> H@"-ڥQ˝ό\Ѭw9IdtmnMjfD2Jc= bzz;m>.FfcyVCHȠW}|SR \tm_1;H3/wX:|;o#BI=ǹQ 4 1+9۲Y_}>`xX{٢Uj<8΋zu e/PI=.%AߔJRx2>ż/&dK^:0]Ė{Mes-hҘ*P|C0kN?DtKah\ QցuMvBN7#Wrԁ"ԧo 4~z;Ny<):0=R.`h{s|$ND-mvuur-5lH)!bwBb;ӥ"V,>ܭ1V~YLg$1ll CLc9hA |z\PC<H ;+Oڄ$i ܢ5r|:1H95|LLզ[*G󿞙bHo:"bFDHJ OGJĽ6cB2؁;V6$h0L5v8C}aގi+M%Wj)x54߇@_u1PpzB!8K@7 5wBd%b)>Z EF!>k-Z`9!R5#KJ Ss`1"5Uɖ3(j!U~ū4i[h.c*Uj]?Pu5tSh09]e>0j G Ս?RjijToG9 E(,i?{ Vy2+_|иZ퓨 z@ \`w LpD S_t])hh:u)(F|4/tx.щz-٧Tr˝Fq3S KV5䦅BE StOH"Gӫ , <Wo-Kͷ;S91%ZΙ4J lʇpt9E,К%b {c#şQ{ȯ:DaO ݒ \8&/sq12x!:bjj!hlWН:s_kKz1 gD =D!|gz'>@*mrErBG:5sA(ioOʪ|HR$g! lOːt;&]< ~}WLJC6GӠ{>݊5D#^ޚnno"$DH{o+ާ &Ŧ>8p{G >C+`8TYȾY 3p}R\Ņ[. nxS4LU$ en+_ Nm n$gǑZ_|ː <]'2I&q*tf W>uMQ>9j>MYSeYdZ%/M~:Wd²/29bMl!DvNtv\"D3 v8y0l G%GL88#gˍ+du|nU2N밿SΑ~RS=0zA C?Qs Z4aO5PE.ߟ;E{4.!G߀R|SŚ6;L2^'[=bD7.=.rq.[fY8i1tY)Rs)}N!lD:Hx {J m{(2*M)-ՌC(XPz;l繇SWr+U*XϬv#1=b-Ch*B;`ZhJ<'Bpr_he;0]ҥs \P}6F~4$1{Ƀ{fr҇zp"Pf.xT 9Jcu![$VZ/h4~y ?*NPJ cZF"R[( "+)p \g\,WIo@DKpB?fo;S0}InҖ?{$xb><>4&{!^' 78z`0XeBE_qʠqQvir18Q Æ ژ,4ATvQvT?P 7Nz#i9xF*Ab^ZiKKۧ쀚2Gt$fͩ`[wL1PYfջ0x$6= a&om>XRxy- H/B A a {༓e,}W'Hqϊꎄ,"cFdV] Z۴ BϭT-?*|{XFxyԖq#ZW^S/Èwrz٧;>3*$&۰7p975OL$L̖o,_[&8D_͜ 殑i f{@+H]$Cd\dڵĪ|0gt>?J}Sx}D0/Ưu2{04ZG }J1Ta6p#{{nU8{1wAޞZL8Mr ]$¦n[ ) ƒO;G"7r~xu顫KbWָIdnfғU[÷YKln|3+EtϜY- 5iI}: ;pPB249;|<{-l?h(vXpS}čwaKXP XA&1ԋRhbZGrI FݫݎŃK|3 zJ+H$mqڳ!/YuWq$ͤ g^"3b:l0kRcVs_x ,߂ 6I3"5^jάI 3wTRl OZH o0fRy_[*}1%a\U\߭&d/O:2D%}ZApէ 9P hYr~R"yD7ɒ~&N~jJOQv>+v_ bZD<#e^f "9 |  s`;-eޔ8AʿI$OjȢ[V8-^\d->+0wL%ꄓk{LQ sp u FTc~!I$;0oסEC=p QŤ\Vܠc=pGhɑx<:IW w)ƧOX=~M DчJ[(!qصS*pN5I Cr9fNSa!z%nZ/__f&*(Zbgj>O|~:{ZŠEe;V|`cט׸G(mifp?"WLSXbPWrr~PPhfEvCk)f2]ֹTP9ur٢Yo>^+&{ bTG-41oGBlUiՖO|<,jmbf4JFܣ F"l$ "`%P8ts_'" >M:sx@ǎ%]e#:ҳAvfa16[^bD.?P=O;q! %d2=yhO~ViT/ِs!wh(nu] : !kJ99QB2}ǹ/xT2KF!/6 qef X0˕Nrʦ0 t~Ou ƞAb2"m PĆVʄYjQV ~Q3v icSG\UGFu;b10 ɨTڷتRD;/%0y=-- e3aؔϦ+6ouiQ+Dٌr` )ZTc }-xk&oK-O'8ܨsa|4bM 烧5Ma:A%(@M['{-j˩Bܝ 93.jdCBH`÷%5=HZw.t7=BTYvs(P-vv>6FΖEX5N'xQ'_sgeQhL)}M6yaX|8IuG8Oe%c˶-X=w,Jz^Hc48E>k\ww6z:P53^4 ]<oR!Bl$S? .lm^Z/BYP9 ~Uzh`lMP9O @n !F! owAqHkVI-޺XσO~I$ czj&4!r] ` ?U:,li1pʑGS9{ }Ԯv\~}4A.gD2_i_T)"@bf&=P0d% |5Cn{?CLiZ# $+̚g毐wќ(+/.ѐH\(K6T Su)6lԦGAzZIJ~x~ZZ-*ee˞Ẍ́νo'h):Y6rա۵.QgEFs@i+r?;"^~ģAalRjDct+o%Ly^'X#dNt#wi恄>Q wq<ۮ*0!:)͂Fo5EIʜHR*&sKbkY6Y%0v_y-;Ҵkt%GeZl{,o(D}>lx{'~e&=-$ HMQnun#K=W&ǠQbapÒ3 iҕ]DSnb~2s-Jb ([TA ٗI(aVx!u&o*NX3 O~.'á)E G7"O>E<~wMt^<$)W7vRYͽQ!Č+rYHFe{!{_}H^cd+]e$=gTYc+gC  vTMuB#ȑl]CEBNƫsLi L,LškH nذLu-M7 j:3Hb0ڠ[Z'Bg~'/:ҫ9eޓ@o]ދ(U,:\GMnZԄWl^u俜 ` <*:(LޢzH&R"#0P*!J(rmpNؗzJjv(dȽr$o('-eYdH{zY)!(cL.of]d|HdqXXm0 \,hg\ @R@D{.!o58'^;s1+ E<hy`EXh,ֲsfIs !/ϴg6㌼zƺZ-^u"Υ0D0s\8 bWpԬ~զ!RnQnē#RYe ߞt OOV6'iTpZp$T| QPXݔI\>J$U{|mHG)$~Ed( i/ PNC u4䫃A&74zYK죂ó$y7#((ZSW 2sӫeڎjXZ9VY{'_96ºpSgI"7@ˬG`7̌ g-3-[*շhSmHM}d?ZSg SO(+NW5M6*&NޔwyiZwt\qIWkembeuyMR eQySvj2= !qŪp-R4Gf&OZzF V;O^p 0 GB// H_#=JUw J*˹~݃O`).I#I܇u,"zٯ~Л cݛ'?hǰ'MyDWsn*B!iKP\%*2lxL<2qn F?Yuο籗oI3¿,<:&eLMV y{beаwj,'@Q[U,TErRqN(LLݦ&Ke'\lM .0 (N0kU x*Cܿ49ޤT"?: ΃B)g")O\2MYiaa2\KEv/$֖e8 sg.Ul [)H 512g$bRe*5F9%1>kS"Pg^@T%pte4]t49e睂*'5rEp0Gr;VhNxx'N{tZh ,'%cTqfev¦C[ؗbk!O,*;X>W٬{ 8<0KuU@dGd-sO{Uaۇ gAxJ\t/q@menH$wɝĎզJ{n燹Èɗ =YL(F3\Lå+m679K}@ozç h[rRmÁj^:.,#3$"Exw9洿L}6ĴmUS䖙n^9%kڇ}iJ[8䷧QF1>됵 Bǩ#jH<>\A'~"Äզ 7ײt$ ^ ည_: a^p nF7#qf{] 3 D.{[-1 Vll5sP[W ^@9΅8SJ96<|_`{{0ߴֆ$q>n閃"݅+:^19@J_\QvpA^#\[Rnzqe2AھK!{[-b"#h ۟&Jy }a9zQ韗KL ):/\텊L"d>yjtZz1wx?Tj5?+זTFkl?:/-_TW &))*yӔ(M[v Ʃ#V1 6~æϗVk(.Fvɶ1JVH! ĕ #aݥO ݛ9?x< 2]"jg.ofR>賟8)+8|di#hω5l\oöǓOwdc6<^r}ʵT !,K4[I3'7G^ vwcfiU5NW'hlT U\WyIX(+DC15O>H`u6K#jkgC6[ԛu?|3nn=kGOE4iPNt?72YGQ0ꝃ2$PUyUHc`1rgFi;lM]=1L?qw\bUemg`G@o]O,p@kIg׆D޴sQ)= ZZlBnB .L)9_M9G փ~FyZ/Z&'hi-c&H L1n:Ä7Ʌh+`'xb,K3`xJ9TiqS2k胃T=cSRiF ΍Bۅ a}}x[0Ω>c4G`M.xO$?H@Ch5֏G< OA`/% 8A|VZIo9;mۺzg=.8h^hIsU:0oaFF" 4!xVVwrr.ڗv9Wd ,&Mi;t.Ɠg.;<'jdV8[ɋw}+|{G,kJL/RbKE56݀ޯDFLa$ѐhX5}}?O=3c؎ѡ#؆U4 I$@?0*v4 E%EO)菑Gu$Eu a0-vE(D5?/z/) z)b?0)Q3Y0toq;ҭk@,13 j5C>9@Ȝ^&()_bYǸDΥee#i H1r$ϫԬnh!0vSoN ҴLGF_ݔu>ر Á y,uvVQs"K&3"R퟉?k,2#sXX|g}X6LRK+NqΖ2{;탗ޡD*.2bQ9rZywL) 4_ A75pOx`3aa1u6wkyv"6Z߅գYD!9/օuhY$Ts%?i"RT-m%*擓o&b*~,=5BSI{GUD@}8rZ,E Kz84&0 %.z6Bi@jbR󳉏πD%m6jw9rGBmZZ^1B4vȊ*`.4KE_# \A:T3!~D?Zlh/8#<1sEk@&q'JH$CaNe_ڃ%}!;i.%4(B}^{ؚrf{o,/&|JP?{Azڊ^S|nMl@hۛ *i{g=n[i:?29>\D_c[a/dC쏾%40~bO,P6l2o.B,aUZ5?kH.`a&Iq@|xf )?m@r?39 a ݦgNұ qk㟴rRz+YLtɁZ Z-n+6Za%w1_V9oU#!MZvhz dҥ.(W]ALvA,0!VQMĮZAlPZSErHbm%y˞ SOxIQ>xy9WŞY2IE.nsa>xi"f |2%$&i]Vnv^0ctlURckB/,AIkGm_#];tYvS2|T͉pPA [\8䃧j{Yg0hZx = :1#t; \ώ1yמQXV\),6;`Y|w t7Nbi6v1@\f Jș#<5SME|*ioYE/a0}#H Q&k^~*D S9#U` 0z4.[w~F#hõ~ԌN]{IJ<ی!ѿAP3X0HݬWZA#MôMJ9镂)P{ݞ%ӟ Ȱ% [@!2Gq%]f<4?t"{|Fto?NDJ»КȹgGx`݃,mAzM.1EqL:ÖG6CWOTjE6VkJ(o1F!@G@?Ab۝Gg ņ:r] Nƀ&>T#j4)N~mQOZQMùQ&kAdrSn͵:TF b7IڊAPԦ>V2NZۛbBL1;K+^ǻv9_ F@iQU3Rw! Bg6Q|z2#lCN>OIkꇲ*I^0ֿPD39 <[K\_X{9ʼD !?5Kܮ%.Yfg`x {'ZdН4JS҆ h2aJ׀C>ws{i6| "C &1p8\d_ƙ^sO̖<ֽ l"1̻ )[X\yɁ^k`y%VJ0%<~eF؉rsq-lٕ_NɻVʻM6!_m%sT`Ն RbUB(1 PF0E2TUt2E+g6X4M']5 n?LQ/@㘹cYB̌'cRd$s%ֳ\UV:O߮uW ,+fnV)!xv|:L8ӆ䯺&3>EAL(}ym?*`܁^7}Ҁ6Li*.z.sTH_&+룻"t9CH( },g27eb8H;6 U8h–n9O%gA8B^d}l!)ĭ>?JuDBeQhdRbf9GilJ3Z9OkNA~5T2S~_  3wws_w?BNs'@㉖I?(:z.W#To+(&g TN}Cy i,-qBMYkẻ8}94X@w:tLZ؊_Q}C&X*EP@ô(5dgBb4 A ļGZs[z¼ y%3:z͊?o*(/h3+kAF4>NBFv*G:$ɗ%(ger`P/;/p微%"#/w|5iǬ#:8إ[86Gw>lVin}6d?)vdEU1K# }sSoD'/TՌ  ,~)8ۮ-' :M!=ulů5Ѝ6Z]"օW8:lˮˆgjim\T6ZcCUgCtSP¹J'v㒔?pcjN'vjy Vʵs2<fm#`F`XdTӷߊ; &r2%kR1]r Mr1ujU Q-bOW6_naڋa^ Oe' b0Qux'i8 >[*qUt׮DnӯA[>pZNjjhLn%]{dʮ&7[NsOU1*qd_6-:),! 0X=HlZ fyh3Dj{p&Sނ3Q?輯mHPMV~Ƕ2T`_0 I]3ny$x{? tԿlm|Mg"b~j.5=A%rRƂ"{@΄YS/rݲ!~i/D-o\+f(g쨭~;KX[xkk_pm6/:gX&x̀s&r|[kע=}WSY*LHY; `5,u_ p˸)Y杊V5c@ ?@Lc+KPɔ/$C EdM|2tGr[ K;^=u{&Y7%eKwmSY8CC !Y*V%8p'9V_IGGēdg&rlN3 7]s@IJ=:XEVnŶJ+SPL۵ʏ9'pDzēz C}%VHWt7'[򄎧ƮK ݔ S Gi~w?'g"i?{T}d̥hU8SyZWa bpICgGsvQE$̓FH3[ gLe#ULPڬWYs ݦ[٪'%X1&4^Lp$?][#+[Liݯߘ{ QXskHjv另1? S+UЧ,3|ңs4k-VZPNA%k-~#Xp8b{uqXRS {!%Z*6YwXqaSE 3yiu}802 1IV^{4͑TSn ghJ).["1BE[ɧUYL ;:QV\W}eEȶk汞ň:^Z ;sJxsh(\>uq-le:a͍f53kѢH6Ƀ/CaPP5 r 2yLw3fxG㔌?I.W៌x^hQonOD@v$RD4$,߂͝^^aqP1OvSHv)ލXܣfp[KĊG+_VG 3Iib_RM/72_h! 0Zh !+VcrÿOwDt}b k隣W*kV)m[Zd/{ ,^r "1nm mS5+ہB\mRA5cxX_:{W} xby.o4uST(#LV^R¡o|Q| k~W0<_`"¿a5HCw| ]kO6c掯*5rq4XB>:""?9UA)+z" w SA:X쟰k\KŃ5%) @Y=9~״%p~ "ky rPBʑGFxůp,S \';Ś<})+EbA^/A5(˚pe=u6:5CjT8HͬB׎ mcx;fѽD䦮[%qh*e&dY|#w`SB Jl7s%eR}j &ܵKx.Ou:^:L)Ip[x{d(MhTb,dH+B_Ht?J\2ID'rD:|_fIb]n-j\kwb355vv$y3xXe]PX5EX[Fv]W-q$6j//8AG/ɓA'7 l2;\kU@u0ӆ~06l =wXި';xSvkkg"k: * Bйh~B>80>f{#t*$&ɔ{"E?5+o Ga'Ikb~ce pES v!RXx %n ߱Q7e|-YWҴ&;U*dEw0-0[-h^F^۳=m9ru =&`3D TQ K`:#7ժW/aT_H|-u$|\| &S[rmt`^15yooY~7{D/pC&a8Ys|?O_``Aqb)Q de6GY] f\7'ѱWqG~'E)0":׿7!6kpejwnmvubt8q7dhNVң t^4ȁ||k}{$ ׵9+<\u9y! ,bW)}^ҤTпu+}+e R gPoN(V /Gv 484 |ry jc'= xL2Hnd6l>I 2ZuH#/ "_! hՠFKZ %&O:P\aOvr3MPF<KY|IXN9)rz7 ~ύ-l-IDn&%(t0LheĕSWv ;tJ64b E&4aq AlZ?'ـ1'S7{/Mc[5#t^)],w Po@sS fӝ4(Mn K}5]A3\ +1&{+;xÝnkemjZN|qeWn >dK~(&ʿ`: dUꥺd@DuOGVG&n8`"rl%T!.B't}IQw/gΈ-KWf\ܕE$#8 z")7FEP^2Y;ZzD\Gl2MHP,26l k>6Jz~Afq)Aς0(¼iv㫇~^hU*Q)u.RSA?}}cJ +-KwmͶ#h[`TR2XwM^Ϸ,tx) >&or5 a;|p,KhҖO-k?`}8<Ch#$r2"qg# 1@Xڶb\_T]^#A!\P8+`u#zA,VN !I #T*EG9blw>f8<@7cC񋭄uET02U# [8LB&liVuC@Aa"6Ҏw"høP49\/sgFWQ:#+@k^( ŗ,:RMMMo&hھ`ɂ(_S*3;Az glowYMlW[З~.ۜ3] (Thz:'O%^}tNo/޾uT{@OpX7ˆft!I9Jڗ{x뒪3(a&@vMr_x g P5CzSX{4{"uKUD*R "V,w>"^#*g7G٫tn,3PϏNRCqTwK!hV֝.5NZ$r}n.k1TjwNİMD,ħ)- @eIl(NRd̹m4!ßg!KΩ`[[p} ?4f 6ls_ (1m8?7/"8 \192gZ|&n)WyJA3:!CxWz`[9u3#GNڮYUH!%yUMCs9$hPq]jW/pmBSkn]8rZ~U?W۰nZ~7#TSM9=|37~Pq`UeֲpNJۈ&Y* |o30}y9챥f׍n47v}LoK% .!sZA˼Jc?6K6{G} G5*iDzwu|G1hmP]TQ.b_'eu‹W.(D꫹w [>=q|iXhm0=ޮxEx߾T%{ve0m|ڝ:ػSS7 m0C?X0yO2NA7.G¯H >:Cͬ1Lt) EF^{L[W `eu]Ϳ 蠎%`DQ;C'.Q2Ea`gg#ァmEw9/(nn ̱ d%zA8fd.dg(:g*RGe8z]'cn܇b Yu\@Ɵ(p^hKn@8.{X̍RHAƁἺ0B;LoUuy=[N5%AkBOoU}Wq#׬<u@цdA.l%t3sVS5d%ۀ'*=beM=T7ŴH;(4fN!Tf(r!'~&$ 0eew whDSѢfYp aĐ;Y$]-46YzM{4;&!ڽ< QU~]ӷMm٪|Fh*"1Y4.{S<GF) pXӜ̵֔ITԶ P =9Hdgp y+RB:_iT#(᫵۔sYdU N⻸n`j@!Z4ňQ^yR~B'*}hղP]} \ļkCQ}ۍj9<\a@̪#Ncz@ˑ2ikȞP3AfU^bARzѠ'(z)ԲH6K qΕSvIa>G":wPTS?cMP5.L,i^yK> ZY*c k +(Ծ ssxeZGXG4Mt |NSJ'jO 3 bp/k1 őkۿ )n @Sl2u\qӚɾaPe C>z! 뵦4sJ1لyBR p;lpL/|;N?"_q'uIxO!j%(z5O<1 嚺0S?6 nVc{ej)< U2}&8 )<>+~̇YIDr\[s8z(Z\;]2n-ufeou &8O$ug b80%g*2;vl?E1A D/m.R_±Aљ}f:ˈ}LL κZG|CjA⧖׮~gSsVwgNl2:Ga ".a=*|hڌ/ߒ >"9^W?)ւjc'6бw˛qu)׈'aadJ  9o"bHH2LT={M#j]= ̔S'\}=?g'|b/SqDC˯D1;˄k{ZClW!!uI`>?C]ZY6 <{RoHh%JX ;We ֗Z0qPaV3LI]je 9ǁR̾=2"It6R.KOՠ od՚{{Հ0)'`"w.5{Yd4x'`-]\ӥ@XwOWh$X{- Yd${6 -€g+:Mܤe>7ȧGYۉu !`О.voj{'=W,:ޗHd~kZ<ϐ 8cQ,aua-R]DE %9hOcE*N@L%8HMZt`":&9.ݝk;s_Hޏ BY!k"I`ۡ&%xKErñIˋX*5 -w`yXu1A} ~&- q\qvF)!Xtƙsހk J1Sp):굃u?t`[Y>#pv6;3VVE C@pN+'CJ=_nFEq.pE |q# j~]}8aWJCe*V+`\@v^'F-n`s˗JYTOQ@ ZtɶK8 u><+D31˚E}&d?nGV^5,wl\MfftTv|RUBcunB9M,}|>$RL?K/L43z{x@ b:t,BV LaMv-!IB6b>ts'Z\pp!njI05!Nޗ9urmyZ5Թm /'bf~[sD9 v}. Lv!*u+U/`kQ bE2:|!@Q]vO-|o*sGm&,P[b1 BO}?T@ltN1e )Aw}~Thbش/񉽍ʽ4t!ͱgEٓ*BQZe6+ NVs5]>BoR#mF ε0èG0D=#Rx'lZnL=ѷ 8tV(>K?TCeaCy.(Wy-cR6jvUl4W>q\C1D7WLpAHu\pQ=a ;xf4RJ$1+,rzF0L$PQdI]ExJΰC],+ @WMQ, frb3{ڪOu%P]CaާIf]$_V1U^֖?e`&;0|N#;Һ &,۟C#':ku^lnޥZRi$<6XZD·m~SQ*H38b^ b[V*_| v&Z,⍗mdkm6@` FS@>ܧ݋kuiXCKH:eI=oSw|_-HJ_L@  }*؜3'2_]-ẍW *ZT& X_F# 'T 1$z-(oAfD7V:b# sZ--/q.\XgL%N(me.]iԗ2WY'ʳX=Bg kp[b4iw(!e5 3T}i>N=[mCL8χ1Ï _~n|ݷܸd~D fԒ9{d5,Ў009_-$4Q H-̬x5Lo\#hW;cw}B^,l>}znuTý}S4qq{׍QYԇ> i: 4b" ww^~aLb4~nd d.UweY90*1=Noν@XYnpݿ-KZX.h@J) OM98H$:ixo3Pztȗ,0!# ezG5 @$=U~S/(:.ݜIJ0m6 చ^<~@dRZSϧucŒ'?fO`zHtN)q(l/|lDݎ%Q9VWDUOʵd>4s#FttjLIIa'ڃG d3u#Fl"tl|澿wGžvMyX1Zf=UWc#ۧ}9eMIڍ\-{"OS#7kR47o1 m,9hj(d#Ͷł9"ev(BvWc=9npj@?wxVUAL* &ck $=Lv_<'1f(pO@b ΅NOZegΨ=RdPK!nnT}Z>xo}0G;D5y]dy1t ݴ1vJ8/e#ԉ-bӑ6+c څX9AeDIEvٟ ;St?ObVee{b@KXB D߈q/ jB8LP;uu%K]aQ 4Byr˳ naBL>;.|qB 㜒%bR˔$譏`qnܥɷ+ ZGDDo`T_C[o;Ee<oB/8 ܥVw%r}HpT"ؤq*gYVMFq)BӰ SOqKZڨd%-ΥFǵ==)y`[-tەgq&g7!-A) Ո/^|u+bkؘH<$qd4į7HDE5t􎈁ss/ ~$7kwtf`&FFԼltH9 mj ~q53u*Ks`4mA$jXN< &|a[Qꭚ϶AM*uyV3dzr*r(gRyŖHTƺT}d3Ȼӟ(^%vڻ] [*u1Hlban3DMͮZ&PP꬗睢L7*CD ;qF=ǖVq_ !4*sV_('cL#KkyirB&ǂ쨧i*I&v $2~ngT;1uij/El5fBq&:>3Jxς?TĦP?^uڱ*Ӆr%v3 [Ds[t5V½WJ6{̵2 GXa .Lsm:0{o2+fwzaxR)XzM$Ġ#bgsM_}Cby}ͧs3EFJXuZh-HyE;қ6[N(faťvYLkM|fVîK솯tpޅ ATvi|O`!1VYw B?dX@Z觻CC:]l~Z F ?:S:ǃnR_p*}o;)#.*V|"_cqiQөNJB,g hګc陔 p-)deNWm}tNdLA!wrĄYˇg?PT0F~Z=|.MdHs(^\J\6'$f!߰襤59oл,~84T[_ꇷqQ~kYtzGd3ܟ0JR/QƢP$E (PQC&#`yMp&#PX@'߬Z0>6-=9#$lk4]z*˧W:OJ0 /wWI ՜N4\ vBd)JͿ13ZX ?ax,澆eT{JjJ!YEn[h'G%:FB\o\ v%ɵ/@G uxUmEXWS(psO%mhʶMA3ZYy<]tUt͂YY|S&&)3wih:>(q\]C}({~]Xdm ɒ67+L.Y#WjdtK%TgƯ$)IJϡN45IPB?v>-I4](%s+(e$SwhW$?Kze~è )WK&e8(`Ƒ)I X0U> QH͹{WK& r_+VVѻ6 S= թNB_8:`GR!N<'ֺ6'o²6>@7~tOT,d'D(8Uǩ|v QVUÝvðxJYR4aV*Lᗯ1m<25+. H"*jWM$ _Ktzm9k  h ϣ?qy`rDФS ǐW =c6uP$sJ-" e7X+} ;ãb|s5_#8' X7}˛1ݒKĕGE&^U6 Jr"6= G.%g|竻7m\1-eUˉ pޟi[b9Sɕ9MX2"Pi! }Ѥ:Pg'sJwR2Sšk]<< OO]vN\M"E9҃0~cVy"g %\BӒE<;^v0D9|58ODYNe- zw2RW@gOdW}ϝ`"/j+FI(!rJSmAFDf#zQl ~9mR- ~DRzzޔL _HBJ\}5Lr{׻8 D뜣WgTQĪ$8crf. Aӭ0LҵcbMc͗uKtQ~p?X;q:y験CD +ZYy*2Y۱S/l,yc?i]D -蟝|YFFb㗫[ėjܜz+k5f!?e+ 3OV5 OI^?o-:'zȺn.*wEr;eF\u@ [l*͋+xU /VsZynq-Bq9RȤeuZE4O dγ[[+GSm-%ڋ7HlE2`jޔZ=TO=U{1?d>I͈{:]SLhjsn6=mX`N =B_~OHàAiԷ|C픚Y}sbKE~Be9[.a2Q y>[_z:ջ],$x`B8 ֠&JU5]s}_X^t>.8mO! g7dʺ@f$h,hFcAu{;_%mXyOV*OwkaBm;[.=qD,kKo:P{ i11>bMN-?JJu#3~)r}WNֿvf } 1.DI^|*HJ&)ę+MIVQљ UnUt+hBiO 8zDM\kՉ;6]E}0z2BZN;4/Na72-M1! 40"JX$E?DӀ(T+x $cZC gy9Jse ȍUG,H_K9)]SV:dQ~.cnͥ5sϤuN4Â'\KN$@N o,Vo[Ft*)iNu&900, ->5p˭2~zYJYa>LM ?Y֫s(;j5ޘXUyƳܾ:3 #(qFid8]B&Ey2*e>dl>]buR'aCĉ%flw1E"bJlV2N}m܅lNHcSc#x#5Pܿ%)yS0!-z+D%15Jׁf<ݛqϟS!9oVkm&_e*WN iJ(bƱeΔ. I#ͧ,f{N!?2s:[8}SSD^痀*62E!MX$Td]±y`))ֲkh~ϣ'yFw|{qmi`ך%TˉUkYl p`ٶ†hL!9S ⇞שL9Fشv/k'`mG,IQ?z:Ŝ@CCDNxC*ǝDY)8GͰ]z]k~'S6e(|f- 7(Roє艘U8лO50|L`31:d6{Y5yDhVD1SN{]X.-9sn-k)혊AtAtTL' ɍU q!2|Ecx99>YcsoQίp#.04W1xLwQx|(oud8ڻ4bSn&6!=eGwgv֑RxUbN6 3}YY}t_$Bu~Eȫqc$h\!B3~S'1F7pŬ Ç˙N@E`Zs t/sE>q@lRjYz A4?Г[UK?23=^IL IC|!7Ux뮡f7_l 31"|QC@[hwa-ޅNg0#&[HxQ:Hjfog寙?736GDl»}Cחdot9(zI2T5fjdbú.23z =QrQʚ:A?;"l-,nش8sAq*UV->bEeclTiZޣ-0{>` *$iyMZX^ &/B wavL_ C `1\& *1p$¿>hק:Ns,@Cs1rE0(Ck[t 1QW6ncd*1m4gWܥw8'My,448h>F<0w??`Xun.΄\zYgTq4J)T̶iNFQe ֺᆼcxԒG[o'U684*[:z-!GX~{;˩)ELi7F24 |'Gl F)KpBPNQ8lYIHR W? eꍀ،O_iP[⍬0  } /G 0〾`R#^.y 5mKj|ДB\i ґh,;䫮Pَv1x:0 TO)|4ȥӿKSi\c A9Ϩsp+q}c~hXAtAclX(tq#_ fI[kM?nw tz93^ݱhkxeRR?YBHw@ٸ¸< gkкEO=ăJ40mG?7 |4XjU0q-:b+VJCN 'p1 DoQ)3rGkUxPebZ:gO^~IUu=4\p]^l4LR]\S)8A=G|9ZXuLw"9T'C*:베~sPro̼Ʃ:sv: O͋;k-7U'{Txa@~+>>wT`T1%}Js+3V@ACV1 9rдB&h#xR^} 蔢zF΁0q"dtODY3;'ekLD^;P Wks/eM/l*fYŒ:#! K,"zniV%ͱ@Q=`0CzDh:N6)T堏:R=JNK\0 0hN qKX*(Gj,[cgOϴBSdRr7()v^-v)x NEb$mv4؝{UϮyyDc{s ˲}s? ;J ƔЕ딞 JV<дOueMh_k$n8--G4Q;Cd.(nI uдE +Vo,:f-mԏh}'Dӹ"c[`"ǣ4ţC@JmgA* 4Yl79KhK^ُb%=*NltoÞЪ} 7ؔ)U腾\9Mc:\m)*Dz./iR, a*`{NFxa34H~n]\73AN92q`F :k + e~טJRZZ& 1&E[f *lC埅{NЪajuNnaW4,5cuZ "JxʯL$ ! SI-(A{0GI<nq5Tq4Umx?-;mfVUl(fedМX~P/SL 'Q.B7M`Z0u P>#DrێV*ݺ}v #ay+mV9?[Y3B[=n0[1ɅyFu*wڹW= 8o;5KҸ|̛FAVe򴹅-ǝ Vk ov6aK^]OTahs ;n!}@/WJOzU~KY{²7Pu)b=&ǽN"vZ·\ C%VQcʮfMr\ Ke l$Ap$]( s6Z@JHйCVlӎ g8Z ?]=OuAB [7w%0'U D NI_˛[@1$'2UQ4+pS3ZkY=XK~0aI0zoߠ(awg.7)vl*7u#NxJB7{'c!}UXn|+sMd8O_G#:o->u|nst,ӬߧU^qп2LgЗQ5%dЖ EN8GlzJG Bl P։szh]R _Fr.7˞a17W›-aDH&n;eS.S]s~@o=S.IJ/)L BvW 7F|'~f$?i;r {uʬ-x/B9-6Jd+JY%'y 0!;fȽ y[z<0.\:zv?ePb/6(cU@^™#_Ț~zxY /cZDZ0۾N;`S/g}<+HbϪQ !%RҧjE=ͬe\h= Mَ_VpCzD @28{~E@4SGX4#Qf ^.j^~З(iaB)iR:SԼ܂ŹΚ[?~4>>/,K >8!GfwxkԘ 8Q5{_|2&YEPqWc}cK-XN UOaJEb\>DcD`b`V_eЅLX-U6H3OƷÛZ%ϏId6؎A\$n"&HsI"BPciVDPdvA:MԟP}Lewc C3A!9Jur枸AIA {flL"6vc*g ITrG12ᙖ+@ɫ"z[BsEY-BW134N^:h_ӔK|`<7_XNk /䒏{jDMOܐ-%UÍ}KJKIZ=Xo{ͬҳPKwPn+dNУrˑJifcגt4 fS4#Olt"ܛ ?GwQyYLP.3E~3  vR#xb?=NH徿@5K1p@;8UšJ*h#PG)ՆNzlhXbњ.9'.϶E]v 3γy<@TLo0qBLltOt:^$7"_p-+oPSLVZ#{ `azKMqGd|zH8wbY €4Zʉ@N7:5ha'q?x.m S`gMU˗!1ܰ[1|ɶsc xWx!B w #B2Êg o~{X!4oEa|(:xu|Bk( CMwepu<"*iWTG~$AYqsS K4~ཞ! 8Tdyxm @۩pҌn~FٸtrM -F 5KY߹JD_3D(Nµ85|BQʩhQ`J;Z7`ΎvyG3j0}=ObE2Ǘi)`bA6=ꛘ<QԆ7yIJjXCJ}FjZVkcMn+&ڗ>eI29*&1unt!"q\BIi얊V/ywcu#{<%Q uܪP98M|CzWNV?aNC1=3FpxX`L˓ ,m_I s9X7Ʉ,ŵ_M#e/sb@[lhc>J`Om5T5<rHPs,.FdĐ^(9+vj-tݍ6L)+WFvZ:w|@4%)Qr/deƕrqoqWʄ.$àM-aGd{^r_}tTDI)J mu AS,N_GƲQݒ}ZM F;, 6ag]{>PRW0ȣ|%Lwm{6CI)5 kϣ6CVSNzT]__^Ȩc[P'$gqM߼!5,0l@~僂v5rOY9i5iYj[9aVV~dX[O22tPJp.VbH,}t\)5;/rS!)@s&PWt ΐiձRw.!s3Z6}FF9m{MSSRQd'4=&ބC0O'AYZ)<V\Z}L=o{ 8],l8!Jу-w׋p<+6)C6=Jk=*F,pA>Ow`w*Z~tyDیA,DM^i^I{_OlLŤ:D/͐.Jqdj&[x͒Yayzm(1mgK4a1Za}Md 9.G8lb~0ƪ*0&㡦hx MfSX3 T'!ix;򜸵r5kK"֢ ^\yR_ ~~e]&ϿCzx!D". *պkXS#bjG j]ńJv1Ε!`!wm|[J}ڮʹƩeTWA#$'$22+ 6I]YL g5TCT^GѨX(DVѾgcҹo[llOxr/An0*~( УiRH{&+m/)% `tt:"+2s@e jLRt@b>jjd(]7='2ޜ0lk N&k!?g8﮶7U|^+ʱ^27$ZgG8-]28 < F vPj ʱH7ye J\2k͊hN@k|xZ&ib\X"HӋTo;Zw mbd`ɦ{O yu@z1PxwBLx`:*PBɿl99H ܡ9Gn`}(xV1y8;xA7;i(MmU p{zJp1'(7zF%MiL1-@\c`hӐl 0-TWG gg~K4R*f8pl ݎ6rT1t8;ryZƄ(&ɛK^y9=OCmHsjngöƄ]U~O%ޅ,b/͖$AC|=8 pېCRoP};oY1 #i0,Hql*Xo^=`ىPۙrV7O*$EH@Tߎ4Yh7qe6DLj?<ʳb 4EhPV!3SZ[(tWyܔb_ o*A$9*K@F$ǀݨx+eܱ <7$7˘+[W|CyrFF;Ov~o/P%GR*i@)s'0RF8C+=h!x!7x( KeXO}CmaZuY$@:wBU+ ' =j*^ ׁr-q6hz1A@P"M:{vPBRڒ*Q)=$=F+' 3v tpf16-Ģ n/@{Y+2wNHE[%Yca+-L&4%_>. *HǓ:m;;Oņju,)o '/Z{%! Ĭ{NϊuR~l.3ݑ_'d ^_1ZQ Qμ} {4Yh[ThuGGFw^m`yy!9bX@9mߠԸ S-[%Hg뀼qmnqNusE0ܡvoj|DnT3ITh$\ &kn K+q 2qnAFn1u16[!=P!N6p/GjOދQ)j` 1fr5t^T-N#bel:`9"hZ*+"W'8%Fx2p@,#qCqy4Yd6٬):#%Q+ܵFy|-Kw_>^+sdxm_}!ɢvbaϱ Q҃|9j!*676;l"!\ `Q) 6g,$X)\b+0GfMl"wkfyB3kǗ* Yaխ:(iBFLoH?^x^f2(x< VUXTym\e#/4ɉRkHgC'EF|R|o9oy z6˜]=='1`y'E3(_ROpKFY67{W[(OayK@y%#y2ϱq (UZVp\q kSRU}ξ @'@z+BOl9{]՝Ae7E; ?hCU3N>D$Hwz{ e+k}y`#W?e| QV+t$=Y0HJVP#tZH Xz\ p_ l'w"@X.;;;B Զ0IpnB:3-mscA[uCKܶXTڢf/+ @@y!jL#,.n+Jh|x`U y&bZ@qLlܫJM\*[] :6غ!#> ǖǃM'vJ'RۑP}i9lxa9/jQ) J9(:vZ㨋dex=.s/s@U=[LM4ʶN4xŽ!p\;Šذxt?!UQ$zdMy( 哻b[_$k"A`PO o3yu!O lkQ@܁)ȘIT/;U̸^imntC..R'.͙-$cD䦙a=3Η2';VS%=| .ԎQv3I̵|*. Y `̙2 =!4Y:pLپRM*a沄dZzAfZ_hfMTf ^4_ =Q/ PG!Gp捉jy>V;򶮠/yXPD}8F Azqƺy5D=fX1%z@o )ȺBp*ᚡȰ_F"KmV6O2${tF4q1s(n"#q\YU.:2;E0s"_prpGP/KRȲZ vpF1FP/R?KS5'bhq\FO`-(->eYrL(x!Gч e!4e6}@N(wKan` TS s O0L/m^՞ HPy!x"um;S5lAuuM8lKH2EfS4EФvst }>]Vl?4ki oKajB$nHϩ L3@"j/+Bu rļ۪Tc >5x|?ʨp{3Ō4zBT(D}u~5(h\7 L@'n .Nhjc4 S2*}O^*J+IM{ӜG"scdQaSw9I\M_@֎k& 3$]wN,HPɷW#erQ>ƈg9t mS$t6>eh>le \ۋ 0F>%+Wae/J7o2PſTH)qUL%dMXMVv7,nX8U!48eH,Y#]B9鐿5F4>A+Ɓ6BjrioPotv~[YKBO竔z>f~3&֥"HYxYnmQ{ 7#*\i['{n @t$1e@*qbpV+ z%Rb"_惖Yw("[/l\У<.:-H ;zr+:ը2oAxkј>{>xyX-P#3&om*Xo|Z L3B䯶mJ?~g YdA>#Vv$C,U_{Z OhK2, [Bew MD\M%jDdauhLpP=P`Vⴻ5/#zF_O\ı10J*%E18I 5a;w!g$|~n V ؇+Q{bf?Lў# Wڊ/ _HhJ##r%H[+MX%tq^i;E3@&p1K:sT!o:Ft,wQ a-lgESZBRЖH*{^ԜL!INjR.P鉓gJHym%,e&]=X|JBW|=G!֒yjX¬btrt1tQÄr!7Eg#`m?@BJtB8%ְ)~%s'yH!f% {&R٫_4tG Iߢ%0[HF#LIٶ[|TD?0hMrkPErL|H{;!a5PR;-qC]&ZyF-Cᘳ/bU)z ROUO$[W1odQc命Ҟܱ#KiO45j:|+CLi ѲZ_YQC{Yyᙳ"(M| Xt=4Sś X|P|s`/8KkN14J@E#jL|gh,c0qe[:? i>DkGⶏKp|YX[|Ax:6-$3Sh'Tg<$61sH5G@?1,cs] !SbZh>6M ^E 6KÁKu4I2RȫP|9:$śDZMY#Bp 0NPNHQi{ռmrXd|?]d1п2vt/JHT6(aMq%R '\Xa(5,*]2i-WKTU3-8wů~\lE=THZ L%65>6RD=JvK49R!eO?3O硑Y.OY=<//YT.?) @N'go}FutIS {]vH;np>/*mG3S>CY;)lZUI҇D[02n/gA=Uĩqoڇeeg` ?q旰 [F;a 7FLJ0p k>6m[q}>~9'PL ~)^8Zkz"Q{ANwlphMGnݩP98[%LJ7h϶LUX3f:Q&1Wr%v!+M+6 j$St)ɢNp)5ܲ[n5IH46!_M,pV,'eP~]`ޤfI91@{:|dJS(=!75ɬUt I8֕HF cm0B6pbavxc2eV>Eu Ix$!Re}oWj&D@/ ne)L#iDqya d /޽C>13Z9#o vq b:jPAbLx^%v#>l|\j%70l8'K8rUtr>o4 AXk;;Xlۇ$&4O17iL1 Á 2[Wwx;j6(&cko5AfU}U8WdA|bpWOF,oϟ['(.C`"F;]C^I ^K0&gpz C{ ]j&9+HًBߴxِKܲ%. _iGܜieN/CA}wSMb{4iqRL|TEÑj'f'!D80Ȱϝͬ }ɂەid?W $h?3)qotG7^[K]5KMp)3ǯhhz]RQAܧK 25 P1gE)L7Ǐ2_߿mNeW3_-rBb_5:-B8ˑ_>1!:n9Mv2>! &TC\UD3*=\47-ζ)6in9xH//ntyCLQe8;^L2%K:l|D/V(膔ړG^ض8)b e#g+9x:tf.uź7E񵁮jz34`[ۖ$mR7jW4y"j57iϼh-KhhPh;ldeҁ4)j 5ÑO6]g -V`uM^:&9<c{SvP/!J ̴J5!1 jŲ w]/DԊ(D M"_eSV5fI{#J*lgUD-ޑ?zoMPY>vzm ڴs\0o۳ղХ P'lؗT+TPvuĎlh3b58*$2jӶ7%ڑX,w]_Nhky\z3d |!rF4A!aΡwr XLw͕C^}ɮiXB%[sbd_x:P&Eѵ0jcs=W<nmKnuEaC_"19TU8wpMr\-`េBG mv$YeEvֿH!N"qeʙ{op+1HGB $i{ MЄ%gFzxܼ 9_ME'f=߄ճM)#Aԯ2LJ>NG7^cX+$ ' E)IW|J={厓Z޸;E:9 iD`&}G[L'O> -o,fS/TP.u\㶜CcUH z?%{plCzgʝ46Y1ǷWn_ѭ?rvW9GXomewl`Lz1 AavC9<%!A Ot M:&raT_#co)) V=O Z:_\@Wl-Drݪ,IK$A*QWf@'ǜvfZVP6 2'Qj@x /o#Nl|ͩqr6SyuF <`sR' Rk9З3q㫯Tq|nla"͡z:W֏!g,*zK R0`v6Ɨ}͎4g_ovG~0"9I(U=Rg iJ[pZ^Q0~vϷŕ'g}`PsCbrk% ''N3EznI}&Nq8a)2ERbÄY τ on*-F8`Yƅĩ_͟eoRKӚ Rtz_4I L4bղ'_.x6] !t`nSaǛ^ tKQI r "tf(1crE}!}/Ve"mH'hd;dS7?NJ0^)Ν*8,KݡSC1U-MCXUjo/=Hmdp)6u^TB‡`%TF'|J"=F7O!giҀ5z:*A]byEJqFh8BhPs;:OYЮ@3U?N|B;@X |i eTٌ4:($@ucS f(KҝۙE mڲ!m!:G}p Ƣ;;MjϙM6I]e[nY;$:>+%̗\͂|֍V 9P̏VM5vvVS:3aػ4SAA0C&tӐ?A*E5"Z@V9Qbzo|"Vc\QO8Dh-1uЦ { )cɍZyd4+ UdY1oZF~VARlDq=Uο1۲>PuW҂VpY8_=LJ:v"+6AnA4G,JsGH\PɆ*ZCU<"Op_ݜ ]/~E/$/zݣ{vS ~pkvgi1ZSS7Ex:f'dߞ aaV6ЁRLLv@Y+/Jĸ)k/%5_-9;aJ ns,h%M jJѸ;u "P8{IYuIdo{~C.\ Y>7? b$B82ufSI7 ,SY~B3" ʺZSQ@[ -Dѩy㈻)U`W YHn? vaa|nTŁёeAPbpJ҆3 H2H})hKvl^ 븼£E=/OMy0cux/oq1wZ0I3)pڝ@zp iU?ˁ#f;4׼M|CHQv0uCC{KlU;B`ę:Lc6b[!)iL佼*ѩ҅;?xW/3ifH-ɻ.7~0Iغ(/|ë|OչȊ5䟖"=Loi?&p(u3OZ< j L XьfNx+?NQ/?)-k]:hpnu<-\ m0?(2qq)R;[zX8NAPrY:,ECc4ޒ}< fRFS6@ܼ|O(gu%'0+=1ȶCsd̻ܛ+Qno?61-A<ԹHm"lұ, &ʽkI/I<2 +pع(qR5*s X>E>pJf,݁~"[TC֊xِC9dGiVxFס-b^:r1m7-ae86U6h.@iPmixOAnk6Wە~B&w 7xP Ky[tvv}cN!K  MUrr*3!QQG/p$kr E)%8 |_PH +I$aopae 4;h׬婩b#?e{>(>C͵{`kBj[#5^㜸2 a`:,x΁1-# C$zeCK a´"m۹%Z Y{I=,hq]t5hS Kw 6&IOpً֮-ytm.G{MB}ُU >r~'>>CU}5QLTͪ󞖸oBwj){|iG&OFԈ*Zho/7qжɕsg6j=@"Q}%%zm*:x xSF)}y:3E D)iNKqWL]/$GU=Jd:2m0h0LfIa߃}TgJ%])>iK^2, 5-ƃѯ.kn95a{i]eQE6o%O\]EѓģأRo>tA0d1"LEbV 3A$]:1BPvM*Q` 6'n09)h&埖80}e?Y^tv8>HϾǸX eR҆rDm6*;`_+&>{(Y{yeEsAgHB3mjiJMy. QfcWGښhoJJbzKݰEqC_&/LwjJjbtrWY߲̣3xydC4ƌѕC5Q_d$1N4n.\2Oѻaz9[N/O |\5cFUf_hnϫtSge~n%kb/c3$𕡲 }$Y]>[D1@c>q`,Ҏ-Aֲ+Ii)؊{^:#_7`q0zkuT PmcPO'ˆ#Ɉ׍x+pw/΍TGsP:z^3})y50@ 5aAͻwCAsu U(> $E'5#0 FY-=WI v += jLҏԩMVEhD F׉f_ =JTwbRY 9YK.{LWBGo͂ӻ'hZ,QXlmZe͎cF*Aa|oD_8twQ/,4trG9L&nh'%^ Y{~wDxwkD kOl4DSo,EE 픤2#Q7/wKRK*(Aeʢt!_Hdl^; 6nEOJ.]') zȌ@tT̜4Ϣ $ +bG 7P}][XkۣgfHBN\>74?(%b)R/l9Q)޳VZy6WVJMu/kX]fFp~e??gqyZ{,I9q$E9lkj͊t*\ϔX|RaKȣ|VP3Du(%ϗj=TlYgjאmjʭquS[>X=\_DYh:E5V/z>]݀ӏ-ʋ ?aخbQ×!}}o1k,[(Uo++ŇƗM_9m1=% Ȃv YϾ۶b)Fa _a?`32*G:j5[ѣXWF䠀|Z#4J4Ƅ>;KbA!I8.2T{FvԼ @$-mrvD*S'2^oT"#aϔ[~ DþsgZ}[Dw8bI{& CDeow6k#q.Jof#ZRm0kabRQu$+rHqLU۟  qdBUYxo`JnIE4J iRsq \ S}.MAa3>o;l%,=[{|`flD-yHYrb9 3Z@ ~m mPs;2^L7N{Zvǐ́<}8_ol)14q8(9`_nUU 3!'YɲVt\,CEx̛4>)0H |&\bKPd0Ŕ1hÀڃh?b4g.8r4eI;B$^=|V}c g۽2wՅ! ֎*'H2 WsenԪN;$ ,&(p!jT"[2XZz@xog /gi;Vx}V> v' Ⱥ[YcLN^UNIk ~bpyY5ҘL-Mlu]67i#V`EZ_\`"xjV;lyI+[ }7uJ7f>=v<S5hwdϚG{MN:| {@uD@-bLrʬbqc$[q UTȴ'@_5,*l'S{lA ز>v) ka޸mz=jptsf&O x"ء P0eRg6L6}uU_^{Xo4^f_ꍵ]%q,qY/s|g_ۡ>mHٜZ}L3 /_U>"?Nv GrCD qwHQi2*[5Lzt'6ǂ4# " nL] {kWZ߯1;b#W#$T%ZY)~Jgֈ?(kWcӶw&$)BCh: 3 \YccDZ #}fh$Q|uZ\%;Z*6FOã`p:~6O!ƗD`&2.m]׸+ [n~+zR! 񯦕Ir=357T_}o}Yʞ`6!|̩T̃2d?)>?ҹ\ۣHY|\-1(#TօAo>.{NY|}aŨfY`'eA^gzvϙkhGkd*9<"e_߿ ⧳1pe f+x26?2 &Ժ-6@ <])}f}\4x^;]@t2_sa+>R{Q%Tx>Ew_,d95jvs)k$dWA]SN| WzM9ZZЧ+CkL%7i  €}:Ԩ*"riڡG]\K|2˟T'T#+Y+/nFG"wxf[MEQ'x A 2t{'w6l> K4`FdAz:k7df 0xr~d^:8#47 GʲM<HK#]c`AWs@fla(Y%;tA&8qކ9Vk|vry  %JMli3JW[z &GXZ"┊cv\Ctx$OZjTmP%$PeWWFH0eu@2._9.%IZ̫ԑs8i; .ȳN5g^bAaA칻Amlƻuf)(OlF{Ex+s4Mqn) UWv<kfXNxfdV{)=QI{/͔[\^}"V3-]orU df0x'{B 䒳`Vvە<&j( XGlGo m/˜~ jMԂ@" ϥm1z(o %b?iV5mx =PtKR a+GHV328)(K ÃjP,x:kx `ѽnšR gfDILĪ{11n y/=7XRD@ekOt׈3@tn'[pFr+ I`v@Ӓ[JI:Q9E<+a\X I #бo2L*7 {BZh3y&pQf"iWrg7eAd]X7"c:팣BG1 PqͥEZ՘|PwѤae{ɢGF֞ .yW@WMZ|U(5e<* ْLR UGaMhؚj+٢y?C3{yLE:sRqoibsCѿiwʙ(&=&{r+Pg? 3](2Q5y ҰvA+"c'wGC T/WW NN)Z Lǘ'Ndtk{-U[Ov dԛOI>Sx BkH'A4A>kxSnn<ӑDP9'Ђ-h)TGJ'S,H!6"Kr#BAr쾃b6 h"˨N߭|NQ7PᒮTy2.#?USW8a$zb/.1U~>R;\E ? U;T A@3#a;WY I1AJwCB`DX LU׏crЮtu dcD/D)NoQ~cT?G(ljP E,F-z\ ɵB8z LZB{8+ݎHYFh ر5F@COL`snz2|I{`Zgq'!7Mkqq|OɆC{ $(݀WH΢֣8uE}[6q(J`Wg)W2/`N23^>p =a&g&P]8,hh'K6i`^*xJ\W^5nw]һ066mE GOHj sBd-]UaNjc ǀ#uX֭uwk un0J*+K8-Uvz"Yݝf̀\ͲWmx|fkPtXzpmc/-ސ@HȈgN@d^Y^1[CެA [ `D/WfZ c*E,;yTiՂsb'NxYPSz\ک 뎼v2({FmK-$`QO8A3qab3\]v"KPma&/$_9GS8U򠾑pZ+)>`LLAV6ώH.X>G48ޕrr'diĠn=Dq vJrK,jګkq^bx{?@?S"N̬nv%mV;x3k蒔۔Wzhj sLPeؙ+-'W?>kʼn DDR3hҭƓ{<\!8Q}lA2)~B[93?lN3~)~$nU1kU*NlAk+!HjmlEeA&!*iKWϯZ2fQJ0D/@A:g׸ĝLJ;LcmmhK"GdVn:<M"iio;M,X;߲YaM?Cv߂b?f~,K%O˘.A|CGĻ~8,j 7\-?4{xUݢި*Aw.p]RBg:"_N2|$JrK%9 nDe+ (;V8UD+2<5F7 E>L6* 1KȲ42#AN"؀-h: /|vC]LZ0tQ۔юe@k'6PCӪ`~37:NԳIN#@/!{DlmI-FA lgC unio/KN$O4 Pi5 q3;` F6y q$r-:DJKNDsަY U矉~"ctti7%,B"o1(|A Rح|]ZRha3j7o2i{OLyoz1*p,J BKeRb~7xP 7uww:WF q9+ {tUz+0e:;v睽z^an YƗ&AI qRtvumHc()!H!܄~IlPu76tD˱XϨ5T߁̟:_fpLS:Šeow "]+'&C F"Z `Ǵ- @yx"#J|GUٗ#|ϏZ.@D>n kς{ׂ_ͱtqf4le:,7^R3r:˱YI~:l鍺Z kLjәa]m#(j[ǧ{w.=@;DEې%ָ!T..L«t?9HK Yw^`F,X,G~:Bk F_'L[1\Xw{84WنXq< o>_ ېV(:t=3ĝdFNj9V5UpkOṟhalyy1㤽U*%$`CG5%)]orw,ėɖ-ƨj!-9OV<Jyvi45*m Dou0D=2 ݄Ld+hm҈`ᅷ]Ppr$6o ОX⭚KJq]e cȰC"~ ʧ:@R>mi@W >Ic"74{Cgw6jXU/xԿK=<q2 H^XE'?hrЋ _e z@d A $aLh3OΘot0 ̜_i{WTVI&2(JiPYAʆb3G&+[bΔJ{"aL;%8S%#@ӻg4yQڬ :75{x^/&jGQ3az/ hUJtr]$v2.nJ3#jxuU3>FnQMn S*_Je9IMX${K9mT_㟊yj<`㤇r=G-&~KE⍈񰡓'nDȝ 4**{x/kV[hx p>NI$˕p 7 s u +~j|(C |n5Y0N.+r8hWy!ۍ3acjy3cT϶Ƣjd"(Qlq 9f-Il{p$Rs ;MA J̄݊$]c9ZE}uP61[SfgC;x~?nb(e *eUO7EJq4=l}{w8Q~{ DYI\4u0ƖlLQjFaKߪW!l0ٯД0|et)T,$8<^|:r:޴++Smv| #].jI1@9] ϻjaTDsZ\[%X hwX5u6R׈$M JR/7vDX.*qvxv̄86Snɴptb+|,/gTyc 4L9[y(\ 66wә82c|lnދ_嫮蛔2J+Căr\LXo^aV]]}+}hWu~=: 7ENsy 4q*G.(8t)sl sZV_DF+.\Bx$E%kVT&yS:)7$ܜ(m?U9j_̏uE )6e;Ӣ#cawN Xxժ޺jh`gx !-_b۰4hTMQ"Ur8pw;nJ #=_y4BxPCV8;Gh b)s6_uǙ5~C;|q.z/a "p)bf\r=huzL+:>AdZ7@=%ԅ㄁gҹ59&LWM'SX=S@6Q TeEs PWOAd!}r>tuRGOЀ2F*s3< Y ^uGLm/'2vC(.f `  5 !1`b$vSJ]UgZ2v0 Ɲ`rv/Èz|_nXs]cZˊ]AM3gvx-R/MMC bpWcaB9m6^|Ŝc=n;n tP؁uqֽN_ , =/_77}:TwB.Tz.̬ͮ9rE&0oºZqV4+CfeLߢdZ}qԷL?߯ h2[hq{HA (Z#kg<9\ԘR%XTQ6f̵b NX[+`'`>W&f( \qoy1v6ڷPwE;[ycPKK`N_TU+MvQZs1ߗˠgq  iO}k@@Z~Z}CT=AduAol; 5k]HA+ժVFaW0VBDQ4 A&)r>ŊW:xDF_twԅH'IPGA.7ry[O_U'݃߿O~?/Rk dK_IUb*)^Qn`FљP~*5G;v>`j(x YjܩxSөMb~#5E&!IuSAkz0jfڛ#dbgk*#6 gٌ1P 8{ߒ lpCca0=M!3P9ϲb,nAKs{,5,qyI~y\.6I<| )( ]T6BIVB˂0{Eտq!R<3v9b \h2d3ZA'JCW7[{[6XG>;sHJ,)Nj+$g#!Qί#^Ü'dު_O&R^w(8`AIn%{W3\c/:zfPp0r (tu6R@+'*C»%ZE՝O7g8C퐿\ "If&)'&4MtP4Ԣ5SG{X=t,^xQB3$O({3ݨ@U Y/eԂ8,3OPt$7`fJmh4` Y&61+/S~oaa1pÐC+ 叡fF-\ENx_ ;ݍeLn i; 4 qxS,X#N\ !ȶ?Vd/X aiVkf`|۱9u9Fdk~E>L9MB I,,#DܤT=k&hJN!۳* @0. <݆b+~5N;Uб$ KL)2΢@;.4r?[ !ΞM̉K}^)tSW_)>6\;kW9MJ#mn'B0t?LQ:Q~\XaRYߪ}a!z}ʍ/܃}u p;%y.IpMZ.\zeH3 F7Mս@vbG 憅G͎#&UaҤw6@=X]S&YL6+ D\*l4A sQ̩TرKd;@[0g}+b%XGRr=*+);o<2T)eL<Z=՞G"`h"V8+qQ04 \Wɢ̴BqɚھNwG`\ʼn# AMuVTvQQxb' ,~dxź@$i{[퐊GAP4氙9dBr֨Jt}sW K_t9X۲zH[Q(CvH լG(+v+s5qj m ];?Ud$4! zhr/iԖao^%9Xun"|j'> ̕mLQ 5:nT& }:tNs~WOs@<ؼr#7ԫ5'y^“{ n7}Cxb}م8駻|ٵZh "9jWnZU 8wl'C8it9Q"p]C=8qٌ_k"B#QMCf Ǒ"ZIko'ٍgK8C<Z;4p3Ĭ!-'NZuaQ/r9655M5\Gk\tCu 8C7גѺ:ٛ{ xi{,W8};둶DwQzM.;TEb P0o%'tG hÆ"eekh:]6x#DQY3y]8p8̉8դx<9^ 9U5mb[B4|=+ Q9=9IoP:"[U3d/IHV,-\}x*e2רJm>th,5;l hs3(] X)FKʪNtJ"*՚ GR&R0R*&'<\Ȓ/؏')[/~,.XY3{~Dsݏ%NW% #5EO,c.}])RS+K;zc{IR2_SxV~6}`'y0TTp yi#Y)."Hb@Η0}drֺ]tw aY4(B5D2b芼í $ iO ?_ jl9)ۊ(怪S}kTpiMIq~>P=4+Dw8]z!8Sv$+GIS>Di_Ajrϯ<$~1-,?kS?cVKK磶CkrrH#Θ !\FHW=?|}@<_1A8>v5ٲ54hG_ʎŸFw̜М4RgLIP$bm7̄_BUEnL*Rw\[,X z!zzj:9mE7gQ.ig,/5%y5*X~tB e7sGAaOO4XkOO YGvK뻊v!eׄ$7hs~Oa4wL_+%<҇<7DogAiQQbQ6 ZD<|n#qLu 7&+R .u뱉g6H_1׽:h?ɏ>BBچH<ʺvyJBO!Ω{Y˧#4)xd ݕ,ro1ǟ'\9qRX!)|d78Qji0Wi(m'ztԳvPv*f7z _ArcRPI~}/&79I?tQKD6^nuOI& lCLR֣z\RxD!cXdzHMw^# F1ӏL8B8ڹI{Zhy 4dQwi޶',j{!ԨSScp5ui歫d6l=RWX17\cZ>*x %xOhO{.MSFh>?g\ƈRܟ"+6V*|Ze,Vi\JVA'lƕ2PM2#qi($ЈsſY/1a]/5,M#s7J]- -/nEd]LsS+jʖo~N{9hn3ݤ`-_82c |Lx@W}"n#!al$3KwStP`$Mr jIpu9:fq 5?%C75On P$|. IWDv;eTTםj%.{;cN4 '%۲HdF:V4CN`x~u BvrTvtx3"dH ʙR5N*/ღv;οĚ _Ve'VCrP{BZ;H9k3XV]~B$j6ɚ_2tN@yEK9="8e.  ゙C&3[( Fw\u1aZي15~lNY4v'd2^-S)!t_jS^iXc1=! NԚ%R C?ES$'b`-aCo좧(8N~|\#~ |v T$XK3@Py<3K +LfϘgCvfnɦza xJhWh|6l%*Cb٢!GApb~ éQo}l#?m@)h︍BNyE]EDstP߮O VꪩV&ﰸX!b}lW2UEO;r0X,vݙHw>!mD'0|$74zŶQFM` ls޿Ӵ]e]9 0~!Bߥ&˾l_XV 7 Fu9 # Cb0>C6vp07[@+%X hdf(:!pԎS<MKQ aP;[-6u}7Ծ/3XgǞ&űxP* YprQ WmNr@`W `#|qU[Ml? 99!urDh gAz/-[C g튭@jRi\I S_{ M]B5_41څґҁ7%h֧4[`..xf޻Pql j%YT B7rv2to5ynd䴸EvEziqIj|_%#G4&)bqa]h 1}Ag&e4T:M&ﱃrKs߸MѮch׬ЀmEڢka>ʹ_­Cr%N}SA0qgy]n5Q(yҨFPkd}abq*0T㖃O\}OS?s񮫑7@·LD~eXDɐ{-cIE`'qnÐnLt*e?qwޘ7 HbӔI"@[|2qNH\4lHğXU)E:.0E7IEҺ#NfgM^L,^ "4*=Sl.]r(?2S0vҝv%DQM6J׶tz|fFgOcU%-5"һWy?vySي=̒XѠ{]C Ix^Qpb,|s&HҲ4;@ܽ(_Q>v蒶SE)sY!UPfO/`mj!+%t>.ԫK7 7|ܯa\¡ <*]w pU ~^,,Fg}k`o=ҙK1%?R`-2HcM1,PZ8D</)27"8RmQRhsO-m{;249G؁B \=aBEGیϖu 3u.|̶+Ѽ^\݉PzA?%=ap,f ru \9[n56DK}p> [FC`) ڰJcpX8!C ,IQ1̨(+F{L ƢDEa *5n\Ҡ#P&=E%Wc2O($ Jcz9Rex i?/P4#&&z1džFh:O)mb _{F u%)RCJY܊rQ#9}cDϒ"#?vecB8p*ԡ)ɸA65#G"[*xPv~,wEګn~UuusJ.,F ]/S jZQ/Ш*G`u {vm>lFI_=h~_rE+;nm3 `7vEŰ2l`$[e֢#.; $̏OhAgF0>v3>m u:2ena*u-Hi(nTX9(gZ76u_f#c#%m`*1QӀ0aUi"yO (;9ߔz ώ_ԊޭM2Bk'6v <uDEj9VX{秋ǥ˯sZ0y6꺳'=;~ oo}sRQCR<*fo5BŏV *W[@]y<EA;%-v{EMA}S߶EcSm8{nͧՇ[ ]E`quuR4OG}K+͖Q=LwT𓌻moxn,i'si2>˼N\>Ju}k+}R:'Y(c&)pP1x =4pOd/]9sB\*|\0tJ\]AIfF0q[+M^1mJJXK#Tnp>y<'ʫv{V{A1aw-I Ԩf//r!1#AQK GtZux|%GuH]E@%oOAδ`ĔckF:]QKGЧ}i&W*gNFBU]aaFwۯ/g6(B42BRNs?H\QJ @A;3gCW]8-{ h֠tQ9"K3pɋ6TCr Hi+l'%I]8)SMx޶hD%iFa`c ]=UqXsau-`xes1Ѐΰ9'e=k~|c U4BKp4Ws<`7wY#v}vܴLzRK1 lϱHUفkj_Q[#>wNwbV}0>DA1'YZs1'LL2}z:F5;{>] n$l(sv0b>nOt aE$DztO|)wxA"ov,%_ QOW N~k'G ct5^J@Aoh%9 OO_8/?}QqWdSJB_"9@e-_-/c^!Y/~ߠlnY_’ Y =lM0ũJ_Ĉ2KaUϔM65i rҵ[Y>?ގ7N_db<@o#??/0Ua1I+bg;cpeIk^-ti Ͱ <,,n!)8f8i078%ީ9=ݒ597'sbnNT?\iA3̝aS9NNu̵Su;QqAz,B;`QPu/:vrԜ Lę1Όxf',AyfkMxw; $ogm8X6WvA}QV:l~9faήpWr: ,5 vF%&8i7/ޱۚxT p^G.GC=g 6Wޚ0WxI'z7  ?PASj,q;2Ym愆d>IM3@\s#vA'NX; q-$sdFE\P9Ӑ˒ )`rK ,FլCY֨'I X9ψ<'(?Ie@gR~HۏSe?*YTyӵRog*sßFoS}wV '^ %p9sn#/[}!-󪶟Ʃ[alzOՉ}ttd 池♘?9G) !O꽐M $4}=G.=# q|W 85tE`K )Z\1v|e>>m)e\ MQWOSnQ":IQw;O%#Ixʐydx+E\n広UÊ$YX$u پ7.-He=Մ-C$lbp2x&G+n-lrDz*}MoI?,]z?q-T '3<:O|e?їEaq6To@5Va`@&EC5_)xHN@ \&09~ Geh*WM+bj$=3ش={Á9+l>Yl?We$'% G=UwMYHzSNZliI&><_,n&i٣ŭpx4>0 Vl$큆 v+ӚyO'<׋hk/ +_y^ie5 /%4ёk<ޚQX툀=KstCqh{Yt;N<`ftt#ܭKXYאpXmDuzv}ei0Cx" ] Tc4t޹˚ݦH^~>:P_R]wJPp@:x;QyAۨUS+ Z KIQsxЕQSl4$~ /Mi1:C Id3E_ŕ̂FLDc6%!?FQC1hKɅri9 t ЌEw>[)-e` c磍׼7 aMi"7ZB@fARTM_roBN ϗ\h T@I-O^+ŁF`jM[sCxȰFp<#ޏK@ Ǽemd,:-[/ 6xͼ p+DG>8S(C~^Lqn.z7 lA8g&C$i\nͲowC1Dǝn]+ўTKk6 Tx&#*jgPQ1v=.PI }dWdy+~7ֱgU!"So= |Fk̲N 5CnJrQ#ؤ10˜Z ݁Yf>fh,џ|))ΰގJ%X #H+HsrjSxfe 1vkumyq۪][UFk9%Y+]f,U1@-W0Avܚ[Cnwjp#p~"1_9a~gYBݶ>z(D*2 \a)1 iPMXϔEEzڽ _p}y$muh+:bځpœ¶BQCL:Vs2'6DB`fcxƧL_KDG*1-8"Gd;f2 G\Xh%`c`qt^>X?҄6g[^b /c҂z ަod1u3V_7zB)a Vgi6@Pe8ՌÍ3eҠz4Ϣ(u6ΐl'[~']?ڝmcRaAb QsJD풤cX Nև-7Se@@#x 7UJ,a1V$ nT'QV ;|9ǧZplL{':gd<8tA:{HzodmM](m'|TLoR? ЧAX<օ~{Zͦ}ѱч*j `J`3Ud,Sl A;8aի_B>d^͆6 Ҟ ?&p/'*#}ы_'2'Q0_]vg\B 9 !@ŧvۙ7nI㔌t)T470P=:L'SWnٷZ hXvnE&Y|¼d23O6s;%Xf?>SDžjq{1|I,xES$N\RO=C1Lp゗ltS/}_D 2О_ lOyuHU"&MEW8QE }3yg’C'"B, GL6"r6!}<\5*fOEмhcǘ߼ђY,=6(xQ<.C-:\SM1I7em o*+cYixZ "p?1v*Y6u"OC <@O ;k5T_~ -UdF|ϳG7=ƻ3ARuX4 -jEntme@36JB'PVsa"{yT1͵6+Az!9zxL" %?~k䁁֏xq+uԽXKzH,"X9oOP%g* hO; #^NnK|iju*wnc0]l!`L@9qOaXn#6`ԍi WW90-n(eلT]A٫t~s_QaF([zc_`L⍬Ћ3h T s&%g+ ?Sh?7._64ڇND[ccYc6zQ@~n79Mpb]np NG^I@gLI{)uF?NW iSL=&Sn0c겣C,r7:x*C_njEj9DƼj>_XIz ўzzo1à7}li8@kg  Ϋg[GcaβWA {:$ձe_OC;=1e@*;tm!?N`E?y$Z㮍iѩ}.=fc?0C#Ŋ/ ^-uF7=Cjx*&|+EBSFJJJc˴[iv4 +\"1KÞgjT:tϩ7@wv\s/7]^M͟vٯp-a$+B/Mduo+P>BP s(7֫T.qÆg8g*DRI_,E=iV*([L:inL+D}UP62qqO=23ݱj倰nQrEOdgg%H#M8]͘&N3VkBMqkAf4y+j[82~,BX^#v[uO D-`ʁ 딎k0`f'OVKF n</b?XbF?Ax{&ڃl2djXy4TZJdSgg[MsN~дp5E"hqw:/)~mu h{ 1NbCpVP*Vmʼn `4&LֵMǸz%ܴ/1~ fN P_;[d!&&9'+ORߩ,hGSr Ƥߺ` PAmtdr6RA$T{zﯓZAjħR23UBGtIҡUNi+}A~{i\:3 S xXZ1iXQ+mkfWPS8K#GHDz:-`94'*տk~*v[Pλk-6R5'z\tbW䷇B׌Ű(D} D՟K|G<˩DTK\?vO5/xG`=;vv{چd U+ 6ĉ2iq"vS_ 1o3B xI  =p!" Pv>!-²CqO0(*[vBğְ eZ,?g+ ~fJvT:hmչ`9y0NHG/k@G΀,uc1iF/Bg5=2xmBX{̖E?FZf^#oݸ Ӳ!9RΪD!Wpc0L_Rw⯖'}SfJ&AIWj gVm?î])E &AD\esǢAjz 5sKCfFel/%H۔st)͛]MK+OZVH`Vg[9}PH@Mܫsj0h8}`Gn_NTڰ췐87' h>9\>px/)h0~J{\ hM\!yXL}]^@2 ~~g(ғs^A2?c'OZrΫGyc9`0nA Ivs2#|X[> X#Czh+nk1!>anχH'DcxwHTH5uV\}n8Z鱣)c?ƇC5{FN u*6 ͐(M.H?'?bϰ+z4$˙ Dז_П%U܌e3  )V:-ύ>ǻA>e>9ﰷikdzOFy[`?!(mO8!ܳ-RiC9ok)w; q p':?^%y R:О"0X]r.{r1YKhG9H34^ rVbG@[Lw[M%¨#hNTb>.(cL%\V sXqYwVQdW}*Q`[`l5TF(l}8d>[w~p0y>dVϺٟgBs8{CK0_{b\䆫 J犫K &=n/>]j37C|$|TSQgJ|c2o RYRyIv x!XbR) .0.)<1bd&HL5pio?/2glS=>́]͌ NPvRKݽm4ET<p?FQӧp`qo0L_N;Vk,ck2t_-Gxc/#yOZq9a6}k&4ٴ!wD0ZFv ELp~gQ^Gf촵aDų+0&ÐIsi=V9@s8U:YJ}Czh{"7m Y0nTJ$#=i@{q p~$aY(] F˲?Nd2lD%T(bE\zֵ_ۮl!.w_q|ugn=G0j=;,3FO $=YˮH@W] FF1٦HG {kN IvrN|*t-}QkTt4 yT|">:Bŝ0=BCwK_2o)& kV;לi0U+;}ZaM@`eIC]aRSZ8ICR*Mlͻṃ(j D+{Hgf+)θhG@i#h ܅Y ]\%iCX?/Zi'=*%vo;uB!)>Q)@H}zg OێbٟYXĖ2R3r۩;T9.ܿ$G. Oa3R}~,fPI#V%uQkV2)P.m@&F2k[;Nd.DYS~r.X2Q#NKqJ~ јG7ӱiFOH4SkwJKh",Fo_Y < JClHج* &,ƮEiR Gf\LIy0%L8  CiTSlVVk/+Fv bٍ,چR>@?x6j;>/ֈ {]`K {Y ,x}t@ú9Y\Nk΁N{=Gvm57/4aNXc긟 `ɵrf# K pdg F5(1Ǭg<T[-^9"&gG^{.K/T⶗z&V!y5ClPp>-9EsJ"ڢH|?yXMj7a%Fٓ\c(;M4 Vk2 3G0.WNqaۤDTY7֡A|]~s9n>M5}Ə#Q?6qs≵u,S;pzn6- LuD[B02{MuOHFk؈eSU6/+>3i!dQ"-0,47Mޙ@)C5nEC3cжn*Z1/TJvE(޿T#xe?Xg$(oAxXY!o-C'#RYdeľLNNPR(pJEij^r/<~fXV#tb `@Gsߨ?zf?mGNhnx-] 3(g^AÈ_S0)V \l&Sa`Zlej.(O. Yi4c_#ʉ0_FК~D%K[ymuU&'&= +I`~" )C2#vʤbR{?* DϲsE%A"^@@oqNT%ʌ f$O.w뭳`$oIiCH @̑tG^k1oS Y$O:01e}t xQrc$PMIvW3Džg׬ 澵Hxʡ3]Ӌ 1Hls$Iٮ ee#C ?d".^PG;'Vg<ѶQ/ Pr (cg;M3DIu>`L "΍/I\9'6 1ޢJP@kvevdaI''D5.ΤUڜiu/qVeSW*!7۬S,yR{~hV'KӘ&~6~ Yqp]XOFPX/Vb~"NGۯN/<#ƴ&l>WV}_vHw`N sZjibr ;ޫ]$;_hKJ9|G?Ez'.˞N-!gbzT lݺ!QUTa ؋0A*ޫ  -3$f8\ٸ\6Y־VQuC£l(D&_-$%q*u$;7&ؗ|0;"\fI!ŕ&hC524I ~i+S[A%Ȼlu2Z MXݡaͨ$#_X"Dg5`h6y͋ v!4tZ[E'a7HfBXZV|t Yӿ? >yG}!r7I2GbUE3<|n(*Pɠx6aT-&tE}.<˩ƍqE?E(URPKW5GĈZnjʼ>/É 9Lpj6:ŁR=|12R{\dAxO,)$9&WD=s"nw&% t DiW(e*5+"D3a (om@0ZP˴(8a15<`R66mi +s3O8K#Wj3dTr=1(M,xfnx:6>u-_;bu[f|Ȋ JMǗ3^dUnJ/p[_>d*%cیkg=WNj>YQf:e w/0*%!Z/~O et19.jۘ4{$#:)Zik߿VUIp\-)) UuzJ+툉 ?q-grϼY^dZsg);f3 vփWPIH4ۃ}w н{lG2%"YD/?M<N f1cLo%e G "rz^L <\z;:6loPXQ?g3S.r N͍2)s8\XYA쒢#S5);Na.B&P/\b7{)Xq._тXa44]N/nqYԶW{_9nO1]'3] FyRb`D-!w8wf_*iHT>-10AF Q+ wB4 Z*" [CXw[rڶvJfb.8Vk.+iV5yNwQğ1s>Xb#G3zo2VHP{E5dNC `uZ馂 gxRʶwo]KR!^yvTq5ȁC,b)"mGB=@&G?b3M-Cx_0{~(t } 䊈H^/5z#_6=uwn(_- D |o oIUPl 'P?ZyuR-ړ [~s5UQTjAm0:;9LyvX F#x*u3`رQw}eu1Oe.?1='+4wJE9^FE; Vւn[=dgve}%:F .aHЊ=S6dÇ+2>L3b3;}gTGC<ҿ&LԽV\`WqA @(C\5c`焫ɋMw"\OؼͳtFDmDyQv$(W >T7JF029E08o7] 4.f`S#;ñ9vTÌ] 4m0z*g/(0ՙs/w\T=a\fG$O Db򉱯_L c YQB)r`ٿPLR+S^Ȅ5s/~Q+8 DwurL Lԙ'|Ee hyގ.LzSyf茰HKIg=膫wi/Zspeʤ&=K_^E!VRZ([fh}?ils~''>23Kj:sFD]?fGM+Tme;PtW0wI~ALMW=jF O+xLE$KXDJ21)2]._GZ{}أ7^NoB 7JӪrL6Hh2%"ѳWQ!R0d XN܁w\9.4`LqAp/|soV"p̢E8Gβ5HU+=#}Uͱm3Sp8]z?i| o:<}і^yc1oE${{ȱ ?/$Sso305>5OGg@ gKqǡ{?[hp{t,\յ6W|,*;]a%|:YPUe,TtI0K|5xhUw/g㧳$$ǂ^JxV-mW Gcmm!cBL= ڐ ģ 8O@ ppv+Էmw 6[r L{s5 'NrS .&~3/˫m'˛oP?+iJ2䵱y(2|uҧnvv&dWi؂|D#MS#9QxsD;fHڊ hg)gPz#ZĈޜE!nذ7qT;IWi ,Z;#tЪ;$o=~m{42L`˫ ώCJ%1~3Ӯ6ґY6)D GeD.9>:2HGⵚsO^j>&!(U^K`{-e3[ Jٳ)Nvx~ bN(t;? ߕFG{pYCcbAd4𤾳{^Ȼ"~> r5#;+@x ևf-8ޛGgK$oֆCJSroD?"终Au}j!zjPLV\';7HlEqW\WȠ83RL%'/Wo\ $<݊2?Z'.g, s}}]dW:$jQ{!xm&gqFHoB‡ U5`jx=cyvxƾ*ruVf8+<{ oT ʓӒdTnGsw=wQh#wM7t$;Mv9MKQ+-Uĝs,Z*ѵXR'E%Éݫ<:wRDbY);|Е ѐ=u 3P &;4M^}w1*p#F Gw.C o؍i)d*!Bn`5P/OMLe=+G};rK 9T9&ޔϻ*TNӆ=͗^na 'Rѐ h9gj>vwϹ_. MWfs۸-GMTg[7%+$z޲Kr躨R..U_36_(K|aۡ߹X)Ý'$ Yܩ1'7ݨQyx&3O܈# @j`4cڰ\H # ױWw'"bGeXl vZ37"=53'ۯ`qS@53o٘M]˲I\Ns:\%Bhe/<,@ϼ-5&`͍,um6+Mr&̑@J,%r 2"`z媆^-dZ^j⢏t=Dp`C5Nt j7I3|&EŸy ?5`o D9LK\*'C&v4iΊ\G4@!nU͘2[gԜ_SҁsY4" Mx{Qh\ߒKm0&kd'T Nj% EtC ub\BkzAQ?fo%z+Q8~[y:^KA2 _`j 70[/dՂ0م?_8іF&$nU;-`l,; x]^jiƘG0BY 1ec+P}\o`^ ś~3ؚPLnTpC)fbWZyzQ w9_mM1jLٜgȇReP>慨Yw&і'^Dވ'Eʔ]-P߀dƬ9'sC!՗TpTx#OpmPg&b~., #K8Q HX㼬.rZw'Ef'CL!Ĺ"a@]dKLv!b0`p%4\ r2ؘI#dž昸p.@)3ܘ#gu&M5'2`*iVe1;s\ctö :O;4w[pI*xSN4!Ú\uu b HQkF%AZ1E"Ki E} C/6K(#@N Rj]"ca5:dn;8+ GCh6\slFF-YOm1Nɒ\Ty0mx= f]]>;P|ZUU]hUG)[6Z337/kvp+NV}j {Q7wU}N~D 4%6fZ0Nȧ߼ZꖴZT:rӘ>"R)NxQy ?C`+φd \vU:^rփ3 ۜab>3٩?+SңB.=8f]<ucrT).l=^剛MJ]tIFeB0go3m! NЕX‹Ks:ۮ!~DI\Y4|:X;UJ æā3YսU"MAkPItV?hGq`c%SxeVoG<#I#I SlN7W,_69vp'e:jڝe "s)tMvL#ˁmzKrD&PDsId@Uӧ'aK8њY}8 \J\w IٍHO#eNڬXhn|ōl4G韄S]g.#c[X>7\7 [r@ Vz&Y#8&";FAٜT݄`$GiCfʚ\&sDBDO֥na][δ\لIc :o '^КhL3yiv2?]8-ЩiM̀&1+<`Gf^$VA7Mn{mFm1d;0Sge"')RRila{T_2HfDZ2 o^$ƽy%07x.XB a6g{3 6_q^=]3O^]~XtǪ68 <&ixS+fE8lA4BNC nRGV ܳM3jSpcIOzmVj\> ?EAN9$bwǐhS2zskt83,aT.w2ڢ +)'q OyE#5h٢Yu-IRtϕ,7~MNg\AbZHweW4P` l7rի$WnK]bq .CQ(ŜB~P~v*/R¹#|U>@ͫc^?CHcmրy׃e{hP4 1%v YNbiqi|v5y uE~fJKE$ҕvA[ Բ<0nOcw;-ռs <΀祼r9;rq_Ry0-G׍Uh:O*ZHQg%UnF9KXsƹ'BDGg)abSAuH]-2T PzÓx99_ "Lр )#Ue3  jވغ’]g_)"?bEijFJ30xb}Cg!vНVxAi襋sM#1Nzj LaY a_IFsW&KaSpWќ[b]xFnLV_SxȔgT2.*4j %Z\\J+E䒄f rZh*FSTZoNɬ@8[j8;閭g7S<+c UTu ! A9S+ #͐YRi b9F,wl5kSHrV&L6[ Ϳg+.]LKi%$ MEcQ}ȺjqTޕ*glϹ}"<1RVWH3#ʘf@۱1, !P>]O9TW>%}xW':./(?l+ G?W.Cq?P h wSߥZ55WWUyO5yu`c |q0@ LR&og5py` k8HL}} 8~V^*!d !lXqw{;gZS䎼ÂO=m^<^PqL0߹9cTZƩ'VCgӖ{cmu +Zx?bNzvuSEg"Ȩ!tI(9RGf?>vm]dpӕh}8 ЊW9&.H]0&N ]euJ#UXn|j_N=$9/9u3c *7/!$+?j-n'}A.G }NI]2~IuCpvӲ-GQ݀yf#/!-d5u˽xYQZ[ 'Cl@OC%IzGV>\uՂGH=g!4@1yMYJaisY(0+?6d;My&++/-!r]^V,ΛAɵ9]SXDݓ'L"N5¥{WGt~̧ J-ұ:ᘆ*o 6N3)ŋwϓkp"3*T*Z^-Oz50wFyt Viiئ{ GX:Bh3[eg իQ b {~ f2bb$aXxJ ŏw*2/ 2B}&9^G=ɜŜs>6,5M)KBwn1h T7Bpa퍩s^,!|YT'JK>p^^,x\J\RDb8xLtGop[=gm Eد3g9966L>|Z/?8t@x=}W<Ը0w,>{&E[6u-pQ\9J t]8|g~iO:UYafaTzZ0eAc'6l{g:E1̻hqnC}0(4Z'.o#o$AH>_mm`)hgM"0kNו@cTEkk .CӧΒ6#)MޕAS L[$nz>NBt<ȯU`˙Gv` 2 "+]Y\⒄3;Y qODo =N$Nh{JKN3X./.<^ړgưvT_Fu4>+)f1湎:Vʙq#6:FZJ"UOg]toHoՁ pP,"JdRvV;Ɏ*tdςQV7Xo utDo߀.c KZJtĿ ɺBT1Y`JhW{ٵ.<, sUe͓Us -_.Ơ IbQ`l@`t.",` .*kd!~cSH F(2ŐD8w/²dƷh䖧y`Ԩm…U~?+>-}pQN X}Sՙ\ٓGx3Y0R lIǘOjZ~`dڎ?'A7!Pџ/Ekv.j\Ww&.8!/Ğ"6z,u-KOS T8aDіVJyLN?~cd;*8DpKүд-}!yٳ [X'_)>5u:h8Uh_WbTZʔ~,zN/Ji)awQ;;UgC&#abN~B5Xf1^7i:z̛ GF| xāLfOnN %aBHU*%bBqmo~6vpJp8MX[K~TQՉXk"WivzsT~+C-VJjR?fKD[b؜MC"MyI̱Vt)Ǐs4C qތO.zG_ӹmA}gKTkC'.f^Ǻ/zl@7б**mcE5}+[cbteG{ëCsdT"]itg]FQMk'|;}TÜ${8` jEOOɯ`&BH=+K +)8zh !O$p}ilFY?dD=&<,* /I§ոpfKmʐ[7P3 y~D{@k&82 *Ig 8aLf)eA*7ߴlqՠF(˨FRJD^vh4?mYOr!ME}q6y G\@cm]4` ,8)K.6eٍ0SMkSB@%qMU}bwa4}&f> 4ѦfϘ# ͞  5=C`U3A)|z~NoJ ?z]CqQ/Ǽyo ,Q֛o)ƙm].4Cd)2RNgbd)Ī 7&6j|{+(P^KN1]z.HC-FV#~.&o w B٤ f(*EiݷI)o)ijRX:x{<iܳ$$B˜Fux ZkC7JKy4:(~TlD[} nf,B՗]MC&\gRuQwj M!C @5Hb \0KPeR]U!yedvMܺCL&7aO?v]wl:KTl/gV:N:9Ƭ"ox#L`p*h%5?2c366.׊Gm[ ZTm(]:;30GC3w6s$g!EÎ KS@\R['ˑ9.rJ8#^rϺ"(68㹺Es)zC _>< e Q7X̡Tgv!͛sϦOF̰/t%1A6[P0Y+3+'zL#[.ċו:gl[:뼒/79A!voCВeaAFi-6 % Eݷ*(E3GFEq'Rè :gFnl3e2X3d-h p"ivORE!SNPRk2$~ṗ垌&QRڸ`s' W35xZN@=h(-]Y:9$I9Ϙl|r úbfLb7C(IGuCj1eΘ zAi#~fnį\#JKKJB%.}學8s<`_f 58tﰅQГ`}ؙ( mAO0WpB9^4!h)K16gDF )~Gu}iM XiUay7UBS}RL5V/ޭw@yOVBJpsDqk.:O{Ҹ?nvXqz#sj>_5Kq96kl`Y~X]fxG7yUvi|6@q1!NJ{ }!|/6zEI\BI-fN@0v+!z^ `8EN2~IJoFMu=Ԥ,R ,8&2.zJ|) 2F'&?h)IĞtoG7wgaNiONѪ0wabuPdu]^%ǖwhZrP赩_qlC<8QXsE<#:H&mDiʅseyk-vгUګLܐMY7E2Ct;Si)y֝c߱fARlahK \Syc'~\ N\q9]ƾ_X.d\Z];~6ta]0yPzMb,݄^Cps/ ݗ27M٧aLUQ2.=ߩ$ cb&QV4\3VY61 XDlK "n9iF\1Ԑ^}yTvMj_-+rj84,7KVSk{%ЮGbC\׃*[U]tNx1J3srk9n] ̾x5P'DZXO 4NOgf7 WRSѣ.6F7M(Bq  ^2Xfr gC `C*Eoj5G0r]_<.}j,DzNN z1 ZO4nN f6e]љZt?cQkHZ O9WO=7'SjEXrp?!oі&4N}bpR"׭%0Y! 2j4Gmyrޗ> C<ء {jXѷ"=I>ܷ(EPA%Zaܖ"kٶ<0<xi7X}ׇ{/ubV2λHAkq"!9\TS3:h;UK/nKj\eX[ndq0GעN@@iGS?ɡ^u֩#]鏥\ $5҃90Ӊag/ptsU n5?@8T~9aJz0z0% |*$b%={o2m\1P #(k#J.9Dc%͡!{^:,|r`%~ygg2AR79JV g,D|P&S VJW>O} ^GmL؋2$!rU: * ۓ)]*Kv |@xeg$oMN6m8cXUeŲ!5CON"aSZ!%hME+?_Z"`MqG:Fc$5 QiƯ˻YA&y LRAJu7mWܱmg<]A ?wHC8~ӧrsI7?mPu[KeB!q˂%^\h+uVvW"hАbjk",ಹ1JB8a/q},T.O jjS%Ԧ N1OM`X ."+1.}B9сLS/P9O1nkߏy| %/nwawڲj _{[T_ItJbwdߌ.!&5ah:˥?D-H5HYiSW:SX%H l%rKQ$1=D,WfeI%H^ȍg^u#=';])7ʸ)/PKYCޡ:_&'T"F_Gj읇>՝IǭQ#6`6+-z@]k/ 1.*FbT:]ZXrR< C.Tm,lF&:= yZt}zXQip_C#E5I2!D+U?ӽ!oˆoaBL9^J7,3S5 xyc}݊hQ<S> Q>M L^!72R8ElcAA:=AYtu&:uV 1T\@(YLJyPujcz;6殹}jMzvt9='ћ6˫ykVֈ `IwTm) f|?;YYWkނ*K hz3Nu Ts_cۘq'N_DCz`/.'wʥ⿑慦E9^BU`)@DKw`'F.t$ ?oa|=+d1Ol 9{* ܋mÄU]pYNd.6-y^+WoW\CF&$\W'ɑscRC\z借pW3b8 *FӽJE+MH-oUXݸoeHW,Aqo 7GWoDXb{Jߌ,Qxqi=OݝAIⓑR;;xq5%"0u]:`ichV tn&F$.s@Na)~]w]󩱖yvү}+֒Xyb8E3AHZ0VqGW{oP4)<#+xhN(I!R(4 -:8>xn.+zÌGzI/ !V?DZ56=+jF0WxGT:p1dRwCa^(SƎ(rK*vx'.wG7t$EM_ӥ7w%;ˆih `yBv-fX J3d`A, gŠ_'SJv >$I|9fM--b2߉~k7D| '.U==3Aa!+;UhV !jk ÚWY<aD_U^El[ kY,L`me-+kg])J*ɳ (0>ӡv̀剰^PVyZ@pg\ `kA4YOY59X˕ml=")cpK{4SJPq]҆BN+ h$ӳ":9ڵ:G[7O5KQh(Æk pO=μY!dI_w}4z?fq3`~m,E_CDN ăqX/({"\#˫/U Fv N ڤcX.@ P PZ Xg)ZF O<(?zdgaa=R:3AKt9o hΩD S14+՝ș5('l=]Q)>š‰Q$Ĉ sHhISҋez=Sȭ?"E<'Qw\TC lZ6S\]Mq]GN^Zp?[V*x @^ ?F ķ)7?2{g/FctvyxK{V WUVFkCx/a0IGi?=gkEkψ`==;׺Pf*n'v{D TAn yt /9$F`T{wrl3`ms H$DO>:kKfo# Jd1zqp)~* ~''_zb2V lj!_.Dř# 8?3=j6IJ4%׎IPBaSOb*]oJM~_߅xXJ-ۭ~՘Mys^QwXҟI]mŠBOZt.-`Ivs-Jh)=?pJ&= ]{X)/p]'Bb WK%k/GRZILnu*vc'wWIU7[ƫo@ګ7 \:Pdp0na4ldkEM~}zdT!5rlE_QR ' $|ͼNZAaC" -JJk@Vn=5Ke:=.HHRGN:|'K,/r}WKA8$8wDd}OstF 6ŒЦz482;^kRoݾg^^6IQZ<:xljZ7A ;TjޙH#kZ{ nZHIBx;౩2cxf̔ι Fb7]4AhSs!H`%V 0;xWĮ[qQ2hNu77uRm}T*x9Z%#l'CvO'Urs? {Q͒ǰ %Oi ODgj0y6{ s~s'uX yn:+f'79ys~a]jL̴:Єqa{oiEcïfs3 ,ꬆv\Wp?O(3{3.O:f_$HEɃa-/nSENՊ7A}EE֟ДDgz.2 ͵w[QZ`g1;$j./_I(6wxBlG+ ",.9$YSCeNJB#G ꧃b7 D6Z 띵n2voǁSسTP,M״$cVxw!_'5^l䷲!z}4K][Ns:2wu1?*Mr` $& OG}Z3Ew|) Ķ/~ks1CcYյ9|$ws`6u@g͕;9Q03YXPA*_VN,5X,] W' gt:Do1s1nyړ갉wQVQ"BV2\=|#hhs(ϱ VQT rA/@k. whq{vlH3lDGrk5wY3a'եˆYb]uO:wޤUkL,[iƭSRx ?!{}s ֶcRGΪ_4eK{Ԑtח\a`LuPw jɣ3l"\$,ө"Fi3Lav+RଋXYVuA4D iȫM|4q ,-x>X߿#J@nq[OVO7W8|36=}W " KZ*fI¦{f Rq.5q&G42W\T:\u|:t&.\<,2:ik|Ξ-Fe"9:?D9 A%k2P#wJxϓho kх_LgkpR,}&INBRn6l,wR赑a\M-?%-E!7 Qş(ٕHFYh+p2{3FrNd2nYiA]R)jVk{.wk2xc8$$BQ\ K/e5s5@ة x<A9j& TZ0ZK?WeA2ʭ4o9xS#OruOR\j0xs aOS]?MM?ˌ)$PxC)x16C(EKOO*LʾMJۭ̒jOG\ vh$)h'f&n*[m0$ٯ A73ߞ'?~kFX֒8/j+V5.FCW9{8 EPdL=t1YCUhAh(~L{WPzkP.:(>zW Nb'oiVY{eޏsBZ}sE',ސLJJTM..zK֢2fzt ǴG wCǬj{ \ kBDs.=#4ADkKF[ 5OO-TJl!6úٮ Fk:e=o _ZO#:vT*,T'7K@`Ѕ\^ b#w}g׮7_W%|ӱfJ 'h7Ux%B AE\h,S8+1LSԭjjׄ=1H P+*Iۭ׋?GR, Htn:1_#x."W BMXWĜTi3no1:N {v9t̀f> *!I ۾2`;+d'ljuj+j[ vS[E@z:¬[ OHXwiR|Jx<0):Q?n@mmO#-TKcbzpG6fw#dPv؀1C[E )>Y^iu_(rnuPOHyu֌8+ JB9p@nJb 4ͱ,^)#PzG:#i跦j]wre+d(*`ʈ:@;[J2n=Ǥ-kpKAuI 9w`M8X92 K?! ݈u;p 0‰j2bvhb`ʗxtφٵbMpbm[oNU^w{ڨGTEZ65+5L62wl2R];aL 6+'tɾ[s_,T5e^)n[@8D_U7յrĞ7.1 Vu$=km29o 0` ϫU( ϗ3Z'LaI(}e":d |w;r諎.a/ Ve r~39MOŸ/uZ (d\LCnwfT3Z85!$YAvK U%gKvͻ o#: mn^ϑ5lmБ!Cp^N]~D|a=2jZd}~ikC٤'Tj3M^ mR8,^ XXlϟ\oI-UDܴZJu c{Sִ nP-SY*m+fBen+2Vټ=|sɳ.ϐ`]c.5ąQ!bl1j$A\spf슀6rvk3ʜ.N_@ehoPWʂ\D:m<e+<K[- Vב ?38FS61R1z0v$RH֦H'08Àçh}{FCA["@yAjIƉA [RQ3n&'h+ HwN93QN&5q²(O3_ Oq\J8!DNӖW޳%˯a(Mɥ!jM"Io5΃a&}jqVcx+L68h^]9pF䴆r V|Eiɼf:+/ {K9Z3,ڴao s{[*K|^*Qbu)l^ylw±60^aF$)|C; jq[oG'Cҽ&f6a^{De$ǁ(TmOYN`YmѸla. &q)< d!.iJhI6v #; љUk1w\߮2 36W+U+Yד1{ OJrW)owi܋F HtcԚQӭFUb4jDZ qY"NI~XwQJPq[k]'r;]7 OmXst?ڞd$%rq{ަȽKLhc9A@6 5p ᾨ D,ҮR 2fN@1y̩c9Q /k˓!M)j 37*L, 6 ÷><_|$]1 @/VYk5z4qch$o#V$qPua^#q<,wZG^12ﮨT _tbAÿr*mO/SD Lo- x?.@9u:4FqDeHfQƗ;R+Ә, N9J<vHs@3TU0zFTy 'ȔY(l+f!x'mBݖ{ev8 L D8+Β>DLڏؕ ֒ӢNKQ`d_9|/rK[6F2 bެJ\sz}O sZ6L}w>aYN$Éx)f, T9+=Z@;N]RiR>h*@Y0}uK1. JA\qOp~ȧ5SX=H%M.`TX$O r `P" 5{QCI0~E7[- EbSx33WWaju NY[^oּvgAAP-ހX[qVW?+(/4+&ҋ4BSwlSx\J i3dfQ!uH;+Huuq0\ F"mv'<0Oof#8%!yvM>׾`>>fgNҍ/hQMsgcb}]j;Y+d^oBH, %qAG}{<=l+K.0\"WnXد}6p[SDD]OON\qa#ˆ2 Ѫ`|ŗR+:w\@d-ۋ%%=$3*_n892'k>3l, >'l$mOǶSE;N'I4`y]e\J7o>u;ƚwM6>\OƧ0#2K,FJC2iiTwE%+`;lg)X:K:Tˊڤ3P;\.2*rʮ=f RSG 2`o.>b܋]԰;%T]$e*i }R J:8|Ƀ l"Q1=f"BօKҴDÆy Hn L{g)FwoLLSf7tS?iC?0^Wl^k.]y72pd!<Y0]OшFo^1D"2SS`I{Eؤ4'=6֌BC2[4O26COMlʎ.e,n1+]"r/!驹qa7!(Ұ_w2W Dr;`e *u꽟9]+\隟4t^%O [z4/ЭL)̄ fmJQ/2'w=Bw qi *ԾɓV|+G:ݨO0& g6)\Q v5e+Cl>+!l5vi,;455nids)d"TGb`|\!Ԣ)֒#"sUkvDvP=@E/l.8 V#o QH-ZmLU+~-EZ0+0R<^. ya{.Wڲ/Z09ϔ,~nOOZ!EN.'`ЈZnx,j&:V ֝$q  J8ͶEHsXBLl.wBg*_9 ry쓉||JЕ+j 9DEx.O_9{{DMz/w[/Agfto޵jec/;qѵX q$~i:\?SXG(g _>ݖC6mhMiS(bmnwL[4[(B(Wz{σYmJ&c0wZ%7jF`K6L6 1NG)țE⑨8\ilD`&`ꖎNL%xX|xfؚܤaV1B シ<=}N_<]FԓjPn8-r.]K@fCVdTJAT*<$z'b28I޵1u>yw4@it~dNb@=&LWU7!{EuTn:6} 6~x\8lo"yvIbr@m}jD VClյpt;f;Qxӹչ#.Euy=d7"j ȐA7v&{Wvb;?09Ro" o:{ m߼귩4}:Gg)@{Ȅ'9rf=ފ%(B/:*ZC?t3;S7>(J[ ̅6;aVL0 X7C`xyI

cpcM6A\'PU[%KM2˿!((ME@:lO}4p68x2`57kM~>kpxwV}$Q'i>&0~2**e>~YG!۷H9׉r~`B ϱEU08[Zf: jEq=B tt*#Ժj<}RBeZMr LFprM4f+0eSa'5XۉH@@ga7'!,ij&)*&550`"t/{.z'qCsitwB &^|7)浍nii8Zʪ3˦T?.xzi3}saj4TUU=Sd[ |y(!Ή,FhklWU0ݱ' BfR噚w,7Xۢ#d"AjY kj ިkqqzD6|D<ۨu[B o $kjYL0KY̬e/ۨ3$a+@V"Tq.ޓ} Y| X\-DMBkirRFݕm?`۬/q"E!\`čT1Z"QzJLLI Yۧ&oj @ 4j}'8 hoO/{RsXhO%_p`\F} mBU V +N}:!]͉iY1Tjh s@CRpü2!~vc-SU1L?K%JƝ0'}R44%3z ǂy<:7pUm6와ǜ9a%:M`pViT+}m}h 10eFgdI_xok0y%E43#gRny^CapΆ P"³Γ*& ,ǤǪ\MDWk0P+^gFA/yD$VtŲE/DL3\MU7^nR_9x@v&lݴ"#/6[{"V: B94j@*!5 )rx+n2sPB_E)jpŢ'_Ù!3zW ;BYuW9!x'މD}8Z&!d^o6~u y>Dm9[[ݩe7fu+o{Ap0-rXbZ wH9%*;p )&"]1q;oE6<ɶYCS=2qDE r/hЀĞ&/ SF!iN p 3=1SSE59!_ϘD#ɞcM`*S7:N~־QYb]ͩ;p)aU(1^L&"\4*i7M9Z;eb"B8 `#tZrA.*u#z#!@G l C|K9:Fy0tzfY,cA*1fx+<՜*aQaq0A/Sse\ϖ$ݓK \Ts_hur9/h%Ap',PO\LUۣyL<J}2ΨK w-W;>LMwI ^W\y)/8eWӌ4$2T]!%WЉȏ(fwavb>ߒ>"ϥ?|!WG(dv_d߀)*D `?YlG:SbߤB`k SM!\V 6E'4mH/0N mlw 3 \Ϯ۟PUDbE\ .3.}?G4",S9+2b5\+E5&7qs)0ODfgu ,6leN`suH<Ô:6aKw6= B ٰq*׫җ9Ђ(SsF-ԗ b  ;_xY?J-_ <e)@Zक़gP -Pc\g֩3[-ob(4QuAo+$eQBiLb/Lizf>ta֗ao,` Ło43ao6ĺ7UC + oNJ m L@P!́C@QOUg^݉theë'Z 9auG34z-"S0K\Y^H%Tqx@P`CY}[c#Jway*vdp< ;0X;bc-ԊL/5A($>j x̳^3ؔܛ'6˰tU/Xw#DMbxӤudX׀GëbŤjܻX7ז{9_\4?WtlwҼD[KjD՚@=cDXN!˵ No //]ɢ~D𯆩l|oUgO J"4H P"˜~oU_Y L`z۾h<. (zcS;eb6E1-ap@ReAJJ`_fjͭZ}>Jx1Bѷ^z*B-ˀ }L޷%lӞFf ϒA ND, Fo`q?E nuU^|+o]3E1ob?H"ģ؃:8Y`{SMR@vA!<;bJy$"13b& *9T{+L~rl۲Y[N*,<* S_EAnD~!@>ךsڞҞcwavD0cއXXl4~o=eШ0T< ftVKxt,oqH_Qbw{%0%SL@32&;ȏW|eG1.SS6VG)m9j9/<#=dX c9,dy-SgRBV"-+O_}E%Ҁl꫖j`9m)ʤF[nj1mMVl M1Z( +QK%+=?%y%s-b$[51\]j9hH@Kp.?T aҌDC%Q4O/_$Z]-|Z՗UNrKy?/(=ʶͣiylNVl+w9FE^1O5j#*]lgHV8،Ip50J7& 4-j=reiƒaDc(+%Q\'&`>ׯ]OCA,woj Қ˿-N"`t7z: L ?bcZ*Ϳ9&#a(\n:At2+8"iΕPm5RmUM[IfVelH 2҉؝{UQ>av'.d-FmN\) } ?tz?UCX2_VݔfV-jʱUgurC;$j,\^Q"Hmlgx%B@_IGN:YM@@lq=U1V/<ԉS.3E kn ΤV;;N?6JY$4.Kd Kga7dO%C?$e_=[[zcaOTaO ?O@NR#\x ' : aw\鶎E'|{oR/̢)ʊ@穟Suhy=eDAjyg$.k&W^y|+k ߅DܩXrC0^]_cNnAk6%U%I4=w+ebu'u 442 IǦ(CgLy7w>\Ԧ(Qf}>onX֡^ސ8\1uufHQ鼰[_a lHt$#RiO$نm#/!:Bo$3ȘNW1 ^LЦ!^qUNڸQ=f1i`5Z1krYs҆9M Az`\2"tܼ7FdHJ?+j!B{AP2K0"%X  ug/pcýٓNkƚ'4耳)盜ɆN>w!q@ G=V aBD\eβ&0U ٢㖭HPLH*9ڪn,[x$'O 4dNHNǻbWT=F;m1; ^9 P~C-/"k]Iu]'1OH Z氦=Wfq fD& ?Ф?Nib8!~SΥDYH3ѵ'GywiRF0^ub K5,kFb)DUvՂYt~:Z4:(&Trw[Wa-1]/!9jOy01GEX/HrM46k1Vd!/됹/!S~>~Y1:r<-N7TmD8v> 2T`j@I3ͥIk[S(^mK/ZP[d%#j ꐆj#V4 RL }IIp>S/9أ#甡ЎROeaw_ F1!McZGIb-alsMG1lSo /?j,z*7IU`ӊk:}Wv'ZKV5xY6f׶^a3`P#Q5"@&ZE^*'! Np:jBDqo:r| <@<t40E['h,hTԤ؞>`TBv]aZG)3](A21w]O!ƣSL3v8TɟnHUJ'(:_*ڊ  ~b;EpҩGxMtz";BN&i{6|KMurLz2M}ɋ% Dg8@P.l8!faGJ'tATv /Rcwu2i[ ic$ xxZK#yLăq[N@~č0,b!~oPэ"c?ۡdϱySDsd\6eB6j :Vf&~b<-LΆa;E^"ۖ[];Wx3  Y-ZIIA+4(:b*pƔ/q#Q+Չ+݇Ȏ긔0h#cHxPρy3v A_^r'<،[|H[okUln@ Cms M*.=7p=A:n%Qd L)qXPS60ǣj&4tq p*]D,%TAxK BZ[K&@ 5^!k]Xr] Q[J"Y݈gy8zx|.9lЪs$,e(XgIa Ҵ{=|5UIvǝ%rPL5ş@()S K( ?-k1͒Iҵ 8-WO"gvJUur͊A2Rĭ95suwn#s#-خ"w٧InHSO)4 QG H~DQ.u^kҼx|%IQo̰|漻D%XpҊ5F`n;}-׎1ވ¨:Hנl~j~V|uTAk;&Fr*qN'ˉ…2X9o7 䒀$4 $Rſ۬y-!ݏJ.eJ8#5t̡*W}%jX`zkej %V꿭!6P&)mqF˲רh}jY[9kQx?^D `3@3pa+_1_v *K[<B%O 3YPvt$ip51,&C_BTV,|]HS}BjrTQ7gꀯpp#ephlŒFKlAJt5$=TZE6S>$%`zjh?B=WNb;}!*pNOo]|9r4UqOOR>޹!kX t؋EŐpY:vIB) ҌNQ6~Ѡ"|ݺsC\> FhIl& 忥)?e1R2'30,iْŢDp__j81'&R_a|:!O h;Cn"sjf2 [Q[?"Bhp440()2b(WMFU"6 ?î͊q <|I>sn ,"z2۬-mրHc7_";r[4٨s6RѼd%9X!@Tm\dhݣ'h|cBmJ:YM]$\=bv"km;nōnʨXVHT7'2,tUR,&NamT/J9=jX,5 8aujA5STժ8-?'^ue]u7(8sJ '͎(l4 |*.aG W~^d'(iw?/tW)4Y[&d,l%/Z 0[Ig>7r!qZb]=UlֳNDypzdD;KlJ0yh-@"9/[҅vdHr?޲ahjA /<>c Y5ކl#3~=آkkOKg< :D"5c;pt6Ӌ)$Th,IF`dkB%)&0b8;hv T.yRm'PSG .]I'6 l:/rĵp\9zs׏)I(P+ǒgEpjx`WVb4#p'JGBWÎ:+kcu!H2I NCa,jŽ18GwnWPz}hBϺ 8fQkɒ-n.O&6R_D~x9KK&1=-.5G,,Dy:cR@1lQq|Wy LЮZ GΏ6XfTX"0M|Z; :AK .NSb!]og5lIB8˞s΃Adx5چ<_bZalFEnm%.)v #Ez.a]'ٹ n{7yʚ!]}#7;F%.aEd>9fYe ѣJMa^|P*5TUSŷqPS5ʥup2gQAu0j8d[̽N-d?,.n!56MpyDCjyc|M6"eQ< ]7-UM>ikLuWLh%'o}lִI݂io?kefؠtV d)4KHHPVӰ(,AIt}A*„GаEz]+𼭨Lh. hh-ʺG! ˑ$2֡it8E0&ivwq>/I8ǚA~y'(Dg3RD_tBe+RŎUII"Vp6+Aҫm&Vx Vc ;";Dw-Жj&+}Wj+ʾOMI@,k^lJ̪6ϫ9{]\ruٻ089b`Ao5qaV]MNvhhlߥzOzڏFi1=y Ke;3Ʉlȍ/} p .}fb<{ mO: t3UUbĪKs @^翙zJÆnU5? ^#jGkHYR+qFb f`4N}To[)m3|RsMD83 gA`!Err.gF+y^KSvvH3m77(#L3fOO"DtktuEŎ<1Š'"=I}ónOI7Àu d~UÄ>cvG[(NQU$FaOye<|hEsa@C][R~&Yp Iae1"Pc\GxZUhC̐@\_"" ޢE6vREB߅Av#YJ.">yҠa0'\_`<ι6FE =^K|rNu]0n|4x}9.9X<ˊ0Jvˢ׃(M2X4MP](<(ŁDw2N^mnrĝyL!mNzȆ H[#~ηHqqE^4,8e`a؏b֪]weuHjctTLaЇuAur21:{wc>K6w/{_ a7v3;#4.UeYivy1EqHZܶЕZ0G&2؎iq=z RD 4գ/cS3x ;qU=zm5»I7s>ev 8WAƌ4ژ~qRi&2hqʻJA/{3]=}̨L]'M" "3eE?=f[G8R+N<ЅU"} Pm@Lb20]cu);`{ @ ǎY(r>T" E.U A?#B ZZ++'*A(~: D crt,t,^{dۮjt($Hp% `Q!åmR5Ke,&Z-' rw0*pyZVcdh[tӉ¤g6\9ʆ6q[\ BR2{3b_l7uEмk eY/{73h%Fbp@qPxmW85B\f%'lZSgva8#5 o0a.Uؓ1f"7x| (c^ɺlu7'r.ac(MKݵzi6~Pf85LmT,(4KJU{u#2k ~KV` g95{7Y∢pAsN桿MoYvce@AmuaLAdF]T BmwSjܤhT$!zv>&YO7sy_& 1>ށJnN\&{Y 9Cubuh n`es2;1S^*gZ¬gP{ "`7{i25 k 8x>xA0\RX`ڢAr/Mp, ۥSyƚ%} &VYEӤIYxI~:/P8$UcIF-]ljev Mʾ5*R+x.Ed\z(0G2GKTbKx9. (c iK{c,qSu#ԖJ(tnfeJ4'WtThPCVFj zDTu./}l30tE/u5Q RW7z"b=`\5`&fꀯ{Q^r$MceWχU7*JLnsJSP ^AU)5r=٥[U2$ 5Tĝ8tmneE_;w2Nhm;7%,kD?:Zlj!Kukpֲ}ЮӍ^ t8r}%HGRXlH*gO˜gTO-Ӿbn9m6 _7 ՄQ!duKzeMkv[FOc0V* n YV?5K$UQAQRlUjl$ Lr\BԿ|ë(XKW6MY ߽}?[/vZ^J6zd+h>3K5DRDK-=4ݴlh:vB@#Q\VraES/+i;<;.umc)adwpuAa=ͻIEy8_d iLuF*+~ QO1!T%8g64_" h0Uĥe2fNxrpan2Em$ӄ 73F>6Z=CJO|6p즣vHf+pFMm^HGMiOY70g.vPs!IX9ȌB8pqɁ%eO2lz652$t!AhD1!}lv<  3yߝNMHlzjM_( 47|yoY@/ $zB-籰 0߆,@kNWPd\g.qtjl0J:@7 #zA9U]F/OФ2âiCR8ui.q;{ n{BI\B{dN6|0u3CR҉<&aYg6"_R iHgҺ*+LlW9+T sY\H蔳z4ro$"8a/kr>)>WaZzU詰=%rm[ٷp*k'%PN|1JT ~tO͆pJo>*>)N#GyqfЗPh,',65zFחax/E@SrB^w#珃-Uzsz:p2j̶C#3],fk4Bb9OD ̬ڠPBjbS>/;H{l<)p5χ $Kqm =F=ud })V`a3fK">jxwV'BxGq\#cqkJR | L=΍[[:z߆Bk,-F<@Oͼ쎐1R~:jVMUmײ [>iU.y~uG4O=.XO;o D}*JM!Oqd<E:/i@@A7bǺ^<s>[J[| g /r4,K]N-uS:T*~ ʚدz4:jHPEX9lLA-2. dKqV(\DCC`yݰ:r/E ZCɭ)~#6Ps )JL un#%o%{96Dōn +N淥䣩NXmը+1x5KŸ[lHnpt{0ٴwvj a+|U婪EmYT(162xu">Jk4h<{Pœju^0Ј,ah\|o/eL#J;_3+CsD3 S1|3%H'h_]ҳKS*EtS.# |5o7/h'{V~h{BsKe,UM.i ^>$a2vg34=L/yM~.QtF50ύgk؝NIwR51J׷̛`Aشɶ0r7>M8Y%ٹ#!~%Crxy^L8%E]磁ݶ 2Fl};'0bQ5xa&TFi}Krc\)D5A vCʝf >Mz|*ڵ#ӫ71a-nbg tuԽ]dCRnư3~3ޑzDN$Le+0i_mry&LE9'Nf2嗀^MѾm4C7z6c9Ύ?m}㮭m`(ܝ)m3hb0q;@C-7}~MgM,WV |C6vR]ěZ牕)ȩ1[%_ݨ5ÛUUs|5{D[`Cd+Ɖm0g @i&Թv:4#O]OgnҒ z4`ޔ^]QqpllUr Gxz-eC<uXh' "ѥkFqҐ~-x QE\3Wط1o@C|M!v6j sa ۃՙg#S'J tԽ[Ki}s HIiH|Řcq{NDcc:*lEcd@ ݯja9 !3pID4.4CzBcZkN4gFLg93 f3Y^*=>" ==>\1)W2MRQVTTGI;ҲR0 Rv ct"u/̵8;?T(úRJ%}G]))^X7xZA~uV\AjFsQ:b8EG(\  q*~_mHड़[ 8sވTe8jxv.LQzק= x"HVժX&lU* œU~{_KTe}7l1b Z'2BPDM|lƟfzw4PYN(ē KlQ2ԣEdDtwbiN.`R(wfd>ĪY .t,X3C~gt&b=snj3gGA3S[*խ:!{0\vWoʬx3cbR|KϬA${U0TE[̯PLE CeU)׭u~mvrp|4-wۈ͓rG-WV55R^*^4s=Zރ3z46mxjAC; 'p|cYԥ#]NͣΛəhnJ 'ˊ :31HI]m{0k7,Z–$X2JUp:x}n[ cDݍ8F0I'RMy[9OGHꏾ|2z׌_ې_}6] 8mG4Q'¼ [[Qxz73lᕧIÎCEߺT^tI+(J̮X/a92@a/_pcHZ?f :? rf.R6^'`(.ܧUi-7b֕e6cU\|Lm>YDN7Mg^ ⵡ)2n2RIC%N<~SLe) F)ɶ2WU܌`_Enq]JZ)=Ҋ۾Զ2hJl{>>=?d0lOxDLV97~jNKheSXc"W~Si^|gf)UPӷ /Klb>uxʾV%rCFKy9XP1_ۺϺZeiHXL$Ę!Uy$ɦѓYv!Di۴,5{NZr[6Hvz-D[?)@ĩK<9:bnfqQU3|HF͂䛃b$$aARLEB0*t@N+HcwbбP;-}ϕg{*.c [+x & q@vT*7-ն?EذaNg@avr1-iV*;E ᝌZu3~p𩾀O9 @[M]L.#g؝ۿ)d ~BB1J~b=Aݡ|E+;EMмsߺݭM~{kP[d T1ahFzu8RŸ?MjYXb#JsPtPD^,z8py&,'6Jzuvm$6(;F}ׂ0.T;lل%1B+3_VwEzgثy6M`#æPԘ%T;Yq479߸]PEVc9Pm*5C\5RԉJa6_X3ڴoGV$tB.*Njg/4H[~ywdQJllO鍋5PMxEX&>"<6>]e^xwv`aa_p}a_~0X]Zű'Ă38nWWt}>lodr\Ê{WcorYU[CbVTBŎ8pV , | 0]_'up N1dz^~_~` `# `GB$`k'={&\2\@"}"~&Vj8Y ٵW Ȗ߭t~kGP12%oB^0 0l wEszͳK$&ZBٳKhG u g?8̽"8&zu0aCAZ?Inc#a!jʫH,׮j`ЦDx7VjK}*W52a[% C仳 0K͵1OJ x ξiK?S:"xlU[nS*bxG LĄ읁60P?G/T:˪K`Lu-~MiyIq(Gͼ?N0IWKnS+$kDQ}/"ݭaܿrUT7p[Drȩ1r `t@z(#{O3B>^W|`GJ|roH}A\A:yWp/IVhy.'F a{W>HC\;?vvvEwL-` ЇwygֲM36g }KsĴeGXMzځZ ^0h$Ji$Jt:dž3Nr ^lH\#lk?L~^[)G#&üR^NR$|Z[Υyת@133=δ_\7Crm*=M,!vQxPqWI+?Ly\Q][j#6n(G`>iE$1 Flq|f%& U`\^Ȁj0_Iӿj/W,D³G(DIbm)_O"HͱxT71: vd/wJC; jk{㞶ʴBt/I=lcjp 6 얏`{[&7 )#wWL2Oa]8QQ{<}']=gFsy8˅%{jl}PӠCQ^: RXDЀjB/@٬ܨBJ߀h mX'gFnRI.cr'~*MW0-LHFk}RgDo -=ŝ{U` yIY ։2Te*Us؂roW'cv&E_H^.R۬HV@ERN+"|*$8R^ @uȤezU_mB_WjN0,`ه0s}}*{t:NIS{t@ LWD?]OivR`ks+i9hG _,g]nb\{!N0(0eHj'!!kЁҢnd%*l odVU#ɻ%qk,1`$]&5&AzyHW'As9s:"+DBfI̫8¥RY)Bc(QC#Af&z")L4WMQ2駸$VUDkm<OʿHdӈB5I '!$TcpeaXg.3M.m RE,2l[fD w.Ra:8hb\j&rK8+}CT4VfUvpIO<++<ijd^^FI\R!Cħ]TmSRӾQgE4s8Дc@HgHG̑(i?tynkkѦT{W2'xvؒڻ6'բTff_gg9oŪK`h($[U7>HQW?y6rԖ$J_YM$+/PCA'MPQMZ8WB9z#_X52BKeC_kԻ̐<9G9O-<*C(^SV<Cp Eh+ A\1 -Wc4Q9Hm%]աKݭH+ԉ[&ֱgg^Pnp>u2`% )Km g~En%䱆M`S gkgY(f\ , FX iZ^"G.z!yHc@Jǻ{CBm݂VcpCs#j(&|"ո埜(x[12S¥L1g?L5;SOe*I=HONv$ QiU,,ʢ\]$َA=7pkp#b?sT, /|qqADGNHzX#A6֤%]N`U Y}PX΀'_*R1 7`!d* })ڙS(Oe"X_t a{`pO? )%ݟثDZaZϐ—5R0cX 5lމFesn[ރ1&,*^XoPSӽX((Db:v)fcMci=)~N1-.">j?)=Yt3i2[\}Lى(]Y$ .zx V_d15YwI|hk',z& @7Ƨ<%]9ʮWH=GU pA|\gBBC&sNhGN(ֆ5cB=UX 'U.T:ƃ:NPu$+ޢ dؕ4Ɍ٥k\DN9UgZF"ʖGeNȃ!L4͈`8vUtgt `#«ga3ᭈ4[:WOPBv<[zw'~W3#2JKj)}͑8ˑM$IwszODY>6(jH6E .T+)\y@Z?%2 YL4,ތ@Cc_^(`>.:/U+ēE:z#ՒsW!bq:{:) ǵW Z~fdjmxXdN:3CW_n0j'6h{H5J$ *BUl9/FP\V27vo?_>4֔\ XOgh`QsҖJ(fC?_v{3Wh*.E/{Cҙ1|s~UBL+Bל~3"dAԪ'%6ɧۈ>~R_*љ@a(㔋01߬hW*d>|rSm\[C3PP.FfPo >XQУӰpt{^]칦F ȃWw5ݶϲ Z·.,ZGQ-Z^G]@/xt/,CaPktK 0T˅@.xXp"HZ7щ%Ni`*B <"PW _4)[yv?~(8ǟsLUF%i')r|Zj= =E=;Iv~tmґr/(*uEFVF65+}"tTKwkřě:PDC}gåw88f'\b\ *iiV$HlgQAymXEmio(97Dd P67f<4A@@?;f}U{.Ƽk؃Ihvs e3"d ~&GNZh΢~DrBHtN귈Hb^m,|y1T1 phRӎ {kXI@[p)<Ӯس/ Hxlk``D=^FL+J`OE^(,`zQm9­YV]Y 8k>.Kߕ}nؼ$R ň2#oZvs[wG ˠA}5(. Տ%9h:L#/z(yZS6gwOs~ۨa<-v][eaֻB"#90ܬ(l;ƀrR'ȀK|9Ts?iaO|[)hb= @%iIPW&/cK\q}YrbDU+NkF|ÿe9$LʭOȴN׽2B_{w$wTB4Y@GQ?K&Ӟrk^k`"r)}R/BIos~BQv><5h䴢H-rkeS+;6p;?vP1->v}uE_8pl ejt-bH8nZyu67i->EYAZX9y#NK(] e 8PDCK"p~}d@ *<N؎GmJwO4Gm(NY󞱿KQ Lq4b1 W,&L+씔N8*0[u( C84JE␓E"a xYԛ BnY.tI|[?55){Vgx Ab08k;IT&\IuC^TO8H ] LD*YS^g}/~ԕl}P$ڰX}jVb&vӾކ>< .iaA߈]DhУEFDNRȞ.]|"0#fBCU6WZ.i>py@<'fU$J3wnR{RaYn<=CT,zêIZUm1 Tz3ha%T|}Xz[uNb+qE.g&6:В8ooMEx|(uYGq:7Qv5rƫ8:s M#ᏌBW,i5 ;fCrZ4`:|Hԣbʆ[ 0zZJf/ɂ;;g)hI/ .M~ʟ΀y%D# $/gùjN'πlƯjⲖIzп)zikXznGEa %ΙMD[#;pEqER"(]EuR^[&IdCm( 鍆Pw`SnL ڽk+}C 2wZt681$v -+.djekd9,č͍![ˡ\2  <~r q%”ۼhN O(ހ)ziy$xq[ۍ%i*͵h-_t#PiF/x=Ť?qxҵJyBhf}vdRF[b0m 7Zd7T-'HX7YdgE?W<#U>8LtE&}JY(,Uq _Exǿudm*>T>VF& 8y~q4+ /Bډh\R~c.4[J&Vз85<8 *` ۄ?aX=`$f ǻE(R?7eopܾ(Na(t25γ_r>$rTv0/'(K~0YF$ߎܔX]܅XMH2DlDA| "Xcd<XaUM2rS\m}ɦc!k(m*!8p}mP bz>Av&0\*bmdB.K];r06o!&34dﷸ)?ڔd[XB$t tGf*`̞fjT<NMAuj>|CF_y{>@.7f6;;~ZK]I@,̪e0xiD[lED[,%H[C]4EFȗJz)_^X I-9N#zU X!ayM1Ԏ]!'j1FS:b$kg4|DK*1PY(Ǭ$#z#vo;*Rȁ[za 9=DWL& /𩊱Ӳ&J"ZFJ cτnV69:Vav]?8vDUȥ38ohXb+4?X_{|@y,{FO\iu:U_g.n)ffCDڕ!y u9o ӓ/!CAI5J lMFz7=9uwEP;O<d% 5Xق؈8l/˃nn،d&5xDswbaNdV9w%oZ"SĨU:v1<`'U/T 5QW?p کDZ|x8S9<?=TFG ҡ 5Zt[@ [oNk@i kcE+Vn,}.vo'6DKGv"\9/7w8e E24">x_!ż>ĬU_%;-*ՈsQ`uKv]g?4bxbmIwٞME7]c/Hs#2["9;Hu&$p!瑙م[Svw^X){L,ˀ){:pֻp/֢\DrG\$BOj!L4V*wh{kX˽Oufh1A iWu]ZY:cU"qk]з ӏixܽx'qU\{ESdۄy`ut@3phchs&&K6O0Bdy0*aY/d?),]r6I"YͪD2Dc >?*zYSmfK.8y-*. ܯxוPꛀFd3/‘1ƇO@ٽC5F r^|7i[#K}b :#uA¾~l݈~6*Xo `< VGo8i:",_1Y|R!VH{{.\ؔ C?O7-6qF%>I‘Ր=̞nzK6w%@Q9-95}Hod2~F=//RPm\qkƱz^vRg.v\aX@Mt^c{틕JA2aNo: ` kh|5-3\GZ..d~[9db}` O8^m(v)QM%}aZgjm$kc  VfhGt\X ]:e? *&1;c~CZcE\Tvq'}'?4p RжYQq" 5/x:u/Cfq齮r\ tsDVhUM갰Mv};y0Wa^8-zE |Yqբ3[zP H#U)(E@%JqQbU;OY8ma8P$ ]¶Y>pɖ\jA܅AW6s%l99J,S܆n} \(h9w۽(@ mH5FB2 C] Ҧ{ IV>ȜB;G(YLAxXifv~S%A=*1$(* ,1I6"㊌-c]ՋiJQ0 -`Wkf[6ړ܁z@cygObl1|Xy:˻o9t[!-gWi<^n!#V"s[Ʒ"Nli)ᗝuܰ UW~IOS8#5 F$UIО 4xZ(|6mӿ k,2dRLmhJPwS'T7Íwzˌ.: Qa&TDG>;4Ц/dif${ vaٹleS#\Bm?Wzx)Ne&~sHvGB b p+mB;6cP=I]c޾NJ~p#T+d{y>cA2KC`\33zn9ߧr̿/%CVX`)"J;mƀHrM|yK5T?6{"]+<4҉@Oyh鐁aqe&lv.ߢj3)rY}sf F|PܳXLS86“u,52eclގ0JrHKx Dat1Щҙ\V 9$UA͋rA'*;#V"̥09FÓ騁$o1FTfï] )p Dž&T6/+Aƻ\>HV*D<+jsLI95A@M8:1jJ' fu5 5kl0i"#z$nI* jq{-ft*#{lJaKŅJ^1 j$M9,7ϒY _(Ge2SM45D*2c%x=͎ᓴU|UmH{+ύڗ6Q&}Đ])iYmdae܌Uc {3@@ [;нMB=Xx2sCDg;CR&˸苞IBp%:튡M!>~l]y`;Gc m^qJ^lZȨPɾX5IDHN=Xϩp.X1ceH%gIL4񵟋R n̓gK=- 0 Z4@$f\:"5l^=c-4noE0 5( Wv]x-3!L78UM3mJA(d}mU2][ozk#/h=_fH"UܼTaNZ  1 lduc2A጖1&S. ՟}|s f)3UD >ƍY;=D@j[CH3Ke޴P4l7ܐ|u"'_Թ7j|cMKM]aE! t\z)>w' {[[4;FiϦٚ3:FBw6qߊtPd 2.uEQAP &1g߸ cB?ԙqe2>^` NrQZnkA1kXy6|X‘F*ڠRXdABd u|w⍄FI2wLB8aw=Ktm-PcT <h?<%D7O7/Cldva% ;M?D~DR,F>4׹տ[e\2` La 6!(=hs#ܥ=eL|JHОC&g%[NUQ+cj ~Sdʲ ~XkL|TJ͕[T*\w{p<Cfvd;-DFZ7+*^c0l!Zmh;~k%;4},0TixZ IZ4O֟~78yx0&H2B0w M22pơZAz)_Ƃa=ܓ{t,7YyRwJ ):QkM˕3w/_Bo*=14㕢8Jy WKp'Hv]bͶQig =QuNt~3*I&k1Ź9(=я/|4DfGk A6^s_'v kLD>IBRjf;4|hϣp'& N+%@%qR:]eeWT[쐪(6-P-!(@m˱He/GRg$BK9[Wukһ β$tKN,GFAx@NK}sWƧrfUe ӿ)'֚ō™ Pq E+ x6%RPIg]c`:M1">~Jhdv}1j/;)xob`[谹J'G흍bcA6\;Č~֛~񶛛gMU06+gȎRT!y_SѴ]f Io̙V #lX~F'kZ}DS2.zLr}OI_xI1dƹY#O}!=(p#S!@K%6O8khj)MKr}] HATh Đ-VqQܷ]!լz#%;uW,Dgz* ̪+QB`UtГNyp _dD]q$Ql6<-sQEkIl~)RS4J՚ b4p&d~_Okf92ٻӳĤ^q9|_z<'7ygImlNmn)Bn!LBLH v@dNM).}O~FҐB>v kӚAo92)G@џgK]@r \ >60p+ *djPW|UsJ9N3[+ 8 CĜn5ҿ,kCC-sJz2#ɗړޯ4tbt/J$˼u/Ip8CKl!$LYllɺĥ%!^UmRW]\Lܲs[h2]N%Q}BsD5Y^MXݲu,=lnjƆB;R+ke͏kk72`!> "f]!F@K;R2!* fֿTXb{"oⰏ{rIg9*<0;gƇR .=5xIh;m5lN[n ԔFפ#=4;EL6˗ :`4eMß n<}kC-`e]<$xLoo*nГ̑> f\KjtqPJ7GbOaY#1hZfT y7,;'%DIh1p2w?GJwF `hN@;w/ `!Ok] J~S "BTimQ3r"C/Pcj'soJT%J%3d9dy%,9f&~|yI*6tY<.LKAI+)(>;&Z uT}5}[Az?gβ^P庚CXUJ^L"}̠ <ɾ`!c H]We4f Bb-u&>"] EX]3(wA3[5Զݘ!m8 Y,7p"We$P}ma 'Mmyէi?b:]GWsE }FB<+Ah[z3ʇZ9;cߘ ;0 \$anW{)"DmU3lspbuz/ Ag1b*RVa+{+”B@,fB.U@w.M0q$"ȑt*ȁ XJa>huij6ʡ:MuP&p$؛@ML:bE:}>i-c,ʭ7Xa׭jNew$Uw.)(Z4CYQkتwjޒ9'[*?5%R(dl e2 σX9*) QPid/{&?;>=!bJ0k6 V`!2-}F$BMx2~܊ҩܸ?LAI?bN9P蒟9 m2z jB:ˍ*Hw AΓB[DA6S4 ',Z|ә6!ͳr-t7vqC}6ťVCd0Aζ5:yZ0EQ2mzJoF S\~ޯ[pvUy l-{L\;JG)ɋ*JYI ַSKFT.Y9$&F3Wpy}dm2iǘKy\خ;kM 7% q=DS ,@!\,kvI?HWA eWA= Na$!ή9#ҝ2R()ں? >mj/IS&Ր?͚-B^VeS?U$ |xsRFVdVBW DwɊg24e=7mʩ8Ўz.lMi:@v2~23GGƁH,:8Zշ،jBܟ}|m2BmH/wߛ>$\MAx0u[(G\3QQp\M&5E-;y#}_sw"z3Nj+bD{Ӭ,2GS{8lO'd wbczMhVhw _U$^H|q->_'25r=+?U 3A#pʖu4|4ɣN]ꅐ##OBnϮ 2poHD% M~jJb@\=vX8MOY2ZrGS;)\ VЮ3\ Bt3 LT-9V;*/?໊9Sp%&DQO qf![k f@tlIE1#!죢Ä?LTM)^V!1FIn0[/$rș'naM{K̩S nEA"[ιDAEcI {оZ.Qy*݌e tsHܿ23}sV=~@I^ ږ3QY"^ڕR{ ;_Ϻƕ H^I#epeLbdR*aGd:}{z1af "8ZF/0jwZ*.DղzE]W}QY>GjdؘWl$k_t$^lSyr9<1Mm1%W͗5AZɟJ~ 0U7ȭۤ'$(y8f,"WAUMx?32NU`1 a`.>^06C,`ѿ?@TO6K>^ڧ1Y  b<}klj230 XKm]E`A1˘78hIͲ{I&QyHC<"`Sj&J/D~fQdX/`dݩ<3-^2bFeHKOf¾3~{|Lv-̜:ǝ̀oȵ2~ PΧ) Q;I].4sZ"&3Ia.%{nȮtxrqe MJ.pL0 9.1U3i?P 5Ak'hCW CCԆdN3U`8duxPksbJh p9  ;iAVFD_3*D$ъJZ>O]'C]DA)I4s"zzD-8'÷THn+ {c}1~A+fr$6@ (S7!v ,SRXq2Y8S"?v2SYp)P[*GB? SS=pvT̅)֔k_FVN3gYRYO`/Mdꓬ hԃD[nR߈=S^F(Dl4<,rb[l̋0s?H҆$psYI[P̂*mlC^[;'7x87uʪ?~MTů[eqt;k|.8@|?"~ȄR9ؗ=;%r LRr]>b_;T>+j5\;Dž$}f+NL`E0GXNX@Ql7`OY4ljYdb- pmpDUՙQ$."M"ihKЎfNkLGп<򰻱xfh&%쇖ڛvn] k2./žBO{ AE66AhL.moTȻ6G1ݥ1LQRieZfImtnW o[7HwF?B(b\Rrd9%!96lckF2Xr^%^DӡRP&Csɫp@͌;#UcYWzsj5Fb?_H{-,@%FB..jT]zI;E,Oh'~RS2=蝯^).Aآg54q1ѧ#){0l t?Sȧkkh[߉ޝToZDx3^R 3+kqD U8٫7JkgRrRo2+NLů0 Giqm0= ¸{>4%& G@Ũg٩i*2f5 B;$t +Nq<σ]:(AFB:M+eȄ)9{/q'8smSWjS7x_#~Vj/5cH.H3 l~ʔW5u-X8`[v ϔ @:l Qops᫜K0nYidL5+be.~s0f?)n@N] 3r/ywo7h/d$uE_ 8,)Ri.cGPRuEAP^R*(0d>H_$iw. H!U31I+*`e;E*iE^%K*LqMhMF]=߾]9HZ t.%|x苗h^<5J Zwb47P/+؎-:㚽ۋ݌:@ȷi{Yv7 `zͱuN<6i0 ,J@Ԑy "ўP<`- %uUb \" b o\~})2"f^w04g{p?'FU5'z]f[X?&/*w9ڛ&_KBU3!shHÌcp5E2M2#߸II?#=Md:7gBn[u|QƬdOt7L]-W'iojeO, %(lC9!1Ʈ}Z7`K"vZoxOdzIJiӇnL%ꣅeݖxR18?1 SQnT"x/mi\EH@8)9DԉLM c L?qVV\{}8@UA :xnZWwFF֏yCj1gd!.p$b6Q#y;^+$](թf%W[+A;iNsQ)zQxuM!׈`tB#zQ\OZ:H`Ϝ4 ћ0^(J[oB OU9 gܔI+s<OGryozl9lSN;j?6P2{"tkCa&X5D7Z|"Eg XT/fﴲ43q&0IYchnKD@E[.e!hլ}x~;e"VŌ~ltJ^$SLRvni@{Uelj&V@ uVx:]1zB Z)fu^!Pg78`s} 5XXjK۩'B+),9ą8N#O{ّ(N,\:⊅Y7Yvve1i[ %-rrZGOPyF?)]ڟqb pkrN`xmDz,"IE2UPߓsuƴR_$-gCONYDE}8-_d{i^`t'RB$1DH:pk_μt, OEʹqU&A&GS2!p7 DZث"߀{EulҒo[Nk!{fwo†ךbOlnɇ˓f^f |wRx$M(炡,.O߯xSJ>-@MKUqYS*D Zi@ghx^y\t\5TҶ_THgJ7V9Bf0$\N~\Bt_aGy>1޺:ٺJ"4ܻwsᖫ@U1dۆ=V/u]6 go!+yEI||>\-6|y3lOc0b"6(7xm U_3C {ZFY'zYo9sXv=2\{HLKyI{C1OʫRc,;sz hvK95`D^}/ltoek~24NVy_SRm۵H;A/ ^E7*`&AyVI論ӦN:ۣY1kܰqĝfmZ2QX ԣH0.F8fg`!yֹxG“qؿwKE. ĹJ* sU3H#$|X=k@( m:_yRW;DKM9uF#GAGzCa]B]fZθ7r҇3¸D@fΔ.bD:c'暆 +uwPc ~siђflSp|̻49,Ϙ7HnKdʸ 4=QJU Mbe˂R4' F[j1GBf}c$nᧁ3P jbxښ_(ibG4` ƒݍ[ +t@N >ȳjYo]%X/S1ՈKĪD`wƍ*@,YBʐ+09 /`whjȀoQ_Wm9$7(Kt$w/|sYV^٪54@pF6^ 8Bq6'u{%87^yrHiEiT xo/jBBFea*d#|0Ha<3<>0 YZgmm/man/0000755000176200001440000000000014437645334011622 5ustar liggesusersgmm/man/fitted.Rd0000644000176200001440000000266611305632271013365 0ustar liggesusers\name{fitted} \alias{fitted.gel} \alias{fitted.gmm} \title{Fitted values of GEL and GMM} \description{ Method to extract the fitted values of the model estimated by \code{\link{gel}} or \code{\link{gmm}}. } \usage{ \method{fitted}{gel}(object, ...) \method{fitted}{gmm}(object, ...) } \arguments{ \item{object}{An object of class \code{gel} or \code{gel} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{...}{Other arguments when \code{fitted} is applied to an other class object} } \value{ It returns a matrix of the estimated mean \eqn{\hat{y}} in \code{g=y~x} as it is done by \code{fitted.lm}. } \examples{ # GEL can deal with endogeneity problems n = 200 phi<-c(.2,.7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0,.3,.6)) plot(y, main = "Fitted ARMA with GEL") lines(fitted(res), col = 2) # GMM is like GLS for linear models without endogeneity problems set.seed(345) n = 200 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- 10 + 5*rnorm(n) + x res <- gmm(y ~ x, x) plot(x, y, main = "Fitted model with GMM") lines(x, fitted(res), col = 2) legend("topright", c("Y","Yhat"), col = 1:2, lty = c(1,1)) } gmm/man/getModel.Rd0000644000176200001440000000251513107655275013652 0ustar liggesusers\name{getModel} \alias{getModel.baseGmm} \alias{getModel.sysGmm} \alias{getModel.baseGel} \alias{getModel.constGmm} \alias{getModel.tsls} \alias{getModel.constGel} \alias{getModel.ateGel} \title{Method for setting the properties of a model} \description{ It collects what is needed by the method \code{momentEstim} (see details). } \usage{ \method{getModel}{baseGmm}(object, ...) \method{getModel}{sysGmm}(object, ...) \method{getModel}{baseGel}(object, ...) \method{getModel}{constGel}(object, ...) \method{getModel}{constGel}(object, ...) \method{getModel}{tsls}(object, ...) \method{getModel}{ateGel}(object, ...) } \arguments{ \item{object}{An object of class \code{baseGmm} } \item{...}{Other arguments when \code{getModel} is applied to another class object} } \value{ It returns an object of the right class which determines how the method \code{momentEstim} will treat it. For example, if \code{g} is a formula and \code{type} is set to "cue", it creates an object of class \code{baseGmm.cue.formula}. It this case, \code{momentEstim}, applied to this object, computes the continuously updated GMM of a linear model. It allows more flexibility this way. For example, it could be easy to add a GMM method which is robust in presence of weak identification simply by creating a new class of model and the associated \code{momentEstime} method. } gmm/man/gmm.Rd0000644000176200001440000004154714132201704012661 0ustar liggesusers\name{gmm} \alias{gmm} \alias{gmmWithConst} \alias{evalGmm} \title{Generalized method of moment estimation} \description{ Function to estimate a vector of parameters based on moment conditions using the GMM method of Hansen(82). } \usage{ gmm(g,x,t0=NULL,gradv=NULL, type=c("twoStep","cue","iterative"), wmatrix = c("optimal","ident"), vcov=c("HAC","MDS","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"), crit=10e-7,bw = bwAndrews, prewhite = 1, ar.method = "ols", approx="AR(1)", tol = 1e-7, itermax=100,optfct=c("optim","optimize","nlminb", "constrOptim"), model=TRUE, X=FALSE, Y=FALSE, TypeGmm = "baseGmm", centeredVcov = TRUE, weightsMatrix = NULL, traceIter = FALSE, data, eqConst = NULL, eqConstFullVcov = FALSE, mustar = NULL, onlyCoefficients=FALSE, ...) evalGmm(g, x, t0, tetw=NULL, gradv=NULL, wmatrix = c("optimal","ident"), vcov=c("HAC","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)",tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, mustar = NULL) gmmWithConst(obj, which, value) } \arguments{ \item{g}{A function of the form \eqn{g(\theta,x)} and which returns a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,x_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n}. This matrix is then used to build the q sample moment conditions. It can also be a formula if the model is linear (see details below).} \item{x}{The matrix or vector of data from which the function \eqn{g(\theta,x)} is computed. If "g" is a formula, it is an \eqn{n \times Nh} matrix of instruments or a formula (see details below).} \item{t0}{A \eqn{k \times 1} vector of starting values. It is required only when "g" is a function because only then a numerical algorithm is used to minimize the objective function. If the dimension of \eqn{\theta} is one, see the argument "optfct".} \item{tetw}{A \eqn{k \times 1} vector to compute the weighting matrix.} \item{gradv}{A function of the form \eqn{G(\theta,x)} which returns a \eqn{q\times k} matrix of derivatives of \eqn{\bar{g}(\theta)} with respect to \eqn{\theta}. By default, the numerical algorithm \code{numericDeriv} is used. It is of course strongly suggested to provide this function when it is possible. This gradient is used to compute the asymptotic covariance matrix of \eqn{\hat{\theta}} and to obtain the analytical gradient of the objective function if the method is set to "CG" or "BFGS" in \code{\link{optim}} and if "type" is not set to "cue". If "g" is a formula, the gradiant is not required (see the details below).} \item{type}{The GMM method: "twostep" is the two step GMM proposed by Hansen(1982) and the "cue" and "iterative" are respectively the continuous updated and the iterative GMM proposed by Hansen, Eaton et Yaron (1996)} \item{wmatrix}{Which weighting matrix should be used in the objective function. By default, it is the inverse of the covariance matrix of \eqn{g(\theta,x)}. The other choice is the identity matrix which is usually used to obtain a first step estimate of \eqn{\theta} } \item{vcov}{Assumption on the properties of the random vector x. By default, x is a weakly dependant process. The "iid" option will avoid using the HAC matrix which will accelerate the estimation if one is ready to make that assumption. The option "TrueFixed" is used only when the matrix of weights is provided and it is the optimal one.} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details)} \item{crit}{The stopping rule for the iterative GMM. It can be reduce to increase the precision.} \item{bw}{The method to compute the bandwidth parameter in the HAC weighting matrix. The default is \code{link{bwAndrews}} (as proposed in Andrews (1991)), which minimizes the MSE of the weighting matrix. Alternatives are \code{link{bwWilhelm}} (as proposed in Wilhelm (2015)), which minimizes the mean-square error (MSE) of the resulting GMM estimator, and \code{link{bwNeweyWest}} (as proposed in Newey-West(1994)).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{approx}{A character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol}{Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{itermax}{The maximum number of iterations for the iterative GMM. It is unlikely that the algorithm does not converge but we keep it as a safety.} \item{optfct}{Only when the dimension of \eqn{\theta} is 1, you can choose between the algorithm \code{\link{optim}} or \code{\link{optimize}}. In that case, the former is unreliable. If \code{\link{optimize}} is chosen, "t0" must be \eqn{1\times 2} which represents the interval in which the algorithm seeks the solution. It is also possible to choose the \code{\link{nlminb}} algorithm. In that case, boundaries for the coefficients can be set by the options \code{upper=} and \code{lower=}. The \code{\link{constrOptim}} is only available for nonlinear models for now. The standard errors may have to be corrected if the estimtes reach the boundary set by ui and ci.} \item{model, X, Y}{logical. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{TypeGmm}{The name of the class object created by the method \code{getModel}. It allows developers to extend the package and create other GMM methods.} \item{centeredVcov}{Should the moment function be centered when computing its covariance matrix. Doing so may improve inference.} \item{weightsMatrix}{It allows users to provide \code{gmm} with a fixed weighting matrix. This matrix must be \eqn{q \times q}, symmetric and strictly positive definite. When provided, the \code{type} option becomes irrelevant. } \item{traceIter}{Tracing information for GMM of type "iter"} \item{data}{A data.frame or a matrix with column names (Optional). } \item{eqConst}{Either a named vector (if "g" is a function), a simple vector for the nonlinear case indicating which of the \eqn{\theta_0} is restricted, or a qx2 vector defining equality constraints of the form \eqn{\theta_i=c_i}. See below for an example.} \item{which, value}{The equality constraint is of the form which=value. "which" can be a vector of type characters with the names of the coefficients being constrained, or a vector of type numeric with the position of the coefficient in the whole vector.} \item{obj}{Object of class "gmm"} \item{eqConstFullVcov}{If FALSE, the constrained coefficients are assumed to be fixed and only the covariance of the unconstrained coefficients is computed. If TRUE, the covariance matrix of the full set of coefficients is computed.} \item{mustar}{If not null, it must be a vector with the number of elements being equal to the number of moment conditions. In that case, the vector is subtracted from the sample moment vector before minimizing the objective function. It is useful to do a bootstrap procedure. } \item{onlyCoefficients}{If set to \code{TRUE}, the function only returns the coefficient estimates. It may be of interest when the standard errors are not needed} \item{...}{More options to give to \code{\link{optim}}.} } \details{ If we want to estimate a model like \eqn{Y_t = \theta_1 + X_{2t} \theta_2 + \cdots + X_{k}\theta_k + \epsilon_t} using the moment conditions \eqn{Cov(\epsilon_tH_t)=0}, where \eqn{H_t} is a vector of \eqn{Nh} instruments, than we can define "g" like we do for \code{\link{lm}}. We would have \eqn{g = y ~\tilde{}~ x2+x3+ \cdots +xk} and the argument "x" above would become the matrix H of instruments. As for \code{\link{lm}}, \eqn{Y_t} can be a \eqn{Ny \times 1} vector which would imply that \eqn{k=Nh \times Ny}. The intercept is included by default so you do not have to add a column of ones to the matrix \eqn{H}. You do not need to provide the gradiant in that case since in that case it is embedded in \code{\link{gmm}}. The intercept can be removed by adding -1 to the formula. In that case, the column of ones need to be added manually to H. It is also possible to express "x" as a formula. For example, if the instruments are \eqn{\{1,z_1,z_2,z_3\}}, we can set "x" to \eqn{\tilde{} z1+z2+z3}. By default, a column of ones is added. To remove it, set "x" to \eqn{\tilde{}z1+z2+z3-1}. The following explains the last example bellow. Thanks to Dieter Rozenich, a student from the Vienna University of Economics and Business Administration. He suggested that it would help to understand the implementation of the Jacobian. For the two parameters of a normal distribution \eqn{(\mu,\sigma)} we have the following three moment conditions: \deqn{ m_{1} = \mu - x_{i} } \deqn{ m_{2} = \sigma^2 - (x_{i}-\mu)^2 } \deqn{ m_{3} = x_{i}^{3} - \mu (\mu^2+3\sigma^{2}) } \eqn{m_{1},m_{2}} can be directly obtained by the definition of \eqn{(\mu,\sigma)}. The third moment condition comes from the third derivative of the moment generating function (MGF) \deqn{ M_{X}(t) = exp\Big(\mu t + \frac{\sigma^{2}t^{2}}{2}\Big) } evaluated at \eqn{(t=0)}. Note that we have more equations (3) than unknown parameters (2). The Jacobian of these two conditions is (it should be an array but I can't make it work): \deqn{ 1~~~~~~~~~~ 0 } \deqn{ -2\mu+2x ~~~~~ 2\sigma } \deqn{-3\mu^{2}-3\sigma^{2} ~~~~ -6\mu\sigma} \code{gmmWithConst()} re-estimates an unrestricted model by adding an equality constraint. \code{evalGmm()} creates an object of class '"gmm"' for a given parameter vector. If no vector "tetw" is provided and the weighting matrix needs to be computed, "t0" is used., } \value{ 'gmm' returns an object of 'class' '"gmm"' The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction The object of class "gmm" is a list containing at least: \item{coefficients}{\eqn{k\times 1} vector of coefficients} \item{residuals}{the residuals, that is response minus fitted values if "g" is a formula.} \item{fitted.values}{the fitted mean values if "g" is a formula.} \item{vcov}{the covariance matrix of the coefficients} \item{objective}{the value of the objective function \eqn{\| var(\bar{g})^{-1/2}\bar{g}\|^2}} \item{terms}{the \code{\link{terms}} object used when g is a formula.} \item{call}{the matched call.} \item{y}{if requested, the response used (if "g" is a formula).} \item{x}{if requested, the model matrix used if "g" is a formula or the data if "g" is a function.} \item{model}{if requested (the default), the model frame used if "g" is a formula.} \item{algoInfo}{Information produced by either \code{\link{optim}} or \code{\link{nlminb}} related to the convergence if "g" is a function. It is printed by the \code{summary.gmm} method.} } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. Pierre Chausse (2010), Computing Generalized Method of Moments and Generalized Empirical Likelihood with R. \emph{Journal of Statistical Software}, \bold{34}(11), 1--35. URL \doi{10.18637/jss.v034.i11}. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Newey WK & West KD (1987), A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. \emph{Econometrica}, \bold{55}, 703--708. Newey WK & West KD (1994), Automatic Lag Selection in Covariance Matrix Estimation. \emph{Review of Economic Studies}, \bold{61}, 631-653. Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finite-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. } \examples{ ## CAPM test with GMM data(Finance) r <- Finance[1:300, 1:10] rm <- Finance[1:300, "rm"] rf <- Finance[1:300, "rf"] z <- as.matrix(r-rf) t <- nrow(z) zm <- rm-rf h <- matrix(zm, t, 1) res <- gmm(z ~ zm, x = h) summary(res) ## linear tests can be performed using linearHypothesis from the car package ## The CAPM can be tested as follows: library(car) linearHypothesis(res,cbind(diag(10),matrix(0,10,10)),rep(0,10)) # The CAPM of Black g <- function(theta, x) { e <- x[,2:11] - theta[1] - (x[,1] - theta[1]) \%*\% matrix(theta[2:11], 1, 10) gmat <- cbind(e, e*c(x[,1])) return(gmat) } x <- as.matrix(cbind(rm, r)) res_black <- gmm(g, x = x, t0 = rep(0, 11)) summary(res_black)$coefficients ## APT test with Fama-French factors and GMM f1 <- zm f2 <- Finance[1:300, "hml"] f3 <- Finance[1:300, "smb"] h <- cbind(f1, f2, f3) res2 <- gmm(z ~ f1 + f2 + f3, x = h) coef(res2) summary(res2)$coefficients ## Same result with x defined as a formula: res2 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3) coef(res2) ## The following example has been provided by Dieter Rozenich (see details). # It generates normal random numbers and uses the GMM to estimate # mean and sd. #------------------------------------------------------------------------------- # Random numbers of a normal distribution # First we generate normally distributed random numbers and compute the two parameters: n <- 1000 x <- rnorm(n, mean = 4, sd = 2) # Implementing the 3 moment conditions g <- function(tet, x) { m1 <- (tet[1] - x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3 - tet[1]*(tet[1]^2 + 3*tet[2]^2) f <- cbind(m1, m2, m3) return(f) } # Implementing the jacobian Dg <- function(tet, x) { jacobian <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2], -6*tet[1]*tet[2]), nrow=3,ncol=2) return(jacobian) } # Now we want to estimate the two parameters using the GMM. gmm(g, x, c(0, 0), grad = Dg) # Two-stage-least-squares (2SLS), or IV with iid errors. # The model is: # Y(t) = b[0] + b[1]C(t) + b[2]Y(t-1) + e(t) # e(t) is an MA(1) # The instruments are Z(t)={1 C(t) y(t-2) y(t-3) y(t-4)} getdat <- function(n) { e <- arima.sim(n,model=list(ma=.9)) C <- runif(n,0,5) Y <- rep(0,n) Y[1] = 1 + 2*C[1] + e[1] for (i in 2:n){ Y[i] = 1 + 2*C[i] + 0.9*Y[i-1] + e[i] } Yt <- Y[5:n] X <- cbind(1,C[5:n],Y[4:(n-1)]) Z <- cbind(1,C[5:n],Y[3:(n-2)],Y[2:(n-3)],Y[1:(n-4)]) return(list(Y=Yt,X=X,Z=Z)) } d <- getdat(5000) res4 <- gmm(d$Y~d$X-1,~d$Z-1,vcov="iid") res4 ### Examples with equality constraint ###################################### # Random numbers of a normal distribution ## Not run: # The following works but produces warning message because the dimension of coef is 1 # Brent should be used # without named vector # Method Brent is used because the problem is now one-dimensional gmm(g, x, c(4, 0), grad = Dg, eqConst=1, method="Brent", lower=-10,upper=10) # with named vector gmm(g, x, c(mu=4, sig=2), grad = Dg, eqConst="sig", method="Brent", lower=-10,upper=10) ## End(Not run) gmm(g, x, c(4, 0), grad = Dg, eqConst=1,method="Brent",lower=0,upper=6) gmm(g, x, c(mu=4, sig=2), grad = Dg, eqConst="sig",method="Brent",lower=0,upper=6) # Example with formula # first coef = 0 and second coef = 1 # Only available for one dimensional yt z <- z[,1] res2 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, eqConst = matrix(c(1,2,0,1),2,2)) res2 # CUE with starting t0 requires eqConst to be a vector res3 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, t0=c(0,1,.5,.5), type="cue", eqConst = c(1,2)) res3 ### Examples with equality constraints, where the constrained coefficients is used to compute ### the covariance matrix. ### Useful when some coefficients have been estimated before, they are just identified in GMM ### and don't need to be re-estimated. ### To use with caution because the covariance won't be valid if the coefficients do not solve ### the GMM FOC. ###################################### res4 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, t0=c(0,1,.5,.5), eqConst = c(1,2), eqConstFullVcov=TRUE) summary(res4) ### Examples with equality constraint using gmmWithConst ########################################################### res2 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3) gmmWithConst(res2,c("f2","f3"),c(.5,.5)) gmmWithConst(res2,c(2,3),c(.5,.5)) ## Creating an object without estimation for a fixed parameter vector ################################################################### res2_2 <- evalGmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, t0=res2$coefficients, tetw=res2$coefficients) summary(res2_2) } gmm/man/getLamb.Rd0000644000176200001440000000751713464357722013476 0ustar liggesusers\name{getLamb} \alias{getLamb} \title{Solving for the Lagrange multipliers of Generalized Empirical Likelihood (GEL) } \description{ It computes the vector of Lagrange multipliers, which maximizes the GEL objective function, using an iterative Newton method. } \usage{ getLamb(gt, l0, type = c("EL","ET","CUE", "ETEL", "HD","ETHD","RCUE"), tol_lam = 1e-7, maxiterlam = 100, tol_obj = 1e-7, k = 1, method = c("nlminb", "optim", "iter", "Wu"), control = list()) } \arguments{ \item{gt}{A \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,x_t)}} \item{l0}{Vector of starting values for lambda} \item{type}{"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, and "HD" for Hellinger Distance. See details for "ETEL" and "ETHD". "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.} \item{tol_lam}{Tolerance for \eqn{\lambda} between two iterations. The algorithm stops when \eqn{\|\lambda_i -\lambda_{i-1}\|} reaches \code{tol_lam} } \item{maxiterlam}{The algorithm stops if there is no convergence after "maxiterlam" iterations.} \item{tol_obj}{Tolerance for the gradiant of the objective function. The algorithm returns a non-convergence message if \eqn{\max(|gradiant|)} does not reach \code{tol_obj}. It helps the \code{gel} algorithm to select the right space to look for \eqn{\theta}} \item{k}{It represents the ratio k1/k2, where \eqn{k1=\int_{-\infty}^{\infty} k(s)ds} and \eqn{k2=\int_{-\infty}^{\infty} k(s)^2 ds}. See Smith(2004).} \item{method}{The iterative procedure uses a Newton method for solving the FOC. It i however recommended to use \code{optim} or \code{nlminb}. If type is set to "EL" and method to "optim", \code{\link{constrOptim}} is called to prevent \eqn{log(1-gt'\lambda)} from producing NA. The gradient and hessian is provided to \code{nlminb} which speed up the convergence. The latter is therefore the default value. "Wu" is for "EL" only. It uses the algorithm of Wu (2005). The value of \code{method} is ignored for "CUE" because in that case, the analytical solution exists.} \item{control}{Controls to send to \code{\link{optim}}, \code{\link{nlminb}} or \code{\link{constrOptim}}} } \details{ It solves the problem \eqn{\max_{\lambda} \frac{1}{n}\sum_{t=1}^n \rho(gt'\lambda)}. For the type "ETEL", it is only used by \code{\link{gel}}. In that case \eqn{\lambda} is obtained by maximizing \eqn{\frac{1}{n}\sum_{t=1}^n \rho(gt'\lambda)}, using \eqn{\rho(v)=-\exp{v}} (so ET) and \eqn{\theta} by minimizing the same equation but with \eqn{\rho(v)-\log{(1-v)}}. To avoid NA's, \code{\link{constrOptim}} is used with the restriction \eqn{\lambda'g_t < 1}. The type "ETHD" is experimental and proposed by Antoine-Dovonon (2015). The paper is not yet available. } \value{ lambda: A \eqn{q\times 1} vector of Lagrange multipliers which solve the system of equations given above. \code{conv}: Details on the type of convergence. } \references{ Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. Smith, R.J. (2004), GEL Criteria for Moment Condition Models. \emph{Working paper, CEMMAP}. Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. \emph{Survey Methodology}, \bold{31}(2), page 239. } \examples{ g <- function(tet,x) { n <- nrow(x) u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)]) f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)]) return(f) } n = 500 phi<-c(.2, .7) thet <- 0.2 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) gt <- g(c(0,phi),x) getLamb(gt, type = "EL",method="optim") } gmm/man/specTest.Rd0000644000176200001440000000244511305655400013672 0ustar liggesusers\name{specTest} \alias{specTest} \alias{specTest.gel} \alias{specTest.gmm} \alias{print.specTest} \title{Compute tests of specification} \description{ Generic function for testing the specification of estimated models. It computes the J-test from \code{gmm} objects and J-test, LR-test and LM-test from \code{gel} objects. } \usage{ \method{specTest}{gmm}(x, ...) \method{specTest}{gel}(x, ...) \method{print}{specTest}(x, digits = 5, ...) specTest(x, \dots) } \arguments{ \item{x}{A fitted model object.} \item{digits}{The number of digits to be printed.} \item{\dots}{Arguments passed to methods.} } \value{ Tests and p-values } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Smith, R. J. (2004), GEL Criteria for Moment Condition Models. \emph{CeMMAP working papers, Institute for Fiscal Studies} } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) specTest(res) ################### res <- gmm(g, x) specTest(res) } gmm/man/sysGmm.Rd0000644000176200001440000001331514132201704013350 0ustar liggesusers\name{sysGmm} \alias{sysGmm} \alias{five} \alias{sur} \alias{randEffect} \alias{threeSLS} \title{Generalized method of moment estimation for system of equations} \description{ Functions to estimate a system of equations based on GMM. } \usage{ sysGmm(g, h, wmatrix = c("optimal","ident"), vcov=c("MDS", "HAC", "CondHom", "TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"), crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)", tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, crossEquConst = NULL, commonCoef = FALSE) five(g, h, commonCoef = FALSE, data = NULL) threeSLS(g, h, commonCoef = FALSE, data = NULL) sur(g, commonCoef = FALSE, data = NULL) randEffect(g, data = NULL) } \arguments{ \item{g}{A possibly named list of formulas} \item{h}{A formula if the same instruments are used in each equation or a list of formulas.} \item{wmatrix}{Which weighting matrix should be used in the objective function. By default, it is the inverse of the covariance matrix of \eqn{g(\theta,x)}. The other choice is the identity matrix.} \item{vcov}{Assumption on the properties of the moment vector. By default, it is a martingale difference sequence. "HAC" is for weakly dependent processes and "CondHom" implies conditional homoscedasticity. The option "TrueFixed" is used only when the matrix of weights is provided and it is the optimal one.} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details)} \item{crit}{The stopping rule for the iterative GMM. It can be reduce to increase the precision.} \item{bw}{The method to compute the bandwidth parameter. By default it is \code{\link{bwAndrews}} which is proposed by Andrews (1991). The alternative is \code{\link{bwNeweyWest}} of Newey-West(1994).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{approx}{A character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol}{Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{model, X, Y}{logical. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{centeredVcov}{Should the moment function be centered when computing its covariance matrix. Doing so may improve inference.} \item{weightsMatrix}{It allows users to provide \code{gmm} with a fixed weighting matrix. This matrix must be \eqn{q \times q}, symmetric and strictly positive definite. When provided, the \code{type} option becomes irrelevant. } \item{data}{A data.frame or a matrix with column names (Optional). } \item{commonCoef}{If true, coefficients accross equations are the same} \item{crossEquConst}{Only used if the number of regressors are the same in each equation. It is a vector which indicates which coefficient are constant across equations. The order is 1 for Intercept and 2 to k as it is formulated in the formulas \code{g}. Setting it to \code{1:k} is equivalent to setting commonCoef to TRUE.} } \details{ This set of functions implement the estimation of system of equations as presented in Hayashi (2000) } \value{ 'sysGmm' returns an object of 'class' '"sysGmm"' The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction The object of class "sysGmm" is a list containing at least: \item{coefficients}{list of vectors of coefficients for each equation} \item{residuals}{list of the residuals for each equation.} \item{fitted.values}{list of the fitted values for each equation.} \item{vcov}{the covariance matrix of the stacked coefficients} \item{objective}{the value of the objective function \eqn{\| var(\bar{g})^{-1/2}\bar{g}\|^2}} \item{terms}{The list of \code{\link{terms}} objects for each equation} \item{call}{the matched call.} \item{y}{If requested, a list of response variables.} \item{x}{if requested, a list of the model matrices.} \item{model}{if requested (the default), a list of the model frames.} } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Newey WK & West KD (1987), A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. \emph{Econometrica}, \bold{55}, 703--708. Newey WK & West KD (1994), Automatic Lag Selection in Covariance Matrix Estimation. \emph{Review of Economic Studies}, \bold{61}, 631-653. Hayashi, F. (2000), Econometrics. \emph{Princeton University Press}. } \examples{ data(wage) eq1 <- LW~S+IQ+EXPR eq2 <- LW80~S80+IQ+EXPR80 g2 <- list(Wage69=eq1, WAGE80=eq2) h2 <- list(~S+EXPR+MED+KWW, ~S80+EXPR80+MED+KWW) res <- sysGmm(g2, h2, data=wage, commonCoef=TRUE) summary(res) res2 <- sysGmm(g2, h2, data=wage) summary(res2) five(g2, h2, data=wage) threeSLS(g2, h2[[1]], data=wage) sur(g2, data=wage) randEffect(g2, data=wage) ## Cross-Equation restrictions ## All but the intercept are assumed to be the same res <- sysGmm(g2, h2, data=wage, crossEquConst = 2:4) summary(res) } gmm/man/gel.Rd0000644000176200001440000003267114132201704012646 0ustar liggesusers\name{gel} \alias{gel} \alias{evalGel} \title{Generalized Empirical Likelihood estimation} \description{ Function to estimate a vector of parameters based on moment conditions using the GEL method as presented by Newey-Smith(2004) and Anatolyev(2005). } \usage{ gel(g, x, tet0 = NULL, gradv = NULL, smooth = FALSE, type = c("EL","ET","CUE","ETEL","HD","ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, constraint = FALSE, optfct = c("optim", "optimize", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, TypeGel = "baseGel", alpha = NULL, eqConst = NULL, eqConstFullVcov = FALSE, onlyCoefficients=FALSE, ...) evalGel(g, x, tet0, gradv = NULL, smooth = FALSE, type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, alpha = NULL, ...) } \arguments{ \item{g}{A function of the form \eqn{g(\theta,x)} and which returns a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,x_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n}. This matrix is then used to build the q sample moment conditions. It can also be a formula if the model is linear (see details below). } \item{tet0}{A \eqn{k \times 1} vector of starting values. If the dimension of \eqn{\theta} is one, see the argument "optfct". In the linear case, if tet0=NULL, the 2-step gmm estimator is used as starting value. However, it has to be provided when eqConst is not NULL} \item{x}{The matrix or vector of data from which the function \eqn{g(\theta,x)} is computed. If "g" is a formula, it is an \eqn{n \times Nh} matrix of instruments (see details below).} \item{gradv}{A function of the form \eqn{G(\theta,x)} which returns a \eqn{q\times k} matrix of derivatives of \eqn{\bar{g}(\theta)} with respect to \eqn{\theta}. By default, the numerical algorithm \code{numericDeriv} is used. It is of course strongly suggested to provide this function when it is possible. This gradiant is used compute the asymptotic covariance matrix of \eqn{\hat{\theta}}. If "g" is a formula, the gradiant is not required (see the details below).} \item{smooth}{If set to TRUE, the moment function is smoothed as proposed by Kitamura(1997)} \item{type}{"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, "ETEL" for exponentially tilted empirical likelihood of Schennach(2007), "HD" for Hellinger Distance of Kitamura-Otsu-Evdokimov (2013), and "ETHD" for the exponentially tilted Hellinger distance of Antoine-Dovonon (2015). "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details) and to smooth the moment conditions if "smooth" is set to TRUE. Only two types of kernel are available. The truncated implies a Bartlett kernel for the HAC matrix and the Bartlett implies a Parzen kernel (see Smith 2004).} \item{bw}{The method to compute the bandwidth parameter. By default it is \code{\link{bwAndrews}} which is proposed by Andrews (1991). The alternative is \code{\link{bwNeweyWest}} of Newey-West(1994).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{approx}{a character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol_weights}{numeric. Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{tol_lam}{Tolerance for \eqn{\lambda} between two iterations. The algorithm stops when \eqn{\|\lambda_i -\lambda_{i-1}\|} reaches \code{tol_lamb} (see \code{\link{getLamb}}) } \item{maxiterlam}{The algorithm to compute \eqn{\lambda} stops if there is no convergence after "maxiterlam" iterations (see \code{\link{getLamb}}).} \item{tol_obj}{Tolerance for the gradiant of the objective function to compute \eqn{\lambda} (see \code{\link{getLamb}}).} \item{optfct}{Only when the dimension of \eqn{\theta} is 1, you can choose between the algorithm \code{\link{optim}} or \code{\link{optimize}}. In that case, the former is unreliable. If \code{\link{optimize}} is chosen, "t0" must be \eqn{1\times 2} which represents the interval in which the algorithm seeks the solution.It is also possible to choose the \code{\link{nlminb}} algorithm. In that case, borns for the coefficients can be set by the options \code{upper=} and \code{lower=}.} \item{constraint}{If set to TRUE, the constraint optimization algorithm is used. See \code{\link{constrOptim}} to learn how it works. In particular, if you choose to use it, you need to provide "ui" and "ci" in order to impose the constraint \eqn{ui \theta - ci \geq 0}.} \item{tol_mom}{It is the tolerance for the moment condition \eqn{\sum_{t=1}^n p_t g(\theta(x_t)=0}, where \eqn{p_t=\frac{1}{n}D\rho()} is the implied probability. It adds a penalty if the solution diverges from its goal.} \item{optlam}{Algorithm used to solve for the lagrange multiplier in \code{\link{getLamb}}. The algorithm Wu is only for \code{type="EL"}. The value of \code{optlam} is ignored for "CUE" because in that case, the analytical solution exists.} \item{data}{A data.frame or a matrix with column names (Optional). } \item{Lambdacontrol}{Controls for the optimization of the vector of Lagrange multipliers used by either \code{\link{optim}}, \code{\link{nlminb}} or \code{\link{constrOptim}}} \item{model, X, Y}{logicals. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{TypeGel}{The name of the class object created by the method \code{getModel}. It allows developers to extand the package and create other GEL methods.} \item{alpha}{Regularization coefficient for discrete CGEL estimation (experimental). By setting alpha to any value, the model is estimated by CGEL of type specified by the option \code{type}. See Chausse (2011)} \item{eqConst}{Either a named vector (if "g" is a function), a simple vector for the nonlinear case indicating which of the \eqn{\theta_0} is restricted, or a qx2 vector defining equality constraints of the form \eqn{\theta_i=c_i}. See \code{\link{gmm}} for an example.} \item{eqConstFullVcov}{If FALSE, the constrained coefficients are assumed to be fixed and only the covariance of the unconstrained coefficients is computed. If TRUE, the covariance matrix of the full set of coefficients is computed.} \item{onlyCoefficients}{If \code{TRUE}, only the vector of coefficients and Lagrange multipliers are returned} \item{...}{More options to give to \code{\link{optim}}, \code{\link{optimize}} or \code{\link{constrOptim}}.} } \details{ If we want to estimate a model like \eqn{Y_t = \theta_1 + X_{2t}\theta_2 + ... + X_{k}\theta_k + \epsilon_t} using the moment conditions \eqn{Cov(\epsilon_tH_t)=0}, where \eqn{H_t} is a vector of \eqn{Nh} instruments, than we can define "g" like we do for \code{\link{lm}}. We would have \code{g = y~x2+x3+...+xk} and the argument "x" above would become the matrix H of instruments. As for \code{\link{lm}}, \eqn{Y_t} can be a \eqn{Ny \times 1} vector which would imply that \eqn{k=Nh \times Ny}. The intercept is included by default so you do not have to add a column of ones to the matrix \eqn{H}. You do not need to provide the gradiant in that case since in that case it is embedded in \code{\link{gel}}. The intercept can be removed by adding -1 to the formula. In that case, the column of ones need to be added manually to H. If "smooth" is set to TRUE, the sample moment conditions \eqn{\sum_{t=1}^n g(\theta,x_t)} is replaced by: \eqn{\sum_{t=1}^n g^k(\theta,x_t)}, where \eqn{g^k(\theta,x_t)=\sum_{i=-r}^r k(i) g(\theta,x_{t+i})}, where \eqn{r} is a truncated parameter that depends on the bandwidth and \eqn{k(i)} are normalized weights so that they sum to 1. The method solves \eqn{\hat{\theta} = \arg\min \left[\arg\max_\lambda \frac{1}{n}\sum_{t=1}^n \rho() - \rho(0) \right]} \code{\link{evalGel}} generates the object of class "gel" for a fixed vector of parameters. There is no estimation for \eqn{\theta}, but the optimal vector of Lagrange multipliers \eqn{\lambda} is computed. The objective function is then the profiled likelihood for a given \eqn{\theta}. It can be used to construct a confidence interval by inverting the likelihood ratio test. } \value{ 'gel' returns an object of 'class' '"gel"' The functions 'summary' is used to obtain and print a summary of the results. The object of class "gel" is a list containing at least the following: \item{coefficients}{\eqn{k\times 1} vector of parameters} \item{residuals}{the residuals, that is response minus fitted values if "g" is a formula.} \item{fitted.values}{the fitted mean values if "g" is a formula.} \item{lambda}{\eqn{q \times 1} vector of Lagrange multipliers.} \item{vcov_par}{the covariance matrix of "coefficients"} \item{vcov_lambda}{the covariance matrix of "lambda"} \item{pt}{The implied probabilities} \item{objective}{the value of the objective function} \item{conv_lambda}{Convergence code for "lambda" (see \code{\link{getLamb}})} \item{conv_mes}{Convergence message for "lambda" (see \code{\link{getLamb}})} \item{conv_par}{Convergence code for "coefficients" (see \code{\link{optim}}, \code{\link{optimize}} or \code{\link{constrOptim}})} \item{terms}{the \code{\link{terms}} object used when g is a formula.} \item{call}{the matched call.} \item{y}{if requested, the response used (if "g" is a formula).} \item{x}{if requested, the model matrix used if "g" is a formula or the data if "g" is a function.} \item{model}{if requested (the default), the model frame used if "g" is a formula.} } \references{ Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. \emph{Econometrica}, \bold{73}, 983-1002. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. \emph{The Annals of Statistics}, \bold{25}, 2084-2102. Kitamura, Y. and Otsu, T. and Evdokimov, K. (2013), Robustness, Infinitesimal Neighborhoods and Moment Restrictions. \emph{Econometrica}, \bold{81}, 1185-1201. Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. Smith, R.J. (2004), GEL Criteria for Moment Condition Models. \emph{Working paper, CEMMAP}. Newey WK & West KD (1987), A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. \emph{Econometrica}, \bold{55}, 703--708. Newey WK & West KD (1994), Automatic Lag Selection in Covariance Matrix Estimation. \emph{Review of Economic Studies}, \bold{61}, 631-653. Schennach, Susanne, M. (2007), Point Estimation with Exponentially Tilted Empirical Likelihood. \emph{Econometrica}, \bold{35}, 634-672. Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. \emph{Survey Methodology}, \bold{31}(2), page 239. Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. Chausse (2010), Computing Generalized Method of Moments and Generalized Empirical Likelihood with R. \emph{Journal of Statistical Software}, \bold{34}(11), 1--35. URL \doi{10.18637/jss.v034.i11}. Chausse (2011), Generalized Empirical likelihood for a continumm of moment conditions. \emph{Working Paper}, \emph{Department of Economics}, \emph{University of Waterloo}. } \examples{ # First, an exemple with the fonction g() g <- function(tet, x) { n <- nrow(x) u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)]) f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)]) return(f) } Dg <- function(tet,x) { n <- nrow(x) xx <- cbind(rep(1, (n-6)), x[6:(n-1)], x[5:(n-2)]) H <- cbind(rep(1, (n-6)), x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) f <- -crossprod(H, xx)/(n-6) return(f) } n = 200 phi<-c(.2, .7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) res <- gel(g, x, c(0, .3, .6), grad = Dg) summary(res) # The same model but with g as a formula.... much simpler in that case y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0, .3, .6)) summary(res) # Using evalGel to create the object without estimation res <- evalGel(g, x, res$coefficients) } gmm/man/KTest.Rd0000644000176200001440000000345011743071151013130 0ustar liggesusers\name{KTest} \alias{KTest} \alias{print.gmmTests} \title{Compute the K statistics of Kleibergen} \description{The test is proposed by Kleibergen (2005). It is robust to weak identification. } \usage{ KTest(obj, theta0 = NULL, alphaK = 0.04, alphaJ = 0.01) \method{print}{gmmTests}(x, digits = 5, ...) } \arguments{ \item{obj}{Object of class "gmm" returned by \code{\link{gmm}}} \item{theta0}{The null hypothesis being tested. See details.} \item{alphaK, alphaJ}{The size of the J and K tests when combining the two. The overall size is alphaK+alphaJ.} \item{x}{An object of class \code{gmmTests} returned by \code{KTest}} \item{digits}{The number of digits to be printed} \item{...}{Other arguments when \code{print} is applied to another class object} } \details{ The function produces the J-test and K-statistics which are robust to weak identification. The test is either \eqn{H0:\theta=theta_0}, in which case theta0 must be provided, or \eqn{\beta=\beta_0}, where \eqn{\theta=(\alpha', \beta')'}, and \eqn{\alpha} is assumed to be identified. In the latter case, theta0 is NULL and obj is a restricted estimation in which \eqn{\beta} is fixed to \eqn{\beta_0}. See \code{\link{gmm}} and the option "eqConst" for more details. } \value{ Tests and p-values } \references{ Keibergen, F. (2005), Testing Parameters in GMM without assuming that they are identified. \emph{Econometrica}, \bold{73}, 1103-1123, } \examples{ library(mvtnorm) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] h <- cbind(x4, x4^2, x4^3, x4^6) g3 <- y~w res <- gmm(g3,h) # Testing the whole vector: KTest(res,theta0=c(0,.1)) # Testing a subset of the vector (See \code{\link{gmm}}) res2 <- gmm(g3, h, eqConst=matrix(c(2,.1),1,2)) res2 KTest(res2) } gmm/man/marginal.Rd0000644000176200001440000000277013107655275013707 0ustar liggesusers\name{marginal} \alias{marginal} \alias{marginal.ategel} \title{Marginal effects Summary} \description{ It produces the summary table of marginal effects for GLM estimation with GEL. Only implemented for ATEgel. } \usage{ \method{marginal}{ategel}(object, ...) } \arguments{ \item{object}{An object of class \code{ategel} returned by the function \code{\link{ATEgel}}} \item{...}{Other arguments for other methods} } \value{ It returns a matrix with the marginal effects, the standard errors based on the Delta method when the link is nonlinear, the t-ratios, and the pvalues.} \references{ Owen, A.B. (2001), Empirical Likelihood. \emph{Monographs on Statistics and Applied Probability 92, Chapman and Hall/CRC} } \examples{ ## We create some artificial data with unbalanced groups and binary outcome genDat <- function(n) { eta=c(-1, .5, -.25, -.1) Z <- matrix(rnorm(n*4),ncol=4) b <- c(27.4, 13.7, 13.7, 13.7) bZ <- c(Z\%*\%b) Y1 <- as.numeric(rnorm(n, mean=210+bZ)>220) Y0 <- as.numeric(rnorm(n, mean=200-.5*bZ)>220) etaZ <- c(Z\%*\%eta) pZ <- exp(etaZ)/(1+exp(etaZ)) T <- rbinom(n, 1, pZ) Y <- T*Y1+(1-T)*Y0 X1 <- exp(Z[,1]/2) X2 <- Z[,2]/(1+exp(Z[,1])) X3 <- (Z[,1]*Z[,3]/25+0.6)^3 X4 <- (Z[,2]+Z[,4]+20)^2 data.frame(Y=Y, cbind(X1,X2,X3,X4), T=T) } dat <- genDat(200) res <- ATEgel(Y~T, ~X1+X2+X3+X4, data=dat, type="ET", family="logit") summary(res) marginal(res) } gmm/man/summary.Rd0000644000176200001440000000565413107655275013616 0ustar liggesusers\name{summary} \alias{summary.gmm} \alias{summary.sysGmm} \alias{summary.gel} \alias{summary.ategel} \alias{summary.tsls} \alias{print.summary.gmm} \alias{print.summary.sysGmm} \alias{print.summary.gel} \alias{print.summary.tsls} \title{Method for object of class gmm or gel} \description{ It presents the results from the \code{gmm} or \code{gel} estimation in the same fashion as \code{summary} does for the \code{lm} class objects for example. It also compute the tests for overidentifying restrictions. } \usage{ \method{summary}{gmm}(object, ...) \method{summary}{sysGmm}(object, ...) \method{summary}{gel}(object, ...) \method{summary}{ategel}(object, robToMiss = TRUE, ...) \method{summary}{tsls}(object, vcov = NULL, ...) \method{print}{summary.gmm}(x, digits = 5, ...) \method{print}{summary.sysGmm}(x, digits = 5, ...) \method{print}{summary.gel}(x, digits = 5, ...) \method{print}{summary.tsls}(x, digits = 5, ...) } \arguments{ \item{object}{An object of class \code{gmm} or \code{gel} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{x}{An object of class \code{summary.gmm} or \code{summary.gel} returned by the function \code{\link{summary.gmm}} \code{\link{summary.gel}}} \item{digits}{The number of digits to be printed} \item{vcov}{An alternative covariance matrix computed with \code{vcov.tsls}} \item{robToMiss}{If \code{TRUE}, it computes the robust to misspecification covariance matrix} \item{...}{Other arguments when summary is applied to another class object} } \value{ It returns a list with the parameter estimates and their standard deviations, t-stat and p-values. It also returns the J-test and p-value for the null hypothesis that \eqn{E(g(\theta,X)=0} } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. \emph{Econometrica}, \bold{73}, 983-1002. Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. \emph{The Annals of Statistics}, \bold{25}, 2084-2102. Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. } \examples{ # GMM # set.seed(444) n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] ym3 <- x[4:(n-3)] ym4 <- x[3:(n-4)] ym5 <- x[2:(n-5)] ym6 <- x[1:(n-6)] g <- y ~ ym1 + ym2 x <- ~ym3+ym4+ym5+ym6 res <- gmm(g, x) summary(res) # GEL # t0 <- res$coef res <- gel(g, x, t0) summary(res) # tsls # res <- tsls(y ~ ym1 + ym2,~ym3+ym4+ym5+ym6) summary(res) } gmm/man/residuals.Rd0000644000176200001440000000261711305632271014075 0ustar liggesusers\name{residuals} \alias{residuals.gel} \alias{residuals.gmm} \title{Residuals of GEL or GMM} \description{ Method to extract the residuals of the model estimated by \code{gmm} or \code{gel}. } \usage{ \method{residuals}{gel}(object, ...) \method{residuals}{gmm}(object, ...) } \arguments{ \item{object}{An object of class \code{gmm} or \code{gel} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{...}{Other arguments when \code{residuals} is applied to an other classe object} } \value{ It returns the matrix of residuals \eqn{(y-\hat{y})} in \code{g=y~x} as it is done by \code{residuals.lm}. } \examples{ # GEL can deal with endogeneity problems n = 200 phi<-c(.2,.7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0,.3,.6)) e <- residuals(res) plot(e, type = 'l', main = "Residuals from an ARMA fit using GEL") # GMM is like GLS for linear models without endogeneity problems set.seed(345) n = 200 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- 10 + 5*rnorm(n) + x res <- gmm(y ~ x, x) plot(x, residuals(res), main = "Residuals of an estimated model with GMM") } gmm/man/charStable.Rd0000644000176200001440000000324014010606726014145 0ustar liggesusers\name{charStable} \alias{charStable} \title{The characteristic function of a stable distribution} \description{ It computes the theoretical characteristic function of a stable distribution for two different parametrizations. It is used in the vignette to illustrate the estimation of the parameters using GMM.} \usage{ charStable(theta, tau, pm = 0) } \arguments{ \item{theta}{Vector of parameters of the stable distribution. See details.} \item{tau}{A vector of numbers at which the function is evaluated.} \item{pm}{The type of parametization. It takes the values 0 or 1.} } \value{ It returns a vector of complex numbers with the dimension equals to \code{length(tau)}. } \details{ The function returns the vector \eqn{\Psi(\theta,\tau,pm)} defined as \eqn{E(e^{ix\tau}}, where \eqn{\tau} is a vector of real numbers, \eqn{i} is the imaginary number, \eqn{x} is a stable random variable with parameters \eqn{\theta} = \eqn{(\alpha,\beta,\gamma,\delta)} and \code{pm} is the type of parametrization. The vector of parameters are the characteristic exponent, the skewness, the scale and the location parameters, respectively. The restrictions on the parameters are: \eqn{\alpha \in (0,2]}, \eqn{\beta\in [-1,1]} and \eqn{\gamma>0}. For mode details see Nolan(2009). } \references{ Nolan J. P. (2020), Univariate Stable Distributions - Models for Heavy Tailed Data. \emph{Springer Series in Operations Research and Financial Engineering}. URL \url{https://edspace.american.edu/jpnolan/stable/}. } \examples{ # GMM is like GLS for linear models without endogeneity problems pm <- 0 theta <- c(1.5,.5,1,0) tau <- seq(-3, 3, length.out = 20) char_fct <- charStable(theta, tau, pm) } gmm/man/formula.Rd0000644000176200001440000000206211305632271013541 0ustar liggesusers\name{formula} \alias{formula.gel} \alias{formula.gmm} \title{Formula method for gel and gmm objects} \description{ Method to extract the formula from \code{gel} or \code{gmm} objects. } \usage{ \method{formula}{gel}(x, ...) \method{formula}{gmm}(x, ...) } \arguments{ \item{x}{An object of class \code{gel} or \code{gmm} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{...}{Other arguments to pass to other methods} } \examples{ ## GEL ## n = 200 phi<-c(.2,.7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0,.3,.6)) formula(res) # GMM is like GLS for linear models without endogeneity problems set.seed(345) n = 200 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- 10 + 5*rnorm(n) + x res <- gmm(y ~ x, x) formula(res) } gmm/man/vcov.Rd0000644000176200001440000000312313107655275013063 0ustar liggesusers\name{vcov} \alias{vcov.gmm} \alias{vcov.gel} \alias{vcov.tsls} \alias{vcov.ategel} \title{Variance-covariance matrix of GMM or GEL} \description{ It extracts the matrix of variances and covariances from \code{gmm} or \code{gel} objects. } \usage{ \method{vcov}{gmm}(object, ...) \method{vcov}{gel}(object, lambda = FALSE, ...) \method{vcov}{tsls}(object, type=c("Classical","HC0","HC1","HAC"), hacProp = list(), ...) \method{vcov}{ategel}(object, lambda = FALSE, robToMiss = TRUE, ...) } \arguments{ \item{object}{An object of class \code{gmm} or \code{gmm} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{lambda}{If set to TRUE, the covariance matrix of the Lagrange multipliers is produced.} \item{type}{Type of covariance matrix for the meat} \item{hacProp}{A list of arguments to pass to \code{\link{kernHAC}}} \item{robToMiss}{If \code{TRUE}, it computes the robust to misspecification covariance matrix} \item{...}{Other arguments when \code{vcov} is applied to another class object} } \details{ For tsls(), if vcov is set to a different value thand "Classical", a sandwich covariance matrix is computed. } \value{ A matrix of variances and covariances } \examples{ # GMM # n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n,list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gmm(g, x) vcov(res) ## GEL ## t0 <- c(0,.5,.5) res <- gel(g, x, t0) vcov(res) vcov(res, lambda = TRUE) } gmm/man/tsls.Rd0000644000176200001440000000475411665451374013107 0ustar liggesusers\name{tsls} \alias{tsls} \title{Two stage least squares estimation} \description{ Function to estimate a linear model by the two stage least squares method. } \usage{ tsls(g,x,data) } \arguments{ \item{g}{A formula describing the linear regression model (see details below).} \item{x}{The matrix of instruments (see details below).} \item{data}{A data.frame or a matrix with column names (Optionnal). } } \details{ The function just calls \code{\link{gmm}} with the option vcov="iid". It just simplifies the the implementation of 2SLS. The users don't have to worry about all the options offered in \code{\link{gmm}}. The model is \deqn{ Y_i = X_i\beta + u_i } In the first step, \code{\link{lm}} is used to regress \eqn{X_i} on the set of instruments \eqn{Z_i}. The second step also uses \code{\link{lm}} to regress \eqn{Y_i} on the fitted values of the first step. } \value{ 'tsls' returns an object of 'class' '"tsls"' which inherits from class '"gmm"'. The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction The object of class "gmm" is a list containing at least: \item{coefficients}{\eqn{k\times 1} vector of coefficients} \item{residuals}{the residuals, that is response minus fitted values if "g" is a formula.} \item{fitted.values}{the fitted mean values if "g" is a formula.} \item{vcov}{the covariance matrix of the coefficients} \item{objective}{the value of the objective function \eqn{\| var(\bar{g})^{-1/2}\bar{g}\|^2}} \item{terms}{the \code{\link{terms}} object used when g is a formula.} \item{call}{the matched call.} \item{y}{if requested, the response used (if "g" is a formula).} \item{x}{if requested, the model matrix used if "g" is a formula or the data if "g" is a function.} \item{model}{if requested (the default), the model frame used if "g" is a formula.} \item{algoInfo}{Information produced by either \code{\link{optim}} or \code{\link{nlminb}} related to the convergence if "g" is a function. It is printed by the \code{summary.gmm} method.} } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, } \examples{ n <- 1000 e <- arima.sim(n,model=list(ma=.9)) C <- runif(n,0,5) Y <- rep(0,n) Y[1] = 1 + 2*C[1] + e[1] for (i in 2:n){ Y[i] = 1 + 2*C[i] + 0.9*Y[i-1] + e[i] } Yt <- Y[5:n] X <- cbind(C[5:n],Y[4:(n-1)]) Z <- cbind(C[5:n],Y[3:(n-2)],Y[2:(n-3)],Y[1:(n-4)]) res <- tsls(Yt~X,~Z) res } gmm/man/Finance.Rd0000644000176200001440000000275514017527033013452 0ustar liggesusers\name{Finance} \docType{data} \alias{Finance} \title{Returns on selected stocks} \description{ Daily returns on selected stocks, the Market portfolio and factors of Fama and French from 1993-01-05 to 2009-01-30 for CAPM and APT analysis } \usage{data(Finance)} \format{ A data frame containing 24 time series. Dates are reported as rownames(). In the following description, company symboles are used. \describe{ \item{WMK}{Returns of WEIS MARKETS INC} \item{UIS}{Returns of UNISYS CP NEW} \item{ORB}{Returns of ORBITAL SCIENCES CP} \item{MAT}{Returns of Mattel, Inc.} \item{ABAX}{Returns of ABAXIS, Inc.} \item{T}{Returns of AT&T INC.} \item{EMR}{Returns of EMERSON ELEC CO} \item{JCS}{Returns of Communications Systems Inc.} \item{VOXX}{Returns of Audiovox Corp.} \item{ZOOM}{Returns of ZOOM Technologies Inc.} \item{TDW}{Returns of TIDEWATER INC} \item{ROG}{Returns of Rogers Corporation} \item{GGG}{Returns of Graco Inc.} \item{PC}{Returns of Panasonic Corporation} \item{GCO}{Returns of Genesco Inc.} \item{EBF}{Returns of ENNIS, INC} \item{F}{Returns of FORD MOTOR CO} \item{FNM}{Returns of FANNIE MAE} \item{NHP}{Returns of NATIONWIDE HLTH PROP} \item{AA}{Returns of ALCOA INC} \item{rf}{Risk-free rate of Fama-French} \item{rm}{Return of the market portfolio of Fama-French} \item{hml}{Factor High-Minus-Low of Fama-French} \item{smb}{Factor Small-Minus-Big of Fama-French} } } \source{Yahoo Finance and \url{https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/}} \keyword{datasets} gmm/man/growth.Rd0000644000176200001440000000162712634331531013415 0ustar liggesusers\name{Growth} \docType{data} \alias{Growth} \title{Growth Data} \description{ Panel of Macroeconomic data for 125 countries from 1960 to 1985 constructed by Summers and Heston (1991)) } \usage{data(Growth)} \format{ A data frame containing 9 vectors. \describe{ \item{Country_ID}{Country identification number} \item{COM}{1 if the country is in a communist regime, 0 otherwise} \item{OPEC}{1 if the country is part of the OPEC, 0 otherwise} \item{Year}{Year} \item{GDP}{Per capita GDP (in thousands) in 1985 U.S. dollars.} \item{LagGDP}{GDP of the previous period} \item{SavRate}{Saving rate measured as the ratio of real investment to real GDP} \item{LagSavRate}{SavRate of the previous period} \item{Country}{Country names} \item{Pop}{Population in thousands} \item{LagPop}{Population of the previous period} } } \source{\url{http://fhayashi.fc2web.com/datasets.htm}} \keyword{datasets} gmm/man/momentEstim.Rd0000644000176200001440000000412512620733247014405 0ustar liggesusers\name{momentEstim} \alias{momentEstim.baseGmm.twoStep} \alias{momentEstim.baseGmm.twoStep.formula} \alias{momentEstim.sysGmm.twoStep.formula} \alias{momentEstim.tsls.twoStep.formula} \alias{momentEstim.baseGmm.iterative.formula} \alias{momentEstim.baseGmm.iterative} \alias{momentEstim.baseGmm.cue.formula} \alias{momentEstim.baseGmm.cue} \alias{momentEstim.baseGmm.eval} \alias{momentEstim.baseGel.mod} \alias{momentEstim.baseGel.modFormula} \alias{momentEstim.baseGel.eval} \title{Method for estimating models based on moment conditions} \description{ It estimates a model which is caracterized by the method \code{getModel} (see details). } \usage{ \method{momentEstim}{baseGmm.twoStep}(object, ...) \method{momentEstim}{baseGmm.twoStep.formula}(object, ...) \method{momentEstim}{sysGmm.twoStep.formula}(object, ...) \method{momentEstim}{tsls.twoStep.formula}(object, ...) \method{momentEstim}{baseGmm.iterative.formula}(object, ...) \method{momentEstim}{baseGmm.iterative}(object, ...) \method{momentEstim}{baseGmm.cue.formula}(object, ...) \method{momentEstim}{baseGmm.cue}(object, ...) \method{momentEstim}{baseGmm.eval}(object, ...) \method{momentEstim}{baseGel.mod}(object, ...) \method{momentEstim}{baseGel.modFormula}(object, ...) \method{momentEstim}{baseGel.eval}(object, ...) } \arguments{ \item{object}{An object created by the method \code{getModel}} \item{...}{Other arguments when \code{momentEstim} is applied to an other class object} } \value{ It returns an object of class determined by the argument "TypeGMM" of \code{\link{gmm}}. By default, it is of class \code{baseGmm.res}. It estimates the model and organize the results that will be finalized by the method \code{FinRes}. More methods can be created in order to use other GMM methods not yet included in the package. } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. } gmm/man/smoothG.Rd0000644000176200001440000000670414132201704013515 0ustar liggesusers\name{smoothG} \alias{smoothG} \title{Kernel smoothing of a matrix of time series} \description{ It applies the required kernel smoothing to the moment function in order for the GEL estimator to be valid. It is used by the \code{gel} function.} \usage{ smoothG(x, bw = bwAndrews, prewhite = 1, ar.method = "ols", weights = weightsAndrews, kernel = c("Bartlett", "Parzen", "Truncated", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"), tol = 1e-7) } \arguments{ \item{x}{a \eqn{n\times q} matrix of time series, where n is the sample size.} \item{bw}{The method to compute the bandwidth parameter. By default, it uses the bandwidth proposed by Andrews(1991). As an alternative, we can choose bw=bwNeweyWest (without "") which is proposed by Newey-West(1996).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{weights}{The smoothing weights can be computed by \code{\link{weightsAndrews}} of it can be provided manually. If provided, it has to be a \eqn{r\times 1}vector (see details). } \item{approx}{a character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol}{numeric. Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{kernel}{The choice of kernel} } \details{ The sample moment conditions \eqn{\sum_{t=1}^n g(\theta,x_t)} is replaced by: \eqn{\sum_{t=1}^n g^k(\theta,x_t)}, where \eqn{g^k(\theta,x_t)=\sum_{i=-r}^r k(i) g(\theta,x_{t+i})}, where \eqn{r} is a truncated parameter that depends on the bandwidth and \eqn{k(i)} are normalized weights so that they sum to 1. If the vector of weights is provided, it gives only one side weights. For exemple, if you provide the vector (1,.5,.25), \eqn{k(i)} will become \eqn{(.25,.5,1,.5,.25)/(.25+.5+1+.5+.25) = (.1,.2,.4,.2,.1)} } \value{ smoothx: A \eqn{q \times q} matrix containing an estimator of the asymptotic variance of \eqn{\sqrt{n} \bar{x}}, where \eqn{\bar{x}} is \eqn{q\times 1}vector with typical element \eqn{\bar{x}_i = \frac{1}{n}\sum_{j=1}^nx_{ji}}. This function is called by \code{\link{gel}} but can also be used by itself. \code{kern_weights}: Vector of weights used for the smoothing. } \references{ Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. \emph{Econometrica}, \bold{73}, 983-1002. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. \emph{The Annals of Statistics}, \bold{25}, 2084-2102. Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. } \examples{ g <- function(tet, x) { n <- nrow(x) u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)]) f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)]) return(f) } n = 500 phi<-c(.2, .7) thet <- 0.2 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) gt <- g(c(0, phi), x) sgt <- smoothG(gt)$smoothx plot(gt[,1]) lines(sgt[,1]) } gmm/man/getDat.Rd0000644000176200001440000000275612623157321013320 0ustar liggesusers\name{getDat} \alias{getDat} \title{Extracting data from a formula} \description{ It extract the data from a formula y~z with instrument h and put everything in a matrix. It helps redefine the function \eqn{g(\theta,x)} that is required by \code{\link{gmm}} and \code{\link{gel}}. } \usage{ getDat(formula, h, data, error=TRUE) } \arguments{ \item{formula}{A formula that defines the linear model to be estimated (see details).} \item{h}{A \eqn{n\times nh} matrix of intruments(see details).} \item{data}{A data.frame or a matrix with colnames (Optionnal).} \item{error}{If FALSE, the data is generated without giving any error message} } \details{The model to be estimated is based on the moment conditions \eqn{=0}. It adds a column of ones to z and h by default. They are removed if -1 is added to the formula. The error argument has been added for \code{\link{sysGmm}} with common coefficients because the check is only valid for equation by equation identification. } \value{ x: A \eqn{n \times l} matrix, where \eqn{l = ncol(y)+ncol(z)+ncol(h)+2} if "intercept" is TRUE and \eqn{ncol(y)+ncol(z)+xcol(h)} if "intercept" is FALSE. nh: dimension of h k: dimension of z ny: dimension of y } \examples{ n = 500 phi<-c(.2, .7) thet <- 0.2 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) x <- getDat(y ~ ym1 + ym2, H) } gmm/man/bread.Rd0000644000176200001440000000342114132201704013143 0ustar liggesusers\name{bread} \alias{bread.gmm} \alias{bread.gel} \alias{bread.tsls} \title{Bread for sandwiches} \description{ Computes the bread of the sandwich covariance matrix } \usage{ \method{bread}{gmm}(x, ...) \method{bread}{gel}(x, ...) \method{bread}{tsls}(x, ...) } \arguments{ \item{x}{A fitted model of class \code{gmm} or \code{gel}.} \item{...}{Other arguments when \code{bread} is applied to another class object} } \details{ When the weighting matrix is not the optimal one, the covariance matrix of the estimated coefficients is: \eqn{(G'WG)^{-1} G'W V W G(G'WG)^{-1}}, where \eqn{G=d\bar{g}/d\theta}, \eqn{W} is the matrix of weights, and \eqn{V} is the covariance matrix of the moment function. Therefore, the bread is \eqn{(G'WG)^{-1}}, which is the second derivative of the objective function. The method if not yet available for \code{gel} objects. } \value{ A \eqn{k \times k} matrix (see details). } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. } \examples{ # See \code{\link{gmm}} for more details on this example. # With the identity matrix # bread is the inverse of (G'G) n <- 1000 x <- rnorm(n, mean = 4, sd = 2) g <- function(tet, x) { m1 <- (tet[1] - x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3 - tet[1]*(tet[1]^2 + 3*tet[2]^2) f <- cbind(m1, m2, m3) return(f) } Dg <- function(tet, x) { jacobian <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2], -6*tet[1]*tet[2]), nrow=3,ncol=2) return(jacobian) } res <- gmm(g, x, c(0, 0), grad = Dg,weightsMatrix=diag(3)) G <- Dg(res$coef, x) bread(res) solve(crossprod(G)) } gmm/man/coef.Rd0000644000176200001440000000200311305632271013003 0ustar liggesusers\name{coef} \alias{coef.gel} \alias{coef.gmm} \title{Coefficients of GEL or GMM} \description{ It extracts the coefficients from \code{gel} or \code{gmm} objects. } \usage{ \method{coef}{gmm}(object, ...) \method{coef}{gel}(object, lambda = FALSE, ...) } \arguments{ \item{object}{An object of class \code{gel} or \code{gmm} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{lambda}{If set to TRUE, the lagrange multipliers are extracted instead of the vector of coefficients} \item{...}{Other arguments when \code{coef} is applied to an other class object} } \value{ Vector of coefficients } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) coef(res) coef(res, lambda = TRUE) ################### res <- gmm(g, x) coef(res) } gmm/man/confint.Rd0000644000176200001440000000724413107655275013556 0ustar liggesusers\name{confint} \alias{confint.gel} \alias{confint.ategel} \alias{confint.gmm} \alias{print.confint} \title{Confidence intervals for GMM or GEL} \description{ It produces confidence intervals for the coefficients from \code{gel} or \code{gmm} estimation. } \usage{ \method{confint}{gel}(object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, ...) \method{confint}{gmm}(object, parm, level = 0.95, ...) \method{confint}{ategel}(object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, robToMiss=TRUE, ...) \method{print}{confint}(x, digits = 5, ...) } \arguments{ \item{object}{An object of class \code{gel} or \code{gmm} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{parm}{A specification of which parameters are to be given confidence intervals, either a vector of numbers or a vector of names. If missing, all parameters are considered.} \item{level}{The confidence level} \item{lambda}{If set to TRUE, the confidence intervals for the Lagrange multipliers are produced.} \item{type}{'Wald' is the usual symetric confidence interval. The thee others are based on the inversion of the LR, LM, and J tests.} \item{fact}{This parameter control the span of search for the inversion of the test. By default we search within plus or minus 3 times the standard error of the coefficient estimate.} \item{corr}{This numeric scalar is meant to apply a correction to the critical value, such as a Bartlett correction. This value depends on the model (See Owen; 2001)} \item{x}{An object of class \code{confint} produced by \code{confint.gel} and \code{confint.gmm}} \item{digits}{The number of digits to be printed} \item{robToMiss}{If \code{TRUE}, the confidence interval is based on the standard errors that are robust to misspecification} \item{...}{Other arguments when \code{confint} is applied to another classe object} } \value{ It returns a matrix with the first column being the lower bound and the second the upper bound.} \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. Owen, A.B. (2001), Empirical Likelihood. \emph{Monographs on Statistics and Applied Probability 92, Chapman and Hall/CRC} } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) resGel <- gel(g, x, t0) confint(resGel) confint(resGel, level = 0.90) confint(resGel, lambda = TRUE) ######################## resGmm <- gmm(g, x) confint(resGmm) confint(resGmm, level = 0.90) ## Confidence interval with inversion of the LR, LM or J test. ############################################################## set.seed(112233) x <- rt(40, 3) y <- x+rt(40,3) # Simple interval on the mean res <- gel(x~1, ~1, method="Brent", lower=-4, upper=4) confint(res, type = "invLR") confint(res) # Using a Bartlett correction k <- mean((x-mean(x))^4)/sd(x)^4 s <- mean((x-mean(x))^3)/sd(x)^3 a <- k/2-s^2/3 corr <- 1+a/40 confint(res, type = "invLR", corr=corr) # Interval on the slope res <- gel(y~x, ~x) confint(res, "x", type="invLR") confint(res, "x") } gmm/man/FinRes.Rd0000644000176200001440000000161711313546054013271 0ustar liggesusers\name{FinRes} \alias{FinRes.baseGmm.res} \title{Method to finalize the result of the momentEstim method} \description{ It computes the final results that will be needed to create the object of class \code{gmm}.). } \usage{ \method{FinRes}{baseGmm.res}(z, object, ...) } \arguments{ \item{z}{An object of class determined by the method \code{momentEstim}.} \item{object}{An object produced my \code{getModel}} \item{...}{Other argument to be passed to other \code{FinRes} methods.} } \value{ It returns an object of class \code{gmm}. See \code{\link{gmm}} for more details. } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. } gmm/man/ATEgel.Rd0000644000176200001440000001512714132201704013175 0ustar liggesusers\name{ATEgel} \alias{ATEgel} \alias{checkConv} \title{ATE with Generalized Empirical Likelihood estimation} \description{ Function to estimate the average treatment effect with the sample being balanced by GEL. } \usage{ ATEgel(g, balm, w=NULL, y=NULL, treat=NULL, tet0=NULL,momType=c("bal","balSample","ATT"), popMom = NULL, family=c("linear","logit", "probit"), type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD", "RCUE"), tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optfct = c("optim", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data=NULL, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, ...) checkConv(obj, tolConv=1e-4, verbose=TRUE, ...) } \arguments{ \item{g}{A formula as \code{y~z}, where code{y} is the response and \code{z} the treatment indicator. If there is more than one treatment, more indicators can be added or \code{z} can be set as a factor. It can also be of the form \code{g(theta, y, z)} for non-linear models. It is however, not implemented yet.} \item{obj}{Object of class \code{"ategel"} produced y \code{ATEgel}} \item{balm}{A formula for the moments to be balanced between the treated and control groups (see details)} \item{y}{The response variable when \code{g} is a function. Not implemented yet} \item{treat}{The treatment indicator when \code{g} is a function. Not implemented yet} \item{w}{A formula to add covariates to the main regression. When \code{NULL}, the default value, the main regression only include treatment indicators.} \item{tet0}{A \eqn{3 \times 1} vector of starting values. If not provided, they are obtained using an OLS regression} \item{momType}{How the moments of the covariates should be balanced. By default, it is simply balanced without restriction. Alternatively, moments can be set equal to the sample moments of the whole sample, or to the sample moments of the treated group. The later will produce the average treatment effect of the treated (ATT)} \item{popMom}{A vector of population moments to use for balancing. It can be used of those moments are available from a census, for example. When available, it greatly improves efficiency.} \item{family}{By default, the outcome is linearly related to the treatment indicators. If the outcome is binary, it is possible to use the estimating equations of either the logit or probit model.} \item{type}{"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, "ETEL" for exponentially tilted empirical likelihood of Schennach(2007), "HD" for Hellinger Distance of Kitamura-Otsu-Evdokimov (2013), and "ETHD" for the exponentially tilted Hellinger distance of Antoine-Dovonon (2015). "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.} \item{tol_lam}{Tolerance for \eqn{\lambda} between two iterations. The algorithm stops when \eqn{\|\lambda_i -\lambda_{i-1}\|} reaches \code{tol_lamb} (see \code{\link{getLamb}}) } \item{maxiterlam}{The algorithm to compute \eqn{\lambda} stops if there is no convergence after "maxiterlam" iterations (see \code{\link{getLamb}}).} \item{tol_obj}{Tolerance for the gradiant of the objective function to compute \eqn{\lambda} (see \code{\link{getLamb}}).} \item{optfct}{Algorithm used for the parameter estimates} \item{tol_mom}{It is the tolerance for the moment condition \eqn{\sum_{t=1}^n p_t g(\theta(x_t)=0}, where \eqn{p_t=\frac{1}{n}D\rho()} is the implied probability. It adds a penalty if the solution diverges from its goal.} \item{optlam}{Algorithm used to solve for the lagrange multiplier in \code{\link{getLamb}}. The algorithm Wu is only for \code{type="EL"}. The value of \code{optlam} is ignored for "CUE" because in that case, the analytical solution exists.} \item{data}{A data.frame or a matrix with column names (Optional). } \item{Lambdacontrol}{Controls for the optimization of the vector of Lagrange multipliers used by either \code{\link{optim}}, \code{\link{nlminb}} or \code{\link{constrOptim}}} \item{model, X, Y}{logicals. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{verbose}{If TRUE, a summary of the convergence is printed} \item{tolConv}{The tolerance for comparing moments between groups} \item{...}{More options to give to \code{\link{optim}} or \code{\link{nlminb}}. In \code{checkConv}, they are options passed to \code{\link{getImpProb}}.} } \details{ We want to estimate the model \eqn{Y_t = \theta_1 + \theta_2 treat + \epsilon_t}, where \eqn{\theta_2} is the treatment effect. GEL is used to balance the sample based on the argument \code{x} above. For example, if we want the sample mean of \code{x1} and \code{x2} to be balanced between the treated and control, we set \code{x} to \code{~x1+x2}. If we want the sample mean of \code{x1}, \code{x2}, \code{x1*x2}, \code{x1^2} and \code{x2^2}, we set \code{x} to \code{~x1*x2 + I(x1^2) + I(x2^2)}. } \value{ 'gel' returns an object of 'class' '"ategel"' The functions 'summary' is used to obtain and print a summary of the results. The object of class "ategel" is a list containing the same elements contained in objects of class \code{\link{gel}}. } \references{ Lee, Seojeong (2016), Asymptotic refinements of misspecified-robust bootstrap for GEL estimators, \emph{Journal of Econometrics}, \bold{192}, 86--104. Schennach, Susanne, M. (2007), Point Estimation with Exponentially Tilted Empirical Likelihood. \emph{Econometrica}, \bold{35}, 634-672. Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. \emph{Survey Methodology}, \bold{31}(2), page 239. Chausse, P. (2010), Computing Generalized Method of Moments and Generalized Empirical Likelihood with R. \emph{Journal of Statistical Software}, \bold{34}(11), 1--35. URL \doi{10.18637/jss.v034.i11}. Chausse, P. and Giurcanu, M. and Luta, G. (2021) Estimating the Average Causal Effect using Generalized Empirical Likelihood Methods, Work in progress. } \examples{ data(nsw) # Scale income nsw$re78 <- nsw$re78/1000 nsw$re75 <- nsw$re75/1000 res <- ATEgel(re78~treat, ~age+ed+black+hisp+married+nodeg+re75, data=nsw,type="ET") summary(res) chk <- checkConv(res) res2 <- ATEgel(re78~treat, ~age+ed+black+hisp+married+nodeg+re75, data=nsw,type="ET", momType="balSample") summary(res2) chk2 <- checkConv(res2) } gmm/man/getImpProb.Rd0000644000176200001440000000247513460072542014157 0ustar liggesusers\name{getImpProb} \alias{getImpProb} \alias{getImpProb.gel} \title{Implied Probabilities} \description{ It computes the implied probabilities from objects of class \code{gel} with additional options. } \usage{ \method{getImpProb}{gel}(object, posProb=TRUE, normalize=TRUE, checkConv=FALSE,...) } \arguments{ \item{object}{Object of class \code{gel}.} \item{posProb}{Should the implied probabilities be transformed into positive probabilities?} \item{normalize}{Should we normalize the probabilities so that they sum to one?} \item{checkConv}{Should we add the attribute convergence to check the sum of the probabilities and the weighted sum of the moment conditions?} \item{...}{Additional arguments to pass to other methods} } \value{ A vector af implied probabilities. } \references{ Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) pt <- getImpProb(res) } gmm/man/plot.Rd0000644000176200001440000000477011305632271013062 0ustar liggesusers\name{plot} \alias{plot.gel} \alias{plot.gmm} \title{Plot Diagnostics for gel and gmm objects} \description{ It is a plot method for \code{gel} or \code{gmm} objects. } \usage{ \method{plot}{gel}(x, which = c(1L:4), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values","Implied probabilities"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) \method{plot}{gmm}(x, which = c(1L:3), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) } \arguments{ \item{x}{\code{gel} or \code{gmm} object, typically result of \code{\link{gel}} or \code{\link{gmm}}.} \item{which}{if a subset of the plots is required, specify a subset of the numbers \code{1:4} for \code{gel} or \code{1:3} for \code{gmm}.} \item{main}{Vector of titles for each plot. } \item{panel}{panel function. The useful alternative to \code{\link{points}}, \code{\link{panel.smooth}} can be chosen by \code{add.smooth = TRUE}.} \item{ask}{logical; if \code{TRUE}, the user is \emph{ask}ed before each plot, see \code{\link{par}(ask=.)}.} \item{\dots}{other parameters to be passed through to plotting functions.} \item{add.smooth}{logical indicating if a smoother should be added to most plots; see also \code{panel} above.} } \details{ It is a beta version of a plot method for \code{gel} objects. It is a modified version of \code{plot.lm}. For now, it is available only for linear models expressed as a formula. Any suggestions are welcome regarding plots or options to include. The first two plots are the same as the ones provided by \code{plot.lm}, the third is the dependant variable \eqn{y} with its mean \eqn{\hat{y}} (the fitted values) and the last plots the implied probabilities with the empirical density \eqn{1/T}. } \examples{ # GEL # n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n,list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) plot(res, which = 3) plot(res, which = 4) # GMM # res <- gmm(g, x) plot(res, which = 3) } gmm/man/estfun.Rd0000644000176200001440000000520014132201704013367 0ustar liggesusers\name{estfun} \alias{estfun.gmmFct} \alias{estfun.gmm} \alias{estfun.gel} \alias{estfun.tsls} \alias{model.matrix.tsls} \title{Extracts the empirical moment function} \description{ It extracts the matrix of empirical moments so that it can be used by the \code{\link{kernHAC}} function. } \usage{ \method{estfun}{gmmFct}(x, y = NULL, theta = NULL, ...) \method{estfun}{gmm}(x, ...) \method{estfun}{gel}(x, ...) \method{estfun}{tsls}(x, ...) \method{model.matrix}{tsls}(object, ...) } \arguments{ \item{x}{A function of the form \eqn{g(\theta,y)} or a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,y_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n} or an object of class \code{gmm}. See \code{\link{gmm}} for more details. For \code{\link{tsls}}, it is an object of class \code{tsls}.} \item{object}{An object of class \code{tsls}.} \item{y}{The matrix or vector of data from which the function \eqn{g(\theta,y)} is computed if \code{g} is a function.} \item{theta}{Vector of parameters if \code{g} is a function.} \item{...}{Other arguments when \code{estfun} is applied to another class object} } \details{ For \code{estfun.gmmFct}, it returns a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,y_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n}. It is only used by \code{gmm} to obtain the estimates. For \code{estfun.gmm}, it returns the matrix of first order conditions of \eqn{\min_\theta \bar{g}'W\bar{g}/2}, which is a \eqn{n \times k} matrix with the \eqn{t^{th}} row being \eqn{g(\theta, y_t)W G}, where \eqn{G} is \eqn{d\bar{g}/d\theta}. It allows to compute the sandwich covariance matrix using \code{\link{kernHAC}} or \code{\link{vcovHAC}} when \eqn{W} is not the optimal matrix. The method if not yet available for \code{gel} objects. For tsls, model.matrix and estfun are used by \code{vcov()} to compute different covariance matrices using the \code{\link{sandwich}} package. See \code{\link{vcov.tsls}}. \code{model.matrix} returns the fitted values frin the first stage regression and \code{esfun} the residuals. } \value{ A \eqn{n \times q} matrix (see details). } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. } \examples{ n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gmm(g, x,weightsMatrix = diag(5)) gt <- res$gt G <- res$G foc <- gt%*%G foc2 <- estfun(res) foc[1:5,] foc2[1:5,] } gmm/man/wage.Rd0000644000176200001440000000144212620733247013026 0ustar liggesusers\name{wage} \docType{data} \alias{wage} \title{Labor Data} \description{ Data used to measure return to education by Griliches (1976) } \usage{data(wage)} \format{ A data frame containing 20 cross-sectional vectors. \describe{ \item{AGE, AGE80}{Age in 1969 and 1980 respetively} \item{EXPR, EXPR80}{Working experience in 1969 and 1980 respetively} \item{IQ}{IQ measure of the individual} \item{KWW}{A test score} \item{LW, LW80}{Log wage in 1969 and 1980 respectively} \item{MED}{Mother education} \item{MRT, MRT80}{} \item{RNS, RNS80}{} \item{S, S80}{Schooling in 1969 and 1980 respetively} \item{SMSA, SMSA80}{} \item{TENURE, TENURE80}{Tenure in 1969 and 1980 respetively} \item{YEAR}{} } } \source{\url{http://fhayashi.fc2web.com/datasets.htm}} \keyword{datasets} gmm/man/nsw.Rd0000644000176200001440000000303613552350472012713 0ustar liggesusers\name{nsw} \docType{data} \alias{nsw} \title{Lalonde subsample of the National Supported Work Demonstration Data (NSW)} \description{ This data was collected to evaluate the National Supported Work (NSW) Demonstration project in Lalonde (1986). } \usage{data(nsw)} \format{ A data frame containing 9 variables. \describe{ \item{treat}{Treatment assignment} \item{age}{Age} \item{ed}{Years of Education} \item{black}{1 if Black, 0 otherwise} \item{hisp}{1 if Hispanic 0 otherwise} \item{married}{1 if married 0 otherwise} \item{nodeg}{1 if no college degree 0 otherwise} \item{re75}{1975 earnings} \item{re78}{1978 earnings} } } \details{ The dataset was obtained from the ATE package (see reference). } \source{ "NSW Data Files" from Rajeev Dehejia's website. URL: \url{http://users.nber.org/~rdehejia/data/.nswdata2.html} "National Supported Work Evaluation Study, 1975-1979: Public Use Files." from the Interuniversity Consortium for Political and Social Research. URL: \url{http://www.icpsr.umich.edu/icpsrweb/ICPSR/studies/7865} } \references{ Lalonde, R. (1986). "Evaluating the Econometric Evaluations of Training Programs," American Economic Review, 76(4), 604-620. Dehejia R. and Wahba S. (1999). "Causal Effects in Non-Experimental Studies: Re-Evaluating the Evaluation of Training Programs," JASA 94 (448), 1053-1062. Asad Haris and Gary Chan (2015). ATE: Inference for Average Treatment Effects using Covariate Balancing. R package version 0.2.0. \url{https://CRAN.R-project.org/package=ATE} } \keyword{datasets} gmm/man/print.Rd0000644000176200001440000000206312620733247013237 0ustar liggesusers\name{print} \alias{print.gmm} \alias{print.sysGmm} \alias{print.gel} \title{Printing a gmm or gel object} \description{ It is a printing method for \code{gmm} or \code{gel} objects. } \usage{ \method{print}{gmm}(x, digits = 5, ...) \method{print}{gel}(x, digits = 5, ...) \method{print}{sysGmm}(x, digits = 5, ...) } \arguments{ \item{x}{An object of class \code{gmm} or \code{gel} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{digits}{The number of digits to be printed} \item{...}{Other arguments when print is applied to an other class object} } \value{ It prints some results from the estimation like the coefficients and the value of the objective function. } \examples{ # GMM # n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gmm(g, x) print(res) # GEL # t0 <- c(0,.5,.5) res <- gel(g,x,t0) print(res) } gmm/man/bwWilhelm.Rd0000644000176200001440000000561514132201704014027 0ustar liggesusers\name{bwWilhelm} \alias{bwWilhelm} \title{Wilhelm (2015) bandwidth selection} \description{ It computes the optimal bandwidth for the HAC estimation of the covariance matrix of the moment conditions. The bandwidth was shown by Wilhelm (2005) to be the one that minimizes the MSE of the GMM estimator. } \usage{ bwWilhelm(x, order.by = NULL, kernel = c("Quadratic Spectral", "Bartlett", "Parzen", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"), weights = NULL, prewhite = 1, ar.method = "ols", data = list()) } \arguments{ \item{x}{An object of class \code{gmm}.} \item{order.by}{Either a vector 'z' or a formula with a single explanatory variable like '~ z'. The observations in the model are ordered by the size of 'z'. If set to 'NULL' (the default) the observations are assumed to be ordered (e.g., a time series).} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details)} \item{approx}{A character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{weights}{numeric. A vector of weights used for weighting the estimated coefficients of the approximation model (as specified by 'approx'). By default all weights are 1 except that for the intercept term (if there is more than one variable)} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{data}{an optional data frame containing the variables in the 'order.by' model.} } \value{ The function 'bwWilhelm' returns the optimal bandwidth. } \references{ Wilhelm, D. (2015), Optimal Bandwidth Selection for Robust Generalized Method of Moments Estimation. \emph{Econometric Theory}, \bold{31}, 1054--1077 Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \doi{10.18637/jss.v016.i09}. } \note{ The function was written by Daniel Wilhelm and is based on \link{bwAndrews}. } \examples{ data(Finance) f1 <- Finance[1:300, "rm"] f2 <- Finance[1:300, "hml"] f3 <- Finance[1:300, "smb"] y <- Finance[1:300,"WMK"] ## Silly example just to make it over-identified ############################################### res <- gmm(y ~ f1, ~ f1 + f2 + f3) summary(res) ## Set the bandwidth using the second step estimate ################################################ bw <- bwWilhelm(res) res2 <- update(res, bw=bw) summary(res2) ## Set the bandwidth using the first-step estimate as for bwAndrews ################################################################### res3 <- gmm(y ~ f1, ~ f1 + f2 + f3, bw=bwWilhelm) summary(res3) } gmm/DESCRIPTION0000644000176200001440000000234014437652652012555 0ustar liggesusersPackage: gmm Version: 1.8 Date: 2023-06-04 Title: Generalized Method of Moments and Generalized Empirical Likelihood Author: Pierre Chausse Maintainer: Pierre Chausse Description: It is a complete suite to estimate models based on moment conditions. It includes the two step Generalized method of moments (Hansen 1982; ), the iterated GMM and continuous updated estimator (Hansen, Eaton and Yaron 1996; ) and several methods that belong to the Generalized Empirical Likelihood family of estimators (Smith 1997; , Kitamura 1997; , Newey and Smith 2004; , and Anatolyev 2005 ). Depends: R (>= 2.10.0), sandwich NeedsCompilation: yes Suggests: knitr, mvtnorm, car, stabledist, MASS, timeDate, timeSeries Imports: stats, methods, grDevices, graphics License: GPL (>= 2) VignetteBuilder: knitr Repository: CRAN Repository/R-Forge/Project: gmm Repository/R-Forge/Revision: 212 Repository/R-Forge/DateTimeStamp: 2023-06-06 14:44:35 Date/Publication: 2023-06-06 15:50:02 UTC Packaged: 2023-06-06 15:04:25 UTC; rforge gmm/build/0000755000176200001440000000000014437645371012147 5ustar liggesusersgmm/build/vignette.rds0000644000176200001440000000057114437645371014511 0ustar liggesusers}RMO0 ֎}8+Vܦz[D>4nIJv~%act'hh!R. n7ĨFwZjM@aABe OhPivzEZ-#ɪP<8r\ؗVi㗣̲7 Ϭ̸0FK2 `pȐحSL*SHA%OG4P'*Γ #]Ipku #include #include "gmm.h" static const R_FortranMethodDef fortranMethods[] = { {"wu", (DL_FUNC) &F77_SUB(wu), 9}, {"lamcuep", (DL_FUNC) &F77_SUB(lamcuep), 9}, {NULL, NULL, 0} }; void R_init_gmm(DllInfo *dll) { R_registerRoutines(dll, NULL, NULL, fortranMethods, NULL); R_useDynamicSymbols(dll, FALSE); } gmm/src/Makevars0000644000176200001440000000005614437370306013325 0ustar liggesusersPKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) gmm/src/gmm.h0000644000176200001440000000053013663503426012560 0ustar liggesusers#ifndef R_GMM_H #define R_GMM_H #include void F77_SUB(wu)(double *gt, double *tol, int *maxit, int *n, int *q, double *k, int *conv, double *obj, double *lam); void F77_SUB(lamcuep)(double *gt, int *n, int *q, double *k, int *maxit, int *conv, double *lam, double *pt, double *obj); #endif gmm/src/lambda_met.f0000644000176200001440000000745113467070535014076 0ustar liggesusers subroutine prep(gt, lam, n, q, d2) integer n, q, i, info, ip(q) double precision gt(n,q), lam(q), d2(q), dd(q,q) double precision tmp(n), tmp2(n), tmp3(n,q) call dgemv('n', n, q, 1.0d0, gt, n, lam, 1, 0.0d0, tmp, 1) tmp = 1/(1+tmp) call dgemv('t', n, q, 1.0d0, gt, n, tmp, 1, 0.0d0, d2, 1) tmp2 = tmp**2 do i=1,q tmp3(:,i) = -gt(:,i)*tmp2 end do call dgemm('t','n',q,q,n,1.0d0, gt, n, tmp3, n, 0.0d0, dd, q) call dgesv(q, 1, dd, q, ip, d2, q, info) end subroutine wu(gt, tol, maxit, n, q, k, conv, obj, lam) integer n, q, i, conv, maxit double precision obj, lam(q), tol, gt(n,q), k double precision dif, d2(q), r, tmp(n), tmp2(q) lam = 0.0d0 i = 1 dif = 1.0d0 do while (dif>tol .and. i <= maxit) call prep(gt, lam, n, q, d2) dif = maxval(abs(d2)) r = 1.0d0 do while (r>0) r = 0.0d0 tmp2 = lam-d2 call dgemv('n', n, q, 1.0d0, gt, n, tmp2, 1, 0.0d0, * tmp, 1) if (minval(tmp)<=-1) then r = r+1 end if if (r>0) then d2 = d2/2 end if end do lam = tmp2 i = i+1 end do if (i>=maxit) then lam = 0.0d0 conv = 1 else lam = -lam conv = 0 end if obj = sum(log(1+tmp*k))/n end subroutine ols(x, y, n, m, lwork, nrhs, info, coef) integer n, m, lwork, nrhs, info double precision x(n,m), y(n,nrhs), work(lwork) double precision coef(m,nrhs) double precision xtmp(n,m), ytmp(n,nrhs) xtmp = x ytmp = y call dgels('n', n, m, nrhs, xtmp, n, ytmp, n, work, -1, info) lwork = min(m*n, int(work(1))) if (info == 0) then call dgels('n',n,m,nrhs,xtmp,n,ytmp,n,work,lwork,info) coef = ytmp(1:m,:) end if end subroutine lamcue(gt, n, q, k, lam, pt, obj) integer n, q, lwork, info double precision gt(n,q), lam(q), one(n), pt(n), obj, k lwork = q*3 one = -1.0d0 call ols(gt, one, n, q, lwork, 1, info, lam) call dgemv('n', n, q, 1.0d0, gt, n, lam, 1, 0.0d0, * pt, 1) pt = pt*k obj = sum(-pt-(pt**2)/2)/n pt = 1+pt where (pt < 0) pt = 0.0d0 end where pt = pt/sum(pt) end subroutine getpt(gt,n,q,k,lam,pt) integer n, q double precision gt(n,q), lam(q), k, pt(n) call dgemv('n', n, q, 1.0d0, gt, n, lam, 1, 0.0d0, * pt, 1) pt = 1.0d0 + pt*k where (pt < 0) pt = 0.0d0 end where pt = pt/sum(pt) end subroutine lamcuep(gt, n, q, k, maxit, conv, lam, pt, obj) integer n, q, i, maxit, n0, n1, conv, ind(n), wi(n) double precision gt(n,q), lam(q), pt(n), obj, pt0(n), k double precision pt2(n) logical w(n) call lamcue(gt, n, q, k, lam, pt, obj) ind = (/ (i, i=1,n) /) i = 1 conv = 0 do w = pt > 0 n1 = count(w) n0 = n-n1 if (n1 < (q+1)) then pt = 1.0d0/n conv = 2 obj = 0.0d0 lam = 0.0d0 exit end if if (i > maxit) then pt = 1.0d0/n conv = 1 obj = 0.0d0 lam = 0.0d0 exit end if wi(1:n1) = pack(ind, w) call lamcue(gt(wi(1:n1),:), n1, q, k, lam, * pt0(1:n1), obj) call getpt(gt,n,q,k,lam,pt2) if (all(pt==pt2)) then exit end if pt = pt2 i = i+1 end do if (conv == 0) then obj = obj*n1/n + dble(n0)/(2*n) end if end gmm/vignettes/0000755000176200001440000000000014437645371013060 5ustar liggesusersgmm/vignettes/empir.bib0000644000176200001440000004743414010606726014652 0ustar liggesusers @article{jagannathan-skoulakis02, AUTHOR={Jagannathan, R. and Skoulakis, G.}, TITLE={Generalized Method of Moments: Applications in Finance}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={20}, PAGES={470-481}, YEAR={2002}, Number={4} } @article{garcia-renault-veredas06, AUTHOR={Garcia, R. and Renault, E. and Veredas, D.}, TITLE={Estimation of Stable Distribution by Indirect Inference}, JOURNAL={Working Paper: UCL and CORE}, VOLUME={}, PAGES={}, YEAR={2006}, Number={} } @book{nolan09, author = {J. P. Nolan}, title = {Univariate Stable Distributions - Models for Heavy Tailed Data}, year = {2020}, publisher = {Springer Series in Operations Research and Financial Engineering} } @Manual{timeDate, title = {timeDate: Rmetrics - Chronological and Calendarical Objects}, author = {Diethelm Wuertz and Yohan Chalabi with contributions from Martin Maechler and Joe W. Byers and others}, year = {2009}, note = {R package version 2100.86}, url = {http://CRAN.R-project.org/package=timeDate}, } @Manual{timeSeries, title = {timeSeries: Rmetrics - Financial Time Series Objects}, author = {Diethelm Wuertz and Yohan Chalabi}, year = {2009}, note = {R package version 2100.84}, url = {http://CRAN.R-project.org/package=timeSeries}, } @Book{MASS, title = {Modern Applied Statistics with S}, author = {W. N. Venables and B. D. Ripley}, publisher = {Springer}, edition = {Fourth}, address = {New York}, year = {2002}, note = {ISBN 0-387-95457-0}, url = {http://www.stats.ox.ac.uk/pub/MASS4} } @book{hall05, author = {A. R. Hall}, title = {Generalized Method of Moments (Advanced Texts in Econometrics)}, year = {2005}, publisher = {Oxford University Press}, address = {}, } @Book{wooldridge02, author = {Wooldridge, J. M.}, title = {Econometric Analysis of Cross Section and Panel Data}, publisher = {Cambridge, MA: MIT Press}, year = {2002}, } @Book{cochrane01, author = {Cochrane, J. H.}, title = {Asset Pricing}, publisher = {Princeton University Press}, year = {2001}, } @article{chausse09, AUTHOR={Chauss\'e, P.}, TITLE={Computing Generalized Empirical Likelihood and Generalized Method of Moments with R}, JOURNAL={Working Paper, University of Waterloo}, VOLUME={}, PAGES={}, YEAR={2011}, Number={} } @article{smith01, AUTHOR={Smith, R. J.}, TITLE={GEL Criteria for Moment Condition Models}, JOURNAL={Working Paper, University of Bristol}, VOLUME={}, PAGES={}, YEAR={2001}, Number={} } @article{chausse08, AUTHOR={Chauss\'e, P.}, TITLE={Generalized Emprical Likelihood for a Continuum of Moment Conditons}, JOURNAL={Working Paper, University of Waterloo}, VOLUME={}, PAGES={}, YEAR={2011}, Number={} } @Book{campbell-lo-mackinlay96, author = {Campbell, J. Y. and Lo, A. W. and Mackinlay, A. C.}, title = {The Econometrics of Financial Markets}, publisher = {Princeton University Press}, year = {1996}, } @article{newey-west94, AUTHOR={Newey, W. K. and West, K. D.}, TITLE={Automatic Lag Selection in Covariance Matrix Estimation}, JOURNAL={Review of Economic Studies}, VOLUME={61}, PAGES={631-653}, YEAR={1994}, Number={} } @article{andrews-monahan92, AUTHOR={Andrews, W. K. and Monahan, J. C.}, TITLE={An Improved Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimator}, JOURNAL={Econometrica}, VOLUME={60}, PAGES={953-966}, YEAR={1992}, Number={4} } @Book{white84, author = {White, H.}, title = {Asymptotic Theory for Econometricians}, publisher = {Academic Press}, year = {1984}, } @Book{gallant87, author = {Gallant, A. R.}, title = {Nonlinear Statistical Models}, publisher = {Wiley}, year = {1987}, } @article{zeileis06, AUTHOR={Zeileis, A.}, TITLE={Object-oriented Computation of Sandwich Estimator}, JOURNAL={Journal of Statistical Software}, VOLUME={16}, PAGES={1-16}, YEAR={2006}, Number={9}, url={http://www.jstatsoft.org/v16/i09/} } @article{chausse10, title = {Computing Generalized Method of Moments and Generalized Empirical Likelihood with R}, author = {Pierre Chauss{\'e}}, journal = {Journal of Statistical Software}, year = {2010}, volume = {34}, number = {11}, pages = {1-35}, url = {http://www.jstatsoft.org/v34/i11/} } @article{zeileis04, AUTHOR={Zeileis, A.}, TITLE={Econometric Computing with HC and HAC Covariance Matrix Estimators}, JOURNAL={Journal of Statistical Software}, VOLUME={11}, PAGES={1-17}, YEAR={2004}, Number={10}, url={http://www.jstatsoft.org/v11/i10/} } @Book{luenberger97, author = {Luenberger, D. G.}, title = {Optimization by Vector Space Methods}, publisher = {Wiley and Sons}, year = {1997}, } @article{smith04, AUTHOR={Smith, R. J.}, TITLE={GEL Criteria for Moment Condition Models}, JOURNAL={CeMMAP working papers, Institute for Fiscal Studies}, VOLUME={}, PAGES={}, YEAR={2004}, Number={} } @article{kitamura-tripathi-ahn04, AUTHOR={Kitamura, Y. and Tripathi, G. and Ahn, H.}, TITLE={Empirical Likelihood-Based Inference in Conditional Moment Restriction Models}, JOURNAL={Econometrica}, VOLUME={72}, PAGES={1667-1714}, YEAR={2004}, Number={} } @article{blaschke-neubauer-scherzer97, AUTHOR={Blaschke, B. and Neubauer, A. and Scherzer, O.}, TITLE={On the Convergence Rates for the Iteratively Regularized Gauss-Newton Method}, JOURNAL={IMA Journal of Numerical Analysis}, VOLUME={17}, PAGES={421-436}, YEAR={1997}, Number={} } @article{carrasco-florens-renault07, AUTHOR={Carrasco, M. and Florens, J. P. and Renault, E.}, TITLE={Linear Inverse Problems in Structural Econometrics Estimation Based on Spectral Decomposition and Regularization}, JOURNAL={Handbook of Econometrics}, VOLUME={6B}, PAGES={5633-5751}, YEAR={2007}, Number={} } @article{donald-imbens-newey03, AUTHOR={Donald, S. and Imbens, G. and Newey, W. K.}, TITLE={Empirical Likelihood Estimation and Consistent Tests with Conditional Moment Restrictions}, JOURNAL={Journal of Econometrics}, VOLUME={117}, PAGES={55-93}, YEAR={2003}, Number={} } @article{carrasco07, AUTHOR={Carrasco, M.}, TITLE={A Regularization Approach to the Many Instruments Problem}, JOURNAL={Forthcoming in the Journal of Econometrics}, VOLUME={}, PAGES={}, YEAR={2009}, Number={} } @article{parzen70, AUTHOR={Parzen, E.}, TITLE={Statistical inference on time series by RKHS methods}, JOURNAL={Canadian Mathematical Congress}, VOLUME={Edited by R. Pyke}, PAGES={1-37}, YEAR={1970}, Number={} } @article{qi-nian00, AUTHOR={Qi-Nian, J.}, TITLE={On the Iterative Regularized Gauss-Newton Method for Solving Nonlinear Ill-posed Problem}, JOURNAL={Mathematics of Computation}, VOLUME={69}, PAGES={1603-1623}, YEAR={2000}, Number={232} } @article{schennach07, AUTHOR={Schennach, S. M.}, TITLE={Point Estimation with Exponentially Tilted Empirical Likelihood}, JOURNAL={Econometrica}, VOLUME={35}, PAGES={634-672}, YEAR={2007}, Number={2} } @article{guggenberger08, AUTHOR={Guggenberger, P.}, TITLE={Finite Sample Evidence Suggesting a Heavy Tail Problem of the Generalized Empirical Likelihood Estimator}, JOURNAL={Econometric Reviews}, VOLUME={26}, PAGES={526-541}, YEAR={2008}, Number={} } @article{guggenberger-hahn05, AUTHOR={Guggenberger, P. and Hahn, J.}, TITLE={Finite Sample Properties of the Two-Step Empirical Likelihood Estimator}, JOURNAL={Econometric Reviews}, VOLUME={24}, PAGES={247-263}, YEAR={2005}, Number={3} } @article{groetsch93, AUTHOR={Groetsch, C.}, TITLE={Inverse Problems in Mathematical Sciences}, JOURNAL={Wiesbaden: Vieweg}, VOLUME={}, PAGES={}, YEAR={1993} } @article{carrasco-florents00, AUTHOR={Carrasco, M. and Florens, J. P.}, TITLE={Generalization of GMM to a Continuum of Moment Conditions}, JOURNAL={Econometric Theory}, VOLUME={16}, PAGES={655-673}, YEAR={2000} } @article{carrasco-florens00, AUTHOR={Carrasco, M. and Florens, J. P.}, TITLE={Generalization of GMM to a Continuum of Moment Conditions}, JOURNAL={Econometric Theory}, VOLUME={16}, PAGES={655-673}, YEAR={2000} } @article{carrasco-florens02, AUTHOR={Carrasco, M. and Florens, J. P.}, TITLE={Efficient GMM Estimation Using the Empirical Characteristic Function}, JOURNAL={Working Paper, Institut d'Économie Industrielle, Toulouse}, VOLUME={}, PAGES={}, YEAR={2002} } @article{anatolyev05, AUTHOR={Anatolyev, S.}, TITLE={GMM, GEL, Serial Correlation, and Asymptotic Bias}, JOURNAL={Econometrica}, VOLUME={73}, PAGES={983-1002}, YEAR={2005} } @article{hansen82, AUTHOR={Hansen, L. P.}, TITLE={Large Sample Properties of Generalized Method of Moments Estimators}, JOURNAL={Econometrica}, VOLUME={50}, PAGES={1029-1054}, YEAR={1982} } @article{hansen-heaton-yaron96, AUTHOR={Hansen, L. P. and Heaton, J. and Yaron, A.}, TITLE={Finit-Sample Properties of Some Alternative GMM Estimators}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={14}, PAGES={262-280}, YEAR={1996} } @article{pakes-pollard89, AUTHOR={Pakes, A. and Pollard, D.}, TITLE={Simulation and the Asymptotics of Optimization Estimators}, JOURNAL={Econometrica}, VOLUME={57}, PAGES={1027-1057}, YEAR={1989} } @article{imbens02, NUMBER={4}, AUTHOR={Imbens, G. W.}, TITLE={Generalized Method of Moments and Empirical Likelihood}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={20}, PAGES={493-506}, YEAR={2002} } @article{imbens97, AUTHOR={Imbens, G. W.}, TITLE={One-Step Estimators for Over-Identified Generalized Method of Moments Models}, JOURNAL={Review of Economics Studies}, VOLUME={64}, PAGES={359-383}, YEAR={1997} } @article{smith97, AUTHOR={Smith, R. J.}, TITLE={Alternative Semi-Parametric Likelihood Approaches to Generalized Method of Moments Estimation}, JOURNAL={The Economic Journal}, VOLUME={107}, PAGES={503-519}, YEAR={1997} } @article{newey-smith04, author = {Newey, W. K. and Smith, R. J.}, title = {Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators}, JOURNAL={Econometrica}, VOLUME={72}, PAGES={219-255}, YEAR={2004} } @article{kitamura97, NUMBER={5}, AUTHOR={Kitamura, Y.}, TITLE={Empirical Likelihood Methods With Weakly Dependent Processes}, JOURNAL={The Annals of Statistics}, VOLUME={25}, PAGES={2084-2102}, YEAR={1997} } @article{kitamura-stutzer97, NUMBER={5}, AUTHOR={Kitamura, Y. and Stutzer, M.}, TITLE={An Information-Theoretic Alternative to Generalized Method of Moments Estimation}, JOURNAL={Econometrica}, VOLUME={65}, PAGES={861-874}, YEAR={1997} } @article{owen88, NUMBER={}, AUTHOR={Owen, A. B.}, TITLE={Empirical Likelihood Ratio Confidence Intervals for a Single Functional}, JOURNAL={Biometrika}, VOLUME={75}, PAGES={237-249}, YEAR={1988} } @article{singleton01, NUMBER={102}, AUTHOR={Singleton, K.}, TITLE={Estimation of Affine Pricing Models Using the Empirical Characteristic Function}, JOURNAL={Journal of Econometrics}, VOLUME={}, PAGES={111-141}, YEAR={2001} } @Book{owen01, author = {Owen, A. B.}, publisher = {Chapman and Hall}, title = {Empirical Likelihood}, year = {2001}, } @article{carrasco-chernov-florens-ghysels07, NUMBER={140}, AUTHOR = {Carrasco, M. and Chernov, M. and Florens, J. P. and Ghysels, E.}, TITLE = {Efficient of General Dynamic Models with Continuun of Moment Conditions}, JOURNAL = {Journal of Econometrics}, VOLUME={}, PAGES={529-573}, YEAR={2007} } @Unpublished{Bindelli05, author = {Bindelli, L.}, title = {Testing the New Keynesian Phillips Curve: a Frequency Domain Approach}, note = {Université de Lausanne. Dernière version: 2005}, OPTkey = {}, OPTmonth = {}, OPTyear = {}, YEAR={2005}, OPTannote = {} } @article{chamberlain87, NUMBER={}, AUTHOR={Chamberlain, G.}, TITLE={Asymptotic Efficiency in Estimation with Conditional Moment Restrictions}, JOURNAL={Journal of Econometrics}, VOLUME={34}, PAGES={304-334}, YEAR={1987} } @article{nelson90, NUMBER={}, AUTHOR={Nelson, D.}, TITLE={ARCH Models as Diffusion Approximations}, JOURNAL={Journal of Econometrics}, VOLUME={45}, PAGES={7-38}, YEAR={1990} } @article{hull-white87, NUMBER={}, AUTHOR={Hull, J. and White, A.}, TITLE={The Pricing of Options on Assets with Stochastic Volatilities}, JOURNAL={Journal of Finance}, VOLUME={42}, PAGES={281-300}, YEAR={1987} } @article{nowman97, NUMBER={}, AUTHOR={Nowman, K.}, TITLE={Gaussian estimation of single-factor continuous time models of the term structure of interest rate}, JOURNAL={Journal of Finance}, VOLUME={52}, PAGES={1695-1703}, YEAR={1997} } @article{yu-phillips01, NUMBER={}, AUTHOR={Yu, J. and Phillips, P. C. B.}, TITLE={Gaussian estimation of continuous time models of the short term structure of interest rate}, JOURNAL={Cowles Foundation Discussion Paper}, VOLUME={1309}, PAGES={}, YEAR={2001} } @article{bandi-phillips03, NUMBER={}, AUTHOR={Bandi, F. M. and Phillips, P. C. B.}, TITLE={Fully nonparametric estimation of scalar diffusion models}, JOURNAL={Econometrica}, VOLUME={71}, PAGES={241-283}, YEAR={2003} } @article{qin-lawless94, NUMBER={1}, AUTHOR={Qin, J. and Lawless, J.}, TITLE={Empirical Likelihood and General Estimating Equation}, JOURNAL={The Annals of Statistics}, VOLUME={22}, PAGES={300-325}, YEAR={1994} } @Manual{gmm, title = {gmm: Generalized Method of Moments and Generalized Empirical Likelihood}, author = {Pierre Chausse}, year = {2009}, note = {R package version 1.4-0}, } @Manual{fBasics, title = {fBasics: Rmetrics - Markets and Basic Statistics}, author = {Diethelm Wuertz}, year = {2009}, note = {R package version 2100.78}, url = {http://CRAN.R-project.org/package=fBasics}, } @Manual{stabledist, title = {stabledist: Stable Distribution Functions}, author = {Diethelm Wuertz and Martin Maechler and Rmetrics core team members.}, year = {2012}, note = {R package version 0.6-4}, url = {http://CRAN.R-project.org/package=stabledist}, } @Manual{mvtnorm, title = {mvtnorm: Multivariate Normal and t Distributions}, author = {Alan Genz and Frank Bretz and Tetsuhisa Miwa and Xuefei Mi and Friedrich Leisch and Fabian Scheipl and Torsten Hothorn}, year = {2009}, note = {R package version 0.9-8}, url = {http://CRAN.R-project.org/package=mvtnorm}, } @Article{plm, title = {Panel Data Econometrics in {R}: The {plm} Package}, author = {Yves Croissant and Giovanni Millo}, journal = {Journal of Statistical Software}, year = {2008}, volume = {27}, number = {2}, url = {http://www.jstatsoft.org/v27/i02/}, } @Manual{car, title = {car: Companion to Applied Regression}, author = {John Fox}, year = {2009}, note = {R package version 1.2-16}, url = {http://CRAN.R-project.org/package=car}, } @article{diciccio-hall-romano91, NUMBER={2}, AUTHOR={DiCiccio, T. and Hall, P. and Romano, J.}, TITLE={Empirical Likelihood is Bartlett-Correctable}, JOURNAL={The Annals of Statistics}, VOLUME={19}, PAGES={1053-1061}, YEAR={1991} } @article{ramlau-teschke05, NUMBER={}, AUTHOR={Ramlau, R. and Teschke, G.}, TITLE={Tikhonov Replacement Functionals for Iteratively Solving Nonlinear Operator Equations}, JOURNAL={Inverse Problems}, VOLUME={21}, PAGES={1571-1592}, YEAR={2005} } @article{brown-newey02, AUTHOR={Brown, B. and Newey, W. K.}, TITLE={Generalized Method of Moments, Efficiency Bootsrapping, and Improved Inference}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={20}, PAGES={507-517}, YEAR={2002} } @article{newey-west87a, AUTHOR={Newey, W. K. and West, K. D.}, TITLE={A Simple, Positive Semi-definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix}, JOURNAL={Econometrica}, VOLUME={55}, PAGES={703-708}, YEAR={1987} } @article{andrews91, AUTHOR={Andrews, D. W. K.}, TITLE={Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation}, JOURNAL={Econometrica}, VOLUME={59}, PAGES={817-858}, YEAR={1991} } @article{chesher-smith97, AUTHOR={Chesher, A. and Smith, R. J.}, TITLE={Likelihood Ratio Specification Tests}, JOURNAL={Econometrica}, VOLUME={65}, PAGES={627-646}, YEAR={1997} } @article{horowitz02, AUTHOR={Horowitz, J.}, TITLE={The Bootstrap in Econometrics}, JOURNAL={Handbook of Econometrics}, VOLUME={Vol. 5 eds. J. Heckman and E. Leamer, Amsterdam: North Holland}, YEAR={2002} } @article{imbens-spady-johnson98, AUTHOR={Imbens, G. W. and Spady, R. H. and Johnson, P.}, TITLE={Information Theoretic Approaches to Inference in Moment Condition Models}, JOURNAL={Econometrica}, VOLUME={66}, PAGES={333-357}, YEAR={1998} } @article{hullwhite87, NUMBER={}, AUTHOR={Hull, J. and White, A.}, TITLE={The Pricing of Options on Assets with Stochastic Volatilities}, JOURNAL={Journal of Finance}, VOLUME={42}, PAGES={281-300}, YEAR={1987} } @article{yu-phillips01, NUMBER={}, AUTHOR={Yu, J. and Phillips, P. C. B.}, TITLE={Gaussian estimation of continuous time models of the short term structure of interest rate}, JOURNAL={Cowles Foundation Discussion Paper}, VOLUME={1309}, PAGES={}, YEAR={2001} } @article{li-he05, NUMBER={4}, AUTHOR={Li, K. and He, Y.}, TITLE={Taylor Expansion Algorithme for the Branching Solution of the Navier-Stokes Equations}, JOURNAL={International Journal Numerical Analysis and Modeling}, VOLUME={2}, PAGES={459-478}, YEAR={2005} } @article{ramm04, NUMBER={N2}, AUTHOR={Ramm, A. G.}, TITLE={Dynamical systems method for solving operator equations}, JOURNAL={Comm. Nonlinear Sci. and Numer. Simul.}, VOLUME={9}, PAGES={383-402}, YEAR={2004a} } @article{airapetyan-ramm00, NUMBER={}, AUTHOR={Airayetpan, R. G. and Ramm, A. G.}, TITLE={Dynamical systems and Discrete Methods for Solving Nonlinear Ill-posed Problem}, JOURNAL={Applied Mathematics Review}, VOLUME={1}, PAGES={491-536}, YEAR={2000} } @article{ramm04-2, NUMBER={}, AUTHOR={Ramm, A. G.}, TITLE={Dynamical systems method for solving nonlinear operator equations}, JOURNAL={Int. J. Appl. Math. Sci.}, VOLUME={1}, PAGES={97-110}, YEAR={2004b} } @article{jin00, NUMBER={232}, AUTHOR={Jin, Q. N.}, TITLE={On the Iteratively Regularized Gauss-Newton Method for solving nonlinear Ill-Posed Problems}, JOURNAL={Mathematics of Computation}, VOLUME={69}, PAGES={1603-1623}, YEAR={2000} } @article{watson93, NUMBER={6}, AUTHOR={Watson, M. W.}, TITLE={Measures of Fit for Calibrated Models}, JOURNAL={The Journal of Political Economy}, VOLUME={101}, PAGES={1011-1041}, YEAR={1993} } @article{diebold-ohanian-berkowitz98, NUMBER={}, AUTHOR={Diebold, F. X. and Ohanian, L. E. and Berkowitz, J.}, TITLE={Dynamic Equilibrium Economies: A Framework for Comparing Models and Data}, JOURNAL={Review of Economic Studies}, VOLUME={65}, PAGES={433-451}, YEAR={1998} } @article{Berkowitz01, NUMBER={}, AUTHOR={Berkowitz, J.}, TITLE={Generalized Spectral Estimation of the Consumption based Pricing Model}, JOURNAL={Journal of Econometrics}, VOLUME={104}, PAGES={269-288}, YEAR={2001} } @article{christiano-vigfusson03, NUMBER={4}, AUTHOR={Christiano, J. L. and Vigfusson, R. J.}, TITLE={Maximum Likelihood in the Frequency Domain: The Importance of Time-to-Plan}, JOURNAL={Journal of Monetary Economics}, VOLUME={50}, PAGES={}, YEAR={2003} } @article{seidman-vogel89, NUMBER={}, AUTHOR={Seidman, T. I. and Vogel, C. R.}, TITLE={Well Posedness and Convergence of some Regularisation Methods for Non-linear Ill-posed Problems}, JOURNAL={Inverse Problems}, VOLUME={5}, PAGES={227-238}, YEAR={1989} } @Book{hamilton94, author = {Hamilton, J. D.}, publisher = {Princeton University Press}, title = {Time Series Analysis}, year = {1994}, } gmm/vignettes/gmm_with_R.rnw0000644000176200001440000017532214271751556015715 0ustar liggesusers\documentclass[11pt,letterpaper]{article} \usepackage{amsthm} \usepackage[hmargin=2cm,vmargin=2.5cm]{geometry} \newtheorem{theorem}{Theorem} \newtheorem{col}{Corollary} \newtheorem{lem}{Lemma} \usepackage[utf8]{inputenc} \newtheorem{ass}{Assumption} \usepackage{amsmath} \usepackage{verbatim} \usepackage[round]{natbib} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{graphicx} \usepackage{hyperref} \hypersetup{ colorlinks, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black } \bibliographystyle{plainnat} \newcommand{\E}{\mathrm{E}} \newcommand{\diag}{\mathrm{diag}} \newcommand{\Prob}{\mathrm{Pr}} \newcommand{\Var}{\mathrm{Var}} \let\proglang=\textsf \newcommand{\pkg}[1]{{\fontseries{m}\fontseries{b}\selectfont #1}} \newcommand{\Vect}{\mathrm{Vec}} \newcommand{\Cov}{\mathrm{Cov}} \newcommand{\conP}{\overset{p}{\to}} \newcommand{\conD}{\overset{d}{\to}} \newcommand\Real{ \mathbb{R} } \newcommand\Complex{ \mathbb{C} } \newcommand\Natural{ \mathbb{N} } \newcommand\rv{{\cal R}} \newcommand\Q{\mathbb{Q}} \newcommand\PR{{\cal R}} \newcommand\T{{\cal T}} \newcommand\Hi{{\cal H}} \newcommand\La{{\cal L}} \newcommand\plim{plim} \renewcommand{\epsilon}{\varepsilon} \begin{document} \author{Pierre Chauss\'e} \title{Computing Generalized Method of Moments and Generalized Empirical Likelihood with \proglang{R}} \maketitle \abstract{This paper shows how to estimate models by the generalized method of moments and the generalized empirical likelihood using the \proglang{R} package \textbf{gmm}. A brief discussion is offered on the theoretical aspects of both methods and the functionality of the package is presented through several examples in economics and finance. It is a modified version of \cite{chausse10} published in the Journal of Statistical Software. It has been adapted to the version 1.4-0. \textbf{Notice that the maintenance of the package is converging to zero. The new \pkg{momentfit} package, available on CRAN, will soon replace the \pkg{gmm} package.}} %\VignetteIndexEntry{Computing Generalized Empirical Likelihood and Generalized Method of Moments with R} %\VignetteDepends{gmm,mvtnorm,stabledist, car, MASS, timeDate, timeSeries} %\VignetteKeywords{generalized empirical likelihood, generalized method of moments, empirical likelihood, continuous updated estimator, exponential tilting, exponentially tilted empirical likelihood} %\VignettePackage{gmm} %\VignetteEngine{knitr::knitr} <>= library(knitr) opts_chunk$set(size='footnotesize', fig.height=5, out.width='70%') @ \section{Introduction} The generalized method of moments (GMM) has become an important estimation procedure in many areas of applied economics and finance since \cite{hansen82} introduced the two step GMM (2SGMM). It can be seen as a generalization of many other estimation methods like least squares (LS), instrumental variables (IV) or maximum likelihood (ML). As a result, it is less likely to be misspecified. The properties of the estimators of LS depend on the exogeneity of the regressors and the circularity of the residuals, while those of ML depend on the choice of the likelihood function. GMM is much more flexible since it only requires some assumptions about moment conditions. In macroeconomics, for example, it allows to estimate a structural model equation by equation. In finance, most data such as stock returns are characterized by heavy-tailed and skewed distributions. Because it does not impose any restriction on the distribution of the data, GMM represents a good alternative in this area as well. As a result of its popularity, most statistical packages like \proglang{Matlab}, \proglang{Gauss} or \proglang{Stata} offer tool boxes to use the GMM procedure. It is now possible to easily use this method in \proglang{R} with the new \pkg{gmm} package. Although GMM has good potential theoretically, several applied studies have shown that the properties of the 2SGMM may in some cases be poor in small samples. In particular, the estimators may be strongly biased for certain choices of moment conditions. In response to this result, \cite{hansen-heaton-yaron96} proposed two other ways to compute GMM: the iterative GMM (ITGMM) and the continuous updated GMM (CUE)\footnote{See also \cite{hall05} for a detailed presentation of most recent developments regarding GMM.}. Furthermore, another family of estimation procedures inspired by \cite{owen01}, which also depends only on moment conditions, was introduced by \cite{smith97}. It is the generalized empirical likelihood (GEL). So far, this method has not reached the popularity of GMM and it was not included in any statistical package until \pkg{gmm} was developed for \proglang{R} which also includes a GEL procedure. Asymptotic properties of GMM and generalized empirical likelihood (GEL) are now well established in the econometric literature. \cite{newey-smith04} and \cite{anatolyev05} have compared their second order asymptotic properties. In particular, they show that the second order bias of the empirical likelihood (EL) estimator, which is a special case of GEL, is smaller than the bias of the estimators from the three GMM methods. Furthermore, as opposed to GMM, the bias does not increase with the number of moment conditions. Since the efficiency improves when the number of conditions goes up, this is a valuable property. However, these are only asymptotic results which do not necessarily hold in small sample as shown by \cite{guggenberger08}. In order to analyze small sample properties, we have to rely on Monte Carlo simulations. However, Monte Carlo studies on methods such as GMM or GEL depend on complicated algorithms which are often home made. Because of that, results from such studies are not easy to reproduce. The solution should be to use a common tool which can be tested and improved upon by the users. Because it is open source, \proglang{R} offers a perfect platform for such tool. The \pkg{gmm} package allows to estimate models using the three GMM methods, the empirical likelihood and the exponential tilting, which belong to the family of GEL methods, and the exponentially tilted empirical likelihood which was proposed by \cite{schennach07}, Also it offers several options to estimate the covariance matrix of the moment conditions. Users can also choose between \textit{optim}, if no restrictions are required on the coefficients of the model to be estimated, and either \textit{nlminb} or \textit{constrOptim} for constrained optimizations. The results are presented in such a way that \proglang{R} users who are familiar with \textit{lm} objects, find it natural. In fact, the same methods are available for \textit{gmm} and \textit{gel} objects produced by the estimation procedures. The paper is organized as follows. Section 2 presents the theoretical aspects of the GMM method along with several examples in economics and finance. Through these examples, the functionality of the \pkg{gmm} packages is presented in details. Section 3 presents the GEL method with some of the examples used in section 2. Section 4 concludes and Section 5 gives the computational details of the package. \section{Generalized method of moments} This section presents an overview of the GMM method. It is intended to help the users understand the options that the \pkg{gmm} package offers. For those who are not familiar with the method and require more details, see \cite{hansen82} and \cite{hansen-heaton-yaron96} for the method itself, \cite{newey-west94} and \cite{andrews91} for the choice of the covariance matrix or \cite{hamilton94}. We want to estimate a vector of parameters $\theta_0 \in \Real^p$ from a model based on the following $q\times 1$ vector of unconditional moment conditions: \begin{equation}\label{mcond} E[g(\theta_0,x_i)] = 0 , \end{equation} where $x_i$ is a vector of cross-sectional data, time series or both. In order for GMM to produce consistent estimates from the above conditions, $\theta_0$ has to be the unique solution to $E[g(\theta,x_i)]=0$ and be an element of a compact space. Some boundary assumptions on higher moments of $g(\theta,x_i)$ are also required. However, it does not impose any condition on the distribution of $x_i$, except for the degree of dependence of the observations when it is a vector of time series. Several estimation methods such as least squares (LS), maximum likelihood (ML) or instrumental variables (IV) can also be seen as being based on such moment conditions, which make them special cases of GMM. For example, the following linear model: \[ Y = X\beta + u , \] where $Y$ and $X$ are respectively $n\times 1$ and $n\times k$ matrices, can be estimated by LS. The estimate $\hat{\beta}$ is obtained by solving $\min_\beta \|u\|^2$ and is therefore the solution to the following first order condition: \[ \frac{1}{n}X'u(\beta) = 0 , \] which is the estimate of the moment condition $E(X_iu_i(\beta))=0$. The same model can be estimated by ML in which case the moment condition becomes: \[ E\left[\frac{d l_i(\beta)}{d\beta}\right]=0 , \] where $l_i(\beta)$ is the density of $u_i$. In presence of endogeneity of the explanatory variable $X$, which implies that $E(X_iu_i)\neq 0$, the IV method is often used. It solves the endogeneity problem by substituting $X$ by a matrix of instruments $H$, which is required to be correlated with $X$ and uncorrelated with $u$. These properties allow the model to be estimated by the conditional moment condition $E(u_i|H_i)=0$ or its implied unconditional moment condition $E(u_iH_i)=0$. In general we say that $u_i$ is orthogonal to an information set $I_i$ or that $E(u_i|I_i)=0$ in which case $H_i$ is a vector containing functions of any element of $I_i$. The model can therefore be estimated by solving \[ \frac{1}{T}H'u(\beta)=0 . \] When there is no assumption on the covariance matrix of $u$, the IV corresponds to GMM. If $E(X_iu_i)=0$ holds, generalized LS with no assumption on the covariance matrix of $u$ other than boundary ones is also a GMM method. For the ML procedure to be viewed as GMM, the assumption on the distribution of $u$ must be satisfied. If it is not, but $E(dl_i(\theta_0)/d\theta)=0$ holds, as it is the case for linear models with non normal error terms, the pseudo-ML which uses a robust covariance matrix can be seen as being a GMM method. Because GMM depends only on moment conditions, it is a reliable estimation procedure for many models in economics and finance. For example, general equilibrium models suffer from endogeneity problems because these are misspecified and they represent only a fragment of the economy. GMM with the right moment conditions is therefore more appropriate than ML. In finance, there is no satisfying parametric distribution which reproduces the properties of stock returns. The family of stable distributions is a good candidate but only the densities of the normal, Cauchy and Lévy distributions, which belong to this family, have a closed form expression. The distribution-free feature of GMM is therefore appealing in that case. Although GMM estimators are easily consistent, efficiency and bias depend on the choice of moment conditions. Bad instruments implies bad information and therefore low efficiency. The effects on finite sample properties are even more severe and are well documented in the literature on weak instruments. \cite{newey-smith04} show that the bias increases with the number of instruments but efficiency decreases. Therefore, users need to be careful when selecting the instruments. \cite{carrasco07} gives a good review of recent developments on how to choose instruments in her introduction. In general, the moment conditions $E(g(\theta_0,x_i))=0$ is a vector of nonlinear functions of $\theta_0$ and the number of conditions is not limited by the dimension of $\theta_0$. Since efficiency increases with the number of instruments $q$ is often greater than $p$, which implies that there is no solution to \[ \bar{g}(\theta) \equiv \frac{1}{n}\sum_{i=1}^n g(\theta,x_i)=0. \] The best we can do is to make it as close as possible to zero by minimizing the quadratic function $\bar{g}(\theta)'W\bar{g}(\theta)$, where $W$ is a positive definite and symmetric $q\times q$ matrix of weights. The optimal matrix $W$ which produces efficient estimators is defined as: \begin{equation}\label{optw} W^* = \left\{\lim_{n\rightarrow \infty} Var(\sqrt{n} \bar{g}(\theta_0)) \equiv \Omega(\theta_0) \right\}^{-1}. \end{equation} This optimal matrix can be estimated by an heteroskedasticity and auto-correlation consistent (HAC) matrix like the one proposed by \cite{newey-west87a}. The general form is: \begin{equation}\label{optw_hat} \hat{\Omega} = \sum_{s=-(n-1)}^{n-1} k_h(s) \hat{\Gamma}_s(\theta^*), \end{equation} where $k_h(s)$ is a kernel, $h$ is the bandwidth which can be chosen using the procedures proposed by \cite{newey-west87a} and \cite{andrews91}, \[ \hat{\Gamma}_s(\theta^*) = \frac{1}{n}\sum_i g(\theta^*,x_i)g(\theta^*,x_{i+s})' \] and $\theta^*$ is a convergent estimate of $\theta_0$. There are many choices for the HAC matrix. They depend on the kernel and bandwidth selection. Although the choice does not affect the asymptotic properties of GMM, very little is known about the impacts in finite samples. The GMM estimator $\hat{\theta}$ is therefore defined as: \begin{equation}\label{gmm} \hat{\theta} = \arg\min_{\theta} \bar{g}(\theta)'\hat{\Omega}(\theta^*)^{-1}\bar{g}(\theta) \end{equation} The original version of GMM proposed by \cite{hansen82} is called two-step GMM (2SGMM). It computes $\theta^*$ by minimizing $\bar{g}(\theta)'\bar{g}(\theta)$. The algorithm is therefore: \begin{itemize} \item[1-] Compute $\theta^* = \arg\min_\theta \bar{g}(\theta)'\bar{g}(\theta)$ \item[2-] Compute the HAC matrix $\hat{\Omega}(\theta^*)$ \item[3-] Compute the 2SGMM $\hat{\theta} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta^*)\big]^{-1}\bar{g}(\theta)$ \end{itemize} In order to improve the properties of 2SGMM, \cite{hansen-heaton-yaron96} suggest two other methods. The first one is the iterative version of 2SGMM (ITGMM) and can be computed as follows: \begin{itemize} \item[1-] Compute $\theta^{(0)} = \arg\min_\theta \bar{g}(\theta)'\bar{g}(\theta)$ \item[2-] Compute the HAC matrix $\hat{\Omega}(\theta^{(0)})$ \item[3-] Compute the $\theta^{(1)} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta^{(0)})\big]^{-1}\bar{g}(\theta)$ \item[4-] If $\| \theta^{(0)}-\theta^{(1)}\|< tol$ stops, else $\theta^{(0)}=\theta^{(1)}$ and go to 2- \item[5-] Define the ITGMM estimator $\hat{\theta}$ as $\theta^{(1)}$ \end{itemize} where $tol$ can be set as small as we want to increase the precision. In the other method, no preliminary estimate is used to obtain the HAC matrix. The latter is treated as a function of $\theta$ and is allowed to change when the optimization algorithm computes the numerical derivatives. It is therefore continuously updated as we move toward the minimum. For that, it is called the continuous updated estimator (CUE). This method is highly nonlinear. It is therefore crucial to choose a starting value that is not too far from the minimum. A good choice is the estimate from 2SGMM which is known to be root-n convergent. The algorithm is: \begin{itemize} \item[1-] Compute $\theta^*$ using 2SGMM \item[2-] Compute the CUE estimator defined as \[ \hat{\theta} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta)\big]^{-1}\bar{g}(\theta) \] using $\theta^*$ as starting value. \end{itemize} According to \cite{newey-smith04} and \cite{anatolyev05}, 2SGMM and ITGMM are second order asymptotically equivalent. On the other hand, they show that the second order asymptotic bias of CUE is smaller. The difference in the bias comes from the randomness of $\theta^*$ in $\Omega(\theta^*)$. Iterating only makes $\theta^*$ more efficient. These are second order asymptotic properties. They are informative but may not apply in finite samples. In most cases, we have to rely on numerical simulations to analyze the properties in small samples. Given some regularity conditions, the GMM estimator converges as $n$ goes to infinity to the following distribution: \[ \sqrt{n}(\hat{\theta}-\theta_0) \stackrel{L}{\rightarrow} N(0,V), \] where \[ V = E\left(\frac{\partial g(\theta_0,x_i)}{\partial\theta}\right)'\Omega(\theta_0)^{-1}E\left(\frac{\partial g(\theta_0,x_i)}{\partial\theta}\right) \] Inference can therefore be performed on $\hat{\theta}$ using the assumption that it is approximately distributed as $N(\theta_0,\hat{V}/n)$. If $q>p$, we can perform a J-test to verify if the moment conditions hold. The null hypothesis and the statistics are respectively $H0:E[g(\theta,x_i)]=0$ and: \[ n\bar{g}(\hat{\theta})'[\hat{\Omega}(\theta^*)]^{-1}\bar{g}(\hat{\theta}) \stackrel{L}{\rightarrow} \chi^2_{q-p}. \] \section{GMM with R} The \pkg{gmm} package can be loaded the usual way. <<>>= library(gmm) @ The main function is \textit{gmm()} which creates an object of class \textit{gmm}. Many options are available but in many cases they can be set to their default values. They are explained in details below through examples. The main arguments are \textit{g} and \textit{x}. For a linear model, \textit{g} is a formula like \textit{y~z1+z2} and \textit{x} the matrix of instruments. In the nonlinear case, they are respectively the function $g(\theta,x_i)$ and its argument. The available methods are \textit{coef}, \textit{vcov}, \textit{summary}, \textit{residuals}, \textit{fitted.values}, \textit{plot}, \textit{confint}. The model and data in a \textit{data.frame} format can be extracted by the generic function \textit{model.frame}. \subsection{Estimating the parameters of a normal distribution} This example\footnote{Thanks to Dieter Rozenich for his suggestion.}, is not something we want to do in practice, but its simplicity allows us to understand how to implement the \textit{gmm()} procedure by providing the gradient of $g(\theta,x_i)$. It is also a good example of the weakness of GMM when the moment conditions are not sufficiently informative. In fact, the ML estimators of the mean and the variance of a normal distribution are more efficient because the likelihood carries more information than few moment conditions. For the two parameters of a normal distribution $(\mu,\sigma)$ we have the following vector of moment conditions: \[ E[g(\theta,x_i)] \equiv E\left[ \begin{array}{c} \mu - x_{i} \\ \sigma^2 - (x_{i}-\mu)^2 \\ x_{i}^{3} - \mu (\mu^2+3\sigma^{2}) \end{array} \right] = 0 , \] where the first two can be directly obtained by the definition of $(\mu,\sigma)$ and the last comes from the third derivative of the moment generating function evaluated at 0. We first need to create a function $g(\theta,x)$ which returns an $n\times 3$ matrix: <<>>= g1 <- function(tet,x) { m1 <- (tet[1]-x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3-tet[1]*(tet[1]^2+3*tet[2]^2) f <- cbind(m1,m2,m3) return(f) } @ The following is the gradient of $\bar{g}(\theta)$: \[ G\equiv \frac{\partial \bar{g}(\theta)}{\partial \theta} = \left( \begin{array}{cc} 1 & 0\\ 2(\bar{x}-\mu) & 2\sigma\\ -3(\mu^{2}+\sigma^{2}) & -6\mu\sigma \end{array} \right). \] If provided, it will be used to compute the covariance matrix of $\hat{\theta}$. It can be created as follows: <<>>= Dg <- function(tet,x) { G <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2],-6*tet[1]*tet[2]), nrow=3,ncol=2) return(G) } @ First we generate normally distributed random numbers: <<>>= set.seed(123) n <- 200 x1 <- rnorm(n, mean = 4, sd = 2) @ We then run \textit{gmm} using the starting values $(\mu_0,\sigma^2_0)=(0,0)$ <<>>= print(res <- gmm(g1,x1,c(mu = 0, sig = 0), grad = Dg)) @ The \textit{summary} method prints more results from the estimation: <<>>= summary(res) @ The section "Initial values of the coefficients" shows the first step estimates used to either compute the weighting matrix in the 2-step GMM or the fixed bandwidth in CUE or iterative GMM. The J-test of over-identifying restrictions can also be extracted by using the method \textit{specTest}: <<>>= specTest(res) @ A small simulation using the following function shows that ML produces estimators with smaller mean squared errors than GMM based on the above moment conditions. However, it is not GMM but the moment conditions that are not efficient, because ML is GMM with the likelihood derivatives as moment conditions. <<>>= sim_ex <- function(n,iter) { tet1 <- matrix(0,iter,2) tet2 <- tet1 for(i in 1:iter) { x1 <- rnorm(n, mean = 4, sd = 2) tet1[i,1] <- mean(x1) tet1[i,2] <- sqrt(var(x1)*(n-1)/n) tet2[i,] <- gmm(g1,x1,c(0,0),grad=Dg)$coefficients } bias <- cbind(rowMeans(t(tet1)-c(4,2)),rowMeans(t(tet2)-c(4,2))) dimnames(bias)<-list(c("mu","sigma"),c("ML","GMM")) Var <- cbind(diag(var(tet1)),diag(var(tet2))) dimnames(Var)<-list(c("mu","sigma"),c("ML","GMM")) MSE <- cbind(rowMeans((t(tet1)-c(4,2))^2),rowMeans((t(tet2)-c(4,2))^2)) dimnames(MSE)<-list(c("mu","sigma"),c("ML","GMM")) return(list(bias=bias,Variance=Var,MSE=MSE)) } @ The following results can be reproduced with $n=50$, $iter=2000$ and by setting \textit{set.seed(345)}: \begin{center} \begin{tabular}{|c|c|c|c||c|c|c|} \hline &\multicolumn{3}{c||}{$\mu$}&\multicolumn{3}{c}{$\sigma$} \\ \hline & Bias & Variance & MSE & Bias & Variance &MSE \\ \hline GMM& 0.0020 &0.0929 & 0.0928& -0,0838 & 0.0481& 0.0551\\ ML& 0.0021 &0.0823 & 0.0822 & -0.0349 & 0.0411& 0.0423 \\ \hline \end{tabular} \end{center} \subsection{Estimating the parameters of a stable distribution} The previous example showed that ML should be used when the true distribution is known. However, when the density does not have a closed form expression, we have to consider other alternatives. \cite{garcia-renault-veredas06} propose to use indirect inference and perform a numerical study to compare it with several other methods. One of them is GMM for a continuum of moment conditions and was suggested by \cite{carrasco-florens02}. It uses the fact that the characteristic function $E(e^{ix_i\tau})$, where $i$ is the imaginary number and $\tau\in\Real$, has a closed form expression (for more details on stable distribution, see \cite{nolan09}). The \pkg{gmm} package does not yet deal with continuum of moment conditions but we can choose a certain grid $\{\tau_1,..., \tau_q\}$ over a given interval and estimate the parameters using the following moment conditions: \[ E\left[e^{ix_i\tau_l}-\Psi(\theta;\tau_l) \right]=0~~\mbox{for}~~l=1,...,q~, \] where $\Psi(\theta;\tau_l)$ is the characteristic function. There is more than one way to define a stable distribution and it depends on the choice of parametrization. We will follow the notation of \cite{nolan09} and consider stable distributions $S(\alpha,\beta,\gamma,\delta;1)$, where $\alpha\in (0,2]$ is the characteristic exponent and $\beta\in[-1,1]$, $\gamma>0$ and $\delta\in\Real$ are respectively the skewness, the scale and the location parameters. The last argument defines which parametrization we use. The \pkg{stabledist} package of \cite{stabledist} offers a function to generate random variables from stable distributions and uses the same notation. This parametrization implies that: \[ \Psi(\theta;\tau_l) = \left\{ \begin{array}{lcr} \exp{(-\gamma^\alpha|\tau_l|^\alpha[1-i\beta(\tan{\frac{\pi\alpha}{2}})(\mathrm{sign}(\tau_l))] + i\delta \tau_l)} &\mbox{for}&\alpha\neq 1\\ \exp{(-\gamma|\tau_l|[1+i\beta\frac{2}{\pi}(\mathrm{sign}(\tau_l))\log{|\tau_l|}] + i\delta \tau_l)} &\mbox{for}&\alpha= 1\\ \end{array} \right. , \] The function \textit{charStable} included in the package computes the characteristic function and can be used to construct $g(\theta,x_i)$. To avoid dealing with complex numbers, it returns the imaginary and real parts in separate columns because both should have zero expectation. The function is: <<>>= g2 <- function(theta,x) { tau <- seq(1,5,length.out=10) pm <- 1 x <- matrix(c(x),ncol=1) x_comp <- x%*%matrix(tau,nrow=1) x_comp <- matrix(complex(ima=x_comp),ncol=length(tau)) emp_car <- exp(x_comp) the_car <- charStable(theta,tau,pm) gt <- t(t(emp_car) - the_car) gt <- cbind(Im(gt),Re(gt)) return(gt) } @ The parameters of a simulated random vector can be estimated as follows (by default, $\gamma$ and $\delta$ are set to $1$ and $0$ respectively in \textit{rstable}). For the example, the starting values are the ones of a normal distribution with mean 0 and variance equals to \textit{var(x)}: <<>>= library(stabledist) set.seed(345) x2 <- rstable(500,1.5,.5,pm=1) t0 <- c(alpha = 2, beta = 0, gamma = sd(x2)/sqrt(2), delta = 0) print(res <- gmm(g2,x2,t0)) @ The result is not very close to the true parameters. But we can see why by looking at the J-test that is provided by the \textit{summary} method: <<>>= summary(res) @ The null hypothesis that the moment conditions are satisfied is rejected. For nonlinear models, a significant J-test may indicate that we have not reached the global minimum. Furthermore, the standard deviation of the coefficient of $\delta$ indicates that the covariance matrix is nearly singular. Notice also that the convergence code is equal to 1, which indicates that the algorithm did not converge. We could try different starting values, increase the number of iterations in the control option of \textit{optim} or use \textit{nlminb} which allows to put restrictions on the parameter space. The former would work but the latter will allow us to see how to select another optimizer. The option \textit{optfct} can be modified to use this algorithm instead of \textit{optim}. In that case, we can specify the upper and lower bounds of $\theta$. <<>>= res2 <- gmm(g2,x2,t0,optfct="nlminb",lower=c(0,-1,0,-Inf),upper=c(2,1,Inf,Inf)) summary(res2) @ Although the above modification solved the convergence problem, there is another issue that we need to address. The first step estimate used to compute the weighting matrix is almost identical to the starting values. There is therefore a convergence problem in the first step. In fact, choosing the initial $\alpha$ to be on the boundary was not a wise choice. Also, it seems that an initial value of $\beta$ equals to zero makes the objective function harder to minimize. Having a gobal minimum for the first step estimate is important if we care about efficiency. A wrong estimate will cause the weighting matrix not being a consistent estimate of the optimal matrix. The information about convergence is included in the argument 'initialAlgoInfo' of the gmm object. We conclude this example by estimating the parameters for a vector of stock returns from the data set \textit{Finance} that comes with the \pkg{gmm} package. <>= data(Finance) x3 <- Finance[1:1500,"WMK"] t0<-c(alpha = 1.8, beta = 0.1, gamma = sd(x3)/sqrt(2),delta = 0) res3 <- gmm(g2,x3,t0,optfct="nlminb") summary(res3) @ For this sub-sample, the hypothesis that the return follows a stable distribution is rejected. The normality assumption can be analyzed by testing $H_0:\alpha=2,\beta=0$ using \textit{linearHypothesis} from the \pkg{car} package: <<>>= library(car) linearHypothesis(res3,cbind(diag(2),c(0,0),c(0,0)),c(2,0)) @ It is clearly rejected. The result is even stronger if the whole sample is used. \subsection{A linear model with iid moment conditions} We want to estimate a linear model with an endogeneity problem. It is the model used by \cite{carrasco07} to compare several methods which deal with the many instruments problem. We want to estimate $\delta$ from: \[ y_i = \delta W_i + \epsilon_i \] with $\delta=0.1$ and \[ W_i = e^{-x_i^2} + u_i , \] where $(\epsilon_i,u_i) \sim ~iidN(0,\Sigma)$ with \[ \Sigma = \left( \begin{array}{cc} 1&0.5\\ 0.5&1 \end{array} \right) \] Any function of $x_i$ can be used as an instrument because it is orthogonal to $\epsilon_i$ and correlated with $W_i$. There is therefore an infinite number of possible instruments. For this example, $(x_i,x_i^2,x_i^3)$ will be the selected instruments and the sample size is set to $n=400$: <<>>= library(mvtnorm) set.seed(112233) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] @ where \textit{rmvnorm} is a multivariate normal distribution random generator which is included in the package \pkg{mvtnorm} (\cite{mvtnorm}). For a linear model, the $g$ argument is a formula that specifies the right- and left-hand sides as for \textit{lm} and $x$ is the matrix of instruments: <<>>= h <- cbind(x4, x4^2, x4^3) g3 <- y~w @ By default, an intercept is added to the formula and a vector of ones to the matrix of instruments. It implies the following moment conditions: \[ E\left(\begin{array}{c} (y_i-\alpha-\delta W_i)\\ (y_i-\alpha-\delta W_i)x_i\\ (y_i-\alpha-\delta W_i)x_i^2\\ (y_i-\alpha-\delta W_i)x_i^3 \end{array} \right)=0 \] In order the remove the intercept, -1 has to be added to the formula. In that case there is no column of ones added to the matrix of instruments. To keep the condition that the expected value of the error terms is zero, the column of ones needs to be included manually. We know that the moment conditions of this example are iid. Therefore, we can add the option \textit{vcov="iid"}. This option tells \textit{gmm} to estimate the covariance matrix of $\sqrt{n}\bar{g}(\theta^*)$ as follows: \[ \hat{\Omega}(\theta^*) = \frac{1}{n}\sum_{i=1}^n g(\theta^*,x_i)g(\theta^*,x_i)' \] However, it is recommended not to set this option to ``iid" in practice with real data because one of the reasons we want to use GMM is to avoid such restrictions. Finally, it is not necessary to provide the gradient when the model is linear since it is already included in \textit{gmm}. The first results are: <<>>= summary(res <- gmm(g3,x=h)) @ By default, the 2SGMM is computed. Other methods can be chosen by modifying the option ``type". The second possibility is ITGMM: <<>>= res2 <- gmm(g3,x=h,type='iterative',crit=1e-8,itermax=200) coef(res2) @ The procedure iterates until the difference between the estimates of two successive iterations reaches a certain tolerance level, defined by the option \textit{crit} (default is $10^{-7}$), or if the number of iterations reaches \textit{itermax} (default is 100). In the latter case, a message is printed to indicate that the procedure did not converge. The third method is CUE. As you can see, the estimates from ITGMM is used as starting values. However, the starting values are required only when \textit{g} is a function. When \textit{g} is a formula, the default starting values are the ones obtained by setting the matrix of weights equal to the identity matrix. <<>>= res3 <- gmm(g3,x=h,res2$coef,type='cue') coef(res3) @ It is possible to produce confidence intervals by using the method \textit{confint}: <<>>= confint(res3,level=.90) @ Whether \textit{optim} or \textit{nlminb} is used to compute the solution, it is possible to modify their default options by adding \textit{control=list()}. For example, you can keep track of the convergence with \textit{control=list(trace=TRUE)} or increase the number of iterations with \textit{control=list(maxit=1000)}. You can also choose the \textit{BFGS} algorithm with \textit{method="BFGS"} (see \textit{help(optim)} for more details). The methods \textit{fitted} and \textit{residuals} are also available for linear models. We can compare the fitted values of \textit{lm} with the ones from \textit{gmm} to see why this model cannot be estimated by LS. \begin{center} <<>>= plot(w,y,main="LS vs GMM estimation") lines(w,fitted(res),col=2) lines(w,fitted(lm(y~w)),col=3,lty=2) lines(w,.1*w,col=4,lty=3) legend("topleft",c("Data","Fitted GMM","Fitted LS","True line"),pch=c(1,NA,NA,NA),col=1:3,lty=c(NA,1,2,3)) @ \end{center} The LS seems to fit the model better. But the graphics hides the endogeneity problem. LS overestimates the relationship between $y$ and $w$ because it does not take into account the fact that some of the correlation is caused by the fact that $y_i$ and $w_i$ are positively correlated with the error term $\epsilon_i$. Finally, the \textit{plot} method produces some graphics to analyze the properties of the residuals. It can only be applied to \textit{gmm} objects when \textit{g} is a formula because when \textit{g} is a function, residuals are not defined. \subsection{Estimating the AR coefficients of an ARMA process} \label{ar} The estimation of auto-regressive coefficients of ARMA(p,q) processes is better performed by ML or nonlinear LS. But in Monte Carlo experiments, it is often estimated by GMM to study its properties. It gives a good example of linear models with endogeneity problems in which the moment conditions are serially correlated and possibly conditionally heteroskedastic. As opposed to the previous example, the choice of the HAC matrix becomes an important issue. We want to estimate the AR coefficients of the following process: \[ X_t = 1.4 X_{t-1} - 0.6X_{t-2} + u_t \] where $u_t = 0.6\epsilon_{t-1} -0.3 \epsilon_{t-2} + \epsilon_t$ and $\epsilon_t\sim iidN(0,1)$. This model can be estimated by GMM using any $X_{t-s}$ for $s>2$, because they are uncorrelated with $u_t$ and correlated with $X_{t-1}$ and $X_{t-2}$. However, as $s$ increases the quality of the instruments decreases since the stationarity of the process implies that the auto-correlation goes to zero. For this example, the selected instruments are $(X_{t-3},X_{t-4},X_{t-5},X_{t-6})$ and the sample size equals 400. The ARMA(2,2) process is generated by the function \textit{arima.sim}: <<>>= t <- 400 set.seed(345) x5 <- arima.sim(n=t,list(ar=c(1.4,-0.6),ma=c(0.6,-0.3))) x5t<-cbind(x5) for (i in 1:6) x5t<-cbind(x5t,lag(x5,-i)) x5t<-na.omit(x5t) g4<-x5t[,1]~x5t[,2]+x5t[,3] res<-gmm(g4,x5t[,4:7]) summary(res) @ The optimal matrix, when moment conditions are based on time series, is an HAC matrix which is defined by equation (\ref{optw_hat}). Several estimators of this matrix have been proposed in the literature. Given some regularity conditions, they are asymptotically equivalent. However, their impacts on the finite sample properties of GMM estimators may differ. The \pkg{gmm} package uses the \pkg{sandwich} package to compute these estimators which are well explained by \cite{zeileis06} and \cite{zeileis04}. We will therefore briefly summarize the available options. The option \textit{kernel} allows to choose between five kernels: Truncated, Bartlett, Parzen, Tukey-Hanning and Quadratic spectral\footnote{The first three have been proposed by \cite{white84}, \cite{newey-west87a} and \cite{gallant87} respectively and the last two, applied to HAC estimation, by \cite{andrews91}. But the latter gives a good review of all five.}. By default, the Quadratic Spectral kernel is used as it was shown to be optimal by \cite{andrews91} with respect to some mean squared error criterion. In most statistical packages, the Bartlett kernel is used for its simplicity. It makes the estimation of large models less computationally intensive. It may also make the \textit{gmm} algorithm more stable numerically when dealing with highly nonlinear models, especially with CUE. We can compare the results with different choices of kernel: <<>>= res2 <- gmm(g4,x=x5t[,4:7],kernel="Truncated") coef(res2) res3 <- gmm(g4,x=x5t[,4:7],kernel="Bartlett") coef(res3) res4 <- gmm(g4,x=x5t[,4:7],kernel="Parzen") coef(res4) res5<- gmm(g4,x=x5t[,4:7],kernel="Tukey-Hanning") coef(res5) @ The similarity of the results is not surprising since the matrix of weights should only affect the efficiency of the estimator. We can compare the estimated standard deviations using the method \textit{vcov}: <<>>= diag(vcov(res2))^.5 diag(vcov(res3))^.5 diag(vcov(res4))^.5 diag(vcov(res5))^.5 @ which shows, for this example, that the Bartlett kernel generates the estimates with the smallest variances. However, it does not mean it is better. We have to run simulations and compute the true variance if we want to compare them. In fact, we do not know which one produces the most accurate estimate of the variance. The second options is for the bandwidth selection. By default it is the automatic selection proposed by \cite{andrews91}. It is also possible to choose the automatic selection of \cite{newey-west94} by adding \textit{bw=bwNeweyWest} (without quotes because \textit{bwNeweyWest} is a function). A prewhitened kernel estimator can also be computed using the option \textit{prewhite=p}, where $p$ is the order of the vector auto-regressive (VAR) used to compute it. By default, it is set to \textit{FALSE}. \cite{andrews-monahan92} show that a prewhitened kernel estimator improves the properties of hypothesis tests on parameters. Finally, the \textit{plot} method can be applied to \textit{gmm} objects to do a Q-Q plot of the residuals: \begin{center} <<>>= plot(res,which=2) @ \end{center} or to plot the observations with the fitted values: \begin{center} <<>>= plot(res,which=3) @ \end{center} \subsection{Estimating a system of equations: CAPM} We want to test one of the implications of the capital asset pricing model (CAPM). This example comes from \cite{campbell-lo-mackinlay96}. It shows how to apply the \pkg{gmm} package to estimate a system of equations. The theory of CAPM implies that $\mu_i-R_f = \beta_i (\mu_m-R_f)$ $\forall i$, where $\mu_i$ is the expected value of stock i's return, $R_f$ is the risk free rate and $\mu_m$ is the expected value of the market porfolio's return. The theory can be tested by running the following regression: \[ (R_t-R_f) = \alpha + \beta (R_{mt}-R_f) + \epsilon_t, \] where $R_t$ is a $N\times 1$ vector of observed returns on stocks, $R_{mt}$ if the observed return of a proxy for the market portfolio, $R_f$ is the interest rate on short term government bonds and $\epsilon_t$ is a vector of error terms with covariance matrix $\Sigma_t$. When estimated by ML or LS, $\Sigma$ is assumed to be fixed. However, GMM allows $\epsilon_t$ to be heteroskedastic and serially correlated. One implication of the CAPM is that the vector $\alpha$ should be zero. It can be tested by estimating the model with $(R_{mt}-R_f)$ as instruments, and by testing the null hypothesis $H_0:~\alpha=0$. The data, which are included in the package, are the daily returns of twenty selected stocks from January 1993 to February 2009, the risk-free rate and the three factors of Fama and French\footnote{The symbols of the stocks taken from \url{http://ca.finance.yahoo.com/} are ("WMK", "UIS", "ORB", "MAT", "ABAX","T", "EMR", "JCS", "VOXX", "ZOOM", "ROG", "GGG", "PC", "GCO", "EBF", "F", "FNM", "NHP", "AA", "TDW"). The four other series can be found on K. R. French's web site: \url{http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data\_library.html}}. The following test is performed using the returns of 5 stocks and a sample size of 500\footnote{The choice of sample size is arbitrary. The purpose is to show how to estimate a system of equations not to test the CAPM. Besides, the $\beta$'s seem to vary over time. It is therefore a good practice to estimate the model using short periods.}. <<>>= data(Finance) r <- Finance[1:500,1:5] rm <- Finance[1:500,"rm"] rf <- Finance[1:500,"rf"] z <- as.matrix(r-rf) zm <- as.matrix(rm-rf) res <- gmm(z~zm,x=zm) coef(res) R <- cbind(diag(5),matrix(0,5,5)) c <- rep(0,5) linearHypothesis(res,R,c,test = "Chisq") @ where the asymptotic chi-square is used since the default distribution requires a normality assumption. The same test could have been performed using the names of the coefficients: <>= test <- paste(names(coef(res)[1:5])," = 0",sep="") linearHypothesis(res,test) @ Another way to test the CAPM is to estimate the restricted model ($\alpha=0$), which is over-identified, and to perform a J-test. Adding $-1$ to the formula removes the intercept. In that case, a column of ones has to be added to the matrix of instruments: <<>>= res2<-gmm(z~zm-1,cbind(1,zm)) specTest(res2) @ which confirms the non-rejection of the theory. \subsection{Testing the CAPM using the stochastic discount factor representation} In some cases the theory is directly based on moment conditions. When it is the case, testing the validity of these conditions becomes a way of testing the theory. \cite{jagannathan-skoulakis02} present several GMM applications in finance and one of them is the stochastic discount factor (SDF) representation of the CAPM. The general theory implies that $E(m_tR_{it})=1$ for all $i$, where $m_t$ is the SDF and $R_{it}$ the gross return ($1 + r_{it}$). It can be shown that if the CAPM holds, $m_t=\theta_0 + \theta_0 R_{mt}$ which implies the following moment conditions: \[ E\Big[R_{it}(\theta_0-\theta_1R_{mt})-1 \Big] = 0~~\mbox{for}~~ i=1,...,N \] which can be tested as follows: <<>>= g5 <- function(tet, x) { gmat <- (tet[1] + tet[2] * (1 + c(x[, 1]))) * (1 + x[, 2:6]) - 1 return(gmat) } res_sdf <- gmm(g5, x = as.matrix(cbind(rm, r)), c(0, 0)) specTest(res_sdf) @ which is consistent with the two previous tests. \subsection{Estimating continuous time processes by discrete time approximation} This last example also comes from \cite{jagannathan-skoulakis02}. We want to estimate the coefficients of the following continuous time process which is often used in finance for interest rates: \[ dr_t = (\alpha + \beta r_t)dt + \sigma r_t^\gamma dW_t, \] where $W_t$ is a standard Brownian motion. Special cases of this process are the Brownian motion with drift ($\beta=0$ and $\gamma = 0$), the Ornstein-Uhlenbeck process ($\gamma=0$) and the Cox-Ingersoll-Ross or square root process ( $\gamma = 1/2$). It can be estimated using the following discrete time approximation: \[ r_{t+1}-r_t = \alpha + \beta r_t + \epsilon_{t+1} \] with \[ E_t \epsilon_{t+1}=0,~~\mbox{and}~~E_t(\epsilon_{t+1}^2) = \sigma^2r_t^{2\gamma} \] Notice that ML cannot be used to estimate this model because the distribution depends on $\gamma$. In particular, it is normal for $\gamma=0$ and gamma for $\gamma=1/2$. It can be estimated by GMM using the following moment conditions: \[ E[g(\theta,x_t)] \equiv E\left(\begin{array}{c} \epsilon_{t+1}\\ \epsilon_{t+1}r_t\\ \epsilon_{t+1}^2-\sigma^2r_t^{2\gamma}\\ (\epsilon_{t+1}^2-\sigma^2r_t^{2\gamma})r_t \end{array} \right) = 0 \] The related \textit{g} function, with $\theta=\{\alpha, \beta, \sigma^2, \gamma\}$ is: <<>>= g6 <- function(theta, x) { t <- length(x) et1 <- diff(x) - theta[1] - theta[2] * x[-t] ht <- et1^2 - theta[3] * x[-t]^(2 * theta[4]) g <- cbind(et1, et1 * x[-t], ht, ht * x[-t]) return(g) } @ In order to estimate the model, the vector of interest rates needs to be properly scaled to avoid numerical problems. The transformed series is the annualized interest rates expressed in percentage. Also, the starting values are obtained using LS and some options for \textit{optim} need to be modified. <<>>= rf <- Finance[,"rf"] rf <- ((1 + rf/100)^(365) - 1) * 100 dr <- diff(rf) res_0 <- lm(dr ~ rf[-length(rf)]) tet0 <- c(res_0$coef, var(residuals(res_0)), 0) names(tet0) <- c("alpha", "beta", "sigma^2", "gamma") res_rf <- gmm(g6, rf, tet0, control = list(maxit = 1000, reltol = 1e-10)) coef(res_rf) @ \subsection{Comments on models with panel data} The \pkg{gmm} package is not directly built to easily deal with panel data. However, it is flexible enough to make it possible in most cases. To see that, let us consider the following model (see \cite{wooldridge02} for more details): \[ y_{it} = x_{it} \beta + a_i + \epsilon_{it}\mbox{ for } i=1,...,N\mbox{ and }t=1,...,T, \] where $x_{it}$ is $1\times k$, $\beta$ is $k\times 1$, $\epsilon_{it}$ is an error term and $a_i$ is an unobserved component which is specific to individual $i$. If $a_i$ is correlated with $x_{it}$, it can be removed by subtracting the average of the equation over time, which gives: \[ (y_{it}-\bar{y}_i) = (x_{it}-\bar{x}_i) \beta + (\epsilon_{it}-\bar{\epsilon}_i) \mbox{ for } i=1,...,N\mbox{ and } t=1,...,T, \] which can be estimated by \textit{gmm}. For example, if there are 3 individuals the following corresponds to the GMM fixed effects estimation: <>= y <- rbind(y1-mean(y1),y2-mean(y2),y3-mean(y3)) x <- rbind(x1-mean(x1),x2-mean(x2),x3-mean(x3)) res <- gmm(y~x,h) @ However, if $a_i$ is not correlated with $x_{it}$, the equation represents a random effects model. In that case, it is more efficient not to remove $a_i$ from the equation because of the information it carries about the individuals. The error terms are then combined in a single one, $\eta_{it}=(a_i + \epsilon_{it})$ to produce the linear model: \[ y_{it} = x_{it} \beta + \eta_{it} \] This model cannot be efficiently estimated by OLS because the presence of the common factor $a_i$ at each period implies that $\eta_{it}$ is serially correlated. However, GMM is well suited to deal with such specifications. The following will therefore produce a GMM random effects estimation: <>= y <- rbind(y1,y2,y3) x <- rbind(x1,x2,x3) res <- gmm(y~x,h) @ The package \pkg{plm} of \cite{plm} offers several functions to manipulate panel data. It could therefore be combined with \pkg{gmm} when estimating such models. It also offers a way to estimate them with its own GMM algorithm for panel data. \subsection{GMM and the sandwich package} In the \pkg{gmm} package, the estimation of the optimal weighting matrices are obtained using the \pkg{sandwich} package of \cite{zeileis06}. For example, the weighting matrix of the two-step GMM defined as: \[ W = \left[\lim_{n\rightarrow \infty} Var{(\sqrt{n}\bar{g})}\right]^{-1} \] is estimated as follows: <>= gt <- g(t0, x) V <- kernHAC(lm(gt~1),sandwich = FALSE) W <- solve(V) @ where $t0$ is any consistent estimate. As long as the optimal matrix is used, the covariance matrix of the coefficients can be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}/n \equiv (\hat{G}'\hat{V}^{-1}\hat{G})^{-1}/n, \] where $\hat{G}=d\bar{g}(\hat{\theta})/d\theta$ and $\hat{V}$ is obtained using \textit{kernHAC()}. It is not a sandwich covariance matrix and is computed using the \textit{vcov()} method included in \pkg{gmm}. However, if any other weighting matrix is used, say $W$, the estimated covariance matrix of the coefficients must then be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}\hat{G}'W\hat{V}W\hat{G}(\hat{G}'W\hat{G})^{-1}/n. \] A \textit{bread()} and \textit{estfun()} methods are available for \textit{gmm} objects which allows to compute the above matrix using the \pkg{sandwich} package. The \textit{bread()} method computes $(\hat{G}'W\hat{G})^{-1}$ while the \textit{estfun()} method returns a $T\times q$ matrix with the $t^{th}$ row equals to $g(\hat{\theta}, x_t) W \hat{G}$. The \textit{meatHAC()} method applied to the latter produces the right meat. Let us consider the example of section (\ref{ar}). Suppose we want to use the identity matrix to eliminate one source of bias, at the cost of lower efficiency. In that case, a consistent estimate of the covariance matrix is \[ (\hat{G}'\hat{G})^{-1}\hat{G}'\hat{V}\hat{G}(\hat{G}'\hat{G})^{-1}/n, \] which can be computed as: <<>>= print(res<-gmm(g4,x5t[,4:7],wmatrix="ident")) diag(vcovHAC(res))^.5 @ which is more robust than using \textit{vcov()}: <<>>= diag(vcov(res))^.5 @ Notice that it is possible to fixe $W$. Therefore, the above results can also be obtained as: <<>>= print(res<-gmm(g4,x5t[,4:7], weightsMatrix = diag(5))) @ In this case, the choice of the type of GMM is irrelevant since the weighting matrix is fixed. \section{Generalized empirical likelihood} The GEL is a new family of estimation methods which, as GMM, is based on moment conditions. It follows \cite{owen01} who developed the idea of empirical likelihood estimation which was meant to improve the confidence regions of estimators. We present here a brief discussion on the method without going into too much details. For a complete review, see \cite{smith97}, \cite{newey-smith04} or \cite{anatolyev05}. The estimation is based on \[ E(g(\theta_0,x_i))=0, \] which can be estimated in general by \[ \tilde{g}(\theta) = \sum_{i=1}^n p_i g(\theta,x_i) =0, \] where $p_i$ is called the implied probability associated with the observation $x_i$. For the GEL method, it is assumed that $q>p$ because otherwise it would correspond to GMM. Therefore, as it is the case for GMM, there is no solution to $\bar{g}(\theta)=0$. However, there is a solution to $\tilde{g}(\theta)=0$ for some choice of the probabilities $p_i$ such that $\sum_i p_i=1$. In fact, there is an infinite number of solutions since there are $(n+q)$ unknowns and only $q+1$ equations. GEL selects among them the one for which the distance between the vector of probabilities $p$ and the empirical density $1/n$ is minimized. The empirical likelihood of \cite{owen01} is a special case in which the distance is the likelihood ratio. The other methods that belong to the GEL family of estimators use different metrics. If the moment conditions hold, the implied probabilities carry a lot of information about the stochastic properties of $x_i$. For GEL, the estimations of the expected value of the Jacobian and the covariance matrix of the moment conditions, which are required to estimate $\theta$, are based on $p_i$ while in GMM they are estimated using $1/n$. \cite{newey-smith04} show that this difference explains partially why the second order properties of GEL are better. Another difference between GEL and GMM is how they deal with the fact that $g(\theta,x_i)$ can be a conditionally heteroskedastic and weakly dependent process. GEL does not require to compute explicitly the HAC matrix of the moment conditions. However, if it does not take it into account, its estimators may not only be inefficient but may also fail to be consistent. \cite{smith01} proposes to replace $g(\theta,x_i)$ by: \[ g^w(\theta,x_i) = \sum_{s=-m}^m w(s)g(\theta,x_{i-s}) \] where $w(s)$ are kernel based weights that sum to one (see also \cite{kitamura-stutzer97} and \cite{smith97}). The sample moment conditions become: \begin{equation}\label{gel_mcond} \tilde{g}(\theta) = \sum_{i=1}^n p_i g^w(\theta,x_i) =0 \end{equation} The estimator is defined as the solution to the following constrained minimization problem: \begin{eqnarray} \hat{\theta}_n &=& \arg\min_{\theta,p_i} \sum_{i=1}^n h_n(p_i) ,\\ && \mbox{subject to } \\ && \sum_{i=1}^n p_ig^w(\theta,x_i) = 0 ~~\mbox{and} \label{const}\\ && \sum_{i=1}^n p_i=1, \end{eqnarray} where $h_n(p_i)$ has to belong to the following Cressie-Read family of discrepancies: \[ h_n(p_i) = \frac{[\gamma(\gamma+1)]^{-1}[(np_i)^{\gamma+1}-1]}{n} . \] \cite{smith97} showed that the empirical likelihood method (EL) of \cite{owen01} ($\gamma=0$) and the exponential tilting of \cite{kitamura-stutzer97} ($\gamma=-1$) belong to the GEL family of estimators while \cite{newey-smith04} show that it is also the case for the continuous updated estimator of \cite{hansen-heaton-yaron96} ($\gamma=1$). What makes them part of the same GEL family of estimation methods is the existence of a dual problem which is defined as: \begin{equation}\label{gel_obj} \hat{\theta} = \arg\min_{\theta}\left[\max_{\lambda} P_n(\theta,\lambda) = \frac{1}{n}\sum_{i=1}^n\rho\left(\lambda'g^w(\theta,x_i)\right)\right] \end{equation} where $\lambda$ is the Lagrange multiplier associated with the constraint (\ref{const}) and $\rho(v)$ is a strictly concave function normalized so that $\rho'(0)=\rho''(0)=-1$. It can be shown that $\rho(v)=\ln{(1-v)}$ corresponds to EL , $\rho(v)=-\exp{(v)}$ to ET and to CUE if it is quadratic. The equivalence of the primal and dual problems can easily be verified by showing that they both share the same following first order conditions: \begin{equation}\label{lam} \sum_{i=1}^n p_i g^w(\theta,x_i) = 0, \end{equation} \begin{equation} \sum_{i=1}^n p_i \lambda'\left(\frac{\partial g^w(\theta,x_i)}{\partial \theta}\right) = 0 , \end{equation} with \begin{equation} p_i = \frac{1}{n}\rho'\left(\lambda'g^w(\theta,x_i)\right) . \end{equation} Equation (\ref{gel_obj}) represents a saddle point problem. The solution is obtained by solving simultaneously two optimization problems. We can solve for $\theta$ by minimizing $P_n(\theta,\lambda(\theta))$, where $\lambda(\theta)$ is the solution to $\arg\max_\lambda P_n(\theta,\lambda)$ for a given $\theta$. Therefore an optimization algorithm needs to be called inside the $P_n(\theta,\lambda)$ function. It makes the GEL very hard to implement numerically. For example, \cite{guggenberger08}, who analyzes the small sample properties of GEL, uses an iterative procedure based on the Newton method for $\lambda$ and a grid search for $\theta$ in order to confidently reach the absolute minimum. Using such iterative procedures for $\lambda$ makes the problem less computationally demanding and does not seem to affect the properties of the estimator of $\theta_0$. Indeed, \cite{guggenberger-hahn05} show that going beyond two iterations for $\lambda$ does not improve the second order asymptotic properties of the estimator of $\theta_0$. The function \textit{gel} offers two options. By default, $\lambda(\theta)$ is obtained by the following iterative method: \[ \lambda_l = \lambda_{l-1} - \left[\frac{1}{n}\sum_{i=1}^n \rho''(\lambda_{l-1}'g_t)g_tg_t'\right]^{-1}\left[\frac{1}{n} \sum_{i=1}^n \rho'(\lambda_{l-1}'g_i) g_i \right] \] starting with $\lambda=0$, which corresponds to its asymptotic value. The algorithm stops when $\|\lambda_l-\lambda_{l-1}\|$ reaches a certain tolerance level. The second option is to let \textit{optim} solve the problem. Then, as for \textit{gmm}, the minimization problem is solved either by \textit{optim}, \textit{nlminb} or \textit{constrOptim}. In order to test the over-identifying restrictions, \cite{smith04} proposes three tests which are all asymptotically distributed as a $\chi^2_{q-p}$. The first one is the J-test: \[ n \bar{g}^w(\hat{\theta})'[\hat{\Omega}(\hat{\theta})]^{-1}\bar{g}^w(\hat{\theta}), \] the second is a Lagrange multiplier test (LM): \[ LM = n\hat{\lambda}'\hat{\Omega}(\hat{\theta})\hat{\lambda} \] and the last one is a likelihood ratio test (LR): \[ LR = 2\sum_{i=1}^n\left[ \rho\left(\hat{\lambda}'g^w(\hat{\theta},x_i)\right) - \rho(0)\right] \] \section{GEL with R} \subsection{Estimating the parameters of a normal distribution} For this example, we can leave the option \textit{smooth} at its default value, which is \textit{FALSE}, because of the iid properties of $x$. A good starting value is very important for GEL. The best choice is the sample mean and the standard deviation. By default the option \textit{type} is set to \textit{EL}. The same methods that apply to \textit{gmm} objects, can also be applied to \textit{gel} objects. <<>>= tet0 <- c(mu = mean(x1), sig = sd(x1)) res_el <- gel(g1,x1,tet0) summary(res_el) @ Each Lagrange multiplier represents a shadow price of the constraint implied by moment condition. A binding constraint will produce a multiplier different from zero. Therefore, its value informs us on the validity of the moment condition. In the above results, the $\lambda$'s are significantly different from zero which would normally suggest that the moment conditions associated with them are violated. As a result, the LM test also rejects the null hypothesis since it is based on the $\lambda$'s. Notice that \textit{summary} reports two convergence codes, one for $\lambda$ et another for $\theta$. The ET and CUE estimates can be obtained as follows: <<>>= res_et <- gel(g1,x1,tet0,type="ET") coef(res_et) @ <<>>= res_cue <- gel(g1,x1,tet0,type="CUE") coef(res_cue) @ A fourth method is available which is called the exponentially tilted empirical likelihood (ETEL) and was proposed by \cite{schennach07}. However, it does not belong to the family of GEL estimators. It solves the problem of misspecified models. In such models there may not exist any pseudo value to which $\hat{\theta}$ converges as the sample size increases. ETEL uses the $\rho()$ of ET to solve for $\lambda$ and the $\rho()$ of EL to solve for $\theta$. \cite{schennach07} shows that ETEL shares the same asymptotic properties of EL without having to impose restrictions on the domain of $\rho(v)$ when solving for $\lambda$. <<>>= res_etel <- gel(g1,x1,c(mu=1,sig=1),type="ETEL") coef(res_etel) @ The type ETEL is experimental for now. Although it is supposed to be more stable because no restrictions are required to solve for $\lambda$, once we substitute $\lambda(\theta)$ in the EL objective function to estimate $\theta$, we still need to restrict $\lambda'g_t$ to avoid having NA's. The solution used in gel() is to obtain $\lambda(\theta)$ with \textit{constrOptim} with the restriction $\lambda'gt > 1$ even if it is not required by ET ($\rho(v)=-\exp{(v)}$). It is however sensitive to starting values. That's the reason why we used different ones above. \subsection{Estimating the AR coefficients of an ARMA process} Because the moment conditions are weakly dependent, we need to set the option \textit{smooth=TRUE}. Before going to the estimation procedure, we need to understand the relationship between the smoothing kernel and the HAC estimator. The reason why we need to smooth the moment function is that GEL estimates the covariance matrix of $\bar{g}(\theta,x_t)$, as if we had iid observations, using the expression $(1/T)\sum_{t=1}^T(g_tg_t')$. We can show that substituting $g_t$ by $g^w_t$ in this expression results in an HAC estimator. However, the relationship between the smoothing kernel and the kernel that appears in the HAC estimator is not obvious. For example, we can show that if the smoothing kernel is Truncated, then the kernel in the HAC estimator is the Bartlett. Let us consider the truncated kernel with a bandwidth of 2. This implies that $w(s)=1/5$ for $|s|\leq 2$ and 0 otherwise. Then, the expression for the covariance matrix becomes: \begin{eqnarray*} \frac{1}{T}\sum_{t=1}^T g^w_t (g^w_t)' &=& \frac{1}{T}\sum_{t=1}^T \left( \sum_{s=-2}^2 \frac{1}{5} g_{t+s} \right) \left( \sum_{l=-2}^2 \frac{1}{5} g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\left( \frac{1}{T}\sum_{t=1}^T g_{t+s}g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\hat{\Gamma}_{s-l} ,\\ &=& \frac{1}{25}\sum_{s=-4}^4 (5-|s|)\hat{\Gamma}_{s},\\ &=& \sum_{s=-4}^4 \left(\frac{1}{5}-\frac{|s|}{25}\right)\hat{\Gamma}_{s},\\ &=& \sum_{s=-T+1}^{T-1} k_5(s) \hat{\Gamma}_{s}, \end{eqnarray*} where $k_5(s)$ is the Bartlett kernel with a bandwidth of 5 defined as \[ K_5(s) = \left\{ \begin{array}{ccc} 1/5 - |s|/25 & \mbox{if}&|s|\leq 5\\ 0 &\mbox{otherwise}& \end{array}\right. . \] See \cite{smith01} for more details. The model will therefore be estimated using the kernel Truncated. The GMM estimate with the identity matrix is selected as starting value. <>= tet0 <- gmm(g4,x=x5t[,4:7],wmatrix="ident")$coef res <- gel(g4,x=x5t[,4:7],tet0,smooth=TRUE,kernel="Truncated") summary(res) @ The \textit{specTest} method applied to a \textit{gel} object computes the three tests proposed by \cite{smith04}: <<>>= specTest(res) @ The \textit{plot} method produces one more graphics when applied to a \textit{gel} object. It shows the implied probabilities along with the empirical density $(1/T)$. It allows to see which observations have more influence: \begin{center} <<>>= plot(res,which=4) @ \end{center} We can also select \textit{optfct="nlminb"} or \textit{constraint=TRUE} in order to impose restrictions on the coefficients. The former sets lower and upper bounds for the coefficients, while the latter imposes linear constraints using the algorithm \textit{constrOptim}. In this example we want the sum of the AR coefficients to be less than one. \textit{constrOptim} imposes the constraint $ui\theta-ci \geq 0$. Therefore, we need to set: <>= ui=cbind(0,-1,-1) ci <- -1 @ and rerun the estimation as <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE,kernel="Truncated", constraint=TRUE, ui=ui,ci=ci) @ The result, which is not shown, is identical. They are also many option to compute the $\lambda$'s. From version 1.4-0, the default algorithm is \textit{nlminb} because the gradient and Hessian matrix are well defined analytically which speed up convergence. The other choices are \textit{optim} or "iter" which uses a Newton method to solve the first order condition. If the option optlam is set to "optim" and the type is EL, \textit{contrOptim} is selected automatically to restrict $\lambda'g_t$ to be less than 1. It is also possible to change the default values in the control list of the optimizer with the option LambdaControl (see \textit{?nlminb} or \textit{?optim}). Here are some examples: <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim") res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim", LambdaControl=list(trace=TRUE, parscale=rep(.1,5))) @ \subsection{Comments} The GEL method is very unstable numerically. This fact has been reported many times in the recent literature. The method has been included in the \pkg{gmm} package because recent theoretical evidence suggests that it may produce better estimators than GMM. Because \proglang{R} is an open source statistical package, it offers a good platform to experiment with numerical properties of estimators. \section{Conclusion} The \pkg{gmm} package offers complete and flexible algorithms to estimate models by GMM and GEL. Several options are available which allow to choose among several GMM and GEL methods and many different HAC matrix estimators. In order to estimate the vector of parameters, users can select their preferred optimization algorithm depending on whether inequality constraints are required. For the vector of Lagrange multiplier of GEL, it can be computed by an iterative procedure based on the Newton method which increases the speed of convergence and reduce the instability of the estimation procedure. It could then easily be used by those who are interested in studying the numerical properties of both methods. The package also offers an interface which is comparable to the least squares method \textit{lm}. Linear model are estimated using formula and methods such as \textit{summary}, \textit{vcov}, \textit{coef}, \textit{confint}, \textit{plot}. \textit{residuals} or \textit{fitted} are available for the objects of class \textit{gmm} and \textit{gel}. \proglang{R} users will therefore have little difficulty in using the package. \section{Computational Details} The package \pkg{gmm} is written entirely in \proglang{R} and S3-classes with methods are used. It can be found on the comprehensive \proglang{R} archive network (CRAN,\url{http://CRAN.R-project.org/}). It is also hosted on R-Forge (\url{http://r-forge.r-project.org/projects/gmm}). It is shipped with a NAMESPACE. The version used to produce this paper is 1.4-0. It depends on the \pkg{sandwich} package of \cite{zeileis06}, which is used to compute de HAC matrices. The packages \pkg{car} (\cite{car}), \pkg{mvtnorm} (\cite{mvtnorm}), \pkg{stabledist} (\cite{stabledist}), \pkg{MASS} (\cite{MASS}), \pkg{timeDate} (\cite{timeDate}) and \pkg{timeSeries} (\cite{timeSeries}) are suggested in order to reproduce the examples. \section*{Acknowledgments} I am grateful to the three anonymous referees of the Journal of Statistical Software for great comments on the paper and the package. I also want to thank Achim Zeileis for his suggestions regarding the way the \pkg{sandwich} package can be used within \textit{gmm}. \bibliography{empir} \end{document} gmm/NEWS0000644000176200001440000004026214275340001011531 0ustar liggesusersChanges in version 1.6-2 o Fixed a bug with iterative GMM from the previous version o Added the option onlyCoefficients=FALSE to gmm() and gel(). If set to TRUE, no covariance matrix is computed. Only the coefficients objective and the lambdas (for gel only) are returned. o In previous versions, the HAC weighting matrix for linear models was computed without specifying that the first column of the instrument matrix was a column of ones (with its name being "(Intercept)"). It makes a difference when computing the bandwidth with bwNeweyWest. The new version, takes it into account. It is not possible to obtain the same sandwich covariance matrix with gmm and OLS. o In previous versions, the weighting matrix and, as a result, the standard errors were based on the small sample adjusted vcovHAC for weakly dependent processes. The adjustment is not justified for GMM. The option adjust=FALSE is therefore added to vcovHAC in .myKernHAC() o Added a method getImpProb, which extract the implied probabilities. It allows for negative probabilities as it often happens with CUE o lambda for CUE is solved analytically (it is minus the projection of gt on a vector of ones). The option RCue for optlam can be used to restrict the implied probabilities to be non-negative. Changes in version 1.6-1 o Added the function bwWilhelm() to compute the optimal bandwidth of Wilhelm(2015). o The argument $vcov of tsls object is the Classical covariance matrix. vcov() must be used to obtain a different covariance o Changed the default value of prewhite to 1 in gmm() because it is recommended for HAC estimation o gmm with optfct="optimize" was generating an error message. It has been fixed o A new set of functions to estimate the average treatment effect by GEL have been added. See ?ATEgel o Some other minor bugs that were reported by users were fixed. Changes in version 1.6-0 o tsls is now a real 2-stage least square. Before it was a 2-step optimal GMM with HCCM weighting matrix. o Fixed a typo in FinRes.R file. It was preventing to compute the proper vcov matrix for a very special case (fixed weights) o Added Helinger distance and Exponentially tilted Helinger estimator to gel() o Fixed the LR test of ETEL in gel() o Cleaned a lot of the codes. In particular, a single moment function and its gradiant function is used now. There is also a common weighting matrix generator function. The main goal is to make it more flexible and give the possibility of creating weighting matrix based on other assumption such as clustering. o For GEL with smooth=TRUE, the weights were not fixed which was creating problems of convergence. o Add the option of fixing the value of some coefficient in gel as it as already the case for gmmm. o It is no possible to provide gmm with the gradiant function when constrOptim is used. o There is now an evalGmm() function to create a gmm object with a given fixed vector. Not estimation is done, but the bandwidth and weights for the HAC estimator are generated. It is possible to give a different vector os parameters for the moment function and the weighting matrix. o There is also an evalGel(). You fix the parameters and only the lambda are computed. o Fixed NAMESPACE to avoid the notes given by CRAN. o Modified getDat to allow for ~1 as instruments. Useful for inference on the mean using empirical likelihood with gel(x~1,~1). o The Lambdas and specTest from gel are printed even if the model is just identified. It is consitent with gmm which prints the j-test for just identified models. The reason if to allow evalGel to generate the Lamdbas for testing purpose. o confint.gxx() has been modified. It now create an object and a print method has been created as well. o confint.gel includes the possibility of building a confidence interval using the inversion of one of the three specification tests. It is therefore possible de construct an Empirical Likelihood confidence interval as described in Owen 2001. See manual. o On the process to create a sysGmm for system og linear equations. The function sysGmm() will do the job. Not yet working. o getDat is modified so that the name of the dependent variable is the one included in the formula. o A set of functions have been added to estimate system of linear equations (this is a beta version not tested yet). o A set of labor data as been added to test the sysGmm function o A panel of Macro data has been added. Changes in version 1.5-2 o Added constrOptim to nonlinear gmm() with fixed W Changes in version 1.5-1 o Added importFrom element o Added element df.residual to gmm objects to allow F-type linearHypothesis o Removed the unnecessary ls estimations in the first stage 2SLS Changes in version 1.5-0 o Thanks to Eric Zivot. Many improvements are based on his testings of the package. o Fixed many bugs for the case in which vcov is set to iid o Added options to tsls(). There are options for different sandwich matrix when summary is called Changes in version 1.4-6 o Added the possibility of providing data.frame() with formula to gel() Changes in version 1.4-5 o Replaced the deprecated function real(), is.real() and as.real() by double() Changes in version 1.4-4 o Fixed an instability problem when the model is just identified and wmatrix is set to "ident" Changes in version 1.4-3 o Added the option "constrOptim" to optfct for nonlinear models o Added the option "eqConstFullVcov" to gmm() to allow the computation the covariance matrix of all coefficients including the constrained ones (see ?gmm for details and examples). o Removed the dependency on fBasics and replaced it with stabledist Changes in version 1.4-2 o Bugs fixed when running gel() with smooth=T and g() begina nonlinear function o Now, print.gel() and print.summary.gel() repports the bandwidth when smooth=T Changes in version 1.4-0 o The method for GMM-CUE has been modified. Before, the weights for the kernel estimation of the weighting matrix were flexible inside the optimizer which was making the algorithm long and unstable. It is now fixed using either the starting values provided by the user (for linear cases) or the first step GMM. o You can now trace the convergence of the iterative GMM with the option traceIter=T o The weights for the kernel are also fixed for iter-GMM. It is faster and I don't think it should change at each iteration. I am open to comments on that. o A function tsls() has been added to facilitate the estimation by 2SLS. The user does not have to worry about selecting the right gmm options o summary and print Methods have been added for tsls objects. The summary prints the f-statistics of the first stage LS o SmoothG for GEL uses now the kernapply() function which is more efficient. o Something the GMM converge to weird values which is sometimes caused by bad first step estimates used to compute the weighting matrix. Summary() prints the initial values to have more infortmation when convergence fails. o There was a bug in specTest() for GEL. The degrees of freedom for the J-test were wrong. It is fixed. o For GEL type CUE the implied probabilities are computed according to Antoine, Bonnal, and Renault (2007) which solves the problem of negative probabilities. o The data file Finance has been resaved which implies that the package depends now on R version ­2.10.0 and higher o The function rho() had been changed to .rho() because it is not useful outside the gel() function o The function getLamb() has been modified. It is now more efficient. The default for the gel() option optlam is now nlminb. The gradient and the hessian is provided which makes it much faster to solve for lambda. The argument of the function also changed. Instead of providing the function g() and the vector of coefficients, we provide the matrix gt. I may be useful to call the function sometimes to solve for lambda and it is easier that way. o The choice "iter" from the option optlam is kept for cases in which the optimizer fails to solve for lambda. It is often the case when type="ETEL" is chosen which tends to produce NA's. o For GEL of type "EL" and optfct="optim", the algorith constrOptim() is launched to make sure lambda'gt is always greater than 1 and avoid NA's when computing log(1-lambda'gt). The algorithm checks first with optim(), and swith to constrOptim() is optim() fails o Sometimes, problems happen in GMM estimation because of the bad first step estimates used to compute the weighting matrix. The first step estimates are usually computed using the identity matrix. The vector is now printed for better control. o Cleaned the codes. The data are in object$dat and we can get the moment matrix by calling gt <- object$g(object$coef,object$dat) for linear and non-linear models, where object is of class gmm. o We can now impose equality constraints of the type theta_i=c_i with the option eqConst=. See help(gmm) which includes examples. o The K statistics for weakly identified models of Kleiberben (2005) has been added. See ?KTest. o (gmm only) The bandwidth for the HAC estimation is set by the first step estimate. Its value, along with the weights, is saved in attr(obj$w0,"Spec"). If the user is not satisfied with this automatic bw selection, bw can be set to any fixed number when calling gmm(). See ?gmm for more details and examples. o The function gmmWithConst() reestimate an unrestricted model by imposing linear constraints, using the same specification. It also use the same bandwidth for the estimation of the HAC matrix o A regularized version of GEL based on Chausse(2011) is now implemented. The Lagrange multiplier can be regularized by setting the option "alpha=" to a number. The regularization can stabilize the GEL estimator. A preliminary paper will be available on my web site that analyze the properties of such modification. A method for selecting alpha will be implemented in future version. Changes in version 1.3-8 o A bug was found in the computation of linear GMM. The weighting matrix was not use properly. It is now fixed. Changes in version 1.3-7 o Until now there was no way to know whether optim or nlminb has converged in case of nonlinear GMM. The convergence code is now printed by print.gmm and the message and function evaluation by print.summary.gmm o For cases in which the weighting matrix is provided, you have the choice of assuming that it is just a fixed matrix not necessary equal to the inverse of the covariance matrix of the moment conditions (the default) or setting vcov="TrueFixed" if it is the inverse of the estimated covariance matrix. o If gradv is provided, it is not only used to compute the covariance matrix. It is also used to compute the gradiant of the objective function when the method is set to "CG" or "BFGS" in optim. For CUE, it is only used for the first step estimate because the gradiant can hardly be obtained analytically in that case. Changes in version 1.3-6 o Bug fixed when estimating model with timeSeries objects o When NA were present in the data and the instruments, gmm() was not working when omitting them created different dimension. If by chance it created the same dimensions, the data were not correctly aligned. Now it is aligned and the observations associated with the NA's are removed. When it happens, a warning message is displayed. Changes in version 1.3-5 o Bug fixed when estimating linear model with Z=X (OLS with robust matrix) Changes in version 1.3-4 o It is now possible to enter the instruments in x either as a matrix (like before) or as a formula. See details and examples in gmm help o A data argument is added to the gmm function. Therefore, it is no longer required that the variables in data.frames be attached before using gmm(). You just need to add the option data=your_data.frame. o 2SLS is now implemented in a more efficient way for linear models. Just add the option vcov="iid". An example as been included for that case Changes in version 1.3-3 o It is a very small modification to avoid errors in the installation. The function linear.hypothesis of the car package is now deprecated. They have be changed to linearHypothesis. Changes in version 1.3-2 o The functions HAC, weightsAndrews2, bwAndrews2 and all the others to compute the HAC matrix have been removed. The sandwich package is now used to compute these matrices. o The option centeredVcov has beed added to the gmm function. It allows to compute the covariance matrix using a centered moment function. o The option weightsMatrix has beed added to the gmm function. It allows to fixe the matrix of weights. o The methods bread() and estfun() are now available for gmm objects. It allows to compute a sandwich covariance matrix which is required if the weighting matrix is not the optimal one. o The results are obtained even if the covariance matrix cannot be computed o The vignette has been updated. Changes in version 1.3-0 o The method "getModel", "momentEstim" is now used also for the gel procedure. o The GEL procedure as been modified. For the case in which the option smooth=TRUE is used, the appropriate scaling parameters have been added following Smith(2004) in the estimation, the covariance matrix of the Lagrange multiplier and the tests of over-identifying restrictions. In this case, only the kernels Truncated and Bartlett are available. For the former, the optimal bandwidth of Andrews(91) for Bartlett is used and for the latter, it is the bandwidth proposed for the Parzen. See Smith(2004) for more details. Also, the option vcov as been removed since it is irrelevant for GEL. By setting smooth to FALSE, it is implied that the data are iid. Changes in version 1.2-0 o The new method specTest computes the specification tests from objects created by "gmm" or "gel" o The structure of the package has been modified in order to make it more flexible. The changes include: o The new method "getModel" prepares the estimation. It creates what is required by the method "momentEstim". o The method "momentEstim" estimates the model defined by "getModel" o The method "FinRes" finalizes the estimation when it is needed. For now, the method is used only by "gmm" to compute the final resutls. o Some bugs are fixed o The Vignette has been modified a little and the errors in the manual corrected. Changes in version 1.1-0 o The name of the vector of parameters is now "coefficients" instead of "par" o The following methods are now available (see lm): fitted, residuals, vcov, coef, confint o There are now print methods for gmm, gel and summary.gel and summary.gmm o These modifications allows to use linear.hypothesis from the car package so the function lintest is no longer needed and as been removed o The following are now available from gmm and gel objects when g is a formula: residuals, fitted.values, model.frame, terms, model, the response and model matrix o Because the presence of the confint method, the option "interval" as been removed from the summary methods o A new plot method is available for both gmm and gel objects. It is a beta version. Comments and suggestions are welcome. o If there is only one instrument it can be provided as a vector. It does not need to be a matrix anymore. o It is now possible to select nlminb as optimizer. It allows to put restriction on the parameter space. o The package no longer depends on mvtnorm. It is a suggested package as it is only required for examples. o The packages car and fBasics (and therefore MASS, timeDate and timeSeries) are now suggested for examples in the vignette. o The new function charStable has been added. It computes the characteristic function of a stable distribution. An example is shown in the vignette o There was a bug when trying to estimate a model by ETEL with gel and numerical computation of lambda. It is fixed. Thanks to Márcio Laurini. o The vignette as beed rewritten. Changes in Version 1.0-7 o Modified some functions to remove dependencies on tseries and sandwich packages o Convert de Finance Data to data frame format Changes in Version 1.0-6 o Some bugs fixed. Thanks to Justinas Brazys Changes in Version 1.0-4 o documentation enhancements o Added finance data for applied examples Changes in Version 1.0-3 o Some bugs fixed Changes in Version 1.0-2 o Added a new example for better understanding. gmm/R/0000755000176200001440000000000014437645333011247 5ustar liggesusersgmm/R/Methods.sysGmm.R0000644000176200001440000001074612623157321014251 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ summary.sysGmm <- function(object, ...) { z <- object se <- sqrt(diag(z$vcov)) k <- attr(z$dat, "k") if (attr(z$dat, "sysInfo")$commonCoef) { seList <- rep(list(se), length(z$dat)) } else { seList <- list() for (i in 1:length(z$dat)) { seList[[i]] <- se[1:k[[i]]] se <- se[-(1:k[[i]])] } } par <- z$coefficients tval <- lapply(1:length(z$dat), function(i) par[[i]]/seList[[i]]) ans <- list(met=z$met,kernel=z$kernel,algo=z$algo,call=z$call) names(ans$met) <- "GMM method" names(ans$kernel) <- "kernel for cov matrix" ans$coefficients <- lapply(1:length(z$dat), function(i) cbind(par[[i]],seList[[i]], tval[[i]], 2 * pnorm(abs(tval[[i]]), lower.tail = FALSE))) ans$stest <- specTest(z) ans$algoInfo <- z$algoInfo ans$initTheta <- object$initTheta for (i in 1:length(z$dat)) { dimnames(ans$coefficients[[i]]) <- list(names(z$coefficients[[i]]), c("Estimate", "Std. Error", "t value", "Pr(>|t|)")) names(ans$initTheta[[i]]) <- names(z$coefficients[[i]]) } ans$specMod <- object$specMod ans$bw <- attr(object$w0,"Spec")$bw ans$weights <- attr(object$w0,"Spec")$weights ans$Sysnames <- names(z$dat) ans$met <- attr(object$dat, "sysInfo")$typeDesc if(object$infVcov != "HAC") ans$kernel <- NULL class(ans) <- "summary.sysGmm" ans } print.summary.sysGmm <- function(x, digits = 5, ...) { cat("\nCall:\n") cat(paste(deparse(x$call), sep="\n", collapse = "\n"), "\n\n", sep="") cat("Method\n", x$met,"\n\n") cat("\n") if( !is.null(x$kernel)) { cat("Kernel: ", x$kernel) if (!is.null(x$bw)) cat("(with bw = ", round(x$bw,5),")\n\n") else cat("\n\n") } cat("Coefficients:\n") m <- length(x$coefficients) for (i in 1:m) { cat(x$Sysnames[i], "\n") cat("#########\n") #print.default(format(x$coefficients[[i]], digits=digits), # print.gap = 2, quote = FALSE) printCoefmat(x$coefficients[[i]], digits=digits, ...) cat("\n") } cat(x$stest$ntest,"\n") print.default(format(x$stest$test, digits=digits), print.gap = 2, quote = FALSE) cat("\n") if(!is.null(x$initTheta)) { cat("Initial values of the coefficients\n") for (i in 1:m) { cat(x$Sysnames[i], "\n") print(x$initTheta[[i]]) } cat("\n") } cat(x$specMod) if(!is.null(x$algoInfo)) { cat("#############\n") cat("Information related to the numerical optimization\n") } if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") if(!is.null(x$algoInfo$counts)) { cat("Function eval. = ",x$algoInfo$counts[1],"\n") cat("Gradian eval. = ",x$algoInfo$counts[2],"\n") } if(!is.null(x$algoInfo$message)) cat("Message: ",x$algoInfo$message,"\n") invisible(x) } print.sysGmm <- function(x, digits=5, ...) { cat("Method\n", attr(x$dat, "sysInfo")$typeDesc,"\n\n") cat("Objective function value: ",x$objective,"\n\n") for (i in 1:length(x$coefficients)) { cat(names(x$dat)[[i]], ": \n") print.default(format(coef(x)[[i]], digits=digits), print.gap = 2, quote = FALSE) } cat("\n") if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") cat(x$specMod) invisible(x) } gmm/R/gel.R0000644000176200001440000005103513571757641012151 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ .rho <- function(x, lamb, derive = 0, type = c("EL", "ET", "CUE", "HD", "ETEL", "ETHD", "RCUE"), k = 1) { type <- match.arg(type) if (type == "RCUE") type <- "CUE" gml <- x%*%c(lamb)*k if (derive == 0) { if (type == "EL") { if (any(gml>=1)) stop("Computation of Lambda fails because NAs produced by log(1-gt*l)") rhomat <- log(1 - gml) } if (type == "ET") rhomat <- -exp(gml) if (type == "CUE") rhomat <- -gml -0.5*gml^2 if (type == "HD") rhomat <- -2/(1-gml/2) if (type == "ETEL") { w <- -exp(gml) w <- w/sum(w) rhomat <- -log(w*NROW(gml)) } if (type == "ETHD") { w <- -exp(gml) w <- w/sum(w) rhomat <- (sqrt(w)-1/sqrt(NROW(gml)))^2 } } if (derive==1) { if (type == "EL") rhomat <- -1/(1 - gml) if (type == "ET") rhomat <- -exp(gml) if (type == "CUE") rhomat <- -1 - gml if (type == "HD") rhomat <- -1/((1-gml/2)^2) if (any(type == c("ETEL","ETHD"))) rhomat <- NULL } if (derive==2) { if (type == "EL") rhomat <- -1/(1 - gml)^2 if (type == "ET") rhomat <- -exp(gml) if (type == "CUE") rhomat <- -rep(1,nrow(x)) if (type == "HD") rhomat <- -1/((1-gml/2)^3) if (any(type == c("ETEL","ETHD"))) rhomat <- NULL } return(c(rhomat)) } .getCgelLam <- function(gt, l0, type = c('EL', 'ET', 'CUE', "HD"), method = c("nlminb", "optim", "constrOptim"), control=list(), k = 1, alpha = 0.01) { type <- match.arg(type) method <- match.arg(method) fct <- function(l, X) { r1 <- colMeans(.rho(gt,l,derive=1,type=type,k=k)*X) crossprod(r1) + alpha*crossprod(l) } Dfct <- function(l, X) { r2 <- .rho(X,l,derive=2,type=type,k=k) r1 <- .rho(X,l,derive=1,type=type,k=k) H <- t(X*r2)%*%X/nrow(X) 2*H%*%colMeans(r1*X) + 2*alpha*l } if (method == "nlminb") res <- nlminb(l0, fct, Dfct, X = gt, control = control) if (method == "optim") res <- optim(l0, fct, Dfct, X = gt, method="BFGS", control = control) if (method == "constrOptim") { ci <- -rep(1,nrow(gt)) res <- constrOptim(rep(0,ncol(gt)),fct,Dfct,-gt,ci,control=control,X=gt) } if (method == "optim") { conv <- list(convergence = res$convergence, counts = res$counts, message = res$message) } else { conv <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } return(list(lambda = res$par, convergence = conv, obj = mean(.rho(gt,res$par, derive=0,type=type,k=k)) - .rho(1,0, derive=0,type=type,k=k))) } .Wu <- function(gt, tol_lam = 1e-8, maxiterlam = 50, K=1) { u <- as.matrix(gt) n=length(nrow(u)) M=rep(0,ncol(u)) dif=1 tol=tol_lam k=0 while(dif>tol & k<=maxiterlam) { D1=t(u)%*%((1/(1+u%*%M))*rep(1,n)) DD=-t(u)%*%(c((1/(1+u%*%M)^2))*u) D2=solve(DD,D1,tol=1e-40) dif=max(abs(D2)) rule=1 while(rule>0) { rule=0 if(min(1+t(M-D2)%*%t(u))<=0) rule=rule+1 if(rule>0) D2=D2/2 } M=M-D2 k=k+1 } if(k>=maxiterlam) { M=rep(0,ncol(u)) conv = list(convergence=1) } else { conv = list(convergence=0) } return(list(lambda = c(-M), convergence = conv, obj = mean(.rho(gt,-M,derive=0,type="EL",k=K)))) } .Wu2 <- function(gt, tol_lam = 1e-8, maxiter = 50, K = 1) { gt <- as.matrix(gt) res <- .Fortran(F_wu, as.double(gt), as.double(tol_lam), as.integer(maxiter), as.integer(nrow(gt)), as.integer(ncol(gt)), as.double(K), conv=integer(1), obj=double(1), lambda=double(ncol(gt))) list(lambda=res$lambda, convergence=list(convergence=res$conv), obj = res$obj) } .CUE_lam <- function(gt, K=1) { q <- qr(gt) n <- nrow(gt) l0 <- -qr.coef(q, rep(1,n)) conv <- list(convergence=0) list(lambda = l0, convergence = conv, obj = mean(.rho(gt,l0,derive=0,type="CUE",k=K))) } .CUE_lamPos <- function(gt, K=1, control=list()) { getpt <- function(gt,lam) { gl <- c(gt%*%lam) pt <- 1 + gl pt/sum(pt) } maxit <- ifelse("maxit" %in% names(control), control$maxit, 50) res <-.CUE_lam(gt, K) n <- nrow(gt) i <- 1 pt <- getpt(gt, res$lambda) w <- pt<0 while (TRUE) { gt2 <- gt[!w,] n1 <- nrow(gt2) if (n1 == n) break res <- try(.CUE_lam(gt2), silent=TRUE) if (i > maxit) return(list(lambda=rep(0,ncol(gt)), obj=0, pt=rep(1/n,n), convergence=list(convergence=1))) if (any(class(res) == "try-error")) return(list(lambda=rep(0,ncol(gt)), obj=0, pt=rep(1/n,n), convergence=list(convergence=2))) pt[!w] <- getpt(gt2, res$lambda) pt[w] <- 0 if (all(pt>=0)) break i <- i+1 w[!w] <- pt[!w]<0 } n0 <- n-n1 res$obj <- res$obj*n1/n + n0/(2*n) res } .CUE_lamPos2 <- function(gt, K=1, control=list()) { gt <- as.matrix(gt) n <- nrow(gt) q <- ncol(gt) maxit <- ifelse("maxit" %in% names(control), control$maxit, 50) res <- try(.Fortran(F_lamcuep, as.double(gt), as.integer(n), as.integer(q), as.double(K), as.integer(maxit),conv=integer(1), lam=double(q),pt=double(n), obj=double(1) ), silent=TRUE) if (any(class(res) == "try-error")) return(list(lambda=rep(0,q), obj=0, pt=rep(1/n,n), convergence=list(convergence=3))) list(lambda=res$lam, obj=res$obj, pt=res$pt, convergence=list(convergence=res$conv)) } getLamb <- function(gt, l0, type = c('EL', 'ET', 'CUE', "ETEL", "HD", "ETHD", "RCUE"), tol_lam = 1e-7, maxiterlam = 100, tol_obj = 1e-7, k = 1, method = c("nlminb", "optim", "iter", "Wu"), control=list()) { method <- match.arg(method) type <- match.arg(type) gt <- as.matrix(gt) if (method == "Wu" & type != "EL") stop("Wu (2005) method to compute Lambda is for EL only") if (method == "Wu") return(.Wu2(gt, tol_lam, maxiterlam, k)) if (type == "CUE") return(.CUE_lam(gt, k)) if (type == "RCUE") return(.CUE_lamPos2(gt, k, control)) if (method == "iter") { if ((type == "ETEL") | (type == "ETHD")) type = "ET" for (i in 1:maxiterlam) { r1 <- .rho(gt,l0,derive=1,type=type,k=k) r2 <- .rho(gt,l0,derive=2,type=type,k=k) F <- -colMeans(r1*gt) J <- crossprod(r2*gt,gt) if (sum(abs(F))= 2) { w <- c(w[rt:2], w) w <- w / sum(w) w <- kernel(w[rt:length(w)]) } else { w <- kernel(1) } } else { if (class(w)[1] != "tskernel") stop("Provided weights must be a numeric vector or an object of class 'tskernel'") } if (length(w$coef)>1) x <- kernapply(x, w) sx <- list("smoothx" = x, "kern_weights" = w, bw = bw) return(sx) } gel <- function(g, x, tet0 = NULL, gradv = NULL, smooth = FALSE, type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, constraint = FALSE, optfct = c("optim", "optimize", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, TypeGel = "baseGel", alpha = NULL, eqConst = NULL, eqConstFullVcov = FALSE, onlyCoefficients=FALSE, ...) { type <- match.arg(type) optfct <- match.arg(optfct) optlam <- match.arg(optlam) weights <- weightsAndrews approx <- match.arg(approx) kernel <- match.arg(kernel) if (!is.null(eqConst)) TypeGel <- "constGel" if(missing(data)) data<-NULL all_args <- list(g = g, x = x, tet0 = tet0, gradv = gradv, smooth = smooth, type = type, kernel = kernel, bw = bw, approx = approx, prewhite = prewhite, ar.method = ar.method, tol_weights = tol_weights, tol_lam = tol_lam, tol_obj = tol_obj, tol_mom = tol_mom, maxiterlam = maxiterlam, constraint = constraint, optfct = optfct, weights = weights, optlam = optlam, model = model, X = X, Y = Y, TypeGel = TypeGel, call = match.call(), Lambdacontrol = Lambdacontrol, alpha = alpha, data = data, eqConst = eqConst, eqConstFullVcov = eqConstFullVcov, onlyCoefficients=onlyCoefficients) class(all_args)<-TypeGel Model_info<-getModel(all_args) z <- momentEstim(Model_info, ...) if (!onlyCoefficients) class(z) <- "gel" return(z) } evalGel <- function(g, x, tet0, gradv = NULL, smooth = FALSE, type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, alpha = NULL, ...) { type <- match.arg(type) optlam <- match.arg(optlam) weights <- weightsAndrews approx <- match.arg(approx) kernel <- match.arg(kernel) TypeGel <- "baseGel" if(missing(data)) data<-NULL all_args <- list(g = g, x = x, tet0 = tet0, gradv = gradv, smooth = smooth, type = type, kernel = kernel, bw = bw, approx = approx, prewhite = prewhite, ar.method = ar.method, tol_weights = tol_weights, tol_lam = tol_lam, tol_obj = tol_obj, tol_mom = tol_mom, maxiterlam = maxiterlam, weights = weights, optlam = optlam, model = model, X = X, Y = Y, call = match.call(), Lambdacontrol = Lambdacontrol, alpha = alpha, data = data, optfct="optim") class(all_args)<-TypeGel Model_info<-getModel(all_args) class(Model_info) <- "baseGel.eval" z <- momentEstim(Model_info, ...) class(z) <- "gel" return(z) } .thetf <- function(tet, P, output=c("obj","all"), l0Env) { output <- match.arg(output) gt <- P$g(tet, P$x) l0 <- get("l0",envir=l0Env) if (((P$type=="ETEL")|(P$type=="ETHD"))&(!is.null(P$CGEL))) { P$CGEL <- NULL warning("CGEL not implemented for ETEL or for ETHD") } if (is.null(P$CGEL)) { if (P$optlam != "optim" & P$type == "EL") { lamb <- try(getLamb(gt, l0, type = P$type, tol_lam = P$tol_lam, maxiterlam = P$maxiterlam, tol_obj = P$tol_obj, k = P$k1/P$k2, control = P$Lambdacontrol, method = P$optlam), silent = TRUE) if(any(class(lamb) == "try-error")) lamb <- getLamb(gt, l0, type = P$type, tol_lam = P$tol_lam, maxiterlam = P$maxiterlam, tol_obj = P$tol_obj, k = P$k1/P$k2, control = P$Lambdacontrol, method = "optim") } else { lamb <- getLamb(gt, l0, type = P$type, tol_lam = P$tol_lam, maxiterlam = P$maxiterlam, tol_obj = P$tol_obj, k = P$k1/P$k2, control = P$Lambdacontrol, method = P$optlam) } } else { lamb <- try(.getCgelLam(gt, l0, type = P$type, method = "nlminb", control=P$Lambdacontrol, k = P$k1/P$k2, alpha = P$CGEL),silent=TRUE) if (any(class(lamb) == "try-error")) lamb <- try(.getCgelLam(gt, l0, type = P$type, method = "constrOptim", control=P$Lambdacontrol, k = P$k1/P$k2, alpha = P$CGEL),silent=TRUE) } if (P$type == "ETEL") obj <- mean(.rho(gt, lamb$lambda, type = P$type, derive = 0, k = P$k1/P$k2) - .rho(1, 0, type = P$type, derive = 0, k = P$k1/P$k2)) else if (P$type == "ETHD") obj <- sum(.rho(gt, lamb$lambda, type = P$type, derive = 0, k = P$k1/P$k2) - .rho(1, 0, type = P$type, derive = 0, k = P$k1/P$k2)) else obj <- lamb$obj assign("l0",lamb$lambda,envir=l0Env) if(output == "obj") return(obj) else return(list(obj = obj, lambda = lamb, gt = gt)) } .getImpProb <- function(gt, lambda, type, k1, k2) { if ((type == "ETEL")|(type=="ETHD")) type <- "ET" n <- NROW(gt) pt <- -.rho(gt, lambda, type = type, derive = 1, k = k1/k2)/n # Making sure pt>0 if (type=="CUE") { eps <- -length(pt)*min(min(pt),0) pt <- (pt+eps/length(pt))/(1+eps) } if (type=="RCUE") pt[pt<0] <- 0 ################### conv_moment <- colSums(pt*gt) conv_pt <- sum(as.numeric(pt)) pt <- pt/sum(pt) attr(pt, "conv_moment") <- conv_moment attr(pt, "conv_pt") <- conv_pt pt } .vcovGel <- function(gt, G, k1, k2, bw, pt=NULL,tol=1e-16) { q <- NCOL(gt) n <- NROW(gt) if (is.null(pt)) pt <- 1/n G <- G/k1 gt <- gt*sqrt(pt*bw/k2) qrGt <- qr(gt) piv <- sort.int(qrGt$pivot, index.return=TRUE)$ix R <- qr.R(qrGt)[,piv] X <- forwardsolve(t(R), G) Y <- forwardsolve(t(R), diag(q)) res <- lm.fit(X,Y) u <- res$residuals Sigma <- chol2inv(res$qr$qr)/n diag(Sigma)[diag(Sigma)<0] <- tol if (q==ncol(G)) { SigmaLam <- matrix(0, q, q) } else { SigmaLam <- backsolve(R, u)/n*bw^2 diag(SigmaLam)[diag(SigmaLam)<0] <- tol } khat <- crossprod(R) list(vcov_par=Sigma, vcov_lambda=SigmaLam,khat=khat) } gmm/R/PlotMethods.R0000644000176200001440000000611311331045226013616 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ plot.gmm <- function (x, which = c(1L:3), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) { if (!inherits(x, "gmm")) stop("use only with \"gmm\" objects") if (!inherits(x, "gel")) { if(!is.numeric(which) || any(which < 1) || any(which > 3)) stop("'which' must be in 1L:3") show <- rep(FALSE, 3) } else { if(!is.numeric(which) || any(which < 1) || any(which > 4)) stop("'which' must be in 1L:4") show <- rep(FALSE, 4) } show[which] <- TRUE r <- residuals(x) if(ncol(r)>1) stop("plot.gmm is not yet implemented for system of equations") yh <- fitted(x) n <- length(r) if (ask) { oask <- devAskNewPage(TRUE) on.exit(devAskNewPage(oask)) } ##---------- Do the individual plots : ---------- if (show[1L]) { ylim <- range(r, na.rm=TRUE) ylim <- extendrange(r= ylim, f = 0.08) plot(yh, r, xlab = "Fitted", ylab = "Residuals", main = main[1L], ylim = ylim, type = "n", ...) panel(yh, r) abline(h = 0, lty = 3, col = "gray") } if (show[2L]) { ## Normal rs <- (r-mean(r))/sd(r) ylim <- range(rs, na.rm=TRUE) ylim[2L] <- ylim[2L] + diff(ylim) * 0.075 qq <- qqnorm(rs, main = main[2L], ylab = "stand. residuals", ylim = ylim, ...) qqline(rs, lty = 3, col = "gray50") } if (show[3L]) { y <- as.matrix(model.response(x$model, "numeric")) ylim <- range(yh, na.rm=TRUE) ylim <- extendrange(r= ylim, f = 0.08) plot(y, main = main[3L], ylim = ylim, ...) lines(yh,col=2) } if (inherits(x, "gel")) { if (show[4L]) { pt <- x$pt plot(pt, type='l',main = main[4L],ylab="Implied Prob.", ...) emp_pt <- rep(1/length(pt),length(pt)) lines(emp_pt,col=2) legend("topleft",c("Imp. Prob.","Empirical (1/T)"),col=1:2,lty=c(1,1)) } } invisible() } plot.gel <- function (x, which = c(1L:4), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values","Implied probabilities"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) { if (!inherits(x, "gel")) stop("use only with \"gel\" objects") class(x) <- c("gmm","gel") plot(x,which=which,main=main,panel=panel, ask=ask, ..., add.smooth=add.smooth) invisible() } gmm/R/Methods.gmm.R0000644000176200001440000002171613571757641013567 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ summary.gmm <- function(object, ...) { z <- object se <- sqrt(diag(z$vcov)) par <- z$coefficients tval <- par/se ans <- list(met=z$met,kernel=z$kernel,algo=z$algo,call=z$call) names(ans$met) <- "GMM method" names(ans$kernel) <- "kernel for cov matrix" ans$coefficients <- cbind(par,se, tval, 2 * pnorm(abs(tval), lower.tail = FALSE)) dimnames(ans$coefficients) <- list(names(z$coefficients), c("Estimate", "Std. Error", "t value", "Pr(>|t|)")) ans$stest <- specTest(z) ans$algoInfo <- z$algoInfo if(z$met=="cue") ans$cue <- object$cue if (!is.null(object$initTheta)) { ans$initTheta <- object$initTheta names(ans$initTheta) <- names(z$coefficients) } ans$specMod <- object$specMod ans$bw <- attr(object$w0,"Spec")$bw ans$weights <- attr(object$w0,"Spec")$weights if(object$infVcov == "iid") ans$kernel <- NULL class(ans) <- "summary.gmm" ans } summary.tsls <- function(object, vcov = NULL, ...) { if (!is.null(vcov)) object$vcov=vcov ans <- summary.gmm(object) ans$met <- paste(ans$met, "(Meat type = ", attr(object$vcov, "vcovType"), ")",sep="") k <- object$dat$k if (!is.null(object$fsRes)) { fstat <- vector() fsRes <- object$fsRes if (class(fsRes)[1] == "listof") { nendo <- length(fsRes) } else { nendo <- 1 } if (nendo == 1) { fstat[1] <- fsRes$fstatistic[1] df1 <- fsRes$fstatistic[2] df2 <- fsRes$fstatistic[3] } else { fstat[1] <- fsRes[[1]]$fstatistic[1] df1 <- fsRes[[1]]$fstatistic[2] df2 <- fsRes[[1]]$fstatistic[3] } if (nendo > 1){ for (i in 2:nendo) fstat[i] <- fsRes[[i]]$fstatistic[1] } pvfstat <- 1-pf(fstat,df1, df2) names(fstat) <- attr(fsRes,"Endo") ans$fstatistic <- list(fstat = fstat, pvfstat = pvfstat, df1 = df1, df2 = df2) } ans$specMod <- object$specMod class(ans) <- "summary.tsls" return(ans) } print.summary.tsls <- function(x, digits = 5, ...) { print.summary.gmm(x,digits) if (!is.null(x$fstatistic)) { cat("\n First stage F-statistics: \n") if(names(x$fstatistic$fstat)[1]=="(Intercept)") start=2 else start=1 for (i in start:length(x$fstatistic$fstat)) cat(names(x$fstatistic$fstat)[i], ": F(",x$fstatistic$df1,", ",x$fstatistic$df2,") = ",x$fstatistic$fstat[i], " (P-Vavue = ",x$fstatistic$pvfstat[i],")\n") } else { cat("\n No first stage F-statistics (just identified model)\n") } } print.summary.gmm <- function(x, digits = 5, ...) { cat("\nCall:\n") cat(paste(deparse(x$call), sep="\n", collapse = "\n"), "\n\n", sep="") cat("\nMethod: ", x$met,"\n") if (x$met=="cue") { if (!is.null(x$cue$message)) { cat(" (",x$cue$message,")\n\n") } } else { cat("\n") } if( !is.null(x$kernel)) { cat("Kernel: ", x$kernel) if (!is.null(x$bw)) cat("(with bw = ", round(x$bw,5),")\n\n") else cat("\n\n") } cat("Coefficients:\n") print.default(format(x$coefficients, digits=digits), print.gap = 2, quote = FALSE) cat("\n") cat(x$stest$ntest,"\n") print.default(format(x$stest$test, digits=digits), print.gap = 2, quote = FALSE) cat("\n") if(!is.null(x$initTheta)) { cat("Initial values of the coefficients\n") print(x$initTheta) cat("\n") } cat(x$specMod) if(!is.null(x$algoInfo)) { cat("#############\n") cat("Information related to the numerical optimization\n") } if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") if(!is.null(x$algoInfo$counts)) { cat("Function eval. = ",x$algoInfo$counts[1],"\n") cat("Gradian eval. = ",x$algoInfo$counts[2],"\n") } if(!is.null(x$algoInfo$message)) cat("Message: ",x$algoInfo$message,"\n") invisible(x) } formula.gmm <- function(x, ...) { if(is.null(x$terms)) stop("The gmm object was not created by a formula") else formula(x$terms) } confint.gmm <- function(object, parm, level=0.95, ...) { ntest <- "Wald type confidence interval" z <- object se <- sqrt(diag(z$vcov)) par <- z$coefficients zs <- qnorm((1-level)/2,lower.tail=FALSE) ch <- zs*se ans <- cbind(par-ch,par+ch) dimnames(ans) <- list(names(par),c((1-level)/2,0.5+level/2)) if(!missing(parm)) ans <- ans[parm,] ans <- list(test=ans, ntest=ntest) class(ans) <- "confint" ans } residuals.gmm <- function(object,...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$residuals } fitted.gmm <- function(object,...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$fitted.value } print.gmm <- function(x, digits=5, ...) { cat("Method\n", x$met,"\n\n") cat("Objective function value: ",x$objective,"\n\n") print.default(format(coef(x), digits=digits), print.gap = 2, quote = FALSE) cat("\n") if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") cat(x$specMod) invisible(x) } coef.gmm <- function(object,...) object$coefficients vcov.gmm <- function(object,...) object$vcov estfun.gmmFct <- function(x, y = NULL, theta = NULL, ...) { if (is(x, "function")) { gmat <- x(theta, y) return(gmat) } else return(x) } estfun.tsls <- function(x, ...) { model.matrix(x)*c(residuals(x)) } model.matrix.tsls <- function(object, ...) { dat <- object$dat ny <- dat$ny nh <- dat$nh k <- dat$k x <- dat$x n <- nrow(x) hm <- as.matrix(x[,(ny+k+1):(ny+k+nh)]) xm <- as.matrix(x[,(ny+1):(ny+k)]) xhat <- lm(xm~hm-1)$fitted assign <- 1:ncol(xhat) if (attr(object$terms,"intercept")==1) assign <- assign-1 attr(xhat,"assign") <- assign xhat } vcov.tsls <- function(object, type=c("Classical","HC0","HC1","HAC"), hacProp = list(), ...) { type <- match.arg(type) if (type == "Classical") { sig <- sum(c(residuals(object))^2)/(nrow(object$dat$x)-object$dat$k) ny <- object$dat$ny nh <- object$dat$nh k <- object$dat$k n <- nrow(object$dat$x) hm <- as.matrix(object$dat$x[,(ny+k+1):(ny+k+nh)]) Omega <- crossprod(hm)*sig/nrow(object$dat$x) vcovType <- "Classical" V <- solve(crossprod(object$G,solve(Omega,object$G)))/nrow(object$dat$x) } else if (strtrim(type,2) == "HC") { meat <- meatHC(object, type) bread <- bread(object) vcovType <- paste("HCCM: ", type, sep="") V <- crossprod(bread, meat%*%bread)/nrow(object$dat$x) } else { object$centeredVcov <- TRUE gt <- model.matrix(object)*c(residuals(object)) gt <- lm(gt~1) arg <- c(list(x=gt,sandwich=FALSE),hacProp) meat <- do.call(kernHAC, arg) KType <- ifelse(is.null(hacProp$kernel), formals(kernHAC)$kernel[[2]], hacProp$kernel) vcovType <- paste("HAC: ", KType, sep="") bread <- bread(object) V <- crossprod(bread, meat%*%bread)/nrow(object$dat$x) } attr(V, "vcovType") <- vcovType return(V) } estfun.gmm <- function(x, ...) { foc <- x$gt %*% x$w %*% x$G return(foc) } bread.gmm <- function(x, ...) { GWG <- crossprod(x$G, x$w %*% x$G) b <- try(solve(GWG), silent = TRUE) if (any(class(b) == "try-error")) stop("The bread matrix is singular") return(b) } bread.tsls <- function(x, ...) { dat <- x$dat ny <- dat$ny nh <- dat$nh k <- dat$k x <- dat$x n <- nrow(x) hm <- as.matrix(x[,(ny+k+1):(ny+k+nh)]) xm <- as.matrix(x[,(ny+1):(ny+k)]) xhat <- lm(xm~hm-1)$fitted solve(crossprod(xhat)/n) } gmm/R/getModel.R0000644000176200001440000006505614342733705013142 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ getModel <- function(object, ...) { UseMethod("getModel") } getModel.tsls <- function(object, ...) { obj <- getModel.baseGmm(object, ...) return(obj) } getModel.sysGmm <- function(object, ...) { if (object$commonCoef & !is.null(object$crossEquConst)) { object$commonCoef <- FALSE warning("When crossEquConst is not NULL, commonCoef=TRUE is ignore and set to FALSE") } object$allArg <- c(object, ...) object$formula <- list(g=object$g, h=object$h) if (!is.list(object$g)) stop("g must be list of formulas") if (length(object$g) == 1) stop("For single equation GMM, use the function gmm()") if (!all(sapply(1:length(object$g), function(i) is(object$g[[i]], "formula")))) stop("g must be a list of formulas") if (!is.list(object$h)) { if(!is(object$h, "formula")) stop("h is either a list of formulas or a formula") else object$h <- list(object$h) } else { if (!all(sapply(1:length(object$h), function(i) is(object$h[[i]], "formula")))) stop("h is either a list of formulas or a formula") } if (length(object$h) == 1) { object$h <- rep(object$h, length(object$g)) typeDesc <- "System Gmm with common instruments" typeInst <- "Common" } else { if (length(object$h) != length(object$g)) stop("The number of formulas in h should be the same as the number of formulas in g, \nunless the instruments are the same in each equation, \nin which case the number of equations in h should be 1") typeDesc <- "System Gmm" typeInst <- "nonCommon" } if (object$commonCoef) typeDesc <- paste(typeDesc, " (Common Coefficients)") dat <- lapply(1:length(object$g), function(i) try(getDat(object$g[[i]], object$h[[i]], data = object$data, error=!object$commonCoef), silent=TRUE)) chk <- sapply(1:length(dat), function(i) any(class(dat[[i]]) == "try-error")) chk <- which(chk) mess <- vector() for (i in chk) { mess <- paste(mess, "\nSystem of equations:", i, "\n###############\n", sep="") mess <- paste(mess, attr(dat[[i]], "condition")[[1]]) } if (length(chk)>0) stop(mess) if (is.null(names(object$g))) names(dat) <- paste("System_", 1:length(dat), sep="") else names(dat) <- names(object$g) object$gradv <- .DmomentFct_Sys object$formula <- list(g=object$g, h=object$h) if (!all(sapply(1:length(dat), function(i) dat[[i]]$ny == 1))) stop("The number of dependent variable must be one in every equation") clname <- "sysGmm.twoStep.formula" object$x <- dat namex <- lapply(1:length(dat), function(i) colnames(dat[[i]]$x[,2:(1+dat[[i]]$k), drop=FALSE])) nameh <- lapply(1:length(dat), function(i) colnames(dat[[i]]$x[,(2+dat[[i]]$k):(1+dat[[i]]$k+dat[[i]]$nh), drop=FALSE])) namey <- lapply(1:length(dat), function(i) colnames(dat[[i]]$x[,1, drop=FALSE])) object$namesCoef <- namex namesgt <- lapply(1:length(dat), function(i) paste(namey[[i]], "_", nameh[[i]], sep="")) object$namesgt <- namesgt object$namesy <- namey attr(object$x,"ModelType") <- "linear" #for (i in 1:length(object$x)) # attr(object$x[[i]], c("linear")) <- attr(object$x, "modelType") attr(object$x, "k") <- lapply(1:length(dat), function(i) length(object$namesCoef[[i]])) attr(object$x, "q") <- lapply(1:length(dat), function(i) length(object$namesgt[[i]])) attr(object$x, "n") <- lapply(1:length(dat), function(i) nrow(object$x[[i]]$x)) object$TypeGmm <- class(object) attr(object$x, "weight") <- list(w=object$weightsMatrix, centeredVcov=object$centeredVcov) attr(object$x, "weight")$WSpec <- list() attr(object$x, "weight")$WSpec$sandwich <- list(kernel = object$kernel, bw = object$bw, prewhite = object$prewhite, ar.method = object$ar.method, approx = object$approx, tol = object$tol) attr(object$x, "weight")$vcov <- object$vcov k <- lapply(1:length(dat), function(i) dat[[i]]$k) q <- lapply(1:length(dat), function(i) dat[[i]]$nh) df <- lapply(1:length(dat), function(i) dat[[i]]$nh-dat[[i]]$k) k2 <- do.call(c,k) if (object$commonCoef | !is.null(object$crossEquConst)) { if (!all(k2==k2[1])) stop("In a common coefficient model the number of regressors is the same in each equation") if (object$commonCoef) totK <- k2[1] else totK <- length(dat)*(k2[1]-length(object$crossEquConst)) + length(object$crossEquConst) if (sum(do.call(c,q))=length(object$t0)) stop("Too many constraints; use evalGmm() if all coefficients are fixed") if (is.character(object$eqConst)) { if (is.null(names(object$t0))) stop("t0 must be a named vector if you want eqConst to be names") if (any(!(object$eqConst %in% names(object$t0)))) stop("Wrong coefficient names in eqConst") object$eqConst <- sort(match(object$eqConst,names(object$t0))) } restTet <- object$t0[object$eqConst] obj$t0 <- object$t0[-object$eqConst] object$eqConst <- cbind(object$eqConst,restTet) } else { if (is.null(dim(object$eqConst))) stop("When t0 is not provided, eqConst must be a 2xq matrix") } attr(obj$x, "eqConst") <- list(eqConst = object$eqConst) rownames(attr(obj$x, "eqConst")$eqConst) <- obj$namesCoef[object$eqConst[,1]] object$eqConst <- attr(obj$x, "eqConst")$eqConst if(is(object$g, "formula")) { if (obj$x$ny>1) stop("Constrained GMM not implemented yet for system of equations") if (obj$x$k<=0) stop("Nothing to estimate") } obj$eqConst <- object$eqConst attr(obj$x, "k") <- attr(obj$x, "k")-nrow(object$eqConst) obj$namesCoef <- obj$namesCoef[-object$eqConst[,1]] obj$type <- paste(obj$type,"(with equality constraints)",sep=" ") mess <- paste(rownames(object$eqConst), " = " , object$eqConst[,2], "\n",collapse="") mess <- paste("#### Equality constraints ####\n",mess,"##############################\n\n",sep="") obj$specMod <- mess return(obj) } getModel.baseGmm <- function(object, ...) { object$allArg <- c(object, list(...)) if(is(object$g, "formula")) { object$gradv <- .DmomentFct object$gradvf <- FALSE dat <- getDat(object$g, object$x, data = object$data) if(is.null(object$weightsMatrix)) { clname <- paste(class(object), ".", object$type, ".formula", sep = "") } else { clname <- "fixedW.formula" object$type <- "One step GMM with fixed W" } object$x <- dat object$gform<-object$g namex <- colnames(dat$x[,(dat$ny+1):(dat$ny+dat$k), drop=FALSE]) nameh <- colnames(dat$x[,(dat$ny+dat$k+1):(dat$ny+dat$k+dat$nh), drop=FALSE]) if (dat$ny > 1) { namey <- colnames(dat$x[,1:dat$ny, drop=FALSE]) object$namesCoef <- paste(rep(namey, dat$k), "_", rep(namex, rep(dat$ny, dat$k)), sep = "") object$namesgt <- paste(rep(namey, dat$nh), "_", rep(nameh, rep(dat$ny, dat$nh)), sep = "") } else { object$namesCoef <- namex object$namesgt <- nameh } attr(object$x,"ModelType") <- "linear" attr(object$x, "k") <- object$x$k attr(object$x, "q") <- object$x$ny*object$x$nh attr(object$x, "n") <- NROW(object$x$x) attr(object$x, "namesgt") <- object$namesgt } else { attr(object$x,"ModelType") <- "nonlinear" attr(object$x, "momentfct") <- object$g if (object$optfct == "optimize") attr(object$x, "k") <- 1 else attr(object$x, "k") <- length(object$t0) attr(object$x, "q") <- NCOL(gt <- object$g(object$t0, object$x)) attr(object$x, "n") <- NROW(gt) if (object$optfct == "optimize") { object$namesCoef <- "Theta1" } else { if(is.null(names(object$t0))) object$namesCoef <- paste("Theta[" ,1:attr(object$x, "k"), "]", sep = "") else object$namesCoef <- names(object$t0) } if(is.null(object$weightsMatrix)) { clname <- paste(class(object), "." ,object$type, sep = "") } else { clname <- "fixedW" object$type <- "One step GMM with fixed W" attr(object$x, "weight")$w <- object$weightsMatrix } if (!is.function(object$gradv)) { object$gradvf <- FALSE } else { attr(object$x, "gradv") <- object$gradv object$gradvf <- TRUE } object$gradv <- .DmomentFct } object$TypeGmm <- class(object) attr(object$x, "weight") <- list(w=object$weightsMatrix, centeredVcov=object$centeredVcov) attr(object$x, "weight")$WSpec <- list() attr(object$x, "weight")$WSpec$sandwich <- list(kernel = object$kernel, bw = object$bw, prewhite = object$prewhite, ar.method = object$ar.method, approx = object$approx, tol = object$tol) attr(object$x, "weight")$vcov <- object$vcov attr(object$x, "mustar") <- object$mustar object$g <- .momentFct class(object) <- clname return(object) } getModel.constGel <- function(object, ...) { class(object) <- "baseGel" obj <- getModel(object) if (!is.null(dim(object$eqConst))) stop("eqConst must be a vector which indicates which parameters to fix") if (length(object$eqConst)>=length(object$tet0)) stop("Too many constraints; use evalGel() if all coefficients are fixed") if (is.character(object$eqConst)) { if (is.null(names(object$tet0))) stop("tet0 must be a named vector if you want eqConst to be names") if (any(!(object$eqConst %in% names(object$tet0)))) stop("Wrong coefficient names in eqConst") object$eqConst <- sort(match(object$eqConst,names(object$tet0))) } restTet <- object$tet0[object$eqConst] obj$tet0 <- object$tet0[-object$eqConst] object$eqConst <- cbind(object$eqConst,restTet) attr(obj$x, "eqConst") <- list(eqConst = object$eqConst) rownames(attr(obj$x, "eqConst")$eqConst) <- obj$namesCoef[object$eqConst[,1]] object$eqConst <- attr(obj$x, "eqConst")$eqConst if(is(object$g, "formula")) { if (obj$x$ny>1) stop("Constrained GMM not implemented yet for system of equations") } obj$eqConst <- object$eqConst attr(obj$x, "k") <- attr(obj$x, "k")-nrow(object$eqConst) obj$namesCoef <- obj$namesCoef[-object$eqConst[,1]] obj$typeDesc <- paste(obj$typeDesc,"(with equality constraints)",sep=" ") mess <- paste(rownames(object$eqConst), " = " , object$eqConst[,2], "\n",collapse="") mess <- paste("#### Equality constraints ####\n",mess,"##############################\n\n",sep="") obj$specMod <- mess return(obj) } getModel.baseGel <- function(object, ...) { object$allArg <- c(object, list(...)) object$allArg$weights <- NULL object$allArg$call <- NULL if(is(object$g, "formula")) { dat <- getDat(object$g, object$x, data = object$data) k <- dat$k if (is.null(object$tet0)) { if (!is.null(object$eqConst)) stop("You have to provide tet0 with equality constrains") if (object$optfct == "optimize") stop("For optimize, you must provide the 2x1 vector tet0") res0 <- gmm(object$g, object$x, data=object$data) object$tet0 <- res0$coefficients if (object$smooth) gt <- res0$gt } else { if (object$optfct == "optimize") { if (k != 1) stop("optimize() is for univariate optimization") if (length(object$tet0) != 2) stop("For optimize(), tet0 must be a 2x1 vector") } else { if (k != length(object$tet0)) stop("The number of starting values does not correspond to the number of regressors") } if (object$smooth) gt <- gmm(object$g, object$x, data=object$data)$gt } clname <- paste(class(object), ".modFormula", sep = "") object$gradv <- .DmomentFct object$gradvf <- FALSE object$x <- dat object$gform<-object$g namex <- colnames(dat$x[,(dat$ny+1):(dat$ny+dat$k), drop=FALSE]) nameh <- colnames(dat$x[,(dat$ny+dat$k+1):(dat$ny+dat$k+dat$nh), drop=FALSE]) if (dat$ny > 1) { namey <- colnames(dat$x[,1:dat$ny]) namesCoef <- paste(rep(namey, dat$k), "_", rep(namex, rep(dat$ny, dat$k)), sep = "") object$namesgt <- paste(rep(namey, dat$nh), "_", rep(nameh, rep(dat$ny, dat$nh)), sep = "") } else { namesCoef <- namex object$namesgt <- nameh } if (is.null(names(object$tet0))) object$namesCoef <- namesCoef else object$namesCoef <- names(object$tet0) attr(object$x,"ModelType") <- "linear" attr(object$x, "k") <- k attr(object$x, "q") <- object$x$ny*object$x$nh attr(object$x, "n") <- NROW(object$x$x) } else { if (is.null(object$tet0)) stop("You must provide the starting values tet0 for nonlinear moments") if(any(object$optfct == c("optim", "nlminb"))) k <- length(object$tet0) else k <- 1 attr(object$x,"ModelType") <- "nonlinear" attr(object$x, "momentfct") <- object$g attr(object$x, "k") <- k attr(object$x, "q") <- NCOL(gt <- object$g(object$tet0, object$x)) attr(object$x, "n") <- NROW(gt) if(is.null(names(object$tet0))) object$namesCoef <- paste("Theta[" ,1:attr(object$x, "k"), "]", sep = "") else object$namesCoef <- names(object$tet0) if (!is.function(object$gradv) | object$smooth) { object$gradvf <- FALSE } else { attr(object$x, "gradv") <- object$gradv object$gradvf <- TRUE } object$gradv <- .DmomentFct if (object$smooth) gt <- gmm(object$g, object$x, object$tet0, wmatrix = "ident", ...)$gt clname <- paste(class(object), ".mod", sep = "") } if (object$smooth) { if (is.function(object$gradv)) warning("The provided gradv is not used when smooth=TRUE", call. = FALSE) if(object$kernel == "Truncated") { object$wkernel <- "Bartlett" object$k1 <- 2 object$k2 <- 2 } if(object$kernel == "Bartlett") { object$wkernel <- "Parzen" object$k1 <- 1 object$k2 <- 2/3 } gt <- scale(gt, scale=FALSE) class(gt) <- "gmmFct" if (is.function(object$bw)) object$bwVal <- object$bw(gt, kernel = object$wkernel, prewhite = object$prewhite, ar.method = object$ar.method, approx = object$approx) else object$bwVal <- object$bw object$w <- smoothG(gt, bw = object$bwVal, kernel = object$kernel, tol = object$tol_weights)$kern_weights attr(object$x,"smooth") <- list(bw=object$bwVal, w=object$w, kernel=object$kernel) } else { object$k1 <- 1 object$k2 <- 1 object$w <- kernel(1) object$bwVal <- 1 } object$g <- .momentFct object$CGEL <- object$alpha object$typeDesc <- object$type class(object) <- clname return(object) } getModel.ateGel <- function(object, ...) { object$allArg <- c(object, list(...)) object$allArg$weights <- NULL object$allArg$call <- NULL if(is(object$g, "formula")) { dat <- getDat(object$g, object$x, data = object$data) if (!is.null(object$w)) if (is(object$w, "formula")) { dat$w <- model.matrix(object$w, object$data)[,-1,drop=FALSE] } else { stop("w must be a formula") } if (dat$ny>1 | dat$ny==0) stop("You need one and only one dependent variable") k <- dat$k if (k>2 & object$momType=="ATT") stop("Cannot compute ATT with multiple treatments") if (attr(dat$mt, "intercept")!=1) stop("An intercept is needed to compute the treatment effect") if (!all(dat$x[,3:(k+1)] %in% c(0,1))) stop("The treatment indicators can only take values 0 or 1") if (colnames(dat$x)[k+2] == "(Intercept)") { dat$x <- dat$x[,-(k+2)] dat$nh <- dat$nh-1 } if (!is.null(object$popMom)) { if (length(object$popMom)!=dat$nh) stop("The dim. of the population moments does not match the dim. of the vector of covariates") } if (is.null(object$tet0)) { if (is.null(dat$w)) { tet0 <- lm(dat$x[,1]~dat$x[,3:(k+1)])$coef } else { tet0 <- lm(dat$x[,1]~dat$x[,3:(k+1)]+dat$w)$coef } tet0 <- c(tet0, colMeans(dat$x[,3:(k+1),drop=FALSE])) names(tet0) <- NULL object$tet0 <- tet0 } else { ntet0 <- 2*k-1 + ifelse(is.null(dat$w), 0, ncol(dat$w)) if (length(object$tet0) != ntet0) stop("tet0 should have a length equal to 2x(number of treatments)+1+number of w's if any") } if (object$family != "linear") { if (any(!(dat$x[,1]%in%c(0,1)))) stop("For logit or probit, Y can only take 0s and 1s") family <- binomial(link=object$family) if (object$family == "logit") family$mu.eta2 <- function(x, family) family$mu.eta(x)*(1-2*family$linkinv(x)) else family$mu.eta2 <- function(x, family) -x*family$mu.eta(x) } else { family <- NULL } q <- dat$nh + 2*k+1 if (object$momType != "bal" | !is.null(object$popMom)) q <- q+dat$nh if (!is.null(dat$w)) { q <- q+ncol(dat$w) namew <- colnames(dat$w) } else { namew <- NULL } object$gradv <- .DmomentFctATE object$x <- dat object$gradvf <- FALSE object$gform<-object$g namex <- colnames(dat$x[,2:(k+1)]) nameh <- colnames(dat$x[,(k+2):ncol(dat$x), drop=FALSE]) namesCoef <- c(namex, namew, paste("TreatProb", 1:(k-1), sep="")) namesgt <- paste(rep(paste("Treat", 1:(k-1), sep=""), rep(dat$nh, k-1)), "_", rep(nameh, k-1), sep="") object$namesgt <- c(namesCoef,namesgt) if (object$momType != "bal" | !is.null(object$popMom)) object$namesgt <- c(object$namesgt, paste("bal_", nameh, sep="")) if (is.null(names(object$tet0))) object$namesCoef <- namesCoef else object$namesCoef <- names(object$tet0) attr(object$x,"ModelType") <- "linear" attr(object$x, "k") <- k attr(object$x, "q") <- q attr(object$x, "n") <- nrow(dat$x) attr(object$x, "momType") <- object$momType attr(object$x, "popMom") <- object$popMom attr(object$x, "family") <- family } else { stop("Not implemented yet for nonlinear regression") } if (object$momType == "ATT") metname <- "ATT" else metname <- "ATE" if (!is.null(object$popMom)) { metname2 <- " with balancing based on population moments" } else { if (object$momType == "balSample") metname2 <- " with balancing based on the sample moments" else metname2 <- " with unrestricted balancing" } metname3 <- paste("\nMethod: ", object$type, sep="") if (!is.null(family)) metname3 <- paste(metname3, ", Family: Binomial with ", family$link, " link", sep="") clname <- "baseGel.mod" object$k1 <- 1 object$k2 <- 1 object$w <- kernel(1) object$bwVal <- 1 object$g <- .momentFctATE object$CGEL <- object$alpha object$typeDesc <- paste(metname, metname2, metname3, sep="") class(object) <- clname return(object) } gmm/R/charStable.R0000644000176200001440000000401211741057114013424 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ charStable <- function(theta, tau, pm = 0) { # pm is the type parametrization as described by Nolan(2009) # It takes the value 0 or 1 # const can fixe parameters. It is NULL for no constraint or # a matrix in which case the constraint is theta[const[,1]]=const[,2] a <- theta[1] b <- theta[2] g <- theta[3] d <- theta[4] if(pm == 0) { if(a == 1) { if(g == 0) { the_car <- exp(complex(imaginary = d*tau)) } else { re_p <- -g * abs(tau) im_p <- d * tau im_p[tau!=0] <- im_p[tau != 0] + re_p[tau != 0]*2/pi*b*sign(tau[tau != 0])*log(g*abs(tau[tau != 0])) the_car <- exp(complex(real = re_p, imaginary = im_p)) } } else { if(g == 0) { the_car <- exp(complex(imaginary = d*tau)) } else { phi <- tan(pi*a/2) re_p <- -g^a*abs(tau)^a im_p <- d*tau*1i im_p[tau != 0] <- im_p[tau != 0] + re_p*( b*phi*sign(tau[tau != 0])*(abs(g*tau[tau != 0])^(1-a) - 1) ) the_car <- exp(complex(real = re_p, imaginary = im_p)) } } } if(pm == 1) { if(a == 1) { re_p <- -g*abs(tau) im_p <- d*tau im_p[tau!=0] <- im_p[tau != 0]+re_p*(b*2/pi*sign(tau[tau != 0])*log(abs(tau[tau!=0]))) the_car <- exp(complex(real = re_p, imaginary = im_p)) } else { phi <- tan(pi*a/2) re_p <- -g^a*abs(tau)^a im_p <- re_p*(-phi*b*sign(tau)) + d*tau the_car <- exp(complex(real = re_p, imaginary = im_p)) } } return(the_car) } gmm/R/ategel.R0000644000176200001440000003442513467070535012641 0ustar liggesusersATEgel <- function(g, balm, w=NULL, y=NULL, treat=NULL, tet0=NULL, momType=c("bal","balSample","ATT"), popMom = NULL, family=c("linear","logit", "probit"), type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optfct = c("optim", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data=NULL, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, ...) { type <- match.arg(type) optfct <- match.arg(optfct) optlam <- match.arg(optlam) momType <- match.arg(momType) family <- match.arg(family) TypeGel <- "ateGel" all_args <- list(g = g, x = balm, w=w, y=y, treat=treat, tet0 = tet0, type = type, tol_lam = tol_lam, tol_obj = tol_obj, tol_mom = tol_mom, maxiterlam = maxiterlam, optfct = optfct, optlam = optlam, model = model, X = X, Y = Y, TypeGel = TypeGel, call = match.call(), Lambdacontrol = Lambdacontrol, data = data, constraint=FALSE, kernel = "Truncated", bw = bwAndrews, approx = "AR(1)", prewhite = 1, ar.method = "ols", tol_weights = 1e-7, alpha = NULL, eqConst = NULL, eqConstFullVcov = FALSE, momType=momType, popMom=popMom, family=family, onlyCoefficients=FALSE) class(all_args)<-TypeGel Model_info<-getModel(all_args) z <- momentEstim(Model_info, ...) class(z) <- c("ategel", "gel") res <- try(.vcovate(z), silent=TRUE) if (any(class(res)=="try-error")) { warning("Could not compute the robust-to misspecification standard errors") z$robVcov <- FALSE } else { z$vcov_par <- res$vcov_par z$vcov_lambda <- res$vcov_lambda z$robVcov <- TRUE } return(z) } .momentFctATE <- function(tet, dat) { x <- dat$x k <- dat$k if (is.null(dat$w)) { Z <- x[,2:(k+1),drop=FALSE] } else { Z <- cbind(x[,2:(k+1)], dat$w) } tetz <- tet[1:ncol(Z)] tetb <- tail(tet, k-1) ZT <- c(Z%*%tetz) if (is.null(attr(dat, "family"))) e <- x[,1] - ZT else e <- x[,1] - attr(dat, "family")$linkinv(ZT) gt1 <- e * Z gt2 <- sweep(x[,3:(k+1),drop=FALSE],2,tetb,"-") gt3 <- lapply(1:(k-1), function(i) gt2[,i]*x[,-(1:(k+1))]) gt3 <- do.call(cbind, gt3) gt <- cbind(gt1,gt2,gt3) if (is.null(attr(dat, "popMom"))) { if (attr(dat, "momType") == "balSample") { momB <- scale(x[,-(1:(k+1)),drop=FALSE], scale=FALSE) gt <- cbind(gt, momB) } if (attr(dat, "momType") == "ATT") { momB <- sweep(x[,-(1:3), drop=FALSE], 2, colMeans(x[x[,3]==1,-(1:3), drop=FALSE]), FUN="-") gt <- cbind(gt, momB) } } else { momB <- sweep(x[,-(1:(k+1)), drop=FALSE], 2, attr(dat, "popMom"), "-") gt <- cbind(gt, momB) } return(as.matrix(gt)) } .DmomentFctATE <- function(tet, dat, pt=NULL) { if (is.null(pt)) pt <- rep(1/nrow(dat$x), nrow(dat$x)) x <- dat$x k <- dat$k q <- dat$nh*(k-1)+2*k-1 if (is.null(dat$w)) { Z <- x[,2:(k+1),drop=FALSE] } else { Z <- cbind(x[,2:(k+1)], dat$w) q <- q+ncol(dat$w) } l <- ncol(Z) ntet <- length(tet) ZT <- c(Z%*%tet[1:l]) G <- matrix(0, q, ntet) if (is.null(attr(dat, "family"))) { tau <- rep(1, nrow(x)) } else { tau <- attr(dat, "family")$mu.eta(ZT) } G11 <- lapply(1:l, function(i) -colSums(pt*Z[,i]*tau*Z)) G[1:l, 1:l] <- do.call(rbind, G11) G[(l+1):ntet, (l+1):ntet] <- -sum(pt)*diag(k-1) uK <- colSums(pt*x[,-(1:(k+1)),drop=FALSE]) G[(l+k):q, (l+1):ntet] <- -kronecker(diag(k-1), uK) if (attr(dat, "momType") != "bal" | !is.null(attr(dat, "popMom"))) G <- rbind(G, matrix(0, dat$nh, ntet)) return(G) } .DmomentFctATE2 <- function(tet, dat, pt=NULL) { G <- .DmomentFctATE(tet, dat, pt) #k <- attr(dat, "k") k <- dat$k q <- nrow(G)-dat$nh if (is.null(pt)) pt <- rep(1/nrow(dat$x), nrow(dat$x)) if (attr(dat, "momType") != "bal" & is.null(attr(dat, "popMom"))) G <- cbind(G, rbind(matrix(0,q, dat$nh), -sum(pt)*diag(dat$nh))) return(G) } .psiGam <- function(object) { n <- nrow(object$dat$x) nh <- object$dat$nh lam <- object$lambda q <- length(lam) k <- attr(object$dat, "k") theta <- object$coefficients gt <- object$gt rho1 <- .rho(x=gt, lamb=lam, derive=1, type=object$type) rho2 <- .rho(x=gt, lamb=lam, derive=2, type=object$type) if (is.null(object$dat$w)) { Z <- object$dat$x[,2:(k+1)] } else { Z <- cbind(object$dat$x[,2:(k+1)], object$dat$w) } l <- ncol(Z) ZT <- c(Z%*%theta[1:l]) X <- object$dat$x[,-(1:(k+1)), drop=FALSE] family <- attr(object$dat, "family") momType <- attr(object$dat, "momType") popMom <- attr(object$dat, "popMom") if (is.null(family)) { tau1 <- rep(1, n) } else { tau1 <- family$mu.eta(ZT) tau2 <- family$mu.eta2(ZT, family) } lG1 <- sapply(1:l, function(i) -(tau1*Z[,i]*Z)%*%lam[1:l]) q2 <- nh*(k-1)+l+k-1 lamM <- matrix(lam[(l+k):q2], ncol=(k-1)) lG2 <- sapply(1:(k-1), function(i) -lam[l+i]-X%*%lamM[,i]) lG <- cbind(lG1, lG2) G <- .DmomentFctATE2(theta, object$dat, rho1) G22 <- crossprod(rho2*gt, gt)/n if (momType == "bal" | !is.null(popMom)) { Psi <- cbind(rho1*lG, rho1*gt) G11 <- crossprod(rho2*lG, lG)/n G12 <- t(G)/n + crossprod(rho2*lG, gt)/n if (!is.null(family)) { G12tmp <- lapply(1:l, function(i) colSums(-rho1*tau2*Z[,i]*c(Z%*%lam[1:l])*Z)) G12.2 <- matrix(0, nrow(G12), ncol(G12)) G12.2[1:l,1:l] <- do.call(rbind, G12tmp) G12 <- G12 + G12.2/n } Gamma <- rbind(cbind(G11, G12), cbind(t(G12), G22)) addPar <- 0 } else { lG <- cbind(lG, matrix(-tail(lam, nh), n, nh, byrow=TRUE)) G11 <- crossprod(rho2*lG, lG)/n G12 <- t(G)/n + crossprod(rho2*lG, gt)/n if (!is.null(family)) { G12tmp <- lapply(1:l, function(i) colSums(-rho1*tau2*Z[,i]*c(Z%*%lam[1:l])*Z)) G12.2 <- matrix(0, nrow(G12), ncol(G12)) G12.2[1:l,1:l] <- do.call(rbind, G12tmp) G12 <- G12 + G12.2/n } if (momType == "balSample") Xi <- rep(1,n) else Xi <- Z[,(2:k)] nj <- sum(Xi) lam2 <- -sum(rho1)*tail(lam,nh)/nj theta4 <- colSums(Xi*X)/nj G13 <- rbind(matrix(0, l+k-1, nh), -nj/n*diag(nh)) G23 <- matrix(0,q, nh) G33 <- matrix(0, nh, nh) Psi <- cbind(rho1*lG, rho1*gt, Xi*sweep(X, 2, theta4, "-")) Psi[,(l+k):(l+k+nh-1)] <- Psi[,(l+k):(l+k+nh-1)]-Xi%*%t(lam2) Gamma <- rbind(cbind(G11, G12, G13), cbind(t(G12), G22, G23), cbind(t(G13), t(G23), G33)) addPar <- nh } list(Psi=Psi, Gamma=Gamma, k=length(theta), q=q, addPar=addPar, n=n) } .vcovate <- function (object) { res <- .psiGam(object) k <- res$k q <- res$q addPar <- res$addPar qrPsi <- qr(res$Psi/sqrt(res$n)) piv <- sort.int(qrPsi$pivot, index.return=TRUE)$ix R <- qr.R(qrPsi)[,piv] T1 <- solve(res$Gamma, t(R)) V <- T1%*%t(T1)/res$n allV <- list() allV$vcov_par <- V[1:k, 1:k] allV$vcov_lambda <- V[(k+addPar+1):(k+addPar+q), (k+addPar+1):(k+addPar+q)] if (addPar > 0) { allV$vcov_Allpar <- V[1:(k+addPar), 1:(k+addPar)] allV$vcov_Alllambda <- V[-(1:(k+addPar)), -(1:(k+addPar))] } allV } vcov.ategel <- function(object, lambda = FALSE, robToMiss=TRUE, ...) { if (robToMiss) { return(vcov.gel(object, lambda)) } else { object$lambda <- rep(0, length(object$lambda)) res <- .vcovate(object) object$vcov_par <- res$vcov_par object$vcov_lambda <- res$vcov_lambda return(vcov.gel(object, lambda)) } } summary.ategel <- function(object, robToMiss=TRUE, ...) { if (robToMiss) { ans <- summary.gel(object) ans$typeDesc = paste(ans$typeDesc, "\n(S.E. are robust to misspecification)", sep="") } else { object$vcov_par <- vcov(object, robToMiss=FALSE) object$vcov_lambda <- vcov(object, TRUE, robToMiss=FALSE) ans <- summary.gel(object) ans$typeDesc = paste(ans$typeDesc, "\n(S.E. are not robust to misspecification", sep="") } ans } confint.ategel <- function (object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, robToMiss=TRUE, ...) { type <- match.arg(type) if (type=="Wald") { if (!robToMiss) { object$vcov_par <- vcov(object, robToMiss=FALSE) object$vcov_lambda <- vcov(object, TRUE, robToMiss=FALSE) } return(confint.gel(object, parm, level, lambda, type, fact, corr, ...)) } object$allArg$g <- .momentFctATE object$allArg$y <- NULL object$allArg$w <- NULL object$allArg$treat <- NULL object$allArg$popMom <- NULL object$allArg$momType <- NULL object$allArg$family <- NULL object$allArg$x <- object$dat return(confint.gel(object, parm, level, lambda, type, fact, corr, ...)) } marginal <- function(object, ...) UseMethod("marginal") marginal.ategel <- function(object, ...) { family <- attr(object$dat, "family") if (is.null(family)) return(summary(object)$coef) k <- attr(object$dat, "k") p0 <- family$linkinv(object$coef[1]) p1 <- family$linkinv(object$coef[1]+object$coef[2:k]) p01 <- family$mu.eta(object$coef[1]) p11 <- family$mu.eta(object$coef[1]+object$coef[2:k]) A <- cbind(p11-p01, p11) V <- vcov(object, ...)[1:k,1:k] sd0 <- p01*sqrt(V[1,1]) sdd <- sapply(1:(k-1), function(i) sqrt(c(t(A[i,])%*%V[c(1,i+1), c(1, i+1)]%*%A[i,]))) coef <- cbind(c(p0,p1-p0), c(sd0, sdd)) coef <- cbind(coef, coef[,1]/coef[,2]) coef <- cbind(coef, 2*pnorm(-abs(coef[,3]))) colnames(coef) <- c("Estimate", "Std. Error", "t value", "Pr(>|t|)") rownames(coef) <- c("Control", paste("Treat", 1:(k-1) , " versus Control", sep="")) coef } checkConv <- function(obj, tolConv=1e-4,verbose=TRUE, ...) { if (!any(class(obj)=="ategel")) stop("The function is for ategel objects produced by ATEgel()") momType <- obj$allArg$momType popMom <- obj$allArg$popMom conv <- c(Lambda=obj$conv_lambda$convergence==0, Coef= obj$conv_par == 0) dat <- obj$dat$x nZ <- attr(obj$dat, "k")-1 z <- dat[,3:(2+nZ),drop=FALSE] x <- dat[,-(1:(2+nZ)),drop=FALSE] pt <- getImpProb(obj, ...) pt1 <- lapply(1:nZ, function(i) pt[z[,i]==1]/sum(pt[z[,i]==1])) pt0 <- pt[rowSums(z)==0]/sum(pt[rowSums(z)==0]) m0 <- colSums(x[rowSums(z)==0,,drop=FALSE]*pt0) m1 <- sapply(1:nZ, function(i) colSums(x[z[,i]==1,,drop=FALSE]*pt1[[i]])) mAll <- cbind(m0, m1) n0 <- paste(paste(colnames(z),collapse="=", sep=""),"=0",sep="") colnames(mAll) <- c(n0, paste(colnames(z),"=1",sep="")) if (!is.null(popMom)) { m <- popMom } else { m <- switch(momType, bal=m0, balSample=colMeans(x), ATT=c(m1)) } chk <- all(abs(mAll-m)0,pchisq(j,x$df, lower.tail = FALSE), "*******"))) } J_test <- noquote(paste("J-Test: degrees of freedom is ",x$df,sep="")) dimnames(j) <- list("Test E(g)=0: ", c("J-test", "P-value")) ans<-list(ntest=J_test, test = j) class(ans) <- "specTest" ans } print.specTest <- function(x, digits=5, ...) { cat("\n","## ",x$ntest," ##","\n\n") print.default(format(x$test, digits=digits), print.gap = 2, quote = FALSE) cat("\n") invisible(x) } specTest.gel <- function(x, ...) { n <- nrow(x$gt) khat <- x$khat gbar <- colMeans(x$gt) LR_test <- 2*x$objective*n*x$k2/(x$bwVal*x$k1^2) if (x$type == "ETHD") LR_test <- LR_test*2 LM_test <- n*crossprod(x$lambda, crossprod(khat, x$lambda))/(x$bwVal^2) J_test <- n*crossprod(gbar, solve(khat, gbar))/(x$k1^2) test <- c(LR_test, LM_test, J_test) df <- x$df ntest <- noquote(paste("Over-identifying restrictions tests: degrees of freedom is ", df, sep = "")) vptest <- pchisq(test,df,lower.tail = FALSE) if (df == 0) vptest[] <- "###" test <- cbind(test,vptest) dimnames(test) <- list(c("LR test", "LM test", "J test"), c("statistics", "p-value")) ans <- list(test = test, ntest = ntest) class(ans) <- "specTest" ans } gmm/R/gmm.R0000644000176200001440000005473713571757641012176 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ gmm <- function(g,x,t0=NULL,gradv=NULL, type=c("twoStep","cue","iterative"), wmatrix = c("optimal","ident"), vcov=c("HAC","MDS","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),crit=10e-7,bw = bwAndrews, prewhite = 1, ar.method = "ols", approx="AR(1)",tol = 1e-7, itermax=100,optfct=c("optim","optimize","nlminb", "constrOptim"), model=TRUE, X=FALSE, Y=FALSE, TypeGmm = "baseGmm", centeredVcov = TRUE, weightsMatrix = NULL, traceIter = FALSE, data, eqConst = NULL, eqConstFullVcov = FALSE, mustar = NULL, onlyCoefficients=FALSE, ...) { type <- match.arg(type) kernel <- match.arg(kernel) vcov <- match.arg(vcov) wmatrix <- match.arg(wmatrix) optfct <- match.arg(optfct) if (!is.null(eqConst)) TypeGmm <- "constGmm" if(vcov=="TrueFixed" & is.null(weightsMatrix)) stop("TrueFixed vcov only for fixed weighting matrix") if(!is.null(weightsMatrix)) wmatrix <- "optimal" if(missing(data)) data<-NULL all_args<-list(data = data, g = g, x = x, t0 = t0, gradv = gradv, type = type, wmatrix = wmatrix, vcov = vcov, kernel = kernel, crit = crit, bw = bw, prewhite = prewhite, ar.method = ar.method, approx = approx, weightsMatrix = weightsMatrix, centeredVcov = centeredVcov, tol = tol, itermax = itermax, optfct = optfct, model = model, X = X, Y = Y, call = match.call(), traceIter = traceIter, eqConst = eqConst, eqConstFullVcov = eqConstFullVcov, mustar = mustar) class(all_args)<-TypeGmm Model_info<-getModel(all_args, ...) z <- momentEstim(Model_info, ...) if (onlyCoefficients) return(z[c("coefficients","objective")]) z <- FinRes(z, Model_info) z } evalGmm <- function(g, x, t0, tetw=NULL, gradv=NULL, wmatrix = c("optimal","ident"), vcov=c("HAC","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)",tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, mustar = NULL) { TypeGmm = "baseGmm" type <- "eval" kernel <- match.arg(kernel) vcov <- match.arg(vcov) wmatrix <- match.arg(wmatrix) if (is.null(tetw) & is.null(weightsMatrix)) stop("If the weighting matrix is not provided, you need to provide the vector of parameters tetw") if(vcov=="TrueFixed" & is.null(weightsMatrix)) stop("TrueFixed vcov only for fixed weighting matrix") if(!is.null(weightsMatrix)) wmatrix <- "optimal" if(missing(data)) data<-NULL all_args<-list(data = data, g = g, x = x, t0 = t0, tetw = tetw, gradv = gradv, type = type, wmatrix = wmatrix, vcov = vcov, kernel = kernel, crit = crit, bw = bw, prewhite = prewhite, ar.method = ar.method, approx = approx, weightsMatrix = weightsMatrix, centeredVcov = centeredVcov, tol = tol, itermax = 100, model = model, X = X, Y = Y, call = match.call(), traceIter = NULL, optfct="optim", eqConst = NULL, eqConstFullVcov = FALSE, mustar = mustar) class(all_args)<-TypeGmm Model_info<-getModel(all_args) class(Model_info) <- "baseGmm.eval" z <- momentEstim(Model_info) z <- FinRes(z, Model_info) z } tsls <- function(g,x,data) { if(class(g)[1] != "formula") stop("2SLS is for linear models expressed as formula only") ans <- gmm(g,x,data=data,vcov="iid", TypeGmm="tsls") ans$met <- "Two Stage Least Squares" ans$call <- match.call() class(ans) <- c("tsls","gmm") ans$vcov <- vcov(ans, type="Classical") return(ans) } .myKernHAC <- function(gmat, obj) { gmat <- as.matrix(gmat) if(obj$centeredVcov) gmat <- scale(gmat, scale=FALSE) class(gmat) <- "gmmFct" AllArg <- obj$WSpec$sandwich AllArg$x <- gmat if (is.function(AllArg$bw)) { if (identical(AllArg$bw, bwWilhelm)) { G <- .DmomentFct(obj$tet, obj$dat) obj <- list(gt=gmat, G=G) class(obj) <- "gmm" } else { obj <- gmat } AllArg$bw <- AllArg$bw(obj, order.by = AllArg$order.by, kernel = AllArg$kernel, prewhite = AllArg$prewhite, ar.method = AllArg$ar.method, approx=AllArg$approx) } weights <- weightsAndrews(x=gmat, bw=AllArg$bw, kernel=AllArg$kernel, prewhite=AllArg$prewhite, tol=AllArg$tol) w <- vcovHAC(x=gmat, order.by=AllArg$order.by, weights=weights, prewhite=AllArg$prewhite, sandwich=FALSE, ar.method=AllArg$ar.method, adjust=FALSE) attr(w,"Spec") <- list(weights = weights, bw = AllArg$bw, kernel = AllArg$kernel) w } getDat <- function (formula, h, data, error=TRUE) { cl <- match.call() mf <- match.call(expand.dots = FALSE) m <- match(c("formula", "data"), names(mf), 0L) mf <- mf[c(1L, m)] mf$drop.unused.levels <- TRUE mf$na.action <- "na.pass" mf[[1L]] <- as.name("model.frame") mf <- eval(mf, parent.frame()) mt <- attr(mf, "terms") y <- as.matrix(model.response(mf, "numeric")) namey <- as.character(formula)[2] if (ncol(y)>1) namey <- paste(namey, ".", 1:ncol(y), sep="") xt <- as.matrix(model.matrix(mt, mf, NULL)) n <- NROW(y) if (inherits(h,'formula')) { tmp <- as.character(formula) termsh <- terms(h) h <- paste(tmp[2], "~", as.character(h)[2], sep="") h <- as.formula(h) mfh <- match.call(expand.dots = FALSE) mh <- match(c("h", "data"), names(mfh), 0L) mfh <- mfh[c(1L, mh)] mfh$formula <- h mfh$h <- NULL mfh$drop.unused.levels <- TRUE mfh$na.action <- "na.pass" mfh[[1L]] <- as.name("model.frame") mfh <- eval(mfh, parent.frame()) mth <- attr(mfh, "terms") h <- as.matrix(model.matrix(mth, mfh, NULL)) } else { h <- as.matrix(h) chkInt <- sapply(1:ncol(h), function(i) all(h[,i]/mean(h[,i]) == 1)) if (sum(chkInt) > 1) stop("Too many intercept in the matrix h") if (any(chkInt)) { h <- h[,!chkInt, drop=FALSE] h <- cbind(1,h) intercept_h <- TRUE } else { if (attr(mt,"intercept")==1) { h <- cbind(1, h) intercept_h <- TRUE } else { intercept_h <- FALSE } } if(is.null(colnames(h))) { if (intercept_h) colnames(h) <- c("(Intercept)",paste("h",1:(ncol(h)-1),sep="")) else colnames(h) <- paste("h",1:ncol(h),sep="") } else { if (intercept_h) colnames(h)[1] <- "(Intercept)" coln_h <- colnames(h) coln_h <- gsub(" ", "", coln_h) chk <- which(coln_h == "") if (length(chk) >0) coln_h[chk] <- paste("h", 1:length(chk), sep="") if (any(duplicated(coln_h))) stop("colnames of the matrix h must be unique") colnames(h) <- coln_h } if (!intercept_h) { hFormula <- paste(colnames(h), collapse="+") hFormula <- as.formula(paste("~", hFormula, "-1", sep="")) } else { hFormula <- paste(colnames(h)[-1], collapse="+") hFormula <- as.formula(paste("~", hFormula, sep="")) } termsh <- terms(hFormula) } ny <- ncol(y) k <- ncol(xt) nh <- ncol(h) if (nh 0) { endo <- xm[, -includeExo, drop = FALSE] endoName <- colnames(endo) if (ncol(endo) != 0) { if (attr(dat$termsh, "intercept") == 1) restsls <- lm(endo~hm[,-1]) else restsls <- lm(endo~hm-1) fsls <- xm fsls[, -includeExo] <- restsls$fitted } else { fsls <- xm restsls <- NULL } } else { if (attr(dat$termsh, "intercept") == 1) restsls <- lm(xm~hm[,-1]) else restsls <- lm(xm~hm-1) fsls <- restsls$fitted endoName <- colnames(xm) } par <- lm.fit(as.matrix(fsls), ym)$coefficients if (ny == 1) { e2sls <- ym-xm%*%par v2sls <- lm.fit(as.matrix(hm), e2sls)$fitted value <- sum(v2sls^2)/sum(e2sls^2) } else { par <- c(t(par)) g2sls <- g(par, dat) w <- crossprod(g2sls)/n gb <- matrix(colMeans(g2sls), ncol = 1) value <- crossprod(gb, solve(w, gb)) } } } else { if (ny>1) { if (inv) { whx <- solve(w, (crossprod(hm, xm) %x% diag(ny))) wvecyh <- solve(w, matrix(crossprod(ym, hm), ncol = 1)) } else { whx <- w%*% (crossprod(hm, xm) %x% diag(ny)) wvecyh <- w%*%matrix(crossprod(ym, hm), ncol = 1) } dg <- gradv(NULL, dat) xx <- crossprod(dg, whx) par <- solve(xx, crossprod(dg, wvecyh)) } else { if (nh>k) { if(inv) xzwz <- crossprod(xm,hm)%*%solve(w,t(hm)) else xzwz <- crossprod(xm,hm)%*%w%*%t(hm) par <- solve(xzwz%*%xm,xzwz%*%ym) } else { par <- solve(crossprod(hm,xm),crossprod(hm,ym)) } } gb <- matrix(colSums(g(par, dat))/n, ncol = 1) if(inv) value <- crossprod(gb, solve(w, gb)) else value <- crossprod(gb, w%*%gb) } res <- list(par = par, value = value) if (!is.null(mustar)) { if (!is.null(type)) { w <- crossprod(hm)/NROW(hm) attr(w, "inv") <- TRUE } res <- .mustarLin(par, xm, hm, w, dat, mustar) } if (!is.null(type)) { if (type == "2sls") res$firstStageReg <- restsls if (!is.null(restsls)) { chk <- .chkPerfectFit(restsls) res$fsRes <- suppressWarnings(summary(restsls))[!chk] attr(res$fsRes, "Endo") <- endoName[!chk] } } return(res) } .mustarLin <- function(par, xm, hm, w, dat, mustar) { if (ncol(xm) == ncol(hm)) { par <- par-solve(crossprod(hm,xm),mustar) } else { hmxm <- crossprod(hm,xm) if (attr(w, "inv")) T1 <- solve(w, hmxm) else T1 <- w%*%hmxm par <- par-solve(crossprod(hmxm, T1), crossprod(T1, mustar)) } gb <- colSums(.momentFct(par, dat))/NROW(xm) if(attr(w, "inv")) value <- crossprod(gb, solve(w, gb)) else value <- crossprod(gb, w%*%gb) list(value=value, par=par) } .obj1 <- function(thet, x, w) { gt <- .momentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(gbar, solve(w, gbar)) else obj <- crossprod(gbar,w)%*%gbar return(obj) } .Gf <- function(thet, x, pt = NULL) { myenv <- new.env() assign('x', x, envir = myenv) assign('thet', thet, envir = myenv) barg <- function(x, thet) { gt <- .momentFct(thet, x) if (is.null(pt)) gbar <- as.vector(colMeans(gt)) else gbar <- as.vector(colSums(c(pt)*gt)) return(gbar) } G <- attr(numericDeriv(quote(barg(x, thet)), "thet", myenv), "gradient") return(G) } .objCue <- function(thet, x, type=c("HAC", "MDS", "iid", "ident", "fct", "fixed")) { type <- match.arg(type) gt <- .momentFct(thet, x) gbar <- as.vector(colMeans(gt)) w <- .weightFct(thet, x, type) if (attr(w, "inv")) obj <- crossprod(gbar,solve(w,gbar)) else obj <- crossprod(gbar,w%*%gbar) return(obj) } .momentFct <- function(tet, dat) { if (!is.null(attr(dat, "eqConst"))) { resTet <- attr(dat,"eqConst")$eqConst tet2 <- vector(length=length(tet)+nrow(resTet)) tet2[resTet[,1]] <- resTet[,2] tet2[-resTet[,1]] <- tet } else { tet2 <- tet } if (attr(dat, "ModelType") == "linear") { x <- dat$x ny <- dat$ny nh <- dat$nh k <- dat$k tet2 <- matrix(tet2, ncol = k) e <- x[,1:ny] - x[,(ny+1):(ny+k)] %*% t(tet2) gt <- e * x[, ny+k+1] if(nh > 1) for (i in 2:nh) gt <- cbind(gt, e*x[, (ny+k+i)]) } else { gt <- attr(dat,"momentfct")(tet2, dat) } if (!is.null(attr(dat, "smooth"))) { bw <- attr(dat, "smooth")$bw w <- attr(dat, "smooth")$w gt <- smoothG(gt, bw = bw, weights = w)$smoothx } gt <- as.matrix(gt) if (!is.null(attr(dat, "mustar"))) { if (length(attr(dat, "mustar")) != ncol(gt)) stop("dim of mustar must match the number of moment conditions") gt <- sweep(gt, 2, attr(dat, "mustar"), "-") } return(gt) } .DmomentFct <- function(tet, dat, pt=NULL) { if (!is.null(attr(dat, "eqConst"))) { resTet <- attr(dat,"eqConst")$eqConst tet2 <- vector(length=length(tet)+nrow(resTet)) tet2[resTet[,1]] <- resTet[,2] tet2[-resTet[,1]] <- tet } else { tet2 <- tet } if ((attr(dat,"ModelType") == "linear") & (is.null(attr(dat, "smooth")))) { x <- dat$x ny <- dat$ny nh <- dat$nh k <- dat$k dgb <- -(t(x[,(ny+k+1):(ny+k+nh)]) %*% x[,(ny+1):(ny+k)]) %x% diag(rep(1,ny))/nrow(x) if (!is.null(attr(dat, "eqConst"))) dgb <- dgb[,-attr(dat,"eqConst")$eqConst[,1], drop=FALSE] } else { if (is.null(attr(dat,"gradv"))) { dgb <- .Gf(tet, dat, pt) } else { dgb <- attr(dat,"gradv")(tet2, dat) if (!is.null(attr(dat, "eqConst"))) dgb <- dgb[,-attr(dat,"eqConst")$eqConst[,1], drop=FALSE] } } return(as.matrix(dgb)) } .weightFct <- function(tet, dat, type=c("HAC", "MDS", "iid", "ident", "fct", "fixed")) { type <- match.arg(type) if (type == "fixed") { w <- attr(dat, "weight")$w attr(w, "inv") <- FALSE } else if (type == "ident") { w <- diag(attr(dat, "q")) attr(w, "inv") <- FALSE } else { gt <- .momentFct(tet,dat) if (!is.null(attr(dat, "namesgt"))) colnames(gt) <- attr(dat, "namesgt") if(attr(dat, "weight")$centeredVcov) gt <- scale(gt, scale=FALSE) n <- NROW(gt) } if (type == "HAC") { obj <- attr(dat, "weight") obj$centeredVcov <- FALSE obj$tet <- tet obj$dat <- dat w <- .myKernHAC(gt, obj) attr(w, "inv") <- TRUE } if (type == "MDS") { w <- crossprod(gt)/n attr(w, "inv") <- TRUE } if (type == "iid") { if (attr(dat, "ModelType") == "linear") { if (dat$ny == 1) { e <- .residuals(tet, dat)$residuals sig <- mean(scale(e,scale=FALSE)^2) z <- dat$x[,(1+dat$ny+dat$k):ncol(dat$x)] w <- sig*crossprod(z)/length(e) } else { w <- crossprod(gt)/n } } else { w <- crossprod(gt)/n } attr(w, "inv") <- TRUE } if (type == "fct") { w <- attr(dat, "weight")$fct(gt, attr(dat, "weight")$fctArg) attr(w, "inv") <- TRUE } return(w) } .residuals <- function(tet, dat) { if (!is.null(attr(dat, "eqConst"))) { resTet <- attr(dat,"eqConst")$eqConst tet2 <- vector(length=length(tet)+nrow(resTet)) tet2[resTet[,1]] <- resTet[,2] tet2[-resTet[,1]] <- tet } else { tet2 <- tet } tet2 <- t(matrix(tet2, nrow = dat$ny)) y <- as.matrix(dat$x[,1:dat$ny]) x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) yhat <- x%*%tet2 e <- y-yhat return(list(residuals=e, yhat=yhat)) } gmm/R/FinRes.R0000644000176200001440000001776313571757641012602 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ FinRes <- function(z, object, ...) { # object is computed by the getModel method # UseMethod("FinRes") } FinRes.baseGmm.res <- function(z, object, ...) { P <- object x <- z$dat n <- ifelse(is.null(nrow(z$gt)),length(z$gt),nrow(z$gt)) if (!is.null(attr(x,"eqConst")) & P$allArg$eqConstFullVcov) { eqConst <- attr(x,"eqConst")$eqConst coef <- rep(0,length(eqConst[,1])+length(z$coefficients)) ncoef <- rep("",length(eqConst[,1])+length(z$coefficients)) coef[-eqConst[,1]] <- z$coefficients ncoef[-eqConst[,1]] <- names(z$coefficients) coef[eqConst[,1]] <- eqConst[,2] ncoef[eqConst[,1]] <- rownames(eqConst) names(coef) <- ncoef z$coefficients <- coef if (!is.null(z$initTheta)) { initTheta <- rep(0,length(z$coefficients)) initTheta[eqConst[,1]] <- eqConst[,2] initTheta[-eqConst[,1]] <- z$initTheta z$initTheta <- initTheta } z$k <- z$k+nrow(eqConst) z$k2 <- z$k2+nrow(eqConst) attr(x, "eqConst") <- NULL z$specMod <- paste(z$specMod, "** Note: Covariance matrix computed for all coefficients based on restricted values \n Tests non-valid**\n\n") } z$G <- z$gradv(z$coefficients, x) G <- z$G if (P$vcov == "TrueFixed") v <- .weightFct(z$coefficient, x, "fixed") else v <- .weightFct(z$coefficient, x, P$vcov) z$v <- v if (P$vcov == "TrueFixed") { z$vcov=try(solve(crossprod(G, P$weightsMatrix) %*% G)/n, silent = TRUE) if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,length(z$coef),length(z$coef)) warning("The covariance matrix of the coefficients is singular") } } else if ( (is.null(P$weightsMatrix)) & (P$wmatrix != "ident") ) { if (dim(G)[1] == dim(G)[2]) { T1 <- try(solve(G), silent=TRUE) z$vcov <- try(T1%*%v%*%t(T1)/n, silent=TRUE) } else { z$vcov <- try(solve(crossprod(G, solve(v, G)))/n, silent = TRUE) } if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,length(z$coef),length(z$coef)) warning("The covariance matrix of the coefficients is singular") } } else { if (is.null(P$weightsMatrix)) w <- diag(ncol(z$gt)) else w <- P$weightsMatrix if (dim(G)[1] == dim(G)[2]){ T1 <- try(solve(G), silent=TRUE) } else { T1 <- try(solve(t(G)%*%w%*%G,t(G)%*%w), silent = TRUE) } if(any(class(T1) == "try-error")) { z$vcov <- matrix(Inf,length(z$coef),length(z$coef)) warning("The covariance matrix of the coefficients is singular") } else { z$vcov <- T1%*%v%*%t(T1)/n } } dimnames(z$vcov) <- list(names(z$coefficients), names(z$coefficients)) z$call <- P$call if(is.null(P$weightsMatrix)) { if(P$wmatrix == "ident") { z$w <- diag(ncol(z$gt)) } else { z$w <- try(solve(v), silent = TRUE) if(any(class(z$w) == "try-error")) warning("The covariance matrix of the moment function is singular") } } else { z$w <- P$weightsMatrix } z$weightsMatrix <- P$weightsMatrix z$infVcov <- P$vcov z$infWmatrix <- P$wmatrix z$allArg <- P$allArg if (P$wmatrix=="ident") z$met <- "One step GMM with W = identity" else z$met <- P$type z$kernel <- P$kernel z$coefficients <- c(z$coefficients) class(z) <- "gmm" return(z) } FinRes.sysGmm.res <- function(z, object, ...) { P <- object x <- z$dat z$G <- z$gradv(z$coefficients, x) n <- z$n G <- z$G v <- .weightFct_Sys(z$coefficient, x, P$vcov) nk <- z$k z$v <- v if (P$vcov == "TrueFixed") { z$vcov=try(solve(crossprod(G, P$weightsMatrix) %*% G)/n, silent = TRUE) if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,nk,nk) warning("The covariance matrix of the coefficients is singular") } } else if ( (is.null(P$weightsMatrix)) & (P$wmatrix != "ident") ) { z$vcov <- try(solve(crossprod(G, solve(v, G)))/n, silent = TRUE) if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,nk,nk) warning("The covariance matrix of the coefficients is singular") } } else { if (is.null(P$weightsMatrix)) w <- .weightFct_Sys(z$coefficients, x, "ident") else w <- P$weightsMatrix if (dim(G)[1] == dim(G)[2]){ T1 <- try(solve(G), silent=TRUE) } else { T1 <- try(solve(t(G)%*%w%*%G,t(G)%*%w), silent = TRUE) } if(any(class(T1) == "try-error")) { z$vcov <- matrix(Inf, nk, nk) warning("The covariance matrix of the coefficients is singular") } else { z$vcov <- T1%*%v%*%t(T1)/n } } if (attr(x, "sysInfo")$commonCoef) dimnames(z$vcov) <- list(P$namesCoef[[1]], P$namesCoef[[1]]) else dimnames(z$vcov) <- list(do.call(c, P$namesCoef), do.call(c, P$namesCoef)) z$call <- P$call if(is.null(P$weightsMatrix)) { if(P$wmatrix == "ident") { z$w <- .weightFct_Sys(z$coefficient, x, "ident") } else { z$w <- try(solve(v), silent = TRUE) if(any(class(z$w) == "try-error")) warning("The covariance matrix of the moment function is singular") } } else { z$w <- P$weightsMatrix } for (i in 1:length(z$coefficients)) names(z$coefficients[[i]]) <- P$namesCoef[[i]] z$weightsMatrix <- P$weightsMatrix z$infVcov <- P$vcov z$infWmatrix <- P$wmatrix z$allArg <- P$allArg z$met <- paste("System of Equations: ", P$type, sep="") z$kernel <- P$kernel z$coefficients <- c(z$coefficients) class(z) <- c("sysGmm", "gmm") return(z) } gmm/R/gmmTests.R0000644000176200001440000001354413571757641013210 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ # This function compute what is needed for the K statistics of KleiBergen (2005) ##################################################################################### .BigCov <- function(obj,theta0) { insertRC <- function(A,w,v) { NewA <- matrix(ncol=ncol(A)+length(w),nrow=nrow(A)+length(w)) NewA[-w,-w] <- A NewA[w,] <- v NewA[,w] <- v NewA } dg <- function(obj) { dat <- obj$dat x <- dat$x[,(dat$ny+1):(dat$ny+dat$k)] k <- ncol(x) h <- dat$x[,(dat$ny+dat$k+1):ncol(dat$x)] qt <- array(dim=c(dim(obj$gt),k)) for (i in 1:k) qt[,,i] <- -x[,i]*h qt} if (attr(obj$dat,"ModelType") == "nonlinear") { Myenv <- new.env() assign("obj", obj, envir=Myenv) assign("theta", theta0, envir=Myenv) gFunct <- obj$g assign("g",gFunct,envir=Myenv) res <- numericDeriv(quote(g(theta,obj$dat)),"theta",Myenv) qT <- attr(res,"gradient") } else { qT <- dg(obj)} qTmat <- apply(qT,3,colSums) qT <- matrix(qT,nrow=dim(qT)[1]) gt <- obj$g(theta0,obj$dat) fT <- colSums(gt) n <- nrow(gt) q <- ncol(gt) All <- cbind(gt,qT) All <- sweep(All,2,colMeans(All),FUN="-") f <- function(x) all(abs(x)<1e-7) w <- which(apply(All,2,f)) if (length(w) != 0) All <- All[,-w] if (dim(All)[2] >= dim(All)[1]) stop("Too many moment conditions. Cannot estimate V") if (attr(obj$dat, "weight")$vcov == "iid") { V <- crossprod(All)/nrow(All) } else { class(All) <- "gmmFct" argSand <- attr(obj$dat, "weight")$WSpec$sandwich argSand$x <- All argSand$sandwich <- FALSE V <- do.call(kernHAC,argSand) } if (length(w) != 0) V <- insertRC(V,w,0) Vff <- V[1:q,1:q] Vthetaf <- V[(q+1):nrow(V),1:q] list(Vff=Vff,Vthetaf=Vthetaf,qT=qTmat,fT=fT,n=n,q=q) } KTest <- function(obj, theta0=NULL, alphaK = 0.04, alphaJ = 0.01) { if (class(obj)[1] != "gmm") stop("KTest is only for gmm type objects") if (!is.null(attr(obj$dat,"eqConst"))) { if (!is.null(theta0)) warning("setting a value for theta0 has no effect when the gmm is already constrained") resTet <- attr(obj$dat,"eqConst")$eqConst tet <- obj$coefficients theta0 <- vector(length=length(tet)+nrow(resTet)) theta0[resTet[,1]] <- resTet[,2] theta0[-resTet[,1]] <- tet testName <- paste(rownames(resTet), " = ", resTet[,2], collapse="\n") if (attr(obj$dat,"ModelType") == "linear") { obj$dat$k <- length(theta0) } dfK <- nrow(resTet) which <- resTet[,1] attr(obj$dat, "eqConst") <- NULL } else { if (is.null(theta0)) stop("You must either estimate a restricted model first or set theta0 under H0") if (length(theta0) != length(obj$coef)) stop("theta0 is only for tests on the whole vector theta when obj is an unrestricted GMM") dfK <- length(theta0) testName <- paste(names(obj$coef), " = ", theta0, collapse="\n") which <- 1:length(theta0) } V <- .BigCov(obj, theta0) Vff <- V$Vff Vtf <- V$Vthetaf qT <- V$qT fT <- V$fT dfJ <- V$q-length(theta0) # the following is vec(D) D <- c(qT)-Vtf%*%solve(Vff,fT) D <- matrix(D,ncol=length(theta0)) meat <- t(D)%*%solve(Vff,D) bread <- t(fT)%*%solve(Vff,D) K <- bread%*%solve(meat,t(bread))/V$n pv <- 1-pchisq(K,dfK) S <- t(fT)%*%solve(Vff,fT)/V$n J <- S-K dfS <- dfK + dfJ pvJ <- 1-pchisq(J,dfJ) type <- c("K statistics","J statistics", "S statistics") test <- c(K,J,S) pvS <- 1-pchisq(S,dfS) test <- cbind(test,c(pv,pvJ,pvS),c(dfK,dfJ,dfS)) dist <- paste("Chi_sq with ", c(dfK,dfJ,dfS), " degrees of freedom", sep="") if(dfJ>0) ans <- list(test=test,dist=dist,type=type,testName=testName) else ans <- list(test=matrix(test[1,],nrow=1),dist=dist[1],type=type[1],testName=testName) if (pvJ=length(obj$coefficients)) stop("Too many constraints") if (is.character(which)) { if (any(!(which %in% names(obj$coefficients)))) stop("Wrong coefficient names in eqConst") if (attr(obj$dat,"ModelType") == "linear") which <- match(which,names(obj$coefficients)) } if (!is.null(argCall$t0)) { argCall$t0 <- obj$coefficients argCall$t0[which] <- value } if (attr(obj$dat,"ModelType") == "nonlinear") { eqConst <- which } else { eqConst <- cbind(which,value) } argCall$eqConst <- eqConst res <- do.call(gmm,argCall) res$call <- match.call() return(res) } gmm/R/bandwidth.R0000644000176200001440000001232412717151771013335 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ bwWilhelm <- function(x, order.by = NULL, kernel = c("Quadratic Spectral", "Bartlett", "Parzen", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"), weights = NULL, prewhite = 1, ar.method = "ols", data=list()) { ## ensure that NAs are omitted if(is.list(x) && !is.null(x$na.action)) class(x$na.action) <- "omit" # ensure that x is a gmm object stopifnot(attr(x,"class") == "gmm") kernel <- match.arg(kernel) approx <- match.arg(approx) prewhite <- as.integer(prewhite) # the following line applies only to the case class(res)=="gmm" umat <- x$gt n <- nrow(umat) k <- ncol(umat) # the following line applies only to the case class(res)=="gmm" G <- x$G p <- ncol(G) # return Andrews' bandwidth in the just-identified case if (p==k) { class(umat) <- "gmmFct" return(bwAndrews(umat, order.by=order.by, kernel=kernel, approx=approx, weights=weights, prewhite=prewhite, ar.method=ar.method, data=data)) } if(!is.null(order.by)) { if(inherits(order.by, "formula")) { z <- model.matrix(order.by, data = data) z <- as.vector(z[,ncol(z)]) } else { z <- order.by } index <- order(z) } else { index <- 1:n } umat <- umat[index, , drop = FALSE] ## compute weights (w_a, see p. 834) ## (try to set the intercept weight to 0) #### could be ignored by using: weights = 1 if(is.null(weights)) { weights <- rep(1, p) unames <- colnames(umat) if(!is.null(unames) && "(Intercept)" %in% unames) weights[which(unames == "(Intercept)")] <- 0 else { res <- try(as.vector(rowMeans(estfun(x)/model.matrix(x), na.rm = TRUE)), silent = TRUE) if(inherits(res, "try-error")) res <- try(residuals(x), silent = TRUE) if(!inherits(res, "try-error")) weights[which(colSums((umat - res)^2) < 1e-16)] <- 0 } if(isTRUE(all.equal(weights, rep(0, p)))) weights <- rep(1, p) } else { weights <- rep(weights, length.out = p) } if(length(weights) < 2) weights <- 1 ## pre-whitening if(prewhite > 0) { var.fit <- ar(umat, order.max = prewhite, demean = FALSE, aic = FALSE, method = ar.method) if(inherits(var.fit, "try-error")) stop(sprintf("VAR(%i) prewhitening of estimating functions failed", prewhite)) umat <- as.matrix(na.omit(var.fit$resid)) n <- n - prewhite } # define kernel constants kernConst <- switch(kernel, "Bartlett" = list(q = 1, g_q = 1, mu1 = 1, mu2 = 2/3), "Parzen" = list(q = 2, g_q = 6, mu1 = 0.75, mu2 = 0.539286), "Tukey-Hanning" = list(q = 2, g_q = pi^2/4, mu1 = 1, mu2 = 0.75), "Quadratic Spectral" = list(q = 2, g_q = 1.421223, mu1 = 1.25003, mu2 = 0.999985)) # fit approximating model to moments if(approx == "AR(1)") { fitAR1 <- function(x) { rval <- ar(x, order.max = 1, aic = FALSE, method = "ols") rval <- c(rval$ar, sqrt(rval$var.pred)) names(rval) <- c("rho", "sigma") return(rval) } ar.coef <- apply(umat, 2, fitAR1) Omega0 <- ar.coef["sigma", ]^2 / (1-ar.coef["rho", ])^2 Omega_q <- if(kernConst$q == 1) { diag(2 * ar.coef["sigma", ]^2 * ar.coef["rho", ] / ((1 - ar.coef["rho", ])^3 * (1 + ar.coef["rho", ]))) } else { diag(2 * ar.coef["sigma", ]^2 * ar.coef["rho", ] / (1 - ar.coef["rho", ])^4) } } else { fitARMA11 <- function(x) { rval <- arima(x, order = c(1, 0, 1), include.mean = FALSE) rval <- c(rval$coef, sqrt(rval$sigma2)) names(rval) <- c("rho", "psi", "sigma") return(rval) } arma.coef <- apply(umat, 2, fitARMA11) Omega0 <- (1 + ar.coef["psi", ])^2 * ar.coef["sigma", ]^2 / (1 - ar.coef["rho", ])^2 Omega_q <- if(kernConst$q == 1) { diag(2 * (1 + ar.coef["psi", ] * ar.coef["rho", ]) * (ar.coef["psi", ] + ar.coef["rho", ]) * ar.coef["sigma", ]^2 / ((1 - ar.coef["rho", ])^3 * (1 + ar.coef["rho", ]))) } else { diag(2 * (1 + ar.coef["psi", ] * ar.coef["rho", ]) * (ar.coef["psi", ] + ar.coef["rho", ]) * ar.coef["sigma", ]^2 / (1 - ar.coef["rho", ])^4) } } # compute remaining bandwidth components W <- diag(weights) Omega0inv <- diag(1/Omega0) Sigma0 <- solve( crossprod(Omega0inv%*%G, G) ) H0 <- Sigma0 %*% t(G) %*% Omega0inv P0 <- Omega0inv - Omega0inv %*% G %*% H0 # compute optimal bandwidth nu2 <- (2 * kernConst$mu1 + kernConst$mu2) * (k - p) * sum(diag(Sigma0 %*% W)) nu3 <- kernConst$g_q^2 * sum(diag(t(Omega_q) %*% t(H0) %*% W %*% H0 %*% Omega_q %*% P0)) c0 <- if(nu2 * nu3 > 0) 2 * kernConst$q else -1 rval <- (c0 * nu3/nu2 * n)^(1/(1 + 2 * kernConst$q)) return(rval) } gmm/R/momentEstim.R0000644000176200001440000013227413571757641013710 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ momentEstim <- function(object, ...) { UseMethod("momentEstim") } momentEstim.sysGmm.twoStep.formula <- function(object, ...) { dat <- object$x y <- lapply(1:length(dat), function(i) dat[[i]]$x[,1]) y <- do.call(c, y) z <- lapply(1:length(dat), function(i) dat[[i]]$x[,(2+dat[[i]]$k):ncol(dat[[i]]$x), drop=FALSE]) z <- .diagMatrix(z) x <- lapply(1:length(dat), function(i) dat[[i]]$x[,2:(dat[[i]]$k+1), drop=FALSE]) if (attr(dat, "sysInfo")$commonCoef) { x <- do.call(rbind, x) } else if (!is.null(attr(dat, "sysInfo")$crossEquConst)) { k <- attr(dat, "k")[[1]] x <- .diagMatrix(x, (1:k)[-attr(dat, "sysInfo")$crossEquConst]) } else { x <- .diagMatrix(x) } names(y) <- rownames(x) <- rownames(z) <- 1:length(y) data <- list(y=y, x=x, z=z) dat2 <- getDat(y~x-1, ~z-1, data=data) attr(dat2, "ModelType") <- "linear" res0 <- .tetlin(dat2, 1, "2sls") tet0 <- .getThetaList(res0$par, dat) fsRes <- res0$fsRes w <- .weightFct_Sys(tet=tet0, dat=dat, type=object$vcov) #return(list(w=w,tet0=tet0,dat=dat,dat2=dat2)) res <- .tetlin(dat2, w) par <- .getThetaList(res$par, dat) names(par) <- names(dat) df <- ncol(z) - ncol(x) k <- ncol(x) q <- ncol(z) n <- nrow(x) df.residuals <- n - k z = list(coefficients = par, objective = res$value, dat=dat, k=k, q=q, df=df, df.residual=df.residual, n=n) z$gt <- object$g(z$coefficients, dat) z$initTheta <- tet0 tmp <- lapply(1:length(dat), function(i) .residuals(z$coefficients[[i]], dat[[i]])) z$fitted.values <- lapply(1:length(dat), function(i) tmp[[i]]$yhat) z$residuals <- lapply(1:length(dat), function(i) tmp[[i]]$residuals) z$terms <- lapply(1:length(dat), function(i) dat[[i]]$mt) if(object$model) z$model <- lapply(1:length(dat), function(i) dat[[i]]$mf) if(object$X) z$x <- lapply(1:length(dat), function(i) as.matrix(dat[[i]]$x[,(dat[[i]]$ny+1):(dat[[i]]$ny+dat[[i]]$k)])) if(object$Y) z$y <- lapply(1:length(dat), function(i) as.matrix(dat[[i]]$x[,1:dat[[i]]$ny])) z$gradv <- object$gradv z$g <- object$g z$WSpec <- object$WSpec z$w0 <- w colnames(z$gt) <- do.call(c, object$namesgt) z$fsRes <- fsRes class(z) <- "sysGmm.res" z$specMod <- object$specMod return(z) } momentEstim.baseGmm.eval <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k if (is.null(object$tetw)) object$tetw <- object$t0 if (is.null(attr(x, "weight")$w)) w <- .weightFct(object$tetw, x, P$vcov) else w <- .weightFct(object$tetw, x, "fixed") fct <- .obj1(object$t0, x, w) if (attr(x,"ModelType") == "linear") { z = list(coefficients = object$t0, objective = fct, dat = x, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) b <- z$coefficients tmp <- .residuals(b, x) z$fitted.values <- tmp$yhat z$residuals <- tmp$rediduals z$terms <- x$mt if(P$model) z$model <- x$mf if(P$X) z$x <- as.matrix(x$x[,(x$ny+1):(x$ny+x$k)]) if(P$Y) z$y <- as.matrix(x$x[,1:x$ny]) } else { attr z = list(coefficients = object$t0, objective = fct, k=k, k2=k2, n=n, q=q, df=df, initTheta = object$t0, dat=x) } z$gt <- .momentFct(z$coefficients, x) if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") else colnames(z$gt) <- P$namesgt z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod return(z) } momentEstim.baseGmm.twoStep <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k w = .weightFct(NULL, x, "ident") chkOptim <- any(P$optfct == c("optim", "constrOptim")) if (chkOptim) { if (P$gradvf) { gr2 <- function(thet, x, w) { gt <- .momentFct(thet, x) Gbar <- .DmomentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(Gbar, solve(w, gbar)) else obj <- crossprod(Gbar,w)%*%gbar return(obj*2) } } else { gr2 <- NULL } } if (P$optfct == "optim") { argDots <- list(...) allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(optim,allArgOptim) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .obj1, grad = gr2, ui = ui, ci = ci, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res <- nlminb(P$t0, .obj1, x = x, w = w, ...) res$value <- res$objective } if (P$optfct == "optimize") { res <- optimize(.obj1, P$t0, x = x, w = w, ...) res$par <- res$minimum res$value <- res$objective } if (q == k2 | P$wmatrix == "ident") { z = list(coefficients = res$par, objective = res$value, k=k, k2=k2, n=n, q=q, df=df) if (chkOptim) z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } else { w <- .weightFct(res$par, P$x, P$vcov) if (chkOptim) { allArgOptim$w <- w res2 <- do.call(get(object$optfct),allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0, .obj1, x = x, w = w, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.obj1, P$t0, x = x, w = w, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta = res$par) if (chkOptim) { z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) } else if(P$optfct == "nlminb") { z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } } z$dat <- P$x z$gt <- P$g(z$coefficients, P$x) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod z$w0 <- w return(z) } momentEstim.tsls.twoStep.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x if (dat$ny > 1) stop("tsls is for one dimentional dependent variable") n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "ident") if (q == k2) { res2 <- .tetlin(dat, w) z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) } else { res2 <- .tetlin(dat, w, type="2sls") z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, df.residual = (n-k)) } z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt z$fsRes <- res2$fsRes class(z) <- "baseGmm.res" z$specMod <- P$specMod return(z) } momentEstim.baseGmm.twoStep.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "ident") if (q == k2 | P$wmatrix == "ident") { res2 <- .tetlin(dat, w) z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) } else { res1 <- .tetlin(dat, w, type="2sls") initTheta <- res1$par w <- .weightFct(res1$par, dat, P$vcov) res2 <- .tetlin(dat, w) res2$firstStageReg <- res1$firstStageReg res2$fsRes <- res1$fsRes z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta = initTheta, df.residual = (n-k)) } z$gt <- g(z$coefficients, dat) b <- z$coefficients tmp <- .residuals(b, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt if (P$vcov == "iid" & P$wmatrix != "ident") z$fsRes <- res2$fsRes class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod return(z) } momentEstim.baseGmm.iterative.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "ident") if (q == k2 | P$wmatrix == "ident") { res <- .tetlin(dat, w) z = list(coefficients = res$par, objective = res$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) } else { res <- .tetlin(dat, w, type="2sls") fsRes <- res$fsRes initTheta <- res$par ch <- 100000 j <- 1 while(ch > P$crit) { tet <- res$par w <- .weightFct(tet, dat, P$vcov) res <- .tetlin(dat, w) ch <- crossprod(abs(tet- res$par)/tet)^.5 if (j>P$itermax) { cat("No convergence after ", P$itermax, " iterations") ch <- P$crit } if(P$traceIter) cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n") j <- j+1 } z = list(coefficients = res$par, objective = res$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta, df.residual = (n-k)) } z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$terms <- dat$mt if(P$model) z$model <- dat$mf z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt if (P$vcov == "iid" & P$wmatrix != "ident") z$fsRes <- fsRes class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod return(z) } momentEstim.baseGmm.iterative <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k w = .weightFct(NULL, x, "ident") chkOptim <- any(P$optfct == c("optim", "constrOptim")) if (chkOptim) { if (P$gradvf) { gr2 <- function(thet, x, w) { gt <- .momentFct(thet, x) Gbar <- .DmomentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(Gbar, solve(w, gbar)) else obj <- crossprod(Gbar,w)%*%gbar return(obj*2) } } else { gr2 <- NULL } } if (P$optfct == "optim") { argDots <- list(...) allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(optim,allArgOptim) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .obj1, grad = gr2, ui = ui, ci = ci, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res <- nlminb(P$t0, .obj1, x = x, w = w, ...) res$value <- res$objective } if (P$optfct == "optimize") { res <- optimize(.obj1, P$t0, x = x, w = w, ...) res$par <- res$minimum res$value <- res$objective } if (q == k2 | P$wmatrix == "ident") { z <- list(coefficients = res$par, objective = res$value, k=k, k2=k2, n=n, q=q, df=df) if (chkOptim) z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } else { initTheta = res$par z <- list() if (chkOptim) z$initialAlgoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$initialAlgoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) ch <- 100000 j <- 1 while(ch > P$crit) { tet <- res$par w <- .weightFct(tet, P$x, P$vcov) if (chkOptim) { allArgOptim$w <- w allArgOptim[[1]] <- tet res <- do.call(get(P$optfct),allArgOptim) } if (P$optfct == "nlminb") { res <- nlminb(tet, .obj1, x = P$x, w = w, ...) res$value <- res$objective } if (P$optfct == "optimize") { res <- optimize(.obj1, P$t0, x = P$x, w = w, ...) res$par <- res$minimum res$value <- res$objective } ch <- crossprod(tet-res$par)^.5/(1+crossprod(tet)^.5) if (j>P$itermax) { cat("No convergence after ", P$itermax, " iterations") ch <- P$crit } if(P$traceIter) cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n") j <- j+1 } z2 = list(coefficients = res$par, objective = res$value,k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta) z <- c(z, z2) if (chkOptim) z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } z$dat <- P$x z$gt <- P$g(z$coefficients, P$x) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") z$specMod <- P$specMod class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.baseGmm.cue.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w <- .weightFct(NULL, dat, "ident") if (q == k2 | P$wmatrix == "ident") { res <- .tetlin(dat, w) z = list(coefficients = res$par, objective = res$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) P$weightMessage <- "No CUE needed because the model is just identified" } else { if (is.null(P$t0)) { P$t0 <- .tetlin(dat, w, type="2sls")$par initTheta <- P$t0 } else { initTheta <- P$t0 } if (P$vcov == "HAC") { w <- .weightFct(P$t0, dat, P$vcov) attr(dat, "weight")$WSpec$sandwich$bw <- attr(w,"Spec")$bw P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta" } if (P$optfct == "optim") res2 <- optim(P$t0,.objCue, x = dat, type = P$vcov, ...) if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .objCue, grad = NULL, ui = ui, ci = ci, x = dat, type = P$vcov) allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0,.objCue, x = dat, type = P$vcov, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.objCue,P$t0, x = dat, type = P$vcov, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, initTheta=initTheta, df.residual = (n-k)) if (any(P$optfct == c("optim", "constrOptim"))) z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) } z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$dat <- dat z$terms <- dat$mt if(P$model) z$model <- dat$mf z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$specMod <- P$specMod z$cue <- list(weights=P$fixedKernW,message=P$weightMessage) z$WSpec <- P$WSpec z$w0 <- .weightFct(z$coefficients, dat, P$vcov) names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.baseGmm.cue <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k if (q == k2 | P$wmatrix == "ident") { w = .weightFct(NULL, x, "ident") res <- gmm(P$allArg$g,P$allArg$x,P$t0,wmatrix="ident",optfct=P$optfct, ...) z <- list(coefficients = res$coef, objective = res$objective, algoInfo = res$algoInfo, k=k, k2=k2, n=n, q=q, df=df, initTheta=P$t0) P$weightMessage <- "No CUE needed because the model if just identified or you set wmatrix=identity" } else { w <- .weightFct(P$t0, x, P$vcov) initTheta <- P$t0 if (P$vcov == "HAC") { res <- try(gmm(P$allArg$g,P$allArg$x,P$t0,wmatrix="ident", optfct=P$optfct, ...)) if(any(class(res)=="try-error")) stop("Cannot get a first step estimate to compute the weights for the Kernel estimate of the covariance matrix; try different starting values") w <- .weightFct(res$coefficients, x, P$vcov) attr(x, "weight")$WSpec$sandwich$bw <- attr(w,"Spec")$bw P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta" } else { res <- list() } if (P$optfct == "optim") { res2 <- optim(P$t0, .objCue, x = x, type = P$vcov, ...) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .objCue, grad = NULL, ui = ui, ci = ci, x = x, type = P$vcov) allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0, .objCue, x = x, type = P$vcov, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.objCue,P$t0, x = x, type = P$vcov, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients=res2$par,objective=res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta) if (any(P$optfct == c("optim", "constrOptim"))) { z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$algoInfo$convergence, counts = res$algoInfo$counts, message = res$algoInfo$message) } else if (P$optfct == "nlminb") { z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$algoInfo$convergence, counts = res$algoInfo$evaluations, message = res$algoInfo$message) } } z$dat <- x z$gradv <- P$gradv z$gt <- P$g(z$coefficients, x) z$w0 <- .weightFct(z$coefficients, x, P$vcov) z$iid <- P$iid z$g <- P$g z$cue <- list(weights=P$fixedKernW,message=P$weightMessage) names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") z$WSpec <- P$WSpec z$specMod <- P$specMod class(z) <- paste(P$TypeGmm, ".res", sep = "") return(z) } momentEstim.baseGel.modFormula <- function(object, ...) { P <- object g <- P$g q <- attr(P$x, "q") n <- attr(P$x, "n") k <- attr(P$x, "k") df <- q-k*P$x$ny l0Env <- new.env() assign("l0",rep(0,q),envir=l0Env) if (!P$constraint) { if (P$optfct == "optim") res <- optim(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "nlminb") res <- nlminb(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "optimize") { res <- optimize(.thetf, P$tet0, P = P, l0Env = l0Env, ...) res$par <- res$minimum res$convergence <- "There is no convergence code for optimize" } } if(P$constraint) res <- constrOptim(P$tet0, .thetf, grad = NULL, P = P, l0Env = l0Env, ...) All <- .thetf(res$par, P, "all",l0Env = l0Env) gt <- All$gt rlamb <- All$lambda z <- list(coefficients = res$par, lambda = rlamb$lambda, conv_lambda = rlamb$conv, conv_par = res$convergence, dat=P$x) z$type <- P$type z$gt <- gt pt <- .getImpProb(z$gt, z$lambda, P$type, P$k1, P$k2) z$pt <- c(pt) z$conv_moment <- attr(pt, "conv_moment") z$conv_pt <- attr(pt, "conv_pt") z$objective <- All$obj z$call <- P$call z$k1 <- P$k1 z$k2 <- P$k2 z$CGEL <- P$CGEL z$typeDesc <- P$typeDesc z$specMod <- P$specMod z$df <- df names(z$coefficients) <- object$namesCoef if (P$onlyCoefficients) return(z[c("coefficients","lambda","conv_lambda","conv_par","objective")]) if (!is.null(object$namesgt)) { colnames(z$gt) <- object$namesgt } else { colnames(z$gt) <- paste("g",1:ncol(z$gt), sep="") } names(z$lambda) <- paste("Lam(", colnames(z$gt), ")", sep="") if (!is.null(attr(P$x,"eqConst")) & P$allArg$eqConstFullVcov) { eqConst <- attr(P$x,"eqConst")$eqConst coef <- rep(0,length(eqConst[,1])+length(z$coefficients)) ncoef <- rep("",length(eqConst[,1])+length(z$coefficients)) coef[-eqConst[,1]] <- z$coefficients ncoef[-eqConst[,1]] <- names(z$coefficients) coef[eqConst[,1]] <- eqConst[,2] ncoef[eqConst[,1]] <- rownames(eqConst) names(coef) <- ncoef z$coefficients <- coef attr(P$x, "k") <- attr(P$x, "k") + nrow(eqConst) z$df <- z$df - nrow(eqConst) attr(P$x,"eqConst") <- NULL z$specMod <- paste(z$specMod, "** Note: Covariance matrix computed for all coefficients based on restricted values \n Tests non-valid**\n\n") } if(P$gradvf) G <- P$gradv(z$coefficients, P$x) else G <- P$gradv(z$coefficients, P$x, z$pt) allVcov <- try(.vcovGel(gt, G, P$k1, P$k2, P$bwVal, z$pt), silent=TRUE) if (any(class(allVcov) == "try-error")) { z$vcov_par <- matrix(NA, length(z$coefficients), length(z$coefficients)) z$vcov_lambda <- matrix(NA, length(z$lambda), length(z$lambda)) z$khat <- NULL warning("Cannot compute the covariance matrices") } else { z <- c(z, allVcov) } z$weights <- P$w z$bwVal <- P$bwVal names(z$bwVal) <- "Bandwidth" dimnames(z$vcov_par) <- list(names(z$coefficients), names(z$coefficients)) dimnames(z$vcov_lambda) <- list(names(z$lambda), names(z$lambda)) tmp <- .residuals(z$coefficients, P$x) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$dat <- P$x z$terms <- P$x$mt if(P$model) z$model <- P$x$mf if(P$X) z$x <- as.matrix(P$x$x[,(P$x$ny+1):(P$x$ny+P$x$k)]) if(P$Y) z$y <- as.matrix(P$x$x[,1:P$x$ny]) class(z) <- paste(P$TypeGel, ".res", sep = "") z$allArg <- P$allArg return(z) } momentEstim.baseGel.mod <- function(object, ...) { P <- object x <- P$x q <- attr(x, "q") n <- attr(x, "n") df <- q - attr(x, "k") l0Env <- new.env() assign("l0",rep(0,q),envir=l0Env) if (!P$constraint) { if (P$optfct == "optim") res <- optim(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "nlminb") res <- nlminb(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "optimize") { res <- optimize(.thetf, P$tet0, P = P, l0Env = l0Env, ...) res$par <- res$minimum res$convergence <- "There is no convergence code for optimize" } } if(P$constraint) res <- constrOptim(P$tet0, .thetf, grad = NULL, P = P,l0Env = l0Env, ...) All <- .thetf(res$par, P, "all",l0Env = l0Env) gt <- All$gt rlamb <- All$lambda z <- list(coefficients = res$par, lambda = rlamb$lambda, conv_lambda = rlamb$conv, conv_par = res$convergence, dat=x) z$type <- P$type z$gt <- gt pt <- .getImpProb(z$gt, z$lambda, P$type, P$k1, P$k2) z$pt <- c(pt) z$conv_moment <- attr(pt, "conv_moment") z$conv_pt <- attr(pt, "conv_pt") z$objective <- All$obj names(z$coefficients) <- P$namesCoef z$specMod <- P$specMod z$df <- df if (!is.null(object$namesgt)) { colnames(z$gt) <- object$namesgt } else { colnames(z$gt) <- paste("g",1:ncol(z$gt), sep="") } names(z$lambda) <- paste("Lam(", colnames(z$gt), ")", sep="") if (!is.null(attr(x,"eqConst")) & P$allArg$eqConstFullVcov) { eqConst <- attr(x,"eqConst")$eqConst coef <- rep(0,length(eqConst[,1])+length(z$coefficients)) ncoef <- rep("",length(eqConst[,1])+length(z$coefficients)) coef[-eqConst[,1]] <- z$coefficients ncoef[-eqConst[,1]] <- names(z$coefficients) coef[eqConst[,1]] <- eqConst[,2] ncoef[eqConst[,1]] <- rownames(eqConst) names(coef) <- ncoef z$coefficients <- coef attr(x, "k") <- attr(x, "k") + nrow(eqConst) z$df <- z$df - nrow(eqConst) attr(x,"eqConst") <- NULL z$specMod <- paste(z$specMod, "** Note: Covariance matrix computed for all coefficients based on restricted values \n Tests non-valid**\n\n") } if (P$onlyCoefficients) return(z[c("coefficients", "lambda", "conv_lambda", "conv_par", "objective")]) if(P$gradvf) G <- P$gradv(z$coefficients, x) else G <- P$gradv(z$coefficients, x, z$pt) z$G <- G allVcov <- try(.vcovGel(gt, G, P$k1, P$k2, P$bwVal, z$pt), silent=TRUE) if (any(class(allVcov) == "try-error")) { z$vcov_par <- matrix(NA, length(z$coefficients), length(z$coefficients)) z$vcov_lambda <- matrix(NA, length(z$lambda), length(z$lambda)) z$khat <- NULL warning("Cannot compute the covariance matrices") } else { z <- c(z, allVcov) } z$weights <- P$w z$bwVal <- P$bwVal names(z$bwVal) <- "Bandwidth" dimnames(z$vcov_par) <- list(names(z$coefficients), names(z$coefficients)) dimnames(z$vcov_lambda) <- list(names(z$lambda), names(z$lambda)) if(P$X) z$x <- x z$call <- P$call z$k1 <- P$k1 z$k2 <- P$k2 z$CGEL <- P$CGEL z$typeDesc <- P$typeDesc z$allArg <- P$allArg class(z) <- paste(P$TypeGel, ".res", sep = "") return(z) } momentEstim.fixedW.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "fixed") if(!all(dim(w) == c(q,q))) stop("The matrix of weights must be qxq") eigenW <- svd(w)$d if(!is.double(eigenW)) warning("The matrix of weights is not strictly positive definite") if(is.double(eigenW)) { if(any(eigenW<=0)) warning("The matrix of weights is not strictly positive definite") } res2 <- .tetlin(dat, w) z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, df.residual = (n-k)) z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$rediduals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$dat <- dat z$terms <- dat$mt if(P$model) z$model <- dat$mf z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt z$specMod <- P$specMod class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.fixedW <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k w = .weightFct(NULL, x, "fixed") if(!all(dim(w) == c(q,q))) stop("The matrix of weights must be qxq") eigenW <- svd(w)$d if(!is.double(eigenW)) warning("The matrix of weights is not strictly positive definite") if(is.double(eigenW)) { if(any(eigenW<=0)) warning("The matrix of weights is not strictly positive definite") } chkOptim <- any(P$optfct == c("optim", "constrOptim")) if (chkOptim) { if (P$gradvf) { gr2 <- function(thet, x, w) { gt <- .momentFct(thet, x) Gbar <- .DmomentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(Gbar, solve(w, gbar)) else obj <- crossprod(Gbar,w)%*%gbar return(obj*2) } } else { gr2 <- NULL } } if (P$optfct == "optim") { argDots <- list(...) allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = x, w = w) argDots$gr <- NULL allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(optim,allArgOptim) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .obj1, grad = gr2, ui = ui, ci = ci, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0, .obj1, x = P$x, w = w, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.obj1, P$t0, x = P$x, w = w, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df) if (chkOptim) z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) z$dat <- P$x z$gt <- P$g(z$coefficients, P$x) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") z$specMod <- P$specMod class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.baseGel.eval <- function(object, ...) { P <- object q <- attr(P$x, "q") n <- attr(P$x, "n") l0Env <- new.env() assign("l0",rep(0,q),envir=l0Env) All <- .thetf(P$tet0, P, "all",l0Env = l0Env) gt <- All$gt rlamb <- All$lambda z <- list(coefficients = P$tet0, lambda = rlamb$lambda, conv_lambda = rlamb$conv, conv_par = NULL, dat=P$x) z$type <- P$type z$gt <- gt pt <- .getImpProb(z$gt, z$lambda, P$type, P$k1, P$k2) z$pt <- c(pt) z$conv_moment <- attr(pt, "conv_moment") z$conv_pt <- attr(pt, "conv_pt") z$objective <- All$obj z$call <- P$call z$k1 <- P$k1 z$k2 <- P$k2 z$CGEL <- P$CGEL z$typeDesc <- paste(P$typeDesc, " (Eval only, tests non-valid) ", sep="") z$specMod <- P$specMod names(z$coefficients) <- P$namesCoef z$df <- length(z$lambda) - length(z$coefficients) if (!is.null(object$namesgt)) { colnames(z$gt) <- object$namesgt } else { colnames(z$gt) <- paste("g",1:ncol(z$gt), sep="") } names(z$lambda) <- paste("Lam(", colnames(z$gt), ")", sep="") if(P$gradvf) G <- P$gradv(z$coefficients, P$x) else G <- P$gradv(z$coefficients, P$x, z$pt) z$G <- G allVcov <- .vcovGel(gt, G, P$k1, P$k2, P$bwVal, z$pt) z <- c(z, allVcov) z$weights <- P$w z$bwVal <- P$bwVal names(z$bwVal) <- "Bandwidth" dimnames(z$vcov_par) <- list(names(z$coefficients), names(z$coefficients)) dimnames(z$vcov_lambda) <- list(names(z$lambda), names(z$lambda)) if (attr(P$x,"ModelType") == "linear") { tmp <- .residuals(z$coefficients, P$x) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- P$x$mt if(P$model) z$model <- P$x$mf if(P$X) z$x <- as.matrix(P$x$x[,(P$x$ny+1):(P$x$ny+P$x$k)]) if(P$Y) z$y <- as.matrix(P$x$x[,1:P$x$ny]) } return(z) } gmm/R/sysGmm.R0000644000176200001440000002725112634331531012645 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ five <- function(g, h, commonCoef = FALSE, data = NULL) { res <- sysGmm(g, h, wmatrix = "optimal", vcov = "CondHom", commonCoef=commonCoef, data=data) attr(res$dat, "sysInfo")$typeDesc <- "Full-Information IV (FIVE)" res$call <- match.call() res } threeSLS <- function(g, h, commonCoef = FALSE, data = NULL) { if (!is(h, "formula")) if (length(h) != 1) stop("In 3SLS, h is a single equation since the same instruments are used in each equation") res <- sysGmm(g, h, vcov = "CondHom", commonCoef=commonCoef, data=data) attr(res$dat, "sysInfo")$typeDesc <- "3-stage Least Squares" res$call <- match.call() res } sur <- function(g, commonCoef = FALSE, data = NULL) { if (!is.list(g)) stop("g must be list of formulas") if (length(g) == 1) stop("For single equation GMM, use the function gmm()") if (!all(sapply(1:length(g), function(i) is(g[[i]], "formula")))) stop("g must be a list of formulas") tm <- lapply(1:length(g), function(i) terms(g[[i]])) reg <- lapply(1:length(g), function(i) attr(tm[[i]], "term.labels")) reg <- unique(do.call(c,reg)) h <- paste(reg, collapse = "+") if (all(sapply(1:length(g), function(i) attr(tm[[i]], "intercept") == 0))) h <- paste(h, "-1") h <- as.formula(paste("~", h)) res <- sysGmm(g, h, vcov = "CondHom", commonCoef=commonCoef, data=data) attr(res$dat, "sysInfo")$typeDesc <- "Seemingly Unrelated Regression (SUR)" res$call <- match.call() res } randEffect <- function(g, data = NULL) { res <- sur(g, commonCoef = TRUE, data = data) attr(res$dat, "sysInfo")$typeDesc <- "Random Effect Estimator" res$call <- match.call() res } sysGmm <- function(g, h, wmatrix = c("optimal","ident"), vcov=c("MDS", "HAC", "CondHom", "TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"), crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)",tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, crossEquConst = NULL, commonCoef = FALSE) { kernel <- match.arg(kernel) vcov <- match.arg(vcov) wmatrix <- match.arg(wmatrix) TypeGmm = "sysGmm" if(vcov=="TrueFixed" & is.null(weightsMatrix)) stop("TrueFixed vcov only for fixed weighting matrix") if(!is.null(weightsMatrix)) wmatrix <- "optimal" if(missing(data)) data<-NULL all_args<-list(data = data, g = g, h = h, wmatrix = wmatrix, vcov = vcov, kernel = kernel, crit = crit, bw = bw, prewhite = prewhite, ar.method = ar.method, approx = approx, weightsMatrix = weightsMatrix, centeredVcov = centeredVcov, tol = tol, model = model, X = X, Y = Y, call = match.call(), commonCoef=commonCoef, crossEquConst = crossEquConst) class(all_args)<-TypeGmm Model_info<-getModel(all_args) z <- momentEstim(Model_info) z <- FinRes(z, Model_info) return(z) } .momentFct_Sys <- function(tet, dat) { q <- length(dat) f <- function(i, dat) { d <- dat[[i]] attr(d, "eqConst") <- attr(dat, "eqConst") attr(d, "ModelType") <- attr(dat, "ModelType") attr(d,"momentfct") <- attr(dat,"momentfct") attr(d, "smooth") <- attr(dat, "smooth") .momentFct(tet[[i]], d) } mom <- lapply(1:q, function(i) f(i, dat)) do.call(cbind, mom) } .DmomentFct_Sys <- function(tet, dat, pt=NULL) { q <- length(dat) f <- function(i, dat) { d <- dat[[i]] attr(d, "eqConst") <- attr(dat, "eqConst") attr(d, "ModelType") <- attr(dat, "ModelType") attr(d,"momentfct") <- attr(dat,"momentfct") attr(d, "smooth") <- attr(dat, "smooth") .DmomentFct(tet[[i]], d, pt) } dmom <- lapply(1:q, function(i) f(i, dat)) if (attr(dat, "sysInfo")$commonCoef) do.call(rbind,dmom) else .diagMatrix(dmom) } .weightFct_Sys<- function(tet, dat, type=c("MDS", "HAC", "CondHom", "ident", "fct", "fixed")) { type <- match.arg(type) if (type == "fixed") { w <- attr(dat, "weight")$w attr(w, "inv") <- FALSE } else if (type == "ident") { w <- diag(attr(dat, "q")) attr(w, "inv") <- FALSE } else { if (type == "HAC") { gt <- .momentFct_Sys(tet,dat) if(attr(dat, "weight")$centeredVcov) gt <- residuals(lm(gt~1)) n <- NROW(gt) obj <- attr(dat, "weight") obj$centeredVcov <- FALSE w <- .myKernHAC(gt, obj) attr(w, "inv") <- TRUE } if (type == "MDS") { gt <- .momentFct_Sys(tet,dat) n <- NROW(gt) if(attr(dat, "weight")$centeredVcov) gt <- scale(gt, scale=FALSE) w <- crossprod(gt)/n attr(w, "inv") <- TRUE } if (type == "CondHom") { e <- lapply(1:length(dat), function(i) .residuals(tet[[i]], dat[[i]])$residuals) e <- do.call(cbind, e) Sig <- crossprod(scale(e, scale=FALSE))/nrow(e) Z <- lapply(1:length(dat), function(i) dat[[i]]$x[,(2+dat[[i]]$k):ncol(dat[[i]]$x)]) Z <- do.call(cbind, Z) w <- crossprod(Z)/nrow(e) for (i in 1:length(dat)) for (j in 1:length(dat)) { s1 <- 1+(i-1)*dat[[i]]$nh e1 <- i*dat[[i]]$nh s2 <- 1+(j-1)*dat[[j]]$nh e2 <- j*dat[[j]]$nh w[s1:e1, s2:e2] <- w[s1:e1, s2:e2]*Sig[i,j] } attr(w, "inv") <- TRUE } } return(w) } .diagMatrix <- function(xlist, which=NULL) { # Create block diagonal matrix from matrices with the same number of rows. m <- length(xlist) n <- NROW(xlist[[1]]) l <- sapply(1:m, function(i) dim(as.matrix(xlist[[i]]))) if (!is.null(which)) { if (any(l[2,1]!=l[2,])) stop("diagMatrix with which given is for X with the same number of columns") which <- sort(which) if (length(which) == l[2,1]) { dimX <- rowSums(l) which <- NULL } else { dimX <- c(sum(l[1,]), length(which)*m + l[2,1]-length(which)) } } else { dimX <- rowSums(l) } X <- matrix(0, dimX[1], dimX[2]) if (is.null(which)) { for (i in 1:m) { s1 <- 1 + (i-1)*n e1 <- n*i s2 <- 1 + sum(l[2,][-(i:m)]) e2 <- sum(l[2,][1:i]) X[s1:e1, s2:e2] <- xlist[[i]] } } else { q <- match(1:l[2,1],which) q2 <- which(is.na(q)) wai <- 1 for (j in q2) { if (wai < j) { xlist2 <- lapply(1:length(xlist), function(i) xlist[[i]][,wai:(j-1), drop=FALSE]) k <- j-wai Xtmp <- .diagMatrix(xlist2) X[,wai:(wai+length(xlist)*k-1)] <- Xtmp wai <- wai + length(xlist)*k } X[,wai] <- do.call(c, lapply(1:length(xlist), function(i) xlist[[i]][,j])) wai <- wai+1 } if (max(q2) < l[2,1]) { xlist2 <- lapply(1:length(xlist), function(i) xlist[[i]][,-(1:max(q2))]) Xtmp <- .diagMatrix(xlist2) X[,wai:ncol(X)] <- Xtmp } } X } .getThetaList <- function(tet, dat) { neq <- length(dat) if (attr(dat, "sysInfo")$commonCoef) { k <- attr(dat, "k")[[1]] if (length(tet) != k) stop("Wrong length of tet") tet2 <- rep(list(c(tet)), neq) } else if (!is.null(attr(dat, "sysInfo")$crossEquConst)) { k <- attr(dat, "k")[[1]] cst <- attr(dat, "sysInfo")$crossEquConst nk <- (k-length(cst))*neq + length(cst) if (nk != length(tet)) stop("Wrong length of tet") tet2 <- matrix(NA, k, neq) wai <- 1 for (j in cst) { if (wai < j) { ind <- wai:(j-1) tet2[ind,] <- tet[1:(neq*length(ind))] tet <- tet[-(1:(neq*(j-wai)))] wai <- wai + length(ind) } tet2[wai,] <- tet[1] tet <- tet[-1] wai <- wai+1 } if (max(cst) < k) tet2[(max(cst)+1):k,] <- tet attr(dat, "sysInfo")$crossEquConst <- NULL tet2 <- .getThetaList(c(tet2), dat) } else { k2 <- do.call(c, attr(dat, "k")) if (sum(k2) != length(tet)) stop("Wrong length of tet") tet2 <- list() for (j in 1:length(k2)) { tet2[[j]] <- tet[1:k2[j]] tet <- tet[-(1:k2[j])] } } tet2 } .chkPerfectFit <- function(obj) { r <- as.matrix(obj$residuals) f <- as.matrix(obj$fitted.values) rdf <- obj$df.residual rss <- colSums(r^2) mf <- colMeans(f) mv <- apply(f, 2, var) resvar <- rss/rdf resvar < (mf^2 + mv) * 1e-30 } gmm/R/Methods.gel.R0000644000176200001440000002552713460072542013545 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ .invTest <- function(object, which, level = 0.95, fact = 3, type=c("LR", "LM", "J"), corr=NULL) { type <- match.arg(type) argCall <- object$allArg if (length(which) > 1) stop("tests are inverted only for one parameter") if (is.character(which)) { which <- which(which == names(object$coefficients)) if (length(which) == 0) stop("Wrong parameter names") } wtest <- which(type==c("LR", "LM", "J")) if (object$df > 0) { test0 <- specTest(object)$test[wtest,] test0 <- test0[1] } else { test0 <- 0 } if (length(object$coefficients) == 1) { argCall$optfct <- NULL argCall$constraint <- NULL argCall$eqConst <- NULL argCall$eqConstFullVcov <- NULL fctCall <- "evalGel" } else { fctCall <- "gel" argCall$eqConst <- which } if (length(object$coefficients) == 2) { sdcoef <- sqrt(diag(vcov(object))[-which]) coef <- object$coefficients[-which] upper <- coef + fact*sdcoef lower <- coef - fact*sdcoef argCall$method <- "Brent" argCall$lower <- lower argCall$upper <- upper } sdcoef <- sqrt(diag(vcov(object))[which]) coef <- object$coefficients[which] int1 <- c(coef, coef + fact*sdcoef) int2 <- c(coef - fact*sdcoef, coef) fct <- function(coef, which, wtest, level, test0, corr=NULL) { argCall$tet0 <- object$coefficients argCall$tet0[which] <- coef obj <- do.call(get(fctCall), argCall) test <- as.numeric(specTest(obj)$test[wtest,1]) - test0 if (is.null(corr)) level - pchisq(test, 1) else level - pchisq(test/corr, 1) } res1 <- uniroot(fct, int1, which = which, wtest=wtest, level=level, test0=test0, corr=corr) res2 <- uniroot(fct, int2, which = which, wtest=wtest, level=level, test0=test0, corr=corr) sort(c(res1$root, res2$root)) } confint.gel <- function(object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, ...) { type <- match.arg(type) z <- object n <- nrow(z$gt) if (type == "Wald") { ntest <- "Direct Wald type confidence interval" se_par <- sqrt(diag(z$vcov_par)) par <- z$coefficients tval <- par/se_par se_parl <- sqrt(diag(z$vcov_lambda)) lamb <- z$lambda zs <- qnorm((1 - level)/2, lower.tail=FALSE) ch <- zs*se_par if(!lambda) { ans <- cbind(par-ch, par+ch) dimnames(ans) <- list(names(par), c((1 - level)/2, 0.5+level/2)) } if(lambda) { if (length(z$coefficients) == length(z$lambda)) { cat("\nNo confidence intervals for lambda when the model is just identified.\n") return(NULL) } else { chl <- zs*se_parl ans <- cbind(lamb - chl, lamb + chl) dimnames(ans) <- list(names(lamb), c((1 - level)/2, 0.5 + level/2)) } } if(!missing(parm)) ans <- ans[parm,] } else { if(missing(parm)) parm <- names(object$coefficients) type <- strsplit(type, "v")[[1]][2] ntest <- paste("Confidence interval based on the inversion of the ", type, " test", sep="") ans <- lapply(parm, function(w) .invTest(object, w, level = level, fact = fact, type=type, corr=corr)) ans <- do.call(rbind, ans) if (!is.character(parm)) parm <- names(object$coefficients)[parm] dimnames(ans) <- list(parm, c((1 - level)/2, 0.5+level/2)) } ans <- list(test=ans,ntest=ntest) class(ans) <- "confint" ans } print.confint <- function(x, digits = 5, ...) { cat("\n", x$ntest, sep="") cat("\n#######################################\n") print.default(format(x$test, digits = digits), print.gap = 2, quote = FALSE) invisible(x) } coef.gel <- function(object, lambda = FALSE, ...) { if(!lambda) object$coefficients else object$lambda } vcov.gel <- function(object, lambda = FALSE, ...) { if(!lambda) object$vcov_par else object$vcov_lambda } print.gel <- function(x, digits = 5, ...) { if (is.null(x$CGEL)) cat("Type de GEL: ", x$typeDesc, "\n") else cat("CGEL of type: ", x$typeDesc, " (alpha = ", x$CGEL, ")\n") if (!is.null(attr(x$dat,"smooth"))) { cat("Kernel: ", attr(x$dat,"smooth")$kernel," (bw=", attr(x$dat,"smooth")$bw,")\n\n") } else cat("\n") cat("Coefficients:\n") print.default(format(coef(x), digits = digits), print.gap = 2, quote = FALSE) cat("\n") cat("Lambdas:\n") print.default(format(coef(x, lambda = TRUE), digits = digits), print.gap = 2, quote = FALSE) cat("\n") cat("Convergence code for the coefficients: ", x$conv_par,"\n") cat("Convergence code for Lambda: ", x$conv_lambda$convergence,"\n") cat(x$specMod) invisible(x) } print.summary.gel <- function(x, digits = 5, ...) { cat("\nCall:\n") cat(paste(deparse(x$call), sep = "\n", collapse = "\n"), "\n\n", sep = "") if (is.null(x$CGEL)) cat("Type of GEL: ", x$typeDesc, "\n") else cat("CGEL of type: ", x$typeDesc, " (alpha = ", x$CGEL, ")\n") if (!is.null(x$smooth)) { cat("Kernel: ", x$smooth$kernel," (bw=", x$smooth$bw,")\n\n") }else { cat("\n") } cat("Coefficients:\n") print.default(format(x$coefficients, digits = digits), print.gap = 2, quote = FALSE) if (length(x$coefficients)|t|)")) dimnames(ans$lambda) <- list(names(z$lambda), c("Estimate", "Std. Error", "t value", "Pr(>|t|)")) ans$stest=specTest(z) if (z$type == "EL") ans$badrho <- z$badrho if (!is.null(z$weights)) { ans$weights <- z$weights } ans$conv_par <- z$conv_par ans$conv_pt <- z$conv_pt ans$conv_moment <- cbind(z$conv_moment) ans$conv_lambda <- z$conv_lambda ans$CGEL <- z$CGEL ans$typeDesc <- z$typeDesc ans$specMod <- z$specMod if (!is.null(attr(object$dat,"smooth"))) ans$smooth <- attr(object$dat,"smooth") names(ans$conv_pt) <- "Sum_of_pt" dimnames(ans$conv_moment) <- list(names(z$gt), "Sample_moment_with_pt") class(ans) <- "summary.gel" ans } residuals.gel <- function(object, ...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$residuals } fitted.gel <- function(object, ...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$fitted.value } formula.gel <- function(x, ...) { if(is.null(x$terms)) stop("The gel object was not created by a formula") else formula(x$terms) } estfun.gel <- function(x, ...) { stop("estfun is not yet available for gel objects") } bread.gel <- function(x, ...) { stop("Bread is not yet available for gel objects") } getImpProb <- function(object, ...) UseMethod("getImpProb") getImpProb.gel <- function(object, posProb=TRUE, normalize=TRUE, checkConv=FALSE, ...) { if (!normalize || (object$type == "CUE" && !posProb)) { n <- NROW(object$gt) pt <- -.rho(object$gt, object$lambda, type = object$type, derive = 1, k = object$k1/object$k2)/n if (object$type == "CUE" && posProb) { eps <- -length(pt)*min(min(pt),0) pt <- (pt+eps/length(pt))/(1+eps) } if (normalize) pt <- pt/sum(pt) } else { pt <- object$pt } if (checkConv) attr(pt, "convergence") <- list(pt=sum(pt), ptgt=colSums(pt*as.matrix(object$gt))) pt } gmm/MD50000644000176200001440000000620414437652652011362 0ustar liggesusersd1b7b7ce4ef1ca75e037c791c53949a5 *DESCRIPTION 8dbf0a1bf9e2ef0907845214e724577f *NAMESPACE 6372ea458199fe4e15b03dadd9f7289e *NEWS 34060d64cf14b2bc3ed236bf761fe875 *R/FinRes.R 8d15734187f2b41f1bc52c42213564ec *R/Methods.gel.R dec5ef37c3702d9603e2ed4401246664 *R/Methods.gmm.R 17568c5271105f0aa1460fb389195db1 *R/Methods.sysGmm.R f7fec7a4d5ec4e545ec61b3f3675e7d1 *R/PlotMethods.R 989f6a73d773a4113d55c6e80f04f845 *R/ategel.R 6edab88cccacdc9a87dcb228a934d699 *R/bandwidth.R 00a45548f548138d30c5f7c660ffdbbf *R/charStable.R d504335bd50c16265c02d128b3445601 *R/gel.R 0a3584ef441c1d563ada2540b2589001 *R/getModel.R f091319a29b31955bdc80f64688c2016 *R/gmm.R e50bb0d4f9c06ef3bcaf29a6ff9bcf62 *R/gmmTests.R f20717cd5d335a20b4d7723586065d35 *R/momentEstim.R f175f4ff505f6edea1b2e97a2a45d72e *R/specTest.R 5c43d9f22c0c1c9f028319f57004d8a4 *R/sysGmm.R 439bf689fa27cf9affd0335332142165 *build/partial.rdb 89b015c9ad7c6dcab6181c2213b28ea0 *build/vignette.rds c17042a2f7be69b7bfc66b5daa676d4b *data/Finance.rda 2f9293752e6fcafc38cdd4882b5c2ea2 *data/Growth.rda 1985800fb3cd473a94cf501319cbd9c9 *data/nsw.rda 21c9ebfa9789d9d7b99d41e0d962bb63 *data/wage.rda 70ec1dc7a37c75468cd81bc9112cbfcd *inst/CITATION a46b2d02e09a545aaea830e4df6599e1 *inst/doc/gmm_with_R.R 99e660c302f1fa1c434747f6825870ef *inst/doc/gmm_with_R.pdf 379d4dc7881ea419410aa5abe8308745 *inst/doc/gmm_with_R.rnw 497a04740cdfb97e7c3e054364ada98c *man/ATEgel.Rd 5e37a93a689634ee38cd7fdd177c2827 *man/FinRes.Rd a91a58e7472a68ca02c9cea14055a9c7 *man/Finance.Rd f3672fdf3a8e1575afeebd6cf1269744 *man/KTest.Rd 83dc94b87a175ae526b811f60321897a *man/bread.Rd e15f1a42357c6b1e969f68c18391008b *man/bwWilhelm.Rd 14fe0fdc342559be4e3f371835ef8656 *man/charStable.Rd af701418d7b6f2bb0360e0d12311d3cf *man/coef.Rd 0f7e154c11fe4b909e75524831c431d7 *man/confint.Rd 02a80cf8a3c5a50c66ffce828728eb95 *man/estfun.Rd e2149d386f6102467f98b95b9e40a634 *man/fitted.Rd 9ab973a6d0f9157e45a3345ecd2aa474 *man/formula.Rd 87505446f8097006c5988bbb0fdfeeea *man/gel.Rd 0d586d2638432c60dcf1c0f3ffd0b02e *man/getDat.Rd 47577cf99ff1539239775621e439d88e *man/getImpProb.Rd d53244c2c556db6d8d317d7b73ad3748 *man/getLamb.Rd a3e02ce173d3b2f6fb5a73f67788eca2 *man/getModel.Rd 2f7e67eb9b950ea0bdc17d02f6035668 *man/gmm.Rd f2a2180f6e5f8be6702196a78808b5ed *man/growth.Rd 512a3c4267f6146e373a1bdd6bc3a9e5 *man/marginal.Rd 19c918bb116d31ce090dfe3109d5e76e *man/momentEstim.Rd 579a6cb97e9ff6bb4000e1ffe24b2236 *man/nsw.Rd 9e89023030eb0c919c3a8243403999ea *man/plot.Rd ce22b21d434e85b31242ce58e0c976ec *man/print.Rd 05c3e41ccab1554d745de9c899f638c5 *man/residuals.Rd df413cf1cdfdef5681860e5509760ca6 *man/smoothG.Rd 52588d1b32001f7a264674c50dc1ec1a *man/specTest.Rd bbeb210028428733ce829e5d9620e94b *man/summary.Rd f487342b56b1f26b134417ab818c8e45 *man/sysGmm.Rd 6fdb443b30bdea453487e4f1ccfc2133 *man/tsls.Rd 121855f3e950c50c3292347b76a0b255 *man/vcov.Rd c0a39ea7fcadb43dfe768cae259b6026 *man/wage.Rd 3996e7c16bfb96fad295ee425815cb4d *src/Makevars 27461960ddf6e06cf7e55e51cfeea7f5 *src/gmm.h 16f0236c9e73143592e6d9ddd5ce08f7 *src/lambda_met.f c1c162760356490e4bf0119e0682ea0e *src/src.c e1cbec0189aa6e4ce46551f005822730 *vignettes/empir.bib 379d4dc7881ea419410aa5abe8308745 *vignettes/gmm_with_R.rnw gmm/inst/0000755000176200001440000000000014437645371012025 5ustar liggesusersgmm/inst/doc/0000755000176200001440000000000014437645371012572 5ustar liggesusersgmm/inst/doc/gmm_with_R.pdf0000644000176200001440000171637714437645370015406 0ustar liggesusers%PDF-1.5 % 100 0 obj << /Length 3474 /Filter /FlateDecode >> stream xڕZKsHWE1EA{8lH9 &̣òoD۱zefe~t{<{]T*vw8#1~aOP6W{{.ʿ pl>HG[*LgB.>]Y_ww*5~3.>_` [bɧr8t0?RbǥI~~!̏tZ)Wiƛc>= W >c>(a}ex!.vVau> 0x~b0^U* Tqw,QiH,lA$xO2ЩJye|Q4V2z晇p=. =JJz2GsI\b=~"?@^Iç2ɤBI'I~OǞYI̵coleHjL\pGrp:Kc]o μ}WnJPK-ɑG@i9pw,bFaPk?2n,ŀ R2=Ip6@Q7D> L/#WD~+ce&$Q{QI$u|qQ/hxx_m$enۇ % I.:csbmï!?>IF7V$G߸Kaqk I  :3k X!˕͐GGXp7#"Rۮ; q OnSܪ9i! R?Uf|xnVV}eyw(\|kSYULI'OgOU^8Y8p)\'-UQ_8<;p! F( tCƕ c|KWa,6 SDh]@  x+̗ |t$K-+ ?˚k 9tͫ/N{F):{L[n&#RO$_ }'ǯ-:77zܔ%cG9)hm6H0} -մnx+aXF, Eg_աX~f:Ah'N;xO`X iDe+ZxJ.<ܧ[<5Ŷv0=:T<ˢgS56Q݈(|$F?{jD{"W<;OxNz=&" pL{wH=n .CIbPFI S>`e xOYEC)1e D2|eW(<ܰ>ǯ(@i1z ON eEm/d@d)~ݠrw!8V dc"0+LfNjpO u~/9;'jGDr:t0Ir#塤1pՇFkg۵5^K0 7810LBwFF|dC: چ!fH uC>ӣRr;D;EQXc\b*+<Ǥv|^89ڳQXp\~teY7rLnZO4'/p ^oYF3 ȗ|z&W:|I3+0aW"l@p $|4GT[UQo(9''mNAXslOsd"3AUf ʹP2svgi+#vF)}- IOr6b[ `}R kM5/&J 0z-#6FSrYՉfbo󖖚H "KtʟxXŮ_Tk(rywWi.tK=5;\h%t4rJH OeNx?݆9Hm$~O&2!DUË+LؚR=Sچ ;YO_|T~A!>c/0~#N\b~vGfP۟+u&y&9vq9FbĻ@ŗ;RdvSHߎl LAʌCY@l„J]Oa+N(ߧ.e*K*m@Y*#fB*p kS%$c9?  [> stream xَܸ_яģEQG l;Abgׁwh݊uuxE]#4ţXU`w'=V.8w/TC3%*Ubv/p.kk^^MUpm^]Wt|J_]ګ0xG*QA FTPP+3t3ZmAž+-s[~{Z)?3Bd\]GAu^U[$ y/}7L$x{M#Oөh`HĞ5~/ tp2Tvo M*k%I Qʢ=9!P6 Dj} 7?]%sƑʇmzd#R ^o\JAF ~1;uÏa5pƾN|(ܑW+sĥd0 68 9P.U8%b:20kvL ә|U(bOWqOq<Ѐ.P#XdddkEç3Fhiũ@9`};v!bc,l)?U)N8p45Pb?mǶH Ic:P~Y4IE~E)xLZ`U詮19)'`e j߄ X@IJ>ȂZdؗI i…U %L@+7$/U)+dsѤI5XHA$LyhJ܄fV'kaeA8q?rc^N6@#XqK&+;.DE4d.fn%o8>&?ء >&+`P4M>vך\+Bz?V}v|G.doɏAւ*kU"icqTW͞bpCWyx7-_ 9֛Fag|q m&Ι0h1Zj'&6vð2YiL q6Ydm :D}lbЩTot#ןc١h;|Ф:)0e#qr-YT {F˜sdlLudՑN'`jqt.\kBa&@Tޝrt%'N{=S|,/á5Bv[h]1dȂ3H\C! 6Λ r0sjt)lA[{Vl䰟صI`KҾJ_8GbT^63#x$Jʋ>]۷*bqP Bd' Cgn5R6b l#@; pN/ٝ,|tBЊB!uT0ΐlJ@fD<g>9ӫ3s*YNiJr!/' z7dN/Q/ur$c*AhPT߉d [5k B4@!C4|V\1'*FH]YIQTfj 'ӁG%kXEPs: "ւ)Z߆ss TQ +-eiE5Kў!0jUq!6n9]άw^x1.=/tjuGЦ2 d%*ClȺX٥P⢸4識9]tBeiJ'xC9 [Pd*'ޟg_ޓ~lN͚yQ}Qׂ3/x~?GHgQ;Xwk5!+Gqj[ mHа&hsa6_z^ j~s9fkO(ׇ~h|t@Cb݅)?0SJkb0] K8 R?b~ M Y3/0OPfKMϛ%N:L$8yK옫IR{337X Nb@/ tсU6 ˳D2<6San.*mt&~&LyG2&o%@~25OWA63 r%|Rĉ!gxҕC~ ƅY^߻!I%kdIA, ݝpmO"q?I+dic`n ??%V,B~wm_K$Fy t!Lo2+pCI"gII0&|Sv.|arб d V**MaQ,&%Sl7R\ޑ)s_:m}ZJY;[L:5y-*\KƦ|;J{֑u#HOd$^lVu9RGOEAalb7am*fK–|be&)ML7 , Amx\tS O[;h:c܇_>u@alcћM$.x lEmVQSP5O^`1(۹9")146%oфS<,o/-8Qe}q+qP4<6s;y2 "G=H._loܪWس(qW.ULx;B+^5;ZV^k?&L$5X>P_ Ч? ^C54Na.^fl`'2m;k iuFS^ ՂB&NZ0 .1fPVnp#xƪ)Ά6upΙ 3\GfrIP.lxT:.#iģ$ HN gfۅ ZɜnT/.B`qM۽q|\L\#Hw_ҋ/ ;_N7/ڡҾ2b+v>uAf3pC eo%_kt{3؛Kпm [MJZ3Cr3B$=Ы3F'~ ¢8:#d]jwűMk@Ksg"bGEi'&;3 vEg~-|$)O09߂R:Kww4NeŃԍ& ؀% E $%V#|8 p[)}" ׋Y3MeSc_ է-$n&9 kFI}ta&զ [{^;L^U'4~}25Ctȕ*llR0~M)FR/XȦ ~Ӆ_T(}tURl}a\Qa!QR{,AZ[j!ʬg MaDUFpdrʐ2W;&r# |' ҩ&ˬX ~{308\G x-%[FI:! Oƛ*L\Cl}yysU4NTڦ/#h3Goߋ,./\y"Hu8Kp쐟ekT4d1Ux %$YkJQ`W׉ Z{fEp2>,[o$ ^)}#FeƋ,"vk`al`g]_=?:T"&>\R0rr~Kvv-HQx~m./T_TbH Slu2%B|ZF9 endstream endobj 165 0 obj << /Length 4444 /Filter /FlateDecode >> stream x[[䶕~_QVVċ$ %4&APNWjlRFr&f/JW[xUҭtSTvӛ_ߕQW\ 4PZ%Di\E.'ݞFeU*G>#:? ,AH:bhdŸoA*Ev\qcz EMwγZo@Ti6I)N΂i|w?d;_dA?uꕉUqS hVv۷- T@ChtOTDPM(L65ycg cT&(~|,X\jmڬ2gX /pXFF˓ z \24-m͌6Vvh Jzjƃ"2 إ\v&BoS=hnXeX%VC:ۏtCł /O wW3qtYi_ji&nxҨ WEB>MJ{ĘoM'V[$,lkɹĖk|ۚu+mk9ϊC6U+z6 Zua^V 0YXXwHdy[@J戾_֟][efzaߴwG'= ajzcyIGx >#'^M3Tfj®GMøļx4w[MD Cu[\0%s#bo2noPrR1mR($#HB],%kGX(8:04u*^,\5@RLNk˾H A2 9?HYj\Hl$4-jK~=WŃ`,?p84M<Am͒qKuK/ږk[Oxd$hTHka΃4{!G=_vtgGA1b;.C᧝8/:Mq.v5zq Wt&Oh}{2>`UO#҇ePt"ry$6Eb)$`5#clWXi9?!zrREX$QEeY'j'CYts3#4,*Ǝ҃2h5)T2@q&H&wCr`<Bk/ʨCAm:QPpt@4tJ"g5я(xɼ'kY&[:PܭH T7ܞJ˗^/Ǒy"ֿ|NdwH^8Lh3(`3??(.eE8]q6; =9*+^V Ul m0 ' 5&.$FϒRs,IˤTij8-|C2W*C8P3MTNoKSq<9Ѥs֮v=/'$QUU':{Unpi=vG⁦TJP^v=f%lR O䒼4_9\ymhZNE6Or$ٴ% ؜I2x@[6ߑ rD:Re] S vۤ0`U\y$!K V'`ީU-UN-^eQSpqbQ飙ȩ}Я0IYiS+`"s2X@'F;rF%|(qcsղv[=~b|7j:0þBPzN`r~L_C3F?<~Lɣ>(ʍ{K,?Ebn댅Q%9UtF $v[s@"i N{1#YᩎL#.Kv ѯϣrCK0ߎzi!thKxa3r[`Nlҝø4~I5~=at`BtB%-6`L" UfҰK2%3kD^-r P=mEw  S1x}ҷ0M2ugsGT6OK~ @{>'RG)EĞp>˭!"lB#;-x~i~429@P=/ &^:Yz<`õ?(Qlu;j$" P*$2SfzqI.UUxK#{O >sA_;T:56|;/( 6OmƧOhIa> .Y; sPvob>U";x  ]ZSa Q> BA} 9`|$F@!,=fFQTOGFwB yz,:Þy2 :n1tFo)Ĵ۸=i (8űS !W f"iks$ipu^)8ޤ9jpsыDp# Rfx:7b({P Vc@4Z  pb8}L$:I=AQS0)tk68fdI(hkZ/2={8gϨ.s|n? +hLp:X0a"1üb(8L:_t'˜sJӺ9>⇗:O5bW !jkE#Ϝ/f0*1{4'sjSz ; Kr0>΅T:.YE`ⱝ/-ٲ q!sxs raH\n)/NYl(i{@J U PL`6On/w endstream endobj 181 0 obj << /Length 3646 /Filter /FlateDecode >> stream x[ݓ۶_f, S7͇3I:\b3Dq" ɋs뻋)BѶؙ>  `.W |ɗ<_inY\nYXRnrx|w/ %e{KO۪%eRuS WKxlnzzݾXS`\U_SW۲K/FwlQv}+xyBf&50sӼ/>R,͸Y,'d/DJ"ͭ)9ay04m\\/9Osŵ.:RJG5bS#;C;g63 mh.,E";"YB합^`OMB/CvIuUU5'iS gt*7:ɲ΄K,]L, tE)5 +zGD(gۓPm\)rhTIʒϛ\d*iT6Of Bs/_tk}5S ԰qBc>':q*MG@c[JLF),&fMo w8bXq>tjA!GJ#fɩ_ROD'.4lN^@cLrw!n>bw4,Œ>5)cAhS}UieK;A0zn]M׿t o"~~;8xeO6C 77' /0n fuY_%jq_cpe oGUXKkjo&#l%qh }hct]gp`^٪Q"_;FDi[ʊtGЊT(~U`)K֌M4e|Gxf+gWz60Uf eBW\e?AYjr="s1x#uwVA efaf3S3nVFp?@xx9ԃC]pBY~*j6~zK2|OY 21c= Eg1`Kw/b(_mdw@JSf=&OZn+U6S4~c҈30v S``1erЉ@?ce,UV:eQ'դ 0w<A\+y5qpE,+ J-|3NAphK_c3Dqe SHCf1| \nǮ7M`#UUڲuW‘Sm(rn7=C"ʟo<>ܖ\&ngBJ4(uнHTj?v]W06i ͮ&('i!Yat K9!dz "5۔391{ 튟DyoXqǸDONU!1"ry3/& wg^WnXEIo&X uGsY"]&ݫv5sD'~Ȼ.?]y{DUx6o+AXXr0!w?X9壟!a QJ1H0lî#qF]#91jiNK wJS)7A!n l,h l#F*@:X=X6}8M(Gēv)4&US:cqNOcY\ݤ?˅00IOcfsyOe~ Cr8'sWVӠwK a'; k1 +֦ 5 !U6=nqBp A=DTi"\ pj!O|K N'2>1E®IFOi3ց\!HDaLC6> stream xZnH}WC_d` Iv7--"%u_lǖ0E/NuWjZ0 SY &89&L|Oy& &ʤdJZ&17&ӚӔ:wŌtLifgr0ui̹@{,-F`,2Q,h4/.zXk nyf%-p 5,ôV,;X&Z&=l&cZ̧bMb&aiWLr050pB&+',`[ 0 4ci,SIyMF pX n4gd,>azizZcgd7^zb."Τ\e.`t(mM< õV`9X 6A* eضi7$hh%C`YI<\3|%0ύ`A`.O `Z 1ذj\0<쁓#A~f}f6λr3?;;˾XŦX ݲ^uvh5>=eed9vuȮiiтUu.VlQ]Sovpw^yмmW_w* YUojY.~ؼ%hLy3ċr^ koOOUScoZ`ZzvqMslɇ=s~ϱQlӎmWϗ~z.yW7WMlaDqjvSoZh}lMZ3+- ܻzS=UǶwUQ+n7{Q-z.ẜ$e}RsWeSαW׸*u=yQ3?訙Goa3Iycj¦|*W~KԷ+ {rޕ{:}lfXK $-fc[oGI.}sek}.HBH,  8TU EES#F7ozqqqaƧ,g`>mλgY}f"6~6} >lN*Bt. ǩ NΙ]@68؂'M5[(? (\C(r%.r%n,ˢBrBVȡHhr"$#Ti> MUӡ6')%v >J{_H#,E l sKMQlH)s+ua8I1\-۞cqTphj6kd&Dblw"q>@H!✢Sqt w#uyp=aCExV18lLΩ݋]V7Lmprd4TdR9 3BAxsT]&E[e_EqGE_f&s2ڬVgھ+ZUkD`tW ibl2MtyeM B ƌJOW`X(>`(s}X/Fy<$[3vhЎzboʡUC;̧̤R\nlнImb"\n./cup?aR2⚂8{lmiIK`P\'|/)SI21H`qutO &=> stream x\ݏ6߿B@_͚DWЦh<4=)ز-m%9_\k'q.%&ÙpF*}JL!#\/-HEA(a P\*˙Ux7k{_`IxC`ќo_3IA'N55}Vۭg .IBM::|wT2_p Vn.YXlao뽫w^^8LqZ V~+ ÿ]_v`4`8")E0^`TPByPe磈9|oAoٞWN0d(rE0mb;whO(&|c1O?hEL -a (鸘/)б@nbeo]^(;砍@VX6O(/DV) 8I`&8 iYm&/]C^[0``޴3XptvXۉ93HI(QQl޸&}1wXF.gR%is,-`{z&}qow r Hb#k%cv8e]!(Y:|!l"[{n)7}dn6(XR=}S"U[72X`vno6vRT%ZY0mS۾Mg"ywvQ`)ȸsD ťaYYSNi ܇,͕O% iz4]YmAMj9὏M"q'fww[*>a3 %e>6hYp&3ec/ʮZƙl K(mo#rp37 zo=otuyC~mƹClW' yk4#X׉":Ĺ9MI vy97yء%9ZGR9چF;뷪 Zr1,1eeeoXUY*17 w;چe4h ^un M:YPxWO]ۇmosczb8\lmx?/EslqI4Apiix tx'(OZd* %PB+\l3Ikg¹'Us~]XGYM#2Oms1õu6]xd\pDuDpf4t&YcKc h}H <D\ຌlahS{2 Ė=z9(h/ H=vfǿ^;o, ayc/kI\Tјu={khfNJ%γ$s3^Dc1O!XFb2FQ9``ɇ0`Q8lt ReFB(kgd =p z'Ȅ#KM \666sߙ*FOV="@^ #@Td?ƀ d!O(>&EZ$`1rMrZ_tݎMu9yaUCc |J{?OkGi& VY=lx@^˒LPBu@8g??<.q&y܄soW(+w::J 3&yI?fG Ž~ž2}i"_ksho_3l|P9PH-YrdR:d{~JyPe@_ a&xHjQxhR|r rJ6w'ՎN$*lH>,E׳ZBW0=j7~ ݳc!xH}w";xrfxwO fm))ˮj+>jk^dk+&+\k4L=AX[pVVL5P=y.n^&-fw]8D cΗM&|23J? tޓ<T+$aNLǮ6Ӟ$,9q~.ݫm'8($,ُFupkzn' 7.~9qWJBc-=Lc"_ 'MO<*Сo?&TaXaWGůܰ|};hK&e,j\E1≯DHB>>"l+"ɻ1{ zbN 1SBĤ*AaR2P4)*HS7`Ӏ jT}|/1?mJ4=墾9+l=yyl?2Ap@?K-Q I63&0$c5JF|p &T5~+-޹ߠjW#9䋽~U.pbbTa[z_[ Є߈IHp VG CS endstream endobj 196 0 obj << /Length 1707 /Filter /FlateDecode >> stream xZKs6Wp 5 Nә6=M'mҨC-A2;"傤.)YrĦLIub ,v?8UoRݧ$@/p@hR"H$c05I&M5f ǹIOA|JƳP`< ~]Ջ}9A;xc'"CyoLw$ RhOiD)"纪Gc,Q*WRrl65NG$̫QDZiS{r,|M¦0QOGg_ΣF%IX Ԡ+ljfT*S<-_$86#ӱIt ewbOAvD1ï'j"n]^6wW>鯁 a eǹA1Pِx>!a)~轋 RnAgF k[}JWҍ]hٓN8AgxZgM4U^WL+(ahT޶Y1ݞ@ra*$́dc4vdqey8TH L3[ "j Ilm<8J (`mC"*tg,M jmi2]c1IHdʾ@pvIf\e=tvְ8gQ'Wɀ{E?~+?_\gۿƢAzn~P?v|곥ͭ rV;xv4>SMB),]C`*ֲvu$e%ڒ}lz,/r⭚,5O[1~{@ j")+3ܩb6Jpdδ; v+UzLE uL$‚|ps6=f`{¦+8d] -TuWWZ#_'Fy&]N]e+a$4~TTV̛&j9$-\^n`$aSGeb_WY>UYW;gPv"9m=ENđK =%La'v1;zNM~#؋%bFU'0DAPr8Ue.oH;:X 蠞@8 L*e4p*S5ʜ&raWES˝VhgMב;:1v43aʕs_e^٢ $ ō=!gXglN)OS?v(I smo7hOEf?[CMt>igyK*5خkTւjnӷ HJo`0qeVh^b瑆nN z0~i #U80x377]kr}둠SæCQߕnMpZI~;C>?tuT t~yJiW[;g̚st8y'2$d(?~+86W) !R-+S:5nQf)((71l!|v2`Xmg#Imґ ϯ N}ڕ}h72nl0I1{8ŦGRز`I6K. 38% f :&^#zJ?M endstream endobj 210 0 obj << /Length 3957 /Filter /FlateDecode >> stream xks#;ӴL6&`(IP@ί=HiR"xF8{}KB.ƭ'dp0V@;wd@hi,DAԃ"\>q'J]Vr+ Ο<{$k \@sl"ǃ7AyӲ:yw}/D"-B{CAd0q3i97Hx OO`N4-^/k<ٛ=qѬA@YlTF2c2]^@dF>A @3,TTDBh$w+ߊ)\T(dȵ Y2bSe6;aQ&U6mߢ򉅬R۸OL|_1ҿTu.YR wUW,0-~&uASIMZv4h ٙm\$*ȋ9#N4ޏ8yP8yƼb_,N sd|^ ZTed"UxyV'}Ke}$KR3t,JodN"#i7fWVN8-'R,3ܐI٥O r Jy!ۿ{y~q%ÈFm_( rJxg~Yt!-3? w* V/[{9Ҫ Dm![v^?ֿG#Pj7 e,iE^ni; 2٧GJ+%#owIzs'`5:G3`Jo [캜mI֯W;"0%>5,'fPP?;"03> ㋾U]jxm//*o^6'|RѯA2f; kPT.M~Ǥx*2hTKN$20o&3 =DO4V2B9js&Egd_v}9~(ʇjCm ;.! {IݾLx5q-ػ`G3p4SiŇl'w&m8o(L71[ _c?->.{-e6%O_"X5g?y}v!L۹sq`z<ΒV;ԣ,Nþhl1>` E0/q7Цkpz4OGcx4GcnAVp:nAC)jQl;*'WD%)$:B|{G;rC`xH䞛 9Qf'40'Urƫ\L҂̩и0ĞO)ǶӜ~x@"[:/p\Hr5$سY9[9AL|leZUxVMhq 9\X'H/%RI;G쮍jp`%yGcx1zpc gNhH rm:ɏ]c0i0SX1wyؔa =Ű[”aGc+v/9^H: ۤs~:#Stj,0o_Fxs) rs;Zg A-hݚOl "=ih{C^9W0|Q^\E!'{BiU}[KAROj:*`OI}SEHpLJķm7 ~,:VLhu q fa5)v ,Έ;,򖸆h7}`t- M7=  ^R Jt TjFYBMUz/8Jq5zxFj+^:}N"^{AԹ4A7h>zmnZ$^#2S"vqxxȬv;S2Tp5C7Ū:иNdB[{,^*:qVVEv؇"8<A)]O#_d+\ 8tloWp({7Win**}ؠ<3w%lGjGx#|+I3C)W4/ :l- 6U-'tnK;"uI(%lՓr1egv6D՚_H̏Kj:ֵ֬"OD?*;*,Ҷ^C2U+ZGH,qPlX=5}]]x |a"3jHxkbB3CK{l>@xkw *Σ8v< #?XA8 tXCj?p[b4bE58d\-wA;BVk"2è.rObL<)p?SIlza$G-(@IJ~LR, 'YN9c4\"JGx+mkjQan8lK?5o(Ӵ+CDQS39CSk n[R@ ϯxC-yΪp-q|oMS^F$іHgcc8Esm|?# E53]126JYUy&K<މ 7d'MZj+ Mk` Mlܱ&!bɯˎmTʦa:8(Ґ/v$T<} GEMKnMjoc.0~}I.j:_9XxbZYx"1p;ﭱBiV4W ˚Bb]6 RT#yVGj< NQPa p&;E}Hc4pjJM; !r9![|)]Qprv uxڭ_1fn 3ӃPH)pEAw G{>$V^N+R8Ze,>2ȈeNdm*O*PB Y&T3 lX]]%KS8O FAl-Dlsdr<"Nqnc(rrb/>f0|0*Դelmnqzmp>.m$x5Ɔ~ݛl5Pg/G b3qF)~qdX[4A _:\z;$#ʡ UݡvʞT7]v)kNWoMȚ=Xzq* Q^e^½ݫAc[ݹVSEƟPB.]7Ēt[ZLC͜wV@&{CKStKkjUm{\M3DžfndDo:b>=#0KOPcrwMD]]@,E!80~62bJ@$l=+ x#5lو{wC2gd|qjs/K "pbBp-S]LT|ƺ7<3S~g8(S$!k:!Xtk7#!j;;L7oW e< c'wurmuC=ʨ_ wPx endstream endobj 221 0 obj << /Length 2715 /Filter /FlateDecode >> stream xko6{~|sHi{-vMmb3Z=8E %GN\F @LR#p8/Caoag~}u=ŜrƋ'FD')#f]TZ Y*QҶVI1/sv~Ru&kEe~tml]KפNr(U_B)LǫoahSBP:WI_G?c~;Qoͫ!")&b =-vN tZO %h`%@vX0ϔ vde=a䵀n2RC@D}EAȼ@q-ܬ&S…Mzb$Bc@"h =C$±!BxO=)ffw혽ݕF'0Xu@zpoT2_¸%!VIG>A*e Qor$D7>|b"P`΀ȼ˳1ZFw3B ^NͥP|ͣkzxܙ$Ly7eC墢Wت #51N`6@ %5,AAaR| e@QrQ@5TT(<m FR8*cl8nCtkteO怋,-YN++[|Č83žE0#C3r}b APc :0 bXEMaЄ4t̖Iuiў-BaMY˹E@pB*MhlޅkjL -L tGF<)l>ڟ[cK0PěN?MB {=S=9»v؆kBJM(oM{E B' e:MsdiT-Vk 3ÿm/\w\s T,QbR?͓EZ$txo[켙̖` d K,yJݪzbVS,:XC,1Ӿk)e涼"j0<3=zd7  -Q˥ڬg_-I뿁o< #0t3e8F0`wb>?8h 9t瘙pj3=z 3Na '*tge ^ۮ-v\Lʵ6e hC!p>$YO#hlu͐ۺr~qz)x`q^R֍joGP֔dX%*j!\ *6xpg>xUg> X1LFkߠx-gc6?MOgp2U~j,߿˗CiêmU޽ھ:ba2LsaEOO!Fv1x߰=;YRRcClrR~=TVIgj>Ijn~p❙|L,e _t9봘YMB=/Z E)M5cmyk 1w)A" U'PuYMYj!͖YRsWhHpRr$})i$ 0 )-J`4{[ee2#s UvSBp4-{Pk[6gGBߕٞf@#۩rgn$mm#VUQܦwstZ}80^ǯ ~vzOC\D"^(?9"?u$o,{xc14pn4 wڭ=(?Bo_/Y2kn̫|rD?\cL]GYlRܤT>8Vina<饚#Ż'C"kZ%0={#ёzVaz6 endstream endobj 225 0 obj << /Length 2120 /Filter /FlateDecode >> stream x]}{Ѣ+?E+{AR4hz !Vmp$ȏ Iْ[{ċp9$=DHɳ[ͺoh?diMxW  3Dd2*+KE i2M2Qgg\twL20522 իDqf_'Li3RQhiM( ¨ ): cM9{;<i$D&T8IA\if\@OqYuWtJF.|Dr\D3gNA(S{Qf؄&GçR-z\}~x3ʱ}]@2 )`S:D00_ysغ {KA*Z`t&NWۦʼ'؁F,J SEw.9ҁC踶DN˔ЙH=6k.$63prZ]ex@g|`hͶ]Yn7CYOpm>nebgEh?5ݶ)"Z+Vo|QOO8"uk^cY|b~edRK{V5|o} W) |VmahE S|DDWHXH 6"n WTecnddoVґ\5%2,`1 ,' x臂z@qn‡Mv6/vD0{_DZlѶ5qn;{xڸG«fwg,^\3Jh%zD8Y0G (#8Kj;8cB N #h~dst [KA*ʏ գf%!C1r4 v[!{FB nSzpC Q/ {H9{Ƈ*>}u# `<,woĝJ ][ LKҔpȀBfN4QjT8FS FZ]{|lh#8Syvpn M#awxL!bDh6lC[^d޿Nk?ZA7g[\*A'O" 9w%P> Bw=S~0a4ۉ#J:(ڧq~!Y# r4Spbx$vQ־s$f_ɨS$]RyCfϵm<{K,8?tO?/yB91LއQvb>yT;A&g͙v|Bl;E?k?epsX,b.# wȷ=3ڧKl S1rb< 7گ.)Em_LUSPYA*hށI.>o{6 /;vєRˤ<ŮKf+vY/^o\[yn:/v_ukzsX^@8 3<3c/ӱ@0xP {:&#O'i%^@)d)&cu LLb3'F9k!K}41T Lҥ}sҾq_/CpgO}& ̄RM3t9_^(͘.mAu<;Lq{w:٧ endstream endobj 229 0 obj << /Length 2386 /Filter /FlateDecode >> stream x]s6=BPlyU؁U]MsSB/vYC$tYY6k7^0nhUks KcHœ>ӱk0512iDuRi͊MfnҺ!jfe+VkNIb %2kz%PRۊE5f3Gw{ﳒIS!0k@B̵A JX;L\EEh 1S1pfr4J-QbVnw%zւbҿ"2%3]Vfm:0yrG<` "-wOu8h8_XOō&j]u}G nH gve3ljj*+u371hSrAf ŤP]/,N̓Co p]!M]Ф ]S}*0 __pm e ẰJJ, !D,(cL1Eh',-Dtc<{|$,M瑊$LNCLHzc=bW (z[%\=/kc?c-Vl's\>$JjkU0KXzΝ RgGB.dt|{w: ]CCfܸ cClHIfa!x< ]A v/ԫYgPIՎuale#M?}w̪I}+?ҿ҅Db'…-fb11`D*s8L' /e0;W$h㧸.  ~MRßgM[gӵlMGr%Ky"tD7pl[9jvU#|lvՓC vǷ>FHa+dNPlOSatg5 ~KDJvhq ƺ2y]tn:lUc 1<+-84_,Avuu͵ Nxۑ9>1d6J'B1XW'$N5?û8Ez*\:f _BCr̎q"IGpW8˓؏dU0 endstream endobj 237 0 obj << /Length 2809 /Filter /FlateDecode >> stream xks9wpN7Ni;}hw"A-(dI޽@%Re1xDcno_]#E{rPu##P,k!Ǎ{A8 6b$fg 0Q * *o)SAg/<8]bD1΃aiRlVi'NtaUZ{/aYVCn`%'X=rȓÊ1G"4/ D$F1꫓HP:}ڸ~ޤucPcҵc[6$?_%=mgi3crH^'M͚tk t3 w!CP ߮'7*-lN禾Jeڷ5K#,\o)ۺ-l\eekKg˜]At~Gos~*IUb΃-$s9cQ*x8AkXI8).\0u Yh|0-\+HoY,, k\/+ydeQ;4^u!@RƵ4{2gpyb e9|^9'wbш^?GGd͐FZ̡ Gnp!VxT%G/X"VʔcIzu|anHYS(%&(`":.]f@)_ӇS$<$؈BbH={Tڱjw#9dXYe˕],rѱ.&Zu:>`2!D(g)|e;Ju ޒ*#8($R]п6b<j?$Sl(jG"B_nWȭQ;bRFڭ(^.As~=%{r:|'uDxE~ͻxԜPNYz8@{3[g'iyںCʻCcYԭ/EZos:p::vTky~Ss-1rbk5[M~3AM~5dS7eo;9oY.Rq/g߉A9DCd1*̋PٞNX\,;xA.H%4n˜8Njo'N7SYiq+Cl6-enG\ M S24 endstream endobj 243 0 obj << /Length 2776 /Filter /FlateDecode >> stream xkܶ -UHh'u M|E $) K;!Zi#iQwCi&apK3 Yp38+i*U`$4U9N"!|Q/2æ-lKbC-p, CòFhonSӷ ^,w$Q]5n,Z,cF!Vu;aAϱڮO߀BGigݬ-a(4@:֏Xݮ-iCA /F~ Ck73bySe_6wSB*ݐ~z0 HԶm(f3#mC#oՂ0x'"h֭<))3-jKu4ͪna0rR8J؋HQwH#MŸknGX7k' `f;Bv3p@mT:Y%b`D%Ex+ -Ŝ~rgZՋ6Ϊ0ϿRf{ 'eYծ }B kۮڻ}q|?emVv \z,BB^a+B)}|XZjwbu?GU|acy(5[ u߈0U?Z*'{ 2-` Üsm0ߑѱ!8NXbG VΎ<p`wV9~X`O$Pۮ׸ޏ5c1cr4 < a_DD+xm:3I0̀}&GtA2{+RjL4p̕F> @\)RP8JNt=dbǗʘmBg)ek, @EN?h-}tYm9{ `^ǩK%Dُg.q!̦.l䓵wHF#>0 Sj) 0.cSⷱX/p|qu`* -u`ʅ۱Almge'.p.`bG{9\ݕ%4|RT&̦w|ŔyLyR=G穀n>h+OJpR][r'5A¡^@]ࡐ gHĹ]V~|؉N~Hbt;T`]KLb=NRr%bo$'1]T*jضFg8&-"1 eE{q2ҶՄ00F~`7\A{ژ9㐆>tK@a޵, fSov).sYYSo* $neQ$K5֭%+?ޗ 0xC57+R<~9;p铘3TfnU$X5jcXekgbMɲM]lklLcwCbh.g]JOLl8S#wߗT)O_{ $6\@=6>Fzd0vKXAà tt uܧj[ A\ e{u7ɰ?hgJY)v5 Z+xyG-d`_l#9=5rdz` w!,>c* 9) %DS!R8ұ"?UR>J¯Hrb&s_'ߞ1{%(_M^&R(K9%b*J47IĔǞ6W"7 endstream endobj 248 0 obj << /Length 2617 /Filter /FlateDecode >> stream x[Ko8WEH3S9$;qA$=j[;j#x۷r ;(X,A?& %[˝W˓$x~~fQF2Tt>2M24!4,gL9qSīɔquEe\U8U ٺ0h?*f.;X.w<rĸb?U*clhP¬zx S:2wi$TsY^W i)enJX%=Bym/SA2!)9Q/ v$F=f՗ˑ2:P1$,SW˲KF2̲*ȁf%i+r{y[ZeS?Ww^]=mٺue,,2,ASnT0LĐfojRr/K}VOCKIjؓЙL1DsԾ|ʗʀ* ̮Yc8`^;?֘ۼ?k3wDV[cw+m;04\btBa NIvxcĒ,6ON~{qNh"NyAx)Zwu҉CAz/OsYR-lB:.Oe&m+J!v$ZRY]ҵ*gplWwy.Ja7WbpgR~WM Xo 0ɠg̞NGFJ3,BufLtAz9 SF|-[Mu43}^Vv'^щ"IskBp61Pr3*zZ(Kz6>k-0jtlG!zS5P筗ۛ te# 8@{U&olTMYT{4NR@~!:C71JTI]'',pǑHsr4iMtm ВlhC(bW /apj\lv;(npȽ9GY-nߑ;zTRTQ RVQj*;ZUOvWz[e}u:$ #юn1>}?vW ;wZ?`okǛ2# 9\ǜSC[lS+4Ï)q{! c;j{_,x_?Z/si껷ړv߬*3OK-kE?smwt;;jF[Hnك?\6z$t/Tz#7u{+?|'xq>> /ExtGState << >>/ColorSpace << /sRGB 254 0 R >>>> /Length 31089 /Filter /FlateDecode >> stream xɮmr?_vCY]6 =jj[4,{ψ1FdclܳoD̑kYDF+?_wj_~r嫔ۯ//+}OJ_W翿킯՞*i~9;Ze}QC9D5Zq59;O۠j-9ϯ?<׼G*m~%8Z_'cRkeR:n7)m\Mn%6(\)^oy~(KoP{U=EJ!~mZb _m;7ԋ[o8l{=KvJ;^R?~Gr%mjr?bgmP}KNo~2Tox=~R߭y*lEۤprE7߱V*1q|˚| K~׫mp5z{o}qE>T5}yNK^J9ڋw }SN}ߒW|_p9Fg|Kԏ_=NK%mjrw;mR9"֛3f~ ߋ8{=7|H6O;t%i6rE쭷~3?=߾8ޟ.ׇN M$XR6&繷%mPOַԋ[on3cl=i_6בvm|$XRh#9?\bm=mB[rjJ7~%8nS}]6]M Hʿ_HYVTժ$8f*mjM9˳rx~t˚SlgٟwabyZH]Tܻvo}q*^6ַK[oc&μQr#gw{~>zl5ۗ!o6Gɩv`-Ump5\zқس_&8ϰ򬂞WY~y#t͖ˁ%mjp{s>}AjM9"1-zikFkMK>C|`Ey?\9}akmFt ؗ83' t~F_8sm:XQϼQA]bȡ^ݑ=gy0Wg4j(3`#_>Kkf Q-~v}SNoi>gZs Nw̳{E˦L!f}Kpm>GY%z{wYl3ܜ훝M-C6ǚ'Sq59l[m`۠p5z{}s`3g,MjlQX>7fym\Mj[նS}C.}5?|6)v5fcRD?\UۖŽeK Woɡ- (yw[nΰ&Yڐ(H*y^`Iu㫄ܢBM9"[{d Z[Ӱ>vqyR_;W#֖;;bIճ$ǧ+NTߔS/bo9=kmܿgjBOd6CeQ&l)oɎ5ʊSmbhh}S^5&;֛|S}6R>_G`m s>Kv]MƱ黆/qsٰ ώ#ֲ6<;ɟ/(os-r[52yN}SN}mF]plO[nS;/l]2h#NunJ}SNox3lfy ;ic (gW'N ?myj[\z[KQ}9nz٭$Q:mFi#|6WN)^z< [ 8gqbKY}x6&Cˠ-W$#, 9es3mP}SN}w,ÖFF6`\%Y#(Ksr m„}mp5z{̶cqؾv閿śu#ߦ]`b۸u`mmR6%ɩ)zǺ@XN|nNAzvR}$7I%ފ}m5Ω6@6ېm;7ԋ[oٔߩR2DUmQ?@y2bIu7Y-W*M9"=Zx.R7|b!ja=fm!ɌŠ*: /FIN.z{뭽km;9lvJC}7ؗޚ}qf8S쫪ܓ?gKHP:K3DVT(+3IڪjΒhKp9"w3 37IYp }=A8ڢ2ŭj"z9~KG&Ǘ⳸XN!%u}A`f}SN3%88z=; ;ªnB$Ӓ77# +%8͇faj&}SN}}l V>$4f-revn|b!vj8<}'㥡)^YtϞ|HSc۴K糚Da>XSg*K;q5}NmP}K^u7߱gi7zL~Lm/mg =7AXR]3kp;( [[S%E˱o{bif]p(;a!V98=&mcߐK/`_zsog2pਘ[#Q, cM5%mjrmL]e)^zkntxu8Dd-l0<@iȋ,+kwmWxoȥ/un)1q`[o33,<+(bm|/,)oW#E`}rE7˳8sdss9ԝ÷7ng=bIrm}>mrEKo'}?1Le݆Y䌢y#jȻ{ Jq5z Woɩ):knpL7J`徟k}+>bIy۸aj)tԋ[o-8v6XqpS81o. g3o`Iy۲[:gՆ؎φmiRNYvĬ$i%!Zs.>J>},? a6(Boɩ)Z'7?lJj?_^pX *][c#Nr> Jk𽎜z{ ~̟+[i?\o!6'8)(oH!* -6(\)^ľ;fSnw[g_$ .Wfȓܕ-`fO6)}{-oΦ5p`HnqTKpjܪJK`&׺YUoʩW?qf|-j.|.hy.mIko+4жNќ'a' J!̘\[Ɠ=߾89sSR=/)oncT|K·Ͷ7 ؗޚ3|0Y>cƞ|t0c#"T_ 쀧ۀ者;|Gghw;J95%֛e%9U۸1⥸nQޟV#&TD3sbz{%y3|?80C-K(Yl|͓XREqØ(O۠p5z{}6y$[>¦fKa=αNN+_l+*oq;M~FSxoɩcz?XLc8\G#(vW`EXSEX ;mB[r%쭷Ʊmy {/O2^GS;`ImzB[kciV!vƊGW|l !j.:/r9"]E)UD/"~̉cyGJ6>rE쭷}<󞌨h~l!n>XQKKpkkm҉GN>뱁bFveD(|]@9aI͈g[C6(k9"[vq}qLɛnitY"(Tz!`#l5F]}C.}-_8FCgY=z.CXRw lqˊ.k)^zk_miPӾ+<p'3!Qm Rnfă5#rB]M{]Dm-9"[k e-K2p!9M&'@4?l6ʶAa͏%^>~ssﮞz/R(pv%yǾXRx bog\z[e`=D7w,\oi?O_S!Y^N&5a̶Aifȇn;V|N%|Gi~`Mo[(oJQrE쭷/Mפ8>rMm(}\ 9o5"ZZ^a+vX #%2!# 1*llJ{d3H}Ԛ?8#Yʬ6(>rE쭷1Y$i^(v '~ wx%U@eb;rE쭷LSǂ}m]vYiyb=V|SԷԋ[oWn?&Ns'ÒLD2_?_@bAs빎.K inz} g{}|2+)V9j)=7#JIةP~JTtM6)\ ,]z˟; B ̓"iHG^ OpO6j;k}C.}u2e VbI 8݇_a/v z{}\taRCv,m1}+*0q[cQߒS/`_zurۮN ϾVY D^#yeжqYa{ͪgԷԔ[9'?q|m)v<+*@|B犾)^>~ɽdSPu[?™,(o6VT 8{j;MI}C.}}ơr'']Iq⦫y&Q)2N|]XR#~8X8~' ؗ޲[&_Gy?8a1i,fm)GeGᾰס8>XwSoʩzﵶ琒8&J?sw'‚BZU7ۘM@K +v[rjJ쭷dFM&C8,;!jG(߉r Kj*6!8 }f|ѷԋ[ooX#|jߘŶٮ<(oJFtaAaLFߒC/b_z+xyBXR޶v{kf6(\%^zΟ'WA]YۦEK%uAʼn-ccK(\;)^z?)c Jj5+ݙxSTj(WgM9"[M~ɹRR{/y lpRc"?8( ^l;oȥ/88\bHNiٝ+#ё& #Sr_#ʛ K mkKX?J؎l1-95|pHk/,7@!z>]%8N&VԌ|Jt8oКmPh}KN> yʉnstX')~Sq]v=&hGN>>}[;A~'2_c p߁5#8~` o-9:WYu^7Vdֵ7g#|ىgF4A]rlYf]X)#z9z{} t)8$]Z=+ aIc#F](7¶Aj-9")t Sq>`n:o%ۢySnm|9%%Y،68MGN>c,e|T;:r`ImY"=b7Am-95%;:eܜ `ܠeU$o&Ա#i`=V}2|oȥ/[]1(QpZDZ,N|`E9KUŠ-[ lp Jmы[o͕paJSԂCZnjv݊(~3G6yfD J59"a<;n/8q!yvKD,r&_NJͶ蹎 X6)a,՘}y}QK;.@f%}`o3`3F}:WXR1c'#糈#E|˱oXf'2̤7'2J^VT ˠ886sX7 ؗ-Ng)`f0{A)Jy9"%5c,5'nNVq$/MK5WfAՕhy'b%"8ŶsoʩUl B[_p`G7 ,ylQOL]#FԮ2c5X$,*vZLrE쭷 sA$LZ@{\B6'!vvZiFߒC/aoe𦋹28-ȂO'WlSV!a#y'*$NE6)\]#z+҂Oc-SU"lX kGkS=ؠR%bȶk-78[o/P"o) l{?2珊}c3B (s΂n:R۠gȩ):ADz#_9q%acu`軐3Q񕇰s7ؗ޲#}V̟=¸mۭBSY;b Kj*Lp#_|L.^zʆԬ)yeCs(W+9sgdE۷cGl~6(WZߒSSbo\hǝ*g(دQ4Gr 'V-q|;XDȫZrKoW$+ss|rBVpFI 9/ p̀Fإ|\Jy< &sF {}cv >7sb1=0r.3f5Yo@Zu#8 S.ZSDߔS/`_z+<ȷ9.[ڐP5@%i"_p0O}KN>9!,ScF/n ˴|Қ `**Hnsթoʩ|.!RNp@䷟UaLQ~}&x,r 'S%8H.4V #&SN>+l( h1i꜂#`:^qa*[DʩoGثoz̢}{C\;Ip_^TV<)J!).JdPb/6(%ow~[ $u~v9siۓ<Dzю.J܎Y%'܈#Ͷ3;%^zkv|{āγ /8mEoG,_mYdg&lo6x~8Rv8ږ"# KԪmP?D@95%''&ǟ, lgAf,ȋgnۖŋ݄QvFۤ@aoʻvM3&{q 3Æ]Ԙ4&{^-ؘ'n%^}-8sմk-ˊ=.V|nNlOyc?ㅗEZd=1bdg0W4ɳ6(}SN}8%^ŁIzX/QZS3TL>ߣm\M]|2h6(}S.}ws`!VU[ ^nWPm[qϒkNJԓ;)UuEF䒄L_Iꮵ^GSbolJ8>qW@z7.iۅ6QM@Aº]( TM9"֛/&pRqW5˟y9_%'aI:'rKs.֙-ŹXΦf!\(|YJu꽊SQQ(w>^7 ؗ޲[nX^$ +O^`Ґ Hl8^-7RߐK/`_zk=6)sg#R>sw[,i 3B0Gq9`ߔKvXt)#B_Z Ova HK)yMԲqNxfh]u7]Բu](yȶA .Ovɡ:X{Mɶg/L|X(𿑼!XQ)23Ӎ|jF M9"0itj=r~[N S^ SYAaQYmZrKo|gὴKMlXA9MĂB۸b^N۠~h=ؗVyah-C+KA 0nY񇩰۪Df$vꇖz{}]fAVfo)څ;k.O=qPJؤD/ȩbcuvYlzc'O vWSLphPh[g񥗰iTm3vԔ[+ӕO ώ}dΣ" AFF2K96. ޅFۤ0RؗҾnKh8Ҧ{Ao9deoYQ9dߑ]_[o/]~Ge HhC>`K!VT;ȁǣ\}gei[íR-&g%mnbK;=qU[ *& !lE-9Bp]Vļ;ݵ]bVwbdyA`ж, Nlj #SM@.M}}_j?3NdE+[fQ[frO(r>[Qet*ψ7ԋ[S" G&wmOe!UDɪZwxK*EUr [m~z {}얶ը5rA` d,= y*b%X8XF)5G.[9>7'*~ˋSߢD d#"8s#XyP'z {Mۅ92mx>fỲau!YVT k8]XvSEߐK/`_z.{dq+3kCAאw#Tx_m#朗z\N/5 vkU*rR*(’:qA\؊ڗlژI6KCފɊlp T{ǨH}XRǫIv>mľ%^zG_s?7dXF> r)ΪZ\PֺjZUoɩڋ$\v{TDLTEe;%l}k`E8 _R6}N̾%^ Hq9q "~nGKj_PZD5ڃla亂5sD+0ns9%VAF$x>WЏB6n4(ԓ|XR%2HpohM W7RN>9X߅5IjʑaQ fTG6#_XRqD[`ߔS/bo/`a?*.rFbqxr=vkM WWEh>ozG-k[c~s6Te5[̹f|&e$PUV0Vyd)^z_y':.Υ'<69{;’K N'}SNM rR.Dg&s_@+.iQ AXR'9 cM¶¾%OF[+}F$rh3C=vs <;öAj-9"[QWGJ5E(+j uCv;uE7 ؗ:Hw\rߙQQҙSqNbfggߒC/ao5>ҧQh̥*#; (aPB:t2Z JQ^GNM}uwک]+<7f`ڄȇvmFL^:kYY]M^Ϊz[gY9TؐbÙg;?2,cFv(%6,k+mP}KNM>㘗'6؄afl>pCq 3ږ9x&oʳ 1O)8p7g$ӛ 1I6,/=܏vKj*Rpb5PJkm[rE9mhzA߲!eHB~JF~K <ԀymP:ߟ=ԋؗފGF(YǍ6"CswN,!e4|J\XR1f]NK)^z빴n蹴p'f[N4!ayjK ]♫oʩ:`,V:ܜ9C<(81|"ZXRx9GdR۠p5z{ql9cLqܱkbL^X3CQEmPZ| ؗ:KjL~'u 2zTVFfQ{BTXPcl2=je59üZ?NOն_>͏#u#1Ykb6 j [}P5f#-9"[dw]zϙ;"vAz]Di-wj`IF:Ď"6hlլы[oYLTo|}W=>kpK둯ϲ{RB5MXQs  ,}7 ؗ޲["mR|ɪ仐}|fQ-z^wxKj N&5z{-ߞs",?`T`.PڰoCl߆㹈zhsQߔS/boesvk/FP̗ݭTE}xgoE!VTS;qPU؂x0]NzUŚ'gǞaG麍o˞r Kjũ8(nGlE 'z{}33< 2SxMQQTrVT%Xɏz{,%{8`+l/l;T$VK@A`\v`ѷ ؗ:CU/>7g*&rOK!Q;XQ="iLkTSVߔSjcrQ*NU n(} jAhaliTȡ'N@fĂ.px&Eh[G>>T}F12m_ePZj;C}SNz,)Nk~rՁn2 V+VDŹk\#~_?‚,UP/9#nT}q2NS7IEeMWUɩ|Tzo(XU|`KF,q a S۠6{}bjS9X=c|BgUԏV%^ĊQ="MmҎ:#, ~bNP4b{ ͐waVTN9O۠a}KN}}o=)8 Srd;B2F5`EzI`&U/}KN}\7̩BD{nV8̊[7j mjrzG Woɩ#Wچ 97~n8}ݢ#?t388"ێrKoM2UBq kp,(4z6cmP}#=RZ߽7_ҥm\ K'c$os\rOIXR'{$90.'{$z {}@s'g!t*Y5RoGWZ|G,_tĤWCn'V {}z*5 հŰH}ȼIyv,sV.mW瑇'r_mG\BuC^'.{ 6{Be3T"]VBnVԊxZqa Q۠~Ȼr=8[s 3xp&qwTQ2FX{3$t xێzw[[6˂I6d^_R9Lm)MaWDqݢXRI6qg 6{2k Woɡ_I6&L < w?7ORc L; KKaIͻs^\Oloɩ޲[lĴυ8q9쓖Eri KoUv "N9~q /!2EXRh[' b+Eb LlTxh#zX1fEޅw/fX@xPHigeW҃ mՐctaͮmRZ|ؗ{af3g!1yG,99yȑRXR3<*yv5)^zkN+rmvw(|N FZĊZ @d88T#7uBzVhplLp>£ j`L#NaR9kT#^z3dfR:qp$*Jm$n/T ˳8. >tl;;c.Y[zz\=mHimëUXRE^p`$fa4EߔS/bo[H6ssnWXxiK[ȧ KF^[q86.Qԋ[Gp#7xT a?VXΟO/p)bAmSO‘%V.Soze ֳ-AMXfw{A N86PSVIDŽ`_zcnE%w߱yCJr9 mjr` U}K^de^zXdq A_"1i> U]"S}SN֙X3drphƍʆI$JĊJg)j1&g5S}}@aAO޵Ҭ]jG #9=IkM9""sO,2Kx`[VX6En̓ XˌIiXҎ^}=}zq⊠RKvt}LnY8q`+l=+z{-eQ q< nMwìRc-u?4#_]ג5B/GDۤpuS{S/bo^nf 2/L¡UI{-.G>aI98n[>GߔS/boӶηOW^Q9ŷo##*"SYpPܝvGߔK]hzu[6ybux.P/!rjVTwexqpGP%_7 ؗ޲k(tplj )-?>="yGfb{‚*z{}|lyGc`%tOD<Kj;&NHje֫z{}۾B!ݝ0lƚ;b)u}rnbuμϾ%^zxDL[Jt!P>'x@+DY`}8[-7ԋ[o9su+3v8kU,Ai-ni0QXR=Fpqr[m\krEoEuCC/_\9Mumӑ#wo +C'?۲xmY},rJr#)|NŲ5S Nsva5j*gn <5߂^6i +;|D`IE7q2+¬N9joɡޚ+=w 'p νZ9kqrZ9%uI-!,ξ%^z>QЂ$Ζ눙-EgKQנwd |QXRS~pkAbmP}KNּ¶xa~*5yop` tvRrE쭷lJAL!Nxoӟ; O<0sj'b E>rK?vZZ"sV$j9CM v_K%UT=8p`%y#i~-9"<;KGJce-Je#ɄXQQ78͍^[ +1wk;ؗW~s 9H܇fD*Jw#{#Iz'6G* Wr\[oG:?'v3j'J G‚J88El.NX}KNM>>mBBm:%O6drtu`tu]T%<coQA,\@&,VpP+ŷj:z{-@~VeeG;%#Q+"lp\cۤ`SB.XɇYCܠ9%KYĭ=y֪~?ĒZ6 `Aj-9"[5E/y7h~z;-ʁx5RQS48`@W%joɩ/3CprHbNq5lV܀baL|d;#MqvnZ6(%^z6Tǃ Vb(miC29 mU 6XU#z5FȝT=` rfQEi CϏzaIm<8o`fk[rE+sq&T߸Ity袰ߌ,`Iާ؂;P.Jg^ rjJ-]8kܻobmk@iǑcT O q<"# 5v:57<[kL_W!qXÁ" 9CW%ǁulK}ED Ԕ[o#o%IFbGF-a~zțώ%uJX%[X|ۭH9w\峊N9'$Gv aIZ {nm.K/`_z ,g?yT/bR$!1zhgTRG/`_z5|0'N95:ZWz.)ڊC'8|JBƩxRx=kݳFmPz.ַЋؗފ[7[ _->Tc6QnYђWZ'VTDgݽ by\z_\8x:r KtW=x5 {-$K??9OBHk8\,Y:!KC\֓yDNjMy5)a6ȈಲD/N|5a~b_ NN!*B02K*BbNk6(\)^ľ>g|vG"g8@;[ b1zaAm푏W b۠GvGKʩ)wEMtAyIMQ?\%pr"Hpivօ>D U+N l]J߻.’1qR]m?!^>y&=[QSF.|jYV;v+*^}ޚqq }K}qlR‰S|*y χDy9cbS6꤭oʩ/9#r]33V^Di#څ5"Ep2c @#r]oɩRt~q_ӕ+3- m7BE)UwzB4z'6q JCbĊjQtTzvwgMyWT^-WtMK.c P (84p+#3PT 3%gz{a#۪>7s;Ry򍅴K!)C;r ;A@9rEK9擖W'/,QZĒ9ӄe` JGsAN/%8(?c 3p9N  V)]#J5jQߐK/`_zkJpUL]o,É !mY+\7]Ϋ_z[ɤbS-ךuem`%()[#,~'8(`n*WrE쭷1~9(<=84y\F*ރ 7Ċ#' E57ԋ[oassM^ TV5rdVT$ NdKm=z{q -$D!YfcZ(g13bIxāMآCD9\z[G,ڣ8qׁ*z!6!H1C9΅#8<"_jDr]][ocQ}uD8qWukNvE{(5" 8ݝ&MmH)ϑ71$Yn5O f3X}SuC9%"99Ob'±mP?4|U)\{}} )J =x"5 Cy-/AQ^Gmҷ`^B/aouWniјp׮YbE%5uFN? R۠p5FA'4Ȇo?7kvFTm`]HH+lܫVXQ<pk ,#6(ig&q/ )1rJ8g;Rpk;޸I8]#Ʊ]0'2ӛ3zts3"8i=r"'8ЉM'A:S/boOp#g -D%L)DՐ~Ċ'V%%pcߐKj[HyLSEHO_TeRvPin(]ءt#NQStNvȩ|6P)Z3HpVcBT;yVzJkh;<+rE7{0PC48}6h°|ޚC48+%pP=CT}KNV4xԉPUqP\N`- g ES$+ lP%)KlBc ʟ 'r[oy u6wᲨMRܽ2l CSKj*Hp+ >9#+]b:G/boeDķY6mz۷)M^N<o`ێۏ)^yoƈm8ӷO Wfߌ v)VԈm8n lE=]c[!^֘ܰqOΆ3Do)HM R-7?O:7,) CjR62&|06(un:oּ|~p9BJF ?~P=䨥#,A"lE%M9"tjV %mQn! #V%̅GJq|F5@>I+c9r VTԵ  զk}C.}؛% q!'>\]73<( Q`Im\M#- _%7Q]q3k~`dx /#T?mȁOۮg\aߔSl8jGE5>8kbyf[O8,#M<#żFl|foɎ)^zT0'c"AXe8(AzaI9\t~^aWߔS/b_z<'Lq2<1(nܓTh=rF`Lj8r>r%쭷EQ 3ߺ2)&Oʑ+XXR%X.6(K:rEuNz\I G.^sZWvF?6iGQXREyh a}S7ԋ[o03[ /1{>E=Hy)%5bw/K+36@|I95~ Qtᄡݛ-YV%{yW)U/'zjh;ݿG.՚#36ƱY8KM6\%vS<[XCU923oʩޚ__##gp9Ɖ%u&!g2؄l;]Iзԋ[+{5\32>' H/ YFG QA6Nic۠p5M~`EE>$/[7 O͚Pb/Y XQ6&Dۤ# ؗފ i%ʶ*vdB!PT yFQLbIspV߹ Y}KNM;Ls9" GL*dXQ18X9&#^>[z[qھmXXbST99 %H0N!&-jGtg{c/2SPjE Tp P>tء42,v,6(=ŵ<,ozo_Ͽl͝' _|+ʾ@_|a1j7?~IKumn\i$ L/.xm?yIxo k ӿi4OO//lzX- E_?0DkA9gq~d_ÿaPH%7ܫ\^pu/Ⅸ| ឯ3-m_3_asۨ/gQ=9{?%\2G26Ag7q< ~h|4Z5aێgǏF,<-Ѩ= #o>[ rbׯ,ٌvGc}w._mxwɬ_N=oXg 5w_ղ߯I~?:C.3S=a?Nm!XyDaa>  'TىDzn׷-s#/%a^[៞c~tkߖf" [fL?7lw=3WWxk?Od ' ˂vSPp6O`ϗ13Ƿ0 a^;ߋ0%&G"]Sry ٸ|l@@:~ 9= ֮gq0$tyAkx="-R obC-~cl[oI]ql|?fa|񆿧qY߿SP# ?4댗uߟP)'q<3_JaOmH;3IJ'͇tzJ&~vJ.v \[J BÎ=? tE9G>V{P!{m)5lO-~Wy4iuTU]3^}-ig|X>vM)7P#>1Q-^RA~Ьdhۅ[TB.JUK$ 3!xuUw:|t'"s9Ho"2m忏1 xV^뭺 HS|Q fdU=?_c?O?~!B wcgc=of6aAB.D>o ;vdQªj]QJ!_yev3;-zWUW wXzg Ww ]4~3~{ ${݃&l}Uzx+)?TT/GfuԿ} 48z`ɀݔ0m;x`v "f"2E?{q=ٻr>suaV1?yR*Ԣ6# I:WϋLc|HJL؏CkCvЯ ߲~ }5!^ /0>d!ߧݯ]ǐ7ԡD퓿~7߬([ׇ??_7/,D#KV5KZOKʤ^Zkǂk~OFq甴^ݘ6ǯ vQ `r\Hf-{s|es;u=ħ>\yyUN{yT7xm 9lw/wు^*?}F.Nw[K~ce/Q|4zUd X{5_U~`zR՞+ TX/*L~5DEs}ņR d7_pfeV `Ks=$8t:Zߜع:KO8~~'4d'egvhbR?ӹ8jڞut.|K'-崢tM>8E< 9eN@;>EDG'z}qwN 8_В2-~iBK-d%;iɘzi ZB˴´-xhJU81-zoZR-)V@KL %2CK"mT5Z]=hƴ%Z%hʴ$ -bU;hɍyZ7Z2/Pm89DْiILe%cLKAK&ShIwAK*AӒ[FzDhNix--ϴLKiEВ1NLKLLKniɥiZقi (hIBKޙԠAK$q?MKiI%ڏ%7٠iI4_hjRvpZTT/>GBE/ӒgZRMK%S=0-.p#hiiI?TS?hɊhj>Li~\Ρ%d%QӒp'h֓i RВTU2-#ӒKqӒZY%xВ0-i-Y$a% -YE7ZrS2-Ӓ,{cZr96-iJGLK_AKX-Sշ%ʹ Z%մĴд-hIBKh:`bϓFi+|L-)Ӵq->Uߛ\_hG+hIƙԩNВDВ|i=tCKT2-ohIwY 59|ZRLMKAK\}MoMU%UCВ1-֛-i;-)wВVLKhɘV@K%՛;@kSٴ|Ӵ.$}Ӓf-Вf|&UǠ%AKקh % gZbfZr|^xv<5hiIG-J>eZR]~L?ӒVצ% -Њ%ӳ1do-~2-AgZZy%whCKLwDZ~C@ӒLy Zҭrˁ}lz[Y?EֿiɅ}}2-?ӒA-wmhI8/hI;*G7-2ӒВ%Y}Z-ɬg%!>AK~hX -AKPSdv+uii j2h]\ CKp1ӒϷ3-^ВA8kZВr%~s}hɴx^$[ -鄏% gZt!MZ>%U峠%4D$gВ\(BKВZ$%[,Cmb hLK AK-qz-i t Zr84;%%%j-۠%IK Z%zВLhIkNX}y%ji>zKvt>^G[6-mzZrl~Вul:BtZЪXMo :dW/ӴdU}է5Jz?p}Ӓi@aZ2ZPSJoEt- 5,8zKM5-{Kƽ%pjd tZѠA%;;!hIhA[ѴӒMϔMWOo MX-2yI0h%Ӓ[״'hɾ_opZ2{o1-YՎGo{KfAK\2-YtB-Z-%3Dt2L˛[u/Z i{%ݛT[{'hBKVEhɢɺWhr_DK\}6-} Z2aCԪ?ɳkAKޒm;3?_(dFLo 6ВmoMXϧ zZ42-qodahLZLђ}}gВ'[EoIvrW>ZZ2%wAKВ˴2h#D%^[B6jZiP֪u1U/-d Zb{`ZrhG%K mhI#Вe/;c$zQ%;Qui}6g3}4-I坖B!Z!S Z{8´h+% ВGEK護oZtӒexLkм;vzZiWsӒ۴+hITK%p޴d;Ozg%N/: ђXUTg% -Ijh^1-OoIs/ϛ%@Kv^WzLKR\$%xZ2Z{ϩcôAK{MKo _zK%c;rzKh%-qhɶWkђY]ǚyS<-15-IgZl%Ӵ_$AK7-9yzK|[REKS5]f@Kn?7hLВ M&ӒJ9jrb>Goɉ'%G;zKT->u>.iq:ؕgjߞ~X> K~?4_}ϾS+F{~539wЪ~͢ݏgr_/Ͽ_,|zy~5-.Ɵ55|&?}~O?v -A: endstream endobj 256 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 275 0 obj << /Length 3464 /Filter /FlateDecode >> stream x۶v?ua[krF8]oHQvlKzðF(HJՌϞpoE2KXpv~94Y$8/g/se EY<an4((t.T4%)eVg 0-L:[ӹV2xTb4ciu?fwAJf":0 'F]~W-TcVbB}zV5g(mZa`/?0(mY8`H#U]GG£pU(-ߵB lk|kik$7zo*X3uO^f(~-oN8W>q5~xh͙HtW8FrN*÷,֜;{QI~yU\I7e>WvcKapvV}_8v{W1(dq҆Y)X{uum/O3vuCQߜvgb8fֳp!U:s.O~>711WtrWt" [Q;Y(ȘJBBobn{~<I ,%"!֬vybʄ2 `㍹w{j =zT n M86aD3% !ȳe J/>e7 .Q >=r6 cz)p@lwĴQX6o{v,fbBF>~\؊{ʦ-m~9*L*&aO ޻w7H~ bGt`a;qSRpp&C A&4h`. amD|9joZ'#`. ע }RߔQآCȩCYX¥F TŦ"% B"ue AzQVnX BiZaSxɅ me:^fx|9Q&DQ9rHүu͉f ؾJq6eO׶mYt-Ƅ] xO2%ɠ*U." t /Ctبnۺj eLOB+$(h4;[oӅK[NmrlqgQ^IeQ` b@@N$Xf@^S +_dDT" YL^SB(;\1Azt0$*,;*?1,mQ &(AfxK,{ }2xp]6ω}ӌ,NFkfC(93|Wзټm%t-eQ oV縺BV(W,O/4X`m6)s$Wh6ANGtHI-u`xIB _"w\0JvOT@P ^T(rY`N.ޫӲm]c 'W[a7~`Gn E t D5Ժ#n彳d@ 0LPN*m,%D;ZoLw9nSq[> ]^*k6$OeJ  Aep}IYN`n3oyY3=$bܼq=V"qܠ.@ ?cEE&X T ]T=7 ,ޘxPcON ."O:1l/4Tʕ,x |ꉮS"m>"#\<pG{ؼMPI.z #֍nhh`hc?vL"\Y22'FȖMqFthHE{@| %-owZM<՞-(Ik\yQTM ccK [&غ&Q_"}PzLa+O S0-~ endstream endobj 290 0 obj << /Length 2222 /Filter /FlateDecode >> stream x]~P@pHQ?؅ݸh86 ȕĚ"~3(9pvfv>fB/W{5Ӟt#z%0`sWtRovWuUI֋%Oܔ71΂LV%&WQi4K+ר1mpcھcZysȄiL ;GۛLxWx RiIzhh@/_b_ʛ6k!GP&hL{_y < /W X=%cO0mWF:{VWo%#1 Zi"g/UPuDG0-WgӏEpc~v{ *9TZ~sY"6 HS|$?GIPẪ4Jy'42T',OP7lrNs*SJTCTs"=3/8*I"Հ'&1i&RuD:'9IK򻴪j=3s"껧s)O1ɥI$U<ͥ ʺC|&-%𝀕0%~[l2mnc`xO{.E?dGh;GovMт $̽ lӮ)>p gً;QODdݞ7\(dU GYa ?2}6vT7N+_}qH/Njr]ZiVnn+ꪥ~/*h 8ښn_I~|:J&&9  nMBf 0WX2S\qq <#>W8 B@'Ey//$ sjKnC90P= CN$/C8k4Q삟~0܇ G >qA ^)\P0%삟 r a %TB=uAJ% ~.f|Y,UY0;ȂbJa> stream xWo6~_!e2MC:`ZCšmH=([r&l"Q#MV M~MT٬N3y2|zcIW^Є%ȌI e$W:YT'*u$aI,'N=4¸O%3רy,?Ce2_&pC@Pɇt_Y*tŢ ƨy$D7r~ ^4|R*Mw,3N7}3CòDNr)\_Mfd^c0S xO5}G*~`s,OrAHe ۠n3([b[dmqP_kTZtemQzSv둢̙:{bXbsmۗϘjB"0dʨOeT3A[e'\L'0xQ6`"17mWV@PW{vqķFv}9)J?C)8cW<,- .%f:v8Y?j)=GUŮ ~m bwMa 6u "(`~*u<ݢ;m4MM]aD%@װn6ڻņ]ECG>mر]K3Y6AEY檪"0#{]p>Sxe,YپȴOw&;}A}rͭk,_0.=ZtZ}0"sZP*'"R`/ЂN?SJ#&%R}1g02N{ňashbэ "b :*'eQg"@")8RK *K8mccjzjBPVvݒ%<-NݤCb Te-*5ng½P5dPޟ̇6P*[t"eZ664L0 K/*" 2rTU|tfYoRs%4qǟȱacϱiIv?x&a.h[\  KƮ19Ii,{> /ExtGState << >>/ColorSpace << /sRGB 304 0 R >>>> /Length 24053 /Filter /FlateDecode >> stream xˮuKRO4{lKHF»$7,7O‚럑%2UƾD"c9f^"㒿+?7_՟}ۏYJ?z_|寿)߿_ٿ/~%?_c|3/NO?z{c?|u>]R9%FXSͧy6TI%rY ?uk/ϏF-i?*4^?RG`]?f;㹰OZG7)>ͱ%]~حesCɓ 9C{ K?I-So=?`II76g#n[ucRao_w#9'_Y2Mk!_f(_:#]Ai-[W_?&߱FI_5r0^+[u+yaMA7}k O{lmvkk;_Id si/sȟV+8'ucK.9}safk)1a(`3v&ݤ4Ƕ\v {ۭ6g_Uy,{_*+(3y.w,8mزߡ]ؔ.b?Rquy2ztS\j`EA7`56/$t[r%mr5-^B~v&a޴L-\^Y"h,=cK.zẂ.Xl0|ZM۬ Okle~훳˺߃wfn ,|Җ?۞n>-Nv؆̀u%]v{Sjv-y5ԗzj=f6Ϯ-{ Y/8yԍ}צutr%mm=9wi ")ykƜ}{.ؔ.b?;~biNg&H-sR)ڽ׽H+8G-}ߓ|tǖܖa7LGJqN+~u6) {bͱ-]vo\j+!wu{׀s^-5Ε{m_.8W'O؂su8Wzlezޣ^ߟ9'wBw;O,wHEY~Vtiq~&ŧ9䶋U睺9=ׅО NG#{ߓڏa9Su[r%mY_r/ଽؓv .w%R?p+ ktlC[7(/[r%m7'{d.H߽dp ϞD=OsK2@e><"S֧oܯd'gW='T2bFiXXwǖ\va$l1& ڱ'ˆ0ڑ7%E|Zg3c&ŧ9䶔5.8br{(;=T8 a2 \XQͧy )/&ŧ9n{'zt/λq򼛊);@P|k88cIQ7gb}OMOsle>=6|6/)bN]{}ɷk8rƊ'mF`ؒ.ao{8{Ŝw{A[ 2w_=𡼓{X6vEqLUqVÿL UjUnOMlMA\Ƒ.ao}{"ϑ9Nի/Iqm{]XQ4q Kao-zO}ߜ]=Hw;Q:]%yZh7s[7M"n+3N@۩ s ~}O{iB,EwǞ+]9WbAi-ʾϗ_S4n{2al1G $|h!~F{lrEmoYVyj˃c'}x(ݩJnrdK6+nQ|c[N7}O8b{@+ƾ>6R)'zί˜ uؖ.b?ZKj9HoNwr%iܶkﳂo,0M7-"nył0l<2`V? ?#+d?b^ gؒ.ao_5.;:|) qIꧼ6[uob53v/{G7)z9䶋}Q"o1O+ݬϊIdv0;VwKkjupjVStnm[+h8m9t/o7E|Z;Saf>Iim,%nG4;g5v~wh=x7G:G [gMOsle[Vz"'8ڏŅB1eZG XQ c#'Ɩ\v {[Ÿþ3qNkB<{:j7F" +_j/g N>!48x[73r8Ag2'an0MʧКv{21pEKS 9R@YXr:5#>ΜtcsG.&ŧ9Kncm/rS;mc?}O6Źw$!'2s-2rP4KnGiJym}{)!/ †Kiq*8"0!t͎r%m+<Ŝ{0i~8|$Vtiq%68t[r%mcaYLa1|N 0o;OF?̓5?fNŽusg4~m@H'cQɴлNk@Bt䕾zaM%^7@)cMdm9+JYT#ǫXQS=8,Bw<Ɩ\v {X+3fR1-[>:hhWS ?FcEu[PjcCaxe%]v?Vqmno/P.ë)&QXQHQ[tGn-{`ÃNDFnrgؠ=|`36/ 1-nͱP}~͙ _7tiqF 3ty,%nmc{ (M5Ǿf8&T<'utc(m"ncu?oN5ջ\=")57-XQէ0dش'Н|ډ%]vl F6En^D07S?i {'l ?`˺Kͱ-]v{ǝ^#a>NO-dR)q&u ݢ|͋Kn+1$ `{Cw<WgIݤӱ.b?>;ǎZp0v2B@y[9r][c1kzler_fSn zK1ŵOkdә),3جdyleݞNܜK{^wޓ܉O,gܞֹ7K挓]:[/짶W?fYP2u#enS%]v{CH"oNC XQ$=y%S.cEflڮ sCnd yTAi^؈۟Uso2ō}xleWtK6z5g/xlo&20{skjDd9V&#AcSnK}b8$.&ҧ)Ǒ1f^Us>Qa;;:@.;M'6K[x.vF r&+u =]2Ǯ1+~|?H\vwrNS\$ 9$ƚʮbNXخ5&E??ǖ\v asj/A>vv;o"j+ex-VTu1g'V\)Y7)>ͱ-]vo)g1sƏ]{.cI0^/aEQ7Q,ƾs`?Ii--%nc| ^p$v}d))g;o 84۝,9TsyO|${oXiU#}rfe՜][6Ywc[N8Mi@J:Ÿ)/xNe;ck<50v!7A47TO+]!2VT98+F<ǖ\v {wl:nb nF2;S?"fRxJbMEIp: 8'16嶋95;_,8,O~(fSeC?Rn ఄEؖ.ao}FFԞRIۻ jIN<)+ Nyr,w,Ɩ\v {}++D~ee*1^VF8e=#ƊnzVęXɅ}ut_W:rY*mˉ7YR&;L-;bMyIJ3nQ-x*g<}'' Ks<>??\ {XoJΩ"|V} W}͈cwWRwWqkn+uV}c[.K#K7:sgaߚJwmYo 5i5u,|k{; my:7v;VE}?teM4f gX%Y1'w!FJUURc"nbޯ1dFQ=_Hb}y5#{='Wztu¡[!|"SWߜdb`+!16嶋_,&sm89C2NƊjqbNa2B~:6Zu{U%KޝcCu`;Bڑfd晣>ؒ.!ݤVh֫6|zn9r}\'EsxVvtr%m/L8|ߜMuF?YM9 kGeDs*?pa?YMQw8.m}h_V-a,8w?S=|j*9Dnzę̤{XW l-3$v:QՑTt%r#8&?]XRͧW5ٵq G7)>\Yqc[۞}s0!dgݤj ֌Y 5#Ԝ5N5{tSCKc[.mz o+]-\ZиG.jq,NFaMOn`;#;@"[ $&žۚؠS "h'v2Y'[o~4.[dqd `Cu{ Ìŋτ:|2=]XS˿ఆufS7)qK'n]qEsZmQM} di aEոM Vlt',%n߽VE}ߜ5f:};8<{oz.O}X,~C>q7k{~s*"cQ_"tG[r%m7pw̜%$kmi0|/ޚq ,oMpX&ŧ9TnWF nKu5י)t6ʇQ#BE,c+jxliݞǘ9ׅ3g1}\;}Fj;{2Vu5F`?IRՎ~=Rcp83t蓾L ,\Y*'4]}9䶔Vzf93‡YQ1O|UNeOq{n?'ǖva#~D܅9?W>dOvF?NŠ*wa=}ŧ1vȳ#}~=.J.̩?]RǞeg̉VS;{o+dNc |]N֟ƶ\ {;^5p݉Q{ҏ1S|N"0Y33tGrEZ_2c}sPͷwlnP& k@Fg2VtapIﶎnR|c[.>= +z3gGv)d aMʼn$83ۄt4nʞQ\ŠwMX^k;~rE+GpwBT1uS(e92_KnGXGMu: MW{KH_OkE#ɛsEnm5S;q6-y?>!8 UqM^RȇJ+8 菣Oq\a=|Ln930&Y,TȻ#'acťG3ŧ56嶋LfAW1"3V%_1k*:r3XaϮW%]vE?ttH<7.ʧwBm96:1REFr:.lr4NƖ\vao3=AܽTơ}E̛~atzT6!rֺSDzl˳{?7v;*yzn*[<Y{B$׷!͉R7ɪ&ztrem#.C[oy==V׌B}<Ы-[kle&p=Kn/,6MX&  5 k2Ž,X:.šam%8 ~5 s9x:2vv&`uzک-Nzg,kZwDؒ.b?Fd$T(eƈ,g$ H\{OaEE0XT Q$Ɩ\v {}`Tl{ 7::_7kTrf k*:>]]5/{cKn}p-}s :2v_wna{aEBqv ǫu(-]v{cِ QKZXFr7Vԉ1'{Rut-]v{GSȺxxkk!ř+*zk'Ov[ݤyӹun5kvVepP\9jVgU]F*)[76MOslev꼚yp7{k)rX9WqtL.q[r%mEedhSEPu(|"YXRͧř׮4SLާK}7SoѴ)qc-)/:jŠǛ&GlV u]B>r%msPIdxАk{V*s`E41tؖ.co{*J[nrI)oycEg6PG7)>ͱ%]~}"G26zG+2U{%\'a?>Xsv^%~{1LQ&8wSt\NؠNUsX 鎪01Ñ߽OH{lDR=j>3f+"Jj-B#DZilevkdSTs5]gReM4"dz61Z#clmv8{`E9 8ʄ<Ee,7VTªtrem}Jl=R+l3IbeD>PcqR+ P(=~r%goh,VmlX!-zV=~̜DW5Bn/AOgf%d^uf ͱOnNva;xldnbѤؒRb?"LdV+.8S*gct{=^ l.=9S|c[NU;'Nd]e'/7槒'wo*E$82vunR^u8zem8bUMe 'I9?|%Fkx9aScYʺcK.>U.Eo` jٝSf9Bz!ƚ*81D՗iG) J~WWSm|ʑ7;k*;&vNeWq;%]~^BWz]{=(Pmpij գۻ%"SmTw Tō o! Gf3\zx?#~qp؊ݺk|/[r%m/,@>}scP|b]4_vA`MS'2Gw?w;nwDGݽaUDe3Zx@I#XS+kp>Ta3K7)<%]~EO+Cg!ٜ'/ %LY,a4VTs~Qp46"R+Cؒ.aoӥgYN%R jyg$fa[*a;QI7%#>7v"Ĝ:MugF_~jƑOfz ;M>Va~xPҝ%]voQf<Ҷ/ƾ1^;)÷){;6趗ʓßnRT,ÖRb?vRǟY}sNh@|2땓#yA/cMEKphؼ y-[brѼ>Xv0{u*Sբn9yXsԍؔ.b?Vf;:+0y.=qjNIH %NS~:R"]*q-]v{o)ٜ "$)eyno7>]oD/[Nik9uuT˺m\1e_ bkU7V5L^ ;_Zɱ-]V><{۹-ryd_3TKy? 9KTwVp00GK|N0Hvin䊶{#Z7'b2RnX\+*9 %mhthݤ4Ƕv{}*n֯J{J{33JU$v: 0jjªR}sUO~OU/-)+~_yg龼esgsEßM̱ͨ$ \y55꥘úMQSRGѳ+6dN}} ylev\c]9+olE3ϩ؁Ur+jF=.s:sc[ؔ.b?vV6{l kg^9F1=ݤ4Ƕ\v {2dޜ;~M'aV͡WXdnQG.v4[oF͑c)&;wc/H>#qbġXiQ>Ɩ\vm3C)Vg*LYh-{QJ 6cIըtP0 nR|cKnKۥ^^ON} :f *=<~NwҜ~)CX< {}2u;6k3Uetץ-Wƛ;}pŠ*g'TώKw]\׶_nG #Js*kTĨɜy |*3ZNwNT9m)lbԤtU%]yۭSʎ/g@vy]L/[n+b7exu {lel,̽98'V?9SEŠ:9DUGw99r%mW]Y], F˦~ʟCY`M5f4籛 v {mEaSJp3q)E ^XQ5N)4J`~xcleoR}}}K*Z3#P aRq;ؒ.aoOk3vM( '6X4G/޶ 'Ŝɂ2.VVpm`?v;W^W8wZgs k.;8 ,CwvO[rE^_!A+ݩG;6zK#X`EE +9ؖrEݞ; *+,8kRO0olw%?78좌-X#j%]~}2B!-L,ı6s2e)KĚ񷘃?XCwcSn۷C9(7걧>LgwH#lat㯱)]~g7^o _ko{wPknn9k+ 8,ǡQ-Sdr[v?EZEۋ}O4x}{38d꿱۾ ."0)НV T?boŞ,kcK.Ԯ,*YWL '9r0VT:qͲ.5O>*KSS Ȫ n IS!gcEV!F,ǖ\v {툄T5ũ4*MLDҘ,9ZvWĜzvŧ+A.v6EF ,77 c͵t{X2Wgq9XQ =ː gؒ.ao}R 0z~Ф;t0ng); +}9]@eu-bK^+a,ca/̑5J﮺?,;/?isTCYc|񤻇c[.>P68ʜx(-{ИG#9\A2;κOǖiz«ϫExE)l`9{ k[jpa^؄:Mw|wu[w|>#DSPKgK19t 9-2&g;k`N;="6c[Nvz Ea>ӫPia+0M9Kn_&"#݃$Y*SRO?(Ur޺ k*9]v8nQ<+~9erzÀ Cr-M|볰F-0XS|ZcK^ܽ~>D98BXK[ZL=`'s55mFglg)1䲫Ӹtӟ2V&3y3?'dX9e_4>~ oQ؅bM=Knt:qRrV^0(*sj{^K2WpelGu ;ch6{[ey#9&''#l[T+ϑ.aoy`\JĎ`G\v-80a4kH>x MQ%bGIGl楫trE^xM39쩑xM(Z٪KL2ݽd1X}<68ac9?Gooo {)g9+{1K^٧7N?zsglfyΧƶ\vaȅ9#]n笞Ym$S<{aEHq˵F2w.GN٩ja$Tؽ5fd#g_icE72 OXBw M"n*0wǙbNGȻKK00aE!1!>UC%]vLdZ/2L|ZM[ 92+F-s Y =Kntx~qsOw% q얳 o>Ƣvξy%]vjVrjV7]8q(=ei 1LImm92gd^~px˝QU#GeG>șjeF`Qe#tG=[r%m6-* YFM+ -,1o.|,:XS-* t*c3jXwJC[h*EݧE jQX s6SCXuT +jiD j\)]~}*^z/X!TXQ{1ܭ|/[r%mϕ><4KngPӕMyոMX{wr`|$g0Vt5irSiݤ.ao}FG`KQ*LG˩ҴϪ+KlP .11Kn%1C]zsnZ3y|S֑3sXQɻs&t= Vˮ'J=}onz;Yu؋×XUʄNnYn+DTyl7EjgM`(%9ʘVTd'8]#c[.?۾t/< άf^\kNH_GY qݎdvQMOsle3-87ު#=QBhg]|rb5B>2 kj6IpX!TCI!?G.>ꮖhNG2:V~3򑫺g&Xv\=őv8_(\u>)X˓WŠjFDyFzleW$K7JOĐSmZXSm|'>^k K=TQ#v{0]iHLQ%Aʦ(/"<=} ,Cuu('yE}sSf;g&yN%2VTTI ٌL5cle>#cSE9rI1drnQ:U_Ofx]˪}zle^+cs+(X!]xhRgG|[ަ3t7>Yթ{<ۑ.aogl9{~s$n{OQP~ږ$Ξ_ f;=ƶv{}/gE٨Obc~;<|~Q^幰RܨcUw͙}HMx]LSRn(sXQ=<w` kJw Oǖ\v {z}jN#EϾf#xQkf) +*ǝ8Wc+MMOsliޏBɱ1ׇ{T][k7 S^YWAXSQ>8 aMs `?xs^_ݨUK>CVu%%?l)ݤ|Oʑlݧr}h8,T9辭y1nWrU"Ҝ"|\>#w5Kn߿Ve8>!jU5i{k*EMZqv_' Mʷ59n<7gW\/SC(澽JuH^"XQͧf˄8&--%K590U΁eAHRF{#f=*.+v(%oZyGޅ9teDa]cĤzhƊA:e.QKcK.=ΕH ,{=q\iN1J\-]vʳ2'5k916ty[=K7 󼻻#gP'1C`;fC,XQ`aB C-yqFz&$F@Lѷ<()KJ8 5VE-1rYJݧtB9>DF$Wu ,G kaMXaF ];Eo-"n!}^aYTܨx^b-33XS܋pe-<䲋OwZ xʃ(Q|kh9b+*Gr/zΡ[=oyŽq%z?P㸄|=WtDPms3=vsd;OoLa\+^S|k[ tO*G5qi h#Hm92-՚E ͚'sl5R5h6!w(]jQ$#MBCwt%?MoLQPQľ|v։c?ǩd.OO5WB.Qؒ.ao}_ڕ"8 ϝgSvֽb;2ck3x [kr:klmvލȱ2]:3cbh+w1ƒ;eBE|:"\=jA&N͞H{f37a{VDgʸڻ R2CšjXCw%]~:݀uA]0Y,^#fhdy7`+clVƺK{lev{`Ø5=jfKd*ֳ򕘑O{s>UYө%]őllڃaSo C'jy)w>bMͨ=x*q3t/n ]v+4V87 O5lG)F,O-99c/];q hF>#۠N6~agaE607֝#{cK.Zһbp/wʍ 6Q\qlp658-tߠؒg%}tv5UġgTFBev jg8x͚U\ [DlgX&ŧY.m2F/ࠪďS/#(-gI5cE0R؊RD]Ƕ\v {}dެ9WԜ8JoM p2}r`5"j֜Kؒ.aoÔҫ6Ft&`;=3}̨'e?B}.J+|LQtXK2\ {w^DR.2Rda8Ý 7r14=Mv2$]vQ:10w0y1?'=%_(+]851}bz=KnǐdVHs@RAoP)ylcEEs2 _0ŧ9n/h% qŐ"< }v 8reuK馻X~TIN?rY*m{{"ܭƖf'r#"֘y*lpZܽjtaoOM3UR\w]U +[&dyB6lƚjBz5ƺsUm]U".b?v<*ɧ'~Q[ov jҗ'E>rVT:o=y:!S|c[N޲hQ9WAW y)FPr kG95E]\8Ɩ\va9#<'gl7z` gY찡r;k*"SEAȆ[rE~qfr^9,fbHo|coT$ϙs LNc}aKK7)zr%ݎwa^f$N2m2@0o6q[r5"œʩYk]xle[ e?Lp?۫5YΪ]0^uXQ~bl nR|c[.v |Z"CVev!=+oD%oP!0X_ǖ\v {Eku}Wh 2awXS5:뚓qR4Ŭ;E~Ǧv޿_i c{ VTT E}clmWvuU붼jNCMjFqmӫ~jOȧ}8NJ޴/fEНǖ\v {~[:-q/n߭\UuK>XSuzeaKv{=L r۫"$vy?n끏*끿>ğ7>?_?"=w_ϟwTi `opc^>/`r\nn;']jH/7rę]L-y?ИH,$pIt$Wyקgׇِ ϼo}_4#F󏾰ޞ[o,_(4\Eȭw??u+/_t/HOŒtuD7s2 endstream endobj 306 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 294 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpGiwjj9/Rbuild3ab22610f92cbc/gmm/vignettes/figure/unnamed-chunk-27-1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 307 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 308 0 R/F3 309 0 R>> /ExtGState << >>/ColorSpace << /sRGB 310 0 R >>>> /Length 25612 /Filter /FlateDecode >> stream xMn;n8b]k-iMm$AHUAnҝߋ1=U$G$J_闿Q?uj__/~R~Ry~R~׬?fcxf\h_xK1^?JQ7KOŘ?eܸ,~:%zĝ/?[E5/1ktzhQk_&Pc)]?Ɖ@o+TTw*w>Gm5k[j u)}ƉhqzT)Tw*ǏMQ\7/i?Z{7.]͌8(5~*Z?ǸRJm;u׏~}0Ɵ^MKcƪ?JLT/FQĕ.dK!UѮ6bP\^??cB]vOL5*u:)6TUc1*cv\/5jm NkFLTT_q=r BCuamU꿣j|wX%~ [*Z0!bǧ& K!yamU?1?kŇ}0XZ KtzaKAƉX͸czrJCamЕ?xGj ;j BK5Ɖ@)mA}RIxH֔RN]~1&!x+~Nӄtzk8(?%+ А:%6J7fهOo׼L{^&NNMZxn[^RIhHFJN]~A}%'N3nB:wDTTpP^Y* ɑRiCܩԧ&>U5.靇-}b6NJO!RAxHJN]>-w >=nV4Etn3ę@S3Jpg,d)!UHROt5f%j- 0oĉ`+iޏe$4$R܇RSL~Zxtǟ]BKtyX҆8˖-Xj,L.zr`X>tfk[e?3j tJJ;DT{25ݬRIxHv3pJ}ZL/ƈU>oE厙EB:aRtp&NDo[ [R}kЕ?}'f÷~,KtyXREƉ@wp6d$4$NI qRSl3h[=i0!bt-LWcԚLuR*m;ubt/F6S鄽;ӵp"P*~*FWNxT=ҦhvhG?Vތ׌ 5F]s+OH  jwLJCTw*a1>Էf>1S'b\quTQ҆SWO靌n}2ٰb f ԇ*b0}g' &Q%J* ;U h4u,cCˋzq;]L \s9R*PXmV1`şa6(0HXPZ*  Źq&؝El)J~(6,``8yaaV[1}Ji1(i1J5M('\n(KcpT+{oަX[>0+ ETt%/ⳍlG֡ɹ_>;9LY-POC4He9A-jrS/o]mw~Քir$VTe΍ccO_eʁ۷z{ZZh_ͶÊbT;GvumbjJmln>mʺ%^žz-<]+y\c` 4LYwc5w eFbqϑe5H-muSY|bLڙSc_.TߑrEn˃>Oq&G0TH-1[~aE0Vԝ39֦\z {tc]j83Ӏ8orO?eL`ƊB8Lcg5 *or%쩷B!9 E1h>5 1BXYg7> $㷥z.i?%[Q߻~DA#)|pEV-Tr:v6B]vETM"Cop~ 9ƁH`%er~Ɗ*  es˩n /qU~hva+BbAlZذJ-*TSo]p31N]P3>Ċr7g`6cp\z {tx_o߱{1e !ƊB8[9[r%쩷.R>LcPy+/o.cxIyFݖK/aOXtqҜJ\ avwOy/X5Us4p$&r%쩷.ۊ"G; EY%_5S;s*a-*T߾ҋXt*INU`{-= ]8XΕSXS%Wrq^zľVue[S.mEc8-^=f^m(OrUkj.L`^6*o-"CoX{#*)b IYX,+`bIlZ `a\H"-5%Coc0eSy3%cf*x R.y$Vɩ#Ke;z{Zc>9wRa->yj7VcEݾlLI K *o<Wz-lO;QAې%rnkqe[\z {tl@w>97/F N1.ǖ/|Ɗ;Es:/oQv˽\z {"\.R6ҵ,X+jv̡%j,-Qw;[r%쩷“Ĺb~~マ-)kWQVXSNGə)}[>w٤r-^ӳL;Wwszuy☰6ep5|}m)_w5lR9~˖K/b?v[x6`.|\`ӵDj$^ kj)9\1<S٤<~rmI⓶8weĎC]4%SXQ,g>U6)ߨ[rkJn OWcrx`+nsTiv rƊ*'^B<#2&㷧\z Pv/0tVvy cN v˞QݖK/aO$}g΍baM8MXor~Ɗg}te>ܫz-<2qb_ӄkGYKbEqb,xۢ%^Z9âk1ON缉wx쳛vn&%VTc_r La_[nI[.=v[ 3"N=:7:2)kW- .JԊKɝ0v٤r-^ƞz< {Ѳ-|Y5q@ŋcXSw9*Ee\KSo]N6XlIW;f`Ʉ#jغ¾[gM7\zۂ8in8qW%颬]m)po7]!ebc0lQ9~-5z--{8#ԇL؆Hޱ"kI8̧$6cI)^~Т{ԥ>s 0ހ=y=]Y[NDcElZA#OZM~_sEF4jia ֢8g$&@K/a?V[޶ڣ8z&xqFڕ72cIlZ &[-žz-o"Nǎ~z2lCR֮-Xնvxx>QݖK/aOYt۷ǜ|M\ yy֖/{+jCao{n˥n 0|NVC͋~'˔{'?woW?s #6nv٤ܖr%쩷B._"m/{;>.Sg<7̿97vgI[-^žz-FXbFbrO;cNXS#ds7Qvs\z {Тk`OΤ ڎhvF?)ucMlZKUa9잾6[rEn˶t'n΅ om`nkdOX5kq؊K]/uSnO M׵ޠšij ء&Vʭz-O6>w')oZm'=ږ_$VO6GeodM"Co.~\w1:H⺎-GӫlMIaEEroЅ]AW+n˩n -wٟߜAf$Lck\ls`Erq]>Gc-^žz-ZO㨦~Jpa}-99k2еEe]KSo_iv|r6K9MqjېҳÛ==۹sS٤r-|Au_Т{gѢl1!)kIum98Vv#_enɥz-Z\?k}1^єW!)kw-o8TC>kM)^~,v 5|*vSn[y'B[<Уir^)^~Adsh'v׳+f)Cc^JeRn.?G?{9\tc<.Oe+jUegre쩷R64x(31.\(k'y`o;nNlJes-^žz-|5erq=]KSo򾱤9  $uR,>߶pO>49j˰..Tk˫}uS[xdn=)k˖Ox+W¾Ve۷z{ Uݚ}SǔksN +*cM+;EM*ore쩷2ObO0bb۷'4e[A'[^e59!_- DzIyFݖS/cO.rпON唃 ~'t񉏚k=o1ccMYWƏfeZR}gJгuMFd-Jԝ=mΰ n[rE޻-هĜƵMBlvXS%}HvĆ7eOWڵ eT|`mk>Ƿ} zv1[Ċ*'N#*o)^~"0OPF/ $b-b@XQwzRXw7wz |GwIpw,:Lv%rk®;Gs`Oݖws&oLY;{A)d;o ř!dt M*ore쩷“ĹϜœlEO̫LJז󩽱X6-c*om4(ھiݫ9b\JnI)kt0qO"͹J"\쑧Ϯ[ruMeeTۗ:]ô:cQ|gT91EĚb J@,Q6}ˇMFn O("757gQ/ϓ/o%6(q"lᬧwD ]<+{ܾpv.sMtӸ.ܰ5'68ɹVb?lRn %p_L^|gaNC8,0&-f8tZ|\βcݗl=Uz-:IӟߜySk;o僮&/s1Pu3^SoE^ 9 ;JCb8-gPcE qr7|^n>^|7~XJ%ThNm:cQ(7WaEjdND{/}j-^ƞz-rX>0g8k@/S5\X6-O{&+glM=v[xR[6旾{7^m+: Cr #BNM*KSo]TEGU`rOk֟|2Q]-N\6m˩npmwp}wYǔ{z-h bthHIuKnMmIbN_"4MSN^Ɗb8G ss|lR9~kʭ)z-ŠӪ6gp5G.U{Sorݿ$gpffMY;7&cTIdr78 _nɥn OևGO>aJ{{(oFSQ[>eXXҋݖ4:3y轘gѸ|)[Yvoaz7cWN|ΟuK>_я+ ][ĭX6-LIݮ]6)_ )z-88˻'/יִ2B܀`X^׹lR9~KSaOݖϕ9[+WŔyь%(9 .lcDu[.MW^ee-N6QCgZ֪lvry3VTϙncD{g˥n,+mKsn>Xن+mˆ<9)DszDve8Yg ymEW?99Sq}sԬn'V9I[.=v[x<''.Vdm;6,u6h_KJeL4^,[T߶TSo'pOk9!&^L" ccM5%s4]k߲+rS/s^ki\>=1kίm„휮Tv?6\z۲[A3pS֮-ׇBlO9 b,Dխon -+^aƘRh#5\ʑB.}mOc}ݫܚnKXtria<@WNavQ#h +\#bU.TߚrEjvy(8ڹQC4{򞦬]_|mJe٢<~uu4]NeTq_JW` ޯt/,g9cE#;aWT8Fdge쩷ќlgu͔u˙iXQ19G]V3U|%o1v[:hr;q]LY;F,+Q#{&oA|+uK 쩷t*vL|ytgR֮)tKW}[r%쩷r9$?q0͵9$vQ3eMe\t GG.{y\z"1OtIx=)P?(|4"TLΕAhM*rEnt,͍ Oq>FRnly@_8q:$6n!v٤rK/a?v[42o9z#Txr3\Xr~’꙽;9xaXvޮ[rk*kmEכS&+c] Z~+&<+֋ՖAf}TNumX3m˙uXQ̜s%㏹n˩nKKuSJC8Á&|V3[>ASXQm#lɰ*{>Գmaw鶐3 ljW!BJXAXR,w~|q]~[\ {Тz*[>\3hN͞^ז#\bEet0egt[r%쩷ۂ/Ue[ӕ?i̍ ˌfsq!ԏGცz- q`*=rKUS~1뜰zz&U@uu[.M=v[h9$C+jŔ{Zޙ!uNXS==NᩍZUvI-Jo]zË1Ԗ)5unǜ6@Pٙ`8x :^WB)uM8x[4Ku-^[SoEb]\1xW:LYo +?9 'l8I\z {wy8j."K )kw-g;cE<7aἴ&omIb$(j8]~7]ݵR~]%Ưi2bZw٠r-^žz-߁OIG?饌^ߕ$y=lZ!a{MW8elMmtB;97e7(HYo93 kS"sxml[ nʭz-+Ld[YMYnyL`MjOl{&w\z -6hO=B\.w[w^~Csf;{Ϙx~գyG)^~譶 bwxb0l.^h;rdK3r^uK.=v[3xrq}s_Gn-CHl񘃠O2]qݒK/aOZt^x1c3V!)k ɱ%V4=e0=w\z {t?SܼcK4\([Ɗ4m,oB>\z {Z^Cf:7mCR֮-bXQ{f΍SaxDMu[.=v[.[Shih|Rux?r_5:g.&#vNlR 92ma:lV7Yk*o 5:͙|`!\ϗ^{{˩z-1H즬][~;'w&Yoی1cio\)=v[ ਃ㲻v’b8LR#,$lR9~ۖKSaOw[Ow1 V7d؆2AsŠynCt8.uK.=v[hэ4OIѣ'۔cXQ;=9~P}\z {0| 87'a-xW F<3ce[~:Wz-t"9v GoIp jIR9bMe#wm"CoE's898QГ (j1w>4TN.,YOuK.m#pXFO*nsYάsš*g䑋Ǜ*oY)^~,L/{|ˉ.(ؔBxjGe-wʭ9reTo}oMc0$b.چ][-Ɗyo9ۥ]Ej ˣ!1KC.{1c1)Y[su 9\O,,{ \z {TzOOǷLLd=9)so emeu5ÂSo'3Xsp5zYgX (3\u9|glL3w-mELǷLcTrxEm2 +jNpBYזw91|cd`Lې{z=)uNXSw͹WTv=v?nɇ{Тڋq Q'jG呞$ k'90mvSe[\z {Тs?Դi6$垎y^YŲkq lRQҔZt }O>IЫ Ica5Ӫ6aYvMuSnmA0EEqQBDC>m3=%gJũ"l3M*oOCo]-t(_ Si$MAF: >lR9~kʭWye/y|75Ue<|۴ E0ل gEeӌ4c.%^žz-fK<Mpv؆*}q,XQ*9V*{f~1mmi is]`^~o͔u˵r +ƪUwQݒ7mIiFNފ)kw?[sf:Ke۶\z {y9|U[Qߢ;N+1v7yb+*{Xre쩷r$TpB6eaN/[D`ޑ$V.:gJ-mx]i3M^z^/Qhw7szAal%E,;gݒKum~xšxQ{_GN: ISrpYXeu3ޅ\YOݖKWZ'|.dQ{yLYkn9 )-,'ԇnH%aDo>Q{O|0fT-Yv !z |Ͷq?f]wՉ\{EHUO]}˙uX[K˾_u[.M=v[hM,m9Q|6vWreVT '~n>YKSoE<8`D~WZS;ۖ|CXQï8g ǻYvJ-mգA-AOoOgOƽoW]1TkqF\''YvrfݒK/aO^5G'ljt0`p%ѱ13VT~)WeE<ɥnEvrrX_1xfT'zvrhXS$[ӞBݒ_mIÅɁ#o-$/O+ k)grxIl׵UYҋ$^3cE8(cʞ廤ЮϔWfԝ+9Xɲ^YUҋݖŷqGi%j輏l=nS/%g: aMuIb'e*8DM"ConxcE,T_ۓkvm`bUaE̹AeU&JCoHoOrp0qq=aݖoY+*-8egF[r%쩷B܂8(G|LY6caEenAs{M؁e--^ƞz- 1U(Q,i#\S%kז(!2JrpהXLɲ3J-m@{1QCy;׀:+r^]+=f6.E,=%^žz-3Dr`/;8f3eZ򇏦/#zOI1~ǖK/aOݖokLq'q@u'g1e% Y5U֜!'gM*orenms C!AV &M!o5J0+Ų۳P0K/Fn -8'gt5T18AS;䒣)-uZ%vuK.mEkqq0pzs|m82oVhW+Jp56I)^~,>h;Гw5eʳϠ~4J/YwLln O#qp)qP-O~M{$24ԝ9}ssݔ[/b?V[OGKrX#j( QГmڕkˑu._aPc;¹lRem92m r9krqBDO^ÔS|XQWZظ$c{\KSoE'w|AS~ccH)s0+cM=]vdSv٤r-^žz-y fmWnSn^[I r_/atd٢<~-:n O㱠.hf[ΌŤl[άsƊ*ag[aojʆ>9xqM~Ŕ-g9cEEqC,,+nɥn -qdsfZ(v@c%OKs%Ųkq&g=b&{=[.M=v[<=|f6j/)ky IcE-Z'^aYe-^žz-oGØs+wX2/chw-_$VHs:v$Vx0[Jo][V/{%eivh9+jRe&omEǍɹb0)MyLY;sĚғ be7G(κ%^žz-O<sAO>)k/p$KXS=O#́oib4ΘYsgCoEin2prԸA~|)k7z/e#TNNMB+AegN[rEn 5=Ӎyb2GRN7]3뜰2t9_='zyݫ9 csr НwsY>!)ޙ˲,;gݔ[/b?V[t]K߾9L5t$]cꢒk\r+뜰fZ< \6)_EuKSo%-:c ITچskǖ\66Nw٤r-6w[5'D ָivJ 9 k;"rr|-Awnʭz-˹z|6N"s(PeO*ǐOC3m9|Jdșe+֔Zt 9 =yS)~Cs’b8 7–=Ly;֔Ֆ[iï3Nz_Гw3ejreVԕ7 9q{ޠnɋ_{ÉsGM+xnГw1ereVԝwfċXͲ{nnɥnK_IDh71'gd Ю[ƊDA"P1nɥn ԑ~J5 bwx =y]][άsƊ fb.n[r%쩷B3^MYRS> ckj79 '+V]v\z { iN6r^x-4;,ܖID9cMŹdb9e۶z{q9K<,[ e=̔OfTf&H&qUmê[rEn -9WS kjp;rfTO%)ܲ춿.M"Coj8cp7w쓶!)ӶY54̩vwe%^~<(s〧1f=-CH<˚w\vM"Coe{!JɹpF0:DŽm(=>-3뜱zZ4x5[a%lP9~gϯv[h1ɑvq6\'rf.9ȕuNXQm99DJ,ɲ쌶uK.=v[0\L[K/Sշ|!:2Yrc5fɲ3Y-mIbGNfDQ{oӫn9+jG6=]KSo'WH1<|Q'C#z)_:'ݑx{e_u[.=v[hoޓCo)lޖ)SJ]9j̹.|\z {Тc[Sdo0wjЙ/U̷ D\]ҋݖcs8vT1D[7efĚQ\7֋Xt}r:Nq'S.0KԎӄҕrTF|IhEv,[TߖrEnCw<8_y~ vjZygaa`M*oIuꭶ,$7A䢷n|>ieKb.9˙uXQ-OU)j!?yG8n -q9>re#)k.3wsగX$d%}:\7֋Ֆ]Cb_>smXv$,3XQ;9BXEU٢r^[.=v[h-}vax4چu]0le -mi(qA9mY-(|b&4e[\ {t&@s!BdJv"bMaIlZ(0v $&זwgpmEd C>t{D'~sXsuHPYث\z {Z̼ob6̼ա]/R&=>e}8˲nɥnO<9kD}M'iolelMr;]ҋݖo^j(LoǡՇ6FG#To!HlץU_cz-Y䶈1;&zR'ckWwr'TFM<-"H-"Co~(85ѓW1vTeۖ[r%mEƓ譙~Q{Nn-W;aEGcrXfјuSn[mi298a8z/=BY jOZϣ[Lz-bs[Ar+'>l9{{}Ȗ/.u-gݖK/aOZtL}r-zK>5چ+2v"7(oaScLeELɩnK˻˹lS-,pK*n˥n 1PA MŬgO"{fs r3VTfsJp&a7{d-ma8׷oN(ad=!e+Drf3VTϕ9!.T߶So%EL  {+$s$:gn4Z ָbͲMfݒK/aOZtt/>98&zrݦ]):'L,]>wwݒK/b?v[&Jv]Ĺqzח_"\Ô-mcM+,_uK.mY|w^r7r~豉#4L%~1XS%}r%1YlQ9~{ʻDmabxǤ9פxГ1eb)lU V@VRu٤rK/a?V[p=Js9 5f)h;iևQ/K,0˲|YuK.=v[d ''eG^~K~ۓXQd6M,&,\z {$E _莞[o"֭][άsƊy3lN٣Tv;[r%쩷ҙ5q "sn8(!n51B;tAάs*ݓ5 iI[.M=m;,PK+Ը =`.9˹+=9H,؁ݕGvݒK/aOݖmɳE78md؆])uXS=O 9$ ^žz-ړ6^yd7mQBZS~1뜰ZFJčIJI[.Mmg8Urx!{wL '!Oڻ)9cqeSN-BmEmyLɃ1O]XLڕ=WkSwctX1M"Coe9`UEې+זz +*=C_9aïevݒ[/b?v[hu<3>9p8;zR]]j,9B'VTݕ9 x;eۚrEjW~yp0$a9R,|ƑWb-qnp^CuJJm;t0"fa15k h#q*/NmTjeGuJJm;tx}0fDQoER-R3D:z0u\]xSRj#ܡG+Pj^trP3 )wk<ĊjhN늰eG[.=v[d!(.kR* OMtrƊ3ar2؛ *ri*쩷#ɜK< >Qi tršyg/ČUOG~[r%w対?_?[u//Y~R~xE-ưl^U.ǯ !X{E?P@D?)U<~U.?oPғV?)?~uhbUJl-4=h{0=6%}gBHiAr<~*S}Ghr<_&HcGkR*9{ >.~>V='ݨ'|q|-]gj ˠ 7~'?_7'|ޟo.ۯ;a@E;o}/8gxW]vٽ6y~s]9[;ڿiA0 37_8xʡc#aj}x4_c 6a! owf*hxp 3W>^Waa_mf(^Qb/Ϡc߱ǰc}:0ˋ #OLP^~Z+Œ7˟zݜ[lwtOoc7 HVP~+z4]of멿@| 5A/KoFX wZfDžW僮tI>pɄS'e]ȁ;3!2ѾG#Cc^Sxjڑ;hc3.[~$Fz!|"{ i0ۃ>}xWQhyO +3bIZI+bJL}p  S΢g=v++'(LuZLٻ]LwN5-[*{C.>(OA;{у2`'SV50S=4~'}lH?:c]/"Vȑ+j )ۿgx@Bz1a/鮃eL}w|Ai/o $cd4..p=k89.]A+72|M|~ɍEܰGݎTA)xӃwMSY2=|<%B{&m}%tݴ'[5舿Hwo CC,[t3++50<9HCzMו1oޞT-_{pʂ" ۠oL].Wq-,b\yW&<| jGE[} w/.y􂫇'Z"q'=}ሿGw&0zi''S Hj>UC;%kؘg݈D+Cӵ {4΃+~7nuoL?ް #o+ K/η}|t{||_TG }|(8N6r[JNo頙Q ;X%R^8hFn礸#i-o'g}..}GESEy;:OW_;Z*to< VOS_:ru>.g>9dUکw'v k AnǢد}"9叠ǼrK^/c;_\ endstream endobj 184 0 obj << /Type /ObjStm /N 100 /First 899 /Length 2600 /Filter /FlateDecode >> stream xZ[o8}!/obN؝);ET[IHKeOkQ,XI$ ^q ˣpp"$ ݈D$N?B* &+5xL #Q[NM 3F>%ab%7Z&j+& _*rNXcP֡ѳ[@HF& s"{RU3^7i˷ ~e/gxxdi#Z$  e\"xXdES٩a:o yuQ\yS'_eU&HwǥH>d#VkU/'弹P4xCI>pdX$x [|)>*7kth(HJh40o耸"\-5d%\'JDAUٴ@#p%o=G3P\hDY?hvM3Na+B+?`岚. <}.7Fe~^LgTMuh]Ӣn][b6ϟVEfDF̗xº]rNe,ծn"`2!:%ܕ}qVU +QlbmR#K=ʯm,]Ve~Y ^ɧS(81D=3^Yq-1v6U,‹Uy/W|dyUgS>t):|uvӴE ^7vcZ/;sh'w'W |3[ZvDr}|u;Z;Z=n+w[y]w5~RRW&OŇXN+L6HH X#,5E1ub9m.HȦAB 9PMG#P\hdhL(p, eL:';)t'-Ǻg2ޢ^w9[GĒ= (zO>33?"AvӉr 1OiHcz-I݌cmnbG mK2[4D} 4 QMnDs2v .@b  ym*X DzQHNۏRg<5}1XgMM=XXv;;;}ab2_:2!I7%MA(HP%0B!b)etӘD.&z:r ]AdF4|pa} NOF-\Ve~iij_c!r`T;"G/{o9:Opl1OC >S~{SV_mOc'Ʒm_Q endstream endobj 313 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 321 0 obj << /Length 3068 /Filter /FlateDecode >> stream x]sF=>/~x.7㤍ӴNrڹӡ%Xjb?X,)R]+)svs b,] {ι9G<|rhEөJhN=NYR$_N_?+BBbpgQ C3LE*3HÑB72)X9_ZFX5\yb˔SZ8fm(B7WyA|ʤሻI*|A|8;¯ro ~|ge4%nJU}&λ2]9ᒺZH fw@.%3"m# C颚4ߦ dBp$ӭI22>tU`eZfl܌ύ.hEfIdhŤR-*XD#춵"lLw7K"I3n rߧՌZc+ݸH8!xWEZieQ#eG@5n</؃ӿ53Wm7Q&?3',ˋV1pcD _RoE2G6W K4͖tW):Ґ:<=|mU@CqE&@ ]KlYzSK&C ТE^qC kwƙ;[+0K¶.-̾I2L{[P͸m^$"j¶)AIqmuw>Iظ$=AvSFjrJBuMruIA*R94褫z3ow )mN5gacLϭpaKph *82YBfÍct 6>TΩߏI\:f4%]竉cClϬ!ezp'p8B`g)g_;qs{ >BD'6CL?U+Mjv^b=Kx5YoSy],vɬZ7`FǨG.GCȺxHrQCD䰉YXv/_׳gpGјTc!uADxPd'M<4x՝s vdtAWxSqI]lJv=mm'{0<)gYvsW}ryJ}XhꙏO[Ɇ͏d{I^xGX$wׯ6xw*)ɲڱW'O;>< [asBF<@l


cJB4>sߕO,9]?p~Ld|"Y>xXf2OI\<\.N{MX_<3u1KjinEnH&~pZnK̲w: u$3H49Ѹ&7,6e%H 3rkҸﶗf%\C{)`ܑ` T? Mh¢)`VWR؜^ ud]`5w2[>JA#鉺Dqy-\0BY:*߭F)GR[TdЦ4Ij^+lEqHޭRLcYOؾw @( Bb)bW'BuV6`7"p0؍=YH3/jnpNML$ze< uOLYn}*VLl@$9EFSVov,qeڼtZZ쫦\&G fyQYEj+K1ηԶq`>)WawgKX endstream endobj 333 0 obj << /Length 3070 /Filter /FlateDecode >> stream x[ݓ۶oI=6;ӡ%JF"/dп(<']Lt<>B HEDO~qFi*y$$ZFu֗y}:aFO3U+̛5x ĮG?=whUtj:+K{ g=a#3KyBo厪hdZС61S,LǗW+rÆS4.z]/ΐ]4T'hKe8e%(ÕsW:WdmN$#4+ʅWv40ӗ:b/`-Vd\K*j70ZmVNWV`O˶lȧYmֱ|Z-7ҵVsg4*V'ef uuf3,vLXU׮ lcQmV9GNH…EtL+iVEK@֑4&E I"TdpnΣ?pOJȠR}p,FJ| vYspoL[s}a}Zv% a:ϘR~\}'e`HatVaӷl8#k+x@{YsO/08yPp]b#H&Ho^?0 oug49LBԷs nCլZo~l07 e]^@fv(m1Z}&H@fF g  ?"#l>D~"*! c/'n FM1īJ0W x*rRΧ*1Ԗ Ubą0 (IRLbx @ 1Of>mҦmqc= נʹڔXv5ljW+ kάV7CfrcD+V+aD۸ \YQ喾-5sww\j 5%~u{b{؇BJ{YKpڼ;*Ζdd0vPS;M;YopOAd_{M{m5m%!.mjQasG' |- (=?BA/ȭd0U$mN†u:9470,.BQl|e1Z{AMQ'N2+'J@r_'Xh_m5Kc7u[gwnݲ_r;pO3 8v-2:?6+uېCfݬq0mMYKm ?O-HA7 E҉H`7C"ЕD*U¡СƟ0p|Xv31ߓP>?vTt Fi~W~}L`G/`/RE EanVjtvQ.z߶y$'LԤֲk- iˠU4vfon8hN[xyK8.Ui>GhKhOV~ oY'Gj= jILzˑpOCp 9D\}hO'J)2I? C֥[?Cht|~~nK*[h2SDY8fƀ=gnϣw#3 nc%?)2$! ʍBvlpLa%8AݮY:9vQ\ ʎrP_uzv G6_wLIڮ~D̡0S&Osl}6_g?kczl3}9atو:vaw8+?9..5 \0&f8~km:樗ڃ _,ƣ6=sf6wa[@>-WYI<07S:s8 ξxumܯ#2Y* 7?&+Znag&JCY/OUͺwX_f~aFUjecgcOlz.(Hz/ssYg,jTw WLXXKPq;@+BnәY!Sv$o >bX &bRBEpfwحރ&;ӫ *tkG/6⢜r_~Sטjʶ2;Hד"X'/V[ 7~'d%2yMuI~d8%?@3s(Cx'Dld~B8ܠuRXj씝襷?fW8pmھ4.gMƊ'dԉD遈.~ 4C~(UvhFP Վ`+Rn{0X'm]fo%"at0}t\aSQm~3#QX[Ynna׭oPI0Hh L+ p-FhJ:d,9 MCU 5F!Cp(]3N!e?/m ;$ުy|q_5 endstream endobj 340 0 obj << /Length 3685 /Filter /FlateDecode >> stream x]sݿBs|L&\z$3m=Ӈ˥CK̉>H2l}9͙ X`6Ϩ~sq+ hA, QŒ\LoVU>Ά#)ET]K>e4N!V{2.nYY勴jZKWs<&h*ƘBkg>1˪/UZ6-'ˁaJ# gʔA"k`$$R1(Tiq3J#;Lx.W"tU cbQj8qQl,],J8zx$b!5єm*nIdlj k`"h;I,c>[3>?2_ܷ6\IfW{t lK̮\xO嗡a J@~J8mh IxRM%Nn< 2߆~$6rSs?ÐnlIbDlW tUQ4*AoOuCҤ@3(QaW|ǒׄRj'#foL㉷4F0X 8'D{@$Z vV-p6~2򝶲wtɡjvŁκ ;@9\ G;ti C<$& hh2`JlxQ@o Q @аUo[.4|Хm Xx02I8Rj1 Z걨%vRA-r!\̄V|#1wj$LL$HL$f$u`@0e,X5ڟOb8˸ 4PmۮjMQS|`Mz9Fm|}WWj@[:0 ߶PT %nַ*0iݻaL~ ڈ7g4[v?a AvA58 IlC6EI3/0_*4j-Ϛv! Ǹ§3}0,.7ѮV)nuSio͖<}jmtJy[*~7@+o[hH¤36Njanwa-gN 9njZ D-S'$NO(Vbx#+,N0Vۙ'O}Fth$y߈yQ5y z`1$V ={{LϟĕNY$ݵP_I 4u`mU$=J=IU-Yrkobcf{iqNџ&ѪdKZ&x\h} a=L4%u;t/7gNZt94[2&eoL]+T?rΝLMC'IH٥dȊ|I.٢$ db *e9] 3J tՕs4kIǍ4n0YEB l"$u҃0\;,#9hkt_˕?@ ^Wz7T[4-AJjg#ÿ\uDihum\vz9c@!_,vBGd ?q×څ.ǓlBNOHAD,OKHL'x'>>x1}[*ego?b Wt|>Kd9}8mWOh[~˾q8=C"8}VOGn {*wL9ˤx>L- ?,{ה_wڟh,WYӸw#tBL>!y߸~'gU0dGao#G/E;qP5OMί/.)_E #_e nd(f63닩O0xռWֽYZu$9bI7:Cϛ  Nm4 $2D~9fzv@ (DTg:t>IJ>/gUAȲ.;TJ_iYiAV0嗙o CM!4h]20jzfas?T4^1QPeva3!To>?R>jʖG0#v^-f,ubu{L`fq%ǫ2ijgP@!6 ֍@$Zl`ӄ~x+lHk([ Φ]dvD ZvgwR6hMځ0 #ƱG/}B+!crj54WAVpcH@<A mD'ﯲ" V{rzLwBa䱊o1 _MԵ_Y>h;p v Jn&F#KS5a u'0n5e*fUY C3PAg^6.eٸ:mjMp' [FT&f^݁H[i+l?D큖hr#o9 8#XVtcV\'RMD$aFNJ``՞p^[ѧ}^Zf]ݷn0\"vt(#CCujPۥvw.V8$Q+-<+Nv~,]?c636Scne>eC7ϲbɮge8cm(y>$a~b#q58x6|'Zn ]C]ILyC͆lzu 4[0ߴ(E1¢嶗P9 m, %|gAbk3d8o0a֣&5{~Ǵ>B6N S[sO0o27|GZ8(@R@fWs$oaDKfDQ0б t>j. endstream endobj 351 0 obj << /Length 3651 /Filter /FlateDecode >> stream x[[ܶ~&/Zt]jщ:|IhͣSVEY]W+fqɴeͫ7Y^fbW&uM^^ͪ̎>K4&\Hϔ3_4Iba$g'Dy늍 P`P웣V@L4а"8j8Ю&a5Fk(wRak0:U9kHj?XhDQ Sй"ZOyh@`Qn0$zNcA);]PkPtzϔ@ h~e'm8Ґ J¤W2u'xk-0ʢ9&$J<`Jv'9'&bBc1\ i릹PPyY:DZ/aI$Z!׹0(_Oo ?v?X[tl7P=Ts͎槮 ^5mZm|k\E>d/5oSxN9)g`Feҡ  P>_ŋ́(M4M:.V!@[BcZNFEU4`d:G#SjyRaUuZh:h 37܂W\*-њPZfEڦx`5aR1TjS `G6HBu4\ C+|&QHK_ʒ}lV }ڲ}MR[I|s#tОg,D29evaaA8KۃǴj(;3KmZc½u"XUh'fCu>G_XבMsdN.M?7Dئmw"D.@%DY>=*A)c[0Y^dyJ:d=< zyd!?˲%37Bl+뾫o ~X4m$Ȍ70훠/G1z H9 ߅, 94,,n8Q_W|"41eI-Xbr̰yoBC jP[j^!T-j8".,ܲ=!HL̤Ѱ<@g x?fveKg ?KѮcH;NA6pH0Np ]jQ0Y@8~5RuTML-@{WdfPPI0mG2nKa\ Ad0uHb;WPg54-}[~T+׬.saD aΰ; M3]2`o@:+9t x< l* |㛿Zf=uTevh(1T: `b&t>'*xCާz.a^M\Ha^O۪_XTTa &G^CO6l RҘ=pҺ<->WE 30KsQwF$`4ocESh#wOcu -1='S}$xϞᙁJM .YRm;A|Ԍ@#kkw)o$7Vew[jYϻݱjB64d6_->\;џ(g9+u |3~[Ȉw>uF97B|p0=GQD2lOPGeո&`RL?: Ըh Ja4>h zt4!܌ٮ#`U [{/IAa@)utpEunj1`:78'(AE_q+3:D$|"+XI͙Aڃnۏ7mކf= YEM~ FQ'wPٹt}]m{l9q+gۻRRsStO!'Q]^j&.=EяozUc0h:*M6waD R 7/R5n;;&MrvXaEM y0I jɊ|6@'jS9qωEgy 4ںUKڷ1 T`ν*GН I޸.IÀ[dx`d wzq>\IwB_sJR}BP!9];?<|p.1;$89NzX%68n 5>p~C6jw;\z:Jxzs=:lpkGxFZ$?GC0>?4:j5q<<0! u6b\q :hX`6ydkA`Hۘ){Bu7y0|zw쏕mތ*6}{/:ӥo7.b=D= W%pyn-6A"nWT*V KLkxdk%.: H34Q1Ń?4 l( endstream endobj 370 0 obj << /Length 3371 /Filter /FlateDecode >> stream xZo|!}pLn)[XHIr?o<<,KҦ0,c;;; / Wos5߿~$Z Ft5K(z"h%Vƒde ebV 8 #mVJf|8yӝ2Q vcSÔAϾ-0nrr*LfC)oN,cGGGoų/O}ƵحHq8_c t1s>ȋɤqܢՙHTƬg|>e ^sVh!LVĪC_HYmiN`_}HWD0zu&AboE6خϔRASq<n-mVqgYBo&_"oPz-% /|~%|W| Tν-7m60/q(̗U]w$3)(2|}L3Ѣ`paQ'䗣X })0rcQ|[wE=tͼ.W5ueO\3鏑wD ė#Lkoa4"q "O} c qLƱ/;w1%=q}eE6 mM =iZ~!`n|n2oSҹO?0>?%)xOC^ )r6HSXuնk_e]Sܝ('xW $P̋?#>{myl Ui]sWq[t[n]w= ?]7~}MVHq3;n%4j`|Fgc3,#$2N"6N t"_J_V=y2S䗯m֗.|˘uFCA#Ģi\nֱ + Eu~[$4c9YQ&d xJ5\@ukR?."Jśd\[f]FH^J,>3|ؠrܿvE(8|+ࠤߡi7~M ho~p|{b}_u)hG8.@ѽxuY֨ypU璑+Eb>6Սܣmt x$Bq/V(ñMqXE!۠fIY:2z;ipUjsTsd;ڳᑍYIïfL׻uwS[=02'`%Mi,i{ :R Y˪{iye# 9@mjus@=Q[P]y 2Ry"!t n4dEl1$it5Jc}үcW&LeF&IP VҡNV#߁U$bbb ,9G0? hKHCbzN} &@j{B\CW WH2 0k Z !RKM'וbsl/ׅ=+!C{Ay5dF P AbEݏuNV X%`']!%!]/"%M L 3ִ$/&l \YV Cw[ABLAJ(moY*Cmi& !3X}c CWͥ|}]eț)К:SJ.Z0'/pXq2\iMiw%gy#NFGX.\!\4xP!5Ꙭy {ȭsԿK_~7x,4X6"!K2 g*IUD  U5 D<#T#Y쐆mxmXGm/l7x4Z:x gX.)D1q zq\u߶9(N:\}q},F.eH %I(ث!ϊf Mee3ڈ#O=wG>zFAFDpK:Q$ <ZPܗYab#vP,fF} LjOIwD k_*Z5$4!InZˆ%zт*.lZ`][W?OQ2۹)p`֕.Z/]M;2d8\6w{]D;٠*^`WwLB]%Ô[DR)XB;I}9wU$A\Y:KpdٮIôA4<5J?,J:Y2w H[_YpΤ?Am? c\j'~'nP| 6má2 "(x)ү8V랴%?P>,hl`Za!8lX`'_^XA\y4BB0-7!t:qLihT‘qXp(O,г ncd |ثPsؚyfq ~&".sL?e`j4<@bP1</6@*ܔ{7z-N}EA 2-`l,8>|FB`̗T#%y7H@8)TMc ~a L|b2=ár(=+Ð Dbt"C9/!rO'_.E%B! &!m˧{XEt/JZtc`!<5,]-T >d|5vkރ>|J΄#ʤ8 %Aa]Phqrqw?XPFdGbOZ/F2PGjz:qm-c/"^6_TiT7'}2k+N*;Ppɪxʿ=<|QyёrH2%w'K9#K'ܐj mZD¯UW7|f2cٛTa#HA7J^,JvN W Jg|RN'?U endstream endobj 394 0 obj << /Length 3302 /Filter /FlateDecode >> stream x[Y~_!$/j}a v<+qfKXv6~oOUw" f:j.|F>#NsYXza%̨z2+mkl_qLVmhMlzuEx(;,+n6 eMSnr؂ЩVuՔM]ڬ%W_կirɾٖvUtҞqJٴ X~WgY >%cĩȬ]qW 6x=A7i'ySM-4qFX)B9؂f|!pwyb2)8 M6CX$@&Rr@u*=TpcrE8T6:RЧ%'F3,[8d8x؛Ёnݤo(M 禣&l iv"/~Dh3胝љI`F2wi&p厤 LRPx H؊b2.vy_f9LU&<ʛbnІMhl65ml>qMtlS[y#eݷ?W)G3iGzԑKDR9v ) ̚|{)Q;-/vFy˽Y'f3&0&`IαG49%'4gk@_L5gm-%F"#;M'CCiY'mt>?*/A y{ QCI\gLStP2L :/.q U(4btb4qX#!ReioƬ_uxԙu( '='K%@d3L &Ǚt9nK邵'򳁅=gNMyݔKS1!#;߽h;)ߋ<|[b 7jWժ,dSxZ8y,{ `/S L%f.8ԙ~ qy#S=# tL(g@G:z9Ğ0`:$3Ύ(%森'5xfpnx'zvy?{qgt\[r!1t}{X˯ gt ֘m<[Hg#Gprprn; ۊ(OVq$6-Hm.X(Y )¦b{_U  h ԠJL/>S]ӝ1u‚j ϥ,4OB +`{8R̩bΤD ߕ6te@\!t~T|5\BH{aǀ3O}(0|RRg,'F߳nR\w勯CK ^H1ַI=ިrSӊEP XV@S9zW@T6 8/R"ܬD7>;1zWG}Hk78IyP4+p7G0!ݜ1sbHi*+tٷ06ƫ mwK,!hFv ` 1*}j.#/31ۑC>(<ЂޅDU1ʅ,T9lBs!nL"#tw!rAod[2C m&Y qh\;t=_ gMgK9M1'fڈL̎:n`};?'/Z3rc\ &5r;*x2z!$Yh:db&.M9 G`1&!@̸ qU*sa7*dJ"j]^ƧoJ@o-oVeb x e?)okg1eGkťxz1Jt'vRyu<åi!h B]ށG- ֎=;ZE7hVջm)>ph+|i\,raxPmQx(=.;vA䣇I.SϏ z"*p?!_!7UIz+`H"uOS@ݮhjDyAD8%QИEY x.,tD?{P}qAr/"Pl([f?-2ñY|}m"ȗ.=&778h7!,b}:)s`@;px4'B0QuaI͝?3 kb*K?]ZŮ/#&S 6 eƓyoyH#ipZTLG'>/9w1:(5GG7d /—:A/ҁcj TΟ)89K_S3)JE6E8$>E4@)YmFTQIHx"Gfact:%sύu^"<Թ +;c8%VI=Q|`?r'q.tH3FXy2g Uc/$R #Uɘ8!ƥ my4z}C]`=!!xSEx_.~vg2CDC6zMb뎈 vxQ˾£Yx.W':T`n`fנ7g &1Q=k=K+9|O1M˓ҞINNw! :AlǀjMV$ctFX~sMoQI@>"#2$\nׇd\J+qa CU: fs[MlcU>K+DOao6vɬr D1|G)e3 endstream endobj 408 0 obj << /Length 3464 /Filter /FlateDecode >> stream x[m~BhWrש $&pľܴI<RTHYR\ޥ G.G3ۮl=cΘbftvq53YY3=Xο;44H&ҦOUD!*n'tM4ܦd $4B/zi:›[ we_6|5ρma]W/_;]AHYo+? gwҖ@ħBs#N3~T|ȁa 7dWft(uц cemgFrC1dxp" :(?VlW7-%q5ծ/MYڕS[\n`=0*Fh0.$5Z=m=f^ߗM9: ̊tn44==t0&H;Й,=M6nmP]_yh˨D 8jG":Uʦ~ڹ+9z*m#V5?כ"'cNXvaru3A^q*g;V`M_.SgB@<"e DYqD@eNheBQ.hi4'6ajȺycrѸ]v}@qHf`?UqYL=R%V@.&rV)~9ebEzG}6UE[;6E§GD]p s!Ebyz SOQ5lB"lhjB%=aXԘ4q Xf# ӌg ^UG{{%¦I^^tc3>&JK@~T͖l!!=mfi 6foξd#'H2i$>P(=&daB9["!E$S`IˈXq /x4Yţ{~)":As:EȬEdܧ::%bp:eLE ^ TJ$#tehX# S;`s0:n[~- GD,G0فa҄ل1(>a" / 3W=LwK(.AuK([Mg-ȴJ&<)xdJy8$?uDLH'rfΞQu9T-TCF\eӶ w:ծpihOjݴ zM]l=&H(-5c Nth:> ?Vݕ*J~aJAL)cKw%d9ko*H7˂Hz#6}*KۡޫB"ԌQ1fjlXk+^ X@%ʱ>dXH&ouG킻GH߅*νӾ/N%@6ʿr(~"b`{w DZcM_L,ߡs=orD4 wTڥlh!(zֽEoG#`qk5R/q.m VH ;S{'|_xݢ4tHE\Cï#mIsU&pb,J\{цt, /IX:2~8@ ]'56Rkeb;zZ{)]w@hAz(ϓZ;3 Oщ䉱aNR3ĥ0<żv$cRŬQKDB>C'w*3qy<;zuYh*(O g w-1࢏q"`9JUDAC;}sY-Ly y!SYAU}!R ٫oQ膇QAPY_ϼ6;IkqV? N)*˴SRH!PQC EdӴʏ Ӻed & GKZ=^ǎú-ua"2ֆ}H襺Vsrh6<$,R`iKvNp'ˏ8! Ӑ 2! }m`X9kC)TI܊Й@>ZBIS9ObMeA\h 'ԝqOL\.|Z,@w=tI]lۼ뢧c?xw7?\

> stream x[[D~_4)\W۫e57 OʝT'lsNcCgPv/q瓘Igތg :f| l6#O3T3>K-If:Rl{J,VfƕfIf>Y&0ըvJ,ΒذL&zC:z^:rW\dPՉr 1_C<˯M2Mo![Ĝ'-UP٣x`cww^-[wƕM[U몲ZQym7-4U\oa:6o]ӺU/`GI<fiBK$d!βU4UPoc zEYU6\YjXUP@Ͷﳷn@8d|=|w]w.y6`0xbR,WsF[IIyTaϡhݾpm]mCm9=m"^S}g$vΣж1DU hQ[C)w%.ÍTª] ,UkǑy]-:F9ibjFE7AF<8M+ +\>Z lq*l[; U%b<컭ںb` D-ϡ+Ci軹6?J }uF9`C K8J Hv^ xUy2!$WN ` 9>\y#%Z_BӨjrލ amJBV.kk>C#@@6"RRt$[- աXSEx߆v%K t`[/yӐ\ڰknvX˫`U-nIb41H* >䞱H41LѮyP>Jj[oX{O|cƕ0Å]X&oGUۊ1Y[G[sjVD&qafs(m&ĉ#H\^DԄ [P36n)tGȪT x™P"c\--^HD6X\L,T UH OWrX^ҦyϾؚہ6AyI7^*azuӂGantE 'ݛuzy]qÒDk/w28m{@xf?/^?p68{ǎGm$l'4򤑶j%Yy> Kiܸzu/gF'aF!6(:yhB"1b ^y[%LB PJsHwH2tۄFf<6}n?z}s}g/t(]8 8&y_ݐD"Cw݆| Ϝ \ Hx*/ V psE#̳DGd\/_tF3*gkr=RGt$zCz 2="mc7.DG"6$3E_V=`CA1AXl&m t*XxPtCm^ Pw΋~qB] p3%*:But,6vTC5 ޮƾ Mc'PQ:=^ C1>%d ;c5q(KK%1E} vvJqR!+@XHǠM2S,l1 `)+2&87 U]Q C8M)% b0G ޼xDŽwr'LoRmY1[(m:6\c*w{)jSۦK3]Bzӝ1TCfY څb4'r]b--+7l;tMSXĶ4QpR=9n̉@> k!QI\S}#ID b'|3N\F;,v}_MTcn{+( yQ3T@uнvu3 7<}&|6̈́/e#uD((O_&:?C-a|m0D߰KwTTy:ofWy'n?Y }=u&PS,_39M#![Ć@oRi+>x|`K.n~f44|gk -Gv6}KNic%;+3_PqEW-vtIIv,{5fy'ێ N߹暰B-Dی>5xգ>{ p1JyHj4z7Ɨ endstream endobj 312 0 obj << /Type /ObjStm /N 100 /First 900 /Length 2884 /Filter /FlateDecode >> stream x[]o8}C(`N))YB[_tl5͗}<"=\!0J䄱G/(EAJ g <6L6Dr (J~D m BS“ #t@#dHصp8 ēFE0ưqBI8 L6@;0H x`l`O7$M<nĠEU 6kaI):#qD6G$a8Y4Fp .ëp-Fu(f'w|k378a[GP3[g6$ϲIϐP2Uo 9HHqgޞ"+/ʺ.iY..u;x B]jztd̐ Ja`%rrFpDd:F@*\PIg7|M.Gol#P4GxndHZoMQnW[獷Wm:O;61/ :Z9kE--2I]|1`^^:5 D%gEIK^qJI^I iT2tGg5W`ow pz{)eJqR\u:٫|h1ݠTd:!WS(ю+U^mTk>WC*Nf !xa *I^٥xbNS b_nA>#aHlwHIRƤ>WW'eÃn#aFnqpRl#N_U(7  f*q^25Igs}|QmPH; HD|\#x?R+ݳA"}n'aQuZzҏ+Bz/,CIC3DO>$s|Y.,B!ˁ@"d"dyY^^^^rר|0 ANZ[b :螴6d,Z>-u$: 9#:uP=>:ݎr֖(RVg {<+m_\$'y` hxlc1WPtٛZw;iYdZ̨Ox?ϐf ܠ0OyxWx2rx(>~[³r@$U-Nf&2EPk}ok m0t-r+uPwQFf#y-{^Q>Jc)%".}o?zĥ?D5u@cU 11!1!v%5>q5M^;wg~+닋>Rbv3C-(0;zLi=r%pI;P(qQ#SI},.Y}JKNI2: n)޷͟[AdmxSBOCRߤJ}(Uڼf.y~2=X3,\ӪT YQ]qZvp0Y#@@R‡)y#H]?{D endstream endobj 425 0 obj << /Length 3144 /Filter /FlateDecode >> stream xio~&1'sNU 1p\Wk*we)@~|ߛK[m 0̝yyuFg4>}s#Ns2+3(aFeijPÑzpr3x;Tz0Y&ؿ`uOMP;2=bAF] U4F m`8|=1i⌰"1"b%h @@=A`RigWyʈL,6VzPcj0)gequh7]EPA(:Kҟr0N5 %FD RD18Z0Op qζi Bk.YKmUƉtˎʹ(VdU0?A4OFe̩: 74cĩH_C+Ц24; o eRw%R$ n) 10@v~M$}{O*DSfV˭EoBpyYꫠa6(ѷ3BD[pd|=BoI`Yt0@q|fv=6QeAXP|72rCjM[[63[d`F\KUb)e 5dq;1J7qM#?z[~"љwIO#u@| Ʋlܚ]T4%m`@ɺe ڑ^e+p l͠10 G-~$<.bgӪקhxrώofrBL,G.mmWI"L' $vB C#'vΓ(𥂐W0jD)j MEC⃡YY/fިc8(f,?w!) Ym"D"/z8F)E#Hg(XƠTekMa,@=LS ynmg  n=#P8;`h`ԗ=Ƅ6S/'uno%T)c L0!OIޝ>5dg)GV׿,Q6Th5H]=O0bNd~7>d TI`%ʵy sq+y[")ѝP޲ ӯ@Sk¹j0Y"،Ta3Ai3*ڗ޾؀HTUOZC>UdJ"qx]ވsgo-ݳ8JBiow O.S؀3yt A#RQV.ayTy[Uo3@_.(I~5_ >cS-c%_4uqh=ƻ"a{H51U{wE(YZ"oo;10ƳƤĤS,uM<:x' K$۴fmfw놻1͌*3~k-L^[贻S8A%u7p4ƿ7IDҜ\<.\yv>,Aޕ<<_.^U}O<*" O: o?Ex Ix4OQ?Enҟ${#a.?$Ah>\eaD}T":VMOS1qXs62(77WHpr޶5`76p5*77d;L{1d6.Yܼ>.T%nop_NjҀ1^n Йq~\?JE"9M%)ge73}E>/F %p½]N]_g۝???ÉnznQzB1DVjtKd<V!!} ,[+veb-=k^6Aٻj [5h}!cO'!U=@?k 7WUC3P"_@S*Im㾾Yu2 99sPBkkwğc)??w0?U~u:z/}=0c]tR)UXgdWdFWk.U-IelG)_|ZCON [c'7xhuy~ 7cjJχlP[fz="C OًCUtžOUF;*>r 7Pލo]Π-ڳdk@#ͮe9%ų7|ov t)?VJe/2luy#%T(RWe#( OA#J#Ӱ!z8 H0F¤cB(NS@kh/LUcqTJE"b:)vӖLkL`A4̫iTt$Q]-Q1cOA=j]59p0~iBrZB,5L7i[ŔM;M*o`Ij-oR6\ vW?`_ In];@ endstream endobj 433 0 obj << /Length 1654 /Filter /FlateDecode >> stream xXo6_!/2/>ڡE={e:֠גI)q70xHJ.^t3@AR_yL<-h 4Tyut.(\,Dn&X9Isa| m,_e;*蚔6>Y!E"&lI),e=XJ %*1 vG ,86*Ǣr nMm+u(S^1~YM:;pmuEyDY3'$:hΡ/CeT ԧxy ¹"NcSLGțoe=ժ p*8eV-rDZz)C 4Y?2ݺ?p9$ ͦ,t 0Y;eDAΕ)GbP<WP*ySmv]݀vkCOÈuͶX}i o-Uѭ0SØR~L$[ó]B4>T)aN]7)tU &?lPsS-sB bq/j Kp+bjM1@ Ė>uof JPLc uw@jjUmY[''J7kS;-A"Th? E\Pd@KEhPEAG D#>E(ʢ+Zh FixHdV$6L) Ȳq@ E7`%`aΔ8޷(nb>fnL$Cς9 씊[;QxV b7j|;n^`2ΐ?~ݤ8Dj}IE2B*$ Q9yqR5)~MABq5IaO_#ASfAq )8YTA;&:|g}eBQx 3"%5P?xS!fȞ%eG{m^,Q. ~3d"tgpSp88)F = qVyw.^<IJ6`2\nJpB,9^!w[ldE]/g {6" o ,¥mIapj5G8,-OY{ܕ fy$.ӵilk8+ ^Z:lpu^:+Y wvF~'\A: L9Tf]ׯ6e[G)d۱2.pڒnhdUj<\zx7]Q[K~e(ud027ڙHvW Ft9;;,M{+;xP_l P2j)>aw/G8tHM(#\5ݮxG26m]G0(g[1!iH9@,sgm6L Z)@>*0|?ǯ%$[3Ѿֹo=}Q˩)5:'6`p9!єXIϏt>} δC'~ Dєg$IJ(V<'j oL endstream endobj 430 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpGiwjj9/Rbuild3ab22610f92cbc/gmm/vignettes/figure/unnamed-chunk-46-1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 435 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 436 0 R/F3 437 0 R>> /ExtGState << >>/ColorSpace << /sRGB 438 0 R >>>> /Length 4585 /Filter /FlateDecode >> stream xKqW̒\h4pH$@2 sNu@yݙ穪9 7G8~8o_+599#zx|zwsu^u<~rt\/p/5:B3# gXt!j;Sg)Ƴv)3D`8Sb3{l3#rb>ޗr+gx3$}rTϛMYFԀ팘"{/ _gT:CZw+]6zÌ/ZwBHg7uSpvM|1xQ6;&m[%Glyzƒ[9n gd7K΅m'8\6paM-F/my o^X`'${\u? !>[7ޒlQ;BX`ky؆ٿ}f[m7vO?_Ίw4qb!Bg iOhi·mֻr>."* ;08wi JXod ysw&1_ido|Ymmm"9ⵚlge\\uttn۲vALg3﷍yN#۳k=M c6_<|ԨcSH?#SlgmӔ|D(a &ҶڇG= ~~m `Mb?ͷs6.5Lkm!m" yWl\ uvf8 㶯L'bݯTZȑEǘ\qN!n8ܮvnZ- -a->qneC75];Zb oJf!ovOW't>|f7+ !y6]zgA cQrhNCl :]y3 "DǷs8Qx #.Ql8Zx.\ŋIv-U &nG ynċUŌ oߒ7ЉBțwʛ yz򺅓;<ڳp2-Bq DpbNJXh *ypF,cwv`nL 7; ͎ [.B`g*yH± D9Cy y3ՠG 'Hͬ?O+ ov>?cCcN}C*b#F;b.} 24if*b#C_9M_ '7[1L't(m+y86د7fn6ﶱdIU9Z8LeqB\L  Q㵃t͖ }ey*lKj+}s=#]+:FYA6+BC $tafe3]+c!,Wqc62ᾙ={zj-0^DmL/(a`mumonᇮ7ҷ7d\ḸzYccq-@߬B\X7<4 [o*X:7S ,?sګ7uF9Gy @=2Fp@q랬SMU(4(:+[h8K`-tmUKbLՃ*K-ZiJ͓d+yLv)J6?*a\]y;[ր.%բ(< TGVL9 ĭzjѻ0쵨ɂ -)8%[H^Vp!s,@ܬErI.E_SM^BܢdIEhgmd*Z6R{E9YbF Amf- oQSu֢ n֢(\&bq`n֢at^o~T@;7|`{Uc%{T[_kX0ɏ$#Depj_hZ2UբɺS88hT:^݂IR06բZZzl]ׯd$)z^hZ<5T:ߥW=ZWpH?uVp3m$M^<%T~;N{u5bd$_Gf1O,o gpbR5f٢ pPiZ9ZSsR)z7}[hM6A}ԾJQW~i绮&YP2:R##]cٶ5-zj3KQę -ff)T:KQƓYp,Pݪ\T/_k|HT1R5SX"nz@ i>hTRnP7T,e?Z o7kIx"|j\w|ȸqGqㆭO~֧ໟ?3?`xCzqͿĕix^ox[eZfO4aZO_4r k^ȳi^{`Էfי BոAYy4oxt9Q k(y\ve +_HX1ZHX/279!?yHt$(pA'>>61:^?z:~V ѳA߿{mC8^gjQs~˷Wlں.˷e ;QDU^t[wl݉n;m݁,H[w!m݅^T;]([wl݉u'֝([w=> eN;Q@uL[u,[wۺe>'^,[wlnv[wlnNV)mnNV)mMd/muv[wlnNv[wۺe.;yغ֝,[wۺ֝,[wlŲu]`ٺ#tv[wl^JOXbҋUJ/;m!c]6!IٰuM̆XduM}0mMӆXuM؆8l>8o6|oםv}s_wîo>y7u]߆;Y[k].λ _wۮoNM_wrm.n _w. _w|e7u\7}u]7}7}e.v_wqmӦo]\lo>o) _wqm˦o]\7}%k]6}k]\6}uM߆;}aӷ.N _wqmo]7}u-_u']߆;u']]\v}k]w}s_wq}i7u]d>۰v-_[a. kw^{kwqͭM߆x@n6{:a7vWn>l6uӷa.a.uke7vףn>mbvM߆xGl6uӷa.a. kw^kwqmXzԭM}pͭ[.uk}7vף]6}۰vv]߆;yG8ztZ]]ףڝ[ztXo}G;xXæo]6}soe׆n6{=:aӷa>oܝ7}ssoܝףܝ0wM߆xG}pmztæo]ף]\6}0wuseӷa.ч7}雛Q7w\6}ss{=n>?+v޽o^P7T.zsqo?TDŽ?>+"7gaԼ>L_j6QLyOL^? _/$ endstream endobj 440 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 459 0 obj << /Length 3900 /Filter /FlateDecode >> stream xkܸ{~ _: d>8\.n[}pf43nl6H?Ǜd\.hY")HN5Q^>,'?xXjq]đ"a,^/bsI|9HÀ2lR>pasb) i>},7ÿ[^nC/<^` W%t$p8;KxRmh pNIHA pcŹqvF޻G|;uՋ1c^W|n$NHJ^aZkDPhtUEV0#kt fʌeWSfcɔEE Z"=p@ԞvԶGƕ"C˙ԡ aOl<ճ"}Qowl@DQ;G3Z36ISj`9x1@v#u'&*_(^+O(ɱgfFW1L7Qr0zneOpJMG:Sj{{Z%@勚) -ڮNی'jgÓF"P0_y괘[2cDӊ-Vҏ $)7$'NV#l=^+=r;իz `f.WN+Kx^ow_*0mdhڇ$?n?^Nh_-}>vD_8` |^)7:uo-ֽźXb}iIڎ/Z#9:6MRFT$߬}P}qi ~R \ ܁IBr>JJ8VO<Ņ'u5EKS|%5rD6€'nUh#J}±+5`B[ZSϦoq ٮ4 X_"s񰷭3l=MiԚ4aoŲ.ۂQV脊WbQND:'1 t&$ !6.nNj7ܐݨOGfnk#*v6Ԅ ja-@ i,7 LЇVI`2 aHJXcaIqTuScb4@C2Y=.[s6?[ے!⁍Pd#ȥtQ )_H&v#hTݔ@BT}1 - V$F긢‹yFe\xp=‹&Ioekvߊ;[#MXUPtx31 K8l]_ GuWybnEb<+RuN{z?*x)f |bV ;p;de=T_#f&!6*4p"fk*XTcٹ伯>88掛J^.R#G'rG :L(A%/![zf˜s MQg&E0JMt'0pէn%:f wb)3܏x'I^"W!41\Zc[碁O>Δڣu&cwaI/5h򯺆ͮ>qgs<=" EjWJBgVhmK*5[{"U7L)XٮVk 0.l*SN6^ ~| ΰcg[6%;+Bٚ CB3 2`BkM7hqL>| U8*XGFz#u}cL\':Div'3}8)A 2-EDM9hx||.Wz[gS<]>HN2D= ܝjoPgȕA0+G?V␤uO~p`9a0m״!6@wzzw;LmE?:tZ fvGMap@:`ޏU"s[;Ur+SzwrН|rUWs r9} ʁx1.a3Ds<#c$-}_lgS>Gb¨8F\.aI7K ?>E \>N w tc%o]ıPQ_=S G-/CoO8y)!=)Tcj"/eIzǴŀ;$ .zm#яmh N"p+JJU;%!u9 a]H8pO֘9{Ws4d0PQ/΀@mzn17_ZNȠ(m^6lRkߢts@19W\}qUn{/"CQL5Scǥ⓳7]ų] 2Cj4Kc'a0}fhxG'dAӜN,CX(No%#7!z A{ ~y䃠> stream xڭYKsFWPU(EJ\^z9"'J==|m&r0/tuf#6~8>rU,Q*̘QY=[rb]nVy6`0Sim|4RFeVŗ#F Rb#lZјGvyAϓm*ÌFelMYE.obAi=Ib($K] yhf@z7 N$QFo:j;>OD*flsy.O?6o8U\ճ'ǽz.[Ćk#lХ2itVWi 2Aظppt{=r ݑyc p #ߜпb8uY,gg3;!:CJ9" D$,$L>@'L:ā@lyu:&R|"9vL{Z>5(󐴕$w# tt,3nHZD3v8[sl2 Xm` >9-#njVq*{l-@ؠ beX WQQ,vzӐĴE^tg`oUYҒ[ʫ\Q]+g6x@ex!E^cz7ћyc|U{'aOOq_bHS{!8c+zGÀ}κ_Chrj ue(+  Ko,q>eYUJ!ޟ]6B͛!C.ܧ 5Khѕ)BlG#j0x:/qE?ն! $6krv(<,>XG{^ΎN1o#ZW5;/wCҨu"̠xC$醒 }x[9B*A-za^-,S`5[IAh Dǝ[wW3+:Hb^V]Ӳ,W|(c$f._)j6#y gc@BZ6mԆRM๰cNss/殠VHXD9 ttMZMwH}}'}e wD U*ꀂ8((B9a|^7˰O됓bgM+ZKz]u F]zEP}MBBE,g2WE&x (r .с)Ϩ1ô;~S^N,>x!We7 [c2tC5%&zJŐbN۲/@]s Yo+$x;[[! AqM?pM\5kd]E5nU[-*Ov6$X-w]&t I4:"S Ն=hdD4p&YjKd/T-BՊ? 0֕Uesj`x4Py?|"HvEk!Ynhu䇜`'&;-i&L2Zb\)"p0w5Y2%:(4.Œ[«U?:*v5LT:V6j˞KJ'9E?߅b\a~8@U<ŌL2*_:d/|ZQ {Q8l0||*nc𶿺6_Vuzzܶ+A%˗D!> EG0Tg!KRЇS=7%:㕷!,ӧCo["6ok4J_{駆~˻~tXf&H;K'!B endstream endobj 486 0 obj << /Length 2500 /Filter /FlateDecode >> stream xڭYMs8WHUE4ڃlǓ񎓔h Sx JL9N^L|^w~ 툍~y4IO8id al%E4_Ջ1x£Vj=7ن/vC0bK[ӆ_/M8p3Ȓ2B%4\wO'#&-AnkP9O4&Ѕqu7|csXxHgyhDz\Ќul%g+zT:|XkdTGp]u(ZZ!fr'2[&(J~0m0IbO-o=h΍إ+ԲmGGqk[t6S{I^uvšA"4,Q}y(bePBfN7yiQНEAzxF|i7ax tO`S^"UaXeOjNf}@Fi]NIU<.˯ g-VXrBԧS[."q7mIyQ4+0G,ElWFc5Rx+ Jr&;%c($܁"j!ʆ f\շG|~l(õ{rEν@em(IA&VPRE:,Ď3cy+)Z\v`quc ҬPQzOei§/ue׶$ OC$ -`S8cXe[ϋA>DbD*D5@&(| O8M-y;-_rE;(t\aAI"^u8z8;$bbZyOhՇQ&nq| w$Hs$^ژWn,M6Ĺ>uM ۫n9PրACջVa}9sQjo$G S$Fd+: H{`=.UKF] ?5ArI8=Vk0 x#&a~QÊey !w7 r Q :C@=6bj+wd,3W#vd01Sjxr߹ݯFB3W/}aSޗ8?rH0uƷ4lm`)?3؎V_zRA:֒ýxEhdc0ePfԊ>_*W:+qwE[ݧ)ՏLiLk,^aI1lIBbp޵[s+_m endstream endobj 420 0 obj << /Type /ObjStm /N 100 /First 882 /Length 2407 /Filter /FlateDecode >> stream xZMs7Wh 6UJ\(ɩdWEI}=Jm0ɍs؃j3=FkP"XpDJ'А>jAH+BskD½^dA:(|MdX͸ O\ָL Dx!&t$ %=p:g:'^& >S=rIXʄ,ńka])@4pVؔ@@x%&&v)tɈV6R,B"wO/ Ixb! oy1ؠP Z>'~E& Z K E,999u,L Fv =F‰Г84; ۻEF󒳈3,#bʝDl?fkH]pt $N!`JB)44.'r#FSf`'%"Rx@ w M:w(22^u38<qO3~翄2d $sdr9OˆNYӦi3kPŒW@ [AC4B?oa~b!7VLƟ{^'cΫZzؗWz\ԿM[MNu|RѲԨI^d\p4ofj^A G#8_kLJZ1!b&pNV57ͬzFCַ=%.@d$#n%=AH;Q=7*o#Ayph2dIlEhu~1k|_P76M2h}$ y|'Ua[?z$ !*tk[d?{hCAj#%ww(0OFB* \>b5>KCgSd$- K^GDjWdEG0|UDdH`~8:? F4&(HmgzZ1w/Bh 8=会b굤`->lȮNURG_$ &DCEpuX|Q+A9ypQwc͝(tI[7顧ġġı̱1Dy-]2x`Pݻwwdv\[TM5O=6>zfڵ!jmvh]Qw'BcĦ7ߘwm x|]?`;/`ۭiY'5mբX]Ϳ [']7S^ i8 ,NVkH6D0T7Od -uE>i [: պ +X&}G ͼLl0E)(gYLLw-@@2YTjJcg<~&G<%myJIIyI꟧.GwWE[>A/Vwa\wA{9uRܣ}$+ȿˣ}օ]V[+2vޮdPe1[mdp鯅 `ê38ƽ-l l2o#v6l>6.-EO yKyW(|9ڐ(7"'}Pb,8j X֦LL!$R,Ԧ c 8P̀"dT$8ϖasLˬH;q/`tC*qV\Ww B/> stream xڍP.  waAf!;  .ݳս5U3t7 4jP ,cH)Krsx9x0{_bt  3$6=)C!EW{7/_[@ %C0@ l P(B! t)3DG3[HHw 4a6 'F=@ ` (au}pl `8Z6`?P+3$A'W%DTP: +ilw 0gs hCV`{@UVcC,ۻ@OdnP?Wy.@g#̅lDaNYb)upA`.;Ogg Pw_ ]#6 RIqqq s@NІwx-OG?Oz;BVOE|Vtos7 :77 ,@`?џ ?SCpd4^P?SBM[[KϊIJB=<v>.7ӃQ3ƿ| VPП>2vkZ}Z!7>}q?.;m7!YW{??js_OC {Ze@TJB-W3Z ߇v{,0͟\ك! 5 `b.Czڛ`l'~DK# @aO.|VPg{ߢ? So$ T 85FBO:Г?H _ 8>X p >eo'Z'^ pBxOĎODOD.NؿۿZtuv~Xq@ 4*Spu;ֈ$Ön v9v[,3W/%,n0_S?x7ס$ܛ&hoώKPQko<8!6Qd*-QS0: h)\$0vJT쩋IGjVt߃BoU؛^KZ<.$xCޒ)3%E+"3q惻!}F\.#lU02Qעz0Y%UfQn(5-Y;:rbJic40$OhwJ.ζ]"|gz5l&*mkFȃZZl&Q4u4TszSan cb)Dl q-ČQJ!թ[3&\%Rn~B{{uoa?>7a5xhjd8ĸV]( u[:lb /:]sLOm8hɴ g$.XC]JWI/5jX},.-GL~/ r'Bl Px BαgsPe. v\݀LIЖG=5D~y\7RՓT]mPqKAaS1 j~x=# @I>{5D,0̖"2Bl~J"R}FyhS8:J>6 9]^N,pPQIX];iB3Vmݩj {H1矟`[h2TOK|3Yq7]D1i/'drد}Z#;'BHPt׷ntr'.(c8ّO~ " ?o6# s`[1< ezC ckUX5Ami[2A^dqqҨyeoX.eC <ؓx; Tl}+Fz;|{&+yb-'T1qEbRWYnOjL(ǜ.՘Dy8+beJ%/^xC*N^71 A!W]NW~jDJu()j{7q*ʛ^w.Z)uqWDlJGBbYh,pJa}~u!~/A貁bY,~A,纕IM\@C@qZ.N0D G Y 9.C c,h}="!BeWI8<yrRŷ]xRWyy0S$pk&IkΗ_BOvv̶3KDyD^2ᥩٟC63 a |+M`q{` ]E6L#YpNKg ;li(أz8]^b-Le^YUUOSJ_VTXMhUީ 4dr⇨~dNdPsa/M/E iY<O}X跃D C?mt;+'_R0uO KWN( Y4f䆌lݼnGhL7p\AאRG6;a:4grXZ`V  RbiTb~H' H4+>Qh2{Es1'sqLr0 #caDOtCp5,)?.k.j59WWNjO0J16r1[W?jnP >E.A{ĆOS^b|©@WfVr,H%p`4FbUV6fkb?t5z77=I76{z<;p^M3&R4"k%|E%*Eyͅc?W: tg|x娍fp>oiHX#|1sddS|sԐW |\˃( 5M}@gD1tmd^zPe.3{ Q=YCvsdP $zILTIZvXy/sdTkW7J/$B$.Byzusqa^099+2?,-2wIX!#ÍtZ޴sL4K)2nk_~k-"sغrf|,nv[`+VNmjNDtW(qT]]j(C/\KjQw>h#7'$ Xu4TFdnk1[ Qͽ~G;7]{M1/34%6K\GGPuu,lAQ41m7_lk(δ_ӈ6.~Sg̅=9g"26eu c2s'~I4ߝ?ᵉW' З3l_t#wnKSnYnJe?)4=AD {Ļ Sy~DU~9.Lxqن|.@mΗ,V>TXQXe|GB㑥C rm4??pRΈ22jVoرKlU=T4q?]k {X[=xcC}UԈw{7|eԹtpOy8P׫zyK  WyA tq&!I\b0B,L KBmP#^4[N͍k<8NNYDfyW͈TDXmAX>KEIoY 8G0:"|6NoU& )n_7l%y^d[WaMv`aQ%sm ,r@͛Ӆz ÉsQrNot66Gh$m t4} -Hr~/ Q˜-OzAyU| ԔJңd[| ֤[w.@CgoѦW9EW75Vc i4giY|#닭aʊ=Y>q-[ .kfR)>͟..l:n\i+J!0 L4:=~r>L1R6t,Tb?pCn4|$/Þ]+V]%jF jڕH,T |x.?!Q2^Fe`x; FycߤE>am^a,pZxχSNe~X"̹17'>MG RS[1 -mcQEə3)Am9#Q{.z F@Hك1N%Po|r$?<}} ^I:T&iG1IbዼnL`>U. .y*ݖ~':h`nj1v i7~|19\KOZq&/`r?s-^$^AdsUhu`$bs"?N>^YN%DSMϜhp+cQf!莘%du_pS:D`.E1C}ArAA!c ʜ%[<c]no"UlN - jpXeV'hMuŊD<>ro=~W |-Ꭓm"R[?ACI$U7aB6,Dz|ie:(o,g6 =|F}3b D|+&A2!qp2HۖhGw+ok$g*F<;}):SbjPȄo]C&Y~FpQE.m}qW9"fMCёqʻGf)NXILey~ahq2 i#/תi.Z} יMiqX %N?s!Qp_Wxgq<@Ѕncgߙ>˵aQT$2z)^aX.$]+~+@x9w9\8Ym4m3/*JCC ,Inu.M5d=ֱXLB&QOUk4p)+a#{{Y:ҷpL> Bb8 x6x 8*?Z:>;0U{ u&KCKUU[݄Wq)u/F84 ~CpzQkhP<ɴ:aQqX!- ~K*בS%qǧ[%Pm>wc!%b>ՒS=܉au"4TDġ2k>NDo+Ķ/6GbB0z2ţkqrPlOc ()#Z6ceQ$V6/':8q bFE%:ػ]\1)֫Պ=]yKHޱ4$4oY4GP6Nls]?1 #;qCx!! P2LZ)#/# lD6yikN#;q1KOHE;́6Fד.G1.eć-Ia@;_1 9O #tqJOL/EI_\xnVbg޸nY}w,7E0dpy0ݫ< 3ڨ!HFG;Qk|#bmBc)?q7uY*z׽!ӯZ Rg_hS1XTbRb c18.gcŜYo_*^*鉼}D G [<@zZ3W{$X^Zʜ{ $pQ.)Ɍ\(½sKٝ  춒x7`3#NlôY&2ҴϨijoEDecd9K$g[ŕmDNKgY4ģoX f'_p"Kptۤ4tL. wo[G÷TLgկl=˻FO{$WF;Uob5ȕ'Mq0"{BlZ% ^TB%C>1卿wymDNm~7X4Rya6##5&ly"dtaڶ }2%"+d.qoe岧 IH*b3 |d([] Kp}w1P%"ix> GŽwqhaA(3]# gnl+ÖpඟAS6 (ȋFe\'?8g5zq*.Bm%k{?Ł'm5^>> .5]8Wxe(jCLz -k+vE4"gAY~iege߬?S'j4DSYNU<߃h*Mԍ1'NDB]{}mEĵ@Fx&FL~2Y(qwdv  tՌd#oFT0yj> itW$^Tյy.@Q؉c6Ҕt:n/|BjD^wb}/ h~lW+CJ뜹.ฤA)6 Df SllO.6Vb"dÈnGNfr7 |Z8ua8w^}|w#O=HGEPP;Xn,0;kdZ<:*YU/FhSW(ǎ]mLET%9+$ }-;^h spQĨG<*ኔ';*d9/H,-:(X]Odxo|6w `fv^/ZAB` !AuFoRS>(THJSS)3d,)L!8t2Ϭ8Է(+l/K3k^>\( Q \~l?> stream xڍP N n=@pw݂zr{kfާJRuFQs)P Wae3!PRjX#G:Xe! 4q}I*rnvVv++7 ? g>9@ r P-\@cF `f jt63q(Z3Af@W A#`dbrexXZԀ.@gw9J&KcBhXYPYz8;k3˻9.Pv:e27v dhe` \=]&عMMLL nUWw}.f֎.L.vGct0\]'a 4{?w/濛kpv0 s7GfMk'76"d@W' 7zY1@{ ~> G{@?k ;++` v@'h~￳'@}X,|d>a ;l1%W)&0rr8Y\bb7:X}?Pv{h^ZRO.@Ϡp?]MQ_2rSOous}E.8_Sm_+3:YW]u1ZHY{U]ͬ,Pb`dea?2}>\gO}y7-c{ﰉ{'}́N1x/`rF\f?D!n7Y鿈 0kLAf"wkf d0[ [ ӷ|a/N_?}Iii8CO+_Tߩ { Sq|d{O'暹9;_q{O@OȌ?Ħ!}(,v-ϲs# l*mOη#}hk47"+$/>'MɪOFjKS8E'D"/NZA=r_xPT 0==*VUj+fc5cJ(Ms`\0.=Qnng1&HNcً}t׫4\SA`MS.l .rG'k93 f*`R|0v2TPQ4RI[$אZ<'逛w;=Mc='z~a4VN _QRƙWTqm*xg*c -qGUx2Ui:J8{)IkúB3؝re{eOn aeC9dDzw!ԄОR}49%%F}>^U=88E"F1e:M 9kV$gi7tgӈ {(l%OUTe !|G(;}\v,a_/NWʊ?Rp}УҔ"lQW>Al`xVݩӿf.-J* dK_ꡄIβ 4n|enHI@sEq55)1og^_&#mWl'L3o4X+r.(~CN S[>_0j&\&C2T;~:TjnBoGOs|w& LU,m$kD]Ctr,P3*Щ†>%tIH'Kߝ9d妛Ȋ2B0ˆl$<`ճ"V]Amy8#PqFktlC.*Mǐ(pM2)%o_";hrl7Gy= .e< #}8máHdj}5yٴ5XْqڬHI)L0݅eZKnˠ1rI'唐kÅԞiBg^nݢoS>#MFƌ+vtNr;]-gL#:? 9pBV(i5ʡVs~%84PnOa~Luv]H#^lp"v-6x.,&n!93yU"@D?wY]l_B541/$5ݟ垤>b"& 2,hȿ91=42$b&21dY5$0p'bhM8ԫ#!9^8Gm0+ Y0pm,*'nQ ϒaW稵_b=~?5nR2q'Ӊ̺"XGL:5;V~xpUL/#Z偈J#|fỴԣY귬/!™$gqWΒ)60އQ@,MLiD:jH̫]e>5<[ب;+RT |_F$oskRC* K6GȨ!IeՅyM^﫢[Ush}!1sUǎ>p)Li/q>wu%IL Gp0aϺU %q!O Rf_d&+(0rO!g]] H {";':ʐ@mH"S]-\DQ$GSLS\fUǞ$5H ~l$`zH]>^E TG>k@ "(EXF;ܒj*$co7` qҔI D}~^]Y2.BwTl wc*@(yedʡç) 6 o̦zG/T`̎J}D_]c<љ|' YLwmHuwD?ݾz{-Ѿ5V/o1'wkڃf2ي hsv.nVCH࿀.sPF5V H^~so*x[dNt"V¿Jwe8Eg&""\u[V7s3 MtNL~9H@zDYc%uTb˒-G ™gX<=E4BkC\b 7A6y~L;,)N\}R% (z= sy$_bS ?GnBo{KM>[N'Tp^nK oþ(!{ Jw^'ap`EZIgZ &ޯ9jlq:cpĨFjpcnN[>G[8v]C-tс$OZ~dʅU9PTEV,* Ryy ޻c}<#)28C`r7}*I?4+44iriIZ% W)zUfȣv ~_~̥ҊV^zrbӗ JX9-"1aG}$H5] M'ɏ0:n t!QōNWZ/ csTnA0p{K@4pIZ+ 4y}[u#e2m}穒)rNڅӜ\p=ԧQrZz= (S&OÙ5̟U6%ٍ3I0)#CbZ4[{z{ڢ"mGقu\µ?-c(5FO0X\8o&~&*vbZ4r@P8Kֶ 6ɓ\Mxta )cfNSnJED3zQG0}vׁE.ؘ<O^t)e+U$k,=mwbxjOArYP(w4bܷ5m29zuN@I&鰋Uzgg}M ^F6?2[.v᜙[+{q-a{׼v7 @X2yzTHUxfH_ dA}o]IO#奪~6~2kss:Z4-z*'|>MTu9ĚBwS5q `El-~TOGy,a˸>(Dt(4xq3oej|'VGꚆ k7 2Nh+S'cpn:-xbjוKK#8#/,Q5njң:ލGҾIpFI҉&N,J  i$WL+~F/\,UJg }@~2\Mr`4 ;x7: ŰtᲮ{syn9tʷM Z)ALWedMDVBUk3Z)x3Ws%YZnI O..A^ z\Z+SUjr+Pz6"  *6}!UUOGP?o虉s-s}n_CwaQda}PXȩ' FcEf1}p|2o&( 鲘&LCY?a6@l[5\78ukn aPDacaTi ؎$Q(?yG1g6uMvN0|"qY#njs*WE6bb WvuYmB:YD6ȴ 0Mk$cE,sztGo3gU#c-*bթŤAmz\6d Vĸ߉y5H@&uʚi c*}\>nj?oʯKhAj"֓P4^EafN{1})yCYOK#:P ]خ$ф5DEje#E&/5_Wl2a}zѩPxashVp`bcn84UcG%{Z_ ~ MRkI!nj;g}!s#:_#a{bgEhYc^L4I>KYl 4"o? h|#\Q6J3juƋ"%_Z9"dGZšJl]tESfW4%}?$Fް?DӄKB$` AZZ(GO!xH9_mkZڣ~X l^|+H~Q/ ~WEf2t2668;;`W#\c %]Z'5O QqDgxట aZRKKaӑQs8DӢ;? <5:ldBkBIe[.fO}51sxPx[T?N`ھ_Sxop>>l ȃ%poFY߂2BLqd(L{,GI>R7ڪ,y= OHiTۭ%S'%zV,!)Mnrp^N>?헆p\Тݱgfɺj 4KDd'&L(:%ǩ=i'W 26*Lo>Ҟ.;5~Ydj'Ma1L@hLV#Ȍ;a#zs+}yյc3J%-ea}js9+!cHD~M>@9тe }r@W5kmж)~Ƹ_vѵѫ{ܒo(f辂S=֛6(^ti֭=>ShP*mLs@d`%hJi(^@81 6hrـm+gVk.{` mqQM+Rd-$d<|a;Q\1u2[!O[n2]G>8C-[ډNeAPQރg4&͹.SbB~T, Z!WYU ̈́{˱bm7%/ffm-e~&`4v4NIH9| 2~f `YϏc8˴"dxou3dgeGF|^T\6yj6) ST]$?mu,h8OHF,)>n-raʡH}.3#xrHvNg)r4,(PӰ2);zAߙ`iu(~ |5Z0ڵ_`;;FAM(D9Câ@=;Vg}qӨlT pń؏U5t}@}6(.oߡ$bH&ެ fI+kVn]ȤC\!俙C,{V-eܑh `-aViY@M9K!+p~22esqr#(p2TWV8xkڟOV69?l}=-YdYO*]hrҖHp@ר(J0Fu`2̝T&J#{I˘E` CfKAr{e޹>M!k!Jh9?[V˱ӯPA9ci6/*9|溒%w'} Ô\?B +k(v:'rBBx$3 =|~GQѰdqUӒګCSFy;NO)w/lwLx0Q̃trKYItЯL `ZJmo%@h,#B(l y^܊HJyZ8{R? W#Y&gX8w8ׇ1.@\*Wy1FfSQX5S"AT3IyQ0ɠB- WwxKhn0A g OE 2"0ahz~g~ Ɏ7\ޅo|+ I3_.Z煈6JK9zz'>nSrJKt I !'L͟zL$%$::@ȿp) FEE, T>[,  yb ])8)q_TlCԐ2#9;*2$9^r;-(^|4j!ocN:|uJ5Ϲu/1sN ̾CZ5D\ &Ya8VMArU4j Z;=%<LUנe`љ c.`g@MQ(<ؕBZ8;ZslV 0{((=ųjY{,Bm֮b=)lD}&0RJ@}b >dh4`#hNK㶦2@%G4[,?eiG\*N%dbazw#'h&&ه5g2`q|TE2xFzOD;iti~ 3 ~T!lSS dDǦ-K h<, 4կgf8U/ve\deb"B,d# 0c|67F; НwF^#4ݳ=,7k_tHv%P\,C}\$sriZMa͇i9O5Cd .5ia2z=Chz%h,6'6Yx( C 3 IE.E'l?^NiAW#N̥1԰)dO\-j:HI)*l X/g(aSH9$-rAw{Zm~ )o?TB'p5v sVK>SItv_ϺFO<ѳ'|5fэn)znFTms• 3dDMㅚ_g|U #ƉkM ƪǢͩϻD&(qkGLaV]ޣ5XOhVYzGvLfs?^V+}KI@ 4_d+Qi4JΣ jS-yQJ7ZlJB6`-C#OfY5{dfՄ" J_PfΪd7΀ Tм746,Auz!49hUo"%oVoj0Bk4eqm]lNE+E\3~)\hiћ]PO461g n6$6@QYh[Զ7fi >]E|ދLAMdkrokAd F<-HYݵPmBJDeI(")3Aϸ#R6skk4.=ihA%yS9Bd`}?xjykex5wYa""e9mvq~,2 ?りՋ, V`Sr}Aj>$H^Ŗ uZDfNTO)Gcy#(+33mde6l!"s \2wSy2;MQ{zX # }PG XqHS[K&}d19jkǴ@U1DrZvf %-={C1T}C*K2ï~Yiu!Q endstream endobj 519 0 obj << /Length1 2072 /Length2 14200 /Length3 0 /Length 15453 /Filter /FlateDecode >> stream xڍP[ <3h}]Hp܂wNpp9畜{kYݫ{Sg /ҼYLo}rm<},f0ssj؃ey3!Y88yNsOS+_{9d`&lar7:`6u[d3[ ݿ36~,>e6af^_1PQD^WBߒu0rY9X,,l<.fQ]X{ Ͽ}Jv {AhKmr4]q;ߔuoEniE^fM(8jkuElO "m#Ein v5׸ˮעق͕\=Z,]6oe<{_[ 9;FfO1dxppFF99@LB\ A< (2'(T/f VPbx@[-&[-Eo>S۷W'fo՚KCx+|+'M;9#-?[ol|gI-m2_?Rߤ;m?:a,o9/dn.oϪ?oG]ѻ7=xd}#;[>7u S7gwϭEdnin4`j=ZЃqw\`jW+gɹ>*3xV$i}e[Fx稹>%An+$N#>wD{/NA6͐TNnܨ?u_^?/uUG6seN"X!Qn{O{TYK[#tpƻRX/ 5NcZqh8f>̏gJsIr+U_IJy&^;8z oXK⺌UݕiZrɎUȧM ynwJG,؟A\_CacW;ZGJ5%qMتGm`Ol[EA](yEzic9f`S4'QJ+گcMs1oDbY *CZr[!Ԑ Fm@/wo_AڿҰlRC=ƚ?- nT#Q(l\ }[]:xa<¹&OPttMh"v{KY \\z*#g oV]F4^4<Efk쥰dqbp$eyXx-$uKtM:DDC\IM-Oub77Qfi,_xAK2Oy*$OGR [(\d|P^N{e(ӲuI"GpfiΓs˙!JF]zqVbkO"V&l` z=Bc$U{Jgh=\v̰ު@CTwA #ؽ;RsmMzNELYbnDwԥ?Dy0ӳR N7M4ӂjr1bmO@2!/(5;/HCS$q;[V|RUΌç뙣,.eYsYz};qR"Y'N|y r8Edt^9G͔_`/cMBpa.Ed!B,SQ׾mOF dcaT;Y\-=$m$XJIi=ܝ[WP~nYS-O:!7yq1gUw/b2BH.Eu'~n \r3HЧw;^Jhƴ$=LDDlyK{IrIX lӓW]zq[7fT_# {QGMkX?P={+ԽW^B`āq_*0jo>HVH~SǪ KU:G}'&:r=,>wڪ&Nպk8y*^ W3u֠{c0jh}OFDL*Ν`JCTF|/N rsI9b$ 5м丘J:deBz Je׏ڰ./ $ꎳȎ,3 5D"?O C!3atm{r%_pRvȮ>nS b> % F7֥:kW(w%&scBow<迎*r9JDUei< rCM2"%ʊOXT|6w<>RT˴fEQH~XF>ƫ#8)?5J/ݦBۇ3  _ku$X ?dpE&ҕ aS0yjL$s5 BY5LB#$LA-9kR6_h|{xW06.$ aݴm~|K"%$uۈ|oӏ$҄ )Uaő؅_p­s!Y4{KTMkrCI` TSN#O-ű!`TQZ5'HS.Qs ;Qָj3}D!T(iydW $|!'"VӅ~Tf U٢-\s2|%Gm'V)/~/5Dzb.Y$}UKu;qq;ROy^{7g>W*zQ_7ζ֭%,d퐊U4`*tP{p ^Уx ~|%+U Ŏ: tkï<ؓ"K 4ߦ2U ߴo# پL"]QDs3RҀLJ}JkUѐM!u 2 W RF\b)xH@24mJ<̓ RڍO5RP< nj@Tf(&rZeGᗐÊY 2IS}([M.Xzh?w^.R"l6is$aX$nP@&Y >%߷rW"u.*,n〦IH: vqP5_#}!p·19  Ƞ#,f voz`[m2 6*#UvvI,2`f b~` ="*ur6Ɖ>e@_?:Ps4smTK6ܶYmz]47+aurdL̮7sW\IpS HC(yMkxü#mky Յ62v׳U& =z鞥A:aD]IFx ER;T)vD4Dtԑgܢ r[}m[ZMxT3ubTuN% 6GEǍYqexHTogX1wzˢH|I@SjeH4yL4&Y[&$,l\ VPE6m6Y"Κ 8jHtODE o-"HQƷ0 1n9BlY;o Ͱ=.۝ 04n;J$/G.?햗26'kfXIcڮ [GBt^Z̦":9>T.v4HpCHOcZy ri"GCah}l)~!Qǒml("4wt|5Z)Шl3Q.[>40K<m+OqC KW^j ?e>OGx _W!OS+/@o[i_;g^yJ& ۧWFTnF`۰9 َXO@GOfҨ 6:dW tRSHrd4'@zL16efc dz:n\Y/R/O؄fgì F0^Xp.,o8g>I)dr T5`% r%g{}K&#Ě%r%]mE \K,8g }bAsrom|"UxfmAxߓP 1"Tӧ:_. QL:L_`Z[ҞSsr(0^M;ӯ>IG{uOU~va[@ p6/0ƂF2oIU)LF!OqV%ϸw^VszԪ[YT>f'Wfy".J0,DvOS@Ow0n p?(IG"]?ԉopQ|O' |Di#L/(fDU}Zj9j:~rBad3&em#dIBqqc κ5:]egNݡ72x ߫{J sD8 .M*,fh$Jy?z3G Q5E h/)YW {rcR0Q-#7F9jcJ@xމBSǧg)zyNʺŤ[qZ6Xd~>{/ʧ:J{0,=D pKĆcl+ёb="J9b <}y]fDG-O gϕA(cHf$W0h_'yV!4i x DžCXQ,>6-YN$w@KK!Kۄ49-5>Stb̶II1R)C`U2 jFv(2 vRVDV\˗uW oR\;ġyҞs1s`S#O=$]A.){1r7D?B˾mYSO1튵+*Zo1!yAND2 &FgZALLN2cgXypW[j&#uDмp q)3Z 9[HH뛎'i/Fr&H]E!fJ{0 "#w-ZT󄊑0>N(}&0rJnZ>_c.^몖⧂ZJmÅkv׋7H6visy#~?pG#N/ai[W&QCX%_+  պ{k{Oe=a۝'_TӦ47 P[Kȷz߄ Zj,(@ oN⩏$8fN6)_}n uԵO{}n`7Q؃_*o!mLrs6i]e/ֵ+IYDt)NHM }d ,_Aq;V@ :r~j}٭#;vzd/܁X י[;S[?[Y^x2g P"6'b}"y Սl&ݱRo'Xqg|J/Bp0@J)3Id8XѾxr_++8n [HKcFh ɾ_М0܆EJLZ7"ls᫓0 I겧F7'"S.虓w Jآ+0 )Y 7k-dp0P=u >V8 09ЍCnV]7 $o۝?N/Z_1jAnŒd]fQV};a+4$@{ 8iw>n4P͛>A769{^W"-OڒBy-,>؜C[m~:9(ٷO;〬$6:o7R0M$Q>>^XkPTHDkxY"V IrA% G#ziYRWhKDr\8נV"pҞ8Yh.X&Ԉ$8]!@ni+ tbs+?2+Q Dv$aܚ8>ә_Wz߄eGVO0fR`t`tsHLē<׀T \;l mVA{wIv]'4؟ݏw}ipM(Әyѽ4'.>}\_VmDx c|_!AƬ&@҂˺`a캪 z/&x^l AKX sI|݅S%w4DGKS#aODz(K|Q6YrRv~GR\7L9J+7MgV{m2oᤛ+Fѧus'kjK/JPtyb/IXB꟔ahY>./wi(9uɣ]6<۩q_,۞k(0+ s|k5S 6d2=~'Ls3bЙj#ٓUtg:mp kؔ>:jv ,W9GQLuǰ3CDH9H'6S&3}c, YL8z"ēk?b-_^fҲZ:Ycp>߹J XUWM6 ϽEM<]ܺK־L:aPeKJX  }ٸد &uIUͫ!>l8Lr wQ4?o RDOFÈ]U+A^lbq T-$eex.o{i[X[Xׂ 4QH C6|-_-=dEk6"ƋSÞnpe,Tc4Ĵ̩V-+.HSlLGi&;B9"}wK+@-hZ}D*goٜKhCyTh_#26ijEG]a6!lVM༡.Nbjxp).ѬDZyKYb[OM*^Q +硝I'}|؃J)GSixV崣87Tj=ݚqW{5fمal+WX1\ŰG$dfD Q]-@AQ=3PVJ\y| Bu"#O~c久4 RϢ)Q<ghIݗ[F-Nƿ@!#v~ 1Al7QuJ$7J˟gřI9铒lUo"?]![fC{Ty< w2z_Q.ClO .|=&0z0gܵº6|GAw󞥩i:UB8.KJji5Iizһkʫ?R漠 KIboR>ZkjEF"+\\O K;mT3T?NjXXͯ}Egm=8>[Q)y `Jվoe&UfJ"Ҕà[ b6Y<_0L̴j<d'c:1ђyi>nT ~rc1m/몢S6:V׮hSiZ3 .n&:t$[slUm`J6=%.!lok!/zJoFi;כw@wJs3hmESġMh'NU /x[o{hyZp` &X^(\"GYU&ٜTH+,AD0bKHMX:]7黍v.Qu{LLO)76emLEr#1e߅|Q~K)l@?S"hknz:-c"NdSPH7yE DǔD(K[-gL9Sá4(PlU|QK,y- })uK!b]Я4s }-HLs'?_"k-A@n҇D՝04;v[ZCc3I"R2}dY-.Kycb|Z +K>"-L%J`1?;G2/y_ ޓvLJޔP>,jˁ J IBl-PĻbxȼ'MDxk= ژ_ֽT a  NdԘBRZlӓ =)y$d nAV):t\uhT=bv@q~yS!_}k8XW kDYbryw;a.=C!ƅ**PSX<:᎗gu+{?fM4}12)Ҿ1 E7(--EY⦦`eck?E1?3sĎ0VXu_3c>b3^4k bnŭmVs!$㶌l?F< y&S2Ƥ57G7T,>oĤ&ٙUy~&`zG\̰=u6U$,5{z{x3*f XXs0!x!Y{j{¶c&ކ2"GQƢ%y 3lRIҩ7jpVl -GxEjJxwĕցCl|\m<%t)1E)U<(sJE}.Ni-٠M()iI5zѷ0bMDŽbQXKv5ptݭFr&v#lZt3>ܸO夅y[;xB$ mIITp?!0v_5&_N#Y$Ag+; -"T袗D8b7u  1]ǥq#|'ư{{?6Ƹ| l8E3*-BLmrr)Hm6ZL {++jVkbcz^Yd?_'[!uĈüԺ6p rOH&dC:% bȉt{'mitHYhUݜa wX3!cm$u $[;`6o 4rՋAcMZǽȫgP)8ևΩi7%By'j @ϛ[bAsj^jbxBY쑘SdIIV)*5+,dhg*~Ystch]/?tAb OЈ;had_i2$HPe5K<@p<|d2ah~/8D%!@M(4c{@36"Ĥ}hܭJfS=V_gLB`1]m-5嵳G0; endstream endobj 521 0 obj << /Length1 2126 /Length2 9502 /Length3 0 /Length 10660 /Filter /FlateDecode >> stream xڍuTk.- ]Hwwwww 0 CwwRtJ#- )]ttsZYkfx~}Tڬ6+ cdHpr8888iiu@0'z@C =d,a0@ pqpXzll%N+ qau`g# -UK=@b ¼Asbgdtvc@Y =@ zmZY:j crІ<-@ d =mPcu @YO_pq7_ѿ[Z[C], ˩`,K/GK'7c%9IMcf @Nzdq̲`i3 sCOZ?ݛuC<9ق6ڰqwa\݁2<a^A.~>>gU@؃ `d |Au`Pw?O蜜5 `hy~( `(?Nǯ>*v+fUUVfRR//+K3%/"+m!?>?=_g.5ȣtna?Bo23swrgpKg_u=*qv@QE:H;H hY?v j@@.VNa fq{qYRl h\|K(O_Ǎz!d;{ <@)Zح@'-L d  p>O=OwB~+wxg7>bAX;7]#?߆/ |<#ȣPc=FKw蟼xF~gdQxǛd7BX$kwcV-FX 9Ԅ^UI>dJ;mszX z!:Ѕ&p.1OyT$f˭ߝK1¾=^r42VM{W?`G&%jxHfpp$L0*nVBd@fUu{zE񃔛|ս8O Oi4wČ*\QVMz,7xdmƓ 5zVEꁳs#7 W۠",zc 4BΠ+Q$sMAJI1,9!EKU/_@1ϱW{9 pgb?9_8\ #l{&x6:ã`NG@EQ?{ɂ׌;[RݎȞqǏubA %F/0ٟmj >ډNc}_\\jXLΞ} C޲MrHqD6<|T|s?F)H|.6iwhk7.QڵH9sa/~E֔Q<]{'KFуj4&.?-v@H \Cj$>E?*$[_ |Oʯ ;g,4+Ud0[LV5~ 0ָc[bܾ|gi7o)[ztoa?rQoE9µ=ѵ\NGn̶9LPi8v;V-x{PŵZSxLnY1k 6t>sb+@w _[NغM#Ns,4%?S0{=OQ$}XǪKIAs=K:V1F%Ro1m7P.*nZ_QGV2fPg:u?Wm3$I2vx/[fSKƗOU6K/}4b02%׹ J|_TOQ,߄0VcIa430> "P{rխy$DTV<`z0}=5W/hGL[Kl+2(ˁڢl'fWgXPR-VjCXBAet 2KmɟV-z-ыzEt*x.3:>V-Ho"*9B69w{)AZbxgQ3cL[80gՔUf-GF5#?-RU`30^+bY"wcj!NL72,li 'ym{Ύ@))Y=y{q:%džLig?_{DQ  C`VRͤǚ +9]UeZQ~&R e&5=rR_ :[:!sK[W=751(os:Oi(ΠcN{A$AU9 jD}W6)/8ꎶk_͡x}dƀ -FQrEkӒ oB1߯mWu ʝ^ U)Mv2ĔKS<$}~ID(Up>|-\6zOu N AMGc5I5'drCIi1 nj zP7;鮞4D{?kZz4T SO\^'8F?_'+L"XKgaϧN_sj(ŵ" ы'Q55PI` #N0]u:K13xۮa75sSl`d۰tӘ/e; AWW9OEZԄovr>B5eS$-nƑ Y2G8kO[ Oidm46j6CC vӎ&B<[%?ʘ7? ۬.G YӇUu3ཽd6a!t12ѝTid.K?{q$Hή7LY P͟*}ůav+6IZ4jud Y+1V߸Jw1.$8 QïM.3=2|_fēzwpRuSQ]vȆ=^/&`+s W|Ubc'2B |mgҁ E@Qk mxF"[F`c+aT/ Zw¼șgFc0Y `iM6_$ADZʀaҨ6%`Wn XC\z"nA3INO*們rƅ鄮^d g(0,s WcZ"R]o%ePM; sV,B-_:VGJw/BPr0l[pi'gd̴<ȡu;uDjWzs>^f;#S6r)a/-BW,(tR:yVgǁZ?..c86/BVZ4P\qpPx&vV |PO,)ϲ휜"#QC/<_)fk2' b8֩0GտuOi* p|[mK&:b5Ƹeȵ#Ve-:BҢ,-`oG@x&yb۾w}X8'נM!aMjBVwX,N3sّ=;7w 1V>v#d̎R, f^jHMNUydxY,81MnT sR\7!C໤vna9lwI昙+c2*2uMj lT^c?DuEGd\7% " fȈ}W⬪Xq<YD2-F(A8&j۰g1dS;;S*b6ӟOK^o5}Q\ B1^?\Ӽ|p-11--V!hreH|ݼ(!됱6B`daXC=9=ɒ.~Q]fo*]܃Kd$~^zŞ\Ө\npƫOc25>n94l:(2ZaK1eB/CL;)9AVY&%nOU!5 ?Ar1^ >67OزIhQ@݂~J[DGNS7ةH4?ѾIPYRFX8)Dx+^iX2,ڶyZ<~ΆoEy/ZuL_Jp@e_d> ĵ9AY@ v N{>?='aFhS\#:[G\ aL[9u:n7 iXs sFplN/xz:c^_/RUdNS݇}s~05Rq66ClSk>ҝ؆dsX(j߰X;-N"VioCj(h]Q#~#{ hͼo)"mQ?#tL-pMMgq0w) >yWH۝8bT~ӟĒ{'\ϱnQM.V?c"k)V!6Cz}qڒŢ6 !'#Bdf&$B^SG9l;+Q'Ϸdh>‰"fcX (J~s&ИrbT"+$U'e._eo֩w壝l.I z2A欜'ҝr#}/? ^nJ7~w>ӕY~\< p+=;ό4](8;;iBhf EΑT0QRNp8 ejߏRJO;ѫo0m m-Y,j!;~eߣXŁF*"%s7͍Z^: =3~`=&qZ{(`A0ԄxvbvWOM[s丁2d3J]Įr=bU777 KŻg|܉0j)9f#yZU~p21)`L5$tr6kh]Cy<\;QJlF&vZf;9KZ |mQUmp[~IezSc7#No3^k{wXiI=HSރCגʦw)j^o.hs?(ʔX{k1[&hūq–ݖHcׂRsLNh!1Ͻ;ޥ%FYlDUye3p$U=Ysϋ)Pd-xxҒ׾M o }61'éLHZk{Ze' 1Ԅ[#c>u[2lb YwﮨwJOOiٖpJXx-FCB{֨S f.FX`o/z(G9o&7^渕KxjIsakӞ*\W6MIdȔDVh!.Sz)c#= NwHkv%ޜH[7kBXVv Afه*coPߊ7@ׇd0jEuP8vJE:0Zc0 L"9F*NVy50?5VK FGl 1 \~ث]Ce e>F결Ivɼ^~"!9cϰp=@%7A=eix)smT6 [}`fy )}Q̾uN63ʐc' cl3UHϱDZo]|d9{wpqXB >2b$/q4=+ %'ٹ8$xqe6݁j2ތ3>[&FZBL/w\Q&bTVZz{9z\^:B˵T=@|ȂzmjV/fya Ta/|m[.=(|fi8FlA?}u6ioV4Oy+~%8FnQ ,T/h1H^|rC]c9!4jcnX2T:P VPdz& ϝH0XVM`κICWŎimG '=秓W?ZoQJ m_T&I0Y.IS-Ą7Ty\igiDq7qG3.#{U=Fty o7 fX:x;q_?~0l5.UoW*x#V@_~1!L+ˬތF؇iFs]f,"M4U'itf&FzGdMq{*_Gwp%= r |qAl&gЖ=UE!o6?7Qkvffc[z9]dTw㓣G>Іd ;N-a/ړeJ11 hhkԐ5/M߷[xɄdž UFUYS x)8KRe͙ձeщsƷ0ĤvJkh^È>nXQty |*4j&9XqRV}>K{ZW¹6F*!JYlGz\DnE貖~P=ᢋwg7ʲ<*ѳJ\B:vy#g E)7)ލEFYD/89׭-3,}"8G _m p|F<ʉނ.a𝍁/gX uj]cCZmx?x9Sd(iG~&G';tzetI2t^Nz1HӒ(سA|yR6N*XrdYy ۩yTZ|`d@W̫~:Ԧgr J@ [TQJ.CVyx$SJ'1[_  .݈69zZbH}{&ȶl[b|=?Gn`#lC]N9 ovSYKţnbRWX\OI; MvhޣLé"ou#NUs靦Hx,,9L$~ƍ'i]*lI!SK>IK*̠O]J|3*1b`6VgH=i>nBP|Kp©֔pH%9 W |CKZ6 ҙ`Bvܡ&#N^ރG;+F{ٷa-7nf#_'L{K;SYqI-TF»;o\>| &45-?+WNR *^p^SKϤb#,pHvesZϓ2 պ$K\_w䲕n_ߩ9)+W6)8 `xR-ު fd/Xt{ ۹y62/5g$^Ove A\WSs:ϼ֌^/hnp4-P;̣q{p3+4AEVu W2Q [VQSqBWq(s9u-hZ3KUĎsWۨ卪,$H_d{' 8$"t >baMէ፳ kA;z"nHawon?c\}|ݮ7 g.CܛQӟ @+:}~9 i߶5./w&3}'iLp-Vg=^؝ӧF`8\ܫw~/jVGH1>kTv% 'l{Qu^F! & כAxDvjfzrDƖ/Ŷ\4VIZj6zŽPN> stream xڍvPSkt4i" IMBz ICI :A@i AT(ҋ"E@bI{/{$k}KC\08,Q.S4 u8 d`0i$zav@,1x*h1H"٦$8,e2\Aa082рb! O ts' 8JJ sP ,C" 0D@)((_CBCK }0}3y`J b?`~#ApX?foL$v0l?8W?_ 5ղ0k濽H@0 /+Ncq R~wK>:#VDw.#Y?RP/YB:K-iyy"Ho+,^?"y quj4_.I^sX7%R0v 0hrfȐ`k$?Hdira[ZXnrGB`dEIɑh 闘G$CWTs )PE(o$GCme>sPPr<ɕ=dQC)$Cb]v>YP( @}@r}\s@9@r;~ $~]'?~- ¿ LP*[wH~钷wRE1#EiY#[UjIm;*C*TdO-Rtl1: KRuF ka]Wn,h>Yf#<~bvnטv䊱W2VMGd\gEl4,mU:ug {B]sᱩPPn}&ޢ]$@dnCwsҀ*-L@"O)nsg1mkqãiav2X5zS%IOFHmWLB&}.=Kzy&a'tWyJ)'5EQ@=^2Vb.2nE) uain]OwM!UxLz6DN 6(yt&E"  vZ<-v1sg`l,׽4 nW„d-LC:}i9C#Iyb-[/K҈u2O ݦTAl(dy|(`Jq/\ܰ U̻]yWG NunFG:&@RD e=I>įÑc&4B,zA8U Ӣ`k؝fZjBLf "`l)䰦=9%%ّCk]OyEoX̜#S)6bEptx=ceF<Xƒ|ۙ|PiZhQ^#X\##Ovrx_R-66xu >c̿r"@B54BbМfʊgufHh*ġz6:uMj#퇡 u8ijoY(l χ'}0Es)>so7C::?,Šc:k32N2`3j^!EB;ag%ɂLD24i>\T<}8R=yK y67Ϳ)>M7{c/ JHԠtfͻ&r}vƙ ~XmEK39ELlL->R=sOu;fǤnen$ i|9'Vaxv*}?'Ro#v $闚^;h:ly)'6As6 rY,M?$:$u5ᝊIHXCBnK9GphkqXxJ6BdWU؟&rNɣZ- kg[`ݭC"x>+'0<]@3BYk :܁)=wa<f>DG6М;lguqnk}'dZxg4sYgs*V3҄)=Q[t{ky#<׬*w7 ~1 "E\>,ܭ+{8!b}J|ϝNVya-ݘZkiII4Ê ԊNJH%;ҳ`7ߧWIۺw|1(iq#D?i<Ke*ɪgsguK)GO˫'"H˴mxܾf Rrg1ɾwqȱ~4ߜXl!"ޣ7HeY%G?#kš~ !JLGۿ:ɦOz΋-/g WSn$]9K|5j{GPHΝSօsj |!8\Nr5e.UMřzL=.y2PȎDyuX4h|ebh~~q+Ca=3\Q!I(hAnOz" 5NMK,n-!ςMK^hwk?9MY"isތ]WPg>}"OVw(F$xcm:6әqN'q 8.80/DXodj]\.+]/ywXpE QM~ܤ<)ደ~U;Ve;$4R'T<_L-jX>@ Z?\)O endstream endobj 525 0 obj << /Length1 2272 /Length2 17920 /Length3 0 /Length 19274 /Filter /FlateDecode >> stream xڌTgq²ZewmsٶlƖk?;S׍TQ^$akDbf01201 PR;Y#GT98e!:ĀNor6ig+3+ C[ 9"Pڹ;9G ?ak t2Ye4ZmANɎՕh``*@jdr9)֠Sc@;Klk tVF 7gc-;@YJ` >3w sFFv@wsS !1mr}ͭoH+o ɑ7Ga,nc,jkm qrD]ov6 )ۼLANv&.NV.vr32c@898=V/B`f9 A6A&ow0wh33?mF($HoUغv7f\⎂7=2u4r`a|LdUsNt )R[)?+VS_($$.D a~A4detojI8*|N,<7f)Z1QZn9+O3 B2дٰ9S eaUbKU3H"V3 O1( ~dN|G#bP;u`F'~H-Wr\9C#M@ZHr#xLeH f8 p&4c948z}-ːmc07!ItUo[ a{D>Zqxh^dd}$U]7n m5f/P)B]dEn$C2K1V# S4'7ezhA M47]XOo g‡~vaL?-EC_\4>jFUC`czHSdebR{X)}2t6rhQԛe#wV1 vvmB6t*DxwؿZ Y䳨](7JB:!)>Xp 7,4E2}DN}mb4i6.ʒ1T} V Fe_-F_llG]@jJM6@.A#ԋ{F/H1Hj%36dKPG*_I(9,T ;0)~4.HQ᧺(i5ofKP]#7Zʇe$˄'w[ʳZTHzl<{:AK`P6ʈIjFʼ ?64 eJjNz-Hӣ[6g'[m^=WZG  ߛj€@ o=# Ye3|Qy e-x e!K 3_av OT/A~":w݋ {Ɓ%~;3``aÈ-E@gWfRѮb$E_WkSyyetLv ]o@%";A=q#.uԻYΗWEq4bTbu]J]+ Jw6JDbGDQK|YY+d.wZkaEDfI,}?Fm#;)Zލ<,߫lƲ*p:NQM!.W68]+̢j[Kem<rIb]Aႎ%m ݞ/\:wz50 2gRu~n=~o8 TVe̊2׬}c<&?plP8zQWno f%VϿbrV!ju|Tσ]<σ%`tiR9.]¬1=Zz42yDRl@]`s )k[;4VGH6 գ=>[U`zIݠVíNΧv'2n=E?J*2c'&)C FㄪZY6P}(,)~᭺]myHY/)XBO2,õ};Yd0ތ-]t_c?h.Z"˧3k: : Cs1IչpQ@AU9S:q?ALQTMFa瞠8'$MK՜x!/iD׫:P0X\Thu 3 ϒZ/˷%'п'@5PHlGsa1yU7vpCC@9!cqY'e4#l#g@I.zpq*;QRY^ mFBqȇjA^WU[iHN!\5L)C^G 4hIN 9nE-}K {} ht)US ܻ#y:z#UnZP Y +G}. k^Oo|MrA2@1 Y*vdBT{B[00A]ɶ71NnIFi9?)]28*5[eO1p|H]hlnǹkiox >%Ir˻Z(mjZmn\6=y[4 ?c j'ekz2%!\{Tha"vSq;vaE\&|8C ˝ܐ>JhT*GA%wD^FhPTs<|!2_ d9g*$鴺sD"k;hFU8rĒNmwZ%usk ko2~l,KOmjKIh* ɪnԑO|y*6$F/g }i{t_[ߌ!}z`K |eVg D8A*%|EvvNkSN* Sl nnnwMxæ\2XgLHl</Fy`~B|k|SrhRatS6G]3--mZVX/k,!,:s,ÕWxNUpfg!md_@8vM*Bۃwv8z6O7u"`HWt'\]>Xx5KrY^,/}Lm\.D+}9EfJ>])o5FF}aHn8`Zm=b`bH[AOzTǡy=,p0%˶׈/hjFx>J`V{o%wzcT3H.!qiRſR?]}r+&! !/ƒ%ɲ%;Wg,h'G 4~,flVf;vNJ5սQةDq)ϜtdAqnRk:;HBUwf+!ٲ<܅0nnK`Ndi:9FTF6ǜ"lR1ub(m_ †;L!Xc4$;aV}ȔXl_zJ۰Ƙ>PcWSDA%TV!g^ۈ]DԪpGRa1-yѹ4G'T{&p9eTgq:(yJ m:y(${`ds$G Vn#M\Q0 G"ն; /`HMkVaT'6e iA8 X23!T0=˒<<cj '.]%B:(VqkeS&Ӫ~ku' tlrΞ+úF71D*aIל66\~lJi^` ;*7r:bARcYuu2_1ܳ.,}˞)-)U@!X#IޡT)F`1@BA.semAg޿y.Cph8HAuV: v}ǯnIQ A͌8zt7&Nyu.wR GuǝvRskNj#xz7I b6> +cCOJXೡ,O3ke:_~DQ\ .)ߌJ"/gSX \_EsMa! R]QH)M'~`V;@;/ /JMf)T>3=-NJ)3z!4 )- y3s^@.)ia:9#1~hi) 6dQ#FNiJ2K>sn6u}>4 f1:Z`a d#, ﹖r+k.axōW\mD^=+)EQ3 I^sA\Sz isAj"')̂z<_H|xF2W'*k#OUN#a?_AyS@HP|LDN^iҚOaO@(s*tyw|rI ?AQ+h?4|Bb2 ^rȜX\)0CkN/,!+LT10&.+ TQգ&n}MMKEAǵ{|b[~XQt0WYBT6 v d %J<EtϐN3{A@{Yd2Eq>vӷmkv 0EoX?{ LYw+_M~cʈe},>PćU353RZ3]r9b"\ ;,|PON|h7CAD0Ux$ /n4dX&PGq+Z<7T˓e {\*{0ܡӾɷYmZe:Fy]-% bI>YNJo|x(9)$d\ RV%':s-/1PfӼŏH@  :{^>W{úw͌eX,Ic9EN:k=,~H\XʆSS EmM/cl Qjohn9+jI,!2ZIy 3U@Frj}gڪG*| O +R//#I֌Yю @H~,(1tXФQ8cx2s9|~꥞E~&dMԄ8Wh 2Zdq9Ow/,#Xǚ*:Uʑ||2X{J: S~#|Ia)&Mt--фp* vK1{Smh:SjzV@{^fik*(EO5g9"h_OJrBe4H1^]W@q7MbC`U'*m0hOvt\yq- Q97Mex 8r }9BH)4fi~dK˨w='|O,DiO7Au"$Rɨ;ꘇ>G.һ&X² )뚌jGK.o#(Obo*rݎ0Bh`f2`0!2Ö^3._#I%~eGHT2Rs\A^ Z1V*c&ݭk@lew9zsf9YsEқ/kO"8J5,x^iёB {1rvd/,ޥ}*vjȐ!.cUMJГр~5T 8,idL,Oolf̝_9SD|;#[íe AEɲ!a>eg)q^$stDRk1oO_0ş<Œ;5s˕}?Lڛ^aZE7$ Djf rrtMPd,M;6 RbKY"[^܃ĝ-Zl>ߣ`ZFW|f$ h(S[LSI~?;I~ 澎w㶏\l7иjKV2,5޴7{6&l_3_#T_6SS?L>z$S,At@:kcI!}lkW~ oy0ģI*.]|W GHm[2ѡW¾5!xK }3_45U0ofRGO6v_/*Os4|9%be~dY&I{SSV(Oo $ek 7B+w[ eTh&eݎnnN::̓FVE32a.MtD~hG $-Rm>w:~YVO:·~/dl] Cf)C$pI%QfIr=* +;| 5' D!(9"Ӈ(#h-?1Oj~Zx)u (SG.ړ_id:Wa1 A%'@ҤLh_<w#N^KҴkfDY'ugIX"1 pG(]sI/&HgR~/+Do5>?#A^$ץ5Q4Ü7̥ϥH']j3w[EC/oaCqAX&ivԐ!|yP E3NjgS]Zu|iqyi /(B[w?^1Dӯ8#!'.pQ = [#B#%=߆@8$tц<̡ u>Yi pbN> 7Zi5)bEk*nT=!Uc~2iGM粤h?POԄ7,c-*vU3{)ñmMhC ം"(8ZBjAyi,4 Iئp#pp{ٟxe@[8ӬFG*z^ EAt/pa<u 9)h~Y1 $ ZǵYBp  :_=mrtNm`b/ʓWdu\M@$U#,VH<˦9r2`Ww*wI<؞*F]7#+7,Êhd?㼊V61&nɋbqd]I~:eQP4Q#7QwN1I@(~/j FH”`;YTXWO $`$uM [UQ>pNyzE`r~ VTwNڏxp ]BOMw^.D_Rfv/Ch rx2B;vNEC]`>/΄8Ƨ/'F  I$%$|9>]V+PZ+gj>z'e mQvצWy+3o(ft+c8ԡ$)t#n0F1kl}=rb 7\0) j$ږU 6Y58⏍R'"] !*GγG)`1S7t0ՋŘbi$.Gf\,WI Y+d'b'+6y > (cp^*2\X}bgاW(8"I RMP>@5}Y1JN,Y epUN: cl[x=<>}cHW^!v6bspenm/ oh6aqyLӻ ԏKO60ᒒ%6A١)IКeVQ<{5UWw6$OkxNO mW4lYn){Dz,">$FơPæʫ8H|ozDXQ_U%C+IfH2n;&ZnSrLQKΆYFr F@.({NG2vWJ|{8BN*' `],kwC&Qj8!zιt]CUAXWWׂ5a)Bi4MB f5Wf|],S5n~B800Zj1'9ZBv$ESd(tVJ RgO Z32EdV> rpJfZ;of@{-cw:6`j Y*^%8~~L!Uִ5Md9=WCc s`d)xrA0/1!FMs@,RgXՂY8 ; aWn4SDpV-ߥtîWXtTBŶ+ET:Fkx@=nݼ()n}|zL qzuFY~iTyO%„~_gjtqvL'U-H)j366PP8P:BlnfxD8L u$3, z  sVgыNE{:8Q6Jz ]dFA=9}ֿRdedgQ^sBs/\Fb?_zteB**j%3+RMýj5hwԤJp2(#nJiu?c?t[8vpVJKtA ~Ծn ~r~l(bLKxm7TS/Wa&/(J4)HOD6L3b`f:5r8șCu-z7<6tKPRh\H} 5o(iVTYj"# ??3ȮD(tMkeom,@FaCSZ z)!HW!;7jn_Cd fe>-ɧViЪr21|ѡvE8\[S}q̠^sM2QW !i}ڃsԭ *gM-cώ-!(D"Ξ$+ L)7_|ecת֚C!&(Q.owC*@_IRXN*tEO,hg\=@`0'!# 4BTɝs(Qon8Ef*,"ebn,,Ou:JJO.x!By1md#ulదMSOv%4wnHsN`ʒv@>=StS5܁{m~Q?hU(C(d斜. &>^/< e^~*tk \|rKatvcFYͤsܮ dTf`g 6NiV~lg BkQXizqi 5~M pCC=,aXuet[ >Z b X,(sNP_~t3Ū #G_qqNMZ)joټuK %ǎOWIZʍ.a(R0thr&M{#-RFp4/Ⱦ~Q]~ұIeZQBMgSܩN% D՚fܗ'Iv?oxw}ֹY ~Tx?Ĵ3'iXJg4g*ULd3n* u7T60 N /~EIZvy>Լ?غpuTkkR@+LEs"n({ϡC3h7`TuPC:אS&}U:3FbIQ'B %+d`=fdE}5̨WbT,-"u{L}8zB]ز=1jΥJ2Uk)UI)$s# (b'"x^lk0o ǜZM@J(Yen]P_z$.{f$Э94FvchwARAnohQ-vKvh >u йdl|ۺ$dclt;RxwiI>x|Qom(2 kDԙ8.1 'l4͵N&SqnRnNͫPY񾦎 >*K&V޺1/2"(kKʩ>? b󻸑=װW-ՒڰUzO!rBȶg*{dSeqppݶB`?_c '䮙O>; T6T{Y#\!/3n> stream xڍtTT6)]J $eFaN%UDFR?ƽ߷Y{?{{y>-!xAb s@|LLP#@F } ` j/?+$+,| 迀pW1@458 $wv; `axEE9NW h'6`G@n QUp;q]8O(ЃA\= -dܸL_nBj!3aWy8h;C`߻xy]oBPd  ;#VFx!80G=PG5s0$ pv:W-+lNN W PW ڽyl) kAavuw1A]! !H| e󫼁3w93CAn`pu?-\^^j!P#?6rP/ /^pˣ!g^/0'BU@F RUavp[5c`+6ŴHB$A>x;_U_$Y0 $;)M8RCVb uw*,If.^n?M Ձ"lP0 ۂ+ԗS ?!RlkeCrg0/ `WW7.rHKE 7 @ș;+5/_SqmwWWdف_oC ^ xȓ YjOA ̃G|\؈NőKI_ͨSU|IKwjoS.:M{:넉SԱd߳ D(9)rbE(:4ğqm;Xڧ=I* 6k}\Qe=DuJeT uIċݽ=$4<!H{(`^gydV'cYr^uzcA񦎲{@C9YFN\o@bDp<'iX?ȕ8ɺ&3]oo#1kgc9%bDi+߰:cW/;yF5x:S2xh,bS2)O|zw;:EAר/]پ, _]8i/|f=tp&^KVDGD@˴NzFuz_ȾU5GHI@tNq,73^I{d2S>VޏO:1/tJ*'#VSpTI; >'>ڠ0c&Fta|68Xvܭ=qJ?tqP27ĔB)r׃Az%yY.'y#ѮT qd2ʖ)X|#k}8#R-xQj-.ǫ$y:9V6-CUQg7(08;R?,Hllϛr7pV D/d22[B@dzMn`aׇe+ "^)a5O*}+XUH~Fc9,V:Vz?,6|cZGƿrOծDgP&i[)tK2]Vռcok' (ԙu1ɛGnՇ{ ̖p}e$Mr*%Clb,]DŽ(UV"R4sT sWK&tamkSU|}&qLSGΜZD<Dsva<}c'|~z^qt=Ȳ86-x**įҏgHva!gѧnf.( {nEh*NE*⨖Lnwn[6RZfP%6DJbU#eD)%apju^21Y¾38δGhņϴ0|8OǙF<&jkl]$}Є%8M`dDWS7PN9iӟ:yq$},ȯ\Nt>zK-)6ܾrx.s> _g1Ekgmb;x KtND7fL }bC (?s&m,B'4(?W9ݹԮWk031>^>RH# ƲnN$jWm u 7FDh0>XSZ`]{,U3Hx[t+_E䀓;SNmzd (LLZSzG^KDBes#9 S7 w15"@i~!O;UBSBduLe\[i[4Fbv''z9jD#Z%GERxI:v=f'R"!3nh8 $E|#1K?.wҏkz.0KCo1nt;1EEDjʝׅȝ=clwR {eng?/jtV{]8 87գLrM(Yd"(=Z@wa'x_|> G33|vϜx (ކT'~mK-js]VY56l+a Ʋ;ު,4+噇 A1="1x0_6V̖[skq~v -]`*hxwsp=WAOw:lwZŎh Hdw2WM~I:296NF4q;zVR]r\dᣦp~Դ\cK|mr~v. lZ,OG4 RQ˦YyЗ V1/V2¶}dԆ&dȿ2 L&:Nz!Jaw[jL#B̎}?k ᷹ 1_NWϛ'Q(r?AH1e;j=LP]z6.U'.7S 1on%lCehkJ-r/т,&l 5p%a8q;WTm*V.pgOrgA E*^Ni^= XFg洳9M0F ,u X \H7>}zYʓ˪ ,vB`5d%0)!KVV*ZfmmTo8ds{r1Bfe=Mo"Xz&0Zw1f\ͳ/&2>g#XGt?*RmWĘ%0^Hd>L4vY++D6tekڝyhDm W{taNw(LrfrB8S?wN<cQgW2gKeL$ zY1f_Na"uAz-ڄkⵙb f 9w .Wㄺ^fi31szh*+0WvlR[+|#EUIsL?X] akwt7YxBOC1'w9  M𮡩@o whǬ 9z8<ҭPOY_R[YBr6tbjLcxS^ui誫f`yV$`i,j  F麏q4Gt)YeshT[tS[/pNltd*o_/)dtX']S}Zϙyk0L\$/)$A{=2{iA[peakox[ɚxtZ:=Ll'uRoDDE򊹝FԀ}SAE hmねOĀ.zfU\GΎV`w2FN ^eT|>ɔB:\rR4GoՈS_0~ZWm~{;wˀДT!K탃:~U⼓WB|_ΉؠE*D*psn N#NڸIЉ'u1>q&.--'#Fy}2I7 pd1T(׀s3狯%yp렮/jrisqq=~ga=*t,1j5 mzrQ-}pэI̋oqO=ƀޘ`30P'C# o(oe:\sE\y  r mxI GB˘d.OI1'|6a 5I |׋:BN{L@T'ABTwThѷ%i"b+foh5+Jˊ$l1: +rjZVҸIfv+DL3g''uGRJIe+jVl}}bT*bbƑ ]);o[*hj^_Rˈ_5\w,%bvJhG`ZCg5(ɝ g=R5MpR R.Ԕ~?m ?-]Xi[W-d㧇|^lAy.!hT R5m aEB6_#{*]Kq] GjـRj.GgrVrI> stream xڍT-иKpwƃwwwwwwO A{gZ^UT5:1HWTr0#QQi!֠HTZ G'-? &lr67??++?D;G~l Pdقc509ME dr ngAVgaquue819 1\  2n3@] t^ `K)r8@]Vl'ؘ߉MLl쁶`[sPR`A@[DK<U_='G=ĉ lEi^nYTd qB]dr,N/`55݄=-$+ńpp@?l/xy^y@/?HN@  ` 6A`[Af;z/cIE^v/2ß'&fdb0sxN%ޕDG.C$COdG j_㲇 ρ $FC{k6Ia^uDWqd=)`%(GhSeN{LEVf[ĮE 6juF+1Tia dUH0J=X, ?bjB8gC *܅wo'X!K𐪨`nŽKF2@ۮFLWeO7Jv##&M,BUڮ%ǴCj@㦧D:?IkJfJy|tNGxb"4RƳx"X-=Log2pNb3cǥ?֯~WuLl'̐l*ɒrsb=?.΋ܛ̽ˊ{&3gN.фzOY1 ϼZ.c 6/ b<> $Xq\y#Ex7C dkϟf͸GZ%k?ioM\٦^ [aטWlh;?Trp2%(d&쓓ILf$+{<6NZSt1K\./2ٿ2tr;],T fdnʡ`e$ј]TuuwڊҫLذ )A{4J3B9$,1;̡#mcg.40NB؛0M-abd8˰d jKw0 B"*PYV n@SUލIO,p~}x+|"aFCl[w` +xBJ]ٷpyPn_Ú9Dq]Ԡ7˶>v|)P;z(7-_04xB-e5nobJ/0NnH{nļV8ܼoDOVtycs( JsaT(7k{XlgWU|j5'.E[=چ%jp K~LʶHFS3$םܰ\ e3͂W0Vj#߀r2W1lfL'dTlL~>~C-@2:75x'ʡor{oJM#vYߟPF:sZUJ~K--3O4SyY" ZC~=N:L:!3Q? 8F/9:>15t3 Lp㫵a6^qh1ub5 Fz JOSuՇLf. UgkOͣ簎j'Q+ .Z]8}襅"|}Xkʲ#Xvkp}w^f@)Sl9Lan\뺒#Ɯ=zV&q$] Hf3!"32}e9y7ҏ5mQsUN_Qkvd50&}N@W>Q3Ձ(r^l&XSp_#GGlv׀C18@kn{,fHGB{Fq~u}P4^FWOp lK} jU@^ XC,Z/ر38yG"D$lRItR~^r̷3"$ckl] _%8(aXϋpzeKpwı*U#+VbޤԅءUY U4?xѴq  g{dFh[?;Y|@h# ]v MޑlLh|S ݿu"'DE&_$m9혗ߞfR¡" " "5G1|KʓI/y*V{p .ܣu壳?TCx(w0ݔE$T,!!5 д)D21|ɥ֠=C*x7.JCR_5IiZv?IB`r=J;!%Ru\yKvqCWl%Yv,d<*5+uFyDZ`wd J뢀{Ab,CJ!ŝ* RμJi--<>\Q< QWa7?V(A-:&H{Q #AªKx֒]nUwh>|(;? J[ю\ $>,`3Jn]m-j C9xp̴~y DSM=&]` ڿܺכޥt'^+ews`w81 ˁua(W.aC0kz0^51̻G_ZxǔO`8lPIo9)\,֭ a: U>M;C(d"s&[.}{ֆZDe*mSKھ3Ms]Ӄ(^⤆sIlArĩP|;_5eX& J>RF1VH\R5b%˜׈N=@20s=`0s3 O yEp[I9$I1|6E꤈5bu|ARX3:sPj]fvr>!?\eiZCէŽ "Kb4K~Q+Kh-M6 FŢeB ~$IQg1NӦRIs6+eHp^bj:ٵ8B$w%z>:Į ;Ƿ5uD6WÓȍiL7DۄTT\{>%Zqvf7A&3[‘w,T#>%9',Sw° Y]a pp:XրF:Sl Eۻ_ZNux:LkdWGwC:w6j/FwoLH'B&2B/XeLFBgD pI<0ud6>\9n_;?rn_i$ov9zHRjb )doA?a [6&N;!iOt䙳E8{7X9T-}y~`DSǣU֕t0 @UD9(;Tt_dVNݸh_RU&a{JBp΅\Oyms_2RqBG9<ŏ=aT[K䆂02JR)+!ӡJ ,֭_UO*t]g' ]T%Exiȟ=jfpɓCqIh<]!S ɂ-}tUĿv$#_eP[&;>͞澉G":j^ vL8P"X F$~Dm]xr0쫅3uo@ +4( UGUz[l؏ēG!X\DbptY3kslG1[ 3iüNؐ(;a`Ym &I vr 1aZT7U )Yl gb[bII isFK]p"itP].JtNā=W1lvTE9X$s)߱(i h ImC4)kn~͙~)VMRJ Cמ'_-\\AgD9gM+Nbܥm~e:efN((̫/^ |lra[ai9e|%'Ȭ^2ba!+2W,ac`60L8=u:UV mc=v K|ʏ3r  FviYy% $Xbc@Ⱦ`&攄~LuYTaq UjL-H7.٨.n)XP̸b";0sR3-uج+z7H1)a;P 3i@$mV9aۻy,]Kk 귳՟*K}ƵMg*FW?t>y6qp6hGյi1uLOao_絻;Z2l'6(r|Td]48S%~߫i)݆@{ j1--f˪Aisa>{> qLD0ydwy;e*aߐ$mWMp0QsK: haQ]X$SyM=VJġ UA[Nk=K|ܼJClnB,9nB}|I-uSwKpHyլ٠tԿ"'t+2O9*J[yƍ"|})ښlcDl-tLk 1;ͣ/ٸ"D,(@ ٻk^B('*1hJL:>M|I3߭ )tb9G#x8SAtՓSnDKGmӫW*q76ܣߟbPWK7+_q7gfb|Ǿ[|WsS//N+%2i Tsj2#bY|Su]=ޒ+ys?9g9#=ѽeR+;gG|΍3q% (%|P.7H*+ m޻q6ʌ75=}l8UF0TK&;CXAl:P?ο;aYoDv{^Ntщ۲KuǥD,fPEרBC|m;α-SP>=g6,ҬJR5^s(<6@H6sAhXWvJp$B3=?[5:-|Zԫ==pu ԇ{_Xm+1 [;VdZ/Z6wS0*hO,Dm{r3Dﳒ8*fy\ٍʐjldgs4,3O0gȻW4z?#{;%u`Qؖ~::3N&d,Aw(%{V̂X) ѕ-ÐG <4Q2v {k[T~Y1걡3d[Q< ^-yH0뾡<[L,;H8*1 vEH~_q a\~wK endstream endobj 531 0 obj << /Length1 1388 /Length2 6102 /Length3 0 /Length 7057 /Filter /FlateDecode >> stream xڍtT.-!) (␂ % ]0 0 % -Ht* %!-݈t Jsw]5k}߽< yyMMUq( rpNпnRC(C%@ >0DjnN!C Q   @J0&@ H9.^H={̿^\nYg(`={"C@`P?Jph ~~>3~((j50@ 3)@Cآ=H(pAp6 nET5.P߻ _``{v[D?6`'vÜX%Y];P$C~ 6gg("՟ `݋f_5 UU H㳃"@1Q!1a*Npbl?Ro @#ݠ;OT@`P;?ձn|$`rO^6/g"go^Aq b_|YF ?p[6O{WW܀B`i p@ URrsr?`g_nh4XjZM h0V p;,y0jCCp֜`pqf jC^/?PC6'(F"^c-V6Phl ;/$fA5 %Ge=7!o( !D@; n:6"M96{BV\̘Q/VPzЪ%z0SuK҆]ɫC#&Iz\$9f7n;Tm$6vz>u~N-TU iji(Рg7^yn_p/{9&h5EV:4ޣjoN{D{s4>&ks(γ߸ox[+ߐٲ.YN:~u`9ز`ڕUE,-7?^f0{di(|S`U1߳q@?eNϜ[gK'zr"G%I􎲂tD&65Hp"budYT>8$/Z <#A}pGqQ.LCI0K/;c77nߤr|hǕ0z@ n KPwd&#*c%-' Um=ȾVҭ Z pXm*T5£!}Т`dcyH&|?ؙ0zRv mU$ ku//Jo5N[6M x}ƜhCEUǷ〨oK+Y5_;pLڎݾxLI,uX˴gTFى80;+8.HeɸIGG>E\DO+u% _'ؙ~k<#Zl wߢRI&"C7Tz̐Ş飫ANJ1 LDkas'V?U?~)m x8[ΈשpI`vVXw,${gnj ȇUaf'eʆ;/_k}PkO{UNW)-B\= ]OcK;ob|+ϏuBnosfIӐLneЬI4r,'/G (ݵIn2,(bfB>L$eb;eyso[q8Ph0<,)b,k8;_o{+/m32SԻcszx|SnTQ_g" `W`k^+߷] frG>ܯOVd_ 7'驇6o `rn8Saj ƞuvL.'Sx)v=%t'>\iEM܆(Uц8ĭ85\Z!iȑxAAHpoUD]jz@v-ͳoO83}tSj GϟD#HP{N_-\A?}Mb.Y|9QFJb$OU2fo8ųzj.EO>z^v-m}[LZY۩܂$}bz>F f[`vj#sܯPHI@Wq<к:yXJ r8;L}z6-(1Od A3>!`rш׺KBEk@Rw6fIKw:'Uˏ:_O&8 2y.qm^a/1m3V6/+(Gukc E]VJ^ُ(V-1x FWSZm:EA1$AC(7XҫXa]GY$0'GeV%NDH$4f_pIŴɠyJ !RZF62 S7g]*@Iuv-6ذs?p[SsɠWU|P1탹%8|$%, wE7q,; M"e  CUGs¬2b+t?޺EtP]{IcWy> U$Qɛ,LIυ> XFB._cm7m+[x1.׸)U kfu )eXa?59IyAPiFvZs|~ iV=V!plr]LJJuȃ1Q|Wp&R;L-Zϖsd\ 8[֕sʬ=܃;ј(1J3vbZ.}Y*e\ropx=F_`xZhڽnp[{R%m*ӾJ&YJs4:OmPt~&ڟi=% 3Tg/9rO+}ДX/$kz\TPbӫ4@܆+hivZM* CLZ+B[qi/B1f {E4_y|Gp[Sh D&wIP<d|xq;ܟuNUO׌VKL:+UYj޳>it-LHħމݘ;Q/tʕ0@%g0In0u9S1/Ԣaky` 2GjWמҌcnL3"Uj  Kɐ( ax2(S s܅Ī/,slkpʌW6/((kz oA͛Lv@%DJxa: 1l^uլ~iWG͏9O"H8Y2?{.7$)dPu6O[M28 5!4l}wb(}l̥&@V@!k,o/왺+-ޛ 9(LxpR !`^^:|4g?wBc]jQ2~}dkax|HZMcO=Ägu0iTD]V;Cdgb#_ r}XQl]'t(33LINuB.Wwݬ !3A|sPU]RT(!Q5`} DԎ RGg=f]-_UcTLIu aJjt~9hmaμ^z-zQqEZD&(3pdlMt+҃Q1ܽ;3s*^R!d/QqGH=_9Ҭh<.)3&/\L 9p:t YSm5VsJD@uYTH]!2-$VMSN$7DO>]l2"|4ȶ+_^*ܨ|<)OuE]KX&\%nOl%5Aєf>NoU;x"&S(^;,&(IVȢ\m]r$E&&=\0tSgPC@fy[azhuc~gBW5O~9[u&=A%ŧt lҹ=uTa߈q~A!|`t7T@`0o٬3Q07S :4Rl8Y]vIu};r=w>L$"y8,nx$ SQD#|}'"IEt>.'53$`(ڡV h:+3*YM/jHzF|u1ɸ_]`E 7~(a!1lNc1쪩s6nSS۽ՠN ә { Zu4u>S!nA\Lhz ?*8?|$r0WQˁ22Өek[: ٚn<>8d[{f;'ޠ`}xjon;xe=2#3Ee͊Q xAUOK#;-Tp*5]cXqSK p9(A)RT{*8CǐC>lya Z sw nҌT7[;k: ټ ? =bSK|gc1mz+0"{)w'?&k_A*eқWwJT^#M+>zy?"G,ƖC$SM? Z. 2nmvCH "ť۱0ēAZoy"+YE["C3 њ'KY3|_^]@R' h)MIH mZVԊkS^V|z%]2EIvf$Q<f ^jB՚Jmj7>eΓw!%̑,;0Rm/\>kj<t~06Pȷ5XIrUIad.~Ż̚ 3fŀ}^x1Lv ui NEYW'S#躔(Q ΐLBjAѮ~Y۔lW\#zE)UAj{_6ԫ6Q5 zQ\&爂&nR@OGL xDM<|5T T0yU7s)VkuOgAY endstream endobj 533 0 obj << /Length1 2796 /Length2 24348 /Length3 0 /Length 25915 /Filter /FlateDecode >> stream xڌPi Cwww] 5Kpw dw%95Usu}@NL/hbgugf`*13XXU,ՀNv; A2Cg-@ `~`ab#7@ : {8Z;@eL `8@halh 5t6ڀ"Z-qAkl`h`hGMpp6(@r63c#[8-W3uv3t@k c脋  Pm6ۀOm oG64675ZXb2 tC[߆Nv󆮆ֆF Iىw݀,jk"lgcuvOh *ߝsZؚNŞQ() H*3:ؙ8X@؜{{_JbP>^vSP@ S pvtx/cfX;fpAb|G w6hL?>2j :!!;w= {8@>u`h?Jښf *3T,5࿾@S P;1Q m/!1kTԆ6v5VhbbΆE5Nb@ gco-*9YVh@Wh$RAߐv&W=dbx1vlAG|vp;([7z`zEFW `yE\FQ1E ᫚(X (@_+}E rrDN_ZFy+ND_2VpxU+"YW"Z0#3N{Wb@j^k"!Wv Zt534z'WJ z:Y*@_(c GcSkOalg I~ߣh1ye TF3(8W7nB7'Bvosv.DA_ٱkao$#>(M? wV@PL Tz! Ef=ǯtEȟ j3{Л?cJtW۽v T{k?$b 41OVWrw_ 3ȯaA6H6@?zrdPNA@/&FgsGbm`am؂jfP\A:G|PD? ^y:?#=A?+ h 77mgɲSm ȇ -Djz9{ߨSV t,nR] =y4T iUlz~ԏVj9CO"o&E‰֭[GOPv{iǢ_:YFiS$04ȓW/DRѴp>^Z,QwSK%*,N8d8ZWC^BRX3^ Dt ( ,)Ju]Cs̛(z6c+ I1ʛќ+YBKj \~&5;{oo7:|{ܘiD͵Sߴ%Q]q>Bz 201iqBugzE֜ʵNvC | |/bԖpzc*jL"9k "Of2tAЃH&f},MRkkl L'+XT+{"a8nP`P7׵uqƞi[@Ԛ ǧϭJ~NIon6`HT\m |n{t+!̝ ӝ©|UR"KEA2Pv+rsk 2/R|z{Du4̆_gӰeU7yʔ^aV&tC @N!eL.-tlg=їeN:UWAt5VDCUaǶ.hWiQN>N<3'Ur#ח84H#x]8 %z՗3%4V,Oܕ(߭> "I!3@uW KI9Qtyq@}_ G65~05-1{X8$6cF"L9̻Nwdg$~c-o!3S7L oӞIulr槕=? LxL(o lSGo%y'58J0>$ AY$cVK8VO\{`N?4&$Yq8ilfgs%Nѿl^qw8i\VN6Cd苫i. dV7qi*4; C[ <¤)X&K*Y?ݗbjcLopapf(X=Cnp\>ʖtc{.$eLInCD,j)XΖ49zsj\J_5}` rLi"#\32/==*N@,cl&cD#b,;;>?Ҷ 5]@Od,!c1h,f$x~71ĂO2n➷\)c6%6QH2S6P5y$6uS96FLsP4obWbMҬ[DY dy0ъWnҬyʼ~S6j@يAǐ%}RyѭE~HWN^mz"A3~t Ǧ{JCt"y,403ZVBҤ cdYٙ1%mF1_hXT뢻bN)2 䬚u!|5ꯐ 8tY''J-Mb}E- i -2~y#j..3U^\3t1󸁎.g_?EZ{o bgŕXQ0tQЯF*f&)D-"KgdT4_Ȋ3<:Z& jAYJP{58ww[ͭjʹ0@LҀgdF X_.F鸝p}ݞSp ڙ K̂.Ei lʳ,Fnqœc9 .9P|I1bZ{7wTuq8%vѲX T ņx񚛵=?*BA:cfEN 9 >S:_ρqr8Lw~Dw8bǓ +gw5wi$];g{ >ak 3w;pYɅLKWgNdOZSAF]ǔ<4e}AVԞ[#QX Hmj@79bXBK@_-$㬬7 \3\ZN\!wrqNW}quDЦzKA,ln֞d,'hUnKA\F/[$yh]4bKyEq::h-T0"w&ٲ9*?9*%Mj;fئ!TiRN.v֪tQj8N$1~„9 WZ#G%-Vpgbi@<[f0G5 1uDfeq;[%s"/˱7ދs[7NWv)F^0D^X0 Z'LXFAfN &d:#)2mh S9wkiMG<= \<C2/Y]'a_4_̈́tifsL/`Px&Nhz$(>͕n.L,.aiPtP;4VO"({c5ς84:& %횄D6-sHґ1-W= TE#qXe;"3v:pSO?7{t{2j0ׁ=kpn%!=%!C3iU+ 'aoѢJk| -sV{沈} D(65Ƞ%Vw%sJa}4fm1Q/m;a[7em1cj>c~4 ;* Y>}X$*۵nS-;A\vW{VA{RR`ݽG( H#ƂÛ¾8+ʆttޯx.2̱a8n_cʴ ] oYYe?}:!!l(n1˱Ks?üf $KW&\"U}zw. U?5OKLjnLdH犖>|Sf^L43GV 1/Ҥ aU/!䂌ׅ, `YZ…MO  7?6]^5jP6oC_Nʻ3\qJm:)bPW}CL@Y"9j Ɖ&VYsaX*HѼ}6AnL~ `4*g^xaJSYDO>5u5z~3}'/0QDw]tnTJ[3-%3[僺{bjcИ|%.ܡkgݞA)Z:_T\g<7W Ezɩײ~.8XoAŤ`tC`1#!t4ɪ^ ɕүφrXySih#;մrqv}񔷷5syΌϫCpl+KmCD|iM̸ zuNd f~5K_C4AnJ:: hp)\:o?9鈲G ru%rބR. V}W:tFâFQ.|l.OU 56bk߸9f{@JRſ4[IxE{v~ukҌmy*9Ien; ,9$˜^ ݭN՛w̘1``x׏]>buH4= А!s\`΀CvؖO;z-ۤ-D&[$/rk~Bϋo|;GD2'|NKmNE?zt?`L?).4.J#Wm076܌R-9ۅqT_T2枦M nW)3zc2@Dգ711c|Խ9I_4 ry+28?]9m=XqIj\ƘfC>=Тiǣ3uH-(s kBX. PܕB-mkhAGp/E޵JWEg2QÛ;_1,5qi:L'U=B.ȁkp䒻;-O"7@䔌]Y>Kj^usMP/׀Gj"RS >ŽaX*Ooc|xH&'HGU2nuvpn&c!p!y`۽":._{)YxI룈X/,-;KEe̒9N%pT[q׭hn^?N`kEA(D( өS<#jW>;ڑ{ѱT[Bd> f &Rgeaj=eqz [7':P-zQ1axMH%(`g)k/Yg5v/XbS;"!Tӽ)5bjB> N!Jx=fo*FsFkUu޳leS,bh.'Ja`Zk('rjnu٩ZO IUK܆EP}Nv 1p_6HJBlo=|erLl;YOL*ótaR7(ps%xosFYx3ΐk'478yu7_SS?Uk/.vhpC/^V5- )sv,J'Na׼gT@UECp.ݥC#v, rL43` i}<*͆K3/M3>\&X$N؍ٽxcא 옄GV9}lnr 2T03r^ņzk{C}}^&yn,-`cUl=WֽqFЬb+v#o.wWxg&aWP kGlQyqh:j[^Q- x`5"!Dj4GQ^'? R.X3F妉yȬpܐ&60"lmOEpy%3)}8iYayzѴPqTS.A|㚩k.xp zkN6h>׈7Z?hZZjX*zw5\xiZMϗds5n"#~SMkqIy>nҍܧSx> br.͗}OB>63J7YUjb9LtɱY&kӆ%֓U#j)d?W`Lk p2p_y=AYAIDtPL/ڞ[ؼwq5'2C懷Xd2nS{d6B/Ю^Q| ԸYWcQZ p .bd禌9G/<(1b45ڔsiZ '0N,0M>6E\Z_I ('K [kVLx( Τ<ġXv!DoEP@9~ϷCBVN.Լt~.XL=g/;zG+ #bo}SmM l=-0kVne57/ȥ+mN1T~BnqT Z6x1BB֗^ܢ01rGD(,_>=zUEQ-F3_ƛ;JdԱ~ ;Q\\XY%ڲ4+>N +oĺGh.slvmDׇҘ%HB?v+k q2g'J Z f~ ̳Ig{f|7{Wh;#biq7R&oE"Df^y6~3TJ<蛶x2½AAK"JWŗRQ#G@=sͩ>  EkP0*FhrgkABz)}1n)rnԣ-НW=ynŐ8h,R Wݗe\4!9[vify㱠sDNj~ZÕgz4 j##g|İ|_匦Y4L4WEzIaBg'Qdw|Zw;T&r>/|.2p宓hj䗁#D/i~>z^0Y4qJE9KY0s0r,Â/ kܮL\mB:PM|ȕSRm%B~M$a>lJ^U7$K/TX"<-7J<'k[a~-NkW"r*]& !yU<9jWحG,b"K_ˆ/'nX7o*-f$4&bhǒϦυLz("oz%hv# z/fƕ"B7Kx'ٞXRL2G\c%5R[tS]#z;С=G!iE~>|4`/u S[&]4+Y|&ⲭ5{gK%əkDH{<%ז {eщ7Cuq/c~X~^H)4=ԵO$8Q¢Ly.q! %)~VKN=[zJ"+{ 6]0 wPy6o$`롊#E*TCl l9х+V/vS_ID<$"ȍu>K ^gVu 3Lkh6QU=B &pKFr؃y!IeIhh(5}ǕSNf~ps n<驰g#c;7u3_>Z_ qٞPnE z`۹4E}15Up?㿝vRoɋ%H.X̦Y1 GX@D(s9X {%r~Ơ_|S!xH>D T>H6Q:A $[>YL?6{)F"ȮM35;mL6.yZaaqv[9mF|v+'T!.u%s)e'o09*_c0:}^NxYѷo KAd^K6dÜ_p&+2wG4}<58ߢ7^/0A*cEQ wPZvFR[J{O?[O2%W hs? =FO\'B,2 ]m#Sn/2]yOdc[XoKYTn|R3TGOfF^Kaf;DJ1'fݍ̺fn[Ofk3냷^XUAա!LtU4w6.fSoTJA ׁg2' Ud8r=1p?#DnDYJ7[?Cs#VU&oYXRjAk5DZ]Bܧ;(p;Yꩪ_fWU n2Mwvn#`xΥf 5nN]H؄;od96hr\ʝUr9vvwTi/u)e=L ` 9onZ(iF%2\ݺ& Y0+by&d\ӌ;0OǓmiTQF%vʒ(-6\jk#K iZ=gvS4=HS)[-,%ao is>ј"b&u|M𰕧5)|,aIjs\J* NP9dDtJUI9R=073"{2;a\S9"3YRqp u^ε{|WB ~QD`;%%"-C:.r.f?<IB3TTYv9?B͟9V~31ѶfNNҹ~gU)>?=VٳL3>IN/b By{wɯ$+=H )v_kdqB{vs:RAV^:p6iI1LS#}vW2'*iw5frw$OoEeuڭ*O1m2I(5TK*VgX]X4ęWbQ`NO dU38x^/򍌊URrmemfœʇq+S`ߨ@d]sۜ/sQ;WA<Էg!̞X}b!PHn%ԲkH*8 `z͢V'&Ly9q_y~Ӌb4/IMhmU+wWšώ:8v?}ka :t`D/ޓ #lXq+{ (mv^޷|Ir|f--X[ߛYֿ-f&{SqBv6PD$q =X변=1R^ SJldV\r5)H>tgPg|^-njϡwxVf7JE;WА~x{vݳ'7>G.r*}4'B+! 6c? TԖ];J?򎂻M #vy@df%'4]L !rlaϻی[|Q} $U,ѪcwՆH$BcɊN7%A%- Pw>&v+M_k7`8(B  |ZmPKHʃC{,(t>j^x) ?uJ95G#~o)r}(̊CϘ$0R1x|/ I0~C9zhicOşVڑ~&&Չ|-buG[l>=F]Ba'ʬo16Wl^ܹQ thՊj .jgG?;uHS?@o|nS 6zݩ=\C)b/Ȕg$nT 9N;}0Sm@^k 07[VPl4LJLX<&wn;U&N+@ݡUb~:/&u 9Fy{ dFIoTO7Z2/=H"Gфu!͊HK)HNҺgP1[୕m`T$MVw9#a$|go8!FAWr8lx-f%fSo0 +*M4D37oL|jInY˺M1-:E0RL)"VP"I%Ua`sWmX|D*Ve{H93U&ym"mu5p 2ӵWYznɿYZԇ =} [L:f ϼ NWq2ԅq]`ipi;,kn=2udҷ_R5 y՜CaC(N\nuZ_Ю |cym(B*vąS@Jġ6ߩV{DnO&("JԹV#d uM.6HRWr'Vfm3T̜7'5&%OujL{2 "  b L0]psnE&!!;bӇDV,o#Nq s+s[o24F- 5Rp7(g GZ*FD-[VtMs%T^BG+J<älʬ]?V } xd!=h́*SIޞS$x8}=܁)IgmCMqחp5_̕ZyO݌GcQH!:4;]n:0ny^2WErGz"6`M i~̶ ʉӐeφh6QN"b#?cRfֈѥ 3Z`Խ@GBpNO'3>7RO0=! KS7l`::heZ/͍!ӆ:GyeӘ2snKtڥ8:waI:e[?ŋb53AP4VCx5ňެ*' "@ck|~B:޶ŅR .f|7N8u.7b;*#i7\Uw :0q!hOsxpx4 )%TO~^?uwj)k꾾^?3źD:$3Q2EqcN~K>fJ):(k. ZzQ]lcA)K~a'mMuN|طq$ܑUZѶ&(?SQ$,i_GX t[4 Ĕ30G_]"/{ .%g܌e0eQ2N0rKs&&>@L[sb~O焍!_39&Iґݪa:-m&?K<\Rt]ڤINGzqhmTxUAóڛHr +}y}Gcp\NHYQ5GR\PW, E%w:,)!B2:.}-\$S;6|NFUB0|K,0+| hFuc5GV6"T2$Ev匢ɴNFLC*?fH0${bYDj$$2W6 Q̦tɭP6y"ۗoIۍv~:MB28C  >(" ~ ˙뻂ig_YF5POcG=0SY)UQ9yp_s-ܴ%|$oVQ4([Mu_%B20վCZړҠ1*bGU:_é*iP2_}Q?Xpþ vu〸CoW}d1zgfkb]'DF3|k6nEtV'1}?3u',)ew~nh]{Z7R xϏ\ۖ RSv0~GAŊko$'[i׉Z`V\Z8Σ1jB5{c\~1ʻ,ϠU}giCfeC * C2`P5@"_"2ciS"` uF&60BNܱ3;>t|=p˿Z mxР0[+^2UY&eRܗ)L ]Q[8wk08F,ݡ54Oa}u]tSRo `zg:e>P ai!?Qyn%4ѳGfˑi7] WxzOLl0כ|fxRv^S%l~> A3E.ol(5,2gK VJЄ櫶xG_/{ CZXh^2hMӶn|zWuuy p E)uwI^(f6&2.Ю dk|jJw_YEԣ\ (2pyŹi}I Zz{bXZԶ77( hm0QکI-=mo.SqQ^uEqjUPh@9_YSxP잞MZ'3}KӉpH`7Q5Ծp!#*jgE!5EVBUnw ()Œ&IxƩ1hq'CI нy1 mGU;^l_cˮ5dҧbhc@~y& j1`2FJ:k-t L<.Z>_ 7r j E(u|^%]oTQ#i\&eJ+[ SLpJqZU3BUy^s)J^VӲJpUK&ޖ/sR1ӸoC!j*VчJ e 6:ݐ$?gƞgL}O{Ipe^s.}Q2{gWD_6~cv&}uq<&>˛% /Vѭ1r"Y)LTBvK zi'^Ԡc4G &.D֢pBw&کioy#9[;\47ceÄ㟾`V~$3;<߁% &@fh6?d;ٳj螁]ׅF$oB۬/ؐFleIG](n1,4b3v|TT(k/ؙc3ڹx蔽'#}B0-Gt:?;p{_+7LռϢ(5Shm!oVXu&A%%`x~_p#?!g)2>Iør}d֪tޕ8^~pN jݮە^Z3E87qchWޮ=V-5}'I'?)iyq)% 'T1&kA2ZrC`=JkmHBq ]zBwwWQ0+@tKghEĚcM4d.LOlx@f`AgH2Qa]v81٭\xg&FZw݄z/Unn,hp]D:Ī5czN8`>!D8vH1G۔x?[LwZJu\1)ә Y֌82*!7 Z 1eO!J4f3a-uܲj'-Gp5z$S6Jps|hଙ4~䈡b'kӈ^E΄)͓@@ƈ(CDb~?l\>~ ɣ.Rk+~h}<aQptW{ v1}9@8jȯ65w󇀜ǼO'xpwժSQM培4*f}+h+^ϯ\,zuvs&)!9bМ­J<5L%͑LzSx=ὔ0ÆgG6ہw{y`5Q,dOrIi<9i_%eOGqȳbBM?Tgm #'μmgo#+Tת&ywz,nz|eܮsM#`qpgOƠ' x)%^ڼh a]ώ.XzKenkavԶἛ1eU Azfa.edX IqإhKyiG%WuvZE2@Ia[9Z>7H/.#R2fo6Q'.n+C;h "挞`XhVF͏4oq W$YubZȲ66(p~R>C4M l$P^04: )gJbNGjs!#XzD'.sK#̂zfD#d-8\\e<ާ91 *A%]^!DK14]8'Ѥ蟶Rll|$B`qfLjb(8[A7;&DJCG'B /8/ :MuR ? $L0?x7C+K)+=a3`UN#yϊc;G68&1]OZyWߔ&ttRho976ݚ[8a~Jh'* VQ,w/ 2amty!xz҅?9y:~=9A'맆ޣͣлG ߼ 2E3-] Rϓՠ*o8S)1>mΰ^&#rq,޴#0:^<Q ?Ri&9k7(n1MNäBTW9T$EG3˪}^ks8O["f;`9W;J)ަa-C.Cw7*f4ՂlDE.jVqx=##GK{3=I0fi .Yπ%% K@q8@f]7Z;F5s(|>9C"[-~+ϩhMJDLL}о՟ńq18>ǝRM_;fm>к5?G+lF 9R'jn4ĉY1udyS B X|e oxMT TBߴgcQܵ茄J{ۍ1egjoȰl#au%mNqA =uL/SRM'28]<$ƖͳKGاϊ.%$ΐwt<{/xT#d>:b𿰻JzmK%*MR^.B n{Іv^y WFN37Vk+1I9 dWY k 9G9~Uke;a;a:/؆R\qܴLe@Ƿض6MpC+mƮ4jݐƍ4<pt RRĦIBxZiU 2vCcnon Zt`D~ϭE FSl{{l뢅j6سv4ɥޡk;g,!s{qp&(B(CX(BGq&VCӖ8]x;-!W8lS1VcB:L2csZ"t}-71Z~=IXYyi2)g6&֡|CxO14d?݂9L[f[Gk5fI ?[p .,h&g ~sbXNuUwe;z{B7arWTR$"WXл-%0~mceڟI"+`AD_y}F^hMY9/1L*#$q 0p#hiXAtS\̨aDJXq1E2>,>Хn^|>t',2RDEwrC$Kxo]R;KIz G?trR3@'z^O1 {jao71aiwit:0&Mф]@nn3 9 [eM"4:>pH`GE}Ro(8<#{Y >4ՊG"$.Dm>aI=IKEnzD@[θiLrgKu|tb.e?\L)|cɱ|{ɾF?WHiJ+@??קU7+gbl>=4b ܉Mf)F~<"r ^u~SHT,f)'az+*pIZ["p3'?.t Cx/^D*'_Aõ#݀[o4-n'tu.ЗU2A0 MiTn0wnN^pQ䧢<7ڊbDm =Hcx/hZJa-1KޑУYÌ]*q&z6P))=c|,rwxQ*1\[`+ܵN! UE0.Pry3ݦ,yO,_QwA$#]g[T̲k|R?2R@Cל+@FjcC31M!Ay eQ&v<ՙ9pf%9Ƀd >eߢA[ S5@1k =>i'#6Mhĩw1pOh.ڠ lٓDgxYFx C J&&5}Q](Un:BF]"]XaXiI\pѷ!FNS|:*r,nGb/DM6kzؚ%ww[70Kz5lBwT0ݜ K`̦ J&w4grπ+êJ)0V c4Fs$tpVH ʍӛj[ev#2,8aaxi%įwVꄅr͢G;[UQ 'V]/ F3!J x&5ȻIh0K̉A2̝-RYZKpd̙^ lŒ8ND=kgUxB˾񸏖-ln}fk]0 0l)q(Mc \WV́BAzחt|q eHwVd4̴팠:=c{_Ǔu) s6Ȏ'8qu:6EmJGRU&! d4Vn|31|jxONJ &\amH}pޒqh>qz5O#bޮYMiQRzD%FwuhyZtT1H|u՟G{G8Vu/wF(LQE태ԪwQ#^gx#|+d2 42|B(crwbJa|jѡؼOq萺[7'_aVPՌ.>hŸYn-2M&a1.HBTQ2$ !襠F + mF`B0q,фh<R5clTF]BI9MU&O}I\Gӹ~=}!n3\PDPf!v,&P mTKўjylaǍ7ivWEDz 7JEy{$8lױ;tpx%)ŏG #:XXIJ΍\u:悇B% Lo6 8ށ* #{F)KqEfU*WTyd"Lm)to]պS|C%|ɛ<OK`%ҝ/}E pOQl).k5n%3RϿ̎m3I&8k_Ȟ*^T◜SB7J02<977Ũ22nEOJIqs a CS~Aֿ~qG' `\}:[A:*:%E><s1z>rN>^ + 4nxyAE(e;zӷZ*3ٔo-e_0^0 u(f⧛V:`aD'ּf\+B6Mg0+`jG5 ȣI9`&l#+f WOW9fhJSsihGfF:,Zx]~ 5p<}ҵej5\ +:.h۔5Eq7+ "se}M|MYN)D6P9ֵQDnFph(u w7DyvAYRP7:aK> ǷxN.Ӕ0"`!#FC!/]u.u]F=?a@ijz~̬y}fGh;YK Myi܄Z;/b_ϙx6.9EOg&0G^Ŕ-yۂ͌N|jٗmkukزKԎy(hüP-3!>| {ҕ삨=AMdT =dRP93c|,-_>IfH|2ڛ1pG?(Y.Yv PcP;2KiN)51^a[)vfx!n,S⛂pe;U_DBH}TI/:-67LysQ oGSM :2fUVێÄoUt\ІUfbIXKHF.viUn Z? À=(C9A74xf? \5J|.h%+ O%=dRX9.Ç^qQƳ=Sx$So)w= cdU D%WA_X5ٻy)57 9ǿ^fBLjn=};*vsJ_&Ϸ? ğI[ P$No'87V{](L9>2K&!ݺf)%#?$݋Ơ0Z{v6%zU_~(-(u 8.6; a͒<7G' e1۴>9 mY8slvVrI+ 臐(a=]@R q/f_+ _{ Jh B0 y<e endstream endobj 535 0 obj << /Length1 1612 /Length2 8501 /Length3 0 /Length 9565 /Filter /FlateDecode >> stream xڍTk6L#]tHw 1 !HJ#- ҠRxy9k}ߚfkkac7StryA|@)p،!_b\6S0A!2|=A1)Aq)  J N~˦ C\\0yp:r%%y0(zGB=A#/G_.8e\??Ӈ " \`0]0@ 2~\6+O3#ꃴ:dp6@I 7A~e1B.g͏@@PDx?2 d>>% v*I EO;"(ɺCgwN0()GFD@ 8 vo-FV EC!`n @}V78A w'F>"gO9^N^P&ϟSR  DqQ eT3Yd_npۗrhf( tD~ ?O&m7!5_?Ԝ?j'#/rf}Bnf?wV_&EmANy@`}/['Yț9PG/&$*@\ rDEUt1~i@ p>Q1qoH\ 7FH&o$(DF-A"_  AQ(DHPA  /׿ 'Y @ #?F?/08숻(AΟogJvm_2; j~=* ӯ࣎,!vwpf(_)61+1tG@b+ /%?}44 كjQ-W'r){&7=zs|eg⤡@'|ީY%RxQk=@x^&^CYOr9hɜ;Е" : πZNP2rBzqm|]^'KA1ǀQ͹S ~['^ý>N4lQ E*x)4~S+!3۳7g6e|@j#%"|]'dҵgKREl%[*urc|SÍHGT/<ݍF% 8zd0ta>p5 6B?&Mh9h*Eo\c42m@ Mztt\ Ě:Q&"Et8 =1 u4=zkDr׳9.aN5hZ( Tڌ܏/zbd9}"luU^'?'.Wl1vX{I4q9WܪX[7_,2,zv;>k/Gծ\|R:l ~ge$(ԯ Jc 9/%R]Mc@0~2L[wbמ26ʛU~ oHߟKt#3v|A9<dbKX ́ey =?,hu%iLRnӖf"SjqjLdaP^P\'cvwVGq<ȯj ~мW (cddNaB_#mod#<B.dzƃY7¹;˕?5u BK֑W r:}!s &/'K *=7>aZ-32Yn}a2i'<\)d %eRk&yEI1L(W3< = šg&}7,7$[<~qM'HITrl_sw–Rn7EiD Fv;LX+%:߯?(4vݽ.n IIg9KSpn?q®ή*k1\Ѡ}j6kaǤbW>dctr :YmiHHk?c ,~g5y-2TCCxPNZ&ffSw(P(DS[jp cOX4(p3]Ohd>Ic *=H6KKiRbkd4?lDQR$VNS~bFs;134G3ݹ_sU< 5\T}EQYG ̭XzlzTէE}gL)?~ۄrtOGv&:{ܕ+Ey'zas?_yX]tiSRB@v:\fKoc¯ ]j:Uy@Cf VV=ِ{12x,0t(m[v6E<>{ I\QPPWdC[W/C,m?|kx 8ͽDVxAcd봖Hn^sm_lz 76'}NI8',.0x9։I~xB^+i1Vdn1QݐmkÍH\-H(8㓆n|Pf9^F94Gi3S\>n}! Kg\.6f678=6A_GT]S~MDKRn/kv`UDLe=:> (Sx4lsi3['RE}8>苌zF KkyⰇ ,2SQ'z8&Ʈ74k~]tv\s40#b vT3`%#Ge: Z E!A<<.|z'PyUXj&ț4ɺ띝2ÛG%r倎vURAmiR&֓vb@2eEJHR[!,yWS^~ 11&!%\h eU,i&L4OIS [;ل.ޝ7/_I꺽0ħ"X&>6.)|R{W+u02DR[3#Ong`eEʿv$&\A3+.g?̊QJo29g0y N̜yЅ4oO qZNbKpKf-~1>@']5,HZϐvPBh sk ڋ[rJIlG3fס]"ЌG z|UT._l&'81"[W36 $Cu4SUcd>K+geLC&yP_Ʋ1Ш!D[08r49sd+ɨ݌"ؔnkpcU '7`G0kI(0CNs˴s|c{dT!1Z(-<>nj{qSZρ0'MLN9,J/S-RBvI%ٱ z?9ʼn6_GtAڢ;_z詭" }Tr;xA(7ny"Px|'\FsD9 `nemvĨ61ɽ ]$j'$4J`p5KlLT[/_IE<$ ؂dY+MPP}e( s.[>Ny~nb*j@nS+sNȜ r2a4ipb&f=@~ΌKL4FCRfSҡRnW\ay:+V ;ulCol✴|9յCz!t%?r^-d^"3, HھD4ƏKH6(bܼ™72~mA_wrcN YM'_ N i]fѺ&#~PǙ6x)0NVJ}stx r~QY(,zoH\D8mÄ^v9>1eO~"wcS`.-*O+9tB$gPn ]*pɉ4&8ߵ̖Oljl;sňpܫ[)0!ZJK>{*eZ/][LSx` "ZL2֍+o!u0g\g|]J,c<WQǰ;c LwT2dy k>>`T/SzrS|].<ݝ*%Gb$a i$1qX[(f>6J'=.C{W+X<˗ /WP4?*iq|Am>I25Hf6w ,ʹ*)ط,a3qjgL 0w-bH>OD6:^Ed<8 cxgLQ_%-s2T4=[mӫ{k.҅6CV[{B ODr8i܃|0d~bo)(tI#lpr#z||^.φ1%@$ΰ{Fb;}m>a{Ygă\?\ײ8dm?2 x.i1g4r5 5Eՙ 5gZ5޼Qэv:zEM G"ꘟdjRW7Ja+5ErYɣ=9E9mP`Et+TR|,LQfe$9;Idsy_HՅ\ lj-ƿL[*+'=wD_=hx˖4+~lX&׀vG_ϗ[w;JcRai\d[o$§S߿/矗FGaR)$eX+t0[/a.T[ |f:u{AfqUUR[`pӆ3/e(' Z)%353ꀓ-KO8@M,3dbI66mGYe7g1OSf~95&VKKf NI !b`5 @=kׯd%~>53b~F2+xݪU@&[2*@yQ&oc-*Pz4hKkAPG`X[*#o6;| &j_T}\uqLBcSUژ|u]*pkNYސ:2ku\|aYE~[' /% ,R*-I,F廇2/B?x{y"*^s~+IEDw<4L#fц<`!y~H>%h,]g]~5RRz-o=}t۷_E] ~J̥"`A1 6c4=[=8x"(N,žUtXpcC5mwTWWɯfNf^5_Ǝx95!C?{͏5LѪXZiU<^Gjyk Kǯ8/[)CDS vY̢{C8X~{jwpW¥!C XןNʽא#EcWoivK ͼP7.'~{7"-x%Ìal9{Vz^`F)Z93YՈH /#b^c3%c`lB Jla7^y[CYSL>]AZa4:}3[|zr*gCkq^Wěnd|#5_᡺"# M_ fԫpԪY= ^}Siݥ)}^;DyV`C2-KA`}fKd8T;6/3~ҋewP@˼-eqøj"-V%9jy1/猂dкЀ?Q>^*'4BLw7 _,P:.(f9^R>8ޫ$G{;o'ݮsY\} [gٌrQ0&9"GcŨ mjY ĩη0|4bwV. >Nջ8#יV9/qN;BĄS0W}LbȂ/GFҸhӹ>?z\{;#MrBe\([8-! K`DXkms<>i)NE4EeɊݴ.96R{rYv֯<O^Jf.]=}S)M:V,g @ΐ5P1|.ZrJ~"ATZ-a!_;[^EGaID_9$?x;vX :c['gn:P endstream endobj 537 0 obj << /Length1 1716 /Length2 10339 /Length3 0 /Length 11425 /Filter /FlateDecode >> stream xڍPضCpi,Kpwh %8݃%![Gfɹ_^Q-_{&WQgp0J;]ؘYJjl<VVfVVv$jj 1@h*4u}Srl6n~6~VV;++:8$MA%fD- v}M?t6>>ƿb@g)dj hnjPw0]+#?  0#j P݁ MwƌD а-Wwt0u^v s lt&)9+mlll @ _Φ`/ ` I+2z2L M\^MMAvfUn S6O{. GWfY~y=e)=>I3ؽXY[-,7aȢ 9$1y!+XYYy@'ܚwx /G_J|M@?H>.@Od 0ZHF-wyY_g ? _l_ˢ!wщ;x|88L\>N.' ̄_W9b_O vi :RvxZ 7`b5< (IKQڃ1xY7Wrx6J@ ʹ?ry-T@rKfU\@_+ҽn:)7`l:H\\Uz5f =?3HM|E_(K~J!W2^~wbF?brX@. |MkX2E2kkk^?5zknk^5__gtZ?; z͑BmC;jň<&f|?}pcuGZt簭>=Yq^dX "1w''_ [6y|'7^4B;φoc {?q+ ?V0iQS2 cy]bM'2 qm{UiP@_cMO[)I>( iIh/̈́Bf[O`xﷁ~pgҝ1ߵte#ׯ*AԲMmƨ۟PAi7A%W7YÂSyi[ɘVh!rCjyD!䧒Dh{t!e&/|8XÏX1_9ϗ<@gי}R1х.9L>^FTqRv=dФ6Qs| {V\K{y.YPH-^ta\ =7t̄d,>;z> wq-a:T(Bs8#e[F %ՍXL9TnX@y!Q1do)dB2)l@Q@$mafUq57oSr.\ౣbL*-Y碾a3S8}<J'hRd/uLzlD/5h ZNfXS4-`l/$ˈuݜ'|PQѿ>xJ~;7a=O8ćcU`A]iyLcs6z5]-u[ᳪ?K9xeI ʟf:nW'S~+V援#",:pabVݼB&2ŖՒ|ꗶ@U#ZX7M8v=<G_8ͪU2\#a%Tf|iڮ9ϽM,5%,xPY}ַe>#6aFc8RZwal+oD\(],jJFgTЏ.ͨxw:يd xӥ*Ↄqt=Sh1\44غIwJUkuh]Cm6 =}ۅ{!3(m)E[Av8J⪬I _T +I0N!)g 3m tpؗAݡM̡ET/Vb7-#i(P;L1_{iY8Eu9/:^x6!RYI/w`{xw1|0.O܄‡PG &Nus E_!l,-9ECZh3>b_ z}sQM[΄I)y*laf3'rpQT=}_;+ctE4ʚ;aї+Ia BRtt*iEVBv kٺIIvs^O@:@;["ɹ/. 5완M{m5zK>\zpLkoin`|AZ7rItavO 16[*ߩEal:W^L3#,nK3L`]n7!kUg) 6M#ݲ[XD}rXLFM?{: TRZν莚0Q"EzPD]VQ&U{+bOr)5:KB{yGY3K/,4vK[*SM}}"N9kor`j?7sӿeLl5"Iζ pX/|4#TW0, Z7J H#|X,D3)߽g)\)Kn SQ%ݬ<Ck,ܭTCδbIX2DԒ&"ҨgW)O3.!@PPW {Dۤ:S4Qyk9yzi>&'#0[x"xkN<S/Z]W{d;/9UGo%Lޛ=3/rV/aUt89.mcO!g+X 9YeP>ca9oRSB&fzu-V eSZQ݅i'5q S{H&05dϣ'GʥWEИC7ϻޛ{h{یD6epNB޴c"Ag՚z-Ad0XvO--MUs&YՇB0 ;[XI`8>'% FGf{}2/{l}(8*)q}iDs'ZxLT7GWE #iCttRsE1 IMaH_p ޺|+h8i8#ӂ249m,;,xHlZ*9TF xnح*+R cOCE綠|fHV#".MԠ;2"DJ?F.`3|5<͸8V KeyB+ .ƤMSiEOt;J,D;6{eQc ʟbo=ǯT/zRڣXmADy3;]l۸Y$Q5l 4CQGcR.ijTG "iRJڿDp4.0)} .=}ʜ2:wiMF"׮(GюUI+)J+)&bS  $voŢd W@v5&BlCcJD!-WK Pj>ZQmciM"Zi۞q6e;o1RZ @Њ(!bJuKA0a(|i_絈~wf'ϝJ$uUDXnj[C]o9#SgbT'JD9F/qqЭZ=^g&Fe["ʬ&d//!^[UR U{AEwM}# R_򽨭]tS/`!-/w}; х6m~fAkJIt yo6 2l~ʸ 4itR,sL풮z_AI+'J7/t"NJnxNw\m{%MTc= 3d~夺ʘ#t6*H"^ِ:%t b.l?XfR+nN:_˖q'5/_@7gED>2~]1cfT T' $Lh9I?DR2V;e[}f.NG*.Ww{T*®S=7ØȬ1ȚmBlcy1\ץ.a;QBd٥U3F̌ ,'M[ݏMWL{$W#f`}N2(BDWl]7N3z{}zäŕz  xYCmd~Z9lx)_haONX'v@C.'g)HZ^; yv.(Nsrt/"KcONoN]xU:zΑ׼>%3fOA+fŢPr 5^*}TCnEɔ'9̤B ;e6!'ڝ\ x`V'xQ$$YB1^Z =0QAJ ~>ԃvY:OaG8 H(Q%%DA{a9y)dLk"u'o"nN:c<}vmz(R^ XLxސas#_$}@Sx¤@*wkHg4?9C.fXjI.+z"?3.1pC Y9٭^jZntia B3iDR%rxbjҕwSX/ٽ49zYNl}@Sk^$CX?P[%@Zr)y3դNlDo:^8#ī\ ,Ax |mHmE~aU{wYʐBxW59b_+I@}PTGj8F>Nu9}ne0GBߝn:%E$K$cuc`d$\HK~Z̹ wU8K$) 4BQ] ȝC?)N^\$FФHӄ s5ij蚲2}) e<6nmBy:Z,@:dȚQ Ǹӧ i+ﱔmI| ,X6 |v>3~#Nxᆖ(GMLϮmSKH+aiw3E N@j\g9e_s8μIf)&`saLoIqrch%"-I޲1Ui1}BAl2x {NOtjt: =a.kwNv[j0F׺_jkE@Cė3D ?I"nz5( 5՜3 4"̤B|<137y7!Ҏ(1.ϤгEi=(Jei N"O^(gqrJs3wiyO>Hzg+ w{ugz)[?v.¯)A C15^B c&g /9ܻ>{BETx!7Q9- iNwֳVHLVq `#bRo\ti>j:4;jdD .Xsmȝ t28*V{cʓ.Y"p6ejKaM>wk/tvwYQB-wQ7;.,৅"a:R ? 2D(h.="Ӿ0^N]Ma9mUAQZo)^fFW e ׬1Us '\꟢̆=7Hod}[7s2Hm,>TR ~~"|uR=1waZ(W4[XUbNxO,LJn4>wt/"k_ #hlӊ6>1J"ش@~#yC)'jt ] 5N V/TQЍ{š'tJX 1K,nr‡f4E,$fS%KseST~p me"7?J>B\:c'q`(߷H+P8ENS !uwC;!]'Pxo2QeOЖWEw@=tƓm|G~YɼMM.2: 9zZÑR6tHm|\]PnWX(ULIf*=Mo SV%6XRd􄎹ߟ9ծR*ǏBi" (KKK`4+72/d 裀oq<6s fcTw g0 ~_PE:0|3+*>Hb>QȺ=eR]3v|JP^{E+K#6DMO;rD0+n":p~*ގt-vH9LGܡȷ}x&gt;zۋ[h0㹤Nc/k.4~]+/dpMbWe5(‚Rp Osʳw|Hp>0@zƖoqrM ebE軀A(y:إ30Dw]Z 2e6h'NHVH.yKy{'r)I7dhLЩWJlN`Mܘ'%#hfs!7Eduao %MZT~ ;U|iY_h62"!w1nA" _+tcOo㸠/̇E79CWITĉqmmsŭQ\.y2EJx-<ǵ]-ݠz|{uswYקy-nVDŊ4<;n&9;zA3xBja1(ރ,L"T8 9#Dy5=}\i@ n7gblT@:>%6ҡYh^4VAݦcZ eWi5'6X<{iJ >L =oh$4;MA񆰀,KW.!3Xɘ&tqXAG:yo!9upĩEye$% X+ bH"Zbf+6_O&6m/79,?ergpL|y<0~ԥcĺ(MRSr]qgh"gI#-m'^z;jkmT}UN{XZ?:֫hSy=l!P,av`ڀ6+RWb/*RX!Gؒyg-s~DA:s͔uE7]<#$bnI@ DС@>`з/|\)O[wI{.-ۻK#m!!yb^3.$tn3bWwTLY}o`)j^^1,rkP[MJ$~uNd%yJkk!A$ΌTžv~JxbE~|kTgǣbU%ns&vhk<:!z^`2.ƗQ٧ i:_mFvg%EWiʱí#3wiwF_B[QvC9d"o`q8%&~Ry(02|}9úEu#+}SF}FAx 诤>.SߦXBW Gke; 7F:h?:OfPWot:.% ;Nb4*U21"ue-C^ڽCQrsKqL.!]OӮƒMݨSɄ:pq;2:nx2"AxA iv^TmZΈ^fx0,^CFrO.34<ƾ~c5EWۼ[amTR)쮂1#DyTr*#X/1)7zr(K$v]MX0[r57gp_N endstream endobj 539 0 obj << /Length1 1357 /Length2 5962 /Length3 0 /Length 6901 /Filter /FlateDecode >> stream xڍVT]鐖@JjibfNA@AA: E~w{׻ּxg?ϻU׀_a QAB@)Cm}Q(" spΐ?VbcC!BclJ 4&Lh;DBbRBR@ @W )Py "xpFh)Z<!IIq 49 r 02P4UJPS@ n+B`A 3p@EAWw(0F `ο:deC FO 1-{Np'ՂQW+c"AD@x ]!B̘}]{L ="E< 4 ``41C1G¼@ _ϿWn!RTDx|~aQ q( _UU#ҿ k OG c! n1?BoN ֣? _~ _k#0 g \!v0wA (}0 b CnK`08D0*棁 ?Tv%,*! ob̈1;QFv  hL Ӟ?$5O H`;cN!/xv q i:P`_ȱnw~NFSsS !Auz#ڞnf~n~ƁN8حYndԧ]^Cϧ64I~GEZLp͘gG3ޣE>qt8^bQ"yfg>%¨6 f8GTCctӾy =3^2yw^KY~UmbPYTKcdӹUh])alWПb?yBA)=ElyXt<_YKWOQ;8[ҮO;vMkKuTN8 rqW?\x iDhc־J2ڷਲ਼|6=ׁۨg1,M30vê]_pFWXL|a `'Il}+P;敽^@r+sz"`噚<_Au^8 mQug#.;Z>]l<ȷa{}>Ӗ+s"w'M$bxOl  +SIP*g{3?ums}[x|8vP4yZ>ˀJ`WEb\MgET|;WJ: `g /w _h)C;`*X#p$ʡnzS9%zpߤ2w/{EWLt_xR&U4i`CE3]ee#Chkh0MܑZ5tROFtzyc s̑Fqtu|߁)poۄC1krшL1"cZG3\8ͪ7yşS!E;v!zw_cz'KK7gZJ~߅xl|t׻ e]OεiHQXD4:睺ɰg?/ s~KW;q J_XSs6o|3l}@wX%?8t+J,?7v;$(&~w]I(z߁zLEvARQwJ35ؙ h^se 5  n"(3^9`&͇W&O۩#WZb֤ꮟ8.WҨudKjwsV-ܺu,epgֲƱ|MpqG$]S\'Gqg%O(d?2jME#)  .gaÑsGSl[/Ǒ#J(FT<>rԜ)Qiȥ>VrZjg|߁m뗙/g@o>0w7(DME=ĔX@:.ږ.a%7w=M7'glZ1ܟé4^"ˈCKlu>t9+ʞotz~`[sV\[kĈb쮐΅s,_"jr2xWaBATvh̤%KPrцtݚU-ro;?rQf2FA!ά =N&N}IM2wQp}csռ/( +A݃66rk"4xy-fvhhh-d#9UnuO=d զk~F&8̻޺B0ܾ6aYuM-a%=?atwrP ~e]'"">,<층{Mﺫqh &yW*ϙ=GL ./_ʜlHޝP z$B~Z`Dt%e0>sst97&"a;n>t#GbA!JSW4K1P ?Z+6=BNNg5Oa'7w&VZ{lk>ehTPdl+:NQs"N7+ǪdүvgyjZG@wᣃV C'=8R\.+hm+ b> Ao'T+,A)>UѤS5HzF'ߑoq?SviRtQFS>:p(8o7,?-tc>G;y'n ުzQ ϻj3m/,i%f>'bpת+8zd &?fu_}S-YT5d9ݷi-5LK̵(քcai7>uB'O&2aVvO,i8e!&MurlԉyQv=j0{31"$ZM[y7Mu2-keݰn2E%*! ~}n,G.[Uk4vn(gA ϏhmI1a2$à:bۑ@۾d^s5A/[Γ T X=,R@&@Ysw  0;0'w2yBqu0ZjKEut+j6UF&qɍ#ӻU0d|;,DGjl68]9t6Mfuh^M9J2豉jƲ}^ܵ`O4.41Bb$\|A.n"5`wΙ kPDo!|n˟bW {ض]E/E:̋h/<k6(N+~Xo.ק$Rzr&Ӻ,Or' JoHLH JO7ɦ^g.U ;%O:SضmXWR֝{u> Lu~4jқfQPo:۔ͬe*ِ M,sXM[(gy OZg(N-RE뼸@cSfS1/j&ȸ&'hVOxivOA]>K5\YtV׋0E>a3Uϳ|vA8 *zCo|[e0L3)"BIviq=5Ⱦ HGˆiۇ PE3;pBeman9F9ΜrZք@!JŎLF9d('/ĝ mg <Q=MU )Lj3y.c[ ,o&VDjzW;h~ 02Y!%}JGNo1!5mL Be^.o=#0EM-֗<< =ɶ/'#Ҹ]) BN΅_\kp ~p3M6kh'X<)3~w'$ ,^s8~i'+ iy6.G@ک7&shtN{Céܘ]^nk7:;w媳wo[mr9f_5'6~*#yqAv!;K=YA!lôOu =5̍@s-ey'K:z_T6 s(q|o>iw&ϯ~/W4 eƅʙI0Yz)/ c,+:bMK"g Lp![T& 3G${9՞^m-/ [ZR(8 "ʆW\J"xRO6?E׮2~ 6ӵ N娣IdQdԈkMzBކ e-դ;<;ؽhuZIo<΢)y0!6fLsoŦ(/'M*^ewULܩzٲ6v" $^d 0b',D-Czqg>R[?yy^_8 cE.l܍i9MqwnT? d {?)Azz\#,>ʬ 4T\>CAÝeICf ~fgGOf65?_gf8p5˳y{X)hnx׏{)@~fMj5ɽMe-#mLšPpv8z&%}"D=w%*]IJ.Ou&qd *ؑg"B^Jg"T?-af2ECgӵ8>Ni+SQ*/1;dVͺul4w^,>֖߆% kv:*~'Wt̝\^s`:)@9+H17t;5RbHVvD09o1TgzhR]ej\n^=Rc3Kcb]r i]$Solmh5o(R ճzX endstream endobj 541 0 obj << /Length1 1425 /Length2 6648 /Length3 0 /Length 7625 /Filter /FlateDecode >> stream xڍwT6 C 9 HK7H 00Ѝ HIHIHHH("ݍA#!7{{k}zz;׽zƂJ({: e*F0XT !MWhG{ PHP Sbpj($@@$d 2`0@ " -Pz!B-ATAN)Zxa|$9@ FH. wÝQ0rCvRg;~ Ѓ'&D8#<(G7 W x"hl@G4m PnPpD:B,"~)B]=P8{ ) PW2@q pxy \e( jH * #.H7tp)"sc`0XRJca¿ !`\~(w#.xy@ !ÝH`=h`zqt[wsM 5~'o2 EDZ [ӋWm5(`qUW^uӗ X8o[0 oy_{?R/9uQ @9ϸn-@q3trw,9׀"pׅ%Mwix[ ?TCPKD\E>v?n   !Q ^&OqQ#GY(O1i0[8q7^ۧs޷l?V_N4 %J8>dFW"8 6+U/[.684M.|SF{X:z`Q( /3o9ogއ@)5an*=vfGZY!jVK mzA~6u{F ZaVr9&?Gކx2.6I$*A$:3+񳱰޷MyŏM,BmE6,v/Ku؇I0u~!Zg$Șfz"`XIg9NqAy.}nh—(S }IKNh-L ^HzL.|P1&F#ڭLQ"m*Ϧ` 7bh hT٧UntMתrjs: H:s;F_"csU9bߪ}'I {o~ |vA} M#zĐ woE?LV] H%}MT~Nڼ Ƽay@Xe'̦YUlK]7;Un-0G|/fugҔO^0A \*V߬ zg ۝gjHHG9H|ҝ+tA~2i}KJoTJw`ƳÌ_Uz}u1架'$X16$7Ǚܴ(kQW{$mߙ .%̋Ƿ lOoy! nwî*^xZ}JPzst.QI7F db1$|$ _.qYǼ4݊}2 *kx5&E݀+(:9 {IU4{Sn;t7)A B!v5 sEg4B=ݒ_z<9^o^1IOOFiu2'6}%tW?]p4믧^tO'"E3vP-7*{s'o <{ Y璷\gTղBOm "o~prdX=bàPY%68Vdq,H:vHWD^7bF"co$ 8T:r6JZo^J̵'0/.*R<͗vqK3+dYRϴ`ևYlgőc &?~IgTI=O1Gd{5z(%^;XJHjf$_ T+0`;ܻsשwS8(uYܜ}xT8G(,yAI3|㈬25>W2azpj]4,4ۙXVfPb)s9U9+Uz[0>B=ϊh=5i=kt*sPш3^ɶl֬s%?[jl^7CZ/q3m^.&L$vήγG29׫S4 :bDt izܘn&5ZZZėIqOJ7.2O|x4Z97͑f{jp&Ne )e>/ʦ͑= swhKEmUP)e7P^ul4g\!iF r+}3 Rcd'0fw?PXz(z`ʫMxg>2O5 z:rH ɪKW6&61~RXd3mgt8r1wI/qzΗɨX2|g\ EҦ" ūUϋX&P|DǡyNfԍ(M_s7 1S4;ΐ k ʰT{M_W07dF X89{RO)LĵYV_]*)=-XT|<\<Qꄌ串w*bo4!M*>]_%7əxFzwkTڎU8Lb7lnDQ 8^ZvK\2e!d!oCd"& 7in iȔXYYgɧfݳ=cҟi0'LhOsz1N1옌ǭ5 5ʯxc Wx"3e f =+RUt&xsghiǛȖH[FGxmKΛe 2Z(_` w̸uZT0-{nb=eݺCFDtCO_ZuN j'߲21 S|.="sFVZECL"س P|nFdJTiVa<b)%K+7;(^ت1:uVLre-48]*Ft6ӻCi7q;%[ڒk"U* ?kD(UW%ru[i8D[GKKO>N N bO~qRkcYOfj܎Z턞ݏQFp'U 4lW%S"auU*qIx fc1`A}Py5pe1^X317a6$@O KnXǐ7Z?pSˡumTﻪdQ3LQs$ՉQ%+xt!kѶ+{ MNmxUok.*U{B/YӋ<2|6bl{-XؚΌR 4l{ɡ^mtG'3O}YC*âVm!9}͓SiCJrðKg>j ?y.GQ:S-؁֏Т&L._2͝f6< S +_tfXde{J'q!}Ezl*oHy|YN6<ۅ+Zq;l:7 =KџuLb}і}88aG2z+ЕդX1n/ykHo/4쐫%OQ*ow@`CL+6`2ßéK?S\\zA)?s V`,=Û/-45?sk%j >6!V|=bί쏡0jj<%PUeh }ψJh/ge.֥F6uyߟ>sMPn|DcSFᵣr6 זF1#"|m8/ssE3 ֡ӕyʱ-EYuB<Ј+']IP}GKУbtDqXnR"y<w˖}~9B~k zW$ y֖lMOv>' v؟J+^ٳDܗz'RmTkZ]4ge '_FbA/>E Ͽ07Ԛlĕijk$Y-"F\Y`r endstream endobj 543 0 obj << /Length1 1556 /Length2 7545 /Length3 0 /Length 8587 /Filter /FlateDecode >> stream xڍvTl7%1:IHFl(% )H( "%% ҩ H;w}8o (8 `HJ"*i`aA0XiGN7_r%/(6qB1) %*C}@mA&p*!=N(+9yIIq@wjCQ0w̋P7!C3 ! Bݽ^N<@?8hy@ap`C#b7= 1A8Z@]⏲~_B!#81EN@G %G_P7o$ A0 UPL~em@y z~eSd@y~ŧ cVWsv#2F=}`i` ? ` wrn-1=@GL `# @{C}a@, 9c`;^p}0x [H[?꿛 21V;EH Z@H( $ B BB@q!^cpD% ߾t€, |Ai_^xT}~K)WH [g\apjP@8]D*G;׀0=7B @a41|-aO KHT 0-Dhf `  "( ^0O1TFD G8B7 " aV?w0Y 7#n>a7"A0r0/8a^ 71*aI.o;R`X\7@xΎX:VH}$?zn!nJo>I6]oL0b[IH~#3$M3GLzuwǨub/> $[̷{>Adž`&:'?:fL$-O'+9-q>A+niNK -}c?cYLK%pZF0WM{q_Z#y> CO2Qսekx!tRysE,6L6SGji@d5!ݎ wF|#Ҏ\0QjY "~MڇxVMZZODkb\Kp\tZ>{Oٰ xc–;.0IIIxJ0Č[Lڕj`i!)q\j-~}un'dk^C[3J~IG5?ڷYzɭvkrm{VmJ1pk㣎H>iOP/H|h - |DHrJ;GuNr!ӌV͖]Si4e9/B\sFlpsZLhyZݳƽxDDOp QLg[o~>^ӧNzAxoZ `ћ샋i">/ H+52_]z 5/z&dg:ڶEG"BrJ3h)7@aۻBB9AN\r'̳#yB9a@~^ sF­^aʌq>0OG6[v8&K&/GC h1ZQ'!B ɨ\̺Tn[ ^ o>bk=&/ O!O32bֵ>{=BgqO+C:M<YMH\${}Vwq]I r8f\zJ.Og`|Isz󲺩Ԍ}2ܩm& ) .>2ʀpl/Wę#|x {E%> {睄g(mrFaT9!&b;f ^oROdYEuyYeej:?we(y+&o ?d/ݮ},]# ,s.hOaSkERܗtEX{džrX>TXI.qv-YRcÓ523- y=<)Z2[m>nj:KLIޤxgb7SfٝiGsQ~%-+[[[F)5s2Y3!1,Iw& n,?F7a)En[Ʋ V}z f0rw0Oİ%=`_^Am_w+g F5(3TZc6MVN/@m}?c/n6tS`\ gVe?r]k=_biwU+oLT5Q:Mjsphrysy@_}4Y[50÷|l:1h wtppLU{ju|<%A8y`VcͺV&f9Ũת^u!y5t-#7{#OYi/里$ +ajQy\=&_.edQj 8TK5`)*%if< t1Ztb1޷h(I^m{1S}Kօg2s244 u,j\aOăyuЅCf6ٺ`!_%6k CkVK J{÷L+Op=}U+mU*XPǛʎ zn|YYȖ|x㥬Q! p|iSoYE=Z%qGc͈HV!vSwl1U'>󟞂*A@p]YG`OXN.u0$dN`P,Jm{֜E#շg-w?H4`"%U[ X.jR}"F!WNz5q/.5I+˾,h3bt#w:C|YAɉ$wCV@pg juCgw&|~k<f ŧEށ"b޲ۭjs챢Tt^aa-re}ӏOF53 1N"Bw#SlY\_^9LX§lNX!_ +n^xG7:E h,wK룹vʹx Q(H2L94xZ qOHtpel<MVSZg;V5BQڢ*4*E SusG䐯G"6s=9$XE:m1g`rfEr{dn[́WS=%ontꟶg÷"^M 4iqSH޳6׺檾%JՃoCmjQ.'[`'o7|҈WLF6*Q/TZJv_ɖ('dn/lJPw3_>UZץ"^nPoۇ۾Cj6h,=QS^H0vĮ!˭~#0GdA7 ǧ 꺴Sqb(WJK_ꓞt pQך.l~i7JK G{bdV'JcW /=sϺzfNGƛư}1'>{kIQZ*_|#&/$GP^˕w=xp9fN.>am m:c?w ,~FD2cUrLnr`ڲwsM'Y,4is^kJ 8f<eeL.+Pw(Mj>:x޺8ZګG^~QJEe]|OX!s%Ijۚ3Suke2$yztl˂ T{&} DMy}㬴ݸ#,j/q]2K.-ts,zjI!hpy}6;%nVs|6}w@~[F\}/|ީ/AXe.$ ǹ&,@W;ф͔eiJ:mvVtC/HR""9V<_6W (-Sa:IcxNe4HH¼K֤U3% FmA:uWos2eeR㎷5MV5}Z;:w kX{@T04wq/bmJwfZ;ԋ;Bɿ)ޫV~hJzP$H֣s/MT̺.X)gE7? gw6}KQ4q]EQob&a7jw][Q XL*7IzS KrJ v7͸ b+EacZ7ܠzʉV197W,~&x,Q|?K /w9[;>R}Ͻ dԲy))"&d: #ޖJ۽*^azs8||*%(V|SRAY%MJvLSO{NKx4A|;hb᥵}0Wΰ *yV zA Ys)^EAHdr$usf}|Hz=!"Дv7߹s@{ً Z4M 07ӳ*]G>ΩaaZfzBwCGYGX㊛SRej>(:iC{}Ł: ۘtB?_TƐr3 X~ɴ4YUm ɲhz7-(7j5rV8aCjh 2)ꐵAVz{Qƺaĸؾ3$o‰ d#Eav$aMRgykȠ1"8ؠ% @H%f$;~fJᑫgw+)ї. UGT*JaPMs7+ Qxnd$f|DȞR=P87{&)E5T$i|?Cphdn2ֽաv eu;)MͯRGu|,qđ(11^HkW"{\^*ַ&>S_Y*OjHIv}͟J]O3"T7A΄P[WXXx6A> [s{,;&};c==~% x)yOum<[{oX-OfSGyoaҕ4I"?$c,-(G5Zh-@>>|ȁEQԪjM[;0Ai`%@c5VD/IlNnoNZ^C}s&E=xT7L!%;?>x} YT=>#[3}FEV(oy|nv|]*9)6V}53DZ:"q.?qwџ 9}(k_գMC h#RY^T0ϫOnت,$OmR;k6yߘ%xrܒMްT:kM'IK|XtDLC)K".n/S+F>epdgwOʈh؊3K+vKWF;+]%y$7<Teg"?~T`(خu ysZy^R⎀V$7.4NUR)mDg."Tua$}L:m2Z6(g#EnE'9y!ji#cתFÚl`ȍcvR J}hD.!3Tg+ ~N'>=rX?{~ql '"1JvyĚݎ)M }A@s ձm:H fDsnnvf d*֘*O!Uo-lU^9Ri$IL #h'DCp] ] $1ɛ4^D1Cf~x⨨{j$v1c[ĸu ]O8mX\ϰ\Lol/Vl]z35.k{)BUeRzUѤ¸qiiۙwǬ.-GΞQzY#Z_]~gn :wqV'3Ҷu-`/hR B%S[Sq@L G{硟g,I/,6s) 8DΕ_fcwұH_skrAcS#ހt(Y-ҬZMsEb9&,[$}(Fo*zO^d_<,3q5/+-'< s<&O^Bͷ}je.J;3>X?F!VX&xxoPI`P5㧧 : q!f2EvqA#N+X&Ş).qA?ʨ,Z,O;ҭ8d"ΈXW8Y]>ܤ`k:v=qEN$ŏMH\ޝqƛpϖ ϗ.v$U\,ǜ- ETN<?2 1ҖH{b"od#jmb;%hyc/3Sh`6XRϱb~o TPNE.-np;QK8 m{ltCCclQYUE). fQz/Bɧ/s=ufA ۳F@YYOnm%p]އJ%.O`k{vhe,xHؿa2 N3~9( i-uqG-f~<_5{H X͉̋}ֳ8!f1#4TrW /WmRJPG snXޒ:Ф%A$]Wqbk杈bB;mqվDql%S+ k99\j0;yDG5.Vf?ձ`ۓt&m賤Ov, 3lOEv"L~L"#㵿 VWck0{HJPYF(sfuFY߁P"O0/ru8a*`N_o.Cm&p9}E5^"$m;J5[ֺźJV endstream endobj 545 0 obj << /Length1 2320 /Length2 18488 /Length3 0 /Length 19843 /Filter /FlateDecode >> stream xڌP^ٶ<@pw CpwBpw.gWuoQ>s-Hhm 6֎t \!EN3 )%o) *ƚz!{LL d `d0q1s108ƞ llf HX`HllL8gG%/w chdcdttW /\...tVt643/Eh .@ Wct0/flL] 쁀whx P6ۀ?޿Yl`ddcek`ffm 01D]iƿ ,l , * *0x?9ٛ::9Yw!X XY`~'lf4z_jamblU윀x Ljwpe7[_J.%߱dm7 F/Q'K˿2672@c3'p4x֦+X߫\48~hVY4/;07py?wbx0_Cc_ q|w0}lzߢ @/B@/8"%vbЋ!&b~_?CH2=z._x.)|J=zϧ{WC{v{>?ni- {F%wQ7'{/vMo2c&Gd|ސ?[?ɟVY]Wl_Rm߃پ-&ga_Cay|B۴sqZ-bFw}0M@g? k~}]l~?}"\qm'wWw߱n0r__a hhc96ZׅvogtO-cž**oV qi}W㤥*5^Y/Vqf fycp*DnVSK|.Kk@x~s,mJoF"E뷵;-)T翤2yuXˠ'Nmqdox~dK#H뵴tN>XS[cN~! Xkf-V- BKwI@ZZW@ Ō/rBPڝ.=7BG Pu[yw^Iæ;D4  NMx N^q 7)۹FOQK sx=zVWYb ]+6>J u8##cI G#$ʹ=s[([vEag=m.6lD.7$1x'HXq>?i +id(k y/5|\tGƃ9:I]*qUeD{*FKx/ 졓f#_&e{ޗJ_Q{'F:@@J'P$ @2/+VLU7xٴksA LRڿXlc*jH:CO)Vڣt TA<64U~ڜ؉I6Y>Cc@02V,KF5ѓj<%Ib׍xժHdpΖUVJ!9 !Y?@#U`Täxek { ʞeq8,4n]61FJ!,Anf鼣/u0C$"O[lH^;9>:Ӑy-K;XZ{ge-;Zr:xh(뗕C!Pѹ)EZm~nwB, %!Zo3xĐfwfr=-doSկ4ϲ{CB|UHT?O/,9^K#A(uGSgȻ](% )|+hX/W!":M! 쇵rknN)a/S46R3,>|]@]yh ~nЄFH+391,t3БbpO#d&m\"H__\r0ðY_8LEv<\[^dK5{.F+\ռ}/W`}II7\*QcP'_.Ǹ6W3)dU2{&+à)9`S]{4xS6N|#*Yu $_)8#V6%O(vka֗t cYj{^m ;2ZbQ~_IF ;NAGy٥N.0R u]ނ6@F˺L,b9bU#Y^BК17Nz &&ǂ7f'و{zs_՛|iv7G7H8ܶUqY)U$8-Ǣ'n L XtʹE2g`gڈ4 >( 鮺0u0LsAU~^z r"T R_0qmn' Փ3m_%PWaԂJzɦ Rce/Q8p.-`&a8\pXSm۾z*pz6F?mVZ3a(jdq@>0U%I & 2&^h|v3xX)jyj5E3;h)P{RubÖ8Ǐ.{zU gZk= 0&*<ժ4wp֍Nͬlr k4@fu$ OB(vC. 10Qqb÷]sINNڜ-\[n |4z_q>ˌG B$vX۶l"Hfc̞1>8Cc`XQ[a)aˑʫ}s#.u:ۯk.t]5H)Pu"sB/Բck{psUԼٵ;9T.y3:RܗuA$.EC|kGHAv59MKhuK b`dHkvuR9ըFGqB2Q~q}b-Ux IHRNҩ:%Q|ae$l< p=tr!)Z [m+{1 ц/EUz+X90 ]s m0!3}x~~<+"\,{m'ha:cΧԏ) $c>7yl.8RaU:Q$hpte3Is y+q%tpp}K37 :Bѵi}g4Lu@4Px˽ 2U+#osl_4 /PS |T\K(=S mM4DQQpha:xh>@!XZ\9H*3l*o*ottOl<קh$)a@J^w }7-^֩zMۃH{è '.vW¢Fecshr*\,Y-]6ItNKlV4wB{\쫴l>DfM9SuNu@;q{%u]9?6@\Z+DӅEw)8brg'n Ԙ[ܬV" |j~5 t *M%w"o_ۯf^)=%~ex7cƼ F1X?7rG1 "K]̗jzQ 푸KX8-;x.Alh*c||TapŔRN:#dQ$c -ڛ v%4 Z( e9ώQ$>L^G2ٍDgHbnաGJ/r0RxY:U0U;WO3 \}ԓ+WU :_]:ŒdǶ,`R2:<&T]|(lczDyoj.Ol((o][;E3Gؗ㼰g +I[C]YCT : #3饎ȼ(D-o|B(M9b䜦0.n,8Oޏh3p08<bT>7)8fjUin {j) qkb{ t9A >*,=0BbZHRXߨn)ʣYH-S!niy=F8-Z4 2^uv: ҷ.(9n'B$ҕ;7Ug\~6F7C{*vP2%-F =M7l/8 _{=adj>V](+u˙s0GfQ;vԭJ*C|9Q 0V)츁/\4dIz0r1iQ/ Nv"rs~ ^^? h_6h$JBД|[U`*$ %Isē2-Vd6vQDyvrw4>Xm4A8XuҴ]u =ؑξ "l]CZWprr7JQ=kb OZ8د ~ӵc0l@kB~Z _39~!xnHaVEg?mJ#)>cuH| m'0ge,$_4V2z)s3e{qYk H!lA3Cd~gxޔ?^D A;VISO+\aYtKƠ^V4)~>3 GBkSV(Jeޢo(m:7l}/U+S1 >HztЦokm:E1;_45A},l;r9w2bZ'Z>YL3~B#!OKVů1i3yIЂpS 8 8UÆ={~) JbaIƖ]iJ(L"+L?Y+M*>Ne6uu~crݡ%B `0#´PSi.wa0O$ۉv3e?nXoDxx5cU2|'{ZZVFeQy̌rC?#4Lato ϾAsO3HоGJ *jHף Nu\Ry-]b\AR)OMׯaMy-fiA ] AF7ΫZU( ɣA9D'0Mk^v&G$*BWP?[/v.EM,SXErN!~w:!7xlV|܇zi[v.UPR2)_ AmO9eΞG5K%k]r0(%Y #a+tݕvB,9 <<&>ܡ!E۸۹FVjCMomxc7MZD_JJyސE":uDXTǦd$@G:CvimC,/ݢKg2c*k4<_4}ҶwLa ]enOz9p٠)׷_( [D3 tHuQ~zmGȷ;whHر[t u@no$ayyJԣ WTwJ D zTϛ yV#؟&g8GlZƴ`h$cg<|WLmB_CYK0=z@^& '2:o>8(;!aT s[j׬}.ZTegxc))?#ϐ_?\s"Cݭ|+TvQމٽ>Iq vȦ 06Vh_oC>U_Qc#{zM]ɇ;]Κyo]@E=K^ VGjknd<`4AG҃ŐdZ?ȬoDWf4f 2pOTs\FV4Yg;`kjhx}\1\Z4mx0t Inwa8-iq@2uY3֮;*M*z^ەͼ5Wh)W`ڝgSw“d3V;lt8OAPvIB)R>C_PM- ^4P!T )vu\WU˙5Xq1Qq83gg)NdNlMU&j|u|P* d7ʫɚ=>VUW2#&%ץ~CJC TM-{m|Z#ZLyH:BqX ʅEo ȹ5;_QD^zbkM+PL?ܣs %K]^ SLq FђGMw }d<ʥ-|zSI fKMR9.FlV%(uh]}7sZ x)4fjIC{ow#xhi;?BK#[x< ,?>c>L{i3F{@W)MkjjkJw@(*!omcFOkx H֟|fc;3f IC9}8.~i7) 1 )qJp$Afgr>c:U8y -t ^d>_ ΃y4_r^"xIO#5~{zs` @BOVCH]g*|6+mږ4Ѣ8nԆr$DɦGNդBD< 7aTbe-zK$]1Fw;G$۫{#{3_EpVEʔoC\<O2?R}0>]+Ab<|[Io[>pad[[kd]x"P~"GK:0MR9pTO{LK-Ǫ;^ڷ m$RDQv on.hlc !z/>m^vy n 9Ԫq!Fфǥ9w?!YR1uYV:Aq/< {,(!Vmx,Q9P@uwg2d, XL+Or;hmvu֑9 {!9dj{esgaQ{=z'" j\Ewx) \2oӕ:.0@꣄A=~DfЄ[;E@;窼͵cO {^3MPVm3AdA S.64癧^eoaX"<O>X*t|V-Gl=ee vh8$'@Vp,vHWhģyj6\٭̻ťe%K*M;/Ԣa#zD0R8ogZ(2 Az5qJ) pR'\Kx6KMe|JA1VKEn yWCoN뺩zWT8foe#s[ã8O?V쟷g #H)&!Kj?T@doܰXQfY*)VXA 8oyxଔ{WagNN%h |TC]En|`gi\L2[>gƺ׋[Q U OaT2yLYݳaqU9:ma RJ'/qEhiW:n'X} `|ΤPCLE:΍TOPrn¨ց*Xٝ S9%m ma88Qj*S. !Jpw_Q{qd(=O(5W la~Yr C]`*t*-FTw @j/BB`eCɵVAu~m8n':hs(ZQ|M:~`(O-fd8b(q޽!4M>ͮOX9rmKWw}~ʼƘ+6]D29ûi~tm) l.$xy֬ ʕGhSj^,PHY]ڛ=b0vc"G 'z}wA ]|D;G hGk:2!| h_2+v7 56\}|t^)1Z?T))z=Sя឴4?- ]}gGN=oB"v'^h;,y1uWފS(A7T薩-8aTs{ҍP~_+%D{Eb Ua@ >(ՍO(S |-@_|)l̻$cX«,‹+wIE(3 Dqɩ꡺Izrnts;kC4M^aB!L}1Wҭ9hs((|}׈n ^/B_b(E?^1}u[J/uT=a9[5s_#TKx-nd\W=7?rypáZ6SoͲZҤ L QҞ' n6iHX?=i ]B3J"T/?uoX %KKGDlѧ)k[FŕCZ"6"v*tw:E)1vn )C5|*pɊZ2х'? JҎҏJjNE^-jddebzPfmPkDD'G# J&Gbjgr-MdqL=ghZτ rIe̻hבL'Kew9mrNdv| 5 q} URbUWyI@" 2Nru.O> ZADjSL.SL,pTp.QegFAm;UƭEK3SOO8_^y#w4z}և͓h[d3%~Ap>hV(_sTs"ٝa1+4Tʤ׺xHONCEǹuSKk3ⶬ5:l2B9[m_vcܦhK.f91U-ӧ҆'mޢt1!$?Dn $s*:[\b}b~XE%4]Z(K%I4ږ>s5zC{ˤ!GY4JۦC:gE. ;cԺcUGF9Qi]fGI1.6$ŤiK$'Nݸò>-")Ӑ=J }!@7e7ghP?3gwOG ǚeva)9MC5%K8;\T;cAvjhpѷ35?}{ϥQs|+S;+zQ;馌jQn]xaF\h La!X[rNLPX%y'Ù!yhq^O~H2pY,M)%mT{Vp, TdHĄy`rcCX Sj[Y@i#c( h4k$g!$lfgOD4lK`<;\ҸоL*0EC_&ǫ&伜D_8 d02 holr4Dfײ4z9DO}E! B"ᑓ=:z9\)(^!UYS0m A*6_[+1iӞm]zv!Y1G'Qf*y:ʘ R*MLܷٔ rPU,6$WE 5cYZv?Ґ$c%0콓wUskDAKiHdLΑoy:/{eoyLE*S&Y~EMTpKtިw#YC=揊Tb~Mlh]3JwPԳ}-B&f4^Pdӝy~?АmC\@362EɉPܷ㪾r KG,rxY){o p>]s }AEWr6M*X}īT"o+߂^ ߕE-o!jb?IVL$ӵ 'k~rS77MM{7+ۆޢ8^ܖ"ݒXk`/h.;J4SwO l庯?F$3)zQ_D3apH!e2J4Jp+)ao",{&'U/Lr2HKmA;S _ ]\'7BRpTw)TJcjM/Q1PĶ>g / 89ٷ`nhG ,O1ׅm @o ] cT@pfQrw&S l}&Rap뵅$EiTaPRzג 0\c*"v7T)/!b|{,S%0'Rs8y`>̈́BLU4 vȅM8w-UeS&5t ~ۢ4c!]V<iH  3Hz?frrd>Y<"q#ݹ6}V&6M]UV CGf/c'\,r񈂕 7RsK , +ͮjx[JWI=k88щb'umZrzOnLa`%8G/s䎩x mL# \[hũ"!&pVY{FC vuPU^ĿSj%uhA;/z㰏tt7P4;d\B`C-<+e7=V9L.8!b-ZGwĮu춉,4ibJ+ -{]vy(sXN߲,!/& /fT!WhtׄYZ@aUU "Vˈ1\"{8 0weVz]]ҍ;-:!ʃCFQcri@uYJQ̡^t[O j-SB n N`kaܓ7A˽:( PCh{@=vA.ӗ(m ÕMg wgҪvx-үmЖmQahw<';]'C;ZJZWX-tCא %BhŦݴ'w9-_Nj۝aHVL?J>= Mėl$dρq]M(FM3ihW~> stream xڍw4]׶"J[^C`hѢ%5DI%N{$O{5k\\^khԵ8$98 UA `10hCX  ɀD8 PtuynnA"]D P0AEޮ#lp .$!.PK0 P#m!+Z-%W f1[$Iݝ؈P- A@\ V/ɀ*4N,@#F] mj !nK\aVvu@KAPs +A`<vVj.[Z0O(:@59eNì~m= u[~o Ij[CX@NF_mnYf% wt_@,oݓ˵a^!k( +W'. '6OA 8K[_ h{:A~'o5x9[5 vHW&+%@aXt C@@>?: s$u4wRJ xqp< @XX|F sQڱ۟`s>XR0sc?%?w$;Ƀ2n늼(crU VPW* q 9J/u~MQ#-7_񲴿} nM;/) [3~z⾝G+o\08X]~ݩ 7W$px./7eAB߈t ?x70KWm[/b51  +?/pXŘ[h1hG2ey*Ky6,enULڝ>^20M{aܜ? Dm_8jPYm×jP1^ 𮕬h@ o@)>M2J2a 5€~?(U[Aj4L>s(:LgZG{"[RGdi2_%#MSF0JJ duh=HOt~gK[U5B"p9'7x:=|TL Z/#:xf Qs@k!h+%0dcgz{ =ZnI! ؔCExR8_ZoMq]Xlx QzZJt ά=8 H,Dzfal1='JY˪/OL.^D[xUvm<5[zM0l:gtf4m 0\~viDIJQPVp0 =:ŧԛ>x J@hi%.ō0bfvx[q&%GV9f>K a>N, lQnw<}̚5-/u4];j( 0-w N_;&~zs `KwΞ, }Z&cbƨ]\dۅS8^E`qom-7^ԗKl DVF4>0WzQJavw޳ӲwD fkO 8@mJqCw@.㹻I}&goI0Ð"ģ!,x*@.ӚlRB&kW-cǔ qLѸ\e;S▇ "Ɍ;ǪZA$/+3&d )_8~xM{*do|BBsOf>ԢL/CEWkfzIo@g_z[#|hG^Md$s3 0srڔ掿7ՑJڤڻ ?&y *:})ВUk rl@GrI+Ow2"-n+ZvDOU1sb֑y\ D_uǬV1/Yd Ԁ}vzxgQ VA,Cݺ7pC%wNy8\BBjjoD$*Yu$VGpv{bԦm:j^ wh qi'7$e5?,uz`!~?)Lt,lS\m(!ijsQ#Wb #\asĝS*q?)bjj%NLpt$ M&ݲ"HJ~W#7jW&Mʰj,$I[>eG$/T,vȗJg$Jm{٣ctEKB^:;yq$%C]mgn.1BѻF1-[~oY5w笌,HGE ( e ~,o/;14[-;䕢rXoENH~L[9[ Pj^-]I Ne(1qdqv%4obuhOEF?/?xO:`ٮOG˼]J>HAqB.gb8>v7h Su: @aI)e2{Cg7o*LUgV<xT7SJX+~z}W:wJ=E?)Ŗ tUj@@|rTʊ/Z4ι"_LW]KߦW :|RdZ -ާaVЅҞۦ6 #gD_Є! Iq: { TUJCX}IԖ1!Kc.fb[;Ѵrf ^Ν n;O2m[lKQDuw&SIj&+|nO7.YxʁóNw^Gq ңe+p{3[S,l,Is۔ ) z&kݗ>Zm15(75}k$W䈦gim}8W&aw+ /tSW \Ǘ5$:a܈bao{*'*һMhLҨ鱒:5\榴p nڈF%#$w[*P4C~8>pl^tYӎ=oݩ\ӭ/Ll!F͎xp>\Y_:KmxËuPe bݠMI񝲫PG! 'x] &>N=W0܏8;ET8f:o*J|ş[m|~nވcdxjHE5ܻ*M!e/%o}-(Ql BF$&werjH{NJ&7Ⱦ(QEpϦq:|ZI;'yvRP{iA>'?iC@N[ӪP皠Qtdw4+ X3`f2 ̋T ׃#P`%KV\JfDkK85gV٦",CsnԎ8urvĮ AxWlHZ*VXC]xɒ|3Ooml3OЯ$C5RyIzNYyE[l  Չ1|Gtlyۡ}oMj[{`9AudĎIXY)f2N'#,] C>c@"v#VݩjS Wb{DJޝ4cRf=C26޺e$JeЧ+|OȬIKqqS  K`u*Y3WBC[GS\pgu8%'w]7;n;Nc<)/ɭ}5 MC&&yIBegy ݎs5.F /- ίnȻ`+],e :?[" `"Su~d+&˚R9 NSTdn|Yiqs)5VjWpK} .#zD22~M2Eq/W1eڪ&G'$~W2,ttCejj~n\0V\ƥ;vQ1T1 r@c; j{Btm޻T#LʊJX)@ 1 9ъkXcfES!ʚ hBs~ubIfs텧lbmTwDĀ_>D?~^Oz|TZ Aڃ'z.k _ _a6`&ZYdL;/7閣($cvVZ\=28N5"u:g岲;E**7yx2 %NQcT,JV~h*lTPǤiMim n {޲ Bs( l\giKmg6I1qx*Y>a@^Y){HxDjz/XcGL;1Ytpo㝉5473BvOY@ih{̩AI~@5 IO{\_ě"azB5HBmxJ II"/\ZDSϘ'-C4[4JMT/~M7'?޼XGTVLsJXx_D ŹTR(GR%voaP€/Ö#슃D/)~t*:" r?J$$J6Omz>%%={Ehk7{}'۳}|[zoiݘ >6l_4V`|lJ ;z@oAGlWw7[oC*;ߵ8PP~ێb,p`g ("_aJ4 b|│Iq\v9hުCwLD}VjoԖ*s*Œbgvux)1ϫBse]ݫW`*&FN =|dЭ@B-e!dW脋YٞAuB62}>sAd ZX5}AQZ[{`Rd1`;\cq &=n?V<_鿈(SH3km9iG[hM$vtc$~%J LָsKd#xjDЁhWk u+=d+ 븎6e:wC&n$(x/ۊHb>ZvZNwHo< *E53X>_9YѦGU˞Q3H7&|%,Z|k':/82X3s񩏅[{J1aߖM*rǶ븊A<8 ytN,O~%IT JVw%H/&Б.i~u.t#cSQ5'֥;(TE_}=]]*ÊP ^:cu F46wx\3kGd85ċ;s :6p:Ui&./rZHAx3{U篮r?ux(L!A/)=n|&;NΟ!Nmq+%0I5E T^FU֨>X8넞DijᄌЕʢ}K*]SAκ!CfZ6vrNLYFq$I|sޡ5z+n#-v{њ8e_a*95q?` j ?7mPh~a6ڼ?LLY[ O D%׈~fކ8cJ\TpR<\kQge#][NOQXK'VmO+%*2) ]v6E*?d{;<b*Zsi.@6rTq^i}ЙȇƂ;D-bJ_n`>vJ腁b󜥬mYj3LCCa&fX~o%dxˡI$ jEP-$}t,ϡVy&ET^yRXjtj^xBw03> !I*X#/Zj]>.ŭd܄UUz#s8:wAB<j> stream xڍtTS[׭("]JRz &!$$ AD( (# H RIxod֚=ag5CTPH,/$T20A A>Hn:؍a ){S`Z($PE$ PH Ov@->: s+߯@N(,..;( $P u9]uB((W N),-qrCaexnP< Ԇ8`: \ X7r8"0U+^uiu0_`Ϳ{( @@3u r_F5`>8yb10v(h G TrWA-@WA~yb ** (wW@^>. AO51=?.ki rsK0zw俪?y::s?'q]W"B]IP_Ղ!\;\AiD av,/74GrAy Ů}|p"J=n~L@X` ^+=χDaRW( ם * u`zm2 &FQPJu]9Pʬ-H1堉`YƮ'Nw<]>w˦wkmK ]'M0F;}h\NŽѳ@fՌz5sM0됔9.6\>~z3̒4cjf~=qPF{d{f]{[^FKH;I=Q+]q(*uYx|/y:͠& IKKMq{ޒTk)]Ķ<ᴰ# m17o},Wu16 c'T{p%!bkˇ؜ym]fƈ֎.C]h,C@BczAE!U!(z g2žeCk8Mhr-k.\IvxG|=O'A3d Fy"ݫy *r\ލPwG/mbIːS!%fF6׶<s`e'(9c)Gk8tҲR~6$.Ӗ6'"-p#ƶ]6j}oE96I`Σ7HZB83%+Gr kΗ_Uc_3lyEaOВ @vy ck/tD~1<(y}X%#Vv?szҬT6^SwY&sxᕓI4)! R{̚ܣCkk.-xboD TH'hw ~A}Z M>`L25QYq1(Mq7mRoxrxs;=C3X5+p*kffgGGLw9.٨{~lW+X+t̄@$4'B =4DNsX pkk;Ӓ]I;ܫtY6aLiy8/~~~Kr{ZD]Xx*Z#!3fHrMb!_]vL׀KW-5-DNUfF^@i"UFJz0#V'AfK&||x#=/~R S?^.fJW~|؁I̽sq"{vԍ4tX's8aC86&rK*]H`&>Aoy3^eA$!2hK}y== -.5`&!yc8R>u'y__,[$$RD;_sCfe2nXzm6A'Azx˖%%I$O?jz4oí? izX6ỹcy/x?u `WH`IcmyN [i#Z{jLX"sJ@ i~YhIƥ1ՒOE7< Le!V@]ɾ蘺_KC%ߋ-sҢ<"dV5̂Ɯ\ >b<=3K*| Clsm?/N a1E85S5y5!MP:XѳzkЌsE:Y\Gy؛bݖzZ\7զ{xu ᣇe79^w3]HRnq6ݎ>b[O૎*nPps7T3I|(iil&qO5:[2,i`(UX{G&E)?KGi$ 1{ fj7k=yWLbtxLnކT/>WrJ}o[I}zXGy`U6-(3"[=yYr/@>膳y]oීȹK"yQÒqݽ}[aU7o#duTT~ҧ,'GEnPm;WtpH>|csmе~x OK#*ód[sKٞjm{POwPϭIkJo?I+.MYy6#H^!]CՐuBd\wp|4q姇Uԡ΀rӽS7ܩ`c29[0&`TF@>@nXip\TydgBuu_2$G=3ᲀ z>ҨX(02mڑz<`2hRb+Qgu3B; GR*&M"~HcU7B}N'DGeGE9܁+{P*h:^ Jzv/Qfa5_l|)t_9}(W:Rſy&zkťyS3e֌WhB)H{ުeS9vMY҉Z[ÉJ0iu]tTe=UUD#/j>Y%xG-lZz*89Pܻ'eҼ )tr` (aI*}VeĖ6 vOA{C̷,!H⍲]SV5-Y謔򷋏2yюK:=rBΟy:[.டD3CxF+sH<uDLEzڎ_gyҟ(oRxQN 96vpF~$^,{^8vcY"d=uaգ'yW},ɢwjB3bz\qm}W[w&7\D(N^*Ry3t}ͿX~n]@Mӗ M$Yp-c+$%'qNw*vLgb1Fb0KmiSzj%A.yO傇vl8%SZdc%pbyMkyW~d"LhzO!al|J}u6VD\L>Jʆ'DVqB #"i7jn~hl 'tQÅxTvpX79COm8N;RDm"B"O5і1OD^ЧI;sM>Q }OVSn1ox(O{˪_VRz@X<CDz(E2i%+2; bߊE=I ikV"H|y+"R+pY:MhvJI67b[LʃkTazo5QQ N eأ߾)dI. 03Q xǗDE>5R]'mNHt]: 1S[܂T-ʍV^B7QL㻖m3 ,ߦOz~H,i>WK]9{3>x,;hJafC5;Ɛ#'s8^v*p8Rۃ_ld?dBG A 8lqf&Pmo?Wu9; 9zO؜,W$Vj.z9T. Ul *ȅ\hGcO u/چwſ>!EBJ\J嘳a@>[Z_]|^ySsKqW|<9Pw>] gœ[MFGDj}/} (#4yi#F[ri\AU~oʃkpeyj'#[%<ݯ!fg> bsVuKfx9v_W`Y;޴ `+|n;|{m癮hݗ<Ϙsk? 7.vGrbyWJ79keۦ"ntvuYko!Fs(e-_S!zv%{t疍dU;n-Z(+{*K q,oxb0zG)MBYӠΓ0Cɍ~iTѢm:M+ȡgDs- ߃bRN{|!\Lqeo{ }N6439SW-8i?\B)or͢9cオy璃Vm%)|e\IN;ܶ㍇cFotZ[4PAݵb򽎋\KG!an cw*2L힢nJUHh~ 3>Z endstream endobj 551 0 obj << /Length1 1686 /Length2 7943 /Length3 0 /Length 9057 /Filter /FlateDecode >> stream xڍTZ6 )=  30t7t#҈tKKHHH  (7z}k}ߚf<3!!y$چ|>>A>>2 ;߱t(l݊Ozo?H mg P? r)ІfTS_ vxUDM< hn~!>p AR_yB``= j@[ %&0j2 w5l"'kJJo1xy`p1XAA/ WP0?_o_ P /kvᢢ=!H  C)o\F{@ oA`^P7qG? xa`׹)Q|Oo'A㿪*17 k 0 '*S  -A.#;.ki}?Z]K2F|xଅCΡh|E\ -帯UO^JZMy`Cሻp Lq͌ 9L֧#kɚj:w%+K.- ]!D>k9b܊)eOǐ  W~OG>~|78)x\W#RMFM?2DMƢ |XH]Ͳa'ch=yHлIG1nXw=\xN:wf/8gL&AhA]JzV}ҭ4\ });8BK'9PO/DR2f2=u 5G\imeKDɇNTнZ|)2\:E:],/xi莒^"q=+L${#^͂. g2V Pi7z[}ؑJq-YyUO϶N c-qiC6l_uZ >}fr5}W#2U!hUSpA8cAVi gc>兤fvΡJ%)|Fv(x]X%31Rdcٱ o*HYk%y߃dmux5A%*b?z˟xtEûwM=hµ[bͅVN[HgNJ~ l ޫnS&al\7yHgv\ݚ8~%m# P*DJ (5d 'q8q?O{wa}Tc%&JMHYf ^Où1m*=-k[Q%cl3 gr(Fz׉ݗ)j &+7m#&%d[^lo}Cɴ:e.+ƪ)}Lb|<}%gA(aȀwy|~{ n󁩙%ɱ54=q٫%27i}݆=s(}deX!cdv aq4RmSX75uQAf͋;$( vjpX`:᝟ ;lxial@%NE8ڡ3Uף|Z5b/M7LJ"9֧۲\Bhj3Hn,׶ Xx!CoA'S䢣G"c{p9O/GQ-]Fi Յz?oR \{UEYF@w"OFK 4Jvΰw>U~4]s7-wk[4^A1 ݴ TnQ54EZboNFO' /sJf4OOٳΰ=9?,޵#Ki-WGj4onaX>\L Ό.[yDTi}ymK}ثl6|?"ƉB"o*?QTG=# LM\D>$= N*.OSn=y=r1qΉ^Sl9bT /#8.ȷn/JzU˶j2m5^%T4\ӑ֔ųv_*ckh6~_z]!?r}ӂ{>8;BDWk|M4[Nb^ֿ]oLkD@~ZzkEq4<+KK|\c_'BL3߄5TBIIOKdn]r5 }\(sRN>I>ӖsGQJo?"-y + NDZ)091RcyNRƃ˅Ӟv7>\֡`E7 ~q*5i޹$L( KP~4#ZRC߉a2 m%~[GwcM}O8myckt#  xK+l_7Cl9xJ?핂.cW߾<(2*G+=w,(rwRUC T}E#9qXa?ryb^A_ ӏ,SE(=R OqwQ*?[BzN;DaIc8GpIum uHp[ѢsDO<"I@>(Wɱfًd`q2&OȎ ;8W?kԑFҗ5J{xF RӲHKr@/7hM"ww<‚.J&䠾 am{+9]>G:ХJ@Dq8\4l?01sqW^rZQ AZ[<:03 u7^s望F An=#hG}`ٺ>nz`#q6$iֲg>5D‚%*NB7s˫H:=^O=\}2%ԈOS4yJ 9ÁӍ=,? >w4xBu{t[@Y3T:~o,jyK]v.'9\~u#՝Xqbmlr s @-r}:,n_Ș1uKR27QT۾|&6J5)wML)))PyE?E_KzPə"m* cu6&`ۅ^߱xZp%C>Pu)DLF_vAi?TZ2N=I9 w~Ke@IF/Azuq(~'mŮ>a k$;tկy%;Z9ɝƓR=Tʓtvgo4KJvcoXBD&(v^|cajtvMp=őpfp !i8Fth.iO~H|R}l}%aJ-IN|Ei.07̌,GoM]R8sًrzUDYͽ) oC=C2~5a]6ZyϺB(k@iӋZaz,zfovƯߗ 3zGg)*"<|2[X觜˚ӑ|Ԍ#USһa߼G5>T2\~ z &9*2Y|IR5h|WxΫA#F תNXcL1 ,8U+73w kW\eoEoctiby^<>5좚̂Hksňt沏g@hDӥfOd2_<`(+'q:GA6IwFG\WUYݰx\ݫov#8e)Y-"T?1x}jcW-0A?uZtB.Je% 1rS9U]t`]|ˇ5F9,p0z֎&٣;! *W_m/qusk4 AlԲ}o#;~)Lw/\g3 1Leb7e'l}m5^/>5!P@Ƒh7S"f0ۡRZ;/Y!# 2K?Pu}v}6;Y7VwAyo]8> N? 2~KeZ)݉s,woÒy.C^|g gu7\YxSx_/K"|ٿPUfqJC^Zvi>V5Q!eDM㏍F#^ ]f!!/ܺ޸T'֦siL>K1^j6[ߴyϳd!]m<PZ9Yގ(i˷G;\°Ut<5kOl;:!jZ0o^'Ӑ*%0Ϟ]4B1NuemX+'a|o0"HdX^?Wˢo}1>:. cr1FO#:Rյ\?ܵ`Yγ-.2 11Ve <"sG(X=èG<&һZpF[>܉5Qq\囃K'U T4Fe-5O F,eD {66j*!`ZȲN@-U >&k{(9޾ 7nai@=,&Z4{|m3&>Ϭ>liً׀-_KnԼz8p%6'+( @O4B ax/-|=s |[^3YZT2ېL),\h)^#rGӊb{:/K>>, p,ض69>~vG?OO_U4`qM)e=Ir9kU^vo"7AZ|7y#,M0~y--Th'=ǧ߲g4Y}3|kJ_>!obڥ_)̽_ZXV~ՏВLR]2N=5b\}_ o(b/!'Tzg{84\HuW(P[)B}z f| wſmf,Fe[_rQ;zA<ًAWΓ%.ZF^YX)~CĎ"z1ͧ!n`8qfI5HuDءu2Jv@>n:'^*l \,DY-ͱ6YJt'=.=9dIyd[$p%GZ_HzbFP֘1T0ˤYpuTkvQ-z5EQ7'즍 endstream endobj 553 0 obj << /Length1 1457 /Length2 6546 /Length3 0 /Length 7544 /Filter /FlateDecode >> stream xڍtTk6]  HCwHw#-8  1HIHH ]%%79kyk_{;0iqX-!pG g, #`aч" , _9Da $T]^!1^a1D8B rZ4pąE䉀"Q `xEEv8BP0!m!  =MtݹA.pc;i Ѕ@n+ Gȟʸ XP?B@( \P0+r ? N 'f:@ZHcfrpAn E9( <0tv:*+ 0+9#t!< 3Y{ U) Ql H  xm{:A~y |NkT_5GrW6D K FOt sF  30 S57QSlp7 KTˇz|F+ |U`plQm;crKR-xy+Ko3oa9B<"DD-B, V$20xyPEJUs po ʋlۣ.(]6AP{``կ='JN|o^BZA<~+(F_5Ak gX(ZuG ?(V  PTO!@P}@< `I8X<Į2\ΝkcgiEqg u굷:nҘsRwa>tCf9H45#ޫo6F+8Ͱpʋ5x{ML%Nn*e"p3%!cd0W}fıTW}?14Wki} =])'o?ѐ{2e'tPgֺ ˽K{@SƺX9KOA(뗁F' W74H0y"9xCK;E}MM/7܆@YzG_rjj]G.o95HB)5՛S$ZDi&G󒔔ZñTzब.aGh [+'B8d+NK&5 #$Y؇yꝡׄJz:'aͯMދ+wpWRa-cpN"F%hdM>{9/2>TI*ͣrn]S%)U"e!)HD x[(FdG宩'El{yduUKW@f,yp}=+8kx`I?cW,NjA=vު3gP]t fظB:7L"/Hjy!x~O0d~fW6J!$'`Fꦛ7JCӆ=XYw_ 6֝j,$dwLFkfO LhA݋֐d> -p[/>²ρKb':1Vjexay; ՜ޛHnr<cfLH?Đ x,-}&G{OPB0& Lv:݄D:R 5sU*|7@0 +zsqŧUrYqGuʟX CzL$ R W߯ *K@}L?Bگ=Z:G$V) t lsb'gR?nKt;j4-psVvsME&/.$! Hk3}X%V՞%VvTם@?>0+m+\Aaet˱>kPiWLKƏ)HOޭ( ~鿎Qkd- ]V ?D>3 tZj^4XI4#á(g x]7`/|Zދޯ9[ {sx;LFB $vvXbU) ~/^ή K1UMp~Ԥ=d4Cg5lUy4Oxbʓ{(+V<_ٰ?L"{̗50~T0cVe`'Ž0w8e:4"Ԟ9-Hw,m.Xnk  * 0+ ʂ9/]x>%VDj[RՠLqxt2zNhjYC}wcۯRc(J]rDmYAPn減$*LsCI&b4%dz'JVtyASw_Yr 24 egmuF0ą6 c~Tz_{2?[Ċ~T |"HV%| K0k(o:2 ZS?ku;Di!-Hg{tI%a e&赗Ky,6M}Oe&[ FH._mZuY/FyW)&JQk &i$ډTH3[fໜ؃9| CFM7x/KF*_RVLXž>(\fabo-3pcCC7k1;+E&#s%=׃v [u*#2RIcgfy3qD.[bɵMŞq[auD14V{8[Z]3nqm((W:CٍF֟9b[xIދ.)ns -~r:I) Thdp_pE0}1;XD7gB>u4AOf . %ltFS=Eq O & 66}"4''ݛ?xJ2N z\tBvm>DfЌ)i,/+PeReCj:v'D)w*EV@w۞ ~kp!6(MI[BloJXqϰr-Y05BLn3"> I6i^ 3|πoQ͘{sQ۴)0|Li+XBqD]Ω+( *|z١BoMID(J#{vx,q^B a 9Km{_Lh%hxKb&N ,ݥy,՚BMI%S'=e=ΡQ|-۔:NOSD8d>N0Ǥv9TxݛRp2b6" :vm&aiv"(Q\c-}mueAf|UY46 kv>x⫙Z^[_vvDO70 D*H[P_{N{ į42.l@[YtDL;#ok k"m^#'"NOh h>~8[Z^@NbvbqP2#A/Gg>} lѸyؾ4aD]϶m%52%7ߨ X~1OJ-\[0=iѷ0-RLϊ~&*Tvĵd+agwNYuW~Uz+lmb{n+ܞSY|`mրgTs (}HZS_?a6W{|ei4j/[O W 3Z>uM-a˞sG4St'FvA{5m Yi}N!ʯ[R1AO>f2o⢔}Kɥ+áɵQWI7gļ?2{}Mm+7Q(ɼ W StTyw}!VQP >,,Yh[83[~0H(&;$\/^Qo&.YӼDi Jl'D'"Gyf66ۭKsI+הE>|ݼҗ6A;~H vP<`rrlIWݕHߟW3ld ȸO4PyMȐ;_lkBgT~䚮Qa #zoow;*Vi4K *ֲ>'5%Er} 7_.zFoT^Aܼ4}FQa a&TPkY'~B.m:7{Viij, \_צ,i-GHHH7Wp3ʮޓR[t4 !U=.ю'^xǍC%Ggpp xIuu<'buf2Vb9^Dʗ]RYd.Q6j[XAb箲;e5p3 mU`ėL&s/hyh;e,hO<̵ت0[77Nbc}݉> eEK0(c_" pq,P4>M@*(h+)TI =Ahf}'/|Wq?ؕCym˅ܰ|[ vWYedFJ}i U16x[᫐8)~K""f#ݻ'ء-p4G6߂V^ LU4Gx::)MP%k/qM}lΡ(^4 gSf\Pwnq>ӖاrT8Ac^aL"r?_[6/izG+KrɬGe@>Ӭ= endstream endobj 555 0 obj << /Length1 1401 /Length2 6215 /Length3 0 /Length 7171 /Filter /FlateDecode >> stream xڍtT.)HHIPJ ݍt3 00! -JwJH(! sw]5k}~~~ H{JTt ͥ@(Lea".( C"Aa1U暧D<!4ED O#B"h". 脹_0/@HJJw:@Au  `v?7@z!.`ï! nTS/"ĀRb@; *o_Ot8\ 9@ O(?WDBB CaTחy,f}-/ ji3cHo_JL $$*> r5Hԟn_{_sYKyZ(?"oN)W!58ww\apkz` ⿩?ՁB`Āp3PC}G2p_VP}$rW_`ZCks0gb !^IXL 'tmH$:p=c"uB@a= ¡__%/oy\7oCP0їOH'-'5J^KC7f"{0w&s 2ݕ tK>3q2mo{SEtWWQbL裧Մƺ,vRN_vgNb|">G]`bLqbknD=zRYghuFUU4l14kw3];;/?F/sW@Q| KptPWt.5bQsSv+܄f&?o SP^l]OcK.S"b_#DJlxf`xg†:zKȢqQVJ{?DE\Ӓ}g/%‡EPSvM^L):96STкP䴬bf}OVWsC5)nu޳p-fD S;2D^tc>b}R0_pBc".N}zhۂs`nLJli%v%Xwңwf0{{2e%m2FMrN{@s R(l|cwKEՅaNus۱.m4[5O-?7ou0Pzewkt.VYegTy9/Ol ([ƲdѰ QP #Q g^ cBۅY2vu𗪵CCK-5UǮK\RGrp]k 得mVY7Y豸Rz=x_} M6*{%$V"7Ĕ[b*^pܝIPRf3W/tZy6#hBYK /Yuf3KJKĉ\K+z'J,nB 134!LW"~VcR|Բb䷛"n>:W_LE]' ,6Eg&j vGӵ}ʸ Se)_0~l1e`t&lN_¸ Vb$VFȗСk,K͒ϏZ_W`"}^ה_g1g }JlEc5ԤϧɁ[L,19NU&BjG-fݼKTYW#h}K3 ? (-Ⱄ|~VMЍizec,5Xv =0W25s{}F^җ%$Wl 9?VFExDidxIh-kb/m#㤀qBuhZ'b/&wx7w N[dnKG[ !/A·k2c4I <ͧ/v}ƬJff7"V,FbO<,Amęa?<}F`=Zc۬[h6u_|Z"$J~cw[ff!ʬO^r6bg27ɋ)TWKNg(8_kWnVnZd0Hvg/g~3t8i]{+e֕<~[ƙ#@ؙL˱z}(e/#3GzYL N=켐&+YIfL21-.ԯulfdCVmh*MgB1v]i^ȹ3taAATH~a\p|ۋ"cv65 PɷrJG*\_BùɳOqKx+9g䮿My*22]ﺚ0xH㭉㙫dXr:@DOj׻ui,IC-;Z9(D ~6٠J$b[i?|~w*G$Z&g]>26~?t~mht7TCERK<㝳<4dob8 u~IPOreȇ +cGpp1aHINlzZ&S{OmlC_Ei[HSN䬁W,um xӹYUV ~{v2&-4..boa?ks]F hA6y">k웓lt$w)1Yxّ> EjM h*T4U`QBڷ~0^y ~"ӯ& z'dصS!da-@d&>maG#P9tFKzVYȩ9%NX^A4ا͜2c'kɹ)gSp]SCǣ`$OpM17[s1'&Oǃrmqu~95~|aËnCTL?bsu}~\ͺdFj lH{ߝ4ʴ;ׂBmA͖fҠx|jԦ,MF5S4šz7X*[*uV&I1 lb ñIiH5U9+4Ngz6=ŹeyT{cNjoh%0\=Ve'ǘI_ޓXvKv~[ 48vxu7Z5b$eاry,uZP~& A}O>yT~S ̶nDzFlb8=3u(1w\qE)Յ o){x?o~* QA0vrR^UB]' }D7!]a1^ӀtjiJc.kݬ G{EūODexPy `J]WFoy{ǰ-p}  eS*)qSMpFQQa%vy#I7%e|9j5fJG;3YLniͲ/g#4‘Hyn$gr>=1㠆bvGiDN&,3]Rjaz/¹'}NQ ]8~9P*mɣ=Cc %hMkjcvV1f<+쨰=9!H΋.!qxo{6׈{&hmN8b}hcZ1cL cdL4~,N5:676ƉZw$=:U3ۯv^/$R4^SJ2R|+8"XKG1e/d|ݞs/I0*K蛇B!OmxiSyg" _a9di㚹XN}<%=08J9y_^8_vW0 RKlVi Vn#s>+oa՝r2%ӏ+܉"~¬ݪи{}eiA(t3<-22a$YYGA͞EZŽ_ӏIhS6\ADGL*`,4;xGCqNZ)l'G+مI꠱fǤκ†0#{Q,0 ֖'&<Y@iL|,ሎ]a5%؛R5pm$5b8?֖ɮ/ee6$p uEZx*y3=_Bz |+Ge]F\Ӫ.) aZđDOII"R<8a߷] fYYuʸ]mP(_EF]Вl|,}A-όQX^>/Z8]t{k$r\`|yC$tt^&;e WT"ϝmnǧNp+}EB3xi|6\\iY+p/{x c9U z: ]> stream xڌp%Z Ƕɉm۶qrb۶NǶݱ1;6;6_ܙ;zRZ{}*J¦@ {;zf&43\9ގN@#ˇ@ `aab01qމ ffi gE<,-\>#ʄI/w- obhbdP7xO*> FFwww#[g{'sj:@ trj`d wk p5 Kf.FN@hjg t|dJvm@p oY`fi(J1xL24q7r3120WF aeGř 1fq;SQ{[[3_Y:M>õwYڙՆ+PZ6"?2s t=L,J/G6f?pFn@+%8ff hni'h731' 3c#fTTSTPwU{Y,Lff6dd:+mgf܏9dտ/5c)l.@guؙL>~1^.H_z F6\W[ oq&+4tZi lgl Ll-%,=J.&orPË>.+R?37벱s<>e02ٻ|>z;uFDQqEQqKLF? `C,F? `ClF?]}dCGvGv?O}SCG#KL>v?7/Lm>?6$q֌9~\?mOFֿON01~Td񧾏IXx:Xa!~?c>Y?el?Ol ]6ߚ33xcr~ctp|>rq<]t~~~ONc.z?ޕ𿾴@ oU]HC0; U 8ہr(5k~p~& K{OZ4rC;Ӊ+˾lW!9yʰ,56|Ƒ$EK}94e)Dl44+XHpFGH\4OGic,ۃ@-do2rNfw{qRݴR; fJN]I]JH mn~%؄0+VNY[^./ ߿+1}Rǐ*#W;2朜9VH7ޤz -<CYrL%yng!NGrŦld|V a9q3D3`zYA,cwCE|ϑvTX3Ұf5.zzǬ,D`WGYH`Ӫ~UIGZΒ$;?SI-489Ѫ,HsIӠ&'r] DA 3~ʛ^IV2ZL9-xsfZb[O =f#uݙNilU5k\$MY+/80vQL&i%-$*k@p+x{|Tva.[H='NP5ʼn45ZwVEX]Rϛ:6V,`-25VW+ҎLR}&qAY1g>:qqUѴxtS]n\^֤bx$DTke e+O ab!8.Ulвs/&yߚO|ׇVƤ)T-V ?;Zu8JQ$D<"tVI a)T&>A!|nMd YhWS*2J76(e|' %@6^ 'Ly0 y}Q?uTCjW}T]̀)FmChJsjvѲ#ݚ l$'VOwSIaQWYՆ=72=.l&KM~^z(K]^+r>$5"GULUnl kLĝpG(AM$3j̛oU¬ҾaV?jRK_H:d [д4!kQ jPխK4Y$)b]h-4J ̋N\_!nLf=_jx+rYjWߌ/=qVb-,e6/Gma.tJ>J5ݭ&шYi(,t]T4МlN-N\29.*l/(o?˞]8fJR۩/l!wp}-=hsb6Clτ ˚wu/*j-ڹ8~їM䭘 JY PvPΘXqY:|dc'׃:VYci hk \,q3X+a8BW%ӽA]jp]C#0^xc)U&`Nryyެ9I%̣4>ޭ{=^tx&d?i ,Vx_ާ0+j ?u=>AHĤ/1ؘ_3=q U9(.Cyў1*=BF=/ɨ0#"Ҿ9jRr .u 3v!-?==专μ1ҬOб޽-e1C6Ogr,z[׷詮XHjrf0M@퍑sƎK h8~f3Kֻ>SQXOYs.dsgs1 ~RE8D.Q}~%nViJ;8P w_ Asz4JQ~l4|yGξݹ\2?8^{9mFdn̻ ֧X#ث( !! 2{'׉012CRMpdd0`tjRF(׈OpnLI44fm FꓥpF>lٰoBa&Ly@z%:S_𮹬hU-m< Uֹ-W+r阍ȿ3rG@IqaB=nnp-wE-NH-8׽t7k}xk 8f`5tqk(e8oHr֏ 7&,H:=r0JNc<=@1W4fn) QP%#`nL]8zxRMOHu:($Z U@2t ظu%ۥ(),uny$jqw"{:u 1"(gdgym2BՂ2X *^nIf1dF⊮KW)hZܖF|yJ[LRމmaXqݖI|t@t%ؙXcU\j,2Q $t t+- Z?xhEbyīGp z9A.b;0XM owE|'{/jTN#ӭ5Eyd@ŞŠN~AM%N8B}ͧ7g9rەa$Wo9>aA_贅%GPKۘ}XZ(~=*ÆW`RyRrj >gWN? iu{q@$}Y&G~W{ZWzI9,aN&$|  jyy ӟ#)i >]!7t~x ed[uR dGKӹtgC!1(XVˈ &ŝe >^װ3^x$6+ NbSLUWSJ=qpݥ꜡t,x2=#+ 1OT'N%xl+0 u 3=-xYTp)SHMЭ BƧ5nA) HX1qF^%lj:; ':nΑ$2B^ߪG̬`PtEb(=ͶL}]ASܬx$Ou`8ZݓrtQHL'S1,h 0CQI*NSc.:u*2C92x/˸;޼@i-[*]R8GBvm.D,O0`]Y@K'8YZi@׆gG̼!Dx·isKCQH;y,+_"KV!,JS֣31UnT8)UC_[وl{Ti|͌Cs-&s#؃?ѥpVãj(5'U6|,T  i˺һ:s:bh [Zq9yxzv(ɥ\P^L**Q P1[t(Re+-ڿze5_cSr]:sٯ &>oiA, ծ_MJ*qIɩzy+xEmpY*{mߑ&!ļOf IKtRX_$:rN iJƩAHJՑOtʚ˹1mub@^W)މfVo'cB}|D@I\TV;×y| vi{}<FL+[CmOVQ*7o9HơfH#ކmjfkwT6YСY."gC"]3|/mOO_I1ӊ Wi.,1z-z~[X` U?u'Tho q7I$1码C=vlE}8oU ~D\ sk%0ÛF*# Kq#*bw`ٖWk'Ty 󻢔'J7X+ѥ/bnh}ރEUuFƏ6߿|~MWk\t^!gCYsdV^%]F(KVqA+o'5WۣdP\p("g=q՝v6K^(1DZ8D.ӕ\t%m#q#&hY|UqܲbexJ |:e@gĽmOYIHZvD,& _2n~CK">M D{lSS]񍸸g2d XHq?w@l. h\ğ4UU3 ᙯNq|g9=#DKN %iFVհJ k㛸C,Nu18%6ȎIo]!ddÁ MihVT:є)wB.P61Չ֛ugNJ6 QO>T()$MÃ/ۻpLS;rV ~ByS_bjbj pjV uPM@gGz\ ^5:VI$uY>i[]"cw։vsP6i8$mtUح) $6h՜<0.5ePWƝDdWWi8z:8]zyn\Cʙ^W(u9*`HI,9>J"G'hx0q%S$sΩ BgOɚo%oOS<.Xjg46(H 5%AX _wM~g8vX3 <w/C◓cr%Cp3_̤AkJe P\_A2pp (+^Z<џ*=bDЗ$XBE܋Z G綹O# Ys>Q}JQ3bU:3ߩ@|hK׳nEɖtTK];)(s,Fд;&o Ca # R}'55`lc1sucxC.FL`ۈm>jУ_7"u ܞbGyٱLV̏%z/~W]3(ʞc |\=Ml!L! J#0lzR3WXRPؗ/&t /ƖA/Bq\m |m3{"H-"G]'gJG3f  gwyU}XI8/2 2[ e^[CTkPtv,:mA Xw_s96%0H3V9^M"`vݳ]y\Ьv4"S-ٶ}\;x"8t;ވS~@wlZG+wSCTXjϪN+hehd4r!G}HN.v-&;JuQ'4Tt ,Ŕ*YNd0h\kg-̰-foYnhsBrNG"_U|,!" PJGW3S', I0[e;E&޾l651c=Jve-&Tk,WaVp6Sw (dgF\0jx٤ռF~$ںJ79$eQrQxa]ݵ3sLiF"86B|衱OFW^w t?2~gq"E)}2g!rRͅb7jÐxN$FaB][ _Ȩxqmn .'+ 2Mo~8.)b KHh̼W22NI1&؀f&/V+h-tZ'"g}X%UrBTQgLܖL1tJ׾؀6`5p8(a&Ϋo悸&(~{TJ"ݸг[fo+$G]O9u8f̻>g+ ,jֱ”jẻ zј6UP~lZ]^gjWmyJf&OrB(;/]{,_@5,|i4"KI"PPK `2V=^'B`F,N M?y^P  ]|Q'BYB3a*-h!O kA35Z4I[ϿiW~Y:gE`h6@zLӭ_@R JC^u&!5ᤓϘ VMS@v^J,$̥/o nlą0 g|S4yݦTxlﲜQ)<"ワdtyUO]#. vc8Qy]g*o4U/uKև%5U"wGX|qIudM $~Ɋ g# "??^>]3gؚp=/f[uZ2܂Dj~v5L^Y܎>v>N®\Bt;NyfQвfłL&)WbO1.TbffO/>YpQq.QrN&D-Q] 5Zs!55ᘛwFwWP ]N”Q$oR p3;q2bl}NfL -Ű C,?Vekak ~ᔈB>1c6FlU!p)POYQ*k>Ϩ;gN(.3HȢнۄ4]̜NPر%RZpX l~ um1B|ORDkDhea{6wȠ2Z5FoՄnnvX_7 N lK7qo"K(,\ܲEEgUL& ?y]uqMjy=4e 7/ FFl,gÓg`cE+1wX?Y)MÔ"K}d"̑m]ehiTu(hP\^ݷ:IZ:>OD07&T7#e<SBtCrkejye k ~DcФs2QB%|13R%VڈE^m!EBigV6/"̐Po*3_Q4#U$n!;)M!%_PG6yRn?5ء7E@Oh (Y Yg*XWbNp91kGu٥(eקDWldOۄ%0  jT6=4\|(ʘzKB4_Bo;%YX/$]7 KOOxqm#1.hӂYJcΆ\MJdE.΄EFⓘyln4hJ6l*Rro&k.f:pSE 4̤d2V(歗YRSNу)"Bi*eB=.g)Yo/ 8/50|ׂ~G{֚P_%#GTbi#e+!uG oxOH>!޺ѭODI \owJ Bfky[F5=,^R!1!cΧ V%кlS(?Ω{K9`S^uƌH; kU9-55 hm:W;8y!Ǩ@=iiPuuk D঑-LF3ebnMLjƼXv};Do:>rn;$BoΡsZ1i-v1Ni Ckޑ3Dq)&v5w3C`4x dmpIܚsU6 jZ+`F6 zuYu?ixkZt؈AVRj~ mb=}/8JZH;|ȕ- IĘ$~jIӏ "xuΛ]B{5M/\}XeٻZEJ"_"d2sPߢ~uU|ϴ}dvxm\$NɜL".%HvD1-!F,9 #M`ky-it|/'V}4z6 DJB;j[`>: hgFy/**SB^dhj*,w26~,EF՗od/=,BWȺ ~[4JuϐI-Q]iE档!P@DycR#V[yu͵@ joᬹV1P媌Z9L_yQ0$=ȅE'd{a$,,qMQKnq}haY@2xھ|bs6ժ6!b~1E=-~+*ghF`/u)}dF] IlpMQA`[]I,a3K숕`7S=Z1j\Z0N"7d.NPoܽtY!՚34E{:!T ׾3{+*R$@cT6H"|?]`y Bv}enA:w0,G uVl2CFPMƅt6boDmܪ\(~C Y-:v)X|%|Akz 6m!;lw%q5.2qa-Lfk[}PG( `en{8v,4&aʐT\ۼO]#8k_b2{T 7Ή=[lG'D2o<R2|o̶{ϲ>![`P/wIiY`)gP]6쓝Q0CNQDW\Pi1f+e%pcN 'K9g>$QHo?s'f pҚC֨Vp~XƶL8)'$qw*+a 4DDezuv"Pb4ҽ:D`ש&^e^H6=À+X"c_JX3ZusD#ӇU@Q1y<Ďm.o>n/[Gw|tXLZgƻ3KUE'n ~o~3qQeAѸnWOmN`sMnxR_6ùXG44v | )j2~N{'xDAB{WRS/S9o]w] 1_*Q[ј=t1Q_!79IBA͑T=m|މ MzW29=1{&[15"{~ Pv&->{`'+K,z8w!%܀\^_z㾤v#qqg|3/,b55Q{h u,;kԯ@yXg`V(叹U#g'RTC5SuR 1qWʾ|Ěhgd3tCm_8@mM5nTp{)N7T{vp)ARmwQN7zZGE~{B xpvQ`սJIH CTq >z+!p_EŒq})T|>ӉhFU[JxBTgt4@;疊sp H[Occ|Ņ x) >On(^TQ//v+Yqs`Z `33N? |)cs yHĕe2!9pUGdicν9gT9LH^hbܐ[*#=OWW\Ջ`Q&wVWXnycs<)`< )r10~o`kB @K3V$rJhRhm|M(綥(4{#NdNQT66|"&a GvcRpJqjG%Ohٴ ␓p*-X*&N $FTfN0ȞB92XH 5`/}JraS߁=2vT X$Jga!Q({⒁_\I1 Wd&uVB1x!v:kYPs>ʺ܋tO([]CuAKLӍ7濉Z$ &6J#v/#\y]C-5e OJM94 jk ҹR;7xf| B]@) ; άJCNhXlX/RTz&a i!:M &=#cU`s1E=ݻ~ ~GnP+᣼*:iϝ~btw6t ?Qi_ZL]X;%jn˥S݅:='s*We7a+EZaȝj{-/DmX+U\m˻ugWM/oMDd& -HL~En*M:Ve+۞.0 Nq5Jt Yl9Y˚=,)DcFѲ-7WL{*AK(:V!N+)9M=ˣ^Dؓ6>VB$d1-±y 0lk8^h(

umV ? ˒Wbj%&8SR\mBW}`ձSYiv,'Asҍz6ma <HH EjΊ-9] ؠЧRg/x_{u']=$-αopNī|0W[<5خ/  "e1 7j3m`yn@d&#_ ڏݾ-%ve{MfxoPJg }nIR#Qp_Sz~Bסj={&!MOY\dº◮Vފ3hߡmRDŝK&qts/ȆIz8.ek\E2PݏGw x:qdoJsFC`Qw\LU5[)@>SҐg7ב_oo~\ DtD"'jXSKg\Г#vp٬}(WĺvD/Т n\V_û|d_(h< @U;{?:8#;^ŒvwS*)Q.R.LY%&:nR0s6yS%B5O0 ^Y{v#p>x-v c/ڒ=B܈  /dJ?YE ٕD=ɤݮC;]ܣ?][C;@pX[WJa!CH?#p!msܗLZb X:W _QO!;iP)U cjv]b9F+^Xt>8. ?!r\>YTڇbDQq>*sZG .]꺎U4whCXգyQwcr_!#9BtY#vT0*rlVރ,|k43$EGSeɒ.\YK|A]Kh[6e#mRraIH-Ncd/aBGw>N"z '6})L [$-޺痣%xR ?ۑ6`:sY &͇{~8}b$Sܢճ,?)hUR[ryX0^SOP 0Hxyz()~-$g%6/x:XPt|:fuZWIVPiTf2hp#{ڇbw𒿢eiXHbg 6;s97=*YV!ePW!@3zRZOHq]c6V:>2z{e9j~ݯZnuI7 sˠ:tQ>W Vl!gLaO95O VF5KngJuG¶Ub1MosBj~hu=KjֶWI U ;<px*D|[NC}I۔[.[ ^%1ՙG}3ʈ&  ,oחER fOCԝvJKĕx_Mq8ď%*E>#B<]PRNQcn| $z 0k\V +2[Ie+FzNF.45ǯtÔ?HaZPgKgh[+2~8T"=ݏ{X}~Q7/Իݮ ag;>k/(d '`HB׮gL;f'?bx8~c BoLlAИ.d2M7.0,RVXw`nE߭>%iSW,8kr;*  DuC1h̢-v_iI^3ֱL҂̺XLVa3Nذ*\4N=FR̤\XՄLQBKKGPñe5O 2ޡp_S1 - J 4 \>U&E aM|6\O͊J6_X+䝦 uiYp]fI բAFyw |'J*w↻;}Hu:}s)˫1Y.jR :,bݴdǂcF|cfɄ2?7t,L5ͻiQN-P̪覮#tMKUeݠf gT6RQy?"uu8y&`oD3Ή6uq'kћ3`Ǚ?'H]$sR &~:y%\.L]!tptۀsÐz D'EJ lP ]!V8_q(0 ;* P9Zouy㼾klq`LӍ%@jcP2LYښÀVuH`n6z ̕t2H266/ Yw$XTQM)Dwmks#p.y!Fˠ^1dzGv zt{pKcmkMm( LydeXuX:{Ԁ:+|(w,#>5IH.Yb:NM Tor`3υtӧ$гF_/ѷ&nB!T\1Η) 芒Bn&]!}PtƸGm]z}hE f }_yi)=֕~Cr3TXqs+,j-\@1cI`@IpY(?N= /^4P gi?jQҸӚx al{?N  ,}NTU39T9){2fS최}UYV|wZV3}`Dj,VuLaq f ߗzt|\W9HK'UrBx9%> 1[غkl۳JD= {=q .[2ɻj!2(VAbl؋BBoԉ,Dp2΀LGpd+z 8 bk`%HyݎSAlN,׽"\"׉t]Ҡ<ҷKZ d7B{_a/eUk⑝_ >ظrǿL!gK_}DO\.w;IdMɶ,.qtcRf",‹1dx!R@,j i endstream endobj 559 0 obj << /Length1 2021 /Length2 13843 /Length3 0 /Length 15082 /Filter /FlateDecode >> stream xڍP a;'[-H@Ƚ+`V^wLUI (Pdcr0#PQi#Pi]\Ap$Mv67??++?.IS@ tEptvYYZs:1{ df ?hyO ZAk77'~OOOfS{WfG+a:F'tx-H(ƌ@дpt4u v s{~:@CNt+XF19ljnhd rXiEf7/7Fv ;S? jrrsev2mrp:"O47ߗkd rC;PNw?6+ṱY8@ _'G' ?psq `2w@T7-賾~2|0 G;b59e9u%).e0sp8x|j ſ2,|}{=k);-@Ϙrb<?e$ng=uw{%MpW hr^97]so#A /*=9U]A,&6V{_.s}$twOr0wcع..e{F ןC `avpt{OX: q\?L!?"_Sx, {?=`1/z;ڽ??:b/`>4_wjVB^X{;YM k|o2;OeT+]?dޓ.;qWwK+;u==owFv*~? ݬ]zJ7O%p|oǿ& {Ufz_?U@/9꒣@Mcؗz1BOiy :&U(rB]n>mKވv4Ftu=='t! 5 1i8iBvS;b{x5 UO/q+ >W~ck\@U`GD Gq酺ps;7F*ĀQ⫷YڋOG y19G+~&[^-l{ro__QeOfҿ%Xg >@ĉeSZPtp4.҅B#VpwFFqFg\ra{M|S%K ׯ&wfiKpԅ; lLT4VLN:.30x>:15Wz O>D-v3r\fm6Iz(ь)hZ{#7fsė^z`gqnszbGBNx (&؆ғ*J4@fb8(\᳀cgC!]e*/E\#]Nr_Jw 58e6mllJhK`Ku ֶY([ZQ8< HUHhi|+'P<^554oWs{M3ӽ$w5AqIFP}zy0o4kQU|3LwGg6sUF}6NjqH#L84QT= N ճ+%J$^(wDFO)6FNDhi!#^Ňd*\'5 ?-肂Pms!ˏȳݯVuw+L~ 5~|$FTAU؛GCϑQUfW:aWG6a\4щ Z? av%dbZY9\i̤z/K173Ot/Rj${!B A])&oP4&;F0H rUQ@﭅_ `l.g.ohI"Qht:o?Un rT%wܤ+e3o9 YF͇-X[2,j,sEi7x'>aXm22Ng۷Ni }N cv|#4,SӱYSMe޷Te҂L{'ߚ#sKHn~9|":W^2fR̞O3{qKmmZ|a,ᬬ~UQ! 4jJ_@yEA*|G@+lMVC2l4[lQp+lRE; *'z *\6ry0ro4yJq_+xah^fÎi+L$H|nǟ9KQ?4Kě0W>H׉c;#A;M[ǮO&_ YL)8V i zH}'Qy,~I \5so6&YWgҤ?$ˉ3QjyD;W¬RL $$%ޥQ'wJ"+qC!]XRObYަvF\) @갂|eۦn f9pPvs6뛛Gjǎ['i5'XSzٶ-pbB)~L tb|kQy|S1|T$;7%vLYdK+ve=pLNc,0 \}hzFfLŚ+39^ JܷI4=֤Fb8c>70~_,mLޫ:.3︉>v$!iK5ՏȄ<.!-'132_klu%^;dh,κV(-jUgہպm>e{WdTj$6+TC!ai6;Q. gznŒPhdq1,עN ˯ΘI[-MC/1Kh4vfSDzU;xgX||,\- N>bo-]݇-5kVw̛۪  4ܗNא!kǨWR3SKe5e<+{~9L_YdFlwW u✯r: {}6:?J̊IvNlۻOs?b4kC_B7*lχi&TA@S8rr\.G݃᧭Gv2+?&z1c2Pt8n n3+. =$ I=>e9a8MT&$f }uV*4cϣ5dR 4įp94MvGDշ<fADS=mSuhngJQgh|E 'N![3Ui=\Tq -aҎB*CX2 ·?R ¢pBוUyd잿:I j ?H)ND95tVLVβL7`D"_;WGjfMMw;UlNin@^zL5U96 p¹(`]ޗzQDžqҙTgh3RAV$f-e H) h7D(nF{`{.'{Q+Pn 2w4Qp/}=dAp⺚VhP0k0 8ӑ!yU3 Vy] : nltbK(?C}T&*5,IqW0m"* <AnqAo]]7[^"\+Cv퉌a:T^e!ǟf72|n-#u)খM[wqi-@KUpJƨ)KQ>nߎGɉTJ,6mdǑG94{ ~<7y^|K0)OX?3RAp`|nBA懮S<Z)%FH@Pow`O;~bI>һڰ+DeaQ唙 \ `{FlwHp> X㾈HՁ1>VxvgU$?qىqǪcp@hf;s%>& `7IP}ĂFaO:p9*VFۤIiyﴬ7]D2^vcH7$38- ma"Sz_~)}v],ia T@6 i b'Cb.k&'aQznPkEpEl]\ 9z.ZH[KRv&Ay@=x\r[2]7-iZoلrו(z*ER2H{"DAWM1-E7iGku,8H0N\JP0n}gg:Bq *mthof %<,ĭ5s+g@Rb6mzb=h'AM?Mp;Cz;a4?1D- 2eI&vEgl 5}wQIC$p'P6C|Qk$%TGF?`h!Lۣ[i#q1\6<m~Al ^fj9 ̷-Dz? Qx jΰHΣ[z"v^2 g5y _Z$ 3 $\jyN[l׎KJlC0m{EI}E&۠ISȊ_,hR/{J!D5Tn}nB"睆>|VLً[I@"_6YӦ2fh?qcrlFnHa^:!rj f5m@V*Ԩɬ5S&8UTLݒ% ~/\VEmn=y. &R1K\q #}ƁRČoHbKE!_`v/ ̽i:n0sbt  vr͈0 j1_?/vFtՀ" cWBJ$A\ڒWK=ǥ;>rf Qv-Վ{W$uYScYAZtaTYC!Q bH'8x)mJF-un|$P}iEDubiO˳-D~: -߅BV6Rq' t$cOxjUd4]D0(xMF*8ݝVDg]n.n+#?Bl ijJ$5% AdᷓȪc)uXDg.#9h FZ?*T[k#Q*ELoY:c7e/=<ҹԜq߾Ze?yɵ@:<ےj6Iጿj9:X.,a'(vz.KaKxOk4VcG"˚>>\_n񙑀^REs/1^ 3?^?oekPFBn'fAɟw rs=6: q,HȂ~->U"Wk%ә ݰ6=-s1Ǫgl0l4+n˭z*۱U#V6dnUR\ "0YY±0W9ǚNRIӃL ޝb;@sOV#LyEjZe9̄S*AZn#9j2"oS_tQ[c;RƮ1خygF=d&bv FxaRCl$pP<~'Bn-4je/+HZg]E! C,%^-}q\׸3&K>4{ׁ҇/5LL .?7IXG16vY`q#*j3wOx\2*%MkaCQoFjNG5XCXE۟DwPd4伍PDy;u|_fU(GaM'*yS[FF%-Ls81p8o&nrRTnuO20Hy*?TUݶQ!/#whRZn/lV1%y]ܙLkK;Ђ"MyZr[=}ɵA9-:Ռ?*I4S aɖP[XW*1Fbos}d@V EU}&)yݵ?(ŰLƤw%ul/Ax[j5y"='Nt{Oxhp6T& ]\:߅{%LSzczWrpY wwOBNV_u/k4 gU m]&yi$0,b|L$S b뜬YTUn4͙Y~d45M1n# 4\ʑp>b.eɇ O QwD)~fgq kJF|Pa(8Y(#Z1jcNkv;"3&9uC L@ 6y9iLJɡgPg;lڢтbtvaV#Su!'|uMH4{&MGS  kIkY< )X獛\(~&u8PS[/ͫ 2KRҌo rt'k);hh/Z? a(w+\dݨ]W8wdfr1V> iɕ Uǻ#.v**N#ښ)& }I[mq8 j0m Q+H,5Ӳ^<90-ґ 7`r7\s7 {ex` m ?Ϟ@i=CM.3+#LiD9D4jq '5u(6r[guևqe4oվs/gBU_ RkUW FIk-mND}q5L}AYЫdKsoh1k?O%!EJf ̉nGƔw8!p#N&O&@T4VN!nAb3bB)=3 T$TE!9oOlܶs!Q@)[9=;\ C&‡ Jˎll "t8Vяi&yH>^gΜx8^lRBܠ }[g8!A9)xʃ!AN.;B?ȳ ?<~GL}SKOQvxg&$l2)d?oF<?\d(&o&) bLBHCZE>?D}+w-^`M="kX . qsk rzcY<96X~臱WWpW׿H&iNAC0m_`eDCapOmD~#t.4 WH}>n|PjI.h e uz7310ϡߏ U QR2 WD8p *21Sgτ4ktQ8q[#AK*zA6<]K K NʸD+:_[~X Oc}5Ҭs*ޒQ.>*U`a'X|0(ջKF&jl,PRa۩R?|4U;*lCqx䶸OV?Ӭ+\x Vx.p- *4'֎FAW/[v?+wx>l P|/HXE *VvhPOerWnל9^ ! 4s&i*R\כS{x2R3Ҭ9?@W6`l ߀;/CW$Sֺcԛ_1phK`#| I ҌN.nO ̃R"k*QZ3CBsp#!93XYeQ7rdix<>+hl 8HW[*>f"Tt |UzDW׸jT6UGUůШ=O$xWmH'fZؚq({kL\9/ͅ=c4fC4.nܴN/U٠g~R*ʄC}.WB{ -f*ױɯZ0tyD[/ʊtpz7n>=#^}i>Xj]X6.rebۏ>@N/ڒꌣ,g!b3% Iw1nʸqfu Į@uwϬ$X>Z)ߗ ޤk8@4G3[DHUW"!(~db9ųl7صڗU_ѰViAS* /WJj1:Zn,-'uv8G ib,*L,_S6)n>PzRj aݡ">9)t('m^\I*1%TLz&?fظG?i_mcZ4& +`$(,>PII ^u9/>5xGo~%[8OUWxu=*/|Fu?S ,*Xɇ뉤t^ڗS,ݲ#9㖘F~3$A>4 \XZMjv^/6_^JMΟ5@Q^Gns% k%Wjhs&h3?8g<ۣ<:]2h!;OSP!ȸm;2r/X\w=MY6gqX[n>?xRDT|̊a> F$)@-0 g\Ux]3tt([)$[ +Ts[[B$(%>ltх[c~$_8* LgcYmv]m.7GN:)XeX-JȃO0U鄤}}sJ׾qp GR#쇤6&~ԫHs %fDm ?X{#7.H(M\>!!Ԝ?*z'T`A>{ČVc|g8JE jS+XLK ]=Ie3X99dVV~d@V;[ B#hdS]FR ε"؀j%.! 9Cѕx cvFNZV˥2zЊCe>=',[R~'jσ{8ERGФD iRh׿}R~3#7Ƀ7<덬M!x4r̢0ۣBAzT~мaO$) \oYHF 94X^Bǎ&.kQ(&!77KOW2 45Uf SJ;k:7V-IbQ~DJKfF|Fkƪeݔ?UU}+1_AL|x5qMǨY< ŝ\[J5L>¼Ztm|wjxd]D6;CNzCСxBA z+Y9 !MǮ|+k02[.އ@Tvx6492f!gE!ؚX9UYRϡAWV%IM7ȷLTۧ2Kj!QX뚦P2Z)2S':NU3׊JmF:.ֽ)ᴇSs`Z͈Mu:r37cK!r[Ċ3E !q *Ka"xVkh^G%$QZʸ[IܜEOgaA&,aG(O_!] s4XG{+!EPW$,B3PO|<!3E)b)ɬy@(n{Q;*3?F" cuS6V`Z,d↺M?wһ> stream xڌT[.LJԢCC,:%! !!ݍtw(!Y{~?91y5CM$b` t31̬ -?bdjM 1g "7C67??++ &n s3@L- Ctf6>>ƿ"v@g=@lhfb Ps0lbl[T.@g79௄&v2cF[\9XMdwxڛj2%G?0S3ۿW &ffv& {KPg{&غ8@ML@&$ET&3+E@,ao.`g O 4ݓ;{X-JՑE  D[f XYYy9@'̊ꞎ!x9:8, I}@@d/7 S `2L {!b?|g@2{lֿ~2^/2W'*b0sp8|l ߞ2B?|~=c):@f=\f_lσ|6j?uC_T *Av[+6eH< ߃X\@)&6V앙 p* dmD {3`l #v..d́O0 q@X88#Pn._7E7F߈"/ao`,ҿE7F.roA(F.J"^E7pQ \~#E7p \~#DgAb@f g3WlQÄ́!rr&οՐ MMl[W)ٿ 2Kbg;_!o`k 6;(PNI \<bb;"Do3 w&&Zy:Z@@S? }6@Hq~3Te򏮲A ~eYumjgi%c4$^llD!g8Bkj6'jG3]ÔowC9!uu#1' 0::?Bo_-ad;2_GG ._2.&.VP a[9HM8@bxșѸ98I]? $rҔ9C"}:g3WgHW?C@ yyL غ6ZȝiwBpzW+kٹ!*#pV$qsm[Fx븥!5A(Nuz yi dH 1f l t,u+/r{G@X®^S SF~@ui<+0 "sٓd"⥻s?[:K7!. i/у$YE¨u,Vzf%sQs[/LRo}/ Mxw4A/P.07)\M͏Sp5f|ukYqknkF*kQδt:9 $gY{}jnY˦sM}Xi"sa Py'h0XfjD%֑ou1Y)X!ݏ^`%g&.-U F}g '#X)s6Yɻە/){hj>,&EmxeCd3ާ* diEZ۽%J BQ`cq6 Juz>er u5ƣxVSǜ<2L ̲g:WF9cm~+ëwp5пf.JMy%wd>8^|5OݕѧM˫? jʋI[Ź"9JQWc3d 4|CsdnZǟܟ1ӛ9x@Z@]W`nNG_=35 $!cK3M2(ఌ;rc (!3ɩ\}007Cs Ii) ]S8^:5 lr".-_b~Oyp"z|BEm"ttb)cnGJj pۥ <r, m~12+JAp W3M}"x IJZOЗȭBc/ ņo^_ˠ5RJKgߠ#bgXS?[gLz P{Zg1닀`@N´{a2uڮKe Gp\ ]dkz_[p\V6J;|6No|m~̐zҘU/N ,Z0f=r iKJbO(Ps+^8%7٭aB*- #HSFדє`:@amG7)\$+;ʼnG=sECHH;Qp/#9Ty4ޤgŜҾOdyE7O +MAg~8iه̄&u*zCO@_Nf,'҈a+YjEm*7f/GMQNG /kRfGPH:Y>]")؏Eǟ-%^'[B_g3Ib;xcoΩ0RT%mE?`&3_LS+dJaRDGN$S`O&*dYD`eKn]moS)_V"OF2G!74P0g#fʳ,/lu|eM .!IT[|*Trӷ CN=$ "蛊}OS/V)(SkC̩C,[d;iy_V?<©,{6w`xhLZRxłUl$"uޟH2.:$\. IF;&`Cc{J*GLX-x8YБC[$Ǡ/á56&wTċ.%y M^`G.%`Ju@b[JB$~ޙS:DE[ɘa/A`%`:f gi}~jj;_F/G]|AQ-{_v [[8v7l/;A7j e9Bx D_?b )Ec_(T[ J|.DL7{tЭf ЎFR.B|@Fa2`Bh,oft.ՉviEplaT%"}uWI.j`X9h%x{tG(ORm#+XyUIjR)_'7V_-AGei%d,͆!}i*/BojVU_[QʝaUS_oakўfX*WAz$F#\An=0᳆_^a0ꏰ~C}h-t(u(],׭|)y_ä9y6s0 _@tr/6gPpB̹3YB 820sl)F`Ɵx'yiMiڤ9!϶T4h7:uΩ1x!PJfY-*)npK?w>Q"ġܤ;@3=l%ӻZDe]JLOll=r%n&e0@sqݬ #8-'4A_-5K| ZpmAA"< MY wq̀euNsTePAt0v=jH~ ~=WH )n))ПW$zJMd5pwe:aءï~$e͕rgپ}>Ul]QzVB[Q|oH p&Xd`o 0瘩us )ن<-r>}cJ@>۴K7UuلFW]SRPR?J8?2~x$XxGb#)ia?*qC< m 9is(8*,dFg7ù6'=j;D*v׆wn.D0#(T|%U(nU (q(?<;W{{"`2B5\Du R ΫƦltjw)~0!W{[m|3қJD: %S[C%G)X]҄@ϢΖi@7z`L4/v}C=Pw^hh8 6X^I]k p+{|$p7*I&^K{M12$:SeoĶ ~89g C Y}~m2uX~9lx[0j/pϖkd{yd%PԽufx5zqc|U;]&".Rm@*J=0{QB{4h6}W<Ƃu΅O?+(ӞH"LZ+!ZEIY^AԩjjTXVzI>%jmmumq}EىXJQh9$C=JL]܁^>:YzWE Y>VE4y&7 IϙP wjdTz Y(cSp:H#+ڒIovWUR :+[ި]} oB ,ܝ/P}#$/MfC .sT'ՃmS"r-R"jQFt-Ix)Rx͜xY"cX5nu )PTh\^ڎ6ycr/€S9K,Hj[ZNtӸ Iɔ ~W%d!jW֮rMd(6-!.t[kһ\צ;xC;?v#|'76"^[')<6id}$I<:0*_/Pk~E64 cNG֔s)8nn[vɵב%m Q<#`-I )~c0J"%jYy5ߺ3ۑEVo^Ǝq{"PB1)duIlXJe|Veuvd4'b&eN/D6yg#p@`1"pkϽ:1C:f>-eiGt2iWT]`s'[n+h21op!`.~,ksa&eiEODE~YJߌjr]$Vg1\c=cV6#[޾cuk&ՒLQ30|7٭Bhj?߉(prl;ˑ%״`#YkY] ?~pM7ADi>6{!MB%wavPS(";VcGi٥pd\ڋ2:h/q.Nδso$ا7l4=vuy!]ç5J̗D1_JnllhA0>*jfijC{W_vi[GxuǏ:'JD4U12ĒNsً~sf>oU} ,8pt&E,EcE+Y[4yome< dϷ9[ɴ[]Y@aZf*Q-"ғiQbsD4#JXƞ*b ebs ڶbl1KV?qsHAv>pI״U,@P?6wga_ =?~'ce[6_O3X9 %vdx]!&E$G\6}! qPaHGx21CA.&  Þk`U _%ȆRָ~7RwdaE)x"@~yOv u25!X|6 ^&> ^.,qRiӖo,D`+q}tu̪!X/us%ÂY"6IV;r!JFPv?@E„XY+)Eiv (meaֱ;c*d',1("U ҪMZ$l;@{arDZ94=}#5G ap y;;qs<JNTX/I|:y/Rj!kğQ?(d(F"< `^n\TGnpM[YܥJ J!-znSΦ6|8>vPOb&F[v#h(X{wHL:oR" |;D⡔@]=>XH7yBI\xC59v%)GNDa(8[d|W.{SSN Wr,; !{H3sGU$!k#H?t00-9)=֞=XD ESfOJQ:FA˘q&Χ4~ǽʱJoEH:R0@]xbjOgx E 3bXj`)wTLP*&0c`\OSzenxI9EaVJa/c0ۘ2)Jg,|G{C4 _\~S;66KYq6ĢEnrMiu1j}\qՓW{W֛'CO'O$ -$Q:$SW9*X1FI^Eg| kO++cF Ze hDKP;'"}-6MoQXnօNuN4LjI!`cXR3TvBCvHԞ2IJ~Ms=]"9^}JqF| R9FY#yDŽ]uP*crP*ꪂ c)L o߈x!^7(s<'ȪxVչyvwA>{&gLIh}O#0xJg!>|DW8H֥P= t5rYg1ە3l_%Dud2@s (կI\񪰚a Q/V})Iϙ|c5+L:".rgMU UurWtjTZ&O vee&.+[ж'Dy.ÆL3~PU $@O~ =1)_ؔ`uA9{|ஷ.?t.S 1_J#jz3:e@[1 So1Fn<<7y7JPkxQ1S?}\ 5ebM\POAuHmQ6(VFOkX+e规Ӳڣ,vb MwadE_8,Gǵ)JEwll `e}a_([A=A3ֽJŃy~*blu] FN~3:CYF*O rٞҖxݽ9ΖQZ.SDLjW8ew1J\::n͗n D(*˄Le[𒅑\&5Eocwo(pCjX<_˾ \;cP,cXCc*!#a +ݘurþЋfF=&am%II??@Ē+Ha١YeB4;|N.fw=41eر/5vap%]z&Y,e0`^_+OFfjElTnű \n5<2'VF{p ~Jq:梫 dIՌ}h۴[Hqc>cuxr|+zA%\goUvz'ձ.{Y,mj):HL[~*P#t)Vů'sopd2=Z`1bGnazilL-!pTゼ T7?ltDs bh{eJL`DCIm36_Oe-}M:Cl'UC/.`7ܵqzxj5_¯_bWMBWrȱ;}Va3P x6:0_ nGi-"!Vjr")1P.z;[[C mWN\>hA{S-).cy/q>F}DLMlwmux1ٷ0J Cx>b6rVC"@[MS95W88Xb=48ww|,H^Ђ%Qڦ9|NIbF*Bժ<@5B=)[zوGꆅ2ь/00Jh~B&Q3-fE-O FpYnHOzcͭ#&% n>KH cDYO?56V|~g(ݑ)^\(6y^ZQ+Y^y51!j(P$*T!pH_Z-n>ReLMSA߿:>JCX՞yjңJPUgQGynΑ1ʁլe_T/$.N6gth h"R soW_jw>4q4Rn!N >'R8 1<$ `d3ٺDJ!9_{6~NԢ(/ d:Н9`#~T(en2۫_oX(&f yd'bS:_G:A)ӻϷEs%ed1i]V><>$Ti2K',[?Qy 3EK~e_@D )UxhC4\'6؞Aq>C܌3rWMIx̢rѩ&Sb+/j%AW G#ZL'x aؑALߍI;ޘp+F1/;qW'u/cW>da4s'0f$3jtSd1J(HIË{azi&_aTQa 6FZQ &V,Ma=HJ-2^ w4/Ƶ ~F~la7\Ftu6ۖc)%e(l=qVf޺*=ZA,]XME^fR^H$S}ȞRVjFL-z1iq\JP~ `'Feiq1NoE}yk< ›W6ZU"dxE#-[9{.A*ph'Y\IPoTڊ>m9=1OjUyY+du:wN%~KjXu +ٌb3g<` TZ3nRMVWz(ű`sIt R_Y1wd%SԣyƜbµJ#ȭ=FmZWxPz|?HJYAއQ׷ĸ ׇO~li@pSݧLcƇ8cc,%JҀ Y#g,}oBhܦ~d? >)(C.׼nGLSF=w7 Zn)}xy  ,8Q3PZ/ ڨ c~3WtIu;iIT㣰zd]<8v[' + b= f)v"o)Nw,:V~i։1 %㡏*m }y|IWja5eo}ȭP`Fr ƝSsЫN0*`6qp6S"~XIQy]-Tz:` \Pwf3/ک ״0b8wU Js&P`'yѐ=ٸBuJ2@cDCv ʶxiʁ{c;>d[D+@ZYgvyηc>11X s iL_O>Ņ?rJ~T4" ֫Y۝3yύn/TVj6#] ]˰^P[8L2g;PR2~궯֊ 6"ӔLj 3M/ |P0~$ @{zFW]J~ ;)uBcˍH/"XȮ 'A1j]upIQLݥDW`Fe nɠ,.zfuӄ/&1{O??YP_2]4eEݼ0Q|_UO*_2[?Qa]%h3! k˭hӖsA֚ s`"`.ZX&}DK U>) s27 1Lg~rAU@5e8R A`'gɃ hPY&c,*qmd +;t:BTedYrAVllhܑYק}i K /IJPۀ81< 3Mkutᲊ$^vNA.$>kwbeueh]RfgfܭGqdQSj9L$n{h7 ۳M}bo :B\5Lpm:GT⡫Le=Mw*rf>s|il?SF/'Sr=12B=u4> &h-V]/^QWgI^KűKbMg߃jjlTg5$<RM$G=tjsCHN7E)]/3tqXV-YI-{lR 9g~GA FV'7izZ`HtkU #:&ޔm4!}M T%hw5"Ծ oZ ާ+Wḿ}VvXqbSlL#&.ʸ!jG˫c>p*r$Zu4EFd2rҏy0;{Y%2,\E`M[[ZSGr>*ØJZWcݱ!ׯYge`,{CU8.B굂[(Z]vdYL:2EeUw6%&)^/IcF-pywPՇˠpxKIO RBNV%ʀW3w,٘)^EfrA̯#yF\P/lf[`Q\/ZHfN`ހdQɑhFsg$>UHOܫ~iSB Xn6lI%}]#P( g"\Nᢣ YW]?եj|8<&@ӲH*QC,U2Kt);ug.BٺP;ϞH){2-S.R[W5%=OzC|,jz-N@]R5UdMD[CI֖'+OV8/{6 )Q("o ~WR}o;.;<$sYDҸRX̞ݒ0HsRϝz_ȡI3,bsI^ ,N Rޝ{Aj|+RMGo~M/xN(m!pI$w@?@um,]V`I0ah@oL5rJM2(! WeFjy~#Tj3P gq͉FkR7>3_ي?cR_u<~>D= [z32i'|V>%@NPd$Gu6ڔXAW)ѫp3_ihah_ʥ}Ju4oIXȍɥ͎h_ha Caii\;:{(C' w,':m)+%G_D;Iic(;% ~p[%,-NN`BC.蟲bglz˱Me_ͬq|388P׿xTVrKFa[H8ȸ1FOR!}W]F r q:d<)l'ߵ=~X:OZ9Lk}ٗR/l `3 N ۝953 UJN3 !wOWg`P[ʼn~Kű3'QȯG| q")NêMlP!uDRadơj.᧼Ɵ(*kڰ&ICzCiXqHrM]D#|ޒF RS 1"?^7UNb COV{67j*{,X5z{xrZDl1tUy8sD&hpe[bʶ!4L NTf‚xqc1~UM4dozk_͚`z.hM$`^(ܒ5*h ߨX^%)B.B!nӥ5(vbYDmNT"uN~Z̈(NAF9 [0m R(E*'Ɏ]86hwd'vQ7!wVS_'Ot[/6ޢ81KZ>6\W'̨,:Z낿R( -w`Bu.EP }Xng}G!T>,>=5ftXkrfg5t{nA:.*Q1a-;l{mqwGm )Uʌ%OEZύ{U+ Bhr Rv]obSy>]5mnW><%|7sv%R=\ ep<p HGgeZܿY`!~a윶4&J#0o*S .ym,)`-u̴%pJK{ϳ5*ku{.N<>ȺVMLG &J[2k%Ma/\-$AV{B3_'iO|rcf9.fhԤ`@3kc$ E j3Y4 xu`Ӯ:RI\;V卵'lQI-3ӱԋ W@i/>Дp*"C]$zz]1kgI~ UT+Iñ ̂RA;jWe_K)b>c?HřqytMLP^ =Hd|IɭP20;A.tC|T:ˍ1d5d{JkωsʺNA#0~e_?FҸIW_>NؑyAVA;B"K?,?WtRuGGt&s؁@8\;}pV:Ï=TIa$[H(̚&t1hЕH.JH闕V߁f/l#@:EUIl@ z)ewډ>3 P"h+a\$PpVͮS_e`яq Y0ͨCruqռOoSżI^ yLd&R.d@aC`@*bШ!bqxPX(c^귵nLh\Dc؉?n@bn:箥/씚̛CRq=n=#{uzɑ[ DO^p"sϒ%5+x*T"J`čVA B{`m94?D1<1Ā/嘣OADC J5e5ԋGj3%V#IFRw=w#sZ^ &u^}{ᆮ7'ڊM!6xT m+=(ۃUOOOթüÉ廆U 8"-3E pHb2ī dg5!nyoȞ{d8_;_(Rni8^q={1v˟+\3}dvXNlp`o p˛Úf|E!3ϕ3s\8Ó?@#*v(,y>$} 0JrsdΘwQ(QU2m QWjWߙ |cF. }DU{pSng_Ҍu*~nvd~4Nhmw*ޜ 7#_g C8{leXQjԨl!U)b4ApLV'  F>@^b " DM9e^+s'`mfTs|ζ'$ sTBxC +5NH,W.^ʅ=:$iOQ,1P܃X?"#(YŷD*NK @-e)"zdd5#,#/>E}صt`2PrSX#5{xG +zarhE|3Lʧ<'f+[|?_n7rI%cږ*[k*6MH0a0;w`[-e0 $]Dt83sDqYV+ o\^{79 ܷ?F[.?? dɩP+lS[U{$?AQ% )ecwK~If7w.!ܜ&>nmb.@XZ Ėc+: P{,靾<31K; :~Ip+XRhdJcQ|9 endstream endobj 563 0 obj << /Length1 1306 /Length2 1345 /Length3 0 /Length 2180 /Filter /FlateDecode >> stream xڍS 8Tޱ]EOQ-O2AR*Yk̬1&Q;]RNH؅JEI]ӖP.]8g h9Y]O1l ōidpqQ St' OvX"E0+pfJ gfjA[eA:j I,8c(,%bb p |8DB(pp,"^BBqWL a`%q"ɐHJ$ֆF@$e`-$'K#N8<0>.$0 B R"Cy'WN ` liMt qH  |DulW2)P|(B?OlzN'J1.%KF2 f{gD0KI %L7hاAy|e<"2nCH_l0T܌`r 1<)D abL Dp8‡?R .a_;H4!\J0;1  6S U|B(B)[re)o3b˄qo~H{| ' !2ѷ^'"v?P\L0\{kBgH"$*:10O<8t\BF1 |LBR)4$b;'G>0 sIM1eL`~LK,qG D/a@QVCSOY7;9Vq5hi JۍvZ=F*w\ɏ+ܕi0o(/Ź.ީ-/!k$%i14TbJY饹6y2eҾ55o_ݹOgxvhҖݭ)vH>Tů4,g5Pi/Xgn5 7D7Պ:3ya AM5o|I_Ԑ'{wζbAOliEiGs 2_fj4rgz9Gf[Wk3}/J9h~?Uk|4R[ٜNTش@__vdݼcp"=Oy\ظ+t38cZs2.-ӱ('5u]팴^Hb+M:wUz.& [G6Z̸9!k&lĕԭR?:I=tm/#Xa RG"2dtOW'=nU$ǃ/:^-2YeINVyé<-GDUn+˝qcxitz8gdYBR%GMܸ}ŗʧns7xfkP*3SLP~PoT$\1 w7Wu}}flYSW-*Nyi/ }xzGxVQ³:3 yFœ9.^o2js> stream x\[S~WvRkWA&dj?0&3ٿ[v;6T%iݴ`,Da.la /C!ĎXȠ\a( **QX -]hoT*8L/ XAX8 |sz,~JUxq,U#iq+s!BUG" Z@AM`CX" T:@BJ`JMaR.3Uj0`*l`Vk0C;v:ka@Z\̀*9a*f@k01zs~Gl9T=<Гp macұЈ"&P31vԼ;8V|A}DpJ2Hl8T4 Cbb4;ѺG 4d >E 蠦GeF5+ &JvL2A' e ,`#N.w%hBl"TJ|84e+%%r=Ye +3\A*CTJu&$ /jk&iQC 4w2T7Fk(lJK8SpѐFc?D:+o@_"҅ LIs rWs#eNsHDX:#ڨ ih@ۣPC~|‘0"yh0xN"4AG+`:1DZNIfe9D +@[Q ,.pb!XGpW `UziH(6bㅻ$( b d:&%>Oۀ({k~mO6mf}Pm9LD!jJ%"u-P#Hl4z|TS(6*Nj! %G.(!$H,-E J'Ҥ19d;ʆ Sb%SQ^Mvh(b@lA[J"zB#Y'5U#"b1lQh*aF"$\H$3E $^gF M2A?YI|M#$%'=$}qZ,eť2g4Pd"d&?ğAJ?֭t2J敏o( ڳEӄYE2n@x`\S!fخā$>āGR#Ǒ qQ=xftnM+sOO(IN S9$=0r̆q(%#i\*a dMB`#G=Q#n&%ay=)21ɟ49)qɼ |\roݳM9z`4LgTdTM1e.8*vUz$ ΍jy{ˀQ ܡYV;G'}mɗJ7e҂›0 !%p 3y#e VɃs"(Dogoz LsхIiti+SđGsblDF_&ev%Y,)7A{E >鮁Q [ gQ'/+#0AwHKyJ6#jAsrhOpEBQrB{V'G#ߑ5t_R|N6<;_zĒ{Th^30oE!RYg]8"?Plhn[uJtjFn_ X;=Z75oHN.13Y rw(F)8{kh5=цP;GBKA?eΥVN&,*-%Mw 1b evPD}FՖƏjTJ4ԃtQ77 ď:M0q/8SQE`Mg&ڔ$8 v"k25톻d8ښYfPz@mf4Y}?:“ONp_ 蟌nw?s!_MY0r<]``SݿW7_jD.ćoIu7 qv4 ;2O^yP'娼(/˫r\^WMIy[N˻򾜕rQ~-z }Yy+m!;F~u%|h֥KgfҬX_ގpidϪ?] 6@'B |YI@\ As|SY82TT 8=zPM𺃲OBm>:ooe6@[͸ ?}y X)hF!S-Fh K `i|9x2^W7m㢺IN1^Cf}Q"o-VSv\TK^ǢxZ;odnkXN+o^QS75^Twӫj~?}k;`#hJn#h'>逤~43]Rv)˚v:hټag\=V1pfHtLVWz F2[GdNtZohr xA@}*ƓBpMy3§7h15m2|V ٢M;ܡn|2A7z<{V7tv1hNAD)@V{ڌ_-S |9w2!qN1Qw sp]-?53ˇbv\%jvp{=F>u45^0Ph`M˷/@U`vt9Oab|u1QuRV[5cuWg< Vf7$,q6FV젬8nι 2:F.}+~|1}j͊ |wtNR]oN_z7nm ޥPlta@Qv+܊0VdO"Anih$=-ttrx7C*$'lfg̀5*f+c1u㧵{4̆vi꨸v_;WK.7߯5~ϳq,2{,p ''KƈMNd8 j6ݽme$Ϗ_>6|6Q(l!ݠ{V6r)t (ek$M h\3|}fwh^fms7Yަ[`:\`vn&~BL)FW% Wx>LAfQeNKueV)bz X&?nG 0&jZ-%g7?ж\"-.OtU_Ѧ\lt]]Ѽ[r4gh;}GtənqyQ;nyne?yut˙A  3%9jO'_UinIl-Vۣ=Br@]uPJ^`2?*sɵl5\M=4قFoZissLt|zBR\W0w:Ms[g/^dp%"D!*3 blEdeO98=.N|O^wvM)/|l L ?_7!g1m٣Jܞ}5hKd/ U}{p5I}^ہ{rEOvj{W}K'EgsfлK{-yqszWs=^B|IDT{ >eG]/$t;=n,́=v}Kgr1Mܨ#,M7k$o&߷͌۞w7Gq08~>~I޼v+O% C.평lzi>wG{/gșܳ>"e$NtN#1[#νwKRgk }ٵ4o.'}fc+f<vw=Ë O4"Ku5/~l73-d;sǰPl !:|yس< xJ:<4ݣ?CoR+5y:vI^'Ҙ}j51?GM"V-bRM ^1'Lp|) 4{Lӎg㯅b> endobj 569 0 obj << /Type /ObjStm /N 23 /First 200 /Length 1185 /Filter /FlateDecode >> stream xڍWK6 WDX`ѹTAhw{j;-eH)e(i$<91qA1%E&MҨj3%QRN,X #\( /pkd%V"e5/k [KP`:",0xnj?öOk"!%5P&h׆sW|pQp V7CUUS+36Dz_}S1 $MjPwI2=w2hP,%(fK|[X- m pOU_6|G5Tich-Pcr%@s!6OCI-#mD+f豬v$u4շ1I6Qq@^tOͩOk6%*{ ,]T#IF"6FT2F".F1K]^nh#bq.Έ9Z!X*"fqǁ7 ] /Length 1445 /Filter /FlateDecode >> stream xKlU A[(Wʫ-ny|)oh)WF.хJ ,LLXĝ,\&$>VƍY]I33wf3B/`G ڈkD2pU(62,2&rWV@2rsɍph"E͠1%r;ϰ "waX@Y A'3 .ɝftH%%r3 OF$eJr rrɝ`8A U`kZl#` `llZ` =4`'n:eڭ /ǹڤ$8C08Vu r}`#9Nij9NiEj%,>JD=eCJL hU.NE9ԑT)Fft ez~ҐPprsyI0XDfV p*;{v8=[tG**C (tPݎol9@j_i61k{;;;;;>;uzn⟣Y[`[tti(q) p}[:pupuu.b:b:b:b&EL? TvTvhǁja\V㟣OTlh-=D( f? CQGQF!Ϛ=yԯs.3>^g(XqPCX6.kj|b+kOgj@y!X ,ֵ紗h P-;t_,e#wa?iqYvnRh,` X 䊴HHX#6E*n驊q;DcwFj7EQ Ҵ~@GVFj+HgY@ n}YH|# /bXjs\t7RqƲjV2Ix\$ݐ -^)*>ѩ =^l!Z͐e__}"%Jx0'5[C4 i$Y@۝p(NH&aI}ɨ%ƍnٯÚsr"kk HH&!M—+ <Y0'aNBM]M6cJ[- X4i?/4IJ'=Vy`rJ-YaE]Vxh-PmG-Ÿ)aEK8uPQ=h?;JIQ~WJ)Za*ZiOP4`(ҋNJjVyhqUVثh(Zm+Zc)ZkuVyCE/W? &p5("(2*y 4 6:tZ^qK endstream endobj startxref 497242 %%EOF gmm/inst/doc/gmm_with_R.R0000644000176200001440000002266014437645363015020 0ustar liggesusers## ----echo=FALSE--------------------------------------------------------------- library(knitr) opts_chunk$set(size='footnotesize', fig.height=5, out.width='70%') ## ----------------------------------------------------------------------------- library(gmm) ## ----------------------------------------------------------------------------- g1 <- function(tet,x) { m1 <- (tet[1]-x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3-tet[1]*(tet[1]^2+3*tet[2]^2) f <- cbind(m1,m2,m3) return(f) } ## ----------------------------------------------------------------------------- Dg <- function(tet,x) { G <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2],-6*tet[1]*tet[2]), nrow=3,ncol=2) return(G) } ## ----------------------------------------------------------------------------- set.seed(123) n <- 200 x1 <- rnorm(n, mean = 4, sd = 2) ## ----------------------------------------------------------------------------- print(res <- gmm(g1,x1,c(mu = 0, sig = 0), grad = Dg)) ## ----------------------------------------------------------------------------- summary(res) ## ----------------------------------------------------------------------------- specTest(res) ## ----------------------------------------------------------------------------- sim_ex <- function(n,iter) { tet1 <- matrix(0,iter,2) tet2 <- tet1 for(i in 1:iter) { x1 <- rnorm(n, mean = 4, sd = 2) tet1[i,1] <- mean(x1) tet1[i,2] <- sqrt(var(x1)*(n-1)/n) tet2[i,] <- gmm(g1,x1,c(0,0),grad=Dg)$coefficients } bias <- cbind(rowMeans(t(tet1)-c(4,2)),rowMeans(t(tet2)-c(4,2))) dimnames(bias)<-list(c("mu","sigma"),c("ML","GMM")) Var <- cbind(diag(var(tet1)),diag(var(tet2))) dimnames(Var)<-list(c("mu","sigma"),c("ML","GMM")) MSE <- cbind(rowMeans((t(tet1)-c(4,2))^2),rowMeans((t(tet2)-c(4,2))^2)) dimnames(MSE)<-list(c("mu","sigma"),c("ML","GMM")) return(list(bias=bias,Variance=Var,MSE=MSE)) } ## ----------------------------------------------------------------------------- g2 <- function(theta,x) { tau <- seq(1,5,length.out=10) pm <- 1 x <- matrix(c(x),ncol=1) x_comp <- x%*%matrix(tau,nrow=1) x_comp <- matrix(complex(ima=x_comp),ncol=length(tau)) emp_car <- exp(x_comp) the_car <- charStable(theta,tau,pm) gt <- t(t(emp_car) - the_car) gt <- cbind(Im(gt),Re(gt)) return(gt) } ## ----------------------------------------------------------------------------- library(stabledist) set.seed(345) x2 <- rstable(500,1.5,.5,pm=1) t0 <- c(alpha = 2, beta = 0, gamma = sd(x2)/sqrt(2), delta = 0) print(res <- gmm(g2,x2,t0)) ## ----------------------------------------------------------------------------- summary(res) ## ----------------------------------------------------------------------------- res2 <- gmm(g2,x2,t0,optfct="nlminb",lower=c(0,-1,0,-Inf),upper=c(2,1,Inf,Inf)) summary(res2) ## ----warning=FALSE------------------------------------------------------------ data(Finance) x3 <- Finance[1:1500,"WMK"] t0<-c(alpha = 1.8, beta = 0.1, gamma = sd(x3)/sqrt(2),delta = 0) res3 <- gmm(g2,x3,t0,optfct="nlminb") summary(res3) ## ----------------------------------------------------------------------------- library(car) linearHypothesis(res3,cbind(diag(2),c(0,0),c(0,0)),c(2,0)) ## ----------------------------------------------------------------------------- library(mvtnorm) set.seed(112233) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] ## ----------------------------------------------------------------------------- h <- cbind(x4, x4^2, x4^3) g3 <- y~w ## ----------------------------------------------------------------------------- summary(res <- gmm(g3,x=h)) ## ----------------------------------------------------------------------------- res2 <- gmm(g3,x=h,type='iterative',crit=1e-8,itermax=200) coef(res2) ## ----------------------------------------------------------------------------- res3 <- gmm(g3,x=h,res2$coef,type='cue') coef(res3) ## ----------------------------------------------------------------------------- confint(res3,level=.90) ## ----------------------------------------------------------------------------- plot(w,y,main="LS vs GMM estimation") lines(w,fitted(res),col=2) lines(w,fitted(lm(y~w)),col=3,lty=2) lines(w,.1*w,col=4,lty=3) legend("topleft",c("Data","Fitted GMM","Fitted LS","True line"),pch=c(1,NA,NA,NA),col=1:3,lty=c(NA,1,2,3)) ## ----------------------------------------------------------------------------- t <- 400 set.seed(345) x5 <- arima.sim(n=t,list(ar=c(1.4,-0.6),ma=c(0.6,-0.3))) x5t<-cbind(x5) for (i in 1:6) x5t<-cbind(x5t,lag(x5,-i)) x5t<-na.omit(x5t) g4<-x5t[,1]~x5t[,2]+x5t[,3] res<-gmm(g4,x5t[,4:7]) summary(res) ## ----------------------------------------------------------------------------- res2 <- gmm(g4,x=x5t[,4:7],kernel="Truncated") coef(res2) res3 <- gmm(g4,x=x5t[,4:7],kernel="Bartlett") coef(res3) res4 <- gmm(g4,x=x5t[,4:7],kernel="Parzen") coef(res4) res5<- gmm(g4,x=x5t[,4:7],kernel="Tukey-Hanning") coef(res5) ## ----------------------------------------------------------------------------- diag(vcov(res2))^.5 diag(vcov(res3))^.5 diag(vcov(res4))^.5 diag(vcov(res5))^.5 ## ----------------------------------------------------------------------------- plot(res,which=2) ## ----------------------------------------------------------------------------- plot(res,which=3) ## ----------------------------------------------------------------------------- data(Finance) r <- Finance[1:500,1:5] rm <- Finance[1:500,"rm"] rf <- Finance[1:500,"rf"] z <- as.matrix(r-rf) zm <- as.matrix(rm-rf) res <- gmm(z~zm,x=zm) coef(res) R <- cbind(diag(5),matrix(0,5,5)) c <- rep(0,5) linearHypothesis(res,R,c,test = "Chisq") ## ----eval=FALSE--------------------------------------------------------------- # test <- paste(names(coef(res)[1:5])," = 0",sep="") # linearHypothesis(res,test) ## ----------------------------------------------------------------------------- res2<-gmm(z~zm-1,cbind(1,zm)) specTest(res2) ## ----------------------------------------------------------------------------- g5 <- function(tet, x) { gmat <- (tet[1] + tet[2] * (1 + c(x[, 1]))) * (1 + x[, 2:6]) - 1 return(gmat) } res_sdf <- gmm(g5, x = as.matrix(cbind(rm, r)), c(0, 0)) specTest(res_sdf) ## ----------------------------------------------------------------------------- g6 <- function(theta, x) { t <- length(x) et1 <- diff(x) - theta[1] - theta[2] * x[-t] ht <- et1^2 - theta[3] * x[-t]^(2 * theta[4]) g <- cbind(et1, et1 * x[-t], ht, ht * x[-t]) return(g) } ## ----------------------------------------------------------------------------- rf <- Finance[,"rf"] rf <- ((1 + rf/100)^(365) - 1) * 100 dr <- diff(rf) res_0 <- lm(dr ~ rf[-length(rf)]) tet0 <- c(res_0$coef, var(residuals(res_0)), 0) names(tet0) <- c("alpha", "beta", "sigma^2", "gamma") res_rf <- gmm(g6, rf, tet0, control = list(maxit = 1000, reltol = 1e-10)) coef(res_rf) ## ----eval=FALSE--------------------------------------------------------------- # y <- rbind(y1-mean(y1),y2-mean(y2),y3-mean(y3)) # x <- rbind(x1-mean(x1),x2-mean(x2),x3-mean(x3)) # res <- gmm(y~x,h) ## ----eval=FALSE--------------------------------------------------------------- # y <- rbind(y1,y2,y3) # x <- rbind(x1,x2,x3) # res <- gmm(y~x,h) ## ----eval=FALSE--------------------------------------------------------------- # gt <- g(t0, x) # V <- kernHAC(lm(gt~1),sandwich = FALSE) # W <- solve(V) ## ----------------------------------------------------------------------------- print(res<-gmm(g4,x5t[,4:7],wmatrix="ident")) diag(vcovHAC(res))^.5 ## ----------------------------------------------------------------------------- diag(vcov(res))^.5 ## ----------------------------------------------------------------------------- print(res<-gmm(g4,x5t[,4:7], weightsMatrix = diag(5))) ## ----------------------------------------------------------------------------- tet0 <- c(mu = mean(x1), sig = sd(x1)) res_el <- gel(g1,x1,tet0) summary(res_el) ## ----------------------------------------------------------------------------- res_et <- gel(g1,x1,tet0,type="ET") coef(res_et) ## ----------------------------------------------------------------------------- res_cue <- gel(g1,x1,tet0,type="CUE") coef(res_cue) ## ----------------------------------------------------------------------------- res_etel <- gel(g1,x1,c(mu=1,sig=1),type="ETEL") coef(res_etel) ## ----warning=FALSE------------------------------------------------------------ tet0 <- gmm(g4,x=x5t[,4:7],wmatrix="ident")$coef res <- gel(g4,x=x5t[,4:7],tet0,smooth=TRUE,kernel="Truncated") summary(res) ## ----------------------------------------------------------------------------- specTest(res) ## ----------------------------------------------------------------------------- plot(res,which=4) ## ----eval=FALSE--------------------------------------------------------------- # ui=cbind(0,-1,-1) # ci <- -1 ## ----eval=FALSE--------------------------------------------------------------- # res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE,kernel="Truncated", # constraint=TRUE, ui=ui,ci=ci) ## ----eval=FALSE--------------------------------------------------------------- # res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim") # res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim", # LambdaControl=list(trace=TRUE, parscale=rep(.1,5))) gmm/inst/doc/gmm_with_R.rnw0000644000176200001440000017532214271751556015427 0ustar liggesusers\documentclass[11pt,letterpaper]{article} \usepackage{amsthm} \usepackage[hmargin=2cm,vmargin=2.5cm]{geometry} \newtheorem{theorem}{Theorem} \newtheorem{col}{Corollary} \newtheorem{lem}{Lemma} \usepackage[utf8]{inputenc} \newtheorem{ass}{Assumption} \usepackage{amsmath} \usepackage{verbatim} \usepackage[round]{natbib} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{graphicx} \usepackage{hyperref} \hypersetup{ colorlinks, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black } \bibliographystyle{plainnat} \newcommand{\E}{\mathrm{E}} \newcommand{\diag}{\mathrm{diag}} \newcommand{\Prob}{\mathrm{Pr}} \newcommand{\Var}{\mathrm{Var}} \let\proglang=\textsf \newcommand{\pkg}[1]{{\fontseries{m}\fontseries{b}\selectfont #1}} \newcommand{\Vect}{\mathrm{Vec}} \newcommand{\Cov}{\mathrm{Cov}} \newcommand{\conP}{\overset{p}{\to}} \newcommand{\conD}{\overset{d}{\to}} \newcommand\Real{ \mathbb{R} } \newcommand\Complex{ \mathbb{C} } \newcommand\Natural{ \mathbb{N} } \newcommand\rv{{\cal R}} \newcommand\Q{\mathbb{Q}} \newcommand\PR{{\cal R}} \newcommand\T{{\cal T}} \newcommand\Hi{{\cal H}} \newcommand\La{{\cal L}} \newcommand\plim{plim} \renewcommand{\epsilon}{\varepsilon} \begin{document} \author{Pierre Chauss\'e} \title{Computing Generalized Method of Moments and Generalized Empirical Likelihood with \proglang{R}} \maketitle \abstract{This paper shows how to estimate models by the generalized method of moments and the generalized empirical likelihood using the \proglang{R} package \textbf{gmm}. A brief discussion is offered on the theoretical aspects of both methods and the functionality of the package is presented through several examples in economics and finance. It is a modified version of \cite{chausse10} published in the Journal of Statistical Software. It has been adapted to the version 1.4-0. \textbf{Notice that the maintenance of the package is converging to zero. The new \pkg{momentfit} package, available on CRAN, will soon replace the \pkg{gmm} package.}} %\VignetteIndexEntry{Computing Generalized Empirical Likelihood and Generalized Method of Moments with R} %\VignetteDepends{gmm,mvtnorm,stabledist, car, MASS, timeDate, timeSeries} %\VignetteKeywords{generalized empirical likelihood, generalized method of moments, empirical likelihood, continuous updated estimator, exponential tilting, exponentially tilted empirical likelihood} %\VignettePackage{gmm} %\VignetteEngine{knitr::knitr} <>= library(knitr) opts_chunk$set(size='footnotesize', fig.height=5, out.width='70%') @ \section{Introduction} The generalized method of moments (GMM) has become an important estimation procedure in many areas of applied economics and finance since \cite{hansen82} introduced the two step GMM (2SGMM). It can be seen as a generalization of many other estimation methods like least squares (LS), instrumental variables (IV) or maximum likelihood (ML). As a result, it is less likely to be misspecified. The properties of the estimators of LS depend on the exogeneity of the regressors and the circularity of the residuals, while those of ML depend on the choice of the likelihood function. GMM is much more flexible since it only requires some assumptions about moment conditions. In macroeconomics, for example, it allows to estimate a structural model equation by equation. In finance, most data such as stock returns are characterized by heavy-tailed and skewed distributions. Because it does not impose any restriction on the distribution of the data, GMM represents a good alternative in this area as well. As a result of its popularity, most statistical packages like \proglang{Matlab}, \proglang{Gauss} or \proglang{Stata} offer tool boxes to use the GMM procedure. It is now possible to easily use this method in \proglang{R} with the new \pkg{gmm} package. Although GMM has good potential theoretically, several applied studies have shown that the properties of the 2SGMM may in some cases be poor in small samples. In particular, the estimators may be strongly biased for certain choices of moment conditions. In response to this result, \cite{hansen-heaton-yaron96} proposed two other ways to compute GMM: the iterative GMM (ITGMM) and the continuous updated GMM (CUE)\footnote{See also \cite{hall05} for a detailed presentation of most recent developments regarding GMM.}. Furthermore, another family of estimation procedures inspired by \cite{owen01}, which also depends only on moment conditions, was introduced by \cite{smith97}. It is the generalized empirical likelihood (GEL). So far, this method has not reached the popularity of GMM and it was not included in any statistical package until \pkg{gmm} was developed for \proglang{R} which also includes a GEL procedure. Asymptotic properties of GMM and generalized empirical likelihood (GEL) are now well established in the econometric literature. \cite{newey-smith04} and \cite{anatolyev05} have compared their second order asymptotic properties. In particular, they show that the second order bias of the empirical likelihood (EL) estimator, which is a special case of GEL, is smaller than the bias of the estimators from the three GMM methods. Furthermore, as opposed to GMM, the bias does not increase with the number of moment conditions. Since the efficiency improves when the number of conditions goes up, this is a valuable property. However, these are only asymptotic results which do not necessarily hold in small sample as shown by \cite{guggenberger08}. In order to analyze small sample properties, we have to rely on Monte Carlo simulations. However, Monte Carlo studies on methods such as GMM or GEL depend on complicated algorithms which are often home made. Because of that, results from such studies are not easy to reproduce. The solution should be to use a common tool which can be tested and improved upon by the users. Because it is open source, \proglang{R} offers a perfect platform for such tool. The \pkg{gmm} package allows to estimate models using the three GMM methods, the empirical likelihood and the exponential tilting, which belong to the family of GEL methods, and the exponentially tilted empirical likelihood which was proposed by \cite{schennach07}, Also it offers several options to estimate the covariance matrix of the moment conditions. Users can also choose between \textit{optim}, if no restrictions are required on the coefficients of the model to be estimated, and either \textit{nlminb} or \textit{constrOptim} for constrained optimizations. The results are presented in such a way that \proglang{R} users who are familiar with \textit{lm} objects, find it natural. In fact, the same methods are available for \textit{gmm} and \textit{gel} objects produced by the estimation procedures. The paper is organized as follows. Section 2 presents the theoretical aspects of the GMM method along with several examples in economics and finance. Through these examples, the functionality of the \pkg{gmm} packages is presented in details. Section 3 presents the GEL method with some of the examples used in section 2. Section 4 concludes and Section 5 gives the computational details of the package. \section{Generalized method of moments} This section presents an overview of the GMM method. It is intended to help the users understand the options that the \pkg{gmm} package offers. For those who are not familiar with the method and require more details, see \cite{hansen82} and \cite{hansen-heaton-yaron96} for the method itself, \cite{newey-west94} and \cite{andrews91} for the choice of the covariance matrix or \cite{hamilton94}. We want to estimate a vector of parameters $\theta_0 \in \Real^p$ from a model based on the following $q\times 1$ vector of unconditional moment conditions: \begin{equation}\label{mcond} E[g(\theta_0,x_i)] = 0 , \end{equation} where $x_i$ is a vector of cross-sectional data, time series or both. In order for GMM to produce consistent estimates from the above conditions, $\theta_0$ has to be the unique solution to $E[g(\theta,x_i)]=0$ and be an element of a compact space. Some boundary assumptions on higher moments of $g(\theta,x_i)$ are also required. However, it does not impose any condition on the distribution of $x_i$, except for the degree of dependence of the observations when it is a vector of time series. Several estimation methods such as least squares (LS), maximum likelihood (ML) or instrumental variables (IV) can also be seen as being based on such moment conditions, which make them special cases of GMM. For example, the following linear model: \[ Y = X\beta + u , \] where $Y$ and $X$ are respectively $n\times 1$ and $n\times k$ matrices, can be estimated by LS. The estimate $\hat{\beta}$ is obtained by solving $\min_\beta \|u\|^2$ and is therefore the solution to the following first order condition: \[ \frac{1}{n}X'u(\beta) = 0 , \] which is the estimate of the moment condition $E(X_iu_i(\beta))=0$. The same model can be estimated by ML in which case the moment condition becomes: \[ E\left[\frac{d l_i(\beta)}{d\beta}\right]=0 , \] where $l_i(\beta)$ is the density of $u_i$. In presence of endogeneity of the explanatory variable $X$, which implies that $E(X_iu_i)\neq 0$, the IV method is often used. It solves the endogeneity problem by substituting $X$ by a matrix of instruments $H$, which is required to be correlated with $X$ and uncorrelated with $u$. These properties allow the model to be estimated by the conditional moment condition $E(u_i|H_i)=0$ or its implied unconditional moment condition $E(u_iH_i)=0$. In general we say that $u_i$ is orthogonal to an information set $I_i$ or that $E(u_i|I_i)=0$ in which case $H_i$ is a vector containing functions of any element of $I_i$. The model can therefore be estimated by solving \[ \frac{1}{T}H'u(\beta)=0 . \] When there is no assumption on the covariance matrix of $u$, the IV corresponds to GMM. If $E(X_iu_i)=0$ holds, generalized LS with no assumption on the covariance matrix of $u$ other than boundary ones is also a GMM method. For the ML procedure to be viewed as GMM, the assumption on the distribution of $u$ must be satisfied. If it is not, but $E(dl_i(\theta_0)/d\theta)=0$ holds, as it is the case for linear models with non normal error terms, the pseudo-ML which uses a robust covariance matrix can be seen as being a GMM method. Because GMM depends only on moment conditions, it is a reliable estimation procedure for many models in economics and finance. For example, general equilibrium models suffer from endogeneity problems because these are misspecified and they represent only a fragment of the economy. GMM with the right moment conditions is therefore more appropriate than ML. In finance, there is no satisfying parametric distribution which reproduces the properties of stock returns. The family of stable distributions is a good candidate but only the densities of the normal, Cauchy and Lévy distributions, which belong to this family, have a closed form expression. The distribution-free feature of GMM is therefore appealing in that case. Although GMM estimators are easily consistent, efficiency and bias depend on the choice of moment conditions. Bad instruments implies bad information and therefore low efficiency. The effects on finite sample properties are even more severe and are well documented in the literature on weak instruments. \cite{newey-smith04} show that the bias increases with the number of instruments but efficiency decreases. Therefore, users need to be careful when selecting the instruments. \cite{carrasco07} gives a good review of recent developments on how to choose instruments in her introduction. In general, the moment conditions $E(g(\theta_0,x_i))=0$ is a vector of nonlinear functions of $\theta_0$ and the number of conditions is not limited by the dimension of $\theta_0$. Since efficiency increases with the number of instruments $q$ is often greater than $p$, which implies that there is no solution to \[ \bar{g}(\theta) \equiv \frac{1}{n}\sum_{i=1}^n g(\theta,x_i)=0. \] The best we can do is to make it as close as possible to zero by minimizing the quadratic function $\bar{g}(\theta)'W\bar{g}(\theta)$, where $W$ is a positive definite and symmetric $q\times q$ matrix of weights. The optimal matrix $W$ which produces efficient estimators is defined as: \begin{equation}\label{optw} W^* = \left\{\lim_{n\rightarrow \infty} Var(\sqrt{n} \bar{g}(\theta_0)) \equiv \Omega(\theta_0) \right\}^{-1}. \end{equation} This optimal matrix can be estimated by an heteroskedasticity and auto-correlation consistent (HAC) matrix like the one proposed by \cite{newey-west87a}. The general form is: \begin{equation}\label{optw_hat} \hat{\Omega} = \sum_{s=-(n-1)}^{n-1} k_h(s) \hat{\Gamma}_s(\theta^*), \end{equation} where $k_h(s)$ is a kernel, $h$ is the bandwidth which can be chosen using the procedures proposed by \cite{newey-west87a} and \cite{andrews91}, \[ \hat{\Gamma}_s(\theta^*) = \frac{1}{n}\sum_i g(\theta^*,x_i)g(\theta^*,x_{i+s})' \] and $\theta^*$ is a convergent estimate of $\theta_0$. There are many choices for the HAC matrix. They depend on the kernel and bandwidth selection. Although the choice does not affect the asymptotic properties of GMM, very little is known about the impacts in finite samples. The GMM estimator $\hat{\theta}$ is therefore defined as: \begin{equation}\label{gmm} \hat{\theta} = \arg\min_{\theta} \bar{g}(\theta)'\hat{\Omega}(\theta^*)^{-1}\bar{g}(\theta) \end{equation} The original version of GMM proposed by \cite{hansen82} is called two-step GMM (2SGMM). It computes $\theta^*$ by minimizing $\bar{g}(\theta)'\bar{g}(\theta)$. The algorithm is therefore: \begin{itemize} \item[1-] Compute $\theta^* = \arg\min_\theta \bar{g}(\theta)'\bar{g}(\theta)$ \item[2-] Compute the HAC matrix $\hat{\Omega}(\theta^*)$ \item[3-] Compute the 2SGMM $\hat{\theta} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta^*)\big]^{-1}\bar{g}(\theta)$ \end{itemize} In order to improve the properties of 2SGMM, \cite{hansen-heaton-yaron96} suggest two other methods. The first one is the iterative version of 2SGMM (ITGMM) and can be computed as follows: \begin{itemize} \item[1-] Compute $\theta^{(0)} = \arg\min_\theta \bar{g}(\theta)'\bar{g}(\theta)$ \item[2-] Compute the HAC matrix $\hat{\Omega}(\theta^{(0)})$ \item[3-] Compute the $\theta^{(1)} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta^{(0)})\big]^{-1}\bar{g}(\theta)$ \item[4-] If $\| \theta^{(0)}-\theta^{(1)}\|< tol$ stops, else $\theta^{(0)}=\theta^{(1)}$ and go to 2- \item[5-] Define the ITGMM estimator $\hat{\theta}$ as $\theta^{(1)}$ \end{itemize} where $tol$ can be set as small as we want to increase the precision. In the other method, no preliminary estimate is used to obtain the HAC matrix. The latter is treated as a function of $\theta$ and is allowed to change when the optimization algorithm computes the numerical derivatives. It is therefore continuously updated as we move toward the minimum. For that, it is called the continuous updated estimator (CUE). This method is highly nonlinear. It is therefore crucial to choose a starting value that is not too far from the minimum. A good choice is the estimate from 2SGMM which is known to be root-n convergent. The algorithm is: \begin{itemize} \item[1-] Compute $\theta^*$ using 2SGMM \item[2-] Compute the CUE estimator defined as \[ \hat{\theta} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta)\big]^{-1}\bar{g}(\theta) \] using $\theta^*$ as starting value. \end{itemize} According to \cite{newey-smith04} and \cite{anatolyev05}, 2SGMM and ITGMM are second order asymptotically equivalent. On the other hand, they show that the second order asymptotic bias of CUE is smaller. The difference in the bias comes from the randomness of $\theta^*$ in $\Omega(\theta^*)$. Iterating only makes $\theta^*$ more efficient. These are second order asymptotic properties. They are informative but may not apply in finite samples. In most cases, we have to rely on numerical simulations to analyze the properties in small samples. Given some regularity conditions, the GMM estimator converges as $n$ goes to infinity to the following distribution: \[ \sqrt{n}(\hat{\theta}-\theta_0) \stackrel{L}{\rightarrow} N(0,V), \] where \[ V = E\left(\frac{\partial g(\theta_0,x_i)}{\partial\theta}\right)'\Omega(\theta_0)^{-1}E\left(\frac{\partial g(\theta_0,x_i)}{\partial\theta}\right) \] Inference can therefore be performed on $\hat{\theta}$ using the assumption that it is approximately distributed as $N(\theta_0,\hat{V}/n)$. If $q>p$, we can perform a J-test to verify if the moment conditions hold. The null hypothesis and the statistics are respectively $H0:E[g(\theta,x_i)]=0$ and: \[ n\bar{g}(\hat{\theta})'[\hat{\Omega}(\theta^*)]^{-1}\bar{g}(\hat{\theta}) \stackrel{L}{\rightarrow} \chi^2_{q-p}. \] \section{GMM with R} The \pkg{gmm} package can be loaded the usual way. <<>>= library(gmm) @ The main function is \textit{gmm()} which creates an object of class \textit{gmm}. Many options are available but in many cases they can be set to their default values. They are explained in details below through examples. The main arguments are \textit{g} and \textit{x}. For a linear model, \textit{g} is a formula like \textit{y~z1+z2} and \textit{x} the matrix of instruments. In the nonlinear case, they are respectively the function $g(\theta,x_i)$ and its argument. The available methods are \textit{coef}, \textit{vcov}, \textit{summary}, \textit{residuals}, \textit{fitted.values}, \textit{plot}, \textit{confint}. The model and data in a \textit{data.frame} format can be extracted by the generic function \textit{model.frame}. \subsection{Estimating the parameters of a normal distribution} This example\footnote{Thanks to Dieter Rozenich for his suggestion.}, is not something we want to do in practice, but its simplicity allows us to understand how to implement the \textit{gmm()} procedure by providing the gradient of $g(\theta,x_i)$. It is also a good example of the weakness of GMM when the moment conditions are not sufficiently informative. In fact, the ML estimators of the mean and the variance of a normal distribution are more efficient because the likelihood carries more information than few moment conditions. For the two parameters of a normal distribution $(\mu,\sigma)$ we have the following vector of moment conditions: \[ E[g(\theta,x_i)] \equiv E\left[ \begin{array}{c} \mu - x_{i} \\ \sigma^2 - (x_{i}-\mu)^2 \\ x_{i}^{3} - \mu (\mu^2+3\sigma^{2}) \end{array} \right] = 0 , \] where the first two can be directly obtained by the definition of $(\mu,\sigma)$ and the last comes from the third derivative of the moment generating function evaluated at 0. We first need to create a function $g(\theta,x)$ which returns an $n\times 3$ matrix: <<>>= g1 <- function(tet,x) { m1 <- (tet[1]-x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3-tet[1]*(tet[1]^2+3*tet[2]^2) f <- cbind(m1,m2,m3) return(f) } @ The following is the gradient of $\bar{g}(\theta)$: \[ G\equiv \frac{\partial \bar{g}(\theta)}{\partial \theta} = \left( \begin{array}{cc} 1 & 0\\ 2(\bar{x}-\mu) & 2\sigma\\ -3(\mu^{2}+\sigma^{2}) & -6\mu\sigma \end{array} \right). \] If provided, it will be used to compute the covariance matrix of $\hat{\theta}$. It can be created as follows: <<>>= Dg <- function(tet,x) { G <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2],-6*tet[1]*tet[2]), nrow=3,ncol=2) return(G) } @ First we generate normally distributed random numbers: <<>>= set.seed(123) n <- 200 x1 <- rnorm(n, mean = 4, sd = 2) @ We then run \textit{gmm} using the starting values $(\mu_0,\sigma^2_0)=(0,0)$ <<>>= print(res <- gmm(g1,x1,c(mu = 0, sig = 0), grad = Dg)) @ The \textit{summary} method prints more results from the estimation: <<>>= summary(res) @ The section "Initial values of the coefficients" shows the first step estimates used to either compute the weighting matrix in the 2-step GMM or the fixed bandwidth in CUE or iterative GMM. The J-test of over-identifying restrictions can also be extracted by using the method \textit{specTest}: <<>>= specTest(res) @ A small simulation using the following function shows that ML produces estimators with smaller mean squared errors than GMM based on the above moment conditions. However, it is not GMM but the moment conditions that are not efficient, because ML is GMM with the likelihood derivatives as moment conditions. <<>>= sim_ex <- function(n,iter) { tet1 <- matrix(0,iter,2) tet2 <- tet1 for(i in 1:iter) { x1 <- rnorm(n, mean = 4, sd = 2) tet1[i,1] <- mean(x1) tet1[i,2] <- sqrt(var(x1)*(n-1)/n) tet2[i,] <- gmm(g1,x1,c(0,0),grad=Dg)$coefficients } bias <- cbind(rowMeans(t(tet1)-c(4,2)),rowMeans(t(tet2)-c(4,2))) dimnames(bias)<-list(c("mu","sigma"),c("ML","GMM")) Var <- cbind(diag(var(tet1)),diag(var(tet2))) dimnames(Var)<-list(c("mu","sigma"),c("ML","GMM")) MSE <- cbind(rowMeans((t(tet1)-c(4,2))^2),rowMeans((t(tet2)-c(4,2))^2)) dimnames(MSE)<-list(c("mu","sigma"),c("ML","GMM")) return(list(bias=bias,Variance=Var,MSE=MSE)) } @ The following results can be reproduced with $n=50$, $iter=2000$ and by setting \textit{set.seed(345)}: \begin{center} \begin{tabular}{|c|c|c|c||c|c|c|} \hline &\multicolumn{3}{c||}{$\mu$}&\multicolumn{3}{c}{$\sigma$} \\ \hline & Bias & Variance & MSE & Bias & Variance &MSE \\ \hline GMM& 0.0020 &0.0929 & 0.0928& -0,0838 & 0.0481& 0.0551\\ ML& 0.0021 &0.0823 & 0.0822 & -0.0349 & 0.0411& 0.0423 \\ \hline \end{tabular} \end{center} \subsection{Estimating the parameters of a stable distribution} The previous example showed that ML should be used when the true distribution is known. However, when the density does not have a closed form expression, we have to consider other alternatives. \cite{garcia-renault-veredas06} propose to use indirect inference and perform a numerical study to compare it with several other methods. One of them is GMM for a continuum of moment conditions and was suggested by \cite{carrasco-florens02}. It uses the fact that the characteristic function $E(e^{ix_i\tau})$, where $i$ is the imaginary number and $\tau\in\Real$, has a closed form expression (for more details on stable distribution, see \cite{nolan09}). The \pkg{gmm} package does not yet deal with continuum of moment conditions but we can choose a certain grid $\{\tau_1,..., \tau_q\}$ over a given interval and estimate the parameters using the following moment conditions: \[ E\left[e^{ix_i\tau_l}-\Psi(\theta;\tau_l) \right]=0~~\mbox{for}~~l=1,...,q~, \] where $\Psi(\theta;\tau_l)$ is the characteristic function. There is more than one way to define a stable distribution and it depends on the choice of parametrization. We will follow the notation of \cite{nolan09} and consider stable distributions $S(\alpha,\beta,\gamma,\delta;1)$, where $\alpha\in (0,2]$ is the characteristic exponent and $\beta\in[-1,1]$, $\gamma>0$ and $\delta\in\Real$ are respectively the skewness, the scale and the location parameters. The last argument defines which parametrization we use. The \pkg{stabledist} package of \cite{stabledist} offers a function to generate random variables from stable distributions and uses the same notation. This parametrization implies that: \[ \Psi(\theta;\tau_l) = \left\{ \begin{array}{lcr} \exp{(-\gamma^\alpha|\tau_l|^\alpha[1-i\beta(\tan{\frac{\pi\alpha}{2}})(\mathrm{sign}(\tau_l))] + i\delta \tau_l)} &\mbox{for}&\alpha\neq 1\\ \exp{(-\gamma|\tau_l|[1+i\beta\frac{2}{\pi}(\mathrm{sign}(\tau_l))\log{|\tau_l|}] + i\delta \tau_l)} &\mbox{for}&\alpha= 1\\ \end{array} \right. , \] The function \textit{charStable} included in the package computes the characteristic function and can be used to construct $g(\theta,x_i)$. To avoid dealing with complex numbers, it returns the imaginary and real parts in separate columns because both should have zero expectation. The function is: <<>>= g2 <- function(theta,x) { tau <- seq(1,5,length.out=10) pm <- 1 x <- matrix(c(x),ncol=1) x_comp <- x%*%matrix(tau,nrow=1) x_comp <- matrix(complex(ima=x_comp),ncol=length(tau)) emp_car <- exp(x_comp) the_car <- charStable(theta,tau,pm) gt <- t(t(emp_car) - the_car) gt <- cbind(Im(gt),Re(gt)) return(gt) } @ The parameters of a simulated random vector can be estimated as follows (by default, $\gamma$ and $\delta$ are set to $1$ and $0$ respectively in \textit{rstable}). For the example, the starting values are the ones of a normal distribution with mean 0 and variance equals to \textit{var(x)}: <<>>= library(stabledist) set.seed(345) x2 <- rstable(500,1.5,.5,pm=1) t0 <- c(alpha = 2, beta = 0, gamma = sd(x2)/sqrt(2), delta = 0) print(res <- gmm(g2,x2,t0)) @ The result is not very close to the true parameters. But we can see why by looking at the J-test that is provided by the \textit{summary} method: <<>>= summary(res) @ The null hypothesis that the moment conditions are satisfied is rejected. For nonlinear models, a significant J-test may indicate that we have not reached the global minimum. Furthermore, the standard deviation of the coefficient of $\delta$ indicates that the covariance matrix is nearly singular. Notice also that the convergence code is equal to 1, which indicates that the algorithm did not converge. We could try different starting values, increase the number of iterations in the control option of \textit{optim} or use \textit{nlminb} which allows to put restrictions on the parameter space. The former would work but the latter will allow us to see how to select another optimizer. The option \textit{optfct} can be modified to use this algorithm instead of \textit{optim}. In that case, we can specify the upper and lower bounds of $\theta$. <<>>= res2 <- gmm(g2,x2,t0,optfct="nlminb",lower=c(0,-1,0,-Inf),upper=c(2,1,Inf,Inf)) summary(res2) @ Although the above modification solved the convergence problem, there is another issue that we need to address. The first step estimate used to compute the weighting matrix is almost identical to the starting values. There is therefore a convergence problem in the first step. In fact, choosing the initial $\alpha$ to be on the boundary was not a wise choice. Also, it seems that an initial value of $\beta$ equals to zero makes the objective function harder to minimize. Having a gobal minimum for the first step estimate is important if we care about efficiency. A wrong estimate will cause the weighting matrix not being a consistent estimate of the optimal matrix. The information about convergence is included in the argument 'initialAlgoInfo' of the gmm object. We conclude this example by estimating the parameters for a vector of stock returns from the data set \textit{Finance} that comes with the \pkg{gmm} package. <>= data(Finance) x3 <- Finance[1:1500,"WMK"] t0<-c(alpha = 1.8, beta = 0.1, gamma = sd(x3)/sqrt(2),delta = 0) res3 <- gmm(g2,x3,t0,optfct="nlminb") summary(res3) @ For this sub-sample, the hypothesis that the return follows a stable distribution is rejected. The normality assumption can be analyzed by testing $H_0:\alpha=2,\beta=0$ using \textit{linearHypothesis} from the \pkg{car} package: <<>>= library(car) linearHypothesis(res3,cbind(diag(2),c(0,0),c(0,0)),c(2,0)) @ It is clearly rejected. The result is even stronger if the whole sample is used. \subsection{A linear model with iid moment conditions} We want to estimate a linear model with an endogeneity problem. It is the model used by \cite{carrasco07} to compare several methods which deal with the many instruments problem. We want to estimate $\delta$ from: \[ y_i = \delta W_i + \epsilon_i \] with $\delta=0.1$ and \[ W_i = e^{-x_i^2} + u_i , \] where $(\epsilon_i,u_i) \sim ~iidN(0,\Sigma)$ with \[ \Sigma = \left( \begin{array}{cc} 1&0.5\\ 0.5&1 \end{array} \right) \] Any function of $x_i$ can be used as an instrument because it is orthogonal to $\epsilon_i$ and correlated with $W_i$. There is therefore an infinite number of possible instruments. For this example, $(x_i,x_i^2,x_i^3)$ will be the selected instruments and the sample size is set to $n=400$: <<>>= library(mvtnorm) set.seed(112233) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] @ where \textit{rmvnorm} is a multivariate normal distribution random generator which is included in the package \pkg{mvtnorm} (\cite{mvtnorm}). For a linear model, the $g$ argument is a formula that specifies the right- and left-hand sides as for \textit{lm} and $x$ is the matrix of instruments: <<>>= h <- cbind(x4, x4^2, x4^3) g3 <- y~w @ By default, an intercept is added to the formula and a vector of ones to the matrix of instruments. It implies the following moment conditions: \[ E\left(\begin{array}{c} (y_i-\alpha-\delta W_i)\\ (y_i-\alpha-\delta W_i)x_i\\ (y_i-\alpha-\delta W_i)x_i^2\\ (y_i-\alpha-\delta W_i)x_i^3 \end{array} \right)=0 \] In order the remove the intercept, -1 has to be added to the formula. In that case there is no column of ones added to the matrix of instruments. To keep the condition that the expected value of the error terms is zero, the column of ones needs to be included manually. We know that the moment conditions of this example are iid. Therefore, we can add the option \textit{vcov="iid"}. This option tells \textit{gmm} to estimate the covariance matrix of $\sqrt{n}\bar{g}(\theta^*)$ as follows: \[ \hat{\Omega}(\theta^*) = \frac{1}{n}\sum_{i=1}^n g(\theta^*,x_i)g(\theta^*,x_i)' \] However, it is recommended not to set this option to ``iid" in practice with real data because one of the reasons we want to use GMM is to avoid such restrictions. Finally, it is not necessary to provide the gradient when the model is linear since it is already included in \textit{gmm}. The first results are: <<>>= summary(res <- gmm(g3,x=h)) @ By default, the 2SGMM is computed. Other methods can be chosen by modifying the option ``type". The second possibility is ITGMM: <<>>= res2 <- gmm(g3,x=h,type='iterative',crit=1e-8,itermax=200) coef(res2) @ The procedure iterates until the difference between the estimates of two successive iterations reaches a certain tolerance level, defined by the option \textit{crit} (default is $10^{-7}$), or if the number of iterations reaches \textit{itermax} (default is 100). In the latter case, a message is printed to indicate that the procedure did not converge. The third method is CUE. As you can see, the estimates from ITGMM is used as starting values. However, the starting values are required only when \textit{g} is a function. When \textit{g} is a formula, the default starting values are the ones obtained by setting the matrix of weights equal to the identity matrix. <<>>= res3 <- gmm(g3,x=h,res2$coef,type='cue') coef(res3) @ It is possible to produce confidence intervals by using the method \textit{confint}: <<>>= confint(res3,level=.90) @ Whether \textit{optim} or \textit{nlminb} is used to compute the solution, it is possible to modify their default options by adding \textit{control=list()}. For example, you can keep track of the convergence with \textit{control=list(trace=TRUE)} or increase the number of iterations with \textit{control=list(maxit=1000)}. You can also choose the \textit{BFGS} algorithm with \textit{method="BFGS"} (see \textit{help(optim)} for more details). The methods \textit{fitted} and \textit{residuals} are also available for linear models. We can compare the fitted values of \textit{lm} with the ones from \textit{gmm} to see why this model cannot be estimated by LS. \begin{center} <<>>= plot(w,y,main="LS vs GMM estimation") lines(w,fitted(res),col=2) lines(w,fitted(lm(y~w)),col=3,lty=2) lines(w,.1*w,col=4,lty=3) legend("topleft",c("Data","Fitted GMM","Fitted LS","True line"),pch=c(1,NA,NA,NA),col=1:3,lty=c(NA,1,2,3)) @ \end{center} The LS seems to fit the model better. But the graphics hides the endogeneity problem. LS overestimates the relationship between $y$ and $w$ because it does not take into account the fact that some of the correlation is caused by the fact that $y_i$ and $w_i$ are positively correlated with the error term $\epsilon_i$. Finally, the \textit{plot} method produces some graphics to analyze the properties of the residuals. It can only be applied to \textit{gmm} objects when \textit{g} is a formula because when \textit{g} is a function, residuals are not defined. \subsection{Estimating the AR coefficients of an ARMA process} \label{ar} The estimation of auto-regressive coefficients of ARMA(p,q) processes is better performed by ML or nonlinear LS. But in Monte Carlo experiments, it is often estimated by GMM to study its properties. It gives a good example of linear models with endogeneity problems in which the moment conditions are serially correlated and possibly conditionally heteroskedastic. As opposed to the previous example, the choice of the HAC matrix becomes an important issue. We want to estimate the AR coefficients of the following process: \[ X_t = 1.4 X_{t-1} - 0.6X_{t-2} + u_t \] where $u_t = 0.6\epsilon_{t-1} -0.3 \epsilon_{t-2} + \epsilon_t$ and $\epsilon_t\sim iidN(0,1)$. This model can be estimated by GMM using any $X_{t-s}$ for $s>2$, because they are uncorrelated with $u_t$ and correlated with $X_{t-1}$ and $X_{t-2}$. However, as $s$ increases the quality of the instruments decreases since the stationarity of the process implies that the auto-correlation goes to zero. For this example, the selected instruments are $(X_{t-3},X_{t-4},X_{t-5},X_{t-6})$ and the sample size equals 400. The ARMA(2,2) process is generated by the function \textit{arima.sim}: <<>>= t <- 400 set.seed(345) x5 <- arima.sim(n=t,list(ar=c(1.4,-0.6),ma=c(0.6,-0.3))) x5t<-cbind(x5) for (i in 1:6) x5t<-cbind(x5t,lag(x5,-i)) x5t<-na.omit(x5t) g4<-x5t[,1]~x5t[,2]+x5t[,3] res<-gmm(g4,x5t[,4:7]) summary(res) @ The optimal matrix, when moment conditions are based on time series, is an HAC matrix which is defined by equation (\ref{optw_hat}). Several estimators of this matrix have been proposed in the literature. Given some regularity conditions, they are asymptotically equivalent. However, their impacts on the finite sample properties of GMM estimators may differ. The \pkg{gmm} package uses the \pkg{sandwich} package to compute these estimators which are well explained by \cite{zeileis06} and \cite{zeileis04}. We will therefore briefly summarize the available options. The option \textit{kernel} allows to choose between five kernels: Truncated, Bartlett, Parzen, Tukey-Hanning and Quadratic spectral\footnote{The first three have been proposed by \cite{white84}, \cite{newey-west87a} and \cite{gallant87} respectively and the last two, applied to HAC estimation, by \cite{andrews91}. But the latter gives a good review of all five.}. By default, the Quadratic Spectral kernel is used as it was shown to be optimal by \cite{andrews91} with respect to some mean squared error criterion. In most statistical packages, the Bartlett kernel is used for its simplicity. It makes the estimation of large models less computationally intensive. It may also make the \textit{gmm} algorithm more stable numerically when dealing with highly nonlinear models, especially with CUE. We can compare the results with different choices of kernel: <<>>= res2 <- gmm(g4,x=x5t[,4:7],kernel="Truncated") coef(res2) res3 <- gmm(g4,x=x5t[,4:7],kernel="Bartlett") coef(res3) res4 <- gmm(g4,x=x5t[,4:7],kernel="Parzen") coef(res4) res5<- gmm(g4,x=x5t[,4:7],kernel="Tukey-Hanning") coef(res5) @ The similarity of the results is not surprising since the matrix of weights should only affect the efficiency of the estimator. We can compare the estimated standard deviations using the method \textit{vcov}: <<>>= diag(vcov(res2))^.5 diag(vcov(res3))^.5 diag(vcov(res4))^.5 diag(vcov(res5))^.5 @ which shows, for this example, that the Bartlett kernel generates the estimates with the smallest variances. However, it does not mean it is better. We have to run simulations and compute the true variance if we want to compare them. In fact, we do not know which one produces the most accurate estimate of the variance. The second options is for the bandwidth selection. By default it is the automatic selection proposed by \cite{andrews91}. It is also possible to choose the automatic selection of \cite{newey-west94} by adding \textit{bw=bwNeweyWest} (without quotes because \textit{bwNeweyWest} is a function). A prewhitened kernel estimator can also be computed using the option \textit{prewhite=p}, where $p$ is the order of the vector auto-regressive (VAR) used to compute it. By default, it is set to \textit{FALSE}. \cite{andrews-monahan92} show that a prewhitened kernel estimator improves the properties of hypothesis tests on parameters. Finally, the \textit{plot} method can be applied to \textit{gmm} objects to do a Q-Q plot of the residuals: \begin{center} <<>>= plot(res,which=2) @ \end{center} or to plot the observations with the fitted values: \begin{center} <<>>= plot(res,which=3) @ \end{center} \subsection{Estimating a system of equations: CAPM} We want to test one of the implications of the capital asset pricing model (CAPM). This example comes from \cite{campbell-lo-mackinlay96}. It shows how to apply the \pkg{gmm} package to estimate a system of equations. The theory of CAPM implies that $\mu_i-R_f = \beta_i (\mu_m-R_f)$ $\forall i$, where $\mu_i$ is the expected value of stock i's return, $R_f$ is the risk free rate and $\mu_m$ is the expected value of the market porfolio's return. The theory can be tested by running the following regression: \[ (R_t-R_f) = \alpha + \beta (R_{mt}-R_f) + \epsilon_t, \] where $R_t$ is a $N\times 1$ vector of observed returns on stocks, $R_{mt}$ if the observed return of a proxy for the market portfolio, $R_f$ is the interest rate on short term government bonds and $\epsilon_t$ is a vector of error terms with covariance matrix $\Sigma_t$. When estimated by ML or LS, $\Sigma$ is assumed to be fixed. However, GMM allows $\epsilon_t$ to be heteroskedastic and serially correlated. One implication of the CAPM is that the vector $\alpha$ should be zero. It can be tested by estimating the model with $(R_{mt}-R_f)$ as instruments, and by testing the null hypothesis $H_0:~\alpha=0$. The data, which are included in the package, are the daily returns of twenty selected stocks from January 1993 to February 2009, the risk-free rate and the three factors of Fama and French\footnote{The symbols of the stocks taken from \url{http://ca.finance.yahoo.com/} are ("WMK", "UIS", "ORB", "MAT", "ABAX","T", "EMR", "JCS", "VOXX", "ZOOM", "ROG", "GGG", "PC", "GCO", "EBF", "F", "FNM", "NHP", "AA", "TDW"). The four other series can be found on K. R. French's web site: \url{http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data\_library.html}}. The following test is performed using the returns of 5 stocks and a sample size of 500\footnote{The choice of sample size is arbitrary. The purpose is to show how to estimate a system of equations not to test the CAPM. Besides, the $\beta$'s seem to vary over time. It is therefore a good practice to estimate the model using short periods.}. <<>>= data(Finance) r <- Finance[1:500,1:5] rm <- Finance[1:500,"rm"] rf <- Finance[1:500,"rf"] z <- as.matrix(r-rf) zm <- as.matrix(rm-rf) res <- gmm(z~zm,x=zm) coef(res) R <- cbind(diag(5),matrix(0,5,5)) c <- rep(0,5) linearHypothesis(res,R,c,test = "Chisq") @ where the asymptotic chi-square is used since the default distribution requires a normality assumption. The same test could have been performed using the names of the coefficients: <>= test <- paste(names(coef(res)[1:5])," = 0",sep="") linearHypothesis(res,test) @ Another way to test the CAPM is to estimate the restricted model ($\alpha=0$), which is over-identified, and to perform a J-test. Adding $-1$ to the formula removes the intercept. In that case, a column of ones has to be added to the matrix of instruments: <<>>= res2<-gmm(z~zm-1,cbind(1,zm)) specTest(res2) @ which confirms the non-rejection of the theory. \subsection{Testing the CAPM using the stochastic discount factor representation} In some cases the theory is directly based on moment conditions. When it is the case, testing the validity of these conditions becomes a way of testing the theory. \cite{jagannathan-skoulakis02} present several GMM applications in finance and one of them is the stochastic discount factor (SDF) representation of the CAPM. The general theory implies that $E(m_tR_{it})=1$ for all $i$, where $m_t$ is the SDF and $R_{it}$ the gross return ($1 + r_{it}$). It can be shown that if the CAPM holds, $m_t=\theta_0 + \theta_0 R_{mt}$ which implies the following moment conditions: \[ E\Big[R_{it}(\theta_0-\theta_1R_{mt})-1 \Big] = 0~~\mbox{for}~~ i=1,...,N \] which can be tested as follows: <<>>= g5 <- function(tet, x) { gmat <- (tet[1] + tet[2] * (1 + c(x[, 1]))) * (1 + x[, 2:6]) - 1 return(gmat) } res_sdf <- gmm(g5, x = as.matrix(cbind(rm, r)), c(0, 0)) specTest(res_sdf) @ which is consistent with the two previous tests. \subsection{Estimating continuous time processes by discrete time approximation} This last example also comes from \cite{jagannathan-skoulakis02}. We want to estimate the coefficients of the following continuous time process which is often used in finance for interest rates: \[ dr_t = (\alpha + \beta r_t)dt + \sigma r_t^\gamma dW_t, \] where $W_t$ is a standard Brownian motion. Special cases of this process are the Brownian motion with drift ($\beta=0$ and $\gamma = 0$), the Ornstein-Uhlenbeck process ($\gamma=0$) and the Cox-Ingersoll-Ross or square root process ( $\gamma = 1/2$). It can be estimated using the following discrete time approximation: \[ r_{t+1}-r_t = \alpha + \beta r_t + \epsilon_{t+1} \] with \[ E_t \epsilon_{t+1}=0,~~\mbox{and}~~E_t(\epsilon_{t+1}^2) = \sigma^2r_t^{2\gamma} \] Notice that ML cannot be used to estimate this model because the distribution depends on $\gamma$. In particular, it is normal for $\gamma=0$ and gamma for $\gamma=1/2$. It can be estimated by GMM using the following moment conditions: \[ E[g(\theta,x_t)] \equiv E\left(\begin{array}{c} \epsilon_{t+1}\\ \epsilon_{t+1}r_t\\ \epsilon_{t+1}^2-\sigma^2r_t^{2\gamma}\\ (\epsilon_{t+1}^2-\sigma^2r_t^{2\gamma})r_t \end{array} \right) = 0 \] The related \textit{g} function, with $\theta=\{\alpha, \beta, \sigma^2, \gamma\}$ is: <<>>= g6 <- function(theta, x) { t <- length(x) et1 <- diff(x) - theta[1] - theta[2] * x[-t] ht <- et1^2 - theta[3] * x[-t]^(2 * theta[4]) g <- cbind(et1, et1 * x[-t], ht, ht * x[-t]) return(g) } @ In order to estimate the model, the vector of interest rates needs to be properly scaled to avoid numerical problems. The transformed series is the annualized interest rates expressed in percentage. Also, the starting values are obtained using LS and some options for \textit{optim} need to be modified. <<>>= rf <- Finance[,"rf"] rf <- ((1 + rf/100)^(365) - 1) * 100 dr <- diff(rf) res_0 <- lm(dr ~ rf[-length(rf)]) tet0 <- c(res_0$coef, var(residuals(res_0)), 0) names(tet0) <- c("alpha", "beta", "sigma^2", "gamma") res_rf <- gmm(g6, rf, tet0, control = list(maxit = 1000, reltol = 1e-10)) coef(res_rf) @ \subsection{Comments on models with panel data} The \pkg{gmm} package is not directly built to easily deal with panel data. However, it is flexible enough to make it possible in most cases. To see that, let us consider the following model (see \cite{wooldridge02} for more details): \[ y_{it} = x_{it} \beta + a_i + \epsilon_{it}\mbox{ for } i=1,...,N\mbox{ and }t=1,...,T, \] where $x_{it}$ is $1\times k$, $\beta$ is $k\times 1$, $\epsilon_{it}$ is an error term and $a_i$ is an unobserved component which is specific to individual $i$. If $a_i$ is correlated with $x_{it}$, it can be removed by subtracting the average of the equation over time, which gives: \[ (y_{it}-\bar{y}_i) = (x_{it}-\bar{x}_i) \beta + (\epsilon_{it}-\bar{\epsilon}_i) \mbox{ for } i=1,...,N\mbox{ and } t=1,...,T, \] which can be estimated by \textit{gmm}. For example, if there are 3 individuals the following corresponds to the GMM fixed effects estimation: <>= y <- rbind(y1-mean(y1),y2-mean(y2),y3-mean(y3)) x <- rbind(x1-mean(x1),x2-mean(x2),x3-mean(x3)) res <- gmm(y~x,h) @ However, if $a_i$ is not correlated with $x_{it}$, the equation represents a random effects model. In that case, it is more efficient not to remove $a_i$ from the equation because of the information it carries about the individuals. The error terms are then combined in a single one, $\eta_{it}=(a_i + \epsilon_{it})$ to produce the linear model: \[ y_{it} = x_{it} \beta + \eta_{it} \] This model cannot be efficiently estimated by OLS because the presence of the common factor $a_i$ at each period implies that $\eta_{it}$ is serially correlated. However, GMM is well suited to deal with such specifications. The following will therefore produce a GMM random effects estimation: <>= y <- rbind(y1,y2,y3) x <- rbind(x1,x2,x3) res <- gmm(y~x,h) @ The package \pkg{plm} of \cite{plm} offers several functions to manipulate panel data. It could therefore be combined with \pkg{gmm} when estimating such models. It also offers a way to estimate them with its own GMM algorithm for panel data. \subsection{GMM and the sandwich package} In the \pkg{gmm} package, the estimation of the optimal weighting matrices are obtained using the \pkg{sandwich} package of \cite{zeileis06}. For example, the weighting matrix of the two-step GMM defined as: \[ W = \left[\lim_{n\rightarrow \infty} Var{(\sqrt{n}\bar{g})}\right]^{-1} \] is estimated as follows: <>= gt <- g(t0, x) V <- kernHAC(lm(gt~1),sandwich = FALSE) W <- solve(V) @ where $t0$ is any consistent estimate. As long as the optimal matrix is used, the covariance matrix of the coefficients can be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}/n \equiv (\hat{G}'\hat{V}^{-1}\hat{G})^{-1}/n, \] where $\hat{G}=d\bar{g}(\hat{\theta})/d\theta$ and $\hat{V}$ is obtained using \textit{kernHAC()}. It is not a sandwich covariance matrix and is computed using the \textit{vcov()} method included in \pkg{gmm}. However, if any other weighting matrix is used, say $W$, the estimated covariance matrix of the coefficients must then be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}\hat{G}'W\hat{V}W\hat{G}(\hat{G}'W\hat{G})^{-1}/n. \] A \textit{bread()} and \textit{estfun()} methods are available for \textit{gmm} objects which allows to compute the above matrix using the \pkg{sandwich} package. The \textit{bread()} method computes $(\hat{G}'W\hat{G})^{-1}$ while the \textit{estfun()} method returns a $T\times q$ matrix with the $t^{th}$ row equals to $g(\hat{\theta}, x_t) W \hat{G}$. The \textit{meatHAC()} method applied to the latter produces the right meat. Let us consider the example of section (\ref{ar}). Suppose we want to use the identity matrix to eliminate one source of bias, at the cost of lower efficiency. In that case, a consistent estimate of the covariance matrix is \[ (\hat{G}'\hat{G})^{-1}\hat{G}'\hat{V}\hat{G}(\hat{G}'\hat{G})^{-1}/n, \] which can be computed as: <<>>= print(res<-gmm(g4,x5t[,4:7],wmatrix="ident")) diag(vcovHAC(res))^.5 @ which is more robust than using \textit{vcov()}: <<>>= diag(vcov(res))^.5 @ Notice that it is possible to fixe $W$. Therefore, the above results can also be obtained as: <<>>= print(res<-gmm(g4,x5t[,4:7], weightsMatrix = diag(5))) @ In this case, the choice of the type of GMM is irrelevant since the weighting matrix is fixed. \section{Generalized empirical likelihood} The GEL is a new family of estimation methods which, as GMM, is based on moment conditions. It follows \cite{owen01} who developed the idea of empirical likelihood estimation which was meant to improve the confidence regions of estimators. We present here a brief discussion on the method without going into too much details. For a complete review, see \cite{smith97}, \cite{newey-smith04} or \cite{anatolyev05}. The estimation is based on \[ E(g(\theta_0,x_i))=0, \] which can be estimated in general by \[ \tilde{g}(\theta) = \sum_{i=1}^n p_i g(\theta,x_i) =0, \] where $p_i$ is called the implied probability associated with the observation $x_i$. For the GEL method, it is assumed that $q>p$ because otherwise it would correspond to GMM. Therefore, as it is the case for GMM, there is no solution to $\bar{g}(\theta)=0$. However, there is a solution to $\tilde{g}(\theta)=0$ for some choice of the probabilities $p_i$ such that $\sum_i p_i=1$. In fact, there is an infinite number of solutions since there are $(n+q)$ unknowns and only $q+1$ equations. GEL selects among them the one for which the distance between the vector of probabilities $p$ and the empirical density $1/n$ is minimized. The empirical likelihood of \cite{owen01} is a special case in which the distance is the likelihood ratio. The other methods that belong to the GEL family of estimators use different metrics. If the moment conditions hold, the implied probabilities carry a lot of information about the stochastic properties of $x_i$. For GEL, the estimations of the expected value of the Jacobian and the covariance matrix of the moment conditions, which are required to estimate $\theta$, are based on $p_i$ while in GMM they are estimated using $1/n$. \cite{newey-smith04} show that this difference explains partially why the second order properties of GEL are better. Another difference between GEL and GMM is how they deal with the fact that $g(\theta,x_i)$ can be a conditionally heteroskedastic and weakly dependent process. GEL does not require to compute explicitly the HAC matrix of the moment conditions. However, if it does not take it into account, its estimators may not only be inefficient but may also fail to be consistent. \cite{smith01} proposes to replace $g(\theta,x_i)$ by: \[ g^w(\theta,x_i) = \sum_{s=-m}^m w(s)g(\theta,x_{i-s}) \] where $w(s)$ are kernel based weights that sum to one (see also \cite{kitamura-stutzer97} and \cite{smith97}). The sample moment conditions become: \begin{equation}\label{gel_mcond} \tilde{g}(\theta) = \sum_{i=1}^n p_i g^w(\theta,x_i) =0 \end{equation} The estimator is defined as the solution to the following constrained minimization problem: \begin{eqnarray} \hat{\theta}_n &=& \arg\min_{\theta,p_i} \sum_{i=1}^n h_n(p_i) ,\\ && \mbox{subject to } \\ && \sum_{i=1}^n p_ig^w(\theta,x_i) = 0 ~~\mbox{and} \label{const}\\ && \sum_{i=1}^n p_i=1, \end{eqnarray} where $h_n(p_i)$ has to belong to the following Cressie-Read family of discrepancies: \[ h_n(p_i) = \frac{[\gamma(\gamma+1)]^{-1}[(np_i)^{\gamma+1}-1]}{n} . \] \cite{smith97} showed that the empirical likelihood method (EL) of \cite{owen01} ($\gamma=0$) and the exponential tilting of \cite{kitamura-stutzer97} ($\gamma=-1$) belong to the GEL family of estimators while \cite{newey-smith04} show that it is also the case for the continuous updated estimator of \cite{hansen-heaton-yaron96} ($\gamma=1$). What makes them part of the same GEL family of estimation methods is the existence of a dual problem which is defined as: \begin{equation}\label{gel_obj} \hat{\theta} = \arg\min_{\theta}\left[\max_{\lambda} P_n(\theta,\lambda) = \frac{1}{n}\sum_{i=1}^n\rho\left(\lambda'g^w(\theta,x_i)\right)\right] \end{equation} where $\lambda$ is the Lagrange multiplier associated with the constraint (\ref{const}) and $\rho(v)$ is a strictly concave function normalized so that $\rho'(0)=\rho''(0)=-1$. It can be shown that $\rho(v)=\ln{(1-v)}$ corresponds to EL , $\rho(v)=-\exp{(v)}$ to ET and to CUE if it is quadratic. The equivalence of the primal and dual problems can easily be verified by showing that they both share the same following first order conditions: \begin{equation}\label{lam} \sum_{i=1}^n p_i g^w(\theta,x_i) = 0, \end{equation} \begin{equation} \sum_{i=1}^n p_i \lambda'\left(\frac{\partial g^w(\theta,x_i)}{\partial \theta}\right) = 0 , \end{equation} with \begin{equation} p_i = \frac{1}{n}\rho'\left(\lambda'g^w(\theta,x_i)\right) . \end{equation} Equation (\ref{gel_obj}) represents a saddle point problem. The solution is obtained by solving simultaneously two optimization problems. We can solve for $\theta$ by minimizing $P_n(\theta,\lambda(\theta))$, where $\lambda(\theta)$ is the solution to $\arg\max_\lambda P_n(\theta,\lambda)$ for a given $\theta$. Therefore an optimization algorithm needs to be called inside the $P_n(\theta,\lambda)$ function. It makes the GEL very hard to implement numerically. For example, \cite{guggenberger08}, who analyzes the small sample properties of GEL, uses an iterative procedure based on the Newton method for $\lambda$ and a grid search for $\theta$ in order to confidently reach the absolute minimum. Using such iterative procedures for $\lambda$ makes the problem less computationally demanding and does not seem to affect the properties of the estimator of $\theta_0$. Indeed, \cite{guggenberger-hahn05} show that going beyond two iterations for $\lambda$ does not improve the second order asymptotic properties of the estimator of $\theta_0$. The function \textit{gel} offers two options. By default, $\lambda(\theta)$ is obtained by the following iterative method: \[ \lambda_l = \lambda_{l-1} - \left[\frac{1}{n}\sum_{i=1}^n \rho''(\lambda_{l-1}'g_t)g_tg_t'\right]^{-1}\left[\frac{1}{n} \sum_{i=1}^n \rho'(\lambda_{l-1}'g_i) g_i \right] \] starting with $\lambda=0$, which corresponds to its asymptotic value. The algorithm stops when $\|\lambda_l-\lambda_{l-1}\|$ reaches a certain tolerance level. The second option is to let \textit{optim} solve the problem. Then, as for \textit{gmm}, the minimization problem is solved either by \textit{optim}, \textit{nlminb} or \textit{constrOptim}. In order to test the over-identifying restrictions, \cite{smith04} proposes three tests which are all asymptotically distributed as a $\chi^2_{q-p}$. The first one is the J-test: \[ n \bar{g}^w(\hat{\theta})'[\hat{\Omega}(\hat{\theta})]^{-1}\bar{g}^w(\hat{\theta}), \] the second is a Lagrange multiplier test (LM): \[ LM = n\hat{\lambda}'\hat{\Omega}(\hat{\theta})\hat{\lambda} \] and the last one is a likelihood ratio test (LR): \[ LR = 2\sum_{i=1}^n\left[ \rho\left(\hat{\lambda}'g^w(\hat{\theta},x_i)\right) - \rho(0)\right] \] \section{GEL with R} \subsection{Estimating the parameters of a normal distribution} For this example, we can leave the option \textit{smooth} at its default value, which is \textit{FALSE}, because of the iid properties of $x$. A good starting value is very important for GEL. The best choice is the sample mean and the standard deviation. By default the option \textit{type} is set to \textit{EL}. The same methods that apply to \textit{gmm} objects, can also be applied to \textit{gel} objects. <<>>= tet0 <- c(mu = mean(x1), sig = sd(x1)) res_el <- gel(g1,x1,tet0) summary(res_el) @ Each Lagrange multiplier represents a shadow price of the constraint implied by moment condition. A binding constraint will produce a multiplier different from zero. Therefore, its value informs us on the validity of the moment condition. In the above results, the $\lambda$'s are significantly different from zero which would normally suggest that the moment conditions associated with them are violated. As a result, the LM test also rejects the null hypothesis since it is based on the $\lambda$'s. Notice that \textit{summary} reports two convergence codes, one for $\lambda$ et another for $\theta$. The ET and CUE estimates can be obtained as follows: <<>>= res_et <- gel(g1,x1,tet0,type="ET") coef(res_et) @ <<>>= res_cue <- gel(g1,x1,tet0,type="CUE") coef(res_cue) @ A fourth method is available which is called the exponentially tilted empirical likelihood (ETEL) and was proposed by \cite{schennach07}. However, it does not belong to the family of GEL estimators. It solves the problem of misspecified models. In such models there may not exist any pseudo value to which $\hat{\theta}$ converges as the sample size increases. ETEL uses the $\rho()$ of ET to solve for $\lambda$ and the $\rho()$ of EL to solve for $\theta$. \cite{schennach07} shows that ETEL shares the same asymptotic properties of EL without having to impose restrictions on the domain of $\rho(v)$ when solving for $\lambda$. <<>>= res_etel <- gel(g1,x1,c(mu=1,sig=1),type="ETEL") coef(res_etel) @ The type ETEL is experimental for now. Although it is supposed to be more stable because no restrictions are required to solve for $\lambda$, once we substitute $\lambda(\theta)$ in the EL objective function to estimate $\theta$, we still need to restrict $\lambda'g_t$ to avoid having NA's. The solution used in gel() is to obtain $\lambda(\theta)$ with \textit{constrOptim} with the restriction $\lambda'gt > 1$ even if it is not required by ET ($\rho(v)=-\exp{(v)}$). It is however sensitive to starting values. That's the reason why we used different ones above. \subsection{Estimating the AR coefficients of an ARMA process} Because the moment conditions are weakly dependent, we need to set the option \textit{smooth=TRUE}. Before going to the estimation procedure, we need to understand the relationship between the smoothing kernel and the HAC estimator. The reason why we need to smooth the moment function is that GEL estimates the covariance matrix of $\bar{g}(\theta,x_t)$, as if we had iid observations, using the expression $(1/T)\sum_{t=1}^T(g_tg_t')$. We can show that substituting $g_t$ by $g^w_t$ in this expression results in an HAC estimator. However, the relationship between the smoothing kernel and the kernel that appears in the HAC estimator is not obvious. For example, we can show that if the smoothing kernel is Truncated, then the kernel in the HAC estimator is the Bartlett. Let us consider the truncated kernel with a bandwidth of 2. This implies that $w(s)=1/5$ for $|s|\leq 2$ and 0 otherwise. Then, the expression for the covariance matrix becomes: \begin{eqnarray*} \frac{1}{T}\sum_{t=1}^T g^w_t (g^w_t)' &=& \frac{1}{T}\sum_{t=1}^T \left( \sum_{s=-2}^2 \frac{1}{5} g_{t+s} \right) \left( \sum_{l=-2}^2 \frac{1}{5} g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\left( \frac{1}{T}\sum_{t=1}^T g_{t+s}g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\hat{\Gamma}_{s-l} ,\\ &=& \frac{1}{25}\sum_{s=-4}^4 (5-|s|)\hat{\Gamma}_{s},\\ &=& \sum_{s=-4}^4 \left(\frac{1}{5}-\frac{|s|}{25}\right)\hat{\Gamma}_{s},\\ &=& \sum_{s=-T+1}^{T-1} k_5(s) \hat{\Gamma}_{s}, \end{eqnarray*} where $k_5(s)$ is the Bartlett kernel with a bandwidth of 5 defined as \[ K_5(s) = \left\{ \begin{array}{ccc} 1/5 - |s|/25 & \mbox{if}&|s|\leq 5\\ 0 &\mbox{otherwise}& \end{array}\right. . \] See \cite{smith01} for more details. The model will therefore be estimated using the kernel Truncated. The GMM estimate with the identity matrix is selected as starting value. <>= tet0 <- gmm(g4,x=x5t[,4:7],wmatrix="ident")$coef res <- gel(g4,x=x5t[,4:7],tet0,smooth=TRUE,kernel="Truncated") summary(res) @ The \textit{specTest} method applied to a \textit{gel} object computes the three tests proposed by \cite{smith04}: <<>>= specTest(res) @ The \textit{plot} method produces one more graphics when applied to a \textit{gel} object. It shows the implied probabilities along with the empirical density $(1/T)$. It allows to see which observations have more influence: \begin{center} <<>>= plot(res,which=4) @ \end{center} We can also select \textit{optfct="nlminb"} or \textit{constraint=TRUE} in order to impose restrictions on the coefficients. The former sets lower and upper bounds for the coefficients, while the latter imposes linear constraints using the algorithm \textit{constrOptim}. In this example we want the sum of the AR coefficients to be less than one. \textit{constrOptim} imposes the constraint $ui\theta-ci \geq 0$. Therefore, we need to set: <>= ui=cbind(0,-1,-1) ci <- -1 @ and rerun the estimation as <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE,kernel="Truncated", constraint=TRUE, ui=ui,ci=ci) @ The result, which is not shown, is identical. They are also many option to compute the $\lambda$'s. From version 1.4-0, the default algorithm is \textit{nlminb} because the gradient and Hessian matrix are well defined analytically which speed up convergence. The other choices are \textit{optim} or "iter" which uses a Newton method to solve the first order condition. If the option optlam is set to "optim" and the type is EL, \textit{contrOptim} is selected automatically to restrict $\lambda'g_t$ to be less than 1. It is also possible to change the default values in the control list of the optimizer with the option LambdaControl (see \textit{?nlminb} or \textit{?optim}). Here are some examples: <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim") res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim", LambdaControl=list(trace=TRUE, parscale=rep(.1,5))) @ \subsection{Comments} The GEL method is very unstable numerically. This fact has been reported many times in the recent literature. The method has been included in the \pkg{gmm} package because recent theoretical evidence suggests that it may produce better estimators than GMM. Because \proglang{R} is an open source statistical package, it offers a good platform to experiment with numerical properties of estimators. \section{Conclusion} The \pkg{gmm} package offers complete and flexible algorithms to estimate models by GMM and GEL. Several options are available which allow to choose among several GMM and GEL methods and many different HAC matrix estimators. In order to estimate the vector of parameters, users can select their preferred optimization algorithm depending on whether inequality constraints are required. For the vector of Lagrange multiplier of GEL, it can be computed by an iterative procedure based on the Newton method which increases the speed of convergence and reduce the instability of the estimation procedure. It could then easily be used by those who are interested in studying the numerical properties of both methods. The package also offers an interface which is comparable to the least squares method \textit{lm}. Linear model are estimated using formula and methods such as \textit{summary}, \textit{vcov}, \textit{coef}, \textit{confint}, \textit{plot}. \textit{residuals} or \textit{fitted} are available for the objects of class \textit{gmm} and \textit{gel}. \proglang{R} users will therefore have little difficulty in using the package. \section{Computational Details} The package \pkg{gmm} is written entirely in \proglang{R} and S3-classes with methods are used. It can be found on the comprehensive \proglang{R} archive network (CRAN,\url{http://CRAN.R-project.org/}). It is also hosted on R-Forge (\url{http://r-forge.r-project.org/projects/gmm}). It is shipped with a NAMESPACE. The version used to produce this paper is 1.4-0. It depends on the \pkg{sandwich} package of \cite{zeileis06}, which is used to compute de HAC matrices. The packages \pkg{car} (\cite{car}), \pkg{mvtnorm} (\cite{mvtnorm}), \pkg{stabledist} (\cite{stabledist}), \pkg{MASS} (\cite{MASS}), \pkg{timeDate} (\cite{timeDate}) and \pkg{timeSeries} (\cite{timeSeries}) are suggested in order to reproduce the examples. \section*{Acknowledgments} I am grateful to the three anonymous referees of the Journal of Statistical Software for great comments on the paper and the package. I also want to thank Achim Zeileis for his suggestions regarding the way the \pkg{sandwich} package can be used within \textit{gmm}. \bibliography{empir} \end{document} gmm/inst/CITATION0000644000176200001440000000103514437643123013152 0ustar liggesusersbibentry("Article", title = "Computing Generalized Method of Moments and Generalized Empirical Likelihood with {R}", author = c(person(given = "Pierre", family = "Chausse", email = "pchausse@uwaterloo.ca")), journal = "Journal of Statistical Software", year = "2010", volume = "34", number = "11", pages = "1--35", doi = "10.18637/jss.v034.i11", header = "To cite gmm in publications use:" )