diff --git a/journal/figs/comp_fir_ligo_hinf.pdf b/journal/figs/comp_fir_ligo_hinf.pdf index baf7a89..07f2f75 100644 Binary files a/journal/figs/comp_fir_ligo_hinf.pdf and b/journal/figs/comp_fir_ligo_hinf.pdf differ diff --git a/journal/figs/comp_fir_ligo_hinf.png b/journal/figs/comp_fir_ligo_hinf.png index 826400e..2c1eac3 100644 Binary files a/journal/figs/comp_fir_ligo_hinf.png and b/journal/figs/comp_fir_ligo_hinf.png differ diff --git a/journal/figs/fir_filter_ligo.pdf b/journal/figs/fir_filter_ligo.pdf index d526d03..8ed4dc7 100644 Binary files a/journal/figs/fir_filter_ligo.pdf and b/journal/figs/fir_filter_ligo.pdf differ diff --git a/journal/figs/fir_filter_ligo.png b/journal/figs/fir_filter_ligo.png index b9401b1..a91d732 100644 Binary files a/journal/figs/fir_filter_ligo.png and b/journal/figs/fir_filter_ligo.png differ diff --git a/journal/figs/hinf_filters_results.pdf b/journal/figs/hinf_filters_results.pdf index 82877e7..0ff9132 100644 Binary files a/journal/figs/hinf_filters_results.pdf and b/journal/figs/hinf_filters_results.pdf differ diff --git a/journal/figs/hinf_filters_results.png b/journal/figs/hinf_filters_results.png index 68200e2..0f185b3 100644 Binary files a/journal/figs/hinf_filters_results.png and b/journal/figs/hinf_filters_results.png differ diff --git a/journal/figs/hinf_synthesis_ligo_results.pdf b/journal/figs/hinf_synthesis_ligo_results.pdf index a345473..464fe6c 100644 Binary files a/journal/figs/hinf_synthesis_ligo_results.pdf and b/journal/figs/hinf_synthesis_ligo_results.pdf differ diff --git a/journal/figs/hinf_synthesis_ligo_results.png b/journal/figs/hinf_synthesis_ligo_results.png index a60e176..f0b1281 100644 Binary files a/journal/figs/hinf_synthesis_ligo_results.png and b/journal/figs/hinf_synthesis_ligo_results.png differ diff --git a/journal/figs/ligo_specifications.pdf b/journal/figs/ligo_specifications.pdf index 2d471e2..b635481 100644 Binary files a/journal/figs/ligo_specifications.pdf and b/journal/figs/ligo_specifications.pdf differ diff --git a/journal/figs/ligo_super_sensor_architecture.pdf b/journal/figs/ligo_super_sensor_architecture.pdf new file mode 100644 index 0000000..9cea68a Binary files /dev/null and b/journal/figs/ligo_super_sensor_architecture.pdf differ diff --git a/journal/figs/ligo_super_sensor_architecture.png b/journal/figs/ligo_super_sensor_architecture.png new file mode 100644 index 0000000..79661f3 Binary files /dev/null and b/journal/figs/ligo_super_sensor_architecture.png differ diff --git a/journal/figs/ligo_super_sensor_architecture.svg b/journal/figs/ligo_super_sensor_architecture.svg new file mode 100644 index 0000000..dfd9970 --- /dev/null +++ b/journal/figs/ligo_super_sensor_architecture.svg @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/journal/figs/ligo_weights.pdf b/journal/figs/ligo_weights.pdf index a660862..643f14a 100644 Binary files a/journal/figs/ligo_weights.pdf and b/journal/figs/ligo_weights.pdf differ diff --git a/journal/figs/ligo_weights.png b/journal/figs/ligo_weights.png index 56b8fac..9ab2bcf 100644 Binary files a/journal/figs/ligo_weights.png and b/journal/figs/ligo_weights.png differ diff --git a/journal/figs/three_complementary_filters_results.pdf b/journal/figs/three_complementary_filters_results.pdf index 3a2b2ab..db0f14d 100644 --- a/journal/figs/three_complementary_filters_results.pdf +++ b/journal/figs/three_complementary_filters_results.pdf @@ -3,7 +3,7 @@ 1 0 obj << /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) -/CreationDate (D:20210430114128+02'00') +/CreationDate (D:20210520162735+02'00') >> endobj 2 0 obj @@ -979,645 +979,341 @@ endobj >> endobj 164 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> +<< /Length 165 0 R /Filter /FlateDecode >> +stream +xˎ,͒7"_ww@ B{Fp$@ydGmՙkgE_ܖǡ'?bO_9zΥlM_PZJ!7u<_#>Rd/C+oowA1ʡHI+bO6}1SǑ{ 4ecS4}BH)G7~_}lJyߔR)GR6E/C<4ecS<3-4ecSg?F /S>6eoJLϞRʩLY?ؔpoKMӒ>6ԯXm}nmlGl}nm +E?zQOK>܎VMNCO>6dM3Y?ܖڔ㳏Zms[_kugrz.GbFy6s>ܖWR ϽW[-C+ZtX>WoCZJws[_qsX∣綼ڞ0-tmy-?['m}nnQKHy~-ﯻ؟?+mps[_iK98JKY?ܒRq!^ijj8my-xʃl/[֏>usOe綼֣>n}nl  )>u<ɶ>u{T}-ﯺUiZu>Um| +d9^>uŠ Ff'ƽj>m}nnKQ{}͢myxŅVmyU X^^綼6m]!a>UWaأmyՕ,Za^>Ugm{}-ﯺm>U, + GM/[֏>O=vXJ1&g=9iɧ|b̡Pc=FӘO`15cc4f=[9w͖OM`15SjWN[O>5}/֌YSse>ԘX7>CQ>}8Y>ԘX7&ɉN-2fSc>pd1jrhmӘOl +/bƬ|jgoZ0J87OliUO>57ZiF>\}Xj1'aiɧ|Criɧ|譏cL'zyPK'Z{qC/f~1F;^ɹMn|jgV1jgaƬ|jgo9JqOl+K;ɧ5-O>5XH|2' +³slZ?ԘWԘWx*9VOlwWo~)#>ݹY|jgoZ[cLwSbgkoH5)ʫ5_9|jgnZMY?ԔVunSS>[sS~fqz8cOM>γ>5ӆ(4eSS>udzo[XOMl=~qb&>rʔr`c[M>WK|bɱ_;׼\ӻdϣ1jlgg^]v\ˎ=xUrq}p_=6{9^G.GHy͟ʎo㇚6;~6͎J:>;6;~(/͎)-͆ʊ㧒rlR۬6;~(!ώ/͎#.;~*_͎Joㇲd6;~(W͎Jo2츖(uʓooKo⇲$6;~(Gώ/Eˎʐod&;~(͎Jo6;6+~(yώ/w͎Jo2.;~*o͎Joㇲ6;~(g͎J˘o߾_ +C.]{l)_sذQ9ao|qc9߼ņKkn^׼M6lM9{lػ#_ذEs\|cbå 5y k=yǗ=ݎy{lػ_s7ٰu7+oy7ٰwV)oQdž5?y {kn׼=69{l;%_ذwH"o$\dž%x{k׼=69Ǜl:_pp|5cgɆ&Ɇ5x {7kn.׼-6\'_sذM`|%d%Gdž;5x {Wkn-6\ _ذw? az|c+dž5Ox {wk&=6,\M?J|T=zF`4X3[y8b(Ww=630". ۢ +.-W+~ۛ +.W+~۔+&ܛ 2ݷ#~ۆۛ~۫m{͊_v~NJf/[maťjo{laťjokaťjojaťjoic>{3w}߰7{5 ߱boYXwެe}Պ|kŊ_w~ÊKՊ߶~ÊKkՊ~NJެkfܫ{͊_~ÊKՊ~NJf/pcp{◝߰i{-߰b{ⷽ߰[{M߰T{ݵ߱b尿Y˶|+.m#~O ٫ l8{?>\mҵ{6\u/6o?߆Kņ6~koнbS;kgXW-9ZroGyi֋{;,]Sw" ;}{ ~׆͊wxA=pGVT/SVJ7 qSf;-|̸)Uϋ qSZ;1Ab=Y?(xvܔgxnM?vvܔkdnMنj3n7As7㦌4:/vܓs<Ŏ{dvl$6;Ab=?vܔŎ{r) ϋ!yLD?w;nEAsl>w;nGAs㦌>/vܓqSV⻬n=y7e&]_''6+nN|Wݬ)?]Ht w 07AYʡc[EC/-d*^[rߥB/A-يW]z3_oZ>C,ϲ_o[3(V9EqJH +_ZơGy*0!<;#vbDq"7M,$ji&Jjooܵ??\>}]G5*ʿxk=/oMo/#R! gkh_cx6݆_Oo-o*kԧmmM!1h%BEs;2J٣?iJJOGhx_?~6CI@8jCs(+h( iyU_[ZNkGAǘ sB8*c9괽1ںAhD=x?͞o6MHnr V#ۋA#Ecp>FZy{>tAQi,7(8ݲ|Kbh4j1k= <|Ys7d~! FzZ W |~zuRԄLsF[OF_lӄ2I}^ |6E3}򆂽C-LQս?¤9j5$yp+=Q[fL:-) 9l5+5[E|sа0jT ii a[]HMQ!9»v䯾k~khA +~9n9!9ߪs,[Q_J _VҼ"rHQ|L)>ni ^YK6~ZoP,-m-y>tt:'O^3BVc9joC F_󡳊b/G @9!9i\\)dDnc6d"ZxAZl:/աTsjuӇ6^_Cr?tّ'8Г3hhiFisH/#H{kӨmV_i6OF՚-6Kx!T-xB<ӓlcШa"YZ2 +lűԩJ'pVhX3WT Kt9VT:X,~dԪjRYte<ۮmLf\մVu|mOHCKƒf4I1v)~hǮwxxj;吟㏉e.psVcS]9SZsYU%(V\s̐!H2S"MZW }_UZ(=!ڻ^[AL:]vh6l9 +jD'~55H]5[]$y-l<4MN( Rcѡ'4X JhTPf&$GA>d|Qc`P9}slneu S8߱tmub8ys4 RAe0HoN 9Qudz>fѢP+AC@rCݱƦvbOW|;% VOloS5A>7k.'@h]E[[q?0䫭&bŜHUM2 qR#0r٭Nt% ; ?E7GFCXPPV{b +إX RdS6F;֣`%)!{c5H?%EJ oh@g?>NV{2>6-X˭ 1EM[]fg_͏/e5|"(R|CKV6H]2?K!.E f(ѴxiEPkDA][΢"%N:4 P|+RJlj`"oTa M }B`*Sڮl)Rzzv[ +BXЎ i[F ?FEђU1e\̮:';~OC/ORvr}P(TG;v)Tm)Tb*mI,i23g{lfJpArGVA_.,J°ГwDа*@m b`A +C.q.ty}xrв +vKe9A plꊚa N`^c5j 8ʱJhrz-nF&ٵ> SHr]=rY4a嬷K9)X\b@hD;>(#5ۼcә6ux$cZ +oX }"G ?&;xK݇% @]s\ik?pKK xxV[۠p!ۭ%ܱaCݸUL`\@)Eŀ yJD4d.HBh?4i W5/kx{M y\H.n:t +**H]'j3@r3A"dLjO= *Az9g*Tb&g$~rFZU^GG*dr [rE5n1zK(:u3@c)l'O93PۋF\."C#@&7>aD%cf&4Ƞ^Fȧ4dVrܹ5A̼PK;}y8TlKN@r5` iW,hU/{@u@4ϊvt9z mzZ#ɂ|6 ~Y@AXQviB]sauHN +"=b~淬=ٻ,+*[{rƣTTaen BBD9yahVM'xic9 +>atʷdǑ+yTyRzDvw@dAE*v,-w6ȐEfM%mnW~("wj'u'85Ы N٦ 4K+уɰj Z5 +{Bk a$sr(d 0;Y?*̘aHa +梭`~+VS 6f .=6U; qhԌGl +Q9 ݯGiR\[FnhDN[ oi0<u8C["8s̮Q8+I7-sJ[.vؓ9zadQ=}9sXQCn gSM<59&IZ;-zIIſGouLNzs8=k  0=da= i˹{7O 0ΔC +A ̐V5ϊE;]ͺv(fw' O`x1>  b&M<_5%C+ɓ`|9yvJ!E 6 #nk pn!7RXkG J9&`z=7hEm&usR p~Xin;2GȔ +bfS90W':@xATAѠ5q$%2c=\!x+1XyrpOO +NްsHj:B>m8CKi鉭jD[X컵i$ wɸk-j= &m@4~d-i/~d0^\>yƜj\vl:  `r _ +պV0!>ay *iqjĠՑ H{Sȋc@jkIys<|#Ȣ+*I o>QI5%`7< Nʱ%z`PΈ~>&GVvX[=ngX/d5ƫ&F!Kۧ>y96U6ܧ٫kw(c/WFm +߄)yXA70 PK8D_+*4A=Lr a =8-͇\-Й+1^l9X樞秇gݍ 1iG//[05S4+T8!q`ȉduBFœ0J< Sfae`b Ŭ=f)Grr Fno ,m~w6gc䚂a3qR3ʡ2.ސcFu!f/CE(y^"I͉016 P>`n\(Hʄa04հA|GX7>hٹeja,e/6K_MmFy +RN318x@^T\0D$:׳61vͅPChXG* d`MQ49lmP'62F2֕<) +"(eO-8D5_S +pYҌQY[?{`K[+o(\{+h=_j7!NWi t+6?m Ts^l;B wXNXc/a$ybHZ { {c!Op g "T +3C,IQŸ΀'[V=UJVHB_~QᬊA{z}bF݇ϜA ڒ꼜_q (ߙ!yB%"#Q+^s5Ң;HҿM149$yaQ^bF~vAJ^#y9:=dSa\#߃jDq l"=FH83eZ+ 4B>0 > +>XTK+g4 )5+ #^q)̹ Kn&'Ԃ< +acQ0c= UBGxr`H|IȂJNYo +8,aW} xsqooMeqhN:H+\A>h:Xl\Ee8S95`,EpLowh~_Vo8G7zT0$wcmxda#vSκrF5 :[_jv9<qUoHk@EZq +a4=Jҹi\! ƶs1I'3jl +rp҅iI6W0#Rv +f-U^VpMM$ϨTj7A~͚oH\ { ,D漂k)ƐQ  +|.0AJ 7YM']^cV+pôC=BS;z<ͩٙ|S︠#>`^CH.avvf~)Z0z3h6yf4h%a} NM~F/ Lg'%ј6{q߱r&١txñ@to=Kkݚ٬kvhM KgagN;bÑڍ" $y%ыȫ=sZyd+[B8C `V37/Z`/#y9O^X|0r}|f{>o~rS\0N$R c~FnXΖo'A-i*H{_y/@&W EQ6phi_87>CA}QijXދ~F4 +bwP} sK>$_għ55 +Rgou@|2կ6{2%%HK%qw0 +O$,-:>%\g m{0|; ĺF{%_8uFi=@JNȸE93S=ӥ4dS+XkqmzZ_ |2ALJg,`H#?ҳ` 9ZN9&ʃ=?)pAzpk +?nO2ħNuμ>#a&6?pL6Y *y^"z4ۘ{}<;_21!5uom/N$MUW3)b' y52LX߃Diu+mf m `-CpBpmrH +s'0^)lO/W X>o!-X׊;o!dA}k9Hvy S4ĺQqICx~Oל~YD׋txB}>P3 n`qH7OZ.d3lդF uN6lS+=f}>5_YTú53㼁L {i4{zL!V ޓOiMGk׳8E'kDfxZS;ɁRڋ8j樟W=lo98F:G`XZl>/mbd9N8XV)SpV b8^;) s' QOg{ȦṻfgvO F=~.673#S :S-5N}R?WpM2,vdT\s:pL +IڻB"XyNyv7e5R#Ny[{cғrꊆ{8o~t-1g?=Qb) @x~l&atӚtOOz'5VQO?Hx:_\=촞( +}>OрyU2ؑy 2At.lÍ-wb$=Lħ_N )볩 +X\ N\ߤz˜nm1'fC$r`]FcYuz%z,51Gx]7@О +y9'm:/H2]2l+VI/4p Rl~GÍC3$B{"<^W_C~?6=tM-N,4?:r2Lîq& +y c]=e ꅥ`%Fp=1  `}߄dˍYf*-͙x!G! +>ڄ购w0NL orS`=M'~4^p.'=ӞYU>W_0Sd:y=Y|bGnr_Qa<^*\SBwӉH N:ix>!ukc/Qg,8c-4܂g69Dyd>iZ//8\ ђ&r3zO/`ɯ; RC [-[ ); RW/i%/fi 1 7{}C|'HVz XӼވcrg^=: +a<:R*~'ue޽Y|ΒId;Y,թ'VD7)P@\&|}6_bOoSk6F jU>Bx݁b_Xw^~AsW S:F%aZ&섺t@FO7O:A;nrLLnٟBAz`/S4xrWXw\7@{ޏP;݋;a g]I +HtU;, ЦƱqj/}$u:] +T +.رpE묗hjBR1 p6%.y^+*?d-.z*GX%V1.ʄY伩qDbc~k(IT'N}'Wnc\N-Mj,(l˪NU+Z*ensCXeA#oN.Ej긐eeox^řVa.J2m\`hHsQ4~γشw\ĹPታM˪Q)\:BSw|%$KI>$L-B{>DvQȓ NdnX{tY)\aSB]ZQdR孔)[HuEkmZ"nE.OgUChm_J^W4y?7. +ܞhla&ej(P=Z%QlkvY4%Sck2$|T4NL\kͱsa'x1w.< ] ]4 Ӻ%lmƆJٔtS]*y +>}6.zJGK}WSVi#]jĴL-Uk:ؗv}'l]ԩ$l]DIs&5,+<{i|ZMƼ"1Ud̗58R_dl)D5} +JM^ԗ/F[žl7iMvtPp]4%}!`a]._*Za-_ _?|ZVkT/uyX~YϮΛÄMz5(Yo1вiYO2ghxY/3'ѪCP,†ˢeӎp270϶'5jCo +`8tHy.fm#| 0&M̚QmTI{60kzGKbW0kՕE̚Q͖V%0\nZ_fjYA)"Ytoj`ްZEB}Y{DF*fm}J-`֎\7I0k F7𫜮YHZO5U̺M$].nUҊS6Y0XkI]u,ؘ& F|Hi"  l{#o}QgCF(.QʃQ03UY8WSk"ٽ|S#ӝ6w48FUHA~t +Цjm*2a|E¶ +qĄ쾼I_ΖVVtd=Pe K0Zgʳ'K700r ^grzJ610aS^ȈV8MUGTE\W)10ZsɻNobb69"EM̲- Sk Ye/v#-C"(FRK-b@f{\$3Q,6Hod_VQ1lMUa"+fy4GZuȿxjʛigNz#,]a#(m'XH8ȶb&+E̋7a1CsMXRvJ %:R#/e12.,6i/=.bÊW6a141qlш/Z]I.bJ*,fni,{\4!D%mb0!_e6qjQG7c".!컈iHAu-b'*.Vmo'tW+4C:a{X~qU%kvת.Fi |wuI#܇Ʀ.8t Wu1I1>@7qhAt▛X y7}wq1tN=b)i8q+5@rZWZ`#Ž>Vi1lEҡ**-FOSשHg7i1dߵh1*ϙ>ހt#q ;ob%#b".;%NYȩ+1bvbZZ /Y7m1dྐྵwJۨJ~_ VJ_mbӴ7SA-Ɯ);C"PȢ-Vֽ&-Fצ*-F%Ɛ\ +KZd-yg+uޗUZX +-Y>^"-F灲OEZ;bd~*-Jbzc5ژ3I|(ф^~*A.kb"lXݹ)i}YeŊ| +7Y1ra+z;\T`NO`zqA7Mln{jؗ;W=18'ُ591D.?.bbA`:]LϩJBxд!)e>Sd[ht%Qc7DXz|,71 +8~7C+o@xq7`|r)ŴJek:(x\hZܑryU@ (iZÀ:oa#Wp8ȇpDZE= rne "!lM; oLE; (R\g>g9(A:xpP?ĬpE5hAZNE3̬@sV0F{bPAʇ*^{f4/},jaxXE, ;u֢fIvM*1Cýp"/0kMWX{脁YNSk c@ׯSkQ g60VaygaK/ +a,I̐qɐU m-`Z=ԙvU3J֛4 n0;(JC-歛0k;#(˪ Ǝm)I`gVU0vjNi" +M4Hmh ᪆STclVK;jFWZ,E;UX8 W10~hYsW^t#>YHEtB`-fꀙ?ȀKejy>y=F }Piu+ݢFxp40Hpz-&F?~_{tZտEJS7/zГōߤhM)P(Y3 Yo N|~Q,_`/~u~UMn_4 V/{Nka9qEΕt+Tex\4<=/I~YKzKUE#ွU+m +} Wq𩒳}(ZuM Z/QkSlQ"ۚbhZ܍ZtiP*VK󎤫Ɨ:>._,"—= Y_J/bu-^{i)y^^4),m/fM+Vi/RąKX-^!nc +{߫V EctYEԫZa#<.^@bMzj3q~_r^5Z"<.j^yP>*慔6-/NPH?MʋՁoJ^dW&LGɒU#[d8v!Z]eUbIN_W&^s)JDG4XmXwjF,-\c)p2ԏwl +xqөwHQsdOy?ED#x +tĻ3\q ܛr)u~vbҭ~2nK-!vA"#lΰT[Pbh =+6.[ewuU $M&=bki^Gڅù&"Œ{\WGeκ\/.R󃺤z +yĺ;+lՉicbԸomSbNK24qUU&])_U8oZaV.R +~Ū5J]7.zmUk=d[8SKe/5M5)4Eus=o\Oe@Vq.e=^QA4m/&5KUdU +*sAn2l^&4˩7i. +g7M [&֌Y>HsY-Ǵ[bwLE ȹ,\;w[Iwԑ0u÷M  +,OoS +?.\a1/Y.wdFdc|傲Cybr-M p)% E.L3tzP:4.X*  *o)rrAWrYm͘rx,0ޢ5lrYq1U L_"6E].iZQSz&{jURW].wg]o\0bx' }k9{wVe.؅ū5\0wIstT,o~"%4ɂrm\1Q18<*VY^4Y)sYn qQݳ*KUd(^Is͢M kqQKKebM +f)(sV62ʐ:"X[K>qb ${Isd:yiS悵\U+H&i.Դj֛4d悔8{W(sA:mm\)7fe`pɼ*su|wVa.D؄zE <~LK+ -\)Nro\ͳ +EBt 7].% =6a.w1X7RWa.e}a/e.m(`o\V")sY]oX( tE lTk0tb/e.JKbpX2)F[2Wc[kNQU S$Mzo\CmݴPބ6`٪E=ӊ6u.ꐠT6u.jEK?\DiI8Wl\`awQ7u.K̦E~hs u.0:l\`'R,5乨i#u:W0- ?,7u.0žYչe&z\Tiw>EJ?a8.\`dfJ5?hzosQuHTRMBF~!7[mtEHtJ~-\Uf`L]x̟\\Ba<^rD7y.*Fir7Vu.+$آe]sS/EjXfosQEKW(sQhw]ŹEr8`uep&E/}|wq.`9#WZŹPnI/\j2.y>OvuZwŦud\ئvs!(ҠA v'xW}.Eyݞwc:6.Xq>_h݄NÛ>gתlvTO /}.:7!1|]\?KRj"rxn]M*-. tQ\Deɻ_a;[?l]TIԻ@;>eV`~)L#W}.Dejp\=ORq349siq)5Vh2*ЅH@j&e +]pj袯TU碫S^EIsEc[#U+Zs1ܦEwy. +sqLw~o炠NA}qhJFȃj7s%RCî\h^?sC(~Rw}.sYHJΝMζny-~w}.„>UĚs\ɒ0TVy.HRΕM| NmMJP= ks7cpV8,&i#gɝU^LQqUfl\l`M { I\(P66u.@:sf]K|82|qbkkFľĹ Yմsh^c6Ĺьks]Hu1Vq.N)]/?\Fg]m/[%sAsCc_\SlU炣b3`Ratņ<%l\ҡtGVm.dPG0ztN̫6g^JjY6KsUzMU %/ѕAVm. [ \䯏g]tWm.SOĦE0\<B4Wt6M I\_6i.S4yWi.R43bL4S)!ks9E)|ٔV[vb_\_] վVe.h$X若Q>;\DnB4:. +-Kt]MYgU:lJWZxpy*\ ?4@y\Vkl\|j\t{6Td\T5&8ڵ3EB&׮uP_4Eths&ئEmF~[6W|zݓk]|V^(4o\8IsQ\k:6i.4^r/5GȰ]h7&E(p}M^g듋48"ͅb/&X9z2A0}h j70EkVm/o沎Z?M]=:e5Ijn~Բ+sYTX*sqf2s2*Weai2?z&ܔ+.sAU”ʙOMk.dy.0Ko"oPgkv\zurە}M]lm\iQ24x'5SEr$m\}ڔ~rU"q.We.hh .%*sQγn\4HJ\vm.0β@n\^6agoeuUZ>!z&eЋ*s$M%U˰/F&eX]h0uk6i.= ,\})o\w*eJs6i.0N)&eB?s] R9'ЪeԦx\ \Y t۷"eЙqhsxksYXd2̚ezis|̮\qm\`0-EˠXɚs_ +]˰e*Ԫer.sPC>A{2{#\q&eX?\ #7 Y +*e<ssdZn*Lq2'/չ zV:al$.fs +Wu.fe΅/M0[Wm.sq2,] J\um2lfٮ\`~,Wq.X*F?n&ea:&>pr@AɎW.0?g2p~U{ 2_e`]^+VgU.խ NX%klonF=@% g&84dULn +]aZkYpx`sVm\ǹ@aTcxM 6}{o]E˰>[ *= ;^G@֛BagV儥~VBazr8(tqab.ü2q2(s"e ."M0v2+n Ñb@@Ix.s2L.׭/\Ơ~+ɏ>a%yE0"eL4S&eV*eW&FѦآeze־\i2, N>X%\ KM?.\s;E0=YsPsDߛ:o\ il\-} ~ntfa<.]`?.]\K؎u tvL@Xqv.f=\e2+isM 9}2E>\j2d ]`:\. +t:U˰CE , .rG&Uk\xrM1lxM˄N1MːYssc[>=U Ձ"~߫"TorE7h6|^:#ɦ6ʑ_:""Fes7'A\Ѵ=o{QֲD~D..sjM ,L/|:WoE LQD\ԹxY/!{nJ]`S na S%9Ȱ‹Z1gOMv?g^%^]VCUIvYM#4v8E{JsT +rE R?cQ]t@`vE ,/]8<$!KFtW4jlpxE ֢F!E Or^ڦeՒ0"&e)޻ƪ-1*iij˥ Z$7&M6 /̿o"^ [U8wy"{ңqxYT hƶW49@'eQ"&BU4:U^R^VUiyYIq&/"e|m>G"e0-zu%E+ZNy^`lQrS"DT[$fpE+Z1KfU")|xM֋G1~&/gSo;~\87@xI{Y?dCi{qN1"KVu/L(cFNv +|q +E޲cqf wM{;V 0Cr>tD>~/vov5D|iA˅?F߸|ijnw7M _GcB"}QFߥMԗ^H&닍9*oI-WWaFLƘ/O_/o-^"}%Yb.dxY~/UvSr!<et>vq'ﴢq7n/QD0}_-38cL(ت'*U0N4viAVVޢr,ǮY" \Uml?2NyLqp|\ug瓝KoUoăiFX?v)>;K|]8l?}x~8}Gq?܎G6¨/A¨3;?q S'&LC ٙ<-d'" +>cqZ0_eU +ҞqLQRݡMVGy<ؿ`a} +&-R"ˊS( +#{aTPsE LͯѠa񰰠Mf?1yH/gFTOQ0E= ӀRln$aZ?7ٕ0?G8KFQV0{_3=Z$FY[x'me+%@2 +0c Fex>KzL 1;-e7=QnZŽMe|#![50QE6 1D'7E[5_ܦw}:.w56Oi&[Ĩl xvĨ0pbT9'iקZV6b.u'R۱脾0L1y?hB(f $b* +b_6q˰&?Ǹ<Y;W0fl:dQn}С/?%̻.v* +o /F§#6c],`WʗLQ+1-[dj*+c]ƧQIJ+̘ԁMQ!3FhwKehXcYHKتg1Yʜ25F.1.}L֘֒k5uqIX@h\fk[(L񫛭1v_bƺ +6vXƘY0G,266֐Lɋ>1+o[1cc>!jn6ݜn,cc-Q %Q<3䂍qx?dlOJ` ġ?2cc:i0kco@m8Hâ67 E&֢q(amLç==kc: E7̍I'`՟čB]U712O_V 7[$27Ƨ<ҕ6b 06scP7]Nײ7F/~cLޘ1F pLS)cwjKP_eLE썱~ +獱Nc7WPdIcq̬6Hq+1LrO1)ڝkIuy>{Iӭ{#K -XǨW&*PTΕ +8a1i fc+cts c DGpl>-:b7gqOı]]q,gq}CUIyc}$QuSX>[ D(خ^N{er+gg~D.r8wm"6b&rN&@F {<:cl3c-۳۴gȉD1Җ)r,GDmYh^}1&Vd|_f9c4XfKSo-v%rLOQ\1_Ǩk\11@_ıM?gUݳMcdҋEmUq᪎mYbM此 H21zԿxcxfm1qcAܢu]EBd6q5GU9*IcV24Ʃ):c]#׋1I٫렊2/1 clRx_M2edc"͹dbOO.XPq! ##clEm2Ƙ$ +1UʈW$^Y!뚎6blC3K"}ȺRN۹b<.)-TXMi1m8=>ѓ,F.[XL3@y%Wkj&V UzOc-5I(,egۘlq?F^&Feؙv u WY'Ƭí>m<4OʲYhKZ01nnٍK~=SPba~zPYJ{~Β#uly*Ab]1vt;|ό]X\<+}zĒX/dD>g@a #{ߤb]gBeBN?a8ճ&?,ԃS ƌgJ13f<i`)a4sB1!,iu *n7m^$7My?S6 rh|u +c6f te(u0i[>wȰ+W5fb'7WxFS c۾E…u=C&&EiV\rZMT<./Ran(u̇Qbhbf7’0ÍmBˆ:צ+a`Tu6aD+BQ؟/1dy^=`Dk 6`}2ڄl FR 7sf4j FD?p䂂}`::֟$`"@sW0`DBWEY9J2`EN,XװkQL I_b.S`DLH`<+WhU7hvqT 8Y#Tkt,!`D6WU#D'J{ +EB +EDvXKW+bѣGBuzQgxa?w)mHa3"ªt AeGmy\E%# +D~\/cj̨_{C|\F GśX_d;bWJ{p}i1;_<`@P/:Ƈq3V/-x8?EBE3w[тmVqYE }?5x/qwWxq){)b~ "aY|D{)۷,{)`Mת*GM%KhV"b~X/EMzEt R40^hKתGMUR KѺ3ZMѦ6q^J0H"˚?_¼Ogy)ˀ+TDyn~*I^.~RRBW5x,'N"Ȇ"V>^/gK.WY3R."f x)9iBRD;RZuO5=w)`*]xxa.E͝] +OtVE|o7Kes|y]m'|ʬv).E0MfUggK}uF2٥>]JXD=إh5=nx]:gץhE:ۤu){3U;JV{ww[եb $u)bcxRt,1ަH],kHPVˋq}P"nӥhFN.E@˞.жҥ >K*rQDt):{0ERD.tRbL-2\t.%gu.E\|H8%0bs)Zh^~룹Q+s9F@sA?_rQ["\84j].EK'r):s +M" S&& OH.G瘺J""Le`rv/ZEZ=YB,.G̘2S\F0K\D KVRkp9b앶>r \Dy9pbp9c^J!O.Eڄ#گ6[J7L#>x&(Z)'}qu[e*[2*xDo):۳?-GP#V0o[gZf-k|^c.baqBf=+[pg~-GL-GK{rKΟ$U1HE>p۾S-GFމ(ؖ3-%j-G;m9HMΖckWbYr4SgeQ6,k[RDu]1[KƟ`4zx-G 9J7#Z:]ZN86Dk9+"CCR4m8Qd-GwHrrijEZCj9:J +<*ZxlGjE0Zzr>],VDKpYre.y)#T$i9b$i90P k{rDQ$!ZNDt krD%ꏠCmoZ;gE=ϊ(Lg9YO":+?rv_"5>7h\͊躯5+dr. ͊r!j1"\RȬ~Ya)Yd/+ +Sr2t~2RmҲ"ae,+e*YYMTVDg+IY.r4Kh}LVD +EɊhsWA"Zࠒh QY+dErR% +󰋏ktd+5 c9Q]t. +5GƊh|m"Z|X`9s1_XW}(VDbbQ""Me+刟M>牶5GÊ( +5' Ê^6YXs(듋5G Šhq?|q(1Xs,E[%+-%k2sſ_F~g_џ~5' d_9/L_Q(Wi5WSثS(WGUɼ?7ȫ9J%*"w-Ք$') 9W[R\Fr5Gɸd\q儉tg79JVst9JoV]>/%jl5Gת~JӬIZY_؇{⬔Y9a XY9Qז-+%3/)+'%+'cj0Q+X9LLb0vVs *VNqk)Vx~,<%Ѧ RE_hUDn"B*G<UHv#>裫E$W9ڎUN8d[KɭrCKS}l"!dJ)V*/\*E Yw*Eo U5U)Y4MZ#f}wN*E7o@_IRZ|5*EɩrDM*1U8ڄT)a?z6na}dJѸJ UhãUx TDOhHN?S):WJ J mS5."}~KZG",Q*E3nIȧm"6TpR)bHHMpdJxݓU4*E&J`)*%$Q)B.1K!*SPV ChP): RG@}<ԽLe@ѡPDdCyvM4ԭPG"CqcWF} +PD<, E4~'ޞtZ +E5Bm$c]!F+f ƍa}Z$቎`ǖQ:mȾQdV<;1m&;pn7NIŏp'jvgcu,;1u*4j>Jep}goA[vty ++9wQ (CTܷ|7ǟɸRƜx\=&rbHŮM?(>*;O0WHJ ݃JO7VYqԎ0,e>m2xWP|'ZX<'Iճ߄/E3ܔp&_gԹg%L$*4i&"FLhSi&I㿃J,X1D27.dq|d򋫛fL&rC2t I`9$2Ơr2}`[x^M8&  +[ۤ1]>V1اt-&>un6YL~;YP\(&y<%&3˲.'V ̆΢0qǓ $C K`4W`f-ݷ`So_4k\a7&[|JU%4ae|I)ۜg{#)k&wK<-0K[kmrXѓg.|9.Teeo.!K,c\% a+K{ϏĒϿVxeI֖x*}Z&l֤3Zb/r vo\:!:M;"\,ѕ~UfӺO%x z ThXمx`D,i`E D,1k|( K 'N~%67m6؎l6a<5b* >HITb撾TeL_ItI%j-t?ӈ5M!ham&m<`)J_WM%-O*Of,GLC-ȗJ!m%Su۪_SY@L +d uJ'F$)sTbEKK*wu5N24wmD >[Ml&Y(s|wUM%u_T4m Sһj@5Cc›TVy1CV}OlhJ< P[jJCI[ˎ+Tb!H%掏I[35~I%J` R;m&(uٟ4Vow?R ZA%mRJ3W-Tb`-}Ξ(`|\N_@%jP*ɢE(llܗoT:ˣ +DE 3DAˏG I!xW|>D J1PJa'>YR=DAUE%Yz0T2$v1&[IeOLL9Mk9=J.x\敄8za+uƵ:nvX\ݲD}v DW}6(`|,Q! ,Q1K%XֿBr(wH}Zy<IZze!fjp[_Yh% + hDɅ;>v[RQVKgw(UdqZ`JDE ઋDIl]_]Z%qf=|].u]] 3K]f$/Qc@ubZeJEt$\%U;J/`;>z5K3ؙAҗ(3-ډ_`<|/ 60uO,R& E~2(7PaiQRECj0Lʻ?SwٶׇDvBQT~,1QthۃȋDFq_7O ;Ϸg֘(JXEtј!fP 䂅ksxLD~: A~!*eD6x`s$I .d2QЗO/( ͼ*5 *Љe>Je"c3Qmu0^rJCR+6Swꡢ gRE`+:SW5nىgꪄk|&ǔQ(/׏D&&b=?ѲDvo\{ rdI5/19MTNCtzoؔnE&*݊{&oBkR9YkZS?_/{Md2h6Qw1 6Mдh3DQ?1誘MTeP 3MD&*6:A6q +,%=RZ(1fo?rNwM*4?4nAM()`↑7+ߤqF7=*(o9VrG/ǧ>{V2hND 'mBȐt +=)Nԋ0@.I$<1NTg}uq",/I&LM]r"z&dɉRCrdr"cy5D! +O "c?f6Cv!&ЉآeSqK5L:1AVÓfD ]2D%i4KdCX'I?kI13DFc";n&Fv"c O3od;]u&܉a;m.;і2.;?80.RDtxDvzDXE.Od{| +^'Jyؖ0MX.1Ҩ(Odl>/5@1qqɲy"OCQ^'c'U~=m@uҞKDQDMȗEE|Rxo|M&J'UcG'2lVMj'*V5,nWNSż$?z +q~|j*]AQ'RS`'U];M៨]DFUEr-MuOZ.1|+ǰXٸ0 ni3H)ջ慑"ij8RʴF#h02$EFmf"I)$ӟLIhgU>JJGKʵQ:iRdKs}I)b3pRJ "c;vMd%RJ3$z Uɔ"Y<"R:C̤J){;'VJم YJ'N#*,ERUk6Rƥ %*R0Νp)2Zm0&]JX{7x)e +RqZ]2x0I\)Ĕ"7'Ɣi/KI}Ȕэ$gfJ!egJ٣!MySthRQ=)ecRF=;Ҋ6F)eVg7VRGǸ'N)^BN) I#9rx7;tJȍN:Q;Ɠ%;WE< mdXwzJ-6d{JYߙORSG 20?AƝ?LmqP)]*e7k*Ah|ե7T4,˷ X*gį(T"wƏ*el|-AU Q9{#Q)p5)*ExL=%J_O]=XFlwfJg dʙf9K {IrGRowq16ͱXF r'URO*,GHmr}.L[QFLTJNMfMP3Nnaҩ1S֩1~I橔DyX>SC2T){lSzSS RlD&xL P(Ud_ +UVQQvRЎ{*e~+L3_J-I +Tf$U)%,QUULa?X>iU4d*EspU\&J;~=\*g.hYE1{:UVZ;~eJ^*EoSV9&*eW6ULr[ mq8ȂW)rW)E'r6ަ+Us\&JٸneJCJIRM2MO+e +%mdR6fe0fEDy/4+eT#aV%JY>g@hh׬NIRjϘ.\i̳=~P+eYRRazٵRxDJJPW(ZRƝ/V|l[)HΗ[} &J٪JƘ03p"W,\)QߡD1=jYAh'Ǣ\)7Ir[\) -.ٹR6~W;R+eۢ`+ePq])cgc +wEVwL})&JտxL(1"Kb^)ƛ`*Wz-kLնrTq ϙ+e\.G"IJ.WJ"_):w1S+ BW|B R6$QX+UlzdJC`W,2<-2n_ $k@O6w2Q=@`4,%j ˕,g`){&KәfŜ{!RFsLJa)<C & Kmȸ"kfF0OO, "bvz~H,e/b1XdV2i_PT,e ,ZeO,.f}Xʘ0EҔ1SiMgr|ګJ6p±6xdJ:u"UKfRig={;'!LWsv"N?4҄YBj7,Ư,ϒ,2^.;YdĝnB*P);H$e}EvtҘq\ǟ,M3ez"AW{,F0poz6Fztv,26Ү2q6%;3%YdI"ag"cun֦͊MŤmȐ*ϸg92Yd;ޏ +vKgmjMxn&z 'DLIY-2hnmr{!-VϿ+Ji}E #'JK:X}ȖzW1-(2˜5Ma#KenE{B~ j<^]._D-{br4{)9Xgџ?Z46]1Z+ +kv{$dft|CnҠȨ}h"ڎH=Z<ũEᵺ0Dt1FR +gakˡ6[\]%y`Q4=`--lPThK/E l۬nE)VhQ>ۄm{-꛴-~iEsh2}xfx,nѹ4V)[%rKNcFR߯[dvw6ut)FԎ !6[zA"+6Eg=YoRGںzu2[d[1[t]oi/զ) ppwjZQLpkGLWWHvo+}cUr`rpj8>WbԢpyю_q#2D%.u cjohY: ,@:8qХh6㯚.Eږ.wJa4R.G" XRha.Z<0]/ߵ3[.2#ݼWYqY_듺4}ɣ:[]D~gX.cѺhԃ6q]d3B.ZsiS.Fg<_RC!K;dvISޕnZpmRZ*Yb%uGfʣZviB` "[8{~ʳy#s VadthlaPf$GΟgjT" +C,]X0hi~v)gKQ=Lz|Sb(bsK֨v0yQ0^{d 1} +Wh/}U ɟH [uu.>7aN~R茆Bq4wF '~YV|}[U4Y 3换-[*8S;z[Yg aD#f>g,a1 xudة3+{~fBlav!Ʀ!fwq +")קIcfg&̈X/{m$1[,|r(12s#%FFQCJ;{a%Mb%dĉL0W6yb(y/(Ʀ<#&R}pͥA)Z2bsLv/*Ɔ<.…F(#ĞEq878K H|Y# 6b"P +0FF<rDqi_68ba1cxlg$#ci1rYhdfLGa0gglՓ&qvgLlE #WAm8rw89d{һc}GUHOLGxBy\1gTF1bv ScNN-$=^B-#?Z":P{13h]"=Z~ECƘW2ID7Qc|Th/OJQRL 5vk}|ݲ0 J͌B!KxEP1'|x.IFhG|~1q\1 ?1y7AsMԘ+{en ƕRP`uOn=)'LStU8B[S\|)KcqXOq?^svh\gPH\mvv zP1AxgϋUUglxئyg+;c⌁2o2cʭmrTu훇8g.0QD`hQr$Km\&gRӺc9% ~X*+Gƈ[XJ#8>Dx hh\Ƃ>hlD'7whƈNWN/#x|~1}E[Hn dw좵 ,y'DV\A%h*Oo+)Yq4x<(Xb%/K3FD/9ci(-;c|s6"1+p)$1ϣq3DŽhטg_q܈.ON.Esx,Fg1.'<ą!Cct,sWIc&{zx]<"M<*mO%fz6)cc c^ +ӟl134'^b$aL$$ѵi  ]x y1C4&]L.׈.7eU\6-͓T,2-mo,v?JAccxqs{,f'lȪإ]6Q1~dl]j2݊\!DX͢mYɠ+UȞm&,m)',Db4q)1f-1Y6}%FȒdZMcZ D#Jq9Ĉ^?"vDgs=_1t:!FɡIc);}1&UX2%QGvkn^Y0M'L7va7oW9솑T?0G{8d wd^Ȱ۳)a)1@nLR20Ht?^6 8\~0 Tj\_/K FD9V.|LxEI +}w,Rgd8a.!ĿVb®'cE C| p}F%" +A*e!Կq;?#`ză\ǃ]{Yr< M8ݏ ƥ9c2c u*`GƬ߅T>I+*84f2 +&mČ}1ŕDK_o]_,XgphJ&y`fExh@&L~10JOX]rD"]m\Lf7H+I`\5?EX3x",9`< 2Cd +>}}^Mo>/ +8K kƴw>a~('L|"<%``1h$6v~k +vy3+mŬzC"3oס_<߱#ׂb+Q/|'+8^שq}G!_ft/F_;lR4)k +"0Q&N +~,-)?-qf 4,#^qm"SϏEv߼B!9]p*t,eKD6;]d76E^M.U=ugNƧ.UYSl=8]*Z;Htkjt(ҥNtdoӥ5((L +6z7HL +5L*EaƆ5t OcLmaTw.tQ7Kl{33]d.ĉRuA?C(rcC@R1xisfrVk^ӥM tSLK8tR\ӥT͖颠e&Bq9<̴0]D[8Et^w)sjE/QLP.2Ǜ:3]6C/KLȌ]PU#9'j(33]d@/NUtQmytQ͢\JN X7(ӵr^啴Z5`Yr(A.qtQNt- CkZOyLNn[XR'mMN:yͽu Ehsnֆm2E#0Ϳwlvmdv=dvuͥe$_lv|&F :譢]48mڥFT7]jŌvi2קvFuMj;<]D\Z3E0;WB4eA#|h}ߙvi_OFQF=6lKC$oya^(^S4J?w=hviF~ `j=Y.Z ۥQcE\.ڀ;ð.ӷMđ w#̧h4Ӟ%t?KsQ Kp橌+n/pư;O]`" ̗._MpG\||Mb%f$0 \wwMlfKswc4t5OlPJ. 9YMٮz VFv5Ec1CuRc"h*zLfbFLfbFA0vC>]xxah+t9 El4j+]tڥcv=bvqvcXdcA/kU"/'hG'l$z-E[0ͤF2}O{E4 $vu_Ů fb±a$v]hEv?/0S̮MnbvJd 8_*]/zÔɮ*E3.8v̮ynld,?fsfy.&rgvpxk2Ⱦci^D+]dƐlviygvQv-z3ExEv=/ڥ)<{]LA@12G3 vԄvO~aL3]L]{&7E$܏Qͮ%.n6P7bmtvDzũͮ{?Rg\QͮEڝnSogv-~ۓZe|SQYAjWԔfjF{n.P.}bv-/vhQ8!}UFKv-Zmjט._][.y*pUރh\jYS8]jcm0]y|joS޿#ZԮEMŮ(vWv1xc*Qtc] WRb5 .>gv1-H.[\<]l?#EmF_ѮEwM-35 eb迕SEmkw68\yGKf-W ,]Pb8.`Z.*y*vp\v=>]R;.g53]j5v.f,vQpŸYb츁!6]VwCU#PgkyNpfaJҽx^>mE< a|cQU.3G"v{.;X b5]3 nQRMh%ĺ]뚷6EU O(b)JbEAfVwwˈ*v Jy8<tByb9=mh/Ŏ`%37b]? 3ʼn(o.3PAF4.nKWke3^W(#V=/] A ŖYGMu%]+q]b;q]Ψ{'$ΈN,\qOẜfL\3C7\_+\KCu99u9.'Su9cHÙR'p.g[.G&Rewr^ץ5U [.gs&˙"cWr6޶~2^#R.',Z}&??K^KMu9-({]ζgRvӘ^cB}슧#qIrveErzMfpjv9bXbrfKUK,.gcAo.g٥+SFwZ\Aqr.gr%.]ʖǥ0WB-:5.=2<rףlv)b{9l.RvRo٥|\^.G +3]x^Y7J0]vLe={eA嬻~t2dvy!&HR.e3Kf2]W.EW4Q.gfNb"FyH!v.^udKeK;Qp"E}d"M>тZcz+], Ld202٥;Odw5oR;8?KݓLv)* ٥lۄRNUK"_.yo_.e[d2tb&= ݃SDv)Lv){6fgK[~<}V.eDv);͋bv){Z'K0(hM#E! T[.ed.ewERnڥH+Y*_vR;ąRwMmW%K5]2ۥl [7 ۥ,6_vik@v):UOo]bR~.ec5^"RƖG|ۥ]'wi9w);I7].emnmeKXc"](}*]:=YUKC)l_cY"nqy.]:`6WrPIj.v):L.eJn`v)c*E|ۥC#.ey/]:(i=.)l"Qmbt,5ޥyZ.e|ۥ...nN +eKu{>W/nNth+]:L%KY]/9]:|dLlZ]a\{"EؖxYۥMv|.llۥ̅?nNZiұQ.vN/eKϙ.[lN߆ĉ)&e.坋vLmG.U$cT`dKE.5.#pk"wEr"{w7òRX&K ]}Up +Bw&$K'uZ RE˸Gk R%L ;T RiR\wFo}T9tE<]8b8R$bU.?1 +B"L6]*ڮ3 +Բܥڮ}2n.1"JǀR)Eݥ¿ҼBw*{UKuQt#Ӊ"Hb +]WW.?V.W^n.2hETʔ'S-t^T "ڥ +t9.^ݥj`5{]dK9Y$(| w1ob^]3],x15 ^DHkX1x#ƑiATT>~?/G':Ev.s/W_|DrTKNj{C2䥲{m7˜(/}奋:xJ:8| "k^]y3q^dާRS5w|]̡߫2 Lm2h݌5^jGMpzq%yYBJ&Q羸^jd{u5 VBt7zlm/3^>iҽi>z)s(YF|m-WwK]]ڤ|$4o|i);ƴEMKBŝ/<\P/C*jyIRr[&%ngK-8%_7@?e>K4~ܧUkv&WH0f5_]tT/ݵ;hKO)K%]uҟCJW$@?_<@g#/^R'XI [,qeƶ(T1`~\-ڱU/~PlU0v]ㄹ`@S!`զ+>#c7|%<&`]BiONx_5`1M8$<\M:Gx%[x0N.ܒ0TY8Es&"!̐;Ӂ} lq ^UJlLJb [ 306qx"`=A%)3D^ +=l[}&,,1#ha:suͅt _m}q0e:o^bz'Lk"t -b0\ 㜝"E |~ٖwGa4v0p̿YIp"QI/qtDiFD\c_0<ظȤa{&>jjQWH/]]IRUÕ}&B"Z/%C~Z5شabTurD'f>V^1Jݴshb,9b6g*Sbm* F!$xpxĨI;8<1Ɲק(zRcɊ(FQ͂GPD1c|&R?iddpI7dTJbƒ*F"EKfIqK̊Q, /&A+F%ˢ_bt'γ6bG0-Fy)퓥bQʬ#õ 'آQs8ӱ‹QZˉĕ|1][=$i~%fjr*EꪐQ>m 7,icԻ?EU¶qmǨ_a.pLJ|8&<1z6LerLéwk [5A=Y %v 0McMvɯѤc uˎ1M&u3)A{Oձgq91޳jpc~Q1Nu50c <uuձ].W"TuqʢcިTYe60:F'(W)oYͳ'̎vc;mf8c* +;4KΑM{:/drMVQKk.cDTJ1"J̷`̒:悉|mRLjquvQLj6;H6cu&v?\Ž%̎/O&c H.3;FZu4kP1M)ɯ`f1c +;&ǎdˎ]rl2;G2Ӆ6cHq`d +&%yZkqХS7&xLQ-Q1 ?ƃ;^Bs1k^]gv eM/u |fP(ɱ$w1F!؊d)U _6ycA '$kcN/eXc#v4}K 4>9{C_1&`BzNqtvK$Xb. +d2vI+po1`Hj+,clqS+ cV8wEƨ=.|Wy~l1')?HM?a1NXi bԊ-lm+j`*Sm23E!8޿1E:ӆ6b0UӘҘ5qbpEc᫦vLyi߯p5$v$orrk(;b8ϕ[ka,1bTIɇjlֈ6b<R&x,Mm[~1 ܽȀẁGO 4Q0`zY0UPx~H0;|_m3cF4 WâlykxMbi&uucECYq6^4ombØk-mIVn +OPMf4Ѹ0*B,cFt5K v?^sH궃K\-(FMZS&)\}XI] +9s Mˆ\$A  +#a֖0F~ #z(ٿ-z%%LQLY^@CTl4l ˌe!ˆQao( +aDc]`lPFtr34#[ + Fzlm8@OĀGm[nXZ( ]0"#)#z '+slQ[#+m\R@0.* A13q50"QX0[0Q_(0dFYn$8`D,Qbnoޒ06Ӟ{=X 0"lLqB*K^>n@-+_,ۤR{0_l.6/Nj/">]yZ/Rp7O/"cݪ]/L^I Yb=B_&XhA| V"bg+_D0~pV}\"C0[_D߆Ek;&EĺQH|΂|ѦRb|݆.#"9)_$7W[ҺFx/q/]t[a+^D{f݋d;Dƽ.k9 i/&]Jɸu;Kߛ,^D6Ⲹ^Dc{཰^RmR1ۜhVSӇztJ?/^N5I"Reϋىo5MM"momҼX0/E<,/^R!ZY5y)bT/Y⬄aP,)^J$ ^D:|.C]^J{Yt`ð'2('h[w)٥,IRĆ/(ޥ(Mv{|CJxi.EU[dKt%jx*p"M +v)JU0%Mj6~v)oײdK ^e}9.E+]xeu)gu).~uu)bRc\եh%mT~%RuERtPu)h9t)/Ņ"6)] +ҥ`{;ѥ+b*D.6~IR*MYJ>Q_>\:%s)bK\J\j&KW(YRtynUR'K}y%GV?H("3R[J"EhmQ&9 7G r4^𶒛36e5+;8f9zNWP4K)Mf# +6Y]n-d#: c@Y3 f9bMoݽe9Gˊ26aYt=f*+qBʊ69YɊ(TdErrȊiFm"y\=~c)/?{(Xm$ '+[ƚ$cE!ƚbFh]^T9J(&'7D9J gk5GÚ^ۤaI°b}wL$AXӛ3;X(X #Xӧ'#X񙻽*qq+K)jw'I݀T3An Fz@A2vu"WЩDwf+f PNmOe..MeW4 m_Ή}$}4mA_}4y"_ͫט |RzNܫXZFUHm *v4p^t8@*g>*V;F#*$FlGL>-~U3I*l /|\Mu0Wa6)WadM"Wa&4&U"W9B]4o[-{i3Ns*%FUwP h+K Kld lvk֤Ul!"T}Zyrռ%Vs{aZY19jMDM"4ȶByVV+bNԀԓ'1$1'dYYgAGrt$YY$5,±y0-+KZ#ҙnF}ձٷ1o>#eݥ/ +鿲ʩx_;H|UCR2&3OxRE#_˚/_2oy.6~I!F-3?)=GpGU`PE`ЇK>1 o6EٮCVx΅y' ,6aeM $?(*4峣7W(M~3J8Jӂό4SwR&`o[T&ʯ#TC yD?:4w 57C}Cw-]>44 jfI{o `>QsޟY>AVd.9Yuw<?Qsޟ +X~Ԝgep?QsޟY?j0Kns'I*2ƴ泿5Yŭל>QsޟYwkя,F.hя,A`VYoя,=׼ל>QsޟYX'ac"Ͻ9G?j0 ;c{7}? 37xG?js-¥<}d'gϏ-яt6mO~Ԙ@i7}?'3}ս>Qsޟp\GsƏ~Ԝd |GyNfvVS!ќ59.>Qsޟba.ڙ>QsޟD=Os?'+~sN9ɌoJ԰9 1?O>+O9ʌ osG2/xyg!q]o^x⏆mGlTG?jLy1߇xW.-A./Or[_h ,7S R[Oj[\_W~q;X̍?m9B[HE=L2}7V?y-wr(acnT;{?ՎyUL}O޼>v,vCCW֎o>֎o>֎o>֎o>Վ">֎oB>׎dž}}X T;X;~66c&c&s}pC&S.c&c&c&c&tc&fc&XsX>u>֎ƅ}}D}߄}T; X;\;~߄}ę}}E} )X+%\;~Dv|=v|6v|/v|(v|!v|v|v| v|v>cXλ?s&sڅԩ|v2^jg|kjZZƇڱx)vxvU0^ +c|KjZƇ1Xj`| kiKj\b)w6,U-:jZŇڱxlv,+^JZ|E}kiK北bjZ2㥊Ƈڱx)vE2^f|kujZRƇڱx)vzKjRbV5/^`|kjZŧڱxxvԵx)uv-^j\|d9|kE"jZJ㥺Ƈڱx)vxv,e3BjZ.㥂Ƨڱx)v2^jf|kebjZJgR <Ƈڱxv/^ +b|kًJjZƇڱx}v,.^^|sU w83) A,&@r+'5q&GIZ=nA. ;",K -Wo.;?)ױA`]O/w^_vZރw.g^;r }}h^j~ا{5cg(yI秞#OozStUH ?a_c]pix{z4⿾߸h9y}/SX z$o\4](.1#듏~k?tV_\8%u󯮙5ƅ^/% `k^wI5?tҾ2v/Ws_ 19B{/ PE ĩoﶰl+_'~γa$E-KB#oK|.'7u/w8_2'U]{D]yy _.y&BʱoK6Pu__ X30]/泵tR3` 6|WP_Pqcq>jS@>JK!<3utU!5r/tr0]00auXjWm7KΚŝ +\$q .Օ|' tԥRw緸nxðC;c9J-{vtaOiaV^I4Lua + wpVn~[H癪+{hnf".=c/L? Vvrb~gQo#c:aw7&JiFSwVYãkxhX{O=k Wߎc? 1TZg+`ĥ,W:%ޛO`]:׫9ve4onobGNn 6hAP`dD%Aî]޺ڹoftRœgXhZ`{hY+|Kcb6-/ړ4fW`n3~w;8okN;/!]>5̽XC{G?7t̍qڥx!h=hSA7df+Ͼ_3$Lk5~DJ؄x ~X13[lJsBE_  Qk0,~9RNpīwvwrjV0wQ.< }bW.h\йqui=iyܔ@~9q.l,v,ҡݸ1;&1`(`_^hx=t̂+t쉾RJ'e˜SC3Lj䝾htU΂'m Wܧ;?wU.Ll|S8z;.0PbO)w5O1; zU<`fӠ6fH1=_ܴq/3z3xs_x;x3f ,X oB#3A'&{$kM]B=CNVK+6zؠ}#ƍF]ڲ9Tqó +~G#i gX Ze_;bnlRmaFO'I]5 %Fаcỷ-'m0u[qа5iCeXQ-v݆(zeKΝ\ c3n)qn s'!-kL΅}CZb<1zy + +j` Œ{b{M)X3Gt0i'KpC :l .~Pq Uz"6@bRE}9fc>c~.aF_eh?Gp`2JJXIZ)9Va0B^,jrݥG)pBP ssXx$ԍYvLLZ}pWofLՐViaZ[n'h+s2gYM$im\<51?s-kod4lzVa~ma~Ǯ=h%Y!.n a-!v,5P{X1,e;X+sn=Ofa٬܅ٌ.[iZ\9/KXwC<41mc#|ۿA(-VtŲ3bz)ż7*:D0 lOlѰ,r<]m/p=:n 0Ұn9RҍU e_=k +Uiei EOb#:Fl a # kxaf?WK fD/s*iUSvAlΓ8t/H<=w̞W\ }TVj L;#)1%Y +htaR-z{=2 QfLa=]1_R›ˆt/Č{EZn{5t lF8ICPfȑ4j6]3} QO5vQ^ <d!+YZB|douWO𐆧; s-r` +u y_te L{LJq`[cbV"~(.`DƘ3+2dxWL?FS& +x+ҸLke$VHA%oM,a1e eci28 5cʣ E.u7ivę0Њ҉;3^ˏ{5l1`ͲZQ{52UF Fa<3 `qla}Z+5L1=C-`v;Q.]069aaYbAO)Xw,4aܹ{,XتI'4KmR{k\<(qkFCZRSAaαi+HДfgd &O-ŃVJ4*+{_aa;Bc߽Q>ĥ\0mCRKLRWkV9^-NW++h$b؟^Jz͗ǘIKV")I ,H6^a㏖4,H,<7,* ]ĩ[ӃL'(%N@`apW„]f# Xa +K+ >o&ݸ,GcӝGa׈nfܓS"q1rڥ#^чUW4*7Xnc3TN<-tagtu3 +5h{ t_ I`Ұ{nAlr.sT/4s`c2,^m)~8Ҥz[غJ0|1Ik  +=r .r ~° b.?r +u0 na->Ja`4X3?h;iȘ*cihgا&/8g68B* ~!xҭaR^/?fC%fWy$ Ix63ȌcЫ.E%hg1 0EX ʹW\CX3~COǭ/5Zxh*qq6 m4 xnU/AQYxkXK%-v^< +v@;܊`[Cŷp)T3gwuK-{j&$Mc!"wA3hYCB}=j5.%Hdzt +FhhxTA ͆8b}1֕Ki'@[t2HxrɠoJlgafXd 񉇊~ZfA2w W%ԒqOnlCſɸiX0=$I|0d;cY 2<Mr pDK1u`K4P%$>vgQcO$i,Q5ޓ4uzHc\dc7 [t5R'&G41g[hjl\rh,,Mgfw̛`Qk#.L'=\cI9ճCZs h`W,pdra +0AL QliHc>d*^*-ziSN bȣt׋Pg_j77M 9aYj#MnGq* ۥ!0;WέTA<Nk+2=Wi3ٓoಳ `XP:l`+/:˭qޢ 8*]r+2,X1[#6=4l +.P+ u*urO39z8s4 mkqw TJ{"_cFAPX'] +&)KFAVnoxdTQ} &+i*R) B'cnDŽCS]x~xruABa墷L±G*àx +'#-ԃ+n2 +VdW'\$hb0U6?*Oئm1vl踗v4j3hDM:$KjJ KY(vFwL9C|XUQ ϳk j̝#LN9#}}NΉf}<;Cu]'RrgqPlGY=;Q +,V C#|#~qPRx{F4a f2JSMSHrL'EtνN۝ft"cGƅo|1:͞l6;0})x5ɮˋe_ލP J (d;Vh ) mQbƄqtEͣ=C LEVO11j"GM2rh&ï0r$5.r1}04'՜@=x;#8. 5=3QNF'>_<歓ߖg(44ºn%+3u่4A 5N;T19^<8j,qVxZMhKVӴC5FB6=vksc(Tjr'Yoҹ/.TnPc,n[8j' 9o/vz]mdyURO'uu&åaZ.xPlVf0@8SF9[x {)QoHbZ=AG(ѻM #i[0(YUegQCoGy1PSi JL*G,;k-6@ʮ xýttK2)+|3֦^2C;N/!1~k PjPxƈNuJc8TT|á7RBh4gPYoc=d';+SL"{?[Ēp(#0L^hsv191U*'BF +c.) +Szd>1?M :pŠoL\/=;&._[Э|ÅYќ勴;␤1"*z=mu+7HSZsCX$#}neش ƽ2ΆxBQnJ2r4 9SRג[ɎLj Ee٭xӵ zZ{(KvqYuvgr:s;l卼g\}²x(uyu ~96b[.v2*,q0 +EM/Zb4&!B;;[|n̈'%(Ҋ([ܖ{=m!zԙ{:` Fh(òo +ɵ睊ؓ r}8N :D[Ȳ"ʳvdaBq;,P +$ohWޞIWh ) 2H}&䂕{fdcʑ!`?wTa֪riNgƮoTg!up9H(le݌E5FB*ޟuP9]q<6;Ŝ!=¿)Ԛ1L9#MQ7N0)4*Ҙrt’Z2UߥQH;J(=}Lá ϔғ1 *92Y+En'<į~rXeCe.E>j'QPհvQ[ ?Fn=bdp_)+G)4i2HUC{lDxVNTv vPd4FFPR8v X5ΜFՙE֡HڍuMI1wإ:b"O +P:n()(wyJ$g((8n yr`\ =?07P/jTG 9ݑi89F_\y-~6Lz gVwqR+잋;~g3e=@m)U,G%@1Aj,X%|Q}?`)DCJO"t 4 i;5DnM etv/XܬYcj>v0U_R3ŕ{ +' g&&iG#wJ (Xc+=8Ȫ8{i̺(ŷw1xKgr[0z-`lexX3ʙ[^YM#ZuB>LO5|frj+.N~.z5Ƌ4#>Vß4SSx n*|qtʕ'{ R2F+Yiɡaף_IK47Oqz/ SJ-%]~ -3&n*/iS'ʇo W_z݋=c?b`at-kЗ>ۗqWuRIHm9C(Ju8tXHrwÚß1$걕ObzhqStw)kPV5X(/R#G-1I)8_qi|dœOFɓ¬y:.K/6|Rn!1[145:w&JƤۼ|R":!&, =tİXJr3]:X3]Q&:r1Ċt_ZϳXæpXneg 5宊q:2TgÉ9OO/3*K "i;qvmhq++*Sd_ͱzf*d^ۿyɜ>lNܿ ƤD@-(U#ޡ_WjUy)Sw<,09=]ۢ0>2X<߂$vKcV*uJL+NQ5kŠ{?+ (-&|L,U-jOM3s^8.LpyXpUW$XH.njPAӎXTJf-z n:񵧻R Z j }bW|/E4>)̗{T''ҎWe{uA1a#՞'Y;NIc6|c5>i[1rcG@$G{piXcJbQ9@HO<4f&'lS&@챷 +#1ˈ|&C-)-c w*"l3;F)J~&k55=Ve-?,+է+ ]`Ȉ2(7XzJgx:+s3| +0}|pM09SUd6Jÿ&Rє6'pv2Jht!7Ded7OUdz  /DEK1G;p7 hQڙX9?63= 7f_/=Ԙ.TƕGqe4/ O+uxG\*&N,4̼ŏVJ =1U U(F(uޕ㉵ٵ Eiih$ L޷?&Fr$@]NQ&;J8.B#ײA2]\οwea㟔j6Ť%~ncjU&5?EID:{5l$ßJsݢlת +ßbFѭS:993Cg<9dYNY\kم1z1ZY#vSMk\ᨀ-ٮUHUI')WAuXv4D(*ICZtvݝYU[@:j):; ՗S-jV{TmSE#^TUÿ'Xu|Bmc0*:9^ S˻b|޷B #,[cN&2hƩrJdɾ>Ukȧe+#~e1e4I+l⸂2XKħ@,3֋e1gOkIVQf,\#"fQn_XӰ eYIfLB0M$3xPdkXdFP!+Lu9e +0*K̈e+ʌu@ۊ2Sř{e Gۜ2cч|F)˕dFo~yc^WNpAftNdFP 3&1ﭚ/8XgpN 3jN5{&YRr᙮dF-=  3*_@fMDd$4N Bw dF|qȌ#B̨~]ĎM$3P¬dJ}Hfp^_z"Qp&5؃*-$3zb["Ɍ +'HfԢ`I`YR.seSwPfUc eNIDQz1{kDQK2vDFKjjh.(3j$dFрȉd*]5MHfX= $$*1jA9HfԪ|!Xk/l ,9M$3j\A(3jD(4dF'{Fk5+Qu"zW l@2^PfԮ(-,3j#zމeFt1c[Xf0@2̒J q͌2KͥGj_Pf(-,3j9,3jtaflz2ifȏ0 gFNX8̒Ro&5lpfݣGۡ'm[hf*|D3(̨ Ό53̨9sXqf`&v3F϶'fTqz2̨pm aLf&mONZ`fX?"YROE[͌Zlf Ʉ3&ggF-10qΌSNL83i^"Lw%UWm5}:̤Iah@3|y LZzTf]44tM@3jKMD3iq<9ͨ91D3iB4v({()(R7ͤapʩͤW7>ͨ"YWЄ4}( ҌZzFLH3i0"ͤaYcaI;wg/L3i4rVWh:hAI84U߷i&-kDIR p i&I1́if-ili&^{bx~ >1|2̏=1f~C-L3ٽo&.7sd`Fɶ0ͤПfҜ9-H3wMqgLRu i&-=LYpi&=h'g#Lz7ۂ4Ӥ34LK4Dw`F4{&F[4Ƹf4TQM#LZsԺf.5&WvLL34ˈi)+L;0ͼ ~ )fLX/"f^e8'148 f.Tif1ifc&Rvu44,*{ P3Yj[LRCLF#7,ڝf26S5řr[f2`' j&ߋ j&[zgL-fR",`vd~jw!I 5SjVW~i'Ƅmiaذnai5V0+v[fA(9jF } _oiW6[fEmi%j}0Pʹ "[Ռ 5BʹM^f2k4N;ZL;Zj]fgAbO“_fr$8pm[fM"vfBo#.Ύfs ҌZaf H3d#hB i,[zk@QZD,H6!K-蛐f~=&f,Dz.frGЄ4ұn@ɵHw7 #OՄ4'QFMpxzDQcQn Ҍ!W6pDQ*F 3Oz@g7|0(t"EL/N#L*D3Jͩь>.=vjoh 7=M<3yf3bl&&m-Af>} 4Ibaĝ BЌ۽ lfNJ|{#L5k 4cY**:@3{g&tBmml vQXM3ό[g3px*fl @3>G͸E-?6͔#Whhb Ќl +4p 4II +4 B'hj*m+Ќ/Of,YH yf,yE\33o̴3RaDŽ3vg$?Q|lqC`& vw 4.DNfYgwL4c:z9h:W/6۞gXy\p\mT )>6t{Ih22nmE-qf53;3Ό%CqhfzL3cl#43|k3kneƙʈ,@3fEb--FV@3!?W Af<֞DhҮ@ө'F+/͘j)4SGhq>xu2z4c[+ЌĽɒЌ~C9j13=rZ*㕲' hv{fT>X?Ќl+,(e9̘UgF5̘/lOl+όYORVYRD}yfz~98<<3u-Ƿg)^3cxf. !G<3FD5SHfS LIf>]ۂ5S݄5sIG,5Sjmk\= L'6v+NX3|If*َ`fŌ+.,=a͔\F%,Lixb=A\6j].P3%{S5Ӹ`.Cy@\K7*S/T3aD5sL]c2/@4T$-u5S6P=A8xqqLeh5ttXFz>H#Ԍ0=&5F^Գ-P3P6:cOp3־9{n|nvC_f1.6]sd㳹W36`d)w28fʹ)Ƕ͔<쯑m&xm+la+7}ue)26ńv6Sy8]f,fĠl3!UfUX%6͘{`e1n~b1n me1飘f Rl6cPYYmƤfv l3Z6ADD6FM۬[%~r@]*f}1e[f!Wf=BvBQcJJ;d gݚf3jB r + + ڌZ9K1f0f2-&mFA9A*fDqpA mF-EumA Kw4ͨ]M#%m ڌL^&oB D {ٌ#3eOQy[f޲Sٌ}c"s+5. mv)9f=f|֑MDf6ӮjW>`L3`Z2Χ|FF6VXm]\TXfR1qDA]m5Ypͤ05fҰA>qkƳ+ŝfxP:LW~ISy[fҢ˶pͨ-\3iq~Ic>Sg= +:LX3I-H5#rĨ m-\3j{\3i4k&6&p7lQk|ykf̐l&-" LJP`3i6V. Rf*c fzlB6v mf᧝fּl ,W'2,EŶlva ̷w]D6ca4T#̏&d3^kfX@6K/W#LZ/^ɸsD6VXH6s.b,h3i/cy4$ h3iwUֶͤHXfXWo@iVK;m&-=ri& dDـ6\Cm&L&W rF4}ҍz4M?W m&-kǞ=fZXLL fZJq6,<ʹ!v̀6 mAi5f6)s6ʹ$2m ~(ͤ^,l&tֶd\l&`%wʉl&]ړl&$' 5-4ilɼ{Vf2 {w"ɚ*n LFhO)\f2^}e^f6}LFvXfNtf6h9ͼx Ol3m!nful3m=Z_L[K:&]6vV™R̉q +=sEfQUΈZJ33X23tK}e2Rgƙ+ݙqzL 8cvfo93ΊCSxfOgSΘWNҞ(g a3嬸Wwu1jXr6? rh.ö/~ }t[!g^b )L/ڵBΊ0\.rV:c9֚o' ry02BX;PFș +~O䌻|OmSr:Gw̐3a6W!g%[{ gI+䌡3&Y1$u11 )h#L5Cь +99]M3:ip7!gy +9|q8z1ww0F[m?0CX)oVM+͜3y&ҙxr H:xczř錚ص5TP=XHg;ΨetHg{ʣD:Ɛ8tFu9<\Kn;Ψr-3g%#,+)}[Hg+H:ƌ݉t&>ó<(9ЙO0:{]:cZ<;.3jG:—Ԟ=T$w!3֭x(L2T= x#nT3"gBQ @a`U3Vn궠β2\~AQz ,3juU+k߳tF:A:SKD:ce8FuQO1`F ;^Ods~M3j`TE:m ,X*29cEkŐ1gsmƜ̙y10bΨѸO1gX ܶFu;dsFA:aβM1g,^ϑsF-j7eeUd_8gY5ek93qXյf#|`isJ:;efChQ`#P;B:cʼnӘtƣ$%3X FR'.OțtFK6B:cNw ꬎLu (5:cx~_QgtxںnG"u\m@b\ l:V[Pg윹5.3za +9mf'u7o/)BzAmu9kFZ'ͨ3fGͨ3f`=u:b*=?sbZHG`'rjG%&^F"L]]j%gb`v&ІC^˶Ψ10 +N3A3Ͻb`gb~hZ:4&5̻ZLS;b3'ؙ@ұ=Ό}N3o$;_5w&rLdѧGڙHICB;;f;}8wF ݭt9ΨwzɄ;(g[pgD4ۅ5LJ1Έ),eɔwM3}҈wF͗a2#L t(5b֕),I^È;KJ ;RH;#+` + wFD;}i:KŁgFyNOXg@Q~zauu::#:9idQ# +w[`g\,3jϩhvFt ;K* sFYRVͣ;j5Έjlo'ؙ`1d`g԰$6Dsmma%\uFsCӉuqu $\NF'YRqWƞXg2l3JBvD%=7MUR@gIg'ͺ5'o'YRt<5@8Ψ0U,tF-rz(.Gҙ{ XOHt7Ψ$FYR,p9z>ΨHFYR83:K޻tiL t&-C:FcĨ3INʝHgD/pIm!Qҙx&ΙbQfIc(P'_{FΙ/vL7_c&9g r 3i*9g) ىsgN9S<=qԟGsa.$o LC+=N3IYRaCiipM5;l LJg_8g4p2r<*5-3j*͂9K-eĜ%] ]{`4 'aĜyv8`Β@ 3.;(p0gZHR'%cref̶@δ28mQ5Bδ*jyfތ60θ +V3j9-3̘ rF ր8㺎62HLk>QZ6k@Q#8bb%32Yl`Q02d]9a/7@Ψ%FK=AΨ״@dK>- rF):GPYRQ1 ㌖(XgZ8K"q0d;ƙ,s$=2Ψ8XE&5 !LWp&ƙ$ ۨb;mbɈqL?qF,CO9Ra~_N3WgT$I,3^CY qFWqFz-3jb8YrqFy81hOG8d${ '9n9S&5}D qFS`0x%iD/qI L'zB(mFQjL_ L^v};''MDv'YR}33\vBQcmnqF2-fqFF˸!+cBQ+? ){B%_{O3YT6 hy2SFę| hbBHe[gԛgѼ+lg׵ qn 3ՙTd[gAV8ݝ6 v xw71xTqQw01X<;,yf1zbz'c1G뮐3JWeCgF3:q2X{Fępv>e~r1π3ƸF٩MdO$g{4ƒƥπ"+ [g$[=sf+ppF+})@e#L +a0k8_XR _o9-V+w +8@^fVMSVnU_gj|3)Xo=<|{#L!|<L|3$1$tߌ}7!f› &fI.!tl+, Kx31!3ߌ ^Qp(ݫ1Έc~^gC0j쎑oTACt;bd1&)JNfs>ۙonV(Q`?92a]ꔲ^ݶH@}zof~W_l}g3́m:ݡsDzg/s88{S3lӫy)beԣgсԼ`ffhwkY|^g׀سq8}+сynNJ8]=Ş'Gw,#*wbY> g:& 8h:pVߛSŹzct,Ξk8:^9pk<YthtrdE8w"L.x/ǯ gq(~SYnpLvo g`ghU8[{g g"ӛϾ™ΦbR*s"kp'd]816=g.х8Y氎.fq4@̯|h龙i7,7oLJɄ%bKf:DLj|3{af =fZ3=PUtYC|>NUdWԂ[*xlj[N*pa[8<L嗅a 8 s&8^2i$V3&O;4iϦ' 8xр3x>]D͘ah&Gw: U݌ 5Ls1\+_\#y)R,ƛ7L ƛi:J< L;x35羼ٮm~+'Vx3s6L-ƛE7'x3e͔W9nv\?Xg&Ap'cu4LmׄxPJS3 ͔-NJo 1݄ƛ)WY7SU<2L-^Vfj7ScfjvY8,#p7S ,towgji 8S-?Mgj*pg[gfQֿ9t3{/SWJfj=tmZJϹƛb>I5LC ƛbI߅›)fd4L97=+ovyg^*oi#h-̢ +}y(Z}ʛ4o Tf8$Ry3Ic7S1ߌXmiLm^{4ߌY|*7}5o .?G7#1v4ߌ6wot+8[hglƛѮs;~t3t0t3Z=]7# }4݌-!oFۏ<]}3R\䟧fPAf]phoF{_tъofjhG%v{4^>d"H_yh듂 g}pF`Qф3Zhęڲ)WX+qFۯ|`휋FѮ#a +qFcw4Lm gϬ*ch &οW3l'H8>tJkKi`qFň3g|Xڈ3X|ĈΚ9qٓƙA8rj-sgjF3Δ97̍3}cngjۍ3snQ4dgtLMOm35э35oٮ9:9qFV7Ԗ3qkh8Sb]>g;qC!C8S;VJ8=#.9S;bWL[Q87Cܝ89]gjϒϟ8#"x]8w+.gJ_d:pFc'vԶEGHZ8S{_WXh0:pz;pF\с3uv^47SyO)Lov:ށ3FHl{KgXU,ڗNp6ע8S[g=pFzp`KL8S#QmBmsgIŀ3/E8m2:pFgj:pFu|g93Ihs g38pF[]8SVaMFhwpvOy؅3| @]8S{b%Y3;.Ѧ$z94,=8#7\8+\]8ŔmtL QpF N|*јxӉ3کENDNלY%hsBg# 'hםlgjۤ8ist6Q8Չ3D"8=8S{_ m3⌴q'h͞-'hsgj1Kga;g-=8qF;|!(g`8i1{tƐNK44G9qFr8NΤ8Ukўƙ(n|mnu㌶0]7hP8mnx6%vrp3ST-7:pFZSrO΀lOipFcVKhy3҄8ƁXHLq龙}3ڄ7sf-woFxf4e{68hs̅f4ftߌvfƿoFǚ"07-Ymɍ1Ѡ:pMk8Ťg4?u,[[_,ӕgezef_ߌ6.oN|3Y~pFaRβ̇w,ʅ g4Fuᬷ*e˩H.eKfg?efUߌ6'2o)V[G~74߬n-u}}l9}ުo[ͲFV~7f7/qV}ުoM'"o[z+Yo[>pfU߬e8QYk7M_,[>-q߬e{8mogUƫLzYR~W8ƞ Zi*V}l}ުo-o[Hv,[fU,[n0߬xD:oM@ͲYo7˦ KhʠsI7H +endstream endobj 165 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> +93836 endobj 166 0 obj -<< /Length 167 0 R /Filter /FlateDecode >> -stream -xˮʲ_O8_Àn:=A-a47$5:*FdFfd/#'qoWxT_^sR(_/1ZOEx5Qz>1/Dp\?#'w׿+_KH}/y~3ڗR#*Q%}JJNTk5jmʩkEJjG_R?V%eܮQ>Z*T1}J\^T[ʧ*Uj T~* U^:__<ϯƫGS;}sk1ak.u|ra۩{]>as -'6|>_lu|ybV|ӥ{]>fs鯌y=|>Z^Onu|͓kM~.ϴ%%bꧫ>w|-p#/]G[j'|>>^҃If~q}nO=>^2ik>~{L[Gܽ'|>֙Uj=Gu|mؐnޓ{]>i\kJXƥ{]>i[*Zw>^gւ-}.ϴmdJik>^R]c~.ϻ={r}n;KW)p.O>w;>^ךR z.u|d|>vg>=vļ{Ou|9ޓ{]>iGI>^gZ=v`SyO ϴ=B\%lb?^sZ܊MMȨëc~qu[:׭^_̒ri'Siɷ|1MR%a-=-e'*K.e'*D)ʄW)˩X3% یs)c?V/J(375UOUsTI/e:1|n(3xYT~2{ \T|2_T׌R~2W| `ɷ|7gz.Oks|w30'* [ ?3oS@HϭZ'* 3\~2iWKm2onNDZ('* j|M:5'* JxZ ߪrzJ;2|woJcLW]'*{o2onM1fc(2o޾} '*B}e\~*c>VfNj:>VfҫXK[e}#φgmR~2;˨!}2Ϳ1WVׂm?Vߘk9B=U1|woLճFWN]'*cySɷ;ciĦU廹Ws[U廙3[npZjZUyb_5粬~*ͺZ%|*͹oۈ|mU:깭6|ʗ 6!\[oUme駻k>V˘K yb}riW-wcۋv -UPb(/~L??ǟʊ%ŏrRCcz?v??ǟJeÏCczT9=L1=P"[µL_5޽u'`Cw }! |#-V[-N|HsxO>o6&A qɇ o1ɇt]x3:l݄XC:.[!|-k|H-x=>$=tEߏx7>ևx5>?b oŇt}S:[\!|_-O|[-G|H7x!> bOo1ÇtxC:<;oq‡tC:N[|[l!|g-.|JIx> a5>]w bu -;ot𝁷C:[!|'-It8C:g_0Ig+_]U[Y{{yE#? -~hmxA X1.wW㷝?Pwj'j֛nW}q5>N_wD zS㗽?Pj'j՛__W㷝?Pwjgj^v@ ߝګ>]_jFeM/Rt.N_wZqyT#o/ȫ[ y߽_ggb7WL|V{?0 tO`kOV[5'+l9,?] RW/b'e](([h4JZe2 6טVQ.""nDEuy&ފdU".hs9^:$$*Jy 3V8'~ /D% s -ZzdxDQ^[ -QJ(EDş ,4wĚ5l$a2hK0{xlr䳥ζ~.61hRzT%aVRb_]Tq$ r+DY_İ,%z]6X_B@%s7E^Ob)a^"G_"l:xB =ۂ!5o&\]i>hMdY_/4t8 kb%ؖ}}ߙ-%l}_J@١C"Mᾂ>%bY_ ?;o7PTRnSfZF3i ai䑲[10$Fޚ 0st&=9KOML,S0Ѧn8pRզq %Z<\Ħ[n]E(CLGUT+KZ=b@YEQ˜.YEClz殗J)Ԗ&ƨ' uJKF=*TtF .V=9}SbvhcΨ'VJF{#S3jL;/5gԳ`_x*bNŪa03 j܋&F8AZ"ZuQ_cckP!ƹE$Q:Td LX ++5LE/#{C+5˰ 橴؜)gճڜ*XUw>x1ڼQЛuOUXdk;[hԪV SUn[5_mmUèZ.1]F>D~2dԕe]1?1j)"X,)-m4ҽC!XH ~<֍UCI:)Cr[5%ǑKX5Dy[5% @҃Ƭ!ʥ -F4V Q݉(>VDUS47j(ƪ!۬9‰^bڡOg4cX<|6n̚?ΆcO+5$C; m,So3V 謚 (9N FDU'o"k|i,Ϊ3]&]guFWu3fsF`&PdQjM݂ٝUgHla9+YkMcw0YW<g%R0F]*6"q$;. u3j7,42QdܗlbmWxC/`w9rB?/:HaUSc. 8^5ֺg`5-zd4Cf1x&+7&o8"͚;Dq.f7a̗a3KvxMR8Le3Mמ/˖,< i3MV{2Sv6q'5%/f:vF\ ڽf3`;ܶ{fM`j?m& q_kݦQUܬnf̬ y9xsEvK r=kf 6o_e6u&F_Ago[g -_S 6mF 7mL li .[gMtuOcg: 7]lzrY;jFc׷KJ ~JM"Nd1a'<:MYsFq4gL7I>c #>)ƒ ](ǯ&}gS$"ZƧS)"s -'ֆ0(MA&ÔιV狩Ih9K #oj|#j0cLzU:£J=#zul"?%c>Ag %[Zb ՙRVY8*t;ޒ`'A&v,u&y]]:Xs($yc*0Bk?]0=Ќq`Bp照ola,mEs]/<RU6Ks{Fݶύ -5Em܏?p}n;:KH$C]RW{@[zʒ1,LqEf2ԘvM] z&AY'ǯ&32;&E#˅5f@e,$1?$glǝxgMW1ʮ"W̛Sc""YD5fqd2՘ - OzɤI2sӓ]ʮU)PDg!3SUU5/) 0>O,3^!J64~{)]v΍4޷ؔ+hǵ&ޖ33y?7+9ߦE'cX$qopfjl猅CKnHbӋ܌cXVcI.VDXҶoY!Oc/%-?c) ^EcXxV";RL3*2#Y|RLS*po-pngR,6NTF*}19l̝^Wߗ og3!\oh\)u̚`#B⃛|nV&Ojl&J6-6rrIY;8x8IŪd`PXjSٸd>29)5yL^1!r}K-&FuU-V$g2u5%'鷚\j7a= 쎓鷎K2ogVub=p>(3)2:OlB%]Z=~% j/ܗ{GX wj2[L?V==0%`$꽫gs%ݵ{_/ix9Hj'ԱHٸwL'=63iϼFR3f `A´oK'LKזn \t6͍Q/eݑsYOv6P6MA ɱ6B;̉JݦѱL]"e^t%PeHgYM˾1Y!%r/yr cfSw{g ƯOv/Iz'"pɉnKtgqS5&&l8zg'bU5t8O0?An6ˎ2Qd.#.3GpKT`f .).2MdcL~JyO8F`!I]1k*¤\bC\͌ O =1 [!1~X-6=Q58M_[5jz\lUyuCIX⑉ -NӯgނIcLcfeeYrX~-NSv'װ)Fi*;N%bs0i[&mc,X0 'լysn=nj" YyNa m͒97xg#\V:B&uNCǘkQu ni!a0MMVDZdict<7jiesMMbOo=t1VayaRI:4Z\KOPx,dwM? X<{:cPK%|"9Ԯ&Ny,S`^f\l&]06ɘKv0#,tLꡛZIa"֎'ɦcN_eUvךL 0;bOKvY?pbӓ@LUF_ڢf-X )ugcieoZWmZMmpdQ4y5O0ecNctyڤqn1ňho?)"ͭc*QGfKY¨7qW8N1~74aWdLJLgVs5cu %钅:5i+4^1}7bݻ\O5Ž`L*Wͳc`֡3o7B)9L;fbU}1=ӇuxF6} -|&**y?۬wgX|*g/اӯp}nӇipS'>Cy7zlWMp-:#ܶO X5{hc<3g kGuؤ*/I3"a}1 v'9Yi]:yG#F3+?,OQ};쫒ޟ&Ufb2VL}ng?cOӣ3^Ic'&[}SDƾEņZù 5sc|HdXuHN;l-[yy&2F/X#2帇gjS!26MeK,qAeԕ&2nMP6oZ=9ӤeId~Xsor86ta -d&ϖ y!N[ȷVmPU~DY~Xc=cKv>Uԍ mZVܴ0lmdL".:0?$۱13|e>.@cd׾}d|}ʰiȲ5 -&ڴQn_";/Z?.oU_mC0,"aypnGae<`z|><9λaP?^̚0@lޅmcjjB|Us&k Jn4L_ xȘ>dfDV%^ZӇLRyu8M׭xB-=lۜѧh`m?K3ڒݞ>esiEk<*0Uyy=(n-T3p1q)cQ,̘>3TrEY5.?e7ӝD֬ЍϳULsu-øen0Z7a`|~0/&[}0]Zv)Pk}`eVe=4^Z,k8|3FOǞ2K)cƟR_7]yfKgz_E%xdfg)3;+23飅(gSĚ%S6%CrɜìRӜ]n7Rs7Y5K?E# ](zj%b\2g.ԽW}.z{.'gͿ-9͒'YX5s9ڥ2J~^%fBOD2gP+XUVO?-w٥2lP4+(]) btyڵpV˂KjӤ̬Rxr̶[%Ɏ[f%I+ص2R%rת9 U^7pu(ݜJ>= s'zf2ӓZk0|amڜdQQv aͿ1^3nR('V7?ڽ9oo,Kݖ̙3tjӛ?c]a=kzɵO3\,umZyΛ?PޭxYj}B2a8Ϫ鬱޺7,|e3ϖ=)Mwv-ܪރ7vg}=s+EOUl`U?y U={gO*m{|Y{7c3cXKkAngWL*?K+?{M#xg:v8'֎Br # ӭꡍ&'0WDO‘2c˭?f 5Cƶ&z?z<[ѽ>e cxlQ;xQ?6/'vKͿЇ;;,Uynore!]גY&@}k<Yی3 |3nl/ZO7~V4sn_@Oc?Z7B܌~`RkXfjֹi3~6iy}G(D)\lv%MB >k}c~$b:lΐfy˯eİY~ AF2V1~ݏ16g[Տ2wIF߈e|}%W~:mS'/^g,E6΂qnr"n"3̛>ݐd)n+?|ݨHiVbF#eV=x2wu3~vخ{ǟi7fkȧ9#&Xl:ǟMO>8r?d)h{f [$Vr?{*ʼ틳-;oǜҽJ[ylSg%~?;pph@ ;w;Jܬ:;Nv j59էl~9dޭf{22Kݍ9e={kWUn: -}ݤl}6mP5n ⒎u_4:Q7RT$BK4u[Z|'ƻ3Yڶuc"!}7}Sg:uI>e?f ۺla3}2j-nᴴ>QfFۺQ#lT]_ۡn&Veʋm}}ÚZV~fMhc3~a-=Q՛ }>M1m凬*d?dC _yg{V~G.Yڠll+?dld![$;xYg.#n+?dRk#&GM >>CWI3صdO_EYKf:H'מE Ofiu |(Z*K#ua%A+ưp.|1 b%k V&Sx J3`?Ef+I9 @V4sYɊy8R;bbPVL@imƲ|'̞Ef]`#ҧ>6^Chl (W6s\1ݬWͿ\Qʝw+f=OX Kb;YLPW̝`7ؕcɯFJ:N2+7 x%XSQ`%^ zoWRۀىTdžbMDcOew+YtLS96g8Esm5 u^QD%WR`ey4+$㴣C_%f˰X_AoXS>2X,J:֡b}X`.hG;z"*̩lc`ILmj`%T` %@Y6i躑R$'b}3ϕ°XrƁ0ѱѰXVbjskÒVK!96"V:R,+ G)G&1Ԕ~dXR/2T,)&Ĥ"iGEF9X. ;[$/c Sb\B>"XW$ p,m>hcsH;Y<ԉ5ώRlY(b?^!dI{d&jCbe (2XQ YPcd)q<>6H xZd68LىphhqXfU0/}(%lm*Kʚ1hEOz(_ʶaV`ine F<-,)˒Xdӓ"0kJ|7)Dd`s,þ͚? ryf YS]b^smD$T}&u;Uue^8ҕpZL]=iߴmD-p&QVS.sgkUV0ΧL rq\=8<\p- 0u!9]~6! -.mR;ؘZ#:Jq|-0Z=a}2<"'*;6߱Sfk\,-E }k7"?/Sm -"EFNaQ[,E޴Գ^mŮsz-Nu5 --j5tl-`_bBմ-,0x%Gbˍn#[% -f[`aYn)-<-dR`[ܓT-Ry{֍t-:ړػǎb7,i{'#wWbPIR?G Ҳ-@ka0Xj|.c\[.Fy˱9\l“\0UU!\>)5 ᒮlP[XO`!Vr..x3J͞ KZ*vҍ)~z|%Mt,㢃 qgi\t,Gb4e-+J/tD.:GU :_$}*,arOqBĿ+Z5-~aWVrџd+.Xs'o˜fE tt.qWcs-g7Iώlua,uB2J-,o2 2DS}V*k]RÂΦ=C]I:)^& ϡrUacuq_8le`];[d⼘\w`6̼qܒ'ҙgB3k%Ormt + -.$],GjGys,KT07g]>Zt.i:3AwIj않;v&UŃ;zP&au]rwlJsl/aZdžA_!u/9<ģ\ŋTpg}Yxݠv8v /98 2$/FasڵM|cy|WeKrl %DY0sO% ϋX+[K=KmKB,ыjcCzɡ<^H1xQO+ -7Mz:ep3;XQ{1X׫.'ؑ$kh7;)½m`Xl&ҕ1u]ߋj09Dąts/Ɨ0sW<6—ƥlU)=%َ0ؖ7g,V(_B\;[>6WJ+m f9e6J(MhC}1LG\NNe}1>M p(G{L}1:x=yO,[HŠ/Yd_QB%BE~1<!FD +JCe`"Qs]'Ob87%%wN fXM ܢ$?y~l_P BjE, *6 cBP[n#1O;RyĖFcUd;FLԧi!`\-2Ktaf]i!`;cJ05 `[FPL4jԼ-LZ(s.Xtta9Aфamor/1xH -v/ƾ| K>{96ؗDȲ[Ңy]y,hdO8ӯp%. -}Շ4]|WΎ%≠PREvq2ں8|g]w#Gl5Ʀ%:z< -3v)+Ѻ;Qu HCQ] ),ɲgOdduI^~mW,Kq( oKl -2 v\Xܥ;>4K"b, Ƞ`hHѥu.At'/dx.Lg] 0M)]躾t7x.aK`;JJ\ ,ȭcsI j6E,4%sBKUs1=v W؝Z`=$tJP.m'}ccr?/ -6iܡy ]ȬQb2<. ƺ>:P0(hi\ijrNe}I#q15u,msU0\LMBnqᒶy&}5.{.ib&y}f1țp1EQ C8F%= v-8۷.GҷLkdLJ r-?a[BcCoIP [֐Sݑظr`a+KCӜCY.,wK()g[Mtrxen 0]-En=v}.Mx{ĭ*QXt,Z&Ơ: x MOk̑SEm ٝt->́g?rģ &k1[ljMQ(%1(}-dO="-fqb;8[ƩȤI{iN?h2̂t2>+m|줘.aj41(r,YkŎZ9eaLR?Mͮ$Պ҉Ci63WM}q`-&=td(WN퍬ų<٠‘x~!ގEd7c-ѬR Y|+6u,YM:ed(WّōD[dZb`96V)27ʣV*%k1x(d-1̐f\EZ ct( <7AH:Tk>d-iSdf[ZRPWyfⲆ5ZّӰZaC7$&['鱨ckI\ n9tAƸ6l(5,[X952Z6c%STmmZn #B4Ŭi:qXUnwggZL!`h k1y'µDU[µMӈ5ezpDAqZ6+23kE'ӣXX{Ŭ* SʲUTL!jwck1U~k1k|,]+)\KjјwtIj.)աG:wh-aĔ <8<cCk1up/JEk1뱡lJ^$B;6Z3EkITG}Y;a,IfvƑQI<731\JC֊:X?amush-& -Bg3d3 8*EgZ]=Qwh-&J;zZVC!h-&iCk1qhZ 7͇ci^[+JBk-h-,ǒ,KJF 0ZL5/ґՙǑ͐JZ,;Kbw恆vqd-拓JSɆc9Aͅ^4d-i5vd-Ђ_8k UZLϥؑaWZox2h-fӛԡX Oä%k~=VBW-cZI;U#Zs P;p$(iZVE/J•qAXй[kmXtW5 [ Wl&h'U+%4ma[I.\ b< 1X,d+IR7AXC|ѣvGJ҇zQdp-e/Eo)[R2:6K_pcWn8[s~}g u*g-x>.-Iϫ!lsVSmA[sgq@Q elJ_elpQ"Ć[q /I[yƖ&~a9RclIMwi&BPcl(}]24)bx -p-Isog(3$;cKt0cK\qc_hglIa6\`,آ4;c'w-KÏ{ץ(s!̮~Pٶw"I\Lk[mS&h[)o^eC"5-"[ S~@lH+ļdݶ$S=\jn-f~.ZckG 1b&,]6Ɩ%xclq䍱c3ҍչȑեv7/1)?0tp;Ab{[pBN6~VaFzY}yOގSg*1vv[aG#nٱ#xz S WFN=bKk#X%عA] b96MI:X9]\e[7b6(Z2C"ɱӯ|bgakT̋?eZ:0Nb >-*p-֢6];\kxr%Sk%ޝ\2Hh-)aiC{U6Ks…ܺm[ɃfZ"Z"U$uWGբLz+~_)YȰ5D,T2L&˻qL--Md17bZMVjycjls+ZE{[U71(q%~S2VgZ"Waj9i/ޙjl -M,B(cj 3P-Q \酖%=بZ֩jl\qKբC]@K܋بZa~ Y9%rUKdfZ1&(maD7Wk1a1-֝'̌>eY:1 U7"MaDY: uX-)e9YYaS&VK끃$WH/K!+ 469ar\-񔯔SvjзfZܖ}⎍%W.jc&TjlJ4W29LH[n*jޮjl\EYr%"'ΪFqDVͷ7]8K͡vT-ˤ4K撐:+gݚ*ADN%2m4Z"f,ۅ?z*8"\OY%!yӐju]3cj~fV憷|v9aiUoXȸVEZ7C -AjK&[S`bP- - xjiJrP-IUUKd5kFeR9eaF2=;MKd̥4-x=ZiZ" 1XZ`>gҢ/=KKdpZbiQS<=@`Z @e%Hȃ?9~l(- &4*x˧KKdu,-e Fv,-/bXȘ (K2<`DwTaYZ"+Ycci=.αDF .EYFʨ -KKdp߳Ci(6aTT8h Ci 3{t(-a mŝd&dE)k_XZ"" ʒKKD,*٪86% Qg;|8أ,MKdw[]G'giZP4$OдDVCMKd`iZaFYe"m5kI~5X4-9N%ʩ4-,/Bi)tP%xd͟%jRi K[*gdž<,MK2ņMKdl&tr4-iȋgP)hZڬ7՞֯~SyѴDv4-vAT,MKd+bZVlCJ4-1giZՊ+jG,o0-MūUk,ي,}ci EƺaiQO2n)40-ܺp0-%IRU+?sfYd!bOoY/4-hZ1(_,N}V-ju0-~iY4nX ^Ʉ,&fH}%Lf\Bq}sbJ'*E8ekЦ(EY<,L"fڞ: Ӓ R`ZBIiQaZXZERY?ҢnzKK])vP=XZ176tS̲(c%h$!Nt,-ʘy0bbEJ̖B,eXZpeM /2ciQt8ҢI,-" %Y'wBciQ̋eB<6p^Cgb,d`ZYx`ƞ{=4zq0-0^J6 L2 iI8v(caZYڊ",LK3X3Ӣ,zRWLYp]ά< ӒwnvMĄ@)gl@ciQئ'=%I -s,-22(,MdҢLz2(,yL֢7bHiQ(Aݯiem dbi^{Ғ_ʁtŷhBgpݱqRb(bϜ!:eb%w=v$- -;)&ݑ:)T8Grt E%7GPsݸBy9a4}²ngA7?+*ȂXų9TzI^^ςn!IUu+01aGbEs,%iIZvm* -ɱ\weܣ#0G('ǒXq=S2IK*LXib;+vqPvTBB(1( sl(-$2Ci|8+ ;˕4֡X9Iwh*CiQ Y813-JUvYB[7I;9$-mŒ1_)ҢZwЁx7 } IO{džgE,K/8iIoV,M+KEuw8`PKS[wC#ً*y[t>uZ`.f%^0=DnS`yB|t-GRf:Y%MZXV}1t+I*Dr-2Uz,[ܧ1⾰ #<6V>3ǼU},z,ed9׽[˘G|ԬX~v';0!Vpa -Tw%zO';t.8a-+IO<e`g6e8 vYM WC|`?xŃ0{tҐ jQ\p@PB@S@|h#D)8o5xAx l\-|/R7yalA2Oe]M<--Hő9GK8D#0Y 5D ~bٞ ] _=gE^3>ϮB"BK.fb䧒e -]f&<=@jJ;v#4Q;/>./ 3u̓EĮh -#aoE!>! ctgsюmLh[\`޷-pEǡbia*ޓP"#V"etlofFOfr ,gMח l*|Upb"3a2?[x Eُ-";J cߵ!+-۲ YQ[lX[l!Ywp(jHw?w2v~XJ6I2=-N'Xa͗cnm\*rB Xusf#;-.0yEPmH8"]txn+m˷$DʰGy!mJ3tAz/ i( e.BΖI:^P-7ܟlq6 g:F' [~'QZ{׺_|町t-7p-h)Q9TI@8a֠GRZ7~G2Aэ/\-lw~݂r+%2U׮P->vteZ`t"[i+Ll*Rn^B"NqIj,IԠX(8-B@5z\}L1F0H*J(w?rSIZ Y= -}8Z|ޓWɂG L zMh4 E_Q ZTC럛̈YZ2u_#au{.ZDc*>sO仌mfb[點2Kc&Fg{KU ^ag]C[ lMT֩.?`),Owel{0ǂbib'9tW6^y,C̺|,O&f!ٵ,,H,$Lo2.,@pf\sU0V),n7_)m, fR޶a.,89YH;4-0~*O;D7dBKDܟ %=)%]XHkUXxϴBpr~Gm)-n>h~6c\$:EʅmHf(VH,N["[%"KBl5$`eL(,)Dˠ4Jj.::re^M++l%ۑ:TZHWRvr7˰}1WK-S\Ժ&¸r @U%ĕKɄ+`$fR#4\bdGy^2%`&1]϶$V.d/D:ȦD`+$b+a [V.q2JTQV.]$tiy,6xVy/"$փJ5Zmf|l JҴ@IJDW㚃|r J- +I{,6c劍7F_P bR{n J}a%e"d(\ZURlTU8f®B:e*I6 Uf\w՘1\?2:$XUyQ @mZ%,*;C JBDA(5FԽ;YgY?*ItKxU@.SGs~`UpT+6ZN8$čT%`vBML -iA:[e2l+-8oåQS!)Wl[kTg*7ɆTTH)EˠmL5(uH︻}R!My*]u~+(Rހ< Z̕ -T]DJJJ4/PUˠv!vRFJұ "յ3*]uޱ^te.R,ヒZ$e؋RS2ʱ,|VQ_.IIP'YQ_ixm Ԗ:I}?i,+uaf]Iz@V\$]R]tz30ZϲTZ,EZOIcYr{^"2T$IV'ZOH˸ -(j2'jڲZ'ivO|P?4T[PP† -_/2JG1sDH/3#B);1)B󚍭u% *v %M,ۂ -- -J-zPNBs[Pu J#Cd(i2z 24n *4*J ݯ_a!ZPݯrfCBi*,JfCIl^Pη)7*JM]QujDk7Ժk23hswq0DELVg8Ȃ\G /J(R((zJ{h=@k}̀(|=:̀(426oZf'sr)(N>3dBkG-(h.<HuYΐGHFDӍDFDfUMFD]sADF;z"#\Kr opŷ "5^@+\3 6_ ʵL^Ia T2pJI>`/WQhl^F\5Bms(M^t,.(4"WM9BrvMWk!D%hKiLB1+0)4ϛ}9\ #A1'fDM )(7{l 5;uyD!r)(4zw$hOB(2jOPHT79\7RÒ>PD=7t>(4Ff@KmD2U`YQe8e@^2-(4jH'~O@<9QQDm͢GGNq2 ʣȶ;Fg a2 -4B‡B9h>ԾRPht>FT<6> Ph>ѯzY//. ̇B;C[MTBP>p(O[q޳v^i2|J^F|<]WPͭ/[&p(AhO!áаB)p(4{WN!T88¡<$fSU^S)9r_Ph|ق8ZTְp(nl AC5y%_3U$N7ӦWg:K3=PPlu:Ge>lDu GT>Zc9ˎJ3*|(R!Ṙ୍Bc6_SyS-|(Y弅+~ 5Iàk%b~NnKC`Iӆ̇j ->>ĊrfDxx 82#[5#(ٰl#`O?3 ٰ]È@c]Qh $ 5H:2$, -BD9ĆF$Z -;j>Y@ڄYDQA5@(|]9T Q-Z?E -$hS˔R $2I-ʹ Q)Ox[ Q^pu(; hG.ռZ?( "Z?/q$k5= "o_{$\w;c`=R AF\\U:_aD̙PĶ0ƓFx^=EVnr\7;070@%Fl& -#7!O2#8;W;maDWWfD>~ȅ5v]I"D 1q? !4Y&#Gi[ Q$-)vsQ$YPlA2r^2 W&EVm@Y;<@yڱޞDfmP̀(Ҭoه@(~THGDԯ |>gRMU~ -ԕ Q)qt-(ҔW#!r/Ƒq&Df|`Uًg{K~3'QU8, bDudJ8i&S*#Sǚ| -ّ;d3nH|yyx3E:<1=W Et(%v iۡcYCWzRTKA&1E:%^ }fC29IѹH}xU%8 ^oЦtfxPM\P$LB"/ȣ3FCynYSނቆu:6yeF%,4NZ[\L"(ӡ">3SoB"xnÆaѐRA()m7gps-t(BO"e\Pz@|(<;!f>5"lSBAbO(Ddm1ԏE=㲝Lj",zv˜QQZ]].(hά(CͰ(¥4<*,(ڃLFF 󢈉b܂QD9'%"S) IFys^ĤT7L3lMGFFQ$o̍"?ܳ}cȽ8j8N 29 -bhc)(–pԭPXƏM)VG.(–@91 -@%8B%e6 -~1J;cn"9hg4+SCPB'}d𚒉gJߧ>l&SPڒUhUm$[}[VQ -f[U/ TȵUroVWBWM'6JJ&X*_v[VS@yȘ&3|D@@v(y^(Vhc6)+Stcc6*n]@V+* "fxj$Ш&-0NhB,iSg5v{|_YMߒe&H&ZMW}fBZp>U^Vhl]$ - -PLB{pLVӝ!y?L{~VS}HB -F"[!'nDA{vۊ i܈Zym Vh.x+4Y Vh2' aLup{~[ho?23lUw3C!_BB=䂹Bcſz.+ -K/g]0O/5]yW^h ȮWٹ6ӯlopFƶ\+϶Gf)0.,Nf,4̮mxyo.t`!/͊ ;8]wvr^CFsIcWи\ $F'J, - %;$ m - wXP:(8`maFv?fnv}]y7TI {<] ٬@\SBB ZʼAZßQ4k&mca & r#~bXg1-x,']Ǖ>qBe@kod!dy)RiM[dHK)Yـ9D>6{e!Q=_+,f.VBeVkgi]`[wBr ;CoOmI9wx[<- @`2r5N s5LoQ -tKECrnzriBr`&\U'\;w~[{K_\`P}&*ao~sƯاmUͤ2r+`V&pI{PFp6.3\ ˵_P\#atkφomkpvMp¯Qm3okqpq!qiS뾝[U>Sr8.l kff"K:{h#/յf&k nr6w)G;/Q 5ǗHڅr]X&sOtAs;].ɅڠV r@d:k725>&6875gqiL/RFt6K97 KsFtڻ ˵ު+oO -yκewz3˕..z87 [SЧrW=W`]z1\alw-G,7Z] Zo ˵]G_uvv_jkuB7elkMĬ^]4 -:RFwfsB#SFwv"˵ʼnl.@uW+`\wTӛ~ߠFxy#Bے)^ -1^3 \GyvS!JTFyMw%!ku> mRM-Tfyff༦DgcSk+D/қ^h2U>kgPZ^MPp\{0&l?vxַ7Ɔ\#Jԟ 񯠽l3Pt:v o<8|Ɵj8nwB% m!|yOM6TɌ/WU(_[w7:3nUD@dGSYd7yۋFg '@}M]V}yːvg\߇_-a kz*.BW;JyDA~>/FCn` XB~0i9Sȁd~,tPZE_ȌH }F>"w}:AWSZEO}& d0hk_w (eR(`Sen 4 - m  qB>F7 QP`hh ]ln0&{N6tRۂC1nyfO -/ .sC`+sZ`h_ioamg5P`h<o3 W`h=!`4 j0Z:20 C{0 Q~08-y|SĻW惡=tNd& 0Bs^S-vj%(05/A_JHaݴj@-QO +( ixM&IYfOXP -! -Nⶀp8(3(ϾPX@aX"slF81۰-Wqn )~#!o )1= -) m7BL -J2QHa;10ۇuÓIatF $M -sK ^,ݒ gp]dtb;uO(~"[# ֟%PA=’%P=JI+¼9}[8aHf$'fn;k9a4Y9w,:FA 'ls[8aQ nG.Izvͷ0`XRwL -&7. &~:{ -,s%lqGph{Fuᄡ_edhbJaifNw ,K!t."}EuQᄡ9@†N>dX8am2~߫' 9a_w;8at.k;? C؄K.0QՍCu 7MA]ɜ0_1Rd (k|0aQDX0anKmyt0arF.!2&Va7VWᄡ 6sh?+j4:2'e;6Z+V ^8a4B_l@='nK5Rec!@LѰ-Rͳc U"h~%y7no-,0|BÇ_?+e͏h_] RfT]-^PaX>_pAIow؞vVJ+hηmAF?>O,0w~Lpe7f * FH --UQA/a&T tZqʨ0~N -0D -NSY!XlI0<lR&6(0l#XWHaX58fn ) +~UR[X\WHaMB -nM˔O&ao l%PN=JIF:ִ o;D3faA\ -( pڝ _ދHK?0%,lË* -d4L -O}K=L -%zRv*ϣm!a`wR-j̤0]hgR7QD -s K}ФIaX\x49)_B -ֆ&|L -2)yDuP~0vN܍3) rq --0\{e%Pj* -(M_[uok(0X8/TDMۂ -sڅȨ0L:tM9V+0>Gnlz" ha.!pڕ~>ްaAjQPaPs]ir?LFmuS,8a1#YPagи!º'  ºWG! - +B9uRA뙿jB -g6Iakn# q{enp&acƉgJ0]yg  2Y"a%oTAzAq-?TјIaNgmD -fE˶^pB2)L}dJ -rm!uߎ^;Qm!9˾ -&V&6ݪ)0`^R_ K v[Pa[$l[Eqkm[*b:TzxNȯD -wcܗMm[HaSPE/"@ *wx=AmGbx(V) W2vʹq˧ߔ8a>t*`º~T jn &9 @u ,|xV R)anIr-Qº&d+QXF3^B ih-04{`[8a,80 n '̗\ sR٤Rż6s´?xS.ܕF?v -( -M -(%~0-}U9g^fwuWNӝcY,0x7[*'7wK J~L -ɶ&l`+% 8v0 !92n#{8/WFgKc_9n=04t@|?9Qal'@߶2Njߚ #} p0t$F%TsTDE&?ˈ0NQlE[UaoθYd^?P8~eHZ( 0^%ۘGZ9TY!a&k .0w{",3C82q43N*` 6nZaLa3s;vǷD޴7\a~TߺZ䋞F]h,0D)'>C5UFmD/MB򵪌0?!Jj1*"{ڣWDdwBKn=]~y  >l/y}aӍw.~Ccf[б cE #fne@P - ~ؓ8_xobk+ 8<5.B{xLJra_a8u2!LgWȢu+!+͒l !LT)۝_ݩ=a|wckX+" ?tm *" @e^a$SG,n`:a؋ ڱv8 ԠWv8N)0Ǵ1*GaH'h -#~ψߐaC T)veywg,nan-ϛ0;'s02#7>FCm_@آS$Rals)βFFl>0x-VagVF?R}"TFFԠa~$K̮CA0,oh_eDNՊcXaoܖ\" ccնOz ||j \U"8n[hJ -?BBF=_aө@&¼&%l9ן`P(UN`?vAj/p0!30KgQju%DY);/gq]ĘZ%hMd܆t%ȀHaPENKuq;o~1!`7BJ/\,_Фnw{X_CS)O2`p{_^_!~>4eW)t)/(/?yq\_N&Y!_#/eF~UZ_{|QT_/;&֞YV XڀRpTBu2˳z6_M#Jk~[pҋy_l/@m\@nK~ lv+D2дJeg.=w)qR+ˮNyn62xI;= ʌp`e׃ ظTGcGGLLQiѾ+X=c< -<;*(X^`TPfG0nd!{8lV|o['VM0f7Agˁji~wX4I ^Hl>zM܃^(ńy^^&W -ϋDq^`Ѽx>:d騋May;p ZP^ -{>lنiW @XGeՌ̰Tإ8Dň,| -#gl 3l@/߾ȽbG˶.._ITSW~E|x=s[]~I V], {|2R=&qg d~oH4q2+vlvPm/<BC&xi; ˷K/2ndYQ]^$6bJI$Q{L=!x!dqh6-/k>= sh="Vx%N1E2N Z - 6ƔJG.}{}ș*6"W^k&/aȮsl!x۳͐^d9ANŀ 'X;^f] -ƋX*B {zFū{M;yݱLV]$k~;\ ^t kgӑ@qWjx_r{t)W ^t#85 /lmha\^ds`3(3h'  -ËV0hi%Oe40q -Ë^t[fxyëkiQ='vvԦ?Oexo5kdM1T6Vģ)W`/Eʤ {N/^)/z[n@LEn?~c`:Es-c " ,8!c ‹.!V^ޤbarۂeEh[^t?M(?^&xlig=X!xu?mt Dr{H=ECmm!x Zҳ\T%^^sכ-/GT4Lr -O2]6al]Bx;ۦYezG{D_: EA^n>x@ܴgoU^nvl"x5MjC//7T#@F,ڲ^rCVv֣pLί%z2K63֙%wi ^j#. g2WCx `ep&ۂrӞ=RuWR&dʃ ОA9#[hʣmjFx'юapR_pBxWR]:{ -*R+vAmAxZ ‹ -{x1ۂފSu}3‹ފN]gBx?a}Fx?ARئ ‹y?'O5ܻcG&v{R(/$z]W)#蒰ʗ1@ IFxlG qKxB=,3|_ -kxC7E/s'# wE} 5^(ݎR 7(30E 2‹F{rƶ {Z<#;bbd-vg=vi^B! g*/rs^EcC,UЃC-/"hG^hU荠Z`^3Vz2˛#aS 莰Fl!x bsߺ97e#+]]9rOr/RJ[|8r;?r>*/~'2k(|a ܖ5ŌB -/+Hi.VU6ò DB%= ^tV\NN5<mHBnkTR^hy!xyqp'`j׮?Kʸ#^N ) - 3X Ih77~EưAy( -R]]. -eB]h)x2y`$zQwDrwaw -7fub.Ap-:Yw6Z#V٣Q$~Z˛Hlؕ*.4۱rE ]%Ш+TR^h!qo[>/4+ -k1yK/^,=zkx_g|Ax BNVZ^tdms򧻈r`[E$ˏ"ќ"(\vWFxCri6//Ll -/ }%xQB/+/ ľ/1TX^d[+/My./ -UPvߖ8m+J4˫/o\4r -˽3vblX - - ?kX9).V~~`Ҷ.,x3EkBmE%M{=qEqI@e毜ھ°rV]*lH]-hf߅kns`En;.=0a - O'Ζ+v.N)N[»:kW]ܓ@Yewfev)zƽ^w# 9z2^/_]4ⓙRew5;u .j:rξ(sE(XZ JLGߣ+JKŇ؝=^X&wyNcUߗ]%[VrgH;.*;;r[]2Q](zܕECY][ԞBR]M)%s1ecrpWbȅ9&JUp:mwqf&R]TtSS] ~G]EB>n >9f -]m"S[]T:OK#VPcpqLN}‹n;ۅ3+yט]p𾱷j`vbi]Zo.VlG[Xۅ/ϡb(aB.خ4 Q]T - -"NbJ*Mg@ - "Őy2hFM8\coE%b<6Mv9jTخ -). -=fwM2V"VlsΏ4.Fؐ,chTqvl"t 2(ڼg&n|vkpP +FnTv1YlYVvB۵qЂZW]*SodW]@vulv%M`": ΝKjv1+Kʶ>@ڙbvhdUWjU{Rt0k~vu|Dp,.1g.%1+jWV"j+ -[]|^Ew?]ekPݕem).Zʴr[]ݩBqLi=#lg* o.ۛ?vEkWoSB"Nlmmonw?;lsvDcPS{{ȩ<& ʒ]8OwfGR! 2K=G0 -.XwI^ewdHKڊpWho~B{I%7\]!َg+mb&UwIp[]!G% +$aD.i 풆͑' [rT]y]&wF*Kҭb,2K ]Gvf5%-Bw?n$pr.iAc+qp5{ndnEΥp\v]p4?vov_0xigw).inzЙ%y|^-lǨRvI];\õwۻ9%鼃P]Ҩ#sٞ.bwIsNi %c[].?yvIߎtY]2eSznD~T[vu%͖)af0)+ƶp\-`f %ɦ^ϻ_-J.i'[ % [T|d").If_}\f]X~A]l_;:x[]!g;po]%@ϝ rh4;ɤ@y5铡]h<D/C\pT]h4v逃p?%m@\3K%9&OmvԷej?0|vO'n% :rt)G6'Svf닊 - W`Z].9)1S?Svvу.i[lQ] ?S\BH}䨣?8jkv|AZkc(:i9K8_sogX]x<ZvffDvCX -Kڏ]7jk6M]hv)y?\ѽBr kڅv< -l ˵_dP\ðc%jK`tR.lkvtYghk.A(25é?S\+ . -˥& -k2˵ WrNOA-.צ-] rx\)@yK!hv7bw)Gr8=޻-.(Bl0\eAv!ȯ2#\ *th \ӹCu /Q쪃v?w'iohkĪ-.Ja ˵cDT0\G,^8kĜ]^ϱQrm2t]N/*-3ۂB9ϵ-.׎٩[gels%/ʌ.;~>!㥦fkB;1; Kv6e3@Y=H .hh7e<`&/M(fχji1D_D"PfvمjZ?(y9Ik\2{..h|I[2*.~ye8 h3p -J,F8`N -lkv,-.OY:~rvk u~ -S9.3n q^p\*.7 D`RiQZ]:oj-خaG0¾_vɋJF2K鹽jtS1Pf -2p}$Z\P^[$Smw4 )3҇7n kPf mvYԯ=U춀-hLVB_ߧ5&AwlO -iG%V,r"jMj4D2TEv9i0(HQ'췒 ˙ Ի5}[o\5fd%6aS]hU (_}߬m9{d7hE~Av9Fs ]IpX;o:2 ێ>2,.$Y -J+h@i{kȣMbZs”L*n/.^.`ZW -˛ev#m!vcØ.Zslx=x K>B종~fDB~gBщ8LxfErE#mČO-#_,~V]H._ycAvֆvEʄr2MomUީ}Nߕ dW3[^]Nx•? y5܅av w"#PvyMSE'GtjIA]t pd2c!˿< x+CP]ةvoMYϚM-؅3)BegP]h}*ff3r'aFx1lqA\2܀ǣ@'v@dR ~(^tQm5^Xo-dJs'ς[I^^I1;cᰯ7XՎo kxjm8~[`^0rk=l45i gyY(w'2|c ZD -=0vl]6Ľf kx!փU6u5?FۂIOgom\fˮ%WwR^9G)h/8d¹)F>38Oˍͽoy{qs[^JC{!x̐^OiV^*wJ%8l ܋ "A4HEcvɄc[^3V^ĤN:e T^TD蠸U\soE%c"q:* #6w|f1OpS"zb^m;U]^ ->ll&xߋ(q-Edyl+ "N$ EI$ rk=jU[_/%kd@,/l -h&o)e=H"΅T{yR…EriclpWp `|^ny>|?3A v?a="hǮ(g]^̴I#h KQH-haeU_qpicf5Ȉ/M%WWC HW?š"8m=! oZB|i{t; "hXŴ(3Bm^M-BV|qEʐ/ r=$d0ۖs[)_1ضK?cӅvS}ox|`G -!?J0Rp|]:LX|ķ5+/& U_b+/E*/*ך;~_4G%(/[HLV>|9^? ~[_^AhB9rXVYr {:x=+me|c*x[_|y"(W_Ũj)^_:ėd)' 7M[_:)\v -kz]~nF[O -㋢c*,# -盔j-2K+B䋂jdB rLo7)Ĺ%>d3Ne50 >֞ dUTG󥇐_TSyۗ9 Gm;ih+Я楼-N'rA/4 bm<LrWtF9ę6ÿ*Mm6@f)%X"™+mA5?Q7;hy}_q*-0tlذ>m9䇳?Ū$^ P`蜐e#^~&,>:&R]uJ;9z/wo ̡6aV!] &=NI LHA] -f;3h -hko`Nլ]bƂ5/fALVL?*pBC.U9a12U`ym6K?0N%!8H*l06Wٻ'1Aa>l02v`{vl'. ;JŎ\4 -@-ۯ`;g5[+`u,`0 J - QB̏My2vJgQ -5` |ކ -Cܕ@)`0~Fb`e0lٿ\0sGE 0T(O_ {: /waw U̴B Q`*+v.}` Yi*1b} HV悑[s+sw}[` WJ#YW`9݆m[`L- .ܘ1Q<2{pٕR`L>8CGrv_RaMcvY)\079/\0&/J @ $iWP`ܲr E<}_9c jܨ^hXh}DɻӃLsh I_``CO FG=),`!QAn0k2UV~: -*-+d0"߿?hsg*w!*h!6[Ƶd4{Jl+YVf!V:1ml+=VLsFa [+d0nQ`^q2pOjm,˼mсm+Ltd^`.[Ǭ-`p{Dtks6BCԷ$0헊  fC \GmUrC?Rh0$˺ ?Kh0)7 4;bfSAu0f.h0HM|淗Pd FV֮\m^S&~43N3̥N<Th0e`l\ʱkl-~AJl0IS`hD/h0I=u߸`(W`uh0Gόsm\>h0iW ̥+Be2k_s!I^zft8cߎ&R:q#]>MaWs3.h0O;( &l 3-h0׺=`f44R[cM@iY@[ώ:P> ڴ`xI`O2LY`.P`lp"I"%o&v> -LX\D͡ I`q|`.*roI \0i2o.4g.9=< &eq@{p\0l;.'5OdGp9 -&a:e3)rRN8S>٢(4۱ ]`޸ws@mp,P0ivE*P0i6-P0Y -&͞ L -'2L92LŎbyG"%xTfv춪`:+/h*+P0iX u` -=`n`j>N"jyw&GZ_F@-e.4-X0I6{`nl2L-b,k7zzɦݠ]y1'$Ђ j,X0i ۿk\֖OИzZ -:R2L_.XhΠ.4M0 F &*MR ~c[`u/B{KD -oag0Xhϡl$B &͉FfK1$Q;؂  [ڹ [.1 ,4;͟{ܓ[ ͝0 /h0idqNimi ;P`=C% &05W4XhI}h^况<4Xh421͊i&B՝2m8 K`}lc`q2XHF!5opB 5p.dЎ]& m  &E4Bஃ[ L ۇ Bu:q&2XHZ!Fo ,!R`])B ⼼-dC> :ULd6XH^~co TZ6Xh}`] Ͷ|Z@3U 3,4[pWU`"w2ff8ثEB{J ,^О^VBTn .% -,.dj^͖_sK=u!y:BM&BX]}TSR_#fZY6ױ?) u/ڹh:vׅh:!C[Z]ӝxUu۟k;`뛓`f8ث5 l{]L {v -`뜐`6yA]y̱̕jMG{<^-oCd[[V[{1*&.~uup[`jߕ{|wuua:q>e RaTs![bu3ȯ숫t[ƺۤ(+B{?ױ>\T>ػ|]aލu]/lYNBػ>TTa&< -m !,4*ٕdٱwۿtgݚܑZ$͝ >}.|z3="~t}.;*L}BX:ǿ0%M -KzWIyҬֺ:x #/$y=sg?vG܄s0\wlY<Gg` G{U;&l:›TAFq7/?8|.9(Ԯl8;"YUڂHׁoNf?g6Y-ɕ??OZ|FK2OiϦ/]**3*~卽1ث⣪+D56}|D56OR͟lTJ0yNQ/U-aHwmw,솟s̰s1KUѾad2Lo웿?y3ko[yi:+uZx!q u{W_sb8Tupv`_wX`$ءeҼ!l.,?8oPI=%%hZH pavJgRlcq|k0h76z^[oGZ=VfM[Ù1Ŗ<ӘpGz8+m.{8 ap_YmKypG2+`[\wG2 V"_Y0G0gW[yf9 -}k8ì/x\ 3ap5a? ѷ:>p_MJҩm8o gØ?<}^g뛳ya`-}K)N{}o^z ˝ o_o_yƕ{'D>ݱwB^3'[? Qm߾z!wo%|c)3)V'=wWĭZ+WY'?%5Ǯ7O]5%jF>ukZGߪ^Tn,]^y_j~"l5q$scciF\OWIjϳ>6_}lG8h/2>6_}j98~lq"syz񋼲 eGO>u_}jJ\8~q"UcEύYi/>66_}l58~dq*syZ|#Ff?u_}l[8~q*ScEܴύIi/>64]gǯ>6_d}lH58~cq"syVt#ILdpXnx~Cm6}7>4G{gÍVgOƧh[Cxvxiq<[gt8v댻Ƈl?Cxvxiqxq4g dzK;#}V/7>3/m7>4gs~dzKNƇZSx4xq<;g48w\WK$oƇ0Cxxq4X>;m48-6^n|h/6>3/}6>4g7dzKgO?㥥ƇlKCgM4>tgKdz9KQƇl!CxxiqCxvxiq׫*!_)d`_F@yl0(c dQw_ׄ+CQ+/ׇ0zY=<Ot'6?5؃CɃ֌ǿYs_;׃!&^4^Y^S%}N}?V7.ZLBVE]_ue_95a/4KtM]X! 5f;jNhYh#}U]s/. G98|nt{ٿf` ve0b8ﶱ{cI`FolYuo #vnߺws?md#8>udV edLJUF-kI3g1bguXM)Q/-_@q~?`n,zq׊1`djQ__-;>?6~0J@ -L[L>~0?6 |eFDY_>Xza+ʔ'S~/u`e볬c|nL VKSQ(`T0g[Kd px2;=IJ>!e3 NtK9l(Laol$"8tPhx'SNկ -jβ2t2Q}wzV ~M*(_W0MV`T/_C ]ͥg6yOּ>0̌'IR(̵Űy\Kn풕uvd*_(훃g5Ǹ#2Ry5"_4NR>dtˊl=58!+CPf^I/&97֖Edԥmai?G2*>"ά^~iڍ}JZ{OxN,duުܴDֿl-LS |S῰"8h*îELU&Ve.0:~͸*߫g{/:ak~>3,~+ʹU7k}O} -UC)̲ʏ{4& O<-kȆh?V4f:Usu >+tQLiV=|}X屚.̀DŽfo#ĭj3adٽʗ}9v-玨2<[[}(?3גk Wh:UZh[XDia"=tKC e|~0EeL<[ךᬦ+c7V/BC)4 ;ɢL~=tJj} r -R6?*wbΦ{wV uC^I8+ s(eSVOݟ5mkϳJ:C'RiwLu)Շ T6/ _PSW6ȢP|ʋe&W~ng"KQ~;s~bQP~kȪD[!>kTg߱fS3+ *lDWi>gT(jK\Q8h>޷دk~/5 +Gh)b`XpX.5Vz߱mb3۩ɂw.Q;m{sIjA;3ء*=P( z)їYz+KfP>dZzG;iQ1an v -*~gZ^pKˍ/Dx>]ʨ{r0+kݷ0EK/d͖ e_, XL[F+4qaPRz煻Yz~T*>OYQ  lt(Mk k2jhȰ/uưDbo0za ڿNMێL& ?*?t%7[Py_02j3 nFT~;kA?! ʏ(: >K_ -fPQv} Ki)^!cf4Odӫ`Ⱥ&]sxhMBx ^!/eN!0%1lsV} z݇>'+ȫ>d) 5V}$>XN7Eo*GS,^ʜc>&iTl=gbȠ XॹK^yVxUMv~Ȱ_¹ְI֗Ü.ydpبot(,Ʊ?)&enVRE*[lJu#'xu(**+TνYe+C95*?WkaE]w~d2c0w4Õs~ҁ^!7:-[-:Շ;q έM,{lpxYyg3-ʒ}.Ed+?q& |75pcU/QC6:׉l%PᦹK{|e7~L҅7~-CS ing\l`2ۭm_6٭<S۩? Suװ8gDL -};Gs.]wقOrNyÜN3Qrڟ}ڟׇ;d.CgRP"[>E -KXnVʊL[ -Y՟NsTA6׃w~v蔲[yl_l9n݇l_N$<rrԱKO Qv>tN3K;OcC _+┟GSsjU ;!hNs\DVN6a@/vnKC}[!ö4zќrsC(j cni v2ܣ9L\ -V~xgxEu+?WRMv+tsY/ל?D%a0#n|[y> VuP -|[ CA Vl&^LSUFqHc2jC>˜'yPv>0+s>~>S_c ^9o䴯5gWNjXia- wh [`0mJ$i>܊7֖nobiȪSFTk݊ـ=5e)>]`#q^ue݊r^ܭ|EpN!JlRxX Tt+>:ki>{Xt4О".[! Ky &UyoVNEŶ&{b yBzZ{)ʦ;t0(z"[vY}FX>/wog/lTx }&w-]0+z`Z}L3.(K4bxEhPU}6,ڏ/fv(a_Ƞ^3XdWiwY ީs3id/YJ&c"sľy w]D?iȲ3cA2)~yⲷ~r0 -T ;glЩGxN*xfPt+?~YPpWN*i]xNȩ8O=ng6AÞᔟg߹ݲ┟{,)?,!UiX5&l15WO eSE&W.S&lMȩ?d0l%+2܇%N !ŨN6+Kmp<֯o<>d2Dd>Oj]\LrsuX3<֏&#b"n뇌NPv~~`jT$XsYҽs}NϬj+e/9z-VEc?Y3!KZS%SkN;bet\2/zjl:_Y\Gݵ,VK߫nc[lS/˂_ 6>ˎR7-n_i5KA`ج" /ܾ%G:͎pqiݩjHِwq>OID ~EA.yJt<~BFey|=y05WG+AgJUmHf_jaP;}k)FOdi8şjwYb{ Ǖ.%~Sj>_0Pj<׆h;}jw GI{$Xbxg3?eNtd8ŗLo"^KC_q︙1߈~m^'. \Ni`D,R%ɦmKNvZmXhM XCAQep-/M~m&s6?f}׬j̔qik;'FdwFg]3A_}+\}1,W;}r'H9#~.q$f;lO);ńegVFjj&UoQ>&?qRY/i`侙MO#ag\[?ss -}ga=4T13'}g4LvĕO'F%l=0Tᩗ,nBK؇;B9-nguꧤ} K2Rdi>+xIG"}Y4)rG&MطYu`n\))V FI$Lb,9mhG|o -oNq_B5IS(76g\ujP<퉬HPZrwj+{4ٽ]vrOv!SFK+'FzB\z`а/U sY|Z -L^R) K&sͫd~Dv6&Vs7x΀YfZ+؇Ѩ'̇je@M݁>6T˓.&iq #SiV}Ra/ճc.rh3DV~gդzTkVZ.d0ت, -6 mq bQ~hP uMװYz>U")7|@Wt%JgBD\^6@>UZ1٭$cÞġ괟Xn(?QMyw><Ԋ -xWy4é47j+h -G~5^yy}=Ե~: F.*rt ӂI#x|;zq*xE|VDUͩ>.jgхeMtkSS\ɟaºj>KU=Mx`8߫f|:I2^̜HN㯗2W4i(d7ż5:Fs*{}!8lѺ̌yƜM3xnCVN,A_)}< ]LJ*:}F5X[y&'S,}R{s(nӧAkV{sV|]iqc>ma,̯@mx~`oSs|/.d~"M~$l!l>f@$Os),]t @݉$ןykJj>&_~+^ʗj7+7X@k>aZex;5ΓS*>6$f5h |B+ȡ*y -}-[P.l%d^>sgR¯Ȯǩ>d.e,_Lv>sb&&S -ǖF0}VGYRz)⯒YY=LXҒHu˺z`jOfY2hMݾ_X24f.ag -VJ2\; [gk[C0q`NcJjc yvzmQw9SD]JrڋEd S̥IzjLa:b1&l>X$%'e0-2Ӈ^Lzy-Tč4K {EQ߀64!O/ϵݕ~fkyK!yݜN3t>WOז"&+.mg u *L4q~d[^/ 9d70Vru=VӍW\^li}ު -}gPq]r~(p:֧ӎi@[?ϓI|0X>{gPc}RBeK>YwhY|^You-J;f/g]+KC6sԠ̥PK*LNj[!P5c,̢[wf4teü?'P^}>_uN}^M}lծ.F\F?+ϝA ( uٗiL٭SRLvNM\ҨCV\Fa;{vi?\OFdk?U=$kb'$Yuqj#EP:$ƿLټgcn?۽y}2l_'x㔟*b"Ӽ>c)6듂&{ +{=_.?ஶ`}v'z3H%4J)٢Ci}ߚ-I>E* Հh42SAY/E"y}Ӓ.*-u*%׷3J#'OgONUw-gYl8BRB%iݥ(kgI1ԕ YlM`lb -9s-DX25n~Эj(s{?*Scv_o,,<>:>-gdvXM*Խs6aN>O)49#>tURrϦ\edׇ[HyNi8pEd%׆f2WB}t8r5 Ի2^nea0ss5r3 zߞe`{r\`وefedu;?ejtK_<YsA?:_Tj6uQ뚞Q  tfȂ2}ve17y(Ijʜ/1'LlV^\"b~XgoR4aiʂk;chsX%L>Rӱj4]+]ّhܧz= ~%գ/" v5ᏕwTm*EY0lE] 2 ?~L .`o/U^'om1y6oC] e𗂥l8 q~ ҧˬȦj׭}҂aלM~fY3?:)E@]ďY=Ҧ_V22L>/Ka^L>Ǐ2w[|2,DIb ?&;$K>Ǐ!q3sZAA.iZƀgN12׬I3KvnJwcSw;6b]c\яbO쵩S2GO:W^A ՟yĠ_tbj%1< VAsf9~ ,0BKR洟gYj@п%3R/嵚(s09_ fw)~<-婝n g3 'j),3an\q*ϲbۄz^WwYSJٺaպ^VPFL d͢g}YBb}Z[O$=1}:qTv5٬.8]¸όg ~<4jԫ>M~ֹ-|.'A#S?{u6=&ƕ/ӫ"tPdN49ytvdzb ^C>ɯ,}G\8i e&~pP|_FY~ۅs$?'osxBȁ* 'Š%LΑI?m֞'1{+a:9F 'qO'iisX#Z9|x]Xs?[ԫe.'34}S8L>͜gܵ*9}cCeMHkDv䎃~Mk̿Nc(k5Ru*T0%db2X@cr, ` FٹfE \14x<`wހLŸ/X,b ,e g iLU`yÂQĦ&` 3~',eLc .`M`E릂1vi`  FY?ky &>a`a# FYt?Iny$q<`M[U.e]6 x=TQv/,E< ,t2w(:X0I,?OL2YPL)= -P&['(`].`+0R,dDz!Q2P\H`h`Itc L0`k] ֤W` F+dH0{ɖPOc%ɒ^ib"XvWY QMUk<LS2J`\5`,w`cf et`MXSz<2̽i F^ͮ H0= Fi!x2`S "y<2vA]Z\`A٪چ49L,Jūoҡ:, P0ʰEOP0C_ -&T9@(;*@X -ZX)L\못+q`Q7+ L0X=l%L0-m &g[n`Qy}3(݈G "I`a`Qv^ݩt0L@Q=m28`d $:] H&<2hɲsGW ^ޠ=28ҳx (]2$0 %U߫GQ=Ruy$e#(1z`;ٺ& *6nWʡ@kZ(>䴧'Z/Ik Q5&`al\ ֊j2 -F(n -&2*T[>`RˊQ &2&e{50U8%6N{g{\,ζ+nI3ע}<I$ ,Y^A_MY|f7啎Ld֦x@(cg k:`"btkҦwZg<Lʌ72DVvLd`j^u v&sM.X{OY?" -\ vfy"X*uj%Q n`"v+ ,c2S}a9u}bBx`bi{'y`b$iz[&1q"c}Y޹?LZT<"Xn=ѓM Ky?D02#j|<`M!$hA i0v\COteTD0"9/({f)ޅIJKzb"o$[E[8TŠX$eN pu*( YrQ\m35@09Hړx(#^hvFQ6Y# &+mq<`rsBH @09$LUҼn2v+#(RT -3լ#(be28;?9 xZ' "4eO`y&cmD0iشD&{,ʝ{"6sj/(nLW5x``̠fc<>L0fE9xe`ezV`̘c&U`' v)|D1ϊs)J79'E&[5->L0V7 uA#2qu&`<#dZiz *%Qᛁt0# ՜ǓFӕ`#Œz<`'M+9"o]RXA_D3v,0$_@Kr7i!1@K\wVrB OO6R@0 W3g:@0pMi<`Iv\BO`IγvK7C]qHb4"T#_@ ;e+w!tE<0`v y`r}nuQfǓFYڕGe7!K̈́ܬ5ZHlٍ40<+ "ih;(cXmi`˾&YFٺ,HlͫKDiϕ i`%mE}ODx%C+_7403-"K ] v2<00]7,0iHU # a8Yk" I74p9W|$X`8Rc`\c,3tP>g%n3HcM ,1pI# đ&#lHcf4t%0m wIR' L;Q' i`Ǔ%jYg㆘.O!Zt Rlܫg2'EAL0,m~<`LcU\婝*H0ҦD$ `>" GԞi$uSH0F实X$˾ +Rd$X'* F:4${EƹH@e<H0΀$Ɛ`%" H0Vk)$Ȼ$wRL .`oafJձ(ql -6aJ -ƳK#lh 4L0Ex0d 6)+0& 5Ry@&Sw΀B#=Z+L:gɺ`CL `C2iWdHNX0Uq`̻UĂ F{KX0[`"[T`fh:c+L`TvwHvH WG*f aAI:񤂉 -,Jt T0ʰXwHnm`LN/ g@rH{F,eK`fTɚ`CRll`Qd>~ F,Tɀr#s햑 -K* -M~ 2"5[+RDZΖ@۰T0v{8w$!RfOQ&+e*&5v=G95Q;R$[zS(KW6RhHNa<L1k`Ñ -6O(m:Y'攟GF=m$-)]}dc -H0Ao}*' -S.O&!دW&ҧ &v8Rݿ"¶L01Ǔ FlL05V<|F` iI LJL0vtRO縞 F)x27ҁ Q|+w`|%] a`1?D&bЅ70XyF"N8M L04Xdv`Z֬?[dI`c`Bz"x&AKu 8Ȝ32W6'p`>q`F)80溩'֎'E80K:X;URq`Ҙnn1GW4&i` g餑‘3*I 40"VK.,0rZNdO0, 2:.&R?Y`UX`<$%U85#" ,0!f-<,0抒p^Q`쯏)Q~Da>sD13U`h\[w# ZGkx GÅb=(0fӝ)̡}W؈cMڌQ`\&)Vs tYQ{? >^(0Ac - q|^[IAW~Iaмc[t504XIQxFca3+ r^X3V\Āyv;u/br4[hn)`\H+rp|ZS[C@o^9`LŸM#$+W9`zð4g*E"xM^yElil 3c.5{Fջ|䀱_+ -{>B~mS+q^9`<|N"LLUg5;=rKxreYX1 ziÀ+r[7,$pX^.Zpxs;ґFsV䀱1`ev:VR  e0&*lq<0`ll!`$`\:&{ƣ#Y퓣-{ ~ Qt+cZ` 3&K^c멺Nײgi -WqE - 0XB2 0 *`$OuQ&>Ncd= 0}Z|buON3 Yu0V^;&Un&61RD$OTIX\1 4 `bky0E-Ld0.LDbȰhZFGK&},tݲ =.v<`"ks0]&"I94ь<Lr4Xe7L䰹6ȴLdJ 8.0c`KDKj&2]QLdn|1Dt.0] & U0`]|r<0`"*z0`A|֞݅sDl|p(cLdxE+Ld89`ғ>: 0]\J 0ʴob^<LdȀQGa_ iHLdHIyяLd"ofڅ$ӥ72F  -d&2g.$L`:8PDƖ+F_r.(` {C2a$0`)|\U&ء6M]$0`L74 0iD=0I_<g6pdrǀ0`[LDpo7S$_8g﫮"P(ҵ=LdU |(`RI (kgGFY=;:80普guɾ3cŏ!>&C5,+XO[ LjԮ9(0Sz eeu`P=(0G1n.?bM(06iG -LگB&!<5;ީ}P`1څ sTu"{]z`Q=HVX`RM~< 2PԨ|';{`n]" .IǓFS X`l}E?M3e' VbÌ,06g`-q"%{_V# 2GFxY`4]'C6nY`)i|%u5,%aыa< 6ᗫY`Ljr:' Lfj`qs< lI~8# - NŝI`e X%I+]h.O~Ih/ADMeG9f< )z -PP`ӈck~קr$06K(I`셿# lJe2~M$MbvxNh/O>@UI`rM JXnJq -K(U@?w=`DIlf& ?(0(.i, -l --7xJyrF]闹Q`J$0J~" =z" J$0z\þI`)$IkbDɱ3(,Xy7 (0Vn˫(0[FƲIk.quā ?^*nRR1UFWc`wQV*u- Ky`4+ -FFPhy`43y`a9@E;6y`4^ڈc;o'(33' zulH0^! FD `W/͚}`94G?_ʄ L&QO`Qm{ ML0Yϖ`M[93A@} -&x(lVX P0>U P0)]`o^ -yBZ`M2̶v<`y6`D -&?8;)P0 P0lgI -FYчWLL)(d+&@h Y1kZs<<Lqz(XbQKzx(X x@P`M -kx(``qq M7E}^ &F8|]O`bY]@Qv8[M>( j0#YCQBk6x`q'`҃ p<`l`na&'Iڰ['D5F#5i:PwyL@yF$emE`ѷMx0(8L0Ҭ} &=ib3[v<`^*  hkҚDZEݭC$00 $1)L0 `È7] sIɫuN`1*sL04Zv`5L0Fr\l2g/CjXd, -Ơ'(Ε_`dOv 1Ҹہ F̷e;&&D#lncog=L0FTn&e>`z 3g(Dao$1 --Q6=L1`?-y}dRHZ`xFT0+:Os@-- X0//+*p fi -ִ%`rz -FٺI̫_f5m,2, L0759L09݂j5ށ FYavۢ#YVmI7lE -C‚ŦQQiCx`霹@IS`u\Tns@LVvcx*_@ 4;J sI~uS=`< O?X00Ó%,*LOb `L(r)Ym=`P`0 Ƭ -c;.p$AŃ$n` ̺ n`0&ZcY>ׇ[ڕD &(a`""~([Z[lV -' LdBe$IͨQa`.00 qĂoRP -_uN=r1"6:\0tW.ʦ& &JV9\0S$9n*\0YIrĂhn0S]G.vwSfG.Ȱ0pTV62pTaё D2ȮHSqLEq.D\~"Q,`*Ks F6l#Le`&S`O|Y~ldl[`l#)KNӉl0- QsTXW}^Y {C})_WP=DE`_[r0 ;U2b6`ikϟ> endobj -172 0 obj +170 0 obj << /Type /FontDescriptor - /FontName /EAAAAA+mwb_cmsy10 - /FontBBox [11 -215 942 727] - /Flags 33 - /CapHeight 0 - /Ascent 727 - /Descent -215 - /ItalicAngle 0 - /StemV 0 - /MissingWidth 500 - /FontFile2 173 0 R - /CIDSet 174 0 R ->> -endobj -173 0 obj -<< - /Length1 1992 - /Length 175 0 R - /Filter /FlateDecode ->> -stream -xUmle=Ҏ{`3^wLz׭s%["AZC[خueAM/CD%:_r4!HBb  m >s/^:jxiZ |'T~lTvvSdg҆70$\qm#U7s3lxl~b{gUg -l;"9I=g,Q!_^~uK_2 -y'.zWJYN,1qPo~eev2EcQw)8fg33 uk5Uuen(H",͍!UYl3&񆞄Mzmb'LHU3vUYy1VMHi=iD%S˺\> 5'- JnML1DIO&^S|r]O>Rl͹-6Wl0ȹAсQMU%EƉRXɤ0Yk4+R%nH+0EYL2&'kQU􀪜EX􊰨$-p&L"aMXTTao BUrIU̺vua7YKn-&#*ĸ9 Ony}-4h"'\YxkC%B5nń`9U;[ֽq_.|[_ޮٰT]ɚ` -U;͞6c%Z!_FΈghyF'ʌ +hR}Bfp'ޥ.Kd km ѽwBxc[EwqrSaw0/;`l>pJv.BLXG uLr0*`-,`l^sMtFS 4ioh:F֠SO KxzGI;MJ$El-Z (;Iˎ9DHu<&*+qdlU;Aԡ٩L*=-m InEb&+ -R@feVbFј*@gKӇQ]'Igt&?H{U5JQ#TG*;Ixtld> -stream -xk -endstream -endobj -176 0 obj -9 -endobj -177 0 obj -<< - /Type /Font - /Subtype /Type0 - /BaseFont /EAAAAA+mwb_cmsy10 - /Encoding /Identity-H - /ToUnicode 178 0 R - /DescendantFonts [179 0 R] ->> -endobj -179 0 obj -<< /Type /Font -/BaseFont /EAAAAA+mwb_cmsy10 -/CIDToGIDMap /Identity -/Subtype /CIDFontType2 -/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 172 0 R -/DW 0 -/W [ 0 [750 776 ] ] ->> -endobj -178 0 obj -<< /Length 180 0 R /Filter /FlateDecode >> -stream -x]Pj0+l CԒX}q z0h[lE^X gBpjV& -:G:g} -endstream -endobj -180 0 obj -234 -endobj -181 0 obj -<< - /Type /FontDescriptor - /FontName /EAAAAB+mwa_cmr10 - /FontBBox [-43 -250 1008 750] - /Flags 33 - /CapHeight 683 - /Ascent 750 - /Descent -250 - /ItalicAngle 0 - /StemV 0 - /MissingWidth 500 - /FontFile2 182 0 R - /CIDSet 183 0 R ->> -endobj -182 0 obj -<< - /Length1 7332 - /Length 184 0 R - /Filter /FlateDecode ->> -stream -xY TוߴЂ$ZXA, `ly 6؀$v'v4N'M<4'qԕ}کORm6M'ɤLtwd$qI;{{.߽"7oedgOcj554h/P{ch|~; |k\H.xh'fL+fjph|rg`9^=77J'hl71κP <959=szS{t?8C*d݉ t4{Wx n@34G! &`alvh5z0 (,!#{*v^ν{5311q8~~A֋ {Ǿ&X3%~W b|^{筍 }|:]&Q#cD d4@~@A{S j 5ڟJ}*ͥE4:[Ci#:?T:7 -ꒌCEE%!.4/N_ ?"ڴNe<<7}|{ndn;HPyl%rh Z9Phe؝!iS)AFVo3\A}ٲXĎdbp{@私 L r cMj=X;}<żі9Ar]q9sn} _]ީLLUKXֽXXmGx:.,i3oo,i\[{(T$ws艴L:3\iJ]5Ee*8[)reQ-o2]y(tx,UخS4Hd{Cvd$@D<%He.(,%왼+FWxjNxW̙.:oǓf7?p3 =??3=uϜ/Z_ kd;z”-cMld+].+ms,dKu~iy`pqϷq׆o?vXtwՄ) F<*T՝TˑP(@2c.[)LJdd+A!)2мtciVSM OSwecݍ1) -bvN=cf+q8WK&n,pF2 wxLc4 -d{ǜ%V8scdjZ8fPpJϋ>EsʳѨ$'y`!<J6jYyZYG :FLď_*C䈢I/zіxbMSMN-d[Gox4շoJ:s@i$?mve+tIY -RBfcQc%.8q~В}N?*7m}^]A&^s=Wk6ty/䨤:W[vu%C)?TG&̷*T+9y&Z]fb!ө3P)5o(ZB1z'S: ~AEpr_b#'į7rd -ӚܡGjWs|TG_nߊkvw_ _ _!''I+\.9l= }Y.{srކZN!v1p I ՠy l0ïN\voXڃ_[ʨd:Cy\ e:ց7:c1>ު -*sțILykaCىf](rK8y: -Z[evŚ - 9!+ ص|cu p-K`XXJL!@Ʋ@( ob3\\m*ʒCŠ]-~j쀡tK:ݞvoSkj5'[u+S;^: BM%g?rf*]QH -1F"Σ ͧG3OtӻU(Ʌ{ ‘R -F\ȕh7Ie\6(b"x8'3&)5Y?+:%OZуbYTSxw;ag#(P%<|~]Y^|,a"^ܔ|qРf,K,B]f9PxtJe ^S{F0Nہ-;nW[q;k2v]!ܥDNhb Os"^- 1%Ă@fADA)BlO!GiE1JIv,s(DeɃM#޳^9= 6^W9n(ăuG<ߚ.h{qk}6$Bq$??OsݥU2E~m?B$$aטCL -}5fA{toX~8mgwU2aTo݉^NNS1ne+h3*ŬW.sXԺ"zSLɂR&2wdoz!w=MW[W -;jg&fS,0yܫ/02b%rn&b=Q?ټs̔o&Q -05be\^r,3ģGR9NAƻ'@?I䯐:2RdO*`2)>9]̷KU+r͘VlS\ɹpO1׶PYM;wXX|z!锱D*+D,HXcI7RHad&ef"y _z )jWTTaږM) be(ith4zdBT]޲g-lb.(Rū׺f ä X= SjAB}yf|  Q;r*h~4']t 2AjSDcf@{E_j3w8 vea .լ-2'zT&$@ hZ9|_W&D휽61zd <-kcז?۽lk/l_kiwK}(SpTWtx{da"ZP(JbR,G; -TzqdI!^E:sQZΐ1i(OB@;F Iǝ DZMCv:f~(+m8ؿ~eGY=x9/NVTW{otygN)-] -y& 4-:5Flqw rE&>k 3D ޜGNrO›hG@; }{_J(bwz4k&oŌ Y1qRDOUL\ xG6 )w(E`](/-Udrłl -aEB3"3QyLfLE(Fu̠܉OS&NϤU1ݔ> -stream -xk`+`X*^0_4 -endstream -endobj -185 0 obj -20 -endobj -186 0 obj -<< - /Type /Font - /Subtype /Type0 - /BaseFont /EAAAAB+mwa_cmr10 - /Encoding /Identity-H - /ToUnicode 187 0 R - /DescendantFonts [188 0 R] ->> -endobj -188 0 obj -<< /Type /Font -/BaseFont /EAAAAB+mwa_cmr10 -/CIDToGIDMap /Identity -/Subtype /CIDFontType2 -/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 181 0 R -/DW 0 -/W [ 0 [365 500 500 500 500 916 500 500 555 276 388 555 555 443 500 651 391 526 443 526 276 750 443 276 333 500 500 500 680 555 394 ] ] ->> -endobj -187 0 obj -<< /Length 189 0 R /Filter /FlateDecode >> -stream -x]n0E -/E)TĢ5{H ,_Hg/$2Ȓw׫+iv4Sjf3[5F -wII|uF*,Gld,/f}}MLSߜ&ך~]k:YC!FFgryUvĒOjy%zM47ڜRyQ(-ݚu=iA(T2>PAe2@: fjYi 8| -DOM}@)$>Y$=tkUZᱳ_EFv"t( GS82sue6ׁQs~Vh!Yƣ5θR_2{ -endstream -endobj -189 0 obj -364 -endobj -190 0 obj -<< - /Type /FontDescriptor - /FontName /EAAAAC+mwa_cmsy10 - /FontBBox [-28 -959 1123 778] - /Flags 33 - /CapHeight 683 - /Ascent 778 - /Descent -959 - /ItalicAngle 0 - /StemV 0 - /MissingWidth 500 - /FontFile2 191 0 R - /CIDSet 192 0 R ->> -endobj -191 0 obj -<< - /Length1 2008 - /Length 193 0 R - /Filter /FlateDecode ->> -stream -xUale~ul] -xۭʶn,v (B&ZQX41cQCn!$ `I0nj(Jk{}ywox*x;Y}pyzd8# _iMYNje%3w%.?MFի)>A+Ozs*;sBP.ɆLnDvYDuEWY=:OֲHoH|hF -9f^r pm, -b / {Ѝh +b"z5aX \? -oEv]cǘy[\D (N:qNA1A -m۰^V{*UEs j~<7>G4 -OXhwD#ָµ4תl܂3ޯrHXlŠ!'CFh?0b_HYnaHc%wDЈҮkhWPdzǮzsLMݚ%mN.rFz,2kjl^b.B˥>+VȐ6%(:Q0EO[[V^aNE$yXhx -|JrԀ.hjUת=u!8D&gh)]G~zJC#]jRcWٙpRcql@!TUV0o " u޹^}R͖-5oX[__4HO<2goA p$dh_Gn)R /85y35= -u\]XU,{@gY`Յ?U,?d\w,:o);v"6z\ŕ9*2f˘N|T2+du}D٘eʘGּY0ED9L#$Rmdm!ҍ.ucBQdΓc#"h&Ir陠pQ~IT9®f21A㱫d2ɣQtU.?;Nfm9ݥʺQHg䡀52Y }Y0f"ԍ\ԐrS2sb&R}fh:%8U7JudYǍщla6H\Ǩ$6<1m'ȤFsSIszWfs~JNmuw*9c%_^4$lnF=B*xs6O -endstream -endobj -193 0 obj -1349 -endobj -192 0 obj -<< /Length 194 0 R /Filter /FlateDecode >> -stream -xk` -endstream -endobj -194 0 obj -12 -endobj -195 0 obj -<< - /Type /Font - /Subtype /Type0 - /BaseFont /EAAAAC+mwa_cmsy10 - /Encoding /Identity-H - /ToUnicode 196 0 R - /DescendantFonts [197 0 R] ->> -endobj -197 0 obj -<< /Type /Font -/BaseFont /EAAAAC+mwa_cmsy10 -/CIDToGIDMap /Identity -/Subtype /CIDFontType2 -/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 190 0 R -/DW 0 -/W [ 0 [365 276 ] ] ->> -endobj -196 0 obj -<< /Length 198 0 R /Filter /FlateDecode >> -stream -x]Pj0 +t')JB}i?԰k+! -if$s6"z`ӄ_H! 8ZWT5hV H~#N37^#pz~'hr4u#~KwE(N+w> Dq='{ 5jˠ9H$݈ťL嚪tMQPYH쒷qDT QJX9uxl5U|}B -endstream -endobj -198 0 obj -235 -endobj -199 0 obj -<< - /Type /FontDescriptor - /FontName /EAAAAD+mwa_cmmi10 + /FontName /EAAAAA+mwa_cmmi10 /FontBBox [-34 -250 1047 750] /Flags 33 /CapHeight 683 @@ -1626,14 +1322,14 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 200 0 R - /CIDSet 201 0 R + /FontFile2 171 0 R + /CIDSet 172 0 R >> endobj -200 0 obj +171 0 obj << /Length1 2648 - /Length 202 0 R + /Length 173 0 R /Filter /FlateDecode >> stream @@ -1650,68 +1346,304 @@ qi B endstream endobj -202 0 obj +173 0 obj 1823 endobj -201 0 obj -<< /Length 203 0 R /Filter /FlateDecode >> +172 0 obj +<< /Length 174 0 R /Filter /FlateDecode >> stream xk` endstream endobj -203 0 obj +174 0 obj 14 endobj -204 0 obj +175 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAD+mwa_cmmi10 + /BaseFont /EAAAAA+mwa_cmmi10 /Encoding /Identity-H - /ToUnicode 205 0 R - /DescendantFonts [206 0 R] + /ToUnicode 176 0 R + /DescendantFonts [177 0 R] >> endobj -206 0 obj +177 0 obj << /Type /Font -/BaseFont /EAAAAD+mwa_cmmi10 +/BaseFont /EAAAAA+mwa_cmmi10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 199 0 R +/FontDescriptor 170 0 R /DW 0 /W [ 0 [365 943 831 ] ] >> endobj -205 0 obj -<< /Length 207 0 R /Filter /FlateDecode >> +176 0 obj +<< /Length 178 0 R /Filter /FlateDecode >> stream x]Pj0 +t'ٖJJ!>hpl954QCRfA:g#w:M8€uEU*o5P$99Ჱv&H9 G&H#Y7n%i~E"ë;H6$c|f\m8>jeS F}K:&UèJ,7T3}`]=nj!JYy52dz/w endstream endobj -207 0 obj +178 0 obj 242 endobj -171 0 obj +179 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAB+mwb_cmsy10 + /FontBBox [11 -215 942 727] + /Flags 33 + /CapHeight 0 + /Ascent 727 + /Descent -215 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 180 0 R + /CIDSet 181 0 R +>> +endobj +180 0 obj +<< + /Length1 1992 + /Length 182 0 R + /Filter /FlateDecode +>> +stream +xUmle=Ҏ{`3^wLz׭s%["AZC[خueAM/CD%:_r4!HBb  m >s/^:jxiZ |'T~lTvvSdg҆70$\qm#U7s3lxl~b{gUg +l;"9I=g,Q!_^~uK_2 +y'.zWJYN,1qPo~eev2EcQw)8fg33 uk5Uuen(H",͍!UYl3&񆞄Mzmb'LHU3vUYy1VMHi=iD%S˺\> 5'- JnML1DIO&^S|r]O>Rl͹-6Wl0ȹAсQMU%EƉRXɤ0Yk4+R%nH+0EYL2&'kQU􀪜EX􊰨$-p&L"aMXTTao BUrIU̺vua7YKn-&#*ĸ9 Ony}-4h"'\YxkC%B5nń`9U;[ֽq_.|[_ޮٰT]ɚ` +U;͞6c%Z!_FΈghyF'ʌ +hR}Bfp'ޥ.Kd km ѽwBxc[EwqrSaw0/;`l>pJv.BLXG uLr0*`-,`l^sMtFS 4ioh:F֠SO KxzGI;MJ$El-Z (;Iˎ9DHu<&*+qdlU;Aԡ٩L*=-m InEb&+ -R@feVbFј*@gKӇQ]'Igt&?H{U5JQ#TG*;Ixtld> +stream +xk +endstream +endobj +183 0 obj +9 +endobj +184 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 185 0 R + /DescendantFonts [186 0 R] +>> +endobj +186 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 179 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +185 0 obj +<< /Length 187 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +187 0 obj +234 +endobj +188 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAC+mwa_cmr10 + /FontBBox [-43 -250 1008 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 189 0 R + /CIDSet 190 0 R +>> +endobj +189 0 obj +<< + /Length1 7180 + /Length 191 0 R + /Filter /FlateDecode +>> +stream +xY T[畾mZI !-H!Xfll=qb'NtqǓ$uevn>Imuڜ6$'frx4'3'<=qvwxpX^[XV`|FoݳҖ?W&{o nޝCM54ѷ~^DeC4Y(sw왒Sflbk/`у1D\0Z*O\ɉ]w@8?s`OOQ YxW|<Şuxށ[<g x8l-PU `e_c9~˹w99go&_qq19x_ H'KgMn5x· +|.Eg| G$'nY ⩏y VZAjR*B.xe3/x=싁:Ke?:ĸz{R8|J%fv ai 1hc|Nso{#s6ۻ͕>H^ϫtm@䉆[;%iX{ed=vqJ+0 Z$cfE2hE;;c@{p^a(|}Al-K {޺FX#)T-zjbi^H<^!\E%1z*xˆ@b2~ ?otz ~$ }24OI} @ٟ4w C%ee!.0/_ ?$yZa,\<}r{ndnIH,%rh Z9Pheؕ!)].,`%6ͪ0CY$h-GdwjXswHtL r  cu4e 06:Eі%ٌ>\%e@)g3 F_^Ɍ r7Q/>Ycoh,sO!7S;_{ r &( ;ӑ1MTҕMVaDFQ22ԡ 7 Y<|D4_o U!ɶ%goޜY=3qۢlLidcf15܌2@6 Ppȗ&: d9y1Np+ǮU(x3hX6GV`JEHbNJXJ}HbI6g!A>-IAIY,gqXWy*K쫭V?Լ=-{fǯ ʊ /igtS]\X[m>>l7f;}!]x.݉-S`m5lQAaȐ9UJlSO5?lH.)kĨ2Uo#d"]Džb7:7GMrW&<:77a..W2,筍rǍ;_EF#sn6Jo{}ɾ*Tp +ӨsŅOS,Thd,q؀<+$p +L,,-'/Ted'I 4t> Xdl{fKB6y=?j˵Y+Z +7/|yhXxC7>Yh ++*džuyѣݾ}u;knU!Sx{J6i]H -EVgR//@_W\un1gS`ˊd[\19&grh`檼Vϱٮ@`a׻aۊo}8zhd{*؇( *TŕTˑKW(@2a.+C%2*S0ɁtƥKU]Zͧj*jLaX5cinCǨ'b6wG83#%.r)FlO1{%ΜĘ.XƮ.tD,ι[w4}g[L6^`YL닌 XOy+aMɁ&](r2C8: +J[e 6Ŋr8!3ؕ< p ΰ(0RC +K{_&,%!,Zѳ%jvD7{z6*W]G^l>1s_꾈i,>]:b+}Ba'tw45?=k7,DH.?(;!.1`PhPՌ\6TeB!NBHf۱U&/1IBLOXɭS$J(f5sspy(Ǿx| +9G@m4>u6!+{4<6-a"]ܖ ;UW3,t'\F !b!&vXnp9\Þ;'!G4\nj%Oq!L5niأ0SO3gnkBBp|k~Fy~~to(ttk&IP\1~svWo r2W6mJ&̞J4p.S\6CRMij%۽TZx'53h2)w {4W-xqی53g3WW(uf=Xε 8h~I59ҢъOhںYj3[K(J60T@/9EDQãbJgz}L o>O;T mI9@L16ݬUpjE6ނjxuZ̺"Ed昞9?zn(d|_l6㞿XcH79RHbdFef"!/{IjWgTaZM/`Vhd QkSyeÎ֐H].peCvF.rC&lKR' +\z㳒x」Kr$$wAr]P)m= ǔU,ҧV}ҪMETVAr2,!]C~Tܖ(i:^ʱS Y )2ghɤ]d&(aВ\1roߏn:}}|ƾk~ۛ7Uhl;۵=+6OCF[Xur\v6t?Wra*\9|"P(Jb*G:UicϔB[ lq䠰&HY[h ACBŨ,*K8(VS\wNwGMafϗW䡼}`@Qo}H׎wl9UP^^WO8%=|"g'饬 g!859h)V5`%݃ +HkGyoO#~em4x/RL'{θ6|OSF|R +'U(do +EPOm\nx(QyMV +sSN/XϢ;˥7C**4Ga`JU5n>$2_5Fg!.Pc"$ҐRE^%'":+Ƈ(:1RJI7=sdl{PJZ'`Fn֜R=/*!Aj ͪ]WGm[yAn>4OxW垅mL? +] $%.x}\9?!G. yi v1.~GQ+})ni'=D8mvR&w@ .7>"[ϋVpAi,B־O\Ԉk2/Q\+o=XD$Nao jг[2\\w3t'. e - 4 Y C^[ DNAW"C@2V/,Xpњh2Z7&`fa' .b|j)C)x^5cDbf1GqEnSRo:c"ڻDs%/dF/|!r%4[idXX%4@3^P?19sxph%>R\^^N YV,ͽcSC{|ڱ1Kl605s@wDsqb;MO l58babl1%ؼBVT K-{>H} +e.֦ʑpIF:վ߸ѝGg eڬ +endstream +endobj +191 0 obj +5258 +endobj +190 0 obj +<< /Length 192 0 R /Filter /FlateDecode >> +stream +xk`3`X*^0_u +endstream +endobj +192 0 obj +20 +endobj +193 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 194 0 R + /DescendantFonts [195 0 R] +>> +endobj +195 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 188 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 916 500 500 555 276 388 555 555 443 500 651 391 526 443 526 276 750 443 276 333 500 500 680 555 394 ] ] +>> +endobj +194 0 obj +<< /Length 196 0 R /Filter /FlateDecode >> +stream +x]n0E +/E )TĢ5{H ,_Hg/$2Ȓw׫+iv4Sjf#R[5F +wII|uF*,Cld,/f}}MLSߜ&ך~]k:YC#3H*;bIU'K xPJENmNܯ3;=u^9F}K7~ Og8(r *Q@GD@ 4@*q',P'ೄ} > ,%>i{P8/hdᱳ_E42vJM(QJ?]fs59g%fe> +endobj +198 0 obj +<< + /Length1 2008 + /Length 200 0 R + /Filter /FlateDecode +>> +stream +xUale~ul] +xۭʶn,v (B&ZQX41cQCn!$ `I0nj(Jk{}ywox*x;Y}pyzd8# _iMYNje%3w%.?MFի)>A+Ozs*;sBP.ɆLnDvYDuEWY=:OֲHoH|hF +9f^r pm, +b / {Ѝh +b"z5aX \? +oEv]cǘy[\D (N:qNA1A +m۰^V{*UEs j~<7>G4 +OXhwD#ָµ4תl܂3ޯrHXlŠ!'CFh?0b_HYnaHc%wDЈҮkhWPdzǮzsLMݚ%mN.rFz,2kjl^b.B˥>+VȐ6%(:Q0EO[[V^aNE$yXhx +|JrԀ.hjUת=u!8D&gh)]G~zJC#]jRcWٙpRcql@!TUV0o " u޹^}R͖-5oX[__4HO<2goA p$dh_Gn)R /85y35= +u\]XU,{@gY`Յ?U,?d\w,:o);v"6z\ŕ9*2f˘N|T2+du}D٘eʘGּY0ED9L#$Rmdm!ҍ.ucBQdΓc#"h&Ir陠pQ~IT9®f21A㱫d2ɣQtU.?;Nfm9ݥʺQHg䡀52Y }Y0f"ԍ\ԐrS2sb&R}fh:%8U7JudYǍщla6H\Ǩ$6<1m'ȤFsSIszWfs~JNmuw*9c%_^4$lnF=B*xs6O +endstream +endobj +200 0 obj +1349 +endobj +199 0 obj +<< /Length 201 0 R /Filter /FlateDecode >> +stream +xk` +endstream +endobj +201 0 obj +12 +endobj +202 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAD+mwa_cmsy10 + /Encoding /Identity-H + /ToUnicode 203 0 R + /DescendantFonts [204 0 R] +>> +endobj +204 0 obj +<< /Type /Font +/BaseFont /EAAAAD+mwa_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 197 0 R +/DW 0 +/W [ 0 [365 276 ] ] +>> +endobj +203 0 obj +<< /Length 205 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t')JB}i?԰k+! +if$s6"z`ӄ_H! 8ZWT5hV H~#N37^#pz~'hr4u#~KwE(N+w> Dq='{ 5jˠ9H$݈ťL嚪tMQPYH쒷qDT QJX9uxl5U|}B +endstream +endobj +205 0 obj +235 +endobj +169 0 obj << /Type /Pages /Count 1 -/Kids [169 0 R ] >> +/Kids [167 0 R ] >> endobj -208 0 obj +206 0 obj << /Type /Catalog - /Pages 171 0 R + /Pages 169 0 R /Lang (x-unknown) >> endobj -170 0 obj +168 0 obj << /Font << - /F655 177 0 R - /F656 186 0 R - /F657 195 0 R - /F654 204 0 R + /F660 175 0 R + /F661 184 0 R + /F662 193 0 R + /F663 202 0 R >> /ProcSet [/PDF /ImageB /ImageC /Text] /ExtGState << @@ -1877,13 +1809,11 @@ endobj /GS160 161 0 R /GS161 162 0 R /GS162 163 0 R - /GS163 164 0 R - /GS164 165 0 R >> >> endobj xref -0 209 +0 207 0000000000 65535 f 0000000015 00000 n 0000000145 00000 n @@ -2049,57 +1979,55 @@ xref 0000008693 00000 n 0000008748 00000 n 0000008803 00000 n -0000008858 00000 n -0000008913 00000 n -0000099162 00000 n -0000099185 00000 n -0000099212 00000 n -0000114523 00000 n -0000114384 00000 n -0000099410 00000 n -0000099662 00000 n -0000101106 00000 n -0000101084 00000 n -0000101193 00000 n -0000101212 00000 n -0000101603 00000 n -0000101372 00000 n -0000101915 00000 n -0000101936 00000 n -0000102191 00000 n -0000107691 00000 n -0000107669 00000 n -0000107789 00000 n -0000107809 00000 n -0000108314 00000 n -0000107968 00000 n -0000108756 00000 n -0000108777 00000 n -0000109033 00000 n -0000110502 00000 n -0000110480 00000 n -0000110592 00000 n -0000110612 00000 n -0000111003 00000 n -0000110772 00000 n -0000111316 00000 n -0000111337 00000 n -0000111593 00000 n -0000113536 00000 n -0000113514 00000 n -0000113628 00000 n -0000113648 00000 n -0000114043 00000 n -0000113808 00000 n -0000114363 00000 n -0000114446 00000 n +0000102717 00000 n +0000102740 00000 n +0000102767 00000 n +0000117953 00000 n +0000117814 00000 n +0000102965 00000 n +0000103221 00000 n +0000105164 00000 n +0000105142 00000 n +0000105256 00000 n +0000105276 00000 n +0000105671 00000 n +0000105436 00000 n +0000105991 00000 n +0000106012 00000 n +0000106264 00000 n +0000107708 00000 n +0000107686 00000 n +0000107795 00000 n +0000107814 00000 n +0000108205 00000 n +0000107974 00000 n +0000108517 00000 n +0000108538 00000 n +0000108793 00000 n +0000114171 00000 n +0000114149 00000 n +0000114269 00000 n +0000114289 00000 n +0000114790 00000 n +0000114448 00000 n +0000115233 00000 n +0000115254 00000 n +0000115510 00000 n +0000116979 00000 n +0000116957 00000 n +0000117069 00000 n +0000117089 00000 n +0000117480 00000 n +0000117249 00000 n +0000117793 00000 n +0000117876 00000 n trailer << - /Root 208 0 R + /Root 206 0 R /Info 1 0 R - /ID [<75E699E97C98E643203930FCA30F7ADF> <75E699E97C98E643203930FCA30F7ADF>] - /Size 209 + /ID [ ] + /Size 207 >> startxref -117257 +120653 %%EOF diff --git a/journal/figs/three_complementary_filters_results.png b/journal/figs/three_complementary_filters_results.png index 7ffe7cb..06dcaea 100644 Binary files a/journal/figs/three_complementary_filters_results.png and b/journal/figs/three_complementary_filters_results.png differ diff --git a/journal/journal.org b/journal/journal.org index cd57fc2..e060256 100644 --- a/journal/journal.org +++ b/journal/journal.org @@ -596,20 +596,42 @@ A more complex real life example is taken up in the next section. * Application: Design of Complementary Filters used in the Active Vibration Isolation System at the LIGO <> ** Introduction :ignore: -Several complementary filters are used in the active isolation system at the LIGO cite:hua05_low_ligo,hua04_polyp_fir_compl_filter_contr_system. -The requirements on those filters are very tight and thus their design is complex. -The approach used in cite:hua05_low_ligo for their design is to write the synthesis of complementary FIR filters as a convex optimization problem. -The obtained FIR filters are compliant with the requirements. However they are of very high order so their implementation is quite complex. -The effectiveness of the proposed method is demonstrated by designing complementary filters with the same requirements as the one described in cite:hua05_low_ligo. +Sensor fusion using complementary filters are widely used in active vibration isolation systems in gravitational wave detectors such at the LIGO cite:matichard15_seism_isolat_advan_ligo,hua05_low_ligo, the VIRGO cite:lucia18_low_frequen_optim_perfor_advan,heijningen18_low and the KAGRA cite:akutsu21_vibrat_isolat_system_beam_split. + +In the first isolation stage at the LIGO, two sets of complementary filters are used and included in a feedback loop cite:hua04_low_ligo. +A set of complementary filters ($L_2,H_2$) is first used to fuse a seismometer and a geophone. +Then, another set of complementary filters ($L_1,H_1$) is used to merge the output of the first "inertial super sensor" with a position sensor. +A simplified block diagram of the sensor fusion architecture is shown in Figure ref:fig:ligo_super_sensor_architecture. + +#+name: fig:ligo_super_sensor_architecture +#+caption: Simplified block diagram of the sensor blending strategy for the first stage at the LIGO cite:hua04_low_ligo +#+attr_latex: :scale 1 +[[file:figs/ligo_super_sensor_architecture.pdf]] + +The fusion of the position sensor at low frequency with the "inertial super sensor" at high frequency using the complementary filters ($L_1,H_1$) is done for several reasons, first of which is to give the super sensor a DC sensibility and therefore allow the feedback loop to have authority at zero frequency. +The requirements on those filters are very tight and thus their design is complex and should be expressed as an optimization problem. + +The approach used in cite:hua05_low_ligo is to use FIR complementary filters and to write the synthesis as a convex optimization problem. +After synthesis, the obtained FIR filters were found to be compliant with the requirements. +However they are of very high order so their implementation is quite complex. +In this section, the effectiveness of the proposed complementary filter synthesis strategy is demonstrated on the same set of requirements. ** Complementary Filters Specifications <> -The specifications for one pair of complementary filters used at the LIGO are summarized below (for further details, refer to cite:hua04_polyp_fir_compl_filter_contr_system) and shown in Fig. ref:fig:ligo_weights: -- From $0$ to $\SI{0.008}{Hz}$, the magnitude of the filter's transfer function should be less or equal to $8 \times 10^{-4}$ -- Between $\SI{0.008}{Hz}$ to $\SI{0.04}{Hz}$, the filter should attenuate the input signal proportional to frequency cubed -- Between $\SI{0.04}{Hz}$ to $\SI{0.1}{Hz}$, the magnitude of the transfer function should be less than $3$ -- Above $\SI{0.1}{Hz}$, the magnitude of the complementary filter should be less than $0.045$ +The specifications for the set of complementary filters ($L_1,H_1$) used at the LIGO are summarized below (for further details, refer to cite:hua04_polyp_fir_compl_filter_contr_system): +- From $0$ to $\SI{0.008}{Hz}$, the magnitude $|L_1(j\omega)|$ should be less or equal to $8 \times 10^{-4}$ +- Between $\SI{0.008}{Hz}$ to $\SI{0.04}{Hz}$, the filter $L_1(s)$ should attenuate the input signal proportional to frequency cubed +- Between $\SI{0.04}{Hz}$ to $\SI{0.1}{Hz}$, the magnitude $|L_1(j\omega)|$ should be less than $3$ +- Above $\SI{0.1}{Hz}$, the magnitude $|H_1(j\omega)|$ should be less than $0.045$ + +These specifications are therefore upper bounds on the complementary filters' magnitudes. +They are physically represented in Figure ref:fig:fir_filter_ligo as well as the obtained magnitude of the FIR filters in cite:hua05_low_ligo. + +#+name: fig:fir_filter_ligo +#+caption: Specifications and Bode plot of the obtained FIR filters in cite:hua05_low_ligo +#+attr_latex: :scale 1 +[[file:figs/fir_filter_ligo.pdf]] ** Weighting Functions Design <> diff --git a/journal/journal.pdf b/journal/journal.pdf index 7d23240..1eda9ff 100644 Binary files a/journal/journal.pdf and b/journal/journal.pdf differ diff --git a/journal/journal.tex b/journal/journal.tex index 7316f21..13ae9df 100644 --- a/journal/journal.tex +++ b/journal/journal.tex @@ -1,4 +1,4 @@ -% Created 2021-05-20 jeu. 11:13 +% Created 2021-05-20 jeu. 16:26 % Intended LaTeX compiler: pdflatex \documentclass[preprint, sort&compress]{elsarticle} \usepackage[utf8]{inputenc} @@ -58,7 +58,7 @@ Sensor fusion \sep{} Optimal filters \sep{} \(\mathcal{H}_\infty\) synthesis \se \end{frontmatter} \section{Introduction} -\label{sec:org810a8ae} +\label{sec:orgc28ff6a} \label{sec:introduction} \begin{itemize} \item \cite{bendat57_optim_filter_indep_measur_two} roots of sensor fusion @@ -105,13 +105,13 @@ Most of the requirements => shape of the complementary filters => propose a way to shape complementary filters. \section{Sensor Fusion and Complementary Filters Requirements} -\label{sec:orge97289b} +\label{sec:org5a2a4a4} \label{sec:requirements} Complementary filters provides a framework for fusing signals from different sensors. As the effectiveness of the fusion depends on the proper design of the complementary filters, they are expected to fulfill certain requirements. These requirements are discussed in this section. \subsection{Sensor Fusion Architecture} -\label{sec:org0a17c4e} +\label{sec:orgb29eeb0} \label{sec:sensor_fusion} A general sensor fusion architecture using complementary filters is shown in Figure \ref{fig:sensor_fusion_overview} where several sensors (here two) are measuring the same physical quantity \(x\). @@ -138,7 +138,7 @@ Therefore, a pair of strict complementary filter needs to satisfy the following It will soon become clear why the complementary property is important. \subsection{Sensor Models and Sensor Normalization} -\label{sec:org52d9122} +\label{sec:org749994d} \label{sec:sensor_models} In order to study such sensor fusion architecture, a model of the sensors is required. @@ -187,7 +187,7 @@ The super sensor output is therefore equal to: \end{figure} \subsection{Noise Sensor Filtering} -\label{sec:orgf08876b} +\label{sec:org0f07eb6} \label{sec:noise_filtering} In this section, it is supposed that all the sensors are perfectly calibrated, such that: @@ -227,7 +227,7 @@ In such case, to lower the noise of the super sensor, the value of the norm \(|H Therefore, by properly shaping the norm of the complementary filters, it is possible to minimize the noise of the super sensor noise. \subsection{Sensor Fusion Robustness} -\label{sec:org3269d9e} +\label{sec:orgdb0117a} \label{sec:fusion_robustness} In practical systems the sensor normalization is not perfect and condition \eqref{eq:perfect_dynamics} is not verified. @@ -289,14 +289,14 @@ As it is generally desired to limit the maximum phase added by the super sensor, Typically, the norm of the complementary filter \(|H_i(j\omega)|\) should be made small when \(|w_i(j\omega)|\) is large, i.e., at frequencies where the sensor dynamics is uncertain. \section{Complementary Filters Shaping} -\label{sec:orga11797e} +\label{sec:orgba2ddcd} \label{sec:hinf_method} As shown in Section \ref{sec:requirements}, the noise and robustness of the ``super sensor'' are determined by the complementary filters norms. Therefore, a complementary filters synthesis method that allows to shape their norms would be of great use. In this section, such synthesis is proposed by expressing this problem as a \(\mathcal{H}_\infty\) norm optimization. \subsection{Synthesis Objective} -\label{sec:orgc196ed6} +\label{sec:orgef373f7} \label{sec:synthesis_objective} The synthesis objective is to shape the norm of two filters \(H_1(s)\) and \(H_2(s)\) while ensuring their complementary property \eqref{eq:comp_filter}. @@ -313,7 +313,7 @@ This is equivalent as to finding proper and stable transfer functions \(H_1(s)\) where \(W_1(s)\) and \(W_2(s)\) are two weighting transfer functions that are chosen to specify the maximum wanted norms of the complementary filters during the synthesis. \subsection{Shaping of Complementary Filters using \(\mathcal{H}_\infty\) synthesis} -\label{sec:orgf037f4b} +\label{sec:org9d293ca} \label{sec:hinf_synthesis} In this section, it is shown that the synthesis objective can be easily expressed as a standard \(\mathcal{H}_\infty\) optimal control problem and therefore solved using convenient tools readily available. @@ -354,7 +354,7 @@ Therefore, applying the \(\mathcal{H}_\infty\) synthesis on the standard plant \ The above optimization problem can be efficiently solved in Matlab \cite{matlab20} using the Robust Control Toolbox. \subsection{Weighting Functions Design} -\label{sec:org80ebc41} +\label{sec:org552a374} \label{sec:hinf_weighting_func} Weighting functions are used during the synthesis to specify what is the maximum allowed norms of the complementary filters. @@ -404,7 +404,7 @@ The typical shape of a weighting function generated using \eqref{eq:weight_formu \end{figure} \subsection{Validation of the proposed synthesis method} -\label{sec:orge831635} +\label{sec:orgdf78400} \label{sec:hinf_example} The proposed methodology for the design of complementary filters is now applied on a simple example where two complementary filters \(H_1(s)\) and \(H_2(s)\) have to be designed such that: @@ -465,27 +465,50 @@ This simple example illustrates the fact that the proposed methodology for compl A more complex real life example is taken up in the next section. \section{Application: Design of Complementary Filters used in the Active Vibration Isolation System at the LIGO} -\label{sec:org5405518} +\label{sec:orgd51fb42} \label{sec:application_ligo} -Several complementary filters are used in the active isolation system at the LIGO \cite{hua05_low_ligo,hua04_polyp_fir_compl_filter_contr_system}. -The requirements on those filters are very tight and thus their design is complex. -The approach used in \cite{hua05_low_ligo} for their design is to write the synthesis of complementary FIR filters as a convex optimization problem. -The obtained FIR filters are compliant with the requirements. However they are of very high order so their implementation is quite complex. +Sensor fusion using complementary filters are widely used in active vibration isolation systems in gravitational wave detectors such at the LIGO \cite{matichard15_seism_isolat_advan_ligo,hua05_low_ligo}, the VIRGO \cite{lucia18_low_frequen_optim_perfor_advan,heijningen18_low} and the KAGRA \cite{akutsu21_vibrat_isolat_system_beam_split}. -The effectiveness of the proposed method is demonstrated by designing complementary filters with the same requirements as the one described in \cite{hua05_low_ligo}. +In the first isolation stage at the LIGO, two sets of complementary filters are used and included in a feedback loop \cite{hua04_low_ligo}. +A set of complementary filters (\(L_2,H_2\)) is first used to fuse a seismometer and a geophone. +Then, another set of complementary filters (\(L_1,H_1\)) is used to merge the output of the first ``inertial super sensor'' with a position sensor. +A simplified block diagram of the sensor fusion architecture is shown in Figure \ref{fig:ligo_super_sensor_architecture}. + +\begin{figure}[htbp] +\centering +\includegraphics[scale=1,scale=1]{figs/ligo_super_sensor_architecture.pdf} +\caption{\label{fig:ligo_super_sensor_architecture}Simplified block diagram of the sensor blending strategy for the first stage at the LIGO \cite{hua04_low_ligo}} +\end{figure} + +The fusion of the position sensor at low frequency with the ``inertial super sensor'' at high frequency using the complementary filters (\(L_1,H_1\)) is done for several reasons, first of which is to give the super sensor a DC sensibility and therefore allow the feedback loop to have authority at zero frequency. +The requirements on those filters are very tight and thus their design is complex and should be expressed as an optimization problem. + +The approach used in \cite{hua05_low_ligo} is to use FIR complementary filters and to write the synthesis as a convex optimization problem. +After synthesis, the obtained FIR filters were found to be compliant with the requirements. +However they are of very high order so their implementation is quite complex. +In this section, the effectiveness of the proposed complementary filter synthesis strategy is demonstrated on the same set of requirements. \subsection{Complementary Filters Specifications} -\label{sec:orgd3d9b91} +\label{sec:org45a6d0a} \label{sec:ligo_specifications} -The specifications for one pair of complementary filters used at the LIGO are summarized below (for further details, refer to \cite{hua04_polyp_fir_compl_filter_contr_system}) and shown in Fig. \ref{fig:ligo_weights}: +The specifications for the set of complementary filters (\(L_1,H_1\)) used at the LIGO are summarized below (for further details, refer to \cite{hua04_polyp_fir_compl_filter_contr_system}): \begin{itemize} -\item From \(0\) to \(\SI{0.008}{Hz}\), the magnitude of the filter's transfer function should be less or equal to \(8 \times 10^{-4}\) -\item Between \(\SI{0.008}{Hz}\) to \(\SI{0.04}{Hz}\), the filter should attenuate the input signal proportional to frequency cubed -\item Between \(\SI{0.04}{Hz}\) to \(\SI{0.1}{Hz}\), the magnitude of the transfer function should be less than \(3\) -\item Above \(\SI{0.1}{Hz}\), the magnitude of the complementary filter should be less than \(0.045\) +\item From \(0\) to \(\SI{0.008}{Hz}\), the magnitude \(|L_1(j\omega)|\) should be less or equal to \(8 \times 10^{-4}\) +\item Between \(\SI{0.008}{Hz}\) to \(\SI{0.04}{Hz}\), the filter \(L_1(s)\) should attenuate the input signal proportional to frequency cubed +\item Between \(\SI{0.04}{Hz}\) to \(\SI{0.1}{Hz}\), the magnitude \(|L_1(j\omega)|\) should be less than \(3\) +\item Above \(\SI{0.1}{Hz}\), the magnitude \(|H_1(j\omega)|\) should be less than \(0.045\) \end{itemize} +These specifications are therefore upper bounds on the complementary filters' magnitudes. +They are physically represented in Figure \ref{fig:fir_filter_ligo} as well as the obtained magnitude of the FIR filters in \cite{hua05_low_ligo}. + +\begin{figure}[htbp] +\centering +\includegraphics[scale=1,scale=1]{figs/fir_filter_ligo.pdf} +\caption{\label{fig:fir_filter_ligo}Specifications and Bode plot of the obtained FIR filters in \cite{hua05_low_ligo}} +\end{figure} + \subsection{Weighting Functions Design} -\label{sec:orgcda22a3} +\label{sec:orgeca6c60} \label{sec:ligo_weights} The weighting functions should be designed such that their inverse magnitude is as close as possible to the specifications in order to not over-constrain the synthesis problem. However, the order of each weight should stay reasonably small in order to reduce the computational costs of the optimization problem as well as for the physical implementation of the filters. @@ -501,7 +524,7 @@ The magnitudes of the weighting functions are shown in Fig. \ref{fig:ligo_weight \end{figure} \subsection{\(\mathcal{H}_\infty\) Synthesis} -\label{sec:org5fc1ebf} +\label{sec:orgcaaff49} \label{sec:ligo_results} \(\mathcal{H}_\infty\) synthesis is performed using the architecture shown in Fig. \ref{eq:generalized_plant}. The complementary filters obtained are of order \(27\). @@ -515,9 +538,9 @@ They are found to be very close to each other and this shows the effectiveness o \end{figure} \section{Discussion} -\label{sec:org2363233} +\label{sec:orga827f5f} \subsection{Alternative configuration} -\label{sec:org164637d} +\label{sec:org7abd40b} \begin{itemize} \item Feedback architecture : Similar to mixed sensitivity (add schematic of feedback loop with weights) \item 2 inputs / 1 output @@ -526,13 +549,13 @@ They are found to be very close to each other and this shows the effectiveness o Explain differences \subsection{Imposing zero at origin / roll-off} -\label{sec:orgf116368} +\label{sec:orge105bdf} 3 methods: Link to literature about doing that with mixed sensitivity \subsection{Synthesis of Three Complementary Filters} -\label{sec:orgbdd0317} +\label{sec:org3fd7562} \label{sec:hinf_three_comp_filters} Some applications may require to merge more than two sensors. In such a case, it is necessary to design as many complementary filters as the number of sensors used. @@ -570,7 +593,7 @@ The bode plots of the obtained complementary filters are shown in Fig. \ref{fig: \end{figure} \section{Conclusion} -\label{sec:org150800b} +\label{sec:orgc3f0120} \label{sec:conclusion} This paper has shown how complementary filters can be used to combine multiple sensors in order to obtain a super sensor. Typical specification on the super sensor noise and on the robustness of the sensor fusion has been shown to be linked to the norm of the complementary filters. @@ -578,7 +601,7 @@ Therefore, a synthesis method that permits the shaping of the complementary filt Future work will aim at further developing this synthesis method for the robust and optimal synthesis of complementary filters used in sensor fusion. \section*{Acknowledgment} -\label{sec:org6c6a099} +\label{sec:org1be2c18} This research benefited from a FRIA grant from the French Community of Belgium. \bibliographystyle{elsarticle-num} diff --git a/journal/ref.bib b/journal/ref.bib index ab551cf..2f2471a 100644 --- a/journal/ref.bib +++ b/journal/ref.bib @@ -93,19 +93,6 @@ series = {Robot Control 1991}, } -@article{brown72_integ_navig_system_kalman_filter, - author = {R. G. Brown}, - title = {Integrated Navigation Systems and Kalman Filtering: a - Perspective}, - journal = {Navigation}, - volume = 19, - number = 4, - pages = {355-362}, - year = 1972, - doi = {10.1002/j.2161-4296.1972.tb01706.x}, - url = {https://doi.org/10.1002/j.2161-4296.1972.tb01706.x}, -} - @article{mahony08_nonlin_compl_filter_special_orthog_group, author = {Robert Mahony and Tarek Hamel and Jean-Michel Pflimlin}, title = {Nonlinear Complementary Filters on the Special Orthogonal @@ -471,7 +458,7 @@ number = 3, pages = {321--325}, year = 1975, - doi = 10.1109/TAES.1975.308081, + doi = {10.1109/TAES.1975.308081}, url = {https://doi.org/10.1109/TAES.1975.308081}, keywords = {sensor fusion, complementary filters}, publisher = {IEEE}, @@ -488,8 +475,8 @@ } @inproceedings{becker15_compl_filter_desig_three_frequen_bands, - author = {Becker, Thiago; Fabro, Joao Alberto; Oliveira, Andre - Schneider de; Reis, Luis Paulo}, + author = {Becker, Thiago and Fabro, Joao Alberto and Oliveira, Andre + Schneider de and Reis, Luis Paulo}, title = {Complementary Filter Design with Three Frequency Bands: Robot Attitude Estimation}, booktitle = {International Conference on Autonomous Robot Systems and @@ -538,7 +525,7 @@ number = 5, pages = {483--497}, year = 2001, - doi = 10.1177/095965180121500505, + doi = {10.1177/095965180121500505}, url = {https://doi.org/10.1177/095965180121500505}, keywords = {sensor fusion, complementary filters}, publisher = {SAGE Publications Sage UK: London, England}, @@ -554,3 +541,48 @@ url = {https://doi.org/10.1109/tct.1957.1086345}, page = {--}, } + +@inproceedings{hua04_low_ligo, + author = {Hua, Wensheng and Adhikari, R and DeBra, Daniel B and + Giaime, Joseph A and Hammond, Giles Dominic and Hardham, C and + Hennessy, Mike and How, Jonathan P and Lantz, Brian T and + Macinnis, M and others}, + title = {Low-frequency active vibration isolation for advanced LIGO}, + booktitle = {Gravitational Wave and Particle Astrophysics Detectors}, + year = 2004, + volume = 5500, + pages = {194--205}, + organization = {International Society for Optics and Photonics}, +} + +@article{akutsu21_vibrat_isolat_system_beam_split, + author = {Akutsu, T and Ando, M and Arai, K and Arai, Y and Araki, S + and Araya, A and Aritomi, N and Asada, H and Aso, Y and Bae, S + and others}, + title = {Vibration Isolation Systems for the Beam Splitter and + Signal Recycling Mirrors of the Kagra Gravitational Wave + Detector}, + journal = {Classical and Quantum Gravity}, + volume = 38, + number = 6, + pages = 065011, + year = 2021, + publisher = {IOP Publishing}, +} + +@phdthesis{heijningen18_low, + author = {van Heijningen, JV}, + school = {Vrije Universiteit}, + title = {Low-frequency performance improvement of seismic + attenuation systems and vibration sensors for next generation + gravitational wave detectors}, + year = 2018, +} + +@phdthesis{lucia18_low_frequen_optim_perfor_advan, + author = {Trozzo Lucia}, + school = {University of Siena}, + title = {Low Frequency Optimization and Performance of Advanced + Virgo Seismic Isolation System}, + year = 2018, +} diff --git a/matlab/index.org b/matlab/index.org index 5190a0a..ebcceab 100644 --- a/matlab/index.org +++ b/matlab/index.org @@ -292,7 +292,7 @@ xlim([freqs(1), freqs(end)]); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/hinf_filters_results.pdf', 'width', 'wide', 'height', 'tall'); +exportFig('figs/hinf_filters_results.pdf', 'width', 'wide', 'height', 600); #+end_src #+name: fig:hinf_filters_results @@ -492,14 +492,14 @@ plot(freqs, 180/pi*phase(squeeze(freqresp(H3, freqs, 'Hz')))); hold off; xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); set(gca, 'XScale', 'log'); -yticks([-360:90:360]); ylim([-270, 270]); +yticks([-180:90:180]); ylim([-220, 220]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/three_complementary_filters_results.pdf', 'width', 'wide', 'height', 'tall'); +exportFig('figs/three_complementary_filters_results.pdf', 'width', 'wide', 'height', 600); #+end_src #+name: fig:three_complementary_filters_results @@ -739,30 +739,39 @@ tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); % Magnitude ax1 = nexttile([2, 1]); hold on; -plot(w, abs(H), 'k-'); -plot(w, abs(1-H), 'k--'); -hold off; +set(gca,'ColorOrderIndex',1) +plot(w, abs(1-H), '-', 'DisplayName', '$L_1$'); +plot([0.1, 10], [0.045, 0.045], 'k:', 'DisplayName', 'Spec. on $L_1$'); + +set(gca,'ColorOrderIndex',2) +plot(w, abs(H), '-', 'DisplayName', '$H_1$'); +plot([0.0001, 0.008], [8e-3, 8e-3], 'k--', 'DisplayName', 'Spec. on $H_1$'); +plot([0.008 0.04], [8e-3, 1], 'k--', 'HandleVisibility', 'off'); +plot([0.04 0.1], [3, 3], 'k--', 'HandleVisibility', 'off'); + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -ylabel('Magnitude'); -set(gca, 'XTickLabel',[]); -ylim([5e-3, 5]); +set(gca, 'XTickLabel',[]); ylabel('Magnitude'); +hold off; +ylim([5e-3, 10]); +leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +leg.ItemTokenSize(1) = 16; % Phase ax2 = nexttile; hold on; -plot(w, 180/pi*unwrap(angle(H)), 'k-'); -plot(w, 180/pi*unwrap(angle(1-H)), 'k--'); +plot(w, 180/pi*unwrap(angle(1-H)), '-'); +plot(w, 180/pi*unwrap(angle(H)), '-'); hold off; xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); set(gca, 'XScale', 'log'); -yticks([-450:90:180]); ylim([-450, 200]); +yticks([-360:180:180]); ylim([-380, 200]); linkaxes([ax1,ax2],'x'); xlim([1e-3, 1]); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/fir_filter_ligo.pdf', 'width', 'wide', 'height', 'tall'); +exportFig('figs/fir_filter_ligo.pdf', 'width', 'wide', 'height', 600); #+end_src #+name: fig:fir_filter_ligo @@ -812,22 +821,22 @@ wL = minreal(ss(wL)); figure; hold on; set(gca,'ColorOrderIndex',1); -plot(freqs, abs(squeeze(freqresp(inv(wH), freqs, 'Hz'))), '-', 'DisplayName', '$|w_H|^{-1}$'); -set(gca,'ColorOrderIndex',2); -plot(freqs, abs(squeeze(freqresp(inv(wL), freqs, 'Hz'))), '-', 'DisplayName', '$|w_L|^{-1}$'); +plot(freqs, abs(squeeze(freqresp(inv(wL), freqs, 'Hz'))), '-', 'DisplayName', '$|W_L|^{-1}$'); +plot([0.1, 10], [0.045, 0.045], 'k:', 'DisplayName', 'Spec. on $L_1$'); -plot([0.0001, 0.008], [8e-3, 8e-3], 'k--', 'DisplayName', 'Spec.'); -plot([0.008 0.04], [8e-3, 1], 'k--', 'HandleVisibility', 'off'); -plot([0.04 0.1], [3, 3], 'k--', 'HandleVisibility', 'off'); -plot([0.1, 10], [0.045, 0.045], 'k--', 'HandleVisibility', 'off'); +set(gca,'ColorOrderIndex',2); +plot(freqs, abs(squeeze(freqresp(inv(wH), freqs, 'Hz'))), '-', 'DisplayName', '$|W_H|^{-1}$'); +plot([0.0001, 0.008], [8e-3, 8e-3], 'k--', 'DisplayName', 'Spec. on $H_1$'); +plot([0.008 0.04], [8e-3, 1], 'k--', 'HandleVisibility', 'off'); +plot([0.04 0.1], [3, 3], 'k--', 'HandleVisibility', 'off'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; xlim([freqs(1), freqs(end)]); -ylim([1e-3, 10]); -leg = legend('location', 'southeast', 'FontSize', 8); -leg.ItemTokenSize(1) = 18; +ylim([5e-3, 10]); +leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +leg.ItemTokenSize(1) = 16; #+end_src #+begin_src matlab :tangle no :exports results :results file replace @@ -905,27 +914,22 @@ The bode plot of the obtained filters as shown on figure [[fig:hinf_synthesis_li figure; hold on; set(gca,'ColorOrderIndex',1); -plot([0.0001, 0.008], [8e-3, 8e-3], ':', 'DisplayName', 'Spec. on $H_H$'); -set(gca,'ColorOrderIndex',1); -plot([0.008 0.04], [8e-3, 1], ':', 'HandleVisibility', 'off'); -set(gca,'ColorOrderIndex',1); -plot([0.04 0.1], [3, 3], ':', 'HandleVisibility', 'off'); +plot(freqs, abs(squeeze(freqresp(Hl, freqs, 'Hz'))), '-', 'DisplayName', '$L_1^\prime$'); +plot([0.1, 10], [0.045, 0.045], 'k:', 'DisplayName', 'Spec. on $L_1$'); set(gca,'ColorOrderIndex',2); -plot([0.1, 10], [0.045, 0.045], ':', 'DisplayName', 'Spec. on $H_L$'); - -set(gca,'ColorOrderIndex',1); -plot(freqs, abs(squeeze(freqresp(Hh, freqs, 'Hz'))), '-', 'DisplayName', '$H_H$'); -set(gca,'ColorOrderIndex',2); -plot(freqs, abs(squeeze(freqresp(Hl, freqs, 'Hz'))), '-', 'DisplayName', '$H_L$'); +plot(freqs, abs(squeeze(freqresp(Hh, freqs, 'Hz'))), '-', 'DisplayName', '$H_1^\prime$'); +plot([0.0001, 0.008], [8e-3, 8e-3], 'k--', 'DisplayName', 'Spec. on $H_1$'); +plot([0.008 0.04], [8e-3, 1], 'k--', 'HandleVisibility', 'off'); +plot([0.04 0.1], [3, 3], 'k--', 'HandleVisibility', 'off'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; xlim([freqs(1), freqs(end)]); -ylim([1e-3, 10]); -leg = legend('location', 'southeast', 'FontSize', 8); -leg.ItemTokenSize(1) = 18; +ylim([5e-3, 10]); +leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +leg.ItemTokenSize(1) = 16; #+end_src #+begin_src matlab :tangle no :exports results :results file replace @@ -948,18 +952,18 @@ tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); ax1 = nexttile([2, 1]); hold on; set(gca,'ColorOrderIndex',1); -plot(freqs, abs(squeeze(freqresp(Hh, freqs, 'Hz'))), '-', ... - 'DisplayName', '$H_H(s)$ - $\mathcal{H}_\infty$'); -set(gca,'ColorOrderIndex',2); plot(freqs, abs(squeeze(freqresp(Hl, freqs, 'Hz'))), '-', ... - 'DisplayName', '$H_L(s)$ - $\mathcal{H}_\infty$'); + 'DisplayName', '$L_1(s)$ - $\mathcal{H}_\infty$'); +set(gca,'ColorOrderIndex',2); +plot(freqs, abs(squeeze(freqresp(Hh, freqs, 'Hz'))), '-', ... + 'DisplayName', '$H_1(s)$ - $\mathcal{H}_\infty$'); set(gca,'ColorOrderIndex',1); -plot(w, abs(H), '--', ... - 'DisplayName', '$H_H(s)$ - FIR'); -set(gca,'ColorOrderIndex',2); plot(w, abs(1-H), '--', ... - 'DisplayName', '$H_L(s)$ - FIR'); + 'DisplayName', '$L_1(s)$ - FIR'); +set(gca,'ColorOrderIndex',2); +plot(w, abs(H), '--', ... + 'DisplayName', '$H_1(s)$ - FIR'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude'); @@ -972,25 +976,25 @@ leg.ItemTokenSize(1) = 16; ax2 = nexttile; hold on; set(gca,'ColorOrderIndex',1); -plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Hh, freqs, 'Hz')))), '-'); -set(gca,'ColorOrderIndex',2); plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Hl, freqs, 'Hz')))), '-'); +set(gca,'ColorOrderIndex',2); +plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Hh, freqs, 'Hz')))), '-'); set(gca,'ColorOrderIndex',1); -plot(w, 180/pi*unwrap(angle(H)), '--'); -set(gca,'ColorOrderIndex',2); plot(w, 180/pi*unwrap(angle(1-H)), '--'); +set(gca,'ColorOrderIndex',2); +plot(w, 180/pi*unwrap(angle(H)), '--'); set(gca, 'XScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); hold off; -yticks([-450:90:180]); ylim([-450, 200]); +yticks([-360:180:180]); ylim([-380, 200]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/comp_fir_ligo_hinf.pdf', 'width', 'wide', 'height', 'tall'); +exportFig('figs/comp_fir_ligo_hinf.pdf', 'width', 'wide', 'height', 600); #+end_src #+name: fig:comp_fir_ligo_hinf diff --git a/matlab/matlab/comp_filters_ligo.m b/matlab/matlab/comp_filters_ligo.m index fc1c8f9..77b8f17 100644 --- a/matlab/matlab/comp_filters_ligo.m +++ b/matlab/matlab/comp_filters_ligo.m @@ -6,6 +6,8 @@ s = zpk('s'); freqs = logspace(-3, 0, 1000); +addpath('./src'); + % Specifications % The specifications for the filters are: % 1. From $0$ to $0.008\text{ Hz}$,the magnitude of the filter’s transfer function should be less than or equal to $8 \times 10^{-3}$ @@ -31,7 +33,8 @@ xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; xlim([freqs(1), freqs(end)]); ylim([1e-4, 10]); -legend('location', 'northeast'); +leg = legend('location', 'southeast', 'FontSize', 8); +leg.ItemTokenSize(1) = 18; % FIR Filter % We here try to implement the FIR complementary filter synthesis as explained in cite:hua05_low_ligo. @@ -184,8 +187,10 @@ w = [w1 w2 w3 w4]; H = [exp(-j*kron(w'.*2*pi,[0:n-1]))]*h; figure; +tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); -ax1 = subplot(2,1,1); +% Magnitude +ax1 = nexttile([2, 1]); hold on; plot(w, abs(H), 'k-'); plot(w, abs(1-H), 'k--'); @@ -195,18 +200,18 @@ ylabel('Magnitude'); set(gca, 'XTickLabel',[]); ylim([5e-3, 5]); -ax2 = subplot(2,1,2); +% Phase +ax2 = nexttile; hold on; -plot(w, 180/pi*angle(H), 'k-'); -plot(w, 180/pi*angle(1-H), 'k--'); +plot(w, 180/pi*unwrap(angle(H)), 'k-'); +plot(w, 180/pi*unwrap(angle(1-H)), 'k--'); hold off; xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); set(gca, 'XScale', 'log'); -yticks([-540:90:360]); +yticks([-450:90:180]); ylim([-450, 200]); linkaxes([ax1,ax2],'x'); xlim([1e-3, 1]); -xticks([0.01, 0.1, 1, 10, 100, 1000]); % Weights % We design weights that will be used for the $\mathcal{H}_\infty$ synthesis of the complementary filters. @@ -260,7 +265,8 @@ xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; xlim([freqs(1), freqs(end)]); ylim([1e-3, 10]); -legend('location', 'southeast'); +leg = legend('location', 'southeast', 'FontSize', 8); +leg.ItemTokenSize(1) = 18; % H-Infinity Synthesis % We define the generalized plant as shown on figure [[fig:h_infinity_robst_fusion]]. @@ -349,47 +355,56 @@ xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; xlim([freqs(1), freqs(end)]); ylim([1e-3, 10]); -legend('location', 'southeast'); +leg = legend('location', 'southeast', 'FontSize', 8); +leg.ItemTokenSize(1) = 18; % Compare FIR and H-Infinity Filters % Let's now compare the FIR filters designed in cite:hua05_low_ligo and the one obtained with the $\mathcal{H}_\infty$ synthesis on figure [[fig:comp_fir_ligo_hinf]]. figure; -ax1 = subplot(2,1,1); +tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); + +% Magnitude +ax1 = nexttile([2, 1]); hold on; set(gca,'ColorOrderIndex',1); -plot(freqs, abs(squeeze(freqresp(Hh, freqs, 'Hz'))), '-'); +plot(freqs, abs(squeeze(freqresp(Hh, freqs, 'Hz'))), '-', ... + 'DisplayName', '$H_H(s)$ - $\mathcal{H}_\infty$'); set(gca,'ColorOrderIndex',2); -plot(freqs, abs(squeeze(freqresp(Hl, freqs, 'Hz'))), '-'); +plot(freqs, abs(squeeze(freqresp(Hl, freqs, 'Hz'))), '-', ... + 'DisplayName', '$H_L(s)$ - $\mathcal{H}_\infty$'); set(gca,'ColorOrderIndex',1); -plot(w, abs(H), '--'); +plot(w, abs(H), '--', ... + 'DisplayName', '$H_H(s)$ - FIR'); set(gca,'ColorOrderIndex',2); -plot(w, abs(1-H), '--'); +plot(w, abs(1-H), '--', ... + 'DisplayName', '$H_L(s)$ - FIR'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude'); set(gca, 'XTickLabel',[]); -ylim([1e-3, 10]); +ylim([5e-3, 10]); +leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +leg.ItemTokenSize(1) = 16; -ax2 = subplot(2,1,2); +% Phase +ax2 = nexttile; hold on; set(gca,'ColorOrderIndex',1); -plot(freqs, 180/pi*angle(squeeze(freqresp(Hh, freqs, 'Hz'))), '-', 'DisplayName', '$\mathcal{H}_\infty$ filters'); +plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Hh, freqs, 'Hz')))), '-'); set(gca,'ColorOrderIndex',2); -plot(freqs, 180/pi*angle(squeeze(freqresp(Hl, freqs, 'Hz'))), '-', 'HandleVisibility', 'off'); +plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Hl, freqs, 'Hz')))), '-'); set(gca,'ColorOrderIndex',1); -plot(w, 180/pi*angle(H), '--', 'DisplayName', 'FIR filters'); +plot(w, 180/pi*unwrap(angle(H)), '--'); set(gca,'ColorOrderIndex',2); -plot(w, 180/pi*angle(1-H), '--', 'HandleVisibility', 'off'); +plot(w, 180/pi*unwrap(angle(1-H)), '--'); set(gca, 'XScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); hold off; -yticks([-540:90:360]); -legend('location', 'northeast'); +yticks([-450:90:180]); ylim([-450, 200]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); -xticks([0.001, 0.01, 0.1, 1]); diff --git a/matlab/matlab/h_inf_synthesis_complementary_filters.m b/matlab/matlab/h_inf_synthesis_complementary_filters.m index 2eff502..7dd9ca0 100644 --- a/matlab/matlab/h_inf_synthesis_complementary_filters.m +++ b/matlab/matlab/h_inf_synthesis_complementary_filters.m @@ -6,6 +6,8 @@ s = zpk('s'); freqs = logspace(-1, 3, 1000); +addpath('./src'); + % Design of Weighting Function % A formula is proposed to help the design of the weighting functions: % \begin{equation} @@ -24,15 +26,48 @@ freqs = logspace(-1, 3, 1000); % The general shape of a weighting function generated using the formula is shown in figure [[fig:weight_formula]]. + +n = 3; w0 = 2*pi*10; G0 = 1e-3; G1 = 1e1; Gc = 2; + +W = (((1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (G0/Gc)^(1/n))/((1/G1)^(1/n)*(1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (1/Gc)^(1/n)))^n; + +figure; +hold on; +plot(freqs, abs(squeeze(freqresp(W, freqs, 'Hz'))), 'k-'); + +plot([1e-3 1e0], [G0 G0], 'k--', 'LineWidth', 1) +text(1e0, G0, '$\quad G_0$') + +plot([1e1 1e3], [G1 G1], 'k--', 'LineWidth', 1) +text(1e1,G1,'$G_{\infty}\quad$','HorizontalAlignment', 'right') + +plot([w0/2/pi w0/2/pi], [1 2*Gc], 'k--', 'LineWidth', 1) +text(w0/2/pi,1,'$\omega_c$','VerticalAlignment', 'top', 'HorizontalAlignment', 'center') + +plot([w0/2/pi/2 2*w0/2/pi], [Gc Gc], 'k--', 'LineWidth', 1) +text(w0/2/pi/2, Gc, '$G_c \quad$','HorizontalAlignment', 'right') + +text(w0/5/pi/2, abs(evalfr(W, j*w0/5)), 'Slope: $n \quad$', 'HorizontalAlignment', 'right') + +text(w0/2/pi, abs(evalfr(W, j*w0)), '$\bullet$', 'HorizontalAlignment', 'center') +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +xlabel('Frequency [Hz]'); ylabel('Magnitude'); +hold off; +xlim([freqs(1), freqs(end)]); +ylim([5e-4, 20]); + + + % #+name: fig:weight_formula -% #+caption: Amplitude of the proposed formula for the weighting functions -% [[file:figs-tikz/weight_formula.png]] +% #+caption: Gain of the Weighting Function formula +% #+RESULTS: +% [[file:figs/weight_formula.png]] -n = 2; w0 = 2*pi*11; G0 = 1/10; G1 = 1000; Gc = 1/2; +n = 2; w0 = 2*pi*10; G0 = 1/10; G1 = 1000; Gc = 0.45; W1 = (((1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (G0/Gc)^(1/n))/((1/G1)^(1/n)*(1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (1/Gc)^(1/n)))^n; -n = 3; w0 = 2*pi*10; G0 = 1000; G1 = 0.1; Gc = 1/2; +n = 3; w0 = 2*pi*10; G0 = 1000; G1 = 0.1; Gc = 0.45; W2 = (((1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (G0/Gc)^(1/n))/((1/G1)^(1/n)*(1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (1/Gc)^(1/n)))^n; figure; @@ -45,9 +80,10 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; xlim([freqs(1), freqs(end)]); -ylim([5e-4, 20]); +ylim([1e-4, 20]); xticks([0.1, 1, 10, 100, 1000]); -legend('location', 'northeast'); +leg = legend('location', 'southeast', 'FontSize', 8); +leg.ItemTokenSize(1) = 18; % H-Infinity Synthesis % We define the generalized plant $P$ on matlab. @@ -67,35 +103,28 @@ P = [W1 -W1; % #+RESULTS: % #+begin_example % [H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on'); -% Resetting value of Gamma min based on D_11, D_12, D_21 terms -% Test bounds: 0.1000 < gamma <= 1050.0000 +% Test bounds: 0.3223 <= gamma <= 1000 -% gamma hamx_eig xinf_eig hamy_eig yinf_eig nrho_xy p/f -% 1.050e+03 2.8e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 525.050 2.8e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 262.575 2.8e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 131.337 2.8e+01 2.4e-07 4.1e+00 -1.0e-13 0.0000 p -% 65.719 2.8e+01 2.4e-07 4.1e+00 -9.5e-14 0.0000 p -% 32.909 2.8e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 16.505 2.8e+01 2.4e-07 4.1e+00 -1.0e-13 0.0000 p -% 8.302 2.8e+01 2.4e-07 4.1e+00 -7.2e-14 0.0000 p -% 4.201 2.8e+01 2.4e-07 4.1e+00 -2.5e-25 0.0000 p -% 2.151 2.7e+01 2.4e-07 4.1e+00 -3.8e-14 0.0000 p -% 1.125 2.6e+01 2.4e-07 4.1e+00 -5.4e-24 0.0000 p -% 0.613 2.3e+01 -3.7e+01# 4.1e+00 0.0e+00 0.0000 f -% 0.869 2.6e+01 -3.7e+02# 4.1e+00 0.0e+00 0.0000 f -% 0.997 2.6e+01 -1.1e+04# 4.1e+00 0.0e+00 0.0000 f -% 1.061 2.6e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 1.029 2.6e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 1.013 2.6e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 1.005 2.6e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p -% 1.001 2.6e+01 -3.1e+04# 4.1e+00 -3.8e-14 0.0000 f -% 1.003 2.6e+01 -2.8e+05# 4.1e+00 0.0e+00 0.0000 f -% 1.004 2.6e+01 2.4e-07 4.1e+00 -5.8e-24 0.0000 p -% 1.004 2.6e+01 2.4e-07 4.1e+00 0.0e+00 0.0000 p +% gamma X>=0 Y>=0 rho(XY)<1 p/f +% 1.795e+01 1.4e-07 0.0e+00 1.481e-16 p +% 2.406e+00 1.4e-07 0.0e+00 3.604e-15 p +% 8.806e-01 -3.1e+02 # -1.4e-16 7.370e-19 f +% 1.456e+00 1.4e-07 0.0e+00 1.499e-18 p +% 1.132e+00 1.4e-07 0.0e+00 8.587e-15 p +% 9.985e-01 1.4e-07 0.0e+00 2.331e-13 p +% 9.377e-01 -7.7e+02 # -6.6e-17 3.744e-14 f +% 9.676e-01 -2.0e+03 # -5.7e-17 1.046e-13 f +% 9.829e-01 -6.6e+03 # -1.1e-16 2.949e-13 f +% 9.907e-01 1.4e-07 0.0e+00 2.374e-19 p +% 9.868e-01 -1.6e+04 # -6.4e-17 5.331e-14 f +% 9.887e-01 -5.1e+04 # -1.5e-17 2.703e-19 f +% 9.897e-01 1.4e-07 0.0e+00 1.583e-11 p +% Limiting gains... +% 9.897e-01 1.5e-07 0.0e+00 1.183e-12 p +% 9.897e-01 6.9e-07 0.0e+00 1.365e-12 p -% Gamma value achieved: 1.0036 +% Best performance (actual): 0.9897 % #+end_example % We then define the high pass filter $H_1 = 1 - H_2$. The bode plot of both $H_1$ and $H_2$ is shown on figure [[fig:hinf_filters_results]]. @@ -108,8 +137,10 @@ H1 = 1 - H2; figure; +tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); -ax1 = subplot(2,1,1); +% Magnitude +ax1 = nexttile([2, 1]); hold on; set(gca,'ColorOrderIndex',1) plot(freqs, 1./abs(squeeze(freqresp(W1, freqs, 'Hz'))), '--', 'DisplayName', '$w_1$'); @@ -125,10 +156,13 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude'); set(gca, 'XTickLabel',[]); -ylim([5e-4, 20]); -legend('location', 'northeast'); +ylim([1e-4, 20]); +yticks([1e-4, 1e-3, 1e-2, 1e-1, 1, 1e1]); +leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2); +leg.ItemTokenSize(1) = 18; -ax2 = subplot(2,1,2); +% Phase +ax2 = nexttile; hold on; set(gca,'ColorOrderIndex',1) plot(freqs, 180/pi*phase(squeeze(freqresp(H1, freqs, 'Hz'))), '-'); @@ -137,8 +171,7 @@ plot(freqs, 180/pi*phase(squeeze(freqresp(H2, freqs, 'Hz'))), '-'); hold off; xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); set(gca, 'XScale', 'log'); -yticks([-360:90:360]); +yticks([-180:90:180]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); -xticks([0.1, 1, 10, 100, 1000]); diff --git a/matlab/matlab/three_comp_filters.m b/matlab/matlab/three_comp_filters.m index 6161383..aba0008 100644 --- a/matlab/matlab/three_comp_filters.m +++ b/matlab/matlab/three_comp_filters.m @@ -6,6 +6,8 @@ s = zpk('s'); freqs = logspace(-2, 4, 1000); +addpath('./src'); + % Weights % First we define the weights. @@ -28,9 +30,9 @@ plot(freqs, 1./abs(squeeze(freqresp(W3, freqs, 'Hz'))), '--', 'DisplayName', '$| set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude'); hold off; -xlim([freqs(1), freqs(end)]); -xticks([0.01, 0.1, 1, 10, 100, 1000]); -legend('location', 'northeast'); +xlim([freqs(1), freqs(end)]); ylim([2e-4, 1.3e1]) +leg = legend('location', 'northeast', 'FontSize', 8); +leg.ItemTokenSize(1) = 18; % H-Infinity Synthesis % Then we create the generalized plant =P=. @@ -54,8 +56,10 @@ H3 = tf(H(2)); H1 = 1 - H2 - H3; figure; +tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); -ax1 = subplot(2,1,1); +% Magnitude +ax1 = nexttile([2, 1]); hold on; set(gca,'ColorOrderIndex',1) plot(freqs, 1./abs(squeeze(freqresp(W1, freqs, 'Hz'))), '--', 'DisplayName', '$|W_1|^{-1}$'); @@ -74,10 +78,12 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude'); set(gca, 'XTickLabel',[]); -ylim([5e-4, 20]); -legend('location', 'northeast'); +ylim([1e-4, 20]); +leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 2); +leg.ItemTokenSize(1) = 18; -ax2 = subplot(2,1,2); +% Phase +ax2 = nexttile; hold on; set(gca,'ColorOrderIndex',1) plot(freqs, 180/pi*phase(squeeze(freqresp(H1, freqs, 'Hz')))); @@ -88,8 +94,7 @@ plot(freqs, 180/pi*phase(squeeze(freqresp(H3, freqs, 'Hz')))); hold off; xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); set(gca, 'XScale', 'log'); -yticks([-360:90:360]); +yticks([-360:90:360]); ylim([-270, 270]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); -xticks([0.1, 1, 10, 100, 1000]); diff --git a/mohit/paper.org b/mohit/paper.org index 90b5a6c..596fd02 100644 --- a/mohit/paper.org +++ b/mohit/paper.org @@ -418,7 +418,7 @@ Filter Design for Active Vibration Isolation of LIGO][4]]). functions and designed complementary filters [[file:figs/hinf_filters_results.pdf]] -** Extension to set of three complementary filters +** TODO Extension to set of three complementary filters In certain applications, more than two sensors are used to measure the same quantity and can be merged together to form a "super sensor". In such case, a set of three (or more) complementary filters is required. diff --git a/tikz/index.org b/tikz/index.org index 29679b2..18e9a32 100644 --- a/tikz/index.org +++ b/tikz/index.org @@ -374,6 +374,55 @@ Configuration file is accessible [[file:config.org][here]]. #+RESULTS: [[file:figs/h_infinity_robust_fusion.png]] +* Architecture used for $\mathcal{H}_\infty$ synthesis of complementary filters +#+begin_src latex :file ligo_super_sensor_architecture.pdf :tangle figs/ligo_super_sensor_architecture.tex :exports both +\definecolor{myblue}{rgb}{0, 0.447, 0.741} +\definecolor{myred}{rgb}{0.8500, 0.325, 0.098} + +\begin{tikzpicture} + \node[block, align=center] (position) at (0, 2.2) {Position\\Sensor}; + \node[block, align=center] (seismometer) at (0, 1.0) {Seismometer}; + \node[block, align=center] (geophone) at (0,-0.6) {Geophone}; + + \node[branch, left=0.4 of seismometer] (x); + + \node[block, right=1.1 of seismometer](H1){$L_2(s)$}; + \node[block](H2) at (H1|-geophone) {$H_2(s)$}; + + \node[addb] (add) at (4, 0){}; + \node[block, right=1.1 of add](H2p) {$H_1(s)$}; + \node[block] (H1p) at (H2p|-position) {$L_1(s)$}; + + \node[addb] (addp) at (7, 1.0){}; + + \draw[->] ($(x)+(-1.0, 0)$) -- (seismometer.west); + \draw[->] (x.center) |- (position.west); + \draw[->] (x.center) |- (geophone.west); + \draw[->] (position.east) -- (H1p.west); + \draw[->] (seismometer.east) -- (H1.west); + \draw[->] (geophone.east) -- (H2.west); + \draw[->] (H1) -| (add.north); + \draw[->] (H2) -| (add.south); + \draw[->] (add.east) -- (H2p.west); + \draw[->] (H1p) -| (addp.north); + \draw[->] (H2p) -| (addp.south); + \draw[->] (addp.east) -- ++(1.0, 0); + + \begin{scope}[on background layer] + \node[fit={(x.west|-geophone.south) (position.north-|addp.east)}, fill=black!20!white, draw, inner sep=6pt] (supersensor) {}; + \node[below] at (supersensor.north) {Super Sensor}; + + \node[fit={(x.west|-seismometer.north) (add.east|-geophone.south)}, fill=black!10!white, draw, inner sep=3pt] (superinertialsensor) {}; + \node[] at (superinertialsensor.center) {"Inertial" Super Sensor}; + \end{scope} +\end{tikzpicture} +#+end_src + +#+name: fig:ligo_super_sensor_architecture +#+caption: Architecture used for $\mathcal{H}_\infty$ synthesis of complementary filters ([[./figs/ligo_super_sensor_architecture.png][png]], [[./figs/ligo_super_sensor_architecture.pdf][pdf]], [[./figs/ligo_super_sensor_architecture.tex][tex]]). +#+RESULTS: +[[file:figs/ligo_super_sensor_architecture.png]] + * Architecture for $\mathcal{H}_\infty$ synthesis of three complementary filters #+begin_src latex :file comp_filter_three_hinf.pdf :tangle figs/comp_filter_three_hinf.tex \begin{tikzpicture}