gmm/0000755000176200001440000000000014020351121011017 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/0000755000176200001440000000000014017531111011735 5ustar liggesusersgmm/data/wage.rda0000644000176200001440000002720014017531162013357 0ustar liggesusers7zXZi"6!X{.D])TW"nRʟF X&\LHv`Dr19L{ynmZJ~{ g,{o^"g|μd% zcDnfiId/2BW^RȦe]UG"DQ54=*Q'G~/KXEBN.~2P1flNn"ʼ RA0%+#({oLaL~ [+CF>B۱$39@T%; Mݬ:P$=YdK %4a'_-p:[#l퐘eDbTJnܣ:kx0# *g3Un'@؉{5YUF/mdٯ;a{MŽ[H(+:;;sn>ۊ} Բ!:DoYSșKwйuQ,\k uuZP ?:,\"K$lg(VtBG-M }(~RBGc#kXf>|.V_"wn{7MyOg{e<^6m%EI3PHD;=n2B7Jtvrī3M,V=,6k@xWOІ׀Qi;I cZ"FL~ #7QN&J<1mlߧ$̈́sv:űn'i4-^?|18B t.@*>:<[e3 W G=- fX/'udXGb:`e&`-[}g]֦j*j@ҥ lY}֠wo!RN8)m[vWALsXuaK#KQW Gu?.S4wE%44Pu-~X;Rֿb=ԌMe%k*yyZ;.X htC9\tztә`K䶦o4E-/:)ҝ.LٵPI v~3dzj̋<4|:TǸ=Dm~|-^P}Y6kŧC!$/F5E r7QFޒ*78{/{ӾL 51`g6I9V~lM+ AԬ(v%SV"pJ6uz;"D/`gǡQjRW5v Naj1'"pn{]7BiALQ"5 NEc&Clt\Ycw }.8&\[8z$TFg<^Jk)wH[Qᆆ$byd0$9׻=e֘RtJB gըZ\#Np6WxzUAn&;B(_S$boI?vMxAyM.7E[cൡ&RM6K /+nf_DwP,jTA|paͳE ͪ60[k1A*,L,ԢKA ,fc)F-}8 ^ ("T{ 5zHgR=NД<*-zmӽ~KX@n+= .Z>L2]-%0![h&c^* Z2oKĝ:ELFvanìyknyj?ݮ+ԚL*g/{{Pcf8p?2dFbf\O>fbƃӉ |,QPuQKn2cIJiyYQ"i KtJŧaCDrM8Q̈8HH㨙5 ͸){z$T@bZ >2R/7m Z??X0tf:U֡1ȕsL VVJ'&%yog쒶Qk7u&4SaLGZpC.;O)뻼w5Ѳ8OOw‹P`^%2  @2$"V4>l=f$bMlj^CH%W?1aLRBF#_?)aTe_2S+UU5luB,sG/گuI70akuxJw@蔽YC8r%_lsSBQDO[m<2}ݰGeq[ɼzxLHMO}׻ F,{A*., A}=SL"S<&h5u*YiD7Jj\~Sܑ0:hL@Sم׋gPTB  ~95F)i%r f-| 2A$و_\RIyqj@oOi <9r26E Fd )7n.ru{Ay~HC-K9dbo6c2]rrrō%J 8ޟ_~uv{DEMFhx |#kU6d|J6nC؅뺛+fSgVKea=VG,ogeFqri<3"%2VS EK@3 .ڎ}wC*{Zlʭl4}㿧ȑccUTz T9ΤU삊&ʡBfDZ?`'G9ٲ:Ve!T7wmj?^ Dx(`y5䲦gÊ\u% 1h ʎ#F!zjJ)RMU{S1zG6jl)|ucU,[-7rwʰ(6cTjwh(\Eyxb{TcM @Ю0un[dڞV4Yx?>nY{Q @}fT o*|1H;]i"Nv֜Nq,B* 7[R𮕎'tpT7Oj~'13KVL ?z'=~Ξ>>n; ʔamF7wVw+T~+%,[8Bk[h2vfz@`rC&smwV?9;&7}k/1c^|)$Ρ߸ʖ5?Bـr56X@i+~t5@Ͳ^'/Gmdq)D'Eu!CzR g P!gMQ=۳|:`U.sq~Mekn薫SQFp37ɯ%BW=\GQjifM'[ѶrN4+oIsrccOh= jޒs|&lQ?.C;Ҏ9# YG0sݥpDNGĐ\ۥ#*{]rxu*+g8CaM˂Գz<Φ\B'y=^sʨ6'e@dsU: lԧt,vEä (KJo8|cmՎR0)=<ț=2AkVrgU{`ptDB*J3l' ]?mSvTdQLIVUF"/KzJ+ckR)܆VLrFn#HۏV S[qc> 쎘,itg=8T*GlrJ4ɓ#򪴂3i{W v,Ӕ-c,M&eD.|H6JQz̓ʋ';J {Rl{nնm'CUR{Ҷw }"Mo1|6p^,W/p5?]]=/>+hp$h+%`^^b^RV(C /=C-,`͆jvIM}(ާPq̭վK~5XJ4ay~T"T,3\Riitt}rZHyE9]WM cQKb8gGai! i/Gs/vhtp˅z8CV@$oe3OiL)GBDj|/яWp-UL~!3LrSQ^7-A!p+F9[ӢG;,8~+ LʛYn?#~8(rlt <0֤zCIG2mHGXw5B2/80@~@ɣaUގD0~M!@* Gڏ1j<H ,pӶA F%&K8ubJUZ5 ?mT|O5B8&#>5`4Y[v(ٔ0nf}HnZNMP*Oɰ6saJ߸ArFTkl,_CUw0ޙc{n\0O ,8*^6O=l0j6z qn@8IK1T{"mS9&,!V*v.9(E 'l.vSˌF]gj;DU|7(ɰ뻨d{2G`B I͔>0LBL UJ1Ϥ]:qb@VKiWuyy"YR. ނ=Kif2pmY^0d4 [⹏zg]'|l Q+dZ1Vڎ;ye;65ACpdx T!X5ў30,c/[sk?7O\HYxVr@5`NMn\0Ok Ԍ V+=SXvs#@A7]]o CEx`2)Oi%KE&r x]gh-C ´4H29q(DeDuaK \q{Ɋ[>~5U1pbj9!|qb!3$r/ZB:yZh:Em \%}߾GiO.4$Agv 5h؊职3+,N- >5|Iwr< :'b4ST]3QRM<`ӰS'W'yݝѓX yɵSkUƉxB>mD=9p!lnA8: .B(.f XT W8pr$w߱+.^ {NU}WM&q7CD/<^}*ՀHˀ"n%|{ռEJBNUvCv@̴X(AAܵs-'@dߎJzQ0ۃ2f|NEi3|^h3B~?UIшrE˷m~'"rgz5LОPՌҫX伯-zF Y">Ha,(rĿ}'3}7(0b8#rE=9P l1Y$!ޫ܎7mzȖtz /c|sB-hApO፷e;*$PtaRZ [p~t@^xyհ%V0B_(Ȓ-on_' pZm`Nۿ RH-@vWA8TJ(Nؿurj܇;ttG 4WaumaV HK "e)k<[#e^= O0>BhHQ/ԳMa\8 CKlWׁs\?D7_3G}M P`g *߫RTwV_1zj~~/3"u~WַyJ^>bJ/V[N[x >;ԩѠ'ǀnjYU9GF'օ9#=^ 9+:g$t5PǗ%љ0ɹ I$ܪo^;p~4:wvCO$;(}t|h#:|b. h= v/Udgaf͂ _g|߳ e8F( _Ŗ'yΰr٨}M:HIx-T7oUxD#l5级u޿:El3{m?\8cT'{;q׳*_OX:]_WCGZ9t?9y,JX50DX3԰}W-Nb8aie4N'8GZʥȆS`)!*Ə.wjFS?Rަ/ f5qP [MZtY4_Iw++$U<_VHI 5u0l.eutܕd$\-L`(mC*]`I]/Xn9r4U- yumyFz^! Zr:9ChGCB̓?EEN֥̆K} Pv`uv~?)oYs4hOR|̠Cy^f PŇYfYP c Q+~a56e ?BR8a6@EQ %\u' Si)A(dmULKAO'M NJ/]%, ]c ݬ*ĸzl"¹!X]+7ؙKqa!fn׽vI/v+8 47ArnZL}uÅ5 ?CQhj iG/mLk̒i ƿ]bcbgݨ5n@f]\{HC )T03X"ӠEu 6Yv~Ե33~h/̹-kF;6{#'Hi`6W m=OTN9:Vf6=6R}H.FBW9C wF(h06C9+\3%1xwi* pT+5AtuZd#ϳs $;OJRcΫinFs+QL=#{]cA%i!pGʐ 7?/TKub=eg8` EtqJ]Kh/=+̵} 6(oA_`+9S]~|[[\RqW#?zL!]c%uӑXhy08QdYOΥ8%RZE{ 'qFyCHsQ? % ;NN}*"X]) :KAX1> *ٕ+"<,?5.HtKp#<"t~xyV䬀/Iq\-6: ELLn]vjwD҄qt?+KHKo=HIa@.Rx)rTH.OX>Zn||[ZqZL7O Vvc\oO>I'Q"1,LjheYI=Mp-yJ~cطagH>֝Vuu퓍X&z>ePbZeNyߒ; P<)HOi^V@O}fN?3\`ˎ6˗hm|B wJ(ht2̝\nPV v&\[;TY)\?*FMb4j#ٸ."##lKҰ{+Iob5+,K0@\8X =H&Ou(@x7_VIBB nzropIH\Ɗ{ vUGbLY_X شy!IX8(K.{ST+ _LF,i\#uggHyYrB̀U"*ʿ)[G*$.IH.!XGo@ }+{W_WY >=;@ܴԐ!UupzEřm /~n;=~Cn 5s pؖ*u)| 7u(vjhJ1XJSh٭Y,%Ѽ /ͮT}u8pS*jY a]*U, sxѶxx3ZJ([݀3Z#[if#cݲ K)u#E JZ!)^J @I< LbocN+sWTMih>g.U&F7AN&U 3i9&Me(˵X%* #5ZI(S'⡱1!5lv7 /E Wp]&&H``߰A>%xkx]0 YZgmm/data/nsw.rda0000644000176200001440000001627414017531162013254 0ustar liggesusersBZh91AY&SY/,/xxxZ}U$ QR|^|z$ި, `$@[u٠ 54!d'IjfM4AOCSi6haOIzLMSڞBe I~LT4SJziMhfM IDdɩOxLҞ<Ѧh&0M3TM3 ii5=fTS*EfT‰MdE%Cx4h⺬+W*r %d2,bˆn7CO]2u+j+QO3k2QF-sITfa' 21Elspqs%d!i YńM blm;D>ޣHJK`HbMmJkmB!^wfi oF[A%Xa;y+W:}>>sCtUMY~U03rrNAV/tm,wXqF\KJ);[TgrlM#;~,0hKŢ?u(90! YFrܯu_=72AFA^oׅTJ0MUuq~s]]6ѥH F;mV@ nPGA0LG[†(i6GMɶD_m@n $IMGJ2! `q+ )I#8$ CR~a"Hi$!oZa" 8b6iZ$N@D9yu]T礽: L!1?ǛkO˽mqCIb=JI6{H ![+nruo@$n'Ĥ8L9$q! c9a8UjzD06?3UﯷI^#t(ZyԃT7aQVtupwWU I_Ը6٩l6ee!H8:5ņbd/Zi麼-e#csrCWG%|M9)]!y ovF '|Bծi8XFaU-Waȑ Ǐpw !魮vpk};.Z qNVkuMz",./9r18b#X)~2~7E_v|}ɳ֎BҟY*3,X*U춆$^5?& A{B.zQAY6_!ftTp!gѓdC T .jC S4f;uVŗg6B@_8a"v꭫Xn[e}zlhЫmֹn#M^䠼?_]N)=3T /aZVy߫qYo9mr|'@ &c<>_pu\N ;Zs7jAɰF7on"[s~6~Ug|Z-84|o3CĢ!9՚*}ؿAF%QB |๊%K 6V^Y-$,]E67$kZǑ{{zT>o1*~ݒuR$d;Pv.W&DM #5O;c6-n*ɞe}]I!U4$ c`0l" q hBj1 HD8 `B@ڈiiDС@  `p(!0B 4L( !B mbЄ `T$@ Q %4D8 6CD BcML1dBs@DY .%ThZF"[⋠$AJ!6,)(`MbBcLD8s3 @=xi4Cʰs D$k is} b\=ȂIGV9,5 5"Eknl0EVh>O1t(ZQ66dȨض@mİ4\ Xۀ6B ci m &i@$0LC16i 6i$l@@h@ )Lf8~ލMfyH3xo+{}"@˭ʖ LxH˿8>MMUǨt}%l3n::e'`9i@s̯6~[ٝf_7icܮv3nn̶.C:CQdk.Ҩ;1-=IJ&o餶˧vSI07B!gQC^˻we4^rbוKIU|;zU%N%3ɿKxD)2>Ve?dgJHmW-xҎNgWsSNOٍٯd)-k}1qok{Zaaq~CJ{ˏ&_gDk*pwzSF}ްJz[:픴M*pY!_0HgM .qGml_b)Gĵ0-q r!R s0θ4rQm9tLN-T&Z'&G1i!`NCcQN)H{x)ӫ@ F(J'\ 87̐zYAx2| U(Y~5>sk6gw\-3{05N+k-Z^HF%Ցa{?Qj62ʣ٠/oT[ՒcỾ0 ~ Q re[f|}!Z>Jc3hiZK.rYu vƲOd[2 cٶ -/( Ѱ"Ӑ|z cJ)][PKkOW|.Z\VPGתMxr&,8 OLB3r {^<'-Մb>܂,rKT ~cb{.7O#R@r4x O,~kB>Q`F)|CM%n\wWM6>Ƚo€F%GTUeld %vf NϪy+\f̖p[{]?Hѵ~gFhܜBj*$1\/w+or@y|?-9Έu-cH{%4 HY37fOVAһb0=l@ V멉 X,w}S;n̖w{(}q +fp3 'PpD6\"Ga9ɉ }A|h9Nj " EG]7_vQW](P:%'̂tƻ-#[n%lKyU#ٯ3_qS}L #>m #-@gI=e8۹vG|[l"*{`N{kj#7B_'Z'>MҦQG}!zGT 'iGѝ&7q /WAm,o Qºi:yw "7{,f/-θjK7;~ҲP 겼JxcSH<^6ߖխÛL~dK.ݱM˒IQ51O`ݩSۡ ݦ*pvi2E 0_V컛?AudSi0+I-.<ە|2 8P]I( wnbcOr%ыWBi)S8P%'sn ţ[pL<Ѓ?'SagZA8!1h.uL'q5#8oڭ |BW;– fX&ʓuduYo'­96 WFf j2'؟1>ANT°wZUl$jQU4[1i"Z6Hic\HYlrsޕ r3{HcϿ%542+n+uWW9Q96q,Z<[{?S Ks"Lh'%$\I(x\u:,x uYnս [ElFY3y|2jcJRlڞyPEBdU%NA c,  Gu)㭵+;#4&wv^8`S}, - +*J'"ҵx|]Y<8SZ3u,2Qrp61F%3rr|iūNh#xRH=U⪑dZ|UEod^Er︀1@da`7zAl9BO%o8)BSiX\LRș }cW0>XᅭS*Fnz Ubd,%y(IwK夂ӢŅKkC4R'U {7ۈ~$J~'dW &Tfty?3$,eM#ǒa.P'.. \gJKS4\-d<^EuE8| TT7ԁٜ}5%ᾮ)# ƾ?ޑNH 75gB19)f rȤ9(B wt{na5 w.ЛN,Pt6ڧ^AM%1g+cO_M~R jc uIꁍd0E@qB~^pQ)[vӽfX%F@_ X׬0*Ѷ[y65'DP"q*:H4=hkE%UE!A&.Ľ26{,*#A6*`E2ي~naѡu ?db+[&@EWabͺKAl 242V`-&HND8PNY7h3SkΊ8?\④tA.iur#_ _X-q㨋%:%"$\,esQqճѲ~nҌ8b_B-FV0#sY_ÛE6B UZ]1K!fz4$yq6 [608pQ YEGm>GeK[]S%ﳆ.gec5B]KkH)T:>1`n BsBJp4PGƱ4=b/KGJ/WNE 2͏p{",6VűxOԺ敻6I=2]uNA|vUEv;;3k:k|"bRVhdžr%_.3S|C&ZY>2xIrݪJN5ۚWydE̓0ȯOSz{.{2Y6-?]=$F˘A:P9  %UB.{+ V3x;ܳ%х) 'ᣟGqm+/%Ne|)S9~7"br qlSVa餀-m:/6ԧrZ K^A*FR{+x$7+Gҡ.$a`9i6q0xb_XQ{Z=;`U e eqSLnJ|lEC_x#h=R!dɾ+l}6KwDs3_ȩ;_mkZj#ޞ5\B_4d2MKקsl:*FNUYq I5,$/^D^<+kmQ:@ f 5OៅGt'/*(B7ښs@51¡ *,ay j#Ճ1W*tzhG4-*[bKp|ᖬц:-7t m6E_[v<>?auem8esl$8wqbԭy^ۋKNATQOm>p$ IA3r1<2$6>QM$>uTum|Ke 'НQmMK]$ \ g?D%(0c{p.~ ʇ_f&K(s4U_skMEfݵ(yU{ˣl9'tb]6Xٟw:MʚB3xe, z#aI㹚d A2\%$Tc?nVFC;_<aA06o@Z=[^;YL\僌t- 241<{B's\Evs {7B6 t!sq\UXĒ+*AM RoqҢc=dޗ7f"#&2#SX?&(:3>LUt !s\ya ˜~7 ߻QҜFzwz9P dFѣy]Ũr8)R 0J+*}^sFB@QƲh5#3ox6|1+M8f&2XթTR\J0+wsu0bO{elN횐yE\{m7W"9_wd,.<=ӹo}e a _K"wc h@]!aw-)"n$ ekV=mޚ_ϦL׌s7uJr3L$(\ȋDTޝ"CרL$i>ڇoVxZDhs=pM5{$JCsf7Gs&!ljzPqjǐyzb8 D5B%u@TȽ(SSjiqSl-ZQly`$'hl^n~Hw֬./hx$Y3)w= mT cZOK$վmx~egN&v^CtH%c8Z;㳷AM'T@ H4<V7o"j?PH q1EGXĆLol>Lya򛈬!`6}3f% ?0xj91ulfin}S1K޵W [WbDv?|)Hv+[0GI* Tm +d&3ªz!BҐq*B(*@cHsV$u$v`uXHs*;x>JԥXXɲ &#_5hZ|U\ gAھ\1!lx:w Ƽq|t.eqm%\quaE%(:@G\GS $g"\:k|譂=8\n!iZسM/u{,JziX!D1a !Qb3ti=9ޫ_f(:̝QVC*J-aWBk0"ugN&:Igg~js@B.tvݨ‹9fT!/FmT,g9l}joSQaV,$Ktvo?{4j zn N7ȯ>_\@WOQ^My@06GzAsidxZqt;&s鹻b3J~^@;bhN@*Q} fEZkItYX]n[KAR* ,Ttfu%rיoM`q`VixB.< H k =]w .@#?+U^>h:H%pY_wr[@ -qj _rݷZZ=p欱x2 $$1tTCv3فT UN\Ҿkv,^6҈>M__+kd cSXWe {Y0PwOI0j3T`dAKSގizphXHC-C_a,VpKxW~,-EL xzff(2TDӜ磵@ s҃]H%[ŵ.SMʬ&d7!5 #pFIC~2NQ1>H4Vr9bp}y> x Rt) {ꋂaLt &|3kry`_ =XV5btc#p߳ϕQ#™fV\-QCsR1㇛vX uWt/8*'#Ν?ߪi m+8XM} v͏UUuzP#͹q6 ėL բr njw(@ *`/ĉ,gO>J0%aA} A}ն}74:66wNhٴ 8{ɞh9^g#8I Gc6tg/OJdfUH`g M>PDPI6'?73|vLWY]SN.xg0&۬Wkc9"qultH,$-76L䢗9j<:8cg(KVO3@gnӝens '\|Ldw6}nvEX%כ)8vd0H5!eM$ miIߖg ^W; mbWGk}Knf`8DO]yYN>5" M&/N﮲%1sReP' !P')Ă/@#WGwz_(8hi$|*ś:,I[TyEoiP0Y:N&Y=hO v]d4~VKm8SŴx"2\_#*p擣xx4M-mT wp,7 ;FBl%Uw@RHeGWF_X3jZ&_M=0`k_uD#u߂(9Hf;ŋ?{qo#Y(Za:hP ]ZGȪWqv+NF\@7r 瞵⃴H1Nr'DkgaX1vC{G@/R@pV 3y @ 8( ߮(G/]$Q9"L[S˷x]ft#,7T/ ޷JʞYCM0JTOg;>s_{,GxdyL`:b@O.Zl%9Hp6liltViD$]h;a#]\Q_;6Ko%x}QS)ﯫF'6Ill[+}! km9UX`9 0 _*nl*BD~H`5T&vVlٞӸFۏh9"GhW|I4sԃK=NP49HfZ5儡(6L2ZIC|9/|f\2ݫXPJ8KPV#O[D> *)Ctˎ y~+FsܘM[Jh+@%Ҥ;M_rBh,}*QrkWVG| n1彂,cK/`pЈFS&LHG,ͅZ|?,ߨjYu~ai"k ϩ x P(+o'HS4?7-|pt?bP{kO^'}O@DC,y8Q\%O~Z:^^܂ˀAvj`\ hzlRz+X}?z.v15n6:~l*g7\z$B}c<3~#q}ʱqyQ΄b5[lH c,WڏݕK0(輴M pqg';2!%㮱n 05 b62*N0SA)-@3yj2(v7F6 QWWT-4!%ؐf5vԘ09TAtq++8M8zlTn>R KTεFP6VN>mH*b(,"p"yf[Hٝ^Rl_H'Ud/13"n/,RVlm1( [׋{e&/"V e<YQ! >Eg| f+ÇcnY4\A|R{?8(~/_hc"@zu5=@}Q$6yI1ȃ)FdIjJJ2!eQ*nݼA.kMPZ(kݢP,"ڏ]oS߅kxo/Bez:}M|C 3pf:tGF޻_;]c8*y %@ F% 4=Mudcߐ x hB3ol$LH\xJ 5(RuE9P4wa9]mpa"F-FǫC5a 8GC= Ud;݆il%rQzHVͭ#n?UBէRo;SZnC6U08EQ8Y@vFU8,B\1>u(ksY>CΎ8Q:}9{B2+az Pمg'tZtCPg#$w4RmbG8'gzF*)~ 8',;*k2@©@w^ЮD+xgO2d]v\fUTd"FQSh";3^e?JQ;1^D0QC2nF6;N!v "TmdhiA-7I5靃Ѓ|sZ,TJK[J\G6?Mt;u݌lbHf eOߍ*/`ev2KCݵMV%i?]d וS{Uf.PDa%~)oUΟ)z39i/+UȑvU>yئZܓq]KCU)k8=ەyQʈIn/{ٽdCeϿ CA-1Qe$J8*M!fE$o"skVk|;h *H2CynCb #rRmbGz*bftЍ:Zs#8#PBL2ӭ1%$蓼ыY=̅!d?b=_f`Z|~vi$&¯6GPH9tFqn>@IeSS,rji2m|8 cʂi/t3M' D*8z6! ѫ9r6Pe"~#qUz(ƛZ=D4gB8ZKȊu %zJh$2@ig-Н[zBR3lEcb!s~f% `gBn Ec4ؒD4aO~/"=(A+%3CڣM5t6Y-7i@5tj||seH'43dqlMąmiGnJc5OR:foªa!{[tg/Kob:Ӳ]p R8a>TstvgW ,soEc U\U 4#p!?YJts"Pֱ"ij6z@N3Ǖ=~mZҧ"lO<l/2rSjFϼyǜ֥}pW㩳c){h@ \KX&#PTtK*=?I`nLo &3SwL0u-t#64UUV"|贈fք'V|)6${,N ^K !:Ko/}A=n_ۓ#%RZܯ'bC,XQ(s׼(Ɖ|?8%%%[-ܽg̒ 2E?ֵ_(كuVD~2)HcźGMmB9WE$OPs<﬐q{03++Q^eWQ!:0dWLE˰/ B>UsW(!L`]G ͸ViIzqӼ&~gԎ1& !aW$߷1V;{߈ _K(NwwoY's ?ٌKeAZzNXnuurmY,Vs 8gi|"M >Qk. sd\ᔁ}l܁h_ZǦj =S9s&E`aZx 'd]3̵VToKkʾͤl?o:#.`fE-JN>lTzKʫ, et9. Oڮ4P9dMJrVЃt8e&(::y">J56wb&r)O>*O+,oWP[y OVI9#+ H)$T p.b%Tb nʐD{Fw) `5 t>56!윎%5-*Qti|Q?7G԰o7q[0q9?rY݁Hi9f]F}2xǟY֎l`kʂO_)Pܨj[I˹!vH%jX|ڭ1#J侌ܬɑtaw8'˶/:RmHA-ʍXOz;8ybZޛfknu>Q w\?|ien)3?Wwiɣ_c"_"'W$G{XJBoG0&e´?Q;|cq-ﯼƓ*7IFQӌJ*”3iuGͬw+@A[u@MU4&ilJȴ9"@F7$3;eVivqЫ_g*1jaiMZ 63yy;s;3mWXy8Z挏Y9$g /[NƩ˦%Re|ZkYj!w:b*uoc:ᦪ^zMq6X@&~׷ui?2lo63 3pė;~do<5׸5޳ ia^v҂JS6.<| a~slth=C31y2mLpxl8if)ގK؆0j5@t%M.e҃?7qz@`WIŝ̿oO{nCK=6A#INjC$ @֩ Hs1W,'Bۆ?.%MHc'IL=DǒkFV8S˩bP,6-)^GeIwf{o ܝOp`x\ $8Ös32>⤴ u_P1Oʕ*d=t~"RR e;]3 !!TL5q΋BﰌW~!ٮN[Q\:n^QO nEWj>{e([fY1NFoR?]v.uOA@Mw ʟrD54ZR0xlO sI_3^T<x_;G\^ A`Cu(2YSfEɧ~5>%|_SH^N=,*m/C= ̦X T1ÿJΚ0~C;+U"x㏬En%?pi*Cm_.<(k[.V g7~nԱ $*XP3ֳ,sEx|7E2/vpJ&-C, Lv&YvT;$!d@,%RUȧK;JE QѾ? ׬)SSkc7 2;,V1% y|Egpmaj; ~+ [ߩ1^2r Z$]F5f׎8b>}ȇm%-%1T^Eg5~L9̠NmuZvnTsh貺-N!тTn0-hjGC>@

o  -}9lCZA. xH6#יR;wF > 9?toծy[!kSWtP9[3W/cMRõzPrqG#¶V7 =Xk+f-ȵf帆1R>)6J$[GF+& r(7baAI~͂oaK@!&m94;.bX;GeQKRi¼\@yD]O~&')|{2d3҅ ?Ϫq^N8:)FjVS˃ 7hY3c0w/7=erN@eA93Sh}Xd=2߫wS %s+#y _Zg<`V"8alWNՙu2)DV\=cIQ`537ޤI5V4Z?9nVdgp X0_n<#@, t 9Z yTT57٣+sFŞ=O HB]RAHJZ'-n]˯skV}l\??^1yyNru"1Rv#Xk~ _tp>0 YZgmm/data/Finance.rda0000644000176200001440000143624414017531162014014 0ustar liggesusers7zXZi"6!Xf])TW"nRʟF X#RԼ9iv౧siq;Y1עqг}smYE5 蠀{z?5lAc55N>VX-OkA{'M`b^ɣ*h|H F0GEETSE4Mdϩq 69 j{zԌf}[Zcu 6_G.sMm:,|U_(qAdzdReEO8JR^ݚS2`E4y .Vz!T@L}CMU3Gmz6~0U>*hTRU`IaJڽzLo"RlgŦľŦ1TxI;{'-yPړJ68op0`ČvYKYҠA4Y;] \j{a0Y?3!!doR~lFxO:@-K$Š \?(fmD2m"M䐏-#.;C;$oԉ܌… J-x.:m웭T\SOw'ipV9U\tT '"sиq՛ 0n4w\Y{{~Z\u)j?IM+~}MZIPFSLj&VJD, ]>.^ofy="T}?m'`ZW,aJ4^%:X2LJ X[V8M6,~J{nUt[(Iho+^PL;' 0yt|oSDV$hIamu YSQMsVֺfhqpUw7 'ѹADn&k#ϲ;V/ѹxȂ˪~• Њkn@._]H Mt1B_g̀ UOnw? Dv{;'6Ľ,XB TdFaǐH탱-SFQu&,6Z{G©rzWz=Lߪ{]d(C;܊".fe9} Q2.h3nI2zAb<$$1)aC,&؆1U9E0)I9!WA"c~Ly m n흗͵t 4$(d(B,+^71QBaHg1[҇bڐCݭEO JՆMxpUC!?jCtVHGPT]CXo6~6-;#YͅҁRz<;I&_@JR~  xDJp_v@)bKf!_*n 9 Cޛ'e|@PYt3&?D}Ըv<9;veϑe L s/GEMz^EH2Zdg{L{}^m nf[Oaˬ]&5bZ8;p+Q $ckEFs&zH۔ct".eIYd`p⾊ܷ򭄊\"S )ENPё49uTw E՜PG!"iEͥPYSVl%yʨȪ%o-vsS [w DWJdYN5Iw%-m-Zs`YZ߾5bƣWa iYedZPb1N\Nr{\zf Ux3ޝȆ5i=K#ւ3G6zm'pgA~EKGWl*" *-n5pBD=ttZL/8]nĩ'&gi8-L{h= G_9$\9гzHm*R=:8ACC7+<9r\Eog`-q'1"=>_tTWYkFɬ+3~ W qR= v EF2)K+*4g&Y,>`g,@9h"eT9"g"F@0 lnN:yt`PyGch|D@z)FjQ,uʑ:5=)h>BJ)eEHy: XS)EUJ&|02{a6Wc= ST;~!}qG1;n;\<׼`_Or۸FT=VتHE4uif,|wExjB90|ܪKq dHk>,:%:!&xk?3c0bwnQ&G4k9,G`C[d$̆;hLhc^zzv-svkN.=aK1 Y#[\ xTsVt:p/e@toH{Xj;C'Yg[GA@<C;(s:2HrpjqBPSN!t;Ux[nnidhf}[?0e!@nFhe}ˆе؜54 34OGo]3MzCͫ|YOX0"yzhh'4ޤRPPqxXfw1ycC*t /G|Y,O%r;\iamJ<~nt@㵙ߖ= =bjIR>PM%e@PWם(|6wJTM gf <O8"-ti[($(4P]b4q+*8g]s4{(7!Z-3ˬ|gջwx;>Aspկ.mA[zNC R]SYcg]*1@٬λ5^q4IxSRcK:o(Nis`V_T74-pZ #&a+(P\y @96Q ڗJo=,Y~g]Okxl .\IG)kiRGƅq鏏9oP1vҦ_4 PaԢ¶6 -PXHAkG< 7&()ijw@F[Av O p! ':h%r@C`$fXH;B`.|'/x7hx,.G-Ȓ9)Ľ(4)(NzqU *zKǦb)uѐCuH룷Hz`+y$X  C҈nJⳣE4cam+[(sCקLc˾1wvj aBVD{ ><-D8 3* [#q,#5,׳M#=d]9wxpvEǣmztmڕ1lZr ll9*kM-gj+j_ho8;Xx7Pr4G&q~_:G% 3`&ۉS7aO˦3ykJ0gT/$5(rY+eӴtx@!y Q)U7=/W[5QEN ZP(+ژ$H^7=PHn!K-Cov;V#<7vJMz%<ԟLtY:a7T]+Xo]Lg:,񂎡ܬOOqSg\ /=[ Q#LZn;g}D-PFٗF!^i8St?{]@s'fP0_7oȺ\C1WO%(q@GvUv^G:&'^ -_?w; ?_㓪P9 W70QuQCaOBuXD!wh(GD!bZoGYj?{kYvYիMI?$YǶ^zƖ9z9'KTHR 'y m撹 YUc>P[t0@+f{r:X:9_#0w,:_@NhP d MK#v[I1 )g;“h"y;{\6XzڬT ~opw?uM&J/^_E \XkqWKו@?$^r y,Գ^;n%#bE{kƯ873>̺4L$,Uv \.if936Ek#\Zo|7JhR~$lȒ,N)Usp}:z+uXbwPkRtnRVYٞS^=CPy~M zBq N(`GBO^$\/n0ԷL^㵜9 X&N jMA#Q/w$ee,1NïW*2O7K/dV v{l [fKcb-:ޱxw[jP!žycN{4<X"XROrACG ˀ&J~kNH J'`pMMGe˨\5* i)"hvʲ¿@12Exy-t2n2c3(pB2hޔ*3Qns}3Z[]qCy:۠\*&eR6Y 5cU10xC>5HAVېUX%<5knXhHy\eB4sk 呿S3%LBHs0h'q"mRYңD.͸="kc[C,O8wV"ȚYOD1z 0|ogQY٪()&SQ}0Pa80J7_h(^mNT~*ևDu4xe0Q2f#:ضZu=4Ε骖D*ޭ .}?,6ialݐ"99ss{[,Udsw.oyii8[q4@8p (pORߛS8:B.91mnn!Ŧ'ߤiKdF4nu ] Lipm-5mf@j@d,l. 9ƝDJBkzK#}.I4= l Okp:O%kU>nn+mbaQ& +T] >r+f_1y;\~?nuZʨR>8&.cQl8{Kc"!2ԩDP{T'zn r̎XrS1~&de)Ӡ"f#aD<8{8!L$h!jpUQlҢfaYh#L=HC9(![ z&/ԗNۧ(Q&Rya.ZkCMh +(Ѿ!J(:XG j'OnbL[43&. df*>g!I?%I2B=6 +􋔞Nw ܌6šj1̓yZ3C*3' >ЀrP11gbQoOhhɸ01E&ƩÆ`Vߡ@ W OG8%SM:8Q#.R9 m҅e.jj KP{6<̨xITaYxx}D*'h@/ kIڕ}~8R5N>sJFg6kؾ)eG)KZ?F+T$iS_G2IAYM|K;ŻLA ^xPQ_,2 "mlЁ&0^oձ7-3WIXԹʽUxۉ~!cZ|~tI>/bv'mS#?υid.c*qTS뙡YL&p v#΋SP2˖_ĥؠNHl"fK]se +瘶X(q8$'YJoOV ,]ym P*y7nLJ*i06~|4Jԋ%~w>5`0NO}OPl!~1 dzK;\u|*kn >$;8#tTEӷ=bݗKVlГ7AR.:_=_EOo(:c& rY)>)AuDFWyΪ!)>O68<;m" poEn*rW>7X&V@2!۴GCvIft_{| ˞ɰ4䝅Y&7{y|?&"鯇yTӍI*x+M (X]%s;`+  R#d \6>߯ Ut"UaƊzvX+J$a/šE^1 ~@^G凾J-#J;ՂH2%AHYqF'-<`n >Ši5uZ7ye y(|?`3U찊ae7@f25 dJd8AӬ?P߼jf?M7 iƟ˼j\BX7ͱ;Š@;@O6")=`dȣ9i@|f>igG,?mJ}TQ/Sb}=k<!il^ƀ<Φ! ށ5aX_P/ J!o)9SOoduQ)Rl'LVP]VODVB[mFz CS2bDP-?Sٹ>6ކvGjn@`,*jj_KHlp}F%6P@/Y!4l&b@UFWk8*E\j@V ?(\b(CGijhvuboʧԶw(j˯SZVKbiAe T,i0]zj^&γ7 oDdgTT׎o_B4)XH`io$8/"O%&\V\ʡIà _;mfLօIG;zxrޑcl ڠA$1PtDE^C Nd[ՅKLҖљ8uBtvÎXE)~"i r鿶j{t5ZA-Vn))(_.:G ]cT,.[OM;f i.Bn >3 pL]:+JIK]ۏ#1Wn>C&S40ϦM@+Jυ4OS*\7S _Mj#k;dP}puF/+:xIOO]H젥jBlҲ l-yYjr?%DzΡ}/P5ݴMثQ7{P6El o8=qOE}88:`n_t*LvrB?cިf6T>U5i*#"|dI_J0&M%6snجA[Tuxr˗Hcab5e'圀\E昈sm$ KD<~&l6 q'G!u/^QrIc#dLM VT;ӭ6 2 2WxD(mGsQylSNYƷf80,L:byK2>܌Ϗ{ G@32r|62:-'!$3W͜]›T"Hus%6%{3Kj^PmbYd>riBK9ץ)LdMDc}. ,0euJ\][)~l71,U$uR w9!=A" w qn pQ̣Jn_>+:6_J[~jyZC+7./h7C@`z[ڧT}NOM;ї-/weE,$TYN3 F&A@ vplhi dE`״d#BHp3K1/YϕtFC0lޞJtW,}k[.-&S\Gm !We'l$ly7̣^k 3'Ko1/vb$2Vq.%jORVjxI*P*PDbo-g hXa,,oD~Սlv]Hxb$nǓGKL:ۡF{Ojc';]Ȇcjss\vidwx(~e{5㎼SN0Aϻ'S I!Jm'+=SV 60liaF E`p=njYkdƼÇ=G~|M uԬ=XpA&'ߣFh 9l_ԱE0{zYp ŋ^]Wk,g;$Mvtuk €JT%K>m>:VXrpKŪ<'Ňl.khP Cp#L%; 8`,~yh ܬTb<̑$,E,Jݠw>[ GEȶ%>ޖ (;G> 0ﲼ}=ӮX[_ê1ܨP CMA~~$GL3iϐ`Waгh9  h.N UOtGYH|- rK j_0'KA|~KNIIn|bpлJ[{.ARmy@rtJ|Ů P"Ý}{5g>vB9ՙ0K 1$z=Lř~ l^#+x~/]8hh8遮L]JNg<"d:06) M6`]Wɡ4bGp/ۇṕ5S {9MCC||ѝijLnŚTy!D +O Ԗqe "gP16nQ0lA-l 9D_ HJ {)ޓ;8SzHE2Qڭ=\߷oBd+Ui_qO ԬF828o/&:` aڗwqzLy~ 0!߫3U{r)֨I_DZHk}$10S0}KY zғh ) p`]L*S0 ,@90{3ϰ&ܣs$'S. f]ڟB.X1uZʏ#GRJ'/Կ5Ѹ" Zk):i3X*9 -+@ZI2!^o }k kT^2HC+'В=ԯ#v3#;^B1t}_ [z,}͡R0P 1$nx^n1Wpσx5>ٛSHvQE Y/X)R~+λԆ>#gջu 6fD3,gOGr_-1۸?G/ /?^,wߐ*Y*t,cřuaC|m4B"#.4uPB7ȼ=/K63 -1G?UB{;#t%9a/X>=^M>'NL@Յt '>s"2Ͱٮ}6uG{^:d_݌%+sbFzVH[9o1g)-z|XPH{ [y,c|fuh+Dx)߇ o5jxŀYԪAF sXଡ଼pq @ʢuh>8WYO -+o3M~[ NWyÍ!-c8;XȉP3 ;z^^8.1xد+jBJWie [a /lMN?aW+jV?L+Uح6U ˴Ӟ'HCX_Ч$9R3 a0 goT6WjAoTgqiqhx'; J}k䬗$ Z ++ B:ZI]L6 Aut:Wss߇ o(^aGH@j^H<5g-nnse[5eLq<~C-+&o'pݞl6訦] X L'70jezDvAwuѱ>Ly$<\B;d2V;gz(~qa1)A*Oj{@j#V_2ia/`_-at~?)aBܼw[pNP$LkYҎYP2]_6tGg\Kd(pq y2RwʣפSQz y16-M{&j<Q*Ӻvq8\tgy&$i?Litb&0ZכТMQBAc1QŠc"3L>MEjςw{"^:b@7/!]ZM]W]CzsJ+n_iʧs1r5=fC6E<t|nW0ìl|6E^ ZI+K Wp4XI__B֬Y5زHZ߾<6H~v;bV2\mU[!x SH \?dtړOÜ^v;K6#ʨ '#u5 bn94&yGADttHiG 25Aђ+9r!@P ; >+3Vy3U@'*XQEn A!$7Զ *&HU"?I8;QiVw{^OL&6SxNDR8?6'#`Da/wPr< ]\5~ ▞3s6t:u߾*5 #+/ #lpp0j$oV}r:ZTp;Nc0fʛc}H?DUɍ/o~atn~H6ҸԮh㉓*5; 2fA.fݝ!Q 6bJZK7 &Zأɏ^Fȫӹ':XvR9 #Y 5\a {=w[ӄopج5K#%(38Ӓ2z.'r#.{5QFz|ɥ1-7cM/M,' @M}_:l4܋VpHn ;׼BXE'ߺBJH(+. UbpD^[SaϿFӔd*z*϶7/g 6:dm+Y. 2L%<1 F0 Wu?}- uzH>CM'Ie<+=ܑ,d|_dֶhtqde`v>Sp8`kUOP(9cd >u&}6dUis;7Eyq7|m&Q:L%ٟDJP'qpyJM$u nXFMqC)b :?uP1i=.3$˭5r 3bFw͚c5l*ߑD̈`hDn ts*TF@ oF(!xz΢{d-Zyhw^ A#ӮYk7XgI|M!tXTɯA8<6 j2X1&59ukY+&$QW;`PBwk ,1HDi5tD9z:. ރCx@B4{oWkdhBPt3G4u1Uz4vF!Qn5g[:r" %Q hd0ǞC9'0qeQAE?E]'$+Idh g:_1:Yip+YIgO:-JTn3 SH!g7,FX^aq D⹗ZEVt eR)Ukr4^nQ^5b^bOgQZz`6@[xȯQȜg dqB5Vҳ{C̃lT|*U9ear|橏W>[>5L,shxi!ɽ"bBޢ*{kFYʎ[EDpIO25"y)FI+iC> {A,` DDO>KƳ6h@|ĥ Ι Yh=e؜ < 7̎vG!H-L+y0 d%*묐íڶ6;$jޏKw`:NYwhd~rԹG0,TM0Bt=(\w.nN_ƴ1`Xܘt#ᨵe7-4cB{nrREQ%H2, rgQ+t\}X@8yU}fTɡ!(cuY"hyU&JgƓ{{: ."ukb)TY b0Df 1<?!V&=T A ),=קRn0#[6R}7e捋o@!B<#|!Ew$ 7Kz3Z1oyb0DZ򥛋OҺ6Y\P:\ZACƄk{5V؁DZ6oY(@;i.a 9bܶX£gI\2%ԧJvz$0G^)aTD47_ /b_{/{ 'ˆCYo9}.E0SONY c maɌt/i^7xB'\dZ/0nC~ .m - ҍ*!zㇲ5<&)SH :qKH&FPI$=s'tcDїONF0^^)ȄTc_@t v)@Cڇ9LEB!q݆Bh/:!zj)>`,?ƺl#@ut8siVԁ ` |b^w9l'l>/^-I ȴ.ZN)PUUĔ傡$c1hEI$i,5zBu=>(/xkZ&73 B8c6AesC4ZոDr45jI=z>Zϫ xu+u{7E -ɖKYBҡm: `d.WΉY.C(t<\_rf BW1œ;8N=]33~hIzeD= nٱquibf?R?id ޻ ˟0H[3,-9@>q-9 =?@opҫg^[~BX*+Nvp'#a<U)TΨ$`v~$EaN'TpczVJ.m)ԡTg., Z*Tآ" a>RA )`&4Vu|7~mlD|GQn,刉L0e$緜m~jZq9krN Ͽ%^Ic_ rG?lbE>dhBC*-ʦtOK8[LQ>- o&7ZN{c|'L ^-YiWTg1dm S= .L\4HP\1DH_Aw9&$4jE_\ͧafud?q഻aG)8\5$B@n۲noů^ߦ$/H}ƣJ 4lt7s.X7=ϖ~,;F H0QTCxN`/wk.X@K+l+R^XQhDU5 s a.S^֠a!+ *#̗+ KO^:MA[ۅs3-h)2_*}2+Np3۽ԏSqIo3f ْ0hx5i/(Rs _9&[)S'ZPrm2k@'2ڂQ4VQQDLUeuEܱ:.c\uhq2 *V0Ҥ,s&F!G;nE"?z !Sk+%! u sP\@^ (f]T?]..%S+ڙe9&轲q#dˏwDvExg@Xgd}\kA8t0ES/a^R, .}dه}*ԌQqTPSoGɑD#mAJ,XG=%'(ЕuUhlU}^T`uONUGۘ0AL#+p'>eWe:Y~i~QTe{>%ߋ{ca1vώ}9HLu 3maVBn*w?Y~%t,NҾ A0|]W jBL5n6oG$qF -la#jX7R"ڬa>Is m$8o<_GD.VWW'ol):[L.^?T67pAsM]>xůذѬ,Onr^6P]cgm dХQ_㹜/ RӮ*1.駇:]sJضwxA4!o^[A!, HPZh0$ˇ]AUm/bfJAMœ[;Ä \hv?h 7,qS)ZZL~j ĵR*;$!7tdB|QTfIVJahG"a"Lms '67'o<&.I"fOk$(JQ]3̏=(>{w!:1 @JXs/708qZ%'?Q "4EI'q3Dkr~ D{0܂*:3#=}i1K/6ȀN| WYZ2X;<4TQ/;s$}zFAI u$4g-t4Z:W Ip؀{QSo|9Ed dzȜ4TEs9gz?B}0N'RP 9d!r%f Ò56{uN md %(6fpGMv$꼭5"S-D79d>F !F`ujEmR~fLE>jE^"G`uCQ+ \; McJrװam)e7g/+*d8ers%ϮbaD d?@#Պ7jY؁U! y 2dp;y:qrzbSfEf~mK' FeKZz1RȪ My>v*.;BGA oW<還m =+| cdV!AZC1ծ'^5\PX#&? @+wf\5{@?`Gt.G>א݋NOiN^ȟM{ϏVCr =sprX 25w6gӉA_8Z;^f^5>DVaOt5:o~=51qFᅮ ohz~hg+ja׃D퓆=rRe>ܩ)WdۣbX$WY]0_O`&C\O5=lV mlI#VԔ<Ѓ}nT !SC4W4XۉE(,.4W]$7j ?JE}ěQ;TZh +xoHdB M7mT^5/d& Z2mf>8w)cQˆI,XMu;طp1)23J“`ךk I=Y_E)lPʃqg[O *ư[ϣ.ׇ'Lz:Ca`/^K3 TR.7b)c$K}xHT0Զw!zCQ0ȕ6۞`E\O5\N"}m-%pt OZa,Ջ%̲0)j)i=szmen4O۞;Y,LJ~a]VOnrZ<û26~3+ц,W &Qi+Ǔ/_ ]mjayD/412usƃTMʿ>~sT& <@իk}Y B#EP+z f?b^."O,CHDWIs~%,1E2"N˩n=T!|>CDL#$-D"ȨAC0">aL;㹱8mXlHVvO&E OZ6dRd!p Fn'{W^r/I+VGQ )a#/QQ ˓pR,0ie=,=NC)KN\Nl>A;ele|Tm{4aW?G跜A\Υ|yviWHJJ(®%G=Z4\/*m)Dӛ] "ʸoZH{5MmYard>5&}R(e]^;7F~49iH4=ǠD B#}.zRѹ4A<4b_PpXƠ#wO^ pssǔ8GVV*@lk\)v| Kk<5_Vp!MS+ClkXTC#3Ƴg[*{^’/,Mol׹"_lN'It^7R\e0p_xr"u}eH H3k/gzPƷ]I=6둓#1ݗ!@5yZ!IbYf[v_0DU_G QTV6kZN9,qȑ : 6fX^o/ e(D #* =]e|U_Ozt?# z(,/`"KMx6jQj Lz 0CA]7B ݨlz B-A$PlYy1xl/MZ<#uwAӱDW2P^(RYg<}nM'.kP7+;7.alxLeOu5(ҍX$ؐ* YR˺0Ɲg}(}0-߆_.ˋ_% VXi:,g E"Qb<zYЄS,?$  N;G;h\9RhV[%dx.I#rKP]>yz@{QV쐫NF{p`kف7S͓+lt1 ,\PWBvjuA[U""KfЮ \AE?Qs 缐TG6ZqQ(DeY3kې!B& Y0yϊrç8s5bt§~8l_/cvs 7[Gz(2 Mq4hCP?ħ:|(Og(8! cj^޺JkЦw˂T \K|ЉY#}@agXo/n0p7ƒ7<#dW3?w߽Y&.~ d~ ^Qyt K B];lJd!DҎ S D%<`OĊ^ˆeBǶ`OUƚSm,N W atK͸↵xHQn3Ұ7۱^E9ZCD$ܴVY;0\ gWU?ð"Y7jC͋qdp^V'Ngd~oQSvdר<ɬ p3]ljPEj'aZԑytR=W*W=7K.Y9DDJ_7xcDwiYa7–M"3;1.bQs~=Of|/Ջ'{tmѿ7٢c9){ 5ۡֈ-B^*;[ B9g@ WڂH9⠍ <Psn~_a֛SI%~rޢkoUΏRYhB;zxHKK; hH*FFf·`Beٛb܍o/?86a'u'4f1V"&C;P,&-Rcب5r%N_u"v.T^ 9(#PZV"A0(\v" Q3 8'H: .fJG~j\yT -@Tl5Z}'P|'paJD1,_T_S͐jS'F19&|d? J $S.`(fmyRthC$)g"fjmO^0<:ضaB\k}?y%|!hKϤ !'Vgg1.态eehP*u܎~j&^+\@;}{z6M/*p\\$ԯ=3״WPګ>ghfRWPV­Ъ:,/谑<5rJq&LJ׉; ɧlck¸T%:\n 1ΰ`;>3m.ew blQ)o%Xbm6Ak6! Ё065V\3s=.BTd}bEIm,>nzMBl6׮X^_[Bݟ@^py'h8)%^}J4x.1A lz]P|@Gg?ߩglRH#=^>Ym_lrϻrfi:4*4qdM:9VD6GK Q};̚ ^-\SSF5ɾ^gFq٢f[2SwdT&\GYAs،Mͽ7ĤItMjla|zpc9? VJvȓ i]L"j)SpԴ;nhg"ZQ,g;}y ŵxByY˦6"k蕕_lϛ \'17y*'RMQXf';-* &LM]vSl;swO̓<1tYg3ŚΏN-Myii>] * NX)M9nu }>nLдunY›>QN'b"L0xSҒpO:.se@Z_Zh 7J 1A,ZIsd^~SB|1FP)5'ZQgd]x}RIԹk\KH="l1CQJ5G@&}!@Cޝdg<ǚ>sC(}/J4$esοA MMe.4 ִ!15hoCK9.L1.m> %;MJɧ1ѿ8b5WfM0 di{)FEX˭2jծck~1;mD}2;(2gfV]{(ڡȏw C*9wcWZFL<^#Tlhīw,2(o_%AGG7"#rE-P\Yw!EiOS*NUBmNNW[.`Ȧfhn[%M\%z>+D3fR]L$]2%"N\#M|&]4fPcRi{*: ŵDM]K)GUTǔq#xرW~- SE$gOs3wtLN/R}41Q\͚\d{dI~m3EI)G>6iL`n-᭣a"rfz.@LZ0 QeIBOg ik:JºljvZ|gЃeIP"ob@] F< y{T14J1QmAZOMR:tblbOo#~f{uY|0Pz =csX'ЧOr5Ib?F}iG%>!I l omO¿OlRj- 5z5xV"*E O?!uytt@y.?rdۉTMj;Z01Vj: SϹh6=>Lsj^IyQT'%Bup#/:Fs!Iك/)p'B͑b  vJxJhyŅݷ}.NTb2K1*xnC؄.#<~]{L. ԵFu]Pg(%~*^cRJhe /v>xpW1`G4 ⑧?6($ }]gښ&5mܨ=.\k*D+7s1qu7uQJьR-N1"6+߂0v Ww ׻ 2I+scwv2P8T(p/'zh2>Of$8»0eEzŸeVF nh@}I]HYQtyiUSeCAp5O~d꫶*Xn sGvVӼ̔N_yc#.ڴMཀ g 6Y\T6("bF;%2A0A D`9,x1~aod{tP۔<-,2>¤s YLӮdA˘! ֮1;lLuk8(;k "F"_-tx{, !(q+ Kz d#S>m|eˍzSK茭ZZ28Bް/4šs9ӎFiHqIqT-[7\àjziUA5[mT.Fw.[ViO `.J'MӜ^>QV!+@"`3fވrAgpyS//s>ڑ+栮da 6af1?l<ٯ^̹W7w[2_1Qb?`%ɍt>yPUby{e69:0[HJ ܔ=HU_v\<3zy% ff2tC\k A ɧz.h9 ;qO6S)$/vabx[4Wr!kD/F$˳UosÐ;uUbmg2NjZJiɏ&0ABdKR@۷Tw ~@ jFQ%F P3fa @ܒ+dB{E|owc$䬤d쵀rC\3i9r!E Um6||r]lxYf$RHoCy2jvO(@!rR_ŵYtu52` DF̊ϵO0CfBQ=m=% QM \mxfK`l^ڷs\HXѵ]\T{kCnvOwbbIY7Ep2z7ga@K6:ZʗZlS$gxYJX%Kƌ‘f_~f΃ڭkR[>-pڏhGܓ g/uNK'YTy8@HK%ä X.d=d*p։M#Ni@.XDv/Q;M/\3Eĺlqրc.)$Uj?| uG3 T.EXWgjgH ~boHLjQ^iez/d7V<Ծ $T,Vk;dN0!_XMGZE a{~Ghj5bJDmz}MえVŪЕs@~ 1UyXЮWuV̧_Lfd8ۺ_+S:c)ד9 Z;Ԧ8 .߀c9-qLk dޟlUP]4IeƬݲ}o`ß4$!|%GW]yp/eFیyeKA*K+]>^ $!̯/ԛLKы)}B{QWVxx0 0Jhڡx/ kp#Oi*Eط~ ?o;ٜ$|z] R8cn5qw,<@Zpja-lHa  N6͊ /60."OV)pFlMǦS@>\ @Pf*ŒX y6 T偣-8'?9DCRh ϲɷY.f2Jl$~k7k]7z@hmmYY݆*Y`9Tt)vۿP@$#ǥM uy;Z|l"o)nxسծ}E#:T,4Rb#v 92Srz8@eXh@,[}AT] F_AB+`ϖuT[{MUcc6S?рMyuSkZ$_pm ?l`~%rgݟ9gp"g?͏UÑu7 [ K׼_t~K7~pgn+Eb+jr=WMsЍۙ a7#"~ޥjOFdɑ|fpɷ 5Ea? tܒuȗY.9g+wWof{[*ݝJ}5?8x!7Ss+{֮! a!$iC~ h)tƠB}#|X꬙l>5zWH1:GiucokٟǛl(Q fmq)JHmSA&٫=:ꑗLb`B;`o 3NE~b"FN!@ƅh;4 P;|{P!?M5Yy8[ZKgTcS-:BcHFhG;ې}w)v#:/pr+pm :F yxѷ,P񜫂/NtVQr|Sd#h:-trqkqLE9}Kľ\7-;4Dcw~LKY8H}K|1 F>E`FL -Z} 0ڹP=SЫLeC[T=Hy^Oe-J`yO>~8fҪw mϡ{(.~WXgٱ1f9GA: jKߧ@\L|L!CJf5GK ֍־T#Xyl𣦺Mu͏:Դ\OX[~ƒ-xO@ f٧9R½yG2fJJ9V>?wjRqug7>HBH7Qcz:Ay ] @0+blÿRd $(Mx2܋jÏ6#'i686Ne43J4͚:$Mε2,&$Cff Ys1 G]$Ȧw +bR1܇?kb]9yJg_Uyh hÈݹ S|~l6y^xY3 Ldτ5W$ ຜF_ /6u&~:mW2$DkD):hF` `ʵat|MsH'vUϝP5v #f{ TuZ$yME{,МE^v8E &&E۫;eOt\~8:RH샎ǯX+m{J Wl`i=M6\PkD:v$XҎ)VE6)<0ɣHs^cbb]Y[@l{hKp4E9hZ^?uq{kGꍭ # p"-/ oo'u6AueZ?|r`=Uo:f#x\EH{4f)5-un/qg-젱#(n@#ֲ[766ہ# ut&Ƿß\RO񘝢{Mt]ip^PbA}U ]: gsFvBzl&z5Jfb&-|o_m0@dzxC6',b97̬sJ[*ߺbHwèT7"wՔK54`o``֊+LwR<|rBARGq 49svFiZk&gA=1Tю9tyǠb5UDlmt,B$DBD5_B (RPXrDXҜ-##yO "BuA6=^XFWb֋^ݯbib舻oWGR$lXP a/wv0h}d寒H sjR\؄ݏ aGP9[G;݋8tn,}`*_Fv\; B<=sĀ{d?0WZRZz8hxh֍j!߯ᾎ-r|\ wfo<kw^7ٿPݲ­PBPTݚ]m XNX&洒S?>Bیa%RM<űHW͞:4kep;*&C7G c6p}SbZ*g"wjw749PΎ56KU}s7*i㙩S#`S^;٩? X1R9Hp*!-cҭl,]*5Iff(]U ώG)AkZvY{lcAd$f&n tuoU< E8DN =p=CL&1fԍ'( :|┤/X`#&J1>{ؤĉO^uqЩ1֐*zGE@B# pI8cj6t  :Ѫ΂bwz(ZPY)e*7&]g 3[9HK,} F#>X Hd~ze>ӡ1P>vyv`ܯ tk͋'zu@rz_4oeALߓ<] $ )ipHm. Q{b<ތljJl..i13XYiWITlۗBz`ኌi|#o ]USiz|^^%u3­H#\byGA깘Y"~RBJK5C*op:NSj uģʹH9QWz?˓n+j$$(WO3 ߞˣD}qJET/(Y "_ 4!Lvz~Fǣ:'3$WR} D1QJ~JTn=JסDR= *5GZ~ebTBQ2%M+-q6=5ȍFFB up$Ve4; ><jTtfov!& ̃*Aّ=C1sl(6 ՊR\[' 9.#Jwj -b1gpi.G wk\۝2 #EXr6wMx$Gl>TW*xrkw )G-`j.íeFb3Кvu|%46hC`ܫE/}Άp9@$q0I\7s`3yjƽ>/AqKD6oc+@KԮuIo5CCcmCv,DtoWm3,h2egcC6^LUx0s@j|,&}z[Ft¦h<~<^)U fCCXUk2k )@P/m pXt;mL%Ybs:5̮6?.HXbS_ADZnգR!Şa W"Va[;WKnw8 .us&:}.AmEM0l)B^jz:.c=ݰM`%"JcFHX_̏2xCr&턋hpYknW'o2Mr4сmsSq,q)@W ξɘ ~l.IR||-GcA~Tw:9O:FgHcDx&Pr)K,?jVebpS0QL1Гi_bmZ.ƍZ&Rdq*6ZVP08ɍxKsu>A8!UVy3<:[vĩB!h.P)2 ѮC&_‚H6{uv#a+ U]E̼d6q?4-ԓ|573ZOYRK/9 c+sDa>ʿj'~R9ELRFB d?{Hv5),(<# q9c_X @]+iz )!VƜ sO{h cڻRlg !^NQKLrbxY=0,XEWqe$UlY[b@Aǵ]w 崅لD|wfbNݾԛn֪}twm! {c.p~> Vҵ[&>``M#7t4!ݛĊ5eR-()gޝ#mюoDC;-$@7F5#*3~Dα19}8@|߹vڰpn^9jNrEeJ-P[3yx5Hv_-u 5 UTЮL-B_ WRѤi{cw?رCTtj1u`EDt];3KVș"O-zDE FW~cw$Hoj^iXUWD>،$#΃vδlF?O*ΦyfIB(*81qO1!ZXe;h5$H4 h //v=x㟦n?6'{mU%%I? q4aj 2%,~:kvhxDj\*SJ!?#6vsB:EZ#A`#chanc2b(%Yc@Y ;SPNe[p LV xzɨXN=O zJ 7N}0WT(Ne,;MB0LY<^# vuﰄEYT4Xm@ϐs*7*-p6H)<0t50ar(h֎{)c& /=ux[|aw,>'[q< |N $euG__` + (8Si!)5LC*P.E$>M(٧,V-]c98@ڎӍGKr.:Ќy+څpV! 2?B*0Mpb&FM^e~hh(I3?}^"IQV2Q~r!D! $<<0FvAl>a֤ʛ:~]0LZ*{\*bA1Fw$W6gcrg~)Főg/|$Pt IdHzfM'% %^p0/)EoiUVdC ^Ǖ[3vd |Z=Y4nt `1_weL.+%7g,H3>epv}%pQ "JAd!4H ֎z*v }wʂ) |9{}t^1ra<͈cUu8٢{װ)}ɹA+)xez%a-C0:h)zY`+a+ &4]4uUGApnF@v#v`#UHDrs'q毈Vg_={4XCh;K-z! 8.h"`´xx< `%%OPKGydes(EA3ɀ:rgg_ޕDDzPXO[i)l T S;wn% PSrZ9>[ܲ}Y\UȍWPM-s6ڰD/` '?E] Ѕ697 GlD,~5v6y,V[ nWB;0[FOsZRANFO|gNKi,$+'4Pf ,_M5՝+KSkT {TGJDŔ~E4h]\ةq].YrҎ5 >=笿gc1Cpϗjeh]=wq%arC%&g jԼI Xb#v 㝸Ś1_9*sUHq-τfؗ+D?ZfjG 㩨å}Q:D)fm5َ[@XV$I?%['=pQBF+=. 7Bʌw ̥>p@/ɗPhԇd<9w KbXb⣺~)y@S@ ?,TWX4eǶvC3 4t!˳Fv*psf4GxUnI fh8ITf*.t #G|SmQw#Qv[jOxjcj~<'qo/&C7#&x^Q2P?~ұ=tTnS ن%F4X|VYIU}<7-nLsrr ohNջG4TWh 'Rݞ;iLR?(1ƏKq٥{NB3o+c`'h YQt ܇|X$=dM]#Je((~ZP ]ib֘& a0Ǚ. T<Y4<1XnaգTe)T4KՌFr^|a~A^[Ot .>Lz=MN_¸rumHc3vdX]b$sDPG++R $}WHP$ht%Pњ"PM DG$:< Aw60p>69Okq!#D'B-h{ ؐjͦu,ǣa 2TE(UVى`fq>lhXԮ*SQV>]F|*e͆AU'KWsWt3#W (얽U yͪCTP@d?f R1 wWClb^W#Z,õ~뺬DQq䡘^XUFTNy"Tām+6eS{|{l+}@(#.[ !F0 Ȯ`Ȓql5"HI 1?.kǡăs丂VPws/t"x¾Q5 "sy0-z[9;-?$a´[;Ľ,UU9{-D)uE8}^\EbG9(S,îL;@iqYE\<۷;%=t":jXy+<D5d9y.l҅) }w jɰq(h{̇|*^ CT% #벬F5PA~gn(/TzT=7ʯi>Ģ~N )y 9 `w zl4wU,]qJlJ2^d-Dj (԰WeoFx3lm rN]}x|Bwaњ_g;rV!4ZZB% `/[y܈s XcVm$ 'i`a<SQzr qEbGuNhw`ݶocz.'z_FeqlyQ!c !R7_|2{HTFn[#ɬoEf`11h m:S<4v:6wG 6ԳA#S4ޅȸȇ(-u,DR\V#@fF3o]RX:;s檩ߺMB ުcGnGyIO[7=MD= )7^Yz NX ƞ--Zm2 wq/Nda3IQ _1/P_MYCcOhq%шk[ !+-a7Q>.}Vțc P1EbROvz?|dgowcXXж>nA[n7$%Q%ĉx%. b|N{2kȾ-"6Q-#MUTB<xnoLҒNAI[<W QyDfP#֧Vv]28س6~I9끂Dۑ01~pChy# hH^dqfTl}\\12w y8UўBT:&PHcg[Aa"盇"s)7[(6eh:ޡ|h@հTap{^׋ #+`R`٦.#W5[Xx^ݺ@t4y-3VSs([_:9))yؾ`aƈU17ȫj9Py7— xTHsT9r/sT怅*J AX ^ q+?d}É5b%pr#]uVTuTr.s/IXj8JDhSmEp$89a;Dv<.J7\)t PiN)Lj34.۾[}wto9VZ:X XK,֖Xv5=zѕuU.<_Rk$8?:-Q%={ T63Ч%c[3#)N8m Vq\ !1@8A kwb CP"Idg+C4rd^oQI\ 4/V6 W(gq-W@a7fhӉ6w`-9r56՟KZQOP>E"&t`u>%Z]xA 5<&/[V5IJy6[ KfSaZml⧭O( nf|fğ/oXx{lw| g?A!ڬz43 cYU) !븠\̈[@bFKW,Y&!Q} ʪiGHJ6 L:"#?XwXlj}t _`I i(èmE1wMZ`9hw\u*]OB:b:r12%>P,nd=Ԭ&)l^Wu*vϒG.]vY=:a;o "/8"ocbڃz%lz#cnV u'ԛmvz"*P;NFBtЭʯ[=a4MTxz" &].b[uzW8"Dx8NK5;R/l| ^d+ʨEL!ʸ7 Rvj?XZ&!( hv$umVATa}9U-kj"|eVgUUW֬`}q}2 cl?E;<7)ފ' f2W[4:ό<?j #eFsz(x&릴rfL9 uV3j{9̲|ɹ[ ɛkt*l):/4E^ eAYg[& >Kqv] ƙPV:{}&=$:9!], ˅[f&]RHCa)>t6^.?, :v<%Y*x6:mtAvlKɰ [6 SO=X9q `I7b bnϿ ˴x[Ͷ= :y?{ Th3Z{D4Kcj߈̀_ dI&X9xd؊<3j;# ^PEr:U\Oh(*Øf7T[@V#e礻xDkq͇1,6ii-5CL2(X\XQO7|B 8(bRO˪V cF97f'#ӾLQ ح&9zCc'V;s"X.Pioahۈqf%őV(@iWB~Fq𨌽Wh$ª_&=?̌A$H>) _@;#'l$kf2ﱹ$X]BnqK22_HG\,KWW=vLr%ڎh`Z!4|p?JP+6<j.àޱ(rD Ί 1_Rdl82ެODz'~fNr[,_y{0(`HIuޱ6p:u){tRKwB OyAK69S9CPySBR[gՅjd5;B #.-^'B3r) &3v : 6`ڄWn":0BxI9@wG>V[- HQo م4BDtCF(fHӆhEO~YJf&I!J2@9wb언lQcmTU:>SZOAGτ*wX 6`TT#qȥ:@ǥơN ȈCHɷ(|ju&u{>45bܱHXy: xm؇9`L=` UkЛSox |2ӆ փX{85y>(@5޶)ɼ@\rU_khxpȕlՏXVOPiȱ=P 1US? Y3;O?r=y\/t6O~atZd|2֪Oaq[z#-ު q&yvZ#im74ǹ榼=M7iQ_͝.leaߒ'SL*˥?!6{l;&EmK@1ji g3uTPkKhDm9W?@a}wAtPI{;\qө80w]3 2\y 7+ӯQ')]Ҍ@㈈g2Q )fOWocwQxy2û֓@c7k/15g|?CVKj6i5>Q(RV$9$ɬy,rA*ʲLVXNb*iY?@V847xSexoThfP(+H 6Wĭvԉ?}F<5[C\#_4ٔԹ`\9i2LJ%R TߒA7T*MoOя‹v^p.S X>1B8oqz&}\w^#12渏r((VT݃Q KFzqM1=~ }p~@7n&k+BҢJu~TI60p7ŋRvc?vk+r m/If 4t^pz(;p=A8q)X(n#٢%YM_ \S_:)%E Ҳ(|abu]/96ʝ^=*|9]XS&<0L%y[c&Jw7 J_g!*:IqxWЦ C+\KʫW*V)-kdJDb&@Q`BO |*oGpT&`RvI .ON"˜SPVG3yQfLY$ާ?1sS#"/?FvQG!gZr0&t! :ք,Y I{J1\kP7?+(CK&(RKhEa"8V>.2fic\ ػTğ-LsҺ6(%V"ؾ4w|tdI`KyUxwHu:F*+K)@5sv ~!8D.n޽Q(EG畘`!k̴kEnEl I:4a:3z88rAo(v$%.%rhZYvt_Ct-Ռq #-{ڽ$p\?]xrqvZ /s* 8 ]]^R!Z{9 YɚD@ !8ΓӥB坁 8v2Bd..I tj`Z⫻ "8v2yM :[2Uf\ &K:]u]&?-}/D{]U1؀%Lł MrJe~h#zNUA9V~3*EBNÃBY*%; Qק]/2nTjgC}#YD!~ 8er}] ' *d/rh¬~L-Se_M7@\rɣr*rl<#J2'V-ijbȪ9h /Lm™cZMtyf0:Fgӡx?%+ m+Nz`pwK0fTnv# { 'g"Ee2˾O០tκcipB$ؽ-2Eq?t8 93lϠ3b\] #ٴtGkJ;I; \{e25֛<;Rmv3ˌdz 0>aS6zqGX%WjS!s0#&Pw@2vC%TYh-7v`w!e<$,nJYY{pyg8W0$.H3]r~k͈LF -hй2ʏtf=AL ^W{mu$a(m&)X&21hLm(`2NX\)͈>RX9i/ix7xg+kmoHo>:|c0G un^zhC|vQ8CqoFuz]N&&ΖD|N#uo9sYqlzP\[2WJ[ײLaCLojܯ]YI"ߩb#O$ 26TB9Cİq{9cO owE _v mproo;1)w9/D_R--ISޕw!fp)9 @>~f*]bL^5V)aۈiBT.o3@\ٻ ? L^.R*Q{/*G7-ԧU'=>1/ 7.ytlGjDlڗ#^Ϲ&nRCUQ5.S`۫NR.8o8NZLL8e ơ vz8*2ᝌۼԌ/&z0jhr;*Ȝ{?0h)EQGp; 1f [FL4$_"GF9J }JsZZBG"0r嶬Q9qW!S< 7 MȪwX fU:"`}nMس[1MF 1-UvZ8WVb UJtd&Co}!yJy*;"CnvbXF}&\fsLb'Nx/U~:PwV~J$מlgS3scEzPǏO5So2ņ^YϹЕ9(¬AG+ Td|Zf?eMH#BSCgFjGZV=+ zaDz<k ,neD~,;)YZ a8$ف lE\hQHGV, C_:2hN;7}E-%pJ=PCBy$Q[kxEM+70 L~3/$IZԍ3ojPX.~ʌY3'AH ܪ#}?3qoVa>+ù^o 3&YG.s\r;Ω\EٯL(FňxU'}cup*U%|(ԸrwÑ/Л%81ʃHypXG2@s%I#Xd[D윝F +LI>0$W퀜7Y[ Oa&ϕ_X;'V'Y2M % 1FTW2Ǚ.%bOkVGqkX3rkҾ'd9  5!<X1SLIH,sxQt~(p?BRځp.|YW5Z%%-W>b =.}'`?gd=ݒ%sH$q4;R~&9f 1+#Gȕ[Z!_4e/C0ù8[5 lA0XxFDWIMƣPxe_űUf* TTNQжzrRlG:Z^ljwO]K}N$藾OX ?Y}:ޖ}2qY]l+P&˿뚛_Gݧ0`osL/g* ^UNT6=3I,,:[nI'u5g=b)C͊hV 6CJ]0r+)[  O*ܘ-s3 )$y~u>'"/`*I%P| SF DŽ) Q^kiD #qfK9bޒ6#/P/Y"QsKs!ԉd(b>@3R\R;|DW|vdTg-IG R^_ӼUað޶vV(8\Y*L2j29~|fTAz߷ .xٌ+^#tJp;hEaDKR*l=(&~O\ڈ˷r SɜxD tLo "[l+jG )b@@± -ehv -,ytƼpB>a yɞ24A)o0#겚$^'VSj}Gyv E:@Y8~g*6;nuɿq5^odvl+"I p{4q=kiylUO֎ Џ}âl =GH!V1uKr"FGEz7Ѳ5U}&D[ V9ޚSF퀳:fc^I%Us^47)T) EjwaBlEMZ4<C/'vsjxahA]צ/id̀g% B9YWI}RL{Շ5jSHUСi../0,0j-׻ڃry9Zquh&#$D ԝ*[?bǀP4礉A炖^&kv{ Qo(Y Fc7[VHBTC)`^˖UCT;Hl0̄wLQtM9#Ώɮ @8vuwl)#V#&{Pa'pvt ܌eRQ&17Vgd&bʸ|K)4U&Wf .'bzX*˺Vᾄ!d+f~~-–g{  [#s?=08aEFYfu]ts?+vUlȋT#IIY,=x%.Wi‡diCpvau(}''lI`!?/ _Ѩԍӧp>0PGWBlWuX>U|Q| 0s\ /q680֬ /ճӌ^swDu?j>^qcXKG F1Y.} NQ/TލVuak⥈y]&D6BY!=#>U:ïI/>heJ[=܀] W6-؍[GeGahM8*;Q#d `u߇傡7 LZNWGK`lM1q@Ky%vѳ?in^[ŀ ÷۽\X=a9[ -8X&ԩ5N"[9m٣:|ypcv)i /"_u:K3N_7{H,0%fIo"1 ekݕ8eG>Nߘ pk.+2>0wox.6nhғX8vJDJNS|GM!h溮ݏ.gg+v3ɾF~}.\]FsB_{$-cA/ᡌ eJ\j%.V8}GƦxEI(M8ax(W@s6RmXt#q65Uz7k4lqIHZ~5%U;YcbgxD )N u>ovDbv8Ew0#@R<ATsm(<"+Y})Fxe{lz w-rS<j2(Ӥ翺%0QqDmhⷵO&\ #`8*=MT 6LYҞ/ \ϥ”41u 01]`:ud4t8_vJzW>2j PHKt#Il-Vrggǭ#38~W빙#2۬FYѕ[RޓL}JweN69`l@ E=]sfFNxܧYAmJl*Q"AF嵔jOއp#ĶH!b[z=*+R2gj1qǪoJw qqhSɲCԦTQlKdkE@xOo+Sy-h)r,[o"pVU U), &sKQԲ0%7g™eLmI7VomyɆӢW>w?עy a;/xpQ8~%Ei H]i ﷆn}jtjQ q"Si ɍ8[ӄ~`T~Y &-S}l$SF8,c~SOn|>Q]a &v1~plvS9W뱕m%"t@2"Z;Ueȥ~/LhQ},G&FVm ݋ԑ[mM̈́}moנA« Ud^ g|᭮ހέwJzDc2SWjp/~+@$E %jYS+ہ$P#N"%ENݜ?Ʉjhmaq˥= RFڑ*O%v^8Gq@Ky#i՚h^i"K7iEY$#r鰽%hxpM'9qi'H+ilIy 2>Z!bqdSJuiq4LooP&x$ajXJ,rz A$Ư/F'CYCC9+ΩƇ/f6&[e#x{ēPl0f!^ =0'Rwuk;e\U)8˵}lZ`S\U9s`VJOz)=;6.:fX"ݵpז*]3b֐H)=?j6Jhkt!Ud/@ af4;Yv:g_7i~S,V)'-P 6:3cHɨ3Y/ w{׏tlMuT5viTM&{j6m+-ayhVtR4? g[M¼$$19itLEQioԓCeKB׷7^6WH{9@ F.GLR2Cf, 9nCQ ر9%vewG|C:"Q҉v]ҴƮTڥ)zb㱃a8r4ݑP31kLq4Ua#=<}xTzCCYIR')l kx:Y㴃mXϔKʹSjGWIp` eb!➭0 hqP&`hVGf9K^&fhiZdqBNAo=(<+ L_˦/#cz(#8Hg$DRu*jqEKZo]p)"iydH$6?ڢA:@<0gf>=7bŦ(?BRR(KO{,L=Pm8Ae | ަt^Ѕf[j, gsFJVBC^ϣêo''ڦ`RCP|:2;.*rFo6uZW~sչ8 WE& \tmwX. spD\2 @(,Ye($UWn%ꄍ.xmIѣ40p 7# (^P#z]Y=~fB&rj@ZRSNR4P!kVp9-0M'?X3^r0ĩDrյaSDGV[DFJ AE*oqg|=+${!*"*RήUM.gyRȃ'7Ӵ4sŸuw ^ !a޸.BYorTOCv C]g, 8 4+~bCnvܿ^\c=ZPJ5[4Q[XM~ $S;pF4*DU ŧ"7gy1e Gxy#5.χbu$wf EAt&u% exa{~oU"gX+KCѵL$D֔kٺ-s%"s9ʋe =h @[k⠇N4j: N4RS4LșY ,> /Bu7("1Dc 3h-1zw,ĴR:O+x6d7>hrbWu*]nyt=*<{4tzIPHy.騌v2 m1qvQfc R cF]|r/qH3PVubYa~<:5PC"3]m"PQrՄ]}<` ;Z2]t3NEĉ@}:[|74ϨT!Kt4oqRڕӊ+ЃUSҪ* GsC~oe 8 ӂ=#Hڜ*X^n0 1dB=K$=DTg^%P%( b-"Uxf>R=Z/VX󮥺Ol^N~N`zY ]MʋoW @ŗWd^ .邫SC'wS1zWIqGn85*[9«B7]= e~y0S/AJ eIB[DV0>$j"gxP03 ae.6Uؐ GQ2vX5{@jm'[œ#lJ+HƬ(qK xPgܜjsf/$߹L{df\!Zc|#ȯ$5`#}gЬrCA/<.9.nxb#`LJ,T hJ! { -FW"HGⱏ(cH BImR=bO:$fp^SbeġmX,$ͫңnT=i|C} E5(WTtL#EQoj HetN/{ucIG8wVMБ]@ji,L(Qh~ӣ8x9`oib&?\B4.rL=D_Wb9_n23ɝ$~rJn?Zzb tmޯ3O hlVM:&k) bXB69&"k@nF YKPLIaX#1?k&6_6gIXŋjCyxBG'mVkh:!Nwɹ×8=DQ~~{ +7`7OaX%Ud5{vMH$0*a3;. NkF11MZS.KR;1/NۇuL DiB;Dvks-hCC L|4t­_`t~hnIZ/`R ' #w|54:u LMNqAq0lhAsE-k,'b3ڪ[FQ xѱbX]$"&z8[S +#EUĠυb؎!Xє$$3Z*@*۲w<&tlEP/nuᯁJ$=V%sdF5!E)bg1Y։+&[>;h^f$2Q *ԌԫMCZ-^.ˌGl(D;O^||*q+OӑZ6/ݨ{Y 0%˸:8C10| dVCq&1mľTL蕮[vw/.͂+Vlz}Wˣp0+zΗ,k`nxuC.X%⶘_, 9>4-V[ۀ*EˁB z;5Nݜ\ οn_quO$bN[`M:c` ? &D`4oFf*EqPa,,^|k<"dzFǚNvW) {4}ucwNnG"m^h&鎔^EEN rךG; ~[IO֮ BHwFD_fV$BSjdB e1/Q>|JZA(zmK%g2s?D/ˈ,Л#)VPv(f͔JDX'+"0niu۹6YJUM?<8/BaU!PufwܶZ:F>~*̔gw B(4ߵBIwĄx_ ſQ0{<ʅ$=V<=|P "tD ڢ ]Egk7@ nc qO<4t$hA} {juTp}LSǥ&.^3f"9*^ñ7Q.f kZ#͟q0Vl$`ݤP|Vn+Ǐ J&pPi2MMkJJJVs9){m@ 6w%CMf-:[3T_sj3ZHZ O焍k/ c]A#I 3鄌 qSޒV] "*Ǝ!W3n%[jRt+;3n-$ؕMkjQԧPt %*T_RBe!8dZc4`e c+uRa@K:"̬#z=)ةv\Y"/!9w)B ,)H7#y 1cY@,q9 +ys8ХE(':Վ.U Bޠ}x$ʨ<(l`=](ߗC :~L!Gfn Skc zAA7Yvy1^x{^"jB9%O֚=rQqÁ 1~S]crw)Rw Ds/)􏸨oyS¯Fcv)'hYôԶ8)%1)o 'm$/dd'2p Va(Xm2@/CṲgQE3RB:v'24;*܎,1j@Lw/]e\g16-=Fo LwS-!7H2^z3LW! p0u}&{*Y sM c=T,l42œJމyUH(>? `{S&t%˴aznIaOX0~vK6s珕G9 6 >|^Y0h@"nu#13gg<=zz+iݘ RzE|mnދ~XygWχpTR62,ݾRJi(s' ^31uC[9ҋHMQn]54-E;{/: 3%QzrHr2jZl."z.H*9rWe#E(wJ=Sy7CQîzEYDۅn@j䴞?ɊfӢ^s3փđ^I2x_\ʋf3$_M75`7#<=0L[ SzĘH?N)pC?oʹsI{r](HB3ϫ̀qO}Nɼ.s{! o˘D3s "y!yv\$mrt 3Ƞ2]` l(!f (X8P~Zh| (;Q O:N2 념E(^h1vΊvB*9Ӊ ~/ |Ofbr[sGiM;uk("էU ɞ \V ``?ըv.>Ad#$G"u{ 4k/HR̐hb؈j@?mʙiP ݙLrxEj8ȫݶƃ4mn@W!}0s@tHxa70Q-Qs6QK! t2XXDc1"L%5 2B"j¤⽊kj(옄b@?E '[̅rQFQm/P1k-']@šOxj/ZHLN9ie حy˔8,S">ENUXi.!=;l@|`z0OH ˇpj=},64ૹ<\(pPviuOAUցm\i$?EVqgj>t~ 9^^ؤ%" 9=Ƣyeب(?2YW% Ŝ (Vby$UTi7e˥ɧDɯ&p*4&-WFiJ!/զ 4i$sCF E%8d-VZn=句ΙFHh=tfv'-[/V+FTrpV@1vR Aȹk590jI3AʙI "PJeƄo.S>xé&ja㈳XNaT3>ht:AqzulaЕ5 Qr$w(}`]r(&I6<⧷r&9tpJ8iW]m )`elNPkf:ν姝F:w>5<p!vgFUc9,']r"D ☩x5,gW*x=)r,κ\}wy'$}Η[yfDv3 .a :Z::}D}TuM߇.e2Hwy@ iVІ^>?Q< ˾ѱjOA)p9r5>Nb U}-qx>e II)'6?1b\+7a'Ǘ $HF (ZA$_O3cDWu3lFz6.gA2w_YC)n <..㊉gQ@FEGj[ SϼOy!}Mfg98-PEQF#Vn;RO%qE; Gb K^KV9e{tJumZTĊ6GYf|jwj? y{]Fid} )cr_Cz~r@s`JYݳK7c5hݧOLc.Hӹ-D,M{+Pࡖ$?_v| `tc)3TkKE\Òة [!Un`O (c1T!<@c#Ckp@Wۺ}u<&̾M)CPe4^cEN|mw=^,a#Ȕ8Uӭp8}]"ƈ1v=ɘo8`Ǹ ](T!* dljeP(e=y%6Z ۳䡳P|w$Br9!%3&_ALטok =_,*XpKLRj/j{Ƒ6(Qw:.Lϲj]BsT!zĞ?uA18#&mOt=Zw\좻HF~(ҝi啦ıeqPO3l1g@`SIm]p5آ{?Ѣ7\2]V.-MM\!C"G[~'4},W$Tܝ r[ L0-!%J63\Gay.c+0/-bWd93X pK$fK`R#!q| 22ADwD)}FiGf( %jmL|xf\X]63=w&I'əӳ,gu3Ŭ{ esUi]r}* F:1bW`^_ݾJqa7غ#bg&jI:,AΡn6eyH\|oD,[2&~3 Js9xwX^< u =7=ifYhIdJh2!$ =7ު {7C,ĕugaI=ԸCfF3 E3ij?J}F'cI#K(^8Dv 8Iȸe^c& BAiM;nwy) KV&hQ C4y!Zk[k}&?*6DK#(m`>rE lLq}Bm-JkLjM.}UTX'3˯zVdal&[O=kl[B(z^,;)O;)2f'qO:IV/hqQl4:&@́#ZXV%݇X:~aKjrB+?ؐ+5ֺ@-0FU}!>MeJ1H-]@es:HkN߳(l=^%ݼ zINh(`Wihu5 LHpDpWS!~hrO ?_aIf{~A%WX?`&aIlmr~!u{lio0Vb0D%X֎{Ԝ4}!Ȼ$D\N/T.\~]JbyuL;QRClH%n bev>kʌP(vhyD9:{NokPh{{DT7*]bnL 6-[>1-;,BAúć'=+~L#֗>~YWNDX{&%{Lb[qH'8nm6`d;js\fJL|զ@n j^[?HKJ͔7@V$C,-3ciiI*t||Qʠ~d&t6%1EHQXPBuXmG͝ VJAXw<"\_GnJ][YȌi {l@.=g5>Ƹph>Ƞ~.aWlHn@J`=)j$"A^1^D˔;*jsWUrc7A]9\U}md`@_jOi>)%ij1<,R2jɝϳ7/t"(B=fuwf Ng`͖e91\q=$N o }2ꙭd~l&/%úp bMٶ bO(g%FcBp3*VIs~ἈŨs(YO4x +B=Fq[HX4gfy`tK-PaΟckgz" @p^RlW-"Rlo^ҡODŬҕϪZo#I6QwIBԥw]7>}=)i0{2LgJ}ψ;̐'H?2&y^( -VkgR)wfqQ/: {Un6@i J#!Hk*SPT̮3] J<&8t?j(eθUKGyǩ߰h&FD"w~C:g}+bFʷ_h@B6t܇J2dǶh8hOIv\7_`s1 ?2Pʡ?r o6Oi5t8meU />귞 *:cI:ڣ5 #.ow i Cq{ W'8-}A uʄHQ}| oF4v$1+MH3u5V(Kvi"C Gȹi̍د\~; k;z|l7'ih'$!$`)bDqxqG-k9n՗ˬW*|0BmBM{44 >~CR3Y-T=幡"<ʙb hE^em?eE Z)*skL t8XzY3*\]Xck "e>BD=r)*0bgCl nJ(!\㡕=YjWmϻ?&85hwmS|>HIȺղ $t՟N.ޑl5P~PY~_2-:V,Y_eGZ+J&8l0ϓ{jن,}mQ5s<ͯ1jAoXPogB~@+;TД;t(_P}C= uq2FE)FURi7 &dgi dZ+Zi=,\?pz`~L)r HKHGʙc *\nu +yí1,|xUwf9r3'3Wd CkUDj4uDȺ9MNSOM^ C6elىt ;g;]ȅ1e( B7rG5#?fB]U\v=*.^U^Ԧ3P0 #IW!^HD"ͯ3+_ȭ~ TEhePRoO ؅06̲ӸuXCy;6Mb 2ZOD|#3xNqL7R7$ 1ET^zwZSKt= B39Q M(Z&ܡ-D{P %Ż[@7r50F"Rd1 1'Zu bqkίNC%c/j~+FhϞ0^6'd'uTd͙u=GPg|4H@d| e;"WwecwRذJRO![OdǙ)31ςعQ#'~}r2Mطwح2s/X0 oV6A{EL׶t6Y>BKunz-.gڭWSC i@{V'Jznz_mrO>r$?~# >VDy8kH0KyC.~E gԯ z Q~VB8:n oiiFj]3}x gkP'diK}]J:jB$TQzV4k]!c V?PH9f򅧀ѭ@c?uUc8G!DX:w_HSw<>\>e?P{V*C("5÷[ %~u0;mtcE̓SV9UoA/H Z:tY-nLBuuji+HLe=󈹮̧u&Q,9218ͦ[U/lGnUr sl7kO[OCº(>6*ւdxFw쟁l:=CT``uJY7}o>=BD8v,ΰi/ HTxHؼz0JDOp*8J4M9kh%~sYK reQhx,uhˌy~1fxY ` )/ŋ%pCi5? 0%tT`b&_R۽L9q5b-ݱ>zSnkM f^ƞn߃ OfT40\V4FCD|#?^^E)>5O ͙mEndDt8Θ4*#ەm'--˸ш`l$NcQ1&>Wc 7<5Z䓄A>+.rd-*ڧs,%cW;Œ&$×4r-`xMWm]cjc!/:C0?0^}i 5A"ESxl?@T'>!EZ29M1ȶBFylvz65Q:S>{F~,]O.Ӏ@#_R3Zu\C1)pT}'"}NۤQMưB-a`fV4HڟVF\(7:PF̤9ipoÙň%l [UKsݫg}*d8.fhwAbEAiCGg3RH B D ɏglnΤpi=j}M)\*!~e}{11. p@cs!-*҉Ӝ$n>7tLkIpD0H?F/tFh[i)n;Y;/*m쏿3}2WQjlC]EЅv"z0s{)cżT$`;ih7_!]F.}= gKS\vpKōSxYϡ><^=P/8xJכ ĖJZ0 o/!20k-|N*~Kۣ td-`U/l_!ڢ2#Akr\wlwX-:s!e~ +{ȼK2}t?=)(etbYT>n W߷_`³v&![vzn-[Iq4yZ+\9i(,ij>o5Rtndy $Io'0҂95fK;~G;^jm)@\SOV\NЀU kn5D pX]PkhŮȊ-3Y'cɇ4Jd[-eyfY(OdtӃ+Φ֐Ԓ>kףc׃$O!uCdK0XPI>>Wh5EHxgWXFí⮰ .WՂ<+'#/ݮM˜}X ~k3뉾-gb9F&S@ %~u.--%]xzTќwͦv^gE#c"0o?8̙+.%.P,$MI{ڌj pF(AEyVjQ>ˢsih?w6>uP D!tt󞪿 J+l+8sUFAb1*,vZ bzQ &\$rMGf2OCҠP#7O{myZԑ>o7BȔS6 LP*黁J D4T;3\e*W9|0W.s3xiNY\(̪ ̯=AەoB]`ƎWz9k\|ҕ$"O*WG)BAR6 k%wcl]bs:b4z>R2Ӷ8ța,u^YȬ y6s3@ڀ Z Տ7N,Wso?FĚC%<1^{Q>TP4U/BB,HEIͯA'e`UpMC\_(ˣwg pINjAbaU 6SvQ͙":P8ؔZ}D؀2ByiQ"tbv *5P&We83W5~T/!NW_n lm-V!۱r!@ d]e@ ̛djݱ_ѤbӐ71{'v\nYoH/ͱ*9}Xx1m`IŰضPآAC oWU| ;O}$IY2`<:9sV}jҹA͢ PeTdy8;3;DюsX_6TJozfg\,H7: h\'b\*VK9(TuE9L6@5]}fHk۝_mD/n%T|i77#?!] QKng_Gㄊn,*2`Y:Sd/UȳꉏUC- /Rz6ZKip5bE Q8Y}_Ւ^ HӅry:Nj+r9[fϾfcUp06fq;IxG¿")`F)x_?ɋ*ՖcBAGa̛ի:E&%ѣQs &DM"9FSbɱȉZk.2g4-;tX@I4FWA)]F]vmˡ>z^F^l燲RO8Hݣoh: |=pH5^zXV~VÃuE? qm{#X+{h0t5=VbO<h(ЍZɾ*eKƲz`&X >pY,m>@z*J:CS^M%j05T0Anw~E[lBޱ.R߰iό-Lf~au0ɷn<\ƚ$l틌rʽO=*SZ+Iv(dG(7^0iַ}7ALΞǷ0~sD罣À(Rj®=.>8E h4Cn(b8/ Xw5p7G ȍ|8$d?@bw:(tyW8#,ؾkTkAp/GJkQ9.<FoVnV=t)=tݣɱC<5^axvP <[lA|k)2ˏDdM;V/Q,h?CȒlA&w-/ {UP{ȷᄍ cɇɶ <`>??X| F{ey=ϛfj{t;坽SCr޾ G\0SxCma$-B=H\g (+r?C\mqeonnaȥXD=z!Ά.r~uniN&iN![>TbQd.JY\(lGhTiRg )Q_ڪD/pp_KVrUڑ̫oi'lvſil^<~3&؛K ?gLj8,'7 F;K>@gFB-S镜JtXKexOĿPw 9,\A~'jPw^SwȨv ׶ Bt^v.`D:OmmB/N6Ѧm/+ | U7r*$I󇝦xPpx;8!;Xȭu\RMM @+e|c#{bc5$QTp@Np Z~ObdyDSm}BSuG'h2$xukeC LO3*8D]mu1ЭP/c9c2qAFW@-QvLJBW!vvxйQ̢#ܰ*G1St4XW^9t.bkyB~ThU 5+w[fe7}_1-k6P#ɧqe=zH0J (xq$S1=Nn~#)B<\̹z,"ڋQpWM%X8÷^5хsW>"T(k78shlSZDR5+;n**rcl!ͪŶlߘ|*L?G,iиfg_Js;LLAY"Z~vU;b Nw M2h&>7Aqa 0*{KTaZn$`tm3H}b 6X"ط:`, ~J^[(6bCKHBĻdOX ,%OqcIXG}e&`d%R$ qyf(JY;|HzPA|GRsE>aR.zF^ڡdllYM@턴KȋN`Hq;* np}|*A8syET޶9jytDɾtHӬS"Pq>z !2>'X5gzvMT2g=V8~q1"~3pRêL C%=)8ыj .ߒ'3ͥI/xkZ,b=#xe:@pC ys IJbmkt"rj ?[/#f`auʝdrw_6JɑԢbB>:0fQU}]Zn˿@րBD*mqeJD1 ʗexnK+5p3;Iv({Y]$x`M7 iTM9tl g(-L̋SOOoIVjrbW9" (I?h-(.ÄCy Ie"WhڟZ1-c@.UF燱Ĉd$^mΎ]JΡMTO> fq=|#'•(cI ׅ吚ϐBdn'd :q~a (A-9$| XBjj/?ea^D?ӧ JP*Ѵ-E \y4l)Xm.uD hm|ه zI=Qp{k3@ZK0^>o1o>n`΢Lc>eɳS 5#LύᩆKe}fIlViOđ3`$֫0r' ߲V6&+`u|g D&A//%F kbb:wXɉ[N, /^H^m7&5(sUp#ǸcӖз|?MhʵLx{Jʍø`TNgPP3!ƿwUiTf ¶A.c`/໸#v3uG0+Ҟqw!aQE"E-]ra/o5q] pv? XH!|p`bL,!- 7/rQ EIwJ2l؊T+pay#;N#ŝ4U`=g*^NAR-A=6O /`仐" &>^!#we# i)0hҟ* hj)2pX3:u6ݦ]@ bWn<( )FJ}eqw-a6jT\-^%EJTEhoJ2X,?¯r4/iMIQf->\7߹E:M$nzoRitTZ?U uni;R9r YOi4t!|8~xtl`h"0Ծ`"0C(_ (+m/ Sk;e**'HePSVvKc|q"[e Jr@К;6X-b;+ hDo&ͥk"A/xc5%n/g@0IBe4_" cZN\΋uuڝcvg@?י 6i֐SSB^C$,x'0v תߞ:+A=gNRCqGB$vG&hcֺD2Вiwb!.fl2,_jڋRZ2rЗ<s~PwEv]3O!Og{UbJdבz# _n8ΏݝOI8 1>.2K)3$'[Q6u'K|J fuMٜVK4?H= " .z!+_4Ĕc(ܦ3 %Վ# >1a^'UZUVؘt.~m? Ԧj;H sOȡޭߛ=$ۆ}ȋvNWATΘ|goXG5F>U̬|fitI2}QBm(PvyߊՁ9+*]Q5FĸlX eok E7}چLҭo<[P yع< ݵtDw;od-:13NvkX+;Ou y4Ҿ.gL쌌4y3z #4=~=egiXd{lJd׍,\ȏy1{8p[jca>A\htv,p/9-l~m σVj?Tn+wN_L?M)?;_khRI)ʻtc L8Tw!-kͦ`^|,L0Cb5/ C2:{$WR"H9 :8oΤ/4- RlEwѓЬu!d0u]zzňC&rF{>XD|7t=k+b [i$M ҙQyV M s|!PɆf* tBeh ꬤ(yh=|@(AYSRm$' Y"?gLbW^ `޻ J|8\uM›;۶G@, ؐEkKWn&n0>!<Ԗ=>&ΖۈgB Q4 c0ݙdbyjVsUK6;M;u&u!FrE9ڭ(0fk%ݍ}܆2ڀH kg~i\`Z'"?vdY) _08jd`sNP-`q REӃt;ig-Xe1+H9ՋLGV&7t2!@'+\^6&kRPl{1anޣp!ĺ.-]䠵k.`=>sT je#xKs[iwfFq2 Q%N' NڄP.OK}J_" Ra_E(ACk~RQ.CqEJҭ3!^~3μ36#A֔eҸ6I#q,LjJ:kt6 T.~r2bV{yONf` xDT_B89 ޏ\\Zx5fڊ,a2񐳡xQ|>5ZzXw%/-Ch4]8},2_U Ӈp+cZ :)(vK^[zK`L?b)71!Zƻ,sJaQë.TcLm^'C(1}Vedє}ѳ L# &aElYXCs@DNd6t[e˄DL2B )F>y~"0ˊ+g:B{ M-:/&`tl5T5}1V{*2ڌjͥ8# [klWr W7v5ۮ. ;R̋>X7Ԉi{ f )RaZ9aˆʷQerh;wnxxƘ[hƊ%ݔm~DdǡvmAj_uV%mG˜¯Rߓ0DtV%_%cC.},@)@G|E ތW~+9 =؍1 Hy!P;+ty_wpy"RU?t.a&@Y 993R]ñ0r}^fp&O^_W}5KX2}tJyrлdn<K/yV#G4a!EC *bf^ms·ϟN9XO9P5YF!rRڢ)%_VbicT20kD"ҮA%xht=E`kͣPmhl1b<5@d`ܘDM4zF*Xvĝ)Mm6Jf5"O&KB`[9Gv*E[{Ym0Jɿ{֩ePd]0>8$@gX^?sӅQɘj([uG,=,nov iH 4¡˗ ƉJ35CQ_m }MǦ5dVӷ. OZ/#,6D|=fFADl~}]= ՠKsR%͗bǂ(ZwՆݣ$~s+ J5եk(9K@0Gn<zA[3M`%RqXy>%hm\WR68}SywmإRv"bwb:IKm94Zܮ/>gHp`%fkGOl3Zs> 3T䔾 [6ϣ@4=DW]w#Xb8҇.В'3 :ZXUL;Wяg4O].,bEfMxԾhI)AjXGg~QF˘ZrNaba3ȉm}ŃT$9+@ 7@ISjGGWlFlmYc 1viQ?3d,U&zW!tk&L2ҹћxto9^$r'WꧮC&%vYmdު?\ C|ʖI޾a8$4t@w +#R*Yk ߨ\N9޹">LxڬMA3 ,ڐfC}~EfnQoҖ ^67rŷ"dV r -YdL/w8DqZTfo Һ d:s"OOIN87'yV{{´bit36ڹt +zŕК,ٺu7j> 2< t [%)](WтBX钣ɽ1~j2.5R-U b D<#Ζo&a2{ܙyS(A_3tĬ&f<,|A"%aO i,\莀DD`;YzíPòh)f!_FӖ2\Wk2<FȐ ~N^ sd x3ɳ%w>j,;ᦨZYg9OƫSo K9~F:C=RӤ"E"x+MЪ,kuh՘#H2t{mEcQ -:~z8YdrN"(fSo}?hWPo[t#&v7ԇ b/r2$JТ9\_S#jb5,y}!d,x/ɖ,G3ѥ̈́QDg#e͌}{SV]1n 1,D v{20%ӣZD"(l20R0;@.U@iItmOvS|WV`^h'szdFԯ+ j~iܾn=Α Aiў*ei<K-6N{m Fn^B[kGt'^ΚoUD#OS%oS@@ ]KJ7.xuwM,k91oiZ^M)"ݞ`vXo:;9G+uE$|7J?5:_KU" `]~kw"k"bVo4&~d$]G%Kl'j>lS>ZaS]+ߊŠk zzYMẙ=;tG jڸUZݻupآY,(/|ֻg h(X ɂo Q`/mDl{ vyd[FZ~KZ?HJkuf\Q+VaCv+gC"7IIaԃs[2vC@U&`.8;CtMtt cgQ&t/q}~F樺U!2~ZLƀ[ll)x+$ 2wS݌upGVn#iU .Ή^}Jdh ¬WOcCKïf~J>РZ 意?˥KkfOvm{w3[WNvLgqIkJp ^Kc;~/oٖλ˾g~zk ^^; cm@ $Qn[404A_>{_P,6*t}~ЁF:IK޷EWg yǍL +0e TZ.hrNrQU⚵CvpZSm>YCOÁϷϯ'R-D Fz` p{ .R9-Xcz>+"#_UKfRcsSU10<K@57)/_e*]ʮ'{dYzSos/͓Ub'+VL;Mfp9Tw .Թl[O M+Wrip7z,^ѧP)v$P p݊A,q>z+rE ޔB5^Vx$G rۍ(!byڶB L2ș-?9c"kh!aKGdqsV'ȕb<.NO 6QR^)~1'M 2>o n @dzs@".oFq$;K^;m<6EG1>`]`M4kh[$(:}j< iu(!~e;*QᵜOw a_c0r3L=Vi-<"-U)1'y[7zwYBzp-, d.*_?? ̺/u֩tbN>uzNХ/zCX\ j6g(C=>C:="r} tmq2 =qe_U~r:(9[9%s)e8s|pmPT4c{jEߏO<H|]#<|޹2Sz:Zyk#86P56 cTzT~m YSTnUf%-BdR0Tz ajj uaJ-@:x* m m++>C3QBD}g+ͱxԄ6[Q^q3rrEUOn1[@>XoeS㢁hY>b@8Fd -O/fcZ.+DuUS%3Oe+tJ&#q lwctHj7&JQ!H.iSxUtK7@׈?b$ VܹKSo\6K9X8U&-5vj) W87RyM*WĨqOiͶjy;vHrI=$nwwHa G*םZ/8*,W9qidn+z`7rՃpo|ט؜lUaZ=K eQ'=D+#Yjb_* qR SBޢrk%!7p2{eJ7&:VÐ#|, HR)wp /'έDifv S}hk)؅CSg,~fQ:+zeB3(\;qa>wUi gmsE2U"3rbb_[uTܡo/rfׁ3@tti9Qeÿc(Eա %ZfDWkyTt`xc®g.}Svn} m.BPF)rd/gr6\Ӭ=/$n>yy/,dz%!l!kfpESfX S ;%'|@& -SНA>>V3-[)O! )i|=>kM䧚ȸy`GhCq4l[nW`P{ $ˡL'ᣝI @IXT[b1Og&Ly L^x{o-Pߩt.kzG 2@ٷ ='qQ߯Q6a q~C!mG_}rkG?<}0 fEX|`j>.#SA$HŻ~o鿷8< ZRG|]$?241l-Z4}KqHҪua}Q:Zc ,c-|u0dX|b/Rhx@6wU׼n* Z RxH&0g:G6:_0k!ul:BԡȚ4r ;5>G%~Gy]:K)kh (]'EQfcN] j+ii0OSڀFbz/EU4@F-:t,Sh#c_7Hb0~{oY7߿yw m^=m=,׀]^Cڴh!엾4I,IT8u%7K;Kdִ0S)[XRa7Hvr"dNVm~!A7zyZu(E cڞ16z$8 Ӂ+_-(mӔגP3azK.-Q$e0x^N;fֳЬH'PA W*c$t٫zťAE .#V*T F *.gD*gLf 3綡ZaD@ǷsoC3ٚ avIq< ]"e{ Nuxirr'#2V׏NMT^2xEj׃?=QR`ALkQWΠ.emғ )L?E' 9E@ rZ-|_d ޥƻ8eH,JgR1¦\kRx Xן=:H v&8 ]*J09?㯪^-LO#vdL`/2`_99p, m| C!2 m3&d/UU%Q 2{I+"呤{3 ʭ<."~&ْ4mH2X(J.:$3JlS5来'obа7ur' 6G(mlվ C]``j""n I|kp/?έ+i?$9.׆J9vY7^f$۴[БKcZZIX'du Q~;2RzSjVy4_ٔ5#pR5`p@%EoQ5o{p JԜUckO҈~v^pO/7mMsC نpqHxm:]AShFuűtFG@3w7Uϻ'IZbV> ^qw/;``,YCnúFRwo/JG<`'H؜^UC.Tj&󢎡jߍghmd9Í mۨ˾^k95B`,lZ.pw]AȚ4'W?WD,]sOo"ᡅhH0gr9a&cJ4"@Q7@cO 1>r9Ob1Tڲi/а*3!%̛"*qLֳ?erPwȀPLo޼|V DTB pgTtHcm!.?+xmRs1^nDNdl/[@o"fWR4 4='%EtD9}n]UFZ6cS$UgZzJYf>;c*X`k8zΜ.f; q#!̂٦G$4imv2WߺMATe9JqYXlQk"1x<s|NJ巒4QiʰjYFW@ *V&+4+P\jd/ӬP̸=Bgs=mn 5*}d!|(d{mENx[w%)uI+=Zs!+yN2zCW^oad! ڟ^/ĴqM  ̲QoBUͳ;BmAv+C4#NNW4^Q n%긼G*]1>H5FyćA[%u[|ǐ+ H4fWR<׻5ɕr;>;AʾRO9@wjjiV߄)b(ߑ?YMyeoJXi²3Wg#Aq^ݘ>d^3P6 ˸ ]v.5J*mؖx#9 ET`>ҠkZtxu@zP%xA9u}'DtN"P[gpkq ]KE)3%!"f^R:*qՔ>P0PPI&<[}vubZǓ-YzI @|RDaQ$ܓ){$٘4c l,EeqvSƤl0'@ UYWa,2>~/X=N;}6ޒ]مVW*SE[,oHX7&v:us)H,A؀3?D?ۥ-h O In`PڟQ+ICΎbnDiP-]>=@ E:m=٨z%v@"+N'5Q_"^0k2o+h߈f`V^@ Vc8k]ClqNRҭZvYQ=/9~ w4=jl}l7A6βH;R~PihgT(&:ؓ$J 8Љ\E"MyOǁϞI3cݧ=ưN\RB,6[gP,ݖEQXjҗy37;R(vLa!T2HUD{z9uPKD~ z[JoHZn@LLH s @%G2'{m-еsJc=-?XsQ~(r%NjEvSxa_cSҁQ`o,F0`ԓ~۟\o*@TY"5^ { =d^HGޘ-U5hp V]@qVw\|Sc"w{I&&e PE UIb09+ތ/W .ׄ-]_skJ3nkU l X-o0vS z,iy{iy,Tr^i/re7{ JRӚ꠆.k ym'Y[VHL󫵜:`yʈazjfu"E+CZ mbIӳ& m vpdX1g9ʰ*d);ޥ d;^"%0NynyKYߒ[&݃UsòeMYrqh" bb%oѠ7n_niؚ[LcN4jfQm!!+ 7 ey;/v"v5cjܸ%fLq<琣LO}>-NzІ㭓@@P\o7&qƠe'U1/+vGchEC8 )\8X, ]PT%5.:cR&?60<{S.Wmi:>?;0?ܹa~m噞>SJnJ0Gyse&soFvPQ)ʥ9kc+]+ u*?E^=CчhE1wk+0I{<O~2"txW!6RTNH?ӿ2к{ +:Щ.-ߩyvlr"Z6 #z*u$T=~o'0 ph2(;k&k#3~.#(J]4r Hw@6F6i-3t~8%x-HZfCҖm{Fɪ| `&hHQ>ok+8?n&Ѻ'/GQWΪG[DR 9 +Og臍1=67#F~@k0mj}Y5*xCuDf+a P~zlFz׋myqk-?{9ѲZ$t9`,`.H"Bfe+ɳzʑHm+0@W%εȒ'Rꠛ^7C+]_G4KH{>% ֊}Rv[g(]AU!/ UhSyN})Ӽ́' Q6g$G /|,nD,[ZM,k2Y;jI85 iP:n$q6 Wr,d%[Zk㑬07nV휃c]]- Öfe0pΥ+;aOK|F fp|HRIUQ#|r#wR媙q +7j}c) io -M9] V5^<-"'oo+]\Z:JM`f4c!9 ˸U' Pl^$ -}=1α0-k%QDe;B᝕B'~f0? %)-hrMThbu¹5.G,Yz+_E곒%1=h )f*6?(QV'$t_fow] V{1۟𥂳ة94 hgIN$X~T(mtzEB+k %%L?WyzWt|YyI;ggYS(ޱWF`/ )%l6@S!2>om#"ɳ0؆R@ fRÌz %ڱIQ(pʼ24b8ġ0/&H u4ВȠk`Pjkedת, ` f7*%h(҄ qS&yCCi%Vv}ƶ맒3OO[,'F\`5'c*1]-Y5>L3nKD2Xi~B J h LLcT.Eck3|'RT͚̒^դ,;ƺpl_vi:]5b5?qRr{5BѿVYVEx?7ߐe ڄµ-MR1CaTUJ)tlLO;E^YH7.acByO r(K01 ,>g~ :Ʃ9A?jHo*s.F|K 7#Դ%pDyq0ul# H}R{`"%*VX=->Ml-u+yQV= pP)dACcK8N?Ӯ%zҸ{g| +5CR^#B l9),yZ ^Nޚ 50h10ҥ>808 x? (oh՜Sagw36Me[PR|FM|(26qUWk'FR}eD Bk \){7ÿ¾o/6/\[n#/kl}[?s $f顠D̨:ތ]KPUoeY*\{J: 䇂#*7gҩHT7RNA-{VexFn 2,nNE+bbSa7 nP;(2!6NC;OQjR3m_H% 6PItbchaO.ēBUP Ï׉FN&FWZ+ƙKUzJ©\cDId}xݤ_oկH`쮐)W ս.0x)f{v'gN-ZIv1Gﶡ +0UO -A݋O?gUJ>C/YBfZzAَK^AS E1?{KR^R<`K"Ok\ctB/'Q9}zh/k8^NŸ='O2w@1x *(aKܦa؋]ι8rT.t׈ 1~DVsus(_~hDğeYFRA{i9Ĉm/= w/pXGM ً3/ 4p'♷ߖO/iG~xv`>Be ;e3K^;,F>!^N(xȺCVw~"8a gɄ0'UO(^`'y cB\8imb]GCi{jFا|z0찪c$DwzŜxo5.,0 oҤ, O~pNI2۩_yjLsg}?> 'G:,QNeRQ7reN.ņ4<[YD⢾?~tprp^ن:C^qx83iM-`^cSOlwf:nliUskV2/Q Z-q'.]mo,Oؓ^D T]zW\r 8[;ҤP؎2 B1)msiTbE =>vd=dQDKQ=$Fq葁cK_". ѡ|ÉwM/\Bmj'/#`1jF0>qV"}B0 wuIֳ02hzOLvޜ:oX] X;0'FTjuB t~B)ǘ=*<LJa|N]{EAG0Qđly\mf]AlfKtbH9!3Ye ,^ȳЖXsB+JAw{c?H[SG^A[˞,~G@;=h[ 'w;1!6VYN5 Jpֱh's*ȭQoZhػpǛ՛&=K|-džL[h2H} Vٗs0tgP9Fe,xs5:+_I%ݻ:}WHc e:z}-BF҉4^@Y-:t<@jg1Sݴ"P9罨V;1 jH2Um_fTL )"`Q.~5Stxt;_i} QGD~(<'M/F%e*.mmEv۰X? Ko2m"q_ ~YB/b'MxԢmu7:N=CǑ:D] Aγ=wV!q/Gg7 xz0n"Ơ Pټ-cTFrpw `濬zCPzz~ =Ch_^;U]E3],*"9edU,>Hs0^:c 'vDmH1)hA~z)f#{I]LjLY 9m&Cy&% 5Uf "_Sx"q³Q΍W 2>Ooi^JOTggEW^r@ :;F95Oe go=(jo˒nUI:fjh |/k?b޾Bbq̉{;os$LoZz"^P'K]An&^_R蹛) 5m+X&z J\=WEI?OS؀㦣1t477ߗH+ܡH$Xdz9 _qp SA7Qڍ[aANxWjJL:?A+#b z=9iKh֚;Г6C=8u+tZ=3[6 N2"V )F{3*DXe$$`'(gk؄>{Ie^'rshپc J=MH1Q]%]oh^^3l1LkeQpL2<͒ꐿZBeV kLHBH-Ҡk>{8A:Xrk-a?z,7uuL/y Rf`UY~IS$VG}ͭ*kU"b؅i ?OR/sv^>pNi&Ș:My?s&i死|/R A4gYI}kjѯ edV ~K,a2R5eLEg`O\ Kv ?TXi"7 ƞ6p0D)Hf:O1ju?jIU?c'܊äM=7B#4Ot]҇!Ph$xx?Da?0p%zтS8c 8ѽ3FJm9@ـD'%3abt/xK{zӫ haOfSY Owh('I^Au8ꊺGIӳHDeBcx窸N9i6B+> 7 {EEo Q=aC-satjF,7߿2>PlϚq@Ct?`<ֿumyN[a(ū뤥t^QC}18si[sM^cϼ=o T?^uTU0ŭ`iD2Ja "g׃W USW烰`5*qlNjGdw>rhvn|[h`nacCmЯ|35ϏһAGx^ ^Б1>7&+`.(p`9%E FM8|k]}A\ 8IBb@iol(TܝB,KhoqsmR*``"%K#zmRqz4=s `cXf(lmwBуᾁ=(=j;ܩޕԪzF]|YNH 7v\,ʗcQ ? _,#5!#o9Q˳>a=_sOg)g 3 $~Yiÿv:F;܅QDj& 7jUr ,Eb>obZI j` γA_Gh1}cMܡ džf$DOF նP- Lovtъũa?C~Oj.UySpV Nۯ)kKPAui@Y8jM-1HYaٍf̤[ ꌼ{~TYeQӇLϟs?bҜ\99*'QwvJ c*@#,vVj-Ã=f j~J ކmﺈg+%,kr;PpG R'.8Hx!+x"nƖI )Utc}U`Kvtw %1FVrPCqgChD9^-KZW1ctưbI b` Oxɤ5КrVZi1t@^ prk^v--u)JLwV/##1x`2rk(殯k_lO Vc0r [$A 7#>3(MP9Ԥm 쟷,]w\.*s^ǣjU*6Fӽ( ~ÿs7 \E:cxDtmq^ G9HKґm0}^ g{_4HP`Qƕx#NXC)03_͡vqgQ)]+tBDږ)uGQuFBx|Mw9եL&4^lL5*$ 6JR\P;t*LĻeKKf+i;AO"5<&{ 8NֽbV`ǢڌIA&j-&ߕUqt73;LQQoWGxpxeTM+]V8iv&O G_{;Y"ȷ'GS"gjJw쵕ٵ1xӮӼÛYce΃/ndǓ[ogm+QVd1Q؁erx˪R?FTVqDU7Yl|m \4>&Z .$j K `u5qg4y%p!4:$GK2# tPZƬl,(kG.GG)aT_ l%9jyLX, ))LoC2;2͠|I@[G5q]jz3U-˂kl5Κ(̟r:WExej=V5pCD堞In;(C쭔D3FSldSX^ֹ(o.&jf(߰oyn! **yn|<}urRJXtoAK-pp#B ۾ީZ{P~+w}6*(s; +rC"1Zܝ:B/925. T$F(cwy2rn"Fv;S[ Z 7Xъ[P`1'oGR.3X>&\ٟ;rriN S5~EءI{؃ٮO)#R(P.2&% xxaeDŽ('Of|~@ܶ>A6qKP04'P[L:.fDxF}$ə)Nz=~rl% e"Ld\O#Bo>Lٯ1Q5ta'ּʇ)Wx(;Zr 걉*)G也=ɆV(8Nw%;MDqeGY:[vgk $v^7cz`y2DKƅڄM9+EpwZp֍#6!#0I'L24QR)]G mӪg 4\./ ;S./ . p)oPYP9- `+2f)5ȷ4-A]Kڦ܇XչVB=z@2Mdj ctbn79 ttRdmҭ'LԓUbZ|zSGܑŒӧRܺ74ҫMDKBNPR= - d|LSr3z0d_:W06&lVVس&d7 P+Vku-#VlR<82n @g gtxNO$!eHY_iݦ0k\z!@P#UAc|/?yo4*2vNm q\(H×3Թz^~5}~v ixO yFExrZڤ~}C:l>ʥ}ew %IN_ gm5(s{h}憋'3؊ZxИ!xһt6%G~$(UM] uԷ /KNT9ߒy;tf{}P̾K"&-!ݧ~yY1 YxetւHjJ)v(6("Y{׀?7Y̾v7hFFh\;S'qSJ0(tv qpt=}g`9|n_7NRJY&~}]7Y9 H|igamTd$4?3 i/ndپ$;[^Y FOt4Sy˄Q^IWTsĞh3iP|uxpXjCË/q #х{:y FZK%VX[L _VJOW[;_٣N\ir#~a~ 2+l-h?< I^W46DxX)1{*󕾽y&Tsm[2,"{ZWs 8ճWm%:Jd^j% iFc0Nc,>u! |c|FC}tbyZ- thwQ<`0Нɳ#UDJsp`!'OdPZۆ&D8L{94 V(Il83b3T9Vk&tMۢv8$V~D2Y.չ==BI{y]*QeOڱ9aQTy7Ƒ~3,NMUDiV3"NbU R.H܆W0BTW㞤_ۯMX'ZO`֮7O>K$)dhML1 Ȍ,n#,f澙A#~bqBZtRm3YA5ޘ3-2u-s0hz&,wY%jŠheq7#B 0ޞW;xZn;sI1?`^ ϯ w UtAaՀ܃Z/Q&GŁEUsz Fxdd C. 8 aHq7s5ta˩߉u=R>h9ZzEw܋y0H5NBKW1q3^Iiesz.*\l.E0׃{PjJ0>ʇ,u7w.8:*IB'Z|(Sra,տ 3̠ |[Ena;ZSWo-Q>ZkUbULi?u۰(EM7*#PKH5tz ӄ.ӚDp`; DNwx[ U+jOz ˎwJpXvz~@]ZħM,<=Ǣ6 qP"x4 \a{y񡱓CSsȮ~S} yK1n:.Yb He!0 $J}*!lVr9?tO9Ǽ:K6fㇽ]u6>~ )0^?0^8z[nM`F?`l9ߴnIEtďx̺jسL#W|'ńL> ]o$/Tn'ExJdNvc>y4Dr!O,W**qe?_j{T^e*#}#b~Yw-Yf?e| &rf#Q=\ 鳟iY4+!x>K4 A.+9BY6wUnh[>- @ðy1^h_~X-*KzCGDGVΆ { jf8g+d5J2qURB%S6>Ic:KH(.gmw1r~0/\gq%7`Gs@,/f098a/x!{e@ж։tf(+[P!뗁6XAc%/ʈDt)a,3v?X  DS\/ 3`B <]|_"IJ1L!3 /)ᥖ>#s]3uJ֕@-0;5]7I2O,g/jn!<{]0dAF5?DY}3HxVI6: AL:b\l \ifPErRԽtT) ];0&&~_2REs6 ZK 0NÚgSKΠѦ.r<&*(p jb93_K/RFVy]Ynm7έk+Av/,Icmv-S@Yy̪ ݊ I_,W\3+ HݷBߕbft@1K/vЧg0A3 xIyaHٗN i|*.ifW#d5{o~hmOsW}+ dB{^zx;y\ƒqg~}+SnMDW)bhR:jk7;D޳da:p%{**`0.GP.E%)o˸}~L)x]K.'^i SΘמVT#Ď9FxQv9ſ!&]-ўKɄͽޱ;:(DʌxQͨlw v`%(iدvBȳՈzX)M"<ӻvccc>8v* #gU&)ϯwVf/8>|!Dk=\-m먳Pp~Ce)p}A8Kek-BC@E8D~ k#aɹ;K$ȹp A3dd:2g(O\׍e'~vh7vbl/[n1vb H%tR >eO0? ~qZr2S>yx1gb$F͏݄LL(}逳t'%)% 'PpZe5߃* 5 44EqF_T| b Z)0k|!>Zz=63)8m{rJsZQvyr\I`8)5W E2el) u0v{tIIp#f9x_SP $d/HVqthH2O @,ZMAI= :-=GEN 4>AZH|m^(h3? !X.!Fյ"ʷO˺0HRd~xg|C^PaÿQ/Ιebw)O .RfkuQc|ws%K]\{0?UIE-wxi0լ hUD;c=@x56-W)HX@k@\1N=<)73JKpR(p4[-7 &8O_3z3 Ky`d8\YcS:j*Yu8{&Th/zAP[6L}>9YL|m;_FRJz|~RMޤO|_~!DxXd~bѝ7/DYۣ6H` l$n1ቧ>OlMe]⠛!&x_vс3"%;fbPhfT6hgcYDXʲb85;W< SSik?npI?K&F"q5''׶5 XkRYMFO'-SfO=?ǡ?Ye9]ɐfFG"A‘x`q"'kՆ;+_HPz;lNjLzLTp^|orΪV w+|v}z3xx$WvJLZ]z',m=W/ZwBwȅz;R|u΁솉zTd$>L jb>ڳ0W&t#"/YNBpycVx‘cR3)-(p2^8Ѝ7T`زqON#c3A{ iŔaInsQ(@#JYȍw8k0|#h=#s`zg&PL5'vto 6\V6܉&5v4!^O7 _Q.E{2pK6>* ?k/H4j=dF#60U'Z|Pn;*h CEC8@CXZo~)q b7m~.hw¸9517avM]805z sO|)do-. S DOWI]֮YV= Ω:v gyϘJԸZrl%Ey^{X} (5];$LQCQjR8Y/oR5:g]T%WUƬ7˔`P,GvNl6ƪHL臜\źY+;}Ǒ_\!EU.up8[pXF}WjLV[stU ʪUpgbCS,&[Dl8n᪻H&\2A\)|r#̰۲mR37'1jzw8J|%Avb?CAfw p qR SBh+UT{w[XGa2{NS@Dk$N="HA2+R彻,ƗDB%}Q.7ίm溇0/!EÅiEBw(TMKl'juɤh[Q^|Pe.ڋj't]q?t&e's5^HU 361$b6Ho5ۈzUW`ᬆXe0sip9HJz)Ezw\]7\A@9h,龎Ӑ\BAL!T#^)/^Xp'ی%e#%aTYw#GxҺI2h i jR/Ax0ͯg(`[C^KB!oDUr(2UvprR{쪖uNKWl3o?EB`zfðcpOȼٶرqDG?v[u}Tz!fPB8fCWx$YہnЏw$0*{XT`u?4*'ZemR:T&̌ &%PT#&EE@be澛HZzFƢҏ5G=D*E9pg Kd4IяlxVJY~<9B}I{P}B9AB#ԦD}3 4آc2 Ÿӌ&'a,1ŊG)f]nuYHl$ CVݹO[O 11>Ǿ; ]OȘgZ͘I+{1xK G G-ވV]栦eTL4qeBf1U~^Vc{Ԣ$(~J zOw9|h[ xg,HJgx%O3V"8'nH=|B`ȴ+r ʼBUe#eC([ٞf҂֜!MRjL@iRfLXchqA:-b7W[ly1˯A Xtg+6_e 4yDIb{GPYKsRAZnrsV%(y߾)"2f@z-9[, "*p7ZpJ#f>Z Vsyo&Z?~DՍGUv=2SC.Se[0 3Oc|م6Y6*_ `aJF+u:У`~]*vx tQTI]oÝ>C,R>ަQ-YoacJ7,:LmS٨ 8W#D7"|haK& "pńx@嚻X"䱛q)qz>TU(*]T~<~3 [3 @>l+fI?HU WSxR %Nw\ tMsŒ8oh1ig,4ObuZ.Lgt0D1>$6Dž 4V9̜pz \?0zRU$,2hoWV/jpS`VN, K/rTļ|16>G$TՑB4;Mj(=uyzgA߯{ S]ɶ# ᰛſ-=7Lȡ܋\OΪOO jr[-1p,>+|7`uVn 4=pD6j<}Xv2`nIh47#;U\D_٣9R4G-yMcZfa!_(Áh wؚf a"Qtt۝Jvl9^"[ŌqozrdpK͙zKA+K xwϡخڸF!g <5Z.t&{5ݻY |a k2(Y<_bOBG\(xʩ-{-ʯ\~=\lsڟY2PcƓ~Zj|hnt5mc&E7AS;Q"oQ[dZ]^q/3܌ G J'ՏWa4 uԙYU5U6XgSEc)޷OC{Z>,@<H+Ў dUoXYsvA@H3[;9]X :q]NBk_rq|?=rUP\ڕYqvY1Qҷ'.^l<"\?qu;FDO'FiU ]+ j mp/<[epʳt_.1;+#IҼQk]Z{梉\1[:@h'{v:?Ai46#gT[K(L-f0x=YQkENmgƷr@pY8!6vrK*^aD9:nG錮CNHrN=N^ 0=2V4\Pނhi#)gIe km YAHiY$h:3Co?GtZySG+, 5u[hJNAӻl}WIuj2'I ?|&jW7^gw Sn{U)7.7܅\G=.3'*1d{&~!=:;|G YGp r{%vxV/N,j NAhVi3ښ{o :hRJ- T0B%YnVאd¸ō&6>_j˪ZPbtk1@C[koK $')iX\m/:ׄӋ9>4Qk$N|\POt<0">;V3?Udx fK6g]h;P"Slf+-Y5lk@^ PCkia07:6t8͐Y+q_>tэb#h*fՊbEPgs?ZCs9"?LD&ВE`q1)*FP3v٥'Ds3E%οVmG p! P\`rM^gq4n)_Fs(۳ޞC2Z܀ǃ3{eUw˭}g3qҝX\R;&Y7iˊ`Gzɰm ozJO{ׇ+["g8&1P?6F[J=R$!{wfvG$+ z>OܶBnHkmENpN 7>Zusoo ֨?^Ӥ ;'m>,d "Hsjպ(͂?#^jDׂ? Oz=b<kaв 6YҩD#"gow_ڂ;fmS%6agE* Jd rɯ\[E=0 C+Y5U+z}U`sKJ1רOW=G#ځ]6;hv+dX3BFH&$ 8jZ`ty"w8|;pՠnRpLu_};ܠC)7P>-Lk q(g,( N.s^/!3!lc{wɉ|7vY_]3{1y童m0?0[WwiWb \չCϜ= H ;F~r s$nVVLB։rnA.UJWjgfvn~'7z:$mWKg Χ&8{lrgcp6Z k/|A1Md7{y#"9c3#@B֗ZTUrJXӧH;wqX\cdL/>L&#`ŋ褭U)^o?1$1l#CIhϹaOHj n#?3LNeȖ(;qdn0V ۠tF:eZ)h:VD+ 2]ȸ#qTgΰ=K7yԙ3$X SsfPkg}Ǿ2aaxT1raIw rw8%0t=]w|.%)!s9y4"sSLCg pLݓ$Ch+/亹";75]& ;ī "g0BbPo*=e=1sګ}ixEU,\Syc̮Y0sKtC~Sjע/ܪaLuX7s=[XC:k^T9_YGH ͯe pF~1j>DtCK*>h,CySo.Aܝp(~/x)eu:Gn23k I59?$q`/~䚤a(EC~-\ 1ZЅ$}ާ5VKԆ4[ngM^m(W.YH1ybeaSGj$ I&لCƂǤ~ΥݴʴNR&ӥHջ .BGϡ \!gu5x}vS-bDϛOp)td7ax$uf=!{(^vKk@R̮ Tm٦, \;QB EaqXryUPϽbB-s{ #hןȨ}Wf膴H7'Co} ))5-gꇸdj9/Jx^l)зGA D.BN'̝=d⼲VuGᏊPkrɃޗI57ժIʆ+NRRLaTiK?AωHy k eG lG.]_;} xflȡ\ xS_3 +%]aw:Gfi[#jpw6q%%U][IDq*OE7)J f/j#!gtx 8+ıv"=, L!T ~čSF%z<ZD{P ~Z,3 eCC7q!ePl]>mbsf:Ż7]K%j,\Jp'Hmn}'剝uK('R_luB􊑮AmOU+9LEV$@ 0\dgb0!uoeuF6yTȅCG}>dN !/NIEy2ǽm 5>=[片w۱:PTJ_:µcsfLPXC.mxS)Ѥ[3 2#-EW)OS bh-!~~ *o no^V=C$g̎af'}h;oHOi'zES[6hHl&EͧD삇ffoUj+]Li3!JnNo.0ׇDT>[, @=֑Nwm)EM SEfζs]^lJঈQ|2f ^i)0G\%@?v@CЛq~&>x10JΗ[{p|h %iA $ŮJY$2EO]M]mG}DCq- Ʌ}\[+tl50='G!w`f߃tTKV3{-@m\6#W'-[!ij;yPH\\K DHi"!b40r2 [u} ^;݈~vSk\.-P'Ͻerj  ˳6O[*>^fz) j'EDb@"_kղAy y, T F;Ze8tAJ/P{3i)}b"^K{-'z_ݒuۤܓ|Hz6CxsqU.*uVV"Y7O|#Iza_%,_çH/@hkzk1ӉL'`<<S,D su~*@wyˢc+JIJ@PvIh5;0͡ǖb~]hf7*]=0)gDHsP>Cz4`;_c)uIo-;-x#EʼnCB&yt w|a@n * zj +Yv"6pv?{w/YlfWs/;?QX$2}.vLVMҠz,!᪫if hm ɾ}Q\L DMGgATUE2j5&u6`R*C3qF0{o[,]#쇾*iPag Z(Z[J2=t~$]4VG ` $b!, =}h~nd͉6i_©jɨNLYJnX%8mZ?rY3vR- FY zM鏑O#)<}ZQuj\@\ͥ k)8e0TUЯkϦ%cgtA:b̯n&p6&o$SCӊ%]$+'&n"bJ7ԩA7L{F5N"F񹟾⎿DXב>tUtj{lObJ\7bCPr+?9'eRœj`b,6M 8/q.B3ܽ̀ol}pPkd2KdF[O`5<ݏ2| zÆmI 1\Y6I05_sUM#6?£i\hbd>lVT "pZtdθ:Q8df^CS%Co ǯ*.N@(T}=, O~fU ū;/;"_Qeli%2ppMʴ~o}C7vA%>7g +7ߺ5D _GK~*cI8H1ت2qy!` En^^mW%ޅ>5 bS~KoWo{Ҍy؞-To55 uiVJdz2E!/l]pY[nh< 3*w`_%uuz)8SsJkK$<_x>9JⲲ6/44:} 6DoP$jI2r!K1[mē7,%*&Oq)n>,^[ (wc^d'Lt;6dWW- ]Sm<#!]U!m j9"g{Y;;5ٕt.笞Isj:X9hGDЋJ̥-=(jl{L`}Zl+[9rgTKQ:[9vy&߿B/!; t'Y"|Ӽ@ެNҧHNP/l9DGS~/Zk0z*K_ޑErs|ZރW^n`tB&* 1~\doOc﵇1(o>cdgd"# D ڍϪՏ*)pOB̛bn)>vVW f|[߹󏜤5ԅT m0xVQX07$TD9ATSݲeE+)_^Q0xS9`EпAsNϰD<];a_#0IQU@w-a]h KJp@ZAMhZXXU%ǁ w/hXOCz}Ll)47w -jtqQs0Jkrr&Qo1˅yY2nH1~k;nKɆ깲,5FƬ֚ZQopL%+xRn8!6KiN`!I<"VG"A@{352"MۭWY :U.1JI>2[Qנ.cS-ZtXF9)簬`>^ϔ-}fRrf8[d FŌxFIML>UcoNٮQo ݭO7ټU33FF"puߑdph?ÂC/4GGU!֥C?# .RjH3Rv|Sǧdyre-||˕phkmV[9=V7Ӛ 00dA .u7$Mk5rVN˜̵WWʭ}jgܗKяTbސ +&[ۘv63$$3]R^0_N*76KB X¿PKh%HR28;nA.鼈O㖞+`2MG&GںN@UdC:,73@M̖:R B |Ke +mkTՄKv i {©ۅ {UY5l#S .ߕ1σLkԀx$kYk}` 7~/|zzGHdBl6oKeb~u޹kTP=يA4E$~,bIk`, zoxUU~ ڥ\W]>h&襥T9W1gm\"Ly/1GuO`xX`PN=4syx97/@f `5h?/_m^Q>m yW-KzC6BQ8^uaQ!l@n*`w c3^lc֌ޟ'+K)bjc|݆sUCGMT>6mG)~V]F%Kn9kAg׍? I/So8a dqBA8HWM H |5weW_ 1/&=O 7<\?$P»# =.>J.wp k;Mj+N%oiuO?rп&\'C]쩊ȭu3,'wԘtZۙj(pY am{MAg q̲GuHTλq{ [vlrQ8\1 v}=ŌDW.F,}~Ym.' /*u(Q;ˠv֧ Lp;Siķ1vc _F[AuC=N^JSm4Pw[{%> #,S0-z wJ \vk]u Z&5u e.l<⛍~5뇊~m AM!L|[F#EVqfTYZV/Rќ2Zݑk45AA0=۾ldvνz z{}3H2bBiشf]Ĕ"49l> $ 4EKZa2\6xn=Ζ o,`o/z-2G?QNok7qȒv/fuI:X$"Na/ЎCIX-47SaڞW&y@d}C=a9Ya9|jOƸDf<>&'9ZVc+4Bm(CdBiRZ~zz-p3ȩG93$y8$!ZH0 aH;~gYۍ!Vsfs ފ<0ϯ" 0x.|7IS23.GԐw[.kqNR/EIo:Kd Q7F~ʻcݟyV&a{iٹPC~U  Uvt⒲+ᾋ~ٝDSK]Ixоv'6—٩6@wǷַ4W\gZ)V)o3$]+cFE(XvwGbyn.k=#=|56x P`Va.^"/]NpV@M1qqY/I]ZAhlALU־z} @9{u͔d>4_­<0I8(OpHg{ݔLyڡލ3B[kI<'،Zu\ 685'?Zm]oQc2`oys+ԍWKspv|GHrMe}Z NĤmt&{_8`"Z=D%UI1Jat9r %>.rfUdS߭{.RYzߞ0Al%\bE`^v`mecGkd֎_ j%Dy/Z(`E| o;/%G0~Oyi3G)6ߜON8-_k uя.𺐵b _YHjR&j ѕ툰H8c7m=^c="P9ރ߳þ[*CqϽ*&PB*?\j wc",bm\9i~1g< 4tpn\dڙ s0$ " xH5ʹl7Umq> K[bPsckPӲ"ZU̬Ͳ#3ӱJcW@2 &c`~Dc=J8![+ԭ(ygJsĚ}$@f%T~u3{ }ۚ_h`o=ș_UcyfƯ4<7XqIb? 6B**(;V~!ʧDF*)}Hioe{#CM;:ks&/J{'\ AöM]ey+(W=Zj=ZXjx9p2@cq}62H[O+G& Bј쟓h'8 [7O寑syLq$h60T ƪ JݫӺ`e0߿jtG]DG|OWFx74ۇj{S0:.' !AGk iұ+XNqL:$_&%8"f!t f=&٦<u_~Rr;)llg&*(dVgnf\R}{)U%Ɨ[Pc!Lݑ-#-]B7k,\(Ygw1UFLLN3m hbྔ^DB' P s ]ny`иy%Wp%'+ fIZ ̾ڪgE!jYꨍ&!nֽ˅\$ r]C8їh'EQ| _] [7@1 ,O?Lj8<4ϻw]r,z{c6G0峂!$,Sp1cR IHp|9Y3/j~InO,lʃlEz:-gAfUd{0#lꖚa2IEn:C6 lNK]K4RCZt%3W4"T6q3;s$zf!HzHb:8 1ւK3>4&—Ғ4=0O?ˎ˃ ?B;~ `' k$mB)_*;ޡހ13\_ >2,sh2RpD( &"c" жn}m >l;Zߓyk %Nhuhgΰ.ӌ@dঠZCxq誟'O&9^xѳ~P%6y'5+3db5w6;zZ1SaS,r6C 26e4'F|U@ES|a<5bQGR@+{Y*㇔u,/oR '+* Psեc'./CDՉ2} UWvHJ1IU~ &} 6 4R[3bV O?R?QEA iW& Q:AtjQ-tcpTte_,[9̦c3buzc࿜Ajn?8lQ4 `P36S._~.|GC4e=N"A$KwK%(WR@"`֕V@HgK 4U:w<o#]Mcg4Y?CiH2-ve[rxDݙJ"GγA5LthfJ1!~Ly^ y_4D_Rz]=P &۞剈p[֮xV*/;J nFd ЄZ5_ 10LS&5.t?'0{(!ZђJxE'f!/X4ndNAe@~`Y}Jy[Xx(qt#b*7ssE4XrsSpؑh-rUMt2V0')VDV1Nݴ#?;KK&w"k@Dڣte3\_7Bm֤6R&|*p jyّR :[*G`ޔ@> -Iq O:Vapyo k~* b@qx^̩Gق;%1h ;P1<֊JK7ͳ୦ErDtڷ6?mީ<95f:A/!%AΑZTLM ׺~'YY!{Hl )ٶ[Cis󆿄fUM2[9vA+9[pS,O~BO(j85nXAIOyk / H q!nHtqOÈi) X *@(BQdn }ݭG ?X,YH{hmʥ}f^@Z3CT3V^yK**U I~]+5ly Kqxxm7_hJGs3R]2ޖ4z ̎Vc!knܶE훜^ܪtvZuHR .jz.fnUܯ!%Fq㡝C/RG% NCYXJ$!ڱNz?Rޕ)x/ON)=T85k?^,-[8YƛGzrC%fмբkfx[Ǽ|tἎv/sJ_ ?[ũP[oUq" vc΀+/u4 դpʇ:m)S50etqgq68R@V?–3Yx `FTj($/Ą=)Ug#'#(D-$nBC*(& '{ k6ٕs(oZSRNbR8q4trTwRa^3/àyH(HL<Ԝ3ߥEtˢ<ê6)|F`b"}l.d|XrQ6>N\L >F38rB}1Hp^Jb"aK]ݍֳ–,,ϧh5v~x@Ⱥdhе !_Lju#M|%H5іh 'K/Bw`W7--\:A0M3v B ^Ԙ"KD.82e,6J Ȥ%, c|S9~s&$,7`/&PxTrPF7ٽt`)J Yl gѝ^<Ӡ꧔gu/8/LU7W$c 6-(}a09늲7*O0IºK+mSǏŒe+v 핃+} *PɸT8Vݑ}n#Cc8-&}||`@,f:)AZI$(ax?ִp~1 l/Sem(rB/WB } 7U G j\z995ޯNΖM-X_f3Þ]Ge)*W?-A.=>eH? iMXy-ld;HKf]=D)YJ Rj~q'Ψ 1'D>j' k>XpR`4W=( ByEv.˩7-l.dB\wNf#!Q߉8w$'ZK^OжW{l2S2 >!4L=ڨ_I"ʍ2AF s Blz<7  Rj\}wʚbR_Sa!chxTD&\,CƩ}]Nf3Zli'D.]'鷔$m@4/\Yzei"0B/%'ׁ+%imV Ve|f&2 ɭ9:&90 Ɍ %W IiTՐsn%О IT\xfV~x>p k1Z-n+ A<9ŤL7D[eVRWr}x8Sr/mkh=z2I{[HTaA17@7hlmwx瀟䆉ᤧ-*xQ@|:Nb4n_ f@B&վ}DEOFKj`ZjÐE`DLR%]͜4/^٬LCL2:G 5DJCbi^}xI/!Z?w5-OKp'YP- 1ݯ"15Tvz黼;L(qdڏ́ۂ̿m2{` %ҸXtp֖ɚ呶y.+riP<{`ijƊ3W~Gu8+>W;~ \?FXMƈq|۸ wy@s9w0a`P:`gcrdj5ie pyn7bT\Q[ycg1U:1k߻u:]'/X[x">:fJߕ!B6e,4R|zpWϫ[ȗgՅ0-KN8㺅CSkYƘܑ⇍w#CysYJ`̳5G3m5y>O1#ݮK>4sXpٌtJX\r gb>VN[CJݒuklYFjb^K`HqG[\k{"y A73feGكn=%?XrNqpBf[GWzj.ĐR}^GD.BF#-mrof0\H!N!^2="M%T㟛Us]Y:Ӿ?R)m&3%/IT>C56 e'LW< "8mIt6YJKczsy 3 h|Da#Q6zus.<[´H2{fs0/#eHU[5d\4yQ<"6=#)eʰ2[kʅBo9J@ 'y 2'%GlǴ#GD7mo$tLJţ5I"aƃ]>kjMQW#wf'.{i]Q> UcyZn4b;(=jn) ey/dJ1lf ;jwڛ)I4Bb#ɿ`H|eeys)~ٌKv jXZQvV>f~I b]JcM> ʺ%WvJ; R?6Mi qAҤ1u,m҅9Tkd@8]3h:?D:˪,*APo[b#"2ɿNc x.E BSTr_,L<ˌz\?Ƽpt(VM﨣'o]O]0J>Ydl8)>5.׵HnbPa X{gk%m^󫨷Ao"@&HuZFpk:EH~}){Rg@Rt}NQtlYЮH0T.8.j;A?cF*%HGҤT5زj%},}G+gbg}FOc`lU*!񭸓{ |UFJ$hUG\0 o΢ۯ3_!03,ֵB(B ;ehbeֹ®%~ t! 6UVrx7rBRtF - <~7gmYn/;.mVBΔႽ _OuF,>ߩ]ܗ|H58Fx ?{ۘ%FDE޳.,O\ b@ k5#jk4PoF40=ƌe@nQ{73M^A+iCc\2q` -&[FhND Ʃ5\hX&zTdu==411=HLCgL&m3ICK'-[r&UXޠ4c쵺tI4U;y*ȭUui8+3j|9քFŕNfe X!D.WSmU6=* {X"ezVwM=ٷxmCj_oJ/ۆͽ'7<!Qyd3 9`'#,ǒP5Z[ָ;HElJ?gK%H!-=gKIݽZVGML= ZA*on;oSʒS7<,X\l5K=6v4]!qpO BH8ځ!Y63&xr2)|K \w_ BŪZm%'ݔ>y ʠ=XnSPi7Z>S=NW RIg A3Kk4Fb`,dmMښ9uI3 W"C BZp𭃩-za QemM} +>{@S,R8N5PaNP{[?̓˨*O/L8U)[nFԭ /Ǎ"} F\i+!qBhIw[͎^<ÑQ똯'it1i?>@[A@ N|_cL02$xÙW-(C]7P)&T2T~q㱑YɊɈSA sFdoGcKa|;?Keu:?ֽ Z 3%:+ߌDɼVBԚq i .7;riAJ*)>H^)zm3V"Ra XG *l=׃T>i[j Upƹ-9?RljkсK#?{3_Ԋ"C+d!XT&^ PG8;fk&3 `Yrq!|^͆V RԸSNµwtf?&aH^pr<8K[lSH-'X *[@c7S &J@5Ô@i$(-PId҂?|ѩݖEGsr3WemDM>/Ci]o^K@l<*=9/҄>j"Bn'* YJIdCT\>5*̟BI[vbޫH !șӿj$ a%j+5~\-OQp;|Ëk6$<oH}ߖq팛}Dk5Y˨0B-%[B|3&vf;ǵVAJܫ_?F~(VIgw4/Ndf#˰ Aej|yf*B{+iN ߣ54i7$TYq ,d4qhO>\}X1>SV*^cI/]$6@A6bS%-|^;0@r5 HR+-ap6g!ng ^n@[Bb#WQZֱwV4]mnb o/2o$!UnD\+`fh9h]cgKϷue-vbe!BNjf*wܩ]K@4!`~ uP1*0Z?b bWd]od':p `"h8&o n܂$zu?Wke5xd瘼*x.6bM!wQeQU898S 4Հ`_mbOWa͚{]I?J^ n;Zv]P}o6K+Q7pɀާHh6Pbk&1 uQmrq.g„:'Ocrc>) Qϝ F4hB=:P^/n&rb">X=Cܡe*a3!AZ5@e7VIBnQ_L߸{bI|J0\Ficv54hm?1g |4 ¸G&옹; "` +гKPM7pDtU-b3'O3sJQ0y׈9^t{}uȢģ(N$Rlx5"lBY F9B$5bLkgCħu -1K,a 6d\@͙; L&D>\Ip|wLMu 7HхNUj ? 6[3n\ƿuL _@ZPiEA~_i-Rv[>o9,(o=rW/, ~bA! a)p8>=3"L"7##@a"4-4E j.J 9X Y(w,YdlScӗ[ 4qI`A;1YL0A%Y5w+Ibnm*aFw#k:]:5[v}nvEOF뿾3Z-B{3/c,}$Mb<&!\s=G Pc5a~-;} 2W}Iim  iz6\Z4X83aüt;=h2G!yQzAɦUl!?ơ^RXLaEFY~/I#h7 a߁ہge+ka=ƹ$>W٢$r[%uzƓKқ!Њ3Pu6cKq.ZUh l}gc]ݡ%Z#q1;@pI`7Nc"۷7<ʪ kü晻8%D|'5!Qb #SZ_?PO`(0ͰQԜzYv5_fެ|lG L"hSIy1a:(Inb ݾ$d Y&ahq=G>)!$%^y w Ya.\q5F דeV?kw(:Z4Q9"P>є0V;5)bW:y9]rCFC+ 3;r'IuAGLJJ"׍@[$꽟SL:2WP^oR3ӛ6HM'fSroRf'HBڞ@91Eg7-ӫ)AݳY>^ Yy{f .ldRݷ%_]d$ia0xv,m5цm<3pI;ǣK:J@I:}JM*Og^Cw2?FԧPDA){h 'nɡpP4ytK@; 9(#ʗwVnĕи{Li`F | dP:"Еdrr,^sx+G/* 4I$㾂b?.GXVLޱ.WngfZ $HeK~^VnO?ש][Co-xݬ%zr'<安׵+@Vn8װ]@չqOFFf|}&9y=O$^ =͓q^” Ih;nuzr^9j xs&j7jML .p;(T9Z+DZ6-4 MJM^-9q@.B1+姟 9݋yRb rj +aη|W]0Yb:Kg\)bzʮG a7`E V Ugf1d2lo :zc~;q6^j/zl5L<Ȋ*$O&92-]~R"N !Q $ BxE4z03G}떕=}y\+.ZVI+3?o{N)CT1=&lMT&Ŝx튦=xЊ'9(wgn`.*|S͝31m]I԰f hr?pY=ΉB`N8$:&?@COKA2D69]PA/}_y;<3 d%^&Tf[ٕ1]H*dK(DV׀$ѡd'gN<%9f%KsGLOϢ㨔Yy C$q4RcHv .ɷyHPdN"'a : :'hҗu:Iͼ-4e} STDy1&)i( > 7kZ׺ s)F7d'[NV,|`|uuQ9rXmw }^LMT♞[.n舨+haL|xr c9m۵ -ʹlRN}J ݃3yNjS6!q\bcNݪ5Ja`Ng`ߟ.mK3-lCH+0fnanɈuH3z1`l=R_ޗe|H.J| lM/=*t SVwzMFlXl]&D{ kIأ~'|#;%?=캡:!wP{;VT\4k0|5ApS8͓3򃇔C'}0zC|zˎh8S #YsCyz}p`׳j8,ݿ9Feabm ȼ@@Te%Sȡ2f/.vt%faiD&?e1[ztKqL4+brLPrܒާej>z,LF} nqj_* hf1[AYZ,rg'WJӂa,@ Gԩ%Ҏ!XĕU5o"wr?#=(Xᙹ aKhn!X `bxXf}w@$ml`r}vf W8ƐBC2p o e\ɰqW7y{>18sFBb H:ž4,^T-¹$#`}r"_)aGfN̢ 3OwX7E9k ~cb%䉫B 38-dPHyuK S$ȭU:"U 5o+o Qv [oKIF*33}λ'Qsfvkm·ikOD)fQe۰ɮeTU4vHtغMMh2Q0Zz{VΘTR cwaQ^*DzslSfKj<}5\_DG^%Xc 5L [lt@DD³/.Io &^A#h;<_H*ZRq74~9U~4=RiZ&dUhM#o't[hwSBWM_QPר-Om( O#! Ɩ4?y(!\Bܦ w0n> d߱|&"4.1׉t&})Qa y)'A@֩|w{j#])3!y$DHuޅv{ }<ˠ:'^ ÌWCL`44Xӟ>K,`OP-?ԒLCdj/d`3Cǒ`;ASu"` TPBB' Yp{lH{fr4e~]$>/Xi(7.0. 59*Z,i c&~ݭn9q?N}J։ f`r-O3sO65y:t>ȇ$ϹbK{e[?)aI.-.^.9;vݣ6=10\z% a ,/ύ?\}\ݧxYFBd DբOK"_"Cڏ:i}nbc ;FƦ$B'p_Lr BkzdTnbio 6$r쑗z&|YϗF/%L0w7y {Npj`t5VWr_o*KT >-hP,|qo\ X=*3ؒز#}&X}ʉFG~|{إPN?x`:$0OUYN=BpLSaᫎ5%b5Jycx &?9Xu g> !/TGf{p/l-o gvF&!^bb4j .?D`!koF~_ xM(D{5yȷ?_%گ5kpP\%eN[Xy:e/r#>q*AQlY:%pKnr%lh!$#Tl7soߓ{ێ97-J7/}^ۛBUI=9Oϫ~G#_PD9^%usW>a/`89kzEF6쀣 Qe#<0]QH,xM>/HY*;^ !-ǒ)|2o  4M\XFWeckmoOjB/dzCD>u&@T SxMdgzs2X}ThXoqꬺ¾5cjkx)'ݐ?) \~J:"? .5Bg'2*6撂mm頹.Kk}Єm~EJ}TjA^yNR 0KZ[ iv" 蔳[oƒɻzNˉbI^ R73/_tF*k@u4iv#pjw]B,?S, a]ew8#Vx`;W4q+|W[WN>;NB6C5Jz)EJkw |Оg)o4iZ~ Ĝe>%+YC1'6ЄsI_4mS,tȮ~nU20%$ W`m4gyz_p9dQi2 \/\z-hIQT`E5i%U)vxkIЧRYNpC.' ̻⫯6&#l+C[.V@fk=|]w ;t\oW-HFb 1A 7Á6"{$5AѴg"yxUP5L!53×h5f0r[ڠ~k:i8xzDN mDwЕ{sC!oFy"ϤG\M1sA;o--3UimF}_M:oL譯0Y '75%T.ܦL/PȀ0eHg$ 0߫a{-2wjɅicҙ { V}x`Cu72kX/ 8#Ż́ƴ,I\'$O̍oXE<^P2^;^Tf!ǒqjAc4GF-^*|.XV>,wR<^5DeHB@ͯB_ z>Ɂ.^n1Q>qJ-9VڴW߲u s"#,ŸE|UR h&eN9hVH  /B-$O%純D(r92YR?=ǭ2*QJˇ7Ƚh` `T5L5X. Aq6o%h}Ѹk %-IXA)6Q*,T<8<gsQA5_!FCfP@)Iš*tw6<5'E3?q,1+h-)5`T[T{JKAʻ2Bo % \^LXgԖh*6k 9NNѵfw5c;-k"ER: !2{5u|AWA ;t2Z;5i,Գ¢oL.gs bՈn~y@_;ѩ_S05 ><1==UhV[A B yk!6ЦX4 nFR/p Y _JD?h*Ez1t"8/uɎ]CBa"+rab6:-ZOA{LQX0RczJvM+öhs}٪*Լ #1?1K#UMȾt'os3rve;D͠mʖ%!}'X#;.q!AQT*t o{ Q|B{ՙp.y>KU0K|gxn c0bUE(R,ɵ,mvRb s9xĆHt랃Iy<(|l,Mn@6}K X RgM_-ʋj\;m.- tNQ +\Toõq rV3Рw3%dj7f߄o_#x0bUn! ,#YVT{&[הSBG6${C "{=X=|p:] ]L~.V_85BpPPהz!QHWcauTRE08O,Зָ֥קgvRKBZ.8R\!bzرx3M79`>1e:>jtv/ *poԲE\mV8գ(GN+kVdk8-f[H{VL6f9cM'mvYM< ήSW:4_?D6 'vÓnܒvbļ!z^ҝZj`@nS;2Eq>RQZSu]XܔK>dn:--&0AFK:  9uDLzcAFJ6!/g+q.,N? n.k1bǣ{\`IJN`Kǒ&e ?9cV)u$J[N#7B$+EA#?{yI,WDD]o˒9=<(vquuqeHY좋{$q$dbkùxysڦEɓГE`q6uyD7@bՒSZ޵3^Εz3uR CDQs"dQ8kHX!FJFSp=TVT ".\{ۍj?m/"/TńdW Bx5kԶ<$GBmVc <~˷ rK+ϡ]A؛}43{aepѺcɧHOEdnx+e^ fè2^zX|k~ ;zzdIyb; zy-u 0Imؐ37lH2,ˊrڑ;MxD")j21T4٣}-GY<\ZQ"}+&*DoJRՋt!ҟ. b%+ L ՟dK|bݩ$\`φa!!jٮV2o8{h1[>֟YN}?h e)Kr/ͽфO#UdYQyԈ "*et.eƒ8RF¿$X,[밐gֱ yYtF Jzw#@0uyX;5-{G07CoZM  &rw^Ed[(eƺq'hdo;|&݌FuѹFa_.$WrgS+˓l>Xw$OTi}"<cԍ^@gc෪ZtP6>-„R=Z9O$fzʿ ΎT2$2nw >W5Y`y]DuLio'a_y`a >K-*2=8T}c9(`vR;^jE ?Jf,Џ sYJmXۦbW9 prDً_nBT\%>iG&dlp`gn <&v%xr.By)Lcey{kv2[D|UteΝ4B.hMa\sik ŝ/v_K @c14k tAK"Sw2`k$Lz*Yx|.S& n}ꈦ<]ň~D2rPM‚kܤjv 1X>hXpLoF T-w{iꁔ1f1 ob'vjL.j-q*JFk sx:&lW2u%ܬ 5}/qh뇣i xOSuƀmRUË 9ЛWG6%H;yxEOYS-w* jӺT nmtq{e~r5A$59`l37Oq) lD`쫣^[!\S`Po2:_h4zBvu3C AR^K̈́l|.zQӒA(L|Jh§ΕURs-]D,:f諾ҔTTÕ48Sޓg,0m%g'j&ȍ, ,=sw7l^,VK pk0UYxjv oo%61ӗDtpvܞbi7d3A#|(J(`rg=.HZ2On 5윻 on/Hf_jB/y*͇) 'nmЫ(*xMq3l-7Ԍb5Af2\xBF1F#TBsV >9[fzWnt $דk~8#f%*GMiݝӞӲ(!%` }l`^0i|z& ]<,w N$y+^7WZ$"\A >ۙQyjjmgNkI>LEw>[|KD!—d]{^EF pqyHB" *}/4cB 1,fr^`H6mqݓXY?&V-HHpd\.#|R}%:'[Y:2^E' lha;Lew_FfEOZ.y8{# ؜]֥33Vm6$T6d1f c+DrKqs!iJ֑5 ҆/[PyTI V%:$pq ,sF'֦e5mj&WaAj֞tz$dOC̵i'6rԑ)@Lb :'io^W&*||ۑW[M(ۖ&mats@ϪRuZqb"6<]0N*Җ( ۜN3^f;LbaNq~.uh|X)DBi,#:F)a+T:$ӨF cbLefgV/|Ex$V\β.v%:(翶AHwIZnqz c ^A"?0Hxӝ#mH({ SM~dîw<6 & m8 nR :PcEYt.\֐hx-lh&908BD+5|U`J, 2xz!tM[8S/,&0O7"=>5GyT `Ia*=N':(jh*٥M[3Ak_@Q!4tDG$iX3hScc} |8VS%}'Ob2)Xn2)&gK#՜ ^ nei{LFԜ q51:Bϒ<<_{%I|ځ^{\wɵ֣y𯁅2jYU׳K_@5K82 [Je=?MaeC&9Yy{PO;o<,}(qU xm8Dx'U@i>)t/!RW` ^mqU| 7ȏ-s-U"V C볬Xun7vRt։kx#fD更\A5߸54qp`*َep_O@n0k~ vSqF/7|3CW«YIo媃~T Qhx_u#,P'~6 Joݠ+|A3< X|A.O&ad/iuk˺ :|{PKTL߯J?v[6IsPo;K28}K =w$}u{XϝfonhoّaȅHwx6^X, d[~Sؕ}Q$7*lH1[]{pIP tB~E:zN3Mÿz3\1,@Eqk@ [bp1[1\i!,y2%on]}k8J,!_e"bW84 n^`DIlJvEqˍ5n w1Hx掾ø uбhNS%* r扃D񭑫n*$BcPO:@|nƳMq-驪4 |z뜒G>A=B3&MAʞ(QZ&TzoZ;ƨcсw!xa;-˦A8.i3śȟi!Qbj!TtII~ n643k=҈ŸMyȔZ_s)v'+oܤE .w+T]2:Y}8DU"藉BH_ FR|n3 pH7nuFL+_LqlΒ@Ftua$z麒 7oS6p .&W}loȫfΪ [K9W#[D0uG4V '&BӹĖH勤*#g*{;Ѱ{Gtwg&5/ )ߺo_iT;ahrBvJ,"Zgު=]<4(SAׄO\XV1'&!?I31V$dPE}P90$}=ZjMlX%x:vZ˓.cYU$R {H;_sp(>/~Ϸc6OSD &?K%Z|x,VKdʵ>˸ׅq%v02#Xiꆪ )`[xO2gHT[bd?D^z3ؑ{%6uTY 8PG;rMRNBӍy: B؝]Yx:DI.M˶XM& 4HR'"! V"QM,}FkXHK`葉&@& hTlݽxlL=,A]PQ *i@&eHX}3mwг'Ȫ,z/=i9p/7ҥw4# uRzgO{o^{=~ZdZWȕR旌>YҤ'ٸw p>%|u}FU`ޒ"ZO'.8l;fdPn*G@jص, h1Qf Q?Ka!7xƂ_\/ O"X@S@NI0?7C4Ƴ`Hki' xHP!o wy]!JT-i\˶R>7S﨓K|˧HFK}21g]I:M),ڱ@ |P"`'P[< E'ՐlӱtZuO=`B4ZΞ4yQkXsbn7n)FMkgrHx#=1Cӆ5bPZU^fJ f*2:˙0,^W%iS >;5z1Jc2?(">}FZBVwH\#bd20i/o7Pdԩ1=>>~ <lji..4篠hD`b‰g{,ږ{s+b2+/+Y(GG.Dߎq.&;$]3EoUƳD0:4t-!K :kwbưk1=>t"O&/'|k.t㰤>yZy$5Rmɍ z^iL_\Mچ{ T[zAPqTկ\?f ? 23Jv+j=UM@;rV6#6?;$i79RΞSrM>\]4RQʺ(}E~1l(epe@Ke>6+3Dr!)e\%3a4cw {vmVu/PZEcNΚ7g1BmFLg5MjZ:>]d$Qh}NJVʩN,nex2BRE v/vo$%#e]4)>wvx*.w Rqc)!ꉋ"u4W%OUO^1+%FDb9ʾn g;\ *a"Zm˩>8"xzMS)Ci8%㴰f~#wdMQ*fӟvRWT/XVP}^zyֈߖ<y-Q:Wy$/{h9pV]ِ/H-8m C (*c{[~s( H (4s)77* MJb E-U)?̀8uӉQRDtv ȇ10^Spyphޢn7 b=LI"p[?x+V~&V1qQ =r5F ^N7 4KRI* 1;tMT%:}).'z2)"mʳt"7pa$))Ppv 9kn]! pe\$HbL|Xn٦gu.T!%էu s{ G3Dy,< ?6缼ƕba_͐g*P\<~,֩PgLmzh,ĺ Nz)E_7' .pBo'L\W,9f "\QT:ٖb7G aaa,aFU G>m0nw؇Jh(}dȴq-WZrf5N+c …2⮫(tnrf_(R64i}pY::-4R}MU\" D[BZr!`RV {r}N#r9ȗђw' 6UN`hq؛KԥSjHl<%~iI;h8Hqg5zyY3V;Ok#ʝޗ e[7ٺӏmwiDUI{(v6jn-wރ\x]-:ƁE}DGk"G5a+ ~]y+j_&HEG kIck$]#堧Ŷmv@ w[fbR 4ؕkNa7JGL>3" /L_ ;C@_)Z0}nFNZ ˫%h| (i5m 4{SlSuFCUUjNXcjI>^ إ?1WO Ja=1BmzE P%]&PU*v2HWBf:>iӺ<FϟW>'(?aPғUR3X8mS 2K΂<,G CH"QߠEηag j@ 9XnJ;\;M r|gm?ȃgF'];(3Jv \yp,ac[,ӆIc4ܾ( u#N)j^1Pq[$mS=l5~'~"U\ν҃e ~#*yW7d"H܎UdmÒ]oI㣻e506&Z{řёKsz3gjID3YȜFYFyڦg#)R"9k+۹!gBG2P:JTȖtx?4 L87(z rZkC8'؎c O 7@2"<ؓ&Z1!`5քZ?RX ƯN=$3m (k慄 O4 e@/< 4 ͩP'y6Ǻqʽlb恥:q,FQM]X_O$.M'󃯔WVk<Ա/n 6>,Ʈ潷~D^2w|ʩ2Ya)8U}~%mJ{];~ѽCܤqæ39NDžFϪ 6Xm)a+cJ'Zxݛ{T:dK_ 6N4Xw~ţ.WB@t\q:׸&:`yތ6gd/L2X33T؋uIG O&D"ѲPx@ C O1ur~RGkZb'v =J2} w*:P𴠖.fI*D7ޒ>/-4F7HCZQ6f=zFYOJ+t<2s.azNzxt@nJTPK0\5J:~sLs%(}'̔6'&|zoH 'ʎY ek<%\/L^US FV,odX&%$Ad ]Gp]=&f,7L¨rYqj*EgHΏ`[k+NH yKm搉 0O`/N?ArȘ,ejH@,CzVܹk{1-nuuz7AigCJw< VA}tN/9=7 ?k7d!7grbWTV=.@,S|"W hOq}8 ^P}*0z9~̓lǓ}:ゃCR_l-XSB|47׈ᜆ,'%E iNoN CW>P`DBpG?;L ZȲJ&ĩdr%K[Aӛ0uOY#]v]C*FLq!ӆa]sNHO$[ ?Pl(<_ cIe#=/ri3(%3HVecI;9vg썌H兛'0geGTN3e C#ꦆ} ylߺ&\N' GީEQo/$;ߍ:cw|2)x|A29~,YKyNI39Bh2\$: dfػ(ʜcC" D㷍K!y703P~n{FE۔$AdF.>'Kщb.pi敛 ߊ/D GyZŒ@|h}dJZltpGñb`ٖBgF,Em 02 YivĬrggϡ3㵾=7sAc! ~*o%ńT2rɆ2bgye{-azcL@':h?.'ʹPXpsTI~/%3/w{X;DIvmSTz!԰*&/%S@=`)JWOG'~ Rհ]ax,b -LԀ.X,+]br:ky1Z!'?{?CN|#Fex'aYu7BIkq@7.O,2OA|wNRk ~yLCy/pQi &¨mjBY*NN _[~!1.Gj*ZV7X:Np?*U6h^w­|f:\8¦KW]_ț2jyݼU\%nˣ}p_ {#+˽P!I CR"^g ^{MdGfB6K҅LIB:NCeMh%4`釫D+#[~qaZZSU3AhOax QakMEpmnKḬMA ^J Lse*C Hj+wT4c*uhԫ1.%DYYmuwu.8Nu61 xs,CԔ ?Llu!R0.i Ͼ}9ߛ@@N~:=k+ԨGԭb$Q +fLv - : XeyxWwΤ $S vrT0KZD;Z$0FYpnDcZr0NļR_tH$_]g^[VwOЧd e⤝ L>W{؎` l*\&QK] Ÿh7hG($kt>,e `ƅk$3cjN},Y?}o#m<5kc!T_zwh)˔~3.+ 4D8uX'T8~#0 0>=ƍW fVTնƿa"?;c1qJB5,D2okbii ZS],hlGw G7Bv5{tQEK[ȋ'brN7^ZkPY T}6L@NveÉgK~֪;$N s^C$2jb%\ A\P殨1Vu>tSX[$}@gm^#m#^L>]>oƛr 5a$RWK;^t\gy{Uɰ_YEeg-lbgzxK4oBK־0w?1.(} ڕF|PIJĚ4 !6 ANTi{;P-:x$t׋c=W%;eZ+ܘ"sym*gA< _aXӘrH ^:%h 5RHgw3s֋(ƞCpRLlkGle.)}؁k8)(;[Ob薣1xTv:y7_< $HV:} UXɬPKI8+o,gz&xs釵FcArXr\z(4ŐWgD;WC5c<ob5𛓆[roR_GUY<Qb@Q>ì4e)D|'#`*Gנ;zn:*`"KbZ0:{ W 7^DŽnî])4Т{Փl-%4M88SہKWa ,t->U~ϥ&ؖ=rQ1tI 5 =lJrP,mkn[}fʅ2hݎ*fu&3o%2-Pi;jR_29'oT-b& )8Dubcm`g s G I;!a6BӺXв`w2YtGDt 1\Tdd;bZ$t0#{wu$6׏sgHh3NjI^7j`(E*VXE<3Q%E5 {oK~μbq~^[揚jߵLy{vĵ,  YR9=$CeʹIcoԮy<#{FyID1%+)$3Ä۸ GrzuggQxxO2:@6&(ikIzA6v;&a $b+pM;!K?$#1m.R Gs9m/S MHަ~!#7:pZQEᮥg948À ;'-l&j#y{v1TALҀ b~+MM)A6{ѢK"K^6*WD4\z&ޘ8)^H>\g;2?Ug[e=Lqx' 6%(*w̕ ~MU!5_sqCn x9`R"ay7rw@`gZR%m`H^Yy;功(\#\'}K9Gf~7'$D$2Lۇi@)x~\ڀq ⵋMWQ1Nߧ=eOz6PqTRiZɔv}l#}E,Z1W̆B(o`}M'q}}W$7ܰ-YiBIA,7UxEೋ>*{'`ٴ]㘲}\qm: ]@nVxݬۀvBIM3¸䒡F4m_Bܺw |gDSE @޷Ϻ̹BEWX<+eNt /8͵ 3ъߗ2p$J8>L% ̈́9?{?ui#&Lڎ!)קa{5Wdؖ'yZ+N:T@}zE02Q=#M_scnh+!$H.m̓nq1(DT-W;(1v{nU2?VdѳzE]zrni{J_jg7ؑ)_YBMlRL=j=TJ$WiD9Q4_w: ec` XOgęrk ?:^%WP$)SU~+\"}G_&yƬ|1ͰbyӝʧM$_CO&W$)%vv:O[=%bEqHqhMc-J]/+]*33N]M{.E?Is]Ϗsš~/)K;e^xz^Ht<3bMnLnMOzX?U1a@XALD&j&]r76~s,3>;C4LSs <T;d9>lM }u[r̜NQhIœ\S=+Cw_=8wͤ1s!-Zl)qk`𯐼q*ܡp3ꨴf'^:XK9DY΁a X2e0z^䓫 L|3Z"Y\hMbl6\Zga@\ҏ_P(hiAppWpar8'ۋ՞0NkтҀZ\=${hjU/r{ | MҝGzp0+ԅE1Lt#mZO$ͥ{UL'p]hO4  6=]<ԢI6V8F`1Xchm}=s4>19e&d`@@ǝ)e!&=b$ƞ귦\felc# ٳ^[Exc;0J87dHoK,5^EfvB_k?\WkzK,, 7%IdΦDrH8e- 0LAnsуY#,M^JFDŽnJR/O{o̢ :_3+{K:q.ŘzPLxyʕ@7#ݞPXf7BCܻ1) sLT1+Pl5^<>3%ɁAo9w̧F{Lu?@=6Nh60>qe-}MwsDq_z@31;OԨ4sf@ɒ_$ٿP33@RYײјtgCJ-= <ΝP ' qKR^\zSikJsQڽw1$ | ;dOi͝qnݣ4/@`\*\.pdlXzm;$<+qs\e'M}I^d(i8 '#EFYO{B0J~D 4yajVdR粯j@͗<ܶ;ncU1vNzjdC>([=erkK:S5;HlxN$_j4m~fNl^!wY %/%r&6(h:H80/wS jOSI{ˁ(53l6v 7R\|wEԩ3(~`cpD>ަ.x\R泝<8 l}Ra'A#pU_s{dDȸuc|0h_1L}cIJ` wKz0 Paӷl-zz&cwFo쎹v  Y^1*Bf،yT&uksZ9)B fqXU1*|lyøMzQ:&JXGk8Igȉ;֯w=~<υ=˜'4_ǯsUI+KwJj6˵]QEUCͷ&yQi8cZ*=Dk>lLflI7DQfu-HkY ^>n]g{+_ۭ@(d JuQpiuuP1-d\rkV8cɇv2nՃtEHG?=nw yXn^nMG) T*:O#:uuzڒxn>kr1(&d8㒤-HДslhǣ>TD]üO`XIz4x}xKDE*V>턢s+<&p_ V=qC$6Sᰝth.pʤ_"ax{/eqRaMjIW#^|Njc\;GL&Zdt =rϮnl: RIbLv  Z\&h-c"8ۄݱ $v6tѡdX75@ bIFq߹q<~N;ݎS.,qEN7B i DlHlS:$ۄ 45#f_`K,#|;C7wgp'5r]Vo Ȯxz C 9mozQ_߅ngYA[xua GɻTqEYDNuR:]ޅ3qW4{Zݓm :`vte! vM 3s~ 6(#y5daAulFu"!Yl'Z3a(Wv¢SOB`/r7_y{%1p%|j'О x*ݸ"]KaeҾ, D głbw X %´PG$0C[ {j/u qcڮs 6]6Z\ZZ˧+@e\7g5֍3z=o kK ~#J#҃COH&z2VxJ P0oeߩ`uJV)/6Xmcj !C^k'U&$8WMc5@mau&Q qvq#VDUpd=Y@];R jR` /f 7\4]tF#uYr-71N̜a44QU@S"Hk Z=c+qTM1f*CI[w6%KV{]'Q0z6k/m ̤&qvd gF,?Nd;֌7B76?ӻ+D'͹"}_:@ٚ eaJ2k7(l ꝣu{Acp˹O/>zKRĽkھRAe4Ә0-qZ=HӎHI*1K+g?TxXv` rbONoQ+\\ƅэ55O{ԃHHW; ;]!6SO[ Ed 7S tIM>N+jl'f58~j#Hv0}YKG\oz0@H6t(_K!y5|"g̭W! gX61bAorq8HU)t9kP\u?S44FjUGYUlB h%L&S~)cN Fggu iV;Saa(>,g+~iu2|׭& 3W+p))X Q-8&#n}-M`B_*IGwb@Eٌ` SN8<{1JN眣_a Yf[{2Ч4G|# 8XUYUNЙ!L>:6DIG Eb)u([skGڜ[<2l?_扱x7K)lpƺJ71)K=2Hw?hj8:Ѡښn Gb z뀇q Ŕë1pU,uSw+`z Qhm/ ׅAZ?eΐ[Y>تҡ48\m#wm=j1M3pcZY8k`dwf=sfpHC}TX4ccR<'-A( u=gv c.^|fZ 2 )jd[u;4D[w5(n"jPazILV#0t T%s?,ډ<?N0w mD`mᅄ뛆c:v?r/[%!u6gErp!AϢAAs5'YOtiQt^ҝhd? 2S8W Sj)ag,JՒk#XʹG߿[eꮿ5TSZCb sH\Vj ?0˽}DTAS7̳׳88K,Biw; J.W9> [p#?T>ArmѸ4WPzA9=^- FAd4ɐBqd$Wf0 \F`Z[<@ 𾛬O )-mp4ɖX*'cu@A~34`ђ/^ܶr93o7)Zqh";N  rR3E-StDokp'4*r(A֞yswa^uגb.'',sd ŻV)vyjA^XBH>ũx]:z2%PӖApcMi~& 3,ҫ&k^ԝq:,h[Uh ^Վ|N.?ܜ='dp8_'q3,pEbsvd:6ߥ7РtǀV7q'LQ6՚OoX2yO:sy/'A|qYD}3Aig e(J?ں%`v7?¿:`>K. !, wSa]{Qruv.@οfAm'#9 {~ xR!j>DfW_5ec夑Ҹd"%uG&ih f 'ak3iw%=[?Zv} Ngn>N.J! fNm_;U&^@hZycc54ռ^&dN7X9=|n>ct_8BzQفUkgx-IIҥG%w w1*EH@afK+Ƶm7·[:"ragAaTBcW,Ijtjbr!<~~{y#]|Ҍ띃>h+fMu@idxO8h,Mx r;tQiIn0|TDlbU82aU\P}M3D?I>Uc݉\1ʳD:)׳S4ULJ^$cr \7c[N%!6?y9h䱓J AecsG)bY #VyNi|3LkIcyIhr&;*-n ?̋%as؃9L3έu3?޹ھ s2~vаP؝ {(,UO po]KxڱU.8eԽ؇FZ/d9[VT}tsϏP`Ɓ.,D% D=ʮvn\Ϭe5;} "K+;.q6?Φ;6f|Se8;'qKf"崖Yv ]3b\WR/HWvڪqb'r% 5?=MWO.]}AyϬM(`0My5J Td}o`- u϶4CA8v\Dcu鼹 KaR+4>>f&L-Q84°dAiu2 GBM| 'DzDŽ y:E'x(֏v*7,Zl@r$ `@#z`=Q6[z%!H8Ttx.R<Vsz՞KO(z;gaڱ,M<-x[qsj/}5k$:}d)?XYQT]$--OSOvA 6'rS*7 5rHjhl> D6Y͡8̷иђZ !&ƾC-QځcPIIY 4m,dSNMk@^k=0 x%?NyP0!T >W0:^ *-BU44dS-!hѮ t -:a!nqdVk#!9(;Da<[> JRE=Y GWB]/0s׃So"I*;_lnE֌3"RUqIT<6qWEv΅Fu7b@~aЫd.5uPR-< ޱ=3,#.cIs ź5ѺarҶ<%^ho5a'\Q8 `P8lJ5\Bл1|x ȗ60f a/;B a,1[ Բ)L "Jh~9.,g5N`Exb{h^' -牛DqJzB 55W xLŢp kΑPXz7w&0үԞ6LuOI\YX\Y{"aIȖIP6A0{5 ԆRafXOt,g{ŷ'_T[&&3ҩu4FFPWBۇq_K20[i*;;Sq=Nb\AmtA۰u KF:kIxyWUT֢Z7c9s-!󨞼2 U߸v4Fd[-iaNUWqE4erbK_hxlҪ|UoI˘K>[~Z#ɚݹ_Gy#%ٝNp̛4fexY0-:C$v,4,Hg{CXuLi*"~O Q$;6ڑiRD(N+ eBSZWid(1P}5堲`dl8nג"Y`FN͓Vs^x *ʪ ^ &N?3]XYF`BgjPct!PYa a)z 1z>FT%@;Ԧz.TlrZTrLƧSRIY#뱿>s'}f:j a/ n S O4Hž)q!܋g틳 cn_/x .>+&8yi]8W#&4SjY!EGjg[D!R[țsN:R87J K@V4jiWn ;K{~gң@{qQs܊!맥(J [MP 6d9}4r*mXFeY"~o)6~}bm56[L{ٍMq,*"WDI~)юSa#F22J$%5 KhL O:0ѢƩt `7LD<Z)o NaXyU$$J%g7$~Nc΅TD (q17D+;͛r?#RnEtxJu8lz5^gsہe|tZ|rA|>5F'L5 r勂I:1<gPvc7eK=f\a;܁8*R&#(aujX\q:*..$UX`T~/|=s{nr*zELo_B3NJAS-66G&lYM_C,,7lD껈R)S#=9Md0λ4?{R2iTGZ-"/ _LeA' aeeOy0wZKꪗg%&{4 ti*3oP:ja~۶8.$o&M >~c'$HP}6<&Q/]6D{W4{M󗩭ҷđ2J ,=L ]d,p`=Gm^>/~SM Řԑ"ǔDD%V"wFCWqwa^g vfb|vJ(ܭT^ rv@l6 9aU}z!G6MY̗j ACr id7-# #HŨ, XmcD%㳕~!塶_'I]eRݠWj:.kb 0~!V y'mK $R0%Hjwj]Qk[c`iKiq<ڿ F2Y6Y3iߡ}93˝:j:6r8]Tv-=b"QtȉvF^0/'eH=v Koecх0EK.4ƝZ 0j^;^+5㩣D.8Dryt`H 1p5_㖣@|ݘ3" #9ML 8'>G dRpЭTlGt z‚egW= f>EkQƫQ[` ~Nꥂ0[--&^< }[VM '"鎬i#>dX.uw_M&0 dc `&u<0G=.}-ނ΢` /COhYN-&c&GlKWlȾ<DCa|:vb ׅIS>pʐy ݻ9ۿ+~ d+isԾm0S3 B_ȥתxasQs &+]=*b,QpC c ZƳQlѽ >G\:9+CÃ)XLS2}7,P1ЛSF7(ʽO?c':+6]F>rFsCHX% BJo[8!0JMwШmo7+cYmvV*3"q٠4 ,/k*ZY~Ԅ=4#DX#atm.hǃ7>H 9壑O-6MTjiZՈ-0B kPyCG ZmR5h+\jlgK8/ g1%.sJamin@bQht5^M9Yb5t3sF$= WFX"ʹ#{#*PpE*k^O]so[MNY s`|5WsC"ƴo/B\$ hƃ30ju%w6CDNYv}ƮyEI^7='dv73J,H%k&eWSPMRҁѽjT)*f.1#g9vD\==8M )hW*9yj0/<(5`,*oh^9m+㟧:]b^x%HdD"}`9# 4 PFVq]ID$}q= ӭg/ե'6 `霮#ނ0iY\P%ޭ_˯ g SܑDH b Bx@F@gw/i5~#Oc:G)0a u(h>BEϺg`ҡ $vu)F)52qb/BIœ)+( 'G*#(Mg@ NtN Cǵe]pr#l"PLP V?\oWyj IS͢gl4q?ŏa}*V4<<')W 楯/1je%bcj0A{@T[߿fF (n.6[&=<3 ֞9xxJ9EG<"#-<(,H ;vNɟ:v`c)bLԟe3=؅ף11>7"{6 {P:1]D1$̠`8nTq%+ߙɘ;;Ie ok=c+*]O>I{V<Դd@,"g#[O'/;1S<",fjfqh3)Y%}VE[Ą}qwv{//Ҝ@,xédn@z[jx(D$c4Td_M^+s52s~԰ݚs`Pyn@dgEI?끈'<B3~)>M={T YゥzYRteDFy_]:"-Pr5m&C79񅻦(NMړⅡ8D0Cӯ3U afH= `7FH/-Z|4Arj1.4^b]qir^q?ɿ s5/~|s- m^0~3jWU-S܋oOa/O%QNb{!Pxut +}]6&؞M7f./SE0H hxK9 έНV\Ѣ?_f5~l>hN5 BlRf OS_#5Sܥv蜐l#bgGA.t1ԳjߪE$H(.{XiJe2g"D=,) nKoG;l0?ҭ{2ۗG\+;,ճx%J1%D 1Ej&-pHWVݜI?)=؍6)TL|{nQ$7q6LWpg(rO%p7t!,"2Rg t_/-lS>/V2r?R>*2;n ZdGYTEp$ t\-CtxSd z{7'IK0du\xȯ{ 7vof:&1(u4rE|Hdާx4Kj0bOװ=j%=xƤsDʷb@tP8pQBsbTv~f";PmeDį4aڌEϓj9 E#.1g8]@^j*pړZqBZ܅S+S-YFqaW#DZ }ieI[%fTJ6;FemuV)TBD'*NJO~rLNV11M^|{ `J`ݞS4&9\O@:SPjO#jf6\9NUUFd_w'd ȟp2& xKut'T;`EA4J߼J2ajҩ;MWq@UXOzc.-W.G#$b7`"ͱ391^ ޣG:נVCe RLg% r|,#]^U#n# n D:Xj:}*j 2JӞ~FFOZ 04&mx8QNE:P@Kq \$iTdsi3si 9<⚿['Evy2At\fE"95D"sAJ\6X`>ڡhڝTizVwO5Q-9U;'d?#:Rܼ{(p:~v%AӘN)|["-(ӥakTM…5S` [t3dHl.b$E:/ۿw pv he '8oda8@T›'cM|)<]򁃀 9Ջ}`U`C5' E*Gơ`SP≝BA},o|Gu"e~W_QǬKtc}IP]) ;i aD8D%Fz}0|̈ ձ:IF<@mG”l›Gn0*Ϝ6xm1k. A)W B+!bNtvzÍ\H׎ ^i_Bbb?*Öa/2%3Tl62L0/N4˷m$$銰2(k;i|bzؤ3Wϥү5CRmm웿 $x^c^S&~҂J2g#PUW)V}36aCuO ^yCy Œ1x#dc2=RD,w\&;E \kEԯzry/;\bA܀HE0NJ1<7cB$!W2A tȴqcFgb[qBwcЧR/8H)L [^ r짢h ź18[xf"϶VXX1\;+- ycEYwib"$ V*|]R5]3g]6LPFY{Is=z06`+b8'z$:ŏ2837 dr#~Ɂui;.VӰC-?݈ÎDPliF+93 v  wXQ=vOΟ`΄BU{) bTaHFchsVTli3ۛdnЇu;_;:(N=B4NX+7eKݬz*!XCzUqK*(LLCEuVg@RaF)Nb"\0K]tQ }LԞזᑫ/Cn}NƤmY6.d4 RsszP)œF:'7gpޱy‹MAD@arHv=an$搫LJ˜]L.?J7sS٤aP1vBgn1,mwF 4"5Lh@ʎ]VUQl ],r|&"Ām7s,}9l.AO̧A~刲UZj#կ3(>h:õO`럄Aۣ Qw0go(QPKU7zH ebIX#Wl븞<>c퀾[ ے1/PZ) Č[>bݒû=-l%aTn71_שE,;ԗu ´lw(C6B\\!DoZոaMy"싛M+5[܌V{%3}qƩ"K-EwZZ#:տ0w!ګM`ݥpY!Z]cY$Ih߱? WuETJ抯gEʃGr/UѺ6w'ފ{)g.|DZsѠ T&4̷D8Lh4#8J|S#lϲRE,LeO>3ͮ*٣ sgj(U?DRh4MdMw_q\˰(lf̴/ Wjg)=S&hSN!iOg 3N8_{;㊌ \ PaFHU`xОtU{"r:0vɔ9o?eחK7E;7FP/F V_nwVہ8xm*[jx5xQ8qTV!΁bB0;jfk~& G =i,a]Ϻ!?I4[wVV~$T-)=YJiň:?[B˚aXzB]/;gN|_jꮊgr.]Zh"gRQy{b͏!c^]3s ?/bJuqxuZ~bYvP܁Xed]9AB.h=ZrJDx=OMDnSv5x&~bJv<^X&9EؘhA i5slI}bk+h1v_):W7ѾYXKJZ =}_Gu&o4fg˻Қ=yrNLV`+"(O4p7#ximʈ{>l_=9(* U9> uSnOs]`b⼏nj]wv$ާ4\깄O2]ǻ.TJ7ż,4ڔ=*wWYpw,;ȅ$9c..&jx sPN"̷8ܔEi4<;2.ho ?!QUK4=B֋qE܊U;j-Mvy8U٭Tzލc0^ TOSc¦l+/|8N@@f%".T->Jv/o D}uKnJBRFCs3/sD6;ڛnVU ^C*ָ$J"9̶؀Xp P_ *@+#GJKx+xIr]Y3mϏRw,z< Wf]=ۅJfвdI{j"J1J+ќՅa02lj'5r˲4!ui+ F_/-1] ]rWiwYX#YMj^ $FOKظp h1-/z !&y(+wd73}_>*00mbGX9 TԿ?eAe x$WCFA٢Ue"ndOǍ.6Sڰ./x @sC'qitQ3$KoVE~/RpH-@~$]P3rRE}u$j/p'Z 5GO+6"u,uB;yw`iwŽ8fJь z\Ek&(OTCT>A X cS6gS Z;{5NԳꨜ;o3W_:ɀ!ݰ螀Eb Ӿڠ^I?yaA|\bF އEw)"496O@ج<]滎BF&TS 4 <>bif x2,fC}ҤBq軻5 %dK D]K6TO.l T@2庳 g+AS-j>VJ 0`*Kz_Osk*|~,DGT` PY*2wpF9rіO*l$4v]?GooX ӷ#$I *EZ+f4G]O,q"] D}RDp||@EWƒnDŽ Y8S6 4$.F}\~z㮫ZM-jZ0 8ҘN&]Q"τٽDݕ(jڸUTrM}?\e ո/(#X:Ik@76c5c#~vQx|k7Lcdp] m N$T w-Yw#)8eI]XF7;<Ǝ&&E"Psaq_(բ{ƼPBnmPa,*79D!)QP&) O|١g9:@ճk;5ndp 4c~-@V#yIj9oAiIߒIuCb@9ˑ%tЭqVCdc=^1dndAaLjw-h`H6$aFGV q'n's%PNyZi};{B}DMGkؒǂܛ^ږPKb-x#;Ȟf/KyKMzTrrK#7Jb8|<!hU[;ʢ8pTdrS,Zx4+n)*f`˸QX PBQ X~ T 4NݴXAj(q~b/}j8+P#J0.9a2 >CR+RVϿimMȌ3Ԗ?`~;|f[0:ڰ8YW*wv x3 (Fu`$i[(-ߔVs˨cP 8,4u AM]EQ`[|d[BP#|XBS?K1 PƉ ٤=fͶ])m kJ5: f LDY8)xe[9>ؑnpDPHk֞ledOGL|vjqpȷzO*RF~IfW Lzn'.n| IuqatzIAȶTqL'Oח1Sco鈒7,|ϣv<6+킃2;cٓu~C`кrEˑLzj4O!Ac\sߨMj"7сud6ޭ58(;^̚@mM2e (b:B J\gڽ9HQ%OѦRgŵ@-- ̚$D$eˉԛ!|I@ &l~UT(zˇk'$xɪ( tL)ǃ%^|ud#"FB85v08ImS  ~듦ˏ(tMc"W咔Q2%8bF2VDT6~1So$ ǸI8n# oR.p/]H;v lzzE?@Wu*r Pcӝk77Iۍ򆞈A+ L' $èw9Ot`4S+58& kZ1=F1j,QҕY%.-* vKT7%*&yP$Z؞|!DhQЭsHVl/s{ʄ'3 j jqWiJxC3s[m,% ϑdv $4?{;V{κ;YH^oŤAԏl iYQ"jvC@ čK\GQ/8:իZp!Z?b9nV^mlWS D!KAgNJd~ ^DkM-,o!wAh➧+T?{Nth|Mm/F^u&}~B? ;ӻjHX]Jސ?3x8  4hĬjlGF$ohrW2x ;DEpe]^Sf o4v__ 8$kNP `1} 0P7| F]&NP `j5VY<-Jm 3)DMpy_>6[ʜ}|Jf; @,]mt8ַ p.rĺ(% Rտxg?:͠ `RDO`}ضsU3=BJ.MR(|쯁Y5]Ri6"cmD#b+eVtP-s[; o{\lxU7+U>{0B PAPYh?g;@ Ӏ}q-/.?eAuï]<J[ǟvbj3ϖ6aƱyy9ƾ2f^2!7hY2"oב"(Ά>^**;nmRwR5Ӿڦ;eֿdQKW۪?ȟJu>b{y45n)&w ="bƖaa+D)$s.ߧ !kџCR5 QV^H쬝-+D3"n@9II`8.@9 _]Rhw C$guS;JCE(u4 T{_jڂ~\-UO3FRȿ|Q9aDp~{͑DgS>EG|PRn5~"}#erxmG5ڔ-81W#c4vIۛD H!]QފL*P69‚Q8l03.aRr?4tcp<f ?ChI mx_bH]c Ja|EE&X';C7+,˳ô]|xgQ\2f`rztj#}+ql_U| R(w֜ ܊ mG/^(7?9BRs,y :_6cP ?.mQnڎ?'Z޹dݘFȐVjRNtN2!V|2#ް@0@N呦iAWu M֜)2F0q8*{.!"E.˙NwEj?̴\,Iթ U!e!A|N+[l1bnjz]Wɘ8qj+Ttkl)2bq{eq#dW6xxC֪!/ ZOy\r=fgVnmpŬ# ;)K(̯Jw.ߟy.td{{.\e7X U/Q)N=j/ /4z z=ef/g:a]4ta3un>L&yXx-У}C3QvslA*"Hy1ˊU}z̵:o"%#bT7?ˇEԎ^P"n\BMq/עݞ:kQ;P됭BwU ]W+&L*Eeoqz]TJ Dr\k6$\+ lۦ09b%ĠM[gq_Eq@S)s4{ 4Z!vBKϮ"5KXb]QU1L8vG&/ i-=ߥ KCzPsfKZa&CcYV0 C}HqgG,v zk-ZPT||JjuZtRBM(AgIA$ uч1{{0#j|Oz@A _{~$W۱_d҂h?d}`2Rr0*O!Qw)ITPecx{ʝ,wϴe({RG?Coi'Ld~ˡ>Ó6ǪO(!ClLBw"0A&tx?pDFZG}_W/`v,ER йأbp&qtGymt=RTjk(̹KF*S~S::f3qoZXAUԜWsӊ5fB*JDP1ets.-$2Vě˟B̟Czpe$ȼ] bs2vHۓ&)Xgk:72{q-&dӓ3}q&NV0cP0st&ۻYn[PK ,4__A35MȆĐƾ,Tnqiy%Q&3`@m>WKEiZ4޷;%#Z}~P'/$fNZDD{/n鼞+aQWa5WPH M ]trԡuXn U(Od<5\.-qlyjAmy|ބ> GPEKaL@Ou WQ"DrKA_q}L4Iv]t;R$gk hqn bsNXs)7U,(]B>?)Ÿb身mٕsҠz߯=ܡc]$/5HmH"x?ۧn; t56K}EytѸ(6* (:Zdsd!P.%ja]&rd>wT2:Mc =$9bwy9k}J吘6HkwΠ{n4Qkdj% N&@k`?oW%+)*mھ&˱8;-T.^F5]_/]g})W u ͙ۜJn- yPTxg( Pc)&Lu/K(MzԿ| !:DLK;3'wpMvKc=GYۣ~AxeM .Wr_Iw2BO/+X::8d /[R[ %^L6AF^ XȖ,n惘J92ҜYDؘSY^uQ1Sێ#t7)n" L,2Ot GOJ#/v?"7aD^<kP ˠg'՘w"E5tl.Gu=;J}ET $؍V '6mnSI ė>L2|#H(wI E'Ք 1rwb+"A8 ͥ3nU/F.Vc"zo1[TMW)['?2t+}ݧxZޕ FDC uMdPd%8y0"r`q4V@tv yk2.^P?=%п9[=bp=pi}0 k# "g"kP {|񒱵4ZY QՁS--F.#pTJM9HIR.v-YEx OT1$d0 t}Ǧ>`Ky|Uӊ1K(ךg> lɒ!Ǽ&0k(Wտo~XBV)_TV/8,ZZ[7J{Rb3|#⹘ }dYKN.<>F޹C9U9 u}ngrY yz8/!!6h+1TmS[@b!с^%].ErWLƹvߥvIclVk o *e[h$r^ַ?'wK z,Dr8Gmwy yޜ5EG6qa (i7{B#Xv&,UXuwyzTdAd k|{  ykuhlBGX_G4,Xy{ב[U}hv2ggȜt_rrS(-qO&/ƃ9xze| C! w#UG6^ǺA""B/0iR"zCBc.x^Qj5ѠDFG JH*yRU-AS89Poo=3Gym;쎹Kt*NryF+0o>`-aݕ͡I!xʹ2Zv1/wRX/vs?a2YsRg:|q񗳢Y_QMu"eW*GZXMqD~iȈI sԤ2 =p<Ğ?@E"("!9nY\*)tZ};vocCVNO yU}%CY ㉣skU*m:=nZ&[R["[}1%w\ES![K3V&0Tt(Fms!--=eSZ~n(߿mI7tIen.&*Of)U:[ҬdS7{Xs?nŠ1.~V +ۣqi[Q4m3hZ.ܷAd!nP!@I9d+ [A q /jL$2_XJLͻ ٟ?l'2kS. 3vվ~.}bl/"HQ)a Ho{Z7'QÑ APa8 Hj&UdZ3`n`WʹA.<)4gDſ3~$KlN?AGbuA, Ho8(3LM +EֆH)GұpdA(%q lPLjRIZ#@[?ʀn<¢Vbj:ߤ q<i2jOqy:5-oBs{\X.k,y]_.+xMkNNWfvpĺ.> 07z[)T'bN/5"Lꫭ+k ^Pk(caKr$>~ԗSNE-͍z M3Xӷ#׃;Jޞ;Ip:(zv9+f qI?S*P-S(iLIDhCsQV mw~󸜛ռ =PjncSY"/Kj/a\ue\be(Rĥ}Ekam\Htm r,÷; fө+q?44Ӫ 1<_9KҿA,&WKa rFޓyVʼZFd?f1L΋k%սmp Šc9$0ao靆ӛ3 })aJx8 ;7%E5tCO3N雤q$Ah<'DY1xܯxЗ>螞|b0lUx(Lo0K=qȇr$%`{"9ʯ>!0 Y^=%k>7*h$8]-M%ݭ5QP"{C& `k"L5ʱ}ʳ Ɋ2YG~ !UJB@xpM^ʗ'Mɦa36\l\Z̐_r])'~Q%i~Zn;6AF?{KfbrX`!h@^\HR=o;Gmɵxtk B`2<^}mHK*;$x{r@gŸk[ڵ'_1Ga~@omKYC$k:ul]^o4v {[abg zHCҿA2 z3V̅sAg#⫈ xSgm#P-ӭ&S`D|2{,0%[xyȸF70R֝"5b :vOp#7OEڋ5eJݟj{HM>J,Wķ#m1a=ZNOԡEC܍jPv) ^sSNC2KJ]i5qDŽ@ .5Jy"lBXh e8ua$|v&0Wm Dyo~rL&Dzn(@R!GWSߖk(,HʟFoX57k +i՞28x,-:/ jY,p9Iͻ&N;|d_ľ1 (~;pSf3!eb\#Dn;-Œu4" ;5$sP{M,/2`jS#:qfgQGj4Ni"=H&x6z#P*ձmUz< hH yE\EpR hޗ{XNd(7kMW\X̯_,elfrݡ,nıe̤#HKh(H÷Zedggu\k0%{)g#GZau ܊FG3u?fVo~1;c \(J0$w2Y)HI1mZ}^Xpxj97)ZAϠU dra+C,`SFX$ԏe |,o;ɹfM{a=H!%L"uJLH ʺ:X%}ڄI-l "mw T.9"QL邾vي8s (%mJfvghgc湥pl `5E`|Kֻv;,tJqWr La> הl?Ä>b"|.fk$KĪ}6;t/ EBaג1jTwRH:NxC2iy姭&a ]{i#gȊe E>O`++oj9 t*fER\X$vdD4koc_ ]qEr Luq}s٩|ȁ_^2͖=㥁o f 1ns4 hAi?dx<*z>*^^_송hn2u(ClӢf>'$x/ gg$x1BtߥPc;H#D5v?B护^^hOh #\bd2Z'}\Sr΂l}IA*RXHx7hV_ c4 t DU‚XO>fAqo 0L-ZgVqiLJPo 5}*R؛R~J4ӯjl,VkR z?{j3Gm4S٣0^K o?`-s+3u*}UD*sݪ;*ϛ֊&+=13rSoR7& =ʻ f[Kk*$hr4BgYw1BO!M`yr|T?E 9٭LnšLopԔ dRF2<[.Wf*{2DNi%J CC@X!ÒʼnƺnĭXI|/v1-wlh631pn E\F iK:ƕkt˕a_}]#(x9T{18Az 4=)[9x2{gV (61 &<+(@ Ӟ2=V`c}#Fv$@Ag,-]~*[5*xX# kcjEqhP8yd'E\6u\E'CzmRT3ߴv^ʨz UTFv9@_DżBғ c=lWTAciha(.rAѺY`9ܬB`W[8(kgiHД 64HF N ;= 9oRV$un~@(6cXuwVxYMU`5^8 G2sݬEU5eWύo#UZy|W=TrQ#n$$ݴLT\J-`H9'=K |BX.1-PPMNc 22Xߜs^N%ЊM\06]B[D"Sm]G2qiw$ڥe=4xFzQϢ˙ӓb1dZōb[ȋOΚV{&H M9+|MWT< m7_NaCWƁ8e-BM&ebv*fsl@懱#6C [)Au(UĝD"Q8V{/QhJg۹@cxRq9RdB&FcS|ho4+Z z΅W۷x#eTK8zo}WhD4`.RMHp8dZ3zX/ [t6gUߝEKGV ߞRKYEBF|hB?rRwJ(R~Y=I<1\m,HVow;g< ;(-gy24#y'}~ T$(`Zp`?I,+o*իtQы]igјP.P5힓 Q d_S6|V7)1 eu| ,cDUMs-/)KI<]I (sd@ֽb)z}7u!ތr ZyB,θqh"Hrq՞ v&)J2c_@# )5\|+Sl)N1KQ P8TGUnDBcf.rڷT #/6*<*!]1]$v 4.ޡ$1FG%Care"nUT+f.Аdj^h0Ӈ~Nϒ]׬쭄S"e Yf vSG5'O *g7_x S^A>ukeү IJRMS{`5 8Udý:jnH cl,˃)*X@cѭ 8:)5}.2-Z"~GƷ;?NBD;ʔ#\Yi@#TZ4 zd_7'WD "f^s!*î\6Fpԇ Wb@PU6 *-QI7}q.S,,~ljhZ(@Պn0e2o*0#kfzŸv'GR 2#= z܉ԁw&y\n2 c 9uxǛ@mwֺ*2bSߩ$+MSZ'kUb˸qCe$,_XR1t "i p^ @G wl/-U1ht2fp&Z kE38l^G5ӺZd7 :duމi>QG!6_2f7㢱36D:৪CJ#`F>c GYug7<i&0๽lP#"C|ŷs]I/mt0ŵ0V(qS:i3b|Ó'qhFR`[/ۈ('X@ ᐮbI7a("cQm%JTp@Dhtvߪ6)]*1~0 F%2p\d1d4 EE귉Y亹|l(ЏA#&h`v0o lʾ*@kew7Y]ƕ.Œı?c\fq>#~YqHhfԴ@D1w͌8SdyK͉rضGwo5@@n1CߦV]*(/E_ |&-|s|*(k2neE8 #oc"p{3ՂJy:ޮ©_se$I [?srCnËL*^0Ϻ=S 3TK6rxH D ArۄrF(dg 69ꏾܙ eE!lRK`p (Рy(+NJ9o/Qd6fn8D+# EKWy;j#DSA*"XZݼ:7?%A^M68{iA 4WZWk+F Am\&^_Dx;y$q^hf7 `R5fOry*k*>RP}whkI>*1$D֨dg,5sҒB2Ӄ o}Drd BntL7̀PB09cl}GN6X3\FHV51ơ"odvWS4Sޒi!fdVUza,8]hsO 78QsM9ᄫJ_!:kLfT՝6\ 04agm|*GH~dڕ[ 5Uu[JEı|ht-q=h#`bJTcWpMۋLz`Z3NHK w4nC"Z+EtprMyIޥB6F@¤CSAj|^!o^P poPp7_õKDI+0ﰓ,h "G$DG@9T,^PPpkʾq`әܯ< I @No9'9{ /\-@gTMU{S6}}ڱ3q_`U^Y'@沒 *YB>D:&ڲN\HZ;1 s&1|*r8a# 5@'*Z t&~oW<@ jPJh(:&gbfˮ-܂GQ<+P* u^ԩG\k"Gv=W2?e$e>XX?&<^cݧ-@!+!ڏ:`02\ ی?#,e:Ge2nn(]B8` \dpMf"SRqT;C{Ss6sh(qaTgHZ 5"D7;YAq #;K6A8v; I݌-ՒHsz 1육, ء咉%'A(woN&soJ%a4)ѩSu8R" #y;  w[Ȫ~m}[6QyY g2ar6[ d֣ &`bPț\t> : /{&3\~ N6lo^*o0R{ӝ;̳aSDtHN>+e؋6Aq!5mg »a2jKa,$@?4۝x\CE?&9 p=C/W,G˄{:@t>`KN`V'mN[nzŪל"=+VʿcACåLF*kưt%>0fmo& QLpDa&#Ѓ4M;AZHz/(kL12K_,|o`7I+p/<BŶ 7 ,ĺ~aB 峣>@4B71$}Iܒ/wɉj1;--N[_g:1ܺ, a@ٟzrgk O,Iw;*ItxA8(o|dž(u#KãZ^ fZ<֌UES\U tM5f<$St [Nu`tthv3?钊)k*94Χf_uJLnΥ*0bGum_o~LL/@)eFo BWi, sY07|,!]0gch!/ެ :qqZ!T%{ot R;D gAy"ht y*J>nvI>®Yk48v`td=~LfZ[IDW~m7[!AqJ&Rh"IL Jz#GA;c2:%.y$9=SJ>ԈژN=@?+PHF5cVqC"|l0UG]#ZUcaCU8} 4[&.ߣ JRqMC [ǰw􁛥Z߄*,=( W_L܇b;jV'jrlo.FĂf׈dgwqW:QEB1U% 4`xy~$dowB85@f>V֋&o%f|*z])Nno}nO&|-2EE3i#>W/ʰy.-`~QII/+Ívo0~(c.O[k[5 .8E+.VlCv]uTjMkh(gbkۀI2&Y (# 7 $HRlq!' gf]Pq .l}JtjEʻXUwan8$u ¾A^^އ76 x/5%K,K6,p|< 'NJ#)T[7Blh*Xݦ bԀޱ0&1Q2iQOd0$ _cN`4 vݾߥp%WwΝXirv5C\&o^uǫ-5^AQѮr.~{KU%(!׼4{1 @Yؐ*>Ox6S*ߡOEP~tK2cd(-}4ƇUbDk9$Ytϔ],kn$rd[fcI+&UTG걞/tX׺RxQkbl<5 :yMKV9c}8qrJj!T+IlgrYb% Е\cht^AmDn#o;l'tp7y Q@U)8X{MHsv:j8Y \Zᙶ<8%s' |QJ:+/$w"_F<٦b, mʰS'=;* sWKX%˞vfr/T-8#LUz[0MW7ΰ]}N:+ptJ: |o좚m]w|JnE48}c`ZJJtڈB|SSIP*.Eɞ|6 uT7Rq-Ya7dqz9A( PPΙ53͓ae<ѝ DHǭ}dJvk t[x͓9L6"7ZYo Ko2١fǁ,ʭu>Mi$t|vո@q߀zo-ѵ azw,F䲧^hڈd]͇فUQmB,؈E⩌ybQ|ގV{Tr$׉xTڍx n{܂d[lI941$9_5Q1KzKQOXe,:AlBUۥ.\/rvE$|0+Ji%M_G`|R ACX>z0KJp<=*ODgöF(_z*`ysBČwS"cpGK{=t6<,7Vĕ(6=>ҽU9g(.bMgѰ1Zr\LwZ-ܛM{=8q2ahDk9@HF,52*Pu&dfG_*CY6`ۚ,I^]( wtAZ(N>"k8~iJf-C&kg|Q3j|'Y@` rv ?S+q+ s yAe_k3~ g=:+>LHآ pOCײy!_OľuͬQ7]x(yqt5l cwj'hzZnc>#.d+|Y 0_!>C@{A_Hj "  hIxIjƧMZfǩ CRgԯ`yb&t/Op鮈;n[aziԈ&X,b@~x_nZ/1I6 Hf@5#hFU0LXP; W~Kٌ>>4 ~%Z54l8ّҢg>c* m~K:q*xM^u+R~idHg8qpw&"MicStX}MI@Q۫vU|eH O[6+[6W˩9ll݂߰Gf4 0\+yΤO5YEޟ-(R[K)qr S ),vn%q2lG`mL4z"Zx?ǩ1ʉ.\/MɥqM,M4mou3b̉W 9G$I&i"^_:Fp E5\7#IJw>ͳ.)Vڛ?ybr̿ Xkg[%fS7%}RTfL_n A~bXSw)I~xkaA^/cniTYav[93h.u— .= )-m@0Ϧ5⌼=iܟ)]TN@K\Gfvį\A@.!]i$]^uM:^OU 8xJpg^rKn;fmmE^q)zvr6lr% L_C"48^\]LE;Z{s\a`x^xf; ľ{/c4FsW7nCѝ՛ݗdL9.ĴF!:ZO#?VW|9Lh!ƍ!VLUE|d$)f ȸv `|_~>ۈH€d9 ^+knY _vvs}T[^U,iȳ=LL;R'T%ѱ$OI5cW~y8 !Ҡkԓ ?4eYף tX@ōT!3_X0%ÏSfH0|~j%ґ0;VY-nm!hY#y;f})U #:>Vu߬w r ’] en ~l:UqśRzF0"bRb$ksB2PN$Gf|͂ru&RA$ϒ*漳3=b:gX֬e%s؜يx,[ȃQΈ(dKq8乡QȤ 0kFxwcSD|v.qr;RD}DЫM{8y̧ki]7-Ɔlȯ#Pw^'~Bw4xU,v=ZͲ1^O}H}t1^Þ{Tڄ=2VOe RȵAEKT݂ g86oSy|}ٰ.'X&fV_z6Tͼi2=`yg+)lG2@h>6 XQ}@j*Ta&0?Qq6<8:=S`/3~@JrNOLC y T@8۽,FV3+ x|QZЙ'yo9I0 'a6ߕ=휕Ʀ$?:*v 8(W ڊnՅMWa#J(mjv6fƽ+#BoUFϯbz\JcH2/eVf[k^c'{.aܑRק hKQC-aڇ QfGW': fs; I鉗GPQ._\,{*_p,ib<8^YEQtC+b-0ac6Wv4'Y}iAQw657{PwG,cbM]Ka6՟ŧXIƟ{lF0ՕϞ`G$W4xxy. #VC^mUZ^qpjK@#`룾[[;ݣIeu kZ!BRY;>. ,lTJޏ(^6+w圀]R}0Ωk`;W9@Tl@!{EBҥ?RhEވ?8h!89 ތ%QtmyM@%)[eOqXe5؋e_z1՛͇fD֙K Y/xn\VEI;(=F(Qh\Mȃ>8yBEjDdVIxB#9En;_P 1D*0jcu9KW o6{}U3[C( )sps65 |6b͐iP1g|WۢG?Lݬ3D?#:l-WGiTEj^̥${zٹ:^u),)$Qo y/f;r|Mf=V]\ U?׳C 6rr-hANLND]+cm }}G{rp>{FnrOG Le^a Xk0 s"^PQCB]Cܓ9mUVQ4GkFL , I_ 9 ;aXiSD1P,u)(p0_#_Jv J |`䍲yFd7ZDj<(!`=S#T`ytPd\"3{lMm>0!s-d$%WZk4&/jyW؞Ǯތ9 ^^>"%b7P^DPM ^1I,SY%[DDN2d`mm2ϴU(\xEV@-4='?&k'۸]J֦Ȓ\I h x[~}O'{G+oc.Q[LwSu"I?SCzG@;rʬ0F9wJ#>"X\wR$u b<E졳Et'\ČW"}@6a}&$l|tn>ժ`(ʋP]Zs|S>GYv;'@iAHhGw ,K.t -6BЮ{尯+hCTž6ƪ8CKc?:/Fe )m4 YV|I/k62TeH 0HCI Ř$HWei7y7I&6H?p0i&rd*sc/NV*&H5=?Wj9c}Kf7r)Q'X%# x;xbOŁ^֑` [B;!`Ty0%ƥVN%֩j-:B>- OU = OPLw2! Ų'9#1zpv]Q,N-cѳ[cR%75PUYRGkk@1&wq'͈5_%2v7]Ϛgh$nPb-\FP 6Q? ed]{9˰`5ApY 9_H× b@%N_FyXǦFv$@B؟v> '*4!i&=6QS P~Ƽa准:zҏBc#480a񹘾3L Z)Xr9/o'(XuT{ȳ:kZ rZGt=q {,?tANMQK| AOb$JDؾafck.X(;)!>U$.,~mbRXPt_=rcFs=xd+rEs|yLk7{vmvw "#HVG`TOT|Ay 8Y܌ 𙧔SUL/*Yv̫b^=q |;V+Hhud]Laz XEaT*MQ=@4?PF`gɒO=AzPyQХO`d(κD*F#HM6l@Lx1]u=2w=mQU8/"VΥ|D di ~-|Bk[z/>Kl_%/-w\Ic /'c$[&`+J|@W &~n1Dތ>5t '6ah nl.{nNl\Xױ.f :9i_x?cbHtywu[%/Ťa(~u .śa?{GiH+Sg0.[JmFCc_KX+r %xoYT~`^Z9i}x۲0$ICÂY.}.Dw3`=$;?UĖ ԺMV;Gk}Xj̏GB:|||V\= FNSa3֤nۻTu%;n "HZ,\Rɋ W9>Be U_j}JN,kD)=mZ5?ĝGu>MOz34~YglړmrbW=_RROR½yGzOgcP&l 8=)m躾GBqMRJef DavczK}0W?>_ي) G58 ?? gS%殓5<Z 4췴Zヨ!ENor8~j-*Pmq%KJN UpoWer{jOEJФ^v)j}t c4uӈ֑6qRa6޷^j6[˪K쟡#=Bxkq&9NƵq11*KW{g*ta?q %DZ %|\A:ƤU~Ht+/ ~/xbbD2ˆfR9 ?O}Y6[:K#II&U5o #U^ ;g\T 63-קZ2>b>Lj"m]omFou4Fefu&%) *Z:gD~i_*cJ5ۨrA6Шg~JS-ǽB0:/_ȫ dȧ<7Ӷww=-^spogD@TkH NOȸ`ejYΫ9MoOz^rag/g/;iyd`>Yס0MY 8t1=;$;5lmG1 nVշBBs˃ 9*ez`ڶaZ-={1Ur.\ wkSSCNArtΓ{l+n;nڭo^2wMwgcL嬘gׯ2]"q۷(vB2/?$R}3]b(xTJ M:s Z_el|aHAm!퐌,ƓEeWy4c)92DH5%7hѳ2! ƁB@]WY cҁ.~Kav:鈣c*ba1812Q4~V ifo ΢xf֗LrDh$MV#@8z" ҇俦g҄#aF23DyGČ0=8 {5U델OVpo=qx0c[#Oj8܆%@ObCe\*tסּ/꤃*x=d.v9m.ܚDLL?C~'>O+娠 m> H;E#'qGot4PZ~$qNj A@7tb@1>uRRп~n.qn XNpáWR]:M%11}6j"DǛΓ-#TyNBŗje4 JJ Qo6|ŁnG~h3[gN8|lLpa$PJ7ճ4@z$z ݜ.%I %N̩uW򍉨դGt阛LdLkUT鐔}dI 10֢SXrwЁ y(0U +М sc8V8BlvAЛ30|kl `hdR`/4+ݎk9<濍ǐCq3RJMlOw7kp@˓֚Gxa:`6x`j )1ȫY [bmuO+ZnXt̳d^q_zFv*6JFX X~tj l!71z|Oyޚ( ܹIu: }' ]i sQ##詎PgNxj-z_T4Bhm+OQr-]M+ 8a>ẇZX1ql4%*kM '@HD,CUwp21o[`SfK 3^! dElݹ_ͱ>2 ^e<01=VkąUpbqRX"ς g$Z{GvO;KIsYElqh-\|,JC=ߴ .1{jho7WvYEcߜjQ{4j5X=]߉+EkJteZYD5MR]3ѕVi uW$`T|JdEEߏvLl۵񮢌bD+Y7H.y/;HH ҹ%HL1]);%9feX,̡*@y[K<}7FE(AZ}8x,zU[S::6Rю BlWB> 9ֿ*83 ń]0%r_לSu_lԟzhdoR39Ja_xMM6VÓVQn<))edroo#[WHs|]f =;jYzةxsU3Μ!ݩZ&-_ɌRxoPA<)'cAnEօG^qY  NS0X6؆&OpAүrۢl^"q Ahk 4\&Z II>ih𷘖bvFAqV}w$HS|fY.G)]hm5".o`r&DMb:*1tJf,Y{M19l_]RpT^`@gpˈj! }@i{ЈoC(sFc\>GD_h\ BN5xctwBB5c >7!.XAiսGLa*a3Tלt?ⴱv5bϛ W!l U]DT65ժP<M P3r[ٍ_Z?%[h<贤gcC"P˩w,4(,+ ӡӐ2/+}uGڧ?F7|sL($,BE(W^`; MFe]z$,4}ẕ( D QWL/ź=6T=*NVzI'',,:{^>/Rb9-akV #8H}xuI!ɖ"Sg}1,:ێVGd/JWDȟ@~# \~bܜs4;ˬR#3LK3+l? ҿ/2<+4S':[`8H( x|rQy D7KyɁ> fʥlEs#nD>5\BjcfݕujTJw#<֨c./{vh}2T¢""D--՘$_,] ڝ`t5LAׂ-瑤@s*穧JpVp$]L(򘄽ޡ>K0f(BŮ OaNIW$:ݻ}Yr#Yd G?$|D:屣$`1\&3=n'lk3}اS^bH9z=6n $b$"3n=i[%둞1K2z-):a@$ջ\>$\3*vOޟB~6GtiQ t oHm'>c-/_#+Ƙ}.OBYt^'A,Bnzq.X l;ؾJQAFdcU_!6&.eR%PF],)r2>")(Z=L@ׂt}?n љ6Ԅc }aWFn #z{ډ toY]"U6Bܐ"_/:("˩톧^&% 7+yXE{1&7:"'8sQArI4<7v'oш[F3L[νGTjǬ)'RM--0<&v_7oIRjKή@߶A  6IzLvlTs9>eݱ C\[+si1X~Ѥ^tIjr#01!vNa/ hƄ֡G!=WNKF}=9lUBUs )6%(P2Qjމ揓^$0DzC;Ne9.,qcc&SwFa V[ O >A-16y tr\/<8Y˺~Z溾ljrLY<8;​Nv^ q}Z^yO%V6y'Zj{9V.BH6|R :ra|[Q˷+mEW)SBZ{- #*HcNgQNxϊ&k[|X)SD u\ aҀO>e7wT:UKp].\&˘bz Ȟr=mX آcGI`>GImok P,7x!m`xO ^H59jt8Q"T \A>[*y8j ?xeW0ܺςfh;GvHՁ&2_\{:C|(K|Ei4yJBK Z{@J+:q=-̨974QYp!BkLrKPtAj#NNRI\wUJNec?񜦞1ilHP8DR^0P+Ap;v!BHB%_C5h) L,-|!ӻ>t^TZ-8!CMSڇS Mv?paH:W*5s t~-5t^4a2DS F7y 3TmM#RT_ъ+uHȣns/׬$"Qfm7'KOckb);«l<ʓh.`1r, :k 5<9jk uKyږt-"6#Cb)lͷTm{7xm*g ꆺvWe@3T>t''Ў&'6%FfmaGTXxYX@m]6Q߉+z$ԫ0ٍ \zR6hҌ'zۀb.n7 8< v?Ni }_*+ ʻg ooՊMBr(䌝 |zܗ` T%IJlB!@e2w(`&inNKĻOfTW1|$@\*]Q=ԯ[(ӺT *ĪǢ<Êebݫ1~Qd YZwht[r]hG0lq*R QIboow=X–5} noVV)cU5$aIJq/YRHڰ%=YJ̻u>y(μ4nY&gof(5JInEJDc]PG2*}:-!30adbN~ Vaw-6 \)Ķ$:^:4L^ʤDZΜ {M+8]%N:a4E z'\5d@rM(j'T5/dw nl^HhPż*յ'qSw,wdNshL e!+/7$4|lšH$w繝-$wˋ<%.1OΤ:yBżxI7gՖ)1{<N+ijȷpbPb+yg:j,5튤К'HYի! e_xBIcT;9wCsܒ{a:IC!GRh|$mǗIRnȑcw+yrF+@΍Ш'.uWF x{;A+ gj1]G]9qAT?Z+m11<jM-+!TL7zb6R`>oK^e@nۧ2޽D&nϲ{@?SH;heĭ I / =+ǖiWK?5qo7\L!4uLpCrRk5@R>zգ>5Ny(ng R7d mu87 sr9'TLuu^yD3nϒOWL` sdZ.3ql !82=Fw{qUTc'Eo+b{ދ"`–u}a'@El|+Gf h&ODŽ9SOΠQ W +hA𘡍S[+45S22L6"Xu]<.18_ay c[y ’<k }M]wZ Q?)ѫ;3A&BuL+ra1Aւn%GOF:xsF-j&؞ג  CaFU٭ Sѕf ۰&gg/CP݃ L[_>А(9^6l^[r p@6#3샡78AJBz/D})vS&ʫ.sGNvwn,E7/*lZI2SNN/ b^;?b0pr}̡R!FD9)_#+5BBo0fJǻKv Y*#=m`Ѻǻ@}MSɛ~2冺U &~w-ynD:@HP[ +^=!} dAt:/a%kvͪrd2ZEȁ]|ſzo0ݕRcӊoH-g~Nt JdX6娳^){v`u~w0!VkͥңY0XfՑQ"0fWxZd*,`<Î[?1) xA-.uEoQb.Q(U{&GcXo ?Jƽ| CtGsȊ+:\M/krim6ۊlbl1 #pv4 ՟{yU5A(p]ĕ=~ؗxRXubU1@m]s{+F&M5Xmfb,!(g b+nHH pػӍ L슧r^oM&$GSc- eٛ5Z_ Ώ3ŗ|_ޔѸ5xʞLP}L~~5ayrOd; J"j%d蔩к\z*xbϞ_c-:lS+d=ǡ#IR 8p:\|IvHlވ!ZzŦU:ؼ]&+N_A!6ÿ/IX1*SH`I:fVdh%'@4wKq(`ͥ~{OfxC1b;v񟗵K W{}.$ Zc?:˺aھ HB(^,a.]'޿=tj& k*$ExVAPw5:eH6ď"}*ïu,<=pm n@P⏹͈1Ǚ&wy}HTZ _,jtVF\ggQ_xs:hĭx@: fI78Jci#bNkۼzI9=/xY8i/U2 fs&/hhTQ^9lM{Ik @NcvM+iz!U.Spf㱉~ sm+]wd7<lNoJo vQڴ#`:$]-fWE3`5̒8rG =3uSѩ&_U5oɡ)Ty$ݙ4ljJ3/_vCRZIG5q 7pVSK aɞC#+f!^@[SreTIuEY 7I"JA9NADUFGݴǶ J$H fŠwm#tey -kuշ )r;4.'}+lGì`).ZMj.-8Zؠ޶UTu {I 5 U Ch2IY~L8rp{E [3#8C~50+DMgYMH2_b7d7&nL/"-"[Y~68V!Y.,3IZU f}~#y)2Lg Q?G\%Y<1쎎8O)XȽ t7YNyIlm,Sպ8mB|UL mKhB㗥uC56)N)UJ.0(OaE< +T5 a&֪FI"ߜ&h":`B5$=9"^4#2dQsʇ"3UU"ފҎJI\2iooYFTށ]BY _6kal9dnl+|4"d ,5wX)OAPRQb>f XmE1p#!&R;%qo\Yp}o;3`,EٽrlVb=*!XHHUXc|lMmR^̈́CˆBޛJy9+q#(`.ħ՛Jh.d)@e^2@ CfCc+z÷0 ȦLNRF]=qee{z)tw+:Smrhe}(Gfj&WF|Gude 8fFbEY$8zwq%(EBb%XȺٔcDhz;5" b9UA=%KSXG\UcR#/_ΈDV#RW,fT%#.}\ea7mX"^*AO2[担4 bu}][m}]@(`nz؍O0E؋ȱyE:Amف_YO8Ev+g .$=F<ClbVҞoOPUMA|7^S$jͯ"iЏveDԅIOn6v݆W - C9xΕx@(^=7TWSBwK/ꁉ>%}z'{- AD6, AZ.k@eDskjkh|>sp('CrC>@Zw&G;IR:{ /?*TYSQi벤s$ԸOdrZxxhjyVƪZ蜃ZXLJ9,n!`ֶ2(Q6m1Ne!J?m@. y*odhqPy130t߾waXg$?Sx&|}cV9]Ab{|#uúE릍883FJRN{2JQߜΧZv&?90;$R_]mI $GButX1^96o`٦\duZMPEz}ŪoKX㦙%9VdzèrzkUH+ ًBh[4AeEhTi{GГ]V0EP8)KK ч=1 S uܼ]`!0kGH.@bUIVgyV}Z ' 2@:Z>7ܞXA9WOՆ^h]]SDړT+Mp| 7fgML]dPHan!~`>0H%XpF)+ڮU`((D,Eno GpP42MHYISf-YՋj) ? jӬJ000c(؞xOlto@ rWUչ fZK)K! :gjAfYۿ);D2@ArudYP픓u,L$Z;~2::dH mf ,jmm( lStq/m1b9Uhf Ghq=vy-<t{tpNbŐ5R3'Z!=z{|N#{P0 P`[5C8"ljvu6T?F@8ah;pI!I0NUB]t61RR{8 6#YΜ <Mt؟ǔ*X꿂ЍsM 86`=ݸ=g!Ĭǡ~3  ȭLH)d)E6\.\xUY>S 6yc/sFW݀|& GX' \F~pߣ`[" vcp?r{bXb 'Mp~/! ?&Clk} kzQ_;%M,߇:a O6EYˆ/%Btf {JHt3Q,XrDߦ“[a(`ZFYe#Y7_“Gk;+14a dxVYLVlͩdqΝXZoRa bAv4l<#E}^Oܔ{yyV80X:i 薤9 tIT.>D n|Q!>TOƎw(߿:l7aI~&_!4Na2zK=5m' eNZq<WwizMOf*>Jߒ/F4 =a&fk  PȕF]5΂>۴*c/eGE:8Dы,w)!jSupkp4eg);؛^%PJ`^&gM)CGu$9#C:YMD $. .6U:S*6cIVVdڸp+- 'E+*R#jGQDY2ະy"Ń'~dL?Q;wJm|Ur'|Li1!$3ƥ1_/R̃n1P.\f~;oO, :1CePRH2HV;.HbXK9fst'&(|ܺ;$qW1`[n ,7$ 6;rHxнH[B~M(Z0S/r{{fOidDkJЖ;2K3k(%PSzggg b' O_2cWmlAS\ۂ~JbgRi|Hj{"izR>x,4#0޾`;tNXI(U{I~8ҮZ 5ƨz^~67}x(i2BQeJSm YN'E7ҋ[u'1v#Z0ylM ֳˌ{gA>Q)igb:ӓwپaPVuL˙Cf)`D :0YQ|EH 2ֆr ,H=m %,jM(٨)UNa" mѾc]8mn(w4Yd>EIu;{wE)sG/3]PVK* oRP':oAVؤ^`}a=2p>ˈt:ݖK`InKqe>e=y7 BUeU =wFB8l@sr+;33 q[f858 }3~mar?f3R$фedzPKhDBސr@dGxɔw zhdTp#޶^4XuZD>)Әi Mc5T&p/+Ru81΢R%TK@ƭ:56 89U L1CR,S<'YOF%57$Qi]ܹtp4[g̞VrRgqBNR p.խ$ƨԧuK8 bnZSd^_t*VK/cn0mOrڰJQG$F48]ڕGlW=kQG$fFE]j4xZNzOPz8N4NΎ,씴m+lBDU-`/"ڥLN /Op t릔8%S5܃ք)î_Rq i7Xa*sMs[V` #~KOp(&7'˶''1#!L~R 0eT@.pPhSSP( eV;m&2Et+A,9Ch}s`T-[r7N(`޽^7=alD\usug ]w{ ᡚ{-c?{^?N[ap=jP+a㖦&eR6?PR<&(a8Ŧ_񮼢D,cCDNкh>Um~{KM3VwULo9pP~+q2^ݴ`p 6,k6D>Y,I~g1= 48Le ;g=.'VwMQKp:d^UQd^]SaRagƁ&[!No7cIS$3~Y&gZ' OJs ҂Z[*a3HM؊, u[C]`+G/hfKZS`4Cs"OS +.Z\QsgC:K ]7h!4Fn /+E: fiٶqW|JT: @ LT(;kK#c{?Mg`w5YPnu"AVu w?PHMhJ {E׭g]nY?Ĭ ojtSk!{\:G(eXLr!>4G7ZvRMp,ݺcbX?S UgVTW'@x1?onx֑ JHJzwTT.6BWoh9ac_P8Bo3,Zr°C9TpZ崯!-GTy}zuWYy¿RP:GY1FCR{\/SX_YCGPqKn?)f"0}w>AɈQ =4b; MQ@7V* Ƃr)Av4aER4Yj[}h8aɖōIE?ĺQ>^ I25\"% ^I|mD-gӎ\S2D{S@)(UplYUϭPE/wGx/EM@3k1G: CBM _\,|l3͚L-7+0^H.Ѧ)}p-辧 2mc>숔B,3B &$\ȭk߸x\.80PrXiK6q~_T 9es73v/³gN?`u(2y]peִ/)=)~KγGDUϢ%B7V)N/"("h-fRÿ>e֘ ~9π*uUjq |CVK0{ Ζ@i4IX[IF 7H3mcS[‚VΥ^wsC塚48 RwqDL&ڍ&4#“P?M$8D]#X=@ѿ٬Yd}xw[=P{6$o_aF3abA0`;*Y*l+d >3vڅ@=^PՄ( !JV,FF0iXk:CǞ||ky)c776/slՠ|mU0T!/{ξ+xe'T8I݂ ҿ:_Ud;dzkk#~#DjI.rN9 &%, Ja.YOag⥷V @wߧ9?V\6$"sBҰKyCu +(kn(d`.n.WQ[bo'Xf,2#jtdR56MA'b&K5p L"mRcvAs6+^qϤՂ@E|xT|<4Y;'v`PuTA88GH#?se&YӲ OҙpQ*v|"oM!z'b+Z>7jf d74)}M+БR(/1_zl]"zpTBKf"3uō8b#+ .wߛDd'c{)Vgqx-ʡ>c5X 0ѽ9(,/9~v]DX7q^@Hc ^lYC- 3ؘ JyW2}识 &BhFZ' q"Q)s`%G@h6#?ӯQxU0 㞵:1Mғv;Nf5xyfu_;s{'3#0"~;>k 'xޔKWPavG ;xzx?_$#Rǽ|疺ATެ="ε_rvJP}<]Lg,+҄JR:?q9WAsW4,h t5r_l^5Dȵpzvʙ+k*:״f\7tH"]`54Ƈ>F'ğo@f~ZmYiԺ4ɒ*y`\6AT!ΖIN3D^5;o s8h@@GƉñvPKd&b),GI=/٥]5}(1'$K,45mb~u߁@*CԚ[$:˅Hbkߦ_j&ܡEl# Sfw-rX U},v[6Uart&0(Uc"+FmW0ٝ7 4{Dvn^"A ^4M.FDe̚&.[VX|-t}Y1RL<.Qت˃vFKܣ핻loK܍VwJ$Ll%fkL4; xqvAtR8 Z|&{ü6ٽAfU} +b3֟0#pniָy%Ba:]Bp&\-UkW?軂W Ԃެ$a^\*02V_e MQǚeDb3Y}EItoXqSfzwEb#/e4]M/1~2g5톚[ltJr*s9R-xPқ "9_0W?j\AoLP|\I@Rm)cG\To^LYUQ -Q7y0Sn]wYNxVɪcT\r'c}ݯ7G$Zr,+& %%n,'<dlX֚T" HC\k)7B5]tF⣪v:AKkRFfK= 繜ƹKijPX'I2Xbi'7"֋7ne·^4XYZk{hdMͳ8z4YhPHWkA|go4YZRȻĝ D١=NhqwB~CbS5NtXs+ș?dؒ`l00/XB_ ܕy9_&0D~sŋN3`P8Nhtl5%b#; i8m01U Ÿv9A:U a=/CF({9q&*$ g<dU>'f,}N|n}J3qEa:%IP}(Lu24'`9~[O Hznnt{^j"d]rСXߵPSyߔY0>(DiF \4ϏҢB)t .q?ouT6#S)4Mۋr+v"$vKWk!%٪}GazoV{y|jM*;U`\>]ߍ()ܦyRv)*l`}S4jD, V{8V%pr"I;޻8Eb,s혅 T-eʓ)rO3|(P "Į+A2L=ȯ4Wϟ}Q%ۑNmtKt1vE*g<+Z. '$"4[ViWwym֋m)wgF*!c-3 nWdvf~7Kp[ɟ|u0j*&aofV"!!Ca0au:j ֥_Ҙ}}2HnsD0-ddqZEx[ kd D}qa⼟Z߬S)]]rVƌ׫^߾A Bf6Wc/cF0Y CobpSR7Q%N;Rvxt!WQcdfz$Q@ {p3YkmL`P,jm M۟cI'.͎m/kDf>:Ds2#h&V=z0 s9Q(xpi{FݿsΠ0Zj^=$7U.FZ2D<VpsB MaziIBQ&>8(SMwOCqh\w5ײ4n o  CI])vgjE LCl[թ{0&~PD+fXQb\J]ҽf:cM2jsn`(x *tA1EVY qvON03b72}GM&G|eBf/{EփL YV>Avi@_XXq>16к(_)L2S]qV ,S`r׵o>ryoPs%.ϵ@ax1 qkK5<{b /en=Q yy/Vh<E註]  +==E0Ÿeve I ("1VPUhށoN riq[J&Y )c38HA K/PZq?hV Ů:`Ht᪞z/VY<Ѓ1+/_[s˴oza).NFR ]ijviۀAR19ID=B,jcCan׀ҳT|TL]TxvԬZ!Dcי?Po<4pFE3b5+ dopvmxf8,*3'c9V{!7aAHIkU5)81Gu =Ek%VEU-N?Tey^{rt@My.5: ?J `(缿nyrѮp Tn\s_9n#L@._$열uXy k\_g{UNUZCOqtCDS=>sm+XPǃX޽3vHd;^M ۸M^8pp+cG|,޲G0J0"qd8qp6 Q*~* gb+4?p nc,m੮&afz< @η/tF/_CyMؼέ.[yb6XK:b鍘S'oh|R:[vHAYI50~.h:e `nj*YzdQA"w: 4^xTs߳T#bњ54构ݑ|ҫs7hXd̺U%C' d,l25)h s\[hd&Aؒk s%ZeN8VQQۮUtB:ʧ]\Ӿ?Xs\@ę|x}0haiq6>2Fwz^,ƫxSg†2z!x ]j\ޮFAo|5=;o$]d䴦0;EZYv+b ܩ7MW-E5Rfk|\^Q9Fm;[A;?%{ի8Q]QXQjs㕸c *4Ȍ7e׳=Lw {dFpñif9MUvT?+r bbA8&"|] +)?h0uidܬ[{?sf{y<{d%ʢ}P-EP1]ܱk-Vb*/iلuK{2|~zn~l;V-g8#C3Jl}rpɋysUh6_(]$ n|;;%SC*ڡ)健0V|Z x$iKM!UFk0gxۆvD @ӟ `p\[`3hT_jM>w(g`klaQMv)W/Oإ_{Ҝ_JB8'j.`b W"Ru euU?@i0P.SX“i3x=_9ܶopE:'\Qӄ&bZpVv uϓra)$УГ34MmЭҷ"2p "<+Η0dM_D%YO*zT0j~*ߴ%9q7j ,n}g%F/ )3dہ*Uo9W]&#X}N%4)ɭ#)@ݥZa jEН"b,Ѡ l qMg8@*ߜ2]oIeȎ2۽ou4U;M)fw`Jf\JI27w\ 'k:gzN3w[8 oOda@|=8ڧM}B[Ʌ랩SKx8!F> ~U1u@N>iХO`USpҲK>S'$ DPC 0pP m$~ U<.y.悊)P=Ǹ&__Xse!ti)Z!CH'ymw80j%|ƒ*H|(0DqdU8,}b9.N^*96*Yk0ؒ>p÷wZ[ {P4';l!>PRN~vb=W(0$Ҽ~ӆ jB i/t=4V(~\vf7fUBwfXPϞCD5b$]3Vi-%y/$!5 £&EqcA + \@ 8P:sK;p&~m/Ѫ6W4;"uWT%qgtBz*ec13 ҾF'8~@pXep$,3%c*f1@."i޴v6жuy Ȼ<41CA;'8`M6yȵ.El~6i$蓈c:쀮&e1ყ[٩~ Ao(t@Or'Y4c x ^ D'Fk>Blѣ}_|mvBJ;ͮC H.1/3t${9*VkY(b$Ag/h́R~xܖ,}41d9h 2t=a67Y!DMw0Wxxm~vT ^0p.YKBg[Kf B҃0s#+-h#smHZ} » }d W$l8\]`&y9J+8mW)ٟ7gX`4Q AySQ:Ӛ#d0f#&'.!KSJbA_]˓pǣї_uf;^q>udDyY>Q(L/DhqK%m%uϏ]C)CX1u̘/˙xX-D3rVpB>5Pk/ڣl t,_U^%(ߠ1ݬ/Lg,T>b d{]2Л_x0XPF7 3*@gocS-S@k(7nl^6qpN bO?jeU@#ʃu 976 wLդfU-ph.^Lw! -0R:E;!vh2Rc68ż_ؿ0"pߕ4E¨$]&˔%\o7aL N^\ĺ \Iy4s^.htvir(hP/T >8״41? u]e?](ݛpP(y>Z+HythGfBΏ̈lz3%5ڜ$ a\֔hk_n{qѵj/pcQ,:k)^:Ĭ@ #Ò$x$6)bDoߡxRޜ$` xVyQ4ǥK>3I2V"v1gPj_́vɾeonQXRD n?^P$!ሤā32=D;W7\s= *L:S~ݹLtz I!8FJ$:+YkI|]QAN1D: B/Fk|A{À Ľ5ڗbx=|jc9MJtȄ.Zo*-SJXk* [EOo##߰V]5"^GFMj/$?`6%FdZ]mu;qʄGA^ F|)c$ss S`#[Im+yJEN^ee:[=e56^Ry+PSKy0Eհ<Dfn&k3E+sw~МMGK ^;yŖJԑ+P N/ *QbT\aRac5\qL]]٠R c:q~6d1eZ[,r>w`V=1I@-d&bD9&3N(VG|TF.FJsTчtękWa)hoJ-J36!}`o2J£!-ln8 Aa.O S`E8,m@j)@+Mlikҡ@Ch1GTm%}9.d6%>¦y;G~9SQ"hY`YOik")_]c Z>>),>1rɨm~OP */#ۨD۩bf1TrhLX ʑ}ؠ(cl9,kpa+l8I'Jh]tҮ{kّm?`#?hOzdjtJW3:^k]pskCf~mmN-,E}z8g62̜D(@38t$5l<:,>/9wm y>K88: 5e֊p7 iQ=_=??p/qjBMB-y47!uUa4Y3&ڠHP;Ґ|C.<7 g(XH(ɯDgKͮ~nǿNQq's ;% /6ճK bz{/p?)ispY2TF "BdY5$;*f[tt6{$Vefdf+#kT$y}o}FV?O@Z幌. J3‡\X=w.l.Z e~ERHfzN->#YCTg:'yZw ((VbEtx"gR%A H 6@mbJeq*'IASK1~aGwVƖr,[(,_ U1nPAKOŭ ĈrunZ/;Yː\ ܃[w+ G[U+a]C}Wے( uzPмvDà0kHMKnDS;0I&:I.Tpi+KM=0 VIςFsd}; 2wbCSA.O•,k;JCFHЊ b!e$*wUV7# BRR YA;rEL8kRom>OP8׭bR 0ǂ󏶧 yФ'O6-yWtQ2p\kkT\nЭuqf†D8ހIh&[N{,"`1X3If 'V<YTt@7;oH*?yp7xWuYk/:pyb;S'L~6H+Cҟ A]j^ckݗ1GJ?sfM_[mݢG]^CfCy|]nscl $>.7 nH!t4*ʙߓl6kj4SQNXi_ѨvwtQM"O+jgh#aaSpXd垚]4>IJN ԫ({ :JEƇ v]LC2ӫBB zЂEY --gf:Aszi4aV%qTJ[P{ gp̞ A˦w; FRLF'CaTE$}˩Zrs<[xPVSc7h;a5 u~4Y CPH$]i E _':hT93pЏnڂK(RFhk:.L, ح[՝V=>1Xe+۔@^=IRq?^&*rhpg^5֯حKjiEIEOMFO([z9˪@S ߄<q-$`/\zj=P 2WŸ: [ǤR*Gh.nS*J~]T]\<45<"wfs P qt[0Z)# ;'iQ|"+4NڹE1T͵nC!R赚Ӻ3P=< C{;K(&Xze$Hv0j-.f;RE"YJ4gFX*̠GRR"p?,I؏o+&f}@oe9TCZ_J~ƔӁNd* _(nBۊUKh=f7Xlq7ԇbJRuK Oz_.s1R"cXnuȂdF#~ w` "\zFYu6s2h͚ aF€~eE6,:u:|LySBW־ExfJ-=7Nn2 dC1k9 @X@eL^: t̔K~n']| 7 Z]  TL?Hs``o3.z"#aR4HV>4Ԃb+y֮p\ W +솁X_"xNRpu~>+ -V`;c2W6x<qSmV+:XGIU (fGhR |Z 1;;^+ǡ5.Ÿ;7i{?elZS\}%d+*nj >A}齵HU0UUQ\`o]{=k:UT%30Xh9|^\r0 Arj8Xpx?9q?6;]~e; QQ6a$U_g6O42ۆuR{yM1 5J#ǐ-G>~Xb-͎zט.(5Mr 6_f=&_ӵńn= Wl ˷sW )H8 ,V20'*FM|In¤OhŝT#-L,w͛r6 C3rh* .Ѱj)}…Dg%i:PxZˆ f}vffު#i(c4YׅՅ%5 RjeFҡ7 7@$4}P2-2أ,1߉^L嵮mVXcc[] 6>`;yBFu}lD9l nU9bDd` RFlOxeu+U+V7.MOR9P7;MbMw|xƝAf0^e  `G_G@ EF e07bQj#0wMjBs{;4V=_1YD_Sy3|N:Tyec!Tti$ X=DF8:P& Nq}M76gxVFߚ5[`+V28 /1ym~|f2o n|gcgND>3TCF)%P[2507m Vr6ͦ߇@p%zv#F JU% v;@E'օ>߾JB 3Z(x&/(/Zv6DPe1m͘/.޳%Lz׮  U0R*J0aK3׎ chc#HwP]g()#0}p:FLլјIVTQQ}Yc*~-\dӅ,e`~e71{;zS/S!6PT"NzjE>* ze<{C a?2* NWbAN#h" I[Iv}=4yuWPe<]h[: urkqxq1KA*M=@Ԣ$dY^p3K[67(Q?֑J` oIIYVœ";.̩Ʌ#M\ȷ@HT^֥_ܯ֜ɳ$**Whג͙y CyOcK)|Ji.shP2a}h[֍W_U-t c M@1JU϶>XIܣ^R,mvf54˷+ġB+=!E^-(=Kyvdvu t4 ~f,^1&ǐJ|6{^`Op+e1"$ճ᢯+=wr8Ԩ/ؿ#<.ۑq7L~?MvHӋ9|Į @:.$@Oj}ҾsYñұᏏQ{Ubgswܘ  ơ;= u{P9,8Iϫ+7|(:rT=d^4ܜi838m{r@ X6 ᭖DXBNfkL(̜TW.bdЕi465AP{U9]`2=e6rSFZ:d!DJƱs ϝ*;nAꬠThb҂OX\u^+H=N_,U͌:EW-nAʱ9VWŅ]J9@t.[cC/~/wQ{sB"#"9a`Pj{w0i8u?o`f8*amQmPg0!W˒E)tϫL5x!U]df%B/R`*h{jÍ!xfv(:2pց[JKǦp "Ŭ􄋊%-L+mʭl2g[ch´Nj)闕`ʗ~RׄQ+x2nuBDN<`Sw&6,"wԇ=tVsķr6(uŲ4lΧutOЫ5ܢJI飩1DzU[=pd _=h|;oFnJ#+T> < X$u/?<:M$%j^8%Drϖz*'(,.;yoqrSDFTx5-I;B*rȬU,9Ti.z($jP77YMsш+t8|͊p?*bu!agiTMHD K^B/>uJ$k TGfplDJrMW(X98%¨' iV234`IP+R)zۨ_UcN0S5!1+ ] 'XF񯽂T::S kFhR['6|l!30HqiXKOэ.1˾mF.Rez^ IXɚ/.ƫǥ#@z. 0y{*E:gNѳIDC̭/+Qj o2 ˣz/l aN@"*=Ndvkּ1!;eBEؕOGT[C0ӗ$,ND[Pǘ]YR7%AUEh!f*?:Qaxyw#es*||IYUy`O5ʼnVDBټ_HC\6$%8╉047:Ȩ#ݣ^7ކEW'm9usO*)=`,(綃+C2Ko1nF4Y=&qC_;`n?(qa] G᲍ߌkڃ BrCJ:%9pϰhG7qg[[C]ra/f+q^|?虯(ajI2A:-lNULB?_ &]3K/º xUH 8- yZg}PkJD3y]mOhfH $CiW9Q%0wn.*7xq|̝=NKi#Sk&CgybwB#\JyjZDfsx*pM+ %ixeX޴L psse&dwL/ D?dpn@ }]Wֻ'@c] %uQjjw>1 fϛiJybRձd5B0|T0()sqO~>7&~qrTb~u' 'Y"3= [0}Q4'Eq`g~Dqc&(m1?P\SBi _m[dcbu2vwS+˵ i &035tA7)ZͺtYVB 9NOڌ.>\ )e}JKW-8 ( Bn<'SY`@Z]DuE}Eb_EQ"uVF6r1c"ռk3@36aN4}&r񻡋1Bȿ4ݮWR}؏غW cbH(Ы :SPis7# ''IgiXWCBR3: bo'3 +;;P g?h)ilEsXhǦOЃړ =[8Чٟ(0r[2=8GPP5aQ18grL]&H)}V~nMRN ;GRTQwExD,րGiq# 7_H{Z. c&X"))>&L'd ZF9zzɿ[60" +꾣,gPipso!r"<1@َ[&TAEvB7[ϊ&W :֎~v-VE4{6p.Gk!UE7[$t34t(6}d㍞nԊ3!oM7/tPqfv Z#<teljOw/g .Qr;SJ[]]b0Z A[1 M)[BeBBAL)֖Q#FǴi*VrM~dd)m%VAıPE XRg#YՔ]ɻ7ڋj~F!U t1Hxbѣuit }+E,sv z%0:;1f2_Wk/qyowKto9!T|hR)Djܧ~:vIsw͜U܍OJw H֯h{ɑ]/)uc|RTBMjuыk{i35L򍰽,gju#tE{2\D)DqIV\d\kHKCLW5߇QW q0!03rBg%hĒ`fnm+YWI |QHo])*6W;Rm»kM R_"GU]$f8"S?sU.;Zs[F25>6YivY=&(,-JEma ̽O>]{puSugFi- Zf!Aĭ,nk%gU.Δ}f {8OߓȳWUyFQ.ŵ'AM y71ˠhWsEL9l7 A3dE&V)JA0nȁ:fL@aLFK钇 A'>knU\((ꐍܔNiDqJ:`8=ys~FZ*VrF=%AC )7LJ7m 7ؘr/5@@N9E>cMX%lz~f| /g=m$tN]lB=y]_KY1L;LǓ`Rt&w9yKEe"_$a^N?;]d`j:=pjb'C\w܍Ei;FbdgSѽp Wjb"*.Ĩx' \%FWd0BSUC%P%u" G_XfU"0GOf$V8|Ȇ^zB[:د,⳯0 *Di"J=t푼 D`z{heW9Tm 9['ʍO4g3ě5,Q%"Ga՘Xk$g2H*Jzp-=NusVܐ ?' n_S,)^yyo@O23~"u/:%gL[ GL)_@ :BH|: 0/}}O!GK} +; `p0.VayT7RK2us5j PX\,6G&Z=|Y۲CNZn}ؙh]a(i͙Xӭ@%&Bz'{AM,w@bC<ɗV{zZ&1{r5* {&q%FP,Kbì?A8&ܢ Ұ2 (ʎýVizak<;xCQEE{˭O k`,eO Zp[NԦk,s 鞩@fs]x47k~BC76:#eCzkZZe8a7aWcǍrtO)2%: kqV zF5ٰw'mFNI*cŃ`/Yb;VœPh# !bcKwQN:kQBv_Z}@t8K"ߕ#HHASZ9fyVKi7IΓXqFSuʑ'9Ư6HG92{%7f;u$Ti2he3jnc H{VQP~2anXւ!GP0,;ٹ`vp6Iq13>]ڟj#9 LLjP/N769-J=چ,Ԏ93!ޣ*9_+AY >U:ƹr6 s<`NPoe]>o¾}aG=T6eכfل:nGA16H1+OS-pBr>PmKnf,H.La)$`3mh#CGC bCaB_`keo'DE3:" ~n@b\  :SN},II#_&R5\t!j+eݔYqbj-c|V!3ZIàF*Zz lm!LI|,]GU8#*la NtN4Ka{Y[;Хaqzq!9@^[oSwƤ} I %-_.?+42n"M`6e[|#,F'8^QL׽Qf F2L4s/KfBM10NTZ|Eo %;{h}<`"3:a= PCƲqARȉ1/+e(ͽ_OQQ 6=-gwT00iTl2 ̈joq㣿T.Kwh HS~YB *8^m L?[ߪ[Hu=a3) Z-EWμs% ~!DZ#wUEDf[,C xH8L 8'*V"UަXƙʫH4iW&Tm*!% !ao:ǶB`eQnЁ+\F J;%6 z'@ݝ )-FFxi#rie֢Cmj5aAf xrWuA!֗6T+";( R#5 ?GI"H3 Q` N+5>>9 ,+k37 +(I+gIȻ䔧5!X2Nz eKɴ- /NÚ*KuV~ R`8o8n>΂ ϱ-i7hsz6]="y#kՍE1eBhz[2n,!bemX!4 ֹq+Ordu46ͮ~!ŋJbA4HM{Ԍ C䞙=Y#1hFRв̗;ⳂJ0L@&8da"Ued=h䊄&߻5P YidẄ :4岋OS_k7)voXf=K{ mߩ,~5]vrFMZ}+fǶ^u6uTjKEyI:2F Cs{Qnf KR8KCiژ_q*hX[ y-=rZ E2rlMJqIMyD|eHӮL!n~0rOGvlH~Fy wso 3*HERmJ +2anG-+\4T¾xIؐ fmFblaP)j+fs?̓~H&Y"%E#)um&!w)t\3T!t+I嵮~%8>zH;;և6RNgJQ'vEeVo(pp B(ǿh#_dɞÌ@ Q[R&s}\5 hPi1vp-#0~+(ז Ir^#LG7jj\z}x< _\)n}\d lZߧ콵gՖO|Y=XUi9)~ZA"B5w(d& -G-O=?H~rA]vV;Q6zİ}s3@0dR#|ǫs19ҐTaXd9v%2b&`r 8BۋSf_a (}~;eܔnz2]հ߅(O!wf-49؉40Ƽ^v"f[i.Ѭ "oI Z.I˱UtH5wb2rԪ}>mw["nض$ˋ_1}ᦾզ>'J1k*IvlB6 bM{ f U%8N`/@}wHO 'h[aQ*2?cס+Ks[~*?*1YqL;>oz& c9/]@3y9~+TΥN{39ES ־OAlQm)LL|7FY^ wgT(m"1!0TYw6CǭLp_.IK^C.9Y nZt}Fゖ\XvM:7OnkCwuYKtH/vhtޅ3K\e+\`#!.޷z(Q8У@c l0 Y\T.z& Z=1O $ȏ$E'KN3 d#N!T2;bľN|%bK͎sK0P;Mi:JzKw_f3x38 ȱ;7ݸsV,RNU&hL `%ɗy;>:|`wz0vP c\맢5֟|pGT|sLpL#0e_fk$6Cmp4 rk8=Гȴ\4FP#LPaπ|_q$!q =ŏREʋ.{7+a4Oh&l~%yP>)wMm'd\[ИYayY0>~M Θs>  ݶ7\8*#7owc[(?˳24扂4neӄu26R='(o ~gnDVP/{(5+-]GNva0i,.tw#Ģ,􉀮< 8lZ.*K'@ǻ2mEa\Q)ڬa*oqm~U 7&Xj1gX.d#_PcJlނ11 !Lg!|Fm((=*aA^2AH AuJ'y_Dw6$h&l:lk+t$[Mݯ1>t-]2_k!;Pl!a>:^oX4a`NmDo[I4$Ga ͱṁYn#u9BI%uFv]_ZP;sdJHI,ukM~ѨMjsi{QX -Ŧ8SS蘑XԢw2a"UE=1\:Qҳ\~\,2JJur7-9wEorxdP^U':P*\LUڣ?ۦN~u9t z־3 \z2,}>?e쵋 o9~cnDYQŎʟyC<7([WۏdcD>ca3/7jY/K(5-Q=; @uW=stl{N*"h6!H0-5ۋ3bРFIkէH 2F eʴI٧ly~!T\o׫tTvZ[}]mf.{cXpS`V6׳6i3dNHC @3JSAݎB&ߤ[YBp6?Lkl/Q.^<*:xKXӖ†ztٶ 1 ' *pr\me'?,lu$9GpF8Ԙ/ jgwLp%WO}YȀ#tTԸ=3$:KP( ,T]@%|/.@v>f0}l^uxlZ3D_;t&{+?Zݬa*sMJ@YܱlCp}(]}eV@li%!c1o6X_ p<=KDLWE):;NOEk]4;|y,*xfr{`ް@(},?łW~n\X!l[  dC )R#2X ]G>T-h_5tTL 8%@dODw Pۖv;u\+< ǻ@^f/8lIIPl y߈a"/~O}{ fQЏCߦmnƒvtRЧZuݶh931 5RkB邷qd3T+wÏʌ*69)YяHk/lv Z$5T܃)eL&j= ˳ӢGl!e/ 9%ĄxYq0/o?9Nxs&{O )1Wʏ1Md'Z^?hb"e+Š5JLӯ"Sp篢]:` !jav+)qc]r(O*-/bDOF(9^I#ҿ(&O;xCGv8| |f"0lbI\|K^:S1iHJM,8h Ȩ߂F #WK7T=kbIP@4aS@}NC - 5.P!@X 6'"Wf؃+@ΜN^Q)2ueZ=vOa )J^Fx 2>^%bԊ3jmzPjkG7|R:>֒=kahZL e$s"i :Ny=GC0ƝA/{[xa3^zj] JϷeLc8&4:9Kc-%ƫj x")g!d}ppv ;뱝kO:0<˶s Zu1+6][53[cTQaRt \q*&@> !j^]jW%?y0&J&x5qaGб 7tIR8}ZTN;Nq-Mɾ#yh* %k[ҔspEFm?Ճ7Q0 1aiF5uZdv %ݬ9, T!he$h[0jgR[EsXXhR^d~'Fi>뿱$m"M=+ zずt|Ṡ#0BU4<)쵶D NDs#0(aXZ~3U+г [)f<:R!˧8r3 N̢e3QǣJ=m:wՅok{%>o.^K rφ?A꿈 1|'RK@G$^X>N酸 B;;Ê i%.:a +T޽}*qB1w*hұCGn1E=9Vj DݝROf<6.eY=:p>Eo*@jm Lմe T{oUK!H^rY-GO'r}^T/TG潮Z{~'(v,[`µ`Q\p:'I~y|PtTl'K='Æ3f k0kXJ{G8:fdJc[۽%OBtfu%9PNǢWeNUeJ{SA%u9(p >Q.g!<ʸLx83ZcN>Ee1/;:h&!̹w\s)u46O! S1UFE BƨGG 6k} ` u2Έ_ (ۼ{ 3Beɼ ._uv=<(Z_9K78RMN7 xm$5eoϛu`26OcY#܂<Y2_ͰO`_;U&wNz+ 2*"?}Vbdk<<^6PßqZk ֓79 .t@E/V$ l_c8WrhO=!1c-Lٽ1u%6O OBԶHh% X/dPNb(YOĊxSB˵^?tC4$u1J/tcQ{lvƵʣ'F\9e'3}OH" "o 9Rv @=6r`ٚ%)ٔ4&,if(5?w}dS 4d]bq5g!|Ѓr 棔%KClT9ǃztʼn]e0sf-;{-`CfClD,kk*._q]|ۗI)"%e _R ۓh񻡞}&wK9jF uI]wx_Pf\nƩA-{Ӷ:leH!PbeG 3 @Yq= #_|y@' x֕fj/S,ǬxӺhlC),e)q+ '0OAY_[:TR$3S tiSN- jH.h؆F; CftםsMEj!tZWqGD o-QYpZʽPrNcn mm~ ~חBbmLٔsm/ֽ _^1yATZF 0U9wĆVPbU.?bm&_cZ+pRHu4 csBu;JQZW#d[p75~rK@y8O]Jg:Ȥr:I*xH ޡ`ϫK+U"(y Q~mSJY֎Kl1-!v[I0ztӱ15r-ꅜ;z^JG ']n V9v%8n,=[b0,H&|yj0VQUV:qBGSs> ''6s?pӶ#` }5ZJII0, &H'O5oB{_3{QSĉ]oV|%Þ ʾqZ#jQj=䮯X\oFiɸPDlI\uIrs \N*`*DaQ~3Oކ, WȶΌ2|N& øAS7P(ćl`KG\ncj 1ƴA,RmОx$ܭUar`Gt,z1M5effr ,\ek}q73hwpbE/b[5K9c A}@MI/׌,+Qo??Ye':㧏R>QG d4 ׃o0&ȃyZ&jA1' Ov_ol< h#J3~@PC'$w=UԲm7Egk7/B@|H"L@Ŀ I)*.{RZnAcRXE+^x!JR> ٢W WkZh]yѠoHv!ĝ"ZWpItOѯerIHQh*@,#kx=ݐrUi)~|:vuag 6/.s"I1kёM':d*l^ ( _ =q{)f-1YD  u`xw5-^~!ʶkHŤ,#BUB{tryM:{&n*_La(^}[O$o_HŭlKОF1!!xkLCEHخ4Zר N{q4[1KUR2Т? RڼFoݘS{b=0"?д$R$3'\lĄ~ _NWĠTes#ezwqf^&$XN^XY7Wr$YMU4%Pմz 1ܜ y: ^÷"æmk8Z\]BI@VɽT&沽Dt"8֥op~EQh2rɡ_p5v7Roa~@}2DLrU6ٌ+ {u~-my^DAhMc*nMyP3ٽn23=gv .\9pd4{Z"_qAmVϜLa˭O̶. E缭i#9"4߬)E*#eH $Q;ؑTs~rrF@Kf;GAHafr8h ꋵ#&15nTS-"<V:A',&SP#1m|عgknA[ueYTkIR)i-^ڠ?%L'[D}Т@m.$* %c@pO7 Kt xJ5V/:Ygr\{cnEx#?9N&B6?{b7Et@^|P 4OY}Hka5晑4' rr-Hv,Rc0*1B!׃aM"#;]G%0LMnn*<c(qfsد"׍V nEyCz1A'^oW>~+@\Nr^_RrϮɀ‚(QҎM.E3~'ÏR6O|i-m51-],_&h]1*C@wd7L:-vWMumk]<ӪXda -po}!zkEA/p8KβFP>^v+Xf&p6Ҋ:ǒa v[_$fx@(IϚ^(ŧP/w ׎cuI [ylkK14q 1 ~>EVLJ U ]v *Cy4`lK1 eqX x^ ԥ¥3_"fe6/+ * vigp^g ?ZAbLgTJJOnp3FL@מtБfFI9X+YeyWY Tk2e&@Hv溤^ʟ6:Ƴ@RO:gDY3]d;Zy`. )ZOG۩GW~P%Yc'9u&QgeE&zcS~tj׍Va)=⻜qm8$b^ש'R9~C4"MvC&I\(~ c UXq"/(,DGn884ə疹^9j%QJ {th%O\(:bYbE16 ʣgh騨spB<#7A0P=*NœMq$`.QF+>6IToiR3WWivaxʴ /w4ى"@ <>G p =G"R_(ε ^4%xV}pyB)Tut R}lM8:S]I4~jb'JUW4-dw ["dĀp[?>F5N${X;?S6+L.ccʇWhdZRKOaUm+YҊUVn;x?On, 3%]9Po<';SNu/7AV.3P/rh 4Qzczӈ7N.ZXzad\O9E&y8?(ҎqJTi`8iአ%a2 4~kЈBl˘B{{ժ C$ۗ\tvWr&;ub=F HXojgO]?'7eƮ"ebSA6\ܷV.LW{eL {U8{Hdn#=4̇/`%;2dpf4ѣtl۬:?qRx=ju\GIU, #|d9Q? L ::aNNv+ y[ 9S(&1.Ψa៪)Vxm7\}ۓoKwRii^V9i%莩B†NnĒ4ATt%i]qQy뢸>.Kr_ol[=/3"rm#E0OwpܭkJ.#Kj}$klӥxP%FKՔ*@ XmID9j+Bg6gbբϖH\{:ۨu}@alq/G͂3-1%BvnE 59*ra7.!Zb ?xPN}m L;%Jįe##X`Woбԙ:V"d@{n_ ھ%\=:q-XLލ>Y(@KpX9飦QA A{ K RL3d! Sq1abw`0l7#)' 1SN=qr6ɷI5k}rG&q*Uu=>NO)c]цZPS6w5t&&utW'(V][ab] 1IMmrաf]!!,"|sh qyѲvUFѸ*Vn[?&շ?'\-B&N5k{$&46nJd?VA0p-ih_疺:jL ɛ[u bvCː#ṞJJ:d7`-y,31oUZ!Z7Ԍjm((l&3фLҕHjXdTUކ4v<C!U;߰} l(,8ʲά@,e7y3okdt摾?sPmO3|cg|MT ;,t"-!v֯ 1Ta#=r+`Xr-':'f.c| ,/] W ]sMF4~'?@RD a@d&{J k-"x4~ЎA=^ҝpWT@v^O"RZGyBDbFS*r4V+ ǘ5X˸L?Z/KOj3Q\7x65^{\(U". vpP39^MٮPr",Әf^xlbcc҇eqUwwpAt\puv1p,ͨΓiA49Vv / yQ k^(6\4mB?&( -J#bؘXq`z4#mdkc/>@u?[F/NhmxƤ#Ad4s*KPJգb-ckg[ uZe,|Lp'EXlЌ{}jQ۾8>ںvi\S84ub%׌Nr'#ٹz~)="9% ll.Y kN9u~{8m4 &3ҹ|ʓDCf7r<) $RUBsLHFQ˸x#'5) ܪ~oN14F1_jSeSٮ>\Sq-B/ v{%;Յ>wԌ,})|'c2)7:16^s#`0zNл/O{7y~:h[Umqa4B]~ [D9^+_Z\阹K8?N.))glt @ʂjI _Yެ_9dtmsM WDKk4n?O`:ձu姮d&ağw3UGSpcyהBO} DJ2l?3%}j5OUQV!*s w &8\t:IYRɗ%Q|+tGg+e~Lm zVs3v{zkB{ $[6Jf-?H"?6[Z̩+Y(T,}/\^PLE}f,`9Bx/㕏\%jLts8:/9Œԟ?I>c o@b?vo$'2eM%XêSC±7HSGC`fO }FpW JJ ï~xHeZmUNWPTe"GX4`$[̅ oO6y>$eBl6n#B q*:>5c k'5Vm:)m9z y-jp lYG{=*Rfԅ͸ ޙa%Vf5W#%Cx4F˞C%7؀y2xmM‘d^KތRb!9v sQbV0 WAV-` 5m'tw-.LiƜGtJ 8t5P++zL(*:_ecTjRtE/%BEb;ajc|SD4bc}~P7ITcGx29x嘎rrJ5%*e؍[5Bf̠].gM cŕ7:5>KI[A5:g]jOw׉Q5Ŷ).ı[.\(y#j Ѧeutu=`.!PI޲Ʉ{YvtYU6\jJ6HHv ϫ=(E[ 3C@)w \QCi-L{B#r+( & ǯJ-1]0b"QPZm4.ӦGcRLpZ'Hf+אEsAn=UCލG6Ë}OW)5Ps *55L)6ab{C*2&[r y`C QvMJ7Gf}X28{=` x+3=qe6 jJѪW Lzm}&D.&,mgrn?% uJdԔ?R & e ?zP n5_˨.!dgGu{sfFq|pg"QʺMaNSkiAyGf nF6V9k' wL=8GF~*aivGv~WR oM\4s=|ŊP;)5+v[Kerj_.5(q4bh0Ln(Z@QvC!Ԧd-莘_>.G 8o{jmb"gE'$)iV\GӢ-zvwaph0xf'5}n"aoKBJIQ|?Dz uj;xbHOc 0PTz$CpLq%fj9H_v2V&#K@(cYWReەKu 7~ԄA0 ~KW{졞Q@qia!;CI΁e,",MbÓ@Œݒb@< :L^s9U(k]Us=l]rnJ[OE (<=.t8ݥ^Iq2X|{Mg5"OTĞ*l߰UAʘ#INk[|Jk\J2X_7=tKiT.E#5dž!7d-\XmalCiW-}MM,\&5\XCd)T)[M~|V xI̓YV0hU>22e5VbS:UE;zZX5E-,P_-MAj}^={iS!_a׸))B;%P6PZ%{1ԋ(' I$Ǵ{0NFZ{CW T$YE(xR`,<{\:-V0`";O~"}nܿü:dẀ|kCEw}wxa^տ$^&EL9FT8)vPv QF=DBy_`doHmb z#z l~QUC,ONH*1)BGEL`mfɋ<l{NfZ#$2ז7_om 3[=B|ho3^!N$ fu AW ʷe/0 5΃9a;/O i uZe_OE.bpxS.}>CR|hƾch[*`t!99ET' î%]`>}B"ưF/S3zws7g8?<|n1O[G p_%\1MdXjE9rj3wӅ">Dwuym|i2,u ν<,oiT%tt=`R-IG; /Kt&=\Biۋ]Y6nht;3,P/ 3g%ӒjÔ\+%u[y$:CJ#xEi^tb\LR! BKwTP&H$kBW苛XV#K2 0b MfgW#_e`ozCs:I8|D 5<ۓXհ׳&8Lq _hGrq -5{:% q]S2 0Ģ[)J6TmU<K)[6# atO\lKfY֟ +Pgqrfێ%$"t?[$@ ('$Z(k9b-Cּ%17{ e!c[!j8%v/We=9[MЩy Ի۪V/ʇ26Ac?5vr7ayhvZ9;j\Qb^D?ba~`C q'Եġ*^w @3VIp .H8ڸAFpt?2{mB0ņg>j!0VqO?c|z=2)Az}"3ĜU:E;2p7[:TB%DS3 Bme(&'u hB~'fsg7H`r1xd˥H /֠i%Q?ԯn4`z_r]`פIwY@Xkk WV> '2x*)G<5?$z \Wm:P8Γ7lZ:E&ιS4l< 0b{<^Lحsγ]ۼ@tcf*]bZ<Asj֬Zgg( S1̀O-d! ̀{TQ*'~'pk70 Ɍf_&=Adƥd*DMNvup[NNի]Dyϱ@Mυ'fH<=N 4|CķY! ٚa{bw­h!DLyI{0lƘI A,Π{rtR?O\\xpZ&]KDM? E={ (㾚xCJj HkZ 5`t(\+XOhWE.vb]{Ň83 Qc]dY ƅ;Un )qxC<ճ &α|]QHnjС`p+{ otX m¬p^FU9'E}D5J=$"K|UHV{Pzwܨ1mi(VLU*D& pm^`yuOO_?5Wq;:1giwAN@rL,MuxTɉDz?,Hچ'?Lh?/_W ]Yy7Rav֤peMYC;ޠ/, (] $G?nF{pgtUK.DWR=H (.h|GD^(Ksؙˈy~< XVj6u,S%]9m`;_ WE}X:_"ks mp(hǦIsVÒ;m'>tPi3 ]-xcc U^oT`=(ӭ_=SC2nV] 鶟iJg-x')c~^P !޻δ[*HՋ; */^K%Z~a:,̼`1vQ-sJ.ʻ2-)cPT!5wiH7s& WTy+e3uGw"b>Ͷ꧞0e<ɷ}اFT=BX 7m6R[yIS,0^eH:U8 ԃqEʻB(j>"`xr @Eڶ mBll%Nӊ|A-.͟)!Igɋ?RxcAᅲ k v@]kE)-Әl%1D/2BF/m97 Rix.R;˜!c?uY6=ʮP- ?xMH%Z4E)"~Gob3^ *| jGlO9"6SW:ry.HqeQ0/>#Ld&(kH"Ϧu}CxsZP1 ĕ{xLC`@֭A,3?jܠ ֑H7װm3smDPPddMAS^䊢786b_F coR%$=76ٙ& o ӵ0Ly8kg l^1,xhrMv\$/*魲>r}>! KKw?J xn6X:ĭHx81D`(j91;5ʙtܔO\tӚ%&/㮦Du3ѤAFQxG;ǤCr f= /~#ʫjZ:Xpܔ&6{ҬF}TB>_t}WiU+0҄h)˒6 c>Q+CQŁ}ѧf>2Յ)Ls->}:P;6^D'r2eIlΗJD\ g]OD|ή2as@p{}Tk X-voylW a|)O,1E/_1h2k庒*z]|dtb^`OVg@&=O3]er`}h *| t7o'џ&O 7sB5`8ZL$Z:*ur?Y /whyƨNlAX4s Q%}N\2IWn;A>mCKna|0-Qt̩BV8DW{Asm4乡cQ}OyfǍ J#Q+;Tf]`JKܑʹca#$*aNB+tktg 5d6~eDlqCRPjoM6#DuB$Y諎y-bxQ(4ڵ/jl;;36sA1}nxL\_veF6iLpjP.8Uǭa?kjuPO/ גñX'r-1v JmacLs*7X[ ф"`RSٔmET #CT^Ӎէ< l,Kuտ{GwS NS/(0Ĺx| V]*#aiCRponIW]8_9ɐM)DfGfGJl |+[[[X|զ)/e.1Oyus&;xǑjqL9+d_դr"H*]I3m-jYltu4-;rcKKN݆\l/v/ ww\=zm&LSe+J_zbpU.. el/U\Sg1]lt{"{b-]悁n$S#c3IH9BK>݁nV2S-iz'8\XڒAb.EaY6xR40w|~a-ܗ\xo;w9 LD:IK%Ejv9ZY_Ekrfܷ?adIM/[y(l08|S>SHI='}5BJZ&Fsgb7(z1Y.sW<ԷVe{)dM2<^5~Z  }b&j'VQ?lUs0(k:~!e=z6|ŞǑk0cGnf̯řO5[f1 C~%tEwp #2c c*[qxBIܟ^ŹͰ0A:X*;.4hyrl™*Kj]ݻ!]@{H-g9_ώKqCA/lmS&bE<soKBuVJҦ-SHw@xGd[9CǠX9w)ᮕ0W! m,3\`Pa..g#Pk4*Y Gmߌj͍Ȳ;e_!"m iU̴Bd;[|oo !4xSLH,O@.W#RՒFNfW9{iRqa}$UoCȖ9*)djL8Dc޸U,6Eu|)QiNŀg(->-s`7Ӊ7%jg:˶mOIDJ 00Y5 *y/煑ƥ[c;KصvwxY g( YStg95ي+z՝ Ә"8v,b(*$;`w#cgT!Vߒfk|\{Ü5S)De:oY ߏۍtI{?*GwWi6B`ZsO¬ܫ!E@W.<#m\|`KSj1zIIRjDiƸb[L xݼn#@uz]vT%'w{7s>y lD$aYFAnJ SEh)3Fc˳苗-Y+^b>/fU<9x@;L7,Xkbh;G!P{q)[Yl+PߌC3#K}~b(fvmm#v1&xÏU lxUu/yHXf!<_"ӧ_-~^fWȑ.)7xCQUCHY`7&TTRfeJ!L̏@Y$vlOٷS0Opq#81Љ-t]ޣxqnu`UB`MD&' R k )_>8ow&_9AYy`XC߮CƂfS>R4Dn!S9|ʮTͲMtpv5'4OU /Wcy6 |.,'L"Z' H_ehaC7J!a/)nc;m4 q4qƶ|}:\8@xvMA7..w$~j([!4 l"puX&nđ={6_b:^@+9vߑ!pz_cfMD23nMz}fwjG'gRVP%\T*9F-Ai՜2HԂjͮa@iyܮw)(6V~3 pzƇʢ(! LiS%-d|$RУSJ; ǹ+|oM%KןHnmN1=rO#%ɍ7SV Rl/Q( {HT\=0$U X},_IbNGǐSs bir!fl*hYg iB̃fL7>Ldp.@uyu{UҗdĊt^U'`Ym/o' %@I֓N2r 4[fvJsJ Atnp>v,gp4s0>/!=W׌acӹE;T¤Xm2Ψ\pj2buM6j.ﶕaa)2}p/T]/PTZ>.lٚrsoBY$nVY\4WB+`Ys1CO ! y&(4PFrrSg{H_|By X߶q^43ɗnߍKm&;E߹3PpmfW ~hirmk80|^>Aٮ C矋 2 R'|Ti)vY9\38IRc>s,N$3K Y5QCDl̜i“ 9&&Ml ~q5~]%G~ywG.~`k$uc?!@qUͮA=N߈ bmRfnNJ΀\ba|qհӝ:]7ڻO*D="7|( ~bҕyt%Dm5.$<;2]MF7ܾ8(1>5P} Rkg6p gHkI7@C8%Ohr^ pmI犤c-((ǒ`]jqO79qʝtr$ѺOd|9w^sy/Yŏ1'\q (z;֢¼.:Gk3~& Q O[ب6)fP]V"KyQ_K^*( cMzYhc~j0uMǭP֜N_R6zpy#>BښpҟHAu((ވ33DQlX7 v9ևZ2#Z!6ڱ a@/r)!]/Jm  7Xq_t]~AxS)${ևM og=u3 iP0@Jp/9l6;Gv$({L#.AjG4 d߯EC3u]"щ#. rq$G/f)Iްχ8[د^4j6}TG~]pܡ5lBRa)bk~n^r_L Kn o`(H5aǡe87%Ɂ~>Sּu1U`w˜JXخ9iS[Ԑ۔l\B]NA8oIHo.N2Jbg]J@^n ʃ([sj^ˁ<#|r3lשNn4ǂmCB<<)es%u$MV[g-q@w˒x8?Gx,8ѭ8 z#,,2ڜÏx}L]wYO}{bNx6 Gq^ʼn(jUvBk17_n:(~5vV/vSo3BHl}8qEOEv'd to۳, xS:`q^IwY"p ѵLh9Ilr^c iDt.={^EXh# 1 jHǐ*ޱ-SGdvA\FhQ(*4j:&!\T6+!!15SEf$!<]D"bN$D<# , SpH;]z0,ࠀו SP Bhshٸ)f`Jj>75Ns8hs@,pXM˲99AFZyJv ’\87˶ \b%NnajT3X}vpHv95$~憝e^KQsAJX'%qjbTL?&vIЛ$N]N&. #+! @a?68EwW,5g:Pg)dR0D0UjXoU`.{~ @uTE:W{v8gǛFvXQqw,ң:u)tlqloZ3:.]/9NvzDoso0 2b~Qz h>k`OV@ "BCRYo ׸1BQru^vVTVj&"{yV#4M@ kWJ=l_B\feFIbַ‰DLT9+ 1+(WB1O' exFM%ϛ%ў=`a9_V.Dx 'X>yPӗK/dE ՜V3yyθji}_r ct?ˎ^w0Xu5'{ɓyvPIV kz>zp+8Vڴ*DVOi/*>ct`֏pS\uI!rϫfjieI\QYISBɜaq0RVfݯzHYs*gry+g[]! j-[3jrrk6iyhztR6?K7]3M"s-M̨^P%ł}YYq/Dfp aeM.tO-b=NQ^+#AwCo9jUAu>,HNp1 U%痦Ö:w?Ӣv,U{7x1|,J^Зd02 B(kK~22J(؏Qded⎇E?~4 FT fr Х!!Kx?L^;FCǷ ]Q /b+^i:{DIF0\lNp N)詥YX}{w~?`zK KnM/WKM0!ol9"~^yl84xH2eandU݀06Jj8$Z%;Y~5Jvw ? 7bUhNmO<߫>3f|F~L ;9B3M Hۦ gdiXHJ f1BNˎ!UA}OVNIwMï y[ְR&ID l6Ւ309"іbÞ6AT4ZI M ˶#e[-Ϩ_";dܟ -&uViY=?d4__P n# }u@$?ig4IhRsY7&tӘ&~o >^Cx/+}<eaTMj3I5O}^(M"s~vL"uŁK̵8ȩy3ƒl1[{!>|'S/6ոZ# ?]0Ic@j"ptUpqY(A%0M }8r] c8jW D> ( !4ii4WB.*k B1q \8eMe/&#L|^r~{sx̓I& sA:L p !`%͠QOS@S2)QTes(Ka7xADO8lы+ =`RGD&q7&v5uԚ~m |+j[ 'ƈ5(=+6hZ:= +U5.kl83Rd|\GZ" ]Km+ʬ,BN8,}U4̈́D&1KC[;wGF!S%0* j#:qH Qa嗝uKVY:bQeyӡJ y-"R؞H1 y0bR^.xmCDj7*t?is1O3`&6 l]Gw#:J~hj"-nC5IiqE-%-<yR=o6Ba#&_V~mA6P=#'V? fp7/T K#͔v}0 ^= $u"ypZMԾdͱ2XRR2Kz{ZOS9ٿ[ՒǒWgSǨա?zxfp{2^];$s^=YFvw<W l5J1;pn\fx?LQ$w%D:Xv&9LN]AJ'D~4Oj >b< z0.+3!)>i$ݵ{jn<^NL]., jAxY a@19E$u SSXh\X<= rm$k+k)ngq: =D6tklOhFeXnxuf㚧3-C|伐kĢ>ц 5NÃ4~҂&a o  %'DJ<:NLG% =3;G*  KMG%IjٓлE*<}Rh Q  Aဏ5e -ק!ϖC'` ,euS#!@o'_;J=xz{a_ fI[ZrlX, rQZ<#`&q/PDAӇɉ<佱CgF&Od Oah߬g}Y]]λVL+ɶn4DetD1 Uΐɶ?^fxa^"oM3Mx- ^e՚KbmwY#cTRF{GdgNa{T*P p+εR+C}q᧲=D$gkH&W$pK(-߭$6o?7f5F6'5dTB13E)1Iy4aZ+ps-Z#X!xسL{gn~4KDt7~M40%>yvyq_Dü=, "fD ^,k&1mneH!~,56[s.Ld|$=̋5aD,7E]:òSx QRF+𦆥kZ%vfm'rԀl<~{,9QOv<½G5wrLRj>=:,RC6l+Nunэ\'թLTP]Jl}[ȳpĘhZ]{둅..ݚgkJ1[#iy,ES)zM Zׂ wBQfH.Gd'L7f܏x ?WB*D𼢌5궥/U,v9#U@ ؗkci$oh#}Aw#\=ͺ2nsѠ}gX975SfQ 95e~ y5>`BZʌT2#z=+)i皭Xhys :%~\ %}JoUX|@,d(u;Qs98b,~=U_PUjdG:WX$2#V:p[ZyvZf]Ӥcq^(!vR v^*$&&û쏘%/$Xi;krҰ :,reu ~JYb黲YHd;0T4~ݕ,p.HwHmSg [P|!L򳪢z`fpȋwC_ mnI}-wy`~/{*P#5 7Qk!+V~o^co"O+()tkxRlgG$jg= } E=R'A^M AǶkFHxYedF-+ŜcI KV8%+mUIUܠj+"1d?L;=!,[k.p+ _0lEl8L7^ۚuaqU{pPh#ّGQG¢ Edyqip~Y0^Le4n_ffJsZ2Rix| O7S?k |n0<PN&TʄZ-"r>Ᾱ$S;Ѡߕ7sLo>Ķ'P?V$tyuEj7k4}@K4ad놥׏#]6#g6.=AXu؟w"e%:^w5X^@x:'Ҡ/mLp!4ri_c*d|w+vQ+A:}6WK|+~T]"eH_HjO ߉N4넋`1m5,F٩@5͎wq+-9,\ɂw˷ y;̝"G)ч732mhSEWweD@NGjU ~y}oj"^g"#TxvǪbRSoM=/g93[Z/ew .GiGs$ FN;3u`lt ASCk+E#B9POs;}:&T ޴ 6Q|&/vRQ?&[%0Dq Q=n)/Kb5tCҧ_ẔkUt"#f-TQ;iUJ=#bX-+Ce¥.hݡVз4a^K j@Ȣ?dSpdKi#&RflPܽ˙TPT:u=Tci~ڵpYC̓ϛfbC\pc0?6s\=N)E9d[-UqnPׁPqtvSmL)2 2Nyi(v]5-8es&/S1Ĕ{0''Q:$Nӭx g oyNPNt]VS\[z B5S3yl?uGX6B${ qO<z: 2IY>VJlŨ tB󼤢m p#jY^9WD5M/$}g9k!]{{#UqũyB)Z NQYZL@]!_4;GNeKms?[oቑJp{|z`tPN$)47+o58չΥ="*Dp*ԩcż;= Md0bd@~꽮w RCWM Og[w1T]̀ f?o q1HRfơE?)J8j>v=fGy=ӋR\y:0ڤb`#7_+ JfB4̋|;*Q(Cy Ѫ ct_~“Μ[ }&}/8p0 !{(zUL&nhFux ;4j mi lk.(!HMX)$_cTu\Oztw˻˦9`McI /y= #֟E0ӂ-&,6,q>%_AGz+sكG?38#@h!8ľڨEaNƸu p7}_JB |3G5ȼ~ Gt#>d87+P#d =*Bt\Hg:˟I3cި<3=gORMj.}(* i>noGAPs~^%pTl!|5t ˤpt _\vV>>ӰVg$:GSPic0+Ⱦ=\"kݚ1D0ڷL賲$V BE/`tAo)3!os<,uCFũ6)m$5^D:\>M}HWɊ#*Kւ1u!r بlW0@}f2ӗquSbpq򳅨@9T\n^e䭖JDpepvm&D[/1ҾW%8rKFOlfrk׷KWQ\t'hM_ 3I(\tSDZ)s>oK8aj):]ah@^N䃕|;vDrYeh:=_kRNbȚ{?aJܼ _LԽ(c3Ԓj &miF^~=c.30ȹ}>HZQ<)3m)=dgze ǡ`a[}֩eə'(uK!r9F^K 0㺤XmjE:=' ~UNoSBHNW8oZ1oz[!Q2X(|8|8._< &=<+^{ %g,aʼn`㑦,@dq fbd8Mp;f^Fݜ/|8o'| m,UԷ39X%8 P!_/u݃(̵91E}ixnǹVn#Yf*0j=R63Myv$cvڳreа {7ləu< TPBR7QkbJCF돸C``H aYf@聆IMaGS{16oym,№gluBw0O K͆Hr$7WKڍ ӁaDNCb~ njWFeN3i01)ԛchG)DΣ /Wˎ*d,ɹ}]x_< :lЋhǖjG!-+<#/dP"1biP,fJDV.6+2e^'?L`Y$2X(8EU?L_ kU~68mƦhKkAZEKPJhn/Q5/)s' /"p{+I9]-R-/%! DŽ]|F{3X>WIbH{mܞ4+,r|2+_PXkx.5P,=d.5ˢֲJ8weEroiFAD?"Oja./T?!vhwb4-4P;i$L^tuD#HP "Bӿt:,!"UOJAr#"n }mC]M=)v2uV ]/ a٧jLbBiP-q'g'KbC2&*KdBdӽ ٢_s1"WasG"![]W%B|OC3RB,j}TSgrþG~u^5^Z"//zQ&[^}oʩquFĪqґM@Xe)};_?|c+RR^SaghYx(/ϔBGZZ(]2h{0l;I?NFm =Sbk9 8D~+\yX$fB )D"A#iu}4§>^bk}Tzy 5; Nrs*;gL4EgP iKK 1 wSj`Sÿ F@dYcyif tEù+Z9o?Qs.a̷ y@SzTC&DB<`Dh63sWHAPgh+%N<ކSLOpB?3ݕtކKI&VO^䩙F~˜@󃲡"dk<[D>7~>/ʧY\Xi(W V_o?-kҵ>O*isǡ1YwXf]k۟AˉGQK0؋{:wu2G_R1'Uwl*Q_ܜNy +#֣# +:e_wI]+V /A<4\># R17ݯ (x2ϝ9nu\<,ޯ@j_Ւmh,*0݇E@-5R5Z_<ۡͅF.9#=`)q,eyjš@ /^cTqF{*5Qb32NfS&Ot!rw16A8NpMF9@"j/L+5~Җw('~*WB !>#Y5pqwE֏G"@Q;(G} Cy]˕E:@O9=RPTfNpjLQY;g[ o#^gГ4=ѺpMKt1L<1aGC6C\wo7݂]CǸ 9 ,' `#PgLu`xvP`̚Z,z&^iϵ?Lw$< 3ZSQ} . c(.q,lKd=gm o."Y Tcf 2F,FH$:q2ډGķ3]ޮ0] zrb nqIݟ"kp'LQ[~s9+A4,>y<_7|NZLj4:x.6 QiFkg?qݯcހfۑ*My#f@jѺ&@-u}Ml bsๆM| 6VV>]xT"ˌ`LKTQ{ctBH&ٌuN@x`lCnN?'۹6ĿJzg@!X_q ]RbϛdkruV2tkC [[}3N=|l΅_{Rv 'LQ:yLLyu~72 RsI?H? ue'X0֌-z93Ǡ;YC.T M3i1zp.l3jZ 4$^5JT/Ƣiwc>$ ryB,`̑KYT&Ow <[kB^Cv{HuV2a):8&c kΒ^i;|?Y Nj-2'=ocQ8%@_2ai %w'0Q.58F)z_KgiI[qISyTou kHC*xT/Ȯ_,!).NWwkp! )~ ~چf3vc *s?kCW *.J/t7kuR>p$+[!/in^)J3yd9J@86M%Jgle IFZ~kP 7}|}-3tsx7= mt# ama_tl!\*vq,"" nw7;Cpwa=WH.{Fq.)5"ʂ.3AFZՎWԤ[2Jg&Zr wŤ\67࿚Oq%~)RMSϧ6҉ _R?ܣX˽3}=wY`%ԵdP!r´W_e])1kf9CpLLBQyw?ΚL!ةITtV߷Ag;̮?E&”@Dz4G͖2&삒(|k=(x&@Կ:/@)ST$1SiqHy_lDO՘#ΣC3Akrw! z̜HjUYe sD7Tn|{glC*=𑽐eϗ'"\~_;3SZޒaU)ZaBVPi ZgghٔQD"Rڭ'CaxH,Y{ɏW9AO54Ox hsw䭢^1 Hw/4I|} ث7"~Z@VƵ@:ogGe*{؟E)v_jA.of¶k(a|}^u3`1 tT:tnS/:Qug78jgh j?E i*gWn`F zxjrq P7=~J! )YN?ݒ.W4_bh27n8=h Dzaf#븑ғ6߱u\enyE\wQL%=6_}m=x`Ao&]$&Ϥ0d6i8%\T9/O rhTKGc 6zu[S'LՋkY;[[f 9|#߹i&lzt%R3\לUH0N⏷+ɆiJ# l'bވ+i@8c$'$iSik<%[ )jP}$6ma0M#L-^CY,tعg9jGlXOp,='*J?tuȪo 4iTzk{u|_> Lөj0֑/⩥vbE|Au y@4lYˍŀؗI r&;"~8 HBGUSUȻcA)gp7 hFB@ƖfSBM?S9i9ULjIxNV*Ol>fr$T]L4:(S1,Uu RiNNf=j/lfN|flXn74&aWo5fgI?*o7W6JPmSe9ϏavX -Hїj=3to/xӲЛR @ډ65Rm 1, _s"S$'EI!HTdY/Uwt٩s±_6ؽ0\Ll}]㲏pLht͘t54D\JhsԒ ),=8/koԄN*"dɏl\XXc'ܳ>_+^f~mk҉G`Ik釔u;5bD/% \]cPΦsn>WMEæ'oZfIu GyW(sCGtt<"J#q$m(ĩOi-lyes ё"WiLҏ%l1!|o۳A"81ϧ?eIG,?Ɯ7]d3MjU e 8,ns|9삽gՋ5q⪔g !j%.g'c0 QosMNY:B0pAY|rV$ 3Z$Nm]7t#LNz#K@B3*N?8 韀<ƌz2Z_6$gi}Z$,)hH?k.@1*閈b[$]HA _[&BvM(VI ΁ykAHp'_7748#Y]ͧ &IؿE,.["Di|&CyPΘFN^,zڝGA#:ͅD_Ð ȬS,v;ZnjZM}@l6< \^7wd0\n0U?0"ճ}@wzp/W&褍TXtE(I br~; >"2:GdF(h;bj@u҅pJ_:F"و׫uTaٓtJO@':`Qk)jXpo ijNLmH{kJU8R1jQ)jqzg9MOl~X~\{щfk6@J)1oQԗP6Hx7hĊ4>Z}yO$$>H^MZLHmįQIgxS>wd#Y؍;u#g\ 8X`UwKϛM^pe]H|v9jHN d:q~xzM9`&둼"h&AM/8%km!`M2pO50 XJ B5Z0X#4Qظ'^opB6j.!26QW9//W鳹?ɠZ+xʲM^xP ^~/=s5}oSt؃جz<]_4t4~}sL@UܟPs.Isu w R !f(H: wS |GonznťcN~_G\@VVs\!8{HtU*QGJ#lhZ?1ycmKGg(A"XzmF𷘋 iߌv U$5qw-EnuQK$G%̫_xW -XFܘ2\SsPqPZGL"Ģ2vW!¬YO(@̉qŴ\5ɶYHOkx T"}L5pAxR.% 4!hWl3r1m΅2$WqKqIlBC+r4A4!gkn9F\og< naTͿR hpѥ~tF,tH|QjdGoԪ?uؗRX0#ՀuҸGBp ~ /']Pd)~WKup@n]g۪ Rͥ\Zcb~ukfjY^5r|dd:Yԑ/j9Z"DϘ^s‰ֿ' 3L_&SXYBr…i^zWZ;`I{ӕ1F<)@pq%q7[ύ)z/h -t5s|njvdԙ%9<b K#)T1!Ԑp$^q_bݔ%.^hlwooi@kD|JOסߤhs'#Z_:P7~l| dRqb Zd^vzqPAvReRIcMTbo,~xO-Bo:*rǩB.;S.GΚwk-XAaGhpa9 5_yÀ>!Q͸=H2?y~&4j֒Ked{eGpwŚRMxR"ĭ@1#poJ7u3X֏i/Z يsqA9ZDɎ8\"š|hDPwy)ƺz86썾'iU Wu+,]f_r:+Ч1=ָ8fx%an\aa$޸ljnj"y#^yyÈ9NaiVR͎#<[oY#)PD{s0+qVI8FȦcgAZ7{ /tk/&j)=L \?LLh5r KsaK؝WR8I9A:U_CʠZ}Sz}wVܴ"NpQX?;-7%mq8pDmP-\ޣ _m'Y.(TPj? )Gab 6f=BL\ '9}etҵLxs"^Jm‰]C"_j}iWՙ<18=/њz"'/^_ SJow_mP+i:eN7zQ"ҧ_'倻Dt:z16 Jzn$q%FƬ}ESyaЯ J L#4*#]dsSɡU3-V!̓z;RBsԗ˃pKpF#ܳCWM!SOmNxjm[id@"rͥSw"%ьŌȓԤ\Vv G `ZrIPav6,{47  a=lLEA0ه&0A=@PW 5ϋߺUw7VyG|)+`֯Nf( TlH3e~Ӆ#OS!K))n7>uocp3&~E60X>C=fk,z!Pv.M POa yr끧O|nвPv0~Ki/"N'8Wօ BM Ё3X,`XRcW GkူY Va ɛ,SGys#7%c#gD)TExRc=L+SQYwl)\qΑEǮ 1NBb42.brH&D{\-<`&nmU2,D (J{>A[+H]">b{SFL6 óGsRZc=uh7m|2z|]h@V1Wb[y**C50 2z6 Û/ ;0:;Je+pnP:Uq={<f[쓹t疼 N.ƬNmikoM^22ewr/}Z\H%]g"ӗ^6+NEy@H 0l| ~ABYl&H5qÌ6QhBeuj/R"jVBZ ^=Vx|G]U14/8-ZtKt'gv26`|4W r@o!v}K6|Vo_G ޑ" ٌ"2wn3W[5;D br-B4rC:B7YF㱀qTM?O\=ՄJdYy(m_>Uf"9RV,x(HzU&X֞G!\/А%,ޚlV3bGCڑNUcbZrb^J>]1>\ ڦJ"΄\;(^+_7J#fj<,ҍâmLKfҩ_eô5i~A2W5 \5;8<|Ƿ\9d,o칣gt+<%;^T.-Gx1ъr6|BRMd6JnmZ$X[o@3݊CÜdmKiMV#I[~^ޣo\ Tw)oFG;n<ǡ{uX4Wlٝp0S' =-n~\28i2;ewQ;A'E+}< FzVtϐ3O}kbާ*&va!•9Ę(&u I)uٛh4֋z=Ijs. [Sc4a64%7#&sL8sֹwmWr[m$ԬIOWaz:X/ᖐEe⻰b1Ô>G3nD( 5Q,3*5/ʶsut5Qh5% 'â_* qt"u}G@lƢTqg0@EcȰ@D:9d2(S.S#.jT9^<05L1  QMSXlκ Mrl7I~t/^bpփm'V&bUGM?&~KHprj>c,/|!f 1{掹8qHE~ 9lBCUI[ e)eQ߫r fBMps4ތ3|`?GdIS˲ He0uysAɞPkcB&XI{@e]TcQ$r ZfiB?JƜ̿ .5ZBs:9 S!pIT#J Ku/kPB]"K@/!D3 5^Va]Y|.P\Z8n7FXBdhQ*[6%e8 .eE6(AQA|rt@yҫ eO~o75~n6{>y  Cw9һ2ؐa7QVu8.Y{Y+\N yADPіrN˯>ڗ-CȤOAᙇo'+E u ^ /9:܌$ʦZ2EG:v:tx~[QTR$۴bEKDߚ>1ٔf,ܛO*L'?Ϛv"WIJUa~>b 0'5nN4^߽B|ʗ*-cO82Y$)pšdYva0@t- 5rK{~chB'#ܮ.d{/mDE e{)4KĎGd6R#4>-Ӥ"UXL[rnF"(H'W#ݍ>YevMLT $>K4 bm8cO USvs1S\-3 Dզ:uzXjais٤&33P| #iƶ^u P*kS㰚jw!yA_%_&r&1+§u1c@3Y?/0RZCl@[(zպD_swaߵAd qcN^8}>VbO[n\UrP)Ƀ֎I6?ˏ*{(&*C>w1qьm[{L E{efڠhzy],*|(O;'KM@?ecԄY_\cLBǣu%UL¥cT[;|C䫣 2~Ο>z>X-um[_| ʿ4c2@0|6tbv/׍cRg^:Y_n{^P3ަj ESޛJā/v?9D~>z(*<1 o9Nkr/tigzC%k.,԰ofcuDce&:?FkZ]r̍a(e#29~L bzh\@&lޟ7x PȰ zC* һS`>,ހow{bl,exPT@Qnɲ۳MMEH̤ʟb0d@l5ءۼ ttO`+lKWD,sR:q^ Bu+r@fAX^XliamC܄Ǚ@,*,`1>mXۋ_T_Ht/AaWvʑ~LdmZ8h8XՐ̕ [()%!a5mܾIhor{vNc!6w^kC؟%"u})!q{fWafLj:`=>j!CE?4 Ѹ7Xq/Tۚ~wJ!)%-r\",g6nY@v/"5|Ub4uSLU_(~fɖ,svh2w 1z {AQ~ =xŧ+K=m<}`MblrZ|Lr_Bk:(hj5,G>dO"Jy6= JZ}ǽM> xx1aL})Z~l^R)8OwGY0p,lL$զؕQn73- 65XQ]Œ8{[qޅ.VބOa›][vU9EȂq4/Θ>~>تN1(B uz'$fS^? NazDt0UN)7~t@^1m‘_U a #a>Wc1 ZE(Kz)ڠ9IqTј0sF6MV-ݟKoNsɱ%0`yHh 餹ǘ2ۉT`W#k.(g DU:r稛CIh&kT>-zLw֎d_/iGo 6YaQr_֣c+Е#D\Dxyz _;d=ϼGp2 s 6Ur#=l^,hb PXOhqrq+6%sҵIRLRr:ib2-a6"Y"7- Z6`a5@Sq&;l/)5Vw%:dU*K-TR@%H︮A * %oD]Q]Io4lC`}6*FwI8ye#r۝q.ӣ)}o%_mJNK kk`:)aW%Y'J'Ж]?}.21E>2ly)ex/o]':w?ˆ R xA +jݚdqRL46_N0*k˙eoOHT`WDIr,o< ~ (,tיEdoXD['氖fwvٷ*;< R$ԧV1G|b*n-TBxֺqK~/綆D$ uȿh>.Qb/1JT71'f_BkdXqV(U]yY}An*&O@^`kwe{_ʦ1Z{^R%nr^N&] At6P5;[G,GASv2x~ '`i}']S(d 31!|Z^y0a̚\wTZ_$SXg&B(fԈJPgeXGOL`*Σk0PaYsRZ{| ^M+S#0?X>^t `EИĸh{C,V<=I(G`͈{:7;곱Hk\ EBX|Kmj<~e ď*fE_ld#dR6ᲀ\x &p-y ިQKÏsc1Zb@:f;!cVQӺ`VV@ZzzzChҞJbOU.YmQ8Q|iWXC[֛'0RøJe6C,8~jWcN*AB" jT y) sT73մ2rH;Qbg6n4ʴ$wdS*]Icj֓ÓޱQMg(ʦysP2޸ ZQ*:lezp} =W@{I)\.8 uʜR#R:-s05{aeU,eզ@0>Cn*rboxyVS0\ :Ƃe)ikL+5[E8`0i!jj/?w!#ـJ=n c4qLf&w(JT,ݧYPlWc̷1:2[1-C#3%!2b;W'Qn{4G>t? PEhQ]4 I^f uV_ouK5x8ROF\pG_oy2!Uc Sifx $v vG`cJL|h)xpX\Zpa! ^\/R|çj*ظpi Xc2,B{8  Rh7}zh70PzdPuBFf Fu?Z.1X0yyzPmŤ65Lr-`1ɹC +o :4D-V@r۫T#)k겆\?1͗; Ҟm)ݕ[6$!zv)!ze,5)i͆D^K\ xu-+9&AV)U#dY{𿜅zHVdJ@_+p$<6%/j Ƨ:0j1v8ZZoDu2ܒ#a/qrh[Em=0M^8 @2 p j^6#䫚z(Rv,E M, me&2ѐ~$#pvRSQM,~[SMRE 1goNݝ•lWr/$j%L屦Nd]"Nw4DX sI|xt krB?r1ܹ&8…pJ@ψX(y:].!5<;Y=ZFvlCs:c.evAX't_ݎjvمv , Sمi{88Zf]~[QQ|n4)e|M-pt"o&3xmBɉF &, 3S?ƬJ/S2˖5DV!Eϳ7#',b 3Ly<ㅙG03Y ڋAe3zf4)WeND-Ȗhm7U=y'(R&$3ْTJE,0 ԲgsĠGFѡDObЕ⏉˛twz[.2޷*o8)Z_TI357tУR-LȜL$zQCQynT2:S[l!$[T1?SVzZ S"RF5&}uR^mi$^ʷ;ט gwsOF r+.|/%VrxL.lbɥ3Mݢ-lؿeL#jJuQ@<=ja>#;fvl:t@CanP{ɪb?_ g2Hѐ>`ǜT>̹m$7M.^i,t_̶w R)m= Ϩ9UЏ[ H\0L'Q :qX #x/)`ŴN% Ȃ#fNqUy`Kҿ%چ@豁@cћeKЗpzZv'ݾ>+&P5h8k!JQKg1:eMѽ)XCzkSJ%:yBN$wPpd-3GǾYԤXj}͡UTQ=!~꦳_ōL ri V4Ei1EVk;gF v lA,xq²[epc*6KPy9DҰЀ,ZZNDoKXԒ"Jj!=:yV6BoX'zM5н*k/d$DA;UB[e\+t_я 0 n|j1ȟָ:@UBV@*|(C+PG)D]<`kP4i 6Uq5 Q\%~%0FA[jPۣ_U =M2; ϧ#`Կ'#7ZTrU1`mh5'|+)2 `եws]NP͝~*$|C4(c*2 NKNb߇{^KrץK\ΞK<&(ZbBM1]o~]Tj83M0޼A\eFd ܄,X-}e=oYWKѹ@˧cUFI;X7I–vg9m6r!Y#>u'Q+S,HKr&1. +ԑ<"9lI`]I˕);# :{z {ωL)hI6%ZŁ}EG?Z/PT<1Z`OܦRYʱ1Dۊ܃IC}D$SYqSSZD{jMl9m4uLčeȤ1}t1PsI/[.yxSH*&)Ta +Y[#JKZ((2wnc-pX.3t]8H׬+4y#-q޼3^mįj|u](Xml0 LKf (/Ș7)u$cu˄[B4¡ 9%~vIdfH`MO#\^k߳7=\_a7: YMŵm Qar49s BAK0ij{1XoEj('GJ5H%Ϭ|sx&J@lبp!Ts"}$M%$>[w4\9MI詰m7F}s2ܽg5=,˵ c)!i[j{n&5%D Hz܅-`F ab8o]LD̅ՙ $ى~T @j}Bp I P/jaz4,A7k:9Ÿ]-^4@d "Oj eOWZ_A繘𑱜E.+'F$z枫u+`6 7̹ZY;4QэGAj!GXbu$ l5[a\gW_. 0=}z!v (@=#+5^y `qۯx *VPƛAw Oݿz:Ӂ7ģ5--L(PݮͶ͟fBj6#i.Zi-50=-UU%˺&)Ss2ֿ 8WD+RifF _Ha5W5F5iC]/k_]֍֭~[ o ۻ`T!D{U$y]MHӶKm]1dr_^*DvܳuB<e=Z« eaA'RBqDf?V06ҟ GUQS> ȌښZ', 3k8#ɘ<`Lmh0#T}^.'xYOӲWZspV<aӿ\[Ү./樥=LX [ r_95SJfZ[˺&9Y'uI6= !.?+j_Wv!KCn`Lu[%kE,]e;Z X, >ooչb A9N( >YM=B[v}oZ2tEfW6&iLXDar,y xLD _u`~#i"ڒ81[8b}CWb, Q!/'d9.lnY3֭cLq.~=$zoƃ*7gq̛9ȍ\㚇]:" DTW (Ni%}V؝Ͱޜ!}:-[4O>ˑkѨ3t\n2 M=)}h>PP %e=,M3Q-ɝ+ڿTc!4~WI(2m\|M:~zCA: =2ꚏ KA,֜Kz6dŏ$```5/.]BP ^y}vrm44:> Dy܋Ixem/730igf[9䨙$e8`RR7I aA`~6-cD9 !FSYJ21 @ɪOʁܨV>eص, .7q]ĽXUהRŋ-Jښw`WM1o&?E!٧ay5(/YuFm 8q^8 9&2pel]=+7!Rw,ךiF%fOsVNG3І1*,rVlKagʞk ¦j;:#ն I\(!Dl~l#r ;M`4Y0N)x2.Pܿf6;prhd?ڲx:%CѿvɏjtAm5 Ƥs s~~]>ʩضBehӍ'KVt,E*0.$ԓFnx%8M֮y#AXt4$ 2f*ɟ ?c5LDƷ;^&P9\ ,gVJ۞(inUεu?b(p Yֿ~͙`b6%bH~W[}7ŷdlXr|$] ` ֊ay/Yr!Mb+7}V۴z6Yz^P8_;R 0ƬhlR! ́=N߀fRMm5ٜo.ZdbVEI<M)-lF,KrdA屠] }ǹa^ib_=<3M4 WO\lH , o _Y xl2(`yRD@a ȀC@=!Tï",ƺ݆q慖/ sԄ˴L^"R)h*"a7l\-zJiSޏ{~|y]1VgIl_nvY'SxY|J8s⫼#. }j@hڜf [sjЬ A]@cr @_AH>\r& ?!X Yf.fܢ(ԳTRa'ci"+\>D{|L}`ZRZӱ!k@xP_Dł =&/gTY7u'ε*LNU?:FKD%R"Pգʔci !r Q f⦈4-ae$J M92e%4)^{~ 7aUZszH.?4{Ną(lusAj=XDM.rRDŲCH. f.x3\'įAz xB<)o~!4oSLŬ$AWSԓdwnS^P%d& `-R5L{ o<ڔcgQdеđRȠ -{E7X[o6t\&qj&ǝ``Yă-5oHvjl_rn''v z6{15 p%$# _L.Q>dsnl[`O̎05 PW^+I* -FW_![-ɺLXĝ1+nev 6Nos!9Kً(O9p^υt*ۭl&)(5oɶR#bw::uP nՠ|<(lYW()WFdRe1z+:zB65s0ax iTIV"||ɪ?lҸmYA5J֐! c–(>Q\XUTj\ӄn!u \Ү1j;"zOʁje0Aدh7}\0g<(R֜4 21ؕ meT|U ti>'z?e.Hp=;q>X-Ri*||@6R"o"GtT+/N)f7J<2+\:T9'Yoٍ˳4P:c%[ y'lXӛ넰XB*zu[K T0 IDTԞǖLIŰf1 p>MxcF۪p sތ$faFxPdsi\at ,+ær+B2m;z9V@^? Ҙ(_<ӑYrO%Zq {a B grˇImٶӚ1Yܹnr:t/} Hgн?j"6ʹpˀ:[@, `s F+l|yvyF:z`at9+J{٦Xjf`+wSwCV[l=Yœ|TI3K;$铂 uۍADF  lJ ?h[3e+Z9U<9*%Wo{PdwM|KI& *U!! (Rn{5yJgOWT_QtA`s^?Gc7VѴT# w^VIWjɉ?! +t??>8b%̯K""xYފ޸j1..l%!µi(kӅ*BREiaNh߰ !G7uo}-7ucWD(2K@cΩqH!+6@f%Cp %.NZc &rIkg}dEcfu-5KtMU]UVdJya* Dyb.r.UH6[-F헊f %?%\ ,*n4Hzwh;yNq3dV~Ťn UW ħ>> 싆,U? U^d @%"rtLLc!nc 1pS&3_ |b \%E 1ã:#&MoRem)A/-0*9{*fPON/ ۻZT-9tQ)L:tg={*+.lsZM+p+srrٯrR"8GZ< \M59sh~27Vg(g :yVcytaólK&4mshm$q/Q!Rܤ{ؿ`ۙS -X NcQtQT Gn ϙzJυ\.Dž?jcP2-l&Qu/1]TڍMӾ&;~՜ bᵗ7J?.˗X]4/!@]wK Q٩vjt6ao޼E VasO&2$c {A+$I&%b~΂TBӾzb~lQkg,,Igź[>BxFJTx2w FRA>>m;]rvMU +ռ-? $:? .T\Z'eoKŰKb F]vf,Lg' ' A}Nъy\`PYX<=ٍ.ggf{Ps'ig4VN+zx+V' z?QfHK##j6wL|0Ns,j;Gr48 *(s1HL ѥhб+&\䣬/Sad6% . Qe^׸s%{v2#<+@Ĭ̩w =2(z Dj?) .5Odeq-tvb )? ֩ޤHxgh 3]:x + %nP'2!fc?ˤs(#Fo.|Bĩ4fǨ7>O&#B+tx0Ջ~]hc ;i PS&y1PRzu`zQ b-.CvհD>rX擌`g=.#60ꩯ±:KI႖P}JMᆠ^^ׄ7uQ2\! ൿڣ)W55W3W&=h8]F4227ul{N#;Z)HGNB*uA3jre 8$za⎭#5Ԡ>~4z>V1cv0ak<#+!4ͽ8 be~Vt׏LޛvY0C͜%*LXw)-fVǂfRtN9m)xT34s:$nHR$uYz3SY̰Hg gow} 4כ$gUȱ\ݟp#$4hpwM8t7S=s:c FYmY9Py>%6Ih|rzMp>5VB oPa"ij5[ed}W8Q%*%`gGo2,gѧxBN^ N&b^R&f夼6<(HdZ (b4aXJG3B6pW+]wvM>_Vj>/G;4[C8EQE./4YڶU|bO rx&M\a,pWBr5W'i(r\6MJ8Ioh3ʢ ͨt yMXy4ޛ )jc>ռ_&m!!oZxX 5i *9vC[)=S>q.}l5 7 l,W])Frz22`K!EBlw8@a`irLMt;׭]&DuSkT;ॵP/t0?cg=lmZp!F]aC[ Ӑ$x=܏ftl.I|GէlU?Q-<ĤZ~ ez`^AI"FLDTxWzID ,]Ad`0;SwQ%dRZCBrnS1n^s LqR|Z>B>y=Nð!,e "J@5MHid\|$B;#{KF ^Gll'ѯ2A':,?ZpWŒ~_ʮtPT=TFUT2CT,C @h;֙|%5@(cH"؏d8`.A0Bv $:h}BJ?mוb`&Pd`!ƀV/0`pahP!uՏޘZGåS\D?~״?kn>"gr%IyiT]YUuIQ{"_-Ma]d1HI"=CĔ_5Agpig1c(y$ծ2erD7 *E*<o Wv#ݓ{lش-DDzz"мrjru`Np= FEw=C|Я?!a椼PJ` АMH`Nh唷@' #f(Xݵ3?&4@<@Skh֜h 711-I/?{JOLmen(j-R7>cӐ3z"g{d;{OlSnƊS:AsfH9X *-C&^$iy5-F@ |V)*!@uP:#RpY}( cO9O >/ ~R3H־:{e稂K._ XJ s!ޙcRsQ1ec=uejɮ&VM3)2<9QNӛ`jm8pB X{w$Oۢ pe3d;/}re ȺIf`/(|UFZ#\t2;Ȏ.Z%d{W |pLxeE'EhZLpLb0~Ղ?r7B %B1qKi5Vƾr ?KM] +$QdVD7_]w^Ÿtvtzz֯nG u3~fDžiQa842?f%tt#ɢ}Zϔ3#wfZK d5O ._PKn7/n;C Qn3\qOa' thׂH4R> >>llҌhY\|nFmr*~]:^Z" |Etsn)WXx!Jau zCu2$^?r}B6>N j&BԎfv7U竐,^Bk}}V#x<à\ɆDL:W9I9׬47~4TO4 D恠wҜGqD&FPܹ,"4U-R|^C6pfoE)4G90uOs{ P,fXF3BrQL/N<dTKB%w`*7p!坟H$4mWƌȳxqHj@UO7Lʼn,ucƲlشvga!7KF% /(}a]8_M%? xB_p@aG|815t;z!a+ *FIO6X!JfB fdcUpZ%!Pgk8fv+Icl;?C4qvbVf$Mn(DHKp`H"0) Bn^DWC_1&E)K<Ԟ!5/eQpQҵiE@5 m^l?W Su׶KBN\E=(A ȵ; >s(CCކ^Wj]i~JBMAskȉZ݇ylVxG"w T=7kH&7XgĎS['NQsn2RI?ƇW |fعU"QaK_61A9[qWe>-?*,#?E]}/ޏ-֎D!gaI;.;U'DWp@ՙ|E>0eCּ&Ŭ V`Ey- 1;BJTEG*$8D)vYK[wW?lNI&d^/QvlTiX%Fl\Yz |3Cr-k}עB! b.'0YBBR wgud1ZP[BoB0{%H9aM԰mӇ3*_bK!mqsSGl؃9g>'}[\<4r FT2B$w"\.JgVc9Iq()U,0$4֜uէIhLpnx72rGZ 1Prr/怳ƒȌf#'if8'Ԅ!<;>jb#1K(XS0 ž[v$bw&V&lG4t & `'G_@ QBuEaQ+qi籔މ?xdIp="߶R.;0xysDJ[ =owoˮW "T:/HS:1|@6;EeSV@/Jxb|GUt| {mxG6t|;f Xկ/ ԋh%xfD\LJtrj儻* z\"7A,㚠|ė3/ef@e[:!-ey/s`驆/ ]yxp֋j9Ύ붘qoHOkwZ^xk\.ͽw0 vg a$W[B5= n/<Z3&~jyj7 jqW$/pNA<-gǝ=Z7]D2g$Rt\0?Fg5;KDZf.PAHt|1Ԗ?! 5_ mySmE [M 5K"a4RrdBld1^e2q ooS řC"" QJ'YGY8"c)u(/]MlzZ 6nA$ fđFn%y.//YOGQAƝ9H7?V^$lqv}0JVL01ovi'eI yRk(Qn!'8븩"Z$c $3~^Xm_  Z,P-d,rrUk?,raU 9w>D4h{yM/Ǯ[[$l]}9̍:{\J g8Wy mq叻j'@Ufdm69>@v9F@z F 6,_vM`wSas'c]$F1Y҇X#d S_#>W>zX(%/E0@C\h":.9Y9sPnKy&qɬdfөj]ݻ(Ej !ڋtf1c7-]qxb)ZS!,yf MwI . JtY\em>Ɗ0hXL)&f|:\rXz)YX+7< d39 #)lƫp2z'TY+X)ւK.a+x5/b?_Nwx'xV^К#OͿdnevoCv2tx6A-nD"d<Bm_*FBxOduz^b8]jF. iޕbl&1 aI|ʉV87Y=G䳢D>2Y9N3g֪{J#TYbǗ:xnGE<ۦf&-ڢ[ tBԩ[hihc9@ !K8uyyxAb̳SF(K #vPn%rߍ8Gu&ꑣsV6uebmz`ݛL&NHc5$ kr[~d0z!85lȸ37ymE˹ZA}D|]5zROvr`9flI9Y$ cs_ H1w@28åž4F]'biHwǤFT@ cgA\&qkʓ%@XaO@ZK='x6O+- 41 AmpVv|oy=V5K-!ŚvSj0|xjie/ ̅LgNk*,T<3$T_bb#|>y #~p)OZh?D9BUؠ;i&d D-tbH>a> <ͧ;K4Ia0&?^O>UHHQ&ӃÅ er9),xnI <4l= p1a ҢUnb:uI4kFa ~ɯ+˟̖֏x4nӤ2LFc@;P/ʢ9q߈*H_(~.ƾ>Fӿx{)m! '(==xd؍KZp4.|,'@.LBuR>9 0\1;Y pe恤0[aA'ʦ#P /]w ݘ\܌)@ߠhW4mTg'&Bj!Fy<}zE(:1T5w;#POu jq?C"1H"X&"2m횴 ro=m1^+&#x 7W_O dDgW8,zi _(Mmź63bYMS=u@ɦG]Sb_r/$r7xȸ\ߑܤk7Xm@ (̆++YMTfNg6(Z`kxKG5[G\]ܲўH(1u 򓂥dTߖZ!oEdkfHoj#[O#ϕ©q󣚫W P ڨuv|2'6HMsrK_ ui /dZ+ʣY d,TA-M *\|ӷTr;㶑)DBSa7\CQ),qZtjs; z)|vYH>KInp_OnaKby Lk<7;!YHȼH=PbH pD;eAЗqR ><]Z`m:M N'"P$q'Yㅽ'`9'#h,a.b?58'#LSVf?4tߊp8rK_J%">Z=,h&]֝O5׳sU3N,yc [C9_ ܮ^9zkPR;tzdϬπk՟U ظU'l(xsNyV<7JR!(sRHJ>QkϨlhһ M ^T[c׳*o+U!n*ុ8IfGP[#N0wDC;eT{#voXZw{lpsr/h-˖X80aM!xkNJ8B\O,QXo~ab_ T7ӧqٱDPA@`(w7!wU~;EOy4zO6cWIfQBa/|vRΎ"h3~n7̠Fc]*zlذY¼[$N_ b .._|S֫BB߹5XQH%4Ki'ݨމ6ſ6/ڿ'K"N'+^XІe}U!u09E[%dIT6Q=[2MD1V*/)Dٮj*wgw!D]ءBU%DLUYD~/NlCdW5&cqNLЃ2m6 .% x%D㸎Ll~-bbDsFue9|Uǟ5›ο--q^7HŭP*sT +~5a~ 낯fM~:t ` L5x~U_ y7+;Y%d"Pϱ/\d@f{!71ة0%wzhf^D١d^fh>0!o% G{5M<pU B.5]o4Sks - cX75ryc^"(]@Ra8KJ;0CXNV8j逥I,j4/o!٩.͹tY&nESfUc^sJ%m" jia̐C Ŧ erthlc["Vr̾/hk4$7zc2=hhrM\U+_?T\XXKvȒ*x`rsL 4jg x(vS<'?6l5ތ"j'NugR 1}Dfj}u? ˟ ӿx, P WUt&Sr)W\D0Sr~NY)5'5qn7%f Ub=]fVW xJXz3K}1O}f Y-D@ؙgjDDR=0j&hb,3wPM!__(;PԁެY"wëP2pI9ƿeCrdgpV?Z,|z5P)KސFPCQm%ytܘFsWQNEқ!\0%п3?KqDY [_Mhb>~י "Y}?m'Uoڡ[BW~4 ;D)}`%MZ%|'*).iIJDYPѭS mCS D_'6l ׁ)$+Ɉ3Z{?7+*:9PPu D\:FrҼ8=d.f8:闲oD/8FLƎ%|Anהl3& Mkةx*~&׎wR'\VR1cWOuN `N0TgW陝2m;g*@krOSY^P\lS]tu9G"/4L&TNؓ-ؖk*gJ*LWͿZeHU^]bԏ) ,8bZ[? @z&D-I`M󶉶is;;u}?6Ia? PɱW^`NP%@?ކŅעyjjxlGU,#0#X'kR&5 ,,GNUN'e⦺Zt#]E.)`4X,t}Ĝ6M,BL#]:]- 6bI~U!`s]"x7Nhh?gYtO$/2f ȟ}NS&w+^>@% N/nS0647tg 4ղ&ӟ\}Ҿ g[hu֊u5f]Z$2>دhYd8ǃj:kL>Z YoSfY 'tz[G0cL4.(Qv]PF=AG$7p/ pYya1,KmU [ia ˎ^Vom8Ȧ򢺙oʰ\kmI(1B[-V×p-h<c֫]SI߈}؃ڥAǦq_t>qYL79$ u(tD ̊MgnvdH_s)`z6-\Xk)uz_TCYQ, p!-xۋcrcd _Nw|%5jmMbB;KuW`h987 1O{1meܭ빥i*| <+>qSnL˯Bb4+0F mM/GM$I, .je @cʛ|?s 2Dt{ jS ]Xڰ>~~wH"r`o[!VIhk!3Ͼpj8TCwqT|]2T7kJ#wdzlHbALRXV/J9Cw8b 9eKY5;&,z4)ݨi&8來/x9g'@äas]7bqTۛOVrWjv#HDMW;ӋNaf&6OцL±ݓ"io)̾6kLjG-֏ϫLK-"mt #V5OUI`!}ZTˉ+Snl>>z]:[,( o6C6zj́sshF D @eKw~&5T%ˠ"37A֮Vq-ݘɃZ=? TzS >|k-yxKjbY?ʺdvFkmiׄ38'J 7ꦶ+/.b)\glU.HѰoO}&ngn$*-`Iō+Qz_I4Φe: h'Bܧ ;T`t>Qv%cp,__g-%.fY҈.+@\SڡoTl)B(쎂#U=,xK+>R(w`{W;u;!"Ak737i+e_!pP&&43CI e4;)f1q㸖Vm x"o͠i@(D+2BJҫ݋-qH]h'B4O/쿾USy‾HhMMš2Un(\6F)° JO &>ɽ駱m~&ˈ]Qu ]Heh7G셃9ۭ*|. uB*o !~A x#!~@1F4[X/~k?QןxF eJ;Lb2}~^%1]ҭ+!~}5UpTGeJ(tY_j8n 앣'Y0(J!j#|XqLd궔MzNH{)煠$ꎱ&|ORj6vކ{PrI/CJU:%tƤI`GkK>DΥ/ϖT@ϳԩ*h$63[m,7~{D?[6|+޷Dein*rRu4+ yʺ"d!6 'vʒNxrwΨP:i̜-NZj@dNFw\TUθ2-!?1ŽȨ D8I8&|]PWzs:x$WQ`b;4%B\ؑE{?{IlY89/TAOoC@=4 gdlD?_*8 k෩ëAK`mILFIa23Cq c#2wG}wfѢy!=]w@Rg p O,*gVJ6o1e`aN0}*;=Tg8ӭ>r0#Tgaoef 3ݟUF@$,Lm"؞s *A SQbI#R߫; <㴈;#V']7Wk7 >5*LZ\%(35 ߲\!FFF7x:;m:Vd6\Ȥ\W֩F'tW& Q({g6k\Fő f M"RADSIQ\o\ MuCds0]e= GQ{_p͹d+e-Vi.1#yF y Nf9nk.t(C(nQ9LSl'\t}ל0(Gy `}&5^-npC_ RQEd.DД\ۘ7&8Mdv2!vsţ,ψҫ;TC>,ze ^MD@y#5Z;ia'뇑KjZ$9[r`@K&wA ! x92ڑƓ !h"I}ohSjYQG*Xteg'2@2jޜLԁ,#̲,Gz>]g0ŮD*F>[m]pIT:nfϠ@[v /PRvv.JA)i{{k|g2 :TБPŸ견 5+q sOd(n/_S%%+͵UR|'ihw1'^Memacv4zGRU '1_Sʷy`#a+Ġ@yo=( p3Oi~j'  ̈́C `9DJ3+* ּ9)|ArQOq qT'ʥBX:n؛g+> 䋮81-'VhЏy1sU+1^J'Br‹TO8 P!!?U?a/eSNLسyd;onU]kqum {ѻu ϋG[hKp?33l!nnb^m11$pI)eq|)ľ RqHGNъyWd-ĵ=v*ҬF-E?w\U^ԝPטK0hEĠüaފG+&ϠZ)w}ϟ@g[[{,Kejі3c^}MF sv-]x&Q}eK')8X )6J@=*YKx.x52WA"3蓂5CBjw἗E2p8ogYbٽu&PSZN ~8Ԅ&^GFV^jߘRcgF/PHd3n4`xڄk `]U̴-^B H :eKr .,ZĞvܭyT!>%8.}Tru-L'ҥЊAm%ة=S=풀.x<SbO Ud]IE02 36Ī[zqp=!J #5/N)S9N)T2p7_o9Ne򾰬ͱs=?`$~-| <6.cV-?Dn~Cl=Wƹϳ\`"D.9n&(p{5{<1Y4^NWyB#*2{tiK/}^ŨjYo, *֑[>G RmëKEyÐ4S+HKK 8IE!߬XdFT|*-Fk Zb>|a&:PY6ܫ.o,ט9.&,E/_tC~ms&Irg} YX2w_imQK (WjZfҵjv7FH\xWʒ)pG W\R+9oڂp_00fFFC$.9?? Ll_˧ZNG7;-1' OCհ7oL7~ph/vKQ+`4IZ23'd"fD]y] Gs.LB+=j>dW;;,L>'jk2"2B= =#~k?| DPn,#9,G6ϗc  go֗S!i' ӿX3*&y{y'O%I/2#@EAt *g\4AϭKjjoҀIlIAHvDYxΔpSnX<a~{hoMxK1&̛Y1`|,E2*Vc$-/؈(ncIg&(Ԅ'?'˄[O2u@OS >n"0ou`4.`FN%"_hGBȀ%,k|w@d ~LKUﻱr@_ Hj?ŀZ (ztO\h i5Z{'w" $[i*c{*/f1G) CcHE׼CΙ؀LckKq+XgpCUw(᷌LUH?$^107,j`\o+lnN-+hRMO1fKڿr|\N#Ga_7MnOiʜ qI*+Ѡ I³^  [MU;Fm&j7,BSƩ/D-~}( Е 'vUEW>@.>b9ԤA.}#)=v ?OuAQsʾ IހWpz=AE2EyQm[s ˊ#6$cqk|oQZ;i޾dOff- >GwEyI`PsyEP-Fm&ob^pߏ_X( uZD!#OK=y2F y/ȡ'd#EiU<)1*?3{JESh3bAh`p{ze&QSl~GeTtwc]mZIۇqO uYoa2y?'BtԎgBpU:ږiwU0ðt MȺsϔm/5ԐQ) T 쮀48&L&kT1v +k-<'M&P rRr#RTds)ؕxJ[,D tëxY_%|V3bhU[ '> xآV''9ń0s1]M*/tpއh>Fdn{wΒ2z)ںrTyIzp!/ u=Agoغ!yN!/tsY~&H&LsHM5t SS&$As㕳 >u|Tfϔ,[6+bjxT(]o)rtZԴ{$Nr5r ʰﬤ9T~!Q";(]_#I&6뗚p>KdYSN!N/?W%ͩ/EùwHD`܏H 9{ XkD2sTԓvFZΌpcY:",b䲈&qsa,v -b+j fT #W&J{S&$Qrb,J2^$JenfM=aB]03 ݋qv>\`fCMTx8x0ڑ*WThSjA{rYEt,te|d։U߈CiF!Bt <bZ{o|M\iL 5Nӈ&cܔCC텛64d 8~D:|ħk „j'|L\l `~L\Is2R^8i("k< Nrh{( ~bTW3 %JSYoFCrHT\mDjnCDntE_U) o4XPӴ6gJtJ[V %L,И&ǂ.0,X v+ MQ!zAWvل&Rfo Ď4pŢjdCaFtxx&-=8:R!qX&9Gq=Sn7Gbf֞}L6tHdp>-+RsD-6ޓy\*R?{g}·W:)"i|2Gn#^ T̋XTf2 e`աܦRdbj} ͺmƽSr1S^+T~\ `x|-?@N%ɝggSl^7?Hr](V#:`Xzi:T1FKN,^@<ݝ+T0DʟDYL]\a2,МK5Y$zIlP` ET>"kzt ( C18;Ȫ[vDA﹍^̽;tXlAaԘf7sI&/c%f^k6i?!/6FuKC` ΋vW&XxKN:IƲ&rmx=zץ\(H,rOUI|S2Kk͇TƀO:].Pz7]A` h}3O]ZLw#+HZ4k}[RI2   t$VicBKcI* 3[Ȍ L0Zݝ7i 5ەP<1|e$"|f@J?.d&XϪ%7TzLK;<-˪2/l+9h0iiC%6=-\v[#sf!M/ZQ/N>8VQsAŏ#DΓn|}2R4QԄQ=^v_܂ސ}:5j̮31J,AJB ]2 H$Qm L\pM3WHn k)"@-s*k,xaY+@Af =g,8% 7ͥCs֠>2md:l(0t 㾤zsN%6OD-¸pvG֒r;ө#gU6>A}࡞SX]s 0 {~0'Ass,  C"`{I@VMYͬBq@@V@S܇d`w(X1=rc| = QĊAzbR^Uk64= GzQ'icշ4>oKu%\1%>ѕ"30Jm9SAWF%$ @bv++Ŵﴐ\AKU3=4j~c0'U!箕8Z#|">iP@ +^ 6'Bdk[/K 4ռ}@xH[>i9Aɰ^HX]:g4#^ci}z*Z(k+NMm_2T2#!w'y3TӼ4&W`|MfMByf4 ^ܥGh (?%4rQOZ:xץsM)LxوUi\hd07Eo}MTÙ,l+.eeL 5,0?(X2oD.vGG1g`q3n7ab_W4\& (QfIsq"qR**81 fe1.RnOO:KM#rr<8z(Amg;N-!a=p?!T FyaPKUNΤʗSm%K뎹vW fff3n 17[Wxxx]pOy^Rs>3 tԍb^SP9|RNDrw6Gp|"2ԭ ?g9 P}E˰/у$\ ´W:4|ևQ~p IqͥûMsض#)lŦ 6g g3h,7sk۩),Iwtd |PzQPt Ȝgyf>5Ss᲋cm;R0/;RmocU`l>ͩ Q&hj]PzoDF9x0#{qS@D=fX-\auf 3C9Hp*%tkS]ZO:9|@Aps}(dd771۪m ZNW\1&0AjipNO5WUYR )\&z&镕,N㴆J $h.ūоg-+~Vj}m&Ck]?Yy&!C2m;I^k>8+/I 38Oy&lDT:]v]Oπ>qĜm"#Se9}~l;Up9mcJnX6 )PQΒЉE1:&aJʕb94_T͋ҼCZR뇉ej=1?}iQ:t.C$*|+=UBl0Q]kތpmiqiv9ɪ';*ofh:M:yp+H;d H30%ZELV"駀m j_kv80orCIⴉB?y-m,Ųtg)Lzҽgw3Tj:rFD5|Gk hC_\dyDX4`beARí* ϯR췽݊@ht<58EQrpiEeg6[׬ < cj9dV~x)Gwm%.'K8h#sUAOmkSh\;7g,wH ~E؂}+j[~L 0'x$S7ok3'wܫҗF/O<2ߴZN7uVoDO?p"y>Z91]U3V(a ROs&m^SyDIcw=骎}L:沟fhhQ)OG}~4/utC0&:DQ9@)gvPI@7*ӝaiT !z팞r].ϴ,aɒ\[I0z0"sqS桜x~$eon8a,.pgN82?0IC@lon9h's%d}O}bnϑevm1׶* |}r .T~w[KfM6R)$ʓg!@K _j'hl@c "us qmxj|SV0`5҂7^@[k\M$p-Ď<|e$`c~8`a[ŏ$;|6Տ|rgߵ }ɓF86> Y ӶEɴ=%w=W0ҋ/"*x6'(.O>-7)piQ {_AN6؄zoco1googc￝Sb-]xK7O:ZS 4SdԿ7]>$XY:_%QWޞ%qcHKI@"r|:rvt6گ892U6ٸ|(HPC[~oQ`?h/;huzeOWZ:nG X) |`kds;zZTUçdȹi0W9%ݭ 1!\YiBaFKj>LR뗂-?=:'cX%'S@rNiM D脣(xr?(s_ з#  s~9 ^9'$66T8OVy0B'?|y0qsz`tOI w;.ph2M+ x{KE` NnэLE*SB`6~~nXIo8/{L '}3Ԋ we]7'5 q ߸4~ꙅ̐{! }]+kؗ&@K\d@rXع4C%,nf{BS63>%*tzc푣K_y`4uaͭiQBDLyq8hQXPPLYkƣ#jlQc$):kʛv.28g8-dSEʈ|эPuiIQo5,v]4,m',<]?N G]7x0֖bR`Ca$x7nOzy~Eb䒞shzJ,&C}%ِg2Ɛ=?5ߏھB;hXCePIDa{ {qW=sZKCF~HoObX:Wz( !CcMN}(mK y"/GyHe2k'|277;ErwG ?z.2'ly+́b8澏|p& p^ m񮸄:9oΗREHP5T!eKS%|Z=g靜m <@-n9ʞF!J>?7mYL/먤 p((Y6XZx?/7лt* Խ>Iul4FcY֢Cc 9QN[9W|C8Ga4%6F&<( } wjɜ\!=bWP>p޾WMQz%`79yT\ƹN+^SHf7aTE+J]Wr̻L/! .xCV_~?:9jh, >Xz؎[Wڈd"vokz^#!A ɬ ,)f"!Fa'R+n[XGli(gnGжE)l&@W>)wA*9 SB%e/A P %C9W4SX'a \4qS,tw 8̲pV<յ&bks\u)Uta6X(‚@ Yc稾ؽ" S?wi* Oj@;ujp8l+k`&j["VXT'Ħ 6P5yV^d IUser_We_~Kѭrn换uy{zBlˋ@:LwM b|!W(;_9JC ] Jm('5?1PaJB,EtlOv|hRr#Ƈ4a_2DzLeJרm fC)Iш k4]0ˬ+2嶞"ܙ ۪v-b׎?+s8t֡Y pHThdlۣfǹ^ۢ;Sܪ3nC˦Zún':Q :xA}b9hŠ f{p{kϙُhhhOXS| ;> ]lU>֜pJF !º YRF(`)=sWEJJ›*tg& \QT$ "զ򸋗 !;<PNqK=l'F׾`/Ť0zγH[Mi~DY_8Pi\%tP_74X$P2OTv/ޱ9;MEPJdTM Ոꂆ-$rշ::>%X$@ܽd|74Hܲ09Rqēg­ gzd2&Eq}TuXVB`#bm}x4L_q쑔˼m@Kjx`r$04 Tc` ldd vO D@?P~6NЫθf9O{^°yJ֓J ~?yK${Ʒͯ4 @ӟQ*ySFcmGÆz&);!{OU6*شs'6;cpǦa\/b:yނL'떣F!4GIݖվ/SfcN.@n{ҹi]Q݉\RTG/G&&'űE k@ !1 5K<@6R7xVP-oʴ&"LKQ;R΀#R5Օ ǖ,N"M? IE5jt94*:ʬ\VonŔo@u7idU \t5;tkFɷ5KzlkaO) |36i4k]NsO<^lY\`#g _EPCr Ơ`/וc[T]zS؜oyf<UEFyHj{QX-${0̾nEo{flo9e[1|೽ߪJL_5cU+AB gB&xxh[Kw%>9\!o*`z,1|) "\HF~n?Ϲ?u|Ý(ڻ'b9Pބ 1qls=Rɵb @3xO߯s?Ck  h6Yzlb16/%ߴ3*,Qe* RhZx| %ɶ%ˈ\@X &{Y?xuCQr3@@V慼p=5]S݀Q[ڋszUR ]dJMDspiLïhڱ^6h=^ mw gs짅cn׷9:YPmecW.O¶32vH$cl]f"B.QڛL`[):YUo,;J%3B˳oLӊݐ/-7iVDQQrɬٙ/Ah$P3}'(p=FN(|>=?cOiNY?4S锘@ᏯW׸] )KCyEc۔vs U|n}`8*WQ I~(Ik|b4P!Ԕ@Sl+-f_r bn[?3vt)Yh14"{enc7&:KTʩ =ju]'R.Ѿ&_K(E׺ N/M Vj!=f)3s[1[F2({ʸq>D>%@Htkx[~~i@ZhJVcZϩu/vnmWOz{x,O5Hs䴎}ǵF^g,_/|_ oG&p>ыhy0 <7>V16Wf?ox~Ld 5Ed تµwm@J-1$NPcrQ4z*ÐƛSp_x^?;C|`I!!4|7@JP Y0PY4jjf|ɳi;7}>7myK<}tܔNլf62Pq1a5íN%O`~DGf@Tk V 1 z'n(KS>}J(7ȟG;^]$cs61Qr`fǂ K/fsp}>Oۋfr7VӉdT}G!#"WbPMKV_]m 6yfOKFoajAJ&hu؏䯙+Ո%CF>+Wjգ6Z( e@If"Å EM~\-И'˷w>Fwx(*0½*8=*8) 2z';DR(v+@Μqړ96]IǠrPx?1׀&|iH俽Pvmػ:Z <} 8  ɨ Z<(ڲYy:=QF;+[@d C,LnR[Ny;`@&e^KQ=[1wݗV*WO<> +3 K?u2)l)Z@օ©D X i?{J,=D[w'j&j+Ӹa`(2sTђDK?e,QvhM-RK]48?GCȺ'c(W,Q}k_s0u^'vQ.,.!(A'ŹhydBVyM(('a,LvSS@N99۰yC:hNGDMOE=sյwY"M~M^i^({o9A7CLWoi=+zs"BPu~Gl7fam7σ଻dv`}ea|"cᶨ#(%LBU'?!u-E9VDAxX%V] 'VÁX>29\@Gwk\2K7j:1g9b@pgtEh>~K$X:mw"/}#> \5}ZJ}RGCUpn$418HW{Nj)dEC8V%i,{)es̫ϑӎ?_%BYˏᘌ"> .3iBu9~4.E\ !q,R{/w"([hC?|B@xe<0̻w{ hزI_8Z'x;LyO~޶'DƒGOt^Ffüq-pgE?F< B8Մmg PtMB}WЩІm,ѡL?^g(bDx!l$G+Dm} V-CT\_ 9KYxw]C:tL_kH|q2 ek k;qKg9\) 9#,U1h9 Lgc}6UɼX рFTvYb]anrJGQS-)܆4(o߲?{mXϓ@HF9vDLkxMogj6<QѽXJW29h'S&=*(D Jˎ3m:ZK` \(KFuIhc/>nǀ;3nG#=-$vǠi鱅JoL3gx.88Ӂ p?[2hZ>y}.Y.:Uay[+c nl>A+=LTO̳]0wP2b`U5~!j%HPߺpn:qxl5+Aբ Pr= Uq3xR-R8c~f:}׳,b9Z>[e}MsA24ŒJJHZ?tcF> GrEJS^؈6E[R0$9S( BY~LEn;_VUQJ=3| ڋwS"#BxYƱtx*kJE apE57S+I ~1ӯu<tf Bf;lx.rKpIcU R 榧;Cbi?/ c%Ѣ-vox\:X]ĸņq*l>=\c[e6(XFŌhnGGBJL<"y^ߤAt )F«ųÍW_imxŊFOe%?è #I+㍨pglū\7ur^XçPr^Z\(Ÿ C&x\-Q20$* /սK {3 sltxf>pH+GHlcXÍ-OfjhSItc^}ih4Ň˿+]طI9P,jML .~p,0Mb1v Y·!W:6ν^V_A{7!;Fw0q!G9~Xj=Lmס&=f͇$Ȗ#<" ^$jiA$)$/l){a _1Ɔo+ q؀ '$F:;$}.zߒq31r)~7o!H3{vxP#"}U/& WR󰮍7\dP zCM7ݙAg$ ຠRj}hU)a^ .9*)w! 7T-Pk x7 71"P )X+ }ǑhOy|Q##~"5n߹&)ZApQbՁq.= vZ=sp ^y-!M=!gծxkk ݭgt?75ǵ<\kAsUP't qUO(v‡!-=Q #q!\=tH?<$.fjmm.9Z'XoD9iyޑr35Eݴ@ iOӅg2S- wkE9"u_?`@\ N  EIYax5OOh[|p.ȍ|[6## Hxd)'hiAH{ NR:tl" GLKrH~u⿢ uUb9R\V(F;f1"p1P3u9;t6 ~ؗ:pW zG_NkAT ב O /^"&]!'&?>Oƣĉ2% ்ca,T'>LIkÓ;ªGSv7'g1]Id-_$"N..t-$їo g ],n9k8W> /mN+M4gD}ͦgdsydІq0xDZmd?oVi)5-0&˝V"C bClDT =2np%>(\ll #MÔV9D6dvE.J&h?D&l-'֣K\;;IPH-;`I;L41|<(^ +%m,Ҩs9X/T cT\D$9:Cwأo.cG(7O[rL ^"Jn뗗%hB8`4}^ 6=q9=7>t&JFH-F˒U`tDO~ xͣ8ldZA cM3"h?F x>x満}A3]:'U> Bt&LjsGMդ̱F5љ;"Ĉ|.zcV )[1xSȖk&n- 7G?V'"j[ú\U'u4$Gk9`8zV{bȡ?͎'Ⱦ鴄k,cꤻKX}ƚL"dadU1& _`PHw =EO%"?@[3gԓXNNm.PS!ؒ(J'*]>V6ǘ{XkQ|>̱תbCr,6LiVBzN\ L٣{DXPЇ{MҺZsv hϛla=#i*u ?JDVa%Y *^'.X(i@3n¨,ed`< ߑ)oС@bT^ѱ `裼!\aB"<7MِͪL;->.:WN oM/th³+1[ t]a?o)+E`%d\o1@^xGw7;?,)dѹ+I6_IEQHv+|¾Q9m"éQVJ(p5ݒг4TZbTp- ?L>M`][EkH΀/b5p G ItWXvVQkv 4::͕-5`[ک? Uvmyt>BEhhaƣF>X25cݤC\/y i{o޹>^#]DE'q\^=JD'Bqxkip 6V֩&Ο8 VgRVD%R!!ѭĩ<:F ku[ UF97C>'Ox+tv󆣑DɬqhiKU+mv\2ؓEU${XPßnM8=ji;+ m? &xV&.V%EBd[QÎ83~{: Q1]I aZyX}+'v p1*Ś6lMJLL؃)[g IMvvf'swܕFۚì|8a."_FNR}u4˺@^I (h@=C XsK ~bzW蟾B1*XhǘX0EFҽs_Fc`Z<f| coaK'8^/P';nLnȿK6\֊anTvk9nò΂ԗ:D;Ys:xgL}yLɀ|DIIK,|S9>Ka)b 峥-pjҬ9%G![ , l(B?ف _)_,Bቊ=͎xkh/_ifh7w1|ֳɴ/PM "w& zM ~_BnUiT/20(Qwr6%t#<Ԯ&T ۩ XQj혜Yq}3xW|Z '>;2}4e_@$Btw%J~.=ᘩ/(K ٕb}T}hZGANjQ4V$l뇅5*ƾr3LRi-J_܁HFwwKp_Hzƌ 6ܟCO\(maTC;y<6z(2[|bZܷCR> /"Exhןa`)I!R@yMtzi3B3@w ⤁ I3] O-k ˭ivxU4?m ԆRny!f[*D?l78zn"T>M:Q]ˀw " ҕ"N{vw"vpAUh^^LX4t)}_Е!t6T8g}P -xt'z`:b':tn,4GP3ad4< k4 ;؝KwL:HJJfLkpH$ّikEeyE.\1 hy0 'He|#qr [WtSu񯀋P&SiesÞcub'^܊T ;ڬv*Ӯ[J 3TSd^:MА쭛cnFU0 PB4"`Ctbn`:qfo 7]ڻ JF"п:$WPۍ;(g%jIH{lduRE6b] ߲<d` +f@l4dd lDR c5u༑gΊt 1A\1B_MGԒ% پK3wC'%"]p.a%+.JMr*mv (oLx@ !ֈ~bE agO}oU-ҿn%4=I|Hs{=nG>LsR$cx7lW&*+a0Jf5Yr4"Ɏ^> [LP&#+QQݖ4+His v[9mBdbu!2rQdfͭ3cyNփ/>ZANgo콵/yg>v&!fTO(Cv%.}=rsxY4YvB;(sS2"׊>&.[ȵdxϔh kT߀Lh m?(5yլC/q)6L4ݝ MxORxDbl&AT6_ iפՏ8TGMrR .vI0SYaڕ-f(":@˙,qf.*r~4i7*h^i/EfU3_24̽E֮ẂaG͛Pu{#+Y8@}cHLT dmس6žV>} 5mBQ ڢ +ۗk8aҧ/)2PkaOPM[ pGǪݙ#_0 @DFF(9drW) T>LL2hC58Xܕ9ǝ)lY7nTz| )ug;+ﭶw;6rH x-֒geiEOMd&‹߇#ӭ %YT joJL%*t7ˡ_@^51ՋLA boH.Cn6j2Nc8s&iJN\4i5[ Uۢc-CVw=6o#%mDZY!l {au$û=<4>F(v\DždN ÷U\,ytwZưN0Jzrtl;:PJ/#lUQI5=U_|uR[q4T-M;FQT۞1k?nɔ`)#lKUs*š}j^tZPp[Ь6ǤHОg_"tvj}jo};rUZj; ʙS2[toAsB#[EC[vDeT ۯu)eAZ0ӻu?lve!`[#ZK0BvW f fw'cT7g}f$|}5ci^n몵^(/5#aFx`ԕu`*`7I+3CqqzEzc kD~V3wvᔱ.tT8/.!0YgKs{w PA9`%;ԕ3̦Bbj}tWfwSa¹( /$^=}S=Iͮ87?K.ByTeIAR4~M-ӓjxw\d1.U$\3#b޳ĴC@$ {5Voy2~ KΊTd قdSNֆŶ8<2&H t}b+\QŃY ?L$W]@ LiYmTc"u쿨J:zɿv[[(3SVs(J둩 ^Haaͥ9G|m|=(40&4>ӈ:~:5`*Q[+ 2ѓ1FL3<KPauJkp ]vQ|.s+?ewȶP2ISa:w{/6 N'kVY'6nULj2'Oi! J*74ST=a 1$dD9BQRZk%3Ґ`U!Zrt> `H/g229t0e+V)6[3:+a Y#n~)GD=pF_6nKrZ`[1J+MCPrߙdWD)gc|Ă @FS*{2rxY?|m caP 1Ƕ4V2wɒr=+G˖߽#^tv#s@kfJ@+$ff(imьyDZ Uk<UsIޞt_羶T-iGD ʿL;ގ hȹrmVC"]FBtIYuOZ8 򖺢L1u(r71a#͡]hYOގRh.mʢPe/Ż8ؐ+$@Ekqghܱȯ^0G?ϔW3P(J(P/Z~JNR4gJM%x h*jJߠr:4/xiiXic*h{R]34nGũJio\p>cmVk;$Rr4rZ56,WdƦ+Fݓ= I/(2 Z cBf&XqFtg]K~wF y S$;P҆0X![I+ 6b4 N ĹLSJ^x QBx<~sys=4.#P:!جd\[z*RIV~55e/iY5s|;im~eՑNgТ=qf_Dϟ)ReBBSATO|TVmڙcYsVǎ,(e_%P.ףӡ !P6žJB:L>8Eyљ5`Xm+{L=!"KY 䃫8n>D73r{oii}5)if(է([ep[Uww /BEƷDQO..>0\;Pu17ˡ5[㋨p![=gER[QQ`Hi} ^i`$p:0W؀U4&`NiO(VC>);kN5 Tc,Uڧ2T%P#ukPrXz M FZ*F!ѓBDv/ }7׺sڄ+bWkrjl?Y?VXxב'DQP;Mw~$v ZG5tSs.IFXÀ&>އq;cB g* @VyJJQS}HבٕA>U"v1EmQPᵢ}g.ǔFnݮj H(:/lma9 ͇=+^X'RwzvU%Y_U@ U"72G˜c 5o=g^11+Dz4UzKSTJu؉7ꀣׂ>oy$"$|lCRZH&*ܳ= Kҵ鼸\f2o,oIj*@{W,\G ɡQIwG/ܥS.䣯frnxjωlpӬG9Uj]`('gYI&DŽtG)!Fo_CY{gaL`=(۱u 1™E_gP%-]!Y)*z0#M>_p¦d3juMԳ˟5J;j9S<sw& @ğg4кtF_%n>]8=ӄ5ȲBIIC <}Yw$qa@<_Fl)FMzqn\5(ir p @kxd"5*\P5-nOLa]D숗'j g2&»D&s,,&KVKJX zanL׈P擶Y)XTL8pEly؈R"f+z69Wd)/M!o#=xY:'w2A {NU.K$ɤ3r;z842.²2k`'__lVpƢMY=/NP3I/r`dG(TT cэE6ί޶n1;BHtp}Ԏdhpsk"fρ hqe[rt%7^ 3c@R6lF RZ:wDl 4w9^(E9:Z*F.₞$,oNAz1am?duN{x8hn7y+ {,dS]8pC rM-|U5OayVY6s 8\ >$LӔ`eWxj?vj-/U[(EGΨ5MDž4&8R@utxyeıP0j=*"/%i'hc ,Σ~ hتL|*ׄuRe5^Ώ3wW7*‚Uԇ9sqC~*PxBZr3/]߫qUSZH 䭜y#M N ؔHv! "[ҝfRF"Tܣ:{/:)KRSEEU)\< GS.*} nb_^Gwdh?YUk6"\t%~ϺDɮ,&s@eL8Gd5󍰦(-ɷ?IK;n8=İDm_y̋?r?2٫`jp$,S926zP3ZYlNptjDGiE 0P X [r$u+WG^P%n)K3{SyBF7"qSZVUY,FAUAUD"=0U\:O_5> i.w՗.:4"bhIhmzWQOF% ܠUuZnsz;fWǠ-%AO(8-UXHxNpO !;\AzDtH Zwb>w$'sԮQ=~iy|Ō!G1U7Rx{, 黹zX5*ۚRb}_9R p^wq%gֿPނȃE)_~9HwrLTM*I!0/I1.po.u/:|Lud^`u+KZmL&7>fsFwG&mWPL還o쉿IkϿM,F8u%$H/c{sx,RsJTTxd\;c`z:b'9ZOoN&oO JkEKw6~(̞ n2a8fG7`'/Sv/#d~#nP[<e8EIlċLM8Mu@0]$lqesB&$jSDy!YO9٠QG-2M&==p( BDZYɿwn^5%j=8MoE0![niX;aVx;f{ȩB&w eJn g*.0!1Qj2[r;H^ 8#FQ9C4kK1øRj d1çJ3 |4 ш ,#@? x4nHRĊs#o|b$2S∲ BKw@u!̿*jتF!]svY1BO LjW*t^NbCϩJ cU i}qD!k?ӱx^d"x$xM<5>3d8'؜m^`SDWNtZ 0a5QHud4m}4Sb%2  yF꼛NC#`+.R,^\O;W2E4jk*]`8,IbfEUl~q#ܹy'gWҗN vKI/o)\Ll4W=5R.O]qDa=47S5yQf/b6j7v;94$5pGEXUC{HG5 Bʑ1OYanf,k$]ƹO_2 _"i_\kѤ~HGb/_;KOkHX.Vޭ*VMvXTtBijLn0 |- |jwEe!:-,fGvY8Ph wDbt~[AԠw2_{܄篴̈2UӕY"{"(@ȘʌK_{8 /|'xSCP%L &Lt6 u gt<5pN-xe˴wWةJAaFtguۂci6e'Nxo׳,*0"͡ k9 L5Q7[):O?G^~:QxH$*ԑ!MY*^@K<=jgUN$G^K;qVL}Qo &ca bDqTl0vgsH[NnBfd⏂ ,j8_&^V j3}c>0 YZgmm/man/0000755000176200001440000000000014017531111011577 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.Rd0000644000176200001440000004160114017527033012660 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 \url{https://www.jstatsoft.org/v16/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 \url{https://www.jstatsoft.org/v34/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.Rd0000644000176200001440000001333214017527033013357 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 \url{https://www.jstatsoft.org/v16/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.Rd0000644000176200001440000003272314017527033012654 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 \url{https://www.jstatsoft.org/v16/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 \url{https://www.jstatsoft.org/v34/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.Rd0000644000176200001440000000672114017527033013524 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 \url{https://www.jstatsoft.org/v16/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.Rd0000644000176200001440000000343614017527033013161 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 \url{https://www.jstatsoft.org/v16/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.Rd0000644000176200001440000001514414017527033013204 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 \url{https://www.jstatsoft.org/v34/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.Rd0000644000176200001440000000521514017527033013405 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 \url{https://www.jstatsoft.org/v16/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.Rd0000644000176200001440000000563214017527033014036 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 \url{https://www.jstatsoft.org/v16/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/DESCRIPTION0000644000176200001440000000234214020351121012526 0ustar liggesusersPackage: gmm Version: 1.6-6 Date: 2021-02-07 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: 184 Repository/R-Forge/DateTimeStamp: 2021-03-02 21:28:59 Date/Publication: 2021-03-05 06:40:17 UTC Packaged: 2021-03-02 21:47:29 UTC; rforge gmm/build/0000755000176200001440000000000014017531161012130 5ustar liggesusersgmm/build/vignette.rds0000644000176200001440000000057014017531161014471 0ustar liggesusers}RMO0 ڍ}8+Vܦx[D>4nIVImgy(0FhFcNp]`t˂r11hinZP`_ȽL 䉿5Hs k f<,4U =؁w9(M܄gvqԂO, a 6O!OG!4P'*Γ #])phu #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/Makevars0000644000176200001440000000006513464357722013333 0ustar liggesusersPKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -lgomp 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/0000755000176200001440000000000014017531161013041 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.rnw0000644000176200001440000017532314011255710015675 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[utf8x]{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/NEWS0000644000176200001440000004104113460072542011534 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 The following modifications were suggested by the reviewers of JSS. These changes will not be noticed by users. They are intended to make it easier for developpers to contribute. 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 This is a major upgrade of the package. It follows great suggestions from two anonymous reviewers from JSS. The package as been modified so that it is now very close to lm and glm. 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/0000755000176200001440000000000014017531111011225 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.R0000644000176200001440000006505613571757641013152 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(object$g(object$t0, object$x)) attr(object$x, "n") <- NROW(object$x) 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(object$g(object$tet0, object$x)) attr(object$x, "n") <- NROW(object$x) 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/MD50000644000176200001440000000612014020351121011326 0ustar liggesusersda1ff6a9b1e6204963dd6992bfb38694 *DESCRIPTION 8dbf0a1bf9e2ef0907845214e724577f *NAMESPACE d230116a1cd324288c3a73c313d11f47 *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 cd96e676b1130d23cbf98c21113e43fe *R/getModel.R f091319a29b31955bdc80f64688c2016 *R/gmm.R e50bb0d4f9c06ef3bcaf29a6ff9bcf62 *R/gmmTests.R f20717cd5d335a20b4d7723586065d35 *R/momentEstim.R f175f4ff505f6edea1b2e97a2a45d72e *R/specTest.R 5c43d9f22c0c1c9f028319f57004d8a4 *R/sysGmm.R 2e71d17c663b3301216abfe2aedf03eb *build/vignette.rds 42069b7e7ec7bffcb1f88c2953f058b6 *data/Finance.rda 12c7d22cdbc84db1ab6aed5a5641d86c *data/Growth.rda 89ae7a52a69723066c243970854c3263 *data/nsw.rda 920a91064ca546be34d6d8b43e243501 *data/wage.rda bdd5c167d12407e9f1cd1b62f7a90d78 *inst/CITATION a46b2d02e09a545aaea830e4df6599e1 *inst/doc/gmm_with_R.R 8ad13b7f0f444d3659bd4e1a88289fd9 *inst/doc/gmm_with_R.pdf d050c05a0de37d9980d95d0072176c7f *inst/doc/gmm_with_R.rnw efeefe947e420e6b2baac0901af3bc95 *man/ATEgel.Rd 5e37a93a689634ee38cd7fdd177c2827 *man/FinRes.Rd a91a58e7472a68ca02c9cea14055a9c7 *man/Finance.Rd f3672fdf3a8e1575afeebd6cf1269744 *man/KTest.Rd 72adf504961f4fa8f4ff5fa80da73aa5 *man/bread.Rd 14966456c92d95e15bb4e80722e48dfb *man/bwWilhelm.Rd 14fe0fdc342559be4e3f371835ef8656 *man/charStable.Rd af701418d7b6f2bb0360e0d12311d3cf *man/coef.Rd 0f7e154c11fe4b909e75524831c431d7 *man/confint.Rd 228287448a2651271e1f033f1f4fa9c3 *man/estfun.Rd e2149d386f6102467f98b95b9e40a634 *man/fitted.Rd 9ab973a6d0f9157e45a3345ecd2aa474 *man/formula.Rd 366459dd192bd6ebc832e54ad7061d0a *man/gel.Rd 0d586d2638432c60dcf1c0f3ffd0b02e *man/getDat.Rd 47577cf99ff1539239775621e439d88e *man/getImpProb.Rd d53244c2c556db6d8d317d7b73ad3748 *man/getLamb.Rd a3e02ce173d3b2f6fb5a73f67788eca2 *man/getModel.Rd 5bd6d1418ccc3d0d4a26bff78b911455 *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 755d8427f01351dbf5c2cdc2f57ae5ce *man/smoothG.Rd 52588d1b32001f7a264674c50dc1ec1a *man/specTest.Rd bbeb210028428733ce829e5d9620e94b *man/summary.Rd 89b59970142a388674acdbf13f364065 *man/sysGmm.Rd 6fdb443b30bdea453487e4f1ccfc2133 *man/tsls.Rd 121855f3e950c50c3292347b76a0b255 *man/vcov.Rd c0a39ea7fcadb43dfe768cae259b6026 *man/wage.Rd e74091acc34917e8741e47b9e1fcbc0c *src/Makevars 27461960ddf6e06cf7e55e51cfeea7f5 *src/gmm.h 16f0236c9e73143592e6d9ddd5ce08f7 *src/lambda_met.f c1c162760356490e4bf0119e0682ea0e *src/src.c e1cbec0189aa6e4ce46551f005822730 *vignettes/empir.bib d050c05a0de37d9980d95d0072176c7f *vignettes/gmm_with_R.rnw gmm/inst/0000755000176200001440000000000014017531161012006 5ustar liggesusersgmm/inst/doc/0000755000176200001440000000000014017531161012553 5ustar liggesusersgmm/inst/doc/gmm_with_R.pdf0000644000176200001440000171647114017531161015363 0ustar liggesusers%PDF-1.5 % 100 0 obj << /Length 3475 /Filter /FlateDecode >> stream xڕZKsHWE1EM㰽fvGڽx蒚0 =<,k~hhўKSde22L:t{J0תmlR=tGJK+7 %Z#n/TeOLig֤K2/|ۀ42¾(ʹy\/C];>ɮz Gd^UCGgve۴|l@MS4XW+kFV! VBTz2q=sߣ$:QhxPW戮ms;v JI6Gϻd#gkr'St$\tl}s\ïŮ8>IF7V$mܥ8N$FqTlnP5{_hpjfBãM0 \D.x0/׵x2q5Y܍Z(z ^`hHÊLfΝo֯q)P oiU]<Ԏwn~M=WuĞt2tXE38yr'\RIh D0`3I C(6T@[:ܿ vc9a,%j_e v]@[/h#AV*~Vm7<7P |vسn7V c~Yp3qbó8|O_!Zth )g7#*rRР$;*l0d`ܑ[ iNT2ӰXNI KϾ !@AtNvF 4qՉˈ W 6#(QpdLwUb*2M|/ێ;?j<0aEэ0ood`IX l?[}s m @0!H,:GnMp<*b4O20lڎ;'[{B [4jCXYƂ\@4,#w1MYuXNX 'e"vGۀXRqL& 'dSG, i˶%XYa:6;^{Q ZOs&o^dN$?NJqV{Bp툳&7?Ebh $`Z٧bp}vAM ͩkNz~'A-Ӈ~/.04N{Y:'C]/AiW ~5A[PEq^IM)޽+po/p shI1gvDI+`˲$ne'*ܴBbsj3?O^+g@< ̷'/\tgVWa]5r.yQ]]kG\\:9a α==\y ,WTONbġ3ςS6 UgsM{+8~#tTA.*Sn$˳ C7vMHM\Vu*٦ػb'AS,ـ#VC/5IC^UfC"EN1#lj2/=Rc>LaaN0WRyUqfI&GZ3!DUNjFc&lr)mCZ\d(I?97k}bx/4.TqHoXh@ߒ|^ :oJ </RtY;y~5,"N!w rTZ ,H(b; ʵ vW`B?6_yt=X$c(#,j e1~B/bؓuiT-L|]-B_$_//7_3AlL_@_@y;asqRB4_73q́ƺˀ \2竉e,\^lOF\rABdV*z"};00f]gfD"=ddsTz~o [qB>6v)@TYQiF GV38;|lξߛ('hI_K쬰6UBrv]cxʠ( EEfLBP|W^qȏ~EI4iW1a@{#D>[Qv*'X?Rar5> FAU\? 7e8tyE]ڏOӬq ߿ h6 m7h7͗?@,γ316UBc0՛7@I¦\C7iƑ!طl VYUA,E;s:Ǔӓ^_X N qfT4z x WMM)lN=~s>ݎS 0rߣ!1HJF? endstream endobj 138 0 obj << /Length 4196 /Filter /FlateDecode >> 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 xnF_A/rcMJ-hSh5i 0%q#.IN~ϙ^=jd52,C@b̹_ˀ?^Po^)0I yp qE*o'rW_HMnze\W,bq L9#3Uj')֛)fr,%i̹If\O>\*5I)/dQ9Y_IӹWn&k{y{ɣI ~bBp dPA0(o Paf~/`: Xa8P #68.%Tqi@= cΎD 7'FA= CM²ޗI Eo;f6QEAv\?.aW!@%P#*_@|iomV(PޤJm6[=? ykF:(,'1 N'$Cul :+@VYb1=#j5Xpt;vkπL"ʎNj7p_\'2&bqGZG.RkX- 4HJG'c>Ck7~[.TPN( YYy$d l [!h;Vov ; vh.=i8F f FyZJ`u6{viݨN.ܬB;u#U1rݤ9jRBpps_DwUd͹,"Iե'c JO%Fse`T Rh}{"EV ɟş܇*.KhyXٮ^ZѪҲ]ۍHFVE^  .EH0GCт~,=[iB%g#52`>d7s/߂ z`B.6bBqc|IƤZ ֕5*"*PbQsMZ r@О]*`5ITXHxȧ0! r}+i"J Pԍ* nU6ж- V).:'I%a?7%}x $Fx؈ 6NRŋyR'6w\~l)#!mY! Îdpv4Y4-j.YΛ ǹ~FLP -r2a_ !Qg ]4̭!Q`Dna.e3@D/Z# RKشNޛ >#uz xiQ{:nE$o{hS DA!HȜeCw7 wRfǼEUXKlӚ>;~ ;ۈ Y6͌gۮlո';]8TŶpm>οQO3PUPq/r'WGv^ pIe{XEA䀉%GFÀBAIZE'pH!dQ)\2C<,F Yc+oe"r1u 5?I`RMM,gj1J45Cv=FvhQѸ:6wv=@ydOyDDB~hqlQsUhvA{>RVjvl|wP_ mZiMѵW*~ׇ+?qIߣ A<'#O*Ngsw'#Ed"s'׏I~X88(Y<٘dWy.mG;ذ ڈY7b#V"cx3x/g$k7Zף]_閪5A5FMUД M}(a˷ݱ›h*" Ò?zk^F5e[gD0 9Ǿ|O{:H0\}G9<n $:ůN5,Ki[EQC$|kl|)蠅l 7,hD} >~M`&,K%EWܐ|]-65O!P{7L?GH»Fa4RDwv4U sOvޮ=9\CH׀ί_p6[i7Ͷh;Lf{)c{aDkf 7'!w7i 4.MJRfu  ^bA}~+eH3r^s@]EbN1PXz07A!:mPlŰinIYFj/4wcdi6T~SZ3C1cK%nT?U endstream endobj 196 0 obj << /Length 1720 /Filter /FlateDecode >> stream xZKs6Wp 5 Nә6=M'mҨC-A ;傔Lɒk9z,X`%BQD;^/4W 6.2IrhoL`*_s -diF y:r$|SwF=")@ Ovh4⮹Dy=zV sGc+3iżC {|w A'+6Ѱʹ'^31]h0Q9(MgT0P~&ĭw͐x/YQa ;q2{cшo>6o?Ř( A|Ei@ %in.M*K;:2X u@Ivt0r T1U҇q+C3O2$+exq m ~u}a}&-O0 ;ǣ-LnR?TeS'!Wη_D~e#YƴRۛ0~?BL :[1O-NaI~h ZÆZ[g + kW⫥f=!{'^hG@ <4^4f& ѫv+mOO_Ik%ThJ͎raq:h/ I_oq gE{r)eDחg!PB- S:no(E)(ۤ+*Q|9\ vPzIJe u,dB5 } h3^]A5ztE(fyNEwqҜKATlA> stream xks#;ӴL6&`(IP@ί=He"YxF8{}KB.`@bҼw^?!x4 c}b׻ Ȁ4E@qXF'/$ P( cE:|)lxXYv'@~w+ _$_4 "*|On3\. ƼKbRt0^RfI5/MV]9´02KDLuP~X$E:7iQѠ $8ggqr{6 / Ȏ8?+{? ]'C}8PF̽9y&hQ5%*RVS"V}Y O"-j, HDQ(gnHKt8,iLr]Y:ڧ>HzpC&e^5jn'4(qNƭ?|?r%ÈFm( 5|r[AJCFfK?$V{Qs4OÝpPE61AV #J`iq>ӾgUc, + Q CѼ움 =SZF E nD&I,ڝ]wQN굷߀.3`Yt-]aI=+˃w@bY|nY&V0 Eݳ0ΏƶMfj&=e3ifIYo}?Mh^^f*2“Cni ;.|,`t3 0h } (z~}dj2dMƃ5;olZ8,= s nzvӬ|׸ИhtOmve6%Oj5𕯦ggOm~ˎ~8K&ϊwޭ8->fG`G1?7rc;`xhxpPzш?шo-| [Z[Z-qK*jQ>hqKYA$_"KQlQu.pQܡϛ9Cj-CC%yX<3;9 0xbZldN]ƅ94 Ȝ:tQ`̳Wը`D܂4a$x@Ӯ$EGʍ bgc?%g.Ӫ³phJFcɘ 2=40h@ ~A(*LwQLpwmAJ Pt3<;2ó)׃9pBCJkO~Is^-8e-Ljy(a slhSfR1pB`o SsBؽHL{!(,n:uG*(<c2ØOiQ~yۘ?`e(Z$nDef }LCDnZ=Pι * 9ڈLKPeΔz^Pd) >ULP wL?niVfձFn1{@̄VkcbXCBib}e3˰9P%!9%[>0G:lmB[ ALWpyyf:{* #X,f&*N8F^[x5z/xBexy{}>⹈7^;un1M[yx6v-V])wqxxȬV:)*!fԛb[9b|h\'E2K!-=kb/e\L8+"X-H?fD~JfSȗ$٤0WB-Nh0.,JU۾cEj6(7L] [%,,ey_Jbdʕ8ˬw>[k)|Ie4)a5p,S1X 6ria@k&Sx6 oI1ʒ8 ,3]{W~Q>oDX3cc-l |wibo 3TS8#ԌY"%S϶鱍kS_.[Ƽ `Axu, dԂ^IA-xi$E ZlfGb6Nq z[.&R®ކZkRI9q)^4^M "цVI(GeGPږkh\&w%U6%j+V # /;[~&~BaB ::qm\L@bfxiIgpǠ<cgȳ :C%[pøL5)%F#V]3CrcX d&"SK0"n$f$˓Cay:ĿΦAbݢ $' ޿$0:3.t%tًض[++mqF9M-h*ɦn@PV2M2LA55?̷.tJʭ i:$ђõ;l)Ĩ{Sk7"4>n)kme1VAQ"̂ʟ@XBn`P5_6 cv<X endstream endobj 221 0 obj << /Length 2728 /Filter /FlateDecode >> stream xko6{~|sHi{-vᮻ]8jJ[!Yr4vk!bq8y{ {WoI({׷^Ġ=A0""?LYbҲеWm]BVJy''a'Udv]TaJ7yZ*YkVtM΁IJKh2z{ mJC7eR+č1?͗YjfXޔri`#x :@J-P %h`%@6X0gJPaeau`d2"xo  D-!EAȼ@q-\/'S…Myb$B! 1P tH'!0j8 [860D\oy#E u{ փz@pTZL_0/Fa>A*e Q\tA/$ # Q7ػ76Gz*2E SFw臄3B o^TbE*;.'A(:"&S] czH@IAN۲墢lPhU+kke1F0}s~CK3<n Pgjdk#1h#@ǴطmWcTLVȍ>A߬Щ]V.dȢߓh\YiE32;8 4aFAfd!,6 7ƴ4z2 bXDMai1K6"F-hZ̲\-TlB#.\̗+eL0'3%+֨M6 Ia 7ȗ1 [(B tit0 W35#a !Paȏmzq7Z鸿a( x1L,ӹm$KܧaE?3[B媾ԏ* RI*v.LCpBwȀnmpt-Xڱ|`z\;tS[cSa*Qqaqɾ=zz+xdq֡ kn8T=(OdX;TԱI:876k?[1X\,}*]?[ctj`>kG1OZ\7?uAJoV_>ng ?zWzccYvHWV=.PG-瘆M˟fIu.Mz4d;yN?=K-gne9 L롲620Y=9ܸݤtT,Qļs)Y$ydlQ$k'K\9tabd}.A"d^88FFjboy{;TG4|u_WrfǛlv=} CP.RqSJ0v-fm'L Q@]рG=aQߕgY-پ7KrJWČ~zЇgFJrZߢt bk[0H4:肾`*9}T#ux|/PKrל }æ_ |?UV\2/̲*5ϩ+р 9tp ʇzbhݷЗWCC_F/(旳D #p>,{xtq[i}Tm^7 ڭː?2"E_Q/Y2ka̫\_3Ln}ߋ^,f$n󿔷,wC@U[Y}vɻq<0~H~OcbOcİm.Ͷ endstream endobj 225 0 obj << /Length 2136 /Filter /FlateDecode >> stream x]o6=B(OZp--Z\oC{LÕͦ菿eqz9 ŐN_b^F0iHf؟}>c Xdu!"QQ!\*JL#i:ϾHOQ볷W0TFlFj̢7oUWe~0UKijB6,R &&kP8a vaM#'*e&0I JÅ `E^[UL$ a 7Jd(LʵMabvlEʁ^6ĀT{~_'׶ލr,:k{i=Ь} ,}(@< Lc^1)6.o-ScEV"X Gӧ+USe^lOai}h|^m!"՛pdQ!t\{"N'eJL{9Υˀ$F2P< {!f;nyPt; j֬kەhv5u~mv BW؊hdwG2xw'-:eQ4xuII R+/5Z[r7\9TZ_#hQ<;ߘa m,0G7[PAj|GP10]C~'nvPj*L^P \`fXt .W7BX )aFi|&J !lD=`Īh}߅ W7:66S=5ʈwymg[@+ @\<=)8|݌(Ff<-c+ \w ޽bmG+PFn)Rtқ8ew'mа;!T}g\3D &ZN!:DH$T{eXr =l>(9_Nϒ&]Knڭ(Oy n|+-8wA2^VLF zW=]7~WłIΰWk)_^,kN S{e!q^w_5HOvR Q*>±ӫy}Ri{λui=[a;L}WջǥuHiit[7@ӱqC0g@~ovHF GF ķ_]ׯ`h0iۚ$[;,ٻp4ܶz17kl5~Ͼ*w[p~{Ldb8۞>>8O}f pɝwC% M띳vh=#B)&"wx-`MHr…`$|zyAu y3!#LS9 \Ef&78aLLoH(m,;dP0 A ,81ȝ ZH{M0Mp&0ML*hff&%Ht3^Kp7 87z$473!Q\I5i7O7z} (%͘;>߂()1,{vw endstream endobj 229 0 obj << /Length 2407 /Filter /FlateDecode >> stream x]s6ݿB~>^.IU%'|u>La$nt}fّwM4 ]\'Cd)';ÑQu%O)%*AǃQ;Ej9>,jP s?^T>~gT5eΚtY^^aϓC("BZs4PQcCkCt^|(n4Vr;YK:n0kNlb@8XMR0scƯ=%ǃv::>g[t(WBU B)c>.uP< 8$5[-%m =uHS>H002u=vgԓ;m}|jl,DZnʓv\:6vS/SIbAXbgMtZ>?.$;d _M]Yo,=ԫGW9D`CH 99Mwv:1Ci ˁ96X`ѓAYϩCLǡKJ0Mvp_M ְ&r 9vk:'B/40z|E`+K(n5-&ř,E ,kAow[],r72ƘܞH'0ﺀе.LkjGIVx6-Qx>6.=*6q#BGT0vl}q< 1*\gcKIeGCcIV"FJi6ni /)ҫ#]i-b1 /(s]O*\vfzuzvPxy|'8';SIi696}i3oy6zѲNhgWG})"+Ϟl<6YA;apl4HCѕrwx<؅k+[`k`?j h1i.rc&UjMK`c|oOK=[/ 3ikr蓯}Y/C1)TW 2YyRqmWz"۩+kN 'XsvyLq!\6P4t])bƫa}3#`H&"n4 xeNI^0$J-*#WqD^C+m}f tW  吨{vd,BF{_=wC\[k)yb(Wleu'Wb1!YD$s fa!x" SXw!%8?SB{gtX%U*W-fi{ygRMF_j ÿsI_&Lb'%lm4`L*s8G#k0bKw"@?0mRڳ*ڢ-qYx+[JXw6Il~qV>mQ58-Y]cuJ}j>2Go^rŮ`2V)[ BŁE89RUCز Gy'UG"O 8c]kaAW endstream endobj 237 0 obj << /Length 2824 /Filter /FlateDecode >> stream xks۸΅sMI\vL?Z,ؾ]V _|?bt^nhӵiVL]/d%gvRK(bïhThXp=,^x׋xW,L,P8n܎Hb*q7Ǒ"52]~25mNY 7;^k{ ׷%8T(É>3xGب0YpuLK"Fxl(h1VSFC A@#̊JSr$c`Ul6>uӁD"BC+Ҫ4ԖE1,g;9c}=nDs4 endstream endobj 243 0 obj << /Length 2787 /Filter /FlateDecode >> stream xkop-pе.w8ɹH$t6֏"?3J+׎탯 g3$Ai/_4HTq#izI6ma[jg"lᗅfMx ! ms#LKFβc7nܑȊbGuմkhLϲZyiqyAn=I9MiOW[R&3mVUW %Q$^TEC ݢtZaݬ0~ KzSYdoQ (X0Rb~hQW/8|d-g9,ѨfMtpt踾`E VȌ b.6dSb jUo'Rʬ=| ^V0D;zyrq$֑"71 e&IXrp&\ CfG`W 22 {tj8̏H4`ič/I"-*65ڿPavhi驙  1;d%)H,Wy# gdo^!BdaE&"'&HnήXt ^ʘHʘ?n|%qa{c.i1Hi51WBȘ7kÇεFg2hL `?18H]sfy_:U+>%:tBm]x1d~S )vL( 0.~ A'rtS9hd -sǀחUYS$BT2 u2mn.k\7my?N۬(T'8^ {aU6kݕ>8HH1Ub+c9@41s}-n€cKKV Vk<#IC/uˋ`I8Qq9 8@>PGϚ8`nOom5nmA}|yfΐ gj^Z98ؾQZcͤ ""/]k@T,8?vįk_]bЩ`54N]FE@9~fJp#ncT#nr)e2vy! XwYSM4Mt~'Ymq0IR5.8afu]%ƽB؛ ڰO=ׅx X4W=Nq86`|Ā׻膧/|ud* M5 l{He'.qv`bG{9H\])4lROT'k3gng$J-4]W+BL¯O`O!ُe?w ?n J#Rq'>}i<K9t40L p !,X{c#_7p-W噙ݴt ~Y|Jw1!Uc_oN`_;-!U,-bɝ஑h Y #bNw{6SH" /秧SS>_HqqRB"UAs kH:svxUxbGrʡ#17Mx@("s=O\j  =FkOk EIDʶ$e'~ϗ!WnwnC~Y\@dcwb] [.v3<볶w?W^]t Ook0TP>=zFkݖ-ݸiluE-ww` cqu:lݓrG?m.5q1@?fbcrp_'){*2STk?r&נa\Z[ (~Gr\A3w ܥl,=3@G 6" E4xtUOk?> stream x[[o8~ϯ0yQNSt.0mbg#K$7>osHJD&:Hi"/N*)RFtQ_Ƿ'tM#xɋ3hGQbHF1jt>3z׎'B(o)xj<ɲ7tY_Uoɩ-@chmut'àk_^5yy$B%R otˢ4/A@4%SVO+~okGLqmA{₊:OeŸ\e=6'~#yl.ևLU{^[<[)ql}]?Tq?WcS̻BS2<{iˇ׀Zv֞>L/8{9m۲pZw?7?=rfU@5n^=3.̌(n;{qꉅEt顃OOOBOsp/;q<,˛^$GD3/'PDG[E /-WDLG2ƞl ~N5 ƹ6vWr(k&Pl4Ƣ·4k2Hɢ׫h.t9ϳ0T0ѿP~na,4\vXUz(q jnQO*pD$<(D:H2]Li{qz 6!y2HFof]"W3C:ˁ}xqjUǠ"v}>%gقG`CqS![Nw 䫶D`{L99 bjhvcs"m7݇]A ^V͜mP>X7St@waV K7qoK[_״.*> /ExtGState << >>/ColorSpace << /sRGB 254 0 R >>>> /Length 31074 /Filter /FlateDecode >> stream xKmMr6   h h`рnT &2#"&Uy^_;Y[j}U_SJ_OJ_W+W{K㫤=j}UDcVO3s lj ?͹%^5J;]W-{ғ1k)5jsy/)|l|J`[.glP4\zқG{i[߳>T^տj~"K{~|l8~~ܔS/bo񷘨6>MN4u>͹)^zoy+lw_>.ׇN M6%M2|l|-p斜z{뭿eh[U ~i_בvm|$XR+9_\bm=cؘ[rjJ7?~Kp}M:lcFR~c%VzN%)6Vc;ܔS/`_zwyNݲ[e3ݰ<#.*vӿBaIeTؠ~ܒC/aom8~VuNcgIZf{D`I49lJ>͹!^3v gYyNAϣKn?#t͎ˁ%c< | ܔS/b_zE͞©gf$ִDm30Vsp6ٽ&vJOHGN}}c`a>qLhG(c=֩y {k`.z {/ ;Z8b}3ʟ,ȗo’Y`hg)^zoig[1-2G{Nsٍj]Sl{ܔS/bo=BmfɯEyhZS3ɔ*|l|g7ꁭ6plP4斜z{{>7g_\#sL4%/eYbw? KƧy@`v ܐK/`_z̏l>k?kץ|x$+,)[x_;ˎ>%^zo)n@ɻۙss-v趑=% )٬ґw;T !8~Jl-.!ܔS/bouGNv)ϒ8 l.Sgǂjr~#y~G,zΖX7|)ΖrE7ױõ _mp[v, +ӄ-5ٱ[kVYqA[~c_bnʫdzwy4w|^ͩ~~VQ[)sofs#o6K֍9_sbU;c\z[[/qsٰ ώ#β<;ɟ7(sr[2NsSN}gqwy Fy^5{[Awg>>K&xĩnB1@inʩ޲-_/l} ;Ev直wCɫSĊaچ<]sC.}%Q9nf~ݭ$Q:/|lFiGymsSN70S/d#Éf㹘؍-v\+R/͹)^zoyv۱}:F}ޱv閿śu#ߦ]`49/)!ؤiؔ$z89jwӚ*IO䳒J<`EzjSm l%)v csnʩ޲)e_>7/JXU¶EUXˈ%E _[`%UrE7<:hw =P Ӥ<'3 +/?h6oc'17ԋ[ovhOJSYKL[x^Sb^ڥO;Ǭ5 gm夜VNb_zw)-~n;rZ[YnnWQ9aI48vXc§1K[o90lLG[vۖJ(|{}+ N p5vە ԋ[oXkw}S{0ݗvەҒY906>MδoZ0ؠy%z}?sct]~'R?s8 ,|p6mb[5S4禜z{stGMs,7 ~ΐ|S,,(O0>%z}ܜyd~}~ {sS} cL?>)־3<}boUxXQY8&ib;d56(hKp9"> ߆y3'I,xހؠz,ĩv lq.YܔS/Ǿߒ{ݑEux-;/>,#snʩ޲wx_OsE LK܌(.Kp/V_5vM4榜z`ZŐ6;hG-tuKS 4A䑰;c( M9ʲkl{ʊ! Nq#ig5~6pR<|*K;q3Nx86(|sK^tu7i7yL;?v3{luGgT4vwQs;'r[ﳿss⪝l£) {@r|ck7rgfXxN6fQ>n-G_XR>6>M"v ܔS/bo<3K;~nN`s=.{n3yGRX9ۮ>>c§17ԋؗZN4~.Nwc fQ0遨!m',v"(řk"Y>%z/a/cęn屟k}'>bI49 ">5Stԋ[o-ݝa7M8<8Eܧ(-s[mxm86(|7Mʩ%Nm.fxgϹw* _XP&g؇Yؠt %zpȲ){!l`)ܾpPq)>6q})glP:uԋ[o-bF`ͯ_I9}G JAyW Q)NXcfY rAa۾+P<`Aq] kc>wȩ)ފil:F߬@$ ^VU-^`ES86~֍ϩZsSNy 򳨅w!g+.mI 40h O؀ABˌɥ)d_6~wٓ?_Jt9m’w?8x]x9:>\z[~F 2p`3.fld9 us=u3wGh ccG)zoY >C>7ߪb7f7-uĒhp3'vPc8jnɩz_:<(]I-}]ʼ?dO0ObI1aUAӘ[rE'gxNٓ65;: qsr8:vXQD3IlrN %}}`=0yL'5¹=|ױGPܮJq#EXK;cؘ[r%쭷ֱ6<=/y=x?Ǒk,)UoVhbm=cҩ\7 PS`_ze[!y滟r3G>܎*,(-s)} JvK[rjJ쭷nvޑYSsũ0űDyw)~49]1yglP4\z[ NtmA_͊;9 @r()NU`Gz {뭸hNbd4 GpuH'88$_EʄO\N`Q{Y}<>8+ Gޑ{@,s{-E̠榜z{-_|_u2:YȆz_쏘-ϗVS`2blRyԋ[s)gDm~"Ύ]wtsXd%5#gDO ϣؠޯuԋ[o-Y51q6g7{.6dD+Tz#l5F]sC.}X80F?=tp;bS:Td.[ܲKhnʩ޺Wv;h;t$g7?#LE~o`EȜxbWӝuQsKN֙`sx>CYK~i;.T8T6F=bE]Tr(l9c™sKN}}OT]=/B\xVQ8w%yǽXRD boOd\z[-{*V!80n#X} C޳nLj*V!8ta̱Aigȇn3V|N%bGi0XNAfX'-P#6OXR%bGZXܨ5vQM9"[kR9Mm(}] 9o5"[Z^a+8vUX #%*!# 9*\Jwd3H}ԙ?8#9ʬ36(ݑ>rE쭷ޗ5YiQ(vҊ ~ wx%UDebh줌ߘrE쭷XLSǂl]nYigy<VS4ԋ[oWm?&NMZԇ=x|7<*ĒJ?F >%^z\_9R\]_vgzaI_Ai-M9"[E(g$8| *T७M DG>8T +Q/(5I9#17Yco܎FAT̀ mv{)aI8/lƮqܔ;֛Kr{s%#Et\;fxs@GO N1a=,Ǝ|rKoŚrtbz)8& ۡ&Ntp_ZJ<.EVa|v|Ԕ[SOi$ >7OtDo=ב{E`I8V`iطWsqŽdSwqխO,C؂ ~7d+MI;AQ~¦!^>b P9bwOWRjQIn߈jԈEoeYVx?bKo-#ZѾO?֘ |VET#p_XR'P)57ԋ[o=c{-9d0?yktpw֩!FlbXrlP?<ܒSSbo&3l*7!8ayT;@iN#aPXRS Uc36(|sKN֚<`OK&N5oYnj(!VoL d-9"+Q#5 HG  ٘uyWE ǒjw@Jmrybnʩlkɳԯwd0;c§1K[o*9+#rڔ(uI޽rN48q%sl\Osnʩzg1e94]Jo)|]9գA-juܔS/bo}+Yn 璾U\(gJEPʛ’lx)6Dr!^>(rul8UwDG (Lc(o&,)u,h'Qb;;slPX0ؗފU֞_YnB},[(|w~RLߪ5ؠ06斜z{}rȕ[ݐ4~tĤXyZ?pݍuajԩJ8.kcmg#^zx}[;A۟T~ aׄXQ3*{3`glP?|Blnɩאs`\cgC[g28nk#xfI[S |’QRp&x9v)^z+"|>7g#Vۓ<~?|4FXRTC'gxTyOcnɩާ|Is󏝐̒JXN!E%r};sSN}}gG^q=3k3>rԩ6!a- J'U YzXwę_USLo!ʵ{yfXQQ48kQ4\z[d#~q-=QPt~;Z],Nx/%V3(k.rKo/xƂSEFNTU钏|!F~I naNA.)fA69"wh8GsU:m%et{>Ko>cؘ[rjJUwt9͟EA˪ڱIM,cUWzݭTܐK/`_z+b~Q T#T~A\. ;rtAT9WN +”j6mQf:'>aIS/c+lʈ59"a:n/8y)uvKd*r&_AJͶ X16)aԘ}}cQK;.Df-}`oV3;F{:GXRc'OXgcG.cz_<O.+F#oTI'nNTޕAqq,l_c jnȥ/0n9Yj(EqԌs8tkK'nqNĎ&ܥ mu%7qQV^xD!ZTwo|8v_榜z{X?Ah  >2%- 2p$ߨf490 GыIsSNV<A|q[8(•e6RhK(&>N,3-sOcnɡ޲eD^íBLWlSU!a#y'ԩ*$NFEG16)| }GׅV=8[EٰΎ6P_#Wb:gKqP؊#Ǯq^\n@ux2,ʂ?*[w#v-0v9tAZӑSSboADz^9y%bu`컐3Y񓇰sOcnʥ)/eGe?7g{qAx݁۶[.vTT5x+1asGE- J91z{} YS eCs(+mֹ3bzq#Gu?6Ԕ[o.mihÈfE~5̈vIh#9j+jD8~,25v- 7}Ŋ/* t/"V뢆5\Y)o(B(&+{ IkdM9cʒ_>7 ;NCm@G;[Ez[sPJ؄K.=z[Nmm>c:dڍNVYdF!`ΕXQ]Uz')͹)^z;D;rpKu[]u=>obEEO|͝n^[P Eva݈QuoLu"(|G>]bI-]{_αIJʓnRɱ]MKpF7zMj5vmƀN2r/{b47 ؗ5~=! !eGJi'9NĊʪ+p?Ago:B/b_z^9qv'8% qBM |­UOerPZXshl-P-TT bӖ>4ԋ[S>?a㛑Uj耴mQavOZ"L?E4v:M9"֛hijTS%8\g5Sw>@"Z[c|)^z6]|a{F6P´E!}NQA[80XtB-247#U7hq܉k%jEe(y!V NwUj8;8Aal-y޲]Swv'?Ǫю.J܎U% ݈#ͱ3͹%^zߑvb{A|s /zt$*n;v;XQ'G}b{47]yu=9JT],Os[E5 __Ό3 v+ cSn*;clR{7]~~o9Gޫ8̰{^d[sw`:$=`4-"5˱oegusY'{##b#>rTxg­sܐK/`_z+n|.k7S^x[%J= +*V&qkE;PuhJ쭷Me'Hϝ'o"6G *Pnc]`EO}|jnʛ;[uqaf1^{yvEϬ[RE,\qv`K\z٥Bܣmܗ=Jɿ/Y%U 8֪ɜAɿڑS/bo{}Yɸ qVڔ~xJȇ[FOTH b@#Ocnɩ)Zч|n.;E]Ү nGAC78uPrE7/V&pQyG5˟y8_Gҋ\Ċ Omp>i، )N{ PnWSLhP[> K4Uؠgю{}SBp)ّU_qoyTD9ȨHy)2ƧKDwa916)FC95w;9pMZNڌ(y-,T-+;rY>v>; {+`XUd6=bED< hZ5wVvao;:*բoBp/] &Dwg!=j+AE߄t!c蛠%^hW[|eE;981*+n~Yز/D[:œ56(,54 D>Ț=GnQrv#VT?i@lEѩ:#ܔS/boO?>*_<<= W%jGqL,])VFlAB J [r%[U֨&NCł-bݲׂhpO`X$sH8ؗ'lxxT*873_}s=]"’̍|`QAc[r%7mj]wߪW1R5Յ"gXQ-xtQ`/OsC.}XFܑAifZد̬ E?^CQXR  ]㎬Zj {-c9jҫ,̯T*jR.(’:qPA\؊ޗޘI˶KC`lp T{ǬHXR'I!y};jܒS/bo/ιSjBlqOl# vz#^ZXRT-Nt.(Ig]}9ԋ[o.=ss*2&:òy (Er9c}'aKX9 ؗz_P%>7ǫq:nA[$Rvް:FA aE]ί)=[oV/MY8;=Z@" fQ1cZbE49Glh3 ?͹)^V md̕8#ċp[h E$_/#T /c§r|)^zDž$5Ȱ,3x[ӑ/Uiu,<Y 9pr 87ԋ[o n% YxnjϣK#(ˇvF^v:ѠC,}5&OWe>oz+F-k@ep8A9n-K\B>*z*MpXfռNܔS/boy'!;.GOaIu*r}Նcι)^z˦t9Ap kt UK4 ,S1&ckܒ'upU>rh3pCH=vs{Kj$;ñAӘ[rE쭷Cף(9 }Ekb +PnV8}EA/harvrnʩ/(wZrߙYQOw8߉u=TL،;[r%쭷ǰ_2ϢYvT"l?/J=XR[ Xؠuؗ:'OD޵scE M|zftQ^uӻQu޴I圪mnʩ/{ͪ^bKk ,g^tr˰KAءڈWؠi-95%c rrm1T 5[{Tx -=Mܔg5<7U#"#ScRp5o(7r>lX {vKjRpb5P*kc§1ԋ[mhzAP߲dHB}JF}K "ԀuuglPrEKo##ƃFVQyUܲ[^pG>$.,N)q1vĥܔS/bonwiaa=f4[N2!ayjQK]7ܔS/bod,v:ܜ=S< (J>-D,yȉ#*|ilP4斜z{ul9cMuܱkbMޮXU3CXQEglP:| ؗ%y7&&K癈 =]*}#+(=!+Wr,O52F`PƚDO4֏Sq;rA&{ǏzvOetH])HL|A,؍N-an%^z8s恦]P^aQ:˶|XR9Q/8x0gq{ ai=Ya/JH +*nnAzaO\z[vKd-w?n:ŗN gۢ yGVdsD6~c'17ԋ[otؘ{.M6l[mw۰z.18ޡ".hnʩ޲9a#g(˾E}|>x7+N} c/ƹ)^Uf;h'wQlnce.'9’Z툭hrA]S/boOxf}q^ k0u߉J%gGUbIqDknʩ:Bܮ8XrfLQ8¶CyALbE]q 41c+sKN}-bOx9SIQ7Q{zEXX痜D`E! t;ƮMYsSNJzklEuT;]9t}(͎I!IglPޗ#^zW998 j 8Uo@P/cʴnAaGhiM9"[籤:yNnɰ/kXY~y@,xMa4ˠ<+coO-hy"v{?`_"]XP[^,T6v$Ǟ$疜{}0^3F8 qU;T??Ǫ#nT}q2NS57IMeMWPUɩ^bTyo(XUq|JF, a ؠ06斜{}rz98=k|BgUԏN%QĊ="Mcҍ:#* ~bOP2f{ ͐waVTO9ؠasKN}}o=8 SrOdw|ej:M,!q_疜z[n5XSˏ?[Yy-o#Ƨə2 D>%S\6X*o88}ݢ0>»8(3ûsC.}}Bz@>ÌS:8y$]XRWrAXxا榜z{덿e{H.` c0po.ZM Cx? a>})[,{ONqwKubn.(4%uGa }`rGrnɡާ4[}rRU)vd3|Ē%NWCLF5kyi帰'"p]{8)`y ; ʛGiǒʱ,z?jw><"!U;:y ܀ ͼSyr`E+{ Jяփco ;3Ōg‰*Qړ!{Kjo$؊U;jn[o, j&`=߿zI0DT4]E$wj`I%`^%XŬ56(|sKVMR1qdZHE?ўSCcmLsC.}uCщ9Ƀ7 "pH-ɝ!_8etTt 99V=sKVݎ$Y5N'GUwB>!ءaE7kn36(|sK1}TXGSN0Kj݈3QSa+מE-%5#\aQLcG]rE쭷ʡL褽rf~Q+AcA07"VRMIJǾz}qnɋ졬_l#GOu*{Mu7 K*G 9 J^Z[r%7 elPCMc iH’^~w-Ǝw1榜z{>-B^ 9a61AAJ MHb")NMPX_brE쭷|bb|hƍI"JĊJW)i1&%ݚ)^¾>@aAHuҬ]~Վ|F,#EbgM9""O.2[|`[NX̥6EnX- XˌI\Ҏ^}->x|qERM %J7E>&D Kj r<8wR]ϝsSNݲhJۅ8^oìR,}?[Ƒ/ܮ]k!7#c blRtS{S/boUQnfL(¡SI{[5\}’ sp:Xa})^zݧmqw6"=#2swߚ3#GETbEE࠹;iϻ)^CvB𿈃6Qyt|.P/!rVTweDqG%/rKo5T:8d6VIA|Y2 =Â谠OsSN>1Jv#1qpX(WdYwQ'zĒ"y3)^z_tW](TгTX~GN:_9XQg''a&6a_[r%G$8mm9C Zd嵍 zI'/g,naܔS/bouNFu D}?TsϪ8̃Y(3QXR=Vpqj[m]krEoE}ÈCoo\9M}팗ӑ3"hňC'~mY}=Զy VI%;9 Nh'yfYĊ)y ՟]U37\z[ ~=߂ɀ\6|Ӷ6+3zO"8viVg=4K[o핞{绋SP8WXI,#'ygW;z {MXGBKbN8[#f ^ ,E_Q1FaIM(%AӘ[rE쭷ՕOw3lKK捸QWXQ=:)c=47ԋ[oٔx#Bxxoϝh~Óhƃuv PXj쓏)^>SjSSU&Qc,j"lZr,A+9ؠܒS/boX=|8hy2֑dBFGaj-J ;vk;ؗW ~k 5HG ;hOl$U>;AraoUH \L7*f(5#^H N:qpP7D.NQXsKNM>1mOBBm9%O5druu`uu]ԋ%<couQ|A,\p@ɑ&,VpܩWa]gsSNMi>lԂ Blk3!QXQQ 68^D-X$qlR)Cv !nP ,VjU?bI `AӘ[rE쭷ឪ=EE[4h~xz;-ځx5RS48`@%zjnɩ/y3CprHbNq V܀b^0&Q~_aVTwSV3 ccnɡާ U-d-;j[%(JNز@U־zAM*Nȩ) ѥ$j''4ڀnkTQ:0cZ/,mbl{S;sKNjw:}.D7D#GsfTK c{-H+ ^hSSboRq%x{mBk (8rS’* $gd6gN<'{}?${8p]D}!_7UH^8N0mɏ\اPdRNMyN:=;l4z/} Gd}v,cQT.ݲƩ/un@Aep,Un9!9SK*Gq<،rn\z[ˀg/ ^F HNaYnz²ݎclR<^=|0u&=[QSF.|jYN;n+*]}qu sK}ulR‰S:y D|9cӕ63`nʩ/O9#j]33V^D#څ5Ep~e`GԺܒSӥⱦ++ V $f/!n;6,/o% "(S7aè QSRhCܥUrmCsCH5(,/ K)pբ8!-bΚν~[I嚖BS3!P8h/lWEPgw| J s9"[pG1\U}n^u;Jy񍅲KX!%C;r ;AE@9rEKSw̧,.A^l/GYts%O78k ˢz {u: `Dewr"9c5nɑAӺFk4i]!^֖8XF1 0Y% gC2W۬?\Ww&v3W]rEKo'aNH*^k֕unp) G>&QRFXR.X1(`;4vU(jM9"[d}nO.HsPB>QXQ=Bu]]#GsSNV6|nΰۛ| l{kC!GaEET/$1vcnʩZZJM9O4bΌe36Yr63#TgLф-r$* 9 ؗrj]Ҫ녌sR :VT5E,4vm|62p⠄ւ&Es(?yjD8qM [̛ƮQNsSloMo=c(0j9^@vN/$*ȗrK*Esr&,N4ؠ~hȫJ8B3R'{jEiK5ǃmW ,p<ӽ0{hlPz K%쭷z',|nvN`Dv͢h ,)vp;AӘ[ ozp #~ܜم>iSw8#RsǗݝ>OM9"[hbꟛ,a*ތEeiGaƍ}=XQCiH[Jr(sWUL[ hXӺ9Ke](}Ӗ,AZaEc}]S`IϱAɴOc>+i}}LN]2\0:cKɭ x’g#'yGlc|]iN;Me7gHfjEp<-j{,ijybQXQM)%6#KcEܔS/`_zoYf%D˼ 7PЮI9L‚49ȣ&A'o^m[KB-8un@kDA%Ra.Ga#Ǝ"JX+z5\NM>!V8ݳѹX-A}+N`E8\ l50)^buYP˯̆"]G+-5jM@sBJmu=ɒ9HU%hOOu]XRtbalPN|ԋ[Sq~2șO2u2hHMbEFNC[bdqnȥWSqh$~}Ò0&U+3k"c]~{7ys쭷kEwdy)5`zKGXR'6A'M9vN8rEK﫪"U"#.rKTy"Tґ7:e\,c` 86)|8)|VO^Vg`y ghO1=jEr6%VT փ+crKo[S5;5Lw7NդVr|‚j8FZ`grri4[oeQ\XztwTC谞*掬.G bEE_ࠠm*ƎV17 ؗ꾁\YrCqGE|3#r[eƧAaDbuؠcnɇb-rMoETW|E]QJa5C`TA(_G,~*ڐa+ ]Ϻ¹)^Mp56zj}pLVu"JWtQx~A3VJ`I] z 'wRNM}魿qW,}qgw?Z}޾)YN%{yW+U_Nzi;y*!^߂ ߅3Jy(CT A戰E{NiM9"[1UWfIS%O 3:JޅĊjav>aaJ9숚rKr!8cI6"fjz,6p K*x~hsTfܔS/bo FEx>VGDi7~ybIvS6Nucr%쭷cY'J\_4My¬$L*+BB&Š:Txħ RL*-9"[˖BHj 6ɕb` g8Oo¢^>  gvX1`0}FqbI]I~$6cNWm-9"^ЌI!lKǘEUl$y$Ԍ7 8(lCD6 ܒGTj}*@%8kAN{1vuN<Ղ#XQ%zЈijKO M OQESt3I{MEU;tݧ).`FDƮQCsKN}}PM땠Q"yY. ȎHA"vۈ3{+@@oCNM>V !SlwҞfgַE W=K=TM䌍SAigM3ԋؗ[OR׵zΕQpRTfND.QO.UFaܜ,c'{Ej"W+;/XGЌf(f=XG>Pza}c)^zVl r2" ܉lndSt? J>p"T;T\ψ-ȖdSpnʩWծ^cFs V7nNEZ.{k 2% Ke3K*')u8ca#^zoɞUkEX*8C;J+x}ŠfR a*5v&rKˌ /͚Qb/ XQ>6>MZkkQIGȥ/< &ř JmSTVBZ򌦘Ē:LsXc斜{g,s9^ў" .Q|dM2(/H}9&#^>WFWq~mX8byPT9 -"H0N!&+jG8[n/2SjM TPP>kqPKyQ;~ŵ<,ozן?~ٙ;}__^0~WW_b W^w9IJ)~ 9#@!'yF&9K>=&2 p7~~|?_?O_ϞM:'/;7ߕo7>xz- N+Xsh=7kW\ܪ %ۋe|XdmoLb#Wr|VrGE$/d3>K?'篻wח<{ٟ}leT_~H4xSmc'? nh? ~nR=sO*W_mzl"-dƇ#a%jTNρt?/}7,,5x O-%|ouûPb?}ýYgq3CfʆmG8Ts=`lh5>^y(l; V8cyM0x  #7n>[ b_%Yr`[_=FnY|p{gco8y2=mվ)鶽|a6?\v {Daa} ~+"SgƉH>KZο'o*y v>6n9&Ӻm =/(9}g*v36z1O<n/6~_L텿RnG<~/Ljnd' /:l@v9zEwm{ fbK~1oOͮ?àA7}>ϿG(߿3T|Bwo;2,BH熻v ~+B85j`]|?&T"ܾ +hߗ]13׷aa qzUQۢ餿/VK ÎYZM{Q w](7`[Ai׀S`r;[Ψ@7~ϡ"Hc~ ;G{Vx~v?*X/ݣe߸&[-o]|6+əz&=QK^x͇&omAy^gd358g$gH /4>c=C"{~ȈG{_>?ai.Z/vy[or%А/4;ξh߷?<4H(q>zB봂+JTm+'1O̮yk_U$W?Osw|L{>ARvZ=|TT_ L7,ܩjo_h<"jq-*?<0(mw\MnQF0>>Lqy8^<ϰo<\l8UO^ I0hgHP`z X_:*R>+c~cyȜh -ڐ{x~̾~N!ΫVZևTP)$k#EW1 M(9q~"͟7Vpaz㿟_7/,D#K4K:OhK~^(Yk/Ώl߯;{2:;~M+njv9Bu6;ospSVSQԟx>/ob>6ͳy|y7'˄.ky8 ާ>'ֻ%q?̲t(~^^UYiohy\j~;/G+Z=3:UXi;q^dہQ-^{LgjH}v_i#mD_ Wn80Y@;b 1=3dέj+MoT?}l$G/.{? d;GuNJ-K xi{-vٟ7Ğ4wi9O8d{4$cqL9G*È47{1z?g;1?*ƴF*q뤪?3:?~^SG3#A<*c|S1QײM6n^{֦?Un7Ss jn>P],JfmSȝxYl/1LQww=Wkhg'jFLs u>zv<{Ӊ_3]/5<&Gg]aub4b?ߤ>pγ$"N8_szs½z?Rh*|sO항~c nSU]tFVzS9(?̅{>'M R<teT%%% Z+ZџiIthá%%c晖|?ӒKӴ%hQВP3-A'#hI~!ӒFAKMKnAӒ7-iВդlUd5_|%_%Sϴؽ@[MKzz`Zr)\0-SF0Ӓ6-D%В]k6Ԅ}6--|_Ӓ4-CKNMK%N'¥%שثZeZb-)?%G%%$MKΡ%[=aZ4Z hI@KZ^oeZR%-Yƴr6mZҔM=2-Z2oAKi$cOMK.֫iii [В$!Вu,Ğ'V -)ZR ٧iIZ}7-g%WВ>U3-S?h Ꝡ%xƴĴZ;Ǵ$EKv%Z/%W9СL~AK\̓tO^AKϴʹxjxXAd} 7ӒZ$|ʴ-%MK*4ZAK. cZdZzϴd!=dWLK(g-M'Z=5hIB"ZPZ5-qp+,h oZy>AK4--IuSQBK{ʹZ|ВZ%q2_ВvUmB$Ze%%IKr6 ZY?%LKC%} ;%В1-Z20-W, dВzKṽdmס%ieGhzm_AKlԴ$Ӡ=Uc^Zɦ%H:";4-юBKAfђG%^ wRǔ-IBKv@ld;%.+hZ;-CdC7:@dZqiVBKL%3l[o ߴ$% ^OW3ywh 5Ӯ%%ikWS/%+В@K&iɢwTMK^t%׫_y-VEK Z 2ђ>/һcZ2_ޒ^K7?zK"xf6eE5:Z۴dJdۯ[Bz%ޒ%tδd:}X􊙖lhILK*d&9dSg7hi$'hh=@KƠwAK[^Gђm/OWע%85ϧxZb:kZ2ϴ$CKihI# nZr~ljXa%h4̀Tlon_M Вȗ%3UAM%r˽}*ߝޒO@KvZ}NyҒo zd<{KV<-z-9Z2.w%j=hCK"ڹ{V:;c(%hMKD -YDhɴ:Ǵi̲ߦ%ɽlShɶ7Qx-TBK %^_ђӻpzKʣ$?dՔ$h?ws<[2Q7 %hVɞ@K.-c'[Ldfh տ-q/hw)7DK܋jZ.d1zK'"woIh_t<;Kq{VC%=VJL-Y%{EK\D壷/Z2{YZ?ВnR- u!Z1ïCKMPĽZђВ>@K/AKAKvzMC+Z `v> -qoILKiɊݫ^i dDuxIKVxXބ+[p̴dt]%րDㄖd^leH`_b0-(ӒUH9Rq{K*;W3-֯*Z&ђx>d@M9{ԏhLQ3<~]Ylޒʜ.hIJݍ2лQdo'-YQ1Zr) KoIT{.G^+<7-YZx%lZrn%h!CEe8ADh |vӮ$~w?~^lGۿ[ZZM!q5p5Wӏ|]Stn}Uٕ=1nG&{v%u:~h>{Я#}5=W>^kX= sΡU.C~ϝ#^~ǿ9v",<.?k\[Xy|kz7??~~Ǐ?v9VA 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 3479 /Filter /FlateDecode >> stream xkF Ec{)m)d.Ş -W٢~p$KM&AQ4p(!9\<>Wߋ4HY(8;Q DlY"*{< k[YQ\hZV-prF+ò'"̏E^,or P^VeX&euOD+>bB д~Ue˵ž:$Rq(1yQS?.#ҷ]dM׎;-&lI3sZ5zmcGhj=DK|vNϼ<%h[ےMeQwcNhhLm]"_}/eylOmHH_]4@F`!NӇ8t lc[x =gL]O g]9HNӄ) "5͡X.Z(*f\6LFFGoF$뢶Cw?f"(.acvW-k[ةs:GbG6PY xΠ~ [P[BB+?EbN}\ΕΆp '?њ3apQ@luE[sECF_zC4qy"݂+W9K[ oiŀ5^ڧsa'+K.MȲX/ԢݭPq <?{ )(6|8w;cwvn=D8 A`8B6qGNaEPםM}cp>_ ~g{_ГTM;daSiD[0 ^L DOFAqdM;*~eb+6[mXm^uef !5ehAt(M NTS$g} 9E^7^d7c[1/^>*w}!q۹?18Sr.uj?p·߻p:_B{{D$p߼1lds{˥([Oh|yPata 'S?^.#|ow?[Zf\́\;49ڋ߆-ūIY[~2з(}VS?w拃|>'10⽻½{,^,^9~BRJ_E]EOMu׹o8 |x>~ >! {jrvz e ]d-Z2Y5&촩uѽ$PZ0ߖ<&VžzJd63F$*,&6؇?b(B!ol,Rrs"WZ ~)#d%K=dik KD &uH3\>N#JډTw\Lj&ܫ=I,d_6@d *x qrf3;,V@rAOk |hD=wLho`a;qSRpr&# c%}̛<+z%+‡i v4Pmԫr0T޴NA(6r%];$D CAj~43vj0}",5^gyϑ~; mT߆qBϗXaju歱OKB/Eu{TV^g|~}qXBU9rPʯfu[1V|mf&<_o=?>"(S ,Xz.וo2y|XuO^1º.M!58EbՔpQ'@¬xD|S6lJaPzF:-q^2lԜDŽ2#/2 g9W2N`oG"/{V ;yslL=]&6讑Ζ˞oqJDBVCl+5- crxpCg(}*须v>"Ff<[(mhWC4\9 u|58HИZ=еBmKTCMvo^`soyUs=bܽ 4\;ĵpu)\K7|VxnIeΜڝscV3beI;O+:M5~v->?^#8;xz|۸ǙȈ#4sޟ-j))aDZ:!U|Cb:]>p82QYo$DDoBּMXUJ7S|vz;?Ai-NlV` D,JU,1!xŃL6JKg\Ϗ~}m jm?HmH5@Ix:ӥ ,C{S8R3Kbӭw&5>'Ѐtl^v'vukbG2 `ؚ͘໮{ː= ~|B&"f"sۉ>tS$[aR>/H m'uͦCV;fw֍g˙&^J+^5 3˜`v >]/&`0xe^Bo;vV endstream endobj 290 0 obj << /Length 2246 /Filter /FlateDecode >> stream x]۶~'yf"" O`wƝ6qgx"$HwbAZ[} fD`\.Bo_.B|~yK=GK4#/fab]f[&o׳_uq/K4fs)bE?_DY"|CEZF٦!vktE_B&LmL: ^W4w V&) EV_BwM#(Cp4͇sjߞ&FD HS&ތ=976n8'M4~o.\ɾyGfI9uQCD' ' w>lKqwvfc6lM0=, }O -Ɏ(+,b1T|pdAdL=>jtK)<)7OimY|ͩY#5㩙'|c-hub5f5f9)5OyJ_>55唘?#1)1ĬxGY%fX¯;1&))OIyJSRe^Ys3O1I$U<͡3~v$NG0h)x6Ar7&/:ogdrQXgv/ B_9$t9iU: Yɇa_3Ƙ썳bvU&FcCf6h`H4eDDk٘v vdb1包8/uqYcCNWeNc/; Ly| Ѥwwb䡛o0  -VCP$o6'9\"n]c-ӍJs|t";V.t/c^4|RVDݕk1q6n 6;̣ĘuOޝ9dd[LJq d꾞vz+YuYeC5C.P19A/B(΋ˋJ endstream endobj 299 0 obj << /Length 1286 /Filter /FlateDecode >> stream xWo6v,Iua뺡Z#)KC0M-#8Y'8e1.d4$F~o3O澞'$@S*QLdQN, 0 d*M;Y=GOɭo&=18O^ Fk0]dJ4SDϗɇt_Rzy_X4a&)}0GD/vS,6Om̫H- Kc@B8Y2'Pj+2l_O$Ri1n_ x[ p]_ˬ;{68ܕ ɒ 4rP&\ eR$ZVvl X[uη޺EUۭ$NWuUD J>aHSn=k[tv SeʷfSY:HV~ QdE2)Hqf2i*Q +k3g|j5LPZ퐏gX*a {Uٹ4Ɔdz歷ҡ XAΈKLe"--D3 ,T.18 <HkG)P1?C Ž"H~8$1FbD1%G2Op_Q= \cID1SuD!}w&g} \@R &PfH,亐CA]EO{faoپ$8t%:H7#~޴X8ZmjԻh^wȚG"v +^DV #Bs"2@|#%!]u?rabG^ieV<-iQ^UۢPR1ǹpXZ'Ixv7\ qַ~6kU7-"(֠*hHCCGqi#e-cL}mm X: P΢/iw~C$(F<Ve"FEEo"b9\DSk.G"X0g6g~ endstream endobj 293 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rtmp2ACDCJ/Rbuild35f9162548cba/gmm/vignettes/figure/unnamed-chunk-26-1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 301 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 302 0 R/F3 303 0 R>> /ExtGState << >>/ColorSpace << /sRGB 304 0 R >>>> /Length 24043 /Filter /FlateDecode >> stream xɮm=r8 bO*,@<0<( :2ׯů r_X i7`b&Wo??RGk_-|2/_۟~/o+}o᷼?1Wn8?zcQKJ?V7kiq޿` (nR?a Ƕ\i~Gyi}~/ty Sy\XQOZG7)~cKn[?—'re\G[0z~<3;n|ڜc<nQԍC.KRvܹt)ej?4^)92cEA7?-?ҥ?%]voyK3 _WayvS/M^XQO9Mؖ.ao{yx3O^e* Å8w-tW16嶋/x߇~<8_?k(/~d ρ3Vu=/[Ǐrtnm,[Ko=o1gx>xiWR:}j ؔ.b?<6+́=sywxg|? +8'u?튱%]vo {99~<@ uE!~+ iq;_nR4Ƕ\v {ۭ6g췪F C׀G~ + NCg(t?c16嶋TXQOSA[r%mr5-^B~w&a޴L-\^Y"h,=cK.zẂ.Xc!嵹#`+ iq~Y?%]vkgd7gu? OD9X-=8c6 /Ɩ\v {ۭߥLqP_}?+;{l ]x-{ Y/8yԍ}צut9Kn-/m=9wi ")ykƜ}{.ؔ.b?3~biNg&H-sR)<ڽ׽H+iqZ>'&'r--%n-$2OkΕ6jǞxt.*hG3u=G7)~cKnK[3#&7oN#3Jp{)̎ .?ȅ49!3%ݤim92Ɇnz!z'&Osle>=6|7tJ1lS{оSJ 5n9ycEU肓6#|Okle~_N.^w1g^'w{L#O>ttȌm[7(μ[rEuq|W'iץu3IUt;VwPW=,-,)Y{cߝS9I`MNXos$J8vzWm{ީ=2C]+ g' I7)ؖRao'Cϻ"lƠgpfsTgq 92a;=CrK[/;}ޛ/8cX`e(7q* l&nP`le[Ԫ9p߷u5jޣn1h1Knc r59ܸjtWyS̄]V=AL&i[G.۷,i}¿oڮ}{}̳ڤxp| XQO?&Osle[*Ji7g8^/۸ɦ|$kԁ%b'ic֝b'-vkxҧGswrk{^ІwWc*2T9^6᥷3-"n/}ohST/,:ߞL UjUnOMlMA\Ƒ.ao}{"ϑ9N գ/Iqm{]XQ4q Kao-zO}ߜ]9Hw;Q:]%yZh7s[7M"n+3N@۩ s ~}O{iB,EwǞ+]9WbA[rٕ}/ݿGN7ncʤz5𥅼+#(Sg 3nR K}ݾeYXmw1s-mĞLᡘw2B/v+ +Uݓ-۬Ereݾa{"U9?a{hNtH0:o9ay^ؖ.b?ZKj9HoNwr%iܶkﳂo,0M7-"nył0l<2`V ?#+d?b^ gؒ.ao_xBU灋gʸ$S^7ƚn{VxMp-"n-C{H[y*{ݼY1{'JN``MNjjnRͱ-]v}y?rM}|_յM^;gܙE UvgTnRƶ\a#xъx γ;Rf?3߿A;)#o=֙3xGlťu9Kn-+s}Pg#b NG cK.-ba?͙8Wĵp!=egHD# NO`~\Bw3'n@YLxح`9Qa 3T07~&ShMGNZ[8wy\ߥӅj u,9Ɗg #u9Kncm/rS;mc?}O6Źw$!'2s-2rP4KnGiJym}=הW\Nxa%iq*8"0!te {W}1kL#AFFlA9:|8yWA[r%mcaYLa1|N 0o;OF?̓5?fNŽusg4~m@H~_1a(otdZ]'5 !QJ_s P lGu?c[N R5d*cg+B6>Vt|.]%]v,V~}xž.ƾKYUaEt-ǖ\v {WqwsFn?T7'^MLN_zbrA|G`ui#w;1䲋}ޯ<#}s ;'}S|fKW`E#1g0uOܨ[?C.>XY>Soxx. ~^ry+}\e?%]v{?iο%8(B)<u{|XQ"P.^YcleU@[D xǩjo$_8*+*"w7q܍%]v{?l8}sxp>ȨMy_.r,T'28lźA?%]~w0 m|?/5q-.n,))~gJ=rYJNPkI}͎qt9'Ly Nw<8Iw;1PrEݞ#>|ߜkw;;={;ERk8oZ1O;aȮiOԡ;cK.>Gl">5an~j5yN~+8 lMuyؔ.b?>(6GgOژZl$#XQͫ_ppؼ ٻ[r%m3&NGV9] ۟{S)c9GTS9x%ɽ8LinE6M#"T*8u/%-!rEݾ㛌>h{K}s:EpzGڪG^qBtFˈ0śZM"nu_1s͋(ϛ{wkbRD{3b3ݤim92>ZQ-ht§}$~jo'…N[4q#^V;7l^$]v\|=!QŽ8w <`5=Ʀ^N&嘎\va';vKGʑslr̮si,]cK.>d 7sp[)H|"=XS'͜Oaf'cK.w<מX<=N|e9%Ν9\2gѽ扚ؖRao}cVA^Yt&-C'3Ƌp;dd|gtNľk.&^0aEE]sv lŕu9n-,f1]ke,;#ƫZ^_ (A؏nRƖܖa]`B q/8 o>۳fXRnNR9TsyO|${oXiU#~?93ItǛ6Xoݤ|ґ.co;:3Ҝ VwF 8XS#v4z^}ǖ\vaޗpjW}sw}&&4cXQ.xo7)]~X;=28?no))|:P/cEe؂ɺK]remϕhO#RLq|sb(s$]×%/mTG<98n}B^U zxU7,^a5=Kn?cq3q0٦y1Sk*"NYHXā8)]~`ͩbayK5*K_~H رݖ3XQ7*a !a I7)~c[.R{J3N' ow0b%;EL`hg,8ɱ\[r%mɯ|zUcTpwI{&GrE3 >&oW:rY*mˉ7YR&;L-;bMyIJ3nQ}fı+8Q5SՕ?-ӑ ϥwI㹳0OMc;xs,çʚ:wd|>5=ΝƶGݎUlEp*yY{k};Mc=#v+xVI]}Uخ*)sDv 9QTX4|%{^ȫnɕ]|p99.c?vtw1!w̚l7xuH `x> T~[[7M"n*LwA\u6mCRkWҡăYXz֝bO%]v\|Nu܅9Qjgt|M9+ %t8!xle]rxu71gn^Oem{1^|8rXQ%E% [Ҏ\v {})Muq}Qv{ 3SZ2,ӷ(y\XS㬬0XFXwcSnM**8/rU_*-3&阫 f"KMؖ.aoB[%-v&Q5e}!o*>DwI H3%$Ʀva}x9%Q` '~zYXQ-nT)LF6Z(<ßoօvݞiUyIw=v]r:AD9؎v,}dy樮;.&Oslm vnZi ZT U>x=k ~q>瓢9< ;XIJIr%m&awmo:#_L Ņ5գ29__񬦨;jI۾q *,OS~ vɈSyk;bleg9q"ZT-3qˋrFd1AXB\OuQM"n¸7Ҩv鸦35Sp׶Ò)5o+V CZnR}Jmv;u#=Gg1sFP]kDM Q3z5Q"k&ݤimuڻOUVP*':LQ[oJMn.™]WAcSn>a,8wS=|j*9Dnzę̤{XW l-3$v:QՑTt%r#8&?]XRO?jk#@nRtseUvoo{w`BDΔI)9@+jF9#j(jNƶ\v {mz o+]-\ZиG.jq,NFaMVWivFt"NwKaD,HtM}55A5%63E1O`?>deOV}ܙi\ VXQ' yۚ\\v {ݥU;oSi0|3\+:nDZf`Y`ͺI9(]~}Qo} Ìŋτ:|2=]XSKpXC:3򩛔8r٥ݮ|9-J} ^ܦ>ze|4jܦec+уob\a^+kQ7u5Y6Eo7 ZXQ+*U7c ݤ.ao}s })e?Z<52ye ~LUMށǽ2> sQ<;IԱ/aƊG8ܖ[nؒ.aok--&V6Vm/u ~G(r+*NIlMB۾ F@gM,M k*N+مN2E߅.8:n;zV>x >wƊj7b.2%Bwԟ%]voi W{|x [BݾyЖi{'g] nR4Ƕ\ {JUQ#m) #fS\:1%\P9jD|{Emm927p,OktϨQmgCn{G=ɔUԾڱQj x}1;K'>W*2ɕ+Z|2]MصkG4ǖܖaJU,Q;:vSZ0+j>ɗycʩ)NbobíuTؒ.b?>{~ϔ05}}u+C6Mig# qI0ӇnQ4yvޏE ߅9Kسlc9cj yg aẺ`loºؖRao}'?UN;5^{W7fp ۜZ6+pf5cSn[Kf;wyy;١BXSq" #m6!-1-[zKm0m/etK9gVG3WN>>Kz԰ .sኃ氹x60.ҒӖINQ#b & ۳WqlW:]^Qa sF3f# +jF!sfNwtlG{Ue2Kr/^ȋ}jGO%snlAu]<}ČQT3S4 ;};Y*~}ߴI}uaow_.!͜^CixvaEfRvE-f[˛Sn 1Xa95`S-2cUE#Gp:󊅭lz[r%mx[CGns"|}'ԖsmC#U$od*C8&w@tjlev&<3 lcݻAv̼Yߗ^[)ϼvxNGxZ`"g;EdǶ<~Q@w1gb]mQUvEĩ 3y JGߖXS#h;vV_~ilmv{N5֞͜Y+yGQ7k;rt >s MʷSuvKn_hOQA͜QYy")~ 9oNIMV5ѣ?ͱ-]vQp<+nSр(cs =? +;uf8^;GGm92ˆԨ.@fF9.iAbUyFXQ'ǜK]Nƶ\v {r2uoNe [aIT:?<gz?I؝nut:\O?8k'eourΪyg2aEegUS!,nl?ͱ%]~}jVkp/v}rg$UDZ W&ߓ̜f#aUyĚ!+o8 lf|ti%]~ح%OQS;iL08w~H5,g$sYITjND)]~ml(,+~P}&FXQ_d@Mؖ.coSbS\iNfN.˝&rK5\)Ngtx=KR5TI%8JY7BZٜv&I7)~cKnKۿ Šw1qHY |Lv#gjx'm|Lrem9v"k*;~1?鞏w[P)")a$u.co ~sXj*chU|2>~r 1T?UaQ%LS=≞ǮOnWP3fwҍj3U1߉XS91qov*/1-n-սgŻz ^w}w=8+Co93TnR?o䲋OQ݁Sm7*(Up=(9-%EݾQ)[`UOyrY*m3Sc4(=oM/VN#$^Ճ5Uc4Guu%]v{䁄X7@̞1=]ٵ{?G\XQ'ǐXOr%m2.U؞aUein|~FXQ.1߻u]}scP|b]47@Ġ|ҩ]GaM;myw~[{0|@wybQ xֻ)1P)6/UrM ؒ.b?ߢ'͕!3XlΓ{ T0+9(8Ty)ٕ!ble^3,?S@)h\|3TXQ3-T.b??~8~L׃ qZU)أϋ*a/rDDy|'.ݤvv+?.ݿi9N>V(L:H 7 h!g cE%Ԛˈu9ۣV1hTt8!xle[`Nd-aʻގ: g"𧣛+˰嶔gfd|3:;s>3P2zH^XSZ6o{Bw_cK.߲q=}sp4Vx=&eJTaEiNa8ևu#=6嶋YꅎJ?Lppj aOZaSR?i$ۄ\NV:R"]*q-]v{o)ٜ "$)eyno7>]oD/[?vaʁs?&#)⩖u1w۸bʾ֪n&)j8vtz1ŵc[.t~}rys?Z3Ɍ4yg)brP!6`: lat't`GUHd_.m7[RVW>4|;7Dπ}y'/~gsEßM̱ͨ$ \y55꥘úMQSRGѳ+6dN}} ylev\c]9+olE3ϩ؁Ur+jF=.s:sc[ؔ.b?vV6{l kg^9F1=ݤim+beɊ9#4%wO "aEٛC2 ݢ“3\v {h$f# RLv D{}?Ǻ?|2GXS.C"|-R{ng0S>n5 T4vߙ;ZT lƒQ-,8`l"ݤi--@onz{=;)90p5X:tw < ;ݣIs&3clUc]X*mp9Tɪ]LS\oJ$ +5NrS=;.)"w=vr]~ao%+|*ͩ S&s5̬ j9š:Q氶QҝNTƖv.mN);! gSw3lnušppD랱ؖ.aoF;jY7{s,qO~*r$υur͉!1rr5KnعXVgM?(߳6f4籛 v {mEaSJp3q)"|a/nsP%x>Cw<1KTffPp˾cOwwOwV0o)]ble'zϵ\q&ua]r,S|joUbdAb+MVpm`?v;W^W8wZws k.;8 ,CwvO[rE^_!A+ݩG;6zK#X`EE +9ؖrEݞ; *+,8kRO0;f]u{{ o8(c .ylevy9k3e$q͜Lw~1z-`,]oؔ.b?-3b"zic'S>cC&14[#klmvnm B&m|kpEossSYXQOЈpؒ.ao}>Ev+e\;YhZPKJ&"ϕqs/ufG>|L` *Ҙ 3MQn Y-obM(VXβ 1䲋O¨2~qpkd\`{X#gcEn,.B_^éZ9> p펬 ૈĥ0wS8>H 9+GsX.!Kln-q3w#&mm +ˬ4=kE?zs'ӥD6MRnG2B{v8>3&Sx9Sc^RteJQ&Erš {hӗ'{<=ib9qAA"Z=tG\|-{> aM;[1e쓏|${&NߗEKݢVǖ\v {k9 9y¾0aL\5=CE80vnR?3,e)v{_pdbFoE9䍍5u SQ؊F ]OA-SK~KSʹI 9|5uj-[b.5QGݮ59?;zl7zvk㼴+yug{WgpMNX:q}+kW10Ƥ"ʊgOkT1G9m.I:F4Kn^+s7ep 1 YD7ept(l}l|Lr%mߗҞ<4u&kFǔ:|0Rᒤoc:Kұ~:ʷɗngPgHA pfڇUEʧ+쀜܌5{g|NpCXwX - =kVSms[^v 7b2{W*5[Zccvӱq[ ;MGY=n`i jb?-cl%nayaZX7)-q"ns̎ NA-u:/LRM3 .h49I_;pڱremS( q:F{\ɹYڦ.ZaݰN=#\Q V݌_QsP;Ԍգ9-cܺKX%D^nWMJ1k|J\nn52ƊaqMʞ<q6w&6LF-u*ܾxM*}|ϧWV8`usle>LE&G'IT "~RQޗuTr88tcq ݢx~Vry]s2o; {.,[)ΛadgaE[a3x)i-yq5~q}rqI;ޅjFs?Oj kj8,8$adϺSbleWs;q?Y97efMVgBg~Nt@7r˾h`}޿ *{leݚhet eoTa"PTڽjyc6aEEe ؎/Qcvi9w>98lt Ur92GYsLXQONbG=vIW#]v;ʹ5GSq`\i<|^AJĎXgKW&Oklevwq6!氧F7je.Q#v,w%;zf=LD^"u"̆v,׊ɔ߹92Kd9Ra[M׳}#ߜ4Ƣvξy%]vjVrjV7]_8q(=ei 1LImm92gd^w?8t(*ǑvL2VTNvD#G-TKDaƃk7zJ[a:P;G!-y4TFSբpKZT(O~9q)ԡsmƅ5c"M܆J5.|ؔ.b?>.tFP(ߝ$*SPX~}~-JPs{tWz6Ԩ'z<+Ԩ1S+{:r%m(S9(dj^P3XQ+:򚃴tcnR.ao}FG`KQ*LG˩ҴϪ+KlPE m[r%m!.=K9HFo켍sR)șn]9 ucwXwrem9irw9=Q9ZX"Ϣ<^J*}`Mȳ0'G,X7) ~Kn_es%Nsɞ|ĭ~C]7a7VU$2fn=Q68EMY<*n/0JrI2?IlDlE>uؖ.aoO/]9C3&&בwB{0>Bk18{ut9Kso왖[oXk|ˍjɧ{z|3mnrtxv{e2)ŹҜG(9Jfgʫk*ŹROc=ݤpliv{jr}}sX!.f>LS!|5\$8*!Iݤ|#]vxc uWK4#]K+WS?uU]@XQdzb,];.Q^l`oOR WO(V$dtռZ<(s:{^s<[rI͵1$ffā(߉~ך’n~alF &we'/ LWg2~sg)3 H.OAuB}jl.v;$sjQƜr6řISnURl6c3Sͥ;~[r%mbu8z13ERkY[TNד^u[r%m؜ 0ʱ5VHb T/ߖ O)3auuGvKn -goNٛ 0b/ʱOr$0Qw=tؖ.co8(uWIl ѯwGǔ/k<<VTqx1&JGNv[!ͼ89 ԽfO#=\Cm:qz ,s;ɠQb9ݤi--%n-Mrz`NF&v>".Jʝ-)WY%rV1u,MؖRao]6@|l0yiI(떳N]UsI!lqTw_U]-䶋W+9U5k1{W5LvfŠ<E^C莼r\3_])L]dib\~j'*֩h+ݤ嶔O]8"f4bXD~꥙ ~#/V&Tso?KwM*/ݼK^1'3]}W4B9#;rQ"gD}nR4Ƕv{ *ÒޝwGMP>Bš,s2ө͓2uؖ.coO}s&k &ud<o*9VTO9(ڧ]“%]v^ھ7H*Ƚwl/ sl0%W{aEjlɺIremcPra%-obMyWUTԢN>D}ut<8`u8ƜžW7*{>qswj(Šn߿$޸'!V9ۚTo W*;ݷBRyZہ0{b9Ɗ l,Ublɋ3KOnBFt{^2E", ,)YJ,%nQ܏aRb?>uGU='4&ʨ+o`9rY kjd3Mm)x{lmv{g C/ctvF5#?$oyĚ^,G^?؆{/nq/%]~}#zvO^XăoTES a\.]XݔcJ=r`6v1qo{yLc[NGNt8pe:#Xz=6c kQ+ou]cSnؠnD9ҙ#C]YS,1,*z#¥σUYX鮑c%]-/[2iȯ49acX^eS~t+ l쉴wcK.2g9~JкW 0+šBpŗ8!ؔ.b?Z$sCft+G⾼9 'VTxmSqdlat&Ɩ\v {}>Xg4:W燪l8xVB^y!T'R;źIWؒ[F'>9q393x~8?Nʱe[`Uxm MDzle^7%9K+":SmUT VbWe-"nQDk-*HꆙUwJgQ1+U ,Gk$cMEλ9[c 2]"cK.keƜήQC0[:%SČ|bMØa&ҝNE<-*dnWvfL }kz㞨=8-5576ӽԻu\v {}r'#X?ܘ+?Ք-Z4w'W#(>w<1KnWV8"挽tg&Gl:Y򇍟"fܠ[we-k%wHnf]+7.Dq=cı5~T^ []|cK]sXZj-VTR 51J*5kvWra/l[4gk=`?]}ͪuao]15zU%Lef(zAi9K+t0V"l,GXQa\ٵ%]v;$GrdT z:L9c,6+*ٮN<ڇ)~c[N{}]9W )Bɬؗo#g(#7]L7M*vRaol]ݫ8͕ nu0<5;aEƜSaVUc'ͦ {}jBf!jYق헚 9۰k )뚏U!'uU 0$ŸlEn9Q(I_ŸȑXQt!g[L\LremݝGrEaʿ 2dHK 73lXS=?ͩ,z1䲋yF998cˇ}ߨ^8#b 3XS, BwD6ؒ.b?>3aL0SGz3}"yΜ5Odr Xj_Iqؖ.a?vxe$ s0#qh1"y1r; q4OVN]#cK.RX&0-a^uwV2 CZNcSg`=u9Knw%a0d^vnb#FT š*o)EEN{le[V׷ *GUqS`UƚYל(f)=65J{V|~1p=\kN:|XXQQQ,8p}CwI)]e֥wZ t UsdnR3k^5S3xG>vW})5+,m5T=Knґ\78h|qnUT媪_JkN_, \5ݤn_na N%/. ոU*2O\K̪*-{MvSȺ\F|oϿo5KPW_oەXd_ĤnϷv #.u"/@> 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/Rtmp2ACDCJ/Rbuild35f9162548cba/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 25604 /Filter /FlateDecode >> stream xMn;n8b]sIkj;O8 ûJ:ja">%QE֯_O?}G_kc֏پ_?_(|~*_~?R_闯UUqØh_Cף1{tGbc7-K%NIqo]cX5moDTTGz\*TuR*m{*k~իE~Gm5{=Sjӄt>DCQi3,~:%6ĽuտEŨ??ۏMKw3c?%$JyT3FRW=./Q/^~jՄtf$JbN\qRAxHJ޺J+Q_ CPGMKnQN`@ 㨠J=NJ *Wuꋱzf퇸˄tz5K #q&P*~*ƈܸ_K!:6}*Q53_ [7*ZZ0!bǧ& K!9Ͱ6}*|w|@gO{k|,Oτ%B:= Dlf\1 7fX>tϏ3z/oF5ZmB:=8(?%mOܳ^Y* ɚRj#[W_|H}1omF\7)}NO ^1]'dߣpYTQFRYkk5OE1^-jӄt<隸[ W׍{kY* ɨSRiC[WCPiЀ~8MHgQ;K%!9R*m{*i1ݰ _ Nq3:O#j tzaKRS18+aȸT-҆Rӳ?|=/V4MtQ]L%]83JBC2TU_HRwt\X˄tyVDTTpٲTsTԇ-3g~~7s!ba&DeF%ָ K^\']>-vDz}gfZ"!fIivO揱&\U* nCWOǟ\14HH'LʔNĉpKcKUj:-qRSм){<rw!bkq"P*~*'ܳ)Y* ɨSRiC[W)f73=.l.t=LH%0] '8.8SJ޺J}XLݾ;cB1.B:aNt-Q7n|,dO)ګԟq+Y~cF#Lk.N{;OH j7WtJ%!YS*{*a1վcGO=v%7.ҩ_)c0NJOŘquTQ҆R3]d}M*n?re[ӖBjV9۔cEUrTe[\z mi1AGk9O @=5Gr$ٜ}z&u[.M}{vvR[ĹnyA|sЮ#f飦`ƖӦ[r%[ok%o?k s)kL1s$9H,9ɺ%^¾v[`E-Tg奠'+O{xcW}P6-ΌPN٤r#^~29'38Xs`Q?Ŵ5)olᜫ˙Uҋm޾2հfz'=|{Ɗb8W٤<~nɭ)z-0pZ궈ÍL-qV(kGLUS;sppjr;e;Rnm1'ɡ h2<= )%y'VcE]933`mCW}uSn[m4*əcĺ0WX$'(_9S dU6ȥos#:͙货UthelFOVcECpc+g:mnɥoZts͡`bە!)4!$߱"$Var:6.br˲nɥoݖ3x쩶93 J>)]f(_3a;8lP9~K/az-­oߜnqPIz}l(5kq>6W#M*o=re[oEf~97Iuï$jN!%[ aM-$,L3SS6)߽\z mEV/҉<NJq(t7\k e`Ll%^~Т{:߅}kBXYW7$㷥z.i?%[Q߳~DA#)|pEV-Tr:v6B]vETM"Cop~9[kaJڭq\Ur*γ,;5r&֑S/cz-<3&U1EbmHڅoWkq6"bz+YȥoXto<:uXlCQOl+jomlr=}-},[69c1 6eu!ƊB8[9[r%[o]t}COoC (k7VcE5_"&\>:e-^¾v[`mJs:׻ *}p-m(]=`ET͵Ҝµ)TȥoXtVqN?bt8aEm(hy(k?qTmPs0;'6*o-"Cog#g^W1Ouچ]F0X6-΂{Gz.{Sܚ1cv̩13^)kl+ eT[鏥IGN}Zb~sTZ.y/Ɗ|٘I K *o;<Wz-nl\wn!)kK+ ep52ұ͹x1:Po7>vqy>|7V)yq|K_enɥoݖ^^đ o /U;mu.];R/nZug%^¾v[xv 7Ɵ_x'cE|UԶQrg bS6ȥ,^e+;E9=: v.؎*o-5%Co'193/Tأj8-v>;+M8\ #M*o;re[Ӗ{c0Z= vs&NHYx"y,3kʞ6gVX]잶\z mEgu֤8}a;NX2cv9>e-^~BiʄmHa+JD|Jb1)Tߞr%n -gN:3g * ؓ6e>r&+ e yv8/вnʭ*ھ9^_iOf.S+냭Eq9HM(^~譶vCes.-^¾v[dsa|43is#$V19^QQݖK/az-9Zi7';W')/Z'?=ۑOz +'}a첏zrqS$es]G̖]R]^Er6oЅݼAWWdݖS/cz-qg~s&IؓckL~aErqMvWc#^¾v[hѵ69QM#|Npa=y9k2еEe]Kطn 'q޿8m8xڏ\[,w_o;,HSv?_Tطn -$0g{SEې[o?hz2bz8r%[o(~sx㠱'jې?}Û=۹sS٤r#Wz-Yh47p qmhĆmH|lkjg䱲.{ -"CoeTg/4> Y<!eq Wš*bn>\#gIy^+KݖS~9tBq~ݔڑwɁ9h4oZ3֋Xt8蕝l UļbVSnG>"+j94T6-kxSnE7A-]mQzaE3X_=UX궜zmvKټExPQuza/;nJlJes-^¾v[xH7/'bpҕnt?)k7WXu<͓yrCuK.}ТC$a08ࢋچ,G"+0r[bcCy&92{w?Ne"LNjI]S.y˹+`/]]vM+uK>|3 [oEgW'1|q.P5˔y^]"kX IbafǪvݒOЕWz-:ilgKts0/چ]|(on\5u^S0 yy-^~,\1g q0ЅA0Aݧ+߂SyY!+{Ƃ2!6\|nsXyX9y~S֮G΋ʕW_!2M}w[rkJn -l`v0NHY8|`E0Y!7)TߒrkJjˆ7aR#W2e8 IcE]j;2{#nɥoݖƒ>0KHAY|L XQ%}ir"a]\6ȫ}*~_yV>eۏzmE1;ō5 <^)k֑oVTƚ2'=)kߒ :*/) "lQ`?M7궜zm"wͩrq.>Qv)f38{lR\vT*~_}9l݋hhoY;ϔb)+WbM]unJԕ=mΰ nѮW=u]ҋO[n9k х2eu+JZYo쨉 o;[k~SmZm9y>ebn1USOBGJa ]'U6)ߺR.mEgE`/F\*G^H^G>b@XQWzRXW7wz |GwIpwu,:,v%}C+v2roݖwSߋ9rq@pnS^| ^e7,Fv1:&92“ĵϜ͓mEO̫LJXR,1Ut M7\.*ھiݫ9bLn% ÔyrH{'L*{\zMW?Ng0-Ɓ,G5YD0bNL-Xv:9hu9KM*o?k~“Dx~sOėΗTFHN8pS'. m|]ܜ/[/]7?s59'v[tu3C4 r5VT'p.s 7z-0臥QBFpj8FR~qEVTFD;rWFre[oE.gbp 4ȵ KelRrTطn Oj8׾Q{ӻ9?2cEUGaHNvNtp٤r#^¾v[`/JU[ĩ~y Z(f'兽>G;qzImGN} 'npKi dnS鵎1/m|Hq&4“V<%Qފ$7 lCQn͔W,ƚ9T2n&u[N}l3.+ 'ڭr3Tk`M,Yv>/L'V!UvK-“Ć#ɓOŽg.Cʛ2kF~֛{Yv}FrEnbs,zo&2{-ysƈ~=oEYF9b7b㘬5gb4ηY~v[Ne]sŃ/9:o< ;Cڕ+Nš})9nv*^uK.}LgV'6Ǵ7dNBB>c}I`aytGWnɥz-a҂5 o2'e'ԔBĚןə@N٤r#^~,wQh$wĚ*uwbM*oKCoEC)v37B+5m=}#',ٻCGؾfeL%z-zs*p`Ñ>yL)\ 0m\1T6))^~譶 Zt5%p34mÚǰnGάsƊc5 .u[N}TTg<04x>9jge31C4_q9.] +}-_AG/az- P.rV81WHK"KeNO'+ȥoZt9Åk+=Y+*'?E,;gݒK/az-RU9!'߭ߜN|dnO,3ƚZyfTyBy溇Ba_A1YGn~=k' +ir\HXTW==M]Tطn -;Prc(cErO;3Y5Xe8qݒ_Οv[hхǘ8 .CmrONQXS3w;t&1\Y7֋Ѽz|j+Q2+]hƑsTfKUbco8lQkziN~Т+3pj֤mX=63wm;fˇX8g٢rΔS/c?V[f[<Ԛ`USY5'9<7V"*;c4fݒK/az- 38Sm]q(XQ5OUyV>lR9~ˑS/cz-:I,y/f0N§s+2AYj=T9ځEXTg٢<~}ͯ}Zl~sW 4{SGsŠjO ~lR9~#^¾v[`ɻ͹9j&o͔ʑ3㝱Vs0Xp^:eۏ\z mIb$(j8nBқn_oW5ks]6ȥoݖBNaKşt*cq}k/HʯJW<^Y6-퐰}&+_2~,:!LNŹoc3# Rn#g;aM<%26,Q.孀z۲D9oh{s,GֹĊ:{1sl,Z.\KطnKuOw@Wc>wo&/rF![< Sbex\Kطn -r/f1xEېiX+xgÇ2^;Su[.}t?S\cK4\(GƊ4m,oB>\z mCnz\ IY`E9Nmݓd\z mxY%%2n6^'Lju(LGZpQ٤<~re[ovLV'ZݘVf=/T4g񁅰ks>~o;בS/a?v[xx|d΀ym><{ԥ3nUe|5ljsSktݸ?uԪn˥z-/ȭ A_c\,nKfr >NbMe&0R:DGS٢r֔[/b?v[xcA'v;pZ*ߣZUsԌ]mV>nɥʿbyS/aʿ̊_q1 )kƑO]VԕLz}\Ƚ\z mHk9}b Ƒ,MYVrO`L__cs-&nɫSDmaS&0~q /G Ք/Faa eێ\ i>Aaꆞ ېSf9ȕuNXQ=oahqcenɥoZt#c'>͋k@l2e8r<1VTNO'Tv?%^¾v[JIf 87v'a-xw F<3ce[~:Wz-^gz;,ǣâmxv|+2Hr@JXq'ψ\zۢČ9\aTF(IͿ;Gr^k*c'wdά%^~ZđpXBO*n7sYάsš*g⑋Ǜ*o)^~l,/{|ˉn(ؔBxjGe-Wʭ9rob~8`H8;ܴ IYR[~>64V_OsKn}!ҋ^GkCbp]fbRn˽Y+(s๞X,#Y(-R=29 3!xnئu $lʯkep};7= j?o`z-fŷz-{$ns]u"^Q;{Uv9tc!t\t3]Tطn ->Ɂqqjn#W9aEprXfӛuK.}4X#Fw^5Cm<$5Z:9sxeWdݒK/az-ݹz~?9VTK\;8]>%);\z m|]c~sZ zrSN^BސuXSՙniwqrN٤r#^ƾ>mQp^-tw\b($̾kš`BXS-sbn~],JXjmEg1G a bqP(oxGlwݿwE,;fݒK/b?v[hExa h̛zxG;jq:`8llR9~Gʥz-Z%987v5UMYr3haE8 ;|cqeK]=S“ĈCE\Jad4v1T˝_Sg؇r3ϲ{zrEjKI(IkD EA9 zr^]GsU|bre-ȩoݖ)^Gg =9)kX!3fZظ$c{\KطnNǐ2R8`iwLهg9ȦIG.}ТkA:녞)GΌw^t6$w٤r#¾v[hѕK|^GXzsĚJ1qSer[}ïndW/N-UQwOyLN(Ͷx~×S6)o$4“1=988P4{:%:g|%}nɥz-橡Wc,[tbEi\vyuSn[mdk?Fo:{-ݼY+bEfٯ\z mEwݎl*_ h $iPVcɑu.X6-Guqc٤<~}TطnK󳧑urnF2e4C!im_p+3S6)ߨr%[o-Hs.x8.we f;MORaE1cGblʼnˮ%~]_v[hѵk97./Kې wD˙uXQ\ /S6ȥoZtX|9W &šݷ)kp!:G`$,9Bq-BḱGC0xs2e䓏54&1KiuK~9wf`?v[&s 'gL'{v|*2pr*nZ *;s gݒK/b?v[ޮ=ݸ.?'9v邜Y5u93(?Y7֋ݖ#^L'9{%g2rxgn,.˲uSn[m麶}s*jIBE%׀\r+뜰VZ< \6)_Eu%[o%-:c ITچhǑ_\6Du¾v[hэANwEY")W;aEW z-^}^nɥoZt~s 8`L Gp,g9cENtM*o?r%[ou;'9>tHG6e>rf3š#r&4Bn!;h[ Mpen^GάsƊL;Av\vI?n-ےm~sp5щ'E[(uXS-m~sXdp][r%[o[A?ftDe<72 k q <y\6ȩz-7 yiiv$9C kjڜmlR9~[ʭ>Mouyxi־ivx#2{g;3Kb~->/\7֋ݖ=߼.82etwþ~n ,OzrӢ+5}H+û2z`} ˉs31Su"*U$\-*t{D;~7sXsuHPY8\z myM&NmyC^]ÃM*#{&1}><-yڵv[.dnts6c0,{3zv,pFɬse%27zr؅.{entm4SoE'87G _{w2;Ю]Ҽ"w|Yqf;=;>m4Soo2 E gFOiڵqxlR%89p0vJeUƈ>zU]oXt1.1_`0nFO4)k.əuXQ3ErpjclO٤rsR/|Ͷpn+s _@뚲R;+j{_$ 1i]6ȥoO[.ԧ!fݨ2αYUEE},{_-9$Ԗ}Tz8Ӗjg5 ~ =)r=I]+ͶS7QE]yt^+2 7gi= _VhWۑo+jJ9uKnmEocd.,ܖ{9+*##&#,ӝlR9~kʭz-7_֍3ę14)4bH>bqƘ8TX\og5ǘ`?V[*->ɹ`HRQS=}#όwzt5]?f{"kKrVa0=Q{؆ȝ# +Krp3Xβ_nɥoZtvzsp0GDGrO4rf3A 4c7BlR9~ۑKSaz-c%g$q@ovM:rf3V qr.a.rvݒK/az-Krp%OQ{LLy+%Tz'1Ebkf/YKطn[lآoSP{ȘLyS9bMjf˻O٤r#~[o;o_JaZvetEOuo$TFH%iϲ[Yҋ46''>q98jp1}=X!k<990&Kb]|)y&Ztؖ>cEe6 gbv3.GvݒK/az-L<ͩp>}͞'bHάsƊ*2!Ğ@8?eێzmIkQ:m' _gk+$9V5XxYKطn -:|98zr_]):'L,]9wwݒK/b?v[Jv]Ĺpz׷_"Ô-`M+,_uK.m|w^r7r鱉#4L%~1XS%}r%6YlQ9~{ʻDmabxǤ9פxГ6eb)lU V@VRu٤rK/a?V[p=Js9 5f)hʻiևQ/K,0˲|YuK.}ȢONF qo5LY;')#,9lXLYvg-“g_8q&=^IE֭GVY5f؜GcuwYKطnKg1̹㠢kcv邜YU;okA7ce[\ ί#BɗH7Vqҝ{\rs3Vԕ{dsX,+=r%^¾v[s8T%_ѓavu|"뜱zHc AeOsH@.}ТkwGxy~$zaF jMd9aE*Aaře;\r1Wp=ACd@NC õ`MSNs:v;1>[Y.ڞ8j?EcXLڕu=Wy+1sx:`,O\v?z۲gcfu8c IY2|TXQ陝 n~],{gzB` ѓj*XQ=wW4؇Loknʭz-_ b!aHš=sX#q6[xpRϽꔔÈ'@ ׺s-H?R7ĕ38öQ=))Շ+cʼnLT.w_lq"q$ 1Rv{tR^Z}^86HE8rHS6)duKطnL5~q/bt0R7h>k/3Vԕ!^t`PqpPݖKSaz-<",=ɿ@|qK뗿ۯ__>//ͣ*WbR2DijO#WEwY.?I˟ϟ"AH/W!o[CcQbkw7߃FB|AOxXn\~ og,H)_)xrG,nګ=jq<_vGc aߏD?_ƂA/d O'ǿ"cNk_u*o晝3?R~/ #* 5?y'XH5?w5_ k3?̪ϦſƓ3Tшy՟mC..>> CNipr1X 1j_lu;vWfyq=y:5uy(蛱Y7fXٻվ<5V^c߸AzE}_HEO4X1HDأ"xX/}d6 zgOq5,̵?Le9 )7僾tJzkv|~@bFեS{$]??ۙh_#dɅ]11/űv5H41пFm|r!=A=崙A{h`,( w'Yȱh {~m~s8P} }ĄE}OWɕ~A:{m]nS|BJ6I ~1o'{#YBp4d9Â^{k|?CF6hr2okUގc+i$5I!f~!^9=)_cb}e=u,'&[9G1T^f8 A Kb1IƁ0P0OpHiaieK̟7$7,n d023Ae B7P|1&;p@F,[A3!\O`/ikoٕri`#Tߪ,Y\_pw@ߡ/SH`/ua Si q,[?ē=ϡs> ˿xQn8~'[9d4Wƿgy|o\y歶֣6oG&h"hnXڭj\A-xwN[]2=|L%F{߉[1M9'+쟶:#tڇmo~V5ӏۢ5og|苻/Χmӟu{od=7]mc`B{h`E}~fE{WZ#~s!wC2דm_ݙepk7[CqO< tySϤP{Fgi3`V2 ^xV /=Rx0/a0{}==ъ7x#Z?G=z<4= ;>AZARA:%90+w()1^{$>F<&bӿ*y8sޘ;u׽1to{4kȃl*7پk"ϣQʷWEet Qۑ]"׭}GGu+@Fj\_I})'Ղ޾[|8{hGG3aS9Rӎ/Qah<4 w|\da}Ȫ:ߵWSOo7z 8#E_D;s> stream xZ[o8~!/E1@lmݢ$q%~#˵Tlj`H,ȏP:PB'3za5".E?Պ#ʓ˃Hw#W:m?0\֠6{n1y0n&Fq;oE<8510N[haǏBQP(~:aAZ>TRDZXo!(x& ERUhC*p 2p񴌱 D·Jؠ/ 'EX#\b<-tx 艇@ mpΘ!!A"dj0i"uZx pCc{˳q$ %}v\qh>1tjM1/5l0E@I 㭈ܽ$ZDt:љAȋ M$XAd!5Ya@SeyAXPy~= MF(R[mՋQYʬE6l}|ךk#&jRkzӸ2;`tZ s-S<~<|PIYV${zߴOrV,*ةz~ΞAa*xk]<+(0o KIEvO"{-7NySȋțbjDJnYKC"zAf~ Z'3@[_H6&ȦrlQ^̈VF(h dFP%{ ěG&VBW-R1ɨ h(Ckim YHD"(D Zo?+ۏn ĉ #-Ķs,Df!-a5HtP~HAH0!)dž[۫88d"fӭBOFݖ#}ٷIF_GKHأ%EwbM GO4~^g"˱aGɡ9r_qdqdKrz<gO;2L 0!@TTxaU4RpPҷwSTm]#ˏMY-/@` > ۙA. [0tm1~?߳c-쎅>m逾< tmGK*Jq/g"oUy7/FY/G讚{3oy%~Z.Zj>GfiZl;$=ƪpv=B=~/h){Q,>|Oj6/ãތ^j1߷Ϟ+3r~kƺׯgOz>a^zyE)Y *ȵ2Xdtt.笙/fEvOU_hW v/ͬ8˖;B+kŪ<ϗEj*߳)d|Z `]4m ~s}lNڹ/9djao{+S(]]w;ђ=w4w<ߥ|]w5j?)cnkrl# HHX#,5E15Ofk$|XdӃ !CQrÑxH.rnVdL(/ eL:';)t'-g82NYc;ל-Ou#bI]N Ή=s[>3##D>Hp/e?]7y h68MG<;kIfo>uC>k^٢$!hZor#1Agj$Ժ1`ym*Xk xzQHNۏRg<5}1gg&,x,;ˌˌ>0cqcK/Lh Czې&d ' ܽ7P6D,ln$]oF@by46YiA$ \eѓqN.24ٯm90*On9˞[<)yzSצ5)IOY}S~{)S Ƕ{FQ 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 3094 /Filter /FlateDecode >> stream x]s6=>`܌6_tth8E)R]۩4nΓX,Ɗ;gw^> 9|;'S';L98?fI 9yB 2XC8>/Di_9#T"Μ>Ӂ紐r8x=QϜ˞)#qPn2IAÑp'-jU,,%"Tp$w<˽>;4'<+Qݔ8fIM:we,r NkU 5,,.΍z* jӼOAȤI=22>tU`eZfl܌ό.hEf)IŤIbRa,oC ҆{ z/7VFJZjF]n\b<"Z~4ƒeQ1̓i~ -jN^8'Wk{H$>e/j$x>7T؃ӿ53Pm7Q&?5',V1cD _PoE2G6ݷ K4͖tW):Ґ:IԷi޻j&&Z}cBFm_;}q_wӂK_a7Ehv-1-UQzֺGA*R94褫z3ow )>'Z1WVR8fU{c z& Ybl}.`c@堠pN~N*/|1(b<_Mbs"vnYbTR\} {ƍNiC6|梬Sh^KfZY`YTW7 D(sb#90Cbiy>IB(t":Cof!լAJB@ ,oE0PȽagJHxvC_}Dm E1Z[7`43uWup[뗦g6Kx$hت/amkc4vuua"ŰX'.KKD:yZ2v-E;`L;NQ9}cȚ\`_ۓ'`PpB#eqJs8X:/ 8'3WwxNb ɼ'MRSSRaj!({-*67v8"]ylv[w}l+*ހFZj-+b }r"7XZ8nmsĺYޣmo[׿6.d1080'pfDE6¼mmPmyu.vd2m!Klx=}l*{4NIXYž.*sc^f۴=F& Mu~z'nm?>1ΓN"SR~oh#bߛjpݯEdY_ؿ_vkǎOcC:郣}Z y (<)ڂ+-aՙ"ZO}< FSo:()vͫG ˙a!Bj @zZHr|V S3\ϒ?RJG D>o{m֟k|mǜ- N>b@jA?Jpy4R"Y>z4#$.^],[vݼ]? giq`o)qlm_/{ONtCbvT/4`&uF$3HghrѸCa.7)v,K5\Ӑ%=nV"4$Iɾ|o= @e@|$MhҢ)bVWPG}x.cs7T5+ٲE *Hn**:HeJmJd2I8NWt*O4-=yoU]IbR~3M^?E:4h L tu=p\l˸ڗ[7aʲ{T̅?Ns*7J@^Q*5_({RD@&syY2.K2F?<^Mo0;< VE_+p۽?J{~;{c: f(bJ̝p2Gp3썘R N$R*"['G6%M!o*p܏a[>/J%k8ZZxHˌ|t늼V.97 rqVU˃q̦t]ijKi3,I"Pvy$zHO߰ :?Ɋ endstream endobj 333 0 obj << /Length 3082 /Filter /FlateDecode >> stream x[ݓ8µ9&^}K;=؂*`x+8&-ɉQL (ƊV[&,"ѯ'_8 M4IS4JMHSP-I:~TV˼>1#:[<bˣߞVty "[z5xO%'=Hrų0֑ tז(K|Ky> stream x]s6=BX(A34ܴg!Moh9ՇKRso%RmIXdbKX.vrE: ׿>Kzp:z`%̨d&iY|8R$EVҏ?U&ldY۳ማ$7*Wu1ukEk9O X2BkceZZ(L.U],_Ťx_5LRb"B:P0!Ñ12y$D*=1F J j'9IT4qÄbYγ/Oe3܁%*M# f/gyv[Www: lSzKMK}@mkS'>m% l>? XwQ,o02t9-!@N=l\L el*Z.2ZC,hDZ5ϣ·_6I0$hbHPt!JZZEAކTG:$-Abk1khŷd& _ ^1CH*ODaQʒT 8'L{!$Z(uV-x"6d;t%Ra`CvkHb^2>t] AJyK{Mu!1H9ɀ%E!"2*s4,aS>\l`K V;`dI8Rj1"[/n;w!}bƮ[T%Bh̻u$LJ$hL@fӘF4Md@0e*T?7i#nS84StЊm׮NfMSn3| bķ/"d@u,a$tcQanp+0iIau:v VwnQ" :| h}j_]g?C)&֚x Rh7R صu4@?ŕl-^ô>1;%վ ތW_F[ W݂mhA=Jі!ݿ8k]>`=RgɑGr; :k7Qؚd#+ މ=Yf6p,_{SzYvx =6MA3Yl|mk׉Sou /q> xD('E/ ՛{BroQ2_<\Ӽ'4_1& gēTM>ֱ$LryIɶvi|V,&}L>'{OJ9/uǤg繺}ʼ^l]ndXJRnC#mRy# 5[Q,I^ k+ċeI>( i|\/CC˩>.'/E)y>blrY.C$X9A8X4ɆC`YL&Jd5b[¸f"R>^٢.9v B\k}ݰs ٬Hrk lB0ȯ.HUc(sNv9qkt̪e8` ^0z7T[iVY 15XPy GB傭Wy:4sJ,(wǤaߘG59dQ$(u0"4! )H (c=EczU,8sn1漵vy9} )^<@X^Ax::q)ixGl{N Ԩe/T9 2P)0a?}QN{裉~?x+nwF[u^?)7Q*ڿ1ၻdͪD gd_".1|]6Ϯre8(>+Yg˾|GC 絇c\ȍv/04S e"p$IpB%`(O0w2Ũ6[@(:lP--?h JW!O (>]0& I9#v9狡`Io&rW/$.Y+]f|拓B]Xg2X;f؎w~*dÌAb:Y`.L2%wgb0YU4' ȇ}%#r̊%8uY6! ,/56>MeɝoC%S⟖U  TJ+JNH^5LySҪ9 P<\ST  xBйX }6br)[~۰F81*LXel/fMEn3L0qH;PϛBaӪ)bdn"ЪvDeu wɢqmEs|yqW^;VNi-M)ތ&pۑv|2dK),$X8b'xNSD2 jORX_< DI(V1IɆ*faRĘV AʣrE7~ g$>A e|vDPr P41J_ɵ^uI\8wo7؀ yƕSTyuKl!xnisU0bo'x9vr7c 4Z ERvCqF,8YVu# J'cə`:MfÕ&tsSJM^+OoJFePG漸[c ru \}L@l7e>w63B:lw&7]C-WY %rZޭyr`W)Ɛq8s~]Y+Pkd)hRmtdL'{"zpyH Y0j7F?Wڦ ۍ,ʪȲܛ,wfFqo"*9 ;T.48C:gtE)."vW',IԶW/1=Kp6U7OɠU;ie=Ϝ (%c*Qn]e˙S&j{喲e'k _{W<u}勣DY5>Ƥ ,Q[@MIm/:|@$1/ܥ w%BC8(kd>a0-c ˾M>y-!r(M)#(MQSJ\=}>$qI]wWOe}WAF}/=7sbYS0H\1GG{۷Zn C)M6%AfSZn6M]cfpp7I Ksm/7-$wg2u`)?c! @{Qrb}ށ0OQ(7+B. 4*L(v( wOEC۩w~дQ@2`6pDL-sۄx}4W;}+pe endstream endobj 351 0 obj << /Length 3661 /Filter /FlateDecode >> stream x[m6_k.wQCh k piڵZr%y_o%lb+XS!yC:OٓdDs=9I=%,Vm,驤:W)|ILOљ{ljYdZPe唛<_ebW&uu,rLߝs{4&\Hmo3_M4Iba$'Dy : PWH Th@8SD%+APb DJ "K-D/ zxN 04̫XH(`Ss!DfP/\gI# N1ݪ&8N IT}iQ&2DӦ>i)XP&-rXw"{gjU6.}(sErxb eS7u/ ^WjP,Ծ>k-0ʢ&$%/WE:kOrNL,?|ńƢMs)& 4q/t}_Iv]ra5Q\yV"" M#- ׮)5--p- v;s 2KW(|NL[%Y^͢-7jN5.帒fi+PnCBFeQ~uL*(+_Y[.I]9'LTj}s^dvD6X!d2.'_a3!IcKfwϞw:aٰ5DQ6-`TPBƠ?߻QC 4 `=yBdoy@O+:ʃr紐xW8s+:GAU[aAѡksn ?9P %cV?WڛţwW @T&-Zhi 1BOLp)z(M4MZP.![JZFTFEUe^(0u0zju>lIf/?┚qkXUiKU; uaf5ʕnJLWzH+(]eyڤx@8aR1krS @ׇ_Q|PDvq}.m|kH@A-ns<ӖYdl웴Kj滟k$mَ=yXPEe UCy3]eYAaE ,i Q3`ylI& jÄg[0_ :M5ah]#ȭ'C*KE'X{Zb%x(Xpoi/vɁPAϐ-e:osvSuQ(cJ-I PuI%Qʨ~WY^メYOO ,I=r3.D̶JnidIKzӾ4wĭM" c8m"asKuŊ|姂H Sق+_L;LX`y SҫB4jutI՟+~nG!hLLѰ<=}G'sxEfrmK.eIK׶c@;Gsv2Nq ]jQ0^Y`j0yphbhڹW'3p"YlH8L Fa[Kϝ&֝Q n 䠏Au߻pl1PCaAi7G'?#V?>uDQHc^; N3v} 8vZq+;tB<*^3v5|{!B?Z7E*;%y (1Tt* `qw*t+1XC^zLaV8` ü?߱(-|MPLJzv2lU㱳=0ʺ<]|[b#F>b+gxDn]t=1q' H 029dx@B`$S'\![!|bbØh.0$N(f[jF_CڥC!vݠZm<@$,~]4t0Y2ǫfgD`͐D9 R!CF_DC?P.vAV}"S07lX*ȮNLصaHk=(s(a;s^ωwlObщ;ޮV=5fNd'0^?2 Vxd2ܞHQhŹ5 ܔ;Tl5P!4{\c aŒti{,9樶#x[|荕irq|ai:z5*Ww‘e,+ffuO/968!%dN;u%dmnssK7RNa]v1b[C4+1IhB؀_gn,*æn:"~t sHݺ:9 uFlбG+oK@MOHd9g= 3R54\a 7 v&0Io㿱ny[iW`9dEC( K'K^mLY$.˱ʀ͔Euw yIt7jɊ|l`(>+M5-ip:jkʺQ#ԕ2-V`νX t[6ývj Ʃ(;>'JCX'yBcvq~FT19~p.btIp.s˻xKlr<1k>|A%mx^ Eq^cħp!{LmW1}]Ǻ&u)OnTUc==tKCQY#ƕfʿ@,|qЯ :Li a_y$n^H`_J,{D70| z31|:on=_GRveUZl](W}x;Ġz9֍1.[J*:6@ɱۊi R|5ŞcEaSiy&*8%y㯮t/^6O endstream endobj 370 0 obj << /Length 3383 /Filter /FlateDecode >> stream xZo|!}pLn$)[XHIr?o<IԉJ+Ϟ}oAWg+ 4WId6M]_}(_=~Q{u^_!JZxXq|Fq ~烼A?Z3OC 4LevGX57@k}aL:KO x6u:L^JPzXm STPn4x[`UٷEE7.B4y|FC-pƗ4Bҿ-d(S9 9{e <7Q/5HŧRDQpw?0|}<^|(X~XT (V1C_FJ$*=̫D2]X%]{/m3n TpʰAݶyLc$c.d7G~p"\j-  5.G?;g0n]pqe9Nuz~'ϻ ca'MBkagW @`j@q5=v6ƛCn!4uOا>q4?W9MZlȳ!c6i 7vk'6om0! W֛;AJ]嘶|7EEq ߱+ߝ]qwWЫ+]g}깁cd1ȇmz Ql{%DƉSA0gUd#+wңUxRG0akzń+!;26ѐHhWulGmQ_,8S رNe \q6%?EWEplU~h<+[o xYl8!Eh{~* | 7Y|fAn-QqtmWd% o*C KPի~p|{?jSЎ"hq6 ^{ .견2nwWAՍml x4)@qV(>VyvvP$>P`R4tv5u|*mH[}siG88ոKA\_[u}ɣ"q,yS2Km{HmYv:m0 6K"cs5Wm`ju֑lS{0K-YHdO ud-U];K/fzXx4cuFF|ph0!c 1Z-AOW}FOSMraH}=):ve4Qithxupi%d5*TCLV,W%D /ҐO9ApTZ-1Uqhvi"6&cA )"sjpRLpz|\S2ԱW7n1]C aXX +T;, ΋`Yrh ;SJ[0'/ M8vQZ/⡴m=Q}""dpu))QO`ߑFªɬ[( G!u .+̳}xhnsEޗ5$>Ꙭy {ȭ3 _7x^VV, H@hNPi. g*IU  U5 T<#T#YmX~eb"26ȧ3{űadDLa}*6b5bHUOyaUPI)ia<{KpUCbBf_ /ㆺdu&0"x`V<(т*.lZ`][W?Q2۹)p`֕.Z]M;2tCq6/T5B֣esLx/ f;3%#&HN" 'E=>I1TQsW~BXǁL?L}<1}@g}2@_H-VJ'9H"7}{u-]hD(=?~au.Z*FlHX,+Fɉ%:EMc'[QfE篲?ċyX^ٸ%~*wߑV޼FsB{ZəL8rLz#h;Y2t6(Q <,7wCEe4hFYPeH#HMA9.!:8ͺeE[k/m7js`O\r-}I?U|Z.Y#C71ڳ/E^tt b9$S929w'K9#K'ܐj mZD¯UW7,3]&MLP*\gy^yߠ~V%@/q '3z)ٳgt 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 3476 /Filter /FlateDecode >> stream x[mܶ~Bh^q8mb_nZvu{j}A~|g8V["r+ppc*aɫ<;B$6ȒHx̒:9[&fߟx-$Km. eY2穲6D턛NɄL3m:LM@"O#\se#N4?Kg|,٤s%{l]t lˎ˒_|M-]w{EoE$j;|grԞ{ޭ]O[ɯN9Qk|nZXNn\٫jE#;]lC¹d1hCe | uT}}E:Y:rkEW._d0J0z$,uD>[REFpgTͤJMq AYwVs_naKjla{Y yA YNqpѓz۲X/Gn]STk2"V߻jrs+@2 lMv Y巯5Z=m=F=5ez 4+j\kXV{uK AMCWc҈ivrX` EOookmqTeWGK#2*BG@d&ZFPNUvJξ,ry@숁=b/[$8btHv3 aPSպj&0U. ?nܺJَAC ͦ#2\߂Nr3"xI/=_B]=Qҋur1ڴnKpcEwM_-+0[#!{@|8x*UX l2'N2(gԛL 25ȪqcpѸ]v}@qHf`;eyQYL=RVf@.&bV!U~:y_TrI爭+zG}6uM[;6Ehܧ-GDsR s.Ejyv8 ROQ5lB"lj]jB%R=aX4qYF#SI?Ľ==Raɠ'/N~>A'BTi Rd>y#K i|pkPNޞGNA|P0{MX?62"!D4W<-V Xɿ`)ף,5 |M, @fNb$>!!cHDxTzvPU&H+-G4$@dQ&g6íko6~q<(W#+n[`adMn R~0r iY,B~EI&Au?PEΤZ;4i.LySaDp~ˈN*foM?'Y Ľ=чj s6[x)H󱘏5އmA`Ou6+]| iA5v}zrS3z]d4locJ#X1Nnr*Qq \2f`x%QAXq]pAP/t9TdKj/akP,')+~ Ok@A}2#֣Z%;tqߎ>|o\ %M¼zBU^Cu0rF%VW΄"=\b]+)agoꏊWP-JMGde;T=pZ=N,1=׵/`~׽-AҲ©h`-&f "f܏+,`u xpR3hQ!czQʛ&&ۮ72܅~ٷs^V dǏ28,VzI@d.|h} Nv iv +.Ƶ# *0!ՁZ'Syur}, dz珑fi>S8,G  hy\%Xҟb˧t_\V~ S?D* cu5xUd4{?*2?a'mE#f;c{ I2˴SRߤDiȨciVGGX]i]]/2S;Q)¡9Dq7c<0oy]!ͼa6z.\#a(  XT=a%DĽxnq>'T> d"7AFߥ>nV+ΚgGp<`@űt>9bGt2DRPΒX@(hS47~j"_5Ugӛ=  `AF%qR'.öhuӱQ-gӴ뢦1CiGpډlr:i.f_.W BO#þݺqP Zgk+= 4u,89MPhޚ|[}}ʙ}˘,p39݂mQ:4;Eq2V&/H_$c:9cUz| :V0(B^QKeV}xЕG &ʿ_bp^vQS-|wS_֥p|*Ò"{oؼ,WH)é݃'(l_"lX4(RW:+{o"%5lH˔BJ\9뒚&08D U9@P$8&GjMCb3T6}cd:0Zbq kiR-% S)h$ ~Uk~ -$HI㨯7ߛ:83 %8a %w֖~}jߑv ˫&zEƳكV +D+i?ho\rظeAZ}ǐ(m9higTSs1`I>r+UtO8Ct'eol˶zTV+#.u牱0vu^}Y4~"bpph Z&*y@`B$[zB1h84x`3ECD<ږ霦9 𫦼U%GT(`oeJ,^-Xq y-jϿ0em;9RYgR.9CK1_9 h-S$|o*N|ou>_M(1Yc8k2) +d?XKo)z*r%jř 4J(_.Z endstream endobj 418 0 obj << /Length 3178 /Filter /FlateDecode >> stream x[YD~_q:%m,bgn] KF{fdVdi7UwUYOI'x7zxY< RTPd#",MG|uqP12ZUKPD^XkqXiy_T@MG n7 ۼr_k%o\UhВ*!H3DȫpInKyHä̑C$/W0q Mn\ 3\XمyQUy\H3qy<T4rD0_|t׼NBdއ|0{7 .*4oPJۂ8pEerҲTo0SƟn;n0x- { ;ap>%-f?b[@wζ S+R32I^Ea S@yGLj/\ pD&|1j_!&RyS5 +0X%byָu8NNېhDd}Y (a6j@` Uxz5@a;'bP ;g_fJDMUuH(YmWޝkR]zЋ*O$&d4ǥ~\_v  ]h%D2 71`ͺsqͪX0S;EWW2$3 nn&;0N)t`/|/5\mX/INxg`wӓ,5?1}UI&C:#y+̨8ZO.faŌwJ(֎K4!<wA ~{yCg3NN~4ȑ .8m83s!s,_0Pʛ7}/ՃKE;n]7 DhgXWnѾBRÒn& 8 faj\=\j9LI˛LO%Qv˪Rβˀx?Ί8aZVhQCt{p Ec)CsfF{?m csI3. '}p_7,>Ĉ?>!cٴ 4h! ^PkNv]VbJ3)ȧ]lav^swp%Q`#MfTꚖe~hBKYݝ7lDRDj뗃 G3޶ 0űwhOvIsX/ AM@Zإ9\7kXJD# ,3XKL*.p@}{s˔]Sl:G@W׆0Ro^c®;“ҝoRG[V`AL3fcn9՘ 6,)_m%:.i =ѹӝ1T?ĸ&9Y B1K[J>C^hi挲0e#uD((i&:?G%B-Wa|m0D߰KwTTy:ofWy'n?Y }??w&0S,_39M#§ ![Ć@oRMX@03=Xbˮ[_ٺ= Z/.j$-MDN?'Jv2їWgT⊮Z$8YjVA2sOsA5au[G}G}>b$h|7ܐ 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 3155 /Filter /FlateDecode >> stream xio~&1'sNU l6p\Wc*we)@~|ߛ+Yt"0ݝ}k2ًߌOz\\g ՙa04{3(Hp=8_ *=gy_L`uWM?Qo9 Zbei*@#60Gփ4qFXOW _NFQf Ϟdv0)pEeD \M,ެ x!CEuS̖pz@M,!;B.J:N8a41R*3D~L)t6DjCw2rC= M=|.lmpltD y/.We+gt =Z9_kdq=1Jwq]#0>F[~"17IO#u@| Ʋlܲl 60 ] d]Hk/2zWhfp3`UG-vIΦը/p7_<儸30,G.m4v+Mdu%It!ᒮD _InRA 0b$u=9E"ρkh\d*Hx+=P0 |};+r8}v:CXbFFds㱹 OQ#g!y1JAXl6fjogl4cnSqihW&狓7oi62OvABjgOvPQ;Q3 M#FF}l,HN`9rRvBuK{rVЀ" P1.SCu֝v`wq`N,ѠBӝA 0~C#w: 7'CAq@p@n1MEH@3)wBW0wxo%o P$0[.4Ź&:&%b{LU_>ӞT>} ̳ wפ"a%ʢTg86*݅Gw2STzwчk5 2dC(R.:.y.K$iM&D;N=O/*)-<0J F>J` %PG ; 6WSf;j⨡a$:yErh&c'b&'C*B#tI5#"-ΰVXÍZF0+{lҠWZx+lPP}j-qfOS^Juoe.7vUe2EƎ2ȺU3S>bK8֜U@Wgv^{xwQj=SwU%&vsc>kM$LMFtt.H*}iڞ:֍p';Qc}3Rᨵ`h룶j"1hwqHK/ nohp=i\.yv=<F6U^<<.^U}oO*" w`ڕ OE縋 wpi *\Oɥߓ K692~PCw$h4'ea [ۅ5rAnf"C q;h];&3m5byf{/7rRX([-4=M_a=ܣܜ@ F p.9V;pX}:SNf~P+p= o 9"Lɏ7QсWSbGd)dstbW?RQfHDf|tYhכQ"e#]rb8XO&'AD@Ze~qnw8,3,d"[e~mz}xe@Te^YD@^~A;c|*=rHwrX;GŻ0]Wq5Odt")|b1Y1*wsTnϨ)'0CYxzBx1;A?]dk@#Ju9%ųh )?ZJe2,y#1T(R\e#(]%> stream xXo6_!/2)!X-:<݃,Ӷ}HJMm!Ew$ G?r>W<>lV[}`wg,"(/+ϐ ewM.]!b"Znj&WnʱdЋ!ܨbw+6!o]]U@Z(C_J \XZ]cIi5\ff Ҏtc'\9

+ݿnKpd ?Z)4o n͹G5-&,(Y]c;qPm ͟{)KqG{د|{)F7=WbHBS S, U#y endstream endobj 430 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rtmp2ACDCJ/Rbuild35f9162548cba/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 4577 /Filter /FlateDecode >> stream xKq߯%h6ݽ da{aI4@e*@STuAD=wzzj͑ףG/gGMȹ-u/Ͽ9~u^uvyz:޿,]0Y#rN4y6)Y`>gY`=S$(O`>W^ϮF98lg#3{}=vW>SgnG.ٕtYeF8Ό%rIa_u)]3U]{g”?彷 /+oNx`C`e8)sMUΎ%Lw:'_4KV|vb9ˏt#ꌛKqr&oOz^=9.&xNn|S]l)3m?lb'd#gfsUSie&K$$Ybbh8T/hq'B3 IdϺ̷_gc9D'9Mo'WNO=ΎOtq1{c#RgKuLY&2trX:Q8yg^ަTdtlx2;֯Fl&]yvW~Eކ%'YȌ FLk:9 &7\ՄɞNNd8EkrT1Fj{A||KkNYæ|k &7hV"kyKNP"I7ڟ,MK,=E4n7i)Z5u֢]۳&oM"m׵!>kZ6%KZ1Y?o^\\4qh-:/G|{L3áVZ[\d]ү_EI`zZ6E>~@wիP&/N_o+,SkbSA)[I޵]Q9:mHU Gf1O,\o gp"6,KKѫnKKQ|(]>nV^Z%'~g=]svDZf[=0JnѫJtu+m۴ʿ&H["L+u'8-z(ԁѥQmk+Um]6A@ݦ^5Z[;KQT2}jFFsޚJ՘ T.PXIKӦZ KQ5չ-E_>+#U nP_KQw~i秶&YP2:R#գ]cU5-[j[+KQ~(WQrWH5z|*0KD[l6-Egu~H4c4(3jΧE<C4o#z6Yg)-<Q58>f-f%|VT JnmVyo3^'پ͟UkKSX* 7W͏/{ÞwYɉi"It5O#sO_4NwMއ~8\O)y+>wKZ͆]ۑvGgS2LG_xpBCdȿ|.BTT?׏U;.Bby'Da/~~_ݟ{{?o; 9 O?}-9^g+QUfwWںC-m]|n*n[wںިBu7l݅jn4[w! kG7uhEںjnT[wںݨ{}*TT[wں^hi>u6[wںOZJ;묶ٺuV[lZJ;lZJ;yJf:yۺfnV[lfn6[wںjn^fu7lfu7묶ںj:XmlYm]g+7묶ZJ;l]1uKe: euA̖묶fuS4uL[5hڲuuA֖<-_9iu\-_|#uNQ}r7ukԷnV_׹G}#:o:\-_w|]|uNA}p }-uuAߖ|]gusз:܂m3uuA߶}3_wз:ls }%u[Hϖ܃R4u-_׹}۾m=ugH֖뜂m_ws u[з:ouAߖ|]m%u[з:ouAߖ뜂-_׹|m[зnQߖyF}3_9E}[|]m{ז<뜢\ܢͬ]mY)ku.A}p;܃-k9֞uNA}p ]X.k׹}[֮sB뜂XmY=۲vc=]ͬzԬof>8֣f>x}3k٬]mYα]֮s ]mYα]֮s ]X.k׹}[֮sG} fS7vQv܂XͬztY%۶v7ouvgԷenvKԷmnen6k9֣u.Quv{Էe.^֮s ]ͼ-s׹}[sG뜂-sO}A߶9֣ls ]mα5s=2wc=]mα]s ]mα5s)蛙nAߖчk<-s9}3s5s-蛙<~4WZ}|{|A=le17u>hSFxJbs;7e4Wg/`OTR>+QWoퟗ 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 3917 /Filter /FlateDecode >> stream xkܸ{~ _: d>8]ɵݶ@hf1'l~}I~7.nXnGe("8ݸ??=phwz"rr#E(!`qYZ&lyhԬRWu'uZ:ۢ[~vur8 * Du~W -^lHݎSJͅ27n[ C/ohV,/2tve>NGw[CCNSMRFt7;hOHwYf|n;59ۣZ%˲ޟ\|N|vj"No)N2v>hD?`zg'9fo]UmWpVnғEԯOO:?D~O.ɍC"ʕ %]/Q5YWt}F==K+grYԮ%*Ǥ]:]'@L;,y cLFV6(|߁v#E~hj~oG]wHh_;n@FD$e;O8[^,iw6UAeW3n6~J.3Ԯ4iҊ0P !ơx3ʇ 7g+Dn4 X;lR %6~UWI/_Yzڑ~As^L$][`:Rk^9/{ŬbgqF`҆7_k]"tXu(aWx<6c]s1j+Α5SDoXTWeF2x 䫩XpJdJˢMoR-oA_8|jOKa;Krjۣ ƕ"C˙ԡCFaOl<ճNȆ,}Qo7l@DQ;G3Z36IS`9x1@v#u'&*_(^+O(qgfFW1L7Qr0zneOpJMG:Sj{{Z%@) -ڮN'jgÓF,P0_y괘[2cDӊ-V $)W$'NV#l9*=r#իz `f.WN+Ix ^ow_*0md$?n ?^Nz}@/}>wл' RM?j]cre|[{wo˦^$r{>Q\ Sk$k}uHLN2͟_` u-HMxJ (p1 Ɋ@xg+)=-\g\L-ZB>Lg/s+9.ش r>zMQՉ@`\ND㡂ɺ>aCtA]] =p(4;uKk̆dZ^f1 `L/,v7iΚ޴=ԁ&R|6=XvCb7oς`7a0BLD_ơ4ڦs;]z&̾Rn P1_fUۄwSJLk ;Ìj0"T4eO/_ jۜQz%q[0 fqFZCLnU6wȲs0c mCMkGzp!DB?2;dI-Mi~gMjYYkuy}i; f :5 _1(ζaVGRDdFa>!J}Ʊ+5`B[ZSϦq {xٮ4 Xo"/:aoZy u@ RIʏMdppB JNcvm 6pW)ɚf"acWnJlh"UV =7u]pod4aAt3f[m\{ >ǷU?\QlR<C%h*ZNZذ RqMcG{+^hz;)  SeIQ)$~"? BcϦӛNYj1VA_Blt 8k6#>3l=MiԚ4aoŲ."rQZ vbQQRDEI'1抒]MZ7'Kn`nӝY <,h 5aZ@XjatM>UؼLCjXLӾ:UllԘX M-АLV="֜ ֶLq#Cx`#r`@CvnQ4no|^! p8j ~o|Pv\EER~e5{}~|"8H'UgYUF2ReVƞ{q SJo(Vv oeZ, T ߳AB3ٖ iggNJFPFFyhFP,EǴFP*a 9X6P(h[ZOϟq.@^}]{_+NQLc,=bN.C?LEl kd.xSfz6 $;OR Qi9&cHu%~10-09nRv{ҳOn6RpB-}ߑ>= ܝjwnZ3jct ܇~Z!I4R}da Po7ؔ U{C8tn D2v1W4iu(8u5.>B;Jy?V8qlYT1 oɕCw[8fbX ˩W],ӛubE(+y:L)xv8X]];Տ.> 2q N&!XGp.vJ/0F7p-@bk:=3t,ҝTS&7BEvb^>r/D_VZL_乷 IzS ŨԬy@ZXY`);wL[ C.26?OfY0yOO q+'_NPR9],=ILˋYw"f>YcmQ˝M7&ӆ 9 Զɨgfcpcr@EdcZs~_X{ _ rE8 E1]Oy#Ot5ϲv9z$Gd# Ќ/!`]mSd`|M#fhxK'dAӜN,CX(NO%#7!z A{|z䃠> 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 xZKsW:@-ed)uUQSDMY| -&rP`5(GYhpN8 "%bhHXq5ek $!5"Y/ #g AD>& 2f։'.kIa&IP":9gZxq/LL|s$,eMbB絰.XZ 9oy+lJ _jba `qqX;xdDnDHzV`@j!'$<1򐅷wlPͅO ?"hFg %`eѸ4KNaNh7x=u,/. zjd0_K;x4200bn!(r0x@8[zGpq`a{,0h4/9h4fُS.I`>'=A" I`Bօ Suih%'r#FSfd'%"Rx@ w M:Hg J#3GD;T_/ I|5^㲡Ȓ2kڔ}{qx(3a3-A vC40oaab!7V&gM/΅P/wC/H]3M?f٭fYJycsَv9O~\`B.Kb,EnV/2[;=ROe(S z1 5jHk9:#MFB3 cXL}#逍$ !A 4Bd\]%e݊aoG#a0=m`ʛth}O}#9hCjc R;T^oNͫv?UP|4 ~뤖,^#H4;X/5C3}do^ͷJ$O,:v <842$Q"J_ n 7/lv g +ZɱFAۅ<ӴӦ]ǭxCƯ9G'#]*m q(H{f6(PH%˜An1gi3xJW@B#rdi >Q)2#lo|UDdH`~<:; r"&iLQ8$= - a2Ͻ 7$M_62#祏AqEi$g͢m{ W%s%Hm0TeCv}M:*Y06g\5}Z4qGXWTysG9η8Jr6q&= 8 8 898Ɲ(EtKQ *U}V/5|cjv`&ɸG"w]f%u9r#6}4_#¼kk\ccDj|$Wk֚ց}¼mZ+DA0 t3쐆#[΀EPdFdCHuzN"YW%듖EC?0xP_0 uap0{S(J,E?+Țd uv uĽk\g ZR[w]Rc=<3=>)mSOOK< Gwi8Kv', .xqߊ * wr6.ʖ'|j S+ dJjm lh>_)ˇP1Z#C9*S(T%"::3d: \|3I^Uɖ: F'ߧҏlUν.z,!C endstream endobj 515 0 obj << /Length1 1685 /Length2 9937 /Length3 0 /Length 11012 /Filter /FlateDecode >> 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 1593 /Length2 8273 /Length3 0 /Length 9323 /Filter /FlateDecode >> stream xڍT.(^ .JHBwB){B)P xs9Zﭬfo63!<w(j yp0_ff A ۔ެ v{ xPW_{?6{;@OT\q@A 8;C vM@v?7'{(fݟPo߽|?+kjp>o[@ .&w= * U۹,~J)gk7K^??+?fq0p׿j sg!`z݁{ =F փ˟vK!z.n߯ |r9 r8}2a"  0~?4 偻߇ ع q~ߨ(W$zFb|^7GA㿷FBB~;q^^ȿ=_P '>g /}$Bkz $C㱂@! dc]Xe<'IMLvnyd5V{un*\>{ue3ȶ%o}{+_OHn$ [C@ҫOջbq$bfSZDWwqe)"ۼi*&Lwn$ބSg$cw I8{q~_⯦} P?6C?#gSNנ+/]EdLSt9ö|7u .;,clTd/bWԒ_1&c .izںq&Cta }8" ‘t,Q%(W,Ad-6tA_s뼂w?,yOiNDysOA9.[n`gjk4횶%\Nyt⭴4qr [pYmTo{\F_'0~[(K[ +!-rmԃB IFT-[D']'V%|R< x:TR|DɢxaZk^[Wm?TpBz A3\?];(e:3woYzww£;x$}?蝹W q}>2.%h8NDEԢwxqL._|bYOˣ`6?2w2'OSEͱ?)ۗ4}"ksꢘ@MV\q&3+ce+t |dW@q ̄3qlahghlw5Ļ7şWq߁_2VXF"er1^'N+h#;<݆/kʬlCMg+}sG%|FH=l1(0h9&eh+'M aMN4m]Nޛc=:Z!ʣJIw&(_daeqoIuyDSRe[KؒZu}!ӓq?y^(wѪm尩 l l _˥c)46 M aM@cق-i'h2FcN5kw5O1LmeiNTn%;p-KaQV㵓33/i8NiWn8QS$toyGl.BMLojo!S{12)pF[>)ОB]?DjE3㧧Ծ֔{YDڇ:[6zSϴ-qTX|BU*H)twD_jaIDOXөw? .8q5U%6xǦvO^QM!_}dbH٭Ag<ֹ∇gJ/}q~w$K+mwH/<;*IՔ{>&T5#sn3/D;&|(u?aUb:we8 دiWў$z&-M#}S#c`_^D)\c5pS4\HmJHͩ4Cr㄄hymtXi5 nvW:ifewX",LbUwvo<>)I՚x23vࢦFe7rbwooRV+Izim\ FTX 8CVt}joKtDXRÊ"rp"ttS-<`?4ngkfhl61[,g]i z}E'2Ɲ 9>U5/=۫mj=ހ7=ޅS7ᶱ_Ola.q`byk=۰nˤȝjVK`,&!o m‰F0nvgWS#O9tD#l- z?M^$"A6mӅ_rꂪĄ |ZT S6p!#f=GtNÉhb ·[a_r )ɴB-Y{O+d/}]kMYsọ[a|#J׹R&䎭8皒:c }[~v 5bqL/2X M\\̯PS9FXcAIG> CdAB)j,I;R/$;AL-V=_` eQ$fud&T(gQk92;1tTC`uxozヲ&$1DUL!.ife+iJǭ%-B8Pb3`ІMIO2ZAl` Oq1c0KTfpɃڞXSׇ~«1c EZxo.S. 梁K-W`E>GF魝my X Dc_.7eq/[C6~,ĵlC3Dʉ,b NjI4Lp#FvpxR&;]En kޣ#l }w ʁ5(t Ng㕆R3+K>`1Y6u$+ 9@#|v_1c sYLLhgP0W|{țe O.Ik4i[~u:88$Z%,V|K7毃4νSsx>20DkaY>->?5) "g'XC5w<7sI6y-b:QYx@^QT-EvXh-8`C-XtH-Lۥbx1 ?=(26;,<`,3Dp`$ fų&IWI1 T3jpHF=%Uo{Ai=ŀ_KnHYvpw$!闱|vxےαc~2PC ħ|I J:&F^?wJfj@FQ۪uUXK+s0Ax0eO=] Չ Ҕӑˌ%˼X Xy:,Lj`~TL3>*T*b_c~XPmPi<%/SQ؟l ,> ByXCZ|Ch=pW^r;Oێo. vJ\T˷u{s{T+/(|c@T@3=.l5{ҀN'4|I+;uh;$ՙU5bYMψ@HEL>#Raa9Yc4Ұn^mDZZ&kjZ*#@xԓ۫cSp.!$?Ĥ )Q`^HKgPP{ ZHkG{&~{x(%[^կ- \L#\0!6"X[֜(ordR?guߍ z 5#_GPT#nEVs_Lng iX>\.8tdUX!T\)ДUY/ZуLn`Av9!xϻ$זoqNC: j{&䱌f"SlKѼ}qN ̨> So5n%>Q/)5P كYV{itce[>~yXDIB+9Y;؞z_IUoQ1Y1'&nS:䝰|)_kdhz6\~Ĕ[9;OA5ٱ3?9(|H؂>z摕Πs;(x<-#tjS#hrtea$Ĺ5WE f 0쀵5IgYkP{=ϯkB'cCiO4 Y8@hp&F'޶'kyO' mbiT㽖Ҿ/~tQaQ ;fs阿Ü ɂ)y4 D`d Jf dhUXv2ܐ$Ҁ'Cyr08=zPZDZ_FTz)MVF}|Y_Lc I$iQiB'rrnB⸶/KfTxm-ַ<՗/>5铬*N}?t^ ӔmT{WܑY*e !N),M+x\-+/rrkw1g(,ObC⦘AzxLlL+x_+n#0>#K B ( )e#l%ZLVucBwק;FuP{ ]%pBŽ! L+I?_Z6Y6-/Fm~0rsd6YZ-oSKG盧_;/zG*聥K'& {<7p5j9jy ІޣIkY,] pꄂwz`+%[}4 Q[<ğP a6͵kINPNvir ?,2taEt4X6R1ҫ BS6ndž߽'džh(0*!ο /B =_9o֠GPy$pBeݙLUF1bOdz9š<٘Cr,1I}V=yE:+yr`dX2}GY)89#ޜ'z ]Mu$ϴB̏>YxYYv=Ϣ*|q )Ж9dlRΜl2y򳺮XZ/x{/oŸJXM*DoZsCvؘ)p:y+㌥Z&ى43 #+C)x&1f%vIƈqDŽ0.3S"&l`,r m3d3O . 2;ټr3iA8J@QV ͏&_w.LN[f}&Oz "_{O8uZAD6 P Va}1[#wx ƒ#'_{Y˯ɹKW&}4=K+ǹEFo5߁GP̵:< YFmx9ʡzבJ왌 `0T9f"<{c7j`Lw?)< T2ah5Q BwP dv ;Xe·ax5( RŬ{,d"|;,4lph 7V`~#^0NYjqP) ,'P׮UW[)v Xw6]'?Q.?Bj#< c';͠us}џ7>jʬ~zFu0ttvB?eai?iy@=o[iIt/YJVn)p oNzY0HȲp*^]. :'GǺB  r!_4_Iqꣅez,`Z8KmRttamL$ip:Ҫҁpkts1!vK赛mR4S.UߎzBv^D%TаcotΫUdUwB|:EvE"t!r{+BYno1CUP2/rNP@ %Dƭ|*@q}K馓̺%΃#{%,6bF.aڴ=ڄ#o]}&4V40bZz,~0*I{r {Ӷ]Vₕ}Tn ֹCvKQ];O?)88"kuVqxrymC|joPSA*Pq1%x&9׻f3H@Djx2qSp]akEZ˛4k̛UZӕ@NΠWCDPYEN!d&ˣm7}s!s?ml:(&/(Κj|?*+Yb5_TҼ Hgfd8R;T?hM>:[i8wGW2`ִrV X$ YFuox XR cHϢۋ4ZGR T0*!]KuqJ|%h!X1Jzg+9k9X9۔$bI\L+  s)GQY#m Ƕ 9mA7/Y{T6ncInfKK X?LZ|gE'zxզ}r`&׬oofLHyxM(,d #]!CBMYAԩzѕ|ͫ5Qo/`6we8_W>c1ѫ&23ъT$U-3dKsH}郘`akq-*K_'a1~s5YDesހ:IŻ9"~n݆r=^yrE4U~qyPd-6ȧJۚlmOt˿ Ev}>l7oeU\ș bQaMaE9OIك?Ǖ!oX0;bn(D՞=?/qB9hI|x4٧cV!Iku0v}eCJNwRA=T 1YF=OkHF^ _JR|TM:S{ږoJ?j#=81MF} bwUӘp|^K9 z'$9vGc҅!JyeꋇTMVFxhW`M]8Vݏ[$r`a553R*wDSN?M igyWJ "~f5){oO 0Cw<yԋˈ:t.`_:WDM?`{g[3X7"f}sVA/y/Mezc"+?m>ۛ1QS}kqcPys u=])ɷ&B%׏ 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 xEq(8 +2BGB'-+T20 퍂!@#i;8\ qÌoY #j# t4qEp!"DJQUDaaR 9$薅y)bOJNHiհC i5P QءH<vh$`V{C;:y-0[ ;02,0p`Ѓ0pX8|^KT:ptI 8z"W؂׀)C–QO/p33jhU!hAyr7:i\ D(gZ©-)cZ) .A@kp\-<Ҹ87. ,4X AZpTbQ@< .m?۠!lQذ-8b[cA-PyHFm_+SkM֢%z6zEn[9>6OiM壄srr:l%mx"})t>L6±F' m ^BAb;16MAA_F6DM P &.tѭKv ȃř.:_A+CT5xV`i$emn^ t~>ly"]IBS;H9*ڝd.M *R-.h:9]pxRA/mjl],^es_,wnsL('[FlFڨ Yh@ߣP!y|‘4<~D#q#BdMpƀh%s <2G#oEN$9@XBmAMD=zGa8"['HL<$ H0%U̬K O"5Zx3 w#hI Q%A~`}?{^lm ,3vKi@0/Ujy쐌 n"O֑[u6( vpAC(4]5az \Ps|D"N6QEp=8*%@cE9F8LYZ'5qj2H@X,6u.en[pj0DXCr6OjOrԜ:sFs|Ф KOmZ%-=8_& i'֚ڴ"!q"$nJ6hcOi \QeSmq} mIi̬e\) -& *a ;NBP~C _ I,WR#lƑs%gPf$f{p%J)H,iw;G>!~:BydЧq`-4VȒփ%|!:m(В< T ZQiCM'50+ + gh]$B*]n]hexrnYC%ro|q#-ϰTh_0o]EϘCO腳>pF9^yڑr^%>\w*$&!*]KYvǦ|ҍrJCI`w*RԦt\PY7%CU1,JcLcfؔa": "1z= v$C95َ0T %f50jh1;oK\R{Pkd2U]65;mf˅{j%u#(;u*gܡYEQ-O۝jn5QY8\)D;9dEO5G[V(KJiUˮֶ/m4.QQ+QPM>RNjtPlDs7A׭9%M_5m}o 2,f_m7$dmSnu"/j*'&5'ㅕ[ tDU4Nw~/, ,\) >dl'Rr%OLO~*w (_R_a&;xXf&мjW CWHc5U+sk뤕 ǟhKSjlV)Cj—z M vj-i'۩Th6itQ77 uVaL_p"ߣL?IqD ,UjZv`XmO}N;h#H1v4Y-QaoIrcRCo"T~Rz66z N@{)! H|K#Rm-lKok^' 9|ڛä52W6OӮ \&~P?s<~?.Ww|Z[4>Óߕ'Yax~#WSn3;11*_ߌ9* >{.hR^M?o~8[ ;Mr+ˣrTE9./.rRޔ]y_NY9/=ヾĕ+_˷{ЅS&ws qY}>=L{n;h}%Ʒ78w͸ 7_{u+pZ)ğmIcBZvsSd/Xeʳ|<_wvpV]73>xw'Ϊqobt|[;dhXs(lPC7{3Ww~2NyGєDю<=yx@]?L:Q/jX-MSJu59z-5umu1nYuk\=F!0`퐥&rW^ r]pZ: u\MĨ*9b<*d*Fj:ƳMF7gr2<1a4WEuy &5zx=@|^WwߒR1hM|")D1(l OO_ bruN 11eJCrs@ *#bo7/q ưF46f#!Go4?|rF䈟RV)wS \k*:w P~_Ϊ#9#q,_е?ǐ#eѷ*T (vҵ:ׇфR]kX!I| 9W[X; ||q6U҈T|%[5souWg<*FO^ p^Cx]2Z2"*ѿHF!Q=f ĵT[S-TcPE[շ%ס&ez#/HkGAðkQvIktIqN&EF$ ) mu3y񓃣=c}PUgR'!K*y:u55|>En DhDh힆f͐V3eu>\/K}?]kWD?)(y9 9| rt4XRKYddp8\G"O6aG٥m#'śߙ!F6mCKF>r1R` 4#xےV _\F_g)~@k۪MV)aP奄&q}MdwCTvn&~򽼅l|.sX4n |{Fݬ./C7( lj"N>`k\ϛeu[Ϳ'Oq썼𻷟?|<"W\"UO6d2钷%çЧ[lt]](м_4hI/:@pJ0<ݲ+=|-x5AL&9hO_3ӗENn^;CgiBqRj^b:?;*s/ȵ:\M0<4unZi=9:efڢa* p{8U6 sO_CpG>!8تkzGl_Tk>zGlN}-Ne|9ˋ>͓C=v{C9^q]z!#NtpW#_TyaJ} J3c9{ٜ͂6׸Gna{ALv,7Oӭq/vq^;ף!m2Q]иSrmLf+~F!}+##^E{QDG?B>?Bp[:cBkx}싡U7sy߻ћMN, wx݂/.Ŭ׀0ߌA4IB;*mwo8\/OC&Y[v}4B;WC8LsoۧqTI-<n0I Q cjWZriOCcv8+|7㭺*Vl,8,d`Y6;Պ"; KL9{`x؆{vH,Ts8T:\sCۮ̑%6 MNck~bgoߦ`te Y&gK4lbL}]%0z WUU,1*հX`YX5,+X,s%, r%\ W*e͹aa.3^.a|wmpٻ;~4M0#'˛˻|-Oe~?kZMq|_TY:k)\/hA endstream endobj 592 0 obj << /Producer (pdfTeX-1.40.21) /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() /CreationDate (D:20210302224728+01'00') /ModDate (D:20210302224728+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) kpathsea version 6.3.2) >> 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 <8AFB824414277DEC9EB567B38FE6639E>] /Length 1443 /Filter /FlateDecode >> stream xoU߫J_PAy l@@LHHAƘ(nL &w1pc4-M`&nL >'瞙3s眙B/ ! &=8Ad ]'*b"([AnaԐ[Gevr ^ waXY+ A56&r.3lup5h!7@"5.r @;.0k͓;ϰ0}2r3 ׁnrM3;ǰpJ'wa`lC` ``va0F `Py 00{Le"8`\t 8#(8&qpL@k5a/=)n~nO-"%u ɷu@k;|xx7Be+ kE:\Ԑ+ eu@Ag QM5mѲt-9&j|:beS3:Nr={M5h lCh,M`3䊴HHX#6EFn}驊q/DcwFj7EQ ҴQ@GVFj+NZUƋeo}YH|# /bX<6nH.ҥy޿YX&;up`D\ ݟ a"*`٣uFh Re?ЁFPc7k> ^%J,U&!MB$KH|% i$,I:O7Uĸ,{rHcNV$~ T`| i$ItEU?~,0'T¦Į&}1J,q:fKl|b˞2؅Y\FZg>8sV2Af$sv!W59S9yju5VXQ^ '[++}TQhʝuQWg YQEV~\-(j~TrP݀l?D2PEPeP5` PVzAhjbOWﻴ T endstream endobj startxref 497302 %%EOF gmm/inst/doc/gmm_with_R.R0000644000176200001440000002266014017531154015002 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.rnw0000644000176200001440000017532314011255710015407 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[utf8x]{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/CITATION0000644000176200001440000000132714017527033013151 0ustar liggesuserscitHeader("To cite gmm in publications use:") citEntry(entry = "Article", title = "Computing Generalized Method of Moments and Generalized Empirical Likelihood with {R}", author = personList(as.person("Pierre Chauss{\\'e}")), journal = "Journal of Statistical Software", year = "2010", volume = "34", number = "11", pages = "1--35", url = "https://www.jstatsoft.org/v34/i11/", textVersion = paste("Pierre Chausse (2010).", "Computing Generalized Method of Moments and Generalized Empirical Likelihood with R.", "Journal of Statistical Software, 34(11), 1-35.", "URL https://www.jstatsoft.org/v34/i11/.") )